/* ============================================================
   YATTRALAY — Global Stylesheet v3
   Font: Apple SF Pro system stack
   ============================================================ */
:root {
  --font: -apple-system, BlinkMacSystemFont, 'SF Pro Display', 'SF Pro Text', 'Helvetica Neue', Arial, sans-serif;
  --black: #000000; --gray-900: #1d1d1f; --gray-700: #3a3a3c; --gray-500: #6e6e73;
  --gray-300: #c7c7cc; --gray-200: #e5e5ea; --gray-100: #f5f5f7; --gray-50: #fbfbfd;
  --white: #ffffff; --gold: #b8964a; --gold-light: #d4af72;
  --success: #28a745; --error: #dc3545; --whatsapp: #25d366;
  --saffron: #e8621a; --saffron-light: #f0874a;
  --max-w: 1080px; --nav-h: 52px; --radius: 10px; --radius-sm: 6px;
  --ease: cubic-bezier(0.4,0,0.2,1); --t: all 0.25s cubic-bezier(0.4,0,0.2,1); --t-slow: all 0.5s cubic-bezier(0.4,0,0.2,1);
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:var(--font);font-size:17px;line-height:1.47;color:var(--gray-900);background:var(--white);-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
button{font-family:var(--font);cursor:pointer;border:none;background:none}
input,select,textarea{font-family:var(--font)}
ul,ol{list-style:none}
h1{font-size:clamp(2rem,5vw,3.2rem);font-weight:700;line-height:1.07;letter-spacing:-0.025em;color:var(--gray-900)}
h2{font-size:clamp(1.4rem,3vw,2.2rem);font-weight:700;line-height:1.1;letter-spacing:-0.02em;color:var(--gray-900)}
h3{font-size:clamp(1.1rem,2vw,1.4rem);font-weight:600;line-height:1.2;letter-spacing:-0.01em}
h4{font-size:1rem;font-weight:600;line-height:1.3}
p{font-size:0.94rem;line-height:1.6;color:var(--gray-500)}
.container{width:100%;max-width:var(--max-w);margin:0 auto;padding:0 40px}
@media(max-width:768px){.container{padding:0 20px}}
.section{padding:48px 0}.section-sm{padding:36px 0}.section-xs{padding:24px 0}
@media(max-width:768px){.section{padding:36px 0}.section-sm{padding:24px 0}.section-xs{padding:16px 0}}
.divider{height:1px;background:var(--gray-200);margin:32px 0}
.eyebrow{display:block;font-size:0.68rem;font-weight:600;letter-spacing:0.1em;text-transform:uppercase;color:var(--gold);margin-bottom:8px}
.section-title{text-align:center;margin-bottom:32px}
.section-title h2{margin-bottom:8px}
.section-title p{max-width:520px;margin:0 auto;font-size:0.9rem}

/* ── NAV ── */
.nav{position:fixed;top:0;left:0;right:0;z-index:1000;height:var(--nav-h);background:rgba(255,255,255,0.82);backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);border-bottom:1px solid rgba(0,0,0,0.08);transition:var(--t)}
.nav-inner{max-width:var(--max-w);margin:0 auto;padding:0 40px;height:100%;display:flex;align-items:center;justify-content:center;gap:64px;position:relative}
.nav-logo img{height:22px;width:auto}
.nav-menu{display:flex;align-items:center;gap:32px}
.nav-menu a{font-size:0.78rem;font-weight:400;color:var(--gray-900);opacity:0.8;transition:var(--t)}
.nav-menu a:hover,.nav-menu a.active{opacity:1}
.nav-search-btn{position:absolute;right:40px;width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--gray-900);cursor:pointer;transition:var(--t);opacity:0.8}
.nav-search-btn:hover{opacity:1;background:rgba(0,0,0,0.05)}
.nav-search-btn svg{width:16px;height:16px}
.nav-hamburger{display:none;position:absolute;right:16px;flex-direction:column;gap:5px;padding:8px;cursor:pointer}
.nav-hamburger span{display:block;width:20px;height:1.5px;background:var(--gray-900);transition:var(--t)}
.nav-hamburger.open span:nth-child(1){transform:rotate(45deg) translate(4.5px,4.5px)}
.nav-hamburger.open span:nth-child(2){opacity:0}
.nav-hamburger.open span:nth-child(3){transform:rotate(-45deg) translate(4.5px,-4.5px)}
@media(max-width:768px){
  .nav-inner{justify-content:center;gap:0}
  .nav-logo{margin:0 auto}
  .nav-menu{display:none;position:fixed;top:var(--nav-h);left:0;right:0;background:rgba(255,255,255,0.97);backdrop-filter:blur(20px);flex-direction:column;padding:24px 20px;gap:20px;border-bottom:1px solid var(--gray-200);z-index:999}
  .nav-menu.open{display:flex}
  .nav-menu a{font-size:1rem}
  .nav-hamburger{display:flex}
  .nav-search-btn{right:48px}
}

