/* =========================================================
   Zoom Academy — The Wedding Planner Program (EN)
   Pure CSS · BEM · tokens first
   ========================================================= */

/* ---------- 1. TOKENS ---------- */
:root{
  /* colors (design system) */
  --color-black:#1C1A17;
  --color-cream:#FAF9F6;
  --color-white:#FFFFFF;
  --color-brown:#AF896C;
  --color-brown-dark:#88654A;
  --color-beige:#EBE3DA;
  --color-sand:#E4D5C4;
  --color-gray-warm:#7A7470;
  --color-placeholder:#8F8A85;
  --color-text-muted:#656565;
  --color-text-strong:#0C0C0D;
  --color-separator:#D9D9D9;
  --color-footer-text:#F7F7F8;
  --color-brown-20:rgba(175,137,108,.20);
  --color-brown-54:rgba(175,137,108,.54);
  --color-line:rgba(175,137,108,.30);

  /* observed in the mockup, derived from the palette */
  --color-linen:#F6F3EE;           /* pricing background */
  --color-plan-soft:#EDE7E1;       /* self-paced plan card */
  --color-ink-2:#2B2724;           /* dark cards on black */
  --color-sand-deep:#D6B89C;       /* CTA on the dark plan */
  --color-tab-active:#D3BCAB;      /* active launch tab */
  --color-error:#C0392B;

  /* type */
  --font-display:'DM Serif Text',Georgia,serif;
  --font-body:'Poppins',system-ui,-apple-system,'Segoe UI',sans-serif;
  --font-accent:'Playfair Display',Georgia,serif;
  --font-ui:'Inter',system-ui,sans-serif;

  /* radii / spacing */
  --radius-card:16px;
  --radius-card-lg:32px;
  --radius-input:12px;
  --radius-pill:100px;
  --radius-sm:8px;
  --section-padding:100px;
  --gutter:100px;
  --container:1440px;

  --ease:cubic-bezier(.22,.61,.36,1);
  --shadow-card:0 18px 50px rgba(28,26,23,.08);
  --shadow-pop:0 30px 80px rgba(0,0,0,.35);
}

/* ---------- 2. RESET ---------- */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{margin:0;font-family:var(--font-body);font-size:16px;line-height:1.5;color:var(--color-black);background:var(--color-white);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
h1,h2,h3,h4,p,figure,blockquote,dl,dd,ul,ol{margin:0}
ul,ol{padding:0;list-style:none}
img,svg{display:block;max-width:100%}
img{height:auto}
a{color:inherit;text-decoration:none}
button,input,select{font:inherit;color:inherit}
button{cursor:pointer;background:none;border:0;padding:0}
:focus-visible{outline:2px solid var(--color-brown);outline-offset:3px}
.sprite{position:absolute;width:0;height:0;overflow:hidden}
.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}
.icon{width:1.15em;height:1.15em;fill:currentColor;flex:none}

/* clip, not hidden: `hidden` would turn this into a scroll container and kill
   the sticky pin of the horizontal-scroll section */
.page{overflow-x:clip}

/* ---------- 3. LAYOUT ---------- */
.container{width:100%;max-width:var(--container);margin-inline:auto;padding-inline:var(--gutter)}
.section{padding-block:var(--section-padding);background:var(--color-white)}
.section--cream{background:var(--color-cream)}
.section--linen{background:var(--color-linen)}
.section--dark{background:var(--color-black);color:var(--color-white)}
.section--flush-top{padding-top:0}
.stack{display:flex;flex-direction:column;gap:20px}
.stack--center{align-items:center;text-align:center}
.center{display:flex;justify-content:center}

/* ---------- 4. TYPOGRAPHY ---------- */
.h2{font-family:var(--font-display);font-style:italic;font-weight:400;font-size:clamp(32px,3.9vw,56px);line-height:1.02;letter-spacing:-.005em;color:var(--color-black)}
.h2--md{font-size:clamp(30px,3.4vw,50px)}
.h2--sm{font-size:clamp(28px,2.8vw,40px);line-height:1.05}
.h2--light{color:var(--color-white)}
.h2--center{text-align:center}
.accent{color:var(--color-brown);font-style:italic}

.overline{font-size:clamp(14px,1.55vw,22px);font-weight:500;letter-spacing:.24em;text-transform:uppercase;color:var(--color-gray-warm)}
.overline--wide{letter-spacing:.28em}
.overline--hero{color:rgba(255,255,255,.85)}

.lead{font-size:clamp(16px,1.4vw,20px);line-height:1.45;max-width:880px}
.lead--center{text-align:center;margin-inline:auto}
.lead--light{color:rgba(255,255,255,.92)}

/* ---------- 5. BUTTONS ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  min-height:46px;padding:12px 24px;border-radius:var(--radius-pill);
  background:var(--color-brown);color:var(--color-white);
  font-size:clamp(14px,1.2vw,17px);font-weight:500;letter-spacing:.14em;text-transform:uppercase;line-height:1.1;text-align:center;
  transition:background-color .25s var(--ease),transform .25s var(--ease),box-shadow .25s var(--ease)}
.btn:hover{background:var(--color-brown-dark);transform:translateY(-1px);box-shadow:0 10px 24px rgba(136,101,74,.28)}
.btn:active{transform:none}
.btn__arrow{width:20px;height:20px;fill:currentColor;flex:none;transition:transform .25s var(--ease)}
.btn:hover .btn__arrow{transform:translateX(3px)}
.btn--lg{min-height:48px;padding:13px 24px;font-size:clamp(15px,1.3vw,18px)}
.btn--sm{min-height:34px;padding:8px 19px;font-size:12px;letter-spacing:.16em}
.btn--sm .btn__arrow{width:15px;height:15px}
.btn--block{display:flex;width:100%}
.btn--grow{flex:1}
.btn--dark{background:var(--color-black)}
.btn--dark:hover{background:#000;box-shadow:0 10px 24px rgba(0,0,0,.25)}
.btn--muted{background:#B39580;min-height:56px;letter-spacing:0;font-weight:600;font-size:15px}
.btn--sand{background:var(--color-sand-deep);color:var(--color-black);min-height:56px;letter-spacing:0;font-weight:600;font-size:15px}
.btn--sand:hover{background:var(--color-sand);color:var(--color-black)}
.plan--featured .btn--dark{min-height:56px;letter-spacing:0;font-weight:600;font-size:15px}
.btn--flat{letter-spacing:.02em;font-size:15px;min-height:42px}
.btn--ghost{background:transparent;color:var(--color-black);border:1px solid var(--color-separator);letter-spacing:.06em}
.btn--ghost:hover{background:var(--color-cream);box-shadow:none}

/* ---------- 6. SHARED BITS ---------- */
.chips{display:flex;flex-direction:column;align-items:flex-end;gap:16px}
.chip{display:inline-flex;align-items:center;gap:6px;padding:10px 20px;border-radius:var(--radius-pill);background:var(--color-beige);color:var(--color-brown);font-size:16px;font-weight:500;letter-spacing:.02em;text-transform:uppercase;white-space:nowrap}

