/* ==========================================================================
   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. */
@media(max-width:600px){.tiles{grid-template-columns:1fr}.tiles .tile{aspect-ratio:16/10}.tiles .tile img{object-position:50% 50%}}

/* 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)}
.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{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)}
.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}
/* 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)}}
.cg-vid{position:relative}
.cg-video{width:100%;height:100%;object-fit:cover;display:block}
.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)}}
.svc-car-img{aspect-ratio:4/3;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 .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}
/* 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)}
@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}
/* 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{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}

/* ── 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{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{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{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{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)}
.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{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:stretch}
  .as-sr-media{align-items:stretch}
  .as-sr-media .sr-vid{max-width:none;aspect-ratio:auto;min-height:100%}
  .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:stretch}
  .sr-look-copy{align-self:center;padding-right:.5rem}
  .sr-look-media{align-items:stretch}
  .sr-look-media .sr-vid{max-width:none;width:100%;aspect-ratio:auto;min-height:100%}
}
/* 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)}
.qcar-nm{padding:.6rem .7rem .7rem;font-size:.85rem;font-weight:500;color:var(--ink);line-height:1.22}
.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 2px 8px -3px rgba(7,32,24,.5);
  transition:background .25s var(--e),color .25s var(--e)}
.qcar input:checked~.qcar-tick{background:var(--green-deep);color:#fff}
.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-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}}
