/* ═══════════════════════════════════════════════════════════════════════════
   BHLR ROUTE SYSTEM v2 — "Graphite & Emerald" landing pages (2026-07-17)
   ─────────────────────────────────────────────────────────────────────────
   Scope contract (mirrors homepage v3):
   · Page content lives under <main id="rvp" class="rv-wrap hp-s">.
     #rvp gives ID-level specificity so theme-styles.css's global text
     repaint (lines 148-149) can never recolor us; hp-s is the documented
     landing-page opt-out class.
   · Theming follows html[data-theme="light|dark"]. Emerald = interaction,
     champagne gold = booking/prestige, graphite = panel bands.
   · NO backdrop-filter (paints unreliably on small tiles; perf budget).
     Translucency is faked with high-opacity gradients.
   · Motion: opacity/transform only, IO-gated, killed by reduced-motion.
   · Loaded ONLY by v2 pages: <link href="/assets/css/route-v2.css?v=1">.
   ═══════════════════════════════════════════════════════════════════════ */

#rvp.rv-wrap{
  --rv-bg:#fafbf9; --rv-bg-soft:#f2f4f2; --rv-card:#ffffff;
  --rv-ink:#101513; --rv-slate:#545f59; --rv-faint:#6d7772;
  --rv-line:rgba(16,21,19,.10); --rv-line-soft:rgba(16,21,19,.055);
  --rv-ac:#0b6b53; --rv-ac-bright:#0f8264; --rv-ac-ink:#ffffff;
  --rv-ac-bg:rgba(11,107,83,.09);
  --rv-gold:#a8823c; --rv-gold-soft:#c7a75a; --rv-gold-text:#8a6a2e; /* 4.8:1 on pearl */
  --rv-gold-grad:linear-gradient(135deg,#e6cd85 0%,#cfab56 52%,#a8823c 100%);
  --rv-gold-ink:#221703;
  --rv-panel:#101613; --rv-panel-2:#161d19; --rv-panel-ink:#eef3f0;
  --rv-panel-mut:rgba(238,243,240,.62); --rv-panel-line:rgba(238,243,240,.14);
  --rv-serif:'Cormorant Garamond',Georgia,serif;
  --rv-sans:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif;
  --rv-shadow:0 22px 54px -30px rgba(16,21,19,.28);
  background:var(--rv-bg); color:var(--rv-ink); font-family:var(--rv-sans);
  -webkit-font-smoothing:antialiased; overflow-x:clip;
}
html[data-theme="dark"] #rvp.rv-wrap{
  --rv-bg:#0d120f; --rv-bg-soft:#111713; --rv-card:#151b17;
  --rv-ink:#eef3f0; --rv-slate:#a9b4ae; --rv-faint:#8b968f;
  --rv-line:rgba(238,243,240,.11); --rv-line-soft:rgba(238,243,240,.06);
  --rv-ac:#31a583; --rv-ac-bright:#3cb893; --rv-ac-bg:rgba(49,165,131,.14);
  --rv-gold:#c7a75a; --rv-gold-soft:#dbc07a; --rv-gold-text:#dbc07a;
  --rv-shadow:0 26px 64px -30px rgba(0,0,0,.75);
}
#rvp.rv-wrap *,#rvp.rv-wrap *::before,#rvp.rv-wrap *::after{box-sizing:border-box}
#rvp.rv-wrap :focus-visible{outline:2px solid var(--rv-ac);outline-offset:3px;border-radius:6px}
#rvp.rv-wrap a{cursor:pointer}

/* reveal-on-scroll (JS adds .in; no-JS and reduced-motion stay visible) */
#rvp .rv-rev{opacity:0;transform:translateY(14px);transition:opacity .55s ease,transform .55s cubic-bezier(.22,1,.36,1)}
#rvp .rv-rev.in{opacity:1;transform:none}
.no-js #rvp .rv-rev{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  #rvp .rv-rev{opacity:1!important;transform:none!important;transition:none!important}
  #rvp.rv-wrap *{animation:none!important;transition-duration:.01ms!important}
}

