/* ===== FlyApna design system — departures-board identity ===== */

:root{
  --sky-deep:#0a1830;
  --sky-mid:#1c3d68;
  --sky-low:#3a5f8f;
  --horizon:#ff7a55;
  --horizon-soft:#ffb98a;
  --gold:#f2b84b;
  --gold-deep:#c8922f;
  --paper:#f5f1e6;
  --paper-dim:#ece5d3;
  --ink:#0a1830;
  --ink-soft:#3c4c66;
  --mist:#a9bdda;
  --mist-dim:#6c84a8;
  --line:#e2dac4;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:'Nunito Sans', -apple-system, sans-serif;
  overflow-x:hidden;
}
img{max-width:100%; display:block;}
a{color:inherit;}
:focus-visible{outline:2px solid var(--gold); outline-offset:2px;}

.eyebrow{
  font-family:'IBM Plex Mono', monospace;
  font-size:12px;
  letter-spacing:0.24em;
  text-transform:uppercase;
}



/* Prevent iOS Safari auto-zoom on form focus */
input, select, textarea{
  font-size:16px;
}


/* ---------- Navbar ---------- */
.navbar{
  position:absolute; 
  top:0; left: 0; right: 0;
   z-index:50;
  display:flex; align-items:center; justify-content:space-between;
  padding:14px clamp(20px,5vw,64px);
  background:transparent;
  border-bottom:none;
}

.luxe-timeline-card__list{
  list-style:none;
  margin:16px 0 0;
  padding-top:16px;
  border-top:1px dashed var(--line);
  font-size:15px;
  line-height:1.8;
  color:var(--ink-soft);
}
.luxe-timeline-card__list li{
  margin-bottom:9px;
}

.nav-brand{
  display:flex;
  align-items:center;
  gap:0px;
  text-decoration:none;
  padding:0px 0px;
  border-radius:999px;
  transition:transform 0.25s ease, box-shadow 0.25s ease;
}

.nav-brand:hover{
  transform:translateY(-1px);
  box-shadow:0 6px 20px rgba(10,24,48,0.3), 0 0 0 1.5px rgba(242,184,75,0.4);
}

.nav-logo-img{
  height:40px;      /* ← control the logo's size here */
  width:auto;
  display:block;
}

.nav-logo{
  font-family:'Baloo 2', sans-serif;
  font-weight:600;
  font-size:24px;
  letter-spacing:-0.01em;
  color:#25258F;
}

.nav-logo .accent{
  color:#25258F;
}
.nav-logo span{
  color:#25258F;
}
.nav-links{
  display:flex; align-items:center; gap:28px;
  list-style:none; margin:0; padding:0;
}
.nav-links a{
  font-family:'IBM Plex Mono', monospace;
  font-size:12.5px;
  font-weight:600;
  letter-spacing:0.1em;
  text-transform:uppercase;
  text-decoration:none;
  color:#030906;
  transition:color 0.2s ease;
}
.nav-links a:hover, .nav-links a.active{ color:var(--gold-deep); }
.nav-cta{
  font-family:'IBM Plex Mono', monospace;
  font-size:12.5px;
  letter-spacing:0.06em;
  text-decoration:none;
  color:var(--ink);
  background:transparent;
  border:1.5px solid var(--gold-deep);
  padding:9px 16px;
  border-radius:7px;
  white-space:nowrap;
  transition:background 0.2s ease, color 0.2s ease;
}
.nav-cta:hover{ background:var(--gold-deep); color:var(--paper); }
.nav-toggle{ display:none; }

@media (max-width:820px){
  .nav-links{
    position:fixed; inset:64px 0 0 0;
    background:var(--paper);
    flex-direction:column; align-items:stretch;
    padding:32px 28px;
    gap:4px;
    transform:translateX(100%);
    transition:transform 0.3s cubic-bezier(.16,.84,.44,1);
    overflow-y:auto;
  }
  .nav-links.open{ transform:translateX(0); }

  .nav-links a{
    color:var(--ink);
    font-size:15px;
    letter-spacing:0.08em;
    padding:16px 4px;
    border-bottom:1px solid var(--line);
    display:flex;
    align-items:center;
    justify-content:space-between;
    transition:color 0.2s ease, padding-left 0.2s ease;
  }
  .nav-links a::after{
    content:"→";
    opacity:0;
    transform:translateX(-6px);
    transition:opacity 0.2s ease, transform 0.2s ease;
    color:var(--gold-deep);
  }
  .nav-links a:hover,
  .nav-links a.active{
    color:var(--gold-deep);
    padding-left:8px;
  }
  .nav-links a:hover::after,
  .nav-links a.active::after{
    opacity:1;
    transform:translateX(0);
  }
  .nav-links a:last-child{ border-bottom:none; }

  .nav-toggle{
    display:block; background:none; border:none; cursor:pointer;
    padding:6px; color:black;
  }
  
  .nav-toggle svg{ width:24px; height:24px; }
}
/* ---------- Dusk-sky hero (shared by homepage + destination pages) ---------- */
.sky-hero{
  position:relative;
  background:
    radial-gradient(ellipse 120% 60% at 50% 118%, var(--horizon) 0%, rgba(255,122,85,0) 55%),
    linear-gradient(180deg, var(--sky-deep) 0%, var(--sky-mid) 55%, var(--sky-low) 100%);
  color:var(--paper);
  overflow:hidden;
}
.sky-hero .stars{
  position:absolute; inset:0; pointer-events:none; opacity:0.8;
  background-image:
    radial-gradient(1.5px 1.5px at 10% 20%, rgba(255,255,255,0.5), transparent),
    radial-gradient(1.5px 1.5px at 80% 10%, rgba(255,255,255,0.4), transparent),
    radial-gradient(1px 1px at 60% 30%, rgba(255,255,255,0.5), transparent),
    radial-gradient(1px 1px at 30% 45%, rgba(255,255,255,0.35), transparent),
    radial-gradient(1.5px 1.5px at 90% 40%, rgba(255,255,255,0.3), transparent);
}

/* Taller hero on desktop only — mobile keeps its original content-based height */
@media (min-width:821px){
  .sky-hero--home{
    min-height:82vh;
  }
}

@media (min-width:601px){
  .sky-hero--home{
    display:flex;
    flex-direction:column;
  }
  .sky-hero--home .section{
    margin-top:auto;
  }
}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex; align-items:center; gap:8px;
  font-family:'IBM Plex Mono', monospace;
  font-size:14px; letter-spacing:0.04em;
  text-decoration:none;
  padding:13px 24px;
  border-radius:8px;
  transition:transform 0.2s ease, background 0.2s ease, border-color 0.2s ease;
}
.btn-gold{
  background:var(--gold);
  color:var(--sky-deep);
  border:1px solid var(--gold);
  font-weight:600;
}
.btn-gold:hover{ transform:translateY(-1px); background:var(--gold-deep); }
.btn-outline{
  background:transparent;
  color:var(--paper);
  border:1.5px solid rgba(245,241,230,0.4);
}
.btn-outline:hover{ border-color:var(--gold); color:var(--gold); }
.btn-outline-dark{
  background:transparent;
  color:var(--ink);
  border:1.5px solid var(--ink);
}
.btn-outline-dark:hover{ background:var(--ink); color:var(--paper); }

/* ---------- Section rhythm ---------- */
.section{ padding:clamp(75px,8vw,96px) clamp(20px,5vw,64px); }
.section-inner{ max-width:1120px; margin:0 auto; }
.section-head{ max-width:640px; margin:0 0 40px; }
.section-head.center{ margin:0 auto 48px; text-align:center; }
.section-head .eyebrow{ color:var(--gold-deep); margin:0 0 12px; }
.section-head h2{
  font-family:'Baloo 2', sans-serif;
  font-weight:600;
  font-size:clamp(1.8rem,4vw,2.6rem);
  line-height:1.15;
  margin:0 0 14px;
  color:var(--ink);
}
.section-head p{
  font-size:1rem; line-height:1.7; color:var(--ink-soft);
  margin:0;
}

