:root{--paper: #f1ede1;--ivory: #f7f4ea;--vellum: #e4ddc9;--vellum-2: #d9d2bc;--ink: #1e1a14;--ink-2: #2d2820;--red: #a8332b;--red-dk: #7e2620;--red-soft: rgba(168, 51, 43, .08);--red-border: rgba(168, 51, 43, .22);--ochre: #b8834e;--ochre-dk: #8f6537;--stone: #8b8377;--stone-dk: #4a4740;--line: #c9c2b0;--line-dk: #2a2620;--bg-base: var(--paper);--bg-alt: var(--vellum);--bg-dark: var(--ink);--surface-card: var(--paper);--surface-hover: var(--ivory);--text-strong: var(--ink);--text-body: var(--ink-2);--text-muted: var(--stone-dk);--text-faint: var(--stone);--text-on-dark: var(--paper);--accent: var(--red);--accent-press: var(--red-dk);--accent-2: var(--ochre);--rule: var(--line);--rule-strong: var(--ink);--rule-on-dark: var(--paper);--font-h: "Bricolage Grotesque", system-ui, sans-serif;--font-b: "Work Sans", system-ui, sans-serif;--font-m: "JetBrains Mono", "SF Mono", Menlo, monospace;--font-s: "Instrument Serif", Georgia, serif;--w-regular: 400;--w-medium: 500;--w-semibold: 600;--w-bold: 700;--w-extrabold: 800;--t-h1: clamp(48px, 8vw, 116px);--t-h2: clamp(34px, 5vw, 60px);--t-h3: clamp(22px, 2.4vw, 32px);--t-h4: 17px;--t-lead: clamp(18px, 1.8vw, 22px);--t-body: 16.5px;--t-body-sm: 14.5px;--t-caption: 13px;--t-folio: 11px;--t-eyebrow: 11px;--t-micro: 10.5px;--lh-display: .98;--lh-tight: 1.15;--lh-snug: 1.35;--lh-body: 1.55;--lh-relaxed: 1.65;--ls-display: -.035em;--ls-h2: -.03em;--ls-h3: -.025em;--ls-tight: -.015em;--ls-body: -.005em;--ls-folio: .14em;--ls-eyebrow: .2em;--ls-label: .18em;--sp-1: .25rem;--sp-2: .5rem;--sp-3: .75rem;--sp-4: 1rem;--sp-5: 1.5rem;--sp-6: 2rem;--sp-7: 2.75rem;--sp-8: 4rem;--sp-9: 6rem;--sp-10: 7.75rem;--bw-hair: 1px;--bw-rule: 1.5px;--bw-bold: 2.5px;--bw-heavy: 3px;--r-none: 0;--r-xs: 2px;--r-sm: 3px;--shadow-card: 0 1px 0 rgba(30, 26, 20, .04);--shadow-pop: 0 18px 50px -22px rgba(30, 26, 20, .35);--ring: 0 0 0 3px rgba(168, 51, 43, .3);--max: 1280px;--max-sm: 1020px;--pad: 36px}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--paper);color:var(--ink);font-family:var(--font-b);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased}::selection{background:var(--red);color:var(--paper)}h1,h2{font-family:var(--font-h);color:var(--ink);letter-spacing:-.03em;font-weight:500;line-height:1.04}h1{font-size:clamp(36px,6vw,68px);margin-bottom:14px}h2{font-size:clamp(22px,3vw,30px);margin:48px 0 16px}a{color:var(--red);text-decoration:none}a:hover{text-decoration:underline}.wrap{max-width:820px;margin:0 auto;padding:0 28px}.nav{border-bottom:1px solid var(--line);background:#f1ede1eb;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);position:sticky;top:0;z-index:50}.nav-in{max-width:820px;margin:0 auto;padding:18px 28px;display:flex;justify-content:space-between;align-items:center}.brand{font-family:var(--font-h);font-weight:600;font-size:20px;letter-spacing:-.03em;display:inline-flex;align-items:center;gap:9px}.brand .dot{width:7px;height:7px;border-radius:50%;background:var(--red)}.back{font-family:var(--font-m);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--stone-dk)}.back:hover{color:var(--red)}header.h{padding:72px 0 8px}.folio{font-family:var(--font-m);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--red)}main{padding:24px 0 96px}p{margin:0 0 14px}.row{display:grid;grid-template-columns:200px 1fr;gap:18px;padding:12px 0;border-bottom:1px solid var(--line)}@media (max-width: 560px){.row{grid-template-columns:1fr;gap:4px}}.row .k{font-family:var(--font-m);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--stone-dk);padding-top:3px}ul.dl{margin:0 0 14px;padding-left:0;list-style:none}ul.dl li{padding:7px 0;border-bottom:1px solid var(--line)}ul.dl li:before{content:"→ ";color:var(--red)}.note{font-size:13.5px;color:var(--stone-dk);border-left:2px solid var(--ochre);padding:10px 0 10px 16px;margin:24px 0}.cookie-prefs{border:2px solid var(--ink);background:var(--ivory);padding:20px 22px;margin:18px 0 8px}.ck-status{font-family:var(--font-m);font-size:13px;font-weight:600;letter-spacing:.04em}.ck-status[data-state=granted]{color:#2f6b3a}.ck-status[data-state=denied]{color:var(--red)}.ck-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}.ck-btn{font-family:var(--font-b);font-weight:500;font-size:14px;padding:12px 22px;cursor:pointer;border:1.5px solid var(--ink);background:transparent;color:var(--ink);transition:all .15s}.ck-btn:hover{background:#1e1a140f}.ck-btn.primary{background:var(--ink);color:var(--paper)}.ck-btn.primary:hover{background:var(--red);border-color:var(--red)}.ck-btn:disabled{opacity:.4;cursor:default}footer{border-top:1px solid var(--line);padding:28px 0;font-family:var(--font-m);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--stone-dk)}

/* ═══ passe accessibilité S31 · 2026-07-27 ═══════════════════
   Aucune couleur de la palette n'est modifiée : on ne fait que
   choisir, parmi les tokens existants, celui qui atteint le seuil.
   ─────────────────────────────────────────────────────────── */

/* 2.4.7 Focus visible — un anneau au clavier, invisible à la souris. */
:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
a:focus-visible,button:focus-visible,summary:focus-visible,
[role=button]:focus-visible,[tabindex]:focus-visible{
  outline:2px solid var(--ink);outline-offset:3px;border-radius:var(--r-xs)}
input:focus-visible,textarea:focus-visible,select:focus-visible{
  outline:2px solid var(--red-dk);outline-offset:1px}
.on-dark :focus-visible,.dark :focus-visible,
section[class*=dark] :focus-visible,footer :focus-visible{
  outline-color:var(--paper)}

/* 1.4.1 + 1.4.11 Liens en pleine prose : soulignés, donc repérables
   sans dépendre de la seule couleur. Les liens de navigation, les
   boutons et les cartes gardent leur traitement d'origine. */
main p > a:not(.btn):not(.card):not([class*=cta]),
main li > a:not(.btn):not(.card):not([class*=cta]),
main dd > a:not(.btn):not(.card):not([class*=cta]),
.legal a:not(.btn),.note a:not(.btn),
figcaption a:not(.btn),blockquote a:not(.btn){
  text-decoration:underline;text-underline-offset:.18em;
  text-decoration-thickness:from-font}
main p > a:not(.btn):not(.card):not([class*=cta]):hover,
main li > a:not(.btn):not(.card):not([class*=cta]):hover{
  text-decoration-thickness:2px}

/* Utilitaire : lisible par un lecteur d'écran, invisible à l'œil. */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}

/* 2.3.3 Respect de « réduire les animations » (réglage système). */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.01ms !important;
    animation-iteration-count:1 !important;transition-duration:.01ms !important;
    scroll-behavior:auto !important}
}

/* Pages légales : toute la page est de la prose. On souligne tous les liens
   du contenu, y compris ceux posés dans des <div> (bloc éditeur, hébergeur). */
main a:not(.btn):not(.skip-link):not([class*=cta]),
.legal-body a:not(.btn),.wrap a:not(.btn):not(.skip-link):not([class*=cta]):not(.nav-link){
  text-decoration:underline;text-underline-offset:.18em;text-decoration-thickness:from-font}
nav a,header a,footer a.btn,.nav a{text-decoration:none}

/* Lien d'évitement : hors écran, révélé au premier Tab (WCAG 2.4.1). */
.skip-link{position:absolute;left:-9999px;top:0;z-index:2000;background:var(--ink);color:var(--paper);font-family:var(--font-b);font-size:14px;padding:10px 16px;text-decoration:none}
.skip-link:focus{left:8px;top:8px}
