/* =========================================================
   MARGADARSHAK — STATIC SITE STYLESHEET
   Palette: ivory paper, deep forest green, verdant green, brass gold, ink
   Type: Fraunces (display/serif) + Manrope (body/ui)
   Motif: the "marga" (path) — dotted route lines + a holographic
   3D compass in the hero for that layered, metaverse-grade depth.
   ========================================================= */
:root{
  --paper:#FAF8F3; --paper-dim:#F1EEE4; --white:#FFFFFF;
  --ink:#161C18; --ink-soft:#4B564E;
  --forest:#0E3B2E; --forest-2:#0A2C22;
  --verdant:#1F6D4C; --verdant-light:#2E8A63;
  --mint-tint:#E7F1EA; --brass:#AD8A52; --brass-light:#D8BE8C;
  --line:#DDD8C8; --line-strong:#C6C0AC;
  --shadow-soft:0 12px 40px -18px rgba(14,59,46,.28);
  --shadow-hard:0 24px 70px -20px rgba(10,44,34,.35);
  --radius-s:4px; --radius-m:6px; --radius-l:10px; --maxw:1220px;
  --serif:"Fraunces", Georgia, "Times New Roman", serif;
  --sans:"Manrope", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color-scheme: light;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth; scroll-padding-top:96px; overflow-x:clip; width:100%;}
body{margin:0; background:var(--paper); color:var(--ink); font-family:var(--sans); font-size:16px; line-height:1.55; -webkit-font-smoothing:antialiased; overflow-x:clip; width:100%;
  padding-top:env(safe-area-inset-top,0px); padding-bottom:env(safe-area-inset-bottom,0px);}