.curve-top{
  
  border-radius:48px 48px 0 0;
  position:relative;
  margin-top:-104px;
  padding-top:calc(32px + 40px);
}
.curve-top::before{
  content:"";
  position:absolute;
  top:10px; left:10px; right:10px;
  bottom:0;
  border-radius:38px 38px 0 0;
  border:2px dashed rgba(242,184,75,0.45);
  border-bottom:none;
  pointer-events:none;
}

.curve-plane-path{
  position:absolute;
  top:0; left:0;
  width:100%;
  height:130px;
  pointer-events:none;
  z-index:2;
  overflow:visible;
}

/* ---------- Footer ---------- */
footer.site-footer{
  background:var(--sky-deep);
  color:var(--mist);
  padding:56px clamp(20px,5vw,64px) 28px;
}
.footer-grid{
  max-width:1120px; margin:0 auto;
  display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:40px;
}
.footer-brand{
  font-family:'Baloo 2', sans-serif; font-weight:600; font-size:22px;
  color:var(--paper); margin:0 0 12px;
}
.footer-tagline{ font-size:16px; line-height:1.7; color:var(--mist-dim); max-width:280px; font-weight:600 }
.footer-col h4{
  font-family:'IBM Plex Mono', monospace; font-size:14px; letter-spacing:0.16em;
  text-transform:uppercase; color:var(--gold); margin:0 0 16px; font-weight: 700;
}
.footer-col ul{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:10px; }
.footer-col a{ text-decoration:none; color:var(--mist); font-size:16px; font-weight: 700; }
.footer-col a:hover{ color:var(--paper); }
.footer-bottom{
  max-width:1120px; margin:40px auto 0; padding-top:24px;
  border-top:1px solid rgba(169,189,218,0.15);
  font-family:'IBM Plex Mono', monospace; font-size:11.5px; letter-spacing:0.08em;
  color:var(--mist-dim); text-transform:uppercase;
}
@media (max-width:720px){
  .footer-grid{ grid-template-columns:1fr; gap:32px; }
}

/* ---------- Cards: destination grid ---------- */
.dest-grid{
  display:grid; grid-template-columns:repeat(3,1fr); gap:24px;
}
@media (max-width:920px){ .dest-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:600px){ .dest-grid{ grid-template-columns:1fr; } }

.dest-card{
  position:relative;
  border-radius:16px;
  overflow:hidden;
  text-decoration:none;
  color:var(--paper);
  min-height:280px;
  display:flex; flex-direction:column; justify-content:flex-end;
  padding:22px;
  box-shadow:0 18px 36px -18px rgba(10,24,48,0.35);
  transition:transform 0.25s ease, box-shadow 0.25s ease;
}
.dest-card:hover{ transform:translateY(-4px); box-shadow:0 24px 44px -16px rgba(10,24,48,0.45); }
.dest-card .code{
  position:absolute; top:18px; left:20px;
  font-family:'IBM Plex Mono', monospace; font-size:11px; letter-spacing:0.16em;
  background:rgba(10,24,48,0.35);
  padding:5px 10px; border-radius:5px;
}
.dest-card .icon{ position:absolute; top:16px; right:18px; width:34px; height:34px; opacity:0.85; }
.dest-card h3{
  font-family:'Baloo 2', sans-serif;
  font-weight:600;
  font-size:1.8rem;
  margin:0 0 4px;
  color:#fff;
  text-shadow:0 2px 10px rgba(0,0,0,0.55), 0 1px 3px rgba(0,0,0,0.4);
}.dest-card .tagline{ font-size:16px; opacity:1; margin:0 0 10px; line-height:1.5; }
.dest-card .price{
  display:inline-block;
  font-family:'Montserrat', sans-serif;
  font-weight:700;
  font-size:17px;
  color:var(--gold);
  letter-spacing:0.02em;
  background:rgba(10,24,48,0.4);
  padding:5px 12px;
  border-radius:6px;
}.dest-card::before{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(10,24,48,0) 35%, rgba(10,24,48,0.75) 100%);
}
.dest-card > *{ position:relative; z-index:1; }

