@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,400;9..144,500;9..144,600;9..144,700&family=IBM+Plex+Sans:wght@400;500;600;700&family=IBM+Plex+Mono:wght@500;600&display=swap');

:root{
  --ink:#101d33;
  --ink-soft:#3c4a63;
  --paper:#faf9f5;
  --paper-alt:#f1efe6;
  --panel:#ffffff;
  --gold:#b9862f;
  --gold-deep:#8f6420;
  --stamp-red:#a3372b;
  --teal:#1f5c57;
  --line:#dcd6c4;
  --line-strong:#c6bfa8;
  --radius:2px;
  --shadow:0 1px 0 rgba(16,29,51,.05), 0 8px 24px -12px rgba(16,29,51,.18);
  --maxw:1140px;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:'IBM Plex Sans',system-ui,-apple-system,sans-serif;
  font-size:16px;
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4{
  font-family:'Fraunces',Georgia,serif;
  font-weight:600;
  line-height:1.08;
  margin:0 0 .5em;
  letter-spacing:-.01em;
  color:var(--ink);
}
p{margin:0 0 1em;}
a{color:inherit;}
img{max-width:100%;display:block;}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px;}
.mono{font-family:'IBM Plex Mono',monospace;}
.eyebrow{
  font-family:'IBM Plex Mono',monospace;
  font-size:12.5px;
  font-weight:600;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--teal);
  display:flex;align-items:center;gap:10px;
  margin-bottom:14px;
}
.eyebrow::before{content:"";width:22px;height:1px;background:var(--gold);display:inline-block;}

/* ---------- perforated section divider (ticket-stub motif) ---------- */
.perf{
  height:1px;
  background-image:radial-gradient(circle,var(--line-strong) 1.4px, transparent 1.6px);
  background-size:14px 1px;
  background-repeat:repeat-x;
  background-position:center;
  position:relative;
  margin:0;
}
.perf::before,.perf::after{
  content:"";position:absolute;top:50%;transform:translateY(-50%);
  width:16px;height:16px;border-radius:50%;background:var(--paper);
}
.perf::before{left:-8px;}
.perf::after{right:-8px;}

/* ---------- top bar ---------- */
.topbar{
  background:var(--ink);
  color:#e9e4d6;
  font-family:'IBM Plex Mono',monospace;
  font-size:12px;
  letter-spacing:.04em;
}
.topbar .wrap{display:flex;justify-content:space-between;align-items:center;padding:8px 24px;flex-wrap:wrap;gap:6px;}
.topbar a{text-decoration:none;color:#e9e4d6;}
.topbar a:hover{color:var(--gold);}

/* ---------- header ---------- */
header.site{
  background:var(--paper);
  border-bottom:1px solid var(--line);
  position:sticky;top:0;z-index:40;
}
header.site .wrap{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;}
.logo{
  font-family:'Fraunces',serif;
  font-weight:700;
  font-size:22px;
  letter-spacing:-.01em;
  text-decoration:none;
  display:flex;align-items:baseline;gap:2px;
}
.logo span{color:var(--gold-deep);}
.header-cta{display:flex;gap:10px;align-items:center;}

.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  font-family:'IBM Plex Sans',sans-serif;font-weight:600;font-size:14.5px;
  padding:12px 22px;border-radius:var(--radius);text-decoration:none;
  border:1px solid transparent;cursor:pointer;transition:transform .15s ease, box-shadow .15s ease, background .15s ease;
  line-height:1;
}
.btn-primary{background:var(--ink);color:var(--paper);}
.btn-primary:hover{background:var(--gold-deep);transform:translateY(-1px);}
.btn-outline{background:transparent;color:var(--ink);border-color:var(--ink);}
.btn-outline:hover{background:var(--ink);color:var(--paper);}
.btn-gold{background:var(--gold);color:var(--ink);}
.btn-gold:hover{background:var(--gold-deep);color:var(--paper);}
.btn-whatsapp{background:#25D366;color:#fff;border-color:#25D366;}
.btn-whatsapp:hover{background:#1DA851;border-color:#1DA851;}
.btn-sm{padding:9px 16px;font-size:13px;}
.btn-block{width:100%;}

/* ---------- hero (trimmed to eyebrow + headline only) ---------- */
.hero{padding:44px 0 8px;position:relative;overflow:hidden;}
.hero-minimal{max-width:760px;}
.hero h1{font-size:clamp(34px,4.4vw,52px);}

/* ---------- intro strip: lede, fit line, quick facts, illustration — now sits AFTER the form ---------- */
.intro-strip{padding:8px 0 48px;}
.intro-strip-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:56px;align-items:center;}
.intro-strip .lede{font-size:18px;color:var(--ink-soft);max-width:52ch;}
.hero-actions{display:flex;gap:12px;margin-top:22px;flex-wrap:wrap;}
.hero-fit{
  display:flex;gap:10px;align-items:flex-start;margin-top:18px;padding:12px 14px;
  background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);
  font-size:14.5px;color:var(--ink-soft);max-width:52ch;
}
.hero-fit .fit-check{
  flex:0 0 auto;width:20px;height:20px;border-radius:50%;background:var(--teal);color:#fff;
  display:flex;align-items:center;justify-content:center;font-size:11px;margin-top:1px;
}
.hero-fit strong{color:var(--ink);}
.quick-facts{
  display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin-top:26px;
  border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:var(--panel);
}
.qf-item{padding:16px 14px;border-right:1px solid var(--line);}
.qf-item:last-child{border-right:none;}
.qf-item strong{display:block;font-family:'Fraunces',serif;font-size:22px;color:var(--ink);font-weight:600;line-height:1.1;}
.qf-item span{display:block;font-family:'IBM Plex Mono',monospace;font-size:11px;color:var(--ink-soft);margin-top:4px;line-height:1.3;}

