/* TRUE PATH EXPERIENCE — style.css
   Playfair Display + Inter · Mobile-first · v5 clean
   ================================================ */

:root {
  --serif: 'Playfair Display', Georgia, serif;
  --sans:  'Inter', system-ui, sans-serif;
  --dark:  #1a1a1a;
  --mid:   #585858;
  --light: #909090;
  --border:#e2ddd8;
  --bg:    #f7f5f1;
  --bg2:   #ece8e0;
  --white: #ffffff;
  --cream: #f5f0e8;
  --green: #1e3a28;
  --r:   10px;
  --rsm:  6px;
  --rlg: 14px;
}

/* RESET */
*,*::before,*::after { box-sizing:border-box; margin:0; padding:0; }
html { scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body { font-family:var(--sans); color:var(--dark); background:var(--white); font-size:15px; line-height:1.65; -webkit-font-smoothing:antialiased; }
img  { max-width:100%; display:block; }
a    { text-decoration:none; color:inherit; }
button,input,select,textarea { font-family:var(--sans); }

/* TYPOGRAPHY */
h1,h2,h3,h4 { font-family:var(--serif); font-weight:400; line-height:1.15; }
h1 { font-size:clamp(30px,5.5vw,58px); }
h2 { font-size:clamp(22px,3.5vw,36px); }
h3 { font-size:clamp(17px,2.5vw,22px); }
h4 { font-size:clamp(14px,2vw,17px); }
p  { color:var(--mid); font-weight:300; line-height:1.8; }
em { font-style:italic; }
strong { font-weight:500; color:var(--dark); }

/* LAYOUT */
.section    { padding:clamp(48px,8vw,96px) clamp(20px,5vw,64px); }
.section-sm { padding:clamp(32px,5vw,56px) clamp(20px,5vw,64px); }
.section-tag { font-size:10px; letter-spacing:3px; text-transform:uppercase; color:var(--light); font-weight:500; margin-bottom:12px; }
.hr { border:none; border-top:1px solid var(--border); }
.link-ul { font-size:13px; font-weight:500; color:var(--dark); border-bottom:1px solid var(--dark); padding-bottom:1px; }
.mt8  { margin-top:8px; }
.mt16 { margin-top:16px; }
.mt24 { margin-top:24px; }
.mt32 { margin-top:32px; }
.mb16 { margin-bottom:16px; }
.mb24 { margin-bottom:24px; }
.mb32 { margin-bottom:32px; }

/* NAV */
.nav {
  position:sticky; top:0; z-index:100;
  display:flex; align-items:center; justify-content:space-between;
  padding:0 clamp(16px,4vw,48px); height:64px;
  background:rgba(255,255,255,.97); backdrop-filter:blur(14px);
  border-bottom:1px solid var(--border); transition:box-shadow .2s;
}
.nav.scrolled { box-shadow:0 2px 20px rgba(0,0,0,.07); }
.nav-logo { display:flex; align-items:center; }
.nav-logo img { height:26px; }
.nav-logo-text { font-family:var(--serif); font-size:17px; color:var(--dark); }
.nav-links { display:flex; gap:clamp(14px,2.5vw,28px); font-size:13px; color:var(--mid); align-items:center; }
.nav-links a:hover { color:var(--dark); font-weight:500; }
.nav-right { display:flex; align-items:center; gap:12px; }
.lang-switcher { display:flex; gap:3px; }
.lang-btn { font-size:11px; font-weight:400; letter-spacing:1px; text-transform:uppercase; padding:5px 6px; color:var(--light); border:none; background:none; cursor:pointer; transition:color .15s; }
.lang-btn.active { font-weight:700; color:var(--dark); background:none; }
.lang-btn:hover:not(.active) { color:var(--dark); }
.nav-cta { background:var(--dark); color:var(--white); padding:9px 20px; border-radius:var(--rsm); font-size:12px; font-weight:500; border:none; transition:opacity .15s; white-space:nowrap; display:inline-block; }
.nav-cta:hover { opacity:.85; }

/* Dropdown */
.nav-item { position:relative; display:inline-flex; align-items:center; height:64px; }
.nav-has-dropdown::after { content:' ▾'; font-size:9px; opacity:.5; }
.nav-dropdown {
  display:none; position:fixed; background:var(--white);
  border:1px solid var(--border); border-radius:var(--r);
  box-shadow:0 8px 32px rgba(0,0,0,.12); min-width:210px; padding:8px 0; z-index:9999;
}
.nav-dropdown.open { display:block; }
.nav-dropdown a { display:flex; align-items:center; gap:10px; padding:10px 18px; font-size:13px; color:var(--mid); white-space:nowrap; transition:background .15s,color .15s; }
.nav-dropdown a:hover { background:var(--bg); color:var(--dark); }
.nav-dd-flag  { display:none; }
.nav-dd-count { font-size:10px; color:var(--light); margin-left:auto; }
.nav-dd-divider { border:none; border-top:1px solid var(--border); margin:6px 0; }

/* Hamburger */
.hamburger { display:none; flex-direction:column; gap:5px; background:none; border:none; padding:6px; cursor:pointer; }
.hamburger span { display:block; width:22px; height:2px; background:var(--dark); border-radius:2px; transition:transform .25s,opacity .2s; }
.hamburger.open span:nth-child(1) { transform:translateY(7px) rotate(45deg); }
.hamburger.open span:nth-child(2) { opacity:0; }
.hamburger.open span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }

