/* ==========================================================================
   Lapland Transfers — design system
   Luxury Arctic expedition × Scandinavian editorial.
   1. Tokens  2. Base  3. Type  4. Layout  5. Buttons & links  6. Nav & menu
   7. Hero  8. Home sections  9. Inner pages  10. Forms  11. Footer  12. Utilities
   ========================================================================== */

/* 1. TOKENS --------------------------------------------------------------- */
:root {
    /* Brand palette, sampled from the logo (stuff/logo.jpg): navy wordmark #0d2154,
       royal-blue night sky, and an aurora running teal #18c7b4 → blue → violet #8a3ffc.
       The names are kept from the original dark system: ink-* are the page surfaces
       (white → pale blue), snow/frost/mist the text colours, aurora the solid accent.
       .theme-dark switches a block to the navy night palette. */
    --ink-950: #ffffff;
    --ink-900: #f4f6fc;
    --ink-800: #e9eef9;
    --ink-700: #dce3f3;
    --snow: #0d2154;
    --snow-2: #1b3275;
    --frost: #3e4a6b;
    --mist: #697597;
    --aurora: #2447c9;
    --aurora-deep: #173494;
    --arctic: #2f6bff;
    --violet: #8a3ffc;
    --teal: #18c7b4;
    --danger: #c0392b;
    --grad: linear-gradient(115deg, #18c7b4 0%, #2f6bff 52%, #8a3ffc 100%);

    --bg: var(--ink-950);
    --fg: var(--snow);
    --fg-soft: var(--frost);
    --fg-mute: var(--mist);
    --line: rgba(13, 33, 84, .12);
    --line-strong: rgba(13, 33, 84, .26);
    --accent: var(--aurora);

    --serif: "Instrument Serif", "Iowan Old Style", "Times New Roman", serif;
    --sans: "Manrope", system-ui, -apple-system, "Segoe UI", sans-serif;

    --fs-hero: clamp(2.85rem, 7.2vw, 7.4rem);
    --fs-xl: clamp(2.6rem, 6.2vw, 6.2rem);
    --fs-lg: clamp(2.2rem, 4.5vw, 4.3rem);
    --fs-md: clamp(1.6rem, 2.6vw, 2.4rem);
    --fs-body: clamp(1rem, .96rem + .2vw, 1.125rem);
    --fs-small: .875rem;
    --fs-eyebrow: .75rem;

    --gutter: clamp(1.25rem, 4vw, 4rem);
    --wrap: 1440px;
    --section: clamp(5.5rem, 11vw, 10.5rem);
    --r: 6px;
    --nav-h: 68px;
    --nav-h-compact: 58px;

    --ease: cubic-bezier(.16, 1, .3, 1);
    --ease-io: cubic-bezier(.65, 0, .35, 1);
    --t-fast: .25s;
    --t-med: .6s;
    --t-slow: 1.1s;
}

.theme-snow {
    --bg: #f1f5fc;
    --fg: #0d2154;
    --fg-soft: #2c3646;
    --fg-mute: #5d6878;
    --line: rgba(10, 16, 27, .14);
    --line-strong: rgba(10, 16, 27, .4);
    --accent: var(--aurora-deep);
    background: var(--bg);
    color: var(--fg);
}

@media (min-width: 1000px) { :root { --nav-h: 92px; --nav-h-compact: 70px; } }

/* 2. BASE ----------------------------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; scroll-behavior: smooth; }
html.lenis, html.lenis body { height: auto; scroll-behavior: auto; }
.lenis.lenis-stopped { overflow: hidden; }
body {
    margin: 0;
    background: var(--ink-950);
    color: var(--fg);
    font-family: var(--sans);
    font-size: var(--fs-body);
    line-height: 1.65;
    font-weight: 400;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    overflow-x: clip;
}
img, picture, svg { display: block; max-width: 100%; }
img { height: auto; }
picture { width: 100%; height: 100%; }
h1, h2, h3, h4, p, ul, ol, dl, dd, figure, blockquote { margin: 0; padding: 0; }
ul, ol { list-style: none; }
a { color: inherit; text-decoration: none; }
button { font: inherit; color: inherit; background: none; border: 0; padding: 0; cursor: pointer; }
input, select, textarea { font: inherit; color: inherit; }
::selection { background: var(--aurora); color: var(--ink-950); }
:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; border-radius: 2px; }
[hidden] { display: none !important; }

@view-transition { navigation: auto; }
::view-transition-old(root) { animation: vt-out .35s var(--ease-io) both; }
::view-transition-new(root) { animation: vt-in .5s var(--ease) both; }
@keyframes vt-out { to { opacity: 0; } }
@keyframes vt-in { from { opacity: 0; } }

.grain {
    position: fixed; inset: 0; z-index: 90; pointer-events: none; opacity: .07;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .55 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

.skip-link {
    position: fixed; left: 1rem; top: -4rem; z-index: 200; padding: .75rem 1.25rem;
    background: var(--aurora); color: var(--ink-950); font-weight: 600; border-radius: 999px;
    transition: top var(--t-fast) var(--ease);
}
.skip-link:focus { top: 1rem; }
.visually-hidden {
    position: absolute !important; width: 1px; height: 1px; overflow: hidden;
    clip-path: inset(50%); white-space: nowrap;
}

/* 3. TYPE ----------------------------------------------------------------- */
.display {
    font-family: var(--serif);
    font-weight: 400;
    line-height: 1.02;
    letter-spacing: -.015em;
    text-wrap: balance;
}
.display em { font-style: italic; color: var(--accent); letter-spacing: -.02em; }
.display--xl { font-size: var(--fs-xl); }
.display--lg { font-size: var(--fs-lg); }
.display--md { font-size: var(--fs-md); line-height: 1.12; }

.eyebrow {
    font-size: var(--fs-eyebrow);
    font-weight: 600;
    letter-spacing: .22em;
    text-transform: uppercase;
    color: var(--fg-mute);
    display: flex; align-items: center; gap: .75rem;
}
.eyebrow .dot {
    width: 6px; height: 6px; border-radius: 50%; background: var(--aurora);
    box-shadow: 0 0 0 0 rgba(24, 199, 180, .6); animation: pulse 2.8s ease-out infinite;
}
@keyframes pulse { 70% { box-shadow: 0 0 0 10px rgba(24, 199, 180, 0); } 100% { box-shadow: 0 0 0 0 rgba(24, 199, 180, 0); } }

.prose p + p { margin-top: 1.1em; }
.prose { color: var(--fg-soft); max-width: 62ch; }
.prose a, .section-head__note a { color: var(--fg); border-bottom: 1px solid var(--line-strong); transition: border-color var(--t-fast); }
.prose a:hover, .section-head__note a:hover { border-color: var(--accent); }

/* 4. LAYOUT --------------------------------------------------------------- */
.wrap { width: 100%; max-width: var(--wrap); margin-inline: auto; padding-inline: var(--gutter); }
.section { padding-block: var(--section); position: relative; }
.section-head { display: grid; gap: 1.5rem; margin-bottom: clamp(3rem, 6vw, 5.5rem); max-width: 60rem; }
.section-head--split { max-width: none; }
.section-head__note { color: var(--fg-soft); max-width: 44ch; }
@media (min-width: 900px) {
    .section-head--split { grid-template-columns: 1.4fr 1fr; align-items: end; gap: 4rem; }
    .section-head--split > div { display: grid; gap: 1.5rem; }
}
.section-head--split > div { display: grid; gap: 1.5rem; }

.facts { display: grid; border-top: 1px solid var(--line); }
.facts > div { display: grid; grid-template-columns: minmax(7.5rem, .8fr) 2fr; gap: 1rem; padding: .95rem 0; border-bottom: 1px solid var(--line); font-size: .95rem; }
.facts dt { color: var(--fg-mute); font-size: var(--fs-eyebrow); letter-spacing: .16em; text-transform: uppercase; font-weight: 600; padding-top: .2em; }
.facts dd { color: var(--fg); }

/* Image frame used across the site */
.frame { position: relative; overflow: hidden; border-radius: var(--r); background: var(--ink-800); }
.frame img { width: 100%; height: 100%; object-fit: cover; }

/* 5. BUTTONS & LINKS ------------------------------------------------------- */
.btn {
    --btn-bg: transparent; --btn-fg: var(--fg); --btn-bd: var(--line-strong);
    --btn-hover-bg: var(--snow); --btn-hover-fg: var(--ink-950);
    position: relative; isolation: isolate; overflow: hidden;
    display: inline-flex; align-items: center; justify-content: center; gap: .85rem;
    min-height: 56px; padding: 0 1.75rem;
    border: 1px solid var(--btn-bd); border-radius: 999px;
    background: var(--btn-bg); color: var(--btn-fg);
    font-size: .95rem; font-weight: 600; letter-spacing: .01em; line-height: 1; white-space: nowrap;
    transition: color var(--t-med) var(--ease), border-color var(--t-med) var(--ease);
}
.btn::before {
    content: ""; position: absolute; inset: -1px; z-index: -1; border-radius: inherit;
    background: var(--btn-hover-bg); transform: translateY(101%);
    transition: transform var(--t-med) var(--ease);
}
.btn:hover, .btn:focus-visible { color: var(--btn-hover-fg); border-color: var(--btn-hover-bg); }
.btn:hover::before, .btn:focus-visible::before { transform: translateY(0); }
.btn__arrow { display: inline-flex; transition: transform var(--t-med) var(--ease); }
.btn:hover .btn__arrow { transform: translateX(5px); }
.btn--aurora { --btn-bg: var(--aurora); --btn-fg: var(--ink-950); --btn-bd: var(--aurora); }
.btn--ghost { backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); background: rgba(6, 20, 58, .25); }
.btn--ink { --btn-bg: #0a101b; --btn-fg: var(--snow); --btn-bd: #0a101b; --btn-hover-bg: var(--aurora-deep); --btn-hover-fg: #fff; }
.btn--sm { min-height: 44px; padding: 0 1.25rem; font-size: .85rem; }
.btn--block { width: 100%; }
.btn[disabled], .btn[aria-disabled="true"] { opacity: .45; pointer-events: none; }
.btn.is-loading { pointer-events: none; }
.btn.is-loading .btn__label { opacity: .5; }
.btn.is-loading::after {
    content: ""; width: 16px; height: 16px; border-radius: 50%;
    border: 2px solid currentColor; border-right-color: transparent; animation: spin .7s linear infinite;
}
@keyframes spin { to { transform: rotate(360deg); } }

.link-arrow {
    display: inline-flex; align-items: center; gap: .6rem; font-weight: 600; font-size: .95rem;
    padding-bottom: .3rem; background: linear-gradient(currentColor, currentColor) 0 100% / 100% 1px no-repeat;
    transition: background-size var(--t-med) var(--ease), color var(--t-fast);
}
.link-arrow:hover { background-size: 0% 1px; background-position: 100% 100%; color: var(--accent); }
.link-arrow .btn__arrow { transition: transform var(--t-med) var(--ease); }
.link-arrow:hover .btn__arrow { transform: translateX(5px); }

/* 6. NAV & MENU ------------------------------------------------------------
   One composed masthead: logo · centred navigation · compact CTA on a shared
   baseline, tied together by a fine rule that echoes the rule at the foot of
   the hero. Transparent over the hero; on scroll the same component condenses
   into a translucent sticky bar. Surface, blur, rule and height ease together. */
.nav {
    --nav-ease: .7s var(--ease);
    position: fixed; inset: 0 0 auto 0; z-index: 100; height: var(--nav-h);
    transition: height var(--nav-ease);
}
/* Readability veil: a soft, eased gradient, not a bar. */
.nav::before {
    content: ""; position: absolute; inset: 0 0 -90% 0; z-index: -2; pointer-events: none;
    background: linear-gradient(to bottom, rgba(6, 20, 58, .78) 0%, rgba(6, 20, 58, .52) 32%, rgba(6, 20, 58, .2) 66%, rgba(6, 20, 58, 0) 100%);
    transition: opacity var(--nav-ease);
}
/* Sticky surface: fades in as one layer so the blur never pops. */
.nav::after {
    content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none; opacity: 0;
    background: rgba(6, 20, 58, .8);
    backdrop-filter: blur(18px) saturate(150%); -webkit-backdrop-filter: blur(18px) saturate(150%);
    border-bottom: 1px solid rgba(255, 255, 255, .1);
    transition: opacity var(--nav-ease);
}
.nav.is-scrolled { --nav-h: var(--nav-h-compact); }
.nav.is-scrolled::before { opacity: 0; }
.nav.is-scrolled::after { opacity: 1; }

.nav__inner {
    position: relative; height: 100%; max-width: var(--wrap); margin-inline: auto; padding-inline: var(--gutter);
    display: grid; grid-template-columns: 1fr auto; align-items: center; column-gap: 1.5rem;
}
/* The masthead rule (top state only; the sticky bar has its own full-width border). */
.nav__inner::after {
    content: ""; position: absolute; left: var(--gutter); right: var(--gutter); bottom: 0; height: 1px; pointer-events: none;
    background: linear-gradient(to right, rgba(255, 255, 255, .26), rgba(255, 255, 255, .12) 30%, rgba(255, 255, 255, .12) 70%, rgba(255, 255, 255, .26));
    transform-origin: center; transition: opacity var(--nav-ease), transform var(--nav-ease);
}
.nav.is-scrolled .nav__inner::after { opacity: 0; transform: scaleX(1.04); }

/* Brand */
.brand { display: inline-flex; align-items: center; gap: .7rem; justify-self: start; text-shadow: 0 1px 16px rgba(6, 20, 58, .5); }
.brand__mark { width: 34px; height: auto; transition: width var(--nav-ease); filter: drop-shadow(0 2px 10px rgba(6, 20, 58, .45)); }
.brand__word { display: grid; line-height: 1; transform: translateY(1px); }
.brand__name { font-family: var(--serif); font-size: 1.04rem; letter-spacing: .075em; text-transform: uppercase; white-space: nowrap; transition: font-size var(--nav-ease); }
.brand__sub { font-size: .5rem; letter-spacing: .58em; text-transform: uppercase; color: var(--aurora); margin-top: .34rem; font-weight: 600; padding-left: .08em; }

/* Links */
.nav__links { display: none; align-items: center; gap: clamp(1.5rem, 2.5vw, 2.4rem); }
.nav__link {
    position: relative; padding: .55rem 0; font-size: .84rem; font-weight: 500; letter-spacing: .018em; line-height: 1;
    color: rgba(243, 245, 247, .76); text-shadow: 0 1px 14px rgba(6, 20, 58, .6);
    transition: color .45s var(--ease);
}
.nav__link::after {
    content: ""; position: absolute; left: 0; bottom: .08rem; width: 100%; height: 1px; background: var(--aurora);
    transform: scaleX(0); transform-origin: left; transition: transform .6s var(--ease);
}
.nav__link:hover, .nav__link:focus-visible, .nav__link[aria-current] { color: #fff; }
.nav__link:hover::after, .nav__link:focus-visible::after { transform: scaleX(1); }
/* Active page: a single mint point beneath the word. */
.nav__link[aria-current]::before {
    content: ""; position: absolute; left: 50%; bottom: -.32rem; width: 4px; height: 4px; margin-left: -2px; border-radius: 50%;
    background: var(--aurora); box-shadow: 0 0 10px rgba(24, 199, 180, .7);
}
.nav__link[aria-current]::after { display: none; }

/* Actions */
.nav__actions { display: flex; align-items: center; justify-self: end; gap: .8rem; }
.nav__cta {
    position: relative; isolation: isolate; overflow: hidden;
    display: inline-flex; align-items: center; gap: .55rem; height: 38px; padding: 0 .95rem 0 1.05rem; border-radius: 999px;
    background: var(--aurora); color: var(--ink-950); font-size: .8rem; font-weight: 700; letter-spacing: .02em; line-height: 1; white-space: nowrap;
    transition: height var(--nav-ease), box-shadow .6s var(--ease), opacity .4s var(--ease);
}
.nav__cta::before { content: ""; position: absolute; inset: 0; z-index: -1; background: var(--snow); opacity: 0; transition: opacity .5s var(--ease); }
.nav__cta svg { transition: transform .6s var(--ease); }
.nav__cta:hover::before, .nav__cta:focus-visible::before { opacity: 1; }
.nav__cta:hover, .nav__cta:focus-visible { box-shadow: 0 6px 26px -8px rgba(24, 199, 180, .55); }
.nav__cta:hover svg, .nav__cta:focus-visible svg { transform: translateX(3px); }
.nav__cta-long, .nav__cta svg { display: none; }
.nav__cta { padding-inline: 1.05rem; }

.nav__toggle { position: relative; display: inline-flex; align-items: center; gap: .65rem; min-height: 44px; padding-left: .9rem; font-size: .8rem; font-weight: 600; letter-spacing: .04em; text-shadow: 0 1px 14px rgba(6, 20, 58, .6); }
.nav__toggle::before { content: ""; position: absolute; left: 0; top: 50%; width: 1px; height: 16px; margin-top: -8px; background: rgba(255, 255, 255, .22); }
.nav__toggle-icon { position: relative; width: 24px; height: 9px; }
.nav__toggle-icon i { position: absolute; right: 0; height: 1.5px; background: currentColor; transition: transform .7s var(--ease), top .7s var(--ease), width .7s var(--ease); }
.nav__toggle-icon i:first-child { top: 0; width: 100%; }
.nav__toggle-icon i:last-child { top: 7.5px; width: 62%; }
.nav__toggle:hover .nav__toggle-icon i:last-child { width: 100%; }
[aria-expanded="true"] .nav__toggle-icon i:first-child { top: 3.75px; transform: rotate(45deg); }
[aria-expanded="true"] .nav__toggle-icon i:last-child { top: 3.75px; width: 100%; transform: rotate(-45deg); }
/* Very narrow phones: the menu and the sticky booking bar carry the CTA instead. */
@media (max-width: 359px) { .nav__cta { display: none; } .nav__toggle { padding-left: 0; } .nav__toggle::before { display: none; } }

@media (min-width: 480px) { .nav__cta-long { display: inline; } .nav__cta svg { display: block; } .nav__cta { padding: 0 .95rem 0 1.05rem; } }
@media (min-width: 1000px) {
    /* auto | 1fr | auto: the links sit optically centred in the space between logo and CTA,
       which balances better than true page-centre because the logo is wider than the button. */
    .nav__inner { grid-template-columns: auto 1fr auto; column-gap: 2rem; }
    .nav__links { justify-self: center; }
    .nav__links { display: flex; }
    .nav__toggle { display: none; }
    .brand { gap: .8rem; }
    .brand__mark { width: 40px; }
    .brand__name { font-size: 1.24rem; }
    .brand__sub { font-size: .53rem; }
    .nav__cta { height: 40px; padding: 0 1.05rem 0 1.2rem; font-size: .8rem; gap: .6rem; }
    .nav.is-scrolled .brand__mark { width: 34px; }
    .nav.is-scrolled .brand__name { font-size: 1.14rem; }
    .nav.is-scrolled .nav__cta { height: 36px; }
}
@media (min-width: 1000px) and (max-width: 1140px) { .nav__links { gap: 1.45rem; } .nav__link { font-size: .81rem; } }

body.menu-open .nav::after, body.menu-open .nav::before { opacity: 0; }
body.menu-open .nav__inner::after { opacity: 1; transform: none; }
body.menu-open .nav__cta { opacity: 0; pointer-events: none; }

/* Full-screen menu (below 1000px) */
.menu { position: fixed; inset: 0; z-index: 95; display: grid; visibility: hidden; }
.menu.is-open { visibility: visible; }
.menu__bg {
    position: absolute; inset: 0; background:
        radial-gradient(120% 55% at 85% 0%, rgba(24, 199, 180, .14), transparent 60%),
        radial-gradient(90% 45% at 0% 100%, rgba(158, 196, 224, .1), transparent 60%),
        var(--ink-950);
    clip-path: inset(0 0 100% 0); transition: clip-path .9s var(--ease-io);
}
.menu.is-open .menu__bg { clip-path: inset(0); }
.menu__inner {
    position: relative; display: flex; flex-direction: column; justify-content: space-between; gap: 2.5rem;
    padding: calc(var(--nav-h) + clamp(1.25rem, 4vh, 2.5rem)) var(--gutter) max(1.5rem, env(safe-area-inset-bottom)); overflow-y: auto;
}
.menu__links { display: grid; }
.menu__link {
    display: grid; grid-template-columns: 2.1rem 1fr; align-items: baseline; row-gap: .15rem; padding: .78rem 0; border-bottom: 1px solid var(--line);
    opacity: 0; transform: translateY(26px); transition: opacity .3s, transform .3s;
}
.menu.is-open .menu__link { opacity: 1; transform: none; transition: opacity .9s var(--ease), transform 1s var(--ease); transition-delay: calc(.22s + var(--i, 0) * .055s); }
.menu__link:nth-child(1) { --i: 0 } .menu__link:nth-child(2) { --i: 1 } .menu__link:nth-child(3) { --i: 2 }
.menu__link:nth-child(4) { --i: 3 } .menu__link:nth-child(5) { --i: 4 } .menu__link:nth-child(6) { --i: 5 }
.menu__num { font-size: .64rem; letter-spacing: .2em; color: var(--mist); font-weight: 600; }
.menu__text { font-family: var(--serif); font-size: clamp(1.95rem, 8.2vw, 3rem); line-height: 1.08; letter-spacing: -.01em; transition: color .4s var(--ease), transform .6s var(--ease); }
.menu__meta { grid-column: 2; font-size: .78rem; color: var(--mist); letter-spacing: .01em; }
.menu__link:hover .menu__text, .menu__link:focus-visible .menu__text { transform: translateX(6px); color: var(--aurora); }
.menu__link[aria-current] .menu__text { color: var(--aurora); font-style: italic; }
.menu__link[aria-current] .menu__num { color: var(--aurora); }

.menu__foot { display: grid; gap: .8rem; opacity: 0; transform: translateY(14px); transition: opacity .3s, transform .3s; }
.menu.is-open .menu__foot { opacity: 1; transform: none; transition: opacity .9s var(--ease) .6s, transform 1s var(--ease) .6s; }
.menu__foot-k { font-size: .64rem; letter-spacing: .24em; text-transform: uppercase; color: var(--mist); font-weight: 700; }
.menu__book { display: grid; grid-template-columns: 1fr 1fr; border: 1px solid var(--line-strong); border-radius: var(--r); overflow: hidden; }
.menu__book-link { display: flex; flex-direction: column; justify-content: space-between; gap: 1.1rem; min-height: 96px; padding: .95rem 1rem; font-family: var(--serif); font-size: 1.28rem; line-height: 1.1; transition: background .5s var(--ease), color .5s var(--ease); }
.menu__book-link + .menu__book-link { border-left: 1px solid var(--line-strong); }
.menu__book-link--primary { background: var(--aurora); color: var(--ink-950); }
.menu__book-link .btn__arrow { align-self: flex-end; order: -1; transition: transform .6s var(--ease); }
.menu__book-link:hover .btn__arrow { transform: translateX(4px); }
.menu__book-link:not(.menu__book-link--primary):hover { background: rgba(255, 255, 255, .06); }
.menu__wa { font-size: .9rem; font-weight: 600; color: var(--frost); padding: .35rem 0; }
.menu__place { display: flex; justify-content: space-between; font-size: .64rem; letter-spacing: .22em; text-transform: uppercase; color: var(--mist); font-weight: 600; padding-top: .9rem; border-top: 1px solid var(--line); margin-top: .35rem; }
@media (min-width: 700px) { .menu__inner { max-width: 44rem; margin-inline: auto; width: 100%; } }

/* Mobile sticky booking bar */
.book-bar {
    position: fixed; left: .75rem; right: .75rem; bottom: max(.75rem, env(safe-area-inset-bottom)); z-index: 80;
    display: grid; grid-template-columns: 1fr 1fr; gap: 1px; overflow: hidden;
    border-radius: 999px; border: 1px solid var(--line-strong);
    background: rgba(6, 20, 58, .8); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px);
    transform: translateY(160%); transition: transform .8s var(--ease);
}
.book-bar.is-visible { transform: none; }
.book-bar__link { min-height: 54px; display: flex; flex-direction: column; align-items: center; justify-content: center; font-size: .88rem; font-weight: 600; line-height: 1.2; }
.book-bar__link:first-child { background: var(--aurora); color: var(--ink-950); }
.book-bar__kicker { font-size: .6rem; letter-spacing: .2em; text-transform: uppercase; opacity: .7; }
@media (min-width: 900px) { .book-bar { display: none; } }
body.menu-open .book-bar { transform: translateY(160%); }

/* 7. HERO ------------------------------------------------------------------ */
.hero { position: relative; min-height: max(100svh, 640px); display: flex; flex-direction: column; justify-content: flex-end; overflow: hidden; isolation: isolate; }
/* The scene — ONE photograph art-directed into a wide cinematic frame.
   The client photography is portrait, so the hero is built from two copies of
   the same image that share one vertical geometry:
     .hero__atmos  a pre-blurred copy stretched edge to edge (sky glow, dark ground)
     .hero__focal  the sharp photograph, centre-right, feathered with a mask
   Because both are the same picture at the same height, horizon and colour
   line up and the pair reads as a single image. */
.hero__scene {
    --focal-w: min(76vw, 1180px);
    --scene-h: max(118svh, calc(var(--focal-w) * 1.3333));
    --focal-x: 61%;
    position: absolute; left: 0; right: 0; z-index: -4;
    height: var(--scene-h); bottom: calc(var(--scene-h) * -.04);
    will-change: transform;
}
/* A breath, not a Ken Burns move: felt rather than noticed. */
.hero__drift { position: absolute; inset: 0; transform-origin: 61% 74%; transform: scale(1.03); animation: hero-breathe 28s ease-in-out infinite alternate; }
@keyframes hero-breathe { from { transform: scale(1.03); } to { transform: scale(1.08); } }
.hero__atmos { position: absolute; inset: 0 -4%; }
.hero__atmos img { width: 100%; height: 100%; object-fit: fill; }
.hero__focal {
    position: absolute; top: 0; height: 100%; aspect-ratio: 3 / 4;
    left: calc(var(--focal-x) - var(--scene-h) * .375);
    -webkit-mask-image: linear-gradient(to right, transparent 0%, rgba(0, 0, 0, .08) 8%, rgba(0, 0, 0, .32) 17%, rgba(0, 0, 0, .68) 27%, #000 38%, #000 76%, rgba(0, 0, 0, .7) 85%, rgba(0, 0, 0, .3) 93%, transparent 100%);
    mask-image: linear-gradient(to right, transparent 0%, rgba(0, 0, 0, .08) 8%, rgba(0, 0, 0, .32) 17%, rgba(0, 0, 0, .68) 27%, #000 38%, #000 76%, rgba(0, 0, 0, .7) 85%, rgba(0, 0, 0, .3) 93%, transparent 100%);
}
.hero__focal picture { position: absolute; inset: 0; will-change: transform; }
.hero__focal img { width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 899px) { .hero__scene { --focal-x: 50%; } }

/* Restrained aurora light above the scene: a slow sway of colour, no particles. */
.hero__aurora {
    position: absolute; inset: -12% -8% 28% 24%; z-index: -3; pointer-events: none; mix-blend-mode: screen;
    background:
        radial-gradient(38% 52% at 56% 34%, rgba(24, 199, 180, .2), transparent 72%),
        radial-gradient(26% 40% at 82% 58%, rgba(138, 63, 252, .08), transparent 72%);
    animation: aurora-sway 19s ease-in-out infinite alternate;
}
@keyframes aurora-sway { from { opacity: .5; transform: translate3d(-2.5%, 1%, 0); } to { opacity: 1; transform: translate3d(2.5%, -2%, 0) scale(1.07); } }

/* Directional light control: text side, base strip, header, and a soft vignette. No boxes. */
.hero__shade {
    position: absolute; inset: 0; z-index: -2; pointer-events: none;
    background:
        linear-gradient(to right, rgba(6, 20, 58, .88) 0%, rgba(6, 20, 58, .78) 18%, rgba(6, 20, 58, .6) 34%, rgba(6, 20, 58, .36) 48%, rgba(6, 20, 58, .12) 62%, rgba(6, 20, 58, 0) 74%),
        linear-gradient(to top, rgba(6, 20, 58, .96) 0%, rgba(6, 20, 58, .7) 14%, rgba(6, 20, 58, .28) 32%, rgba(6, 20, 58, 0) 52%),
        linear-gradient(to bottom, rgba(6, 20, 58, .62) 0%, rgba(6, 20, 58, .2) 16%, rgba(6, 20, 58, 0) 30%),
        radial-gradient(115% 95% at 61% 46%, rgba(6, 20, 58, 0) 52%, rgba(6, 20, 58, .38) 80%, rgba(6, 20, 58, .7) 100%);
}
@media (max-width: 899px) {
    .hero__shade {
        background:
            linear-gradient(to top, rgba(6, 20, 58, .97) 0%, rgba(6, 20, 58, .86) 26%, rgba(6, 20, 58, .5) 48%, rgba(6, 20, 58, .08) 68%, rgba(6, 20, 58, 0) 78%),
            linear-gradient(to bottom, rgba(6, 20, 58, .6) 0%, rgba(6, 20, 58, .15) 14%, rgba(6, 20, 58, 0) 26%),
            radial-gradient(130% 90% at 50% 40%, rgba(6, 20, 58, 0) 55%, rgba(6, 20, 58, .5) 100%);
    }
}
/* Low haze where the forest meets the sky. */
.hero__haze { position: absolute; left: 0; right: 0; bottom: 14%; height: 26%; z-index: -2; pointer-events: none; background: linear-gradient(to top, rgba(158, 196, 224, 0), rgba(158, 196, 224, .055) 45%, rgba(158, 196, 224, 0)); }
.hero__glow {
    position: absolute; z-index: -1; left: -10%; right: -10%; bottom: -34%; height: 66%; pointer-events: none;
    background: radial-gradient(44% 58% at 24% 100%, rgba(24, 199, 180, .13), transparent 70%), radial-gradient(36% 48% at 78% 100%, rgba(138, 63, 252, .07), transparent 70%);
    animation: glow-drift 16s ease-in-out infinite alternate;
}
@keyframes glow-drift { to { transform: translate3d(4%, -6%, 0) scale(1.08); } }
/* The first screen develops out of the dark, as one image. */
.hero__veil { position: absolute; inset: 0; z-index: -1; pointer-events: none; background: var(--ink-950); animation: hero-veil 2.4s var(--ease-io) .05s both; }
@keyframes hero-veil { to { opacity: 0; } }
/* Shared by the inner-page hero images */
@keyframes hero-curtain { from { transform: scaleY(1); } to { transform: scaleY(0); } }
@keyframes hero-zoom { from { transform: scale(1.3); } to { transform: scale(1.04); } }

.hero__content { padding-top: calc(var(--nav-h) + 3rem); padding-bottom: clamp(2rem, 5vh, 4rem); display: grid; gap: clamp(1.25rem, 2.4vw, 2rem); }
.hero__eyebrow { color: var(--frost); animation: fade-up 1.2s var(--ease) .05s both; }
.hero__title { font-size: var(--fs-hero); line-height: .98; max-width: 16ch; text-wrap: initial; }
.hero__title .line { display: block; overflow: hidden; padding-bottom: .12em; margin-bottom: -.12em; }
.hero__title .line > span { display: block; animation: line-rise 1.4s var(--ease) both; }
.hero__title .line:nth-child(1) > span { animation-delay: .1s; }
.hero__title .line:nth-child(2) > span { animation-delay: .2s; }
.hero__title .line:nth-child(3) > span { animation-delay: .3s; }
@keyframes line-rise { from { transform: translateY(112%) rotate(2deg); } to { transform: none; } }
@keyframes fade-up { from { opacity: 0; transform: translateY(22px); } to { opacity: 1; transform: none; } }
.hero__lede { max-width: 50ch; color: var(--frost); font-size: clamp(1rem, 1.25vw, 1.2rem); animation: fade-up 1.2s var(--ease) .45s both; }
.hero__actions { display: flex; flex-wrap: wrap; gap: .75rem; animation: fade-up 1.2s var(--ease) .6s both; }
@media (max-width: 599px) { .hero__actions .btn { width: 100%; } }

.hero__foot { display: flex; align-items: stretch; gap: 0; border-top: 1px solid var(--line); animation: fade-up 1.2s var(--ease) 1.2s both; }
.hero__fact { display: none; flex: 1; gap: 1.25rem; align-items: baseline; padding: 1.4rem 2rem 1.6rem 0; transition: color var(--t-fast); }
.hero__fact + .hero__fact { padding-left: 2rem; border-left: 1px solid var(--line); }
.hero__fact-k { font-size: .7rem; letter-spacing: .2em; color: var(--aurora); font-weight: 600; }
.hero__fact-v { font-weight: 600; font-size: .98rem; display: grid; gap: .15rem; }
.hero__fact-v small { font-weight: 400; color: var(--mist); font-size: .85rem; transition: color var(--t-fast); }
.hero__fact:hover small { color: var(--snow); }
.hero__scroll { margin-left: auto; display: flex; align-items: center; gap: 1rem; padding: 1.4rem 0 1.6rem; font-size: .7rem; letter-spacing: .24em; text-transform: uppercase; color: var(--frost); font-weight: 600; }
.hero__scroll i { position: relative; width: 1px; height: 44px; background: var(--line-strong); overflow: hidden; }
.hero__scroll i::after { content: ""; position: absolute; left: 0; top: 0; width: 100%; height: 50%; background: var(--aurora); animation: scroll-hint 2.2s var(--ease-io) infinite; }
@keyframes scroll-hint { from { transform: translateY(-100%); } to { transform: translateY(200%); } }
@media (min-width: 900px) { .hero__fact { display: flex; } }

/* 8. HOME SECTIONS --------------------------------------------------------- */

/* Statement */
.statement { padding-block: var(--section); position: relative; }
.statement__grid { display: grid; gap: 2.5rem; }
.statement__text { font-size: clamp(2rem, 4.6vw, 4.5rem); line-height: 1.08; max-width: 22ch; text-wrap: pretty; }
.statement__text .word { display: inline-block; }
.statement__aside { display: grid; gap: 1.5rem; color: var(--fg-soft); max-width: 40ch; justify-items: start; }
@media (min-width: 1000px) {
    .statement__grid { grid-template-columns: 1fr 3fr; column-gap: 4rem; }
    .statement__text { grid-column: 2; max-width: 20ch; }
    .statement__aside { grid-column: 2; margin-left: auto; margin-top: 2rem; }
}

/* Signature services */
.services { position: relative; border-top: 1px solid var(--line); }
.services__head { display: flex; justify-content: space-between; align-items: center; padding-top: clamp(2rem, 4vw, 3rem); }
.services__count { display: none; align-items: center; gap: 1rem; font-size: .75rem; letter-spacing: .2em; font-weight: 600; color: var(--mist); }
.services__count i { width: 56px; height: 1px; background: var(--line-strong); }
.services__count span:first-child { color: var(--aurora); }
.service { padding-block: clamp(3rem, 7vw, 5rem); }
.service + .service { border-top: 1px solid var(--line); }
.service__grid { display: grid; gap: 2.5rem; align-items: center; }
.service__body { display: grid; gap: 1.5rem; max-width: 34rem; }
.service__index { font-family: var(--serif); font-size: 1.25rem; color: var(--aurora); font-style: italic; }
.service__text { color: var(--fg-soft); }
.service__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1.25rem 2rem; margin-top: .5rem; }
.service__media { position: relative; order: -1; padding-bottom: 12%; }
.service__img { overflow: hidden; border-radius: var(--r); background: var(--ink-800); }
.service__img img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.6s var(--ease); }
.service__img--main { aspect-ratio: 4 / 5; width: 82%; }
.service__img--inset { position: absolute; right: 0; bottom: 0; width: 40%; aspect-ratio: 3 / 4; border: 6px solid var(--ink-950); border-radius: calc(var(--r) + 4px); }
.service--transfer .service__img--main { margin-left: auto; }
.service--transfer .service__img--inset { right: auto; left: 0; }
.service__media:hover .service__img--main img { transform: scale(1.04); }

@media (min-width: 1000px) {
    .service__grid { grid-template-columns: 1fr 1fr; gap: clamp(3rem, 7vw, 8rem); }
    .service__media { order: 0; padding-bottom: 0; height: min(74vh, 760px); }
    .service__img--main { height: 100%; width: auto; aspect-ratio: 3 / 4; margin-left: auto; }
    .service__img--inset { width: 30%; left: 0; right: auto; bottom: 8%; }
    .service--transfer .service__media { order: -1; }
    .service--transfer .service__img--main { margin-left: 0; margin-right: auto; }
    .service--transfer .service__img--inset { left: auto; right: 0; }
    .service--transfer .service__body { margin-left: auto; }

    .services.is-pinned { height: 280vh; }
    .services.is-pinned .services__sticky { position: sticky; top: 0; height: 100vh; overflow: hidden; }
    .services.is-pinned .services__head { position: absolute; inset: 0 0 auto 0; z-index: 3; padding-top: calc(var(--nav-h) + .5rem); }
    .services.is-pinned .services__count { display: flex; }
    .services.is-pinned .service { position: absolute; inset: 0; padding: calc(var(--nav-h) + 2.5rem) 0 2rem; display: grid; align-items: center; border: 0; }
    .services.is-pinned .service:not(.is-current) { pointer-events: none; }
    .services.is-pinned .service__media { height: min(70vh, 720px); }
}

/* Story */
.story { border-top: 1px solid var(--line); }
.story__grid { display: grid; gap: 3rem; }
.story__visual { display: none; }
.story__steps { display: grid; gap: 3.5rem; counter-reset: step; }
.story__step { display: grid; gap: .9rem; }
.story__step-img { border-radius: var(--r); overflow: hidden; aspect-ratio: 4 / 5; margin-bottom: .75rem; background: var(--ink-800); }
.story__step-img img { width: 100%; height: 100%; object-fit: cover; }
.story__num { font-size: .72rem; letter-spacing: .22em; color: var(--aurora); font-weight: 600; }
.story__title { font-size: var(--fs-md); }
.story__text { color: var(--fg-soft); max-width: 42ch; }
.story__cta { margin-top: clamp(3rem, 6vw, 5rem); }
@media (min-width: 1000px) {
    .story__grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(4rem, 9vw, 10rem); align-items: start; }
    .story__visual { display: block; position: sticky; top: calc(50vh - min(38vh, 380px)); }
    .story__frame { position: relative; height: min(76vh, 760px); aspect-ratio: 3 / 4; border-radius: var(--r); overflow: hidden; background: var(--ink-800); }
    .story__img { position: absolute; inset: 0; clip-path: inset(100% 0 0 0); transition: clip-path 1.2s var(--ease-io); }
    .story__img img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.18); transition: transform 1.8s var(--ease); }
    .story__img.is-active, .story__img.is-past { clip-path: inset(0); }
    .story__img.is-active img, .story__img.is-past img { transform: scale(1); }
    .story__counter { position: absolute; left: 1.25rem; bottom: 1.1rem; font-size: .72rem; letter-spacing: .2em; font-weight: 600; text-shadow: 0 1px 12px rgba(0, 0, 0, .6); }
    .story__step-img { display: none; }
    .story__steps { gap: 0; position: relative; padding-left: 3rem; }
    .story__steps::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 1px; background: var(--line); }
    .story__step { min-height: 62vh; align-content: center; opacity: .62; transition: opacity .8s var(--ease); position: relative; }
    .story__step::before { content: ""; position: absolute; left: calc(-3rem - 3px); top: 50%; width: 7px; height: 7px; border-radius: 50%; background: var(--ink-950); border: 1px solid var(--line-strong); transition: background .5s, border-color .5s, box-shadow .5s; }
    .story__step.is-active { opacity: 1; }
    .story__step.is-active::before { background: var(--aurora); border-color: var(--aurora); box-shadow: 0 0 0 6px rgba(24, 199, 180, .15); }
    .story__title { font-size: clamp(2rem, 3.2vw, 3rem); }
    html:not(.js) .story__step { opacity: 1; }
}

