/* ============================================================
   FORMACONSEILS — par Centaure Avocats
   Système « LE PROGRAMME » : référentiel d'organisme certifié.
   Architecture radicalement distincte du site amiral Centaure :
   colonne latérale fixe + sommaire numéroté + grille documentaire.
   Palette : Centaure (rouge / encre / gris / or). Aucune teinte verte.
   ============================================================ */

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}

:root{
  --cream:#ffffff;          /* fond principal : blanc pur */
  --cream-light:#ffffff;
  --cream-dark:#f0eee9;
  --paper:#f8f7f5;          /* panneaux/encarts : gris quasi imperceptible */
  --on-dark:#f4f1ea;        /* couleur de texte clair sur fonds sombres */
  --ink:#0a0a0a;
  --ink-soft:#2a2a2a;
  --ink-mute:#6a6a6a;
  --red:#cc2535;
  --red-light:#e84c5a;
  --red-deep:#6b0a16;
  --burgundy:#1a0506;
  --grey:#5a5650;
  --grey-soft:#8a847a;
  --gold:#c08a2e;
  --gold-light:#e6b65a;
  --line:rgba(10,10,10,0.11);
  --line-soft:rgba(10,10,10,0.05);
  --line-strong:rgba(10,10,10,0.45);
  --font-display:'Space Grotesk',-apple-system,system-ui,sans-serif;
  --font-body:'Switzer',-apple-system,system-ui,sans-serif;
  --font-mono:'JetBrains Mono',ui-monospace,monospace;
  --ease-out:cubic-bezier(.22,1,.36,1);
  --ease-in-out:cubic-bezier(.76,0,.24,1);
  --sidebar-w:300px;
}

html{scroll-behavior:smooth}
body{
  font-family:var(--font-body);
  background:var(--cream);
  color:var(--ink);
  font-size:16px;line-height:1.6;
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;
  overflow-x:hidden;
}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
button{font:inherit;background:none;border:none;color:inherit;cursor:pointer}
.skip-link{position:absolute;left:-9999px;top:0}
.skip-link:focus{left:0;top:0;padding:10px 16px;background:var(--ink);color:var(--cream);z-index:10000}

/* ====================================================
   STRUCTURE MAÎTRESSE : sidebar fixe + colonne contenu
   ==================================================== */
.shell{display:grid;grid-template-columns:var(--sidebar-w) 1fr;min-height:100vh}

/* ---------- SIDEBAR FIXE ---------- */
.side{
  position:fixed;top:0;left:0;width:var(--sidebar-w);height:100vh;
  background:var(--ink);color:var(--cream);
  display:flex;flex-direction:column;
  padding:38px 34px 30px;z-index:200;
  border-right:1px solid rgba(244,239,230,0.12);
}
.side-brand{display:block}
.side-index{margin-top:auto;margin-bottom:auto}
.side-wordmark{font-family:var(--font-display);font-size:30px;line-height:0.95;letter-spacing:-0.02em;font-weight:400;color:var(--cream)}
.side-wordmark .em{color:var(--red-light);font-weight:500}
.side-tag{font-family:var(--font-mono);font-size:9px;letter-spacing:0.24em;text-transform:uppercase;color:rgba(244,239,230,0.5);margin-top:12px;display:block}
.side-rule{height:1px;background:rgba(244,239,230,0.16);margin:30px 0}

/* sommaire numéroté */
.side-index{list-style:none;display:flex;flex-direction:column;gap:2px}
.side-index a{
  display:grid;grid-template-columns:34px 1fr;align-items:baseline;gap:6px;
  padding:9px 0;font-family:var(--font-mono);font-size:9px;letter-spacing:0.16em;
  text-transform:uppercase;color:rgba(244,239,230,0.55);
  border-top:1px solid rgba(244,239,230,0.1);transition:color .35s,padding-left .35s var(--ease-out);
}
.side-index a .lbl{font-family:var(--font-body);font-size:13px;letter-spacing:0;text-transform:none;color:rgba(244,239,230,0.82);transition:color .35s}
.side-index a:hover{padding-left:6px;color:var(--red-light)}
.side-index a:hover .lbl,.side-index a.active .lbl{color:var(--cream)}
.side-index a.active{color:var(--red-light)}
.side-index a.active::before{content:'';position:absolute}
.side-index{position:relative}
.side-marker{position:absolute;left:-34px;width:3px;background:var(--red);transition:transform .4s var(--ease-out),height .4s var(--ease-out);border-radius:0 2px 2px 0}

.side-foot{margin-top:30px;display:flex;flex-direction:column;gap:14px}
.side-cta{display:inline-flex;align-items:center;justify-content:space-between;gap:10px;background:var(--red);color:var(--cream);padding:13px 18px;font-family:var(--font-mono);font-size:10px;letter-spacing:0.16em;text-transform:uppercase;transition:background .3s}
.side-cta:hover{background:var(--red-deep)}
.side-link-ext{font-family:var(--font-mono);font-size:9px;letter-spacing:0.14em;text-transform:uppercase;color:rgba(244,239,230,0.55);transition:color .3s;display:inline-flex;gap:6px;align-items:center}
.side-link-ext:hover{color:var(--cream)}
.side-qualiopi{display:flex;align-items:center;gap:12px;padding-top:18px;border-top:1px solid rgba(244,239,230,0.14);margin-top:6px}
.side-qualiopi img{width:54px;height:auto;background:var(--cream);padding:5px;border-radius:2px}
.side-qualiopi span{font-family:var(--font-mono);font-size:8px;letter-spacing:0.12em;text-transform:uppercase;color:rgba(244,239,230,0.6);line-height:1.5}

/* mobile topbar (hidden on desktop) */
.topbar{display:none}

/* ---------- COLONNE CONTENU ---------- */
.content{grid-column:2;min-width:0}

/* bloc = unité documentaire, repérée par un numéro § */
.block{position:relative;padding:90px clamp(34px,5vw,90px);border-bottom:1px solid var(--line)}
.block:last-of-type{border-bottom:none}
.block-head{display:grid;grid-template-columns:auto 1fr;gap:22px;align-items:baseline;margin-bottom:48px}
.block-no{font-family:var(--font-mono);font-size:12px;letter-spacing:0.1em;color:var(--red);padding-top:6px}
.block-kicker{font-family:var(--font-mono);font-size:10px;letter-spacing:0.24em;text-transform:uppercase;color:var(--ink-mute);margin-bottom:14px}
.block-title{font-family:var(--font-display);font-weight:400;font-size:clamp(30px,4vw,52px);line-height:1.02;letter-spacing:-0.02em}
.block-title .em{color:var(--red);font-weight:500}
.block-intro{font-size:16px;line-height:1.75;color:var(--ink-soft);max-width:620px;margin-top:20px}

/* ====================================================
   HERO (bloc d'ouverture) — asymétrique, documentaire
   ==================================================== */
.hero{padding:0;border-bottom:1px solid var(--line)}
.hero-top{display:grid;grid-template-columns:1.5fr 1fr;border-bottom:1px solid var(--line)}
.hero-left{padding:70px clamp(34px,5vw,90px) 60px;border-right:1px solid var(--line)}
.hero-ref{font-family:var(--font-mono);font-size:10px;letter-spacing:0.22em;text-transform:uppercase;color:var(--red);margin-bottom:38px;display:flex;gap:14px;flex-wrap:wrap}
.hero-ref .slash{color:var(--ink-mute)}
.hero h1{font-family:var(--font-display);font-weight:400;font-size:clamp(40px,6vw,86px);line-height:0.96;letter-spacing:-0.035em}
.hero h1 .em{color:var(--red);font-weight:500}
.hero-sub{margin-top:34px;font-size:17px;line-height:1.7;color:var(--ink-soft);max-width:560px}
.hero-right{padding:70px clamp(28px,3vw,44px) 28px;background:var(--paper);display:flex;flex-direction:column;justify-content:space-between;gap:30px}
.hero-quote{font-family:var(--font-body);font-style:italic;font-weight:400;font-size:clamp(19px,1.7vw,23px);line-height:1.4;color:var(--ink)}
.hero-quote .mk{color:var(--red);font-size:1.2em;line-height:0;vertical-align:-0.15em}
.hero-quote-sign{font-family:var(--font-mono);font-size:10px;letter-spacing:0.16em;text-transform:uppercase;color:var(--ink-mute);margin-top:20px;padding-top:16px;border-top:1px solid var(--line)}