/* ── SEARCH ── */
.search-overlay{position:fixed;inset:0;z-index:2000;background:rgba(255,255,255,0.96);backdrop-filter:blur(20px);display:flex;flex-direction:column;align-items:center;padding-top:80px;opacity:0;pointer-events:none;transition:var(--t)}
.search-overlay.open{opacity:1;pointer-events:all}
.search-overlay-inner{width:100%;max-width:560px;padding:0 20px}
.search-close{position:absolute;top:16px;right:40px;width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--gray-500);cursor:pointer;transition:var(--t)}
.search-close:hover{background:var(--gray-100);color:var(--gray-900)}
.search-input-wrap{display:flex;align-items:center;gap:12px;border-bottom:1px solid var(--gray-300);padding-bottom:8px;margin-bottom:16px}
.search-input-wrap svg{width:18px;height:18px;color:var(--gray-300);flex-shrink:0}
.search-input{flex:1;border:none;outline:none;background:transparent;font-size:1.1rem;color:var(--gray-900);font-family:var(--font)}
.search-input::placeholder{color:var(--gray-300)}
.search-results{max-height:360px;overflow-y:auto}
.search-result-item{padding:12px 8px;border-bottom:1px solid var(--gray-100);cursor:pointer;transition:var(--t);display:flex;align-items:center;justify-content:space-between}
.search-result-item:hover{background:var(--gray-50)}
.search-result-item h4{font-size:0.88rem;font-weight:500;color:var(--gray-900);margin-bottom:2px}
.search-result-item p{font-size:0.75rem;color:var(--gray-500);margin:0}
.search-result-item svg{width:13px;height:13px;color:var(--gray-300);flex-shrink:0}
.search-hint{font-size:0.78rem;color:var(--gray-300);text-align:center;padding:32px 0}

/* ── LANG TOGGLE ── */
.lang-toggle{position:fixed;bottom:24px;right:24px;z-index:500;display:flex;background:rgba(255,255,255,0.9);backdrop-filter:blur(10px);border:1px solid var(--gray-200);border-radius:20px;overflow:hidden;box-shadow:0 2px 12px rgba(0,0,0,0.08)}
.lang-btn{padding:6px 14px;font-size:0.68rem;font-weight:600;font-family:var(--font);letter-spacing:0.05em;color:var(--gray-500);transition:var(--t);cursor:pointer;border:none;background:none}
.lang-btn.active{background:var(--gray-900);color:var(--white)}
@media(max-width:768px){.lang-toggle{bottom:16px;right:16px}}

/* ── BUTTONS ── */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 24px;font-family:var(--font);font-size:0.88rem;font-weight:400;letter-spacing:-0.01em;border-radius:980px;transition:var(--t);cursor:pointer;border:1px solid transparent;white-space:nowrap}
.btn svg{width:15px;height:15px;flex-shrink:0}
.btn-primary{background:var(--gray-900);color:var(--white);border-color:var(--gray-900)}
.btn-primary:hover{background:var(--black)}
.btn-outline{background:transparent;color:var(--gray-900);border-color:var(--gray-300)}
.btn-outline:hover{border-color:var(--gray-900)}
.btn-whatsapp{background:var(--whatsapp);color:var(--white);border-color:var(--whatsapp)}
.btn-whatsapp:hover{background:#20b858}
.btn-gold{background:var(--gold);color:var(--white);border-color:var(--gold)}
.btn-gold:hover{background:var(--gold-light)}
.btn-sm{padding:8px 18px;font-size:0.8rem}
.btn-lg{padding:16px 32px;font-size:0.95rem}
.cta-btns{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap}

/* ── BANNER GRID ── */
.banner-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
@media(max-width:768px){.banner-grid{grid-template-columns:repeat(2,1fr);gap:8px}}
.banner-card{border-radius:var(--radius);overflow:hidden;cursor:pointer;transition:var(--t-slow);display:flex;flex-direction:column;background:var(--gray-100)}
.banner-card:hover{transform:scale(1.02);box-shadow:0 12px 32px rgba(0,0,0,0.12)}
.banner-card img{width:100%;aspect-ratio:3/4;object-fit:cover;transition:var(--t-slow)}

/* Banner status buttons */
.banner-status{display:block;width:100%;padding:11px 16px;text-align:center;font-size:0.72rem;font-weight:600;letter-spacing:0.04em;transition:var(--t);cursor:pointer;border:none;font-family:var(--font)}
.banner-status.open{background:var(--saffron);color:var(--white);animation:pulse-booking 2s infinite}
.banner-status.open:hover{background:var(--saffron-light)}
.banner-status.soon{background:#4a7fa5;color:var(--white);cursor:default}
@keyframes pulse-booking{0%,100%{opacity:1}50%{opacity:0.75}}

/* ── YEAR LINK BLOCK ── */
.year-link-block{display:flex;align-items:center;justify-content:space-between;padding:24px 32px;background:var(--gray-100);border-radius:var(--radius);cursor:pointer;transition:var(--t);text-decoration:none;color:inherit}
.year-link-block:hover{background:var(--gray-200)}
.year-link-block h3{font-size:1rem;font-weight:600;color:var(--gray-900);margin-bottom:2px}
.year-link-block p{font-size:0.82rem;color:var(--gray-500);margin:0}
.year-link-block svg{width:16px;height:16px;color:var(--gray-500);flex-shrink:0}

/* ── TOUR HERO ── */
.tour-hero{position:relative;width:100%;height:56vh;min-height:340px;max-height:500px;overflow:hidden}
.tour-hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 30%}
.tour-hero-overlay{position:absolute;inset:0;background:linear-gradient(to bottom,rgba(0,0,0,0.18) 0%,rgba(0,0,0,0.08) 45%,rgba(0,0,0,0.72) 100%)}
.tour-hero-content{position:absolute;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:var(--max-w);padding:28px 40px}
.hero-eyebrow{font-size:0.65rem;font-weight:500;letter-spacing:0.08em;text-transform:uppercase;color:rgba(255,255,255,0.65);margin-bottom:6px}
.tour-hero-content h1{color:var(--white);margin-bottom:6px}
.tour-hero-content .hero-dates{font-size:0.88rem;color:rgba(255,255,255,0.8)}
@media(max-width:768px){.tour-hero{height:44vh;min-height:260px}.tour-hero-content{padding:20px}.tour-hero-content h1{font-size:1.5rem}}

/* ── HIGHLIGHTS GRID ── */
.highlights-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(135px,1fr));gap:8px;max-width:900px;margin:0 auto}
.highlight-card{background:var(--gray-50);border-radius:var(--radius-sm);padding:16px;text-align:center;transition:var(--t)}
.highlight-card:hover{background:var(--white);box-shadow:0 2px 12px rgba(0,0,0,0.06)}
.highlight-card svg{width:20px;height:20px;color:var(--gold);margin:0 auto 8px}
.highlight-card h4{font-size:0.75rem;font-weight:600;color:var(--gray-900);margin-bottom:2px}
.highlight-card p{font-size:0.65rem;color:var(--gray-500);margin:0}

