/*
Theme Name: Encre & Données
Theme URI: https://p2plendingplatform.fr
Author: P2PLendingPlatform.fr
Author URI: https://p2plendingplatform.fr
Description: Thème éditorial « Encre & Données » — publication financière indépendante sur le prêt participatif : papier chaud, encre marine, accent ambre, données en chasse fixe, couvertures programmatiques SVG. Aucune dépendance, un seul CSS.
Version: 2.2.0
Requires at least: 6.5
Tested up to: 7.0
Requires PHP: 8.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: encre-donnees
*/

/* =========================================================================
   B. JETONS DE DESIGN
   ====================================================================== */
:root{
  /* ---------- COULEURS : papier ---------- */
  --paper:            #F5F0E6; /* fond principal — papier chaud ivoire, jamais blanc */
  --paper-raised:     #FBF7EF; /* surfaces surélevées : cartes, fact-box, drawer */
  --paper-sunken:     #ECE4D4; /* creux : zébrure de tableau, puits, champs input */
  --paper-edge:       #E4DAC6; /* liseré chaud entre deux surfaces papier */

  /* ---------- COULEURS : encre (marine profond) ---------- */
  --ink:              #16202B; /* texte principal + sections sombres (near-black navy) */
  --ink-2:            #2A3A4A; /* titres secondaires sur sombre, aplat marine adouci */
  --ink-soft:        #51606E; /* texte atténué : légendes, méta, captions */
  --ink-faint:        #8A93A0; /* placeholders, texte désactivé */
  --hairline:         rgba(22,32,43,.14);  /* filet standard */
  --hairline-strong:  rgba(22,32,43,.28);  /* filet appuyé */
  --rule:             #16202B;             /* filet plein de section (2px) */
  --on-ink:           #EFE9DC; /* texte papier posé sur aplat --ink */
  --on-ink-soft:      #A9B2BC; /* texte atténué sur aplat --ink */

  /* ---------- COULEURS : ambre (accent unique) ---------- */
  --amber:            #C15A12; /* accent primaire : CTA, notes, donnée-clé, liens actifs */
  --amber-strong:     #A24A0C; /* état survol/pressé */
  --amber-bright:     #D9791E; /* glyphes étoiles + remplissages data-viz (même famille) */
  --amber-tint:       #F1E1CB; /* fond de surlignage, pastilles ambre, jauge fond */
  --amber-line:       rgba(193,90,18,.32); /* filet ambre discret */

  /* ---------- COULEURS : rouge (risque / alerte UNIQUEMENT) ---------- */
  --alert:            #9E2B20; /* rouge brique — risque, incident, verdict « À éviter » */
  --alert-strong:     #7F2019;
  --alert-tint:       #F1DBD5; /* fond de bloc alerte */

  /* ---------- POLICES ---------- */
  --font-display: "Fraunces", Georgia, "Times New Roman", serif;      /* titres */
  --font-body:    "IBM Plex Sans", system-ui, -apple-system, sans-serif; /* corps / UI */
  --font-mono:    "IBM Plex Mono", "SFMono-Regular", ui-monospace, monospace; /* données */

  /* Axes Fraunces (police variable) : opsz 9→144, wght 340→640, SOFT 0 (net), WONK 0 */
  --fr-display: "opsz" 144, "SOFT" 0, "WONK" 0;
  --fr-title:   "opsz" 72,  "SOFT" 0, "WONK" 0;

  /* ---------- ÉCHELLE TYPOGRAPHIQUE (fluide : mobile → desktop) ---------- */
  --fs-display: clamp(2.50rem, 1.7rem + 3.9vw, 4.25rem); /* 40 → 68px  Fraunces  hero une */
  --fs-h1:      clamp(2.00rem, 1.5rem + 2.4vw, 2.875rem);/* 32 → 46px  Fraunces  H1 article */
  --fs-h2:      clamp(1.55rem, 1.3rem + 1.2vw, 2.00rem); /* 25 → 32px  Fraunces */
  --fs-h3:      clamp(1.30rem, 1.2rem + 0.5vw, 1.50rem); /* 21 → 24px  Fraunces */
  --fs-h4:      clamp(1.10rem, 1.05rem + .25vw, 1.25rem);/* 18 → 20px  Plex Sans 600 */
  --fs-body:    clamp(1.0625rem, 1rem + .18vw, 1.125rem);/* 17 → 18px  Plex Sans 400 */
  --fs-lead:    clamp(1.20rem, 1.1rem + .5vw, 1.375rem); /* 19 → 22px  chapô Plex Sans 400 */
  --fs-small:   0.875rem;   /* 14px  méta, légendes */
  --fs-micro:   0.75rem;    /* 12px  sur-titres, chips, colophon */
  --fs-data:    1.00rem;    /* 16px  Plex Mono — chiffres inline */
  --fs-data-lg: clamp(1.75rem, 1.4rem + 1.6vw, 2.50rem); /* 28 → 40px  KPI mono */

  /* interlignes / graisses / interlettrage */
  --lh-tight: 1.08;  --lh-title: 1.14;  --lh-body: 1.7;  --lh-data: 1.2;
  --w-reg:400; --w-med:500; --w-semi:600; --w-bold:700;
  --ls-eyebrow: .14em;  /* sur-titres mono capitales */
  --ls-title:  -.005em; /* titres Fraunces, léger serrage */

  /* ---------- ESPACEMENTS (base 4px) ---------- */
  --sp-1:4px; --sp-2:8px; --sp-3:12px; --sp-4:16px; --sp-5:24px;
  --sp-6:32px; --sp-7:48px; --sp-8:64px; --sp-9:96px; --sp-10:128px;

  /* ---------- RAYONS (quasi nuls : registre journal/terminal) ---------- */
  --r-none:0; --r-xs:2px; --r-sm:3px; --r-md:5px; --r-pill:999px;

  /* ---------- FILETS & BORDURES ---------- */
  --bd-hair:   1px solid var(--hairline);
  --bd-appui:  1px solid var(--hairline-strong);
  --bd-strong: 1.5px solid var(--ink);
  --bd-rule:   2px solid var(--rule);          /* filet de section */
  --bd-accent: 3px solid var(--amber);         /* liseré d'accent (fact-box, verdict) */

  /* ---------- OMBRES (registre plat : presque aucune) ---------- */
  --shadow-none: none;
  --shadow-drawer: 0 8px 30px rgba(22,32,43,.22);  /* nav mobile uniquement */
  --shadow-sticky: 0 1px 0 var(--hairline-strong); /* header collé = filet, pas ombre */

  /* ---------- CONTENEURS ---------- */
  --container:      1200px;  /* grille standard */
  --container-wide: 1320px;  /* tableaux/données pleine largeur */
  --measure:        41rem;   /* ≈ 656px → 66–70 caractères à 18px (corps d'article) */
  --gutter:         var(--sp-5); /* 24px de marge latérale mobile */
}

