/* Layout concept: boarding-pass travel desk — full-bleed photo heroes, cards with a perforated "ticket stub" carrying route codes and fares. */
/* Layout concept: boarding-pass travel desk in the SVS brand — petrol teal, ink black and silver from the logo; Didone display type echoing the "SVS" lettering; the logo's broken orbit ring as the recurring motif. */
:root {
  --bg: #F2F5F6;
  --surface: #FFFFFF;
  --surface-2: #E6ECEE;
  --ink: #0F3A48;
  --muted: #4A6570;
  --line: #D2DADD;
  --deep: #0F4354;
  --deep-ink: #FFFFFF;
  --accent: #157F96;
  --accent-ink: #FFFFFF;
  --accent-soft: #D9ECF0;
  --accent-bright: #5CC8DD;
  --silver: #CFD4D6;
  --night: #0A2B35;
  --ok: #1B7A57;
  --no: #B4432F;
  --shadow: 0 1px 2px rgba(15,58,72,.06), 0 10px 28px rgba(15,67,84,.10);
  --f-display: "Cormorant Garamond", "Cormorant", Garamond, "Times New Roman", serif;
  --f-body: "Jost", "Futura", "Avenir Next", "Segoe UI", system-ui, sans-serif;
  --f-mono: "Jost", "Futura", "Avenir Next", system-ui, sans-serif;
  --r: 14px;
  --wrap: 1200px;
  --gutter-l: max(16px, env(safe-area-inset-left, 0px));
  --gutter-r: max(16px, env(safe-area-inset-right, 0px));
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --bg: #070C0E; --surface: #0E191E; --surface-2: #14252C; --ink: #E8EEF0; --muted: #9AA9AE;
    --line: #20323A; --deep: #0F4354; --deep-ink: #F2F6F7; --accent: #4FC0D8; --accent-ink: #03161C;
    --accent-soft: #0E3340; --accent-bright: #7FD8EA; --silver: #8E9A9F; --night: #040708; --ok: #5FC48E; --no: #F08A74;
    --shadow: 0 1px 2px rgba(0,0,0,.3), 0 10px 28px rgba(0,0,0,.4);
    color-scheme: dark;
  }
}
:root[data-theme="dark"] {
  --bg: #070C0E; --surface: #0E191E; --surface-2: #14252C; --ink: #E8EEF0; --muted: #9AA9AE;
  --line: #20323A; --deep: #0F4354; --deep-ink: #F2F6F7; --accent: #4FC0D8; --accent-ink: #03161C;
  --accent-soft: #0E3340; --accent-bright: #7FD8EA; --silver: #8E9A9F; --night: #040708; --ok: #5FC48E; --no: #F08A74;
  --shadow: 0 1px 2px rgba(0,0,0,.3), 0 10px 28px rgba(0,0,0,.4);
  color-scheme: dark;
}

*, *::before, *::after { box-sizing: border-box; }
[hidden] { display: none !important; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--bg); color: var(--ink); font: 300 16.5px/1.65 var(--f-body); -webkit-font-smoothing: antialiased; overflow-x: hidden; }
img { max-width: 100%; display: block; }
a { color: inherit; }
h1, h2, h3, h4 { font-family: var(--f-display); line-height: 1.05; margin: 0; text-wrap: balance; letter-spacing: -0.015em; font-optical-sizing: auto; }
h1 em, h2 em { font-style: italic; font-weight: 500; color: var(--accent); }
.hero h1 em, .page-hero h1 em, .band h2 em, .mapband h2 em { color: var(--accent-bright); }
h1 { font-size: clamp(2.4rem, 5.8vw, 4.6rem); font-weight: 700; }
h2 { font-size: clamp(1.6rem, 3.2vw, 2.4rem); font-weight: 700; }
h3 { font-size: 1.28rem; font-weight: 700; }
p { margin: 0; }
button, input, select, textarea { font: inherit; color: inherit; }
:focus-visible { outline: 3px solid var(--accent); outline-offset: 2px; border-radius: 6px; }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; } }

.wrap { max-width: var(--wrap); margin: 0 auto; padding-left: var(--gutter-l); padding-right: var(--gutter-r); }
.eyebrow { display: inline-flex; align-items: center; gap: 9px; font: 500 .74rem/1 var(--f-mono); letter-spacing: .16em; text-transform: uppercase; color: var(--muted); }
.eyebrow::before { content: ""; width: 11px; height: 11px; flex: 0 0 11px; border-radius: 50%; border: 2px solid var(--accent); border-right-color: transparent; transform: rotate(-35deg); }
.mono { font-family: var(--f-mono); }
.muted { color: var(--muted); }
.section { padding-block: clamp(48px, 7vw, 88px); }
.section-head { display: flex; justify-content: space-between; align-items: end; gap: 16px; flex-wrap: wrap; margin-bottom: 28px; }
.section-head p { max-width: 60ch; color: var(--muted); margin-top: 8px; }
.link-arrow { font-weight: 600; text-decoration: none; border-bottom: 2px solid var(--accent); padding-bottom: 2px; white-space: nowrap; }

/* ---------- buttons ---------- */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; border: 0; border-radius: 999px; padding: 12px 22px; font-weight: 600; text-decoration: none; cursor: pointer; transition: transform .15s ease, background .15s; }
.btn:hover { transform: translateY(-1px); }
.btn-accent { background: var(--accent); color: var(--accent-ink); }
.btn-deep { background: var(--deep); color: var(--deep-ink); }
.btn-ghost { background: transparent; border: 1.5px solid var(--line); color: var(--ink); }
.btn-ghost:hover { border-color: var(--ink); }
.btn-block { width: 100%; }
.btn svg { width: 18px; height: 18px; }

/* ---------- header ---------- */
body::before { content: ""; position: fixed; inset: 0 0 auto; height: env(safe-area-inset-top, 0px); z-index: 60; background: var(--surface); }
.site-header { position: sticky; top: env(safe-area-inset-top, 0px); z-index: 50; background: color-mix(in srgb, var(--surface) 92%, transparent); backdrop-filter: blur(10px); border-bottom: 1px solid var(--line); }
.site-header .wrap { display: flex; align-items: center; gap: 20px; height: 68px; }
.logo { display: flex; align-items: center; gap: 10px; text-decoration: none; }
.logo-mark { width: 38px; height: 38px; border-radius: 10px; background: var(--deep); color: var(--accent); display: grid; place-items: center; font: 700 .9rem var(--f-mono); letter-spacing: .04em; }
.logo-text { line-height: 1.05; }
.logo-text b { font: 700 1.15rem var(--f-display); display: block; }
.logo-text small { font-size: .68rem; color: var(--muted); letter-spacing: .04em; }
.nav { display: flex; gap: 4px; margin-left: auto; }
.nav a { text-decoration: none; padding: 8px 12px; border-radius: 999px; font-weight: 500; font-size: .95rem; color: var(--muted); }
.nav a:hover { color: var(--ink); background: var(--surface-2); }
.nav a.active { color: var(--ink); background: var(--accent-soft); }
.head-tools { display: flex; align-items: center; gap: 6px; }
.icon-btn { position: relative; width: 40px; height: 40px; border-radius: 999px; border: 1px solid var(--line); background: var(--surface); display: grid; place-items: center; cursor: pointer; text-decoration: none; }
.icon-btn svg { width: 19px; height: 19px; }
.badge { position: absolute; top: -4px; right: -4px; min-width: 18px; height: 18px; border-radius: 9px; background: var(--accent); color: var(--accent-ink); font: 700 .68rem/18px var(--f-mono); text-align: center; padding: 0 4px; }
.menu-btn { display: none; }
@media (max-width: 960px) {
  .menu-btn { display: grid; }
  .nav { position: fixed; top: calc(68px + env(safe-area-inset-top, 0px)); left: 0; right: 0; flex-direction: column; gap: 0; background: var(--surface); border-bottom: 1px solid var(--line); padding: 8px var(--gutter-r) 16px var(--gutter-l); box-shadow: var(--shadow); display: none; }
  .nav.open { display: flex; }
  .nav a { padding: 12px; border-radius: 10px; }
  .head-tools { margin-left: auto; }
}

/* ---------- image fallback ---------- */
.ph { background: radial-gradient(circle at 75% 30%, color-mix(in srgb, var(--deep) 70%, var(--accent-bright)), var(--deep) 55%, var(--night)); position: relative; overflow: hidden; }
.ph img { width: 100%; height: 100%; object-fit: cover; }
.ph.noimg img { display: none; }
.ph.noimg::after { content: attr(data-label); position: absolute; inset: auto 14px 12px; color: #fff; font: 600 .8rem var(--f-mono); letter-spacing: .1em; text-transform: uppercase; opacity: .8; }

/* ---------- hero ---------- */
.hero { position: relative; color: #fff; isolation: isolate; }
.hero .ph { position: absolute; inset: 0; z-index: -2; }
.hero::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(7,12,14,.30) 0%, rgba(10,40,50,.55) 50%, rgba(7,12,14,.90) 100%); }
.hero .wrap { padding-block: clamp(72px, 12vw, 140px) clamp(40px, 6vw, 64px); }
.hero h1 { max-width: 15ch; }
.hero .lede { max-width: 56ch; font-size: 1.12rem; margin-top: 16px; color: rgba(255,255,255,.88); }
.hero .eyebrow { color: rgba(255,255,255,.75); margin-bottom: 14px; }

.search { margin-top: 32px; background: var(--surface); color: var(--ink); border-radius: 18px; padding: 10px; box-shadow: var(--shadow); max-width: 760px; }
.seg { display: inline-flex; background: var(--surface-2); border-radius: 999px; padding: 4px; gap: 2px; }
.seg button { border: 0; background: transparent; padding: 8px 16px; border-radius: 999px; cursor: pointer; font-weight: 600; font-size: .9rem; color: var(--muted); }
.seg button[aria-pressed="true"] { background: var(--surface); color: var(--ink); box-shadow: 0 1px 3px rgba(0,0,0,.12); }
.search-row { display: flex; gap: 8px; margin-top: 10px; flex-wrap: wrap; }
.search-row input { flex: 1 1 260px; min-width: 0; border: 1px solid var(--line); background: var(--bg); border-radius: 12px; padding: 13px 16px; }
.search-row .btn { flex: 0 0 auto; }
.hero-stats { display: flex; gap: clamp(20px, 5vw, 56px); margin-top: 36px; flex-wrap: wrap; }
.hero-stats b { display: block; font: 700 1.8rem var(--f-display); }
.hero-stats span { font-size: .85rem; color: rgba(255,255,255,.75); }

.page-hero .wrap { padding-block: clamp(72px, 10vw, 120px) 36px; }
.page-hero h1 { font-size: clamp(2rem, 5vw, 3.6rem); max-width: 18ch; }
.crumbs { font-size: .85rem; margin-bottom: 14px; color: rgba(255,255,255,.8); }
.crumbs a { text-decoration: none; }
.crumbs a:hover { text-decoration: underline; }
.facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 1px; background: rgba(255,255,255,.18); border-radius: 12px; overflow: hidden; margin-top: 28px; max-width: 820px; }
.facts div { background: rgba(7,20,25,.55); padding: 12px 16px; backdrop-filter: blur(6px); }
.facts dt { font: 600 .68rem var(--f-mono); letter-spacing: .12em; text-transform: uppercase; color: rgba(255,255,255,.7); }
.facts dd { margin: 4px 0 0; font-weight: 600; }

/* ---------- grids & cards ---------- */
.grid { display: grid; gap: 22px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 270px), 1fr)); }
.grid-dest { grid-template-columns: repeat(auto-fill, minmax(min(100%, 240px), 1fr)); }

.dcard { position: relative; border-radius: var(--r); overflow: hidden; aspect-ratio: 4/5; max-width: 100%; color: #fff; text-decoration: none; display: block; box-shadow: var(--shadow); }
.dcard .ph { position: absolute; inset: 0; }
.dcard img { transition: transform .6s ease; }
.dcard:hover img { transform: scale(1.05); }
.dcard::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 35%, rgba(7,12,14,.9)); }
.dcard .dc-body { position: absolute; inset: auto 0 0; padding: 18px; z-index: 1; }
.dcard .code { position: absolute; top: 14px; left: 14px; z-index: 1; font: 700 .75rem var(--f-mono); letter-spacing: .1em; background: rgba(255,255,255,.92); color: #0F4354; padding: 4px 8px; border-radius: 6px; }
.dcard h3 { font-size: 1.45rem; }
.dcard .dc-meta { font-size: .85rem; color: rgba(255,255,255,.85); margin-top: 4px; }
.dcard .dc-price { margin-top: 10px; display: inline-flex; gap: 6px; align-items: baseline; font-size: .85rem; background: var(--accent); color: var(--accent-ink); padding: 4px 10px; border-radius: 999px; font-weight: 600; }

.pcard { position: relative; background: var(--surface); border-radius: var(--r); overflow: hidden; box-shadow: var(--shadow); display: flex; flex-direction: column; min-width: 0; transition: transform .2s ease; }
.pcard:hover { transform: translateY(-3px); }
.pcard .ph { aspect-ratio: 16/10; max-width: 100%; }
.pcard .pc-body { padding: 16px 18px 14px; display: flex; flex-direction: column; gap: 8px; flex: 1; }
.pcard h3 a { text-decoration: none; }
.pcard h3 a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.pcard .route { font-size: .88rem; color: var(--muted); }
.chips { display: flex; flex-wrap: wrap; gap: 6px; }
.chip { font-size: .72rem; font-weight: 600; letter-spacing: .02em; padding: 3px 9px; border-radius: 999px; background: var(--surface-2); color: var(--muted); }
.chip-lt { background: rgba(255,255,255,.18); color: #fff; }
.pcard .tag-type { position: absolute; top: 12px; left: 12px; font: 700 .68rem var(--f-mono); letter-spacing: .1em; text-transform: uppercase; background: var(--surface); color: var(--ink); padding: 4px 8px; border-radius: 6px; }
.heart { position: absolute; top: 10px; right: 10px; z-index: 2; width: 38px; height: 38px; border-radius: 999px; border: 0; background: rgba(255,255,255,.92); color: #0F4354; display: grid; place-items: center; cursor: pointer; }
.heart svg { width: 18px; height: 18px; }
.heart[aria-pressed="true"] { color: #157F96; }
.heart[aria-pressed="true"] svg { fill: currentColor; }

/* ticket stub */
.stub { position: relative; display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 12px; padding: 14px 18px; border-top: 2px dashed var(--line); background: var(--surface); }
.stub::before, .stub::after { content: ""; position: absolute; top: -10px; width: 18px; height: 18px; border-radius: 50%; background: var(--bg); }
.stub::before { left: -9px; } .stub::after { right: -9px; }
.stub .legs { font: 600 .8rem var(--f-mono); letter-spacing: .06em; color: var(--muted); display: flex; gap: 6px; align-items: center; flex-wrap: wrap; }
.stub .legs b { color: var(--ink); font-size: .95rem; }
.stub .fare { text-align: right; line-height: 1.15; }
.stub .fare small { display: block; font-size: .7rem; color: var(--muted); }
.stub .fare b { font: 700 1.3rem var(--f-display); font-variant-numeric: tabular-nums; }

.scroller { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(280px, 340px); gap: 22px; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 12px; }
.scroller > * { scroll-snap-align: start; }

/* ---------- region blocks ---------- */
.region { padding-block: 28px; border-top: 1px solid var(--line); }
.region:first-of-type { border-top: 0; }
.region-head { display: flex; align-items: baseline; gap: 14px; flex-wrap: wrap; margin-bottom: 18px; }
.region-head p { color: var(--muted); }

/* ---------- themes ---------- */
.themes { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 170px), 1fr)); gap: 12px; }
.theme-tile { display: flex; justify-content: space-between; align-items: center; gap: 8px; padding: 18px; border: 1px solid var(--line); border-radius: 12px; text-decoration: none; background: var(--surface); font-weight: 600; }
.theme-tile:hover { border-color: var(--accent); }
.theme-tile span { font: 600 .8rem var(--f-mono); color: var(--muted); }

/* ---------- steps ---------- */
.band { background: var(--deep); color: var(--deep-ink); }
.band .eyebrow, .band .muted { color: color-mix(in srgb, var(--deep-ink) 70%, transparent); }
.steps { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); gap: 28px; counter-reset: step; }
.step { border-top: 1px solid color-mix(in srgb, var(--deep-ink) 25%, transparent); padding-top: 18px; }
.step::before { counter-increment: step; content: "0" counter(step); display: block; font: italic 500 2.6rem/1 var(--f-display); color: var(--accent-bright); }
.step h3 { margin: 8px 0 6px; }
.step p { color: color-mix(in srgb, var(--deep-ink) 75%, transparent); font-size: .95rem; }