/* ── PHASES / DAY CARDS ── */
.phases-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(175px,1fr));gap:8px;max-width:900px;margin:0 auto}
.phase-card{background:var(--gray-50);border:1px solid var(--gray-200);border-radius:var(--radius-sm);padding:16px;transition:var(--t)}
.phase-card:hover{background:var(--white);border-color:var(--gray-300)}
.phase-num{font-size:0.6rem;font-weight:600;letter-spacing:0.08em;color:var(--gold);text-transform:uppercase;margin-bottom:3px}
.phase-card h4{font-size:0.82rem;font-weight:600;color:var(--gray-900);margin-bottom:3px}
.phase-card p{font-size:0.7rem;color:var(--gray-500);margin:0;line-height:1.4}

/* ── ROUTE MAP ── */
.route-map{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;padding:20px 0}
.route-stop{display:flex;flex-direction:column;align-items:center;text-align:center;gap:5px}
.route-dot{width:8px;height:8px;border-radius:50%;background:var(--gray-900)}
.route-dot.gold{background:var(--gold);box-shadow:0 0 0 2px rgba(184,150,74,0.2);width:11px;height:11px}
.route-name{font-size:0.6rem;font-weight:500;color:var(--gray-700);max-width:56px}
.route-line{flex:1;min-width:10px;height:1px;background:var(--gray-200);margin-bottom:18px}
@media(max-width:768px){
  .route-map{flex-direction:column;align-items:flex-start;gap:0;padding:0}
  .route-stop{flex-direction:row;align-items:center;gap:12px;padding:8px 0;text-align:left}
  .route-dot,.route-dot.gold{flex-shrink:0}
  .route-name{max-width:none;font-size:0.82rem}
  .route-line{width:1px;height:20px;min-width:1px;margin:0 0 0 5px;align-self:stretch}
}

/* ── ACCORDION (day-wise + info sections) ── */
.acc-list{border:1px solid var(--gray-200);border-radius:var(--radius-sm);overflow:hidden}
.acc-item{border-bottom:1px solid var(--gray-200)}
.acc-item:last-child{border-bottom:none}
.acc-btn{width:100%;padding:14px 20px;display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:0.88rem;font-weight:600;color:var(--gray-900);background:var(--white);cursor:pointer;text-align:left;font-family:var(--font);transition:var(--t)}
.acc-btn:hover{background:var(--gray-50)}
.acc-btn .acc-day{font-size:0.68rem;font-weight:600;color:var(--gold);text-transform:uppercase;letter-spacing:0.06em;flex-shrink:0}
.acc-btn .acc-dest{flex:1;font-size:0.85rem;font-weight:600;color:var(--gray-900)}
.acc-btn svg{width:14px;height:14px;color:var(--gray-500);flex-shrink:0;transition:var(--t)}
.acc-btn.open svg{transform:rotate(180deg)}
.acc-body{display:none;padding:12px 20px 16px;background:var(--gray-50)}
.acc-body.show{display:block}
.acc-body ul{padding-left:16px}
.acc-body ul li{font-size:0.82rem;color:var(--gray-700);line-height:1.65;margin-bottom:4px;list-style:disc}
.acc-body p{font-size:0.82rem;color:var(--gray-700);line-height:1.65;margin-bottom:6px}