/* ---------- hero illustration + stamp badge ---------- */
.stamp-wrap{display:flex;align-items:center;justify-content:center;position:relative;}
.hero-art{
  width:100%;max-width:440px;position:relative;
  animation:artIn .8s cubic-bezier(.2,.9,.3,1.1) both;
}
.hero-art svg{width:100%;height:auto;display:block;}
.hero-photo{
  width:100%;max-width:420px;aspect-ratio:4/5;border-radius:6px;overflow:hidden;
  box-shadow:var(--shadow);border:1px solid var(--line);
  animation:artIn .8s cubic-bezier(.2,.9,.3,1.1) both;
}
.hero-photo img{width:100%;height:100%;object-fit:cover;display:block;}
.stamp{
  width:96px;height:96px;position:absolute;right:-6px;bottom:-6px;
  transform:rotate(-9deg);
  filter:drop-shadow(0 6px 14px rgba(163,55,43,.18));
}
.stamp svg{width:100%;height:100%;}
@media (prefers-reduced-motion:no-preference){
  .stamp{animation:stampIn .5s .5s cubic-bezier(.2,.9,.3,1.2) both;}
}
@keyframes stampIn{from{opacity:0;transform:rotate(-9deg) scale(.6);}to{opacity:1;transform:rotate(-9deg) scale(1);}}
@keyframes artIn{from{opacity:0;transform:translateY(14px);}to{opacity:1;transform:translateY(0);}}

/* ---------- generic section ---------- */
section{padding:64px 0;}
.section-head{max-width:640px;margin-bottom:40px;}
.section-head h2{font-size:clamp(26px,3vw,36px);}
.section-alt{background:var(--paper-alt);}

/* ---------- eligibility ---------- */
.check-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px 28px;}
.check-item{display:flex;gap:12px;align-items:flex-start;padding:14px 0;border-bottom:1px solid var(--line);}
.check-mark{
  flex:0 0 auto;width:22px;height:22px;border-radius:50%;background:var(--teal);color:#fff;
  display:flex;align-items:center;justify-content:center;font-size:12px;margin-top:2px;
}

/* ---------- documents checklist ---------- */
.doc-list{border-top:1px solid var(--line);}
.doc-item{
  display:flex;gap:14px;align-items:center;padding:15px 4px;border-bottom:1px solid var(--line);
  font-family:'IBM Plex Sans',sans-serif;
}
.doc-item .box{
  flex:0 0 auto;width:18px;height:18px;border:1.6px solid var(--ink);border-radius:3px;
}
.doc-item .idx{font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--gold-deep);width:26px;flex:0 0 auto;}

/* ---------- timeline (boarding-pass strip) ---------- */
.timeline{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:0;position:relative;}
.timeline::before{
  content:"";position:absolute;top:17px;left:0;right:0;height:1px;
  background-image:linear-gradient(to right, var(--line-strong) 60%, transparent 0%);
  background-size:10px 1px;background-repeat:repeat-x;
}
.t-step{position:relative;padding:0 16px 0 0;}
.t-dot{
  width:34px;height:34px;border-radius:50%;background:var(--ink);color:var(--paper);
  display:flex;align-items:center;justify-content:center;font-family:'IBM Plex Mono',monospace;font-size:13px;
  position:relative;z-index:1;margin-bottom:16px;
}
.t-step h4{font-size:16px;margin-bottom:4px;}
.t-dur{font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--gold-deep);text-transform:uppercase;letter-spacing:.06em;}

/* ---------- why choose ---------- */
.why-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);}
.why-card{background:var(--panel);padding:28px 24px;}
.why-card .num{font-family:'IBM Plex Mono',monospace;color:var(--gold-deep);font-size:12px;margin-bottom:14px;display:block;}
.why-card h3{font-size:19px;}
.why-card p{color:var(--ink-soft);font-size:14.5px;margin:0;}

