/* Concept : « Le dossier ». Le site ressemble au livrable d'un CTO : un rapport bien composé.
   Papier froid, encre profonde, un seul accent ambre. Geist pour le texte, Geist Mono réservé aux chiffres et aux repères.
   Listes à filets plutôt que cartes ; une seule pièce maîtresse en relief : la feuille d'audit. */
:root{
  --paper:#f6f7f5;
  --paper-2:#eceee9;
  --paper-3:#e2e5df;
  --ink:#111317;
  --ink-2:#363b44;
  --ink-3:#535a66;
  --rule:#d5d9d2;
  --rule-2:#bcc1b8;
  --accent:#955300;
  --accent-fill:#f2a33a;
  --accent-ink:#1a1206;
  --accent-soft:#f6e3c6;
  --f-sans:"Geist",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
  --f-mono:"Geist Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
  --gl:max(20px,env(safe-area-inset-left,0px));
  --gr:max(20px,env(safe-area-inset-right,0px));
  --ease:cubic-bezier(.2,.7,.1,1);
  --max:1200px;
  --r:6px;
  color-scheme:light;
}
@media (prefers-color-scheme:dark){:root{
  --paper:#0e1013;--paper-2:#15181d;--paper-3:#1c2027;--ink:#eef0f2;--ink-2:#c6cbd4;--ink-3:#a2a9b5;
  --rule:#272c34;--rule-2:#3a404b;--accent:#f5b04f;--accent-soft:#2e2414;color-scheme:dark}}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:84px}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--f-sans);font-size:18px;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:clip}
img{max-width:100%;display:block;height:auto}
a{color:inherit}
h1,h2,h3{margin:0;font-weight:500;letter-spacing:-.025em;line-height:1.14;text-wrap:balance}
p{margin:0}
ul,ol,dl,dd{margin:0;padding:0;list-style:none}
::selection{background:var(--accent-fill);color:var(--accent-ink)}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:3px}
.skip{position:absolute;left:-999px;top:10px;z-index:100;background:var(--ink);color:var(--paper);padding:10px 14px;border-radius:var(--r)}
.skip:focus{left:14px}
.wrap{max-width:var(--max);margin:0 auto;padding-left:var(--gl);padding-right:var(--gr)}
.wrap-text{max-width:760px;margin:0 auto;padding-left:var(--gl);padding-right:var(--gr)}

/* Boutons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:12px 22px;border-radius:var(--r);background:var(--ink);color:var(--paper);font-size:16px;font-weight:500;text-decoration:none;border:1px solid var(--ink);transition:background .25s,color .25s,border-color .25s,transform .25s var(--ease)}
.btn:hover{background:var(--ink-2);border-color:var(--ink-2)}
.btn:active{transform:translateY(1px)}
.btn-accent{background:var(--accent-fill);border-color:var(--accent-fill);color:var(--accent-ink)}
.btn-accent:hover{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.btn-ghost{background:transparent;color:var(--ink);border-color:var(--rule-2)}
.btn-ghost:hover{background:var(--paper-2);border-color:var(--ink);color:var(--ink)}
.btn-small{min-height:40px;padding:8px 16px;font-size:15px}
.btn-large{min-height:56px;padding:14px 28px;font-size:17px}

/* Logo */
.logo-mark{width:36px;height:34px;color:var(--ink);flex:0 0 auto;overflow:visible}
.logo-dot{fill:var(--accent-fill)}

/* Barre du haut */
.topbar{position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--paper) 90%,transparent);backdrop-filter:saturate(140%) blur(12px);-webkit-backdrop-filter:saturate(140%) blur(12px);border-bottom:1px solid var(--rule);padding-top:env(safe-area-inset-top,0px)}
.topbar-in{max-width:var(--max);margin:0 auto;padding:12px var(--gr) 12px var(--gl);display:flex;align-items:center;gap:20px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none}
.brand-name{font-weight:600;font-size:16px;letter-spacing:-.01em;white-space:nowrap}
.runhead{display:flex;gap:10px;align-items:center;margin-right:auto;padding-left:18px;border-left:1px solid var(--rule);font-size:14.5px;color:var(--ink-3);white-space:nowrap;min-width:0}
.runhead-sec{color:var(--ink);overflow:hidden;text-overflow:ellipsis;transition:opacity .25s}

.topbar-in>.brand:has(+ .nav){margin-right:auto}
.nav ul{display:flex;gap:2px}
.nav a{display:block;padding:8px 11px;border-radius:var(--r);font-size:15px;color:var(--ink-2);text-decoration:none;transition:background .2s,color .2s}
.nav a:hover{background:var(--paper-2);color:var(--ink)}
.nav a[aria-current="page"]{color:var(--ink);box-shadow:inset 0 -2px 0 var(--accent-fill);border-radius:0}
.menu{display:none;margin-left:auto}
.topbar:has(.menu[open]){backdrop-filter:none;-webkit-backdrop-filter:none;background:var(--paper)}
.menu summary{list-style:none;display:flex;align-items:center;gap:10px;min-height:44px;padding:8px 12px;border:1px solid var(--rule-2);border-radius:var(--r);cursor:pointer;font-size:15px}
.menu summary::-webkit-details-marker{display:none}
.menu-icon{width:16px;height:10px;border-top:1.5px solid currentColor;border-bottom:1.5px solid currentColor;position:relative}
.menu[open] .menu-icon{border-color:transparent}
.menu[open] .menu-icon::before,.menu[open] .menu-icon::after{content:"";position:absolute;left:0;right:0;top:4px;height:1.5px;background:currentColor;transform:rotate(45deg)}
.menu[open] .menu-icon::after{transform:rotate(-45deg)}
.menu-panel{position:fixed;left:0;right:0;top:calc(68px + env(safe-area-inset-top,0px));bottom:0;background:var(--paper);padding:24px var(--gr) calc(24px + env(safe-area-inset-bottom,0px)) var(--gl);display:flex;flex-direction:column;gap:20px;overflow:auto;border-top:1px solid var(--rule)}
.menu-panel ul{display:grid}
.menu-panel li a{display:block;padding:16px 0;border-bottom:1px solid var(--rule);font-size:22px;text-decoration:none}
.menu-mail{font-size:16px;color:var(--ink-2)}
@media (max-width:1180px){.runhead{display:none}.topbar-in>.brand{margin-right:auto}}
@media (max-width:960px){.nav{display:none}.menu{display:block;margin-left:0}.topbar-in>.brand{margin-right:auto}.topbar-cta{min-height:44px;padding:8px 12px;font-size:14.5px}}
@media (max-width:400px){.brand-name{display:none}}

/* Repères de section */
.sec-num{display:flex;align-items:center;gap:10px;font-size:15px;color:var(--ink-3)}
.sec-num span{color:var(--accent);font-family:var(--f-mono);font-size:15px}
.sec-num span::after{content:"";display:inline-block;width:18px;height:1px;background:var(--rule-2);vertical-align:middle;margin-left:10px}
.sec-num span:empty{display:none}
.sec-head{display:grid;grid-template-columns:220px minmax(0,1fr);gap:20px 40px;margin-bottom:48px}
.sec-head .sec-num{align-self:start;padding-top:clamp(8px,1.1vw,14px)}
.sec-title{font-size:clamp(30px,3.6vw,46px)}
.sec-lead{margin-top:16px;font-size:19px;color:var(--ink-2);max-width:60ch}
@media (max-width:820px){.sec-head{grid-template-columns:1fr;gap:14px;margin-bottom:32px}}
.section{padding:96px 0;border-top:1px solid var(--rule)}
.section-tight{padding-bottom:72px}
@media (max-width:820px){.section{padding:56px 0}}
.sub{margin:56px 0 18px;font-size:15px;font-weight:500;color:var(--ink-3);letter-spacing:0;display:flex;align-items:center;gap:14px}
.sub::after{content:"";flex:1;height:1px;background:var(--rule)}