/* Gradient themes per destination */
.grad-bali{ background:linear-gradient(135deg, #ff8a65, #1c3d68); }
.grad-maldives{ background:linear-gradient(135deg, #1c3d68, #17b6a7); }
.grad-dubai{ background:linear-gradient(135deg, #c8922f, #0a1830); }
.grad-thailand{ background:linear-gradient(135deg, #1c7a5c, #f2b84b); }
.grad-kerala{ background:linear-gradient(135deg, #0f5c4a, #1c3d68); }
.grad-goa{ background:linear-gradient(135deg, #ff6f59, #3a1c68); }

/* ---------- Who's travelling selector ---------- */
.persona-grid{
  display:grid; grid-template-columns:repeat(4,1fr); gap:16px;
}
@media (max-width:820px){ .persona-grid{ grid-template-columns:repeat(2,1fr); } }
.persona-card{
  display:flex; flex-direction:column; align-items:center; gap:10px;
  text-align:center;
  padding:26px 16px;
  border-radius:14px;
  border:1px solid rgba(245,241,230,0.18);
  background:rgba(245,241,230,0.04);
  text-decoration:none;
  color:var(--paper);
  transition:background 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
}
.persona-card:hover{ background:rgba(242,184,75,0.1); border-color:var(--gold); transform:translateY(-2px); }
.persona-card .icon{ width:36px; height:36px; color:var(--gold); }
.persona-card .label{ font-family:'Baloo 2', sans-serif; font-size:1.05rem; font-weight:600; }
.persona-card .sub{ font-family:'IBM Plex Mono', monospace; font-size:11px; letter-spacing:0.08em; color:var(--mist); text-transform:uppercase; }

/* ---------- Trust section ---------- */
.trust-badge{
  display:inline-flex; align-items:center; gap:10px;
  background:var(--paper-dim);
  border:1px solid var(--line);
  padding:10px 18px;
  border-radius:10px;
  font-family:'IBM Plex Mono', monospace;
  font-size:13px;
  margin-bottom:28px;
}
.trust-badge .stars{ color:var(--gold-deep); letter-spacing:2px; }
.testimonial-grid{
  display:grid; grid-template-columns:repeat(3,1fr); gap:22px;
}
@media (max-width:920px){ .testimonial-grid{ grid-template-columns:1fr; } }
.testimonial{
  background:#fff;
  border:1px solid var(--line);
  border-radius:14px;
  padding:26px;
}
.testimonial .stars{ color:var(--gold-deep); font-size:14px; margin-bottom:12px; letter-spacing:2px; }
.testimonial p{ font-size:14.5px; line-height:1.7; color:var(--ink-soft); font-style:italic; margin:0 0 16px; font-weight: 700; }
.testimonial .who{ font-family:'IBM Plex Mono', monospace; font-size:12px; color:var(--ink); letter-spacing:0.04em; }

/* ---------- Recently booked feed ---------- */
.feed{
  background:var(--paper-dim);
  border:1px solid var(--line);
  border-radius:16px;
  padding:8px;
}
.feed-row{
  display:flex; align-items:center; justify-content:space-between;
  padding:16px 18px;
  border-bottom:1px solid var(--line);
  font-family:'IBM Plex Mono', monospace;
  font-size:13px;
}
.feed-row:last-child{ border-bottom:none; }
.feed-left{ display:flex; align-items:center; gap:12px; }
.feed-dot{ width:8px; height:8px; border-radius:50%; background:#3fae6a; flex:none; }
.feed-name{ color:var(--ink); font-weight:600; }
.feed-dest{ color:var(--ink-soft); }
.feed-time{ color:var(--mist-dim); }

/* ---------- Generic content blocks (About/Contact/Destination detail) ---------- */
.two-col{
  display:grid; grid-template-columns:1.1fr 0.9fr; gap:56px; align-items:start;
}
@media (max-width:880px){ .two-col{ grid-template-columns:1fr; } }

.info-card{
  background:#fff; border:1px solid var(--line); border-radius:14px; padding:28px;
}
.info-card h4{
  display:flex;
  align-items:center;
  gap:10px;
  font-family:'Baloo 2', sans-serif;
  font-size:1.1rem;
  margin:0 0 6px;
  color:var(--ink);
}
.info-card h4 svg{
  width:22px;
  height:22px;
  flex:none;
  color:var(--gold-deep);
}
.info-card p{ font-size:14px; color:var(--ink-soft); line-height:1.7; margin:0; }

.itinerary-day{
  display:grid; grid-template-columns:64px 1fr; gap:18px;
  padding:18px 0;
  border-bottom:1px solid var(--line);
}
.itinerary-day:last-child{ border-bottom:none; }
.itinerary-day .num{
  font-family:'IBM Plex Mono', monospace; font-size:12px; color:var(--gold-deep);
  letter-spacing:0.08em;
  white-space:nowrap;
  flex:none;
  width:52px;
}
.itinerary-day h5{ font-family:'Baloo 2', sans-serif; font-size:1.05rem; margin:0 0 6px; color:var(--ink); }
.itinerary-day p{ font-size:14px; color:var(--ink-soft); line-height:1.7; margin:0; }

.highlight-list{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:14px; }
.highlight-list li{ display:flex; gap:12px; font-size:16px; color:var(--ink-soft); line-height:1.6; font-weight: 600; }
.highlight-list li svg{ flex:none; width:20px; height:20px; color:var(--gold-deep); margin-top:2px; }

.gallery-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }
@media (max-width:700px){ .gallery-grid{ grid-template-columns:repeat(2,1fr); } }
.gallery-tile{
  aspect-ratio:4/3;
  border-radius:10px;
  object-fit:cover;
  width:100%;
  display:block;
}

/* ---------- Forms ---------- */
.form-field{ margin-bottom:18px; }
.form-field label{
  display:block; font-family:'IBM Plex Mono', monospace; font-size:12px;
  letter-spacing:0.08em; text-transform:uppercase; color:var(--ink-soft); margin-bottom:8px;
}
.form-field input, .form-field select, .form-field textarea{
  width:100%; padding:13px 14px; border-radius:8px;
  border:1px solid var(--line); background:#fff; color:var(--ink);
  font-family:'Nunito Sans', sans-serif; font-size:16px;
}
.form-field textarea{ min-height:110px; resize:vertical; }
.form-field input:focus, .form-field select:focus, .form-field textarea:focus{
  outline:2px solid var(--gold); outline-offset:1px; border-color:var(--gold);
}

/* ---------- CTA band ---------- */
.cta-band{
  border-radius:20px;
  padding:clamp(32px,6vw,56px);
  text-align:center;
}
.cta-band h2{
  font-family:'Baloo 2', sans-serif; font-weight:600; font-size:clamp(1.6rem,3.6vw,2.2rem);
  margin:0 0 14px; color:var(--paper);
}
.cta-band p{ color:var(--mist); margin:0 0 26px; font-size:15px; font-weight: 600; }
.cta-actions{ display:flex; gap:14px; justify-content:center; flex-wrap:wrap; }

/* ---------- Split-flap headline ---------- */
[data-flap]{ display:inline; }
.flap-word{ display:inline-block; white-space:nowrap; }
.flap-char{ display:inline-block; min-width:0.28em; transform-origin:center 55%; }
@media (prefers-reduced-motion: no-preference){
  .flap-char.flapping{ animation:flap 0.09s ease-in-out; }
  @keyframes flap{
    0%{ transform:scaleY(1); }
    45%{ transform:scaleY(0.35); }
    100%{ transform:scaleY(1); }
  }
}
.hero-heading{
  font-family:'Baloo 2', sans-serif;
  font-optical-sizing:auto;
  font-weight:600;
  font-size:clamp(2rem, 5.6vw, 3.6rem);
  line-height:1.1;
  margin:0 0 22px;
  letter-spacing:-0.01em;
}

.sound-toggle{
  position:absolute;
  bottom: 52px;
  right:20px;
  z-index:2;
  width:42px; height:42px;
  border-radius:50%;
  background:rgba(10,24,48,0.55);
  border:1px solid rgba(245,241,230,0.3);
  color:var(--paper);
  display:flex; align-items:center; justify-content:center;
  cursor:pointer;
  backdrop-filter:blur(4px);
}
.sound-toggle svg{ width:18px; height:18px; }
.sound-toggle:hover{ background:rgba(10,24,48,0.75); }

.hero-video{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  z-index:0;
}

/* ---------- Quote request modal ---------- */
.wa-modal-overlay{
  position:fixed; inset:0; z-index:200;
  background:rgba(10,24,48,0.6);
  display:flex; align-items:center; justify-content:center;
  padding:20px;
}
.wa-modal-overlay[hidden]{ display:none; }
.wa-modal{
  background:var(--paper);
  border-radius:16px;
  padding:32px;
  max-width:380px; width:100%;
  box-shadow:0 30px 60px -20px rgba(5,12,26,0.5);
}
.wa-modal h3{
  font-family:'Baloo 2', sans-serif; font-size:1.3rem; margin:0 0 6px; color:var(--ink);
}
.wa-modal p.sub{ font-size:13.5px; color:var(--ink-soft); margin:0 0 20px; }
.wa-modal .form-field{ margin-bottom:16px; }
.wa-modal-actions{ display:flex; gap:10px; margin-top:6px; }
.wa-modal-actions .btn{ flex:1; justify-content:center; border:none; cursor:pointer; }
.wa-modal-close{
  background:none; border:none; color:var(--ink-soft);
  font-size:13px; cursor:pointer; text-decoration:underline;
}

/* ---------- Contact page — icon strip (centered) ---------- */
.contact-cols{ align-items:stretch; }
.contact-side{
  display:flex; flex-direction:column;
  align-items:center;
  text-align:center;
  height:100%;
}
.contact-intro{ font-size:16px; line-height:1.7; color:var(--ink); margin:0 0 32px; max-width:280px; }

.icon-strip{ display:flex; gap:32px; flex-wrap:wrap; justify-content:center; }
.icon-strip-item{
  display:flex; flex-direction:column; align-items:center; text-align:center;
  gap:10px; width:104px;
  text-decoration:none; color:var(--ink);
}
.icon-strip-item .circle{
  width:56px; height:56px; border-radius:50%;
  border:1.6px solid var(--ink);
  display:flex; align-items:center; justify-content:center;
  transition:border-color 0.2s ease, color 0.2s ease, transform 0.2s ease;
}
.icon-strip-item .circle svg{ width:22px; height:22px; }
.icon-strip-item .label{
  font-family:'IBM Plex Mono', monospace; font-size:12px; letter-spacing:0.04em; font-weight:500;
}
.icon-strip-item .sub{ font-size:11.5px; color:var(--ink-soft); line-height:1.5; }
.icon-strip-item:hover .circle{ border-color:var(--gold-deep); color:var(--gold-deep); transform:translateY(-2px); }

.contact-side .btn{ margin-top:auto; }

@media (prefers-reduced-motion: reduce){
  *{ animation-duration:0.001ms !important; animation-iteration-count:1 !important; scroll-behavior:auto !important; }
}
.hero-cta-wrap{
  position:relative;
  z-index:20;
  display:flex;
  justify-content:center;
  margin-top:0;
  margin-bottom:0;
  padding:0 20px;
  
}
.hero-cta-pill{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:#fff;
  color:var(--ink);
  font-family:'Nunito Sans', sans-serif;
  font-weight:600;
  font-size:16px;
  text-decoration:none;
  padding:18px 40px;
  border-radius:999px;
  box-shadow:0 0 0 2px var(--gold), 0 20px 40px -12px rgba(10,24,48,0.45);
  transition:transform 0.2s ease, box-shadow 0.2s ease;
  position:relative;
  top:-67px;      /* ← this is now the ONLY thing that moves the button */
}
.hero-cta-pill:hover{
  box-shadow:0 0 0 2px var(--gold-deep), 0 24px 44px -10px rgba(10,24,48,0.5);
}

.hero-lede{
  position:relative;
  font-family:'Baloo 2', sans-serif;
  font-style:italic;
  font-weight:400;
  font-size:clamp(1.15rem, 2.4vw, 1.4rem);
  line-height:1.6;
  color:var(--paper);
  opacity:0.92;
  max-width:560px;
  margin:0 0 30px;
  padding-left:20px;
  border-left:2px solid var(--gold);
  letter-spacing:0.01em;
}

.hero-lede::before{
  content:"";
  position:absolute;
  left:-2px; top:0; bottom:0;
  width:2px;
  background:var(--gold);
}

@media (prefers-reduced-motion: no-preference){
  .hero-lede{
    border-left:2px solid transparent;
    opacity:0;
    transform:translateY(16px);
    animation:ledeFadeUp 0.9s cubic-bezier(.16,.84,.44,1) forwards;
    animation-delay:1.1s;
  }
  .hero-lede::before{
    transform:scaleY(0);
    transform-origin:top;
    animation:ledeBarGrow 0.6s ease-out forwards;
    animation-delay:1.15s;
  }
  @keyframes ledeFadeUp{
    to{ opacity:0.92; transform:translateY(0); }
  }
  @keyframes ledeBarGrow{
    to{ transform:scaleY(1); }
  }
}

@media (min-width:601px){
  .dest-carousel-wrap{ overflow:visible; }
  .dest-carousel-track{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:24px;
    transform:none !important;
  }
  .dest-page{ display:contents; }
  .dest-dots{ display:none; }
}



@media (max-width:600px){
  .dest-carousel-wrap{
    position:relative;
    overflow:hidden;
  }
  .dest-carousel-track{
    display:flex;
    transition:transform 0.75s cubic-bezier(.22,1,.36,1);
    will-change:transform;
  }
  .dest-page{
    flex:0 0 100%;
    display:flex;
    flex-direction:column;
    gap:14px;
    padding:2px;  /* prevents shadow clipping during transition */
  }
  .dest-card{
    transition:opacity 0.5s ease, transform 0.5s ease;
  }
  /* Cards on the page currently sliding in fade+rise slightly for extra polish */
  .dest-page:not(.is-active) .dest-card{
    opacity:0.85;
  }
  .dest-page.is-active .dest-card{
    opacity:1;
  }

  .dest-dots{
    display:flex;
    justify-content:center;
    gap:8px;
    margin-top:18px;
  }
  .dest-dot{
    width:7px; height:7px;
    border-radius:50%;
    background:var(--line);
    cursor:pointer;
    transition:background 0.35s ease, transform 0.35s cubic-bezier(.34,1.56,.64,1), width 0.35s ease;
  }
  .dest-dot.active{
    background:var(--gold-deep);
    width:20px;
    border-radius:4px;
  }
}

/* ---------- Stats strip ---------- */
.stats-strip{
  background:var(--paper-dim);
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  padding:clamp(40px,6vw,56px) clamp(20px,5vw,64px);
}
.stats-strip__grid{
  max-width:1000px;
  margin:0 auto;
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:24px;
  text-align:center;
}
.stat__number{
  font-family:'Baloo 2', sans-serif;
  font-weight:700;
  font-size:clamp(2rem, 4vw, 2.8rem);
  color:var(--ink);
  line-height:1;
}
.stat__divider{
  width:28px; height:2px;
  background:var(--gold-deep);
  margin:10px auto 0;
}
.stat__label{
  margin-top:8px;
  font-family:'IBM Plex Mono', monospace;
  font-size:11.5px;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:var(--ink-soft);
}
@media (max-width:768px){
  .stats-strip__grid{ grid-template-columns:repeat(2,1fr); gap:28px; }
}

/* ----------------- */

/* ---------- About page: intro quote ---------- */
.intro-quote{
  background:var(--sky-deep);
  color:var(--paper);
  padding:clamp(48px,8vw,96px) clamp(20px,5vw,64px);
  text-align:center;
}
.intro-quote__inner{ max-width:760px; margin:0 auto; }
.intro-quote__text{
  font-family:'Baloo 2', sans-serif;
  font-style:italic;
  font-size:clamp(1.5rem, 3.5vw, 2.3rem);
  line-height:1.45;
  margin:0 0 16px;
}
.intro-quote__text strong{ color:var(--gold); font-style:normal; }
.intro-quote__caption{
  font-family:'IBM Plex Mono', monospace;
  font-size:12px;
  letter-spacing:0.1em;
  color:rgba(245,241,230,0.5);
}

/* ---------- Story section (image + text) ---------- */
.story-split{ padding:clamp(56px,8vw,96px) clamp(20px,5vw,64px); background:#fff; }
.story-split__inner{
  max-width:1100px; margin:0 auto;
  display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:center;
}
.story-split__img-wrap{ position:relative; }
.story-split__img{
  width:100%; height:460px; object-fit:cover; border-radius:8px;
}
.story-split__img-accent{
  position:absolute; bottom:-20px; right:-20px;
  width:150px; height:150px;
  background:var(--gold); border-radius:8px; z-index:-1;
}
.story-split__title{
  font-family:'Baloo 2', sans-serif; font-weight:600;
  font-size:clamp(1.8rem,3.5vw,2.4rem);
  color:var(--ink); margin:10px 0 20px; line-height:1.2;
}
.story-split__body{ color:var(--ink-soft); font-size:15px; line-height:1.8; margin-bottom:14px; }
@media (max-width:900px){
  .story-split__inner{ grid-template-columns:1fr; gap:36px; }
  .story-split__img-accent{ display:none; }
  .story-split__img{ height:340px; }
}

/* ---------- Values (dark section, bordered cards) ---------- */
.values-band{ background:var(--sky-deep); color:var(--paper); padding:clamp(56px,8vw,96px) clamp(20px,5vw,64px); }
.values-band__inner{ max-width:1100px; margin:0 auto; }
.value-card2{
  padding:28px; border:1px solid rgba(245,241,230,0.14); border-radius:10px;
  transition:border-color 0.25s ease, background 0.25s ease;
}
.value-card2:hover{ border-color:var(--gold); background:rgba(242,184,75,0.06); }
.value-card2__icon{ font-size:1.6rem; color:var(--gold); margin-bottom:14px; }
.value-card2__title{ font-family:'Baloo 2', sans-serif; font-size:1.15rem; font-weight:600; margin:0 0 10px; color:var(--paper); }
.value-card2__text{ font-size:13.5px; color:rgba(245,241,230,0.55); line-height:1.75; margin:0; }
.value-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
@media (max-width:768px){ .value-grid{ grid-template-columns:1fr; } }

/* ---------- Team grid ---------- */
.team-section{ padding:clamp(56px,8vw,96px) clamp(20px,5vw,64px); background:#fff; }
.team-grid{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:28px;
  max-width:1100px;
  margin:0 auto;
  text-align:center;
}
.team-grid > div{
  width:220px;
}
.team-card2__initial{
  width:104px; height:104px; border-radius:50%;
  background:var(--sky-deep); color:var(--gold);
  display:flex; align-items:center; justify-content:center;
  font-family:'Baloo 2', sans-serif; font-weight:700; font-size:1.7rem;
  margin:0 auto 16px;
}
.team-card2__name{ font-family:'Baloo 2', sans-serif; font-weight:600; font-size:1.05rem; color:var(--ink); margin:0 0 4px; }
.team-card2__role{ font-family:'IBM Plex Mono', monospace; font-size:11px; letter-spacing:0.08em; text-transform:uppercase; color:var(--gold-deep); font-weight:600; margin:0 0 10px; }
.team-card2__bio{ font-size:13px; color:var(--ink-soft); line-height:1.7; }

/* ---------- Gold CTA band ---------- */
.cta-gold{ background:var(--gold); padding:clamp(48px,7vw,72px) clamp(20px,5vw,64px); text-align:center; }
.cta-gold__title{ font-family:'Baloo 2', sans-serif; font-weight:700; font-size:clamp(1.7rem,3.5vw,2.4rem); color:var(--sky-deep); margin:0 0 12px; }
.cta-gold__sub{ color:rgba(10,24,48,0.7); font-size:15px; max-width:480px; margin:0 auto 26px; }


/* ---------- Destination search bar ---------- */
.dest-search-wrap{
  max-width:640px;
  margin:0 auto 40px;
  padding:0 20px;
}
.dest-search-box{
  display:flex;
  align-items:center;
  gap:12px;
  background:#fff;
  border:1.5px solid var(--line);
  border-radius:999px;
  padding:16px 22px;
  transition:border-color 0.25s ease, box-shadow 0.25s ease;
}
.dest-search-box:focus-within{
  border-color:var(--gold);
  box-shadow:0 0 0 4px rgba(242,184,75,0.18);
}
.dest-search-icon{
  width:20px; height:20px;
  color:var(--ink-soft);
  flex:none;
}
#destSearchInput{
  border:none;
  outline:none;
  width:100%;
  font-family:'Nunito Sans', sans-serif;
  font-size:16px;
  color:var(--ink);
  background:transparent;
}
#destSearchInput::placeholder{ color:var(--ink-soft); opacity:0.6; }

.dest-no-results{
  text-align:center;
  margin-top:20px;
  font-size:14px;
  color:var(--ink-soft);
}
.dest-no-results a{
  color:var(--gold-deep);
  text-decoration:underline;
  font-weight:600;
}

.dest-card[data-hidden="true"]{
  display:none;
}

/* ---------- Contact page — split screen layout ---------- */
.contact-split{
  display:grid;
  grid-template-columns:1fr 1fr;
  min-height:640px;
}
.contact-split__img{
  position:relative;
  background-size:cover;
  background-position:center;
  min-height:400px;
}
.contact-split__form-side{
  background:#fff;
  padding:clamp(32px,5vw,64px);
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.contact-split__title{
  font-family:'Baloo 2', sans-serif;
  font-weight:700;
  font-size:clamp(1.5rem,2.6vw,1.9rem);
  color:var(--ink);
  margin:0 0 32px;
  max-width:440px;
  line-height:1.3;
}
.contact-split__form{
  display:flex;
  flex-direction:column;
  gap:16px;
}
.contact-split__row{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px;
}
.contact-split__field{
  position:relative;
  display:flex;
  align-items:center;
  gap:12px;
  border:1.5px solid var(--line);
  border-radius:10px;
  padding:14px 16px;
  transition:border-color 0.2s ease, box-shadow 0.2s ease;
}
.contact-split__field:focus-within{
  border-color:var(--gold-deep);
  box-shadow:0 0 0 3px rgba(200,146,47,0.14);
}
.contact-split__field svg{
  width:19px; height:19px;
  color:var(--ink-soft);
  flex:none;
}
.contact-split__field input{
  border:none;
  outline:none;
  width:100%;
  font-family:'Nunito Sans', sans-serif;
  font-size:16px;
  color:var(--ink);
  background:transparent;
}
.contact-split__field input::placeholder{ color:var(--ink-soft); opacity:0.75; }

.contact-split__note{
  font-size:13px;
  color:var(--ink-soft);
  margin:6px 0 4px;
}
.contact-split__note a{
  color:var(--gold-deep);
  text-decoration:underline;
  font-weight:600;
}
.contact-split__submit{
  background:var(--gold-deep);
  color:#fff;
  border:none;
  border-radius:10px;
  padding:16px;
  font-family:'IBM Plex Mono', monospace;
  font-size:15px;
  font-weight:600;
  letter-spacing:0.04em;
  text-transform:uppercase;
  cursor:pointer;
  transition:background 0.2s ease, transform 0.2s ease;
}
.contact-split__submit:hover{
  background:var(--sky-deep);
  transform:translateY(-1px);
}

@media (max-width:900px){
  .contact-split{ grid-template-columns:1fr; }
  .contact-split__img{ min-height:280px; }
  .contact-split__row{ grid-template-columns:1fr; }
}


/* ---------- Promotional offer banner ---------- */
.promo-banner{
  display:block;
  border-radius:20px;
  overflow:hidden;
  box-shadow:0 18px 36px -18px rgba(10,24,48,0.35);
  transition:transform 0.25s ease, box-shadow 0.25s ease;
}
.promo-banner:hover{
  transform:translateY(-3px);
  box-shadow:0 24px 44px -16px rgba(10,24,48,0.45);
}
.promo-banner__img{
  width:100%;
  height:auto;
  display:block;
}
@media (max-width:600px){
  .promo-banner{
    border-radius:14px;
  }
}


/* about page image-band */
.image-band{
  position:relative;
  width:100vw;
  margin-left:calc(50% - 50vw);
  height:clamp(320px, 40vw, 420px);
  overflow:hidden;
}
.image-band__img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.image-band__overlay{
  position:absolute;
  inset:0;
  background:linear-gradient(to right, rgba(10,24,48,0.8) 0%, rgba(10,24,48,0.2) 60%);
  display:flex;
  align-items:center;
  padding:0 8%;
}
.image-band__text{
  max-width:540px;
  color:var(--paper);
  opacity:0;
  transform:translateY(24px);
  transition:opacity 0.9s cubic-bezier(.16,.84,.44,1), transform 0.9s cubic-bezier(.16,.84,.44,1);
}
.image-band__text.in-view{
  opacity:1;
  transform:translateY(0);
}
.image-band__quote{
  font-family:'Baloo 2', sans-serif;
  font-style:italic;
  font-size:clamp(1.5rem, 3vw, 2.2rem);
  line-height:1.4;
  margin:0 0 12px;
}
.image-band__attr{
  font-family:'IBM Plex Mono', monospace;
  font-size:12px;
  letter-spacing:0.1em;
  text-transform:uppercase;
  color:var(--gold);
  font-weight:500;
}

@media (prefers-reduced-motion: reduce){
  .image-band__text{
    transition:none;
    opacity:1;
    transform:none;
  }
}

@media (max-width:600px){
  .image-band{ height:280px; }
}

/* ---------- Scroll-triggered 3D depth reveal ---------- */
.reveal-3d{
  opacity:0;
  transform:perspective(1200px) translateY(60px) scale(0.94) rotateX(6deg);
  transform-origin:center bottom;
  transition:opacity 0.9s cubic-bezier(.16,.84,.44,1), transform 0.9s cubic-bezier(.16,.84,.44,1);
  will-change:transform, opacity;
}
.reveal-3d.in-view{
  opacity:1;
  transform:perspective(1200px) translateY(0) scale(1) rotateX(0deg);
}

@media (prefers-reduced-motion: reduce){
  .reveal-3d{
    opacity:1;
    transform:none;
    transition:none;
  }
}

/* plane mobile */

@media (max-width:600px){
  .curve-plane-path{
    display:none;
  }
}

/* ---------- About page hero — parallax background photo ---------- */
.sky-hero--parallax{
  background-image:
    radial-gradient(ellipse 120% 60% at 50% 118%, var(--horizon) 0%, rgba(255,122,85,0) 55%),
    linear-gradient(180deg, rgba(10,24,48,0.75) 0%, rgba(28,61,104,0.55) 55%, rgba(58,95,143,0.4) 100%),
    url('about-hero-bg.png');
  background-size:cover, cover, cover;
  background-position:center, center, center;
  background-attachment:scroll, scroll, fixed;
}

@media (max-width:820px){
  /* background-attachment:fixed is unreliable on mobile Safari — fall back to scroll */
  .sky-hero--parallax{
    background-attachment:scroll, scroll, scroll;
  }
}

/* ---------- Footer social icons ---------- */
.footer-social{
  display:flex;
  gap:12px;
  margin-top:18px;
}
.footer-social a{
  display:flex;
  align-items:center;
  justify-content:center;
  width:38px;
  height:38px;
  border-radius:50%;
  border:1px solid rgba(169,189,218,0.25);
  color:var(--mist);
  transition:border-color 0.2s ease, color 0.2s ease, transform 0.2s ease;
}
.footer-social a:hover{
  border-color:var(--gold);
  color:var(--gold);
  transform:translateY(-2px);
}
.footer-social a svg{
  width:30px;
  height:30px;
}

/* ---------- Footer "Managed by" badge ---------- */
.footer-managed{
  display:flex;
  align-items:center;
  gap:10px;
  margin-top:20px;
  padding-top:16px;
  border-top:1px solid rgba(169,189,218,0.15);
}
.footer-managed span{
  font-family:'IBM Plex Mono', monospace;
  font-size:11px;
  font-weight:600;
  letter-spacing:0.06em;
  text-transform:uppercase;
  color:var(--mist);
  white-space:nowrap;
}
.footer-managed a{
  display:block;
  line-height:0;
  border-radius:4px;
  overflow:hidden;
  transition:opacity 0.2s ease, transform 0.2s ease;
}
.footer-managed a:hover{
  opacity:0.85;
  transform:translateY(-1px);
}
.footer-managed img{
  height:72px;
  width:auto;
  display:block;
}


/* ---------- Itinerary day toggle/accordion ---------- */
.itinerary-day{
  cursor:pointer;
}
.itinerary-day__header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
}
.itinerary-day__toggle{
  flex:none;
  width:28px; height:28px;
  border-radius:50%;
  border:1.5px solid var(--line);
  display:flex; align-items:center; justify-content:center;
  transition:transform 0.3s ease, border-color 0.2s ease, background 0.2s ease;
}
.itinerary-day__toggle svg{
  width:14px; height:14px;
  color:var(--ink-soft);
  transition:transform 0.3s ease;
}
.itinerary-day.open .itinerary-day__toggle{
  border-color:var(--gold-deep);
  background:var(--gold-deep);
}
.itinerary-day.open .itinerary-day__toggle svg{
  color:#fff;
  transform:rotate(180deg);
}
.itinerary-day__full{
  max-height:0;
  overflow:hidden;
  transition:max-height 0.4s cubic-bezier(.16,.84,.44,1), margin-top 0.4s ease;
  margin-top:0;
}
.itinerary-day.open .itinerary-day__full{
  max-height:400px;
  margin-top:14px;
}
.itinerary-day__full-inner{
  font-size:13.5px;
  color:var(--ink-soft);
  line-height:1.75;
  padding-top:10px;
  border-top:1px dashed var(--line);
}
.itinerary-day__full-inner ul{
  margin:10px 0 0;
  padding-left:18px;
}
.itinerary-day__full-inner li{
  margin-bottom:6px;
}
/* Override the old grid layout for the new toggle structure */
.itinerary-day{
  display:block;
}
.itinerary-day__header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
}

/* ---------- Location & map section ---------- */
.location-strip{
  background:var(--paper-dim);
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  padding:clamp(48px,7vw,72px) clamp(20px,5vw,64px);
}
.location-strip__inner{
  max-width:1120px;
  margin:0 auto;
  display:grid;
  grid-template-columns:0.9fr 1.1fr;
  gap:48px;
  align-items:center;
}
.location-strip__details h3{
  font-family:'Fraunces', serif;
  font-weight:600;
  font-size:clamp(1.5rem,3vw,2rem);
  color:var(--ink);
  margin:0 0 16px;
}
.location-strip__row{
  display:flex;
  gap:12px;
  margin-bottom:18px;
  align-items:flex-start;
}
.location-strip__row svg{
  width:20px; height:20px;
  color:var(--gold-deep);
  flex:none;
  margin-top:2px;
}
.location-strip__row p{
  margin:0;
  font-size:14.5px;
  line-height:1.7;
  color:var(--ink-soft);
}
.location-strip__row a{
  color:var(--ink-soft);
  text-decoration:none;
}
.location-strip__row a:hover{
  color:var(--gold-deep);
  text-decoration:underline;
}
.location-strip__map{
  border-radius:14px;
  overflow:hidden;
  box-shadow:0 18px 36px -18px rgba(10,24,48,0.35);
  height:340px;
}
.location-strip__map iframe{
  width:100%;
  height:100%;
  border:0;
  display:block;
}
@media (max-width:820px){
  .location-strip__inner{ grid-template-columns:1fr; gap:32px; }
  .location-strip__map{ height:280px; }
}



/* ---------- Luxe destination hero ---------- */
.luxe-hero{
  position:relative;
  min-height:560px;
  display:flex;
  align-items:flex-end;
  padding-bottom:56px;
  background-size:cover;
  background-position:center;
  overflow:hidden;
}
.luxe-hero::before{
  content:"";
  position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(10,24,48,0.15) 0%, rgba(10,24,48,0.3) 45%, rgba(10,24,48,0.75) 80%, var(--paper) 100%);
}
.luxe-hero__inner{
  position:relative; z-index:1;
  max-width:720px;
  margin:0 auto;
  text-align:center;
  padding:0 20px;
  color:var(--paper);
}
.luxe-hero__eyebrow{
  font-family:'Montserrat', sans-serif;
  font-size:12px;
  letter-spacing:0.28em;
  text-transform:uppercase;
  color:var(--gold);
  margin:0 0 12px;
}
.luxe-hero__title{
  font-family:'Fraunces', serif;
  font-weight:500;
  font-size:clamp(3rem, 7vw, 4.5rem);
  margin:0 0 20px;
  letter-spacing:0.01em;
}
.luxe-hero__desc{
  font-size:17.5px;
  line-height:1.8;
  color:rgba(245,241,230,0.85);
  max-width:560px;
  margin:0 auto 32px;
}
.luxe-hero__cta{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:32px;
  flex-wrap:wrap;
}
.luxe-hero__price{
  text-align:left;
}
.luxe-hero__price-label{
  font-size:10px;
  letter-spacing:0.16em;
  text-transform:uppercase;
  color:rgba(245,241,230,0.6);
  margin:0 0 2px;
}
.luxe-hero__price-value{
  font-family:'Fraunces', serif;
  font-size:2.4rem;
  color:var(--paper);
}
.luxe-hero__price-value span{
  font-size:12px;
  color:rgba(245,241,230,0.6);
  font-family:'Montserrat', sans-serif;
}

@media (max-width:600px){
  .luxe-hero{
    padding-top:76px;
    min-height:520px;
  }
}

/* ---------- Curated inclusions ---------- */
.luxe-inclusions{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:16px;
}
@media (max-width:700px){
  .luxe-inclusions{ grid-template-columns:repeat(2,1fr); }
}
.luxe-inclusion-card{
  background:var(--paper-dim);
  border:1px solid var(--line);
  border-radius:12px;
  padding:24px 16px;
  text-align:center;
  transition:border-color 0.2s ease, transform 0.2s ease;
}
.luxe-inclusion-card:hover{
  border-color:var(--gold-deep);
  transform:translateY(-2px);
}
.luxe-inclusion-card svg{
  width:26px; height:26px;
  color:var(--gold-deep);
  margin-bottom:12px;
}
.luxe-inclusion-card__title{
  font-family:'Montserrat', sans-serif;
  font-weight:700;
  font-size:12px;
  letter-spacing:0.06em;
  text-transform:uppercase;
  color:var(--ink);
  margin:0 0 4px;
}
.luxe-inclusion-card__sub{
  font-size:12px;
  color:var(--ink-soft);
}

/* ---------- Reserve sidebar card ---------- */
.luxe-reserve{
  background:var(--sky-deep);
  border-radius:16px;
  padding:18px 20px;
  color:var(--paper);
}
.luxe-reserve__title{
  font-family:'Fraunces', serif;
  font-weight:600;
  font-size:1.15rem;
  margin:0 0 12px;
}
.luxe-reserve__price-label{
  font-size:10px;
  letter-spacing:0.16em;
  text-transform:uppercase;
  color:rgba(245,241,230,0.5);
  margin:0 0 2px;
}
.luxe-reserve__price-value{
  font-family:'Fraunces', serif;
  font-size:2rem;
  margin:0 0 12px;
  font-weight: 600;
}
.luxe-reserve__price-value span{
  font-size:12px;
  color:rgba(245,241,230,0.6);
  font-family:'Montserrat', sans-serif;
}
.luxe-reserve__row{
  display:flex; align-items:center; gap:10px;
  font-size:13px;
  color:rgba(245,241,230,0.85);
  padding:8px 0;
  border-top:1px solid rgba(245,241,230,0.12);
}
.luxe-reserve__row:first-of-type{ border-top:none; }
.luxe-reserve__row svg{ width:16px; height:16px; color:var(--gold); flex:none; }
.luxe-reserve__actions{ margin-top:14px; display:flex; flex-direction:column; gap:8px; }
/* ---------- Journey timeline ---------- */
.luxe-timeline{ position:relative; padding-left:32px; }
.luxe-timeline::before{
  content:"";
  position:absolute; left:5px; top:6px; bottom:6px;
  width:1px;
  background:var(--line);
}
.luxe-timeline-item{ position:relative; margin-bottom:20px; }
.luxe-timeline-item::before{
  content:"";
  position:absolute; left:-32px; top:6px;
  width:11px; height:11px;
  border-radius:50%;
  background:var(--paper);
  border:2px solid var(--gold-deep);
}
.luxe-timeline-card{
  background:var(--paper-dim);
  border-radius:12px;
  padding:28px 30px;
}
.luxe-timeline-card__day{
  font-family:'Montserrat', sans-serif;
  font-size:14.5px;
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:var(--gold-deep);
  margin:0 0 4px;
}
.luxe-timeline-card__title{
  font-family:'Fraunces', serif;
  font-weight:600;
  font-size:1.5rem;
  color:var(--ink);
  margin:0 0 8px;
}
.luxe-timeline-card__desc{
  font-size:16.5px;
  line-height:1.7;
  color:var(--ink-soft);
  margin:0;
  font-weight: 500;
}

.luxe-timeline-card__list{
  list-style:none;
  margin:16px 0 0;
  padding-top:16px;
  border-top:1px dashed var(--line);
  font-size:16px;
  line-height:1.8;
  color:var(--ink-soft);
}
.luxe-timeline-card__list li{
  margin-bottom:9px;
}

/* Sticky sidebar */
@media (min-width:881px){
  .two-col > div:last-child{
    position:sticky;
    top:clamp(75px,8vw,96px);
    align-self:start;
  }
}

/* Not Included card */
.luxe-excluded{
  background:#7a1f1f;
  border-radius:16px;
  padding:16px 24px;
  color:var(--paper);
  margin-top:14px;
}
.luxe-excluded__title{
  font-family:'Fraunces', serif;
  font-weight:600;
  font-size:1.15rem;
  margin:0 0 14px;
}
.luxe-excluded__row{
  display:flex; align-items:flex-start; gap:10px;
  font-size:13.5px;
  line-height:1.6;
  color:rgba(245,241,230,0.9);
  padding:8px 0;
  border-top:1px solid rgba(245,241,230,0.15);
}
.luxe-excluded__row:first-of-type{ border-top:none; }
.luxe-excluded__row svg{
  width:16px; height:12px;
  color:#ff8a8a;
  flex:none;
  margin-top:2px;
}

/* ---------- Page loader ---------- */
.page-loader{
  position:fixed;
  inset:0;
  z-index:9999;
  background:#ece5d3;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  transition:opacity 0.6s ease, visibility 0.6s ease;
}
.page-loader.hidden{
  opacity:0;
  visibility:hidden;
  pointer-events:none;
}

/* ---------- Sky layer: clouds + flying plane ---------- */
.page-loader__sky{
  position:absolute;
  inset:0;
  overflow:hidden;
  pointer-events:none;
}
.page-loader__cloud{
  position:absolute;
  background:#fff;
  border-radius:50%;
  opacity:0.55;
}
.page-loader__cloud::before,
.page-loader__cloud::after{
  content:"";
  position:absolute;
  background:#fff;
  border-radius:50%;
}
.page-loader__cloud--1{
  width:70px; height:26px;
  top:18%;
  left:-100px;
  animation:cloudDrift 9s linear infinite;
}
.page-loader__cloud--1::before{ width:38px; height:38px; top:-18px; left:8px; }
.page-loader__cloud--1::after{ width:28px; height:28px; top:-12px; left:34px; }

.page-loader__cloud--2{
  width:90px; height:32px;
  top:68%;
  left:-140px;
  animation:cloudDrift 13s linear infinite;
  animation-delay:-4s;
  opacity:0.4;
}
.page-loader__cloud--2::before{ width:46px; height:46px; top:-22px; left:10px; }
.page-loader__cloud--2::after{ width:34px; height:34px; top:-14px; left:44px; }

.page-loader__cloud--3{
  width:55px; height:20px;
  top:32%;
  left:-80px;
  animation:cloudDrift 7s linear infinite;
  animation-delay:-2s;
  opacity:0.35;
}
.page-loader__cloud--3::before{ width:28px; height:28px; top:-13px; left:6px; }
.page-loader__cloud--3::after{ width:20px; height:20px; top:-9px; left:24px; }

@keyframes cloudDrift{
  from{ transform:translateX(0); }
  to{ transform:translateX(calc(100vw + 200px)); }
}






/* ---------- Logo / text / progress bar ---------- */
.page-loader__inner{
  position:relative;
  z-index:1;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:2px;
}
.page-loader__logo{
  width:56px;
  height:56px;
  animation:loaderPulse 1.4s ease-in-out infinite;
}
.page-loader__text{
  font-family:'Baloo 2', sans-serif;
  font-weight:600;
  font-size:22px;
  color:#25258F;
  margin:0;
  letter-spacing:-0.01em;
}
.page-loader__text .accent{
  color:#25258F;
}
.page-loader__bar{
  width:160px;
  height:3px;
  background:#fff;
  border-radius:99px;
  overflow:hidden;
  margin-top:4px;
}
.page-loader__bar-fill{
  height:100%;
  width:0%;
  background:var(--gold);
  border-radius:99px;
  animation:loaderFill 3s ease forwards;
}

@keyframes loaderPulse{
  0%, 100%{ transform:scale(1); opacity:1; }
  50%{ transform:scale(1.08); opacity:0.75; }
}
@keyframes loaderFill{
  0%{ width:0%; }
  100%{ width:100%; }
}

@media (prefers-reduced-motion: reduce){
  .page-loader__logo{ animation:none; }
  .page-loader__bar-fill{ animation:none; width:100%; }
  .page-loader__plane, .page-loader__cloud, .page-loader__plane-trail::before{ animation:none; }
}

/* ---------- Sticky navbar that turns white on scroll — homepage only ---------- */
.navbar-home-sticky{
  position:fixed !important;
  top:0; left:0; right:0;
  z-index:100;
  transition:background 0.3s ease, box-shadow 0.3s ease;
}
.navbar-home-sticky.scrolled{
  background:rgb(246 241 230) !important;
  box-shadow:0 2px 12px rgba(10,24,48,0.08);
}
.navbar-home-sticky.scrolled .nav-links a{
  color:var(--ink);
}
.navbar-home-sticky.scrolled .nav-links a:hover,
.navbar-home-sticky.scrolled .nav-links a.active{
  color:var(--gold-deep);
}
.navbar-home-sticky.scrolled .nav-toggle{
  color:var(--ink);
}

/* ---------- Navbar "Call Us" button ---------- */
.nav-call{
  display:flex;
  align-items:center;
  gap:7px;
  background:var(--gold);
  color:var(--sky-deep);
  font-family:'Montserrat', sans-serif;
  font-size:12.5px;
  font-weight:700;
  letter-spacing:0.05em;
  text-transform:uppercase;
  text-decoration:none;
  padding:9px 16px;
  border-radius:999px;
  flex:none;
  margin-left:12px;
  transition:transform 0.2s ease, background 0.2s ease;
}
.nav-call:hover{
  background:var(--gold-deep);
  transform:translateY(-1px);
}
.nav-call svg{
  width:16px;
  height:16px;
  flex:none;
}

.navbar-home-sticky.scrolled .nav-call{
  background:var(--gold);
  color:var(--sky-deep);
}

/* Hide text on very small screens, keep just the icon */
@media (max-width:420px){
  .nav-call span{ display:none; }
  .nav-call{
    padding:9px;
    border-radius:50%;
    width:38px;
    height:38px;
    justify-content:center;
  }
}

/* ---------- Call number popup (desktop) ---------- */
.call-popup{
  position:absolute;
  top:calc(100% + 10px);
  right:0;
  background:var(--sky-deep);
  color:var(--paper);
  padding:14px 18px;
  border-radius:10px;
  font-family:'Montserrat', sans-serif;
  font-size:14px;
  font-weight:600;
  white-space:nowrap;
  box-shadow:0 12px 28px -8px rgba(10,24,48,0.4);
  opacity:0;
  visibility:hidden;
  transform:translateY(-6px);
  transition:opacity 0.2s ease, transform 0.2s ease, visibility 0.2s ease;
  z-index:200;
}
.call-popup.show{
  opacity:1;
  visibility:visible;
  transform:translateY(0);
}
.call-popup a{
  color:var(--gold);
  text-decoration:none;
}
.call-popup a:hover{
  text-decoration:underline;
}
.call-popup::before{
  content:"";
  position:absolute;
  top:-6px;
  right:16px;
  width:12px; height:12px;
  background:var(--sky-deep);
  transform:rotate(45deg);
}
.nav-call{
  position:relative;
}

.thankyou-state{
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
  padding:20px 0;
}
.thankyou-state__icon{
  width:64px;
  height:64px;
  border-radius:50%;
  background:var(--gold);
  color:var(--sky-deep);
  display:flex;
  align-items:center;
  justify-content:center;
  margin:0 auto 20px;
  flex-shrink:0;
  animation:thankyouPop 0.5s cubic-bezier(.34,1.56,.64,1);
}
.thankyou-state__icon svg{
  width:30px;
  height:30px;
  display:block;
}
.thankyou-state h2.contact-split__title{
  margin:0 0 10px;
  max-width:none;
  text-align:center;
}
.thankyou-state__text{
  font-size:15px;
  line-height:1.7;
  color:var(--ink-soft);
  max-width:340px;
  margin:0 auto;
  text-align:center;
}

@keyframes thankyouPop{
  0%{ transform:scale(0); opacity:0; }
  60%{ transform:scale(1.15); opacity:1; }
  100%{ transform:scale(1); }
}

@media (prefers-reduced-motion: reduce){
  .thankyou-state__icon{ animation:none; }
}





/* "Book your trip now" animation */

.hero-cta-wrap{
  position:relative;
  z-index:20;
  display:flex;
  justify-content:center;
  margin-top:0;
  margin-bottom:0;
  padding:0 20px;
}
.hero-cta-pill{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  background:linear-gradient(135deg, #fff 0%, #faf7ef 100%);
  color:var(--ink);
  font-family:'Montserrat', sans-serif;
  font-weight:700;
  font-size:16px;
  letter-spacing:0.01em;
  text-decoration:none;
  padding:20px 48px;
  border-radius:999px;
  box-shadow:
    0 0 0 2px var(--gold),
    0 20px 40px -12px rgba(10,24,48,0.45),
    0 0 0 6px rgba(242,184,75,0.12);
  transition:transform 0.25s cubic-bezier(.34,1.56,.64,1), box-shadow 0.3s ease, background 0.3s ease;
  position:relative;
  top:-67px;
  animation:pillPulse 2.8s ease-in-out infinite;
}
.hero-cta-pill:hover{
  background:linear-gradient(135deg, var(--gold) 0%, var(--gold-deep) 100%);
  color:#fff;
  transform:translateY(-3px) scale(1.02);
  box-shadow:
    0 0 0 2px var(--gold-deep),
    0 26px 50px -10px rgba(10,24,48,0.55),
    0 0 0 8px rgba(242,184,75,0.18);
  animation:none;
}
.hero-cta-pill__arrow{
  display:flex;
  align-items:center;
  justify-content:center;
  width:26px;
  height:26px;
  border-radius:50%;
  background:var(--sky-deep);
  color:var(--paper);
  flex:none;
  transition:transform 0.25s ease, background 0.25s ease;
}
.hero-cta-pill:hover .hero-cta-pill__arrow{
  background:var(--sky-deep);
  transform:translateX(3px);
}
.hero-cta-pill__arrow svg{
  width:13px;
  height:13px;
}

@keyframes pillPulse{
  0%, 100%{
    box-shadow:
      0 0 0 2px var(--gold),
      0 20px 40px -12px rgba(10,24,48,0.45),
      0 0 0 6px rgba(242,184,75,0.12);
  }
  50%{
    box-shadow:
      0 0 0 2px var(--gold),
      0 20px 40px -12px rgba(10,24,48,0.45),
      0 0 0 10px rgba(242,184,75,0.04);
  }
}

@media (prefers-reduced-motion: reduce){
  .hero-cta-pill{ animation:none; }
}

@media (max-width:600px){
  .hero-cta-pill{
    padding:18px 40px;
    font-size:16px;
    font-weight:600;
    animation:none;
  }
}

.hero-cta-pill__text{
  white-space:nowrap;
}
.hero-cta-pill__text::after{
  content:"";
  display:inline-block;
  width:2px;
  height:1em;
  background:currentColor;
  margin-left:2px;
  vertical-align:-2px;
  animation:cursorBlink 0.8s step-end infinite;
}
.hero-cta-pill__text.done::after{
  animation:cursorBlink 0.8s step-end infinite;
}

@keyframes cursorBlink{
  0%, 50%{ opacity:1; }
  51%, 100%{ opacity:0; }
}

@media (prefers-reduced-motion: reduce){
  .hero-cta-pill__text::after{ display:none; }
}

/* ---------- Testimonial carousel ---------- */
.testimonial-carousel-wrap{
  position:relative;
  overflow:hidden;
  margin-top:48px;
}
.testimonial-carousel-track{
  display:flex;
  transition:transform 0.75s cubic-bezier(.22,1,.36,1);
  will-change:transform;
}
.testimonial-page{
  flex:0 0 100%;
  padding:2px;
}

.testimonial-dots{
  display:flex;
  justify-content:center;
  gap:8px;
  margin-top:28px;
}
.testimonial-dot{
  width:7px; height:7px;
  border-radius:50%;
  background:var(--line);
  cursor:pointer;
  transition:background 0.35s ease, transform 0.35s cubic-bezier(.34,1.56,.64,1), width 0.35s ease;
}
.testimonial-dot.active{
  background:var(--gold-deep);
  width:20px;
  border-radius:4px;
}