/* ════════════════════════════════════════════════════════════════
   VITRINE STYLE — réplique exacte de references/dashformation_maquette.html.
   Appliqué sur TOUTES les pages publiques (index, formations, formateur-info,
   rejoindre, entreprises/*, mentions, cookies, politique-confidentialite,
   cgu, 404). N'affecte JAMAIS les espaces admin/learner/formateur/builder/
   course/recruteur qui restent sur css/main.css.

   Convention : la page vitrine met <body class="vitrine"> + inclut cette
   feuille AVANT les styles spécifiques. Les helpers js/vitrine.js gèrent
   le nav scroll, le menu mobile, le reveal au scroll, l'auth state et le CMS.
   ════════════════════════════════════════════════════════════════ */

:root{
  --sage:#4E9E7C;
  --sage-dark:#2F7A5F;
  --sage-deep:#1F5C46;
  --sage-light:#BCD9C9;
  --sage-pale:#E4F0EA;
  --bg:#F6F9F6;
  --dark:#16241E;
  --ink:#23302a;
  --muted:#5f6e66;
  --line:rgba(47,122,95,.16);
  --shadow:0 22px 60px -24px rgba(20,70,50,.42);
  --shadow-sm:0 10px 28px -16px rgba(20,70,50,.35);
  --r:22px;
  --display:"Bricolage Grotesque",system-ui,sans-serif;
  --body:"Inter",system-ui,sans-serif;
}
body.vitrine{font-family:var(--body);background:var(--bg);color:var(--ink);line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden;margin:0}
body.vitrine *{box-sizing:border-box}
/* Force Bricolage Grotesque sur tous les titres des pages vitrine (y compris
   entreprises/* qui ont leur propre CSS inline). */
body.vitrine h1,body.vitrine h2,body.vitrine h3,body.vitrine h4{font-family:var(--display);letter-spacing:-.015em}
/* Reset minimal comme la maquette : `a` simple = spécificité (0,0,1).
   IMPORTANT : pas de prefix `body.vitrine` ici sinon (0,1,2) battrait
   `.nav-links a` (0,1,1) et tous les liens hériteraient du noir.
   Cette feuille étant chargée UNIQUEMENT sur les pages .vitrine,
   le selecteur global `a` n'impacte rien d'autre. */
body.vitrine a{}
a{color:inherit;text-decoration:none}
body.vitrine img{display:block;max-width:100%}
.wrap{width:min(1180px,92vw);margin-inline:auto}
.eyebrow{font-weight:600;font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;color:var(--sage-dark);font-family:var(--body)}

/* ── BOUTONS ──
   Spécificité bumpée (.btn.btn-X) pour battre tous les a {color:inherit}
   et les inline styles qui pourraient s'incruster. */
.btn,a.btn{display:inline-flex !important;align-items:center;gap:9px;font-family:var(--body);font-weight:600;font-size:.95rem;
  padding:.78em 1.4em;border-radius:999px;cursor:pointer;border:none;transition:transform .18s,box-shadow .2s,background .2s;text-decoration:none}