/* ── shells ─────────────────────────────────────────────────────────── */
#rvp .rv-shell{max-width:1140px;margin:0 auto;padding-inline:clamp(20px,4.5vw,48px)}
#rvp .rv-sec{padding-block:clamp(46px,6.5vw,84px)}
#rvp .rv-sec--soft{background:var(--rv-bg-soft);border-block:1px solid var(--rv-line-soft)}
#rvp .rv-kicker{font-size:11.5px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--rv-ac);margin:0 0 12px}
#rvp .rv-h2{font-family:var(--rv-serif);font-weight:600;font-size:clamp(28px,3.6vw,42px);line-height:1.12;margin:0 0 14px;color:var(--rv-ink);text-wrap:balance}
#rvp .rv-h2 em{font-style:italic;color:var(--rv-ac)}
#rvp .rv-lead{font-size:clamp(15px,1.35vw,17px);line-height:1.75;color:var(--rv-slate);max-width:72ch;font-weight:300;margin:0}
#rvp .rv-lead strong{color:var(--rv-ink);font-weight:600}

/* ── 1 · HERO (text-first: H1 is the LCP) ───────────────────────────── */
#rvp .rv-hero{position:relative;padding-block:clamp(108px,14vh,150px) clamp(40px,5vw,64px);background:
  radial-gradient(820px 420px at 84% -4%,var(--rv-ac-bg),transparent 62%),
  radial-gradient(700px 400px at 2% 34%,rgba(168,130,60,.08),transparent 60%)}
#rvp .rv-crumbs{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:12.5px;color:var(--rv-faint);margin:0 0 22px;padding:0;list-style:none}
#rvp .rv-crumbs a{color:var(--rv-faint);text-decoration:none;padding:4px 2px}
#rvp .rv-crumbs a:hover{color:var(--rv-ac);text-decoration:underline;text-underline-offset:3px}
#rvp .rv-crumbs li:not(:last-child)::after{content:"›";margin-left:6px;color:var(--rv-line)}
#rvp .rv-crumbs [aria-current]{color:var(--rv-slate);font-weight:600}
#rvp .rv-h1{font-family:var(--rv-serif);font-weight:600;font-size:clamp(38px,5.6vw,72px);line-height:1.05;letter-spacing:.2px;margin:0 0 18px;max-width:22ch;text-wrap:balance;color:var(--rv-ink)}
#rvp .rv-h1 em{font-style:italic;color:var(--rv-ac);display:block}
#rvp .rv-answer{font-size:clamp(16px,1.6vw,19px);line-height:1.72;color:var(--rv-slate);max-width:66ch;font-weight:300;margin:0 0 26px}
#rvp .rv-answer strong{color:var(--rv-ink);font-weight:600}
#rvp .rv-cta-row{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
#rvp .rv-btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:50px;padding:14px 28px;border-radius:999px;font-family:var(--rv-sans);font-size:13.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;text-decoration:none;border:0;cursor:pointer;transition:transform .2s cubic-bezier(.2,.8,.2,1),box-shadow .25s ease,border-color .2s ease,color .2s ease,background-color .2s ease}
#rvp .rv-btn-gold{background:var(--rv-gold-grad);color:var(--rv-gold-ink);box-shadow:0 12px 28px -12px rgba(168,130,60,.55)}
#rvp .rv-btn-gold:hover{transform:translateY(-2px);box-shadow:0 16px 36px -12px rgba(168,130,60,.7)}
#rvp .rv-btn-gold:active{transform:translateY(0) scale(.985)}
#rvp .rv-btn-line{background:transparent;color:var(--rv-ink);border:1.5px solid var(--rv-line);box-shadow:none}
#rvp .rv-btn-line:hover{border-color:var(--rv-ac);color:var(--rv-ac);transform:translateY(-1px)}
#rvp .rv-hero-note{margin:18px 0 0;font-size:13px;color:var(--rv-faint)}
#rvp .rv-hero-note a{color:var(--rv-ac);text-decoration:underline;text-underline-offset:3px;font-weight:600}