/* ---------- destination directory (hub page only) ---------- */
.dest-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}
.dest-card{
  display:flex;align-items:center;gap:14px;padding:16px 18px;
  background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
  text-decoration:none;color:var(--ink);transition:transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}
.dest-card:hover{transform:translateY(-2px);box-shadow:var(--shadow);border-color:var(--gold);}
.dest-badge{
  flex:0 0 auto;width:34px;height:34px;border-radius:50%;
  border:1.5px solid var(--stamp-red);color:var(--stamp-red);
  font-family:'IBM Plex Mono',monospace;font-weight:700;font-size:12.5px;
  display:flex;align-items:center;justify-content:center;
}
.dest-name{font-weight:600;font-size:15px;flex:1;}
.dest-arrow{color:var(--gold-deep);font-size:18px;flex:0 0 auto;}

/* ---------- testimonials ---------- */
.testi-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.testi-card{
  background:var(--panel);border:1px solid var(--line);padding:26px 24px;border-radius:var(--radius);
  box-shadow:var(--shadow);position:relative;
}
.testi-card .quote-mark{font-family:'Fraunces',serif;font-size:44px;color:var(--gold);line-height:.5;display:block;margin-bottom:10px;}
.testi-card p.q{font-size:15px;color:var(--ink-soft);margin-bottom:16px;}
.testi-name{font-weight:600;font-size:14px;}
.testi-loc{font-family:'IBM Plex Mono',monospace;font-size:11.5px;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.05em;}

/* ---------- faq ---------- */
.faq-item{border-bottom:1px solid var(--line);}
.faq-q{
  display:flex;justify-content:space-between;align-items:center;gap:16px;
  padding:20px 2px;cursor:pointer;font-weight:600;font-size:16px;background:none;border:0;width:100%;text-align:left;font-family:'IBM Plex Sans',sans-serif;color:var(--ink);
}
.faq-q .plus{font-family:'IBM Plex Mono',monospace;font-size:18px;color:var(--gold-deep);transition:transform .2s ease;flex:0 0 auto;}
.faq-item.open .plus{transform:rotate(45deg);}
.faq-a{max-height:0;overflow:hidden;transition:max-height .25s ease;}
.faq-a p{padding:0 2px 20px;color:var(--ink-soft);font-size:15px;max-width:70ch;}

