@import url("inertial-tokens.css");

:root { font-family:var(--font-body); color:var(--ink); background:var(--paper); }
* { box-sizing:border-box; } html { scroll-behavior:smooth; } body { min-width:320px; margin:0; background:var(--paper); } a { color:inherit; text-decoration:none; } button,input,select { font:inherit; } img { display:block; max-width:100%; } [id] { scroll-margin-top:142px; }
[hidden] { display:none !important; }
.skip-link { position:fixed; z-index:30; top:.8rem; left:.8rem; padding:.72rem 1rem; border-radius:999px; color:var(--paper); background:var(--forest); transform:translateY(-200%); } .skip-link:focus { transform:translateY(0); } :focus-visible { outline:3px solid #e6c966; outline-offset:4px; }
.status-pill { position:fixed; z-index:11; top:12px; left:50%; display:flex; gap:.5rem; align-items:center; width:max-content; margin:0; padding:7px 12px; border:1px solid rgba(223,244,202,.47); border-radius:999px; color:#e9f4de; background:rgba(29,59,31,.68); box-shadow:inset 0 1px rgba(255,255,255,.18),0 6px 20px rgba(2,24,19,.14); backdrop-filter:blur(14px) saturate(1.12); font:.58rem "DM Mono",monospace; letter-spacing:.07em; text-transform:uppercase; transform:translateX(-50%); }.status-pill span { width:6px; height:6px; border-radius:50%; background:var(--lime); box-shadow:0 0 0 3px rgba(169,188,66,.16); }
.site-shell { --site-nav-background:var(--glass-light); position:fixed; z-index:10; top:calc(var(--space-10) - var(--space-4)); left:50%; display:grid; grid-template-columns:var(--space-12) minmax(0,1fr); gap:var(--space-3); align-items:center; width:min(calc(100% - var(--space-8)),calc(var(--content-max) + var(--space-12) + var(--space-3))); transform:translateX(-50%); }.site-header { position:relative; display:flex; align-items:center; justify-content:space-between; width:100%; min-height:calc(var(--control-height) + var(--space-4)); padding:var(--space-1) var(--space-2) var(--space-1) var(--space-5); border:1px solid var(--glass-edge-light); border-radius:var(--radius-control); color:var(--text-primary); background:var(--site-nav-background); box-shadow:var(--shadow-subtle); backdrop-filter:var(--glass-blur); transition:box-shadow var(--duration-ui) var(--ease-quiet); }
.brand { display:grid; place-items:center; width:var(--space-12); height:var(--space-12); overflow:hidden; border:1px solid var(--glass-edge-light); border-radius:var(--radius-control); background:var(--site-nav-background); box-shadow:var(--shadow-subtle); backdrop-filter:var(--glass-blur); transition:transform var(--duration-micro) var(--ease-quiet),box-shadow var(--duration-micro) var(--ease-quiet); } .brand:hover { transform:translateY(calc(-1 * var(--space-1))); box-shadow:var(--shadow-soft); } .brand img { width:auto; height:calc(var(--control-height) + var(--space-5)); max-width:none; margin:0; object-fit:contain; }
.site-header nav { display:flex; gap:var(--space-1); font-size:.84rem; }.site-header nav a { padding:var(--space-2) var(--space-3); border-radius:var(--radius-control); opacity:.82; transition:opacity var(--duration-micro) var(--ease-quiet),background-color var(--duration-micro) var(--ease-quiet); }.site-header nav a:hover,.site-header nav a:focus-visible { opacity:1; background:var(--surface-raised); }.header-cta { display:inline-flex; align-items:center; justify-content:center; min-height:var(--control-height); padding:var(--space-3) var(--space-5); border:1px solid var(--glass-edge-light); border-radius:var(--radius-control); color:var(--text-primary); background:var(--surface-page); font-size:.8rem; font-weight:600; white-space:nowrap; transition:background-color var(--duration-micro) var(--ease-quiet); }.header-cta:hover { background:var(--surface-raised); }.menu-toggle { display:none; }
.site-header.header--booking { color:var(--text-primary); border-color:var(--glass-edge-light); background:var(--site-nav-background); box-shadow:var(--shadow-subtle); }
.hero-scroll { height:100svh; }.hero-pin { position:relative; display:grid; place-items:center; height:100svh; overflow:hidden; background:var(--deep); }.hero-media { position:absolute; inset:0; overflow:hidden; clip-path:inset(0 0 0 0 round 0); background:radial-gradient(circle at 78% 28%,rgba(196,205,167,.35),transparent 20%),linear-gradient(135deg,#163e34 10%,#486c5d 52%,#1a4137); box-shadow:0 24px 70px rgba(2,24,19,.22); will-change:clip-path; }.hero-video { width:100%; height:100%; object-fit:cover; }.hero-scrim { position:absolute; inset:0; background:linear-gradient(120deg,rgba(4,28,22,.72),rgba(7,37,30,.12) 62%,rgba(4,25,21,.42)); }
.hero-copy { position:relative; z-index:1; width:min(88vw,760px); margin:8vh auto 0; color:#fff; }.eyebrow { margin:0 0 1rem; color:inherit; font:.68rem "DM Mono",monospace; letter-spacing:.11em; text-transform:uppercase; }.hero-copy h1,h2,h3 { margin:0; font-family:"Fraunces",Georgia,serif; font-weight:500; letter-spacing:-.055em; }.hero-copy h1 { max-width:720px; font-size:clamp(3.8rem,8vw,7.5rem); line-height:.91; }.hero-intro { max-width:438px; margin:2rem 0 2.2rem; color:rgba(255,255,255,.89); font-size:1.05rem; line-height:1.5; }
.button { display:inline-flex; align-items:center; justify-content:center; gap:.8rem; min-height:48px; border:0; border-radius:999px; padding:.8rem 1.2rem; font-size:.87rem; font-weight:600; cursor:pointer; transition:transform .2s ease,background-color .2s ease; }.button:hover { transform:translateY(-2px); }.button--light { color:var(--forest); background:var(--paper); }.button--forest { color:var(--paper); background:var(--forest); }.scroll-cue { position:absolute; z-index:1; bottom:1.7rem; left:50%; display:flex; gap:.6rem; align-items:center; margin:0; color:rgba(255,255,255,.8); font:.67rem "DM Mono",monospace; letter-spacing:.08em; text-transform:uppercase; transform:translateX(-50%); }.scroll-cue span { width:32px; height:1px; background:currentColor; }
.booking-shell { position:absolute; z-index:2; top:50%; left:50%; width:min(92vw,1120px); transform:translate(-50%,-50%); }.booking-card { display:grid; grid-template-columns:1.35fr repeat(4,1fr) 1.08fr; align-items:end; gap:12px; min-height:184px; padding:22px; border:1px solid rgba(255,255,255,.45); border-radius:var(--radius); color:var(--forest); background:rgba(245,247,243,.86); box-shadow:0 28px 68px rgba(2,24,19,.24),inset 0 1px rgba(255,255,255,.8); backdrop-filter:blur(22px) saturate(1.15); }.booking-heading { padding:0 8px 4px; }.booking-heading .eyebrow { margin-bottom:.55rem; color:#527067; }.booking-heading h2 { font-size:clamp(1.5rem,2.1vw,2.15rem); line-height:.98; }.booking-field { display:grid; gap:.45rem; min-width:0; padding:0 8px 6px; border-bottom:1px solid rgba(20,60,53,.28); }.booking-field span { color:#577168; font-size:.66rem; font-weight:600; letter-spacing:.06em; text-transform:uppercase; }.booking-field input,.booking-field select { width:100%; min-width:0; border:0; outline:0; color:var(--forest); background:transparent; font-size:.89rem; }.booking-card .button { margin-bottom:6px; min-height:43px; white-space:nowrap; }.booking-note { grid-column:2/-1; margin:-2px 0 0 8px; color:#597168; font-size:.69rem; }
.trust-strip { display:grid; grid-template-columns:repeat(3,1fr); margin-top:clamp(24px,3vw,44px); padding-inline:max(22px,calc((100% - var(--content-max)) / 2)); border-bottom:1px solid var(--line); background:#eef3ef; }.trust-strip p { margin:0; padding:22px clamp(20px,5vw,72px); border-right:1px solid var(--line); font-size:.82rem; }.trust-strip p:last-child { border:0; }.trust-strip span { margin-right:.75rem; color:#658075; font:.65rem "DM Mono",monospace; }
.section { padding:clamp(80px,11vw,152px) max(22px,calc((100% - var(--content-max)) / 2)); }.intro > .eyebrow,.fleet .eyebrow,.equipment .eyebrow,.about .eyebrow { color:#55746a; }.section-heading { display:grid; grid-template-columns:1.25fr .6fr; gap:6vw; align-items:end; max-width:1240px; }.section-heading h2,.equipment h2,.contact h2,.about h2 { font-size:clamp(3rem,6vw,6.5rem); line-height:.91; }.section-heading p,.equipment-layout > p { max-width:390px; margin:0 0 .4rem; color:#4d625b; font-size:1.05rem; line-height:1.58; }
.reason-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; margin-top:clamp(60px,10vw,130px); background:var(--line); }.reason-grid article { min-height:268px; padding:25px; background:var(--paper); }.reason-icon { display:grid; place-items:center; width:43px; height:43px; border:1px solid rgba(20,60,53,.27); border-radius:50%; color:#5d786d; font:.8rem "DM Mono",monospace; }.reason-grid h3 { margin:70px 0 12px; font-size:1.35rem; }.reason-grid p { max-width:280px; margin:0; color:#587067; font-size:.92rem; line-height:1.5; }
.fleet { color:var(--mist); background:var(--forest); }.fleet-topline { display:flex; justify-content:space-between; align-items:start; }.fleet .fleet-count { margin:0; font:.7rem "DM Mono",monospace; letter-spacing:.1em; }.fleet-heading { margin-top:34px; }.fleet-heading p { color:#bdd0c3; }.van-switcher { display:flex; gap:8px; margin-top:clamp(55px,8vw,96px); border-bottom:1px solid rgba(231,238,232,.25); }.van-tab { position:relative; padding:0 0 15px; border:0; color:#a9c0b3; background:none; font-size:.88rem; cursor:pointer; }.van-tab + .van-tab { margin-left:clamp(26px,5vw,70px); }.van-tab span { margin-right:.6rem; font:.64rem "DM Mono",monospace; }.van-tab::after { position:absolute; right:0; bottom:-1px; left:0; height:2px; content:""; background:var(--lime); transform:scaleX(0); transition:transform .25s ease; }.van-tab.is-active { color:#fff; }.van-tab.is-active::after { transform:scaleX(1); }.van-panels { margin-top:clamp(26px,3vw,42px); }.van-panel { display:grid; grid-template-columns:1.18fr .82fr; gap:clamp(20px,4vw,55px); align-items:stretch; }.van-gallery { min-height:590px; }.van-gallery figure { height:100%; min-height:0; margin:0; overflow:hidden; border-radius:var(--radius); background:#24483f; }.van-gallery img { width:100%; height:100%; object-fit:cover; }.liquid-panel { position:relative; overflow:hidden; border:1px solid rgba(255,255,255,.22); border-radius:var(--radius); background:linear-gradient(135deg,rgba(231,238,232,.19),rgba(231,238,232,.06)); box-shadow:inset 0 1px rgba(255,255,255,.34),0 20px 52px rgba(3,20,16,.15); backdrop-filter:blur(18px); }.liquid-panel::before { position:absolute; top:-24%; right:-20%; width:72%; aspect-ratio:1; border-radius:50%; content:""; background:radial-gradient(circle at 35% 35%,rgba(218,244,189,.28),rgba(184,201,186,.04) 60%,transparent 68%); filter:blur(3px); }.van-detail { display:flex; flex-direction:column; justify-content:space-between; min-height:590px; padding:clamp(28px,4vw,52px); }.van-detail > * { position:relative; }.van-detail .eyebrow { color:#c2d4c8; }.van-detail h3 { font-size:clamp(2.15rem,3.3vw,4rem); line-height:.94; }.van-copy { max-width:440px; color:#d2ded5; line-height:1.58; }.spec-list { display:grid; grid-template-columns:1fr 1fr; gap:0; margin:25px 0; padding:0; border-top:1px solid rgba(231,238,232,.25); list-style:none; }.spec-list li { padding:11px 0; border-bottom:1px solid rgba(231,238,232,.18); font-size:.81rem; }.spec-list li:nth-child(odd) { padding-right:.75rem; }.text-link { display:inline-flex; gap:.7rem; align-items:center; width:max-content; padding-bottom:4px; border-bottom:1px solid currentColor; font-size:.84rem; font-weight:600; }.van-panel--future { min-height:590px; }.future-visual { position:relative; display:grid; place-items:center; overflow:hidden; border-radius:var(--radius); color:#d8e6db; text-align:center; background:linear-gradient(145deg,#173f36,#375d4f 55%,#1c4a3e); }.future-visual::before { position:absolute; inset:0; content:""; background:linear-gradient(110deg,transparent 20%,rgba(227,247,220,.12) 48%,transparent 76%); transform:translateX(-80%) rotate(9deg); }.future-visual p { position:relative; z-index:1; margin:0; font:500 clamp(2rem,4vw,4.5rem)/.92 "Fraunces",Georgia,serif; letter-spacing:-.05em; }.future-visual p span { color:#a8c179; font-size:.42em; }.future-orb { position:absolute; width:65%; aspect-ratio:1; border:1px solid rgba(230,244,225,.32); border-radius:48% 52% 48% 52%; background:radial-gradient(circle at 36% 34%,rgba(222,245,177,.44),rgba(108,159,127,.12) 46%,transparent 70%); box-shadow:0 0 120px rgba(165,212,159,.18); transform:rotate(25deg); }.carousel-controls { display:flex; align-items:center; justify-content:flex-end; gap:14px; margin-top:clamp(24px,3vw,38px); color:#b7ccbd; }.carousel-controls p { margin:0 auto 0 0; font-size:.76rem; }.circle-button { display:grid; place-items:center; width:42px; height:42px; border:1px solid rgba(231,238,232,.35); border-radius:50%; color:var(--mist); background:transparent; cursor:pointer; }.circle-button:hover { background:rgba(231,238,232,.13); }
.equipment { background:#e2eae3; }.equipment-layout { display:grid; grid-template-columns:1.25fr .6fr; gap:6vw; align-items:end; max-width:1240px; }.equipment-list { display:grid; grid-template-columns:repeat(3,1fr); gap:0 30px; margin:clamp(58px,8vw,100px) 0 0; padding:0; border-top:1px solid var(--line); list-style:none; }.equipment-list li { padding:16px 0; border-bottom:1px solid var(--line); font-size:.9rem; }.equipment-list li::before { margin-right:.65rem; color:#678276; content:"✦"; font-size:.65rem; }.testimonial { display:grid; place-items:center; min-height:60svh; padding:80px 22px; color:var(--mist); text-align:center; background:var(--deep); }.testimonial-mark { height:.7em; color:var(--lime); font:7rem/.85 "Fraunces",Georgia,serif; }.testimonial blockquote { max-width:850px; margin:1.4rem 0 2rem; font:500 clamp(2.1rem,5vw,5.2rem)/.98 "Fraunces",Georgia,serif; letter-spacing:-.055em; }.testimonial p { margin:0; color:#b8ccbd; font:.7rem "DM Mono",monospace; letter-spacing:.09em; text-transform:uppercase; }
.contact { display:grid; grid-template-columns:.9fr 1.1fr; gap:clamp(50px,10vw,160px); align-items:end; color:var(--forest); background:var(--sage); }.contact-copy > p:last-child { max-width:360px; margin:1.8rem 0 0; color:#3e5e54; line-height:1.55; }.contact-cards { display:grid; gap:9px; }.contact-cards a { display:flex; align-items:baseline; justify-content:space-between; gap:1rem; padding:19px 0; border-bottom:1px solid rgba(20,60,53,.25); transition:padding .2s ease; }.contact-cards a:hover { padding-left:10px; }.contact-cards span { color:#537268; font-size:.72rem; text-transform:uppercase; letter-spacing:.07em; }.contact-cards strong { font:500 clamp(1.05rem,1.6vw,1.45rem) "Fraunces",Georgia,serif; letter-spacing:-.025em; text-align:right; }.about { display:grid; grid-template-columns:.38fr 1fr; gap:clamp(35px,9vw,130px); align-items:start; background:var(--paper); }.about > img { width:min(220px,100%); margin-top:0; }.about > div { max-width:760px; }.about > div > p:not(.eyebrow) { max-width:570px; color:#4d625b; font-size:1.05rem; line-height:1.58; }.about .text-link { margin-top:1.7rem; }footer { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-top:clamp(16px,2.4vw,34px); padding:17px clamp(22px,4vw,64px); color:#a7bbb0; background:var(--deep); font:.64rem "DM Mono",monospace; letter-spacing:.05em; text-transform:uppercase; }.inertial-credit { display:inline-flex; align-items:center; gap:.6rem; min-width:max-content; color:var(--mist); letter-spacing:.03em; line-height:1.35; text-align:right; }.inertial-credit img { width:64px; height:42px; border-radius:5px; background:#fff; object-fit:cover; object-position:center bottom; }.inertial-credit span { font-size:.58rem; }
.fleet .van-panels { margin-top:clamp(34px,4vw,54px); }
.fleet .van-panel { gap:clamp(32px,5vw,80px); }
.van-panel.is-active { animation:van-slide-in .42s cubic-bezier(.22,1,.36,1) both; }
.trust-strip { margin-top:0; }
.about > img { height:auto; aspect-ratio:329 / 247; object-fit:contain; object-position:center; }
footer { margin-top:0; padding-inline:max(22px,calc((100% - var(--content-max)) / 2)); }
.inertial-credit { gap:.75rem; }
.inertial-credit img { width:70px; height:66px; border-radius:0; background:transparent; object-fit:contain; object-position:center; }

/* Mobile booking card entrance */
@media (max-width:899px) and (prefers-reduced-motion:no-preference) { .booking-shell { animation:booking-rise .6s cubic-bezier(.22,1,.36,1) .2s both; } }
@keyframes booking-rise { from { opacity:0; transform:translateY(32px); } to { opacity:1; transform:translateY(0); } }

@media (min-width:900px) and (prefers-reduced-motion:no-preference) { html.motion-ready .booking-shell { visibility:hidden; opacity:0; pointer-events:none; } }
@media (max-width:899px) { [id] { scroll-margin-top:calc(var(--space-16) + var(--space-4)); }.status-pill { top:8px; padding:6px 10px; font-size:.52rem; }.site-shell { top:var(--space-10); grid-template-columns:calc(var(--control-height) + var(--space-5)) minmax(0,1fr); width:calc(100% - var(--space-5)); }.site-header { width:100%; min-height:calc(var(--control-height) + var(--space-3)); padding:var(--space-1) var(--space-2); }.site-header nav { position:absolute; top:calc(100% + var(--space-2)); right:0; left:0; display:none; gap:var(--space-1); padding:var(--space-2); border:1px solid var(--glass-edge-light); border-radius:var(--radius-card); color:var(--text-primary); background:var(--site-nav-background); box-shadow:var(--shadow-soft); backdrop-filter:var(--glass-blur); }.site-header.is-menu-open nav { display:grid; }.site-header nav a { display:flex; align-items:center; min-height:var(--control-height); padding:var(--space-3); border-radius:var(--radius-medium); opacity:1; }.site-header nav a:hover,.site-header nav a:focus-visible { background:var(--surface-raised); }.brand { width:calc(var(--control-height) + var(--space-5)); height:calc(var(--control-height) + var(--space-5)); }.brand img { width:auto; height:calc(var(--control-height) + var(--space-2)); margin:0; }.header-cta { margin-left:auto; }.menu-toggle { display:inline-flex; gap:var(--space-2); align-items:center; justify-content:center; min-width:calc(var(--control-height) + var(--space-4)); min-height:var(--control-height); padding:var(--space-3); border:1px solid var(--border-subtle); border-radius:var(--radius-control); color:var(--text-primary); background:var(--surface-raised); font-size:.68rem; font-weight:600; }.menu-toggle i,.menu-toggle i::before { display:block; width:13px; height:1px; background:currentColor; content:""; transition:transform .2s ease; }.menu-toggle i::before { transform:translateY(-4px); }.site-header.is-menu-open .menu-toggle i { transform:rotate(45deg); }.site-header.is-menu-open .menu-toggle i::before { transform:rotate(-90deg); }.hero-scroll { height:auto; }.hero-pin { display:block; height:auto; min-height:0; overflow:visible; padding-bottom:0; }.hero-media { position:relative; height:min(88svh,720px); }.hero-copy { position:absolute; top:18vh; left:6vw; width:min(88vw,600px); margin:0; }.hero-copy h1 { font-size:clamp(3.4rem,14vw,5.5rem); }.hero-intro { font-size:.98rem; }.booking-shell { position:relative; top:auto; left:auto; width:min(92vw,540px); margin:-48px auto 0; transform:none; }.booking-card { grid-template-columns:1fr 1fr; gap:18px 12px; padding:20px; }.booking-heading,.booking-note { grid-column:1/-1; }.booking-card .button { grid-column:1/-1; margin:0; }.scroll-cue { display:none; }.trust-strip { grid-template-columns:1fr; }.trust-strip p { padding:16px 22px; border-right:0; border-bottom:1px solid var(--line); }.section-heading,.equipment-layout { grid-template-columns:1fr; gap:1.5rem; }.reason-grid { grid-template-columns:1fr; margin-top:56px; }.reason-grid article { min-height:0; }.reason-grid h3 { margin-top:34px; }.van-panel { grid-template-columns:1fr; }.van-gallery { height:440px; min-height:0; }.van-detail,.van-panel--future { min-height:480px; }.future-visual { min-height:350px; }.equipment-list { grid-template-columns:1fr 1fr; }.contact { grid-template-columns:1fr; }.about { grid-template-columns:1fr; }.about > img { width:160px; margin:0; }.contact-cards { margin-top:8px; } }
@media (max-width:899px) { .fleet .van-panel { gap:24px; } }
@media (max-width:480px) { .header-cta { padding:.58rem .78rem; font-size:.74rem; }.booking-card { grid-template-columns:1fr; }.booking-field { padding-bottom:9px; }.van-switcher { overflow-x:auto; }.van-tab { white-space:nowrap; }.van-gallery { display:block; height:320px; }.equipment-list { grid-template-columns:1fr; }.contact-cards a { align-items:flex-start; flex-direction:column; gap:.4rem; }.contact-cards strong { text-align:left; } footer { display:grid; }.inertial-credit { justify-self:start; } }
@media (max-width:375px) { .hero-copy { left:5vw; width:90vw; }.hero-copy h1 { font-size:clamp(2.6rem,14vw,3.4rem); }.hero-intro { font-size:.88rem; margin:1.2rem 0 1.6rem; }.booking-shell { margin:-38px auto 0; width:94vw; }.booking-card { padding:14px; gap:10px; }.status-pill { font-size:.48rem; padding:5px 8px; }.reason-grid article { padding:18px; }.reason-grid h3 { margin-top:40px; font-size:1.15rem; }.van-gallery { height:260px; }.van-detail,.van-panel--future { min-height:380px; padding:18px; }.future-visual { min-height:260px; }.section { padding:clamp(50px,11vw,80px) 16px; }.trust-strip p { padding:14px 16px; font-size:.76rem; }.contact-cards a { padding:14px 0; }.equipment-list li { padding:12px 0; font-size:.82rem; } }
@media (prefers-reduced-transparency:reduce) { .site-header,.brand { background:var(--surface-page); backdrop-filter:none; } }
@media (max-width:899px) and (prefers-reduced-transparency:reduce) { .site-header nav { background:var(--surface-page); backdrop-filter:none; } }
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto!important; transition-duration:.01ms!important; animation-duration:.01ms!important; animation-iteration-count:1!important; } }

/* Persistent booking handoff: compact on desktop, spacious and centred on mobile. */
@media (min-width:900px) and (prefers-reduced-motion:no-preference) {
  .booking-shell.booking-shell--docking,
  .booking-shell.booking-shell--docked {
    position:fixed;
    z-index:9;
    top:var(--booking-dock-top,var(--space-16));
    left:50%;
    width:min(92vw,1120px);
    transform:translateX(-50%)!important;
  }

  .booking-shell--docking .booking-card,
  .booking-shell--docked .booking-card {
    transition:
      min-height var(--duration-ui) var(--ease-quiet),
      padding var(--duration-ui) var(--ease-quiet),
      column-gap var(--duration-ui) var(--ease-quiet),
      row-gap var(--duration-ui) var(--ease-quiet);
  }

  .booking-shell--docked .booking-card {
    column-gap:var(--space-3);
    row-gap:0;
    min-height:0;
    padding:var(--space-3);
  }

  .booking-shell--docking .booking-heading,
  .booking-shell--docked .booking-heading {
    transition:padding var(--duration-ui) var(--ease-quiet);
  }

  .booking-shell--docked .booking-heading {
    padding:0 var(--space-2);
  }

  .booking-shell--docking .booking-heading .eyebrow,
  .booking-shell--docking .booking-note,
  .booking-shell--docked .booking-heading .eyebrow,
  .booking-shell--docked .booking-note {
    overflow:hidden;
    transition:
      max-height var(--duration-ui) var(--ease-quiet),
      margin var(--duration-ui) var(--ease-quiet);
  }

  .booking-shell--docking .booking-heading .eyebrow,
  .booking-shell--docking .booking-note {
    max-height:var(--space-8);
  }

  .booking-shell--docked .booking-heading .eyebrow,
  .booking-shell--docked .booking-note {
    max-height:0;
    margin:0;
    visibility:hidden;
  }

  .booking-shell--docking .booking-heading h2,
  .booking-shell--docked .booking-heading h2 {
    transition:font-size var(--duration-ui) var(--ease-quiet);
  }

  .booking-shell--docked .booking-heading h2 {
    font-size:clamp(1.25rem,1.6vw,1.6rem);
  }

  .booking-shell--docking .booking-field,
  .booking-shell--docked .booking-field {
    transition:
      gap var(--duration-ui) var(--ease-quiet),
      padding var(--duration-ui) var(--ease-quiet);
  }

  .booking-shell--docked .booking-field {
    gap:var(--space-1);
    padding:0 var(--space-2) var(--space-2);
  }

  .booking-shell--docked .booking-card .button {
    min-height:var(--control-height);
    margin-bottom:0;
  }

  .booking-shell--docked.booking-shell--parked {
    visibility:hidden!important;
    opacity:0!important;
    pointer-events:none!important;
    transform:translate(-50%,calc(-1 * var(--space-3)))!important;
    transition:
      opacity var(--duration-ui) var(--ease-quiet),
      transform var(--duration-ui) var(--ease-quiet),
      visibility 0s linear var(--duration-ui);
  }
}

@media (max-width:899px) {
  .hero-pin {
    padding-bottom:var(--space-8);
  }

  .booking-shell {
    margin:var(--space-5) auto 0;
  }

  .trust-strip p {
    text-align:center;
  }

  .intro > .eyebrow,
  .intro .section-heading,
  .intro .reason-grid article {
    text-align:center;
  }

  .intro .section-heading {
    justify-items:center;
  }

  .intro .section-heading p,
  .intro .reason-grid article p {
    max-width:32ch;
    margin-inline:auto;
  }

  .intro .reason-icon {
    margin-inline:auto;
  }
}

@media (max-width:375px) {
  .booking-shell {
    margin:var(--space-4) auto 0;
  }
}


.reviews { padding:var(--space-16) var(--page-gutter); color:var(--text-on-dark); background:var(--surface-deep); }
.reviews-inner { max-width:var(--content-max); margin-inline:auto; }
.reviews .eyebrow,.reviews-order,.reviews-summary > p:last-child,.reviews-attribution { color:var(--inertial-sage-300); }
.reviews-header { display:grid; grid-template-columns:minmax(0,2fr) minmax(0,1fr); gap:var(--space-8); align-items:end; }
.reviews-header h2 { margin:0; font:500 var(--text-display-l)/var(--line-height-tight) var(--font-display); letter-spacing:-.05em; }
.reviews-summary { justify-self:end; text-align:right; }
.reviews-score { display:flex; gap:var(--space-3); align-items:baseline; justify-content:flex-end; margin:0; }
.reviews-score strong { font:500 var(--text-display-m)/var(--line-height-tight) var(--font-display); }
.reviews-stars,.reviews-card__stars { margin:0; color:var(--action-accent); }
.reviews-summary > p:last-child,.reviews-order,.reviews-state,.reviews-attribution { font:var(--text-label)/var(--line-height-body) var(--font-utility); letter-spacing:.06em; text-transform:uppercase; }
.reviews-order { margin:var(--space-5) 0 var(--space-8); }
.reviews-state { display:flex; gap:var(--space-4); align-items:center; min-height:var(--space-12); }
.reviews-retry,.reviews-card__source { min-height:var(--touch-target-min); padding:var(--space-3) var(--space-4); border:var(--route-line-width) solid var(--route-track-on-dark); border-radius:var(--radius-control); color:var(--text-on-dark); background:transparent; cursor:pointer; }
.reviews-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--space-5); }
.reviews-card { display:flex; flex-direction:column; gap:var(--space-5); min-width:0; padding:var(--space-6); border:1px solid var(--glass-edge-dark); border-radius:var(--radius-card); background:var(--glass-dark); box-shadow:var(--shadow-soft); backdrop-filter:var(--glass-blur); animation:reviews-rise var(--duration-story) var(--ease-quiet) both; }
.reviews-card__quote { flex:1; margin:0; font:500 var(--text-body-l)/var(--line-height-body) var(--font-display); }
.reviews-card__quote p { margin:0; }
.reviews-card__author { display:flex; gap:var(--space-3); align-items:center; padding:0; color:inherit; background:transparent; }
.reviews-card__photo { width:var(--control-height); height:var(--control-height); border-radius:var(--radius-control); object-fit:cover; }
.reviews-card__author-copy { display:grid; gap:var(--space-1); }
.reviews-card__author-copy a,.reviews-card__author-copy strong { font-size:var(--text-body); }
.reviews-card__author-copy time,.reviews-card__source { font:var(--text-label)/var(--line-height-body) var(--font-utility); letter-spacing:.04em; text-transform:uppercase; }
.reviews-card__source { display:inline-flex; align-items:center; align-self:flex-start; border-width:1px; }
.reviews-attribution { display:flex; gap:var(--space-5); align-items:center; justify-content:flex-end; margin-top:var(--space-6); }
.reviews-attribution [data-reviews-providers] { display:flex; gap:var(--space-3); }
.reviews-visually-hidden { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
@keyframes reviews-rise { from { opacity:0; transform:translateY(var(--space-3)); } to { opacity:1; transform:translateY(0); } }
@media (max-width:899px) {
  .reviews { padding:var(--space-12) var(--page-gutter); }
  .reviews-header { grid-template-columns:1fr; gap:var(--space-5); text-align:center; }
  .reviews-summary { justify-self:center; text-align:center; }
  .reviews-score { justify-content:center; }
  .reviews-order { text-align:center; }
  .reviews-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .reviews-attribution { flex-wrap:wrap; justify-content:center; text-align:center; }
}
@media (max-width:480px) {
  .reviews-grid { grid-template-columns:1fr; }
  .reviews-card { padding:var(--space-5); }
  .reviews-state { justify-content:center; flex-direction:column; text-align:center; }
}
/* Camper gallery: fixed-ratio, keyboard-operable product carousel. */
.van-panels { position:relative; }
.van-gallery { display:grid; gap:var(--space-3); min-height:0; }
.gallery-stage { position:relative; aspect-ratio:var(--media-aspect-product); min-height:0; overflow:hidden; border-radius:var(--media-radius); background:var(--surface-deep); touch-action:pan-y; }
.van-gallery .gallery-slide { position:absolute; inset:0; width:100%; height:100%; margin:0; overflow:hidden; border-radius:inherit; background:var(--surface-deep); }
.gallery-slide img { display:block; width:100%; height:100%; object-fit:cover; object-position:center; }
.gallery-slide.is-selected { animation:gallery-reveal var(--duration-ui) var(--ease-quiet) both; }
.gallery-controls { position:absolute; right:var(--space-3); bottom:var(--space-3); left:var(--space-3); z-index:var(--z-base); display:grid; grid-template-columns:auto 1fr auto; gap:var(--space-2); align-items:center; pointer-events:none; }
.gallery-arrow { display:grid; place-items:center; width:var(--control-height); height:var(--control-height); padding:0; border:1px solid var(--glass-edge-dark); border-radius:var(--radius-control); color:var(--text-on-dark); background:var(--glass-dark),var(--surface-deep); box-shadow:var(--shadow-subtle); backdrop-filter:var(--glass-blur); cursor:pointer; pointer-events:auto; transition:transform var(--duration-micro) var(--ease-quiet),background var(--duration-micro) var(--ease-quiet); }
.gallery-arrow:hover { transform:translateY(calc(-1 * var(--space-1))); background:var(--surface-strong); }
.gallery-arrow:focus-visible,.gallery-dot:focus-visible { outline:3px solid var(--focus-ring); outline-offset:var(--space-1); }
.gallery-status { justify-self:center; margin:0; padding:var(--space-2) var(--space-3); border:1px solid var(--glass-edge-dark); border-radius:var(--radius-control); color:var(--text-on-dark); background:var(--glass-dark),var(--surface-deep); font-family:var(--font-utility); font-size:var(--text-label); box-shadow:var(--shadow-subtle); backdrop-filter:var(--glass-blur); }
.gallery-dots { display:flex; flex-wrap:wrap; justify-content:center; gap:var(--space-1); min-height:var(--control-height-compact); }
.gallery-dot { display:grid; place-items:center; width:var(--space-6); height:var(--space-6); padding:0; border:0; border-radius:var(--radius-control); background:transparent; cursor:pointer; }
.gallery-dot span { width:var(--space-2); height:var(--space-2); border:1px solid var(--border-strong); border-radius:var(--radius-control); background:var(--surface-muted); transition:width var(--duration-micro) var(--ease-quiet),background var(--duration-micro) var(--ease-quiet); }
.gallery-dot.is-selected span { width:var(--space-5); background:var(--action-accent); }
@keyframes gallery-reveal { from { opacity:.55; transform:scale(1.01); } to { opacity:1; transform:scale(1); } }
@media (max-width:899px) { .van-gallery { height:auto; }.gallery-stage { aspect-ratio:var(--media-aspect-product); } }
@media (max-width:480px) { .van-gallery { height:auto; gap:var(--space-2); }.gallery-controls { right:var(--space-2); bottom:var(--space-2); left:var(--space-2); }.gallery-arrow { width:var(--control-height); height:var(--control-height); }.gallery-dots { gap:0; } }
@media (prefers-reduced-transparency:reduce) { .gallery-arrow,.gallery-status { background:var(--surface-deep); backdrop-filter:none; } }
@media (prefers-reduced-motion:reduce) { .gallery-slide.is-selected { animation:none; }.gallery-arrow,.gallery-dot span { transition:none; }.gallery-arrow:hover { transform:none; } }
