/* ===== Voice Academy Ouagadougou — charte : violet #662583 · orange #DD4C0B ===== */
:root{
  --violet:#662583;
  --violet-d:#3d1450;
  --violet-dd:#24092f;
  --violet-soft:#f1e8f6;
  --orange:#dd4c0b;
  --orange-l:#f2782f;
  --orange-soft:#fde7da;
  --cream:#f8f4ef;
  --ink:#1d1424;
  --muted:#5f5668;
  --line:#e9e1ec;
  --white:#fff;
  --radius:24px;
  --shadow-sm:0 4px 14px rgba(36,9,47,.08);
  --shadow:0 18px 40px -12px rgba(36,9,47,.28), 0 6px 14px rgba(36,9,47,.08);
  --shadow-lg:0 40px 80px -24px rgba(61,20,80,.45), 0 16px 32px -12px rgba(221,76,11,.25);
  --serif:"Fraunces", Georgia, serif;
  --sans:"DM Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:84px}
body{margin:0;font-family:var(--sans);color:var(--ink);background:var(--white);line-height:1.6;font-size:17px;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img,video{display:block;max-width:100%}
a{color:inherit}
h1,h2,h3{margin:0;line-height:1.12}
h1,h2{font-family:var(--serif);font-weight:700;letter-spacing:-.02em}
h2{font-size:clamp(30px,4vw,46px)}
p{margin:0}
.wrap{width:min(1200px,100% - 40px);margin-inline:auto}
.ic{width:1.2em;height:1.2em;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:none}
.hl{color:var(--orange)}
.eyebrow{color:var(--orange);font-weight:700;font-size:15px;letter-spacing:.08em;text-transform:uppercase;margin-bottom:14px;display:flex;align-items:center;gap:10px}
.eyebrow::before{content:"";width:28px;height:3px;border-radius:3px;background:currentColor}
.eyebrow--light{color:#ffb98f}

/* ---------- Boutons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:16px 28px;border-radius:14px;font-weight:700;font-size:16px;text-decoration:none;border:2px solid transparent;transition:transform .2s, box-shadow .2s, background .2s, color .2s;cursor:pointer;white-space:nowrap}
.btn:hover{transform:translateY(-2px)}
.btn--orange{background:var(--orange);color:#fff;box-shadow:0 12px 24px -10px rgba(221,76,11,.7)}
.btn--orange:hover{background:#c74208;box-shadow:0 16px 30px -10px rgba(221,76,11,.8)}
.btn--ghost{background:#fff;color:var(--violet);border-color:var(--violet)}
.btn--ghost:hover{background:var(--violet);color:#fff}
.btn--white{background:#fff;color:var(--violet-d)}
.btn--line{border-color:rgba(255,255,255,.6);color:#fff}
.btn--line:hover{background:rgba(255,255,255,.12)}
.btn--sm{padding:10px 18px;font-size:15px;border-radius:12px}

/* ---------- En-tête ---------- */
.topbar{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.88);backdrop-filter:saturate(1.4) blur(12px);-webkit-backdrop-filter:saturate(1.4) blur(12px);border-bottom:1px solid transparent;transition:border-color .3s, box-shadow .3s}
.topbar.is-scrolled{border-color:var(--line);box-shadow:var(--shadow-sm)}
.topbar__in{display:flex;align-items:center;justify-content:space-between;height:76px}
.brand img{height:50px;width:auto}
.nav{display:flex;align-items:center;gap:30px}
.nav a:not(.btn){text-decoration:none;font-weight:600;font-size:15px;color:var(--ink);position:relative}
.nav a:not(.btn)::after{content:"";position:absolute;left:0;bottom:-6px;width:100%;height:2px;background:var(--orange);transform:scaleX(0);transform-origin:left;transition:transform .25s}
.nav a:not(.btn):hover::after{transform:scaleX(1)}
.burger{display:none;width:46px;height:46px;border:0;border-radius:12px;background:var(--violet-soft);cursor:pointer;padding:12px;flex-direction:column;justify-content:space-between}
.burger span{display:block;height:2.5px;border-radius:2px;background:var(--violet);transition:transform .3s, opacity .3s}
.burger[aria-expanded="true"] span:nth-child(1){transform:translateY(8.5px) rotate(45deg)}
.burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-8.5px) rotate(-45deg)}