/* Show more/less */
.show-more-btn{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;padding:12px;font-size:0.8rem;font-weight:500;color:var(--gold);background:var(--gray-50);border:none;border-top:1px solid var(--gray-200);cursor:pointer;font-family:var(--font);transition:var(--t)}
.show-more-btn:hover{background:var(--white)}
.show-more-btn svg{width:13px;height:13px;transition:var(--t)}
.show-more-btn.open svg{transform:rotate(180deg)}
.acc-hidden{display:none}
.acc-hidden.show{display:block}

/* ── PRICING ── */
.pricing-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(148px,1fr));gap:8px;margin-bottom:12px;max-width:820px;margin-left:auto;margin-right:auto}
.pricing-card{border:1px solid var(--gray-200);border-radius:var(--radius-sm);padding:16px;text-align:center;transition:var(--t);cursor:pointer}
.pricing-card:hover{border-color:var(--gray-500)}
.pricing-card.sel{border-color:var(--gray-900);background:var(--gray-900)}
.pricing-card.sel .pricing-label,.pricing-card.sel .pricing-note{color:rgba(255,255,255,0.6)}
.pricing-card.sel .pricing-amount{color:var(--white)}
.pricing-label{font-size:0.65rem;font-weight:500;color:var(--gray-500);text-transform:uppercase;letter-spacing:0.04em;margin-bottom:8px}
.pricing-amount{font-size:1.2rem;font-weight:700;color:var(--gray-900);letter-spacing:-0.02em}
.pricing-amount sup{font-size:0.65rem}
.pricing-note{font-size:0.62rem;color:var(--gray-500);margin-top:3px}
.pricing-gst{font-size:0.72rem;color:var(--gray-500);padding:4px 0;text-align:center}

/* ── INCLUSIONS / EXCLUSIONS ── */
.inc-exc-grid{display:grid;grid-template-columns:1fr 1fr;gap:32px}
@media(max-width:640px){.inc-exc-grid{grid-template-columns:1fr}}
.inc-list,.exc-list{display:flex;flex-direction:column;gap:8px}
.inc-item,.exc-item{display:flex;align-items:flex-start;gap:8px;font-size:0.82rem;color:var(--gray-700);line-height:1.5}
.inc-item svg{color:var(--success);flex-shrink:0;margin-top:2px;width:13px;height:13px}
.exc-item svg{color:var(--error);flex-shrink:0;margin-top:2px;width:13px;height:13px}

