*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --white:#fff;--bg:#f9f9f9;--ink:#2a2a2a;
  --blue-100:#f0f2f8;--blue-200:#deeefd;--blue-300:#88bbed;--blue-400:#4c99e4;
  --blue-500:#1f9ae0;--blue-600:#0080dd;--blue-700:#0d3256;
  /* --blue-600 = Figma "Blue-Gray" swatch, --blue-700 = Figma "Indigo" swatch (also the button-primary fill) */
  --blue:var(--blue-600);--blue-dark:var(--blue-700);--blue-light:var(--blue-100);
  --indigo:var(--blue-700);
  --green-100:#daefe0;--green-200:#83ffc0;--green-500:#06ff82;--green-600:#00dc6d;
  --green-700:#00b259;--green-800:#008944;--green-900:#006432;--green-1000:#003f1f;
  --green:var(--green-800);--green-hover:var(--green-900);--green-active:var(--green-1000);
  --orange:#ffa900;--orange-dark:#ff7300;--orange-light:#fff5e6;
  --muted:#606060;--muted-light:#9a9a9a;--border:#e8e8e8;--placeholder:#f1f1f1;
  --font:'Outfit',system-ui,sans-serif;--max:1180px;--nav-h:72px;
  --r:14px;--r-lg:20px;--r-xl:28px;--pill:999px;
  --shadow-sm:0 4px 16px rgba(42,42,42,.06);--shadow-md:0 12px 40px rgba(42,42,42,.08);
  --text-h1:34px;--text-h1-lh:51px;--text-h2:28px;--text-h2-lh:42px;
  --text-h3:24px;--text-h3-lh:36px;--text-h4:20px;--text-h4-lh:30px;
  --text-body-lg:18px;--text-body-lg-lh:23px;--text-body:16px;--text-body-lh:20px;
  --text-sm:14px;--text-sm-lh:18px;--text-xs:12px;--text-xs-lh:15px;
}
/* Section headings (lc-h2, lc-prob-heading, lc-rep-h2, lc-faq-heading,
   lc-explore-heading, etc.) all read off --text-h2 — scale it down together
   on mobile instead of letting each class drift to its own one-off size. */
@media(max-width:767px){
  :root{--text-h2:22.4px;--text-h2-lh:33.6px}
}
/* Homepage canvas is plain white per the updated brand guideline — no tint override */
html[data-landing="homepage"]{
  --white:#fff;
  --bg:#fff;
}
html{scroll-behavior:smooth}
body{font-family:var(--font);color:var(--ink);background:var(--white);font-size:var(--text-body);line-height:var(--text-body-lh);-webkit-font-smoothing:antialiased}
h1,h2,h3{text-transform:capitalize}
h1 em,h2 em,h3 em,h1 .h-accent,h2 .h-accent,h3 .h-accent{font-style:normal;color:var(--green-800)}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
button{font:inherit;cursor:pointer}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.wrap{max-width:var(--max);margin:0 auto;padding:0 24px}
.section{padding:80px 0}
@media(max-width:767px){.section{padding:20px 0}}

/* Button shape follows the Figma spec (rounded-rect, not pill) — sizes: Medium
   (default) 54px/10px radius, Small 48px/8px, Large 64px/12px. Colors are
   unchanged (green stays the brand CTA color; it already matches Figma). */
