:root {
  --cream: #fbf1e8;
  --rose: #b56a66;
  --rose-dark: #7e383b;
  --olive: #4f5b3f;
  --forest: #203c2f;
  --sage: #dfe4d5;
  --earth: #9b6341;
  --gold: #d9a05c;
  --ink: #263126;
  --muted: #657063;
  --white: #fffaf3;
  --shadow: 0 28px 80px rgba(80, 52, 39, .16);
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  direction: rtl;
  font-family: Assistant, Arial, sans-serif;
  background: var(--cream);
  color: var(--ink);
  overflow-x: hidden;
}
body.modal-open { overflow: hidden; }
img, video { max-width: 100%; display: block; }
a { color: inherit; }
button, input, textarea { font-family: inherit; }
.section-shell { width: min(100% - 44px, 1180px); margin: 0 auto; }
.kicker {
  color: var(--rose-dark);
  font-weight: 900;
  letter-spacing: .05em;
  font-size: 1rem;
  display: inline-flex;
  align-items: center;
  gap: 10px;
}
.kicker::before, .kicker::after {
  content: '';
  display: inline-block;
  width: 32px;
  height: 1px;
  background: currentColor;
  opacity: .42;
}
.cta-button, .ghost-button, .ghost-dark-button, .phone-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  border-radius: 999px;
  font-weight: 900;
  border: 0;
  cursor: pointer;
}
.cta-button {
  min-height: 54px;
  padding: 14px 24px;
  color: #fff;
  background: linear-gradient(135deg, var(--rose), var(--forest));
  box-shadow: 0 18px 42px rgba(126, 56, 59, .22);
  transition: transform .25s ease, box-shadow .25s ease;
}
.cta-button:hover { transform: translateY(-2px); box-shadow: 0 24px 54px rgba(126, 56, 59, .28); }
.ghost-button {
  min-height: 54px;
  padding: 13px 22px;
  color: #fff;
  border: 1px solid rgba(255,255,255,.4);
  background: rgba(255,255,255,.12);
  backdrop-filter: blur(10px);
}
.ghost-dark-button {
  min-height: 50px;
  padding: 12px 20px;
  color: var(--forest);
  border: 1px solid rgba(32,60,47,.18);
  background: rgba(255,255,255,.48);
}
[data-reveal] { opacity: 0; transform: translateY(28px); transition: opacity .8s ease, transform .8s ease; }
[data-reveal].is-visible { opacity: 1; transform: translateY(0); }

