/* ==========================================================================
   G CLASS HIRE — Design System v3  ·  Emerald & Gold (bright editorial)
   Satoshi · ivory base · emerald racing-green signature · refined gold
   ========================================================================== */
:root{
  --ivory:#F7F4ED; --ivory-2:#EFEADF; --white:#FFFFFF; --paper-g:#EDF1EC;
  --green:#0E3B2B; --green-2:#16543C; --green-deep:#072018; --green-line:rgba(247,244,237,.18);
  --gold:#A9854A; --gold-2:#C2A063; --gold-soft:#D8C291; --gold-ink:#8A6A38;
  --ink:#14150F; --ink-2:#56544A; --ink-3:#6E6B60;
  --hair:rgba(20,21,15,.12); --hair-2:rgba(20,21,15,.07);
  --ui:"Satoshi",system-ui,-apple-system,sans-serif;
  --display:"Satoshi",system-ui,-apple-system,sans-serif;
  --pad:clamp(20px,5vw,80px); --max:1400px; --e:cubic-bezier(.16,1,.3,1);
  --shadow:0 36px 60px -45px rgba(14,59,43,.42);}
*{box-sizing:border-box;margin:0}
html{-webkit-text-size-adjust:100%;overscroll-behavior-y:none;background:var(--green-deep)}
/* Smooth in-page scrolling on pointer devices only — on touch it makes iOS treat the first tap
   as "stop the scroll", which reads as a link needing two taps. */
@media(hover:hover){html{scroll-behavior:smooth}}
body{background:var(--ivory);color:var(--ink);font-family:var(--ui);font-weight:400;font-size:16px;line-height:1.6;
  -webkit-font-smoothing:antialiased;overflow-x:clip}
/* overflow-x:clip (not hidden) keeps the viewport as the scroll container — on iOS Safari,
   overflow-x:hidden on body makes BODY the scroller, which stops IntersectionObserver
   scroll-reveals from firing (e.g. the whole gallery stayed invisible). */
img,video,svg{display:block;max-width:100%}
/* Stop the iOS long-press "Save to Photos / Copy / Share" menu on site imagery. */
img{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}
a{color:inherit;text-decoration:none}
button{font-family:inherit;color:inherit}  /* inherit brand colour — never the iOS/system blue */
:focus-visible{outline:2px solid var(--green);outline-offset:3px}
/* Kill the iOS "press & hold" behaviour on cards/thumbnails: the enlarged
   preview on a dimmed backdrop, the save-image menu, and the green focus-ring
   box. Our imagery is copyright (see Terms), so long-press-to-save is disabled
   site-wide on images too. Desktop keyboard users keep the :focus-visible ring
   for accessibility; form fields keep their own box-shadow focus style. */
img{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}
@media (hover:none) and (pointer:coarse){
  :focus,:focus-visible{outline:none !important}
  a,[role=button],button,summary,label{-webkit-touch-callout:none;-webkit-user-select:none}
}
.skip{position:absolute;left:-9999px}.skip:focus{left:1rem;top:1rem;z-index:100;background:var(--green);color:var(--ivory);padding:.7rem 1.1rem;border-radius:8px}
.wrap{max-width:var(--max);margin:0 auto;padding:0 var(--pad)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}

/* type */
h1,h2,h3,h4{font-family:var(--display);font-weight:400;letter-spacing:-.022em;line-height:1.02;color:var(--ink)}
.kick{display:inline-flex;align-items:center;gap:.85rem;color:var(--green);margin-bottom:1.4rem;flex-wrap:wrap}
.kick .dot{width:7px;height:7px;border-radius:50%;background:var(--gold);flex:none}
.kick span{font-size:.68rem;letter-spacing:.24em;text-transform:uppercase;font-weight:600}
.em{color:var(--green);font-weight:500;position:relative}
/* Gold underline via native text-decoration so it wraps correctly across lines
   (the old absolute ::after bar broke on multi-line emphasis — only underlined the
   last wrapped fragment). ::after retired below (no `content`, so it never renders). */
.em.u{text-decoration:underline;text-decoration-color:var(--gold);text-decoration-thickness:.075em;text-underline-offset:.15em;text-decoration-skip-ink:none}
.lede{font-size:1.12rem;line-height:1.6;color:var(--ink-2);font-weight:400}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:.55rem;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700;
  padding:1.1rem 1.95rem;border-radius:100px;cursor:pointer;border:1px solid transparent;
  transition:transform .5s var(--e),background .4s,color .4s,border-color .4s;will-change:transform}
@media(hover:hover){.btn:hover{transform:translateY(-2px)}}
.btn-primary{background:var(--green);color:var(--ivory)}
@media(hover:hover){.btn-primary:hover{background:var(--green-deep)}}
.btn-secondary{border-color:var(--hair);color:var(--ink)}
@media(hover:hover){.btn-secondary:hover{border-color:var(--green);color:var(--green)}}
.btn-gold{background:var(--gold);color:var(--green-deep)}
@media(hover:hover){.btn-gold:hover{background:var(--gold-2)}}
.btn-ghost{border-color:var(--green-line);color:var(--ivory)}
@media(hover:hover){.btn-ghost:hover{background:var(--gold);border-color:var(--gold);color:var(--green-deep)}}
.btn-tertiary{color:var(--green);font-weight:700;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase}
.cta-row{display:flex;gap:1rem;flex-wrap:wrap}

/* ---- NAV ---- */
header.site-nav{position:fixed;inset:0 0 auto 0;z-index:40;display:flex;align-items:center;justify-content:space-between;
  padding:1rem var(--pad);transition:.5s var(--e)}
/* NOTE: no backdrop-filter here — a backdrop-filter inside a position:fixed
   element makes iOS Safari drop the fixed header off its compositing layer on
   scroll (nav vanishes on iPhone, fine on desktop). Solid bg instead. */
header.site-nav::before{content:"";position:absolute;inset:0;background:rgba(247,244,237,.97);
  border-bottom:1px solid var(--hair);opacity:0;transition:.5s}
header.site-nav.scr::before{opacity:1}header.site-nav.scr{padding:.9rem var(--pad)}
/* Dark full-bleed heroes reuse the homepage's light-nav system via the shared .home-hero
   body class (added in site.js for .rxr and .veh-hero). All the .home-hero nav rules apply. */
header.site-nav>*{position:relative}
.brand{display:flex;align-items:center;gap:.55rem;font-size:1rem;letter-spacing:.28em;font-weight:700;text-transform:uppercase;color:var(--green)}
.brand img{width:auto}
a,button,summary,[role=button],.brand{-webkit-tap-highlight-color:transparent}
/* iOS: fire taps immediately (no 300ms double-tap-zoom wait) on all interactive elements */
a,button,summary,label,input,select,textarea,[role=button],[data-search-open]{touch-action:manipulation}
.nav-menu{display:flex;gap:clamp(1.3rem,2.4vw,2.2rem)}
.nav-menu a{font-size:.74rem;letter-spacing:.11em;text-transform:uppercase;font-weight:600;color:var(--ink-2);position:relative;transition:.3s;white-space:nowrap}
.nav-menu a[aria-current]{color:var(--green)}
@media(hover:hover){.nav-menu a:hover{color:var(--green)}}
.nav-menu a::after{content:"";position:absolute;left:0;bottom:-5px;height:1.5px;width:100%;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform .45s var(--e)}
.nav-menu a[aria-current]::after{transform:scaleX(1)}
@media(hover:hover){.nav-menu a:hover::after{transform:scaleX(1)}}
.nav-book{font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700;padding:.8rem 1.45rem;background:var(--green);color:var(--ivory);border-radius:100px;transition:.4s}
@media(hover:hover){.nav-book:hover{background:var(--green-deep)}}
.burger{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;width:44px;height:44px;align-items:center;justify-content:center;padding:0}
.burger span{display:block;width:24px;height:2px;background:var(--green);transition:.4s var(--e)}
body.menu-open{overflow:hidden}
body.menu-open .cc-launch{display:none}  /* don't let the concierge launcher overlap the open menu */
body:has(.build-stage) .cc-launch{display:none}  /* builder has its own fixed summary bar — avoid the clash */
body.menu-open .burger span:nth-child(1){transform:translateY(7px) rotate(45deg)}
body.menu-open .burger span:nth-child(2){opacity:0}
body.menu-open .burger span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.mobile-menu{position:fixed;inset:0;z-index:39;background:var(--ivory);color:var(--ink);display:flex;flex-direction:column;justify-content:flex-start;
  padding:5.4rem var(--pad) 2.4rem;transform:translateY(-100%);transition:transform .55s var(--e);visibility:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch}
body.menu-open .mobile-menu{transform:none;visibility:visible}
body.menu-open header.site-nav::before{opacity:1}            /* solid ivory header strip behind the menu controls */
body.menu-open .nav-book{display:none}                       /* the menu has its own Book CTA — drop the redundant pill */
body.menu-open .nav-search{display:none}                     /* the menu has its own search pill — drop the duplicate icon */
/* search pill at the top of the menu */
.mobile-menu .mm-search{display:flex;align-items:center;gap:.7rem;width:100%;margin-bottom:1.5rem;padding:.85rem 1.05rem;border:1px solid var(--green-line);border-radius:100px;background:rgba(247,244,237,.06);color:rgba(247,244,237,.72);font-size:.92rem;cursor:pointer;text-align:left;transition:background .25s var(--e),border-color .25s var(--e)}
@media(hover:hover){.mobile-menu .mm-search:hover{background:rgba(247,244,237,.1);border-color:var(--gold-soft)}}
.mobile-menu .mm-search svg{width:18px;height:18px;color:var(--gold-soft);flex:none}
.mobile-menu .mm-nav{display:flex;flex-direction:column}
.mobile-menu .mm-nav>a,.mobile-menu .nav-item>.nav-top{font-size:1.5rem;font-weight:300;letter-spacing:-.02em;padding:.6rem 0;border-bottom:1px solid var(--green-line);color:var(--ivory);display:flex;align-items:center;justify-content:space-between}
.mobile-menu .mm-book{margin-top:1.9rem;background:var(--gold);color:var(--green-deep);text-align:center;padding:1.1rem;border-radius:100px;font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;font-weight:700}
/* Minimal trust line — gold glyphs then a quiet line, left-aligned (restraint = premium). */
.mobile-menu .mm-trust{margin:1.4rem 0 .2rem;display:flex;align-items:center;gap:.6rem;text-decoration:none}
.mm-trust .mt-stars{color:var(--gold);font-size:.95rem;letter-spacing:.16em;flex:none}
.mm-trust .mt-line{color:var(--ink-2);font-size:.8rem;letter-spacing:.01em;line-height:1.3}
.mm-trust .mt-line b{color:var(--ink);font-weight:700}
/* Mobile-menu social — "Follow" + circular icon buttons (44px tap targets, ≥8px gap) */
.mm-social{display:flex;align-items:center;gap:.9rem;margin:1.1rem 0 .2rem}
.mm-social-k{font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;font-weight:700;color:var(--gold-ink)}
.mm-social-row{display:flex;gap:.6rem}
.mm-social-row a{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;border:1px solid var(--hair);background:var(--white);color:var(--green);transition:transform .35s var(--e),border-color .35s var(--e),color .35s var(--e)}
.mm-social-row a svg{width:20px;height:20px}
.mm-social-row a:active{transform:scale(.93)}
@media(hover:hover){.mm-social-row a:hover{border-color:var(--gold-soft);color:var(--gold-ink);transform:translateY(-2px)}}

/* ---- SECTIONS ---- */
.section{padding:clamp(4.5rem,9vw,9rem) 0}
.section.green{background:var(--green);color:var(--ivory)}
.section.paper{background:var(--ivory-2)}
.section.green h1,.section.green h2,.section.green h3{color:var(--ivory)}
.section.green .kick{color:var(--gold-soft)}.section.green .kick .dot{background:var(--gold-soft)}
.section.green .em{color:var(--gold-soft)}.section.green .lede{color:rgba(247,244,237,.8)}
.sec-head{display:flex;align-items:flex-end;justify-content:space-between;gap:2rem;flex-wrap:wrap;margin-bottom:clamp(2.4rem,4vw,3.6rem)}
.sec-head h2{font-size:clamp(2.4rem,5vw,4.4rem)}
.sec-head p{max-width:38ch;color:var(--ink-2)}.section.green .sec-head p{color:rgba(247,244,237,.78)}

/* ---- HERO (homepage) ---- */
.hero{padding:8.6rem var(--pad) 0;max-width:var(--max);margin:0 auto}
.hero .kick{margin-bottom:1.8rem}
.hero-top{display:grid;grid-template-columns:1.5fr .85fr;gap:clamp(1.5rem,4vw,4rem);align-items:end;margin-bottom:clamp(2rem,4vw,3.2rem)}
.hero-top>*{min-width:0}
.hero h1{font-size:clamp(2.9rem,7.6vw,7.8rem);font-weight:300;letter-spacing:-.04em}
.hero h1 .em{font-weight:600}
.hero h1 .em.u::after{height:.06em;bottom:.04em;background:linear-gradient(90deg,var(--gold),var(--gold-2))}
.hero-aside{min-width:0;padding-bottom:.4rem;border-left:1px solid var(--hair);padding-left:clamp(1.2rem,2vw,2rem)}
.hero-aside p{color:var(--ink-2);font-size:1.08rem;line-height:1.56}
.hero-aside .cta-row{margin-top:1.6rem;flex-direction:column;align-items:stretch}
.hero-aside .cta-row .btn{justify-content:center}
.hero-trust{margin-top:1.5rem;font-size:.84rem;color:var(--ink-3);font-weight:500}
.hero-trust .st{color:var(--gold);letter-spacing:.08em}.hero-trust b{color:var(--ink);font-weight:700}
.hero-stage{position:relative;border-radius:22px;overflow:hidden;aspect-ratio:16/8.2;background:var(--green);box-shadow:var(--shadow)}
.stage-media{position:absolute;inset:-7% 0;height:114%;will-change:transform}
.hero-stage img,.hero-stage video{width:100%;height:100%;object-fit:cover}
.hero-stage .hero-video{position:absolute;inset:0;opacity:0;transition:opacity 1.2s var(--e)}
.hero-stage .hero-video.media-in{opacity:1}
.hero-stage::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(7,32,24,.16),transparent 26%,transparent 72%,rgba(7,32,24,.34));pointer-events:none}
.hero-stage .badge{position:absolute;left:1.5rem;bottom:1.5rem;z-index:2;display:flex;align-items:center;gap:.6rem;background:rgba(247,244,237,.92);
  backdrop-filter:blur(10px);padding:.7rem 1.15rem;border-radius:100px;font-size:.82rem;box-shadow:0 12px 30px -16px rgba(7,32,24,.5)}
.hero-stage .badge .st{color:var(--gold);letter-spacing:.1em;font-size:.85rem}.hero-stage .badge b{font-weight:700}.hero-stage .badge span{color:var(--ink-2)}
.hero-meta{display:flex;justify-content:space-between;align-items:center;padding:1.5rem 0 0;gap:2rem;flex-wrap:wrap}
.hero-meta .marqs{display:flex;gap:1.9rem;font-size:.76rem;letter-spacing:.12em;text-transform:uppercase;font-weight:600;color:var(--ink-2);flex-wrap:wrap}
.hero-meta .lbl{font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;font-weight:600;color:var(--ink-3)}

/* ---- FLEET grid ---- */
.fleet{display:grid;grid-template-columns:1.4fr 1fr;gap:1.1rem;min-width:0}
.feat{position:relative;border-radius:18px;overflow:hidden;min-height:480px;background:var(--green)}
.feat-media{position:absolute;inset:-6% 0;height:112%;will-change:transform}
.feat img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 60%;transition:transform 1.4s var(--e)}
@media(hover:hover){.feat:hover img{transform:scale(1.045)}}
.feat::after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 46%,rgba(7,32,24,.78))}
.feat .meta{position:absolute;left:1.9rem;bottom:1.7rem;z-index:2;color:var(--ivory)}
.feat .meta .t{display:block;font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;font-weight:600;color:var(--gold-soft);margin-bottom:.35rem}
.feat .meta .n{font-size:2.1rem;font-weight:500;letter-spacing:-.02em}
.fgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.1rem}
.ffield-block{display:block;width:100%;margin:0 0 1.1rem}
.fcard{position:relative;border-radius:15px;overflow:hidden;aspect-ratio:1/1;background:var(--green)}
.fcard img,.fcard .glyph{width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--e)}
@media(hover:hover){.fcard:hover img{transform:scale(1.06)}}
.fcard .glyph{display:flex;align-items:center;justify-content:center;font-size:3rem;color:var(--green-line);font-weight:300}
.fcard::after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 50%,rgba(7,32,24,.72))}
.fcard .l{position:absolute;left:1rem;bottom:.85rem;z-index:2;color:var(--ivory);font-weight:600;font-size:1.02rem;letter-spacing:.01em}

/* ---- EXPERIENCE / split ---- */
.split{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(2rem,5vw,5rem);align-items:center;min-width:0}
.split.rev{grid-template-columns:.95fr 1.05fr}
.split h3{font-size:clamp(2rem,3.6vw,3.3rem);line-height:1.1}
.split p{margin-top:1.5rem;max-width:44ch;font-size:1.08rem;line-height:1.62;color:var(--ink-2)}
.section.green .split p{color:rgba(247,244,237,.82)}
.split .media{border-radius:18px;overflow:hidden;aspect-ratio:5/6;box-shadow:var(--shadow)}
.split .media img{width:100%;height:100%;object-fit:cover}
.tags{display:flex;gap:.55rem;flex-wrap:wrap;margin-top:1.8rem}
.tags span{font-size:.7rem;letter-spacing:.04em;border:1px solid var(--green-line);padding:.48rem .85rem;border-radius:100px;color:var(--ivory)}
.steps{list-style:none;display:flex;gap:1.6rem;margin:1.6rem 0 2.1rem;flex-wrap:wrap;padding:0}
.steps li{flex:1;min-width:120px;padding-top:1rem;border-top:1px solid var(--hair)}
.steps b{display:block;font-size:1.3rem;color:var(--gold);font-weight:600;font-variant-numeric:tabular-nums;margin-bottom:.3rem}
.steps span{font-size:.92rem;color:var(--ink-2);font-weight:500}
.section.green .steps li{border-top-color:var(--green-line)}.section.green .steps span{color:rgba(247,244,237,.8)}.section.green .steps b{color:var(--gold-soft)}

/* ---- OCCASIONS / card grids ---- */
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}
.tile{position:relative;border-radius:14px;overflow:hidden;aspect-ratio:3/4;display:flex;align-items:flex-end;background:var(--green)}
.tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--e)}
@media(hover:hover){.tile:hover img{transform:scale(1.08)}}
.tile::after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 42%,rgba(7,32,24,.8))}
.tile span{position:relative;z-index:2;padding:1.2rem;color:var(--ivory);font-size:1.3rem;font-weight:500;width:100%}
.tile span small{display:block;font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;color:var(--gold-soft);font-weight:600;margin-bottom:.25rem}
/* On mobile the tiles go full-width; the 3/4 portrait crop slices a landscape car photo
   in half (both ends cut off). Give the tiles a landscape aspect there so the whole car
   shows. */
/* …and lift the crop so the cars clear the label band. At 50% the line-up sits exactly
   where the gradient and the caption are, so the text landed across the cars. */
@media(max-width:600px){.tiles{grid-template-columns:1fr}.tiles .tile{aspect-ratio:16/10}
  .tiles .tile img{object-position:50% 72%}}

/* Homepage "Beyond the car" — venues + cultural: reuse the vouchers "how it works"
   sticky-stacking cards (.gstep-* + [data-gstep] scroll JS). Label + CTA styling only. */
.gstep-k{display:block;font-size:.66rem;letter-spacing:.22em;text-transform:uppercase;color:var(--gold-soft);font-weight:700;margin-bottom:.85rem}
.gstep-go{display:inline-flex;gap:.5rem;align-items:center;margin-top:1.15rem;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;font-weight:700;color:#fff}
.gstep-go span{transition:transform .4s var(--e)}
.disc-stack .gstep-tx h3{font-size:clamp(1.7rem,4vw,2.7rem)}
@media(hover:hover){.disc-stack .gstep-card:hover .gstep-go span{transform:translateX(5px)}}

/* ---- PACKAGES ---- */
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.2rem}
.pcard{display:flex;flex-direction:column;background:var(--white);border:1px solid var(--hair);border-radius:16px;overflow:hidden;
  transition:transform .55s var(--e),box-shadow .55s,border-color .55s}
@media(hover:hover){.pcard:hover{transform:translateY(-6px);box-shadow:var(--shadow);border-color:var(--green)}}
.pc-img{aspect-ratio:16/11;overflow:hidden;background:var(--ivory-2)}
.pc-img img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--e)}
@media(hover:hover){.pcard:hover .pc-img img{transform:scale(1.06)}}
.pc-body{padding:1.5rem 1.6rem 1.7rem;display:flex;flex-direction:column;flex:1}
.pcard .nm{font-size:1.5rem;font-weight:500;margin-bottom:.5rem;letter-spacing:-.02em}
.pcard .ds{color:var(--ink-2);font-size:.95rem;line-height:1.5;margin-bottom:1.3rem;flex:1}
.pcard .go{display:inline-flex;align-items:center;gap:.5rem;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--green);font-weight:700}
.pcard .go i{font-style:normal;transition:transform .4s var(--e)}
@media(hover:hover){.pcard:hover .go i{transform:translateX(5px)}}

/* ---- GALLERY band (auto-marquee) ---- */
.band-sec{padding-bottom:clamp(4.5rem,9vw,9rem)}
.gallery-band{overflow:hidden;margin-top:clamp(2rem,4vw,3.2rem);
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.band-track{display:flex;width:max-content;animation:band-marquee 36s linear infinite}
@media(hover:hover){.gallery-band:hover .band-track{animation-play-state:paused}}
.band-track figure{flex:0 0 clamp(220px,24vw,340px);border-radius:14px;overflow:hidden;aspect-ratio:4/5;margin:0 1rem 0 0}
.band-track img{width:100%;height:100%;object-fit:cover}
@keyframes band-marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
/* full gallery grid (gallery page) — grouped, uniform, editorial */
.gal-intro{padding-bottom:0}
.gal-group{padding:clamp(2rem,4.5vw,3.6rem) 0}
.gal-group:first-of-type{padding-top:clamp(.5rem,2vw,1.4rem)}
.gal-group .sec-head{margin-bottom:clamp(1.1rem,2.5vw,1.6rem)}
.gal-group .sec-head h2{font-size:clamp(1.5rem,3vw,2.1rem);font-weight:300;letter-spacing:-.02em;margin:.3rem 0 0}
/* Masonry (CSS columns): mixed portrait/landscape car + cabin photos show at their NATURAL aspect,
   so nothing is cropped to a sky band with the car cut off (the old fixed 4/3 tiles did that). */
.gallery-grid{column-count:3;column-gap:14px;margin:0}
@media(max-width:920px){.gallery-grid{column-count:2}}
@media(max-width:560px){.gallery-grid{column-count:1}}
.gal-tile{position:relative;margin:0 0 14px;overflow:hidden;border-radius:16px;background:var(--ivory-2);break-inside:avoid;-webkit-column-break-inside:avoid}
.gal-img{width:100%;height:auto;display:block;transition:transform 1s var(--e)}
.gal-tile figcaption{position:absolute;inset:auto 0 0 0;padding:28px 16px 12px;font-size:12px;letter-spacing:.04em;text-transform:uppercase;font-weight:600;
  color:#fff;background:linear-gradient(to top,rgba(7,32,24,.86),transparent);opacity:0;transform:translateY(8px);transition:.45s}
@media(hover:hover){.gal-tile:hover .gal-img{transform:scale(1.06)}.gal-tile:hover figcaption{opacity:1;transform:none}}
@media(hover:none){.gal-tile figcaption{opacity:1;transform:none}}
.ig-cta{text-align:center;background:var(--ivory-2)}
.ig-cta .ig-cta-in{max-width:54ch;margin:0 auto}
.ig-cta .sec-ix{display:block;margin-bottom:.7rem}
.ig-cta h2{font-size:clamp(1.6rem,3.4vw,2.4rem);font-weight:300;letter-spacing:-.02em;margin:0 0 .6rem}
.ig-cta p{color:var(--ink);margin:0 auto 1.6rem;font-size:1.05rem;line-height:1.55}

/* ---- REVIEWS ---- */
.rev-top{display:flex;align-items:center;gap:1.4rem;margin-bottom:2.4rem;flex-wrap:wrap}
.rev-top .big{font-size:3.6rem;color:var(--green);font-weight:600;line-height:1}
.rev-top .st{color:var(--gold);font-size:1.2rem;letter-spacing:.1em}
.rev-top .mt{font-size:.76rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2);font-weight:600}
.reviews{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.2rem}
.review{background:var(--white);border:1px solid var(--hair);border-radius:16px;padding:1.8rem;box-shadow:0 26px 44px -45px rgba(14,59,43,.32)}
.review .st{color:var(--gold);letter-spacing:.1em;font-size:.9rem}
.review blockquote{font-size:1.05rem;line-height:1.5;margin:.85rem 0 1.1rem;font-weight:500}
.review .by{font-size:.72rem;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-2);font-weight:600}.review .by b{color:var(--green)}

/* ---- AREAS chips ---- */
.areas{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:.5rem}
.areas a{font-size:.84rem;font-weight:500;border:1px solid rgba(14,59,43,.2);padding:.6rem 1.1rem;border-radius:100px;color:var(--ink-2);transition:.35s var(--e)}
@media(hover:hover){.areas a:hover{background:var(--green);color:var(--ivory);border-color:var(--green);transform:translateY(-1px)}}
.section.green .areas a{border-color:var(--green-line);color:var(--ivory)}
@media(hover:hover){.section.green .areas a:hover{background:var(--gold);color:var(--green-deep);border-color:var(--gold)}}

/* ---- WHY trio ---- */
.trio{display:grid;grid-template-columns:repeat(3,1fr);gap:2.4rem}
.trio .num{font-size:2.4rem;color:var(--gold);font-weight:500;font-variant-numeric:tabular-nums}
.section.green .trio .num{color:var(--gold-soft)}
.trio h3{font-size:1.5rem;margin:.5rem 0 .6rem}
.trio p{color:var(--ink-2);line-height:1.6}.section.green .trio p{color:rgba(247,244,237,.8)}

/* ---- FINAL CTA ---- */
.cta-final{position:relative;overflow:hidden;background:var(--green);color:var(--ivory);text-align:center;padding:clamp(5.5rem,10vw,9rem) var(--pad)}
.cta-final .cta-bg{position:absolute;inset:-9% 0;height:118%;will-change:transform}
.cta-final .cta-bg img{width:100%;height:100%;object-fit:cover;opacity:.22}
.cta-final::after{content:"";position:absolute;inset:0;background:radial-gradient(120% 78% at 50% 28%,transparent,rgba(7,32,24,.6));pointer-events:none}
.cta-final .inner{position:relative;z-index:2;max-width:780px;margin:0 auto}
.cta-final .sec-ix{justify-content:center;margin-bottom:1.4rem}
.cta-final h2{font-size:clamp(2.7rem,5.6vw,5.2rem);color:var(--ivory)}
.cta-final .em{color:var(--gold-soft);font-weight:500}
.cta-final .em.u::after{background:var(--gold);height:.06em;bottom:.05em}
.cta-final p{margin:1.4rem auto 2.4rem;color:rgba(247,244,237,.86);max-width:46ch;font-size:1.12rem}
.cta-final .cta-row{justify-content:center}

/* ---- INTERIOR page hero (vehicle/occasion/area/etc.) ---- */
.page-hero{padding:9rem var(--pad) 0;max-width:var(--max);margin:0 auto}
.page-hero .crumbs{font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;font-weight:500;color:var(--ink-3);margin-bottom:1.6rem;opacity:.85}
@media(hover:hover){.page-hero .crumbs a:hover{color:var(--green)}}
.page-hero h1{font-size:clamp(2.6rem,5.6vw,5.2rem);font-weight:300;letter-spacing:-.035em;max-width:18ch}
.page-hero .ph-lede{margin-top:1.3rem;max-width:54ch;font-size:1.12rem;color:var(--ink-2)}
.page-hero .cta-row{margin-top:2rem}
.page-hero .ph-media{margin-top:3rem;border-radius:20px;overflow:hidden;aspect-ratio:16/8;background:var(--ivory-2)}
.page-hero .ph-media img,.page-hero .ph-media video{width:100%;height:100%;object-fit:cover}
.page-hero .ph-media .glyph{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:5rem;color:var(--green-line);font-weight:300}

/* ---- PROSE / content ---- */
.prose{max-width:72ch}
.prose .lede-2{font-size:1.3rem;line-height:1.45;color:var(--ink);font-weight:500;margin-bottom:2rem}
.prose section{margin:0 0 2.2rem}
.prose h2{font-size:clamp(1.7rem,3vw,2.4rem);margin:0 0 .8rem}
.prose h3{font-size:1.3rem;margin:1.4rem 0 .6rem}
.prose p{color:var(--ink-2);margin:0 0 1rem;line-height:1.7}
.prose a:not(.btn){color:var(--green);font-weight:500;text-decoration:underline;text-decoration-color:var(--gold);text-underline-offset:3px}
@media(hover:hover){.prose a:not(.btn):hover{text-decoration-color:var(--green)}}
.prose a.btn{text-decoration:none}
.prose strong{color:var(--ink);font-weight:700}
.prose ul,.prose ol{color:var(--ink-2);margin:0 0 1rem 1.2rem;line-height:1.7}
.prose blockquote{border-left:2px solid var(--gold);padding-left:1.2rem;margin:1.4rem 0;color:var(--ink);font-size:1.1rem}
.lead-fact{background:none;border:0;border-radius:0;padding:0;margin:.2rem 0 2.6rem}
.lead-fact p{font-size:1.26rem;line-height:1.6;color:var(--ink);font-weight:400;margin:0;max-width:60ch;text-wrap:pretty}
@media(max-width:640px){.lead-fact p{font-size:1.14rem}}
.page-content{display:block}
.faq-block details{border-top:1px solid var(--hair);padding:1.1rem 0}
.faq-block details summary{cursor:pointer;font-weight:600;font-size:1.05rem;list-style:none;display:flex;justify-content:space-between;gap:1rem}
.faq-block details summary::after{content:"+";color:var(--green);font-weight:400}
.faq-block details[open] summary::after{content:"–"}
.faq-block details p{margin-top:.7rem;color:var(--ink-2)}
.faq-block h2{margin:1.4rem 0 .4rem}
/* ── Gift vouchers ────────────────────────────────────────────────────────── */
.gv-feature{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.6rem,4vw,3.4rem);align-items:center}
@media(max-width:820px){.gv-feature{grid-template-columns:1fr}}
.gv-card{aspect-ratio:8/5;border-radius:18px;background:linear-gradient(135deg,var(--green-deep),var(--green) 55%,#11503a);padding:clamp(1.4rem,3vw,2.2rem);position:relative;overflow:hidden;box-shadow:0 40px 80px -45px rgba(7,32,24,.6)}
.gv-card::before{content:"";position:absolute;inset:0;background:radial-gradient(90% 130% at 100% 0,rgba(216,194,145,.3),transparent 55%)}
.gv-card::after{content:"";position:absolute;inset:10px;border:1px solid rgba(216,194,145,.35);border-radius:12px;pointer-events:none}
.gv-card-in{position:relative;height:100%;display:flex;flex-direction:column;color:var(--ivory)}
.gv-k{font-size:.62rem;letter-spacing:.28em;text-transform:uppercase;font-weight:700;color:var(--gold-soft)}
.gv-brand{font-family:var(--serif);font-style:italic;font-weight:500;font-size:clamp(1.5rem,3vw,2.1rem);color:#fff;margin-top:.3rem}
.gv-line{font-size:.92rem;color:rgba(247,244,237,.8);margin-top:auto}
.gv-foot{display:flex;justify-content:space-between;align-items:center;margin-top:.7rem;padding-top:.7rem;border-top:1px solid rgba(216,194,145,.25);font-size:.72rem;color:var(--gold-soft);letter-spacing:.04em}
.gv-star{color:var(--gold)}
.gv-copy h2{font-size:clamp(1.7rem,3vw,2.3rem);margin:.3rem 0 .7rem}
.gv-copy p{color:var(--ink-2);line-height:1.6;max-width:52ch}
.gv-copy .cta-row{margin-top:1.4rem}
.gv-occs{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1.4rem}
.gv-occ{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--serif);font-style:italic;font-size:1.15rem;color:var(--green-deep);background:var(--white);border:1px solid var(--hair);border-radius:100px;padding:.6rem 1.4rem;text-decoration:none;transition:transform .35s var(--e),box-shadow .35s var(--e),border-color .35s var(--e),color .35s var(--e)}
@media(hover:hover){.gv-occ:hover{transform:translateY(-2px);border-color:var(--gold-soft);box-shadow:0 18px 32px -24px rgba(7,32,24,.45);color:var(--gold-ink)}}
.gv-occ-go{font-style:normal;font-size:.85em;opacity:.55;transition:transform .35s var(--e),opacity .35s var(--e)}
@media(hover:hover){.gv-occ:hover .gv-occ-go{transform:translateX(3px);opacity:1}}
.gv-flatlay{position:relative;margin:0;border-radius:20px;overflow:hidden;box-shadow:0 50px 90px -50px rgba(7,32,24,.5)}
/* The responsive pass stamps width/height attributes on every <img>. A presentational
   height BEATS aspect-ratio, so any img shaped with aspect-ratio must also reset height
   or it renders at its intrinsic size — which is how the sedan-vs-SUV comparison ended
   up as two 748px-tall slivers on a phone. */
.gv-flatlay img{display:block;width:100%;height:auto}
.gv-flatlay-cap{position:absolute;left:0;right:0;bottom:0;padding:clamp(1.4rem,4vw,2.6rem);background:linear-gradient(to top,rgba(7,32,24,.82),transparent);color:var(--ivory)}
.gv-flatlay-cap .sec-ix{color:var(--gold-soft)}
.gv-flatlay-cap p{margin:.4rem 0 0;font-size:clamp(1.05rem,2vw,1.3rem);max-width:32ch}
@media(max-width:640px){
  .gv-flatlay img{height:auto;aspect-ratio:4/3;object-fit:cover;object-position:50% 40%}
  .gv-flatlay-cap{position:static;background:var(--green-deep);padding:1.25rem 1.3rem 1.4rem}
  .gv-flatlay-cap p{max-width:none;font-size:1.12rem;line-height:1.45}}
.gv-photo{margin:0;border-radius:18px;overflow:hidden;box-shadow:0 40px 80px -45px rgba(7,32,24,.5);border:1px solid var(--hair)}
.gv-photo img{display:block;width:100%;height:auto}
/* ── Interactive FAQ page ─────────────────────────────────────────────────── */
.faq-wrap{display:grid!important;grid-template-columns:250px minmax(0,1fr);gap:clamp(2rem,4vw,3.6rem);align-items:start;max-width:1020px;margin-inline:auto}
.faq-wrap>*{min-width:0}
.faq-controls{position:sticky;top:96px;z-index:5;align-self:start}
/* Keep the search results + "Still have a question?" CTA in the CONTENT column — otherwise they
   auto-place under the sticky sidebar and scroll behind it, clashing through the pill gaps. */
.faq-empty,.faq-cta{grid-column:2}
.faq-controls .faq-pills{flex-direction:column;align-items:stretch}
.faq-list{min-width:0}
.faq-group:first-child{margin-top:0}
@media(max-width:760px){
  .faq-wrap{grid-template-columns:minmax(0,1fr)!important;gap:1.3rem}
  .faq-empty,.faq-cta{grid-column:1!important}   /* single column on mobile — was grid-column:2, which spawned a wide implicit 2nd column */
  .faq-controls{position:static}
  .faq-controls .faq-pills{flex-direction:row;flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;margin-top:.7rem;padding-bottom:.2rem}
  .faq-controls .faq-pills::-webkit-scrollbar{display:none}
  .faq-pill{flex:none;white-space:nowrap}
  .faq-empty,.faq-cta{grid-column:1}}
.faq-search{display:flex;align-items:center;gap:.7rem;background:var(--white);border:1px solid var(--hair);border-radius:100px;padding:.9rem 1.2rem;transition:border-color .25s var(--e),box-shadow .25s var(--e)}
.faq-search:focus-within{border-color:var(--gold-soft);box-shadow:0 0 0 4px rgba(169,133,74,.1)}
.faq-search svg{width:18px;height:18px;stroke:var(--gold-ink);fill:none;stroke-width:1.8;stroke-linecap:round;flex:none}
.faq-search input{border:none;outline:none;background:none;font-family:inherit;font-size:1rem;color:var(--ink);width:100%}
.faq-pills{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.9rem}
.faq-pill{font-size:.82rem;font-weight:600;color:var(--ink-2);padding:.5rem 1rem;border-radius:100px;border:1px solid var(--hair);background:var(--white);transition:all .25s var(--e)}
@media(hover:hover){.faq-pill:hover{border-color:var(--gold-soft);color:var(--green)}}
.faq-pill.on{background:var(--green);color:#fff;border-color:var(--green)}
.faq-group{margin-top:clamp(2.4rem,5vw,3.6rem)}
.faq-cat{font-family:var(--serif);font-style:italic;font-weight:400;font-size:clamp(1.35rem,2.6vw,1.8rem);letter-spacing:-.01em;text-transform:none;color:var(--green-deep);border:0;padding:0;margin:0 0 1.1rem}
.faq-item{position:relative;background:var(--white);border:1px solid var(--hair);border-radius:14px;margin-bottom:.7rem;padding:0 clamp(1.1rem,2vw,1.5rem);overflow:hidden;transition:border-color .3s var(--e),box-shadow .35s var(--e),background .3s var(--e)}
.faq-item::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--gold);transform:scaleY(0);transform-origin:top;transition:transform .45s var(--e)}
.faq-item.open{border-color:var(--gold-soft);box-shadow:0 18px 42px -26px rgba(7,32,24,.45)}
.faq-item.open::before{transform:scaleY(1)}
.faq-q{display:flex;align-items:center;justify-content:space-between;gap:1.4rem;width:100%;text-align:left;padding:1.25rem 0;font-size:clamp(1.08rem,1.6vw,1.2rem);font-weight:400;letter-spacing:-.01em;color:var(--ink);background:none;border:0;cursor:pointer;transition:color .25s var(--e)}
@media(hover:hover){.faq-q:hover{color:var(--green)}}
.faq-item.open .faq-q{color:var(--green-deep);font-weight:500}
.faq-ic{width:20px;height:20px;flex:none;stroke:var(--gold-ink);fill:none;stroke-width:2;stroke-linecap:round;transition:transform .4s var(--e)}
.faq-item.open .faq-ic{transform:rotate(135deg);stroke:var(--green)}
.faq-a{display:grid;grid-template-rows:0fr;transition:grid-template-rows .42s var(--e)}
.faq-item.open .faq-a{grid-template-rows:1fr}
.faq-a-in{overflow:hidden}
.faq-a-in p{color:var(--ink-2);line-height:1.65;padding:0 0 1.3rem;margin:0;max-width:64ch}
.faq-a-in a{color:var(--green);text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--gold-soft)}
.faq-empty{text-align:center;color:var(--ink-2);padding:2.5rem 0}
.faq-empty a{color:var(--green);font-weight:600}
.faq-cta{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;justify-content:center;margin-top:2.6rem;padding-top:2rem;border-top:1px solid var(--hair)}
.faq-cta span{font-family:var(--serif);font-style:italic;font-size:1.2rem;color:var(--green-deep)}
@media(prefers-reduced-motion:reduce){.faq-a{transition:none}.faq-ic{transition:none}}
@media(max-width:620px){.faq-controls{top:64px}}

/* ---- FORMS ---- */
.gform{max-width:760px}
.fstep{border:0;padding:0;min-width:0;margin:0 0 2.4rem}
.gform label,.field-label{display:block;font-size:.76rem;letter-spacing:.1em;text-transform:uppercase;font-weight:600;color:var(--ink-2);margin-bottom:.6rem}
.gform input,.gform select,.gform textarea{width:100%;min-width:0;padding:.95rem 1.1rem;border:1px solid var(--hair);border-radius:10px;background:var(--white);
  font-family:inherit;font-size:1rem;color:var(--ink);transition:border-color .3s}
.gform input:focus,.gform select:focus,.gform textarea:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 3px rgba(14,59,43,.16)}
/* Selects were the one control still wearing the browser's glossy native chrome
   (Kaiyo, 2026-08-08). Flatten to the form language + a gold chevron. */
.gform select{-webkit-appearance:none;-moz-appearance:none;appearance:none;color:var(--ink);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'%3E%3Cpath d='M1 1l6 6 6-6' fill='none' stroke='%238A6A38' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 1.05rem center;background-size:14px 9px;padding-right:2.8rem;cursor:pointer}
.gform select::-ms-expand{display:none}
.gform input.invalid{border-color:#B4452F}
.ffield-err{display:block;margin-top:.35rem;font-size:.8rem;color:#B4452F;letter-spacing:0;text-transform:none;font-weight:500;animation:fieldErrIn .3s var(--e)}
.cc-note{display:flex;align-items:center;gap:.6rem;margin:0 0 1.4rem;padding:.7rem 1rem;border-radius:12px;background:rgba(14,59,43,.07);border:1px solid var(--green-line,rgba(14,59,43,.18));color:var(--green-deep);font-size:.92rem;font-weight:500;line-height:1.4}
.cc-note .cc-tick{flex:none;display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--green);color:var(--ivory);font-size:.7rem;font-weight:700}
@keyframes fieldErrIn{from{opacity:0;transform:translateY(-3px)}to{opacity:1;transform:none}}
.fgrid-2{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.chip-group{display:flex;flex-wrap:wrap;gap:.6rem}
.chip-group label{display:inline-flex;align-items:center;gap:.4rem;border:1px solid var(--hair);border-radius:100px;padding:.6rem 1.1rem;cursor:pointer;
  font-size:.9rem;letter-spacing:0;text-transform:none;font-weight:500;color:var(--ink-2);margin:0;transition:.3s}
.chip-group input{display:none}
.chip-group label:has(input:checked){background:var(--green);color:var(--ivory);border-color:var(--green)}
/* Unavailable option (e.g. morning visits): visible but clearly not selectable */
.chip-group label.chip-na{cursor:not-allowed;opacity:.4;color:var(--ink-3)}   /* just dulled — no strike, no tag */
.chip-na-tag{font-size:.58rem;text-transform:uppercase;letter-spacing:.13em;font-weight:700;color:var(--ink-3);text-decoration:none;border:1px solid var(--hair);border-radius:100px;padding:.08rem .42rem}
.ferror{background:#FBEEE9;border:1px solid #E0B7AA;color:#8A3A24;padding:1rem 1.2rem;border-radius:10px;margin-bottom:1rem}
.ferror a{color:#8A3A24;font-weight:700}
.fsuccess{position:relative;background:linear-gradient(180deg,#fff,var(--paper-g));border:1px solid rgba(14,59,43,.12);
  padding:clamp(2.6rem,6vw,3.8rem) clamp(1.5rem,4vw,2.6rem);border-radius:22px;text-align:center;
  box-shadow:0 44px 100px -64px rgba(7,32,24,.55);overflow:hidden}
.fsuccess::after{content:"";position:absolute;left:0;right:0;top:0;height:3px;
  background:linear-gradient(90deg,transparent,var(--gold,#a9854a) 22%,var(--gold-soft,#c9a45a) 50%,var(--gold,#a9854a) 78%,transparent)}
.fsuccess::before{content:"\2713";display:grid;place-items:center;width:60px;height:60px;margin:0 auto 1.25rem;
  border-radius:50%;background:linear-gradient(160deg,#caa45c,#a9854a);color:#fff;font-size:1.7rem;line-height:1;
  box-shadow:0 16px 32px -12px rgba(169,133,74,.75),inset 0 1px 1px rgba(255,255,255,.4)}
.fsuccess h2{font-family:var(--serif),Georgia,serif;font-style:normal;font-weight:500;
  font-size:clamp(1.75rem,4.6vw,2.4rem);line-height:1.12;letter-spacing:-.01em;color:var(--green-deep);margin:0 0 .7rem;text-wrap:balance}
.fsuccess p{color:var(--ink-2);line-height:1.65;font-size:1.02rem;max-width:42ch;margin:0 auto}

/* ---- FOOTER ---- */
footer.site-footer{background:var(--green-deep);color:rgba(247,244,237,.72);padding:4.2rem var(--pad) 2.4rem;font-size:.9rem}
footer.site-footer .ft-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:2rem;padding-bottom:2.2rem;border-bottom:1px solid var(--green-line)}
footer.site-footer .logo{font-size:1.6rem;color:var(--ivory);letter-spacing:.06em;font-weight:700;margin-bottom:.8rem;text-transform:uppercase}
footer.site-footer h3{font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-soft);margin-bottom:1rem;font-weight:700}
footer.site-footer .col a{display:block;margin-bottom:.5rem;font-size:.92rem;color:rgba(247,244,237,.72)}
@media(hover:hover){footer.site-footer .col a:hover{color:var(--ivory)}}
footer.site-footer .ft-bot{margin-top:1.5rem;font-size:.8rem;display:flex;justify-content:space-between;flex-wrap:wrap;gap:1rem}

/* ---- MOBILE sticky CTA ---- */
.mobile-cta{display:none}

/* ---- MOTION ---- */
.reveal{opacity:0;transform:translateY(14px);transition:opacity .7s cubic-bezier(.22,1,.36,1),transform .7s cubic-bezier(.22,1,.36,1)}.reveal.in{opacity:1;transform:none}
/* ── "Polish": the brand line reprised as a divider, with a specular sweep ───────────────────
   Two copies of the line, stacked. `.pol-txt` is the real one — solid ink, selectable, and the
   only thing anyone needs. `.pol-shine` is an aria-hidden duplicate painted ONLY where a narrow
   travelling gradient crosses it, which is what makes the light appear to move across the
   letterforms instead of the text being a gradient. That distinction is load-bearing: strip the
   shine (no JS, reduced motion, old browser) and you still have solid, readable type — the
   effect is additive, never the thing carrying the words. */
.pol{padding:clamp(5.5rem,13vw,10rem) 0;text-align:center;overflow:hidden}
.pol-line{position:relative;display:inline-block;max-width:22ch;margin:0;color:var(--ink);
  font-size:clamp(1.85rem,4.4vw,3.3rem);line-height:1.14;letter-spacing:-.015em}
.pol-line em{font-family:var(--serif);font-style:italic}
/* inset:0 on the duplicate inherits the in-flow copy's exact box, so the two wrap identically
   at every width — no width math to drift out of sync. */
.pol-shine{position:absolute;inset:0;color:transparent;pointer-events:none;
  background-image:linear-gradient(100deg,transparent 42%,var(--gold) 50%,transparent 58%);
  background-repeat:no-repeat;background-size:280% 100%;background-position:155% 0;
  -webkit-background-clip:text;background-clip:text}
/* One pass, on entry — a reflection you catch once, not a loop that begs for attention. */
.pol-line.in .pol-shine{background-position:-65% 0;transition:background-position 1.9s cubic-bezier(.4,0,.2,1) .3s}
@media(prefers-reduced-motion:reduce){.pol-shine{display:none}}
html:not(.js) .pol-shine{display:none}
/* Reveal cadence: a heading leads, its supporting lede follows a beat later with less travel —
   so a section reads top-to-bottom instead of every line lifting in identical lockstep. */
.lede.reveal{transition-delay:.09s;transform:translateY(9px)}
html.preanim .reveal{transition:none}   /* first paint: in-view content snaps in, no fade-on-refresh */
/* Touch devices: never apply hover lift/slide transforms — they trigger iOS's "tap once to hover,
   tap again to follow" double-tap on cards and links. Hover effects stay desktop-only. */
@media(hover:none){
  /* Touch devices: show content immediately, no scroll-reveal. The opacity:0 + transform is the
     common cause of links needing two taps (offset hit-target) AND the fade-on-refresh.
     NOTE: kept FLAT — a nested @media here is fragile on some iOS Safari builds and, if it drops
     this rule, every revealed link/card becomes a two-tap target. Don't re-nest. */
  .reveal{opacity:1!important;transform:none!important;filter:none!important;transition:none!important}
  /* First tap must activate — iOS only fires click on the first tap for elements it deems
     interactive, so spell it out for our JS-clickable (non-anchor) tiles + every control. */
  a,button,[role="button"],[onclick],summary,label,input,select,textarea,
  .fleet-card,.gcard,.pcard,.vcard,.cc-car,.gv-occ,.int-card,.cg-tile,.cg-vid,.gal-tile,.rail-tile,
  .pkg-shot,.sr-next-card,.sr-pick,.tray-media,.bd-carousel figure,.lrow,.faq-q,.seg-b,.tab,
  .nav-book,.mm-book,.burger,.cc-launch,.lb-btn,.lb-img,.lb-video{
    touch-action:manipulation;-webkit-tap-highlight-color:rgba(0,0,0,0);cursor:pointer}
}
html:not(.js) .reveal{opacity:1;transform:none;filter:none}

/* ---- RESPONSIVE ---- */
/* Nav collapses to the burger before the links can crowd/wrap (the ~1024px squeeze) */
@media(max-width:1024px){
  .nav-menu{display:none}.burger{display:flex}
  .nav-book{display:inline-flex;align-items:center;font-size:.64rem;padding:.6rem .95rem;letter-spacing:.1em}  /* compact Book in the top nav */
  .nav-right{gap:.5rem}
  .nav-search{width:40px;height:40px;color:var(--green);border-color:var(--hair)}  /* clearer, tappable */
  .nav-search svg{width:19px;height:19px}
  .nav-book .nb-lg{display:none}.nav-book .nb-sm{display:inline}.nav-book{white-space:nowrap}}
@media(max-width:940px){
  .hero-top{grid-template-columns:1fr}.hero-stage{aspect-ratio:16/11}
  .fleet,.split,.split.rev{grid-template-columns:1fr;gap:2.2rem}.feat{min-height:340px}
  .trio{grid-template-columns:1fr;gap:1.8rem}
  .mobile-cta{display:none}}
@media(max-width:760px){
  .hero{padding-top:6.4rem}.hero h1{font-size:clamp(2.6rem,11vw,4rem)}.hero-aside{max-width:none}
  .kick span{letter-spacing:.16em;font-size:.62rem}
  .hero-meta .marqs{display:none}
  .sec-head{flex-direction:column;align-items:flex-start}.sec-head p{max-width:none}
  .sec-head h2,.cta-final h2,.page-hero h1{font-size:clamp(2rem,8.4vw,2.9rem)}
  .split h3{font-size:clamp(1.7rem,7vw,2.3rem)}
  /* These are landscape car photos; a tall 5/6 portrait crop on mobile forces an awkward frame
     (empty sky/wall on top, the car low and clipped). Landscape ratio shows the car naturally. */
  .split .media{aspect-ratio:4/3}
  .gallery-band{overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch}.gallery-band figure{scroll-snap-align:start;flex-basis:72vw}
  .gal-tile.wide{grid-column:span 1}
  .fgrid-2{grid-template-columns:1fr}
  .fgrid{grid-template-columns:1fr}
  footer.site-footer .ft-grid{grid-template-columns:1fr}
  .areas a,.nav-menu a{min-height:44px;display:inline-flex;align-items:center}}
@media(max-width:420px){.hero h1{font-size:clamp(2.3rem,11vw,3.1rem)}}
@media(prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;filter:none}
@media(hover:hover){.btn:hover,.tile:hover img,.feat:hover img,.fcard:hover img,.pcard:hover .pc-img img{transform:none}}
  .band-track{animation:none}.stage-media,.feat-media,.media-inner{inset:0;height:100%;transform:none!important}
  .stage-media img,.feat-media img{position:static;height:100%}
  *{scroll-behavior:auto}}

/* ===== Homepage elevation v3.1 — rhythm, depth, motion ===== */
/* Section label (replaces the dot-eyebrow on content sections) */
.sec-ix{display:inline-flex;align-items:center;gap:.7rem;font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;font-weight:600;color:var(--gold-ink);margin-bottom:1.1rem}
.sec-ix::before{content:"";width:26px;height:1px;background:currentColor;opacity:.7}
.sec-ix.gold,.section.green .sec-ix{color:var(--gold-soft)}
.sec-head h2{text-wrap:balance}
.sec-foot{margin-top:clamp(2.2rem,4vw,3.2rem);text-align:center}
/* Photo grade — lift the overcast skies, consistent across imagery */
.feat img,.fcard img,.tile img,.hero-stage img,.split .media img,.pc-img img,.gal-img,.cg-tile img,.svc-car-img img,.gc-img img,.ph-media img{filter:saturate(1.14) contrast(1.1) brightness(1.005)}
/* The line-up band scrolls/marquees — keep its images off the heavy filter and on their own GPU
   layer so iOS doesn't tear/re-rasterise them mid-scroll. */
.band-track{transform:translateZ(0)}
.band-track img{filter:saturate(1.08) contrast(1.04);backface-visibility:hidden;transform:translateZ(0)}
/* Bias framing down toward the cars so the grey sky recedes */
.cg-tile img{object-position:50% 64%}
.tile img{object-position:50% 60%}
.svc-car-img img{object-position:50% 64%}
/* Vintage Limousine fleet shot is a tall portrait with the cars low in frame — ground them so the whole cars sit in the 4:3 card without the wheels being cut. */
.svc-car[href$="/vintage-rolls-royce/"] .svc-car-img img{object-position:50% 82%}
.gc-img img{object-position:50% 56%}
.pc-img img{object-position:50% 60%}
.band-track img{object-position:50% 58%}
.fcard img{object-position:50% 62%}
.page-hero .ph-media img{object-position:50% 62%}
/* Graceful image fade-in (no green pop on scroll) — JS-gated so no-JS shows images */
html.js .feat img,html.js .fcard img,html.js .tile img,html.js .pc-img img,html.js .split .media img,html.js .gal-img{opacity:0;transition:opacity .7s var(--e)}
html.js .feat img.imgd,html.js .fcard img.imgd,html.js .tile img.imgd,html.js .pc-img img.imgd,html.js .split .media img.imgd,html.js .gal-img.imgd{opacity:1}
/* Parallax media inners */
.split .media{position:relative}
.split .media-inner{position:absolute;inset:-6% 0;height:112%;will-change:transform}
.split .media-inner img{width:100%;height:100%;object-fit:cover}
.split .media-inner .split-vid{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1.2s var(--e)}
.split .media-inner .split-vid.media-in{opacity:1}
/* Experience pull-quote archetype */
.pullquote{font-size:clamp(1.7rem,3vw,2.7rem);line-height:1.18;letter-spacing:-.02em;font-weight:400;color:var(--ivory);max-width:20ch}
.pullquote em{font-style:normal;color:var(--gold-soft)}
.pq-body{margin-top:1.6rem;max-width:46ch;font-size:1.06rem;line-height:1.64;color:rgba(247,244,237,.82)}
/* Button polish */
.btn-primary{box-shadow:0 14px 30px -18px rgba(7,32,24,.55)}
@media(hover:hover){.btn-primary:hover{box-shadow:0 18px 38px -16px rgba(7,32,24,.6)}}
.btn-secondary{position:relative}
/* Hero stacked CTA goes side-by-side again on wider screens via aside width; keep stacked under 1100 */
@media(max-width:1100px){.hero-top{grid-template-columns:1fr;align-items:start}.hero-aside{border-left:none;padding-left:0;max-width:46ch}.hero-aside .cta-row{flex-direction:row}}
@media(prefers-reduced-motion:reduce){.pcard .go i{transition:none}}

/* ===== Interior compatibility: crumbs, reco mesh, forms, builder ===== */
.crumbs{font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;font-weight:500;color:var(--ink-3);margin-bottom:1.4rem;opacity:.85}
.crumbs a{color:inherit;transition:color .25s var(--e)}
@media(hover:hover){.crumbs a:hover{color:var(--green)}}
.crumbs a{color:var(--ink-2)}
@media(hover:hover){.crumbs a:hover{color:var(--green)}}
/* Rolex-style quiet trail at the foot of the page, just above the footer */
.crumbs-foot{border-top:1px solid var(--hair);padding:clamp(1.4rem,3vw,2rem) 0}
.crumbs-foot .wrap{font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;font-weight:500;color:var(--ink-3);opacity:.85}
.crumbs-foot a{color:var(--ink-2);transition:color .25s var(--e)}
@media(hover:hover){.crumbs-foot a:hover{color:var(--green)}}
.page-hero .ph-media .tray-media{width:100%;height:100%;object-fit:cover}

.reco-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1.8rem 2.4rem}
.reco-grid section{margin:0}
.reco-grid h2{font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;font-weight:700;color:var(--green);margin:0 0 .9rem}
.reco-grid ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}
.reco-grid li a,.reco-grid p a{color:var(--ink);font-weight:500;border-bottom:1px solid transparent;transition:.25s var(--e)}
@media(hover:hover){.reco-grid li a:hover,.reco-grid p a:hover{color:var(--green);border-bottom-color:var(--gold)}}
.reco-grid p{color:var(--ink-2);line-height:1.6;margin:0}

/* modest top by default (works mid-page, e.g. the showroom form after the hero) */
.form-hero,.build-hero{max-width:var(--max);margin:0 auto;padding:1.6rem var(--pad) 0}
/* clear the fixed nav ONLY when the form-hero is the page's first element (book/quote).
   On the showroom the form-hero is nested mid-page, so it keeps the modest top above. */
main>.form-hero:first-child,main>.build-hero:first-child{padding-top:clamp(5rem,7vw,6.4rem)}
.build-hero{text-align:center}
.form-hero .idx,.build-hero .idx{display:inline-block;font-size:.68rem;letter-spacing:.28em;text-transform:uppercase;font-weight:600;color:var(--green);margin-bottom:.85rem}
.form-hero h1,.form-hero h2,.build-hero h1{font-size:clamp(2.3rem,4.6vw,3.8rem);font-weight:300;letter-spacing:-.035em}
.form-hero .veh-tagline,.build-hero .build-sub{margin-top:.9rem;max-width:54ch;font-size:1.04rem;color:var(--ink-2)}
.build-hero .build-sub{margin-left:auto;margin-right:auto}
.form-alt{margin:1.3rem 0 clamp(1.5rem,3.2vw,2.1rem);display:flex;gap:.8rem;flex-wrap:wrap}
.form-alt a{font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;font-weight:700;padding:.85rem 1.4rem;border-radius:100px;border:1px solid var(--hair);color:var(--green);transition:.4s var(--e)}
.form-alt a.wa{background:var(--green);color:var(--ivory);border-color:var(--green)}
@media(hover:hover){.form-alt a:hover{transform:translateY(-2px)}}

/* Showroom film banner — full-bleed light video interlude in the page body. */
.sfilm{position:relative;overflow:hidden;isolation:isolate;min-height:clamp(420px,60vh,600px);
  display:flex;align-items:center;justify-content:center;text-align:center;background:var(--green-deep)}
.sfilm-media{position:absolute;inset:0;z-index:0}
.sfilm .vh-bg,.sfilm .vh-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.sfilm::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(180deg,rgba(8,24,18,.42),rgba(8,24,18,.62))}
.sfilm-in{position:relative;z-index:2;max-width:48ch;padding:2.4rem var(--pad)}
.sfilm-in .sec-ix{color:var(--gold-soft);display:flex;justify-content:center}
.sfilm-in h2{color:var(--ivory);font-size:clamp(2.2rem,4.8vw,3.6rem);font-weight:300;letter-spacing:-.03em;margin:.6rem 0 .9rem}
.sfilm-in p{color:rgba(247,244,237,.92);font-size:clamp(1rem,1.4vw,1.18rem);line-height:1.55;max-width:46ch;margin:0 auto}
.sfilm-play{position:absolute;z-index:3;left:50%;bottom:clamp(1.6rem,4vw,2.6rem);transform:translateX(-50%);
  width:64px;height:64px;border-radius:50%;border:1px solid rgba(247,244,237,.55);background:rgba(8,24,18,.32);
  -webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:var(--ivory);display:flex;align-items:center;
  justify-content:center;cursor:pointer;transition:opacity .45s var(--e),transform .3s var(--e),background .3s var(--e)}
.sfilm-play svg{width:26px;height:26px;margin-left:3px;fill:currentColor}
@media(hover:hover){.sfilm-play:hover{background:rgba(8,24,18,.55);transform:translateX(-50%) scale(1.07)}}
.sfilm-play:active{transform:translateX(-50%) scale(.95)}
.sfilm.is-playing .sfilm-play{opacity:0;pointer-events:none}

.form-section,.build-stage{max-width:var(--max);margin:0 auto;padding:clamp(2.5rem,5vw,4rem) var(--pad) clamp(4rem,8vw,7rem)}
.fprogress{height:3px;background:var(--ivory-2);border-radius:3px;margin-bottom:2.4rem;overflow:hidden;max-width:760px}
.fprogress b{display:block;height:100%;background:var(--gold);border-radius:3px;width:calc(var(--cur,1) / var(--steps,4) * 100%);transition:width .5s var(--e)}
.fsteps{max-width:760px}
.fstep legend{display:block;width:100%;font-size:1.35rem;font-weight:500;letter-spacing:-.01em;color:var(--ink);margin:0 0 1.4rem;padding:0;float:none}
.fstep-n{color:var(--gold);font-weight:700;margin-right:.5rem}
.fnav{margin-top:2.2rem}
/* Native date input: render the value in ink (not the muted grey segments) and match field height */
/* iOS Safari renders date/time inputs at an oversized intrinsic width that ignores width:100%
   and overflows the field/margin. -webkit-appearance:none resets them to a normal block input
   (the native picker still opens on tap), so they honour the container width. */
.gform input[type=date],.gform input[type=time]{-webkit-appearance:none;appearance:none;width:100%;min-width:0;max-width:100%;box-sizing:border-box}
.gform input[type=date],.gform input[type=time]{color:var(--ink);min-height:3.1rem}
.gform input[type=date]::-webkit-datetime-edit,.gform input[type=time]::-webkit-datetime-edit{color:var(--ink)}
.gform input[type=date]::-webkit-calendar-picker-indicator,.gform input[type=time]::-webkit-calendar-picker-indicator{opacity:.55;cursor:pointer}
.fhint{font-size:.95rem;color:var(--ink-2);margin:-.5rem 0 .35rem;text-transform:none;letter-spacing:0;font-weight:400}
.fhint-q{font-weight:600;color:var(--ink-1)}
.fhint-sub{display:block;font-size:.82rem;color:var(--ink-3);line-height:1.5;margin:0 0 1rem;max-width:42ch;text-transform:none;letter-spacing:0;font-weight:400}
.ffield{margin-bottom:0}.ffield span{display:block}
.gform input::placeholder,.gform textarea::placeholder{color:var(--ink-3);opacity:1}
.ffield.wide{grid-column:1/-1}
/* Turnstile runs in INVISIBLE mode (no box, no logo) — reserve no space for it */
.fturnstile{margin:0;min-height:0}
.fnav{display:flex;gap:.8rem;margin-top:1.8rem;flex-wrap:wrap}
.ftrust{margin-top:1rem;font-size:.82rem;color:var(--ink-3);display:flex;align-items:center;gap:.55rem;flex-wrap:wrap}
.ftrust .ft-stars{color:var(--gold);letter-spacing:.08em}
.chip-group label{text-transform:none;letter-spacing:0;font-size:.92rem;font-weight:500;color:var(--ink);margin:0}
.build-noscript{color:var(--ink-2)}
#builder{min-height:300px}
@media(max-width:620px){main>.form-hero:first-child,main>.build-hero:first-child{padding-top:6.5rem}}

/* ===== Book / quote page — two-column split (form + sticky reassurance panel) ===== */
.book-split{max-width:var(--max);margin:0 auto;padding:clamp(7rem,9vw,8.6rem) var(--pad) clamp(3.5rem,7vw,6rem);
  display:grid;grid-template-columns:1fr;gap:clamp(2rem,4vw,3.4rem);align-items:start}
@media(min-width:1000px){.book-split{grid-template-columns:minmax(0,1fr) 350px;gap:clamp(2.6rem,4vw,4rem)}}
.book-main{min-width:0}
.book-main>.form-hero{max-width:none;margin:0 0 clamp(1.7rem,3vw,2.4rem);padding:0}
.book-main>.form-section{max-width:none;margin:0;padding:0}
.book-main .fprogress,.book-main .fsteps,.book-main .gform{max-width:none}
.book-aside{min-width:0;order:2}
@media(min-width:1000px){.book-aside{position:sticky;top:calc(88px + 1.2rem)}}
/* Quiet objection-handling block below the form — for the hesitant scroller, not mid-form */
.book-reassure{max-width:var(--max);margin:0 auto;padding:0 var(--pad) clamp(2.6rem,5vw,4rem)}
.book-reassure .br-lead{max-width:62ch;margin:0 auto clamp(1.1rem,2.4vw,1.5rem);padding-top:clamp(1.7rem,3vw,2.4rem);
  border-top:1px solid var(--hair);text-align:center;font-size:.9rem;color:var(--ink-3);line-height:1.6}
.book-reassure .br-lead span{color:var(--ink-2);font-weight:600}
.br-cards{display:grid;grid-template-columns:1fr 1fr;gap:clamp(.7rem,1.6vw,1.1rem);max-width:34rem;margin:0 auto}
.br-card{display:flex;align-items:center;gap:.75rem;padding:.55rem;border:1px solid var(--hair);border-radius:14px;
  background:var(--ivory);transition:border-color .2s var(--e),transform .2s var(--e)}
.br-card:hover{border-color:color-mix(in oklab,var(--green) 32%,transparent);transform:translateY(-2px)}
.br-thumb{flex:none;width:62px;height:46px;border-radius:9px;overflow:hidden;background:var(--hair)}
.br-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.br-tx{min-width:0;display:flex;flex-direction:column;gap:1px}
.br-tx b{font-size:.9rem;font-weight:600;color:var(--ink);letter-spacing:-.01em;line-height:1.2}
.br-tx>span{font-size:.77rem;color:var(--ink-3)}
.br-tx>span span{color:var(--green);font-weight:600}
@media(max-width:460px){.br-cards{grid-template-columns:1fr;max-width:22rem}}
.book-panel{border:1px solid var(--hair);border-radius:20px;overflow:hidden;background:var(--white);
  box-shadow:0 34px 66px -50px rgba(7,32,24,.55)}
.book-panel>img{width:100%;height:168px;object-fit:cover;object-position:50% 60%;display:block}
.bp-body{padding:clamp(1.5rem,2.3vw,2rem)}
.bp-h{font-size:.66rem;letter-spacing:.24em;text-transform:uppercase;font-weight:700;color:var(--green);margin:0 0 1.1rem}
.bp-list{list-style:none;margin:0 0 1.6rem;padding:0;display:flex;flex-direction:column;gap:.95rem}
.bp-list li{position:relative;padding-left:1.7rem;font-size:.97rem;line-height:1.5;color:var(--ink-2)}
.bp-list li b{display:block;color:var(--ink);font-weight:600;margin-bottom:.15rem}
.bp-list li span{display:block;color:var(--ink-2)}
.bp-list li::before{content:"✓";position:absolute;left:0;top:0;color:var(--gold-ink);font-weight:700}
.bp-cta .btn{display:flex;width:100%;text-align:center;justify-content:center}
.bp-note{margin:1.1rem 0 0;font-size:.9rem;line-height:1.5;color:var(--ink-3);text-align:center}
.bp-note a{color:var(--green);font-weight:600;text-decoration:underline;text-decoration-color:var(--gold);text-underline-offset:3px;text-decoration-skip-ink:none}
@media(hover:hover){.bp-note a:hover{text-decoration-color:var(--green)}}

/* ===== Build Your Line-Up (interactive) ===== */
.bld{max-width:var(--max);margin:0 auto;padding-bottom:2rem}
.bld-steps{display:flex;flex-wrap:wrap;gap:.4rem 1.4rem;list-style:none;margin:0 0 2.4rem;padding:0}
.bld-step button{display:inline-flex;align-items:center;gap:.55rem;background:none;border:none;cursor:pointer;font:inherit;color:var(--ink-3);font-size:.72rem;letter-spacing:.13em;text-transform:uppercase;font-weight:600;padding:.4rem 0}
.bld-step button:disabled{opacity:.4;cursor:not-allowed}
.bld-step-n{width:24px;height:24px;border-radius:50%;border:1px solid var(--hair);display:inline-flex;align-items:center;justify-content:center;font-size:.72rem}
.bld-step.is-on button{color:var(--green)}
.bld-step.is-on .bld-step-n{background:var(--green);color:var(--ivory);border-color:var(--green)}
.bld-step.is-done .bld-step-n{background:var(--gold);color:var(--green-deep);border-color:var(--gold)}
.bld-head{margin:0 0 1.8rem;max-width:62ch}
.bld-head h2{font-size:clamp(1.7rem,3.4vw,2.6rem);font-weight:300;letter-spacing:-.02em;margin:0 0 .5rem}
.bld-head p{color:var(--ink-2);line-height:1.6;margin:0}
.bld-head b{color:var(--green);font-weight:700}

.bld-mode{margin:0 0 1.8rem}
.bld-mode-q{display:block;font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;font-weight:700;color:var(--gold-ink);margin-bottom:.7rem}
.bld-mode-opts{display:grid;grid-template-columns:1fr 1fr;gap:.9rem}
.bld-mode-btn{display:flex;flex-direction:column;gap:.15rem;text-align:left;background:var(--white);border:1px solid var(--hair);border-radius:14px;padding:1rem 1.2rem;cursor:pointer;transition:transform .35s var(--e),border-color .35s var(--e),box-shadow .35s var(--e)}
@media(hover:hover){.bld-mode-btn:hover{transform:translateY(-2px);border-color:var(--gold-soft);box-shadow:0 18px 34px -26px rgba(7,32,24,.4)}}
.bld-mode-btn b{color:var(--green-deep);font-size:1.05rem;font-weight:600}
.bld-mode-btn span{color:var(--ink-3);font-size:.85rem}
.bld-bases-lbl{font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;font-weight:700;color:var(--ink-3);margin:0 0 .9rem;scroll-margin-top:90px}
@media(max-width:520px){.bld-mode-opts{grid-template-columns:1fr}}
.bld-bases{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1.2rem}
.bld-base{display:flex;flex-direction:column;text-align:left;background:var(--white);border:1px solid var(--hair);border-radius:16px;overflow:hidden;cursor:pointer;transition:.4s var(--e);padding:0}
@media(hover:hover){.bld-base:hover{border-color:var(--green);transform:translateY(-3px);box-shadow:0 18px 40px -24px rgba(14,59,43,.4)}}
.bld-base-img{display:block;aspect-ratio:16/10;background:var(--ivory-2) center 45%/cover no-repeat;position:relative}
.bld-base[data-base="vintage-line-up"] .bld-base-img{background-position:center 72%}
.bld-base--scratch .bld-base-img{display:flex;align-items:center;justify-content:center}
.bld-base--scratch .bld-base-img::after{content:"";position:absolute;inset:0;background:linear-gradient(rgba(7,32,24,.34),rgba(7,32,24,.5))}
.bld-base-plus{position:relative;z-index:1;display:grid;place-items:center;width:52px;height:52px;border-radius:50%;font-size:1.9rem;font-weight:200;color:#fff;background:rgba(7,32,24,.5);border:1px solid rgba(247,244,237,.55);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}
.bld-base-body{padding:1.1rem 1.3rem 1.4rem}
.bld-base-nm{display:block;font-weight:600;font-size:1.1rem;margin-bottom:.25rem}
.bld-base-sum{display:block;color:var(--ink-2);font-size:.92rem;line-height:1.5}

.bld-cars{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:1.1rem;margin-bottom:1.6rem}
.bld-car{position:relative;background:var(--white);border:1px solid var(--hair);border-radius:14px;overflow:hidden;display:flex;flex-direction:column}
.bld-img{display:block;aspect-ratio:16/10;background:var(--ivory-2) center 70%/cover no-repeat}
.bld-edit{display:inline-flex;align-items:center;gap:.3rem;margin:-.4rem 0 1.4rem;padding:.5rem .9rem .5rem 0;background:none;border:none;color:var(--green);font:inherit;font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;font-weight:700;cursor:pointer;transition:color .25s var(--e)}
@media(hover:hover){.bld-edit:hover{color:var(--gold-ink)}}
.bld-img--render{background-size:contain;background-position:center;background-color:var(--paper-g)}
.bld-car-meta{padding:.9rem 1rem 1rem;display:flex;flex-direction:column;gap:.7rem}
.bld-car-nm{font-weight:600;font-size:.96rem;color:var(--ink)}
.bld-qty{display:inline-flex;align-items:center;gap:.4rem;align-self:flex-start;border:1px solid var(--hair);border-radius:100px;padding:.2rem}
.bld-q{width:30px;height:30px;border-radius:50%;border:none;background:var(--paper-g);color:var(--green);font-size:1.1rem;cursor:pointer;line-height:1}
@media(hover:hover){.bld-q:hover{background:var(--green);color:var(--ivory)}}
.bld-q-n{min-width:1.4rem;text-align:center;font-weight:700}
.bld-rm{position:absolute;top:.6rem;right:.6rem;width:28px;height:28px;border-radius:50%;border:none;background:rgba(20,21,15,.55);color:#fff;cursor:pointer;font-size:1rem;line-height:1}
@media(hover:hover){.bld-rm:hover{background:#8A3A24}}
.bld-empty{color:var(--ink-2)}
.bld-add-open{display:inline-flex;align-items:center;gap:.6rem;margin-top:1.2rem;background:var(--green);border:1px solid var(--green);color:var(--ivory);border-radius:100px;padding:.95rem 1.8rem;font-size:.74rem;letter-spacing:.12em;text-transform:uppercase;font-weight:700;cursor:pointer;transition:transform .4s var(--e),background .35s var(--e)}
@media(hover:hover){.bld-add-open:hover{background:var(--green-deep);transform:translateY(-2px)}}
.bld-add-open .bld-add-ic{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:rgba(247,244,237,.18);font-size:1.05rem;line-height:1}
/* Quick-add row — small car thumbnails, one tap to add */
.bld-quick{margin-top:2rem}
.bld-quick-lbl{display:block;font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:var(--gold-ink);margin-bottom:.9rem}
.bld-quick-row{display:flex;gap:.8rem;overflow-x:auto;padding-bottom:.5rem;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.bld-quick-row::-webkit-scrollbar{display:none}
.bld-quick-car{flex:0 0 auto;width:118px;background:none;border:none;cursor:pointer;text-align:left;padding:0;color:var(--ink)}
.bld-quick-img{position:relative;display:block;width:118px;height:78px;border-radius:11px;background:var(--paper-g) center 70%/cover no-repeat;border:1px solid var(--hair);overflow:hidden;transition:border-color .3s var(--e),transform .3s var(--e)}
.bld-quick-plus{position:absolute;top:.4rem;right:.4rem;display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:rgba(7,32,24,.78);color:var(--ivory);font-size:1.1rem;line-height:1}
@media(hover:hover){.bld-quick-car:hover .bld-quick-img{border-color:var(--green);transform:translateY(-2px)}}
.bld-quick-nm{display:block;margin-top:.45rem;font-size:.78rem;font-weight:600;color:var(--ink);line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

.bld-addons{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1.1rem}
.bld-addon{background:var(--white);border:1px solid var(--hair);border-radius:14px;padding:1.2rem;display:flex;flex-direction:column;gap:.8rem;transition:.3s}
.bld-addon.is-on{border-color:var(--green);background:var(--paper-g)}
.bld-add-img,.bld-add-gl,.bld-add-ic-svg{width:54px;height:54px;border-radius:12px;background:var(--ivory-2) center 45%/cover no-repeat;display:flex;align-items:center;justify-content:center;font-size:1.5rem;color:var(--green);flex:0 0 auto}
.bld-add-ic-svg svg{width:26px;height:26px;color:var(--gold-ink)}
.bld-addon.is-on .bld-add-ic-svg{background:var(--green);color:#fff}
.bld-addon.is-on .bld-add-ic-svg svg{color:var(--gold-soft)}
.bld-add-meta{display:flex;flex-direction:column;gap:.25rem}
.bld-add-nm{font-weight:600;display:block}
.bld-add-note{color:var(--ink-2);font-size:.92rem;line-height:1.5;display:block}
.bld-add-btn{align-self:flex-start;margin-top:auto;border:1px solid var(--green);background:none;color:var(--green);border-radius:100px;padding:.6rem 1.3rem;font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;font-weight:700;cursor:pointer;transition:.3s}
.bld-add-btn[aria-pressed="true"]{background:var(--green);color:var(--ivory)}
.bld-add-req{display:flex;flex-direction:column;gap:.4rem;width:100%;margin-top:.2rem;animation:bldfade .35s var(--e)}
.bld-add-req span{font-size:.74rem;letter-spacing:.04em;text-transform:uppercase;font-weight:600;color:var(--ink-2)}
.bld-add-req span em{text-transform:none;letter-spacing:0;font-weight:400;color:var(--ink-3)}
.bld-add-req input{width:100%;border:1px solid var(--green);border-radius:10px;background:var(--white);padding:.7rem .9rem;font:inherit;font-size:.95rem;color:var(--ink)}
.bld-add-req input:focus{outline:none;box-shadow:0 0 0 3px rgba(14,59,43,.14)}
@keyframes bldfade{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
.bld-nudge{background:var(--paper-g);border-radius:14px;padding:1.2rem 1.4rem;margin-bottom:1.4rem}
.bld-nudge p{margin:0 0 .7rem;color:var(--ink-2)}
.bld-nudge-cta{display:flex;flex-wrap:wrap;gap:.6rem}
.bld-chip{border:1px solid var(--hair);background:var(--white);color:var(--green);border-radius:100px;padding:.5rem 1rem;font-size:.85rem;font-weight:600;cursor:pointer;transition:.3s}
@media(hover:hover){.bld-chip:hover{border-color:var(--green);background:var(--green);color:var(--ivory)}}

.bld-rev{background:var(--white);border:1px solid var(--hair);border-radius:16px;padding:1.6rem;display:flex;flex-direction:column;gap:.9rem;margin-bottom:1.6rem}
.bld-rev-car{display:flex;align-items:center;gap:1rem}
.bld-rev-car .bld-img{width:84px;aspect-ratio:16/11;border-radius:10px;flex:none}
.bld-rev-nm{font-weight:600}
.bld-rev-adds{border-top:1px solid var(--hair);padding-top:1rem}
.bld-rev-k{font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);font-weight:700}
.bld-rev-adds ul{margin:.5rem 0 0 1.1rem;color:var(--ink-2)}
.bld-rev-cta{display:flex;gap:.8rem;flex-wrap:wrap;align-items:center}
.bld-rev-cta .btn{margin:0}
.bld-wa{display:inline-flex;align-items:center;gap:.45rem;font-size:.82rem;letter-spacing:.04em;font-weight:600;color:var(--green);text-decoration:none;padding:.5rem .2rem}
.bld-wa::before{content:"";width:16px;height:16px;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a10 10 0 0 0-8.6 15l-1.3 4.7 4.8-1.3A10 10 0 1 0 12 2zm5.8 14.2c-.2.7-1.4 1.3-2 1.4-.5.1-1.2.1-1.9-.1-.4-.1-1-.3-1.7-.6-3-1.3-4.9-4.3-5-4.5s-1.2-1.6-1.2-3 .7-2.1 1-2.4c.2-.3.5-.3.7-.3h.5c.2 0 .4 0 .6.5l.8 2c.1.2.1.4 0 .5l-.4.5-.3.3c-.2.2-.3.4-.1.6.2.4.9 1.4 1.9 2.3 1.2 1.1 2.3 1.4 2.6 1.5.2.1.4.1.6-.1l.8-1c.2-.2.4-.2.6-.1l1.9.9c.2.1.4.2.4.3.1.1.1.6-.1 1.2z'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a10 10 0 0 0-8.6 15l-1.3 4.7 4.8-1.3A10 10 0 1 0 12 2zm5.8 14.2c-.2.7-1.4 1.3-2 1.4-.5.1-1.2.1-1.9-.1-.4-.1-1-.3-1.7-.6-3-1.3-4.9-4.3-5-4.5s-1.2-1.6-1.2-3 .7-2.1 1-2.4c.2-.3.5-.3.7-.3h.5c.2 0 .4 0 .6.5l.8 2c.1.2.1.4 0 .5l-.4.5-.3.3c-.2.2-.3.4-.1.6.2.4.9 1.4 1.9 2.3 1.2 1.1 2.3 1.4 2.6 1.5.2.1.4.1.6-.1l.8-1c.2-.2.4-.2.6-.1l1.9.9c.2.1.4.2.4.3.1.1.1.6-.1 1.2z'/%3E%3C/svg%3E") center/contain no-repeat;flex:none}
@media(hover:hover){.bld-wa:hover{color:var(--gold-ink)}}
.bld-fine{margin-top:1rem;color:var(--ink-2);font-size:.92rem}
.bld-fine a{color:var(--green);font-weight:600}

.bld-barwrap{position:sticky;bottom:1rem;margin-top:2rem;z-index:5;display:flex;flex-direction:column;gap:.55rem}
.bld-bar{display:flex;align-items:center;gap:1rem;background:var(--green);color:var(--ivory);border-radius:100px;padding:.85rem 1rem .85rem 1.6rem;box-shadow:0 18px 50px -20px rgba(7,32,24,.7)}
.bld-bar-info{flex:1 1 auto;display:flex;flex-direction:column;justify-content:center;gap:.25rem;min-width:0}
/* selected-car thumbnails: one scrollable row, each with an ✕ to remove */
.bld-bar-thumbs{display:flex;gap:.5rem;overflow-x:auto;padding:.15rem 1.6rem;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.bld-bar-thumbs::-webkit-scrollbar{display:none}
.bld-thumb{position:relative;flex:0 0 auto;width:62px;height:44px;border-radius:9px;overflow:hidden;box-shadow:0 8px 18px -10px rgba(7,32,24,.6)}
.bld-thumb-go{display:block;width:100%;height:100%;padding:0;border:0;background:none;cursor:pointer}
.bld-thumb .bld-img{width:100%;height:100%;aspect-ratio:auto;border-radius:0}
.bld-car--flash{animation:bldrowflash 1.1s var(--e)}
@keyframes bldrowflash{0%,100%{box-shadow:0 0 0 0 rgba(169,133,74,0)}30%{box-shadow:0 0 0 3px var(--gold)}}
.bld-thumb-x{position:absolute;top:2px;right:2px;width:18px;height:18px;padding:0;border:0;border-radius:50%;background:rgba(7,32,24,.86);color:#fff;font-size:.85rem;line-height:1;display:grid;place-items:center;cursor:pointer}
@media(hover:hover){.bld-thumb-x:hover{background:var(--green-deep)}}
.bld-thumb-q{position:absolute;left:2px;bottom:2px;background:rgba(7,32,24,.86);color:#fff;font-size:.58rem;font-weight:700;padding:0 4px;border-radius:4px}
.bld-bar-back{flex:0 0 auto;width:40px;height:40px;margin-right:-.5rem;border:1px solid rgba(247,244,237,.35);border-radius:50%;background:transparent;color:var(--ivory);font-size:1.15rem;line-height:1;cursor:pointer;display:grid;place-items:center}
@media(hover:hover){.bld-bar-back:hover{background:rgba(247,244,237,.12)}}
.bld-bar-k{display:block;font-size:.62rem;line-height:1;letter-spacing:.18em;text-transform:uppercase;color:var(--gold-soft)}
.bld-bar-v{display:block;font-weight:600;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bld-bar-cta{background:var(--gold);color:var(--green-deep);border:none;border-radius:100px;padding:.85rem 1.6rem;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;font-weight:700;cursor:pointer;transition:.3s;white-space:nowrap}
@media(hover:hover){.bld-bar-cta:hover{background:var(--gold-2)}}
.bld-bar-cta:disabled{background:transparent;border:1px solid rgba(247,244,237,.32);color:rgba(247,244,237,.55);cursor:not-allowed}
@media(hover:hover){.bld-bar-cta:disabled:hover{background:transparent}}
.bld-bar--flash{animation:bldflash .6s var(--e)}
@keyframes bldflash{0%{transform:scale(1)}40%{transform:scale(1.015)}100%{transform:scale(1)}}

.bld-drawer{position:fixed;inset:0;z-index:60;background:rgba(7,32,24,.5);backdrop-filter:blur(4px);opacity:0;transition:opacity .4s var(--e)}
.bld-drawer.is-open{opacity:1}
.bld-drawer-in{position:absolute;right:0;top:0;bottom:0;width:min(560px,92vw);background:var(--ivory);transform:translateX(100%);transition:transform .45s var(--e);display:flex;flex-direction:column}
.bld-drawer.is-open .bld-drawer-in{transform:none}
.bld-drawer-head{display:flex;align-items:center;justify-content:space-between;padding:1.5rem var(--pad);border-bottom:1px solid var(--hair)}
.bld-drawer-head h2{font-size:1.3rem;font-weight:500;margin:0}
.bld-drawer-x{background:none;border:none;font-size:1.6rem;cursor:pointer;color:var(--ink-2);line-height:1}
.bld-drawer-body{overflow-y:auto;flex:1 1 auto;min-height:0;padding:1.5rem var(--pad) 2rem}
.bld-drawer-foot{flex:0 0 auto;padding:1rem var(--pad) calc(1rem + env(safe-area-inset-bottom,0px));border-top:1px solid var(--hair);background:var(--ivory);box-shadow:0 -14px 30px -20px rgba(7,32,24,.25)}
.bld-drawer-foot .bld-drawer-done{width:100%}
.bld-grp{margin-bottom:1.8rem}
.bld-grp h3{font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;color:var(--green);font-weight:700;margin:0 0 .9rem}
.bld-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.8rem}
.bld-pick{position:relative;display:flex;flex-direction:column;background:var(--white);border:1px solid var(--hair);border-radius:12px;overflow:hidden;cursor:pointer;text-align:left;padding:0;color:var(--ink);transition:.3s}
@media(hover:hover){.bld-pick:hover{border-color:var(--green)}}
.bld-pick.is-in{border-color:var(--green);box-shadow:inset 0 0 0 1px var(--green)}
.bld-pick-img{display:block;aspect-ratio:4/3;background:var(--ivory-2) center 70%/cover no-repeat}
.bld-pick-nm{padding:.6rem .7rem;font-size:.85rem;font-weight:600;color:var(--ink)}
.bld-pick-add,.bld-pick-in{position:absolute;top:.5rem;right:.5rem;width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.9rem}
.bld-pick-add{background:var(--white);color:var(--green);border:1px solid var(--hair)}
.bld-pick-in{background:var(--green);color:var(--ivory)}
.bld-drawer-note{margin-top:1rem;color:var(--ink-2);font-size:.9rem}
@media(max-width:620px){.bld-bar{padding:.8rem .9rem .8rem 1.5rem}.bld-bar-cta{padding:.7rem 1.1rem}}

/* ===== AI Concierge ===== */
.cc-launch{position:fixed;right:clamp(16px,2vw,28px);bottom:clamp(16px,2vw,28px);z-index:50;display:inline-flex;align-items:center;gap:.6rem;
  background:var(--green);color:var(--ivory);border:none;cursor:pointer;padding:.85rem 1.3rem;border-radius:100px;
  box-shadow:0 18px 40px -16px rgba(7,32,24,.6);transition:transform .4s var(--e),background .4s}
@media(hover:hover){.cc-launch:hover{transform:translateY(-2px);background:var(--green-deep)}}
.cc-launch-ic{color:var(--gold-soft);font-size:1rem}
.cc-launch-tx{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700}
.cc-panel{position:fixed;right:clamp(16px,2vw,28px);bottom:clamp(16px,2vw,28px);z-index:51;width:min(390px,calc(100vw - 32px));
  max-height:min(620px,calc(100vh - 56px));display:flex;flex-direction:column;background:var(--ivory);border:1px solid var(--hair);
  border-radius:20px;overflow:hidden;box-shadow:0 40px 80px -30px rgba(7,32,24,.6);
  animation:cc-in .45s var(--e)}
.cc-panel[hidden]{display:none}
@keyframes cc-in{from{opacity:0;transform:translateY(16px) scale(.98)}to{opacity:1;transform:none}}
.cc-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:1.3rem 1.4rem 1rem;background:var(--green);color:var(--ivory)}
.cc-kicker{display:block;font-size:.64rem;letter-spacing:.2em;text-transform:uppercase;font-weight:700;color:var(--gold-soft);margin-bottom:.3rem}
.cc-title{font-size:1.15rem;font-weight:500;letter-spacing:-.01em;color:var(--ivory)}
.cc-close{background:none;border:none;color:var(--ivory);font-size:1.5rem;line-height:1;cursor:pointer;opacity:.8;padding:0}
@media(hover:hover){.cc-close:hover{opacity:1}}
.cc-body{padding:1.3rem 1.4rem 1.5rem;overflow-y:auto}
.cc-say{font-size:1rem;line-height:1.5;color:var(--ink);margin-bottom:1.1rem;font-weight:500}
.cc-opts{display:flex;flex-direction:column;gap:.55rem}
.cc-opt{text-align:left;background:var(--white);border:1px solid var(--hair);border-radius:12px;padding:.85rem 1.1rem;cursor:pointer;
  font:inherit;font-size:.96rem;color:var(--ink);font-weight:500;transition:.3s var(--e)}
@media(hover:hover){.cc-opt:hover{border-color:var(--green);background:var(--paper-g);transform:translateX(2px)}}
.cc-back{background:none;border:none;color:var(--ink-3);font:inherit;font-size:.82rem;font-weight:600;cursor:pointer;padding:0;margin-bottom:.9rem}
@media(hover:hover){.cc-back:hover{color:var(--green)}}
.cc-pkg{display:flex;flex-direction:column;gap:.2rem;background:var(--green);color:var(--ivory);border-radius:14px;padding:1rem 1.2rem;margin:0 0 1rem}
.cc-pkg-k{font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;font-weight:700;color:var(--gold-soft)}
.cc-pkg-n{font-size:1.1rem;font-weight:500}
.cc-cars{display:grid;grid-template-columns:1fr 1fr;gap:.6rem;margin-bottom:1.1rem}
.cc-car{display:flex;flex-direction:column;background:var(--white);border:1px solid var(--hair);border-radius:12px;overflow:hidden;position:relative;transition:.3s}
@media(hover:hover){.cc-car:hover{border-color:var(--green)}}
.cc-car-img{display:block;aspect-ratio:16/10;background:var(--ivory-2) center 45%/cover no-repeat}
.cc-car-nm{padding:.55rem .7rem;font-size:.82rem;font-weight:600;color:var(--ink)}
.cc-car .cc-go{position:absolute;top:.4rem;right:.5rem;color:var(--ivory);font-size:.8rem;background:rgba(7,32,24,.55);width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center}
.cc-value{font-size:.95rem;line-height:1.55;color:var(--ink-2);margin:0 0 1rem}
.cc-obj{margin:0 0 1.1rem;border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);padding:.5rem 0}
.cc-obj summary{cursor:pointer;font-size:.9rem;font-weight:600;color:var(--green);list-style:none}
.cc-obj summary::-webkit-details-marker{display:none}
.cc-obj p{margin-top:.6rem;font-size:.9rem;line-height:1.55;color:var(--ink-2)}
.cc-cta{display:flex;flex-direction:column;gap:.55rem;margin-bottom:.9rem}
.cc-primary,.cc-secondary,.cc-wa,.cc-build{display:inline-flex;align-items:center;justify-content:center;text-align:center;border-radius:100px;
  padding:.85rem 1.2rem;font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;font-weight:700;cursor:pointer;transition:.4s var(--e)}
.cc-primary{background:var(--green);color:var(--ivory)}
@media(hover:hover){.cc-primary:hover{background:var(--green-deep)}}
.cc-secondary{border:1px solid var(--hair);color:var(--green)}
@media(hover:hover){.cc-secondary:hover{border-color:var(--green)}}
.cc-wa{background:var(--gold);color:var(--green-deep)}
@media(hover:hover){.cc-wa:hover{background:var(--gold-2)}}
.cc-build{border:1px dashed var(--green-line);color:var(--green)}
@media(hover:hover){.cc-build:hover{border-style:solid;background:var(--paper-g)}}
.cc-fine{font-size:.82rem;color:var(--ink-3);line-height:1.5;margin:1.3rem 0 0;padding-top:1.1rem;border-top:1px solid var(--hair)}.cc-fine a{color:var(--green);font-weight:600;text-decoration:underline;text-decoration-color:var(--gold)}
@media(max-width:940px){.cc-launch{bottom:16px}.cc-panel{bottom:16px;max-height:min(560px,calc(100vh - 130px))}}
@media(prefers-reduced-motion:reduce){.cc-panel{animation:none}
@media(hover:hover){.cc-opt:hover{transform:none}}}

/* ===== Vehicle page ===== */
.veh-gallery{padding-top:clamp(3rem,6vw,5rem)}
.cg-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:1rem}
.cg-tile{margin:0;border-radius:14px;overflow:hidden;aspect-ratio:4/5;background:var(--ivory-2)}
.cg-tile img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--e)}
@media(hover:hover){.cg-tile:hover img{transform:scale(1.05)}}
/* Video tiles never sit empty: a deep-green ground holds the frame until the
   poster paints, so a slow connection sees a considered dark card, not a hole. */
.cg-vid{position:relative;background:linear-gradient(165deg,#123F2E,#0E3B2B 55%,#0A2C20)}
.cg-video{width:100%;height:100%;object-fit:cover;display:block;background:linear-gradient(165deg,#123F2E,#0E3B2B 55%,#0A2C20)}
.cg-play{position:absolute;inset:0;margin:auto;width:54px;height:54px;border-radius:50%;background:rgba(7,32,24,.5);box-shadow:0 8px 24px -8px rgba(0,0,0,.5);pointer-events:none;display:grid;place-items:center;transition:opacity .5s var(--e)}
.cg-play::after{content:"";width:0;height:0;border-style:solid;border-width:8px 0 8px 14px;border-color:transparent transparent transparent var(--ivory);margin-left:3px}
.cg-video.media-in + .cg-play{opacity:0}
/* Moments (social/video) page */
.mom-wall .cg-tile{aspect-ratio:4/5}
.mom-wall .cg-video{object-position:50% 42%}
.mom-cap{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:.9rem 1rem;font-size:.82rem;font-weight:600;color:var(--ivory);background:linear-gradient(transparent,rgba(7,32,24,.72));pointer-events:none}
/* ── Fleet in Motion — 4:5 reel-style video showcase (autoplays in view) ── */
.vidx-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:clamp(.8rem,1.4vw,1.2rem)}
.vidx-grid .cg-tile{aspect-ratio:4/5;cursor:pointer}
.vidx-grid .cg-video{object-position:50% 50%}
.vidx-grid .cg-play{display:none}   /* clips autoplay in view — no play badge needed */
/* the signature film doesn't autoplay — keep the play badge so it clearly reads as tap-to-watch */
.vidx-grid .vidx-feature .cg-play{display:grid}
.vidx-feature{cursor:pointer}
/* signature film leads full-width (cinematic hero), the montages sit 2-up beneath it */
.vidx-films .vidx-feature{grid-column:1/-1}
.vidx-films .vidx-feature .cg-play{width:72px;height:72px}
/* archive row — older landscape footage, shown smaller (16:9, 3-up) at lowest priority */
.vidx-arc{grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr))}
.vidx-arc .cg-tile{aspect-ratio:16/9}
/* mobile: archive shows one-per-row, square (beats the .cg-grid 2-up mobile rule) */
@media(max-width:760px){.vidx-arc.cg-grid{grid-template-columns:1fr}.vidx-arc .cg-tile{aspect-ratio:1/1}}
.vidx-films{grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr))}
.vidx-films .cg-tile{aspect-ratio:16/9}
/* mobile: the films are landscape montages — one per row, full width (beats the .cg-grid 2-up mobile rule) */
@media(max-width:760px){.vidx-films.cg-grid{grid-template-columns:1fr}.vidx-films .cg-tile{aspect-ratio:16/10}}
.vidx-cap{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:1.4rem 1.15rem 1.05rem;display:flex;flex-direction:column;align-items:flex-start;gap:.28rem;
  background:linear-gradient(transparent,rgba(7,32,24,.18) 32%,rgba(7,32,24,.9));pointer-events:none}
.vidx-name{font-family:var(--display,var(--serif,Georgia,serif));font-size:clamp(1rem,1.4vw,1.15rem);font-weight:500;color:#fff;letter-spacing:-.01em;line-height:1.18;text-shadow:0 1px 10px rgba(0,0,0,.35)}
.vidx-go{pointer-events:auto;font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;font-weight:700;color:var(--gold-soft);transition:color .3s var(--e)}
.vidx-go span{display:inline-block;transition:transform .4s var(--e)}
@media(hover:hover){.vidx-go:hover{color:#fff}.vidx-go:hover span{transform:translateX(4px)}}
.mom-reels{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr));gap:1.2rem;align-items:start}
.mom-follow{text-align:center;max-width:60ch;margin-inline:auto;position:relative;z-index:1}
.mom-follow h2{color:var(--ivory);margin:.4rem 0 .6rem}
.mom-follow p{color:rgba(247,244,237,.82);margin:0 0 1.4rem}
.mom-follow .cta-row{justify-content:center;flex-wrap:wrap}
.mom-feed{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(50%,180px),1fr));gap:.8rem}
.mom-post{position:relative;aspect-ratio:1;border-radius:12px;overflow:hidden;background:var(--paper-g);display:block}
.mom-post img{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--e)}
@media(hover:hover){.mom-post:hover img{transform:scale(1.06)}}
.mom-post-play{position:absolute;top:.55rem;right:.55rem;width:24px;height:24px;border-radius:50%;background:rgba(7,32,24,.6);display:grid;place-items:center}
.mom-post-play::after{content:"";width:0;height:0;border-style:solid;border-width:5px 0 5px 8px;border-color:transparent transparent transparent #fff;margin-left:2px}
.veh-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:clamp(2rem,5vw,4.5rem);align-items:start}
.veh-main{min-width:0}
.veh-aside{position:sticky;top:6.5rem}
.va-card{background:var(--white);border:1px solid var(--hair);border-radius:18px;padding:1.7rem;box-shadow:var(--shadow);display:flex;flex-direction:column}
.va-card .sec-ix{margin-bottom:1.1rem}
.va-row{display:flex;justify-content:space-between;gap:1rem;padding:.7rem 0;border-bottom:1px solid var(--hair);font-size:.92rem}
.va-row span{color:var(--ink-3)}.va-row b{color:var(--ink);font-weight:600;text-align:right}
.va-occ{padding:1.1rem 0 1.3rem}
.va-occ>span{display:block;font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3);font-weight:700;margin-bottom:.7rem}
.va-chips{display:flex;flex-wrap:wrap;gap:.4rem}
.va-chips a{font-size:.8rem;border:1px solid var(--hair);border-radius:100px;padding:.4rem .8rem;color:var(--green);font-weight:500;transition:.3s var(--e)}
@media(hover:hover){.va-chips a:hover{background:var(--green);color:var(--ivory);border-color:var(--green)}}
.va-card .btn{justify-content:center;margin-top:.55rem}
.va-quote{text-align:center;margin-top:1rem;font-size:.84rem;color:var(--green);font-weight:600}
@media(hover:hover){.va-quote:hover{text-decoration:underline;text-decoration-color:var(--gold);text-underline-offset:3px}}
@media(max-width:940px){.veh-layout{grid-template-columns:1fr}.veh-aside{position:static}.va-card{max-width:520px}}

/* ===== Service-area map (custom constellation) ===== */
.area-map-sec .sec-head{margin-bottom:clamp(1.5rem,3vw,2.6rem)}
.area-map{max-width:920px;margin:0 auto}
.amp{width:100%;height:auto;display:block;overflow:visible}
.amp-coast{stroke:var(--gold-soft);stroke-width:1.5;opacity:.3;stroke-dasharray:2 9;stroke-linecap:round}
.amp-sea{fill:var(--gold-soft);opacity:.4;font-size:13px;letter-spacing:.32em;font-weight:600}
.amp-link{stroke:var(--gold);stroke-width:1;opacity:.13}
.amp-node{cursor:pointer}
.amp-hit{fill:transparent}
.amp-dot{fill:var(--gold-soft);transition:transform .35s var(--e),fill .35s;transform-box:fill-box;transform-origin:center}
.amp-lbl{fill:rgba(247,244,237,.82);font-size:17px;font-weight:600;letter-spacing:.01em;transition:fill .3s;paint-order:stroke;pointer-events:none}
.amp-node:focus-visible .amp-dot{transform:scale(1.9);fill:var(--gold)}
@media(hover:hover){.amp-node:hover .amp-dot{transform:scale(1.9);fill:var(--gold)}}
.amp-node:focus-visible .amp-lbl{fill:var(--ivory);font-weight:700}
@media(hover:hover){.amp-node:hover .amp-lbl{fill:var(--ivory);font-weight:700}}
.amp-pin{fill:var(--gold)}
.amp-pulse{fill:none;stroke:var(--gold);stroke-width:2;transform-box:fill-box;transform-origin:center;animation:amp-ping 2.8s var(--e) infinite}
.amp-show-lbl{fill:var(--gold-soft);font-size:13px;font-weight:700;letter-spacing:.18em}
@keyframes amp-ping{0%{transform:scale(.7);opacity:.9}70%,100%{transform:scale(2.8);opacity:0}}
.amp-chips{display:flex;flex-wrap:wrap;gap:.55rem;justify-content:center;margin-top:clamp(1.8rem,3vw,2.6rem)}
.amp-chips a{font-size:.82rem;font-weight:500;border:1px solid var(--green-line);padding:.5rem 1rem;border-radius:100px;color:rgba(247,244,237,.85);transition:.3s var(--e)}
@media(hover:hover){.amp-chips a:hover{background:var(--gold);color:var(--green-deep);border-color:var(--gold);transform:translateY(-1px)}}
@media(max-width:680px){.amp-lbl{font-size:23px}.amp-show-lbl{font-size:18px}.amp-sea{display:none}}
@media(prefers-reduced-motion:reduce){.amp-pulse{animation:none;opacity:.4}}

/* ===== Signature motion (Phase 3) ===== */
/* Gold hairline labels draw on when their section reveals */
.sec-ix::before{transition:width .75s var(--e) .15s}
html.js .reveal:not(.in) .sec-ix::before{width:0}
/* Headline underline — slow gold shimmer */
.hero h1 .em.u::after,.cta-final .em.u::after{background:linear-gradient(90deg,var(--gold),var(--gold-2) 50%,var(--gold));background-size:220% 100%;animation:em-shimmer 7s linear infinite}
@keyframes em-shimmer{from{background-position:0 0}to{background-position:220% 0}}
/* Cursor-reactive hero media (JS sets transform) */
.hero-stage img,.hero-stage video{transition:transform .6s var(--e)}
/* Card lift refinement */
.review{transition:transform .5s var(--e),box-shadow .5s}
@media(hover:hover){.review:hover{transform:translateY(-4px);box-shadow:0 30px 50px -38px rgba(14,59,43,.45)}}
@media(prefers-reduced-motion:reduce){
  .hero h1 .em.u::after,.cta-final .em.u::after{animation:none}
  html.js .reveal:not(.in) .sec-ix::before{width:26px}
  .hero-stage img,.hero-stage video{transition:none}}

/* ===== Guide article ===== */
.guide-hero h1{max-width:22ch}
.guide-hero .ph-media{aspect-ratio:16/7}
.guide-hero .ph-media img{object-position:50% 42%;scale:1.12}
@media(prefers-reduced-motion:reduce){.guide-hero .ph-media img{scale:none}}
@media(max-width:640px){.guide-hero .ph-media{aspect-ratio:4/3}}
.guide-hero .sec-ix{margin-top:.2rem}
.ga-card{background:var(--white);border:1px solid var(--hair);border-radius:18px;padding:1.7rem;box-shadow:var(--shadow);display:flex;flex-direction:column}
.ga-card .sec-ix{margin-bottom:1rem}
.ga-rel{list-style:none;margin:0 0 1.3rem;padding:0;display:flex;flex-direction:column}
.ga-rel li{border-bottom:1px solid var(--hair)}.ga-rel li:first-child{border-top:1px solid var(--hair)}
.ga-rel a{display:block;padding:.72rem 0;font-size:.94rem;font-weight:500;color:var(--ink);line-height:1.35;transition:.25s var(--e)}
@media(hover:hover){.ga-rel a:hover{color:var(--green);padding-left:.3rem}}
.ga-cta{border-top:1px solid var(--hair);padding-top:1.3rem;display:flex;flex-direction:column;gap:.55rem}
.ga-k{font-size:.98rem;font-weight:600;color:var(--ink);margin-bottom:.3rem}
.ga-cta .btn{justify-content:center}
.ga-by{margin-top:1.2rem;font-size:.78rem;color:var(--ink-3);font-style:italic}

/* ===== Share this guide ===== */
.share-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;
  margin-top:2.6rem;padding-top:1.6rem;border-top:1px solid var(--hair)}
.share-lbl{font-size:.95rem;color:var(--ink-2)}
.share-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.62rem 1.1rem;border-radius:999px;
  border:1px solid var(--gold);background:transparent;color:var(--gold-ink);font:inherit;font-size:.9rem;
  font-weight:600;cursor:pointer;transition:background .25s ease,color .25s ease,border-color .25s ease}
.share-btn .ic{width:17px;height:17px}
.share-btn .share-txt{white-space:nowrap}
.share-btn.is-done{border-color:var(--green,#0E3B2B);color:var(--green,#0E3B2B)}
@media(hover:hover){.share-btn:hover{background:var(--gold);color:#fff;border-color:var(--gold)}}
@media(max-width:520px){.share-row{justify-content:center;text-align:center}}

/* Cross-link venue strip — "All venues" link under the grid */
.ar-more{margin-top:1.8rem;text-align:center}
.ar-more a{font-size:.95rem;font-weight:600;color:var(--gold-ink);border-bottom:1px solid var(--gold);
  padding-bottom:2px;transition:color .25s ease,border-color .25s ease}
@media(hover:hover){.ar-more a:hover{color:var(--ink)}}

/* ===== Guides hub (editorial cards) ===== */
.guides-cluster{padding:clamp(2.6rem,4vw,4rem) 0}
.guides-cluster .sec-head{margin-bottom:clamp(1.6rem,3vw,2.4rem)}
.guides-cluster .sec-head h2{font-size:clamp(1.7rem,3.2vw,2.6rem)}
.gcards{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr));gap:1.2rem}
.gcard{display:flex;flex-direction:column;background:var(--white);border:1px solid var(--hair);border-radius:16px;overflow:hidden;transition:transform .5s var(--e),box-shadow .5s,border-color .5s}
@media(hover:hover){.gcard:hover{transform:translateY(-5px);box-shadow:var(--shadow);border-color:var(--green)}}
.gc-img{aspect-ratio:16/10;overflow:hidden;background:var(--ivory-2)}
.gc-img img{width:100%;height:100%;object-fit:cover;object-position:50% 60%;transition:transform 1s var(--e)}
@media(hover:hover){.gcard:hover .gc-img img{transform:scale(1.06)}}
.gc-img .glyph{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:var(--green-line);font-size:2.4rem}
.gc-body{padding:1.2rem 1.3rem 1.4rem;display:flex;flex-direction:column;gap:.55rem;flex:1}
.gc-cat{font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;font-weight:700;color:var(--gold-ink)}
.gc-t{font-size:1.08rem;font-weight:600;line-height:1.3;color:var(--ink)}
.gc-go{margin-top:auto;font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--green);font-weight:700}
.gc-go span{display:inline-block;transition:transform .3s var(--e)}
@media(hover:hover){.gcard:hover .gc-go span{transform:translateX(4px)}}
.home-journal{grid-template-columns:repeat(3,1fr)}
@media(max-width:820px){.home-journal{grid-template-columns:1fr}}
/* Editorial journal — featured read + reading list (distinct from grid cards) */
.hjx{display:grid;grid-template-columns:1.25fr 1fr;gap:clamp(1.5rem,3vw,2.6rem);align-items:start}
.hjx-lead{display:flex;flex-direction:column;text-decoration:none;color:inherit;background:var(--white);border:1px solid var(--hair);border-radius:18px;overflow:hidden;transition:transform .5s var(--e),box-shadow .5s var(--e)}
@media(hover:hover){.hjx-lead:hover{transform:translateY(-3px);box-shadow:0 40px 70px -46px rgba(7,32,24,.42)}}
.hjx-lead-img{aspect-ratio:16/10;overflow:hidden}
.hjx-lead-img img{width:100%;height:100%;object-fit:cover;object-position:50% 60%;transition:transform .9s var(--e)}
@media(hover:hover){.hjx-lead:hover .hjx-lead-img img{transform:scale(1.04)}}
.hjx-lead-body{padding:clamp(1.4rem,2.6vw,2rem)}
.hjx-cat{display:block;font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;font-weight:700;color:var(--gold-ink)}
.hjx-lead-body h3{font-family:var(--display);font-size:clamp(1.5rem,2.6vw,2rem);line-height:1.12;color:var(--green-deep);margin:.5rem 0 .6rem;letter-spacing:-.01em}
.hjx-lead-body p{color:var(--ink-2);line-height:1.6;margin:0 0 1rem;max-width:48ch}
.hjx-go{display:inline-flex;align-items:center;gap:.5rem;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;font-weight:700;color:var(--green)}
.hjx-go span{transition:transform .3s var(--e)}
@media(hover:hover){.hjx-lead:hover .hjx-go span{transform:translateX(4px)}}
.hjx-list{display:flex;flex-direction:column}
.hjx-row{display:grid;grid-template-columns:96px 1fr auto;align-items:center;gap:1.1rem;padding:1.1rem 0;border-bottom:1px solid var(--hair);text-decoration:none;color:inherit;transition:transform .35s var(--e)}
.hjx-row:first-child{padding-top:0}.hjx-row:last-child{border-bottom:none}
@media(hover:hover){.hjx-row:hover{transform:translateX(.5rem)}}
.hjx-row-img{aspect-ratio:3/2;border-radius:11px;overflow:hidden;background:var(--paper-g)}
.hjx-row-img img{width:100%;height:100%;object-fit:cover;object-position:50% 60%}
.hjx-row-t{display:block;font-size:1.05rem;line-height:1.3;color:var(--green-deep);font-weight:500;margin-top:.2rem}
.hjx-row-go{color:var(--gold-ink);font-size:1.1rem;opacity:.5;transition:transform .3s var(--e),opacity .3s var(--e)}
@media(hover:hover){.hjx-row:hover .hjx-row-go{transform:translateX(4px);opacity:1}}
@media(max-width:820px){.hjx{grid-template-columns:1fr}}

/* ===== Occasion / area cars strip ===== */
.svc-cars{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,200px),1fr));gap:1rem}
.svc-car{display:flex;flex-direction:column;background:var(--white);border:1px solid var(--hair);border-radius:14px;overflow:hidden;transition:transform .5s var(--e),box-shadow .5s,border-color .5s}
@media(hover:hover){.svc-car:hover{transform:translateY(-4px);box-shadow:var(--shadow);border-color:var(--green)}}
/* Same 3/2 frame as the fleet-page card (.fc-img). These show the SAME photo, so a
   different aspect ratio meant the same car sat at a different scale on each page —
   the "In this line-up" cards read as a separate, worse crop. One shape, one crop. */
.svc-car-img{aspect-ratio:3/2;overflow:hidden;background:var(--green)}
.svc-car-img img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--e)}
@media(hover:hover){.svc-car:hover .svc-car-img img{transform:scale(1.06)}}
.svc-car-img .glyph{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:var(--green-line);font-size:2rem}
.svc-car-nm{padding:.8rem 1rem 1rem;font-size:.92rem;font-weight:600;color:var(--ink)}

/* ===== Mobile gallery ===== */
@media(max-width:760px){.cg-grid{grid-template-columns:1fr 1fr;gap:.6rem}.cg-tile{aspect-ratio:4/5}}

/* ===== Mobile hero refinements ===== */
@media(max-width:760px){
  .hero-trust{text-wrap:balance}
  .hero-aside .cta-row .btn{padding:.95rem 1.6rem}
  .hero{padding-top:6rem}}

/* ===== Spacing tighten (less empty) + hero marque marquee w/ glisten ===== */
.section{padding:clamp(3.4rem,6.2vw,6.4rem) 0}
.hero{padding-top:7.2rem}
.sec-head{margin-bottom:clamp(2rem,3.2vw,2.8rem)}
.hero-top{margin-bottom:clamp(1.6rem,3vw,2.4rem)}
@media(min-width:1101px){.hero-top{gap:clamp(2rem,4vw,5rem)}}

/* hero-meta → auto-scrolling marque names with a gold glisten */
.hero-meta{display:block;margin-top:1.5rem;padding-top:1.3rem;border-top:1px solid var(--hair);overflow:hidden;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent)}
.marq-track{display:flex;gap:0;width:max-content;align-items:center;animation:hmarq 44s linear infinite}
.marq{flex:none;width:clamp(54px,7vw,82px);height:30px;margin-right:clamp(2.6rem,4.6vw,4rem);
  background:linear-gradient(100deg,var(--ink-3) 42%,var(--gold-2) 50%,var(--ink-3) 58%);background-size:300% 100%;
  -webkit-mask-position:center;mask-position:center;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;
  opacity:.8;animation:glisten 5.5s linear infinite}
.marq-txt{width:auto;height:auto;-webkit-mask-image:none;mask-image:none;font-family:var(--display);font-style:italic;font-weight:900;font-size:1.55rem;letter-spacing:.02em;line-height:1;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}
@media(hover:hover){.hero-meta:hover .marq-track{animation-play-state:paused}}
@keyframes hmarq{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes glisten{0%{background-position:130% 0}100%{background-position:-130% 0}}
@media(prefers-reduced-motion:reduce){.marq-track{animation:none}.marq{animation:none;background:var(--ink-3)}.marq-txt{-webkit-text-fill-color:var(--ink-3);color:var(--ink-3)}}

/* ===== Coverage directory (replaces constellation map) ===== */
.ar-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:clamp(1.6rem,3vw,3rem)}
.ar-col h3{font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;font-weight:700;color:var(--gold-soft);margin-bottom:1rem;padding-bottom:.7rem;border-bottom:1px solid var(--green-line)}
.ar-col ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.6rem}
.ar-col a{color:rgba(247,244,237,.86);font-size:1rem;font-weight:500;transition:.25s var(--e);display:inline-block}
@media(hover:hover){.ar-col a:hover{color:var(--gold-soft);transform:translateX(3px)}}
.ar-base{margin-top:clamp(2.4rem,4vw,3.4rem);padding-top:1.8rem;border-top:1px solid var(--green-line);display:flex;align-items:center;gap:1rem;flex-wrap:wrap;
  font-size:.95rem;color:rgba(247,244,237,.8)}
.ar-base b{color:var(--ivory);font-weight:600}
.ar-base .ar-pin{color:var(--gold);font-size:.7rem}
.ar-base .ar-hours{color:rgba(247,244,237,.62);font-size:.86rem}
.ar-base .btn{margin-left:auto}

/* ===== Interactive map (Leaflet, branded) ===== */
.gcl-map{height:clamp(360px,52vh,560px);border-radius:20px;overflow:hidden;box-shadow:var(--shadow);background:var(--ivory-2);z-index:1}
.gcl-map .leaflet-container{font-family:var(--ui)}
.gcl-pin span{display:block;width:18px;height:18px;border-radius:50%;background:var(--gold);border:3px solid var(--ivory);box-shadow:0 4px 12px rgba(7,32,24,.5),0 0 0 6px rgba(169,133,74,.25)}
.leaflet-popup-content{font-weight:500;color:var(--ink)}.leaflet-popup-content b{color:var(--green)}
.map-link{margin-top:1.3rem;text-align:right}
.map-link a{font-size:.84rem;font-weight:600;color:var(--green);text-decoration:underline;text-decoration-color:var(--gold);text-underline-offset:3px}

/* ===== Brand logo (grille mark in nav, full logo in footer) ===== */
.brand-logo{height:56px;width:auto;display:block;transition:height .4s var(--e)}
/* light/dark logo swap (TEST) — ivory wordmark over a dark full-bleed hero (before scroll), gold everywhere else */
.brand-logo--light{display:none}
body.home-hero #site-nav:not(.scr) .brand-logo--gold{display:none}
body.home-hero #site-nav:not(.scr) .brand-logo--light{display:block}
/* mobile menu open = ivory panel behind the nav → force the gold logo back so it stays legible */
body.home-hero.menu-open #site-nav:not(.scr) .brand-logo--gold{display:block}
body.home-hero.menu-open #site-nav:not(.scr) .brand-logo--light{display:none}

header.site-nav.scr .brand-logo{height:56px}
footer.site-footer .logo{width:clamp(180px,40%,220px);height:auto;margin-bottom:1.2rem;display:block}
@media(max-width:520px){.brand-logo{height:46px}header.site-nav.scr .brand-logo{height:46px}}

/* ===== Rich occasion journey ===== */
.ic{width:26px;height:26px}
/* value cards */
.vgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.3rem}
.vcard{background:var(--white);border:1px solid var(--hair);border-radius:16px;padding:1.8rem 1.6rem;transition:transform .5s var(--e),box-shadow .5s,border-color .5s}
@media(hover:hover){.vcard:hover{transform:translateY(-4px);box-shadow:var(--shadow);border-color:var(--green)}}
.vic{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:13px;background:var(--paper-g);color:var(--green);margin-bottom:1.1rem}
.vcard h3{font-size:1.12rem;margin-bottom:.45rem;letter-spacing:-.01em}
.vcard p{color:var(--ink-2);font-size:.94rem;line-height:1.55}
/* whats-included: 6 items read as a clean 3×2 (auto-fit left a 5+1 orphan on wide screens) */
.vgrid-3{grid-template-columns:repeat(3,1fr)}
.vgrid-3 .vic{width:52px;height:52px;border:1px solid var(--hair);box-shadow:inset 0 1px 0 rgba(255,255,255,.6)}
@media(max-width:920px){.vgrid-3{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.vgrid-3{grid-template-columns:1fr}}
/* process steps */
.proc{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1.6rem,3vw,3rem)}
.proc li{padding-top:1.5rem;border-top:1px solid var(--green-line);display:flex;flex-direction:column;gap:.7rem}
.proc .pnum{font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;font-weight:700;color:var(--gold-soft)}
.proc .pic{color:var(--gold-soft)}.proc .pic .ic{width:30px;height:30px}
.proc h3{color:var(--ivory);font-size:1.22rem}
.proc p{color:rgba(247,244,237,.8);line-height:1.6;font-size:.96rem;max-width:34ch}
@media(max-width:760px){.proc{grid-template-columns:1fr;gap:1.8rem}}
/* image band */
.img-band-sec{padding:0}
/* Full-bleed: use an explicit height (not aspect-ratio + max-height — that combo makes the band
   shrink horizontally past ~1370px wide, leaving a strip beside it). The image crops via cover. */
.img-band{position:relative;overflow:hidden;width:100%;height:clamp(340px,40vw,560px)}
.img-band img{width:100%;height:100%;object-fit:cover;object-position:50% 58%;filter:saturate(1.1) contrast(1.06)}
.img-band::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(7,32,24,.78),rgba(7,32,24,.2) 55%,transparent)}
.ib-cap{position:absolute;left:clamp(20px,5vw,80px);bottom:clamp(22px,4vw,52px);z-index:2;color:var(--ivory);max-width:38ch}
.ib-cap .kick{color:var(--gold-soft);margin-bottom:.8rem}.ib-cap .kick .dot{background:var(--gold-soft)}
.ib-cap p{font-size:clamp(1.25rem,2.4vw,1.9rem);line-height:1.3;font-weight:500}
@media(max-width:640px){
  .img-band{height:auto;aspect-ratio:4/5;max-height:78vh;border-radius:0}
  .img-band img{object-position:62% 50%}
  /* "THE STANDARD" trio band: a wide 3-car line-up crops to one side at 4/5 — square it up and
     centre so all three cars read, aligned to the page (scoped so the About band is untouched) */
  .img-band:has(img[src*="21-rolls-trio"]){aspect-ratio:1/1}
  .img-band img[src*="21-rolls-trio"]{object-position:50% 50%}
  .img-band::after{background:linear-gradient(rgba(7,32,24,.12) 28%,rgba(7,32,24,.5) 58%,rgba(7,32,24,.9))}
  .ib-cap{left:0;right:0;bottom:0;padding:0 24px 30px;max-width:none}
  .ib-cap .kick{margin-bottom:.6rem}
  .ib-cap p{font-size:1.45rem;line-height:1.32}}
/* legacy <details> FAQ styling — the old .faq-wrap/.faq-side LAYOUT rules were removed:
   being later in the file they overrode the interactive FAQ page's mobile single-column. */
/* Card-style rows so each question clearly reads as a tappable control. */
.faq-list details{background:var(--white);border:1px solid var(--hair);border-radius:14px;margin-bottom:.7rem;
  padding:0 clamp(1.05rem,2.4vw,1.5rem);overflow:hidden;
  transition:border-color .3s var(--e),box-shadow .35s var(--e),transform .35s var(--e)}
.faq-list details[open]{border-color:var(--gold-soft);box-shadow:0 18px 42px -26px rgba(7,32,24,.42)}
@media(hover:hover){.faq-list details:hover{border-color:var(--gold-soft);transform:translateY(-1px)}}
.faq-list summary{cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:1.1rem;
  padding:1.15rem 0;font-weight:500;font-size:clamp(1.02rem,1.5vw,1.15rem);letter-spacing:-.01em;color:var(--ink);
  transition:color .25s var(--e)}
.faq-list summary::-webkit-details-marker{display:none}
@media(hover:hover){.faq-list summary:hover{color:var(--green-deep)}}
.faq-list summary::after{content:"+";flex:0 0 auto;display:grid;place-items:center;width:30px;height:30px;border-radius:50%;
  background:var(--paper-g);color:var(--green);font-size:1.3rem;font-weight:400;line-height:1;
  transition:background .3s var(--e),color .3s var(--e),transform .3s var(--e)}
.faq-list details[open] summary{color:var(--green-deep);font-weight:600}
.faq-list details[open] summary::after{content:"\2013";background:var(--green-deep);color:#fff;transform:rotate(180deg)}
.faq-list details p{margin:0 0 1.3rem;color:var(--ink-2);line-height:1.65;max-width:62ch}
.faq-list details p a{color:var(--green);text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--gold-soft)}
/* "Send us a message" — an unmistakable link */
.faq-side .lede a{color:var(--green-deep);font-weight:600;text-decoration:underline;text-decoration-color:var(--gold);
  text-underline-offset:4px;text-decoration-thickness:2px}
@media(hover:hover){.faq-side .lede a:hover{text-decoration-color:var(--green-deep)}}
/* big pull-quote */
.big-quote{max-width:920px;margin:0 auto;text-align:center;position:relative;font-size:clamp(1.5rem,3vw,2.5rem);line-height:1.32;font-weight:500;color:var(--ink);letter-spacing:-.01em}
.big-quote .qm{display:block;font-size:4rem;color:var(--gold);line-height:.4;margin-bottom:.8rem;font-family:Georgia,serif}
.big-quote footer{margin-top:1.7rem;font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);font-weight:600}
.big-quote footer b{color:var(--green)}

/* ===== Occasion video hero + CTA microcopy ===== */
.ph-media{position:relative}
.ph-media .stage-poster{width:100%;height:100%;object-fit:cover}
.ph-media .hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1.2s var(--e)}
.ph-media .hero-video.media-in{opacity:1}
.cta-final .cta-micro{margin-top:1.3rem;font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gold-soft);font-weight:600}

/* ===== Builder: undo toast ===== */
/* Subtle undo toast: a small centred pill (not a full-width bar), soft glass,
   with a quiet gold text "Undo" rather than a loud filled button. */
.bld-undo{position:fixed;left:50%;bottom:92px;transform:translate(-50%,12px);z-index:55;display:inline-flex;align-items:center;gap:.7rem;
  background:rgba(7,32,24,.9);color:var(--ivory);padding:.5rem .65rem .5rem 1.05rem;border-radius:100px;
  -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);max-width:calc(100vw - 2rem);
  box-shadow:0 12px 30px -18px rgba(7,32,24,.55);opacity:0;transition:opacity .3s,transform .35s var(--e);font-size:.8rem;font-weight:500}
.bld-undo.is-on{opacity:1;transform:translate(-50%,0)}
.bld-undo>span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bld-undo button{background:transparent;color:var(--gold-soft);border:none;border-radius:100px;padding:.3rem .55rem;font-size:.68rem;letter-spacing:.09em;text-transform:uppercase;font-weight:700;cursor:pointer;transition:color .3s;flex:none}
@media(hover:hover){.bld-undo button:hover{color:var(--gold)}}
@media(max-width:620px){.bld-undo{bottom:84px}}
@media(prefers-reduced-motion:reduce){.bld-undo{transition:opacity .2s}}

/* ── Site search ─────────────────────────────────────────────────────────── */
.nav-right{display:flex;align-items:center;gap:.9rem}
.nav-search{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border:1px solid transparent;border-radius:50%;background:none;color:var(--ink-2);cursor:pointer;transition:color .3s var(--e),background .3s var(--e),border-color .3s var(--e)}
.nav-search svg{width:20px;height:20px}
@media(hover:hover){.nav-search:hover{color:var(--green);background:rgba(14,59,43,.06)}}
.scr .nav-search{color:var(--ink-2)}
.search-overlay{position:fixed;inset:0;z-index:120;background:rgba(247,244,237,.84);-webkit-backdrop-filter:blur(18px) saturate(1.1);backdrop-filter:blur(18px) saturate(1.1);opacity:0;transition:opacity .34s var(--e);padding:clamp(1.4rem,9vh,6rem) var(--pad) 2rem;overflow-y:auto}
.search-overlay.is-on{opacity:1}
body.search-open{overflow:hidden}
.so-inner{max-width:740px;margin:0 auto;transform:translateY(10px);transition:transform .4s var(--e)}
.search-overlay.is-on .so-inner{transform:none}
.so-bar{display:flex;align-items:center;gap:1rem;background:var(--white);border:1px solid var(--hair);border-radius:18px;padding:1.05rem 1.35rem;box-shadow:var(--shadow)}
.so-bar svg{width:24px;height:24px;color:var(--green);flex:none}
.so-bar input{flex:1;min-width:0;border:none;background:none;font-family:inherit;font-size:1.32rem;letter-spacing:-.01em;color:var(--ink);outline:none}
.so-bar input::placeholder{color:var(--ink-3)}
.so-close{flex:none;width:34px;height:34px;display:grid;place-items:center;background:none;border:none;font-size:1.7rem;line-height:1;color:var(--ink-3);cursor:pointer;border-radius:50%;transition:color .25s,background .25s}
@media(hover:hover){.so-close:hover{color:var(--green);background:var(--paper-g)}}
.so-results{margin-top:1.5rem;padding-bottom:1rem}
.so-hint{color:var(--ink-3);font-size:.95rem;padding:1.1rem .3rem}
.so-group{margin-bottom:1.4rem}
.so-group h3{font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;font-weight:700;color:var(--gold);margin:0 0 .4rem .2rem}
.so-group ul{list-style:none;margin:0;padding:0}
.so-group li{margin:0}
.so-group a{display:flex;align-items:center;gap:.85rem;padding:.5rem .7rem;border-radius:12px;color:var(--ink);font-weight:500;text-decoration:none;transition:background .2s var(--e),color .2s var(--e),transform .2s var(--e)}
.so-group a:focus-visible{background:var(--white);color:var(--green);transform:translateX(3px);outline:none}
@media(hover:hover){.so-group a:hover{background:var(--white);color:var(--green);transform:translateX(3px);outline:none}}
/* Recently-viewed items get a quiet × to remove them individually. */
.so-recent li{display:flex;align-items:center;gap:.15rem}
.so-recent li a{flex:1;min-width:0}
.so-remove{flex:none;width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:none;border:none;color:var(--ink-2);font-size:1.5rem;line-height:1;cursor:pointer;opacity:.4;border-radius:9px;transition:opacity .2s var(--e),background .2s var(--e),color .2s var(--e)}
@media(hover:hover){.so-remove:hover{opacity:1;color:var(--green);background:rgba(7,32,24,.06)}}
.so-remove:active{opacity:1;color:var(--green)}
.so-thumb{flex:none;width:54px;height:38px;object-fit:cover;border-radius:7px;background:var(--paper-g)}
.so-dot{flex:none;width:7px;height:7px;border-radius:50%;background:var(--gold-soft);margin:0 23.5px}
.so-nm{flex:1;min-width:0}
@media(max-width:760px){
  .so-bar input{font-size:1.12rem}
  .search-overlay{padding-top:clamp(1rem,5vh,2rem)}}
@media(prefers-reduced-motion:reduce){.search-overlay,.so-inner{transition:none}
@media(hover:hover){.so-group a:hover{transform:none}}}
.so-bar input::-webkit-search-cancel-button,.so-bar input::-webkit-search-decoration{-webkit-appearance:none;appearance:none}

/* Recommended-cars → horizontal swipe rail on mobile (shorter scroll, premium peek) */
@media(max-width:760px){
  .svc-cars{display:flex;grid-template-columns:none;gap:.85rem;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;margin:0 calc(var(--pad) * -1);padding:.2rem var(--pad) .9rem;scrollbar-width:none}
  .svc-cars::-webkit-scrollbar{display:none}
  .svc-cars>.svc-car{flex:0 0 76%;max-width:300px;scroll-snap-align:start}}
/* Area pages — the WHOLE fleet as a horizontal swipe rail on every screen */
.svc-cars.rail{display:flex;grid-template-columns:none;gap:1.1rem;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;margin:0 calc(var(--pad) * -1);padding:.4rem var(--pad) 1.2rem;scrollbar-width:none}
.svc-cars.rail::-webkit-scrollbar{display:none}
.svc-cars.rail>.svc-car{flex:0 0 250px;scroll-snap-align:start}
@media(max-width:760px){.svc-cars.rail>.svc-car{flex:0 0 76%;max-width:300px}}

/* ── Occasion prose rhythm (item 3: tighten + structure) ──────────────────── */
.veh-main .prose{max-width:64ch}
.veh-main .prose > section{margin:0 0 2.2rem}
.veh-main .prose > section:first-child{margin-bottom:1.8rem}
/* lead paragraph + drop cap */
/* Article opening: a clean larger standfirst (no drop-cap — replaced the dated giant-letter style) */
.veh-main .prose > section:first-child > p:first-of-type{font-size:1.32rem;line-height:1.66;color:var(--ink);letter-spacing:-.006em;font-weight:450}
/* depth/continuation sections are NOT the page opener — body-sized, keep the h2 rule line */
.veh-main .prose.prose-cont > section:first-child > p:first-of-type{font-size:1rem;line-height:1.75;color:var(--ink-2);letter-spacing:0;font-weight:400}
.veh-main .prose.prose-cont > section:first-child h2{border-top:1px solid var(--hair);padding-top:1.7rem;margin-top:2.6rem}
/* Inline article figure — breaks the prose with a piece of real media */
.veh-main .g-fig{margin:clamp(1.9rem,4vw,2.8rem) 0}
.veh-main .g-fig img{display:block;width:100%;aspect-ratio:16/9;height:auto;object-fit:cover;border-radius:16px;border:1px solid var(--hair);box-shadow:0 24px 50px -34px rgba(7,32,24,.42)}
.veh-main .g-fig figcaption{font-size:.82rem;color:var(--muted);text-align:center;padding:.75rem 1rem 0}
/* Classic cars — real-photo showcase grid */
.cc-showcase{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1rem,2vw,1.6rem);margin:clamp(1.7rem,3.5vw,2.6rem) 0}
.cc-car{margin:0;border-radius:14px;overflow:hidden;border:1px solid var(--hair);background:#fff;box-shadow:0 22px 46px -32px rgba(7,32,24,.4)}
.cc-car img{display:block;width:100%;aspect-ratio:3/2;height:auto;object-fit:cover}
.cc-car figcaption{padding:.85rem 1rem 1.05rem}
.cc-car figcaption b{display:block;font-size:1.04rem;letter-spacing:-.01em}
.cc-car figcaption span{display:block;color:var(--muted);font-size:.85rem;margin-top:.25rem;line-height:1.42}
@media(max-width:760px){.cc-showcase{grid-template-columns:1fr;max-width:460px;margin-inline:auto}}
/* sub-section headings with hairline divider */
.veh-main .prose h2{font-family:var(--display);font-size:clamp(1.32rem,2.3vw,1.65rem);font-weight:600;letter-spacing:-.012em;color:var(--green-deep);margin:2.6rem 0 .85rem;padding-top:1.7rem;border-top:1px solid var(--hair)}
.veh-main .prose > section:first-child h2{border-top:none;padding-top:0;margin-top:0}
.veh-main .prose p{line-height:1.72;margin:0 0 .95rem;color:var(--ink-2)}
/* ordered list → elegant numbered steps */
.veh-main .prose ol{list-style:none;counter-reset:step;margin:1.2rem 0;padding:0;display:grid;gap:.7rem}
.veh-main .prose ol li{counter-increment:step;position:relative;padding:0 0 0 3rem;line-height:1.6;color:var(--ink-2)}
.veh-main .prose ol li::before{content:counter(step,decimal-leading-zero);position:absolute;left:0;top:-.05em;font-family:var(--display);font-size:1.02rem;font-weight:600;color:var(--gold);letter-spacing:.02em}
/* unordered list → two-column gold markers */
.veh-main .prose ul{list-style:none;margin:1rem 0;padding:0;columns:2;column-gap:1.8rem}
.veh-main .prose ul li{position:relative;padding:0 0 .45rem 1.15rem;line-height:1.5;color:var(--ink-2);break-inside:avoid}
.veh-main .prose ul li::before{content:"";position:absolute;left:0;top:.55em;width:6px;height:6px;border-radius:50%;background:var(--gold)}
/* injected pull-quote */
.prose-pull{margin:2.8rem auto;padding:0;max-width:34ch;text-align:center;font-family:var(--serif);font-style:italic;font-size:clamp(1.35rem,2.4vw,1.85rem);line-height:1.34;color:var(--green)}
.prose-pull p{font-family:var(--display);font-size:clamp(1.32rem,2.5vw,1.7rem);line-height:1.34;font-weight:500;font-style:italic;color:var(--green-deep);letter-spacing:-.01em;margin:0}
/* injected inline figure */
.prose-fig{margin:2.6rem 0}
.prose-fig img{width:100%;height:auto;display:block;aspect-ratio:16/10;object-fit:cover;border-radius:16px}
.prose-fig figcaption{font-size:.82rem;color:var(--ink-3);margin-top:.65rem;letter-spacing:.01em}
@media(max-width:760px){.veh-main .prose ul{columns:1}.veh-main .prose ol li{padding-left:2.6rem}}

/* ── Nav dropdowns (desktop hover/focus; hidden in mobile menu) ────────────── */
.nav-item.has-dd{position:relative;display:flex;align-items:center}
.nav-menu .nav-top{display:inline-flex;align-items:center;gap:.34rem}
.dd-caret{width:9px;height:6px;transition:transform .35s var(--e);opacity:.55}
.nav-item.has-dd:focus-within .dd-caret{transform:rotate(180deg);opacity:1}
@media(hover:hover){.nav-item.has-dd:hover .dd-caret{transform:rotate(180deg);opacity:1}}
.nav-menu .dd{position:absolute;top:100%;left:50%;transform:translate(-50%,10px);min-width:238px;background:var(--white);border:1px solid var(--hair);border-radius:14px;box-shadow:var(--shadow);padding:.5rem;display:flex;flex-direction:column;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .26s var(--e),transform .26s var(--e);z-index:60}
.nav-menu .dd::before{content:"";position:absolute;top:-12px;left:0;right:0;height:12px}
.nav-menu .nav-item.has-dd:focus-within .dd{opacity:1;visibility:visible;pointer-events:auto;transform:translate(-50%,4px)}
@media(hover:hover){.nav-menu .nav-item.has-dd:hover .dd{opacity:1;visibility:visible;pointer-events:auto;transform:translate(-50%,4px)}}
.nav-menu .dd a{padding:.56rem .8rem;border-radius:9px;font-size:.82rem;letter-spacing:.03em;text-transform:none;color:var(--ink);font-weight:500;white-space:nowrap}
.nav-menu .dd a::after{display:none}
@media(hover:hover){.nav-menu .dd a:hover{background:var(--paper-g);color:var(--green)}}
.nav-menu .dd .dd-all{margin-top:.3rem;padding-top:.62rem;border-top:1px solid var(--hair);color:var(--gold);font-weight:700;font-size:.68rem;letter-spacing:.13em;text-transform:uppercase;border-radius:0}
/* Fleet dropdown → second-level fan-out to the individual cars (desktop) */
.nav-menu .dd .dd-item{position:relative}
.nav-menu .dd .dd-cat{display:flex;align-items:center;justify-content:space-between;gap:.6rem;padding:.56rem .8rem;border-radius:9px;font-size:.82rem;color:var(--ink);font-weight:500;white-space:nowrap}
.nav-menu .dd .dd-cat .dd-arw{color:var(--gold);font-size:1.05rem;line-height:1;opacity:.7}
@media(hover:hover){.nav-menu .dd .dd-item:hover>.dd-cat{background:var(--paper-g);color:var(--green)}}
.nav-menu .dd .dd-sub{position:absolute;top:-.5rem;left:calc(100% - 2px);min-width:212px;background:var(--white);border:1px solid var(--hair);border-radius:14px;box-shadow:var(--shadow);padding:.5rem;display:flex;flex-direction:column;opacity:0;visibility:hidden;pointer-events:none;transform:translateX(-4px);transition:opacity .22s var(--e),transform .22s var(--e);z-index:61}
.nav-menu .dd .dd-item:focus-within>.dd-sub{opacity:1;visibility:visible;pointer-events:auto;transform:none}
@media(hover:hover){.nav-menu .dd .dd-item:hover>.dd-sub{opacity:1;visibility:visible;pointer-events:auto;transform:none}}
.nav-menu .dd .dd-sub a{padding:.5rem .8rem;border-radius:9px;font-size:.8rem;color:var(--ink);font-weight:500;white-space:nowrap}
.nav-menu .dd .dd-sub a::after{display:none}
@media(hover:hover){.nav-menu .dd .dd-sub a:hover{background:var(--paper-g);color:var(--green)}}
.nav-menu .dd .dd-sub .dd-suball{margin-top:.3rem;padding-top:.55rem;border-top:1px solid var(--hair);color:var(--gold);font-weight:700;font-size:.64rem;letter-spacing:.13em;text-transform:uppercase;border-radius:0}
.home-hero #site-nav:not(.scr) .nav-menu .dd .dd-cat,.home-hero #site-nav:not(.scr) .nav-menu .dd .dd-sub a{color:var(--ink)}
/* Mobile: keep the category links, drop the second level (the hub pages list every model) */
.mobile-menu .dd .dd-arw,.mobile-menu .dd .dd-sub{display:none}
/* mobile accordion: parent toggles its sub-links open */
.mobile-menu .nav-item.has-dd{display:block}
.mobile-menu .nav-top{cursor:pointer}
.mobile-menu .dd-caret{display:block;width:13px;height:8px;flex:none;color:var(--gold-soft);transition:transform .35s var(--e)}
.mobile-menu .nav-item.open .dd-caret{transform:rotate(180deg)}
.mobile-menu .dd{position:static;transform:none;opacity:1;visibility:visible;pointer-events:auto;background:none;border:none;box-shadow:none;min-width:0;display:block;max-height:0;overflow:hidden;transition:max-height .4s var(--e);padding:0 0 0 .2rem}
.mobile-menu .nav-item.open .dd{max-height:640px}
.mobile-menu .dd a{display:block;font-size:1.02rem;font-weight:400;letter-spacing:0;color:rgba(247,244,237,.8);padding:.5rem 0;border-bottom:1px solid rgba(247,244,237,.07)}
.mobile-menu .dd a:first-child{padding-top:.75rem}
@media(hover:hover){.mobile-menu .dd a:hover{color:var(--ivory)}}
.mobile-menu .dd .dd-all{color:var(--gold-soft);font-weight:600;border-bottom:none}
/* showroom + address block */
.mobile-menu .mm-visit{margin-top:1.1rem;display:flex;flex-direction:column;gap:.2rem;padding:1rem 1.15rem;border:1px solid var(--green-line);border-radius:14px;text-decoration:none}
.mobile-menu .mm-visit .mv-k{font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;font-weight:700;color:var(--gold-soft)}
.mobile-menu .mm-visit .mv-addr{color:var(--ivory);font-size:1rem;font-weight:500;line-height:1.35;margin-top:.15rem}
.mobile-menu .mm-visit .mv-by{font-size:.8rem;color:rgba(247,244,237,.7);margin-top:.3rem}
.mobile-menu .mm-book{margin-top:1.6rem}

/* ── Playfair Display — italic serif accent for highlights (self-hosted) ──── */
@font-face{font-family:'Playfair Display';font-style:italic;font-weight:400 600;font-display:swap;
  src:url(/assets/fonts/playfair-italic.woff2) format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2122,U+2191,U+2193,U+2212,U+2215,U+20AC;}
:root{--serif:'Playfair Display',Georgia,'Times New Roman',serif}
.prose-pull p{font-family:var(--serif);font-style:italic;font-weight:400;font-size:clamp(1.45rem,2.7vw,1.95rem);line-height:1.3;letter-spacing:0}
.big-quote{font-family:var(--serif);font-style:italic;font-weight:400;letter-spacing:0}

/* ── The Fleet page — visual category grid ────────────────────────────────── */
.fleet-cat{padding-top:clamp(2.8rem,7vw,5.4rem);padding-bottom:clamp(.8rem,2vw,1.6rem)}
/* When a card grid is followed by a tinted section (e.g. occasions hub → FAQ), the cards
   otherwise sit flush on the colour seam. Add breathing room so the sections don't clash. */
.fleet-cat:has(+ .section.paper){padding-bottom:clamp(3.5rem,7vw,6rem)}
.jump-region .fleet-cat:last-of-type{padding-bottom:clamp(3.5rem,7vw,6rem)}  /* last group is wrapped in .jump-region, so :has(+.paper) misses it */
.fleet-cat .sec-head{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem}
.fleet-count{flex:none;font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;font-weight:700;color:var(--ink-3)}
.fleet-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:1.4rem;margin-top:1.6rem}
.fleet-card{display:block;background:var(--white);border:1px solid var(--hair);border-radius:16px;overflow:hidden;text-decoration:none;transition:transform .45s var(--e),box-shadow .45s var(--e),border-color .45s var(--e)}
@media(hover:hover){.fleet-card:hover{transform:translateY(-5px);box-shadow:var(--shadow);border-color:transparent}}
.fc-img{aspect-ratio:3/2;overflow:hidden;background:var(--paper-g)}
.fc-img img{width:100%;height:100%;object-fit:cover;object-position:50% 64%;transition:transform .7s var(--e)}
@media(hover:hover){.fleet-card:hover .fc-img img{transform:scale(1.05)}}
/* Portrait/tall car shots (cars sit in the lower half, sky/trees up top); in the landscape card,
   focus the crop low so the cars aren't cut off. Landscape shots ignore object-position-y. */
.fleet-card[href$="/rolls-royce-ghost/"] .fc-img img{object-position:50% 76%}
/* Vintage cars sit a little higher in a tall portrait frame — lift the crop so
   both cars are fully in view (roofs to wheels), not clipped at the top. */
.fleet-card[href*="vintage-rolls"] .fc-img img,
.fleet-card[href*="vintage-line-up"] .fc-img img{object-position:50% 60%}
/* Revuelto shots are tall portraits with the car low in frame — crop hard-low so the car fills the card. */
.fleet-card[href$="/lamborghini-revuelto/"] .fc-img img{object-position:50% 78%}
.fleet-card[href*="lamborghini-revuelto-white"] .fc-img img{object-position:50% 62%}
.fc-img .glyph{display:grid;place-items:center;height:100%;font-family:var(--display);font-size:2.6rem;font-weight:700;color:var(--gold-soft);letter-spacing:.05em}
.fc-body{display:flex;justify-content:space-between;align-items:center;gap:.8rem;padding:1rem 1.25rem 1.1rem}
.fc-txt{display:flex;flex-direction:column;gap:.18rem;min-width:0}
.fc-nm{font-weight:600;color:var(--ink);font-size:1.02rem;letter-spacing:-.01em}
.fc-sig{font-size:.82rem;line-height:1.3;color:var(--ink-3);letter-spacing:0}
.fc-go{flex:none;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;color:var(--gold);background:var(--paper-g);font-size:1.05rem;line-height:1;opacity:0;transform:translateX(-6px);transition:opacity .35s var(--e),transform .35s var(--e),background .35s var(--e),color .35s var(--e)}
@media(hover:hover){.fleet-card:hover .fc-go{opacity:1;transform:none}}
@media(hover:hover){.fleet-card:hover .fc-go{background:var(--green);color:var(--gold-soft)}}
@media(max-width:760px){.fc-go{opacity:1;transform:none}.fleet-grid{gap:1rem}}
.guide-pill.is-active{background:var(--green);color:var(--ivory);border-color:var(--green)}
.fleet-cat{scroll-margin-top:152px}

/* ── Guide comparison tables ──────────────────────────────────────────────── */
.prose .tbl-wrap,.veh-main .prose table{margin:1.6rem 0}
.veh-main .prose table{width:100%;border-collapse:collapse;font-size:.95rem;background:var(--white);border:1px solid var(--hair);border-radius:14px;overflow:hidden}
.veh-main .prose thead th{background:var(--green);color:var(--ivory);font-weight:600;text-align:left;letter-spacing:.01em}
.veh-main .prose th,.veh-main .prose td{padding:.8rem 1rem;border-bottom:1px solid var(--hair);vertical-align:top;text-align:left}
.veh-main .prose tbody th{font-weight:600;color:var(--green-deep);background:var(--paper-g)}
.veh-main .prose tbody tr:last-child th,.veh-main .prose tbody tr:last-child td{border-bottom:none}
@media(hover:hover){.veh-main .prose tbody tr:hover td{background:var(--ivory)}}
.veh-main .prose caption{caption-side:bottom;font-size:.82rem;color:var(--ink-3);margin-top:.6rem;text-align:left}
@media(max-width:680px){.veh-main .prose table{display:block;overflow-x:auto;white-space:nowrap}.veh-main .prose td,.veh-main .prose th{white-space:normal;min-width:120px}}

/* Category-hub mesh link columns */
.link-cols{list-style:none;margin:1.4rem 0 0;padding:0;columns:2;column-gap:2.4rem;max-width:760px}
.link-cols li{break-inside:avoid;padding:.5rem 0;border-bottom:1px solid var(--hair)}
.link-cols a{color:var(--ink);font-weight:500;text-decoration:none;display:inline-flex;align-items:center;gap:.4rem;transition:color .2s var(--e)}
@media(hover:hover){.link-cols a:hover{color:var(--green)}}
.link-cols a::after{content:"→";color:var(--gold);opacity:0;transform:translateX(-3px);transition:.25s var(--e)}
@media(hover:hover){.link-cols a:hover::after{opacity:1;transform:none}}
@media(max-width:620px){.link-cols{columns:1}}

/* ── Guides jump-to pills ─────────────────────────────────────────────────── */
.guide-pills{position:sticky;top:84px;z-index:30;background:var(--ivory);border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);padding:.7rem 0;margin-bottom:1rem}
/* named local venues on area pages — a tidy two-column list, not bullet spam */
ul.area-venues{list-style:none;margin:1rem 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:.5rem .9rem}
ul.area-venues li{position:relative;padding-left:1.1rem;font-size:.98rem;color:var(--ink-2)}
ul.area-venues li::before{content:"";position:absolute;left:0;top:.62em;width:5px;height:5px;border-radius:50%;background:var(--gold)}
.guide-pills .wrap{display:flex;gap:.55rem;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;scroll-padding-left:var(--pad)}
/* Desktop: WRAP, don't scroll. The rail hides its scrollbar (see below), so on a wide screen an
   overflowing row just severed the last pill mid-word with no scrollbar, no fade and no hint that
   anything was there — the reader sees damage, not an affordance. There is room to wrap here, so
   wrap. Horizontal scroll stays on touch, where a swipe is discoverable and the row is one
   thumb-flick wide anyway. */
@media(min-width:761px){
  .guide-pills .wrap{flex-wrap:wrap;overflow-x:visible;cursor:default;row-gap:.5rem}
  .guide-pills .wrap.is-drag{cursor:default}
  .guide-pills .wrap.is-drag a{pointer-events:auto}
}
@media(hover:hover) and (pointer:fine){.guide-pills .wrap{cursor:grab}.guide-pills .wrap.is-drag{cursor:grabbing}.guide-pills .wrap.is-drag a{pointer-events:none}}
.guide-pills .wrap::-webkit-scrollbar{display:none}
.guide-pill{flex:none;padding:.46rem 1.05rem;border:1px solid var(--hair);border-radius:100px;font-size:.76rem;letter-spacing:.04em;font-weight:600;color:var(--ink-2);text-decoration:none;white-space:nowrap;transition:background .25s var(--e),color .25s var(--e),border-color .25s var(--e)}
/* Touch devices: comfortable ≥44px tap targets on small standalone controls (WCAG 2.5.5).
   Scoped to (hover:none) so the tuned desktop sizing is untouched. */
@media(hover:none){
  .guide-pill{padding-top:.72rem;padding-bottom:.72rem}
  .bld-q{width:42px;height:42px;font-size:1.2rem}
  .bld-rm{width:40px;height:40px}
}
.guide-pill:focus-visible{background:var(--green);color:var(--ivory);border-color:var(--green);outline:none}
@media(hover:hover){.guide-pill:hover{background:var(--green);color:var(--ivory);border-color:var(--green);outline:none}}
.guides-cluster{scroll-margin-top:152px}
@media(max-width:760px){.guide-pills{top:72px}.guides-cluster,.fleet-cat{scroll-margin-top:128px}}

/* ── Global reviews band (social proof above the footer) ──────────────────── */
.reviews-lite{background:var(--paper-g);border-top:1px solid var(--hair);padding:clamp(1.6rem,3vw,2.4rem) 0}
.reviews-lite .rl-in{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:.5rem .9rem;text-align:center;color:var(--ink);transition:color .25s var(--e)}
.reviews-lite .rl-stars{color:var(--gold);letter-spacing:.05em;font-size:1.05rem}
.reviews-lite .rl-score{font-family:var(--serif);font-style:italic;font-size:1.25rem;color:var(--green-deep);line-height:1}
.reviews-lite .rl-meta{color:var(--ink-2);font-size:.95rem}
.reviews-lite .rl-meta b{color:var(--green)}
.reviews-lite .rl-cta{font-size:.82rem;letter-spacing:.01em;text-transform:none;font-weight:500;color:var(--ink-3);text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--hair);white-space:nowrap}
@media(hover:hover){.reviews-lite .rl-in:hover .rl-cta{color:var(--green)}}
@media(max-width:560px){.reviews-lite .rl-cta{flex-basis:100%}}
.reviews-band{background:var(--paper-g);border-top:1px solid var(--hair);padding:clamp(3.5rem,7vw,6rem) 0}
.reviews-band .rb-head{text-align:center;max-width:620px;margin:0 auto clamp(2rem,4vw,3rem)}
.reviews-band .rb-head .sec-ix{justify-content:center}
.reviews-band h2{font-size:clamp(1.6rem,3.4vw,2.4rem);color:var(--green-deep);letter-spacing:-.01em}
.reviews-band .rb-stars{color:var(--gold);letter-spacing:.16em;font-size:1.05rem}
.reviews-band .lede{margin-top:.8rem;color:var(--ink-2)}
.reviews-band .lede a{color:var(--green);font-weight:600;text-decoration:underline;text-decoration-color:var(--gold);text-underline-offset:3px}
.rb-rating{display:inline-flex;align-items:center;gap:.85rem;margin-top:1.1rem;padding:.55rem 1.25rem;border:1px solid var(--hair);border-radius:100px;background:var(--white)}
.rb-rating .rb-score{font-family:var(--serif);font-style:italic;font-weight:500;font-size:1.25rem;color:var(--green-deep);line-height:1}
.rb-rating .rb-meta{font-size:.82rem;color:var(--ink-2);border-left:1px solid var(--hair);padding-left:.85rem}
.rb-link{display:table;margin:1.3rem auto 0;font-size:.82rem;letter-spacing:.01em;text-transform:none;font-weight:500;color:var(--ink-3);text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--hair);transition:color .25s var(--e)}
@media(hover:hover){.rb-link:hover{color:var(--green)}}
.rb-link span{display:inline-block;transition:transform .3s var(--e)}
@media(hover:hover){.rb-link:hover span{transform:translateX(4px)}}
@media(max-width:540px){.rb-rating{flex-direction:column;gap:.4rem;border-radius:18px}.rb-rating .rb-meta{border-left:none;padding-left:0}}
/* Reviews page — Google QR card */
.gr-card{display:flex;align-items:center;gap:clamp(1.4rem,3vw,2.6rem);background:var(--green-deep);color:var(--ivory);border-radius:20px;padding:clamp(1.5rem,3vw,2.3rem);margin:0 0 clamp(1.6rem,3vw,2.4rem);position:relative;overflow:hidden}
.gr-card::before{content:"";position:absolute;inset:0;background:radial-gradient(90% 130% at 100% 0,rgba(169,133,74,.22),transparent 55%);pointer-events:none}
.gr-qr{position:relative;flex:none;display:flex;flex-direction:column;align-items:center;gap:.6rem;background:#fff;border-radius:14px;padding:.9rem .9rem .7rem;box-shadow:0 18px 40px -22px rgba(7,32,24,.7)}
.gr-qr img{display:block;width:clamp(120px,16vw,148px);height:auto}
.gr-qr span{font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;font-weight:700;color:var(--green-deep)}
.gr-body{position:relative;flex:1;min-width:0}
.gr-body .sec-ix{color:var(--gold-soft)}
.gr-body h2{font-size:clamp(1.5rem,3vw,2.1rem);color:#fff;margin:.3rem 0 .6rem;letter-spacing:-.01em}
.gr-body h2 .em{color:var(--gold-soft)}
.gr-body p{color:rgba(247,244,237,.82);max-width:48ch;line-height:1.55}
.gr-cta{display:flex;gap:.7rem;flex-wrap:wrap;margin-top:1.3rem}
.gr-card .btn-secondary{background:transparent;border:1px solid rgba(247,244,237,.32);color:var(--ivory)}
@media(hover:hover){.gr-card .btn-secondary:hover{border-color:var(--gold-soft);color:#fff}}
@media(max-width:600px){.gr-card{flex-direction:column;text-align:center}.gr-body p{margin-inline:auto}.gr-cta{justify-content:center}}
.rb-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem;max-width:1120px;margin:0 auto}
.rb-card{background:var(--white);border:1px solid var(--hair);border-radius:16px;padding:1.7rem;display:flex;flex-direction:column;gap:1rem;transition:transform .4s var(--e),box-shadow .4s var(--e)}
@media(hover:hover){.rb-card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}}
.rb-card .rb-st{color:var(--gold);letter-spacing:.1em;font-size:.92rem}
.rb-card blockquote{margin:0;font-size:.95rem;line-height:1.62;color:var(--ink);flex:1}
.rb-card figcaption{display:flex;flex-direction:column;gap:.1rem}
.rb-card figcaption b{color:var(--green-deep);font-weight:600}
.rb-card figcaption span{font-size:.78rem;color:var(--ink-3);letter-spacing:.02em}
@media(max-width:820px){.rb-grid{grid-template-columns:1fr;max-width:520px}}
.rev-wall-sec{margin:clamp(2.6rem,5.5vw,4.4rem) 0}
.rev-wall-sec .sec-head{text-align:center;max-width:660px;margin:0 auto clamp(1.8rem,3.5vw,2.6rem);display:block}
.rev-wall-sec .sec-head .sec-ix{justify-content:center}
.rev-wall-sec .sec-head .lede{margin:.9rem auto 0}
.rev-wall.rb-grid{grid-template-columns:repeat(2,1fr);max-width:900px}
@media(min-width:1000px){.rev-wall.rb-grid{grid-template-columns:repeat(3,1fr);max-width:1120px}}
@media(max-width:820px){.rev-wall.rb-grid{grid-template-columns:1fr;max-width:520px}}
.rev-wall-more{text-align:center;margin:clamp(2rem,4vw,3rem) auto 0;max-width:560px}
.rev-wall-more p{color:var(--ink-3);font-size:.95rem;margin:0 0 1.1rem}
.rev-wall-more p b{color:var(--ink-2);font-weight:600}

/* ── Vehicle spec band (under the hero) ───────────────────────────────────── */
.spec-band{background:linear-gradient(180deg,var(--green-deep),#061a13);color:var(--ivory);border-top:1px solid rgba(169,133,74,.42)}
.spec-band .wrap{max-width:1180px;padding-top:clamp(1.7rem,3.2vw,2.8rem);padding-bottom:clamp(1.7rem,3.2vw,2.8rem)}
.spec-row{display:grid;grid-template-columns:repeat(4,1fr)}
.spec{position:relative;padding:clamp(.6rem,2vw,1.2rem) clamp(.9rem,2vw,1.8rem);display:flex;flex-direction:column;align-items:center;text-align:center;gap:.55rem;transition:transform .45s var(--e)}
.spec+.spec::before{content:"";position:absolute;left:0;top:14%;bottom:14%;width:1px;background:linear-gradient(180deg,transparent,rgba(216,194,145,.42),transparent)}
.spec-mark{color:var(--gold);font-size:.5rem;opacity:.85;letter-spacing:.3em;line-height:1}
.spec-k{font-size:.62rem;letter-spacing:.22em;text-transform:uppercase;color:var(--gold-soft);font-weight:700}
.spec-v{font-size:clamp(1.1rem,2vw,1.5rem);font-weight:500;color:#fff;font-family:var(--display);letter-spacing:-.01em;line-height:1.18}
@media(hover:hover){.spec:hover{transform:translateY(-3px)}}
.cc-source{background:var(--paper-g);border:1px solid var(--hair);border-radius:16px;padding:clamp(1.5rem,3vw,2.3rem)}
.cc-source h2{margin-top:0}
.cc-source .cta-row{margin-top:1.3rem;display:flex;flex-wrap:wrap;gap:.8rem}
@media(max-width:680px){.spec-row{grid-template-columns:repeat(2,1fr);row-gap:1.6rem}.spec::before{display:none}}

/* Mobile nav: short "Book" label */
.nb-sm{display:none}

/* Car gallery — hover zoom */
.cg-tile{overflow:hidden}
.cg-tile img{transition:transform .9s var(--e),opacity .7s var(--e)}
@media(hover:hover){.cg-tile:hover img{transform:scale(1.05)}}

/* ── Cinematic vehicle hero ───────────────────────────────────────────────── */
.veh-hero{position:relative;min-height:clamp(62vh,72vh,80vh);display:flex;align-items:flex-end;overflow:hidden;background:var(--green-deep);isolation:isolate}
.vh-media{position:absolute;inset:-6% 0;z-index:0;will-change:transform}
.vh-bg{width:100%;height:100%;object-fit:cover;filter:brightness(.64) saturate(1.08) contrast(1.02)}
/* Hero crossfade slideshow (real venue photography) */
.vh-slides{position:absolute;inset:0}
.vh-slide{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:brightness(.74) saturate(1.08) contrast(1.02);opacity:0;transition:opacity 1.5s ease}
.vh-slide.is-active{opacity:1}
@media(prefers-reduced-motion:reduce){.vh-slide{transition:none}.vh-slide:not(.is-active){opacity:0}}
.vh-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:brightness(.64) saturate(1.08) contrast(1.02);opacity:0;transition:opacity 1.2s ease}
.vh-video.media-in{opacity:1}
.vh-video.vh-auto{opacity:1}
.vh-glyph{position:absolute;inset:0;display:grid;place-items:center;font-family:var(--display);font-size:7rem;color:var(--gold-soft);background:var(--green-deep)}
/* readability scrim: DARK grade at the very top (these full-bleed heroes run the
   light nav — white text + silver/gold logo — so the top must be dark for the logo
   to read, matching the homepage hero), then a deep darkening low where text sits */
.veh-hero::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(to bottom,rgba(7,32,24,.52) 0%,rgba(7,32,24,.16) 15%,rgba(7,32,24,0) 30%,rgba(7,32,24,.55) 58%,rgba(7,32,24,.86) 80%,rgba(7,32,24,.95) 100%)}
.vh-inner{position:relative;z-index:2;width:100%;max-width:var(--max);margin:0 auto;text-align:center;
  padding-top:clamp(2rem,4vw,3rem);padding-bottom:clamp(3.2rem,6vw,5.4rem);color:var(--ivory)}
.vh-inner .crumbs,.vh-inner .crumbs a,.vh-inner .crumbs span{color:rgba(247,244,237,.82)}
.vh-inner .sec-ix{color:var(--gold-soft);justify-content:center;display:flex}
.vh-inner h1{font-size:clamp(2.6rem,6vw,5rem);color:var(--ivory);letter-spacing:-.022em;line-height:1.04;margin:.55rem auto;max-width:18ch;
  text-shadow:0 2px 22px rgba(7,32,24,.78),0 1px 3px rgba(7,32,24,.5)}
.vh-lede{max-width:48ch;margin:0 auto 2rem;color:rgba(247,244,237,.95);font-size:clamp(1.05rem,1.6vw,1.26rem);line-height:1.55;
  text-shadow:0 1px 14px rgba(7,32,24,.7)}
.veh-hero .cta-row{flex-wrap:wrap;justify-content:center}
@media(max-width:760px){.veh-hero{min-height:auto}.vh-inner{padding-top:7.5rem}.vh-inner h1{max-width:none}}
/* Short / landscape viewports (landscape phones, short tablet windows): the width-based rule
   above doesn't fire (they're wide), so the tall min-height made the hero eat the whole screen
   and pushed the eyebrow/title up under the fixed nav. Clear the nav and shrink to fit by height. */
@media(max-height:600px) and (min-width:761px){
  .veh-hero{min-height:auto}
  .vh-inner{padding-top:7.5rem;padding-bottom:2.2rem}
  .vh-inner h1{font-size:clamp(1.9rem,4.6vw,2.8rem);margin:.35rem auto}
  .vh-lede{margin-bottom:1.1rem;font-size:1rem}
  .img-band{max-height:none;aspect-ratio:auto;height:62vh}
}

/* ── Gallery lightbox (car pages) ───────────────────────────────────────── */
.cg-tile img{cursor:zoom-in}
.lightbox[hidden]{display:none}
.lightbox{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;padding:clamp(1rem,5vw,4rem);background:rgba(7,32,24,.93);-webkit-backdrop-filter:blur(10px) saturate(.9);backdrop-filter:blur(10px) saturate(.9);opacity:0;transition:opacity .3s var(--e,cubic-bezier(.4,0,.2,1))}
.lightbox.on{opacity:1}
body.lb-open{overflow:hidden}
.lb-img{max-width:100%;max-height:88vh;width:auto;height:auto;object-fit:contain;border-radius:6px;box-shadow:0 50px 90px -30px rgba(0,0,0,.7);opacity:0;transform:scale(.985);transition:opacity .34s var(--e,cubic-bezier(.4,0,.2,1)),transform .34s var(--e,cubic-bezier(.4,0,.2,1))}
.lightbox.on .lb-img{opacity:1;transform:none}
/* No width/height:auto here — the JS sets each clip's real width/height ATTRIBUTES, so these
   max- constraints "contain" it to the right shape (a portrait reel gets a portrait box). */
.lb-video{display:none;max-width:100%;max-height:88vh;object-fit:contain;border-radius:6px;box-shadow:0 50px 90px -30px rgba(0,0,0,.7);background:#000}
.lb-ig{position:absolute;left:50%;top:clamp(.7rem,2.5vw,1.6rem);transform:translateX(-50%);z-index:3;display:inline-flex;align-items:center;gap:8px;font-size:.84rem;font-weight:600;color:var(--ivory);background:rgba(247,244,237,.12);border:1px solid rgba(247,244,237,.32);border-radius:100px;padding:9px 16px;text-decoration:none;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.lb-ig[hidden]{display:none}
.lb-ig svg{width:17px;height:17px}
@media(hover:hover){.lb-ig:hover{background:rgba(247,244,237,.24);border-color:rgba(247,244,237,.55)}}
.lb-btn{position:absolute;display:grid;place-items:center;width:48px;height:48px;border-radius:50%;cursor:pointer;color:var(--ivory);background:rgba(247,244,237,.10);border:1px solid rgba(247,244,237,.26);font-size:1.7rem;line-height:1;transition:background .2s,border-color .2s,transform .2s}
@media(hover:hover){.lb-btn:hover{background:rgba(247,244,237,.22);border-color:rgba(247,244,237,.5)}}
.lb-btn:active{transform:scale(.92)}
.lb-btn:focus-visible{outline:2px solid var(--gold-soft);outline-offset:3px}
/* Close sits top-LEFT so it never collides with iOS's native video mute button (top-right). */
.lb-close{top:clamp(1rem,3vw,2rem);left:clamp(1rem,3vw,2rem)}
.lb-prev{left:clamp(.5rem,3vw,2rem);top:50%;margin-top:-24px}
.lb-next{right:clamp(.5rem,3vw,2rem);top:50%;margin-top:-24px}
@media(max-width:560px){.lb-prev{left:.5rem}.lb-next{right:.5rem}.lb-btn{width:42px;height:42px}}
@media(prefers-reduced-motion:reduce){.lightbox,.lb-img{transition:none}}

/* ── Vehicle mid-page CTA ribbon ────────────────────────────────────────── */
.veh-midcta{position:relative;background:var(--green-deep);color:var(--ivory);overflow:hidden;isolation:isolate}
.veh-midcta::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background:radial-gradient(120% 140% at 88% 0%,rgba(169,133,74,.20),transparent 56%)}
.vm-inner{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:clamp(1.4rem,4vw,3.5rem);flex-wrap:wrap;padding-block:clamp(2.4rem,5vw,3.6rem)}
.vm-line{max-width:34ch;margin:0;font-size:clamp(1.18rem,2.1vw,1.6rem);line-height:1.32;color:var(--ivory);letter-spacing:-.01em}
.vm-line em{font-family:var(--display);font-style:italic;font-weight:500;color:var(--gold-soft)}
.veh-midcta .cta-row{flex-wrap:wrap;flex-shrink:0}
.btn-ghost-d{background:transparent;color:var(--ivory);border:1px solid rgba(247,244,237,.4)}
@media(hover:hover){.btn-ghost-d:hover{background:rgba(247,244,237,.10);border-color:rgba(247,244,237,.7)}}
@media(max-width:680px){.vm-inner{flex-direction:column;align-items:flex-start;text-align:left}}

/* ── Occasions / Packages hub tweaks ─────────────────────────────────────── */
.section.pad-sm{padding:clamp(2.4rem,5vw,4rem) 0 clamp(2.2rem,4vw,3.4rem)}
.pkg-build-note{margin:2.4rem 0 clamp(3rem,7vw,5rem);font-size:1rem;color:var(--ink-2)}
.pkg-build-note a{color:var(--green);font-weight:600;border-bottom:1px solid var(--gold-soft);padding-bottom:1px;transition:color .25s var(--e)}
@media(hover:hover){.pkg-build-note a:hover{color:var(--gold-ink)}}
.occ-more{margin-top:clamp(2.4rem,4vw,3.4rem);max-width:60ch;font-size:1.02rem;line-height:1.6;color:var(--ink-2)}
.occ-more a{color:var(--green);font-weight:600;border-bottom:1px solid var(--gold-soft);padding-bottom:1px;transition:color .25s var(--e)}
@media(hover:hover){.occ-more a:hover{color:var(--gold-ink)}}

/* ── Guide reading-progress bar + in-guide TOC ───────────────────────────── */
.read-progress{position:fixed;top:0;left:0;right:0;height:3px;z-index:41;pointer-events:none;background:transparent}
.read-progress>b{display:block;height:100%;width:100%;transform:scaleX(0);transform-origin:left;background:linear-gradient(90deg,var(--gold-ink),var(--gold),var(--gold-soft));box-shadow:0 0 8px rgba(169,133,74,.4)}
.veh-main .prose h2[id]{scroll-margin-top:92px}
.ga-toc{margin-bottom:1.5rem;padding-bottom:1.4rem;border-bottom:1px solid var(--hair)}
.ga-toc .sec-ix{margin-bottom:.75rem}
.ga-toc ol{list-style:none;counter-reset:toc;margin:0;padding:0}
.ga-toc li{counter-increment:toc}
.ga-toc a{display:flex;gap:.65rem;align-items:baseline;padding:.4rem 0;font-size:.88rem;line-height:1.35;color:var(--ink-2);font-weight:500;transition:color .25s var(--e),transform .25s var(--e)}
.ga-toc a::before{content:counter(toc,decimal-leading-zero);color:var(--gold);font-weight:600;font-size:.76rem;flex:none;letter-spacing:.02em}
@media(hover:hover){.ga-toc a:hover{color:var(--green);transform:translateX(.25rem)}}
.ga-toc a.is-active{color:var(--green);font-weight:600}
@media(prefers-reduced-motion:reduce){.read-progress>b{transition:none}}

@media(max-width:940px){.ga-toc{display:none}}  /* TOC is desktop-only; the progress bar orients on mobile */

/* ── Tactile press feedback (felt site-wide on every CTA + card) ──────────── */
.btn{transition:transform .5s var(--e),background .4s,color .4s,border-color .4s,box-shadow .4s}
.btn:active{transform:translateY(0) scale(.985)}
.nav-book:active{transform:scale(.97)}
.fleet-card:active,.gcard:active{transform:translateY(-3px) scale(.996)}
.fc-go,.gc-go,.mm-book:active{transition:transform .3s var(--e),background .35s var(--e),color .35s var(--e),opacity .35s var(--e)}
.mm-book:active{transform:scale(.98)}
@media(prefers-reduced-motion:reduce){.btn:active,.nav-book:active,.fleet-card:active,.gcard:active,.mm-book:active{transform:none}}

/* ── "At a glance" spec list (was inheriting prose bullets — label/value ran together) ── */
.veh-main .prose ul.spec-grid{columns:1;display:grid;grid-template-columns:1fr 1fr;gap:0 2.4rem;margin:1.4rem 0;padding:0;list-style:none}
.veh-main .prose ul.spec-grid li{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;padding:.62rem 0;border-bottom:1px solid var(--hair);break-inside:avoid}
.veh-main .prose ul.spec-grid li::before{content:none;display:none}
.veh-main .prose ul.spec-grid b{flex:none;font-weight:600;color:var(--green-deep);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase}
.veh-main .prose ul.spec-grid span{color:var(--ink-2);text-align:right;font-size:.96rem}
@media(max-width:560px){.veh-main .prose ul.spec-grid{grid-template-columns:1fr}}

/* Mobile: compact the concierge launcher to a circular icon so it doesn't cover content */
@media(max-width:760px){
  .cc-launch{padding:0;width:52px;height:52px;justify-content:center;gap:0;border-radius:50%}
  .cc-launch .cc-launch-tx{display:none}
  .cc-launch .cc-launch-ic{font-size:1.35rem}}

/* Brand the Leaflet attribution link (was default blue) */
.leaflet-control-attribution a{color:var(--ink-3)!important;text-decoration:none}

/* Hub cinematic hero — a touch shorter than the car-page hero (gateway, not the star) */
.hub-hero{min-height:clamp(62vh,68vh,74vh)}
/* Desktop: centre the hub-hero content vertically so it sits balanced in the frame rather
   than bottom-heavy (vehicle pages keep their bottom-anchored .veh-hero treatment). The top
   padding still clears the fixed nav; symmetric bottom padding keeps the block centred. */
@media(min-width:761px){.hub-hero{align-items:center}
  .hub-hero .vh-inner{padding-top:clamp(5.5rem,7vw,7.5rem);padding-bottom:clamp(2.4rem,4vw,3.4rem)}}
@media(max-width:760px){.hub-hero{min-height:auto}.hub-hero .vh-inner{padding-top:7rem}}
/* VIP cluster hero — elevated: deeper scrim for legibility over the car, calmer display
   type, and a slim trust line echoing the homepage. Centred to stay consistent with the
   other hubs, but more refined. */
.vip-hero .vh-bg{filter:brightness(.5) saturate(1.05) contrast(1.04)}
.vip-hero::after{background:linear-gradient(to top,rgba(7,28,21,.82) 2%,rgba(7,28,21,.34) 34%,rgba(7,28,21,.12) 60%,transparent 80%)}
.vip-hero .vh-inner h1{font-size:clamp(2.3rem,4.4vw,3.9rem);max-width:15ch;letter-spacing:-.026em}
.vip-hero .vh-lede{max-width:42ch;color:rgba(247,244,237,.92)}
.vh-trust{margin:1.3rem auto 0;color:rgba(247,244,237,.74);font-size:.74rem;letter-spacing:.07em;text-transform:uppercase;
  display:flex;gap:.55rem;justify-content:center;flex-wrap:wrap;align-items:center}
.vh-trust [data-live-rating]{color:var(--gold-soft);font-weight:600;letter-spacing:.02em}
@media(max-width:760px){.vh-trust{font-size:.68rem;margin-top:1rem}.vip-hero .vh-inner h1{max-width:none}}
/* VIP "how it works" — clean numbered journey (no cards, just rhythm) */
.vip-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1.8rem,4vw,3.6rem);margin-top:clamp(1.8rem,4vw,2.8rem)}
.vip-step{position:relative}
.vip-step-n{display:block;font-family:var(--serif);font-style:italic;font-size:clamp(2rem,4vw,2.9rem);line-height:1;color:var(--gold);margin-bottom:.8rem}
.vip-step h3{font-size:clamp(1.1rem,2vw,1.34rem);margin:0 0 .5rem;letter-spacing:-.01em}
.vip-step p{color:var(--muted);line-height:1.62;margin:0;max-width:34ch}
@media(max-width:760px){.vip-steps{grid-template-columns:1fr;gap:1.7rem}.vip-step{padding-left:0}}

/* ── Mobile menu, Rolex-style: feature cards + chevron list + footer logo ──── */
.mm-eyebrow{display:flex;align-items:center;gap:.7rem;font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;font-weight:700;color:var(--gold-ink);margin:0 0 .9rem;padding-left:.1rem}
.mm-eyebrow::after{content:"";flex:1;height:1px;background:linear-gradient(to right,var(--gold-soft),transparent)}
/* Staggered mask-reveal — menu rows fade + rise in sequence when the panel opens */
.mobile-menu>*{opacity:0;transform:translateY(18px);transition:opacity .55s var(--e),transform .6s var(--e)}
body.menu-open .mobile-menu>*{opacity:1;transform:none}
.mobile-menu>*:nth-child(1){transition-delay:.06s}
.mobile-menu>*:nth-child(2){transition-delay:.11s}
.mobile-menu>*:nth-child(3){transition-delay:.16s}
.mobile-menu>*:nth-child(4){transition-delay:.21s}
.mobile-menu>*:nth-child(5){transition-delay:.26s}
.mobile-menu>*:nth-child(6){transition-delay:.31s}
.mobile-menu>*:nth-child(7){transition-delay:.36s}
.mobile-menu>*:nth-child(8){transition-delay:.41s}
.mobile-menu>*:nth-child(n+9){transition-delay:.46s}
@media(prefers-reduced-motion:reduce){.mobile-menu>*{opacity:1;transform:none;transition:none}}
.mm-feats{display:grid;grid-template-columns:1fr 1fr;gap:.7rem;margin-bottom:1.7rem}
.mm-feat{position:relative;aspect-ratio:16/10;border-radius:14px;overflow:hidden;background-size:cover;background-position:center 56%;display:flex;flex-direction:column;justify-content:flex-end;align-items:flex-start;padding:.9rem 1rem;text-decoration:none;transition:transform .4s var(--e)}
.mm-feat::before{content:"";position:absolute;inset:0;background:linear-gradient(transparent 26%,rgba(7,32,24,.9))}
.mm-feat:active{transform:scale(.985)}
.mf-t{position:relative;z-index:1;color:var(--ivory);font-size:1.02rem;font-weight:600;letter-spacing:.01em}
.mf-s{position:relative;z-index:1;color:var(--gold-soft);font-size:.66rem;letter-spacing:.05em;margin-top:.16rem;text-transform:uppercase;font-weight:600}
.mf-go{position:absolute;top:.7rem;right:.75rem;z-index:1;width:26px;height:26px;border-radius:50%;background:rgba(247,244,237,.18);display:grid;place-items:center;color:var(--ivory);font-size:.8rem}
/* Mobile menu — clean editorial primary list (replaces the busy image-card grid) */
/* Image-led primary nav — each link a photo thumbnail + label + arrow */
.mm-primary{display:flex;flex-direction:column;gap:.15rem;margin-bottom:1.1rem}
.mm-primary a{display:flex;align-items:center;gap:13px;padding:.45rem .5rem;margin:0 -.5rem;border-radius:13px;text-decoration:none;color:var(--ink);transition:background .3s var(--e),transform .3s var(--e)}
.mm-primary a:active{background:var(--ivory-2);transform:scale(.99)}
.mp-img{flex:none;width:64px;height:48px;border-radius:10px;overflow:hidden;background:var(--ivory-2);position:relative}
.mp-img img{width:100%;height:100%;object-fit:cover;display:block}
.mp-img::after{content:"";position:absolute;inset:0;border-radius:11px;box-shadow:inset 0 0 0 1px rgba(7,32,24,.07)}
.mp-tx{flex:1;display:flex;flex-direction:column;gap:.18rem;min-width:0}
.mp-t{font-size:1.1rem;font-weight:500;letter-spacing:-.015em;line-height:1.1;color:var(--ink)}
.mp-s{font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;font-weight:600;color:var(--gold-ink)}
.mm-primary .mm-more-go{flex:none;color:var(--gold-ink);font-size:1.3rem;line-height:1;opacity:.6;transition:transform .3s var(--e),opacity .3s var(--e)}
.mm-primary a:active .mm-more-go{transform:translateX(3px);opacity:1}
.mm-quote{display:block;text-align:center;margin-top:.9rem;padding:.5rem;font-size:.74rem;letter-spacing:.12em;text-transform:uppercase;font-weight:600;color:var(--green);text-decoration:none}
.mm-quote span{color:var(--gold-ink)}
/* chevron on the simple (non-dropdown) menu links */
.mobile-menu .mm-nav>a::after{content:"›";color:var(--gold-soft);font-size:1.4rem;line-height:1;font-weight:400}
.mm-logo{display:flex;justify-content:center;margin-top:2.2rem;padding-top:1.6rem;border-top:1px solid var(--green-line)}
.mm-logo img{height:52px;width:auto;opacity:.92}

/* ── Contact page ─────────────────────────────────────────────────────────── */
.contact-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(1.6rem,4vw,3.4rem);align-items:start}
.contact-form-wrap h2{font-size:clamp(1.7rem,3vw,2.3rem);margin:.4rem 0 1.4rem}
.contact-info{display:flex;flex-direction:column;gap:.9rem}
.ci-row{display:block;padding:1.15rem 1.3rem;border:1px solid var(--hair);border-radius:14px;background:var(--white);text-decoration:none;transition:border-color .25s var(--e),transform .25s var(--e),box-shadow .25s var(--e)}
@media(hover:hover){.ci-row:hover{border-color:transparent;transform:translateY(-3px);box-shadow:var(--shadow)}}
.ci-row .ci-k{display:block;font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:var(--gold-ink);margin-bottom:.3rem}
.ci-row b{display:block;color:var(--ink);font-size:1.08rem;font-weight:600;line-height:1.3}
.ci-row .ci-sub{display:block;color:var(--ink-2);font-size:.9rem;line-height:1.45;margin-top:.25rem}
.ci-map{display:block;border:1px solid var(--hair);border-radius:14px;overflow:hidden;background:var(--white);text-decoration:none;transition:border-color .25s var(--e),transform .25s var(--e),box-shadow .25s var(--e)}
@media(hover:hover){.ci-map:hover{border-color:transparent;transform:translateY(-3px);box-shadow:var(--shadow)}}
.ci-map .map-embed{display:block;position:relative;height:210px;overflow:hidden;background:#edefea;transform:translateZ(0);-webkit-transform:translateZ(0);contain:paint}
.ci-map .map-mock{position:absolute;inset:0;z-index:0;width:100%;height:100%;display:block}
.ci-map .map-embed::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(100deg,transparent 35%,rgba(255,255,255,.5) 50%,transparent 65%);background-size:240% 100%;animation:mapshimmer 1.9s linear infinite}
.ci-map:has(.map-frame.on) .map-embed::after{animation:none;opacity:0}
.ci-map .map-frame{position:absolute;top:0;left:0;z-index:2;display:block;width:100%;height:238px;border:0;pointer-events:none;background:transparent;opacity:1;backface-visibility:hidden;-webkit-backface-visibility:hidden}
/* Crop the OpenStreetMap iframe's verbose "Report a problem · Make a Donation" bar
   (the iframe is taller than the clip); keep a clean, minimal data credit ourselves. */
.ci-map .map-embed::before{content:"© OpenStreetMap";position:absolute;right:6px;bottom:5px;z-index:3;font-size:9px;letter-spacing:.02em;color:rgba(20,21,15,.55);background:rgba(255,255,255,.72);padding:1px 5px;border-radius:5px;pointer-events:none}
.ci-map .map-frame.on{opacity:1}
@keyframes mapshimmer{to{background-position:-240% 0}}
@media(prefers-reduced-motion:reduce){.ci-map .map-mock::after{animation:none}}
/* Showroom 'Find us' — the map as a standalone feature card */
.sr-next{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:clamp(1.6rem,3vw,2.4rem)}
.sr-next-card{position:relative;display:flex;flex-direction:column;gap:.35rem;background:var(--white);border:1px solid var(--hair);border-radius:16px;padding:1.5rem 1.5rem 1.7rem;text-decoration:none;transition:transform .35s var(--e),box-shadow .35s var(--e),border-color .35s var(--e)}
.sr-next-card .snc-k{font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;font-weight:600;color:var(--gold-ink)}
.sr-next-card b{font-size:1.22rem;font-weight:500;letter-spacing:-.01em;color:var(--green-deep)}
.sr-next-card .snc-s{font-size:.92rem;line-height:1.5;color:var(--ink-2)}
.sr-next-card .snc-go{position:absolute;top:1.3rem;right:1.4rem;color:var(--gold-ink);font-size:1.2rem;opacity:.55;transition:transform .3s var(--e),opacity .3s var(--e)}
@media(hover:hover){.sr-next-card:hover{transform:translateY(-4px);border-color:var(--gold-soft);box-shadow:0 18px 40px -26px rgba(7,32,24,.4)}.sr-next-card:hover .snc-go{transform:translateX(3px);opacity:1}}
@media(max-width:720px){.sr-next{grid-template-columns:1fr}}
.sr-map{max-width:760px;margin:0 auto}
.sr-map .map-embed{height:340px}
.sr-map .map-frame{height:368px}   /* taller than the embed so the OSM attribution bar is clipped */
@media(max-width:600px){.sr-map .map-embed,.sr-map .map-frame{height:260px}}
/* Why G Class Hire — proof stats + honest comparison */
.wgc-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem;text-align:center}
.wgc-stat b{display:block;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:300;letter-spacing:-.03em;color:var(--green);line-height:1}
.wgc-stat .big{color:var(--gold-ink)}
.wgc-stat span{display:block;margin-top:.55rem;font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;font-weight:600;color:var(--ink-3)}
@media(max-width:640px){.wgc-stats{grid-template-columns:repeat(2,1fr);gap:2.2rem 1.5rem}}
.wgc-compare{display:grid;grid-template-columns:1fr 1fr;gap:1.4rem;margin-top:2.6rem}
.wgc-col{border-radius:18px;padding:clamp(1.6rem,3vw,2.4rem)}
.wgc-them{background:rgba(247,244,237,.05);border:1px solid rgba(247,244,237,.12)}
.wgc-us{background:rgba(247,244,237,.07);border:1px solid var(--gold-soft)}
.wgc-k{display:block;font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;font-weight:700;margin-bottom:1.1rem}
.wgc-them .wgc-k{color:rgba(247,244,237,.6)}.wgc-us .wgc-k{color:var(--gold-soft)}
.wgc-col ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.85rem}
.wgc-col li{position:relative;padding-left:1.7rem;font-size:1rem;line-height:1.45}
.wgc-them li{color:rgba(247,244,237,.64)}.wgc-us li{color:var(--ivory)}
.wgc-them li::before{content:"—";position:absolute;left:0;color:rgba(247,244,237,.4)}
.wgc-us li::before{content:"✓";position:absolute;left:0;color:var(--gold-soft);font-weight:700}
@media(max-width:640px){.wgc-compare{grid-template-columns:1fr}}
/* Emotional close under the comparison (on the dark-green section) */
.wgc-close{max-width:62ch;margin:3rem auto 0;text-align:center}
.wgc-close-lead{font-family:var(--serif);font-style:italic;font-size:clamp(1.5rem,3vw,2.1rem);line-height:1.3;color:var(--ivory);margin:0 0 1.1rem}
.wgc-close-lead em{color:var(--gold-soft);font-style:italic}
.wgc-close p:not(.wgc-close-lead){color:rgba(247,244,237,.84);font-size:1.06rem;line-height:1.62;margin:0 auto 1.8rem;max-width:54ch}
.wgc-close p b{color:var(--gold-soft);font-weight:600}
/* "Why G Class" — editorial three-act (type-led, quiet luxury; replaced 3 photo splits) */
.wgc-pillars{padding-top:clamp(.5rem,2vw,1.5rem)}
.wgc-acts{list-style:none;margin:clamp(1rem,3vw,2rem) 0 0;padding:0;max-width:62rem}
.wgc-act{display:grid;grid-template-columns:auto 1fr;gap:clamp(1.5rem,4.5vw,3.6rem);align-items:start;padding:clamp(2rem,4vw,3.4rem) 0;border-top:1px solid var(--hair)}
.wgc-act:first-child{border-top:none;padding-top:0}
.wgc-act-n{font-family:var(--serif);font-style:italic;font-weight:500;font-size:clamp(2.6rem,5vw,4.4rem);line-height:.85;color:var(--gold)}
.wgc-act-c h3{font-size:clamp(1.45rem,2.7vw,2.2rem);font-weight:300;letter-spacing:-.02em;line-height:1.12;color:var(--ink);margin:.1rem 0 .7rem;text-wrap:balance}
.wgc-act-c p{margin:0;max-width:56ch;color:var(--ink-2);font-size:clamp(1rem,1.3vw,1.1rem);line-height:1.64}
@media(max-width:600px){.wgc-act{grid-template-columns:1fr;gap:.35rem}.wgc-act-n{font-size:2.4rem}}
/* Why G Class — "questions to ask before you book anyone" (reframes price → risk) */
.wgc-ask .lede{max-width:60ch}
.wgc-qs{list-style:none;margin:clamp(1.6rem,3.5vw,2.6rem) 0 0;padding:0;
  display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.1rem}
.wgc-q{background:var(--ivory);border:1px solid var(--hair);border-radius:16px;padding:1.3rem 1.4rem}
.wgc-q-t{margin:0 0 .7rem;font-size:1.06rem;font-weight:500;line-height:1.34;color:var(--ink);letter-spacing:-.01em;text-wrap:balance}
.wgc-q-a{margin:0;font-size:.94rem;line-height:1.58;color:var(--ink-2)}
.wgc-q-a>span{display:block;font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;font-weight:600;
  color:var(--gold-ink,var(--gold));margin-bottom:.3rem}
.wgc-ask-foot{margin:clamp(1.6rem,3vw,2.4rem) 0 0;font-size:1.02rem;color:var(--ink-2);max-width:62ch}
.wgc-ask-foot a{color:var(--green);font-weight:600}
/* Supercars hub — "which supercar suits your day" comparison cards (replaces the raw table) */
.sc-compare{list-style:none;margin:1.5rem 0 1.6rem;padding:0;
  display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem}
.sc-card{background:var(--white,#fff);border:1px solid var(--hair);border-radius:16px;padding:1.25rem 1.35rem;
  display:flex;flex-direction:column;gap:.55rem;transition:border-color .2s var(--e),transform .2s var(--e)}
.sc-card:hover{border-color:color-mix(in oklab,var(--green) 30%,transparent);transform:translateY(-2px)}
.sc-card p{margin:0}
.sc-nm{font-size:1.08rem;font-weight:600;color:var(--ink);letter-spacing:-.01em;line-height:1.25;
  text-decoration:none;border-bottom:none}
.sc-nm:hover{color:var(--green)}
.sc-char{font-family:var(--serif);font-style:italic;font-size:.98rem;color:var(--gold-ink,var(--gold));line-height:1.4}
.sc-spec{display:flex;flex-wrap:wrap;gap:.4rem}
.sc-spec span{font-size:.74rem;letter-spacing:.06em;text-transform:uppercase;font-weight:600;color:var(--ink-2);
  background:var(--ivory);border:1px solid var(--hair);border-radius:100px;padding:.28rem .7rem;white-space:nowrap}
.sc-best{font-size:.92rem;color:var(--ink-2);line-height:1.5;margin-top:auto;padding-top:.45rem;border-top:1px solid var(--hair)}
.sc-best>span{display:block;font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;font-weight:600;
  color:var(--gold-ink,var(--gold));margin-bottom:.25rem}
/* ── Cabin tease (top of the Cullinan Series I page) ─────────────────────────
   The hero shows a white SUV and the page then offers three of them. This strip
   answers "what am I actually choosing?" immediately, in one line, and hands off
   to the picker further down instead of duplicating it. */
.cabin-tease{padding:0 0 .4rem}
.ct-link{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;text-decoration:none;
  border:1px solid var(--hair);border-bottom:1px solid var(--hair);border-radius:999px;
  padding:.7rem 1.15rem;color:var(--ink-2);
  transition:border-color .35s var(--e),background .35s var(--e)}
@media(hover:hover){.ct-link:hover{border-color:color-mix(in oklab,var(--green) 32%,transparent);
  background:color-mix(in oklab,var(--green) 4%,transparent)}}
.ct-dots{display:inline-flex;flex:none}
.ct-dot{width:15px;height:15px;border-radius:50%;background:var(--dot);
  box-shadow:0 0 0 2px var(--paper,#F7F4ED),inset 0 0 0 1px rgba(0,0,0,.2);margin-right:-6px}
.ct-dot:last-child{margin-right:0}
.ct-tx{font-size:.9rem;line-height:1.4}
.ct-tx b{color:var(--ink);font-weight:600}
.ct-names{color:var(--ink-2)}
.ct-go{margin-left:auto;font-size:.72rem;letter-spacing:.13em;text-transform:uppercase;
  font-weight:600;color:var(--green);white-space:nowrap}
/* The same strip used inline in prose (both Cullinan pages' hand-off). The prose link
   rules (underline border, inline display, hover colour) bled into the pill and sat the
   border THROUGH the text — reset them fully; the pill styles itself. */
.veh-main .prose a.ct-xlink{display:flex;margin:1.3rem 0;padding:.7rem 1.15rem;
  border:1px solid var(--hair);border-radius:999px;background:none;
  text-decoration:none;line-height:1.4}
.veh-main .prose a.ct-xlink,.veh-main .prose a.ct-xlink:hover{box-shadow:none}
@media(max-width:640px){.veh-main .prose a.ct-xlink{border-radius:18px}
  .ct-link .ct-go{margin-left:0;flex-basis:100%}}
@media(max-width:560px){.ct-go{margin-left:0}}

/* ── Cabin picker (Cullinan Series I) ────────────────────────────────────────
   Three cars, identical in white, distinguished only by the cabin — so the page
   makes it a choice. Radio-driven, no JS: the tabs are real <label>s for real
   radios, so it keyboard-navigates as a radio group and works script-off.
   One frame, one photo at a time — the old three-up row put two orange shots
   side by side and reused gallery frames at a second aspect ratio. */
.cab-pick{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));
  gap:.6rem;margin:1.6rem 0 1.4rem}
.cab-in{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;
  clip-path:inset(50%);white-space:nowrap;border:0}
.cab-nm{display:block}
.cab-tab{display:flex;align-items:center;justify-content:center;gap:.5rem;cursor:pointer;
  padding:.62rem .8rem;border:1px solid var(--hair);border-radius:999px;
  font-size:.72rem;letter-spacing:.11em;text-transform:uppercase;font-weight:600;
  color:var(--ink-2);background:transparent;text-align:center;
  transition:border-color .3s var(--e),color .3s var(--e),background .3s var(--e)}
.cab-dot{width:11px;height:11px;border-radius:50%;background:var(--dot);flex:none;
  box-shadow:inset 0 0 0 1px rgba(0,0,0,.22)}
@media(hover:hover){.cab-tab:hover{border-color:color-mix(in oklab,var(--green) 34%,transparent);color:var(--green)}}
.cab-in:checked + .cab-tab{background:var(--green);border-color:var(--green);color:#F7F4ED}
.cab-in:focus-visible + .cab-tab{outline:2px solid var(--gold);outline-offset:3px}
.cab-panes{grid-column:1/-1;position:relative}
.cab-pane{display:none;margin:0;position:relative;overflow:hidden;border-radius:18px;
  aspect-ratio:16/10;background:var(--ivory)}
/* Each cabin is a small set that cross-fades, so one tap shows the whole interior rather
   than a single frame. Stacked and absolutely placed; site.js promotes .is-on. Without JS
   the first shot simply stays up — the picker still works. */
.cab-shot{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  object-position:var(--pos,50% 50%);opacity:0;transition:opacity .9s var(--e)}
.cab-shot.is-on{opacity:1}
/* nth-of-type walks the radios; each :checked one reveals the pane at its index */
.cab-in:nth-of-type(1):checked ~ .cab-panes .cab-pane:nth-child(1),
.cab-in:nth-of-type(2):checked ~ .cab-panes .cab-pane:nth-child(2),
.cab-in:nth-of-type(3):checked ~ .cab-panes .cab-pane:nth-child(3){display:block;animation:cabIn .4s var(--e) both}
@keyframes cabIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){
  .cab-in:checked ~ .cab-panes .cab-pane{animation:none}
  .cab-shot{transition:none}
  .cab-tab{transition:none}}

/* Cullinan cabin colourways — thumbnail row linking to the Interiors hub */
.cull-cabins{list-style:none;margin:1.5rem 0 1.2rem;padding:0;
  display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem}
.cull-cabins a,.cull-cabins>li{display:flex;flex-direction:column;gap:.6rem;text-decoration:none;border-bottom:none}
/* the tiles are images, not bullet points — override the vehicle-page prose list dots */
.veh-main .prose ul.cull-cabins,.cull-cabins{padding-left:0}
.veh-main .prose ul.cull-cabins>li,.cull-cabins>li{margin:0;padding:0;list-style:none}
.veh-main .prose ul.cull-cabins>li::before{content:none}
.cull-cabins .cc-img{display:block;overflow:hidden;border-radius:14px;border:1px solid var(--hair);aspect-ratio:4/3;background:var(--ivory)}
.cull-cabins .cc-img img{width:100%;height:100%;object-fit:cover;display:block;
  transition:transform .5s var(--e)}
.cull-cabins a:hover .cc-img{border-color:color-mix(in oklab,var(--green) 30%,transparent)}
.cull-cabins a:hover .cc-img img{transform:scale(1.045)}
.cull-cabins .cc-cap{font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;font-weight:600;
  color:var(--ink-2);text-align:center}
.cull-cabins a:hover .cc-cap{color:var(--green)}
@media (prefers-reduced-motion:reduce){.cull-cabins .cc-img img{transition:none}
  .cull-cabins a:hover .cc-img img{transform:none}}

/* About — editorial origin story + the people */
.ab-story .wrap{max-width:56rem}
.ab-lead{font-family:var(--serif);font-style:italic;font-weight:400;font-size:clamp(1.8rem,4vw,3.2rem);line-height:1.2;letter-spacing:-.01em;color:var(--ink);margin:0 0 clamp(1.4rem,3vw,2.4rem);text-wrap:balance}
.ab-lead em{font-style:italic;color:var(--gold-ink)}
.ab-story-body{columns:2;column-gap:clamp(2rem,4vw,3.4rem)}
.ab-story-body p{margin:0 0 1.1rem;font-size:1.06rem;line-height:1.66;color:var(--ink-2);break-inside:avoid}
.ab-story-body p:last-child{margin-bottom:0}
@media(max-width:720px){.ab-story-body{columns:1}}
.ab-people .wrap{max-width:60rem}
.ab-people-tx{font-family:var(--serif);font-style:italic;font-size:clamp(1.35rem,2.6vw,2rem);line-height:1.4;color:var(--green);max-width:32ch;margin:1.6rem 0 0}
/* About — qualifying "perfect fit" grid */
.ab-fit .fit-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(1rem,2.4vw,1.8rem);margin-top:clamp(1.6rem,3vw,2.6rem)}
@media(max-width:760px){.ab-fit .fit-grid{grid-template-columns:1fr}}
.fit-card{background:var(--white);border:1px solid var(--ivory-2);border-radius:18px;padding:clamp(1.5rem,2.6vw,2.2rem)}
.fit-card.fit-no{background:var(--ivory);border-color:rgba(20,21,15,.07)}
.fit-k{display:block;font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;font-weight:700;color:var(--gold-ink);margin-bottom:1.15rem}
.fit-no .fit-k{color:var(--ink-3)}
.fit-list{list-style:none;margin:0;padding:0;display:grid;gap:.9rem}
.fit-list li{position:relative;padding-left:2rem;font-size:1.02rem;line-height:1.5;color:var(--ink-2)}
.fit-yes .fit-list li{color:var(--ink)}
.fit-list li::before{content:"";position:absolute;left:0;top:.12em;width:1.25rem;height:1.25rem;border-radius:50%;background:var(--green);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round' d='M5 12.5l4.5 4.5L19 7'/%3E%3C/svg%3E") center/1.25rem no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round' d='M5 12.5l4.5 4.5L19 7'/%3E%3C/svg%3E") center/1.25rem no-repeat}
.fit-no .fit-list li::before{background:var(--ink-3);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' d='M7 7l10 10M17 7L7 17'/%3E%3C/svg%3E") center/1.15rem no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' d='M7 7l10 10M17 7L7 17'/%3E%3C/svg%3E") center/1.15rem no-repeat}
.fit-note{margin:1.3rem 0 0;font-size:.9rem;font-style:italic;color:var(--ink-3);line-height:1.5}
.fit-close{margin:clamp(1.6rem,3vw,2.4rem) auto 0;max-width:60ch;text-align:center;font-size:1.08rem;line-height:1.6;color:var(--ink-2)}
.fit-close a{color:var(--green);font-weight:600;text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--gold-2)}
/* Animated brand statement (rotating word) */
.ab-rotator{text-align:center}
.ab-rotator .sec-ix{justify-content:center;display:flex;margin-bottom:1.4rem}
.ab-rot-head{font-size:clamp(2rem,5.2vw,4rem);font-weight:300;letter-spacing:-.025em;line-height:1.12;color:var(--ivory);max-width:20ch;margin:0 auto;text-wrap:balance}
.ab-rot{display:inline-grid;text-align:left;vertical-align:bottom}
.ab-rot-w{grid-area:1/1;white-space:nowrap;color:var(--gold-soft);font-style:italic;font-family:var(--serif);opacity:0;transform:translateY(.45em);transition:opacity .5s var(--e),transform .5s var(--e)}
.ab-rot-w.is-on{opacity:1;transform:none}
.ab-rot-sub{margin:1.8rem auto 0;max-width:46ch;color:rgba(247,244,237,.82);font-size:1.06rem;line-height:1.6}
@media(prefers-reduced-motion:reduce){.ab-rot-w{transition:none}}
/* How It Works — horizontal step-flow (image · serif numeral · title · benefit) */
.hiw-flow{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(1.4rem,2.6vw,2.4rem)}
.hiw-fcard{position:relative;display:flex;flex-direction:column}
.hiw-fcard-img{aspect-ratio:4/3;border-radius:14px;overflow:hidden;margin-bottom:1.1rem;box-shadow:0 16px 42px -26px rgba(7,32,24,.42)}
.hiw-fcard-img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .9s var(--e)}
.hiw-fnum{display:block;font-family:var(--serif);font-style:italic;font-weight:500;font-size:1.5rem;line-height:1;color:var(--gold-ink);margin-bottom:.5rem}
.hiw-fcard h3{font-size:1.16rem;font-weight:600;letter-spacing:-.01em;color:var(--green);margin:0 0 .5rem}
.hiw-fcard>p{font-size:.93rem;line-height:1.55;color:var(--ink-2);margin:0}
.hiw-fcard .hiw-benefit{margin-top:auto;padding-top:1rem}
@media(hover:hover){.hiw-fcard:hover .hiw-fcard-img img{transform:scale(1.04)}}
@media(max-width:900px){.hiw-flow{grid-template-columns:repeat(2,1fr);gap:2.2rem 1.6rem}}
@media(max-width:560px){.hiw-flow{grid-template-columns:1fr;gap:2rem}.hiw-fcard .hiw-benefit{margin-top:.4rem}}
/* Guides preview — "read all" button row */
.gp-more{text-align:center;margin-top:clamp(1.8rem,3.5vw,2.8rem)}
/* Comparison guide — two-car figure (best photo of each car, side by side) */
.cmp-figs{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:clamp(.6rem,2vw,1.4rem);margin:1.6rem 0 2rem}
.cmp-figs .cmp-fig{margin:0;text-align:center}
.cmp-figs .cmp-fig img{height:auto;width:100%;aspect-ratio:4/3;object-fit:cover;object-position:50% 60%;border-radius:12px;box-shadow:0 16px 40px -26px rgba(7,32,24,.42);display:block}
/* Per-car focal overrides — these photos sit low in frame and get cut off at the default crop */
.cmp-figs img[src*="rolls-royce-ghost"]{object-position:50% 82%}
.cmp-figs img[src*="rolls-royce-dawn"]{object-position:50% 70%}
.cmp-figs img[src*="vintage-rolls-royce"]{object-position:50% 72%}
.cmp-figs .cmp-fig figcaption{margin-top:.6rem;font-size:.84rem;font-weight:600;color:var(--green);letter-spacing:.01em}
.cmp-figs .cmp-vs{font-family:var(--serif);font-style:italic;font-size:clamp(1.1rem,2.4vw,1.6rem);color:var(--gold-ink)}
@media(max-width:560px){.cmp-figs{grid-template-columns:1fr 1fr;gap:.8rem}.cmp-figs .cmp-vs{display:none}}
/* Per-step benefit tag */
.hiw-benefit{display:inline-flex;align-items:center;gap:.5rem;margin:1.1rem 0 0;font-size:.82rem;font-weight:600;letter-spacing:.01em;color:var(--gold-ink)}
.hiw-benefit span{display:grid;place-items:center;width:18px;height:18px;border-radius:50%;background:var(--gold-soft);color:var(--green-deep);font-size:.62rem;font-weight:700}
/* "Included as standard" benefits — editorial checklist, not boxed cards */
.hiw-incl{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(1.4rem,2.6vw,2.2rem) clamp(2rem,5vw,4rem);max-width:980px;margin:0 auto}
.hiw-inc{display:grid;grid-template-columns:auto 1fr;gap:1rem;align-items:start;padding-top:1.4rem;border-top:1px solid var(--hair)}
.hiw-inc-tick{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;border:1px solid var(--gold-soft);color:var(--gold-ink);font-size:.82rem;flex:0 0 auto}
.hiw-inc h3{font-size:1.08rem;font-weight:600;color:var(--green);margin:.1rem 0 .35rem}
.hiw-inc p{font-size:.94rem;line-height:1.55;color:var(--ink-2);margin:0}
@media(max-width:760px){.hiw-incl{grid-template-columns:1fr;gap:0}.hiw-inc{padding:1.2rem 0;border-top:1px solid var(--hair)}}
/* Credibility stat strip (dark-green band) */
.hiw-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(1rem,3vw,2.4rem);text-align:center}
.hiw-stat b{display:block;font-family:var(--serif);font-style:italic;font-weight:500;font-size:clamp(1.8rem,3.4vw,2.7rem);line-height:1;color:var(--gold-soft);margin-bottom:.5rem}
.hiw-stat span{font-size:.82rem;letter-spacing:.04em;color:rgba(247,244,237,.82);text-transform:uppercase}
@media(max-width:680px){.hiw-stats{grid-template-columns:repeat(2,1fr);gap:1.8rem 1rem}}
/* How It Works — brand-promise band (replaces the stat grid): one quiet statement */
.hiw-promise{max-width:62ch;margin:0 auto;text-align:center}
.hiw-promise>.sec-ix{display:flex;justify-content:center;color:var(--gold-soft)}
.hiw-pq{max-width:60ch;margin:1.1rem auto 0;font-size:clamp(1.5rem,3.2vw,2.5rem);line-height:1.3;font-weight:500;letter-spacing:-.012em;color:var(--ivory);text-wrap:balance}
.hiw-pq em{font-family:var(--serif);font-style:italic;font-weight:400;color:var(--gold-soft)}
.hiw-pq-cta{display:inline-flex;gap:.55rem;align-items:center;margin-top:1.7rem;color:var(--gold-soft);font-size:.76rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700;text-decoration:none}
.hiw-pq-cta span{display:inline-block;transition:transform .3s var(--e)}
@media(hover:hover){.hiw-pq-cta:hover span{transform:translateX(4px)}}
/* Creators — full-bleed image divider */
.cr-divider{position:relative;height:clamp(220px,34vw,380px);overflow:hidden;display:flex;align-items:center;justify-content:center;margin:0}
.cr-divider-media{position:absolute;inset:-8% 0;z-index:0}
.cr-divider-media img{width:100%;height:100%;object-fit:cover;object-position:center 60%}
/* No parallax on mobile — the scroll transform makes the band jitter and mis-frame the car */
@media(max-width:760px){.cr-divider-media{inset:0;transform:none!important}}
.cr-divider::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(7,32,24,.45),rgba(7,32,24,.55))}
.cr-divider-mark{position:relative;z-index:2;font-family:var(--serif);font-style:italic;font-weight:500;font-size:clamp(1.5rem,3.4vw,2.5rem);color:#fff;text-align:center;padding:0 1.5rem;text-shadow:0 2px 30px rgba(0,0,0,.4)}
/* Creators — application form */
.cr-apply{max-width:760px;margin:0 auto;background:var(--white);border:1px solid var(--hair);border-radius:20px;padding:clamp(1.8rem,4vw,3rem);box-shadow:0 36px 70px -48px rgba(7,32,24,.3)}
.cr-apply-head{margin-bottom:1.6rem}
.cr-apply-head h2{font-size:clamp(1.7rem,3vw,2.3rem);margin:.35rem 0 .7rem}
.cr-apply-head .lede{margin:0;max-width:60ch}
.ci-map-pin{display:block;padding:1.05rem 1.3rem}
.ci-map-pin .ci-k{display:block;font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:var(--gold-ink);margin-bottom:.3rem}
.ci-map-pin b{display:block;color:var(--ink);font-size:1.02rem;font-weight:600;line-height:1.3}
.ci-map-pin .ci-sub{display:block;color:var(--ink-2);font-size:.88rem;margin-top:.25rem}
.cb-form .fhint{font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;font-weight:600;color:var(--ink-3);margin:1.4rem 0 .7rem}
.cb-form .ffield em{font-style:normal;color:var(--ink-3);font-weight:400;text-transform:none;letter-spacing:0}
@media(max-width:820px){.contact-grid{grid-template-columns:1fr}}

/* ── Footer showroom locator ──────────────────────────────────────────────── */
.ft-showroom{display:flex;gap:.7rem;align-items:flex-start;margin-top:1.3rem;padding:.9rem 1rem;border:1px solid var(--green-line);border-radius:12px;max-width:34ch;text-decoration:none;transition:border-color .25s var(--e),background .25s var(--e)}
@media(hover:hover){.ft-showroom:hover{border-color:var(--gold-soft);background:rgba(247,244,237,.04)}}
.ft-showroom svg{width:20px;height:20px;color:var(--gold-soft);flex:none;margin-top:1px}
.ft-showroom span{font-size:.84rem;line-height:1.45;color:rgba(247,244,237,.72)}
.ft-showroom b{display:block;color:var(--ivory);font-weight:600;font-size:.92rem;letter-spacing:.04em;margin-bottom:.15rem}
.ft-showroom .ft-hours{display:block;font-style:normal;margin-top:.25rem;font-size:.78rem;letter-spacing:.03em;opacity:.85}

/* ── Showroom experience page ─────────────────────────────────────────────── */
.leg-opt{font-style:normal;font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:var(--gold-ink);background:var(--ivory);border:1px solid var(--hair);border-radius:100px;padding:.2rem .6rem;margin-left:.6rem;vertical-align:middle}
/* interactive "what would you like to see?" picker */
.sr-picks{display:grid;grid-template-columns:repeat(4,1fr);gap:.8rem;margin:.4rem 0 .6rem}
@media(max-width:760px){.sr-picks{grid-template-columns:1fr 1fr}}
.sr-pick{position:relative;display:block;border:1px solid var(--hair);border-radius:14px;overflow:hidden;background:var(--white);padding:0;cursor:pointer;text-align:left;transition:border-color .3s var(--e),transform .3s var(--e),box-shadow .3s var(--e)}
@media(hover:hover){.sr-pick:hover{transform:translateY(-3px);box-shadow:var(--shadow)}}
.srp-img{display:block;aspect-ratio:3/2;overflow:hidden}
.srp-img img{width:100%;height:100%;object-fit:cover;object-position:50% 64%;transition:transform .6s var(--e),filter .3s var(--e)}
@media(hover:hover){.sr-pick:hover .srp-img img{transform:scale(1.05)}}
.sr-pick[data-pick="Classics & Vintage"] .srp-img img{object-position:center 78%}
.srp-lbl{display:block;padding:.7rem .85rem;font-size:.88rem;font-weight:600;color:var(--ink)}
.srp-tick{position:absolute;top:.55rem;right:.55rem;width:26px;height:26px;border-radius:50%;background:rgba(255,255,255,.85);border:1px solid var(--hair);color:transparent;display:grid;place-items:center;font-size:.85rem;font-weight:700;transition:all .3s var(--e);transform:scale(.7)}
.sr-pick.on{border-color:var(--green);box-shadow:0 0 0 2px var(--green)}
.sr-pick.on .srp-tick{background:var(--green);border-color:var(--green);color:#fff;transform:scale(1)}
.sr-pick.on .srp-img img{filter:saturate(1.05)}
.sx-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.3rem;margin-top:1.6rem}
.sx-card{background:var(--white);border:1px solid var(--hair);border-radius:16px;padding:1.7rem 1.6rem}
.sx-card .sx-n{font-family:var(--display);font-style:italic;font-size:1.15rem;color:var(--gold);font-weight:600}
.sx-card h3{margin:.55rem 0 .5rem;font-size:1.18rem;color:var(--green-deep)}
.sx-card p{color:var(--ink-2);line-height:1.6;font-size:.96rem}
.showroom-hero .vh-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1s var(--e)}
.showroom-hero .vh-video.media-in,.showroom-hero .vh-video.vh-auto{opacity:1}
@media(max-width:760px){.sx-grid{grid-template-columns:1fr}}

/* ── Homepage hero — Editorial Luxury (light, airy, Rolex register) ────────── */
.rx-hero{background:var(--ivory);padding:clamp(7rem,12vw,11rem) 0 clamp(2.5rem,5vw,4rem);text-align:center;overflow:hidden}
.rx-hero-top{max-width:62rem;margin:0 auto}
.rx-eyebrow{display:inline-block;font-size:.66rem;letter-spacing:.22em;text-transform:uppercase;font-weight:600;color:var(--gold-ink);border:1px solid var(--hair);border-radius:100px;padding:.5rem 1.15rem;margin-bottom:2.1rem}
.rx-h1{font-size:clamp(2.9rem,8vw,6.6rem);font-weight:300;letter-spacing:-.035em;line-height:1.0;color:var(--ink);margin:0}
.rx-em{font-family:var(--serif);font-style:italic;font-weight:500;color:var(--gold-ink)}
.rx-lede{max-width:46ch;margin:1.9rem auto 0;font-size:clamp(1.08rem,1.7vw,1.32rem);line-height:1.55;color:var(--ink-2)}
.rx-cta{display:flex;gap:1.5rem;justify-content:center;align-items:center;margin-top:2.7rem;flex-wrap:wrap}
.rx-pill{display:inline-flex;align-items:center;gap:.7rem;background:var(--green);color:var(--ivory);border-radius:100px;padding:.5rem .55rem .5rem 1.6rem;font-size:.74rem;letter-spacing:.12em;text-transform:uppercase;font-weight:700;transition:transform .55s cubic-bezier(.32,.72,0,1),background .4s var(--e)}
.rx-pill-i{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:rgba(247,244,237,.15);font-size:1rem;transition:transform .55s cubic-bezier(.32,.72,0,1)}
@media(hover:hover){.rx-pill:hover{transform:translateY(-2px);background:var(--green-deep)}}
@media(hover:hover){.rx-pill:hover .rx-pill-i{transform:translate(3px,-1px)}}
.rx-pill:active{transform:translateY(0) scale(.985)}
.rx-textlink{font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;font-weight:700;color:var(--green);border-bottom:1px solid var(--gold-soft);padding-bottom:3px;transition:color .3s var(--e),border-color .3s var(--e)}
@media(hover:hover){.rx-textlink:hover{color:var(--gold-ink);border-color:var(--gold-ink)}}
.rx-trust{margin-top:2.1rem;font-size:.84rem;color:var(--ink-3);letter-spacing:.02em}
.rx-trust .rx-stars{color:var(--gold);letter-spacing:.08em}
.rx-hero-media{max-width:var(--max);margin:clamp(3.5rem,7vw,6rem) auto 0;padding-inline:var(--pad)}
.rx-hero-media img{height:auto;width:100%;aspect-ratio:16/8;object-fit:cover;object-position:50% 58%;border-radius:22px;box-shadow:0 60px 100px -55px rgba(7,32,24,.45)}
.rx-marqs{max-width:var(--max);margin:clamp(2.6rem,5vw,4rem) auto 0;padding-inline:var(--pad);overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent)}
.rx-marqs .marq-track{display:flex;gap:3.4rem;width:max-content;align-items:center;animation:marq 38s linear infinite;opacity:.62}
@media(max-width:760px){.rx-hero{padding-top:6rem}.rx-hero-media img{height:auto;aspect-ratio:16/11}}

/* ── Homepage hero — Option B (image-led + floating ivory panel) ──────────── */
.rxb{padding:0;position:relative;min-height:clamp(78vh,86vh,90vh);display:flex;align-items:flex-end;background:var(--green-deep);text-align:left}
.rxb-media{position:absolute;inset:0;z-index:0}
.rxb-media img{width:100%;height:100%;object-fit:cover;object-position:50% 54%}
.rxb-wrap{position:relative;z-index:1;width:100%;padding-bottom:clamp(2.5rem,5vw,4.5rem);padding-top:8rem}
.rxb-panel{background:rgba(247,244,237,.93);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:22px;padding:clamp(2rem,4vw,3.4rem);max-width:44rem;box-shadow:0 50px 90px -55px rgba(7,32,24,.5)}
.rxb-panel .rx-eyebrow{border:none;padding:0;margin-bottom:1rem}
.rxb-panel .rx-h1{font-size:clamp(2.4rem,5vw,4.6rem);text-align:left;margin:0}
.rxb-panel .rx-lede{margin:1.3rem 0 0;text-align:left;max-width:44ch}
.rxb-panel .rx-cta{justify-content:flex-start;margin-top:2rem}
/* ── Homepage hero — Option C (editorial split) ───────────────────────────── */
.rxc{padding:clamp(6rem,10vw,9.5rem) 0 clamp(2rem,4vw,3rem);background:var(--ivory);text-align:left}
.rxc-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(2rem,5vw,4.5rem);align-items:center}
.rxc-text .rx-eyebrow{margin-bottom:1.6rem}
.rxc-text .rx-h1{font-size:clamp(2.6rem,5.5vw,5rem);text-align:left;margin:0}
.rxc-text .rx-lede{margin:1.6rem 0 0;text-align:left}
.rxc-text .rx-cta{justify-content:flex-start;margin-top:2.2rem}
.rxc-text .rx-trust{text-align:left}
.rxc-media img{height:auto;width:100%;aspect-ratio:4/5;object-fit:cover;object-position:50% 52%;border-radius:22px;box-shadow:0 50px 90px -55px rgba(7,32,24,.45)}
@media(max-width:860px){.rxc-grid{grid-template-columns:1fr;gap:2.4rem}.rxc-media img{height:auto;aspect-ratio:16/10}}
@media(max-width:600px){.rxb-panel{padding:1.6rem}.rxb-panel .rx-lede{display:none}}

/* Option B refinements: car sits to the right of the panel; video-ready */
.rxb-media img,.rxb-video{object-position:62% 50%}
.rxb-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1.1s var(--e)}
.rxb-video.media-in{opacity:1}
@media(min-width:861px){.rxb-wrap{display:flex;justify-content:flex-start}}

/* ── Homepage hero — Option R (rolex.com pattern: full-bleed video, centred) ─── */
/* pinned hero — the next section scrolls up over it (Rolex behaviour) */
.rxr{position:sticky;top:0;height:100vh;height:calc(100dvh + 1px);display:flex;align-items:center;justify-content:center;overflow:hidden;background:var(--green-deep);padding:0;z-index:0}
.home-rest{position:relative;z-index:1;margin-top:-1px;background:var(--ivory);box-shadow:0 -30px 60px -30px rgba(7,32,24,.25)}
.rxr-media{position:absolute;inset:-4% 0;z-index:0;will-change:transform}
.rxr-media img,.rxr-video{width:100%;height:100%;object-fit:cover;object-position:50% 52%}
.rxr-video{position:absolute;inset:0;opacity:0;transition:opacity 1.1s var(--e)}.rxr-video.media-in{opacity:1}
/* subtle, elegant scrim — readable white text without going heavy/dark */
.rxr::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(180deg,rgba(7,32,24,.5) 0%,rgba(7,32,24,.14) 15%,transparent 30%),radial-gradient(120% 75% at 50% 50%,rgba(7,32,24,.42),rgba(7,32,24,.12) 55%,transparent 78%),linear-gradient(transparent 60%,rgba(7,32,24,.45))}
.rxr-inner{position:relative;z-index:2;text-align:center;color:#fff;max-width:50rem;margin:0 auto}
.rxr-eyebrow{display:block;font-size:.7rem;letter-spacing:.32em;text-transform:uppercase;color:var(--gold-soft);font-weight:600;margin-bottom:1.7rem;text-shadow:0 1px 12px rgba(7,32,24,.7)}
.rxr-inner h1{font-size:clamp(2.7rem,7vw,6rem);font-weight:400;letter-spacing:-.02em;line-height:1.04;color:#fff;margin:0;text-shadow:0 1px 2px rgba(7,32,24,.5),0 4px 30px rgba(7,32,24,.55)}
.rxr-inner .rx-em{color:#fff;font-style:italic;font-family:var(--serif)}
.rxr-pill{display:inline-flex;align-items:center;gap:.7rem;margin-top:2.4rem;background:rgba(247,244,237,.12);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(247,244,237,.45);color:#fff;border-radius:100px;padding:.6rem .6rem .6rem 1.7rem;font-size:.74rem;letter-spacing:.12em;text-transform:uppercase;font-weight:700;transition:transform .55s cubic-bezier(.32,.72,0,1),background .4s var(--e),border-color .4s}
.rxr-pill .rx-pill-i{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:rgba(247,244,237,.16);font-size:1rem;transition:transform .55s cubic-bezier(.32,.72,0,1)}
@media(hover:hover){.rxr-pill:hover{background:var(--gold);border-color:var(--gold);color:var(--green-deep);transform:translateY(-2px)}}
@media(hover:hover){.rxr-pill:hover .rx-pill-i{transform:translate(3px,-1px);background:rgba(7,32,24,.18)}}
/* Whisper-quiet trust line under the hero button (live rating + count) */
.rxr-trust{margin:1.5rem 0 0;font-size:.8rem;letter-spacing:.05em;color:rgba(247,244,237,.82);display:flex;align-items:center;justify-content:center;gap:.5rem;text-shadow:0 1px 10px rgba(7,32,24,.65)}
.rxr-trust-stars{color:var(--gold-soft);letter-spacing:.1em;font-size:.85rem}
.rxr-trust b{font-weight:700;color:var(--ivory)}
/* ── HOME HERO TRIAL (2026-07-08) — active only while generate.py HOME_HERO_TRIAL=True adds
   .rxr-low; these rules are inert without it, so flipping the flag fully reverts the hero.
   The CTA pill is lifted out of the text stack and anchored with its centre at 73% of the
   viewport height (trust line rides just beneath it); eyebrow + H1 stay optically centred. */
.rxr-low .rxr-inner{position:static}
.rxr-low .rxr-pill{position:absolute;left:50%;top:73dvh;transform:translate(-50%,-50%);margin-top:0;z-index:2;white-space:nowrap}
@media(hover:hover){.rxr-low .rxr-pill:hover{transform:translate(-50%,calc(-50% - 2px))}}
.rxr-low .rxr-trust{position:absolute;left:50%;top:calc(73dvh + 30px);transform:translateX(-50%);margin:0;z-index:2;width:max-content}
.rxr-scroll{position:absolute;bottom:2.2rem;left:50%;transform:translateX(-50%);z-index:2;width:26px;height:42px;border:2px solid rgba(247,244,237,.55);border-radius:14px;display:flex;justify-content:center;padding-top:7px}
.rxr-scroll span{width:3px;height:8px;background:var(--gold-soft);border-radius:2px;animation:hvscroll 1.8s var(--e) infinite}
@keyframes hvscroll{0%{opacity:0;transform:translateY(-4px)}40%{opacity:1}80%{opacity:0;transform:translateY(9px)}}
@media(prefers-reduced-motion:reduce){.rxr-scroll span{animation:none}}

/* ── Footer — Rolex register (organised columns, social, clean legal row) ──── */
.rx-footer{padding:clamp(4rem,7vw,6rem) 0 2.4rem}
.rxf-grid{display:grid;grid-template-columns:1.25fr 2.75fr;gap:clamp(2.5rem,5vw,5rem)}
.rxf-brand{max-width:36ch}
.rxf-brand .logo{height:auto;width:auto;max-width:196px;margin-bottom:1.3rem}
.rxf-blurb{color:rgba(247,244,237,.72);line-height:1.6;font-size:.95rem;margin:0}
/* Subtle brand tagline under the footer blurb */
.rxf-tagline{margin:.9rem 0 0;font-family:var(--serif);font-size:1.02rem;letter-spacing:.01em;color:var(--ink-2)}
.rxf-tagline em{font-style:italic;color:var(--gold-ink)}
/* Footer Google-reviews badge (live rating + count) under the brand blurb */
.rxf-reviews{display:inline-flex;align-items:center;gap:.55rem;margin-top:1rem;text-decoration:none}
.rxf-rev-stars{color:var(--gold);font-size:.95rem;letter-spacing:.14em}
.rxf-rev-txt{font-size:.85rem;color:var(--ink-2)}
.rxf-rev-txt b{color:var(--green-deep);font-weight:700}
@media(hover:hover){.rxf-reviews:hover .rxf-rev-txt{color:var(--gold-ink)}}
.rxf-social{display:flex;gap:.7rem;margin-top:1.5rem}
.rxf-social a{display:grid;place-items:center;width:40px;height:40px;border:1px solid var(--green-line);border-radius:50%;color:var(--gold-soft);transition:background .3s var(--e),color .3s var(--e),border-color .3s var(--e)}
@media(hover:hover){.rxf-social a:hover{background:var(--gold);color:var(--green-deep);border-color:var(--gold)}}
.rxf-social svg{width:18px;height:18px}
.rxf-cols{display:grid;grid-template-columns:repeat(4,1fr);gap:2rem}
.rxf-col h3{font-size:.64rem;letter-spacing:.16em;text-transform:uppercase;font-weight:700;color:var(--gold-soft);margin:0 0 1.1rem}
.rxf-col a{display:block;color:rgba(247,244,237,.72);font-size:.92rem;padding:.5rem 0;transition:color .25s var(--e)}
@media(hover:hover){.rxf-col a:hover{color:var(--ivory)}}
.rxf-bot{display:flex;justify-content:space-between;align-items:center;gap:1rem 1.6rem;flex-wrap:wrap;margin-top:clamp(3rem,5vw,4rem);padding-top:1.8rem;border-top:1px solid var(--green-line);font-size:.82rem;color:rgba(247,244,237,.55)}
.rxf-bot-l{display:flex;align-items:center;gap:.5rem .85rem;flex-wrap:wrap}
.rxf-copy{color:rgba(247,244,237,.7)}
.rxf-addr{position:relative;padding-left:.85rem;color:rgba(247,244,237,.5)}
.rxf-addr::before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:3px;height:3px;border-radius:50%;background:var(--gold-soft)}
.rxf-legal{display:flex;gap:1.5rem}
.rxf-legal a{color:rgba(247,244,237,.7)}
@media(hover:hover){.rxf-legal a:hover{color:var(--ivory)}}
@media(max-width:920px){.rxf-grid{grid-template-columns:1fr}}
@media(max-width:600px){.rxf-cols{grid-template-columns:1fr 1fr;gap:1.4rem 1.6rem}.rxf-bot{flex-direction:column;align-items:flex-start}}

/* ── Footer LIGHT (Rolex register) — override the dark scheme ──────────────── */
.site-footer.rx-footer{background:#F5F2EA;color:var(--ink);border-top:1px solid #E4DECF}
.rxf-logo{height:36px;width:auto;margin-bottom:1.4rem}
.rx-footer .rxf-blurb{color:var(--ink-2)}
.rx-footer .ft-showroom{border-color:#E1DAC9;background:#fff;box-shadow:0 14px 30px -22px rgba(7,32,24,.35)}
@media(hover:hover){.rx-footer .ft-showroom:hover{border-color:var(--gold);background:#fff}}
.rx-footer .ft-showroom svg{color:var(--gold-ink)}
.rx-footer .ft-showroom span{color:var(--ink-2)}
.rx-footer .ft-showroom b{color:var(--green-deep)}
.rx-footer .rxf-social a{border-color:#DDD6C5;color:var(--green)}
@media(hover:hover){.rx-footer .rxf-social a:hover{background:var(--green);color:#fff;border-color:var(--green)}}
.rx-footer .rxf-col h3{color:var(--green-deep);font-weight:700;font-size:.68rem}
.rx-footer .rxf-col a{color:var(--ink);opacity:.78}
@media(hover:hover){.rx-footer .rxf-col a:hover{color:var(--gold-ink);opacity:1}}
.rx-footer .rxf-bot{border-top-color:#E4DECF;color:var(--ink-3)}
.rx-footer .rxf-copy{color:var(--ink-2)}
.rx-footer .rxf-addr{color:var(--ink-3)}
.rx-footer .rxf-legal a{color:var(--ink-2)}
@media(hover:hover){.rx-footer .rxf-legal a:hover{color:var(--green)}}

/* ── Homepage marque strip (after the pinned hero) ────────────────────────── */
.home-marqs{background:var(--ivory);padding:clamp(2.4rem,4vw,3.4rem) 0;border-bottom:1px solid var(--hair)}
/* Services index — the one-line "what we do" beneath the marque strip: the logos say
   "these cars", this line says "for these moments". Terms link to the occasion pages. */
.svc-terms{display:flex;flex-wrap:wrap;justify-content:center;align-items:baseline;column-gap:1.35rem;row-gap:.5rem;
  margin-top:clamp(1.5rem,2.6vw,2.1rem);font-size:.68rem;font-weight:600;letter-spacing:.24em;text-transform:uppercase;text-align:center}
.svc-terms a{color:var(--ink-2);text-decoration:none;transition:color .35s}
@media(hover:hover){.svc-terms a:hover{color:var(--green)}}
.svc-terms i{font-style:normal;color:var(--gold-soft);font-size:.85em}
/* Mobile: constrain the nav so it breaks as a clean, centred pair of lines
   (Weddings · Formals · Proposals / Events · Corporate) instead of overflowing. */
@media(max-width:640px){.svc-terms{column-gap:.9rem;row-gap:.6rem;font-size:.6rem;letter-spacing:.2em;max-width:300px;margin-left:auto;margin-right:auto}}
.home-marqs-lbl{display:block;text-align:center;font-size:.62rem;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-3);font-weight:600;margin-bottom:1.5rem}
.marq-strip{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 9%,#000 91%,transparent);mask-image:linear-gradient(90deg,transparent,#000 9%,#000 91%,transparent)}

/* ── Nav goes light over the full-bleed homepage hero (until you scroll) ───── */
.home-hero #site-nav:not(.scr) .nav-menu a{color:rgba(247,244,237,.92);text-shadow:0 1px 10px rgba(0,0,0,.28)}
.home-hero #site-nav:not(.scr) .nav-menu a[aria-current]{color:#fff}
@media(hover:hover){.home-hero #site-nav:not(.scr) .nav-menu a:hover{color:#fff}}
.home-hero #site-nav:not(.scr) .nav-menu a::after{background:var(--gold-soft)}
.home-hero #site-nav:not(.scr) .nav-search{color:#fff;border-color:rgba(247,244,237,.4)}
.home-hero #site-nav:not(.scr) .burger span{background:#fff}
.home-hero #site-nav:not(.scr) .nav-book{background:var(--gold);color:var(--green-deep)}
@media(hover:hover){.home-hero #site-nav:not(.scr) .nav-book:hover{background:var(--gold-2)}}
.home-hero #site-nav:not(.scr) .dd-caret{color:rgba(247,244,237,.8)}
/* …but the dropdown PANEL is always light, so its links must stay dark on dark-hero pages
   (otherwise the inverted ivory top-nav colour bleeds in → invisible items on white). */
.home-hero #site-nav:not(.scr) .nav-menu .dd a{color:var(--ink)}
@media(hover:hover){.home-hero #site-nav:not(.scr) .nav-menu .dd a:hover{color:var(--green)}}
.home-hero #site-nav:not(.scr) .nav-menu .dd .dd-all{color:var(--gold)}

/* ── Mobile menu LIGHT (Rolex 5465) + secondary list (dedupe vs feature cards) ── */
.mobile-menu .mm-search{border-color:var(--hair);background:#fff;color:var(--ink-3)}
@media(hover:hover){.mobile-menu .mm-search:hover{background:#fff;border-color:var(--gold)}}
.mobile-menu .mm-search svg{color:var(--gold-ink)}
.mobile-menu .mm-more{display:flex;flex-direction:column;margin-top:.2rem}
.mobile-menu .mm-more a{font-size:1.1rem;font-weight:500;letter-spacing:-.01em;padding:.82rem 0;border-bottom:1px solid var(--hair);color:var(--ink);display:flex;align-items:center;justify-content:space-between;transition:padding-left .3s var(--e)}
.mobile-menu .mm-more a:first-child{padding-top:0}
.mobile-menu .mm-more a:active{color:var(--green);padding-left:.3rem}
.mm-more-go{color:var(--gold-ink);font-size:1.15rem;line-height:1;opacity:.55;transition:transform .3s var(--e),opacity .3s var(--e)}
.mobile-menu .mm-more a:active .mm-more-go{transform:translateX(3px);opacity:1}
.mobile-menu .mm-visit{border-color:var(--hair);background:#fff}
.mobile-menu .mm-visit .mv-k{color:var(--gold-ink)}
.mobile-menu .mm-visit .mv-addr{color:var(--green-deep)}
.mobile-menu .mm-visit .mv-by{color:var(--ink-2)}
.mobile-menu .mm-logo{border-top-color:var(--hair)}
.mobile-menu .mm-logo img{height:30px;opacity:1}
/* mm-search — was light-on-light (invisible); make it readable on the light menu */
.mobile-menu .mm-search{background:#fff;border-color:var(--hair);color:var(--ink-3)}
@media(hover:hover){.mobile-menu .mm-search:hover{background:#fff;border-color:var(--gold-soft)}}
.mobile-menu .mm-search svg{color:var(--gold-ink)}
/* actions row: Book (primary) + Call (outline) side by side */
.mm-actions{display:flex;gap:.6rem;margin-top:.55rem}
.mm-actions .mm-book{flex:1;margin-top:0}
/* "More from G Class" eyebrow must clear the Book/Call buttons above it */
.mm-actions + .mm-eyebrow{margin-top:2rem}
.mm-call{flex:none;display:inline-flex;align-items:center;gap:.5rem;padding:0 1.35rem;border:1px solid var(--green);border-radius:100px;color:var(--green);font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;font-weight:700;text-decoration:none;transition:background .25s var(--e),color .25s var(--e)}
.mm-call svg{width:17px;height:17px}
.mm-call:active{background:var(--green);color:#fff}
/* staggered entrance when the menu opens */
@media(prefers-reduced-motion:no-preference){
  .mobile-menu>*{opacity:0;transform:translateY(14px)}
  body.menu-open .mobile-menu>*{animation:mmrise .55s var(--e) forwards}
  body.menu-open .mobile-menu>*:nth-child(1){animation-delay:.03s}
  body.menu-open .mobile-menu>*:nth-child(2){animation-delay:.08s}
  body.menu-open .mobile-menu>*:nth-child(3){animation-delay:.13s}
  body.menu-open .mobile-menu>*:nth-child(4){animation-delay:.18s}
  body.menu-open .mobile-menu>*:nth-child(5){animation-delay:.23s}
  body.menu-open .mobile-menu>*:nth-child(6){animation-delay:.28s}
  body.menu-open .mobile-menu>*:nth-child(7){animation-delay:.33s}}
@keyframes mmrise{to{opacity:1;transform:none}}

/* When the (light) mobile menu is open, keep the nav controls dark even over the hero */
body.menu-open.home-hero #site-nav:not(.scr) .burger span{background:var(--green)}
body.menu-open.home-hero #site-nav:not(.scr) .nav-search{color:var(--green);border-color:var(--hair)}

/* Concierge launcher withdraws to the edge at the footer (slides back on scroll up) */
.cc-launch{transition:transform .5s cubic-bezier(.32,.72,0,1),opacity .4s var(--e),background .4s var(--e)}
body.cc-hide .cc-launch{transform:translateX(calc(100% + 28px));opacity:0;pointer-events:none}
@media(prefers-reduced-motion:reduce){body.cc-hide .cc-launch{transition:none}}

/* ── Calm Rolex-style intro (fleet, hubs) ─────────────────────────────────── */
.rx-intro{text-align:center;padding:clamp(4rem,8vw,7rem) 0 clamp(2.4rem,5vw,3.6rem)}
.rx-intro .rx-eyebrow{margin-bottom:1.6rem}
.rx-intro-h{font-size:clamp(2rem,4vw,3.2rem);font-weight:300;letter-spacing:-.02em;color:var(--ink);max-width:20ch;margin:0 auto;line-height:1.08}
.rx-intro-p{max-width:54ch;margin:1.3rem auto 0;color:var(--ink-2);font-size:clamp(1.02rem,1.5vw,1.18rem);line-height:1.6}
/* search trending thumbnails reuse .so-group styling */
.so-trend h3::before{content:"✦ ";color:var(--gold)}

/* ── Bulldogs partner band (homepage) ─────────────────────────────────────── */
.bulldogs-sec{padding:clamp(2.5rem,5vw,4rem) 0}
.bd-band{display:flex;align-items:center;gap:clamp(1rem,3vw,2.5rem);flex-wrap:wrap;background:var(--green-deep);border-radius:18px;padding:clamp(1.7rem,3vw,2.4rem) clamp(1.8rem,4vw,3rem);text-decoration:none;position:relative;overflow:hidden;transition:transform .4s var(--e),box-shadow .4s var(--e)}
@media(hover:hover){.bd-band:hover{transform:translateY(-2px);box-shadow:0 30px 60px -34px rgba(7,32,24,.5)}}
.bd-band::before{content:"";position:absolute;inset:0;background:radial-gradient(120% 140% at 90% 0%,rgba(169,133,74,.22),transparent 55%)}
.bd-crest{position:relative;flex:none;width:clamp(64px,8vw,84px);height:auto;background:#fff;border-radius:14px;padding:.45rem .5rem;box-shadow:0 14px 30px -16px rgba(7,32,24,.6)}
.bd-copy{position:relative;flex:1;min-width:240px;display:flex;align-items:center;gap:clamp(1rem,3vw,2.5rem);flex-wrap:wrap}
.bd-k{position:relative;flex:none;font-size:.64rem;letter-spacing:.18em;text-transform:uppercase;font-weight:700;color:var(--gold-soft);border:1px solid rgba(247,244,237,.3);border-radius:100px;padding:.5rem 1rem}
.bd-t{position:relative;flex:1;min-width:240px;font-size:clamp(1.05rem,1.8vw,1.32rem);line-height:1.42;color:var(--ivory)}
.bd-t em{font-family:var(--serif);font-style:italic;color:var(--gold-soft)}
.bd-go{position:relative;flex:none;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;font-weight:700;color:var(--gold-soft);display:inline-flex;gap:.5rem;align-items:center}
.bd-go span{transition:transform .3s var(--e);display:inline-block}
@media(hover:hover){.bd-band:hover .bd-go span{transform:translateX(3px)}}
/* Bulldogs partnership page — branded lockup + editorial image-as-you-scroll rows */
.bd-lockup{margin:0 auto clamp(1.8rem,4vw,3rem);max-width:760px;border-radius:18px;overflow:hidden;border:1px solid var(--hair);box-shadow:0 36px 70px -40px rgba(7,32,24,.5)}
.bd-lockup img{display:block;width:100%;height:auto}
.bd-rows{display:flex;flex-direction:column;gap:clamp(2.6rem,6vw,4.6rem);margin:clamp(2.6rem,6vw,4.6rem) 0}
.bd-row{display:grid;grid-template-columns:minmax(0,.82fr) 1fr;gap:clamp(1.5rem,4vw,3.4rem);align-items:center}
.bd-row:nth-child(even) .bd-shot{order:2}
.bd-shot{margin:0;position:relative;border-radius:16px;overflow:hidden;border:1px solid var(--hair);box-shadow:0 28px 56px -32px rgba(7,32,24,.5)}
.bd-shot img{display:block;width:100%;aspect-ratio:4/5;height:auto;object-fit:cover;object-position:50% 34%}
.bd-shot figcaption{position:absolute;left:0;right:0;bottom:0;padding:1.6rem .95rem .7rem;font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:#fff;background:linear-gradient(to top,rgba(7,32,24,.82),transparent)}
.bd-row .bd-copy{display:block;min-width:0}
.bd-row .bd-copy h2,.bd-row .bd-copy h3{margin-top:0;font-size:clamp(1.3rem,2.4vw,1.7rem)}
.bd-emblem{max-width:780px;margin:0 auto;text-align:center}
.bd-emblem>.sec-ix{display:flex;justify-content:center;color:var(--gold)}
.bd-emblem h2{margin:.5rem 0 0}
.bd-emblem .bd-lockup{margin:clamp(1.4rem,3vw,2.2rem) auto 0;max-width:680px}
.bd-emblem p{margin:clamp(1.3rem,3vw,1.9rem) auto 0;max-width:52ch;color:var(--muted);font-size:clamp(1rem,1.6vw,1.12rem);line-height:1.62}
/* Vehicle colour configurator (Revuelto white/black) */
.colour-pick{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;margin:0 0 1.6rem;padding-bottom:1.4rem;border-bottom:1px solid var(--hair)}
.cp-label{font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);font-weight:700;margin-right:.2rem}
.cp-opt{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem .95rem;border:1px solid var(--hair);border-radius:100px;font-size:.86rem;font-weight:600;color:var(--ink-2);text-decoration:none;transition:all .25s var(--e)}
.cp-opt.is-on{border-color:var(--green);color:var(--green-deep);background:rgba(14,59,43,.05)}
@media(hover:hover){.cp-opt:hover{border-color:var(--gold-soft);color:var(--green)}}
.cp-dot{width:13px;height:13px;border-radius:50%;border:1px solid rgba(7,32,24,.25);flex:none}
.cp-white{background:#f4f4f0}.cp-black{background:#1a1a1a}
/* Bulldogs — swipeable scroll-snap carousel of the (portrait) stadium photos */
.bd-carousel-sec{padding-bottom:clamp(1rem,3vw,2rem)}
.bd-carousel{display:flex;gap:clamp(.8rem,2vw,1.2rem);overflow-x:auto;scroll-snap-type:x mandatory;
  scroll-padding-left:clamp(16px,5vw,80px);padding:clamp(1.2rem,3vw,2rem) clamp(16px,5vw,80px) 1rem;
  -webkit-overflow-scrolling:touch;scrollbar-width:none}
.bd-carousel::-webkit-scrollbar{display:none}
.bd-carousel figure{flex:0 0 clamp(232px,66vw,320px);margin:0;scroll-snap-align:center;position:relative;
  border-radius:16px;overflow:hidden;box-shadow:0 16px 36px -26px rgba(7,32,24,.34)}
.bd-carousel img{display:block;width:100%;aspect-ratio:3/4;height:auto;object-fit:cover}
.bd-carousel figcaption{position:absolute;left:0;right:0;bottom:0;padding:1.6rem .9rem .7rem;font-size:.72rem;
  letter-spacing:.05em;text-transform:uppercase;color:#fff;background:linear-gradient(to top,rgba(7,32,24,.85),transparent)}
.bd-carousel-hint{text-align:center;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:.4rem 0 0}
/* Wide desktop: the 4 stadium shots all fit, so drop the left-aligned scroll rail (which left
   dead space on the right) for a centred 4-up grid — balanced, no orphaned whitespace. */
@media(min-width:880px){
  .bd-carousel-hint{display:none}
  .bd-carousel{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(1rem,1.6vw,1.5rem);
    overflow:visible;max-width:1180px;margin-inline:auto;padding:clamp(1.2rem,3vw,2rem) clamp(24px,5vw,48px) 1rem}
  .bd-carousel figure{flex:none;width:auto}
}
/* Touch insurance: clickable cards/links activate on the first tap (belt-and-braces with the gated :hover) */
a,button,[role="button"],.fcard,.fleet-card,.gcard,.pcard,.vcard,.cc-car,.gv-occ,.int-card,.cg-tile,.gal-tile,.sr-next-card,.sr-pick{touch-action:manipulation}
@media(max-width:720px){.bd-row{grid-template-columns:1fr;gap:1.1rem}.bd-row:nth-child(even) .bd-shot{order:0}.bd-shot img{height:auto;aspect-ratio:16/11}}
.fleet-film{margin:0;border-radius:20px;overflow:hidden;position:relative;border:1px solid var(--hair);box-shadow:0 40px 80px -44px rgba(7,32,24,.5);background:var(--green-deep)}
.fleet-film-vid{display:block;width:100%;aspect-ratio:16/9;height:auto;object-fit:cover}
.fleet-film-cap{position:absolute;left:0;right:0;bottom:0;padding:clamp(2.4rem,6vw,4rem) clamp(1.3rem,3vw,2.4rem) clamp(1.1rem,2.5vw,1.7rem);color:#fff;background:linear-gradient(to top,rgba(7,32,24,.8),transparent);pointer-events:none}
.fleet-film-cap .sec-ix{color:var(--gold)}
.fleet-film-cap p{margin:.3rem 0 0;font-size:clamp(1rem,2.4vw,1.28rem);max-width:48ch;color:rgba(255,255,255,.92)}
/* Interiors hub — editorial colourway cards */
.int-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(1.4rem,3vw,2.4rem)}
.int-card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--hair);border-radius:16px;overflow:hidden;text-decoration:none;transition:transform .45s var(--e),box-shadow .45s var(--e)}
@media(hover:hover){.int-card:hover{transform:translateY(-3px);box-shadow:0 34px 64px -40px rgba(7,32,24,.4)}}
.int-img{aspect-ratio:4/3;overflow:hidden}
.int-img img{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--e)}
@media(hover:hover){.int-card:hover .int-img img{transform:scale(1.04)}}
.int-body{padding:clamp(1.3rem,2.4vw,1.9rem);display:flex;flex-direction:column;gap:.5rem}
.int-ey{font-size:.64rem;letter-spacing:.16em;text-transform:uppercase;font-weight:600;color:var(--gold-ink)}
.int-nm{font-family:var(--serif);font-style:italic;font-weight:500;font-size:clamp(1.4rem,2.4vw,1.85rem);line-height:1.1;color:var(--green-deep);margin:0}
.int-tx{font-size:.95rem;line-height:1.55;color:var(--ink-2);margin:.2rem 0 0}
.int-go{margin-top:.4rem;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;font-weight:700;color:var(--green);display:inline-flex;gap:.5rem;align-items:center}
.int-go span{transition:transform .3s var(--e)}
@media(hover:hover){.int-card:hover .int-go span{transform:translateX(4px)}}
.int-note{margin:clamp(2rem,4vw,3rem) auto 0;max-width:60ch;text-align:center;font-size:.95rem;color:var(--ink-3)}
.int-note a{color:var(--green);text-decoration:underline;text-underline-offset:3px}
@media(max-width:680px){.int-grid{grid-template-columns:1fr}}
/* Interiors promo band (on /fleet/) */
.int-promo{display:grid;grid-template-columns:1.05fr 1fr;align-items:stretch;gap:0;background:#fff;border:1px solid var(--hair);border-radius:20px;overflow:hidden;text-decoration:none;transition:transform .5s var(--e),box-shadow .5s var(--e)}
@media(hover:hover){.int-promo:hover{transform:translateY(-3px);box-shadow:0 40px 70px -44px rgba(7,32,24,.42)}}
.int-promo-img{position:relative;overflow:hidden;min-height:300px}
.int-promo-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .9s var(--e)}
@media(hover:hover){.int-promo:hover .int-promo-img img{transform:scale(1.05)}}
.int-promo-copy{padding:clamp(1.8rem,4vw,3rem)}
.int-promo-copy h2{color:var(--green-deep);margin:.3rem 0 .7rem}
.int-promo-copy p{color:var(--ink-2);line-height:1.65;margin:0 0 1.1rem;max-width:46ch}
@media(max-width:760px){.int-promo{grid-template-columns:1fr}.int-promo-img{min-height:220px}}
/* Custom Line-Up promo band — the line-up film loops behind the copy (photo poster fallback) */
.bband-film{position:relative;border-radius:22px;overflow:hidden;min-height:clamp(340px,42vw,440px);
  display:flex;align-items:center;background:var(--green-deep)}
.bband-media{position:absolute;inset:0;z-index:0}
.bband-media video,.bband-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 58%}
.bband-poster{z-index:0}
.bband-vid{z-index:1;opacity:0;transition:opacity 1s var(--e)}
.bband-vid.media-in{opacity:1}
.bband-film::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(100deg,rgba(7,32,24,.94) 22%,rgba(7,32,24,.62) 52%,rgba(7,32,24,.2) 84%)}
.bband-copy{position:relative;z-index:2;color:var(--ivory);max-width:36rem;padding:clamp(1.9rem,5vw,3.4rem)}
.bband-copy h2{color:var(--ivory);font-size:clamp(1.7rem,3.4vw,2.6rem);line-height:1.12;margin:.5rem 0 .8rem;text-wrap:balance}
.bband-copy h2 .em{font-family:var(--serif);font-style:italic;font-weight:400;color:var(--gold-soft)}
.bband-copy p{color:rgba(247,244,237,.82);line-height:1.62;max-width:46ch;margin:0 0 1.4rem}
.bband-copy .btn-ghost{border-color:rgba(247,244,237,.4);color:var(--ivory)}
@media(max-width:640px){.bband-film{min-height:clamp(360px,90vw,440px)}
  .bband-film::after{background:linear-gradient(180deg,rgba(7,32,24,.6) 0%,rgba(7,32,24,.72) 45%,rgba(7,32,24,.94) 100%)}
  .bband-copy{align-self:flex-end}}
@media(prefers-reduced-motion:reduce){.bband-media video{display:none}}
/* Package supporting photo strip */
.pkg-gallery{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(1rem,2vw,1.5rem)}
.pkg-shot{margin:0;border-radius:14px;overflow:hidden;aspect-ratio:16/10;background:var(--paper-g);box-shadow:0 24px 48px -38px rgba(7,32,24,.4)}
.pkg-shot img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--e)}
@media(hover:hover){.pkg-shot:hover img{transform:scale(1.04)}}
@media(max-width:620px){.pkg-gallery{grid-template-columns:1fr}}
@media(max-width:680px){.bd-band{flex-direction:column;align-items:flex-start;text-align:left}.bd-copy{align-items:flex-start}}

/* ── The Full Experience — service cards ──────────────────────────────────── */
.svc-x-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.3rem;margin-top:.5rem}
.svc-x-card{background:var(--white);border:1px solid var(--hair);border-radius:16px;overflow:hidden;transition:transform .5s var(--e),box-shadow .5s var(--e),border-color .5s var(--e)}
@media(hover:hover){.svc-x-card:hover{transform:translateY(-4px);box-shadow:var(--shadow);border-color:transparent}}
.svc-x-img{position:relative;aspect-ratio:16/10;overflow:hidden;background:var(--paper-g)}
.svc-x-img::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(7,32,24,.28),transparent 55%);pointer-events:none}
.svc-x-img img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--e)}
@media(hover:hover){.svc-x-card:hover .svc-x-img img{transform:scale(1.05)}}
.svc-x-body{padding:1.5rem 1.6rem 1.7rem}
.svc-x-card{text-decoration:none;color:inherit}
.svc-x-more{display:inline-flex;align-items:center;gap:.4rem;margin-top:.9rem;font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;font-weight:700;color:var(--gold-ink);opacity:.85;transition:opacity .3s var(--e)}
@media(hover:hover){.svc-x-card:hover .svc-x-more{opacity:1}}
/* The services in detail */
.svc-d-list{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.2rem,2.6vw,2rem)}
.svc-d{display:flex;gap:1.1rem;scroll-margin-top:100px;background:var(--white);border:1px solid var(--hair);border-radius:16px;padding:clamp(1.3rem,2.4vw,1.8rem)}
.svc-d-ic{flex:none;display:grid;place-items:center;width:46px;height:46px;border-radius:12px;background:var(--paper-g);color:var(--gold-ink);font-size:1.3rem}
.svc-d-body h3{margin:.1rem 0 .5rem;color:var(--green-deep);font-size:1.2rem}
.svc-d-body p{margin:0;color:var(--ink-2);line-height:1.6;font-size:.96rem}
.svc-d-link{display:inline-flex;align-items:center;gap:.45rem;margin-top:.9rem;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;font-weight:700;color:var(--green);text-decoration:none}
.svc-d-link span{transition:transform .3s var(--e)}
@media(hover:hover){.svc-d:hover .svc-d-link span{transform:translateX(4px)}}
@media(max-width:760px){.svc-d-list{grid-template-columns:1fr}}
.svc-x-ic{display:grid;place-items:center;width:48px;height:48px;border-radius:12px;background:var(--paper-g);color:var(--gold-ink);font-size:1.4rem;margin:2rem 1.8rem 1.1rem}
.svc-x-card h3{font-size:1.18rem;color:var(--green-deep);margin:0 0 .5rem}
.svc-x-card p{color:var(--ink-2);line-height:1.6;font-size:.96rem;margin:0}
.svc-x-note{margin-top:2rem;color:var(--ink-2);font-size:1rem;max-width:64ch}
.svc-x-note a{color:var(--green);font-weight:600;border-bottom:1px solid var(--gold-soft)}
@media(max-width:860px){.svc-x-grid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.svc-x-grid{grid-template-columns:1fr}}

/* ── Abbreviated Instagram reels rail (homepage, fleet hub) ───────────────────── */
.reels-strip{display:flex;gap:18px;overflow-x:auto;scroll-snap-type:x mandatory;
  padding:4px 0 14px;-webkit-overflow-scrolling:touch;scrollbar-width:thin}
.reels-strip::-webkit-scrollbar{height:6px}
.reels-strip::-webkit-scrollbar-thumb{background:var(--hair,rgba(20,21,15,.12));border-radius:100px}
.reel-card{flex:0 0 clamp(260px,80vw,320px);scroll-snap-align:start;border-radius:18px;overflow:hidden;
  background:#fff;box-shadow:0 18px 40px -28px rgba(7,32,24,.4)}
.reel-card .instagram-media{min-width:0!important;margin:0!important;border:0!important;box-shadow:none!important}
@media(min-width:760px){.reel-card{flex-basis:300px}}

/* ── Reliable media rail (scroll-snap) — replaces the auto-marquee + IG embeds ─── */
.media-rail{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;
  padding:4px 2px 16px;margin-top:clamp(1.4rem,3vw,2.4rem);
  -webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:rgba(20,21,15,.14) transparent}
.media-rail::-webkit-scrollbar{height:3px}
.media-rail::-webkit-scrollbar-track{background:transparent}
.media-rail::-webkit-scrollbar-thumb{background:rgba(20,21,15,.12);border-radius:100px}
@media(hover:hover){.media-rail:hover{scrollbar-color:rgba(20,21,15,.24) transparent}.media-rail:hover::-webkit-scrollbar-thumb{background:rgba(20,21,15,.22)}}
/* On phones, break the rail out to the screen edges so the peeking next tile
   runs right to the edge — signalling "scroll for more" instead of a cut-off. */
@media(max-width:760px){
  .media-rail{margin-left:calc(-1*var(--pad));margin-right:calc(-1*var(--pad));
    padding-left:var(--pad);padding-right:var(--pad);scroll-padding-left:var(--pad)}
}
.media-rail > *{flex:0 0 clamp(240px,74vw,300px);scroll-snap-align:start;margin:0;
  border-radius:16px;overflow:hidden;aspect-ratio:4/5;position:relative;background:var(--ivory-2,#efece4)}
@media(min-width:760px){.media-rail > *{flex-basis:300px}}
.media-rail .rail-tile{cursor:zoom-in}
.media-rail .rail-tile img,.media-rail .cg-video{width:100%;height:100%;object-fit:cover;display:block}
.media-rail .mom-cap{position:absolute;left:0;right:0;bottom:0;padding:26px 14px 12px;margin:0;
  font-size:12px;letter-spacing:.04em;text-transform:uppercase;font-weight:600;color:#fff;
  background:linear-gradient(to top,rgba(7,32,24,.86),transparent)}
.rail-foot{display:flex;align-items:center;gap:20px;flex-wrap:wrap;margin-top:10px}
.rail-ig{color:var(--gold-ink);font-weight:600;font-size:.9rem;text-decoration:none;border-bottom:1px solid var(--gold-soft)}
@media(hover:hover){.rail-ig:hover{color:var(--green)}}

/* ── Areas & Showroom — elevated showroom showcase ───────────────────────────── */
/* Areas & Showroom — "See the collection" showcase (redesigned): cinematic footage + editorial
   copy, then three value cards. */
.as-sr .as-sr-top{display:grid;grid-template-columns:1fr;gap:clamp(1.9rem,4vw,3rem);align-items:center;margin-top:clamp(1.4rem,3vw,2.2rem)}
.as-sr-media{display:flex;justify-content:center}
.as-sr-media .sr-vid{margin:0;width:100%;max-width:420px;aspect-ratio:4/5;border-radius:20px;overflow:hidden;position:relative;box-shadow:0 40px 80px -44px rgba(7,32,24,.6);background:var(--ink);cursor:zoom-in}
.as-sr-media .cg-video{width:100%;height:100%;object-fit:cover;display:block}
.as-sr-copy .sec-ix{margin-bottom:.85rem}
.as-sr-h{margin:0;font-size:clamp(2rem,3.6vw,3.05rem);line-height:1.06;letter-spacing:-.022em}
.as-sr-copy .lede{margin-top:1rem;max-width:54ch}
.as-sr-steps{list-style:none;margin:1.35rem 0 0;padding:0;display:grid;gap:.5rem}
.as-sr-steps li{position:relative;padding-left:1.5rem;font-family:var(--display);font-weight:500;font-size:1.06rem;color:var(--ink)}
.as-sr-steps li::before{content:"";position:absolute;left:0;top:.68em;width:.85rem;height:2px;border-radius:2px;background:var(--gold)}
.as-sr-close{margin-top:1.15rem;color:var(--ink);font-weight:500;font-size:1.06rem}
.as-sr-copy .cta-row{margin-top:1.7rem;flex-wrap:wrap}
.as-sr-cards{margin-top:clamp(2.6rem,5vw,4rem);display:grid;grid-template-columns:1fr;gap:clamp(1rem,2vw,1.4rem)}
.as-sr-card{background:var(--white);border:1px solid var(--hair);border-radius:16px;padding:clamp(1.5rem,2.6vw,2rem);transition:transform .3s var(--e),box-shadow .3s var(--e),border-color .3s var(--e)}
.as-sr-card .as-sr-ic{display:inline-flex;width:46px;height:46px;align-items:center;justify-content:center;border-radius:13px;background:var(--ivory-2);color:var(--gold-ink);margin-bottom:1.05rem}
.as-sr-card .as-sr-ic .ic{width:23px;height:23px}
.as-sr-card h3{margin:0 0 .45rem;font-size:1.14rem;letter-spacing:-.01em}
.as-sr-card p{margin:0;color:var(--ink-2);line-height:1.6;font-size:.96rem}
@media(hover:hover){.as-sr-card:hover{transform:translateY(-4px);box-shadow:var(--shadow);border-color:transparent}}
@media(min-width:720px){.as-sr-cards{grid-template-columns:repeat(3,1fr)}}
@media(min-width:900px){
  .as-sr .as-sr-top{grid-template-columns:.8fr 1.2fr;gap:clamp(2.8rem,5vw,4.8rem);align-items:center}
  .as-sr-media .sr-vid{max-width:400px;aspect-ratio:4/5}
  .as-sr-copy{align-self:center}
}

/* Classic showcase cards are now links to the individual classic pages */
.cc-car.cc-link{display:block;text-decoration:none;color:inherit;position:relative}
.cc-car.cc-link .cc-go{display:inline-block;margin-top:.5rem;font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;font-weight:600;color:var(--gold-ink)}
@media(hover:hover){.cc-car.cc-link:hover .cc-go{color:var(--green)}}

/* Showroom video band (portrait dusk footage, centred — autoplays, opens in lightbox) */
/* "A look inside" — editorial split: portrait dusk film beside the copy on desktop,
   stacked on mobile. Replaces the lonely centred portrait video on wide screens. */
.sr-look-grid{display:grid;grid-template-columns:1fr;gap:clamp(1.8rem,4vw,2.6rem);align-items:center}
.sr-look-copy .sec-ix{margin-bottom:.8rem}
.sr-look-h{margin:0;font-size:clamp(1.9rem,3.4vw,2.9rem);line-height:1.08;letter-spacing:-.02em}
.sr-look-copy .lede{margin-top:.9rem;max-width:44ch}
/* the "what you'll see" list fills the copy column so it doesn't float in a void */
.sr-look-list{list-style:none;margin:1.5rem 0 0;padding:0;display:grid;gap:.05rem}
.sr-look-list li{display:grid;gap:.15rem;padding:.85rem 0;border-top:1px solid var(--hair)}
.sr-look-list li:last-child{border-bottom:1px solid var(--hair)}
.sr-look-list b{font-weight:600;color:var(--ink);font-size:1rem;letter-spacing:.01em}
.sr-look-list span{color:var(--ink-2);font-size:.92rem;line-height:1.5}
.sr-look-cta{display:flex;align-items:center;gap:1.2rem;flex-wrap:wrap;margin-top:1.7rem}
.sr-look-note{font-size:.8rem;letter-spacing:.02em;color:var(--ink-3)}
.sr-look-media{display:flex;justify-content:center}
.sr-look-media .sr-vid{width:100%;max-width:380px;aspect-ratio:3/4;border-radius:20px;overflow:hidden;margin:0;position:relative;box-shadow:0 40px 80px -44px rgba(7,32,24,.6);background:var(--ink);cursor:zoom-in}
.sr-look-media .cg-video{width:100%;height:100%;object-fit:cover;display:block}
.sr-look-close{margin-top:1.15rem;color:var(--ink);font-weight:500;max-width:44ch}
@media(min-width:900px){
  .sr-look-grid{grid-template-columns:1fr 1fr;gap:clamp(3rem,6vw,5.5rem);align-items:center}
  .sr-look-copy{align-self:center;padding-right:.5rem}
  .sr-look-media .sr-vid{max-width:400px;aspect-ratio:3/4}
}
/* alternative-form links under the showroom booking form */
.form-else{margin-top:2.4rem;padding-top:1.6rem;border-top:1px solid var(--hair)}
.form-else-k{display:block;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:var(--ink-3);margin-bottom:.9rem}
.form-else-links{display:flex;flex-direction:column;gap:.55rem}
.form-else-links a{display:inline-flex;align-items:center;gap:.5rem;color:var(--green);font-weight:600;font-size:.98rem;text-decoration:none;transition:gap .25s var(--e),color .25s var(--e)}
@media(hover:hover){.form-else-links a:hover{gap:.8rem;color:var(--gold-ink)}}
@media(min-width:640px){.form-else-links{flex-direction:row;flex-wrap:wrap;gap:1.6rem}}
.sr-vid-band{display:flex;justify-content:center;margin-top:clamp(1.4rem,3vw,2.4rem)}
.sr-vid-band .sr-vid{flex:0 0 clamp(270px,38vw,372px);aspect-ratio:9/16;border-radius:18px;overflow:hidden;margin:0;position:relative;box-shadow:0 32px 66px -40px rgba(7,32,24,.55);background:var(--ink);cursor:zoom-in}
.sr-vid-band .cg-video{width:100%;height:100%;object-fit:cover;display:block}
.sr-vid-band .mom-cap,.as-vid-wrap .mom-cap{position:absolute;left:0;right:0;bottom:0;margin:0;padding:24px 14px 12px;font-size:12px;letter-spacing:.04em;text-transform:uppercase;font-weight:600;color:#fff;background:linear-gradient(to top,rgba(7,32,24,.86),transparent)}


/* ===== OCCASION REEL (gift-vouchers) — swipe/drag carousel ===== */
.occ-reel-wrap{position:relative;margin-top:clamp(1.4rem,3vw,2.2rem)}
.occ-reel{display:flex;gap:clamp(14px,2vw,24px);overflow-x:auto;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;padding:.4rem .2rem 1.4rem;scrollbar-width:none;cursor:grab;scroll-behavior:smooth}
.occ-reel::-webkit-scrollbar{display:none}
.occ-reel.is-drag{cursor:grabbing;scroll-snap-type:none;scroll-behavior:auto}
.occ-reel.is-drag a{pointer-events:none}
.occ-card{position:relative;flex:0 0 auto;width:clamp(216px,33vw,332px);aspect-ratio:3/4;border-radius:16px;overflow:hidden;scroll-snap-align:center;text-decoration:none;color:#fff;background:var(--green-2,#16543c);box-shadow:0 12px 28px -18px rgba(7,32,24,.45);-webkit-user-select:none;user-select:none;touch-action:manipulation}
.occ-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;-webkit-user-drag:none;transition:transform .7s cubic-bezier(.16,1,.3,1)}
.occ-card::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(7,32,24,0) 42%,rgba(7,32,24,.86));z-index:1}
@media(hover:hover){.occ-card:hover img{transform:scale(1.07)}}
.occ-tx{position:absolute;left:18px;right:18px;bottom:17px;z-index:2}
.occ-tx .occ-k{font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-soft,#d8c291)}
.occ-tx b{display:block;font-family:var(--serif,'Playfair Display',Georgia,serif);font-style:italic;font-weight:500;font-size:1.4rem;line-height:1.1;margin-top:.25rem}
.occ-go{position:absolute;top:14px;right:14px;z-index:2;width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:rgba(7,32,24,.4);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid rgba(247,244,237,.28);color:#fff;font-size:1rem;transition:background .3s,border-color .3s}
@media(hover:hover){.occ-card:hover .occ-go{background:var(--gold-soft,#d8c291);border-color:var(--gold-soft,#d8c291);color:var(--green-deep,#072018)}}
.occ-arw{position:absolute;top:calc(50% - 1.4rem);transform:translateY(-50%);width:46px;height:46px;border-radius:50%;border:1px solid rgba(20,21,15,.16);background:rgba(255,255,255,.92);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:var(--green-deep,#072018);font-size:1.1rem;cursor:pointer;display:grid;place-items:center;box-shadow:0 10px 30px -14px rgba(7,32,24,.5);transition:background .3s,transform .3s,opacity .3s;z-index:3}
.occ-prev{left:-6px}.occ-next{right:-6px}
@media(hover:hover){.occ-arw:hover{background:#fff;transform:translateY(-50%) scale(1.06)}}
.occ-arw[disabled]{opacity:0;pointer-events:none}
@media(pointer:coarse){.occ-arw{display:none}}
.occ-anim .occ-card{opacity:0;transform:translateY(24px);transition:opacity .7s var(--e),transform .7s var(--e)}
.occ-anim.in .occ-card{opacity:1;transform:none}
.occ-anim.in .occ-reel .occ-card:nth-child(2){transition-delay:.06s}
.occ-anim.in .occ-reel .occ-card:nth-child(3){transition-delay:.12s}
.occ-anim.in .occ-reel .occ-card:nth-child(4){transition-delay:.18s}
.occ-anim.in .occ-reel .occ-card:nth-child(5){transition-delay:.24s}
.occ-anim.in .occ-reel .occ-card:nth-child(6){transition-delay:.3s}
@media(prefers-reduced-motion:reduce){.occ-anim .occ-card{opacity:1;transform:none;transition:none}}

/* ===== STEP DECK (gift-vouchers "Three easy steps") — sticky stacking cards ===== */
.gstep-stack{margin-top:clamp(1.6rem,3vw,2.6rem)}
.gstep-card{display:block;position:sticky;top:calc(94px + var(--i) * 16px);height:min(64vh,500px);border-radius:20px;overflow:hidden;margin-bottom:2.2rem;box-shadow:0 40px 80px -52px rgba(7,32,24,.75);transform-origin:top center;will-change:transform}
.gstep-card:last-child{margin-bottom:0}
.gstep-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.gstep-card::after{content:"";position:absolute;inset:0;background:linear-gradient(108deg,rgba(7,32,24,.94) 28%,rgba(7,32,24,.5) 74%)}
.gstep-body{position:relative;z-index:2;height:100%;display:flex;align-items:center;gap:clamp(1rem,4vw,3rem);padding:clamp(1.7rem,5vw,4rem);color:#fff}
.gstep-n{font-family:var(--serif,'Playfair Display',Georgia,serif);font-style:italic;font-size:clamp(3.2rem,8vw,6.6rem);line-height:.9;color:var(--gold-soft,#d8c291);flex:0 0 auto}
.gstep-tx h3{font-family:var(--display,var(--serif,Georgia,serif));font-size:clamp(1.5rem,3.4vw,2.4rem);font-weight:500;letter-spacing:-.01em;margin:0 0 .6rem;color:#fff}
.gstep-tx p{font-size:clamp(.98rem,1.6vw,1.14rem);line-height:1.6;color:rgba(247,244,237,.84);max-width:42ch;margin:0}
@media(max-width:640px){.gstep-body{flex-direction:column;align-items:flex-start;justify-content:center;gap:.6rem}.gstep-card{height:min(70vh,520px)}}

/* ===== SOCIAL STRIP (homepage) — swipe/drag Instagram feed ===== */
.soc{position:relative;z-index:1;background:var(--ivory);padding:clamp(3rem,7vh,5rem) 0 clamp(3.2rem,7vh,5rem)}
.soc-head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin-bottom:clamp(1.1rem,2.4vw,1.7rem)}
.soc-k{font-family:var(--display);font-size:clamp(1.4rem,3vw,2.2rem);color:var(--green-deep);letter-spacing:-.01em}
.soc-at{font-size:.74rem;letter-spacing:.12em;text-transform:uppercase;color:var(--gold-ink);font-weight:700;text-decoration:none;white-space:nowrap}
@media(hover:hover){.soc-at:hover{color:var(--green)}}
.soc-reel{display:flex;gap:clamp(12px,1.6vw,20px);overflow-x:auto;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;padding:.3rem var(--pad) 1rem;scrollbar-width:none;cursor:grab}
.soc-reel::-webkit-scrollbar{display:none}
.soc-reel.is-drag{cursor:grabbing;scroll-snap-type:none}.soc-reel.is-drag a{pointer-events:none}
.soc-card{position:relative;flex:0 0 auto;width:clamp(180px,24vw,258px);aspect-ratio:1;border-radius:14px;overflow:hidden;scroll-snap-align:center;background:#0c2b20;box-shadow:0 22px 44px -34px rgba(7,32,24,.5);-webkit-user-select:none;user-select:none;touch-action:manipulation}
.soc-card img{width:100%;height:100%;object-fit:cover;-webkit-user-drag:none;transition:transform .6s var(--e)}
.soc-card::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(7,32,24,0) 58%,rgba(7,32,24,.42));opacity:0;transition:opacity .4s}
@media(hover:hover){.soc-card:hover img{transform:scale(1.06)}.soc-card:hover::after{opacity:1}}
.soc-ig{position:absolute;top:12px;right:12px;width:26px;height:26px;color:#fff;opacity:0;transform:translateY(-4px);transition:opacity .35s var(--e),transform .35s var(--e);z-index:2}
.soc-ig svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.7}
@media(hover:hover){.soc-card:hover .soc-ig{opacity:1;transform:none}}
/* ===== ROUTE "THE JOURNEY" — BEGIN (delete BEGIN→END to revert) ===== */
.rt-kicker{display:block;font-size:.7rem;letter-spacing:.34em;text-transform:uppercase;color:var(--gold-soft);font-weight:600}
.rt-headline{font-weight:400;font-size:clamp(2.1rem,6.4vw,5.1rem);letter-spacing:-.022em;line-height:1.04;color:#fff;margin:0}
.rt-headline .em{font-family:var(--serif),Georgia,serif;font-style:italic;color:var(--gold-soft)}
.route{position:relative;z-index:1;background:var(--green-deep)}
.route-track{position:relative;height:540vh}
.rt-stage{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden;background:var(--green-deep)}
.rt-frame{position:absolute;z-index:1;
  /* Centred between the header (~96px) and the viewport bottom: equal top/bottom gaps (desktop + tablet). */
  top:calc(96px + clamp(28px,4vh,52px));left:clamp(20px,4.5vw,58px);right:clamp(20px,4.5vw,58px);bottom:clamp(28px,4vh,52px);
  border:1px solid rgba(216,194,145,.34);border-radius:3px;overflow:hidden;
  background:linear-gradient(180deg,#0a281d,var(--green-deep));
  box-shadow:0 50px 100px -66px rgba(0,0,0,.85)}
.rt-frame::before{content:"";position:absolute;inset:9px;z-index:6;pointer-events:none;
  border:1px solid rgba(216,194,145,.16);border-radius:1px}
.rt-frame::after{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;
  background:radial-gradient(125% 105% at 50% 42%,transparent 54%,rgba(6,26,19,.6))}
.rt-head{position:absolute;z-index:4;top:clamp(26px,4.6vh,48px);left:clamp(26px,4vw,54px);right:clamp(26px,4vw,54px);pointer-events:none}
.rt-head .rt-kicker{display:block;margin-bottom:.7rem}
.rt-head .rt-headline{font-size:clamp(1.7rem,3.6vw,2.9rem);max-width:13ch}
.rt-map{position:absolute;inset:0;z-index:1;width:100%;height:100%;display:block}
.rt-grid-glow{stroke:rgba(216,194,145,.04);stroke-width:1;fill:none;vector-effect:non-scaling-stroke}
.rt-route-bg{fill:none;stroke:rgba(247,244,237,.10);stroke-width:2.4;stroke-linecap:round}
.rt-route{fill:none;stroke:var(--gold);stroke-width:2.8;stroke-linecap:round;
          filter:drop-shadow(0 0 9px rgba(169,133,74,.55))}
.rt-marker{opacity:0;transition:opacity .4s var(--e)}
.rt-marker.live{opacity:1}
.rt-marker .halo{fill:rgba(216,194,145,.22)}
.rt-marker .dot{fill:var(--gold-soft);stroke:var(--green-deep);stroke-width:2}
.rt-stops{position:absolute;inset:0;z-index:3;pointer-events:none}
.rt-stop{position:absolute;display:flex;align-items:center;gap:13px;opacity:0;
         transition:opacity .55s var(--e),transform .55s var(--e);will-change:transform,opacity}
.rt-stop.show{opacity:1}
.rt-stop.side-r{flex-direction:row;transform-origin:left center;transform:translate(-7px,-50%) scale(.72)}
.rt-stop.side-r.show{transform:translate(-7px,-50%) scale(1)}
.rt-stop.side-l{flex-direction:row-reverse;transform-origin:right center;transform:translate(calc(-100% + 7px),-50%) scale(.72)}
.rt-stop.side-l.show{transform:translate(calc(-100% + 7px),-50%) scale(1)}
.rt-stop .pin{position:relative;width:14px;height:14px;flex:0 0 auto}
.rt-stop .pin::before{content:"";position:absolute;inset:0;border-radius:50%;background:var(--gold-soft);
         box-shadow:0 0 0 5px rgba(216,194,145,.16),0 6px 18px -6px rgba(0,0,0,.7)}
.rt-stop .pin::after{content:"";position:absolute;left:50%;top:50%;width:4px;height:4px;margin:-2px 0 0 -2px;
         border-radius:50%;background:var(--green-deep)}
.rt-stop.ping .pin::before{animation:rtping 1.1s var(--e) 1}
@keyframes rtping{0%{box-shadow:0 0 0 0 rgba(216,194,145,.5),0 6px 18px -6px rgba(0,0,0,.7)}
                  100%{box-shadow:0 0 0 18px rgba(216,194,145,0),0 6px 18px -6px rgba(0,0,0,.7)}}
.rt-stop .lab{white-space:nowrap}
.rt-stop.side-r .lab{text-align:left}
.rt-stop.side-l .lab{text-align:right}
.rt-stop .lab b{display:block;font-family:var(--serif);font-style:italic;font-weight:400;
         font-size:clamp(1rem,2.1vw,1.4rem);color:#fff;text-shadow:0 2px 14px rgba(7,32,24,.9),0 0 34px rgba(7,32,24,.65)}
.rt-stop .lab span{display:block;margin-top:3px;font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-soft)}
.rt-plaque{position:absolute;z-index:4;left:50%;bottom:clamp(20px,3.6vh,38px);transform:translateX(-50%);text-align:center;pointer-events:none}
.rt-plaque b{display:block;font-family:var(--ui);font-weight:600;font-size:.6rem;letter-spacing:.3em;text-transform:uppercase;color:var(--gold-soft)}
.rt-plaque .rule{position:relative;margin:.6rem auto 0;width:min(30vw,230px);height:1px;background:rgba(247,244,237,.16)}
.rt-plaque .rule i{position:absolute;top:0;left:0;height:100%;width:calc(var(--p,0) * 100%);background:var(--gold-soft)}
@media(max-width:760px){
  .rt-grid-glow{display:none}
  /* Centre the frame in the space between the sticky nav (~74px) and the bottom:
     the gap below the nav (top inset − nav height) equals the bottom gap, so the
     framed route sits balanced on screen rather than hugging the header. */
  .rt-frame{top:calc(78px + clamp(20px,3.2vh,38px));left:14px;right:14px;bottom:clamp(20px,3.2vh,38px)}
  .rt-frame::before{inset:7px}
  .rt-head{top:clamp(18px,3vh,30px);left:clamp(16px,4.5vw,26px);right:clamp(16px,4.5vw,26px)}
  .rt-head .rt-headline{font-size:clamp(1.7rem,7.4vw,2.4rem);max-width:12ch}
  .rt-stops .rt-stop:nth-child(2){flex-direction:row-reverse;transform-origin:right center;transform:translate(calc(-100% + 7px),-50%) scale(.72)}
  .rt-stops .rt-stop:nth-child(2).show{transform:translate(calc(-100% + 7px),-50%) scale(1)}
  .rt-stops .rt-stop:nth-child(2) .lab{text-align:right}
  .rt-stops .rt-stop:nth-child(3){flex-direction:row;transform-origin:left center;transform:translate(-7px,-50%) scale(.72)}
  .rt-stops .rt-stop:nth-child(3).show{transform:translate(-7px,-50%) scale(1)}
  .rt-stops .rt-stop:nth-child(3) .lab{text-align:left}
  .rt-stop .lab{white-space:normal;max-width:44vw}
  .rt-stop .lab b{font-size:1.05rem;white-space:nowrap}
  .rt-route-bg{stroke-width:3.4}
  .rt-route{stroke-width:3.8}
  .rt-plaque{bottom:clamp(11px,2.4vh,18px)}
  .rt-plaque b{font-size:.53rem;letter-spacing:.22em}
  .rt-plaque .rule{width:min(50vw,200px)}
}
@media (prefers-reduced-motion: reduce){
  .rt-stop{opacity:1 !important}
  .rt-stop.side-r{transform:translate(-7px,-50%) scale(1) !important}
  .rt-stop.side-l{transform:translate(calc(-100% + 7px),-50%) scale(1) !important}
  .rt-marker{opacity:1}
}
/* ===== ROUTE "THE JOURNEY" — END ===== */
/* ===== BRAND MARQUEE DIVIDER — BEGIN (delete BEGIN→END to revert) ===== */
.kmarq{position:relative;z-index:1;overflow:hidden;contain:paint;padding:clamp(2.6rem,7vh,4.6rem) 0;display:flex;flex-direction:column;gap:clamp(1.15rem,3vh,2rem);background:radial-gradient(120% 165% at 50% 50%,#0c3527 0%,var(--green-deep) 72%)}
.kmarq::before,.kmarq::after{content:"";position:absolute;left:0;right:0;height:1px;z-index:4;pointer-events:none;background:linear-gradient(90deg,transparent,rgba(216,194,145,.55) 22%,rgba(216,194,145,.55) 78%,transparent)}
.kmarq::before{top:0}.kmarq::after{bottom:0}
/* ghosted oversized brand word drifting behind the row — depth (opposite direction) */
.kmarq-ghost{position:absolute;inset:0;z-index:0;display:flex;align-items:center;overflow:hidden;contain:paint;pointer-events:none}
.kmarq-ghost-track{display:flex;width:max-content;white-space:nowrap;will-change:transform;animation:kmarq-ghost 58s linear infinite;animation-direction:reverse}
.kmarq-ghost-track>span{flex:0 0 auto}
.kmarq-ghost span{font-family:var(--serif),Georgia,serif;font-style:italic;font-weight:400;font-size:clamp(5rem,14vw,11rem);line-height:1;letter-spacing:.01em;color:rgba(247,244,237,.045);padding-right:.35em;white-space:nowrap}
@keyframes kmarq-ghost{to{transform:translateX(-50%)}}
.kmarq-row{position:relative;z-index:1;overflow:hidden;contain:paint;-webkit-mask:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);mask:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent)}
.kmarq-track{display:flex;width:max-content;align-items:center;white-space:nowrap;will-change:transform;animation:kmarq-scroll 68s linear infinite}
.kmarq-track>span{flex:0 0 auto}          /* never let Safari shrink the halves -> no overlap */
@keyframes kmarq-scroll{to{transform:translateX(-50%)}}
.kmarq-track>span{display:inline-flex;align-items:center;font-family:var(--display);font-weight:500;font-size:clamp(1.4rem,3.6vw,2.7rem);letter-spacing:-.02em;color:rgba(247,244,237,.94);line-height:1}
.kmarq .kmarq-em{font-family:var(--serif),Georgia,serif;font-style:italic;font-weight:400;color:var(--gold-soft);padding:0 .05em}
.kmarq .kx{display:inline-flex;align-items:center;margin:0 .72em;color:var(--gold-soft);font-style:normal;font-size:.4em;opacity:.75}
/* the lockup, travelling in the stream, with a gold shine masked to its own shape */
.kmarq-logo{position:relative;display:inline-flex;height:clamp(42px,6.8vw,82px);margin:0 .8em;line-height:0;flex:0 0 auto}
.kmarq-logo img{height:100%;width:auto;display:block}
.kmarq-logosh{position:absolute;inset:0;pointer-events:none;mix-blend-mode:screen;
  -webkit-mask:url(/assets/img/logo-full.webp) center/contain no-repeat;
          mask:url(/assets/img/logo-full.webp) center/contain no-repeat;
  background:linear-gradient(100deg,transparent 42%,rgba(255,255,255,.9) 48%,rgba(255,248,232,.95) 50%,rgba(216,194,145,.82) 54%,transparent 61%);
  background-repeat:no-repeat;background-size:250% 100%;background-position:180% 0;
  animation:kmarq-logosh 4.6s cubic-bezier(.55,0,.25,1) infinite}
@keyframes kmarq-logosh{0%{background-position:180% 0}46%,100%{background-position:-120% 0}}
@media(prefers-reduced-motion:reduce){.kmarq-track{animation:none;transform:none!important}.kmarq-logosh{display:none}.kmarq-ghost-track{animation:none}}
/* ===== BRAND MARQUEE DIVIDER — END ===== */
/* ===== Drag-to-scroll rails (desktop mouse) + wedding couple block ===== */
.rail,.gallery-band,.svc-cars,.bld-quick-row,.faq-pills,.media-rail{cursor:grab}
.rail.is-drag,.gallery-band.is-drag,.svc-cars.is-drag,.bld-quick-row.is-drag,.faq-pills.is-drag,.media-rail.is-drag,.occ-reel.is-drag,.soc-reel.is-drag{cursor:grabbing;scroll-snap-type:none;scroll-behavior:auto}
.is-drag a,.is-drag button{pointer-events:none}
.fcouple{margin-top:1.1rem;padding-top:1.1rem;border-top:1px solid var(--hair)}
.fcouple .fhint{margin:0 0 .7rem}

/* Showroom "tap the cars" — the Lamborghini pick uses the tall Revuelto shot; crop low so the car isn't cut off */
.sr-pick[data-pick="Lamborghini"] .srp-img img{object-position:50% 88%}
/* Experience section — gold star rating inline with the 5.0 */
/* Experience section — a proud review stamp: big serif score beside stars + count */
.pq-proof{margin-top:2rem;display:flex;align-items:center;gap:.95rem}
.pq-score{font-family:var(--display),Georgia,serif;font-size:clamp(2.3rem,5vw,3.1rem);font-weight:600;line-height:.85;color:var(--ivory)}
.pq-meta{display:flex;flex-direction:column;gap:.22rem}
.pq-stars{color:var(--gold-soft);font-size:1.05rem;letter-spacing:.14em;white-space:nowrap;line-height:1}
.pq-rev{font-size:.82rem;letter-spacing:.03em;color:rgba(247,244,237,.72)}

/* ============================================================================
   FORM UX v2 — conversion/accessibility layer (paired with FORM_UX_V2 in generate.py).
   To revert: set FORM_UX_V2=False (removes A/B/C markup) and delete this whole block.
   ============================================================================ */
/* B — micro trust line under the form header */
.fh-trust{margin-top:1rem;font-size:.92rem;color:var(--ink-2);display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;letter-spacing:.01em}
.fh-trust .fh-stars{color:var(--gold);letter-spacing:.08em}
.fh-trust b{color:var(--ink);font-weight:600}
/* Inclusions disclosure on the quote form — a quiet, subtle line that answers "what do I get?"
   in place (no navigation). Deliberately understated so it never competes with the form. */
.incl-note{margin:.6rem 0 1.4rem;max-width:52ch}
.incl-note>summary{display:inline-flex;align-items:center;gap:.35rem;cursor:pointer;width:fit-content;
  font-size:.82rem;color:var(--ink-2);font-weight:500;letter-spacing:.01em;list-style:none}
.incl-note>summary::-webkit-details-marker{display:none}
.incl-note>summary::after{content:"\203A";font-size:1.02em;line-height:1;color:var(--ink-3,var(--ink-2));
  transition:transform .2s ease;transform:rotate(90deg)}
.incl-note[open]>summary::after{transform:rotate(-90deg)}
.incl-note>summary:hover{color:var(--ink)}
.incl-note .incl-body{margin-top:.7rem;padding:.9rem 1.05rem;background:color-mix(in oklab,var(--green) 3.5%,var(--ivory));
  border:1px solid color-mix(in oklab,var(--green) 10%,transparent);border-radius:12px}
.incl-note .incl-body ul{margin:0;padding:0;list-style:none;display:grid;gap:.5rem}
.incl-note .incl-body li{position:relative;padding-left:1.4rem;font-size:.88rem;color:var(--ink-2);line-height:1.5}
.incl-note .incl-body li::before{content:"";position:absolute;left:0;top:.5em;width:.42rem;height:.42rem;border-radius:50%;
  background:var(--gold)}
.incl-note .incl-more{margin:.8rem 0 0;font-size:.85rem}
.incl-note .incl-more a{color:var(--green);font-weight:600}
@media(max-width:640px){.incl-note{margin:.4rem 0 1rem}.incl-note>summary{font-size:.8rem}
  .incl-note .incl-body li{font-size:.86rem}}
/* D — mark required fields with a subtle gold asterisk (dynamic: honours JS-toggled required) */
.gform .ffield:has(> input[required]) > span::after,
.gform .ffield:has(> select[required]) > span::after,
.gform .ffield:has(> textarea[required]) > span::after{content:" *";color:var(--gold-ink);font-weight:700}
/* ==================== end FORM UX v2 ==================== */
/* ===== KINETIC MARQUEE — BEGIN (delete BEGIN→END to revert) ===== */
.kmarq-track.is-kinetic{animation:none!important}
/* ===== KINETIC MARQUEE — END ===== */
/* ===== iOS band-overlap guard — BEGIN (delete to revert) ===== */
/* iOS Safari can paint the reviews band on top of the guides band during momentum scroll
   (composited-layer/reveal repaint). Contain + isolate each homepage band so it stays boxed. */
.section:has(.rev-top),.section:has(.hjx){position:relative;z-index:0;isolation:isolate;contain:paint}
/* ===== iOS band-overlap guard — END ===== */
/* ===== Quote form — line-up chooser sub-groups + grouped cars ===== */
.gform .line-sub{margin-top:1.1rem}
.gform .line-sub[hidden]{display:none}
.gform .chip-subgroup{margin-top:1rem}
.gform .chip-subgroup:first-of-type{margin-top:.4rem}
.gform .chip-sub-h{font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;font-weight:700;
  color:var(--ink-3);margin:0 0 .55rem}
/* ===== END ===== */
/* ===== Quote form — car image cards + quick-jump nav ===== */
.qcar-jumps{display:flex;flex-wrap:wrap;gap:.5rem;margin:.3rem 0 1.1rem}
.qcar-jump{font-size:.68rem;letter-spacing:.06em;text-transform:uppercase;font-weight:700;padding:.42rem .8rem;
  border:1px solid var(--hair);border-radius:999px;color:var(--ink-2);text-decoration:none;background:var(--white);
  transition:border-color .25s var(--e),color .25s var(--e)}
@media(hover:hover){.qcar-jump:hover{border-color:var(--gold-soft);color:var(--green-deep)}}
.qcar-grp{margin-top:1.4rem;scroll-margin-top:90px}
.qcar-grp:first-of-type{margin-top:.4rem}
.qcar-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(148px,1fr));gap:.7rem}
.qcar{position:relative;display:flex;flex-direction:column;border:1px solid var(--hair);border-radius:15px;
  overflow:hidden;cursor:pointer;background:var(--white);
  transition:border-color .25s var(--e),box-shadow .3s var(--e),transform .3s var(--e)}
.qcar input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.qcar-media{display:block;aspect-ratio:16/10;background:var(--paper-g);overflow:hidden}
.qcar-media img{width:100%;height:100%;object-fit:cover;object-position:50% 62%;display:block}
.qcar-glyph{display:grid;place-items:center;width:100%;height:100%;font-family:var(--serif),Georgia,serif;
  font-size:2rem;color:var(--gold-soft);background:var(--paper-g)}
/* Reserve TWO lines for every car name. These names run one line ("Rolls-Royce Phantom") or
   two ("Rolls-Royce Cullinan Series II"), and with a content-sized label the grid row sized
   itself to the SHORT one — so every two-line name was clipped 9px by the card's overflow:hidden
   (its second line sliced through mid-stroke), and names sat at different heights card to card.
   Reserving two lines makes every card identical, puts every name on the same baseline, and
   leaves nothing to clip. 2.44em = two lines at line-height 1.22; 1.3rem = the padding above+below.
   display:block is load-bearing — the label is a <span>, and min-height is ignored on an inline box. */
.qcar-nm{padding:.6rem .7rem .7rem;font-size:.85rem;font-weight:500;color:var(--ink);line-height:1.22;display:block;min-height:calc(2.44em + 1.3rem);box-sizing:border-box}
/* THE TICK SITS ON A PHOTOGRAPH, so one flat colour cannot work (Kaiyo, 2026-08-27:
   "the currently selected box is a dark colour hard to see"). Measured against these
   shots: deep green on the dark tarmac/trees is 1.62:1 — a hole, and quieter than the
   UNSELECTED disc, which is backwards. Champagne alone only moves the failure: 1.59:1
   on a white Rolls-Royce roof. So the disc carries BOTH — a champagne fill that reads
   on anything dark (6.06:1) inside a deep-green ring that reads on anything pale
   (15.56:1), with the check itself at 9.80:1 on the champagne. Whatever the photo does
   behind it, one of the two is doing the work. The unselected disc gets the same ring
   for the same reason: white on a white car vanished too. */
.qcar-tick{position:absolute;top:.5rem;right:.5rem;width:27px;height:27px;border-radius:50%;display:grid;place-items:center;
  background:rgba(255,255,255,.92);color:transparent;font-size:.85rem;
  box-shadow:0 0 0 1px color-mix(in srgb, var(--green-deep) 22%, transparent), 0 2px 8px -3px rgba(7,32,24,.5);
  transition:background .25s var(--e),color .25s var(--e),box-shadow .25s var(--e)}
.qcar input:checked~.qcar-tick{background:var(--gold-soft);color:var(--green-deep);
  box-shadow:0 0 0 2px var(--green-deep), 0 3px 10px -3px rgba(7,32,24,.55)}
.qcar:has(input:checked){border-color:var(--green-deep);box-shadow:0 16px 34px -22px rgba(7,32,24,.5)}
.qcar input:focus-visible~.qcar-media{outline:2px solid var(--green);outline-offset:-2px}
@media(hover:hover){.qcar:hover{border-color:var(--gold-soft);transform:translateY(-2px)}}
/* ===== END ===== */
/* ===== Quote form — ready-made line-up cards (image + what's included) ===== */
/* .gform prefix so these beat the generic ".gform label" (which forces block + uppercase). */
.gform .qpkg-grid{display:grid;gap:.6rem}
.gform .qpkg{position:relative;display:flex;align-items:center;gap:.9rem;border:1px solid var(--hair);border-radius:15px;
  overflow:hidden;cursor:pointer;background:var(--white);padding-right:2.6rem;margin-bottom:0;
  text-transform:none;letter-spacing:normal;
  transition:border-color .25s var(--e),box-shadow .3s var(--e),transform .3s var(--e)}
.gform .qpkg input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.gform .qpkg-media{flex:0 0 auto;width:96px;align-self:stretch;background:var(--paper-g);overflow:hidden}
.gform .qpkg-media img{width:100%;height:100%;object-fit:cover;display:block;min-height:74px}
.gform .qpkg-glyph{display:grid;place-items:center;width:100%;height:100%;min-height:74px;font-family:var(--serif),Georgia,serif;font-size:1.8rem;color:var(--gold-soft)}
.gform .qpkg-body{display:flex;flex-direction:column;gap:.2rem;padding:.6rem 0;min-width:0}
.gform .qpkg-nm{font-weight:600;font-size:1rem;color:var(--ink);line-height:1.15}
.gform .qpkg-sum{font-size:.82rem;color:var(--ink-2);line-height:1.35}
.gform .qpkg-tick{position:absolute;top:50%;right:.85rem;transform:translateY(-50%);width:27px;height:27px;border-radius:50%;
  display:grid;place-items:center;background:var(--paper-g);color:transparent;font-size:.85rem;
  transition:background .25s var(--e),color .25s var(--e)}
.gform .qpkg input:checked~.qpkg-tick{background:var(--green-deep);color:#fff}
.gform .qpkg:has(input:checked){border-color:var(--green-deep);box-shadow:0 16px 34px -22px rgba(7,32,24,.5)}
.gform .qpkg input:focus-visible~.qpkg-media{outline:2px solid var(--green);outline-offset:-2px}
@media(hover:hover){.gform .qpkg:hover{border-color:var(--gold-soft);transform:translateY(-2px)}}
/* the car cards are labels too — stop ".gform label" forcing uppercase names */
.gform .qcar{text-transform:none;letter-spacing:normal;margin-bottom:0}
/* ===== END ===== */
/* live IG video badge on the "Follow the journey" cards */
.soc-card{position:relative}
.soc-play{position:absolute;top:.55rem;left:.55rem;width:26px;height:26px;border-radius:50%;background:rgba(7,32,24,.6);display:grid;place-items:center}
.soc-play::after{content:"";border-style:solid;border-width:5px 0 5px 8px;border-color:transparent transparent transparent #fff;margin-left:2px}

/* ── Homepage mobile fleet rail ──────────────────────────────────────────────
   Desktop keeps the 2×2 .fgrid. On phones the grid stacks into four oversized
   squares that under-sell a deep fleet, so we hide it and show a swipeable rail
   of many cars — the peek of the next card invites the swipe. */
.fleet-rail{display:none}
.fleet-swipe{display:none}
@media(max-width:760px){
  .fleet{gap:1.4rem}
  [data-design-zone="fleet"] .fgrid{display:none}   /* scope to the homepage fleet grid — NOT the generic form .fgrid */
  .fleet-rail{
    display:flex;gap:.8rem;overflow-x:auto;overflow-y:hidden;
    scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;
    scroll-padding:0 1.1rem;margin:0 calc(-1*var(--gutter,1.1rem));
    padding:.2rem var(--gutter,1.1rem) .3rem;scrollbar-width:none;overscroll-behavior-x:contain}
  .fleet-rail::-webkit-scrollbar{display:none}
  .frail-card{
    position:relative;flex:0 0 72%;max-width:340px;scroll-snap-align:center;
    border-radius:16px;overflow:hidden;aspect-ratio:4/3;background:var(--green);
    text-decoration:none;box-shadow:0 12px 30px -18px rgba(7,32,24,.5)}
  .frail-card img{width:100%;height:100%;object-fit:cover;object-position:50% 62%}
  .frail-card::after{content:"";position:absolute;inset:0;
    background:linear-gradient(transparent 46%,rgba(7,32,24,.82))}
  .frail-l{position:absolute;left:1rem;bottom:.9rem;z-index:2;color:var(--ivory);
    font-weight:600;font-size:1.05rem;letter-spacing:.01em}
  /* trailing "view the full fleet" card */
  .frail-more{background:var(--green);display:flex;align-items:center;justify-content:center;text-align:center}
  .frail-more::after{display:none}
  .frail-more-in{color:var(--ivory);font-weight:600;font-size:1rem;padding:0 1.4rem;line-height:1.4}
  .frail-more-in span{color:var(--gold-soft)}
  /* swipe affordance */
  .fleet-swipe{display:flex;align-items:center;gap:.4rem;justify-content:flex-end;
    margin:.7rem var(--gutter,0) 0;font-size:.66rem;letter-spacing:.18em;text-transform:uppercase;
    font-weight:700;color:var(--ink-3)}
  .fleet-swipe span{font-size:.9rem;letter-spacing:0;animation:railnudge 1.8s var(--e) infinite}
}
@keyframes railnudge{0%,100%{transform:translateX(0)}50%{transform:translateX(5px)}}
@media(prefers-reduced-motion:reduce){.fleet-swipe span{animation:none}}
/* Mobile: the fleet rail already ends in a "View the full fleet" card, so the
   duplicate section button below it is redundant — hide it on phones only. */
@media(max-width:760px){[data-design-zone="fleet"] .sec-foot{display:none}}
/* Fleet-rail swipe hint fades out at the end of the rail (see site.js) so it
   stops duplicating the trailing "View the full fleet" card. */
.fleet-swipe{transition:opacity .35s var(--e)}
.fleet-swipe.is-done{opacity:0;pointer-events:none;animation:none}
/* Bulletproof auto-fade: pure CSS, no JS or scroll needed. The hint fades a few
   seconds after load (the fleet section sits just below the hero). JS still
   fades it instantly on the first swipe — .is-done cancels this animation. */
@media(max-width:760px){.fleet-swipe{animation:fleetswipefade .7s var(--e) 4s forwards}}
@keyframes fleetswipefade{to{opacity:0;visibility:hidden}}
@media(prefers-reduced-motion:reduce){.fleet-swipe{animation-duration:.01s}}

/* CRITICAL: [hidden] must win inside forms. `.gform label{display:block}` (specificity 0,1,1) beats
   the UA `[hidden]{display:none}` (0,1,0), so occasion-hidden .ffield labels (e.g. wedding pickup/
   drop-off, set hidden+disabled by site.js) stayed VISIBLE but DISABLED — looked like "can't type".
   This makes the hidden attribute authoritative for every field/group/message inside a form. */
.gform [hidden]{display:none !important}

/* Homepage line-ups — sticky card-stack scroll effect, MOBILE ONLY (same effect as the voucher
   "three steps"). Scoped to the [data-gstep] rail so no other .cards grid is touched; desktop keeps
   the normal grid. The scale/dim as cards overlap is driven by the shared [data-gstep] JS. */
@media(max-width:760px){
  [data-design-zone="packages"] .cards[data-gstep]{display:block;margin-top:1.5rem}
  [data-design-zone="packages"] .cards[data-gstep] .pcard{position:sticky;top:calc(70px + var(--i,0) * 13px);
    display:block;height:min(64vh,520px);margin:0 0 1.5rem;border:0;border-radius:20px;overflow:hidden;
    box-shadow:0 40px 78px -50px rgba(7,32,24,.72);transform-origin:top center;will-change:transform,filter}
  [data-design-zone="packages"] .cards[data-gstep] .pcard:last-child{margin-bottom:0}
  [data-design-zone="packages"] .cards[data-gstep] .pc-img{position:absolute;inset:0;aspect-ratio:auto;height:100%}
  [data-design-zone="packages"] .cards[data-gstep] .pc-img img{width:100%;height:100%;object-fit:cover}
  [data-design-zone="packages"] .cards[data-gstep] .pcard::after{content:"";position:absolute;inset:0;
    background:linear-gradient(to top,rgba(7,32,24,.93),rgba(7,32,24,.3) 52%,rgba(7,32,24,.04) 84%)}
  [data-design-zone="packages"] .cards[data-gstep] .pc-body{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:1.6rem 1.5rem 1.7rem;color:#fff}
  [data-design-zone="packages"] .cards[data-gstep] .pcard .nm{color:#fff;font-size:1.85rem;margin-bottom:.35rem}
  [data-design-zone="packages"] .cards[data-gstep] .pcard .ds{color:rgba(247,244,237,.85);font-size:1rem;line-height:1.5;margin-bottom:1rem;flex:none}
  [data-design-zone="packages"] .cards[data-gstep] .pcard .go{color:var(--gold-soft)}
}

/* Hospitality band — the "it's the people, not the cars" USP, above the reviews wall. */
.hosp-grid{list-style:none;margin:clamp(1.8rem,4vw,2.8rem) 0 0;padding:0;display:grid;grid-template-columns:1fr;gap:0}
.hosp-grid li{display:grid;gap:.35rem;padding:clamp(1rem,2.4vw,1.4rem) 0;border-top:1px solid rgba(216,194,145,.26)}
.hosp-grid li:last-child{border-bottom:1px solid rgba(216,194,145,.26)}
.hosp-grid b{font-family:var(--display);font-weight:600;font-size:clamp(1.05rem,2.2vw,1.3rem);color:#fff;letter-spacing:-.01em}
.hosp-grid span{color:rgba(247,244,237,.78);font-size:.95rem;line-height:1.55}
.hosp-close{margin:clamp(1.4rem,3vw,2rem) 0 0;max-width:62ch;color:rgba(247,244,237,.86);
  font-size:clamp(1rem,1.7vw,1.14rem);line-height:1.85;font-family:var(--serif);font-style:italic}
.hosp-note{margin:clamp(1.8rem,4vw,2.6rem) 0 0;max-width:62ch;color:rgba(247,244,237,.9);font-size:clamp(1.02rem,1.8vw,1.18rem);line-height:1.62}
@media(min-width:720px){.hosp-grid{grid-template-columns:1fr 1fr;column-gap:clamp(2rem,5vw,4rem)}
  .hosp-grid li:nth-child(2){border-top:1px solid rgba(216,194,145,.26)}}
/* Why-people-come-back stanza */
.hosp-lead{max-width:60ch;margin-top:clamp(1.4rem,3vw,2rem)}
.hosp-lead>p{margin:0 0 1.4rem;color:rgba(247,244,237,.82);font-size:clamp(1.02rem,1.8vw,1.18rem);line-height:1.62}
.hosp-verse{font-family:var(--display,var(--serif,Georgia,serif));font-style:italic;font-weight:400;
  color:var(--gold-soft)!important;font-size:clamp(1.18rem,2.4vw,1.6rem)!important;line-height:1.62!important;
  letter-spacing:-.005em;padding-left:clamp(.9rem,2vw,1.4rem);border-left:2px solid rgba(216,194,145,.4)}
.hosp-lead-close{color:#fff!important;font-weight:500}
/* Bulldogs pull-quote band */
.bd-quote-sec{text-align:center}
.bd-quote{max-width:26ch;margin:0 auto;font-family:var(--display,var(--serif,Georgia,serif));font-style:italic;font-weight:400;
  color:var(--ivory);font-size:clamp(1.5rem,3.6vw,2.6rem);line-height:1.32;letter-spacing:-.015em}

/* ── post-submit engagement — keep them reading while the quote is prepared ── */
.fs-next{margin-top:clamp(1.8rem,4vw,2.6rem);padding-top:clamp(1.4rem,3vw,2rem);border-top:1px solid var(--hair,rgba(20,21,15,.09));text-align:left}
.fs-k{display:block;font-size:.68rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-ink,#8A6A38);margin-bottom:14px;text-align:center}
.fs-links{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.fs-links a{display:flex;flex-direction:column;gap:2px;padding:14px 16px;border:1px solid var(--hair,rgba(20,21,15,.09));border-radius:14px;background:#fff;text-decoration:none;transition:border-color .3s,transform .3s}
.fs-links b{font-size:.9rem;font-weight:600;color:var(--ink,#14150F)}
.fs-links span{font-size:.76rem;color:var(--ink-3,#8C897C)}
@media(hover:hover){.fs-links a:hover{border-color:var(--gold,#A9854A);transform:translateY(-1px)}}
@media(max-width:560px){.fs-links{grid-template-columns:1fr}}

/* ── Social clips — a horizontal reel rail of vertical 9:16 cards (per vehicle) ──
   Sits on the .media-rail/.cg-vid machinery (lazy-load, autoplay-in-view, lightbox
   on tap); this only changes the shape to portrait reels in a swipeable row. */
.cg-grid.reel-rail{display:flex;gap:clamp(.8rem,2vw,1.1rem);overflow-x:auto;
  scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;
  margin:0 calc(var(--pad) * -1);padding:.3rem var(--pad) 1rem}
.cg-grid.reel-rail::-webkit-scrollbar{display:none}
.reel-rail>.cg-tile{flex:0 0 clamp(196px,58vw,232px);aspect-ratio:9/16;
  scroll-snap-align:start;border-radius:20px}
.reel-rail .cg-video{object-position:50% 50%}
.reel-rail .cg-play{width:48px;height:48px}
.reel-rail .mom-cap{font-size:.78rem;padding:.8rem .9rem}
@media(max-width:760px){.reel-rail>.cg-tile{aspect-ratio:9/16}}
.guide-review{margin:clamp(2.6rem,5.5vw,4rem) 0;padding-top:clamp(1.8rem,4vw,2.8rem);border-top:1px solid var(--hair)}

/* package pages: the See-the-photos card rides at the end of the line-up grid
   (Kaiyo, 2026-07-29 — replaced the floating jump bar under the hero) */
.svc-car-photos .svc-car-img{position:relative}
.svc-car-photos .scp-veil{position:absolute;inset:0;display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:4px;text-align:center;
  background:linear-gradient(180deg,rgba(7,32,24,.35),rgba(7,32,24,.68));color:#F7F4ED}
.svc-car-photos .scp-veil b{font-size:.9rem;font-weight:700;letter-spacing:.02em}
.svc-car-photos .scp-veil i{font-style:normal;font-size:1.1rem;color:#D8C291}
.svc-car-photos:hover .scp-veil{background:linear-gradient(180deg,rgba(7,32,24,.45),rgba(7,32,24,.78))}

/* ── The recovery story — publicity piece (2026-08-06, reframed) ──────────────
   Spectacle first. Media runs big and quiet; type stays restrained so the cars
   carry the page. Reuses .cg-tile (lightbox) and .cg-video (scroll autoplay). */
.rec-film{padding-top:clamp(.5rem,2vw,1.5rem)}
.rec-figure{margin:0;display:flex;flex-direction:column;align-items:center;gap:1rem}
/* portrait footage: cap by HEIGHT so it never runs taller than the viewport */
/* Corners: WebKit will NOT clip a <video> to its own border-radius, so a radius on
   the element alone renders square (checked on the live page). The WRAPPER clips
   instead — the same way .cg-tile already rounds the fleet clips — with a
   translateZ to force the clip in Safari. 14px is the site's card radius. */
.rec-figure .cg-vid{max-width:min(100%,32rem);width:100%;border-radius:16px;overflow:hidden;
  transform:translateZ(0);line-height:0;background:#0d0d0d;
  box-shadow:0 34px 78px -32px rgba(4,18,13,.6)}
/* 16px, not 14: measured off the site's own video tiles (.cg-tile.cg-vid renders
   16px on the homepage and /fleet/), so the film matches the clips it sits beside. */
.rec-figure video{width:100%;max-height:min(80vh,46rem);height:auto;object-fit:cover;display:block;
  border-radius:16px;cursor:zoom-in}
.rec-figure figcaption{color:var(--ink-3);font-size:.9rem;text-align:center;max-width:44ch;line-height:1.5}
.rec-h2{font-size:clamp(1.7rem,3.4vw,2.6rem);font-weight:300;letter-spacing:-.02em;color:var(--ink);
  margin:0 0 clamp(1.2rem,2.6vw,2rem);text-wrap:balance}
/* stills — a calm masonry-ish grid, portrait frames kept portrait */
.rec-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(.6rem,1.4vw,1rem)}
@media(max-width:900px){.rec-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.rec-grid{grid-template-columns:1fr}}
.rec-grid .cg-tile{margin:0;overflow:hidden;border-radius:12px;background:var(--paper-g);aspect-ratio:3/4}
/* .cg-tile ships aspect-ratio:4/5 for the gallery; an explicit img height shorter than
   that box left a strip of tile background under every still. Let the tile govern and
   the image fill it — 3/4 gives portrait frames a little more room than 4/5. */
.rec-grid .cg-tile img{width:100%;height:100%;object-fit:cover;object-position:50% 50%;display:block;
  cursor:zoom-in;transition:transform .7s cubic-bezier(.16,1,.3,1)}
@media(hover:hover){.rec-grid .cg-tile:hover img{transform:scale(1.04)}}
/* the three cars — image left, copy right, alternating on desktop */
.rec-carlist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:clamp(2rem,5vw,4rem)}
.rec-car{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(1.4rem,4vw,3.4rem);align-items:center}
.rec-car:nth-child(even){direction:rtl}
.rec-car:nth-child(even)>*{direction:ltr}
.rec-car img{width:100%;height:clamp(280px,34vw,460px);object-fit:cover;border-radius:14px;display:block}
.rec-car-c h3{font-size:clamp(1.4rem,2.6vw,2.1rem);font-weight:300;letter-spacing:-.02em;color:var(--ink);
  margin:0 0 .7rem;text-wrap:balance}
.rec-car-c p{margin:0 0 1.1rem;max-width:52ch;color:var(--ink-2);font-size:clamp(1rem,1.3vw,1.08rem);line-height:1.65}
.rec-link{font-size:.78rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--gold);
  text-decoration:none;border-bottom:1px solid var(--gold-soft);padding-bottom:.3rem;transition:color .25s,border-color .25s}
.rec-link:hover{color:var(--ink);border-color:var(--ink)}
.rec-link:focus-visible{outline:2px solid var(--gold);outline-offset:4px;border-radius:2px}
/* sequence */
.rec-list{list-style:none;margin:0;padding:0;max-width:62rem}
.rec-step{display:grid;grid-template-columns:auto 1fr;gap:clamp(1.4rem,4vw,3.2rem);align-items:start;
  padding:clamp(1.6rem,3.4vw,2.8rem) 0;border-top:1px solid var(--hair)}
.rec-step:first-child{border-top:none;padding-top:0}
.rec-n{font-family:var(--serif);font-style:italic;font-weight:500;
  font-size:clamp(2.2rem,4.2vw,3.6rem);line-height:.85;color:var(--gold)}
.rec-step h3{font-size:clamp(1.25rem,2.3vw,1.75rem);font-weight:300;letter-spacing:-.02em;
  line-height:1.15;color:var(--ink);margin:.1rem 0 .55rem;text-wrap:balance}
.rec-step p{margin:0;max-width:58ch;color:var(--ink-2);font-size:clamp(1rem,1.3vw,1.08rem);line-height:1.64}
/* payoff + faq */
.rec-payoff h2{font-size:clamp(1.5rem,3vw,2.2rem);font-weight:300;letter-spacing:-.02em;color:var(--ink);margin:0 0 1.2rem}
.rec-payoff p{max-width:60ch;color:var(--ink-2);font-size:clamp(1rem,1.35vw,1.12rem);line-height:1.68;margin:0 0 1.1rem}
.rec-payoff a{color:var(--gold);text-decoration:underline;text-underline-offset:3px}
.rec-faq details{border-top:1px solid var(--hair);padding:1.05rem 0}
.rec-faq details:first-of-type{border-top:none}
.rec-faq summary{cursor:pointer;font-size:clamp(1.02rem,1.5vw,1.18rem);color:var(--ink);
  font-weight:500;list-style:none;padding-right:1.6rem;position:relative}
.rec-faq summary::-webkit-details-marker{display:none}
.rec-faq summary::after{content:"+";position:absolute;right:0;top:0;color:var(--gold);font-weight:300;
  font-size:1.3rem;line-height:1;transition:transform .25s cubic-bezier(.16,1,.3,1)}
.rec-faq details[open] summary::after{transform:rotate(45deg)}
.rec-faq summary:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:3px}
.rec-faq details p{margin:.7rem 0 .2rem;max-width:62ch;color:var(--ink-2);line-height:1.65}
@media(max-width:760px){
  .rec-car,.rec-car:nth-child(even){grid-template-columns:1fr;direction:ltr}
  .rec-car img{height:clamp(240px,58vw,340px)}
  .rec-step{grid-template-columns:1fr;gap:.3rem}.rec-n{font-size:2.1rem}
}
@media(prefers-reduced-motion:reduce){.rec-faq summary::after,.rec-grid .cg-tile img{transition:none}}

/* ── The 1,000 Club (/1000/) ─────────────────────────────────────────────── */
.c1k-hero{background:var(--green-deep,#072018);color:var(--ivory);text-align:center;
  padding:clamp(5rem,14vw,9.5rem) 0 clamp(4rem,10vw,7rem)}
.c1k-kicker{font-size:.72rem;letter-spacing:.26em;text-transform:uppercase;font-weight:700;color:var(--gold-2)}
.c1k-h1{font-size:clamp(2.6rem,7.5vw,5.2rem);font-weight:900;letter-spacing:-.02em;line-height:1.04;margin:.5em 0 .35em;color:var(--ivory)}
.c1k-h1 em{font-family:var(--serif);font-style:italic;font-weight:400;color:var(--gold-soft,#D8C291)}
.c1k-lede{max-width:34em;margin:0 auto;color:rgba(247,244,237,.85);font-size:clamp(1rem,2vw,1.15rem);line-height:1.6}
.c1k-prize{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(1.6rem,4vw,3.5rem);align-items:center}
.c1k-prize-copy h2{margin-bottom:1.1rem}
.c1k-prize-copy p{max-width:36em;line-height:1.75}
.c1k-facts{list-style:none;margin:1.2rem 0 0;padding:0}
.c1k-facts li{padding:.55rem 0 .55rem 1.6rem;position:relative;border-bottom:1px solid var(--hair-2);color:var(--ink-2)}
.c1k-facts li::before{content:"";position:absolute;left:.15rem;top:1.05rem;width:.55rem;height:.55rem;border-radius:50%;background:var(--gold)}
.c1k-fig{border-radius:16px;overflow:hidden;margin:0}
.c1k-fig img{width:100%;height:100%;object-fit:cover;display:block}
.c1k-h2{margin-bottom:1.4rem}
.c1k-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:1.4rem}
.c1k-steps li{background:var(--white);border:1px solid var(--hair);border-radius:16px;padding:1.5rem 1.4rem}
.c1k-steps .c1k-n{font-family:var(--serif);font-style:italic;font-size:1.6rem;color:var(--gold);display:block;margin-bottom:.5rem}
.c1k-steps b{display:block;margin-bottom:.35rem}
.c1k-steps p{margin:0;color:var(--ink-2);font-size:.95rem;line-height:1.55}
.c1k-terms{display:flex;gap:.6rem;align-items:flex-start;margin:1rem 0 .4rem;font-size:.92rem;color:var(--ink-2)}
/* .gform prefix on purpose: `.gform label` (0,1,1) out-specifies a bare `.c1k-terms` (0,1,0),
   so the un-prefixed rule above was silently discarded inside the entry form — the consent
   line came out as a block, UPPERCASE and .76rem, with a bare 13px system checkbox that was
   invisible on ivory. Kaiyo, 2026-08-10: "the tick box is hard to even see". */
.gform .c1k-terms{display:flex;gap:.75rem;align-items:flex-start;margin:1.4rem 0 .4rem;
  font-size:.95rem;line-height:1.5;letter-spacing:0;text-transform:none;font-weight:400;
  color:var(--ink);cursor:pointer}
.gform .c1k-terms > span{display:block}
.gform .c1k-terms input{appearance:none;-webkit-appearance:none;flex:0 0 auto;
  /* padding:0 is load-bearing — the generic .gform input rule adds 15/18px padding, and on a
     border-box element that padding exceeds the 22px box and inflates it back to ~38x33. */
  width:22px;height:22px;min-width:22px;padding:0;margin:1px 0 0;
  border:1.5px solid var(--green);border-radius:5px;
  background:#fff;cursor:pointer;position:relative;
  transition:background .18s var(--e),border-color .18s var(--e),box-shadow .18s var(--e)}
.gform .c1k-terms input:hover{box-shadow:0 0 0 4px rgba(14,59,43,.08)}
.gform .c1k-terms input:checked{background:var(--green);border-color:var(--green)}
/* drawn, not a glyph — a ✓ character sits differently in every fallback font */
.gform .c1k-terms input:checked::after{content:"";position:absolute;left:7px;top:3px;
  width:5px;height:10px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}
.gform .c1k-terms input:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
@media (prefers-reduced-motion:reduce){.gform .c1k-terms input{transition:none}}

/* the optional-boost line under the three steps */
.c1k-optional{max-width:58ch;margin:1.8rem auto 0;text-align:center;font-size:.95rem;
  line-height:1.65;color:var(--ink-3)}
/* reassurance + closing bands — quiet, centred, one idea each */
.c1k-reassure,.c1k-closing{max-width:60ch;margin:0 auto;text-align:center}
.c1k-reassure h2,.c1k-closing h2{margin:.4rem 0 1rem}
.c1k-reassure p,.c1k-closing p{font-size:1.06rem;line-height:1.75;color:var(--ink-2)}
@media(max-width:820px){.c1k-prize{grid-template-columns:1fr}}
/* /1000/ hero: ambient motion layer fades in over the still once loaded */
.hub-hero .vh-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 45%;opacity:0;transition:opacity 1.2s var(--e)}
.hub-hero .vh-video.media-in{opacity:1}
@media (prefers-reduced-motion:reduce){.hub-hero .vh-video{display:none}}
/* /1000/ reveal film band */
.c1k-film{padding-top:0}
.c1k-vidwrap{border-radius:16px;overflow:hidden;transform:translateZ(0);background:var(--green-deep,#072018)}
.c1k-vidwrap video{display:block;width:100%;height:auto}
/* The reveal banner's baked-in type is composed for landscape; at phone width the
   whole band shrinks to an unreadable strip (Kaiyo, 2026-08-08). Desktop-only —
   display:none also stops the lazy loader observing it, so phones never fetch the mp4. */
@media (max-width:767px){.c1k-film{display:none}}

/* ── 404 ────────────────────────────────────────────────────────────────────
   A dead end still has to look like the brand. Full-bleed still + ivory→dark
   scrim (same family as the hub heroes), a quiet 404 as a mark rather than a
   billboard, then the destinations people were actually after as an editorial
   ROW LIST — not a card grid, which is what every other 404 on the internet does. */
.nf-hero{position:relative;isolation:isolate;min-height:min(72dvh,620px);
  display:flex;align-items:center;justify-content:center;text-align:center;
  padding:clamp(4rem,12vw,8rem) 1.25rem;overflow:hidden}
.nf-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  /* 68%, measured off the frame rather than guessed: this is a 3:2 photo in a ~2.6:1 box,
     so a lot of it is cropped away. The white Rolls-Royce line-up sits between 45% and 85%
     of the image height — 50% (centre) and 38% (top) both landed on empty sky and treeline,
     which is why the hero read as a flat green wash with no photograph in it at all. */
  object-position:50% 68%;z-index:0}
/* One flat scrim, tuned against the frame rather than by feel. The cars are near-white
   (luma ~230); at .68 they darken to ~91, putting white body copy around 6:1 — clear of the
   4.5:1 floor — while the line-up still reads as a photograph underneath.
   A second radial "plate" behind the copy was tried and reverted: layered over this frame it
   greyed the whole hero out and its ellipse edge was visible as a blob. A text-shadow on the
   lede does the same job for the one patch that needs it, and costs nothing. */
.nf-hero::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(180deg,rgba(7,32,24,.46) 0%,rgba(7,32,24,.68) 38%,
    rgba(7,32,24,.68) 72%,rgba(7,32,24,.82) 100%)}
/* Explicit POSITIVE stack (image 0 → scrim 1 → copy 2). Negative z-index was the original
   approach and it renders unreliably here: .nf-hero opens a stacking context (isolation),
   and a z-index:-2 child paints behind that element's own background, so the photograph
   intermittently vanished and the hero came out as a flat green band. */
.nf-inner{position:relative;z-index:2;max-width:46rem;color:#fff}
.nf-code{display:block;font-size:.72rem;letter-spacing:.42em;text-transform:uppercase;
  color:var(--gold-soft);margin-bottom:1.1rem}
.nf-hero h1{color:#fff;margin:0 0 1rem;text-wrap:balance}
.nf-lede{color:rgba(255,255,255,.92);font-size:1.05rem;line-height:1.7;
  /* insurance for the stretch of lede that lands on white bodywork */
  text-shadow:0 1px 14px rgba(7,32,24,.55);
  max-width:34rem;margin:0 auto 2rem;text-wrap:pretty}
.nf-hero .cta-row{justify-content:center}
/* the search CTA is a <button>, not an <a> — normalise it against .btn's anchor styling */
.nf-hero .cta-row button.btn{font:inherit;cursor:pointer}

.nf-h2{max-width:22ch;margin:.5rem 0 2rem}
.nf-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--hair,rgba(20,21,15,.12))}
.nf-list li{border-bottom:1px solid var(--hair,rgba(20,21,15,.12))}
.nf-list a{display:grid;grid-template-columns:1fr auto;align-items:baseline;
  gap:.2rem 1.5rem;padding:1.25rem .25rem;text-decoration:none;color:inherit;
  transition:padding-left .5s cubic-bezier(.22,1,.36,1),background-color .3s ease}
.nf-list a:hover,.nf-list a:focus-visible{padding-left:1rem;
  background:color-mix(in srgb,var(--green) 4%,transparent)}
.nf-t{font-size:1.18rem;font-weight:500;color:var(--ink)}
.nf-s{grid-column:1;font-size:.92rem;color:var(--ink-3);line-height:1.5}
.nf-go{grid-row:1/3;align-self:center;color:var(--gold);font-size:1.2rem;
  transition:transform .5s cubic-bezier(.22,1,.36,1)}
.nf-list a:hover .nf-go,.nf-list a:focus-visible .nf-go{transform:translateX(6px)}
.nf-help{margin:2.2rem 0 0;font-size:.95rem;color:var(--ink-3)}
.nf-help a{color:var(--green);text-underline-offset:3px}
@media (prefers-reduced-motion:reduce){
  .nf-list a,.nf-go{transition:none}
  .nf-list a:hover,.nf-list a:focus-visible{padding-left:.25rem}
}
@media (max-width:600px){
  .nf-hero{min-height:min(66dvh,520px)}
  .nf-list a{padding:1.1rem .25rem;gap:.25rem 1rem}
  .nf-t{font-size:1.06rem}
}

/* The official four-colour Google G, next to the review count only.
   Sourced from Google's own branding CDN (gstatic.com/images/branding/googleg/), not a
   redrawn copy — a hand-built G is the kind of detail that reads as counterfeit up close.
   ONE instance per page, and only where the count already says "Google reviews", so it
   reads as attribution rather than a badge. Cap-height aligned to the uppercase label. */
/* The mark is a flex SIBLING of the text, not an inline node inside it. Inline was the
   first attempt and it fought the line box: the extra ~15px tipped "1,001 GOOGLE REVIEWS"
   onto two lines, and white-space:nowrap only moved the problem to overflow. As its own
   flex item with flex:none, the mark cannot influence how the phrase sets. */
.rev-top .mt{display:flex;align-items:center;gap:.5rem;white-space:nowrap}
.g-mark{flex:none;width:16px;height:16px}

/* ── Desktop rails must LOOK scrollable (Ahmed, 2026-08-14: "can't scroll right").
   On pointer-fine screens the hidden-scrollbar aesthetic hid the affordance entirely;
   a slim champagne scrollbar returns it. Touch keeps the clean edge-to-edge look. */
@media(min-width:1100px) and (pointer:fine){
  .svc-cars.rail,.media-rail{scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--gold,#A9854A) 45%,transparent) transparent}
  .svc-cars.rail::-webkit-scrollbar,.media-rail::-webkit-scrollbar{display:block;height:8px}
  .svc-cars.rail::-webkit-scrollbar-track,.media-rail::-webkit-scrollbar-track{background:transparent}
  .svc-cars.rail::-webkit-scrollbar-thumb,.media-rail::-webkit-scrollbar-thumb{
    background:color-mix(in srgb,var(--gold,#A9854A) 40%,transparent);border-radius:100px}
}