.btn{display:inline-flex;align-items:center;justify-content:center;text-align:center;gap:8px;min-height:54px;padding:0 24px;border-radius:10px;font-weight:600;font-size:var(--text-sm);line-height:var(--text-sm-lh);border:2px solid transparent;transition:background .22s,border-color .22s,transform .3s cubic-bezier(.34,1.56,.64,1),box-shadow .25s;white-space:nowrap}
.btn-lg{min-height:56px;padding:0 28px;border-radius:12px;font-size:var(--text-sm)}
.btn-cta,.btn-green{background:var(--green);color:#fff !important;border-color:var(--green);box-shadow:0 6px 24px rgba(0,137,68,.28)}
.btn-cta:hover,.btn-green:hover{background:var(--green-hover);border-color:var(--green-hover);color:#fff !important;transform:translateY(-2px);box-shadow:0 10px 32px rgba(0,137,68,.36)}
.btn-cta:active,.btn-green:active{background:var(--green-active);border-color:var(--green-active);color:#fff !important;transform:translateY(0);box-shadow:0 4px 12px rgba(0,137,68,.20)}
.btn-cta:disabled,.btn-green:disabled{background:var(--green);border-color:var(--border);color:#fff !important;opacity:.55;transform:none;box-shadow:none}
.btn-blue{background:var(--blue);color:#fff;border-color:var(--blue);box-shadow:0 6px 24px rgba(0,128,221,.28)}
.btn-blue:hover{background:var(--blue-dark);border-color:var(--blue-dark);transform:translateY(-2px);box-shadow:0 10px 32px rgba(0,128,221,.36)}
.btn-outline{background:transparent;color:var(--ink);border-color:var(--border)}
.btn-outline:hover{border-color:var(--ink);transform:translateY(-1px)}
.btn-white{background:#fff;color:var(--green);border-color:#fff}
.btn-white:hover{background:var(--green-100);transform:translateY(-2px)}
.btn-sm{min-height:48px;padding:0 18px;border-radius:8px;font-size:var(--text-sm)}

.site-nav{position:sticky;top:0;z-index:300;padding:0px 0px 0;background:linear-gradient(180deg,var(--white) 60%,rgba(255,255,255,0) 100%);transition:padding .25s}
.site-nav.is-scrolled{padding-top:10px}
.nav-inner{
  position:relative;max-width:var(--max);margin:0 auto;padding:0 10px 0 22px;height:64px;
  display:flex;align-items:center;gap:16px;
  background:rgba(255,255,255,.86);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
  border:1px solid rgba(228,232,239,.8);border-radius:12px;
  box-shadow:0 1px 2px rgba(13,50,86,.04),0 12px 32px -8px rgba(13,50,86,.10);
  transition:box-shadow .25s,border-color .25s;
}
.site-nav.is-scrolled .nav-inner{box-shadow:0 1px 2px rgba(13,50,86,.06),0 16px 40px -8px rgba(13,50,86,.16);border-color:var(--border)}
.nav-logo{flex-shrink:0;position:relative;display:inline-block;width:162px;height:37px}
.nav-logo-img{height:37px;width:auto;display:block}
/* Two classes (not one) so this beats page-scoped resets like `.lc-page img{display:block}`,
   which tie on class-count specificity and then win on the extra element selector. */
.nav-logo-img.nav-logo-img--light{display:none;position:absolute;top:0;left:0}
/* Without an explicit size here, .nav-logo has no in-flow content (the alt logo is display:none,
   the light one is position:absolute) and collapses to 0×0, hiding both images entirely. */

/* Transparent nav over the homepage's light photo hero — solid pill returns once scrolled past it.
   Bg photo is light, so keep the normal (black/colored) logo and dark link text — only the pill
   chrome (blur/border/shadow) is removed so the nav sits flush over the photo. */
.site-nav--on-hero:not(.is-scrolled){background:none}
.site-nav--on-hero:not(.is-scrolled) .nav-inner{background:none;backdrop-filter:none;-webkit-backdrop-filter:none;border-color:transparent;box-shadow:none}
.nav-links{display:none;align-items:center;gap:2px;margin-left:auto}
@media(min-width:1024px){.nav-links{display:flex}}
.nav-links a{font-size:17.5px;font-weight:600;color:var(--muted);padding:9px 16px;border-radius:999px;transition:color .18s,background .18s}
.nav-links a:hover{color:var(--ink);background:var(--bg)}
.nav-links a.is-active{color:var(--blue-600);background:var(--blue-100)}
.nav-live-dot{display:inline-block;width:7px;height:7px;margin-right:6px;border-radius:50%;background:#e11d3c;box-shadow:0 0 0 0 rgba(225,29,60,.5);vertical-align:middle;animation:navLivePulse 1.8s ease-out infinite}
@keyframes navLivePulse{0%{box-shadow:0 0 0 0 rgba(225,29,60,.5)}70%{box-shadow:0 0 0 6px rgba(225,29,60,0)}100%{box-shadow:0 0 0 0 rgba(225,29,60,0)}}
@media(prefers-reduced-motion:reduce){.nav-live-dot{animation:none}}
.nav-actions{margin-left:auto;display:flex;align-items:center;gap:10px}
/* .nav-actions keeps margin-left:auto at all widths now that .nav-links is gone —
   it's the only thing left to push the CTA to the far right of the pill. */
@media(max-width:767px){.nav-actions>.btn{display:none}}
.nav-toggle{display:flex;flex-direction:column;gap:5px;background:none;border:none;padding:8px;border-radius:8px}
.nav-toggle span{display:block;width:22px;height:2px;background:var(--ink);border-radius:2px;transition:transform .2s,opacity .2s}
@media(min-width:1024px){.nav-toggle{display:none}}
.nav-toggle.is-open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav-toggle.is-open span:nth-child(2){opacity:0}
.nav-toggle.is-open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.nav-drawer{display:none;max-width:var(--max);margin:8px auto 0;border-radius:20px;padding:12px 24px 20px;background:var(--white);border:1px solid var(--border);box-shadow:0 16px 40px -8px rgba(13,50,86,.14)}
.nav-drawer.open{display:block}
.nav-drawer a{display:block;padding:12px 0;font-weight:600;border-bottom:1px solid var(--border)}
.nav-drawer>a.is-active{color:var(--green)}
.nav-drawer a:last-of-type{border:none}
.nav-drawer .drawer-actions{display:flex;flex-direction:column;gap:10px;margin-top:16px;padding-top:16px;border-top:1px solid var(--border)}
.nav-drawer .drawer-actions .btn{
  display:inline-flex;align-items:center;justify-content:center;text-align:center;
  width:100%;padding:12px 24px;border-bottom:none;
}

/* ═══════════════════════════════════════
   HERO — split layout with coach photos
   ═══════════════════════════════════════ */
.hero{padding:16px 0 20px;background:radial-gradient(120% 100% at 82% 0%,var(--blue-100) 0%,rgba(240,242,248,0) 55%),var(--white);overflow:hidden}
@media(min-width:900px){.hero{padding:40px 0 24px}}
.hero .wrap{max-width:1560px}
.hero-grid{display:grid;grid-template-columns:1fr;gap:32px;align-items:center}
@media(min-width:900px){
  .hero-grid{
    grid-template-columns:.9fr 1.15fr;
    grid-template-areas:"top visual" "bottom visual";
    gap:8px 40px;align-items:center;
  }
  .hero-copy-top{grid-area:top}
  .hero-copy-bottom{grid-area:bottom}
  .hero-visual{grid-area:visual}
}
.hero-copy-top,.hero-copy-bottom{position:relative;z-index:2;max-width:620px}
@media(min-width:900px){
  .hero-copy-top,.hero-copy-bottom{
    margin-left:60px;margin-right:-64px;
    background:linear-gradient(to right,rgba(255,255,255,.55) 65%,rgba(255,255,255,0) 100%);
    backdrop-filter:blur(1px);-webkit-backdrop-filter:blur(1px);
    padding:8px 64px 8px 8px;
  }
  .hero-copy-top{max-width:760px;margin-right:-140px}
}
.hero-campaign-hook{display:flex;flex-direction:column;gap:4px;margin-bottom:16px;font-size:clamp(1.4rem,2.6vw,1.9rem);font-weight:800;letter-spacing:-.02em;line-height:1.15;color:var(--green-800)}
.hero-campaign-hook span{font-size:15px;font-weight:600;letter-spacing:0;color:var(--muted);text-transform:none}
.hero-eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--blue-600);margin-bottom:18px}
.hero-eyebrow::before{content:'';width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 0 4px rgba(0,137,68,.14)}
.hero h1{font-size:clamp(1.9rem,3.2vw,2.5rem);font-weight:800;line-height:1.16;letter-spacing:-.03em;color:#000;white-space:normal;text-shadow:0 2px 4px rgba(0,0,0,.12),0 1px 0 rgba(255,255,255,.8)}
.hero h1 .hero-title-line{display:inline-block;white-space:nowrap}
@media(min-width:900px){.hero h1{font-size:clamp(2.0rem,3vw,2.46rem)}}
.hero-divider{display:block;width:56px;height:3px;background:var(--orange-dark);border-radius:2px;margin:22px 0 24px}
.hero-sub{font-size:clamp(var(--text-body),1.4vw,var(--text-body-lg));color:var(--muted);line-height:1.65;margin-top:18px;margin-bottom:18px;max-width:460px}
@media(min-width:900px){.hero-sub{margin-top:28px}}

.hero-ctas-simple{margin:0 0 14px}

/* ── Search bar ── */
.hero-search-wrap{position:relative;width:100%;max-width:520px;margin:0 0 14px}
.hero-search{
  display:flex;align-items:center;gap:10px;
  width:100%;padding:6px 6px 6px 18px;
  background:var(--white);
  border:1.5px solid var(--border);
  border-radius:var(--pill);
  box-shadow:var(--shadow-sm);
  transition:border-color .2s,box-shadow .2s;
}
.hero-search:focus-within{border-color:var(--blue);box-shadow:0 0 0 3px rgba(22,85,146,.12)}
.hero-search-icon{flex-shrink:0;color:var(--muted);display:flex}
.hero-search input{
  flex:1;border:none;background:transparent;
  font:inherit;font-size:16px;font-weight:500;color:var(--ink);
  min-width:0;padding:12px 0;
}
.hero-search input::placeholder{color:var(--muted-light)}
.hero-search input:focus{outline:none}
.hero-search-btn{
  flex-shrink:0;padding:12px 22px;border-radius:var(--pill);
  background:var(--green);color:#fff;font-weight:700;font-size:var(--text-sm);
  border:none;transition:background .15s,transform .25s cubic-bezier(.34,1.56,.64,1);
}
.hero-search-btn:hover{background:var(--green-hover);transform:scale(1.04)}

/* ── Autocomplete suggestions ── */
.hero-search-suggestions{
  position:absolute;top:calc(100% + 8px);left:0;right:0;z-index:50;
  background:#fff;border:1px solid var(--border);border-radius:18px;
  box-shadow:0 18px 44px rgba(0,0,0,.12);overflow:hidden;padding:6px;
}
.hero-search-suggestions[hidden]{display:none}
.hero-search-suggestion{
  width:100%;display:flex;flex-direction:column;gap:2px;
  text-align:left;background:#fff;border:none;border-radius:12px;
  padding:12px 14px;color:var(--ink);transition:background .15s,color .15s;
}
.hero-search-suggestion span{font-weight:700;font-size:14px}
.hero-search-suggestion small{font-size:12px;color:var(--muted);line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hero-search-suggestion:hover,.hero-search-suggestion.is-active{background:var(--green-100)}
.hero-search-suggestion:hover span,.hero-search-suggestion.is-active span{color:var(--green-hover)}

/* ── Chips ── */
.hero-chips{display:flex;flex-wrap:wrap;gap:8px;max-width:520px}
.chip{
  display:inline-flex;align-items:center;padding:8px 16px;border-radius:var(--pill);
  font-size:13px;font-weight:600;
  border:1.5px solid var(--border);background:var(--white);color:var(--ink);
  transition:border-color .22s,background .22s,color .22s,transform .3s cubic-bezier(.34,1.56,.64,1),box-shadow .22s;
}
.chip:hover{border-color:var(--blue);background:var(--blue-light);transform:translateY(-2px);box-shadow:0 6px 16px rgba(22,85,146,.12)}
.chip-orange{border-color:var(--orange) !important;color:var(--orange-dark) !important;background:var(--orange-light) !important}
.chip-orange:hover{border-color:var(--orange-dark) !important;background:#ffe9c2 !important}

/* ── Trust row ── */
.hero-trust{display:flex;align-items:center;gap:12px;margin-top:16px}
.hero-trust-avatars{display:flex}
.hero-trust-avatars img{width:36px;height:36px;border-radius:50%;object-fit:cover;border:2.5px solid var(--white);box-shadow:0 2px 6px rgba(13,50,86,.14);margin-left:-10px}
.hero-trust-avatars img:first-child{margin-left:0}
.hero-trust p{font-size:13.5px;color:var(--muted);line-height:1.4}
.hero-trust strong{color:var(--ink);font-weight:800}

/* ── Visual: 3 non-overlapping cards on a soft color-blast glow ── */
.hero-visual{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;padding:8px 0}
.hero-visual-glow{position:absolute;border-radius:50%;filter:blur(50px);z-index:0;pointer-events:none}
.hero-visual-glow--a{width:64%;height:64%;top:-10%;left:-6%;background:var(--blue-300);opacity:.42}
.hero-visual-glow--b{width:58%;height:58%;bottom:-12%;right:-8%;background:var(--orange);opacity:.28}

.hero-photo-row{position:relative;z-index:1;display:flex;align-items:flex-end;justify-content:center;gap:20px;width:100%;max-width:1521px;margin-top:38px}
.hero-photo{
  position:relative;flex:1;max-width:481px;aspect-ratio:3/4;
  border-radius:20px;overflow:hidden;
  border:4px solid var(--white);
  box-shadow:0 22px 50px -10px rgba(13,50,86,.28),0 8px 20px rgba(13,50,86,.10);
}
.hero-photo img{width:100%;height:100%;object-fit:cover;display:block}
.hero-photo--think{transform:rotate(-7deg)}
.hero-photo--fuel{transform:rotate(7deg)}
.hero-photo--move{transform:translateY(-8%);z-index:1}
.hero-photo-label{
  position:absolute;left:10px;bottom:10px;z-index:1;
  background:rgba(13,29,51,.62);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);
  color:#fff;font-size:9.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;
  padding:5px 10px;border-radius:20px;
}

/* ── Mobile-only single banner (replaces the stacked photo row / swipeable carousel) ── */
.hero-mobile-banner{display:none}
.hero-mobile-banner img{width:100%;height:auto;display:block;border-radius:18px}

/* ── Mobile ── */
@media(max-width:767px){
  .hero{padding:24px 0 56px}
  .hero-grid{gap:18px}
  .hero h1{font-size:clamp(.85rem,7vw,2.5rem)}
  .hero-visual{min-height:0;padding:0}
  .hero-photo-row{display:none}
  .hero-mobile-banner{display:block}
  .hero-trust{margin-top:20px}
  .hero-trust-avatars img{width:32px;height:32px}
  .hero-trust p{font-size:12.5px}
}

@media(prefers-reduced-motion:reduce){
  .hero-search,.hero-search-btn,.chip{transition-duration:.01ms !important}
}

/* ── Hero slider (2 slides, dark-green photo hero) ── */
.hero.hero-slider{padding:0;margin-top:calc(-1 * var(--nav-h))}
.hero-slider{position:relative}
.hero-slide{display:none}
.hero-slide.is-active{display:block}
.hero-copy{position:relative;z-index:2;max-width:560px}

/* Full-bleed photo slide — pulled up behind the sticky nav (nav has its own bg + higher z-index) */
.hero-slide--photo{position:relative;overflow:hidden;min-height:360px}
.hero-slide--photo.is-active{display:flex;align-items:center}
@media(min-width:1360px){.hero-slide--photo{min-height:440px}}
.hero-slide--photo .hero-bg{position:absolute;inset:0;z-index:0;background:var(--bg)}
.hero-slide--photo .hero-bg img{width:100%;height:100%;object-fit:cover;object-position:center 30%}
/* TEMP: photo background is desktop-only for now; mobile falls back to the solid gradient above.
   Threshold is 1360px (empirically verified, not derived from the image's raw aspect ratio — the
   logo graphic baked into this photo is a curved shape, not a vertical edge, so the safe width
   isn't a clean formula). Below it, object-fit:cover's horizontal crop pushes the subject/logo
   left far enough to run under the copy column; showing the plain background instead avoids it. */
@media(max-width:1359px){.hero-slide--photo .hero-bg img{display:none}}
/* TEMP: hide the floating photo-card trio on desktop — it clashes with the new background photo */
@media(min-width:1360px){.hero-slide--photo .hero-visual{display:none}}
/* Background photo is light/white — no darkening overlay needed */
.hero-slide--photo .hero-bg-overlay{display:none}
.hero-slide--photo>.wrap{position:relative;z-index:2;width:100%;padding:calc(12px + var(--nav-h)) 24px 16px}
@media(min-width:900px){.hero-slide--photo>.wrap{padding:calc(16px + var(--nav-h)) 80px 20px}}

/* Text sits on the light photo — accent color stays green, everything else is the normal dark ink */
.hero-slide--photo .hero-eyebrow{color:var(--green-800)}
.hero-slide--photo .hero-divider{background:var(--green-500)}
.hero-slide--photo .hero-visual-glow{display:none}
/* Kill the old washed-out text panel — it was designed for the light-gradient hero, not a photo */
.hero-slide--photo .hero-copy-top,.hero-slide--photo .hero-copy-bottom{background:none;backdrop-filter:none;-webkit-backdrop-filter:none;padding:0;margin-left:0;margin-right:0}

/* Slide 2 — coaching copy over full-bleed photo (phone mockup is baked into the photo) */
.hero-grid-coach{max-width:600px}
.btn-outline-light{background:transparent;color:var(--ink);border-color:var(--border)}
.btn-outline-light:hover{border-color:var(--ink);transform:translateY(-2px)}
.hero-trust-badges{display:flex;flex-wrap:wrap;gap:18px;margin-top:26px}
.hero-trust-badges span{display:inline-flex;align-items:center;gap:7px;font-size:13px;font-weight:600;color:var(--muted)}
.hero-trust-badges svg{flex-shrink:0;color:var(--green-700)}

.hero-nav{position:absolute;top:50%;transform:translateY(-50%);z-index:5;width:40px;height:40px;border-radius:50%;background:var(--white);border:1px solid var(--border);box-shadow:var(--shadow-sm);display:flex;align-items:center;justify-content:center;color:var(--ink);transition:background .15s,transform .15s}
.hero-nav:hover{background:var(--bg);transform:translateY(-50%) scale(1.05)}
.hero-nav--prev{left:8px}
.hero-nav--next{right:8px}
@media(max-width:640px){.hero-nav{display:none}}
.hero-dots{position:absolute;left:0;right:0;bottom:14px;z-index:5;display:flex;justify-content:center;gap:8px}
.hero-dot{width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.4);border:none;padding:0;transition:background .15s,transform .15s}
.hero-dot.is-active{background:#fff;transform:scale(1.2)}

/* ── Mobile hero redesign — copy/search/chips stacked on solid bg, photo fills the space below, stats card overlaps its bottom edge ── */
.hero-mobile{display:none}
@media(max-width:767px){
  #heroSlides,.hero-nav,.hero-dots{display:none}
  .hero-mobile{position:relative;overflow:hidden;height:80vh;height:80svh;display:flex;flex-direction:column}
}
.hero-mobile-slide{display:none;position:absolute;inset:0;flex-direction:column}
.hero-mobile-slide.is-active{display:flex}
.hero-mobile-photo{position:absolute;inset:0;z-index:0}
.hero-mobile-photo img{width:100%;height:100%;object-fit:cover;object-position:center top}
.hero-mobile-dots{position:absolute;left:0;right:0;bottom:14px;z-index:5;display:flex;justify-content:center;gap:8px}

/* Top ~60% of the hero: solid bg fading into the photo, holds heading/sub/search/chips.
   The remaining ~40% below is left clear so the photo (banner) shows through untouched. */
.hero-mobile-content{
  position:relative;z-index:2;flex:-1% 0 60%;display:flex;flex-direction:column;justify-content:flex-start;align-items:center;gap:14px;
  width:100%;box-sizing:border-box;padding:calc(var(--nav-h) + 20px) 16px 0;
  background:linear-gradient(180deg,var(--white) 0%,var(--white) 80%,rgba(255,255,255,0) 100%);
  text-align:center;
}
.hero-mobile-content .hero-search-wrap{margin-left:auto;margin-right:auto}
.hero-mobile-content .hero-mobile-chips{justify-content:flex-start}
.hero-mobile-title{font-size:clamp(.684rem,3.08vw,.855rem);font-weight:800;line-height:1.22;letter-spacing:-.02em;color:#000}
h1.hero-mobile-title .hero-title-line{display:inline;white-space:normal}
h1.hero-mobile-title .hero-title-line-2{display:inline-block;white-space:nowrap}
.hero-mobile-sub{font-size:17px;line-height:1.55;color:var(--muted);margin:0;max-width:440px}
.hero-mobile-content .hero-search-wrap{max-width:none;width:100%;margin-bottom:0}
.hero-mobile-content .hero-search{padding:0px 4px 0px 16px}
.hero-mobile-content .hero-search input{padding:8px 0}
.hero-mobile-content .hero-search-btn{padding:6px 18px;font-size:13px}
.hero-mobile-chips{max-width:none;width:100%;align-self:stretch;display:flex;flex-wrap:nowrap;overflow-x:auto;gap:8px;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.hero-mobile-chips::-webkit-scrollbar{display:none}
.hero-mobile-chips .chip{flex:0 0 auto;justify-content:center;padding:1px 14px;font-size:14px;white-space:nowrap;scroll-snap-align:start}
.hero-mobile-chips .chip-icon{display:inline-flex;flex-shrink:0;margin-right:5px;color:inherit}
.hero-mobile-chips .chip-icon svg{width:13px;height:13px}
.hero-mobile-chips .chip-view-all{display:none}

/* Content-heavy sub-pages (e.g. concern-detail) reuse the mobile hero shell above but
   have more copy (benefits list, stats, CTA) than fits the homepage's fixed 80vh/60-40
   overlay composition — this modifier switches it to plain stacked flow instead. */
@media(max-width:767px){
  .hero-mobile--flow{height:auto}
  .hero-mobile--flow .hero-mobile-photo{position:relative;height:220px}
  .hero-mobile--flow .hero-mobile-content{position:relative;flex:none;justify-content:flex-start;gap:14px;padding:20px 16px 28px;background:var(--white)}
  .hero-mobile--flow .benefits-list{margin-bottom:0;gap:8px}
  .hero-mobile--flow .benefits-list li{font-size:13.5px}
  .hero-mobile--flow .concern-hero-stats{display:flex;gap:16px;flex-wrap:wrap}
}



.trust-strip{padding:28px 0;background:var(--white);border-top:1px solid var(--border);border-bottom:1px solid var(--border);overflow:hidden}
.trust-marquee{display:flex;width:max-content;animation:marquee 36s linear infinite}
.trust-marquee:hover{animation-play-state:paused}
.trust-track{display:flex;align-items:center;gap:16px;padding-right:16px}
.trust-stat{
  flex-shrink:0;display:flex;align-items:center;gap:10px;
  height:56px;padding:0 22px;border-radius:16px;
  font-size:13px;font-weight:600;white-space:nowrap;
}
.trust-stat-icon{display:flex;flex-shrink:0}
.trust-stat-icon svg{width:20px;height:20px}
.trust-stat strong{font-size:22px;font-weight:800;letter-spacing:-.02em}
.trust-stat span{opacity:.85}
.trust-stat--green{background:var(--green-100);color:var(--green-800)}
.trust-stat--orange{background:var(--orange-light);color:var(--orange-dark)}
.trust-stat--blue{background:var(--blue-100);color:var(--blue-600)}
.trust-logo{flex-shrink:0;height:56px;padding:0 22px;display:flex;align-items:center;justify-content:center;border-radius:16px;font-size:13px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap}
.trust-logo--green{background:var(--green-100);color:var(--green-800)}
.trust-logo--orange{background:var(--orange-light);color:var(--orange-dark)}
.trust-logo--blue{background:var(--blue-100);color:var(--blue-600)}
.trust-logo--img{background:var(--white);border:1px solid var(--border)}
.trust-logo--img img{height:28px;width:auto;display:block}
@keyframes marquee{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){.trust-marquee{animation:none}}

/* ── Path split — full-bleed 50/50 chooser, Lifestyle vs. Medical/Clinical ── */
.path-split{padding:36px 0 0}
.path-split-header{text-align:center;max-width:600px;margin:0 auto;padding-bottom:28px}
.path-split-eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--green-800);margin-bottom:10px}
.path-split-header h2{font-size:var(--text-h2);font-weight:800;letter-spacing:-.03em;line-height:var(--text-h2-lh);margin-bottom:10px}
.path-split-lead{color:var(--muted);font-size:var(--text-body-lg);line-height:1.6}

.path-split-grid{display:grid;grid-template-columns:1fr}
@media(min-width:768px){.path-split-grid{grid-template-columns:1fr 1fr}}
@media(max-width:767px){
  .path-split-grid{display:flex;grid-template-columns:none;overflow-x:auto;scroll-snap-type:x mandatory;gap:0;-webkit-overflow-scrolling:touch;scrollbar-width:none}
  .path-split-grid::-webkit-scrollbar{display:none}
  .path-split-panel{flex:0 0 100%;scroll-snap-align:start}
}

.path-split-panel{
  position:relative;display:flex;align-items:flex-end;justify-content:center;
  min-height:380px;overflow:hidden;color:#fff;text-decoration:none;
}
@media(min-width:768px){.path-split-panel{min-height:clamp(460px,58vh,600px)}}
.path-split-img{position:absolute;inset:0;z-index:0;background:#000}
.path-split-img img{width:100%;height:100%;object-fit:cover;object-position:center;transition:transform .6s cubic-bezier(.22,1,.36,1)}
.path-split-panel:hover .path-split-img img{transform:scale(1.03)}

.path-split-scrim{position:absolute;inset:0;z-index:1}
.path-split-panel--lifestyle .path-split-scrim{background:linear-gradient(to top,rgba(0,0,0,.82) 0%,rgba(0,0,0,.38) 46%,rgba(0,0,0,.04) 75%)}
.path-split-panel--medical .path-split-scrim{background:linear-gradient(to top,rgba(0,0,0,.82) 0%,rgba(0,0,0,.38) 46%,rgba(0,0,0,.04) 75%)}

.path-split-content{
  position:relative;z-index:2;text-align:center;
  display:flex;flex-direction:column;align-items:center;
  max-width:400px;padding:28px 28px 32px;
}
.path-split-label{
  display:inline-flex;padding:6px 14px;border-radius:var(--pill);
  background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.32);
  backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);
  color:#fff;font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;
  margin-bottom:16px;
  text-shadow:0 1px 6px rgba(0,0,0,.45);
}
.path-split-content h3{font-size:var(--text-h2);font-weight:800;line-height:var(--text-h2-lh);letter-spacing:-.02em;margin-bottom:10px;text-shadow:0 2px 16px rgba(0,0,0,.55),0 1px 3px rgba(0,0,0,.5);min-height:2.36em;display:flex;align-items:center;justify-content:center}
.path-split-content p{font-size:15px;line-height:1.6;color:rgba(255,255,255,.92);margin-bottom:24px;text-shadow:0 1px 10px rgba(0,0,0,.55),0 1px 3px rgba(0,0,0,.5);min-height:3.2em;display:flex;align-items:center;justify-content:center}
.path-split-cta{pointer-events:none}
@media(max-width:767px){
  .path-split-header{text-align:center;margin:0 auto}
  .path-split-panel{justify-content:center}
  .path-split-content{text-align:center;align-items:center;padding-top:44px}
  .path-split-content h3,.path-split-content p{justify-content:center;min-height:0}
  .path-split-label{margin-bottom:10px}
  .path-split-content h3{margin-bottom:6px}
  .path-split-content p{margin-bottom:18px}
}

.app-reviews-grid{display:grid;grid-template-columns:1fr;gap:48px;align-items:center}
@media(min-width:900px){.app-reviews-grid{grid-template-columns:1fr 1fr;gap:64px}}
.app-screens{display:flex;gap:16px;justify-content:center;margin-bottom:28px}
.app-screen{flex:0 0 30%;max-width:140px;border-radius:24px;overflow:hidden;background:var(--placeholder);border:3px solid var(--border);box-shadow:var(--shadow-sm)}
.app-screen img{width:100%;aspect-ratio:9/19;object-fit:cover}
.app-copy h2{font-size:var(--text-h2);font-weight:700;line-height:var(--text-h2-lh);margin-bottom:12px}
.app-copy p{color:var(--muted);font-size:var(--text-body);line-height:var(--text-body-lh);margin-bottom:24px;max-width:400px}
.store-btns{display:flex;flex-wrap:wrap;gap:12px}
.store-btn{display:inline-flex;align-items:center;gap:10px;padding:12px 20px;border-radius:12px;background:var(--ink);color:#fff;font-size:14px;font-weight:600;transition:background .2s,transform .2s}
.store-btn:hover{background:#000;transform:translateY(-1px)}
.store-btn svg{flex-shrink:0}
.reviews-heading{font-size:var(--text-h2);font-weight:700;line-height:var(--text-h2-lh);margin-bottom:24px}
.reviews-scroller{position:relative;height:340px;overflow:hidden;mask-image:linear-gradient(180deg,transparent 0%,#000 8%,#000 92%,transparent 100%);-webkit-mask-image:linear-gradient(180deg,transparent 0%,#000 8%,#000 92%,transparent 100%)}
.reviews-track{display:flex;flex-direction:column;gap:16px;animation:reviewScroll 18s linear infinite}
.reviews-scroller:hover .reviews-track{animation-play-state:paused}
.review-card{padding:20px 22px;background:var(--white);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-sm)}
.review-top{display:flex;align-items:center;gap:12px;margin-bottom:12px}
.review-avatar{width:44px;height:44px;border-radius:50%;background:var(--placeholder);overflow:hidden;flex-shrink:0}
.review-avatar img{width:100%;height:100%;object-fit:cover}
.review-name{font-weight:700;font-size:15px}
.review-rating{font-size:13px;color:var(--muted);display:flex;align-items:center;gap:4px}
.review-rating .stars{color:#f5a623;letter-spacing:1px}
.review-text{font-size:14.5px;color:var(--muted);line-height:1.6}
@keyframes reviewScroll{0%{transform:translateY(0)}100%{transform:translateY(-50%)}}
@media(prefers-reduced-motion:reduce){.reviews-track{animation:none}}
@media(max-width:899px){
  .app-copy{text-align:center}
  .app-copy p{margin-left:auto;margin-right:auto}
  .store-btns{justify-content:center}
  .reviews-heading{text-align:center}
}

/* Match the hero's wider column so the carousel isn't inset more than the section above it */
#coaches .wrap{max-width:1400px}
.coaches-eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--blue-600);margin-bottom:14px}
.coaches-eyebrow::before{content:'';width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 0 4px rgba(0,137,68,.14)}
.coaches-header{text-align:center;max-width:640px;margin:0 auto 44px}
.coaches-header h2{
  font-size:var(--text-h2);font-weight:800;
  line-height:var(--text-h2-lh);letter-spacing:-.04em;margin-bottom:14px;
  text-transform:capitalize;
  color:var(--ink);
}
.coaches-header p{color:var(--muted);font-size:clamp(1rem,1.4vw,1.125rem);line-height:1.65}
@media(max-width:767px){
  .coaches-header{text-align:center;margin:0 auto 32px}
}
.coaches-carousel{position:relative}
.coaches-footer-cta{display:flex;justify-content:center;margin-top:36px}

/* Tighten the handoff into Success Stories right after this section — scoped
   to that adjacency only, so the coaches partial's spacing elsewhere is untouched. */
#coaches{padding-bottom:clamp(32px,4vh,48px)}
.coaches-track{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
@media(max-width:899px){
  .coaches-track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:16px;padding-bottom:8px;-webkit-overflow-scrolling:touch;scrollbar-width:none}
  .coaches-track::-webkit-scrollbar{display:none}
  .coach-card{flex:0 0 100%;scroll-snap-align:center}
}
.coach-card{
  position:relative;
  background:var(--white);border:1px solid var(--border);border-radius:20px;
  overflow:hidden;
  box-shadow:0 2px 4px rgba(42,42,42,.04),0 12px 28px rgba(42,42,42,.06);
  transition:transform .4s cubic-bezier(.22,1,.36,1),box-shadow .4s cubic-bezier(.22,1,.36,1),border-color .4s;
}
.coach-card::before{
  content:'';position:absolute;inset:0;z-index:2;border-radius:20px;pointer-events:none;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.5);
  opacity:0;transition:opacity .4s;
}
.coach-card:hover{
  transform:translateY(-10px) scale(1.015);
  border-color:transparent;
  box-shadow:0 8px 16px rgba(22,85,146,.08),0 30px 64px -12px rgba(22,85,146,.24),0 12px 28px rgba(42,42,42,.10);
}
.coach-card:hover::before{opacity:1}
.coach-photo{position:relative;aspect-ratio:3/4;background:var(--placeholder);overflow:hidden}
.coach-photo img{width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.22,1,.36,1)}
.coach-card:hover .coach-photo img{transform:scale(1.08)}
.coach-photo::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(0,0,0,0) 55%,rgba(0,0,0,.5) 100%);
  pointer-events:none;
}
.coach-rating{
  position:absolute;top:12px;right:12px;z-index:1;
  display:inline-flex;align-items:center;gap:4px;
  background:rgba(255,255,255,.95);backdrop-filter:blur(6px);
  color:var(--ink);font-size:12px;font-weight:800;
  padding:5px 9px;border-radius:999px;
}
.coach-rating svg{color:#f5a623;flex-shrink:0}
.coach-exp{
  position:absolute;left:12px;bottom:12px;z-index:1;
  background:rgba(255,255,255,.16);backdrop-filter:blur(6px);
  border:1px solid rgba(255,255,255,.35);
  color:#fff;font-size:11px;font-weight:700;
  padding:5px 10px;border-radius:999px;
  text-transform:capitalize;
}
.coach-card{display:flex;flex-direction:column}
.coach-body{display:flex;flex-direction:column;flex:1;padding:18px 20px 20px}
.coach-name{font-size:var(--text-h4);line-height:var(--text-h4-lh);font-weight:700;margin-bottom:4px;letter-spacing:-.01em}
.coach-specialty{
  font-size:var(--text-body);color:var(--muted);margin-bottom:16px;line-height:var(--text-body-lh);
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
  min-height:2.6em;
}
.coach-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:auto;padding-top:14px;border-top:1px solid var(--border)}
.coach-price{font-size:13px;font-weight:700;color:var(--ink);white-space:nowrap}
.coach-cta{
  display:inline-flex;align-items:center;gap:6px;margin-left:auto;
  font-size:var(--text-sm);line-height:var(--text-sm-lh);font-weight:700;color:var(--blue-600);
  transition:gap .2s;
}
.coach-cta svg{flex-shrink:0;transition:transform .2s}
.coach-card:hover .coach-cta{gap:9px}
.coach-card:hover .coach-cta svg{transform:translateX(2px)}

.carousel-dots{display:none;justify-content:center;gap:8px;margin-top:20px}
@media(max-width:899px){.carousel-dots{display:flex}}
.carousel-dot{width:8px;height:8px;border-radius:50%;background:var(--border);border:none;padding:0;transition:background .25s,width .25s}
.carousel-dot.is-active{width:20px;border-radius:4px;background:var(--blue)}

/* ── Coach profile page ── */
.cp-hero{padding:56px 0 48px;background:radial-gradient(120% 100% at 82% 0%,var(--blue-100) 0%,rgba(240,242,248,0) 55%),var(--white)}
.cp-hero-inner{display:flex;flex-direction:column;align-items:center;text-align:center;gap:24px}
@media(min-width:768px){.cp-hero-inner{flex-direction:row;text-align:left;align-items:flex-start;gap:40px}}
.cp-photo{flex-shrink:0;width:160px;height:160px;border-radius:50%;overflow:hidden;border:5px solid var(--white);box-shadow:0 16px 40px rgba(22,85,146,.16)}
.cp-photo img{width:100%;height:100%;object-fit:cover}
.cp-intro{flex:1;min-width:0}
.cp-name{font-size:clamp(1.6rem,3vw,2.1rem);font-weight:800;letter-spacing:-.02em;margin-bottom:6px}
.cp-city{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:14px;margin-bottom:18px}
.cp-stats{display:flex;flex-wrap:wrap;justify-content:center;gap:28px;margin-bottom:18px}
@media(min-width:768px){.cp-stats{justify-content:flex-start}}
.cp-stat{display:flex;flex-direction:column;gap:2px}
.cp-stat-value{display:inline-flex;align-items:center;gap:4px;font-size:19px;font-weight:800;color:var(--ink)}
.cp-stat-value svg{color:#f5a623}
.cp-stat-label{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-weight:600}
.cp-tags{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-bottom:24px}
@media(min-width:768px){.cp-tags{justify-content:flex-start}}
.cp-tag{background:var(--blue-100);color:var(--blue-600);font-size:12.5px;font-weight:600;padding:6px 14px;border-radius:999px}
.cp-about h2{font-size:var(--text-h2);line-height:var(--text-h2-lh);font-weight:800;margin-bottom:14px;letter-spacing:-.01em}
.cp-about p{color:var(--muted);line-height:1.75;font-size:15.5px}
.cp-portfolio{margin-top:40px}
.cp-portfolio-title{font-size:var(--text-h2);line-height:var(--text-h2-lh);font-weight:800;margin-bottom:20px;letter-spacing:-.01em}
.cp-portfolio-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
@media(min-width:640px){.cp-portfolio-grid{grid-template-columns:repeat(3,1fr)}}
.cp-portfolio-item{aspect-ratio:1;border-radius:var(--r-lg);overflow:hidden;background:var(--placeholder)}
.cp-portfolio-item img{width:100%;height:100%;object-fit:cover;transition:transform .4s cubic-bezier(.22,1,.36,1)}
.cp-portfolio-item:hover img{transform:scale(1.08)}

/* ── Coach profile: body grid + booking sidebar ── */
.cp-body-section{padding-top:0}
.cp-body-grid{display:grid;grid-template-columns:1fr;gap:40px;align-items:start}
@media(min-width:900px){.cp-body-grid{grid-template-columns:1fr 320px}}
.cp-main{min-width:0}
.cp-booking-card{
  background:var(--white);border:1px solid var(--border);border-radius:var(--r-xl);
  padding:24px;box-shadow:var(--shadow-md);
}
@media(min-width:900px){.cp-booking-card{position:sticky;top:calc(var(--nav-h) + 16px)}}
.cp-booking-block{margin-bottom:22px}
.cp-booking-block:last-child{margin-bottom:0}
.cp-booking-block h3{font-size:13px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:14px}
.cp-plans{display:flex;flex-direction:column;gap:10px}
.cp-plan-item{border-radius:12px;overflow:hidden;background:var(--bg)}
.cp-plan{
  display:flex;align-items:center;gap:10px;padding:10px 12px;width:100%;
  background:transparent;border:none;border-radius:0;
  font-size:14px;font-weight:600;color:var(--ink);cursor:pointer;text-align:left;
  transition:background .2s;
}
.cp-plan:hover{background:var(--blue-100)}
.cp-plan span{flex:1}
.cp-plan-arrow{flex-shrink:0;color:var(--muted);transition:transform .2s,color .2s}
.cp-plan[aria-expanded="true"] .cp-plan-arrow{transform:rotate(90deg);color:var(--blue-600)}
.cp-plan img{flex-shrink:0;border-radius:6px}
.cp-plan-detail{padding:0 12px 14px}
.cp-plan-detail p{font-size:13px;color:var(--muted);line-height:1.5;margin-bottom:12px}
.cp-plan-detail .btn{width:100%}
.cp-slots{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px}
.cp-slot{
  flex-shrink:0;display:flex;flex-direction:column;align-items:center;gap:2px;
  width:52px;padding:10px 0;border-radius:12px;background:var(--blue-100);
}
.cp-slot-day{font-size:10px;font-weight:700;text-transform:uppercase;color:var(--blue-600);letter-spacing:.04em}
.cp-slot-date{font-size:17px;font-weight:800;color:var(--ink)}
.cp-modes{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}
.cp-mode{background:var(--bg);border-radius:999px;padding:6px 12px;font-size:12.5px;font-weight:600}
.cp-book-btn{width:100%;margin-bottom:10px}
.cp-book-btn:last-child{margin-bottom:0}

/* ═══════════════════════════════════════
   THEMATIC FOOTER
   ═══════════════════════════════════════ */
.site-footer{
  position:relative;
  background:#0b1510;
  color:rgba(255,255,255,.72);
  overflow:hidden;
  padding-top:clamp(48px,7vw,88px);
  padding-bottom:0;
}

/* ── Links grid ── */
.footer-grid{
  position:relative;z-index:1;
  display:grid;grid-template-columns:1fr;
  gap:36px;margin-bottom:48px;
}
@media(min-width:768px){.footer-grid{grid-template-columns:1.6fr 1fr 1fr 1fr 1fr}}

.footer-brand img{height:42px;margin-bottom:16px}
.footer-brand p{font-size:13.5px;line-height:1.7;max-width:400px;color:rgba(255,255,255,.55)}
.footer-brand-pillars{
  display:flex;gap:8px;margin-top:20px;
}
.footer-brand-pillars span{
  font-size:10px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;
  padding:4px 10px;border-radius:20px;
  color:rgba(0,137,68,.9);
  background:rgba(0,137,68,.1);
  border:1px solid rgba(0,137,68,.22);
}
.footer-app-links{
  display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:20px;max-width:360px;
}
.footer-app-links img{height:auto;width:100%;margin-bottom:0}

.footer-col{position:relative;z-index:1}
.footer-col-toggle{
  display:flex;width:100%;background:none;border:none;padding:0;
  cursor:default;pointer-events:none;
}
.footer-col h4{
  color:#fff;font-size:14px;font-weight:800;
  text-transform:uppercase;letter-spacing:.18em;
  margin-bottom:18px;
  padding-bottom:10px;
  border-bottom:1px solid rgba(0,137,68,.2);
  flex:1;text-align:left;
}
.footer-col-chevron{display:none}
.footer-col a{
  display:block;font-size:16px;padding:6px 0;
  color:rgba(255,255,255,.58);
  text-decoration:none;
  transition:color .18s,transform .2s cubic-bezier(.34,1.56,.64,1);
}
.footer-col a:hover{
  color:rgba(0,137,68,.95);
  transform:translateX(4px);
}

/* ── Mobile: collapse each footer column into an accordion ── */
@media(max-width:767px){
  .footer-col-toggle{
    cursor:pointer;pointer-events:auto;
    align-items:center;justify-content:space-between;
  }
  .footer-col h4{margin-bottom:0;padding-bottom:16px}
  .footer-col-chevron{
    display:block;width:16px;height:16px;flex-shrink:0;
    color:rgba(255,255,255,.5);
    transition:transform .25s ease;
    margin-bottom:16px;
  }
  .footer-col.is-open .footer-col-chevron{transform:rotate(180deg)}
  .footer-col-links{
    max-height:0;overflow:hidden;
    transition:max-height .3s ease;
  }
  .footer-col.is-open .footer-col-links{max-height:400px}
}

/* ── Bottom bar ── */
.footer-bottom-wrap{
  position:relative;z-index:1;
  border-top:1px solid rgba(255,255,255,.06);
  background:rgba(0,0,0,.2);
}
.footer-bottom{
  display:flex;flex-wrap:wrap;align-items:center;
  justify-content:space-between;
  gap:16px;padding:20px 0;font-size:12.5px;
}
.footer-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px 20px}
.footer-copyright{color:rgba(255,255,255,.42)}
.footer-legal{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.footer-legal a{color:rgba(255,255,255,.45);text-decoration:none;transition:color .15s}
.footer-legal a:hover{color:rgba(0,137,68,.9)}
.footer-legal .sep{color:rgba(255,255,255,.2)}

.footer-social{display:flex;gap:10px}
.footer-social-link{
  width:36px;height:36px;border-radius:50%;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.08);
  display:flex;align-items:center;justify-content:center;
  color:rgba(255,255,255,.55);
  text-decoration:none;
  transition:background .2s,border-color .2s,color .2s,transform .25s cubic-bezier(.34,1.56,.64,1);
}
.footer-social-link:hover{
  background:rgba(0,137,68,.2);
  border-color:rgba(0,137,68,.4);
  color:rgba(0,137,68,.9);
  transform:translateY(-3px);
}
.footer-social svg{width:15px;height:15px;fill:currentColor}

/* ── Mobile ── */
@media(max-width:767px){
  .footer-brand-pillars{flex-wrap:wrap}
  .footer-bottom{flex-direction:column;align-items:flex-start;gap:20px;padding:24px 20px 32px}
}

.reveal{opacity:0;transform:translateY(22px);transition:opacity .65s cubic-bezier(.22,1,.36,1),transform .65s cubic-bezier(.22,1,.36,1)}
.reveal.is-visible{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}}

/* Page-specific */
.page-hero{padding:32px 0 36px;background:var(--white)}
@media(min-width:900px){.page-hero{padding:40px 0 44px}}
.page-hero > .wrap{max-width:1320px}
.page-hero-grid{display:grid;grid-template-columns:1fr;gap:40px;align-items:center}
@media(min-width:900px){.page-hero-grid{grid-template-columns:1.05fr 1fr;gap:40px}}
.hero-badge{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--blue-600);margin-bottom:18px}
.hero-badge::before{content:'';width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 0 4px rgba(0,137,68,.14)}
.page-hero h1{font-size:clamp(1.9rem,3.2vw,2.5rem);font-weight:800;line-height:1.16;letter-spacing:-.03em;color:#000;margin-bottom:0}
.page-hero-divider{display:block;width:56px;height:3px;background:var(--orange-dark);border-radius:2px;margin:22px 0 24px}
.page-hero p{color:var(--muted);font-size:var(--text-body-lg);line-height:var(--text-body-lg-lh);margin-bottom:24px;max-width:480px}
.page-hero-img{border-radius:var(--r-xl);overflow:hidden;box-shadow:var(--shadow-md);aspect-ratio:4/3;background:var(--placeholder)}
.page-hero-img img{width:100%;height:100%;object-fit:cover}
.page-hero-img--genie{aspect-ratio:auto;background:var(--bg);box-shadow:none;display:flex;align-items:center;justify-content:center;padding:24px}
.page-hero-img--genie img{width:auto;height:100%;max-height:480px;object-fit:contain}
@media(max-width:899px){
  .page-hero{text-align:center}
  .page-hero-divider{margin-left:auto;margin-right:auto}
  .page-hero p{margin-left:auto;margin-right:auto}
}

.feature-grid{display:grid;grid-template-columns:1fr;gap:24px}
@media(min-width:768px){.feature-grid{grid-template-columns:repeat(3,1fr)}}
.feature-card{padding:28px 24px;background:var(--white);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-sm)}
.feature-card h3{font-size:var(--text-h4);font-weight:700;line-height:var(--text-h4-lh);margin-bottom:8px}
.feature-card p{font-size:var(--text-body);color:var(--muted);line-height:var(--text-body-lh)}
@media(max-width:767px){.feature-card{text-align:center}}
.track-category-card{display:block;padding:0;overflow:hidden;transition:transform .2s,box-shadow .2s}
.track-category-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md)}
.track-category-img{aspect-ratio:4/3;background:var(--placeholder)}
.track-category-img img{width:100%;height:100%;object-fit:cover;display:block}
.track-category-body{padding:20px 24px 24px}
.track-category-link{display:inline-block;margin-top:14px;font-size:14px;font-weight:700;color:var(--green)}