/* ── 2 · TRIP FACTS ─────────────────────────────────────────────────── */
#rvp .rv-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-top:clamp(28px,4vw,40px)}
#rvp .rv-fact{background:var(--rv-card);border:1px solid var(--rv-line);border-radius:16px;padding:16px 16px 14px;box-shadow:0 10px 24px -20px rgba(16,21,19,.3)}
#rvp .rv-fact dt{font-size:10.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--rv-faint);margin:0 0 6px}
#rvp .rv-fact dd{margin:0;font-family:var(--rv-serif);font-size:clamp(19px,2vw,24px);font-weight:600;color:var(--rv-ink);line-height:1.15}
#rvp .rv-fact dd small{display:block;font-family:var(--rv-sans);font-size:11.5px;font-weight:500;color:var(--rv-faint);margin-top:4px;line-height:1.45}
#rvp .rv-facts-note{grid-column:1/-1;font-size:12.5px;color:var(--rv-faint);margin:2px 0 0}

/* ── 3 · TRUST STRIP ────────────────────────────────────────────────── */
#rvp .rv-trust{display:flex;flex-wrap:wrap;gap:10px 22px;align-items:center;margin-top:26px;padding-top:20px;border-top:1px solid var(--rv-line)}
#rvp .rv-trust li{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:var(--rv-slate);font-weight:500;list-style:none}
#rvp .rv-trust svg{width:15px;height:15px;color:var(--rv-ac);flex:none}
#rvp ul.rv-trust{padding:0;margin-block:26px 0}

/* ── 4 · BOOKING BAND (graphite panel — echoes homepage booking zone) ── */
#rvp .rv-book{background:linear-gradient(168deg,var(--rv-panel) 0%,var(--rv-panel-2) 100%);color:var(--rv-panel-ink);border-radius:24px;padding:clamp(28px,4vw,44px);box-shadow:var(--rv-shadow);border:1px solid var(--rv-panel-line)}
#rvp .rv-book .rv-kicker{color:var(--rv-gold-soft)}
#rvp .rv-book h2{font-family:var(--rv-serif);font-size:clamp(24px,3vw,34px);font-weight:600;margin:0 0 10px;color:var(--rv-panel-ink)}
#rvp .rv-book p{color:var(--rv-panel-mut);font-size:14.5px;line-height:1.7;margin:0 0 22px;max-width:60ch}
#rvp .rv-book .rv-btn-line{color:var(--rv-panel-ink);border-color:rgba(238,243,240,.3)}
#rvp .rv-book .rv-btn-line:hover{border-color:var(--rv-gold-soft);color:var(--rv-gold-soft)}
#rvp .rv-book-meta{display:flex;flex-wrap:wrap;gap:8px 20px;margin:20px 0 0;padding:0;list-style:none}
#rvp .rv-book-meta li{font-size:12.5px;color:var(--rv-panel-mut)}
#rvp .rv-book-meta b{color:var(--rv-panel-ink);font-weight:600}

/* ── 5 · WHO IT'S FOR / cards ───────────────────────────────────────── */
#rvp .rv-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px;margin-top:34px}
#rvp .rv-card{background:var(--rv-card);border:1px solid var(--rv-line);border-radius:18px;padding:26px 24px;box-shadow:0 12px 28px -24px rgba(16,21,19,.32);transition:transform .28s cubic-bezier(.2,.8,.2,1),border-color .22s ease}
#rvp .rv-card:hover{transform:translateY(-4px);border-color:var(--rv-ac)}
#rvp .rv-card-ico{width:42px;height:42px;border-radius:12px;background:var(--rv-ac-bg);color:var(--rv-ac);display:flex;align-items:center;justify-content:center;margin-bottom:14px}
#rvp .rv-card-ico svg{width:20px;height:20px}
#rvp .rv-card h3{font-family:var(--rv-serif);font-size:21px;font-weight:600;margin:0 0 8px;color:var(--rv-ink)}
#rvp .rv-card p{font-size:14px;line-height:1.66;color:var(--rv-slate);margin:0;font-weight:300}

