
:root{
  --ground:#FAFAF7; --surface:#FFFFFF; --surface-2:#F2F2EE;
  --ink:#16202E; --ink-2:#33404F; --muted:#5A6678; --faint:#8A94A3;
  --rule:#DCDFE4; --rule-strong:#B9BFC8;
  --accent:#B3122B; --accent-soft:#F7E9EB; --accent-rule:#E3B8BF;
  --ok:#1D6B4F; --ok-soft:#E7F1EC;
  --shadow:0 1px 2px rgba(22,32,46,.06), 0 8px 24px -12px rgba(22,32,46,.18);
  --f-display:"Bodoni Moda",Georgia,"Times New Roman",serif;
  --f-body:"Archivo","Helvetica Neue",Arial,sans-serif;
  --f-mono:"IBM Plex Mono",SFMono-Regular,Consolas,monospace;
  --maxw:1180px;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --ground:#0F141C; --surface:#171E29; --surface-2:#1E2634;
    --ink:#E9EDF3; --ink-2:#C6CEDA; --muted:#98A3B4; --faint:#78849A;
    --rule:#262F3D; --rule-strong:#3A4557;
    --accent:#E2536B; --accent-soft:#2B1A20; --accent-rule:#5C2B36;
    --ok:#6BC49B; --ok-soft:#16281F;
    --shadow:0 1px 2px rgba(0,0,0,.40), 0 8px 28px -14px rgba(0,0,0,.70);
  }
}
:root[data-theme="dark"]{
  --ground:#0F141C; --surface:#171E29; --surface-2:#1E2634;
  --ink:#E9EDF3; --ink-2:#C6CEDA; --muted:#98A3B4; --faint:#78849A;
  --rule:#262F3D; --rule-strong:#3A4557;
  --accent:#E2536B; --accent-soft:#2B1A20; --accent-rule:#5C2B36;
  --ok:#6BC49B; --ok-soft:#16281F;
  --shadow:0 1px 2px rgba(0,0,0,.40), 0 8px 28px -14px rgba(0,0,0,.70);
}
*{box-sizing:border-box}
body{background:var(--ground);color:var(--ink);font-family:var(--f-body);
     font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4{text-wrap:balance;margin:0}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 28px}
.mono{font-family:var(--f-mono);font-variant-numeric:tabular-nums}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

.maquette{background:var(--ink);color:var(--ground);font-size:11.5px;letter-spacing:.09em;
          text-transform:uppercase;text-align:center;padding:7px}

.nav{border-bottom:1px solid var(--rule);background:var(--surface);position:sticky;top:0;z-index:30}
.nav-in{display:flex;align-items:center;gap:22px;padding:13px 0;flex-wrap:wrap}
.brand{margin-right:auto;line-height:1}
.brand .w{font-family:var(--f-display);font-size:23px;font-weight:600;letter-spacing:-.015em}
.brand .d{font-family:var(--f-mono);font-size:11px;color:var(--accent);letter-spacing:.02em;
          margin-top:5px}
.brand .s{font-size:12px;color:var(--muted);margin-top:3px}
.tabs{display:flex;gap:2px;flex-wrap:wrap}
.tab{border:0;background:transparent;font:inherit;font-size:13.5px;color:var(--muted);
     padding:8px 12px;cursor:pointer;border-bottom:2px solid transparent}
.tab:hover{color:var(--ink)}
.tab[aria-selected="true"]{color:var(--ink);border-bottom-color:var(--accent);font-weight:500}
.langsw{display:flex;border:1px solid var(--rule-strong)}
.langsw button{border:0;background:transparent;font:inherit;font-family:var(--f-mono);
               font-size:11.5px;padding:7px 10px;cursor:pointer;color:var(--muted)}
.langsw button[aria-pressed="true"]{background:var(--ink);color:var(--ground)}
.nav-cta{background:var(--accent);color:#fff;border:0;font:inherit;font-size:13px;
         font-weight:500;padding:9px 15px;cursor:pointer}

.panel{display:none}
.panel.on{display:block}

.hero{padding:52px 0 44px;border-bottom:1px solid var(--rule)}
.hero-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:48px;
           align-items:center}
.hero h1{font-family:var(--f-display);font-size:42px;font-weight:600;line-height:1.1;
         letter-spacing:-.02em}