.benefits-list{list-style:none;display:grid;gap:12px;margin-bottom:32px}
.benefits-list li{display:flex;align-items:flex-start;gap:12px;font-size:15px;color:var(--muted)}
.benefits-list li::before{content:'✓';flex-shrink:0;width:24px;height:24px;border-radius:50%;background:var(--blue-light);color:var(--blue);font-weight:700;font-size:13px;display:flex;align-items:center;justify-content:center}

.steps-grid{display:grid;grid-template-columns:1fr;gap:20px;margin-bottom:40px}
@media(min-width:768px){.steps-grid{grid-template-columns:repeat(3,1fr)}}
.step-card{padding:24px;background:var(--bg);border:1px solid var(--border);border-radius:var(--r-lg);text-align:center}
.step-num{width:40px;height:40px;border-radius:50%;background:var(--blue);color:#fff;font-weight:700;display:flex;align-items:center;justify-content:center;margin:0 auto 16px;font-size:16px}
.step-card h3{font-size:var(--text-h4);line-height:var(--text-h4-lh);font-weight:700;margin-bottom:8px}
.step-card p{font-size:var(--text-body);color:var(--muted);line-height:var(--text-body-lh)}

.form-group{margin-bottom:16px}
.form-group label{display:block;font-size:14px;font-weight:600;margin-bottom:6px}
.form-group input,.form-group select,.form-group textarea{width:100%;padding:12px 16px;border:1.5px solid var(--border);border-radius:12px;font:inherit;font-size:15px;transition:border-color .2s}
.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px rgba(26,58,107,.1)}
.form-group textarea{min-height:80px;resize:vertical}
.form-submit{width:100%;margin-top:8px}
.form-msg{text-align:center;font-size:14px;margin-top:12px;padding:10px;border-radius:10px;display:none}
.form-msg.success{display:block;background:#ecfdf5;color:#065f46}
.form-msg.error{display:block;background:#fef2f2;color:#991b1b}

.download-phone{width:100%;max-width:280px;border-radius:32px;overflow:hidden;border:4px solid var(--border);box-shadow:var(--shadow-md)}
.download-phone img{width:100%;aspect-ratio:9/19;object-fit:cover}

/* Thank you page */
.ty-page{min-height:100vh;display:flex;flex-direction:column;background:#f7f6f3}
.ty-main{flex:1;display:flex;align-items:center;padding:56px 0}
.ty-wrap{max-width:720px;margin:0 auto;padding:0 24px;width:100%}
.ty-card{background:#fff;border:1px solid var(--border);border-radius:var(--r-xl);overflow:hidden;box-shadow:0 24px 60px rgba(0,0,0,.06)}
.ty-top{background:linear-gradient(135deg,var(--blue) 0%,var(--blue-dark) 100%);padding:44px 28px 40px;text-align:center;color:#fff}
.ty-check{width:72px;height:72px;border-radius:50%;background:var(--green);display:flex;align-items:center;justify-content:center;margin:0 auto 20px;box-shadow:0 10px 28px rgba(0,137,68,.35)}
.ty-check svg{width:36px;height:36px;color:#fff}
.ty-top h1{font-size:clamp(1.75rem,5vw,2.35rem);font-weight:700;margin-bottom:10px;line-height:1.15}
.ty-top p{color:rgba(255,255,255,.76);font-size:15px;max-width:440px;margin:0 auto}
.ty-body{padding:32px 24px 36px;text-align:center}
.ty-body h2{font-size:var(--text-h2);line-height:var(--text-h2-lh);margin-bottom:18px;font-weight:600}
.ty-steps{display:grid;gap:12px;text-align:left;margin-bottom:28px}
.ty-step{display:flex;gap:14px;padding:16px 18px;background:var(--bg);border-radius:var(--r);border:1px solid var(--border)}
.ty-step-n{width:32px;height:32px;border-radius:50%;background:#fff;border:2px solid var(--green);color:var(--green-hover);font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:var(--text-sm)}
.ty-step h3{font-size:var(--text-h4);line-height:var(--text-h4-lh);font-weight:700;margin-bottom:2px}
.ty-step p{font-size:var(--text-body);color:var(--muted);line-height:var(--text-body-lh)}
.ty-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}
.ty-note{font-size:13px;color:var(--muted);margin-top:20px}
.ty-note strong{color:var(--ink)}

/* Chat widget */
.chat-widget{position:fixed;bottom:24px;right:24px;z-index:500;font-family:var(--font)}
.chat-toggle{width:56px;height:56px;border-radius:50%;background:var(--blue);color:#fff;border:none;box-shadow:0 8px 24px rgba(26,58,107,.35);display:flex;align-items:center;justify-content:center;transition:transform .2s,background .2s}
.chat-toggle:hover{background:var(--blue-dark);transform:scale(1.05)}
.chat-toggle svg{width:24px;height:24px}
.chat-panel{display:none;position:absolute;bottom:68px;right:0;width:340px;max-width:calc(100vw - 48px);height:420px;background:#fff;border-radius:var(--r-lg);box-shadow:0 16px 48px rgba(19,29,51,.18);border:1px solid var(--border);flex-direction:column;overflow:hidden}
.chat-panel.open{display:flex}
.chat-header{padding:16px 18px;background:var(--blue);color:#fff;display:flex;align-items:center;justify-content:space-between}
.chat-header h4{font-size:15px;font-weight:600}
.chat-close{background:none;border:none;color:#fff;opacity:.8;font-size:20px;line-height:1;padding:4px}
.chat-close:hover{opacity:1}
.chat-messages{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:10px}
.chat-msg{max-width:85%;padding:10px 14px;border-radius:14px;font-size:14px;line-height:1.45}
.chat-msg.visitor{align-self:flex-end;background:var(--blue);color:#fff;border-bottom-right-radius:4px}
.chat-msg.admin{align-self:flex-start;background:var(--bg);color:var(--ink);border-bottom-left-radius:4px}
.chat-msg.bot{align-self:flex-start;background:#eef3fa;color:var(--ink);border-bottom-left-radius:4px;border:1px solid rgba(26,58,107,.08)}
.chat-msg .msg-label{font-size:11px;font-weight:600;color:var(--blue);margin-bottom:4px}
.chat-msg .msg-time{font-size:11px;opacity:.6;margin-top:4px}
.chat-input-area input:disabled{background:#f5f7fa;opacity:.7}
.chat-input-area button:disabled{opacity:.5;cursor:not-allowed}
.chat-input-area{padding:12px;border-top:1px solid var(--border);display:flex;gap:8px}
.chat-input-area input{flex:1;padding:10px 14px;border:1.5px solid var(--border);border-radius:var(--pill);font:inherit;font-size:14px}
.chat-input-area input:focus{outline:none;border-color:var(--blue)}
.chat-input-area button{padding:10px 16px;border-radius:var(--pill);background:var(--blue);color:#fff;border:none;font-weight:600;font-size:13px}
.chat-input-area button:hover{background:var(--blue-dark)}

.closing-cta{position:relative;overflow:hidden;margin:40px 0;padding:clamp(56px,9vw,104px) 24px;background:linear-gradient(155deg,var(--green-800) 0%,var(--green-900) 55%,var(--green-1000) 100%);border-radius:var(--r-xl);text-align:center}
.closing-cta-bg{display:none;position:absolute;inset:0;z-index:0}
.closing-cta-bg img{width:100%;height:100%;object-fit:cover;object-position:center 35%}
.closing-cta-bg--mobile{display:block}
.closing-cta-glow{position:absolute;border-radius:50%;filter:blur(60px);pointer-events:none;z-index:0}
.closing-cta-glow--a{width:46%;height:70%;top:-24%;left:-8%;background:var(--green-500);opacity:.22}
.closing-cta-glow--b{width:40%;height:60%;bottom:-22%;right:-6%;background:var(--green-200);opacity:.16}
.closing-cta-inner{position:relative;z-index:1;max-width:600px;margin:0 auto;display:flex;flex-direction:column;align-items:center}
.closing-cta h2{font-size:var(--text-h2);font-weight:800;line-height:var(--text-h2-lh);color:#fff;letter-spacing:-.02em;margin:0 0 16px}
.closing-cta p{font-size:var(--text-lg,1.05rem);line-height:1.5;color:rgba(255,255,255,.78);margin:0 0 32px}
.closing-cta-btn{display:inline-flex;background:#fff;color:var(--green-900) !important;border-color:#fff;box-shadow:0 10px 30px rgba(0,0,0,.22)}
.closing-cta-btn:hover{background:var(--green-100);transform:translateY(-2px);box-shadow:0 14px 36px rgba(0,0,0,.28)}
.closing-cta-btn:active{transform:translateY(0)}
@media(min-width:860px){
  .closing-cta{padding:clamp(72px,9vw,120px) 24px;min-height:460px;display:flex;align-items:center}
  .closing-cta-bg{display:block}
  .closing-cta-bg--mobile{display:none}
  .closing-cta-glow{display:none}
  .closing-cta-inner{align-items:flex-start;text-align:left;margin:0;max-width:480px;transform:translateY(30%)}
}

@media(max-width:640px){.ty-body{padding:36px 40px 44px}}

/* ── Mobile: normalize all body/sub text (paragraphs, labels, badges, tags,
   chips, list items, table cells) to a single readable size — overrides
   every component's own smaller font-size. Headings and buttons are exempt
   since they're not body copy. ── */
@media(max-width:767px){
  :is(p,span,li,small,label,dd,dt,td,th,blockquote,a.chip):not(.btn):not(.btn *):not(h1 *):not(h2 *):not(h3 *):not(h4 *):not(h5 *):not(h6 *){
    font-size:14px !important;
    line-height:1.55 !important;
  }
}
/* Site-wide "Start Your Journey" popup — a lightweight overlay shell around
   an iframe (the actual assessment form lives in /assessment-widget, its own
   sandboxed document, so its Bootstrap/theme.css never touches this page). */
.asm-overlay {
  position: fixed;
  inset: 0;
  z-index: 20000;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 16px;
}
.asm-overlay.is-open { display: flex; }
.asm-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(13, 20, 16, .55);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  opacity: 0;
  transition: opacity .25s ease;
}
.asm-overlay.is-open .asm-backdrop { opacity: 1; }
.asm-dialog {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 720px;
  height: min(88vh, 900px);
  background: var(--white);
  border-radius: var(--r-xl, 20px);
  box-shadow: var(--shadow-md, 0 24px 60px rgba(0,0,0,.28));
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transform: translateY(18px) scale(.98);
  opacity: 0;
  transition: transform .3s cubic-bezier(.16,1,.3,1), opacity .3s ease;
}
.asm-overlay.is-open .asm-dialog {
  transform: translateY(0) scale(1);
  opacity: 1;
}
.asm-close {
  position: absolute;
  top: 10px;
  right: 10px;
  z-index: 2;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  border: 1px solid var(--border, #e8e8e8);
  background: var(--white, #fff);
  color: var(--ink, #2a2a2a);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
  line-height: 1;
  cursor: pointer;
  box-shadow: var(--shadow-sm, 0 4px 16px rgba(0,0,0,.06));
  transition: background .15s, transform .15s;
}
.asm-close:hover { background: var(--bg, #f9f9f9); transform: scale(1.05); }
.asm-frame-wrap {
  position: relative;
  flex: 1;
  min-height: 0;
}
.asm-frame-wrap iframe {
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
}
.asm-loading {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10px;
  background: var(--white, #fff);
  transition: opacity .3s ease;
  pointer-events: none;
}
.asm-loading[hidden] { display: none; }
.asm-spinner {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  border: 3px solid var(--border, #e8e8e8);
  border-top-color: var(--green, #008944);
  animation: asmSpin .8s linear infinite;
}
.asm-loading span {
  font-size: 13px;
  font-weight: 600;
  color: var(--muted, #606060);
}
@keyframes asmSpin { to { transform: rotate(360deg); } }
@media (max-width: 640px) {
  .asm-overlay { padding: 0; }
  .asm-dialog { max-width: none; height: 100dvh; border-radius: 0; }
}
/* Lifestyle Coaching — self-contained funnel landing page (design ported from the Genie AI reference) */
.lc-page{
  --lc-bg:#ffffff;
  --lc-bg-raised:#f9f9f9;
  --lc-card:#ffffff;
  --lc-border:#e8e8e8;
  --lc-border-hi:rgba(0,137,68,.22);
  --lc-teal:#008944;
  --lc-teal-soft:#daefe0;
  --lc-amber:#F59E0B;
  --lc-red:#F04444;
  --lc-text:#2a2a2a;
  --lc-text-2:#3d5166;
  --lc-muted:#606060;
  --lc-muted-2:#9a9a9a;
  --lc-shadow-sm:0 4px 16px rgba(0,0,0,.06);
  --lc-shadow:0 16px 40px rgba(0,0,0,.08);
  --lc-shadow-lg:0 24px 60px rgba(0,0,0,.10);
  --lc-r-xs:8px;--lc-r-sm:12px;--lc-r:18px;--lc-r-lg:24px;
  --lc-max:1180px;--lc-gutter:16px;--lc-nav-h:var(--nav-h,88px);--lc-sticky-h:72px;

  background:var(--lc-bg);
  color:var(--lc-text);
  font-family:'Outfit',system-ui,-apple-system,sans-serif;
  line-height:1.6;
  position:relative;
  padding-bottom:calc(var(--lc-sticky-h) + env(safe-area-inset-bottom,0px));
}
.lc-page *,.lc-page *::before,.lc-page *::after{box-sizing:border-box}
.lc-page img{display:block;max-width:100%}
.lc-page a{color:inherit;text-decoration:none}

.lc-wrap{max-width:var(--lc-max);margin:0 auto;padding:0 var(--lc-gutter);position:relative;z-index:1}
.lc-wrap--wide{max-width:1440px}
@media(min-width:1024px){.lc-wrap--wide{padding:0 20px}}
@media(min-width:1280px){.lc-wrap--wide{padding:0 24px}}
@media(min-width:640px){.lc-page{--lc-gutter:20px}}
@media(min-width:1024px){.lc-page{--lc-gutter:28px}}
@media(min-width:1280px){.lc-page{--lc-gutter:40px}}

@keyframes lcFadeUp{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}
@keyframes lcFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
@keyframes lcShimmer{0%{transform:translateX(-100%)}100%{transform:translateX(180%)}}

.lc-reveal{opacity:0;transform:translateY(22px);transition:opacity .75s cubic-bezier(.16,1,.3,1),transform .75s cubic-bezier(.16,1,.3,1)}
.lc-reveal.in{opacity:1;transform:translateY(0)}
.lc-d1{transition-delay:.1s}.lc-d2{transition-delay:.2s}.lc-d3{transition-delay:.3s}

/* ── Buttons ── */
.lc-btn-primary{
  display:inline-flex;align-items:center;gap:8px;padding:15px 28px;background:var(--lc-teal);color:#fff !important;
  border-radius:var(--lc-r-sm);font-family:inherit;font-size:var(--text-sm);line-height:var(--text-sm-lh);font-weight:700;border:none;cursor:pointer;
  transition:background .2s,transform .2s,box-shadow .2s;
}
.lc-btn-primary:hover{background:#006432;transform:translateY(-2px);box-shadow:0 16px 40px rgba(0,137,68,.28)}
.lc-btn-primary svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:2.5}
.lc-btn-ghost{
  display:inline-flex;align-items:center;gap:7px;padding:14px 22px;background:#fff;border:1.5px solid var(--lc-border);
  border-radius:var(--lc-r-sm);color:var(--lc-text);font-size:var(--text-sm);line-height:var(--text-sm-lh);font-weight:500;transition:border-color .2s,color .2s;
}
.lc-btn-ghost:hover{border-color:var(--lc-text)}

/* ── Hero — now shares the homepage's .hero/.hero-slide--photo/.hero-grid-coach markup in main.css ── */
/* This page has no .hero-visual fallback markup, so the shared rule that hides
   .hero-bg img below 1360px (in favor of .hero-visual) leaves a blank gap from
   768px-1359px — .hero-mobile only takes over below 768px. Keep the photo
   visible down to that handoff point. Scoped to .lc-page; homepage untouched. */
@media(min-width:768px){
  .lc-page .hero-slide--photo .hero-bg img{display:block}
}

/* Mobile hero banner's subject (coach + phone) sits in the bottom ~40% of the
   source image, with blank gradient above — "center top" cropping shows only
   the blank area at typical mobile hero heights. Anchor to the bottom instead
   so the subject stays in frame. Scoped to .lc-page; homepage untouched. */
.lc-page .hero-mobile-photo img{object-position:center bottom}

/* ── Marquee ── */
.lc-marquee{background:var(--lc-bg);overflow:hidden;padding:14px 0;position:relative}
.lc-marquee::before,.lc-marquee::after{content:'';position:absolute;top:0;bottom:0;width:56px;pointer-events:none;z-index:1}
.lc-marquee::before{left:0;background:linear-gradient(90deg,var(--lc-bg),transparent)}
.lc-marquee::after{right:0;background:linear-gradient(270deg,var(--lc-bg),transparent)}
.lc-marquee-track{display:flex;align-items:center;gap:14px;width:max-content;animation:lcMarquee 32s linear infinite}
.lc-marquee-pill{
  display:flex;align-items:center;gap:8px;flex-shrink:0;
  height:44px;padding:0 20px;border-radius:22px;
  font-size:12.5px;font-weight:600;white-space:nowrap;
}
.lc-marquee-pill em{font-style:normal;font-weight:800}
.lc-marquee-pill-icon{display:flex;flex-shrink:0}
.lc-marquee-pill-icon svg{width:18px;height:18px}
.lc-marquee-pill--green{background:var(--green-100);color:var(--green-800)}
.lc-marquee-pill--orange{background:var(--orange-light);color:var(--orange-dark)}
.lc-marquee-pill--blue{background:var(--blue-100);color:var(--blue-600)}
@keyframes lcMarquee{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){.lc-marquee-track{animation:none}}

/* ── Proof strip ── */
.lc-proof-strip{padding:20px 0}
.lc-proof-cells{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media(min-width:640px){.lc-proof-cells{grid-template-columns:repeat(4,1fr)}}
.lc-proof-cell{padding:26px 18px;border-radius:var(--lc-r);text-align:center;display:flex;flex-direction:column;align-items:center;gap:6px}
.lc-proof-num{font-size:clamp(30px,5.5vw,46px);font-weight:800;letter-spacing:-.04em;line-height:1}
.lc-proof-lbl{font-size:12px;font-weight:600;line-height:1.4}
.lc-proof-cell--green{background:var(--green-100);color:var(--green-800)}
.lc-proof-cell--orange{background:var(--orange-light);color:var(--orange-dark)}
.lc-proof-cell--blue{background:var(--blue-100);color:var(--blue-600)}
.lc-proof-cell--green .lc-proof-num,.lc-proof-cell--green .lc-proof-lbl{color:var(--green-800)}
.lc-proof-cell--orange .lc-proof-num,.lc-proof-cell--orange .lc-proof-lbl{color:var(--orange-dark)}
.lc-proof-cell--blue .lc-proof-num,.lc-proof-cell--blue .lc-proof-lbl{color:var(--blue-600)}

/* ── ₹499 lock-in banner ── */
.lc-price-lock{padding:16px 0}
.lc-price-lock-inner{
  display:flex;flex-direction:column;gap:20px;align-items:flex-start;
  padding:0px 0px;border-radius:var(--lc-r-lg);
  background:linear-gradient(135deg,var(--lc-teal-soft),var(--lc-bg-raised));
  border:1px solid var(--lc-border-hi);
}
@media(min-width:760px){
  .lc-price-lock-inner{flex-direction:row;align-items:center;justify-content:space-between;gap:28px}
}
@media(max-width:759px){
  .lc-price-lock-inner{align-items:center}
  .lc-price-lock-copy{text-align:center}
  .lc-price-lock-copy p{margin-left:auto;margin-right:auto}
}
.lc-price-lock-badge{
  display:inline-block;margin-bottom:10px;padding:4px 12px;border-radius:999px;
  font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;
  color:var(--lc-teal);background:#fff;border:1px solid var(--lc-border-hi);
}
.lc-price-lock-copy h2{font-size:var(--text-h2);font-weight:800;letter-spacing:-.03em;line-height:var(--text-h2-lh);color:var(--lc-text);margin-bottom:8px}
.lc-price-lock-copy h2 em{font-style:normal;color:var(--lc-teal)}
.lc-price-lock-copy p{font-size:var(--text-body-lg);color:var(--lc-muted);line-height:var(--text-body-lg-lh);max-width:480px;margin:0}
.lc-price-lock-btn{
  display:inline-flex;align-items:center;gap:8px;flex-shrink:0;white-space:nowrap;
  padding:15px 26px;border-radius:var(--lc-r-sm);background:var(--lc-teal);color:#fff !important;
  font-size:var(--text-sm);line-height:var(--text-sm-lh);font-weight:700;transition:background .2s,transform .2s,box-shadow .2s;
}
.lc-price-lock-btn:hover{background:#006432;transform:translateY(-2px);box-shadow:0 16px 40px rgba(0,137,68,.28)}
.lc-price-lock-btn svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2.5}

/* ── ₹799 lock-in banner v2 (copy written directly over the banner image) ── */
.lc-price-lock--v2{padding:0}
.lc-price-lock--v2 .lc-wrap{padding-left:0;padding-right:0;max-width:none}
.lc-price-lock--v2 .lc-price-lock-inner{
  position:relative;overflow:hidden;border-radius:0;border:none;
  background:var(--lc-teal-soft);
  margin-bottom:56px;
}
.lc-price-lock--v2 .lc-price-lock-copy{padding:32px 24px}
.lc-price-lock--v2 .lc-price-lock-img{width:100%;height:auto;display:block}
.lc-price-lock--v2 .lc-price-lock-badge{display:inline-flex;align-items:center;gap:6px}
.lc-price-lock--v2 .lc-price-lock-badge svg{width:13px;height:13px;flex-shrink:0}
.lc-price-lock--v2 .lc-price-lock-actions{display:flex;flex-direction:column;align-items:flex-start;gap:16px;margin-top:20px}
.lc-price-lock--v2 .lc-price-lock-trust{display:flex;flex-wrap:wrap;gap:16px}
.lc-price-lock--v2 .lc-price-lock-trust span{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:600;color:var(--lc-muted)}
.lc-price-lock--v2 .lc-price-lock-trust svg{width:16px;height:16px;stroke:var(--lc-teal);flex-shrink:0}
@media(min-width:760px){
  /* coach-app-banner.jpg's own green area (measured directly on the source file) runs
     from 25.1% to 87.7% of the image height (image was extended with 70px of matching
     white padding at the bottom, so the feet aren't flush against the photo's own
     edge — that's what looked "cropped" even with margin on the container). Matching
     top/height to the green band's own bounds is what actually centers the text
     within the visible banner. Same fix as the lifestyle page. */
  .lc-price-lock--v2 .lc-price-lock-copy{
    position:absolute;left:0;top:25.1%;height:62.6%;width:52%;z-index:1;
    display:flex;flex-direction:column;justify-content:center;
    padding:0 4% 0 48px;color:#fff;
  }
  .lc-price-lock--v2 .lc-price-lock-badge{background:rgba(255,255,255,.16);color:#fff;border-color:rgba(255,255,255,.4);align-self:flex-start}
  .lc-price-lock--v2 .lc-price-lock-badge svg{stroke:#fff}
  /* white-space was nowrap when this heading was one short line ("...for just ₹799");
     it's since grown to include the struck-through original price, so it now wraps
     normally instead of overflowing the copy column's 52% width. */
  .lc-price-lock--v2 .lc-price-lock-copy h2{color:#fff;font-size:clamp(16px,1.5vw,22px);white-space:nowrap}
  .lc-price-lock--v2 .lc-price-lock-copy h2 em{color:#fff}
  .lc-price-lock--v2 .lc-price-lock-copy p{color:rgba(255,255,255,.88);max-width:560px}
  .lc-price-lock--v2 .lc-price-lock-btn{background:#fff;color:var(--lc-teal) !important}
  .lc-price-lock--v2 .lc-price-lock-btn:hover{background:#eafaf0;color:#006432 !important}
  .lc-price-lock--v2 .lc-price-lock-trust span{color:rgba(255,255,255,.88)}
  .lc-price-lock--v2 .lc-price-lock-trust svg{stroke:#fff}
}
@media(max-width:759px){
  .lc-price-lock--v2 .lc-price-lock-copy{text-align:center}
  .lc-price-lock--v2 .lc-price-lock-copy p{margin-left:auto;margin-right:auto}
  .lc-price-lock--v2 .lc-price-lock-actions{align-items:center}
  .lc-price-lock--v2 .lc-price-lock-trust{justify-content:center}
  .lc-price-lock--v2 .lc-price-lock-img{display:none}
}

/* ── Shared section styles ── */
.lc-section{padding:20px 0}
#problem{padding:20px 0}
#report{padding-bottom:32px}
.lc-bg-raised{background:var(--lc-bg-raised)}
.lc-how-bg{background:#fff}
.lc-kicker{display:flex;justify-content:center;align-items:center;gap:10px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.18em;color:var(--lc-teal);margin-bottom:14px}
.lc-kicker-line{display:block;width:22px;height:1px;background:rgba(0,137,68,.35);flex-shrink:0}
.lc-h2{font-size:var(--text-h2);font-weight:800;letter-spacing:-.03em;line-height:var(--text-h2-lh);color:var(--lc-text);margin-bottom:16px}
.lc-h2 em{font-style:normal;color:var(--lc-teal)}
.lc-p{font-size:var(--text-body-lg);color:var(--lc-muted);line-height:var(--text-body-lg-lh);max-width:520px;margin:0 auto 24px}
.lc-c{text-align:center}

/* ── Problem ── */
.lc-prob-top{display:grid;grid-template-columns:1fr;gap:36px;align-items:center;margin-bottom:40px}
@media(min-width:860px){.lc-prob-top{grid-template-columns:1.05fr .95fr;gap:48px;margin-bottom:52px}}
.lc-kicker-left{justify-content:flex-start}
.lc-prob-heading{font-size:var(--text-h2);font-weight:800;letter-spacing:-.035em;line-height:var(--text-h2-lh);color:var(--lc-text);margin-bottom:16px}
.lc-prob-heading em{font-style:normal;color:var(--lc-teal)}
.lc-prob-lead{font-size:var(--text-body-lg);color:var(--lc-muted);line-height:var(--text-body-lg-lh);max-width:460px;margin:0}
@media(max-width:859px){
  .lc-kicker-left{justify-content:center}
  .lc-prob-heading{text-align:center}
  .lc-prob-lead{text-align:center;margin-left:auto;margin-right:auto}
}

.lc-prob-visual{width:100%;max-width:560px;margin:0 auto}
.lc-prob-visual img{width:100%;height:auto;display:block}

.lc-problem-grid{display:grid;grid-template-columns:1fr;gap:16px}
@media(min-width:960px){.lc-problem-grid{grid-template-columns:repeat(3,1fr)}}
/* The card's gutter lives in its own left+right margin, not the container's
   padding/gap — see the .lc-steps-grid comment (further down) for why: a card's
   margin-box exactly tiling the viewport is what makes the next card land flush
   at the edge on snap, instead of a sliver of it creeping into view. The old
   flex:0 0 86% (capped at 420px) is what caused that — at any viewport wider than
   ~490px the card stopped growing while the slot kept growing, leaving dead space
   for the next card to peek through. */
@media(max-width:959px){
  .lc-problem-grid{
    display:flex;flex-wrap:nowrap;grid-template-columns:none;gap:16px;
    overflow-x:auto;scroll-snap-type:x mandatory;
    -webkit-overflow-scrolling:touch;scrollbar-width:none;
    /* overflow-x:auto with no overflow-y set makes the browser compute overflow-y as
       auto too (not visible), which clips the "01/02/03" badge — it's deliberately
       positioned top:-13px to float half above the card's own edge (see .lc-prob-num
       below), so this container needs top padding just to give that badge room to
       render before it hits the now-clipped edge. */
    margin:0 calc(var(--lc-gutter, 16px) * -1);padding:16px var(--lc-gutter, 16px) 6px;
  }
  .lc-problem-grid::-webkit-scrollbar{display:none}
  .lc-prob-card{flex:0 0 100%;max-width:none;margin:0;scroll-snap-align:center;scroll-snap-stop:always}
}
.lc-prob-dots{display:none;margin-top:20px}
@media(max-width:959px){.lc-prob-dots{display:flex}}
.lc-prob-card{background:var(--lc-card);border-radius:var(--lc-r);padding:30px 22px 26px;box-shadow:var(--lc-shadow-sm);transition:transform .3s,box-shadow .3s;position:relative;overflow:visible;display:flex;flex-direction:column}
.lc-prob-card:hover{transform:translateY(-4px);box-shadow:var(--lc-shadow)}
.lc-prob-card-body{position:relative;z-index:2;display:flex;flex-direction:column;flex:1}

/* Number pill (top-left) and icon circle (top-right) both float above the card's
   own top edge, half on / half off — same floating-chip treatment as the feature
   cards above, so overflow on .lc-prob-card must stay visible, not hidden. */
.lc-prob-num{position:absolute;top:-13px;left:20px;font-size:11px;font-weight:700;letter-spacing:.04em;color:var(--lc-teal);background:var(--lc-teal-soft);border-radius:999px;padding:5px 12px;z-index:3;box-shadow:0 4px 10px rgba(0,0,0,.06)}
.lc-prob-icon{position:absolute;top:-18px;right:20px;width:44px;height:44px;border-radius:50%;background:#fff;box-shadow:0 6px 14px rgba(0,0,0,.08);display:flex;align-items:center;justify-content:center;z-index:3}
.lc-prob-icon svg{width:19px;height:19px;color:var(--lc-teal)}

.lc-prob-h3{font-size:var(--text-h4);font-weight:700;line-height:var(--text-h4-lh);letter-spacing:-.015em;color:var(--lc-text);margin:5px 0 6px;overflow-wrap:break-word}
.lc-prob-p{font-size:var(--text-body);color:var(--lc-muted);line-height:var(--text-body-lh);overflow-wrap:break-word}
.lc-prob-tag{display:inline-block;align-self:flex-start;margin-top:auto;font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--lc-teal);background:var(--lc-teal-soft);border-radius:999px;padding:3px 10px}

/* card mockups — phones / pyramid — and, in photo mode, the real image */
.lc-prob-visual-panel{margin-top:22px;display:flex;align-items:center;justify-content:center;padding:18px;overflow:hidden}
.lc-prob-mock{transform:scale(.94)}
.lc-prob-photo{width:100%;height:100%;object-fit:contain}

@media(min-width:640px){
  .lc-prob-card{min-height:336px;padding:0}
  .lc-prob-card-body{max-width:58%;padding:30px 0 26px 22px}
  .lc-prob-visual-panel{
    position:absolute;right:0;bottom:0;z-index:1;margin-top:0;
    width:45%;height:82%;
    padding:14px;
  }
  .lc-prob-mock{transform:none}
}

/* Photo mode — a real image dropped into public/images/lifestyle/problem/ becomes
   the card's own full-bleed background (no drawn mock, no visual panel), and the
   text sits directly on top of it with no panel of its own — the photo already
   has a light area built in for that, so no extra backing is added here. */
.lc-prob-card--photo{padding:26px 22px}
/* These 3 photos (generic-plan/motivation-coach/habit-pyramid, reused from the
   Lifestyle Coaching page) all have their subject sitting in the right ~40-45% of
   the frame, with empty space on the left for the text column — a default center
   object-position crops into the subject on narrow mobile cards. Anchoring right
   instead keeps the crop eating into the empty left side first. */
.lc-prob-card-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:right 20%;border-radius:inherit;z-index:0}
.lc-prob-card--photo .lc-prob-card-body{max-width:55%}
@media(min-width:640px){
  .lc-prob-card--photo{min-height:336px;padding:26px 22px}
  .lc-prob-card--photo .lc-prob-card-body{padding:0;max-width:38%}
}
.lc-prob-phone{width:96px;background:#fff;border:2.5px solid var(--lc-text);border-radius:16px;padding:9px 8px 8px;box-shadow:var(--lc-shadow);transform:rotate(-5deg)}
.lc-prob-phone--chat{transform:rotate(5deg)}
.lc-prob-phone-notch{width:26px;height:3.5px;border-radius:3px;background:var(--lc-text);margin:0 auto 7px;opacity:.85}
.lc-prob-phone-screen{display:flex;flex-direction:column;gap:3px}
.lc-prob-phone-title{font-size:8px;font-weight:800;color:var(--lc-text);margin-bottom:2px}
.lc-prob-phone-row{display:flex;align-items:center;justify-content:space-between;font-size:7px;font-weight:600;color:var(--lc-muted);padding-bottom:2.5px;border-bottom:1px solid var(--lc-border)}
.lc-prob-phone-x{color:var(--lc-red);font-weight:800;font-size:7.5px}
.lc-prob-phone-screen--chat{align-items:flex-start;gap:6px;padding-top:2px}
.lc-prob-chat-avatar{width:22px;height:22px;border-radius:50%;background:var(--lc-teal-soft);border:1px solid var(--lc-border-hi);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.lc-prob-chat-avatar svg{width:12px;height:12px;color:var(--lc-teal)}
.lc-prob-chat-bubble{background:var(--lc-teal-soft);border:1px solid var(--lc-border-hi);border-radius:9px 9px 9px 3px;padding:6px 7px;font-size:7px;line-height:1.4;color:var(--lc-text);font-weight:600;max-width:78px}

.lc-prob-pyramid{width:112px;display:flex;flex-direction:column;align-items:center}
.lc-prob-pyr-tier{display:flex;align-items:center;justify-content:center;height:23px;color:#fff;font-size:7.5px;font-weight:700;letter-spacing:.01em}
.lc-prob-pyr-tier span{transform:translateY(1px)}
.lc-prob-pyr-tier--1{width:42%;background:#cdeed9;color:#1d5f3c;clip-path:polygon(14% 0,86% 0,100% 100%,0 100%)}
.lc-prob-pyr-tier--2{width:64%;background:#8ed4ac;margin-top:-2px;clip-path:polygon(10% 0,90% 0,100% 100%,0 100%)}
.lc-prob-pyr-tier--3{width:84%;background:#3fb277;margin-top:-2px;clip-path:polygon(7% 0,93% 0,100% 100%,0 100%)}
.lc-prob-pyr-tier--4{width:100%;background:var(--lc-teal);margin-top:-2px;clip-path:polygon(4% 0,96% 0,100% 100%,0 100%)}

.lc-prob-cta{display:flex;flex-direction:column;align-items:center;gap:14px;margin-top:40px;text-align:center}
@media(min-width:640px){.lc-prob-cta{flex-direction:row;justify-content:center;gap:20px}}
@media(min-width:860px){.lc-prob-cta{margin-top:52px}}
.lc-prob-note{display:flex;align-items:center;gap:8px;font-family:'Segoe Print','Bradley Hand',cursive;font-size:17px;color:var(--lc-text-2);transform:rotate(-2deg)}
.lc-prob-note svg{width:26px;height:20px;color:var(--lc-teal);opacity:.75;transform:rotate(2deg)}

/* ── How it works ── */
.lc-steps-grid{display:grid;grid-template-columns:1fr;gap:28px;position:relative}
@media(min-width:680px){
  .lc-steps-grid{grid-template-columns:repeat(3,1fr);gap:48px}
}
/* Mobile: horizontal scroll-snap slider instead of stacked cards — one card per screen.
   The card's gutter lives entirely in its own left+right margin (not the container's
   padding/gap): a card's margin-box exactly tiles the viewport width, so the next
   card's border-box lands precisely at the viewport edge on snap — no sliver of it
   creeps into view. (Putting the gutter on the *container* instead made Chrome's
   scroll-snap-align:start rest 16px short of a full page, leaving the next card
   peeking through on the right.) */
@media(max-width:679px){
  .lc-steps-grid{
    display:flex;grid-template-columns:none;gap:16px;
    margin-left:calc(var(--lc-gutter, 16px) * -1);margin-right:calc(var(--lc-gutter, 16px) * -1);
    overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;
    padding:0px var(--lc-gutter, 16px) 10px;
    scrollbar-width:none;
  }
  .lc-steps-grid::-webkit-scrollbar{display:none}
  .lc-step-card{flex:0 0 100%;margin:0;scroll-snap-align:center;scroll-snap-stop:always}
}
.lc-steps-dots{display:none;margin-top:8px}
@media(max-width:679px){.lc-steps-dots{display:flex}}
.lc-step-card{background:var(--lc-card);border:1px solid var(--lc-border);border-radius:var(--lc-r);overflow:hidden;position:relative;z-index:1;box-shadow:var(--lc-shadow-sm);transition:border-color .3s,transform .3s,box-shadow .3s}
.lc-step-card:hover{border-color:var(--lc-border-hi);transform:translateY(-4px);box-shadow:var(--lc-shadow)}

.lc-step-media{position:relative;aspect-ratio:16/10;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--lc-teal-soft) 0%,#eef7f0 60%,#fff 100%)}
.lc-step-media--2{background:linear-gradient(135deg,#e8f1ff 0%,#eef6ff 60%,#fff 100%)}
.lc-step-media--3{background:linear-gradient(135deg,#fdf1e0 0%,#fff8ec 60%,#fff 100%)}
.lc-step-media-icon svg{width:56px;height:56px;color:var(--lc-teal);opacity:.55}
.lc-step-media--2 .lc-step-media-icon svg{color:#2563eb}
.lc-step-media--3 .lc-step-media-icon svg{color:var(--lc-amber)}
.lc-step-num{
  position:absolute;top:14px;left:14px;z-index:2;
  min-width:36px;height:36px;padding:0 4px;border-radius:10px;
  background:var(--lc-teal);color:#fff;font-size:14px;font-weight:800;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 6px 16px rgba(0,137,68,.28);
}
.lc-step-media-img{position:absolute;inset:0;width:100%;height:100%;z-index:1}
.lc-step-media-img--cover{object-fit:cover}
.lc-step-media-img--contain{object-fit:contain;padding:16px}

.lc-step-body{padding:16px}
.lc-step-head{display:flex;align-items:center;gap:12px;margin-bottom:10px}
.lc-step-icon{
  flex-shrink:0;width:38px;height:38px;border-radius:11px;
  background:rgba(0,137,68,.09);border:1px solid var(--lc-border-hi);
  display:flex;align-items:center;justify-content:center;color:var(--lc-teal);
}
.lc-step-icon svg{width:19px;height:19px}
.lc-step-h3{font-size:var(--text-h4);font-weight:700;line-height:var(--text-h4-lh);letter-spacing:-.015em;color:var(--lc-text)}
.lc-step-p{font-size:var(--text-body);color:var(--lc-muted);line-height:var(--text-body-lh)}
.lc-step-time{display:inline-flex;align-items:center;gap:7px;margin-top:16px;padding:7px 11px;font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--lc-teal);background:rgba(0,137,68,.05);border:1px dashed rgba(0,137,68,.34);border-radius:6px}
.lc-step-time svg{width:12px;height:12px;flex-shrink:0}

.lc-step-arrow{display:none}
@media(min-width:680px){
  .lc-step-arrow{
    display:flex;align-items:center;justify-content:center;
    position:absolute;top:110px;
    width:28px;height:28px;border-radius:50%;
    background:var(--lc-teal);color:#fff;z-index:2;
    box-shadow:0 4px 12px rgba(0,137,68,.3);
    transform:translate(-50%,-50%);
  }
  .lc-step-arrow svg{width:14px;height:14px}
  .lc-step-arrow:nth-of-type(1){left:calc(33.333% - 8px)}
  .lc-step-arrow:nth-of-type(2){left:calc(66.666% + 8px)}
}

.lc-how-cta-wrap{display:flex;justify-content:center;margin-top:26px}
.lc-how-cta{min-width:240px}

/* ── Features grid ── */
.lc-feats-grid{display:grid;grid-template-columns:1fr;gap:14px}
@media(min-width:560px){.lc-feats-grid{grid-template-columns:1fr 1fr}}
@media(min-width:900px){.lc-feats-grid{grid-template-columns:repeat(4,1fr);gap:14px}}
/* Mobile: horizontal scroll-snap slider instead of stacked cards — one card per screen.
   Extra top padding (vs. the explore/steps sliders) makes room for .lc-feat-badge,
   which floats above the card's own top edge and would otherwise get clipped.
   The card's gutter lives in its own left+right margin, not the container's padding/
   gap — see the .lc-steps-grid comment for why (avoids a next-card sliver on snap). */
@media(max-width:559px){
  .lc-feats-grid{
    display:flex;grid-template-columns:none;gap:16px;
    margin-left:calc(var(--lc-gutter, 16px) * -1);margin-right:calc(var(--lc-gutter, 16px) * -1);
    overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;
    padding:18px var(--lc-gutter, 16px) 10px;
    scrollbar-width:none;
  }
  .lc-feats-grid::-webkit-scrollbar{display:none}
  .lc-feat-card{flex:0 0 100%;margin:0;scroll-snap-align:center;scroll-snap-stop:always}
}
.lc-feat-dots{display:none;margin-top:20px}
@media(max-width:559px){.lc-feat-dots{display:flex}}
.lc-feat-card{position:relative;background:var(--lc-card);border-radius:var(--lc-r);padding:14px 16px 20px;box-shadow:var(--lc-shadow-sm);transition:transform .3s,box-shadow .3s;overflow:visible}
.lc-feat-card:hover{transform:translateY(-3px);box-shadow:var(--lc-shadow)}
.lc-feat-visual{position:relative;height:112px;border-radius:var(--lc-r-sm);margin-bottom:16px;display:flex;align-items:center;justify-content:center;overflow:hidden}
.lc-feat-visual--0{background:linear-gradient(135deg,#eaf7ee,#d7efdd)}
.lc-feat-visual--1{background:linear-gradient(135deg,#eef6f1,#dcecdf)}
.lc-feat-visual--2{background:linear-gradient(135deg,#f0f7ef,#e0eee0)}
.lc-feat-visual--3{background:linear-gradient(135deg,#eaf6f0,#d9edde)}
.lc-feat-visual-icon svg{width:38px;height:38px;stroke:var(--lc-teal);fill:none;opacity:.85}

/* Badge chip floats above the card's top-left corner, half on / half off — set on
   .lc-feat-card (not .lc-feat-visual) so it isn't clipped by the panel's overflow:hidden.
   Icon-panel fallback only — real photos already have their own icon baked in. */
.lc-feat-badge{position:absolute;top:-14px;left:18px;width:32px;height:32px;border-radius:10px;background:#fff;box-shadow:0 6px 14px rgba(0,0,0,.08);display:flex;align-items:center;justify-content:center;z-index:2}
.lc-feat-badge svg{width:15px;height:15px;stroke:var(--lc-teal)}

/* Photo mode — a real image dropped into public/images/lifestyle/features/ replaces
   the icon-panel fallback above. The source images already carry their own border/
   padding baked in, so this bleeds the image out to the card's own edges (negative-
   margined past the card's padding) instead of stacking the card's padding on top
   of the image's — no forced height, no background, no crop, no double gutter. */
.lc-feat-visual--photo{height:auto;background:none;display:block;margin:-14px -16px 16px;width:calc(100% + 32px);border-radius:var(--lc-r) var(--lc-r) 0 0;overflow:hidden}
.lc-feat-photo{width:100%;height:auto;display:block}

.lc-feat-h3{font-size:var(--text-h4);font-weight:700;line-height:var(--text-h4-lh);letter-spacing:-.01em;color:var(--lc-text);margin-bottom:6px}
.lc-feat-p{font-size:var(--text-body);color:var(--lc-muted);line-height:var(--text-body-lh)}

.lc-highlight{color:var(--lc-teal)}

.lc-feat-cta{display:flex;align-items:center;justify-content:center;gap:6px;margin-top:26px}
.lc-feat-cta-arrow{color:rgba(0,137,68,.4);flex-shrink:0;display:none}
.lc-feat-cta-arrow svg{width:44px;height:40px}
@media(min-width:640px){.lc-feat-cta-arrow{display:block}}

/* ── Report preview ── */
.lc-report-layout{
  display:grid;grid-template-columns:1fr;gap:28px;align-items:start;
  grid-template-areas:"h2" "photo" "list";
}
.lc-rep-area-h2{grid-area:h2}
.lc-rep-area-photo{grid-area:photo}
.lc-rep-area-list{grid-area:list}
@media(min-width:900px){
  .lc-report-layout{
    grid-template-columns:minmax(0,540px) 1fr;gap:40px;align-items:center;
    grid-template-areas:"h2 photo" "list photo";
  }
}
@media(max-width:899px){
  .lc-rep-tag{justify-content:center}
  .lc-rep-h2{text-align:center}
  .lc-rep-p{text-align:center}
  .lc-rep-area-list{display:flex;flex-direction:column;align-items:center}
  .lc-rep-area-list .lc-rep-list{width:100%;align-items:flex-start}
  .lc-rep-note{text-align:center}
}
.lc-rep-tag{display:flex;align-items:center;gap:10px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.16em;color:var(--lc-teal);margin-bottom:14px}
.lc-rep-tag span{display:block;width:20px;height:1px;background:rgba(0,137,68,.4)}
.lc-rep-h2{font-size:var(--text-h2);font-weight:800;letter-spacing:-.04em;line-height:var(--text-h2-lh);color:var(--lc-text);margin-bottom:16px}
.lc-rep-h2 em{font-style:normal;color:var(--lc-teal)}
.lc-rep-p{font-size:var(--text-body-lg);color:var(--lc-muted);line-height:var(--text-body-lg-lh);margin-bottom:22px}
.lc-rep-list{display:flex;flex-direction:column;gap:16px;margin-bottom:26px}
.lc-rep-item{display:flex;align-items:center;gap:14px}
.lc-rep-icon{width:44px;height:44px;border-radius:var(--lc-r-xs);background:var(--lc-teal-soft);display:flex;align-items:center;justify-content:center;flex-shrink:0;overflow:hidden}
.lc-rep-icon svg{width:19px;height:19px;color:var(--lc-teal)}
.lc-rep-icon img{width:100%;height:100%;object-fit:contain}
.lc-rep-item-copy{display:flex;flex-direction:column;gap:2px}
.lc-rep-item-title{font-size:var(--text-h4);font-weight:700;color:var(--lc-text);line-height:var(--text-h4-lh)}
.lc-rep-item-text{font-size:var(--text-body);color:var(--lc-muted);line-height:var(--text-body-lh)}
.lc-rep-note{margin-top:14px;font-size:12.5px;color:var(--lc-muted-2)}

.lc-rep-photo{width:100%;height:auto;display:block;border-radius:var(--lc-r-lg);min-height:420px;object-fit:cover}

.lc-rep-card{background:var(--lc-card);border:1px solid var(--lc-border);border-radius:var(--lc-r);padding:20px;box-shadow:var(--lc-shadow-lg);position:relative;overflow:hidden}
.lc-rep-card::before{content:'';position:absolute;top:0;left:8%;right:8%;height:2px;background:linear-gradient(90deg,transparent,rgba(0,137,68,.35),transparent)}
.lc-rch{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--lc-border)}
.lc-rch-brand{font-size:11px;font-weight:700;color:var(--lc-teal);text-transform:uppercase;letter-spacing:.1em}
.lc-rch-user{font-size:11px;color:var(--lc-muted);font-weight:500}
.lc-rcs-row{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:16px}
.lc-rcs-cell{background:rgba(0,137,68,.04);border:1px solid rgba(0,137,68,.16);border-radius:var(--lc-r-xs);padding:10px 6px;text-align:center}
.lc-rcs-val{font-size:17px;font-weight:800;line-height:1;margin-bottom:3px;color:var(--lc-text)}
.lc-rcs-lbl{font-size:8.5px;color:var(--lc-muted);font-weight:600;text-transform:uppercase;letter-spacing:.06em}
.lc-rcm-label{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--lc-muted-2);margin-bottom:10px}
.lc-rcm-rows{display:flex;flex-direction:column;gap:9px;margin-bottom:14px}
.lc-rcm-row{display:flex;justify-content:space-between;align-items:center;font-size:11px}
.lc-rcm-name{color:var(--lc-muted);font-weight:500}
.lc-rcm-right{display:flex;align-items:center;gap:7px}
.lc-rcm-bar{height:3px;border-radius:999px;background:var(--lc-teal)}
.lc-rcm-pct{font-size:10.5px;font-weight:700;color:var(--lc-teal)}
.lc-rc-insight{background:rgba(0,137,68,.05);border:1px solid rgba(0,137,68,.16);border-radius:var(--lc-r-xs);padding:10px 12px;font-size:11.5px;color:var(--lc-text-2);line-height:1.6}
.lc-rc-insight strong{color:var(--lc-teal);font-weight:700}

/* ── Testimonials ── */
.lc-testi-grid{display:grid;grid-template-columns:1fr;gap:16px}
@media(min-width:560px){.lc-testi-grid{grid-template-columns:1fr 1fr}}
@media(min-width:900px){.lc-testi-grid{grid-template-columns:repeat(3,1fr)}}
.lc-testi-card{background:var(--lc-card);border:1px solid var(--lc-border);border-radius:var(--lc-r);padding:22px;box-shadow:var(--lc-shadow-sm);transition:border-color .3s,transform .3s,box-shadow .3s;display:flex;flex-direction:column}
.lc-testi-card:hover{border-color:rgba(0,137,68,.26);transform:translateY(-3px);box-shadow:var(--lc-shadow)}
.lc-t-stars{color:var(--lc-amber);font-size:13px;letter-spacing:2px;margin-bottom:12px}
.lc-t-quote{font-size:13px;color:var(--lc-text-2);font-style:italic;line-height:1.78;margin-bottom:16px;flex:1}
.lc-t-author{display:flex;align-items:center;gap:10px}
.lc-t-avatar{width:36px;height:36px;border-radius:50%;background:rgba(0,137,68,.10);display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:800;color:var(--lc-teal);flex-shrink:0}
.lc-t-name{font-size:13px;font-weight:700;color:var(--lc-text)}
.lc-t-city{font-size:11px;color:var(--lc-muted);margin-top:1px}
.lc-t-win{display:inline-flex;align-items:center;gap:5px;margin-top:12px;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.09em;color:var(--lc-teal);background:var(--lc-teal-soft);border:1px solid var(--lc-border-hi);border-radius:999px;padding:3px 10px}

/* ── FAQ — mobile and desktop each get their own header, never both at once ── */
.lc-faq-header--desktop{display:none}
@media(min-width:960px){
  /* Compound class selector (not just .lc-faq-header--mobile) so this beats
     the unconditional .lc-faq-header{display:flex} base rule below no matter
     which comes first in the file — same specificity would otherwise let
     source order flip the winner and both headers show at once. */
  .lc-faq-header.lc-faq-header--mobile{display:none}
  .lc-faq-header--desktop{display:block;text-align:center;max-width:1320px;margin:0 auto 28px}
}

/* Mobile header: bold left-aligned heading + subheading beside the
   pointing-hand visual — side-by-side and top-aligned, matching the
   reference design. Falls back gracefully (visual just doesn't render) if
   no image is dropped into images/lifestyle/faq/. */
.lc-faq-header{display:flex;flex-direction:row;align-items:flex-start;justify-content:space-between;gap:16px;max-width:1320px;margin:0 auto 28px;text-align:left}
@media(min-width:700px){.lc-faq-header{gap:32px;margin-bottom:32px}}
.lc-faq-header-copy{max-width:480px;position:relative}
.lc-faq-heading{font-size:var(--text-h2);font-weight:800;letter-spacing:-.04em;line-height:var(--text-h2-lh);color:var(--lc-text);text-transform:capitalize;margin-bottom:8px}
.lc-faq-heading em{font-style:normal;color:var(--lc-teal)}
.lc-faq-subheading{font-size:var(--text-body-lg);line-height:var(--text-body-lg-lh);color:var(--lc-muted);margin:0 0 20px}
.lc-faq-header-visual{flex-shrink:0;width:min(280px,42vw)}
.lc-faq-header-visual img{width:100%;height:auto;display:block}

/* Hand-drawn "Got Questions?" speech bubble + arrow pointing at the visual */
.lc-faq-doodle{display:flex;align-items:flex-start;gap:6px}
.lc-faq-doodle-ticks{flex-shrink:0;color:var(--lc-teal);margin-top:14px}
.lc-faq-doodle-ticks svg{width:16px;height:20px}
.lc-faq-bubble-wrap{position:relative;flex-shrink:0}
.lc-faq-bubble{
  display:inline-block;position:relative;transform:rotate(-2deg);
  background:var(--lc-teal-soft);color:var(--lc-teal);
  border-radius:28px 28px 28px 6px;
  padding:16px 22px;font-size:14px;font-weight:700;line-height:1.5;
  max-width:210px;white-space:normal;
}
.lc-faq-bubble-arrow{position:absolute;right:-46px;bottom:2px;width:52px;height:34px;color:var(--lc-teal);pointer-events:none}
.lc-faq-bubble-arrow svg{width:100%;height:100%}
@media(max-width:479px){.lc-faq-bubble-arrow{display:none}}

.lc-faq-layout{display:grid;grid-template-columns:1fr;gap:28px;max-width:1320px;margin:0 auto}
.lc-faq-layout--full .lc-faq-wrap{max-width:720px;margin:0 auto}

/* Photo variant (public/images/lifestyle/faq/still-have-questions.jpg present):
   hidden below 960px — mobile just gets the question list — then becomes a
   single row from 960px up: image fixed to the left, the whole FAQ list to
   the right, instead of the no-photo "--full" variant's two-column grid. */
.lc-faq-visual{display:none;width:100%;max-width:420px;margin:0 auto}
.lc-faq-photo{width:100%;height:auto;border-radius:var(--lc-r-lg);display:block}
@media(min-width:960px){
  .lc-faq-visual{display:block}
  /* True 50/50 split — the photo gets a whole half of the row, not a narrow
     side column, so it reads as large as the question list beside it.
     align-items:stretch (not sticky — it shouldn't float/follow scroll) makes
     the photo column match the question list's own height exactly, so
     object-fit:cover fills it with no leftover gap below. */
  .lc-faq-layout:not(.lc-faq-layout--full){grid-template-columns:1fr 1fr;gap:24px;align-items:stretch}
  .lc-faq-layout:not(.lc-faq-layout--full) .lc-faq-visual{max-width:none}
  .lc-faq-layout:not(.lc-faq-layout--full) .lc-faq-photo{height:100%;object-fit:cover}
}

/* Desktop only: the single narrow accordion column above is a mobile-first
   layout that wastes the wide canvas on desktop, so from 960px up (no photo
   supplied — the "--full" variant) it becomes a two-column grid instead. The
   CTA button is the one item after the loop of questions, so it's pulled out
   to span both columns rather than sitting in whichever column it lands in. */
@media(min-width:960px){
  .lc-faq-layout--full .lc-faq-wrap{
    max-width:none;display:grid;grid-template-columns:1fr 1fr;
    gap:14px 20px;align-items:start;
  }
  .lc-faq-layout--full .lc-faq-cta{grid-column:1/-1}
}

.lc-faq-cta{text-align:center;margin-top:6px}

.lc-faq-wrap{max-width:none;margin:0;display:flex;flex-direction:column;gap:10px}
.lc-faq-item{background:var(--lc-card);border:1px solid var(--lc-border);border-radius:var(--lc-r-sm);overflow:hidden;box-shadow:var(--lc-shadow-sm);transition:border-color .25s}
.lc-faq-item.open{border-color:rgba(0,137,68,.30)}
.lc-faq-q{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px;cursor:pointer;user-select:none;font-size:14.5px;font-weight:600;color:var(--lc-text);transition:color .2s}
.lc-faq-q-left{display:flex;align-items:center;gap:14px;min-width:0}
.lc-faq-icon{width:36px;height:36px;border-radius:50%;background:var(--lc-teal-soft);display:flex;align-items:center;justify-content:center;flex-shrink:0;overflow:hidden}
.lc-faq-icon svg{width:16px;height:16px;color:var(--lc-teal)}
.lc-faq-icon img{width:100%;height:100%;object-fit:contain}
.lc-faq-q:hover,.lc-faq-item.open .lc-faq-q{color:var(--lc-teal)}
.lc-faq-chevron{width:22px;height:22px;border-radius:50%;border:1.5px solid var(--lc-border);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:transform .35s cubic-bezier(.16,1,.3,1),border-color .25s,background .25s}
.lc-faq-item.open .lc-faq-chevron{transform:rotate(180deg);border-color:var(--lc-teal);background:var(--lc-teal-soft)}
.lc-faq-chevron svg{width:11px;height:11px;stroke:var(--lc-muted);fill:none;stroke-width:2.5;transition:stroke .2s}
.lc-faq-item.open .lc-faq-chevron svg{stroke:var(--lc-teal)}
.lc-faq-body{max-height:0;overflow:hidden;opacity:0;transition:max-height .4s ease,opacity .3s ease}
.lc-faq-item.open .lc-faq-body{max-height:300px;opacity:1}
.lc-faq-body p{margin:0;padding:12px 18px 16px;font-size:14px;color:var(--lc-muted);line-height:1.7;background:var(--lc-teal-soft)}

.lc-faq-talk{
  display:flex;align-items:center;gap:16px;margin-top:24px;padding:18px 22px;
  border-radius:var(--lc-r-lg);background:var(--lc-teal-soft);
  transition:transform .2s,box-shadow .2s;
}
.lc-faq-talk:hover{transform:translateY(-2px);box-shadow:var(--lc-shadow)}
.lc-faq-talk-icon{
  flex-shrink:0;width:44px;height:44px;border-radius:50%;background:#fff;
  display:flex;align-items:center;justify-content:center;color:var(--lc-teal);
  box-shadow:var(--lc-shadow-sm);
}
.lc-faq-talk-icon svg{width:20px;height:20px}
.lc-faq-talk-copy{display:flex;flex-direction:column;gap:2px}
.lc-faq-talk-label{font-size:13.5px;color:var(--lc-muted)}
.lc-faq-talk-cta{display:inline-flex;align-items:center;gap:6px;font-size:var(--text-sm);line-height:var(--text-sm-lh);font-weight:700;color:var(--lc-teal)}
.lc-faq-talk-cta svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2.5}

/* ── Footer ── */
.lc-footer{border-top:1px solid var(--lc-border);padding:32px 0}
.lc-footer-inner{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:16px}
.lc-footer-logo img{height:24px;width:auto}
.lc-footer-links{display:flex;align-items:center;justify-content:center;gap:20px;flex-wrap:wrap}
.lc-footer-links a{font-size:12px;color:var(--lc-muted-2);font-weight:500;transition:color .2s}
.lc-footer-links a:hover{color:var(--lc-teal)}
.lc-footer-copy{font-size:11.5px;color:var(--lc-muted-2);font-weight:500}

/* ── Sticky bottom CTA ──
   min-height ties to --lc-nav-h (the header's own height variable) so this bar keeps
   the same visual presence as the header, at any breakpoint, without a rigid fixed
   height — the button itself is untouched, just given more room to breathe. Content
   still grows the bar taller than the floor if it ever needs to (safe-area insets on
   notched phones), so nothing gets cropped. .lc-page's bottom padding (--lc-sticky-h)
   is kept in sync below so the bar never overlaps the page's own content. */
.lc-sticky{
  display:flex;align-items:center;position:fixed;left:0;right:0;bottom:0;width:100%;z-index:10050;
  min-height:var(--lc-nav-h);box-sizing:border-box;
  padding:18px max(var(--lc-gutter),env(safe-area-inset-right,0px)) calc(18px + env(safe-area-inset-bottom,0px)) max(var(--lc-gutter),env(safe-area-inset-left,0px));
  background:rgba(255,255,255,.92);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
  border-top:1px solid var(--lc-border);box-shadow:0 -4px 20px rgba(16,24,40,.06);
}
@media(max-width:899px){.lc-sticky{backdrop-filter:none;-webkit-backdrop-filter:none;background:#fff}}
.lc-sticky-inner{max-width:var(--lc-max);width:100%;margin:0 auto;display:flex;justify-content:center;align-items:center}
@media(max-width:899px){.lc-sticky-btn{width:100%}}
.lc-sticky-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:9px 18px;border-radius:8px;
  background:var(--lc-teal);color:#fff !important;font-size:var(--text-sm);line-height:var(--text-sm-lh);font-weight:700;white-space:nowrap;
  box-shadow:0 4px 20px rgba(0,137,68,.22);transition:opacity .2s,transform .2s;
}
.lc-sticky-btn:hover{opacity:.92;transform:translateY(-1px)}

/* EXPLORE BY GOAL — 5 compact cards in one row on desktop */
.lc-explore-section{padding-top:32px}
@media(max-width:767px){.lc-explore-section{padding-top:20px}}
.lc-explore-wrap{max-width:1560px}
.lc-explore-heading,.lc-explore-lead{text-align:center}
.lc-explore-heading{
  font-size:var(--text-h2);font-weight:800;
  line-height:var(--text-h2-lh);letter-spacing:-.04em;margin-bottom:14px;
  text-transform:capitalize;
}
.lc-explore-heading em{font-style:normal;color:var(--lc-teal)}
.lc-explore-lead{margin-left:auto;margin-right:auto;max-width:640px;font-size:14.4px;line-height:18.4px}

.lc-explore-slider{margin-top:32px}
.lc-explore-grid{grid-template-columns:repeat(2,1fr);gap:16px}
@media(min-width:640px){.lc-explore-grid{grid-template-columns:repeat(3,1fr)}}
@media(min-width:960px){.lc-explore-grid{grid-template-columns:repeat(5,1fr);gap:14px}}
@media(min-width:960px){[data-landing="medical-care"] .lc-explore-grid{grid-template-columns:repeat(6,1fr)}}
.lc-explore-card .track-category-img{aspect-ratio:4/3}
.lc-explore-card .track-category-body{padding:16px 18px 20px}
.lc-explore-card-head{display:flex;align-items:center;gap:12px;margin-bottom:10px}
.lc-explore-card-icon{
  flex-shrink:0;width:38px;height:38px;border-radius:11px;
  background:rgba(0,137,68,.09);border:1px solid var(--lc-border-hi);
  display:flex;align-items:center;justify-content:center;color:var(--lc-teal);
}
.lc-explore-card-icon svg{width:19px;height:19px}
.lc-explore-card h3{font-size:16px;line-height:24px;margin:0}
.lc-explore-card p{font-size:12.8px;line-height:16px;color:var(--lc-muted,#606060);margin:0}
.lc-explore-card-badge{display:inline-flex;align-items:center;gap:7px;margin-top:16px;padding:7px 11px;font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--lc-teal);background:rgba(0,137,68,.05);border:1px dashed rgba(0,137,68,.34);border-radius:6px}
.lc-explore-card-badge svg{width:12px;height:12px;flex-shrink:0}
.lc-explore-card .track-category-link{font-size:11.2px;line-height:14.4px;font-weight:700;margin-top:12px;display:inline-block}

/* Mobile: horizontal scroll-snap slider instead of a stacked/wrapped grid.
   The card's gutter lives in its own left+right margin, not the container's padding/
   gap — see the .lc-steps-grid comment for why (avoids a next-card sliver on snap). */
@media(max-width:639px){
  .lc-explore-heading,.lc-explore-lead{text-align:center}
  .lc-explore-lead{margin-left:auto;margin-right:auto}
  .lc-explore-card-head{justify-content:center}
  /* .lc-explore-wrap is a `.wrap` (main.css), whose padding is a fixed 24px — not
     the lc-page's --lc-gutter — so the bleed has to cancel that same fixed 24px. */
  .lc-explore-slider{margin-left:-24px;margin-right:-24px}
  .lc-explore-grid{
    display:flex;grid-template-columns:none;gap:24px;
    overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;
    padding:4px 24px 10px;
    scrollbar-width:none;
  }
  .lc-explore-grid::-webkit-scrollbar{display:none}
  .lc-explore-card{flex:0 0 100%;margin:0;scroll-snap-align:center;scroll-snap-stop:always}
}
.lc-explore-dots{display:none;margin-top:20px}
@media(max-width:639px){.lc-explore-dots{display:flex}}
.lc-sticky-btn svg{width:12px;height:12px;stroke:currentColor;fill:none;stroke-width:2.5;flex-shrink:0}
/* Struck-through original price (₹999) on white/green CTA text — the line itself is
   black for contrast/visibility, independent of the surrounding text's own color. */
.lc-price-strike{text-decoration-color:#000}
/* Hero + sticky CTA buttons, and the ₹799 lock-in banner heading: ₹999 fades to
   grey with a white strike line, so it reads as "old price" against the green
   background. */
.btn-cta .lc-price-strike,
.lc-sticky-btn .lc-price-strike,
.lc-price-lock-copy h2 .lc-price-strike{color:#9e9e9e;text-decoration-color:#fff}
