/* ============================================================
   Panda Journeys — panda-journeys.com
   Shared stylesheet · 2026 rebuild
   ============================================================ */

:root{
  --ink:#16241d;
  --green:#1d5c45;
  --green-dark:#143f30;
  --gold:#c8a24b;
  --gold-light:#e3c98a;
  --cream:#faf7f0;
  --paper:#ffffff;
  --text:#33403a;
  --muted:#6b7872;
  --line:#e6e1d5;
  --wa:#25d366;
  --radius:14px;
  --shadow:0 6px 30px rgba(22,36,29,.08);
  --shadow-lg:0 14px 50px rgba(22,36,29,.16);
  --max:1180px;
}

*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
  color:var(--text);background:var(--cream);
  line-height:1.65;font-size:16.5px;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block}
a{color:var(--green);text-decoration:none}
a:hover{text-decoration:none}

h1,h2,h3,.serif{font-family:'Playfair Display',Georgia,'Times New Roman',serif;color:var(--ink);line-height:1.2;font-weight:700}
h1{font-size:clamp(2.1rem,4.6vw,3.4rem)}
h2{font-size:clamp(1.7rem,3.2vw,2.4rem)}
h3{font-size:1.25rem}

.wrap{max-width:var(--max);margin:0 auto;padding:0 22px}
.section{padding:78px 0}
.section.tight{padding:52px 0}
.section.alt{background:var(--paper)}
.center{text-align:center}

.kicker{
  display:inline-block;letter-spacing:.16em;text-transform:uppercase;
  font-size:.75rem;font-weight:700;color:var(--gold);margin-bottom:14px;
}
.lede{font-size:1.12rem;color:var(--muted);max-width:680px;margin:14px auto 0}
.left .lede{margin-left:0}