/* Why */
.why { overflow: hidden; border-top: 1px solid var(--line); isolation: isolate; }
.why__bg { position: absolute; inset: -12% 0; z-index: -1; opacity: .22; }
.why__bg img { width: 100%; height: 100%; object-fit: cover; filter: blur(2px) saturate(.9); }
.why::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(to bottom, var(--ink-950), rgba(6, 20, 58, .7) 40%, var(--ink-950)); }
.why__list { display: grid; gap: 0; }
.why__item { --line-scale: 1; position: relative; display: grid; gap: .75rem; padding: 2.25rem 0; grid-template-columns: 1fr; }
.why__item::after { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 1px; background: var(--line-strong); transform: scaleX(var(--line-scale)); transform-origin: left; }
.why__num { font-size: clamp(4.5rem, 9vw, 8.5rem); line-height: .85; letter-spacing: -.04em; color: var(--snow); }
.why__title { font-size: 1.05rem; font-weight: 700; letter-spacing: .005em; margin-top: .75rem; }
.why__item p { color: var(--fg-soft); font-size: .98rem; max-width: 36ch; }
@media (min-width: 700px) { .why__list { grid-template-columns: 1fr 1fr; column-gap: 3rem; } }
@media (min-width: 1200px) { .why__list { grid-template-columns: repeat(4, 1fr); column-gap: 2.5rem; } .why__item { padding-top: 2.5rem; } }