/* =========================================================================
   @font-face — polices auto-hébergées
   ====================================================================== */
/* Fraunces — variable (opsz + wght), normal */
@font-face{
  font-family:"Fraunces";
  font-style:normal;
  font-weight:300 700;
  font-stretch:normal;
  font-display:swap;
  src:url("assets/fonts/Fraunces-300-700-normal-latin.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:"Fraunces";
  font-style:normal;
  font-weight:300 700;
  font-stretch:normal;
  font-display:swap;
  src:url("assets/fonts/Fraunces-300-700-normal-latin-ext.woff2") format("woff2");
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
/* Fraunces — variable, italique */
@font-face{
  font-family:"Fraunces";
  font-style:italic;
  font-weight:300 700;
  font-stretch:normal;
  font-display:swap;
  src:url("assets/fonts/Fraunces-300-700-italic-latin.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:"Fraunces";
  font-style:italic;
  font-weight:300 700;
  font-stretch:normal;
  font-display:swap;
  src:url("assets/fonts/Fraunces-300-700-italic-latin-ext.woff2") format("woff2");
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
/* IBM Plex Sans — variable, normal */
@font-face{
  font-family:"IBM Plex Sans";
  font-style:normal;
  font-weight:100 700;
  font-display:swap;
  src:url("assets/fonts/IBMPlexSans-400-normal-latin.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:"IBM Plex Sans";
  font-style:normal;
  font-weight:100 700;
  font-display:swap;
  src:url("assets/fonts/IBMPlexSans-400-normal-latin-ext.woff2") format("woff2");
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
/* IBM Plex Sans — italique 400 */
@font-face{
  font-family:"IBM Plex Sans";
  font-style:italic;
  font-weight:400;
  font-display:swap;
  src:url("assets/fonts/IBMPlexSans-400-italic-latin.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:"IBM Plex Sans";
  font-style:italic;
  font-weight:400;
  font-display:swap;
  src:url("assets/fonts/IBMPlexSans-400-italic-latin-ext.woff2") format("woff2");
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
/* IBM Plex Mono — 400 / 500 / 600 (statiques) */
@font-face{
  font-family:"IBM Plex Mono";font-style:normal;font-weight:400;font-display:swap;
  src:url("assets/fonts/IBMPlexMono-400-normal-latin.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:"IBM Plex Mono";font-style:normal;font-weight:400;font-display:swap;
  src:url("assets/fonts/IBMPlexMono-400-normal-latin-ext.woff2") format("woff2");
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face{
  font-family:"IBM Plex Mono";font-style:normal;font-weight:500;font-display:swap;
  src:url("assets/fonts/IBMPlexMono-500-normal-latin.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:"IBM Plex Mono";font-style:normal;font-weight:500;font-display:swap;
  src:url("assets/fonts/IBMPlexMono-500-normal-latin-ext.woff2") format("woff2");
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face{
  font-family:"IBM Plex Mono";font-style:normal;font-weight:600;font-display:swap;
  src:url("assets/fonts/IBMPlexMono-600-normal-latin.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:"IBM Plex Mono";font-style:normal;font-weight:600;font-display:swap;
  src:url("assets/fonts/IBMPlexMono-600-normal-latin-ext.woff2") format("woff2");
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}

/* =========================================================================
   Reset / base
   ====================================================================== */
*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:96px;}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--font-body);
  font-size:var(--fs-body);
  line-height:var(--lh-body);
  font-weight:var(--w-reg);
  font-variant-numeric:tabular-nums lining-nums;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
h1,h2,h3,h4,h5,h6,p,figure,blockquote,ul,ol,dl,table{margin:0;}
img,svg,video{max-width:100%;height:auto;}
img{display:block;}
ul,ol{padding:0;list-style:none;}
a{color:var(--amber);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;}
a:hover{color:var(--amber-strong);text-decoration-color:currentColor;}
strong,b{font-weight:var(--w-semi);}
button{font-family:inherit;cursor:pointer;}
:focus-visible{outline:2px solid var(--amber);outline-offset:2px;}
.screen-reader-text{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
.skip-link{position:absolute;left:-9999px;top:0;background:var(--ink);color:var(--on-ink);padding:var(--sp-3) var(--sp-4);z-index:1000;text-decoration:none;}
.skip-link:focus{left:var(--sp-4);top:var(--sp-4);}

/* =========================================================================
   Layout util
   ====================================================================== */
.container{width:100%;max-width:var(--container);margin-inline:auto;padding-inline:var(--gutter);}
.container-wide{width:100%;max-width:var(--container-wide);margin-inline:auto;padding-inline:var(--gutter);}
.measure{max-width:var(--measure);margin-inline:auto;}
.site-main{display:block;}
.section{padding-block:var(--sp-8);}
.section--sunken{background:var(--paper-sunken);}
.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--sp-4);flex-wrap:wrap;border-top:var(--bd-rule);padding-top:var(--sp-4);margin-bottom:var(--sp-6);}
.eyebrow{font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:var(--ls-eyebrow);text-transform:uppercase;color:var(--amber);margin:0 0 var(--sp-2);}
.section-title{font-family:var(--font-display);font-weight:var(--w-semi);font-size:var(--fs-h2);line-height:var(--lh-title);letter-spacing:var(--ls-title);font-variation-settings:var(--fr-title);margin:0;}
.section-more{font-family:var(--font-body);font-weight:var(--w-med);font-size:var(--fs-body);white-space:nowrap;}

/* =========================================================================
   Typographie de titres
   ====================================================================== */
h1,h2,h3{font-family:var(--font-display);font-weight:var(--w-semi);line-height:var(--lh-title);letter-spacing:var(--ls-title);color:var(--ink);}
h4,h5,h6{font-family:var(--font-body);font-weight:var(--w-semi);line-height:var(--lh-title);}
.display{font-size:var(--fs-display);line-height:var(--lh-tight);font-variation-settings:var(--fr-display);}

/* =========================================================================
   C.1 — En-tête, microbandeau risque, navigation
   ====================================================================== */
.risk-microbar{background:var(--ink);color:var(--on-ink);font-family:var(--font-mono);font-size:var(--fs-micro);}
.risk-microbar__inner{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);min-height:32px;padding-block:var(--sp-1);}
.risk-microbar__left{display:inline-flex;align-items:center;gap:var(--sp-2);}
.risk-microbar__right{color:var(--on-ink-soft);text-align:right;}
.tri{display:inline-block;width:14px;height:14px;flex:none;}
.tri path{fill:var(--amber);}
.tri rect{fill:var(--ink);}

.site-header{position:sticky;top:0;z-index:100;background:var(--paper);}
.masthead{border-bottom:var(--bd-rule);}
.masthead__inner{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-5);min-height:72px;}
.wordmark{font-family:var(--font-display);font-weight:560;font-size:1.375rem;letter-spacing:var(--ls-title);color:var(--ink);text-decoration:none;line-height:1;}
.wordmark:hover{color:var(--ink);}
.wordmark .dot{color:var(--ink-soft);font-family:var(--font-mono);font-weight:400;}
.wordmark .fr{color:var(--amber);}

.primary-nav{display:flex;align-items:center;gap:var(--sp-5);}
.primary-nav .menu{display:flex;align-items:center;gap:var(--sp-5);}
.primary-nav a{font-family:var(--font-body);font-weight:var(--w-med);font-size:0.9375rem;color:var(--ink);text-decoration:none;padding-block:var(--sp-2);}
.primary-nav a:hover{text-decoration:underline;text-decoration-color:var(--ink);text-underline-offset:6px;}
.primary-nav .current-menu-item>a,.primary-nav .current_page_item>a{text-decoration:underline;text-decoration-color:var(--amber);text-decoration-thickness:2px;text-underline-offset:6px;}

.header-actions{display:flex;align-items:center;gap:var(--sp-3);}
.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;background:transparent;border:1px solid transparent;color:var(--ink);}
.icon-btn:hover{border-color:var(--hairline-strong);}
.icon-btn svg{width:20px;height:20px;fill:none;stroke:var(--ink);stroke-width:2;}
.nav-toggle{display:none;}

/* recherche déroulante */
.header-search{display:none;border-bottom:var(--bd-hair);background:var(--paper-raised);}
.header-search.is-open{display:block;}
.header-search__inner{padding-block:var(--sp-4);}

/* condensation au défilement */
.is-condensed .risk-microbar{max-height:0;overflow:hidden;padding:0;transform:translateY(-100%);transition:transform .2s ease,max-height .2s ease;}
.is-condensed .masthead__inner{min-height:56px;}
.site-header.is-condensed{box-shadow:var(--shadow-sticky);}
.risk-microbar{transition:transform .2s ease,max-height .2s ease;}

/* drawer mobile */
.drawer{position:fixed;inset:0 0 0 auto;width:min(88vw,360px);background:var(--paper-raised);box-shadow:var(--shadow-drawer);transform:translateX(100%);transition:transform .25s ease;z-index:200;display:flex;flex-direction:column;padding:var(--sp-5);overflow-y:auto;visibility:hidden;}
.drawer.is-open{transform:translateX(0);visibility:visible;}
.drawer__head{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--sp-4);}
.drawer .menu{display:flex;flex-direction:column;}
.drawer .menu li{border-bottom:var(--bd-hair);}
.drawer .menu a{display:block;padding-block:var(--sp-4);font-family:var(--font-display);font-size:var(--fs-h4);font-weight:560;color:var(--ink);text-decoration:none;}
.drawer__foot{margin-top:auto;padding-top:var(--sp-5);}
.drawer__risk{font-family:var(--font-mono);font-size:var(--fs-micro);color:var(--ink-soft);margin-top:var(--sp-4);}
.drawer-overlay{position:fixed;inset:0;background:rgba(22,32,43,.4);z-index:150;opacity:0;visibility:hidden;transition:opacity .25s ease;}
.drawer-overlay.is-open{opacity:1;visibility:visible;}

/* champ de recherche */
.search-form{display:flex;gap:var(--sp-2);}
.search-form input[type="search"]{flex:1;font-family:var(--font-body);font-size:var(--fs-body);padding:var(--sp-3) var(--sp-4);background:var(--paper-sunken);border:var(--bd-appui);border-radius:var(--r-xs);color:var(--ink);}
.search-form input[type="search"]::placeholder{color:var(--ink-faint);}
.search-form input[type="search"]:focus{outline:2px solid var(--amber);outline-offset:0;border-color:var(--amber);}
.search-form button{font-family:var(--font-mono);font-size:var(--fs-small);text-transform:uppercase;letter-spacing:.06em;background:var(--amber);color:var(--paper);border:none;padding:var(--sp-3) var(--sp-4);border-radius:var(--r-xs);}
.search-form button:hover{background:var(--amber-strong);}

/* =========================================================================
   Chips & pastilles
   ====================================================================== */
.chip{display:inline-block;font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:var(--ls-eyebrow);text-transform:uppercase;padding:3px 8px;border-radius:var(--r-xs);text-decoration:none;border:1px solid var(--hairline-strong);color:var(--ink);}
.chip:hover{background:var(--paper-sunken);color:var(--ink);}
.chip--plateformes-p2p{color:var(--amber-strong);border-color:var(--amber-line);background:transparent;}
.chip--plateformes-p2p:hover{background:var(--amber-tint);color:var(--amber-strong);}
.chip--guides-p2p{color:var(--ink);border-color:var(--hairline-strong);background:transparent;}
.chip--actualites-p2p{color:var(--ink);border-color:var(--ink);background:var(--paper-sunken);}
.chip-maj{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:var(--fs-small);color:var(--ink-soft);background:var(--paper-sunken);border:var(--bd-hair);border-radius:var(--r-pill);padding:2px 10px;white-space:nowrap;}
.chip-maj::before{content:"";width:6px;height:6px;border-radius:var(--r-pill);background:var(--amber);flex:none;}

/* =========================================================================
   D.1 — Badge de notation
   ====================================================================== */
.stars{display:inline-flex;align-items:center;gap:2px;vertical-align:middle;}
.star{display:inline-block;}
.star .star-empty{fill:none;stroke:var(--hairline-strong);stroke-width:1.5;}
.star .star-full{fill:var(--amber-bright);}
.gauge{display:inline-flex;gap:3px;vertical-align:middle;width:120px;}
.gauge-seg{position:relative;flex:1;height:6px;background:var(--amber-tint);border-radius:var(--r-xs);overflow:hidden;}
.gauge-fill{position:absolute;inset:0 auto 0 0;height:100%;background:var(--amber);}

.rating{display:flex;align-items:center;gap:var(--sp-4);flex-wrap:wrap;}
.rating--full{padding:var(--sp-5);background:var(--paper-raised);border:var(--bd-hair);border-left:var(--bd-accent);border-radius:var(--r-sm);margin-block:var(--sp-6);}
.rating__label{font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:var(--ls-eyebrow);text-transform:uppercase;color:var(--ink-soft);}
.rating__score{font-family:var(--font-mono);font-weight:var(--w-semi);font-size:var(--fs-data-lg);color:var(--amber);line-height:1;}
.rating__max{font-size:.5em;color:var(--ink-soft);}
.rating--compact{gap:var(--sp-2);font-size:var(--fs-small);}
.rating--compact .rating__score{font-size:var(--fs-data);}

.verdict{display:inline-block;font-family:var(--font-body);font-weight:var(--w-semi);font-size:var(--fs-small);padding:4px 10px;border-radius:var(--r-xs);white-space:nowrap;}
.verdict--ink{background:var(--ink);color:var(--on-ink);}
.verdict--reserve{background:var(--amber-tint);color:var(--amber-strong);border:1px solid var(--amber);}
.verdict--warn{background:var(--amber);color:var(--paper);}
.verdict--alert{background:var(--alert);color:var(--paper);}

/* =========================================================================
   D.2 — Tableaux (via .table-scroll ajouté par le filtre)
   ====================================================================== */
.table-scroll{overflow-x:auto;margin-block:var(--sp-6);border:var(--bd-hair);border-radius:var(--r-sm);}
.table-scroll::before{content:"← faites défiler →";display:none;}
.entry-content table,.table-scroll table{width:100%;border-collapse:collapse;font-size:var(--fs-small);background:var(--paper);}
.entry-content th{font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:.04em;text-transform:uppercase;color:var(--ink-soft);background:var(--paper-sunken);text-align:left;padding:var(--sp-3) var(--sp-4);border-bottom:var(--bd-strong);white-space:nowrap;}
.entry-content td{padding:var(--sp-3) var(--sp-4);border-bottom:var(--bd-hair);vertical-align:top;}
.entry-content tbody tr:nth-child(odd){background:var(--paper-raised);}
.entry-content tbody tr:nth-child(even){background:var(--paper);}
.entry-content td+td{font-family:var(--font-mono);font-variant-numeric:tabular-nums;text-align:right;}
.entry-content td:first-child{font-family:var(--font-body);font-weight:var(--w-semi);text-align:left;}

@media (max-width:640px){
  .table-scroll{position:relative;}
  .entry-content th:first-child,.entry-content td:first-child{position:sticky;left:0;background:var(--paper-sunken);z-index:1;}
  .table-scroll.has-overflow::after{content:"";position:absolute;top:0;right:0;bottom:0;width:12px;background:var(--paper-edge);border-left:1px solid var(--hairline-strong);pointer-events:none;}
}

/* =========================================================================
   Contenu éditorial (Gutenberg)
   ====================================================================== */
.entry-content{font-size:var(--fs-body);line-height:var(--lh-body);}
.entry-content > *{max-width:var(--measure);margin-inline:auto;}
.entry-content > .table-scroll,.entry-content > .alignwide,.entry-content > figure{max-width:min(100%,var(--container));}
.entry-content p{margin-block:var(--sp-4);}
.entry-content h2{font-size:var(--fs-h2);font-variation-settings:var(--fr-title);border-top:var(--bd-hair);padding-top:var(--sp-4);margin-top:var(--sp-8);margin-bottom:var(--sp-3);scroll-margin-top:96px;}
.entry-content h3{font-size:var(--fs-h3);margin-top:var(--sp-6);margin-bottom:var(--sp-3);}
.entry-content h4{font-size:var(--fs-h4);margin-top:var(--sp-5);margin-bottom:var(--sp-2);}
.entry-content a{color:var(--amber);}
.entry-content ul,.entry-content ol{margin-block:var(--sp-4);padding-left:var(--sp-5);}
.entry-content ul li{position:relative;padding-left:var(--sp-4);margin-block:var(--sp-2);list-style:none;}
.entry-content ul li::before{content:"";position:absolute;left:0;top:.6em;width:7px;height:7px;background:var(--amber);}
.entry-content ol{list-style:decimal;padding-left:var(--sp-6);}
.entry-content ol li{margin-block:var(--sp-2);}
.entry-content ol li::marker{font-family:var(--font-mono);color:var(--amber);font-weight:var(--w-semi);}

/* séparateur -> filet */
.entry-content hr,.wp-block-separator{border:none;border-top:var(--bd-hair);max-width:var(--measure);margin:var(--sp-7) auto;height:0;background:none;}
.wp-block-separator.is-style-wide{max-width:var(--measure);}

/* citation-verdict (D.9) */
.entry-content blockquote,.wp-block-quote{position:relative;max-width:var(--measure);margin:var(--sp-7) auto;padding:var(--sp-2) 0 var(--sp-2) var(--sp-6);border-left:var(--bd-accent);font-family:var(--font-display);font-style:italic;font-size:var(--fs-h3);line-height:1.4;color:var(--ink);}
.entry-content blockquote p{margin-block:var(--sp-2);}
.entry-content blockquote::before{content:"«";position:absolute;left:var(--sp-4);top:-.2em;font-family:var(--font-display);font-size:2.4em;color:var(--amber-tint);z-index:-1;line-height:1;}
.entry-content blockquote cite,.wp-block-quote cite{display:block;margin-top:var(--sp-3);font-family:var(--font-mono);font-style:normal;font-size:var(--fs-small);color:var(--ink-soft);}

.entry-content figure img{border:var(--bd-hair);}
.entry-content figcaption{font-family:var(--font-mono);font-size:var(--fs-micro);color:var(--ink-soft);margin-top:var(--sp-2);text-align:center;}

/* =========================================================================
   D.7 — FAQ (accordéon <details>)
   ====================================================================== */
.faq-item{max-width:var(--measure);margin-inline:auto;border-bottom:var(--bd-hair);}
.faq-item summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:var(--sp-4);font-family:var(--font-body);font-weight:var(--w-semi);font-size:var(--fs-h4);padding-block:var(--sp-4);color:var(--ink);}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary::after{content:"+";font-family:var(--font-mono);font-size:1.25em;color:var(--ink-soft);flex:none;}
.faq-item[open] summary::after{content:"−";color:var(--amber);}
.faq-item[open] summary{color:var(--amber-strong);}
.faq-answer{padding-bottom:var(--sp-4);color:var(--ink);}
.faq-answer p{margin-top:0;}

/* =========================================================================
   D.3 — Fact-box (fiche plateforme) — utilitaire réutilisable
   ====================================================================== */
.factbox{max-width:var(--measure);margin:var(--sp-6) auto;background:var(--paper-raised);border:var(--bd-hair);border-left:var(--bd-accent);border-radius:var(--r-sm);padding:var(--sp-5);}
.factbox__head{display:flex;justify-content:space-between;align-items:center;gap:var(--sp-4);margin-bottom:var(--sp-4);}
.factbox__title{font-family:var(--font-body);font-weight:var(--w-semi);font-size:var(--fs-h4);}
.factbox__grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-3) var(--sp-5);}
.factbox dt{font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:.04em;text-transform:uppercase;color:var(--ink-soft);}
.factbox dd{margin:0 0 var(--sp-3);font-weight:var(--w-med);}

/* =========================================================================
   D.6 — Bandeau avertissement risque + alerte incident
   ====================================================================== */
.risk-band{background:var(--ink);color:var(--on-ink);border-top:var(--bd-accent);padding:var(--sp-5);border-radius:var(--r-sm);margin-block:var(--sp-7);display:flex;gap:var(--sp-4);align-items:flex-start;}
.risk-band .tri{width:22px;height:22px;margin-top:2px;}
.risk-band p{margin:0;font-size:var(--fs-small);color:var(--on-ink);max-width:none;}
.risk-band strong{color:var(--on-ink);}

.incident{background:var(--alert-tint);border-left:3px solid var(--alert);padding:var(--sp-4) var(--sp-5);border-radius:var(--r-sm);margin-block:var(--sp-6);}
.incident__title{color:var(--alert-strong);font-weight:var(--w-semi);display:flex;align-items:center;gap:var(--sp-2);}
.incident .tri path{fill:var(--alert);}

/* =========================================================================
   D.8 — Cartes et avatars auteur
   ====================================================================== */
.monogram{display:inline-flex;align-items:center;justify-content:center;width:var(--mono-size,64px);height:var(--mono-size,64px);background:var(--ink);color:var(--on-ink);font-family:var(--font-display);font-weight:560;font-size:calc(var(--mono-size,64px) * .4);border-radius:var(--r-sm);border-bottom:3px solid var(--amber);flex:none;letter-spacing:.02em;}

.author-card{display:flex;flex-direction:column;gap:var(--sp-3);}
.author-card__name{font-family:var(--font-body);font-weight:var(--w-semi);font-size:var(--fs-h4);}
.author-card__role{font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:.04em;text-transform:uppercase;color:var(--ink-soft);}
.author-card__bio{font-size:var(--fs-small);color:var(--ink-soft);margin:0;}

.author-box{display:flex;gap:var(--sp-5);align-items:flex-start;background:var(--paper-raised);border:var(--bd-hair);border-left:var(--bd-accent);border-radius:var(--r-sm);padding:var(--sp-5);margin-block:var(--sp-6);}
.author-box__body{display:flex;flex-direction:column;gap:var(--sp-2);}

/* =========================================================================
   E — Couvertures programmatiques
   ====================================================================== */
.cover{position:relative;aspect-ratio:16/9;width:100%;background-color:var(--paper);background-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='24'%20height='24'%3E%3Ccircle%20cx='1.5'%20cy='1.5'%20r='1'%20fill='%2316202B'%20fill-opacity='0.14'/%3E%3C/svg%3E");background-repeat:repeat;overflow:hidden;border:var(--bd-hair);}
.cover__frame{position:absolute;inset:6.5%;border:1px solid var(--hairline-strong);pointer-events:none;}
.cover__chip{position:absolute;top:8%;left:6.5%;font-family:var(--font-mono);font-size:clamp(.5rem,1.6vw,var(--fs-micro));letter-spacing:var(--ls-eyebrow);text-transform:uppercase;color:var(--ink);border-bottom:2px solid var(--amber);padding-bottom:2px;}
.cover__motif{position:absolute;top:9%;right:6.5%;width:58%;height:52%;}
.cover__motif .motif{width:100%;height:100%;}
.cover__foot{position:absolute;left:6.5%;right:6.5%;bottom:9%;}
.cover__title{font-family:var(--font-display);font-weight:600;color:var(--ink);letter-spacing:var(--ls-title);line-height:1.06;margin:0;font-variation-settings:var(--fr-title);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;}
.cover__title--lg{font-size:clamp(1.1rem,5.4vw,3.4rem);}
.cover__title--md{font-size:clamp(1rem,4.2vw,2.7rem);}
.cover__title--sm{font-size:clamp(.9rem,3.3vw,2.1rem);}
.cover__colophon{display:inline-flex;align-items:center;gap:8px;margin-top:.6em;font-family:var(--font-mono);font-size:clamp(.5rem,1.5vw,var(--fs-micro));letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);}
.cover__mark{width:10px;height:10px;background:var(--amber);flex:none;}
.cover__note{position:absolute;right:6.5%;bottom:9%;display:inline-flex;align-items:center;gap:6px;font-family:var(--font-mono);font-weight:600;font-size:clamp(.6rem,1.8vw,var(--fs-data));color:var(--amber);background:var(--paper-raised);border:var(--bd-hair);padding:3px 8px;border-radius:var(--r-xs);}

/* motifs */
.motif-bar{fill:var(--ink);opacity:.9;}
.motif-bar--amber{fill:var(--amber);opacity:1;}
.motif-cap{stroke:var(--ink);stroke-width:2;}
.motif-bar--amber + .motif-cap{stroke:var(--amber);}
.motif-axis{stroke:var(--ink);stroke-width:2;}
.motif-avg{stroke:var(--amber);stroke-width:1.5;}
.motif-edge{stroke:var(--ink);stroke-width:1.5;fill:none;}
.motif-edge--amber{stroke:var(--amber);stroke-width:2;}
.motif-node{fill:var(--ink);}
.motif-node--open{fill:var(--paper);stroke:var(--ink);stroke-width:1.5;}
.motif-node--amber{fill:var(--amber);}
.motif-poly{fill:none;stroke:var(--ink);stroke-width:2;stroke-linejoin:round;stroke-linecap:round;}
.motif-axis-soft{stroke:var(--hairline-strong);stroke-width:1;}
.motif-band{fill:var(--paper-sunken);opacity:.5;}
.motif-event{stroke:var(--amber);stroke-width:1.5;}

/* =========================================================================
   C.4 — Cartes « sommaire de magazine »
   ====================================================================== */
.article-card{display:grid;grid-template-columns:40% 1fr;gap:var(--sp-5);padding-block:var(--sp-6);border-bottom:var(--bd-hair);}
.article-card__media{display:block;}
.article-card__body{display:flex;flex-direction:column;gap:var(--sp-3);align-self:center;}
.article-card__title{font-family:var(--font-display);font-weight:560;font-size:var(--fs-h3);line-height:var(--lh-title);margin:0;}
.article-card__title a{color:var(--ink);text-decoration:none;}
.article-card__title a:hover{text-decoration:underline;text-decoration-color:var(--amber);text-underline-offset:4px;}
.article-card__excerpt{color:var(--ink-soft);margin:0;}
.meta-line{font-family:var(--font-body);font-size:var(--fs-small);color:var(--ink-soft);display:inline-flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2);}
.meta-line a{color:var(--ink-soft);text-decoration:underline;text-decoration-color:var(--hairline-strong);}
.meta-line a:hover{color:var(--amber);}
.meta-date,.meta-read{font-family:var(--font-mono);}
.meta-sep{color:var(--ink-faint);}

/* grille de cartes compactes (accueil) */
.card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-5);}
.mini-card{display:flex;flex-direction:column;gap:var(--sp-3);background:var(--paper-raised);border:var(--bd-hair);border-radius:var(--r-sm);padding:var(--sp-4);}
.mini-card__title{font-family:var(--font-display);font-weight:560;font-size:var(--fs-h4);line-height:var(--lh-title);margin:0;}
.mini-card__title a{color:var(--ink);text-decoration:none;}
.mini-card__title a:hover{text-decoration:underline;text-decoration-color:var(--amber);}