/* Mobile menu */
.mobile-menu { display:none; position:fixed; inset:0; top:64px; z-index:99; background:rgba(255,255,255,.98); backdrop-filter:blur(16px); overflow-y:auto; }
.mobile-menu.open { display:flex; flex-direction:column; }
.mobile-menu-inner { padding:16px 24px 32px; display:flex; flex-direction:column; }
.mobile-menu-inner a { padding:13px 0; font-size:15px; color:var(--dark); border-bottom:1px solid var(--border); }
.mobile-menu-inner a:last-of-type { border-bottom:none; }
.mobile-cta { background:var(--dark) !important; color:var(--white) !important; text-align:center; padding:13px 0 !important; border-radius:var(--rsm); margin-top:14px; font-size:13px; font-weight:500; border-bottom:none !important; }
.mobile-lang { display:flex; gap:8px; margin-top:18px; }
body.menu-open { overflow:hidden; }

/* HERO (homepage) */
.hero { position:relative; min-height:min(90vh,760px); display:flex; flex-direction:column; justify-content:flex-end; overflow:hidden; }
.hero-bg { position:absolute; inset:0; background:linear-gradient(160deg,#0d1f14 0%,#1e3a28 40%,#2d5040 70%,#1a3022 100%); }
.hero-bg-img { position:absolute; inset:0; background-size:cover; background-position:center 35%; opacity:.35; mix-blend-mode:luminosity; }
.hero-overlay { position:absolute; inset:0; background:linear-gradient(to bottom,rgba(13,31,20,.1) 0%,rgba(13,31,20,.5) 50%,rgba(13,31,20,.88) 100%); }
.hero-content { position:relative; z-index:2; padding:clamp(60px,8vw,120px) clamp(20px,5vw,64px) clamp(40px,6vw,80px); max-width:840px; }
.hero-eyebrow { font-size:11px; letter-spacing:3px; text-transform:uppercase; color:rgba(245,240,232,.5); margin-bottom:18px; }
.hero-title { color:var(--cream); margin-bottom:18px; }
.hero-title em { font-style:italic; color:#a8cc98; }
.hero-sub { font-size:clamp(14px,1.8vw,16px); color:rgba(245,240,232,.6); font-weight:300; line-height:1.75; max-width:520px; margin-bottom:36px; }
.hero-meta { display:flex; flex-wrap:wrap; gap:0; margin-bottom:36px; }
.hero-meta-item { padding-right:clamp(16px,2vw,26px); margin-right:clamp(16px,2vw,26px); border-right:1px solid rgba(255,255,255,.15); }
.hero-meta-item:last-child { border-right:none; padding-right:0; margin-right:0; }
.hero-meta-label { font-size:9px; letter-spacing:2px; text-transform:uppercase; color:rgba(245,240,232,.35); display:block; margin-bottom:3px; }
.hero-meta-val { font-size:13px; color:rgba(245,240,232,.85); font-weight:300; }
.hero-actions { display:flex; flex-wrap:wrap; gap:12px; }
.btn-primary { background:var(--white); color:var(--dark); padding:13px clamp(20px,3vw,36px); border-radius:var(--rsm); font-size:13px; font-weight:500; border:none; transition:opacity .15s; display:inline-block; }
.btn-primary:hover { opacity:.9; }
.btn-ghost { background:transparent; color:rgba(245,240,232,.75); border:1px solid rgba(245,240,232,.3); padding:12px clamp(16px,2.5vw,28px); border-radius:var(--rsm); font-size:13px; transition:border-color .15s; display:inline-block; }
.btn-ghost:hover { border-color:rgba(245,240,232,.6); }

/* DARK HERO (inner pages: consulting, plan, destinations) */
.dark-hero {
  background:var(--green); position:relative; overflow:hidden;
  padding:clamp(60px,9vw,100px) clamp(20px,5vw,64px) clamp(52px,7vw,80px);
}
.dark-hero::before {
  content:''; position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(135deg,rgba(0,0,0,.32) 0%,rgba(0,0,0,.06) 60%,rgba(0,0,0,.18) 100%);
}
.dark-hero > * { position:relative; z-index:1; }
.dark-hero .section-tag { color:rgba(245,240,232,.45); margin-bottom:16px; }
.dark-hero h1 { color:var(--cream); max-width:720px; }
.dark-hero h1 em { font-style:italic; color:#a8cc98; }
.dark-hero p { color:rgba(245,240,232,.62); max-width:560px; font-weight:300; line-height:1.8; margin-top:14px; }

/* HOW IT WORKS */
.how-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:clamp(24px,4vw,48px); margin-top:40px; }
.how-num   { font-family:var(--serif); font-size:46px; color:var(--bg2); line-height:1; margin-bottom:12px; }
.how-title { font-size:12px; font-weight:500; text-transform:uppercase; letter-spacing:.5px; color:var(--dark); margin-bottom:8px; }
.how-text  { font-size:13px; color:var(--mid); font-weight:300; line-height:1.7; }

/* DESTINATIONS SMALL GRID (homepage) */
.dest-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:10px; margin-top:28px; }
.dest-card { position:relative; border-radius:var(--r); overflow:hidden; min-height:260px; cursor:pointer; display:block; }
.dest-card-bg { position:absolute; inset:0; background-size:cover; background-position:center; transition:transform .4s; }
.dest-card:hover .dest-card-bg { transform:scale(1.05); }
.dest-card-overlay { position:absolute; inset:0; background:linear-gradient(to bottom,rgba(0,0,0,.08) 0%,rgba(0,0,0,.62) 100%); }
.dest-card-content { position:absolute; bottom:0; left:0; right:0; padding:18px; }
.dest-card-region { font-size:10px; letter-spacing:2px; text-transform:uppercase; color:rgba(245,240,232,.5); margin-bottom:3px; }
.dest-card-name   { font-family:var(--serif); font-size:22px; color:var(--cream); margin-bottom:3px; }
.dest-card-count  { font-size:11px; color:rgba(245,240,232,.45); }

/* DESTINATION LARGE CARDS (destinations.php) */
.dest-ed-row { display:grid; grid-template-columns:clamp(140px,22vw,220px) 1fr; gap:clamp(24px,4vw,48px); padding:clamp(24px,4vw,40px) 0; align-items:center; text-decoration:none; transition:opacity .15s; }
.dest-ed-row:hover { opacity:.85; }
.dest-ed-row--first { padding-top:0; }
.dest-ed-swatch { border-radius:var(--rlg); height:clamp(120px,18vw,180px); position:relative; overflow:hidden; flex-shrink:0; transition:transform .3s; }
.dest-ed-row:hover .dest-ed-swatch { transform:scale(1.02); }
.dest-ed-swatch-name { position:absolute; bottom:12px; left:14px; font-family:var(--serif); font-size:clamp(18px,2.5vw,26px); color:var(--cream); line-height:1; }
.dest-ed-body { min-width:0; }

/* TOUR CARDS */
.tour-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(270px,1fr)); gap:16px; }
.tour-card { background:var(--bg); border-radius:var(--r); overflow:hidden; cursor:pointer; transition:transform .2s,box-shadow .2s; }
.tour-card:hover { transform:translateY(-3px); box-shadow:0 8px 32px rgba(0,0,0,.08); }
.tour-card-link { display:block; color:inherit; }
.tour-card-img  { height:190px; position:relative; overflow:hidden; }
.tour-card-img-placeholder { width:100%; height:100%; transition:transform .4s; }
.tour-card:hover .tour-card-img-placeholder { transform:scale(1.04); }
.tour-card-img img { width:100%; height:100%; object-fit:cover; transition:transform .4s; }
.tour-card:hover .tour-card-img img { transform:scale(1.04); }
.tour-card-location { position:absolute; bottom:10px; left:12px; background:rgba(0,0,0,.45); color:rgba(255,255,255,.85); font-size:9px; letter-spacing:1px; text-transform:uppercase; padding:3px 9px; border-radius:3px; }
.tour-card-badge { position:absolute; top:10px; left:12px; background:var(--dark); color:var(--white); font-size:9px; font-weight:500; letter-spacing:1px; text-transform:uppercase; padding:3px 9px; border-radius:3px; }
.tour-card-body   { padding:16px 18px 20px; }
.tour-card-tags   { display:flex; gap:5px; margin-bottom:8px; flex-wrap:wrap; }
.tag-pill { font-size:9px; letter-spacing:1px; text-transform:uppercase; color:var(--light); border:1px solid var(--border); padding:2px 8px; border-radius:3px; }
.tour-card-title  { font-family:var(--serif); font-size:17px; color:var(--dark); margin-bottom:5px; line-height:1.3; }
.tour-card-meta   { font-size:12px; color:var(--light); font-weight:300; margin-bottom:14px; }
.tour-card-footer { display:flex; justify-content:space-between; align-items:center; }
.tour-price { font-family:var(--serif); font-size:22px; color:var(--dark); }
.tour-price-label { font-family:var(--sans); font-size:9px; color:var(--light); text-transform:uppercase; letter-spacing:1px; display:block; }
.tour-cta { font-size:11px; font-weight:500; color:var(--dark); border-bottom:1px solid var(--dark); padding-bottom:1px; }