/* ── 6 · PICKUP PROCESS (ordered steps) ─────────────────────────────── */
#rvp .rv-steps{counter-reset:rvstep;margin:34px 0 0;padding:0;list-style:none;display:grid;gap:14px;max-width:820px}
#rvp .rv-step{position:relative;background:var(--rv-card);border:1px solid var(--rv-line);border-radius:16px;padding:20px 22px 20px 66px;box-shadow:0 10px 24px -22px rgba(16,21,19,.3)}
#rvp .rv-step::before{counter-increment:rvstep;content:counter(rvstep);position:absolute;left:20px;top:20px;width:30px;height:30px;border-radius:999px;background:var(--rv-ac);color:var(--rv-ac-ink);font-weight:700;font-size:14px;display:flex;align-items:center;justify-content:center}
#rvp .rv-step h3{font-size:15.5px;font-weight:600;margin:2px 0 6px;color:var(--rv-ink);font-family:var(--rv-sans)}
#rvp .rv-step p{font-size:14px;line-height:1.66;color:var(--rv-slate);margin:0;font-weight:300}

/* ── 7 · VEHICLE TABLE ──────────────────────────────────────────────── */
#rvp .rv-tablewrap{overflow-x:auto;margin-top:34px;border:1px solid var(--rv-line);border-radius:18px;background:var(--rv-card);box-shadow:0 12px 28px -24px rgba(16,21,19,.32)}
#rvp table.rv-table{width:100%;border-collapse:collapse;font-size:14px;min-width:640px}
#rvp .rv-table caption{text-align:left;padding:18px 22px 0;font-size:12.5px;color:var(--rv-faint)}
#rvp .rv-table th{font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--rv-faint);text-align:left;padding:18px 22px 10px;border-bottom:1px solid var(--rv-line)}
#rvp .rv-table td{padding:16px 22px;border-bottom:1px solid var(--rv-line-soft);color:var(--rv-slate);vertical-align:top}
#rvp .rv-table tr:last-child td{border-bottom:0}
#rvp .rv-table td:first-child{font-family:var(--rv-serif);font-size:17px;font-weight:600;color:var(--rv-ink);white-space:nowrap}
#rvp .rv-table td:first-child small{display:block;font-family:var(--rv-sans);font-size:12px;font-weight:400;color:var(--rv-faint);margin-top:3px;white-space:normal}
#rvp .rv-table-note{padding:14px 22px 18px;font-size:12.5px;color:var(--rv-faint)}

/* ── 8 · ROUTE GUIDANCE prose ───────────────────────────────────────── */
#rvp .rv-prose{max-width:76ch;margin-top:26px}
#rvp .rv-prose p{font-size:15.5px;line-height:1.85;color:var(--rv-slate);font-weight:300;margin:0 0 18px}
#rvp .rv-prose strong{color:var(--rv-ink);font-weight:600}
#rvp .rv-prose a{color:var(--rv-ac);font-weight:600;text-decoration:underline;text-decoration-color:var(--rv-ac-bg);text-underline-offset:3px}
#rvp .rv-prose h3{font-family:var(--rv-serif);font-size:23px;font-weight:600;color:var(--rv-ink);margin:30px 0 10px}