.hero h1 em{font-style:italic;font-weight:400}
.hero p{color:var(--ink-2);margin:18px 0 26px;max-width:52ch}
.hero-cta{display:flex;gap:11px;flex-wrap:wrap}
.b-pri{background:var(--accent);color:#fff;border:0;font:inherit;font-size:14px;font-weight:500;
       padding:13px 21px;cursor:pointer}
.b-sec{background:transparent;color:var(--ink);border:1px solid var(--rule-strong);font:inherit;
       font-size:14px;padding:13px 21px;cursor:pointer}
.hero-note{font-size:12.5px;color:var(--faint);margin-top:14px}
.kpis{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--rule);
      border:1px solid var(--rule)}
.kpi{background:var(--surface);padding:20px 18px}
.kpi b{display:block;font-family:var(--f-mono);font-size:29px;font-weight:600;
       letter-spacing:-.02em;font-variant-numeric:tabular-nums;line-height:1}
.kpi span{display:block;font-size:11px;letter-spacing:.08em;text-transform:uppercase;
          color:var(--faint);margin-top:7px}

.sec{padding:48px 0;border-bottom:1px solid var(--rule)}
.sec-label{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);
           display:flex;align-items:center;gap:14px;margin-bottom:22px}
.sec-label::after{content:"";flex:1;height:1px;background:var(--rule)}
.sec h2{font-family:var(--f-display);font-size:30px;font-weight:600;line-height:1.16;
        letter-spacing:-.02em;max-width:22ch}
.sec .lede{color:var(--ink-2);margin:14px 0 30px;max-width:60ch}

.services{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;
          background:var(--rule);border:1px solid var(--rule)}
.svc{background:var(--surface);padding:24px 22px}
.svc .n{font-family:var(--f-mono);font-size:11px;color:var(--accent);letter-spacing:.1em}
.svc h3{font-family:var(--f-display);font-size:20px;font-weight:600;margin-top:9px}
.svc p{color:var(--ink-2);font-size:13.5px;margin:9px 0 0}
.svc .soon{display:inline-block;margin-top:11px;font-size:10.5px;letter-spacing:.09em;
           text-transform:uppercase;border:1px solid var(--rule-strong);padding:3px 8px;
           color:var(--faint)}

.steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}
.step{border-top:2px solid var(--accent-rule);padding-top:14px}
.step .n{font-family:var(--f-mono);font-size:11px;color:var(--accent);letter-spacing:.1em}
.step h4{font-size:15px;font-weight:600;margin-top:7px}
.step p{font-size:13px;color:var(--muted);margin:6px 0 0}

.tools{background:var(--ground);border-bottom:1px solid var(--rule);padding:12px 0;
       position:sticky;top:78px;z-index:20}
.tools-in{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.field{display:flex;align-items:center;gap:7px;background:var(--surface);
       border:1px solid var(--rule);padding:7px 11px}
.field label{font-size:10.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--faint)}
.field input,.field select{border:0;background:transparent;font:inherit;font-size:13.5px;
                           color:var(--ink);min-width:110px}
.field input{min-width:180px}
.chk{display:flex;align-items:center;gap:8px;background:var(--surface);border:1px solid var(--rule);
     padding:8px 12px;font-size:13px;cursor:pointer}
.chk input{accent-color:var(--accent);margin:0}
.count{margin-left:auto;font-family:var(--f-mono);font-size:12.5px;color:var(--muted)}
.btn-reset{border:1px solid var(--rule);background:var(--surface);font:inherit;font-size:13px;
           padding:8px 13px;cursor:pointer;color:var(--muted)}
.cat-strip{display:flex;gap:7px;flex-wrap:wrap;padding:16px 0 4px}
.pill{border:1px solid var(--rule-strong);background:var(--surface);font:inherit;font-size:12.5px;
      padding:6px 12px;cursor:pointer;color:var(--ink-2)}
.pill b{font-family:var(--f-mono);color:var(--faint);margin-left:6px;font-weight:500}
.pill[aria-pressed="true"]{background:var(--accent-soft);border-color:var(--accent);color:var(--ink)}
.pill[aria-pressed="true"] b{color:var(--accent)}

.ledger-head,.line{display:grid;
  grid-template-columns:72px minmax(0,2.3fr) minmax(0,1.1fr) 48px minmax(0,1.4fr);gap:16px}
.ledger-head{padding:14px 12px 8px;border-bottom:1px solid var(--rule-strong);font-size:10.5px;
             letter-spacing:.1em;text-transform:uppercase;color:var(--faint)}