/* ── INFO BOX ── */
.info-box{background:#fff8e6;border:1px solid #f0d080;border-radius:var(--radius-sm);padding:16px;margin-bottom:12px}
.info-box h4{font-size:0.82rem;font-weight:600;color:var(--gray-900);margin-bottom:8px}
.info-box p,.info-box li{font-size:0.78rem;color:var(--gray-700);line-height:1.6}
.info-box ul{padding-left:16px}
.info-box ul li{margin-bottom:3px;list-style:disc}

/* ── CTA SECTION ── */
.cta-section{background:var(--gray-100);border-radius:var(--radius);padding:48px 40px;text-align:center}
.cta-section h2{margin-bottom:8px}
.cta-section p{max-width:440px;margin:0 auto 32px;font-size:0.9rem}
@media(max-width:768px){.cta-section{padding:32px 20px}}

/* ── STICKY CTA ── */
.sticky-cta{position:sticky;bottom:0;z-index:200;background:rgba(255,255,255,0.92);backdrop-filter:saturate(180%) blur(16px);border-top:1px solid var(--gray-200);padding:12px 40px;display:flex;align-items:center;justify-content:center;gap:12px;transition:opacity 0.3s ease,transform 0.3s ease}
.sticky-cta.hidden-cta{opacity:0;pointer-events:none;transform:translateY(100%)}
@media(max-width:640px){.sticky-cta{flex-direction:column;padding:12px 20px}.sticky-cta .btn{width:100%}}

/* ── FOUNDER LETTER ── */
.founder-letter{background:var(--gray-50);border-radius:var(--radius-sm);padding:32px;font-style:italic}
.founder-letter p{font-size:0.95rem;line-height:1.8;color:var(--gray-700);margin-bottom:16px}
.founder-letter .signature{font-weight:600;font-style:normal;font-size:0.88rem;color:var(--gray-900)}

/* ── FOOTER ── */
.footer{background:var(--gray-900);color:var(--white);padding:32px 0}
.footer-inner{max-width:var(--max-w);margin:0 auto;padding:0 40px;display:flex;flex-direction:column;align-items:center;gap:16px}
.footer-logo img{height:20px;filter:brightness(0) invert(1)}
.footer-social{display:flex;align-items:center;gap:20px}
.footer-social a{width:34px;height:34px;border-radius:50%;border:1px solid rgba(255,255,255,0.15);color:rgba(255,255,255,0.6);display:flex;align-items:center;justify-content:center;transition:var(--t)}
.footer-social a:hover{background:rgba(255,255,255,0.1);border-color:rgba(255,255,255,0.35);color:var(--white)}
.footer-social a svg{width:14px;height:14px}
.footer-copy{font-size:0.68rem;color:rgba(255,255,255,0.35);text-align:center}
@media(max-width:768px){.footer-inner{padding:0 20px}}

/* ── SOCIAL CTA ── */
.social-cta{text-align:center;padding:64px 40px;border-top:1px solid var(--gray-200)}
.social-cta h2{margin-bottom:8px}
.social-cta>p{color:var(--gray-500);margin-bottom:40px;font-size:0.9rem}
.social-cta-row{display:flex;justify-content:center;gap:48px;flex-wrap:wrap}
.social-cta-item{display:flex;flex-direction:column;align-items:center;gap:8px;color:var(--gray-900);transition:var(--t);cursor:pointer;text-decoration:none}
.social-cta-item:hover{transform:translateY(-3px)}
.social-icon-wrap{width:52px;height:52px;border-radius:50%;background:var(--gray-100);display:flex;align-items:center;justify-content:center;transition:var(--t)}
.social-cta-item:hover .social-icon-wrap{background:var(--gray-900);color:var(--white)}
.social-icon-wrap svg{width:20px;height:20px}
.social-cta-item span{font-size:0.7rem;font-weight:500;letter-spacing:0.02em}

/* ── BOOKING PAGE ── */
.booking-nav{position:sticky;top:0;z-index:100;background:rgba(255,255,255,0.92);backdrop-filter:saturate(180%) blur(20px);border-bottom:1px solid var(--gray-200);padding:12px 40px;display:flex;align-items:center;justify-content:space-between}
.booking-nav img{height:20px}
.booking-back{font-size:0.78rem;color:var(--gray-500);display:flex;align-items:center;gap:4px;transition:var(--t)}
.booking-back:hover{color:var(--gray-900)}
.booking-back svg{width:14px;height:14px}
.booking-body{max-width:680px;margin:0 auto;padding:40px}
.booking-hero-text{text-align:center;margin-bottom:40px}
.booking-hero-text h1{font-size:clamp(1.6rem,4vw,2.4rem);margin-top:4px}
@media(max-width:768px){.booking-nav{padding:12px 16px}.booking-body{padding:24px 16px}}

.bk-section{background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius);padding:24px;margin-bottom:12px}
.bk-section-label{font-size:0.6rem;font-weight:600;letter-spacing:0.1em;text-transform:uppercase;color:var(--gold);margin-bottom:4px}
.bk-section h3{font-size:0.92rem;font-weight:600;color:var(--gray-900);margin-bottom:16px}
.form-divider{height:1px;background:var(--gray-200);margin:20px 0}

/* Tour selector cards */
.tour-selector{display:flex;flex-direction:column;gap:8px}
.tour-option{border:1px solid var(--gray-200);border-radius:var(--radius-sm);padding:14px 16px;cursor:pointer;transition:var(--t);display:flex;align-items:center;gap:12px;background:var(--white)}
.tour-option:hover{border-color:var(--gray-500)}
.tour-option.sel{border-color:var(--gold);background:#fff8e6}
.tour-option-num{font-size:0.6rem;font-weight:700;letter-spacing:0.08em;text-transform:uppercase;color:var(--gold);background:rgba(184,150,74,0.1);padding:3px 8px;border-radius:10px;flex-shrink:0}
.tour-option-info{flex:1}
.tour-option-name{font-size:0.88rem;font-weight:600;color:var(--gray-900);margin-bottom:2px}
.tour-option-dates{font-size:0.72rem;color:var(--gray-500)}
.tour-option-status{font-size:0.65rem;font-weight:600;padding:2px 8px;border-radius:10px;flex-shrink:0}
.tour-option-status.open{background:var(--saffron);color:var(--white)}
.tour-option-status.soon{background:var(--gray-200);color:var(--gray-500)}

/* Fields */
.field-group{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px}
.field-group.single{grid-template-columns:1fr}
.field-group.triple{grid-template-columns:1fr 1fr 1fr}
@media(max-width:560px){.field-group,.field-group.triple{grid-template-columns:1fr}}
.field{display:flex;flex-direction:column;gap:5px}
.field label{font-size:0.72rem;font-weight:500;color:var(--gray-700)}
.field label .opt{font-weight:400;color:var(--gray-300);font-size:0.68rem}
.field input,.field select,.field textarea{width:100%;padding:10px 12px;border:1px solid var(--gray-200);border-radius:var(--radius-sm);font-size:0.88rem;font-family:var(--font);color:var(--gray-900);background:var(--white);transition:var(--t);outline:none;-webkit-appearance:none;appearance:none}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--gray-900);box-shadow:0 0 0 2px rgba(0,0,0,0.06)}
.field input.error,.field select.error{border-color:var(--error)}
.field .err-msg{font-size:0.66rem;color:var(--error)}
.field select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='7' viewBox='0 0 12 7'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%236e6e73' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:32px;cursor:pointer}
.field textarea{resize:vertical;min-height:80px}