.cta { display: grid; grid-template-columns: 1.4fr 1fr; gap: 28px; align-items: center; background: var(--surface); border: 1px solid var(--line); border-radius: 20px; padding: clamp(24px, 4vw, 44px); }
.cta .actions { display: flex; gap: 10px; flex-wrap: wrap; justify-content: flex-end; }
@media (max-width: 760px) { .cta { grid-template-columns: 1fr; } .cta .actions { justify-content: flex-start; } }

/* ---------- listing ---------- */
.listing { display: grid; grid-template-columns: 270px 1fr; gap: 32px; align-items: start; }
.filters { position: sticky; top: calc(84px + env(safe-area-inset-top, 0px)); background: var(--surface); border: 1px solid var(--line); border-radius: var(--r); padding: 18px; display: grid; gap: 18px; }
.filters fieldset { border: 0; padding: 0; margin: 0; display: grid; gap: 8px; }
.filters legend { font: 600 .72rem var(--f-mono); letter-spacing: .12em; text-transform: uppercase; color: var(--muted); margin-bottom: 8px; }
.filters label { display: flex; align-items: center; gap: 8px; font-size: .95rem; cursor: pointer; }
.filters select, .field input:not([type="checkbox"]):not([type="radio"]), .field select, .field textarea { width: 100%; border: 1px solid var(--line); background: var(--bg); border-radius: 10px; padding: 10px 12px; }
.filters input[type="range"] { width: 100%; accent-color: var(--accent); }
.filters input[type="checkbox"], .filters input[type="radio"] { accent-color: var(--deep); width: 16px; height: 16px; }
.results-bar { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 18px; }
.empty { padding: 40px; text-align: center; border: 1px dashed var(--line); border-radius: var(--r); color: var(--muted); }
.filters-toggle { display: none; }
@media (max-width: 900px) {
  .listing { grid-template-columns: 1fr; }
  .filters { position: static; }
  .filters-toggle { display: inline-flex; }
  .filters.collapsed { display: none; }
}

/* ---------- package detail ---------- */
.gallery { display: grid; grid-template-columns: 2fr 1fr 1fr; grid-template-rows: 220px 220px; gap: 8px; border-radius: var(--r); overflow: hidden; margin-top: 24px; }
.gallery button { border: 0; padding: 0; cursor: zoom-in; min-width: 0; }
.gallery button:first-child { grid-row: span 2; }
.gallery .ph { width: 100%; height: 100%; }
@media (max-width: 760px) { .gallery { grid-template-columns: 1fr 1fr; grid-template-rows: 220px 120px; } .gallery button:first-child { grid-column: span 2; grid-row: auto; } .gallery button:nth-child(n+4) { display: none; } }

.pkg-head { padding-top: 28px; }
.pkg-head .codeline { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; font: 600 .8rem var(--f-mono); letter-spacing: .08em; color: var(--muted); }
.pkg-head .codeline .pnr { background: var(--accent-soft); color: var(--ink); padding: 4px 8px; border-radius: 6px; }
.pkg-head h1 { font-size: clamp(1.9rem, 4.4vw, 3.1rem); margin-top: 10px; }
.pkg-head .route { margin-top: 8px; color: var(--muted); font-size: 1.05rem; }
.keyline { display: flex; gap: 10px 22px; flex-wrap: wrap; margin-top: 16px; font-size: .92rem; }
.keyline span { display: inline-flex; gap: 6px; align-items: center; }
.keyline svg { width: 17px; height: 17px; color: var(--accent); }

.pkg-body { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 40px; align-items: start; padding-block: 32px 72px; }
@media (max-width: 980px) { .pkg-body { grid-template-columns: 1fr; } }
.block { padding-block: 28px; border-top: 1px solid var(--line); }
.block:first-child { border-top: 0; padding-top: 0; }
.block > h2 { font-size: 1.5rem; margin-bottom: 16px; }
.hl-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 230px), 1fr)); gap: 10px; list-style: none; padding: 0; margin: 0; }
.hl-list li { display: flex; gap: 10px; align-items: flex-start; padding: 12px 14px; background: var(--surface); border-radius: 10px; border: 1px solid var(--line); font-size: .95rem; }
.hl-list li::before { content: ""; flex: 0 0 8px; height: 8px; border-radius: 50%; background: var(--accent); margin-top: 8px; }

.days { position: relative; display: grid; gap: 0; }
.day { display: grid; grid-template-columns: 64px 1fr; gap: 16px; position: relative; }
.day::before { content: ""; position: absolute; left: 31px; top: 0; bottom: 0; width: 2px; background: var(--line); }
.day:first-child::before { top: 22px; } .day:last-child::before { bottom: calc(100% - 22px); }
.day-num { position: relative; z-index: 1; width: 64px; text-align: center; }
.day-num span { display: inline-block; background: var(--deep); color: var(--deep-ink); font: 700 .72rem var(--f-mono); letter-spacing: .06em; padding: 6px 8px; border-radius: 8px; margin-top: 10px; }
.day details { padding-block: 8px 14px; border-bottom: 1px solid var(--line); min-width: 0; }
.day summary { cursor: pointer; list-style: none; display: flex; justify-content: space-between; gap: 12px; align-items: center; padding-block: 8px; font: 650 1.05rem var(--f-display); }
.day summary::-webkit-details-marker { display: none; }
.day summary::after { content: "+"; font: 400 1.4rem var(--f-mono); color: var(--muted); }
.day details[open] summary::after { content: "–"; }
.day details p { color: var(--muted); max-width: 65ch; }

.incexc { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
@media (max-width: 700px) { .incexc { grid-template-columns: 1fr; } }
.incexc > div { background: var(--surface); border: 1px solid var(--line); border-radius: var(--r); padding: 18px; }
.incexc h3 { margin-bottom: 12px; display: flex; gap: 8px; align-items: center; }
.incexc ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 9px; }
.incexc li { display: grid; grid-template-columns: 20px 1fr; gap: 8px; font-size: .94rem; }
.incexc li svg { width: 18px; height: 18px; margin-top: 3px; }
.inc li svg { color: var(--ok); } .exc li svg { color: var(--no); }

.good ul { padding-left: 18px; margin: 0; display: grid; gap: 6px; color: var(--muted); font-size: .95rem; }

.quote { position: sticky; top: calc(88px + env(safe-area-inset-top, 0px)); background: var(--surface); border: 1px solid var(--line); border-radius: 18px; box-shadow: var(--shadow); overflow: hidden; }
.quote-top { background: var(--deep); color: var(--deep-ink); padding: 18px 20px; }
.quote-top small { font: 600 .7rem var(--f-mono); letter-spacing: .12em; text-transform: uppercase; opacity: .75; }
.quote-top .big { font: 700 2rem var(--f-display); font-variant-numeric: tabular-nums; }
.quote-top .per { font-size: .85rem; opacity: .8; }
.quote form { padding: 18px 20px 20px; display: grid; gap: 12px; }
.field { display: grid; gap: 4px; }
.field label { font: 600 .7rem var(--f-mono); letter-spacing: .1em; text-transform: uppercase; color: var(--muted); }
.row2 { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.total { display: flex; justify-content: space-between; align-items: baseline; padding: 12px 0 4px; border-top: 2px dashed var(--line); }
.total b { font: 700 1.4rem var(--f-display); font-variant-numeric: tabular-nums; }
.fine { font-size: .78rem; color: var(--muted); }

/* ---------- forms / pages ---------- */
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 18px; }
.form-grid .full { grid-column: 1 / -1; }
@media (max-width: 640px) { .form-grid { grid-template-columns: 1fr; } }
.checks { display: flex; flex-wrap: wrap; gap: 8px; }
.checks label { display: inline-flex; gap: 6px; align-items: center; border: 1px solid var(--line); border-radius: 999px; padding: 6px 12px; cursor: pointer; font-size: .9rem; background: var(--surface); }
.checks input { accent-color: var(--deep); flex: 0 0 auto; }
/* checkboxes and radios keep their native size everywhere (iOS Safari otherwise stretches them like text boxes) */
input[type="checkbox"], input[type="radio"] { width: 18px; height: 18px; min-width: 18px; margin: 0; padding: 0; flex: 0 0 auto; accent-color: var(--deep); }
:root[data-theme="dark"] input[type="checkbox"], :root[data-theme="dark"] input[type="radio"] { accent-color: var(--accent-bright); }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) input[type="checkbox"], :root:not([data-theme="light"]) input[type="radio"] { accent-color: var(--accent-bright); } }
.panel { background: var(--surface); border: 1px solid var(--line); border-radius: 18px; padding: clamp(20px, 3vw, 32px); }
.two-col { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: 32px; align-items: start; }
@media (max-width: 900px) { .two-col { grid-template-columns: 1fr; } }
.out { white-space: pre-wrap; font: .85rem/1.5 var(--f-mono); background: var(--surface-2); border-radius: 12px; padding: 14px; max-height: 320px; overflow: auto; }
.prose p + p { margin-top: 12px; }
.prose { max-width: 68ch; }
.list-plain { list-style: none; padding: 0; margin: 0; display: grid; gap: 14px; }
.contact-line { display: grid; gap: 2px; }
.contact-line b { font: 600 .72rem var(--f-mono); letter-spacing: .12em; text-transform: uppercase; color: var(--muted); }

/* ---------- lightbox / toast ---------- */
.lightbox { position: fixed; inset: 0; z-index: 100; background: rgba(4,8,10,.94); display: grid; place-items: center; padding: 24px; }
.lightbox img { max-height: 86vh; border-radius: 10px; }
.lightbox button { position: absolute; top: calc(16px + env(safe-area-inset-top, 0px)); right: calc(16px + env(safe-area-inset-right, 0px)); }
.toast { position: fixed; left: 50%; bottom: calc(24px + env(safe-area-inset-bottom, 0px)); transform: translateX(-50%); z-index: 110; background: var(--ink); color: var(--bg); padding: 10px 18px; border-radius: 999px; font-weight: 600; box-shadow: var(--shadow); }

.wa-float { position: fixed; right: calc(18px + env(safe-area-inset-right, 0px)); bottom: calc(18px + env(safe-area-inset-bottom, 0px)); z-index: 40; width: 56px; height: 56px; border-radius: 50%; background: #1FA855; color: #fff; display: grid; place-items: center; box-shadow: 0 6px 20px rgba(0,0,0,.25); }
.wa-float svg { width: 28px; height: 28px; }

/* ---------- footer ---------- */
.site-footer { background: var(--night); color: var(--deep-ink); padding-block: 56px 28px; margin-top: 40px; }
.site-footer .cols { display: grid; grid-template-columns: 1.4fr repeat(3, 1fr); gap: 32px; }
@media (max-width: 800px) { .site-footer .cols { grid-template-columns: 1fr 1fr; } }
@media (max-width: 480px) { .site-footer .cols { grid-template-columns: 1fr; } }
.site-footer h4 { font: 500 .72rem var(--f-mono); letter-spacing: .16em; text-transform: uppercase; margin-bottom: 14px; color: var(--accent-bright); }
.site-footer ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 8px; }
.site-footer a { text-decoration: none; color: color-mix(in srgb, var(--deep-ink) 82%, transparent); }
.site-footer a:hover { color: var(--deep-ink); }
.site-footer .logo-mark { background: var(--accent); color: var(--accent-ink); }
.site-footer .logo-text small { color: color-mix(in srgb, var(--deep-ink) 70%, transparent); }
.footnote { margin-top: 40px; padding-top: 20px; border-top: 1px solid color-mix(in srgb, var(--deep-ink) 18%, transparent); display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; font-size: .82rem; color: color-mix(in srgb, var(--deep-ink) 65%, transparent); }
@media (max-width: 420px) { .logo-text small { display: none; } }