/* ---------- contact ---------- */
.contact-panel{
  background:var(--ink);color:var(--paper);border-radius:var(--radius);
  padding:36px;display:grid;grid-template-columns:1fr 1.1fr;gap:36px;
}
.contact-panel h2{color:var(--paper);font-size:clamp(22px,2.6vw,30px);}
.contact-panel .lede{color:#c7cad6;margin-bottom:0;}
.contact-info-row{display:flex;gap:12px;align-items:center;margin-top:14px;font-size:14px;color:#dfe1e8;}
.field{margin-bottom:12px;}
.field label{display:block;font-family:'IBM Plex Mono',monospace;font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;color:#b7bdd0;margin-bottom:4px;}
.field input,.field select,.field textarea{
  width:100%;padding:9px 12px;border:1px solid var(--line-strong);border-radius:var(--radius);
  font-family:'IBM Plex Sans',sans-serif;font-size:14px;background:#fff;color:var(--ink);
}
.field textarea{min-height:50px;}
.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid var(--gold);outline-offset:1px;}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.form-note{font-size:11.5px;color:#aeb3c2;margin-top:8px;line-height:1.4;}
.form-status{font-size:13px;margin-top:8px;font-family:'IBM Plex Mono',monospace;}
.form-status.ok{color:#7fd4a8;}
.form-status.err{color:#f0a598;}

/* ---------- floating action buttons ---------- */
.fab-stack{position:fixed;right:20px;bottom:20px;display:flex;flex-direction:column;gap:12px;z-index:50;}
.fab{
  width:56px;height:56px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  color:#fff;text-decoration:none;box-shadow:0 10px 24px -8px rgba(16,29,51,.4);transition:transform .15s ease;
}
.fab:hover{transform:translateY(-2px) scale(1.04);}
.fab-wa{background:#25D366;}
.fab-call{background:var(--ink);}
.fab svg{width:26px;height:26px;}

/* ---------- mobile sticky action bar ---------- */
.mobile-cta-bar{
  display:none;position:fixed;left:0;right:0;bottom:0;z-index:90;
  background:var(--ink);border-top:1px solid #263049;
}
.mcb-item{
  flex:1;display:flex;align-items:center;justify-content:center;gap:6px;
  padding:13px 6px;color:#fff;text-decoration:none;font-family:'IBM Plex Sans',sans-serif;
  font-weight:600;font-size:13px;border-right:1px solid #263049;
}
.mcb-item svg{width:18px;height:18px;flex:0 0 auto;}
.mcb-primary{background:var(--gold);color:var(--ink);border-right:none;}

/* ---------- footer ---------- */
footer.site{background:var(--ink);color:#c7cad6;padding:48px 0 24px;margin-top:40px;}
footer.site .wrap{display:flex;justify-content:space-between;flex-wrap:wrap;gap:24px;}
footer.site a{color:#dfe1e8;text-decoration:none;}
footer.site a:hover{color:var(--gold);}
.foot-bottom{border-top:1px solid #263049;margin-top:32px;padding-top:18px;font-size:12.5px;color:#8a90a5;font-family:'IBM Plex Mono',monospace;}

/* ---------- thank-you overlay ---------- */
.thankyou-overlay{
  display:none;position:fixed;inset:0;z-index:200;
  background:rgba(16,29,51,.94);align-items:center;justify-content:center;
  animation:overlayFade .25s ease both;
}
.thankyou-overlay.show{display:flex;}
@keyframes overlayFade{from{opacity:0;}to{opacity:1;}}
.thankyou-card{
  background:var(--paper);border-radius:6px;padding:40px 36px;text-align:center;
  max-width:340px;margin:0 20px;box-shadow:0 20px 60px -20px rgba(0,0,0,.5);
  animation:cardPop .35s cubic-bezier(.2,.9,.3,1.2) both;
}
@keyframes cardPop{from{opacity:0;transform:scale(.9);}to{opacity:1;transform:scale(1);}}
.thankyou-check{
  width:56px;height:56px;border-radius:50%;background:var(--teal);color:#fff;
  display:flex;align-items:center;justify-content:center;font-size:26px;margin:0 auto 16px;
}
.thankyou-card h3{margin-bottom:6px;font-size:24px;}
.thankyou-card p{margin:0;color:var(--ink-soft);font-size:15px;}

/* ---------- reveal on scroll ---------- */
.reveal{opacity:0;transform:translateY(16px);transition:opacity .5s ease, transform .5s ease;}
.reveal.in{opacity:1;transform:none;}
@media (prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;transition:none;}
  .stamp{animation:none;}
  .hero-art{animation:none;}
}

/* ---------- responsive ---------- */
@media (max-width:900px){
  .hero{padding:36px 0 40px;}
  .intro-strip-grid{grid-template-columns:1fr;gap:28px;}
  .hero-art{max-width:240px;margin:0 auto;}
  .hero-photo{max-width:240px;margin:0 auto;}
  .stamp{width:56px;height:56px;right:6px;bottom:6px;}
  .quick-facts{grid-template-columns:repeat(2,1fr);}
  .qf-item:nth-child(2){border-right:none;}
  .qf-item{border-bottom:1px solid var(--line);}
  .qf-item:nth-last-child(-n+2){border-bottom:none;}
  section{padding:44px 0;}
  .check-grid{grid-template-columns:1fr;}
  .why-grid{grid-template-columns:1fr;}
  .dest-grid{grid-template-columns:1fr;}
  .testi-grid{grid-template-columns:1fr;}
  .timeline{grid-auto-flow:row;gap:22px;}
  .timeline::before{display:none;}
  .contact-panel{grid-template-columns:1fr;padding:24px;}
  .field-row{grid-template-columns:1fr;}
  .topbar .wrap{justify-content:center;text-align:center;}
  .topbar{font-size:11px;}
}

@media (max-width:640px){
  body{padding-bottom:58px;}
  .mobile-cta-bar{display:flex;}
  .fab-stack{display:none;}
  .hero h1{font-size:clamp(28px,7vw,38px);}
  .intro-strip .lede{font-size:16px;}
  .hero-fit{font-size:13.5px;}
  .hero-actions .btn{flex:1 1 auto;text-align:center;}
  .header-cta{display:none;}
  header.site .wrap{justify-content:flex-start;}

  /* keep the enquiry form compact enough to see in one glance on a phone —
     phone/WhatsApp are already one tap away via the sticky bar, so drop the
     repeated contact rows and shrink the intro copy here specifically. */
  #contact{padding:32px 0;}
  .contact-panel{padding:18px;gap:18px;border-radius:4px;}
  .contact-panel .eyebrow{margin-bottom:8px;}
  .contact-panel h2{font-size:20px;margin-bottom:6px;}
  .contact-panel .lede{font-size:13.5px;}
  .contact-info-row{display:none;}
  .field{margin-bottom:9px;}
  .field label{font-size:10px;}
  .field input,.field select,.field textarea{padding:8px 10px;font-size:13.5px;}
  .field textarea{min-height:42px;}
  .form-note{font-size:10.5px;}
}