/* photo band */
#rvp .rv-photo{border-radius:22px;overflow:hidden;box-shadow:var(--rv-shadow);margin-top:38px}
#rvp .rv-photo img{display:block;width:100%;height:auto;aspect-ratio:21/9;object-fit:cover}
@media (max-width:640px){#rvp .rv-photo img{aspect-ratio:4/3}}

/* ── 9 · PRICING ────────────────────────────────────────────────────── */
#rvp .rv-price{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;margin-top:34px}
#rvp .rv-price-card{background:var(--rv-card);border:1px solid var(--rv-line);border-radius:18px;padding:26px 24px;box-shadow:0 12px 28px -24px rgba(16,21,19,.32)}
#rvp .rv-price-card h3{font-family:var(--rv-serif);font-size:21px;font-weight:600;margin:0 0 10px;color:var(--rv-ink)}
#rvp .rv-price-card p{font-size:14px;line-height:1.68;color:var(--rv-slate);margin:0 0 10px;font-weight:300}
#rvp .rv-price-from{font-family:var(--rv-serif);font-size:30px;font-weight:600;color:var(--rv-ac);font-variant-numeric:tabular-nums}
#rvp .rv-price ul{margin:8px 0 0;padding:0 0 0 2px;list-style:none;display:grid;gap:8px}
#rvp .rv-price ul li{display:flex;gap:9px;align-items:flex-start;font-size:13.5px;color:var(--rv-slate);line-height:1.55}
#rvp .rv-price ul svg{width:15px;height:15px;color:var(--rv-ac);flex:none;margin-top:2px}

/* ── 10 · FAQ (native details) ──────────────────────────────────────── */
#rvp .rv-faqs{max-width:840px;margin-top:34px;display:grid;gap:12px}
#rvp .rv-faq{background:var(--rv-card);border:1px solid var(--rv-line);border-radius:16px;box-shadow:0 10px 24px -22px rgba(16,21,19,.3);transition:border-color .2s ease}
#rvp .rv-faq[open]{border-color:var(--rv-ac)}
#rvp .rv-faq summary{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:48px;padding:18px 22px;cursor:pointer;list-style:none;font-family:var(--rv-serif);font-size:19px;font-weight:600;color:var(--rv-ink)}
#rvp .rv-faq summary::-webkit-details-marker{display:none}
#rvp .rv-faq summary::after{content:"";flex:none;width:11px;height:11px;border-right:2px solid var(--rv-ac);border-bottom:2px solid var(--rv-ac);transform:rotate(45deg);transition:transform .22s ease;margin-right:4px}
#rvp .rv-faq[open] summary::after{transform:rotate(-135deg)}
#rvp .rv-faq-a{padding:0 22px 20px;font-size:14.5px;line-height:1.72;color:var(--rv-slate);font-weight:300}
#rvp .rv-faq-a a{color:var(--rv-ac);font-weight:600;text-decoration:underline;text-underline-offset:3px}

/* ── 11 · RELATED ROUTES ────────────────────────────────────────────── */
#rvp .rv-related{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px;margin-top:34px}
#rvp .rv-rel{display:block;background:var(--rv-card);border:1px solid var(--rv-line);border-radius:16px;padding:20px 22px;text-decoration:none;box-shadow:0 10px 24px -22px rgba(16,21,19,.3);transition:transform .25s cubic-bezier(.2,.8,.2,1),border-color .2s ease}
#rvp .rv-rel:hover{transform:translateY(-3px);border-color:var(--rv-ac)}
#rvp .rv-rel b{display:block;font-family:var(--rv-serif);font-size:18px;font-weight:600;color:var(--rv-ink);margin-bottom:4px}
#rvp .rv-rel span{font-size:13px;color:var(--rv-faint);line-height:1.5}

/* ── 12 · PRESS / RELATIONSHIP ──────────────────────────────────────── */
#rvp .rv-press{margin-top:clamp(46px,6vw,72px);border-top:1px solid var(--rv-line);padding-top:30px;display:flex;flex-wrap:wrap;gap:18px;align-items:flex-start;justify-content:space-between}
#rvp .rv-press blockquote{margin:0;max-width:58ch;font-size:14px;line-height:1.7;color:var(--rv-slate)}
#rvp .rv-press blockquote b{display:block;font-size:11.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--rv-gold-text);margin-bottom:8px}
#rvp .rv-press blockquote a{color:var(--rv-ac);font-weight:600;text-decoration:underline;text-underline-offset:3px}
#rvp .rv-press-rel{font-size:13px;color:var(--rv-faint);max-width:34ch;line-height:1.65}
#rvp .rv-press-rel a{color:var(--rv-ac);font-weight:600;text-decoration:underline;text-underline-offset:3px}

/* ── final CTA ──────────────────────────────────────────────────────── */
#rvp .rv-final{margin-block:clamp(46px,6vw,72px) clamp(56px,7vw,88px)}
#rvp .rv-final .rv-book{text-align:center}
#rvp .rv-final .rv-book p{margin-inline:auto}
#rvp .rv-final .rv-cta-row{justify-content:center}

@media (max-width:768px){
  #rvp .rv-cta-row{flex-direction:column;align-items:stretch}
  #rvp .rv-btn{width:100%}
  #rvp .rv-press{flex-direction:column}
}