/* bandeau de stats en ligne, façon fiche technique */
.hero-strip{display:grid;grid-template-columns:repeat(4,1fr)}
.hero-strip > div{padding:30px clamp(20px,2.4vw,40px);border-right:1px solid var(--line)}
.hero-strip > div:last-child{border-right:none}
.hero-strip-num{font-family:var(--font-display);font-size:clamp(30px,3.4vw,46px);line-height:1;letter-spacing:-0.03em}
.hero-strip-num small{font-size:0.42em;color:var(--red);vertical-align:0.5em}
.hero-strip-lbl{font-family:var(--font-mono);font-size:9px;letter-spacing:0.18em;text-transform:uppercase;color:var(--ink-mute);margin-top:12px;line-height:1.5}

/* ====================================================
   DOMAINES — registre numéroté (lignes-fiches)
   ==================================================== */
.registre{border-top:1px solid var(--ink)}
.reg-row{display:grid;grid-template-columns:88px 1.4fr 2fr 90px;gap:28px;align-items:center;padding:30px 0;border-bottom:1px solid var(--line);transition:background .4s,padding-left .4s var(--ease-out);position:relative}
.reg-row::before{content:'';position:absolute;left:0;top:0;bottom:0;width:0;background:var(--red);transition:width .4s var(--ease-out)}
.reg-row:hover{padding-left:24px;background:var(--paper)}
.reg-row:hover::before{width:4px}
.reg-code{font-family:var(--font-mono);font-size:11px;letter-spacing:0.06em;color:var(--red)}
.reg-name{font-family:var(--font-display);font-size:clamp(20px,2.2vw,28px);font-weight:400;line-height:1.1;letter-spacing:-0.01em}
.reg-desc{font-size:14px;line-height:1.6;color:var(--ink-soft)}
.reg-go{font-family:var(--font-mono);font-size:10px;letter-spacing:0.12em;text-transform:uppercase;color:var(--ink-mute);text-align:right;transition:color .3s}
.reg-row:hover .reg-go{color:var(--red)}
@media(max-width:880px){.reg-row{grid-template-columns:60px 1fr;gap:8px 16px}.reg-desc{grid-column:2}.reg-go{display:none}}

/* ====================================================
   FORMATS — cartouches encadrés (pas d'aplat sombre plein)
   ==================================================== */
.cartouches{display:grid;grid-template-columns:repeat(2,1fr);border:1px solid var(--ink)}
.cartouche{padding:40px 38px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
.cartouche:nth-child(2n){border-right:none}
.cartouche:nth-last-child(-n+2){border-bottom:none}
.cartouche-no{font-family:var(--font-mono);font-size:11px;letter-spacing:0.18em;color:var(--red);margin-bottom:24px}
.cartouche-t{font-family:var(--font-display);font-size:25px;font-weight:400;margin-bottom:14px}
.cartouche-t .em{color:var(--red);font-weight:500}
.cartouche-d{font-size:14px;line-height:1.7;color:var(--ink-soft);margin-bottom:18px}
.cartouche-tag{font-family:var(--font-mono);font-size:9px;letter-spacing:0.16em;text-transform:uppercase;color:var(--ink-mute)}
@media(max-width:680px){.cartouches{grid-template-columns:1fr}.cartouche{border-right:none!important}.cartouche:not(:last-child){border-bottom:1px solid var(--line)!important}}

/* ====================================================
   CITATION / MANIFESTE — encadré rouge, pas pleine largeur sombre
   ==================================================== */
.manifeste{border:1px solid var(--ink);border-left:5px solid var(--red);padding:54px clamp(34px,4vw,64px);background:var(--paper);position:relative}
.manifeste-q{font-family:var(--font-display);font-size:clamp(24px,3vw,40px);line-height:1.25;font-weight:400}
.manifeste-q .em{color:var(--red);font-weight:500}
.manifeste-q .mk{color:var(--red);font-size:1.1em}
.manifeste-foot{margin-top:30px;font-family:var(--font-mono);font-size:10px;letter-spacing:0.16em;text-transform:uppercase;color:var(--ink-mute)}

/* ====================================================
   VIDEO
   ==================================================== */
.video-wrap{position:relative;aspect-ratio:16/9;width:100%;border:1px solid var(--ink);overflow:hidden;background:var(--ink)}
.yt-lite{position:absolute;inset:0;background-size:cover;background-position:center;cursor:pointer}
.yt-lite::before{content:'';position:absolute;inset:0;background:rgba(10,10,10,0.25)}
.yt-lite-play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:78px;height:54px;z-index:2}
.yt-lite-play svg{width:100%;height:100%}
.yt-lite-play-bg{fill:var(--red);opacity:0.95;transition:opacity .3s}
.yt-lite:hover .yt-lite-play-bg{opacity:1}
.yt-lite iframe{position:absolute;inset:0;width:100%;height:100%;border:0}

/* ====================================================
   VERBATIMS — colonnes type colonne de presse
   ==================================================== */
.verbatims{columns:2;column-gap:0;border:1px solid var(--ink)}
.verbatim{break-inside:avoid;padding:34px 36px;border-bottom:1px solid var(--line)}
.verbatim:nth-child(odd){border-right:1px solid var(--line)}
.verbatim-stars{color:var(--red);font-size:12px;letter-spacing:3px;margin-bottom:16px}
.verbatim-q{font-family:var(--font-body);font-size:18px;line-height:1.5;font-weight:400;font-style:italic;margin-bottom:16px}
.verbatim-s{font-family:var(--font-mono);font-size:9px;letter-spacing:0.14em;text-transform:uppercase;color:var(--ink-mute)}
@media(max-width:680px){.verbatims{columns:1}.verbatim{border-right:none!important}}

/* ====================================================
   CTA PIED DE BLOC
   ==================================================== */
.endcta{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-top:8px}
.btn{display:inline-flex;align-items:center;gap:12px;font-family:var(--font-mono);font-size:11px;letter-spacing:0.16em;text-transform:uppercase;padding:15px 26px;transition:all .35s}
.btn-red{background:var(--red);color:var(--cream)}
.btn-red:hover{background:var(--red-deep)}
.btn-ghost{border:1px solid var(--ink);color:var(--ink)}
.btn-ghost:hover{background:var(--ink);color:var(--cream)}

/* ====================================================
   CATALOGUE — registre filtrable
   ==================================================== */
.cat-toolbar{display:flex;flex-wrap:wrap;gap:0;border:1px solid var(--ink);margin-bottom:0}
.cat-chip{padding:14px 22px;font-family:var(--font-mono);font-size:10px;letter-spacing:0.12em;text-transform:uppercase;color:var(--ink-mute);border-right:1px solid var(--line);transition:all .3s}
.cat-chip:last-child{border-right:none}
.cat-chip .ct{color:var(--red);margin-left:6px}
.cat-chip:hover{color:var(--ink);background:var(--paper)}
.cat-chip.active{background:var(--ink);color:var(--cream)}
.cat-chip.active .ct{color:var(--red-light)}
.cat-list{border:1px solid var(--ink);border-top:none}
.cat-item{display:grid;grid-template-columns:74px 96px 1fr 110px;gap:24px;align-items:center;padding:26px 26px;border-bottom:1px solid var(--line);transition:background .35s,padding-left .35s var(--ease-out);position:relative}
.cat-item:last-child{border-bottom:none}
.cat-item::before{content:'';position:absolute;left:0;top:0;bottom:0;width:0;background:var(--theme-color,var(--red));transition:width .35s var(--ease-out)}
.cat-item:hover{background:var(--paper);padding-left:42px}
.cat-item:hover::before{width:4px}
.cat-num{font-family:var(--font-mono);font-size:11px;color:var(--ink-mute)}
.cat-code{font-family:var(--font-mono);font-size:10px;letter-spacing:0.06em;color:var(--cream);background:var(--theme-color,var(--red));padding:5px 9px;justify-self:start;border-radius:2px}
.cat-main .cat-t{font-family:var(--font-display);font-size:21px;font-weight:400;line-height:1.15;margin-bottom:5px}
.cat-main .cat-tg{font-size:13.5px;line-height:1.55;color:var(--ink-soft);max-width:640px}
.cat-meta{font-family:var(--font-mono);font-size:10px;letter-spacing:0.06em;color:var(--ink-mute);text-align:right;line-height:1.7}
.cat-item.is-hidden{display:none}
.cat-empty{display:none;padding:50px;text-align:center;font-family:var(--font-mono);font-size:11px;letter-spacing:0.12em;text-transform:uppercase;color:var(--ink-mute);border:1px solid var(--ink);border-top:none}
@media(max-width:880px){.cat-item{grid-template-columns:54px 1fr;gap:6px 14px}.cat-code{grid-row:1;grid-column:1;justify-self:center}.cat-meta{display:none}.cat-item:hover{padding-left:38px}}