/* liste verticale de liens (rubriques) */
.link-list{display:flex;flex-direction:column;}
.link-list li{border-bottom:var(--bd-hair);padding-block:var(--sp-3);}
.link-list a{font-family:var(--font-display);font-weight:560;font-size:var(--fs-h4);color:var(--ink);text-decoration:none;}
.link-list a:hover{color:var(--amber);}

/* =========================================================================
   C.2 — Accueil : modules
   ====================================================================== */
.hero{display:grid;grid-template-columns:1.4fr 1fr;gap:var(--sp-7);align-items:center;padding-block:var(--sp-9) var(--sp-8);}
.hero__title{font-size:var(--fs-display);line-height:var(--lh-tight);font-variation-settings:var(--fr-display);margin:var(--sp-4) 0;}
.hero__lead{font-size:var(--fs-lead);color:var(--ink-soft);max-width:34ch;margin-bottom:var(--sp-5);}
.hero__cta{display:flex;align-items:center;gap:var(--sp-5);flex-wrap:wrap;}
.hero__motif{aspect-ratio:16/9;background-color:var(--paper);background-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='24'%20height='24'%3E%3Ccircle%20cx='1.5'%20cy='1.5'%20r='1'%20fill='%2316202B'%20fill-opacity='0.14'/%3E%3C/svg%3E");background-repeat:repeat;border:var(--bd-hair);padding:var(--sp-5);}
.hero__motif .motif{width:100%;height:100%;}

.btn{display:inline-block;font-family:var(--font-body);font-weight:var(--w-semi);font-size:var(--fs-body);text-decoration:none;padding:var(--sp-3) var(--sp-5);border-radius:var(--r-xs);border:2px solid var(--amber);background:var(--amber);color:var(--paper);}
.btn:hover{background:var(--amber-strong);border-color:var(--amber-strong);color:var(--paper);}
.btn--ghost{background:transparent;color:var(--amber);}
.btn--ghost:hover{background:var(--amber-tint);color:var(--amber-strong);}
.link-arrow{font-weight:var(--w-med);white-space:nowrap;}

.kpi-band{background:var(--ink);color:var(--on-ink);}
.kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp-5);padding-block:var(--sp-7);}
.kpi{display:flex;flex-direction:column;gap:var(--sp-2);}
.kpi__value{font-family:var(--font-mono);font-weight:var(--w-semi);font-size:var(--fs-data-lg);color:var(--amber-bright);line-height:1;}
.kpi__label{font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:.06em;text-transform:uppercase;color:var(--on-ink-soft);}