.btn .ar{transition:transform .25s}.btn:hover .ar{transform:translateX(4px)}
.btn.btn-primary,a.btn.btn-primary{background:var(--sage-dark) !important;color:#fff !important;box-shadow:0 12px 28px -12px rgba(31,92,70,.55)}
.btn.btn-primary:hover,a.btn.btn-primary:hover{transform:translateY(-2px);background:var(--sage-deep) !important}
.btn.btn-white,a.btn.btn-white{background:#fff !important;color:var(--sage-deep) !important}
.btn.btn-white:hover,a.btn.btn-white:hover{transform:translateY(-2px);box-shadow:0 16px 40px -16px rgba(0,0,0,.35)}
.btn.btn-glass,a.btn.btn-glass{background:rgba(255,255,255,.16) !important;color:#fff !important;border:1px solid rgba(255,255,255,.35);backdrop-filter:blur(6px)}
.btn.btn-glass:hover,a.btn.btn-glass:hover{transform:translateY(-2px);background:rgba(255,255,255,.26) !important}
.btn.btn-ghost,a.btn.btn-ghost{background:#fff !important;color:var(--ink) !important;border:1px solid var(--line)}
.btn.btn-ghost:hover,a.btn.btn-ghost:hover{transform:translateY(-2px);border-color:var(--sage)}

/* ── NAV ──
   !important sur background/border/box-shadow par défaut pour battre les
   anciennes règles `.nav { background: white }` qui traînent dans les
   <style> inline des pages entreprises/. Sinon white-on-white au repos. */
header.nav{position:fixed !important;top:0;left:0;right:0;z-index:60;transition:background .3s,box-shadow .3s;background:transparent !important;border:none !important;box-shadow:none !important;backdrop-filter:none}
.nav-inner{display:flex;align-items:center;justify-content:space-between;height:76px}
.brand{display:flex;align-items:center;gap:11px}
.brand img{height:38px;width:auto;transition:filter .3s;
  /* Logo dark → blanc sur fond sombre du hero. Brightness 0 → silhouette noire, invert(1) → blanche. */
  filter:brightness(0) invert(1)}
header.nav.scrolled .brand img{filter:none}
.brand b{font-family:var(--display);font-weight:700;font-size:1.04rem;letter-spacing:.16em;color:#fff;white-space:nowrap;transition:color .3s}
.nav-links{display:flex;gap:32px;align-items:center}
.nav-links a{font-size:.92rem;font-weight:500;color:#fff;opacity:.9;transition:opacity .2s,color .3s}
.nav-links a:hover{opacity:1}
.nav-cta{display:flex;align-items:center;gap:14px}
.ghost-link{font-size:.92rem;font-weight:600;color:#fff;transition:color .3s;background:none;border:none;cursor:pointer;font-family:var(--body)}
header.nav.scrolled{background:rgba(248,248,246,.92) !important;backdrop-filter:saturate(150%) blur(16px) !important;box-shadow:0 1px 0 var(--line) !important;border-bottom:1px solid var(--line) !important}
header.nav.scrolled .brand b,header.nav.scrolled .nav-links a,header.nav.scrolled .ghost-link{color:var(--dark)}
header.nav.scrolled .ghost-link{color:var(--sage-dark)}
/* !important obligatoire ici : .btn.btn-glass utilise !important sur color/bg pour
   battre body.vitrine a{color:inherit} sur le hero, du coup le scrolled state doit
   réutiliser !important sinon le bouton garde son fond glass invisible sur nav blanche. */
header.nav.scrolled .nav-cta .btn-glass,
header.nav.scrolled .nav-cta a.btn.btn-glass{background:var(--sage-dark) !important;color:#fff !important;border-color:transparent !important;backdrop-filter:none}
.menu-btn{display:none;background:none;border:none;cursor:pointer;padding:8px;z-index:70}
.menu-btn span{display:block;width:22px;height:2px;background:#fff;margin:4px 0;border-radius:2px;transition:background .3s,transform .3s,opacity .3s}
header.nav.scrolled .menu-btn span{background:var(--dark)}
.menu-btn.open span:nth-child(1){transform:translateY(6px) rotate(45deg)}
.menu-btn.open span:nth-child(2){opacity:0}
.menu-btn.open span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}

/* Avatar utilisateur connecté (nav-cta dynamique) */
.avatar{width:36px;height:36px;border-radius:50%;background:var(--sage-dark);color:#fff;display:grid;place-items:center;font-weight:700;font-size:.9rem;font-family:var(--display)}

/* ── HERO (utilisé par index.html) ──
   min-height un peu réduit (640px au lieu de 760) + padding-bottom raccourci (60 au lieu
   de 90) pour que le hero-meta (« 100% / Plusieurs / Qualiopi ») reste visible
   sans scroll même sur des viewports laptop courts (768-800px). */
.hero{position:relative;min-height:640px;display:flex;align-items:center;padding:120px 0 60px;overflow:hidden;color:#fff}
.hero-bg{position:absolute;inset:0;z-index:0}
.hero-bg img{width:100%;height:100%;object-fit:cover}
.hero-bg::after{content:"";position:absolute;inset:0;
  background:linear-gradient(118deg,var(--sage-deep) 0%,rgba(31,92,70,.88) 40%,rgba(78,158,124,.72) 100%)}
.hero-grid{position:relative;z-index:3;display:grid;grid-template-columns:1.05fr .95fr;gap:48px;align-items:center}
.pill{display:inline-flex;align-items:center;gap:9px;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.32);
  padding:.5em 1.05em;border-radius:999px;font-size:.8rem;font-weight:600;color:#fff;line-height:1;
  margin:0 0 0 0;backdrop-filter:blur(6px)}
.hero-copy .pill+h1,.hero-copy .pill+.title{margin-top:8px}
.pill .dot{width:7px;height:7px;border-radius:50%;background:#fff;box-shadow:0 0 0 4px rgba(255,255,255,.25)}
h1.title{font-family:var(--display);font-weight:700;font-size:clamp(2.5rem,5.2vw,4rem);line-height:1.03;letter-spacing:-.02em}
h1.title em{font-style:normal;color:var(--sage-light)}
.hero p.lead{font-size:1.14rem;color:rgba(255,255,255,.88);max-width:40ch;margin:22px 0 32px}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap}
.hero-meta{display:flex;gap:30px;margin-top:40px;flex-wrap:wrap}
.hero-meta .m b{font-family:var(--display);font-weight:700;font-size:1.55rem;line-height:1;display:block;color:#fff}
.hero-meta .m span{font-size:.82rem;color:rgba(255,255,255,.72);margin-top:6px;display:block}

/* Hero compact pour pages internes (formations, rejoindre, mentions, etc.) */
.hero-mini{position:relative;padding:160px 0 80px;color:#fff;overflow:hidden;
  background:linear-gradient(118deg,var(--sage-deep) 0%,var(--sage-dark) 70%,var(--sage) 100%)}
.hero-mini::before{content:"";position:absolute;inset:0;
  background-image:radial-gradient(rgba(255,255,255,.08) 2px,transparent 2px);background-size:24px 24px;opacity:.5}
.hero-mini .wrap{position:relative;z-index:2}
.hero-mini h1{font-family:var(--display);font-weight:700;font-size:clamp(2.2rem,4.5vw,3.4rem);letter-spacing:-.02em;line-height:1.05;margin-bottom:14px}
/* Spacing eyebrow → h1 dans hero-mini : aligné sur le pill + h1 du hero principal. */
.hero-mini .eyebrow{display:inline-block;line-height:1;margin-bottom:8px}
.hero-mini .eyebrow + h1{margin-top:0}
.hero-mini h1 em{font-style:normal;color:var(--sage-light)}
.hero-mini p.lead{font-size:1.1rem;color:rgba(255,255,255,.85);max-width:55ch}

/* Bulles flottantes hero */
.bubbles{position:absolute;inset:0;z-index:2;pointer-events:none}
.bubble{position:absolute;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.28);
  border-radius:20px;backdrop-filter:blur(7px);display:grid;place-items:center;box-shadow:0 10px 30px -12px rgba(0,0,0,.2);
  animation:float 7s ease-in-out infinite}
.bubble svg{width:46%;height:46%;color:#fff;opacity:.92}
.b1{width:86px;height:86px;top:16%;left:7%;animation-delay:0s}
.b2{width:120px;height:120px;top:60%;left:3%;animation-delay:1.2s}
.b3{width:74px;height:74px;top:74%;left:46%;animation-delay:.6s}
.b4{width:96px;height:96px;top:13%;right:40%;animation-delay:1.8s}
.b5{width:80px;height:80px;bottom:16%;right:6%;animation-delay:.9s}
.b6{width:110px;height:110px;top:50%;right:2%;animation-delay:2.2s}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-14px)}}

/* Device mockup hero */
.device{position:relative;z-index:4;justify-self:end;width:100%;max-width:430px}
.screen{background:#fff;border-radius:24px;border:1px solid rgba(255,255,255,.5);box-shadow:var(--shadow);overflow:hidden}
.screen-bar{display:flex;align-items:center;gap:7px;padding:13px 16px;border-bottom:1px solid var(--line);background:var(--bg)}
.screen-bar i{width:9px;height:9px;border-radius:50%;background:var(--sage-light)}
.screen-bar .tag{margin-left:auto;font-size:.7rem;font-weight:600;color:var(--sage-dark);background:var(--sage-pale);padding:.25em .7em;border-radius:999px}
.screen-body{padding:18px}
.course-row{display:flex;align-items:center;gap:12px;padding:12px;border-radius:13px}
.course-row+.course-row{margin-top:6px}
.cr-ico{flex:0 0 36px;height:36px;border-radius:10px;background:var(--sage-pale);display:grid;place-items:center;color:var(--sage-dark);font-family:var(--display);font-weight:700;font-size:.74rem}
.cr-main{flex:1;min-width:0}
.cr-main b{font-size:.84rem;font-weight:600;color:var(--ink);display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cr-main .bar{height:6px;border-radius:999px;background:var(--sage-pale);margin-top:7px;overflow:hidden}
.cr-main .bar i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--sage),var(--sage-dark))}
.cr-pct{font-family:var(--display);font-weight:700;font-size:.8rem;color:var(--sage-dark)}
.float-badge{position:absolute;background:#fff;border-radius:15px;box-shadow:var(--shadow);border:1px solid var(--line);
  padding:12px 15px;z-index:6;display:flex;align-items:center;gap:11px}
.fb1{right:6px;top:20px}.fb2{left:-26px;bottom:30px}
.float-badge .ring{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--sage) 78%,var(--sage-pale) 0)}
.float-badge .ring span{width:24px;height:24px;border-radius:50%;background:#fff;display:grid;place-items:center;font-size:.6rem;font-weight:700;color:var(--sage-dark)}
.float-badge .qbadge{width:32px;height:32px;border-radius:9px;background:var(--sage-dark);color:#fff;display:grid;place-items:center;font-weight:700;font-size:.8rem}
.float-badge .fbtxt b{font-size:.8rem;display:block;color:var(--ink)}
.float-badge .fbtxt span{font-size:.68rem;color:var(--muted)}

/* ── BANDEAU TRUST ── */
.trust{background:var(--sage-dark);color:#fff}
.trust-inner{display:flex;justify-content:space-between;gap:20px;padding:30px 0;flex-wrap:wrap}
.trust .t{display:flex;align-items:center;gap:12px;font-size:.92rem;font-weight:500}
.trust .t .ic{flex:0 0 38px;height:38px;border-radius:11px;background:rgba(255,255,255,.14);display:grid;place-items:center}
.trust .t .ic svg{width:20px;color:#fff}
.trust .t b{font-family:var(--display);font-weight:700;font-size:1.15rem;display:block;line-height:1.1}
.trust .t span{font-size:.82rem;color:rgba(255,255,255,.75)}

/* ── SECTIONS ──
   :not(.hero):not(.hero-mini) pour ne pas écraser le padding spécifique des hero. */
body.vitrine section:not(.hero):not(.hero-mini){padding:96px 0}
.sec-head{max-width:660px;margin-bottom:48px}
.sec-head.center{margin-inline:auto;text-align:center}
.sec-head h2{font-family:var(--display);font-weight:700;font-size:clamp(2rem,3.6vw,2.85rem);line-height:1.06;letter-spacing:-.02em;color:var(--dark);margin:14px 0 16px}
.sec-head h2 em{font-style:normal;color:var(--sage-dark)}
.sec-head p{color:var(--muted);font-size:1.05rem}

/* ── CATALOGUE (formations) ── */
.catalogue{background:var(--sage-pale)}
.cat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.course{background:#fff;border-radius:var(--r);overflow:hidden;border:1px solid rgba(47,122,95,.12);
  transition:transform .25s,box-shadow .25s;display:flex;flex-direction:column}
.course:hover{transform:translateY(-6px);box-shadow:var(--shadow)}
.course .ph{position:relative;height:172px;overflow:hidden;background:linear-gradient(135deg,var(--sage-dark),var(--sage-deep))}
.course .ph img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.course:hover .ph img{transform:scale(1.06)}
.course .ph::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(31,92,70,.08),rgba(31,92,70,.6))}
.course .ph .chip{position:absolute;top:14px;left:14px;z-index:2;background:rgba(255,255,255,.92);color:var(--sage-deep);
  font-weight:700;font-size:.72rem;letter-spacing:.04em;padding:.4em .8em;border-radius:999px}
.course .ph .cert{position:absolute;bottom:14px;left:14px;z-index:2;color:#fff;font-family:var(--display);font-weight:700;font-size:1.15rem}
.course .body{padding:22px;display:flex;flex-direction:column;flex:1}
.course .body p{font-size:.92rem;color:var(--muted);margin-bottom:16px;flex:1}
.course .body .go{font-size:.9rem;font-weight:600;color:var(--sage-dark)}
.course .body .badges{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:16px}
.pill-q{display:inline-flex;align-items:center;gap:5px;background:var(--sage-dark);color:#fff;font-size:.7rem;font-weight:700;padding:.4em .72em;border-radius:999px}
.pill-soft{background:var(--sage-pale);color:var(--sage-deep);font-size:.7rem;font-weight:600;padding:.4em .72em;border-radius:999px}
.cat-foot{text-align:center;margin-top:40px}

/* ── STEPS (4 cercles numérotés + ligne animée) ── */
.steps{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:24px;text-align:center;padding-top:6px}
.steps::before{content:"";position:absolute;top:38px;left:12.5%;right:12.5%;height:3px;background:var(--sage-pale);border-radius:3px;z-index:0}
.steps::after{content:"";position:absolute;top:38px;left:12.5%;height:3px;width:0;background:linear-gradient(90deg,var(--sage),var(--sage-dark));border-radius:3px;z-index:1;transition:width 1.5s cubic-bezier(.5,.05,.2,1) .3s}
.steps.in::after{width:75%}
.step{position:relative;z-index:2;opacity:0;transform:translateY(18px)}
.steps.in .step{opacity:1;transform:none;transition:opacity .55s ease,transform .55s ease}
.steps.in .step:nth-child(1){transition-delay:.15s}
.steps.in .step:nth-child(2){transition-delay:.32s}
.steps.in .step:nth-child(3){transition-delay:.49s}
.steps.in .step:nth-child(4){transition-delay:.66s}
.step .num{position:relative;width:76px;height:76px;border-radius:50%;margin:0 auto 20px;
  background:linear-gradient(135deg,var(--sage),var(--sage-dark));color:#fff;
  font-family:var(--display);font-weight:700;font-size:1.7rem;display:grid;place-items:center;
  box-shadow:0 14px 30px -12px rgba(31,92,70,.65);transition:transform .3s}
.step .num::after{content:"";position:absolute;inset:-7px;border-radius:50%;border:2px solid var(--sage);opacity:0}
.steps.in .step .num::after{animation:ring 2.8s ease-out infinite}
.steps.in .step:nth-child(2) .num::after{animation-delay:.7s}
.steps.in .step:nth-child(3) .num::after{animation-delay:1.4s}
.steps.in .step:nth-child(4) .num::after{animation-delay:2.1s}
.step:hover .num{transform:translateY(-4px) scale(1.06)}
@keyframes ring{0%{opacity:.5;transform:scale(.9)}70%{opacity:0;transform:scale(1.35)}100%{opacity:0}}
.step h3{font-family:var(--display);font-weight:600;font-size:1.15rem;margin-bottom:8px;color:var(--dark)}
.step p{font-size:.9rem;color:var(--muted);max-width:24ch;margin-inline:auto}

/* ── FORMATEUR (dark card LearnWorlds-style) ── */
.formateur{position:relative;border-radius:34px;overflow:hidden;color:#fff;padding:0}
.formateur .fbg{position:absolute;inset:0;z-index:0}
.formateur .fbg img{width:100%;height:100%;object-fit:cover}
.formateur .fbg::after{content:"";position:absolute;inset:0;background:linear-gradient(120deg,var(--dark) 0%,rgba(30,30,30,.92) 38%,rgba(74,99,83,.86) 100%)}
.form-grid{position:relative;z-index:2;display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:center;padding:64px 56px}
.formateur .eyebrow{color:var(--sage-light)}
.formateur h2{font-family:var(--display);font-weight:700;font-size:clamp(1.9rem,3.3vw,2.7rem);letter-spacing:-.02em;line-height:1.07;margin:14px 0 18px}
.formateur h2 em{font-style:normal;color:var(--sage-light)}
.formateur .intro{color:rgba(255,255,255,.78);font-size:1.06rem;max-width:44ch;margin-bottom:28px}
.feat{display:flex;flex-direction:column;gap:14px}
.feat .f{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);border-radius:16px;padding:20px 22px;transition:background .25s,transform .25s}
.feat .f:hover{background:rgba(135,162,144,.2);transform:translateX(5px)}
.feat .f b{font-family:var(--display);font-weight:600;font-size:1.04rem;display:flex;align-items:center;gap:12px}
.feat .f b .ic{width:34px;height:34px;border-radius:10px;background:var(--sage-dark);display:grid;place-items:center;flex:0 0 34px}
.feat .f b .ic svg{width:18px;color:#fff}
.feat .f p{color:rgba(255,255,255,.66);font-size:.9rem;margin-top:9px;padding-left:46px}

/* ── PARTENAIRES (cards 3-col) ── */
.partners{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.partner{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:34px;transition:transform .25s,box-shadow .25s;display:flex;flex-direction:column}
.partner:hover{transform:translateY(-5px);box-shadow:var(--shadow)}
.partner .logo{width:54px;height:54px;border-radius:15px;background:var(--sage-pale);display:grid;place-items:center;font-family:var(--display);font-weight:700;color:var(--sage-dark);font-size:1.05rem;margin-bottom:20px;overflow:hidden}
.partner .logo img{max-width:80%;max-height:80%;object-fit:contain}
.partner h3{font-family:var(--display);font-weight:600;font-size:1.3rem;margin-bottom:12px;color:var(--dark)}
.partner p{font-size:.95rem;color:var(--muted);margin-bottom:22px;flex:1;white-space:pre-wrap}
.partner .links{display:flex;gap:18px;align-items:center;flex-wrap:wrap}
.partner .links a{font-size:.9rem;font-weight:600;color:var(--sage-dark)}
.partner .links a:hover{text-decoration:underline}
.partner .links a.sub{color:var(--muted);font-weight:500}

/* ── FINAL CTA (carte arrondie + dots) ── */
.final-card{position:relative;border-radius:34px;overflow:hidden;padding:78px 40px;color:#fff;text-align:center;
  background:linear-gradient(160deg,var(--sage) 0%,var(--sage-deep) 100%)}
.final-card .pdots{position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.18) 2px,transparent 2px);background-size:24px 24px;opacity:.5}
.final-card>*{position:relative;z-index:2}
.final-card h2{font-family:var(--display);font-weight:700;font-size:clamp(2rem,3.8vw,3rem);letter-spacing:-.02em;line-height:1.06;max-width:20ch;margin:0 auto 18px}
.final-card p{color:rgba(255,255,255,.85);font-size:1.08rem;max-width:48ch;margin:0 auto 32px}
.final-actions{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}

/* ── QUALIOPI ── */
.quali{display:flex;align-items:center;gap:40px;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:38px 44px;margin-top:26px}
.quali .seal{flex:0 0 auto}
.quali .seal img{height:auto;width:auto;max-height:130px;max-width:200px;display:block}
.quali .seal .fallback{height:92px;width:92px;border-radius:18px;background:var(--sage-pale);display:grid;place-items:center;text-align:center;font-family:var(--display);font-weight:700;color:var(--sage-dark);line-height:1.1;font-size:.8rem}
.quali h3{font-family:var(--display);font-weight:600;font-size:1.25rem;margin-bottom:8px;color:var(--dark)}
.quali p{font-size:.92rem;color:var(--muted);margin-bottom:12px}
.quali a{font-size:.9rem;font-weight:600;color:var(--sage-dark)}

/* ── FOOTER ── */
footer.vitrine-footer{background:var(--dark);color:#fff;padding:64px 0 30px;margin-top:96px}
.foot-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:40px;padding-bottom:44px;border-bottom:1px solid rgba(255,255,255,.1)}
.foot-brand .b{display:flex;align-items:center;gap:14px;margin-bottom:18px}
.foot-brand .b img{height:54px;width:auto;filter:brightness(0) invert(1)}
.foot-brand .b b{font-family:var(--display);font-weight:700;letter-spacing:.14em;font-size:.98rem}
.foot-brand p{color:rgba(255,255,255,.6);font-size:.92rem;max-width:30ch}
.foot-brand .addr{margin-top:16px;font-size:.85rem;color:rgba(255,255,255,.5)}
.foot-col h5{font-family:var(--display);font-weight:600;font-size:.92rem;margin-bottom:16px}
.foot-col a{display:block;font-size:.9rem;color:rgba(255,255,255,.6);margin-bottom:11px;transition:color .2s}
.foot-col a:hover{color:var(--sage-light)}
.foot-bottom{display:flex;justify-content:space-between;align-items:center;padding-top:24px;flex-wrap:wrap;gap:14px}
.foot-bottom span{font-size:.84rem;color:rgba(255,255,255,.45)}
.foot-bottom .links{display:flex;gap:20px;flex-wrap:wrap}
.foot-bottom .links a{font-size:.82rem;color:rgba(255,255,255,.5)}
.foot-bottom .links a:hover{color:#fff}

/* ── BLOC PROSE (pages texte : mentions, cgu, cookies, politique) ── */
.prose{max-width:780px;margin:0 auto;color:var(--ink);font-size:1rem;line-height:1.75}
.prose h1{font-family:var(--display);font-weight:700;font-size:clamp(1.9rem,3.5vw,2.5rem);color:var(--dark);margin-bottom:1.2rem;letter-spacing:-.02em}
.prose h2{font-family:var(--display);font-weight:700;font-size:1.45rem;color:var(--dark);margin:2.4rem 0 .9rem;letter-spacing:-.01em}
.prose h3{font-family:var(--display);font-weight:600;font-size:1.15rem;color:var(--dark);margin:1.6rem 0 .6rem}
.prose p{margin-bottom:1rem;color:var(--ink)}
.prose ul,.prose ol{margin:1rem 0 1.2rem 1.25rem;color:var(--ink)}
.prose li{margin-bottom:.5rem}
.prose a{color:var(--sage-dark);font-weight:600}
.prose a:hover{text-decoration:underline}
.prose strong{color:var(--dark);font-weight:700}
.prose blockquote{border-left:3px solid var(--sage);padding:.4rem 0 .4rem 1.2rem;margin:1.2rem 0;color:var(--muted);font-style:italic}
.prose table{width:100%;border-collapse:collapse;margin:1.4rem 0;font-size:.92rem}
.prose th,.prose td{padding:.7rem 1rem;text-align:left;border-bottom:1px solid var(--line)}
.prose th{background:var(--sage-pale);font-family:var(--display);font-weight:600;color:var(--dark)}

/* ── FORMULAIRES (rejoindre, formateur-info) ── */
.vitrine-form{max-width:640px;margin:0 auto;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:40px;box-shadow:var(--shadow-sm)}
.vitrine-form label{display:block;font-size:.82rem;font-weight:700;color:var(--dark);margin-bottom:.4rem;font-family:var(--body)}
.vitrine-form input,.vitrine-form textarea,.vitrine-form select{
  width:100%;padding:.75rem .95rem;border:1px solid var(--line);border-radius:10px;font-size:.95rem;
  font-family:var(--body);background:var(--bg);color:var(--ink);transition:border .15s,background .15s;
  margin-bottom:1.1rem;outline:none}
.vitrine-form input:focus,.vitrine-form textarea:focus,.vitrine-form select:focus{
  border-color:var(--sage);background:#fff;box-shadow:0 0 0 3px rgba(78,158,124,.12)}
.vitrine-form textarea{resize:vertical;min-height:120px;line-height:1.6}
.vitrine-form .actions{display:flex;gap:.75rem;flex-wrap:wrap;margin-top:.5rem}
.vitrine-form .form-help{font-size:.78rem;color:var(--muted);margin-bottom:1.4rem}

/* ── REVEAL ── */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s,transform .7s}
.reveal.in{opacity:1;transform:none}

/* ── RESPONSIVE ── */
@media(max-width:980px){
  .hero-grid,.form-grid,.partners,.foot-grid{grid-template-columns:1fr}
  .cat-grid{grid-template-columns:1fr 1fr}
  .steps{grid-template-columns:1fr 1fr;row-gap:36px}
  .steps::before,.steps::after{display:none}
  .step{opacity:1;transform:none}
  .device{margin:36px auto 0;max-width:400px}
  .form-grid{padding:46px 32px}
  .quali{flex-direction:column;text-align:center}
}
@media(max-width:680px){
  .nav-links,.nav-cta .ghost-link,.nav-cta .btn-glass{display:none}
  .menu-btn{display:block}
  .cat-grid,.steps{grid-template-columns:1fr}
  .foot-bottom{flex-direction:column;align-items:center;text-align:center}
  .foot-grid{text-align:center}
  .foot-brand .b{justify-content:center}
  .foot-brand p,.foot-brand .addr{margin-inline:auto;max-width:30ch}
  body.vitrine section:not(.hero):not(.hero-mini){padding:64px 0}
  .hero{padding-top:104px;min-height:auto}
  .hero-mini{padding:130px 0 60px}
  .hero-meta{justify-content:center;text-align:center}
  .hero-actions{justify-content:center}
  .bubble{display:none}
  .b1,.b5,.b6{display:grid}
  .brand b{font-size:.9rem;letter-spacing:.1em}
  .vitrine-form{padding:28px 20px}
  .nav-inner.mobile-open .nav-links{
    display:flex;position:fixed;top:76px;left:0;right:0;
    flex-direction:column;align-items:center;
    background:rgba(248,248,246,.97);backdrop-filter:blur(18px);
    padding:30px 20px;gap:18px;
    box-shadow:0 12px 30px rgba(0,0,0,.08);border-bottom:1px solid var(--line);
  }
  .nav-inner.mobile-open .nav-links a{color:var(--dark);font-size:1.05rem;font-weight:600}
}
@media(prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
  .reveal,.step{opacity:1;transform:none}
  .steps::after{width:75%}
}