/* ---------- destination map ---------- */
:root { --map-bg: #0F4354; --map-dot: #2F6B7C; --map-ink: #F2F6F7; --pin-out: #FFFFFF; --pin-in: #5CC8DD; --pin-near: #AEB8BC; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) { --map-bg: #0A2D39; --map-dot: #245766; } }
:root[data-theme="dark"] { --map-bg: #0A2D39; --map-dot: #245766; }
.mapband { background: var(--map-bg); color: var(--map-ink); padding-block: clamp(36px, 5vw, 64px); }
.mapband .eyebrow { color: color-mix(in srgb, var(--map-ink) 65%, transparent); }
.map-top { display: flex; justify-content: space-between; align-items: end; gap: 18px; flex-wrap: wrap; margin-bottom: 20px; }
.map-top h2 { margin-top: 8px; }
.map-top p { color: color-mix(in srgb, var(--map-ink) 75%, transparent); margin-top: 8px; max-width: 54ch; }
.mapband .seg { background: rgba(255,255,255,.08); }
.mapband .seg button { color: color-mix(in srgb, var(--map-ink) 70%, transparent); }
.mapband .seg button[aria-pressed="true"] { background: var(--map-ink); color: #0F4354; }
.legend { display: flex; gap: 8px 18px; flex-wrap: wrap; font-size: .85rem; margin-top: 14px; color: color-mix(in srgb, var(--map-ink) 80%, transparent); }
.legend span { display: inline-flex; align-items: center; gap: 7px; }
.legend i { width: 11px; height: 11px; border-radius: 50%; display: inline-block; }
.map-layout { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 24px; align-items: start; }
@media (max-width: 980px) { .map-layout { grid-template-columns: 1fr; } }
.map-frame { position: relative; min-width: 0; }
.map-frame svg { width: 100%; height: auto; display: block; overflow: visible; }
.map-frame.india svg { max-height: 640px; }
.map-dots { stroke: var(--map-dot); stroke-linecap: round; fill: none; }
.map-arc { fill: none; stroke: var(--pin-in); stroke-width: 2; stroke-dasharray: 5 6; opacity: .9; }
.map-arc.draw { animation: arcdash 1.2s linear infinite; }
@keyframes arcdash { to { stroke-dashoffset: -22; } }
.pin { cursor: pointer; outline: none; }
.pin .hit { fill: transparent; }
.pin .core { stroke: var(--map-bg); stroke-width: 2; transition: r .15s; }
.pin.out .core { fill: var(--pin-out); }
.pin.in .core { fill: var(--pin-in); }
.pin.near .core { fill: var(--pin-near); }
.pin .ring { fill: none; stroke-width: 2; opacity: 0; }
.pin.out .ring { stroke: var(--pin-out); } .pin.in .ring { stroke: var(--pin-in); } .pin.near .ring { stroke: var(--pin-near); }
.pin .lbl { fill: var(--map-ink); font: 600 13px var(--f-body); paint-order: stroke; stroke: var(--map-bg); stroke-width: 4px; stroke-linejoin: round; opacity: 0; pointer-events: none; transition: opacity .15s; }
.pin:hover .lbl, .pin:focus-visible .lbl, .pin.sel .lbl { opacity: 1; }
.pin:focus-visible .ring, .pin:hover .ring { opacity: .6; }
.pin.sel .ring { opacity: 1; animation: pulse 1.8s ease-out infinite; transform-box: fill-box; transform-origin: center; }
@keyframes pulse { 0% { transform: scale(.6); opacity: 1; } 100% { transform: scale(1.8); opacity: 0; } }
.pin.india-pin .core { fill: var(--pin-in); }
.pin.india-pin .lbl { opacity: 1; }
.home-mark circle { fill: none; stroke: var(--map-ink); stroke-width: 2; }
.home-mark text { fill: var(--map-ink); font: 700 11px var(--f-mono); letter-spacing: .08em; paint-order: stroke; stroke: var(--map-bg); stroke-width: 4px; }
.map-panel { background: var(--surface); color: var(--ink); border-radius: 16px; overflow: hidden; box-shadow: 0 10px 30px rgba(0,0,0,.25); }
.map-panel .ph { aspect-ratio: 16/9; max-width: 100%; }
.mp-body { padding: 16px 18px 18px; display: grid; gap: 10px; }
.mp-body .codeline { font: 600 .72rem var(--f-mono); letter-spacing: .1em; color: var(--muted); text-transform: uppercase; }
.mp-body h3 { font-size: 1.5rem; }
.mp-list { list-style: none; margin: 4px 0 0; padding: 0; display: grid; gap: 8px; }
.mp-list a { display: grid; grid-template-columns: 1fr auto; gap: 2px 10px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 10px; text-decoration: none; transition: border-color .15s; }
.mp-list a:hover { border-color: var(--accent); }
.mp-list b { font-weight: 600; font-size: .95rem; }
.mp-list small { color: var(--muted); font: 500 .75rem var(--f-mono); }
.mp-list .p { grid-row: span 2; align-self: center; font: 700 1rem var(--f-display); font-variant-numeric: tabular-nums; }
.map-chips { display: flex; gap: 8px; overflow-x: auto; padding: 16px 0 4px; scrollbar-width: thin; }
.map-chips button { flex: 0 0 auto; border: 1px solid rgba(255,255,255,.22); background: transparent; color: var(--map-ink); border-radius: 999px; padding: 7px 14px; font-size: .88rem; cursor: pointer; }
.map-chips button[aria-pressed="true"] { background: var(--map-ink); border-color: var(--map-ink); color: #0F4354; font-weight: 600; }

/* ---------- brand logo ---------- */
.logo-badge { display: inline-flex; align-items: center; background: #FFFFFF; border-radius: 10px; padding: 3px 6px; line-height: 0; }
.logo-badge img { height: 50px; width: auto; }
.site-footer .logo-badge { padding: 8px 12px; border-radius: 12px; }
.site-footer .logo-badge img { height: 72px; }
@media (max-width: 420px) { .site-header .logo-badge img { height: 44px; } }

/* ---------- brand motif: broken orbit ring (from the logo globe) ---------- */
.hero, .page-hero, .band, .mapband, .site-footer { position: relative; overflow: hidden; }
.orbit { position: absolute; pointer-events: none; color: var(--accent-bright); opacity: .5; z-index: -1; }
.orbit svg { width: 100%; height: 100%; animation: spin 90s linear infinite; }
.hero .orbit { width: min(680px, 80vw); aspect-ratio: 1; right: -12%; top: 6%; }
.band .orbit, .site-footer .orbit { z-index: 0; width: 520px; aspect-ratio: 1; right: -180px; top: -160px; opacity: .14; color: var(--deep-ink); }
.band .wrap, .site-footer .wrap { position: relative; z-index: 1; }
@keyframes spin { to { transform: rotate(360deg); } }
.hero .eyebrow::before, .page-hero .eyebrow::before, .band .eyebrow::before, .mapband .eyebrow::before, .site-footer .eyebrow::before { border-color: var(--accent-bright); border-right-color: transparent; }
.hero .lede { font-weight: 300; }
.btn { font-family: var(--f-body); font-weight: 500; letter-spacing: .01em; }
.btn-accent { box-shadow: 0 6px 18px color-mix(in srgb, var(--accent) 35%, transparent); }
.btn-accent:hover { background: var(--deep); color: #fff; }
.nav a { font-weight: 400; }
.nav a.active { color: var(--deep); background: var(--accent-soft); font-weight: 500; }
:root[data-theme="dark"] .nav a.active { color: var(--accent-bright); }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .nav a.active { color: var(--accent-bright); } }
.dcard h3 { font-size: 1.7rem; font-weight: 600; }
.dcard .dc-price { background: rgba(255,255,255,.94); color: #0F4354; font-weight: 600; }
.pcard { border: 1px solid var(--line); box-shadow: none; }
.pcard:hover { box-shadow: var(--shadow); border-color: color-mix(in srgb, var(--accent) 45%, var(--line)); }
.pcard h3 { font-size: 1.4rem; font-weight: 600; }
.pcard .tag-type { background: var(--deep); color: #fff; }
.chip { font-weight: 500; background: var(--accent-soft); color: var(--deep); }
:root[data-theme="dark"] .chip { color: var(--accent-bright); }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .chip { color: var(--accent-bright); } }
.chip-lt { background: rgba(255,255,255,.18); color: #fff; }
.theme-tile { font: 600 1.15rem var(--f-display); }
.theme-tile:hover { border-color: var(--accent); background: var(--accent-soft); }
.quote-top { background: linear-gradient(135deg, var(--deep), var(--night)); }
.quote-top .big { font-size: 2.3rem; }
.day-num span { background: var(--deep); }
.hl-list li::before { background: transparent; border: 2px solid var(--accent); border-right-color: transparent; flex-basis: 10px; height: 10px; margin-top: 7px; }
.cta { background: linear-gradient(120deg, var(--surface) 55%, var(--accent-soft)); }
.site-footer .footnote { border-top-color: rgba(255,255,255,.12); }
.site-footer, .site-footer a { --deep-ink: #E8EEF0; }
.mp-body h3 { font-size: 1.7rem; font-weight: 600; }
.map-top h2, .band h2 { font-weight: 600; }
.region-head h2 { font-weight: 600; }

/* ======================= PHP site additions ======================= */
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.skip { position: absolute; left: 8px; top: -60px; z-index: 100; background: var(--deep); color: #fff; padding: 10px 14px; border-radius: 8px; }
.skip:focus { top: calc(8px + env(safe-area-inset-top, 0px)); }
.hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.input { width: 100%; border: 1px solid var(--line); background: var(--bg); color: var(--ink); border-radius: 10px; padding: 10px 12px; font: inherit; }
textarea.input { resize: vertical; }
.label { font: 600 .7rem var(--f-mono); letter-spacing: .1em; text-transform: uppercase; color: var(--muted); padding: 0; margin-bottom: 6px; }
fieldset.field { border: 0; padding: 0; margin: 0; min-width: 0; }
.page-h1 { font-size: clamp(2.1rem, 5vw, 3.4rem); }
.h3 { font-size: 1.35rem; margin: 22px 0 8px; }
.btn-sm { padding: 8px 16px; font-size: .9rem; }
.block-head { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 16px; }
.block-head h2 { font-size: 1.5rem; }
.block > h2 { font-size: 1.5rem; margin-bottom: 16px; }
.flash { margin: 16px 0 0; padding: 12px 16px; border-radius: 10px; font-weight: 500; }
.flash-error { background: color-mix(in srgb, var(--no) 14%, var(--surface)); color: var(--no); border: 1px solid color-mix(in srgb, var(--no) 35%, transparent); }
.flash-success { background: color-mix(in srgb, var(--ok) 14%, var(--surface)); color: var(--ok); border: 1px solid color-mix(in srgb, var(--ok) 35%, transparent); }

/* breadcrumbs: dark on light pages, light inside photo heroes */
.crumbs { font-size: .85rem; color: var(--muted); display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 0; }
.crumbs a { text-decoration: none; color: var(--muted); }
.crumbs a:hover { color: var(--accent); text-decoration: underline; }
.crumbs [aria-current] { color: var(--ink); }
.hero .crumbs, .hero .crumbs a, .hero .crumbs [aria-current] { color: rgba(255,255,255,.85); }
.hero .crumbs { margin-bottom: 14px; }

/* hero search: radio segmented control */
.seg label { position: relative; padding: 8px 16px; border-radius: 999px; cursor: pointer; font-weight: 500; font-size: .9rem; color: var(--muted); }
.seg label input { position: absolute; opacity: 0; pointer-events: none; }
.seg label:has(input:checked) { background: var(--surface); color: var(--ink); box-shadow: 0 1px 3px rgba(0,0,0,.12); }
.seg label:has(input:focus-visible) { outline: 3px solid var(--accent); }
.seg a { text-decoration: none; padding: 8px 16px; border-radius: 999px; font-weight: 500; font-size: .9rem; color: color-mix(in srgb, var(--map-ink) 70%, transparent); }
.mapband .seg a[aria-pressed="true"] { background: var(--map-ink); color: #0F4354; }

/* map (server-rendered) */
.map-dots-use { color: var(--map-dot); }
.pin { text-decoration: none; }
.map-chips a { flex: 0 0 auto; border: 1px solid rgba(255,255,255,.22); color: var(--map-ink); border-radius: 999px; padding: 7px 14px; font-size: .88rem; text-decoration: none; }
.map-chips a[aria-pressed="true"] { background: var(--map-ink); border-color: var(--map-ink); color: #0F4354; font-weight: 600; }
.map-panel .mp[hidden] { display: none; }

.gallery-mini { margin-top: 0; grid-template-columns: 1fr 1fr; grid-template-rows: 140px 140px; }
.gallery-mini button:first-child { grid-row: auto; }
@media (max-width: 760px) { .gallery-mini { grid-template-rows: 120px 120px; } .gallery-mini button:first-child { grid-column: auto; } .gallery-mini button:nth-child(n+4) { display: block; } }

.next-steps { list-style: none; counter-reset: ns; padding: 0; margin: 16px 0 0; display: grid; gap: 14px; }
.next-steps li { counter-increment: ns; display: grid; grid-template-columns: 34px 1fr; gap: 2px 10px; }
.next-steps li::before { content: counter(ns); grid-row: span 2; width: 30px; height: 30px; border-radius: 50%; display: grid; place-items: center; background: var(--accent-soft); color: var(--deep); font: italic 600 1rem var(--f-display); }
.next-steps span { color: var(--muted); font-size: .92rem; }
.thanks { min-height: 40vh; }
.pnr-big { margin-top: 14px; font-size: 1.05rem; }
.pnr-big .mono { background: var(--accent-soft); padding: 4px 10px; border-radius: 6px; font-weight: 600; color: var(--ink); }

.article-body { font-size: 1.08rem; }
.article-body h2 { font-size: 1.8rem; margin: 32px 0 10px; }
.article-body h3 { margin: 24px 0 8px; }
.article-body ul, .article-body ol { padding-left: 22px; display: grid; gap: 6px; }
.article-body a { color: var(--accent); }
.article-body img { border-radius: 12px; margin: 16px 0; }
.article-body blockquote { border-left: 3px solid var(--accent); margin: 18px 0; padding: 4px 18px; color: var(--muted); font-style: italic; }
.post-card .eyebrow::before { display: none; }

/* footer (5 columns) */
.site-footer .cols { grid-template-columns: 1.3fr repeat(4, 1fr); }
@media (max-width: 1000px) { .site-footer .cols { grid-template-columns: 1fr 1fr 1fr; } }
@media (max-width: 640px) { .site-footer .cols { grid-template-columns: 1fr 1fr; } }
.foot-h { font: 500 .72rem var(--f-mono); letter-spacing: .16em; text-transform: uppercase; margin: 0 0 14px; color: var(--accent-bright); }
.foot-about { margin-top: 14px; max-width: 34ch; opacity: .8; }
.foot-contact { margin-top: 10px; opacity: .8; font-size: .92rem; }
.footnote .social { display: flex; gap: 14px; flex-wrap: wrap; }

/* ======================= Map: silver plate, logo colour coding ======================= */
/* Silver = logo ring/globe; petrol teal = logo "SVS"; black = logo outline. Same in light and dark site themes. */
:root {
  --map-bg: #D6DADC; --map-bg-hi: #F2F4F5; --map-bg-lo: #B9C0C3;
  --map-dot: #0F4354; --map-ink: #0F4354; --map-sub: #3B474C;
  --pin-out: #0F4354; --pin-in: #FFFFFF; --pin-in-ring: #0F4354; --pin-near: #7A8589; --pin-sel: #157F96;
}
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) { --map-bg: #C3C9CC; --map-bg-hi: #DDE1E3; --map-bg-lo: #A3ABAF; --map-dot: #0F4354; } }
:root[data-theme="dark"] { --map-bg: #C3C9CC; --map-bg-hi: #DDE1E3; --map-bg-lo: #A3ABAF; --map-dot: #0F4354; }

.mapband {
  background:
    radial-gradient(ellipse at 72% 18%, var(--map-bg-hi) 0%, transparent 55%),
    linear-gradient(160deg, var(--map-bg-hi) 0%, var(--map-bg) 42%, var(--map-bg-lo) 100%);
  color: var(--map-ink);
  border-top: 1px solid rgba(255,255,255,.6);
  border-bottom: 1px solid rgba(15,58,72,.12);
}
.mapband .orbit { color: var(--map-dot); opacity: .10; }
.mapband .eyebrow { color: var(--map-sub); }
.mapband .eyebrow::before { border-color: var(--map-dot); border-right-color: transparent; }
.mapband h2 { color: var(--map-ink); }
.mapband h2 em { color: var(--map-dot); }
.map-top p { color: var(--map-sub); }
.legend { color: var(--map-sub); }
.legend .lg { width: 12px; height: 12px; border-radius: 50%; display: inline-block; flex: 0 0 12px; }
.lg-out { background: var(--pin-out); box-shadow: 0 0 0 2px var(--map-bg-hi); }
.lg-in { background: var(--pin-in); border: 3px solid var(--pin-in-ring); }
.lg-near { background: var(--pin-near); }
.lg-home { border: 2px solid var(--map-ink); }
.lg-sel { border: 2px solid var(--pin-sel); box-shadow: 0 0 0 3px color-mix(in srgb, var(--pin-sel) 30%, transparent); }

.mapband .seg { background: rgba(15,67,84,.10); border: 1px solid rgba(15,67,84,.15); }
.mapband .seg a, .mapband .seg button { color: var(--map-sub); }
.mapband .seg a[aria-pressed="true"], .mapband .seg button[aria-pressed="true"] { background: var(--map-dot); color: #FFFFFF; }

.map-dots-use { color: var(--map-dot); opacity: .82; }
.map-dots { stroke: var(--map-dot); opacity: .82; }
.map-arc { stroke: var(--pin-sel); stroke-width: 2.4; opacity: 1; }

.pin .core { stroke: var(--map-bg-hi); stroke-width: 2.5; }
.pin.out .core { fill: var(--pin-out); }
.pin.in .core { fill: var(--pin-in); stroke: var(--pin-in-ring); stroke-width: 3.5; }
.pin.near .core { fill: var(--pin-near); }
.pin.india-pin .core { fill: var(--pin-in); stroke: var(--pin-in-ring); stroke-width: 3.5; }
.pin .ring, .pin.out .ring, .pin.in .ring, .pin.near .ring { stroke: var(--pin-sel); }
.pin:hover .core, .pin:focus-visible .core, .pin.sel .core { r: 7.5; }
.pin.sel.out .core, .pin.sel.near .core { fill: var(--pin-sel); }
.pin.sel.in .core { stroke: var(--pin-sel); }
.pin .lbl { fill: var(--map-ink); stroke: var(--map-bg-hi); stroke-width: 5px; font-weight: 600; }
.home-mark circle { stroke: var(--map-ink); }
.home-mark text { fill: var(--map-ink); stroke: var(--map-bg-hi); }

.map-chips a, .map-chips button { border-color: rgba(15,58,72,.22); color: var(--map-ink); background: rgba(255,255,255,.35); }
.map-chips a:hover { border-color: var(--map-dot); }
.map-chips a[aria-pressed="true"], .map-chips button[aria-pressed="true"] { background: var(--map-dot); border-color: var(--map-dot); color: #FFFFFF; }
.map-panel { box-shadow: 0 14px 34px rgba(15,58,72,.18); }

/* ======================= Map v3: boarding-pass header, large world map, World⇄India slider ======================= */
.wrap-wide { max-width: 1440px; }
.mapband { padding-block: clamp(22px, 3.5vw, 44px) clamp(28px, 4vw, 52px); }
.map-h1 { font: 500 .78rem/1.3 var(--f-mono); letter-spacing: .16em; text-transform: uppercase; color: var(--map-sub); margin: 0 0 14px; display: flex; align-items: center; gap: 9px; }
.map-h1::before { content: ""; width: 11px; height: 11px; flex: 0 0 11px; border-radius: 50%; border: 2px solid var(--map-dot); border-right-color: transparent; transform: rotate(-35deg); }
.map-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 18px 24px; flex-wrap: wrap; margin-bottom: clamp(12px, 2vw, 22px); }

/* boarding pass (fixed light card on the silver plate in every theme) */
.bp-ticket { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) 168px; flex: 1 1 620px; max-width: 880px; background: #FFFFFF; color: #0F4354; border-radius: 18px; box-shadow: 0 12px 30px rgba(15,58,72,.15); }
.bp-ticket::before, .bp-ticket::after { content: ""; position: absolute; left: calc(100% - 179px); width: 22px; height: 22px; border-radius: 50%; background: var(--map-bg-hi); }
.bp-ticket::before { top: -11px; } .bp-ticket::after { bottom: -11px; background: var(--map-bg); }
.bp-main { padding: 20px 28px 22px; border-right: 2px dashed #C9D1D4; min-width: 0; }
.bp-fields { display: flex; gap: 8px 26px; flex-wrap: wrap; align-items: flex-end; margin-bottom: 10px; }
.bp-fields > span { font: 600 .72rem var(--f-mono); letter-spacing: .14em; text-transform: uppercase; color: #56656B; }
.bp-fields b { display: block; margin-top: 3px; font: 700 1.3rem var(--f-mono); letter-spacing: .05em; color: #0F4354; text-transform: uppercase; white-space: nowrap; }
.bp-fields .bp-to { color: #157F96; transition: opacity .2s; }
.bp-fields b.flip { animation: bpflip .45s ease; }
@keyframes bpflip { 0% { opacity: 0; transform: translateY(-6px); } 100% { opacity: 1; transform: none; } }
.bp-plane { font-size: 1.15rem !important; color: #157F96 !important; padding-bottom: 3px; }
.bp-head { font: 700 clamp(1.75rem, 3.6vw, 2.9rem)/1.1 var(--f-display); letter-spacing: -.015em; color: #0F4354; margin: 0; }
.bp-head em { font-style: italic; font-weight: 500; color: #157F96; }
.bp-pin { position: relative; display: inline-block; width: .74em; height: .92em; vertical-align: -.1em; margin: 0 .04em; }
.bp-pin svg { width: 100%; height: 100%; overflow: visible; animation: pinbob 2.4s ease-in-out infinite; }
.bp-pin path { fill: #157F96; } .bp-pin circle { fill: #FFFFFF; }
.bp-pin::after { content: ""; position: absolute; left: 50%; bottom: -.1em; width: .95em; height: .3em; transform: translateX(-50%); border: 2px solid #157F96; border-radius: 50%; opacity: .55; animation: pinripple 2.4s ease-out infinite; }
@keyframes pinbob { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-.08em); } }
@keyframes pinripple { 0% { opacity: .7; transform: translateX(-50%) scale(.6); } 100% { opacity: 0; transform: translateX(-50%) scale(1.5); } }
.bp-stub { display: grid; gap: 9px; align-content: center; padding: 18px 20px; background: linear-gradient(160deg, #FFFFFF, #EEF2F3); border-radius: 0 18px 18px 0; }
.bp-stub div { font: 600 .68rem var(--f-mono); letter-spacing: .14em; text-transform: uppercase; color: #56656B; }
.bp-stub b { display: block; margin-top: 1px; font: 700 1.1rem var(--f-display); letter-spacing: 0; text-transform: none; color: #0F4354; }
.bp-bar { height: 30px; margin-top: 2px; background: repeating-linear-gradient(90deg, #0F4354 0 2px, transparent 2px 4px, #0F4354 4px 5px, transparent 5px 8px); }

/* World ⇄ India slider */
.bp-switch { position: relative; display: inline-grid; grid-template-columns: 1fr 1fr; padding: 4px; min-width: 230px; border-radius: 999px; background: rgba(15,67,84,.12); border: 1px solid rgba(15,67,84,.18); }
.bp-thumb { position: absolute; top: 4px; bottom: 4px; left: 4px; width: calc(50% - 4px); border-radius: 999px; background: var(--map-dot); box-shadow: 0 4px 12px rgba(15,67,84,.35); transition: transform .45s cubic-bezier(.65,0,.35,1); }
.mapband[data-view="india"] .bp-thumb { transform: translateX(100%); }
.bp-switch a { position: relative; z-index: 1; text-align: center; padding: 11px 22px; border-radius: 999px; font-weight: 500; text-decoration: none; color: var(--map-sub); transition: color .3s; }
.bp-switch a[aria-pressed="true"] { color: #FFFFFF; }

/* map stage: both frames stacked, the hidden one taken out of flow */
.map-stage { position: relative; }
.map-frame { position: relative; }
.map-frame[aria-hidden="true"] { position: absolute; inset: 0; opacity: 0; visibility: hidden; pointer-events: none; }
.frame-world { transform-origin: var(--zx, 70%) var(--zy, 45%); }
.frame-world svg { display: block; width: 100%; height: auto; overflow: visible; }
.frame-india svg { display: block; height: min(640px, 74vh); width: auto; max-width: 100%; margin: 0 auto; overflow: visible; }

.mapband .map-chips { padding-top: 14px; }
.mapband .legend { margin-top: 10px; font-size: .85rem; }

/* destination panel below the map */
.mapband .map-panel { margin-top: 16px; background: transparent; box-shadow: none; border-radius: 0; overflow: visible; }
.mp { display: grid; grid-template-columns: 250px minmax(0, 1fr) minmax(0, 1.2fr); grid-template-areas: "img info list" "img info cta"; background: var(--surface); color: var(--ink); border-radius: 16px; overflow: hidden; box-shadow: 0 14px 34px rgba(15,58,72,.18); }
.mp > .ph { grid-area: img; height: 100%; min-height: 190px; }
.mp-info { grid-area: info; padding: 18px 22px; min-width: 0; }
.mp-info .codeline { font: 600 .72rem var(--f-mono); letter-spacing: .1em; text-transform: uppercase; color: var(--muted); margin: 0; }
.mp-info h3 { font-size: 1.8rem; font-weight: 600; margin: 6px 0 4px; }
.mp-info .muted { font-size: .95rem; }
.mp-best { margin-top: 10px; font: 500 .78rem var(--f-mono); color: var(--accent); }
.mp > .mp-list { grid-area: list; padding: 18px 18px 8px 0; margin: 0; align-content: start; min-width: 0; }
.mp-cta { grid-area: cta; margin: 0 18px 18px 0; justify-self: start; }
@media (max-width: 900px) {
  .mp { grid-template-columns: 1fr; grid-template-areas: "img" "info" "list" "cta"; }
  .mp > .ph { aspect-ratio: 16 / 8; min-height: 0; height: auto; }
  .mp-info { padding: 16px 18px 6px; }
  .mp > .mp-list { padding: 8px 18px; }
  .mp-cta { margin: 6px 18px 18px; justify-self: stretch; }
}

/* phones: ticket stacks, world map becomes a swipeable wide plate */
@media (max-width: 760px) {
  .bp-ticket { grid-template-columns: 1fr; flex-basis: 100%; }
  .bp-ticket::before, .bp-ticket::after { display: none; }
  .bp-main { border-right: 0; border-bottom: 2px dashed #C9D1D4; padding: 16px 18px 18px; }
  .bp-fields { gap: 6px 18px; }
  .bp-fields b { font-size: 1.05rem; }
  .bp-date { display: none; }
  .bp-stub { grid-template-columns: repeat(3, auto) 1fr; align-items: center; gap: 14px; padding: 12px 18px; border-radius: 0 0 18px 18px; }
  .bp-bar { height: 22px; }
  .bp-switch { width: 100%; }
  .frame-world { overflow-x: auto; overscroll-behavior-x: contain; scrollbar-width: none; -webkit-overflow-scrolling: touch; margin-inline: calc(-1 * var(--gutter-l)) calc(-1 * var(--gutter-r)); }
  .frame-world::-webkit-scrollbar { display: none; }
  .frame-world svg { width: 920px; max-width: none; }
  .frame-india svg { width: 100%; height: auto; }
}
@media (max-width: 400px) { .bp-stub > div:nth-child(3) { display: none; } }
@media (prefers-reduced-motion: reduce) { .bp-pin svg, .bp-pin::after { animation: none; } .bp-thumb { transition: none; } }
.hero .hero-title { font-size: clamp(2.2rem, 5.4vw, 4.2rem); font-weight: 700; max-width: 15ch; color: #fff; }
.hero .hero-title em { color: var(--accent-bright); }
/* keep header/ticket/panel on the site grid; let only the map plate run wider */
.wrap-wide { max-width: var(--wrap); }
@media (min-width: 761px) {
  .map-stage { width: min(1400px, calc(100vw - 48px)); margin-left: 50%; transform: translateX(-50%); }
}

/* ======================= v4: dark-teal map (logo), white land dots, teal pins ======================= */
:root {
  --map-bg: #0F4354; --map-bg-hi: #17596C; --map-bg-lo: #082C37;
  --map-dot: #FFFFFF; --map-ink: #FFFFFF; --map-sub: #C9DDE2;
  --pin-out: #0F4354; --pin-in: #0F4354; --pin-in-ring: #CFD8DB; --pin-near: #9FB3B9; --pin-sel: #5CC8DD;
}
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) { --map-bg: #0C3A49; --map-bg-hi: #134E60; --map-bg-lo: #061F27; --map-dot: #FFFFFF; } }
:root[data-theme="dark"] { --map-bg: #0C3A49; --map-bg-hi: #134E60; --map-bg-lo: #061F27; --map-dot: #FFFFFF; }

.mapband {
  background:
    radial-gradient(ellipse at 70% 15%, var(--map-bg-hi) 0%, transparent 60%),
    linear-gradient(165deg, var(--map-bg) 0%, var(--map-bg) 45%, var(--map-bg-lo) 100%);
  color: var(--map-ink); border-top: 0; border-bottom: 0;
}
.mapband .orbit { color: #FFFFFF; opacity: .07; }
.map-h1 { color: var(--map-sub); }
.map-h1::before { border-color: var(--pin-sel); border-right-color: transparent; }
.map-dots-use { color: var(--map-dot); opacity: .5; }
.mapband .legend { color: var(--map-sub); }
.lg-out { background: var(--pin-out); box-shadow: 0 0 0 2px #FFFFFF; }
.lg-in { background: #FFFFFF; border: 3px solid var(--pin-in); box-shadow: 0 0 0 1.5px #FFFFFF; }
.lg-near { background: var(--pin-near); }
.lg-home { border: 2px solid #FFFFFF; }
.lg-sel { border: 2px solid var(--pin-sel); box-shadow: 0 0 0 3px rgba(92,200,221,.35); background: var(--pin-out); }

/* pins: logo teal core with a white rim so they read over white dots and dark water alike */
.pin .core { stroke: #FFFFFF; stroke-width: 2.6; }
.pin.out .core { fill: var(--pin-out); }
.pin.in .core { fill: #FFFFFF; stroke: var(--pin-in); stroke-width: 3.6; }
.pin.near .core { fill: var(--pin-near); stroke: #FFFFFF; }
.pin.india-pin .core { fill: #FFFFFF; stroke: var(--pin-in); stroke-width: 3.6; }
.pin .ring, .pin.out .ring, .pin.in .ring, .pin.near .ring { stroke: var(--pin-sel); }
.pin.sel .core { fill: var(--pin-out) !important; stroke: var(--pin-sel) !important; stroke-width: 3.2; }
.pin .lbl { fill: #FFFFFF; stroke: var(--map-bg-lo); stroke-width: 5px; }
.home-mark circle { stroke: #FFFFFF; }
.home-mark text { fill: var(--map-sub); stroke: var(--map-bg-lo); }

/* boarding pass stays a white card; text in logo teal, never black */
.bp-fields > span { color: #4A6570; }
.bp-fields b, .bp-head { color: #0F4354; }
.bp-fields .bp-to, .bp-head em { color: #157F96; }
.bp-stub div { color: #4A6570; }
.bp-bar { background: repeating-linear-gradient(90deg, #0F4354 0 2px, transparent 2px 4px, #0F4354 4px 5px, transparent 5px 8px); }
.bp-ticket::before { background: var(--map-bg-hi); } .bp-ticket::after { background: var(--map-bg); }

/* slider on dark plate */
.bp-switch { background: rgba(255,255,255,.10); border-color: rgba(255,255,255,.22); }
.bp-thumb { background: #FFFFFF; box-shadow: 0 4px 14px rgba(0,0,0,.25); }
.bp-switch a { color: var(--map-sub); }
.bp-switch a[aria-pressed="true"] { color: #0F4354; font-weight: 600; }

.mapband .map-chips a, .mapband .map-chips button { border-color: rgba(255,255,255,.28); color: #FFFFFF; background: rgba(255,255,255,.06); }
.mapband .map-chips a:hover { border-color: var(--pin-sel); }
.mapband .map-chips a[aria-pressed="true"] { background: #FFFFFF; border-color: #FFFFFF; color: #0F4354; }
.map-arc { display: none; }

/* destination with no package yet */
.mp-soon { grid-area: list; padding: 18px 18px 8px 0; color: var(--muted); }
@media (max-width: 900px) { .mp-soon { padding: 8px 18px; } }

/* land-package note + social icons */
.land-note { display: inline-flex; gap: 8px; align-items: center; font-size: .82rem; color: var(--muted); }
.land-note svg { width: 15px; height: 15px; color: var(--accent); flex: 0 0 15px; }
.social-icons { display: flex; gap: 10px; flex-wrap: wrap; }
.social-icons a { width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.25); color: #FFFFFF; text-decoration: none; transition: background .2s, border-color .2s; }
.social-icons a:hover { background: var(--accent); border-color: var(--accent); }
.social-icons svg { width: 18px; height: 18px; }
.panel .social-icons a, .contact-social a { border-color: var(--line); color: var(--deep); }
.panel .social-icons a:hover { color: #FFFFFF; }
:root[data-theme="dark"] .panel .social-icons a { color: var(--accent-bright); }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .panel .social-icons a { color: var(--accent-bright); } }

/* about: vision, mission, founders */
.vm-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); gap: 22px; }
.vm-card { position: relative; background: var(--surface); border: 1px solid var(--line); border-radius: 18px; padding: 28px; overflow: hidden; }
.vm-card h2 { font-size: 2rem; margin: 10px 0 12px; }
.vm-card p.big { font: italic 500 1.35rem/1.45 var(--f-display); color: var(--deep); }
:root[data-theme="dark"] .vm-card p.big { color: var(--accent-bright); }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .vm-card p.big { color: var(--accent-bright); } }
.vm-card ul { margin: 0; padding: 0; list-style: none; display: grid; gap: 10px; }
.vm-card li { display: grid; grid-template-columns: 22px 1fr; gap: 8px; }
.vm-card li::before { content: ""; width: 12px; height: 12px; margin-top: 7px; border-radius: 50%; border: 2px solid var(--accent); border-right-color: transparent; transform: rotate(-35deg); }
.vm-card .orbit { width: 220px; aspect-ratio: 1; right: -70px; top: -70px; opacity: .08; color: var(--deep); z-index: 0; }
.founders { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 280px), 1fr)); gap: 22px; }
.founder { background: var(--surface); border: 1px solid var(--line); border-radius: 18px; padding: 24px; display: grid; gap: 10px; align-content: start; }
.founder .avatar { width: 112px; height: 112px; border-radius: 50%; overflow: hidden; background: linear-gradient(135deg, var(--deep), var(--accent)); display: grid; place-items: center; color: #fff; font: 600 2rem var(--f-display); border: 4px solid var(--surface); box-shadow: 0 0 0 2px var(--accent); }
.founder .avatar img { width: 100%; height: 100%; object-fit: cover; }
.founder h3 { font-size: 1.5rem; }
.founder .role { font: 500 .75rem var(--f-mono); letter-spacing: .12em; text-transform: uppercase; color: var(--accent); }
.founder p { color: var(--muted); }
.mapband .bp-head { color: #0F4354; }
.mapband .bp-head em { color: #157F96; }
.site-footer .land-note { color: color-mix(in srgb, var(--deep-ink) 78%, transparent); }
.site-footer .land-note svg { color: var(--accent-bright); }
@media (max-width: 760px) { .bp-fields .bp-date { display: block; } }

/* ---------- currency switch ---------- */
.cur-switch { display: inline-flex; align-items: center; padding: 3px; border: 1px solid var(--line); border-radius: 999px; background: var(--surface); }
.cur-switch button { border: 0; background: transparent; color: var(--ink); font: 600 .74rem/1 "JetBrains Mono", ui-monospace, monospace; letter-spacing: .02em; padding: 8px 10px; min-height: 32px; border-radius: 999px; cursor: pointer; display: inline-flex; gap: 4px; align-items: center; }
.cur-switch button .sym { font-family: var(--f-body); font-size: .9rem; }
.cur-switch button[aria-pressed="true"] { background: var(--deep, #0F4354); color: #fff; }
.cur-switch button:focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; }
.cur-switch.many button .sym { display: none; }
@media (max-width: 1100px) { .cur-switch:not(.many) button .code { display: none; } .cur-switch button { padding: 8px 11px; } }
@media (max-width: 420px) { .cur-switch.many button { padding: 8px 7px; font-size: .68rem; } }
.fx-note { margin: 8px 0 0; font-size: .78rem; line-height: 1.4; opacity: .85; }
.footnote .fx-foot { flex-basis: 100%; font-size: .8rem; opacity: .8; }

/* ======================= v5: silver land on logo dark teal, dark-teal pins, continent buttons ======================= */
:root { --map-land: #CDD5D9; --map-land-edge: #E9EEF0; --pin-core: #0F4354; --pin-india: #157F96; }
.map-land-use { color: var(--map-land); filter: drop-shadow(0 1.5px 0 rgba(4, 30, 38, .35)); }
.map-dots-use { display: none; }
.pin .core, .pin.out .core { fill: var(--pin-core); stroke: #FFFFFF; stroke-width: 2.4; }
.pin.in .core, .pin.india-pin .core { fill: var(--pin-india); stroke: #FFFFFF; stroke-width: 2.6; }
.pin.near .core { fill: #7E9399; stroke: #FFFFFF; stroke-width: 2; }
.pin.sel .core { fill: var(--pin-core) !important; stroke: var(--pin-sel) !important; stroke-width: 3.4; }
.pin .lbl { fill: #FFFFFF; stroke: #0A3240; stroke-width: 5px; }
.pin { transition: opacity .35s ease; }
.pin.dim { opacity: .14; }
.pin.dim:hover, .pin.dim:focus-visible { opacity: .6; }
.home-mark circle { stroke: var(--pin-core); }
.home-mark text { fill: #0F4354; stroke: var(--map-land-edge); }
.lg-out { background: var(--pin-core); box-shadow: 0 0 0 2px #FFFFFF; }
.lg-in { background: var(--pin-india); border: 0; box-shadow: 0 0 0 2px #FFFFFF; }
.lg-near { background: #7E9399; box-shadow: 0 0 0 2px #FFFFFF; }
.lg-sel { background: var(--pin-core); border: 2px solid var(--pin-sel); }

.cont-bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 18px; margin: 18px 0 10px; }
.cont-bar[hidden] { display: none !important; }
.cont-btns { display: flex; gap: 8px; overflow-x: auto; scrollbar-width: none; padding: 2px; margin: -2px; max-width: 100%; }
.cont-btns::-webkit-scrollbar { display: none; }
.cont-btns button { flex: 0 0 auto; font: 500 .9rem/1 var(--f-body); color: #FFFFFF; background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.28); border-radius: 999px; padding: 10px 16px; min-height: 40px; cursor: pointer; transition: background .2s, border-color .2s, color .2s; }
.cont-btns button:hover { border-color: var(--pin-sel); }
.cont-btns button:focus-visible { outline: 2px solid var(--pin-sel); outline-offset: 2px; }
.cont-btns button[aria-pressed="true"] { background: #FFFFFF; border-color: #FFFFFF; color: #0F4354; font-weight: 600; }
.cont-sum { margin: 0; font: 500 .95rem/1.4 var(--f-body); color: var(--map-sub); }
.cont-sum b { color: #FFFFFF; font-weight: 600; }
.frame-world.zoomed svg { width: 100% !important; min-width: 0 !important; }
@media (max-width: 760px) {
  .cont-bar { margin-top: 14px; }
  .cont-btns { width: 100%; }
  .cont-btns button { padding: 9px 14px; font-size: .86rem; }
  .cont-sum { font-size: .88rem; }
}
.frame-world svg { overflow: hidden; }
.pager { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 10px; margin-top: 36px; }
.pager-nums { display: flex; gap: 6px; flex-wrap: wrap; justify-content: center; }
.pager-nums a { min-width: 42px; height: 42px; display: grid; place-items: center; border-radius: 12px; border: 1px solid var(--line); color: var(--ink); text-decoration: none; font: 600 .9rem var(--f-mono); }
.pager-nums a:hover { border-color: var(--accent); }
.pager-nums a[aria-current="page"] { background: var(--deep, #0F4354); border-color: var(--deep, #0F4354); color: #FFFFFF; }
.pager-gap { align-self: center; color: var(--muted); }
.pager-note { text-align: center; margin-top: 10px; font-size: .85rem; }
.map-count { white-space: nowrap; }
.map-count { white-space: normal; }
.frame-india .home-mark text { fill: #FFFFFF; stroke: #0A3240; stroke-width: 4px; font-size: 10px; }

/* ======================= v6: fine dotted land (dot pattern inside the land outline) ======================= */
.dot-pattern circle { fill: #DCE4E7; }
.map-land { opacity: .88; }
.map-land-use { display: none; }
.pin .core, .pin.out .core { stroke-width: 3; }
.pin .core { filter: drop-shadow(0 1px 2.5px rgba(2, 20, 26, .55)); }
.pin.sel .core { fill: var(--pin-core) !important; stroke: var(--pin-sel) !important; stroke-width: 3.6; }
.pin .ring { stroke-width: 2.5; }
.frame-india svg {
  -webkit-mask-image: linear-gradient(to right, transparent 0, #000 7%, #000 93%, transparent 100%), linear-gradient(to bottom, transparent 0, #000 6%, #000 94%, transparent 100%);
  -webkit-mask-composite: source-in;
  mask-image: linear-gradient(to right, transparent 0, #000 7%, #000 93%, transparent 100%), linear-gradient(to bottom, transparent 0, #000 6%, #000 94%, transparent 100%);
  mask-composite: intersect;
}
.home-mark text { fill: #FFFFFF; stroke: #0A3240; }

/* ======================= v7: beacon pins (glowing dot; selected = white map pin + name tag) ======================= */
.pin .core, .pin.out .core, .pin.in .core, .pin.near .core, .pin.india-pin .core { fill: #7FD8EA; stroke: none; stroke-width: 0; filter: none; transition: opacity .2s; }
.pin .glow { fill: #5CC8DD; opacity: .24; transform-box: fill-box; transform-origin: center; transition: transform .25s ease, opacity .25s ease; }
.pin.in .core { fill: #FFFFFF; }
.pin.near .core { fill: #A9BCC2; } .pin.near .glow { fill: #A9BCC2; opacity: .14; }
.pin.india-pin .core { fill: #FFFFFF; } .pin.india-pin .glow { opacity: .3; }
.pin:hover .glow, .pin:focus-visible .glow { transform: scale(1.45); opacity: .42; }
.pin .ring, .pin .lbl { display: none; }
.pin .marker { opacity: 0; transform-box: fill-box; transform-origin: 50% 100%; transform: scale(.55) translateY(10px); transition: opacity .25s ease, transform .3s cubic-bezier(.3,1.4,.5,1); filter: drop-shadow(0 3px 4px rgba(2, 20, 26, .5)); }
.pin .marker path { fill: #FFFFFF; } .pin .marker circle { fill: #0F4354; }
.pin.sel .marker { opacity: 1; transform: scale(.68); }
.pin.sel .core { opacity: 0; }
.pin.sel .glow, .pin.sel.out .glow { transform: scale(1.5); opacity: .3; }
.pin .tag { opacity: 0; pointer-events: none; transition: opacity .2s ease; }
.pin .tag rect { fill: #0F4354; stroke: #5CC8DD; stroke-width: 1; }
.pin .tag text { fill: #FFFFFF; font: 600 11px var(--f-body); letter-spacing: .01em; }
.pin:hover .tag, .pin:focus-visible .tag, .pin.sel .tag, .pin.india-pin .tag { opacity: 1; }
.pin:not(.sel):hover { z-index: 2; }
.lg-out { background: #7FD8EA; border: 0; box-shadow: 0 0 0 4px rgba(92, 200, 221, .25); }
.lg-in { background: #FFFFFF; border: 0; box-shadow: 0 0 0 4px rgba(92, 200, 221, .3); }
.lg-near { background: #A9BCC2; box-shadow: 0 0 0 4px rgba(169, 188, 194, .2); }
.lg-sel { background: #FFFFFF; border: 0; border-radius: 50% 50% 50% 0; transform: rotate(-45deg); box-shadow: none; }
.pin.in .core { fill: #7FD8EA; } .pin.in .glow { opacity: .34; }
.lg-in { background: #7FD8EA; box-shadow: 0 0 0 4px rgba(92, 200, 221, .3); }
.lg-sel { width: 12px; height: 12px; background: #FFFFFF; border-radius: 50% 50% 50% 0; transform: rotate(-45deg); }

/* ======================= v8: lean ticket, hanging "Plan my trip", stats strip, MICE & fleet ======================= */
/* lean boarding pass */
.bp-ticket { grid-template-columns: minmax(0, 1fr) 132px; max-width: 820px; border-radius: 16px; }
.bp-ticket::before, .bp-ticket::after { left: calc(100% - 141px); width: 18px; height: 18px; }
.bp-ticket::before { top: -9px; } .bp-ticket::after { bottom: -9px; }
.bp-main { padding: 14px 22px 15px; }
.bp-fields { gap: 4px 22px; margin-bottom: 6px; }
.bp-fields > span { font-size: .64rem; }
.bp-fields b { font-size: 1.02rem; margin-top: 1px; }
.bp-head { font-size: clamp(1.3rem, 2.3vw, 1.95rem); line-height: 1.15; }
.bp-stub { gap: 5px; padding: 12px 16px; border-radius: 0 16px 16px 0; }
.bp-stub div { font-size: .58rem; }
.bp-stub b { font-size: .92rem; }
.bp-bar { height: 18px; }
.bp-switch a { padding: 9px 20px; }
.map-head { margin-bottom: 8px; }
@media (max-width: 760px) {
  .bp-main { padding: 12px 16px 13px; }
  .bp-fields b { font-size: .95rem; }
  .bp-head { font-size: 1.3rem; }
  .bp-stub { padding: 9px 16px; border-radius: 0 0 16px 16px; }
  .bp-stub b { font-size: .86rem; }
  .bp-bar { height: 16px; }
}

/* hanging Plan my trip tab, on every page */
.plan-tab { position: fixed; right: 0; top: 50%; z-index: 60; transform: translateY(-50%); display: flex; align-items: center; gap: 8px; writing-mode: vertical-rl; padding: 16px 10px; background: #157F96; color: #FFFFFF; border-radius: 14px 0 0 14px; font: 600 .86rem/1 var(--f-body); letter-spacing: .04em; text-decoration: none; box-shadow: -6px 8px 24px rgba(4, 30, 38, .28); transition: padding .2s ease, background .2s ease; }
.plan-tab svg { width: 16px; height: 16px; flex: 0 0 16px; }
.plan-tab span { transform: rotate(180deg); }
.plan-tab:hover, .plan-tab:focus-visible { background: #0F4354; padding-right: 14px; }
.plan-tab:focus-visible { outline: 2px solid #5CC8DD; outline-offset: 2px; }
@media (max-width: 760px) { .plan-tab { top: auto; bottom: 108px; transform: none; padding: 12px 8px; font-size: .78rem; } }
@media print { .plan-tab { display: none; } }

/* live stats strip directly under the map */
.stats-strip { background: #0B3542; color: #FFFFFF; border-top: 1px solid rgba(255,255,255,.08); }
.stats-strip .strip-stats { margin: 0; padding: 18px 0; justify-content: space-between; gap: 14px 28px; }
.stats-strip .strip-stats b { font-size: 1.6rem; line-height: 1.1; }
.stats-strip .strip-stats span { color: #C9DDE2; }
@media (max-width: 760px) { .stats-strip .strip-stats { display: grid; grid-template-columns: 1fr 1fr; } .stats-strip .strip-stats b { font-size: 1.35rem; } }

/* MICE */
.mice-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); gap: 18px; }
.mice-card { position: relative; background: var(--surface); border: 1px solid var(--line); border-radius: 18px; padding: 26px 24px 24px; overflow: hidden; }
.mice-letter { position: absolute; right: 14px; top: -6px; font: italic 600 5.5rem/1 var(--f-display); color: color-mix(in srgb, var(--accent) 14%, transparent); pointer-events: none; }
.mice-card h2 { font-size: 1.3rem; margin: 0 0 8px; }
.mice-card p { color: var(--muted); margin: 0; }
.tick-list { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); gap: 12px 28px; }
.tick-list li { position: relative; padding-left: 28px; }
.tick-list li::before { content: ""; position: absolute; left: 0; top: .35em; width: 16px; height: 9px; border-left: 2px solid #5CC8DD; border-bottom: 2px solid #5CC8DD; transform: rotate(-45deg); }
.tick-list-plain { grid-template-columns: 1fr; }
.tick-list-plain li::before { border-color: var(--accent); }

/* fleet */
.fleet-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 250px), 1fr)); gap: 18px; }
.fleet-card { background: var(--surface); border: 1px solid var(--line); border-radius: 18px; padding: 22px; display: flex; flex-direction: column; gap: 8px; }
.fleet-icon { width: 76px; height: 57px; color: var(--accent); margin-bottom: 4px; }
.fleet-card h2 { font-size: 1.25rem; margin: 0; }
.fleet-card .muted { margin: 0; font-size: .92rem; }
.fleet-facts { display: grid; gap: 6px; margin: 6px 0 4px; }
.fleet-facts div { display: grid; grid-template-columns: 74px 1fr; gap: 8px; font-size: .92rem; }
.fleet-facts dt { font: 600 .66rem var(--f-mono); letter-spacing: .12em; text-transform: uppercase; color: var(--muted); padding-top: .2em; }
.fleet-facts dd { margin: 0; }
.fleet-card .link-arrow { margin-top: auto; padding-top: 6px; }
.bp-main { display: flex; flex-direction: column; justify-content: center; }
@media (min-width: 761px) { .bp-stub > div:nth-child(3) { display: none; } .bp-stub { gap: 6px; } }
.hero-stats b .money { font: inherit; }

/* ======================= v9: slim hero + ventures, promo pop-up, footer credit, About & fleet extras ======================= */
.hero-slim::after { background: linear-gradient(90deg, rgba(6, 36, 46, .92) 0%, rgba(8, 46, 58, .78) 46%, rgba(8, 46, 58, .35) 100%); }
.hero-slim .wrap.hs-grid { padding-block: clamp(40px, 5vw, 60px); display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 28px 48px; align-items: center; }
.hs-title { font: 700 clamp(1.7rem, 3.1vw, 2.6rem)/1.12 var(--f-display); letter-spacing: -.01em; margin: 0; max-width: 24ch; }
.hs-title em { font-style: italic; font-weight: 500; color: #5CC8DD; }
.hs-sub { margin: 12px 0 22px; color: rgba(255,255,255,.86); font-size: 1.02rem; max-width: 60ch; }
.hs-search { display: flex; align-items: center; gap: 8px; background: #FFFFFF; color: var(--ink); border-radius: 999px; padding: 6px; max-width: 760px; box-shadow: 0 14px 34px rgba(0,0,0,.28); }
.hs-seg { display: inline-flex; background: #EEF2F3; border-radius: 999px; padding: 4px; flex: 0 0 auto; }
.hs-seg label { position: relative; cursor: pointer; }
.hs-seg input { position: absolute; opacity: 0; pointer-events: none; }
.hs-seg span { display: block; padding: 9px 15px; border-radius: 999px; font-size: .9rem; color: #4A6570; transition: background .2s, color .2s; }
.hs-seg input:checked + span { background: #FFFFFF; color: #0F4354; font-weight: 600; box-shadow: 0 2px 6px rgba(0,0,0,.08); }
.hs-seg input:focus-visible + span { outline: 2px solid var(--accent); }
.hs-search input[name="q"] { flex: 1 1 auto; min-width: 0; border: 0; background: transparent; padding: 12px 8px; font: inherit; color: var(--ink); outline: none; }
.hs-search .btn { flex: 0 0 auto; border-radius: 999px; }
.hs-ventures { display: grid; gap: 10px; }
.hs-vlabel { margin: 0 0 2px; font: 600 .66rem var(--f-mono); letter-spacing: .18em; text-transform: uppercase; color: #C9DDE2; }
.vent { display: flex; align-items: center; gap: 12px; padding: 9px 14px 9px 9px; border-radius: 16px; border: 1px solid rgba(255,255,255,.2); background: rgba(4, 28, 36, .45); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); color: #FFFFFF; text-decoration: none; transition: border-color .5s ease, background .5s ease, transform .5s ease, box-shadow .5s ease; }
.vent:hover, .vent:focus-visible, .vent.on { border-color: #5CC8DD; background: rgba(15, 67, 84, .78); transform: translateX(-4px); box-shadow: 0 10px 24px rgba(0,0,0,.25); }
.vent:focus-visible { outline: 2px solid #5CC8DD; outline-offset: 2px; }
.vent-logo { flex: 0 0 52px; width: 52px; height: 52px; border-radius: 12px; background: #FFFFFF; display: grid; place-items: center; overflow: hidden; font: 700 .9rem var(--f-display); color: #0F4354; }
.vent-logo img { width: 86%; height: 86%; object-fit: contain; }
.vent-txt { min-width: 0; flex: 1; }
.vent-txt b { display: block; font-size: .95rem; font-weight: 600; line-height: 1.25; }
.vent-txt small { display: block; font-size: .78rem; color: #C9DDE2; line-height: 1.3; }
.vent-ar { color: #5CC8DD; font-size: .95rem; }
@media (max-width: 960px) {
  .hero-slim .wrap.hs-grid { grid-template-columns: 1fr; }
  .hs-ventures { grid-template-columns: 1fr 1fr; }
  .hs-vlabel { grid-column: 1 / -1; }
  .vent:hover, .vent.on { transform: none; }
}
@media (max-width: 640px) {
  .hero-slim::after { background: linear-gradient(180deg, rgba(6, 36, 46, .82) 0%, rgba(6, 36, 46, .9) 100%); }
  .hs-search { flex-wrap: wrap; border-radius: 18px; padding: 8px; }
  .hs-seg { width: 100%; } .hs-seg label { flex: 1; text-align: center; }
  .hs-search input[name="q"] { flex: 1 1 100%; border-bottom: 1px solid #E3E8EA; padding: 12px 8px; }
  .hs-search .btn { width: 100%; justify-content: center; }
  .hs-ventures { grid-template-columns: 1fr; }
}

/* promo pop-up */
.promo { position: fixed; inset: 0; z-index: 90; display: grid; place-items: center; padding: 18px; }
.promo[hidden] { display: none !important; }
.promo-scrim { position: absolute; inset: 0; background: rgba(4, 22, 28, .62); opacity: 0; transition: opacity .25s ease; }
.promo-card { position: relative; width: min(760px, 100%); max-height: calc(100vh - 36px); overflow: auto; display: grid; grid-template-columns: 1fr 1.05fr; background: #FFFFFF; color: #0F3A48; border-radius: 22px; box-shadow: 0 30px 80px rgba(0,0,0,.4); opacity: 0; transform: translateY(18px) scale(.97); transition: opacity .3s ease, transform .35s cubic-bezier(.2,.9,.3,1.1); }
.promo.open .promo-scrim { opacity: 1; } .promo.open .promo-card { opacity: 1; transform: none; }
.promo-img { position: relative; min-height: 260px; background: linear-gradient(160deg, #17596C, #0F4354); }
.promo-img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.promo-offer { position: absolute; left: 14px; bottom: 14px; right: 14px; width: fit-content; background: #5CC8DD; color: #0F3A48; font: 700 .85rem/1.3 var(--f-body); padding: 8px 12px; border-radius: 10px; box-shadow: 0 6px 16px rgba(0,0,0,.2); }
.promo-body { padding: 28px 26px 24px; display: flex; flex-direction: column; }
.promo-body .eyebrow { color: var(--accent); }
.promo-body h2 { font: 700 1.6rem/1.15 var(--f-display); margin: 8px 0 6px; color: #0F4354; }
.promo-meta { font: 500 .78rem/1.5 var(--f-mono); color: #4A6570; margin: 0 0 12px; }
.promo-text { margin: 0 0 18px; color: #3C5761; }
.promo-foot { margin-top: auto; display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; border-top: 1px dashed #C9D1D4; padding-top: 16px; }
.promo-price small { display: block; font-size: .72rem; color: #4A6570; }
.promo-price b { font: 700 1.5rem var(--f-display); color: #0F4354; }
.promo-x { position: absolute; top: 10px; right: 10px; z-index: 2; width: 38px; height: 38px; border-radius: 50%; border: 0; background: rgba(255,255,255,.92); color: #0F4354; font-size: 1.5rem; line-height: 1; cursor: pointer; box-shadow: 0 4px 12px rgba(0,0,0,.18); }
.promo-x:focus-visible { outline: 2px solid var(--accent); }
html.promo-lock { overflow: hidden; }
@media (max-width: 640px) { .promo-card { grid-template-columns: 1fr; } .promo-img { min-height: 190px; } .promo-body { padding: 20px 18px 18px; } .promo-body h2 { font-size: 1.35rem; } }
@media (prefers-reduced-motion: reduce) { .promo-card, .promo-scrim { transition: none; } }

/* footer: ventures column + credit */
.site-footer .cols { grid-template-columns: 1.3fr repeat(5, minmax(0, 1fr)); gap: 28px; }
@media (max-width: 1100px) { .site-footer .cols { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 640px) { .site-footer .cols { grid-template-columns: 1fr 1fr; } }
.foot-ventures li { margin-bottom: 10px; }
.foot-ventures small { display: block; font-size: .78rem; opacity: .7; }
.footnote .credit a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }

/* About: credentials + group */
.cred-strip { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr)); gap: 16px; }
.cred-strip > div { background: var(--surface); border: 1px solid var(--line); border-radius: 16px; padding: 18px 20px; }
.cred-strip b { display: block; font: 700 1.5rem/1.2 var(--f-display); color: var(--deep, #0F4354); }
.cred-strip span { color: var(--muted); font-size: .92rem; }
.cred-note { margin-top: 12px; font-size: .92rem; }
.vent-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 230px), 1fr)); gap: 16px; }
.vent-card { display: flex; flex-direction: column; gap: 6px; background: var(--surface); border: 1px solid var(--line); border-radius: 18px; padding: 20px; color: var(--ink); text-decoration: none; transition: border-color .2s, transform .2s; }
.vent-card:hover { border-color: var(--accent); transform: translateY(-2px); }
.vent-card-logo { height: 96px; display: grid; place-items: center; background: #FFFFFF; border-radius: 12px; margin-bottom: 8px; }
.vent-card-logo img { max-height: 84px; max-width: 80%; object-fit: contain; }
.vent-card .link-arrow { margin-top: auto; padding-top: 6px; }

/* home SEO block */
.seo-links { list-style: none; padding: 0; margin: 12px 0 0; display: grid; gap: 10px; }
.seo-links a { color: var(--ink); text-decoration: none; border-bottom: 1px solid var(--line); display: block; padding-bottom: 8px; }
.seo-links a:hover { color: var(--accent); border-color: var(--accent); }

/* fleet photos */
.fleet-photo { height: 150px; border-radius: 12px; background: #FFFFFF; display: grid; place-items: center; overflow: hidden; margin-bottom: 6px; border: 1px solid var(--line); }
.fleet-photo img { max-width: 92%; max-height: 92%; object-fit: contain; }
.fleet-photo .fleet-icon { display: none; }
.fleet-photo.noimg img { display: none; } .fleet-photo.noimg .fleet-icon { display: block; }
/* fleet photos: always show the whole vehicle, never crop */
.fleet-photo { position: relative; height: auto; aspect-ratio: 16 / 10; display: block; padding: 0; }
.fleet-photo img { position: absolute; inset: 8px; width: calc(100% - 16px); height: calc(100% - 16px); max-width: none; max-height: none; object-fit: contain; object-position: center; }
.fleet-photo .fleet-icon { position: absolute; inset: 0; margin: auto; }

/* ======================= v10: fleet showroom ======================= */
.fleet-tabs { display: flex; gap: 8px; margin: 0 0 24px; overflow-x: auto; scrollbar-width: none; padding: 2px; }
.fleet-tabs::-webkit-scrollbar { display: none; }
.fleet-tabs button { flex: 0 0 auto; border: 1px solid var(--line); background: var(--surface); color: var(--muted); border-radius: 999px; padding: 10px 18px; font: 500 .95rem var(--f-body); cursor: pointer; transition: background .2s, color .2s, border-color .2s; }
.fleet-tabs button small { margin-left: 7px; opacity: .65; font-size: .8rem; }
.fleet-tabs button:hover { border-color: var(--accent); }
.fleet-tabs button[aria-selected="true"] { background: #0F4354; border-color: #0F4354; color: #FFFFFF; font-weight: 600; }
.fleet-tabs button:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.fleet-show-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
@media (max-width: 1000px) { .fleet-show-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .fleet-show-grid { grid-template-columns: 1fr; gap: 16px; } }
.fleet-item { background: var(--surface); border: 1px solid var(--line); border-radius: 20px; overflow: hidden; box-shadow: 0 8px 24px rgba(15, 67, 84, .07); display: flex; flex-direction: column; transition: transform .25s ease, box-shadow .25s ease; }
.fleet-item[hidden] { display: none; }
.fleet-item:hover { transform: translateY(-3px); box-shadow: 0 14px 34px rgba(15, 67, 84, .12); }
.fleet-stage { position: relative; aspect-ratio: 16 / 10; background: radial-gradient(120% 90% at 50% 18%, #FFFFFF 0%, #EEF2F4 55%, #DCE3E6 100%); overflow: hidden; }
.fleet-stage::after { content: ""; position: absolute; left: 14%; right: 14%; bottom: 11%; height: 14px; border-radius: 50%; background: radial-gradient(closest-side, rgba(15, 58, 72, .28), transparent); z-index: 0; }
.fleet-stage img { position: absolute; z-index: 1; left: 6%; right: 6%; top: 14%; bottom: 10%; width: 88%; height: 76%; max-width: none; object-fit: contain; object-position: center bottom; mix-blend-mode: multiply; }
.fleet-sil { position: absolute; z-index: 1; left: 0; right: 0; bottom: 14%; display: none; justify-content: center; }
.fleet-sil svg { width: 74%; height: auto; }
.fleet-stage:not(:has(img)) .fleet-sil, .fleet-stage.noimg .fleet-sil { display: flex; }
.fleet-stage.noimg img { display: none; }
.fleet-seats { position: absolute; z-index: 2; top: 12px; left: 12px; display: inline-flex; align-items: center; gap: 6px; background: #0F4354; color: #FFFFFF; font: 600 .78rem/1 var(--f-body); padding: 7px 11px; border-radius: 999px; }
.fleet-seats svg { width: 13px; height: 13px; }
.fleet-kind { position: absolute; z-index: 2; top: 12px; right: 12px; background: rgba(255,255,255,.88); border: 1px solid #E3E8EA; color: #4A6570; font: 600 .64rem var(--f-mono); letter-spacing: .12em; text-transform: uppercase; padding: 6px 9px; border-radius: 999px; }
.fleet-body { padding: 16px 18px 18px; display: flex; flex-direction: column; flex: 1; }
.fleet-body h3 { font: 700 1.2rem/1.25 var(--f-display); color: var(--deep, #0F4354); margin: 0 0 4px; }
.fleet-body p { margin: 0 0 4px; color: var(--muted); font-size: .94rem; }
.fleet-body .fleet-models { font: 500 .76rem var(--f-mono); letter-spacing: .02em; color: #6B7F86; }
.fleet-actions { margin-top: auto; padding-top: 14px; display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.fleet-actions .btn { padding: 10px 18px; }
.fleet-wa { color: var(--accent); font-weight: 600; font-size: .9rem; text-decoration: none; }
.fleet-wa:hover { text-decoration: underline; }

/* ======================= v11: certificates & associations ======================= */
.creds-panel { padding: clamp(22px, 3vw, 34px); }
.board-list { list-style: none; padding: 0; margin: 10px 0 22px; display: flex; flex-wrap: wrap; gap: 8px; }
.board-list li { padding: 8px 14px; border-radius: 999px; background: color-mix(in srgb, var(--accent) 10%, var(--surface)); border: 1px solid color-mix(in srgb, var(--accent) 28%, transparent); color: var(--deep, #0F4354); font-size: .9rem; font-weight: 500; }
.cert-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 14px; }
.cert { appearance: none; border: 1px solid var(--line); background: #FFFFFF; border-radius: 12px; padding: 10px; cursor: zoom-in; display: flex; flex-direction: column; align-items: center; gap: 6px; transition: transform .2s, box-shadow .2s, border-color .2s; }
.cert:hover, .cert:focus-visible { transform: translateY(-2px); box-shadow: 0 10px 24px rgba(15, 67, 84, .12); border-color: var(--accent); }
.cert:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.cert img { width: 100%; aspect-ratio: 4 / 3; object-fit: contain; }
.cert span { font-size: .78rem; color: var(--muted); text-align: center; line-height: 1.3; }
.assoc-row { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 10px; }
.assoc { width: 130px; height: 84px; background: #FFFFFF; border: 1px solid var(--line); border-radius: 12px; display: grid; place-items: center; padding: 8px; }
.assoc img { max-width: 100%; max-height: 100%; object-fit: contain; }
@media (max-width: 520px) { .cert-grid { grid-template-columns: repeat(2, 1fr); } .assoc { width: calc(50% - 7px); } }

/* ======================= v12: one-liner replaces the boarding-pass ticket ======================= */
.map-head { align-items: center; }
.map-line { flex: 1 1 480px; margin: 0; font: 700 clamp(1.7rem, 3.4vw, 2.9rem)/1.12 var(--f-display); letter-spacing: -.015em; color: #FFFFFF; }
.map-line em { font-style: italic; font-weight: 500; color: #5CC8DD; }
.map-line .bp-pin path { fill: #5CC8DD; } .map-line .bp-pin circle { fill: #0F4354; }
.map-line .bp-pin::after { border-color: #5CC8DD; }
@media (max-width: 760px) { .map-line { font-size: 1.55rem; flex-basis: 100%; } }

/* ======================= v13: certificate strip, no map one-liner, larger ventures ======================= */
.map-head { justify-content: flex-end; }
@media (max-width: 760px) { .map-head { justify-content: stretch; } }

.cert-strip { position: relative; overflow: hidden; margin: 6px -4px 0; padding: 6px 0 10px;
  -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 6%, #000 94%, transparent 100%); mask-image: linear-gradient(90deg, transparent 0, #000 6%, #000 94%, transparent 100%); }
.cert-track { display: flex; gap: 18px; width: max-content; animation: certscroll 70s linear infinite; }
.cert-strip:hover .cert-track, .cert-strip:focus-within .cert-track { animation-play-state: paused; }
@keyframes certscroll { from { transform: translateX(0); } to { transform: translateX(calc(-50% - 9px)); } }
.cert-strip .cert { flex: 0 0 auto; width: 250px; padding: 12px; border-radius: 14px; }
.cert-strip .cert img { aspect-ratio: 4 / 3; }
.cert-hint { margin: 6px 0 0; font-size: .8rem; color: var(--muted); }
@media (max-width: 640px) { .cert-strip .cert { width: 200px; } .cert-track { animation-duration: 55s; } }
@media (prefers-reduced-motion: reduce) {
  .cert-strip { overflow-x: auto; -webkit-mask-image: none; mask-image: none; }
  .cert-track { animation: none; }
  .cert-track .cert[aria-hidden="true"] { display: none; }
}

/* landing page ventures: bigger, clearer cards */
.hero-slim .wrap.hs-grid { grid-template-columns: minmax(0, 1fr) 380px; }
.hs-ventures { gap: 12px; }
.hs-vlabel { font-size: .74rem; margin-bottom: 4px; }
.vent { gap: 16px; padding: 12px 18px 12px 12px; border-radius: 18px; }
.vent-logo { flex: 0 0 66px; width: 66px; height: 66px; border-radius: 14px; box-shadow: 0 4px 12px rgba(0,0,0,.18); }
.vent-logo img { width: 88%; height: 88%; }
.vent-txt b { font-size: 1.08rem; letter-spacing: .005em; }
.vent-txt small { font-size: .86rem; margin-top: 2px; }
.vent-ar { width: 30px; height: 30px; flex: 0 0 30px; border-radius: 50%; display: grid; place-items: center; border: 1px solid rgba(92, 200, 221, .45); font-size: .9rem; transition: background .3s, color .3s; }
.vent:hover .vent-ar, .vent.on .vent-ar { background: #5CC8DD; color: #0F4354; }
@media (max-width: 960px) { .hero-slim .wrap.hs-grid { grid-template-columns: 1fr; } }
@media (max-width: 640px) { .vent-logo { flex-basis: 58px; width: 58px; height: 58px; } .vent-txt b { font-size: 1rem; } }
/* desktop: World/India switch shares the row with the continent buttons */
@media (min-width: 761px) {
  .mapband .map-head { position: relative; z-index: 3; min-height: 50px; margin-bottom: -50px; pointer-events: none; }
  .mapband .map-head > * { pointer-events: auto; }
  .mapband .bp-switch { min-width: 220px; }
  .cont-bar { padding-right: 250px; margin-top: 0; min-height: 50px; }
  .cont-sum { flex-basis: 100%; order: 2; }
  .mapband[data-view="india"] .map-head { margin-bottom: 14px; }
}

/* ---- v14: centred premium map title · site-wide memberships strip ---- */
.map-title { text-align: center; max-width: 980px; margin: 4px auto 26px; }
.map-title h1 { font-family: var(--f-display); font-weight: 600; font-size: clamp(2rem, 1.1rem + 3.2vw, 3.6rem); line-height: 1.08; letter-spacing: -.005em; color: #fff; margin: 0; text-wrap: balance; }
.map-title-sub { display: flex; align-items: center; justify-content: center; gap: 14px; margin: 16px 0 0; font: 500 .8rem/1 var(--f-mono); letter-spacing: .22em; text-transform: uppercase; color: var(--map-sub); }
.map-title-sub::before, .map-title-sub::after { content: ""; width: clamp(28px, 7vw, 90px); height: 1px; background: linear-gradient(90deg, transparent, currentColor); opacity: .7; }
.map-title-sub::after { transform: scaleX(-1); }
.map-title-sub i { font-style: normal; color: var(--pin-sel, #d9b86c); font-size: .7rem; }
@media (max-width: 640px) { .map-title { margin-bottom: 18px; } .map-title-sub { font-size: .68rem; letter-spacing: .16em; gap: 9px; } }
.cont-sum { display: none; }

.members { background: #fff; border-top: 1px solid rgba(0,0,0,.06); padding: 26px 0 28px; }
.members-in { display: flex; align-items: center; gap: 28px; }
.members-lbl { flex: 0 0 auto; margin: 0; font: 500 .74rem/1.4 var(--f-mono); letter-spacing: .18em; text-transform: uppercase; color: #6b7a80; max-width: 10ch; }
.members-strip { flex: 1; min-width: 0; overflow: hidden;
  -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 7%, #000 93%, transparent 100%); mask-image: linear-gradient(90deg, transparent 0, #000 7%, #000 93%, transparent 100%); }
.members-track { display: flex; gap: 22px; width: max-content; animation: memscroll 38s linear infinite; }
.members-strip:hover .members-track { animation-play-state: paused; }
.member { flex: 0 0 auto; margin: 0; width: 180px; height: 104px; display: grid; place-items: center; padding: 10px 16px; border-radius: 14px; background: #fff; border: 1px solid rgba(0,0,0,.07); box-shadow: 0 6px 18px -12px rgba(0,40,50,.35); }
.member img { max-width: 100%; max-height: 100%; object-fit: contain; }
@keyframes memscroll { from { transform: translateX(0); } to { transform: translateX(calc(-50% - 11px)); } }
@media (max-width: 640px) { .members-in { flex-direction: column; align-items: stretch; gap: 14px; } .members-strip { width: 100%; } .members-lbl { max-width: none; text-align: center; } .member { width: 150px; height: 88px; } .members-track { animation-duration: 30s; } }
@media (prefers-reduced-motion: reduce) { .members-strip { overflow-x: auto; -webkit-mask-image: none; mask-image: none; } .members-track { animation: none; } .member[aria-hidden="true"] { display: none; } }

/* ---- v15: premium type · side tabs · talk panel · eBook ---- */
body { font-weight: 400; letter-spacing: .005em; }
h1, h2, h3, .display { font-family: var(--f-display); font-weight: 600; letter-spacing: -.005em; }
h1 em, h2 em, h3 em { font-weight: 500; }
.eyebrow, .members-lbl { font-weight: 500; letter-spacing: .2em; }

.side-tabs { position: fixed; right: 0; top: 50%; transform: translateY(-50%); z-index: 60; display: flex; flex-direction: column; gap: 6px; align-items: flex-end; }
.side-tabs .side-tab, .side-tabs .plan-tab { position: static; transform: none; top: auto; bottom: auto; display: flex; align-items: center; gap: 8px; writing-mode: vertical-rl; padding: 16px 10px; border: 0; color: #fff; border-radius: 14px 0 0 14px; font: 500 .86rem/1 var(--f-body); letter-spacing: .06em; text-decoration: none; cursor: pointer; box-shadow: -6px 8px 24px rgba(4,30,38,.28); transition: padding .2s ease, filter .2s ease; }
.side-tab svg { width: 16px; height: 16px; flex: 0 0 16px; }
.side-tab span { transform: rotate(180deg); }
.side-tab:hover, .side-tab:focus-visible, .talk-tab[aria-expanded="true"] { padding-right: 14px; filter: brightness(1.1); }
.side-tab:focus-visible { outline: 2px solid #5CC8DD; outline-offset: 2px; }
.side-tabs .plan-tab { background: #157F96; }
.side-tabs .talk-tab { background: #0F3A48; }
.side-tabs .book-tab { background: linear-gradient(180deg, #C9A35B, #A9823C); color: #1d1405; }
@media (max-width: 760px) {
  .side-tabs { top: auto; transform: none; bottom: calc(92px + env(safe-area-inset-bottom, 0px)); gap: 5px; }
  .side-tabs .side-tab { padding: 11px 7px; font-size: .74rem; gap: 6px; }
  .side-tab svg { width: 14px; height: 14px; flex-basis: 14px; }
}
@media print { .side-tabs, .talk-panel { display: none !important; } }

.talk-panel { position: fixed; z-index: 61; right: 58px; top: 50%; transform: translateY(-50%); width: min(340px, calc(100vw - 80px)); background: #fff; color: #0c2a33; border-radius: 18px; padding: 22px 20px 16px; box-shadow: 0 24px 60px -18px rgba(4,30,38,.5), 0 0 0 1px rgba(0,0,0,.05); animation: talkin .22s ease; }
.talk-panel[hidden] { display: none; }
@keyframes talkin { from { opacity: 0; translate: 10px 0; } }
.talk-x { position: absolute; top: 10px; right: 12px; width: 30px; height: 30px; border: 0; border-radius: 50%; background: #eef3f4; font-size: 1.2rem; line-height: 1; cursor: pointer; color: #0c2a33; }
.talk-k { margin: 0; font: 500 .7rem/1 var(--f-body); letter-spacing: .2em; text-transform: uppercase; color: #157F96; }
.talk-h { margin: 8px 30px 14px 0; font: 600 1.45rem/1.15 var(--f-display); }
.talk-h em { color: #157F96; }
.talk-panel ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.talk-panel a { display: flex; align-items: center; gap: 12px; padding: 10px 12px; border-radius: 12px; text-decoration: none; color: inherit; border: 1px solid #e6edef; transition: background .15s, border-color .15s; }
.talk-panel a:hover, .talk-panel a:focus-visible { background: #f2f8f9; border-color: #b9d8de; }
.talk-panel b { display: block; font-weight: 500; font-size: .95rem; }
.talk-panel small { display: block; color: #5d7178; font-size: .8rem; overflow-wrap: anywhere; }
.ti { flex: 0 0 38px; height: 38px; border-radius: 50%; display: grid; place-items: center; color: #fff; }
.ti svg { width: 18px; height: 18px; }
.ti-call { background: #157F96; } .ti-wa { background: #1FA855; } .ti-mail { background: #0F3A48; } .ti-cb { background: #A9823C; }
@media (max-width: 760px) { .talk-panel { top: auto; transform: none; bottom: calc(92px + env(safe-area-inset-bottom, 0px)); right: 44px; } }

/* eBook */
.ebook-band { background: radial-gradient(120% 80% at 50% 0%, #135062 0%, #0A2B35 60%, #071f27 100%); color: #fff; padding: 40px 0 64px; }
.ebook-head { text-align: center; max-width: 820px; margin: 0 auto 34px; }
.ebook-head .eyebrow { color: #9fd3de; }
.ebook-head h1 { font-size: clamp(2.2rem, 1.4rem + 3vw, 3.6rem); margin: 10px 0 10px; color: #fff; line-height: 1.05; }
.ebook-head h1 em { color: #E1C287; }
.ebook-lede { color: rgba(255,255,255,.78); margin: 0; font-size: 1.02rem; }
.flipbook { outline: none; }
.fb-stage { position: relative; display: flex; align-items: center; justify-content: center; gap: 10px; }
.fb-book { --pw: min(calc((100vw - 150px) / 2), calc((100svh - 110px) * .773), 720px); position: relative; width: calc(var(--pw) * 2); aspect-ratio: 1.546; display: flex; perspective: 2600px; transition: transform .5s ease; touch-action: pan-y; user-select: none; }
.fb-book.at-start { transform: translateX(-25%); }
.fb-book.at-end { transform: translateX(25%); }
.fb-page { position: relative; width: 50%; height: 100%; background: #fff; overflow: hidden; cursor: zoom-in; }
.fb-page.blank { background: transparent; box-shadow: none !important; cursor: default; }
.fb-left { border-radius: 6px 0 0 6px; box-shadow: -14px 18px 40px -16px rgba(0,0,0,.6); }
.fb-right { border-radius: 0 6px 6px 0; box-shadow: 14px 18px 40px -16px rgba(0,0,0,.6); }
.fb-page img, .fb-face img { width: 100%; height: 100%; object-fit: cover; display: block; pointer-events: none; }
.fb-left::after, .fb-right::after { content: ""; position: absolute; inset: 0; pointer-events: none; }
.fb-left:not(.blank)::after { background: linear-gradient(270deg, rgba(0,0,0,.22), rgba(0,0,0,0) 7%); }
.fb-right:not(.blank)::after { background: linear-gradient(90deg, rgba(0,0,0,.22), rgba(0,0,0,0) 7%); }
.fb-leaf { position: absolute; top: 0; width: 50%; height: 100%; transform-style: preserve-3d; transition: transform .8s cubic-bezier(.45,.05,.25,1); z-index: 5; pointer-events: none; }
.fb-leaf-r { left: 50%; transform-origin: left center; }
.fb-leaf-r.turn { transform: rotateY(-180deg); }
.fb-leaf-l { left: 0; transform-origin: right center; }
.fb-leaf-l.turn { transform: rotateY(180deg); }
.fb-face { position: absolute; inset: 0; backface-visibility: hidden; -webkit-backface-visibility: hidden; background: #fff; overflow: hidden; }
.fb-back { transform: rotateY(180deg); }
.fb-face::after { content: ""; position: absolute; inset: 0; pointer-events: none; animation: fbshade .8s ease; opacity: 0; }
.fb-leaf-r .fb-front::after { background: linear-gradient(90deg, rgba(0,0,0,.35), transparent 40%); }
.fb-leaf-l .fb-front::after { background: linear-gradient(270deg, rgba(0,0,0,.35), transparent 40%); }
@keyframes fbshade { 50% { opacity: 1; } }
.fb-nav { flex: 0 0 auto; width: 52px; height: 52px; border-radius: 50%; border: 1px solid rgba(255,255,255,.25); background: rgba(255,255,255,.08); color: #fff; display: grid; place-items: center; cursor: pointer; transition: background .2s; }
.fb-nav:hover:not(:disabled) { background: rgba(255,255,255,.2); }
.fb-nav:disabled { opacity: .3; cursor: default; }
.fb-nav svg { width: 22px; height: 22px; }
.fb-bar { display: flex; align-items: center; gap: 18px; max-width: 920px; margin: 26px auto 0; padding: 10px 16px; border-radius: 999px; background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.12); }
.fb-count { font: 500 .85rem/1 var(--f-body); letter-spacing: .08em; min-width: 82px; font-variant-numeric: tabular-nums; }
.fb-range { flex: 1; accent-color: #E1C287; min-width: 60px; }
.fb-tools { display: flex; gap: 6px; }
.fb-tools button, .fb-tools a { display: inline-flex; align-items: center; gap: 7px; padding: 8px 13px; border-radius: 999px; border: 0; background: transparent; color: #fff; font: 500 .84rem/1 var(--f-body); text-decoration: none; cursor: pointer; }
.fb-tools button:hover, .fb-tools a:hover, .fb-tools [aria-pressed="true"] { background: rgba(255,255,255,.14); }
.fb-tools svg { width: 17px; height: 17px; }
.fb-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(110px, 1fr)); gap: 14px; max-width: 1100px; margin: 22px auto 0; padding: 18px; border-radius: 18px; background: rgba(0,0,0,.18); max-height: 60vh; overflow: auto; }
.fb-grid[hidden] { display: none; }
.fb-grid button { position: relative; padding: 0; border: 2px solid transparent; border-radius: 6px; background: none; cursor: pointer; overflow: hidden; }
.fb-grid button.on, .fb-grid button:hover { border-color: #E1C287; }
.fb-grid img { display: block; width: 100%; aspect-ratio: .773; object-fit: cover; }
.fb-grid span { position: absolute; right: 4px; bottom: 4px; padding: 2px 6px; border-radius: 6px; background: rgba(0,0,0,.6); color: #fff; font: 500 .7rem/1.2 var(--f-body); }
.ebook-cta { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 12px; margin-top: 34px; text-align: center; }
.ebook-cta p { flex-basis: 100%; margin: 0 0 4px; color: rgba(255,255,255,.8); }
.ebook-cta .btn-ghost { color: #fff; border-color: rgba(255,255,255,.4); }
.fb-noscript { display: grid; gap: 12px; } .fb-noscript img { width: 100%; }
.flipbook:fullscreen { background: #071f27; display: flex; flex-direction: column; justify-content: center; padding: 20px; }
.flipbook:fullscreen .fb-book { --pw: min(calc((100vw - 170px) / 2), calc((100vh - 120px) * .773)); }
@media (max-width: 899px) {
  .fb-book { --pw: min(calc(100vw - 16px), calc((100svh - 150px) * .773)); width: var(--pw); aspect-ratio: .773; }
  .fb-left { display: none; }
  .fb-right { width: 100%; }
  .fb-right, .fb-face { border-radius: 6px; }
  .fb-right::after { display: none; }
  .fb-leaf-r { left: 0; width: 100%; }
  .fb-leaf-back { left: 0; width: 100%; transform-origin: left center; transform: rotateY(-180deg); }
  .fb-leaf-back.turn { transform: none; }
  .fb-nav { position: absolute; z-index: 6; top: 50%; translate: 0 -50%; width: 42px; height: 42px; background: rgba(7,31,39,.55); backdrop-filter: blur(4px); }
  .fb-prev { left: 4px; } .fb-next { right: 4px; }
  .fb-bar { flex-wrap: wrap; border-radius: 18px; gap: 10px 14px; }
  .fb-range { order: 3; flex-basis: 100%; }
  .fb-tools { margin-left: auto; } .fb-tools span { display: none; }
  .fb-tools [data-fb-full] { display: none; }
}
@media (prefers-reduced-motion: reduce) { .fb-book, .fb-leaf { transition: none; } }

/* ---- v16: tighter rhythm · fleet showroom compact · reviews · quote form ---- */
.section { padding-block: clamp(30px, 3.6vw, 52px); }
.section-head { margin-bottom: 20px; }
.section-head h2 { margin-bottom: 0; }
.page-hero .wrap { padding-block: clamp(56px, 7vw, 92px) 28px; }
.hero .wrap { padding-block: clamp(56px, 8vw, 104px) clamp(32px, 4vw, 52px); }
.hero-slim .wrap.hs-grid { padding-block: clamp(30px, 3.6vw, 46px); }
.band h2 { margin-bottom: 24px !important; }
.site-footer { margin-top: 0; padding-block: 44px 24px; }
.members { padding: 20px 0 22px; }
.wrap > .cta, section > .cta { margin-block: 0; }

/* fleet: every photo the same frame, slimmer cards */
.fleet-show-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
@media (max-width: 1100px) { .fleet-show-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 820px) { .fleet-show-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; } }
.fleet-item { border-radius: 14px; box-shadow: 0 4px 14px rgba(15,67,84,.06); }
.fleet-stage { aspect-ratio: 4 / 3; background: #EEF2F4; }
.fleet-stage::after { display: none; }
.fleet-stage img { inset: 0; left: 0; right: 0; top: 0; bottom: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; mix-blend-mode: normal; }
.fleet-seats { top: 10px; left: 10px; padding: 5px 9px; font-size: .72rem; }
.fleet-kind { top: 10px; right: 10px; padding: 4px 8px; font-size: .6rem; }
.fleet-body { padding: 12px 14px 14px; }
.fleet-body h3 { font-size: 1.12rem; margin-bottom: 2px; }
.fleet-body p { font-size: .86rem; line-height: 1.45; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.fleet-body .fleet-models { font-size: .72rem; -webkit-line-clamp: 1; }
.fleet-actions { padding-top: 10px; }
.fleet-actions .btn { padding: 8px 14px; font-size: .86rem; }
.fleet-wa { font-size: .84rem; }
@media (max-width: 520px) {
  .fleet-body { padding: 10px 11px 12px; } .fleet-body h3 { font-size: 1rem; }
  .fleet-actions { flex-direction: column; align-items: stretch; gap: 6px; text-align: center; }
  .fleet-kind { display: none; }
}

/* quote form */
.quote-wrap { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: 20px; align-items: start; }
.quote-side { display: grid; gap: 14px; }
@media (max-width: 860px) { .quote-wrap { grid-template-columns: 1fr; } }
.trip-switch { border: 0; padding: 0; margin: 0 0 16px; display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.trip-switch label { position: relative; cursor: pointer; }
.trip-switch input { position: absolute; opacity: 0; }
.trip-switch span { display: block; padding: 12px 14px; border: 1.5px solid var(--line); border-radius: 12px; transition: border-color .15s, background .15s; }
.trip-switch b { display: block; font-weight: 500; }
.trip-switch small { color: var(--muted); font-size: .8rem; }
.trip-switch input:checked + span { border-color: var(--accent); background: var(--accent-soft); }
.trip-switch input:focus-visible + span { outline: 2px solid var(--accent); outline-offset: 2px; }
.rate-hint { margin: 8px 0 0; padding: 10px 12px; border-radius: 10px; background: var(--accent-soft); color: var(--ink); font-size: .9rem; line-height: 1.5; }
.rate-hint b { color: var(--deep); font-weight: 600; }
.rate-plus { display: block; color: var(--muted); font-size: .8rem; }
.quote-form [hidden] { display: none !important; }
.tariff-notes ul { margin: 10px 0 0; padding-left: 18px; color: var(--muted); font-size: .9rem; display: grid; gap: 6px; }

/* reviews */
.stars { display: inline-flex; gap: 1px; color: #D7DEE0; font-size: 1rem; line-height: 1; letter-spacing: 0; }
.stars i { font-style: normal; } .stars .on { color: #C9A35B; }
.review-grid { columns: 3 300px; column-gap: 18px; }
.review { break-inside: avoid; margin: 0 0 18px; padding: 20px 20px 18px; background: var(--surface); border: 1px solid var(--line); border-radius: 16px; box-shadow: 0 4px 16px rgba(15,67,84,.05); }
.review blockquote { margin: 10px 0 14px; font: 500 1.12rem/1.5 var(--f-display); color: var(--ink); }
.review figcaption { display: flex; align-items: center; gap: 10px; }
.review figcaption b { display: block; font-weight: 500; }
.review figcaption small { display: block; color: var(--muted); font-size: .8rem; }
.review-av { flex: 0 0 36px; height: 36px; border-radius: 50%; display: grid; place-items: center; background: var(--deep); color: #fff; font: 600 1rem var(--f-display); }
.fb-score { display: flex; align-items: center; gap: 10px; margin: 6px 0 18px; }
.fb-score b { font: 600 2rem/1 var(--f-display); }
.fb-score .stars { font-size: 1.15rem; }
.fb-score span:last-child { color: inherit; opacity: .75; font-size: .9rem; }
.fb-score-sm { margin: 8px 0 0; } .fb-score-sm b { font-size: 1.4rem; }
.section-head-actions { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
.fb-empty { padding: 22px; border: 1px dashed var(--line); border-radius: 16px; text-align: center; color: var(--muted); margin: 0; }
.fb-hero { background: radial-gradient(120% 90% at 50% 0%, #135062, #0A2B35 70%); color: #fff; padding: 34px 0 40px; }
.fb-hero h1 { color: #fff; font-size: clamp(2rem, 1.3rem + 2.6vw, 3.2rem); margin: 8px 0 10px; }
.fb-hero h1 em { color: #E1C287; }
.fb-hero .eyebrow, .fb-hero .breadcrumbs, .fb-hero .breadcrumbs a { color: rgba(255,255,255,.75); }
.star-input { border: 0; padding: 0; margin: 0 0 14px; }
.star-input legend { font-size: .9rem; margin-bottom: 4px; }
.star-row { display: inline-flex; flex-direction: row-reverse; gap: 2px; }
.star-row input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.star-row label { font-size: 2rem; line-height: 1; color: #D7DEE0; cursor: pointer; transition: color .12s, transform .12s; }
.star-row label:hover, .star-row label:hover ~ label, .star-row input:checked ~ label { color: #C9A35B; }
.star-row label:hover { transform: scale(1.12); }
.star-row input:focus-visible + label { outline: 2px solid var(--accent); outline-offset: 2px; border-radius: 4px; }
.field .checks label, .checks label { font: 400 .9rem/1.2 var(--f-body); letter-spacing: 0; text-transform: none; color: var(--ink); white-space: nowrap; }

/* ---- v17: fleet fare calculator ---- */
.quote-wrap.quote-form { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(300px, 1fr); gap: 20px; align-items: start; }
@media (max-width: 860px) { .quote-wrap.quote-form { grid-template-columns: 1fr; } }
.quote-form [hidden] { display: none !important; }
.night-row { display: flex; align-items: center; gap: 10px 18px; flex-wrap: wrap; }
.night-check, .field .night-check { display: inline-flex; align-items: center; gap: 8px; font: 400 .92rem/1.3 var(--f-body); letter-spacing: 0; text-transform: none; color: var(--ink); cursor: pointer; }
.night-check input, .est-agree input { accent-color: var(--deep); width: 17px; height: 17px; }
.night-n, .field .night-n { display: inline-flex; align-items: center; gap: 8px; }
.night-n .input { width: 80px; padding-block: 8px; }
.est-card { position: sticky; top: 88px; background: linear-gradient(170deg, #0F3A48, #0A2B35); color: #fff; border-radius: 20px; padding: 22px 22px 18px; box-shadow: 0 24px 50px -24px rgba(4,30,38,.6); display: grid; gap: 12px; }
.est-card .eyebrow { color: #9fd3de; }
.est-total { margin: 0; display: grid; gap: 2px; }
.est-total small { font-size: .78rem; letter-spacing: .14em; text-transform: uppercase; color: rgba(255,255,255,.65); }
.est-total b { font: 600 2.6rem/1 var(--f-display); color: #E1C287; font-variant-numeric: tabular-nums; }
.est-lines { list-style: none; margin: 4px 0 0; padding: 10px 0 0; border-top: 1px solid rgba(255,255,255,.14); display: grid; gap: 7px; font-size: .88rem; }
.est-lines li { display: flex; justify-content: space-between; gap: 12px; color: rgba(255,255,255,.82); }
.est-lines b { font-weight: 500; color: #fff; font-variant-numeric: tabular-nums; white-space: nowrap; }
.est-lines li.gst { padding-top: 7px; border-top: 1px dashed rgba(255,255,255,.18); }
.est-extra { margin: 0; font-size: .8rem; color: rgba(255,255,255,.65); }
.est-empty { margin: 0; color: rgba(255,255,255,.82); font-size: .95rem; }
.est-terms { background: rgba(255,255,255,.06); border-radius: 12px; padding: 10px 14px; font-size: .84rem; }
.est-terms summary { cursor: pointer; font-weight: 500; }
.est-terms ul { margin: 8px 0 2px; padding-left: 18px; display: grid; gap: 5px; color: rgba(255,255,255,.8); }
.est-agree { display: flex; align-items: center; gap: 9px; font-size: .9rem; cursor: pointer; }
.est-agree.need span { color: #F2B8A8; }
.est-book { width: 100%; justify-content: center; padding-block: 13px; font-size: 1rem; }
.est-contact { display: grid; gap: 6px; text-align: center; }
.est-contact .btn-ghost { color: #fff; border-color: rgba(255,255,255,.35); justify-content: center; }
.est-contact .btn-ghost:hover { border-color: #fff; }
.est-call { color: rgba(255,255,255,.75); font-size: .85rem; }
.est-note { margin: 0; font-size: .78rem; color: rgba(255,255,255,.6); text-align: center; }
.est-bar { display: none; }
@media (max-width: 860px) {
  .est-card { position: static; }
  .est-bar:not([hidden]) { position: fixed; left: 10px; right: 84px; bottom: calc(14px + env(safe-area-inset-bottom, 0px)); z-index: 45; display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 8px 8px 8px 16px; border-radius: 16px; background: #0A2B35; color: #fff; box-shadow: 0 12px 30px rgba(0,0,0,.3); transition: opacity .2s, transform .2s; }
  .est-bar.away { opacity: 0; transform: translateY(20px); pointer-events: none; }
  .est-bar small { display: block; font-size: .66rem; letter-spacing: .12em; text-transform: uppercase; opacity: .7; }
  .est-bar b { font: 600 1.35rem/1.1 var(--f-display); color: #E1C287; }
  .est-bar .btn { padding: 10px 14px; font-size: .88rem; }
}
.est-total b, .est-bar b, .fb-score b { font-variant-numeric: lining-nums tabular-nums; }
.input.fixed { background: var(--accent-soft); color: var(--deep); font-weight: 500; cursor: default; }
.est-dl { display: inline-flex; align-items: center; justify-content: center; gap: 8px; width: 100%; padding: 10px; border: 1px dashed rgba(225,194,135,.6); border-radius: 999px; background: transparent; color: #E1C287; font: 500 .92rem var(--f-body); cursor: pointer; }
.est-dl:hover { background: rgba(225,194,135,.1); }
.est-dl svg { width: 16px; height: 16px; }

/* ---- v18: fleet thank-you with quote ---- */
.fleet-thanks .ft-head { max-width: 760px; margin: 0 auto; text-align: center; }
.ft-tick { display: grid; place-items: center; width: 58px; height: 58px; border-radius: 50%; background: #1B7A57; color: #fff; margin: 0 auto 14px; box-shadow: 0 10px 24px -10px rgba(27,122,87,.7); }
.ft-tick svg { width: 30px; height: 30px; }
.fleet-thanks .eyebrow { display: flex; justify-content: center; }
.fleet-thanks .pnr-big { margin: 10px 0 0; }
.ft-lede { max-width: 58ch; margin: 12px auto 0; }
.ft-status { margin: 14px auto 0; display: inline-block; padding: 6px 14px; border-radius: 999px; background: var(--accent-soft); color: var(--deep); font-size: .9rem; }
.ft-actions { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; margin-top: 20px; }
.ft-qh { text-align: center; margin: 36px 0 0; font-size: 1.5rem; }
.fleet-thanks .q-sheet { margin-top: 14px; }
.pulse { animation: pulse 1.2s ease-in-out 3; }
@keyframes pulse { 50% { transform: scale(1.06); box-shadow: 0 0 0 8px rgba(31,168,85,.18); } }