.line{padding:9px 12px;border-bottom:1px solid var(--rule);align-items:baseline}
.line:hover{background:var(--surface)}
.line .ref{font-family:var(--f-mono);font-size:11.5px;color:var(--faint)}
.line .nm{font-size:14px;font-weight:500;min-width:0;overflow-wrap:break-word}
.line .vl{font-size:13px;color:var(--muted);min-width:0;overflow-wrap:break-word}
.line .ct{font-family:var(--f-mono);font-size:11.5px;color:var(--muted)}
.line .em{font-size:12.5px;color:var(--muted);font-family:var(--f-mono);min-width:0;
          overflow-wrap:break-word}
.line .em.none{color:var(--faint);font-style:italic;font-family:var(--f-body)}
.more{display:block;width:100%;margin-top:24px;padding:13px;background:var(--surface);
      border:1px solid var(--rule-strong);font:inherit;font-size:13.5px;cursor:pointer;color:var(--ink)}
.empty{padding:40px 12px;text-align:center;color:var(--muted)}

.presentation{border:1px solid var(--rule-strong);background:var(--surface);margin:20px 0;
              box-shadow:var(--shadow);border-top:3px solid var(--accent)}
.pr-band{background:var(--surface-2);border-bottom:1px solid var(--rule);height:120px;
         display:flex;align-items:center;justify-content:center;position:relative}
.pr-band .ph{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--faint);
             border:1px dashed var(--rule-strong);padding:8px 15px;text-align:center}
.pr-badge{position:absolute;top:12px;right:12px;background:var(--accent);color:#fff;font-size:10px;
          letter-spacing:.11em;text-transform:uppercase;padding:5px 10px;font-weight:600}
.pr-head{padding:19px 24px 15px;border-bottom:1px solid var(--rule)}
.pr-head h3{font-family:var(--f-display);font-size:25px;font-weight:600;line-height:1.15}
.pr-loc{font-size:12.5px;color:var(--muted);margin-top:6px;display:flex;gap:9px;flex-wrap:wrap;
        align-items:center}
.pr-loc .code{font-family:var(--f-mono);border:1px solid var(--rule-strong);padding:1px 6px;
              font-size:11px}
.pr-accroche{font-family:var(--f-display);font-style:italic;font-size:16px;color:var(--ink-2);
             margin-top:12px;line-height:1.45;max-width:62ch}
.pr-sec{padding:17px 24px;border-bottom:1px solid var(--rule)}
.pr-sec:last-child{border-bottom:0}
.pr-t{font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);
      margin-bottom:11px}
.glance{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1px;
        background:var(--rule);border:1px solid var(--rule);margin:0}
.gl{background:var(--surface);padding:10px 12px}
.gl dt{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--faint)}
.gl dd{margin:4px 0 0;font-size:13.5px;line-height:1.4}
.chips{display:flex;flex-wrap:wrap;gap:7px}
.chip{border:1px solid var(--rule-strong);padding:4px 10px;font-size:12.5px;color:var(--ink-2)}
.todo{color:var(--faint);font-style:italic;font-size:13px;border:1px dashed var(--rule-strong);
      padding:8px 11px;margin-top:6px}
.args{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:13px}
.arg{border-left:2px solid var(--accent-rule);padding-left:12px}
.arg .num{font-family:var(--f-mono);font-size:11px;color:var(--accent)}
.pr-contact{display:flex;flex-wrap:wrap;gap:22px;align-items:center;justify-content:space-between;
            background:var(--surface-2)}
.cts{display:flex;flex-wrap:wrap;gap:20px}
.ct-i .k{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--faint)}
.ct-i .v{font-family:var(--f-mono);font-size:13px;margin-top:3px}
.cta{display:flex;gap:9px}
.cta span{background:var(--accent);color:#fff;font-size:12.5px;font-weight:500;padding:9px 16px}
.cta span.ghost{background:transparent;color:var(--accent);border:1px solid var(--accent)}

.form-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:44px;
           align-items:start}