/* Hero */
.hero{padding:64px 0 80px}
.hero-grid{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:72px;align-items:center}
.eyebrow{display:flex;align-items:center;gap:12px;font-size:15px;line-height:1.35;color:var(--ink-3)}
.eyebrow b{font-weight:500;color:var(--ink)}
.eyebrow-photo{width:44px;height:44px;border-radius:50%;object-fit:cover;filter:grayscale(1);display:none}
.hero-title{margin-top:28px;font-size:clamp(40px,5.4vw,74px);line-height:1.03;letter-spacing:-.042em}
.hero-title em{font-style:normal;color:var(--accent)}
.hero-lede{margin-top:26px;font-size:clamp(18px,1.45vw,21px);line-height:1.6;color:var(--ink-2);max-width:54ch}
.actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:34px}
.hero-note{margin-top:20px;font-size:15px;color:var(--ink-3)}
.hero-link{margin-top:10px;font-size:16px}
.hero-link a{color:var(--accent);font-weight:500;text-decoration:none;border-bottom:1px solid currentColor}
.hero-side{display:grid;gap:0}
.portrait{margin:0;border-radius:var(--r);overflow:hidden}
.portrait img{width:100%;aspect-ratio:5/4;object-fit:cover;object-position:50% 30%;filter:grayscale(1) contrast(1.03)}
.facts{display:grid;margin-top:18px;border-top:2px solid var(--ink)}
.facts div{display:grid;gap:2px;padding:14px 0;border-bottom:1px solid var(--rule)}
.facts div:last-child{border-bottom:0}
.facts dt{font-size:26px;font-weight:500;letter-spacing:-.03em;color:var(--ink)}
.facts dd{font-size:15px;color:var(--ink-2);line-height:1.4}
@media (max-width:960px){
  .hero{padding:40px 0 56px}
  .hero-grid{grid-template-columns:1fr;gap:40px}
  .eyebrow-photo{display:block}
  .portrait{display:none}
  .facts{margin-top:0}
  .facts div{display:flex;align-items:baseline;gap:12px;padding:12px 0}
  .facts dt{font-size:20px;flex:0 0 auto}
  .facts dd{font-size:15px}
  .actions .btn{flex:1 1 240px}
}