.rubrique-block{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-6);}

.method-block{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-7);align-items:start;}
.criteria{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-4);}
.criterion{display:flex;gap:var(--sp-3);align-items:flex-start;}
.criterion svg{width:28px;height:28px;flex:none;stroke:var(--amber);fill:none;stroke-width:1.75;}
.criterion h3{font-family:var(--font-body);font-weight:var(--w-semi);font-size:var(--fs-h4);margin:0 0 2px;}
.criterion p{font-size:var(--fs-small);color:var(--ink-soft);margin:0;}
.manifesto{font-family:var(--font-display);font-style:italic;font-size:var(--fs-lead);line-height:1.5;color:var(--ink);}

.authors-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-6);}
.author-tile{display:flex;flex-direction:column;gap:var(--sp-3);}

/* =========================================================================
   C.3 — Article unique
   ====================================================================== */
.entry-header{padding-block:var(--sp-6) var(--sp-5);}
.entry-header__inner{max-width:var(--measure);margin-inline:auto;}
.entry-title{font-size:var(--fs-h1);margin:var(--sp-3) 0;font-variation-settings:var(--fr-title);}
.dateline{font-family:var(--font-body);font-size:var(--fs-small);color:var(--ink-soft);display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2);margin-top:var(--sp-3);}
.dateline .meta-date{font-family:var(--font-mono);}