.form{border:1px solid var(--rule);background:var(--surface)}
.form-h{padding:18px 22px;border-bottom:1px solid var(--rule);background:var(--surface-2)}
.form-h .t{font-family:var(--f-display);font-size:21px;font-weight:600}
.form-h .s{font-size:12.5px;color:var(--muted);margin-top:4px}
.form-b{padding:20px 22px;display:grid;grid-template-columns:1fr 1fr;gap:15px}
.fg{display:flex;flex-direction:column;gap:5px}
.fg.full{grid-column:1/-1}
.fg label{font-size:10.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--muted)}
.fg input{font:inherit;font-size:14px;padding:9px 11px;border:1px solid var(--rule-strong);
          background:var(--ground);color:var(--ink)}
.fg .hint{font-size:11.5px;color:var(--faint)}
.ac{position:relative}
.ac-list{position:absolute;top:100%;left:0;right:0;background:var(--surface);
         border:1px solid var(--rule-strong);border-top:0;max-height:210px;overflow-y:auto;
         z-index:5;box-shadow:var(--shadow)}
.ac-list div{padding:8px 11px;font-size:13.5px;cursor:pointer;border-bottom:1px solid var(--rule)}
.ac-list div:hover{background:var(--accent-soft)}
.ac-list .c{font-family:var(--f-mono);font-size:11px;color:var(--faint);margin-left:7px}
.niveaux{display:flex;flex-wrap:wrap;gap:7px}
.niv{border:1px solid var(--rule-strong);background:var(--ground);font:inherit;font-size:12.5px;
     padding:6px 11px;cursor:pointer;color:var(--ink-2)}
.niv[aria-pressed="true"]{background:var(--accent-soft);border-color:var(--accent)}
.form-f{padding:16px 22px 22px;border-top:1px solid var(--rule);display:flex;gap:14px;
        align-items:center;flex-wrap:wrap}
.form-f .mention{font-size:12px;color:var(--muted);max-width:44ch}
.aside-box{border:1px solid var(--rule);background:var(--surface);padding:20px}
.aside-box h4{font-family:var(--f-display);font-size:18px;font-weight:600;margin-bottom:11px}
.aside-box ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px;
              font-size:13.5px;color:var(--ink-2)}
.aside-box li{display:flex;gap:10px}
.aside-box li i{font-style:normal;font-family:var(--f-mono);font-size:11px;color:var(--accent);
                padding-top:3px}

.dash{display:grid;grid-template-columns:210px minmax(0,1fr);gap:26px;align-items:start;
      padding:30px 0 60px}
.side{border:1px solid var(--rule);background:var(--surface)}
.side .who{padding:15px;border-bottom:1px solid var(--rule)}
.side .who .n{font-size:14px;font-weight:600;line-height:1.25}
.side .who .m{font-size:11.5px;color:var(--muted);margin-top:3px}
.side nav{display:flex;flex-direction:column}
.side nav button{border:0;background:transparent;font:inherit;font-size:13.5px;text-align:left;
                 padding:10px 15px;cursor:pointer;color:var(--muted);
                 border-left:2px solid transparent}
.side nav button[aria-selected="true"]{color:var(--ink);background:var(--accent-soft);
                                       border-left-color:var(--accent);font-weight:500}
.dpanel{display:none}
.dpanel.on{display:block}
.card{border:1px solid var(--rule);background:var(--surface);margin-bottom:18px}
.card-h{padding:14px 18px;border-bottom:1px solid var(--rule);display:flex;
        justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap}
.card-h .t{font-size:14px;font-weight:600}
.card-b{padding:16px 18px}
.tag{font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;padding:3px 9px;
     border:1px solid var(--rule-strong);color:var(--muted)}
.tag.ex{background:var(--ok-soft);border-color:var(--ok);color:var(--ok)}
.opp{display:grid;grid-template-columns:96px minmax(0,1fr) 128px;gap:16px;padding:12px 0;
     border-bottom:1px solid var(--rule);align-items:baseline}
.opp:last-child{border-bottom:0}
.opp .d{font-family:var(--f-mono);font-size:11.5px;color:var(--faint)}
.opp .t{font-size:13.5px}
.opp .t small{display:block;color:var(--muted);font-size:12px;margin-top:3px}
.opp .a{font-size:12px;color:var(--accent)}
.draft{border:1px solid var(--rule);background:var(--ground);padding:14px 16px;margin-bottom:12px}
.draft .meta{font-size:10.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--faint);
             margin-bottom:8px}
.draft p{margin:0;font-size:13.5px;color:var(--ink-2)}
.upgrade{border:1px solid var(--accent-rule);border-top:3px solid var(--accent);
         background:var(--surface);padding:20px}