/* ---------- Héros ---------- */
.hero{position:relative;background:var(--cream);padding:64px 0 96px;overflow:hidden}
.hero__blob{position:absolute;border-radius:50%;filter:blur(70px);opacity:.5;pointer-events:none}
.hero__blob--v{width:520px;height:520px;background:#c9a3dc;right:-120px;top:-160px}
.hero__blob--o{width:380px;height:380px;background:#ffc6a3;left:-140px;bottom:-160px}
.hero__grid{position:relative;display:grid;grid-template-columns:1fr 1.08fr;gap:64px;align-items:center}
.pill{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;border-radius:999px;background:#fff;box-shadow:var(--shadow-sm);font-size:15px;color:var(--muted);margin-bottom:26px}
.pill .ic{color:var(--orange)}
.pill strong{color:var(--violet)}
.hero h1{font-size:clamp(40px,5.4vw,66px);color:var(--violet-dd)}
.kicker{margin-top:22px;font-weight:700;font-size:15px;letter-spacing:.06em;text-transform:uppercase;color:var(--violet)}
.lead{margin-top:16px;font-size:19px;color:var(--muted);max-width:540px}
.lead strong{color:var(--ink)}
.hero__ctas{display:flex;flex-wrap:wrap;gap:14px;margin-top:34px}
.hero__trust{display:flex;align-items:center;gap:14px;margin-top:34px;font-size:15px;color:var(--muted);line-height:1.4}
.hero__trust img{width:48px;height:48px;border-radius:50%;object-fit:cover;border:3px solid #fff;box-shadow:var(--shadow-sm)}
.hero__trust strong{color:var(--ink)}
.hero__media{position:relative}
.hero__media::before{content:"";position:absolute;inset:28px -18px -22px 26px;border-radius:30px;background:linear-gradient(135deg,var(--orange) 0%,var(--orange-l) 45%,var(--violet) 100%);z-index:0}
.hero__frame{position:relative;z-index:1;border-radius:28px;overflow:hidden;background:#000;box-shadow:var(--shadow-lg);aspect-ratio:16/9;outline:6px solid #fff}
.hero__frame video{width:100%;height:100%;object-fit:cover}
.chip{position:absolute;z-index:2;display:inline-flex;align-items:center;gap:8px;padding:10px 16px;border-radius:14px;background:#fff;box-shadow:var(--shadow);font-weight:700;font-size:14px;color:var(--violet-d);animation:float 5s ease-in-out infinite}
.chip .ic{color:var(--orange)}
.chip--grad{left:-28px;bottom:-26px}
.chip--wave{right:18px;top:-20px;animation-delay:-2.5s}
.eq{display:inline-flex;align-items:flex-end;gap:2px;height:14px}
.eq i{width:3px;background:var(--orange);border-radius:2px;animation:eq 1s ease-in-out infinite}
.eq i:nth-child(2){animation-delay:-.3s}.eq i:nth-child(3){animation-delay:-.6s}.eq i:nth-child(4){animation-delay:-.15s}
@keyframes eq{0%,100%{height:4px}50%{height:14px}}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}

/* bouton son */
.sound{position:absolute;left:16px;bottom:16px;z-index:3;display:inline-flex;align-items:center;gap:8px;padding:9px 14px 9px 12px;border-radius:999px;border:0;background:rgba(20,6,26,.62);color:#fff;font:600 14px var(--sans);cursor:pointer;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);transition:background .2s}
.sound:hover{background:var(--orange)}
.sound.is-on{background:var(--orange)}
.sound--dark{position:static;background:var(--violet)}
.hero__frame .sound{left:auto;right:16px}

/* ---------- Bandeau défilant ---------- */
.ticker{background:var(--violet);color:#fff;overflow:hidden;padding:18px 0;transform:rotate(-1.2deg);margin:-24px -10px 0;position:relative;z-index:2;box-shadow:0 10px 30px -10px rgba(61,20,80,.5)}
.ticker__track{display:flex;gap:56px;width:max-content;animation:ticker 32s linear infinite}
.ticker span{display:inline-flex;align-items:center;gap:12px;font-weight:700;font-size:18px;letter-spacing:.02em;white-space:nowrap}
.ticker .ic{color:#ffb98f;width:22px;height:22px}
@keyframes ticker{to{transform:translateX(-50%)}}

/* ---------- Sections ---------- */
.section{padding:110px 0}
.section--tint{background:linear-gradient(180deg,#fff 0%,var(--cream) 100%)}
.section--violet{background:radial-gradient(1200px 500px at 85% 0%,#7d3a9b 0%,transparent 60%),var(--violet-dd);color:#fff}

/* Qui sommes-nous */
.about__head{max-width:760px;margin-bottom:56px}
.about__head h2{color:var(--violet-dd)}
.about__head p:last-child{margin-top:20px;font-size:18px;color:var(--muted)}
.features{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.feature{position:relative;padding:30px 28px;border-radius:var(--radius);background:#fff;border:1px solid var(--line);transition:transform .3s, box-shadow .3s, border-color .3s;overflow:hidden}
.feature::after{content:"";position:absolute;left:0;top:0;height:4px;width:100%;background:linear-gradient(90deg,var(--violet),var(--orange));transform:scaleX(0);transform-origin:left;transition:transform .4s}
.feature:hover{transform:translateY(-6px);box-shadow:var(--shadow);border-color:transparent}
.feature:hover::after{transform:scaleX(1)}
.feature__ic{display:grid;place-items:center;width:58px;height:58px;border-radius:18px;background:var(--violet-soft);color:var(--violet);margin-bottom:20px}
.feature__ic .ic{width:28px;height:28px}
.feature__ic--o{background:var(--orange-soft);color:var(--orange)}
.feature h3{font-size:20px;color:var(--violet-dd);margin-bottom:8px}
.feature p{color:var(--muted);font-size:16px}

/* ---------- Élèves : texte + scène carrousel ---------- */
.students{display:grid;grid-template-columns:.85fr 1.15fr;gap:64px;align-items:center}
.students__text h2{color:var(--violet-dd)}
.students__text > p{margin-top:20px;font-size:18px;color:var(--muted)}
.checks{list-style:none;padding:0;margin:30px 0 0;display:grid;gap:16px}
.checks li{display:flex;align-items:center;gap:14px;font-weight:600}
.checks .ic{width:30px;height:30px;padding:6px;border-radius:50%;background:var(--orange);color:#fff;stroke-width:3}

.stage{position:relative;border-radius:32px;padding:56px 44px;background:linear-gradient(180deg,var(--orange) 0%,#f39a62 45%,#fbe2d1 78%,#fdf3ec 100%);box-shadow:var(--shadow)}
.stage__card{background:#fff;border-radius:28px;padding:30px 14px 26px;box-shadow:0 30px 60px -20px rgba(61,20,80,.35)}
.carousel{position:relative;outline:none}
.carousel__viewport{position:relative;height:440px;overflow:hidden;touch-action:pan-y;user-select:none;-webkit-user-select:none}
.slide{position:absolute;top:0;left:50%;width:248px;height:440px;margin:0 0 0 -124px;border-radius:22px;overflow:hidden;background:#140a1a;box-shadow:0 22px 40px -14px rgba(36,9,47,.55);transition:transform .6s cubic-bezier(.22,.8,.24,1), opacity .6s, filter .6s;cursor:pointer;will-change:transform}
.slide__bg{position:absolute;inset:-20px;background-size:cover;background-position:center;filter:blur(18px) brightness(.55);transform:scale(1.1)}
.slide video{position:relative;width:100%;height:100%;object-fit:cover}
.slide--wide video{object-fit:contain}
.slide.is-active{cursor:default}
.slide:not(.is-active) video{pointer-events:none}
.slide::after{content:"";position:absolute;inset:0;border-radius:inherit;box-shadow:inset 0 0 0 1px rgba(255,255,255,.12);pointer-events:none}
.slide .play{position:absolute;left:50%;top:50%;width:64px;height:64px;margin:-32px 0 0 -32px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.95);color:var(--orange);box-shadow:var(--shadow);opacity:0;transform:scale(.8);transition:opacity .3s, transform .3s;pointer-events:none}
.slide .play .ic{width:26px;height:26px;margin-left:3px}
.slide.is-paused .play{opacity:1;transform:scale(1)}
.carousel__arrow{position:absolute;top:50%;z-index:10;width:52px;height:52px;margin-top:-26px;border-radius:50%;border:0;display:grid;place-items:center;background:#fff;color:var(--violet);box-shadow:0 10px 24px -6px rgba(36,9,47,.35);cursor:pointer;transition:background .2s, color .2s, transform .2s}
.carousel__arrow:hover{background:var(--orange);color:#fff;transform:scale(1.08)}
.carousel__arrow .ic{width:24px;height:24px;stroke-width:2.6}
.carousel__arrow--prev{left:6px}
.carousel__arrow--next{right:6px}
.carousel__meta{display:flex;align-items:center;justify-content:center;gap:14px;margin-top:22px;flex-wrap:wrap;padding:0 10px}
.carousel__label{font-weight:700;color:var(--violet-dd);font-size:16px}
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:22px 20px 0}
.step{border:0;background:none;padding:0;text-align:left;cursor:pointer;font:inherit;color:inherit}
.step b{display:block;font-family:var(--sans);font-size:30px;font-weight:700;line-height:1;color:#cdbfd4;transition:color .3s;margin-bottom:10px;letter-spacing:-.02em}
.step i{display:block;height:7px;border-radius:7px;background:var(--orange-soft);overflow:hidden}
.step i::before{content:"";display:block;height:100%;width:var(--p,0%);background:var(--orange);border-radius:inherit}
.step.is-active b{color:var(--ink)}
.step:not(.is-active) i::before{width:0}

/* ---------- Témoignages ---------- */
.testi{text-align:center}
.testi__head{max-width:680px;margin:0 auto 48px}
.testi__head .eyebrow{justify-content:center}
.testi__head p:last-child{margin-top:16px;color:#e3d4ea;font-size:18px}
.testi__frame{position:relative;max-width:920px;margin:0 auto;border-radius:28px;overflow:hidden;background:#000;aspect-ratio:16/9;box-shadow:0 40px 90px -20px rgba(0,0,0,.6), 0 0 0 8px rgba(255,255,255,.08)}
.testi__frame video{width:100%;height:100%;object-fit:cover}
.quote{margin:56px auto 0;max-width:760px;font-family:var(--serif);font-weight:600;font-size:clamp(22px,2.6vw,30px);line-height:1.35;color:#fff}

/* ---------- Nos promotions ---------- */
.promos__head{max-width:720px;margin:0 auto 56px;text-align:center}
.promos__head .eyebrow{justify-content:center}
.promos__head h2{color:var(--violet-dd)}
.promos__head p:last-child{margin-top:18px;font-size:18px;color:var(--muted)}
.promos__grid{display:grid;grid-template-columns:1.15fr 1fr;gap:34px;align-items:center}
.promo{position:relative;margin:0;border-radius:28px;overflow:hidden;box-shadow:var(--shadow-lg);outline:6px solid #fff}
.promo img{width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.22,.8,.24,1)}
.promo:hover img{transform:scale(1.04)}
.promo--a{aspect-ratio:4/3}
.promo--b{aspect-ratio:5/4;transform:translateY(40px)}
.promo--b.reveal{transform:translate(60px,40px)}
.promo--b.reveal.in{transform:translateY(40px)}
.promo figcaption{position:absolute;left:18px;bottom:18px;display:inline-flex;align-items:center;gap:8px;padding:10px 16px;border-radius:14px;background:#fff;color:var(--violet-d);font-weight:700;font-size:15px;box-shadow:var(--shadow)}
.promo figcaption .ic{color:var(--orange)}

/* ---------- Fondateur ---------- */
.founder{display:grid;grid-template-columns:.8fr 1.2fr;gap:72px;align-items:center}
.founder__media{position:relative;padding:0 56px 36px 0;width:100%;max-width:430px;justify-self:center}
.founder__photo{position:relative;border-radius:30px}
.founder__photo::before{content:"";position:absolute;inset:-16px 16px 16px -16px;border-radius:30px;border:3px solid var(--orange);z-index:0}
.founder__photo img{position:relative;z-index:1;width:100%;height:auto;aspect-ratio:1;object-fit:cover;border-radius:30px;box-shadow:var(--shadow-lg)}
.phone{position:absolute;right:0;bottom:0;z-index:2;width:42%;max-width:190px;aspect-ratio:9/16;border-radius:26px;overflow:hidden;border:6px solid #fff;background:#000;box-shadow:var(--shadow-lg)}
.phone video{width:100%;height:100%;object-fit:cover;cursor:pointer}
.phone__sound{position:absolute;left:50%;bottom:10px;transform:translateX(-50%);display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border:0;border-radius:999px;background:var(--orange);color:#fff;font:700 13px var(--sans);cursor:pointer;box-shadow:0 8px 18px -6px rgba(0,0,0,.5);white-space:nowrap;animation:pulse 2.2s ease-in-out infinite}
.phone__sound .ic{width:16px;height:16px}
.phone__sound.is-on{background:rgba(20,6,26,.7);animation:none}
@keyframes pulse{0%,100%{box-shadow:0 0 0 0 rgba(221,76,11,.55)}50%{box-shadow:0 0 0 8px rgba(221,76,11,0)}}
.socials{display:flex;gap:12px;margin-top:30px;position:relative;z-index:3}
.socials a{display:grid;place-items:center;width:52px;height:52px;border-radius:16px;color:#fff;box-shadow:var(--shadow);transition:transform .2s}
.socials a:hover{transform:translateY(-3px)}
.socials a:nth-child(1){background:#0a66c2}
.socials a:nth-child(2){background:#1877f2}
.socials .ic{width:24px;height:24px}
.founder__text h2{color:var(--violet-dd);font-size:clamp(36px,4.6vw,56px)}
.founder__alias{margin:6px 0 22px;font-family:var(--serif);font-size:22px;color:var(--orange);font-weight:600}
.founder__text > p:not(.eyebrow):not(.founder__alias){font-size:18px;color:var(--muted)}
.timeline{list-style:none;margin:30px 0 0;padding:0 0 0 22px;border-left:2px dashed #dcc9e4;display:grid;gap:18px}
.timeline li{position:relative;font-weight:600;line-height:1.45}
.timeline li::before{content:"";position:absolute;left:-30px;top:5px;width:14px;height:14px;border-radius:50%;background:#fff;border:3px solid var(--orange)}
.timeline span{display:block;font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--violet);margin-bottom:2px}

/* ---------- CTA session ---------- */
.cta{padding:0 0 110px}
.cta__in{display:flex;align-items:center;justify-content:space-between;gap:40px;padding:56px 60px;border-radius:32px;color:#fff;background:linear-gradient(120deg,var(--violet) 0%,var(--violet-d) 55%,var(--orange) 140%);box-shadow:var(--shadow-lg);position:relative;overflow:hidden}
.cta__in::after{content:"";position:absolute;right:-80px;top:-80px;width:280px;height:280px;border-radius:50%;border:40px solid rgba(255,255,255,.06)}
.cta h2{font-size:clamp(28px,3.4vw,42px)}
.cta p:last-child{margin-top:14px;color:#ecdff2;max-width:560px}
.cta__btns{display:flex;flex-direction:column;gap:12px;position:relative;z-index:1}
.br-sm{display:none}

/* ---------- Contact ---------- */
.contact{display:grid;grid-template-columns:1fr 1.1fr;gap:56px;align-items:stretch}
.contact h2{color:var(--violet-dd);margin-bottom:34px}
.cards{display:grid;gap:14px}
.ccard{display:flex;align-items:center;gap:18px;padding:18px 20px;border-radius:18px;border:1px solid var(--line);background:#fff;text-decoration:none;font-weight:700;font-size:17px;transition:transform .2s, box-shadow .2s, border-color .2s;overflow-wrap:anywhere}
.ccard:hover{transform:translateX(6px);box-shadow:var(--shadow);border-color:transparent}
.ccard small{display:block;font-weight:600;font-size:13px;color:var(--muted);letter-spacing:.03em}
.ccard__ic{display:grid;place-items:center;width:50px;height:50px;border-radius:15px;background:var(--violet-soft);color:var(--violet);flex:none}
.ccard__ic .ic{width:24px;height:24px}
.ccard__ic--o{background:var(--orange-soft);color:var(--orange)}
.ccard__ic--wa{background:#e3f8ea;color:#1faa53}
.ccard__ic--fb{background:#e7f0fe;color:#1877f2}
.map{border-radius:28px;overflow:hidden;min-height:380px;box-shadow:var(--shadow);border:6px solid #fff;outline:1px solid var(--line)}
.map iframe{width:100%;height:100%;min-height:380px;border:0;display:block}

/* ---------- Pied de page ---------- */
.footer{background:var(--violet-dd);color:#d9c9e2;padding:64px 0 28px}
.footer__in{display:grid;grid-template-columns:1.4fr 1fr auto;gap:40px;align-items:start}
.footer__logo{display:inline-block;background:#fff;padding:12px 16px;border-radius:16px}
.footer__logo img{height:56px;width:auto}
.footer__brand p{margin-top:18px;max-width:360px;font-size:15px}
.footer__nav{display:grid;gap:10px}
.footer__nav a{text-decoration:none;font-weight:600;color:#fff;opacity:.85}
.footer__nav a:hover{opacity:1;color:#ffb98f}
.footer__social{display:flex;gap:10px}
.footer__social a{display:grid;place-items:center;width:46px;height:46px;border-radius:14px;background:rgba(255,255,255,.08);color:#fff;transition:background .2s}
.footer__social a:hover{background:var(--orange)}
.footer__copy{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 24px;width:min(1200px,100% - 40px);margin:48px auto 0;padding-top:24px;border-top:1px solid rgba(255,255,255,.1);font-size:14px}
.footer__copy p{opacity:.7}
.footer__credit a{color:#ffb98f;font-weight:700;text-decoration:none;border-bottom:1px solid rgba(255,185,143,.5)}
.footer__credit a:hover{color:#fff;border-color:#fff}
.footer__credit{opacity:1 !important}

/* bouton WhatsApp flottant */
.wa-float{position:fixed;right:20px;bottom:20px;z-index:60;width:60px;height:60px;border-radius:50%;display:grid;place-items:center;background:#25d366;color:#fff;box-shadow:0 14px 30px -8px rgba(37,211,102,.7);transition:transform .2s}
.wa-float:hover{transform:scale(1.08)}
.wa-float .ic{width:32px;height:32px}
.wa-float::before{content:"";position:absolute;inset:0;border-radius:50%;border:2px solid #25d366;animation:ping 2.4s ease-out infinite}
@keyframes ping{from{transform:scale(1);opacity:.8}to{transform:scale(1.6);opacity:0}}

/* ---------- Apparitions au défilement ---------- */
.reveal{opacity:0;transform:translateY(34px);transition:opacity .8s cubic-bezier(.22,.8,.24,1), transform .8s cubic-bezier(.22,.8,.24,1);transition-delay:var(--d,0s)}
.reveal--right{transform:translateX(60px)}
.reveal.in{opacity:1;transform:none}
.no-js .reveal{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;transition:none}
  .ticker__track,.chip,.eq i,.wa-float::before{animation:none}
  html{scroll-behavior:auto}
}

/* ---------- Tablette ---------- */
@media (max-width:1024px){
  .hero__grid,.students,.founder,.contact{grid-template-columns:1fr;gap:56px}
  .hero{padding-top:40px}
  .hero__media{order:-1;max-width:760px;width:100%;margin-inline:auto}
  .hero__grid{gap:48px}
  .hero__text{text-align:center}
  .hero__text .lead{margin-inline:auto}
  .hero__ctas,.hero__trust{justify-content:center}
  .hero__trust{text-align:left}
  .features{grid-template-columns:repeat(2,1fr)}
  .promos__grid{grid-template-columns:1fr;gap:28px}
  .promo--b,.promo--b.reveal.in{transform:none}
  .promo--b.reveal{transform:translateX(60px)}
  .students__text{max-width:640px}
  .founder__media{max-width:380px}
  .founder{gap:44px}
  .cta__in{flex-direction:column;align-items:flex-start}
  .cta__btns{flex-direction:row;flex-wrap:wrap}
}

/* ---------- Mobile ---------- */
@media (max-width:820px){
  .burger{display:flex}
  .nav{position:fixed;top:76px;left:0;right:0;flex-direction:column;align-items:stretch;gap:0;padding:12px 20px 24px;background:#fff;box-shadow:0 20px 30px -10px rgba(36,9,47,.2);transform:translateY(-12px);opacity:0;visibility:hidden;transition:.25s}
  .nav.is-open{transform:none;opacity:1;visibility:visible}
  .nav a:not(.btn){padding:14px 4px;border-bottom:1px solid var(--line);font-size:17px}
  .nav a:not(.btn)::after{display:none}
  .nav__cta{margin-top:16px}
}
@media (max-width:640px){
  body{font-size:16px}
  .wrap{width:calc(100% - 32px)}
  .topbar__in{height:68px}
  .nav{top:68px}
  .brand img{height:42px}
  .section{padding:80px 0}
  .hero{padding:34px 0 72px}
  .hero__grid{gap:44px}
  .hero__frame{outline-width:4px;border-radius:22px}
  .hero__ctas .btn{flex:1 1 100%}
  .hero__media::before{inset:18px -8px -14px 14px}
  .chip--grad{left:-4px;bottom:-22px;font-size:13px}
  .chip--wave{right:8px;top:-18px;font-size:13px}
  .features{grid-template-columns:1fr}
  .stage{padding:26px 12px;border-radius:26px;margin-inline:-4px}
  .stage__card{padding:22px 0 20px;border-radius:22px}
  .carousel__viewport{height:380px}
  .slide{width:214px;height:380px;margin-left:-107px}
  .carousel__arrow{width:44px;height:44px;margin-top:-22px}
  .carousel__arrow--prev{left:4px}.carousel__arrow--next{right:4px}
  .steps{gap:10px;margin:20px 16px 0}
  .step b{font-size:24px}
  .founder__media{max-width:300px;padding:0 40px 30px 0}
  .founder__photo::before{inset:-10px 10px 10px -10px}
  .phone{width:46%;border-width:4px;border-radius:20px}
  .footer__copy{width:calc(100% - 32px);flex-direction:column;align-items:center;text-align:center}
  .cta{padding-bottom:80px}
  .cta__in{padding:40px 24px;border-radius:26px}
  .cta__btns{flex-direction:column;width:100%}
  .cta__btns .btn{width:100%;white-space:normal}
  .br-sm{display:inline}
  .map,.map iframe{min-height:300px}
  .footer__in{grid-template-columns:1fr}
  .wa-float{right:16px;bottom:16px;width:56px;height:56px}
}
@media (max-width:380px){
  .pill{font-size:13px;padding:7px 12px;gap:6px}
  .pill strong{white-space:nowrap}
  .chip{font-size:12px;padding:8px 12px}
  .hero h1{font-size:36px}
}

/* espace sous la signature pour le bouton WhatsApp flottant */
@media (max-width:640px){.footer{padding-bottom:96px}}

/* ---------- Anti-débordement horizontal (téléphones) ---------- */
html,body{overflow-x:clip}
@media (max-width:1024px){
  .reveal--right,.promo--b.reveal{transform:translateY(34px)}
  .reveal--right.in,.promo--b.reveal.in{transform:none}
  .hero__blob--v{right:-60px;width:300px;height:300px}
}