.article-layout{display:block;}
.single-body{max-width:var(--measure);margin-inline:auto;}
.toc-mobile{max-width:var(--measure);margin:var(--sp-5) auto;background:var(--paper-raised);border:var(--bd-hair);border-radius:var(--r-sm);padding:var(--sp-3) var(--sp-4);}
.toc-mobile summary{font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:var(--ls-eyebrow);text-transform:uppercase;color:var(--ink-soft);cursor:pointer;}
.toc-mobile ol{margin-top:var(--sp-3);padding-left:var(--sp-5);list-style:decimal;}
.toc-mobile a{color:var(--ink);text-decoration:none;}
.toc-mobile a:hover{color:var(--amber);}

.toc-sticky{display:none;}
.toc-sticky ol{list-style:none;padding:0;border-left:2px solid var(--hairline);}
.toc-sticky li a{display:block;padding:var(--sp-2) var(--sp-4);font-size:var(--fs-small);color:var(--ink-soft);text-decoration:none;border-left:2px solid transparent;margin-left:-2px;}
.toc-sticky li a:hover{color:var(--ink);}
.toc-sticky li a.is-active{color:var(--amber);border-left-color:var(--amber);font-weight:var(--w-med);}
.toc-sticky__head{font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:var(--ls-eyebrow);text-transform:uppercase;color:var(--amber);margin-bottom:var(--sp-3);}
.toc-sticky__foot{margin-top:var(--sp-5);padding-top:var(--sp-4);border-top:var(--bd-hair);font-size:var(--fs-small);color:var(--ink-soft);display:flex;flex-direction:column;gap:var(--sp-2);}