/* Route / transfer feature */
.route__map { position: relative; margin-bottom: clamp(3rem, 6vw, 5rem); }
.route__svg { width: 100%; height: auto; overflow: visible; }
.route__track { fill: none; stroke: var(--line-strong); stroke-width: 1.5; stroke-dasharray: .006 .01; }
.route__line { fill: none; stroke: var(--fg); stroke-width: 2.5; stroke-linecap: round; stroke-dasharray: 1; stroke-dashoffset: 0; }
.route__ring { fill: none; stroke: var(--line-strong); stroke-width: 1.2; stroke-dasharray: .012 .012; }
.route__ring--inner { stroke: var(--line); }
.route__stop { fill: var(--bg); stroke: var(--fg); stroke-width: 2.5; }
.route__dot { fill: var(--aurora-deep); stroke: rgba(31, 157, 111, .25); stroke-width: 14; paint-order: stroke; }
.route__label { display: flex; align-items: baseline; gap: .75rem; font-weight: 600; font-size: .95rem; }
.route__label small { display: block; font-weight: 400; color: var(--fg-mute); font-size: .82rem; }
.route__code { font-size: .68rem; letter-spacing: .2em; text-transform: uppercase; padding: .3rem .55rem; border: 1px solid var(--line-strong); border-radius: 999px; font-weight: 700; }
.route__label--to { justify-content: flex-end; text-align: right; margin-top: .75rem; }
.route__label--from { margin-bottom: .75rem; }
.route__map { display: flex; flex-direction: column; }
.route__map .route__label--from { order: -1; }
@media (min-width: 900px) {
    .route__label { position: absolute; }
    .route__label--from { left: 4%; top: 2%; margin: 0; }
    .route__label--to { right: 0; top: 100%; margin: 0; transform: translateY(-40%); }
}
.route__prices { display: grid; border-top: 1px solid var(--line-strong); }
.route__price { padding: 1.75rem 0; border-bottom: 1px solid var(--line); display: grid; grid-template-columns: 1fr auto; align-items: end; gap: .25rem 1.5rem; }
.route__price-name { font-weight: 700; }
.route__price-fig { font-size: clamp(3.2rem, 6vw, 5.5rem); line-height: .9; grid-row: span 2; grid-column: 2; }
.route__price-cap { color: var(--fg-mute); font-size: .88rem; }
@media (min-width: 900px) {
    .route__prices { grid-template-columns: repeat(3, 1fr); }
    .route__price { grid-template-columns: 1fr; padding: 2rem 2.5rem 2rem 0; border-bottom: 1px solid var(--line-strong); align-items: start; gap: .5rem; }
    .route__price + .route__price { padding-left: 2.5rem; border-left: 1px solid var(--line); }
    .route__price-fig { grid-row: auto; grid-column: auto; margin: 1rem 0 .5rem; }
}
.route__beyond { margin-top: clamp(3.5rem, 7vw, 6rem); display: grid; gap: 1.5rem; }
.route__list { display: grid; }
.route__list a { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; padding: 1.1rem 0; border-bottom: 1px solid var(--line); transition: padding var(--t-med) var(--ease), color var(--t-fast); }
.route__list a:hover { padding-left: .75rem; color: var(--accent); }
.route__dest { font-size: clamp(1.35rem, 2.2vw, 1.9rem); line-height: 1.15; }
.route__from { font-size: .9rem; font-weight: 600; white-space: nowrap; color: var(--fg-soft); }
@media (min-width: 800px) { .route__list { grid-template-columns: 1fr 1fr; column-gap: 4rem; } }
.route__cta { display: flex; flex-wrap: wrap; align-items: center; gap: 1.25rem 2rem; margin-top: clamp(2.5rem, 5vw, 4rem); }

/* Gallery */
.gallery { position: relative; border-top: 1px solid var(--line); padding-block: var(--section) calc(var(--section) * .8); }
.gallery__head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: end; gap: 1.5rem; margin-bottom: clamp(2rem, 4vw, 3.5rem); }
.gallery__head > div { display: grid; gap: 1.5rem; }
.gallery__hint { display: inline-flex; align-items: center; gap: .6rem; font-size: .72rem; letter-spacing: .2em; text-transform: uppercase; font-weight: 600; color: var(--mist); }
.gallery__hint-desktop { display: none; }
.gallery__viewport { overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
.gallery__viewport::-webkit-scrollbar { display: none; }
.gallery__track { display: flex; align-items: center; gap: clamp(1rem, 2.4vw, 2.5rem); padding-inline: var(--gutter); width: max-content; }
.gallery__item { scroll-snap-align: center; flex: none; --h: 58vh; }
.gallery__item figure { display: grid; gap: .75rem; }
.gallery__img { height: min(var(--h), 640px); aspect-ratio: 3 / 4; overflow: hidden; border-radius: var(--r); background: var(--ink-800); }
.gallery__img img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.6s var(--ease); }
.gallery__item:hover img { transform: scale(1.05); }
.gallery__item figcaption { font-size: .68rem; letter-spacing: .2em; color: var(--mist); font-weight: 600; }
.gallery__item figcaption span { color: var(--snow); }
.gallery__item--tall { --h: 64vh; }
.gallery__item--wide .gallery__img { aspect-ratio: 4 / 3; }
.gallery__item--wide { --h: 46vh; }
.gallery__item--square .gallery__img { aspect-ratio: 1; }
.gallery__item--square { --h: 50vh; }
.gallery__item--small { --h: 40vh; align-self: flex-end; }
.gallery__item:nth-child(3n) { align-self: flex-start; }
@media (max-width: 699px) {
    .gallery__item { --h: 52vh; } .gallery__item--tall { --h: 56vh; }
    .gallery__item--wide { --h: 30vh; } .gallery__item--small { --h: 38vh; } .gallery__item--square { --h: 36vh; }
}
@media (min-width: 1000px) {
    .gallery.is-pinned { padding: 0; }
    .gallery.is-pinned .gallery__sticky { position: sticky; top: 0; height: 100vh; display: flex; flex-direction: column; justify-content: center; overflow: hidden; padding-top: var(--nav-h); }
    .gallery.is-pinned .gallery__viewport { overflow: visible; scroll-snap-type: none; }
    .gallery.is-pinned .gallery__track { will-change: transform; }
    .gallery.is-pinned .gallery__hint-desktop { display: inline; }
    .gallery.is-pinned .gallery__hint-touch { display: none; }
    .gallery.is-pinned .gallery__head { margin-bottom: 2rem; }
    .gallery.is-pinned .gallery__item { --h: 50vh; }
    .gallery.is-pinned .gallery__item--tall { --h: 58vh; }
    .gallery.is-pinned .gallery__item--wide { --h: 44vh; }
    .gallery.is-pinned .gallery__item--small { --h: 36vh; }
    .gallery.is-pinned .gallery__item--square { --h: 46vh; }
}

/* Reviews (renders only when real reviews exist) */
.reviews { border-top: 1px solid var(--line); }
.reviews__list { display: grid; gap: 3rem; }
.review { display: grid; gap: 1.5rem; padding-top: 2rem; border-top: 1px solid var(--line-strong); }
.review__quote { font-size: clamp(1.5rem, 2.4vw, 2.2rem); line-height: 1.2; }
.review__by { display: flex; flex-wrap: wrap; gap: .4rem 1.25rem; font-size: .85rem; color: var(--fg-mute); }
.review__name { color: var(--fg); font-weight: 700; }
@media (min-width: 900px) { .reviews__list { grid-template-columns: repeat(2, 1fr); column-gap: 5rem; } }