.checklist{display:flex;flex-direction:column;gap:12px;font-size:clamp(16px,1.45vw,21px);line-height:1.3}
.checklist li{position:relative;padding-left:26px}
.checklist li::before{content:"✓";position:absolute;left:0;top:.08em;color:var(--color-brown);font-size:.9em}
.checklist--sm{font-size:14px;gap:16px;line-height:1.3}
.checklist--sm li{padding-left:19px}

.sectionhead{display:flex;align-items:flex-start;justify-content:space-between;gap:32px}

/* ---------- 7. TOPBAR ---------- */
.topbar{background:var(--color-black);color:rgba(255,255,255,.88)}
.topbar__list{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:6px 20px;padding:12px 20px;font-size:14px}
.topbar__item{display:inline-flex;align-items:center;gap:10px}
.topbar__item + .topbar__item::before{content:"";width:4px;height:4px;border-radius:50%;background:rgba(255,255,255,.4);margin-right:10px}

/* ---------- 8. HERO ---------- */
.hero{position:relative;isolation:isolate;overflow:hidden;color:var(--color-white);background:var(--color-black);padding-top:70px}
.hero__bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 62%;z-index:-2;animation:hero-zoom 14s var(--ease) both}
.hero__scrim{position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(28,26,23,.98) 0%,rgba(28,26,23,.82) 16%,rgba(28,26,23,.45) 36%,rgba(28,26,23,.08) 56%,rgba(28,26,23,0) 70%)}
.hero__inner{display:flex;flex-direction:column;align-items:center;text-align:center}
.hero__logo img{width:164px;height:auto}
.hero__inner .overline{margin-top:62px}
.hero__title{margin-top:28px;font-family:var(--font-display);font-style:italic;font-weight:400;font-size:clamp(40px,4.5vw,66px);line-height:1;letter-spacing:-.01em}
.hero__lead{margin-top:34px;max-width:830px;font-size:clamp(16px,1.3vw,18px);line-height:1.5;letter-spacing:.02em;color:rgba(255,255,255,.96);text-shadow:0 1px 14px rgba(0,0,0,.35)}
.hero__inner .btn{margin-top:32px}
.hero__inner > *{animation:rise .9s var(--ease) both}
.hero__inner > :nth-child(2){animation-delay:.08s}
.hero__inner > :nth-child(3){animation-delay:.16s}
.hero__inner > :nth-child(4){animation-delay:.24s}
.hero__inner > :nth-child(5){animation-delay:.32s}

.hero__portrait{position:absolute;right:calc(50% - 720px + 38px);bottom:0;width:clamp(300px,29vw,420px);z-index:1;pointer-events:none;animation:rise 1.1s .25s var(--ease) both}
.hero__bottom{position:relative;margin-top:254px;padding-bottom:80px}

.facts{position:relative;display:grid;grid-template-columns:222px 193px 243px minmax(0,1fr);width:1000px;max-width:calc(100% - 200px);margin-left:-20px;background:var(--color-white);color:var(--color-black);border-radius:var(--radius-card);padding:40px 0 40px 40px;box-shadow:var(--shadow-card)}
.facts__item{display:flex;flex-direction:column;padding-inline:30px;min-height:126px}
.facts__item:first-child{padding-left:0}
.facts__item + .facts__item{border-left:1px solid rgba(175,137,108,.4)}
.facts__icon{width:32px;height:32px;fill:var(--color-brown);flex:none}
.facts__value{font-family:var(--font-display);font-size:clamp(20px,1.7vw,24px);line-height:1.1;margin-top:auto;padding-top:18px}
.facts__label{color:var(--color-brown);font-size:clamp(15px,1.3vw,18px);line-height:1.25;margin-top:4px}

.storypill{position:absolute;z-index:2;right:calc(var(--gutter) + 190px);bottom:60px;display:inline-flex;align-items:center;gap:10px;padding:10px 14px;border-radius:var(--radius-pill);background:var(--color-brown);color:var(--color-white);font-size:15px;white-space:nowrap}
.storypill strong{font-weight:600}
.storypill__before{opacity:.95;margin-left:4px}
.storypill__arrow{width:18px;height:18px;fill:currentColor}
.storypill em{font-weight:700}

@keyframes rise{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}
@keyframes hero-zoom{from{transform:scale(1.06)}to{transform:scale(1)}}

/* ---------- 9. GOAL + MARKET ---------- */
.goal{display:grid;grid-template-columns:minmax(0,548px) minmax(0,640px);justify-content:space-between;gap:40px;align-items:start}
.goal__left{display:flex;flex-direction:column;align-items:flex-start;padding-left:6px}
.goal__left .h2{margin-top:14px;max-width:470px}
.goal__left .btn{margin-top:34px}
.goal__note{margin-top:42px;font-size:clamp(15px,1.3vw,18px)}
.since{margin-top:40px;width:100%;background:var(--color-brown-20);border-radius:var(--radius-card) var(--radius-card) var(--radius-card) 80px;padding:34px 40px 30px;text-align:center}
.since__title{font-family:var(--font-display);font-style:italic;font-size:clamp(40px,4.2vw,60px);line-height:1.1;color:var(--color-brown-dark)}
.since__text{margin-top:18px;font-size:clamp(16px,1.4vw,20px);line-height:1.2;color:var(--color-brown-dark)}

.market{background:var(--color-black);color:var(--color-white);border-radius:var(--radius-card) 80px var(--radius-card) var(--radius-card);padding:70px 48px 66px}
.market__eyebrow{font-size:16px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--color-brown)}
.market__title{margin-top:18px;font-family:var(--font-accent);font-style:italic;font-weight:700;font-size:clamp(28px,2.8vw,40px);line-height:1.05}
.market__grid{display:grid;grid-template-columns:1fr 1fr;gap:44px 44px;margin-top:52px;padding-bottom:48px;border-bottom:1px solid var(--color-line)}
.market__stat dt{font-weight:700;font-style:italic;font-size:clamp(26px,2.5vw,36px);line-height:1}
.market__stat dd{margin-top:20px;font-size:16px;font-weight:300;line-height:1.4;color:rgba(255,255,255,.8)}
.market__stat dd strong{font-weight:600;color:var(--color-white)}
.market__source{margin-top:48px;font-size:12px;color:rgba(255,255,255,.55)}