.update-log{max-width:var(--measure);margin:var(--sp-6) auto;background:var(--paper-sunken);border:var(--bd-hair);border-radius:var(--r-sm);padding:var(--sp-4);font-family:var(--font-mono);font-size:var(--fs-small);color:var(--ink-soft);}
.update-log strong{color:var(--ink);font-family:var(--font-body);}

.prevnext{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-5);max-width:var(--measure);margin:var(--sp-7) auto;}
.prevnext__item{border:var(--bd-hair);border-radius:var(--r-sm);padding:var(--sp-4);background:var(--paper-raised);}
.prevnext__item a{color:var(--ink);text-decoration:none;font-family:var(--font-display);font-weight:560;}
.prevnext__item a:hover{color:var(--amber);}
.prevnext__label{font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:.04em;text-transform:uppercase;color:var(--ink-soft);display:block;margin-bottom:var(--sp-2);}
.prevnext__item--next{text-align:right;}

.read-also{max-width:var(--container);margin-inline:auto;}
.read-also .card-grid{margin-top:var(--sp-5);}

/* =========================================================================
   Pagination
   ====================================================================== */
.pagination{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);margin-block:var(--sp-8);border-top:var(--bd-rule);padding-top:var(--sp-5);}
.pagination a,.pagination span{font-family:var(--font-body);font-weight:var(--w-med);text-decoration:none;color:var(--ink);}
.pagination a:hover{color:var(--amber);}
.pagination__page{font-family:var(--font-mono);font-size:var(--fs-small);color:var(--ink-soft);}
.pagination__spacer{visibility:hidden;}