/* FAQ */
.faq-section { border-top: 1px solid var(--line); }
.faq-section__grid { display: grid; gap: 1rem; }
@media (min-width: 1000px) {
    .faq-section__grid { grid-template-columns: 1fr 1.35fr; gap: clamp(3rem, 8vw, 9rem); align-items: start; }
    .faq-section__head { position: sticky; top: calc(var(--nav-h) + 2rem); margin-bottom: 0; }
}
.faq__tabs { display: flex; gap: .5rem; margin-bottom: 1.5rem; overflow-x: auto; scrollbar-width: none; padding-bottom: 2px; margin-inline: calc(var(--gutter) * -1); padding-inline: var(--gutter); }
.faq__tabs::-webkit-scrollbar { display: none; }
.faq__tab { flex: none; min-height: 44px; padding: 0 1.15rem; border-radius: 999px; border: 1px solid var(--line); font-size: .85rem; font-weight: 600; color: var(--fg-soft); transition: background var(--t-med) var(--ease), color var(--t-fast), border-color var(--t-fast); }
.faq__tab:hover { border-color: var(--line-strong); color: var(--fg); }
.faq__tab[aria-selected="true"] { background: var(--fg); color: var(--bg); border-color: var(--fg); }
.faq__panel { animation: fade-up .7s var(--ease) both; }
.faq__topic { font-family: var(--serif); font-weight: 400; font-size: var(--fs-md); margin: 3.5rem 0 1rem; }
.faq__panel:first-of-type .faq__topic { margin-top: 0; }
.faq__item { border-bottom: 1px solid var(--line); }
.faq__item:first-of-type { border-top: 1px solid var(--line); }
.faq__q { font: inherit; }
.faq__q button { width: 100%; display: flex; justify-content: space-between; align-items: center; gap: 1.5rem; padding: 1.35rem 0; text-align: left; font-weight: 600; font-size: 1.05rem; line-height: 1.4; transition: color var(--t-fast); }
.faq__q button:hover { color: var(--accent); }
.faq__icon { position: relative; flex: none; width: 34px; height: 34px; border-radius: 50%; border: 1px solid var(--line-strong); transition: background var(--t-med) var(--ease), border-color var(--t-med), transform var(--t-med) var(--ease); }
.faq__icon::before, .faq__icon::after { content: ""; position: absolute; left: 50%; top: 50%; width: 12px; height: 1.5px; background: currentColor; transform: translate(-50%, -50%); transition: transform var(--t-med) var(--ease); }
.faq__icon::after { transform: translate(-50%, -50%) rotate(90deg); }
[aria-expanded="true"] .faq__icon { background: var(--accent); border-color: var(--accent); color: var(--bg); transform: rotate(180deg); }
[aria-expanded="true"] .faq__icon::after { transform: translate(-50%, -50%) rotate(0deg); }
.faq__a { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .7s var(--ease); }
.faq__a-inner { overflow: hidden; min-height: 0; visibility: hidden; transition: visibility 0s .7s; }
.faq__a p { padding: 0 3.5rem 1.6rem 0; color: var(--fg-soft); max-width: 62ch; opacity: 0; transform: translateY(-8px); transition: opacity .5s, transform .7s var(--ease); }
.faq__item.is-open .faq__a { grid-template-rows: 1fr; }
.faq__item.is-open .faq__a-inner { visibility: visible; transition-delay: 0s; }
.faq__item.is-open .faq__a p { opacity: 1; transform: none; transition-delay: .12s; }
html:not(.js) .faq__a { grid-template-rows: 1fr; } html:not(.js) .faq__a-inner { visibility: visible; } html:not(.js) .faq__a p { opacity: 1; transform: none; }
html:not(.js) .faq__panel[hidden] { display: block !important; }

/* Final CTA */
.cta { position: relative; min-height: 100svh; display: flex; align-items: flex-end; isolation: isolate; overflow: hidden; padding-block: clamp(6rem, 12vw, 10rem) clamp(3rem, 6vw, 5rem); }
.cta__media { position: absolute; inset: 0; z-index: -1; }
.cta__img { position: absolute; inset: -10% 0; transition: opacity 1.2s var(--ease), transform 2.4s var(--ease); }
.cta__img img { width: 100%; height: 100%; object-fit: cover; }
.cta__img--b { opacity: 0; transform: scale(1.06); }
.cta[data-active="b"] .cta__img--b { opacity: 1; transform: none; }
.cta[data-active="b"] .cta__img--a { opacity: 0; transform: scale(1.06); }
.cta__shade { position: absolute; inset: 0; background: linear-gradient(to top, rgba(6, 20, 58, .95) 6%, rgba(6, 20, 58, .45) 46%, rgba(6, 20, 58, .05) 72%, var(--ink-950) 100%); }
.cta__inner { display: grid; gap: clamp(1.5rem, 3vw, 2.5rem); }
.cta__title { max-width: 17ch; }
.cta__choices { display: grid; gap: 1rem; margin-top: 1rem; }
.cta__choice {
    position: relative; display: grid; grid-template-columns: auto 1fr auto; grid-template-areas: "num name arrow" "num meta arrow";
    align-items: center; column-gap: 1.5rem; row-gap: .25rem; padding: 1.6rem 1.75rem;
    border: 1px solid var(--line-strong); border-radius: var(--r); overflow: hidden; isolation: isolate;
    background: rgba(6, 20, 58, .35); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
    transition: border-color var(--t-med), color var(--t-med);
}
.cta__choice::before { content: ""; position: absolute; inset: 0; z-index: -1; background: var(--aurora); transform: scaleY(0); transform-origin: bottom; transition: transform .7s var(--ease); }
.cta__choice:hover, .cta__choice:focus-visible { color: var(--ink-950); border-color: var(--aurora); }
.cta__choice:hover::before, .cta__choice:focus-visible::before { transform: scaleY(1); }
.cta__num { grid-area: num; font-size: .72rem; letter-spacing: .2em; font-weight: 600; opacity: .7; align-self: start; padding-top: .6rem; }
.cta__name { grid-area: name; font-size: clamp(1.7rem, 3vw, 2.6rem); }
.cta__meta { grid-area: meta; font-size: .9rem; opacity: .75; }
.cta__choice .btn__arrow { grid-area: arrow; width: 48px; height: 48px; border-radius: 50%; border: 1px solid currentColor; align-items: center; justify-content: center; transition: transform var(--t-med) var(--ease); }
.cta__choice:hover .btn__arrow { transform: rotate(-45deg); }
@media (min-width: 900px) { .cta__choices { grid-template-columns: 1fr 1fr; gap: 1.5rem; } .cta__choice { padding: 2.25rem 2.25rem; } }

/* 9. INNER PAGES ----------------------------------------------------------- */
.phero { position: relative; min-height: max(100svh, 680px); display: grid; align-items: end; isolation: isolate; overflow: hidden; padding: calc(var(--nav-h) + 3rem) 0 clamp(2.5rem, 5vw, 4.5rem); }
.phero__glow { position: absolute; inset: 0; z-index: -2; background: radial-gradient(60% 50% at 78% 30%, rgba(24, 199, 180, .14), transparent 70%), radial-gradient(40% 40% at 10% 90%, rgba(158, 196, 224, .1), transparent 70%); }
.phero__grid { display: grid; gap: 2.5rem; align-items: end; }
.phero__body { display: grid; gap: 1.5rem; }
.phero__crumbs { display: flex; gap: .6rem; font-size: .72rem; letter-spacing: .16em; text-transform: uppercase; color: var(--mist); font-weight: 600; animation: fade-up 1.2s var(--ease) .3s both; }
.phero__crumbs a:hover { color: var(--snow); }
.phero__crumbs [aria-current] { color: var(--aurora); }
.phero__title { font-size: clamp(2.9rem, 6.6vw, 6.6rem); line-height: .98; }
.phero__title .line { display: block; overflow: hidden; padding-bottom: .14em; margin-bottom: -.14em; }
.phero__title .line > span { display: block; animation: line-rise 1.4s var(--ease) both; animation-delay: calc(.1s + var(--i, 0) * .1s); }
.phero__title .line:nth-child(2) { --i: 1 } .phero__title .line:nth-child(3) { --i: 2 }
.phero__lede { color: var(--frost); max-width: 48ch; font-size: clamp(1rem, 1.2vw, 1.175rem); animation: fade-up 1.2s var(--ease) .8s both; }
.phero__actions { display: flex; flex-wrap: wrap; gap: .75rem; animation: fade-up 1.2s var(--ease) .95s both; }
.phero__media { position: relative; }
.phero__img { position: relative; overflow: hidden; border-radius: var(--r); aspect-ratio: 4 / 5; background: var(--ink-800); }
.phero__img picture { position: absolute; inset: -8% 0; height: 116%; }
.phero__img img { width: 100%; height: 100%; object-fit: cover; animation: hero-zoom 2.6s var(--ease) both; }
.phero__img::after { content: ""; position: absolute; inset: 0; background: var(--ink-950); transform-origin: top; animation: hero-curtain 1.5s var(--ease-io) .1s both; }
.phero__img--inset { position: absolute; width: 38%; left: -6%; bottom: -7%; aspect-ratio: 3 / 4; border: 6px solid var(--ink-950); border-radius: calc(var(--r) + 4px); display: none; }
.phero__img--inset::after { animation-delay: .35s; }
@media (max-width: 999px) {
    .phero { align-items: start; }
    .phero__media { order: -1; margin-inline: calc(var(--gutter) * -1); margin-top: calc((var(--nav-h) + 3rem) * -1); }
    .phero__img { border-radius: 0; aspect-ratio: 4 / 4.6; }
    .phero__img::before { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(to top, var(--ink-950) 2%, transparent 45%, rgba(6, 20, 58, .5) 100%); }
    .phero__body { margin-top: -5rem; position: relative; z-index: 2; }
}
@media (min-width: 1000px) {
    .phero__grid { grid-template-columns: 1.25fr 1fr; gap: clamp(3rem, 6vw, 7rem); }
    .phero__img { height: min(78vh, 820px); aspect-ratio: auto; }
    .phero__img--inset { display: block; height: auto; aspect-ratio: 3 / 4; }
    .phero--simple { min-height: 72svh; }
}
.phero--simple .phero__grid { grid-template-columns: 1fr; }

/* Quick facts bar */
.quick { border-block: 1px solid var(--line); }
.quick__grid { display: grid; grid-template-columns: 1fr 1fr; }
.quick__item { padding: 1.75rem 1rem 1.75rem 0; display: grid; gap: .4rem; align-content: start; border-bottom: 1px solid var(--line); }
.quick__item:nth-child(even) { padding-left: 1.25rem; border-left: 1px solid var(--line); }
.quick__k { font-size: var(--fs-eyebrow); letter-spacing: .18em; text-transform: uppercase; color: var(--mist); font-weight: 600; }
.quick__v { font-family: var(--serif); font-size: clamp(1.3rem, 2vw, 1.8rem); line-height: 1.15; }
@media (min-width: 900px) {
    .quick__grid { grid-template-columns: repeat(4, 1fr); }
    .quick__item { border-bottom: 0; padding: 2.25rem 2rem 2.25rem 0; }
    .quick__item + .quick__item { padding-left: 2rem; border-left: 1px solid var(--line); }
}

/* Editorial split (text + image) */
.split { display: grid; gap: 3rem; align-items: center; }
.split__media { position: relative; }
.split__img { border-radius: var(--r); overflow: hidden; aspect-ratio: 4 / 5; background: var(--ink-800); position: relative; }
.split__img picture { position: absolute; inset: -8% 0; height: 116%; }
.split__img img { width: 100%; height: 100%; object-fit: cover; }
.split__body { display: grid; gap: 1.75rem; justify-items: start; }
@media (min-width: 1000px) {
    .split { grid-template-columns: 1fr 1fr; gap: clamp(4rem, 8vw, 9rem); }
    .split--flip .split__media { order: 2; }
    .split__img { max-width: 560px; }
    .split--flip .split__img { margin-left: auto; }
}

/* Editorial list (what to expect / principles) */
.tenets { display: grid; border-top: 1px solid var(--line-strong); }
.tenet { display: grid; gap: .75rem; padding: 2rem 0; border-bottom: 1px solid var(--line); }
.tenet__k { font-size: .72rem; letter-spacing: .2em; color: var(--accent); font-weight: 700; }
.tenet__t { font-family: var(--serif); font-size: var(--fs-md); line-height: 1.1; }
.tenet p { color: var(--fg-soft); max-width: 52ch; }
@media (min-width: 900px) { .tenet { grid-template-columns: 6rem 1fr 1.3fr; gap: 2rem; align-items: baseline; padding: 2.5rem 0; } }

/* Notice */
.notice { display: grid; gap: 1rem; padding: clamp(1.75rem, 4vw, 3rem); border: 1px solid var(--line-strong); border-radius: var(--r); background: linear-gradient(135deg, rgba(24, 199, 180, .07), transparent 55%); }
.notice .display { font-size: var(--fs-md); }
.notice p:not(.display):not(.eyebrow) { color: var(--fg-soft); max-width: 60ch; }

/* Price list */
.prices__tabs { display: flex; gap: .5rem; margin-bottom: 2rem; flex-wrap: wrap; }
.prices__scroll { overflow-x: auto; margin-inline: calc(var(--gutter) * -1); padding-inline: var(--gutter); scrollbar-width: thin; }
.ptable { width: 100%; min-width: 640px; border-collapse: collapse; font-variant-numeric: tabular-nums; }
.ptable caption { text-align: left; padding-bottom: 1rem; color: var(--fg-mute); font-size: .88rem; caption-side: bottom; padding-top: 1.25rem; }
.ptable th, .ptable td { padding: 1.05rem 1rem 1.05rem 0; text-align: right; border-bottom: 1px solid var(--line); white-space: nowrap; }
.ptable th:first-child, .ptable td:first-child { text-align: left; white-space: normal; min-width: 15rem; }
.ptable thead th { font-size: var(--fs-eyebrow); letter-spacing: .14em; text-transform: uppercase; color: var(--fg-mute); font-weight: 700; border-bottom: 1px solid var(--line-strong); vertical-align: bottom; }
.ptable thead th small { display: block; font-weight: 500; letter-spacing: .04em; text-transform: none; margin-top: .35rem; font-size: .78rem; }
.ptable tbody th { font-weight: 600; }
.ptable tbody th small { display: block; font-weight: 400; color: var(--fg-mute); font-size: .82rem; }
.ptable td { font-family: var(--serif); font-size: 1.45rem; }
.ptable td a { display: inline-block; padding: .1rem .2rem; border-bottom: 1px solid transparent; transition: color var(--t-fast), border-color var(--t-fast); }
.ptable td a:hover { color: var(--accent); border-color: var(--accent); }
.ptable tbody tr { transition: background var(--t-fast); }
.ptable tbody tr:hover { background: color-mix(in srgb, var(--fg) 4%, transparent); }

/* Vehicles */
.fleet { display: grid; border-top: 1px solid var(--line-strong); }
.fleet__item { display: grid; gap: .5rem; padding: 2rem 0; border-bottom: 1px solid var(--line); }
.fleet__seats { font-family: var(--serif); font-size: clamp(3.5rem, 6vw, 5.5rem); line-height: .9; }
.fleet__seats small { font-family: var(--sans); font-size: .8rem; letter-spacing: .14em; text-transform: uppercase; color: var(--fg-mute); font-weight: 600; margin-left: .5rem; }
.fleet__name { font-weight: 700; font-size: 1.1rem; margin-top: .75rem; }
.fleet__item p { color: var(--fg-soft); font-size: .95rem; }
@media (min-width: 900px) {
    .fleet { grid-template-columns: repeat(3, 1fr); }
    .fleet__item { padding: 2.5rem 2.5rem 2.5rem 0; }
    .fleet__item + .fleet__item { padding-left: 2.5rem; border-left: 1px solid var(--line); }
}

/* Process steps (horizontal on desktop) */
.steps { display: grid; counter-reset: s; }
.steps__item { position: relative; padding: 2rem 0 2rem 3.25rem; border-top: 1px solid var(--line); display: grid; gap: .6rem; }
.steps__item::before { counter-increment: s; content: "0" counter(s); position: absolute; left: 0; top: 2.15rem; font-size: .72rem; letter-spacing: .2em; color: var(--accent); font-weight: 700; }
.steps__t { font-family: var(--serif); font-size: 1.6rem; line-height: 1.15; }
.steps__item p { color: var(--fg-soft); font-size: .97rem; max-width: 40ch; }
@media (min-width: 1000px) {
    .steps { grid-template-columns: repeat(4, 1fr); gap: 2.5rem; }
    .steps__item { padding: 3.25rem 0 0; border-top: 1px solid var(--line-strong); }
    .steps__item::before { top: 1.25rem; }
}

