:root {
      color-scheme: light dark;
      --ink: #173226;
      --ink-soft: #41584a;
      --paper: #f4f1e8;
      --surface: #fbfaf5;
      --forest: #173f2e;
      --moss: #496b45;
      --leaf: #7d9b68;
      --sun: #e5a552;
      --mist: #d9e1d8;
      --white: #fffdf8;
      --line: rgba(23, 50, 38, .16);
      --shadow: 0 18px 54px rgba(27, 47, 35, .14);
      --radius-sm: 8px;
      --radius-md: 18px;
      --radius-lg: 34px;
      --space-1: .5rem;
      --space-2: 1rem;
      --space-3: 1.5rem;
      --space-4: 2rem;
      --space-5: 3rem;
      --space-6: 5rem;
      --display: "Alegreya", Georgia, serif;
      --sans: "Alegreya Sans", sans-serif;
    }

    @media (prefers-color-scheme: dark) {
      :root {
        --ink: #e8eee7;
        --ink-soft: #b7c5ba;
        --paper: #101912;
        --surface: #17241b;
        --forest: #9fc89d;
        --moss: #92b886;
        --leaf: #b4ca9c;
        --sun: #edb66e;
        --mist: #25352b;
        --white: #f7f3e9;
        --line: rgba(232, 238, 231, .15);
        --shadow: 0 18px 54px rgba(0, 0, 0, .32);
      }
    }

    *, *::before, *::after { box-sizing: border-box; }
    html { scroll-behavior: auto; }
    body {
      margin: 0;
      min-width: 320px;
      background: var(--paper);
      color: var(--ink);
      font-family: var(--sans);
      font-size: 18px;
      line-height: 1.5;
      overflow-x: hidden;
    }
    a { color: inherit; }
    button, select { font: inherit; }
    button, a { -webkit-tap-highlight-color: transparent; }
    img { max-width: 100%; display: block; }
    .sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; }

    .hero {
      position: relative;
      min-height: 100svh;
      color: var(--white);
      background: #132d22;
      isolation: isolate;
    }
    .hero-media {
      position: absolute;
      inset: 0;
      z-index: -2;
      overflow: hidden;
    }
    .hero-media img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      object-position: center 48%;
    }
    .hero::after {
      content: "";
      position: absolute;
      inset: 0;
      background:
        linear-gradient(180deg, rgba(7, 17, 11, .64) 0%, rgba(7, 17, 11, .1) 38%, rgba(7, 17, 11, .7) 100%),
        linear-gradient(90deg, rgba(7, 17, 11, .26), transparent 55%);
      z-index: -1;
    }

    .site-nav {
      position: fixed;
      inset: 0 0 auto;
      z-index: 50;
      display: grid;
      grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
      align-items: center;
      gap: 2rem;
      min-height: 88px;
      padding: 0 clamp(1.25rem, 4vw, 4rem);
      color: #fffdf8;
      border-bottom: 1px solid rgba(255,255,255,.24);
      transition: background-color .25s ease, border-color .25s ease, box-shadow .25s ease;
    }
    .header-actions {
      display: flex;
      align-items: center;
      justify-self: end;
      gap: clamp(.8rem, 1.6vw, 1.5rem);
      min-width: 0;
    }
    .site-nav.scrolled,
    .site-nav.menu-open {
      background: rgba(8, 20, 13, .94);
      border-bottom-color: rgba(255,255,255,.16);
      box-shadow: 0 8px 28px rgba(4,12,7,.16);
    }
    .wordmark {
      flex: 0 0 auto;
      font-family: var(--display);
      font-weight: 600;
      font-size: 1.25rem;
      letter-spacing: .22em;
      text-decoration: none;
    }
    .nav-links {
      display: flex;
      align-items: center;
      justify-self: center;
      gap: clamp(.85rem, 1.5vw, 1.75rem);
    }
    .nav-links > a, .language summary {
      position: relative;
      color: rgba(255,255,255,.9);
      font-size: .9rem;
      font-weight: 600;
      text-decoration: none;
      cursor: pointer;
      list-style: none;
    }
    .nav-links > a:not(.nav-cta)::after {
      content: "";
      position: absolute;
      left: 0; right: 100%; bottom: -8px;
      height: 1px; background: currentColor;
      transition: right .25s ease;
    }
    .nav-links > a:hover::after, .nav-links > a:focus-visible::after { right: 0; }
    .language { position: relative; }
    .mobile-language, .mobile-cta { display: none; }
    .language summary::-webkit-details-marker { display: none; }
    .language summary { display: flex; align-items: center; gap: .35rem; }
    .language-menu {
      position: absolute;
      top: calc(100% + 14px);
      right: 0;
      width: 148px;
      padding: .65rem;
      color: #173226;
      background: #fffdf8;
      border-radius: var(--radius-sm);
      box-shadow: var(--shadow);
    }
    .language-menu button { display: block; width: 100%; padding: .45rem .55rem; border: 0; color: inherit; background: transparent; cursor: pointer; font-size: .86rem; text-align: left; }
    .language-menu button:hover, .language-menu button:focus-visible { background: rgba(23,50,38,.08); }
    .language-menu .active { font-weight: 700; }
    html[lang="te"] body { font-family: "Noto Sans Telugu", "Nirmala UI", Gautami, var(--sans); }
    html[lang="te"] .wordmark { font-family: "Noto Sans Telugu", "Nirmala UI", Gautami, var(--display); letter-spacing: .08em; }
    .nav-cta {
      padding: .7rem 1rem;
      border: 1px solid rgba(255,255,255,.65);
      border-radius: 99px;
      transition: background .2s ease, color .2s ease;
    }
    .nav-cta:hover, .nav-cta:focus-visible { background: var(--white); color: #173226; }
    .menu-toggle { display: none; }

    .hero-content {
      min-height: calc(100svh - 88px);
      display: grid;
      place-items: center;
      padding: 6rem 1.25rem 7rem;
      text-align: center;
    }
    .hero-copy { max-width: 980px; }
    .hero-kicker {
      margin: 0 0 .6rem;
      font-size: .82rem;
      font-weight: 700;
      letter-spacing: .28em;
      text-transform: uppercase;
    }
    .hero h1 {
      margin: 0;
      font-family: var(--display);
      font-size: clamp(5.5rem, 15vw, 12.5rem);
      font-weight: 500;
      line-height: .72;
      letter-spacing: -.045em;
      text-shadow: 0 4px 40px rgba(0,0,0,.24);
    }
    .hero-deck {
      max-width: 610px;
      margin: 2.4rem auto 0;
      font-family: var(--display);
      font-size: clamp(1.15rem, 2vw, 1.55rem);
      line-height: 1.35;
    }
    .hero-actions { display: flex; justify-content: center; gap: .75rem; margin-top: 2rem; flex-wrap: wrap; }
    .button {
      display: inline-flex;
      min-height: 50px;
      align-items: center;
      justify-content: center;
      gap: .55rem;
      padding: .8rem 1.25rem;
      border: 1px solid transparent;
      border-radius: 99px;
      font-size: .92rem;
      font-weight: 700;
      text-decoration: none;
      transition: transform .2s ease, background .2s ease, color .2s ease, border-color .2s ease;
    }
    .button:hover { transform: translateY(-2px); }
    .button-primary { background: var(--white); color: #173226; }
    .button-secondary { color: var(--white); border-color: rgba(255,255,255,.65); background: rgba(10,25,16,.18); }
    .button-dark { background: var(--forest); color: var(--paper); }
    .button-outline { border-color: var(--forest); color: var(--forest); }
    .scroll-cue {
      position: absolute;
      left: 50%; bottom: 1.3rem;
      display: grid;
      justify-items: center;
      gap: .35rem;
      transform: translateX(-50%);
      color: rgba(255,255,255,.82);
      font-size: .72rem;
      font-weight: 700;
      letter-spacing: .16em;
      text-transform: uppercase;
      text-decoration: none;
    }
    .scroll-cue svg { animation: drift 1.8s ease-in-out infinite; }
    @keyframes drift { 50% { transform: translateY(6px); } }

    .intro {
      display: grid;
      grid-template-columns: minmax(0, 1.15fr) minmax(260px, .7fr);
      gap: clamp(2rem, 8vw, 9rem);
      padding: clamp(5rem, 10vw, 9rem) clamp(1.25rem, 8vw, 8rem);
      background: var(--paper);
    }
    .section-label {
      display: inline-flex;
      align-items: center;
      gap: .65rem;
      margin-bottom: 1rem;
      font-size: .78rem;
      font-weight: 700;
      letter-spacing: .15em;
      text-transform: uppercase;
      color: var(--moss);
    }
    .section-label::before { content: ""; width: 36px; height: 1px; background: currentColor; }
    .intro h2, .discover h2, .plan h2 {
      max-width: 780px;
      margin: 0;
      font-family: var(--display);
      font-size: clamp(2.75rem, 6vw, 6rem);
      font-weight: 500;
      line-height: .95;
      letter-spacing: -.035em;
    }
    .intro-side { align-self: end; max-width: 480px; }
    .intro-side p { margin: 0 0 1.5rem; color: var(--ink-soft); font-size: 1.05rem; }
    .chips { display: flex; flex-wrap: wrap; gap: .55rem; }
    .chip { padding: .48rem .8rem; border: 1px solid var(--line); border-radius: 99px; font-size: .76rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; background: var(--surface); }

    .story { position: relative; height: 380vh; background: #08140d; color: #fffdf8; contain: layout paint; }
    .story-stage { position: sticky; top: 0; height: 100svh; overflow: hidden; isolation: isolate; background: #08140d; }
    .story-scene, .story-media { position: absolute; inset: 0; }
    .story-scene { overflow: hidden; }
    .story-outgoing {
      z-index: 3;
      opacity: var(--out-opacity, 1);
      transform: translate3d(0, var(--out-shell-y, 0%), 0) scale(var(--out-shell-scale, 1));
      transform-origin: 54% 78%;
    }
    .story-incoming { z-index: 2; opacity: var(--in-opacity, 0); }
    .story-outgoing .story-media {
      transform: translate3d(var(--out-x, 0%), var(--out-y, 0%), 0) scale(var(--out-scale, 1));
      transform-origin: var(--out-origin, 54% 84%);
    }
    .story-incoming .story-media {
      transform: translate3d(var(--in-x, 0%), var(--in-y, 5%), 0) scale(var(--in-scale, 1.1));
      transform-origin: var(--in-origin, 50% 52%);
    }
    .story.animating .story-outgoing,
    .story.animating .story-outgoing .story-media,
    .story.animating .story-incoming .story-media,
    .story.animating .story-copy,
    .story.animating .hero-foreground-composition,
    .story.animating .story-threshold { will-change: transform, opacity; }
    .story-media,
    .story-media img,
    .hero-foreground-composition,
    .story-foreground,
    .story-foreground img,
    .story-foreground video {
      -webkit-backface-visibility: hidden;
      backface-visibility: hidden;
    }
    .story-media img,
    .story-foreground img,
    .story-foreground video {
      transform: translate3d(0, 0, 0);
    }
    .story-media img { width: 100%; height: 100%; object-fit: cover; }
    .story .hero-media { z-index: auto; }
    .story-outgoing .story-media img { object-position: 52% 50%; }
    .story-incoming .story-media img { object-position: 50% 48%; }
    .hero-foreground-composition {
      position: absolute;
      inset: 0;
      z-index: 3;
      overflow: hidden;
      pointer-events: none;
      opacity: var(--foreground-opacity, 1);
      transform: translate3d(var(--foreground-x, 0%), var(--foreground-y, 0%), 0) scale(var(--foreground-scale, 1));
      transform-origin: 60% 45%;
      -webkit-mask-image: linear-gradient(to bottom, #000 0%, #000 47%, rgba(0, 0, 0, .9) 54%, rgba(0, 0, 0, .42) 63%, transparent 72%);
      mask-image: linear-gradient(to bottom, #000 0%, #000 47%, rgba(0, 0, 0, .9) 54%, rgba(0, 0, 0, .42) 63%, transparent 72%);
    }
    .story-foreground {
      position: absolute;
      inset: 0;
      z-index: 1;
    }
    .story-foreground img,
    .story-foreground video,
    .story-foreground-video {
      width: 100%;
      height: 100%;
      object-fit: cover;
      object-position: 60% 50%;
    }
    .story-foreground-video,
    .story-foreground-fallback {
      bottom: auto;
      height: 70%;
      opacity: .78;
      object-position: 60% 38%;
      -webkit-mask-image: radial-gradient(ellipse 43% 55% at 57% 38%, transparent 0%, transparent 66%, rgba(0, 0, 0, .18) 78%, #000 100%);
      mask-image: radial-gradient(ellipse 43% 55% at 57% 38%, transparent 0%, transparent 66%, rgba(0, 0, 0, .18) 78%, #000 100%);
      -webkit-mask-repeat: no-repeat;
      mask-repeat: no-repeat;
      -webkit-mask-size: 100% 100%;
      mask-size: 100% 100%;
    }
    @media (max-width: 760px) {
      .hero-foreground-composition {
        -webkit-mask-image: linear-gradient(to bottom, #000 0%, #000 38%, rgba(0, 0, 0, .82) 45%, rgba(0, 0, 0, .34) 52%, transparent 58%);
        mask-image: linear-gradient(to bottom, #000 0%, #000 38%, rgba(0, 0, 0, .82) 45%, rgba(0, 0, 0, .34) 52%, transparent 58%);
      }
      .story-foreground-video,
      .story-foreground-fallback {
        height: 58%;
        opacity: .68;
        object-position: 57% 36%;
        -webkit-mask-image: radial-gradient(ellipse 45% 58% at 54% 38%, transparent 0%, transparent 68%, rgba(0, 0, 0, .16) 80%, #000 100%);
        mask-image: radial-gradient(ellipse 45% 58% at 54% 38%, transparent 0%, transparent 68%, rgba(0, 0, 0, .16) 80%, #000 100%);
      }
    }
    .story-scene::after {
      content: "";
      position: absolute;
      inset: 0;
      z-index: 1;
      background: linear-gradient(90deg, rgba(4,12,7,.58), rgba(4,12,7,.04) 62%, rgba(4,12,7,.2)), linear-gradient(180deg, rgba(4,12,7,.18), rgba(4,12,7,.64));
      pointer-events: none;
    }
    .story-copy {
      position: absolute;
      z-index: 4;
      left: clamp(1.25rem, 8vw, 8rem);
      bottom: clamp(4rem, 12vh, 8rem);
      width: min(650px, calc(100% - 2.5rem));
    }
    .story-outgoing .story-copy {
      opacity: var(--out-copy-opacity, 1);
      transform: translate3d(var(--out-copy-x, 0px), var(--out-copy-y, 0px), 0);
    }
    .story-incoming .story-copy {
      opacity: var(--in-copy-opacity, 0);
      transform: translate3d(var(--in-copy-x, 0px), var(--in-copy-y, 44px), 0);
    }
    .story-hero-copy {
      top: 50%;
      right: 1.25rem;
      bottom: auto;
      left: 1.25rem;
      width: auto;
      max-width: none;
      text-align: center;
      transform: translate3d(var(--out-copy-x, 0px), calc(-50% + var(--out-copy-y, 0px)), 0) !important;
    }
    .story-hero-copy h1 {
      margin: 0;
      font-family: var(--display);
      font-size: clamp(5.5rem, 15vw, 12.5rem);
      font-weight: 500;
      line-height: .72;
      letter-spacing: -.045em;
      text-shadow: 0 4px 40px rgba(0,0,0,.24);
    }
    .story-hero-copy .hero-deck { max-width: 760px; margin: 2.4rem auto 0; }
    .story-anchor { position: absolute; top: 72%; left: 0; width: 1px; height: 1px; pointer-events: none; }
    .story .scroll-cue {
      z-index: 7;
      opacity: var(--cue-opacity, 1);
      transform: translate3d(-50%, var(--cue-y, 0px), 0);
    }
    .story-threshold {
      position: absolute;
      inset: 0;
      z-index: 4;
      display: grid;
      place-items: center;
      padding: 1.5rem;
      text-align: center;
      pointer-events: none;
      opacity: var(--threshold-opacity, 0);
      transform: translate3d(0, var(--threshold-y, 28px), 0);
    }
    .story-threshold::before {
      content: "";
      position: absolute;
      inset: 0;
      background: rgba(5, 14, 9, var(--threshold-shade, 0));
    }
    .story-threshold h2 {
      position: relative;
      max-width: 980px;
      margin: 0;
      font-family: var(--display);
      font-size: clamp(3rem, 7vw, 7rem);
      font-weight: 500;
      line-height: .9;
      letter-spacing: -.035em;
    }
    .story-step { display: flex; align-items: center; gap: .8rem; margin-bottom: 1.25rem; font-size: .78rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: rgba(255,255,255,.78); }
    .story-step span { width: 46px; height: 1px; background: currentColor; }
    .story-copy h2 {
      margin: 0;
      font-family: var(--display);
      font-size: clamp(3.25rem, 8vw, 7.75rem);
      font-weight: 500;
      line-height: .86;
      letter-spacing: -.045em;
    }
    .story-copy p { max-width: 500px; margin: 1.3rem 0 0; font-size: 1.05rem; color: rgba(255,255,255,.86); }
    .story-progress {
      position: absolute;
      z-index: 8;
      right: clamp(1rem, 3vw, 3rem);
      top: 50%;
      display: grid;
      gap: .65rem;
      transform: translateY(-50%);
    }
    .story-progress i { display: block; width: 3px; height: 34px; background: rgba(255,255,255,.28); }
    .story-progress i.active { background: #fffdf8; }
    .story-transition-label {
      position: absolute;
      z-index: 8;
      right: clamp(1rem, 3vw, 3rem);
      bottom: 1.5rem;
      color: rgba(255,255,255,.7);
      font-size: .67rem;
      font-weight: 700;
      letter-spacing: .13em;
      text-transform: uppercase;
      writing-mode: vertical-rl;
    }

    .follow-water {
      position: relative;
      min-height: min(88svh, 860px);
      display: grid;
      align-items: end;
      overflow: hidden;
      color: #fffdf8;
      background: #10261a;
    }
    .follow-water img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
    .follow-water::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 30%, rgba(4,12,7,.82)); }
    .follow-water-copy { position: relative; z-index: 2; width: min(680px, calc(100% - 2.5rem)); margin: 0 clamp(1.25rem, 8vw, 8rem) clamp(3rem, 9vw, 7rem); }
    .follow-water-copy h2 { margin: 0; font-family: var(--display); font-size: clamp(3.25rem, 8vw, 7.5rem); font-weight: 500; line-height: .88; letter-spacing: -.04em; }
    .follow-water-copy p { max-width: 500px; margin: 1.15rem 0 0; color: rgba(255,255,255,.86); }

    .discover { padding: clamp(5rem, 10vw, 9rem) clamp(1.25rem, 6vw, 6rem); background: var(--paper); }
    .section-heading { display: flex; justify-content: space-between; align-items: end; gap: 2rem; margin-bottom: 2.4rem; }
    .section-heading p { max-width: 430px; margin: 0; color: var(--ink-soft); }
    .cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.4rem; }
    .card { position: relative; min-height: 560px; overflow: hidden; border-radius: var(--radius-md); box-shadow: var(--shadow); color: #fffdf8; background: #153020; }
    .card img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s cubic-bezier(.2,.65,.2,1); }
    .card:hover img { transform: scale(1.035); }
    .card::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 30%, rgba(4,12,7,.82)); pointer-events: none; }
    .card-body { position: absolute; z-index: 2; left: 0; right: 0; bottom: 0; padding: clamp(1.25rem, 4vw, 2.5rem); }
    .card-meta { display: flex; flex-wrap: wrap; gap: .45rem; margin-bottom: .85rem; }
    .card-meta span { padding: .38rem .65rem; border: 1px solid rgba(255,255,255,.38); border-radius: 99px; font-size: .68rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; background: rgba(5,15,9,.24); }
    .card h3 { margin: 0; font-family: var(--display); font-size: clamp(2rem, 4vw, 3.5rem); font-weight: 500; line-height: .95; }
    .card p { max-width: 460px; margin: .75rem 0 0; color: rgba(255,255,255,.84); }

    .plan { display: grid; grid-template-columns: minmax(0, .95fr) minmax(280px, .75fr); gap: clamp(2rem, 9vw, 9rem); align-items: center; padding: clamp(5rem, 10vw, 9rem) clamp(1.25rem, 8vw, 8rem); background: var(--mist); }
    .plan h2 { font-size: clamp(2.8rem, 5.8vw, 5.7rem); }
    .route-card { padding: clamp(1.5rem, 4vw, 2.7rem); background: var(--surface); border-radius: var(--radius-lg) var(--radius-sm) var(--radius-lg) var(--radius-sm); box-shadow: var(--shadow); }
    .route-card h3 { margin: 0 0 .5rem; font-family: var(--display); font-size: 1.8rem; font-weight: 600; }
    .route-card > p { margin: 0; color: var(--ink-soft); }
    .route { display: grid; grid-template-columns: auto 1fr; gap: .25rem 1rem; margin: 1.6rem 0; }
    .route strong { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; color: var(--paper); background: var(--forest); font-size: .78rem; }
    .route div { padding-bottom: 1.15rem; border-bottom: 1px solid var(--line); }
    .route div:last-child { border-bottom: 0; }
    .route b { display: block; font-size: .95rem; }
    .route span { color: var(--ink-soft); font-size: .88rem; }
    .plan-actions { display: flex; flex-wrap: wrap; gap: .7rem; margin-top: 2rem; }

    .story + .story { border-top: 1px solid rgba(255,255,255,.16); }
    .destination-grid {
      display: grid;
      grid-template-columns: repeat(12, minmax(0, 1fr));
      gap: 1.2rem;
    }
    .destination-card {
      position: relative;
      grid-column: span 4;
      min-height: 430px;
      overflow: hidden;
      border-radius: var(--radius-md);
      color: #fffdf8;
      background: #153020;
      box-shadow: var(--shadow);
    }
    .destination-card:nth-child(1), .destination-card:nth-child(6) { grid-column: span 8; }
    .destination-card:nth-child(1) { min-height: 560px; }
    .destination-card:nth-child(6) { min-height: 500px; }
    .destination-card img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s cubic-bezier(.2,.65,.2,1); }
    .destination-card:hover img { transform: scale(1.035); }
    .destination-card::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 18%, rgba(4,12,7,.86)); pointer-events: none; }
    .destination-card-body { position: absolute; z-index: 2; left: 0; right: 0; bottom: 0; padding: clamp(1.2rem, 3vw, 2.2rem); }
    .destination-card h3 { margin: 0; font-family: var(--display); font-size: clamp(1.8rem, 3vw, 3rem); font-weight: 500; line-height: .98; }
    .destination-card p { max-width: 440px; margin: .65rem 0 0; color: rgba(255,255,255,.82); }
    .destination-card .place { display: block; margin-bottom: .6rem; color: rgba(255,255,255,.76); font-size: .74rem; font-weight: 700; letter-spacing: .11em; text-transform: uppercase; }

    .experiences { padding: clamp(5rem, 10vw, 9rem) clamp(1.25rem, 6vw, 6rem); background: var(--surface); }
    .experience-layout { display: grid; grid-template-columns: minmax(0, .86fr) minmax(0, 1.14fr); gap: clamp(2rem, 6vw, 6rem); align-items: start; }
    .experience-intro { position: sticky; top: 2.5rem; }
    .experience-intro h2, .stays h2, .journey h2 {
      margin: 0;
      font-family: var(--display);
      font-size: clamp(2.75rem, 5.6vw, 5.9rem);
      font-weight: 500;
      line-height: .94;
      letter-spacing: -.035em;
    }
    .experience-intro > p { max-width: 480px; margin: 1.2rem 0 0; color: var(--ink-soft); }
    .experience-list { display: grid; gap: 1rem; }
    .experience-item { display: grid; grid-template-columns: 190px 1fr; min-height: 190px; overflow: hidden; background: var(--paper); border-bottom: 1px solid var(--line); }
    .experience-item:nth-child(even) { background: var(--mist); }
    .experience-item img { width: 100%; height: 100%; object-fit: cover; }
    .experience-item > div { align-self: center; padding: 1.4rem; }
    .experience-item .number { color: var(--moss); font-size: .72rem; font-weight: 700; letter-spacing: .12em; }
    .experience-item h3 { margin: .3rem 0 .45rem; font-family: var(--display); font-size: clamp(1.45rem, 2.3vw, 2.2rem); font-weight: 600; line-height: 1; }
    .experience-item p { margin: 0; color: var(--ink-soft); font-size: .94rem; }

    .stays { padding: clamp(5rem, 10vw, 9rem) clamp(1.25rem, 7vw, 7rem); background: var(--paper); }
    .stay-lead { display: grid; grid-template-columns: minmax(0, .9fr) minmax(280px, .62fr); gap: clamp(2rem, 8vw, 8rem); align-items: end; }
    .stay-lead > div:last-child { color: var(--ink-soft); }
    .stay-lead p { margin-top: 0; }
    .stay-visual { position: relative; min-height: 590px; margin-top: 3rem; overflow: hidden; border-radius: var(--radius-lg) var(--radius-sm) var(--radius-lg) var(--radius-sm); color: #fffdf8; }
    .stay-visual img { width: 100%; height: 100%; object-fit: cover; }
    .stay-visual::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(4,12,7,.74), rgba(4,12,7,.12) 70%), linear-gradient(180deg, transparent, rgba(4,12,7,.5)); }
    .stay-facts { position: absolute; z-index: 2; left: clamp(1.25rem, 5vw, 4.5rem); bottom: clamp(1.4rem, 5vw, 4rem); display: grid; grid-template-columns: repeat(3, minmax(120px, 1fr)); gap: 1rem; width: min(720px, calc(100% - 2.5rem)); }
    .stay-fact { padding-top: .9rem; border-top: 1px solid rgba(255,255,255,.55); }
    .stay-fact strong { display: block; font-family: var(--display); font-size: clamp(2rem, 4vw, 3.8rem); font-weight: 500; line-height: 1; }
    .stay-fact span { font-size: .82rem; color: rgba(255,255,255,.82); }

    .journey { position: relative; min-height: 680px; display: grid; align-items: center; padding: clamp(5rem, 10vw, 9rem) clamp(1.25rem, 8vw, 8rem); overflow: hidden; color: #fffdf8; background: #10261a; }
    .journey > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
    .journey::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(4,12,7,.85), rgba(4,12,7,.24) 74%), linear-gradient(180deg, rgba(4,12,7,.1), rgba(4,12,7,.58)); }
    .journey-content { position: relative; z-index: 2; width: min(720px, 100%); }
    .journey-content p { max-width: 540px; margin: 1.2rem 0 0; color: rgba(255,255,255,.84); }
    .journey-days { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; margin: 2rem 0; }
    .journey-day { padding-top: 1rem; border-top: 1px solid rgba(255,255,255,.4); }
    .journey-day b { display: block; margin-bottom: .2rem; }
    .journey-day span { color: rgba(255,255,255,.74); font-size: .86rem; }

    .travel-notes { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--line); }
    .travel-note { padding: clamp(1.4rem, 3vw, 2.5rem); background: var(--mist); }
    .travel-note h3 { margin: 0 0 .45rem; font-family: var(--display); font-size: 1.4rem; font-weight: 600; }
    .travel-note p { margin: 0; color: var(--ink-soft); font-size: .9rem; }

    footer { background: #0c1c12; color: #dce7db; padding: 4rem clamp(1.25rem, 6vw, 6rem) 2rem; }
    .footer-top { display: grid; grid-template-columns: minmax(220px, 1fr) repeat(2, minmax(140px, .4fr)); gap: 2rem; padding-bottom: 3.5rem; }
    .footer-statement { max-width: 560px; font-family: var(--display); font-size: clamp(2rem, 4vw, 3.6rem); line-height: .98; }
    footer h4 { margin: 0 0 1rem; font-size: .75rem; letter-spacing: .14em; text-transform: uppercase; color: #8fac8c; }
    footer nav { display: grid; gap: .55rem; }
    footer nav a { color: #dce7db; text-decoration: none; }
    footer nav a:hover { text-decoration: underline; }
    .footer-bottom { display: flex; justify-content: space-between; gap: 2rem; padding-top: 1.4rem; border-top: 1px solid rgba(255,255,255,.16); color: #9fb1a1; font-size: .78rem; }
    .credits { display: flex; flex-wrap: wrap; gap: .85rem; }
    .credits a { color: inherit; }

    @media (max-width: 1060px) {
      .site-nav { grid-template-columns: auto 1fr auto; gap: 1rem; }
      .nav-links { gap: .72rem; }
      .nav-links > a, .language summary { font-size: .82rem; }
      .header-actions { gap: .55rem; }
      .nav-cta { padding-inline: .8rem; }
      .destination-card, .destination-card:nth-child(1), .destination-card:nth-child(6) { grid-column: span 6; min-height: 460px; }
      .experience-layout { grid-template-columns: 1fr; }
      .experience-intro { position: static; }
    }

    /* Tablet and mobile retain the signature transition with a shorter track
       and gentler transforms; reduced-motion is the only static rendering path. */
    .story.compact { height: 300svh; }
    .story.compact .story-transition-label { display: none; }
    .story.compact .story-progress { right: .8rem; }
    .story.lightweight { height: auto; contain: content; }
    .story.lightweight .story-stage { position: relative; height: auto; overflow: visible; }
    .story.lightweight .story-scene {
      position: relative;
      inset: auto;
      height: min(82svh, 760px);
      overflow: hidden;
      opacity: 1;
      transform: none;
    }
    .story.lightweight .story-outgoing { height: 100svh; }
    .story.lightweight .story-media { transform: none !important; will-change: auto; }
    .story.lightweight .story-copy {
      opacity: 0;
      transform: translateY(20px);
      transition: opacity .45s ease, transform .45s ease;
      will-change: auto;
    }
    .story.lightweight .story-hero-copy {
      transform: translateY(calc(-50% + 20px)) !important;
    }
    .story.lightweight .scene-visible .story-copy { opacity: 1; transform: translateY(0); }
    .story.lightweight .scene-visible .story-hero-copy { transform: translateY(-50%) !important; }
    .story.lightweight .story-threshold {
      position: relative;
      inset: auto;
      min-height: 46svh;
      opacity: 1;
      transform: none;
      background: #08140d;
    }
    .story.lightweight .story-threshold::before { display: none; }
    .story.lightweight .story-progress,
    .story.lightweight .story-transition-label { display: none; }

    @media (max-width: 760px) {
      body { font-size: 17px; }
      .site-nav { display: flex; min-height: 72px; padding: 0 1.25rem; }
      .wordmark { font-size: 1.1rem; }
      .header-actions { margin-left: auto; }
      .header-actions .language, .header-actions .nav-cta { display: none; }
      .nav-links {
        position: fixed;
        inset: 72px 0 auto 0;
        display: grid;
        gap: 0;
        margin: 0;
        padding: 1rem 1.25rem 1.5rem;
        color: var(--ink);
        background: var(--surface);
        border-bottom: 1px solid var(--line);
        box-shadow: var(--shadow);
        transform: translateY(-130%);
        opacity: 0;
        pointer-events: none;
        max-height: calc(100svh - 72px);
        overflow-y: auto;
        visibility: hidden;
      }
      .nav-links.open { transform: translateY(0); opacity: 1; pointer-events: auto; visibility: visible; }
      .nav-links > a { color: var(--ink); padding: .85rem 0; border-bottom: 1px solid var(--line); }
      .nav-links > a:nth-child(5), .nav-links .mobile-language, .nav-links .mobile-cta { display: block; }
      .nav-links .mobile-language { padding: .85rem 0; }
      .nav-links .mobile-language summary { color: var(--ink); }
      .nav-links .mobile-language .language-menu { position: static; margin-top: .6rem; box-shadow: none; border: 1px solid var(--line); background: var(--paper); }
      .nav-links .mobile-cta { justify-self: start; margin-top: .8rem; padding: .7rem 1rem !important; border: 0 !important; color: var(--paper) !important; background: var(--forest); }
      .menu-toggle {
        display: inline-grid;
        place-items: center;
        width: 44px; height: 44px;
        margin-left: auto;
        border: 1px solid rgba(255,255,255,.5);
        border-radius: 50%;
        color: #fff;
        background: rgba(8,20,13,.18);
      }
      .menu-toggle svg { width: 20px; }
      .hero-content { min-height: calc(100svh - 72px); padding-top: 4rem; }
      .hero h1 { font-size: clamp(4.5rem, 27vw, 7rem); }
      .hero-deck { margin-top: 1.8rem; }
      .intro, .plan { grid-template-columns: 1fr; }
      .intro-side { align-self: auto; }
      .story-copy { bottom: 5.25rem; }
      .story-scene::after { background: linear-gradient(180deg, rgba(4,12,7,.18) 20%, rgba(4,12,7,.84) 88%); }
      .story-progress { right: .7rem; }
      .section-heading { display: block; }
      .section-heading p { margin-top: 1.2rem; }
      .cards { grid-template-columns: 1fr; }
      .card { min-height: 480px; }
      .destination-grid { grid-template-columns: 1fr; }
      .destination-card, .destination-card:nth-child(1), .destination-card:nth-child(6) { grid-column: auto; min-height: 470px; }
      .experience-item { grid-template-columns: 130px 1fr; min-height: 170px; }
      .stay-lead { grid-template-columns: 1fr; }
      .stay-visual { min-height: 620px; }
      .stay-facts { grid-template-columns: 1fr; gap: .65rem; }
      .journey-days, .travel-notes { grid-template-columns: 1fr; }
      .journey { min-height: 780px; }
      .footer-top { grid-template-columns: 1fr 1fr; }
      .footer-statement { grid-column: 1 / -1; }
      .footer-bottom { display: grid; gap: 1rem; }
    }

    @media (max-width: 420px) {
      .hero-actions .button { width: 100%; }
      .story-copy h2 { font-size: clamp(3rem, 17vw, 4.8rem); }
      .experience-item { grid-template-columns: 1fr; }
      .experience-item img { height: 220px; }
      .stay-visual { min-height: 700px; }
      .stay-facts { bottom: 1.4rem; }
      .journey { min-height: 880px; }
      .footer-top { grid-template-columns: 1fr; }
      .footer-statement { grid-column: auto; }
    }

    @media (prefers-reduced-motion: reduce) {
      html { scroll-behavior: auto; }
      *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
      .story { height: auto; contain: content; }
      .story-stage { position: relative; height: auto; overflow: visible; }
      .story-scene { position: relative; inset: auto; height: 78svh; overflow: hidden; opacity: 1 !important; transform: none !important; }
      .story-media { transform: none !important; }
      .story-copy { opacity: 1 !important; transform: none !important; }
      .story-hero-copy { transform: translateY(-50%) !important; }
      .story-threshold { position: relative; inset: auto; min-height: 46svh; opacity: 1 !important; transform: none !important; background: #08140d; }
      .story-threshold::before { display: none; }
    }

    /* Homepage completion: conventional sections after the single cinematic transition. */
    section[id], footer[id] { scroll-margin-top: 86px; }
    .interest-section,
    .moments,
    .field-stories,
    .destination-highlights { padding: clamp(5rem, 10vw, 9rem) clamp(1.25rem, 6vw, 6rem); }
    .interest-section { background: var(--paper); }
    .interest-lead {
      display: grid;
      grid-template-columns: minmax(0, 1.18fr) minmax(260px, .55fr);
      gap: clamp(2rem, 8vw, 8rem);
      align-items: end;
      margin-bottom: clamp(3rem, 7vw, 6rem);
    }
    .interest-lead h2,
    .moments h2,
    .field-stories h2,
    .destination-highlights h2 {
      margin: 0;
      font-family: var(--display);
      font-size: clamp(2.8rem, 6vw, 6rem);
      font-weight: 500;
      line-height: .94;
      letter-spacing: -.035em;
    }
    .interest-lead > p { max-width: 440px; margin: 0; color: var(--ink-soft); }
    .interest-grid {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: clamp(.8rem, 1.4vw, 1.15rem);
    }
    .interest-card {
      position: relative;
      display: block;
      min-height: clamp(340px, 34vw, 470px);
      overflow: hidden;
      color: #fffdf8;
      background: #153020;
      text-decoration: none;
    }
    .interest-card img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      transition: transform .65s cubic-bezier(.2,.65,.2,1);
    }
    .interest-card:hover img,
    .interest-card:focus-visible img { transform: scale(1.035); }
    .interest-card::after {
      content: "";
      position: absolute;
      inset: 24% 0 0;
      background: linear-gradient(180deg, transparent, rgba(3,10,6,.88));
      pointer-events: none;
    }
    .interest-card-body {
      position: absolute;
      z-index: 2;
      right: 0;
      bottom: 0;
      left: 0;
      padding: clamp(1.15rem, 2.5vw, 2rem);
    }
    .interest-card h3 {
      margin: 0;
      font-family: var(--display);
      font-size: clamp(1.9rem, 3vw, 3.1rem);
      font-weight: 500;
      line-height: .95;
    }
    .interest-tags { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: .85rem; }
    .interest-tags span {
      padding: .34rem .56rem;
      border: 1px solid rgba(255,255,255,.42);
      border-radius: 99px;
      color: rgba(255,255,255,.92);
      background: rgba(5,15,9,.3);
      font-size: .64rem;
      font-weight: 700;
      letter-spacing: .065em;
      line-height: 1.2;
      text-transform: uppercase;
    }

    .moments { overflow: hidden; background: #10261a; color: #f7f3e9; }
    .moments .section-label { color: #b4ca9c; }
    .moments-heading {
      display: grid;
      width: 100%;
      grid-template-columns: minmax(0, 1fr);
      justify-content: stretch;
      justify-items: center;
      gap: 1.6rem;
      text-align: center;
    }
    .moments-heading-copy { width: 100%; }
    .moments h2 {
      font-size: clamp(2.1rem, 5.3vw, 5.7rem);
      white-space: nowrap;
    }
    .moments-heading-copy > p { max-width: 610px; margin: 1rem auto 0; color: rgba(247,243,233,.76); }
    .carousel-controls { display: flex; gap: .6rem; padding-bottom: .25rem; }
    .carousel-button {
      width: 48px;
      height: 48px;
      border: 1px solid rgba(255,255,255,.36);
      border-radius: 50%;
      color: #fffdf8;
      background: transparent;
      cursor: pointer;
      transition: background .2s ease, color .2s ease;
    }
    .carousel-button:hover,
    .carousel-button:focus-visible { color: #173226; background: #fffdf8; }
    .carousel-button:disabled { opacity: .38; cursor: default; }
    .moments-track {
      display: flex;
      gap: 1rem;
      overflow-x: auto;
      scroll-snap-type: x mandatory;
      scroll-padding-inline: 0;
      overscroll-behavior-inline: contain;
      -webkit-overflow-scrolling: touch;
      scrollbar-width: thin;
      scrollbar-color: rgba(255,255,255,.32) transparent;
      padding: 0 0 1.25rem;
    }
    .moment-card {
      position: relative;
      flex: 0 0 auto;
      width: auto;
      min-width: 220px;
      height: min(68svh, 600px);
      aspect-ratio: 9 / 16;
      margin: 0;
      overflow: hidden;
      scroll-snap-align: start;
      scroll-snap-stop: always;
      background: #193426;
    }
    @media (min-width: 901px) {
      .moment-card { height: min(62vh, 600px); }
    }
    .moment-backdrop {
      position: absolute;
      z-index: 0;
      inset: -24px;
      background-position: center;
      background-size: cover;
      filter: blur(20px) brightness(.6);
      transform: scale(1.08);
      pointer-events: none;
    }
    .moment-card video {
      position: absolute;
      z-index: 1;
      inset: 0;
      display: block;
      width: 100%;
      height: 100%;
      max-width: none;
      max-height: none;
      object-fit: contain !important;
      object-position: 50% 50%;
      background: transparent;
    }
    .moment-card::before {
      content: "";
      position: absolute;
      z-index: 4;
      inset: 0;
      border: 3px solid transparent;
      box-shadow: inset 0 0 0 0 rgba(229,165,82,0);
      pointer-events: none;
      transition: border-color .22s ease, box-shadow .22s ease;
    }
    .moment-card.is-active::before {
      border-color: var(--sun);
      box-shadow: inset 0 0 0 2px rgba(255,253,248,.38), inset 0 0 32px rgba(229,165,82,.22);
    }
    .moment-card::after { content: ""; position: absolute; z-index: 1; inset: 48% 0 0; background: linear-gradient(180deg, transparent, rgba(3,10,6,.82)); pointer-events: none; }
    .moment-card figcaption { position: absolute; z-index: 6; right: 1.25rem; bottom: 1.25rem; left: 1.25rem; pointer-events: none; }
    .moment-card figcaption span { display: block; margin-bottom: .25rem; color: rgba(255,255,255,.72); font-size: .72rem; letter-spacing: .1em; text-transform: uppercase; }
    .moment-card figcaption b { font-family: var(--display); font-size: 1.65rem; font-weight: 600; }
    .moment-toggle {
      position: absolute;
      z-index: 3;
      inset: 0;
      width: 100%;
      height: 100%;
      padding: 0;
      border: 0;
      color: #fffdf8;
      background: transparent;
      cursor: pointer;
      -webkit-user-select: none;
      user-select: none;
    }
    .moment-toggle::before {
      content: "▶";
      position: absolute;
      top: 1rem;
      left: 1rem;
      display: grid;
      place-items: center;
      width: 42px;
      height: 42px;
      padding-left: 2px;
      border: 1px solid rgba(255,255,255,.68);
      border-radius: 50%;
      background: rgba(4,12,7,.46);
      font-size: .8rem;
      line-height: 1;
      transition: color .2s ease, background .2s ease;
    }
    .moment-sound {
      position: absolute;
      z-index: 5;
      top: 1rem;
      right: 1rem;
      display: grid;
      place-items: center;
      width: 42px;
      height: 42px;
      padding: 0;
      border: 1px solid rgba(255,255,255,.68);
      border-radius: 50%;
      color: #fffdf8;
      background: rgba(4,12,7,.46);
      cursor: pointer;
      transition: color .2s ease, background .2s ease, border-color .2s ease;
    }
    .moment-sound svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
    .moment-sound .sound-on { display: none; }
    .moment-sound[aria-pressed="true"] .sound-off { display: none; }
    .moment-sound[aria-pressed="true"] .sound-on { display: block; }
    .moment-sound:hover,
    .moment-sound:focus-visible { color: #173226; border-color: #fffdf8; background: #fffdf8; }
    .moment-sound:focus-visible { outline: 3px solid var(--sun); outline-offset: 2px; }
    .moment-card.is-playing .moment-toggle::before {
      content: "❚❚";
      padding-left: 0;
      color: #173226;
      border-color: var(--sun);
      background: var(--sun);
      font-size: .68rem;
      letter-spacing: -.12em;
    }
    .moment-toggle:hover::before,
    .moment-toggle:focus-visible::before { color: #173226; background: #fffdf8; }
    .moment-toggle:focus-visible { outline: 3px solid #fffdf8; outline-offset: -3px; }

    .field-stories { display: block; background: var(--surface); }
    .films-heading {
      max-width: 920px;
      margin: 0 auto clamp(2.3rem, 5vw, 4rem);
      text-align: center;
    }
    .films-heading .section-label { justify-content: center; }
    .films-heading > p { max-width: 640px; margin: 1rem auto 0; color: var(--ink-soft); }
    .film-slider { max-width: 1120px; margin: 0 auto; }
    .film-viewport { overflow: hidden; }
    .film-track {
      display: flex;
      transform: translate3d(var(--film-offset, 0px), 0, 0);
      transition: transform .55s cubic-bezier(.2,.65,.2,1);
    }
    .film-card { flex: 0 0 100%; min-width: 0; margin: 0; }
    .film-card[aria-hidden="true"] { visibility: hidden; }
    .film-frame {
      position: relative;
      aspect-ratio: 16 / 9;
      overflow: hidden;
      color: #fffdf8;
      background: #10261a;
      box-shadow: var(--shadow);
    }
    .film-frame::after {
      content: "";
      position: absolute;
      inset: 0;
      background: linear-gradient(180deg, rgba(4,12,7,.04), rgba(4,12,7,.28));
      pointer-events: none;
    }
    .film-frame img,
    .film-frame iframe { width: 100%; height: 100%; display: block; border: 0; }
    .film-frame img { object-fit: cover; }
    .film-frame iframe { position: absolute; z-index: 3; inset: 0; }
    .film-play {
      position: absolute;
      z-index: 2;
      top: 50%;
      left: 50%;
      display: grid;
      place-items: center;
      width: clamp(64px, 8vw, 92px);
      height: clamp(64px, 8vw, 92px);
      padding: 0;
      border: 1px solid rgba(255,255,255,.78);
      border-radius: 50%;
      color: #173226;
      background: rgba(255,253,248,.94);
      box-shadow: 0 12px 36px rgba(4,12,7,.28);
      cursor: pointer;
      transform: translate(-50%, -50%);
      transition: color .2s ease, background .2s ease;
    }
    .film-play::before {
      content: "";
      width: 0;
      height: 0;
      margin-left: 5px;
      border-top: 10px solid transparent;
      border-bottom: 10px solid transparent;
      border-left: 16px solid currentColor;
    }
    .film-play:hover,
    .film-play:focus-visible { color: #fffdf8; background: #173226; }
    .film-play:focus-visible { outline: 3px solid #fffdf8; outline-offset: 4px; }
    .film-caption { padding: 1.2rem 0 0; text-align: center; }
    .film-caption h3 {
      margin: 0;
      font-family: var(--display);
      font-size: clamp(1.8rem, 3vw, 2.8rem);
      font-weight: 600;
      line-height: 1;
    }
    .film-caption p { margin: .55rem auto 0; color: var(--ink-soft); }
    .film-controls {
      display: grid;
      grid-template-columns: 48px minmax(120px, auto) 48px;
      justify-content: center;
      align-items: center;
      gap: 1rem;
      margin-top: 1.7rem;
    }
    .film-arrow {
      width: 48px;
      height: 48px;
      border: 1px solid var(--line);
      border-radius: 50%;
      color: var(--forest);
      background: transparent;
      cursor: pointer;
      transition: color .2s ease, background .2s ease, border-color .2s ease;
    }
    .film-arrow:hover,
    .film-arrow:focus-visible { color: var(--paper); background: var(--forest); border-color: var(--forest); }
    .film-arrow:disabled { opacity: .34; cursor: default; }
    .film-dots { display: flex; justify-content: center; gap: .55rem; }
    .film-dot {
      width: 30px;
      height: 4px;
      padding: 0;
      border: 0;
      background: var(--line);
      cursor: pointer;
    }
    .film-dot[aria-current="true"] { background: var(--forest); }

    .destination-highlights { background: var(--paper); }
    .destination-grid-home .destination-card { display: block; text-decoration: none; }
    .destination-grid-home .destination-card:nth-child(1),
    .destination-grid-home .destination-card:nth-child(4) { grid-column: span 7; min-height: 560px; }
    .destination-grid-home .destination-card:nth-child(2),
    .destination-grid-home .destination-card:nth-child(3) { grid-column: span 5; min-height: 480px; }
    .section-action { display: flex; justify-content: flex-end; margin-top: 2rem; }
    .text-link {
      display: inline-flex;
      align-items: center;
      gap: .65rem;
      padding: .7rem 0;
      border-bottom: 1px solid currentColor;
      color: var(--forest);
      font-size: .86rem;
      font-weight: 700;
      letter-spacing: .04em;
      text-decoration: none;
    }
    .text-link span { transition: transform .2s ease; }
    .text-link:hover span,
    .text-link:focus-visible span { transform: translateX(4px); }
    .experience-intro .text-link { margin-top: 1.6rem; }
    .journey .section-label { color: #d8e4d4; }
    .journey .button { margin-top: .25rem; }
    footer [aria-disabled="true"] { opacity: .58; }

    .story-threshold h2 { text-shadow: 0 3px 28px rgba(0,0,0,.55); }

    @media (max-width: 900px) {
      .interest-lead,
      .field-stories { grid-template-columns: 1fr; }
      .interest-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
      .stories-intro { position: static; }
      .stories-grid { grid-template-columns: 1.1fr .9fr; }
      .destination-grid-home .destination-card:nth-child(n) { grid-column: span 6; min-height: 460px; }
    }

    @media (max-width: 760px) {
      section[id], footer[id] { scroll-margin-top: 70px; }
      .hero-kicker { font-size: .7rem; }
      .story-hero-copy .hero-deck { max-width: 36rem; font-size: 1.02rem; line-height: 1.35; }
      .interest-section,
      .moments,
      .field-stories,
      .destination-highlights { padding: 4.5rem 1.25rem; }
      .interest-lead { gap: 1.5rem; margin-bottom: 2.8rem; }
      .interest-grid { grid-template-columns: 1fr; gap: .75rem; }
      .interest-card { min-height: 390px; }
      .carousel-controls { display: none; }
      .moments-track { margin-right: -1.25rem; padding-right: 1.25rem; gap: .75rem; }
      .moment-card { min-width: 220px; max-width: calc(100vw - 2.5rem); }
      .moment-card figcaption { right: .9rem; bottom: .9rem; left: .9rem; }
      .moment-card figcaption b { font-size: 1.3rem; }
      .moment-toggle::before { top: .8rem; left: .8rem; width: 40px; height: 40px; }
      .moment-sound { top: .8rem; right: .8rem; width: 40px; height: 40px; }
      .stories-grid { grid-template-columns: 1fr; gap: 2.5rem; }
      .story-feature img,
      .story-feature-wide img { aspect-ratio: 4 / 3; }
      .destination-grid-home .destination-card:nth-child(n) { grid-column: auto; min-height: 470px; }
      .experience-intro .text-link { margin-bottom: 2rem; }
    }

    @media (max-width: 420px) {
      .story-hero-copy { top: 46%; }
      .story-hero-copy h1 { font-size: clamp(4rem, 25vw, 6.2rem); }
      .story-hero-copy .hero-deck { margin-top: 1.4rem; font-size: .93rem; }
      .hero-actions { margin-top: 1.35rem; }
      .hero-actions .button { min-height: 46px; padding: .68rem .9rem; font-size: .78rem; }
      .interest-card { min-height: 360px; }
      .moments h2 { font-size: clamp(1.72rem, 8.3vw, 2.1rem); }
      .moment-card figcaption span { font-size: .6rem; }
      .film-controls { grid-template-columns: 44px minmax(96px, auto) 44px; gap: .7rem; }
      .film-arrow { width: 44px; height: 44px; }
      .travel-note { padding: 1.5rem 1.25rem; }
    }

    /* One editorial field guide replaces the former moments, stories,
       destination and experience sections without introducing new scroll effects. */
    .editorial-routes {
      padding: clamp(5rem, 10vw, 9rem) clamp(1.25rem, 6vw, 6rem);
      background: var(--surface);
    }
    .editorial-lead {
      display: grid;
      grid-template-columns: minmax(0, 1.08fr) minmax(260px, .52fr);
      gap: clamp(2rem, 8vw, 8rem);
      align-items: end;
      margin-bottom: clamp(2.5rem, 5vw, 4.5rem);
    }
    .editorial-lead h2 {
      margin: 0;
      font-family: var(--display);
      font-size: clamp(2.8rem, 6vw, 6rem);
      font-weight: 500;
      line-height: .94;
      letter-spacing: -.035em;
    }
    .editorial-lead p { max-width: 450px; margin: 0; color: var(--ink-soft); }
    .route-jumps { display: flex; flex-wrap: wrap; gap: 1.2rem; margin-top: 1.35rem; }
    .editorial-grid {
      display: grid;
      grid-template-columns: minmax(0, 1.17fr) minmax(320px, .83fr);
      gap: clamp(1.2rem, 3vw, 2.25rem);
      align-items: stretch;
    }
    .place-feature,
    .place-card {
      position: relative;
      display: block;
      overflow: hidden;
      color: #fffdf8;
      background: #153020;
      text-decoration: none;
    }
    .place-feature { min-height: 720px; }
    .place-card { min-height: 270px; }
    .place-feature img,
    .place-card img { width: 100%; height: 100%; object-fit: cover; transition: transform .65s cubic-bezier(.2,.65,.2,1); }
    .place-feature:hover img,
    .place-card:hover img { transform: scale(1.025); }
    .place-feature::after,
    .place-card::after { content: ""; position: absolute; inset: 24% 0 0; background: linear-gradient(180deg, transparent, rgba(3,10,6,.86)); }
    .place-copy { position: absolute; z-index: 2; right: 0; bottom: 0; left: 0; padding: clamp(1.3rem, 3vw, 2.5rem); }
    .place-copy span { display: block; margin-bottom: .45rem; color: rgba(255,255,255,.76); font-size: .72rem; font-weight: 700; letter-spacing: .11em; text-transform: uppercase; }
    .place-copy h3 { margin: 0; font-family: var(--display); font-size: clamp(2rem, 4vw, 4rem); font-weight: 500; line-height: .95; }
    .place-card .place-copy h3 { font-size: clamp(1.65rem, 2.6vw, 2.6rem); }
    .place-copy p { max-width: 440px; margin: .65rem 0 0; color: rgba(255,255,255,.84); }
    .editorial-side { display: grid; grid-template-rows: auto auto 1fr; gap: 1rem; }
    .experience-panel { padding: clamp(1.4rem, 3vw, 2.4rem); background: var(--mist); scroll-margin-top: 100px; }
    .experience-panel h3 { margin: .15rem 0 .65rem; font-family: var(--display); font-size: clamp(2rem, 3.4vw, 3.3rem); font-weight: 500; line-height: .96; }
    .experience-panel > p { margin: 0 0 1.4rem; color: var(--ink-soft); }
    .experience-mini-list { display: grid; }
    .experience-mini {
      display: grid;
      grid-template-columns: 74px 1fr;
      gap: .9rem;
      align-items: center;
      padding: .8rem 0;
      border-top: 1px solid var(--line);
    }
    .experience-mini img { width: 74px; height: 64px; object-fit: cover; }
    .experience-mini b { display: block; font-family: var(--display); font-size: 1.18rem; line-height: 1; }
    .experience-mini span { display: block; margin-top: .2rem; color: var(--ink-soft); font-size: .78rem; }
    .editorial-notes {
      display: grid;
      grid-template-columns: minmax(220px, .46fr) minmax(0, 1.54fr);
      gap: clamp(1.5rem, 4vw, 4rem);
      align-items: end;
      margin-top: clamp(2.5rem, 5vw, 4.5rem);
      padding-top: clamp(2rem, 4vw, 3rem);
      border-top: 1px solid var(--line);
    }
    .editorial-notes h3 { margin: 0; font-family: var(--display); font-size: clamp(2rem, 3.4vw, 3.2rem); font-weight: 500; line-height: .98; }
    .editorial-notes p { max-width: 340px; margin: .8rem 0 0; color: var(--ink-soft); font-size: .92rem; }
    .note-strip { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem; }
    .note-frame { margin: 0; }
    .note-frame img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
    .note-frame figcaption { margin-top: .55rem; font-size: .78rem; color: var(--ink-soft); }
    .note-frame b { display: block; color: var(--ink); font-family: var(--display); font-size: 1.08rem; font-weight: 600; }

    @media (max-width: 900px) {
      .editorial-lead,
      .editorial-grid { grid-template-columns: 1fr; }
      .place-feature { min-height: 620px; }
      .editorial-side { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: auto auto; }
      .experience-panel { grid-column: 1 / -1; }
    }

    @media (max-width: 760px) {
      .editorial-routes { padding: 4.5rem 1.25rem; }
      .editorial-lead { gap: 1.35rem; margin-bottom: 2.5rem; }
      .route-jumps { gap: .8rem 1.1rem; }
      .place-feature { min-height: 520px; }
      .editorial-side { grid-template-columns: 1fr; }
      .place-card { min-height: 360px; }
      .experience-panel { grid-column: auto; }
      .editorial-notes { grid-template-columns: 1fr; align-items: start; }
      .note-strip { grid-template-columns: 1fr; gap: 1.4rem; }
      .note-frame { display: grid; grid-template-columns: 42% 1fr; gap: .9rem; align-items: center; }
      .note-frame figcaption { margin-top: 0; }
    }

    /* Reference-faithful content blocks below the films */
    .reference-destinations,
    .reference-experiences {
      padding: clamp(5.5rem, 10vw, 9rem) clamp(1.25rem, 5vw, 5rem);
    }
    .reference-heading {
      max-width: 1160px;
      margin: 0 auto clamp(2.6rem, 5vw, 4.5rem);
      text-align: center;
    }
    .reference-heading .section-label {
      display: inline-block;
      margin-bottom: 1rem;
    }
    .reference-heading h2 {
      margin: 0;
      font-family: var(--display);
      font-size: clamp(2.75rem, 6vw, 5.9rem);
      font-weight: 500;
      line-height: .93;
      letter-spacing: -.045em;
    }
    .reference-heading h2 em {
      color: var(--accent);
      font-weight: 500;
    }
    .reference-heading p {
      max-width: 660px;
      margin: 1.45rem auto 0;
      color: var(--ink-soft);
      font-size: clamp(.98rem, 1.25vw, 1.12rem);
      line-height: 1.65;
    }
    .reference-destination-grid {
      display: grid;
      grid-template-columns: repeat(4, minmax(0, 1fr));
      gap: clamp(.75rem, 1.4vw, 1.25rem);
      max-width: 1440px;
      margin: 0 auto;
    }
    .reference-destination-card {
      position: relative;
      min-height: clamp(420px, 48vw, 610px);
      overflow: hidden;
      background: #173f2e;
      color: #fffdf5;
    }
    .reference-destination-card::after {
      content: "";
      position: absolute;
      inset: 30% 0 0;
      background: linear-gradient(180deg, transparent, rgba(4, 23, 14, .93));
      pointer-events: none;
    }
    .reference-destination-card img {
      position: absolute;
      inset: 0;
      width: 100%;
      height: 100%;
      object-fit: cover;
      transition: transform .65s cubic-bezier(.2,.8,.2,1);
    }
    .reference-destination-card:hover img { transform: scale(1.025); }
    .reference-destination-copy {
      position: absolute;
      z-index: 1;
      right: 0;
      bottom: 0;
      left: 0;
      padding: 1.45rem;
    }
    .card-kicker {
      color: var(--accent);
      font-size: .67rem;
      font-weight: 700;
      letter-spacing: .14em;
      text-transform: uppercase;
    }
    .reference-destination-copy h3,
    .reference-experience-copy h3 {
      margin: .45rem 0 .6rem;
      font-family: var(--display);
      font-size: clamp(1.9rem, 2.8vw, 3rem);
      font-weight: 500;
      line-height: .95;
    }
    .reference-destination-copy p {
      margin: 0 0 1rem;
      color: rgba(255,253,245,.82);
      font-size: .82rem;
      line-height: 1.52;
    }
    .card-meta {
      display: flex;
      flex-wrap: wrap;
      gap: .45rem;
    }
    .card-meta span {
      display: inline-flex;
      align-items: center;
      gap: .35rem;
      padding: .34rem .56rem;
      border: 1px solid currentColor;
      border-radius: 999px;
      color: inherit;
      font-size: .65rem;
      line-height: 1;
    }
    .meta-icon {
      width: 13px;
      height: 13px;
      flex: 0 0 auto;
      color: var(--sun);
      fill: none;
      stroke: currentColor;
      stroke-width: 1.8;
      stroke-linecap: round;
      stroke-linejoin: round;
    }
    .reference-destinations .section-action {
      max-width: 1440px;
      margin: 2.25rem auto 0;
      text-align: center;
    }
    .reference-experiences { background: #10261a; color: #fffdf5; }
    .reference-experiences .reference-heading p { color: rgba(255,253,245,.72); }
    .reference-experiences .reference-heading h2 { color: #fffdf5; }
    .reference-experience-grid {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 1px;
      max-width: 1440px;
      margin: 0 auto;
      background: rgba(255,255,255,.18);
    }
    .reference-experience-card { background: #10261a; }
    .reference-experience-card > img {
      width: 100%;
      aspect-ratio: 4 / 3;
      object-fit: cover;
    }
    .reference-experience-copy { padding: clamp(1.35rem, 2.6vw, 2.4rem); }
    .experience-topline {
      display: flex;
      align-items: flex-start;
      justify-content: space-between;
      gap: 1rem;
    }
    .call-label {
      color: rgba(255,253,245,.72);
      font-size: .7rem;
      white-space: nowrap;
    }
    .reference-experience-copy h3 { color: #fffdf5; }
    .reference-experience-copy p {
      margin: 0 0 1.2rem;
      color: rgba(255,253,245,.7);
      font-size: .86rem;
      line-height: 1.58;
    }
    .reference-experience-copy .experience-type {
      min-height: 2.6em;
      color: rgba(255,253,245,.92);
      font-weight: 600;
    }
    .reference-experience-copy .card-meta { color: rgba(255,253,245,.76); }
    .reference-actions {
      display: flex;
      justify-content: center;
      gap: 2rem;
      max-width: 1440px;
      margin: 2.4rem auto 0;
    }
    .reference-experiences .text-link { color: #fffdf5; }
    .reference-experiences .text-link-secondary { color: rgba(255,253,245,.7); }
    .reference-planner {
      min-height: 720px;
      isolation: isolate;
      color: #fffdf5;
    }
    .reference-planner > img { filter: saturate(.82) contrast(1.04); }
    .reference-planner-overlay {
      position: absolute;
      z-index: 0;
      inset: 0;
      background: linear-gradient(90deg, rgba(2,22,13,.92) 0%, rgba(2,22,13,.7) 48%, rgba(2,22,13,.2) 100%);
    }
    .reference-planner-content {
      position: relative;
      z-index: 1;
      width: min(760px, 100%);
      max-width: none;
    }
    .reference-planner-content h2 { max-width: 650px; }
    .planner-features {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 12px;
      margin-top: 2.5rem;
      background: transparent;
    }
    .planner-feature {
      display: flex;
      min-height: 160px;
      flex-direction: column;
      gap: .65rem;
      padding: 1.35rem;
      background: rgba(3,30,18,.56);
    }
    .planner-feature b { font-family: var(--display); font-size: 1.35rem; font-weight: 600; }
    .planner-feature span { color: rgba(255,253,245,.72); font-size: .78rem; line-height: 1.55; }
    .reference-footer { padding: clamp(4.5rem, 8vw, 7rem) clamp(1.25rem, 5vw, 5rem) 1.5rem; }
    .reference-footer-grid {
      display: grid;
      grid-template-columns: minmax(260px, 1.8fr) repeat(2, minmax(150px, .6fr));
      gap: clamp(2.5rem, 6vw, 7rem);
      max-width: 1440px;
      margin: 0 auto clamp(4rem, 8vw, 7rem);
    }
    .reference-footer-brand h3 {
      margin: 0;
      font-family: var(--display);
      font-size: clamp(3.5rem, 7vw, 7rem);
      font-weight: 500;
      line-height: .8;
      letter-spacing: -.05em;
    }
    .reference-footer-brand p { max-width: 360px; margin: 1.5rem 0; color: rgba(255,255,255,.68); }
    .reference-footer h4 { margin: .25rem 0 1.2rem; color: var(--accent); }
    .reference-footer nav:not(.social-links) { display: grid; gap: .7rem; }
    .reference-footer nav a { color: inherit; text-decoration: none; }
    .reference-footer nav a:hover { color: var(--accent); }
    .social-links { display: flex; flex-wrap: wrap; gap: 1rem; font-size: .82rem; }
    .footer-legal { display: flex; flex-wrap: wrap; gap: 1.3rem; }

    @media (max-width: 980px) {
      .reference-destination-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
      .reference-destination-card { min-height: 520px; }
      .reference-experience-grid { grid-template-columns: 1fr; gap: 1rem; background: transparent; }
      .reference-experience-card { display: grid; grid-template-columns: minmax(240px, .75fr) minmax(0, 1.25fr); border-top: 1px solid rgba(255,255,255,.18); }
      .reference-experience-card > img { height: 100%; min-height: 360px; aspect-ratio: auto; }
      .planner-features { grid-template-columns: 1fr; max-width: 580px; }
      .planner-feature { min-height: 0; }
    }

    @media (max-width: 680px) {
      .reference-destinations,
      .reference-experiences { padding: 4.8rem 1.1rem; }
      .reference-heading { margin-bottom: 2.2rem; }
      .reference-heading h2 { font-size: clamp(2.65rem, 13vw, 4rem); }
      .reference-destination-grid { grid-template-columns: 1fr; gap: 1rem; }
      .reference-destination-card { min-height: 480px; }
      .reference-experience-card { display: block; }
      .reference-experience-card > img { min-height: 0; aspect-ratio: 4 / 3; }
      .experience-topline { flex-direction: column; gap: .45rem; }
      .reference-experience-copy .experience-type { min-height: 0; }
      .reference-actions { flex-direction: column; align-items: center; gap: 1rem; }
      .reference-planner { min-height: 820px; }
      .reference-planner-overlay { background: linear-gradient(180deg, rgba(2,22,13,.34) 0%, rgba(2,22,13,.9) 48%, rgba(2,22,13,.98) 100%); }
      .reference-planner-content { top: auto; bottom: 0; transform: none; }
      .planner-features { margin-top: 1.75rem; }
      .reference-footer-grid { grid-template-columns: 1fr 1fr; gap: 2.5rem 1.25rem; }
      .reference-footer-brand { grid-column: 1 / -1; }
      .reference-footer .footer-bottom { align-items: flex-start; flex-direction: column; gap: 1rem; }
    }

    /* Phase 1 route system and reference-aligned refinements */
    :root { --accent: #e5a552; }
    @media (prefers-color-scheme: dark) { :root { --accent: #edb66e; } }
    body.route-active .site-nav { background: rgba(8,20,13,.97); border-bottom-color: rgba(255,255,255,.16); }

    /* Films: copy and controls sit directly on the moving image, as in the reference. */
    .film-slider { position: relative; }
    .film-track { gap: 14px; }
    .film-card { position: relative; }
    .film-frame::after { background: linear-gradient(180deg, rgba(4,12,7,.05) 24%, rgba(4,12,7,.88) 100%); }
    .film-caption {
      position: absolute; z-index: 4; right: clamp(4.5rem,8vw,7rem); bottom: 2rem; left: clamp(4.5rem,8vw,7rem);
      padding: 0; text-align: left; pointer-events: none;
    }
    .film-caption h3 { color: #fffdf8; }
    .film-caption p { margin: .5rem 0 0; color: rgba(255,253,248,.78); }
    .film-caption::before { content: "FILM"; display: block; margin-bottom: .65rem; color: rgba(255,253,248,.68); font-size: .68rem; font-weight: 700; letter-spacing: .14em; }
    .film-controls { position: absolute; z-index: 6; inset: 0; display: flex; align-items: center; justify-content: space-between; margin: 0; padding: 0 1rem; pointer-events: none; }
    .film-arrow { color: #fffdf8; border-color: rgba(255,255,255,.58); background: rgba(5,15,9,.32); pointer-events: auto; }
    .film-arrow:hover,.film-arrow:focus-visible { color:#173226; background:#fffdf8; border-color:#fffdf8; }
    .film-dots { position: absolute; bottom: 1.1rem; left: 50%; transform: translateX(-50%); pointer-events: auto; }
    .film-dot { background: rgba(255,255,255,.38); }
    .film-dot[aria-current="true"] { background: #fffdf8; }

    /* Hands-on Alluri: equal image-led tiles with copy at the bottom and small gutters. */
    .reference-experience-grid { gap: 12px; background: transparent; }
    .reference-experience-card { position: relative; min-height: 590px; overflow: hidden; background: #10261a; }
    .reference-experience-card > img { position:absolute; inset:0; width:100%; height:100%; aspect-ratio:auto; object-fit:cover; }
    .reference-experience-card::after { content:""; position:absolute; inset:24% 0 0; background:linear-gradient(180deg,transparent,rgba(2,18,10,.95)); }
    .reference-experience-copy { position:absolute; z-index:2; right:0; bottom:0; left:0; padding:clamp(1.25rem,2.4vw,2rem); }
    .reference-experience-copy p { margin-bottom:.85rem; }
    .reference-actions { gap:.8rem; }
    .reference-actions .text-link { min-height:48px; padding:.75rem 1.05rem; border:1px solid rgba(255,255,255,.5); border-radius:99px; }
    .reference-actions .text-link:first-child { color:#173226; border-color:var(--accent); background:var(--accent); }

    #routeView { min-height:100svh; padding-top:88px; background:var(--paper); }
    #routeView.has-cinematic-hero { padding-top: 0; }
    .page-hero { min-height:420px; display:grid; align-items:end; padding:clamp(5rem,10vw,8rem) clamp(1.25rem,6vw,6rem) clamp(3rem,7vw,6rem); background:#123522; color:#fffdf8; }
    .page-hero-inner { width:min(1180px,100%); margin:0 auto; }
    .page-hero .section-label { color:#d7e7cf; }
    .page-hero h1 { margin:0; max-width:920px; font-family:var(--display); font-size:clamp(3.7rem,8vw,7.4rem); font-weight:500; line-height:.88; letter-spacing:-.045em; }
    .page-hero p { max-width:650px; margin:1.3rem 0 0; color:rgba(255,255,255,.78); }
    .route-cinematic-hero {
      position: relative;
      height: 180svh;
      color: #fffdf8;
      background: #08140d;
      --route-hero-progress: 0;
    }
    .route-cinematic-stage {
      position: sticky;
      top: 0;
      height: 100svh;
      overflow: hidden;
      isolation: isolate;
    }
    .route-cinematic-media,
    .route-cinematic-media::after { position: absolute; inset: 0; }
    .route-cinematic-media { z-index: 0; overflow: hidden; background: #10261a; }
    .route-cinematic-title,
    .route-cinematic-cue { z-index: 2; }
    .route-cinematic-media img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      transform: translate3d(0, calc(var(--route-hero-progress) * -4%), 0) scale(calc(1 + var(--route-hero-progress) * .1));
      transform-origin: center center;
    }
    .route-cinematic-media video {
      width: 100%;
      height: 100%;
      object-fit: cover;
    }
    .route-cinematic-hero--waterfall .route-cinematic-media video {
      transform: translate3d(0, calc(-1.5% - var(--route-hero-progress) * 6%), 0) scale(calc(1.035 + var(--route-hero-progress) * .09));
      transform-origin: 57% 48%;
      will-change: transform;
    }
    .route-cinematic-hero--waterfall .route-cinematic-media::after {
      background:
        linear-gradient(180deg, rgba(1,12,11,.46), rgba(1,12,11,.04) 44%, rgba(1,12,11,.68)),
        linear-gradient(90deg, rgba(1,13,10,.3), transparent 44%, rgba(1,13,10,.12));
    }
    .route-cinematic-hero--waterfall .route-cinematic-stage::after {
      content: "";
      position: absolute;
      z-index: 1;
      right: -12%;
      bottom: -16%;
      left: -12%;
      height: 42%;
      pointer-events: none;
      background: radial-gradient(ellipse at 55% 100%, rgba(224,244,237,.58), rgba(200,231,222,.12) 42%, transparent 70%);
      filter: blur(20px);
      opacity: calc(.62 - var(--route-hero-progress) * .62);
      transform: translate3d(0, calc(var(--route-hero-progress) * -18%), 0) scale(calc(1 + var(--route-hero-progress) * .24));
    }
    .route-cinematic-caption {
      position: absolute;
      z-index: 3;
      left: clamp(1.25rem, 4vw, 4rem);
      bottom: clamp(4rem, 7vw, 5.25rem);
      margin: 0;
      color: rgba(255,253,248,.86);
      font-size: clamp(.72rem, 1.1vw, .9rem);
      font-weight: 700;
      letter-spacing: .12em;
      text-transform: uppercase;
      text-shadow: 0 2px 20px rgba(0,0,0,.48);
      opacity: calc(1 - var(--route-hero-progress) * 1.35);
      transform: translate3d(0, calc(var(--route-hero-progress) * -24px), 0);
    }
    .hero-place-caption {
      position: absolute;
      z-index: 7;
      left: clamp(1.25rem, 4vw, 4rem);
      bottom: clamp(4rem, 7vw, 5.25rem);
      margin: 0;
      color: rgba(255,253,248,.86);
      font-size: clamp(.72rem, 1.1vw, .9rem);
      font-weight: 700;
      letter-spacing: .12em;
      text-transform: uppercase;
      text-shadow: 0 2px 20px rgba(0,0,0,.48);
      pointer-events: none;
    }
    .route-cinematic-media::after {
      content: "";
      background: linear-gradient(180deg, rgba(3,12,7,.4), rgba(3,12,7,.14) 42%, rgba(3,12,7,.76));
    }
    @media (prefers-color-scheme: light) {
      .route-cinematic-hero--clouds .route-cinematic-media::after {
        background: linear-gradient(180deg, rgba(3,12,7,.16), rgba(3,12,7,.04) 46%, rgba(3,12,7,.4));
      }
      .route-cinematic-hero--clouds .route-cinematic-clouds { display: none; }
    }
    .route-cinematic-clouds,
    .route-cinematic-foreground {
      position: absolute;
      inset: 0;
      z-index: 1;
      overflow: hidden;
      pointer-events: none;
      -webkit-backface-visibility: hidden;
      backface-visibility: hidden;
    }
    .route-cinematic-clouds {
      opacity: calc(.9 - var(--route-hero-progress) * .9);
      transform: translate3d(0, calc(var(--route-hero-progress) * -10%), 0) scale(calc(1 + var(--route-hero-progress) * 1.25));
      transform-origin: 50% 72%;
    }
    .route-cinematic-foreground {
      opacity: calc(1 - var(--route-hero-progress) * 1.15);
      transform: translate3d(0, calc(var(--route-hero-progress) * 8%), 0) scale(calc(1 + var(--route-hero-progress) * 1.05));
      transform-origin: 52% 78%;
    }
    .route-cinematic-foreground img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      transform: translate3d(0,0,0);
      -webkit-backface-visibility: hidden;
      backface-visibility: hidden;
    }
    .route-cinematic-clouds i,
    .route-cinematic-clouds::before,
    .route-cinematic-clouds::after {
      content: "";
      position: absolute;
      display: block;
      border-radius: 50%;
      background: rgba(255,255,255,.74);
      filter: blur(30px);
      transform: translate3d(0,0,0);
    }
    .route-cinematic-clouds::before { width: 54vw; height: 17vw; left: -12vw; bottom: 7vh; opacity: .72; }
    .route-cinematic-clouds::after { width: 62vw; height: 18vw; right: -16vw; bottom: 3vh; opacity: .68; }
    .route-cinematic-clouds i:nth-child(1) { width: 38vw; height: 12vw; left: 16vw; bottom: 10vh; opacity: .42; }
    .route-cinematic-clouds i:nth-child(2) { width: 28vw; height: 9vw; right: 8vw; top: 19vh; opacity: .28; filter: blur(38px); }
    .route-cinematic-clouds i:nth-child(3) { width: 30vw; height: 10vw; left: 4vw; top: 30vh; opacity: .22; filter: blur(42px); }
    .route-cinematic-hero--cloud-reveal .route-cinematic-media img {
      transform: translate3d(0, calc(var(--route-hero-progress) * -1.5%), 0) scale(1.025);
      transform-origin: 50% 56%;
    }
    .route-cinematic-hero--cloud-reveal .route-cinematic-media::after {
      background: linear-gradient(180deg, rgba(3,12,7,.22), rgba(3,12,7,.02) 48%, rgba(3,12,7,.48));
    }
    .route-cinematic-hero--cloud-reveal .route-cinematic-clouds {
      opacity: calc(.96 - var(--route-hero-progress) * 1.3);
      transform: none;
    }
    .route-cinematic-hero--cloud-reveal .route-cinematic-clouds::before,
    .route-cinematic-hero--cloud-reveal .route-cinematic-clouds::after,
    .route-cinematic-hero--cloud-reveal .route-cinematic-clouds i {
      inset: 0;
      border-radius: 0;
      background: url('../page-heroes/explore-clouds.png') center / cover no-repeat;
      filter: none;
      will-change: transform, opacity;
    }
    .route-cinematic-hero--cloud-reveal .route-cinematic-clouds::before {
      opacity: .8;
      -webkit-mask-image: radial-gradient(ellipse 47% 38% at 20% 71%, #000 0 48%, rgba(0,0,0,.78) 62%, transparent 82%);
      mask-image: radial-gradient(ellipse 47% 38% at 20% 71%, #000 0 48%, rgba(0,0,0,.78) 62%, transparent 82%);
      transform: translate3d(calc(var(--route-hero-progress) * -54vw), calc(var(--route-hero-progress) * -5vh), 0) scale(1.03);
    }
    .route-cinematic-hero--cloud-reveal .route-cinematic-clouds::after {
      opacity: .78;
      -webkit-mask-image: radial-gradient(ellipse 50% 40% at 82% 73%, #000 0 48%, rgba(0,0,0,.76) 63%, transparent 83%);
      mask-image: radial-gradient(ellipse 50% 40% at 82% 73%, #000 0 48%, rgba(0,0,0,.76) 63%, transparent 83%);
      transform: translate3d(calc(var(--route-hero-progress) * 54vw), calc(var(--route-hero-progress) * -4vh), 0) scale(1.04);
    }
    .route-cinematic-hero--cloud-reveal .route-cinematic-clouds i:nth-child(1) {
      opacity: .58;
      -webkit-mask-image: radial-gradient(ellipse 34% 27% at 51% 67%, #000 0 46%, rgba(0,0,0,.68) 62%, transparent 82%);
      mask-image: radial-gradient(ellipse 34% 27% at 51% 67%, #000 0 46%, rgba(0,0,0,.68) 62%, transparent 82%);
      transform: translate3d(0, calc(var(--route-hero-progress) * 24vh), 0) scale(calc(1.025 - var(--route-hero-progress) * .1));
    }
    .route-cinematic-hero--cloud-reveal .route-cinematic-clouds i:nth-child(2) {
      opacity: .32;
      -webkit-mask-image: radial-gradient(ellipse 25% 18% at 80% 28%, #000 0 42%, rgba(0,0,0,.6) 62%, transparent 84%);
      mask-image: radial-gradient(ellipse 25% 18% at 80% 28%, #000 0 42%, rgba(0,0,0,.6) 62%, transparent 84%);
      transform: translate3d(calc(var(--route-hero-progress) * 46vw), calc(var(--route-hero-progress) * -4vh), 0);
    }
    .route-cinematic-hero--cloud-reveal .route-cinematic-clouds i:nth-child(3) {
      opacity: .3;
      -webkit-mask-image: radial-gradient(ellipse 27% 20% at 17% 36%, #000 0 42%, rgba(0,0,0,.58) 62%, transparent 84%);
      mask-image: radial-gradient(ellipse 27% 20% at 17% 36%, #000 0 42%, rgba(0,0,0,.58) 62%, transparent 84%);
      transform: translate3d(calc(var(--route-hero-progress) * -46vw), calc(var(--route-hero-progress) * -5vh), 0);
    }
    .route-cinematic-hero--cloud-reveal .route-cinematic-clouds i:nth-child(4) {
      opacity: .46;
      -webkit-mask-image: radial-gradient(ellipse 31% 21% at 31% 55%, #000 0 43%, rgba(0,0,0,.66) 62%, transparent 84%);
      mask-image: radial-gradient(ellipse 31% 21% at 31% 55%, #000 0 43%, rgba(0,0,0,.66) 62%, transparent 84%);
      transform: translate3d(calc(var(--route-hero-progress) * -38vw), calc(var(--route-hero-progress) * -2vh), 0) scale(.94);
    }
    .route-cinematic-hero--cloud-reveal .route-cinematic-clouds i:nth-child(5) {
      opacity: .44;
      -webkit-mask-image: radial-gradient(ellipse 32% 21% at 70% 52%, #000 0 43%, rgba(0,0,0,.64) 62%, transparent 84%);
      mask-image: radial-gradient(ellipse 32% 21% at 70% 52%, #000 0 43%, rgba(0,0,0,.64) 62%, transparent 84%);
      transform: translate3d(calc(var(--route-hero-progress) * 40vw), calc(var(--route-hero-progress) * -1vh), 0) scale(.97);
    }
    .route-cinematic-hero--cloud-reveal .route-cinematic-clouds i:nth-child(6) {
      opacity: .26;
      -webkit-mask-image: linear-gradient(180deg, transparent 17%, #000 31% 52%, transparent 67%);
      mask-image: linear-gradient(180deg, transparent 17%, #000 31% 52%, transparent 67%);
      transform: translate3d(calc(var(--route-hero-progress) * 7vw), calc(var(--route-hero-progress) * -13vh), 0) scale(.88);
    }
    .route-cinematic-hero--cloud-reveal .route-cinematic-clouds i:nth-child(7) {
      opacity: .76;
      background-size: 118% 58%;
      background-position: center 96%;
      -webkit-mask-image: radial-gradient(ellipse 42% 21% at 24% 89%, #000 0 43%, rgba(0,0,0,.72) 61%, transparent 84%);
      mask-image: radial-gradient(ellipse 42% 21% at 24% 89%, #000 0 43%, rgba(0,0,0,.72) 61%, transparent 84%);
      transform: translate3d(calc(var(--route-hero-progress) * -58vw), calc(var(--route-hero-progress) * 9vh), 0) scale(1.08);
    }
    .route-cinematic-hero--cloud-reveal .route-cinematic-clouds i:nth-child(8) {
      opacity: .74;
      background-size: 120% 60%;
      background-position: center 98%;
      -webkit-mask-image: radial-gradient(ellipse 44% 22% at 78% 90%, #000 0 43%, rgba(0,0,0,.72) 61%, transparent 84%);
      mask-image: radial-gradient(ellipse 44% 22% at 78% 90%, #000 0 43%, rgba(0,0,0,.72) 61%, transparent 84%);
      transform: translate3d(calc(var(--route-hero-progress) * 58vw), calc(var(--route-hero-progress) * 10vh), 0) scale(1.1);
    }
    @media (max-width: 760px) {
      .route-cinematic-hero--cloud-reveal .route-cinematic-clouds::before,
      .route-cinematic-hero--cloud-reveal .route-cinematic-clouds::after,
      .route-cinematic-hero--cloud-reveal .route-cinematic-clouds i {
        background-image: url('../page-heroes/explore-clouds-mobile.png');
        filter: none;
      }
      .route-cinematic-hero--cloud-reveal .route-cinematic-clouds i:nth-child(-n+6) {
        display: none;
      }
      .route-cinematic-hero--cloud-reveal .route-cinematic-clouds::before {
        -webkit-mask-image: radial-gradient(ellipse 68% 32% at 10% 70%, #000 0 46%, rgba(0,0,0,.7) 62%, transparent 84%);
        mask-image: radial-gradient(ellipse 68% 32% at 10% 70%, #000 0 46%, rgba(0,0,0,.7) 62%, transparent 84%);
      }
      .route-cinematic-hero--cloud-reveal .route-cinematic-clouds::after {
        -webkit-mask-image: radial-gradient(ellipse 70% 34% at 92% 72%, #000 0 46%, rgba(0,0,0,.7) 62%, transparent 84%);
        mask-image: radial-gradient(ellipse 70% 34% at 92% 72%, #000 0 46%, rgba(0,0,0,.7) 62%, transparent 84%);
      }
    }
    .route-cinematic-title {
      position: absolute;
      inset: 0;
      display: grid;
      place-items: center;
      padding: 6rem 1.25rem;
      text-align: center;
      opacity: calc(1 - var(--route-hero-progress) * 1.45);
      transform: translate3d(0, calc(var(--route-hero-progress) * -70px), 0);
    }
    .route-cinematic-title h1 {
      max-width: 1100px;
      margin: 0;
      color: #fffdf8;
      font-family: var(--display);
      font-size: clamp(4rem, 11vw, 9.5rem);
      font-weight: 500;
      line-height: .84;
      letter-spacing: -.045em;
      text-shadow: 0 5px 42px rgba(0,0,0,.35);
    }
    .route-cinematic-hero--events .route-cinematic-title h1 {
      max-width: 780px;
      font-size: clamp(3.2rem, 7vw, 6.25rem);
      line-height: .9;
    }
    .route-cinematic-cue {
      position: absolute;
      left: 50%;
      bottom: 1.5rem;
      transform: translateX(-50%);
      color: rgba(255,253,248,calc(.78 - var(--route-hero-progress) * .78));
      font-size: .68rem;
      font-weight: 700;
      letter-spacing: .16em;
      text-transform: uppercase;
    }
    .page-shell { width:min(1440px,100%); margin:0 auto; padding:clamp(3.5rem,8vw,7rem) clamp(1.1rem,5vw,5rem); }
    .page-shell h2 { margin:0; font-family:var(--display); font-size:clamp(2.4rem,5vw,4.8rem); font-weight:500; line-height:.95; }
    .page-shell h3 { font-family:var(--display); }
    .toolbar { display:grid; gap:1rem; margin-bottom:2.5rem; }
    .search-box { width:100%; min-height:54px; padding:.85rem 1rem; border:1px solid var(--line); border-radius:0; color:var(--ink); background:var(--surface); }
    #destinationSearch { max-width:420px; min-height:44px; margin:0 auto; }
    .filter-row { display:flex; flex-wrap:wrap; justify-content:center; gap:.5rem; }
    .filter-chip { min-height:38px; padding:.5rem .75rem; border:1px solid var(--line); border-radius:99px; color:var(--ink); background:transparent; cursor:pointer; font-size:.72rem; font-weight:700; letter-spacing:.05em; }
    .filter-chip[aria-pressed="true"] { color:var(--paper); background:var(--forest); border-color:var(--forest); }
    .results-count { color:var(--ink-soft); font-size:.86rem; }
    .listing-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; }
    .listing-card { display:flex; min-height:500px; flex-direction:column; color:var(--ink); background:var(--surface); text-decoration:none; }
    .listing-card img { width:100%; aspect-ratio:4/3; object-fit:cover; }
    .listing-copy { display:flex; flex:1; flex-direction:column; padding:1.2rem; }
    .listing-eyebrow { display:flex; flex-wrap:wrap; gap:.4rem; color:var(--moss); font-size:.66rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
    .listing-card h3 { margin:.7rem 0 .25rem; font-size:1.75rem; line-height:1; }
    .listing-subtitle { margin:0 0 .7rem; color:var(--moss); font-family:var(--display); font-style:italic; }
    .listing-summary { margin:0 0 1rem; color:var(--ink-soft); font-size:.88rem; }
    .tag-row { display:flex; flex-wrap:wrap; gap:.35rem; margin-top:auto; }
    .tag { padding:.3rem .5rem; border:1px solid var(--line); border-radius:99px; font-size:.62rem; text-transform:uppercase; }
    .card-link { display:inline-flex; align-self:flex-start; margin-top:1rem; padding-bottom:.25rem; border-bottom:1px solid; color:var(--forest); font-size:.75rem; font-weight:700; text-transform:uppercase; }
    .empty-state { grid-column:1/-1; padding:4rem 1rem; text-align:center; color:var(--ink-soft); }

    .detail-hero { position:relative; min-height:min(78svh,820px); display:grid; align-items:end; overflow:hidden; color:#fffdf8; background:#123522; }
    .detail-hero img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
    .detail-hero::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(3,12,7,.2),rgba(3,12,7,.86)); }
    .detail-hero-copy { position:relative; z-index:1; width:min(1280px,100%); margin:0 auto; padding:7rem clamp(1.25rem,6vw,6rem) 4rem; }
    .breadcrumbs { display:flex; flex-wrap:wrap; gap:.55rem; color:rgba(255,255,255,.68); font-size:.7rem; letter-spacing:.08em; text-transform:uppercase; }
    .breadcrumbs a { text-decoration:none; }
    .detail-hero h1 { max-width:900px; margin:1rem 0 .5rem; font-family:var(--display); font-size:clamp(3.4rem,8vw,7rem); font-weight:500; line-height:.88; }
    .detail-hero p { margin:0; font-size:clamp(1.1rem,2vw,1.4rem); }
    .tabs { display:flex; gap:1.2rem; border-bottom:1px solid var(--line); }
    .tab { padding:.9rem 0; border:0; border-bottom:2px solid transparent; color:var(--ink-soft); background:transparent; cursor:pointer; font-weight:700; }
    .tab[aria-selected="true"] { color:var(--forest); border-color:var(--forest); }
    .detail-lead { display:grid; grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr); gap:clamp(2rem,7vw,7rem); margin:3rem 0 5rem; }
    .detail-lead p { margin:.9rem 0 0; color:var(--ink-soft); }
    .todo-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1px; padding:1px; background:var(--line); list-style:none; }
    .todo-list li { padding:1rem; background:var(--surface); }
    .fact-table { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); margin-top:1.5rem; border-top:1px solid var(--line); border-left:1px solid var(--line); }
    .fact { padding:1rem; border-right:1px solid var(--line); border-bottom:1px solid var(--line); }
    .fact b { display:block; margin-bottom:.3rem; color:var(--moss); font-size:.7rem; letter-spacing:.08em; text-transform:uppercase; }
    .detail-section { margin-top:5rem; }
    .mini-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; margin-top:1.5rem; }
    .mini-card { padding:1.25rem; background:var(--mist); }
    .mini-card h3 { margin:0 0 .5rem; font-size:1.5rem; }
    .mini-card p { margin:0; color:var(--ink-soft); }
    .photo-panel img { width:100%; max-height:720px; object-fit:cover; }
    .detail-actions { display:flex; flex-wrap:wrap; gap:.7rem; margin-top:2rem; }

    .accordion-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1px; background:var(--line); margin-top:2rem; }
    .accordion { background:var(--surface); }
    .accordion-button { width:100%; display:grid; grid-template-columns:44px 1fr auto; gap:1rem; align-items:center; padding:1.25rem; border:0; color:var(--ink); background:transparent; text-align:left; cursor:pointer; }
    .accordion-letter { display:grid; place-items:center; width:44px; height:44px; border:1px solid var(--line); border-radius:50%; color:var(--moss); font-weight:700; }
    .accordion-button strong { font-family:var(--display); font-size:1.55rem; }
    .accordion-panel { padding:0 1.25rem 1.25rem 5.7rem; color:var(--ink-soft); }
    .accordion-panel .tag-row { margin-top:.8rem; }
    .experience-page-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; margin-top:2rem; }
    .bookable-card { display:flex; flex-direction:column; background:var(--surface); }
    .bookable-card img { width:100%; aspect-ratio:4/3; object-fit:cover; }
    .bookable-body { display:flex; flex:1; flex-direction:column; padding:1.3rem; }
    .bookable-body h3 { margin:.45rem 0; font-size:2rem; line-height:1; }
    .bookable-body p,.bookable-body li { color:var(--ink-soft); font-size:.88rem; }
    .bookable-meta { display:grid; grid-template-columns:repeat(3,1fr); gap:.5rem; margin-top:auto; padding-top:1rem; border-top:1px solid var(--line); }
    .bookable-meta span { display:flex; align-items:center; gap:.38rem; min-width:0; font-size:.7rem; line-height:1.25; }
    .bookable-meta .meta-icon { width:14px; height:14px; }
    .bookable-actions { display:flex; gap:.5rem; margin-top:1rem; }
    .bookable-actions a { flex:1; min-height:44px; display:grid; place-items:center; border:1px solid var(--forest); color:var(--forest); text-decoration:none; font-size:.75rem; font-weight:700; }
    .bookable-actions a:first-child { color:var(--paper); background:var(--forest); }
    .journey-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:1px; margin-top:2rem; background:var(--line); }
    .journey-card { padding:1.25rem; background:var(--surface); }
    .journey-card h3 { margin:.55rem 0; font-size:1.7rem; line-height:1; }
    .journey-card p { color:var(--ink-soft); font-size:.84rem; }
    .recommended { display:inline-block; margin-left:.4rem; color:var(--accent); font-size:.62rem; font-weight:700; }

    .region-group + .region-group { margin-top:4rem; }
    .stay-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; margin-top:1.5rem; }
    .stay-card { padding:1.4rem; border-top:3px solid var(--forest); background:var(--surface); }
    .stay-card h3 { margin:.35rem 0 .75rem; font-size:1.8rem; line-height:1; }
    .stay-card address { min-height:4.5em; color:var(--ink-soft); font-style:normal; font-size:.9rem; }
    .stay-card dl { display:grid; grid-template-columns:auto 1fr; gap:.3rem .8rem; font-size:.86rem; }
    .stay-card dt { color:var(--moss); }
    .stay-card dd { margin:0; }
    .enquiry-band { display:flex; flex-wrap:wrap; justify-content:space-between; gap:1rem; margin-top:4rem; padding:1.5rem; color:#fffdf8; background:#173f2e; }
    .enquiry-band a { color:#fffdf8; }

    .wizard-shell { width:min(960px,100%); margin:0 auto; }
    .wizard-progress { display:grid; grid-template-columns:repeat(6,1fr); gap:.35rem; margin-bottom:2rem; }
    .wizard-step-label { min-height:44px; padding:.55rem; border-top:3px solid var(--line); color:var(--ink-soft); font-size:.65rem; }
    .wizard-step-label.active { border-color:var(--forest); color:var(--ink); }
    .wizard-card { padding:clamp(1.25rem,5vw,3rem); background:var(--surface); box-shadow:var(--shadow); }
    .wizard-card h2 { font-size:clamp(2.5rem,6vw,5rem); }
    .option-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.7rem; margin-top:2rem; }
    .option { min-height:64px; padding:1rem; border:1px solid var(--line); color:var(--ink); background:transparent; cursor:pointer; text-align:left; }
    .option[aria-pressed="true"] { color:var(--paper); background:var(--forest); border-color:var(--forest); }
    .wizard-actions { display:flex; justify-content:space-between; gap:.7rem; margin-top:2rem; }
    .wizard-actions button { min-height:48px; padding:.75rem 1rem; border:1px solid var(--forest); color:var(--forest); background:transparent; cursor:pointer; }
    .wizard-actions .next { margin-left:auto; color:var(--paper); background:var(--forest); }
    .download-status { margin:.85rem 0 0; color:var(--ink-soft); font-size:.9rem; }
    .download-status:empty { display:none; }
    .download-status a { color:var(--forest); font-weight:700; }
    .form-row { display:grid; grid-template-columns:1fr 1fr; gap:1rem; margin-top:2rem; }
    .form-row label { display:grid; gap:.45rem; color:var(--ink-soft); font-size:.8rem; }
    .form-row select { min-height:50px; padding:.75rem; border:1px solid var(--line); color:var(--ink); background:var(--paper); }
    .summary-chips { display:flex; flex-wrap:wrap; gap:.5rem; margin-top:1.5rem; }
    .trip-focus-note { margin:1.25rem 0 0; padding:1rem 1.1rem; color:var(--ink); background:var(--mist); border-top:3px solid var(--sun); }
    .itinerary-route { margin-top:2rem; }
    .itinerary-route-head { display:flex; align-items:end; justify-content:space-between; gap:1rem; margin-bottom:.85rem; }
    .itinerary-route-head h3 { margin:0; font-size:clamp(1.8rem,4vw,2.6rem); line-height:1; }
    .itinerary-route-head p { max-width:430px; margin:0; color:var(--ink-soft); font-size:.84rem; }
    .itinerary-map-layout { display:block; margin:0; border:1px solid var(--line); background:var(--mist); }
    .itinerary-map-canvas { position:relative; min-width:0; height:clamp(440px,55vw,620px); overflow:hidden; background:#d5e2d2; }
    .itinerary-map-canvas svg { display:block; width:100%; height:100%; }
    .itinerary-map-canvas .route-base { fill:none; stroke:rgba(255,253,248,.94); stroke-width:6; stroke-linecap:round; stroke-linejoin:round; vector-effect:non-scaling-stroke; }
    .itinerary-map-canvas .route-line { fill:none; stroke:#173f2e; stroke-width:2.6; stroke-linecap:round; stroke-linejoin:round; vector-effect:non-scaling-stroke; }
    .itinerary-map-canvas .route-marker circle { stroke:#fffdf8; stroke-width:2; vector-effect:non-scaling-stroke; }
    .itinerary-map-canvas .route-marker text { fill:#fffdf8; font-family:var(--sans); font-size:4.2px; font-weight:800; text-anchor:middle; dominant-baseline:central; pointer-events:none; }
    .itinerary-map-caption { position:absolute; right:.6rem; bottom:.55rem; margin:0; padding:.28rem .48rem; color:#31483a; background:rgba(255,253,248,.9); font-size:.66rem; line-height:1.25; }
    .itinerary-map-key { padding:1.15rem; background:var(--surface); }
    .itinerary-map-key h4 { margin:0 0 .9rem; font-family:var(--display); font-size:1.35rem; }
    .itinerary-map-key ol { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.85rem 1.4rem; margin:0; padding:0; list-style:none; }
    .itinerary-map-key li { display:grid; grid-template-columns:32px minmax(0,1fr); gap:.65rem; align-items:start; }
    .route-key-number { display:grid; place-items:center; width:30px; height:30px; border-radius:50%; color:#fffdf8; font-size:.68rem; font-weight:800; }
    .itinerary-map-key b { display:block; font-size:.88rem; line-height:1.2; }
    .itinerary-map-key span:last-child { display:block; margin-top:.16rem; color:var(--ink-soft); font-size:.72rem; line-height:1.3; }
    .itinerary-day-legend { display:flex; flex-wrap:wrap; gap:.45rem .8rem; margin:.85rem 0 0; padding:0; list-style:none; }
    .itinerary-day-legend li { display:flex; align-items:center; gap:.35rem; color:var(--ink-soft); font-size:.72rem; font-weight:700; }
    .itinerary-day-legend i { width:10px; height:10px; border-radius:50%; }
    .trip-days { display:grid; gap:1.5rem; margin-top:2rem; }
    .trip-day { padding:1.25rem; background:var(--mist); }
    .trip-day h3 { margin:0 0 1rem; font-size:1.8rem; }
    .trip-stop + .trip-stop { margin-top:1rem; padding-top:1rem; border-top:1px solid var(--line); }
    .trip-stop h4 { margin:0 0 .2rem; font-family:var(--display); font-size:1.45rem; }
    .trip-stop-nature { margin:0 0 .45rem; color:var(--moss); font-size:.76rem; font-weight:700; letter-spacing:.025em; }

    .print-itinerary { display:none; }
    @media print {
      @page { size:A4; margin:14mm 15mm 17mm; }
      html, body { min-width:0; background:#fff; color:#173226; }
      body > *:not(#printItinerary) { display:none !important; }
      #printItinerary {
        display:block !important;
        width:auto;
        margin:0;
        color:#173226;
        background:#fff;
        font-family:Georgia, "Times New Roman", serif;
        font-size:10.5pt;
        line-height:1.42;
      }
      .print-itinerary__header {
        margin:-14mm -15mm 9mm;
        padding:14mm 15mm 10mm;
        color:#fff;
        background:#173f2e;
        border-bottom:3mm solid #e5a552;
      }
      .print-itinerary__brand { margin:0; font-size:10pt; font-weight:700; letter-spacing:.18em; }
      .print-itinerary__brand span { margin-left:.6em; font-family:Arial, sans-serif; font-size:7.5pt; font-weight:400; letter-spacing:.12em; text-transform:uppercase; }
      .print-itinerary__header h1 { margin:4mm 0 0; font-size:24pt; line-height:1.05; }
      .print-itinerary__summary {
        display:grid;
        grid-template-columns:1fr 1fr;
        gap:3mm 8mm;
        margin:0 0 8mm;
        padding:6mm;
        background:#eef1e9;
        border-top:1.2mm solid #496b45;
      }
      .print-itinerary__summary h2 { grid-column:1 / -1; margin:0 0 1mm; font-size:14pt; }
      .print-itinerary__summary p { margin:0; font-family:Arial, sans-serif; font-size:9pt; }
      .print-itinerary__summary strong { color:#496b45; }
      .print-itinerary__day {
        margin:0 0 7mm;
        padding:6mm;
        background:#f7f7f2;
        border-left:1.5mm solid #e5a552;
        break-inside:avoid;
        page-break-inside:avoid;
      }
      .print-itinerary__day h2 { margin:0 0 4mm; color:#173f2e; font-size:18pt; break-after:avoid; page-break-after:avoid; }
      .print-itinerary__stop + .print-itinerary__stop { margin-top:4mm; padding-top:4mm; border-top:.3mm solid #cbd5c9; }
      .print-itinerary__stop h3 { margin:0 0 1.5mm; font-size:13.5pt; }
      .print-itinerary__stop p { margin:1mm 0 0; font-family:Arial, sans-serif; font-size:8.8pt; }
      .print-itinerary__meta { color:#41584a; }
      .print-itinerary__food strong { color:#496b45; }
      .print-itinerary__footer {
        margin-top:8mm;
        padding-top:4mm;
        border-top:.5mm solid #173f2e;
        font-family:Arial, sans-serif;
        font-size:8.5pt;
      }
      .print-itinerary__footer p { margin:1mm 0; }
    }

    @media (max-width:1100px) {
      .listing-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
      .experience-page-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
      .journey-grid { grid-template-columns:repeat(2,minmax(0,1fr)); background:transparent; gap:1rem; }
      .journey-card { border-top:1px solid var(--line); }
      .stay-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    }
    @media (max-width:760px) {
      #routeView { padding-top:72px; }
      .film-controls { padding:0 .45rem; }
      .film-caption { right:3.5rem; bottom:2.3rem; left:3.5rem; }
      .film-caption h3 { font-size:1.55rem; }
      .film-caption p { font-size:.78rem; }
      .reference-experience-card { min-height:520px; }
      .reference-experience-card > img { min-height:0; aspect-ratio:auto; }
      .page-hero { min-height:360px; }
      .listing-grid,.experience-page-grid,.stay-grid,.accordion-grid,.detail-lead,.fact-table,.mini-grid,.form-row { grid-template-columns:1fr; }
      .listing-card { min-height:0; }
      .journey-grid { grid-template-columns:1fr; }
      .accordion-panel { padding-left:1.25rem; }
      .wizard-progress { grid-template-columns:repeat(3,1fr); }
      .itinerary-route-head { display:block; }
      .itinerary-route-head p { margin-top:.55rem; }
      .itinerary-map-canvas { height:330px; }
      .itinerary-map-key { padding:1rem; }
      .itinerary-map-key ol { grid-template-columns:1fr; }
    }
    @media (max-width:420px) {
      .film-caption { right:3.2rem; left:3.2rem; bottom:2.1rem; }
      .film-caption p { display:none; }
      .page-hero h1 { font-size:3.4rem; }
      .option-grid { grid-template-columns:1fr; }
    }

    /* Reference alignment pass: centered section hierarchy and image-first cards. */
    .interest-lead {
      display: block;
      max-width: 780px;
      margin-inline: auto;
      text-align: center;
    }
    .interest-lead > p { margin: 1.2rem auto 0; }
    .interest-card img {
      position: absolute;
      inset: 0;
      width: 100%;
      height: 100%;
    }
    .page-hero { align-items: center; text-align: center; }
    .page-hero-inner { display: grid; justify-items: center; }
    .page-hero h1,
    .page-hero p { margin-inline: auto; }
    .page-shell > h2,
    .page-shell > .section-label,
    .detail-section > h2,
    .detail-section > .section-label,
    .region-group > h2,
    .region-group > .section-label { display: block; text-align: center; }
    .detail-section > p { max-width: 720px; margin-inline: auto; text-align: center; }
    .detail-lead { text-align: center; }
    .toolbar { scroll-margin-top: 110px; }
    .reference-planner { place-items: center; text-align: center; }
    .reference-planner-content { width: min(940px, 100%); margin-inline: auto; }
    .reference-planner-content h2,
    .reference-planner-copy { margin-inline: auto; }
    .reference-planner-copy { max-width: 720px; margin-top: 1.15rem; color: rgba(255,253,245,.82); }
    .planner-cta { margin-top: 2rem; }
    .planner-features { margin-inline: auto; }

    .journey-card { overflow: hidden; }
    .journey-card > img { width: calc(100% + 2.5rem); max-width: none; aspect-ratio: 4 / 3; margin: -1.25rem -1.25rem 1.2rem; object-fit: cover; }
    .detail-section > .detail-actions { justify-content: center; }
    .listing-card {
      overflow: hidden;
      border: 1px solid rgba(255,255,255,.08);
      color: #fffdf5;
      background: #10261a;
    }
    .listing-card img { aspect-ratio: 16 / 9; transition: transform .5s ease; }
    .listing-card:hover img,
    .listing-card:focus-visible img { transform: scale(1.025); }
    .listing-card .listing-eyebrow,
    .listing-card .listing-subtitle { color: #edb66e; }
    .listing-card .listing-summary { color: rgba(255,253,245,.72); }
    .listing-card .tag { border-color: rgba(255,255,255,.2); }
    .listing-card .card-link {
      width: 100%;
      justify-content: center;
      padding: .75rem;
      border: 1px solid rgba(255,255,255,.35);
      color: #fffdf5;
    }
    .accordion-panel .card-link { margin-top: 1rem; }

    @media (max-width: 760px) {
      .page-hero { min-height: 330px; }
      .page-shell { padding-top: 3.5rem; }
      .reference-planner { align-items: end; padding-bottom: 4.5rem; }
      .reference-planner-content { text-align: center; }
    }

    /* Interest tiles expand in place, then filter the existing bookable experiences. */
    .interest-card { cursor: pointer; }
    .interest-toggle {
      position: absolute;
      z-index: 3;
      inset: 0;
      width: 100%;
      padding: 0;
      border: 0;
      color: inherit;
      background: transparent;
      cursor: pointer;
    }
    .interest-toggle:focus-visible { outline: 3px solid #fffdf8; outline-offset: -5px; }
    .interest-card-body { pointer-events: none; transition: transform .25s ease; }
    .interest-explore-panel {
      position: absolute;
      z-index: 4;
      right: clamp(1rem, 2vw, 1.5rem);
      bottom: clamp(1rem, 2vw, 1.5rem);
      left: clamp(1rem, 2vw, 1.5rem);
      display: grid;
      transform: translateY(18px);
      opacity: 0;
      visibility: hidden;
      pointer-events: none;
      transition: transform .25s ease, opacity .25s ease, visibility .25s ease;
    }
    .interest-card.is-expanded .interest-card-body { transform: translateY(-74px); }
    .interest-card.is-expanded .interest-explore-panel { transform: translateY(0); opacity: 1; visibility: visible; pointer-events: auto; }
    .interest-explore {
      min-height: 54px;
      padding: .85rem 1rem;
      border: 1px solid rgba(255,255,255,.82);
      color: #173226;
      background: #fffdf8;
      cursor: pointer;
      font-weight: 800;
      text-align: center;
    }
    .interest-explore:hover,
    .interest-explore:focus-visible { color: #fffdf8; background: #173f2e; }
    .experience-filter-status {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: .8rem;
      max-width: 1440px;
      margin: -1.6rem auto 2rem;
      color: rgba(255,253,245,.86);
    }
    .experience-filter-status[hidden] { display: none; }
    .experience-filter-status strong { color: #fffdf5; }
    .experience-filter-clear {
      min-height: 38px;
      padding: .45rem .75rem;
      border: 1px solid rgba(255,255,255,.55);
      color: #fffdf5;
      background: transparent;
      cursor: pointer;
      font-size: .75rem;
      font-weight: 700;
    }
    .experience-filter-clear:hover,
    .experience-filter-clear:focus-visible { color: #173226; background: #fffdf8; }
    .reference-experience-card[hidden] { display: none; }
    .experience-empty {
      grid-column: 1 / -1;
      margin: 0;
      padding: 3rem 1.25rem;
      border: 1px solid rgba(255,255,255,.22);
      color: rgba(255,253,245,.82);
      text-align: center;
    }
    .call-cta {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-height: 42px;
      padding: .55rem .8rem;
      border: 1px solid var(--accent);
      color: #173226;
      background: var(--accent);
      font-size: .7rem;
      font-weight: 800;
      line-height: 1.1;
      text-align: center;
      text-decoration: none;
      white-space: nowrap;
    }
    .call-cta:hover,
    .call-cta:focus-visible { color: #173226; background: #fffdf8; border-color: #fffdf8; }

    @media (max-width: 680px) {
      .interest-card.is-expanded .interest-card-body { transform: translateY(-68px); }
      .experience-filter-status { flex-wrap: wrap; margin-top: -1rem; }
      .call-cta { align-self: flex-start; }
    }

    /* Destination details follow the reference's image-led, dark editorial layout. */
    .destination-detail-page {
      min-height: 100svh;
      color: #fffdf5;
      background: #07100d;
    }
    .destination-detail-page .detail-hero {
      min-height: clamp(360px, 44vw, 560px);
      background: #10261a;
    }
    .destination-detail-page .detail-hero::after {
      background: linear-gradient(180deg, rgba(2,9,6,.18) 8%, rgba(2,9,6,.42) 55%, rgba(2,9,6,.9) 100%);
    }
    .destination-detail-page .detail-hero-copy {
      width: 100%;
      padding: clamp(8rem, 15vw, 11rem) clamp(1.25rem, 2.5vw, 2rem) clamp(2rem, 4vw, 3.4rem);
    }
    .destination-detail-page .detail-hero .section-label {
      margin: 0 0 .55rem;
      color: #d9a46f;
    }
    .destination-detail-page .detail-hero h1 {
      max-width: 1100px;
      margin: 0 0 .35rem;
      font-size: clamp(3rem, 6vw, 6.1rem);
      line-height: .92;
    }
    .destination-detail-page .detail-hero p:last-child {
      color: rgba(255,253,245,.78);
      font-size: clamp(1rem, 1.7vw, 1.35rem);
    }
    .destination-detail-shell {
      width: min(1360px, 100%);
      margin: 0 auto;
      padding: clamp(2.8rem, 5vw, 4.8rem) clamp(1.25rem, 5vw, 5rem) clamp(5rem, 9vw, 8rem);
    }
    .destination-detail-page .tabs {
      gap: clamp(1.5rem, 3vw, 2.8rem);
      margin-bottom: clamp(3rem, 6vw, 5rem);
      border-color: rgba(255,255,255,.12);
    }
    .destination-detail-page .tab {
      display: inline-flex;
      align-items: center;
      gap: .55rem;
      padding: 1rem 1.15rem;
      border-bottom-width: 2px;
      color: rgba(255,253,245,.48);
      font-size: .72rem;
      letter-spacing: .09em;
      text-transform: uppercase;
    }
    .destination-detail-page .tab[aria-selected="true"] {
      color: #d9a46f;
      border-color: #d9a46f;
    }
    .destination-detail-page .tab-count {
      display: inline-grid;
      place-items: center;
      min-width: 21px;
      height: 21px;
      padding: 0 .35rem;
      border-radius: 999px;
      color: rgba(255,253,245,.75);
      background: rgba(217,164,111,.2);
      font-size: .62rem;
    }
    .destination-detail-layout {
      display: grid;
      grid-template-columns: minmax(0, 1.75fr) minmax(260px, .75fr);
      gap: clamp(2.2rem, 5vw, 5.5rem);
      align-items: start;
    }
    .destination-main-panel { min-width: 0; }
    .destination-overview-copy { display: grid; gap: clamp(2.7rem, 5vw, 4.4rem); }
    .destination-overview-copy section h2,
    .destination-gallery-head h2 {
      margin: 0;
      color: #fffdf5;
      font-family: var(--display);
      font-size: clamp(2rem, 3.3vw, 3rem);
      font-weight: 500;
      line-height: 1;
    }
    .destination-overview-copy section p {
      max-width: 790px;
      margin: .9rem 0 0;
      color: rgba(255,253,245,.62);
      line-height: 1.75;
    }
    .destination-todo-list {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: .85rem;
      margin: 1.2rem 0 0;
      padding: 0;
      list-style: none;
    }
    .destination-todo-list li {
      position: relative;
      min-height: 62px;
      display: flex;
      align-items: center;
      padding: 1rem 1rem 1rem 2.7rem;
      color: rgba(255,253,245,.88);
      background: #10261a;
    }
    .destination-todo-list li::before {
      content: "✓";
      position: absolute;
      left: 1rem;
      color: #d9a46f;
      font-weight: 800;
    }
    .destination-sidebar { display: grid; gap: 1.15rem; }
    .destination-side-panel {
      padding: clamp(1.35rem, 2.6vw, 2rem);
      background: #10261a;
    }
    .destination-side-panel h2 {
      margin: 0 0 1rem;
      color: #fffdf5;
      font-family: var(--display);
      font-size: 1.55rem;
      font-weight: 500;
    }
    .destination-side-panel p,
    .destination-side-panel li {
      color: rgba(255,253,245,.6);
      font-size: .93rem;
    }
    .destination-side-panel p { margin: 0; }
    .destination-side-panel ul { display: grid; gap: .45rem; margin: 0; padding: 0; list-style: none; }
    .destination-side-panel li::before { content: "•"; margin-right: .4rem; color: #d9a46f; }
    .destination-map-link {
      width: 100%;
      margin-top: 1.15rem;
      border-color: rgba(217,164,111,.65);
      color: #fffdf5;
      background: transparent;
    }
    .destination-gallery-head {
      display: flex;
      justify-content: space-between;
      align-items: end;
      gap: 1rem;
      margin-bottom: 1.25rem;
    }
    .destination-gallery-head .section-label { color: #d9a46f; }
    .destination-gallery-count {
      color: rgba(255,253,245,.44);
      font-size: .72rem;
      font-weight: 700;
      letter-spacing: .08em;
      text-transform: uppercase;
    }
    .destination-gallery-row {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: .8rem;
    }
    .destination-gallery-row img {
      width: 100%;
      aspect-ratio: 4 / 3;
      object-fit: cover;
    }
    @media (max-width: 820px) {
      .destination-detail-layout { grid-template-columns: 1fr; }
      .destination-sidebar { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    }
    @media (max-width: 560px) {
      .destination-detail-page .detail-hero { min-height: 390px; }
      .destination-detail-page .detail-hero-copy { padding-bottom: 2rem; }
      .destination-detail-page .tabs { margin-bottom: 2.5rem; }
      .destination-detail-page .tab { padding-inline: .4rem; }
      .destination-todo-list,
      .destination-sidebar,
      .destination-gallery-row { grid-template-columns: 1fr; }
    }

    /* Experience category cards follow the reference: image-led, two-up,
       and expanded in place before filtering the bookable list. */
    .section-label::before { display: none; }
    .experience-route-shell { max-width: none; padding-top: clamp(3.5rem, 7vw, 6rem); background: #07100d; color: #fffdf5; }
    .experience-route-shell > h2 { color: #fffdf5; }
    .experience-category-grid {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: clamp(1.5rem, 3.6vw, 3.2rem);
      margin-top: 2.4rem;
    }
    .experience-category-card {
      position: relative;
      min-height: clamp(310px, 27vw, 380px);
      overflow: hidden;
      border: 1px solid rgba(229,165,82,.34);
      color: #fffdf5;
      background: #10261a;
      isolation: isolate;
      transition: min-height .38s cubic-bezier(.2,.65,.2,1);
    }
    .experience-category-card.is-open { min-height: clamp(500px, 43vw, 610px); }
    .experience-category-card > img {
      position: absolute;
      inset: 0;
      z-index: -2;
      width: 100%;
      height: 100%;
      object-fit: cover;
      transition: transform .55s cubic-bezier(.2,.65,.2,1);
    }
    .experience-category-card[data-category="Coffee"] > img { object-position: center 58%; }
    .experience-category-card::after {
      content: "";
      position: absolute;
      inset: 0;
      z-index: -1;
      background: linear-gradient(90deg, rgba(3,12,8,.83), rgba(3,12,8,.56)), linear-gradient(180deg, rgba(3,12,8,.18), rgba(3,12,8,.78));
      pointer-events: none;
    }
    .experience-category-card:hover > img { transform: scale(1.025); }
    .experience-category-toggle {
      position: absolute;
      z-index: 1;
      inset: 0;
      width: 100%;
      border: 0;
      color: inherit;
      background: transparent;
      cursor: pointer;
    }
    .experience-category-toggle:focus-visible { outline: 3px solid #fffdf8; outline-offset: -5px; }
    .experience-category-content {
      position: relative;
      z-index: 2;
      display: flex;
      min-height: inherit;
      flex-direction: column;
      padding: clamp(1.6rem, 3vw, 2.7rem);
      pointer-events: none;
    }
    .experience-category-topline { display: flex; align-items: center; gap: 1rem; padding-right: 4.5rem; }
    .experience-category-letter {
      display: grid;
      place-items: center;
      width: 58px;
      height: 58px;
      flex: 0 0 auto;
      color: #18251e;
      background: #d9a46f;
      font-family: var(--display);
      font-size: 1.45rem;
    }
    .experience-category-chip {
      padding: .42rem .75rem;
      border-radius: 999px;
      background: rgba(255,255,255,.13);
      font-size: .7rem;
      font-weight: 800;
      letter-spacing: .08em;
      text-transform: uppercase;
    }
    .experience-category-state {
      position: absolute;
      top: clamp(1.9rem, 3vw, 2.9rem);
      right: clamp(1.6rem, 3vw, 2.7rem);
      color: #e5b27d;
      font-size: .7rem;
      font-weight: 800;
      letter-spacing: .1em;
      text-transform: uppercase;
    }
    .experience-category-card h3 {
      margin: 1.55rem 0 .85rem;
      font-family: var(--display);
      font-size: clamp(2.25rem, 4vw, 3.4rem);
      font-weight: 500;
      line-height: .94;
    }
    .experience-category-card p { margin: 0; color: rgba(255,253,245,.72); }
    .experience-category-details {
      display: grid;
      gap: 1.1rem;
      max-height: 0;
      margin-top: auto;
      padding-top: 0;
      overflow: hidden;
      opacity: 0;
      transform: translateY(12px);
      visibility: hidden;
      pointer-events: none;
      transition: max-height .38s cubic-bezier(.2,.65,.2,1), padding-top .38s cubic-bezier(.2,.65,.2,1), opacity .22s ease, transform .22s ease, visibility .22s ease;
    }
    .experience-category-card.is-open .experience-category-details {
      max-height: 280px;
      padding-top: 1.35rem;
      opacity: 1;
      transform: translateY(0);
      visibility: visible;
      pointer-events: auto;
    }
    .experience-category-list { display: grid; gap: .55rem; margin: 0; padding: 0; list-style: none; }
    .experience-category-list li { color: rgba(255,253,245,.8); font-size: .95rem; }
    .experience-category-list li::before { content: "✓"; margin-right: .75rem; color: #e5a552; font-weight: 800; }
    .experience-category-explore {
      position: relative;
      z-index: 3;
      width: 100%;
      min-height: 52px;
      border: 1px solid #d9a46f;
      color: #17241b;
      background: #d9a46f;
      cursor: pointer;
      font-size: .78rem;
      font-weight: 900;
      letter-spacing: .06em;
      text-transform: uppercase;
      pointer-events: auto;
    }
    .experience-category-explore:hover,
    .experience-category-explore:focus-visible { background: #fff6e9; border-color: #fff6e9; }
    .experience-bookables { margin-top: clamp(5rem, 9vw, 8rem); scroll-margin-top: 96px; }
    .experience-bookables .section-label,
    .experience-bookables > h2 { color: #fffdf5; }
    .experience-page-filter-status {
      display: grid;
      justify-items: center;
      gap: .7rem;
      margin: 1.1rem 0 2.4rem;
      color: rgba(255,253,245,.68);
    }
    .experience-page-filter-status[hidden] { display: none; }
    .experience-page-filter-status strong { display: block; color: #fffdf5; font-family: var(--display); font-size: clamp(2.5rem, 5vw, 4.2rem); font-weight: 500; }
    .experience-page-filter-clear { border: 0; border-bottom: 1px solid currentColor; color: rgba(255,253,245,.58); background: transparent; cursor: pointer; }
    .experience-route-shell .experience-page-grid { background: #07100d; }
    .experience-route-shell .bookable-card,
    .experience-route-shell .journey-card { color: #fffdf5; background: #10261a; }
    .experience-route-shell .bookable-body p,
    .experience-route-shell .bookable-body li,
    .experience-route-shell .journey-card p { color: rgba(255,253,245,.67); }
    .experience-route-shell .bookable-meta { border-top: 0; }
    .experience-route-shell .bookable-actions a { border-color: #d9a46f; color: #fffdf5; }
    .experience-route-shell .bookable-actions a:first-child { color: #17241b; background: #d9a46f; }
    .experience-route-shell .card-link { color: #fffdf5; }
    .experience-route-shell .journey-card { border-top: 0; }
    .bookable-card[hidden],
    .experience-page-empty[hidden] { display: none; }
    .experience-page-empty { grid-column: 1 / -1; padding: 4rem 1rem; text-align: center; color: rgba(255,253,245,.7); }

    @media (max-width: 760px) {
      .experience-category-grid { grid-template-columns: 1fr; gap: 1.1rem; }
      .experience-category-card { min-height: 330px; }
      .experience-category-card.is-open { min-height: 520px; }
      .experience-category-content { padding: 1.35rem; }
      .experience-category-state { top: 1.6rem; right: 1.35rem; }
      .experience-category-topline { padding-right: 3.75rem; }
    }

    @media (prefers-reduced-motion: reduce) {
      .interest-card-body,
      .interest-explore-panel,
      .experience-category-card,
      .experience-category-card > img,
      .experience-category-details { transition: none; }
      .route-cinematic-media img,
      .route-cinematic-media video,
      .route-cinematic-clouds,
      .route-cinematic-foreground,
      .route-cinematic-title,
      .route-cinematic-caption,
      .route-cinematic-hero--waterfall .route-cinematic-stage::after { transform: none; }
    }

    /* Events & festivals: an image-led annual calendar using the district programme photographs. */
    .festival-route-shell { max-width: 1320px; }
    .festival-intro {
      display: grid;
      grid-template-columns: minmax(0, .8fr) minmax(320px, 1.2fr);
      gap: clamp(2rem, 7vw, 7rem);
      align-items: end;
      margin-bottom: clamp(3rem, 7vw, 5.5rem);
    }
    .festival-intro h2 { text-align: left; }
    .festival-intro p { max-width: 680px; margin: 0; color: var(--ink-soft); font-size: clamp(1.05rem, 2vw, 1.3rem); }
    .event-filter-bar {
      display: flex;
      flex-wrap: wrap;
      justify-content: center;
      gap: .55rem;
      margin-bottom: 2rem;
    }
    .event-filter {
      min-height: 42px;
      padding: .6rem .9rem;
      border: 1px solid var(--line);
      border-radius: 99px;
      color: var(--ink);
      background: transparent;
      cursor: pointer;
      font-size: .74rem;
      font-weight: 800;
      letter-spacing: .04em;
    }
    .event-filter[aria-pressed="true"] { color: var(--paper); background: var(--forest); border-color: var(--forest); }
    .event-card-grid {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: clamp(1rem, 2.5vw, 1.8rem);
    }
    .event-card {
      position: relative;
      display: flex;
      min-width: 0;
      min-height: 440px;
      flex-direction: column;
      justify-content: flex-end;
      overflow: hidden;
      border: 1px solid rgba(255, 253, 248, .18);
      border-radius: var(--radius-md);
      color: #fffdf8;
      background: #173f2e;
      box-shadow: 0 16px 42px rgba(18, 38, 27, .18);
      isolation: isolate;
    }
    .event-card[hidden] { display: none; }
    .event-card::before {
      content: "";
      position: absolute;
      inset: 0;
      z-index: -1;
      background: linear-gradient(180deg, rgba(5, 15, 9, .08) 8%, rgba(5, 15, 9, .36) 44%, rgba(5, 15, 9, .94) 100%);
    }
    .event-card--text-only {
      background:
        radial-gradient(circle at 88% 14%, rgba(229, 165, 82, .32) 0 2px, transparent 3px),
        radial-gradient(circle at 76% 28%, rgba(255, 253, 248, .14) 0 1px, transparent 2px),
        repeating-linear-gradient(135deg, transparent 0 19px, rgba(255, 253, 248, .035) 20px 21px),
        linear-gradient(145deg, #496b45, #173f2e 55%, #10271c);
      background-size: 34px 34px, 28px 28px, auto, auto;
    }
    .event-card--text-only::after {
      content: "";
      position: absolute;
      inset: 1.1rem;
      z-index: -1;
      border: 1px solid rgba(255, 253, 248, .16);
      border-radius: calc(var(--radius-md) - 7px);
    }
    .event-card-image {
      position: absolute;
      inset: 0;
      z-index: -2;
      width: 100%;
      height: 100%;
      object-fit: cover;
    }
    .event-card-body {
      display: flex;
      min-height: 440px;
      flex: 1;
      flex-direction: column;
      justify-content: flex-end;
      padding: clamp(1.3rem, 3vw, 1.8rem);
    }
    .event-card-topline { display: flex; align-items: flex-start; justify-content: space-between; gap: .8rem; margin-bottom: auto; }
    .event-card-topline strong { color: #fffdf8; font-size: .78rem; line-height: 1.4; text-shadow: 0 1px 12px rgba(0,0,0,.45); }
    .event-category-pill {
      display: inline-block;
      max-width: 58%;
      padding: .38rem .58rem;
      color: #173226;
      background: rgba(255, 253, 248, .9);
      font-size: .62rem;
      font-weight: 800;
      line-height: 1.3;
      letter-spacing: .045em;
      text-align: right;
      text-transform: uppercase;
    }
    .event-card h3 { margin: 1rem 0 .65rem; color: #fffdf8; font-size: clamp(1.75rem, 2.5vw, 2.25rem); line-height: .98; text-shadow: 0 2px 20px rgba(0,0,0,.5); }
    .event-card-description { margin: 0; color: rgba(255,253,248,.88); font-size: .9rem; line-height: 1.5; }
    .event-card-place { margin: 0; padding-top: 1.1rem; color: #fffdf8; font-size: .78rem; font-weight: 700; }
    .event-card-place span { color: #edb66e; }
    .event-result-count { margin: 1.2rem 0 0; color: var(--ink-soft); text-align: center; font-size: .82rem; }
    .festival-note { max-width: 780px; margin: 3rem auto 0; padding-top: 1.5rem; border-top: 1px solid var(--line); color: var(--ink-soft); text-align: center; font-size: .88rem; }
    .festival-gallery { margin-top: clamp(5rem, 9vw, 8rem); }
    .festival-gallery-head { max-width: 780px; margin: 0 auto 2rem; text-align: center; }
    .festival-gallery-head h2 { margin-top: .35rem; }
    .festival-gallery-head p { color: var(--ink-soft); }
    .festival-photo-grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); grid-auto-rows: 150px; gap: .55rem; }
    .festival-photo-grid figure { margin: 0; overflow: hidden; background: transparent; }
    .festival-photo-grid figure:nth-child(3n + 1) { grid-column: span 2; grid-row: span 2; }
    .festival-photo-grid figure:nth-child(5n) { grid-column: span 2; }
    .festival-photo-grid img { width: 100%; height: 100%; object-fit: cover; }
    @media (max-width: 820px) {
      .festival-intro { grid-template-columns: 1fr; gap: 1.25rem; }
      .festival-intro h2 { text-align: center; }
      .festival-intro p { margin-inline: auto; text-align: center; }
      .event-card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
      .event-card, .event-card-body { min-height: 420px; }
      .festival-photo-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); grid-auto-rows: 135px; }
      .festival-photo-grid figure:nth-child(3n + 1),
      .festival-photo-grid figure:nth-child(5n) { grid-column: span 1; grid-row: span 1; }
      .festival-photo-grid figure:nth-child(4n + 1) { grid-column: span 2; }
    }
    @media (max-width: 480px) {
      .route-cinematic-hero--events .route-cinematic-title h1 { font-size: clamp(2.75rem, 14vw, 4rem); }
      .event-filter-bar { justify-content: flex-start; }
      .event-card-grid { grid-template-columns: 1fr; }
      .event-card, .event-card-body { min-height: 390px; }
      .event-category-pill { max-width: 58%; }
      .festival-photo-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: 150px; }
      .festival-photo-grid figure:nth-child(4n + 1) { grid-column: span 2; }
    }

    /* Telugu glyphs need their full vertical metrics; keep Latin display spacing unchanged. */
    html[lang="te"] h1,
    html[lang="te"] h2,
    html[lang="te"] h3 {
      line-height: 1.24;
      letter-spacing: 0;
    }
    html[lang="te"] .hero-kicker,
    html[lang="te"] .section-label,
    html[lang="te"] .card-kicker,
    html[lang="te"] .listing-eyebrow,
    html[lang="te"] .story-step,
    html[lang="te"] .place-copy > span {
      line-height: 1.55;
      letter-spacing: .04em;
    }
    html[lang="te"] .hero-kicker { margin-bottom: 1rem; }
    html[lang="te"] .reference-heading .section-label { margin-bottom: 1.25rem; }
    html[lang="te"] .page-hero .section-label,
    html[lang="te"] .detail-hero .section-label { margin-bottom: 1rem; }
