/*
Theme Name: Près et Sain
*/
@import url('https://fonts.googleapis.com/css2?family=Chivo:wght@400;700;800;900&family=Inter+Tight:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;700&display=swap');

/* ==========================================================================
   GABARIT « TERMINAL DE MARCHE »
   Quatre traits, et ce sont les seuls qui comptent :
   1. il s'OUVRE EN SOMBRE — le :root nu porte la palette sombre, le clair est un
      choix (systeme ou bascule) ; c'est la seule famille du lot dans ce sens ;
   2. un RAIL LATERAL de 60 px, sombre dans les DEUX themes, colle a gauche ;
   3. la CHASSE FIXE pour tout chiffre, toute date, toute duree — sans exception ;
   4. une TRAME HACHUREE 1 px / 5 px sous les tuiles de repere, et un filet vertical
      de 2 px entre chaque colonne de tableau.
   Aucune cotation, aucun cours : les tuiles ne portent que des comptes WordPress reels.
   ========================================================================== */

/* ---------- 1. JETONS : SOMBRE PAR DEFAUT -------------------------------- */
:root{
  --fond:#080A0D;            /* le noir de l'ecran, jamais #000 */
  --surf:#0F1319;            /* la surface des tuiles et des cadres (lu par jr_vignette) */
  --surf2:#0C1015;           /* le fond des lignes paires de tableau */
  --encre:#E8EDF2;
  --doux:#93A0AD;            /* gris de service : dates, notes, legendes */
  --filet:#1A1F26;
  --filet-fort:#2A323C;      /* le filet vertical de 2 px entre colonnes */
  --accent:#066B8E;       /* tire par site — hausse, ancrage, liens */
  --accent2:#912C2A;     /* tire par site — baisse, limites */
  --accent-txt:color-mix(in srgb, #066B8E 84%, #ffffff);
  --accent2-txt:color-mix(in srgb, #912C2A 84%, #ffffff);
  --trame-ligne:rgba(232,237,242,.075);
  /* le rail et la bande restent sombres dans les deux themes : couleurs figees ici */
  --rail-fond:#0B0E12;
  --rail-encre:#C9D3DC;
  --rail-doux:#6E7B88;
  --rail-filet:#1E242C;
  --accent-rail:color-mix(in srgb, #066B8E 86%, #ffffff);
  --bande-fond:#0B0E12;
  --bande-encre:#E8EDF2;
  --bande-doux:#9AA7B4;
  --titre:'Chivo', 'Helvetica Neue', Helvetica, Arial, sans-serif;
  --courant:'Inter Tight', 'Helvetica Neue', Helvetica, Arial, sans-serif;
  --mono:'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  --rayon:3px;
  --rail-l:60px;
  --barre-h:48px;
  color-scheme:dark;
}
/* le clair n'arrive que si le systeme le demande… */
@media (prefers-color-scheme: light){
  :root:not([data-theme="dark"]){
    --fond:#F7F8FA; --surf:#EBEFF3; --surf2:#F1F4F7;
    --encre:#0E1116; --doux:#4A535F; --filet:#DCE1E7; --filet-fort:#B9C2CC;
    --accent-txt:color-mix(in srgb, #066B8E 78%, #0b0f14);
    --accent2-txt:color-mix(in srgb, #912C2A 80%, #0b0f14);
    --trame-ligne:rgba(14,17,22,.07);
    color-scheme:light;
  }
}
/* …ou si le visiteur l'a choisi a la bascule (memes declarations, exactement) */
:root[data-theme="light"]{
  --fond:#F7F8FA; --surf:#EBEFF3; --surf2:#F1F4F7;
  --encre:#0E1116; --doux:#4A535F; --filet:#DCE1E7; --filet-fort:#B9C2CC;
  --accent-txt:color-mix(in srgb, #066B8E 78%, #0b0f14);
  --accent2-txt:color-mix(in srgb, #912C2A 80%, #0b0f14);
  --trame-ligne:rgba(14,17,22,.07);
  color-scheme:light;
}

/* ---------- 2. SOCLE ----------------------------------------------------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;padding-left:var(--rail-l);background:var(--fond);color:var(--encre);
  font-family:var(--courant);font-size:15.5px;line-height:1.5;
  -webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;height:auto;display:block;border-radius:var(--rayon)}
a{color:inherit;text-decoration:none}
a:hover{text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}
:focus-visible{outline:2px solid var(--accent-txt);outline-offset:2px}
h1,h2,h3,h4{font-family:var(--titre);font-weight:800;margin:0;line-height:1.1;
  letter-spacing:-.018em;text-wrap:balance}
p{margin:0}
ul,ol{margin:0;padding:0;list-style:none}
button{font:inherit}
.sb-oeil,.sb-oeil-txt{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.sb-oeil:focus{left:calc(var(--rail-l) + .5rem);top:.5rem;width:auto;height:auto;
  padding:.5rem .8rem;background:var(--encre);color:var(--fond);z-index:99;border-radius:var(--rayon)}
.tm-in{width:min(1320px,100% - 2.4rem);margin-inline:auto}
.tm-sep{color:var(--filet-fort);padding-inline:.4em}

/* TOUT chiffre passe par la chasse fixe : c'est la signature de la famille */
.tm-num{font-family:var(--mono);font-variant-numeric:tabular-nums;letter-spacing:-.02em}

/* l'etiquette : capitales espacees en chasse fixe, jamais un kicker de presse */
.tm-etiq{font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.16em;
  text-transform:uppercase;color:var(--doux);margin:0 0 .6rem}
.tm-etiq--accent{color:var(--accent-txt)}
.tm-etiq--clair{color:var(--bande-doux)}
.tm-chapo{font-size:15.5px;line-height:1.55;color:var(--doux);margin-top:.6rem}
.tm-chapo--court{font-size:14px}
.tm-chapo--clair{color:var(--bande-doux)}
.tm-note{font-size:12px;line-height:1.45;color:var(--doux);margin-top:.6rem}
.tm-vide{font-size:14px;color:var(--doux);padding-block:1.4rem}

/* la ligne de donnees : sous chaque titre, en chasse fixe, jamais decorative */
.tm-ligne-data{display:flex;flex-wrap:wrap;align-items:center;font-family:var(--mono);
  font-size:11.5px;letter-spacing:.02em;color:var(--doux);margin-top:.5rem}
.tm-ligne-data--tete{font-size:12px;margin-top:.9rem;padding-block:.6rem;
  border-top:1px solid var(--filet);border-bottom:1px solid var(--filet)}
.tm-ligne-data--clair{color:var(--bande-doux)}

/* la variation : le SIGNE porte l'information autant que la couleur (R-0025 esprit) */
.tm-var{font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.02em}
.tm-var--h{color:var(--accent-txt)}
.tm-var--b{color:var(--accent2-txt)}
.tm-var--s{color:var(--doux)}

.tm-visuel{margin:0}
.tm-visuel img{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:var(--rayon)}
.tm-visuel--large img{aspect-ratio:16/9}
.tm-visuel figcaption{font-size:11.5px;line-height:1.4;color:var(--doux);margin-top:.45rem;
  padding-top:.35rem;border-top:1px solid var(--filet)}
.jr-plaque{border-radius:var(--rayon)!important;background:var(--surf)!important}

.tm-bouton{display:inline-block;font-family:var(--mono);font-size:11.5px;font-weight:700;
  letter-spacing:.1em;text-transform:uppercase;padding:.5rem .9rem;border-radius:var(--rayon);
  border:1px solid var(--accent-rail);color:var(--accent-rail);margin-top:1rem}
.tm-bouton:hover{text-decoration:none;background:var(--accent-rail);color:#0B0E12}

/* ---------- 3. LE RAIL LATERAL (sombre dans les deux themes) -------------- */
.tm-rail{position:fixed;left:0;top:0;bottom:0;width:var(--rail-l);z-index:50;
  background:var(--rail-fond);border-right:1px solid var(--rail-filet);
  display:flex;flex-direction:column;align-items:center;padding-block:.6rem}
.tm-rail-marque{display:flex;align-items:center;justify-content:center;width:40px;height:40px;
  border:1px solid var(--rail-filet);border-radius:var(--rayon);color:var(--accent-rail);
  margin-bottom:.9rem}
.tm-rail-marque.is-actif{border-color:var(--accent-rail)}
.tm-mono{display:inline-flex;width:22px;color:currentColor}
.tm-mono svg{width:100%;height:auto;fill:currentColor}
.tm-rail-liste{display:flex;flex-direction:column;gap:.35rem;width:100%;align-items:center}
.tm-rail-code{display:flex;align-items:center;justify-content:center;width:40px;height:34px;
  font-family:var(--mono);font-size:12px;font-weight:700;letter-spacing:.04em;
  text-transform:uppercase;color:var(--rail-encre);border-radius:var(--rayon);
  border:1px solid transparent}
.tm-rail-code:hover{text-decoration:none;border-color:var(--rail-filet);color:var(--accent-rail)}
.tm-rail-code.is-actif{color:var(--accent-rail);border-color:var(--accent-rail)}
.tm-rail-bas{margin-top:auto;color:var(--rail-doux);padding:.5rem}
.tm-rail-bas:hover{color:var(--accent-rail)}
.tm-rail-ico{display:block;width:20px;height:20px}
.tm-rail-ico svg{width:100%;height:100%;stroke:currentColor;fill:none}

/* ---------- 4. LA BARRE DE SERVICE --------------------------------------- */
.tm-barre{position:sticky;top:0;z-index:30;background:var(--fond);
  border-bottom:1px solid var(--filet)}
.tm-barre-in{width:min(1320px,100% - 2.4rem);margin-inline:auto;min-height:var(--barre-h);
  display:flex;align-items:center;gap:1rem}
.tm-marque a{display:flex;align-items:baseline;gap:.55rem}
.tm-marque a:hover{text-decoration:none}
.tm-marque-mot{font-family:var(--titre);font-weight:900;font-size:17px;letter-spacing:-.02em}
.tm-marque-base{font-family:var(--mono);font-size:10.5px;letter-spacing:.12em;
  text-transform:uppercase;color:var(--doux)}
.tm-cherche{margin-left:auto}
.tm-cherche input{font:inherit;font-family:var(--mono);font-size:12px;padding:.38rem .6rem;
  width:min(250px,42vw);border:1px solid var(--filet);border-radius:var(--rayon);
  background:var(--surf);color:var(--encre)}
.tm-cherche input::placeholder{color:var(--doux)}
.tm-methodo{font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.1em;
  text-transform:uppercase;padding:.4rem .7rem;border:1px solid var(--filet-fort);
  border-radius:var(--rayon);color:var(--encre);white-space:nowrap}
.tm-methodo:hover{text-decoration:none;border-color:var(--accent-txt);color:var(--accent-txt)}
.tm-burger{display:none;background:none;border:1px solid var(--filet-fort);
  border-radius:var(--rayon);padding:.42rem .48rem;cursor:pointer}
.tm-burger span{display:block;width:16px;height:1.5px;background:var(--encre);margin:3px 0}
.tm-deroule{display:none}
.tm-deroule a{display:flex;align-items:center;gap:.7rem;padding:.6rem 1.2rem;
  border-top:1px solid var(--filet);font-size:14px}
.tm-deroule-code{font-family:var(--mono);font-size:11px;font-weight:700;text-transform:uppercase;
  color:var(--accent-txt);min-width:2ch}

/* ---------- 5. LE RELEVE : TUILES EN TRAME HACHUREE ---------------------- */
.tm-releve{padding-block:1.4rem 0}
.tm-releve-tete{display:flex;align-items:baseline;gap:1rem;flex-wrap:wrap}
.tm-releve-note{font-size:12px;color:var(--doux);margin-bottom:.6rem}
.tm-tuiles{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:1px;
  background:var(--filet);border:1px solid var(--filet);border-radius:var(--rayon);overflow:hidden}
.tm-tuile{display:flex;flex-direction:column;gap:.15rem;padding:.7rem .8rem .8rem;
  background:var(--surf);
  background-image:repeating-linear-gradient(135deg,transparent 0 4px,var(--trame-ligne) 4px 5px);
  min-width:0}
.tm-tuile:hover{text-decoration:none;background-color:var(--surf2)}
.tm-tuile-code{font-family:var(--mono);font-size:10.5px;font-weight:700;letter-spacing:.14em;
  text-transform:uppercase;color:var(--accent-txt);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tm-tuile-nom{font-size:12px;color:var(--doux);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tm-tuile-val{font-family:var(--mono);font-size:28px;font-weight:700;line-height:1.05;
  letter-spacing:-.03em;color:var(--encre);margin-top:.25rem;font-variant-numeric:tabular-nums}
.tm-tuile-pied{display:flex;flex-direction:column;gap:.1rem;margin-top:.3rem;
  font-family:var(--mono);font-size:10.5px;color:var(--doux)}

/* ---------- 6. LE POSTE : 8 COLONNES + 4 COLONNES ------------------------ */
.tm-poste{display:grid;grid-template-columns:minmax(0,8fr) minmax(0,4fr);
  gap:2rem;padding-block:1.8rem}
.tm-poste-corps{min-width:0}
.tm-cote{min-width:0;display:flex;flex-direction:column;gap:1.2rem}
.tm-ouverture-titre,.tm-ouverture h1{margin-top:.5rem}
.tm-ouverture-titre{font-size:clamp(26px,3.4vw,44px);line-height:1.04;font-weight:900}
.tm-ouverture .tm-visuel{margin-bottom:.9rem}
.tm-ouverture .tm-chapo{font-size:16.5px}
.tm-ouverture--rub{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);
  gap:1.6rem;align-items:center;padding-block:1.4rem}
.tm-ouverture--rub .tm-ouverture-titre{font-size:clamp(22px,2.6vw,32px)}

.tm-cadre{border:1px solid var(--filet);border-radius:var(--rayon);background:var(--surf);
  padding:.9rem 1rem 1rem;margin-top:1.6rem}
.tm-cote .tm-cadre{margin-top:0}

/* le tableau : en-tetes collants, filet VERTICAL de 2 px entre les colonnes */
.tm-scroll{overflow-x:auto}
.tm-tableau{width:100%;border-collapse:collapse;font-size:13.5px}
.tm-tableau th,.tm-tableau td{padding:.5rem .7rem;text-align:left;vertical-align:top;
  border-bottom:1px solid var(--filet)}
.tm-tableau thead th{position:sticky;top:0;z-index:5;background:var(--surf);
  font-family:var(--mono);font-size:10.5px;font-weight:700;letter-spacing:.12em;
  text-transform:uppercase;color:var(--doux);border-bottom:2px solid var(--filet-fort)}
.tm-tableau th + th,.tm-tableau td + td,.tm-tableau td + th,.tm-tableau th + td{
  border-left:2px solid var(--filet)}
.tm-tableau tbody tr:nth-child(even){background:var(--surf2)}
.tm-tableau tbody tr:hover{background:var(--fond)}
.tm-cell-titre{font-weight:600;font-size:14.5px;line-height:1.3;font-family:var(--courant)}
.tm-cell-chapo{display:block;font-weight:400;font-size:12px;color:var(--doux);margin-top:.2rem}
.tm-cell-rub{font-family:var(--mono);font-size:11.5px;color:var(--doux);white-space:nowrap}
.tm-cell-num{white-space:nowrap;font-size:11.5px;color:var(--doux)}
.tm-tableau td.tm-num{font-size:11.5px;color:var(--doux);white-space:nowrap}

/* la colonne d'analyses : numeros en chasse fixe, filets fins */
.tm-analyses li{display:flex;gap:.7rem;padding:.6rem 0;border-bottom:1px solid var(--filet)}
.tm-analyses li:last-child{border-bottom:0;padding-bottom:0}
.tm-rang{font-size:12px;font-weight:700;color:var(--accent-txt);flex:0 0 auto;padding-top:.15rem}
.tm-analyse-txt a{font-size:14.5px;font-weight:600;line-height:1.3}
.tm-analyse-txt .tm-ligne-data{margin-top:.3rem}

/* les barres de poids : la meme trame que les tuiles, jamais un faux graphique */
.tm-barres li{display:grid;grid-template-columns:minmax(0,1fr) 90px 3ch;gap:.7rem;
  align-items:center;padding:.4rem 0;font-size:13px}
.tm-barre-nom{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tm-barre-piste{display:block;height:8px;background:var(--fond);border:1px solid var(--filet);
  border-radius:1px;overflow:hidden}
.tm-barre-jauge{display:block;height:100%;background:var(--accent);
  background-image:repeating-linear-gradient(135deg,transparent 0 3px,rgba(0,0,0,.25) 3px 4px)}
.tm-barre-val{font-size:12px;text-align:right;color:var(--doux)}

/* l'outil : il ne calcule QUE ce que le visiteur saisit */
.tm-outil-champs{display:grid;grid-template-columns:minmax(0,1fr) 96px;gap:.45rem .7rem;
  align-items:center;margin-top:.6rem}
.tm-outil-champs label{font-size:12.5px;color:var(--doux)}
.tm-outil-champs input{font:inherit;font-family:var(--mono);font-size:13px;width:100%;
  padding:.32rem .5rem;border:1px solid var(--filet-fort);border-radius:var(--rayon);
  background:var(--fond);color:var(--encre)}
.tm-outil-sortie{font-family:var(--mono);font-size:13px;line-height:1.4;color:var(--encre);
  margin-top:.7rem;padding:.55rem .65rem;border:1px dashed var(--filet-fort);border-radius:var(--rayon)}

/* ---------- 7. LA BANDE SOMBRE ------------------------------------------ */
.tm-bande{background:var(--bande-fond);color:var(--bande-encre);
  border-block:1px solid var(--rail-filet);padding-block:2rem;margin-block:1.6rem}
.tm-bande-in{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:2rem;align-items:center}
.tm-bande-titre{font-size:clamp(22px,2.6vw,34px);line-height:1.08;margin-top:.3rem;color:var(--bande-encre)}
.tm-bande-txt .tm-etiq{margin-bottom:.4rem}
.tm-points{margin-top:1.1rem;border-top:1px solid var(--rail-filet)}
.tm-points li{display:flex;gap:.8rem;align-items:baseline;padding:.6rem 0;
  border-bottom:1px solid var(--rail-filet);font-size:14.5px;line-height:1.45;color:var(--bande-encre)}
.tm-points .tm-num{font-size:11.5px;font-weight:700;color:var(--accent-rail);flex:0 0 auto}
.tm-visuel--bande img{aspect-ratio:16/9}

/* ---------- 8. LA GRILLE ET SES FILTRES --------------------------------- */
.tm-suite{padding-block:.6rem 2rem}
.tm-suite-tete{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;
  padding-bottom:.6rem;border-bottom:2px solid var(--filet-fort);margin-bottom:1.2rem}
.tm-suite-tete .tm-etiq{margin-bottom:0}
.tm-filtres{display:flex;gap:.35rem;flex-wrap:wrap;margin-left:auto}
.tm-filtre{font-family:var(--mono);font-size:10.5px;font-weight:700;letter-spacing:.1em;
  text-transform:uppercase;padding:.32rem .6rem;border:1px solid var(--filet);
  border-radius:var(--rayon);background:var(--surf);color:var(--doux);cursor:pointer}
.tm-filtre:hover{color:var(--encre);border-color:var(--filet-fort)}
.tm-filtre.is-actif{color:var(--accent-txt);border-color:var(--accent-txt)}
.tm-grille{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1.4rem}
.tm-grille--trois{grid-template-columns:repeat(3,minmax(0,1fr))}
.tm-carte{display:flex;flex-direction:column;min-width:0;border:1px solid var(--filet);
  border-radius:var(--rayon);background:var(--surf);padding:.7rem .8rem .9rem}
.tm-carte .tm-visuel{margin-bottom:.7rem}
.tm-carte-titre{font-size:16px;font-weight:700;line-height:1.22}
.tm-carte .tm-ligne-data{margin-top:.45rem;padding-top:.4rem;border-top:1px solid var(--filet)}
.tm-carte .tm-chapo--court{margin-top:.45rem}
.tm-suite--article{padding-block:2rem 0;border-top:1px solid var(--filet);margin-top:2rem}

/* ---------- 9. LE LEXIQUE : LISTE A FILETS ------------------------------ */
.tm-lexique{padding-block:1.4rem 2.4rem}
.tm-lex-liste{margin:0;border-top:2px solid var(--filet-fort)}
.tm-lex-ligne{display:grid;grid-template-columns:minmax(0,240px) minmax(0,1fr);gap:1.2rem;
  padding:.7rem 0;border-bottom:1px solid var(--filet)}
.tm-lex-ligne dt{font-family:var(--titre);font-size:15px;font-weight:700}
.tm-lex-ligne dd{margin:0;font-size:14px;color:var(--doux);line-height:1.5}

/* ---------- 10. ARTICLE ------------------------------------------------- */
.tm-article{padding-block:1.6rem 2.4rem}
.tm-art-tete{max-width:min(880px,100%)}
.tm-ariane{font-family:var(--mono);font-size:11px;letter-spacing:.06em;color:var(--doux);
  padding-bottom:.7rem;margin-bottom:.9rem;border-bottom:1px solid var(--filet)}
.tm-art-titre{font-size:clamp(27px,4vw,44px);line-height:1.05;font-weight:900}
.tm-art-chapo{font-size:18px;line-height:1.5;color:var(--doux);margin-top:.8rem}

.tm-chiffres{border:1px solid var(--filet-fort);border-radius:var(--rayon);background:var(--surf);
  background-image:repeating-linear-gradient(135deg,transparent 0 4px,var(--trame-ligne) 4px 5px);
  padding:.9rem 1rem 1rem;margin-top:1.4rem;max-width:min(880px,100%)}
.tm-chiffres-tete{display:flex;align-items:baseline;gap:1rem;flex-wrap:wrap;
  padding-bottom:.6rem;border-bottom:1px solid var(--filet-fort);margin-bottom:.8rem}
.tm-chiffres-tete .tm-etiq{margin-bottom:0}
.tm-chiffres-src{font-family:var(--mono);font-size:11px;color:var(--doux);margin-left:auto}
.tm-chiffres-src a{color:var(--accent-txt);text-decoration:underline;text-underline-offset:2px}
.tm-chiffres-liste{display:grid;grid-template-columns:repeat(auto-fit,minmax(0,1fr));gap:1px;
  background:var(--filet)}
.tm-chiffres-liste li{background:var(--surf);padding:.5rem .7rem}
.tm-chiffre-val{display:block;font-size:26px;font-weight:700;line-height:1.1;letter-spacing:-.03em}
.tm-chiffre-lib{display:block;font-size:12px;color:var(--doux);margin-top:.2rem;line-height:1.35}

.tm-visuel--article{margin:1.6rem 0;max-width:min(1100px,100%)}
.tm-art-corps{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,280px);
  gap:2.4rem;margin-top:1.8rem;align-items:start}
.tm-som{position:sticky;top:calc(var(--barre-h) + 12px);order:2;
  border:1px solid var(--filet);border-radius:var(--rayon);background:var(--surf);padding:.8rem .9rem}
.tm-som ol{counter-reset:none}
.tm-som li{border-top:1px solid var(--filet)}
.tm-som li:first-child{border-top:0}
.tm-som a{display:flex;gap:.6rem;padding:.42rem 0;font-size:13.5px;line-height:1.35;color:var(--encre)}
.tm-som .tm-num{font-size:11px;color:var(--accent-txt);flex:0 0 auto;padding-top:.12rem}

.tm-corps{max-width:min(760px,100%);font-size:17px;line-height:1.68}
.tm-corps p{margin:0 0 1.15rem}
.tm-corps h2{font-size:24px;margin:2rem 0 .7rem;padding-top:.6rem;border-top:2px solid var(--filet-fort);
  scroll-margin-top:calc(var(--barre-h) + 16px)}
.tm-corps h3{font-size:19px;margin:1.5rem 0 .5rem}
.tm-corps ul{margin:0 0 1.15rem}
.tm-corps ul li{position:relative;padding-left:1.1rem;margin-bottom:.45rem}
.tm-corps ul li::before{content:"";position:absolute;left:0;top:.62em;width:6px;height:6px;
  background:var(--accent);border-radius:1px}
.tm-corps ol{list-style:decimal;margin:0 0 1.15rem;padding-left:1.4rem}
.tm-corps ol li{margin-bottom:.45rem}
.tm-corps ol li::marker{font-family:var(--mono);font-size:.85em;color:var(--accent-txt)}
.tm-corps a{color:var(--accent-txt);text-decoration:underline;text-underline-offset:3px}
.tm-corps blockquote{margin:1.6rem 0;padding:.6rem 0 .6rem 1.1rem;border-left:3px solid var(--accent);
  font-size:19px;line-height:1.45;color:var(--encre)}
.tm-corps blockquote p:last-child{margin-bottom:0}
.tm-corps code{font-family:var(--mono);font-size:.88em;background:var(--surf);
  border:1px solid var(--filet);border-radius:2px;padding:.08em .35em}
.tm-corps pre{font-family:var(--mono);font-size:13px;line-height:1.5;background:var(--surf);
  border:1px solid var(--filet);border-radius:var(--rayon);padding:.8rem;overflow-x:auto;margin:1.4rem 0}
.tm-corps pre code{background:none;border:0;padding:0}
.tm-corps figure{margin:1.5rem 0}
.tm-corps figcaption{font-size:11.5px;color:var(--doux);margin-top:.4rem;
  padding-top:.35rem;border-top:1px solid var(--filet)}
.tm-corps img{margin:1.4rem 0}
.tm-corps table{width:100%;border-collapse:collapse;font-size:13.5px;margin:1.4rem 0;
  display:block;overflow-x:auto}
.tm-corps th,.tm-corps td{padding:.5rem .7rem;text-align:left;border-bottom:1px solid var(--filet)}
.tm-corps th + th,.tm-corps td + td{border-left:2px solid var(--filet)}
.tm-corps thead th{position:sticky;top:0;background:var(--surf);font-family:var(--mono);
  font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--doux);
  border-bottom:2px solid var(--filet-fort)}

/* l'encadre « ce que ça ne dit pas » : habille une section REELLE du contenu */
.tm-limites{border:1px solid var(--accent2);border-left-width:3px;border-radius:var(--rayon);
  background:var(--surf);padding:.2rem 1rem 1rem;margin:1.8rem 0}
.tm-limites h2{border-top:0;padding-top:0;margin-top:1rem;font-size:19px;color:var(--accent2-txt)}
.tm-limites p:last-child,.tm-limites ul:last-child{margin-bottom:0}

.tm-avertissement{max-width:min(880px,100%);font-family:var(--mono);font-size:11.5px;line-height:1.6;
  color:var(--doux);margin-top:2rem;padding:.8rem .9rem;border:1px dashed var(--filet-fort);
  border-radius:var(--rayon)}
.tm-art-pied{max-width:min(880px,100%);margin-top:1.6rem;padding-top:1.2rem;border-top:1px solid var(--filet)}

/* signature d'auteur (produite par jr_signature) — remise au registre du terminal */
.sb-signature{display:flex;gap:1rem;align-items:flex-start}
.sb-signature img{width:56px;height:56px;border-radius:var(--rayon)}
.sb-signature-nom{font-family:var(--titre);font-weight:700;font-size:15.5px}
.sb-signature-bio{font-size:13.5px;color:var(--doux);margin-top:.25rem;line-height:1.45}
.sb-date{font-family:var(--mono);font-size:11px;color:var(--doux);margin-top:.4rem}

/* ---------- 11. RUBRIQUE ------------------------------------------------- */
.tm-rub{padding-block:1.4rem 2.4rem}
.tm-rub-tete{padding-bottom:1rem;border-bottom:2px solid var(--filet-fort)}
.tm-rub-titre{font-size:clamp(24px,3.4vw,44px);line-height:1.05;font-weight:900}
.tm-rub-chapo{font-size:16px;color:var(--doux);margin-top:.6rem;max-width:min(680px,100%)}
.tm-releve-ligne{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;margin:1.2rem 0 0;
  background:var(--filet);border:1px solid var(--filet);border-radius:var(--rayon);overflow:hidden}
.tm-releve-ligne > div{background:var(--surf);
  background-image:repeating-linear-gradient(135deg,transparent 0 4px,var(--trame-ligne) 4px 5px);
  padding:.6rem .8rem}
.tm-releve-ligne dt{font-family:var(--mono);font-size:10.5px;letter-spacing:.12em;
  text-transform:uppercase;color:var(--doux)}
.tm-releve-ligne dd{margin:.2rem 0 0}
.tm-releve-val{font-size:22px;font-weight:700;letter-spacing:-.02em}
.tm-pagination{display:flex;gap:.35rem;flex-wrap:wrap;padding-top:1.4rem;
  font-family:var(--mono);font-size:12px;font-weight:700}
.tm-pagination .page-numbers{padding:.35rem .65rem;border:1px solid var(--filet);border-radius:var(--rayon)}
.tm-pagination .current{background:var(--encre);color:var(--fond);border-color:var(--encre)}

/* ---------- 12. PIED DE PAGE ETENDU -------------------------------------- */
.tm-pied{margin-top:2.4rem;border-top:1px solid var(--filet);background:var(--fond)}
.tm-pied-grille{display:grid;grid-template-columns:1.2fr 1fr 1fr 1.3fr;gap:2rem;padding-block:2rem}
.tm-pied-col{min-width:0}
.tm-mono--pied{width:30px;color:var(--accent-txt)}
.tm-pied-marque{font-family:var(--titre);font-weight:900;font-size:20px;margin-top:.5rem;letter-spacing:-.02em}
.tm-pied-base{font-family:var(--mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;
  color:var(--doux);margin-top:.25rem}
.tm-pied-liste li{display:flex;justify-content:space-between;gap:.7rem;padding:.3rem 0;
  font-size:13.5px;border-bottom:1px solid var(--filet)}
.tm-pied-compte{font-size:11px;color:var(--doux)}
.tm-pied-fil li{display:flex;gap:.6rem;align-items:baseline;padding:.35rem 0;
  border-bottom:1px solid var(--filet);font-size:13px}
.tm-pied-fil .tm-num{font-size:10.5px;color:var(--doux);flex:0 0 auto}

.tm-methodes{border-top:1px solid var(--filet);background:var(--surf);padding-block:1.8rem;
  scroll-margin-top:calc(var(--barre-h) + 8px)}
.tm-methodes-grille{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1.6rem}
.tm-methodes h3{font-family:var(--mono);font-size:11.5px;font-weight:700;letter-spacing:.1em;
  text-transform:uppercase;color:var(--encre);padding-bottom:.4rem;margin-bottom:.5rem;
  border-bottom:1px solid var(--filet-fort)}
.tm-methodes p{font-size:13px;line-height:1.55;color:var(--doux)}

.tm-ours{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;
  padding-block:.9rem 1.1rem;border-top:1px solid var(--filet);
  font-family:var(--mono);font-size:11px;color:var(--doux)}
.tm-bascule{font-family:var(--mono);font-size:10.5px;font-weight:700;letter-spacing:.1em;
  text-transform:uppercase;padding:.38rem .7rem;border:1px solid var(--filet-fort);
  background:none;color:var(--encre);border-radius:var(--rayon);cursor:pointer}
.tm-bascule:hover{border-color:var(--accent-txt);color:var(--accent-txt)}
.tm-pied input[type="search"],.tm-pied input[type="text"]{font:inherit;font-family:var(--mono);
  font-size:12.5px;width:100%;padding:.4rem .6rem;border:1px solid var(--filet);
  border-radius:var(--rayon);background:var(--surf);color:var(--encre)}

/* ---------- 13. BARRE MOBILE BASSE (structure du modele, R-0022) --------- */
.sb-nav-mobile{display:none;position:fixed;left:0;right:0;bottom:0;z-index:40;
  background:var(--rail-fond);border-top:1px solid var(--rail-filet);
  padding-bottom:env(safe-area-inset-bottom)}
.sb-nav-mobile-item{flex:1 1 0;display:flex;flex-direction:column;align-items:center;gap:2px;
  padding:.45rem .2rem .5rem;font-family:var(--mono);font-size:9.5px;font-weight:700;
  letter-spacing:.06em;text-transform:uppercase;color:var(--rail-encre);text-align:center}
.sb-nav-mobile-item:hover{text-decoration:none}
.sb-nav-mobile-item.is-actif{color:var(--accent-rail)}
.sb-nav-ico{display:block;width:20px;height:20px}
.sb-nav-ico svg{width:100%;height:100%;stroke:currentColor;fill:none}

/* ---------- 14. REPLIS (jamais un debordement horizontal) ---------------- */
@media (max-width: 1180px){
  .tm-tuiles{grid-template-columns:repeat(3,minmax(0,1fr))}
  .tm-grille{grid-template-columns:repeat(2,minmax(0,1fr))}
  .tm-methodes-grille{grid-template-columns:repeat(2,minmax(0,1fr))}
  .tm-pied-grille{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.6rem}
}
@media (max-width: 960px){
  body{padding-left:0}
  .tm-rail{display:none}
  .sb-oeil:focus{left:.5rem}
  .tm-burger{display:block}
  .tm-deroule{display:block;max-height:0;overflow:hidden}
  .tm-deroule.is-ouvert{max-height:none;overflow:visible;border-bottom:1px solid var(--filet)}
  .tm-poste{grid-template-columns:minmax(0,1fr);gap:1.4rem}
  .tm-bande-in{grid-template-columns:minmax(0,1fr)}
  .tm-art-corps{grid-template-columns:minmax(0,1fr)}
  .tm-som{position:static;order:0;max-width:min(760px,100%);margin-bottom:1.4rem}
  .tm-ouverture--rub{grid-template-columns:minmax(0,1fr)}
  .tm-releve-ligne{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width: 760px){
  .tm-in,.tm-barre-in{width:min(100% - 1.6rem,100%)}
  .tm-marque-base{display:none}
  .tm-cherche{display:none}
  .tm-tuiles{grid-template-columns:repeat(2,minmax(0,1fr))}
  .tm-tuile-val{font-size:24px}
  .tm-grille,.tm-grille--trois{grid-template-columns:minmax(0,1fr)}
  .tm-methodes-grille,.tm-pied-grille{grid-template-columns:minmax(0,1fr)}
  .tm-lex-ligne{grid-template-columns:minmax(0,1fr);gap:.2rem}
  .tm-chiffres-liste{grid-template-columns:minmax(0,1fr)}
  .tm-suite-tete{align-items:flex-start;flex-direction:column}
  .tm-filtres{margin-left:0}
  .tm-corps{font-size:16.5px}
  .sb-nav-mobile{display:flex}
  body{padding-bottom:64px}
}
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.001ms!important;transition-duration:.001ms!important;
    scroll-behavior:auto!important}
}
@media print{
  .tm-rail,.tm-barre,.sb-nav-mobile,.tm-cote,.tm-filtres,.tm-bascule,.tm-outil{display:none!important}
  body{padding-left:0;background:#fff;color:#000}
  .tm-bande{background:#fff;color:#000;border-color:#ccc}
}

/* garde-fou : un display:grid/flex de classe bat l attribut hidden (vu le 04/09) —
   le filtre de la grille pose hidden sur des .tm-carte en display:flex */
[hidden]{display:none!important}

/* P-470 — la 1re carte de l accueil porte grid-column:span 2 en style INLINE.
   Sur telephone la grille n a plus qu une colonne : le span fabrique une colonne
   implicite dimensionnee sur le contenu (526px dans un ecran de 390) et pousse la page.
   !important est indispensable : on annule un style inline. */
@media (max-width:760px){.sb-grille>*{grid-column:auto!important}}

/* P-470 — la plume cite ses sources en URL BRUTE entre parentheses. Une URL ne
   contient aucun point de coupure : le paragraphe fait 677px de large dans une colonne
   de 329 et la page deborde de 351px sur telephone. Le piege : AUCUN element ne depasse
   le viewport (getBoundingClientRect ne voit rien), c est le contenu qui deborde de son
   propre element — seul scrollWidth > clientWidth le montre. */
.sb-corps{overflow-wrap:anywhere}

/* P-491 — display:contents : le h1 de la marque n existe pas pour la mise en page. */
.sb-marque-h1{display:contents}