/* Booking starter (service pages) */
.starter { border: 1px solid var(--line-strong); border-radius: calc(var(--r) * 2); padding: clamp(1.5rem, 4vw, 3rem); display: grid; gap: 2rem; background: linear-gradient(160deg, rgba(24, 199, 180, .08), rgba(158, 196, 224, .03) 40%, transparent 70%), var(--ink-900); }
.theme-snow .starter { background: #fff; border-color: var(--line); box-shadow: 0 30px 80px -40px rgba(10, 16, 27, .25); }
.starter__head { display: grid; gap: .75rem; }
.starter__form { display: grid; gap: 1.25rem; }
.starter__row { display: grid; gap: 1.25rem; }
.starter__foot { display: flex; flex-wrap: wrap; gap: 1.25rem 2rem; align-items: center; justify-content: space-between; padding-top: 1.5rem; border-top: 1px solid var(--line); }
.starter__price { display: grid; gap: .1rem; }
.starter__price-k { font-size: var(--fs-eyebrow); letter-spacing: .18em; text-transform: uppercase; color: var(--fg-mute); font-weight: 600; }
.starter__price-v { font-family: var(--serif); font-size: clamp(2.2rem, 4vw, 3.2rem); line-height: 1; }
.starter__price-n { font-size: .85rem; color: var(--fg-mute); }
@media (min-width: 800px) { .starter__row { grid-template-columns: repeat(3, 1fr); } .starter__row--2 { grid-template-columns: 2fr 1fr; } }

/* Small mosaic gallery for inner pages */
.mosaic { display: grid; grid-template-columns: repeat(2, 1fr); gap: clamp(.75rem, 1.6vw, 1.5rem); }
.mosaic__item { overflow: hidden; border-radius: var(--r); background: var(--ink-800); aspect-ratio: 3 / 4; }
.mosaic__item img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.6s var(--ease); }
.mosaic__item:hover img { transform: scale(1.05); }
.mosaic__item--wide { grid-column: span 2; aspect-ratio: 4 / 3; }
@media (min-width: 900px) {
    .mosaic { grid-template-columns: repeat(12, 1fr); }
    .mosaic__item { grid-column: span 3; }
    .mosaic__item--wide { grid-column: span 6; aspect-ratio: auto; }
    .mosaic__item--lg { grid-column: span 4; }
    .mosaic__item--offset { margin-top: 4rem; }
}