/* =========================================================================
   Contact Form 7 (C.5)
   ====================================================================== */
.wpcf7 input[type="text"],.wpcf7 input[type="email"],.wpcf7 input[type="tel"],.wpcf7 input[type="url"],.wpcf7 input[type="number"],.wpcf7 textarea,.wpcf7 select{width:100%;font-family:var(--font-body);font-size:var(--fs-body);background:var(--paper-sunken);border:var(--bd-appui);border-radius:var(--r-xs);padding:var(--sp-3) var(--sp-4);color:var(--ink);margin-top:var(--sp-1);}
.wpcf7 input:focus,.wpcf7 textarea:focus,.wpcf7 select:focus{outline:2px solid var(--amber);outline-offset:0;border-color:var(--amber);}
.wpcf7 label{font-weight:var(--w-med);display:block;margin-bottom:var(--sp-3);}
.wpcf7 input[type="submit"]{width:auto;font-family:var(--font-body);font-weight:var(--w-semi);background:var(--amber);color:var(--paper);border:2px solid var(--amber);border-radius:var(--r-xs);padding:var(--sp-3) var(--sp-6);cursor:pointer;}
.wpcf7 input[type="submit"]:hover{background:var(--amber-strong);border-color:var(--amber-strong);}
.wpcf7-not-valid-tip{color:var(--alert-strong);font-size:var(--fs-small);}
.wpcf7 .wpcf7-response-output{border-radius:var(--r-xs);border-color:var(--hairline-strong);font-size:var(--fs-small);}

/* =========================================================================
   C.6 — Pied de page
   ====================================================================== */
.site-footer{background:var(--ink);color:var(--on-ink);margin-top:var(--sp-9);}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:var(--sp-6);padding-block:var(--sp-8) var(--sp-6);}
.footer-zone h2{font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:var(--ls-eyebrow);text-transform:uppercase;color:var(--on-ink-soft);margin-bottom:var(--sp-4);}
.footer-zone ul{display:flex;flex-direction:column;gap:var(--sp-2);}
.footer-zone a{color:var(--on-ink);text-decoration:none;font-size:var(--fs-small);}
.footer-zone a:hover{color:var(--amber-bright);text-decoration:underline;}
.footer-brand__mark{font-family:var(--font-display);font-weight:560;font-size:1.25rem;color:var(--on-ink);}
.footer-brand__mark .fr{color:var(--amber-bright);}
.footer-brand p{font-size:var(--fs-small);color:var(--on-ink-soft);margin-top:var(--sp-3);}
.footer-risk{border-top:1px solid var(--hairline-strong);padding-block:var(--sp-5);display:flex;gap:var(--sp-4);align-items:flex-start;}
.footer-risk .tri{width:20px;height:20px;flex:none;margin-top:2px;}
.footer-risk p{font-size:var(--fs-small);color:var(--on-ink-soft);margin:0;max-width:none;}
.footer-colophon{font-family:var(--font-mono);font-size:var(--fs-micro);color:var(--on-ink-soft);padding-bottom:var(--sp-6);}

/* =========================================================================
   404 & recherche
   ====================================================================== */
.page-hero{padding-block:var(--sp-8) var(--sp-6);border-bottom:var(--bd-rule);}
.page-hero__inner{max-width:var(--measure);margin-inline:auto;}
.page-title{font-size:var(--fs-h1);margin:var(--sp-3) 0;font-variation-settings:var(--fr-title);}
.page-lead{font-size:var(--fs-lead);color:var(--ink-soft);}
.error-actions{display:flex;gap:var(--sp-5);align-items:center;flex-wrap:wrap;margin-top:var(--sp-5);}

.author-header{display:flex;gap:var(--sp-5);align-items:flex-start;max-width:var(--measure);margin:var(--sp-6) auto;}

/* =========================================================================
   Breakpoints — tablette 641–1099
   ====================================================================== */
@media (max-width:1099px){
  .card-grid{grid-template-columns:repeat(2,1fr);}
  .authors-grid{grid-template-columns:repeat(3,1fr);}
  .kpi-grid{grid-template-columns:repeat(2,1fr);}
  .footer-grid{grid-template-columns:1fr 1fr;}
  .hero{grid-template-columns:1fr;gap:var(--sp-6);}
  .hero__motif{max-width:420px;}
  .method-block{grid-template-columns:1fr;}
  .rubrique-block{grid-template-columns:1fr;}
}

/* Desktop ≥1100 : TOC collant */
@media (min-width:1100px){
  .has-toc .article-layout{display:grid;grid-template-columns:220px minmax(0,1fr);gap:var(--sp-8);max-width:var(--container);margin-inline:auto;align-items:start;}
  .has-toc .single-body{margin-inline:0;}
  .toc-sticky{display:block;position:sticky;top:88px;}
  .has-toc .toc-mobile{display:none;}
}