/* ---------- 10. IDEAL PATH (vertical tabs) ---------- */
#paths .sectionhead .h2{font-size:clamp(34px,3.9vw,56px)}
.paths{display:grid;grid-template-columns:410px minmax(0,1fr);gap:110px;margin-top:40px}
.paths__list{display:flex;flex-direction:column;gap:24px}
.paths__tab{position:relative;text-align:left;white-space:nowrap;padding:17px 22px;border-radius:var(--radius-sm);font-size:clamp(18px,1.7vw,24px);line-height:1.3;color:var(--color-black);transition:background-color .3s var(--ease)}
.paths__tab::before{content:"";position:absolute;left:0;top:0;bottom:0;width:14px;border-radius:var(--radius-sm) 0 0 var(--radius-sm);background:rgba(175,137,108,.6);transform:scaleX(0);transform-origin:left;transition:transform .3s var(--ease)}
.paths__tab:hover{background:rgba(235,227,218,.5)}
.paths__tab.is-active{background:#EFE6DF}
.paths__tab.is-active::before{transform:none}
.paths__panels{min-width:0}

.pathpanel{--card-w:56%;position:relative;border-radius:var(--radius-card);overflow:hidden;aspect-ratio:729/464;color:var(--color-white);animation:fade .45s var(--ease) both}
.pathpanel[hidden]{display:none}
.pathpanel__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:left center}
.pathpanel::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(0,0,0,.55) 0%,rgba(0,0,0,0) 45%);pointer-events:none}
.pathpanel__person{position:absolute;left:30px;bottom:30px;z-index:1;max-width:min(260px,calc(100% - var(--card-w) - 84px))}
.pathpanel__name{font-size:24px;font-weight:600;line-height:1.2}
.pathpanel__before{margin-top:6px;font-size:16px;line-height:1.25}
.pathpanel__after{margin-top:6px;font-size:14px;font-weight:600;font-style:italic;line-height:1.3}
.pathpanel__card{position:absolute;z-index:2;top:30px;right:30px;bottom:30px;width:var(--card-w);background:var(--color-cream);color:var(--color-black);border-radius:var(--radius-card);padding:32px 30px 30px 32px;display:flex;flex-direction:column;align-items:flex-start}
.pathpanel__title{font-size:clamp(22px,2.2vw,32px);font-weight:700;line-height:1.1}
.pathpanel__text{margin-top:30px;font-size:16px;line-height:1.3}
.pathpanel__card .btn{margin-top:auto}

