/* Shared controls and responsive layout. */
[hidden] { display: none !important; }
body.menu-is-open { overflow: hidden; }
.skip-link { position: fixed; left: 16px; top: -100px; z-index: 999; padding: 12px 20px; background: white; color: #111; }
.skip-link:focus { top: 12px; }
.btn, .map-btn-red, .map-btn-ghost {
  justify-content: center; min-height: 48px; height: auto; max-width: 100%;
  padding: 14px 24px; border-radius: 3px; font-size: .9rem; font-weight: 700;
  line-height: 1.4; text-align: center; letter-spacing: .035em; text-transform: uppercase;
  white-space: normal; text-decoration: none; border-width: 2px;
}
.btn:focus-visible,.map-btn-red:focus-visible,.map-btn-ghost:focus-visible,
.icon-circle:focus-visible,.mbar a:focus-visible {
  outline: 3px solid #fff; outline-offset: 3px; box-shadow: 0 0 0 6px #b91c1c;
}
.btn-ghost { background: transparent; color: #171717; border-color: #171717; }
.btn-ghost:hover { background: #171717; color: #fff; }
.hero-content .btn-ghost,.cta-band .btn-ghost,.sect-black .btn-ghost {
  background: rgba(0,0,0,.25); color: #fff; border-color: #fff;
}
.hero-content .btn-ghost:hover,.cta-band .btn-ghost:hover,.sect-black .btn-ghost:hover { background: #fff; color: #111; }
.btn-white { background: rgba(0,0,0,.2); border-color: #fff; }
.btn-wa { background: #137c40; }
.btn-wa:hover { background: #0f6534; }
.hero-content .btn { min-height: 48px; padding: 13px 22px; }
form.quote .btn { border-radius: 3px; min-height: 52px; height: auto; }
.nav-cta-lt .btn { min-height: 0; border-radius: 5px; font-size: 11px; line-height:1.2; gap:5px; }
.btn-row { align-items: stretch; }
.post-body a.btn { color: #fff; text-decoration: none; }
.post-body a.btn-ghost { color: #171717; }
.map-btns { flex-wrap: wrap; }
.map-btn-red { background: var(--red); }
.map-btn-ghost { background: rgba(0,0,0,.25); }
.lt-burger { display: block; border: 0; background: transparent; width: 46px; height: 46px; position: relative; cursor: pointer; flex: none; }
.lt-burger span,.lt-burger span::before,.lt-burger span::after { position:absolute; content:""; left:10px; width:26px; height:2px; background:#fff; }
.lt-burger span { top:22px; }
.lt-burger span::before { left:0; top:-8px; }
.lt-burger span::after { left:0; top:8px; }
button.menu-close { position:absolute; right:16px; top:16px; width:44px; height:44px; border:0; border-radius:50%; background:#ececec; color:#111; font-size:26px; cursor:pointer; }
button.menu-close::before,button.menu-close::after { content:none; }
.lt-backdrop { border:0; }
button.mm-lab { width:100%; background:none; border:0; font:inherit; text-align:left; }
.menu-back { background:none; border:0; font:700 14px/1.4 var(--font); color:#111; padding:16px 20px; cursor:pointer; }
.lt-nav button:focus-visible,.lt-nav a:focus-visible,.mm-panel button:focus-visible,.mm-panel a:focus-visible,.lt-burger:focus-visible { outline:3px solid var(--red); outline-offset:3px; }
.menu-network-label { margin-top:auto; padding-top:28px; font-size:12px; color:#555; }
.menu-socials { margin-top:8px; padding-top:12px; }
.mm-panel { padding-top:78px; }
.mm-panel a { font-size:14px; letter-spacing:.07em; }
.hero-video { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:0; }
.hero-video.is-playing { opacity:1; }
.hero-lt .hero-scrim { background:linear-gradient(180deg,rgba(0,0,0,.35),rgba(0,0,0,.35) 45%,rgba(0,0,0,.76)); }
.hero-content h1 { font-family:'Montserrat',var(--font); font-size:clamp(1.75rem,3.3vw,3rem); line-height:1.2; text-transform:uppercase; letter-spacing:0; }
.hero-content .lead { font-size:1rem; line-height:1.7; max-width:660px; }
.hero-logo-lt { width:min(480px,70vw); }
.trust-grid-lt { grid-template-columns:repeat(4,minmax(0,1fr)); }
.trust-grid-lt > div { min-width:0; padding:8px 16px; }
.trust-grid-lt strong { white-space:normal; line-height:1.5; font-size:15px; }
.trust-grid-lt span { color:#aaa; font-size:12px; letter-spacing:.06em; line-height:1.5; }
.trust-grid-lt strong em { font-size:12px; letter-spacing:.08em; }
.mq-track:focus-within,.mq-track:hover { animation-play-state:paused; }
.section-sub,.split p,.svc-col li,.card p { font-size:1rem; }
.page-hero-lt { min-height:590px; }
.page-hero-lt h1 { line-height:1.2; letter-spacing:0; }
.page-hero-lt .lead { line-height:1.7; }
.foot-base { gap:18px; }
.foot-grid-lt a { overflow-wrap:anywhere; }
.form-notice { margin:14px 0 0; font-size:.85rem; color:#555; }
.plain-copy p,.plain-copy a,.post-body p,.post-body a { overflow-wrap:anywhere; }
main h1,main h2,main h3,.btn { overflow-wrap:anywhere; }
.plain-copy h2 { margin-top:36px; }
@media (max-width: 900px) {
  .nav-bar { padding:0 16px; gap:8px; height:78px; }
  .brand-lt img { width:160px; height:auto; }
  .nav-right { gap:6px; }
  .icon-circle { width:44px; height:44px; }
  nav.lt-nav .nl { min-height:44px; }
  .menu-socials { gap:12px; }
  .menu-socials a { min-width:44px; min-height:44px; align-items:center; justify-content:center; }
  .trust-grid-lt { grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px 0; }
  .trust-grid-lt > div:nth-child(3)::before { display:none; }
  .page-hero-lt { min-height:560px; }
  .page-hero-lt .hero-content { padding-top:125px; }
}
@media (max-width: 620px) {
  .nav-bar { display:grid; grid-template-columns:46px minmax(0,1fr) 94px; }
  .brand-lt { position:static; transform:none; justify-self:center; }
  .brand-lt img { width:100%; max-width:145px; height:auto; }
  .nav-right { margin:0; }
  .hero-content { padding:126px 24px 80px; }
  .hero-content h1 { font-size:1.6rem; }
  .hero-content .btn-row,.cta-band .btn-row { flex-direction:column; align-items:stretch; }
  .btn-row .btn { width:100%; }
  .trust-grid-lt { padding:0 12px; gap:14px 0; }
  .trust-grid-lt > div { padding:8px 10px; }
  .trust-grid-lt strong { font-size:13px; letter-spacing:.06em; }
  .trust-grid-lt span { font-size:12px; }
  .mbar a { min-height:48px; display:flex; align-items:center; justify-content:center; }
  .map-btns > a { flex:1; }
  .page-hero-lt .hero-content { padding-bottom:55px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  .mq-track { transform:none; width:100%; gap:22px; justify-content:center; flex-wrap:wrap; }
  .mq-track > [aria-hidden=true] { display:none; }
  .btn:hover { transform:none; }
}
/* Keep white text readable over the brightest video and photo frames. */
.hero-lt .hero-scrim { background:linear-gradient(180deg,rgba(0,0,0,.62),rgba(0,0,0,.60) 45%,rgba(0,0,0,.80)); pointer-events:none; }
.wide-band::after { background:linear-gradient(90deg,rgba(0,0,0,.78),rgba(0,0,0,.62)); }
.hero-content .lead,.page-hero-lt .crumbs,.page-hero-lt .crumbs a { color:#fff; }
.hero-content .kicker { color:#fff; }
.simple-page { padding-top:170px; padding-bottom:0; }
.container > p + p { margin-top:16px; }
button.mm-lab[aria-expanded=true] { color:var(--red); }
@media (prefers-reduced-motion: reduce) { .mq-track { animation:none !important; } }
body.menu-is-open .mbar { display:none; }
.ed-card .ed-link { display:inline-flex; align-items:center; justify-content:center; gap:6px; min-height:44px; border:2px solid var(--red); border-radius:3px; padding:9px 15px; line-height:1.2; }
.ed-card .ed-link::after { content:"→"; }
#quote,#enquiry,#brands { scroll-margin-top:145px; }
@media (max-width:900px) { #quote,#enquiry,#brands { scroll-margin-top:100px; } }
.nav-cta-lt { display:flex; align-items:center; gap:10px; }
.nav-cta-lt .btn { padding:7px 13px; }
.nav-cta-lt .btn.header-whatsapp { gap:5px; }
@media (max-width:1100px) { .nav-cta-lt { display:none; } }

/* Keep the homepage headline on two deliberate lines. */
.hero-lt:not(.page-hero-lt) .hero-content { max-width:1000px; }
.hero-content .home-hero-title { max-width:920px; }
.home-hero-title span { display:block; white-space:nowrap; }
@media (max-width:620px) {
  .hero-content .home-hero-title { font-size:clamp(1rem,5vw,1.9rem); }
}
/* Portrait workshop photographs: keep the technician and vehicle in view. */
.visual.workshop-photo { min-height:0; aspect-ratio:4 / 5; max-height:650px; }
.split-lt figure.workshop-photo { aspect-ratio:4 / 4.3; }

/* Shared WhatsApp mark beside every labelled contact action. */
a[href^="https://wa.me/"]:not(.icon-circle) {
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
}
a[href^="https://wa.me/"]:not(.icon-circle)::before {
  content:""; display:block; width:20px; height:20px; flex:0 0 20px;
  background-color:currentColor;
  -webkit-mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cpath%20d%3D%22M12%202a10%2010%200%200%200-8.6%2015.1L2%2022l5-1.3A10%2010%200%201%200%2012%202zm5.2%2014.2c-.2.6-1.3%201.2-1.8%201.2-.5.1-1%20.2-3.3-.7-2.8-1.1-4.6-4-4.7-4.2-.1-.2-1.1-1.5-1.1-2.9s.7-2%201-2.3c.2-.3.5-.3.7-.3h.5c.2%200%20.4%200%20.6.5s.7%201.8.8%201.9c.1.1.1.3%200%20.5l-.4.6c-.1.2-.3.3-.1.6.2.3.8%201.3%201.7%202.1%201.2%201%202.1%201.4%202.4%201.5.3.1.5.1.6-.1l1-1.1c.2-.2.4-.2.6-.1l1.9.9c.3.1.5.2.5.3.1.1.1.7-.1%201.3z%22%3E%3C%2Fpath%3E%3C%2Fsvg%3E") center / contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cpath%20d%3D%22M12%202a10%2010%200%200%200-8.6%2015.1L2%2022l5-1.3A10%2010%200%201%200%2012%202zm5.2%2014.2c-.2.6-1.3%201.2-1.8%201.2-.5.1-1%20.2-3.3-.7-2.8-1.1-4.6-4-4.7-4.2-.1-.2-1.1-1.5-1.1-2.9s.7-2%201-2.3c.2-.3.5-.3.7-.3h.5c.2%200%20.4%200%20.6.5s.7%201.8.8%201.9c.1.1.1.3%200%20.5l-.4.6c-.1.2-.3.3-.1.6.2.3.8%201.3%201.7%202.1%201.2%201%202.1%201.4%202.4%201.5.3.1.5.1.6-.1l1-1.1c.2-.2.4-.2.6-.1l1.9.9c.3.1.5.2.5.3.1.1.1.7-.1%201.3z%22%3E%3C%2Fpath%3E%3C%2Fsvg%3E") center / contain no-repeat;
}
.header-whatsapp::before { width:13px !important; height:13px !important; flex-basis:13px !important; }
.mbar a[href^="https://wa.me/"]::before {
  width:17px !important; height:17px !important; flex-basis:17px !important;
}

/* Keep the Exotic Car Service introduction together beside a compact image. */
.exotic-intro { padding:76px 0; scroll-margin-top:145px; }
.exotic-intro .split { align-items:start; gap:clamp(30px,5vw,64px); }
.exotic-intro-copy { min-width:0; }
.exotic-intro .section-title { font-size:clamp(1.9rem,2.9vw,2.4rem); line-height:1.16; margin-bottom:22px; }
.exotic-intro .btn-row { justify-content:flex-start; margin-top:26px; gap:12px; }
.exotic-intro .visual { margin:0; }
@media (max-width:900px) {
  .exotic-intro { padding:48px 0; scroll-margin-top:100px; }
  .exotic-intro .split { gap:30px; }
}

/* Give each mobile contact action its own clear colour. */
.ferrari-intro { padding:76px 0; scroll-margin-top:145px; }
.ferrari-intro .split { grid-template-columns:1.15fr 1fr; align-items:start; gap:clamp(30px,5vw,64px); }
.ferrari-intro .split > div { min-width:0; }
.ferrari-intro .section-title { font-size:clamp(1.9rem,2.9vw,2.4rem); line-height:1.16; margin-bottom:22px; }
.ferrari-intro h3 { font-size:1.1rem; margin:24px 0 12px; }
.ferrari-service-list { padding-left:20px; color:var(--ink-60); font-size:.98rem; }
.ferrari-service-list li { margin-bottom:12px; padding-left:4px; }
.ferrari-service-list strong { color:var(--ink); }
.ferrari-intro .visual { margin:0; }
.ferrari-intro .btn-row { justify-content:flex-start; margin-top:26px; gap:12px; }
@media (max-width:900px) {
  .ferrari-intro { padding:48px 0; scroll-margin-top:100px; }
  .ferrari-intro .split { grid-template-columns:1fr; gap:30px; }
}

.mbar a[href^="tel:"] { background:#111; color:#fff; }
.mbar a[href^="https://wa.me/"] { background:#137c40; color:#fff; }
.mbar a + a { border-left-color:rgba(255,255,255,.18); }

/* Brand-name hero headings use the logo, with an accessible page heading. */
.hero-content .brand-hero-title { width:min(520px,100%); line-height:1; font-size:0; margin:24px auto; }
.hero-brand-mark { display:block; width:100%; height:auto; margin:0 auto; mix-blend-mode:screen; }
@media (max-width:620px) {
  .hero-content .brand-hero-title { width:min(360px,100%); margin:24px auto; }
}

/* Apply the requested initial capitals to hero subtitles and page labels. */
.hero-content .lead,.hero-content .crumbs { text-transform:capitalize; }

/* Product categories and clear enquiry options on the Performance Parts page. */
.parts-intro { padding:76px 0; scroll-margin-top:145px; }
.parts-intro .split { align-items:start; gap:clamp(30px,5vw,64px); }
.parts-intro .section-title { font-size:clamp(1.9rem,2.9vw,2.4rem); line-height:1.16; margin-bottom:22px; }
.parts-intro .btn-row { justify-content:flex-start; margin-top:26px; gap:12px; }
.parts-intro .visual { margin:0; }
.parts-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; margin-top:32px; }
.parts-category { display:flex; flex-direction:column; align-items:flex-start; padding:30px; border:1px solid var(--line); border-radius:12px; background:#fff; }
.parts-category h3,.parts-order-note h3 { font-size:1.25rem; line-height:1.3; margin-bottom:14px; }
.parts-category p,.parts-order-note p { color:var(--ink-60); line-height:1.75; }
.parts-category .btn { margin-top:24px; }
.parts-category p { flex:1; }
.parts-order-note { border-top:1px solid var(--line); margin-top:36px; padding-top:28px; max-width:860px; }
@media (max-width:900px) { .parts-intro { padding:48px 0; scroll-margin-top:100px; } }
@media (max-width:620px) { .parts-grid { grid-template-columns:1fr; gap:18px; } .parts-category { padding:24px; } }