.nepal-hero {
  position: relative;
  min-height: 100svh;
  overflow: hidden;
  color: white;
  display: grid;
  align-items: center;
  isolation: isolate;
}
.hero-bg {
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(90deg, rgba(18,35,28,.42), rgba(18,35,28,.9) 64%),
    url('../journeys/nepal-kesher-savta/village-group.webp');
  background-size: cover;
  background-position: center;
  transform: scale(1.04);
  animation: heroBreath 15s ease-in-out infinite alternate;
  z-index: -3;
}
.hero-mist {
  position: absolute;
  inset: auto -14% -26% -14%;
  height: 50%;
  background:
    radial-gradient(circle at 28% 18%, rgba(255,230,207,.22), transparent 48%),
    linear-gradient(0deg, rgba(251,241,232,.36) 0%, rgba(251,241,232,.18) 42%, rgba(251,241,232,.04) 72%, transparent 100%);
  filter: blur(34px);
  opacity: .58;
  z-index: -2;
  pointer-events: none;
}
.nepal-hero::after {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 22% 20%, rgba(217,160,92,.26), transparent 36%);
  z-index: -1;
  pointer-events: none;
}
@keyframes heroBreath { from { transform: scale(1.04); } to { transform: scale(1.11); } }
.hero-content {
  width: min(100% - 52px, 1220px);
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr .9fr;
  gap: clamp(30px, 5vw, 70px);
  align-items: center;
  padding: 130px 0 80px;
}
.hero-pill {
  display: inline-flex;
  padding: 11px 18px;
  border-radius: 999px;
  background: rgba(255,255,255,.14);
  border: 1px solid rgba(255,255,255,.24);
  backdrop-filter: blur(10px);
  font-weight: 900;
  color: #fff2e3;
}
.hero-copy h1 {
  margin: 24px 0 14px;
  font-size: clamp(4rem, 8vw, 8.2rem);
  line-height: .88;
  letter-spacing: -.06em;
  font-weight: 900;
}
.hero-subtitle {
  font-size: clamp(1.45rem, 2.6vw, 2.45rem);
  line-height: 1.22;
  color: #ffe6d7;
  font-weight: 800;
  margin: 0 0 18px;
}
.hero-text {
  max-width: 760px;
  font-size: 1.18rem;
  line-height: 1.85;
  color: rgba(255,255,255,.86);
}
.hero-actions { display: flex; flex-wrap: wrap; gap: 14px; margin: 30px 0; }
.hero-facts {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
  max-width: 820px;
}
.hero-facts div {
  padding: 16px 18px;
  border-radius: 22px;
  background: rgba(255,255,255,.13);
  border: 1px solid rgba(255,255,255,.16);
  backdrop-filter: blur(10px);
}
.hero-facts small { display: block; color: rgba(255,255,255,.64); font-weight: 800; margin-bottom: 5px; }
.hero-facts strong { font-size: 1.05rem; }
.hero-visual { position: relative; min-height: 620px; }
.photo-card {
  position: absolute;
  margin: 0;
  border-radius: 34px;
  overflow: hidden;
  box-shadow: 0 28px 90px rgba(0,0,0,.28);
  border: 8px solid rgba(255,250,243,.88);
  background: #fff;
}
.photo-card img { width: 100%; height: 100%; object-fit: cover; }
.photo-card.main { width: 62%; height: 520px; right: 10%; top: 20px; transform: rotate(-2deg); z-index: 2; }
.photo-card.small { width: 250px; height: 310px; }
.photo-card.one { left: 0; top: 40px; transform: rotate(6deg); z-index: 1; }
.photo-card.two { left: -8%; bottom: -8px; transform: rotate(-7deg); z-index: 1; width: 230px; height: 292px; }
.hero-note {
  position: absolute;
  right: 0;
  bottom: 42px;
  z-index: 3;
  max-width: 310px;
  padding: 22px 24px;
  border-radius: 28px;
  background: rgba(255,250,243,.9);
  color: var(--forest);
  box-shadow: var(--shadow);
}
.hero-note strong { display: block; font-size: 1.22rem; margin-bottom: 6px; color: var(--rose-dark); }
.hero-note span { line-height: 1.55; color: #556154; font-weight: 800; }
.hero-scroll {
  position: absolute;
  bottom: 26px;
  right: 50%;
  transform: translateX(50%);
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: rgba(255,255,255,.82);
  text-decoration: none;
  font-weight: 800;
}
.hero-scroll span { width: 18px; height: 32px; border: 2px solid rgba(255,255,255,.55); border-radius: 999px; position: relative; }
.hero-scroll span::after { content: ''; width: 4px; height: 7px; background: #fff; border-radius: 99px; position: absolute; top: 6px; right: 50%; transform: translateX(50%); animation: scrollDot 1.4s infinite; }
@keyframes scrollDot { 0% { opacity: .2; transform: translate(50%, 0); } 55% { opacity: 1; transform: translate(50%, 10px); } 100% { opacity: 0; transform: translate(50%, 16px); } }

.intro-section, .essence-section, .fit-section, .team-section, .gallery-section, .faq-section { padding: 110px 0; }
.intro-section { background: linear-gradient(180deg, var(--cream), #fffaf3); }
.intro-grid { display: grid; grid-template-columns: 1fr .9fr; gap: 54px; align-items: center; }
.intro-copy h2, .section-heading h2, .fit-copy h2, .video-copy h2, .faq-copy h2, .lead-copy h2 {
  font-size: clamp(2.3rem, 5vw, 5rem);
  line-height: .95;
  margin: 12px 0 18px;
  color: var(--forest);
  letter-spacing: -.035em;
}
.intro-copy p, .section-heading p, .fit-copy p, .video-copy p, .faq-copy p, .lead-copy p {
  font-size: 1.16rem;
  line-height: 1.85;
  color: var(--muted);
}
.intro-photo { position: relative; border-radius: 42px; overflow: hidden; min-height: 560px; box-shadow: var(--shadow); }
.intro-photo img { width: 100%; height: 100%; object-fit: cover; position: absolute; inset: 0; }
.intro-badge {
  position: absolute;
  right: 22px;
  bottom: 22px;
  border-radius: 999px;
  padding: 12px 18px;
  background: rgba(255,250,243,.86);
  color: var(--forest);
  font-weight: 900;
  backdrop-filter: blur(8px);
}

.quick-lead-section { padding: 30px 0 90px; background: #fffaf3; }
.quick-lead-card {
  display: grid;
  grid-template-columns: .95fr 1.05fr;
  gap: 34px;
  align-items: center;
  border-radius: 42px;
  background: linear-gradient(135deg, rgba(255,255,255,.86), rgba(238,225,211,.8));
  box-shadow: var(--shadow);
  padding: clamp(26px, 4vw, 46px);
  border: 1px solid rgba(126,56,59,.12);
}
.quick-lead-copy h2 { margin: 10px 0 10px; color: var(--rose-dark); font-size: clamp(2rem, 4vw, 3.6rem); line-height: 1; }
.quick-lead-copy p { color: var(--muted); line-height: 1.7; }
.quick-lead-form { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; align-items: end; }
.quick-lead-form .cta-button { grid-column: span 2; }
.quick-lead-form .ghost-dark-button { grid-column: span 1; }
.form-field { display: grid; gap: 7px; }
.form-field label { font-weight: 900; color: var(--forest); }
.form-field input, .form-field textarea {
  width: 100%;
  border: 1px solid rgba(79,91,63,.18);
  background: rgba(255,255,255,.86);
  border-radius: 18px;
  min-height: 52px;
  padding: 12px 16px;
  color: var(--ink);
  outline: none;
}
.form-field textarea { min-height: 110px; resize: vertical; }
.form-field input:focus, .form-field textarea:focus { border-color: var(--rose); box-shadow: 0 0 0 4px rgba(181,106,102,.12); }
.form-note { margin: 8px 0 0; color: var(--forest); font-weight: 800; grid-column: 1 / -1; }

.essence-section { background: var(--cream); }
.section-heading { text-align: center; max-width: 880px; margin: 0 auto 44px; }
.essence-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.essence-card {
  min-height: 290px;
  padding: 30px;
  border-radius: 32px;
  background: rgba(255,250,243,.8);
  border: 1px solid rgba(126,56,59,.1);
  box-shadow: 0 18px 54px rgba(80,52,39,.09);
  transition: transform .3s ease, box-shadow .3s ease;
}
.essence-card:hover { transform: translateY(-6px); box-shadow: var(--shadow); }
.essence-card span { color: var(--rose); font-size: .95rem; font-weight: 900; }
.essence-card h3 { margin: 16px 0 10px; color: var(--forest); font-size: 1.55rem; }
.essence-card p { margin: 0; color: var(--muted); line-height: 1.72; font-weight: 650; }

.fit-section { background: linear-gradient(180deg, #fffaf3, #f4e7dc); }
.fit-layout { display: grid; grid-template-columns: .9fr 1.1fr; gap: 44px; align-items: center; }
.fit-list { display: grid; gap: 14px; }
.fit-list div {
  background: rgba(255,250,243,.84);
  border-radius: 24px;
  border: 1px solid rgba(126,56,59,.12);
  box-shadow: 0 16px 42px rgba(80,52,39,.08);
  padding: 20px 22px;
  color: #40503c;
  font-size: 1.08rem;
  line-height: 1.55;
  font-weight: 800;
}
.fit-list div::before { content: '●'; color: var(--rose); margin-left: 10px; }

.route-program {
  position: relative;
  overflow: hidden;
  padding: 112px 0;
  color: #fffaf3;
  isolation: isolate;
}
.program-bg { position: absolute; inset: 0; z-index: -3; }
.program-bg img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transform: scale(1.06); transition: opacity .65s ease, transform 1.2s ease; filter: saturate(.85); }
.program-bg img.is-active { opacity: 1; transform: scale(1); }
.route-program::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(20,41,32,.86), rgba(20,41,32,.52));
  z-index: -2;
}
.route-program::after {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 15% 10%, rgba(181,106,102,.28), transparent 38%), radial-gradient(circle at 80% 40%, rgba(217,160,92,.18), transparent 42%);
  z-index: -1;
}
.program-header {
  text-align: center;
  max-width: 820px;
  margin: 0 auto 56px;
  color: #fff;
  background: rgba(255,250,243,.12);
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 34px;
  padding: 30px;
  backdrop-filter: blur(10px);
}
.program-header .kicker { color: #ffe2cf; }
.program-header h2 { font-size: clamp(2.8rem, 6.8vw, 7rem); line-height: .9; margin: 12px 0; }
.program-header p { margin: 0; font-size: 1.18rem; line-height: 1.7; color: rgba(255,255,255,.82); }
.program-layout { display: grid; grid-template-columns: 160px 1fr; gap: 38px; align-items: start; }
.route-nav { position: sticky; top: 92px; height: calc(100svh - 110px); min-height: 660px; }
.route-nav-inner { position: relative; height: 100%; max-height: 760px; }
.route-nav svg { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; }
.route-path-base, .route-path-progress { fill: none; stroke-width: 9; stroke-linecap: round; }
.route-path-base { stroke: rgba(255,255,255,.2); }
.route-path-progress { stroke: #f2c59b; stroke-dasharray: var(--route-length, 1000); stroke-dashoffset: calc(var(--route-length, 1000) * (1 - var(--route-progress, 0))); filter: drop-shadow(0 0 10px rgba(242,197,155,.22)); }
.route-dot {
  position: absolute;
  right: 50%;
  transform: translateX(50%);
  width: 48px;
  height: 48px;
  border: 1px solid rgba(255,255,255,.35);
  border-radius: 50%;
  background: rgba(255,255,255,.18);
  color: rgba(255,255,255,.72);
  font-weight: 900;
  cursor: pointer;
  backdrop-filter: blur(8px);
  transition: transform .25s ease, background .25s ease, color .25s ease;
}
.route-dot:nth-of-type(1) { top: 1%; }
.route-dot:nth-of-type(2) { top: 10.5%; }
.route-dot:nth-of-type(3) { top: 20%; }
.route-dot:nth-of-type(4) { top: 30%; }
.route-dot:nth-of-type(5) { top: 40%; }
.route-dot:nth-of-type(6) { top: 50%; }
.route-dot:nth-of-type(7) { top: 60%; }
.route-dot:nth-of-type(8) { top: 70%; }
.route-dot:nth-of-type(9) { top: 80%; }
.route-dot:nth-of-type(10) { top: 90%; }
.route-dot.is-active {
  background: #fff2dd;
  color: var(--forest);
  transform: translateX(50%) scale(1.2);
  box-shadow: 0 18px 48px rgba(255,230,207,.28);
}
.program-days { display: grid; gap: 42px; }
.day-card {
  display: grid;
  grid-template-columns: .78fr 1fr;
  background: rgba(255,250,243,.94);
  color: var(--ink);
  border-radius: 38px;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.36);
  box-shadow: 0 34px 110px rgba(0,0,0,.22);
  opacity: .8;
  transform: scale(.985);
  transition: opacity .4s ease, transform .4s ease;
  scroll-margin-top: 110px;
}
.day-card:nth-child(even) { grid-template-columns: 1fr .78fr; }
.day-card:nth-child(even) .day-image { order: 2; }
.day-card.is-active { opacity: 1; transform: scale(1); }
.day-image { min-height: 500px; position: relative; overflow: hidden; }
.day-image img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.day-content { padding: clamp(28px, 4vw, 54px); }
.day-meta { display: flex; align-items: center; justify-content: space-between; gap: 12px; color: var(--rose-dark); font-weight: 900; margin-bottom: 18px; }
.day-content h3 { font-size: clamp(2rem, 4.2vw, 4.6rem); line-height: .95; margin: 0 0 18px; color: var(--forest); letter-spacing: -.035em; }
.day-content p { font-size: 1.08rem; line-height: 1.8; color: #52604f; margin: 0 0 16px; font-weight: 650; }
.mini-facts { list-style: none; padding: 0; margin: 22px 0 0; display: grid; gap: 9px; }
.mini-facts li { border-radius: 16px; padding: 11px 14px; background: rgba(181,106,102,.09); color: #485746; font-weight: 900; }

.video-section { padding: 110px 0; background: linear-gradient(180deg, #f4e7dc, #fffaf3); }
.video-layout { display: grid; grid-template-columns: .82fr 1.18fr; gap: 44px; align-items: center; }
.video-card { border-radius: 40px; overflow: hidden; box-shadow: var(--shadow); background: #000; border: 10px solid #fffaf3; }
.video-card video { width: 100%; height: min(72vh, 680px); min-height: 420px; object-fit: contain; background: #111b17; }

.info-section { padding: 110px 0; background: #fffaf3; }
.info-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.info-card {
  background: rgba(244,231,220,.72);
  border: 1px solid rgba(126,56,59,.12);
  border-radius: 30px;
  padding: 28px;
  box-shadow: 0 14px 42px rgba(80,52,39,.07);
}
.info-card h3 { color: var(--rose-dark); font-size: 1.55rem; margin: 0 0 12px; }
.info-card p { color: #5b6659; line-height: 1.75; margin: 0; font-weight: 650; }

.team-section { background: linear-gradient(180deg, var(--cream), #fff7ed); }
.team-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px; }
.team-card {
  background: rgba(255,250,243,.86);
  border: 1px solid rgba(126,56,59,.12);
  border-radius: 34px;
  padding: 28px;
  box-shadow: var(--shadow);
  display: grid;
  grid-template-columns: 132px 1fr;
  gap: 20px;
  align-items: center;
}
.team-card.featured { grid-template-columns: 150px 1fr; }
.team-card.wide { grid-column: 1 / -1; grid-template-columns: 150px 1fr; }
.team-card img { width: 132px; height: 132px; object-fit: cover; object-position: 50% 38%; border-radius: 50%; border: 7px solid #fff; box-shadow: 0 12px 36px rgba(0,0,0,.12); }
.team-card.featured img, .team-card.wide img { width: 150px; height: 150px; }
.team-card h3 { color: var(--forest); font-size: 1.65rem; margin: 0 0 4px; }
.team-card strong { color: var(--rose-dark); display: block; margin-bottom: 8px; }
.team-card p { color: #5d695b; line-height: 1.72; margin: 0; font-weight: 650; }

.gallery-section { background: var(--cream); }
.gallery-grid { display: grid; grid-template-columns: repeat(4, 1fr); grid-auto-rows: 280px; gap: 18px; }
.gallery-grid figure { margin: 0; position: relative; overflow: hidden; border-radius: 30px; box-shadow: var(--shadow); }
.gallery-grid figure.wide { grid-column: span 2; }
.gallery-grid img { width: 100%; height: 100%; object-fit: cover; transition: transform .75s ease; }
.gallery-grid figure:hover img { transform: scale(1.06); }
.gallery-grid figcaption { position: absolute; right: 14px; left: 14px; bottom: 14px; padding: 12px 16px; border-radius: 18px; background: rgba(32,60,47,.68); color: white; font-weight: 900; backdrop-filter: blur(9px); }

.faq-section { background: #fffaf3; }
.faq-layout { display: grid; grid-template-columns: .82fr 1.18fr; gap: 44px; }
.faq-list { display: grid; gap: 12px; }
.faq-item { background: rgba(244,231,220,.62); border: 1px solid rgba(126,56,59,.12); border-radius: 24px; overflow: hidden; box-shadow: 0 15px 42px rgba(80,52,39,.07); }
.faq-question { width: 100%; border: 0; background: none; padding: 20px 24px; text-align: right; font-size: 1.12rem; font-weight: 900; color: var(--forest); cursor: pointer; display: flex; align-items: center; justify-content: space-between; }
.faq-question::after { content: '+'; color: var(--rose); font-size: 1.6rem; }
.faq-item.is-open .faq-question::after { content: '×'; }
.faq-answer { max-height: 0; overflow: hidden; transition: max-height .3s ease; }
.faq-answer p { margin: 0; padding: 0 24px 22px; color: #5d695b; line-height: 1.75; font-weight: 650; }

.lead-section {
  position: relative;
  overflow: hidden;
  padding: 110px 0;
  background:
    radial-gradient(circle at 12% 18%, rgba(181,106,102,.18), transparent 34%),
    radial-gradient(circle at 84% 22%, rgba(217,160,92,.18), transparent 32%),
    linear-gradient(135deg, #fff8ef 0%, #f5e7dc 48%, #ecddd0 100%);
  color: var(--ink);
}
.lead-section::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image: url('../journeys/nepal-kesher-savta/rice-sunset.webp');
  background-size: cover;
  background-position: center;
  opacity: .12;
  filter: blur(1px) saturate(.85);
  transform: scale(1.02);
}
.lead-section::after {
  content: '';
  position: absolute;
  inset: auto -10% -42% -10%;
  height: 58%;
  background: radial-gradient(ellipse at center, rgba(255,250,243,.9), transparent 68%);
  pointer-events: none;
}
.lead-layout { position: relative; z-index: 1; display: grid; grid-template-columns: .82fr 1.18fr; gap: 42px; align-items: center; }
.lead-copy h2 { color: var(--forest); }
.lead-copy p { color: #52604f; font-weight: 750; }
.direct-actions { margin-top: 22px; display: flex; gap: 12px; flex-wrap: wrap; }
.phone-link { color: var(--forest); border: 1px solid rgba(126,56,59,.18); padding: 13px 18px; background: rgba(255,250,243,.72); box-shadow: 0 12px 34px rgba(80,52,39,.08); }
.lead-card { background: rgba(255,250,243,.96); color: var(--ink); padding: 32px; border-radius: 34px; border: 1px solid rgba(126,56,59,.12); box-shadow: 0 30px 90px rgba(80,52,39,.16); }
.form-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; }
.form-field.full { grid-column: 1 / -1; }
.consent { display: flex; gap: 10px; align-items: flex-start; margin: 16px 0; color: #52604f; line-height: 1.5; font-weight: 750; }
.site-footer { padding: 28px; background: #1d352b; color: rgba(255,255,255,.82); text-align: center; }

.floating-lead-cta { position: fixed; z-index: 80; right: 24px; bottom: 24px; }
.floating-lead-button { border: 0; cursor: pointer; color: white; background: linear-gradient(135deg, var(--rose), var(--forest)); padding: 13px 18px; border-radius: 999px; box-shadow: 0 20px 45px rgba(80,52,39,.28); display: flex; flex-direction: column; align-items: flex-start; gap: 2px; min-width: 238px; }
.floating-lead-button span { font-size: .92rem; opacity: .9; }
.floating-lead-button strong { font-size: 1.08rem; }
.lead-modal { position: fixed; inset: 0; z-index: 100; opacity: 0; pointer-events: none; transition: opacity .25s ease; }
.lead-modal.is-open { opacity: 1; pointer-events: auto; }
.lead-modal-backdrop { position: absolute; inset: 0; background: rgba(22,34,28,.64); backdrop-filter: blur(8px); }
.lead-modal-panel { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -45%); width: min(900px, calc(100% - 28px)); background: #fff8ef; border-radius: 36px; box-shadow: 0 40px 120px rgba(0,0,0,.36); padding: 32px; display: grid; grid-template-columns: .85fr 1.15fr; gap: 28px; transition: transform .25s ease; }
.lead-modal.is-open .lead-modal-panel { transform: translate(-50%, -50%); }
.lead-modal-close { position: absolute; top: 16px; left: 18px; width: 42px; height: 42px; border: 0; border-radius: 50%; background: rgba(126,56,59,.1); color: var(--ink); font-size: 2rem; line-height: 1; cursor: pointer; }
.lead-modal-copy { padding: 30px 12px 12px; }
.lead-modal-copy h2 { margin: 12px 0; font-size: clamp(2rem, 4vw, 3.4rem); line-height: .95; color: var(--forest); }
.lead-modal-copy p { color: var(--muted); line-height: 1.75; }
.modal-lead-form { display: grid; gap: 13px; }

@media (max-width: 1080px) {
  .hero-content, .intro-grid, .quick-lead-card, .fit-layout, .video-layout, .faq-layout, .lead-layout { grid-template-columns: 1fr; }
  .hero-visual { min-height: 560px; }
  .hero-facts, .essence-grid, .info-grid, .team-grid { grid-template-columns: repeat(2, 1fr); }
  .program-layout { grid-template-columns: 1fr; }
  .route-nav { position: sticky; top: 84px; height: auto; min-height: auto; z-index: 5; margin-bottom: 22px; }
  .route-nav-inner { height: auto; max-height: none; display: flex; gap: 9px; overflow-x: auto; padding: 12px; border-radius: 999px; background: rgba(255,250,243,.18); backdrop-filter: blur(12px); }
  .route-nav svg { display: none; }
  .route-dot { position: relative !important; inset: auto !important; right: auto; transform: none; flex: 0 0 auto; width: 48px; height: 48px; }
  .route-dot.is-active { transform: scale(1.08); }
  .day-card, .day-card:nth-child(even) { grid-template-columns: 1fr; }
  .day-card:nth-child(even) .day-image { order: 0; }
  .day-image { min-height: 360px; }
}
@media (max-width: 680px) {
  .section-shell { width: min(100% - 24px, 1180px); }
  .hero-content { width: min(100% - 24px, 1180px); padding-top: 120px; }
  .hero-copy h1 { font-size: clamp(3.7rem, 21vw, 5.8rem); }
  .hero-visual { display: none; }
  .hero-facts, .essence-grid, .info-grid, .team-grid, .form-grid, .quick-lead-form { grid-template-columns: 1fr; }
  .quick-lead-form { align-items: stretch; }
  .gallery-grid { grid-template-columns: 1fr; grid-auto-rows: 260px; }
  .gallery-grid figure.wide { grid-column: span 1; }
  .team-card.featured { grid-template-columns: 1fr; text-align: center; }
  .team-card img { margin: 0 auto; }
  .lead-modal-panel { grid-template-columns: 1fr; max-height: calc(100svh - 28px); overflow: auto; padding: 26px; }
  .floating-lead-cta { right: 12px; left: 12px; bottom: 14px; }
  .floating-lead-button { width: 100%; min-width: 0; align-items: center; }
}


/* v16 refinements - Nepal Kesher Savta */
.nepal-hero .hero-mist {
  mix-blend-mode: soft-light;
}
.route-program {
  overflow: visible;
}
.program-bg {
  overflow: hidden;
  pointer-events: none;
}
.program-layout {
  align-items: stretch;
  position: relative;
}
.route-nav {
  position: sticky !important;
  top: max(104px, calc(50vh - 330px));
  align-self: flex-start;
  z-index: 12;
}
.route-nav-inner {
  min-height: 660px;
}
.route-dot {
  z-index: 3;
  outline: 1px solid rgba(255,255,255,.18);
}
.route-dot.is-active {
  outline: 8px solid rgba(255,242,221,.18);
}
.video-card {
  background: #111b17;
}
.team-card:nth-child(2) img { object-position: center 36%; }
.team-card:nth-child(3) img { object-position: center 30%; }
.team-card:nth-child(4) img { object-position: center 28%; }
.team-card:nth-child(5) img { object-position: center 42%; }
@media (max-width: 1080px) {
  .route-program { overflow: hidden; }
  .route-nav {
    position: sticky !important;
    top: 82px;
    min-height: 84px;
    height: 84px;
    background: rgba(37,62,49,.62);
    border: 1px solid rgba(255,255,255,.16);
    border-radius: 999px;
    backdrop-filter: blur(14px);
    margin-bottom: 22px;
  }
  .route-nav-inner { min-height: 0; }
}
@media (max-width: 680px) {
  .video-card video { min-height: 360px; height: min(76vh, 620px); }
  .team-card, .team-card.wide { grid-template-columns: 1fr; text-align: center; }
}


/* v17 refinements - Nepal Kesher Savta */
.hero-visual .photo-card.two {
  left: -10%;
  bottom: -14px;
}
@media (min-width: 1081px) {
  .program-layout {
    grid-template-columns: 170px minmax(0, 1fr);
    align-items: start;
  }
  .route-nav {
    position: sticky !important;
    top: 50vh !important;
    transform: translateY(-50%);
    height: min(76vh, 760px) !important;
    min-height: 620px;
    align-self: start;
  }
  .route-nav-inner {
    height: 100%;
    min-height: 620px;
    max-height: 760px;
  }
}
.lead-section .kicker,
.lead-section .lead-copy .kicker {
  color: var(--rose-dark);
}
.lead-section .ghost-button {
  color: var(--forest);
  border-color: rgba(126,56,59,.18);
  background: rgba(255,250,243,.76);
}


/* v18 refinements - Nepal Kesher Savta */
.hero-visual .photo-card.one {
  left: -8%;
  top: 34px;
}
@media (max-width: 1080px) {
  .hero-visual .photo-card.one { left: 0; top: 40px; }
}

/* v28 - unified lead form layout */
.modal-lead-form,
.quick-lead-form,
.final-form,
form.lead-card,
form[data-lead-form] .form-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 14px 16px;
  align-items: end;
}

.modal-lead-form .form-field,
.quick-lead-form .form-field,
.final-form .form-field,
form.lead-card .form-field,
form[data-lead-form] .form-grid .form-field {
  min-width: 0;
}

.modal-lead-form .email-field,
.quick-lead-form .email-field,
.final-form .email-field,
form.lead-card .email-field,
form[data-lead-form] .form-grid .email-field,
.modal-lead-form .full,
.quick-lead-form .full,
.final-form .full,
form.lead-card .full,
form[data-lead-form] .form-grid .full {
  grid-column: 1 / -1;
}

.modal-lead-form .consent,
.quick-lead-form .consent,
.final-form .consent,
form.lead-card .consent,
form[data-lead-form] > .consent {
  grid-column: 1 / -1;
  display: flex;
  gap: 10px;
  align-items: flex-start;
  margin: 12px 0 18px;
  line-height: 1.55;
}

.modal-lead-form .consent input,
.quick-lead-form .consent input,
.final-form .consent input,
form.lead-card .consent input,
form[data-lead-form] > .consent input {
  width: 18px;
  height: 18px;
  flex: 0 0 auto;
  margin-top: 3px;
  accent-color: var(--turquoise, #328b86);
}

.modal-lead-form .consent span,
.quick-lead-form .consent span,
.final-form .consent span,
form.lead-card .consent span,
form[data-lead-form] > .consent span {
  font-size: .92rem;
  font-weight: 700;
}

.modal-lead-form .cta-button,
.final-form .cta-button,
form.lead-card .cta-button,
form[data-lead-form] > .cta-button {
  grid-column: 1 / -1;
  margin-top: 2px;
}

.quick-lead-form .cta-button,
.quick-lead-form .ghost-dark-button {
  grid-column: auto;
  width: 100%;
  margin-top: 2px;
}

.modal-lead-form .form-note,
.quick-lead-form .form-note,
.final-form .form-note,
form.lead-card .form-note,
form[data-lead-form] > .form-note {
  grid-column: 1 / -1;
}

@media (max-width: 680px) {
  .modal-lead-form,
  .quick-lead-form,
  .final-form,
  .lead-card,
  form[data-lead-form] .form-grid {
    grid-template-columns: 1fr;
  }

  .quick-lead-form .cta-button,
  .quick-lead-form .ghost-dark-button {
    grid-column: 1 / -1;
  }
}



/* v31: single clear CTA in lead forms */
.quick-lead-form .cta-button {
  grid-column: 1 / -1 !important;
  width: 100%;
}
.quick-lead-form .ghost-dark-button {
  display: none !important;
}


/* v32 - bottom lead form and direct actions refinement */
.lead-section .lead-card {
  display: block !important;
  width: 100%;
}
.lead-section .lead-card .form-grid {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 14px 16px;
  width: 100%;
}
.lead-section .lead-card .form-grid .full { grid-column: 1 / -1; }
.lead-section .lead-card > .consent,
.lead-section .lead-card > .cta-button,
.lead-section .lead-card > .form-note {
  width: 100%;
}
.lead-section .direct-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 22px; }
.lead-section .phone-link {
  display: inline-flex; align-items: center; justify-content: center;
  min-height: 44px; padding: 10px 18px; border-radius: 999px;
  text-decoration: none; font-weight: 900;
  border: 1px solid rgba(51,84,76,.2); color: #2d5148; background: rgba(255,255,255,.72);
}
@media (max-width: 680px) {
  .lead-section .lead-card .form-grid { grid-template-columns: 1fr; }
}