/* Language menu (page translator): a native select laid invisibly over a compact label */
.lang { position: relative; display: inline-flex; align-items: center; gap: .45rem; min-height: 44px; font-size: .78rem; font-weight: 700; letter-spacing: .08em; color: rgba(243, 245, 247, .82); cursor: pointer; transition: color var(--t-fast); }
.lang:hover, .lang:focus-within { color: var(--aurora); }
.lang:focus-within { outline: 2px solid var(--accent); outline-offset: 4px; border-radius: 4px; }
.lang__select { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; font-size: 1rem; appearance: none; }
.lang__select option { color: #05080f; background: #fff; }
.nav__lang { display: none; text-shadow: 0 1px 14px rgba(6, 20, 58, .6); }
@media (min-width: 1000px) { .nav__lang { display: inline-flex; margin-right: .3rem; } }
.lang__name { display: none; font-weight: 600; letter-spacing: .02em; }
.menu__lang { justify-self: start; font-size: .85rem; }
.menu__lang .lang__name { display: inline; }
.menu__lang .lang__code { color: var(--mist); }

/* Google Translate: keep its toolbar, tooltip and hover highlight out of the design */
.gt-host { position: absolute; left: -9999px; top: 0; width: 1px; height: 1px; overflow: hidden; }
.skiptranslate > iframe, iframe.goog-te-banner-frame, iframe[id=":1.container"], iframe.VIpgJd-ZVi9od-ORHb-OEVmcd { display: none !important; }
html.is-translated body { top: 0 !important; }
#goog-gt-tt, .goog-te-balloon-frame, .VIpgJd-yAWNEb-L7lbkb, .VIpgJd-ZVi9od-aZ2wEe-wOHMyf { display: none !important; }
.goog-text-highlight, .VIpgJd-yAWNEb-VIpgJd-fmcmS-sn54Q { background: none !important; box-shadow: none !important; }

/* Sky wall: licensed aurora photography, every picture at its own proportions (never cropped) */
.skywall { columns: 2; column-gap: clamp(.75rem, 1.6vw, 1.5rem); }
.skywall__item { break-inside: avoid; margin-bottom: clamp(.75rem, 1.6vw, 1.5rem); overflow: hidden; border-radius: var(--r); background: var(--ink-800); }
.skywall__item img { display: block; width: 100%; height: auto; }
@media (min-width: 600px) { .skywall { columns: 2; } }
@media (min-width: 1100px) { .skywall { columns: 3; } }

/* Sky reel: short silent clips in a swipeable row */
.reel .section-head__note { display: grid; gap: 1.25rem; justify-items: start; }
.section-head__note .link-arrow { border-bottom: 0; color: var(--fg); }
.reel__viewport { overflow-x: auto; scroll-snap-type: x proximity; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
.reel__viewport::-webkit-scrollbar { display: none; }
.reel__viewport:focus-visible { outline: 2px solid var(--accent); outline-offset: -2px; }
.reel__track { display: flex; gap: clamp(.75rem, 1.6vw, 1.5rem); padding-inline: var(--gutter); width: max-content; }
.reel__item { flex: none; scroll-snap-align: center; width: min(62vw, 300px); aspect-ratio: 9 / 16; overflow: hidden; border-radius: var(--r); background: var(--ink-800); }
.reel__item:nth-child(even) { margin-top: clamp(1rem, 3vw, 2.5rem); }
.clip { display: block; width: 100%; height: 100%; object-fit: cover; }
@media (min-width: 1000px) { .reel__item { width: min(21vw, 320px); } }
.reel__nav { display: flex; gap: .75rem; margin-top: clamp(1.5rem, 3vw, 2.5rem); }
.reel__nav[hidden] { display: none; }
.reel__btn { display: grid; place-items: center; width: 3.25rem; height: 3.25rem; border: 1px solid var(--line-strong); border-radius: 50%; color: var(--fg); transition: border-color var(--t-fast), color var(--t-fast), opacity var(--t-fast); }
.reel__btn:hover { border-color: var(--accent); color: var(--accent); }
.reel__btn:disabled { opacity: .3; pointer-events: none; }
.reel__btn--prev .btn__arrow { transform: rotate(180deg); }

.media-credit { margin-top: 1.5rem; font-size: .78rem; color: var(--fg-mute); }

/* 10. FORMS ---------------------------------------------------------------- */
.field { display: grid; gap: .5rem; min-width: 0; }
.field__label { font-size: var(--fs-eyebrow); letter-spacing: .16em; text-transform: uppercase; font-weight: 700; color: var(--fg-mute); display: flex; justify-content: space-between; gap: 1rem; }
.field__label small { letter-spacing: .04em; text-transform: none; font-weight: 500; }
.input, .select, .textarea {
    width: 100%; min-height: 56px; padding: .9rem 1.1rem; border-radius: var(--r);
    border: 1px solid var(--line-strong); background: color-mix(in srgb, var(--fg) 4%, transparent); color: var(--fg);
    font-size: 1rem; line-height: 1.4; transition: border-color var(--t-fast), box-shadow var(--t-fast), background var(--t-fast);
    appearance: none; -webkit-appearance: none;
}
.textarea { min-height: 140px; resize: vertical; }
.select { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' fill='none' stroke='%238b98a9' stroke-width='1.6'%3E%3Cpath d='m1 1 6 6 6-6'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 1.1rem center; padding-right: 2.75rem; text-overflow: ellipsis; }
.select option, .select optgroup { background: var(--ink-800); color: var(--snow); }
.theme-snow .select option, .theme-snow .select optgroup { background: #fff; color: #0a101b; }
.input::placeholder, .textarea::placeholder { color: var(--fg-mute); opacity: .8; }
.input:hover, .select:hover, .textarea:hover { border-color: color-mix(in srgb, var(--fg) 50%, transparent); }
.input:focus, .select:focus, .textarea:focus { outline: none; border-color: var(--accent); box-shadow: 0 0 0 4px color-mix(in srgb, var(--accent) 22%, transparent); }
.field.has-error .input, .field.has-error .select, .field.has-error .textarea { border-color: var(--danger); }
.field__error { color: var(--danger); font-size: .85rem; min-height: 0; }
.theme-snow .field__error { color: #b42318; }
.field__hint { color: var(--fg-mute); font-size: .85rem; }
.hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.form-status { padding: 1rem 1.25rem; border-radius: var(--r); border: 1px solid var(--line-strong); font-size: .95rem; }
.form-status--error { border-color: var(--danger); color: var(--danger); }
.form-status--ok { border-color: var(--aurora); background: rgba(24, 199, 180, .08); }
.form-grid { display: grid; gap: 1.25rem; }
@media (min-width: 700px) { .form-grid--2 { grid-template-columns: 1fr 1fr; } .form-grid .span-2 { grid-column: span 2; } }

/* Contact */
.contact-grid { display: grid; gap: 4rem; }
@media (min-width: 1000px) { .contact-grid { grid-template-columns: 1fr 1.2fr; gap: clamp(4rem, 8vw, 9rem); align-items: start; } }
.contact-list { display: grid; border-top: 1px solid var(--line-strong); }
.contact-list__row { display: grid; gap: .3rem; padding: 1.5rem 0; border-bottom: 1px solid var(--line); }
.contact-list__k { font-size: var(--fs-eyebrow); letter-spacing: .18em; text-transform: uppercase; color: var(--mist); font-weight: 700; }
.contact-list__v { font-family: var(--serif); font-size: clamp(1.4rem, 2.2vw, 1.9rem); line-height: 1.2; }
.contact-list__v a { transition: color var(--t-fast); } .contact-list__v a:hover { color: var(--aurora); }
.contact-list__row p:not([class]) { color: var(--fg-soft); font-size: .95rem; }
.shortcuts { display: grid; gap: 1rem; }
.shortcut { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 1rem; padding: 1.4rem 1.5rem; border: 1px solid var(--line-strong); border-radius: var(--r); transition: border-color var(--t-med), background var(--t-med); }
.shortcut:hover { border-color: var(--aurora); background: rgba(24, 199, 180, .06); }
.shortcut__t { font-family: var(--serif); font-size: 1.5rem; line-height: 1.1; }
.shortcut__m { color: var(--mist); font-size: .88rem; }
.shortcut:hover .btn__arrow { transform: translateX(5px); }

/* 404 */
.lost { min-height: 100svh; display: grid; align-items: center; padding-top: var(--nav-h); position: relative; isolation: isolate; }
.lost__bg { position: absolute; inset: 0; z-index: -1; opacity: .35; }
.lost__bg img { width: 100%; height: 100%; object-fit: cover; }
.lost__bg::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, var(--ink-950), transparent 60%, var(--ink-950)); }
.lost__inner { display: grid; gap: 1.75rem; justify-items: start; }

/* 11. FOOTER --------------------------------------------------------------- */
.footer { position: relative; border-top: 1px solid var(--line); padding: clamp(4rem, 8vw, 7rem) 0 calc(2rem + 70px); overflow: hidden; isolation: isolate; background: var(--ink-950); }
@media (min-width: 900px) { .footer { padding-bottom: 2rem; } }
.footer__aurora { position: absolute; z-index: -1; left: -10%; right: -10%; top: -40%; height: 90%; background: radial-gradient(45% 55% at 25% 50%, rgba(24, 199, 180, .1), transparent 70%), radial-gradient(35% 45% at 80% 40%, rgba(138, 63, 252, .07), transparent 70%); filter: blur(10px); }
.footer__top { display: grid; gap: 2.5rem; align-items: end; padding-bottom: clamp(3rem, 6vw, 5rem); border-bottom: 1px solid var(--line); }
.footer__brand img { width: clamp(180px, 22vw, 280px); height: auto; }
.footer__line { font-size: clamp(2.4rem, 6vw, 5.5rem); }
@media (min-width: 900px) { .footer__top { grid-template-columns: auto 1fr; gap: 5rem; } .footer__line { text-align: right; } }
.footer__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 2.5rem 2rem; padding-block: clamp(3rem, 6vw, 4.5rem); }
@media (min-width: 900px) { .footer__grid { grid-template-columns: repeat(4, 1fr); } }
.footer__h { font-family: var(--sans); font-size: var(--fs-eyebrow); letter-spacing: .2em; text-transform: uppercase; color: var(--mist); font-weight: 700; margin-bottom: 1.25rem; }
.footer__col ul { display: grid; gap: .7rem; }
.footer__col a { color: var(--frost); font-size: .97rem; background: linear-gradient(var(--aurora), var(--aurora)) 0 100% / 0 1px no-repeat; transition: background-size var(--t-med) var(--ease), color var(--t-fast); padding-bottom: 2px; }
.footer__col a:hover { color: var(--snow); background-size: 100% 1px; }
.footer__base { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .75rem 2rem; padding-top: 1.75rem; border-top: 1px solid var(--line); font-size: .82rem; color: var(--mist); }
.footer__top-link:hover { color: var(--aurora); }

/* 12. UTILITIES & MOTION PREFERENCES ---------------------------------------- */
.mt-lg { margin-top: clamp(3rem, 6vw, 5rem); }
.stack { display: grid; gap: 1.5rem; justify-items: start; }
.center-cta { display: flex; flex-wrap: wrap; gap: 1.25rem 2rem; align-items: center; }
.border-top { border-top: 1px solid var(--line); }

/* SplitText line masks */
.split-line-mask { overflow: hidden; padding-bottom: .14em; margin-bottom: -.14em; }

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after { animation-duration: .01ms !important; animation-delay: 0s !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; transition-delay: 0s !important; }
    .phero__img picture, .split__img picture { inset: 0; height: 100%; }
    .hero__drift { transform: scale(1.03); }
    ::view-transition-old(root), ::view-transition-new(root) { animation: none; }
}

/* Page-level helpers */
.wrap--narrow { max-width: 66rem; }
.faq-page, .contact-page { padding-top: clamp(3rem, 6vw, 5rem); }
.contact-aside { display: grid; gap: 3rem; }
.notice .center-cta { margin-top: .5rem; }

/* 13. HANDOFF ADDITIONS ------------------------------------------------------
   Trust, contact and legal components added after the September 2026 audit.
   Most of them print only once the client's details exist in app/config.php. */

/* Direct contact in the masthead and the menu */
.nav__tel { display: none; font-size: .82rem; font-weight: 600; letter-spacing: .02em; color: rgba(243, 245, 247, .82); white-space: nowrap; text-shadow: 0 1px 14px rgba(6, 20, 58, .6); transition: color var(--t-fast); }
.nav__tel:hover { color: var(--aurora); }
@media (min-width: 1240px) { .nav__tel { display: inline-block; margin-right: .4rem; } }
.menu__reach { display: flex; flex-wrap: wrap; gap: .15rem 1.5rem; }

/* Floating WhatsApp button — sits above the mobile booking bar */
.wa-fab {
    position: fixed; right: .9rem; bottom: calc(max(.75rem, env(safe-area-inset-bottom)) + 54px + .85rem); z-index: 85;
    display: inline-flex; align-items: center; gap: .6rem; height: 52px; min-width: 52px; padding: 0 13px; border-radius: 999px;
    background: #25d366; color: #05140b; font-size: .85rem; font-weight: 700; box-shadow: 0 10px 30px -10px rgba(0, 0, 0, .7);
    transition: transform var(--t-med) var(--ease), box-shadow var(--t-med) var(--ease);
}
.wa-fab:hover, .wa-fab:focus-visible { transform: translateY(-3px); box-shadow: 0 16px 36px -12px rgba(37, 211, 102, .55); }
.wa-fab__label { display: none; padding-right: .35rem; }
@media (min-width: 900px) { .wa-fab { right: 1.5rem; bottom: 1.5rem; } .wa-fab__label { display: inline; } }
@media (max-width: 999px) { .page-book .wa-fab { display: none; } } /* the wizard has its own help link above its sticky bar */
body.menu-open .wa-fab { opacity: 0; pointer-events: none; }

/* Cookie consent */
.consent { position: fixed; left: .75rem; right: .75rem; bottom: max(.75rem, env(safe-area-inset-bottom)); z-index: 120; transform: translateY(24px); opacity: 0; transition: transform .7s var(--ease), opacity .5s var(--ease); }
.consent.is-open { transform: none; opacity: 1; }
.consent__inner { max-width: 60rem; margin-inline: auto; display: grid; gap: 1.1rem; padding: 1.25rem 1.35rem; border: 1px solid var(--line-strong); border-radius: calc(var(--r) * 2); background: rgba(8, 13, 23, .94); backdrop-filter: blur(18px); -webkit-backdrop-filter: blur(18px); box-shadow: 0 30px 80px -30px rgba(0, 0, 0, .8); }
.consent__title { font-family: var(--serif); font-size: 1.45rem; line-height: 1.1; }
.consent__text { color: var(--frost); font-size: .9rem; margin-top: .4rem; max-width: 70ch; }
.consent__text a { color: var(--snow); border-bottom: 1px solid var(--line-strong); }
.consent__options { display: grid; gap: .75rem; padding-top: 1rem; border-top: 1px solid var(--line); }
.consent__opt { display: grid; grid-template-columns: auto 1fr; gap: .85rem; align-items: start; font-size: .9rem; cursor: pointer; }
.consent__opt input { width: 20px; height: 20px; margin: .15rem 0 0; accent-color: var(--aurora); }
.consent__opt small { display: block; color: var(--mist); font-size: .82rem; }
.consent__actions { display: flex; flex-wrap: wrap; gap: .6rem; justify-content: flex-end; }
@media (max-width: 599px) { .consent__actions .btn { flex: 1 1 calc(50% - .3rem); } }

/* Keyword subheadings under the poetic H1s, price hook, policy line */
.hero__sub, .phero__sub { font-family: var(--sans); font-size: clamp(.78rem, .9vw, .9rem); font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: var(--aurora); line-height: 1.5; max-width: 46ch; }
.hero__sub { animation: fade-up 1.2s var(--ease) .38s both; }
.phero__sub { animation: fade-up 1.2s var(--ease) .7s both; }
.phero__title--keyed .phero__key { font-family: var(--sans); font-size: clamp(.8rem, 1vw, .95rem); font-weight: 600; letter-spacing: .18em; text-transform: uppercase; color: var(--aurora); line-height: 1.5; margin-bottom: .9rem; padding-bottom: 0; }
.phero__price { display: flex; flex-wrap: wrap; align-items: baseline; gap: .35rem .7rem; font-size: 1rem; color: var(--frost); animation: fade-up 1.2s var(--ease) .7s both; }
.phero__price strong { font-family: var(--serif); font-weight: 400; font-size: clamp(2rem, 3.4vw, 3rem); line-height: 1; color: var(--snow); }
.phero__price span { flex-basis: 100%; font-size: .9rem; color: var(--aurora); font-weight: 600; }
.policy-line { font-size: .88rem; color: var(--fg-soft); max-width: 76ch; text-wrap: pretty; }
.policy-line a { border-bottom: 1px solid var(--line-strong); margin-left: .25rem; }
.policy-line a:hover { border-color: var(--accent); }
.hero__policy { animation: fade-up 1.2s var(--ease) .75s both; }
.cta__policy { margin-top: .5rem; }

/* Trust bar */
.trust { border-bottom: 1px solid var(--line); background: var(--ink-900); }
.trust__list { display: grid; grid-template-columns: 1fr 1fr; }
.trust__item { display: flex; align-items: center; gap: .8rem; padding: 1.15rem .75rem 1.15rem 0; font-size: .85rem; font-weight: 600; line-height: 1.35; color: var(--frost); border-bottom: 1px solid var(--line); }
.trust__item:nth-child(even) { padding-left: 1rem; border-left: 1px solid var(--line); }
.trust__item:nth-last-child(-n+2) { border-bottom: 0; }
.trust__item svg { flex: none; color: var(--aurora); }
.trust__item a { border-bottom: 1px solid transparent; transition: color var(--t-fast), border-color var(--t-fast); }
.trust__item a:hover { color: var(--snow); border-color: var(--aurora); }
@media (min-width: 900px) {
    .trust__list { grid-template-columns: repeat(4, 1fr); }
    .trust__item { padding: 1.5rem 1.5rem 1.5rem 0; border-bottom: 0; font-size: .9rem; }
    .trust__item + .trust__item { padding-left: 1.5rem; border-left: 1px solid var(--line); }
}

/* "Why" — a word in place of a numeral */
.why__num--word { font-size: clamp(3.4rem, 6.4vw, 6rem); font-style: italic; color: var(--aurora); letter-spacing: -.03em; }

/* Quick-facts bar with more than four items */
@media (min-width: 900px) {
    .quick__grid--wrap { grid-template-columns: repeat(4, 1fr); margin-bottom: -1px; }
    .quick__grid--wrap .quick__item { border-bottom: 1px solid var(--line); }
    .quick__grid--wrap .quick__item:nth-child(4n+1) { padding-left: 0; border-left: 0; }
}

/* Real vehicle photographs */
.rides { display: grid; gap: clamp(1rem, 2vw, 2rem); }
.rides__img, .fleet__img { aspect-ratio: 4 / 3; overflow: hidden; border-radius: var(--r); background: var(--ink-800); }
.rides__img img, .fleet__img img { width: 100%; height: 100%; object-fit: cover; }
.rides__item figcaption { display: grid; gap: .15rem; margin-top: .9rem; }
.rides__item figcaption span { color: var(--fg-mute); font-size: .9rem; }
.tenets + .rides { margin-top: clamp(3rem, 6vw, 5rem); }
.fleet__img { margin-bottom: 1.25rem; }
.fleet__extras { margin-top: clamp(2.5rem, 5vw, 4rem); }
@media (min-width: 900px) { .rides { grid-template-columns: repeat(3, 1fr); } }

/* Without JavaScript every price table and FAQ topic is open, so each needs its label */
.prices__region, .faq__topic--tabbed { display: none; }
html:not(.js) .prices__tabs, html:not(.js) .faq__tabs { display: none; }
html:not(.js) .prices__scroll[hidden] { display: block !important; }
html:not(.js) .prices__region { display: block; font-family: var(--serif); font-weight: 400; font-size: var(--fs-md); margin: 3rem 0 1rem; }
html:not(.js) .prices__scroll:first-of-type .prices__region { margin-top: 0; }
html:not(.js) .faq__topic--tabbed { display: block; }

/* Notices */
.notice--promise { margin-top: 1.5rem; background: linear-gradient(135deg, rgba(158, 196, 224, .08), transparent 55%); }
.notice--urgent { border-color: color-mix(in srgb, var(--aurora) 55%, transparent); background: linear-gradient(135deg, rgba(24, 199, 180, .12), transparent 60%); }
.channels { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 1.5rem; margin-top: .5rem; }

/* Tour: evening timeline, included / not included */
.timeline { display: grid; border-top: 1px solid var(--line-strong); }
.timeline__item { display: grid; gap: .5rem; padding: 1.75rem 0; border-bottom: 1px solid var(--line); }
.timeline__time { font-size: clamp(2rem, 3.4vw, 3rem); color: var(--accent); }
.timeline__t { font-family: var(--serif); font-weight: 400; font-size: var(--fs-md); line-height: 1.1; }
.timeline__item p { color: var(--fg-soft); max-width: 52ch; }
@media (min-width: 900px) { .timeline__item { grid-template-columns: 10rem 1fr 1.3fr; gap: 2rem; align-items: baseline; padding: 2.25rem 0; } }
.inc { display: grid; gap: 2.5rem; }
.inc__h { font-family: var(--serif); font-weight: 400; font-size: var(--fs-md); padding-bottom: 1rem; margin-bottom: .5rem; border-bottom: 1px solid var(--line-strong); }
.inc__col li { position: relative; padding: .8rem 0 .8rem 2rem; border-bottom: 1px solid var(--line); color: var(--fg-soft); }
.inc__col li::before { content: ""; position: absolute; left: 0; top: 1.62rem; width: 14px; height: 1.5px; background: var(--fg-mute); }
.inc__col--yes li::before { top: 1.28rem; left: .15rem; width: 6px; height: 11px; background: none; border: solid var(--accent); border-width: 0 1.5px 1.5px 0; transform: rotate(45deg); }
@media (min-width: 900px) { .inc { grid-template-columns: 1fr 1fr; gap: clamp(3rem, 7vw, 8rem); } }

/* People */
.people { display: grid; gap: 3rem; }
.person { display: grid; gap: 1.5rem; align-items: start; }
.person__img { aspect-ratio: 4 / 5; max-width: 22rem; overflow: hidden; border-radius: var(--r); background: var(--ink-800); }
.person__img img { width: 100%; height: 100%; object-fit: cover; }
.person__body { display: grid; gap: .7rem; }
.person__name { font-size: var(--fs-md); }
.person__role { font-size: var(--fs-eyebrow); letter-spacing: .18em; text-transform: uppercase; color: var(--accent); font-weight: 700; }
.person__bio { color: var(--fg-soft); max-width: 52ch; }
.person__facts { display: flex; flex-wrap: wrap; gap: .5rem 2rem; font-size: .9rem; margin-top: .25rem; }
.person__facts div { display: flex; gap: .6rem; }
.person__facts dt { color: var(--fg-mute); }
@media (min-width: 800px) { .person { grid-template-columns: minmax(12rem, 18rem) 1fr; gap: 2.5rem; } }
@media (min-width: 1200px) { .people { grid-template-columns: repeat(auto-fit, minmax(34rem, 1fr)); } }

/* About: mission & vision */
.duo { display: grid; border-top: 1px solid var(--line-strong); }
.duo__col { display: grid; gap: 1.25rem; align-content: start; padding: 2.25rem 0; border-bottom: 1px solid var(--line); }
.duo__text { font-size: clamp(1.6rem, 2.7vw, 2.5rem); line-height: 1.14; text-wrap: pretty; }
@media (min-width: 900px) {
    .duo { grid-template-columns: 1fr 1fr; }
    .duo__col { padding: 3rem 3.5rem 3rem 0; border-bottom: 1px solid var(--line-strong); }
    .duo__col + .duo__col { padding-left: 3.5rem; border-left: 1px solid var(--line); }
}
.talk .notice .display { font-size: var(--fs-md); }

/* Booking starter: second date, next-step line */
@media (min-width: 800px) { .starter__row--4 { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1200px) { .starter__row--4 { grid-template-columns: 1fr 1fr .8fr 1.4fr; } }
.starter__go { display: grid; gap: .6rem; justify-items: end; }
.starter__next { font-size: .82rem; color: var(--fg-mute); max-width: 34ch; text-align: right; }
@media (max-width: 699px) { .starter__go { justify-items: stretch; width: 100%; } .starter__next { text-align: left; max-width: none; } .starter__go .btn { width: 100%; } }

/* Consent checkbox, form heading, contact extras */
.check__label { display: grid; grid-template-columns: auto 1fr; gap: .85rem; align-items: start; font-size: .92rem; color: var(--fg-soft); cursor: pointer; line-height: 1.5; }
.check__label input { width: 22px; height: 22px; margin: .1rem 0 0; accent-color: var(--aurora); cursor: pointer; }
.check__label a { color: var(--fg); border-bottom: 1px solid var(--line-strong); }
.check__label a:hover { border-color: var(--accent); }
.check.has-error .check__label { color: var(--danger); }
.form-head { display: grid; gap: .5rem; }
.form-head__note { color: var(--fg-soft); font-size: .95rem; }
.contact-list__social { display: flex; flex-wrap: wrap; gap: .4rem 1.5rem; }
.contact-list__social a { border-bottom: 1px solid var(--line-strong); }
.contact-list__social a:hover { color: var(--aurora); border-color: var(--aurora); }
.contact-list__row .link-arrow { margin-top: .5rem; }
.map { display: grid; gap: .75rem; justify-items: start; padding: 1.5rem; border: 1px solid var(--line-strong); border-radius: var(--r); }
.map.is-loaded { padding: 0; overflow: hidden; }
.map iframe { display: block; width: 100%; height: 320px; border: 0; filter: grayscale(.2) contrast(1.05); }
.reviews__more { display: flex; flex-wrap: wrap; gap: 1rem 2.5rem; margin-top: clamp(2.5rem, 5vw, 4rem); }

/* Legal pages */
.legal { padding-top: clamp(3rem, 6vw, 5rem); }
.legal__body { display: grid; gap: 1.1rem; color: var(--fg-soft); }
.legal__body > * { max-width: 72ch; }
.legal__body h2 { font-family: var(--serif); font-weight: 400; font-size: var(--fs-md); line-height: 1.12; color: var(--fg); margin-top: 2rem; scroll-margin-top: calc(var(--nav-h) + 1.5rem); }
.legal__body h2:first-child { margin-top: 0; }
.legal__body ul { display: grid; gap: .7rem; }
.legal__body li { position: relative; padding-left: 1.5rem; }
.legal__body li::before { content: ""; position: absolute; left: 0; top: .78em; width: 8px; height: 1.5px; background: var(--accent); }
.legal__body strong { color: var(--fg); font-weight: 600; }
.legal__body a { color: var(--fg); border-bottom: 1px solid var(--line-strong); transition: border-color var(--t-fast); }
.legal__body a:hover { border-color: var(--accent); }
.legal__body code { font-size: .9em; padding: .1em .35em; border-radius: 3px; background: rgba(255, 255, 255, .08); }
.faq__item { scroll-margin-top: calc(var(--nav-h) + 1.5rem); }
.faq__a a { color: var(--fg); border-bottom: 1px solid var(--line-strong); transition: border-color var(--t-fast); }
.faq__a a:hover { border-color: var(--accent); }

/* Footer: legal identity */
.footer__legal { display: grid; gap: 1rem; padding: 1.75rem 0; border-top: 1px solid var(--line); font-size: .85rem; color: var(--mist); }
.footer__company { display: flex; flex-wrap: wrap; gap: .3rem 1.5rem; }
.footer__company strong { color: var(--frost); font-weight: 600; }
.footer__policy { color: var(--frost); }
.footer__legal-links { display: flex; flex-wrap: wrap; gap: .4rem 1.5rem; }
.footer__legal-links a { color: var(--frost); border-bottom: 1px solid transparent; transition: color var(--t-fast), border-color var(--t-fast); }
.footer__legal-links a:hover { color: var(--snow); border-color: var(--aurora); }
@media (min-width: 900px) { .footer__legal { grid-template-columns: 1fr auto; align-items: center; } .footer__policy { grid-column: 1 / -1; } }


/* ==========================================================================
   Lapland Transfers — components added on top of the shared design system
   ========================================================================== */

/* Homepage hero: one landscape photograph, full bleed (no blurred side-fill). */
.hero--wide .hero__scene { top: 0; bottom: -6%; height: auto; }
.hero--wide .hero__focal { left: 0; right: 0; width: 100%; aspect-ratio: auto; -webkit-mask-image: none; mask-image: none; }
.hero--wide .hero__focal img { object-position: 42% 58%; }
@media (max-width: 899px) { .hero--wide .hero__focal img { object-position: 38% 50%; } }

/* Brand: the client's emblem (pin + antlers, cut out of stuff/logo.jpg) beside a live wordmark */
.brand picture { display: block; flex: none; width: auto; height: auto; }
img.brand__mark { display: block; width: auto; max-width: none; height: 44px; }
@media (min-width: 1000px) {
    img.brand__mark { width: auto; height: 58px; }
    .nav.is-scrolled img.brand__mark { width: auto; height: 46px; }
}
.brand__sub { letter-spacing: .32em; white-space: nowrap; }
@media (max-width: 479px) { .brand__sub { letter-spacing: .16em; } }
/* Small phones: emblem + Book + Menu only (the wordmark would push the menu button off screen). */
@media (max-width: 439px) { .nav .brand__word { display: none; } }
.brand--footer { gap: 1rem; text-shadow: none; }
.brand--footer .brand__mark { width: clamp(56px, 6vw, 72px); }
.brand--footer .brand__name { font-size: clamp(1.6rem, 2.6vw, 2.1rem); }
.brand--footer .brand__sub { font-size: .62rem; margin-top: .5rem; }
.footer__brand { display: grid; gap: 1.25rem; justify-items: start; }
.footer__logo img { display: block; width: clamp(200px, 22vw, 280px); height: auto; }
.footer__about { max-width: 42ch; color: var(--fg-soft); font-size: .95rem; }

/* "Our Services" dropdown */
.nav__drop { position: relative; }
.nav__drop-btn { display: inline-flex; align-items: center; gap: .35rem; font-family: inherit; cursor: pointer; }
.nav__drop-btn svg { transition: transform .4s var(--ease); }
.nav__drop.is-open .nav__drop-btn svg { transform: rotate(180deg); }
.nav__drop-btn[data-current] { color: #fff; }
.nav__drop-btn[data-current]::before {
    content: ""; position: absolute; left: 50%; bottom: -.32rem; width: 4px; height: 4px; margin-left: -2px; border-radius: 50%;
    background: var(--aurora); box-shadow: 0 0 10px rgba(24, 199, 180, .7);
}
.nav__panel {
    position: absolute; top: calc(100% + 1rem); left: 50%; z-index: 5; width: 23rem; padding: .5rem;
    display: grid; gap: .25rem;
    background: rgba(8, 13, 23, .97); border: 1px solid var(--line-strong); border-radius: 14px;
    box-shadow: 0 30px 70px -30px rgba(0, 0, 0, .8);
    opacity: 0; visibility: hidden; transform: translate(-50%, 8px);
    transition: opacity .3s var(--ease), transform .4s var(--ease), visibility 0s linear .4s;
}
.nav__panel::before { content: ""; position: absolute; left: 0; right: 0; top: -1.1rem; height: 1.1rem; } /* hover bridge */
.nav__drop.is-open .nav__panel { opacity: 1; visibility: visible; transform: translate(-50%, 0); transition-delay: 0s; }
.nav__svc { display: grid; grid-template-columns: 76px 1fr; gap: .9rem; align-items: center; padding: .5rem; border-radius: 10px; transition: background var(--t-fast); }
.nav__svc:hover, .nav__svc:focus-visible { background: rgba(255, 255, 255, .06); }
.nav__svc-img { display: block; aspect-ratio: 4 / 3; border-radius: 7px; overflow: hidden; background: var(--ink-800); }
.nav__svc-img img { width: 100%; height: 100%; object-fit: cover; }
.nav__svc-body { display: grid; gap: .2rem; }
.nav__svc-name { font-weight: 700; font-size: .92rem; color: var(--snow); }
.nav__svc-meta { font-size: .78rem; color: var(--mist); }
.nav__svc[aria-current] .nav__svc-name { color: var(--aurora); }
.nav__svc-all { display: flex; align-items: center; justify-content: space-between; gap: .5rem; padding: .7rem .6rem .45rem; margin-top: .15rem; border-top: 1px solid var(--line); font-size: .78rem; font-weight: 600; letter-spacing: .04em; color: var(--frost); }
.nav__svc-all:hover { color: var(--aurora); }
.nav__svc-all svg { width: 14px; }

/* Feature / benefit grid */
.feats { display: grid; border-top: 1px solid var(--line-strong); }
.feat { position: relative; display: grid; gap: .6rem; align-content: start; padding: 2rem 0; border-bottom: 1px solid var(--line); }
.feat__icon {
    display: inline-grid; place-items: center; width: 52px; height: 52px; margin-bottom: .6rem; border-radius: 14px;
    color: var(--accent); border: 1px solid var(--line-strong);
    background: radial-gradient(120% 120% at 20% 0%, rgba(24, 199, 180, .14), transparent 60%);
}
.feat__t { font-size: 1.08rem; font-weight: 700; letter-spacing: .005em; }
.feat__p { color: var(--fg-soft); font-size: .97rem; max-width: 40ch; }
.feat__num { position: absolute; top: 1.6rem; right: 0; font-family: var(--serif); font-size: clamp(2.6rem, 4vw, 3.6rem); line-height: 1; color: var(--line-strong); }
@media (min-width: 700px) {
    .feats { grid-template-columns: 1fr 1fr; column-gap: 3rem; }
}
@media (min-width: 1100px) {
    .feats { grid-template-columns: repeat(3, 1fr); column-gap: 3.5rem; }
    .feat { padding: 2.5rem 0 2.75rem; }
}
.why .feats { border-top-color: rgba(255, 255, 255, .26); }

/* Fare calculator on the homepage */
.calc__more { margin-top: clamp(2rem, 4vw, 3rem); }

/* Three call-to-action boxes (Book a Ride / Fleet Details / Contact Us) */
.boxes { display: grid; gap: 1rem; }
.box {
    display: grid; gap: .9rem; align-content: start; padding: clamp(1.75rem, 3vw, 2.5rem);
    border: 1px solid var(--line-strong); border-radius: 14px; background: var(--ink-900);
    transition: transform .6s var(--ease), border-color .4s var(--ease), background .4s var(--ease);
}
.box .icon { color: var(--aurora); }
.box:hover, .box:focus-visible { transform: translateY(-4px); border-color: rgba(24, 199, 180, .55); }
.box--accent { background: linear-gradient(145deg, rgba(24, 199, 180, .16), rgba(24, 199, 180, .02) 60%), var(--ink-900); }
.box__t { font-size: var(--fs-md); line-height: 1.05; }
.box__p { color: var(--fg-soft); font-size: .97rem; }
.box__go { display: inline-flex; align-items: center; gap: .5rem; margin-top: .4rem; font-size: .8rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--aurora); }
.box__go svg { width: 16px; transition: transform .5s var(--ease); }
.box:hover .box__go svg { transform: translateX(4px); }
@media (min-width: 900px) { .boxes { grid-template-columns: repeat(3, 1fr); gap: 1.5rem; } }

/* Stock-photo note under vehicle pictures */
.photo-note { display: block; font-size: .68rem; letter-spacing: .12em; text-transform: uppercase; color: var(--fg-mute); font-weight: 600; }
.fleet__img { position: relative; }
.photo-note--on { position: absolute; left: .6rem; bottom: .6rem; padding: .3rem .55rem; border-radius: 4px; background: rgba(6, 20, 58, .7); color: var(--frost); font-size: .6rem; }
.rides__img { display: block; }
.rides__img img { transition: transform 1.2s var(--ease); }
.rides__item:hover .rides__img img { transform: scale(1.04); }
.rides__from { color: var(--accent) !important; font-weight: 600; font-size: .88rem !important; }
.rides__item figcaption .photo-note { margin-top: .35rem; }

/* How-it-works split with the steps inside */
.split--steps .steps { width: 100%; grid-template-columns: 1fr !important; }
.split--steps .steps__item p { max-width: 52ch; }
@media (min-width: 1000px) { .split--steps { align-items: start; } .split--steps .split__media { position: sticky; top: calc(var(--nav-h) + 2rem); } }

/* Fleet page: one section per vehicle class */
.vclass__grid { display: grid; gap: clamp(2.5rem, 5vw, 4rem); align-items: center; }
.vclass__media { position: relative; padding-bottom: 12%; }
.vclass__img { aspect-ratio: 4 / 3; border-radius: var(--r); overflow: hidden; background: var(--ink-800); }
.vclass__img img { width: 100%; height: 100%; object-fit: cover; }
.vclass__img--inset { position: absolute; right: -4%; bottom: 0; width: 42%; border: 5px solid var(--bg); box-shadow: 0 30px 60px -30px rgba(0, 0, 0, .8); }
.vclass__media .photo-note { margin-top: .9rem; position: absolute; left: 0; bottom: -1.8rem; }
.vclass__body { display: grid; gap: 1.5rem; justify-items: start; }
.vclass__text { color: var(--fg-soft); font-size: 1.05rem; max-width: 46ch; }
.vclass__specs { width: 100%; display: grid; border-top: 1px solid var(--line); }
.vclass__specs > div { display: flex; justify-content: space-between; gap: 1rem; padding: .95rem 0; border-bottom: 1px solid var(--line); }
.vclass__specs dt { display: inline-flex; align-items: center; gap: .6rem; color: var(--fg-mute); font-size: var(--fs-eyebrow); letter-spacing: .16em; text-transform: uppercase; font-weight: 600; }
.vclass__specs dt .icon { color: var(--accent); }
.vclass__specs dd { text-align: right; }
.vclass__prices { width: 100%; display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.vclass__prices p { display: grid; gap: .35rem; padding: 1.1rem 1.2rem; border: 1px solid var(--line-strong); border-radius: 12px; }
.vclass__prices span { font-size: .78rem; color: var(--fg-mute); }
.vclass__prices strong { font-weight: 400; font-size: clamp(2rem, 3.4vw, 2.8rem); line-height: 1; }
.vclass__prices small { font-family: var(--sans); font-size: .8rem; color: var(--fg-mute); margin-left: .2rem; }
.vclass__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 2rem; }
@media (min-width: 1000px) {
    .vclass__grid { grid-template-columns: 1.1fr 1fr; gap: clamp(4rem, 7vw, 8rem); }
    .vclass--flip .vclass__media { order: 2; }
    .vclass--flip .vclass__img--inset { right: auto; left: -4%; }
}
.compare__note { margin-top: 2rem; color: var(--fg-soft); }
.compare__note a { color: var(--fg); border-bottom: 1px solid var(--line-strong); }

/* Photo credits */
.credits { display: grid; gap: 2rem 1.5rem; grid-template-columns: repeat(2, 1fr); }
.credit { display: grid; gap: .5rem; align-content: start; }
.credit__img { display: block; aspect-ratio: 4 / 3; border-radius: var(--r); overflow: hidden; background: var(--ink-800); }
.credit__img img { width: 100%; height: 100%; object-fit: cover; }
.credit__alt { font-size: .85rem; color: var(--fg-soft); }
.credit__by { font-size: .78rem; color: var(--fg-mute); }
.credit__by a { color: var(--fg); border-bottom: 1px solid var(--line-strong); }
@media (min-width: 800px) { .credits { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 1200px) { .credits { grid-template-columns: repeat(4, 1fr); } }


/* Airport hero: the landing jet sits right of the headline on wide screens. */
.hero--air { background: linear-gradient(115deg, var(--ink-950) 30%, #0c2830 100%); }
.hero--air .hero__aurora { opacity: .45; }
.hero--air .hero__focal img { object-position: 50% 42%; }
@media (min-width: 900px) {
    .hero--air .hero__focal {
        left: 24%; right: -6%; width: auto;
        -webkit-mask-image: linear-gradient(to right, transparent 0, rgba(0, 0, 0, .55) 14%, #000 34%);
        mask-image: linear-gradient(to right, transparent 0, rgba(0, 0, 0, .55) 14%, #000 34%);
    }
}

/* Arrivals board (partials/arrivals-board.php): a split-flap flight display. */
.board-wrap { padding: clamp(2.5rem, 5vw, 4.5rem) 0; background: var(--ink-950); }
.board {
    --amber: #f5c451;
    --mono: ui-monospace, "SFMono-Regular", "Cascadia Mono", Menlo, Consolas, monospace;
    padding: clamp(1rem, 2.4vw, 1.75rem);
    border: 1px solid #1d3677; border-radius: 16px;
    background: linear-gradient(180deg, #0c2358, #061640);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .04), 0 40px 90px -50px rgba(0, 0, 0, .9);
}
.board__head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem 1.5rem; padding: .25rem .25rem 1.1rem; border-bottom: 1px solid #1d3677; }
.board__title { display: inline-flex; align-items: center; gap: .6rem; font-family: var(--mono); font-size: .9rem; letter-spacing: .14em; text-transform: uppercase; color: var(--amber); }
.board__title .icon { transform: rotate(45deg); }
.board__sep { color: #4a5f99; }
.board__sub { color: var(--frost); letter-spacing: .1em; }
.board__meta { display: inline-flex; align-items: center; gap: .6rem; font-family: var(--mono); }
.board__code, .board__clock {
    padding: .35rem .6rem; border-radius: 5px; font-size: 1rem; letter-spacing: .12em; color: var(--amber);
    background: linear-gradient(#17357f 0 49%, #0f275f 51%);
}
.board__code { color: var(--snow); }
.board__table { width: 100%; border-collapse: separate; border-spacing: 0 6px; margin-top: .6rem; font-family: var(--mono); }
.board__table thead th { padding: .4rem .9rem; text-align: left; font-size: .68rem; font-weight: 500; letter-spacing: .2em; text-transform: uppercase; color: var(--mist); }
.board__table tbody th, .board__table td { padding: .6rem .9rem; text-align: left; vertical-align: middle; background: #0f2861; font-weight: 400; }
.board__table tbody th { border-radius: 8px 0 0 8px; }
.board__table tbody td:last-child { border-radius: 0 8px 8px 0; }
.board__table tbody tr { transition: transform .4s var(--ease); }
.board__table tbody tr:hover { transform: translateX(4px); }
.board__table tbody tr:hover th, .board__table tbody tr:hover td { background: #143174; }
.board__table small { display: block; margin-top: .3rem; font-size: .68rem; letter-spacing: .08em; color: var(--mist); text-transform: uppercase; }
.board__flap {
    position: relative; display: inline-block; padding: .28rem .5rem; border-radius: 4px;
    font-size: .92rem; letter-spacing: .08em; text-transform: uppercase; color: var(--amber); white-space: nowrap;
    background: linear-gradient(#17357f 0 49%, #0f275f 51%);
}
.board__flap::after { content: ""; position: absolute; left: 0; right: 0; top: 50%; height: 1px; background: rgba(0, 0, 0, .7); }
.board__table th a { color: inherit; }
.board__price { font-size: 1.05rem; color: var(--snow); }
.board__status { display: inline-flex; align-items: center; gap: .5rem; font-size: .78rem; letter-spacing: .12em; text-transform: uppercase; color: var(--aurora); white-space: nowrap; }
.board__status i { width: 8px; height: 8px; border-radius: 50%; background: var(--aurora); box-shadow: 0 0 10px rgba(24, 199, 180, .8); animation: board-blink 1.6s steps(2, jump-none) infinite; }
@keyframes board-blink { 50% { opacity: .25; } }
.board__foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem 2rem; padding: 1rem .25rem 0; font-size: .85rem; color: var(--mist); }
@media (max-width: 759px) {
    .board__col-v, .board__col-s { display: none; }
    .board__flap { font-size: .78rem; white-space: normal; }
    .board__table tbody th, .board__table td { padding: .5rem .55rem; }
    .board__sub { display: none; }
    .board__sep { display: none; }
    .board { padding: .85rem; }
    .board__table { table-layout: fixed; }
    .board__table thead th:nth-child(3) { width: 5.6rem; }
    .board__price { white-space: nowrap; }
    .board__table tbody td:nth-child(3) { border-radius: 0 8px 8px 0; }
}
@media (prefers-reduced-motion: reduce) { .board__status i { animation: none; } }

/* Night palette for photo-backed and display surfaces (home hero, final CTA, arrivals board, 404). */
.theme-dark {
    --ink-950: #071a45;
    --ink-900: #0a2055;
    --ink-800: #112a66;
    --ink-700: #1a3577;
    --snow: #f4f7ff;
    --snow-2: #e3e9fb;
    --frost: #c8d2ef;
    --mist: #97a3c8;
    --aurora: #5eead4;
    --aurora-deep: #18c7b4;
    --bg: #071a45;
    --fg: #f4f7ff;
    --fg-soft: #c8d2ef;
    --fg-mute: #97a3c8;
    --line: rgba(255, 255, 255, .14);
    --line-strong: rgba(255, 255, 255, .28);
    --accent: #5eead4;
    color: var(--fg);
}

/* ==========================================================================
   Light theme overrides (rules that hard-coded the dark palette)
   ========================================================================== */
.grain { display: none; }

/* Navigation: a solid white bar with dark text on every page. */
.nav::before { display: none; }
.nav::after { opacity: 1; background: #fff; border-bottom: 1px solid var(--line); }
.nav__inner::after { display: none; }
.brand, .nav__link, .nav__toggle, .nav__lang, .nav__tel { text-shadow: none; }
.brand__mark { filter: none; }
.brand__name { color: var(--snow); }
.nav__link { color: var(--frost); }
.nav__link:hover, .nav__link:focus-visible, .nav__link[aria-current], .nav__drop-btn[data-current] { color: var(--snow); }
.nav__link::after, .nav__link[aria-current]::before, .nav__drop-btn[data-current]::before { background: var(--aurora); box-shadow: none; }
.nav__tel { color: var(--snow); }
.nav__toggle { color: var(--snow); }
.nav__toggle::before { background: var(--line-strong); }
.nav__cta { color: #fff; }
.nav__cta::before { background: var(--snow); }
.nav__cta:hover, .nav__cta:focus-visible { box-shadow: 0 6px 22px -8px rgba(36, 71, 201, .55); }
.nav__panel { background: #fff; box-shadow: 0 30px 70px -30px rgba(11, 31, 58, .35); }
.nav__svc:hover, .nav__svc:focus-visible { background: var(--ink-900); }
.nav__svc-name { color: var(--snow); }
.nav__svc-all:hover { color: var(--aurora); }

/* Mobile menu + sticky booking bar */
.menu__bg { background: radial-gradient(120% 55% at 85% 0%, rgba(36, 71, 201, .09), transparent 60%), var(--ink-950); }
.menu__book-link--primary, .book-bar__link:first-child { color: #fff; }
.menu__book-link:not(.menu__book-link--primary):hover { background: var(--ink-900); }
.book-bar { background: rgba(255, 255, 255, .95); box-shadow: 0 12px 40px -12px rgba(11, 31, 58, .35); }

/* Buttons */
.btn--aurora { color: #fff; }
.btn--ghost { background: transparent; }
.theme-dark .btn--ghost { background: rgba(6, 20, 58, .25); }
.btn--ink { --btn-bg: var(--snow); --btn-fg: #fff; --btn-bd: var(--snow); }
.skip-link { color: #fff; }

/* Sections */
.why::after { background: linear-gradient(to bottom, #fff, rgba(255, 255, 255, .86) 40%, #fff); }
.why__bg { opacity: .3; }
.why .feats { border-top-color: var(--line-strong); }
.feat__icon { background: radial-gradient(120% 120% at 20% 0%, rgba(36, 71, 201, .1), transparent 60%); }
.box { background: #fff; box-shadow: 0 20px 50px -35px rgba(11, 31, 58, .35); }
.box:hover, .box:focus-visible { border-color: rgba(36, 71, 201, .5); }
.box--accent { background: linear-gradient(145deg, rgba(36, 71, 201, .1), rgba(36, 71, 201, .02) 60%), #fff; }
.photo-note--on { color: #e6eaee; }
.legal__body code { background: var(--ink-900); }
.consent__inner { background: rgba(255, 255, 255, .97); box-shadow: 0 20px 60px -20px rgba(11, 31, 58, .35); }
@media (max-width: 999px) {
    .phero__img::before { background: linear-gradient(to top, #fff 2%, transparent 45%, rgba(255, 255, 255, 0) 100%); }
}

/* Photo-backed surfaces keep their light-on-dark type. */
.theme-dark .nav__link { color: rgba(243, 245, 247, .76); }

.lang { color: var(--frost); }
.lang:hover, .lang:focus-within { color: var(--snow); }
.board-wrap { background: var(--ink-950); }
.cta { color: var(--fg); }
.footer__logo img { width: clamp(200px, 20vw, 260px); }

/* Daytime hero (home): snowy runway photo fading into white on the text side. */
.hero--day { background: #fff; }
.hero--day .hero__aurora, .hero--day .hero__haze, .hero--day .hero__glow { display: none; }
.hero--day .hero__focal img { object-position: 50% 55%; }
.hero--day .hero__shade {
    background:
        linear-gradient(to right, #fff 0%, rgba(255, 255, 255, .94) 26%, rgba(255, 255, 255, .7) 40%, rgba(255, 255, 255, .25) 54%, rgba(255, 255, 255, 0) 66%),
        linear-gradient(to top, #fff 0%, rgba(255, 255, 255, .75) 12%, rgba(255, 255, 255, 0) 30%);
}
.hero--day .hero__lede { color: var(--frost); }
.hero--day .hero__fact { border-color: var(--line); }
@media (min-width: 900px) {
    .hero--day .hero__focal {
        left: 30%; right: 0; width: auto;
        -webkit-mask-image: linear-gradient(to right, transparent 0, #000 22%);
        mask-image: linear-gradient(to right, transparent 0, #000 22%);
    }
}
@media (max-width: 899px) {
    .hero--day .hero__shade {
        background: linear-gradient(to top, #fff 0%, rgba(255, 255, 255, .96) 40%, rgba(255, 255, 255, .6) 58%, rgba(255, 255, 255, 0) 76%);
    }
    .hero--day .hero__focal img { object-position: 50% 35%; }
}
/* Phones: the photo sits on top, the text below it on white (no text over the plane). */
@media (max-width: 899px) {
    .hero--day { min-height: 0; }
    .hero--day .hero__scene { top: 0; bottom: auto; height: calc(var(--nav-h) + 64vw); }
    .hero--day .hero__drift { animation: none; transform: none; }
    .hero--day .hero__focal img { object-position: 50% 50%; }
    .hero--day .hero__shade { background: linear-gradient(to top, #fff 0%, rgba(255, 255, 255, 0) 22%); height: calc(var(--nav-h) + 64vw); bottom: auto; }
    .hero--day .hero__content { padding-top: calc(var(--nav-h) + 60vw); }
}

/* ==========================================================================
   Brand layer: the logo's aurora gradient on the primary actions and highlights
   ========================================================================== */
.btn--aurora { --btn-bg: var(--grad); --btn-fg: #fff; --btn-bd: transparent; --btn-hover-bg: var(--snow); --btn-hover-fg: #fff; box-shadow: 0 10px 30px -14px rgba(47, 107, 255, .7); }
.theme-dark .btn--aurora { --btn-hover-bg: #fff; --btn-hover-fg: #0d2154; color: #fff; }
.btn--ink { --btn-bg: #0d2154; --btn-bd: #0d2154; --btn-hover-bg: #2447c9; }
.nav__cta { background: var(--grad); color: #fff; }
.nav__cta::before { background: #0d2154; }
.nav__cta:hover, .nav__cta:focus-visible { box-shadow: 0 8px 26px -10px rgba(47, 107, 255, .7); }
.menu__book-link--primary, .book-bar__link:first-child, .skip-link { background: var(--grad); color: #fff; }

/* Italic highlight in headings: the aurora gradient as text colour. */
.display em, .hero__title em, .phero__title em {
    background: var(--grad); -webkit-background-clip: text; background-clip: text; color: transparent;
    -webkit-box-decoration-break: clone; box-decoration-break: clone; padding-right: .06em;
}
.theme-dark .display em, .theme-dark .hero__title em { background-image: linear-gradient(115deg, #5eead4 0%, #7aa7ff 50%, #c084fc 100%); }

.eyebrow .dot, .hero__eyebrow .dot { background: var(--teal); box-shadow: 0 0 0 4px rgba(24, 199, 180, .18); }
.feat__icon { color: var(--aurora); border-color: rgba(36, 71, 201, .25); background: linear-gradient(135deg, rgba(24, 199, 180, .12), rgba(138, 63, 252, .1)); }
.box--accent { background: linear-gradient(145deg, rgba(24, 199, 180, .12), rgba(138, 63, 252, .08) 60%), #fff; border-color: rgba(36, 71, 201, .3); }
.box .icon, .box__go { color: var(--aurora); }
.hero--day .hero__sub { color: var(--aurora); }

/* Footer: the navy of the logo's pin, with the light logo. */
.footer { border-top: 0; }
.footer .footer__about { color: var(--fg-soft); }

/* Hero background video (home): fills the scene like the photo did. */
.hero__video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 50%; }
.hero--day .hero__drift { animation: none; transform: none; }
@media (max-width: 899px) { .hero__video { object-position: 40% 50%; } }

/* Hero: floating fare pass + Santa card over the video (wide screens), and falling snow. */
.hero--day .hero__content { position: relative; z-index: 2; }
.hero--day .hero__foot { position: relative; z-index: 2; }
.snow { position: absolute; inset: 0; z-index: 1; width: 100%; height: 100%; pointer-events: none; }
.hcards { display: none; }
@media (min-width: 1100px) {
    .hcards { display: block; position: absolute; z-index: 2; inset: calc(var(--nav-h) + 2rem) var(--gutter) 7rem auto; width: min(24rem, 30vw); pointer-events: none; }
    .hcards > a { pointer-events: auto; }
}
.pass {
    position: absolute; top: 4%; right: 0; width: 100%; display: grid; overflow: hidden;
    border-radius: 18px; background: rgba(255, 255, 255, .9); color: var(--snow);
    backdrop-filter: blur(14px) saturate(140%); -webkit-backdrop-filter: blur(14px) saturate(140%);
    box-shadow: 0 30px 70px -30px rgba(13, 33, 84, .55), 0 0 0 1px rgba(255, 255, 255, .6) inset;
    transform: rotate(2.5deg); animation: card-float 7s ease-in-out infinite alternate;
    transition: transform .6s var(--ease);
}
.pass:hover { transform: rotate(0) translateY(-4px); animation-play-state: paused; }
.pass__top { display: flex; justify-content: space-between; align-items: center; padding: .85rem 1.2rem; background: var(--grad); color: #fff; font-size: .72rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.pass__kind { opacity: .85; }
.pass__route { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: .5rem; padding: 1.1rem 1.2rem .9rem; }
.pass__end { display: grid; gap: .15rem; }
.pass__end b { font-family: var(--serif); font-weight: 400; font-size: 2.5rem; line-height: 1; letter-spacing: .02em; }
.pass__end small { font-size: .7rem; color: var(--mist); }
.pass__end--r { text-align: right; }
.pass__plane { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 50%; color: var(--aurora); border: 1px dashed rgba(36, 71, 201, .45); }
.pass__plane .icon { transform: rotate(45deg); }
.pass__cut { position: relative; height: 1px; margin: 0 1.2rem; border-top: 2px dashed rgba(13, 33, 84, .18); }
.pass__cut::before, .pass__cut::after { content: ""; position: absolute; top: -12px; width: 22px; height: 22px; border-radius: 50%; background: rgba(13, 33, 84, .35); }
.pass__cut::before { left: calc(-1.2rem - 11px); }
.pass__cut::after { right: calc(-1.2rem - 11px); }
.pass__meta { display: grid; grid-template-columns: repeat(3, 1fr); gap: .5rem; padding: .95rem 1.2rem .6rem; }
.pass__meta span { display: grid; gap: .15rem; }
.pass__meta small { font-size: .62rem; letter-spacing: .14em; text-transform: uppercase; color: var(--mist); }
.pass__meta b { font-size: .92rem; }
.pass__meta span:first-child b { font-family: var(--serif); font-weight: 400; font-size: 1.5rem; line-height: 1; background: var(--grad); -webkit-background-clip: text; background-clip: text; color: transparent; }
.pass__code { height: 30px; margin: .4rem 1.2rem 1rem; opacity: .75;
    background: repeating-linear-gradient(90deg, var(--snow) 0 2px, transparent 2px 4px, var(--snow) 4px 5px, transparent 5px 8px, var(--snow) 8px 11px, transparent 11px 13px); }
.santa-card {
    position: absolute; bottom: 0; right: 12%; display: flex; align-items: center; gap: .9rem; padding: .7rem 1.2rem .7rem .7rem;
    border-radius: 999px; background: rgba(255, 255, 255, .92); color: var(--snow);
    backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px);
    box-shadow: 0 24px 60px -24px rgba(13, 33, 84, .6);
    transform: rotate(-2deg); animation: card-float 6s ease-in-out -2s infinite alternate-reverse;
    transition: transform .6s var(--ease);
}
.santa-card:hover { transform: rotate(0) translateY(-4px); animation-play-state: paused; }
.santa-card__img { width: 64px; height: 64px; flex: none; border-radius: 50%; overflow: hidden; border: 3px solid #fff; box-shadow: 0 0 0 2px #d62839; }
.santa-card__img img { width: 100%; height: 100%; object-fit: cover; object-position: 45% 25%; }
.santa-card__body { display: grid; gap: .1rem; line-height: 1.25; }
.santa-card__body small { font-size: .66rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: #d62839; }
.santa-card__body b { font-size: .95rem; }
.santa-card__body span { font-size: .8rem; color: var(--mist); }
@keyframes card-float { from { translate: 0 0; } to { translate: 0 -10px; } }
@media (prefers-reduced-motion: reduce) { .pass, .santa-card { animation: none; } .snow { display: none; } }

/* "Flying in to meet Santa?" section */
.santa__media { position: relative; }
.santa__inset { position: absolute; right: -2%; bottom: -8%; width: 40%; aspect-ratio: 3 / 4; overflow: hidden; border-radius: calc(var(--r) + 4px); border: 6px solid #fff; box-shadow: 0 30px 60px -30px rgba(13, 33, 84, .6); }
.santa__inset img { width: 100%; height: 100%; object-fit: cover; object-position: 45% 30%; }
@media (min-width: 1000px) { .santa .split { align-items: center; } }
/* Below 1100 px only the Santa card shows: on the photo's lower edge (phones) or bottom right (small laptops). */
@media (max-width: 1099px) {
    .hcards { display: block; position: absolute; z-index: 2; pointer-events: none; }
    .hcards .pass { display: none; }
    .hcards .santa-card { position: relative; right: auto; bottom: auto; pointer-events: auto; padding: .5rem 1rem .5rem .5rem; gap: .7rem; }
    .santa-card__img { width: 52px; height: 52px; }
    .santa-card__body b { font-size: .86rem; }
}
@media (min-width: 900px) and (max-width: 1099px) { .hcards { right: var(--gutter); bottom: 8rem; } }
@media (max-width: 899px) { .hcards { left: var(--gutter); top: calc(var(--nav-h) + 64vw - 4.2rem); } }
@media (max-width: 899px) {
    .hcards { top: calc(var(--nav-h) + 64vw - 5.6rem); }
    .hero--day .hero__content { padding-top: calc(var(--nav-h) + 64vw + .5rem); }
}

/* Route map (home / Airport Transfer): readable on the light theme. The destination label is always shown. */
.route__track { stroke: rgba(13, 33, 84, .45); stroke-width: 2; }
.route__line { stroke: var(--aurora); stroke-width: 3.5; }
.route__ring { stroke: rgba(36, 71, 201, .45); stroke-width: 1.6; }
.route__ring--inner { stroke: rgba(36, 71, 201, .3); }
.route__stop { fill: #fff; stroke: var(--snow); stroke-width: 3; }
.route__stop--end { fill: #fff; stroke: #8a3ffc; stroke-width: 3.5; }
.route__dot { fill: var(--aurora); stroke: rgba(36, 71, 201, .22); }
.route__label { font-size: 1.05rem; font-weight: 700; color: var(--snow); }
.route__label small { color: var(--frost); font-size: .85rem; font-weight: 500; }
.route__code { border: 0; color: #fff; background: var(--snow); padding: .38rem .7rem; font-size: .72rem; }
.route__label--to .route__code { background: var(--grad); }
.route__label--to { opacity: 1 !important; visibility: visible !important; }

/* "Need a ride urgently?" → WhatsApp (booking page + fare calculator) */
.urgent { display: flex; align-items: center; gap: .9rem; padding: .85rem 1rem; border-radius: 14px; background: #e9fbf1; border: 1px solid #b6ecd0; color: #0d3b26; transition: transform .4s var(--ease), box-shadow .4s var(--ease); }
.urgent:hover, .urgent:focus-visible { transform: translateY(-2px); box-shadow: 0 12px 28px -14px rgba(18, 140, 76, .55); }
.urgent__icon { display: grid; place-items: center; flex: none; width: 42px; height: 42px; border-radius: 50%; background: #25d366; color: #fff; }
.urgent__body { display: grid; gap: .1rem; line-height: 1.3; min-width: 0; }
.urgent__body b { font-size: .95rem; }
.urgent__body span { font-size: .82rem; color: #2f6049; }
.urgent__go { margin-left: auto; display: inline-flex; align-items: center; gap: .4rem; flex: none; padding: .55rem .9rem; border-radius: 999px; background: #25d366; color: #fff; font-size: .8rem; font-weight: 800; }
.urgent__go svg { width: 14px; }
.urgent--bar { max-width: 40rem; margin-top: .5rem; }
.urgent--inline { margin-top: .9rem; }
.urgent--inline .urgent__body span { display: none; }
@media (max-width: 479px) { .urgent__body span { display: none; } }

/* ---- One way / Round trip toggle (wizard + calculator) ---- */
.trip-toggle { display: inline-grid; grid-template-columns: 1fr 1fr; padding: 4px; border-radius: 999px; background: var(--ink-800); border: 1px solid var(--line); width: 100%; max-width: 26rem; }
.trip-toggle__opt { position: relative; cursor: pointer; }
.trip-toggle__opt input { position: absolute; inset: 0; opacity: 0; margin: 0; cursor: pointer; }
.trip-toggle__opt span { display: flex; align-items: center; justify-content: center; gap: .4rem; min-height: 44px; padding: 0 1rem; border-radius: 999px; font-size: .9rem; font-weight: 700; color: var(--frost); transition: background .35s var(--ease), color .35s var(--ease), box-shadow .35s var(--ease); }
.trip-toggle__opt b { font-size: .72rem; padding: .15rem .45rem; border-radius: 999px; background: rgba(24, 199, 180, .16); color: #0b7d74; }
.trip-toggle__opt input:checked + span { background: #fff; color: var(--snow); box-shadow: 0 4px 14px -6px rgba(13, 33, 84, .35); }
.trip-toggle__opt input:checked + span b { background: var(--grad); color: #fff; }
.trip-toggle__opt input:focus-visible + span { outline: 2px solid var(--aurora); outline-offset: 2px; }