/* ---------- 11. MODULES (timeline) ---------- */
#program .lead{margin-top:20px}
.modules{max-width:760px;margin:52px auto 0}
.modules__group{display:flex;align-items:center;gap:14px;font-size:11px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--color-brown);margin:0 0 20px}
.modules__group::after{content:"";flex:1;height:1px;background:rgba(255,255,255,.12)}
.modules__list + .modules__group{margin-top:18px}
.modules__list{display:flex;flex-direction:column;gap:12px}
.module{display:grid;grid-template-columns:80px minmax(0,1fr);align-items:center}
.module__n{display:flex;align-items:center;gap:12px;font-family:var(--font-accent);font-style:italic;font-weight:600;font-size:19px;color:var(--color-brown)}
.module__n::after{content:"";width:5px;height:5px;border-radius:50%;background:var(--color-brown)}
.module__card{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:60px;padding:14px 20px;border-radius:var(--radius-sm);background:var(--color-ink-2);transition:background-color .3s var(--ease),transform .3s var(--ease)}
.module__card:hover{background:#35302C;transform:translateX(4px)}
.module__title{font-size:14px;font-weight:600;line-height:1.3}
.module__desc{font-size:13px;color:rgba(255,255,255,.62);text-align:right}
.module__tag{display:inline-block;margin-bottom:8px;padding:3px 8px;border-radius:4px;background:rgba(255,255,255,.1);color:#B69E8B;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.02em}
.module:has(.module__tag) .module__card{min-height:86px}
.module--final .module__n::after{width:8px;height:8px;background:transparent;border:2px solid var(--color-white)}
.module--final .module__card{background:#AE8A6E;min-height:64px;color:var(--color-black)}
.module--final .module__card:hover{background:var(--color-brown)}
.module--final .module__title{font-family:var(--font-accent);font-style:italic;font-size:19px;font-weight:600}
.module--final .module__desc{color:var(--color-black)}
.modules__outro{margin-top:56px}

/* ---------- 12. KIT CARDS ---------- */
#kit .overline{margin-top:4px}
.kit__lead{margin-top:40px;max-width:none;font-size:clamp(16px,1.66vw,24px)}
.swiper--cols{margin-top:40px}
.kitcard{position:relative;border-radius:var(--radius-card);overflow:hidden;aspect-ratio:286/452;color:var(--color-white);height:100%}
.kitcard img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
.kitcard:hover img{transform:scale(1.04)}
.kitcard::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(28,26,23,.92) 0%,rgba(28,26,23,.55) 30%,rgba(28,26,23,0) 55%)}
.kitcard__body{position:absolute;z-index:1;left:27px;right:20px;bottom:28px}
.kitcard__title{font-family:var(--font-display);font-style:italic;font-weight:400;font-size:clamp(26px,2.3vw,33px);line-height:.98}
.kitcard__body p{margin-top:18px;font-size:16px;line-height:1.3}
.kit__cta{margin-top:40px;gap:24px}
.kit__note{font-size:18px}
.kit__note a:hover strong{color:var(--color-brown)}

/* ---------- 13. PRICING ---------- */
.pricing__lead{margin-top:36px;font-size:clamp(17px,1.75vw,25px);max-width:820px}
.swiper--plans{padding-top:18px;margin-top:22px;max-width:1212px;margin-inline:auto}
.swiper--plans .swiper-wrapper{align-items:flex-start}
.plan{position:relative;display:flex;flex-direction:column;border-radius:var(--radius-card-lg);padding:54px 32px 40px;min-height:100%}
.plan--soft{background:var(--color-plan-soft)}
.plan--featured{background:var(--color-white);border:1px solid var(--color-brown);padding-bottom:38px}
.plan--dark{background:#2C2622;color:var(--color-white)}
.plan__badge{position:absolute;top:-18px;left:50%;translate:-50% 0;padding:10px 24px;border-radius:var(--radius-pill);background:var(--color-black);color:var(--color-white);font-size:11px;font-weight:700;text-transform:uppercase;white-space:nowrap}
.plan__kicker{font-size:10px;font-weight:700;text-transform:uppercase;color:var(--color-gray-warm)}
.plan--dark .plan__kicker{color:rgba(255,255,255,.7)}
.plan__title{margin-top:14px;font-family:var(--font-display);font-style:italic;font-weight:400;font-size:clamp(26px,2.15vw,31px);line-height:1.2}
.plan__price{display:flex;align-items:baseline;gap:14px;margin-top:22px;flex-wrap:wrap}
.plan__amount{font-size:clamp(38px,3.3vw,48px);font-weight:700;line-height:1}
.plan__price--text{margin-top:30px}
.plan__price--text .plan__amount{font-size:clamp(24px,2.1vw,30px)}
.plan__terms{font-size:13px;color:var(--color-gray-warm)}
.plan__meta{margin-top:10px;font-size:13px;color:var(--color-gray-warm)}
.plan--dark .plan__meta{color:rgba(255,255,255,.6)}
.plan__intro{margin-top:26px;font-size:14px;line-height:1.5}
.plan--soft .plan__intro{color:#4a4541}
.plan__intro strong{font-weight:600}
.plan .checklist{margin-top:22px;color:#4a4541}
.plan--featured .checklist{color:var(--color-black)}
.plan--dark .checklist{color:rgba(255,255,255,.92)}
.plan__foot{margin-top:24px;display:flex;flex-direction:column;gap:16px}
.plan__credit{background:var(--color-white);border-radius:var(--radius-sm);padding:14px 20px;text-align:center;font-size:12px;font-weight:500;color:var(--color-brown-dark)}
.plan__fine{text-align:center;font-size:13px;color:rgba(255,255,255,.6)}

/* ---------- 14. REVIEWS ---------- */
.rating{display:flex;align-items:center;gap:16px;font-size:30px;font-weight:500}
.rating__stars{display:flex;gap:4px}
.rating__stars svg{width:28px;height:28px;fill:var(--color-black)}
#reviews .stack{gap:6px}
.review{display:grid;grid-template-columns:570px minmax(0,1fr);gap:72px;align-items:center;margin-top:38px;padding:48px;background:var(--color-cream);border-radius:var(--radius-card)}
.review__img{width:100%;aspect-ratio:570/498;object-fit:cover;border-radius:var(--radius-sm)}
.review__logos{display:flex;align-items:center;gap:28px}
.review__logos > *{flex:none}
.review__logos > * + *{padding-left:28px;border-left:1px solid var(--color-separator)}
.review__logos img:first-child{height:39px;width:auto}
.review__logos img:nth-child(2){height:28px;width:auto;box-sizing:content-box}
.review__forbes{font-family:var(--font-display);font-size:30px;line-height:1;letter-spacing:-.02em}
.review__quote{margin-top:48px;font-size:clamp(26px,2.8vw,40px);font-style:italic;font-weight:300;line-height:1.32;max-width:430px}
.review__cite{margin-top:48px;font-size:clamp(18px,1.9vw,27px);font-weight:500}
#reviews .center{margin-top:40px}

/* ---------- 15. STORIES ---------- */
.swiper--stories{margin-top:48px;overflow:visible}
.swiper--stories .swiper-slide{width:min(688px,86vw);height:auto}
.story{position:relative;overflow:hidden;border-radius:var(--radius-card);border:1px solid var(--color-brown);aspect-ratio:688/464;background:var(--color-white)}
.story__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.story__quote{position:absolute;top:10%;right:7.3%;width:48%;text-align:right;font-size:clamp(20px,2.4vw,34px);font-style:italic;font-weight:300;line-height:1.28}
.story__who{position:absolute;right:3.5%;bottom:9%;min-width:200px;display:flex;flex-direction:column;gap:2px;font-size:15px}
.story__who strong{font-size:clamp(18px,1.7vw,24px);font-weight:600}
.story__who em{display:flex;align-items:center;gap:8px;font-weight:600}
.story__who svg{width:18px;height:18px}
.story__rating{position:absolute;left:40px;bottom:36px;display:inline-flex;align-items:center;gap:12px;padding:12px 20px;border-radius:var(--radius-pill);background:var(--color-black);color:var(--color-white);font-size:clamp(22px,2.2vw,31px);font-style:italic;line-height:1}
.story__rating svg{width:28px;height:28px;fill:currentColor}
.stories__foot{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:48px}
.navbtns{display:flex;gap:16px}
.navbtn{display:grid;place-items:center;width:76px;height:48px;border-radius:var(--radius-pill);background:var(--color-beige);transition:background-color .25s var(--ease)}
.navbtn:hover{background:var(--color-sand)}
.navbtn.swiper-button-disabled{opacity:.45;cursor:default}
.navbtn__icon{width:22px;height:22px;fill:var(--color-black)}
.navbtn__icon--left{rotate:180deg}

/* ---------- 16. HORIZONTAL SCROLL ---------- */
.hscroll{position:relative;background:var(--color-black);color:var(--color-white)}
.hscroll__sticky{position:sticky;top:0;height:100vh;height:100svh;display:grid;grid-template-rows:auto minmax(0,1fr) auto;padding-top:clamp(56px,10vh,100px);padding-bottom:clamp(22px,3.6vh,34px);overflow:hidden;background:radial-gradient(60% 40% at 50% 100%,rgba(175,137,108,.12),transparent 70%)}
.hscroll__head{display:flex;flex-direction:column;gap:clamp(16px,3vh,40px)}
.hscroll__head .h2{font-size:clamp(28px,3.9vw,56px)}
.hscroll__viewport{overflow:hidden;width:100%;min-height:0;display:flex;align-items:safe center;margin-top:clamp(24px,5vh,70px)}
.hscroll__track{display:flex;align-items:flex-start;gap:clamp(40px,4.5vw,64px);padding-inline:max(var(--gutter),calc(50vw - 620px));will-change:transform}
.planstep{flex:0 0 min(626px,44vw);display:flex;flex-direction:column;gap:clamp(10px,2.4vh,36px)}
.planstep__eyebrow{display:flex;align-items:center;gap:10px;font-size:clamp(14px,1.25vw,18px);font-weight:500;letter-spacing:.3em;text-transform:uppercase;color:rgba(255,255,255,.85)}
.planstep__eyebrow .icon{width:24px;height:24px}
.planstep__eyebrow::after{content:"";flex:1;height:1px;background:rgba(255,255,255,.4);margin-left:16px}
.planstep__title{font-size:clamp(22px,2.2vw,32px);font-weight:700;line-height:1.2}
.planstep__text{font-size:clamp(15px,1.55vw,22px);line-height:1.45;color:rgba(255,255,255,.95);margin-top:-6px}
.planstep__text strong{font-weight:700}
.planstep__img{width:100%;max-height:clamp(180px,calc(100vh - 560px),420px);object-fit:contain;object-position:left top;margin-top:clamp(0px,1.6vh,24px)}
.hscroll__progress{width:min(320px,60vw);height:3px;border-radius:3px;background:rgba(255,255,255,.15);margin:clamp(12px,1.8vh,20px) auto 0}
.hscroll__progress span{display:block;height:100%;width:0;border-radius:3px;background:var(--color-brown)}

/* scroll-driven animation runs on the compositor: no judder. JS sets
   --hs-distance / --hs-end and keeps a scroll handler as fallback */
@supports (animation-timeline: view()){
  @media (min-width:768px){
    .hscroll{view-timeline-name:--hs;view-timeline-axis:block}
    .hscroll__track{animation:hs-run linear both;animation-timeline:--hs;animation-range:contain 0% contain var(--hs-end,100%)}
    .hscroll__progress span{width:100%;transform:scaleX(0);transform-origin:left center;animation:hs-bar linear both;animation-timeline:--hs;animation-range:contain 0% contain var(--hs-end,100%)}
  }
  @keyframes hs-run{to{transform:translate3d(calc(-1 * var(--hs-distance,0px)),0,0)}}
  @keyframes hs-bar{to{transform:scaleX(1)}}
}

/* ---------- 17. CERTIFICATE ---------- */
.section--glow{position:relative;overflow:hidden;background:radial-gradient(38% 60% at 26% 42%,rgba(251,207,232,.55) 0%,rgba(253,236,246,.35) 45%,rgba(255,255,255,0) 75%),var(--color-white);padding-bottom:110px}
.cert{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,492px);gap:60px;align-items:center}
.cert__media img{width:min(100%,560px);margin-inline:auto;filter:drop-shadow(0 30px 40px rgba(214,80,150,.12));animation:float 7s ease-in-out infinite}
.cert__text{margin-top:40px;font-size:clamp(16px,1.3vw,18px);line-height:1.5}
.cert__note{margin-top:40px;font-size:16px;line-height:1.5}
@keyframes float{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-10px) rotate(-.6deg)}}

/* ---------- 18. LAUNCH TIER (horizontal tabs) ---------- */
.tierline{display:flex;align-items:center;gap:30px;margin-top:20px;font-size:clamp(14px,1.55vw,22px);font-weight:500;letter-spacing:.3em;text-transform:uppercase;color:var(--color-brown)}
.tierline svg{width:20px;height:20px;fill:currentColor}
.tierline i{font-style:normal;letter-spacing:0}
.launch{margin-top:80px}
.launch__list{display:flex;justify-content:space-between;gap:12px;width:fit-content;min-width:min(870px,100%);margin-inline:auto;padding:16px;background:var(--color-beige);border-radius:var(--radius-sm)}
.launch__tab{padding:10px 16px;border-radius:6px;font-size:clamp(14px,1.3vw,18px);font-weight:500;text-transform:uppercase;white-space:nowrap;color:var(--color-black);transition:background-color .3s var(--ease)}
.launch__tab:hover{background:rgba(211,188,171,.45)}
.launch__tab.is-active{background:var(--color-tab-active)}
.launch__panels{margin-top:64px}
.kitpanel{display:grid;grid-template-columns:minmax(0,550px) minmax(0,666px);justify-content:space-between;gap:24px;align-items:center;animation:fade .45s var(--ease) both}
.kitpanel[hidden]{display:none}
.kitpanel__title{font-size:clamp(24px,2.3vw,32px);font-weight:700;text-transform:uppercase;line-height:1.1}
.kitpanel__text{margin-top:30px;font-size:clamp(17px,1.5vw,22px);line-height:1.32}
.kitpanel .checklist{margin-top:28px}
.kitpanel__img{width:100%;aspect-ratio:666/419;object-fit:cover;border-radius:var(--radius-card)}
.launch__cta{margin-top:64px;gap:30px}
.launch__note{font-size:clamp(15px,1.3vw,18px)}

.guarantee{margin-top:100px;display:flex;flex-direction:column;align-items:center;text-align:center;padding:76px 40px 72px;border-radius:var(--radius-card);background:var(--color-beige)}
.guarantee__text{margin-top:40px;max-width:720px;font-size:clamp(16px,1.3vw,18px);line-height:1.5}
.guarantee .btn{margin-top:30px}
.guarantee__fine{margin-top:40px;font-size:clamp(15px,1.3vw,18px)}

/* ---------- 19. NETWORK ---------- */
.network__title{font-size:clamp(32px,3.9vw,56px)}
.network{display:grid;grid-template-columns:minmax(0,420px) minmax(0,724px);justify-content:space-between;gap:40px;margin-top:60px;align-items:center}
.network__quote blockquote{font-size:clamp(18px,1.7vw,24px);font-style:italic;font-weight:300;line-height:1.5}
.network__quote img{margin-top:32px;width:290px}
.network__quote figcaption{margin-top:28px;display:flex;flex-direction:column;gap:2px}
.network__quote strong{font-size:clamp(20px,1.7vw,24px);font-weight:600}
.network__quote span{font-size:16px}
.network__cards{display:flex;flex-direction:column;gap:16px}
.netcard{padding:32px;border-radius:var(--radius-card);transition:transform .3s var(--ease)}
.netcard:hover{transform:translateX(-4px)}
.netcard--light{background:var(--color-cream)}
.netcard--beige{background:var(--color-beige)}
.netcard--brown{background:var(--color-brown-54)}
.netcard__title{font-size:clamp(20px,1.7vw,24px);font-weight:600}
.netcard p{margin-top:24px;font-size:clamp(17px,1.55vw,22px);line-height:1.35}

/* ---------- 20. COMPARISON ---------- */
.swiper--compare{margin-top:62px}
.swiper--compare .swiper-wrapper{align-items:center}
.cmp{background:var(--color-sand);color:var(--color-black);border-radius:var(--radius-card);padding:40px 32px}
.cmp__title{font-family:var(--font-display);font-weight:400;font-size:clamp(22px,1.85vw,26px);line-height:1.05}
.cmp__duration{margin-top:22px;font-size:15px}
.cmp__duration svg{display:inline-block;width:17px;height:17px;fill:var(--color-black);vertical-align:-3px;margin-right:6px}
.cmp__duration strong{font-weight:600;margin-right:4px}
.cmp__list{display:flex;flex-direction:column;gap:22px;margin-top:40px;font-size:15px;line-height:1.35}
.cmp__list li{position:relative;padding-left:30px}
.cmp__list li::before{content:"";position:absolute;left:0;top:50%;translate:0 -50%;width:18px;height:18px;background:currentColor;
  -webkit-mask:var(--mask) no-repeat center/contain;mask:var(--mask) no-repeat center/contain}
.cmp__list .is-yes{--mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4L9 16.2Z'/%3E%3C/svg%3E")}
.cmp__list .is-no{--mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m6.4 5 5.6 5.6L17.6 5 19 6.4 13.4 12l5.6 5.6-1.4 1.4-5.6-5.6L6.4 19 5 17.6l5.6-5.6L5 6.4 6.4 5Z'/%3E%3C/svg%3E");color:var(--color-gray-warm);font-weight:300}
.cmp__price{margin-top:40px;font-size:18px}
.cmp__price strong{font-weight:600;margin-right:6px}
.cmp--featured{background:var(--color-white);padding-top:36px;padding-bottom:32px}
.cmp__logo{width:128px;margin-inline:auto}
.cmp--featured .cmp__duration{margin-top:28px}
.cmp--featured .cmp__list{margin-top:36px}
.cmp--featured .btn{margin-top:28px}

/* ---------- 21. BOOKING ---------- */
.booking{display:grid;grid-template-columns:minmax(0,640px) minmax(0,422px);justify-content:space-between;gap:40px;padding:56px;border-radius:var(--radius-card-lg);background:var(--color-beige)}
.booking__experts{margin-top:32px;width:182px}
.booking__left .progress{margin-top:72px}
.booking.is-step-3{grid-template-columns:minmax(0,1fr)}
.booking.is-step-3 .booking__left{display:none}

.progress{display:grid;grid-template-columns:repeat(3,auto);justify-content:space-between;position:relative;max-width:612px}
.progress::before{content:"";position:absolute;top:12px;left:12px;right:90px;height:1px;background:var(--color-black)}
.progress__item{position:relative;display:flex;flex-direction:column;gap:14px;font-size:14px;font-weight:600;line-height:1.3;max-width:180px;color:rgba(28,26,23,.55);transition:color .3s}
.progress__item:nth-child(1){max-width:90px}
.progress__item:nth-child(3){max-width:none;width:100px}
/* inline booking: the three steps read as a promise, always checked (as designed) */
.booking .progress__item{color:var(--color-black)}
.progress__item.is-active,.progress__item.is-done{color:var(--color-black)}
.progress__dot{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--color-black);color:var(--color-white);box-shadow:0 0 0 4px var(--color-beige)}
.progress__dot svg{width:14px;height:14px;fill:currentColor}
.progress--form{display:none}

.bookform{display:flex;flex-direction:column;gap:16px}
.fstep{border:0;margin:0;padding:0;min-inline-size:0;display:flex;flex-direction:column;gap:16px}
.fstep[hidden]{display:none}
.fstep__actions{display:flex;gap:12px;align-items:center}
.field{display:flex;flex-direction:column;gap:6px}
.input{width:100%;height:48px;padding:0 16px;border:1px solid transparent;border-radius:var(--radius-input);background:var(--color-white);font-size:15px;color:var(--color-black);transition:border-color .2s,box-shadow .2s}
.input::placeholder{color:var(--color-placeholder)}
.input:focus{outline:0;border-color:var(--color-brown);box-shadow:0 0 0 3px rgba(175,137,108,.2)}
.input.is-invalid{border-color:var(--color-error)}
.phonegroup{display:grid;grid-template-columns:92px minmax(0,1fr);gap:10px}
.phonegroup__country{display:grid;place-items:center;background:var(--color-white);border-radius:var(--radius-input);font-size:15px;font-weight:600}
.field__error{font-size:12.5px;color:var(--color-error)}
.field__error:empty{display:none}
.qblock{display:flex;flex-direction:column;gap:10px}
.qblock__label{font-size:15px;font-weight:600;line-height:1.4}
.selectwrap{position:relative}
.selectwrap::after{content:"";position:absolute;right:16px;top:50%;width:8px;height:8px;border-right:2px solid var(--color-black);border-bottom:2px solid var(--color-black);translate:0 -70%;rotate:45deg;pointer-events:none}
.select{appearance:none;-webkit-appearance:none;padding-right:44px;text-overflow:ellipsis}
.select.is-placeholder{color:var(--color-placeholder)}
.calwrap{width:100%;min-height:720px;border-radius:var(--radius-input);overflow:hidden;background:var(--color-white)}
.calwrap iframe{width:100%!important;border:0;display:block}

/* ---------- 22. FAQ ---------- */
.faq{max-width:890px;margin:48px auto 0}
.faq__item{border-bottom:1px solid var(--color-separator)}
.faq__q{display:flex;align-items:center;justify-content:space-between;gap:24px;width:100%;padding:31px 0;text-align:left;font-size:clamp(16px,1.3vw,18px);font-weight:500;color:var(--color-text-strong)}
.faq__item:first-child .faq__q{padding-top:0}
.faq__sign{position:relative;flex:none;width:14px;height:14px;transition:rotate .35s var(--ease)}
.faq__sign::before,.faq__sign::after{content:"";position:absolute;left:50%;top:50%;width:14px;height:1.5px;background:var(--color-gray-warm);translate:-50% -50%}
.faq__sign::after{rotate:90deg}
.faq__item.is-open .faq__sign{rotate:45deg}
.faq__item.is-open .faq__sign::before,.faq__item.is-open .faq__sign::after{background:var(--color-black)}
.faq__a{display:grid;grid-template-rows:0fr;transition:grid-template-rows .4s var(--ease),margin-top .4s var(--ease)}
.faq__a > div{overflow:hidden}
.faq__a p{padding-bottom:32px;font-size:16px;line-height:1.5;color:var(--color-text-muted)}
.faq__item.is-open .faq__a{grid-template-rows:1fr;margin-top:-10px}

/* ---------- 23. FOOTER ---------- */
.footer{background:var(--color-black);color:var(--color-footer-text);padding:60px 0 28px}
.footer .container{padding-inline:80px}
.footer__grid{display:flex;justify-content:space-between;gap:40px;padding-bottom:36px;border-bottom:1px solid var(--color-brown)}
.footer__brand img{width:137px}
.footer__brand p{margin-top:24px;font-size:15px;line-height:1.5}
.footer__nav{display:grid;grid-template-columns:repeat(3,auto);column-gap:clamp(40px,8vw,116px);row-gap:28px;align-content:start;padding-top:20px}
.footer__head{font-size:17px;font-weight:600}
.footer__nav .footer__head:last-of-type{text-align:right}
.footer__link{font-size:14px;font-weight:500}
.footer__link:hover{color:var(--color-brown)}
.footer__social{display:flex;justify-content:flex-end;gap:24px}
.footer__social svg{width:24px;height:24px;fill:var(--color-brown);transition:fill .2s}
.footer__social a:hover svg{fill:var(--color-white)}
.footer__copy{margin-top:26px;text-align:center;font-family:var(--font-ui);font-weight:500;font-size:14px}

/* ---------- 24. MODAL ---------- */
.modal{position:fixed;inset:0;z-index:120;display:grid;place-items:center;padding:20px}
.modal[hidden]{display:none}
.modal__backdrop{position:absolute;inset:0;background:rgba(28,26,23,.72);backdrop-filter:blur(4px);animation:fade .3s var(--ease) both}
.modal__dialog{position:relative;z-index:2;width:100%;max-width:560px;max-height:calc(100vh - 40px);overflow:auto;-webkit-overflow-scrolling:touch;background:var(--color-beige);border-radius:var(--radius-card-lg);padding:44px clamp(20px,4vw,40px) 36px;box-shadow:var(--shadow-pop);animation:pop .35s var(--ease) both}
.modal__dialog:has(.fstep[data-step="3"]:not([hidden])){max-width:1040px}
.modal__title{font-family:var(--font-display);font-style:italic;font-size:clamp(26px,3vw,36px);line-height:1.1;margin-bottom:24px;padding-right:40px}
.modal__close{position:absolute;top:16px;right:16px;display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:var(--color-white);transition:background-color .2s}
.modal__close:hover{background:var(--color-sand)}
.modal__close svg{width:18px;height:18px;fill:var(--color-black)}
.modal .progress--form{display:grid;margin-bottom:16px}
.modal .progress--form::before{right:12px;left:12px}
.modal .progress__item{font-size:12px;max-width:120px}
.modal .progress__item:nth-child(2){text-align:center;align-items:center}
.modal .progress__item:nth-child(3){text-align:right;align-items:flex-end}
.modal .progress__dot{box-shadow:0 0 0 4px var(--color-beige)}
.modal .progress__item:not(.is-active):not(.is-done) .progress__dot{background:var(--color-white);color:transparent;border:1px solid rgba(28,26,23,.35)}
body.is-locked{overflow:hidden}
@keyframes fade{from{opacity:0}to{opacity:1}}
@keyframes pop{from{opacity:0;transform:translateY(16px) scale(.98)}to{opacity:1;transform:none}}

/* ---------- 25. REVEAL ---------- */
/* content is visible without JS; JS adds .reveal and the observer removes it */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
.reveal.is-in{opacity:1;transform:none}
.reveal[data-split]{opacity:1;transform:none}

/* ---------- 26. SWIPER ---------- */
.swiper-slide{height:auto}
.swiper-pagination{position:static;margin-top:22px}
.swiper-pagination-bullet{background:var(--color-brown);opacity:.3}
.swiper-pagination-bullet-active{opacity:1}
.section--dark .swiper-pagination-bullet{background:var(--color-white)}

/* =========================================================
   RESPONSIVE
   ========================================================= */
@media (max-width:1280px){
  :root{--gutter:56px}
  .goal{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr)}
  .paths{grid-template-columns:320px minmax(0,1fr);gap:48px}
  .pathpanel{--card-w:60%}
  .review{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:48px}
  .network{grid-template-columns:minmax(0,1fr) minmax(0,1.5fr)}
  .booking{grid-template-columns:minmax(0,1fr) minmax(0,400px)}
  .facts{grid-template-columns:repeat(4,minmax(0,1fr));width:auto;max-width:calc(100% - 260px);padding:32px 0 32px 28px}
  .facts__item{padding-inline:18px}
  .paths__tab{white-space:normal}
  .storypill{right:calc(var(--gutter) + 120px)}
  .footer .container{padding-inline:var(--gutter)}
}

@media (max-width:1023px){
  :root{--section-padding:80px;--gutter:40px}
  .topbar__list{font-size:13px}
  .hero__portrait{width:260px;right:0}
  .facts{max-width:calc(100% - 200px);grid-template-columns:1fr 1fr;row-gap:24px;margin-left:0;padding-right:28px}
  .facts__item:nth-child(3){padding-left:0;border-left:0}
  .storypill{right:auto;left:var(--gutter);bottom:28px}
  .goal{grid-template-columns:1fr;gap:56px}
  .goal__left .h2{max-width:none}
  .paths{grid-template-columns:1fr;gap:28px}
  .paths__list{flex-direction:row;overflow-x:auto;gap:10px;scrollbar-width:none;margin-inline:calc(var(--gutter) * -1);padding-inline:var(--gutter)}
  .paths__list::-webkit-scrollbar{display:none}
  .paths__tab{flex:none;white-space:nowrap!important;padding:12px 18px;font-size:16px;background:var(--color-cream)}
  .paths__tab::before{display:none}
  .paths__tab.is-active{background:var(--color-tab-active)}
  .cert{grid-template-columns:1fr;gap:40px}
  .kitpanel{grid-template-columns:1fr;gap:32px}
  .kitpanel__img{order:-1}
  .network{grid-template-columns:1fr}
  .booking{grid-template-columns:1fr;padding:40px}
  .booking__left .progress{margin-top:40px}
  .review{grid-template-columns:1fr;padding:32px}
  .review__quote{max-width:none;margin-top:32px}
  .review__cite{margin-top:24px}
  .footer__grid{flex-direction:column}
  .footer__nav{padding-top:0}
}

@media (max-width:767px){
  :root{--section-padding:64px;--gutter:16px}
  body{font-size:15px}

  .topbar__list{justify-content:flex-start;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;padding:10px 16px;font-size:12px}
  .topbar__list::-webkit-scrollbar{display:none}
  .topbar__item{white-space:nowrap}

  /* hero */
  .hero{padding-top:40px}
  .hero__bg{object-position:58% 50%}
  .hero__scrim{background:linear-gradient(180deg,rgba(28,26,23,.96) 0%,rgba(28,26,23,.78) 38%,rgba(28,26,23,.35) 62%,rgba(28,26,23,.6) 100%)}
  .hero__logo img{width:128px}
  .hero__inner .overline{margin-top:36px;font-size:13px}
  .hero__title{margin-top:18px}
  .hero__lead{margin-top:20px;font-size:15px}
  .hero__inner .btn{width:100%;margin-top:26px}
  .hero__portrait{display:none}
  .hero__bottom{margin-top:120px;padding-bottom:28px;display:flex;flex-direction:column;gap:16px}
  .facts{width:100%;max-width:none;padding:22px 18px;grid-template-columns:1fr 1fr;gap:20px 0}
  .facts__item{min-height:0;padding-inline:14px}
  .facts__item:nth-child(odd){padding-left:0;border-left:0}
  .facts__icon{width:24px;height:24px}
  .facts__value{margin-top:10px;font-size:18px}
  .facts__label{font-size:13px}
  .storypill{position:static;align-self:center;font-size:12px;gap:5px;padding:9px 14px}
  .storypill__before{margin-left:0}
  .storypill__arrow{width:14px;height:14px}

  /* headings: forced desktop line breaks read as orphans on phones */
  .h2 br,.hero__title br{display:none}
  .hero__title{font-size:38px}
  .btn{letter-spacing:.08em;font-size:14px}
  .sectionhead{flex-direction:column;gap:20px}
  .chips{align-items:flex-start;gap:10px}
  .chip{font-size:12px;padding:8px 14px}

  /* goal */
  .since{padding:28px 22px;border-radius:var(--radius-card) var(--radius-card) var(--radius-card) 56px}
  .goal__note{margin-top:24px}
  .market{padding:40px 22px;border-radius:var(--radius-card) 56px var(--radius-card) var(--radius-card)}
  .market__grid{gap:28px 18px;margin-top:32px;padding-bottom:28px}
  .market__stat dd{font-size:13px;margin-top:10px}
  .market__source{margin-top:24px}

  /* paths panel stacks: photo then card */
  .pathpanel{aspect-ratio:auto;display:flex;flex-direction:column;background:var(--color-black)}
  .pathpanel__img{position:relative;height:300px;object-position:15% center}
  .pathpanel::after{height:300px;bottom:auto}
  .pathpanel__person{bottom:auto;top:300px;translate:0 calc(-100% - 20px);left:20px;max-width:calc(100% - 40px)}
  .pathpanel__name{font-size:20px}
  .pathpanel__before{font-size:14px}
  .pathpanel__card{position:relative;inset:auto;width:auto;margin:0;border-radius:0 0 var(--radius-card) var(--radius-card);padding:24px 20px}
  .pathpanel__text{margin-top:14px;margin-bottom:22px}

  /* modules */
  .module{grid-template-columns:44px minmax(0,1fr)}
  .module__n{font-size:16px;gap:6px}
  .module__n::after{display:none}
  .module__card{flex-direction:column;align-items:flex-start;gap:6px;padding:14px 16px}
  .module__desc{text-align:left;font-size:12.5px}
  .module--final .module__n::after{display:block}

  /* kit */
  .kit__lead{margin-top:20px;font-size:16px}
  .kit__cta .btn{width:100%}
  .kit__note{font-size:15px}

  /* sliders peek past the gutter */
  .swiper--cols,.swiper--stories{overflow:visible}

  /* pricing */
  .plan{padding:44px 22px 28px}

  /* reviews */
  .rating{font-size:24px}
  .rating__stars svg{width:20px;height:20px}
  .review{padding:16px 16px 28px;gap:24px}
  .review__logos{gap:16px}
  .review__logos > * + *{padding-left:16px}
  .review__logos img:first-child{height:26px}
  .review__logos img:nth-child(2){height:19px}
  .review__forbes{font-size:21px}

  /* stories: text sits under the photo on phones */
  .story{aspect-ratio:auto;display:flex;flex-direction:column}
  .story__img{position:relative;height:250px;object-position:20% center}
  .story__quote{position:static;width:auto;text-align:left;padding:20px 20px 0;font-size:20px}
  .story__who{position:static;padding:14px 20px 22px;min-width:0}
  .story__rating{left:16px;bottom:auto;top:190px;padding:8px 14px;font-size:20px}
  .story__rating svg{width:20px;height:20px}
  .stories__foot{flex-direction:column-reverse;align-items:stretch;margin-top:28px}
  .stories__foot .btn{width:100%}
  .navbtns{justify-content:center}

  /* horizontal scroll -> vertical stack */
  .hscroll__sticky{position:static;height:auto;display:flex;flex-direction:column;gap:36px;padding-block:64px;overflow:visible}
  .hscroll__head .btn{width:100%}
  .hscroll__viewport{overflow:visible;margin-top:0}
  .hscroll__track{flex-direction:column;gap:48px;transform:none!important;padding-inline:var(--gutter)}
  .planstep{flex:1 1 auto}
  .planstep__eyebrow{font-size:13px;letter-spacing:.22em}
  .planstep__img{max-height:none}
  .hscroll__progress{display:none}

  /* certificate */
  .section--glow{background:radial-gradient(90% 40% at 50% 18%,rgba(251,207,232,.5) 0%,rgba(255,255,255,0) 70%),var(--color-white);padding-bottom:72px}
  .cert__text,.cert__note{margin-top:22px}

  /* launch */
  .tierline{gap:10px;letter-spacing:.16em;font-size:12px}
  .tierline svg{width:14px;height:14px}
  .launch{margin-top:40px}
  .launch__list{display:grid;grid-template-columns:1fr 1fr;width:100%;min-width:0;padding:8px;gap:6px}
  .launch__tab{font-size:13px;padding:10px 8px}
  .launch__panels{margin-top:32px}
  .kitpanel .checklist{font-size:16px}
  .launch__cta{margin-top:40px}
  .launch__cta .btn{width:100%}
  .guarantee{margin-top:64px;padding:48px 20px}
  .guarantee__text{margin-top:22px}
  .guarantee__fine{margin-top:24px}

  /* network */
  .network{margin-top:32px}
  .network__quote img{width:220px}
  .netcard{padding:24px 20px}
  .netcard p{margin-top:12px}

  /* comparison */
  .swiper--compare{margin-top:40px}
  .swiper--compare .swiper-wrapper{align-items:stretch}
  .cmp{height:100%;padding:32px 22px}
  .cmp__list{gap:16px;margin-top:28px;font-size:15px}

  /* booking */
  .booking{padding:28px 18px;border-radius:24px;gap:28px}
  .booking__experts{margin-top:20px;width:150px}
  .progress::before{right:68px}
  .progress__item{font-size:12px;max-width:110px}
  .progress__item:nth-child(1){max-width:80px}
  .progress__item:nth-child(3){width:80px}
  .calwrap{min-height:1050px}
  .fstep__actions{flex-direction:column-reverse;align-items:stretch}

  /* faq */
  .faq{margin-top:28px}
  .faq__q{padding:22px 0}
  .faq__a p{padding-bottom:22px;font-size:15px}

  /* footer */
  .footer{padding-top:44px}
  .footer__nav{grid-template-columns:1fr 1fr;row-gap:18px}
  .footer__nav .footer__head:last-of-type{text-align:left}
  .footer__social{justify-content:flex-start;grid-column:1 / -1}

  .modal{padding:10px}
  .modal__dialog{padding:36px 18px 24px;max-height:calc(100vh - 20px)}
}

/* only intrusive motion is gated; micro-interactions stay on */
@media (prefers-reduced-motion:reduce){
  .hero__bg,.cert__media img{animation:none}
}