/* theme colors : rouge / noir / gris / or */
.t-immobilier{--theme-color:var(--red)}
.t-cac{--theme-color:var(--ink)}
.t-env{--theme-color:var(--gold)}
.t-lib{--theme-color:var(--grey)}
.t-pi{--theme-color:var(--ink)}
.t-enf{--theme-color:var(--gold)}
.t-rh{--theme-color:var(--gold)}

/* ====================================================
   FICHE DÉTAIL
   ==================================================== */
.fiche-top{border-bottom:1px solid var(--ink)}
.fiche-crumb{font-family:var(--font-mono);font-size:10px;letter-spacing:0.14em;text-transform:uppercase;color:var(--ink-mute);padding:28px clamp(34px,5vw,90px) 0;display:flex;gap:10px;flex-wrap:wrap}
.fiche-crumb a:hover{color:var(--red)}
.fiche-head{padding:30px clamp(34px,5vw,90px) 50px;border-left:5px solid var(--theme-color,var(--red))}
.fiche-tag{font-family:var(--font-mono);font-size:10px;letter-spacing:0.16em;text-transform:uppercase;color:var(--theme-color,var(--red));margin-bottom:20px;display:block}
.fiche-h1{font-family:var(--font-display);font-size:clamp(32px,4.4vw,58px);line-height:1.0;letter-spacing:-0.025em;font-weight:400}
.fiche-lead{margin-top:24px;font-size:17px;line-height:1.65;color:var(--ink-soft);max-width:680px}
.fiche-specs{display:grid;grid-template-columns:repeat(4,1fr);border-bottom:1px solid var(--ink)}
.fiche-spec{padding:26px clamp(20px,2.4vw,34px);border-right:1px solid var(--line)}
.fiche-spec:last-child{border-right:none}
.fiche-spec-l{font-family:var(--font-mono);font-size:9px;letter-spacing:0.18em;text-transform:uppercase;color:var(--ink-mute);margin-bottom:10px}
.fiche-spec-v{font-family:var(--font-display);font-size:22px;font-weight:400;line-height:1.1}
.fiche-spec-v small{font-size:0.55em;color:var(--ink-mute)}
.fiche-spec-s{font-size:12px;color:var(--ink-mute);margin-top:5px;line-height:1.5}
@media(max-width:880px){.fiche-specs{grid-template-columns:1fr 1fr}.fiche-spec:nth-child(2n){border-right:none}.fiche-spec:nth-child(-n+2){border-bottom:1px solid var(--line)}}

.fiche-body{display:grid;grid-template-columns:1fr 340px}
.fiche-main{padding:54px clamp(34px,5vw,90px);border-right:1px solid var(--line);min-width:0}
.fiche-section{margin-bottom:54px}
.fiche-section:last-child{margin-bottom:0}
.fiche-sec-label{font-family:var(--font-mono);font-size:10px;letter-spacing:0.2em;text-transform:uppercase;color:var(--red);margin-bottom:26px;display:block}
.obj-list{list-style:none;counter-reset:o}
.obj-list li{counter-increment:o;position:relative;padding:18px 0 18px 56px;border-top:1px solid var(--line);font-size:16px;line-height:1.5}
.obj-list li:last-child{border-bottom:1px solid var(--line)}
.obj-list li::before{content:counter(o,decimal-leading-zero);position:absolute;left:0;top:20px;font-family:var(--font-mono);font-size:11px;color:var(--red)}
.prog-mod{border-top:1px solid var(--line);padding:24px 0}
.prog-mod:last-child{border-bottom:1px solid var(--line)}
.prog-mod-t{font-family:var(--font-display);font-size:21px;font-weight:400;margin-bottom:16px}
.prog-pts{list-style:none}
.prog-pts li{position:relative;padding:7px 0 7px 26px;font-size:14.5px;line-height:1.55;color:var(--ink-soft)}
.prog-pts li::before{content:'';position:absolute;left:0;top:15px;width:11px;height:1px;background:var(--red)}
.prog-pts li.atelier{color:var(--ink)}
.atelier-badge{font-family:var(--font-mono);font-size:8px;letter-spacing:0.1em;text-transform:uppercase;color:var(--gold);border:1px solid var(--gold);border-radius:2px;padding:2px 6px;margin-right:8px}
.prog-pts li.atelier::before{background:var(--gold)}

.fiche-side{padding:54px 34px;background:var(--paper)}
.fiche-side.sticky{position:sticky;top:0;align-self:start}
.sidecard{margin-bottom:30px;padding-bottom:30px;border-bottom:1px solid var(--line)}
.sidecard:last-child{margin-bottom:0;padding-bottom:0;border-bottom:none}
.sidecard-l{font-family:var(--font-mono);font-size:10px;letter-spacing:0.18em;text-transform:uppercase;color:var(--red);margin-bottom:14px}
.sidecard-price{font-family:var(--font-display);font-size:42px;font-weight:400;line-height:1;letter-spacing:-0.02em}
.sidecard-price small{font-size:0.34em;color:var(--ink-mute);letter-spacing:0.04em}
.sidecard-sub{font-size:13px;line-height:1.7;color:var(--ink-mute);margin-top:12px}
.sidecard p{font-size:14px;line-height:1.65;color:var(--ink-soft)}
.sidecard ul{list-style:none}
.sidecard ul li{position:relative;padding:5px 0 5px 18px;font-size:13.5px;line-height:1.5;color:var(--ink-soft)}
.sidecard ul li::before{content:'';position:absolute;left:0;top:13px;width:7px;height:7px;border-radius:50%;background:var(--red)}
.side-devis{display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--red);color:var(--cream);padding:15px 18px;font-family:var(--font-mono);font-size:10px;letter-spacing:0.14em;text-transform:uppercase;margin-top:18px;transition:background .3s}
.side-devis:hover{background:var(--red-deep)}
@media(max-width:980px){.fiche-body{grid-template-columns:1fr}.fiche-main{border-right:none;border-bottom:1px solid var(--line)}.fiche-side.sticky{position:static}}

.fiche-nav{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;border-top:1px solid var(--ink)}
.fiche-nav a{padding:26px 30px;font-family:var(--font-mono);font-size:11px;letter-spacing:0.06em;color:var(--ink-soft);transition:color .3s,background .3s}
.fiche-nav a:hover{color:var(--red);background:var(--paper)}
.fiche-nav a:last-child{text-align:right}
.fiche-nav-mid{font-family:var(--font-mono);font-size:10px;letter-spacing:0.14em;text-transform:uppercase;color:var(--ink-mute);padding:0 24px;border-left:1px solid var(--line);border-right:1px solid var(--line);align-self:stretch;display:flex;align-items:center}
@media(max-width:680px){.fiche-nav{grid-template-columns:1fr}.fiche-nav-mid{display:none}.fiche-nav a{border-bottom:1px solid var(--line);text-align:left!important}}

/* ====================================================
   MÉTHODE — parcours, moyens, engagements
   ==================================================== */
.parcours{border:1px solid var(--ink)}
.parcours-step{display:grid;grid-template-columns:90px 1fr;gap:28px;padding:28px 30px;border-bottom:1px solid var(--line);align-items:baseline;transition:background .35s,padding-left .35s var(--ease-out)}
.parcours-step:last-child{border-bottom:none}
.parcours-step:hover{background:var(--paper);padding-left:46px}
.parcours-no{font-family:var(--font-mono);font-size:11px;color:var(--red)}
.parcours-t{font-family:var(--font-display);font-size:22px;font-weight:400;margin-bottom:6px}
.parcours-d{font-size:14px;line-height:1.6;color:var(--ink-soft)}
.parcours-delay{display:flex;gap:18px;align-items:baseline;flex-wrap:wrap;border:1px solid var(--ink);border-left:5px solid var(--red);padding:24px 28px;margin-top:30px;background:var(--paper)}
.parcours-delay strong{font-family:var(--font-display);font-size:19px;font-weight:600;color:var(--red);letter-spacing:-0.01em}
.parcours-delay span{flex:1;min-width:240px;font-size:14px;line-height:1.6;color:var(--ink-soft)}

.grid-2{display:grid;grid-template-columns:repeat(2,1fr);border:1px solid var(--ink)}
.cell{padding:32px 34px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
.cell:nth-child(2n){border-right:none}
.cell:nth-last-child(-n+2){border-bottom:none}
.cell-no{font-family:var(--font-mono);font-size:10px;letter-spacing:0.2em;color:var(--red);margin-bottom:16px}
.cell-t{font-family:var(--font-display);font-size:21px;font-weight:400;margin-bottom:12px}
.cell-d{font-size:14px;line-height:1.7;color:var(--ink-soft)}
@media(max-width:680px){.grid-2{grid-template-columns:1fr}.cell{border-right:none!important}.cell:not(:last-child){border-bottom:1px solid var(--line)!important}}

.grid-3{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--ink)}
.grid-3 .cell{border-right:1px solid var(--line)}
.grid-3 .cell:nth-child(2n){border-right:1px solid var(--line)}
.grid-3 .cell:nth-child(3n){border-right:none}
.grid-3 .cell:nth-last-child(-n+3){border-bottom:none}
@media(max-width:880px){.grid-3{grid-template-columns:1fr}.grid-3 .cell{border-right:none!important}.grid-3 .cell:not(:last-child){border-bottom:1px solid var(--line)!important}}