/* Upload boxes */
.upload-box{border:1px dashed var(--gray-300);border-radius:var(--radius-sm);padding:20px 16px;text-align:center;cursor:pointer;background:var(--gray-50);transition:var(--t);position:relative}
.upload-box:hover{border-color:var(--gray-700);background:var(--white)}
.upload-box input[type="file"]{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%}
.upload-box svg{width:20px;height:20px;color:var(--gray-300);margin:0 auto 8px}
.upload-box .up-title{font-size:0.8rem;color:var(--gray-700);font-weight:500}
.upload-box .up-subtitle{font-size:0.68rem;color:var(--gold);margin-top:2px}
.upload-box .up-hint{font-size:0.65rem;color:var(--gray-300);margin-top:2px}
.upload-preview{display:flex;align-items:center;gap:8px;padding:7px 10px;background:var(--gray-50);border:1px solid var(--gray-200);border-radius:var(--radius-sm);margin-top:8px}
.upload-preview img{width:32px;height:32px;object-fit:cover;border-radius:4px}
.upload-preview .up-name{font-size:0.72rem;color:var(--gray-700);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.upload-remove{font-size:0.68rem;color:var(--error);cursor:pointer;flex-shrink:0}

/* Traveler block */
.traveler-block{border:1px solid var(--gray-200);border-radius:var(--radius-sm);overflow:hidden;margin-bottom:12px;background:var(--white)}
.traveler-head{background:var(--gray-50);padding:12px 20px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--gray-200)}
.traveler-head h4{font-size:0.85rem;font-weight:600}
.role-badge{font-size:0.6rem;font-weight:600;padding:3px 10px;border-radius:20px;background:var(--gray-900);color:var(--white);letter-spacing:0.04em}
.traveler-body{padding:20px}

