/* ═══════════════════════════════════════════════════
   FABXPWORLD — Main Stylesheet
   Organised by component — edit each section independently
═══════════════════════════════════════════════════ */

/* ═══════════════════════════════════════════════════════
   BASE — variables, reset, body, cursor, navbar, mega menu, header, search
═══════════════════════════════════════════════════════ */
*, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }

  :root {
    --teal:        #00C9B1;
    --teal-light:  #4EEBD8;
    --teal-glow:   rgba(0,201,177,0.35);
    --violet:      #7C3AED;
    --violet-mid:  #A855F7;
    --rose:        #F43F8E;
    --sky-blue:    #38BDF8;
    --amber:       #FB923C;
    --green:       #34D399;
  }

  /* ─── DARK THEME (default) ─── */
  [data-theme="dark"] {
    --cream:       #F0F4F8;
    --dark:        #060B14;
    --bg:          #060B14;
    --text-main:   #F0F4F8;
    --nav-bg:      rgba(6,11,20,0.3);
    --nav-border:  rgba(0,201,177,0.15);
    --hero-bg-1:   rgba(124,58,237,.14);
    --hero-bg-2:   rgba(0,201,177,.11);
    --hero-bg-3:   rgba(244,63,142,.07);
    --grid-color:  rgba(0,201,177,.035);
    --sub-color:   rgba(240,244,248,.45);
    --coord-color: rgba(0,201,177,.35);
    --live-color:  rgba(240,244,248,.3);
    --search-bg:   rgba(255,255,255,0.06);
    --search-border: rgba(0,201,177,0.3);
    --search-text: rgba(240,244,248,0.9);
    --search-placeholder: rgba(240,244,248,0.35);
    --search-icon: rgba(0,201,177,0.6);
    --toggle-track: rgba(255,255,255,0.1);
    --toggle-border: rgba(0,201,177,0.4);
  }

  /* ─── LIGHT THEME ─── */
  [data-theme="light"] {
    --cream:       #1a2030;
    --dark:        #f5f7fa;
    --bg:          #eef2f7;
    --text-main:   #1a2030;
    --nav-bg:      rgba(255,255,255,0.55);
    --nav-border:  rgba(0,150,135,0.25);
    --hero-bg-1:   rgba(124,58,237,.07);
    --hero-bg-2:   rgba(0,201,177,.08);
    --hero-bg-3:   rgba(244,63,142,.04);
    --grid-color:  rgba(0,150,135,.06);
    --sub-color:   rgba(30,40,60,.5);
    --coord-color: rgba(0,140,125,.55);
    --live-color:  rgba(30,40,60,.45);
    --search-bg:   rgba(255,255,255,0.7);
    --search-border: rgba(0,150,135,0.4);
    --search-text: rgba(20,30,50,0.9);
    --search-placeholder: rgba(30,50,70,0.35);
    --search-icon: rgba(0,140,125,0.7);
    --toggle-track: rgba(0,0,0,0.08);
    --toggle-border: rgba(0,140,125,0.4);
  }

  /* ════════════════════════════════════════════
     GLOBAL LIGHT THEME — VISIBILITY OVERRIDES
     Fixes all sections where dark rgba colors
     make text invisible on light backgrounds
  ════════════════════════════════════════════ */

  /* ── Sections backgrounds ── */
  [data-theme="light"] .destinations-section,
  [data-theme="light"] .bespoke-section,
  [data-theme="light"] .legacy-section,
  [data-theme="light"] .zoom-section,
  [data-theme="light"] .why-section,
  [data-theme="light"] .contact-section {
    background: #f5f2ee;
  }

  /* ── Universal heading overrides ── */
  [data-theme="light"] h1,
  [data-theme="light"] h2,
  [data-theme="light"] h3,
  [data-theme="light"] h4 {
    color: #1a2040;
  }

  /* ── Eyebrows / labels stay teal ── */
  [data-theme="light"] .legacy-eyebrow,
  [data-theme="light"] .bespoke-eyebrow,
  [data-theme="light"] .zoom-header-eyebrow,
  [data-theme="light"] .why-eyebrow,
  [data-theme="light"] .contact-eyebrow,
  [data-theme="light"] .video-header-eyebrow,
  [data-theme="light"] .testi-eyebrow {
    color: #007a68;
  }

  /* ── Body / description text ── */
  [data-theme="light"] .legacy-intro,
  [data-theme="light"] .legacy-body p,
  [data-theme="light"] .legacy-tagline,
  [data-theme="light"] .contact-tagline {
    color: rgba(30,40,60,.62) !important;
  }

  [data-theme="light"] .item-desc,
  [data-theme="light"] .tl-text,
  [data-theme="light"] .footer-brand-desc,
  [data-theme="light"] .footer-nl-text,
  [data-theme="light"] .nl-strip-left p,
  [data-theme="light"] .footer-bottom-left,
  [data-theme="light"] .cform-heading p,
  [data-theme="light"] .nl-benefits .nl-benefit,
  [data-theme="light"] .card-quote {
    color: rgba(30,40,60,.55) !important;
  }

  /* ── Why section panels ── */
  [data-theme="light"] .why-section {
    background: #f0ece6;
  }
  [data-theme="light"] .wp-bullet {
    color: rgba(30,40,60,.7);
  }
  [data-theme="light"] .wp-num {
    color: rgba(0,140,125,.55);
  }

  /* ── Bespoke section ── */
  [data-theme="light"] .bespoke-section {
    background: #edeae4;
  }
  [data-theme="light"] .bespoke-title {
    color: #1a2040 !important;
  }
  [data-theme="light"] .item-title {
    color: #1a2040 !important;
  }
  [data-theme="light"] .item-desc {
    color: rgba(30,40,60,.6) !important;
  }
  [data-theme="light"] .item-tag {
    color: rgba(0,140,125,.7);
    border-color: rgba(0,140,125,.25);
  }

  /* ── Legacy / Art of Travel ── */
  [data-theme="light"] .legacy-section {
    background: #f8f5f0;
  }
  [data-theme="light"] .legacy-title {
    color: #1a2040 !important;
  }
  [data-theme="light"] .tl-year { color: rgba(0,140,125,.7); }

  /* ── Testimonials ── */
  [data-theme="light"] .testi-featured-quote {
    color: #fff;
  }
  [data-theme="light"] .testi-title { color: #fff; }
  [data-theme="light"] .tfa-name { color: rgba(255,255,255,.85); }
  [data-theme="light"] .trust-num { color: #fff; }
  [data-theme="light"] .trust-label { color: rgba(255,255,255,.55); }

  /* ── Zoom section ── */
  [data-theme="light"] .zoom-section {
    background: #ede9e2;
  }
  [data-theme="light"] .zoom-header-title { color: #1a2040 !important; }

  /* ── Contact section ── */
  [data-theme="light"] .contact-section {
    background: #f5f2ee;
  }
  [data-theme="light"] .contact-title { color: #1a2040 !important; }
  [data-theme="light"] .ctab { color: rgba(30,40,60,.5) !important; }
  [data-theme="light"] .ctab.active { color: #007a68 !important; }
  [data-theme="light"] .cform-heading h3 { color: #1a2040 !important; }
  [data-theme="light"] .cfield label { color: rgba(30,40,60,.55) !important; }
  [data-theme="light"] .cfield input,
  [data-theme="light"] .cfield select,
  [data-theme="light"] .cfield textarea {
    background: rgba(255,255,255,.85) !important;
    border-color: rgba(0,0,0,.14) !important;
    color: #1a2040 !important;
  }
  [data-theme="light"] .cfield input::placeholder,
  [data-theme="light"] .cfield textarea::placeholder {
    color: rgba(30,40,60,.3) !important;
  }
  [data-theme="light"] .dtag {
    background: rgba(255,255,255,.8);
    border-color: rgba(0,0,0,.12);
    color: rgba(30,40,60,.55);
  }
  [data-theme="light"] .dtag.selected {
    background: rgba(0,150,135,.1);
    border-color: rgba(0,150,135,.4);
    color: #007a68;
  }
  [data-theme="light"] .ccheck span {
    color: rgba(30,40,60,.55) !important;
  }
  [data-theme="light"] .freq-chip {
    border-color: rgba(0,0,0,.12);
    color: rgba(30,40,60,.5);
  }
  [data-theme="light"] .freq-chip.selected {
    background: rgba(0,150,135,.1);
    border-color: rgba(0,150,135,.4);
    color: #007a68;
  }
  [data-theme="light"] .info-card {
    background: rgba(255,255,255,.75);
    border-color: rgba(0,0,0,.1);
    box-shadow: 0 2px 14px rgba(0,0,0,.06);
  }
  [data-theme="light"] .info-text strong { color: rgba(30,40,60,.7) !important; }
  [data-theme="light"] .info-text span { color: rgba(30,40,60,.55) !important; }
  [data-theme="light"] .social-pill {
    background: rgba(255,255,255,.75);
    border-color: rgba(0,0,0,.1);
    color: rgba(30,40,60,.55);
  }
  [data-theme="light"] .nl-strip-left h3 { color: #1a2040 !important; }
  [data-theme="light"] .nl-strip-left p { color: rgba(30,40,60,.5) !important; }
  [data-theme="light"] .nl-strip-input {
    background: rgba(255,255,255,.85);
    border-color: rgba(0,0,0,.14);
    color: #1a2040;
  }

  /* ── Footer ── */
  [data-theme="light"] .site-footer {
    background: #e8e4de;
  }
  [data-theme="light"] .footer-grid {
    background-image:
      linear-gradient(rgba(0,140,125,.04) 1px, transparent 1px),
      linear-gradient(90deg, rgba(0,140,125,.04) 1px, transparent 1px);
  }
  [data-theme="light"] .footer-brand-desc,
  [data-theme="light"] .footer-nl-text {
    color: rgba(30,40,60,.5) !important;
  }
  [data-theme="light"] .footer-nav-heading { color: rgba(30,40,60,.45); }
  [data-theme="light"] .footer-nav-list a { color: rgba(30,40,60,.45); }
  [data-theme="light"] .footer-nav-list a:hover { color: #007a68; }
  [data-theme="light"] .footer-bg-text {
    -webkit-text-stroke: 1px rgba(0,140,125,.06);
  }
  [data-theme="light"] .footer-wordmark-text {
    background: linear-gradient(135deg,
      rgba(0,140,125,.2) 0%,
      rgba(0,140,125,.55) 30%,
      rgba(0,120,200,.4) 55%,
      rgba(100,40,180,.3) 75%,
      rgba(0,140,125,.15) 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    background-size: 300% 100%;
  }
  [data-theme="light"] .footer-bottom-left { color: rgba(30,40,60,.35); }
  [data-theme="light"] .footer-bottom-left a { color: rgba(0,140,125,.55); }
  [data-theme="light"] .footer-bottom-links a { color: rgba(30,40,60,.35); }
  [data-theme="light"] .footer-mid-coords .fcoord { color: rgba(0,140,125,.4); }
  [data-theme="light"] .footer-nl-input {
    background: rgba(255,255,255,.8);
    border-color: rgba(0,0,0,.14);
    color: #1a2040;
  }
  [data-theme="light"] .fsoc {
    background: rgba(255,255,255,.6);
    border-color: rgba(0,0,0,.1);
  }

  /* ── Gallery section ── */
  [data-theme="light"] .gallery-section {
    background: #f0ede8;
  }

  /* ── Destinations filter pills ── */
  [data-theme="light"] .filter-pill {
    color: rgba(30,40,60,.5);
    border-color: rgba(0,0,0,.12);
    background: rgba(255,255,255,.6);
  }
  [data-theme="light"] .filter-pill.active {
    background: rgba(0,150,135,.12);
    border-color: rgba(0,150,135,.4);
    color: #007a68;
  }

  /* ── Bespoke stat cards ── */
  [data-theme="light"] .bespoke-stat {
    background: rgba(255,255,255,.7);
    border-color: rgba(0,140,125,.15);
    box-shadow: 0 4px 20px rgba(0,0,0,.06);
  }
  [data-theme="light"] .wab-text strong { color: #1a2040 !important; }
  [data-theme="light"] .wab-text span { color: rgba(30,40,60,.5) !important; }

  html { scroll-behavior: smooth; }

  body {
    font-family: 'DM Sans', sans-serif;
    background: var(--bg);
    color: var(--text-main);
    cursor: none;
    overflow-x: hidden;
    transition: background 0.5s ease, color 0.5s ease;
  }

  /* ─── CURSOR ─── */
  /* ── Plane cursor ── */
  #cursor-plane {
    position: fixed;
    pointer-events: none;
    z-index: 9999;
    will-change: transform;
    top: 0; left: 0;
    transform-origin: center center;
    transition: filter .2s;
  }
  #contrailCanvas {
    position: fixed; inset: 0;
    pointer-events: none;
    z-index: 9996;
    will-change: contents;
  }

  /* ─── NAVBAR ─── */
  nav {
    position: fixed;
    top: 14px; left: 50%;
    transform: translateX(-50%);
    z-index: 1000;
    width: calc(100% - 72px);
    max-width: 1280px;
    padding: 0 34px;
    height: 62px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: var(--nav-bg);
    backdrop-filter: blur(28px) saturate(200%);
    -webkit-backdrop-filter: blur(28px) saturate(200%);
    border: 1px solid var(--nav-border);
    border-radius: 18px;
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,0.06),
      inset 0 -1px 0 rgba(0,201,177,0.06),
      0 8px 32px rgba(0,0,0,0.5),
      0 0 50px rgba(0,201,177,0.04);
    animation: navReveal 1s cubic-bezier(0.16,1,0.3,1) both;
    transition: background 0.5s ease, border-color 0.5s ease;
  }
  nav::before {
    content:'';
    position:absolute; inset:0;
    border-radius:18px;
    background: linear-gradient(115deg, rgba(0,201,177,0.04) 0%, transparent 45%, rgba(124,58,237,0.04) 100%);
    animation: navShimmer 7s ease-in-out infinite;
  }
  @keyframes navShimmer { 0%,100%{opacity:.4} 50%{opacity:1} }
  @keyframes navReveal {
    from { transform:translateX(-50%) translateY(-28px); opacity:0; }
    to   { transform:translateX(-50%) translateY(0);     opacity:1; }
  }

  .nav-logo {
    font-family: 'Playfair Display', serif;
    font-size: 21px; font-weight: 700;
    letter-spacing: 0.07em; text-transform: uppercase;
    color: var(--teal);
  }
  .nav-logo span { color:var(--text-main); font-style:italic; font-weight:400; transition: color 0.5s; }

  .nav-links { display:flex; gap:34px; list-style:none; overflow: visible; }
  .nav-links a {
    font-size:12px; font-weight:400;
    letter-spacing:0.14em; text-transform:uppercase;
    color:rgba(240,244,248,.55);
    text-decoration:none; position:relative;
    transition:color .3s;
  }
  [data-theme="light"] .nav-links a { color: rgba(30,40,60,.55); }
  .nav-links a::after {
    content:''; position:absolute;
    bottom:-4px; left:50%;
    width:0; height:1px;
    background:linear-gradient(90deg,var(--teal),var(--violet-mid));
    transition:width .4s cubic-bezier(.16,1,.3,1), left .4s cubic-bezier(.16,1,.3,1);
  }
  .nav-links a:hover { color:var(--teal-light); }
  .nav-links a:hover::after { width:100%; left:0; }

  /* ─── NAV RIGHT: toggle + cta ─── */
  .nav-right {
    display: flex;
    align-items: center;
    gap: 14px;
  }

  /* ─── THEME TOGGLE ─── */
  .theme-toggle {
    position: relative;
    width: 56px; height: 28px;
    cursor: none;
    flex-shrink: 0;
  }
  .theme-toggle input {
    opacity: 0; width: 0; height: 0; position: absolute;
  }
  .toggle-track {
    position: absolute; inset: 0;
    border-radius: 100px;
    background: var(--toggle-track);
    border: 1px solid var(--toggle-border);
    transition: background 0.4s, border-color 0.4s;
    overflow: hidden;
  }
  .toggle-track::before {
    /* gradient fill when dark */
    content: '';
    position: absolute; inset: 0;
    background: linear-gradient(135deg, rgba(0,201,177,0.25), rgba(124,58,237,0.2));
    opacity: 1;
    transition: opacity 0.4s;
  }
  [data-theme="light"] .toggle-track::before { opacity: 0; }

  .toggle-thumb {
    position: absolute;
    top: 3px; left: 3px;
    width: 20px; height: 20px;
    border-radius: 50%;
    background: linear-gradient(135deg, #ffd700, #ffaa00);
    box-shadow: 0 0 8px rgba(255,180,0,0.5);
    transition: transform 0.4s cubic-bezier(.16,1,.3,1), background 0.4s, box-shadow 0.4s;
    display: flex; align-items: center; justify-content: center;
    font-size: 11px;
  }
  [data-theme="dark"] .toggle-thumb {
    transform: translateX(28px);
    background: linear-gradient(135deg, #c0e8ff, #8ab8dc);
    box-shadow: 0 0 10px rgba(130,200,255,0.6);
  }

  .toggle-icons {
    position: absolute; inset: 0;
    display: flex; align-items: center;
    justify-content: space-between;
    padding: 0 6px;
    pointer-events: none;
  }
  .toggle-icons span {
    font-size: 10px;
    transition: opacity 0.3s;
  }
  .icon-sun { opacity: 1; }
  .icon-moon { opacity: 1; }
  [data-theme="dark"] .icon-sun { opacity: 0.3; }
  [data-theme="light"] .icon-moon { opacity: 0.3; }

  /* ─── NAV CTA PILL ─── */
  .nav-cta {
    position:relative;
    font-family:'DM Sans',sans-serif;
    font-size:11px; font-weight:500;
    letter-spacing:.18em; text-transform:uppercase;
    color:var(--dark);
    background:linear-gradient(135deg,var(--teal),var(--teal-light));
    border:none; padding:10px 22px;
    border-radius:100px; cursor:none; overflow:hidden;
    transition:transform .2s, box-shadow .3s, color 0.4s;
    box-shadow:0 0 18px rgba(0,201,177,0.35);
  }
  [data-theme="light"] .nav-cta { color: #060B14; }
  .nav-cta::after {
    content:'';
    position:absolute; top:0; left:-60px;
    width:40px; height:100%;
    background:rgba(255,255,255,.3);
    transform:skewX(-20deg);
    transition:left .5s cubic-bezier(.16,1,.3,1);
  }
  .nav-cta:hover { transform:translateY(-2px); box-shadow:0 0 30px rgba(0,201,177,.55); }
  .nav-cta:hover::after { left:130%; }

  /* ════════════════════════════════════
     MEGA MENU SYSTEM
  ════════════════════════════════════ */

  /* ── Trigger item ── */
  .has-mega { position: static; overflow: visible; }
  .nav-link-trigger {
    display: flex; align-items: center; gap: 5px;
    font-size:12px; font-weight:400;
    letter-spacing:0.14em; text-transform:uppercase;
    color:rgba(240,244,248,.55);
    text-decoration:none; cursor: none;
    transition: color .3s;
    position: relative;
  }
  [data-theme="light"] .nav-link-trigger { color: rgba(30,40,60,.55); }
  .nav-link-trigger::after {
    content:''; position:absolute;
    bottom:-4px; left:50%;
    width:0; height:1px;
    background:linear-gradient(90deg,var(--teal),var(--violet-mid));
    transition:width .4s cubic-bezier(.16,1,.3,1), left .4s cubic-bezier(.16,1,.3,1);
  }
  .has-mega.open .nav-link-trigger,
  .nav-link-trigger:hover { color:var(--teal-light); }
  [data-theme="light"] .has-mega.open .nav-link-trigger,
  [data-theme="light"] .nav-link-trigger:hover { color: #007a68; }
  .has-mega.open .nav-link-trigger::after { width:100%; left:0; }

  .nav-chevron {
    font-size: 9px; display: inline-block;
    transition: transform .35s cubic-bezier(.16,1,.3,1), color .3s;
    opacity: .5;
  }
  .has-mega.open .nav-chevron { transform: rotate(180deg); opacity: 1; color: var(--teal); }

  /* ── Mega backdrop ── */
  .mega-backdrop {
    position: fixed; inset: 0; z-index: 997;
    pointer-events: none; opacity: 0;
    background: rgba(0,0,0,.45);
    backdrop-filter: blur(3px);
    transition: opacity .4s;
    top: 90px; /* don't cover the nav pill */
  }
  .mega-backdrop.active { opacity: 1; pointer-events: auto; }

  /* ── Mega menu panel ── */
  .mega-menu {
    position: fixed;
    top: 84px; left: 50%;
    transform: translateX(-50%) translateY(-14px);
    width: calc(100% - 72px);
    max-width: 1280px;
    z-index: 999;
    pointer-events: none;
    opacity: 0;
    transition: opacity .38s cubic-bezier(.16,1,.3,1), transform .38s cubic-bezier(.16,1,.3,1);
  }
  .mega-menu.open {
    opacity: 1;
    transform: translateX(-50%) translateY(0);
    pointer-events: auto;
  }
  .mega-narrow {
    max-width: 720px;
  }

  .mega-inner {
    margin: 0 auto;
    max-width: 1280px;
    display: flex;
    gap: 0;
    background: rgba(6,10,20,.96);
    backdrop-filter: blur(32px) saturate(160%);
    border: 1px solid rgba(0,201,177,.12);
    border-top: 2px solid rgba(0,201,177,.4);
    margin-top: 6px;
    border-radius: 16px;
    box-shadow: 0 32px 80px rgba(0,0,0,.6), 0 0 0 1px rgba(255,255,255,.04);
    overflow: hidden;
    padding: 0;
  }
  [data-theme="light"] .mega-inner {
    background: rgba(255,255,255,.97);
    border-color: rgba(0,150,135,.18);
    border-top-color: rgba(0,150,135,.45);
    box-shadow: 0 24px 64px rgba(0,0,0,.18);
  }
  .mega-narrow .mega-inner { border-radius: 14px; }

  /* ── Columns ── */
  .mega-col {
    flex: 1;
    padding: 28px 28px 32px;
    border-right: 1px solid rgba(255,255,255,.05);
    min-width: 0;
  }
  [data-theme="light"] .mega-col { border-right-color: rgba(0,0,0,.07); }
  .mega-col:last-child { border-right: none; }
  .mega-col-wide { flex: 1.4; }

  .mega-col-label {
    font-size: 9px; font-weight: 600;
    letter-spacing: .35em; text-transform: uppercase;
    color: rgba(0,201,177,.55);
    margin-bottom: 16px;
    padding-bottom: 10px;
    border-bottom: 1px solid rgba(255,255,255,.05);
  }
  [data-theme="light"] .mega-col-label {
    color: rgba(0,140,125,.7);
    border-bottom-color: rgba(0,0,0,.07);
  }

  /* ── Featured image cards ── */
  .mega-featured { flex: 1.5; }
  .mega-cards { display: flex; gap: 10px; }
  .mega-card {
    flex: 1; height: 150px; border-radius: 12px;
    overflow: hidden; position: relative;
    text-decoration: none; display: block;
    background-image: var(--mc-bg);
    background-size: cover; background-position: center;
    transition: transform .4s cubic-bezier(.16,1,.3,1);
  }
  .mega-card:hover { transform: scale(1.04); }
  .mc-overlay {
    position: absolute; inset: 0;
    background: linear-gradient(to bottom, transparent 30%, rgba(0,0,0,.75));
  }
  .mc-body {
    position: absolute; bottom: 10px; left: 12px;
    display: flex; flex-direction: column; gap: 2px;
  }
  .mc-region {
    font-size: 8px; letter-spacing: .25em; text-transform: uppercase;
    color: var(--teal); font-weight: 500;
  }
  .mc-name {
    font-family: 'Playfair Display', serif;
    font-size: 14px; font-weight: 700; color: #fff;
    letter-spacing: -.01em;
  }

  /* ── List items ── */
  .mega-list { list-style: none; display: flex; flex-direction: column; gap: 3px; }
  .mega-list a {
    display: flex; align-items: center; gap: 12px;
    padding: 9px 10px; border-radius: 10px;
    text-decoration: none;
    transition: background .25s, padding-left .25s;
    cursor: none;
  }
  .mega-list a:hover {
    background: rgba(0,201,177,.07);
    padding-left: 14px;
  }
  [data-theme="light"] .mega-list a:hover { background: rgba(0,150,135,.08); }

  .ml-icon { font-size: 18px; flex-shrink: 0; width: 28px; text-align: center; }
  .ml-text { display: flex; flex-direction: column; gap: 1px; }
  .ml-text strong {
    font-size: 13px; font-weight: 500; color: rgba(240,244,248,.8);
    letter-spacing: .01em;
  }
  [data-theme="light"] .ml-text strong { color: rgba(20,30,60,.75); }
  .ml-text em {
    font-style: normal; font-size: 11px; font-weight: 300;
    color: rgba(240,244,248,.3); letter-spacing: .01em;
  }
  [data-theme="light"] .ml-text em { color: rgba(30,40,60,.4); }

  /* Compact list (no icons, no sub-text) */
  .mega-list.compact a {
    font-size: 13px; font-weight: 300;
    color: rgba(240,244,248,.45); letter-spacing: .01em;
    padding: 7px 10px;
  }
  [data-theme="light"] .mega-list.compact a { color: rgba(30,40,60,.5); }
  .mega-list.compact a:hover { color: var(--teal); }
  [data-theme="light"] .mega-list.compact a:hover { color: #007a68; }

  /* ── CTA column ── */
  .mega-cta-col { background: rgba(0,201,177,.04); }
  [data-theme="light"] .mega-cta-col { background: rgba(0,150,135,.04); }
  .mega-cta-text {
    font-size: 13px; font-weight: 300; line-height: 1.65;
    color: rgba(240,244,248,.4); margin-bottom: 18px; letter-spacing: .01em;
  }
  [data-theme="light"] .mega-cta-text { color: rgba(30,40,60,.5); }
  .mega-btn {
    display: inline-flex; align-items: center; gap: 6px;
    font-size: 10px; font-weight: 600;
    letter-spacing: .22em; text-transform: uppercase;
    padding: 12px 22px; border-radius: 100px;
    background: linear-gradient(135deg, #00C9B1, #4EEBD8);
    color: #060B14; text-decoration: none; cursor: none;
    box-shadow: 0 4px 16px rgba(0,201,177,.3);
    transition: transform .25s cubic-bezier(.16,1,.3,1), box-shadow .3s;
    margin-bottom: 24px; display: block; text-align: center;
  }
  .mega-btn:hover { transform: translateY(-2px); box-shadow: 0 6px 24px rgba(0,201,177,.5); }

  .mega-stat-row { display: flex; gap: 16px; }
  .mega-stat { text-align: center; flex: 1; }
  .mega-stat span {
    display: block;
    font-family: 'Playfair Display', serif;
    font-size: 22px; font-weight: 700; letter-spacing: -.03em;
    background: linear-gradient(135deg, var(--teal), #38BDF8);
    -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
    margin-bottom: 3px;
  }
  .mega-stat {
    font-size: 9px; letter-spacing: .2em; text-transform: uppercase;
    color: rgba(240,244,248,.3);
  }
  [data-theme="light"] .mega-stat { color: rgba(30,40,60,.4); }

  /* ── Featured experience card ── */
  .mega-exp-feature {
    display: block; height: 280px; border-radius: 14px;
    overflow: hidden; position: relative; text-decoration: none;
    background-size: cover; background-position: center;
    transition: transform .45s cubic-bezier(.16,1,.3,1);
  }
  .mega-exp-feature:hover { transform: scale(1.02); }
  .mef-body {
    position: absolute; bottom: 0; left: 0; right: 0;
    padding: 20px 20px 22px;
    background: linear-gradient(to top, rgba(0,0,0,.85) 0%, transparent 100%);
    display: flex; flex-direction: column; gap: 5px;
  }
  .mef-tag {
    font-size: 9px; letter-spacing: .22em; text-transform: uppercase;
    color: var(--teal); font-weight: 500;
  }
  .mef-title {
    font-family: 'Playfair Display', serif;
    font-size: 22px; font-weight: 700; color: #fff;
    letter-spacing: -.02em; line-height: 1.05;
  }
  .mef-desc {
    font-size: 11px; font-weight: 300; line-height: 1.6;
    color: rgba(255,255,255,.55); letter-spacing: .01em;
  }
  .mef-cta {
    font-size: 10px; letter-spacing: .2em; text-transform: uppercase;
    color: var(--teal); font-weight: 500; margin-top: 4px;
  }

  /* ── Award card ── */
  .mega-award-card {
    display: flex; align-items: flex-start; gap: 12px;
    padding: 16px; border-radius: 12px;
    background: rgba(251,146,60,.07);
    border: 1px solid rgba(251,146,60,.18);
    margin-bottom: 20px;
  }
  [data-theme="light"] .mega-award-card {
    background: rgba(251,146,60,.07);
  }
  .mac-icon { font-size: 24px; flex-shrink: 0; }
  .mac-text { display: flex; flex-direction: column; gap: 2px; }
  .mac-text strong {
    font-size: 13px; font-weight: 600; color: rgba(240,244,248,.85);
    letter-spacing: .01em;
  }
  [data-theme="light"] .mac-text strong { color: rgba(30,40,60,.8); }
  .mac-text span {
    font-size: 11px; font-weight: 300; color: rgba(240,244,248,.4);
  }
  [data-theme="light"] .mac-text span { color: rgba(30,40,60,.5); }
  .mac-text em {
    font-style: normal; font-size: 10px; letter-spacing: .18em;
    text-transform: uppercase; color: rgba(251,146,60,.7);
    font-weight: 500;
  }

  /* ─── HEADER ─── */
  header {
    position:relative;
    width:100%; height:100vh;
    display:flex; align-items:center; justify-content:center;
    overflow:hidden;
    background:
      radial-gradient(ellipse 65% 50% at 18% 55%, var(--hero-bg-1) 0%, transparent 70%),
      radial-gradient(ellipse 55% 40% at 82% 30%, var(--hero-bg-2) 0%, transparent 70%),
      radial-gradient(ellipse 45% 55% at 50% 85%, var(--hero-bg-3) 0%, transparent 70%),
      var(--bg);
    transition: background 0.5s ease;
  }

  /* Aurora */
  .aurora { position:absolute; inset:0; pointer-events:none; overflow:hidden; }
  .aurora-band {
    position:absolute; border-radius:50%;
    filter:blur(90px); opacity:0;
    animation:auroraFloat 12s ease-in-out infinite;
  }
  .aurora-band:nth-child(1) {
    width:680px;height:200px;
    background:linear-gradient(90deg,rgba(0,201,177,.14),rgba(124,58,237,.1));
    top:18%;left:-8%; animation-delay:0s;
  }
  .aurora-band:nth-child(2) {
    width:520px;height:170px;
    background:linear-gradient(90deg,rgba(244,63,142,.1),rgba(56,189,248,.12));
    top:55%;right:-4%; animation-delay:-5s;
  }
  .aurora-band:nth-child(3) {
    width:750px;height:140px;
    background:linear-gradient(90deg,rgba(124,58,237,.08),rgba(0,201,177,.12));
    bottom:18%;left:8%; animation-delay:-9s;
  }
  [data-theme="light"] .aurora-band:nth-child(1) { opacity: 0.4; }
  @keyframes auroraFloat {
    0%,100% { opacity:.5; transform:translateX(0) translateY(0) rotate(-2deg); }
    33%      { opacity:1;  transform:translateX(50px) translateY(-25px) rotate(1.5deg); }
    66%      { opacity:.7; transform:translateX(-25px) translateY(18px) rotate(-1deg); }
  }

  /* Grid */
  .grid-lines {
    position:absolute; inset:0; pointer-events:none;
    background-image:
      linear-gradient(var(--grid-color) 1px,transparent 1px),
      linear-gradient(90deg,var(--grid-color) 1px,transparent 1px);
    background-size:80px 80px;
    mask-image:radial-gradient(ellipse 75% 75% at 50% 50%,black,transparent);
    transition: background-image 0.5s;
  }

  /* Stars */
  .stars { position:absolute; inset:0; pointer-events:none; }
  .star {
    position:absolute; border-radius:50%; background:white;
    animation:starPulse var(--dur,3s) ease-in-out infinite;
    animation-delay:var(--del,0s);
  }
  [data-theme="light"] .star { background: rgba(0,80,70,0.5); }
  @keyframes starPulse {
    0%,100%{opacity:.15;transform:scale(1)}
    50%    {opacity:.8;transform:scale(1.5)}
  }

  /* Destination words */
  .dest-layer { position:absolute; inset:0; pointer-events:none; }
  .dest-word {
    position:absolute;
    font-family:'Playfair Display',serif;
    font-weight:700;
    color:transparent;
    white-space:nowrap; user-select:none;
    transition:transform .6s cubic-bezier(.16,1,.3,1), opacity .4s, color .35s, -webkit-text-stroke .35s, filter .35s, text-shadow .35s;
    will-change:transform;
    opacity:.85;
  }
  .dest-word.lit { filter:none; }

  /* Hero content */
  .hero-content {
    position:relative; z-index:10; text-align:center;
    animation:heroReveal 1.4s .3s cubic-bezier(.16,1,.3,1) both;
  }
  @keyframes heroReveal {
    from{opacity:0;transform:translateY(50px)}
    to  {opacity:1;transform:translateY(0)}
  }

  .hero-eyebrow {
    font-size:10px; font-weight:400;
    letter-spacing:.5em; text-transform:uppercase;
    color:var(--teal); margin-bottom:20px;
    display:flex; align-items:center; justify-content:center; gap:14px;
  }
  .hero-eyebrow::before,.hero-eyebrow::after {
    content:''; width:36px; height:1px;
    background:linear-gradient(90deg,transparent,var(--teal));
    opacity:.6;
  }
  .hero-eyebrow::after { background:linear-gradient(90deg,var(--teal),transparent); }

  .hero-title {
    font-family:'Playfair Display',serif;
    font-size:clamp(62px,8.5vw,122px);
    font-weight:700; line-height:.92; letter-spacing:-.02em; margin-bottom:12px;
    color: var(--text-main);
    transition: color 0.5s;
  }
  .hero-title em {
    font-style:italic; font-weight:400;
    background:linear-gradient(135deg,var(--teal) 0%,var(--sky-blue) 50%,var(--violet-mid) 100%);
    -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text;
  }

  .hero-sub {
    font-family:'Cormorant Garamond',serif;
    font-size:clamp(17px,2.2vw,26px); font-weight:300;
    color:var(--sub-color); letter-spacing:.07em; margin-bottom:52px;
    transition: color 0.5s;
  }

  .hero-actions { display:flex; gap:16px; justify-content:center; align-items:center; }

  /* ─── SEARCH BOX ─── */
  .search-wrap {
    position: relative;
    width: 480px;
    max-width: 90vw;
    animation: searchReveal 1.6s .5s cubic-bezier(.16,1,.3,1) both;
  }
  @keyframes searchReveal {
    from { opacity:0; transform:translateY(20px) scale(0.97); }
    to   { opacity:1; transform:translateY(0) scale(1); }
  }

  .search-box {
    position: relative;
    display: flex;
    align-items: center;
    background: var(--search-bg);
    border: 1.5px solid var(--search-border);
    border-radius: 100px;
    padding: 0 18px 0 22px;
    height: 58px;
    backdrop-filter: blur(20px) saturate(160%);
    -webkit-backdrop-filter: blur(20px) saturate(160%);
    box-shadow:
      0 0 0 0 rgba(0,201,177,0),
      0 8px 32px rgba(0,0,0,0.25),
      inset 0 1px 0 rgba(255,255,255,0.08);
    transition: border-color 0.3s, box-shadow 0.3s, background 0.4s;
    overflow: hidden;
  }
  .search-box::before {
    content: '';
    position: absolute; inset: 0;
    border-radius: 100px;
    background: linear-gradient(135deg, rgba(0,201,177,0.06), rgba(124,58,237,0.04));
    pointer-events: none;
    opacity: 0;
    transition: opacity 0.3s;
  }
  .search-box:focus-within {
    border-color: var(--teal);
    box-shadow:
      0 0 0 4px rgba(0,201,177,0.12),
      0 8px 40px rgba(0,0,0,0.3),
      inset 0 1px 0 rgba(255,255,255,0.1);
  }
  .search-box:focus-within::before { opacity: 1; }

  .search-icon {
    color: var(--search-icon);
    font-size: 17px;
    flex-shrink: 0;
    margin-right: 12px;
    transition: color 0.3s, transform 0.3s;
  }
  .search-box:focus-within .search-icon {
    color: var(--teal);
    transform: scale(1.1);
  }

  .search-input {
    flex: 1;
    background: transparent;
    border: none;
    outline: none;
    font-family: 'DM Sans', sans-serif;
    font-size: 14px;
    font-weight: 400;
    color: var(--search-text);
    letter-spacing: 0.03em;
    cursor: none;
  }
  .search-input::placeholder {
    color: var(--search-placeholder);
    font-style: italic;
    letter-spacing: 0.05em;
  }

  .search-divider {
    width: 1px; height: 22px;
    background: var(--search-border);
    margin: 0 14px;
    flex-shrink: 0;
    transition: background 0.3s;
  }

  .search-btn {
    flex-shrink: 0;
    background: linear-gradient(135deg, var(--teal), var(--teal-light));
    border: none;
    border-radius: 100px;
    padding: 9px 20px;
    font-family: 'DM Sans', sans-serif;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: #060B14;
    cursor: none;
    position: relative;
    overflow: hidden;
    transition: transform 0.2s, box-shadow 0.3s;
    box-shadow: 0 0 14px rgba(0,201,177,0.35);
  }
  .search-btn::before {
    content: '';
    position: absolute; top: 0; left: -50px;
    width: 35px; height: 100%;
    background: rgba(255,255,255,0.35);
    transform: skewX(-20deg);
    transition: left 0.45s cubic-bezier(.16,1,.3,1);
  }
  .search-btn:hover { transform: scale(1.04); box-shadow: 0 0 24px rgba(0,201,177,0.55); }
  .search-btn:hover::before { left: 120%; }

  /* Floating search suggestions hint */
  .search-hint {
    position: absolute;
    top: calc(100% + 10px);
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    justify-content: center;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.3s;
  }
  .search-box:focus-within ~ .search-hint { opacity: 1; pointer-events: auto; }
  .search-chip {
    font-size: 10px;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    padding: 5px 14px;
    border-radius: 100px;
    background: rgba(0,201,177,0.08);
    border: 1px solid rgba(0,201,177,0.2);
    color: var(--teal);
    cursor: none;
    transition: background 0.2s, border-color 0.2s, transform 0.2s;
    white-space: nowrap;
  }
  .search-chip:hover {
    background: rgba(0,201,177,0.16);
    border-color: rgba(0,201,177,0.5);
    transform: translateY(-2px);
  }

  /* Scroll hint */
  .scroll-hint {
    position:absolute; bottom:34px; left:50%;
    transform:translateX(-50%);
    display:flex; flex-direction:column; align-items:center; gap:7px;
    animation:scrollBounce 2.5s ease-in-out infinite;
  }
  .scroll-hint span {
    font-size:9px; letter-spacing:.4em; text-transform:uppercase;
    color:rgba(0,201,177,.35);
  }
  .scroll-dot {
    width:6px;height:6px;border-radius:50%;
    background:var(--teal); opacity:.4;
    animation:dotPulse 2s ease-in-out infinite;
  }
  .scroll-line { width:1px;height:34px; background:linear-gradient(to bottom,var(--teal),transparent); opacity:.28; }
  @keyframes scrollBounce {
    0%,100%{transform:translateX(-50%) translateY(0)}
    50%    {transform:translateX(-50%) translateY(8px)}
  }
  @keyframes dotPulse {
    0%,100%{transform:scale(1);opacity:.4}
    50%    {transform:scale(1.7);opacity:.9}
  }

  /* Coords */
  .coords {
    position:absolute; bottom:38px; right:46px;
    font-size:10px; font-weight:300; letter-spacing:.12em;
    color:var(--coord-color); font-family:'DM Sans',sans-serif;
    transition:opacity .8s, color 0.5s;
    animation:heroReveal 2s 1s both;
  }

  /* Live badge */
  .live-badge {
    position:absolute; top:98px; right:46px;
    display:flex; align-items:center; gap:8px;
    font-size:10px; letter-spacing:.15em; text-transform:uppercase;
    color:var(--live-color);
    animation:heroReveal 2s .8s both;
    transition: color 0.5s;
  }
  .live-dot {
    width:6px;height:6px;border-radius:50%;
    background:var(--teal); box-shadow:0 0 8px var(--teal);
    animation:livePulse 1.6s ease-in-out infinite;
  }
  @keyframes livePulse {
    0%,100%{box-shadow:0 0 6px var(--teal);transform:scale(1)}
    50%    {box-shadow:0 0 16px var(--teal);transform:scale(1.4)}
  }

/* ═══════════════════════════════════════════════════════
   FEATURED DESTINATIONS
═══════════════════════════════════════════════════════ */
/* ── Section shell ── */
.destinations-section {
  position: relative;
  background: #030810;
  padding: 0;
  overflow: hidden;
}
[data-theme="light"] .destinations-section {
  background: #0d1520;
}

/* Film grain overlay */
.destinations-section::before {
  content: '';
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 200;
  opacity: .028;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");
  background-size: 200px 200px;
  mix-blend-mode: overlay;
  animation: grainShift 0.08s steps(1) infinite;
}
@keyframes grainShift {
  0%   { background-position: 0 0; }
  25%  { background-position: -40px 20px; }
  50%  { background-position: 30px -15px; }
  75%  { background-position: -20px -30px; }
  100% { background-position: 15px 10px; }
}

/* ── Section header ── */
.dest-section-header {
  position: relative;
  z-index: 10;
  padding: 120px 72px 70px;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 40px;
}
.dest-section-label {
  font-size: 10px;
  letter-spacing: .55em;
  text-transform: uppercase;
  color: var(--teal);
  margin-bottom: 16px;
  opacity: .7;
}
.dest-section-title {
  font-family: 'Playfair Display', serif;
  font-size: clamp(42px, 5.5vw, 78px);
  font-weight: 700;
  line-height: .9;
  letter-spacing: -.025em;
  color: #f0f4f8;
}
.dest-section-title em {
  font-style: italic;
  font-weight: 400;
  background: linear-gradient(135deg, #00C9B1, #38BDF8);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}
.dest-section-meta {
  text-align: right;
  flex-shrink: 0;
}
.dest-count {
  font-family: 'Playfair Display', serif;
  font-size: clamp(48px, 6vw, 88px);
  font-weight: 700;
  line-height: 1;
  color: transparent;
  -webkit-text-stroke: 1px rgba(0,201,177,.25);
  letter-spacing: -.04em;
  display: block;
}
.dest-count-label {
  font-size: 10px;
  letter-spacing: .4em;
  text-transform: uppercase;
  color: rgba(240,244,248,.25);
}

/* ── Filter pills ── */
.dest-filters {
  position: relative;
  z-index: 10;
  padding: 0 72px 56px;
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}
.filter-pill {
  font-family: 'DM Sans', sans-serif;
  font-size: 10px;
  font-weight: 500;
  letter-spacing: .2em;
  text-transform: uppercase;
  padding: 9px 20px;
  border-radius: 100px;
  border: 1px solid rgba(240,244,248,.1);
  background: transparent;
  color: rgba(240,244,248,.35);
  cursor: none;
  transition: border-color .3s, color .3s, background .3s, transform .25s;
  position: relative;
  overflow: hidden;
}
.filter-pill::before {
  content: '';
  position: absolute; inset: 0;
  border-radius: 100px;
  background: var(--pill-color, rgba(0,201,177,.15));
  opacity: 0;
  transition: opacity .3s;
}
.filter-pill:hover,
.filter-pill.active {
  color: #f0f4f8;
  border-color: var(--pill-border, rgba(0,201,177,.5));
  transform: translateY(-2px);
}
.filter-pill:hover::before,
.filter-pill.active::before { opacity: 1; }
.filter-pill.active {
  color: var(--teal);
}

/* ── Masonry cinematic grid ── */
.dest-grid {
  position: relative;
  z-index: 10;
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  grid-auto-rows: 80px;
  gap: 3px;
  padding: 0 3px 3px;
}

/* Card base */
.dest-card {
  position: relative;
  overflow: hidden;
  cursor: none;
  background: #0a1220;
}
.dest-card::after {
  content: '';
  position: absolute; inset: 0;
  background: linear-gradient(
    to bottom,
    transparent 30%,
    rgba(0,0,0,.25) 55%,
    rgba(0,0,0,.85) 100%
  );
  z-index: 2;
  transition: background .5s;
}
.dest-card:hover::after {
  background: linear-gradient(
    to bottom,
    rgba(0,0,0,.08) 0%,
    rgba(0,0,0,.35) 50%,
    rgba(0,0,0,.92) 100%
  );
}

/* Grid layout — dramatic editorial sizing */
.dest-card:nth-child(1) { grid-column: 1 / 6;  grid-row: 1 / 9;  } /* Hero tall-wide */
.dest-card:nth-child(2) { grid-column: 6 / 10; grid-row: 1 / 5;  } /* Medium */
.dest-card:nth-child(3) { grid-column: 10/ 13; grid-row: 1 / 5;  } /* Small */
.dest-card:nth-child(4) { grid-column: 6 / 8;  grid-row: 5 / 9;  } /* Small square */
.dest-card:nth-child(5) { grid-column: 8 / 13; grid-row: 5 / 9;  } /* Wide short */
.dest-card:nth-child(6) { grid-column: 1 / 5;  grid-row: 9 / 14; } /* Medium wide */
.dest-card:nth-child(7) { grid-column: 5 / 9;  grid-row: 9 / 14; } /* Medium */
.dest-card:nth-child(8) { grid-column: 9 / 13; grid-row: 9 / 14; } /* Medium */

/* Background image with parallax */
.card-img {
  position: absolute; inset: -8%;
  background-size: cover;
  background-position: center;
  transition: transform .9s cubic-bezier(.16,1,.3,1);
  will-change: transform;
  filter: saturate(0.75) brightness(0.82);
  transition: transform .9s cubic-bezier(.16,1,.3,1), filter .6s;
}
.dest-card:hover .card-img {
  transform: scale(1.08);
  filter: saturate(1.05) brightness(0.78);
}

/* Accent color stripe at top */
.card-stripe {
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 2px;
  z-index: 5;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .5s cubic-bezier(.16,1,.3,1) .1s;
}
.dest-card:hover .card-stripe { transform: scaleX(1); }

/* Card content */
.card-body {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  padding: 28px 28px 26px;
  z-index: 3;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.card-region {
  font-size: 9px;
  letter-spacing: .45em;
  text-transform: uppercase;
  color: rgba(255,255,255,.45);
  transform: translateY(6px);
  opacity: 0;
  transition: transform .4s cubic-bezier(.16,1,.3,1), opacity .4s;
}
.dest-card:hover .card-region {
  transform: translateY(0);
  opacity: 1;
}
.card-name {
  font-family: 'Playfair Display', serif;
  font-weight: 700;
  line-height: 1;
  letter-spacing: -.02em;
  color: #fff;
  text-shadow: 0 2px 20px rgba(0,0,0,.6);
  transition: transform .4s cubic-bezier(.16,1,.3,1);
}
.dest-card:nth-child(1) .card-name { font-size: clamp(32px,3.5vw,52px); }
.dest-card:nth-child(n+2) .card-name { font-size: clamp(20px,2.2vw,32px); }
.dest-card:nth-child(n+6) .card-name { font-size: clamp(22px,2.4vw,34px); }

.dest-card:hover .card-name { transform: translateY(-3px); }

.card-tagline {
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(12px, 1.2vw, 16px);
  font-weight: 300;
  color: rgba(255,255,255,.5);
  letter-spacing: .06em;
  max-height: 0;
  overflow: hidden;
  opacity: 0;
  transform: translateY(8px);
  transition: max-height .5s cubic-bezier(.16,1,.3,1),
              opacity .4s .1s,
              transform .4s .1s cubic-bezier(.16,1,.3,1);
}
.dest-card:hover .card-tagline {
  max-height: 60px;
  opacity: 1;
  transform: translateY(0);
}

/* CTA button on card */
.card-cta {
  position: absolute;
  top: 22px; right: 22px;
  z-index: 4;
  width: 38px; height: 38px;
  border-radius: 50%;
  background: rgba(255,255,255,.08);
  backdrop-filter: blur(10px);
  border: 1px solid rgba(255,255,255,.15);
  display: flex; align-items: center; justify-content: center;
  font-size: 15px;
  color: rgba(255,255,255,.7);
  opacity: 0;
  transform: scale(0.8) rotate(-45deg);
  transition: opacity .35s, transform .4s cubic-bezier(.16,1,.3,1), background .3s, border-color .3s;
}
.dest-card:hover .card-cta {
  opacity: 1;
  transform: scale(1) rotate(0deg);
}
.dest-card:hover .card-cta:hover {
  background: var(--teal);
  border-color: var(--teal);
  color: #060B14;
}

/* Numbered badge for hero card */
.card-badge {
  position: absolute;
  top: 22px; left: 22px;
  z-index: 4;
  font-family: 'Playfair Display', serif;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .1em;
  color: var(--teal);
  padding: 6px 12px;
  border-radius: 4px;
  background: rgba(0,201,177,.1);
  border: 1px solid rgba(0,201,177,.2);
  backdrop-filter: blur(8px);
}

/* Stat chips on hero card */
.card-stats {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 4px;
  opacity: 0;
  transform: translateY(10px);
  transition: opacity .4s .2s, transform .4s .2s cubic-bezier(.16,1,.3,1);
}
.dest-card:hover .card-stats { opacity: 1; transform: translateY(0); }
.stat-chip {
  font-size: 9px;
  letter-spacing: .15em;
  text-transform: uppercase;
  padding: 4px 10px;
  border-radius: 100px;
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.12);
  color: rgba(255,255,255,.6);
  white-space: nowrap;
}

/* "View All" footer strip */
.dest-footer {
  position: relative;
  z-index: 10;
  padding: 56px 72px 100px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
}
.dest-footer-line {
  flex: 1;
  height: 1px;
  background: linear-gradient(90deg, rgba(0,201,177,.2), transparent);
}
.dest-footer-line.right {
  background: linear-gradient(90deg, transparent, rgba(0,201,177,.2));
}
.view-all-btn {
  position: relative;
  font-family: 'DM Sans', sans-serif;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: .35em;
  text-transform: uppercase;
  color: rgba(240,244,248,.5);
  background: transparent;
  border: 1px solid rgba(240,244,248,.12);
  padding: 16px 44px;
  border-radius: 100px;
  cursor: none;
  overflow: hidden;
  transition: color .35s, border-color .35s, transform .3s cubic-bezier(.16,1,.3,1), box-shadow .3s;
  white-space: nowrap;
}
.view-all-btn::before {
  content: '';
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(0,201,177,.12), rgba(56,189,248,.08));
  opacity: 0;
  transition: opacity .35s;
}
.view-all-btn::after {
  content: '';
  position: absolute;
  top: 0; left: -60px;
  width: 45px; height: 100%;
  background: rgba(255,255,255,.15);
  transform: skewX(-20deg);
  transition: left .5s cubic-bezier(.16,1,.3,1);
}
.view-all-btn:hover {
  color: var(--teal);
  border-color: rgba(0,201,177,.4);
  transform: translateY(-3px);
  box-shadow: 0 0 30px rgba(0,201,177,.15);
}
.view-all-btn:hover::before { opacity: 1; }
.view-all-btn:hover::after { left: 130%; }
.view-all-btn span { position: relative; z-index: 1; }

/* ── Scroll reveal ── */
.reveal {
  opacity: 0;
  transform: translateY(40px);
  transition: opacity .8s cubic-bezier(.16,1,.3,1), transform .8s cubic-bezier(.16,1,.3,1);
}
.reveal.visible {
  opacity: 1;
  transform: translateY(0);
}
.reveal-delay-1 { transition-delay: .1s; }
.reveal-delay-2 { transition-delay: .2s; }
.reveal-delay-3 { transition-delay: .32s; }
.reveal-delay-4 { transition-delay: .44s; }
.reveal-delay-5 { transition-delay: .56s; }

/* ═══════════════════════════════════════════════════════
   GALLERY COLLECTION
═══════════════════════════════════════════════════════ */
.gallery-section {
  position: relative;
  background: #f0ede8;
  padding: 110px 72px 100px;
  overflow: hidden;
  font-family: 'DM Sans', sans-serif;
}
[data-theme="dark"] .gallery-section {
  background: #0f0e0c;
}
.gallery-section::before {
  content: '';
  position: absolute; inset: 0;
  pointer-events: none;
  opacity: .025;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 512 512' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  background-size: 220px 220px;
}
.gallery-top {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 60px;
  margin-bottom: 64px;
}
.gallery-headline { flex: 1; max-width: 520px; }
.gallery-headline h2 {
  font-family: 'Playfair Display', serif;
  font-size: clamp(34px, 4.2vw, 58px);
  font-weight: 700;
  line-height: 1.08;
  letter-spacing: -.02em;
  color: #1a2040;
  margin-bottom: 4px;
}
[data-theme="dark"] .gallery-headline h2 { color: #e8e3dc; }
.gallery-headline .script-line {
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(26px, 3.2vw, 44px);
  font-weight: 400;
  font-style: italic;
  color: #e07030;
  line-height: 1.1;
  display: block;
  letter-spacing: .01em;
}
.gallery-intro {
  flex-shrink: 0;
  max-width: 320px;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 24px;
  padding-top: 10px;
}
.gallery-intro p {
  font-size: 14px;
  font-weight: 300;
  line-height: 1.75;
  color: #5a5860;
  text-align: right;
  letter-spacing: .01em;
}
[data-theme="dark"] .gallery-intro p { color: #9a9490; }
.gallery-explore-btn {
  position: relative;
  font-family: 'DM Sans', sans-serif;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: #fff;
  background: linear-gradient(135deg, #e07030, #f09040);
  border: none;
  border-radius: 100px;
  padding: 14px 32px;
  cursor: none;
  overflow: hidden;
  box-shadow: 0 4px 20px rgba(224,112,48,.35);
  transition: transform .25s cubic-bezier(.16,1,.3,1), box-shadow .3s;
}
.gallery-explore-btn::before {
  content: '';
  position: absolute; top: 0; left: -55px;
  width: 40px; height: 100%;
  background: rgba(255,255,255,.3);
  transform: skewX(-20deg);
  transition: left .5s cubic-bezier(.16,1,.3,1);
}
.gallery-explore-btn:hover { transform: translateY(-3px); box-shadow: 0 8px 30px rgba(224,112,48,.5); }
.gallery-explore-btn:hover::before { left: 130%; }
.gallery-carousel-outer {
  position: relative;
  overflow: hidden;
  margin: 0 -8px;
  padding: 20px 8px 28px;
  cursor: grab;
  user-select: none;
}
.gallery-carousel-outer:active { cursor: grabbing; }
#cardGlowBg {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 0;
  opacity: 0;
  transition: opacity .7s ease, background .8s ease;
}
.gallery-carousel {
  position: relative;
  z-index: 1;
  display: flex;
  gap: 16px;
  transition: transform .65s cubic-bezier(.16,1,.3,1);
  will-change: transform;
  align-items: flex-end;
}
.art-card {
  flex-shrink: 0;
  width: 220px;
  border-radius: 18px;
  overflow: hidden;
  background: #fff;
  box-shadow: 0 2px 8px rgba(0,0,0,.07), 0 12px 40px rgba(0,0,0,.10);
  cursor: none;
  position: relative;
  transition: transform .45s cubic-bezier(.16,1,.3,1), box-shadow .45s;
}
[data-theme="dark"] .art-card { background: #1e1c18; box-shadow: 0 2px 8px rgba(0,0,0,.3), 0 12px 40px rgba(0,0,0,.4); }
.art-card.featured { width: 260px; }
.art-card:hover {
  transform: translateY(-10px) scale(1.02);
  box-shadow: 0 10px 24px rgba(0,0,0,.12), 0 28px 64px rgba(0,0,0,.18);
}
.art-card.featured:hover { transform: translateY(-24px) scale(1.02); }
.art-canvas { width: 100%; height: 280px; position: relative; overflow: hidden; }
.art-card.featured .art-canvas { height: 320px; }

/* Painting 1 — Rainy City Night */
.paint-1 {
  background:
    radial-gradient(ellipse 60% 40% at 50% 28%, rgba(255,160,80,.9) 0%, rgba(220,100,30,.4) 35%, transparent 65%),
    radial-gradient(ellipse 35% 22% at 48% 80%, rgba(200,110,40,.5) 0%, transparent 60%),
    linear-gradient(175deg, #131c35 0%, #1e2a48 30%, #181c38 60%, #0c1025 100%);
}
.paint-1::before {
  content: '';
  position: absolute;
  top: 10%; left: 50%; transform: translateX(-50%);
  width: 4px; height: 60%;
  background: linear-gradient(to bottom, #ffd080, #cc8030, rgba(180,90,20,.3), transparent);
  border-radius: 2px;
  box-shadow: 0 0 20px 10px rgba(255,180,60,.2), 0 0 50px 18px rgba(220,130,40,.1);
}
.paint-1::after {
  content: '';
  position: absolute;
  bottom: 0; left: 0; right: 0; height: 36%;
  background: linear-gradient(to bottom, transparent, rgba(255,140,50,.05) 20%, rgba(180,95,30,.12) 55%, rgba(20,30,65,.55) 100%);
  border-top: 1px solid rgba(255,170,70,.07);
}
.paint-1 .umbrella-group {
  position: absolute;
  bottom: 34%; left: 50%; transform: translateX(-50%);
}
.paint-1 .umb {
  width: 50px; height: 25px;
  background: #263260;
  border-radius: 50% 50% 0 0;
  position: relative;
  box-shadow: 0 3px 10px rgba(0,0,0,.4);
}
.paint-1 .fig-l, .paint-1 .fig-r {
  position: absolute;
  top: 22px;
  width: 7px;
  background: #151b30;
  border-radius: 3px 3px 0 0;
}
.paint-1 .fig-l { height: 26px; left: 10px; }
.paint-1 .fig-r { height: 22px; left: 28px; }
.paint-1 .rain {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(
    105deg,
    transparent 0px, transparent 18px,
    rgba(180,210,255,.06) 18px, rgba(180,210,255,.06) 19px
  );
  pointer-events: none;
}

/* Painting 2 — Pastoral Blossom */
.paint-2 {
  background: linear-gradient(175deg, #c8e0c0 0%, #a8cca0 25%, #90ba80 55%, #c8c088 100%);
}
.paint-2::before {
  content: '';
  position: absolute;
  top: 8%; left: 18%;
  width: 120px; height: 140px;
  background: radial-gradient(ellipse 65% 55% at 50% 65%,
    rgba(255,190,210,.8) 0%, rgba(255,165,190,.55) 35%, rgba(245,140,175,.2) 65%, transparent 100%
  );
  border-radius: 50%;
  filter: blur(2px);
}
.paint-2::after {
  content: '';
  position: absolute;
  bottom: 35%; left: 36%; width: 10px; height: 80px;
  background: linear-gradient(to bottom, #8a6040, #5a3820);
  border-radius: 5px;
}
.paint-2 .cottage {
  position: absolute;
  bottom: 10%; right: 8%;
}
.paint-2 .c-roof {
  width: 0; height: 0;
  border-left: 38px solid transparent;
  border-right: 38px solid transparent;
  border-bottom: 26px solid #c0983a;
  position: relative; z-index: 2;
}
.paint-2 .c-wall {
  width: 52px; height: 30px;
  background: #ece0c8;
  border-radius: 2px;
  margin-top: -1px;
  position: relative; z-index: 1;
}
.paint-2 .c-window {
  position: absolute;
  top: 8px; left: 18px;
  width: 14px; height: 12px;
  background: rgba(180,210,240,.7);
  border: 1px solid rgba(0,0,0,.1);
  border-radius: 2px;
}
.paint-2 .pony {
  position: absolute;
  bottom: 22%; left: 54%;
  width: 30px; height: 20px;
  background: #f2ede6;
  border-radius: 10px 14px 6px 6px;
  box-shadow: 2px 2px 6px rgba(0,0,0,.1);
}
.paint-2 .pony::before {
  content: '';
  position: absolute;
  top: -8px; right: 4px;
  width: 10px; height: 10px;
  background: #f2ede6;
  border-radius: 50% 50% 30% 30%;
}
.paint-2 .pond {
  position: absolute;
  bottom: 10%; left: 10%;
  width: 52px; height: 18px;
  background: rgba(150,195,215,.6);
  border-radius: 50%;
  filter: blur(1px);
}

/* Painting 3 — Keeper of the Night */
.paint-3 {
  background: linear-gradient(175deg, #040b1c 0%, #091230 20%, #0d1c3a 45%, #0a1828 100%);
}
.paint-3::before {
  content: '';
  position: absolute;
  top: 7%; left: 50%; transform: translateX(-50%);
  width: 85px; height: 85px;
  background: radial-gradient(circle, #fffdf0 0%, #fff5c8 30%, #ffd860 60%, rgba(255,200,60,.25) 78%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 0 10px rgba(255,230,120,.05), 0 0 0 25px rgba(255,200,80,.03), 0 0 55px 18px rgba(255,180,60,.13);
}
.paint-3 .stars-bg {
  position: absolute;
  inset: 0;
  pointer-events: none;
}
.paint-3 .star-dot {
  position: absolute;
  border-radius: 50%;
  background: white;
  animation: starPulse 3s ease-in-out infinite;
}
.paint-3 .hill-1 {
  position: absolute;
  bottom: 0; left: -5%; right: -5%; height: 58%;
  background: #1a4a50;
  border-radius: 55% 45% 0 0;
}
.paint-3 .hill-2 {
  position: absolute;
  bottom: 0; left: -8%; right: -8%; height: 44%;
  background: #b87020;
  border-radius: 45% 55% 0 0;
}
.paint-3 .hill-3 {
  position: absolute;
  bottom: 0; left: -10%; right: -10%; height: 30%;
  background: #6a3018;
  border-radius: 40% 60% 0 0;
}
.paint-3 .deer-body {
  position: absolute;
  bottom: 30%;
  left: 50%; transform: translateX(-50%);
  width: 18px; height: 26px;
  background: #cc8a28;
  border-radius: 5px 9px 3px 3px;
  box-shadow: 0 0 10px rgba(255,160,40,.35);
}
.paint-3 .deer-head {
  position: absolute;
  top: -9px; left: 3px;
  width: 12px; height: 10px;
  background: #cc8a28;
  border-radius: 50% 50% 30% 30%;
}
.paint-3 .deer-antler-l {
  position: absolute;
  top: -18px; left: 0;
  width: 2px; height: 12px;
  background: #c07820;
  border-radius: 1px;
  transform: rotate(-12deg);
}
.paint-3 .deer-antler-r {
  position: absolute;
  top: -18px; left: 10px;
  width: 2px; height: 12px;
  background: #c07820;
  border-radius: 1px;
  transform: rotate(12deg);
}

/* Painting 4 — Sunlit Streets */
.paint-4 {
  background: linear-gradient(175deg, #7fc8ec 0%, #55a8d8 22%, #e8c060 55%, #d08038 80%, #b06028 100%);
}
.paint-4 .buildings {
  position: absolute;
  bottom: 0; left: 0; right: 0; height: 58%;
  display: flex;
}
.paint-4 .bld {
  flex: 1;
  height: 100%;
}
.paint-4 .bld-1 { background: #d08040; }
.paint-4 .bld-2 { background: #e09855; height: 85%; margin-top: auto; }
.paint-4 .bld-3 { background: #c07035; }
.paint-4 .bld-4 { background: #d88848; height: 90%; margin-top: auto; }
.paint-4 .street {
  position: absolute;
  bottom: 0; left: 15%; right: 15%;
  height: 20%;
  background: linear-gradient(to bottom, #b87040, #a05c30);
  perspective: 100px;
}
.paint-4 .runner {
  position: absolute;
  bottom: 58%;
  width: 9px; height: 20px;
  border-radius: 5px 5px 2px 2px;
}
.paint-4 .runner::before {
  content: '';
  position: absolute;
  top: -10px; left: 1px;
  width: 7px; height: 8px;
  background: #e8c090;
  border-radius: 50%;
}
.paint-4 .runner-red { background: #e02828; left: 34%; }
.paint-4 .runner-blu { background: #1850c8; left: 50%; }

/* Painting 5 — Moonlit Waterfall */
.paint-5 {
  background: linear-gradient(175deg, #080f28 0%, #0c1840 25%, #162840 55%, #0a1830 80%, #050c1c 100%);
}
.paint-5::before {
  content: '';
  position: absolute;
  top: 7%; right: 22%;
  width: 58px; height: 58px;
  background: radial-gradient(circle, #eef6ff 0%, #d8eeff 40%, rgba(170,210,255,.45) 68%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 12px rgba(170,215,255,.14);
}
.paint-5 .rocks-l {
  position: absolute;
  bottom: 0; left: 0; width: 38%; height: 70%;
  background: radial-gradient(ellipse 80% 100% at 30% 100%, #182848 0%, #101e38 60%, transparent 100%);
  border-radius: 0 40% 0 0;
}
.paint-5 .rocks-r {
  position: absolute;
  bottom: 0; right: 0; width: 38%; height: 65%;
  background: radial-gradient(ellipse 80% 100% at 70% 100%, #121e38 0%, #0c1830 60%, transparent 100%);
  border-radius: 40% 0 0 0;
}
.paint-5 .waterfall {
  position: absolute;
  top: 20%; left: 50%; transform: translateX(-50%);
  width: 26px;
  bottom: 12%;
  background: linear-gradient(to bottom,
    rgba(210,235,255,.75) 0%,
    rgba(190,220,255,.55) 30%,
    rgba(170,205,255,.35) 65%,
    rgba(150,190,255,.18) 100%
  );
  border-radius: 0 0 40% 40%;
  filter: blur(1.5px);
  box-shadow: 0 0 18px rgba(180,220,255,.22);
}
.paint-5 .mist {
  position: absolute;
  bottom: 9%; left: 15%; right: 15%; height: 22px;
  background: radial-gradient(ellipse 70% 100% at 50% 100%, rgba(200,230,255,.28) 0%, transparent 100%);
  filter: blur(5px);
}
.paint-5 .star-s {
  position: absolute;
  background: white;
  border-radius: 50%;
  animation: starPulse 4s ease-in-out infinite;
}

/* Art card meta */
.art-meta {
  padding: 16px 18px 18px;
}
.art-meta .art-title {
  font-family: 'Playfair Display', serif;
  font-size: 14px;
  font-weight: 700;
  color: #1a2040;
  letter-spacing: -.01em;
  line-height: 1.3;
  margin-bottom: 4px;
}
[data-theme="dark"] .art-meta .art-title { color: #e8e3dc; }
.art-meta .art-caption {
  font-size: 10px;
  font-weight: 400;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: #9a95a0;
}
[data-theme="dark"] .art-meta .art-caption { color: #6a6560; }
.art-meta .art-region {
  display: inline-block;
  margin-top: 9px;
  font-size: 9px;
  letter-spacing: .18em;
  text-transform: uppercase;
  padding: 4px 11px;
  border-radius: 100px;
  background: rgba(224,112,48,.1);
  color: #e07030;
  border: 1px solid rgba(224,112,48,.22);
}
.art-card.featured .art-overlay-label {
  position: absolute;
  top: 14px; left: 14px;
  z-index: 4;
  font-family: 'Playfair Display', serif;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .07em;
  color: #fffbe0;
  background: rgba(0,0,0,.38);
  backdrop-filter: blur(6px);
  border: 1px solid rgba(255,220,120,.2);
  border-radius: 6px;
  padding: 6px 12px;
  pointer-events: none;
}
.art-card.featured .art-overlay-credit {
  position: absolute;
  bottom: 82px; left: 16px;
  z-index: 4;
  font-family: 'DM Sans', sans-serif;
  font-size: 9px;
  letter-spacing: .25em;
  text-transform: uppercase;
  color: rgba(255,240,180,.65);
  pointer-events: none;
}

/* Gallery nav */
.gallery-nav {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-top: 40px;
  justify-content: center;
}
.gnav-btn {
  width: 48px; height: 48px;
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-size: 18px;
  cursor: none;
  transition: transform .25s cubic-bezier(.16,1,.3,1), box-shadow .3s, background .3s, border-color .3s, color .3s;
}
.gnav-btn.prev {
  background: transparent;
  border: 1.5px solid #1a2040;
  color: #1a2040;
}
[data-theme="dark"] .gnav-btn.prev { border-color: rgba(232,227,220,.4); color: rgba(232,227,220,.7); }
.gnav-btn.next {
  background: linear-gradient(135deg, #e07030, #f09040);
  border: none;
  color: #fff;
  box-shadow: 0 4px 16px rgba(224,112,48,.35);
}
.gnav-btn.prev:hover { background: #1a2040; color: #fff; transform: scale(1.1); }
[data-theme="dark"] .gnav-btn.prev:hover { background: rgba(232,227,220,.12); }
.gnav-btn.next:hover { box-shadow: 0 8px 26px rgba(224,112,48,.55); transform: scale(1.1); }
.gallery-dots { display: flex; gap: 7px; align-items: center; }
.gdot {
  width: 7px; height: 7px; border-radius: 50%;
  background: rgba(26,32,64,.18);
  transition: width .3s, background .3s, border-radius .3s;
  cursor: none;
}
[data-theme="dark"] .gdot { background: rgba(232,227,220,.18); }
.gdot.active { width: 24px; border-radius: 4px; background: #e07030; }

/* Reveal */
.gallery-section .g-reveal {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity .7s cubic-bezier(.16,1,.3,1), transform .7s cubic-bezier(.16,1,.3,1);
}
.gallery-section .g-reveal.visible { opacity: 1; transform: translateY(0); }
.gallery-section .g-card-reveal {
  opacity: 0;
  transform: translateY(18px) scale(.97);
  transition: opacity .55s cubic-bezier(.16,1,.3,1), transform .55s cubic-bezier(.16,1,.3,1);
}
.gallery-section .g-card-reveal.visible { opacity: 1; transform: translateY(0) scale(1); }

/* ═══════════════════════════════════════════════════════
   BESPOKE / WHY VOYAGER
═══════════════════════════════════════════════════════ */
.bespoke-section {
  position: relative;
  background: #060B14;
  overflow: hidden;
  padding: 0;
}
[data-theme="light"] .bespoke-section {
  background: #f5f3ef;
}

/* ── Full-bleed split layout ── */
.bespoke-inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-height: 100vh;
  position: relative;
}

/* ── Left: sticky visual panel ── */
.bespoke-visual {
  position: sticky;
  top: 0;
  height: 100vh;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  overflow: hidden;
}

/* Layered background atmosphere */
.bespoke-visual-bg {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 90% 70% at 30% 60%, rgba(0,201,177,.10) 0%, transparent 60%),
    radial-gradient(ellipse 70% 80% at 80% 20%, rgba(124,58,237,.09) 0%, transparent 60%),
    linear-gradient(165deg, #07101f 0%, #0c1628 40%, #060d1a 100%);
}
[data-theme="light"] .bespoke-visual-bg {
  background:
    radial-gradient(ellipse 90% 70% at 30% 60%, rgba(0,180,160,.08) 0%, transparent 60%),
    radial-gradient(ellipse 70% 80% at 80% 20%, rgba(100,40,200,.06) 0%, transparent 60%),
    linear-gradient(165deg, #dde8f0 0%, #cdd8e8 40%, #d8e4ee 100%);
}

/* Large decorative number */
.bespoke-big-num {
  position: absolute;
  top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  font-family: 'Playfair Display', serif;
  font-size: 28vw;
  font-weight: 700;
  letter-spacing: -.06em;
  line-height: 1;
  color: transparent;
  -webkit-text-stroke: 1px rgba(0,201,177,.08);
  user-select: none;
  pointer-events: none;
  transition: -webkit-text-stroke .6s, color .6s, text-shadow .6s;
  white-space: nowrap;
}
.bespoke-big-num.active {
  -webkit-text-stroke: 1px rgba(0,201,177,.18);
  text-shadow: 0 0 120px rgba(0,201,177,.07);
}

/* Floating stat cards in the visual */
.bespoke-stat-grid {
  position: relative;
  z-index: 2;
  padding: 60px 56px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}
.bespoke-stat {
  padding: 22px 20px;
  border-radius: 16px;
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(0,201,177,.1);
  backdrop-filter: blur(12px);
  transition: background .4s, border-color .4s, transform .4s;
  opacity: 0;
  transform: translateY(20px);
  transition: opacity .6s cubic-bezier(.16,1,.3,1), transform .6s cubic-bezier(.16,1,.3,1), background .4s, border-color .4s;
}
[data-theme="light"] .bespoke-stat {
  background: rgba(255,255,255,.6);
  border-color: rgba(0,150,135,.15);
  box-shadow: 0 4px 20px rgba(0,0,0,.06);
}
.bespoke-stat.visible { opacity: 1; transform: translateY(0); }
.bespoke-stat.lit {
  background: rgba(0,201,177,.07);
  border-color: rgba(0,201,177,.3);
}
[data-theme="light"] .bespoke-stat.lit {
  background: rgba(0,180,160,.08);
  border-color: rgba(0,160,145,.35);
}
.stat-num {
  font-family: 'Playfair Display', serif;
  font-size: clamp(28px, 3vw, 42px);
  font-weight: 700;
  letter-spacing: -.03em;
  line-height: 1;
  margin-bottom: 6px;
  background: linear-gradient(135deg, #00C9B1, #4EEBD8);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}
.stat-label {
  font-size: 10px;
  font-weight: 400;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: rgba(240,244,248,.35);
}
[data-theme="light"] .stat-label { color: rgba(30,40,60,.4); }

/* Award ribbon */
.bespoke-award {
  position: absolute;
  top: 48px; left: 56px;
  z-index: 3;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 18px;
  border-radius: 100px;
  background: rgba(251,146,60,.1);
  border: 1px solid rgba(251,146,60,.25);
  backdrop-filter: blur(10px);
  opacity: 0;
  transform: translateY(-10px);
  transition: opacity .7s .3s cubic-bezier(.16,1,.3,1), transform .7s .3s cubic-bezier(.16,1,.3,1);
}
.bespoke-award.visible { opacity: 1; transform: translateY(0); }
.award-icon { font-size: 16px; }
.award-text {
  font-size: 10px;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: #FB923C;
  font-weight: 500;
}

/* Teal accent line left edge */
.bespoke-visual::before {
  content: '';
  position: absolute;
  top: 15%; bottom: 15%;
  left: 0; width: 2px;
  background: linear-gradient(to bottom, transparent, rgba(0,201,177,.5), transparent);
  z-index: 3;
}

/* ── Right: scrolling content ── */
.bespoke-content {
  padding: 120px 72px 120px 80px;
  display: flex;
  flex-direction: column;
  gap: 0;
  position: relative;
  z-index: 2;
}

.bespoke-eyebrow {
  font-size: 10px;
  letter-spacing: .5em;
  text-transform: uppercase;
  color: var(--teal);
  margin-bottom: 24px;
  opacity: 0;
  transform: translateY(16px);
  transition: opacity .6s cubic-bezier(.16,1,.3,1), transform .6s cubic-bezier(.16,1,.3,1);
}
.bespoke-eyebrow.visible { opacity: 1; transform: translateY(0); }

.bespoke-title {
  font-family: 'Playfair Display', serif;
  font-size: clamp(42px, 5vw, 72px);
  font-weight: 700;
  letter-spacing: -.025em;
  line-height: .95;
  color: #f0f4f8;
  margin-bottom: 64px;
  opacity: 0;
  transform: translateY(20px);
  transition: opacity .7s .1s cubic-bezier(.16,1,.3,1), transform .7s .1s cubic-bezier(.16,1,.3,1);
}
[data-theme="light"] .bespoke-title { color: #1a2040; }
.bespoke-title.visible { opacity: 1; transform: translateY(0); }
.bespoke-title em {
  font-style: italic;
  font-weight: 400;
  background: linear-gradient(135deg, #00C9B1 0%, #38BDF8 60%, #A855F7 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

/* ── Feature items ── */
.bespoke-features { display: flex; flex-direction: column; gap: 0; }

.bespoke-item {
  position: relative;
  padding: 40px 0 40px 0;
  border-bottom: 1px solid rgba(255,255,255,.06);
  display: grid;
  grid-template-columns: 56px 1fr;
  gap: 0 28px;
  align-items: start;
  cursor: default;
  opacity: 0;
  transform: translateX(-20px);
  transition: opacity .65s cubic-bezier(.16,1,.3,1), transform .65s cubic-bezier(.16,1,.3,1);
}
[data-theme="light"] .bespoke-item { border-bottom-color: rgba(0,0,0,.07); }
.bespoke-item:first-child { border-top: 1px solid rgba(255,255,255,.06); }
[data-theme="light"] .bespoke-item:first-child { border-top-color: rgba(0,0,0,.07); }
.bespoke-item.visible { opacity: 1; transform: translateX(0); }

/* Active state — item lights up */
.bespoke-item.active-item .item-icon-wrap {
  background: rgba(0,201,177,.15);
  border-color: rgba(0,201,177,.45);
}
.bespoke-item.active-item .item-number {
  color: var(--teal);
}
.bespoke-item.active-item .item-title {
  color: var(--teal);
}
.bespoke-item.active-item .item-bar-fill {
  width: 100%;
}

/* Icon/number column */
.item-icon-wrap {
  width: 48px; height: 48px;
  border-radius: 14px;
  border: 1px solid rgba(255,255,255,.08);
  background: rgba(255,255,255,.03);
  display: flex; align-items: center; justify-content: center;
  font-size: 20px;
  transition: background .4s, border-color .4s, transform .3s cubic-bezier(.16,1,.3,1);
  flex-shrink: 0;
  margin-top: 2px;
}
[data-theme="light"] .item-icon-wrap {
  border-color: rgba(0,0,0,.1);
  background: rgba(255,255,255,.7);
}
.bespoke-item:hover .item-icon-wrap {
  transform: scale(1.08) rotate(-4deg);
}
.item-number {
  position: absolute;
  top: 40px; left: -24px;
  font-family: 'Playfair Display', serif;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .06em;
  color: rgba(240,244,248,.18);
  transition: color .4s;
}
[data-theme="light"] .item-number { color: rgba(20,30,60,.18); }

.item-body { display: flex; flex-direction: column; gap: 10px; }

.item-title {
  font-family: 'Playfair Display', serif;
  font-size: clamp(18px, 2vw, 26px);
  font-weight: 700;
  letter-spacing: -.015em;
  color: #f0f4f8;
  line-height: 1.1;
  transition: color .35s;
}
[data-theme="light"] .item-title { color: #1a2040; }

.item-desc {
  font-size: 14px;
  font-weight: 300;
  line-height: 1.75;
  color: rgba(240,244,248,.4);
  letter-spacing: .01em;
  max-width: 440px;
}
[data-theme="light"] .item-desc { color: rgba(30,40,60,.5); }

/* Progress bar */
.item-bar {
  height: 2px;
  background: rgba(255,255,255,.07);
  border-radius: 2px;
  margin-top: 4px;
  overflow: hidden;
}
[data-theme="light"] .item-bar { background: rgba(0,0,0,.07); }
.item-bar-fill {
  height: 100%;
  width: 0;
  border-radius: 2px;
  background: linear-gradient(90deg, var(--teal), #38BDF8);
  transition: width .8s cubic-bezier(.16,1,.3,1);
}

/* Tag pill */
.item-tag {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 9px;
  letter-spacing: .2em;
  text-transform: uppercase;
  padding: 4px 12px;
  border-radius: 100px;
  border: 1px solid rgba(0,201,177,.18);
  color: rgba(0,201,177,.6);
  width: fit-content;
  transition: border-color .3s, color .3s;
}
.bespoke-item:hover .item-tag {
  border-color: rgba(0,201,177,.5);
  color: var(--teal);
}

/* ── Scroll-driven active highlight ── */
.bespoke-progress-bar {
  position: fixed;
  top: 0; left: 0;
  height: 2px;
  background: linear-gradient(90deg, var(--teal), #38BDF8, #A855F7);
  z-index: 999;
  width: 0%;
  transition: width .1s linear;
  pointer-events: none;
  opacity: 0;
}

/* ═══════════════════════════════════════════════════════
   LEGACY + VIDEO
═══════════════════════════════════════════════════════ */
/* ════ ORIGIN SECTION — uses all existing CSS vars ════ */
.origin-section {
  position: relative;
  background: #060B14;
  overflow: hidden;
  padding: 0 0 130px;
}
[data-theme="light"] .origin-section { background: #f5f2ee; }

/* Ambient — same radial pattern as header */
.origin-section::before {
  content: '';
  position: absolute;
  top: 0; left: 50%; transform: translateX(-50%);
  width: 900px; height: 600px;
  background:
    radial-gradient(ellipse 65% 50% at 30% 40%, rgba(251,146,60,.07) 0%, transparent 65%),
    radial-gradient(ellipse 55% 45% at 75% 60%, rgba(124,58,237,.05) 0%, transparent 65%);
  pointer-events: none; z-index: 0;
}

/* Faint grid — matches hero .grid-lines */
.origin-bg-grid {
  position: absolute; inset: 0; pointer-events: none; z-index: 0;
  background-image:
    linear-gradient(rgba(0,201,177,.022) 1px, transparent 1px),
    linear-gradient(90deg, rgba(0,201,177,.022) 1px, transparent 1px);
  background-size: 80px 80px;
  mask-image: radial-gradient(ellipse 80% 60% at 50% 30%, black, transparent);
}
[data-theme="light"] .origin-bg-grid {
  background-image:
    linear-gradient(rgba(0,150,135,.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(0,150,135,.04) 1px, transparent 1px);
}

/* ── PART 1: HERO ── */
.origin-hero {
  position: relative; z-index: 2;
  padding: 120px 80px 80px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 88px;
  align-items: center;
}

/* Eyebrow — matches .hero-eyebrow exactly */
.origin-eyebrow {
  font-size: 10px; font-weight: 400;
  letter-spacing: .5em; text-transform: uppercase;
  color: var(--teal); margin-bottom: 20px;
  display: flex; align-items: center; gap: 14px;
}
.origin-eyebrow::before, .origin-eyebrow::after {
  content: ''; height: 1px; opacity: .6;
}
.origin-eyebrow::before { width: 28px; background: linear-gradient(90deg, transparent, var(--teal)); }
.origin-eyebrow::after  { width: 36px; background: linear-gradient(90deg, var(--teal), transparent); }

/* Heading — matches .hero-title / .legacy-title */
.origin-h2 {
  font-family: 'Playfair Display', serif;
  font-size: clamp(48px, 5.8vw, 82px);
  font-weight: 700; letter-spacing: -.03em; line-height: .9;
  color: var(--text-main); margin-bottom: 28px; transition: color .5s;
}
.origin-h2 em {
  font-style: italic; font-weight: 400; display: block;
  background: linear-gradient(135deg, var(--teal) 0%, #38BDF8 50%, var(--violet-mid) 100%);
  -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
}

/* Pull-quote — matches .legacy-intro */
.origin-pull {
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(17px, 1.9vw, 24px);
  font-weight: 300; font-style: italic;
  line-height: 1.6; letter-spacing: .02em;
  color: rgba(240,244,248,.62);
  padding-left: 20px;
  border-left: 2px solid rgba(0,201,177,.35);
  margin-bottom: 26px;
}
[data-theme="light"] .origin-pull { color: rgba(30,40,60,.58); border-left-color: rgba(0,150,135,.4); }

/* Body copy */
.origin-body-text {
  font-size: 14px; font-weight: 300; line-height: 1.88;
  color: rgba(240,244,248,.38); letter-spacing: .015em;
  max-width: 460px; margin-bottom: 44px;
}
[data-theme="light"] .origin-body-text { color: rgba(30,40,60,.45); }
.origin-body-text strong { color: rgba(240,244,248,.75); font-weight: 500; }
[data-theme="light"] .origin-body-text strong { color: rgba(30,40,60,.75); }

/* Stats strip — matches .bespoke-stat */
.origin-stats {
  display: flex; gap: 0;
  border: 1px solid rgba(0,201,177,.12); border-radius: 16px; overflow: hidden;
}
[data-theme="light"] .origin-stats {
  border-color: rgba(0,140,125,.18); background: rgba(255,255,255,.55);
  box-shadow: 0 4px 20px rgba(0,0,0,.06);
}
.ostat {
  flex: 1; padding: 22px 20px;
  border-right: 1px solid rgba(0,201,177,.08);
  transition: background .35s;
}
[data-theme="light"] .ostat { border-right-color: rgba(0,140,125,.1); }
.ostat:last-child { border-right: none; }
.ostat:hover { background: rgba(0,201,177,.04); }
.ostat-num {
  font-family: 'Playfair Display', serif;
  font-size: clamp(26px, 2.8vw, 38px); font-weight: 700;
  letter-spacing: -.03em; line-height: 1;
  background: linear-gradient(135deg, var(--teal), #38BDF8);
  -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
  margin-bottom: 6px;
}
.ostat-label {
  font-size: 9px; letter-spacing: .22em; text-transform: uppercase;
  color: rgba(240,244,248,.28);
}
[data-theme="light"] .ostat-label { color: rgba(30,40,60,.38); }

/* Jodhpur image */
.origin-img-card {
  position: relative; border-radius: 24px; overflow: hidden; aspect-ratio: 5/6;
  background: #0c1525;
}
.origin-img-card img {
  width: 100%; height: 100%; object-fit: cover; display: block;
  filter: brightness(.72) saturate(.88);
  transition: transform 1.2s cubic-bezier(.16,1,.3,1), filter .8s;
}
.origin-img-card:hover img { transform: scale(1.04); filter: brightness(.82) saturate(.95); }
.origin-img-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(to bottom, transparent 45%, rgba(6,11,20,.82) 100%);
}
/* Inner glow border */
.origin-img-card::before {
  content: '';
  position: absolute; inset: 0; z-index: 2; border-radius: 24px;
  box-shadow: inset 0 0 0 1px rgba(0,201,177,.12); pointer-events: none;
}
/* Home badge — matches .live-badge */
.origin-home-badge {
  position: absolute; bottom: 22px; left: 22px; z-index: 3;
  display: flex; align-items: center; gap: 10px;
  padding: 11px 18px; border-radius: 100px;
  background: rgba(6,11,20,.58); backdrop-filter: blur(18px);
  border: 1px solid rgba(0,201,177,.2);
}
.origin-home-dot {
  width: 7px; height: 7px; border-radius: 50%;
  background: var(--teal); box-shadow: 0 0 8px var(--teal);
  animation: livePulse 1.8s ease-in-out infinite; flex-shrink: 0;
}
.origin-home-city {
  font-family: 'DM Sans', sans-serif;
  font-size: 11px; font-weight: 500; letter-spacing: .16em; text-transform: uppercase;
  color: rgba(240,244,248,.88);
}
.origin-home-since {
  font-family: 'Cormorant Garamond', serif;
  font-size: 11px; font-style: italic; color: rgba(0,201,177,.75);
}
/* Floating tag — matches .card-badge */
.origin-float-tag {
  position: absolute; top: 20px; right: 20px; z-index: 3;
  font-family: 'DM Sans', sans-serif;
  font-size: 9px; font-weight: 500; letter-spacing: .22em; text-transform: uppercase;
  color: var(--teal); padding: 7px 16px; border-radius: 4px;
  background: rgba(0,201,177,.1); border: 1px solid rgba(0,201,177,.2);
  backdrop-filter: blur(8px);
}

/* ── PART 2: MANIFESTO — matches .bespoke-section split layout ── */
.manifesto-wrap {
  position: relative; z-index: 2;
  margin: 0 80px 88px;
  border-radius: 24px; overflow: hidden;
  border: 1px solid rgba(0,201,177,.1);
  background: rgba(0,201,177,.03);
}
[data-theme="light"] .manifesto-wrap {
  background: rgba(255,255,255,.65); border-color: rgba(0,140,125,.15);
  box-shadow: 0 8px 40px rgba(0,0,0,.06);
}
/* Top teal rule — same as mega-inner border-top */
.manifesto-wrap::before {
  content: '';
  position: absolute; top: 0; left: 0; right: 0; height: 2px;
  background: linear-gradient(90deg, transparent, var(--teal), var(--violet-mid), transparent);
}
.manifesto-inner { display: grid; grid-template-columns: 1fr 1fr; gap: 0; }

.mani-left {
  padding: 60px 56px 60px 64px;
  border-right: 1px solid rgba(255,255,255,.06);
  display: flex; flex-direction: column; justify-content: center; gap: 22px;
}
[data-theme="light"] .mani-left { border-right-color: rgba(0,0,0,.07); }
.mani-eyebrow {
  font-size: 10px; letter-spacing: .5em; text-transform: uppercase;
  color: var(--teal); opacity: .8;
}
.mani-h3 {
  font-family: 'Playfair Display', serif;
  font-size: clamp(28px, 3.2vw, 46px); font-weight: 700;
  letter-spacing: -.025em; line-height: 1.0;
  color: var(--text-main); transition: color .5s;
}
.mani-h3 em {
  font-style: italic; font-weight: 400; display: block;
  background: linear-gradient(135deg, var(--teal), #38BDF8);
  -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
}
.mani-body-text {
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(15px, 1.6vw, 19px); font-weight: 300; font-style: italic;
  line-height: 1.7; color: rgba(240,244,248,.45); letter-spacing: .02em;
}
[data-theme="light"] .mani-body-text { color: rgba(30,40,60,.5); }

.mani-right {
  padding: 60px 56px;
  display: flex; flex-direction: column; justify-content: center; gap: 4px;
}
.mani-row {
  display: flex; align-items: center; gap: 14px;
  padding: 13px 16px; border-radius: 12px; transition: background .3s;
}
.mani-row:hover { background: rgba(0,201,177,.04); }
[data-theme="light"] .mani-row:hover { background: rgba(0,140,125,.05); }

.mani-icon {
  flex-shrink: 0; width: 22px; height: 22px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-size: 10px; font-weight: 600;
}
.mani-icon.no  { background: rgba(244,63,142,.12); border: 1px solid rgba(244,63,142,.2);  color: var(--rose); }
.mani-icon.yes { background: rgba(52,211,153,.12);  border: 1px solid rgba(52,211,153,.2);  color: var(--green); }

.mani-text {
  font-size: 13px; font-weight: 300; line-height: 1.5;
  color: rgba(240,244,248,.48); letter-spacing: .01em;
}
[data-theme="light"] .mani-text { color: rgba(30,40,60,.5); }
.mani-text s { color: rgba(240,244,248,.22); text-decoration-color: rgba(244,63,142,.4); }
[data-theme="light"] .mani-text s { color: rgba(30,40,60,.22); }
.mani-text strong { color: rgba(240,244,248,.82); font-weight: 500; }
[data-theme="light"] .mani-text strong { color: rgba(30,40,60,.78); }
.mani-sep { height: 1px; background: rgba(255,255,255,.04); margin: 4px 16px; }
[data-theme="light"] .mani-sep { background: rgba(0,0,0,.06); }

/* ── PART 3: MAP — matches .zoom-section header + .video-container frame ── */
.origin-map-section { position: relative; z-index: 2; padding: 0 80px; }

.origin-map-hdr {
  text-align: center; margin-bottom: 56px;
  opacity: 0; transform: translateY(24px);
  transition: opacity .75s cubic-bezier(.16,1,.3,1), transform .75s cubic-bezier(.16,1,.3,1);
}
.origin-map-hdr.visible { opacity: 1; transform: translateY(0); }
.origin-map-eyebrow {
  font-size: 10px; letter-spacing: .5em; text-transform: uppercase;
  color: var(--teal); margin-bottom: 14px;
  display: flex; align-items: center; justify-content: center; gap: 16px;
}
.origin-map-eyebrow::before, .origin-map-eyebrow::after {
  content: ''; width: 40px; height: 1px; opacity: .5;
  background: linear-gradient(90deg, transparent, var(--teal));
}
.origin-map-eyebrow::after { transform: scaleX(-1); }
.origin-map-h2 {
  font-family: 'Playfair Display', serif;
  font-size: clamp(34px, 4.2vw, 58px); font-weight: 700;
  letter-spacing: -.025em; line-height: .95; color: var(--text-main); transition: color .5s;
}
.origin-map-h2 em {
  font-style: italic; font-weight: 400;
  background: linear-gradient(135deg, var(--teal), #38BDF8);
  -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
}
.origin-map-sub {
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(14px, 1.5vw, 18px); font-weight: 300; font-style: italic;
  color: rgba(240,244,248,.35); margin-top: 12px; letter-spacing: .04em;
}
[data-theme="light"] .origin-map-sub { color: rgba(30,40,60,.4); }

/* Map frame — matches .video-container */
.origin-map-frame {
  position: relative; border-radius: 24px; overflow: hidden;
  border: 1px solid rgba(0,201,177,.12);
  box-shadow: 0 0 0 1px rgba(255,255,255,.04), 0 30px 80px rgba(0,0,0,.6), 0 0 100px rgba(0,201,177,.04);
  background: #080f1e;
  opacity: 0; transform: translateY(32px) scale(.98);
  transition: opacity .9s .1s cubic-bezier(.16,1,.3,1), transform .9s .1s cubic-bezier(.16,1,.3,1);
}
.origin-map-frame.visible { opacity: 1; transform: translateY(0) scale(1); }
/* Top teal rule — matches mega-inner */
.origin-map-frame::before {
  content: '';
  position: absolute; top: 0; left: 0; right: 0; height: 2px;
  background: linear-gradient(90deg, transparent 5%, rgba(0,201,177,.5) 35%, rgba(124,58,237,.3) 65%, transparent 95%);
  z-index: 20; pointer-events: none;
}
#origin-map { width: 100%; height: 520px; z-index: 1; }

/* Leaflet overrides */
.leaflet-container { background: #060f1c !important; font-family: 'DM Sans', sans-serif !important; }
.leaflet-tile-pane { filter: brightness(.62) saturate(.5) hue-rotate(195deg); }
[data-theme="light"] .leaflet-tile-pane { filter: brightness(.78) saturate(.55) hue-rotate(10deg); }
.leaflet-control-zoom a {
  background: rgba(6,11,20,.85) !important; color: rgba(0,201,177,.7) !important;
  border-color: rgba(0,201,177,.2) !important;
}

/* Popup — matches .mega-inner glass */
.fxw-popup .leaflet-popup-content-wrapper {
  background: rgba(6,10,20,.97) !important;
  border: 1px solid rgba(0,201,177,.15) !important;
  border-top: 2px solid rgba(0,201,177,.5) !important;
  border-radius: 16px !important;
  box-shadow: 0 32px 80px rgba(0,0,0,.65), 0 0 0 1px rgba(255,255,255,.04) !important;
  backdrop-filter: blur(28px) saturate(160%); padding: 0 !important;
}
[data-theme="light"] .fxw-popup .leaflet-popup-content-wrapper {
  background: rgba(255,255,255,.98) !important;
  border-color: rgba(0,150,135,.2) !important; border-top-color: rgba(0,150,135,.5) !important;
  box-shadow: 0 24px 64px rgba(0,0,0,.18) !important;
}
.fxw-popup .leaflet-popup-content { margin: 0 !important; }
.fxw-popup .leaflet-popup-tip { background: rgba(6,10,20,.97) !important; }
[data-theme="light"] .fxw-popup .leaflet-popup-tip { background: rgba(255,255,255,.98) !important; }
.fxw-popup .leaflet-popup-close-button { color: rgba(0,201,177,.6) !important; top: 10px !important; right: 12px !important; font-size: 18px !important; }

.opin { padding: 20px 22px 18px; min-width: 210px; max-width: 265px; }
.opin-region { font-size: 9px; letter-spacing: .28em; text-transform: uppercase; color: var(--teal); margin-bottom: 4px; font-family: 'DM Sans', sans-serif; opacity: .8; }
.opin-name { font-family: 'Playfair Display', serif; font-size: 21px; font-weight: 700; letter-spacing: -.02em; line-height: 1.05; color: #f0f4f8; margin-bottom: 7px; }
[data-theme="light"] .opin-name { color: #1a2040; }
.opin-tagline { font-family: 'Cormorant Garamond', serif; font-size: 13px; font-style: italic; font-weight: 300; color: rgba(240,244,248,.4); letter-spacing: .02em; line-height: 1.55; margin-bottom: 12px; padding-bottom: 12px; border-bottom: 1px solid rgba(255,255,255,.06); }
[data-theme="light"] .opin-tagline { color: rgba(30,40,60,.45); border-bottom-color: rgba(0,0,0,.07); }
.opin-tags { display: flex; gap: 6px; flex-wrap: wrap; }
.opin-tag { font-size: 9px; letter-spacing: .14em; text-transform: uppercase; padding: 4px 10px; border-radius: 100px; background: rgba(0,201,177,.1); border: 1px solid rgba(0,201,177,.22); color: var(--teal); font-family: 'DM Sans', sans-serif; }
.opin-home   { background: rgba(52,211,153,.1); border-color: rgba(52,211,153,.25); color: var(--green); }
.opin-amber  { background: rgba(251,146,60,.1); border-color: rgba(251,146,60,.22); color: var(--amber); }
.opin-violet { background: rgba(168,85,247,.1); border-color: rgba(168,85,247,.22); color: var(--violet-mid); }
.opin-rose   { background: rgba(244,63,142,.1); border-color: rgba(244,63,142,.22); color: var(--rose); }

/* Map status bar — matches .live-badge */
.omap-status {
  position: absolute; top: 16px; left: 50%; transform: translateX(-50%);
  z-index: 20; display: flex; align-items: center; gap: 12px;
  padding: 9px 20px; border-radius: 100px;
  background: rgba(6,11,20,.68); backdrop-filter: blur(16px);
  border: 1px solid rgba(0,201,177,.15); pointer-events: none; white-space: nowrap;
}
.omap-live-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--teal); box-shadow: 0 0 8px var(--teal); animation: livePulse 1.6s ease-in-out infinite; flex-shrink: 0; }
.omap-status-text { font-size: 9px; letter-spacing: .2em; text-transform: uppercase; color: rgba(240,244,248,.4); font-family: 'DM Sans', sans-serif; }
.omap-status-text span { color: rgba(0,201,177,.75); }

/* Chips row — matches .dest-filters */
.omap-chips {
  display: flex; gap: 8px; flex-wrap: wrap; align-items: center;
  padding: 20px 24px;
  background: rgba(6,11,20,.5); backdrop-filter: blur(10px);
  border-top: 1px solid rgba(0,201,177,.07);
}
[data-theme="light"] .omap-chips { background: rgba(255,255,255,.65); border-top-color: rgba(0,140,125,.1); }
.omap-chips-label { font-size: 9px; letter-spacing: .3em; text-transform: uppercase; color: rgba(240,244,248,.22); font-family: 'DM Sans', sans-serif; flex-shrink: 0; }
[data-theme="light"] .omap-chips-label { color: rgba(30,40,60,.3); }

/* Chips — match .filter-pill exactly */
.omap-chip {
  font-family: 'DM Sans', sans-serif;
  font-size: 10px; font-weight: 500; letter-spacing: .2em; text-transform: uppercase;
  padding: 8px 18px; border-radius: 100px; cursor: none;
  border: 1px solid rgba(240,244,248,.1); background: transparent; color: rgba(240,244,248,.35);
  transition: border-color .3s, color .3s, background .3s, transform .25s; position: relative; overflow: hidden;
}
[data-theme="light"] .omap-chip { border-color: rgba(0,0,0,.12); color: rgba(30,40,60,.45); background: rgba(255,255,255,.55); }
.omap-chip::before { content: ''; position: absolute; inset: 0; border-radius: 100px; background: rgba(0,201,177,.12); opacity: 0; transition: opacity .3s; }
.omap-chip:hover, .omap-chip.omap-active { color: #f0f4f8; border-color: rgba(0,201,177,.5); transform: translateY(-2px); }
[data-theme="light"] .omap-chip:hover, [data-theme="light"] .omap-chip.omap-active { color: #007a68; border-color: rgba(0,140,125,.4); }
.omap-chip:hover::before, .omap-chip.omap-active::before { opacity: 1; }
.omap-chip.omap-home { border-color: rgba(52,211,153,.3); color: var(--green); background: rgba(52,211,153,.07); }
.omap-chip.omap-home::before { background: rgba(52,211,153,.1); }
.omap-chip.omap-home:hover, .omap-chip.omap-home.omap-active { border-color: rgba(52,211,153,.55); color: var(--green); }

/* ── PART 4: DEST GRID — matches .dest-grid card style ── */

/* Light theme overrides for origin section */
[data-theme="light"] .origin-section { background: #f5f2ee; }
[data-theme="light"] .origin-section::before { background: radial-gradient(ellipse 65% 50% at 30% 40%, rgba(251,146,60,.055), transparent 65%), radial-gradient(ellipse 55% 45% at 75% 60%, rgba(124,58,237,.04), transparent 65%); }
[data-theme="light"] .origin-h2,
[data-theme="light"] .mani-h3,
[data-theme="light"] .origin-map-h2,

/* ── Scroll reveal — same pattern as .reveal ── */
.o-reveal {
  opacity: 0; transform: translateY(40px);
  transition: opacity .8s cubic-bezier(.16,1,.3,1), transform .8s cubic-bezier(.16,1,.3,1);
}
.o-reveal.visible { opacity: 1; transform: translateY(0); }
.o-reveal-d1 { transition-delay: .1s; }
.o-reveal-d2 { transition-delay: .2s; }

/* ═══════════════════════════════════════════════════════
   TESTIMONIALS
═══════════════════════════════════════════════════════ */
/* ── Section shell ── */
.legacy-section {
  position: relative;
  background: #04080f;
  overflow: hidden;
}
[data-theme="light"] .legacy-section {
  background: #f8f5f0;
}

/* ── Part 1: Text + Editorial layout ── */
.legacy-editorial {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
  min-height: 100vh;
  align-items: stretch;
}

/* Left column — big year + decorative */
.legacy-left {
  position: relative;
  padding: 120px 64px 80px 80px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  border-right: 1px solid rgba(255,255,255,.05);
  overflow: hidden;
}
[data-theme="light"] .legacy-left {
  border-right-color: rgba(0,0,0,.07);
}

/* Giant ghost year */
.legacy-year-bg {
  position: absolute;
  bottom: -40px; left: -20px;
  font-family: 'Playfair Display', serif;
  font-size: clamp(180px, 22vw, 300px);
  font-weight: 700;
  letter-spacing: -.06em;
  color: transparent;
  -webkit-text-stroke: 1px rgba(0,201,177,.07);
  user-select: none;
  pointer-events: none;
  line-height: 1;
  white-space: nowrap;
}
[data-theme="light"] .legacy-year-bg {
  -webkit-text-stroke: 1px rgba(0,150,135,.06);
}

/* Top: eyebrow + title */
.legacy-left-top {
  position: relative;
  z-index: 2;
  opacity: 0;
  transform: translateY(30px);
  transition: opacity .8s cubic-bezier(.16,1,.3,1), transform .8s cubic-bezier(.16,1,.3,1);
}
.legacy-left-top.visible { opacity: 1; transform: translateY(0); }

.legacy-eyebrow {
  font-size: 10px;
  letter-spacing: .5em;
  text-transform: uppercase;
  color: var(--teal);
  margin-bottom: 22px;
  display: flex;
  align-items: center;
  gap: 14px;
}
.legacy-eyebrow::after {
  content: '';
  flex: 1;
  height: 1px;
  background: linear-gradient(90deg, rgba(0,201,177,.4), transparent);
}

.legacy-title {
  font-family: 'Playfair Display', serif;
  font-size: clamp(46px, 5.5vw, 80px);
  font-weight: 700;
  letter-spacing: -.03em;
  line-height: .92;
  color: #f0f4f8;
}
[data-theme="light"] .legacy-title { color: #1a2040; }

.legacy-title em {
  display: block;
  font-style: italic;
  font-weight: 400;
  background: linear-gradient(135deg, #00C9B1 0%, #38BDF8 55%, #A855F7 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

/* Timeline pill bottom-left */
.legacy-timeline {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  gap: 0;
  opacity: 0;
  transform: translateY(20px);
  transition: opacity .8s .25s cubic-bezier(.16,1,.3,1), transform .8s .25s cubic-bezier(.16,1,.3,1);
}
.legacy-timeline.visible { opacity: 1; transform: translateY(0); }

.timeline-item {
  display: flex;
  align-items: flex-start;
  gap: 20px;
  padding: 20px 0;
  border-top: 1px solid rgba(255,255,255,.05);
  position: relative;
}
[data-theme="light"] .timeline-item { border-top-color: rgba(0,0,0,.07); }
.timeline-item:last-child { border-bottom: 1px solid rgba(255,255,255,.05); }
[data-theme="light"] .timeline-item:last-child { border-bottom-color: rgba(0,0,0,.07); }

.tl-year {
  font-family: 'Playfair Display', serif;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .04em;
  color: rgba(0,201,177,.6);
  flex-shrink: 0;
  width: 40px;
  padding-top: 2px;
}
.tl-dot {
  flex-shrink: 0;
  width: 8px; height: 8px;
  border-radius: 50%;
  background: rgba(0,201,177,.25);
  border: 1px solid rgba(0,201,177,.4);
  margin-top: 5px;
  position: relative;
  transition: background .3s, transform .3s;
}
.tl-dot::before {
  content: '';
  position: absolute;
  top: 50%; left: 50%;
  transform: translate(-50%,-50%);
  width: 4px; height: 4px;
  border-radius: 50%;
  background: var(--teal);
}
.timeline-item:hover .tl-dot {
  background: rgba(0,201,177,.5);
  transform: scale(1.4);
}
.tl-text {
  font-size: 12px;
  font-weight: 300;
  line-height: 1.6;
  color: rgba(240,244,248,.35);
  letter-spacing: .01em;
}
[data-theme="light"] .tl-text { color: rgba(30,40,60,.45); }
.tl-text strong {
  display: block;
  font-size: 13px;
  font-weight: 500;
  color: rgba(240,244,248,.7);
  margin-bottom: 2px;
}
[data-theme="light"] .tl-text strong { color: rgba(30,40,60,.75); }

/* Right column — body text */
.legacy-right {
  padding: 120px 80px 80px 64px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 36px;
}

.legacy-body-wrap {
  opacity: 0;
  transform: translateX(24px);
  transition: opacity .8s .1s cubic-bezier(.16,1,.3,1), transform .8s .1s cubic-bezier(.16,1,.3,1);
}
.legacy-body-wrap.visible { opacity: 1; transform: translateX(0); }

.legacy-intro {
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(20px, 2.2vw, 30px);
  font-weight: 400;
  font-style: italic;
  line-height: 1.55;
  color: rgba(240,244,248,.7);
  letter-spacing: .01em;
  margin-bottom: 30px;
  padding-left: 20px;
  border-left: 2px solid rgba(0,201,177,.35);
}
[data-theme="light"] .legacy-intro {
  color: rgba(30,40,60,.65);
  border-left-color: rgba(0,150,135,.4);
}

.legacy-body p {
  font-size: 15px;
  font-weight: 300;
  line-height: 1.85;
  color: rgba(240,244,248,.38);
  letter-spacing: .015em;
  margin-bottom: 22px;
}
[data-theme="light"] .legacy-body p { color: rgba(30,40,60,.48); }
.legacy-body p:last-child { margin-bottom: 0; }

/* Read more link */
.legacy-read-more {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: 'DM Sans', sans-serif;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: .25em;
  text-transform: uppercase;
  color: var(--teal);
  text-decoration: none;
  position: relative;
  padding-bottom: 4px;
  cursor: none;
  transition: gap .3s cubic-bezier(.16,1,.3,1), color .3s;
}
.legacy-read-more::after {
  content: '';
  position: absolute;
  bottom: 0; left: 0;
  width: 0; height: 1px;
  background: linear-gradient(90deg, var(--teal), #38BDF8);
  transition: width .45s cubic-bezier(.16,1,.3,1);
}
.legacy-read-more:hover { gap: 16px; }
.legacy-read-more:hover::after { width: 100%; }
.legacy-read-more .arrow {
  font-size: 16px;
  transition: transform .3s cubic-bezier(.16,1,.3,1);
}
.legacy-read-more:hover .arrow { transform: translateX(5px); }

/* Decorative quote mark */
.legacy-quote-mark {
  font-family: 'Playfair Display', serif;
  font-size: 120px;
  line-height: .7;
  color: rgba(0,201,177,.06);
  font-style: italic;
  user-select: none;
  pointer-events: none;
  align-self: flex-start;
  margin-bottom: -20px;
}
[data-theme="light"] .legacy-quote-mark { color: rgba(0,150,135,.07); }

/* Divider between editorial and video */
.legacy-divider {
  position: relative;
  z-index: 2;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(0,201,177,.2) 30%, rgba(0,201,177,.2) 70%, transparent);
}

/* ══════════════════════════════
   VIDEO SECTION
══════════════════════════════ */
.legacy-video-wrap {
  position: relative;
  z-index: 2;
  padding: 100px 80px 120px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 56px;
}

.video-header {
  text-align: center;
  opacity: 0;
  transform: translateY(24px);
  transition: opacity .8s cubic-bezier(.16,1,.3,1), transform .8s cubic-bezier(.16,1,.3,1);
}
.video-header.visible { opacity: 1; transform: translateY(0); }

.video-header-eyebrow {
  font-size: 10px;
  letter-spacing: .5em;
  text-transform: uppercase;
  color: var(--teal);
  margin-bottom: 16px;
}
.video-header-title {
  font-family: 'Playfair Display', serif;
  font-size: clamp(30px, 4vw, 54px);
  font-weight: 700;
  letter-spacing: -.025em;
  color: #f0f4f8;
  line-height: 1.05;
}
[data-theme="light"] .video-header-title { color: #1a2040; }
.video-header-title em {
  font-style: italic; font-weight: 400;
  background: linear-gradient(135deg, #00C9B1, #38BDF8);
  -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
}

/* Video player container */
.video-container {
  position: relative;
  width: 100%;
  max-width: 1100px;
  border-radius: 24px;
  overflow: hidden;
  opacity: 0;
  transform: translateY(32px) scale(.98);
  transition: opacity .9s .15s cubic-bezier(.16,1,.3,1), transform .9s .15s cubic-bezier(.16,1,.3,1);
  box-shadow:
    0 0 0 1px rgba(0,201,177,.12),
    0 30px 80px rgba(0,0,0,.6),
    0 0 100px rgba(0,201,177,.06);
}
.video-container.visible { opacity: 1; transform: translateY(0) scale(1); }

/* Aspect ratio box */
.video-aspect {
  position: relative;
  padding-bottom: 56.25%; /* 16:9 */
  height: 0;
  background: #080f1e;
}

/* Cinematic placeholder — will show when no src is set */
.video-placeholder {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

/* Scenic gradient background in placeholder */
.video-scene {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 70% 60% at 25% 60%, rgba(0,201,177,.12) 0%, transparent 55%),
    radial-gradient(ellipse 60% 70% at 75% 35%, rgba(56,189,248,.10) 0%, transparent 55%),
    radial-gradient(ellipse 50% 50% at 50% 80%, rgba(124,58,237,.09) 0%, transparent 55%),
    linear-gradient(165deg, #061020 0%, #0c1a30 35%, #081525 65%, #040c18 100%);
}

/* Floating landscape shapes */
.video-mountain {
  position: absolute;
  bottom: 0;
  border-style: solid;
  border-color: transparent;
}
.vm-1 {
  left: -5%; width: 0; height: 0;
  border-left: 35vw solid transparent;
  border-right: 20vw solid transparent;
  border-bottom: 28vw solid rgba(0,30,55,.7);
}
.vm-2 {
  left: 18%; width: 0; height: 0;
  border-left: 28vw solid transparent;
  border-right: 18vw solid transparent;
  border-bottom: 22vw solid rgba(0,22,40,.85);
}
.vm-3 {
  right: -5%; width: 0; height: 0;
  border-left: 32vw solid transparent;
  border-right: 25vw solid transparent;
  border-bottom: 24vw solid rgba(0,26,48,.75);
}
/* Snow peaks */
.vm-1::before {
  content: '';
  position: absolute;
  top: -28vw; left: -4vw;
  width: 0; height: 0;
  border-left: 5vw solid transparent;
  border-right: 5vw solid transparent;
  border-bottom: 6vw solid rgba(200,230,255,.15);
}
.vm-2::before {
  content: '';
  position: absolute;
  top: -22vw; left: -3vw;
  width: 0; height: 0;
  border-left: 4vw solid transparent;
  border-right: 4vw solid transparent;
  border-bottom: 5vw solid rgba(200,230,255,.1);
}

/* Aurora in video background */
.video-aurora {
  position: absolute;
  inset: 0;
  pointer-events: none;
  overflow: hidden;
}
.va-band {
  position: absolute;
  border-radius: 50%;
  filter: blur(60px);
  opacity: 0;
  animation: auroraFloat 10s ease-in-out infinite;
}
.va-band:nth-child(1) {
  width: 55%; height: 120px;
  background: linear-gradient(90deg, rgba(0,201,177,.18), rgba(56,189,248,.14));
  top: 22%; left: 5%;
  animation-delay: 0s;
}
.va-band:nth-child(2) {
  width: 45%; height: 90px;
  background: linear-gradient(90deg, rgba(124,58,237,.14), rgba(244,63,142,.1));
  top: 35%; right: 5%;
  animation-delay: -4s;
}
.va-band:nth-child(3) {
  width: 60%; height: 100px;
  background: linear-gradient(90deg, rgba(56,189,248,.1), rgba(0,201,177,.12));
  top: 50%; left: 15%;
  animation-delay: -7s;
}

/* Star field inside video */
.video-stars { position: absolute; inset: 0; pointer-events: none; }
.vs { position: absolute; border-radius: 50%; background: white; animation: starPulse 3s ease-in-out infinite; }

/* Play button */
.play-btn-wrap {
  position: relative;
  z-index: 5;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 18px;
}
.play-btn {
  position: relative;
  width: 80px; height: 80px;
  border-radius: 50%;
  background: rgba(255,255,255,.1);
  backdrop-filter: blur(12px);
  border: 1px solid rgba(255,255,255,.2);
  display: flex; align-items: center; justify-content: center;
  cursor: none;
  transition: transform .35s cubic-bezier(.16,1,.3,1), background .3s, box-shadow .3s, border-color .3s;
  box-shadow: 0 0 0 0 rgba(0,201,177,0);
}
.play-btn::before {
  content: '';
  position: absolute; inset: -10px;
  border-radius: 50%;
  border: 1px solid rgba(0,201,177,.2);
  animation: playRing 2.2s ease-out infinite;
}
.play-btn::after {
  content: '';
  position: absolute; inset: -22px;
  border-radius: 50%;
  border: 1px solid rgba(0,201,177,.1);
  animation: playRing 2.2s .7s ease-out infinite;
}
@keyframes playRing {
  0%   { transform: scale(1); opacity: .5; }
  100% { transform: scale(1.4); opacity: 0; }
}
.play-btn:hover {
  transform: scale(1.12);
  background: rgba(0,201,177,.2);
  border-color: rgba(0,201,177,.5);
  box-shadow: 0 0 40px rgba(0,201,177,.3);
}
.play-triangle {
  width: 0; height: 0;
  border-top: 12px solid transparent;
  border-bottom: 12px solid transparent;
  border-left: 20px solid rgba(255,255,255,.9);
  margin-left: 4px;
  transition: border-left-color .3s;
}
.play-btn:hover .play-triangle { border-left-color: #fff; }
.play-label {
  font-size: 10px;
  letter-spacing: .35em;
  text-transform: uppercase;
  color: rgba(255,255,255,.4);
  font-family: 'DM Sans', sans-serif;
}

/* Video duration badge */
.video-duration {
  position: absolute;
  bottom: 18px; right: 22px;
  z-index: 5;
  font-family: 'DM Sans', sans-serif;
  font-size: 11px;
  letter-spacing: .12em;
  color: rgba(255,255,255,.5);
  background: rgba(0,0,0,.4);
  backdrop-filter: blur(8px);
  padding: 5px 12px;
  border-radius: 100px;
  border: 1px solid rgba(255,255,255,.1);
}

/* Chapter badges */
.video-chapter {
  position: absolute;
  z-index: 5;
  padding: 6px 14px;
  border-radius: 100px;
  font-size: 9px;
  letter-spacing: .2em;
  text-transform: uppercase;
  backdrop-filter: blur(8px);
  font-family: 'DM Sans', sans-serif;
}
.vc-1 {
  top: 18px; left: 22px;
  background: rgba(0,201,177,.12);
  border: 1px solid rgba(0,201,177,.25);
  color: rgba(0,201,177,.8);
}
.vc-2 {
  top: 18px; right: 22px;
  background: rgba(0,0,0,.3);
  border: 1px solid rgba(255,255,255,.1);
  color: rgba(255,255,255,.4);
}

/* Progress scrubber on bottom */
.video-scrubber {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 3px;
  background: rgba(255,255,255,.1);
  z-index: 5;
}
.video-scrubber-fill {
  height: 100%;
  width: 35%;
  background: linear-gradient(90deg, var(--teal), #38BDF8);
  border-radius: 0 2px 2px 0;
  position: relative;
}
.video-scrubber-fill::after {
  content: '';
  position: absolute;
  right: -4px; top: 50%;
  transform: translateY(-50%);
  width: 8px; height: 8px;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 0 6px rgba(0,201,177,.5);
}

/* Actual video tag */
.legacy-video-el {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  display: none; /* shown when src is set */
}

/* ── Ambient glow under video ── */
.video-glow {
  position: absolute;
  left: 50%; bottom: -60px;
  transform: translateX(-50%);
  width: 70%; height: 120px;
  background: radial-gradient(ellipse 80% 100% at 50% 0%, rgba(0,201,177,.15), transparent 80%);
  filter: blur(30px);
  pointer-events: none;
  z-index: 1;
}

/* ═══════════════════════════════════════════════════════
   ZOOM — KIDS CLUB + WHEN TO GO
═══════════════════════════════════════════════════════ */
/* ── Section shell ── */
.testimonials-section {
  position: relative;
  overflow: hidden;
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* ── Parallax background image ── */
.testi-bg {
  position: absolute;
  inset: -20%;
  background-image: url('https://i.pinimg.com/736x/d0/12/81/d0128142868c089bb36ae15a0249f5d9.jpg');
  background-size: cover;
  background-position: center 40%;
  will-change: transform;
  z-index: 0;
  filter: brightness(0.45) saturate(0.85);
  transition: filter .6s;
}

/* Multi-layer overlay for cinematic depth */
.testi-overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(to bottom,
      rgba(4,8,15,.75) 0%,
      rgba(4,8,15,.3) 20%,
      rgba(4,8,15,.15) 50%,
      rgba(4,8,15,.3) 80%,
      rgba(4,8,15,.8) 100%
    ),
    radial-gradient(ellipse 80% 60% at 50% 50%, rgba(0,201,177,.04), transparent 70%);
}

/* Grain texture */
.testi-grain {
  position: absolute; inset: 0; z-index: 2;
  pointer-events: none;
  opacity: .03;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  background-size: 180px 180px;
  animation: grainShift .1s steps(1) infinite;
}

/* ── Inner layout ── */
.testi-inner {
  position: relative;
  z-index: 3;
  width: 100%;
  max-width: 1280px;
  padding: 120px 80px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 70px;
}

/* ── Header ── */
.testi-header {
  text-align: center;
  opacity: 0;
  transform: translateY(28px);
  transition: opacity .9s cubic-bezier(.16,1,.3,1), transform .9s cubic-bezier(.16,1,.3,1);
}
.testi-header.visible { opacity: 1; transform: translateY(0); }

.testi-eyebrow {
  font-size: 10px;
  letter-spacing: .55em;
  text-transform: uppercase;
  color: rgba(0,201,177,.8);
  margin-bottom: 18px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
}
.testi-eyebrow::before, .testi-eyebrow::after {
  content: '';
  width: 40px; height: 1px;
  background: linear-gradient(90deg, transparent, rgba(0,201,177,.5));
}
.testi-eyebrow::after {
  background: linear-gradient(90deg, rgba(0,201,177,.5), transparent);
}
.testi-title {
  font-family: 'Playfair Display', serif;
  font-size: clamp(38px, 5vw, 68px);
  font-weight: 700;
  letter-spacing: -.03em;
  line-height: .95;
  color: #fff;
}
.testi-title em {
  font-style: italic;
  font-weight: 400;
  background: linear-gradient(135deg, #00C9B1, #38BDF8);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

/* ── Featured quote (large center) ── */
.testi-featured {
  width: 100%;
  max-width: 800px;
  text-align: center;
  opacity: 0;
  transform: translateY(32px) scale(.98);
  transition: opacity .9s .15s cubic-bezier(.16,1,.3,1), transform .9s .15s cubic-bezier(.16,1,.3,1);
  position: relative;
}
.testi-featured.visible { opacity: 1; transform: translateY(0) scale(1); }

/* Decorative quote mark */
.testi-qmark {
  font-family: 'Playfair Display', serif;
  font-size: 160px;
  line-height: .55;
  color: rgba(0,201,177,.12);
  font-style: italic;
  pointer-events: none;
  user-select: none;
  display: block;
  margin-bottom: -20px;
}

.testi-featured-quote {
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(22px, 3vw, 38px);
  font-weight: 400;
  font-style: italic;
  line-height: 1.5;
  color: rgba(255,255,255,.88);
  letter-spacing: .01em;
  margin-bottom: 28px;
  text-shadow: 0 2px 30px rgba(0,0,0,.4);
  position: relative;
  z-index: 1;
}

.testi-featured-author {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
}
.tfa-avatar {
  width: 44px; height: 44px;
  border-radius: 50%;
  background: linear-gradient(135deg, rgba(0,201,177,.3), rgba(56,189,248,.2));
  border: 1.5px solid rgba(0,201,177,.35);
  display: flex; align-items: center; justify-content: center;
  font-size: 18px;
}
.tfa-info { text-align: left; }
.tfa-name {
  font-family: 'DM Sans', sans-serif;
  font-size: 13px;
  font-weight: 500;
  color: rgba(255,255,255,.8);
  letter-spacing: .04em;
}
.tfa-detail {
  font-size: 10px;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: rgba(0,201,177,.6);
  margin-top: 2px;
}
.tfa-divider {
  width: 1px; height: 30px;
  background: rgba(255,255,255,.15);
}
.tfa-stars {
  display: flex; gap: 3px;
  font-size: 12px;
  color: #FB923C;
}

/* ── Cards row ── */
/* ── Window Carousel wrapper ── */
.testi-carousel-outer {
  position: relative;
  width: 100%;
  opacity: 0;
  transform: translateY(28px);
  transition: opacity .85s .25s cubic-bezier(.16,1,.3,1), transform .85s .25s cubic-bezier(.16,1,.3,1);
}
.testi-carousel-outer.visible { opacity: 1; transform: translateY(0); }

.testi-carousel-viewport {
  overflow: hidden;
  width: 100%;
  padding: 24px 0 32px;
  /* fade edges */
  mask-image: linear-gradient(90deg, transparent 0%, black 12%, black 88%, transparent 100%);
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, black 12%, black 88%, transparent 100%);
  cursor: grab;
  user-select: none;
}
.testi-carousel-viewport:active { cursor: grabbing; }

.testi-cards {
  display: flex;
  gap: 24px;
  transition: transform .65s cubic-bezier(.16,1,.3,1);
  will-change: transform;
  align-items: stretch;
}

.testi-card {
  flex-shrink: 0;
  width: 480px;
  position: relative;
  padding: 36px 32px 30px;
  border-radius: 22px;
  background: rgba(255,255,255,.055);
  border: 1px solid rgba(255,255,255,.1);
  backdrop-filter: blur(18px) saturate(160%);
  -webkit-backdrop-filter: blur(18px) saturate(160%);
  cursor: default;
  overflow: hidden;
  transition: transform .55s cubic-bezier(.16,1,.3,1),
              background .35s,
              border-color .35s,
              box-shadow .45s,
              opacity .5s;
  opacity: .45;
  transform: scale(.93);
}
/* Active center card */
.testi-card.tc-active {
  opacity: 1;
  transform: scale(1);
}
.testi-card::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 22px;
  background: linear-gradient(135deg, rgba(255,255,255,.05), transparent 60%);
  pointer-events: none;
}
/* Accent top stripe */
.testi-card::after {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0; height: 2px;
  border-radius: 22px 22px 0 0;
  background: var(--card-accent, linear-gradient(90deg, #00C9B1, #38BDF8));
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .5s cubic-bezier(.16,1,.3,1);
}
.testi-card.tc-active::after { transform: scaleX(1); }
.testi-card.tc-active { background: rgba(255,255,255,.09); border-color: rgba(255,255,255,.18); box-shadow: 0 24px 70px rgba(0,0,0,.45), 0 0 0 1px rgba(255,255,255,.1); }

/* ── Carousel nav ── */
.testi-nav {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 18px;
  margin-top: 8px;
}
.tcnav-btn {
  width: 46px; height: 46px;
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-size: 17px;
  cursor: none;
  transition: transform .25s cubic-bezier(.16,1,.3,1), background .3s, border-color .3s, box-shadow .3s;
}
.tcnav-btn.tc-prev {
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.14);
  color: rgba(255,255,255,.6);
}
.tcnav-btn.tc-next {
  background: linear-gradient(135deg, #00C9B1, #4EEBD8);
  border: none;
  color: #06111e;
  box-shadow: 0 4px 18px rgba(0,201,177,.35);
}
.tcnav-btn.tc-prev:hover { background: rgba(255,255,255,.14); border-color: rgba(255,255,255,.3); transform: scale(1.1); color: #fff; }
.tcnav-btn.tc-next:hover { box-shadow: 0 6px 28px rgba(0,201,177,.55); transform: scale(1.1); }

.tc-dots { display: flex; gap: 8px; align-items: center; }
.tc-dot {
  width: 7px; height: 7px;
  border-radius: 50%;
  background: rgba(255,255,255,.2);
  cursor: none;
  transition: width .35s, background .35s, border-radius .35s;
}
.tc-dot.active { width: 26px; border-radius: 4px; background: var(--teal); }

/* Mini quote */
.card-qmark {
  font-family: 'Playfair Display', serif;
  font-size: 42px;
  line-height: .7;
  color: rgba(0,201,177,.25);
  font-style: italic;
  margin-bottom: 12px;
  display: block;
  user-select: none;
}
.card-quote {
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(14px, 1.4vw, 18px);
  font-weight: 400;
  font-style: italic;
  line-height: 1.65;
  color: rgba(255,255,255,.72);
  margin-bottom: 22px;
  letter-spacing: .01em;
}
.card-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-top: 18px;
  border-top: 1px solid rgba(255,255,255,.08);
  gap: 12px;
}
.card-author {
  display: flex;
  align-items: center;
  gap: 10px;
}
.card-avatar {
  width: 34px; height: 34px;
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-size: 15px;
  flex-shrink: 0;
  border: 1px solid rgba(255,255,255,.12);
}
.card-name {
  font-family: 'DM Sans', sans-serif;
  font-size: 12px;
  font-weight: 500;
  color: rgba(255,255,255,.7);
  letter-spacing: .03em;
}
.card-dest {
  font-size: 9px;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: rgba(0,201,177,.55);
  margin-top: 2px;
}
.card-rating {
  display: flex;
  gap: 2px;
  font-size: 10px;
  color: #FB923C;
  flex-shrink: 0;
}

/* ── Bottom trust bar ── */
.testi-trust {
  display: flex;
  align-items: center;
  gap: 40px;
  opacity: 0;
  transform: translateY(16px);
  transition: opacity .8s .35s cubic-bezier(.16,1,.3,1), transform .8s .35s cubic-bezier(.16,1,.3,1);
  flex-wrap: wrap;
  justify-content: center;
}
.testi-trust.visible { opacity: 1; transform: translateY(0); }

.trust-item {
  display: flex;
  align-items: center;
  gap: 10px;
  font-family: 'DM Sans', sans-serif;
}
.trust-num {
  font-family: 'Playfair Display', serif;
  font-size: clamp(26px, 3vw, 40px);
  font-weight: 700;
  letter-spacing: -.03em;
  color: #fff;
}
.trust-label {
  font-size: 10px;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: rgba(255,255,255,.35);
  line-height: 1.4;
  max-width: 80px;
}
.trust-sep {
  width: 1px; height: 40px;
  background: rgba(255,255,255,.1);
}

/* ═══════════════════════════════════════════════════════
   WHY SECTION ACCORDION
═══════════════════════════════════════════════════════ */
.zoom-section {
  position: relative;
  background: #04080f;
  padding: 100px 72px 110px;
  overflow: hidden;
}
[data-theme="light"] .zoom-section {
  background: #f0ece6;
}

/* Subtle background grid */
.zoom-section::before {
  content: '';
  position: absolute; inset: 0;
  pointer-events: none;
  background-image:
    linear-gradient(rgba(0,201,177,.025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(0,201,177,.025) 1px, transparent 1px);
  background-size: 80px 80px;
  mask-image: radial-gradient(ellipse 85% 85% at 50% 50%, black, transparent);
}

/* ── Section header ── */
.zoom-header {
  text-align: center;
  margin-bottom: 60px;
  opacity: 0;
  transform: translateY(24px);
  transition: opacity .7s cubic-bezier(.16,1,.3,1), transform .7s cubic-bezier(.16,1,.3,1);
}
.zoom-header.visible { opacity: 1; transform: translateY(0); }

.zoom-header-eyebrow {
  font-size: 10px;
  letter-spacing: .5em;
  text-transform: uppercase;
  color: var(--teal);
  margin-bottom: 14px;
}
.zoom-header-title {
  font-family: 'Playfair Display', serif;
  font-size: clamp(34px, 4vw, 54px);
  font-weight: 700;
  letter-spacing: -.025em;
  color: #f0f4f8;
  line-height: 1;
}
[data-theme="light"] .zoom-header-title { color: #1a2040; }
.zoom-header-title em {
  font-style: italic; font-weight: 400;
  background: linear-gradient(135deg, #00C9B1, #38BDF8);
  -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
}

/* ── Two-box grid ── */
.zoom-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  max-width: 1200px;
  margin: 0 auto;
}

/* ── Each zoom box ── */
.zoom-box {
  position: relative;
  height: 580px;
  border-radius: 24px;
  overflow: hidden;
  cursor: none;
  opacity: 0;
  transform: translateY(40px) scale(.97);
  transition:
    opacity .8s cubic-bezier(.16,1,.3,1),
    transform .8s cubic-bezier(.16,1,.3,1);
}
.zoom-box.visible { opacity: 1; transform: translateY(0) scale(1); }
.zoom-box:nth-child(1) { transition-delay: .05s; }
.zoom-box:nth-child(2) { transition-delay: .18s; }

/* ── Background image — zoom on hover ── */
.zoom-bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  transform: scale(1);
  transition: transform 1.1s cubic-bezier(.16,1,.3,1), filter 1.1s;
  will-change: transform;
  filter: brightness(.55) saturate(.9);
}
.zoom-box:hover .zoom-bg {
  transform: scale(1.1);
  filter: brightness(.38) saturate(.85);
}

/* ── Multi-layer overlay ── */
.zoom-overlay {
  position: absolute; inset: 0;
  background:
    linear-gradient(to bottom,
      transparent 0%,
      transparent 35%,
      rgba(4,8,15,.45) 60%,
      rgba(4,8,15,.88) 100%
    );
  transition: background .7s;
  z-index: 1;
}
.zoom-box:hover .zoom-overlay {
  background:
    linear-gradient(to bottom,
      rgba(4,8,15,.1) 0%,
      rgba(4,8,15,.3) 40%,
      rgba(4,8,15,.75) 70%,
      rgba(4,8,15,.95) 100%
    );
}

/* ── Accent color tint per box ── */
.zoom-tint {
  position: absolute; inset: 0; z-index: 2;
  opacity: 0;
  transition: opacity .7s;
}
.zoom-box:hover .zoom-tint { opacity: 1; }

/* ── Tag chip (top-left) ── */
.zoom-tag {
  position: absolute;
  top: 24px; left: 24px;
  z-index: 4;
  font-family: 'DM Sans', sans-serif;
  font-size: 9px;
  font-weight: 500;
  letter-spacing: .22em;
  text-transform: uppercase;
  padding: 7px 16px;
  border-radius: 100px;
  backdrop-filter: blur(10px);
  border: 1px solid rgba(255,255,255,.15);
  color: rgba(255,255,255,.75);
  background: rgba(0,0,0,.25);
  transition: background .4s, border-color .4s, color .4s;
}
.zoom-box:hover .zoom-tag {
  color: #fff;
  background: rgba(0,0,0,.4);
  border-color: rgba(255,255,255,.28);
}

/* ── Arrow button (top-right) ── */
.zoom-arrow {
  position: absolute;
  top: 22px; right: 22px;
  z-index: 4;
  width: 40px; height: 40px;
  border-radius: 50%;
  background: rgba(255,255,255,.08);
  backdrop-filter: blur(10px);
  border: 1px solid rgba(255,255,255,.14);
  display: flex; align-items: center; justify-content: center;
  font-size: 16px;
  color: rgba(255,255,255,.5);
  opacity: 0;
  transform: scale(.7) rotate(-45deg);
  transition: opacity .4s, transform .45s cubic-bezier(.16,1,.3,1), background .3s, color .3s;
}
.zoom-box:hover .zoom-arrow {
  opacity: 1;
  transform: scale(1) rotate(0deg);
  background: rgba(255,255,255,.15);
  color: #fff;
}

/* ── Bottom content ── */
.zoom-content {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  z-index: 4;
  padding: 32px 36px 36px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

/* Icon badge */
.zoom-icon {
  width: 48px; height: 48px;
  border-radius: 14px;
  display: flex; align-items: center; justify-content: center;
  font-size: 22px;
  backdrop-filter: blur(8px);
  border: 1px solid rgba(255,255,255,.12);
  background: rgba(255,255,255,.08);
  transform: translateY(6px);
  opacity: 0;
  transition: transform .55s .1s cubic-bezier(.16,1,.3,1), opacity .55s .1s;
}
.zoom-box:hover .zoom-icon { transform: translateY(0); opacity: 1; }

.zoom-title {
  font-family: 'Playfair Display', serif;
  font-size: clamp(26px, 2.8vw, 38px);
  font-weight: 700;
  letter-spacing: -.02em;
  line-height: 1.05;
  color: #fff;
  text-shadow: 0 2px 20px rgba(0,0,0,.5);
  transform: translateY(4px);
  transition: transform .5s cubic-bezier(.16,1,.3,1);
}
.zoom-box:hover .zoom-title { transform: translateY(0); }

.zoom-desc {
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(14px, 1.4vw, 18px);
  font-weight: 300;
  font-style: italic;
  line-height: 1.65;
  color: rgba(255,255,255,.55);
  max-height: 0;
  overflow: hidden;
  opacity: 0;
  transform: translateY(10px);
  transition:
    max-height .6s cubic-bezier(.16,1,.3,1),
    opacity .5s .08s,
    transform .5s .08s cubic-bezier(.16,1,.3,1);
}
.zoom-box:hover .zoom-desc {
  max-height: 120px;
  opacity: 1;
  transform: translateY(0);
}

/* Read more CTA */
.zoom-cta {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: 'DM Sans', sans-serif;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: .25em;
  text-transform: uppercase;
  color: var(--teal);
  text-decoration: none;
  padding-top: 4px;
  position: relative;
  width: fit-content;
  opacity: 0;
  transform: translateY(8px);
  transition: opacity .5s .15s, transform .5s .15s cubic-bezier(.16,1,.3,1), gap .3s;
  cursor: none;
}
.zoom-cta::after {
  content: '';
  position: absolute;
  bottom: -3px; left: 0;
  width: 0; height: 1px;
  background: var(--teal);
  transition: width .4s cubic-bezier(.16,1,.3,1);
}
.zoom-box:hover .zoom-cta { opacity: 1; transform: translateY(0); }
.zoom-cta:hover { gap: 14px; }
.zoom-cta:hover::after { width: 100%; }
.zoom-cta .cta-arrow {
  font-size: 14px;
  transition: transform .3s cubic-bezier(.16,1,.3,1);
}
.zoom-cta:hover .cta-arrow { transform: translateX(4px); }

/* ── Divider between boxes ── */
.zoom-mid-label {
  position: absolute;
  top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  z-index: 10;
  width: 42px; height: 42px;
  border-radius: 50%;
  background: #04080f;
  border: 2px solid rgba(0,201,177,.25);
  display: flex; align-items: center; justify-content: center;
  font-size: 11px;
  color: rgba(0,201,177,.5);
  font-family: 'Playfair Display', serif;
  font-style: italic;
  letter-spacing: .05em;
  pointer-events: none;
}
[data-theme="light"] .zoom-mid-label { background: #f0ece6; }

/* Hover: expand active box slightly */
.zoom-grid:has(.zoom-box:first-child:hover) {
  grid-template-columns: 1.12fr 0.88fr;
}
.zoom-grid:has(.zoom-box:last-child:hover) {
  grid-template-columns: 0.88fr 1.12fr;
}
.zoom-grid {
  transition: grid-template-columns .7s cubic-bezier(.16,1,.3,1);
}

/* ═══════════════════════════════════════════════════════
   CONTACT + NEWSLETTER
═══════════════════════════════════════════════════════ */
.why-section {
  position: relative;
  background: #030710;
  overflow: hidden;
  padding: 120px 0 0;
}
[data-theme="light"] .why-section {
  background: #faf8f5;
}

/* Ambient radial glow */
.why-section::after {
  content: '';
  position: absolute;
  top: 0; left: 50%;
  transform: translateX(-50%);
  width: 900px; height: 500px;
  background: radial-gradient(ellipse 80% 100% at 50% 0%, rgba(0,201,177,.05), transparent 70%);
  pointer-events: none;
  z-index: 0;
}

/* ── Header ── */
.why-header {
  position: relative;
  z-index: 2;
  text-align: center;
  padding: 0 72px 72px;
  opacity: 0;
  transform: translateY(24px);
  transition: opacity .8s cubic-bezier(.16,1,.3,1), transform .8s cubic-bezier(.16,1,.3,1);
}
.why-header.visible { opacity: 1; transform: translateY(0); }

.why-eyebrow {
  font-size: 10px;
  letter-spacing: .5em;
  text-transform: uppercase;
  color: var(--teal);
  margin-bottom: 18px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
}
.why-eyebrow::before, .why-eyebrow::after {
  content: '';
  width: 48px; height: 1px;
  background: linear-gradient(90deg, transparent, rgba(0,201,177,.45));
}
.why-eyebrow::after { background: linear-gradient(90deg, rgba(0,201,177,.45), transparent); }

.why-title {
  font-family: 'Playfair Display', serif;
  font-size: clamp(44px, 5.5vw, 76px);
  font-weight: 700;
  letter-spacing: -.03em;
  line-height: .92;
  color: #f0f4f8;
}
[data-theme="light"] .why-title { color: #1a2040; }
.why-title em {
  font-style: italic; font-weight: 400;
  background: linear-gradient(135deg, #00C9B1, #38BDF8, #A855F7);
  -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
}

/* ── Accordion grid ── */
.why-accordion {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  min-height: 600px;
  border-top: 1px solid rgba(255,255,255,.06);
}
[data-theme="light"] .why-accordion { border-top-color: rgba(0,0,0,.07); }

/* ── Each panel ── */
.why-panel {
  position: relative;
  overflow: hidden;
  border-right: 1px solid rgba(255,255,255,.06);
  cursor: none;
  transition: flex .75s cubic-bezier(.16,1,.3,1);
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  min-height: 600px;
}
[data-theme="light"] .why-panel { border-right-color: rgba(0,0,0,.07); }
.why-panel:last-child { border-right: none; }

/* ── Panel BG — full bleed image layer ── */
.wp-bg {
  position: absolute; inset: 0;
  background-size: cover;
  background-position: center;
  opacity: 0;
  transform: scale(1.06);
  transition: opacity .8s cubic-bezier(.16,1,.3,1), transform .8s cubic-bezier(.16,1,.3,1), filter .8s;
  filter: brightness(.5) saturate(.7);
}
.why-panel.wp-open .wp-bg {
  opacity: 1;
  transform: scale(1);
}

/* Dark overlay over bg */
.wp-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(to bottom, rgba(3,7,16,.3) 0%, rgba(3,7,16,.85) 100%);
  opacity: 0;
  transition: opacity .7s;
  z-index: 1;
}
.why-panel.wp-open .wp-overlay { opacity: 1; }

/* Number */
.wp-num {
  position: absolute;
  top: 32px; left: 32px;
  z-index: 3;
  font-family: 'Playfair Display', serif;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .06em;
  color: rgba(0,201,177,.5);
  transition: color .4s;
}
.why-panel.wp-open .wp-num { color: rgba(0,201,177,.9); }

/* Accent bar — left edge */
.wp-bar {
  position: absolute;
  top: 0; left: 0;
  width: 2px;
  height: 0;
  background: var(--wp-color, linear-gradient(to bottom, #00C9B1, #38BDF8));
  z-index: 4;
  transition: height .7s cubic-bezier(.16,1,.3,1);
  border-radius: 0 0 2px 2px;
}
.why-panel.wp-open .wp-bar { height: 100%; }

/* ── Panel content ── */
.wp-content {
  position: relative;
  z-index: 3;
  padding: 32px 32px 40px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}

/* Icon */
.wp-icon {
  width: 52px; height: 52px;
  border-radius: 16px;
  display: flex; align-items: center; justify-content: center;
  font-size: 24px;
  background: rgba(255,255,255,.05);
  border: 1px solid rgba(255,255,255,.1);
  backdrop-filter: blur(8px);
  margin-bottom: 4px;
  transition: background .4s, border-color .4s, transform .4s cubic-bezier(.16,1,.3,1);
  flex-shrink: 0;
}
.why-panel.wp-open .wp-icon {
  background: rgba(0,201,177,.15);
  border-color: rgba(0,201,177,.4);
  transform: scale(1.08);
}

/* Title */
.wp-title {
  font-family: 'Playfair Display', serif;
  font-size: clamp(18px, 1.8vw, 26px);
  font-weight: 700;
  letter-spacing: -.015em;
  line-height: 1.15;
  color: rgba(255,255,255,.75);
  transition: color .35s;
}
[data-theme="light"] .wp-title { color: rgba(20,30,60,.65); }
.why-panel.wp-open .wp-title {
  color: #fff;
}
[data-theme="light"] .why-panel.wp-open .wp-title { color: #fff; }

/* Bullet points — hidden until open */
.wp-bullets {
  display: flex;
  flex-direction: column;
  gap: 12px;
  max-height: 0;
  overflow: hidden;
  opacity: 0;
  transform: translateY(12px);
  transition:
    max-height .7s cubic-bezier(.16,1,.3,1),
    opacity .5s .1s,
    transform .5s .1s cubic-bezier(.16,1,.3,1);
}
.why-panel.wp-open .wp-bullets {
  max-height: 240px;
  opacity: 1;
  transform: translateY(0);
}

.wp-bullet {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-size: 13px;
  font-weight: 300;
  line-height: 1.65;
  color: rgba(255,255,255,.6);
  letter-spacing: .01em;
}
.wp-bullet::before {
  content: '';
  flex-shrink: 0;
  width: 5px; height: 5px;
  border-radius: 50%;
  background: var(--teal);
  margin-top: 7px;
  box-shadow: 0 0 6px rgba(0,201,177,.5);
}

/* "Learn more" link */
.wp-link {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-family: 'DM Sans', sans-serif;
  font-size: 10px;
  font-weight: 500;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--teal);
  text-decoration: none;
  cursor: none;
  max-height: 0;
  overflow: hidden;
  opacity: 0;
  transform: translateY(8px);
  transition:
    max-height .6s .15s cubic-bezier(.16,1,.3,1),
    opacity .4s .2s,
    transform .4s .2s cubic-bezier(.16,1,.3,1),
    gap .3s;
  position: relative;
  width: fit-content;
  padding-bottom: 3px;
}
.wp-link::after {
  content: '';
  position: absolute;
  bottom: 0; left: 0;
  width: 0; height: 1px;
  background: var(--teal);
  transition: width .4s cubic-bezier(.16,1,.3,1);
}
.why-panel.wp-open .wp-link {
  max-height: 40px;
  opacity: 1;
  transform: translateY(0);
}
.wp-link:hover { gap: 13px; }
.wp-link:hover::after { width: 100%; }

/* ── Bottom strip with Award badge ── */
.why-bottom {
  position: relative;
  z-index: 2;
  padding: 40px 72px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-top: 1px solid rgba(255,255,255,.06);
  gap: 32px;
  flex-wrap: wrap;
}
[data-theme="light"] .why-bottom { border-top-color: rgba(0,0,0,.07); }

.why-award-badge {
  display: flex;
  align-items: center;
  gap: 16px;
}
.wab-icon {
  width: 52px; height: 52px;
  border-radius: 50%;
  background: linear-gradient(135deg, rgba(251,146,60,.15), rgba(244,63,142,.1));
  border: 1px solid rgba(251,146,60,.3);
  display: flex; align-items: center; justify-content: center;
  font-size: 22px;
  flex-shrink: 0;
}
.wab-text strong {
  display: block;
  font-family: 'Playfair Display', serif;
  font-size: 14px;
  font-weight: 700;
  color: #f0f4f8;
  letter-spacing: -.01em;
}
[data-theme="light"] .wab-text strong { color: #1a2040; }
.wab-text span {
  font-size: 11px;
  font-weight: 300;
  color: rgba(240,244,248,.38);
  letter-spacing: .06em;
}
[data-theme="light"] .wab-text span { color: rgba(30,40,60,.45); }

.why-bottom-cta {
  position: relative;
  font-family: 'DM Sans', sans-serif;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: #060B14;
  background: linear-gradient(135deg, #00C9B1, #4EEBD8);
  border: none;
  border-radius: 100px;
  padding: 15px 38px;
  cursor: none;
  overflow: hidden;
  box-shadow: 0 4px 22px rgba(0,201,177,.35);
  transition: transform .25s cubic-bezier(.16,1,.3,1), box-shadow .3s;
}
.why-bottom-cta::before {
  content: '';
  position: absolute; top: 0; left: -55px;
  width: 40px; height: 100%;
  background: rgba(255,255,255,.3);
  transform: skewX(-20deg);
  transition: left .5s cubic-bezier(.16,1,.3,1);
}
.why-bottom-cta:hover { transform: translateY(-3px); box-shadow: 0 8px 32px rgba(0,201,177,.55); }
.why-bottom-cta:hover::before { left: 130%; }

/* ── Reveal ── */
.why-accordion-wrap {
  opacity: 0;
  transform: translateY(32px);
  transition: opacity .85s .1s cubic-bezier(.16,1,.3,1), transform .85s .1s cubic-bezier(.16,1,.3,1);
}
.why-accordion-wrap.visible { opacity: 1; transform: translateY(0); }
.why-bottom-wrap {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity .7s .2s cubic-bezier(.16,1,.3,1), transform .7s .2s cubic-bezier(.16,1,.3,1);
}
.why-bottom-wrap.visible { opacity: 1; transform: translateY(0); }

/* ═══════════════════════════════════════════════════════
   FOOTER
═══════════════════════════════════════════════════════ */
/* ════════════════════════════════════════════════════
   CONTACT SECTION — enquiry form + newsletter
   ─────────────────────────────────────────────────
   Key layout:
     .contact-inner      → 2-col grid (left info + right forms)
     .contact-left       → brand info, phone, email, social
     .contact-right      → tabbed form area
     .contact-forms      → form panel container
     .cform-panel        → individual tab panel
     .cform-panel.active → visible panel
   Light mode: all overrides at bottom of this block
════════════════════════════════════════════════════ */

/* ══ Section shell ══ */
.contact-section {
  position: relative;
  background: #030710;
  overflow: hidden;
  padding: 0;
}
[data-theme="light"] .contact-section { background: #f5f2ee; }

/* Large ambient glows */
.contact-section::before {
  content: '';
  position: absolute;
  top: -200px; left: -200px;
  width: 700px; height: 700px;
  background: radial-gradient(circle, rgba(0,201,177,.07), transparent 65%);
  pointer-events: none; z-index: 0;
}
.contact-section::after {
  content: '';
  position: absolute;
  bottom: -200px; right: -200px;
  width: 600px; height: 600px;
  background: radial-gradient(circle, rgba(124,58,237,.07), transparent 65%);
  pointer-events: none; z-index: 0;
}

/* ══ Inner grid: left content + right form ══ */
.contact-inner {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: 1fr 1.1fr;
  min-height: 100vh;
}

/* ════════════════════════
   LEFT — Brand + Info
════════════════════════ */
.contact-left {
  padding: 100px 64px 80px 80px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 60px;
  border-right: 1px solid rgba(255,255,255,.06);
  position: relative;
}
[data-theme="light"] .contact-left { border-right-color: rgba(0,0,0,.08); }

.contact-left-top {
  opacity: 0; transform: translateY(28px);
  transition: opacity .8s cubic-bezier(.16,1,.3,1), transform .8s cubic-bezier(.16,1,.3,1);
}
.contact-left-top.visible { opacity: 1; transform: translateY(0); }

.contact-eyebrow {
  font-size: 10px; letter-spacing: .5em; text-transform: uppercase;
  color: var(--teal); margin-bottom: 20px;
  display: flex; align-items: center; gap: 14px;
}
.contact-eyebrow::after {
  content: ''; width: 36px; height: 1px;
  background: linear-gradient(90deg, rgba(0,201,177,.5), transparent);
}

.contact-title {
  font-family: 'Playfair Display', serif;
  font-size: clamp(42px, 5vw, 68px);
  font-weight: 700; letter-spacing: -.03em; line-height: .92;
  color: #f0f4f8; margin-bottom: 24px;
}
[data-theme="light"] .contact-title { color: #1a2040; }
.contact-title em {
  font-style: italic; font-weight: 400; display: block;
  background: linear-gradient(135deg, #00C9B1, #38BDF8);
  -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
}

.contact-tagline {
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(16px, 1.7vw, 22px);
  font-weight: 300; font-style: italic;
  color: rgba(240,244,248,.62); line-height: 1.65; letter-spacing: .01em;
  max-width: 380px;
}
[data-theme="light"] .contact-tagline { color: rgba(30,40,60,.62) !important; }

/* Info cards */
.contact-info-cards {
  display: flex; flex-direction: column; gap: 14px;
  opacity: 0; transform: translateY(20px);
  transition: opacity .8s .15s cubic-bezier(.16,1,.3,1), transform .8s .15s cubic-bezier(.16,1,.3,1);
}
.contact-info-cards.visible { opacity: 1; transform: translateY(0); }

.info-card {
  display: flex; align-items: flex-start; gap: 16px;
  padding: 20px 22px;
  border-radius: 16px;
  background: rgba(255,255,255,.03);
  border: 1px solid rgba(255,255,255,.07);
  backdrop-filter: blur(10px);
  transition: background .35s, border-color .35s, transform .3s cubic-bezier(.16,1,.3,1);
}
[data-theme="light"] .info-card {
  background: rgba(255,255,255,.6); border-color: rgba(0,0,0,.08);
  box-shadow: 0 2px 12px rgba(0,0,0,.06);
}
.info-card:hover {
  background: rgba(0,201,177,.06); border-color: rgba(0,201,177,.2);
  transform: translateX(4px);
}
.info-icon {
  width: 40px; height: 40px; border-radius: 12px; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  font-size: 18px;
  background: rgba(0,201,177,.1); border: 1px solid rgba(0,201,177,.2);
}
.info-text strong {
  display: block; font-size: 12px; font-weight: 500;
  letter-spacing: .12em; text-transform: uppercase;
  color: rgba(240,244,248,.75); margin-bottom: 3px;
}
[data-theme="light"] .info-text strong { color: rgba(30,40,60,.75) !important; }
.info-text span {
  font-size: 13px; font-weight: 300;
  color: rgba(240,244,248,.55); letter-spacing: .01em; line-height: 1.5;
}
[data-theme="light"] .info-text span { color: rgba(30,40,60,.62) !important; }

/* Social row */
.contact-socials {
  display: flex; gap: 10px;
  opacity: 0; transform: translateY(16px);
  transition: opacity .7s .25s cubic-bezier(.16,1,.3,1), transform .7s .25s cubic-bezier(.16,1,.3,1);
}
.contact-socials.visible { opacity: 1; transform: translateY(0); }

.social-pill {
  display: flex; align-items: center; gap: 7px;
  padding: 9px 16px; border-radius: 100px;
  font-size: 11px; font-weight: 400; letter-spacing: .1em;
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.1);
  color: rgba(240,244,248,.45);
  cursor: none;
  transition: background .3s, border-color .3s, color .3s, transform .3s cubic-bezier(.16,1,.3,1);
}
[data-theme="light"] .social-pill {
  background: rgba(255,255,255,.7); border-color: rgba(0,0,0,.1); color: rgba(30,40,60,.5);
  box-shadow: 0 2px 8px rgba(0,0,0,.05);
}
.social-pill:hover { background: rgba(0,201,177,.1); border-color: rgba(0,201,177,.35); color: var(--teal); transform: translateY(-3px); }
.social-icon { font-size: 14px; }

/* ════════════════════════
   RIGHT — Forms
════════════════════════ */
.contact-right {
  display: flex; flex-direction: column;
  background: rgba(255,255,255,.018);
  [data-theme="light"] & { background: rgba(255,255,255,.5); }
}

/* Tab switcher */
.contact-tabs {
  display: flex; border-bottom: 1px solid rgba(255,255,255,.07);
  position: sticky; top: 0; z-index: 5;
  backdrop-filter: blur(20px);
  background: rgba(3,7,16,.6);
}
[data-theme="light"] .contact-tabs {
  background: rgba(245,242,238,.95); border-bottom-color: rgba(0,0,0,.1);
}
[data-theme="light"] .ctab { color: rgba(30,40,60,.45) !important; }
[data-theme="light"] .ctab.active { color: #007a68 !important; }
[data-theme="light"] .ctab:hover { color: rgba(30,40,60,.75); }

.ctab {
  flex: 1; padding: 22px 20px;
  font-family: 'DM Sans', sans-serif;
  font-size: 11px; font-weight: 500;
  letter-spacing: .2em; text-transform: uppercase;
  color: rgba(240,244,248,.3);
  background: transparent; border: none; cursor: none;
  position: relative;
  transition: color .35s;
}
[data-theme="light"] .ctab { color: rgba(30,40,60,.35); }
.ctab::after {
  content: ''; position: absolute; bottom: 0; left: 0; right: 0; height: 2px;
  background: linear-gradient(90deg, var(--teal), #38BDF8);
  transform: scaleX(0); transform-origin: left;
  transition: transform .45s cubic-bezier(.16,1,.3,1);
}
.ctab.active { color: var(--teal); }
.ctab.active::after { transform: scaleX(1); }

/* Form panels */
/* ── Form panel container ──
   Using display:none / display:block approach so the
   container height matches the active panel content.
   JS handles the fade transition via the .tab-entering class.
*/
.contact-forms {
  flex: 1;
  position: relative;
}
.cform-panel {
  display: none;
  padding: 48px 56px 56px;
  opacity: 0;
  transform: translateX(16px);
  transition: opacity .45s cubic-bezier(.16,1,.3,1), transform .45s cubic-bezier(.16,1,.3,1);
}
.cform-panel.active {
  display: block;
  opacity: 1;
  transform: translateX(0);
}
.cform-panel.tab-entering {
  opacity: 0;
  transform: translateX(16px);
}

/* Form heading */
.cform-heading {
  margin-bottom: 36px;
}
.cform-heading h3 {
  font-family: 'Playfair Display', serif;
  font-size: clamp(26px, 2.8vw, 38px);
  font-weight: 700; letter-spacing: -.02em; line-height: 1.05;
  color: #f0f4f8; margin-bottom: 8px;
}
[data-theme="light"] .cform-heading h3 { color: #1a2040; }
.cform-heading p {
  font-size: 13px; font-weight: 300; line-height: 1.7;
  color: rgba(240,244,248,.55); letter-spacing: .01em;
}
[data-theme="light"] .cform-heading p { color: rgba(30,40,60,.6) !important; }

/* ── Field rows ── */
.cform-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-bottom: 16px; }
.cform-row.full { grid-template-columns: 1fr; }

/* ── Field group ── */
.cfield {
  display: flex; flex-direction: column; gap: 7px;
}
.cfield label {
  font-size: 9px; font-weight: 500;
  letter-spacing: .25em; text-transform: uppercase;
  color: rgba(240,244,248,.45);
  transition: color .3s;
}
[data-theme="light"] .cfield label { color: rgba(30,40,60,.55) !important; }
.cfield:focus-within label { color: var(--teal); }

/* Standalone label used outside .cfield (quick pick, frequency) */
.cfield-standalone-label {
  display: block;
  font-size: 9px; font-weight: 500;
  letter-spacing: .25em; text-transform: uppercase;
  color: rgba(240,244,248,.45);
  margin-bottom: 10px;
  font-family: 'DM Sans', sans-serif;
}
[data-theme="light"] .cfield-standalone-label { color: rgba(30,40,60,.55) !important; }

.cfield input,
.cfield select,
.cfield textarea {
  background: rgba(255,255,255,.05);
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 12px;
  padding: 14px 18px;
  font-family: 'DM Sans', sans-serif;
  font-size: 13px; font-weight: 300;
  color: rgba(240,244,248,.85);
  outline: none; cursor: none;
  transition: border-color .3s, background .3s, box-shadow .3s;
  width: 100%;
  -webkit-appearance: none;
}
[data-theme="light"] .cfield input,
[data-theme="light"] .cfield select,
[data-theme="light"] .cfield textarea {
  background: rgba(255,255,255,.7);
  border-color: rgba(0,0,0,.12);
  color: rgba(30,40,60,.85);
  box-shadow: 0 2px 8px rgba(0,0,0,.04);
}

.cfield input::placeholder,
.cfield textarea::placeholder {
  color: rgba(240,244,248,.22);
  font-style: italic;
}
[data-theme="light"] .cfield input::placeholder,
[data-theme="light"] .cfield textarea::placeholder { color: rgba(30,40,60,.25); }

.cfield input:focus,
.cfield select:focus,
.cfield textarea:focus {
  border-color: rgba(0,201,177,.5);
  background: rgba(0,201,177,.05);
  box-shadow: 0 0 0 3px rgba(0,201,177,.1);
}
[data-theme="light"] .cfield input:focus,
[data-theme="light"] .cfield select:focus,
[data-theme="light"] .cfield textarea:focus {
  background: rgba(0,201,177,.04);
  box-shadow: 0 0 0 3px rgba(0,201,177,.12);
}

.cfield select option { background: #0c1525; color: #f0f4f8; }
.cfield textarea { resize: vertical; min-height: 110px; line-height: 1.65; }

/* Destination tags */
.dest-tags {
  display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 16px;
}
.dtag {
  font-size: 10px; letter-spacing: .12em; text-transform: uppercase;
  padding: 7px 14px; border-radius: 100px;
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.1);
  color: rgba(240,244,248,.4);
  cursor: none;
  transition: background .3s, border-color .3s, color .3s;
  user-select: none;
}
[data-theme="light"] .dtag {
  background: rgba(255,255,255,.7); border-color: rgba(0,0,0,.1); color: rgba(30,40,60,.45);
}
.dtag.selected {
  background: rgba(0,201,177,.12);
  border-color: rgba(0,201,177,.45);
  color: var(--teal);
}

/* Checkbox */
.ccheck {
  display: flex; align-items: flex-start; gap: 12px;
  margin-bottom: 20px; cursor: none;
}
.ccheck input[type="checkbox"] {
  width: 18px; height: 18px; flex-shrink: 0;
  border-radius: 5px; border: 1px solid rgba(255,255,255,.2);
  background: rgba(255,255,255,.05);
  appearance: none; cursor: none; margin-top: 1px;
  transition: background .3s, border-color .3s;
  position: relative;
}
.ccheck input[type="checkbox"]:checked {
  background: var(--teal); border-color: var(--teal);
}
.ccheck input[type="checkbox"]:checked::after {
  content: '✓'; position: absolute; inset: 0;
  display: flex; align-items: center; justify-content: center;
  font-size: 11px; color: #060B14; font-weight: 700;
}
.ccheck span {
  font-size: 12px; font-weight: 300; line-height: 1.6;
  color: rgba(240,244,248,.6); letter-spacing: .01em;
}
[data-theme="light"] .ccheck span { color: rgba(30,40,60,.65) !important; }
[data-theme="light"] .ccheck input[type="checkbox"] {
  background: rgba(255,255,255,.8); border-color: rgba(0,0,0,.2);
}

/* Submit button */
.csubmit {
  position: relative; width: 100%;
  font-family: 'DM Sans', sans-serif;
  font-size: 11px; font-weight: 600; letter-spacing: .25em; text-transform: uppercase;
  color: #060B14;
  background: linear-gradient(135deg, #00C9B1, #4EEBD8);
  border: none; border-radius: 14px;
  padding: 18px 32px; cursor: none; overflow: hidden;
  box-shadow: 0 4px 24px rgba(0,201,177,.35);
  transition: transform .25s cubic-bezier(.16,1,.3,1), box-shadow .3s;
  display: flex; align-items: center; justify-content: center; gap: 10px;
}
.csubmit::before {
  content: '';
  position: absolute; top: 0; left: -60px;
  width: 45px; height: 100%;
  background: rgba(255,255,255,.3); transform: skewX(-20deg);
  transition: left .5s cubic-bezier(.16,1,.3,1);
}
.csubmit:hover { transform: translateY(-3px); box-shadow: 0 8px 32px rgba(0,201,177,.5); }
.csubmit:hover::before { left: 130%; }
.csubmit .btn-send-icon { font-size: 16px; }

/* Success state */
.csubmit.sent {
  background: linear-gradient(135deg, #34D399, #00C9B1);
}

/* ══ Newsletter panel extras ══ */
.nl-benefits {
  display: flex; flex-direction: column; gap: 10px; margin-bottom: 28px;
}
.nl-benefit {
  display: flex; align-items: center; gap: 12px;
  font-size: 13px; font-weight: 300;
  color: rgba(240,244,248,.62); letter-spacing: .01em;
}
[data-theme="light"] .nl-benefit { color: rgba(30,40,60,.65) !important; }
.nl-benefit::before {
  content: ''; width: 6px; height: 6px; border-radius: 50%; flex-shrink: 0;
  background: linear-gradient(135deg, var(--teal), #38BDF8);
  box-shadow: 0 0 6px rgba(0,201,177,.4);
}

/* Frequency chips */
.freq-chips {
  display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 20px;
}
.freq-chip {
  font-size: 10px; letter-spacing: .15em; text-transform: uppercase;
  padding: 8px 16px; border-radius: 100px;
  border: 1px solid rgba(255,255,255,.15);
  background: transparent; color: rgba(240,244,248,.55);
  cursor: none;
  transition: background .3s, border-color .3s, color .3s;
}
[data-theme="light"] .freq-chip {
  border-color: rgba(0,0,0,.15); color: rgba(30,40,60,.55);
}
.freq-chip.selected {
  background: rgba(0,201,177,.12); border-color: rgba(0,201,177,.4); color: var(--teal);
}

/* ══ Bottom newsletter strip ══ */
.contact-nl-strip {
  position: relative; z-index: 2;
  background: rgba(0,201,177,.04);
  border-top: 1px solid rgba(0,201,177,.1);
  padding: 52px 80px;
  display: flex; align-items: center; justify-content: space-between; gap: 48px;
  flex-wrap: wrap;
}
[data-theme="light"] .contact-nl-strip {
  background: rgba(0,180,160,.05);
  border-top-color: rgba(0,150,135,.15);
}

.nl-strip-left h3 {
  font-family: 'Playfair Display', serif;
  font-size: clamp(22px, 2.5vw, 34px); font-weight: 700;
  letter-spacing: -.02em; line-height: 1.05;
  color: #f0f4f8; margin-bottom: 8px;
}
[data-theme="light"] .nl-strip-left h3 { color: #1a2040; }
.nl-strip-left h3 em { font-style: italic; font-weight: 400; color: var(--teal); -webkit-text-fill-color: var(--teal); }
.nl-strip-left p {
  font-size: 13px; font-weight: 300;
  color: rgba(240,244,248,.55); letter-spacing: .01em;
}
[data-theme="light"] .nl-strip-left p { color: rgba(30,40,60,.45); }

.nl-strip-form {
  display: flex; gap: 12px; flex: 1; max-width: 480px; min-width: 280px;
}
.nl-strip-input {
  flex: 1;
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 100px;
  padding: 14px 24px;
  font-family: 'DM Sans', sans-serif;
  font-size: 13px; font-weight: 300;
  color: rgba(240,244,248,.8);
  outline: none; cursor: none;
  transition: border-color .3s, box-shadow .3s;
}
[data-theme="light"] .nl-strip-input {
  background: rgba(255,255,255,.8); border-color: rgba(0,0,0,.12); color: rgba(30,40,60,.8);
}
.nl-strip-input::placeholder { color: rgba(240,244,248,.25); font-style: italic; }
[data-theme="light"] .nl-strip-input::placeholder { color: rgba(30,40,60,.3); }
.nl-strip-input:focus {
  border-color: rgba(0,201,177,.5); box-shadow: 0 0 0 3px rgba(0,201,177,.1);
}
.nl-strip-btn {
  flex-shrink: 0;
  background: linear-gradient(135deg, #00C9B1, #4EEBD8);
  border: none; border-radius: 100px;
  padding: 14px 28px;
  font-family: 'DM Sans', sans-serif;
  font-size: 11px; font-weight: 600; letter-spacing: .2em; text-transform: uppercase;
  color: #060B14; cursor: none; overflow: hidden; position: relative;
  box-shadow: 0 4px 18px rgba(0,201,177,.35);
  transition: transform .25s cubic-bezier(.16,1,.3,1), box-shadow .3s;
}
.nl-strip-btn:hover { transform: translateY(-2px); box-shadow: 0 6px 26px rgba(0,201,177,.5); }

/* ══ Reveal ══ */
.c-reveal {
  opacity: 0; transform: translateY(26px);
  transition: opacity .75s cubic-bezier(.16,1,.3,1), transform .75s cubic-bezier(.16,1,.3,1);
}
.c-reveal.visible { opacity: 1; transform: translateY(0); }

/* ═══════════════════════════════════════════════════════
   ORIGIN STORY + MAP
═══════════════════════════════════════════════════════ */
/* ══ Footer shell ══ */
.site-footer {
  position: relative;
  background: #020509;
  overflow: hidden;
  font-family: 'DM Sans', sans-serif;
}

/* ══ ANIMATED BACKGROUND CANVAS ══ */
#footerCanvas {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
}

/* Grid lines overlay */
.footer-grid {
  position: absolute; inset: 0;
  pointer-events: none; z-index: 1;
  background-image:
    linear-gradient(rgba(0,201,177,.025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(0,201,177,.025) 1px, transparent 1px);
  background-size: 60px 60px;
  mask-image: radial-gradient(ellipse 90% 90% at 50% 50%, black 20%, transparent 80%);
}

/* Vignette */
.footer-vignette {
  position: absolute; inset: 0; z-index: 2; pointer-events: none;
  background:
    radial-gradient(ellipse 80% 60% at 50% 100%, rgba(0,201,177,.04), transparent 65%),
    linear-gradient(to bottom, rgba(2,5,9,.5) 0%, transparent 30%, transparent 70%, rgba(2,5,9,.7) 100%);
}

/* ══ GIANT BG WORDMARK ══ */
.footer-bg-text {
  position: absolute;
  bottom: -60px; left: 50%;
  transform: translateX(-50%);
  font-family: 'Playfair Display', serif;
  font-size: clamp(100px, 16vw, 220px);
  font-weight: 700;
  letter-spacing: -.04em;
  color: transparent;
  -webkit-text-stroke: 1px rgba(0,201,177,.06);
  white-space: nowrap;
  user-select: none; pointer-events: none;
  z-index: 1;
  line-height: 1;
}

/* ══ Main footer content ══ */
.footer-inner {
  position: relative; z-index: 5;
  padding: 80px 80px 0;
}

/* ── Top row: Logo + Nav columns + Newsletter ── */
.footer-top {
  display: grid;
  grid-template-columns: 1.6fr 1fr 1fr 1fr 1.4fr;
  gap: 48px;
  padding-bottom: 64px;
  border-bottom: 1px solid rgba(255,255,255,.06);
}

/* Brand column */
.footer-brand {}
.footer-logo {
  font-family: 'Playfair Display', serif;
  font-size: 28px; font-weight: 700;
  letter-spacing: .06em; text-transform: uppercase;
  color: var(--teal);
  margin-bottom: 16px;
  display: block;
}
.footer-logo span { color: rgba(240,244,248,.7); font-style: italic; font-weight: 400; }

.footer-brand-desc {
  font-size: 13px; font-weight: 300; line-height: 1.75;
  color: rgba(240,244,248,.3); letter-spacing: .01em;
  max-width: 240px; margin-bottom: 28px;
}

/* Award badge */
.footer-award {
  display: inline-flex; align-items: center; gap: 10px;
  padding: 9px 16px; border-radius: 100px;
  background: rgba(251,146,60,.08);
  border: 1px solid rgba(251,146,60,.2);
  margin-bottom: 28px;
}
.footer-award-icon { font-size: 16px; }
.footer-award-text {
  font-size: 9px; letter-spacing: .18em; text-transform: uppercase;
  color: rgba(251,146,60,.75); line-height: 1.4;
}

/* Social icons */
.footer-socials { display: flex; gap: 10px; }
.fsoc {
  width: 36px; height: 36px; border-radius: 10px;
  display: flex; align-items: center; justify-content: center;
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.08);
  font-size: 15px;
  cursor: none;
  transition: background .3s, border-color .3s, transform .3s cubic-bezier(.16,1,.3,1);
}
.fsoc:hover { background: rgba(0,201,177,.12); border-color: rgba(0,201,177,.35); transform: translateY(-3px); }

/* Nav columns */
.footer-nav-col {}
.footer-nav-heading {
  font-size: 9px; font-weight: 600;
  letter-spacing: .35em; text-transform: uppercase;
  color: rgba(240,244,248,.4); margin-bottom: 20px;
  position: relative; padding-bottom: 12px;
}
.footer-nav-heading::after {
  content: ''; position: absolute;
  bottom: 0; left: 0; width: 20px; height: 1px;
  background: var(--teal); opacity: .5;
}
.footer-nav-list { list-style: none; display: flex; flex-direction: column; gap: 10px; }
.footer-nav-list a {
  font-size: 13px; font-weight: 300; letter-spacing: .02em;
  color: rgba(240,244,248,.32); text-decoration: none;
  cursor: none;
  transition: color .3s, padding-left .3s;
  display: inline-flex; align-items: center; gap: 6px;
}
.footer-nav-list a:hover { color: rgba(0,201,177,.85); padding-left: 6px; }
.footer-nav-list a::before {
  content: ''; width: 0; height: 1px; background: var(--teal);
  transition: width .3s cubic-bezier(.16,1,.3,1);
  flex-shrink: 0;
}
.footer-nav-list a:hover::before { width: 8px; }

/* Newsletter mini form */
.footer-nl {}
.footer-nl-text {
  font-size: 13px; font-weight: 300; line-height: 1.7;
  color: rgba(240,244,248,.32); margin-bottom: 18px; letter-spacing: .01em;
}
.footer-nl-form {
  display: flex; flex-direction: column; gap: 10px;
}
.footer-nl-input {
  background: rgba(255,255,255,.05);
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 10px; padding: 12px 16px;
  font-family: 'DM Sans', sans-serif;
  font-size: 12px; font-weight: 300;
  color: rgba(240,244,248,.8); outline: none; cursor: none;
  transition: border-color .3s, box-shadow .3s;
}
.footer-nl-input::placeholder { color: rgba(240,244,248,.2); font-style: italic; }
.footer-nl-input:focus {
  border-color: rgba(0,201,177,.4);
  box-shadow: 0 0 0 3px rgba(0,201,177,.08);
}
.footer-nl-btn {
  background: linear-gradient(135deg, #00C9B1, #4EEBD8);
  border: none; border-radius: 10px;
  padding: 12px 20px;
  font-family: 'DM Sans', sans-serif;
  font-size: 10px; font-weight: 600;
  letter-spacing: .22em; text-transform: uppercase;
  color: #060B14; cursor: none; overflow: hidden; position: relative;
  box-shadow: 0 4px 16px rgba(0,201,177,.3);
  transition: transform .25s cubic-bezier(.16,1,.3,1), box-shadow .3s;
}
.footer-nl-btn:hover { transform: translateY(-2px); box-shadow: 0 6px 24px rgba(0,201,177,.5); }

/* ── Middle: Divider with coordinates ── */
.footer-mid {
  display: flex; align-items: center; gap: 24px;
  padding: 28px 0;
  border-bottom: 1px solid rgba(255,255,255,.04);
}
.footer-mid-line { flex: 1; height: 1px; background: rgba(255,255,255,.04); }
.footer-mid-coords {
  display: flex; gap: 28px; flex-wrap: wrap; justify-content: center;
}
.fcoord {
  font-size: 9px; letter-spacing: .2em; text-transform: uppercase;
  color: rgba(0,201,177,.3); white-space: nowrap;
  transition: color .3s;
}
.fcoord:hover { color: rgba(0,201,177,.6); }

/* ══ DIVE + MADE BY — bottom of footer ══ */
.footer-dive-wrap {
  position: relative;
  z-index: 5;
  padding: 48px 80px 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 32px;
}

/* Giant animated "VOYAGER" wordmark */
.footer-wordmark {
  position: relative;
  width: 100%;
  overflow: hidden;
  height: clamp(80px, 14vw, 160px);
  display: flex;
  align-items: center;
  justify-content: center;
}

.footer-wordmark-text {
  font-family: 'Playfair Display', serif;
  font-size: clamp(80px, 13vw, 155px);
  font-weight: 700;
  letter-spacing: -.04em;
  line-height: 1;
  white-space: nowrap;
  position: relative;
  z-index: 2;
  /* Gradient text */
  background: linear-gradient(
    135deg,
    rgba(0,201,177,.15) 0%,
    rgba(0,201,177,.5) 30%,
    rgba(56,189,248,.4) 55%,
    rgba(124,58,237,.3) 75%,
    rgba(0,201,177,.12) 100%
  );
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  /* Moving shimmer */
  background-size: 300% 100%;
  animation: wordmarkShimmer 5s ease-in-out infinite;
}
@keyframes wordmarkShimmer {
  0%   { background-position: 0% 50%; }
  50%  { background-position: 100% 50%; }
  100% { background-position: 0% 50%; }
}

/* Thin shine line moving across */
.footer-wordmark::before {
  content: '';
  position: absolute;
  top: 0; bottom: 0;
  width: 80px;
  background: linear-gradient(90deg, transparent, rgba(0,201,177,.12), transparent);
  animation: wmarkScan 4s ease-in-out infinite;
  z-index: 3;
  transform: skewX(-15deg);
}
@keyframes wmarkScan {
  0%   { left: -100px; }
  100% { left: calc(100% + 100px); }
}

/* ── Bottom bar ── */
.footer-bottom {
  position: relative; z-index: 5;
  width: 100%;
  padding: 24px 80px 40px;
  display: flex; align-items: center; justify-content: space-between; gap: 24px;
  flex-wrap: wrap;
}

.footer-bottom-left {
  font-size: 11px; font-weight: 300;
  color: rgba(240,244,248,.2); letter-spacing: .04em;
  line-height: 1.7;
}
.footer-bottom-left a { color: rgba(0,201,177,.45); text-decoration: none; cursor: none; transition: color .3s; }
.footer-bottom-left a:hover { color: var(--teal); }

/* ══ MADE BY FABXPWORLD.IN ══ */
.footer-madeby {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 20px;
  border-radius: 100px;
  background: rgba(255,255,255,.03);
  border: 1px solid rgba(255,255,255,.07);
  text-decoration: none;
  cursor: none;
  position: relative;
  overflow: hidden;
  transition: background .4s, border-color .4s, transform .3s cubic-bezier(.16,1,.3,1), box-shadow .4s;
}
.footer-madeby::before {
  content: '';
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(0,201,177,.08), rgba(124,58,237,.06));
  opacity: 0; transition: opacity .4s;
}
.footer-madeby:hover {
  transform: translateY(-3px);
  background: rgba(0,201,177,.06);
  border-color: rgba(0,201,177,.25);
  box-shadow: 0 8px 28px rgba(0,201,177,.12);
}
.footer-madeby:hover::before { opacity: 1; }

.madeby-label {
  font-size: 9px; letter-spacing: .3em; text-transform: uppercase;
  color: rgba(240,244,248,.25);
  position: relative; z-index: 1;
}
.madeby-divider {
  width: 1px; height: 16px;
  background: rgba(255,255,255,.1);
}
.madeby-brand {
  font-family: 'Playfair Display', serif;
  font-size: 13px; font-weight: 700;
  letter-spacing: .04em;
  position: relative; z-index: 1;
  background: linear-gradient(135deg, #00C9B1, #38BDF8, #A855F7);
  -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
  background-size: 200% 100%;
  animation: brandGlow 4s ease-in-out infinite;
}
@keyframes brandGlow {
  0%,100% { background-position: 0% 50%; filter: brightness(1); }
  50%      { background-position: 100% 50%; filter: brightness(1.2); }
}
.madeby-dot {
  width: 6px; height: 6px; border-radius: 50%;
  background: var(--teal);
  box-shadow: 0 0 8px var(--teal);
  animation: dotPulse 2s ease-in-out infinite;
  position: relative; z-index: 1;
}

.footer-bottom-links {
  display: flex; gap: 20px; flex-wrap: wrap;
}
.footer-bottom-links a {
  font-size: 11px; font-weight: 300; letter-spacing: .06em;
  color: rgba(240,244,248,.2); text-decoration: none; cursor: none;
  transition: color .3s;
}
.footer-bottom-links a:hover { color: rgba(0,201,177,.7); }

/* ════════════════════════════════════════════════════════
   LIGHT MODE FONT VISIBILITY FIX
   Add to END of styles.css
   Problem: dark rgba values become near-invisible on light bg
   Fix: override all body/desc text to use dark readable values
════════════════════════════════════════════════════════ */

/* ── Global: all low-opacity light text → readable dark ── */
[data-theme="light"] {
  --text-main: #1a2040;
}

/* ── Hero / Header ── */
[data-theme="light"] .hero-sub {
  color: rgba(30,40,60,.65) !important;
}
[data-theme="light"] .coords {
  color: rgba(0,100,90,.65) !important;
}

/* ── Destinations section ── */
[data-theme="light"] .dest-section-title {
  color: #1a2040 !important;
}
[data-theme="light"] .dest-count { -webkit-text-stroke-color: rgba(0,130,115,.35) !important; }
[data-theme="light"] .dest-count-label { color: rgba(30,40,60,.45) !important; }

/* ── Origin section ── */
[data-theme="light"] .origin-h2 { color: #1a2040 !important; }
[data-theme="light"] .origin-pull { color: rgba(30,40,60,.62) !important; }
[data-theme="light"] .origin-body-text { color: rgba(30,40,60,.58) !important; }
[data-theme="light"] .origin-body-text strong { color: rgba(30,40,60,.82) !important; }
[data-theme="light"] .ostat-label { color: rgba(30,40,60,.42) !important; }
[data-theme="light"] .mani-body-text { color: rgba(30,40,60,.58) !important; }
[data-theme="light"] .mani-text { color: rgba(30,40,60,.62) !important; }
[data-theme="light"] .mani-text s { color: rgba(30,40,60,.28) !important; }
[data-theme="light"] .mani-text strong { color: rgba(30,40,60,.85) !important; }
[data-theme="light"] .origin-map-sub { color: rgba(30,40,60,.48) !important; }
[data-theme="light"] .omap-status { background: rgba(255,255,255,.85) !important; border-color: rgba(0,140,125,.2) !important; }
[data-theme="light"] .omap-status-text { color: rgba(30,40,60,.55) !important; }
[data-theme="light"] .omap-status-text span { color: rgba(0,120,105,.8) !important; }

/* ── Popup / Map ── */
[data-theme="light"] .opin-tagline { color: rgba(30,40,60,.55) !important; }

/* ── Gallery section (already light bg) ── */
[data-theme="light"] .gallery-intro p { color: rgba(30,40,60,.58) !important; }

/* ── Bespoke section ── */
[data-theme="light"] .bespoke-title { color: #1a2040 !important; }
[data-theme="light"] .item-desc { color: rgba(30,40,60,.62) !important; }

/* ── Legacy section ── */
[data-theme="light"] .legacy-title { color: #1a2040 !important; }
[data-theme="light"] .legacy-intro { color: rgba(30,40,60,.68) !important; }
[data-theme="light"] .legacy-body p { color: rgba(30,40,60,.58) !important; }
[data-theme="light"] .tl-text { color: rgba(30,40,60,.55) !important; }
[data-theme="light"] .tl-text strong { color: rgba(30,40,60,.78) !important; }

/* ── Why section ── */
[data-theme="light"] .why-title { color: #1a2040 !important; }
[data-theme="light"] .wp-bullet { color: rgba(30,40,60,.68) !important; }

/* ── Contact section ── */
[data-theme="light"] .contact-title { color: #1a2040 !important; }
[data-theme="light"] .contact-tagline { color: rgba(30,40,60,.55) !important; }
[data-theme="light"] .cform-heading h3 { color: #1a2040 !important; }
[data-theme="light"] .cform-heading p { color: rgba(30,40,60,.55) !important; }

/* ── Footer (always dark, no light override needed) ── */

/* ── Manifesto / Origin section ── */
[data-theme="light"] .pkg-story-text p { color: rgba(30,40,60,.58) !important; }
[data-theme="light"] .pkg-card-title { color: #1a2040 !important; }
[data-theme="light"] .pkg-card-desc { color: rgba(30,40,60,.58) !important; }



/* ════════════════════════════════════════════════════════
   LIGHT MODE — FONT VISIBILITY FIX
   Problem: dark-theme rgba values become near-invisible
   on light backgrounds (e.g. rgba(240,244,248,.38) on #f5f2ee)
   Fix: override every major body/desc colour to readable
   dark values when [data-theme="light"] is active.
   Edit this block if adding new sections with light-mode text.
════════════════════════════════════════════════════════ */

/* ── Global base ── */
[data-theme="light"] body { color: #1a2040; }

/* ── Hero ── */
[data-theme="light"] .hero-sub         { color: rgba(30,40,60,.7) !important; }
[data-theme="light"] .coords           { color: rgba(0,110,100,.65) !important; }
[data-theme="light"] .live-badge       { color: rgba(30,40,60,.55) !important; }
[data-theme="light"] .dest-count-label { color: rgba(30,40,60,.5) !important; }

/* ── Origin / Our Story section ── */
[data-theme="light"] .origin-h2            { color: #1a2040 !important; }
[data-theme="light"] .origin-pull          { color: rgba(30,40,60,.65) !important; border-left-color: rgba(0,140,125,.4) !important; }
[data-theme="light"] .origin-body-text     { color: rgba(30,40,60,.62) !important; }
[data-theme="light"] .origin-body-text strong { color: rgba(30,40,60,.85) !important; }
[data-theme="light"] .ostat-label          { color: rgba(30,40,60,.45) !important; }
[data-theme="light"] .mani-h3             { color: #1a2040 !important; }
[data-theme="light"] .mani-body-text       { color: rgba(30,40,60,.6) !important; }
[data-theme="light"] .mani-text            { color: rgba(30,40,60,.65) !important; }
[data-theme="light"] .mani-text strong     { color: rgba(30,40,60,.88) !important; }
[data-theme="light"] .mani-text s          { color: rgba(30,40,60,.32) !important; }
[data-theme="light"] .origin-map-sub       { color: rgba(30,40,60,.52) !important; }
[data-theme="light"] .omap-status-text     { color: rgba(30,40,60,.6) !important; }
[data-theme="light"] .opin-tagline         { color: rgba(30,40,60,.58) !important; }

/* ── Gallery section ── */
[data-theme="light"] .gallery-intro p { color: rgba(30,40,60,.6) !important; }
[data-theme="light"] .art-meta .art-caption { color: rgba(30,40,60,.5) !important; }

/* ── Bespoke section ── */
[data-theme="light"] .bespoke-title   { color: #1a2040 !important; }
[data-theme="light"] .item-desc       { color: rgba(30,40,60,.62) !important; }
[data-theme="light"] .stat-label      { color: rgba(30,40,60,.45) !important; }

/* ── Legacy + Video section ── */
[data-theme="light"] .legacy-title    { color: #1a2040 !important; }
[data-theme="light"] .legacy-intro    { color: rgba(30,40,60,.68) !important; }
[data-theme="light"] .legacy-body p   { color: rgba(30,40,60,.6) !important; }
[data-theme="light"] .tl-text         { color: rgba(30,40,60,.58) !important; }
[data-theme="light"] .tl-text strong  { color: rgba(30,40,60,.8) !important; }
[data-theme="light"] .video-header-title { color: #1a2040 !important; }

/* ── Why section (accordion) ── */
[data-theme="light"] .why-title    { color: #1a2040 !important; }
[data-theme="light"] .wp-title     { color: rgba(30,40,60,.75) !important; }
[data-theme="light"] .wp-bullet    { color: rgba(30,40,60,.68) !important; }
[data-theme="light"] .wab-text strong { color: #1a2040 !important; }
[data-theme="light"] .wab-text span   { color: rgba(30,40,60,.5) !important; }

/* ── Zoom section ── */
[data-theme="light"] .zoom-header-title { color: #1a2040 !important; }

/* ── Contact section ── */
[data-theme="light"] .contact-title     { color: #1a2040 !important; }
[data-theme="light"] .contact-tagline   { color: rgba(30,40,60,.58) !important; }
[data-theme="light"] .cform-heading h3  { color: #1a2040 !important; }
[data-theme="light"] .cform-heading p   { color: rgba(30,40,60,.58) !important; }
[data-theme="light"] .cfield label      { color: rgba(30,40,60,.55) !important; }
[data-theme="light"] .mega-cta-text     { color: rgba(30,40,60,.55) !important; }
[data-theme="light"] .nl-strip-left p   { color: rgba(30,40,60,.5) !important; }

/* ── Footer nav ── */
[data-theme="light"] .footer-brand-desc  { color: rgba(30,40,60,.52) !important; }
[data-theme="light"] .footer-nl-text     { color: rgba(30,40,60,.5) !important; }
[data-theme="light"] .footer-nav-heading { color: rgba(30,40,60,.45) !important; }
[data-theme="light"] .footer-nav-list a  { color: rgba(30,40,60,.45) !important; }
[data-theme="light"] .footer-bottom-left { color: rgba(30,40,60,.4) !important; }

/* ── Packages page ── */
[data-theme="light"] .pkg-card-title { color: #1a2040 !important; }
[data-theme="light"] .pkg-card-desc  { color: rgba(30,40,60,.6) !important; }
[data-theme="light"] .pkg-story-text p { color: rgba(30,40,60,.6) !important; }
[data-theme="light"] .pkg-story-text h3 { color: #1a2040 !important; }
[data-theme="light"] .pkg-card-nights { color: rgba(30,40,60,.5) !important; }
[data-theme="light"] .pkg-card-price-from { color: rgba(30,40,60,.45) !important; }

/* END LIGHT MODE FIX */
