/* =====================================================
   RESTAURER SON MICROBIOTE - MASTERCLASS BMOOVE
   Modern, conversion-optimized sales page
   ===================================================== */

/* ---------- TOKENS ---------- */
:root{
  --indigo:    #1143c6;
  --indigo-2:  #2a5af0;
  --framboise: #ee1c43;
  --bubble:    #ff93b3;
  --nacre:     #fcf5f4;
  --ciel:      #d7e3ff;
  --white:     #ffffff;
  --marine:    #0c1f6d;
  --marine-soft: #1f3380;
  --ink:       #0c1f6d;
  --ink-soft:  rgba(12,31,109,.72);
  --ink-faint: rgba(12,31,109,.55);

  --grad-primary: linear-gradient(135deg, #1143c6 0%, #2a5af0 50%, #ee1c43 100%);
  --grad-soft:    linear-gradient(135deg, #d7e3ff 0%, #fcf5f4 100%);
  --grad-accent:  linear-gradient(135deg, #ee1c43 0%, #ff93b3 100%);
  --grad-text:    linear-gradient(135deg, #1143c6 0%, #ee1c43 100%);

  --shadow-sm: 0 2px 8px rgba(12,31,109,.06);
  --shadow-md: 0 12px 28px rgba(12,31,109,.08);
  --shadow-lg: 0 30px 60px -20px rgba(12,31,109,.18);
  --shadow-xl: 0 40px 80px -25px rgba(17,67,198,.35);

  --radius-sm: 12px;
  --radius:    20px;
  --radius-lg: 28px;
  --radius-xl: 40px;

  --container: 1180px;
  --gutter: clamp(20px, 4vw, 48px);

  --t-fast: 220ms cubic-bezier(.2,.7,.2,1);
  --t-base: 380ms cubic-bezier(.2,.7,.2,1);
  --t-slow: 720ms cubic-bezier(.2,.7,.2,1);
}

/* ---------- RESET ---------- */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}
body{
  margin:0;
  font-family:"Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  font-size:17px;
  line-height:1.6;
  color:var(--ink);
  background:var(--nacre);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img{max-width:100%;display:block;height:auto;}
a{color:inherit;text-decoration:none;}
button{font:inherit;cursor:pointer;border:0;background:transparent;color:inherit;}
h1,h2,h3,h4{margin:0;font-family:"Fraunces", "Times New Roman", serif;font-weight:700;letter-spacing:-.02em;line-height:1.1;color:var(--marine);}
p{margin:0 0 .9em;}
ul{margin:0;padding:0;list-style:none;}

.container{
  width:min(100%, var(--container));
  margin-inline:auto;
  padding-inline:var(--gutter);
}

/* ---------- TYPOGRAPHY HELPERS ---------- */
.h2{
  font-size:clamp(28px, 4.4vw, 52px);
  margin-bottom:.4em;
}
.h2--white{color:var(--white);}
.kicker{
  display:inline-flex;
  align-items:center;
  gap:.6em;
  text-transform:uppercase;
  font-size:12px;
  letter-spacing:.18em;
  font-weight:700;
  color:var(--indigo);
  background:var(--ciel);
  padding:.55em 1em;
  border-radius:999px;
  margin-bottom:1.2em;
}
.kicker--accent{background:#ffe4eb;color:var(--framboise);}
.kicker--white{background:rgba(255,255,255,.16);color:#fff;backdrop-filter:blur(8px);}

.section-head{margin-bottom:clamp(40px, 6vw, 70px);}
.section-head--center{text-align:center;}
.section-head--center .h2{max-width:920px;margin-inline:auto;}
.section-lede{
  font-size:clamp(17px, 1.6vw, 19px);
  color:var(--ink-soft);
  max-width:680px;
}
.section-head--center .section-lede{margin-inline:auto;}

.under-grad{
  background:var(--grad-text);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
}
.under-grad--white{
  background:linear-gradient(135deg, #ff93b3 0%, #fff 100%);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
}
.title-grad{
  background:var(--grad-text);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
  display:inline-block;
}

/* ---------- BUTTONS ---------- */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.7em;
  padding:.95em 1.5em;
  font-weight:700;
  font-size:16px;
  border-radius:999px;
  letter-spacing:-.005em;
  transition:transform var(--t-fast), box-shadow var(--t-fast), background var(--t-fast), color var(--t-fast);
  cursor:pointer;
  text-align:center;
  position:relative;
  overflow:hidden;
  isolation:isolate;
  white-space:nowrap;
}
.btn svg{width:1.05em;height:1.05em;flex:0 0 auto;transition:transform var(--t-fast);}
.btn:hover svg{transform:translateX(4px);}
.btn--primary{
  color:#fff;
  background:var(--grad-primary);
  background-size:200% 200%;
  background-position:0% 50%;
  box-shadow:0 14px 30px -10px rgba(238,28,67,.5), 0 8px 20px -8px rgba(17,67,198,.4);
}
.btn--primary:hover{
  background-position:100% 50%;
  transform:translateY(-2px);
  box-shadow:0 22px 44px -12px rgba(238,28,67,.55), 0 14px 28px -10px rgba(17,67,198,.5);
}
.btn--white{
  background:#fff;
  color:var(--indigo);
  box-shadow:var(--shadow-md);
}
.btn--white:hover{
  transform:translateY(-2px);
  box-shadow:var(--shadow-lg);
  color:var(--framboise);
}
.btn--mini{padding:.65em 1.1em;font-size:14px;color:#fff;background:var(--grad-primary);}
.btn--mini:hover{transform:translateY(-1px);}
.btn--xl{padding:1.15em 1.85em;font-size:17px;}
.btn--xxl{padding:1.35em 2.4em;font-size:18px;}
.btn--block{display:flex;width:100%;}

/* shimmer effect on primary buttons */
.btn--primary::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(120deg, transparent 30%, rgba(255,255,255,.35) 50%, transparent 70%);
  transform:translateX(-100%);
  transition:transform .9s ease;
  pointer-events:none;
}
.btn--primary:hover::after{transform:translateX(100%);}

/* ---------- ANNOUNCEMENT BAR ---------- */
.announce{
  background:var(--marine);
  color:#fff;
  font-size:14px;
  position:relative;
  z-index:60;
}
.announce__inner{
  max-width:var(--container);
  margin:0 auto;
  padding:.65em var(--gutter);
  display:flex;
  align-items:center;
  justify-content:center;
  gap:.7em;
  text-align:center;
}
.announce__pulse{
  width:8px;height:8px;border-radius:50%;
  background:var(--bubble);
  box-shadow:0 0 0 0 rgba(255,147,179,.7);
  animation:pulse 1.8s infinite;
  flex:0 0 auto;
}
.announce__link{color:var(--bubble);font-weight:700;border-bottom:1px solid rgba(255,147,179,.4);}
.announce__link:hover{color:#fff;}
@keyframes pulse{
  0%{box-shadow:0 0 0 0 rgba(255,147,179,.65);}
  70%{box-shadow:0 0 0 12px rgba(255,147,179,0);}
  100%{box-shadow:0 0 0 0 rgba(255,147,179,0);}
}

/* ---------- NAV ---------- */
.nav{
  position:sticky;
  top:0;
  z-index:50;
  background:rgba(252,245,244,.85);
  backdrop-filter:saturate(140%) blur(14px);
  -webkit-backdrop-filter:saturate(140%) blur(14px);
  border-bottom:1px solid rgba(12,31,109,.06);
}
.nav__inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1em;
  padding-block:.85em;
}
.nav__brand{display:flex;align-items:baseline;gap:.6em;}
.nav__logo{
  font-family:"Fraunces", serif;
  font-weight:900;
  font-size:22px;
  letter-spacing:-.02em;
  color:var(--marine);
}
.nav__dot{color:var(--framboise);}
.nav__tag{
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.16em;
  color:var(--ink-faint);
  font-weight:600;
}
.nav__menu{display:flex;gap:1.6em;font-size:15px;font-weight:500;color:var(--ink-soft);}
.nav__menu a{position:relative;transition:color var(--t-fast);}
.nav__menu a::after{
  content:"";
  position:absolute;
  left:0;right:0;bottom:-6px;
  height:2px;border-radius:2px;
  background:var(--grad-text);
  transform:scaleX(0);
  transform-origin:left;
  transition:transform var(--t-fast);
}
.nav__menu a:hover{color:var(--marine);}
.nav__menu a:hover::after{transform:scaleX(1);}
@media (max-width:780px){.nav__menu{display:none;}}

/* ---------- HERO ---------- */
.hero{
  position:relative;
  padding:clamp(60px, 9vw, 110px) 0 clamp(60px, 8vw, 110px);
  overflow:hidden;
  background:linear-gradient(180deg, #fcf5f4 0%, #fcf5f4 60%, #fff 100%);
}
.hero__bg{position:absolute;inset:0;z-index:0;pointer-events:none;}
.orb{
  position:absolute;
  border-radius:50%;
  filter:blur(70px);
  opacity:.6;
  animation:float 18s ease-in-out infinite;
}
.orb--1{
  width:520px;height:520px;
  top:-180px;left:-160px;
  background:radial-gradient(circle, var(--ciel) 0%, transparent 70%);
}
.orb--2{
  width:600px;height:600px;
  top:140px;right:-200px;
  background:radial-gradient(circle, rgba(255,147,179,.55) 0%, transparent 70%);
  animation-delay:-6s;
}
.orb--3{
  width:420px;height:420px;
  bottom:-160px;left:30%;
  background:radial-gradient(circle, rgba(17,67,198,.25) 0%, transparent 70%);
  animation-delay:-12s;
}
@keyframes float{
  0%,100%{transform:translate(0,0) scale(1);}
  50%{transform:translate(30px, -40px) scale(1.05);}
}
.grain{
  position:absolute;inset:0;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 .04 0 0 0 0 .12 0 0 0 0 .43 0 0 0 .55 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
  opacity:.06;
  mix-blend-mode:multiply;
}

.hero__grid{
  position:relative;
  z-index:2;
  display:grid;
  grid-template-columns:1.1fr 1fr;
  gap:clamp(40px, 6vw, 80px);
  align-items:center;
}
@media (max-width:960px){
  .hero__grid{grid-template-columns:1fr;text-align:center;}
}

.eyebrow{
  display:inline-flex;
  align-items:center;
  gap:.6em;
  font-size:13px;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.14em;
  color:var(--indigo);
  background:#fff;
  padding:.6em 1.05em;
  border-radius:999px;
  border:1px solid rgba(17,67,198,.12);
  box-shadow:var(--shadow-sm);
  margin-bottom:1.6em;
}
.eyebrow__dot{
  width:8px;height:8px;border-radius:50%;
  background:var(--framboise);
  animation:pulse 1.8s infinite;
}

.hero__title{
  font-size:clamp(38px, 6.8vw, 78px);
  letter-spacing:-.025em;
  margin-bottom:.5em;
}
.hero__title em{font-style:italic;color:var(--framboise);font-family:"Fraunces", serif;font-weight:600;}

.hero__sub{
  font-size:clamp(17px, 1.7vw, 21px);
  color:var(--ink-soft);
  max-width:580px;
  margin-bottom:2em;
}
@media (max-width:960px){.hero__sub{margin-inline:auto;}}

.hero__ctas{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:1.4em;
  margin-bottom:2.4em;
}
@media (max-width:960px){.hero__ctas{justify-content:center;}}

.hero__guarantee{
  display:flex;
  align-items:center;
  gap:.6em;
  color:var(--ink-soft);
  font-size:14px;
}
.hero__guarantee svg{width:22px;height:22px;color:var(--indigo);}
.hero__guarantee strong{color:var(--marine);}

.hero__trust{
  display:flex;
  flex-wrap:wrap;
  gap:clamp(20px, 3vw, 40px);
  padding-top:1.6em;
  border-top:1px solid rgba(12,31,109,.1);
}
@media (max-width:960px){.hero__trust{justify-content:center;}}
.trust__item{display:flex;flex-direction:column;line-height:1.2;}
.trust__item strong{
  font-family:"Fraunces", serif;
  font-size:clamp(22px, 2.4vw, 28px);
  font-weight:800;
  color:var(--marine);
  letter-spacing:-.02em;
}
.trust__item span{font-size:13px;color:var(--ink-faint);font-weight:500;}

/* hero visual */
.hero__visual{
  position:relative;
  display:flex;
  justify-content:center;
  align-items:center;
}
.hero__card{
  position:relative;
  width:min(100%, 520px);
  border-radius:var(--radius-xl);
  overflow:hidden;
  box-shadow:var(--shadow-xl);
  background:#fff;
  transform:rotate(-0.6deg);
  transition:transform var(--t-base);
}
.hero__card:hover{transform:rotate(0deg) scale(1.01);}
.hero__card img{width:100%;display:block;}

.hero__badge{
  position:absolute;
  background:#fff;
  border-radius:var(--radius);
  padding:.85em 1.05em;
  box-shadow:var(--shadow-lg);
  display:flex;
  flex-direction:column;
  gap:.2em;
  font-size:12.5px;
  line-height:1.35;
  max-width:210px;
  z-index:3;
}
.hero__badge--top{
  top:auto;
  bottom:14%;
  left:-40px;
  transform:rotate(-3deg);
  animation:float-y 5s ease-in-out infinite;
}
.hero__badge--bot{
  bottom:-26px;
  right:-30px;
  transform:rotate(3deg);
  animation:float-y 6s ease-in-out infinite reverse;
}
@keyframes float-y{
  0%,100%{translate:0 0;}
  50%{translate:0 -10px;}
}
.hero__badge-num{
  font-family:"Fraunces", serif;
  font-weight:800;
  font-size:22px;
  color:var(--indigo);
  letter-spacing:-.02em;
}
.hero__badge-num small{font-size:12px;font-weight:700;margin-left:2px;color:var(--framboise);}
.hero__badge-lbl{color:var(--ink-soft);}
.hero__badge-lbl strong{color:var(--marine);}

.stars{color:#ffb800;letter-spacing:.06em;font-size:14px;line-height:1;}
.stars--big{font-size:22px;}

.hero__scroll{
  position:absolute;
  bottom:18px;left:50%;
  transform:translateX(-50%);
  width:24px;height:40px;
  border:2px solid rgba(12,31,109,.25);
  border-radius:14px;
  display:flex;justify-content:center;
  z-index:2;
}
.hero__scroll span{
  display:block;
  width:3px;height:8px;
  background:var(--indigo);
  border-radius:3px;
  margin-top:6px;
  animation:scrollIndic 1.6s ease-in-out infinite;
}
@keyframes scrollIndic{
  0%{transform:translateY(0);opacity:1;}
  100%{transform:translateY(14px);opacity:0;}
}
@media (max-width:960px){.hero__scroll{display:none;}}

/* ---------- MARQUEE ---------- */
.marquee{
  background:var(--marine);
  color:#fff;
  padding:1em 0;
  overflow:hidden;
  position:relative;
}
.marquee__track{
  display:flex;
  gap:3.5em;
  white-space:nowrap;
  animation:slide 30s linear infinite;
  font-size:13px;
  letter-spacing:.18em;
  text-transform:uppercase;
  font-weight:600;
  opacity:.85;
}
.marquee__track span{flex:0 0 auto;display:flex;align-items:center;gap:1em;}
.marquee__track span::after{content:"·";color:var(--bubble);font-size:24px;line-height:0;}
.marquee__track span:last-child::after{display:none;}
@keyframes slide{
  0%{transform:translateX(0);}
  100%{transform:translateX(-50%);}
}

/* ---------- PAIN ---------- */
.pain{padding:clamp(70px, 10vw, 130px) 0 clamp(40px, 5vw, 60px);background:var(--white);}
.pain__grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(280px,1fr));
  gap:14px;
  margin-bottom:2em;
}
.pain-card{
  display:flex;
  align-items:flex-start;
  gap:.85em;
  background:var(--nacre);
  padding:1.2em 1.3em;
  border-radius:var(--radius);
  border:1px solid transparent;
  cursor:pointer;
  transition:all var(--t-fast);
  position:relative;
}
.pain-card:hover{
  background:var(--ciel);
  transform:translateY(-2px);
  border-color:rgba(17,67,198,.18);
}
.pain-card input{position:absolute;opacity:0;pointer-events:none;}
.pain-card__check{
  width:24px;height:24px;
  border-radius:8px;
  border:2px solid rgba(17,67,198,.35);
  background:#fff;
  flex:0 0 auto;
  position:relative;
  transition:all var(--t-fast);
  margin-top:2px;
}
.pain-card__check::after{
  content:"";
  position:absolute;
  inset:0;
  background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><polyline points='5 12 10 17 19 7'/></svg>") center/14px no-repeat;
  opacity:0;
  transition:opacity var(--t-fast);
}
.pain-card input:checked + .pain-card__check{
  background:var(--framboise);
  border-color:var(--framboise);
}
.pain-card input:checked + .pain-card__check::after{opacity:1;}
.pain-card__txt{font-size:15px;color:var(--ink-soft);}
.pain-card__txt strong{color:var(--marine);}

.pain__verdict{
  background:linear-gradient(135deg, var(--ciel) 0%, #fff 100%);
  border-left:4px solid var(--framboise);
  border-radius:var(--radius);
  padding:1.6em 2em;
  font-size:18px;
  color:var(--marine);
  max-width:780px;
  margin:0 auto;
  text-align:center;
  box-shadow:var(--shadow-sm);
}
.pain__verdict p{margin:0;}

/* ---------- REVELATION SECTION ---------- */
.reveal-sec{
  padding:clamp(40px, 5vw, 70px) 0 clamp(70px, 10vw, 130px);
  background:linear-gradient(180deg, #fff 0%, var(--nacre) 100%);
}
.reveal-sec__grid{
  display:grid;
  grid-template-columns:1fr 1.05fr;
  gap:clamp(40px, 6vw, 80px);
  align-items:center;
}
@media (max-width:960px){.reveal-sec__grid{grid-template-columns:1fr;}}

.reveal-sec__media{
  position:relative;
  border-radius:var(--radius-xl);
  overflow:hidden;
  box-shadow:var(--shadow-xl);
}
.reveal-sec__media img{
  aspect-ratio:4/5;
  object-fit:cover;
  width:100%;
}
.floating-stat{
  position:absolute;
  bottom:24px;left:24px;right:24px;
  background:rgba(255,255,255,.95);
  backdrop-filter:blur(20px);
  border-radius:var(--radius);
  padding:1.4em 1.6em;
  display:flex;
  align-items:center;
  gap:1.2em;
  box-shadow:var(--shadow-md);
}
.floating-stat__num{
  font-family:"Fraunces", serif;
  font-weight:900;
  font-size:46px;
  letter-spacing:-.03em;
  background:var(--grad-text);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
  line-height:1;
}
.floating-stat__lbl{font-size:14px;color:var(--ink-soft);line-height:1.4;}
.floating-stat__lbl strong{color:var(--marine);}

.reveal-sec__list{
  margin:1.5em 0;
  display:flex;
  flex-direction:column;
  gap:.85em;
}
.reveal-sec__list li{
  position:relative;
  padding-left:34px;
  font-size:17px;
  color:var(--ink-soft);
  line-height:1.55;
}
.reveal-sec__list li strong{color:var(--marine);}
.reveal-sec__list svg{
  position:absolute;
  left:0;
  top:.25em;
  width:22px;height:22px;
  color:var(--framboise);
}

.reveal-sec__punch{
  margin-top:1.5em;
  padding:1.3em 1.5em;
  background:#fff;
  border-radius:var(--radius);
  border-left:4px solid var(--indigo);
  font-size:17px;
  color:var(--marine);
  box-shadow:var(--shadow-sm);
}

/* ---------- STAKES ---------- */
.stakes{
  position:relative;
  padding:clamp(70px, 10vw, 130px) 0;
  background:linear-gradient(135deg, var(--marine) 0%, var(--indigo) 100%);
  color:#fff;
  overflow:hidden;
}
.stakes::before{
  content:"";
  position:absolute;
  top:-100px;right:-100px;
  width:500px;height:500px;
  background:radial-gradient(circle, rgba(238,28,67,.4) 0%, transparent 60%);
  filter:blur(40px);
}
.stakes::after{
  content:"";
  position:absolute;
  bottom:-100px;left:-100px;
  width:500px;height:500px;
  background:radial-gradient(circle, rgba(255,147,179,.3) 0%, transparent 60%);
  filter:blur(40px);
}
.stakes .container{position:relative;z-index:1;}
.stakes .section-lede{color:rgba(255,255,255,.75);}

.stakes__grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
  gap:18px;
  margin-bottom:2.5em;
}
.stake-card{
  background:rgba(255,255,255,.06);
  backdrop-filter:blur(14px);
  border:1px solid rgba(255,255,255,.12);
  border-radius:var(--radius);
  padding:1.6em 1.4em;
  transition:transform var(--t-fast), background var(--t-fast);
}
.stake-card:hover{
  transform:translateY(-4px);
  background:rgba(255,255,255,.1);
}
.stake-card__icon{
  width:48px;height:48px;
  border-radius:14px;
  background:rgba(255,255,255,.1);
  display:flex;align-items:center;justify-content:center;
  margin-bottom:.9em;
  color:var(--bubble);
}
.stake-card__icon svg{width:26px;height:26px;}
.stake-card h3{
  color:#fff;
  font-size:19px;
  font-family:"Inter", sans-serif;
  font-weight:700;
  margin-bottom:.4em;
  letter-spacing:-.01em;
}
.stake-card p{
  color:rgba(255,255,255,.78);
  font-size:14.5px;
  line-height:1.55;
  margin:0;
}
.stakes__hope{
  text-align:center;
  font-size:clamp(17px, 1.8vw, 21px);
  color:#fff;
  max-width:780px;
  margin:0 auto;
  line-height:1.5;
}
.stakes__hope em{color:var(--bubble);font-style:normal;}

/* ---------- AUTHORS ---------- */
.authors{padding:clamp(70px, 10vw, 130px) 0;background:var(--nacre);}

.authors__hero{
  position:relative;
  margin:0 auto clamp(40px, 6vw, 70px);
  max-width:880px;
  border-radius:var(--radius-xl);
  overflow:hidden;
  box-shadow:var(--shadow-xl);
  background:#fff;
}
.authors__hero-bg{
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at 20% 30%, rgba(17,67,198,.18) 0%, transparent 60%),
    radial-gradient(circle at 80% 70%, rgba(238,28,67,.15) 0%, transparent 60%),
    linear-gradient(135deg, var(--ciel) 0%, var(--nacre) 100%);
  pointer-events:none;
}
.authors__hero img{
  position:relative;
  display:block;
  width:100%;
  max-width:720px;
  margin:0 auto;
  z-index:1;
}
.authors__hero-stats{
  position:relative;
  z-index:2;
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:1px;
  background:rgba(12,31,109,.08);
  border-top:1px solid rgba(12,31,109,.08);
}
.authors__hero-stats > div{
  background:#fff;
  padding:1.4em 1em;
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
  gap:.15em;
}
.authors__hero-stats strong{
  font-family:"Fraunces", serif;
  font-weight:800;
  font-size:clamp(20px, 2.4vw, 26px);
  letter-spacing:-.02em;
  background:var(--grad-text);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
  line-height:1;
}
.authors__hero-stats span{
  font-size:12px;
  color:var(--ink-faint);
  text-transform:uppercase;
  letter-spacing:.08em;
  font-weight:600;
}
@media (max-width:640px){
  .authors__hero-stats{grid-template-columns:repeat(2,1fr);}
  .authors__hero-stats > div{padding:1.1em .8em;}
}

.authors__grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(360px,1fr));
  gap:24px;
}
.author-card{
  background:#fff;
  border-radius:var(--radius-lg);
  padding:2.4em 2em;
  box-shadow:var(--shadow-md);
  position:relative;
  overflow:hidden;
  transition:transform var(--t-fast), box-shadow var(--t-fast);
}
.author-card::before{
  content:"";
  position:absolute;
  top:0;left:0;right:0;
  height:4px;
  background:var(--grad-primary);
}
.author-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);}

.author-card__top{
  display:flex;
  align-items:center;
  gap:1em;
  margin-bottom:1.2em;
}
.author-card__avatar{
  width:64px;height:64px;
  border-radius:50%;
  background:var(--grad-primary);
  display:flex;
  align-items:center;
  justify-content:center;
  color:#fff;
  font-weight:800;
  font-size:22px;
  font-family:"Fraunces", serif;
  flex:0 0 auto;
}
.author-card__avatar--alt{background:linear-gradient(135deg, #ee1c43 0%, #ff93b3 100%);}

.author-card h3{
  font-size:24px;
  margin-bottom:.15em;
}
.author-card__role{
  margin:0;
  font-size:14px;
  color:var(--framboise);
  font-weight:600;
}
.author-card__creds{
  display:flex;
  flex-direction:column;
  gap:.85em;
  margin-bottom:1.4em;
}
.author-card__creds li{
  position:relative;
  padding-left:30px;
  font-size:15px;
  color:var(--ink-soft);
  line-height:1.55;
}
.author-card__creds li svg{
  position:absolute;
  left:0;
  top:.3em;
  width:18px;height:18px;
  color:var(--framboise);
}
.author-card__creds strong{color:var(--marine);}

.author-card__quote{
  background:var(--nacre);
  padding:1.1em 1.3em;
  border-radius:var(--radius);
  font-style:italic;
  color:var(--marine);
  font-size:15px;
  margin:0;
  position:relative;
  border-left:3px solid var(--framboise);
}
.author-card__quote em{color:var(--framboise);font-weight:600;}

/* ---------- DISCOVER (curiosity bullets) ---------- */
.discover{padding:clamp(70px, 10vw, 130px) 0;background:#fff;}
.discover__grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(310px,1fr));
  gap:18px;
  margin-bottom:3.5em;
}
.discover-card{
  background:linear-gradient(180deg, #fff 0%, var(--nacre) 100%);
  border:1px solid rgba(12,31,109,.08);
  border-radius:var(--radius);
  padding:1.6em 1.4em 1.5em;
  position:relative;
  transition:transform var(--t-fast), box-shadow var(--t-fast), border-color var(--t-fast);
  overflow:hidden;
}
.discover-card::before{
  content:"";
  position:absolute;
  top:0;left:0;
  width:100%;height:3px;
  background:var(--grad-text);
  transform:scaleX(0);
  transform-origin:left;
  transition:transform var(--t-base);
}
.discover-card:hover{
  transform:translateY(-3px);
  box-shadow:var(--shadow-md);
  border-color:rgba(17,67,198,.2);
}
.discover-card:hover::before{transform:scaleX(1);}
.discover-card__num{
  font-family:"Fraunces", serif;
  font-weight:800;
  font-size:32px;
  background:var(--grad-text);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
  letter-spacing:-.03em;
  margin-bottom:.2em;
  line-height:1;
}
.discover-card p{
  font-size:15px;
  color:var(--ink-soft);
  margin:0;
  line-height:1.55;
}
.discover-card p strong{color:var(--marine);}

.discover__cta{text-align:center;}
.discover__cta-sub{
  margin-top:1em;
  font-size:14px;
  color:var(--ink-faint);
}

/* ---------- CURRICULUM ---------- */
.curriculum{
  padding:clamp(70px, 10vw, 130px) 0;
  background:linear-gradient(180deg, var(--nacre) 0%, var(--ciel) 100%);
}
.modules{
  display:grid;
  gap:18px;
  max-width:880px;
  margin:0 auto;
}
.module{
  background:#fff;
  border-radius:var(--radius-lg);
  padding:1.8em 2em;
  box-shadow:var(--shadow-sm);
  transition:transform var(--t-fast), box-shadow var(--t-fast);
  position:relative;
}
.module:hover{transform:translateX(4px);box-shadow:var(--shadow-md);}
.module__head{
  display:flex;
  align-items:center;
  gap:1em;
  margin-bottom:1em;
  flex-wrap:wrap;
}
.module__num{
  background:var(--ciel);
  color:var(--indigo);
  font-size:11px;
  letter-spacing:.16em;
  text-transform:uppercase;
  font-weight:800;
  padding:.45em .9em;
  border-radius:999px;
}
.module__num--bonus{background:var(--grad-accent);color:#fff;}
.module h3{font-size:22px;color:var(--marine);}
.module ul{display:flex;flex-direction:column;gap:.45em;}
.module li{
  position:relative;
  padding-left:1.4em;
  font-size:15px;
  color:var(--ink-soft);
  line-height:1.5;
}
.module li::before{
  content:"";
  position:absolute;
  left:0;top:.55em;
  width:8px;height:8px;
  border-radius:50%;
  background:var(--grad-accent);
}
.module li strong{color:var(--marine);}
.module--bonus{
  background:linear-gradient(135deg, #fff 0%, #fff5f7 100%);
  border:2px dashed var(--bubble);
}

/* ---------- AVIS / TESTIMONIALS ---------- */
.avis{padding:clamp(70px, 10vw, 130px) 0;background:var(--nacre);}
.rating-summary{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:.7em;
  margin-top:1em;
  font-size:15px;
  color:var(--ink-soft);
  flex-wrap:wrap;
}
.rating-summary strong{color:var(--marine);}

.avis__grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(310px,1fr));
  gap:20px;
}
.avis-card{
  margin:0;
  background:#fff;
  border-radius:var(--radius-lg);
  padding:1.8em 1.7em;
  box-shadow:var(--shadow-sm);
  display:flex;
  flex-direction:column;
  gap:1em;
  transition:transform var(--t-fast), box-shadow var(--t-fast);
}
.avis-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);}
.avis-card blockquote{
  margin:0;
  font-size:15.5px;
  color:var(--marine);
  line-height:1.55;
  font-family:"Fraunces", serif;
  font-weight:500;
}
.avis-card blockquote strong{font-weight:700;}
.avis-card figcaption{
  display:flex;
  align-items:center;
  gap:.7em;
  margin-top:auto;
  padding-top:.7em;
  border-top:1px solid rgba(12,31,109,.08);
  font-size:14px;
}
.avis-card figcaption strong{display:block;color:var(--marine);}
.avis-card figcaption span{color:var(--ink-faint);font-size:12px;}
.avatar{
  width:42px;height:42px;border-radius:50%;
  background:var(--grad-primary);
  display:flex;align-items:center;justify-content:center;
  color:#fff;font-weight:700;
  flex:0 0 auto;
  font-family:"Fraunces", serif;
}
.avatar--2{background:linear-gradient(135deg, #ee1c43, #ff93b3);}
.avatar--3{background:linear-gradient(135deg, #2a5af0, #d7e3ff);color:var(--indigo);}
.avatar--4{background:linear-gradient(135deg, #0c1f6d, #2a5af0);}

/* ---------- CTA BANNER (mid) ---------- */
.cta-banner{
  background:var(--grad-primary);
  background-size:200% 200%;
  animation:gradShift 8s ease infinite;
  color:#fff;
  padding:clamp(40px, 5vw, 60px) 0;
  position:relative;
  overflow:hidden;
}
@keyframes gradShift{
  0%,100%{background-position:0% 50%;}
  50%{background-position:100% 50%;}
}
.cta-banner__inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:2em;
  flex-wrap:wrap;
}
.cta-banner h3{color:#fff;font-size:clamp(22px, 3vw, 30px);margin-bottom:.2em;}
.cta-banner p{margin:0;color:rgba(255,255,255,.85);font-size:15px;}

/* ---------- OFFER ---------- */
.offer{padding:clamp(70px, 10vw, 130px) 0;background:linear-gradient(180deg, var(--ciel) 0%, var(--nacre) 100%);}
.offer__card{
  max-width:680px;
  margin:0 auto;
  background:#fff;
  border-radius:var(--radius-xl);
  padding:clamp(28px, 4vw, 48px);
  box-shadow:0 50px 100px -30px rgba(17,67,198,.4);
  position:relative;
  overflow:hidden;
}
.offer__card::before{
  content:"";
  position:absolute;
  top:0;left:0;right:0;
  height:6px;
  background:var(--grad-primary);
}
.offer__top{text-align:center;margin-bottom:2em;}
.offer__badge{
  display:inline-block;
  background:var(--grad-accent);
  color:#fff;
  font-size:12px;
  font-weight:700;
  letter-spacing:.14em;
  text-transform:uppercase;
  padding:.5em 1em;
  border-radius:999px;
  margin-bottom:1em;
}
.offer__title{font-size:clamp(26px, 3.4vw, 36px);margin-bottom:.2em;}
.offer__title em{color:var(--framboise);font-style:italic;}
.offer__sub{color:var(--ink-soft);margin:0;}

.offer__includes{
  display:flex;
  flex-direction:column;
  gap:.9em;
  margin-bottom:2em;
  padding-block:1.6em;
  border-top:1px dashed rgba(12,31,109,.12);
  border-bottom:1px dashed rgba(12,31,109,.12);
}
.includes-row{
  display:flex;
  align-items:flex-start;
  gap:1em;
}
.includes-row__icon{
  width:44px;height:44px;
  background:var(--ciel);
  border-radius:12px;
  display:flex;align-items:center;justify-content:center;
  flex:0 0 auto;
  color:var(--indigo);
}
.includes-row__icon svg{width:22px;height:22px;}
.includes-row__txt{
  flex:1;
  font-size:15px;
  color:var(--ink-soft);
  line-height:1.5;
}
.includes-row__txt strong{
  color:var(--marine);
  display:block;
  font-size:16.5px;
  margin-bottom:.15em;
}
.includes-row__txt p{margin:0;}

.offer__total{
  display:flex;
  flex-direction:column;
  gap:.5em;
  margin-bottom:1.5em;
}
.offer__total-row{
  display:flex;
  justify-content:space-between;
  align-items:baseline;
  font-size:16px;
  color:var(--ink-soft);
}
.offer__total-row .strike{
  text-decoration:line-through;
  color:var(--ink-faint);
}
.offer__total-row--big{
  font-size:18px;
  color:var(--marine);
  font-weight:600;
  padding-top:.4em;
  border-top:2px solid var(--marine);
}
.offer__total-row--big .price{
  font-family:"Fraunces", serif;
  font-weight:900;
  font-size:54px;
  background:var(--grad-text);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
  letter-spacing:-.03em;
  line-height:1;
}

.offer__trust{
  display:flex;
  justify-content:center;
  flex-wrap:wrap;
  gap:1.4em;
  margin-top:1.5em;
  font-size:13px;
  color:var(--ink-soft);
}
.offer__trust div{display:flex;align-items:center;gap:.4em;}
.offer__trust svg{width:16px;height:16px;color:var(--indigo);}

/* ---------- FAQ ---------- */
.faq{padding:clamp(70px, 10vw, 130px) 0;background:var(--nacre);}
.faq__list{max-width:780px;margin:0 auto;display:flex;flex-direction:column;gap:12px;}
.faq__item{
  background:#fff;
  border-radius:var(--radius);
  border:1px solid rgba(12,31,109,.08);
  transition:box-shadow var(--t-fast), border-color var(--t-fast);
  overflow:hidden;
}
.faq__item[open]{box-shadow:var(--shadow-md);border-color:rgba(17,67,198,.2);}
.faq__item summary{
  cursor:pointer;
  list-style:none;
  padding:1.2em 1.4em;
  font-weight:600;
  font-size:16.5px;
  color:var(--marine);
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:1em;
  position:relative;
}
.faq__item summary::-webkit-details-marker{display:none;}
.faq__item summary::after{
  content:"+";
  flex:0 0 auto;
  width:32px;height:32px;
  border-radius:50%;
  background:var(--ciel);
  color:var(--indigo);
  display:flex;align-items:center;justify-content:center;
  font-size:22px;
  font-weight:300;
  transition:transform var(--t-fast), background var(--t-fast);
}
.faq__item[open] summary::after{
  transform:rotate(45deg);
  background:var(--grad-primary);
  color:#fff;
}
.faq__body{
  padding:0 1.4em 1.4em;
  font-size:15.5px;
  color:var(--ink-soft);
  line-height:1.6;
}
.faq__body strong{color:var(--marine);}

/* ---------- FINAL CTA ---------- */
.final-cta{
  padding:clamp(80px, 11vw, 140px) 0;
  background:linear-gradient(135deg, var(--marine) 0%, var(--indigo) 50%, var(--framboise) 100%);
  background-size:200% 200%;
  animation:gradShift 14s ease infinite;
  color:#fff;
  text-align:center;
  position:relative;
  overflow:hidden;
}
.final-cta::before,.final-cta::after{
  content:"";
  position:absolute;
  border-radius:50%;
  filter:blur(80px);
  opacity:.3;
}
.final-cta::before{
  top:-200px;left:-200px;
  width:500px;height:500px;
  background:var(--bubble);
}
.final-cta::after{
  bottom:-200px;right:-200px;
  width:500px;height:500px;
  background:var(--ciel);
}
.final-cta__inner{position:relative;z-index:1;}
.final-cta .h2{font-size:clamp(40px, 6vw, 72px);margin-bottom:.5em;}
.final-cta__text{
  font-size:clamp(17px, 1.9vw, 21px);
  color:rgba(255,255,255,.92);
  max-width:680px;
  margin:0 auto 2em;
  line-height:1.55;
}
.final-cta__text em{color:var(--bubble);font-style:normal;}
.final-cta__sub{
  margin-top:1.4em;
  font-size:14px;
  color:rgba(255,255,255,.75);
}

/* ---------- FOOTER ---------- */
.footer{
  background:var(--marine);
  color:rgba(255,255,255,.7);
  padding:clamp(40px, 6vw, 80px) 0 100px;
  font-size:14px;
}
.footer__inner{display:grid;grid-template-columns:1.5fr 1fr;gap:2em;align-items:start;}
@media (max-width:780px){.footer__inner{grid-template-columns:1fr;}}
.footer__brand .nav__logo{color:#fff;font-size:24px;}
.footer__brand p{margin-top:.6em;max-width:380px;}
.footer__links{
  display:flex;
  flex-direction:column;
  gap:.5em;
}
.footer__links a{transition:color var(--t-fast);}
.footer__links a:hover{color:var(--bubble);}
.footer__warning{
  grid-column:1/-1;
  margin-top:1.6em;
  padding:1.2em 1.4em;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,147,179,.25);
  border-radius:var(--radius);
  display:flex;
  align-items:flex-start;
  gap:.9em;
  color:rgba(255,255,255,.85);
  font-size:13.5px;
  line-height:1.5;
}
.footer__warning svg{
  width:22px;height:22px;
  color:var(--bubble);
  flex:0 0 auto;
  margin-top:1px;
}
.footer__warning p{margin:0;}
.footer__warning strong{color:#fff;}
.footer__legal{
  grid-column:1/-1;
  margin-top:1.4em;
  padding-top:1.2em;
  border-top:1px solid rgba(255,255,255,.1);
  font-size:12px;
  color:rgba(255,255,255,.5);
}

/* ---------- STICKY MOBILE CTA ---------- */
.sticky-cta{
  position:fixed;
  bottom:0;left:0;right:0;
  z-index:55;
  background:rgba(255,255,255,.96);
  backdrop-filter:blur(14px);
  border-top:1px solid rgba(12,31,109,.1);
  box-shadow:0 -10px 30px -10px rgba(12,31,109,.18);
  padding:.7em var(--gutter);
  transform:translateY(120%);
  transition:transform var(--t-base);
}
.sticky-cta.is-visible{transform:translateY(0);}
.sticky-cta__inner{
  max-width:var(--container);
  margin:0 auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1em;
}
.sticky-cta__txt{display:flex;flex-direction:column;line-height:1.15;}
.sticky-cta__price{
  font-family:"Fraunces", serif;
  font-weight:900;
  font-size:24px;
  background:var(--grad-text);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
  letter-spacing:-.02em;
}
.sticky-cta__lbl{font-size:11px;color:var(--ink-faint);text-transform:uppercase;letter-spacing:.06em;font-weight:600;}

/* ---------- SCROLL REVEAL ---------- */
[data-reveal]{
  opacity:0;
  transform:translateY(28px);
  transition:opacity .9s ease, transform .9s cubic-bezier(.2,.7,.2,1);
}
[data-reveal].is-revealed{
  opacity:1;
  transform:translateY(0);
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
    scroll-behavior:auto !important;
  }
  [data-reveal]{opacity:1;transform:none;}
}

/* ---------- TABLET / SMALL DESKTOP : repositionne badges qui sortiraient du viewport ---------- */
@media (max-width:760px){
  .hero__badge--top{left:0;bottom:auto;top:-18px;}
  .hero__badge--bot{right:0;bottom:-18px;}
}

/* ---------- MOBILE FINE-TUNES ---------- */
@media (max-width:560px){
  .hero__badge{padding:.7em .9em;font-size:11.5px;max-width:160px;}
  .hero__badge--top{display:none;}
  .hero__badge--bot{bottom:-14px;right:6px;}
  .floating-stat{flex-direction:column;align-items:flex-start;padding:1.1em 1.3em;}
  .floating-stat__num{font-size:38px;}
  .cta-banner__inner{flex-direction:column;text-align:center;}
  .cta-banner h3{margin-bottom:.5em;}
  .author-card{padding:1.8em 1.4em;}
  .module{padding:1.4em 1.5em;}
  .nav__inner{padding-block:.7em;}
  .btn--mini{display:none;}
  .announce__inner{font-size:12.5px;}
  body{font-size:16px;}
}

/* ---------- PRINT ---------- */
@media print{
  .nav,.announce,.sticky-cta,.cta-banner,.final-cta,.hero__bg,.orb,.grain{display:none !important;}
}