/* FILTERS */
.filters-row { display:flex; flex-wrap:wrap; gap:7px; margin-bottom:8px; }
.f-btn { border:1px solid var(--border); padding:8px 16px; border-radius:var(--rsm); font-size:12px; cursor:pointer; background:var(--white); color:var(--mid); transition:all .15s; display:inline-block; }
.f-btn.on { background:var(--dark); color:var(--white); border-color:var(--dark); }
.f-btn:hover:not(.on) { border-color:var(--dark); color:var(--dark); }
.results-bar { display:flex; justify-content:space-between; align-items:center; margin-bottom:20px; font-size:13px; }
.results-bar strong { color:var(--dark); font-weight:500; }

/* SPLIT */
.split { display:grid; grid-template-columns:1fr 1fr; }
.split-text { padding:clamp(40px,6vw,64px) clamp(28px,4vw,56px); display:flex; flex-direction:column; justify-content:center; }
.split-img  { min-height:380px; position:relative; overflow:hidden; }
.split-img-bg { position:absolute; inset:0; background-size:cover; background-position:center; }

/* TESTIMONIAL */
.testimonial-wrap { background:var(--bg); border-radius:var(--rlg); padding:clamp(24px,4vw,48px); display:flex; gap:28px; align-items:flex-start; }
.testimonial-avatar { width:60px; height:60px; border-radius:50%; flex-shrink:0; background:var(--bg2); overflow:hidden; }
.testimonial-stars { font-size:13px; color:#c8a84a; letter-spacing:1px; margin-bottom:10px; }
.testimonial-quote { font-family:var(--serif); font-size:clamp(16px,2vw,19px); font-style:italic; color:var(--dark); line-height:1.65; margin-bottom:10px; }
.testimonial-attr  { font-size:11px; letter-spacing:1px; text-transform:uppercase; color:var(--light); }

/* CONSULTING BANNER (homepage CTA) */
.consult-banner {
  background:var(--dark); border-radius:var(--rlg);
  padding:clamp(28px,4vw,48px);
  display:grid; grid-template-columns:1fr auto; gap:28px; align-items:center;
}
.consult-banner-text h3 { font-family:var(--serif); font-size:clamp(20px,2.5vw,28px); color:var(--cream); margin-bottom:8px; }
.consult-banner-text p  { color:rgba(245,240,232,.55); font-size:14px; font-weight:300; line-height:1.7; }
.consult-banner-cta { display:flex; flex-direction:column; align-items:center; gap:8px; flex-shrink:0; }
.btn-banner { background:var(--white); color:var(--dark); padding:13px 28px; border-radius:var(--rsm); font-size:12px; font-weight:500; white-space:nowrap; display:inline-block; transition:opacity .15s; border:none; cursor:pointer; }
.btn-banner:hover { opacity:.9; }
.btn-banner-sub { font-size:11px; color:rgba(245,240,232,.4); text-align:center; }

/* CONSULTING PACKAGES */
.packages-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-top:28px; max-width:880px; }
.pkg-card { background:var(--bg); border-radius:var(--rlg); padding:28px 24px; border:1px solid transparent; transition:transform .2s; display:flex; flex-direction:column; }
.pkg-card.featured { border-color:var(--dark); background:var(--white); }
.pkg-card:hover { transform:translateY(-2px); }
.pkg-badge { background:var(--dark); color:var(--white); font-size:9px; font-weight:500; letter-spacing:1px; text-transform:uppercase; padding:3px 9px; border-radius:3px; display:inline-block; margin-bottom:12px; }
.pkg-price { font-family:var(--serif); font-size:36px; color:var(--dark); line-height:1; margin-bottom:4px; }
.pkg-price-free { font-family:var(--serif); font-size:24px; color:#2a6a18; }
.pkg-meta { font-size:11px; color:var(--light); margin-bottom:10px; }
.pkg-name { font-family:var(--serif); font-size:18px; margin-bottom:10px; color:var(--dark); }
.pkg-desc { font-size:13px; color:var(--mid); font-weight:300; line-height:1.65; margin-bottom:14px; }
.pkg-includes { border-top:1px solid var(--border); padding-top:14px; list-style:none; flex:1; }
.pkg-includes li { font-size:12px; color:var(--mid); font-weight:300; padding:4px 0 4px 16px; position:relative; line-height:1.5; }
.pkg-includes li::before { content:'—'; position:absolute; left:0; color:#4a8a38; }
.btn-pkg { display:block; text-align:center; margin-top:18px; padding:12px 20px; border-radius:var(--rsm); font-size:12px; font-weight:500; letter-spacing:.3px; transition:all .15s; border:none; cursor:pointer; }
.btn-pkg-dark    { background:var(--dark); color:var(--white); }
.btn-pkg-dark:hover { opacity:.85; }
.btn-pkg-outline { background:transparent; color:var(--dark); border:1px solid var(--dark); }
.btn-pkg-outline:hover { background:var(--dark); color:var(--white); }
.btn-pkg-light   { background:var(--bg2); color:var(--dark); }
.btn-pkg-light:hover { opacity:.85; }

/* TOUR DETAIL */
.tour-hero { position:relative; min-height:min(78vh,540px); display:flex; flex-direction:column; justify-content:flex-end; overflow:hidden; }
.tour-hero-bg { position:absolute; inset:0; background-size:cover; background-position:center; }
.tour-hero-overlay { position:absolute; inset:0; background:linear-gradient(to bottom,rgba(10,20,14,.15) 0%,rgba(10,20,14,.72) 60%,rgba(10,20,14,.93) 100%); }
.tour-hero-content { position:relative; z-index:2; padding:0 clamp(20px,5vw,56px) clamp(32px,5vw,52px); }
.tour-layout { display:grid; grid-template-columns:1fr 310px; padding:0 clamp(20px,5vw,56px); margin-top:48px; padding-bottom:64px; }
.tour-main { padding-right:clamp(24px,4vw,48px); }
.tour-sidebar { position:sticky; top:80px; align-self:start; }
.booking-card { background:var(--white); border:1px solid var(--border); border-radius:var(--rlg); padding:26px; margin-bottom:14px; }
.booking-price { font-family:var(--serif); font-size:42px; color:var(--dark); line-height:1; margin-bottom:3px; }
.booking-pp { font-size:12px; color:var(--light); font-weight:300; margin-bottom:20px; }
.booking-note { font-size:11px; color:var(--light); font-weight:300; line-height:1.55; margin-top:10px; padding-top:10px; border-top:1px solid var(--border); }
.btn-book { display:block; width:100%; background:var(--dark); color:var(--white); border:none; padding:14px; border-radius:var(--rsm); font-size:12px; font-weight:500; letter-spacing:.5px; transition:opacity .15s; margin-top:6px; text-align:center; cursor:pointer; }
.btn-book:hover { opacity:.85; }
.trust-list { margin-top:16px; padding-top:16px; border-top:1px solid var(--border); }
.trust-item { display:flex; gap:10px; font-size:12px; color:var(--mid); font-weight:300; margin-bottom:8px; align-items:flex-start; line-height:1.5; }
.trust-dash { color:var(--dark); flex-shrink:0; }
.impact-box { background:var(--bg); border-radius:var(--r); padding:16px 18px; margin-bottom:12px; }
.impact-title { font-size:12px; font-weight:500; color:var(--dark); margin-bottom:4px; }
.impact-text  { font-size:12px; color:var(--mid); font-weight:300; line-height:1.65; }
.contact-box { text-align:center; padding:14px; border:1px solid var(--border); border-radius:var(--r); font-size:13px; color:var(--mid); }
.contact-box a { color:var(--dark); font-weight:500; border-bottom:1px solid var(--dark); }
.hl-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:12px; margin-top:16px; }
.hl-card  { background:var(--bg); border-radius:var(--r); padding:22px; }
.hl-num   { font-family:var(--serif); font-size:22px; color:var(--bg2); margin-bottom:10px; }
.hl-title { font-size:12px; font-weight:500; text-transform:uppercase; letter-spacing:.5px; margin-bottom:7px; }
.tl-item { display:flex; gap:18px; padding-bottom:28px; position:relative; }
.tl-item:not(:last-child)::before { content:''; position:absolute; left:92px; top:38px; bottom:0; width:1px; background:var(--border); }
.tl-time  { min-width:74px; font-size:11px; color:var(--light); padding-top:2px; flex-shrink:0; }
.tl-dot   { width:10px; height:10px; border-radius:50%; border:2px solid var(--dark); background:var(--white); margin-top:3px; flex-shrink:0; }
.tl-dot.filled { background:var(--dark); }
.tl-title { font-size:14px; font-weight:500; color:var(--dark); margin-bottom:4px; }
.tl-desc  { font-size:13px; color:var(--mid); font-weight:300; line-height:1.7; }
.included-grid { display:grid; grid-template-columns:1fr 1fr; gap:clamp(16px,3vw,32px); background:var(--bg); border-radius:var(--r); padding:clamp(20px,3vw,28px); }
.incl-label { font-size:10px; letter-spacing:2px; text-transform:uppercase; color:var(--mid); font-weight:500; margin-bottom:12px; }
.incl-item  { display:flex; gap:10px; font-size:13px; color:var(--dark); font-weight:300; margin-bottom:9px; line-height:1.5; align-items:flex-start; }
.incl-yes .incl-mark { color:#4a8a38; }
.incl-no  .incl-mark { color:var(--light); }
.faq-item { border-top:1px solid var(--border); }
.faq-item:last-child { border-bottom:1px solid var(--border); }
.faq-q { padding:18px 0; font-size:14px; font-weight:500; color:var(--dark); display:flex; justify-content:space-between; align-items:flex-start; gap:12px; cursor:pointer; user-select:none; }
.faq-toggle { color:var(--light); font-size:20px; font-weight:300; flex-shrink:0; transition:transform .2s; line-height:1; }
.faq-item.open .faq-toggle { transform:rotate(45deg); }
.faq-a { font-size:13px; color:var(--mid); font-weight:300; line-height:1.7; padding-bottom:18px; display:none; }
.faq-item.open .faq-a { display:block; }

/* MONTHS */
.months-grid { display:grid; grid-template-columns:repeat(12,1fr); gap:4px; margin-top:14px; }
.month-cell { background:var(--bg); border-radius:var(--rsm); padding:10px 4px; text-align:center; border:1px solid transparent; }
.month-cell.best { border-color:var(--dark); background:var(--white); }
.month-name { font-size:9px; font-weight:500; text-transform:uppercase; letter-spacing:.5px; color:var(--light); display:block; margin-bottom:4px; }
.month-cell.best .month-name { color:var(--dark); }
.month-bar { height:3px; border-radius:2px; background:var(--border); margin-bottom:3px; }
.month-cell.best .month-bar { background:var(--dark); }
.month-status { font-size:9px; color:var(--light); }
.month-cell.best .month-status { color:var(--dark); font-weight:500; }

/* FORM */
.fgroup  { margin-bottom:20px; }
.frow    { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.flabel  { font-size:10px; letter-spacing:2px; text-transform:uppercase; color:var(--mid); font-weight:500; display:block; margin-bottom:8px; }
.chips   { display:flex; flex-wrap:wrap; gap:8px; }
label.chip { border:1px solid var(--border); padding:9px 15px; border-radius:var(--rsm); font-size:13px; cursor:pointer; transition:all .15s; user-select:none; color:var(--mid); background:var(--white); display:inline-block; }
label.chip:hover { border-color:var(--dark); color:var(--dark); }
label.chip.sel    { border-color:var(--dark); background:var(--dark); color:var(--white); }
.finput,.fselect,.ftextarea { width:100%; padding:12px 14px; border:1px solid var(--border); border-radius:var(--rsm); font-size:14px; color:var(--dark); background:var(--white); outline:none; transition:border-color .15s; appearance:none; }
.finput:focus,.fselect:focus,.ftextarea:focus { border-color:var(--dark); }
.ftextarea { resize:vertical; min-height:90px; }
.flatpickr-input { width:100%; padding:12px 14px; border:1px solid var(--border); border-radius:var(--rsm); font-size:14px; color:var(--dark); background:var(--white); outline:none; cursor:pointer; }
.flatpickr-input:focus { border-color:var(--dark); }
.flatpickr-day.selected,.flatpickr-day.startRange,.flatpickr-day.endRange { background:var(--dark) !important; border-color:var(--dark) !important; }
.flatpickr-day.inRange { background:var(--bg2) !important; border-color:var(--bg2) !important; color:var(--dark) !important; }
.btn-submit { width:100%; background:var(--dark); color:var(--white); border:none; padding:15px; border-radius:var(--rsm); font-size:12px; font-weight:500; letter-spacing:.8px; text-transform:uppercase; transition:opacity .2s; cursor:pointer; }
.btn-submit:hover { opacity:.85; }
.btn-submit:disabled { opacity:.35; cursor:not-allowed; }
.form-note { font-size:12px; color:var(--light); text-align:center; margin-top:10px; font-weight:300; }
.form-success { background:#f0f8ec; border:1px solid #c0dca0; border-radius:var(--r); padding:32px; text-align:center; }
.form-success h3 { font-family:var(--serif); font-size:24px; margin-bottom:8px; }
.form-error { background:#fce8e8; border:1px solid #e8a8a8; border-radius:var(--rsm); padding:12px 16px; font-size:13px; color:#8a2020; line-height:1.5; margin-bottom:14px; }

/* BREADCRUMB */
.breadcrumb { font-size:12px; color:var(--light); margin-bottom:22px; }
.breadcrumb a { color:var(--light); }
.breadcrumb a:hover { color:var(--dark); }
.breadcrumb span { margin:0 6px; color:var(--border); }
.bc-dark { color:rgba(245,240,232,.4); }
.bc-dark a { color:rgba(245,240,232,.4); }
.bc-dark a:hover { color:rgba(245,240,232,.75); }
.bc-dark span { color:rgba(245,240,232,.25); }

/* FOOTER */
.footer-cta { background:var(--dark); padding:clamp(48px,8vw,80px) clamp(20px,5vw,64px); text-align:center; }
.footer-cta-inner { max-width:560px; margin:0 auto; }
.footer-cta .section-tag { color:rgba(245,240,232,.35); }
.footer-cta h2 { color:var(--cream); margin:12px 0 10px; font-size:clamp(24px,4vw,40px); }
.footer-cta p  { color:rgba(245,240,232,.5); margin-bottom:32px; }
.btn-footer { background:var(--white); color:var(--dark); padding:14px 48px; border-radius:var(--rsm); font-size:12px; font-weight:500; border:none; transition:opacity .15s; display:inline-block; }
.btn-footer:hover { opacity:.9; }
.site-footer { background:#141414; padding:clamp(32px,5vw,48px) clamp(20px,5vw,64px) 0; }
.footer-inner { display:grid; grid-template-columns:1.5fr 1fr 1fr; gap:clamp(24px,4vw,40px); padding-bottom:clamp(28px,4vw,44px); }
.footer-brand { display:flex; flex-direction:column; gap:8px; }
.footer-tagline { font-size:12px; color:rgba(255,255,255,.25); font-weight:300; }
.footer-col-title { font-size:10px; letter-spacing:2px; text-transform:uppercase; color:rgba(255,255,255,.3); margin-bottom:12px; font-weight:500; }
.footer-nav { display:flex; flex-direction:column; }
.footer-nav a { font-size:13px; color:rgba(255,255,255,.35); padding:5px 0; transition:color .15s; }
.footer-nav a:hover { color:rgba(255,255,255,.65); }
.footer-contact a { display:block; font-size:13px; color:rgba(255,255,255,.35); padding:4px 0; transition:color .15s; }
.footer-contact a:hover { color:rgba(255,255,255,.65); }
.footer-disclaimer { border-top:1px solid rgba(255,255,255,.07); padding:18px 0; font-size:11px; color:rgba(255,255,255,.22); line-height:1.65; font-weight:300; }
.footer-bottom { border-top:1px solid rgba(255,255,255,.07); padding:16px 0; display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:8px; }
.footer-bottom span { font-size:12px; color:rgba(255,255,255,.22); }

/* ── CONSULTING STEPS ── */
.consult-steps {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 0;
}
.consult-step {
  display: flex;
  flex-direction: column;
  padding: 0 20px 0 0;
  position: relative;
}
.consult-step:not(:last-child)::after {
  content: '→';
  position: absolute;
  right: 4px;
  top: 2px;
  color: var(--border);
  font-size: 14px;
}
.consult-step-num {
  font-family: var(--serif);
  font-size: 28px;
  color: var(--bg2);
  line-height: 1;
  margin-bottom: 8px;
}
.consult-step-text {
  font-size: 12px;
  color: var(--mid);
  font-weight: 300;
  line-height: 1.55;
}

/* ── CONSULTING BANNERS ── */
.pkg-banner {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: clamp(16px,3vw,32px);
  align-items: center;
  padding: clamp(20px,3vw,28px) clamp(20px,3vw,32px);
  border-radius: var(--rlg);
  border: 1px solid var(--border);
}
.pkg-banner-free     { background: var(--bg); }
.pkg-banner-ongoing  { background: var(--white); }
.pkg-banner-left     { min-width: 0; }
.pkg-banner-right    { display: flex; flex-direction: column; align-items: center; gap: 6px; flex-shrink: 0; min-width: 160px; }

/* ── CONSULTANT CARD ── */
.consultant-card { display: grid; grid-template-columns: 280px 1fr; gap: 0; background: var(--bg); border-radius: var(--rlg); overflow: hidden; }
.consultant-img  { min-height: 320px; background-size: cover; background-position: center top; }
.consultant-body { padding: clamp(28px,4vw,44px); display: flex; flex-direction: column; justify-content: center; }
.consultant-name { font-family: var(--serif); font-size: 30px; color: var(--dark); margin-bottom: 2px; }
.consultant-role { font-size: 11px; letter-spacing: 1.5px; text-transform: uppercase; color: var(--light); margin-bottom: 18px; }
.consultant-stats { display: flex; flex-wrap: wrap; gap: 20px; margin-top: 20px; padding-top: 20px; border-top: 1px solid var(--border); }
.consultant-stat-label { font-size: 9px; letter-spacing: 1.5px; text-transform: uppercase; color: var(--light); display: block; margin-bottom: 2px; }
.consultant-stat-val   { font-size: 13px; color: var(--dark); }

/* RESPONSIVE */
@media (max-width:960px) {
  .tour-layout { grid-template-columns:1fr; }
  .tour-main { padding-right:0; }
  .tour-sidebar { position:static; margin-top:40px; }
  .consult-banner { grid-template-columns:1fr; }
  .split { grid-template-columns:1fr; }
  .split-img { min-height:260px; order:-1; }
  .footer-inner { grid-template-columns:1fr 1fr; }
  .months-grid { grid-template-columns:repeat(6,1fr); }
}
@media (max-width:700px) {
  .nav-links { display:none; }
  .hamburger { display:flex; }
  .dest-grid { grid-template-columns:1fr 1fr; }
  .dest-ed-row { grid-template-columns:1fr; }
  .dest-ed-swatch { height:160px; }
  .tour-grid { grid-template-columns:1fr; }
  .how-grid { grid-template-columns:1fr; gap:28px; }
  .frow { grid-template-columns:1fr; }
  .included-grid { grid-template-columns:1fr; }
  .hl-grid { grid-template-columns:1fr; }
  .testimonial-wrap { flex-direction:column; gap:18px; }
  .hero-meta { gap:14px; }
  .hero-meta-item { border-right:none; padding-right:0; margin-right:0; }
  .hero-actions { flex-direction:column; }
  .btn-primary,.btn-ghost { width:100%; text-align:center; }
  .tl-item::before { display:none; }
  .tl-time { min-width:55px; }
  .packages-grid { grid-template-columns:1fr; max-width:420px; }
  .consult-who-grid { grid-template-columns:1fr !important; }
  .contact-grid { grid-template-columns:1fr !important; }
}
@media (max-width:480px) {
  .dest-grid { grid-template-columns:1fr; }
  .months-grid { grid-template-columns:repeat(4,1fr); }
  .footer-inner { grid-template-columns:1fr; }
  .footer-bottom { flex-direction:column; text-align:center; }
}

@media (max-width: 960px) {
  .consultant-card { grid-template-columns: 1fr; }
  .consultant-img  { min-height: 240px; }
}
@media (max-width: 700px) {
  .consult-steps { grid-template-columns: 1fr; gap: 16px; }
  .consult-step::after { display: none; }
  .consult-step { padding: 0; }
  .pkg-banner { grid-template-columns: 1fr; }
  .pkg-banner-right { align-items: flex-start; min-width: unset; }
}

/* ── IMAGE CREDIT OVERLAY ── */
.img-credit-wrap { position:relative; display:block; }
.img-credit { position:absolute; bottom:6px; right:8px; font-size:10px; color:rgba(255,255,255,.55); background:rgba(0,0,0,.25); padding:2px 6px; border-radius:3px; pointer-events:none; letter-spacing:.3px; }
