html[data-theme="dark"] {
    color-scheme: dark;
    --dark: #090e19;
    --dark-2: #101827;
    --green: #34d399;
    --gold: #67e8f9;
    --cream: #0a0f1d;
    --white: #f8fafc;
    --text: #eef4ff;
    --muted: #a7b4c8;
    --surface: rgba(18, 28, 45, 0.72);
    --surface-strong: rgba(19, 31, 50, 0.94);
    --line: rgba(148, 177, 215, 0.16);
    --glow-blue: rgba(96, 165, 250, 0.2);
    --glow-green: rgba(52, 211, 153, 0.17);
}

html[data-theme="dark"] body {
    position: relative;
    isolation: isolate;
    min-height: 100vh;
    background:
        radial-gradient(ellipse at 12% 5%, rgba(37, 99, 235, 0.12), transparent 35rem),
        radial-gradient(ellipse at 88% 42%, rgba(16, 185, 129, 0.08), transparent 32rem),
        linear-gradient(150deg, #0a0f1d 0%, #0b1220 48%, #090e19 100%);
    background-attachment: fixed;
    color: var(--text);
    font-family: "DM Sans", sans-serif;
    line-height: 1.65;
    transition: background 350ms ease, color 250ms ease;
}

html[data-theme="dark"] body::before {
    position: fixed;
    z-index: -1;
    inset: 0;
    background-image: radial-gradient(rgba(226, 232, 240, 0.08) 0.6px, transparent 0.6px);
    background-size: 6px 6px;
    content: "";
    opacity: 0.12;
    pointer-events: none;
}

html[data-theme="dark"] :is(h1, h2, h3, h4) {
    color: #f8fafc;
    letter-spacing: -0.025em;
}

html[data-theme="dark"] :is(p, li, .section-description, .tour-content p, .package-info p, .day p, .feature p, .booking-feature p, .about-text p:not(.section-label)) {
    color: var(--muted);
}

html[data-theme="dark"] .section-label,
html[data-theme="dark"] .eyebrow,
html[data-theme="dark"] .job-type,
html[data-theme="dark"] .job-link span,
html[data-theme="dark"] .tour-content > span:not(.tour-tag),
html[data-theme="dark"] .package-info small {
    color: #6ee7c0;
}

html[data-theme="dark"] em,
html[data-theme="dark"] .section-heading h2 em,
html[data-theme="dark"] .tour-heading h2 em {
    color: #67e8f9;
}

html[data-theme="dark"] .navbar,
html[data-theme="dark"] .navbar.scrolled {
    height: 76px;
    padding-inline: clamp(20px, 6vw, 96px);
    border-bottom: 1px solid var(--line);
    background: rgba(8, 14, 26, 0.7);
    box-shadow: 0 10px 36px rgba(0, 0, 0, 0.16);
    backdrop-filter: blur(20px) saturate(150%);
    -webkit-backdrop-filter: blur(20px) saturate(150%);
}

html[data-theme="dark"] .navbar .logo,
html[data-theme="dark"] .navbar .logo strong,
html[data-theme="dark"] .navbar .logo-wordmark > strong {
    color: #f8fafc;
}

html[data-theme="dark"] .navbar .logo span,
html[data-theme="dark"] .navbar .logo-wordmark > span {
    color: #67e8f9;
}

html[data-theme="dark"] .nav-button,
html[data-theme="dark"] .nav-cta,
html[data-theme="dark"] .theme-toggle {
    min-height: 42px;
    padding: 10px 16px;
    border: 1px solid rgba(103, 232, 249, 0.35);
    border-radius: 999px;
    background: rgba(103, 232, 249, 0.08);
    color: #baf6fb;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.04em;
}

html[data-theme="dark"] .nav-button:hover,
html[data-theme="dark"] .nav-cta:hover,
html[data-theme="dark"] .theme-toggle:hover,
html[data-theme="dark"] .theme-toggle:focus-visible {
    border-color: rgba(103, 232, 249, 0.8);
    background: rgba(103, 232, 249, 0.18);
    color: #f0fdff;
}

html[data-theme="dark"] .theme-toggle {
    white-space: nowrap;
}

html[data-theme="dark"] .hero,
html[data-theme="dark"] .about-hero,
html[data-theme="dark"] .booking-hero,
html[data-theme="dark"] .contact-hero,
html[data-theme="dark"] .destination-hero,
html[data-theme="dark"] .gallery-hero,
html[data-theme="dark"] .tour-hero,
html[data-theme="dark"] .details-hero {
    isolation: isolate;
}

html[data-theme="dark"] .hero-overlay {
    background:
        radial-gradient(ellipse at 72% 42%, rgba(37, 99, 235, 0.12), transparent 42%),
        linear-gradient(90deg, rgba(5, 10, 20, 0.88), rgba(5, 10, 20, 0.52));
}

.intro-loader {
    display: none;
    opacity: 1;
    transition: opacity 700ms ease;
}

html.has-intro-loader .intro-loader {
    position: fixed;
    z-index: 3000;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    padding: 24px;
    background: #06110f;
    color: #f5f3ef;
    pointer-events: none;
}

.intro-loader.is-leaving {
    opacity: 0;
}

.intro-loader-scene {
    position: absolute;
    z-index: 0;
    inset: 0;
    overflow: hidden;
    background:
        linear-gradient(180deg, rgba(3, 11, 13, 0.28) 0%, rgba(3, 11, 13, 0.4) 45%, #06110f 100%),
        linear-gradient(90deg, rgba(2, 9, 10, 0.48), transparent 54%, rgba(2, 9, 10, 0.2)),
        url("assets/images/vann.jpg") center 48% / cover no-repeat,
        #06110f;
}

.intro-loader-scene::before,
.intro-loader-scene::after {
    position: absolute;
    inset: -3%;
    content: "";
    pointer-events: none;
}

.intro-loader-scene::before {
    background:
        radial-gradient(ellipse at 74% 80%, rgba(255, 150, 72, 0.2), transparent 24%),
        radial-gradient(ellipse at 50% 65%, rgba(14, 82, 74, 0.16), transparent 48%);
    animation: intro-loader-ambient 16s ease-in-out infinite alternate;
}

.intro-loader-scene::after {
    background:
        linear-gradient(180deg, rgba(2, 8, 10, 0.2), transparent 32%, rgba(3, 11, 13, 0.2)),
        radial-gradient(ellipse at center, transparent 25%, rgba(1, 7, 8, 0.56) 100%);
}

.intro-loader-stars {
    position: absolute;
    z-index: 1;
    inset: 0;
    opacity: 0.5;
    background-image:
        radial-gradient(1px 1px at 13% 21%, rgba(228, 240, 225, 0.8) 50%, transparent 100%),
        radial-gradient(1px 1px at 27% 12%, rgba(228, 240, 225, 0.55) 50%, transparent 100%),
        radial-gradient(1px 1px at 72% 19%, rgba(228, 240, 225, 0.7) 50%, transparent 100%),
        radial-gradient(1px 1px at 86% 32%, rgba(228, 240, 225, 0.5) 50%, transparent 100%),
        radial-gradient(1px 1px at 61% 9%, rgba(228, 240, 225, 0.5) 50%, transparent 100%);
    animation: intro-loader-stars 8s ease-in-out infinite alternate;
}

.intro-loader-glow {
    position: absolute;
    right: 8%;
    bottom: 8%;
    width: min(35vw, 440px);
    height: min(22vw, 250px);
    border-radius: 50%;
    background: radial-gradient(ellipse, rgba(238, 129, 57, 0.2), rgba(158, 77, 39, 0.07) 38%, transparent 72%);
    filter: blur(18px);
    animation: intro-loader-firelight 5s ease-in-out infinite alternate;
}

.intro-loader-mist {
    position: absolute;
    right: -12%;
    bottom: 14%;
    left: -12%;
    height: 30%;
    background: linear-gradient(180deg, transparent, rgba(169, 204, 187, 0.06), transparent);
    filter: blur(22px);
    animation: intro-loader-mist-drift 18s ease-in-out infinite alternate;
}

.intro-loader-content {
    position: relative;
    z-index: 2;
    display: flex;
    width: min(100%, 600px);
    flex-direction: column;
    align-items: center;
    text-align: center;
    animation: intro-loader-arrive 850ms cubic-bezier(0.2, 0.7, 0.2, 1) both;
}

.intro-loader-eyebrow {
    display: flex;
    align-items: center;
    gap: 11px;
    margin-bottom: clamp(22px, 4vh, 38px);
    color: rgba(233, 239, 224, 0.74);
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.24em;
}

.intro-loader-eyebrow i {
    width: 3px;
    height: 3px;
    border-radius: 50%;
    background: #d1a66f;
}

.intro-loader-brand {
    font-family: "Playfair Display", serif;
    font-size: clamp(54px, 10vw, 112px);
    font-weight: 500;
    letter-spacing: -0.065em;
    line-height: 0.96;
    color: #f0eee4;
    text-shadow: 0 8px 36px rgba(0, 0, 0, 0.4);
}

.intro-loader-caption {
    margin-top: 21px;
    color: #d5b68a;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.28em;
}

.intro-loader-track {
    position: relative;
    display: block;
    width: clamp(150px, 24vw, 220px);
    height: 1px;
    overflow: hidden;
    margin-top: 31px;
    background: rgba(238, 239, 220, 0.3);
}

.intro-loader-track i {
    position: absolute;
    inset: 0 auto 0 0;
    width: 42%;
    background: linear-gradient(90deg, transparent, #d8b47f, #f2dfb7);
    box-shadow: 0 0 12px rgba(216, 180, 127, 0.42);
    animation: intro-loader-progress 1.8s cubic-bezier(0.55, 0.08, 0.35, 0.92) infinite;
}

@keyframes intro-loader-progress {
    from { transform: translateX(-110%); }
    to { transform: translateX(260%); }
}

@keyframes intro-loader-ambient {
    from { transform: scale(1.02) translate3d(-0.5%, 0, 0); }
    to { transform: scale(1.08) translate3d(0.5%, -0.5%, 0); }
}

@keyframes intro-loader-stars {
    from { opacity: 0.32; }
    to { opacity: 0.62; }
}

@keyframes intro-loader-firelight {
    from { opacity: 0.58; transform: scale(0.96); }
    to { opacity: 0.9; transform: scale(1.04); }
}

@keyframes intro-loader-mist-drift {
    from { transform: translateX(-2%) translateY(2px); opacity: 0.55; }
    to { transform: translateX(2%) translateY(-3px); opacity: 0.9; }
}

@keyframes intro-loader-arrive {
    from { opacity: 0; transform: translateY(10px); }
    to { opacity: 1; transform: translateY(0); }
}

html.has-intro-loader body {
    overflow: hidden;
}

@media (max-width: 600px) {
    html.has-intro-loader .intro-loader {
        padding: 20px;
    }

    .intro-loader-scene {
        background-position: 56% center;
    }

    .intro-loader-glow {
        right: -12%;
        bottom: 12%;
        width: 78vw;
        height: 48vw;
    }

    .intro-loader-eyebrow {
        gap: 8px;
        font-size: 9px;
        letter-spacing: 0.18em;
    }

    .intro-loader-caption {
        font-size: 9px;
        letter-spacing: 0.23em;
    }
}

@media (prefers-reduced-motion: reduce) {
    .intro-loader-scene::before,
    .intro-loader-stars,
    .intro-loader-glow,
    .intro-loader-mist,
    .intro-loader-content,
    .intro-loader-track i {
        animation: none;
    }

    .intro-loader {
        transition-duration: 1ms;
    }
}

.hero-home .hero-atmosphere {
    position: absolute;
    z-index: 1;
    inset: 0;
    overflow: hidden;
    pointer-events: none;
}

.hero-home .hero-r3f-backdrop,
.hero-home .hero-r3f-stage {
    position: absolute;
    inset: 0;
}

.hero-home .hero-r3f-backdrop {
    z-index: 0;
    background:
        linear-gradient(110deg, rgba(5, 10, 20, 0.72), rgba(5, 10, 20, 0.4)),
        url("assets/images/destinations%20baner%201.webp") center 48% / cover;
    opacity: 1;
    transition: opacity 800ms ease;
    pointer-events: none;
}

.hero-home .hero-r3f-stage {
    z-index: 2;
    overflow: hidden;
    pointer-events: auto;
}

.hero-home .hero-r3f-stage canvas {
    display: block;
    width: 100%;
    height: 100%;
}

.hero-home.hero-r3f-ready .hero-r3f-backdrop,
.hero-home.hero-r3f-fallback .hero-r3f-backdrop {
    opacity: 1;
}

.hero-home.hero-r3f-fallback .hero-r3f-stage {
    display: none;
}

.hero-home.hero-r3f-ready .hero-atmosphere {
    opacity: 0.55;
}

.hero-home .hero-overlay {
    z-index: 2;
    pointer-events: none;
}

.hero-home .hero-orb {
    position: absolute;
    display: block;
    width: var(--orb-size);
    aspect-ratio: 1;
    border-radius: 50%;
    opacity: var(--orb-opacity, 0.45);
    filter: blur(clamp(48px, 8vw, 110px));
    transform: translate3d(0, 0, 0);
    will-change: transform;
}

.hero-home .hero-orb-cyan {
    --orb-size: clamp(280px, 42vw, 620px);
    --orb-opacity: 0.45;
    top: -26%;
    left: -9%;
    background: radial-gradient(circle, rgba(0, 242, 254, 0.62), rgba(0, 168, 178, 0.2) 42%, transparent 72%);
}

.hero-home .hero-orb-deep {
    --orb-size: clamp(300px, 40vw, 580px);
    --orb-opacity: 0.35;
    top: -12%;
    right: -12%;
    background: radial-gradient(circle, rgba(0, 190, 198, 0.56), rgba(0, 117, 128, 0.2) 45%, transparent 72%);
}

.hero-home .hero-orb-blue {
    --orb-size: clamp(280px, 36vw, 520px);
    --orb-opacity: 0.32;
    right: 18%;
    bottom: -45%;
    background: radial-gradient(circle, rgba(0, 150, 165, 0.58), rgba(0, 100, 115, 0.18) 48%, transparent 72%);
}

.hero-home .hero-orb-mist {
    --orb-size: clamp(240px, 30vw, 440px);
    --orb-opacity: 0.24;
    bottom: -32%;
    left: 10%;
    background: radial-gradient(circle, rgba(127, 231, 232, 0.45), rgba(0, 152, 162, 0.12) 48%, transparent 72%);
}

.hero-home .hero-orb {
    translate: var(--mouse-x, 0px) var(--mouse-y, 0px);
}

.hero-home::after {
    position: absolute;
    z-index: 2;
    inset: 0;
    background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.65'/%3E%3C/svg%3E");
    content: "";
    opacity: 0.05;
    mix-blend-mode: overlay;
    pointer-events: none;
}

html[data-theme="dark"] :is(.about-hero, .booking-hero, .contact-hero, .destination-hero, .gallery-hero, .tour-hero, .details-hero)::before {
    position: absolute;
    z-index: 0;
    inset: 0;
    background: linear-gradient(110deg, rgba(5, 10, 20, 0.83), rgba(5, 10, 20, 0.58));
    content: "";
    pointer-events: none;
}

html[data-theme="dark"] :is(.about-hero, .booking-hero, .contact-hero, .destination-hero, .gallery-hero, .tour-hero, .details-hero) {
    position: relative;
}

html[data-theme="dark"] .hero-content,
html[data-theme="dark"] :is(.about-hero, .booking-hero, .contact-hero, .destination-hero, .gallery-hero, .tour-hero, .details-hero) > div {
    width: min(100%, 1280px);
    margin-inline: auto;
}

html[data-theme="dark"] .hero-home .hero-content {
    position: relative;
    z-index: 3;
    padding: 150px clamp(22px, 7vw, 96px) 100px;
    text-align: center;
}

.hero-home .hero-content {
    position: relative;
    z-index: 4;
}

.hero-home .scroll-down {
    z-index: 4;
}

html[data-theme="dark"] :is(.about-hero, .booking-hero, .contact-hero, .destination-hero, .gallery-hero, .tour-hero, .details-hero) > * {
    position: relative;
    z-index: 1;
}

html[data-theme="dark"] .hero-home .hero-content h1,
html[data-theme="dark"] .hero-home h1,
html[data-theme="dark"] :is(.about-hero, .booking-hero, .contact-hero, .destination-hero, .gallery-hero, .tour-hero, .details-hero) h1 {
    max-width: 720px;
    color: #f8fafc;
    font-size: clamp(46px, 7.2vw, 92px);
    line-height: 0.99;
    letter-spacing: -0.055em;
    text-wrap: balance;
}

.hero-home .hero-title .char {
    display: inline-block;
}

.hero-home .hero-title .word {
    display: inline-block;
    white-space: nowrap;
}

.hero-home .hero-title-highlight {
    color: #00f2fe;
    text-shadow: 0 0 38px rgba(0, 242, 254, 0.2);
}

html[data-theme="dark"] .hero-home .hero-content h1,
html[data-theme="dark"] .hero-home .hero-content > p {
    margin-inline: auto;
}

html[data-theme="dark"] .hero-home .hero-buttons {
    justify-content: center;
}

[data-text-reveal] .text-reveal-word {
    display: inline-block;
}

.project-showcase {
    position: relative;
    overflow: hidden;
    background:
        radial-gradient(ellipse at 78% 8%, rgba(0, 170, 186, 0.1), transparent 38%),
        linear-gradient(145deg, #0a0f19, #080c14 72%);
    color: #f8fafc;
}

.project-showcase-stage {
    position: relative;
    min-height: 760px;
    height: 100svh;
    max-height: 1100px;
    overflow: hidden;
}

.project-showcase-heading {
    position: absolute;
    z-index: 2;
    top: 50%;
    left: clamp(28px, 7vw, 112px);
    width: min(27vw, 360px);
    transform: translateY(-50%);
}

.project-showcase-heading .section-label {
    color: #00f2fe;
}

.project-showcase-kicker {
    margin-top: clamp(48px, 9vh, 100px);
    color: rgba(226, 232, 240, 0.58);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.17em;
}

.project-active-title {
    min-height: 1.05em;
    margin: 12px 0 24px;
    color: #f8fafc;
    font-family: "Playfair Display", serif;
    font-size: clamp(46px, 6vw, 88px);
    font-weight: 500;
    letter-spacing: -0.055em;
    line-height: 0.95;
}

.project-showcase-progress {
    display: flex;
    width: min(100%, 280px);
    align-items: center;
    gap: 14px;
    color: rgba(226, 232, 240, 0.58);
    font-size: 10px;
    font-variant-numeric: tabular-nums;
    letter-spacing: 0.12em;
}

.project-active-index {
    color: #00f2fe;
}

.project-progress-line {
    position: relative;
    flex: 1;
    height: 1px;
    overflow: hidden;
    background: rgba(226, 232, 240, 0.22);
}

.project-progress-line i {
    display: block;
    width: 100%;
    height: 100%;
    background: #00f2fe;
    transform: scaleX(0.25);
    transform-origin: left center;
}

.project-showcase-hint {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-top: 30px;
    color: rgba(226, 232, 240, 0.46);
    font-size: 9px;
    font-weight: 600;
    letter-spacing: 0.16em;
}

.project-showcase-hint span {
    color: #00f2fe;
    font-size: 16px;
    animation: project-hint-bob 1.6s ease-in-out infinite;
}

@keyframes project-hint-bob {
    0%, 100% {
        transform: translateY(0);
    }

    50% {
        transform: translateY(5px);
    }
}

.project-showcase-window {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 34%;
    overflow-x: auto;
    overflow-y: hidden;
    scrollbar-width: none;
}

.project-showcase-window::-webkit-scrollbar {
    display: none;
}

.project-showcase-track {
    display: flex;
    width: max-content;
    min-width: 100%;
    height: 100%;
    align-items: center;
    gap: clamp(20px, 3vw, 44px);
    padding: 0 clamp(24px, 5vw, 72px) 0 0;
    will-change: transform;
}

.project-card {
    flex: 0 0 clamp(420px, 54vw, 780px);
    width: clamp(420px, 54vw, 780px);
    color: #f8fafc;
    transform-origin: 50% 60%;
}

.project-card-link {
    display: block;
    color: inherit;
}

.project-card-image {
    position: relative;
    height: clamp(380px, 58vh, 640px);
    overflow: hidden;
    background: #111827;
}

.project-card-image::after {
    position: absolute;
    inset: 45% 0 0;
    background: linear-gradient(180deg, transparent, rgba(3, 7, 13, 0.58));
    content: "";
    pointer-events: none;
}

.project-card-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transform: scale(1.025);
    transition: transform 800ms cubic-bezier(0.2, 0.7, 0.2, 1);
}

.project-card-link:hover .project-card-image img,
.project-card-link:focus-visible .project-card-image img {
    transform: scale(1.075);
}

.project-card-number,
.project-card-caption {
    position: absolute;
    z-index: 1;
    bottom: 22px;
    color: #fff;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.12em;
}

.project-card-number {
    left: 22px;
}

.project-card-caption {
    right: 22px;
    opacity: 0;
    transform: translateY(8px);
    transition: opacity 260ms ease, transform 260ms ease;
}

.project-card-link:hover .project-card-caption,
.project-card-link:focus-visible .project-card-caption {
    opacity: 1;
    transform: translateY(0);
}

.project-card-meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: 22px;
    color: rgba(203, 213, 225, 0.62);
    font-size: 9px;
    font-weight: 600;
    letter-spacing: 0.13em;
}

.project-card-arrow {
    color: #00f2fe;
    font-size: 20px;
    line-height: 1;
}

.project-card h3 {
    margin: 10px 0 2px;
    color: #f8fafc;
    font-family: "Playfair Display", serif;
    font-size: clamp(30px, 3.4vw, 48px);
    font-weight: 500;
    letter-spacing: -0.045em;
    line-height: 1.05;
}

.project-card p {
    color: rgba(203, 213, 225, 0.68);
    font-size: 13px;
}

.project-showcase.is-enhanced .project-showcase-window {
    overflow: hidden;
    touch-action: pan-y;
}

.project-showcase.is-enhanced .project-showcase-track {
    padding-right: clamp(48px, 8vw, 120px);
}

.project-grid .project-grid-card {
    overflow: hidden;
}

.project-grid .tour-image {
    overflow: hidden;
    isolation: isolate;
    background-color: #111827;
    --parallax-x: 0px;
    --parallax-y: 0px;
}

.project-grid .tour-card:hover .tour-image {
    transform: none;
}

.project-grid .tour-image::before {
    position: absolute;
    z-index: 0;
    inset: 0;
    background-image: inherit;
    background-position: center;
    background-size: contain;
    background-repeat: no-repeat;
    content: "";
    transform: translate3d(var(--parallax-x, 0px), var(--parallax-y, 0px), 0) scale(1);
    transition: transform 650ms cubic-bezier(0.2, 0.7, 0.2, 1);
}

.project-grid .project-grid-card:hover .tour-image::before,
.project-grid .project-grid-card:focus-within .tour-image::before {
    transform: translate3d(var(--parallax-x, 0px), var(--parallax-y, 0px), 0) scale(1);
}

.project-grid .tour-tag {
    position: static;
    display: table;
    margin-bottom: 14px;
    color: var(--dark);
}

.project-grid .project-magnetic-link {
    display: inline-flex;
    position: relative;
    z-index: 1;
    transform-origin: center;
}

@media (max-width: 900px), (hover: none), (pointer: coarse) {
    .project-grid .tour-image::before {
        transform: scale(1);
    }
}

@media (max-width: 1000px) {
    .project-showcase-stage {
        height: auto;
        min-height: 0;
        max-height: none;
        padding: 88px 0 72px;
        overflow: visible;
    }

    .project-showcase-heading {
        position: relative;
        top: auto;
        left: auto;
        width: auto;
        margin: 0 24px 36px;
        transform: none;
    }

    .project-showcase-kicker {
        margin-top: 32px;
    }

    .project-active-title {
        margin-bottom: 16px;
    }

    .project-showcase-window {
        position: relative;
        inset: auto;
        overflow-x: auto;
        overscroll-behavior-inline: contain;
        scroll-snap-type: x mandatory;
        scroll-padding-inline: 24px;
        padding: 0 24px;
    }

    .project-showcase-track {
        height: auto;
        min-width: 0;
        gap: 20px;
        align-items: stretch;
        padding: 0 24px 12px 0;
    }

    .project-card {
        flex-basis: min(78vw, 540px);
        width: min(78vw, 540px);
        scroll-snap-align: center;
    }

    .project-card-image {
        height: clamp(300px, 58vw, 480px);
    }

    .project-card-caption {
        opacity: 1;
        transform: none;
    }

    .project-showcase-hint {
        display: none;
    }
}

@media (max-width: 600px) {
    .project-showcase-stage {
        padding: 72px 0 56px;
    }

    .project-showcase-heading {
        margin-inline: 22px;
    }

    .project-showcase-window {
        padding-inline: 22px;
        scroll-padding-inline: 22px;
    }

    .project-card {
        flex-basis: 84vw;
        width: 84vw;
    }

    .project-card-image {
        height: 62vw;
        min-height: 270px;
    }

    .project-card-meta {
        margin-top: 16px;
        font-size: 8px;
    }

    .project-card-caption {
        right: 14px;
        bottom: 16px;
        font-size: 8px;
    }

    .project-card-number {
        bottom: 16px;
        left: 14px;
    }
}

.hero-home .scroll-down div {
    position: relative;
    overflow: hidden;
    background: rgba(0, 242, 254, 0.28);
}

.hero-home .scroll-down div::after {
    position: absolute;
    inset: 0;
    background: #00f2fe;
    content: "";
    transform: scaleX(0.28);
    transform-origin: left center;
    animation: hero-scroll-pulse 1.8s ease-in-out infinite;
}

@keyframes hero-scroll-pulse {
    0%, 100% {
        transform: translateX(-110%) scaleX(0.28);
    }

    55% {
        transform: translateX(250%) scaleX(0.8);
    }
}

html[data-theme="dark"] .hero-text,
html[data-theme="dark"] .hero-content > p:not(.section-label),
html[data-theme="dark"] :is(.about-hero, .booking-hero, .contact-hero, .destination-hero, .gallery-hero, .tour-hero, .details-hero) p:last-child {
    max-width: 590px;
    color: #c4d0e2;
    font-size: 16px;
}

html[data-theme="dark"] :is(.section, .tour-list, .destination-page, .gallery-page, .about-story, .contact-section, .booking-section, .details-section) {
    width: min(100%, 1600px);
    margin-inline: auto;
    padding: clamp(72px, 8vw, 120px) clamp(22px, 6vw, 96px);
}

html[data-theme="dark"] .stats,
html[data-theme="dark"] .destination-section,
html[data-theme="dark"] .values,
html[data-theme="dark"] .perks {
    border-block: 1px solid rgba(148, 177, 215, 0.1);
    background: linear-gradient(110deg, rgba(16, 24, 39, 0.86), rgba(11, 18, 32, 0.9));
    color: var(--text);
}

html[data-theme="dark"] .stat,
html[data-theme="dark"] .value,
html[data-theme="dark"] .perk {
    border-color: var(--line);
}

html[data-theme="dark"] .stat span,
html[data-theme="dark"] .value p,
html[data-theme="dark"] .perk p {
    color: #a7b4c8;
}

html[data-theme="dark"] .tour-card,
html[data-theme="dark"] .package-card,
html[data-theme="dark"] .job-card,
html[data-theme="dark"] .booking-info,
html[data-theme="dark"] .booking-box,
html[data-theme="dark"] .contact-form-box,
html[data-theme="dark"] .feature,
html[data-theme="dark"] .contact-item,
html[data-theme="dark"] .day {
    border: 1px solid var(--line);
    border-radius: 20px;
    background: linear-gradient(145deg, rgba(21, 32, 51, 0.82), rgba(13, 21, 36, 0.88));
    box-shadow: 0 20px 55px rgba(0, 0, 0, 0.2), inset 0 1px rgba(255, 255, 255, 0.035);
    color: var(--text);
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
}

html[data-theme="dark"] .tour-card,
html[data-theme="dark"] .package-card,
html[data-theme="dark"] .job-card {
    overflow: hidden;
}

html[data-theme="dark"] .tour-content,
html[data-theme="dark"] .package-info,
html[data-theme="dark"] .job-info {
    color: var(--text);
}

html[data-theme="dark"] .tour-content h3,
html[data-theme="dark"] .package-info h3,
html[data-theme="dark"] .job-info h3 {
    color: #f1f5f9;
}

html[data-theme="dark"] .tour-content a,
html[data-theme="dark"] .package-bottom a,
html[data-theme="dark"] .contact-item a,
html[data-theme="dark"] .contact-item p {
    color: #8be9fa;
}

html[data-theme="dark"] .package-bottom,
html[data-theme="dark"] .contact-item,
html[data-theme="dark"] .day,
html[data-theme="dark"] .job-link,
html[data-theme="dark"] .booking-feature {
    border-color: var(--line);
}

html[data-theme="dark"] .feature {
    padding: 20px;
    border-radius: 14px;
}

html[data-theme="dark"] .feature-icon {
    border: 1px solid rgba(52, 211, 153, 0.25);
    border-radius: 12px;
    background: rgba(52, 211, 153, 0.1);
    color: #6ee7c0;
}

html[data-theme="dark"] .apply,
html[data-theme="dark"] .gallery-cta,
html[data-theme="dark"] .custom-trip,
html[data-theme="dark"] .about-cta,
html[data-theme="dark"] .destination-cta,
html[data-theme="dark"] .cta-section {
    border-block: 1px solid var(--line);
    background-color: #0c1422;
    background-image:
        radial-gradient(ellipse at 50% 0%, rgba(37, 99, 235, 0.16), transparent 60%),
        linear-gradient(145deg, rgba(13, 21, 36, 0.96), rgba(9, 14, 25, 0.98));
    color: var(--text);
}

html[data-theme="dark"] .cta-section#contact {
    border-block: 1px solid var(--line);
    background-color: #0c1422;
    background-image:
        radial-gradient(ellipse at 50% 0%, rgba(37, 99, 235, 0.1), transparent 60%),
        linear-gradient(145deg, rgba(13, 21, 36, 0.68), rgba(9, 14, 25, 0.76)),
        url("assets/images/wedding.jpg");
    background-position: center, center, center;
    background-size: cover;
    color: var(--text);
}

html[data-theme="dark"] .testimonial {
    border-block: 1px solid var(--line);
    background:
        radial-gradient(ellipse at 12% 5%, rgba(37, 99, 235, 0.12), transparent 35rem),
        linear-gradient(150deg, #0a0f1d 0%, #0b1220 48%, #090e19 100%);
    color: var(--text);
}

html[data-theme="dark"] .about-image {
    border: 1px solid var(--line);
    border-radius: 24px;
    box-shadow: 0 28px 70px rgba(0, 0, 0, 0.38);
}

html[data-theme="dark"] .destination-card,
html[data-theme="dark"] .place-card,
html[data-theme="dark"] .gallery-item,
html[data-theme="dark"] .photo {
    border: 1px solid rgba(190, 215, 245, 0.18);
    border-radius: 16px;
    box-shadow: 0 16px 40px rgba(0, 0, 0, 0.25);
}

html[data-theme="dark"] .destination-card::before,
html[data-theme="dark"] .place-card::before {
    background: linear-gradient(180deg, rgba(5, 10, 20, 0.02) 10%, rgba(5, 10, 20, 0.85));
}

html[data-theme="dark"] .destination-card p,
html[data-theme="dark"] .place-card p {
    color: #d1dced;
}

html[data-theme="dark"] .btn,
html[data-theme="dark"] .btn-primary,
html[data-theme="dark"] .submit-btn,
html[data-theme="dark"] .hero-actions .btn,
html[data-theme="dark"] .apply .btn {
    min-height: 48px;
    padding: 14px 23px;
    border: 1px solid rgba(103, 232, 249, 0.44);
    border-radius: 999px;
    background: linear-gradient(110deg, #34d399, #67e8f9);
    box-shadow: 0 10px 28px rgba(52, 211, 153, 0.18);
    color: #07131b;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.04em;
}

html[data-theme="dark"] .btn-outline,
html[data-theme="dark"] .whatsapp-btn {
    min-height: 48px;
    padding: 14px 22px;
    border: 1px solid rgba(190, 215, 245, 0.3);
    border-radius: 999px;
    background: rgba(226, 232, 240, 0.04);
    color: #e2eaf7;
}

html[data-theme="dark"] .btn:hover,
html[data-theme="dark"] .btn-primary:hover,
html[data-theme="dark"] .submit-btn:hover,
html[data-theme="dark"] .hero-actions .btn:hover,
html[data-theme="dark"] .apply .btn:hover {
    border-color: rgba(167, 243, 208, 0.9);
    background: linear-gradient(110deg, #6ee7b7, #a5f3fc);
    box-shadow: 0 12px 36px rgba(52, 211, 153, 0.28), 0 0 24px rgba(103, 232, 249, 0.18);
    color: #06131b;
}

html[data-theme="dark"] .btn-outline:hover,
html[data-theme="dark"] .whatsapp-btn:hover {
    border-color: rgba(103, 232, 249, 0.68);
    background: rgba(103, 232, 249, 0.1);
    color: #e6fbff;
}

html[data-theme="dark"] input,
html[data-theme="dark"] select,
html[data-theme="dark"] textarea {
    min-height: 48px;
    border: 1px solid rgba(148, 177, 215, 0.24);
    border-radius: 12px;
    background: rgba(9, 15, 27, 0.7);
    box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.18);
    color: #f1f5f9;
    transition: border-color 220ms ease, background 220ms ease, box-shadow 220ms ease, color 220ms ease;
}

html[data-theme="dark"] textarea {
    min-height: 130px;
}

html[data-theme="dark"] input::placeholder,
html[data-theme="dark"] textarea::placeholder {
    color: #91a1b8;
}

html[data-theme="dark"] input:focus,
html[data-theme="dark"] select:focus,
html[data-theme="dark"] textarea:focus {
    border-color: rgba(103, 232, 249, 0.72);
    background: rgba(14, 25, 42, 0.94);
    box-shadow: 0 0 0 4px rgba(103, 232, 249, 0.1), 0 0 22px rgba(52, 211, 153, 0.1);
}

html[data-theme="dark"] :is(.booking-section, .contact-section) {
    color: var(--text);
}

html[data-theme="dark"] .booking-info,
html[data-theme="dark"] .booking-box,
html[data-theme="dark"] .contact-form-box {
    padding: clamp(24px, 3.5vw, 46px);
}

html[data-theme="dark"] .booking-feature p,
html[data-theme="dark"] .booking-box p:not(.section-label) {
    color: #a7b4c8;
}

html[data-theme="dark"] .booking-feature > strong,
html[data-theme="dark"] .booking-box h3 em {
    color: #6ee7c0;
}

html[data-theme="dark"] footer {
    border-top: 1px solid var(--line);
    background: rgba(6, 10, 19, 0.88);
    color: #d9e4f3;
}

html[data-theme="dark"] .footer-brand p,
html[data-theme="dark"] .footer-column a,
html[data-theme="dark"] .footer-column span,
html[data-theme="dark"] .footer-bottom {
    color: #9aa9bf;
}

html[data-theme="dark"] .footer-column a:hover,
html[data-theme="dark"] .footer-bottom a:hover {
    color: #67e8f9;
}

html[data-theme="dark"] .footer-column h4 {
    color: #6ee7c0;
}

html[data-theme="dark"] .footer-bottom {
    border-color: var(--line);
}

html[data-theme="dark"] .whatsapp {
    border: 1px solid rgba(255, 255, 255, 0.4);
    box-shadow: 0 12px 34px rgba(52, 211, 153, 0.28);
}

html[data-theme="dark"] .tour-card,
html[data-theme="dark"] .package-card,
html[data-theme="dark"] .job-card,
html[data-theme="dark"] .booking-info,
html[data-theme="dark"] .booking-box,
html[data-theme="dark"] .contact-form-box,
html[data-theme="dark"] .feature,
html[data-theme="dark"] .destination-card,
html[data-theme="dark"] .place-card,
html[data-theme="dark"] .gallery-item,
html[data-theme="dark"] .photo,
html[data-theme="dark"] .btn,
html[data-theme="dark"] .nav-button,
html[data-theme="dark"] .nav-cta,
html[data-theme="dark"] .theme-toggle,
html[data-theme="dark"] .btn-outline,
html[data-theme="dark"] .submit-btn,
html[data-theme="dark"] .whatsapp-btn,
html[data-theme="dark"] a,
html[data-theme="dark"] button {
    transition-property: transform, color, background-color, border-color, box-shadow;
    transition-duration: 240ms;
    transition-timing-function: cubic-bezier(0.2, 0.75, 0.25, 1);
}

html[data-theme="dark"] .tour-card:hover,
html[data-theme="dark"] .package-card:hover,
html[data-theme="dark"] .job-card:hover {
    transform: translateY(-7px);
    border-color: rgba(103, 232, 249, 0.38);
    box-shadow: 0 24px 60px rgba(0, 0, 0, 0.34), 0 0 28px rgba(52, 211, 153, 0.12);
}

html[data-theme="dark"] .destination-card:hover,
html[data-theme="dark"] .place-card:hover,
html[data-theme="dark"] .gallery-item:hover,
html[data-theme="dark"] .photo:hover {
    transform: translateY(-4px) scale(1.015);
    border-color: rgba(103, 232, 249, 0.5);
    box-shadow: 0 22px 48px rgba(0, 0, 0, 0.32), 0 0 26px rgba(96, 165, 250, 0.18);
}

html[data-theme="dark"] .btn:hover,
html[data-theme="dark"] .nav-button:hover,
html[data-theme="dark"] .nav-cta:hover,
html[data-theme="dark"] .theme-toggle:hover,
html[data-theme="dark"] .submit-btn:hover,
html[data-theme="dark"] .btn-outline:hover,
html[data-theme="dark"] .whatsapp-btn:hover {
    transform: translateY(-2px);
}

html[data-theme="dark"] .footer-column a:hover,
html[data-theme="dark"] .footer-bottom a:hover {
    text-shadow: 0 0 18px rgba(103, 232, 249, 0.38);
}

@media (max-width: 900px) {
    html[data-theme="dark"] .navbar,
    html[data-theme="dark"] .navbar.scrolled {
        padding-inline: 22px;
    }

}

@media (max-width: 600px) {
    html[data-theme="dark"] .navbar,
    html[data-theme="dark"] .navbar.scrolled {
        height: 68px;
        padding-inline: 14px;
        gap: 9px;
    }

    html[data-theme="dark"] .navbar .header-logo > img {
        width: 34px;
        height: 34px;
    }

    html[data-theme="dark"] .navbar .logo-wordmark {
        letter-spacing: 2px;
    }

    html[data-theme="dark"] .navbar .logo-wordmark > strong {
        font-size: 15px;
    }

    html[data-theme="dark"] .theme-toggle {
        min-height: 38px;
        margin: 0;
        padding: 8px 10px;
        font-size: 9px;
    }

    html[data-theme="dark"] .hero,
    html[data-theme="dark"] :is(.about-hero, .booking-hero, .contact-hero, .destination-hero, .gallery-hero, .tour-hero, .details-hero) {
        padding-inline: 22px;
    }

    html[data-theme="dark"] .hero-home .hero-content {
        padding-inline: 0;
        padding-top: 120px;
        padding-bottom: 100px;
        padding-right: 0;
    }

    html[data-theme="dark"] .hero-home .hero-content h1 {
        max-width: 90%;
    }

    .hero-home .hero-orb {
        filter: blur(54px);
    }

    .hero-home .hero-orb-deep {
        right: -32%;
    }

    html[data-theme="dark"] .hero-home .hero-content h1,
    html[data-theme="dark"] .hero-home h1,
    html[data-theme="dark"] :is(.about-hero, .booking-hero, .contact-hero, .destination-hero, .gallery-hero, .tour-hero, .details-hero) h1 {
        font-size: clamp(42px, 13vw, 62px);
    }

    html[data-theme="dark"] .section-heading h2,
    html[data-theme="dark"] .tour-heading h2,
    html[data-theme="dark"] .gallery-heading h2 {
        font-size: clamp(36px, 10vw, 52px);
    }

    html[data-theme="dark"] .booking-info,
    html[data-theme="dark"] .booking-box,
    html[data-theme="dark"] .contact-form-box {
        border-radius: 16px;
    }
}

html.lenis,
html.lenis body {
    height: auto;
}

html.lenis.lenis-smooth {
    scroll-behavior: auto !important;
}

html.lenis.lenis-smooth [data-lenis-prevent] {
    overscroll-behavior: contain;
}

html.lenis.lenis-stopped {
    overflow: hidden;
}

html.lenis.lenis-scrolling iframe {
    pointer-events: none;
}

.custom-cursor {
    position: fixed;
    z-index: 2000;
    inset: 0;
    pointer-events: none;
}

.custom-cursor-ring,
.custom-cursor-dot {
    position: fixed;
    top: 0;
    left: 0;
    border-radius: 50%;
    pointer-events: none;
    will-change: transform;
}

.custom-cursor-ring {
    display: grid;
    width: 40px;
    height: 40px;
    place-items: center;
    border: 1px solid rgba(0, 242, 254, 0.72);
    background: rgba(0, 242, 254, 0.045);
    box-shadow: 0 0 20px rgba(0, 242, 254, 0.12);
    transform: translate3d(var(--cursor-x, -100px), var(--cursor-y, -100px), 0) translate(-50%, -50%) scale(var(--cursor-scale, 1));
    transform-origin: center;
    transition: transform 220ms cubic-bezier(0.2, 0.7, 0.2, 1), background 260ms ease, border-color 260ms ease, box-shadow 260ms ease;
    will-change: transform;
}

.custom-cursor-dot {
    width: 8px;
    height: 8px;
    background: #00f2fe;
    box-shadow: 0 0 12px rgba(0, 242, 254, 0.9);
    transition: opacity 180ms ease, transform 180ms ease;
}

.custom-cursor-label {
    color: #07131b;
    font-size: 9px;
    font-weight: 800;
    letter-spacing: 0.11em;
    opacity: 0;
    transform: scale(0.8);
    transition: opacity 180ms ease, transform 220ms cubic-bezier(0.2, 0.7, 0.2, 1);
}

.custom-cursor-ring.is-active {
    --cursor-scale: 1.5;
    border-color: rgba(0, 242, 254, 0.95);
    background: #00f2fe;
    box-shadow: 0 0 30px rgba(0, 242, 254, 0.3);
}

.custom-cursor-ring.is-active ~ .custom-cursor-dot {
    opacity: 0;
    transform: scale(0);
}

.custom-cursor-ring.is-active .custom-cursor-label {
    opacity: 1;
    transform: scale(1);
}

.custom-cursor-ring.is-dragging {
    border-color: rgba(103, 232, 249, 0.98);
    background: #67e8f9;
    box-shadow: 0 0 34px rgba(103, 232, 249, 0.38);
}

.custom-cursor-ring.is-pressed {
    --cursor-scale: 1.2;
}

.custom-cursor.is-hidden {
    visibility: hidden;
}

body::after {
    position: fixed;
    z-index: 900;
    inset: 0;
    background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='grain'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23grain)' opacity='.55'/%3E%3C/svg%3E");
    content: "";
    opacity: 0.035;
    mix-blend-mode: overlay;
    pointer-events: none;
}

:where(a, button, input, select, textarea, summary, [role="button"], [tabindex]):focus-visible {
    outline: 2px solid #00cbd5;
    outline-offset: 4px;
}

:where(button, input, select, textarea, [role="button"]):hover {
    border-color: rgba(0, 203, 213, 0.72);
}

a:not(.btn):not(.nav-button):not(.nav-cta):not(.theme-toggle):hover {
    text-decoration: underline;
    text-decoration-color: currentColor;
    text-underline-offset: 0.2em;
}

:where(button, input[type="submit"], [role="button"]):hover {
    filter: brightness(1.08);
}

@media (pointer: fine) {
    body.has-custom-cursor,
    body.has-custom-cursor * {
        cursor: none !important;
    }
}

@media (pointer: coarse), (max-width: 767px) {
    .custom-cursor {
        display: none !important;
    }

    .hero-home .hero-orb {
        opacity: 0.2;
        filter: blur(42px);
        translate: none;
    }

    .footer-atmosphere {
        animation: none;
    }

    .footer-marquee-track {
        animation: none;
    }

    .reveal-on-scroll {
        transition-duration: 450ms;
    }
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }

    body::after {
        opacity: 0.02;
    }

    html[data-theme="dark"] *,
    html[data-theme="dark"] *::before,
    html[data-theme="dark"] *::after {
        scroll-behavior: auto !important;
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }

    .hero-home .scroll-down div::after {
        animation: none;
    }
}

/* Shared fixed navigation and page progress */
.navbar {
    position: fixed !important;
    inset: 0 0 auto;
    z-index: 1100;
    height: 78px;
    padding-inline: clamp(20px, 6vw, 96px);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: clamp(10px, 1.8vw, 26px);
    border-bottom: 1px solid rgba(103, 232, 249, 0.12);
    background: rgba(8, 18, 31, 0.44);
    color: #f8fafc;
    box-shadow: 0 8px 28px rgba(2, 8, 18, 0.12);
    backdrop-filter: blur(12px) saturate(135%);
    -webkit-backdrop-filter: blur(12px) saturate(135%);
    transition: background-color 320ms ease, border-color 320ms ease, box-shadow 320ms ease, backdrop-filter 320ms ease;
}

.navbar::before {
    position: absolute;
    z-index: 1;
    inset: 0;
    background: linear-gradient(105deg, transparent 18%, rgba(105, 228, 224, 0.055) 48%, rgba(213, 180, 106, 0.035) 58%, transparent 82%);
    content: "";
    opacity: 0;
    pointer-events: none;
    transform: translateX(-12%);
    transition: opacity 360ms ease, transform 650ms cubic-bezier(0.2, 0.7, 0.2, 1);
}

.navbar:is(:hover, :focus-within),
.navbar.scrolled:is(:hover, :focus-within) {
    box-shadow: 0 12px 38px rgba(1, 9, 12, 0.3), 0 0 24px rgba(24, 112, 106, 0.08);
}

.navbar:is(:hover, :focus-within)::before,
.navbar.scrolled:is(:hover, :focus-within)::before {
    opacity: 1;
    transform: translateX(12%);
}

.navbar :is(.nav-button, .nav-cta, nav a) {
    position: relative;
    isolation: isolate;
}

.navbar > nav {
    position: relative;
    z-index: 2;
}

.navbar :is(.nav-button, .nav-cta, nav a)::after {
    position: absolute;
    right: 0.1em;
    bottom: 5px;
    left: 0.1em;
    height: 1px;
    background: linear-gradient(90deg, #69e4e0, #d5b46a);
    content: "";
    opacity: 0;
    transform: scaleX(0);
    transform-origin: left center;
    transition: opacity 220ms ease, transform 320ms cubic-bezier(0.2, 0.7, 0.2, 1);
}

.navbar :is(.nav-button, .nav-cta, nav a):is(:hover, :focus-visible, :active)::after {
    opacity: 0.8;
    transform: scaleX(1);
}

.navbar .theme-toggle:active,
.navbar :is(.btn, .nav-button, .nav-cta):active {
    transform: translateY(1px);
}

.navbar.scrolled {
    border-bottom-color: rgba(103, 232, 249, 0.2);
    background: rgba(8, 17, 30, 0.84);
    box-shadow: 0 12px 34px rgba(2, 8, 18, 0.25);
    backdrop-filter: blur(20px) saturate(160%);
    -webkit-backdrop-filter: blur(20px) saturate(160%);
}

html[data-theme="dark"] .navbar {
    border-bottom-color: rgba(103, 232, 249, 0.14);
    background-color: rgba(8, 17, 30, 0.58);
}

html[data-theme="dark"] .navbar.scrolled {
    border-bottom-color: rgba(103, 232, 249, 0.22);
    background-color: rgba(8, 17, 30, 0.88);
    box-shadow: 0 12px 36px rgba(0, 0, 0, 0.3);
}

html[data-theme="light"] {
    color-scheme: light;
    --dark: #20332d;
    --dark-2: #344b43;
    --green: #26745e;
    --gold: #aa7b35;
    --cream: #f4f2eb;
    --white: #ffffff;
    --text: #263832;
    --muted: #61716b;
    --surface: rgba(255, 255, 255, .82);
    --surface-strong: #fffefa;
    --line: rgba(39, 66, 57, .15);
    --glow-blue: rgba(38, 116, 94, .12);
    --glow-green: rgba(38, 116, 94, .1);
    --nav-glass-background: rgba(250, 249, 244, .91);
    --nav-glass-border: rgba(39, 66, 57, .16);
    --nav-glass-shadow: 0 12px 36px rgba(35, 50, 42, .1), inset 0 1px rgba(255, 255, 255, .9);
    --nav-glass-text: #263832;
    --nav-glass-muted: #61716b;
    --nav-glass-accent: #26745e;
}

html[data-theme="light"] .navbar,
html[data-theme="light"] .navbar.scrolled {
    border-bottom-color: var(--nav-glass-border);
    background-color: var(--nav-glass-background);
    color: var(--nav-glass-text);
    box-shadow: var(--nav-glass-shadow);
    backdrop-filter: blur(20px) saturate(155%);
    -webkit-backdrop-filter: blur(20px) saturate(155%);
}

html[data-theme="light"] .navbar.scrolled {
    background-color: var(--nav-glass-background);
    box-shadow: var(--nav-glass-shadow);
    backdrop-filter: blur(20px) saturate(155%);
    -webkit-backdrop-filter: blur(20px) saturate(155%);
}

html[data-theme="light"] .navbar .logo,
html[data-theme="light"] .navbar .logo strong,
html[data-theme="light"] .navbar .logo-wordmark > strong {
    color: var(--nav-glass-text);
}

html[data-theme="light"] .navbar .logo span,
html[data-theme="light"] .navbar .logo-wordmark > span {
    color: var(--nav-glass-accent);
}

html[data-theme="light"] .navbar .theme-toggle,
html[data-theme="light"] .navbar .menu-btn {
    border-color: var(--nav-glass-border);
    background: rgba(255, 255, 255, 0.56);
    color: var(--nav-glass-text);
    box-shadow: inset 0 1px rgba(255, 255, 255, 0.75);
}

html[data-theme="light"] .navbar :is(.theme-toggle, .menu-btn):hover {
    border-color: rgba(15, 118, 110, 0.34);
    background: rgba(15, 118, 110, 0.08);
    color: #0b5f59;
    box-shadow: 0 6px 18px rgba(15, 118, 110, 0.1);
}

.navbar > :is(.logo, .btn, .nav-button, .nav-cta, .theme-toggle) {
    position: relative;
    z-index: 2;
}

.navbar :is(.logo, .nav-links a, .btn, .nav-button, .nav-cta, .theme-toggle, .menu-btn) {
    transition: color 220ms ease, background-color 220ms ease, border-color 220ms ease, box-shadow 220ms ease, transform 220ms ease;
}

.navbar :is(.nav-button, .nav-cta, .theme-toggle, .menu-btn):focus-visible,
.navbar .btn:focus-visible {
    outline: 2px solid #67e8f9;
    outline-offset: 4px;
}

.navbar :is(.btn-primary, .nav-button, .nav-cta) {
    border: 1px solid rgba(103, 232, 249, 0.32);
    box-shadow: 0 6px 20px rgba(20, 184, 166, 0.12);
}

.navbar :is(.btn-primary, .nav-button, .nav-cta):hover {
    border-color: rgba(103, 232, 249, 0.66);
    box-shadow: 0 8px 24px rgba(20, 184, 166, 0.2), 0 0 18px rgba(103, 232, 249, 0.12);
    filter: brightness(1.04);
}

.navbar .theme-toggle,
.navbar .menu-btn {
    border: 1px solid rgba(148, 196, 211, 0.24);
    border-radius: 999px;
    background: rgba(226, 242, 248, 0.055);
    color: #e8f4f8;
}

.navbar :is(.theme-toggle, .menu-btn):hover {
    border-color: rgba(103, 232, 249, 0.45);
    background: rgba(103, 232, 249, 0.1);
    color: #ffffff;
    box-shadow: 0 6px 20px rgba(8, 145, 178, 0.12);
}

html[data-theme="dark"] .navbar .logo:hover {
    color: #ffffff;
}

html[data-theme="light"] .navbar .logo:hover {
    color: var(--nav-glass-accent);
}

.scroll-progress {
    position: fixed;
    z-index: 1200;
    inset: 0 0 auto;
    height: 3px;
    overflow: hidden;
    background: rgba(148, 163, 184, 0.12);
    pointer-events: none;
}

.scroll-progress > span {
    display: block;
    width: 100%;
    height: 100%;
    transform: scaleX(0);
    transform-origin: left center;
    background: linear-gradient(90deg, #67e8f9, #34d399);
    box-shadow: 0 0 12px rgba(103, 232, 249, 0.6);
    will-change: transform;
}

.navbar + .hero:not(.hero-home) {
    padding-top: 158px;
}

.offgrid-dock {
    position: fixed;
    z-index: 1300;
    right: 50%;
    bottom: calc(18px + env(safe-area-inset-bottom, 0px));
    display: flex;
    width: max-content;
    max-width: calc(100vw - 32px);
    align-items: center;
    justify-content: center;
    gap: 5px;
    padding: 9px 11px;
    overflow-x: auto;
    border: 1px solid rgba(148, 196, 211, 0.2);
    border-radius: 23px;
    background: rgba(9, 20, 32, 0.77);
    box-shadow: 0 14px 42px rgba(0, 0, 0, 0.34), inset 0 1px rgba(255, 255, 255, 0.07);
    backdrop-filter: blur(22px) saturate(155%);
    -webkit-backdrop-filter: blur(22px) saturate(155%);
    transform: translateX(50%);
    scrollbar-width: none;
}

html[data-theme="light"] .offgrid-dock {
    border-color: var(--nav-glass-border);
    background: var(--nav-glass-background);
    box-shadow: var(--nav-glass-shadow);
    backdrop-filter: blur(20px) saturate(155%);
    -webkit-backdrop-filter: blur(20px) saturate(155%);
}

.offgrid-dock::-webkit-scrollbar {
    display: none;
}

.dock-item {
    position: relative;
    display: flex;
    min-width: 54px;
    min-height: 52px;
    flex: 0 0 auto;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 4px;
    padding: 5px 8px 3px;
    border-radius: 15px;
    color: rgba(226, 238, 245, 0.74);
    text-decoration: none;
    -webkit-tap-highlight-color: transparent;
    transition: color 180ms ease, background-color 180ms ease, transform 180ms ease;
}

html[data-theme="light"] .dock-item {
    color: var(--nav-glass-muted);
}

.dock-item::before {
    position: absolute;
    z-index: 0;
    inset: 0;
    border-radius: inherit;
    background: linear-gradient(110deg, transparent 15%, rgba(105, 228, 224, 0.16), rgba(213, 180, 106, 0.08), transparent 85%);
    content: "";
    opacity: 0;
    transform: translateX(-28%);
    transition: opacity 220ms ease, transform 420ms cubic-bezier(0.2, 0.7, 0.2, 1);
}

.dock-item:hover,
.dock-item:focus-visible,
.dock-item.is-current {
    color: #f4fdff;
    background: rgba(103, 232, 249, 0.11);
}

html[data-theme="light"] .dock-item:hover,
html[data-theme="light"] .dock-item:focus-visible,
html[data-theme="light"] .dock-item.is-current {
    color: var(--nav-glass-text);
    background: rgba(15, 118, 110, 0.09);
}

.dock-item:hover {
    transform: translateY(-3px);
}

.dock-item:is(:hover, :focus-visible)::before {
    opacity: 1;
    transform: translateX(0);
}

.dock-item:active::before {
    opacity: 1;
    transform: translateX(0);
}

.dock-item:hover .dock-icon,
.dock-item:focus-visible .dock-icon {
    filter: drop-shadow(0 0 7px rgba(105, 228, 224, 0.24));
    transform: translateY(-1px);
}

.dock-icon {
    position: relative;
    z-index: 1;
    transition: filter 220ms ease, transform 220ms ease;
}

.dock-label,
.dock-indicator {
    z-index: 1;
}

html[data-theme="light"] .dock-item:hover {
    box-shadow: 0 5px 14px rgba(15, 118, 110, 0.08);
}

.dock-item:active {
    background: rgba(103, 232, 249, 0.2);
    transform: scale(0.97);
}

html[data-theme="light"] .dock-item:active {
    background: rgba(15, 118, 110, 0.16);
}

.dock-icon {
    display: grid;
    width: 24px;
    height: 24px;
    place-items: center;
}

.dock-icon svg {
    display: block;
    width: 22px;
    height: 22px;
}

.dock-label {
    max-width: 82px;
    overflow: hidden;
    color: inherit;
    font-size: 9px;
    line-height: 1.1;
    text-align: center;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.dock-indicator {
    position: absolute;
    bottom: 1px;
    width: 4px;
    height: 4px;
    border-radius: 50%;
    background: #67e8f9;
    box-shadow: 0 0 9px rgba(103, 232, 249, 0.8);
    opacity: 0;
    transform: scale(0.5);
    transition: opacity 180ms ease, transform 180ms ease;
}

html[data-theme="light"] .dock-indicator {
    background: var(--nav-glass-accent);
    box-shadow: 0 0 8px rgba(15, 118, 110, 0.36);
}

.dock-item.is-current .dock-indicator {
    opacity: 1;
    transform: scale(1);
}

/* Subtle pointer tilt is enabled only by card-tilt.js for fine pointers. */
.has-card-tilt {
    --card-tilt-x: 0deg;
    --card-tilt-y: 0deg;
    --card-pointer-x: 50%;
    --card-pointer-y: 50%;
    position: relative;
    transform: perspective(var(--card-perspective, 1100px)) rotateX(var(--card-tilt-x)) rotateY(var(--card-tilt-y));
    transform-style: preserve-3d;
    transition: transform 320ms cubic-bezier(0.2, 0.75, 0.25, 1), box-shadow 320ms ease, border-color 320ms ease;
}

.has-card-tilt.is-tilting {
    transform: perspective(var(--card-perspective, 1100px)) rotateX(var(--card-tilt-x)) rotateY(var(--card-tilt-y)) translateY(-4px);
    will-change: transform;
    transition: transform 90ms ease-out, box-shadow 320ms ease, border-color 320ms ease;
}

.has-card-tilt:hover {
    transform: perspective(var(--card-perspective, 1100px)) rotateX(var(--card-tilt-x)) rotateY(var(--card-tilt-y)) translateY(-4px);
    box-shadow: 0 22px 48px rgba(0, 0, 0, 0.3), 0 0 24px rgba(52, 211, 153, 0.12);
}

.card-tilt-highlight {
    position: absolute;
    z-index: 5;
    inset: 0;
    border-radius: inherit;
    background: radial-gradient(
        340px circle at var(--card-pointer-x) var(--card-pointer-y),
        rgba(103, 232, 249, 0.13),
        rgba(52, 211, 153, 0.045) 34%,
        transparent 72%
    );
    opacity: 0;
    pointer-events: none;
    transition: opacity 240ms ease;
}

.has-card-tilt.is-tilting > .card-tilt-highlight,
.has-card-tilt:hover > .card-tilt-highlight {
    opacity: 1;
}

a.has-card-tilt:not(.btn):not(.nav-button):not(.nav-cta):not(.theme-toggle):not(.whatsapp):hover {
    transform: perspective(var(--card-perspective, 1100px)) rotateX(var(--card-tilt-x)) rotateY(var(--card-tilt-y)) translateY(-4px);
    box-shadow: 0 22px 48px rgba(0, 0, 0, 0.3), 0 0 24px rgba(52, 211, 153, 0.12);
}

html[data-theme="dark"] .has-card-tilt:hover {
    border-color: rgba(103, 232, 249, 0.38);
    box-shadow: 0 22px 52px rgba(0, 0, 0, 0.4), 0 0 26px rgba(52, 211, 153, 0.14);
}

html[data-theme="dark"] .has-card-tilt.is-tilting {
    transition: transform 90ms ease-out, box-shadow 320ms ease, border-color 320ms ease;
}

html[data-theme="dark"] .place-card.has-card-tilt.is-tilting,
html[data-theme="dark"] .place-card.has-card-tilt:hover {
    transform: perspective(var(--card-perspective, 1100px)) rotateX(var(--card-tilt-x)) rotateY(var(--card-tilt-y)) translateY(-4px);
}

html[data-theme="dark"] a.has-card-tilt:not(.btn):not(.nav-button):not(.nav-cta):not(.theme-toggle):not(.whatsapp):hover {
    border-color: rgba(103, 232, 249, 0.38);
    box-shadow: 0 22px 52px rgba(0, 0, 0, 0.4), 0 0 26px rgba(52, 211, 153, 0.14);
}

.dock-item:focus-visible {
    outline: 2px solid #67e8f9;
    outline-offset: 2px;
}

html[data-theme="light"] .dock-item:focus-visible {
    outline-color: var(--nav-glass-accent);
}

body {
    padding-bottom: calc(94px + env(safe-area-inset-bottom, 0px));
}

@media (min-width: 701px) and (max-width: 900px) {
    .offgrid-dock {
        gap: 3px;
        padding: 8px 9px;
    }

    .dock-item {
        min-width: 49px;
    }
}

@media (max-width: 700px) {
    .navbar,
    .navbar.scrolled {
        height: 68px;
        padding-inline: clamp(12px, 4vw, 18px);
        gap: 8px;
    }

    .navbar + .hero:not(.hero-home) {
        padding-top: 138px;
    }

    .navbar > :is(.btn, .nav-button, .nav-cta) {
        display: inline-flex;
        min-height: 36px;
        flex: 0 1 auto;
        justify-content: center;
        padding: 8px 11px;
        font-size: 9px;
        white-space: nowrap;
    }

    .navbar .theme-toggle {
        min-height: 36px;
        flex: 0 0 auto;
        margin: 0;
        padding: 7px 9px;
        font-size: 9px;
    }

    .navbar .header-logo > img {
        width: 32px;
        height: 32px;
    }

    .navbar .logo-wordmark {
        letter-spacing: 1.5px;
    }

    .navbar .logo-wordmark > strong {
        font-size: 14px;
    }

    .navbar .menu-btn {
        width: 38px;
        height: 38px;
        flex: 0 0 auto;
        align-items: center;
        justify-content: center;
        padding: 0;
    }

    .offgrid-dock {
        right: 50%;
        bottom: calc(9px + env(safe-area-inset-bottom, 0px));
        justify-content: flex-start;
        gap: 2px;
        max-width: calc(100vw - 18px);
        padding: 7px 8px;
        border-radius: 20px;
    }

    .dock-item {
        min-width: 46px;
        min-height: 48px;
        padding-inline: 5px;
    }

    .dock-icon,
    .dock-icon svg {
        width: 21px;
        height: 21px;
    }

    .dock-label {
        font-size: 8px;
    }
}

@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
    .navbar {
        background: rgba(8, 18, 31, 0.78);
    }

    .navbar.scrolled {
        background: rgba(8, 17, 30, 0.94);
    }
}

@media (prefers-reduced-motion: reduce) {
    .navbar,
    .navbar *,
    .offgrid-dock,
    .dock-item,
    .dock-indicator,
    .has-card-tilt,
    .card-tilt-highlight,
    .scroll-progress > span {
        transition-duration: 0.01ms !important;
        animation-duration: 0.01ms !important;
    }

    .navbar::before,
    .navbar :is(.nav-button, .nav-cta, nav a)::after,
    .dock-item::before,
    .dock-icon {
        transition: none !important;
    }
}

/* Cinematic shared footer */
html[data-theme="dark"] footer,
footer {
    position: relative;
    display: block;
    overflow: hidden;
    padding: 0 0 22px;
    background: #080d15;
    color: #f1f5f9;
}

html[data-theme="dark"] footer {
    background: #090e19;
}

.footer-experience {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    padding: clamp(28px, 4vw, 52px) clamp(22px, 8vw, 120px) 0;
    border-bottom: 1px solid rgba(203, 213, 225, 0.14);
    background:
        radial-gradient(ellipse at 74% 58%, rgba(22, 89, 82, 0.16), transparent 48%),
        linear-gradient(155deg, #08131d 0%, #09131d 48%, #0a111a 100%);
}

.footer-experience::after {
    position: absolute;
    z-index: -1;
    inset: 0;
    background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.45'/%3E%3C/svg%3E");
    content: "";
    opacity: 0.055;
    pointer-events: none;
}

.footer-topline {
    position: relative;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    color: #94a3b8;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.16em;
}

.footer-local-time {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    color: #cbd5e1;
    white-space: nowrap;
}

.footer-local-time time {
    color: #67e8f9;
    font-family: "DM Sans", monospace;
    font-variant-numeric: tabular-nums;
    letter-spacing: 0.09em;
}

.footer-world {
    position: relative;
    min-height: clamp(500px, 56vw, 720px);
    margin: 8px calc(clamp(22px, 8vw, 120px) * -1) 0;
    overflow: hidden;
    isolation: isolate;
    background: #07131a;
}

.footer-world::before {
    position: absolute;
    z-index: 2;
    inset: 0;
    background:
        linear-gradient(90deg, rgba(5, 16, 21, .94) 0%, rgba(5, 16, 21, .82) 29%, rgba(5, 16, 21, .38) 55%, rgba(5, 16, 21, .08) 100%),
        linear-gradient(0deg, rgba(5, 14, 19, .92) 0%, rgba(5, 14, 19, .22) 30%, rgba(5, 14, 19, .24) 75%, rgba(5, 14, 19, .58) 100%);
    content: "";
    pointer-events: none;
}

.footer-world::after {
    position: absolute;
    z-index: 4;
    inset: 0;
    background:
        radial-gradient(ellipse at 68% 55%, transparent 16%, rgba(3, 11, 16, .25) 78%),
        linear-gradient(0deg, rgba(3, 10, 14, .38), transparent 24%, transparent 76%, rgba(3, 10, 14, .2));
    content: "";
    pointer-events: none;
}

.footer-scene-ridge,
.footer-scene-camp,
.footer-scene-stars,
.footer-scene-mist,
.footer-camp-glow {
    position: absolute;
    pointer-events: none;
}

.footer-scene-ridge {
    z-index: 0;
    inset: -3%;
    overflow: hidden;
    background: linear-gradient(145deg, #102922, #07131a 78%);
}

.footer-scene-ridge img,
.footer-scene-camp img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    will-change: transform;
}

.footer-scene-ridge img {
    object-position: 50% 18%;
    filter: brightness(.43) saturate(.76) contrast(1.1) hue-rotate(8deg);
    transform: scale(1.04);
}

.footer-scene-camp {
    z-index: 1;
    right: -4%;
    bottom: -8%;
    width: min(76%, 1120px);
    height: 84%;
    overflow: hidden;
    -webkit-mask-image: linear-gradient(to top, #000 8%, #000 60%, transparent 100%);
    mask-image: linear-gradient(to top, #000 8%, #000 60%, transparent 100%);
    background: radial-gradient(ellipse at 54% 76%, rgba(128, 105, 69, .35), transparent 60%);
}

.footer-scene-camp img {
    object-position: 48% 54%;
    filter: brightness(.36) saturate(.72) contrast(1.12) sepia(.08) hue-rotate(8deg);
    transform: scale(1.025);
}

.footer-scene-ridge.is-unavailable img,
.footer-scene-camp.is-unavailable img {
    display: none;
}

.footer-scene-stars {
    z-index: 3;
    inset: 0;
    background:
        radial-gradient(1px 1px at 14% 20%, rgba(220, 241, 236, .72) 50%, transparent 100%),
        radial-gradient(1.3px 1.3px at 29% 12%, rgba(200, 231, 224, .58) 50%, transparent 100%),
        radial-gradient(1px 1px at 38% 31%, rgba(226, 241, 234, .62) 50%, transparent 100%),
        radial-gradient(1.4px 1.4px at 57% 17%, rgba(206, 238, 233, .7) 50%, transparent 100%),
        radial-gradient(1px 1px at 71% 12%, rgba(226, 241, 234, .58) 50%, transparent 100%),
        radial-gradient(1px 1px at 87% 27%, rgba(206, 238, 233, .66) 50%, transparent 100%),
        radial-gradient(1px 1px at 94% 14%, rgba(226, 241, 234, .55) 50%, transparent 100%);
    opacity: .66;
}

.footer-scene-mist {
    z-index: 3;
    right: 2%;
    bottom: 15%;
    width: 62%;
    height: 31%;
    background:
        radial-gradient(ellipse at 28% 62%, rgba(166, 195, 180, .2), transparent 61%),
        radial-gradient(ellipse at 75% 46%, rgba(118, 171, 161, .14), transparent 64%);
    filter: blur(20px);
    opacity: .23;
    will-change: transform, opacity;
}

.footer-camp-glow {
    z-index: 5;
    left: 28%;
    bottom: 13%;
    width: clamp(170px, 20vw, 270px);
    aspect-ratio: 1.15;
    background:
        radial-gradient(ellipse at 50% 53%, rgba(255, 196, 116, .34), rgba(238, 148, 70, .15) 22%, rgba(194, 117, 60, .07) 42%, transparent 72%);
    opacity: .58;
    transform: scale(.94);
    will-change: transform, opacity;
}

.footer-world-copy {
    position: relative;
    z-index: 5;
    width: min(57%, 780px);
    padding: clamp(82px, 12vw, 158px) 0 clamp(76px, 9vw, 124px) clamp(22px, 8vw, 120px);
    pointer-events: none;
    will-change: transform;
}

.footer-world-copy > * {
    pointer-events: auto;
}

.footer-world-eyebrow {
    margin-bottom: 18px;
    color: #b4c5c3;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: .22em;
}

.footer-world-copy h2 {
    margin: 0;
    color: #f3f5f7;
    font-family: "Playfair Display", serif;
    font-size: clamp(54px, 8vw, 116px);
    font-weight: 500;
    letter-spacing: -.065em;
    line-height: .89;
}

.footer-world-copy h2 em {
    color: #7bdbca;
    font-weight: 500;
}

.footer-world-description {
    margin: 23px 0 27px;
    color: #c0cecb;
    font-size: 13px;
    line-height: 1.8;
}

.footer-talk-link {
    display: inline-flex;
    min-height: 46px;
    align-items: center;
    gap: 27px;
    padding: 0 18px;
    border: 1px solid rgba(109, 220, 212, .48);
    border-radius: 3px;
    color: #e9f4f4;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: .16em;
    text-decoration: none;
    transition: color .25s ease, background .25s ease, border-color .25s ease, transform .25s ease;
}

.footer-talk-link:hover,
.footer-talk-link:focus-visible {
    transform: translateY(-2px);
    border-color: #66d9d0;
    background: rgba(73, 215, 202, .12);
    color: #88f2e8;
    outline: none;
}

.footer-world-caption,
.footer-world-signal {
    position: absolute;
    z-index: 3;
    color: rgba(212, 231, 224, .68);
    font-size: 8px;
    font-weight: 600;
    letter-spacing: .17em;
    line-height: 1.8;
    pointer-events: none;
}

.footer-world-caption {
    right: clamp(26px, 8vw, 120px);
    bottom: 59px;
}

.footer-world-signal {
    top: 48px;
    right: clamp(26px, 8vw, 120px);
    display: inline-flex;
    align-items: center;
    gap: 9px;
}

.footer-world-signal i {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #8ad9c6;
    box-shadow: 0 0 11px rgba(138, 217, 198, .55);
}

.footer-marquee {
    position: relative;
    z-index: 1;
    width: calc(100% + clamp(44px, 16vw, 240px));
    margin-inline: calc(clamp(22px, 8vw, 120px) * -1);
    overflow: hidden;
    border-top: 1px solid rgba(203, 213, 225, 0.14);
    border-bottom: 1px solid rgba(203, 213, 225, 0.14);
}

.footer-marquee-track {
    display: flex;
    width: max-content;
    align-items: center;
    animation: footer-marquee-scroll 34s linear infinite;
}

.footer-marquee:hover .footer-marquee-track {
    animation-play-state: paused;
}

.footer-marquee-item {
    display: inline-flex;
    min-height: 68px;
    align-items: center;
    gap: clamp(26px, 4vw, 58px);
    padding: 0 clamp(22px, 3vw, 42px);
    color: rgba(226, 232, 240, 0.72);
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.18em;
    white-space: nowrap;
}

.footer-marquee-item i {
    color: #67e8c6;
    font-size: 16px;
    font-style: normal;
}

.footer-experience + .footer-main {
    position: relative;
    padding: 48px clamp(22px, 8vw, 120px) 42px;
}

.footer-main {
    grid-template-columns: 1.5fr repeat(4, minmax(0, 1fr));
    gap: clamp(22px, 4vw, 60px);
}

.footer-brand .logo {
    width: fit-content;
    color: #f3f5f7;
    text-decoration: none;
}

.footer-brand .logo span {
    color: #66d9d0;
}

.footer-brand p {
    max-width: 300px;
    color: #9eacbb;
    font-size: 11px;
    line-height: 1.9;
}

.footer-column {
    gap: 13px;
}

.footer-column h4 {
    margin: 0 0 6px;
    color: #78dcd2;
    font-size: 9px;
    letter-spacing: .17em;
}

.footer-column a,
.footer-column span {
    width: fit-content;
    color: #a7b4c1;
    font-size: 10px;
    text-decoration: none;
    transition: color .2s ease, transform .2s ease;
}

.footer-column a:hover,
.footer-column a:focus-visible {
    transform: translateX(3px);
    color: #72e3d8;
    outline: none;
}

.footer-social a {
    display: flex;
    align-items: center;
    gap: 8px;
}

.footer-social a svg {
    width: 16px;
    height: 16px;
    flex: 0 0 16px;
    color: #72e3d8;
    fill: currentColor;
}

.footer-social a:focus-visible {
    outline: 2px solid currentColor;
    outline-offset: 3px;
}

footer > .footer-bottom {
    position: relative;
    margin-inline: clamp(22px, 8vw, 120px);
}

.footer-bottom {
    border-color: rgba(203, 213, 225, .14);
    color: #8493a2;
}

.footer-bottom a:focus-visible {
    color: #72e3d8;
    outline: 1px solid currentColor;
    outline-offset: 4px;
}

.footer-compact > .footer-bottom {
    padding: 22px clamp(22px, 8vw, 120px);
    margin-inline: 0;
}

.footer-compact > .footer-experience + .footer-bottom {
    padding-top: 24px;
}

@keyframes footer-marquee-scroll {
    to { transform: translateX(-50%); }
}

@media (max-width: 600px) {
    .footer-experience {
        padding: 28px 20px 0;
    }

    .footer-topline {
        align-items: flex-start;
        font-size: 7px;
        letter-spacing: .08em;
    }

    .footer-local-time {
        gap: 5px;
    }

    .footer-world {
        min-height: 620px;
        margin-inline: -20px;
    }

    .footer-world::before {
        background:
            linear-gradient(90deg, rgba(5, 16, 21, .9), rgba(5, 16, 21, .48) 67%, rgba(5, 16, 21, .2)),
            linear-gradient(0deg, rgba(5, 14, 19, .86), rgba(5, 14, 19, .12) 38%, rgba(5, 14, 19, .26));
    }

    .footer-scene-ridge {
        inset: -2% -24% 18% -28%;
    }

    .footer-scene-ridge img {
        object-position: 55% 18%;
    }

    .footer-scene-camp {
        right: -2%;
        bottom: -3%;
        width: 100%;
        height: 67%;
        -webkit-mask-image: linear-gradient(to top, #000 8%, #000 60%, transparent 100%);
        mask-image: linear-gradient(to top, #000 8%, #000 60%, transparent 100%);
    }

    .footer-scene-camp img {
        object-position: 44% 54%;
    }

    .footer-scene-mist {
        right: -10%;
        bottom: 18%;
        width: 88%;
        height: 26%;
        filter: blur(15px);
    }

    .footer-camp-glow {
        left: 2%;
        bottom: 22%;
        width: 150px;
    }

    .footer-world-copy {
        width: 100%;
        padding: 67px 20px 0;
    }

    .footer-world-copy h2 {
        font-size: clamp(57px, 14vw, 76px);
    }

    .footer-world-description {
        max-width: 270px;
        margin: 17px 0 20px;
        font-size: 11px;
    }

    .footer-world-signal {
        top: auto;
        right: 20px;
        bottom: 24px;
        font-size: 7px;
    }

    .footer-world-caption {
        right: auto;
        bottom: 60px;
        left: 20px;
        font-size: 7px;
    }

    .footer-marquee {
        width: calc(100% + 40px);
        margin-inline: -20px;
    }

    .footer-marquee-item {
        min-height: 58px;
        font-size: 9px;
    }

    .footer-experience + .footer-main {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 35px 22px;
        padding: 36px 20px;
    }

    footer > .footer-bottom {
        margin-inline: 20px;
    }

    .footer-compact > .footer-bottom {
        padding-inline: 20px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .footer-marquee-track {
        animation: none;
    }

    .footer-talk-link,
    .footer-column a {
        transition: none;
    }
}


/* Interactive topographic footer */
body:has(> footer[data-offgrid-footer]) {
    padding-bottom: 0;
}

footer {
    padding-bottom: calc(100px + env(safe-area-inset-bottom, 0px));
    border-top: 1px solid var(--line, rgba(148, 177, 215, .16));
    background: #090e19;
    color: #eef4ff;
}

html[data-theme="dark"] footer {
    padding-bottom: calc(100px + env(safe-area-inset-bottom, 0px));
}

.footer-experience {
    padding: 0 clamp(22px, 8vw, 120px);
    border-bottom-color: var(--line, rgba(148, 177, 215, .16));
    background:
        radial-gradient(ellipse at 78% 48%, rgba(52, 211, 153, .09), transparent 48%),
        radial-gradient(ellipse at 28% 60%, rgba(96, 165, 250, .08), transparent 46%),
        linear-gradient(150deg, #101827 0%, #0b1220 54%, #090e19 100%);
}

.footer-experience::after {
    opacity: .035;
}

.footer-topline {
    color: #a7b4c8;
}

.footer-local-time {
    color: #cbd5e1;
}

.footer-local-time time {
    color: #67e8f9;
}

.footer-world {
    min-height: clamp(440px, 38vw, 560px);
    margin: 8px calc(clamp(22px, 8vw, 120px) * -1) 0;
    background:
        radial-gradient(ellipse at 73% 44%, rgba(52, 211, 153, .15), transparent 52%),
        radial-gradient(ellipse at 28% 62%, rgba(96, 165, 250, .12), transparent 54%),
        linear-gradient(135deg, #101827, #090e19 76%);
}

.footer-world::before {
    z-index: 1;
    background:
        linear-gradient(90deg, rgba(5, 10, 22, .92) 0%, rgba(5, 10, 22, .79) 31%, rgba(5, 10, 22, .24) 62%, rgba(5, 10, 22, .04) 100%),
        linear-gradient(0deg, rgba(5, 10, 22, .78), transparent 32%, rgba(5, 10, 22, .18));
}

.footer-world::after {
    z-index: 2;
    background:
        radial-gradient(ellipse at 69% 42%, transparent 18%, rgba(3, 7, 17, .18) 82%),
        linear-gradient(0deg, rgba(3, 7, 17, .2), transparent 24%, transparent 80%, rgba(3, 7, 17, .12));
}

.footer-map-graphic {
    position: absolute;
    z-index: 0;
    inset: -3% -1%;
    width: 102%;
    height: 106%;
    overflow: visible;
    transform-origin: 68% 46%;
    will-change: transform;
}

.footer-map-contours {
    vector-effect: non-scaling-stroke;
}

.footer-map-contours-distant {
    opacity: .32;
    stroke-dasharray: 2 7;
}

.footer-map-contours-mid {
    opacity: .4;
}

.footer-map-contours-near {
    opacity: .31;
    stroke-dasharray: 4 7;
}

.footer-map-route path {
    vector-effect: non-scaling-stroke;
}

.footer-route-base {
    stroke: rgba(103, 232, 249, .34);
    stroke-width: 1;
}

.footer-route-trail {
    stroke: #67e8f9;
    stroke-width: 1.8;
    stroke-dasharray: 100;
    stroke-dashoffset: 0;
    opacity: .88;
}

.footer-route-glint {
    stroke: #baf7ff;
    stroke-width: 2.4;
    stroke-dasharray: 3 97;
    stroke-dashoffset: 0;
    opacity: .75;
    filter: drop-shadow(0 0 4px rgba(103, 232, 249, .62));
    animation: footer-map-trail 18s linear infinite;
}

.footer-map-markers {
    fill: #d7f7ff;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 2px;
}

.footer-marker-halo {
    fill: rgba(103, 232, 249, .08);
    stroke: rgba(103, 232, 249, .72);
    stroke-width: 1;
    transform-box: fill-box;
    transform-origin: center;
    animation: footer-map-marker 3.8s ease-in-out infinite;
}

.footer-map-markers g:nth-child(2) .footer-marker-halo,
.footer-map-markers g:nth-child(4) .footer-marker-halo {
    animation-delay: 1.2s;
}

.footer-map-markers g:nth-child(3) .footer-marker-halo {
    animation-delay: 2.1s;
}

.footer-marker-dot {
    fill: #baf7ff;
    filter: drop-shadow(0 0 5px rgba(103, 232, 249, .72));
}

.footer-map-markers .footer-marker-coord {
    fill: rgba(167, 180, 200, .76);
    font-size: 7px;
    font-weight: 500;
    letter-spacing: 1.1px;
}

.footer-map-legend {
    fill: rgba(167, 180, 200, .65);
    font-size: 8px;
    letter-spacing: 2px;
}

.footer-map-shade {
    position: absolute;
    z-index: 1;
    inset: 0;
    background:
        radial-gradient(ellipse at 72% 48%, transparent 14%, rgba(4, 8, 19, .16) 76%),
        linear-gradient(90deg, rgba(5, 9, 20, .18), transparent 63%);
    pointer-events: none;
}

.footer-world-copy {
    z-index: 3;
    width: min(62%, 900px);
    padding: clamp(48px, 6vw, 84px) 0 clamp(48px, 6vw, 84px) clamp(22px, 8vw, 120px);
    will-change: transform, opacity;
}

.footer-world-eyebrow {
    color: #67e8f9;
}

html[data-theme="dark"] footer .footer-world-copy .footer-world-eyebrow {
    color: #67e8f9;
}

.footer-world-copy h2 {
    max-width: 850px;
    color: #f8fafc;
    font-family: "DM Sans", sans-serif;
    font-size: clamp(50px, 6.1vw, 88px);
    font-weight: 600;
    letter-spacing: -.075em;
    line-height: .91;
}

.footer-world-copy h2 em {
    color: #67e8f9;
    font-style: normal;
    font-weight: 500;
}

.footer-world-description {
    max-width: 370px;
    color: #a7b4c8;
}

.footer-talk-link {
    border-color: rgba(103, 232, 249, .45);
    color: #eef4ff;
}

.footer-talk-link:hover,
.footer-talk-link:focus-visible {
    border-color: #67e8f9;
    background: rgba(103, 232, 249, .1);
    color: #baf6fb;
}

.footer-world-signal {
    z-index: 3;
    top: 46px;
    right: clamp(26px, 8vw, 120px);
    color: rgba(203, 213, 225, .78);
}

.footer-world-signal i {
    background: #34d399;
    box-shadow: 0 0 10px rgba(52, 211, 153, .42);
}

.footer-experience + .footer-main {
    padding: 30px clamp(22px, 8vw, 120px) 28px;
}

.footer-brand .logo span {
    color: #67e8f9;
}

.footer-column h4 {
    color: #6ee7c0;
}

.footer-column a:hover,
.footer-column a:focus-visible {
    color: #67e8f9;
}

.footer-bottom {
    padding-top: 16px;
    border-color: var(--line, rgba(148, 177, 215, .16));
}

@keyframes footer-map-trail {
    to { stroke-dashoffset: -100; }
}

@keyframes footer-map-marker {
    0%, 100% { opacity: .48; transform: scale(.8); }
    50% { opacity: .9; transform: scale(1.16); }
}

@media (max-width: 900px) {
    .footer-map-markers {
        font-size: 12px;
    }

    .footer-map-markers .footer-marker-coord {
        font-size: 8px;
    }
}

@media (max-width: 600px) {
    .footer-experience {
        padding: 0 20px;
    }

    .footer-world {
        min-height: 470px;
        margin-inline: -20px;
    }

    .footer-map-graphic {
        inset: 0 -30% 0 -30%;
        width: 160%;
        height: 100%;
        opacity: .9;
    }

    .footer-map-route,
    .footer-map-markers {
        transform: translateX(-100px);
    }

    .footer-world::before {
        background:
            linear-gradient(90deg, rgba(5, 10, 22, .8), rgba(5, 10, 22, .48) 76%, rgba(5, 10, 22, .28)),
            linear-gradient(0deg, rgba(5, 10, 22, .72), rgba(5, 10, 22, .1) 42%, rgba(5, 10, 22, .2));
    }

    .footer-world-copy {
        width: 100%;
        padding: 52px 20px 0;
    }

    .footer-world-copy h2 {
        max-width: 360px;
        font-size: clamp(37px, 10vw, 52px);
    }

    .footer-world-description {
        max-width: 270px;
        margin: 17px 0 20px;
        font-size: 11px;
    }

    .footer-world-signal {
        top: auto;
        right: 20px;
        bottom: 24px;
        font-size: 7px;
    }

    .footer-map-legend {
        font-size: 12px;
    }

    .footer-experience + .footer-main {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 28px 22px;
        padding: 28px 20px;
    }

    footer > .footer-bottom {
        margin-inline: 20px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .footer-route-glint,
    .footer-marker-halo {
        animation: none;
    }

    .footer-map-graphic,
    .footer-world-copy,
    .footer-main,
    .footer-bottom {
        will-change: auto;
    }
}


/* Cinematic route transitions for the static multi-page site */
.route-transition-overlay {
    position: fixed;
    z-index: 10000;
    inset: 0;
    background:
        radial-gradient(ellipse at 50% 50%, rgba(201, 169, 110, 0.11), transparent 24%),
        radial-gradient(ellipse at 50% 52%, rgba(13, 74, 80, 0.28), transparent 52%),
        radial-gradient(ellipse at 76% 24%, rgba(105, 228, 224, 0.1), transparent 43%),
        linear-gradient(145deg, #03101c 0%, #061b2b 52%, #03101c 100%);
    pointer-events: none;
    overflow: hidden;
    transform: scaleY(0);
    transform-origin: top;
    will-change: transform;
}

.route-transition-overlay::before {
    position: absolute;
    top: -35%;
    bottom: -35%;
    left: -38%;
    width: 48%;
    content: "";
    opacity: 0;
    background: linear-gradient(
        90deg,
        transparent,
        rgba(105, 228, 224, 0.025) 22%,
        rgba(105, 228, 224, 0.12) 50%,
        rgba(105, 228, 224, 0.025) 78%,
        transparent
    );
    filter: blur(18px);
    transform: skewX(-18deg);
}

.route-transition-overlay::after {
    position: absolute;
    inset: -35%;
    content: "";
    opacity: 0;
    background: repeating-radial-gradient(
        ellipse at 50% 50%,
        transparent 0 37px,
        rgba(157, 209, 192, 0.085) 38px,
        transparent 39px 73px
    );
    mask-image: radial-gradient(ellipse at center, #000 8%, transparent 68%);
    transform: scale(0.94);
}

.route-transition-landscape {
    position: absolute;
    inset: 18% 0 0;
    overflow: hidden;
    opacity: 0;
    -webkit-mask-image: linear-gradient(to bottom, transparent 2%, #000 44%, #000 100%);
    mask-image: linear-gradient(to bottom, transparent 2%, #000 44%, #000 100%);
}

.route-transition-landscape svg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
}

.route-ridge-back {
    fill: url("#route-ridge-back");
    opacity: 0.72;
}

.route-ridge-front {
    fill: url("#route-ridge-front");
}

.route-ridge-line {
    fill: none;
    stroke: rgba(179, 221, 204, 0.18);
    stroke-width: 2;
}

.route-path {
    fill: none;
    stroke: url("#route-light");
    stroke-width: 3;
    stroke-linecap: round;
    stroke-dasharray: 1200;
    stroke-dashoffset: 1200;
    filter: drop-shadow(0 0 8px rgba(132, 227, 211, 0.88));
}

.route-transition-fog {
    position: absolute;
    right: -20%;
    bottom: 10%;
    left: -20%;
    height: 34%;
    opacity: 0;
    background:
        radial-gradient(ellipse at 28% 55%, rgba(134, 207, 196, 0.14), transparent 55%),
        radial-gradient(ellipse at 72% 45%, rgba(160, 200, 196, 0.12), transparent 58%);
    filter: blur(24px);
    pointer-events: none;
}

.route-transition-fog-back {
    bottom: 20%;
    transform: translateX(4%);
}

.route-transition-fog-front {
    bottom: 3%;
    opacity: 0;
    filter: blur(34px);
    transform: translateX(-5%);
}

.route-transition-overlay.is-exiting,
.route-transition-overlay.is-entering {
    transform-origin: bottom;
}

.route-transition-overlay.is-entering {
    transform-origin: top;
}

.route-transition-overlay.is-exiting::before,
.route-transition-overlay.is-entering::before {
    animation: route-transition-sweep 1400ms cubic-bezier(0.2, 0.65, 0.25, 1) both;
}

.route-transition-overlay.is-exiting::after,
.route-transition-overlay.is-entering::after {
    animation: route-transition-contours 1500ms ease-out both;
}

.route-transition-overlay.is-exiting .route-transition-landscape,
.route-transition-overlay.is-entering .route-transition-landscape {
    animation: route-landscape-arrive 1050ms ease-out 120ms both;
}

.route-transition-overlay.is-exiting .route-path,
.route-transition-overlay.is-entering .route-path {
    animation: route-path-draw 1150ms cubic-bezier(0.25, 0.7, 0.25, 1) 250ms both;
}

.route-transition-overlay.is-exiting .route-transition-fog-back,
.route-transition-overlay.is-entering .route-transition-fog-back {
    animation: route-fog-drift 1500ms ease-in-out both;
}

.route-transition-overlay.is-exiting .route-transition-fog-front,
.route-transition-overlay.is-entering .route-transition-fog-front {
    animation: route-fog-drift-reverse 1750ms ease-in-out both;
}

.route-transition-mark {
    position: absolute;
    top: 50%;
    left: 50%;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    color: #d5b46a;
    font-family: "Playfair Display", Georgia, serif;
    opacity: 0;
    text-shadow: 0 0 26px rgba(213, 180, 106, 0.28);
    transform: translate(-50%, -46%) scale(0.97);
}

.route-transition-wordmark {
    display: flex;
    align-items: baseline;
    gap: 0.18em;
    font-family: "Playfair Display", Georgia, serif;
    font-size: clamp(38px, 7vw, 76px);
    font-weight: 500;
    letter-spacing: -0.055em;
    line-height: 1;
}

.route-transition-wordmark strong {
    font-weight: 700;
}

.route-transition-mark small {
    color: rgba(222, 235, 226, 0.7);
    font-family: "DM Sans", sans-serif;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.24em;
}

.route-transition-overlay.is-exiting .route-transition-mark,
.route-transition-overlay.is-entering .route-transition-mark {
    animation: route-transition-mark-in 650ms cubic-bezier(0.2, 0.7, 0.2, 1) 170ms both;
}

@keyframes route-transition-sweep {
    0% { opacity: 0; transform: translateX(0) skewX(-18deg); }
    35% { opacity: 1; }
    100% { opacity: 0; transform: translateX(310%) skewX(-18deg); }
}

@keyframes route-transition-contours {
    0% { opacity: 0; transform: scale(0.94) rotate(-5deg); }
    40% { opacity: 0.85; }
    100% { opacity: 0.45; transform: scale(1.04) rotate(0); }
}

@keyframes route-landscape-arrive {
    0% { opacity: 0; transform: translateY(28px) scale(1.035); }
    100% { opacity: 0.92; transform: translateY(0) scale(1); }
}

@keyframes route-path-draw {
    0% { stroke-dashoffset: 1200; opacity: 0; }
    18% { opacity: 1; }
    100% { stroke-dashoffset: 0; opacity: 0.9; }
}

@keyframes route-fog-drift {
    0% { opacity: 0; transform: translateX(7%); }
    45% { opacity: 0.75; }
    100% { opacity: 0.2; transform: translateX(-5%); }
}

@keyframes route-fog-drift-reverse {
    0% { opacity: 0; transform: translateX(-8%); }
    42% { opacity: 0.7; }
    100% { opacity: 0.16; transform: translateX(5%); }
}

@keyframes route-transition-mark-in {
    to { opacity: 1; transform: translate(-50%, -50%) scale(1); }
}

body.route-exiting {
    pointer-events: none;
}

@media (prefers-reduced-motion: reduce) {
    .route-transition-overlay,
    .route-transition-overlay::before,
    .route-transition-overlay::after,
    .route-transition-mark,
    .route-transition-landscape,
    .route-transition-fog,
    .route-path {
        animation: none !important;
        transition: none !important;
    }
}

/* Complete light theme for shared and page-specific components */
html[data-theme="light"] body {
    background: #f4f2eb;
    color: #263832;
}

html[data-theme="light"] body::before {
    opacity: .045;
}

html[data-theme="light"] :is(h1, h2, h3, h4, h5, h6) {
    color: #263832;
}

html[data-theme="light"] :is(
    .section-description,
    .about-text p:not(.section-label),
    .contact-item a,
    .contact-item p,
    .why-text,
    .field-hint
) {
    color: #61716b;
}

html[data-theme="light"] :is(.section-label, .eyebrow, .job-type, .package-info small) {
    color: #26745e;
}

html[data-theme="light"] :is(.section-heading h2 em, .tour-heading h2 em, em) {
    color: #26745e;
}

html[data-theme="light"] :is(.section, .destination-page, .tour-list, .gallery-page, .details-section, .about-story, .contact-section, .booking-section) {
    color: #263832;
}

html[data-theme="light"] :is(.stats, .destination-section, .values, .perks, .gallery-cta, .apply) {
    background-color: #ebe9df;
    color: #263832;
}

html[data-theme="light"] :is(.stats, .values) {
    border-block: 1px solid rgba(39, 66, 57, .1);
}

html[data-theme="light"] :is(.stats .stat, .values .value, .perks .perk) {
    border-color: rgba(39, 66, 57, .14);
    color: #263832;
}

html[data-theme="light"] :is(.stats .stat span, .values .value p, .perks .perk p),
html[data-theme="light"] .gallery-cta > p,
html[data-theme="light"] .apply > p:not(.section-label) {
    color: #61716b;
}

html[data-theme="light"] .perks h2 {
    color: #263832;
}

html[data-theme="light"] .stats .stat strong,
html[data-theme="light"] .values .value strong {
    color: #aa7b35;
}

html[data-theme="light"] .destination-grid .destination-card > div,
html[data-theme="light"] .destination-grid .destination-card p,
html[data-theme="light"] :is(.hero, .about-hero, .booking-hero, .contact-hero, .destination-hero, .gallery-hero, .tour-hero, .details-hero) {
    color: #fff;
}

html[data-theme="light"] body :is(.hero, .about-hero, .booking-hero, .contact-hero, .destination-hero, .gallery-hero, .tour-hero, .details-hero) :is(h1, h2, p) {
    color: #fff;
}

html[data-theme="light"] body :is(.about-cta, .custom-trip, .cta-section) :is(h1, h2, p) {
    color: #fff;
}

html[data-theme="light"] body :is(.about-cta, .custom-trip, .cta-section) em,
html[data-theme="light"] body :is(.about-cta, .custom-trip, .cta-section) .section-label {
    color: #d1ad66;
}

html[data-theme="light"] .destination-grid .destination-card p,
html[data-theme="light"] :is(.hero, .about-hero, .booking-hero, .contact-hero, .destination-hero, .gallery-hero, .tour-hero, .details-hero) p {
    color: rgba(255, 255, 255, .82);
}

html[data-theme="light"] :is(.package-card, .tour-card:not(.project-grid-card), .testimonial, .feature, .job-card, .contact-item, .day) {
    border-color: rgba(39, 66, 57, .13);
}

html[data-theme="light"] .package-card {
    background: #fffefa;
    color: #263832;
    box-shadow: 0 14px 38px rgba(35, 50, 42, .08);
}

html[data-theme="light"] .package-info,
html[data-theme="light"] .package-bottom {
    color: #263832;
}

html[data-theme="light"] .package-info p,
html[data-theme="light"] .package-bottom p {
    color: #61716b;
}

html[data-theme="light"] :is(.destination-card, .photo) {
    color: #fff;
}

html[data-theme="light"] .tour-card.project-grid-card .tour-content {
    color: #263832;
}

html[data-theme="light"] .tour-card.project-grid-card .tour-content h3 {
    color: #263832;
}

html[data-theme="light"] .tour-card.project-grid-card .tour-content p {
    color: #61716b;
}

html[data-theme="light"] .tour-card.project-grid-card .tour-content > span:not(.tour-tag) {
    color: #8a6426;
}

html[data-theme="light"] .tour-card.project-grid-card .tour-content a {
    color: #26745e;
}

html[data-theme="light"] .destination-card :is(h3, p, small) {
    color: #fff;
}

html[data-theme="light"] .feature,
html[data-theme="light"] .testimonial,
html[data-theme="light"] .job-card,
html[data-theme="light"] .perk,
html[data-theme="light"] .booking-box,
html[data-theme="light"] .booking-aside {
    border-color: rgba(39, 66, 57, .13);
    background: #fffefa;
    color: #263832;
    box-shadow: 0 16px 42px rgba(35, 50, 42, .07);
}

html[data-theme="light"] :is(.feature p, .testimonial p, .job-info p, .perk p, .booking-box p:not(.section-label), .booking-aside p:not(.section-label)) {
    color: #61716b;
}

html[data-theme="light"] .job-card .job-info h3,
html[data-theme="light"] .booking-box h3 {
    color: #263832;
}

/* Booking form */
html[data-theme="light"] body .booking-page {
    color: #263832;
    background:
        radial-gradient(ellipse at 12% 8%, rgba(72, 137, 111, .1), transparent 34rem),
        radial-gradient(ellipse at 88% 47%, rgba(196, 153, 89, .09), transparent 32rem),
        linear-gradient(145deg, #f3f1e9, #ecefe8 58%, #f4f1e9);
}

html[data-theme="light"] body .booking-page :is(.step-heading h2, .booking-complete h2, .tour-confirm-copy h3, .booking-aside h2) {
    color: #263832;
}

html[data-theme="light"] body .booking-page :is(.step-heading > p:last-child, .booking-complete > p:not(.section-label), .tour-confirm-copy p, .field-hint, .optional-label, .booking-page .booking-aside p:not(.section-label)) {
    color: #61716b;
}

html[data-theme="light"] body .booking-page .booking-hero {
    color: #fff;
}

html[data-theme="light"] body .booking-page .booking-hero h1,
html[data-theme="light"] body .booking-page .booking-hero p {
    color: #fff;
}

html[data-theme="light"] body .booking-page .booking-progress {
    border-color: rgba(39, 66, 57, .14);
    color: #687770;
}

html[data-theme="light"] body .booking-page .booking-progress li.is-current,
html[data-theme="light"] body .booking-page .booking-progress li.is-complete {
    border-color: #26745e;
    color: #26745e;
}

html[data-theme="light"] body .booking-page .booking-progress li span:first-child {
    border-color: rgba(39, 66, 57, .2);
}

html[data-theme="light"] body .booking-page .booking-progress li:is(.is-current, .is-complete) span:first-child {
    border-color: #26745e;
    background: rgba(38, 116, 94, .09);
    color: #26745e;
}

html[data-theme="light"] body .booking-page .tour-confirm-card {
    border-color: rgba(38, 116, 94, .18);
    background: linear-gradient(125deg, rgba(255, 255, 251, .96), rgba(235, 240, 232, .9));
    box-shadow: 0 16px 40px rgba(35, 50, 42, .07), inset 0 1px #fff;
}

html[data-theme="light"] body .booking-page :is(.tour-confirm-label, .passenger-count) {
    color: #26745e;
}

html[data-theme="light"] body .booking-page .form-group label {
    color: #364840;
}

html[data-theme="light"] body .booking-page :is(.form-group input, .form-group select, .form-group textarea) {
    border-color: rgba(39, 66, 57, .2);
    background: rgba(255, 255, 252, .92);
    color: #263832;
    color-scheme: light;
}

html[data-theme="light"] body .booking-page :is(.form-group input::placeholder, .form-group textarea::placeholder) {
    color: #8b9992;
}

html[data-theme="light"] body .booking-page :is(.form-group input:focus, .form-group select:focus, .form-group textarea:focus) {
    border-color: rgba(38, 116, 94, .62);
    background: #fff;
    box-shadow: 0 0 0 3px rgba(38, 116, 94, .1);
}

html[data-theme="light"] body .booking-page .destination-context {
    border-left-color: #aa7b35;
    background: rgba(170, 123, 53, .08);
    color: #5a4931;
}

html[data-theme="light"] body .booking-page .booking-primary {
    border-color: #26745e;
    background: #26745e;
    color: #fff;
}

html[data-theme="light"] body .booking-page .booking-secondary {
    border-color: rgba(39, 66, 57, .22);
    background: #fffefa;
    color: #364840;
}

html[data-theme="light"] body .booking-page .booking-alert {
    background: #fff1ef;
    color: #8f3029;
}

html[data-theme="light"] body .booking-page .booking-aside {
    background: linear-gradient(145deg, #fffefa, #edf0e8);
}

html[data-theme="light"] body .booking-nav > a {
    color: #52645c;
}

html[data-theme="light"] body .booking-nav > a:hover {
    color: #26745e;
}

html[data-theme="light"] body .booking-box .whatsapp-btn {
    border-color: rgba(39, 66, 57, .24);
    color: #26745e;
}

/* Shared destination detail dialog and its dynamically filled form */
html[data-theme="light"] body .destination-modal {
    background:
        radial-gradient(ellipse at 50% 42%, rgba(47, 113, 91, .08), transparent 58%),
        rgba(31, 43, 38, .46);
}

html[data-theme="light"] body .destination-modal-panel {
    border-color: rgba(255, 255, 255, .72);
    background: #fffefa;
    color: #263832;
    box-shadow: 0 32px 90px rgba(22, 37, 29, .24), 0 0 0 1px rgba(39, 66, 57, .08) inset;
}

html[data-theme="light"] body .destination-modal-copy {
    background:
        radial-gradient(ellipse at 100% 0%, rgba(38, 116, 94, .08), transparent 45%),
        linear-gradient(145deg, #fffefa, #f3f2eb);
}

html[data-theme="light"] body .destination-modal-copy h2,
html[data-theme="light"] body .destination-booking-summary h3 {
    color: #263832;
}

html[data-theme="light"] body :is(.destination-modal-subtitle, .destination-modal-facts li p, .destination-modal-footer) {
    color: #61716b;
}

html[data-theme="light"] body .destination-modal-facts li {
    border-color: rgba(39, 66, 57, .13);
}

html[data-theme="light"] body .destination-modal-fact-label,
html[data-theme="light"] body .destination-modal-eyebrow {
    color: #26745e;
}

html[data-theme="light"] body .destination-modal-category {
    border-color: rgba(38, 116, 94, .22);
    background: rgba(38, 116, 94, .07);
    color: #26745e;
}

html[data-theme="light"] body .destination-modal-cta {
    border-color: rgba(38, 116, 94, .3);
    background: linear-gradient(110deg, rgba(38, 116, 94, .1), rgba(170, 123, 53, .07));
    color: #245c4d;
}

html[data-theme="light"] body .destination-modal-close {
    border-color: rgba(255, 255, 255, .8);
    background: rgba(28, 47, 39, .7);
    color: #fff;
}

html[data-theme="light"] body .destination-booking-view {
    color: #263832;
}

html[data-theme="light"] body .destination-booking-view :is(h2, h3, label) {
    color: #263832;
}

html[data-theme="light"] body .destination-booking-view :is(input, select, textarea) {
    border-color: rgba(39, 66, 57, .2);
    background: #fff;
    color: #263832;
    color-scheme: light;
}

html[data-theme="light"] body .destination-booking-view .destination-booking-destination {
    border-color: rgba(39, 66, 57, .15);
    background: rgba(38, 116, 94, .055);
}

html[data-theme="light"] body .destination-booking-destination :is(strong, div span) {
    color: #364840;
}

html[data-theme="light"] body .destination-booking-back {
    border-color: rgba(39, 66, 57, .2);
    background: #f5f4ed;
    color: #364840;
}

html[data-theme="light"] body .destination-booking-submit {
    border-color: rgba(38, 116, 94, .4);
    background: linear-gradient(110deg, rgba(38, 116, 94, .12), rgba(170, 123, 53, .08));
    color: #245c4d;
}

html[data-theme="light"] body .destination-booking-summary dl > div {
    border-color: rgba(39, 66, 57, .12);
}

html[data-theme="light"] body .destination-booking-summary :is(dt, dd, .destination-booking-summary-note) {
    color: #52645c;
}

html[data-theme="light"] body .destination-booking-summary {
    border-color: rgba(39, 66, 57, .14);
    background: #f1f2eb;
    color: #263832;
}

/* Locations explorer controls and detail panel; keep the map tiles themselves unchanged */
html[data-theme="light"] body .locations-page {
    color: #263832;
    background:
        radial-gradient(ellipse at 12% 12%, rgba(38, 116, 94, .07), transparent 32rem),
        linear-gradient(180deg, rgba(248, 247, 240, .96), rgba(239, 239, 230, .96));
}

html[data-theme="light"] body .locations-page :is(.locations-heading h1, .location-detail h2) {
    color: #263832;
}

html[data-theme="light"] body .locations-page :is(.locations-heading p, .locations-heading-meta, .locations-list-header, .locations-access-note, .location-detail-empty > p) {
    color: #61716b;
}

html[data-theme="light"] body .locations-explorer {
    border-color: rgba(39, 66, 57, .16);
    background: rgba(255, 254, 250, .96);
    box-shadow: 0 24px 65px rgba(35, 50, 42, .09);
}

html[data-theme="light"] body .locations-toolbar,
html[data-theme="light"] body .locations-list-header {
    border-color: rgba(39, 66, 57, .13);
}

html[data-theme="light"] body .locations-search {
    border-color: rgba(39, 66, 57, .2);
    background: #fff;
    color: #61716b;
}

html[data-theme="light"] body .locations-page .locations-search input,
html[data-theme="light"] body .locations-page .locations-search input:is(:focus, :hover) {
    border: 0;
    background: transparent;
    color: #263832;
    box-shadow: none;
}

html[data-theme="light"] body .locations-page .locations-search input::placeholder {
    color: #829089;
}

html[data-theme="light"] body .locations-search kbd {
    border-color: rgba(39, 66, 57, .16);
    color: #61716b;
}

html[data-theme="light"] body .location-filter {
    border-color: rgba(39, 66, 57, .17);
    background: #f6f5ef;
    color: #52645c;
}

html[data-theme="light"] body .location-filter:is(:hover, :focus-visible, .is-active) {
    border-color: rgba(38, 116, 94, .48);
    background: rgba(38, 116, 94, .09);
    color: #245c4d;
}

html[data-theme="light"] body .locations-side-panel {
    background: linear-gradient(145deg, #f4f3ed, #ebece5);
}

html[data-theme="light"] body .location-detail {
    border-color: rgba(39, 66, 57, .14);
    background: #fffefa;
}

html[data-theme="light"] body .location-detail-card {
    background: linear-gradient(180deg, rgba(10, 20, 15, .02) 0, rgba(10, 20, 15, .82) 42%, #15231d 100%);
}

html[data-theme="light"] body .location-detail-card.has-no-image {
    background: linear-gradient(145deg, #dce9df, #f6f5ef 74%);
}

html[data-theme="light"] body .location-detail-card.has-no-image h2,
html[data-theme="light"] body .location-detail-card.has-no-image .location-detail-intro,
html[data-theme="light"] body .location-detail-card.has-no-image .location-facts dd {
    color: #263832;
}

html[data-theme="light"] body .location-detail-card.has-no-image::before {
    opacity: .28;
}

html[data-theme="light"] body .location-detail-card .location-detail-index {
    background: rgba(20, 39, 31, .7);
    color: #a5f2d7;
}

html[data-theme="light"] body .location-detail-card h2,
html[data-theme="light"] body .location-detail-card .location-detail-intro {
    color: #fff;
}

html[data-theme="light"] body .location-detail-card .location-facts dt {
    color: #93f0d5;
}

html[data-theme="light"] body .location-detail-card .location-facts dd {
    color: rgba(255, 255, 255, .85);
}

html[data-theme="light"] body .location-detail-actions a {
    border-color: rgba(147, 240, 213, .5);
    background: rgba(16, 37, 29, .54);
    color: #c8fff0;
}

html[data-theme="light"] body .location-detail-empty {
    color: #263832;
}

html[data-theme="light"] body .locations-map-topline,
html[data-theme="light"] body .locations-map-caption {
    background: #eef0e8;
    color: #52645c;
}

html[data-theme="light"] body .locations-map-topline > span {
    color: #364840;
}

html[data-theme="light"] body .locations-map-topline button {
    color: #26745e;
}

html[data-theme="light"] body .locations-map-card {
    border-color: rgba(39, 66, 57, .14);
}

html[data-theme="light"] body .locations-map-status {
    border-color: rgba(170, 123, 53, .32);
    background: rgba(255, 250, 235, .96);
    color: #785724;
}

html[data-theme="light"] body .location-list-item {
    border-color: rgba(39, 66, 57, .12);
    color: #364840;
}

html[data-theme="light"] body .location-list-item:is(:hover, :focus-visible, .is-selected) {
    background: rgba(38, 116, 94, .08);
    color: #245c4d;
}

html[data-theme="light"] body .location-access-badge {
    border-color: rgba(170, 123, 53, .25);
    background: rgba(170, 123, 53, .08);
    color: #785724;
}

/* Contact, gallery, and tour-detail surfaces */
html[data-theme="light"] body .contact-form-box {
    border: 1px solid rgba(39, 66, 57, .14);
    background: #fffefa;
    color: #263832;
    box-shadow: 0 18px 46px rgba(35, 50, 42, .08);
}

html[data-theme="light"] body .contact-form-box h3 {
    color: #263832;
}

html[data-theme="light"] body .contact-form-box :is(input, textarea) {
    border-color: rgba(39, 66, 57, .2);
    background: #f8f7f1;
    color: #263832;
    color-scheme: light;
}

html[data-theme="light"] body .contact-form-box :is(input, textarea)::placeholder {
    color: #829089;
}

html[data-theme="light"] body .contact-form-box :is(input, textarea):focus {
    border-color: rgba(38, 116, 94, .62);
    background: #fff;
    box-shadow: 0 0 0 3px rgba(38, 116, 94, .1);
}

html[data-theme="light"] body .gallery-item figcaption,
html[data-theme="light"] body .gallery-overlay {
    color: #fff;
}

html[data-theme="light"] body .details-content,
html[data-theme="light"] body .details-content p,
html[data-theme="light"] body .day h3,
html[data-theme="light"] body .day p {
    color: #52645c;
}

/* Shared footer, including its injected map, legal links, and navigation */
html[data-theme="light"] body footer,
html[data-theme="light"] body footer[data-offgrid-footer] {
    border-color: rgba(39, 66, 57, .15);
    background: #e9e8df;
    color: #263832;
}

html[data-theme="light"] body footer .footer-experience {
    border-color: rgba(39, 66, 57, .13);
    background:
        radial-gradient(ellipse at 78% 48%, rgba(38, 116, 94, .08), transparent 48%),
        linear-gradient(150deg, #f3f2eb, #e8ece5 54%, #f0eee6);
}

html[data-theme="light"] body footer .footer-experience::after {
    opacity: .018;
}

html[data-theme="light"] body footer :is(.footer-topline, .footer-local-time, .footer-local-time time, .footer-world-eyebrow, .footer-world-description, .footer-world-signal, .footer-world-caption) {
    color: #53655d;
}

html[data-theme="light"] body footer .footer-world {
    background:
        radial-gradient(ellipse at 73% 44%, rgba(38, 116, 94, .1), transparent 52%),
        linear-gradient(135deg, #dce5db, #e9ece4 76%);
}

html[data-theme="light"] body footer .footer-world::before {
    background:
        linear-gradient(90deg, rgba(244, 244, 235, .58), rgba(244, 244, 235, .4) 32%, rgba(244, 244, 235, .14) 68%, rgba(244, 244, 235, .04)),
        linear-gradient(0deg, rgba(236, 239, 230, .22), transparent 38%, rgba(236, 239, 230, .08));
}

html[data-theme="light"] body footer .footer-world::after {
    background: radial-gradient(ellipse at 69% 42%, transparent 28%, rgba(60, 82, 69, .045) 100%);
}

html[data-theme="light"] body footer .footer-map-graphic {
    opacity: .82;
    filter: none;
    mix-blend-mode: normal;
}

html[data-theme="light"] body footer .footer-map-graphic #footer-map-wash stop:first-child {
    stop-color: #e8eee7;
}

html[data-theme="light"] body footer .footer-map-graphic #footer-map-wash stop:nth-child(2) {
    stop-color: #e1e9e1;
}

html[data-theme="light"] body footer .footer-map-graphic #footer-map-wash stop:last-child {
    stop-color: #e8ede5;
}

html[data-theme="light"] body footer .footer-map-graphic #footer-map-relief stop:first-child {
    stop-color: #4f9a7b;
    stop-opacity: .18;
}

html[data-theme="light"] body footer .footer-map-graphic #footer-map-relief stop:nth-child(2) {
    stop-color: #8ba99a;
    stop-opacity: .16;
}

html[data-theme="light"] body footer .footer-map-graphic #footer-map-relief stop:last-child {
    stop-color: #e8ede5;
}

html[data-theme="light"] body footer .footer-map-graphic #footer-map-grid {
    opacity: .34;
}

html[data-theme="light"] body footer .footer-map-graphic #footer-map-grid path {
    stroke: #477767;
    stroke-opacity: .1;
}

html[data-theme="light"] body footer .footer-map-graphic #footer-map-grid circle {
    fill: #477767;
    fill-opacity: .16;
}

html[data-theme="light"] body footer .footer-map-contours-distant {
    stroke: #658c7a;
    opacity: .28;
}

html[data-theme="light"] body footer .footer-map-contours-mid {
    stroke: #52856d;
    opacity: .4;
}

html[data-theme="light"] body footer .footer-map-contours-near {
    stroke: #719381;
    opacity: .3;
}

html[data-theme="light"] body footer .footer-route-base {
    stroke: rgba(38, 116, 94, .38);
}

html[data-theme="light"] body footer .footer-route-trail {
    stroke: #26745e;
}

html[data-theme="light"] body footer .footer-route-glint {
    stroke: #b1843e;
    filter: drop-shadow(0 0 4px rgba(177, 132, 62, .42));
}

html[data-theme="light"] body footer .footer-map-markers {
    fill: #29483c;
}

html[data-theme="light"] body footer .footer-marker-halo {
    fill: rgba(38, 116, 94, .09);
    stroke: rgba(38, 116, 94, .7);
}

html[data-theme="light"] body footer .footer-marker-dot {
    fill: #a77b35;
    filter: drop-shadow(0 0 4px rgba(167, 123, 53, .42));
}

html[data-theme="light"] body footer .footer-map-markers .footer-marker-coord,
html[data-theme="light"] body footer .footer-map-legend {
    fill: rgba(48, 70, 59, .72);
}

html[data-theme="light"] body footer .footer-map-legend path {
    stroke: rgba(167, 123, 53, .62);
}

html[data-theme="light"] body footer .footer-map-shade {
    background: linear-gradient(90deg, rgba(244, 244, 235, .1), transparent 70%);
}

html[data-theme="light"] body footer .footer-world-copy h2 {
    color: #263832;
}

html[data-theme="light"] body footer .footer-world-copy h2 em,
html[data-theme="light"] body footer .footer-world-eyebrow,
html[data-theme="light"] body footer .footer-column h4 {
    color: #26745e;
}

html[data-theme="light"] body footer .footer-talk-link {
    border-color: rgba(38, 116, 94, .42);
    color: #245c4d;
}

html[data-theme="light"] body footer .footer-talk-link:is(:hover, :focus-visible) {
    background: rgba(38, 116, 94, .09);
    color: #174c3c;
}

html[data-theme="light"] body footer .footer-world-signal i {
    background: #26745e;
    box-shadow: 0 0 9px rgba(38, 116, 94, .3);
}

html[data-theme="light"] body footer .footer-marquee {
    border-color: rgba(39, 66, 57, .15);
}

html[data-theme="light"] body footer .footer-marquee-item,
html[data-theme="light"] body footer .footer-column a,
html[data-theme="light"] body footer .footer-column span,
html[data-theme="light"] body footer .footer-brand p {
    color: #52645c;
}

html[data-theme="light"] body footer .footer-column a:is(:hover, :focus-visible) {
    color: #26745e;
}

html[data-theme="light"] body footer .footer-brand .logo,
html[data-theme="light"] body footer .footer-brand .logo strong {
    color: #263832;
}

html[data-theme="light"] body footer .footer-brand .logo span,
html[data-theme="light"] body footer .footer-marquee-item i {
    color: #26745e;
}

html[data-theme="light"] body footer > .footer-bottom {
    border-color: rgba(39, 66, 57, .15);
    color: #66766f;
}

html[data-theme="light"] body footer .footer-bottom a {
    color: #52645c;
}

html[data-theme="light"] body footer .footer-bottom a:is(:hover, :focus-visible) {
    color: #26745e;
}

@media (prefers-reduced-motion: reduce) {
    html[data-theme="light"] body,
    html[data-theme="light"] body * {
        transition-duration: .01ms;
    }
}