img,svg{max-width:100%; display:block;}
a{color:inherit; text-decoration:none;}
button{font-family:inherit; cursor:pointer;}
ul{margin:0; padding:0; list-style:none;}
h1,h2,h3,h4{font-family:var(--serif); font-weight:500; margin:0; color:var(--forest-2); letter-spacing:-.01em;}
p{margin:0;}
::selection{background:var(--verdant); color:#fff;}
::-webkit-scrollbar{width:10px; height:10px;}
::-webkit-scrollbar-track{background:var(--paper-dim);}
::-webkit-scrollbar-thumb{background:var(--line-strong); border-radius:8px;}
.container{max-width:var(--maxw); margin:0 auto; padding:0 28px;}
@media (max-width:640px){.container{padding:0 20px;}}
.flex{display:flex;} .items-center{align-items:center;} .justify-between{justify-content:space-between;} .gap-8{gap:8px;} .gap-12{gap:12px;}
.text-soft{color:var(--ink-soft);}
.skip-link{position:absolute; left:-999px; top:0; background:#fff; padding:12px 18px; z-index:5000;}
.skip-link:focus{left:12px; top:12px;}
:focus-visible{outline:2px solid var(--brass); outline-offset:2px;}

/* ---------- Buttons ---------- */
.btn{display:inline-flex; align-items:center; gap:9px; justify-content:center; padding:14px 26px; border-radius:var(--radius-s);
  border:1px solid transparent; font-weight:600; font-size:14.5px; letter-spacing:.01em; white-space:nowrap; position:relative; overflow:hidden;
  transition:transform .3s cubic-bezier(.2,.8,.2,1), background .25s, color .25s, border-color .25s, box-shadow .25s;}
.btn svg{width:18px; height:18px; flex:none;}
.btn:active{transform:scale(.97) !important;}
.close-btn svg{width:16px; height:16px;}
.qf svg{width:24px; height:24px; margin:0 auto 8px; color:var(--verdant);}
.faq-icon svg{width:16px; height:16px;}
.btn-primary{background:var(--forest); color:#fff;} .btn-primary:hover{background:var(--verdant); box-shadow:var(--shadow-soft);}
.btn-ghost{background:transparent; color:var(--forest); border-color:var(--forest);} .btn-ghost:hover{background:var(--forest); color:#fff;}
.btn-ghost-light{background:transparent; color:#fff; border-color:rgba(255,255,255,.55);} .btn-ghost-light:hover{background:#fff; color:var(--forest);}
.btn-gold{background:var(--brass); color:#fff;} .btn-gold:hover{background:#8f7140;}
.btn-sm{padding:10px 18px; font-size:13.5px;} .btn-block{width:100%;}
.btn-wa{background:#1f6d4c; color:#fff;}
.ripple-span{position:absolute; border-radius:50%; background:rgba(255,255,255,.55); transform:scale(0); animation:rippleAnim .6s ease-out forwards; pointer-events:none;}
.btn-ghost .ripple-span, .btn-ghost-light .ripple-span{background:rgba(14,59,46,.2);}
@keyframes rippleAnim{to{transform:scale(2.6); opacity:0;}}
.shine-btn::after{content:""; position:absolute; top:0; left:-60%; width:40%; height:100%;
  background:linear-gradient(120deg, transparent, rgba(255,255,255,.35), transparent); transform:skewX(-20deg); animation:shineSweep 3.4s ease-in-out infinite;}
@keyframes shineSweep{0%{left:-60%;} 45%{left:130%;} 100%{left:130%;}}

/* ---------- Motion system ---------- */
#scrollProgress{position:fixed; top:0; left:0; height:3px; width:0%; z-index:4000;
  background:linear-gradient(90deg, var(--brass), var(--verdant-light)); transition:width .12s linear; box-shadow:0 0 12px rgba(173,138,82,.6);}
.reveal{opacity:0; transform:translateY(28px); transition:opacity .8s cubic-bezier(.2,.8,.2,1), transform .8s cubic-bezier(.2,.8,.2,1);}
.reveal.in{opacity:1; transform:translateY(0);}
.reveal.slide-left{transform:translateX(-34px);} .reveal.slide-right{transform:translateX(34px);}
.reveal.slide-left, .reveal.slide-right{transition:opacity .8s cubic-bezier(.2,.8,.2,1), transform .8s cubic-bezier(.2,.8,.2,1);}
.reveal.slide-left.in, .reveal.slide-right.in{transform:translateX(0);}
.reveal.scale-in{transform:scale(.92); transition:opacity .7s ease, transform .7s cubic-bezier(.2,.8,.2,1);}
.reveal.scale-in.in{transform:scale(1);}
.tilt-wrap{perspective:1200px;}
.tilt-el{transition:transform .15s cubic-bezier(.2,.8,.2,1), box-shadow .3s; will-change:transform; transform-style:preserve-3d;}
.tilt-el .thumb svg, .tilt-el .art svg{transition:transform .7s cubic-bezier(.2,.8,.2,1);}
.tilt-el:hover .thumb svg, .tilt-el:hover .art svg{transform:scale(1.1);}
.kb-pan .thumb svg, .kb-pan .art svg{animation:kenBurns 15s ease-in-out infinite alternate;}
@keyframes kenBurns{0%{transform:scale(1) translate(0,0);} 100%{transform:scale(1.13) translate(-1.5%,-1.5%);}}
.count-up{font-variant-numeric:tabular-nums;}
.spin-slow-3d{animation:spin3d 7s linear infinite;}
@keyframes spin3d{0%{transform:rotateY(0deg);}100%{transform:rotateY(360deg);}}
@media (hover:none), (pointer:coarse){ .cursor-glow, .hero-particles, .hero-grid3d{display:none;} }
@media (prefers-reduced-motion: reduce){
  *{animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; scroll-behavior:auto !important;}
  .tilt-el{transform:none !important;}
}

/* ---------- Header ---------- */
.site-header{position:fixed; top:0; left:0; right:0; z-index:1000; padding-top:env(safe-area-inset-top,0px);
  background:rgba(250,248,243,.85); backdrop-filter:blur(14px) saturate(1.2); border-bottom:1px solid transparent; transition:border-color .3s, background .3s;}
.site-header.scrolled{border-bottom-color:var(--line);}
.header-inner{max-width:var(--maxw); margin:0 auto; padding:16px 28px; display:flex; align-items:center; justify-content:space-between; gap:24px;}
.brand{display:flex; align-items:center; gap:11px; font-family:var(--serif); font-size:21px; color:var(--forest-2); font-weight:600;}
.brand-mark{width:34px; height:34px; flex:none; object-fit:contain;}
.brand small{display:block; font-family:var(--sans); font-weight:600; font-size:9.5px; letter-spacing:.14em; color:var(--brass); margin-top:1px;}
.main-nav{display:flex; align-items:center; gap:30px;}
.main-nav a{font-size:14.5px; font-weight:600; color:var(--ink-soft); position:relative; padding:6px 0; transition:color .25s;}
.main-nav a:hover, .main-nav a.active{color:var(--forest);}
.main-nav a.active::after{content:""; position:absolute; left:0; right:0; bottom:0; height:2px; background:var(--brass);}
.header-actions{display:flex; align-items:center; gap:14px;}
.icon-btn{width:40px; height:40px; border-radius:50%; display:flex; align-items:center; justify-content:center; border:1px solid var(--line); background:#fff; transition:border-color .25s, background .25s;}
.icon-btn:hover{border-color:var(--forest); background:var(--mint-tint);}
.menu-toggle{display:none;}
@media (max-width:980px){ .main-nav{display:none;} .menu-toggle{display:flex;} .header-cta{display:none;} }
.mobile-nav{position:fixed; inset:0; background:var(--forest-2); z-index:1100; display:flex; flex-direction:column;
  padding:26px 26px calc(26px + env(safe-area-inset-bottom,0px)); transform:translateY(-100%); transition:transform .45s cubic-bezier(.2,.8,.2,1);}
.mobile-nav.open{transform:translateY(0);}
.mobile-nav-top{display:flex; align-items:center; justify-content:space-between;}
.mobile-nav a{display:block; font-family:var(--serif); font-size:28px; color:#fff; padding:16px 0; border-bottom:1px solid rgba(255,255,255,.12);}
.mobile-nav-foot{margin-top:auto; display:flex; flex-direction:column; gap:12px;}

/* ---------- HERO — layered depth + holographic compass ---------- */
.hero{position:relative; background:var(--forest-2); color:#fff; overflow:hidden; padding:170px 0 90px; isolation:isolate;}
.hero-grid3d{position:absolute; inset:0; z-index:0; perspective:600px; overflow:hidden;}
.hero-grid3d-plane{position:absolute; left:-50%; right:-50%; bottom:-20%; height:140%;
  background-image:linear-gradient(rgba(216,190,140,.14) 1px, transparent 1px), linear-gradient(90deg, rgba(216,190,140,.14) 1px, transparent 1px);
  background-size:60px 60px; transform:rotateX(75deg); transform-origin:bottom; animation:gridDrift 18s linear infinite;}
@keyframes gridDrift{0%{background-position:0 0, 0 0;} 100%{background-position:0 240px, 0 0;}}
.hero::before{content:""; position:absolute; inset:0; z-index:0;
  background-image:radial-gradient(ellipse 900px 500px at 85% 15%, rgba(45,138,99,.35), transparent 60%), radial-gradient(ellipse 700px 500px at 10% 90%, rgba(173,138,82,.18), transparent 60%);}
.grain{position:absolute; inset:0; opacity:.5; mix-blend-mode:overlay; pointer-events:none; z-index:1;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.35'/%3E%3C/svg%3E");}
.cursor-glow{position:absolute; width:480px; height:480px; border-radius:50%; pointer-events:none; z-index:1;
  background:radial-gradient(circle, rgba(216,190,140,.22), transparent 68%); transform:translate(-50%,-50%); transition:opacity .3s; opacity:0;}
.hero:hover .cursor-glow{opacity:1;}
.hero-particles{position:absolute; inset:0; z-index:1; overflow:hidden; pointer-events:none;}
.hp{position:absolute; border-radius:50%; background:rgba(216,190,140,.55); animation:floaty linear infinite;}
@keyframes floaty{0%{transform:translate3d(0,110%,0) scale(.6); opacity:0;} 8%{opacity:.9;} 92%{opacity:.5;} 100%{transform:translate3d(var(--drift,20px),-18%,0) scale(1); opacity:0;}}
.hero-grid{position:relative; z-index:2; display:grid; grid-template-columns:1.1fr .9fr; gap:60px; align-items:center;}
@media (max-width:980px){.hero-grid{grid-template-columns:1fr;} .hero{padding:150px 0 60px;}}
.hero-eyebrow{display:flex; align-items:center; gap:10px; color:var(--brass-light); font-weight:700; font-size:13.5px; margin-bottom:22px;}
.hero-eyebrow svg{width:18px;height:18px;}
.hero h1{color:#fff; font-size:clamp(38px,5.4vw,64px); line-height:1.04; font-weight:500; overflow:hidden;}
.hero h1 .line{display:block; overflow:hidden;}
.hero h1 .line span{display:block; transform:translateY(115%); animation:riseIn .95s cubic-bezier(.2,.9,.25,1) forwards;}
.hero h1 .line:nth-child(1) span{animation-delay:.05s;} .hero h1 .line:nth-child(2) span{animation-delay:.18s;} .hero h1 .line:nth-child(3) span{animation-delay:.31s;}
@keyframes riseIn{to{transform:translateY(0);}}
.hero p.lede{margin-top:26px; max-width:480px; font-size:17.5px; color:rgba(255,255,255,.78); line-height:1.65; opacity:0; animation:fadeUp .8s ease forwards .55s;}
.hero-actions{display:flex; gap:14px; margin-top:36px; flex-wrap:wrap; opacity:0; animation:fadeUp .8s ease forwards .7s;}
.hero-actions svg{width:18px;height:18px;}
@keyframes fadeUp{from{opacity:0; transform:translateY(14px);} to{opacity:1; transform:translateY(0);}}
.hero-stats{display:flex; gap:34px; margin-top:56px; flex-wrap:wrap; opacity:0; animation:fadeUp .8s ease forwards .85s;}
.hero-stat b{display:block; font-family:var(--serif); font-size:26px; color:#fff; font-weight:600;}
.hero-stat span{font-size:12.5px; color:rgba(255,255,255,.6);}
.hero-art{position:relative; height:440px;}
@media (max-width:980px){.hero-art{height:280px; margin-top:20px;}}
.route-map{width:100%; height:100%; position:relative; z-index:2;}
.route-map .path-draw{stroke-dasharray:900; stroke-dashoffset:900; animation:draw 2.6s cubic-bezier(.3,.8,.3,1) forwards .4s;}
@keyframes draw{to{stroke-dashoffset:0;}}
.route-map .pin{opacity:0; animation:popIn .5s ease forwards;}
.route-map .pin:nth-of-type(1){animation-delay:.9s;} .route-map .pin:nth-of-type(2){animation-delay:1.5s;} .route-map .pin:nth-of-type(3){animation-delay:2.1s;} .route-map .pin:nth-of-type(4){animation-delay:2.6s;}
@keyframes popIn{from{opacity:0; transform:scale(.4);} to{opacity:1; transform:scale(1);}}

/* holographic 3D compass */
.holo-compass{position:absolute; top:8%; right:8%; width:190px; height:190px; transform-style:preserve-3d; perspective:800px; z-index:3;}
.holo-ring{position:absolute; inset:0; border-radius:50%; border:1px solid rgba(216,190,140,.55); transform-style:preserve-3d;}
.holo-ring-1{animation:ringSpin1 9s linear infinite; border-color:rgba(216,190,140,.65);}
.holo-ring-2{inset:18px; border-color:rgba(255,255,255,.35); animation:ringSpin2 13s linear infinite reverse;}
.holo-ring-3{inset:36px; border-color:rgba(46,138,99,.6); animation:ringSpin1 16s linear infinite;}
@keyframes ringSpin1{0%{transform:rotateX(70deg) rotateZ(0deg);}100%{transform:rotateX(70deg) rotateZ(360deg);}}
@keyframes ringSpin2{0%{transform:rotateX(60deg) rotateY(20deg) rotateZ(0deg);}100%{transform:rotateX(60deg) rotateY(20deg) rotateZ(360deg);}}
.holo-core{position:absolute; inset:66px; border-radius:50%; background:radial-gradient(circle, rgba(255,255,255,.14), rgba(255,255,255,.02)); display:flex; align-items:center; justify-content:center; box-shadow:0 0 40px rgba(216,190,140,.35);}
.holo-core svg{width:34px; height:34px;}
.holo-tag{position:absolute; font-size:10px; font-weight:700; letter-spacing:.05em; color:var(--brass-light); background:rgba(10,44,34,.6); padding:3px 8px; border-radius:20px; border:1px solid rgba(216,190,140,.4);}
.holo-tag-1{top:-6px; left:50%; transform:translateX(-50%); animation:floatTag 4s ease-in-out infinite;}
.holo-tag-2{bottom:6px; left:-14px; animation:floatTag 4s ease-in-out infinite .6s;}
.holo-tag-3{bottom:6px; right:-14px; animation:floatTag 4s ease-in-out infinite 1.2s;}
.holo-tag-4{top:40%; right:-24px; animation:floatTag 4s ease-in-out infinite 1.8s;}
@keyframes floatTag{0%,100%{transform:translateY(0);} 50%{transform:translateY(-6px);}}
@media (max-width:980px){.holo-compass{width:130px;height:130px;top:0;right:6%;}}

.scroll-cue{position:absolute; left:50%; bottom:22px; transform:translateX(-50%); z-index:2;}
.scroll-cue span{display:block; width:22px; height:36px; border:1.5px solid rgba(255,255,255,.5); border-radius:14px; position:relative;}
.scroll-cue span::before{content:""; position:absolute; top:6px; left:50%; width:4px; height:8px; background:var(--brass-light); border-radius:2px; transform:translateX(-50%); animation:cueDrop 1.8s ease-in-out infinite;}
@keyframes cueDrop{0%{opacity:1; top:6px;} 70%{opacity:0; top:20px;} 100%{opacity:0; top:6px;}}

/* ---------- Trust strip ---------- */
.trust-strip{padding:26px 0; border-bottom:1px solid var(--line);}
.trust-inner{display:flex; align-items:center; gap:24px; flex-wrap:wrap; justify-content:space-between; font-size:12.5px; color:var(--ink-soft); font-weight:700; letter-spacing:.03em;}
.trust-cities{display:flex; gap:22px; flex-wrap:wrap; color:var(--forest);}

/* ---------- Sections ---------- */
.section{padding:96px 0;} .section-tight{padding:64px 0;}
@media (max-width:640px){.section{padding:60px 0;}}
.section-head{display:flex; justify-content:space-between; align-items:flex-end; gap:30px; margin-bottom:48px;}
@media (max-width:720px){.section-head{flex-direction:column; align-items:flex-start;}}
.section-tag{color:var(--brass); font-weight:700; font-size:13px; margin-bottom:12px; display:block;}
.section-head h2{font-size:clamp(28px,3.6vw,42px); max-width:640px;}
.section-head p{color:var(--ink-soft); margin-top:14px; max-width:520px; font-size:15.5px;}
.bg-forest{background:var(--forest-2); color:#fff;} .bg-forest h2,.bg-forest h3,.bg-forest h4{color:#fff;}
.bg-tint{background:var(--mint-tint);}

/* ---------- Filters ---------- */
.tour-toolbar{display:flex; gap:16px; flex-wrap:wrap; align-items:center; justify-content:space-between; margin-bottom:32px;}
.filters-bar{display:flex; gap:10px; flex-wrap:wrap;}
.chip{padding:9px 16px; border-radius:20px; border:1px solid var(--line-strong); background:#fff; font-size:13.5px; font-weight:600; color:var(--ink-soft); transition:all .2s;}
.chip:hover{border-color:var(--forest);} .chip.active{background:var(--forest); border-color:var(--forest); color:#fff;}
.select-field, .input-field, textarea.input-field{width:100%; padding:12px 14px; border:1px solid var(--line-strong); border-radius:var(--radius-s);
  background:#fff; font-family:var(--sans); font-size:14.5px; color:var(--ink); transition:border-color .2s, box-shadow .2s;}
.select-field:focus, .input-field:focus, textarea.input-field:focus{outline:none; border-color:var(--forest); box-shadow:0 0 0 3px rgba(31,109,76,.14);}
.field-label{display:block; font-size:12.5px; font-weight:700; color:var(--ink-soft); margin-bottom:7px; letter-spacing:.02em;}
.sort-select{max-width:210px;}

/* ---------- Package cards ---------- */
.tours-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:26px;}
@media (max-width:980px){.tours-grid{grid-template-columns:repeat(2,1fr);}}
@media (max-width:640px){.tours-grid{grid-template-columns:1fr;}}
.tour-card{background:#fff; border-radius:var(--radius-l); border:1px solid var(--line); overflow:hidden;
  transition:transform .4s cubic-bezier(.2,.8,.2,1), box-shadow .4s; display:flex; flex-direction:column; cursor:pointer;}
.tour-card:hover{box-shadow:var(--shadow-soft);}
.tour-card .thumb{height:190px; position:relative; overflow:hidden;}
.tour-card .thumb .badge{position:absolute; top:14px; left:14px; background:rgba(255,255,255,.92); color:var(--forest); font-size:11.5px; font-weight:700; padding:6px 11px; border-radius:20px; z-index:2;}
.tour-card .thumb .dur{position:absolute; bottom:14px; right:14px; background:rgba(10,44,34,.82); color:#fff; font-size:12px; font-weight:600; padding:5px 11px; border-radius:20px; z-index:2;}
.tour-card .body{padding:22px; display:flex; flex-direction:column; gap:10px; flex:1;}
.tour-card .region{font-size:12px; color:var(--brass); font-weight:700;}
.tour-card h3{font-size:19px; line-height:1.3;}
.tour-card .desc{font-size:13.8px; color:var(--ink-soft); flex:1;}
.tour-card .meta-row{display:flex; align-items:center; justify-content:space-between; padding-top:12px; border-top:1px solid var(--line); margin-top:4px;}
.tour-card .price b{font-family:var(--serif); font-size:21px; color:var(--forest-2);}
.tour-card .price span{font-size:11.5px; color:var(--ink-soft); display:block;}
.rating{display:flex; align-items:center; gap:5px; font-size:13px; color:var(--ink-soft);}
.rating svg{width:14px;height:14px;fill:var(--brass);}
.empty-state{text-align:center; padding:70px 20px; color:var(--ink-soft);}

/* ---------- USPs ---------- */
.usp-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:30px;}
@media (max-width:900px){.usp-grid{grid-template-columns:repeat(2,1fr);}}
@media (max-width:560px){.usp-grid{grid-template-columns:1fr;}}
.usp{padding-top:22px; border-top:2px solid var(--forest);}
.usp .ic{width:38px; height:38px; margin-bottom:18px; color:var(--verdant);}
.usp h4{font-size:17.5px; margin-bottom:8px;} .usp p{font-size:14px; color:var(--ink-soft);}

/* ---------- Testimonials ---------- */
.testi-track{display:flex; gap:22px; overflow-x:auto; scroll-snap-type:x mandatory; padding-bottom:12px; margin:0 -28px; padding-left:28px; padding-right:28px;}
@media (max-width:480px){.testi-track{margin:0 -20px; padding-left:20px; padding-right:20px; gap:16px;}}
.testi-track::-webkit-scrollbar{display:none;}
.testi-card{scroll-snap-align:start; flex:0 0 min(380px,84vw); background:#fff; border:1px solid var(--line); border-radius:var(--radius-l); padding:28px; display:flex; flex-direction:column; gap:16px;}
.testi-stars{color:var(--brass); font-size:14px; letter-spacing:2px;}
.testi-card p.quote{color:var(--ink); line-height:1.7; font-style:italic; font-family:var(--serif); font-size:18px;}
.testi-who{display:flex; align-items:center; gap:12px; margin-top:auto;}
.avatar-ring{width:44px; height:44px; border-radius:50%; background:var(--mint-tint); display:flex; align-items:center; justify-content:center; font-family:var(--serif); color:var(--forest); font-weight:600; flex:none;}
.testi-who b{font-size:14.5px; display:block;} .testi-who span{font-size:12.5px; color:var(--ink-soft);}

/* ---------- FAQ ---------- */
.faq-wrap{max-width:820px;}
.faq-item{border-bottom:1px solid var(--line);}
.faq-q{width:100%; text-align:left; padding:20px 4px; display:flex; justify-content:space-between; align-items:center; gap:14px; background:none; border:none; font-size:15.5px; font-weight:600; color:var(--ink);}
.faq-a{max-height:0; overflow:hidden; transition:max-height .35s ease;}
.faq-a p{padding:0 4px 20px; font-size:14.3px; color:var(--ink-soft); line-height:1.7;}
.faq-icon{transition:transform .3s; flex:none;}
.faq-item.open .faq-icon{transform:rotate(45deg);} .faq-item.open .faq-a{max-height:400px;}

/* ---------- Forms / detail grid ---------- */
.detail-grid{display:grid; grid-template-columns:1fr 380px; gap:44px; align-items:start;}
@media (max-width:980px){.detail-grid{grid-template-columns:1fr;}}
.sticky-panel{position:sticky; top:110px;}
.card-panel{background:#fff; border:1px solid var(--line); border-radius:var(--radius-l); padding:26px;}
.form-grid{display:grid; grid-template-columns:1fr 1fr; gap:18px;}
@media (max-width:560px){.form-grid{grid-template-columns:1fr;}}
.form-grid .full{grid-column:1/-1;}

/* ---------- Package detail modal ---------- */
.pkg-modal{position:fixed; inset:0; z-index:2500; display:none;}
.pkg-modal.open{display:block;}
.pkg-modal-backdrop{position:absolute; inset:0; background:rgba(10,20,16,.6); backdrop-filter:blur(3px); opacity:0; transition:opacity .3s;}
.pkg-modal.open .pkg-modal-backdrop{opacity:1;}
.pkg-modal-panel{position:absolute; right:0; top:0; bottom:0; width:min(640px,100%); background:var(--paper); overflow-y:auto;
  transform:translateX(100%); transition:transform .4s cubic-bezier(.2,.8,.2,1); padding-bottom:60px;}
.pkg-modal.open .pkg-modal-panel{transform:translateX(0);}
.pkg-modal-hero{height:220px; position:relative;}
.pkg-modal-hero .close-btn{position:absolute; top:18px; right:18px; width:40px; height:40px; border-radius:50%; background:rgba(255,255,255,.9); display:flex; align-items:center; justify-content:center; z-index:3;}
.pkg-modal-body{padding:28px;}
.pkg-modal-body h2{font-size:26px; margin-bottom:8px;}
.route-select-row{display:grid; grid-template-columns:1fr auto 1fr; gap:10px; align-items:end;}
@media (max-width:420px){.route-select-row{grid-template-columns:1fr;}}
.route-arrow{display:flex; align-items:center; justify-content:center; height:44px; color:var(--brass);}
.route-arrow svg{width:20px; height:20px; flex:none;}
@media (max-width:420px){.route-arrow{height:24px; transform:rotate(90deg);}}
.price-display{margin-top:22px; padding-top:20px; border-top:1px dashed var(--line-strong); display:flex; align-items:baseline; justify-content:space-between;}
.price-display .amt{font-family:var(--serif); font-size:34px; color:var(--forest-2);}
.price-display .amt small{font-size:13px; font-family:var(--sans); color:var(--ink-soft); font-weight:600;}
.quick-facts{display:flex; margin:22px 0; border:1px solid var(--line); border-radius:var(--radius-m); overflow:hidden;}
.qf{flex:1; padding:14px 10px; text-align:center; border-right:1px solid var(--line);}
.qf:last-child{border-right:none;}
.qf b{display:block; font-family:var(--serif); font-size:17px; color:var(--forest-2);}
.qf span{font-size:10.5px; color:var(--ink-soft);}
.io-grid{display:grid; grid-template-columns:1fr 1fr; gap:24px; margin-top:24px;}
@media (max-width:480px){.io-grid{grid-template-columns:1fr;}}
.io-col h4{margin-bottom:12px; font-size:15px;} .io-col.inc h4{color:var(--verdant);} .io-col.exc h4{color:#a3372c;}
.io-list li{display:flex; gap:9px; font-size:13.6px; color:var(--ink-soft); margin-bottom:10px; align-items:flex-start;}
.io-list li svg{flex:none; margin-top:2px; width:15px; height:15px;}
.highlight-list{margin-top:20px; display:flex; flex-direction:column; gap:10px;}
.highlight-list li{display:flex; gap:10px; font-size:14px; color:var(--ink-soft); align-items:flex-start;}
.highlight-list li svg{flex:none; margin-top:3px; width:16px; height:16px; color:var(--verdant);}
.pkg-cta-row{display:flex; flex-direction:column; gap:10px; margin-top:24px;}
.help-note{font-size:12.5px; color:var(--ink-soft); background:var(--mint-tint); border-radius:var(--radius-s); padding:12px 14px; margin-top:16px;}

/* ---------- WhatsApp float ---------- */
.wa-float{position:fixed; right:22px; bottom:calc(22px + env(safe-area-inset-bottom,0px)); z-index:900; width:60px; height:60px; border-radius:50%;
  background:#1f6d4c; color:#fff; display:flex; align-items:center; justify-content:center; box-shadow:0 14px 34px -10px rgba(14,59,46,.55); animation:pulseWA 2.8s ease-in-out infinite;}
@keyframes pulseWA{0%,100%{box-shadow:0 14px 34px -10px rgba(14,59,46,.55);} 50%{box-shadow:0 14px 34px -6px rgba(31,109,76,.75), 0 0 0 8px rgba(31,109,76,.12);}}

/* ---------- Footer ---------- */
.site-footer{background:var(--forest-2); color:rgba(255,255,255,.75); padding:76px 0 30px;}
.footer-grid{display:grid; grid-template-columns:1.6fr 1fr 1fr 1.2fr; gap:40px; padding-bottom:50px; border-bottom:1px solid rgba(255,255,255,.12);}
@media (max-width:820px){.footer-grid{grid-template-columns:1fr 1fr;}}
@media (max-width:520px){.footer-grid{grid-template-columns:1fr;}}
.site-footer h5{color:#fff; font-size:13px; font-weight:700; letter-spacing:.04em; margin-bottom:18px;}
.site-footer ul li{margin-bottom:11px; font-size:14px;} .site-footer ul a:hover{color:#fff;}
.footer-bottom{display:flex; justify-content:space-between; padding-top:26px; font-size:12.5px; flex-wrap:wrap; gap:10px;}

/* ---------- Toast ---------- */
.toast{position:fixed; top:96px; right:24px; z-index:3000; background:var(--forest); color:#fff; padding:16px 22px; border-radius:var(--radius-m);
  box-shadow:var(--shadow-hard); font-size:14px; font-weight:600; display:flex; gap:10px; align-items:center; transform:translateX(140%); transition:transform .4s cubic-bezier(.2,.8,.2,1);}
.toast.show{transform:translateX(0);} .toast.error{background:#a3372c;}

/* ---------- Group batches (added for admin-editable group dates) ---------- */
.batch-flag{margin-top:2px; font-size:11.5px; font-weight:700; color:var(--verdant); display:flex; align-items:center; gap:6px;}
.batch-flag svg{width:14px; height:14px; flex:none;}
.batch-flag-empty{color:var(--ink-soft); font-weight:600;}
.gdate-card{border:1px solid var(--line); border-radius:var(--radius-m); padding:14px 16px; display:flex; align-items:center; justify-content:space-between; gap:14px; margin-bottom:10px; transition:border-color .2s;}
.gdate-card:hover{border-color:var(--verdant);}
.gdate-card .gd-date{font-weight:700; font-size:14px; color:var(--forest-2);}
.gdate-card .gd-seats{font-size:12px; color:var(--ink-soft); margin-top:3px;}
.gdate-card .gd-seats.low{color:#a3372c; font-weight:700;}

/* ---------- Tablet-specific pass (769–1023px) ---------- */
@media (max-width:1023px) and (min-width:769px){
  .hero{padding:150px 0 70px;}
  .hero-grid{gap:40px;}
  .holo-compass{width:150px; height:150px;}
  .section{padding:76px 0;}
  .footer-grid{grid-template-columns:1fr 1fr;}
}
@media (max-width:768px){
  .container{padding:0 18px;}
  .quick-facts{flex-wrap:wrap;}
  .qf{flex:1 1 33%; min-width:90px;}
  .pkg-modal-panel{width:100%;}
  .route-select-row{gap:8px;}
}

/* ---------- Admin dashboard (admin.html) ---------- */
.admin-shell{display:grid; grid-template-columns:250px 1fr; min-height:100vh; background:var(--paper);}
@media (max-width:860px){.admin-shell{grid-template-columns:1fr;}}
.admin-side{background:var(--forest-2); color:#fff; padding:26px 18px; position:sticky; top:0; height:100vh; overflow-y:auto;}
@media (max-width:860px){.admin-side{position:static; height:auto;}}
.admin-side .brand{color:#fff; padding:0 8px 22px; margin-bottom:14px; border-bottom:1px solid rgba(255,255,255,.15);}
.admin-nav button{width:100%; text-align:left; padding:12px 14px; border-radius:var(--radius-s); background:none; border:none; color:rgba(255,255,255,.7); font-weight:600; font-size:14px; display:flex; align-items:center; gap:11px; margin-bottom:3px;}
.admin-nav button svg{width:18px;height:18px;flex:none;}
.admin-nav button:hover{background:rgba(255,255,255,.08); color:#fff;}
.admin-nav button.active{background:var(--verdant); color:#fff;}
.admin-main{padding:34px 38px;}
@media (max-width:640px){.admin-main{padding:22px 16px;} .admin-topbar{flex-direction:column; align-items:flex-start;}}
.admin-topbar{display:flex; justify-content:space-between; align-items:center; margin-bottom:28px; flex-wrap:wrap; gap:14px;}
.admin-topbar h1{font-size:25px;}
.stat-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:16px; margin-bottom:32px;}
@media (max-width:900px){.stat-grid{grid-template-columns:repeat(2,1fr);}}
.stat-card{background:#fff; border:1px solid var(--line); border-radius:var(--radius-m); padding:20px;}
.stat-card b{font-family:var(--serif); font-size:28px; display:block; color:var(--forest-2);}
.stat-card span{font-size:12px; color:var(--ink-soft);}
.admin-card{background:#fff; border:1px solid var(--line); border-radius:var(--radius-m); padding:22px; margin-bottom:20px;}
.admin-card-head{display:flex; justify-content:space-between; align-items:center; margin-bottom:16px; gap:12px; flex-wrap:wrap;}
.admin-card-head h3{font-size:17px;}
.subitem-row{border:1px solid var(--line); border-radius:var(--radius-s); padding:14px; margin-bottom:10px; background:var(--paper-dim);}
.subitem-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(130px,1fr)); gap:10px; margin-bottom:10px;}
.table-wrap{overflow-x:auto; border-radius:var(--radius-m);}
.admin-table{width:100%; border-collapse:collapse; background:#fff; border:1px solid var(--line); border-radius:var(--radius-m); overflow:hidden;}
.admin-table th{text-align:left; font-size:11px; color:var(--ink-soft); padding:11px 14px; background:var(--paper-dim); font-weight:700; border-bottom:1px solid var(--line); white-space:nowrap;}
.admin-table td{padding:12px 14px; font-size:13.5px; border-bottom:1px solid var(--line); vertical-align:top;}
.admin-table tr:last-child td{border-bottom:none;}
.badge-pill{display:inline-block; padding:4px 11px; border-radius:20px; font-size:11px; font-weight:700; white-space:nowrap;}
.badge-active{background:var(--mint-tint); color:var(--forest);}
.badge-expired{background:#EAE7DD; color:var(--ink-soft);}
.badge-soon{background:#FCEFD9; color:#8a5a12;}
.badge-off{background:#f6dede; color:#a3372c;}
.icon-link{color:var(--ink-soft); font-size:12.5px; font-weight:700; background:none; border:none; display:inline-flex; align-items:center; gap:5px;}
.icon-link.danger{color:#a3372c;}
.icon-link svg{width:14px;height:14px;}
.login-screen{min-height:100vh; display:flex; align-items:center; justify-content:center; background:var(--forest-2); padding:20px;}
.login-box{background:#fff; border-radius:var(--radius-l); padding:40px; max-width:400px; width:100%; text-align:center;}
.login-box .brand{justify-content:center; margin-bottom:8px;}
.login-box p{color:var(--ink-soft); font-size:14px; margin:10px 0 24px;}
.toggle-switch{position:relative; display:inline-flex; align-items:center; gap:8px; cursor:pointer; font-size:13px; font-weight:600; color:var(--ink-soft);}
.toggle-switch input{position:absolute; opacity:0; width:0; height:0;}
.toggle-track{width:38px; height:22px; border-radius:20px; background:var(--line-strong); position:relative; transition:background .2s; flex:none;}
.toggle-track::after{content:""; position:absolute; top:2px; left:2px; width:18px; height:18px; border-radius:50%; background:#fff; transition:transform .2s;}
.toggle-switch input:checked + .toggle-track{background:var(--verdant);}
.toggle-switch input:checked + .toggle-track::after{transform:translateX(16px);}