/* QUALIOPI feature */
.qualiopi-feat{display:grid;grid-template-columns:300px 1fr;gap:0;border:1px solid var(--ink)}
.qualiopi-mark{padding:44px 40px;border-right:1px solid var(--line);display:flex;flex-direction:column;align-items:flex-start;justify-content:center;background:var(--paper)}
.qualiopi-mark img{max-width:220px;margin-bottom:18px}
.qualiopi-mark .ref{font-family:var(--font-mono);font-size:9px;letter-spacing:0.14em;text-transform:uppercase;color:var(--ink-mute);line-height:1.6}
.qualiopi-txt{padding:44px 40px}
.qualiopi-txt p{font-size:15px;line-height:1.75;color:var(--ink-soft);margin-bottom:16px}
.qualiopi-txt p:last-child{margin-bottom:0}
.qualiopi-txt a{color:var(--red);text-decoration:underline;text-underline-offset:2px}
.qualiopi-txt a:hover{color:var(--ink)}
.agrement-badge{display:flex;flex-direction:column;align-items:flex-start;margin-bottom:18px}
.agrement-rf{font-family:var(--font-display);font-weight:600;font-size:34px;letter-spacing:0.04em;color:var(--ink);line-height:1;border:2px solid var(--ink);padding:8px 14px;border-radius:3px}
.agrement-lbl{font-family:var(--font-mono);font-size:10px;letter-spacing:0.16em;text-transform:uppercase;color:var(--red);margin-top:12px}
.qualiopi-txt strong{color:var(--red);font-weight:500}
@media(max-width:880px){.qualiopi-feat{grid-template-columns:1fr}.qualiopi-mark{border-right:none;border-bottom:1px solid var(--line)}}

/* accessibilité — bandeau encadré rouge */
.accessbox{border:1px solid var(--ink);border-left:5px solid var(--red);background:var(--paper);padding:44px clamp(34px,4vw,56px)}
.accessbox-q{font-family:var(--font-display);font-size:clamp(22px,2.6vw,32px);line-height:1.3;font-weight:400}
.accessbox-q .em{color:var(--red);font-weight:500}
.accessbox-grid{display:grid;grid-template-columns:1fr 1fr;gap:36px;margin-top:32px}
.accessbox-grid h4{font-family:var(--font-mono);font-size:10px;letter-spacing:0.14em;text-transform:uppercase;color:var(--red);margin-bottom:12px}
.accessbox-grid p{font-size:14px;line-height:1.7;color:var(--ink-soft)}
@media(max-width:680px){.accessbox-grid{grid-template-columns:1fr;gap:24px}}

/* ====================================================
   FORMATEURS — planche de portraits
   ==================================================== */
.planche{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--ink)}
.portrait{padding:0;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
.portrait:nth-child(4n){border-right:none}
.portrait-img{aspect-ratio:4/5;background:var(--cream-dark) center top/cover;filter:grayscale(40%) contrast(1.02);transition:filter .5s}
.portrait:hover .portrait-img{filter:grayscale(0)}
.portrait-meta{padding:18px 20px 24px}
.portrait-name{font-family:var(--font-display);font-size:19px;font-weight:400;line-height:1.1;margin-bottom:5px}
.portrait-role{font-family:var(--font-mono);font-size:9px;letter-spacing:0.12em;text-transform:uppercase;color:var(--red);margin-bottom:8px}
.portrait-spec{font-size:13px;line-height:1.5;color:var(--ink-soft)}
.portrait.founder .portrait-role{color:var(--red);font-weight:500}
@media(max-width:880px){.planche{grid-template-columns:repeat(2,1fr)}.portrait:nth-child(4n){border-right:1px solid var(--line)}.portrait:nth-child(2n){border-right:none}}
@media(max-width:480px){.planche{grid-template-columns:1fr}.portrait{border-right:none!important}}

/* ====================================================
   CONTACT
   ==================================================== */
.contact-cols{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--ink)}
.contact-info{padding:48px clamp(28px,3vw,46px);border-right:1px solid var(--line)}
.laetitia-photo{width:128px;height:128px;border-radius:50%;overflow:hidden;margin-bottom:22px;background:var(--cream-dark)}
.laetitia-photo img{width:100%;height:100%;object-fit:cover}
.contact-name{font-family:var(--font-display);font-size:30px;font-weight:400;letter-spacing:-0.015em;margin-bottom:10px}
.contact-role{font-family:var(--font-mono);font-size:10px;letter-spacing:0.14em;text-transform:uppercase;color:var(--red);margin-bottom:22px}
.contact-info > p{font-size:14.5px;line-height:1.7;color:var(--ink-soft);margin-bottom:24px}
.contact-links{padding-top:18px;border-top:1px solid var(--line);font-size:15px;line-height:2.1}
.contact-links a:hover{color:var(--red)}
.contact-block{padding:18px 0;border-bottom:1px solid var(--line)}
.contact-block:first-of-type{border-top:1px solid var(--line)}
.contact-block-l{font-family:var(--font-mono);font-size:9px;letter-spacing:0.16em;text-transform:uppercase;color:var(--red);margin-bottom:8px}
.contact-block-v{font-family:var(--font-display);font-size:18px;line-height:1.35}
.contact-block-d{font-size:12.5px;color:var(--ink-mute);margin-top:5px;line-height:1.55}
.contact-reach{padding:48px clamp(28px,3vw,46px);background:var(--paper);display:flex;flex-direction:column}
.contact-reach-kicker{font-family:var(--font-mono);font-size:10px;letter-spacing:0.2em;text-transform:uppercase;color:var(--red);margin-bottom:22px}
.contact-reach-h{font-family:var(--font-display);font-size:clamp(26px,2.6vw,34px);font-weight:400;line-height:1.05;letter-spacing:-0.02em;margin-bottom:22px}
.contact-reach-h .em{color:var(--red);font-weight:500}
.contact-reach-p{font-size:15px;line-height:1.75;color:var(--ink-soft);margin-bottom:32px;text-align:justify;hyphens:auto;-webkit-hyphens:auto}
.contact-reach-cta{display:inline-flex;align-items:center;justify-content:space-between;gap:14px;background:var(--red);color:var(--cream);padding:18px 24px;font-family:var(--font-mono);font-size:11px;letter-spacing:0.14em;text-transform:uppercase;transition:background .3s}
.contact-reach-cta:hover{background:var(--red-deep)}
.contact-reach-alt{margin-top:24px;padding-top:22px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:8px;font-family:var(--font-mono);font-size:13px;letter-spacing:0.02em}
.contact-reach-alt a{color:var(--ink-soft);transition:color .3s}
.contact-reach-alt a:hover{color:var(--red)}
@media(max-width:780px){.contact-cols{grid-template-columns:1fr}.contact-info{border-right:none;border-bottom:1px solid var(--line)}}

/* ====================================================
   PIED DE PAGE
   ==================================================== */