/* 01 : questions + feuille d'audit */
.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,450px);gap:64px;align-items:start}
.questions{display:grid;border-top:2px solid var(--ink)}
.questions li{display:grid;grid-template-columns:36px minmax(0,1fr);gap:12px;padding:24px 0;border-bottom:1px solid var(--rule)}
.questions li>span{font-family:var(--f-mono);font-size:15px;color:var(--accent);padding-top:3px}
.questions h3{font-size:22px}
.questions p{margin-top:6px;color:var(--ink-2);font-size:17px}
.questions a,.offer-more a{color:var(--accent);font-weight:500;text-decoration:none}
.questions a:hover,.offer-more a:hover{text-decoration:underline;text-underline-offset:3px}
.split-cta{margin-top:28px}
.offer-more{grid-column:2;margin-top:6px;font-size:16px}
.sheet{margin:0;position:sticky;top:110px;display:grid;gap:30px;padding:8px}
.sheet-paper{--paper:#f8f9f6;--paper-2:#eceee9;--paper-3:#e2e5df;--ink:#111317;--ink-3:#535a66;--rule:#d5d9d2;--rule-2:#bcc1b8;--accent:#955300;color:var(--ink);position:relative;background:var(--paper);border:1px solid var(--rule-2);border-radius:3px;padding:30px 28px 26px;transform:rotate(-1.6deg);box-shadow:0 1px 0 var(--rule),12px 14px 0 -2px var(--paper-2),12px 14px 0 -1px var(--rule),0 30px 60px -36px rgba(0,0,0,.45);transition:transform .6s var(--ease)}
.sheet:hover .sheet-paper{transform:rotate(-.6deg) translateY(-2px)}
.sheet-stamp{position:absolute;top:-14px;right:18px;background:#f8f9f6;transform:rotate(6deg);font-family:var(--f-mono);font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);border:1.5px solid currentColor;border-radius:3px;padding:3px 8px;opacity:.85}
.sheet-head{padding-bottom:14px;border-bottom:2px solid var(--ink);display:grid;gap:2px}
.sheet-head p{font-size:20px;font-weight:600;letter-spacing:-.02em}
.sheet-head span{font-size:14.5px;color:var(--ink-3)}
.sheet-toc li{display:grid;grid-template-columns:24px 1fr;gap:4px 10px;padding:12px 0;border-bottom:1px dashed var(--rule-2)}
.sheet-n{font-family:var(--f-mono);font-size:14px;color:var(--accent)}
.sheet-t{font-size:16px;font-weight:500;display:grid}
.sheet-t small{font-size:14.5px;font-weight:400;color:var(--ink-3)}
.sheet-bar{grid-column:2;height:6px;border-radius:2px;background:var(--paper-3);width:calc(40% + var(--w,30%))}
.sheet-toc li:nth-child(2) .sheet-bar{--w:42%}.sheet-toc li:nth-child(3) .sheet-bar{--w:18%}.sheet-toc li:nth-child(4) .sheet-bar{--w:50%}.sheet-toc li:nth-child(5) .sheet-bar{--w:26%}.sheet-toc li:nth-child(6) .sheet-bar{--w:8%}
.sheet-redact{display:grid;gap:7px;margin-top:18px}
.sheet-redact span{height:11px;background:var(--ink);border-radius:1px;width:92%}
.sheet-redact span:nth-child(2){width:64%}
.sheet-redact span:nth-child(3){width:78%}
.sheet figcaption{font-size:15.5px;color:var(--ink-2);padding:0 6px}
@media (max-width:960px){.split{grid-template-columns:1fr;gap:44px}.sheet{position:relative;top:0;max-width:480px}}
@media (max-width:560px){.sheet-toc li:nth-child(n+5){display:none}.sheet-paper{transform:rotate(-1deg);padding:28px 20px 22px}}

/* 02 : interventions */
.offers{display:grid;border-top:2px solid var(--ink)}
.offer{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:20px 48px;padding:30px 0;border-bottom:1px solid var(--rule)}
.offer-main{display:grid;grid-template-columns:44px 1fr;gap:6px 12px;align-content:start}
.offer-n{grid-row:span 2;font-family:var(--f-mono);font-size:15px;color:var(--accent);padding-top:5px}
.offer h3{font-size:24px}
.offer-main p:last-child{color:var(--ink-2);font-size:17px}
.offer-specs{display:grid;grid-template-columns:150px minmax(0,1fr) 190px;gap:18px}
.offer-specs dt{font-size:14.5px;color:var(--ink-3);margin-bottom:4px}
.offer-specs dd{font-size:16.5px;line-height:1.45}
.offer-specs .price{font-weight:600;font-variant-numeric:tabular-nums}
@media (min-width:961px){.offer:not(:first-child) .offer-specs dt{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.offer:first-child .offer-specs dt{margin-top:-2px}}
@media (max-width:960px){.offer{grid-template-columns:1fr}.offer-main{grid-template-columns:1fr}.offer-n{grid-row:auto;padding-top:0}.offer-more{grid-column:auto}.offer-specs{grid-template-columns:1fr 1fr}.offer-specs div:nth-child(2){grid-column:1/-1;grid-row:1}}

/* 03 : méthode et cadre */
.steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:2px solid var(--ink)}
.steps li{padding:22px 24px 26px 0;display:grid;gap:8px;align-content:start}
.steps li+li{padding-left:24px;border-left:1px solid var(--rule)}
.steps span{font-size:15px;font-weight:500;color:var(--accent)}
.steps h3{font-size:21px}
.steps p{color:var(--ink-2);font-size:16.5px}
.frame{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 48px;margin-top:48px;border-top:1px solid var(--rule)}
.frame div{display:grid;grid-template-columns:130px 1fr;gap:16px;padding:20px 0;border-bottom:1px solid var(--rule)}
.frame dt{font-weight:600;font-size:16.5px;display:flex;gap:10px;align-items:baseline}
.frame dt::before{content:"";flex:0 0 7px;height:7px;border-radius:1px;background:var(--accent-fill);transform:translateY(-2px)}
.frame dd{font-size:16.5px;color:var(--ink-2)}
@media (max-width:960px){.steps{grid-template-columns:1fr 1fr}.steps li:nth-child(3){padding-left:0;border-left:0}.steps li:nth-child(n+3){border-top:1px solid var(--rule)}.frame{grid-template-columns:1fr}}
@media (max-width:560px){.steps{grid-template-columns:1fr}.steps li,.steps li+li{padding:20px 0;border-left:0}.steps li+li{border-top:1px solid var(--rule)}.frame div{grid-template-columns:1fr;gap:6px}}

/* 04 : résultats */
.proofs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:2px solid var(--ink)}
.proof{display:grid;gap:10px;align-content:start;padding:26px 28px 28px 0;border-bottom:1px solid var(--rule)}
.proof:nth-child(3){padding-left:28px;border-left:1px solid var(--rule)}
.proof-big{grid-column:1/-1;grid-template-columns:auto minmax(0,1fr);gap:20px 48px;align-items:end;padding:36px 0;border-bottom:0}
.proof-fig{font-size:clamp(44px,4.6vw,60px);font-weight:500;letter-spacing:-.045em;line-height:.95;font-variant-numeric:tabular-nums}
.proof-big .proof-fig{font-size:clamp(52px,13vw,180px);letter-spacing:-.06em;line-height:.85;white-space:nowrap}
.proof-label{font-weight:500;font-size:18px}
.proof-text{color:var(--ink-2);font-size:16.5px;margin-top:4px;max-width:58ch}
.proof-src{font-size:15.5px;color:var(--ink-3);margin-top:8px}
.proof-src a{color:var(--accent);font-weight:500;text-decoration:none}
.proofs:has(.proof-big:only-child){grid-template-columns:1fr}
@media (max-width:820px){.proofs{grid-template-columns:minmax(0,1fr)}.proof,.proof:nth-child(3){padding:24px 0;border-left:0}.proof-big{grid-template-columns:minmax(0,1fr);gap:14px}}

.cases{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 36px;border-top:1px solid var(--rule)}
.case{padding:22px 0}
.case header{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding-bottom:14px;border-bottom:1px solid var(--rule)}
.case-type{font-size:19px;font-weight:500}
.case-meta{font-size:15px;color:var(--ink-3)}
.case dl{display:grid}
.case dl div{display:grid;gap:2px;padding:12px 0;border-bottom:1px dashed var(--rule)}
.case dl div:last-child{border-bottom:0;padding-bottom:0}
.case dt{font-size:14.5px;color:var(--ink-3);padding-top:2px}
.case dd{font-size:16.5px}
.case dl div:last-child dd{font-weight:500}
@media (max-width:960px){.cases{grid-template-columns:1fr}.case{border-bottom:1px solid var(--rule)}}

.quotes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 48px;border-top:1px solid var(--rule)}
.quote{margin:0;padding:22px 0;display:flex;flex-direction:column;gap:16px}
.quote blockquote{margin:0;font-size:18px;line-height:1.55;color:var(--ink)}
.quote blockquote p::before{content:"«\202f"}
.quote blockquote p::after{content:"\202f»"}
.quote figcaption{margin-top:auto;font-size:15px;color:var(--ink-3)}
.quote figcaption b{color:var(--ink);font-weight:600}
.quote-featured{grid-column:1/-1;padding:32px 0 28px;border-bottom:1px solid var(--rule)}
.quote-featured blockquote{font-size:clamp(22px,2.4vw,30px);line-height:1.35;letter-spacing:-.02em;max-width:34ch}
@media (max-width:960px){.quotes{grid-template-columns:1fr}.quote{border-bottom:1px solid var(--rule)}}
.quotes .quote:not(.quote-featured){padding-top:24px}

/* 05 : parcours */
.timeline{border-top:2px solid var(--ink)}
.tl{display:grid;grid-template-columns:220px minmax(0,1fr);gap:8px 40px;padding:28px 0;border-bottom:1px solid var(--rule)}
.tl-period{font-size:16px;font-weight:500;color:var(--ink-2);padding-top:4px}
.tl-now .tl-period{color:var(--accent)}
.tl-body{display:grid;gap:6px;max-width:66ch}
.tl h3{font-size:22px}
.now{display:inline-block;margin-left:8px;vertical-align:3px;font-size:13px;font-weight:500;letter-spacing:0;color:var(--accent);border:1px solid currentColor;border-radius:4px;padding:1px 7px}
.tl-org{font-size:16px;color:var(--ink-3)}
.tl-text{color:var(--ink-2);font-size:17px}
.tl-miles{margin-top:6px;font-size:16px;color:var(--ink-3)}

@media (max-width:820px){.tl{grid-template-columns:1fr}}

/* Listes à filets (publications, projets, articles, formations) */
.rows{border-top:2px solid var(--ink)}
.row{position:relative;display:grid;grid-template-columns:170px minmax(0,1fr) 200px;gap:10px 40px;padding:26px 0;border-bottom:1px solid var(--rule);transition:background .3s}
.row-has-link:hover{background:linear-gradient(90deg,transparent,var(--paper-2) 12%,var(--paper-2) 88%,transparent)}
.row-date{font-size:15.5px;color:var(--ink-2);padding-top:4px}
.row-main{display:grid;gap:6px;max-width:68ch}
.row-kind{font-size:14.5px;color:var(--accent);font-weight:500}
.row-title{font-size:22px}
.row-link{text-decoration:none}
.row-link::after{content:"";position:absolute;inset:0}
.row-link:focus-visible{outline:none}
.row:has(.row-link:focus-visible){outline:2px solid var(--accent);outline-offset:2px}
.row-text{color:var(--ink-2);font-size:16.5px}
.row-tags{font-size:14.5px;color:var(--ink-3)}
.case-tags{margin-top:18px;font-size:15px}
.case-fig{margin-top:28px;padding:24px 0;border-top:2px solid var(--ink);border-bottom:1px solid var(--rule)}
.case-fig .proof-fig{font-size:clamp(64px,9vw,112px)}
.article-end .note{margin-top:0}
.row-cta{justify-self:end;font-size:15.5px;font-weight:500;padding-top:4px;white-space:nowrap}
.row-cta span{color:var(--accent);display:inline-block;transition:transform .3s var(--ease)}
.row:hover .row-cta span{transform:translateX(3px)}
@media (max-width:820px){.row{grid-template-columns:1fr;gap:8px;padding:22px 0}.row-cta{justify-self:start}.row-has-link:hover{background:none}}
.more{display:flex;flex-wrap:wrap;gap:12px 28px;margin-top:28px;font-size:16px}
.more a{text-decoration:none;font-weight:500;border-bottom:1px solid var(--rule-2);padding-bottom:2px}
.more a:hover{border-color:var(--accent)}

