:root {
  --forest: #13251c;
  --forest-2: #1c3528;
  --leaf: #477252;
  --saffron: #e9782f;
  --gold: #e5b65c;
  --ivory: #f7f2e8;
  --paper: #fffdf8;
  --ink: #1d241f;
  --muted: #687068;
  --line: rgba(29, 36, 31, .15);
  --line-light: rgba(255, 255, 255, .18);
  --white: #fff;
  --shadow: 0 24px 70px rgba(16, 32, 23, .16);
  --radius: 24px;
  --shell: 1220px;
  --gutter: clamp(18px, 4vw, 48px);
  --header-h: 78px;
  --display: "Fraunces", Georgia, serif;
  --body: "Plus Jakarta Sans", system-ui, sans-serif;
  --ease: cubic-bezier(.22, 1, .36, 1);
}

*, *::before, *::after { box-sizing: border-box; }
[hidden] { display: none !important; }
/* Base type. The site was built on the browser default of 16px and read
   small on desktop; 106.25% lifts every rem-based size to a 17px base
   without disturbing the hierarchy. */
html { font-size: 106.25%; scroll-behavior: smooth; scroll-padding-top: calc(var(--header-h) + 18px); }
body { margin: 0; background: var(--ivory); color: var(--ink); font-family: var(--body); line-height: 1.65; -webkit-font-smoothing: antialiased; overflow-x: hidden; }
body.menu-open { overflow: hidden; }
img, video, canvas { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button { color: inherit; }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { font-family: var(--display); line-height: 1.06; text-wrap: balance; }
h2 { font-size: clamp(2rem, 5vw, 4.25rem); letter-spacing: -.025em; }
h3 { font-size: clamp(1.35rem, 2.4vw, 1.9rem); }
:focus-visible { outline: 3px solid var(--gold); outline-offset: 4px; }
.shell { width: min(100%, var(--shell)); margin-inline: auto; padding-inline: var(--gutter); }
.skip-link { position: fixed; left: 16px; top: -70px; z-index: 9999; background: var(--paper); color: var(--ink); padding: 12px 18px; border-radius: 10px; font-weight: 700; transition: top .2s; }
.skip-link:focus { top: 12px; }

.eyebrow { display: inline-flex; align-items: center; gap: 0; margin-bottom: 1rem; color: #f5d69e; font-size: 0.78rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; }
.eyebrow::before { display: none; }
.eyebrow--dark { color: var(--saffron); }
.button { min-height: 48px; display: inline-flex; align-items: center; justify-content: center; gap: .5rem; border: 1px solid transparent; border-radius: 999px; padding: .8rem 1.35rem; font-weight: 700; cursor: pointer; transition: transform .25s var(--ease), box-shadow .25s, background .25s, color .25s; }
.button:hover { transform: translateY(-2px); }
.button--primary { background: var(--saffron); color: var(--white); box-shadow: 0 14px 32px -15px rgba(233, 120, 47, .8); }
.button--primary:hover { background: #f0843f; box-shadow: 0 19px 34px -15px rgba(233, 120, 47, .95); }
.button--light { background: rgba(255, 255, 255, .12); color: var(--white); border-color: rgba(255, 255, 255, .55); backdrop-filter: blur(8px); }
.button--light:hover { background: var(--white); color: var(--forest); }
.button--outline { background: transparent; border-color: var(--forest); color: var(--forest); }
.button--outline:hover { background: var(--forest); color: var(--white); }
.button--small { min-height: 40px; padding: .55rem 1rem; font-size: 0.93rem; }
.text-link { display: inline-flex; gap: .7rem; align-items: center; font-weight: 700; color: var(--forest); border-bottom: 1px solid var(--forest); padding-bottom: 3px; }
.text-link span { transition: transform .25s; }
.text-link:hover span { transform: translateX(4px); }

/* Header */
.site-header { position: fixed; inset: 0 0 auto; z-index: 1000; color: var(--white); transition: background .3s, box-shadow .3s, color .3s; }
.site-header.is-scrolled { color: var(--ink); background: rgba(247, 242, 232, .94); backdrop-filter: blur(15px); box-shadow: 0 8px 30px rgba(18, 33, 24, .08); }
.nav-wrap { height: var(--header-h); display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; }
.brand img { height: 48px; width: auto; object-fit: contain; filter: brightness(0) invert(1); transition: filter .3s; }
.site-header.is-scrolled .brand img, .site-header:has(.mobile-nav:not([hidden])) .brand img { filter: none; }
/* Seven links at the larger base type wrapped onto a second row on the
   content and tour pages. nowrap turns any future overrun into an overflow
   the tests can see, and the tighter gap keeps it on one line. */
.desktop-nav { display: flex; align-items: center; gap: clamp(.7rem, 1.5vw, 1.15rem); font-size: 0.9rem; font-weight: 600; }
.desktop-nav a { position: relative; padding-block: 12px; white-space: nowrap; }
.desktop-nav a::after { content: ""; position: absolute; inset: auto 0 5px; height: 2px; background: var(--saffron); transform: scaleX(0); transition: transform .25s; }
.desktop-nav a:hover::after { transform: scaleX(1); }
.nav-actions { display: flex; align-items: center; gap: .8rem; }
.text-action { font-size: 0.95rem; font-weight: 700; }
.menu-toggle { display: none; width: 48px; height: 48px; border: 0; background: transparent; padding: 12px; cursor: pointer; }
.menu-toggle span { display: block; height: 2px; margin: 5px 0; background: currentColor; transition: transform .25s, opacity .2s; }
.menu-toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.menu-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.menu-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
.mobile-nav { display: none; color: var(--ink); background: var(--ivory); border-top: 1px solid var(--line); padding: 22px var(--gutter) calc(28px + env(safe-area-inset-bottom)); }
.mobile-nav nav { display: grid; gap: 2px; }
.mobile-nav a:not(.button) { padding: 13px 4px; border-bottom: 1px solid var(--line); font-weight: 650; }
.mobile-nav .button { margin-top: 14px; }

/* Hero */
.hero { min-height: max(720px, 100svh); display: grid; align-items: end; position: relative; overflow: hidden; background: #0b1710; color: var(--white); }
.hero-media, .hero-slide, .hero-overlay { position: absolute; inset: 0; }
.hero-slide { background: var(--hero-image) center / cover no-repeat; opacity: 0; transform: scale(1.05); transition: opacity 1.4s ease, transform 7s linear; }
.hero-slide.is-active { opacity: 1; transform: scale(1); }
.hero-overlay { background: linear-gradient(90deg, rgba(6, 15, 10, .86) 0%, rgba(6, 15, 10, .57) 46%, rgba(6, 15, 10, .16) 76%), linear-gradient(0deg, rgba(6, 15, 10, .5), transparent 45%); }
.hero-content { position: relative; z-index: 2; padding-top: calc(var(--header-h) + 90px); padding-bottom: clamp(80px, 11vh, 130px); }
.hero h1 { max-width: 820px; margin-bottom: 1.3rem; font-size: clamp(3rem, 8vw, 7rem); letter-spacing: -.045em; }
.hero h1 em { color: #f0c675; font-weight: 500; }
.hero-lead { max-width: 670px; margin-bottom: 1.8rem; color: rgba(255, 255, 255, .84); font-size: clamp(1.05rem, 2vw, 1.28rem); }
.hero-actions { display: flex; flex-wrap: wrap; gap: .8rem; }
.hero-tagline { margin-top: 1.7rem; color: rgba(255, 255, 255, .68); font-family: var(--display); font-style: italic; }
.hero-progress { position: absolute; z-index: 3; right: var(--gutter); bottom: 35px; display: flex; gap: 8px; }
.hero-progress span { width: 8px; height: 8px; border: 1px solid rgba(255,255,255,.8); border-radius: 50%; transition: width .3s, background .3s, border-radius .3s; }
.hero-progress span.is-active { width: 30px; border-radius: 99px; background: var(--gold); border-color: var(--gold); }

/* Proof */
.proof-strip { background: var(--paper); border-bottom: 1px solid var(--line); }
.proof-grid { display: grid; grid-template-columns: repeat(4, 1fr); }
.proof-grid p { display: grid; grid-template-columns: auto 1fr; column-gap: .8rem; margin: 0; padding: 24px clamp(8px, 2vw, 25px); border-right: 1px solid var(--line); }
.proof-grid p:last-child { border-right: 0; }
.proof-grid p > span { grid-row: span 2; color: var(--saffron); font-family: var(--display); font-weight: 700; }
.proof-grid strong { font-size: 0.99rem; }
.proof-grid small { color: var(--muted); font-size: 0.8rem; }

/* Shared sections */
.section { padding-block: clamp(76px, 10vw, 140px); }
.section--forest { background: var(--forest); color: var(--white); }
.section-heading { max-width: 780px; margin-bottom: clamp(38px, 6vw, 68px); }
.section-heading h2 { margin-bottom: 1.1rem; }
.section-heading > p:last-child, .split-heading > div > p { color: var(--muted); max-width: 62ch; }
.section-heading--light > p:last-child { color: rgba(255, 255, 255, .66); }
.section-heading--center { margin-inline: auto; text-align: center; }
.section-heading--center .eyebrow { justify-content: center; }
.split-heading { max-width: none; display: grid; grid-template-columns: 1.25fr 1fr; gap: clamp(2rem, 7vw, 6rem); align-items: end; }
.section-action { text-align: center; margin-top: 38px; }

/* Destinations */
.chip-row { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 1.25rem; }
.filter-chip { min-height: 38px; border: 1px solid var(--line); border-radius: 999px; background: transparent; padding: .45rem .9rem; cursor: pointer; font-size: 0.87rem; font-weight: 700; }
.filter-chip[aria-pressed="true"] { background: var(--forest); border-color: var(--forest); color: var(--white); }
.destination-grid { display: grid; grid-template-columns: repeat(12, 1fr); gap: 16px; }
.destination-card { grid-column: span 4; min-height: 360px; position: relative; border-radius: var(--radius); overflow: hidden; background: var(--forest); color: var(--white); isolation: isolate; box-shadow: var(--shadow); }
.destination-card:nth-child(1), .destination-card:nth-child(6) { grid-column: span 8; }
.destination-card[hidden] { display: none; }
.destination-card img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--ease); }
.destination-card::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(0deg, rgba(7, 17, 11, .9), rgba(7, 17, 11, .06) 70%); }
.destination-card:hover img { transform: scale(1.06); }
.destination-card a { min-height: 100%; display: flex; flex-direction: column; justify-content: end; padding: 25px; }
.destination-card small { color: #f1cd90; text-transform: uppercase; letter-spacing: .12em; font-weight: 700; font-size: 0.76rem; }
.destination-card h3 { margin: .4rem 0 .2rem; }
.destination-card p { margin: 0; color: rgba(255,255,255,.72); font-size: 0.9rem; }

/* Tours */
.tour-grid { display: grid; grid-template-columns: repeat(12, 1fr); gap: 20px; }
.tour-card { grid-column: span 4; background: #f7f1e5; color: var(--ink); border-radius: var(--radius); overflow: hidden; }
.tour-card:nth-child(1), .tour-card:nth-child(4) { grid-column: span 6; }
.tour-image { position: relative; aspect-ratio: 16/10; overflow: hidden; }
.tour-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s var(--ease); }
.tour-card:hover .tour-image img { transform: scale(1.05); }
.tour-category { position: absolute; left: 16px; top: 16px; border-radius: 999px; background: rgba(19,37,28,.88); color: var(--white); padding: .4rem .7rem; font-size: 0.76rem; text-transform: uppercase; letter-spacing: .12em; font-weight: 700; }
.tour-body { padding: 24px; }
.tour-body h3 { margin-bottom: .55rem; }
.tour-body > p { color: var(--muted); font-size: 0.96rem; }
.tour-highlights { display: flex; flex-wrap: wrap; gap: .45rem; margin: 1.1rem 0; padding: 0; list-style: none; }
.tour-highlights li { background: rgba(71,114,82,.1); color: var(--forest-2); border-radius: 99px; padding: .35rem .65rem; font-size: 0.76rem; font-weight: 650; }
.tour-actions { display: flex; flex-wrap: wrap; gap: 1rem; align-items: center; border-top: 1px solid var(--line); padding-top: 1rem; }
.tour-actions a { font-weight: 700; font-size: 0.91rem; }
.tour-actions a:last-child { color: #187c48; }

/* Process */
.how { background: var(--paper); }
.steps { display: grid; grid-template-columns: repeat(3, 1fr); margin: 0; padding: 0; list-style: none; counter-reset: steps; }
.steps li { min-height: 260px; padding: 32px; border: 1px solid var(--line); border-right: 0; }
.steps li:first-child { border-radius: var(--radius) 0 0 var(--radius); }
.steps li:last-child { border-right: 1px solid var(--line); border-radius: 0 var(--radius) var(--radius) 0; }
.steps span { display: block; margin-bottom: 3.4rem; color: var(--saffron); font-family: var(--display); font-size: 1.2rem; }
.steps h3 { margin-bottom: .8rem; }
.steps p { color: var(--muted); font-size: 0.96rem; }

/* About */
.about-grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2.5rem, 7vw, 7rem); align-items: center; }
.about-media { min-height: 650px; border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow); }
.about-media img { width: 100%; height: 100%; object-fit: cover; }
.about-copy h2 { margin-bottom: 1.3rem; }
.about-copy > p:not(.eyebrow) { color: var(--muted); }
.check-list { display: grid; gap: 0; margin: 2rem 0; padding: 0; list-style: none; }
.check-list li { display: grid; gap: .2rem; padding: 1rem 0 1rem 2.1rem; border-top: 1px solid var(--line); position: relative; }
.check-list li::before { content: "✓"; position: absolute; left: 0; top: 1rem; width: 22px; height: 22px; display: grid; place-items: center; border-radius: 50%; background: rgba(71,114,82,.14); color: var(--leaf); font-size: 0.8rem; font-weight: 900; }
.check-list span { color: var(--muted); font-size: 0.91rem; }

/* Bus journey */
.journey { height: 180vh; position: relative; background: #050a07; color: var(--white); }
.journey-stage { position: sticky; top: 0; height: 100svh; overflow: hidden; }
.journey-poster, .journey canvas { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.journey canvas { opacity: 0; transition: opacity .4s; }
.journey-stage.canvas-ready canvas { opacity: 1; }
.journey-stage.canvas-ready .journey-poster { opacity: 0; }
.journey-shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(4,10,6,.86), rgba(4,10,6,.4) 58%, rgba(4,10,6,.08)); }
.journey-copy { position: relative; z-index: 2; height: 100%; display: flex; flex-direction: column; justify-content: center; align-items: flex-start; }
.journey-copy h2 { max-width: 650px; margin-bottom: 1.1rem; }
.journey-copy > p:not(.eyebrow) { max-width: 560px; color: rgba(255,255,255,.74); margin-bottom: 1.6rem; }
.journey-status { position: absolute; inset: auto 0 0; height: 3px; background: rgba(255,255,255,.15); }
.journey-status span { display: block; width: 0; height: 100%; background: var(--gold); }

/* Video */
.media-story { background: #ece4d5; }
.media-grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(2rem, 7vw, 7rem); align-items: center; }
.media-copy p:not(.eyebrow) { color: var(--muted); }
.media-note { margin-top: 1rem; font-size: 0.81rem; }
.video-frame { width: min(100%, 390px); margin-inline: auto; padding: 10px; border-radius: 34px; background: var(--forest); box-shadow: var(--shadow); }
.video-frame video { width: 100%; aspect-ratio: 9/16; border-radius: 25px; object-fit: cover; background: #000; }

/* Planner */
.plan { color: var(--white); background: var(--forest); }
.plan-grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(2.5rem, 7vw, 7rem); align-items: start; }
.plan-copy { position: sticky; top: calc(var(--header-h) + 35px); }
.plan-copy h2 { margin-bottom: 1.2rem; }
.plan-copy > p:not(.eyebrow) { color: rgba(255,255,255,.67); }
.contact-mini { display: grid; gap: .75rem; margin-top: 2rem; }
.contact-mini a { display: grid; }
.contact-mini strong { color: #f1cb87; font-size: 0.8rem; text-transform: uppercase; letter-spacing: .12em; }
.contact-mini span { color: rgba(255,255,255,.85); }
.planner-form { padding: clamp(22px, 4vw, 38px); border: 1px solid var(--line-light); border-radius: var(--radius); background: rgba(255,255,255,.055); }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.form-grid label, .lead-dialog form > label:not(.consent) { display: grid; gap: .45rem; }
.form-grid label > span, .lead-dialog label > span { font-size: 0.83rem; font-weight: 700; }
.form-grid small, .lead-dialog small { font-weight: 500; opacity: .7; }
.form-grid input, .form-grid select, .form-grid textarea { width: 100%; min-height: 50px; border: 1px solid var(--line-light); border-radius: 12px; background: rgba(255,255,255,.08); color: var(--white); padding: .75rem .9rem; }
.form-grid select option { color: var(--ink); }
.form-grid textarea { resize: vertical; }
.form-wide { grid-column: 1 / -1; }
.consent { display: flex; align-items: flex-start; gap: .7rem; margin-top: 1rem; color: rgba(255,255,255,.68); font-size: 0.8rem; }
.consent input { width: 18px; height: 18px; flex: none; accent-color: var(--saffron); }
.consent a { text-decoration: underline; }
.consent em { color: #f1cb87; }
.honeypot { position: absolute !important; left: -9999px !important; width: 1px !important; height: 1px !important; opacity: 0 !important; }
.form-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 1rem; margin-top: 1.4rem; }
.form-status { font-size: 0.83rem; color: #f4d595; }
.form-status.is-error { color: #ffb4aa; }

/* Contact & footer */
.contact { padding-block: clamp(60px, 8vw, 100px); background: var(--saffron); color: var(--white); }
.contact-grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(2.5rem, 7vw, 7rem); }
.contact h2 { font-size: clamp(2.2rem, 5vw, 4.5rem); }
.contact-grid > div:first-child > p:last-child { max-width: 46ch; color: rgba(255,255,255,.8); }
.contact-list { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: rgba(255,255,255,.3); }
.contact-list > * { display: grid; align-content: center; gap: .2rem; min-height: 120px; padding: 20px; background: var(--saffron); font-style: normal; }
.contact-list span { font-size: 0.76rem; text-transform: uppercase; letter-spacing: .13em; opacity: .7; }
.contact-list strong { font-size: 0.95rem; }
.site-footer { padding: 70px 0 calc(22px + env(safe-area-inset-bottom)); background: #0d1912; color: var(--white); }
.footer-grid { display: grid; grid-template-columns: 1.5fr repeat(3, 1fr); gap: 3rem; }
.footer-brand img { width: 180px; height: auto; filter: brightness(0) invert(1); }
.footer-brand p { max-width: 35ch; margin-top: 1rem; color: rgba(255,255,255,.55); font-size: 0.93rem; }
.footer-grid h2 { margin-bottom: .8rem; color: rgba(255,255,255,.45); font-family: var(--body); font-size: 0.76rem; letter-spacing: .14em; text-transform: uppercase; }
.footer-grid > div:not(.footer-brand) { display: flex; flex-direction: column; align-items: flex-start; }
.footer-grid a { min-height: 38px; color: rgba(255,255,255,.72); font-size: 0.9rem; }
.footer-grid a:hover { color: var(--gold); }
.footer-bottom { display: flex; justify-content: space-between; margin-top: 45px; padding-top: 22px; border-top: 1px solid var(--line-light); color: rgba(255,255,255,.4); font-size: 0.78rem; }

/* Floating and overlays */
.whatsapp-float { position: fixed; z-index: 850; right: max(18px, env(safe-area-inset-right)); bottom: max(18px, env(safe-area-inset-bottom)); display: flex; align-items: center; gap: .6rem; min-height: 50px; padding: .7rem 1rem; border-radius: 99px; background: #23b566; color: #052c19; box-shadow: 0 15px 35px rgba(14,83,45,.3); font-size: 0.87rem; opacity: 0; transform: translateY(15px); pointer-events: none; transition: .3s var(--ease); }
.whatsapp-float.is-visible { opacity: 1; transform: none; pointer-events: auto; }
.mobile-actions { display: none; }
.lead-dialog { width: min(92vw, 480px); border: 0; border-radius: var(--radius); padding: clamp(24px, 5vw, 38px); background: var(--paper); color: var(--ink); box-shadow: 0 30px 100px rgba(0,0,0,.35); }
.lead-dialog::backdrop { background: rgba(5, 13, 8, .66); backdrop-filter: blur(5px); }
.lead-dialog h2 { margin-bottom: .8rem; font-size: 2rem; }
.lead-dialog > p:not(.eyebrow) { color: var(--muted); }
.dialog-close { position: absolute; right: 15px; top: 12px; width: 42px; height: 42px; border: 0; background: transparent; font-size: 1.8rem; cursor: pointer; }
.lead-dialog form { display: grid; gap: .9rem; margin-top: 1.4rem; }
.lead-dialog input:not([type="checkbox"]) { min-height: 48px; border: 1px solid var(--line); border-radius: 12px; padding: .7rem .85rem; background: var(--white); }
.lead-dialog .consent { color: var(--muted); margin: 0; }
.button-link { border: 0; background: none; padding: .5rem; text-decoration: underline; cursor: pointer; font-weight: 700; }
.cookie-banner { position: fixed; z-index: 1100; left: 20px; right: 20px; bottom: 20px; max-width: 900px; margin-inline: auto; display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; padding: 18px 20px; border-radius: 16px; background: var(--paper); color: var(--ink); box-shadow: 0 20px 70px rgba(0,0,0,.3); }
.cookie-banner[hidden] { display: none; }
.cookie-banner p { margin: 0; font-size: 0.83rem; }
.cookie-banner p a { text-decoration: underline; }
.cookie-banner > div { display: flex; align-items: center; gap: .5rem; flex: none; }

/* Responsive */
@media (max-width: 1050px) {
  .desktop-nav { display: none; }
  .menu-toggle { display: block; }
  .destination-card { grid-column: span 6; }
  .destination-card:nth-child(1), .destination-card:nth-child(6) { grid-column: span 6; }
  .tour-card, .tour-card:nth-child(1), .tour-card:nth-child(4) { grid-column: span 6; }
  .proof-grid { grid-template-columns: 1fr 1fr; }
  .proof-grid p:nth-child(2) { border-right: 0; }
  .proof-grid p:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
}

@media (max-width: 760px) {
  :root { --header-h: 68px; }
  .nav-actions .text-action, .nav-actions > .button { display: none; }
  .brand img { height: 40px; }
  .hero { min-height: 760px; }
  .hero-overlay { background: linear-gradient(0deg, rgba(6,15,10,.92), rgba(6,15,10,.34) 75%), linear-gradient(90deg, rgba(6,15,10,.55), transparent); }
  .hero-content { padding-bottom: 85px; }
  .hero h1 { font-size: clamp(2.9rem, 14vw, 4.6rem); }
  .hero-progress { left: var(--gutter); right: auto; bottom: 28px; }
  .split-heading, .about-grid, .media-grid, .plan-grid, .contact-grid { grid-template-columns: 1fr; }
  .split-heading { gap: .5rem; }
  .destination-card, .destination-card:nth-child(1), .destination-card:nth-child(6) { grid-column: span 12; min-height: 300px; }
  .tour-card, .tour-card:nth-child(1), .tour-card:nth-child(4) { grid-column: span 12; }
  .steps { grid-template-columns: 1fr; }
  .steps li, .steps li:first-child, .steps li:last-child { min-height: auto; border: 1px solid var(--line); border-bottom: 0; border-radius: 0; }
  .steps li:first-child { border-radius: var(--radius) var(--radius) 0 0; }
  .steps li:last-child { border-bottom: 1px solid var(--line); border-radius: 0 0 var(--radius) var(--radius); }
  .steps span { margin-bottom: 1.8rem; }
  .about-media { min-height: 420px; }
  .journey { height: 150vh; }
  .journey-poster, .journey canvas { object-fit: cover; }
  .journey-shade { background: linear-gradient(0deg, rgba(4,10,6,.92), rgba(4,10,6,.08) 68%); }
  .journey-copy { justify-content: flex-end; padding-bottom: 90px; }
  .plan-copy { position: static; }
  .form-grid { grid-template-columns: 1fr; }
  .form-wide { grid-column: auto; }
  .contact-list { grid-template-columns: 1fr; }
  .contact-list > * { min-height: 92px; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .footer-brand { grid-column: 1 / -1; }
  .whatsapp-float { display: none; }
  .mobile-actions { position: fixed; z-index: 900; left: 0; right: 0; bottom: 0; display: grid; grid-template-columns: repeat(3,1fr); min-height: calc(58px + env(safe-area-inset-bottom)); padding-bottom: env(safe-area-inset-bottom); background: var(--paper); border-top: 1px solid var(--line); box-shadow: 0 -10px 35px rgba(15,30,21,.1); }
  .mobile-actions a { display: grid; place-items: center; border-right: 1px solid var(--line); color: var(--forest); font-weight: 750; font-size: 0.87rem; }
  .mobile-actions a:nth-child(2) { background: #23b566; color: #052c19; }
  .mobile-actions a:last-child { background: var(--saffron); color: var(--white); border: 0; }
  .site-footer { padding-bottom: calc(90px + env(safe-area-inset-bottom)); }
  .cookie-banner { bottom: calc(72px + env(safe-area-inset-bottom)); flex-direction: column; align-items: stretch; }
  .cookie-banner > div { justify-content: flex-end; }
}

/* Content pages */
.content-page { padding-top: var(--header-h); }
.content-article > header { padding-block: clamp(80px, 12vw, 150px); background: #ece4d5; }
.content-article > header h1 { max-width: 900px; margin-bottom: 1.2rem; font-size: clamp(3rem, 8vw, 6.5rem); }
.content-article > header p:last-child { max-width: 750px; color: var(--muted); font-size: clamp(1rem, 2vw, 1.2rem); }
.photo-credits { display: grid; gap: 14px; margin: 1.5rem 0 0; padding: 0; list-style: none; }
.photo-credits li { display: grid; grid-template-columns: 120px 1fr; gap: 16px; align-items: center; }
.photo-credits img { width: 120px; height: 75px; object-fit: cover; border-radius: 10px; }
.photo-credits strong { display: block; }
.photo-credits span { color: var(--muted); font-size: 0.9rem; overflow-wrap: anywhere; }
@media (max-width: 480px) { .photo-credits li { grid-template-columns: 88px 1fr; gap: 12px; } .photo-credits img { width: 88px; height: 55px; } }
.prose { max-width: 850px; padding-top: clamp(60px, 8vw, 100px); padding-bottom: clamp(80px, 10vw, 130px); }
.prose h2 { margin: 2.3rem 0 .8rem; font-size: clamp(1.7rem, 4vw, 2.6rem); }
.prose p, .prose li { color: #505b53; }
.prose a:not(.button) { color: var(--saffron); text-decoration: underline; }
.prose li { margin-bottom: .6rem; }
.prose .button { color: var(--white); text-decoration: none; margin-top: 1rem; }

@media (max-width: 480px) {
  .proof-grid { grid-template-columns: 1fr; }
  .proof-grid p { border-right: 0; border-bottom: 1px solid var(--line); }
  .proof-grid p:last-child { border-bottom: 0; }
  .hero-actions .button { width: 100%; }
  .footer-grid { grid-template-columns: 1fr; }
  .footer-brand { grid-column: auto; }
  .footer-bottom { flex-direction: column; }
  .cookie-banner { left: 10px; right: 10px; }
}

@media (max-height: 560px) and (orientation: landscape) {
  .hero { min-height: 620px; }
  .journey-copy { padding-top: 80px; padding-bottom: 30px; justify-content: center; }
  .journey-copy h2 { font-size: 2.2rem; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .hero-slide { transform: none; }
}

/* Immersive journey layer */
.journey-hero { height: 185vh; position: relative; background: #07110b; color: var(--white); }
.journey-hero__stage { position: sticky; top: 0; min-height: 100svh; display: grid; align-items: end; overflow: hidden; }
.hero-scenes, .hero-scene { position: absolute; inset: 0; }
.hero-scene { background: var(--scene) center / cover no-repeat; opacity: 0; transform: scale(1.06); will-change: opacity, transform; }
.hero-scene:first-child { opacity: 1; }
.journey-hero .hero-overlay { background: linear-gradient(90deg,rgba(4,12,7,.9),rgba(4,12,7,.52) 52%,rgba(4,12,7,.12)),linear-gradient(0deg,rgba(4,12,7,.6),transparent 50%); }
.journey-hero .hero-content { width: min(100%, var(--shell)); padding-bottom: clamp(95px, 13vh, 145px); }
.journey-hero h1 { max-width: 940px; margin-bottom: 1.4rem; font-size: clamp(3.4rem, 8.4vw, 7.6rem); letter-spacing: -.05em; }
.journey-hero h1 em { display: block; color: #f1ca83; font-weight: 500; }
.hero-route { position: absolute; z-index: 3; right: clamp(28px,7vw,110px); top: 28%; width: 170px; height: 250px; opacity: .8; }
.hero-route span { position: absolute; inset: 0; border-right: 2px dashed rgba(255,255,255,.55); border-radius: 50%; transform: rotate(18deg); }
.hero-route i,.hero-route b { position: absolute; right: -7px; width: 15px; height: 15px; border: 3px solid #f0c675; border-radius: 50%; background: var(--forest); }
.hero-route i { top: 0; }.hero-route b { bottom: 0; }
.scroll-cue { position: absolute; z-index: 3; right: var(--gutter); bottom: 30px; display: flex; gap: .7rem; align-items: center; margin: 0; color: rgba(255,255,255,.7); font-size: 0.76rem; letter-spacing: .13em; text-transform: uppercase; }
.scroll-cue span { animation: cue-bounce 1.8s ease-in-out infinite; }
@keyframes cue-bounce { 50% { transform: translateY(6px); } }

.journey-window { height: 150vh; position: relative; background: #08130d; color: var(--white); }
.journey-window__stage { position: sticky; top: 0; min-height: 100svh; display: grid; place-items: center; overflow: hidden; }
.window-frame { --window-progress: 0; position: absolute; inset: calc(13vh * (1 - var(--window-progress))) calc(10vw * (1 - var(--window-progress))); overflow: hidden; border-radius: calc(54px * (1 - var(--window-progress))); box-shadow: 0 0 0 calc(18px * (1 - var(--window-progress))) #17221c,0 30px 90px rgba(0,0,0,.45); will-change: inset, border-radius; }
.window-frame img { width: 100%; height: 100%; object-fit: cover; transform: scale(calc(1.08 - (.08 * var(--window-progress)))); filter: brightness(.72); }
.window-edge { position: absolute; background: linear-gradient(#243229,#0b120e); opacity: calc(1 - var(--window-progress)); }
.window-edge--top { inset: 0 0 auto; height: 24px; }.window-edge--left { inset: 0 auto 0 0; width: 22px; }.window-edge--right { inset: 0 0 0 auto; width: 22px; }
.window-copy { position: relative; z-index: 2; text-align: center; opacity: calc(.25 + var(--window-progress)); transform: translateY(calc(32px * (1 - var(--window-progress)))); }
.window-copy h2 { max-width: 820px; margin: 0 auto 1rem; font-size: clamp(3rem,7vw,6.4rem); }
.window-copy > p:last-child { max-width: 620px; margin-inline: auto; color: rgba(255,255,255,.75); font-size: 1.1rem; }

.journey-progress { position: fixed; z-index: 700; left: 15px; top: 50%; display: grid; gap: 25px; transform: translateY(-50%); }
.journey-progress__line { position: absolute; z-index: -1; left: 6px; top: 7px; bottom: 7px; width: 1px; background: rgba(255,255,255,.3); box-shadow: 0 0 0 1px rgba(19,37,28,.15); }
.journey-progress__line i { display: block; width: 2px; height: 0; max-height: 100%; background: var(--saffron); transition: height .15s linear; }
.journey-progress a { position: relative; width: 13px; height: 13px; border: 2px solid rgba(255,255,255,.85); border-radius: 50%; background: var(--forest); }
.journey-progress a span { position: absolute; left: 20px; top: 50%; opacity: 0; transform: translate(-5px,-50%); padding: .25rem .5rem; border-radius: 6px; background: var(--forest); color: var(--white); font-size: 0.76rem; pointer-events: none; transition: .2s; }
.journey-progress a:hover span,.journey-progress a.is-active span { opacity: 1; transform: translate(0,-50%); }
.journey-progress a.is-active { border-color: var(--gold); background: var(--saffron); }

.signature-reveal { opacity: .34; transform: translateY(22px); transition: opacity .8s var(--ease),transform .8s var(--ease); }
.signature-reveal.is-visible { opacity: 1; transform: none; }
.destination-card h3 { transition: transform .45s var(--ease); }.destination-card:hover h3 { transform: translateY(-4px); }
.destination-card a::before { content: "⌖"; position: absolute; right: 22px; top: 22px; width: 34px; height: 34px; display: grid; place-items: center; border-radius: 50%; background: rgba(255,255,255,.14); opacity: 0; transform: scale(.7); transition: .35s var(--ease); }
.destination-card:hover a::before { opacity: 1; transform: scale(1); }

.tour-stack { display: grid; max-width: 1050px; margin-inline: auto; }
.tour-stack .tour-card { position: sticky; top: calc(var(--header-h) + 24px + var(--stack-index,0) * 10px); min-height: 510px; display: grid; grid-template-columns: 1.4fr 1fr; margin-bottom: 12vh; border: 1px solid rgba(255,255,255,.15); background: #f5eedf; box-shadow: 0 28px 80px rgba(0,0,0,.32); }
.tour-stack .tour-image { aspect-ratio: auto; min-height: 100%; }
.tour-stack .tour-body { display: flex; flex-direction: column; justify-content: center; padding: clamp(28px,5vw,58px); }
.tour-stack .tour-body h3 { font-size: clamp(2rem,4vw,3.7rem); }
.tour-stack .tour-actions { margin-top: auto; }
.tour-stack .tour-card:last-child { margin-bottom: 0; }

.travel-experience { background: #ede4d4; }
.experience-grid { display: grid; grid-template-columns: 1fr .65fr; gap: clamp(3rem,8vw,8rem); align-items: center; }
.experience-copy > p:not(.eyebrow) { max-width: 56ch; color: var(--muted); }
.route-note { display: grid; gap: .4rem; margin: 2rem 0; color: var(--saffron); letter-spacing: .12em; }
.route-note strong { color: var(--forest); font-size: 0.76rem; text-transform: uppercase; }
.video-frame small { display: block; margin: .8rem .4rem .2rem; color: rgba(255,255,255,.65); font-size: 0.76rem; }

.why-route { overflow: hidden; background: var(--paper); }
.memory-route { position: relative; display: grid; grid-template-columns: repeat(5,1fr); gap: 0; margin: 0; padding: 0; list-style: none; }
.memory-route::before,.memory-route::after { content: ""; position: absolute; left: 8%; right: 8%; top: 25px; height: 2px; }
.memory-route::before { background: rgba(19,37,28,.14); }.memory-route::after { right: auto; width: var(--route-width,0); max-width: 84%; background: var(--saffron); transition: width .2s linear; }
.memory-route li { position: relative; padding: 0 18px; text-align: center; }
.memory-route span { position: relative; z-index: 1; width: 52px; height: 52px; display: grid; place-items: center; margin: 0 auto 2rem; border: 2px solid var(--saffron); border-radius: 50%; background: var(--paper); color: var(--saffron); font-family: var(--display); font-weight: 700; }
.memory-route h3 { font-size: 1.3rem; }.memory-route p { color: var(--muted); font-size: 0.87rem; }

.help-choose { background: var(--forest); color: var(--white); }
.help-card { display: grid; grid-template-columns: 1.3fr .7fr; gap: 3rem; align-items: center; padding-block: clamp(40px,7vw,75px); }
.help-card h2 { max-width: 800px; }.help-card p:not(.eyebrow) { max-width: 62ch; color: rgba(255,255,255,.67); }
.help-actions { display: grid; gap: .8rem; }

.travel-companion { --companion-x: 0px; position: fixed; z-index: 760; right: clamp(18px,4vw,60px); bottom: 70px; width: 126px; opacity: 0; transform: translate3d(calc(40px + var(--companion-x)),20px,0); pointer-events: none; transition: opacity .45s,transform .65s var(--ease); }
.travel-companion img { width: 100%; filter: drop-shadow(0 15px 16px rgba(9,22,13,.28)); transform-origin: 50% 100%; }
.travel-companion.is-visible { opacity: 1; transform: translate3d(var(--companion-x),0,0); }
.travel-companion[data-state="walk"] img { animation: companion-step .7s ease-in-out infinite alternate; }
.travel-companion[data-state="wave"] img { animation: companion-wave 1.8s var(--ease) 1; }
.travel-companion[data-state="point-left"] { right: auto; left: clamp(18px,4vw,60px); }
.companion-bubble { position: absolute; right: 78%; bottom: 78%; width: max-content; max-width: 230px; padding: 10px 13px; border-radius: 15px 15px 4px 15px; background: var(--paper); color: var(--ink); box-shadow: 0 10px 35px rgba(0,0,0,.18); font-size: 0.81rem; font-weight: 650; opacity: 0; transform: translateY(7px); transition: .3s; }
.travel-companion.is-speaking .companion-bubble { opacity: 1; transform: none; }
.travel-companion[data-state="point-left"] .companion-bubble { right: auto; left: 78%; border-radius: 15px 15px 15px 4px; }
.asset-note { display: block; margin-top: -3px; text-align: center; color: rgba(19,37,28,.6); font-size: 0.76rem; text-transform: uppercase; letter-spacing: .08em; }
@keyframes companion-step { to { transform: translateY(-6px) rotate(1.5deg); } }
@keyframes companion-wave { 35% { transform: rotate(-4deg); } 65% { transform: rotate(3deg); } }

.planner-dialog { width: min(94vw,980px); max-height: min(92svh,820px); border: 0; border-radius: 28px; padding: 0; overflow: auto; background: var(--paper); color: var(--ink); box-shadow: 0 35px 120px rgba(0,0,0,.48); }
.planner-dialog::backdrop { background: rgba(4,13,8,.72); backdrop-filter: blur(7px); }
.planner-dialog > .dialog-close { z-index: 4; color: var(--white); background: rgba(255,255,255,.13); border-radius: 50%; }
.planner-layout { min-height: 650px; display: grid; grid-template-columns: .38fr .62fr; }
.planner-guide { display: flex; flex-direction: column; justify-content: flex-end; align-items: center; padding: 38px 24px; background: linear-gradient(160deg,#193527,#0f2118); color: var(--white); }
.planner-guide img { width: min(82%,220px); }.planner-guide p { min-height: 54px; margin: 18px 0 0; text-align: center; color: #f3d59e; font-family: var(--display); font-size: 1.25rem; }
.planner-panel { padding: clamp(30px,5vw,58px); }
.planner-panel > h2 { margin-bottom: 1.2rem; font-size: clamp(2rem,4vw,3.4rem); }
.planner-progress { height: 5px; overflow: hidden; border-radius: 99px; background: rgba(19,37,28,.1); }.planner-progress span { display: block; width: 20%; height: 100%; background: var(--saffron); transition: width .4s var(--ease); }
.planner-step-label { margin: .7rem 0 1.5rem; color: var(--muted); font-size: 0.76rem; text-transform: uppercase; letter-spacing: .12em; }
.planner-step { min-width: 0; margin: 0; padding: 0; border: 0; animation: planner-in .35s var(--ease); }.planner-step legend { width: 100%; margin-bottom: 1.5rem; font-family: var(--display); font-size: clamp(1.7rem,3vw,2.4rem); font-weight: 650; }
.planner-step > label:not(.choice-row),.planner-step .choice-row { display: grid; gap: .45rem; margin-bottom: 1rem; font-size: 0.83rem; font-weight: 700; }
.planner-step input:not([type="radio"]):not([type="checkbox"]) { width: 100%; min-height: 52px; border: 1px solid var(--line); border-radius: 12px; padding: .75rem .9rem; background: var(--white); }
.choice-row { grid-template-columns: auto 1fr; align-items: center; }.choice-row input { width: 18px; height: 18px; }
.choice-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 10px; }.choice-grid--two { grid-template-columns: 1fr 1fr; margin-bottom: 1rem; }
.choice-grid label { cursor: pointer; }.choice-grid input { position: absolute; opacity: 0; }.choice-grid span { min-height: 54px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 12px; background: var(--white); font-weight: 700; transition: .2s; }.choice-grid input:focus-visible + span { outline: 3px solid var(--gold); }.choice-grid input:checked + span { border-color: var(--saffron); background: rgba(233,120,47,.1); color: #a74916; }
.field-hint { color: var(--muted); font-size: 0.85rem; }.consent--dark { color: var(--muted); }
.planner-controls { min-height: 52px; display: flex; justify-content: flex-end; gap: .75rem; align-items: center; margin-top: 1.7rem; }.planner-controls .button-link { margin-right: auto; }
.planner-dialog .form-status { display: block; margin-top: 1rem; color: #a74916; }
.planner-success { text-align: center; padding-top: 40px; }.success-mark { width: 62px; height: 62px; display: grid; place-items: center; margin: 0 auto 1.2rem; border-radius: 50%; background: rgba(35,181,102,.14); color: #16844a; font-size: 2rem; }.planner-success h3 { font-size: 2.5rem; }.planner-success > p:not(.success-mark) { color: var(--muted); }.planner-success .button-link { display: block; margin: .8rem auto; }
@keyframes planner-in { from { opacity: 0; transform: translateX(12px); } }
body.dialog-open { overflow: hidden; }

.companion-nudge { text-align: center; }.companion-nudge > img { width: 82px; margin: -10px auto 8px; }.nudge-actions { display: grid; gap: .7rem; margin-top: 1.5rem; }
.mobile-actions button { border: 0; background: var(--saffron); color: var(--white); font-weight: 750; }

@media (max-width: 1050px) {
  .journey-progress { display: none; }
  .tour-stack .tour-card { grid-template-columns: 1.1fr 1fr; }
  .memory-route { grid-template-columns: 1fr; max-width: 650px; margin-inline: auto; }
  .memory-route::before,.memory-route::after { left: 25px; right: auto; top: 25px; bottom: 25px; width: 2px; height: auto; }.memory-route::after { height: var(--route-width,0); max-height: calc(100% - 50px); }
  .memory-route li { display: grid; grid-template-columns: 60px 1fr; text-align: left; padding: 0 0 32px; }.memory-route span { grid-row: span 2; margin: 0; }.memory-route h3,.memory-route p { margin-left: 18px; }
}

@media (max-width: 760px) {
  .journey-hero { height: 145vh; }.journey-hero__stage { min-height: 100svh; }.journey-hero .hero-content { padding-bottom: 105px; }.journey-hero h1 { font-size: clamp(3rem,15vw,5rem); }.hero-route { display: none; }.scroll-cue { left: var(--gutter); right: auto; }
  .journey-window { height: 120vh; }.window-frame { inset: calc(9vh * (1 - var(--window-progress))) calc(7vw * (1 - var(--window-progress))); }.window-copy { padding-inline: 24px; }.window-copy h2 { font-size: clamp(2.8rem,14vw,4.6rem); }
  .tour-stack .tour-card { position: relative; top: auto; min-height: 0; grid-template-columns: 1fr; margin-bottom: 22px; }.tour-stack .tour-image { min-height: 300px; aspect-ratio: 16/11; }.tour-stack .tour-body { padding: 25px; }.tour-stack .tour-actions { margin-top: 1.2rem; }
  .experience-grid,.help-card { grid-template-columns: 1fr; }.experience-grid { gap: 2.5rem; }.help-card { padding-block: 20px; }
  .travel-companion { width: 72px; right: 10px; bottom: calc(68px + env(safe-area-inset-bottom)); }.travel-companion[data-state="point-left"] { left: auto; right: 10px; }.companion-bubble,.travel-companion[data-state="point-left"] .companion-bubble { right: 65%; left: auto; bottom: 82%; max-width: 190px; font-size: 0.76rem; border-radius: 13px 13px 4px 13px; }.asset-note { display: none; }
  .planner-dialog { width: 100%; max-width: none; max-height: 94svh; margin: auto 0 0; border-radius: 24px 24px 0 0; }.planner-layout { min-height: 0; grid-template-columns: 1fr; }.planner-guide { min-height: 120px; display: grid; grid-template-columns: 80px 1fr; justify-items: center; padding: 18px 52px 12px 18px; }.planner-guide img { width: 72px; max-height: 95px; }.planner-guide p { min-height: 0; margin: 0; text-align: left; font-size: 1rem; }.planner-panel { padding: 24px 20px calc(30px + env(safe-area-inset-bottom)); }.planner-panel > h2 { font-size: 2rem; }.choice-grid { grid-template-columns: 1fr 1fr; }
  .mobile-actions button { border-right: 0; }
}

@media (prefers-reduced-motion: reduce) {
  .journey-hero { height: 100svh; }.journey-hero__stage,.journey-window__stage { position: relative; }.hero-scene:not(:first-child) { display: none; }.journey-window { height: auto; min-height: 85svh; }.window-frame { inset: 0; border-radius: 0; box-shadow: none; }.window-frame img { transform: none; }.window-edge { display: none; }.travel-companion img { animation: none !important; }.tour-stack .tour-card { position: relative; top: auto; }.scroll-cue { display: none; }
}

/* Detail pages */
.detail-page { padding-top: var(--header-h); }
.detail-loading, .detail-error { min-height: 70vh; display: grid; place-items: center; padding: 80px var(--gutter); }
.detail-error .shell { text-align: center; }
.detail-error h1 { font-size: clamp(2.5rem, 7vw, 5rem); }
.detail-error p { color: var(--muted); }
.detail-hero { min-height: 76svh; display: grid; align-items: end; position: relative; color: var(--white); background: var(--detail-image) center / cover no-repeat; }
.detail-hero-shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(5,14,8,.9), rgba(5,14,8,.45) 62%, rgba(5,14,8,.08)), linear-gradient(0deg,rgba(5,14,8,.55),transparent 50%); }
.detail-hero-copy { position: relative; z-index: 1; padding-top: 110px; padding-bottom: clamp(70px, 10vw, 120px); }
.detail-back { display: flex; width: fit-content; margin-bottom: 2.2rem; color: rgba(255,255,255,.78); font-weight: 700; font-size: 0.91rem; }
.detail-hero h1 { max-width: 900px; margin-bottom: 1rem; font-size: clamp(3rem, 8vw, 7rem); }
.detail-hero-copy > p:not(.eyebrow) { max-width: 650px; color: rgba(255,255,255,.78); font-size: clamp(1rem, 2vw, 1.22rem); }
.detail-hero--compact { min-height: 58svh; }
.detail-hero--compact .detail-hero-copy { padding-bottom: clamp(44px, 6vw, 72px); }
.detail-hero-copy > p.detail-hero-points { margin: -.2rem 0 1.4rem; color: rgba(255,255,255,.92); font-size: 0.95rem; font-weight: 600; }
.detail-hero-points span { margin-right: .4rem; color: #f1c77d; font-size: 0.74rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.detail-facts { background: var(--paper); border-bottom: 1px solid var(--line); }
.detail-facts-grid { display: grid; grid-template-columns: repeat(3, 1fr); }
.detail-facts-grid > div { display: grid; gap: .2rem; padding: 24px; border-right: 1px solid var(--line); }
.detail-facts-grid > div:last-child { border-right: 0; }
.detail-facts-grid span { color: var(--muted); font-size: 0.76rem; text-transform: uppercase; letter-spacing: .12em; }
.detail-two-col { display: grid; grid-template-columns: 1.25fr .75fr; gap: clamp(2.5rem, 8vw, 8rem); align-items: start; }
.detail-two-col h2 { margin-bottom: 1.2rem; }
.detail-two-col > div > p:not(.eyebrow) { color: var(--muted); font-size: 1.05rem; }
.detail-two-col h3 { margin: 2rem 0 1rem; }
.detail-list { display: grid; gap: .65rem; margin: 0; padding: 0; list-style: none; }
.detail-list li { position: relative; padding-left: 1.8rem; }
.detail-list li::before { content: "✓"; position: absolute; left: 0; color: var(--saffron); font-weight: 900; }
.detail-aside { padding: 28px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--paper); box-shadow: var(--shadow); }
.detail-aside h3:first-child { margin-top: 0; }
.detail-aside p { color: var(--muted); }
.detail-inclusions { background: #ece4d5; }
.detail-feature-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 1px; margin: 0; padding: 1px; list-style: none; background: rgba(19,37,28,.2); }
.detail-feature-grid li { min-height: 160px; display: flex; align-items: end; padding: 22px; background: #ece4d5; font-family: var(--display); font-size: 1.2rem; font-weight: 650; }
.detail-itinerary .detail-two-col { align-items: center; }
.detail-itinerary .button { justify-self: end; }
.related-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 18px; }
.related-grid a { display: block; padding-bottom: 18px; border-bottom: 1px solid var(--line-light); }
.related-grid img { width: 100%; aspect-ratio: 16/10; object-fit: cover; border-radius: 18px; margin-bottom: 16px; }
.related-grid span { color: var(--gold); font-size: 0.76rem; text-transform: uppercase; letter-spacing: .12em; font-weight: 700; }
.related-grid h3 { margin: .4rem 0 0; color: var(--white); }

@media (max-width: 760px) {
  .detail-hero { min-height: 680px; }
  .detail-hero--compact { min-height: 560px; }
  .detail-hero-shade { background: linear-gradient(0deg,rgba(5,14,8,.94),rgba(5,14,8,.2) 80%); }
  .detail-facts-grid { grid-template-columns: 1fr; }
  .detail-facts-grid > div { border-right: 0; border-bottom: 1px solid var(--line); }
  .detail-two-col { grid-template-columns: 1fr; }
  .detail-feature-grid { grid-template-columns: 1fr 1fr; }
  .detail-feature-grid li { min-height: 120px; }
  .detail-itinerary .button { justify-self: start; }
  .related-grid { grid-template-columns: 1fr; }
}

/* Shared mobile production pass for information and journey detail pages. */
@media (max-width: 600px) {
  .content-page,.detail-page { overflow-x: clip; }
  .content-page .site-header,.detail-page .site-header { height: 68px; }
  .content-page .nav-wrap,.detail-page .nav-wrap { min-width: 0; }
  .content-page .brand,.detail-page .brand { min-width: 0; }
  .content-page .brand img,.detail-page .brand img { width: min(48vw, 174px); height: auto; }
  /* the old full-screen dropdown here is superseded by the shared drawer */
  .content-page .mobile-nav nav,.detail-page .mobile-nav nav { gap: 0; }
  .content-page .mobile-nav a:not(.button),.detail-page .mobile-nav a:not(.button) { min-height: 50px; display: flex; align-items: center; padding: 10px 4px; }
  .content-page .mobile-nav .button,.detail-page .mobile-nav .button { min-height: 52px; }

  .content-article > header { padding-block: 62px; }
  .content-article > header h1 { font-size: clamp(2.65rem, 13vw, 3.65rem); }
  .content-article > header p:last-child { font-size: 1rem; }
  .content-page .prose { padding-top: 50px; padding-bottom: 68px; }
  .content-page .prose h2 { margin-top: 2rem; font-size: 1.75rem; }
  .content-page .prose p,.content-page .prose li { font-size: 0.98rem; line-height: 1.72; }
  .content-page .site-footer { padding: 30px 0 calc(24px + env(safe-area-inset-bottom)); }
  .content-page .footer-bottom { min-height: 44px; flex-direction: row; align-items: center; }
  .content-page .footer-bottom a { min-height: 44px; display: inline-flex; align-items: center; }

  .detail-page { padding-bottom: calc(78px + env(safe-area-inset-bottom)); }
  .detail-hero { min-height: 640px; }
  .detail-hero--compact { min-height: 540px; }
  .detail-hero--compact .detail-hero-copy { padding-bottom: 40px; }
  .detail-hero-copy { padding-top: 100px; padding-bottom: 62px; }
  .detail-back { min-height: 44px; align-items: center; margin-bottom: 1.2rem; }
  .detail-hero h1 { font-size: clamp(3rem, 15vw, 4.15rem); }
  .detail-hero-copy > p:not(.eyebrow) { font-size: 0.98rem; line-height: 1.62; }
  .detail-hero .hero-actions { gap: 8px; }
  .detail-hero .hero-actions .button { min-height: 50px; }
  .detail-facts-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .detail-facts-grid > div { min-width: 0; min-height: 92px; padding: 16px 10px; border-right: 1px solid var(--line); border-bottom: 0; }
  .detail-facts-grid span { font-size: 0.76rem; letter-spacing: .08em; }
  .detail-facts-grid strong { overflow-wrap: anywhere; font-size: 0.78rem; line-height: 1.35; }
  .detail-page .section { padding-block: 66px; }
  .detail-two-col { min-width: 0; gap: 34px; }
  .detail-two-col h2,.detail-inclusions .section-heading h2 { font-size: clamp(2.15rem, 11vw, 3rem); }
  .detail-two-col > div > p:not(.eyebrow) { font-size: 1rem; }
  .detail-aside { min-width: 0; padding: 22px; border-radius: 20px; }
  .detail-feature-grid { grid-template-columns: repeat(2,minmax(0,1fr)); width: 100%; min-width: 0; }
  .detail-feature-grid li { min-width: 0; min-height: 108px; padding: 15px; overflow-wrap: anywhere; font-size: 1rem; }
  .detail-itinerary .button { width: 100%; min-height: 50px; }
  .related { overflow: hidden; }
  .related .section-heading { margin-bottom: 25px; }
  .related-grid {
    display: flex; gap: 12px; overflow-x: auto; scroll-snap-type: x mandatory;
    margin-inline: calc(-1 * var(--gutter)); padding: 2px var(--gutter) 18px;
    scrollbar-width: none; overscroll-behavior-inline: contain; -webkit-overflow-scrolling: touch;
  }
  .related-grid::-webkit-scrollbar { display: none; }
  .related-grid a { flex: 0 0 min(82vw,330px); scroll-snap-align: start; }
  .related-grid img { margin-bottom: 12px; border-radius: 15px; }
  .plan-grid { min-width: 0; gap: 28px; }
  .planner-form { min-width: 0; padding: 18px 16px; border-radius: 20px; }
  .form-grid { min-width: 0; gap: 14px; }
  .form-grid input,.form-grid select,.form-grid textarea { min-width: 0; min-height: 52px; font-size: 16px; }
  .consent { min-height: 44px; }
  .form-actions .button { width: 100%; min-height: 50px; }
  .detail-page .site-footer { padding: 28px 0 calc(102px + env(safe-area-inset-bottom)); }
  .detail-page .footer-bottom { min-height: 44px; flex-direction: row; align-items: center; }
  .detail-page .footer-bottom a { min-height: 44px; display: inline-flex; align-items: center; }
  .detail-page .mobile-actions {
    left: 8px; right: 8px; bottom: max(8px,env(safe-area-inset-bottom));
    min-height: 64px; padding: 5px; gap: 4px; border: 1px solid var(--line); border-radius: 20px;
    background: rgba(255,253,248,.96); box-shadow: 0 18px 50px rgba(10,31,22,.2); overflow: hidden;
  }
  .detail-page .mobile-actions a { min-width: 0; min-height: 52px; border: 0; border-radius: 15px; font-size: 0.81rem; }
}

/* Scroll-driven journey experience */
:root {
  --batasari-orange: #ff751f;
  --batasari-green-dark: #008037;
  --batasari-green-light: #66cc33;
  --batasari-blue: #5cb7e2;
  --journey-road-width: 38px;
  --journey-bus-size: 138px;
  --journey-section-gap: clamp(88px, 12vw, 168px);
  --journey-transition-duration: 420ms;
  --saffron: var(--batasari-orange);
}

.sr-only { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0,0,0,0) !important; white-space: nowrap !important; border: 0 !important; }
.journey-experience { position: relative; isolation: isolate; }
.journey-section { --stage-progress: 0; position: relative; overflow: clip; }
.journey-section > .shell { position: relative; z-index: 3; }

.journey-road { position: absolute; z-index: 1; inset: 0; width: 100%; height: 100%; pointer-events: none; overflow: visible; }
.journey-road path { fill: none; stroke-linecap: round; stroke-linejoin: round; vector-effect: non-scaling-stroke; }
.journey-road__edge { stroke: rgba(25,34,29,.16); stroke-width: calc(var(--journey-road-width) + 10px); }
.journey-road__surface { stroke: #787d79; stroke-width: var(--journey-road-width); }
.journey-road__marking { stroke: rgba(255,255,255,.78); stroke-width: 2px; stroke-dasharray: 12 15; }
.section--forest .journey-road__edge,.help-choose .journey-road__edge { stroke: rgba(0,0,0,.25); }
.section--forest .journey-road__surface,.help-choose .journey-road__surface { stroke: #35423a; }

.journey-bus-controller { position: fixed; z-index: 2; left: 0; top: 0; width: var(--journey-bus-size); aspect-ratio: 1; opacity: 0; pointer-events: none; transform: translate3d(var(--bus-x,50vw),var(--bus-y,70vh),0) rotate(var(--bus-rotation,0deg)) scale(var(--bus-scale,.84)); transform-origin: 0 0; transition: opacity .3s ease, filter var(--journey-transition-duration) ease; will-change: transform; }
.journey-bus-controller.is-visible { opacity: 1; }
.journey-bus-controller img { position: relative; z-index: 2; width: 100%; height: 100%; object-fit: contain; transform: translate(-50%,-50%); filter: drop-shadow(0 10px 9px rgba(7,20,11,.28)); }
.journey-bus-shadow { position: absolute; left: -32%; top: -12%; width: 64%; height: 26%; border-radius: 50%; background: rgba(5,14,8,.18); filter: blur(8px); transform: rotate(14deg); }
.journey-debug { position: fixed; z-index: 1400; right: 12px; top: 90px; width: 230px; padding: 11px 13px; border-radius: 10px; background: rgba(5,15,9,.9); color: #d7f2df; font: 12px/1.55 ui-monospace, monospace; white-space: pre-line; pointer-events: none; }

.journey-hero { height: 165vh; }
.journey-hero__stage { isolation: isolate; }
.journey-hero .hero-overlay { background: linear-gradient(90deg,rgba(4,12,7,.92),rgba(4,12,7,.6) 48%,rgba(4,12,7,.16)),linear-gradient(0deg,rgba(4,12,7,.62),transparent 50%); }
.journey-hero .hero-content { z-index: 5; align-self: end; }
.journey-hero h1 { max-width: 850px; }
.journey-hero .hero-lead { max-width: 620px; }
.journey-road--hero { z-index: 2; top: 32%; height: 82%; opacity: .7; }
.hero-bus { position: absolute; z-index: 4; right: -4vw; bottom: -6vh; width: min(58vw,850px); height: auto; max-width: none; transform: translate3d(calc(var(--stage-progress) * 14vw),calc(var(--stage-progress) * -8vh),0) scale(calc(1 - var(--stage-progress) * .16)); transform-origin: center; filter: drop-shadow(0 24px 24px rgba(0,0,0,.3)); will-change: transform; }

.traveller-choice,.mood-choice,.responsibility,.memories { padding-block: var(--journey-section-gap); min-height: 105svh; }
.choice-layout { display: grid; grid-template-columns: .78fr 1.22fr; gap: clamp(48px,8vw,110px); align-items: center; min-height: 72svh; }
.choice-layout .section-heading { margin: 0; padding: clamp(22px,3vw,40px); border-radius: 24px; background: rgba(255,253,248,.92); box-shadow: 0 20px 70px rgba(15,31,21,.08); }
.mood-choice .choice-layout .section-heading { background: rgba(19,37,28,.9); }
.road-signs { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; margin: 0; padding: 0; border: 0; }
.road-signs label { cursor: pointer; }
.road-signs label:last-child { grid-column: 1 / -1; width: calc(50% - 7px); justify-self: center; }
.road-signs input,.mood-orbit input { position: absolute; opacity: 0; pointer-events: none; }
.road-signs span { position: relative; min-height: 112px; display: flex; flex-direction: column; justify-content: center; padding: 22px 28px; border: 1px solid rgba(19,37,28,.18); border-radius: 7px 22px 22px 7px; background: var(--paper); box-shadow: 0 14px 40px rgba(16,32,23,.09); transition: transform .25s var(--ease),background .25s,border-color .25s; }
.road-signs span::before { content: ""; position: absolute; left: -12px; top: calc(50% - 11px); width: 22px; height: 22px; background: inherit; border-left: 1px solid rgba(19,37,28,.18); border-bottom: 1px solid rgba(19,37,28,.18); transform: rotate(45deg); }
.road-signs b { font-family: var(--display); font-size: 1.45rem; }
.road-signs small { color: var(--muted); }
.road-signs input:focus-visible + span,.mood-orbit input:focus-visible + span { outline: 3px solid var(--gold); outline-offset: 4px; }
.road-signs input:checked + span { color: var(--white); border-color: var(--batasari-green-dark); background: var(--batasari-green-dark); transform: translateX(9px); }
.road-signs input:checked + span small { color: rgba(255,255,255,.72); }

.mood-orbit { display: flex; flex-wrap: wrap; justify-content: center; gap: 13px; margin: 0; padding: 0; border: 0; }
.mood-orbit label { cursor: pointer; }
.mood-orbit span { min-height: 58px; display: grid; place-items: center; padding: .7rem 1.3rem; border: 1px solid rgba(255,255,255,.22); border-radius: 999px; background: rgba(255,255,255,.06); color: rgba(255,255,255,.82); font-weight: 700; transition: .25s var(--ease); }
.mood-orbit input:checked + span { border-color: var(--batasari-orange); background: var(--batasari-orange); color: var(--white); transform: translateY(-5px); box-shadow: 0 12px 30px rgba(255,117,31,.28); }
.choice-confirmation { grid-column: 2; margin: 8px 0 0; color: #f2cf90; text-align: center; font-family: var(--display); font-size: 1.08rem; }

.destinations { min-height: 120svh; }
.destinations .split-heading,.destinations .destination-grid,.destinations .section-action { position: relative; z-index: 2; }
.destinations .split-heading > div { padding: 22px; border-radius: 18px; background: rgba(247,242,232,.92); }

.responsibility { background: #eee7da; }
.responsibility h2 em { color: var(--batasari-green-dark); font-weight: 500; }
.responsibility-stage { min-height: 75svh; display: grid; align-content: center; }
.handoff { --handoff-progress: 0; position: relative; display: grid; grid-template-columns: 1fr .8fr 1fr; gap: clamp(25px,5vw,80px); align-items: center; min-height: 380px; }
.handoff-card { min-height: 260px; display: flex; flex-direction: column; justify-content: space-between; padding: clamp(24px,4vw,42px); border-radius: 28px; background: var(--paper); box-shadow: var(--shadow); }
.handoff-card p { margin: 0; color: var(--muted); font-size: 0.76rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.handoff-card h3 { font-size: clamp(2rem,4vw,3.5rem); }
.handoff-card--batasari { background: var(--forest); color: var(--white); }
.handoff-card--batasari img { width: 190px; filter: brightness(0) invert(1); }
.handoff-card--batasari p { color: #f3cd88; }
.bag-mark { color: var(--batasari-orange); font-size: 2.2rem; }
.responsibility-tokens { position: relative; z-index: 2; display: grid; gap: 9px; }
.responsibility-tokens span { --token-progress: clamp(0,calc(var(--handoff-progress) * 1.7 - var(--i) * .08),1); display: block; padding: 8px 12px; border-radius: 999px; background: var(--white); color: var(--forest); box-shadow: 0 6px 18px rgba(16,32,23,.12); text-align: center; font-size: 0.77rem; font-weight: 800; transform: translate3d(calc(var(--token-progress) * 12vw - 6vw),0,0); opacity: calc(.55 + var(--token-progress) * .45); will-change: transform; }

.journey-window { height: 145vh; }
.journey-window .window-copy { z-index: 4; align-content: center; }
.journey-window .window-copy h2 { max-width: 690px; }
.handled-list { display: flex; flex-wrap: wrap; gap: 10px; margin: 1.5rem 0 0; padding: 0; list-style: none; }
.handled-list li { padding: .55rem .8rem; border: 1px solid rgba(255,255,255,.3); border-radius: 999px; background: rgba(8,20,12,.32); color: var(--white); font-size: 0.83rem; font-weight: 750; backdrop-filter: blur(8px); }
.handled-list span { color: #8be05e; }

.tours { min-height: 120svh; }
.tours .tour-card { z-index: 3; }
.tour-stack .tour-card { background: #f8f3e9; }
.tour-stack .tour-body > p { max-width: 56ch; }
.route-itinerary { position: relative; z-index: 3; margin-top: 16vh; padding: clamp(28px,5vw,60px); border: 1px solid rgba(255,255,255,.16); border-radius: 28px; background: rgba(255,255,255,.05); }
.route-itinerary h3 { max-width: 750px; font-size: clamp(2rem,4vw,3.7rem); }
.route-itinerary ol { display: grid; grid-template-columns: repeat(5,1fr); gap: 0; margin: 3rem 0 0; padding: 0; list-style: none; }
.route-itinerary li { position: relative; display: grid; gap: 4px; padding: 28px 16px 0 0; border-top: 2px solid rgba(255,255,255,.22); }
.route-itinerary li::before { content: ""; position: absolute; top: -7px; left: 0; width: 12px; height: 12px; border: 2px solid var(--batasari-orange); border-radius: 50%; background: var(--forest); }
.route-itinerary span { color: #f1c77d; font-size: 0.76rem; letter-spacing: .12em; }
.route-itinerary b { font-family: var(--display); font-size: 1.1rem; }
.route-itinerary small { color: rgba(255,255,255,.58); }

.memories { background: #f6efe2; }
.memories .section-heading { padding: 25px; border-radius: 22px; background: rgba(246,239,226,.92); }
.memory-film { display: grid; grid-template-columns: repeat(3,1fr); gap: clamp(16px,3vw,32px); align-items: start; }
.memory-film figure { margin: 0; padding: 12px 12px 24px; background: var(--paper); box-shadow: 0 20px 55px rgba(29,36,31,.13); transform: rotate(var(--tilt)); }
.memory-film figure:nth-child(1) { --tilt: -2.2deg; margin-top: 40px; }
.memory-film figure:nth-child(2) { --tilt: 1.5deg; }
.memory-film figure:nth-child(3) { --tilt: -1deg; margin-top: 68px; }
.memory-film img { width: 100%; height: auto; aspect-ratio: 4/3; object-fit: cover; }
.memory-film figcaption { padding: 18px 8px 0; font-family: var(--display); font-size: 1.18rem; }

.help-choose { min-height: 88svh; display: grid; align-items: center; }
.help-card { position: relative; z-index: 3; }
.help-card > div:first-child { padding: 28px; border-radius: 22px; background: rgba(19,37,28,.9); }
.destination-finale { min-height: 92svh; display: grid; align-items: center; position: relative; background: url('/assets/homepage/hero-konkan-road.webp') center/cover no-repeat; }
.finale-shade { position: absolute; inset: 0; background: linear-gradient(90deg,rgba(5,16,9,.94),rgba(5,16,9,.62) 55%,rgba(5,16,9,.25)); }
.destination-finale .contact-grid { position: relative; z-index: 2; align-items: center; }
.destination-finale .contact-list { background: rgba(255,255,255,.22); }
.destination-finale .contact-list > * { background: rgba(13,35,21,.86); backdrop-filter: blur(8px); }

.planner-guide { overflow: hidden; }
.planner-guide img { width: 135%; max-width: none; margin: auto -18% 0; filter: drop-shadow(0 18px 18px rgba(0,0,0,.28)); }
.companion-nudge > img { width: 160px; height: 92px; object-fit: contain; margin: -15px auto 5px; }

@media (max-width: 1024px) {
  :root { --journey-road-width: 30px; --journey-bus-size: 104px; }
  .choice-layout { grid-template-columns: 1fr; }
  .choice-confirmation { grid-column: 1; }
  .handoff { grid-template-columns: 1fr .55fr 1fr; }
  .route-itinerary ol { grid-template-columns: 1fr; }
  .route-itinerary li { min-height: 95px; padding: 0 0 22px 28px; border-top: 0; border-left: 2px solid rgba(255,255,255,.22); }
  .route-itinerary li::before { top: 0; left: -7px; }
}

@media (max-width: 767px) {
  :root { --journey-road-width: 22px; --journey-bus-size: 76px; --journey-section-gap: 82px; }
  .journey-hero { height: 135vh; }
  .journey-hero .hero-content { padding-bottom: 155px; }
  .journey-hero h1 { font-size: clamp(3rem,14vw,4.8rem); }
  .hero-bus { right: -38vw; bottom: -8vh; width: 105vw; }
  .journey-road--hero { top: 56%; }
  .journey-road__edge { stroke-width: calc(var(--journey-road-width) + 6px); }
  .traveller-choice,.mood-choice,.responsibility,.memories { min-height: 0; }
  .choice-layout { min-height: 0; gap: 35px; }
  .choice-layout .section-heading { margin-right: 52px; padding: 20px; }
  .road-signs { grid-template-columns: 1fr; margin-left: 28px; }
  .road-signs label:last-child { grid-column: 1; width: 100%; }
  .road-signs span { min-height: 86px; padding: 16px 20px; }
  .mood-orbit { justify-content: flex-start; margin-left: 22px; }
  .mood-orbit span { min-height: 50px; padding: .55rem .9rem; }
  .choice-confirmation { margin-left: 22px; text-align: left; }
  .destinations .split-heading > div { margin-right: 40px; }
  .destination-grid { position: relative; z-index: 3; }
  .handoff { grid-template-columns: 1fr; gap: 14px; padding-left: 32px; }
  .handoff-card { min-height: 190px; }
  .responsibility-tokens { order: 2; grid-template-columns: 1fr 1fr; }
  .responsibility-tokens span { transform: none; }
  .handoff-card--batasari { order: 3; }
  .journey-window { height: 115vh; }
  .handled-list { max-width: 260px; }
  .route-itinerary { margin-top: 80px; }
  .memory-film { grid-template-columns: 1fr; padding-left: 34px; }
  .memory-film figure:nth-child(n) { margin-top: 0; }
  .help-card > div:first-child { margin-right: 35px; }
  .destination-finale { min-height: 780px; padding-block: 90px; }
  .finale-shade { background: linear-gradient(0deg,rgba(5,16,9,.96),rgba(5,16,9,.43)); }
  .planner-guide img { width: 128px; margin: -25px 0 -30px; }
}

@media (prefers-reduced-motion: reduce) {
  .journey-section { --stage-progress: 0 !important; }
  .journey-bus-controller { transition: opacity .2s ease; }
  .hero-bus { transform: none; }
  .responsibility-tokens span { transform: none; }
  .mood-orbit input:checked + span,.road-signs input:checked + span { transform: none; }
  .memory-film figure { transform: none; }
}

/* smooth custom cursor (shared across pages) */
.bat-cursor, .bat-cursor-dot { position: fixed; top: 0; left: 0; z-index: 9999; pointer-events: none; border-radius: 50%; transform: translate(-50%,-50%); }
.bat-cursor { width: 30px; height: 30px; border: 1.5px solid rgba(21,59,46,.5); transition: width .22s ease, height .22s ease, background .22s, border-color .22s, opacity .3s; }
.bat-cursor.is-hover { width: 50px; height: 50px; background: rgba(233,120,47,.14); border-color: #e9782f; }
.bat-cursor.is-dark { border-color: rgba(255,255,255,.72); }
.bat-cursor-dot { width: 6px; height: 6px; background: #e9782f; }
body.bat-cursor-on, body.bat-cursor-on a, body.bat-cursor-on button, body.bat-cursor-on input, body.bat-cursor-on select, body.bat-cursor-on textarea, body.bat-cursor-on label, body.bat-cursor-on [role="button"] { cursor: none; }
@media (hover:none),(pointer:coarse){ .bat-cursor,.bat-cursor-dot{display:none!important} body.bat-cursor-on{cursor:auto} }
@media (prefers-reduced-motion:reduce){ .bat-cursor,.bat-cursor-dot{display:none!important} body.bat-cursor-on{cursor:auto} }

/* =========================================================
   Mobile navigation — left drawer (was a dropdown below the header).
   Slides in from the left, closes on backdrop tap, Escape, or a left swipe.
   ========================================================= */
@media (max-width: 1180px) {
  .mobile-nav {
    position: fixed; top: 0; left: 0; bottom: 0; z-index: 1000;
    width: min(84vw, 340px); max-width: 340px;
    display: flex; flex-direction: column; justify-content: flex-start;
    padding: calc(84px + env(safe-area-inset-top)) 24px calc(28px + env(safe-area-inset-bottom));
    border-top: 0; border-right: 1px solid var(--line);
    background: var(--ivory); color: var(--ink);
    box-shadow: 18px 0 60px rgba(10, 25, 18, .28);
    overflow-y: auto; -webkit-overflow-scrolling: touch;
    transform: translateX(-101%); visibility: hidden;
    transition: transform .34s cubic-bezier(.4, 0, .2, 1), visibility 0s linear .34s; }

  .mobile-nav.is-open {
    transform: none; visibility: visible;
    transition: transform .34s cubic-bezier(.4, 0, .2, 1), visibility 0s; }

  .mobile-nav a:not(.button) { padding: 15px 2px; font-size: 1.02rem; }
  .mobile-nav .button { margin-top: 20px; width: 100%; min-height: 52px; }

  .nav-backdrop {
    position: fixed; inset: 0; z-index: 999;
    background: rgba(8, 20, 15, .5);
    -webkit-backdrop-filter: blur(2px); backdrop-filter: blur(2px);
    opacity: 0; visibility: hidden;
    transition: opacity .34s ease, visibility 0s linear .34s; }
  .nav-backdrop.is-open { opacity: 1; visibility: visible; transition: opacity .34s ease, visibility 0s; }
}

@media (prefers-reduced-motion: reduce) {
  .mobile-nav, .nav-backdrop { transition: none !important; }
}

/* =========================================================
   Drawer stacking + menu button placement
   The home header sets z-index:var(--z-nav) (20), which makes it a stacking
   context. #mobileNav lives inside it, so its z-index:1000 is scoped to that
   context and the body-level backdrop (999) painted straight over the open
   drawer — the screen dimmed but no link was clickable. Lifting the header
   while the menu is open puts the whole subtree above the backdrop.
   ========================================================= */
body.menu-open .site-header { z-index: 998; pointer-events: none; }
body.menu-open .site-header .brand,
body.menu-open .site-header .nav-actions { opacity: 0; }

@media (max-width: 1180px) {
  /* menu button on the left, matching the side the drawer opens from */
  .site-header .nav-wrap { gap: 10px; }
  .site-header .nav-actions { order: -1; flex: 0 0 auto; }
  .site-header .brand { order: 0; margin-inline: auto; }
  /* balances the button so the wordmark sits optically centred */
  .site-header .nav-wrap::after { content: ""; order: 1; flex: 0 0 48px; }
}

/* =========================================================
   Drawer refinement — narrower, translucent, styled rows
   ========================================================= */
@media (max-width: 1180px) {
  .mobile-nav {
    z-index: 1002;
    width: min(84vw, 340px);
    padding: max(10px, env(safe-area-inset-top)) 14px calc(18px + env(safe-area-inset-bottom));
    border-right: 1px solid rgba(21, 59, 46, .1);
    border-radius: 0 20px 20px 0;
    background: rgba(255, 253, 248, .88);
    -webkit-backdrop-filter: blur(26px) saturate(150%);
    backdrop-filter: blur(26px) saturate(150%);
    box-shadow: 22px 0 64px rgba(10, 25, 18, .26);
    scrollbar-width: none; }
  .mobile-nav::-webkit-scrollbar { display: none; }

  .mobile-nav__head {
    min-height: 58px; display: grid; grid-template-columns: 44px minmax(0, 1fr);
    align-items: center; gap: 12px; margin-bottom: 7px; padding: 0 6px 9px;
    border-bottom: 1px solid rgba(21, 59, 46, .09); }
  .mobile-nav__head img {
    width: min(100%, 174px); max-height: 48px; object-fit: contain;
    object-position: left center; filter: none !important; }
  .mobile-nav__close {
    width: 44px; height: 44px; display: grid; place-items: center;
    border: 1px solid rgba(21, 59, 46, .13); border-radius: 50%;
    background: rgba(255,255,255,.72); color: var(--brand-primary); cursor: pointer;
    -webkit-tap-highlight-color: transparent; }
  .mobile-nav__close:active { background: rgba(244, 119, 33, .13); transform: scale(.96); }

  /* rows: pill targets with a chevron, instead of hairline-separated text */
  .mobile-nav nav { display: grid; gap: 1px; }
  .mobile-nav a:not(.button) {
    display: flex; align-items: center; justify-content: space-between;
    min-height: 46px; padding: 0 12px;
    border: 0; border-radius: 12px;
    font-family: var(--home-display); font-size: 1.01rem; font-weight: 600;
    color: var(--brand-primary); text-decoration: none;
    transition: background .2s ease, color .2s ease; }
  .mobile-nav a:not(.button)::after {
    content: ""; width: 7px; height: 7px; margin-right: 2px;
    border-right: 2px solid currentColor; border-bottom: 2px solid currentColor;
    border-radius: 1px; opacity: .28; transform: rotate(-45deg);
    transition: transform .2s ease, opacity .2s ease; }
  .mobile-nav a:not(.button):active {
    background: rgba(244, 119, 33, .12); color: var(--brand-orange); }
  .mobile-nav a:not(.button):active::after { opacity: .95; transform: translateX(3px) rotate(-45deg); }

  .mobile-nav .button {
    width: 100%; min-height: 50px; margin-top: 18px; border-radius: 14px; font-size: 1.01rem; }

  /* softer scrim — the drawer supplies its own blur */
  .nav-backdrop { background: rgba(8, 20, 15, .42); }
}

/* drawer footer — contact actions pinned to the base */
@media (max-width: 1180px) {
  .mobile-nav__foot {
    margin-top: auto; padding-top: 16px;
    border-top: 1px solid rgba(21, 59, 46, .1);
    display: grid; gap: 2px; }
  /* footer links are not nav rows — no chevron, left aligned */
  .mobile-nav__foot a::after { content: none !important; }
  .mobile-nav__foot a:not(.button) {
    display: flex; align-items: center; justify-content: flex-start; gap: 10px;
    min-height: 42px; padding: 0 12px; border-radius: 11px;
    color: var(--brand-primary); text-decoration: none;
    font-family: var(--home-body); font-size: 0.89rem; font-weight: 600;
    transition: background .2s ease, color .2s ease; }
  .mobile-nav__foot a svg { flex: 0 0 auto; opacity: .62; }
  .mobile-nav__foot a:active { background: rgba(21, 59, 46, .07); }
  .mobile-nav__foot a:active svg { opacity: 1; }
}

/* content pages — back control */
.content-back {
  display: flex; width: fit-content; align-items: center; gap: 7px;
  min-height: 44px; margin-bottom: 6px; padding-right: 10px;
  color: var(--forest); font-family: var(--display); font-size: 0.91rem; font-weight: 700;
  text-decoration: none; opacity: .78; transition: opacity .2s ease, transform .2s ease; }
.content-back svg { flex: 0 0 auto; }
.content-back:hover { opacity: 1; }
.content-back:active { transform: translateX(-2px); }
