 :root{
    --green-deep:#0c2a20;
    --green:#123a2c;
    --green-2:#1a4d3a;
    --gold:#c9a24b;
    --gold-light:#e2c47f;
    --gold-dim:#a5843c;
    --cream:#fbf5e9;
    --cream-2:#f3e9d4;
    --white:#fffdf8;
    --ink:#1c2b23;
    --muted:#5d6b60;
    --line: rgba(18,58,44,0.14);
    --line-gold: rgba(201,162,75,0.4);
    --shadow: 0 30px 60px -25px rgba(12,42,32,0.35);
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;
    background:var(--cream);
    color:var(--ink);
    font-family:'Jost', sans-serif;
    font-weight:300;
    overflow-x:hidden;
  }
  h1,h2,h3,h4{
    font-family:'Playfair Display', serif;
    margin:0;
    font-weight:600;
    letter-spacing:0.2px;
    color:var(--green-deep);
  }
  .script{ font-family:'Cormorant Garamond', serif; font-style:italic; }
  p{ line-height:1.75; color:var(--muted); font-weight:300; }
  a{ color:inherit; text-decoration:none; }
  img{ max-width:100%; display:block; }
  ::selection{ background:var(--gold); color:var(--green-deep); }

  .eyebrow{
    font-family:'Cormorant Garamond', serif;
    font-style:italic;
    letter-spacing:2px;
    font-size:1.4rem;
    color:var(--gold-dim);
    display:inline-flex;
    align-items:center;
    gap:14px;
    margin-bottom:14px;
  }
  .eyebrow.on-dark{ color:var(--gold-light); }
  .eyebrow::before{
    content:"";
    width:30px; height:1px;
    background:linear-gradient(90deg, transparent, var(--gold-dim));
  }

  .wrap{ max-width:1220px; margin:0 auto; padding:0 32px; }
  .section{ padding:130px 0; position:relative; }
  .center{ text-align:center; }

  .btn{
    display:inline-flex; align-items:center; gap:10px;
    padding:17px 38px;
    border:1px solid var(--green-deep);
    color:var(--green-deep);
    font-family:'Jost', sans-serif;
    letter-spacing:2px;
    font-weight:500;
    font-size:0.76rem;
    text-transform:uppercase;
    border-radius:40px;
    position:relative;
    overflow:hidden;
    background:transparent;
    cursor:pointer;
    transition:color .5s ease, border-color .4s ease, transform .3s ease;
  }
  .btn::before{
    content:"";
    position:absolute; inset:0;
    background:var(--green-deep);
    transform:scaleX(0);
    transform-origin:left;
    transition:transform .5s cubic-bezier(.7,0,.2,1);
    z-index:-1;
    border-radius:40px;
  }
  .btn:hover{ color:var(--cream); transform:translateY(-2px); }
  .btn:hover::before{ transform:scaleX(1); }
  .btn.solid{ background:linear-gradient(120deg, var(--gold-dim), var(--gold), var(--gold-light)); background-size:220% 100%; color:var(--green-deep); border-color:var(--gold); font-weight:600; box-shadow:0 14px 30px -14px rgba(201,162,75,0.6); animation:shimmerBtn 5s ease infinite; }
  .btn.solid::before{ background:var(--green-deep); }
  .btn.solid:hover{ color:var(--gold-light); }
  @keyframes shimmerBtn{ 0%,100%{ background-position:0% 50%; } 50%{ background-position:100% 50%; } }
  .btn.on-dark{ border-color:var(--gold-light); color:var(--cream); }
  .btn.on-dark::before{ background:var(--gold-light); }
  .btn.on-dark:hover{ color:var(--green-deep); }

  /* ---------- NAV ---------- */
  /* ---------- HERO ---------- */
  .hero{
    height:100vh; min-height:660px;
    position:relative;
    display:flex; align-items:center; justify-content:center;
    text-align:center;
    background:
      radial-gradient(ellipse 900px 500px at 20% 15%, rgba(201,162,75,0.14), transparent 60%),
      radial-gradient(ellipse 900px 600px at 85% 85%, rgba(26,77,58,0.6), transparent 60%),
      linear-gradient(165deg, #0a2118 0%, #0f3327 45%, #0c2a20 100%);
    overflow:hidden;
  }
  .hero-particles span{
    position:absolute; width:4px; height:4px; border-radius:50%;
    background:var(--gold-light); opacity:.5;
    animation:floatUp linear infinite;
  }
  @keyframes floatUp{
    0%{ transform:translateY(0) translateX(0); opacity:0; }
    10%{ opacity:.6; }
    90%{ opacity:.4; }
    100%{ transform:translateY(-100vh) translateX(30px); opacity:0; }
  }
  .hero-glow{
    position:absolute; width:900px; height:900px; border-radius:50%;
    background:radial-gradient(circle, rgba(201,162,75,0.13), transparent 65%);
    top:-340px; left:50%; transform:translateX(-50%);
    animation:pulse-glow 8s ease-in-out infinite;
    pointer-events:none;
  }
  @keyframes pulse-glow{
    0%,100%{ opacity:.5; transform:translateX(-50%) scale(1); }
    50%{ opacity:.9; transform:translateX(-50%) scale(1.08); }
  }
  .hero-content{ position:relative; z-index:3; max-width:900px; padding:0 24px; }
  .hero .eyebrow{ justify-content:center; opacity:0; animation:fadeUp 1s ease .3s forwards; font-size:1.15rem; }
  .hero .eyebrow::after{
    content:""; width:30px; height:1px;
    background:linear-gradient(270deg, transparent, var(--gold-dim));
  }
  .hero h1{
    font-size:clamp(2.5rem, 5.6vw, 4.9rem);
    color:var(--white);
    line-height:1.1;
    opacity:0; animation:fadeUp 1.1s ease .5s forwards;
  }
  .hero h1 em{
    font-style:italic; color:var(--gold-light); font-weight:500;
    font-family:'Cormorant Garamond', serif;
  }
  .hero p.lead{
    max-width:560px; margin:26px auto 0; font-size:1.05rem; color:var(--cream-2);
    opacity:0; animation:fadeUp 1.1s ease .75s forwards;
  }
  .hero-actions{
    margin-top:44px; display:flex; gap:20px; justify-content:center; flex-wrap:wrap;
    opacity:0; animation:fadeUp 1.1s ease 1s forwards;
  }
  @keyframes fadeUp{
    from{ opacity:0; transform:translateY(26px); }
    to{ opacity:1; transform:translateY(0); }
  }
  .scroll-cue{
    position:absolute; bottom:34px; left:50%; transform:translateX(-50%);
    display:flex; flex-direction:column; align-items:center; gap:10px;
    opacity:0; animation:fadeUp 1s ease 1.4s forwards;
    z-index:3;
  }
  .scroll-cue span{ font-size:.66rem; letter-spacing:3px; text-transform:uppercase; color:var(--gold-dim); }
  .scroll-line{ width:1px; height:44px; background:linear-gradient(var(--gold), transparent); position:relative; overflow:hidden; }
  .scroll-line::after{
    content:""; position:absolute; top:-100%; left:0; width:100%; height:100%;
    background:var(--gold-light);
    animation:scrollDrip 2.2s ease-in-out infinite;
  }
  @keyframes scrollDrip{ 0%{ top:-100%; } 60%{ top:100%; } 100%{ top:100%; } }

  /* ---------- MARQUEE ---------- */
  .marquee-band{
    background:var(--green-deep); overflow:hidden; padding:22px 0;
    border-top:1px solid rgba(201,162,75,0.25); border-bottom:1px solid rgba(201,162,75,0.25);
  }
  .marquee-track{ display:flex; width:max-content; animation:marquee 32s linear infinite; }
  .marquee-track:hover{ animation-play-state:paused; }
  .marquee-item{
    display:flex; align-items:center; gap:16px; padding:0 34px;
    font-family:'Cormorant Garamond', serif; font-style:italic; font-size:1.3rem; color:var(--gold-light);
    white-space:nowrap;
  }
  .marquee-item::after{ content:"✦"; color:var(--gold-dim); font-style:normal; font-size:.8rem; margin-left:34px; }
  @keyframes marquee{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }

  /* ---------- reveal on scroll ---------- */
  .reveal{ opacity:0; transform:translateY(42px); transition:opacity 1s ease, transform 1s ease; }
  .reveal.in{ opacity:1; transform:translateY(0); }
  .reveal-delay-1.in{ transition-delay:.12s; }
  .reveal-delay-2.in{ transition-delay:.24s; }
  .reveal-delay-3.in{ transition-delay:.36s; }
  .reveal-delay-4.in{ transition-delay:.48s; }

  /* ---------- divider ---------- */
  .ornament{
    display:flex; align-items:center; justify-content:center; gap:16px;
    margin:0 auto 26px; width:fit-content;
  }
  .ornament .ln{ width:60px; height:1px; background:linear-gradient(90deg, transparent, var(--gold)); }
  .ornament .ln.r{ background:linear-gradient(270deg, transparent, var(--gold)); }
  .ornament .dot{ width:6px; height:6px; border:1px solid var(--gold); transform:rotate(45deg); animation:spinDot 6s linear infinite; }
  @keyframes spinDot{ from{ transform:rotate(45deg);} to{ transform:rotate(405deg);} }

  .section-head{ max-width:680px; margin:0 auto 70px; }
  .section-head h2{ font-size:clamp(2rem,3.6vw,2.9rem); position:relative; display:inline-block; }
  .section-head h2 .u{
    display:block; position:relative; margin-top:14px; height:2px; width:70px; margin-left:auto; margin-right:auto;
    background:var(--gold); transform:scaleX(0); transform-origin:center;
    transition:transform .8s ease .3s;
  }
  .reveal.in .section-head h2 .u{ transform:scaleX(1); }
  .section-head p{ margin-top:18px; font-size:1.02rem; }

  .alt{ background:var(--cream-2); }
  .dark-band{ background:var(--green-deep); }
  .dark-band .section-head h2, .dark-band h3{ color:var(--white); }
  .dark-band .section-head p, .dark-band p{ color:var(--cream-2); }

  /* ---------- WHY ---------- */
  .why-grid{
    display:grid; grid-template-columns:repeat(3,1fr); gap:1px;
    background:var(--line); border:1px solid var(--line);
  }
  .why-card{
    background:var(--cream); padding:46px 38px; transition:background .4s ease, transform .4s ease, box-shadow .4s ease;
    position:relative;
  }
  .why-card:hover{ background:var(--white); transform:translateY(-8px); box-shadow:var(--shadow); z-index:2; }
  .why-num{ font-family:'Cormorant Garamond',serif; font-style:italic; color:var(--gold-dim); font-size:1rem; margin-bottom:16px; display:block;}
  .why-card h3{ font-size:1.22rem; margin-bottom:12px; }
  .why-card p{ font-size:.92rem; margin:0; }

  /* ---------- STATS (dark band) ---------- */
  .stats{ display:flex; justify-content:space-around; flex-wrap:wrap; gap:40px; }
  .stat{ text-align:center; }
  .stat .num{ font-family:'Playfair Display',serif; font-size:3rem; color:var(--gold-light); }
  .stat .num::after{ content:attr(data-suffix); }
  .stat .lbl{ font-size:.76rem; letter-spacing:2px; text-transform:uppercase; color:var(--cream-2); margin-top:8px; }

  /* ---------- ROUTE ---------- */
  .route-wrap{ position:relative; padding:10px 0 50px; }
  .route-svg{ width:100%; height:auto; display:block; }
  .route-path{ fill:none; stroke:var(--gold-dim); stroke-width:1.4; stroke-dasharray:6 10; opacity:.6; }
  .route-plane{ offset-rotate:auto; animation:flyRoute 14s linear infinite; offset-path:path('M20,60 C 180,10 320,110 480,50 S 780,10 940,60'); }
  @keyframes flyRoute{ 0%{ offset-distance:0%; } 100%{ offset-distance:100%; } }
  .route-pin{ fill:var(--gold-dim); }

  /* ---------- DESTINATIONS ---------- */
  .dest-grid{ display:grid; grid-template-columns:repeat(4, 1fr); gap:24px; }
  .dest-card{
    position:relative; border-radius:6px; overflow:hidden; height:340px;
    background:linear-gradient(155deg, var(--green-2), var(--green-deep));
    border:1px solid rgba(201,162,75,0.25);
    display:flex; align-items:flex-end;
    transition:transform .5s cubic-bezier(.2,.8,.2,1), box-shadow .5s ease;
  }
  .dest-card::before{
    content:""; position:absolute; inset:0;
    background:radial-gradient(circle at 30% 15%, rgba(201,162,75,0.28), transparent 55%);
  }
  .dest-card::after{
    content:""; position:absolute; inset:0;
    background:linear-gradient(0deg, rgba(6,16,12,0.92) 8%, rgba(6,16,12,0.15) 58%, transparent 82%);
  }
  .dest-card:hover{ transform:translateY(-10px) scale(1.01); box-shadow:0 34px 60px -22px rgba(12,42,32,0.5); }
  .dest-inner{ position:relative; z-index:2; padding:26px; width:100%; }
  .dest-tag{ font-size:.66rem; letter-spacing:2px; text-transform:uppercase; color:var(--gold-light); opacity:.9; }
  .dest-card h3{ color:var(--white); font-size:1.35rem; margin-top:8px; }
  .dest-card p{ font-size:.8rem; margin:8px 0 0; color:var(--cream-2); }
  .dest-card .from{ margin-top:14px; font-family:'Cormorant Garamond',serif; font-style:italic; color:var(--gold-light); font-size:.88rem; }
  .dest-big{ grid-row:span 2; height:100%; }

  .chip-row{ display:flex; flex-wrap:wrap; gap:12px; justify-content:center; margin-top:58px; }
  .chip{
    padding:10px 20px; border:1px solid var(--line-gold); border-radius:30px;
    font-size:.78rem; letter-spacing:.5px; color:var(--gold-dim);
    transition:all .35s ease; background:var(--cream);
  }
  .chip:hover{ border-color:var(--gold); color:var(--green-deep); background:var(--gold-light); transform:translateY(-3px); }

  /* ---------- PACKAGES ---------- */
  .pkg-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:24px; }
  .pkg-card{
    border:1px solid var(--line); padding:42px 30px; position:relative;
    background:var(--white); overflow:hidden;
    transition:transform .45s ease, border-color .45s ease, box-shadow .45s ease;
  }
  .pkg-card::before{
    content:""; position:absolute; top:0; left:-120%; width:60%; height:100%;
    background:linear-gradient(100deg, transparent, rgba(201,162,75,0.16), transparent);
    transition:left .8s ease;
  }
  .pkg-card:hover::before{ left:140%; }
  .pkg-card:hover{ transform:translateY(-8px); border-color:var(--gold); box-shadow:var(--shadow); }
  .pkg-card.feature{ background:linear-gradient(180deg, rgba(201,162,75,0.1), var(--white)); border-color:var(--gold); }
  .pkg-tag{ font-size:.66rem; letter-spacing:2px; text-transform:uppercase; color:var(--gold-dim); font-weight:600; }
  .pkg-price{ font-family:'Playfair Display',serif; font-size:2.15rem; margin:16px 0 4px; }
  .pkg-price small{ font-family:'Jost'; font-size:.68rem; color:var(--gold-dim); letter-spacing:1px; }
  .pkg-desc{ font-size:.85rem; margin-bottom:22px; }
  .pkg-list{ list-style:none; padding:0; margin:0 0 28px; }
  .pkg-list li{ font-size:.85rem; color:var(--muted); padding:9px 0; border-top:1px solid var(--line); display:flex; gap:10px; }
  .pkg-list li::before{ content:"✦"; color:var(--gold-dim); font-size:.68rem; }

  /* ---------- STEPS ---------- */
  .steps{ position:relative; margin-top:30px; }
  .steps::before{
    content:""; position:absolute; left:34px; top:10px; bottom:10px; width:1px;
    background:linear-gradient(var(--gold), transparent 92%);
  }
  .step{ display:flex; gap:34px; padding:0 0 58px; position:relative; }
  .step:last-child{ padding-bottom:0; }
  .step-marker{
    flex:0 0 auto; width:70px; height:70px; border:1.5px solid var(--gold);
    border-radius:50%; display:flex; align-items:center; justify-content:center;
    font-family:'Cormorant Garamond',serif; font-style:italic; color:var(--gold-dim);
    font-size:1.5rem; background:var(--cream); position:relative; z-index:2;
    transition:background .4s ease, color .4s ease; text-align:center; line-height:1.1;
  }
  .step-marker.txt{ font-size:1.05rem; }
  .step:hover .step-marker{ background:var(--gold); color:var(--green-deep); }
  .step-body h3{ font-size:1.28rem; margin-bottom:10px; }
  .step-body p{ max-width:560px; font-size:.92rem; }

  /* ---------- VENUE SPOTLIGHT ---------- */
  .venue-row{ display:grid; grid-template-columns: 1fr 1fr; gap:70px; align-items:center; }
  .venue-row.rev .venue-visual{ order:2; }
  .venue-visual{
    height:420px; border-radius:6px; position:relative; overflow:hidden;
    background:linear-gradient(150deg, var(--green-2), var(--green-deep) 70%);
    border:1px solid rgba(201,162,75,0.25);
  }
  .venue-visual::before{
    content:""; position:absolute; inset:0;
    background:radial-gradient(circle at 70% 30%, rgba(201,162,75,0.3), transparent 60%);
  }
  .venue-visual .frame{ position:absolute; inset:18px; border:1px solid rgba(201,162,75,0.45); }
  .venue-visual .vname{ position:absolute; bottom:30px; left:30px; font-family:'Playfair Display',serif; font-size:1.6rem; color:var(--white); z-index:2; }
  .venue-list{ list-style:none; padding:0; margin:26px 0 32px; }
  .venue-list li{ font-size:.9rem; color:var(--muted); padding:11px 0; border-bottom:1px solid var(--line); display:flex; justify-content:space-between; }
  .venue-list li span:last-child{ color:var(--gold-dim); font-family:'Cormorant Garamond',serif; font-style:italic; }

  /* ---------- TESTIMONIALS ---------- */
  .testi-track{ display:flex; gap:26px; overflow-x:auto; padding:10px 4px 30px; scroll-snap-type:x mandatory; }
  .testi-track::-webkit-scrollbar{ height:4px; }
  .testi-track::-webkit-scrollbar-thumb{ background:var(--gold-dim); }
  .testi-card{ flex:0 0 380px; scroll-snap-align:start; border:1px solid var(--line); padding:36px; background:var(--white); transition:transform .4s ease, box-shadow .4s ease; }
  .testi-card:hover{ transform:translateY(-6px); box-shadow:var(--shadow); }
  .stars{ color:var(--gold); letter-spacing:3px; font-size:.9rem; margin-bottom:18px; }
  .testi-card p{ font-size:.92rem; font-style:italic; color:var(--ink); }
  .testi-name{ margin-top:20px; font-family:'Playfair Display',serif; font-size:1rem; }
  .testi-role{ font-size:.74rem; color:var(--gold-dim); letter-spacing:1px; text-transform:uppercase; margin-top:4px; }

  /* ---------- FAQ ---------- */
  .faq{ max-width:820px; margin:0 auto; }
  .faq-item{ border-bottom:1px solid var(--line); }
  .faq-q{ padding:26px 0; display:flex; justify-content:space-between; align-items:center; cursor:pointer; font-family:'Playfair Display',serif; font-size:1.08rem; }
  .faq-q .plus{ color:var(--gold); font-size:1.4rem; transition:transform .4s ease; font-family:'Jost'; }
  .faq-item.open .plus{ transform:rotate(135deg); }
  .faq-a{ max-height:0; overflow:hidden; transition:max-height .5s ease; }
  .faq-item.open .faq-a{ max-height:240px; }
  .faq-a p{ padding-bottom:26px; font-size:.92rem; }

  /* ---------- CTA (final section, replaces footer) ---------- */
  .cta{ text-align:center; padding:150px 0 110px; position:relative; overflow:hidden; }
  .cta::before{
    content:""; position:absolute; width:640px; height:640px; border-radius:50%;
    background:radial-gradient(circle, rgba(201,162,75,0.18), transparent 65%);
    top:-280px; left:50%; transform:translateX(-50%); pointer-events:none;
  }
  .cta h2{ font-size:clamp(2rem,4.4vw,3.4rem); color:var(--white); position:relative; z-index:2; }
  .cta p{ max-width:520px; margin:20px auto 20px; position:relative; z-index:2; color:var(--cream-2); }
  .cta .btn{ position:relative; z-index:2; }
  .cta-contact{
    margin-top:56px; padding-top:36px; border-top:1px solid rgba(201,162,75,0.22);
    display:flex; justify-content:center; gap:50px; flex-wrap:wrap; position:relative; z-index:2;
  }
  .cta-contact div{ text-align:center; }
  .cta-contact .lbl{ font-size:.68rem; letter-spacing:2px; text-transform:uppercase; color:var(--gold-dim); margin-bottom:8px; }
  .cta-contact .val{ font-family:'Cormorant Garamond', serif; font-style:italic; font-size:1.15rem; color:var(--cream); }

  /* ---------- back to top ---------- */
  .to-top{
    position:fixed; bottom:28px; right:28px; width:50px; height:50px; border-radius:50%;
    background:var(--green-deep); border:1px solid var(--gold-dim); color:var(--gold-light);
    display:flex; align-items:center; justify-content:center; cursor:pointer;
    opacity:0; pointer-events:none; transition:opacity .4s ease, transform .3s ease;
    z-index:900; font-size:1.1rem;
  }
  .to-top.show{ opacity:1; pointer-events:auto; }
  .to-top:hover{ transform:translateY(-4px); }

  @media (max-width:1024px){
    .why-grid{ grid-template-columns:1fr 1fr; }
    .dest-grid{ grid-template-columns:1fr 1fr; }
    .dest-big{ grid-row:span 1; height:340px; }
    .pkg-grid{ grid-template-columns:1fr 1fr; }
    .venue-row, .venue-row.rev{ grid-template-columns:1fr; }
    .venue-row.rev .venue-visual{ order:0; }
  }
  @media (max-width:720px){
    .nav-links{ display:none; }
    .why-grid{ grid-template-columns:1fr; }
    .dest-grid{ grid-template-columns:1fr; }
    .pkg-grid{ grid-template-columns:1fr; }
    .section{ padding:80px 0; }
    .step{ gap:20px; }
    .step-marker{ width:54px; height:54px; font-size:1.1rem; }
    .cta-contact{ gap:26px; }
  }