/* ---------- Header ---------- */
.site-header{
  position:sticky;top:0;z-index:200;
  background:rgba(250,247,240,.92);backdrop-filter:blur(12px);
  border-bottom:1px solid var(--line);
}
.nav{display:flex;align-items:center;justify-content:space-between;height:72px;max-width:var(--max);margin:0 auto;padding:0 22px}
.brand{display:flex;align-items:center;gap:11px;font-family:'Playfair Display',serif;font-weight:700;font-size:1.28rem;color:var(--ink)}
.brand img{width:42px;height:42px;border-radius:10px;object-fit:cover;background:var(--green)}
.brand .logo-fallback{width:42px;height:42px;border-radius:10px;background:var(--green);color:#fff;display:flex;align-items:center;justify-content:center;font-size:1.3rem}
.nav-links{display:flex;align-items:center;gap:30px;list-style:none}
.nav-links a{color:var(--ink);font-weight:600;font-size:.95rem}
.nav-links a:hover{color:var(--green)}
.nav-links a.active{color:var(--green);border-bottom:2px solid var(--gold)}
.nav-cta{
  background:var(--green);color:#fff!important;padding:11px 20px;border-radius:999px;
  font-weight:700;box-shadow:var(--shadow);white-space:nowrap;
}
.nav-cta:hover{background:var(--green-dark)}
.nav-toggle{display:none;background:none;border:none;font-size:1.7rem;color:var(--ink);cursor:pointer}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;align-items:center;gap:9px;justify-content:center;
  padding:15px 28px;border-radius:999px;font-weight:700;font-size:1rem;
  border:none;cursor:pointer;transition:all .18s ease;text-align:center;
}
.btn-wa{background:var(--wa);color:#fff}
.btn-wa:hover{background:#1fb858;transform:translateY(-1px);box-shadow:var(--shadow-lg)}
.btn-primary{background:var(--green);color:#fff}
.btn-primary:hover{background:var(--green-dark);transform:translateY(-1px)}
.btn-ghost{background:transparent;color:var(--ink);border:2px solid var(--ink)}
.btn-ghost:hover{background:var(--ink);color:#fff}
.btn-light{background:#fff;color:var(--ink)}
.btn-note{font-size:.84rem;color:var(--muted);margin-top:10px}

/* ---------- Hero ---------- */
.hero{
  position:relative;color:#fff;overflow:hidden;
  background:linear-gradient(155deg,var(--green-dark),var(--ink) 70%);
}
.hero-bg{position:absolute;inset:0;background-size:cover;background-position:center;opacity:.42}
.hero-grad{position:absolute;inset:0;background:linear-gradient(to top,rgba(16,28,22,.92) 0%,rgba(16,28,22,.35) 60%,rgba(16,28,22,.55) 100%)}
.hero-inner{position:relative;z-index:2;max-width:var(--max);margin:0 auto;padding:108px 22px 88px}
.hero h1{color:#fff;max-width:760px}
.hero h1 em{font-style:italic;color:var(--gold-light)}
.hero p{font-size:1.18rem;max-width:620px;margin:20px 0 32px;color:rgba(255,255,255,.88)}
.hero-ctas{display:flex;flex-wrap:wrap;gap:14px;align-items:center}
.hero-trust{display:flex;flex-wrap:wrap;gap:10px;margin-top:34px}
.chip{
  background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.22);
  padding:8px 16px;border-radius:999px;font-size:.86rem;font-weight:600;backdrop-filter:blur(4px);
}
.page-hero{background:linear-gradient(150deg,var(--green-dark),var(--ink));color:#fff;padding:74px 0 58px}
.page-hero h1{color:#fff}
.page-hero p{color:rgba(255,255,255,.85);max-width:660px;margin-top:14px;font-size:1.1rem}
.crumbs{font-size:.85rem;color:rgba(255,255,255,.65);margin-bottom:18px}
.crumbs a{color:rgba(255,255,255,.85)}

/* ---------- Stats bar ---------- */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:-44px;position:relative;z-index:5}
.stat{
  background:var(--paper);border-radius:var(--radius);padding:24px 18px;text-align:center;
  box-shadow:var(--shadow);border:1px solid var(--line);
}
.stat b{display:block;font-family:'Playfair Display',serif;font-size:1.85rem;color:var(--green)}
.stat span{font-size:.85rem;color:var(--muted);font-weight:600}

/* ---------- Cards ---------- */
.grid{display:grid;gap:26px}
.grid.cols-2{grid-template-columns:repeat(2,1fr)}
.grid.cols-3{grid-template-columns:repeat(3,1fr)}
.grid.cols-4{grid-template-columns:repeat(4,1fr)}

.card{
  background:var(--paper);border-radius:var(--radius);overflow:hidden;
  box-shadow:var(--shadow);border:1px solid var(--line);
  display:flex;flex-direction:column;transition:transform .2s ease,box-shadow .2s ease;
}
.card:hover{transform:translateY(-5px);box-shadow:var(--shadow-lg)}
.card-img{height:260px;background:linear-gradient(135deg,#2a6b51,#16241d);background-size:cover;background-position:center;position:relative}
.card-tag{
  position:absolute;top:14px;left:14px;background:rgba(255,255,255,.94);
  padding:6px 13px;border-radius:999px;font-size:.78rem;font-weight:700;color:var(--ink);
}
.card-body{padding:24px;display:flex;flex-direction:column;flex:1}
.card-body h3{margin-bottom:10px}
.card-body h3 a{color:var(--ink)}
.card-body h3 a:hover{color:var(--green)}
.card-body p{font-size:.95rem;color:var(--muted);flex:1}
.card-meta{display:flex;flex-wrap:wrap;gap:7px;margin:14px 0}
.pill{background:var(--cream);border:1px solid var(--line);padding:5px 12px;border-radius:999px;font-size:.78rem;font-weight:600;color:var(--text)}
.card-foot{display:flex;justify-content:space-between;align-items:center;margin-top:6px;padding-top:16px;border-top:1px solid var(--line)}
.price{font-weight:800;color:var(--green);font-size:1.02rem}
.price small{display:block;font-weight:500;color:var(--muted);font-size:.74rem}
.card-link{font-weight:700;font-size:.93rem}

.icon-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:30px 26px;box-shadow:var(--shadow)}
.icon-card .ico{font-size:2rem;margin-bottom:14px;display:block}
.icon-card h3{font-size:1.12rem;margin-bottom:8px}
.icon-card p{font-size:.93rem;color:var(--muted)}

/* ---------- Steps ---------- */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;counter-reset:step}
.step{position:relative;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:30px 24px;box-shadow:var(--shadow)}
.step b.num{
  display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;
  background:var(--green);color:#fff;font-family:'Playfair Display',serif;font-size:1.25rem;margin-bottom:16px;
}
.step h3{font-size:1.08rem;margin-bottom:8px}
.step p{font-size:.92rem;color:var(--muted)}

/* ---------- Pricing ---------- */
.tier{position:relative;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:34px 28px;box-shadow:var(--shadow);display:flex;flex-direction:column}
.tier.featured{border:2px solid var(--gold);box-shadow:var(--shadow-lg)}
.tier .flag{position:absolute;top:-14px;left:50%;transform:translateX(-50%);background:var(--gold);color:#fff;font-size:.76rem;font-weight:800;padding:6px 16px;border-radius:999px;letter-spacing:.06em;white-space:nowrap}
.tier h3{font-size:1.3rem}
.tier .amount{font-family:'Playfair Display',serif;font-size:2.1rem;color:var(--green);margin:10px 0 2px}
.tier .amount small{font-size:.95rem;color:var(--muted);font-family:'Inter',sans-serif;font-weight:500}
.tier ul{list-style:none;margin:20px 0;flex:1}
.tier li{padding:8px 0;font-size:.94rem;border-bottom:1px dashed var(--line)}
.tier li::before{content:"✓ ";color:var(--green);font-weight:800}
.tier .who{font-size:.85rem;color:var(--muted);font-style:italic;margin-bottom:18px}
.pricing-note{
  max-width:760px;margin:34px auto 0;background:#fdf6e7;border:1px solid #ecd9a8;
  border-radius:var(--radius);padding:20px 26px;font-size:.93rem;color:#6b5a2e;
}

/* ---------- Trust / license ---------- */
.license-box{display:grid;grid-template-columns:1.2fr 1fr;gap:44px;align-items:start}
.kv{display:grid;grid-template-columns:auto 1fr;gap:8px 22px;margin:22px 0;font-size:.95rem}
.kv dt{color:var(--muted);font-weight:600}
.kv dd{font-weight:700;color:var(--ink)}
.cred-imgs{display:grid;gap:16px}
.cred-imgs figure{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:14px;box-shadow:var(--shadow)}
.cred-imgs img{border-radius:8px;width:100%}
.cred-imgs figcaption{font-size:.82rem;color:var(--muted);margin-top:10px;text-align:center}
.badge-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:18px}
.badge{background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:10px 16px;font-size:.85rem;font-weight:700;color:var(--ink);box-shadow:var(--shadow)}
.badge span{color:var(--green)}

/* ---------- FAQ ---------- */
.faq-item{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);margin-bottom:14px;overflow:hidden;box-shadow:var(--shadow)}
.faq-item summary{
  cursor:pointer;padding:21px 26px;font-weight:700;color:var(--ink);font-size:1.02rem;
  list-style:none;display:flex;justify-content:space-between;align-items:center;gap:14px;
}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{content:"+";font-size:1.5rem;color:var(--gold);font-weight:400;flex-shrink:0}
.faq-item[open] summary::after{content:"–"}
.faq-item .faq-a{padding:0 26px 22px;color:var(--muted);font-size:.96rem}
.faq-a ul{margin:10px 0 0 20px}
.faq-a li{margin-bottom:6px}

/* ---------- Forms ---------- */
.form-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:38px;box-shadow:var(--shadow-lg)}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.field{display:flex;flex-direction:column;gap:7px}
.field.full{grid-column:1/-1}
.field label{font-size:.86rem;font-weight:700;color:var(--ink)}
.field input,.field select,.field textarea{
  padding:13px 16px;border:1.5px solid var(--line);border-radius:10px;font-size:1rem;
  font-family:inherit;background:var(--cream);color:var(--ink);width:100%;
}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--green)}
.field textarea{min-height:110px;resize:vertical}

/* ---------- Contact channels ---------- */
.channel{display:flex;gap:18px;align-items:flex-start;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:24px;box-shadow:var(--shadow)}
.channel .ico{font-size:1.7rem;width:52px;height:52px;border-radius:12px;display:flex;align-items:center;justify-content:center;background:var(--cream);flex-shrink:0}
.channel h3{font-size:1.05rem;margin-bottom:4px}
.channel p{font-size:.9rem;color:var(--muted)}
.channel a.val{font-weight:700;font-size:.98rem}

/* ---------- Itinerary (tour detail) ---------- */
.day{display:grid;grid-template-columns:86px 1fr;gap:22px;padding:26px 0;border-bottom:1px solid var(--line)}
.day:last-child{border-bottom:none}
.day .d{
  font-family:'Playfair Display',serif;font-weight:700;color:var(--green);font-size:1.05rem;
  text-align:center;background:var(--paper);border:1px solid var(--line);border-radius:12px;
  padding:12px 6px;height:fit-content;box-shadow:var(--shadow);
}
.day .d b{display:block;font-size:1.6rem}
.day h3{margin-bottom:6px;font-size:1.13rem}
.day p{color:var(--muted);font-size:.96rem}
.day .meals{font-size:.8rem;color:var(--gold);font-weight:700;margin-top:8px;letter-spacing:.04em}

.tour-facts{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:26px 0}
.fact{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:16px;text-align:center;box-shadow:var(--shadow)}
.fact b{display:block;color:var(--green);font-size:1.05rem}
.fact span{font-size:.8rem;color:var(--muted);font-weight:600}

.incl-grid{display:grid;grid-template-columns:1fr 1fr;gap:26px}
.incl{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:28px;box-shadow:var(--shadow)}
.incl h3{margin-bottom:14px}
.incl ul{list-style:none}
.incl li{padding:7px 0;font-size:.95rem;border-bottom:1px dashed var(--line)}
.incl.yes li::before{content:"✓  ";color:var(--green);font-weight:800}
.incl.no li::before{content:"✗  ";color:#b3502e;font-weight:800}

/* ---------- CTA band ---------- */
.cta-band{
  background:linear-gradient(140deg,var(--green-dark),var(--ink));color:#fff;
  border-radius:20px;padding:58px 46px;text-align:center;position:relative;overflow:hidden;
}
.cta-band h2{color:#fff}
.cta-band p{color:rgba(255,255,255,.85);max-width:560px;margin:14px auto 28px}
.cta-band .btn-note{color:rgba(255,255,255,.6)}

/* ---------- Visa table ---------- */
.visa-table{width:100%;border-collapse:collapse;background:var(--paper);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);font-size:.93rem}
.visa-table th{background:var(--green);color:#fff;padding:14px 18px;text-align:left;font-size:.86rem;letter-spacing:.04em}
.visa-table td{padding:14px 18px;border-bottom:1px solid var(--line);vertical-align:top}
.visa-table tr:last-child td{border-bottom:none}
.visa-table .ok{color:var(--green);font-weight:800}
.notice{
  background:#eef6f1;border:1px solid #cfe5d8;border-radius:var(--radius);
  padding:18px 24px;font-size:.92rem;color:#2c5743;margin:22px 0;
}

/* ---------- Footer ---------- */
.site-footer{background:var(--ink);color:rgba(255,255,255,.78);padding:64px 0 30px;margin-top:78px}
.foot-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1.2fr;gap:40px;max-width:var(--max);margin:0 auto;padding:0 22px}
.site-footer h4{color:#fff;font-size:.92rem;letter-spacing:.08em;text-transform:uppercase;margin-bottom:16px}
.site-footer a{color:rgba(255,255,255,.78);display:block;padding:4px 0;font-size:.92rem}
.site-footer a:hover{color:var(--gold-light)}
.foot-brand{font-family:'Playfair Display',serif;font-size:1.4rem;color:#fff;margin-bottom:8px}
.foot-tag{font-style:italic;color:var(--gold-light);font-size:.95rem;margin-bottom:14px}
.foot-legal{font-size:.82rem;color:rgba(255,255,255,.5);line-height:1.8}
.foot-bottom{max-width:var(--max);margin:44px auto 0;padding:24px 22px 0;border-top:1px solid rgba(255,255,255,.12);font-size:.82rem;color:rgba(255,255,255,.45);text-align:center}

/* ---------- Floating WhatsApp ---------- */
.float-wa{
  position:fixed;bottom:26px;right:26px;z-index:300;
  display:flex;align-items:center;gap:10px;background:var(--wa);color:#fff;
  padding:14px 22px;border-radius:999px;font-weight:800;box-shadow:0 10px 32px rgba(0,0,0,.28);
  transition:transform .18s ease;font-size:.96rem;
}
.float-wa:hover{transform:scale(1.05)}

/* ---------- Misc ---------- */
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center}
.prose p{margin-bottom:16px}
.prose h2{margin:34px 0 14px}
.prose h3{margin:26px 0 10px}
.prose ul{margin:0 0 16px 22px}
.prose li{margin-bottom:8px}
.img-frame{border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-lg);background:linear-gradient(135deg,#2a6b51,#16241d)}
.img-frame img{width:100%;height:100%;object-fit:cover}

/* ---------- Responsive ---------- */
@media(max-width:980px){
  .grid.cols-4{grid-template-columns:repeat(2,1fr)}
  .grid.cols-3{grid-template-columns:repeat(2,1fr)}
  .steps{grid-template-columns:repeat(2,1fr)}
  .stats{grid-template-columns:repeat(2,1fr)}
  .tour-facts{grid-template-columns:repeat(2,1fr)}
  .license-box,.two-col{grid-template-columns:1fr}
  .foot-grid{grid-template-columns:1fr 1fr}
}
/* ============================================================
   IMMERSIVE LAYER — animations, parallax, quiz
   ============================================================ */

/* Video hero */
.hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
.hero-veil{position:absolute;inset:0;z-index:1;
  background:linear-gradient(to top,rgba(13,25,18,.88) 0%,rgba(13,25,18,.25) 45%,rgba(13,25,18,.45) 100%)}
.hero-x .hx-mist{z-index:2}

/* Real-media moments */
.moment .m-media{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.moment{flex-basis:270px;height:360px}

/* Group photo band */
.photo-band{position:relative;border-radius:22px;overflow:hidden;box-shadow:var(--shadow-lg);min-height:440px;display:flex;align-items:flex-end}
.photo-band>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.photo-band .pb-cap{position:relative;z-index:2;width:100%;padding:120px 46px 44px;
  background:linear-gradient(to top,rgba(10,18,14,.92) 0%,rgba(10,18,14,.45) 55%,transparent 100%)}
.photo-band .pb-cap h2{font-size:clamp(1.4rem,2.6vw,2rem);margin:8px 0 10px}
.photo-band .pb-cap p{color:rgba(255,255,255,.85);max-width:560px;margin-bottom:20px}
@media(max-width:700px){.photo-band .pb-cap{padding:90px 22px 28px}}

/* Scroll reveal */
.rv{opacity:0;transform:translateY(34px);transition:opacity .8s cubic-bezier(.2,.65,.3,1),transform .8s cubic-bezier(.2,.65,.3,1)}
.rv.in{opacity:1;transform:none}
.rv.d1{transition-delay:.1s}.rv.d2{transition-delay:.22s}.rv.d3{transition-delay:.34s}.rv.d4{transition-delay:.46s}
@media(prefers-reduced-motion:reduce){.rv{opacity:1;transform:none;transition:none}}

/* Parallax hero with SVG mountain layers */
.hero-x{position:relative;min-height:92vh;display:flex;align-items:center;overflow:hidden;
  background:linear-gradient(180deg,#0d1f18 0%,#143f30 45%,#1d5c45 100%)}
.hx-layer{position:absolute;left:0;right:0;bottom:0;pointer-events:none;will-change:transform}
.hx-layer svg{display:block;width:100%;height:auto}
.hx-stars{position:absolute;inset:0;pointer-events:none}
.hx-stars i{position:absolute;width:3px;height:3px;border-radius:50%;background:rgba(255,236,179,.8);animation:tw 3s infinite ease-in-out}
@keyframes tw{0%,100%{opacity:.2}50%{opacity:1}}
.hx-mist{position:absolute;left:-10%;right:-10%;height:130px;bottom:0;
  background:radial-gradient(ellipse at center,rgba(250,247,240,.16),transparent 70%);
  animation:mist 9s ease-in-out infinite alternate;pointer-events:none}
@keyframes mist{from{transform:translateX(-3%)}to{transform:translateX(3%)}}
.hero-x .hero-inner{position:relative;z-index:5}
.hx-title{overflow:hidden}
.hx-title span{display:inline-block;animation:rise 1s cubic-bezier(.2,.65,.3,1) both}
@keyframes rise{from{opacity:0;transform:translateY(110%)}to{opacity:1;transform:none}}
.scroll-hint{position:absolute;bottom:26px;left:50%;transform:translateX(-50%);z-index:6;color:rgba(255,255,255,.75);
  font-size:.8rem;letter-spacing:.2em;text-transform:uppercase;text-align:center}
.scroll-hint::after{content:"";display:block;width:1px;height:38px;margin:10px auto 0;
  background:linear-gradient(to bottom,rgba(255,255,255,.8),transparent);animation:drip 1.8s ease-in-out infinite}
@keyframes drip{0%{transform:scaleY(0);transform-origin:top}55%{transform:scaleY(1);transform-origin:top}56%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}

/* Floating panda */
.panda-float{display:inline-block;animation:bob 4s ease-in-out infinite}
@keyframes bob{0%,100%{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-10px) rotate(2deg)}}

/* Counter pop */
.stat b{transition:color .3s}

/* Tilt cards */
.tilt{transform-style:preserve-3d;transition:transform .25s ease,box-shadow .25s ease}
.tilt:hover{box-shadow:var(--shadow-lg)}
.card .card-img{transition:transform .6s ease;overflow:hidden}
.card:hover .card-img{transform:scale(1.06)}
.card-img::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(13,25,19,.45),transparent 55%)}
.card-img .ph{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:4.4rem;
  text-shadow:0 8px 30px rgba(0,0,0,.35);z-index:1;transition:transform .5s ease}
.card:hover .card-img .ph{transform:scale(1.15) rotate(-4deg)}

/* Marquee strip */
.strip{overflow:hidden;background:var(--ink);padding:18px 0;white-space:nowrap}
.strip-track{display:inline-block;animation:marq 30s linear infinite}
.strip span{color:rgba(255,255,255,.85);font-weight:600;font-size:.95rem;margin:0 28px;display:inline-block}
.strip b{color:var(--gold-light)}
@keyframes marq{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.strip:hover .strip-track{animation-play-state:paused}

/* Quiz */
.quiz{background:var(--paper);border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow-lg);
  max-width:760px;margin:44px auto 0;overflow:hidden}
.quiz-head{background:linear-gradient(140deg,var(--green-dark),var(--ink));color:#fff;padding:26px 32px;display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.quiz-head h3{color:#fff;font-size:1.25rem}
.quiz-prog{display:flex;gap:7px}
.quiz-prog i{width:34px;height:5px;border-radius:99px;background:rgba(255,255,255,.25);transition:background .3s}
.quiz-prog i.on{background:var(--gold)}
.quiz-body{padding:34px 32px;min-height:300px}
.q-step{display:none;animation:qin .45s cubic-bezier(.2,.65,.3,1)}
.q-step.on{display:block}
@keyframes qin{from{opacity:0;transform:translateX(36px)}to{opacity:1;transform:none}}
.q-step h4{font-family:'Playfair Display',serif;font-size:1.35rem;color:var(--ink);margin-bottom:22px}
.q-opts{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.q-opt{border:2px solid var(--line);border-radius:14px;padding:18px;cursor:pointer;background:var(--cream);
  transition:all .18s ease;font-weight:600;color:var(--ink);text-align:left;font-size:.97rem;font-family:inherit}
.q-opt .e{font-size:1.6rem;display:block;margin-bottom:8px}
.q-opt:hover{border-color:var(--green);transform:translateY(-3px);box-shadow:var(--shadow)}
.q-opt.sel{border-color:var(--green);background:#eaf4ee}
.q-result{text-align:center;display:none;animation:qin .5s}
.q-result.on{display:block}
.q-result .big{font-size:3.4rem;margin-bottom:8px}
.q-result h4{font-family:'Playfair Display',serif;font-size:1.6rem;color:var(--green);margin-bottom:8px}
.q-result p{color:var(--muted);max-width:480px;margin:0 auto 22px}
.q-back{background:none;border:none;color:var(--muted);cursor:pointer;font-size:.88rem;margin-top:18px;font-family:inherit}
.q-back:hover{color:var(--green)}

/* Horizontal moments gallery */
.moments{display:flex;gap:18px;overflow-x:auto;padding:10px 4px 22px;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch}
.moments::-webkit-scrollbar{height:8px}
.moments::-webkit-scrollbar-thumb{background:var(--line);border-radius:99px}
.moment{flex:0 0 290px;scroll-snap-align:start;border-radius:16px;overflow:hidden;position:relative;height:380px;
  display:flex;align-items:flex-end;color:#fff;box-shadow:var(--shadow);transition:transform .3s ease}
.moment:hover{transform:translateY(-6px) rotate(-.5deg)}
.moment .bg{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:4.6rem}
.moment .cap{position:relative;z-index:2;padding:18px;background:linear-gradient(to top,rgba(10,20,15,.85),transparent);width:100%}
.moment .cap b{display:block;font-size:1.02rem}
.moment .cap span{font-size:.8rem;opacity:.8}

/* Timeline */
.tl{position:relative;max-width:720px;margin:44px auto 0;padding-left:34px}
.tl::before{content:"";position:absolute;left:10px;top:6px;bottom:6px;width:3px;border-radius:99px;
  background:linear-gradient(to bottom,var(--gold),var(--green))}
.tl-item{position:relative;padding:0 0 34px 26px}
.tl-item::before{content:"";position:absolute;left:-31px;top:4px;width:17px;height:17px;border-radius:50%;
  background:var(--paper);border:4px solid var(--green);box-shadow:0 0 0 4px rgba(29,92,69,.15)}
.tl-item h3{font-size:1.1rem;margin-bottom:6px}
.tl-item p{color:var(--muted);font-size:.95rem}

@media(max-width:700px){
  .q-opts{grid-template-columns:1fr}
  .quiz-body{padding:26px 20px}
  .hero-x{min-height:86vh}

  .grid.cols-2,.grid.cols-3,.grid.cols-4{grid-template-columns:1fr}
  .steps{grid-template-columns:1fr}
  .form-grid{grid-template-columns:1fr}
  .incl-grid{grid-template-columns:1fr}
  .nav-links{
    display:none;position:absolute;top:72px;left:0;right:0;background:var(--paper);
    flex-direction:column;padding:20px;gap:16px;border-bottom:1px solid var(--line);
    box-shadow:var(--shadow-lg);
  }
  .nav-links.open{display:flex}
  .nav-toggle{display:block}
  .hero-inner{padding:78px 22px 64px}
  .day{grid-template-columns:64px 1fr;gap:14px}
  .float-wa span.txt{display:none}
  .float-wa{padding:16px}
  .cta-band{padding:44px 26px}
  .foot-grid{grid-template-columns:1fr}
  .img-break{background-attachment:scroll}
  .img-break-inner{padding:70px 22px}
}

/* ============================================================
   EDITORIAL LUXURY LAYER v3 — dark sections, image breaks
   ============================================================ */

/* Dark sections */
.section.dark{background:var(--ink)}
.section.dark h2,.section.dark h3{color:#fff}
.section.dark .kicker{color:var(--gold-light)}
.section.dark p,.section.dark .lede{color:rgba(255,255,255,.78)}
.section.dark .center p{color:rgba(255,255,255,.78)}

/* Stats on dark background — editorial gold numbers */
.section.dark .stats{margin-top:0;gap:0;border:1px solid rgba(255,255,255,.1);border-radius:var(--radius);overflow:hidden}
.section.dark .stat{
  background:transparent;border:none;border-right:1px solid rgba(255,255,255,.1);
  box-shadow:none;padding:32px 18px;
}
.section.dark .stat:last-child{border-right:none}
.section.dark .stat b{color:var(--gold-light);font-size:2.9rem;font-weight:700;line-height:1}
.section.dark .stat span{color:rgba(255,255,255,.6);font-size:.82rem;margin-top:6px;display:block}
@media(max-width:700px){
  .section.dark .stats{border-radius:0;border-left:none;border-right:none}
  .section.dark .stat{border-right:none;border-bottom:1px solid rgba(255,255,255,.1)}
  .section.dark .stat:last-child{border-bottom:none}
}

/* Timeline on dark */
.section.dark .tl::before{background:linear-gradient(to bottom,var(--gold),var(--gold-light))}
.section.dark .tl-item::before{background:var(--ink);border-color:var(--gold)}
.section.dark .tl-item h3{color:#fff}
.section.dark .tl-item p{color:rgba(255,255,255,.7)}

/* Full-bleed image break — parallax magazine feel */
.img-break{
  position:relative;min-height:500px;background-size:cover;
  background-position:center;background-attachment:fixed;
  display:flex;align-items:center;overflow:hidden;
}
.img-break::before{
  content:"";position:absolute;inset:0;
  background:linear-gradient(135deg,rgba(10,20,14,.90) 0%,rgba(10,20,14,.55) 55%,rgba(10,20,14,.80) 100%);
}
.img-break-inner{
  position:relative;z-index:2;max-width:var(--max);margin:0 auto;
  padding:100px 22px;color:#fff;text-align:center;
}
.img-break-inner .kicker{color:var(--gold-light)}
.img-break-inner h2{
  color:#fff;font-size:clamp(2rem,4vw,3.2rem);
  max-width:820px;margin:14px auto 22px;line-height:1.18;
}
.img-break-inner p{
  color:rgba(255,255,255,.82);font-size:1.15rem;
  max-width:560px;margin:0 auto 30px;
}

/* Moments gallery gradient fade edge */
.moments-wrap{position:relative}
.moments-wrap::after{
  content:"";position:absolute;top:0;right:0;bottom:22px;width:80px;
  background:linear-gradient(to right,transparent,var(--ink));
  pointer-events:none;z-index:2;
}

/* Pricing featured tier — glow effect */
.tier.featured{
  box-shadow:0 0 0 1px var(--gold),var(--shadow-lg),0 0 40px rgba(200,162,75,.12);
}

/* Visa notice in dark context */
.section.dark .notice{
  background:rgba(255,255,255,.08);
  border-color:rgba(255,255,255,.15);
  color:rgba(255,255,255,.9);
}
.section.dark .notice strong{color:#fff}
.section.dark .notice a{color:var(--gold-light)}

/* Route section: add subtle noise texture to alt */
.section.alt{
  background:var(--paper);
  background-image:url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23000' fill-opacity='0.015'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
}

/* Kicker bar on dark sections */
.section.dark .center .kicker{
  background:rgba(200,162,75,.15);
  border:1px solid rgba(200,162,75,.3);
  padding:6px 16px;border-radius:999px;
}

/* More prominent section headings */
h2{letter-spacing:-.01em}

/* Moments: dark background so videos pop */
.section.dark-moments{background:var(--ink)}
.section.dark-moments .kicker{color:var(--gold-light)}
.section.dark-moments h2{color:#fff}
.section.dark-moments .lede{color:rgba(255,255,255,.75)}
.section.dark-moments .center .rv{color:#fff}

/* ============================================================
   IMMERSIVE PREMIUM LAYER v4 — depth, reviews, planner, motion
   ============================================================ */

/* ---- Scroll progress bar ---- */
.scroll-prog{position:fixed;top:0;left:0;height:3px;width:0;z-index:400;
  background:linear-gradient(90deg,var(--gold),var(--gold-light));
  box-shadow:0 0 12px rgba(200,162,75,.6);transition:width .1s linear}

/* ---- Film grain overlay (global, subtle) ---- */
.grain{position:fixed;inset:0;z-index:350;pointer-events:none;opacity:.05;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}

/* ---- Hero depth upgrades ---- */
.hero-x .hero-video{transform:scale(1.06);transition:transform 6s ease}
.hx-aurora{position:absolute;inset:-20% -10% auto -10%;height:70%;z-index:1;pointer-events:none;
  background:radial-gradient(60% 60% at 30% 20%,rgba(200,162,75,.22),transparent 70%),
            radial-gradient(50% 50% at 80% 10%,rgba(46,140,107,.28),transparent 70%);
  filter:blur(20px);animation:aur 14s ease-in-out infinite alternate}
@keyframes aur{from{transform:translate3d(-2%,0,0) scale(1)}to{transform:translate3d(3%,3%,0) scale(1.1)}}
.hero-x .hero-inner{transition:transform .25s ease-out}
.hero-trust .chip{transition:transform .3s ease,background .3s ease}
.hero-trust .chip:hover{transform:translateY(-2px);background:rgba(255,255,255,.2)}

/* gold gradient accent on key headings */
.grad-text{background:linear-gradient(100deg,var(--gold-light),var(--gold) 60%,#fff);
  -webkit-background-clip:text;background-clip:text;color:transparent}

/* ---- Real 3D tilt (driven by JS vars) ---- */
.tilt{transform:perspective(900px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg)) translateZ(0);
  transition:transform .12s ease-out,box-shadow .25s ease;will-change:transform}
.tilt .card-img{transition:transform .4s ease}
.tilt:hover{box-shadow:0 26px 60px rgba(22,36,29,.28)}
.tilt-glow{position:absolute;inset:0;pointer-events:none;border-radius:inherit;opacity:0;
  background:radial-gradient(220px circle at var(--mx,50%) var(--my,50%),rgba(255,255,255,.18),transparent 60%);
  transition:opacity .3s}
.tilt:hover .tilt-glow{opacity:1}

/* ---- Magnetic / premium buttons ---- */
.btn{position:relative;overflow:hidden;will-change:transform}
.btn::after{content:"";position:absolute;top:0;left:-120%;width:60%;height:100%;
  background:linear-gradient(110deg,transparent,rgba(255,255,255,.35),transparent);
  transform:skewX(-18deg);transition:left .6s ease}
.btn:hover::after{left:140%}
.btn-primary,.btn-wa{box-shadow:0 8px 22px rgba(22,36,29,.18)}

/* ---- Section eyebrow number ---- */
.sec-no{font-family:'Playfair Display',serif;font-size:.95rem;color:var(--gold);
  letter-spacing:.2em;opacity:.7;margin-bottom:6px;display:block}

/* ---- Aggregate rating header ---- */
.rating-hero{display:flex;flex-direction:column;align-items:center;gap:8px;margin-top:18px}
.rating-hero .stars{color:var(--gold);font-size:1.5rem;letter-spacing:3px}
.rating-hero .score{font-family:'Playfair Display',serif;font-size:1.05rem;color:var(--ink)}
.section.dark .rating-hero .score{color:#fff}
.section.dark .rating-hero .score b{color:var(--gold-light)}

/* ---- Reviews wall ---- */
.reviews{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:42px}
.review{background:var(--paper);border:1px solid var(--line);border-radius:18px;padding:26px 24px;
  box-shadow:var(--shadow);display:flex;flex-direction:column;gap:14px;position:relative;
  transition:transform .25s ease,box-shadow .25s ease}
.review:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg)}
.review::before{content:"\201C";position:absolute;top:8px;right:20px;font-family:'Playfair Display',serif;
  font-size:4.4rem;line-height:1;color:var(--gold);opacity:.16}
.review .r-stars{color:var(--gold);font-size:.98rem;letter-spacing:2px}
.review .r-text{font-size:.98rem;color:var(--text);line-height:1.6;flex:1}
.review .r-who{display:flex;align-items:center;gap:12px;margin-top:4px}
.review .r-flag{font-size:1.7rem;line-height:1;filter:drop-shadow(0 2px 4px rgba(0,0,0,.12))}
.review .r-meta b{display:block;font-size:.93rem;color:var(--ink)}
.review .r-meta span{font-size:.8rem;color:var(--muted)}
.review .r-route{margin-top:2px;align-self:flex-start;background:var(--cream);border:1px solid var(--line);
  border-radius:999px;padding:4px 12px;font-size:.74rem;font-weight:700;color:var(--green)}
@media(max-width:980px){.reviews{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){.reviews{grid-template-columns:1fr}}

/* ---- Country flag strip ---- */
.flag-strip{display:flex;flex-wrap:wrap;justify-content:center;gap:14px;margin-top:26px;font-size:1.9rem}
.flag-strip span{transition:transform .25s ease;cursor:default;filter:grayscale(.15)}
.flag-strip span:hover{transform:translateY(-5px) scale(1.18);filter:none}

/* ---- Seasonal planner ---- */
.planner{max-width:980px;margin:42px auto 0;background:var(--paper);border:1px solid var(--line);
  border-radius:22px;box-shadow:var(--shadow-lg);overflow:hidden}
.planner-months{display:grid;grid-template-columns:repeat(12,1fr);gap:0}
.pm{padding:16px 4px;text-align:center;font-weight:700;font-size:.86rem;cursor:pointer;color:var(--muted);
  border-right:1px solid var(--line);background:var(--cream);transition:all .2s ease;font-family:inherit}
.pm:last-child{border-right:none}
.pm:hover{color:var(--green);background:#eef4f0}
.pm.on{background:var(--green);color:#fff}
.planner-panel{padding:34px 36px;display:grid;grid-template-columns:1.4fr 1fr;gap:30px;align-items:center}
.pp-main h3{font-family:'Playfair Display',serif;font-size:1.5rem;color:var(--ink);margin-bottom:6px}
.pp-season{font-size:.78rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--gold)}
.pp-main p{color:var(--muted);font-size:.97rem;margin:10px 0 16px}
.pp-tags{display:flex;flex-wrap:wrap;gap:8px}
.pp-tags span{background:var(--cream);border:1px solid var(--line);border-radius:999px;
  padding:5px 13px;font-size:.8rem;font-weight:600;color:var(--text)}
.pp-rating{text-align:center;background:var(--cream);border:1px solid var(--line);border-radius:16px;padding:22px}
.pp-rating .big{font-family:'Playfair Display',serif;font-size:2.6rem;color:var(--green);line-height:1}
.pp-rating .lbl{font-size:.78rem;color:var(--muted);font-weight:700;letter-spacing:.05em;margin-top:4px}
.pp-rating .bars{display:flex;gap:4px;justify-content:center;margin-top:14px}
.pp-rating .bars i{width:8px;border-radius:4px;background:var(--green);opacity:.85}
.planner-panel.fade{animation:qin .4s ease}
@media(max-width:760px){
  .planner-months{grid-template-columns:repeat(6,1fr)}
  .pm:nth-child(6){border-right:none}
  .planner-panel{grid-template-columns:1fr;padding:26px 22px}
}

/* ---- Highlight feature rows (alternating image/text) ---- */
.feature-row{display:grid;grid-template-columns:1fr 1fr;gap:44px;align-items:center;margin:40px 0}
.feature-row.flip .fr-media{order:2}
.fr-media{border-radius:20px;overflow:hidden;box-shadow:var(--shadow-lg);aspect-ratio:4/3;position:relative}
.fr-media img,.fr-media video{width:100%;height:100%;object-fit:cover;transition:transform .8s ease}
.feature-row:hover .fr-media img,.feature-row:hover .fr-media video{transform:scale(1.07)}
.fr-media .fr-badge{position:absolute;left:16px;bottom:16px;z-index:2;background:rgba(13,25,18,.78);
  color:#fff;padding:8px 16px;border-radius:999px;font-size:.82rem;font-weight:700;backdrop-filter:blur(6px)}
.fr-text .kicker{margin-bottom:10px}
.fr-text h3{font-family:'Playfair Display',serif;font-size:1.7rem;color:var(--ink);margin-bottom:12px}
.fr-text p{color:var(--muted);margin-bottom:16px}
.fr-list{list-style:none;display:flex;flex-direction:column;gap:9px}
.fr-list li{padding-left:26px;position:relative;font-size:.96rem;color:var(--text)}
.fr-list li::before{content:"✦";position:absolute;left:0;color:var(--gold)}
@media(max-width:820px){.feature-row{grid-template-columns:1fr;gap:24px}.feature-row.flip .fr-media{order:0}}

/* ---- Section divider (organic curve) ---- */
.divider-curve{display:block;width:100%;height:60px;line-height:0}
.divider-curve svg{display:block;width:100%;height:100%}

/* ---- Reveal: subtle scale variant for media ---- */
.rv-zoom{opacity:0;transform:scale(.94);transition:opacity .9s ease,transform .9s cubic-bezier(.2,.65,.3,1)}
.rv-zoom.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.rv-zoom{opacity:1;transform:none;transition:none}}