/* Mobile ≤640 */
@media (max-width:640px){
  :root{--gutter:16px;}
  .masthead__inner{min-height:60px;}
  .primary-nav .menu,.header-actions .search-toggle{display:none;}
  .nav-toggle{display:inline-flex;}
  .card-grid{grid-template-columns:1fr;}
  .authors-grid{grid-template-columns:1fr;}
  .kpi-grid{grid-template-columns:1fr 1fr;}
  .footer-grid{grid-template-columns:1fr;}
  .article-card{grid-template-columns:1fr;}
  .factbox__grid{grid-template-columns:1fr;}
  .prevnext{grid-template-columns:1fr;}
  .prevnext__item--next{text-align:left;}
  .criteria{grid-template-columns:1fr;}
  .risk-microbar__inner{flex-direction:column;gap:2px;align-items:flex-start;min-height:0;padding-block:var(--sp-2);}
  .risk-microbar__right{text-align:left;}
  .section-head{flex-direction:column;align-items:flex-start;}
}

/* =========================================================================
   Préférences de mouvement réduit
   ====================================================================== */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important;}
}

/* =========================================================================
   Impression
   ====================================================================== */
@media print{
  .site-header,.site-footer,.risk-microbar,.toc-sticky,.toc-mobile,.prevnext,.read-also,.drawer,.drawer-overlay,.pagination{display:none!important;}
  body{background:var(--paper);color:var(--ink);}
  .entry-content>*{max-width:none;}
}

/* ---- v1.0.1 correctifs ---- */
.link-list .meta-line{display:block;margin-top:var(--sp-2);}
.link-list li{margin-bottom:var(--sp-4);}
.cover--compact .cover__chip{display:none;}

/* ---- v1.0.3 correctifs critique ---- */
.entry-content table, .entry-content th, .entry-content td{border-left:0 !important;border-right:0 !important;}
.entry-content table{border-top:0;border-bottom:1px solid var(--hairline);}
.btn, button, input[type="submit"], .wp-block-button__link, .search-form [type="submit"], .wpcf7 [type="submit"]{border-radius:var(--r-xs);}

/* ============================================================
   v2.0 — RÉVISION « PRESSE FROIDE » : colorimétrie + typographie
   Papier froid neutre · encre quasi-noire · accent bleu cobalt
   Spectral (display) · Space Grotesk (wordmark) · Plex Sans/Mono
   ============================================================ */

/* Spectral — display serif (Production Type, dessin français) */
@font-face{font-family:"Spectral";font-style:normal;font-weight:400;font-display:swap;src:url("assets/fonts/Spectral-400-normal-latin.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:"Spectral";font-style:normal;font-weight:400;font-display:swap;src:url("assets/fonts/Spectral-400-normal-latin-ext.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:"Spectral";font-style:italic;font-weight:400;font-display:swap;src:url("assets/fonts/Spectral-400-italic-latin.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:"Spectral";font-style:italic;font-weight:400;font-display:swap;src:url("assets/fonts/Spectral-400-italic-latin-ext.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:"Spectral";font-style:normal;font-weight:600;font-display:swap;src:url("assets/fonts/Spectral-600-normal-latin.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:"Spectral";font-style:normal;font-weight:600;font-display:swap;src:url("assets/fonts/Spectral-600-normal-latin-ext.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:"Spectral";font-style:normal;font-weight:700;font-display:swap;src:url("assets/fonts/Spectral-700-normal-latin.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:"Spectral";font-style:normal;font-weight:700;font-display:swap;src:url("assets/fonts/Spectral-700-normal-latin-ext.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}

/* Space Grotesk — wordmark (fichier variable 300–700) */
@font-face{font-family:"Space Grotesk";font-style:normal;font-weight:300 700;font-display:swap;src:url("assets/fonts/SpaceGrotesk-400-normal-latin.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:"Space Grotesk";font-style:normal;font-weight:300 700;font-display:swap;src:url("assets/fonts/SpaceGrotesk-400-normal-latin-ext.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}

:root{
  /* papier froid neutre (plus de crème) */
  --paper:            #F7F6F3;
  --paper-raised:     #FCFCFA;
  --paper-sunken:     #ECEBE6;
  --paper-edge:       #DEDDD5;
  /* encre quasi-noire neutre */
  --ink:              #14161A;
  --ink-2:            #2B2E35;
  --ink-soft:         #565B63;
  --ink-faint:        #9298A2;
  --hairline:         rgba(20,22,26,.14);
  --hairline-strong:  rgba(20,22,26,.28);
  --rule:             #14161A;
  --on-ink:           #F2F2EF;
  --on-ink-soft:      #A7ACB5;
  /* accent unique : bleu cobalt éditorial (le rouge reste réservé aux alertes) */
  --amber:            #1D4FA8;
  --amber-strong:     #143A80;
  --amber-bright:     #2E62C4;
  --amber-tint:       #E4EAF6;
  --amber-line:       rgba(29,79,168,.32);
  /* typographie */
  --font-display: "Spectral", Georgia, "Times New Roman", serif;
  --fr-display: normal;
  --fr-title:   normal;
  --shadow-drawer: 0 8px 30px rgba(20,22,26,.22);
}

.wordmark{font-family:"Space Grotesk",var(--font-body);font-weight:700;letter-spacing:.015em;}
.drawer-overlay{background:rgba(20,22,26,.4);}
.cover, .hero__motif{background-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='24'%20height='24'%3E%3Ccircle%20cx='2'%20cy='2'%20r='1'%20fill='rgba(20,22,26,0.08)'/%3E%3C/svg%3E");}
h1, h2, h3, .hero__title, .section-title{font-optical-sizing:auto;}

/* ---- v2.1 : couvertures-affiches + hero typographique ---- */
.cover--img{position:relative;aspect-ratio:16/9;overflow:hidden;background:#101218;border:1px solid var(--hairline);background-image:none;}
.cover--img img{width:100%;height:100%;object-fit:cover;display:block;}
.hero{display:block;}
.hero__motif{display:none;}
.hero__title{max-width:21ch;}
.hero__text{max-width:none;}

/* ---- v2.2 : hero avec affiche de marque ---- */
.hero{display:grid;grid-template-columns:1.2fr .8fr;gap:var(--sp-8);align-items:center;}
.hero__media img{width:100%;height:auto;display:block;border:1px solid var(--hairline);max-width:440px;margin-left:auto;}
@media(max-width:900px){.hero{display:block;}.hero__media{display:none;}}
