/*
Theme Name: HENUSSE
Theme URI: https://henusse.com/
Author: Théo Hénusse
Description: Thème maison HENUSSE. Dossier d'analyse typographié : une colonne, serif, filets fins, rouge réservé aux annotations. Conçu pour la publication aeo-hub (articles en HTML sémantique classique).
Version: 1.0.0
Requires PHP: 7.4
Text Domain: henusse
*/


:root {
  --red: #c31b1b;
  --red-deep: #9a1313;
  --ink: #1d1a16;
  --paper: #faf7f2;
  --panel: #fffdf9;
  --hair: #ddd5c6;
  --muted: #6f675c;
  --slate: #8d9aa8;

  --bg: var(--paper);
  --fg: var(--ink);
  --fg-soft: var(--muted);
  --accent: var(--red);
  --line: var(--hair);
  --rival: var(--slate);

  --serif: "Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", Georgia, serif;
  --sans: system-ui, -apple-system, "Segoe UI", "Helvetica Neue", Arial, sans-serif;
  --mono: ui-monospace, "SF Mono", "Cascadia Mono", Menlo, Consolas, monospace;

  --col: 760px;
}

* { box-sizing: border-box; }

html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
}

body {
  margin: 0;
  background: var(--bg);
  color: var(--fg);
  font-family: var(--serif);
  font-size: 20px;
  line-height: 1.62;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

.skip-link {
  position: absolute;
  left: -9999px;
  top: 0;
  background: var(--fg);
  color: var(--bg);
  padding: 10px 16px;
  z-index: 10;
}
.skip-link:focus { left: 0; }

.shell {
  max-width: var(--col);
  margin: 0 auto;
  padding-inline: clamp(20px, 5vw, 32px);
}

/* ---------- en-tête : une ligne, un vrai menu sur petit écran ---------- */

.masthead { position: relative; z-index: 50; border-bottom: 1px solid var(--line); background: var(--bg); }
.masthead__bar {
  display: flex;
  align-items: center;
  gap: clamp(16px, 2vw, 28px);
  min-height: 86px;
  flex-wrap: nowrap;
}
.masthead__bar .wordmark { flex: 0 0 auto; }
.wordmark {
  display: inline-flex;
  flex-direction: column;
  align-items: flex-start;
  color: var(--fg);
  text-decoration: none;
  line-height: 1;
  margin-right: auto;
}
.wordmark__img { display: block; width: auto; height: 40px; }
.wordmark__img--footer { height: 30px; }
.wordmark > small {
  display: block;
  margin-top: 6px;
  font-size: 10.5px;
  font-weight: 500;
  letter-spacing: .13em;
  font-variant-caps: all-small-caps;
  color: var(--fg-soft);
}
.masthead__meta {
  font-size: 12.5px;
  letter-spacing: .1em;
  font-variant-caps: all-small-caps;
  color: var(--fg-soft);
  margin: 0;
  padding-bottom: 10px;
  line-height: 1.6;
}

.navtoggle { display: none; }

.mainnav {
  display: flex;
  align-items: center;
  gap: 30px;
  font-size: 16px;
  font-weight: 550;
  letter-spacing: .005em;
}
.mainnav a {
  color: var(--fg);
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  white-space: nowrap;
}
.mainnav a:hover { color: var(--accent); }
.mainnav a[aria-current="page"],
.mainnav a[aria-current="location"] { color: var(--accent); }
.mainnav .nav-cta {
  border: 1px solid var(--accent);
  background: var(--accent);
  color: #fff;
  padding: 0 22px;
  min-height: 48px;
  border-radius: 5px;
  font-weight: 650;
}
.mainnav .nav-cta:hover {
  border-color: var(--accent-deep, #7e1818);
  background: var(--accent-deep, #7e1818);
}

@media (max-width: 1520px) and (min-width: 1081px) {
  .mainnav { gap: 20px; font-size: 15px; }
  .mainnav .nav-cta { padding: 0 16px; }
  .wordmark > small { display: none; }
}

@media (max-width: 1080px) {
  .masthead__bar { min-height: 76px; }
  .wordmark__img { height: 34px; }
  .wordmark > small { display: none; }

  .navtoggle {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    min-height: 48px;
    padding: 0 14px;
    border: 1px solid var(--line);
    border-radius: 6px;
    background: transparent;
    color: var(--fg);
    font: inherit;
    font-size: 15px;
    font-weight: 600;
    cursor: pointer;
  }
  .navtoggle__bars { display: inline-flex; flex-direction: column; gap: 4px; }
  .navtoggle__bars i { display: block; width: 17px; height: 2px; background: currentColor; }
  .navtoggle[aria-expanded="true"] { border-color: var(--accent); color: var(--accent); }

  .mainnav {
    display: none;
    /* sans `top`, le menu se plaçait à sa position statique, centré dans la barre,
       donc à -142px : les trois premières entrées passaient au-dessus de l'écran. */
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    max-height: calc(100svh - 100%);
    overflow-y: auto;
    z-index: 40;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    padding: 8px clamp(20px, 5vw, 32px) 20px;
    background: var(--bg);
    border-bottom: 1px solid var(--line);
    box-shadow: 0 24px 40px -30px rgba(29, 26, 22, .55);
  }
  .masthead.is-open .mainnav { display: flex; }
  .mainnav a {
    min-height: 54px;
    font-size: 18px;
    border-bottom: 1px solid var(--line);
  }
  .mainnav .nav-cta {
    margin-top: 14px;
    justify-content: center;
    border-bottom: 1px solid var(--accent);
  }
  .masthead__meta { display: none; }
}

/* ---------- typographie ---------- */

h1, h2, h3 {
  font-family: var(--serif);
  letter-spacing: -.008em;
  line-height: 1.18;
  color: var(--fg);
  text-wrap: balance;
  margin: 0;
  font-weight: 700;
}
h1 { font-size: clamp(28px, 4.6vw, 38px); }
h2 { font-size: clamp(21px, 2.9vw, 26px); }
h3 { font-size: 18px; }

p { margin: 0; }
p + p { margin-top: 14px; }

a { color: var(--fg); text-decoration-thickness: 1px; text-underline-offset: 3px; }
a:hover { color: var(--accent); }

/* étiquette de section : petites capitales, sobre */
/* surtitre : une ligne d'italique, comme un chapeau de rubrique, jamais une
   étiquette en capitales rouges (le motif des pages générées) */
.eyebrow {
  font-family: var(--serif);
  font-style: italic;
  font-size: 1.05rem;
  letter-spacing: 0;
  font-variant-caps: normal;
  color: var(--muted);
  margin: 0 0 10px;
  font-weight: 500;
}
.eyebrow--quiet { color: var(--fg-soft); font-size: .95rem; font-weight: 400; }

.lede {
  font-size: clamp(17.5px, 2vw, 19px);
  line-height: 1.58;
  color: var(--fg);
}
.softnote { color: var(--fg-soft); font-size: 15px; }

.section-label {
  font-family: var(--serif);
  font-style: italic;
  font-size: 1.05rem;
  letter-spacing: 0;
  font-variant-caps: normal;
  color: var(--muted);
  font-weight: 500;
  padding-bottom: 8px;
  border-bottom: 1px solid var(--line);
  margin: 0 0 20px;
}

/* ---------- sections : un document qui se déroule ---------- */

.band { padding-block: clamp(34px, 5vw, 52px); }
.band--rule, .band--tint, .band--dark { border-top: 1px solid var(--line); background: transparent; color: inherit; }
.band--dark h2, .band--dark h3, .band--dark p, .band--dark a { color: inherit; }
.band--dark .eyebrow { color: var(--fg-soft); }
.band--dark .btn-note { color: var(--fg-soft); }
.band--dark .ledger > article { border-color: var(--line); }
.band--dark .ledger .no { color: var(--accent); }
.band--dark .ledger p { color: var(--fg-soft); }

.grid-2, .grid-3 { display: block; }
.grid-2 > div + div, .grid-3 > div + div { margin-top: 22px; }

/* filet rouge : la marge annotée, réservée aux passages qui comptent */
.filet {
  border-left: 3px solid var(--accent);
  padding-left: clamp(14px, 2.5vw, 22px);
}

/* ---------- actions : des liens posés, pas des pavés ---------- */

.btn {
  display: inline-block;
  font-family: var(--serif);
  font-size: 15.5px;
  letter-spacing: .05em;
  font-variant-caps: all-small-caps;
  font-weight: 700;
  text-decoration: none;
  border: 1px solid var(--fg);
  border-radius: 0;
  padding: 9px 18px 8px;
  color: var(--fg);
  background: transparent;
}
.btn:hover { border-color: var(--accent); color: var(--accent); }
.btn--primary { border-color: var(--accent); color: var(--accent); }
.btn--primary:hover { background: var(--accent); color: var(--paper); }
.btn--ghost { border-color: var(--line); }
.btn-row { display: flex; gap: 12px 16px; flex-wrap: wrap; align-items: center; margin-top: 22px; }
.btn-note { font-size: 14px; color: var(--fg-soft); max-width: 40ch; }

/* ---------- objets du dossier ---------- */

/* pièce : un extrait typographié, filets fins, rouge en marge */
.exhibit {
  border-top: 1px solid var(--fg);
  border-bottom: 1px solid var(--line);
  max-width: 560px;
  background: transparent;
}
.exhibit__top {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  font-size: 12px;
  letter-spacing: .12em;
  font-variant-caps: all-small-caps;
  color: var(--fg-soft);
  border-bottom: 1px solid var(--line);
  padding: 8px 2px;
}
.exhibit__body { padding: 16px 2px 14px; }
.exhibit__q {
  font-style: italic;
  font-size: 16.5px;
  margin: 0 0 14px;
}
.exhibit__rows { display: flex; flex-direction: column; }
.exhibit__row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  font-size: 13px;
  font-variant-caps: all-small-caps;
  letter-spacing: .06em;
  padding: 7px 2px;
  border-top: 1px solid var(--line);
}
.redact {
  display: inline-block;
  height: 8px;
  background: var(--rival);
  opacity: .4;
}
.exhibit__row--you {
  font-weight: 700;
  border-top: 1px solid var(--fg);
}
.tick-cite { color: var(--fg-soft); letter-spacing: .08em; }
.tick-verify { color: var(--accent); font-weight: 700; letter-spacing: .08em; }
.exhibit__note {
  font-size: 13.5px;
  color: var(--fg-soft);
  border-top: 1px solid var(--line);
  padding: 10px 2px 12px;
  margin: 0;
  line-height: 1.55;
}

/* encadré : simple retrait à filet, aucun fond */
.callout {
  background: transparent;
  border-top: 1px solid var(--line);
  border-radius: 0;
  padding: 14px 0 0;
}
.callout + .callout, .grid-2 .callout, .grid-3 .callout { margin-top: 18px; }

/* compris / non compris : deux blocs jumeaux, cote a cote sur ordinateur, empiles sur mobile (meme gabarit que le conteneur cards-3) */
.cards-2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(1.2rem, 2.6vw, 2rem); margin-block: clamp(1.8rem, 3.5vw, 2.8rem); }
.cards-2 > .callout { margin-top: 0; }
@media (max-width: 820px) { .cards-2 { grid-template-columns: minmax(0, 1fr); } }

/* liste numérotée : les numéros au stylo rouge */
.ledger { display: flex; flex-direction: column; }
.ledger > article {
  display: grid;
  grid-template-columns: minmax(40px, max-content) minmax(0, 1fr);
  gap: 14px;
  padding-block: 14px;
  border-top: 1px solid var(--line);
  align-items: baseline;
}
.ledger > article:last-child { border-bottom: 1px solid var(--line); }
.ledger .no {
  font-family: var(--mono);
  /* 2026-08-17, retour de Théo : les listes 01-04 se lisaient trop petit. */
  font-size: 14px;
  font-weight: 600;
  color: var(--accent);
}
.ledger h2, .ledger h3 { font-size: 18px; margin-bottom: 3px; }
/* journal : vignette de plaque en tete de ligne */
.ledger--vignettes > article { grid-template-columns: minmax(40px, max-content) 132px minmax(0, 1fr); align-items: center; }
.ledger--vignettes .ledger-thumb { display: block; width: 132px; height: 69px; object-fit: cover; border: 1px solid var(--line); border-radius: 2px; }
@media (max-width: 640px) {
  .ledger--vignettes > article { grid-template-columns: minmax(40px, max-content) minmax(0, 1fr); }
  .ledger--vignettes .ledger-thumb { display: none; }
}

.ledger p { color: var(--fg-soft); font-size: 16px; }

/* relevé : petite table de dossier */
.receipt {
  background: transparent;
  border-top: 1px solid var(--fg);
  border-bottom: 1px solid var(--line);
  font-size: 15px;
  max-width: 560px;
}
.receipt__top, .receipt__foot {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  font-size: 12px;
  letter-spacing: .12em;
  font-variant-caps: all-small-caps;
  color: var(--fg-soft);
  padding: 8px 2px;
}
.receipt__top { border-bottom: 1px solid var(--line); }
.receipt__foot { border-top: 1px solid var(--line); }
.receipt__row {
  display: grid;
  grid-template-columns: 88px minmax(0, 1fr);
  gap: 12px;
  padding: 11px 2px;
}
.receipt__row + .receipt__row { border-top: 1px solid var(--line); }
.receipt__row strong {
  font-size: 13px;
  letter-spacing: .08em;
  font-variant-caps: all-small-caps;
  font-weight: 700;
  color: var(--fg);
}
.receipt__row p { color: var(--fg-soft); font-size: 14.5px; }
.receipt__row .receipt__list { margin: 0; padding-left: 1.05em; color: var(--fg-soft); font-size: 14.5px; }
.receipt__row .receipt__list li + li { margin-top: 7px; }

/* tableau de relevés : la mesure reste lisible comme une pièce de dossier */
.measurement-table-wrap {
  max-width: 100%;
  overflow-x: auto;
  border-top: 1px solid var(--fg);
  border-bottom: 1px solid var(--fg);
}
.measurement-table {
  width: 100%;
  min-width: 660px;
  border-collapse: collapse;
  font-size: 14.5px;
  line-height: 1.5;
}
.measurement-table caption {
  text-align: left;
  padding: 8px 2px;
  border-bottom: 1px solid var(--line);
  color: var(--fg-soft);
  font-size: 12px;
  letter-spacing: .12em;
  font-variant-caps: all-small-caps;
}
.measurement-table th,
.measurement-table td {
  padding: 13px 12px;
  border-bottom: 1px solid var(--line);
  text-align: left;
  vertical-align: top;
}
.measurement-table th:first-child,
.measurement-table td:first-child { padding-left: 2px; width: 45%; }
.measurement-table th:last-child,
.measurement-table td:last-child { padding-right: 2px; width: 32%; }
.measurement-table th {
  color: var(--fg-soft);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .1em;
  font-variant-caps: all-small-caps;
}
.measurement-table tbody tr:last-child td { border-bottom: 0; }
.measurement-table td strong { color: var(--accent); }
.measurement-table td .softnote { font-size: 13.5px; }
@media (max-width: 640px) {
  .measurement-table-wrap { overflow: visible; }
  .measurement-table { display: block; min-width: 0; }
  .measurement-table caption { display: block; width: 100%; }
  .measurement-table thead {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
  }
  .measurement-table tbody,
  .measurement-table tr,
  .measurement-table td { display: block; width: 100%; }
  .measurement-table tr { padding-block: 10px; }
  .measurement-table tr + tr { border-top: 1px solid var(--line); }
  .measurement-table td,
  .measurement-table td:first-child,
  .measurement-table td:last-child {
    width: 100%;
    padding: 8px 2px;
    border: 0;
  }
  .measurement-table td::before {
    content: attr(data-label);
    display: block;
    margin-bottom: 3px;
    color: var(--fg-soft);
    font-size: 11.5px;
    font-weight: 600;
    letter-spacing: .1em;
    font-variant-caps: all-small-caps;
  }
}

/* pastilles : simple petites capitales */
.badge {
  display: inline-block;
  font-size: 12px;
  letter-spacing: .1em;
  font-variant-caps: all-small-caps;
  padding: 0;
  border: 0;
}
.badge--measured { color: var(--fg-soft); }
.badge--measured::before { content: "· "; }
.badge--open { color: var(--accent); }
.badge--open::before { content: "· "; }

/* réservé : composants de page rapport, pas encore utilisés */
.strip { display: none; }
.dossier-table { display: none; }

/* ligne d'action typographiée : le seul geste d'appel hors héros */
.cta-line {
  margin-top: 20px;
  font-size: 15px;
  letter-spacing: .06em;
  font-variant-caps: all-small-caps;
  font-weight: 700;
}
.cta-line a { text-decoration: none; }
.cta-line a:hover { color: var(--accent); }
.cta-line .cta-sep { color: var(--fg-soft); font-weight: 400; }
.cta-line::first-letter { color: var(--accent); }

/* pratiques en page d'accueil */
.pratique { padding-block: clamp(30px, 4.5vw, 46px); }
.pratique + .pratique, .pratique.band--rule { border-top: 1px solid var(--line); }
.pratique__head { margin-bottom: 14px; }
.pratique .ledger { margin-top: 24px; }
.answer { font-size: 17px; line-height: 1.62; }

/* ---------- pied de page ---------- */

.footer {
  border-top: 1px solid var(--fg);
  margin-top: clamp(36px, 6vw, 60px);
  padding-block: 26px 40px;
  font-size: 14.5px;
  color: var(--fg-soft);
}
.footer__grid {
  display: grid;
  grid-template-columns: 1.45fr 1fr 1fr 1fr;
  gap: 24px clamp(20px, 4vw, 44px);
  margin-bottom: 26px;
}
@media (max-width: 900px) {
  .footer__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
  .footer__grid { grid-template-columns: minmax(0, 1fr); }
}
.footer h2 {
  font-size: 13px;
  letter-spacing: .14em;
  font-variant-caps: all-small-caps;
  color: var(--fg-soft);
  font-weight: 400;
  margin-bottom: 10px;
}
.footer ul { list-style: none; margin: 0; padding: 0; }
.footer li + li { margin-top: 6px; }
.footer a { color: var(--fg); text-decoration: none; }
.footer a:hover { color: var(--accent); }
.footer__legal {
  border-top: 1px solid var(--line);
  padding-top: 16px;
  font-size: 13px;
  line-height: 1.7;
}
/* fil d'Ariane */
.crumbs {
  font-size: 12.5px;
  letter-spacing: .1em;
  font-variant-caps: all-small-caps;
  color: var(--fg-soft);
  padding-block: 18px 0;
}
.crumbs a { color: var(--fg-soft); text-decoration: none; }
.crumbs a:hover { color: var(--accent); }
.crumbs span[aria-hidden] { margin-inline: 6px; }

/* entrée de page */
.hero { padding-block: clamp(34px, 5.5vw, 58px) clamp(26px, 4vw, 40px); }
.hero .lede { margin-top: 16px; }

/* questions-réponses : prose continue */
.faq { display: flex; flex-direction: column; }
.faq > section {
  border-top: 1px solid var(--line);
  padding-block: 16px;
  display: block;
}
.faq > section:last-child { border-bottom: 1px solid var(--line); }
.faq h3 { font-size: 17px; margin-bottom: 6px; }
.faq p { color: var(--fg-soft); font-size: 15.5px; }

/* Flat FAQ variant (h3 + p as direct children, no <section> wrappers, e.g. the
   correlation study page): give it the rhythm the sectioned variant gets from
   its per-section padding, so questions stop stacking against each other. */
.faq > h2 { margin-bottom: .9rem; }
.faq > h3 { margin-top: 1.6rem; }
.faq > h3:first-of-type { margin-top: 1.1rem; }
.faq > p { margin: 0 0 .4rem; }

/* utilitaire lecteur d'écran */
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* impression */
@media print {
  .mainnav, .nav-cta { display: none !important; }
  .btn { display: inline; border: none; padding: 0; background: none !important; color: #000 !important; text-decoration: underline; }
  body { background: #fff; color: #000; }
}

/* ---------- corps d'article (contenu publié par le moteur) ---------- */

.article-body { max-width: 68ch; }
.article-body h2 { margin: 34px 0 12px; }
.article-body h3 { margin: 26px 0 8px; }
.article-body p { margin: 0 0 14px; }
.article-body ul, .article-body ol { margin: 0 0 16px; padding-left: 22px; }
.article-body li { margin-bottom: 6px; }
.article-body li::marker { color: var(--accent); }
.article-body blockquote {
  margin: 20px 0;
  border-left: 3px solid var(--accent);
  padding-left: clamp(14px, 2.5vw, 22px);
  color: var(--fg-soft);
}
.article-body table {
  width: 100%;
  border-collapse: collapse;
  font-size: 15px;
  margin: 20px 0;
}
.article-body th {
  font-size: 13px;
  letter-spacing: .1em;
  font-variant-caps: all-small-caps;
  font-weight: 700;
  text-align: left;
  padding: 8px 12px 8px 0;
  border-bottom: 2px solid var(--fg);
}
.article-body td {
  padding: 10px 12px 10px 0;
  border-bottom: 1px solid var(--line);
  vertical-align: top;
}
.article-body img { max-width: 100%; height: auto; }
.article-body figure { margin: 20px 0; }
.article-body figcaption { font-size: 13.5px; color: var(--fg-soft); margin-top: 6px; }
.article-body hr { border: 0; border-top: 1px solid var(--line); margin: 28px 0; }

/* pagination du journal */
.pagination .nav-links { display: flex; gap: 16px; align-items: baseline; font-size: 14px; }
.pagination a, .pagination span.current { text-decoration: none; }
.pagination span.current { color: var(--accent); font-weight: 700; }

/* ---------- index des offres : une rangée de liens, collante ---------- */
/* Sur la page où l'argent se décide, on doit pouvoir sauter à une offre et
   revenir. La rangée défile horizontalement sur petit écran plutôt que de se
   replier en menu : un menu ajoute une décision avant l'information. */
.offres-index {
  position: sticky; top: 0; z-index: 30;
  margin: 0 0 2.2rem; padding: .55rem 0;
  background: color-mix(in srgb, var(--bg) 92%, transparent);
  backdrop-filter: saturate(1.4) blur(6px);
  border-bottom: 1px solid var(--line);
}
.offres-index__piste {
  /* même colonne que .shell : sans ça la rangée collait au bord gauche
     pendant que toute la page restait centrée */
  max-width: var(--col); margin-inline: auto;
  padding-inline: clamp(20px, 5vw, 32px);
  display: flex; gap: .35rem; overflow-x: auto; scrollbar-width: none;
  scroll-snap-type: x proximity; -webkit-overflow-scrolling: touch;
}
.offres-index__piste::-webkit-scrollbar { display: none; }
.offres-index a {
  flex: 0 0 auto; scroll-snap-align: start;
  padding: .34rem .8rem; border-radius: 999px;
  font-size: .82rem; letter-spacing: .01em; line-height: 1.5;
  color: var(--fg-soft); text-decoration: none; white-space: nowrap;
  border: 1px solid transparent; transition: color .18s, border-color .18s, background-color .18s;
}
.offres-index a:hover { color: var(--fg); border-color: var(--line); }
.offres-index a[aria-current="true"] {
  color: var(--red-deep); border-color: currentColor;
  background: color-mix(in srgb, var(--red-deep) 6%, transparent);
}
@media (prefers-reduced-motion: reduce) { .offres-index { backdrop-filter: none; } }
/* Un lien d'ancre amenait le titre visé sous l'index collant, donc invisible.
   Portée aux titres qui ont une ancre : le décalage sert à tout lien interne. */
:is(h2, h3, section)[id] { scroll-margin-top: 5.5rem; }

/* En-tête de l'exhibit du héros. Les trois lignes de concurrents ont leur nom
   remplacé par une barre grise : le mot « Concurrent, nom masqué » est bien dans
   le code, mais l'oeil ne voit que des barres et doit deviner ce qu'elles sont.
   Deux libellés nomment d'un coup ce que sont les lignes et ce que veut dire la
   fraction, sans toucher à la métaphore de la barre. */
.exhibit__head {
  display: flex; justify-content: space-between; align-items: baseline; gap: 1rem;
  margin: 0 0 .4rem; padding-bottom: .3rem;
  border-bottom: 1px solid var(--line);
  font-size: .68rem; letter-spacing: .14em; text-transform: uppercase;
  color: var(--fg-soft);
}
.exhibit__head span:last-child { white-space: nowrap; }
/* Le relevé réel remplace les faux concurrents : plus un seul nombre inventé
   au-dessus de la ligne de flottaison. La ligne citée porte le rouge, le zéro
   reste écrit en toutes lettres, c'est la doctrine de la maison. */
.exhibit__real { display: flex; flex-direction: column; gap: .55rem; }
.exhibit__real .q { font-family: var(--serif, Georgia, serif); font-size: .95rem; line-height: 1.4; color: var(--fg); margin: 0; }
.exhibit__real .r { display: flex; justify-content: space-between; align-items: baseline; gap: .8rem;
  font-size: .78rem; letter-spacing: .04em; color: var(--fg-soft); margin: .1rem 0 0; }
.exhibit__real .r b { font-weight: 600; white-space: nowrap; }
.exhibit__real .is-cited b { color: var(--red-deep); }
.exhibit__real hr { border: 0; border-top: 1px dashed var(--line); margin: .2rem 0; }

/* sélecteur de langue dans la navigation */
.mainnav .lang-switch{font-weight:700;letter-spacing:.06em;opacity:.75;border-bottom:1px solid currentColor;padding-bottom:1px}
.mainnav .lang-switch:hover{opacity:1}

/* plaque d'article sous le titre */
.article-head { max-width: 68ch; } /* meme colonne que .article-body : titre, plaque et corps partagent l'axe */
.article-plaque { margin: 26px 0 0; }
.article-plaque-img { display: block; width: 100%; max-width: 720px; height: auto; border: 1px solid var(--line); border-radius: 2px; }

/* portrait des pages d'autorite */
.autorite-portrait { margin: 26px 0 0; }
.autorite-portrait img { display: block; width: 100%; max-width: 300px; height: auto; border: 1px solid var(--line); border-radius: 2px; }

/* listes dans les cartes du registre (a-propos) */
.ledger ul { margin: 0; padding-left: 1.1rem; }
.ledger li { color: var(--fg-soft); font-size: 15px; margin-bottom: 4px; }
.ledger li::marker { color: var(--accent); }

/* ---------- journal : blocs éditoriaux du corps généré ---------- */

.article-body .rf-key-takeaways,
.article-body .rf-article-toc,
.article-body .rf-mid-cta-block,
.article-body .rf-author-bio-styled {
  margin-block: clamp(2rem, 5vw, 3.4rem);
  border: 0;
  border-top: 1px solid var(--fg);
  border-bottom: 1px solid var(--line);
  border-radius: 0;
  background: transparent;
  padding: 1.1rem 0 1.2rem;
}

.article-body .rf-key-takeaways > p:first-child,
.article-body .rf-article-toc > p:first-child,
.article-body .rf-last-reviewed-line {
  font-family: var(--serif);
  font-style: italic;
  font-size: 1.02rem;
  font-weight: 500;
  letter-spacing: 0;
  line-height: 1.4;
  text-transform: none;
  color: var(--muted);
}

.article-body .rf-mid-cta-block { border-top: 1px solid var(--fg); }
.article-body .rf-mid-cta-block > p { font-family: var(--sans); font-size: .94rem; color: var(--fg-soft); }
.article-body .rf-mid-cta-block > p:first-child { font-family: var(--display); font-size: 1.2rem; font-weight: 600; color: var(--fg); }

.article-body .wp-block-buttons { display: flex; flex-wrap: wrap; gap: .7rem; align-items: center; }
.article-body .wp-block-button__link {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  border: 1px solid var(--accent);
  border-radius: 2px;
  padding: .68rem 1rem;
  background: var(--accent);
  color: #fff;
  font: 600 .84rem/1.2 var(--sans);
  text-decoration: none;
}
.article-body .wp-block-button__link:hover { background: var(--red-deep); border-color: var(--red-deep); }

.article-body .rf-article-pullquote-group,
.article-body .article-pullquote {
  margin-block: clamp(2.2rem, 5vw, 4rem);
  border-block: 1px solid var(--line);
  padding-block: clamp(1.25rem, 3vw, 2rem);
}
.article-body .rf-article-pullquote-group blockquote,
.article-body .article-pullquote blockquote { border: 0; padding: 0; }

.article-body .rf-author-bio-styled { font-family: var(--sans); font-size: .88rem; color: var(--fg-soft); }
.article-body .rf-author-bio-styled > div { display: flex; flex-wrap: wrap; gap: 1.15rem; align-items: flex-start; }
.article-body .rf-author-bio-styled > div > div { flex: 1 1 240px; }
.article-body .rf-author-bio__avatar { width: 72px; height: 72px; flex: 0 0 72px; border-radius: 50%; object-fit: cover; }

/* fin d'article : un paragraphe d'invitation dans la colonne de lecture, pas un
   bandeau noir centre (le motif des pages generees) */
.article-body .rf-final-cta-block {
  margin: clamp(2.4rem, 5vw, 3.6rem) 0 0;
  padding: 1.2rem 0 0;
  border-top: 1px solid var(--fg);
  background: transparent;
  color: inherit;
  text-align: left;
}
.article-body .rf-final-cta-block h2 { font-size: clamp(1.35rem, 2.4vw, 1.7rem); margin: 0 0 .5rem; }
.article-body .rf-final-cta-block p { color: var(--fg-soft); }
.article-body .rf-final-cta-block .wp-block-buttons { justify-content: flex-start; }
.article-body .rf-final-cta-block .wp-block-button:nth-child(2) .wp-block-button__link { background: transparent; color: var(--fg); border-color: var(--fg); }
.article-body .rf-final-cta-block :is(h2, p, .has-text-align-center) { text-align: left; }
.article-body .rf-final-cta-block { margin-bottom: clamp(2.4rem, 5vw, 3.6rem); }
.article-body .rf-key-takeaways > p:first-child,
.article-body .rf-article-toc > p:first-child { margin: 0 0 .6rem; padding: 0; text-align: left; }
.article-body .rf-key-takeaways { border-bottom: 0; }
.article-body .rf-key-takeaways + .rf-article-toc { border-top-color: var(--line); margin-top: 0; }

/* FAQ : le filet, le numéro et l'espace portent la hiérarchie sans effet de carte. */
.article-body .rf-article-faq-section {
  margin-block: clamp(3.5rem, 8vw, 6.5rem);
  counter-reset: article-faq;
  border-bottom: 1px solid var(--line);
}
.article-body .article-faq__title,
.article-body .rf-article-faq-section > h2 {
  margin: 0 0 clamp(1.4rem, 4vw, 2.4rem);
  font-family: var(--display);
  font-size: clamp(2rem, 5vw, 3rem);
  font-weight: 500;
  line-height: 1.06;
  letter-spacing: -.025em;
}
.article-body .article-faq__item {
  position: relative;
  counter-increment: article-faq;
  border-top: 1px solid var(--line);
  padding: clamp(1.25rem, 3vw, 1.8rem) 0 clamp(1.35rem, 4vw, 2rem) clamp(2.3rem, 5vw, 3.2rem);
}
.article-body .article-faq__item::before {
  content: counter(article-faq, decimal-leading-zero);
  position: absolute;
  top: 1.45rem;
  left: 0;
  color: var(--red-deep);
  font: 700 .68rem/1 var(--sans);
  letter-spacing: .12em;
}
.article-body .article-faq__question,
.article-body .rf-article-faq-section > h3 {
  margin: 0 0 .55rem;
  font-family: var(--display);
  font-size: clamp(1.15rem, 2.4vw, 1.4rem);
  font-weight: 600;
  line-height: 1.25;
}
.article-body .article-faq__answer {
  margin: 0;
  color: var(--fg-soft);
  font-family: var(--sans);
  font-size: .94rem;
  line-height: 1.65;
}
/* Repli pour les articles encore au balisage historique pendant le cutover. */
.article-body .rf-article-faq-section > h3 { border-top: 1px solid var(--line); padding-top: 1.25rem; }
.article-body .rf-article-faq-section > h3 + p { color: var(--fg-soft); font-family: var(--sans); font-size: .94rem; }

/* Articles liés : trois colonnes sur grand écran, deux puis une sans écraser le titre. */
.article-body .rf-related-articles-styled {
  width: min(1120px, calc(100vw - 40px));
  margin: clamp(3.5rem, 8vw, 6.5rem) 0 0 50%;
  transform: translateX(-50%);
  border-top: 1px solid var(--ink);
  padding-top: clamp(1.4rem, 3vw, 2rem);
}
.article-body .article-related__title,
.article-body .rf-related-articles-styled > h2 {
  margin: 0 0 clamp(1.4rem, 3vw, 2rem);
  font-family: var(--display);
  font-size: clamp(2rem, 4vw, 2.8rem);
  font-weight: 500;
  line-height: 1.08;
  letter-spacing: -.02em;
}
.article-body .article-related__grid,
.article-body .rf-related-articles-styled > .wp-block-columns {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(1.25rem, 3vw, 2.2rem);
}
.article-body .article-related__column,
.article-body .rf-related-articles-styled .wp-block-column { min-width: 0; }
.article-body .article-related__card,
.article-body .rf-related-articles-styled .wp-block-column > .wp-block-group {
  height: 100%;
  border: 0;
  border-top: 1px solid var(--fg);
  border-bottom: 1px solid var(--line);
  border-radius: 0;
  background: transparent;
  padding: 1.05rem 0 1.2rem;
}
.article-body .article-related__card-title,
.article-body .rf-related-articles-styled .wp-block-column h3 {
  margin: 0 0 .75rem;
  font-family: var(--display);
  font-size: clamp(1.25rem, 2.2vw, 1.6rem);
  font-weight: 600;
  line-height: 1.18;
  letter-spacing: -.01em;
}
.article-body .article-related__card-title a,
.article-body .rf-related-articles-styled .wp-block-column h3 a { color: var(--fg); text-decoration: none; }
.article-body .article-related__card-title a:hover,
.article-body .rf-related-articles-styled .wp-block-column h3 a:hover { color: var(--red-deep); }
.article-body .article-related__description,
.article-body .rf-related-articles-styled .wp-block-column p {
  margin: 0;
  color: var(--fg-soft);
  font: 400 .88rem/1.55 var(--sans);
}
.article-body .article-related__date {
  margin-top: 1rem;
  color: var(--muted);
  font: 600 .68rem/1.3 var(--sans);
  letter-spacing: .12em;
  text-transform: uppercase;
}

@media (max-width: 980px) {
  .article-body .article-related__grid,
  .article-body .rf-related-articles-styled > .wp-block-columns { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 640px) {
  .article-body .article-related__grid,
  .article-body .rf-related-articles-styled > .wp-block-columns { grid-template-columns: 1fr; }
  .article-body .rf-related-articles-styled { width: calc(100vw - 28px); }
}

/* Corps d'article : taille unique. La règle éditoriale `.band h2 + p` (1.06rem)
   rétrécissait le premier paragraphe de chaque section d'article. */
.article-body .rf-article-body-group h2 + p { font-size: 1.25rem; line-height: 1.7; }

/* Same correction for block-built pages. `.band h2 + p` shrank the opening
   paragraph of every section to 1.06rem while the following ones stayed at the
   editorial size, so each section started smaller than it continued. Scoped to
   the editorial column so the deliberate small print (band captions, filets)
   keeps its own size. */
.henusse-block-page .band .editorial h2 + p,
.henusse-block-page .band .editorial.is-style-henusse-editorial h2 + p { font-size: 1.25rem; line-height: 1.7; }

/* ---------- Author card ----------
   Named signature closing the measurement-proof pages (etude de correlation,
   charte de mesure, public diagnostic example). Same sober register as
   .callout: no box, a single rule on top, red kept for that rule and the link.
   Constrained to the reading measure so it holds inside the wide .shell as
   well as inside .editorial. Selectors are doubled (.author-card + element
   class) so they outrank the later .band h2 / .editorial h2 rules loaded from
   henusse-elevate.css. */
.author-card {
  max-width: 68ch;
  margin-block: clamp(2.2rem, 4vw, 3.2rem) clamp(1.6rem, 3vw, 2.4rem);
  /* posee au niveau de la page (hors bande/shell), la carte doit se centrer
     et porter le retrait horizontal de la colonne ; sans ca elle colle au
     bord gauche de l'ecran (constat du 18 aout sur la charte) */
  margin-inline: auto;
  width: min(68ch, calc(100% - 2 * clamp(20px, 5vw, 32px)));
  border-top: 1px solid var(--fg);
  padding-top: 16px;
}

.shell .author-card,
.editorial .author-card {
  margin-inline: 0;
  width: auto;
}

/* Portrait de signature : la carte passe en grille seulement quand elle porte
   une photo, pour ne pas casser une carte sobre. */
.author-card:has(.author-card__photo-wrap) {
  display: grid;
  grid-template-columns: auto 1fr;
  column-gap: 16px;
}
.author-card:has(.author-card__photo-wrap) .author-card__title { grid-column: 1 / -1; }
.author-card .author-card__photo-wrap {
  grid-row: 2 / span 3;
  margin: 6px 0 0;
  align-self: start;
}
.author-card .author-card__photo-wrap img {
  width: 60px; height: 60px;
  border-radius: 50%;
  object-fit: cover;
  display: block;
}

.author-card .author-card__title {
  margin: 0;
  color: var(--red-deep);
  font-family: var(--sans);
  font-size: 15px;
  font-weight: 650;
  letter-spacing: .14em;
  line-height: 1.4;
  text-transform: uppercase;
}

.author-card .author-card__name {
  margin: 10px 0 0;
  color: var(--ink);
  font-family: var(--display, var(--serif));
  font-size: clamp(1.3rem, 2.2vw, 1.6rem);
  font-weight: 600;
  line-height: 1.2;
}

.author-card .author-card__line {
  margin: 10px 0 0;
  font-size: 17px;
  line-height: 1.6;
}

.author-card .author-card__link {
  margin: 12px 0 0;
  font-family: var(--sans);
  font-size: 15.5px;
}

.author-card .author-card__link a {
  color: var(--red-deep);
  text-underline-offset: 3px;
}

/* Témoignages : deux dirigeants, photo, citation, signature. */
.temoins { margin-top: 26px; }
.temoin { border-top: 1px solid var(--line); padding-top: 22px; }
.temoin + .temoin { margin-top: 26px; }
.temoin__head { display: flex; align-items: center; gap: 14px; margin: 0 0 12px; }
.temoin__head .wp-block-image { margin: 0; flex: none; }
.temoin__head .wp-block-image img { width: 84px; height: 84px; border-radius: 50%; object-fit: cover; display: block; }
.temoin__head--logo .wp-block-image img { width: auto; height: 84px; max-width: 150px; border-radius: 0; object-fit: contain; }
.temoin__who { margin: 0; font-family: var(--sans); font-size: 14px; line-height: 1.45; color: var(--fg-soft); }
.temoin__who strong { color: var(--fg); font-weight: 600; }
.temoin__who a { color: inherit; }
.temoin__who .temoin__in { font-size: 12px; letter-spacing: .04em; text-transform: uppercase; color: var(--accent); text-decoration: none; margin-left: 4px; }
.temoin__who .temoin__in:hover { text-decoration: underline; }
.temoin blockquote.wp-block-quote { border-left: 3px solid var(--accent); margin: 0; padding: 2px 0 2px 18px; }
.temoin blockquote.wp-block-quote p { font-size: 18px; line-height: 1.55; margin: 0; }
.temoin blockquote.wp-block-quote p + p { margin-top: 10px; }
.temoin__note { margin: 12px 0 0 21px; font-size: 14.5px; color: var(--fg-soft); }
@media (min-width: 820px) {
  .temoins { display: grid; grid-template-columns: 1fr 1fr; gap: 0 44px; }
  .temoin + .temoin { margin-top: 0; }
}
/* Témoignage miniature : une carte discrète, photo + phrase + signature. */
/* citation courte : meme registre que les temoignages de la Methode (filet rouge de
   citation, photo, nom en dessous), sans boite ni fond : l'encadre a photo etait le
   dernier gabarit « widget » du site */
.temoin-mini { display: flex; align-items: flex-start; gap: 16px; margin: 26px 0 0; padding: 2px 0 2px 18px; background: transparent; border: 0; border-left: 3px solid var(--accent); max-width: 560px; }
.temoin-mini .wp-block-image { margin: 2px 0 0; flex: none; }
.temoin-mini .wp-block-image img { width: 56px; height: 56px; border-radius: 50%; object-fit: cover; display: block; }
.temoin-mini__body > p { margin: 0; }
.temoin-mini__quote { font-size: 19px; line-height: 1.5; }
.temoin-mini__who { font-family: var(--sans); font-size: 13.5px; color: var(--fg-soft); margin-top: 6px !important; }
.temoin-mini__who strong { color: var(--fg); font-weight: 600; }
.temoin-mini__who a { color: var(--accent); }
.home-practice-two .temoin-mini { margin-bottom: 18px; }
@media (max-width: 480px) { .temoin-mini { align-items: flex-start; } .temoin-mini .wp-block-image img { width: 56px; height: 56px; } }
/* Portrait de Jean : le visage est un peu à gauche et haut dans le carré source, on recadre le cercle dessus. */
.portrait-jean { border-radius: 50%; overflow: hidden; }
.portrait-jean img { transform: scale(1.35); transform-origin: 50% 34%; }
.temoin__who .temoin__mission { display: inline-block; margin-top: 4px; font-size: 12.5px; color: var(--fg-soft); }

/* Par fonction : six cartes dépliables, natives (details), sans script. */
.roles__list { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0 48px; margin-top: 26px; counter-reset: role; }
.roles .role { counter-increment: role; margin: 0; padding: 20px 0 24px; border-top: 1px solid var(--fg); }
.roles .role__name { display: flex; align-items: baseline; gap: 14px; margin: 0; font-family: var(--serif); font-weight: 600; font-size: 22px; line-height: 1.15; letter-spacing: -.01em; }
.roles .role__name::before { content: counter(role, decimal-leading-zero); font-family: var(--mono); font-weight: 400; font-size: 13px; letter-spacing: .08em; color: var(--accent); flex: none; }
.roles .role__pain { margin: 10px 0 8px; color: var(--fg-soft); font-size: 16px; }
.roles .role__does { margin: 0 0 12px; font-size: 16px; max-width: 60ch; }
.roles .role__where { margin: 0; color: var(--fg-soft); font-size: 15px; }
.roles .role__where strong { display: inline-block; margin-right: 6px; font-family: var(--sans); font-weight: 600; font-size: 11.5px; letter-spacing: .05em; text-transform: uppercase; color: var(--fg); vertical-align: 1px; }
.roles .role__where--live strong { color: var(--accent); }
.roles .roles__foot { margin-top: 22px; }
@media (max-width: 760px) { .roles__list { grid-template-columns: 1fr; gap: 0; } .roles .role__name { font-size: 20px; } }

/* WordPress (.is-layout-constrained > *) pose une largeur maximale et des marges
   automatiques sur chaque enfant : les etiquettes et les paragraphes des blocs
   d'article se retrouvaient decales de 47 px et le texte du bloc final centre.
   Dans ces blocs, la colonne de lecture porte deja la mesure. */
.article-body :is(.rf-key-takeaways, .rf-article-toc, .rf-mid-cta-block, .rf-final-cta-block, .rf-author-bio-styled, .article-related__card, .rf-related-articles-styled).is-layout-constrained > * {
  max-width: none;
  margin-inline: 0;
}

/* ---------------------------------------------------------------------------
   Article : trois générations de balisage cohabitent (août 2026). Les blocs posés
   avec des couleurs en ligne (has-background, style=) doivent se lire comme les
   autres : le thème gagne sur l'attribut style pour ces seuls blocs.
   --------------------------------------------------------------------------- */
.article-body :is(.rf-key-takeaways, .rf-article-toc, .rf-mid-cta-block, .rf-final-cta-block, .rf-author-bio-styled)[style],
.article-body :is(.rf-key-takeaways, .rf-article-toc).has-background {
  background: transparent !important;
  border-color: var(--fg) !important;
  border-width: 0 !important;
  border-top-width: 1px !important;
  border-radius: 0 !important;
  padding: 1.1rem 0 1.2rem !important;
}
.article-body .rf-key-takeaways[style] > p:first-child { font-weight: 500; }
.article-body .rf-reading-time { font-family: var(--sans); font-size: .95rem; color: var(--muted); }

/* Appel au milieu de l'article : une note en marge, alignée sur la colonne, avec le
   filet rouge de la maison ; le bouton devient un lien souligné. Plus un encart. */
.article-body .rf-mid-cta-block {
  border: 0; border-left: 3px solid var(--accent); border-radius: 0;
  padding: 4px 0 4px 18px; margin-block: clamp(2rem, 4vw, 3rem);
  background: transparent; text-align: left;
}
.article-body .rf-mid-cta-block > p:first-child { font-family: var(--serif); font-style: italic; font-weight: 500; font-size: 1.15rem; line-height: 1.4; color: var(--fg); margin: 0 0 .35rem; }
.article-body .rf-mid-cta-block > p { font-family: var(--sans); font-size: .95rem; color: var(--fg-soft); margin: 0; text-align: left; }
.article-body .rf-mid-cta-block .wp-block-buttons { justify-content: flex-start; margin-top: .5rem; }
.article-body .rf-mid-cta-block .wp-block-button__link {
  background: transparent; color: var(--fg); border: 0; border-radius: 0; padding: 0; min-height: 0;
  font: 600 .95rem/1.4 var(--sans); text-decoration: underline; text-underline-offset: 3px;
}
.article-body .rf-mid-cta-block .wp-block-button__link:hover { color: var(--accent); }

/* « À lire aussi » : une liste d'entrées datées, comme l'index du Journal, pas trois cartes. */
.article-body .article-related__grid,
.article-body .rf-related-articles-styled > .wp-block-columns { display: block; }
.article-body .article-related__card,
.article-body .rf-related-articles-styled .wp-block-column > .wp-block-group {
  display: grid; grid-template-columns: minmax(0, 1fr) max-content; gap: .2rem 2rem; align-items: baseline;
  height: auto; border: 0; border-top: 1px solid var(--line); padding: 1rem 0; margin: 0;
}
.article-body .article-related__grid > :last-child .article-related__card,
.article-body .rf-related-articles-styled .wp-block-column:last-child > .wp-block-group { border-bottom: 1px solid var(--line); }
.article-body .article-related__card-title,
.article-body .rf-related-articles-styled .wp-block-column h3 { grid-column: 1; grid-row: 1; margin: 0; font-size: clamp(1.15rem, 1.8vw, 1.35rem); }
.article-body .article-related__card p:not(.article-related__date),
.article-body .rf-related-articles-styled .wp-block-column p:not(:last-child) { grid-column: 1; grid-row: 2; margin: 0; }
.article-body .article-related__date,
.article-body .rf-related-articles-styled .wp-block-column p:last-child { grid-column: 2; grid-row: 1; margin: 0; white-space: nowrap; }
@media (max-width: 640px) {
  .article-body .article-related__card,
  .article-body .rf-related-articles-styled .wp-block-column > .wp-block-group { grid-template-columns: 1fr; }
  .article-body .article-related__date,
  .article-body .rf-related-articles-styled .wp-block-column p:last-child { grid-column: 1; grid-row: 3; }
}

/* Index du Journal : la colonne vignette n'existe que si la vignette existe. */
.ledger--vignettes > article:not(:has(.ledger-thumb-link)) { grid-template-columns: minmax(40px, max-content) minmax(0, 1fr); }

/* « À retenir » : la réponse en quatre phrases autonomes, en tête. On la garde pour les
   moteurs de réponse (chaque phrase est un extrait citable) ; pour l'œil, c'est un chapeau
   de journal, pas une liste à puces dans une boîte. */
.article-body .rf-key-takeaways ul { list-style: none; margin: 0; padding: 0; }
.article-body .rf-key-takeaways li { font-family: var(--serif); font-size: 1.12rem; line-height: 1.55; color: var(--fg); margin: 0 0 .55rem; padding: 0; }
.article-body .rf-key-takeaways li::marker { content: ""; }
.article-body .rf-key-takeaways li:last-child { margin-bottom: 0; }