/* Package cards */
.pkg-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(128px,1fr));gap:8px;margin-top:12px}
.pkg-card{border:1px solid var(--gray-200);border-radius:var(--radius-sm);padding:12px;text-align:center;cursor:pointer;transition:var(--t)}
.pkg-card:hover{border-color:var(--gray-500)}
.pkg-card.sel{border-color:var(--gold);background:#fff8e6}
.pkg-card.sel .pkg-label{color:var(--gold)}
.pkg-card.sel .pkg-price{color:var(--gray-900)}
.pkg-label{font-size:0.62rem;font-weight:500;color:var(--gray-500);text-transform:uppercase;letter-spacing:0.04em;margin-bottom:4px}
.pkg-price{font-size:0.95rem;font-weight:700;color:var(--gray-900);letter-spacing:-0.02em}

/* Seat toggle */
.seat-toggle{display:flex;align-items:center;gap:12px;padding:12px 16px;border:1px solid var(--gray-200);border-radius:var(--radius-sm);cursor:pointer;transition:var(--t);background:var(--white);user-select:none;margin-top:12px}
.seat-toggle:hover{border-color:var(--gray-300)}
.seat-toggle.active{border-color:var(--gold);background:#fff8e6}
.seat-check{width:18px;height:18px;border:1px solid var(--gray-300);border-radius:4px;flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:var(--t)}
.seat-toggle.active .seat-check{background:var(--gold);border-color:var(--gold)}
.seat-check svg{width:10px;height:10px;color:var(--white);display:none}
.seat-toggle.active .seat-check svg{display:block}
.seat-text{flex:1}
.seat-text p{font-size:0.8rem;font-weight:500;color:var(--gray-900);margin:0}
.seat-text span{font-size:0.68rem;color:var(--gray-500)}
.seat-price{font-size:0.8rem;font-weight:600;color:var(--gold)}

/* Room consent */
.room-consent{background:#fff8e6;border:1px solid #f0d080;border-radius:var(--radius-sm);padding:16px;margin-bottom:12px;display:none}
.room-consent.show{display:block}
.room-consent p{font-size:0.78rem;color:var(--gray-700);margin-bottom:12px;line-height:1.6}
.checkbox-row{display:flex;align-items:flex-start;gap:8px;cursor:pointer;user-select:none}
.checkbox-row input[type="checkbox"]{width:16px;height:16px;min-width:16px;margin-top:2px;accent-color:var(--gold);cursor:pointer}
.checkbox-row span{font-size:0.76rem;color:var(--gray-700);line-height:1.5}

/* T&C */
.tnc-box{border:1px solid var(--gray-200);border-radius:var(--radius-sm);overflow:hidden;margin-bottom:12px}
.tnc-scroll{height:200px;overflow-y:auto;padding:16px;font-size:0.76rem;color:var(--gray-700);line-height:1.7;background:var(--gray-50)}
.tnc-scroll h4{font-size:0.78rem;font-weight:600;color:var(--gray-900);margin:12px 0 4px}
.tnc-scroll h4:first-child{margin-top:0}
.tnc-scroll p{margin-bottom:8px}
.tnc-scroll ul{padding-left:16px;margin-bottom:8px}
.tnc-scroll ul li{list-style:disc;margin-bottom:3px}
.tnc-foot{padding:12px 16px;background:var(--white);border-top:1px solid var(--gray-200)}

/* Price Summary */
.price-summary{background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius-sm);overflow:hidden;margin-bottom:12px}
.price-summary-head{padding:12px 20px;background:var(--gray-50);border-bottom:1px solid var(--gray-200)}
.price-summary-head h3{font-size:0.88rem;font-weight:600;margin:0}
.price-rows{padding:16px 20px}
.ps-row{display:flex;justify-content:space-between;align-items:center;padding:7px 0;font-size:0.8rem;border-bottom:1px solid var(--gray-100)}
.ps-row:last-child{border-bottom:none}
.ps-row .pl{color:var(--gray-500)}
.ps-row .pa{font-weight:500;color:var(--gray-900);font-variant-numeric:tabular-nums}
.ps-row.total{font-weight:700;font-size:0.92rem;border-top:1px solid var(--gray-900);border-bottom:none;padding-top:12px;margin-top:3px}
.due-block{margin:12px 20px;background:#fff8e6;border:1px solid #f0d080;border-radius:var(--radius-sm);padding:12px 16px}
.due-row{display:flex;justify-content:space-between;font-size:0.85rem;font-weight:700;align-items:center}
.due-row .due-amt{font-size:1rem;color:var(--gray-900)}
.due-date{font-size:0.68rem;color:var(--gray-500);margin-top:4px}
.due-note{font-size:0.65rem;color:var(--gray-500);margin-top:3px}

#submitBtn{width:100%;font-size:0.92rem;padding:14px;border-radius:var(--radius-sm)}
#submitBtn:disabled{opacity:0.5;cursor:not-allowed}

/* ── SUCCESS TOAST ── */
.toast{position:fixed;top:80px;left:50%;transform:translateX(-50%) translateY(-20px);z-index:4000;background:var(--gray-900);color:var(--white);padding:12px 24px;border-radius:980px;font-size:0.85rem;font-weight:500;opacity:0;transition:all 0.3s ease;pointer-events:none;white-space:nowrap}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

/* ── VOUCHER ── */
.voucher-overlay{position:fixed;inset:0;z-index:3000;background:rgba(0,0,0,0.5);backdrop-filter:blur(4px);display:none;align-items:center;justify-content:center;padding:16px}
.voucher-overlay.open{display:flex}
.voucher-modal{background:var(--white);border-radius:var(--radius);width:100%;max-width:640px;max-height:92vh;overflow-y:auto}
.voucher-modal-top{position:sticky;top:0;background:var(--white);border-bottom:1px solid var(--gray-200);padding:12px 20px;display:flex;align-items:center;justify-content:space-between;z-index:1}
.voucher-modal-top h4{font-size:0.85rem;font-weight:600}
.v-action-row{display:flex;gap:8px}
.voucher-content{padding:32px}
.v-top{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:24px;padding-bottom:24px;border-bottom:1.5px solid var(--gray-900)}
.v-top img{height:22px}
.vid-block{text-align:right}
.vid-label{font-size:0.58rem;letter-spacing:0.08em;text-transform:uppercase;color:var(--gray-500)}
.vid-num{font-size:1rem;font-weight:700;color:var(--gray-900);letter-spacing:0.04em}
.v-tour-name{font-size:1rem;font-weight:600;margin-bottom:4px}
.v-sec{margin-bottom:20px}
.v-sec-title{font-size:0.56rem;font-weight:600;letter-spacing:0.1em;text-transform:uppercase;color:var(--gold);border-bottom:1px solid var(--gray-200);padding-bottom:4px;margin-bottom:12px}
.v-row{display:flex;gap:12px;font-size:0.76rem;padding:5px 0;border-bottom:1px solid var(--gray-100)}
.v-row:last-child{border-bottom:none}
.v-label{color:var(--gray-500);min-width:140px;flex-shrink:0}
.v-val{color:var(--gray-900);font-weight:500;font-variant-numeric:tabular-nums}
.v-total-bar{background:var(--gray-900);color:var(--white);padding:12px 16px;border-radius:var(--radius-sm);display:flex;justify-content:space-between;align-items:center;margin-top:12px}
.v-total-bar .vtl{font-size:0.7rem;opacity:0.6}
.v-total-bar .vta{font-size:1.05rem;font-weight:700;font-variant-numeric:tabular-nums}
.v-due-bar{background:#fff8e6;border:1px solid #f0d080;border-radius:var(--radius-sm);padding:10px 16px;margin-top:5px}
.v-due-row{display:flex;justify-content:space-between;align-items:center;font-size:0.82rem;font-weight:700}
.v-due-date{font-size:0.68rem;color:var(--gray-500);margin-top:3px}
.v-banking{background:var(--gray-50);border-radius:var(--radius-sm);padding:16px}
.v-banking h4{font-size:0.78rem;font-weight:600;margin-bottom:12px}
.v-footer-note{font-size:0.64rem;color:var(--gray-500);text-align:center;padding-top:20px;border-top:1px solid var(--gray-200);margin-top:20px;line-height:1.6}

/* ── MODAL ── */
.modal-overlay{position:fixed;inset:0;z-index:2500;background:rgba(0,0,0,0.4);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:16px;opacity:0;pointer-events:none;transition:var(--t)}
.modal-overlay.open{opacity:1;pointer-events:all}
.modal-box{background:var(--white);border-radius:var(--radius);width:100%;max-width:440px;padding:32px;position:relative}
.modal-close{position:absolute;top:12px;right:12px;width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--gray-500);transition:var(--t)}
.modal-close:hover{background:var(--gray-100);color:var(--gray-900)}
.modal-close svg{width:14px;height:14px}
.modal-box h3{font-size:1.05rem;margin-bottom:4px}
.modal-box p{font-size:0.8rem;color:var(--gray-500);margin-bottom:24px}

/* ── CONTACT ── */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:start}
@media(max-width:768px){.contact-grid{grid-template-columns:1fr;gap:40px}}
.contact-detail{display:flex;gap:16px;padding:12px 0;border-bottom:1px solid var(--gray-200);align-items:flex-start}
.contact-detail:last-child{border-bottom:none}
.contact-detail svg{width:15px;height:15px;color:var(--gold);flex-shrink:0;margin-top:2px}
.cd-label{font-size:0.62rem;font-weight:600;letter-spacing:0.06em;text-transform:uppercase;color:var(--gray-500);margin-bottom:2px}
.cd-value{font-size:0.82rem;color:var(--gray-900);font-weight:400;line-height:1.55}
.city-chips{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}
.city-chip{padding:2px 10px;background:var(--gray-100);border-radius:14px;font-size:0.68rem;font-weight:500;color:var(--gray-700)}
.appt-note{background:var(--gray-50);border-radius:var(--radius-sm);padding:16px;margin-top:16px}
.appt-note p{font-size:0.76rem;color:var(--gray-700);margin:0;line-height:1.6}

/* ── TOURS PAGE ── */
.year-heading{font-size:0.62rem;font-weight:600;letter-spacing:0.1em;text-transform:uppercase;color:var(--gray-500);margin-bottom:16px;display:flex;align-items:center;gap:12px}
.year-heading::after{content:'';flex:1;height:1px;background:var(--gray-200)}
.future-strip{border:1px dashed var(--gray-300);border-radius:var(--radius-sm);padding:40px;text-align:center;color:var(--gray-300)}
.future-strip h3{color:var(--gray-300);margin-bottom:8px}

/* ── DEST CHIPS ── */
.dest-chips{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;max-width:760px;margin:0 auto}
.dest-chip{padding:4px 14px;background:var(--gray-100);border-radius:20px;font-size:0.78rem;font-weight:500;color:var(--gray-700)}

/* ── ANIMATIONS ── */
.reveal{opacity:0;transform:translateY(14px);transition:opacity 0.5s var(--ease),transform 0.5s var(--ease)}
.reveal.visible{opacity:1;transform:translateY(0)}
.d1{transition-delay:0.08s}.d2{transition-delay:0.16s}.d3{transition-delay:0.24s}.d4{transition-delay:0.32s}

/* ── UTILS ── */
.text-center{text-align:center}
.hidden{display:none!important}
.show{display:block!important}
.gold{color:var(--gold)}
.muted{color:var(--gray-500)}
.mt-sm{margin-top:8px}.mt-md{margin-top:16px}.mt-lg{margin-top:24px}.mt-xl{margin-top:40px}
.mb-md{margin-bottom:16px}.mb-lg{margin-bottom:24px}.mb-xl{margin-bottom:40px}
.star{font-size:0.65rem;vertical-align:super;color:var(--gold)}

::-webkit-scrollbar{width:4px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:var(--gray-200);border-radius:2px}
:focus-visible{outline:2px solid var(--gray-900);outline-offset:2px;border-radius:2px}

@media print{
  body *{visibility:hidden}
  .voucher-print,.voucher-print *{visibility:visible}
  .voucher-print{position:absolute;left:0;top:0;width:100%;padding:20px}
  .nav,.footer,.voucher-modal-top,.sticky-cta,.lang-toggle{display:none!important}
  @page{margin:15mm;size:A4}
}