.foot{background:var(--ink);color:var(--cream);padding:0;margin-left:var(--sidebar-w)}
/* 3 colonnes : Identité · FAQ · Contact */
.foot-cols{display:grid;grid-template-columns:1fr 1fr 1fr;border-bottom:1px solid rgba(244,239,230,0.16)}
.foot-id,.foot-card{padding:48px clamp(30px,3vw,48px)}
.foot-id{border-right:1px solid rgba(244,239,230,0.16)}
.foot-card{border-right:1px solid rgba(244,239,230,0.16);text-decoration:none;color:var(--cream);transition:background .3s;display:block}
.foot-card:last-child{border-right:none}
.foot-card:hover{background:rgba(244,239,230,0.03)}
.foot-word{font-family:var(--font-display);font-size:28px;letter-spacing:-0.02em}
.foot-word .em{color:var(--red-light);font-weight:500}
.foot-id p{font-size:13.5px;line-height:1.7;color:rgba(244,239,230,0.7);margin:14px 0 0}
.foot-sub{font-family:var(--font-mono);font-size:9px;letter-spacing:0.18em;text-transform:uppercase;color:rgba(244,239,230,0.5);margin:20px 0 0}
.foot-centaure{display:inline-block;margin:12px 0 0;opacity:0.95;transition:opacity .3s}
.foot-centaure:hover{opacity:1}
.foot-centaure img{height:44px;width:auto;display:block}
.foot-social{display:flex;gap:8px;margin-top:22px;flex-wrap:wrap}
.foot-social a{width:34px;height:34px;border:1px solid rgba(244,239,230,0.2);display:flex;align-items:center;justify-content:center;transition:all .3s;color:var(--cream)}
.foot-social a svg{width:15px;height:15px}
.foot-social a:hover{background:var(--red);border-color:var(--red)}
.foot-card-kick{font-family:var(--font-mono);font-size:10px;letter-spacing:0.18em;text-transform:uppercase;color:var(--red-light);margin-bottom:14px}
.foot-card-t{font-family:var(--font-display);font-weight:400;font-size:clamp(24px,2.4vw,30px);line-height:1.05;letter-spacing:-0.02em;margin-bottom:12px}
.foot-card-t .em{color:var(--red-light)}
.foot-card-d{font-size:14px;line-height:1.7;color:rgba(244,239,230,0.66);margin-bottom:22px}
.foot-card-arrow{font-family:var(--font-mono);font-size:11px;letter-spacing:0.1em;text-transform:uppercase;display:inline-flex;align-items:center;gap:10px;color:var(--cream)}
.foot-card-arrow span{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border:1px solid rgba(244,239,230,0.3);transition:all .3s}
.foot-card:hover .foot-card-arrow span{background:var(--red);border-color:var(--red);transform:translateX(3px)}
.foot-legal{padding:22px clamp(34px,5vw,64px);font-family:var(--font-mono);font-size:9px;letter-spacing:0.08em;text-transform:uppercase;color:rgba(244,239,230,0.45);line-height:1.7}
.foot-legal a{color:rgba(244,239,230,0.6);text-decoration:none;transition:color .3s}
.foot-legal a:hover{color:var(--cream)}
@media(max-width:900px){.foot-cols{grid-template-columns:1fr}.foot-id,.foot-card{border-right:none;border-bottom:1px solid rgba(244,239,230,0.16)}.foot-card:last-child{border-bottom:none}}

/* ====================================================
   REVEAL
   ==================================================== */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .9s var(--ease-out),transform .9s var(--ease-out)}
.reveal.in{opacity:1;transform:translateY(0)}

/* ====================================================
   RESPONSIVE — bascule sidebar -> topbar
   ==================================================== */
@media(max-width:1024px){
  :root{--sidebar-w:0px}
  .shell{grid-template-columns:1fr}
  .content{grid-column:1}
  .side{position:fixed;left:0;right:0;top:0;width:100%;height:auto;flex-direction:row;align-items:center;justify-content:space-between;padding:14px 20px;border-right:none;border-bottom:1px solid rgba(244,239,230,0.16)}
  .side-brand{margin-bottom:0}
  .side-wordmark{font-size:22px}
  .side-tag,.side-rule,.side-index,.side-marker,.side-foot{display:none}
  .topbar{display:flex;align-items:center;gap:16px}
  .topbar .side-cta{padding:10px 16px}
  .topbar-menu{width:26px;height:18px;position:relative;cursor:pointer}
  .topbar-menu span{position:absolute;left:0;width:100%;height:2px;background:var(--cream);transition:.3s}
  .topbar-menu span:nth-child(1){top:0}
  .topbar-menu span:nth-child(2){top:8px}
  .topbar-menu span:nth-child(3){top:16px}
  .content{padding-top:58px}
  .hero-top{grid-template-columns:1fr}
  .hero-left{border-right:none;border-bottom:1px solid var(--line)}
  .hero-strip{grid-template-columns:1fr 1fr}
  .hero-strip > div:nth-child(2n){border-right:none}
  .hero-strip > div:nth-child(-n+2){border-bottom:1px solid var(--line)}
  .block{padding:64px clamp(20px,5vw,40px)}
  .mobile-menu{position:fixed;inset:58px 0 auto 0;background:var(--ink);z-index:190;padding:20px;transform:translateY(-120%);transition:transform .4s var(--ease-out);border-bottom:1px solid rgba(244,239,230,0.2)}
  .mobile-menu.open{transform:translateY(0)}
  .mobile-menu a{display:block;padding:12px 0;color:rgba(244,239,230,0.85);font-family:var(--font-mono);font-size:12px;letter-spacing:0.1em;text-transform:uppercase;border-bottom:1px solid rgba(244,239,230,0.12)}
}
.mobile-menu{display:none}
@media(max-width:1024px){.mobile-menu{display:block}}

/* ====================================================
   JUSTIFICATION DU TEXTE COURANT (toutes pages)
   ==================================================== */
.hero-sub,
.block-intro,
.manifeste-q,
.reg-desc,
.cartouche-d,
.cell-d,
.parcours-d,
.parcours-delay span,
.qualiopi-txt p,
.accessbox-q,
.accessbox-grid p,
.fiche-lead,
.obj-list li,
.prog-pts li,
.sidecard p,
.sidecard-sub,
.portrait-spec,
.verbatim-q,
.contact-info > p,
.contact-block-d,
.agenda-note,
.sessions-none,
.hero-agenda-note,
.equipe-cap p,
.bienvenue-cap p,
.outil-card-d,
.tool-question,
.foot-brand p{
  text-align:justify;
  -webkit-hyphens:auto;
  -ms-hyphens:auto;
  hyphens:auto;
}

/* ====================================================
   ESPACE GROTESK — ajustements d'optique pour les titres
   ==================================================== */
.block-title,.hero h1,.fiche-h1,.contact-reach-h,.cartouche-t,.parcours-t,.cell-t,.portrait-name,.reg-name,.foot-word,.side-wordmark{letter-spacing:-0.03em}
.hero h1{letter-spacing:-0.045em;line-height:0.95}


/* ====================================================
   ILS NOUS FONT CONFIANCE — mur de logos typographiques
   ==================================================== */
.confiance{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--ink)}
.confiance-cell{display:flex;align-items:center;justify-content:center;text-align:center;padding:34px 22px;min-height:120px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);font-family:var(--font-display);font-weight:600;font-size:16px;letter-spacing:-0.01em;color:var(--ink);transition:background .35s,color .35s}
.confiance-cell:hover{background:var(--ink);color:var(--cream)}
.confiance-cell:nth-child(4n){border-right:none}
.confiance-cell:nth-last-child(-n+4){border-bottom:none}
@media(max-width:880px){.confiance{grid-template-columns:repeat(2,1fr)}.confiance-cell:nth-child(4n){border-right:1px solid var(--line)}.confiance-cell:nth-child(2n){border-right:none}.confiance-cell:nth-last-child(-n+4){border-bottom:1px solid var(--line)}.confiance-cell:nth-last-child(-n+2){border-bottom:none}}
@media(max-width:480px){.confiance{grid-template-columns:1fr}.confiance-cell{border-right:none!important}.confiance-cell:not(:last-child){border-bottom:1px solid var(--line)!important}}

/* ====================================================
   OUTILS — base commune
   ==================================================== */