/* Contact */
.contact{padding:104px 0;background:var(--ink);color:var(--paper)}
.contact .sec-num{color:color-mix(in srgb,var(--paper) 70%,transparent)}
.contact .sec-num span{color:var(--accent-fill)}
.contact-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:56px;align-items:end}
.contact-title{margin-top:20px;font-size:clamp(32px,4vw,52px);letter-spacing:-.035em}
.contact-title em{font-style:normal;color:var(--accent-fill)}
.contact-lede{margin-top:20px;font-size:19px;color:color-mix(in srgb,var(--paper) 82%,transparent);max-width:52ch}
.contact-actions{display:grid;gap:14px;justify-items:start}
.contact .btn-accent:hover{background:var(--paper);border-color:var(--paper);color:var(--ink)}
.contact-or{font-size:15px;color:color-mix(in srgb,var(--paper) 70%,transparent)}
.mail{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.mail a{font-size:clamp(18px,1.8vw,22px);text-decoration:none;border-bottom:1px solid color-mix(in srgb,var(--paper) 40%,transparent);overflow-wrap:anywhere}
.mail a:hover{border-color:var(--accent-fill)}
.copy{font:inherit;font-size:14.5px;min-height:36px;padding:6px 12px;border-radius:var(--r);cursor:pointer;color:var(--paper);background:transparent;border:1px solid color-mix(in srgb,var(--paper) 35%,transparent)}
.copy:hover{border-color:var(--paper)}
.contact-small{font-size:15.5px;color:color-mix(in srgb,var(--paper) 76%,transparent)}
.contact-small a{color:var(--paper)}
@media (prefers-color-scheme:dark){.contact{background:#eef0f2;color:#111317}.contact .sec-num,.contact-or,.contact-small{color:#535a66}.contact-lede{color:#363b44}.contact-title em{color:#955300}.mail a,.contact-small a,.copy{color:#111317}.mail a,.copy{border-color:#bcc1b8}.contact .sec-num span{color:#955300}.contact .btn-accent:hover{background:#111317;border-color:#111317;color:#eef0f2}}
@media (max-width:820px){.contact{padding:72px 0}.contact-grid{grid-template-columns:1fr;gap:32px}.contact .btn{width:100%}}

/* Pages de liste et pages simples */
.page-head{padding:80px 0 48px}
.page-title{margin-top:20px;font-size:clamp(38px,5.2vw,68px);letter-spacing:-.04em}
.page-intro{margin-top:20px;font-size:20px;color:var(--ink-2);max-width:58ch}
.page-list{padding:0 0 104px}
.page-prose{padding-top:0;padding-bottom:104px}
.note{margin-top:48px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px 40px;align-items:center;padding:28px 0;border-top:2px solid var(--ink);border-bottom:1px solid var(--rule)}
.note h2{font-size:24px}
.note p{color:var(--ink-2);grid-column:1}
.note .btn{grid-column:2;grid-row:1/span 2}
@media (max-width:720px){.note{grid-template-columns:1fr}.note .btn{grid-column:1;grid-row:auto}}

/* Article */
.article-head{padding:64px 0 24px}
.article-meta{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:15px;color:var(--ink-3)}
.article-meta a{color:var(--accent);text-decoration:none;font-weight:500}
.article-title{margin-top:22px;font-size:clamp(34px,4.6vw,56px);letter-spacing:-.035em;line-height:1.08}
.article-lead{margin-top:22px;font-size:21px;line-height:1.55;color:var(--ink-2)}
.article-cover{max-width:1040px;margin:24px auto 0;padding:0 var(--gr) 0 var(--gl)}
.article-cover img{width:100%;aspect-ratio:21/9;border-radius:var(--r);border:1px solid var(--rule);object-fit:cover}
.prose{padding-top:40px;padding-bottom:40px;font-size:19px;line-height:1.75;color:var(--ink-2)}
.prose>*+*{margin-top:1.1em}
.prose>:first-child{margin-top:0}
.prose h2{margin-top:2em;font-size:clamp(26px,2.6vw,32px);color:var(--ink)}
.prose h3{margin-top:1.6em;font-size:22px;color:var(--ink)}
.prose strong{color:var(--ink);font-weight:600}
.prose a{color:var(--accent)}
.prose ul,.prose ol{padding-left:1.2em;list-style:revert}
.prose li+li{margin-top:.4em}
.prose blockquote{margin:1.6em 0;padding:4px 0 4px 22px;border-left:3px solid var(--accent-fill);font-size:1.2em;line-height:1.5;color:var(--ink)}
.prose code{font-family:var(--f-mono);font-size:.86em;background:var(--paper-2);border:1px solid var(--rule);border-radius:4px;padding:1px 5px}
.prose pre{background:var(--paper-2);border:1px solid var(--rule);border-radius:var(--r);padding:18px 20px;overflow-x:auto;font-size:15px;line-height:1.7;white-space:pre-wrap;overflow-wrap:anywhere}
.prose pre code{background:none;border:0;padding:0}
.callout{border-top:2px solid var(--ink);border-bottom:1px solid var(--rule);padding:18px 0;font-size:17.5px;color:var(--ink)}
.article-end{padding-bottom:96px}
.author{display:grid;grid-template-columns:72px 1fr;gap:20px;align-items:start;padding:24px 0;border-top:2px solid var(--ink);border-bottom:1px solid var(--rule)}
.author img{width:72px;height:72px;border-radius:50%;object-fit:cover;filter:grayscale(1)}
.author p{font-size:16.5px;color:var(--ink-2)}
.author b{display:block;color:var(--ink);font-size:17px;margin-bottom:2px}
.author .btn{margin-top:14px}
.next{margin-top:56px;display:grid;gap:20px}
.next .row{grid-template-columns:150px minmax(0,1fr)}
.next .row-cta{display:none}
@media (max-width:620px){.author{grid-template-columns:1fr}.next .row{grid-template-columns:112px minmax(0,1fr)}}

/* Pied de page */
.footer{border-top:1px solid var(--rule);padding:56px 0 calc(32px + env(safe-area-inset-bottom,0px))}
.footer-grid{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:40px}
.footer-id{display:grid;gap:14px;max-width:40ch}
.footer-id p{color:var(--ink-2);font-size:16px}
.footer-nav{display:flex;gap:56px}
.footer-nav a{display:inline-block;padding:5px 0;font-size:15.5px;color:var(--ink-2);text-decoration:none}
.footer-nav a:hover{color:var(--ink);text-decoration:underline;text-underline-offset:3px}
.footer-end{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px;margin-top:40px;padding-top:20px;border-top:1px solid var(--rule);font-size:15px;color:var(--ink-3)}
@media (max-width:720px){.footer-grid{grid-template-columns:1fr}.footer-nav{gap:32px;flex-wrap:wrap}}

/* Apparition douce : le contenu reste visible si le script ne charge pas (classe .shown après 2,5 s) */
.js .reveal{opacity:0;transition:opacity .8s var(--ease)}
.js .reveal.in,.js.shown .reveal{opacity:1}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
  .js .reveal{opacity:1;transform:none}
  .sheet-paper{transform:none}
}

/* Version allégée */
.offers-compact .offer{grid-template-columns:minmax(0,1fr) 380px;padding:24px 0;align-items:baseline}
.offers-compact .offer-specs{grid-template-columns:1fr 1fr}
.offers-compact .offer-specs dt{position:static;width:auto;height:auto;clip:auto;overflow:visible}
@media (min-width:961px){.offers-compact .offer:not(:first-child) .offer-specs dt{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}}
@media (max-width:960px){.offers-compact .offer{grid-template-columns:1fr}}
.pledges{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 28px;margin-top:36px;padding-top:22px;border-top:1px solid var(--rule);font-size:16px;color:var(--ink-2)}
.pledges b{color:var(--ink);font-weight:600;margin-right:6px}
.pledges b::before{content:"";display:inline-block;width:6px;height:6px;border-radius:1px;background:var(--accent-fill);margin-right:8px;vertical-align:2px}
.results{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0 32px;border-top:2px solid var(--ink)}
.result{display:flex;flex-direction:column;gap:8px;padding:22px 0}
.result-type{font-size:17px;font-weight:600}
.result-text{color:var(--ink-2);font-size:16.5px}
.result-meta{margin-top:auto;font-size:15px;color:var(--ink-3)}
.result-meta a{color:var(--accent);font-weight:500;text-decoration:none}
@media (max-width:960px){.results{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.results{grid-template-columns:1fr}.result{border-bottom:1px solid var(--rule)}}
#resultats .quotes{grid-template-columns:1fr;border-top:0;margin-top:20px}
.tl-org{color:var(--ink-3);font-weight:400}
.tl{padding:20px 0}
@media (max-width:960px){.pledges{grid-template-columns:1fr 1fr}}@media (max-width:560px){.pledges{grid-template-columns:1fr}}
.pledges li{display:grid;gap:2px}
.result-tag{font-size:22px;font-weight:600;letter-spacing:-.02em;color:var(--accent)}
.result-text a{color:var(--accent);font-weight:500;text-decoration:none;white-space:nowrap}
#resultats .quotes{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 48px;border-top:1px solid var(--rule);margin-top:8px}
@media (max-width:960px){#resultats .quotes{grid-template-columns:1fr}}
.section{padding:80px 0}
@media (max-width:820px){.section{padding:52px 0}}
.topbar-cta{transition:opacity .25s,visibility .25s}
.topbar.hero-cta-visible .topbar-cta{opacity:0;visibility:hidden}
.diagram{margin:2em 0;padding:20px 0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.diagram svg{width:100%;height:auto;display:block}
.dg-box rect{fill:var(--paper-2);stroke:var(--rule-2)}
.dg-main rect{fill:var(--accent-fill);stroke:var(--accent-fill)}
.dg-human rect{fill:var(--paper);stroke:var(--ink)}
.dg-box text{font:500 14px var(--f-sans);fill:var(--ink);text-anchor:middle}
.dg-main text{fill:#1a1206}
.dg-line{fill:none;stroke:var(--ink-3);stroke-width:1.5}
.dg-dash{stroke-dasharray:4 4}
.dg-note{font:13px var(--f-sans);fill:var(--ink-3)}
.diagram figcaption{margin-top:12px;font-size:15.5px;color:var(--ink-3)}
@media (min-width:961px){.offers-compact .offer{grid-template-columns:minmax(0,1fr) 300px}}
.offers-compact .offer-specs{grid-template-columns:1fr}

/* Visuels */
.row-with-img{grid-template-columns:200px minmax(0,1fr) 200px;align-items:start}
.row-thumb{border-radius:var(--r);overflow:hidden;aspect-ratio:3/2;background:var(--paper-2)}
.row-img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
.row-has-link:hover .row-img{transform:scale(1.04)}
.row-when{color:var(--ink-3);font-weight:400}
@media (max-width:820px){.row-with-img{grid-template-columns:1fr}.row-thumb{max-width:100%}}
.result-img{width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:var(--r);margin-bottom:6px;background:var(--paper-2)}
.reads{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}
.read a{display:grid;gap:10px;text-decoration:none}
.read-img{width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:var(--r);transition:transform .8s var(--ease)}
.read a:hover .read-img{transform:scale(1.03)}
.read a{overflow:hidden}
.read-kind{font-size:14.5px;color:var(--accent);font-weight:500}
.read h3{font-size:20px}
@media (max-width:820px){.reads{grid-template-columns:1fr}}
.article-cover img{aspect-ratio:21/9}
@media (max-width:820px){
  .dg-wide{display:none!important}.dg-tall{display:block!important;max-width:420px;margin:0 auto}
  .reads{gap:0}.read a{grid-template-columns:112px minmax(0,1fr);align-items:start;gap:4px 16px;padding:16px 0;border-bottom:1px solid var(--rule)}
  .read-img{grid-row:1/3;aspect-ratio:1}.read h3{font-size:18px}
}
@media (max-width:560px){
  .result{display:grid;grid-template-columns:112px minmax(0,1fr);gap:6px 16px;align-content:start}
  .result-img{grid-row:1/4;aspect-ratio:1;margin:0}.result>*:not(.result-img){grid-column:2}
  .row-with-img .row-thumb{max-width:200px}
}
/* Illustrations au trait */
.row-thumb,.result-img,.read-img,.article-cover img{border:1px solid var(--rule);background:#f6f7f5}
.row-img,.result-img,.read-img,.article-cover img{object-fit:contain}
@media (prefers-color-scheme:dark){.row-thumb,.result-img,.read-img,.article-cover img{border-color:transparent;opacity:.92}}

.diagram .dg-tall{display:none}
.offer-cost{display:block;color:var(--ink-2);font-size:16px;margin-top:2px}
.dg-note[text-anchor=end]{text-anchor:end}
.article-cover img{aspect-ratio:3/2;max-height:320px;width:100%}
@media (max-width:820px){
  .row-with-img{grid-template-columns:112px minmax(0,1fr);gap:6px 16px}
  .row-with-img .row-thumb{grid-row:1/3;aspect-ratio:1;max-width:none}
  .row-with-img .row-main,.row-with-img .row-cta{grid-column:2;justify-self:start}
  .prose pre{white-space:pre-wrap;word-break:break-word}
}
.tool-card{display:grid;grid-template-columns:90px minmax(0,1fr);gap:8px 20px;margin:1.5em 0;padding:18px 20px;border:1px solid var(--rule);border-radius:var(--r);background:var(--paper-2);font-size:16px}
.tool-card dt{font-family:var(--f-mono);font-size:13px;color:var(--ink-3);padding-top:3px}
.tool-card dd{margin:0}
.prose,.row-text,.article-lead{hyphens:manual}
@media (max-width:560px){#resultats .quotes{border-top:0}}
.sheet-stamp,.now{font-size:14px}

/* ===== Refonte : situations, livrable, rapport ===== */
.sits{border-top:2px solid var(--ink)}
.sit{display:grid;grid-template-columns:240px minmax(0,1fr) 300px;gap:24px 40px;padding:32px 0;border-bottom:1px solid var(--rule);align-items:start}
.sit-img{width:100%;aspect-ratio:3/2;object-fit:contain;border-radius:var(--r)}
.sit-main{display:grid;gap:8px}
.sit-q{font-size:15.5px;font-weight:500;color:var(--accent)}
.sit h3{font-size:clamp(22px,2.2vw,27px);letter-spacing:-.02em}
.sit-text{color:var(--ink-2);font-size:17px}
.sit-link{justify-self:start;margin-top:4px;font-size:15.5px;font-weight:500;text-decoration:none;border-bottom:1px solid var(--rule-2)}
.sit-link:hover{border-color:var(--accent)}
.sit-link span{color:var(--accent)}
.sit-specs{display:grid;gap:12px;margin:0;padding-left:24px;border-left:1px solid var(--rule)}
.sit-specs dt{font-size:13.5px;color:var(--ink-3)}
.sit-specs dd{margin:0;font-size:16.5px;color:var(--ink)}
.sit-specs div:nth-child(2) dd{font-weight:500}
@media (max-width:1080px){.sit{grid-template-columns:200px minmax(0,1fr)}.sit-specs{grid-column:2}}
@media (max-width:640px){
  .sit{grid-template-columns:96px minmax(0,1fr);gap:14px 16px;padding:24px 0}
  .sit-img{aspect-ratio:1}
  .sit-main{grid-column:2}
  .sit-specs{grid-column:1/-1;padding:14px 0 0;border-left:0;border-top:1px solid var(--rule);grid-template-columns:1fr 1fr}
  .sit-specs div:last-child{grid-column:1/-1}
}
.section-alt{background:var(--paper-2)}
.rep-teaser{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:48px;padding:36px;background:var(--paper);border:1px solid var(--rule);border-radius:10px;box-shadow:0 1px 0 var(--rule),0 24px 48px -32px rgba(0,0,0,.25)}
.rep-kicker{font-size:14px;color:var(--ink-3);display:flex;flex-wrap:wrap;gap:6px 12px;align-items:center}
.rep-kicker span{font-family:var(--f-mono);font-size:12.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--accent);border:1px solid currentColor;border-radius:4px;padding:2px 8px}
.rep-verdict{margin-top:18px;font-size:clamp(19px,1.8vw,22px);line-height:1.45;letter-spacing:-.01em}
.rep-key{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:24px 0 0;padding-top:20px;border-top:1px solid var(--rule)}
.rep-key dt{font-size:13.5px;color:var(--ink-3)}
.rep-key dd{margin:4px 0 0;font-size:19px;font-weight:500;letter-spacing:-.01em}
.rep-h{font-size:14px;color:var(--ink-3);margin-bottom:14px}
.health{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.health li{display:grid;grid-template-columns:minmax(0,1fr) 46px;gap:4px 12px;align-items:center}
.health-d{font-size:15.5px}
.health-n{grid-row:1/3;grid-column:2;justify-self:end;font-family:var(--f-mono);font-size:14px;color:var(--ink-2)}
.health-bar{height:6px;background:var(--paper-3);border-radius:3px;overflow:hidden}
.health-bar i{display:block;height:100%;background:var(--ink-2);border-radius:3px}
.health-bar i.low{background:var(--accent-fill)}
.health-c{grid-column:1;font-size:13.5px;color:var(--ink-3)}
.rep-teaser .health-c{display:none}
@media (max-width:900px){.rep-teaser{grid-template-columns:1fr;padding:24px;gap:32px}}
@media (max-width:520px){.rep-key{grid-template-columns:1fr 1fr}.rep-key div:first-child{grid-column:1/-1}}
.rep-page{padding:0 0 96px}
.rep-sheet{max-width:880px;margin:0 auto;background:var(--paper);border:1px solid var(--rule);border-radius:10px;padding:clamp(24px,5vw,56px);box-shadow:0 30px 60px -40px rgba(0,0,0,.3)}
.rep-sheet-head{padding-bottom:24px;border-bottom:2px solid var(--ink)}
.rep-company{margin-top:16px;font-size:clamp(22px,2.6vw,30px);letter-spacing:-.02em;font-weight:500}
.rep-context{margin-top:6px;color:var(--ink-2)}
.rep-block{padding:32px 0;border-bottom:1px solid var(--rule)}
.rep-block:last-child{border-bottom:0;padding-bottom:0}
.rep-block h2{font-size:20px;display:flex;gap:12px;align-items:baseline;margin-bottom:18px}
.rep-block h2 span{font-family:var(--f-mono);font-size:14px;color:var(--accent)}
.rep-table-wrap{overflow-x:auto}
.rep-table{width:100%;border-collapse:collapse;font-size:15.5px}
.rep-table th,.rep-table td{text-align:left;padding:12px 12px 12px 0;border-bottom:1px solid var(--rule);vertical-align:top}
.rep-table thead th{font-size:13.5px;font-weight:400;color:var(--ink-3)}
.rep-table tbody th{font-weight:500}
.crit{display:inline-block;font-size:13px;font-weight:500;padding:2px 8px;border-radius:4px;white-space:nowrap}
.crit-hi{background:var(--accent-fill);color:#1a1206}
.crit-mid{background:var(--accent-soft);color:var(--accent)}
.crit-lo{background:var(--paper-3);color:var(--ink-2)}
@media (max-width:640px){
  .rep-table thead{display:none}
  .rep-table tr{display:grid;grid-template-columns:1fr auto;gap:4px 12px;padding:14px 0;border-bottom:1px solid var(--rule)}
  .rep-table th,.rep-table td{border:0;padding:0}
  .rep-table tbody th{grid-column:1}
  .rep-table td:nth-child(2){grid-column:2;grid-row:1}
  .rep-table td[data-label]{grid-column:1/-1;font-size:14.5px;color:var(--ink-2)}
  .rep-table td[data-label]::before{content:attr(data-label) " : ";color:var(--ink-3)}
}
.rep-plan{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.rep-plan li{padding-top:14px;border-top:2px solid var(--accent-fill)}
.rep-plan b{font-weight:500}
.rep-plan p{margin-top:6px;font-size:15.5px;color:var(--ink-2)}
@media (max-width:640px){.rep-plan{grid-template-columns:1fr}}
.rep-annex{columns:2;gap:32px;color:var(--ink-2);font-size:15.5px}
@media (max-width:640px){.rep-annex{columns:1}}
.rep-page .note{max-width:880px;margin:48px auto 0}
/* Contact toujours sombre */
@media (prefers-color-scheme:dark){.contact{background:#181b21;color:var(--ink);border-top:2px solid var(--accent-fill)}.contact .sec-num,.contact-or,.contact-small{color:var(--ink-3)}.contact-lede{color:var(--ink-2)}.contact-title em{color:var(--accent-fill)}.contact .mail a,.contact-small a{color:var(--ink)}}
@media (prefers-color-scheme:dark){.contact .copy{color:var(--ink-2);border-color:var(--rule-2)}}

/* Passe 13 */
.sit-specs dt,.health-c,.rep-table thead th,.rep-key dt,.crit,.tool-card dt,.rep-kicker span{font-size:14.5px}
.sit-specs dt,.rep-key dt{color:var(--ink-2)}
.rep-scope{margin-top:10px;font-size:15px;color:var(--ink-3)}
.rep-table tfoot th,.rep-table tfoot td{font-weight:600;border-bottom:0;border-top:2px solid var(--ink)}
.rep-deal{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:16px 28px}
.rep-deal b{font-weight:500}
.rep-deal p{margin-top:4px;font-size:15.5px;color:var(--ink-2)}
@media (max-width:640px){
  .rep-deal{grid-template-columns:1fr}
  .rep-table tfoot tr{display:flex;justify-content:space-between}
  .rep-table tfoot td:empty{display:none}
  .sit-specs{border-top:0;padding-top:0;grid-template-columns:1fr 1fr}
}
@media (prefers-color-scheme:dark){.sit-img,.row-img,.result-img,.read-img,.article-cover img{filter:brightness(.8) contrast(1.08)}}
@media (max-width:640px){.rep-table tfoot tr{border-top:2px solid var(--ink);border-bottom:0}.rep-table tfoot th,.rep-table tfoot td{border-top:0}}

.bridge{margin:56px 0 20px;font-size:clamp(18px,1.6vw,20px);color:var(--ink-2);max-width:60ch}
#methode .pledges{margin-top:48px}

.steps-2{grid-template-columns:repeat(2,minmax(0,1fr))}
@media (max-width:640px){.steps-2{grid-template-columns:1fr}}
#methode .bridge{margin:40px 0 20px}
.pledges-contact{margin-top:28px;grid-template-columns:1fr;gap:10px;border:0;padding:0}
.pledges-contact li{color:color-mix(in srgb,var(--paper) 80%,transparent);font-size:16px}
.pledges-contact b{color:var(--paper)}
@media (prefers-color-scheme:dark){.pledges-contact li{color:var(--ink-2)}.pledges-contact b{color:var(--ink)}}

/* Passe 15 */
.hero-note{font-size:16px;color:var(--ink-2)}
.rep-kicker,.health-c{color:var(--ink-2)}
.page-list{padding-bottom:72px}
.article-cover img{max-height:260px}
.row-when,.row-date{white-space:nowrap}
#methode .bridge{color:var(--ink)}
@media (max-width:820px){
  .row-with-img{grid-template-columns:96px minmax(0,1fr);gap:8px 16px}
  .row-with-img .row-thumb{grid-row:1/3;aspect-ratio:1}
  .row-with-img .row-main{display:contents}
  .row-with-img .row-kind{grid-column:2;grid-row:1;align-self:end}
  .row-with-img .row-title{grid-column:2;grid-row:2;align-self:start}
  .row-with-img .row-text,.row-with-img .row-tags,.row-with-img .row-cta{grid-column:1/-1}
}
@media (max-width:820px){.row-with-img .row-img,.sit-img{object-fit:cover;object-position:center}}

.facts-card{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 32px;margin:8px 0 32px;padding:22px 24px;border:1px solid var(--rule);border-radius:var(--r);background:var(--paper-2)}
.facts-card dt{font-size:14.5px;color:var(--ink-2)}
.facts-card dd{margin:2px 0 0;font-size:16.5px}
@media (max-width:640px){.facts-card{grid-template-columns:1fr}}

.tr-program{display:grid;gap:16px;margin:8px 0 8px}
.tr-day{padding:18px 22px;border:1px solid var(--rule);border-left:3px solid var(--accent-fill);border-radius:var(--r)}
.tr-day h3{margin:0 0 8px;font-size:18px}
.tr-day ul{margin:0}
.dg-sub{font:12.5px var(--f-sans);fill:#3a2a10}
.table-wrap{overflow-x:auto;margin:1.5em 0}
.prose table{width:100%;border-collapse:collapse;font-size:15.5px}
.prose th,.prose td{text-align:left;padding:10px 14px 10px 0;border-bottom:1px solid var(--rule);vertical-align:top}
.prose thead th{font-size:14.5px;font-weight:500;color:var(--ink-2);border-bottom:2px solid var(--ink)}
.article-source{margin-top:2em;font-size:15.5px;color:var(--ink-2)}

/* Tableaux d'articles, plus denses et lisibles */
.prose .table-wrap{margin:1.75em 0;border:1px solid var(--rule);border-radius:var(--r);overflow-x:auto}
.prose table.t{font-size:15px;line-height:1.45;width:100%}
.prose table.t th,.prose table.t td{padding:11px 16px;border-bottom:1px solid var(--rule)}
.prose table.t tr:last-child>*{border-bottom:0}
.prose table.t thead th{font-size:13px;font-weight:500;letter-spacing:.02em;text-transform:uppercase;color:var(--ink-3);background:var(--paper-2);border-bottom:1px solid var(--rule)}
.prose table.t tbody tr>*:first-child{font-weight:500;color:var(--ink)}
.prose table.t tbody td{color:var(--ink-2)}
.prose table.t tbody tr:nth-child(even){background:color-mix(in srgb,var(--paper-2) 50%,transparent)}
@media (max-width:720px){
  .prose .table-wrap{border:0;overflow:visible}
  .prose table.t,.prose table.t tbody,.prose table.t tr,.prose table.t td,.prose table.t th{display:block;width:auto}
  .prose table.t thead{display:none}
  .prose table.t tbody tr{padding:14px 16px;margin-bottom:10px;border:1px solid var(--rule);border-radius:var(--r);background:var(--paper)}
  .prose table.t tbody tr:nth-child(even){background:var(--paper)}
  .prose table.t tbody tr>*{padding:0;border:0}
  .prose table.t tbody tr>*:first-child{font-size:16px;margin-bottom:6px}
  .prose table.t tbody tr>*:not(:first-child){margin-top:4px}
  .prose table.t tbody tr>*:not(:first-child)::before{content:attr(data-label) " : ";color:var(--ink-3);font-size:13.5px}
}

.tl-figs{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px 28px}
.tl-figs li{font-size:15px;color:var(--ink-2)}
.tl-figs b{font-size:20px;font-weight:500;color:var(--ink);letter-spacing:-.01em;margin-right:4px}

/* Recherche (spotlight) */
.search-btn{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:6px 10px 6px 12px;border:1px solid var(--rule-2);border-radius:var(--r);background:transparent;color:var(--ink-2);font:inherit;font-size:14.5px;cursor:pointer;transition:border-color .2s,color .2s}
.search-btn:hover{border-color:var(--ink-3);color:var(--ink)}
.search-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.search-btn svg,.spot-field svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;flex:none}
.search-btn kbd,.spot kbd{font:500 12px var(--f-mono);padding:2px 6px;border:1px solid var(--rule-2);border-radius:4px;color:var(--ink-3);background:var(--paper-2)}
@media (max-width:1180px){.search-label{display:none}}
@media (max-width:960px){.search-btn{min-height:44px;min-width:44px;justify-content:center;padding:0}.search-btn kbd{display:none}}
.spot{width:min(680px,calc(100vw - 32px));max-height:min(620px,calc(100vh - 96px));margin:10vh auto auto;padding:0;border:1px solid var(--rule-2);border-radius:12px;background:var(--paper);color:var(--ink);box-shadow:0 30px 80px -20px rgba(0,0,0,.45)}
.spot::backdrop{background:rgba(10,12,16,.45);backdrop-filter:blur(3px)}
.spot-box{display:flex;flex-direction:column;max-height:inherit}
.spot-field{display:flex;align-items:center;gap:12px;padding:14px 16px;border-bottom:1px solid var(--rule)}
.spot-field svg{width:20px;height:20px;color:var(--ink-3)}
.spot-field input{flex:1;min-width:0;border:0;background:transparent;color:var(--ink);font:inherit;font-size:18px;outline:none}
.spot-field input::-webkit-search-cancel-button{display:none}
.spot-close{border:1px solid var(--rule-2);border-radius:4px;background:transparent;color:var(--ink-3);font:500 12px var(--f-mono);padding:3px 7px;cursor:pointer}
.spot-list{list-style:none;margin:0;padding:8px;overflow-y:auto;flex:1}
.spot-list a{display:grid;grid-template-columns:96px minmax(0,1fr);gap:2px 14px;padding:10px 12px;border-radius:8px;text-decoration:none;color:inherit}
.spot-list li[aria-selected] a,.spot-list a:hover{background:var(--paper-2)}
.spot-list li[aria-selected] a{box-shadow:inset 3px 0 0 var(--accent-fill)}
.spot-kind{grid-row:1/3;font-size:13px;color:var(--accent);font-weight:500;padding-top:2px}
.spot-title{font-size:16.5px;font-weight:500}
.spot-snip{font-size:14px;color:var(--ink-2);line-height:1.45;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.spot mark{background:var(--accent-soft);color:inherit;border-radius:2px;padding:0 1px}
.spot-empty{padding:24px 12px;color:var(--ink-2)}
.spot-foot{display:flex;gap:18px;padding:10px 16px;border-top:1px solid var(--rule);font-size:13px;color:var(--ink-3)}
.spot-foot kbd{margin-right:4px}
@media (max-width:640px){.spot{margin:12px auto auto;max-height:calc(100vh - 24px)}.spot-list a{grid-template-columns:1fr}.spot-kind{grid-row:auto}.spot-foot{display:none}}
/* Barre de navigation : toujours sur une ligne, sans saut au défilement */
.topbar-in{flex-wrap:nowrap}
.nav,.search-btn,.topbar-cta,.brand{flex-shrink:0}
.nav a,.topbar-cta,.search-btn,.brand-name{white-space:nowrap}
.runhead{flex:1 1 0;min-width:0;overflow:hidden}
@media (max-width:1440px){.search-label{display:none}.search-btn{padding:6px 10px}}
@media (max-width:1360px){.runhead{display:none}.topbar-in>.brand{margin-right:auto}}
@media (max-width:1600px){.search-label{display:none}.search-btn{padding:6px 10px}}

/* CV */
.cv-modal{width:min(860px,calc(100vw - 32px));max-height:calc(100vh - 64px);margin:auto;padding:0;border:1px solid var(--rule-2);border-radius:12px;background:var(--paper);color:var(--ink);box-shadow:0 30px 80px -20px rgba(0,0,0,.45);overflow:hidden}
.cv-modal[open]{display:flex;flex-direction:column}
.cv-modal::backdrop{background:rgba(10,12,16,.5);backdrop-filter:blur(3px)}
.cv-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border-bottom:1px solid var(--rule);background:var(--paper-2)}
.cv-bar p{font-family:var(--f-mono);font-size:13px;color:var(--ink-3);letter-spacing:.06em;text-transform:uppercase}
.cv-bar>div{display:flex;gap:10px;align-items:center}
.cv-close{border:1px solid var(--rule-2);border-radius:var(--r);background:transparent;color:var(--ink-2);font:inherit;font-size:14.5px;padding:8px 12px;cursor:pointer;min-height:40px}
.cv-scroll{overflow-y:auto;padding:clamp(20px,4vw,44px)}
.cv-doc{font-size:15.5px;line-height:1.55}
.cv-head{display:flex;gap:20px;align-items:center;padding-bottom:20px;border-bottom:2px solid var(--ink)}
.cv-photo{width:84px;height:84px;border-radius:50%;object-fit:cover;filter:grayscale(1)}
.cv-name{font-size:clamp(26px,3vw,34px);letter-spacing:-.025em}
.cv-title{color:var(--accent);font-weight:500;margin-top:2px}
.cv-contact{margin-top:6px;font-size:14px;color:var(--ink-2)}
.cv-contact a{color:inherit}
.cv-summary{margin-top:20px;color:var(--ink-2);font-size:16.5px}
.cv-sec{margin-top:26px}
.cv-sec h3{font-family:var(--f-mono);font-size:13px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);padding-bottom:8px;border-bottom:1px solid var(--rule);margin-bottom:14px}
.cv-job{display:grid;grid-template-columns:150px minmax(0,1fr);gap:4px 20px;padding:10px 0}
.cv-period{font-size:14px;color:var(--ink-2);padding-top:2px;white-space:nowrap}
.cv-role{font-weight:600}
.cv-role span{font-weight:400;color:var(--ink-2)}
.cv-job ul,.cv-trainings{margin:6px 0 0;padding-left:18px;color:var(--ink-2)}
.cv-job li,.cv-trainings li{margin:3px 0}
.cv-trainings span{color:var(--ink-3)}
.cv-skills{display:grid;gap:8px;margin:0}
.cv-skills div{display:grid;grid-template-columns:150px minmax(0,1fr);gap:20px}
.cv-skills dt{font-weight:600}
.cv-skills dd{margin:0;color:var(--ink-2)}
@media (max-width:640px){.cv-job,.cv-skills div{grid-template-columns:1fr;gap:2px}.cv-head{flex-direction:column;align-items:flex-start}.cv-modal{max-height:calc(100vh - 24px)}.cv-bar .btn{padding:8px 10px}}
.cv-page{background:var(--paper)}
.cv-page main{max-width:860px;margin:0 auto;padding:32px 24px 64px}
.cv-back{font-size:14px;color:var(--ink-3);margin-bottom:24px}
@media print{
  @page{size:A4;margin:14mm 14mm}
  .cv-page{background:#fff;color:#111}
  .cv-page main{padding:0;max-width:none}
  .cv-back{display:none}
  .cv-doc{font-size:10.5pt;line-height:1.45;color:#111}
  .cv-title{color:#955300}
  .cv-summary,.cv-job ul,.cv-skills dd,.cv-contact,.cv-period,.cv-trainings{color:#333}
  .cv-head{border-color:#111}
  .cv-sec{break-inside:avoid-page;margin-top:16px}
  .cv-job{break-inside:avoid;padding:5px 0}
  .cv-photo{width:64px;height:64px}
  .cv-name{font-size:22pt}
}
.cv-job ul,.cv-trainings{list-style:disc}.cv-job li::marker,.cv-trainings li::marker{color:var(--accent-fill)}

/* Parcours */
.pc{padding:8px 0 96px}
.pc-body{display:grid;gap:0}
.pc-chapter{display:grid;grid-template-columns:150px minmax(0,1fr);gap:8px 32px;padding:36px 0;border-top:1px solid var(--rule)}
.pc-chapter:first-child{border-top:2px solid var(--ink)}
.pc-when{font-family:var(--f-mono);font-size:14px;color:var(--accent);padding-top:6px}
.pc-chapter h2{font-size:clamp(22px,2.4vw,28px);letter-spacing:-.02em;margin-bottom:12px}
.pc-chapter p{color:var(--ink-2);font-size:17.5px;line-height:1.7;margin:0 0 14px}
.pc-chapter p a{color:var(--ink)}
.pc-figs{list-style:none;margin:18px 0 22px;padding:16px 0;display:flex;flex-wrap:wrap;gap:10px 32px;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.pc-figs li{font-size:15px;color:var(--ink-2);max-width:220px}
.pc-figs b{display:block;font-size:30px;font-weight:500;letter-spacing:-.02em;color:var(--ink)}
@media (max-width:720px){.pc-chapter{grid-template-columns:1fr;padding:28px 0}.pc-chapter p{font-size:16.5px}}