.upgrade h4{font-family:var(--f-display);font-size:20px;font-weight:600}
.upgrade p{font-size:13.5px;color:var(--ink-2);margin:9px 0 16px;max-width:56ch}

footer{border-top:1px solid var(--rule);padding:30px 0 44px;font-size:12.5px;color:var(--muted)}
footer .cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:24px}
footer h4{font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-2);
          margin-bottom:8px}

@media (max-width:900px){
  .hero-grid,.form-grid,.services,.form-b{grid-template-columns:1fr;gap:24px}
  .steps{grid-template-columns:1fr 1fr}
  .dash{grid-template-columns:1fr}
  .hero h1{font-size:32px}
  .ledger-head,.line{grid-template-columns:60px minmax(0,1.7fr) minmax(0,1fr)}
  .ledger-head .h-ct,.ledger-head .h-em,.line .ct,.line .em{display:none}
  .tools{position:static}
  .wrap{padding:0 18px}
}

/* ---------------------------------------------- adaptations site statique */
a{color:inherit;text-decoration:none}
.brand{display:block}
.brand .w,.brand .d,.brand .s{display:block}
.tabs a{font-size:13.5px;color:var(--muted);padding:8px 12px;
        border-bottom:2px solid transparent;display:inline-block}
.tabs a:hover{color:var(--ink)}
.tabs a.on{color:var(--ink);border-bottom-color:var(--accent);font-weight:500}
.langsw a{font-family:var(--f-mono);font-size:11.5px;padding:7px 10px;color:var(--muted);
          display:inline-block}
.langsw a.on{background:var(--ink);color:var(--ground)}
.nav-cta{display:inline-block}
.b-pri,.b-sec{display:inline-block;text-decoration:none}

h1.h2,h2{font-family:var(--f-display);font-size:30px;font-weight:600;line-height:1.16;
         letter-spacing:-.02em;max-width:24ch}
h2.h4{font-family:var(--f-display);font-size:18px;font-weight:600;margin-bottom:11px}
.crumb{font-size:12px;color:var(--muted);margin-bottom:14px}
.crumb a{color:var(--accent)}
.soft{color:var(--faint);font-style:italic}
.big{font-size:21px;font-weight:600}
.presentation .big{font-size:16px}

.services.lvls{grid-template-columns:repeat(4,minmax(0,1fr))}
.services.lvls .svc{padding:16px 18px}
.services.lvls .lv{font-size:13px;font-weight:500;margin-top:4px}
.services.lvls a.svc:hover{background:var(--surface-2)}

.cat-strip a.pill{display:inline-block}
.cat-strip a.pill:hover{border-color:var(--accent);color:var(--ink)}

.ledger{margin-top:18px}
.ledger-head,.line{display:grid;
  grid-template-columns:72px minmax(0,2.3fr) minmax(0,1.1fr) 48px minmax(0,1.4fr);gap:16px}
.line .nm a{font-weight:600;border-bottom:1px solid var(--accent-rule)}
.ledger.inline{overflow-x:auto}
.ledger.inline .line{min-width:480px;white-space:nowrap;border-bottom:0;padding-left:0}
.specimen{border:1px solid var(--rule);background:var(--surface);padding:14px 16px}

.cmp{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:24px;align-items:start}
.cmp-l{position:sticky;top:110px}

.niveaux .niv{border:1px solid var(--rule-strong);background:var(--ground);font-size:12.5px;
              padding:6px 11px;color:var(--ink-2);display:inline-block}
.aside-box.mt{margin-top:18px}
.tools-in{margin-top:24px}
.presentation h1{font-family:var(--f-display);font-size:27px;font-weight:600;line-height:1.14}

@media (max-width:900px){
  .cmp{grid-template-columns:1fr}
  .cmp-l{position:static}
  .services.lvls{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* ------------------------------------- fiches enrichies : photo et mention */
.pr-band{height:auto;min-height:120px;padding:0;overflow:hidden}
.pr-band img.cover{width:100%;height:260px;object-fit:cover;display:block}
.pr-note{padding:12px 24px 16px;font-size:11.5px;color:var(--faint);
         border-top:1px solid var(--rule);line-height:1.5}
.pr-note a{color:var(--accent)}
@media (max-width:700px){.pr-band img.cover{height:180px}}
.pr-band .ph[hidden]{display:none}
.pr-band:has(img.cover){align-items:stretch}