.outil{border:1px solid var(--ink);background:var(--cream-light)}
.outil-pad{padding:clamp(28px,4vw,52px)}
.tool-q-label{font-family:var(--font-mono);font-size:10px;letter-spacing:0.18em;text-transform:uppercase;color:var(--red);margin-bottom:18px;display:block}
.tool-step{display:none}
.tool-step.active{display:block;animation:toolfade .4s var(--ease-out)}
@keyframes toolfade{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.tool-question{font-family:var(--font-display);font-size:clamp(22px,2.6vw,30px);font-weight:600;letter-spacing:-0.02em;line-height:1.1;margin-bottom:28px}
.tool-options{display:grid;gap:12px}
.tool-options.cols-2{grid-template-columns:1fr 1fr}
.tool-opt{text-align:left;border:1px solid var(--line);background:var(--cream);padding:18px 20px;font-size:15px;color:var(--ink);transition:all .25s;display:flex;align-items:center;gap:14px}
.tool-opt:hover{border-color:var(--ink);background:#fff}
.tool-opt.selected{border-color:var(--red);background:#fff;box-shadow:inset 3px 0 0 var(--red)}
.tool-opt .mono{font-family:var(--font-mono);font-size:11px;color:var(--ink-mute)}
.tool-progress{height:3px;background:var(--line-soft);margin-bottom:36px;position:relative;overflow:hidden}
.tool-progress span{position:absolute;left:0;top:0;bottom:0;background:var(--red);transition:width .45s var(--ease-out)}
.tool-nav{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-top:32px;flex-wrap:wrap}
.tool-back{font-family:var(--font-mono);font-size:11px;letter-spacing:0.1em;text-transform:uppercase;color:var(--ink-mute);transition:color .3s}
.tool-back:hover{color:var(--red)}
.tool-back[disabled]{opacity:0.3;pointer-events:none}
.tool-field{margin-bottom:20px}
.tool-field label{display:block;font-family:var(--font-mono);font-size:9px;letter-spacing:0.16em;text-transform:uppercase;color:var(--ink-mute);margin-bottom:8px}
.tool-field input,.tool-field select,.tool-field textarea{width:100%;padding:13px 15px;background:var(--cream);border:1px solid var(--line);font:inherit;font-size:14px;color:var(--ink);font-family:var(--font-body)}
.tool-field input:focus,.tool-field select:focus,.tool-field textarea:focus{outline:none;border-color:var(--red)}
.tool-range{width:100%;accent-color:var(--red)}
.tool-rangeval{font-family:var(--font-display);font-size:30px;font-weight:600;color:var(--red);letter-spacing:-0.02em}

/* synthèse */
.tool-synth{border-top:1px solid var(--line);margin-top:0}
.synth-row{display:grid;grid-template-columns:200px 1fr;gap:20px;padding:16px 0;border-bottom:1px solid var(--line)}
.synth-row dt{font-family:var(--font-mono);font-size:10px;letter-spacing:0.12em;text-transform:uppercase;color:var(--ink-mute);padding-top:3px}
.synth-row dd{font-size:15px;color:var(--ink);font-weight:500}
.synth-kpis{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--ink);margin:28px 0}
.synth-kpi{padding:24px;border-right:1px solid var(--line)}
.synth-kpi:last-child{border-right:none}
.synth-kpi-num{font-family:var(--font-display);font-size:34px;font-weight:700;letter-spacing:-0.03em;line-height:1;color:var(--red)}
.synth-kpi-lbl{font-family:var(--font-mono);font-size:9px;letter-spacing:0.14em;text-transform:uppercase;color:var(--ink-mute);margin-top:10px}
@media(max-width:680px){.tool-options.cols-2{grid-template-columns:1fr}.synth-row{grid-template-columns:1fr;gap:4px}.synth-kpis{grid-template-columns:1fr}.synth-kpi{border-right:none;border-bottom:1px solid var(--line)}.synth-kpi:last-child{border-bottom:none}}

/* recherche conversationnelle */
.search-box{display:flex;gap:0;border:1px solid var(--ink);margin-bottom:8px}
.search-box input{flex:1;border:none;padding:20px 22px;font-size:17px;font-family:var(--font-body);background:var(--cream-light);color:var(--ink)}
.search-box input:focus{outline:none}
.search-box button{background:var(--red);color:var(--cream);padding:0 28px;font-family:var(--font-mono);font-size:12px;letter-spacing:0.1em;text-transform:uppercase;transition:background .3s}
.search-box button:hover{background:var(--red-deep)}
.search-hints{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:28px}
.search-hint{font-family:var(--font-mono);font-size:11px;color:var(--ink-mute);border:1px solid var(--line);padding:7px 12px;transition:all .25s;cursor:pointer}
.search-hint:hover{border-color:var(--red);color:var(--red)}
.search-results{display:flex;flex-direction:column;gap:0;border:1px solid var(--ink);border-top:none}
.search-result{display:grid;grid-template-columns:72px 1fr 150px 86px;gap:18px;align-items:center;padding:22px 24px;border-bottom:1px solid var(--line);transition:background .3s,padding-left .3s var(--ease-out);position:relative}
.search-when{display:flex;flex-direction:column;gap:3px;text-align:right}
.sw-date{font-family:var(--font-mono);font-size:12px;font-weight:500;color:var(--ink)}
.sw-venue{font-family:var(--font-mono);font-size:9px;letter-spacing:0.08em;text-transform:uppercase;color:var(--red)}
.sw-past{font-family:var(--font-mono);font-size:10px;color:var(--ink-mute);line-height:1.3}
@media(max-width:680px){.search-result{grid-template-columns:1fr auto}.search-when{text-align:left}.search-result .search-score{display:none}}
.search-result:last-child{border-bottom:none}
.search-result::before{content:'';position:absolute;left:0;top:0;bottom:0;width:0;background:var(--theme-color,var(--red));transition:width .3s}
.search-result:hover{background:var(--paper);padding-left:38px}
.search-result:hover::before{width:4px}
.search-score{font-family:var(--font-mono);font-size:9px;letter-spacing:0.08em;color:var(--red);text-align:right}
.search-empty{padding:30px 24px;font-family:var(--font-mono);font-size:12px;color:var(--ink-mute);border:1px solid var(--ink);border-top:none}

/* carte des références */
.map-layout{display:grid;grid-template-columns:1fr 360px;border:1px solid var(--ink)}
#refMap{height:560px;background:var(--paper)}
.map-side{border-left:1px solid var(--line);display:flex;flex-direction:column;min-height:0}
.map-filters{padding:20px;border-bottom:1px solid var(--line);display:flex;flex-wrap:wrap;gap:8px}
.map-filter{font-family:var(--font-mono);font-size:10px;letter-spacing:0.06em;text-transform:uppercase;border:1px solid var(--line);padding:8px 12px;color:var(--ink-mute);transition:all .25s}
.map-filter.active{background:var(--ink);color:var(--cream);border-color:var(--ink)}
.map-list{overflow-y:auto;flex:1;max-height:480px}
.map-item{padding:16px 20px;border-bottom:1px solid var(--line);cursor:pointer;transition:background .25s}
.map-item:hover{background:var(--paper)}
.map-item-name{font-family:var(--font-display);font-size:15px;font-weight:600;letter-spacing:-0.01em;margin-bottom:4px}
.map-item-meta{font-family:var(--font-mono);font-size:9px;letter-spacing:0.1em;text-transform:uppercase;color:var(--red);margin-bottom:6px}
.map-item-desc{font-size:12.5px;line-height:1.5;color:var(--ink-soft)}
.leaflet-popup-content{font-family:var(--font-body);font-size:13px}
.leaflet-popup-content b{font-family:var(--font-display)}
@media(max-width:880px){.map-layout{grid-template-columns:1fr}#refMap{height:380px}.map-side{border-left:none;border-top:1px solid var(--line)}}

/* grille des 4 outils sur la page outils */
.outils-grid{display:grid;grid-template-columns:repeat(2,1fr);border:1px solid var(--ink)}
.outil-card{padding:38px 36px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);transition:background .35s;position:relative}
.outil-card:nth-child(2n){border-right:none}
.outil-card:nth-last-child(-n+2){border-bottom:none}
.outil-card:hover{background:var(--paper)}
.outil-card-no{font-family:var(--font-mono);font-size:11px;letter-spacing:0.18em;color:var(--red);margin-bottom:18px}
.outil-card-t{font-family:var(--font-display);font-size:24px;font-weight:600;letter-spacing:-0.02em;margin-bottom:12px}
.outil-card-d{font-size:14.5px;line-height:1.7;color:var(--ink-soft);margin-bottom:20px}
.outil-card-go{font-family:var(--font-mono);font-size:11px;letter-spacing:0.1em;text-transform:uppercase;color:var(--red);display:inline-flex;gap:8px;align-items:center}
@media(max-width:680px){.outils-grid{grid-template-columns:1fr}.outil-card{border-right:none!important}.outil-card:not(:last-child){border-bottom:1px solid var(--line)!important}}

/* ====================================================
   NOS SALLES — galerie inter (Saint-Ouen & Lille)
   ==================================================== */
.salles-intro{margin-top:48px;max-width:760px}
.salles-gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:2px;margin-top:28px;background:var(--line);border:1px solid var(--ink)}
.salle{background:var(--cream-light);display:flex;flex-direction:column}
.salle-img{aspect-ratio:3/2;background-size:cover;background-position:center;background-color:var(--paper);filter:saturate(1.02)}
.salle figcaption{padding:18px 20px;display:flex;flex-direction:column;gap:3px}
.salle-city{font-family:var(--font-mono);font-size:9px;letter-spacing:0.14em;text-transform:uppercase;color:var(--red)}
.salle-name{font-family:var(--font-display);font-size:19px;font-weight:600;letter-spacing:-0.02em;color:var(--ink)}
.salle-cap{font-family:var(--font-mono);font-size:11px;color:var(--ink-mute)}
.salles-credit{font-family:var(--font-mono);font-size:10px;letter-spacing:0.06em;color:var(--grey-soft);margin-top:16px}
@media(max-width:980px){.salles-gallery{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.salles-gallery{grid-template-columns:1fr}}

/* ====================================================
   KIT DE COMMUNICATION — QR codes téléchargeables
   ==================================================== */
.qr-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:2px;margin-top:32px;background:var(--line);border:1px solid var(--ink)}
.qr-card{background:var(--cream-light);display:flex;flex-direction:column;align-items:center;padding:24px 16px;text-align:center}
.qr-card img{width:100%;max-width:140px;height:auto;aspect-ratio:1;background:#fff;padding:8px;border:1px solid var(--line-soft)}
.qr-card figcaption{display:flex;flex-direction:column;gap:3px;margin-top:14px;width:100%}
.qr-name{font-family:var(--font-display);font-size:16px;font-weight:600;letter-spacing:-0.01em;color:var(--ink)}
.qr-dest{font-family:var(--font-mono);font-size:9px;letter-spacing:0.1em;text-transform:uppercase;color:var(--ink-mute)}
.qr-dl{display:flex;justify-content:center;gap:6px;margin-top:10px}
.qr-dl a{font-family:var(--font-mono);font-size:10px;letter-spacing:0.06em;text-transform:uppercase;color:var(--red);border:1px solid var(--line);padding:5px 9px;transition:all .25s}
.qr-dl a:hover{border-color:var(--red);background:var(--red);color:var(--cream-light)}
@media(max-width:900px){.qr-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:560px){.qr-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:360px){.qr-grid{grid-template-columns:1fr}}

/* ====================================================
   PHOTO DE GROUPE — bandeau équipe (Notre méthode)
   ==================================================== */
.equipe-band{border:1px solid var(--ink);background:var(--ink);overflow:hidden}
.equipe-img{width:100%;aspect-ratio:16/8;background-size:cover;background-position:center 38%;background-color:var(--burgundy)}
.equipe-cap{display:flex;align-items:baseline;gap:28px;padding:26px 30px;background:var(--ink);color:var(--on-dark);flex-wrap:wrap}
.equipe-kicker{font-family:var(--font-mono);font-size:10px;letter-spacing:0.16em;text-transform:uppercase;color:var(--red-light);white-space:nowrap;flex-shrink:0}
.equipe-cap p{font-size:15px;line-height:1.6;color:var(--on-dark);max-width:760px;text-align:left;hyphens:none}
.equipe-cap a{color:var(--red-light);white-space:nowrap}
.equipe-cap a:hover{color:#fff}
@media(max-width:680px){.equipe-img{aspect-ratio:4/3}.equipe-cap{flex-direction:column;gap:10px}}

/* ====================================================
   LOGO FormaConseils — sous la citation du hero (accueil)
   ==================================================== */
.hero-logo{display:block;width:172px;height:172px;margin:64px auto 0}
@media(max-width:900px){.hero-logo{width:140px;height:140px;margin-top:48px}}

/* ====================================================
   PHOTO BIENVENUE — carte contact (taille contenue = nette)
   ==================================================== */
.bienvenue-card{display:grid;grid-template-columns:minmax(0,1.4fr) 1fr;border:1px solid var(--ink);background:var(--cream-light);align-items:stretch}
.bienvenue-img{aspect-ratio:3/2;background-size:cover;background-position:center;background-color:var(--paper)}
.bienvenue-cap{display:flex;flex-direction:column;justify-content:center;gap:14px;padding:32px 34px;border-left:1px solid var(--line)}
.bienvenue-cap p{font-size:15px;line-height:1.7;color:var(--ink-soft)}
@media(max-width:760px){.bienvenue-card{grid-template-columns:1fr}.bienvenue-cap{border-left:none;border-top:1px solid var(--line)}}

/* ====================================================
   SESSIONS programmées — dates & inscription
   ==================================================== */
/* badge date+lieu dans la liste catalogue */
.cat-next{display:flex;flex-direction:column;gap:3px;min-width:150px;text-align:right}
.cat-next-date{font-family:var(--font-mono);font-size:12px;color:var(--ink);font-weight:500}
.cat-next-venue{font-family:var(--font-mono);font-size:10px;letter-spacing:0.06em;text-transform:uppercase;color:var(--red)}
.cat-next-none{font-family:var(--font-mono);font-size:10px;color:var(--ink-mute)}
@media(max-width:680px){.cat-next{text-align:left;min-width:0}}

/* liste des sessions sur la fiche */
.sessions-block{margin-top:8px}
.session-row{display:grid;grid-template-columns:1fr auto;gap:16px;align-items:center;padding:14px 0;border-bottom:1px solid var(--line)}
.session-row:last-child{border-bottom:none}
.session-when{display:flex;flex-direction:column;gap:2px}
.session-date{font-family:var(--font-display);font-size:16px;font-weight:600;letter-spacing:-0.01em}
.session-venue{font-family:var(--font-mono);font-size:10px;letter-spacing:0.1em;text-transform:uppercase;color:var(--red)}
.session-cta{font-family:var(--font-mono);font-size:11px;letter-spacing:0.08em;text-transform:uppercase;color:var(--cream);background:var(--ink);padding:9px 16px;white-space:nowrap;transition:background .25s}
.session-cta:hover{background:var(--red)}
.sessions-none{font-size:14px;color:var(--ink-soft);line-height:1.6}

/* bloc Prochaines sessions sur l'accueil */
.agenda{display:flex;flex-direction:column;border:1px solid var(--ink)}
.agenda-row{display:grid;grid-template-columns:120px 1fr auto;gap:20px;align-items:center;padding:18px 22px;border-bottom:1px solid var(--line);transition:background .25s}
.agenda-row:last-child{border-bottom:none}
.agenda-row:hover{background:var(--paper)}
.agenda-date{font-family:var(--font-mono);font-size:12px;color:var(--ink);font-weight:500;line-height:1.4}
.agenda-date small{display:block;color:var(--red);font-size:10px;letter-spacing:0.08em;text-transform:uppercase;margin-top:2px}
.agenda-main{min-width:0}
.agenda-title{font-family:var(--font-display);font-size:17px;font-weight:600;letter-spacing:-0.01em}
.agenda-meta{font-family:var(--font-mono);font-size:10px;letter-spacing:0.06em;text-transform:uppercase;color:var(--ink-mute);margin-top:3px}
.agenda-cta{font-family:var(--font-mono);font-size:11px;letter-spacing:0.08em;text-transform:uppercase;color:var(--red);white-space:nowrap}
.agenda-cta:hover{color:var(--ink)}
.agenda-empty{padding:22px;font-size:14px;color:var(--ink-soft);line-height:1.6}
.agenda-note{font-size:13px;color:var(--ink-soft);line-height:1.6;margin-top:18px}
@media(max-width:680px){.agenda-row{grid-template-columns:1fr;gap:6px}.agenda-cta{justify-self:start}}

/* ====================================================
   HERO — agenda compact (prochaines sessions)
   ==================================================== */
.hero-agenda-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:16px}
.hero-agenda-kicker{font-family:var(--font-mono);font-size:10px;letter-spacing:0.16em;text-transform:uppercase;color:var(--red)}
.hero-agenda-all{font-family:var(--font-mono);font-size:10px;letter-spacing:0.06em;text-transform:uppercase;color:var(--ink-mute);white-space:nowrap}
.hero-agenda-all:hover{color:var(--red)}
.hero-agenda{display:flex;flex-direction:column;border-top:1px solid var(--line)}
.hero-agenda-row{display:grid;grid-template-columns:96px 1fr;gap:14px;align-items:baseline;padding:14px 0;border-bottom:1px solid var(--line)}
.hra-when{display:flex;flex-direction:column;gap:2px;white-space:nowrap}
.hra-date{font-family:var(--font-mono);font-size:11px;font-weight:500;color:var(--red)}
.hra-venue{font-family:var(--font-mono);font-size:9px;letter-spacing:0.08em;text-transform:uppercase;color:var(--ink-mute)}
.hra-main{display:flex;flex-direction:column;gap:3px;min-width:0}
.hra-title{font-family:var(--font-display);font-size:15px;font-weight:600;letter-spacing:-0.01em;color:var(--ink);line-height:1.2;text-decoration:none}
.hra-title:hover{color:var(--red)}
.hra-acts{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}
.hra-acts a{font-family:var(--font-mono);font-size:10px;letter-spacing:0.06em;text-transform:uppercase;color:var(--ink-mute);white-space:nowrap}
.hra-acts a:hover{color:var(--ink)}
.hra-sep{color:var(--line-strong);font-size:10px}
.hra-go{color:var(--red)!important}
.hra-go:hover{color:var(--red-deep)!important}
.hero-agenda-note{font-size:11px;line-height:1.5;color:var(--ink-mute);margin-top:14px}
.hero-agenda-empty{font-size:13px;color:var(--ink-soft);padding:16px 0;line-height:1.5}
.hero-logo{display:block;width:128px;height:128px;margin:18px auto 0}
@media(max-width:900px){.hero-logo{width:104px;height:104px;margin-top:18px}}

/* ====================================================
   Carte "Prochaines sessions" en tête de la sidebar fiche
   ==================================================== */
.sidecard-sessions{border:1px solid var(--ink);background:var(--cream-light);padding:18px 18px 8px}
.sidecard-sessions .sidecard-l{color:var(--red)}
.sidecard-sessions .session-row{grid-template-columns:1fr;gap:8px;padding:12px 0;align-items:start}
.sidecard-sessions .session-when{gap:2px}
.sidecard-sessions .session-date{font-size:15px}
.sidecard-sessions .session-cta{justify-self:start;padding:7px 13px;font-size:10px}
.sidecard-sessions .sessions-none{font-size:12.5px}

/* Sessions passées (calendrier annuel de référence) */
.cat-next-date.is-past, .session-date.is-past{color:var(--ink-mute);opacity:0.75}
.cat-next-venue.is-past, .session-venue.is-past{color:var(--grey-soft)}
.session-passed{font-family:var(--font-mono);font-size:10px;letter-spacing:0.08em;text-transform:uppercase;color:var(--ink-mute);white-space:nowrap}

/* ====================================================
   CHIFFRES-CLÉS (FormaConseils en chiffres)
   ==================================================== */
.chiffres{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--ink)}
.chiffre{padding:38px 24px;border-right:1px solid var(--line);text-align:left}
.chiffre:last-child{border-right:none}
.chiffre-num{font-family:var(--font-display);font-size:clamp(40px,5vw,64px);font-weight:700;line-height:1;letter-spacing:-0.03em;color:var(--red)}
.chiffre-num small{font-size:0.45em;font-weight:600;vertical-align:0.5em}
.chiffre-lbl{font-family:var(--font-mono);font-size:11px;letter-spacing:0.1em;text-transform:uppercase;color:var(--ink-mute);margin-top:14px;line-height:1.5}
.chiffres-certifs{display:flex;flex-wrap:wrap;gap:12px;margin-top:22px}
.certif-badge{font-family:var(--font-mono);font-size:11px;letter-spacing:0.08em;text-transform:uppercase;color:var(--ink);border:1px solid var(--line);padding:9px 16px}
@media(max-width:820px){.chiffres{grid-template-columns:repeat(2,1fr)}.chiffre:nth-child(2){border-right:none}.chiffre:nth-child(1),.chiffre:nth-child(2){border-bottom:1px solid var(--line)}}
@media(max-width:460px){.chiffres{grid-template-columns:1fr}.chiffre{border-right:none;border-bottom:1px solid var(--line)}.chiffre:last-child{border-bottom:none}}

/* ====================================================
   FAQ — accordéon
   ==================================================== */
.faq-list{border:1px solid var(--ink)}
.faq-item{border-bottom:1px solid var(--line)}
.faq-item:last-child{border-bottom:none}
.faq-q{width:100%;text-align:left;background:none;border:none;cursor:pointer;font-family:var(--font-display);font-size:clamp(17px,1.8vw,21px);font-weight:600;letter-spacing:-0.01em;color:var(--ink);padding:24px 28px;display:flex;justify-content:space-between;align-items:center;gap:20px;transition:color .25s}
.faq-q:hover{color:var(--red)}
.faq-ico{font-family:var(--font-mono);font-size:24px;font-weight:400;color:var(--red);flex-shrink:0;transition:transform .3s var(--ease-out)}
.faq-item.open .faq-ico{transform:rotate(45deg)}
.faq-a{max-height:0;overflow:hidden;transition:max-height .4s var(--ease-out)}
.faq-item.open .faq-a{max-height:400px}
.faq-a p{padding:0 28px 26px;font-size:15.5px;line-height:1.75;color:var(--ink-soft);text-align:justify;hyphens:auto;max-width:820px}

/* ====================================================
   Simulateur DIFE — page élus
   ==================================================== */
.dife{display:grid;grid-template-columns:1fr 1fr;gap:0;border:1px solid var(--ink)}
.dife-form{padding:40px clamp(28px,3vw,44px);background:var(--paper);border-right:1px solid var(--line)}
.dife-field{margin-bottom:26px}
.dife-field label{display:block;font-family:var(--font-mono);font-size:10px;letter-spacing:0.1em;text-transform:uppercase;color:var(--ink-mute);margin-bottom:10px}
.dife-field select{width:100%;font-family:var(--font-body);font-size:15px;color:var(--ink);background:var(--cream);border:1px solid var(--line);padding:13px 14px;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%23cc2535' d='M6 8L0 0h12z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 16px center;cursor:pointer;transition:border-color .25s}
.dife-field select:focus{outline:none;border-color:var(--red)}
.dife-note{font-size:12.5px;line-height:1.6;color:var(--ink-mute);margin-top:4px}
.dife-result{padding:40px clamp(28px,3vw,44px);display:flex;flex-direction:column;justify-content:center}
.dife-result-lbl{font-family:var(--font-mono);font-size:10px;letter-spacing:0.16em;text-transform:uppercase;color:var(--red);margin-bottom:14px}
.dife-amount{font-family:var(--font-display);font-weight:500;font-size:clamp(56px,8vw,92px);line-height:0.9;color:var(--ink);letter-spacing:-0.04em;display:flex;align-items:flex-start;gap:6px}
.dife-eur{font-size:0.42em;color:var(--red);margin-top:0.1em}
.dife-msg{font-size:15px;line-height:1.7;color:var(--ink-soft);margin-top:20px;max-width:420px}
.dife-cta{margin-top:28px}
@media(max-width:780px){.dife{grid-template-columns:1fr}.dife-form{border-right:none;border-bottom:1px solid var(--line)}}

/* ====================================================
   Bandeau élus — page d'accueil
   ==================================================== */
.elus-banner{display:grid;grid-template-columns:1fr auto;align-items:center;gap:30px;margin-top:30px;padding:38px clamp(28px,3.5vw,48px);background:var(--ink);color:var(--cream);transition:transform .35s,box-shadow .35s;text-decoration:none}
.elus-banner:hover{transform:translateY(-2px)}
.elus-banner-kicker{font-family:var(--font-mono);font-size:10px;letter-spacing:0.18em;text-transform:uppercase;color:var(--red-light);margin-bottom:14px}
.elus-banner-t{font-family:var(--font-display);font-weight:400;font-size:clamp(26px,3.4vw,40px);line-height:1.0;letter-spacing:-0.02em;margin-bottom:14px}
.elus-banner-t .em{color:var(--red-light)}
.elus-banner-d{font-size:15px;line-height:1.7;color:rgba(244,239,230,0.78);max-width:640px}
.elus-banner-d strong{color:var(--cream);font-weight:600}
.elus-banner-r{display:flex;align-items:center;gap:14px;white-space:nowrap}
.elus-banner-cta{font-family:var(--font-mono);font-size:11px;letter-spacing:0.12em;text-transform:uppercase;color:var(--cream)}
.elus-banner-arrow{display:inline-flex;align-items:center;justify-content:center;width:46px;height:46px;border:1px solid rgba(244,239,230,0.3);font-size:20px;transition:background .3s,border-color .3s}
.elus-banner:hover .elus-banner-arrow{background:var(--red);border-color:var(--red)}
@media(max-width:780px){.elus-banner{grid-template-columns:1fr;gap:22px}.elus-banner-r{justify-content:space-between}}

/* ====================================================
   Tampon FormaConseils — cachet logo complet, filigrane gris
   ==================================================== */
.hero{position:relative;overflow:hidden}
.hero-stamp{position:absolute;bottom:clamp(34px,6vw,80px);right:clamp(40px,6vw,84px);width:clamp(128px,13vw,184px);opacity:0.10;transform:rotate(-10deg);pointer-events:none;z-index:0}
.hero-stamp img{width:100%;height:auto;display:block;filter:grayscale(1)}
.hero-left{position:relative;z-index:1}
@media(max-width:900px){.hero-stamp{display:none}}

/* Tampon sur les fiches formation */
.fiche-top{position:relative;overflow:hidden}
.fiche-stamp{position:absolute;bottom:clamp(20px,3vw,36px);right:clamp(32px,5vw,72px);width:clamp(112px,11vw,160px);opacity:0.10;transform:rotate(-10deg);pointer-events:none;z-index:0}
.fiche-stamp img{width:100%;height:auto;display:block;filter:grayscale(1)}
.fiche-crumb,.fiche-head{position:relative;z-index:1}
@media(max-width:900px){.fiche-stamp{display:none}}
