/* Guide éditorial — /guide-encheres-judiciaires (sommaire, classes gs-*) et
   /guide/{slug} (article, classes ge-*), plus la carte de fiche citée (fc-*)
   partagée par les deux.

   Même grammaire visuelle que la fiche dossier (docs/charte-graphique-dossier.md,
   thème « mémo d'acte émeraude et ivoire ») : titres Archivo (--f-display),
   prose Hanken (--f-sans), chiffres et libellés uppercase en Spline Sans Mono
   (--f-mono), métadonnées laiton (--c-meta), accent émeraude (--c-accent),
   cartes ivoire à bordure chaude (--rad-card, --shadow-card). Les tokens
   publics --c-* viennent de tokens.css remappés par dossier_theme_emeraude.css
   (chargée globalement) ; les primitives --rad-card / --shadow-card / --fs-* et
   le helper .mono viennent de dossier_v1.css, chargée avant cette feuille par
   les deux templates — même socle que liste.html et categorie_seo.html.
   Aucune couleur en dur, aucune utility Tailwind : pas de build:css requis.

   Le HTML du corps sort du convertisseur Markdown sans classe : on style les
   balises sous la portée `.ge-corps`. Les encarts signalés par l'article
   portent une classe via un conteneur écrit dans le Markdown (`ge-chiffre`,
   `ge-dossier`). */

/* ── Colonne de lecture ──────────────────────────────────────────────────── */
.ge, .gs {
  max-width: 52rem;
  margin: 0 auto;
  padding: 8px 16px 40px;
  color: var(--c-ink-2);
  font-family: var(--f-sans);
  line-height: 1.65;
}

/* ── Fil d'Ariane : mono, comme celui de la fiche ────────────────────────── */
.ge-crumb {
  display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px;
  margin-bottom: 14px;
  font-family: var(--f-mono);
  font-size: 10.5px; font-weight: 500;
  letter-spacing: .06em; text-transform: uppercase;
  color: var(--c-muted);
}
.ge-crumb a { color: inherit; text-decoration: none; }
.ge-crumb a:hover { color: var(--c-accent-strong); }
.ge-crumb__sep { color: var(--c-muted-2); }
.ge-crumb__current { color: var(--c-accent-strong); font-weight: 600; }

/* ── En-tête d'article : eyebrow laiton, titre Archivo, double filet ─────── */
.ge-head {
  position: relative;
  padding-bottom: 18px;
  border-bottom: 2px solid var(--c-accent);
}
/* Le double trait émeraude + or de l'en-tête de fiche (dossier_theme_emeraude). */
.ge-head::after {
  content: "";
  position: absolute; left: 0; right: 0; bottom: -5px;
  height: 1px;
  background: var(--c-decor);
}
.ge-head__eyebrow {
  display: flex; align-items: center; gap: 8px;
  margin: 0 0 10px;
  font-family: var(--f-mono);
  font-size: 10.5px; font-weight: 600;
  letter-spacing: .12em; text-transform: uppercase;
  color: var(--c-meta);
}
/* Barre laiton en préfixe des eyebrows (maquette du thème, règle 7). */
.ge-head__eyebrow::before {
  content: ""; flex: none;
  width: 14px; height: 2px;
  background: var(--c-decor);
}
.ge-head__title {
  margin: 0;
  font-family: var(--f-display);
  font-size: clamp(26px, 3.4vw, 34px);
  font-weight: 800;
  line-height: 1.08;
  letter-spacing: -.025em;
  color: var(--c-ink);
}
/* Le chapô : la largeur du titre et de la colonne, pas davantage. Jusqu'au
   2026-09-19 il plafonnait à 40rem (640 px) sous un titre de 800 px : le bloc
   s'arrêtait au deux tiers, comme coupé. Graisse 500 plutôt que 600 : un chapô
   de quatre lignes en gras se lisait comme un mur. `text-wrap: pretty` évite
   le mot seul en dernière ligne ; les espaces insécables (filtre `insecables`)
   empêchent « 60 » et « % » de se séparer. */
.ge-head__decision {
  margin: 14px 0 0;
  font-size: 17.5px; font-weight: 500;
  line-height: 1.5;
  color: var(--c-ink);
  text-wrap: pretty;
}
@media (max-width: 640px) {
  .ge-head__decision { font-size: 16.5px; }
}
.ge-head__meta {
  margin: 10px 0 0;
  font-size: 12.5px;
  color: var(--c-muted);
}
.ge-head__meta a { color: inherit; text-decoration: underline dotted; text-underline-offset: 3px; }
.ge-head__meta a:hover { color: var(--c-accent-strong); }
.ge-head__tools { margin-top: 12px; }

/* Chips mono (date de publication, temps de lecture) — la pastille de statut
   de l'en-tête de fiche, carrée sous le thème. */
.ge-chips { display: flex; flex-wrap: wrap; gap: 6px; margin: 12px 0 0; padding: 0; list-style: none; }
.ge-chip {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 4px 10px;
  border: 1px solid var(--c-border);
  border-radius: var(--rad);
  background: var(--c-panel);
  font-family: var(--f-mono);
  font-size: 10.5px; font-weight: 600;
  letter-spacing: .06em; text-transform: uppercase;
  color: var(--c-muted);
  text-decoration: none;
}
/* Le laiton des métadonnées : « publié le », « mis à jour le ». */
.ge-chip--date { background: var(--c-bg-2); color: var(--c-meta); }
a.ge-chip:hover { border-color: var(--c-accent); color: var(--c-accent-strong); }

/* ── Photo de la vente racontée (récit d'une seule vente) ────────────────── */
.ge-hero { margin: 22px 0 0; }
.ge-hero__link { display: block; text-decoration: none; color: inherit; }
.ge-hero__img {
  display: block;
  width: 100%;
  aspect-ratio: 21 / 9;
  object-fit: cover;
  border: 1px solid var(--c-border);
  border-radius: var(--rad-card);
  background: var(--c-bg-3);
}
.ge-hero__cap {
  display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 16px;
  margin-top: 8px;
  font-size: 13px;
  color: var(--c-ink-2);
}
.ge-hero__what { font-weight: 700; color: var(--c-ink); }
.ge-hero__num { font-family: var(--f-mono); font-variant-numeric: tabular-nums; white-space: nowrap; color: var(--c-muted); }
.ge-hero__num--result { color: var(--c-accent-strong); font-weight: 700; }
.ge-hero__cta { margin-left: auto; font-weight: 600; color: var(--c-accent); }
/* Crédit d'une photo sous licence libre : discret, mais toujours là. */
.ge-hero__credit { margin-left: auto; font-size: 11.5px; color: var(--c-muted); }
.ge-hero__credit a { color: inherit; text-decoration: underline dotted; text-underline-offset: 3px; }
.ge-hero__credit a:hover { color: var(--c-accent-strong); }
.ge-hero--illu .ge-hero__img { aspect-ratio: 21 / 9; }
.ge-hero__link:hover .ge-hero__cta { text-decoration: underline; text-underline-offset: 3px; }
.ge-hero__link:hover .ge-hero__img { border-color: var(--c-accent); }

/* ── Mise à jour d'un récit : la suite de l'histoire, en tête ────────────── */
.ge-maj {
  margin: 18px 0 0;
  padding: 10px 14px;
  border: 1px solid var(--c-border);
  border-left: 3px solid var(--c-accent);
  border-radius: var(--rad-lg);
  background: var(--c-panel);
  font-size: 14.5px;
}
.ge-maj strong { color: var(--c-ink); }

/* ── Corps : lecture longue, 16 px, interligne large ─────────────────────── */
.ge-corps {
  margin-top: 26px;
  font-size: 1rem;
  line-height: 1.7;
  counter-reset: ge-sec;
}
.ge-corps p { margin: 0 0 .9rem; }
.ge-corps strong { color: var(--c-ink); font-weight: 600; }
.ge-corps a { color: var(--c-accent); text-decoration: underline; text-underline-offset: 2px; }
.ge-corps a:hover { color: var(--c-accent-strong); }
.ge-corps ul, .ge-corps ol { padding-left: 1.4rem; margin: 0 0 .9rem; }
.ge-corps ul { list-style: disc; }
.ge-corps ol { list-style: decimal; }
.ge-corps li { margin: .35rem 0; }
.ge-corps li::marker { color: var(--c-meta); }
.ge-corps li > p { margin: 0; }
.ge-corps hr { border: 0; border-top: 1px solid var(--c-border); margin: 1.5rem 0; }

/* Titres de section numérotés comme ceux de la fiche (« 09 · Dossiers
   voisins ») : numéro mono laiton posé au-dessus d'un titre Archivo, filet
   doux au-dessus. Le compteur vit en CSS : le Markdown reste sans balisage. */
.ge-corps h2 {
  counter-increment: ge-sec;
  margin: 2.4rem 0 .6rem;
  padding-top: 1rem;
  border-top: 1px solid var(--c-border-soft);
  font-family: var(--f-display);
  font-size: 19px; font-weight: 700;
  line-height: 1.2;
  letter-spacing: -.02em;
  color: var(--c-ink);
}
.ge-corps h2::before {
  content: counter(ge-sec, decimal-leading-zero);
  display: block;
  margin-bottom: 5px;
  font-family: var(--f-mono);
  font-size: 10.5px; font-weight: 600;
  letter-spacing: .12em;
  color: var(--c-meta);
}
.ge-corps h3 {
  margin: 1.6rem 0 .4rem;
  font-family: var(--f-display);
  font-size: 15.5px; font-weight: 700;
  letter-spacing: -.01em;
  color: var(--c-ink);
}
/* Citation : filet laiton, comme la citation de la page offres. */
.ge-corps blockquote {
  margin: 0 0 .9rem;
  padding: .1rem 0 .1rem 1rem;
  border-left: 3px solid var(--c-decor);
  color: var(--c-ink-2);
}

/* Tableaux : en-têtes mono uppercase, chiffres mono tabulaires alignés à
   droite, hairlines chaudes — la grammaire des tableaux de la fiche. */
.ge-corps table {
  width: 100%;
  border-collapse: collapse;
  margin: .5rem 0 1rem;
  font-size: .9rem;
}
.ge-corps th, .ge-corps td {
  padding: .5rem .6rem;
  border-bottom: 1px solid var(--c-border);
  text-align: left;
  vertical-align: top;
}
.ge-corps th {
  background: var(--c-bg-2);
  font-family: var(--f-mono);
  font-size: 10px; font-weight: 600;
  letter-spacing: .06em; text-transform: uppercase;
  color: var(--c-muted);
}
.ge-corps td:not(:first-child), .ge-corps th:not(:first-child) {
  text-align: right;
  white-space: nowrap;
}
.ge-corps td:not(:first-child) {
  font-family: var(--f-mono);
  font-variant-numeric: tabular-nums;
  font-size: .85rem;
  color: var(--c-ink);
}
.ge-corps tbody tr:last-child td { border-bottom-color: var(--c-border-strong); }
.ge-corps .ge-table-scroll { overflow-x: auto; }

/* Encart « ce que disent les chiffres » : la donnée du site, datée. Même
   surface que les encarts MdB de la fiche : paper, bordure chaude, filet
   émeraude à gauche. */
.ge-corps .ge-chiffre {
  margin: 1.1rem 0 1.3rem;
  padding: 16px 20px;
  border: 1px solid var(--c-border);
  border-left: 3px solid var(--c-accent);
  border-radius: var(--rad-card);
  background: var(--c-panel);
}
.ge-corps .ge-chiffre > :last-child { margin-bottom: 0; }
/* Un premier paragraphe entièrement en gras est l'eyebrow de l'encart
   (« Dans les données MdB Scanner ») : laiton mono, comme « Synthèse MdB ». */
.ge-corps .ge-chiffre > p:first-child > strong:only-child {
  display: block;
  font-family: var(--f-mono);
  font-size: 10.5px; font-weight: 600;
  letter-spacing: .12em; text-transform: uppercase;
  color: var(--c-meta);
}
.ge-corps .ge-chiffre table { margin-top: .2rem; }
.ge-corps .ge-chiffre th { background: var(--c-bg); }
.ge-corps .ge-chiffre p.ge-source {
  margin-top: .8rem;
  padding-top: .6rem;
  border-top: 1px solid var(--c-border-soft);
  font-size: .78rem;
  color: var(--c-muted);
}

/* « Dans un dossier » : où l'information se lit sur une fiche. Une ligne,
   un lien, sur fond ivoire. */
.ge-corps .ge-dossier {
  margin-top: 1.6rem;
  padding: 12px 16px;
  border-radius: var(--rad-card);
  background: var(--c-bg-2);
  font-size: .9rem;
}
.ge-corps .ge-dossier > :last-child { margin-bottom: 0; }
.ge-corps .ge-dossier > p:first-child > strong:first-child {
  display: block;
  margin-bottom: 2px;
  font-family: var(--f-mono);
  font-size: 10.5px; font-weight: 600;
  letter-spacing: .12em; text-transform: uppercase;
  color: var(--c-meta);
}

/* Référence juridique reliée à Légifrance (guide_editorial.lier_legifrance) */
.ge-corps a.ge-loi { color: inherit; text-decoration: underline dotted; text-underline-offset: 3px; }
.ge-corps a.ge-loi:hover { color: var(--c-accent); }

/* ── Tête de section hors corps (ventes citées, questions, à lire) ───────── */
.ge-sec {
  display: flex; align-items: baseline; gap: 12px;
  margin: 40px 0 14px;
  padding-bottom: 8px;
  border-bottom: 1px solid var(--c-border);
}
.ge-sec__n {
  font-family: var(--f-mono);
  font-size: 10.5px; font-weight: 600;
  letter-spacing: .12em;
  color: var(--c-meta);
}
.ge-sec__title {
  margin: 0;
  font-family: var(--f-display);
  font-size: 17px; font-weight: 700;
  letter-spacing: -.02em;
  color: var(--c-ink);
}
.ge-sec__lead { margin: -6px 0 14px; font-size: 13.5px; color: var(--c-muted); }

/* ── Carte d'une fiche citée (fc) — la carte « dossiers voisins » de la fiche ─ */
.fc-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: 12px;
  margin: 0; padding: 0;
  list-style: none;
}
.fc { margin: 0; }
.fc__link {
  display: flex; flex-direction: column;
  height: 100%;
  border: 1px solid var(--c-border);
  border-radius: var(--rad-card);
  background: var(--c-panel);
  color: inherit;
  text-decoration: none;
  overflow: hidden;
  transition: border-color 120ms, box-shadow 120ms, transform 120ms;
}
.fc__link:hover, .fc__link:focus-visible {
  border-color: var(--c-accent);
  box-shadow: var(--shadow-card);
  transform: translateY(-2px);
}
.fc__photo {
  position: relative;
  aspect-ratio: 16 / 9;
  background: var(--c-bg-2);
  overflow: hidden;
}
.fc__photo img {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
}
.fc__phbg {
  position: absolute; inset: 0;
  display: grid; place-items: center;
  font-family: var(--f-mono);
  font-size: 10px; font-weight: 600;
  letter-spacing: .06em; text-transform: uppercase;
  color: var(--c-muted-2);
}
/* `hidden` (photo chargée → placeholder masqué ; photo cassée → image masquée)
   doit gagner sur le display posé par le composant. */
.fc__photo [hidden] { display: none; }
/* Un récit sans fiche (série « questions », « cas concrets ») n'a pas de photo :
   sa couverture est typographique, le libellé de sa série en Archivo sur
   ivoire — pas un « photo manquante », qui se lirait comme une erreur. */
.fc__photo--serie {
  display: grid; place-items: center;
  padding: 12px;
  font-family: var(--f-display);
  font-size: 22px; font-weight: 800;
  letter-spacing: -.02em; line-height: 1.05;
  text-align: center;
  color: var(--c-border-strong);
}
.fc__body { display: flex; flex-direction: column; gap: 3px; padding: 10px 12px 12px; }
.fc__eyebrow {
  font-family: var(--f-mono);
  font-size: 10px; font-weight: 600;
  letter-spacing: .08em; text-transform: uppercase;
  color: var(--c-meta);
}
.fc__type { font-size: 14px; font-weight: 700; color: var(--c-ink); line-height: 1.3; }
.fc__ville { font-size: 12.5px; color: var(--c-ink-2); }
.fc__map, .fc__result, .fc__date {
  font-family: var(--f-mono);
  font-variant-numeric: tabular-nums;
  font-size: 11.5px;
  white-space: nowrap;
}
.fc__map { margin-top: 4px; color: var(--c-muted); }
/* Le prix au marteau parle émeraude : c'est la valeur décisionnelle. */
.fc__result { font-weight: 700; color: var(--c-accent-strong); }
.fc__date { color: var(--c-muted-2); }

/* ── Questions (FAQ) ─────────────────────────────────────────────────────── */
.ge-faq { display: flex; flex-direction: column; gap: 10px; }
.ge-faq__item {
  padding: 12px 16px;
  border: 1px solid var(--c-border);
  border-radius: var(--rad-card);
  background: var(--c-panel);
}
.ge-faq__item summary {
  cursor: pointer;
  font-size: 14.5px; font-weight: 600;
  color: var(--c-ink);
}
.ge-faq__item summary::marker { color: var(--c-accent); }
.ge-faq__item p { margin: 8px 0 0; font-size: 14.5px; line-height: 1.6; }

/* ── Précédent / suivant dans le fil de l'article ────────────────────────── */
.ge-nav { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 32px; }
.ge-nav a {
  display: block;
  padding: 12px 16px;
  border: 1px solid var(--c-border);
  border-radius: var(--rad-card);
  background: var(--c-panel);
  color: var(--c-ink);
  font-family: var(--f-display);
  font-size: 15px; font-weight: 600;
  text-decoration: none;
  transition: border-color 120ms;
}
.ge-nav a:hover { border-color: var(--c-accent); color: var(--c-accent-strong); }
.ge-nav small {
  display: block;
  margin-bottom: 3px;
  font-family: var(--f-mono);
  font-size: 10px; font-weight: 600;
  letter-spacing: .1em; text-transform: uppercase;
  color: var(--c-meta);
}
.ge-nav .ge-nav__suivant { text-align: right; }

/* ── À lire ensuite ──────────────────────────────────────────────────────── */
.ge-more { margin: 0; padding: 0; list-style: none; }
.ge-more li { padding: 7px 0; border-bottom: 1px solid var(--c-border-soft); font-size: 14.5px; }
.ge-more li:last-child { border-bottom: 0; }
.ge-more a { color: var(--c-accent); font-weight: 600; text-decoration: none; }
.ge-more a:hover { text-decoration: underline; text-underline-offset: 3px; }
.ge-more__q { color: var(--c-muted); }
.ge-more__sommaire a { color: var(--c-ink-2); font-weight: 500; }

/* ── Bande KPI : les chiffres vivants, comme la grille KPI de la fiche ────── */
.ge-kpis {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  margin: 20px 0 0;
  border: 1px solid var(--c-border);
  border-radius: var(--rad-card);
  background: var(--c-panel);
  overflow: hidden;
}
/* Séparateurs portés par les cellules (bord droit et bas, rentrés d'un pixel
   sous le cadre) : une rangée incomplète ne laisse aucune case vide colorée,
   ce que faisait la grille à fond-bordure de la fiche sur un écran étroit. */
.ge-kpi {
  display: flex; flex-direction: column; gap: 3px;
  min-width: 0;
  margin: 0 -1px -1px 0;
  padding: 12px 16px;
  border-right: 1px solid var(--c-border);
  border-bottom: 1px solid var(--c-border);
  background: var(--c-panel);
  color: inherit;
  text-decoration: none;
}
a.ge-kpi:hover { background: var(--c-accent-soft); }
.ge-kpi__lab {
  font-family: var(--f-mono);
  font-size: 9.5px; font-weight: 700;
  letter-spacing: .08em; text-transform: uppercase;
  color: var(--c-muted);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.ge-kpi__v {
  font-family: var(--f-mono);
  font-variant-numeric: tabular-nums;
  font-size: 20px; font-weight: 700;
  letter-spacing: -.01em;
  color: var(--c-ink);
  white-space: nowrap;
}
.ge-kpi__sub { font-size: 11.5px; color: var(--c-muted); }
a.ge-kpi .ge-kpi__v { color: var(--c-accent-strong); }

/* ── Sommaire (guide.html) ───────────────────────────────────────────────── */
.gs-hero__eyebrow {
  display: flex; align-items: center; gap: 8px;
  margin: 0 0 10px;
  font-family: var(--f-mono);
  font-size: 10.5px; font-weight: 600;
  letter-spacing: .12em; text-transform: uppercase;
  color: var(--c-meta);
}
.gs-hero__eyebrow::before { content: ""; flex: none; width: 14px; height: 2px; background: var(--c-decor); }
.gs-hero__title {
  margin: 0;
  font-family: var(--f-display);
  font-size: clamp(28px, 3.8vw, 38px);
  font-weight: 800;
  line-height: 1.05;
  letter-spacing: -.028em;
  color: var(--c-ink);
}
/* La photo du palais de justice, comme sur la page offres : cadrée, chaude,
   sans texte par-dessus. */
.gs-hero__photo {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 5;
  object-fit: cover;
  margin: 20px 0 0;
  border: 1px solid var(--c-border);
  border-radius: var(--rad-card);
  background: var(--c-bg-3);
}
.gs-hero__lead { margin: 20px 0 0; font-size: 16.5px; line-height: 1.65; }
.gs-hero__lead + .gs-hero__lead { margin-top: 12px; }
.gs-hero__methode { margin: 12px 0 0; font-size: 13.5px; color: var(--c-muted); }
.gs-hero__methode a { color: var(--c-accent); font-weight: 600; text-decoration: none; }
.gs-hero__methode a:hover { text-decoration: underline; text-underline-offset: 3px; }

.gs-sec { margin-top: 40px; }
.gs-sec__head {
  display: flex; align-items: baseline; gap: 12px;
  padding-bottom: 8px;
  border-bottom: 1px solid var(--c-border);
}
.gs-sec__n { font-family: var(--f-mono); font-size: 10.5px; font-weight: 600; letter-spacing: .12em; color: var(--c-meta); }
.gs-sec__title {
  margin: 0;
  font-family: var(--f-display);
  font-size: 21px; font-weight: 700;
  letter-spacing: -.022em;
  color: var(--c-ink);
}
.gs-sec__q { margin: 10px 0 0; font-size: 14.5px; color: var(--c-ink-2); }

.gs-cards {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(14rem, 1fr));
  gap: 12px;
  margin: 14px 0 0; padding: 0;
  list-style: none;
}
.gs-card {
  display: flex; flex-direction: column; gap: 4px;
  padding: 14px 16px 15px;
  border: 1px solid var(--c-border);
  border-radius: var(--rad-card);
  background: var(--c-panel);
  transition: border-color 120ms, box-shadow 120ms;
}
.gs-card:hover, .gs-card:focus-within { border-color: var(--c-accent); box-shadow: var(--shadow-card); }
/* Vignette d'une technique illustrée : à fond perdu en haut de la carte. */
.gs-card--illu { padding-top: 0; overflow: hidden; }
.gs-card__img {
  display: block;
  margin: 0 -16px 10px;
  aspect-ratio: 16 / 7;
  overflow: hidden;
  border-bottom: 1px solid var(--c-border-soft);
  background: var(--c-bg-2);
}
.gs-card__img img { display: block; width: 100%; height: 100%; object-fit: cover; }
.gs-card__num {
  font-family: var(--f-mono);
  font-size: 10px; font-weight: 600;
  letter-spacing: .1em; text-transform: uppercase;
  color: var(--c-meta);
}
.gs-card__t { font-size: 15px; font-weight: 700; line-height: 1.3; color: var(--c-ink); text-decoration: none; }
.gs-card__t:hover { color: var(--c-accent-strong); }
.gs-card__q { margin: 2px 0 0; font-size: 13px; line-height: 1.5; color: var(--c-ink-2); }

.gs-liste { margin: 8px 0 0; padding: 0; list-style: none; }
.gs-liste li {
  display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px;
  padding: 9px 0;
  border-bottom: 1px solid var(--c-border-soft);
  font-size: 15px;
}
.gs-liste a { color: var(--c-ink); font-weight: 600; text-decoration: none; }
.gs-liste a:hover { color: var(--c-accent-strong); }
.gs-liste small {
  font-family: var(--f-mono);
  font-size: 10.5px; letter-spacing: .04em;
  color: var(--c-muted);
  white-space: nowrap;
}
.gs-fold { margin-top: 12px; }
.gs-fold summary { cursor: pointer; font-size: 14px; font-weight: 600; color: var(--c-ink); }
.gs-fold summary::marker { color: var(--c-accent); }

.gs-foot { margin-top: 40px; padding-top: 20px; border-top: 1px solid var(--c-border); font-size: 14.5px; }
.gs-foot a { color: var(--c-accent); font-weight: 600; text-decoration: none; }
.gs-foot a:hover { text-decoration: underline; text-underline-offset: 3px; }
.gs-foot__t { margin: 18px 0 8px; font-family: var(--f-display); font-size: 15px; font-weight: 700; color: var(--c-ink); }
.gs-depts { display: flex; flex-wrap: wrap; gap: 6px; }

/* ── États, accessibilité, mouvement ─────────────────────────────────────── */
.ge a:focus-visible, .gs a:focus-visible, .ge summary:focus-visible, .gs summary:focus-visible {
  outline: 2px solid var(--c-accent);
  outline-offset: 2px;
}
@media (prefers-reduced-motion: reduce) {
  .fc__link, .gs-card, .ge-nav a { transition: none; }
  .fc__link:hover, .fc__link:focus-visible { transform: none; }
}

/* ── Compact (≤ 720 px, breakpoint de la charte) ─────────────────────────── */
@media (max-width: 720px) {
  .ge, .gs { padding: 4px 12px 32px; }
  .ge-corps table { font-size: .82rem; }
  .ge-corps th, .ge-corps td { padding: .35rem .4rem; }
  /* Sur un écran étroit, les cellules reprennent la ligne : un tableau à
     quatre colonnes ne tient pas en nowrap dans 360 px. */
  .ge-corps td:not(:first-child), .ge-corps th:not(:first-child) { white-space: normal; }
  .ge-corps .ge-chiffre { padding: 14px 14px; }
  .ge-hero__img { aspect-ratio: 16 / 9; }
  .ge-hero__cta, .ge-hero__credit { margin-left: 0; }
  .ge-nav { grid-template-columns: 1fr; }
  .ge-nav .ge-nav__suivant { text-align: left; }
  .gs-cards { grid-template-columns: 1fr; }
  /* Deux colonnes, et la cellule impaire qui ferme la bande prend toute la
     largeur : pas de case vide en bout de rangée. */
  .ge-kpis { grid-template-columns: 1fr 1fr; }
  .ge-kpi:last-child:nth-child(odd) { grid-column: 1 / -1; }
  /* Rail horizontal pour les fiches citées : l'aperçu de la carte suivante
     rend le défilement évident, au lieu de six cartes empilées. */
  .fc-grid {
    display: flex;
    gap: 12px;
    margin-right: -12px;
    padding-right: 12px;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scroll-snap-type: inline mandatory;
    scrollbar-width: none;
  }
  .fc-grid::-webkit-scrollbar { display: none; }
  .fc { flex: 0 0 min(76vw, 280px); scroll-snap-align: start; }
}

/* ── Étude de l'Observatoire (type `etude`, 2026-09-14) ─────────────────────
   Un article de presse long : encadré « à retenir », sommaire, chiffres en
   gros, figures (barres base 100, histogramme, haltères par tranche, barres
   par département), trois lecteurs, cas commentés, calcul posé. Tout est du
   HTML brut écrit dans le Markdown, stylé ici sous `.ge-corps`, tokens
   maison uniquement. Les tableaux restent des tableaux Markdown dans un
   `.ge-table-scroll`. */
.ge-corps .ge-retenir {
  margin: 0 0 1.4rem;
  padding: 14px 20px 6px;
  border-left: 4px solid var(--c-accent);
  border-radius: 0 var(--rad-card) var(--rad-card) 0;
  background: var(--c-panel);
}
.ge-corps .ge-retenir__t {
  margin: 0 0 6px;
  font-family: var(--f-mono);
  font-size: 10.5px; font-weight: 600;
  letter-spacing: .14em; text-transform: uppercase;
  color: var(--c-accent-strong);
}
.ge-corps .ge-retenir ul { list-style: none; padding: 0; margin: 0; }
.ge-corps .ge-retenir li {
  position: relative;
  margin: 0; padding: 8px 0 8px 22px;
  border-top: 1px solid var(--c-border-soft);
  font-size: .95rem;
}
.ge-corps .ge-retenir li::before { content: '→'; position: absolute; left: 0; color: var(--c-meta); font-weight: 700; }

.ge-corps .ge-toc {
  margin: 0 0 1.6rem;
  padding: 12px 18px 6px;
  border: 1px solid var(--c-border);
  border-radius: var(--rad-card);
  background: var(--c-bg-2);
}
.ge-corps .ge-toc__t {
  margin: 0 0 4px;
  font-family: var(--f-mono);
  font-size: 10.5px; font-weight: 600;
  letter-spacing: .14em; text-transform: uppercase;
  color: var(--c-meta);
}
.ge-corps .ge-toc ol { list-style: none; padding: 0; margin: 0; }
.ge-corps .ge-toc li { margin: 0; padding: 6px 0; border-top: 1px solid var(--c-border-soft); font-size: .92rem; }
.ge-corps .ge-toc a { color: var(--c-ink); text-decoration: none; }
.ge-corps .ge-toc a:hover { color: var(--c-accent-strong); text-decoration: underline; }
.ge-corps .ge-toc li.ge-toc__annexes { font-size: .85rem; color: var(--c-muted); }
.ge-corps .ge-toc li.ge-toc__annexes a { color: var(--c-ink-2); }

/* « À lire aussi » : une ligne, un lien, entre deux paragraphes. */
.ge-corps .ge-aside {
  display: grid; grid-template-columns: auto 1fr; gap: 12px; align-items: baseline;
  margin: .2rem 0 1.2rem;
  padding: 9px 14px;
  border-radius: var(--rad-card);
  background: var(--c-bg-2);
  font-size: .9rem;
}
.ge-corps .ge-aside b {
  font-family: var(--f-mono);
  font-size: 10px; font-weight: 600;
  letter-spacing: .14em; text-transform: uppercase;
  color: var(--c-meta); white-space: nowrap;
}
.ge-corps .ge-aside a { color: var(--c-ink); font-weight: 600; }

/* Le chiffre, en gros : un nombre Archivo et sa phrase. */
.ge-corps .ge-big {
  display: grid; grid-template-columns: auto 1fr; gap: 16px; align-items: center;
  margin: .2rem 0 1.3rem;
  padding: 12px 0;
  border-top: 2px solid var(--c-accent);
  border-bottom: 1px solid var(--c-border);
}
.ge-corps .ge-big b {
  font-family: var(--f-display);
  font-size: 38px; font-weight: 800;
  letter-spacing: -.04em; line-height: 1;
  color: var(--c-accent-strong);
  font-variant-numeric: tabular-nums;
}
.ge-corps .ge-big span { font-size: .92rem; color: var(--c-ink-2); line-height: 1.4; }

/* Figure : surface paper, titre mono « Figure 1 · … », légende source. */
.ge-corps .ge-fig {
  margin: 1rem 0 1.3rem;
  padding: 16px 18px 12px;
  border: 1px solid var(--c-border);
  border-radius: var(--rad-card);
  background: var(--c-panel);
}
.ge-corps .ge-fig__t {
  margin: 0 0 12px;
  font-family: var(--f-mono);
  font-size: 10.5px; font-weight: 600;
  letter-spacing: .12em; text-transform: uppercase;
  color: var(--c-meta);
}
.ge-corps .ge-fig__t b { color: var(--c-ink); font-weight: 600; }
.ge-corps .ge-fig__cap, .ge-corps p.ge-fig__cap {
  margin: 12px 0 0;
  font-size: .8rem; line-height: 1.45;
  color: var(--c-muted);
}
.ge-corps .ge-table-scroll + p.ge-fig__cap, .ge-corps .ge-cases + p.ge-fig__cap { margin: 4px 0 1.2rem; }

/* Base 100 : trois barres. */
.ge-corps .ge-b100 { display: grid; gap: 12px; }
.ge-corps .ge-b100__row { display: grid; grid-template-columns: 150px 1fr 50px; gap: 12px; align-items: center; }
.ge-corps .ge-b100__l { font-size: .9rem; color: var(--c-ink-2); line-height: 1.25; }
.ge-corps .ge-b100__l small { display: block; font-size: .76rem; color: var(--c-muted); }
.ge-corps .ge-b100__track { position: relative; height: 28px; border-radius: 2px; background: var(--c-bg-2); }
.ge-corps .ge-b100__bar { position: absolute; inset: 0 auto 0 0; border-radius: 2px; }
.ge-corps .ge-b100__bar--map { background: var(--c-decor); }
.ge-corps .ge-b100__bar--adj { background: var(--c-accent); }
.ge-corps .ge-b100__bar--mkt { background: var(--c-border-strong); }
.ge-corps .ge-b100__iqr { position: absolute; top: 50%; height: 2px; margin-top: -1px; background: var(--c-panel); }
.ge-corps .ge-b100__iqr::before, .ge-corps .ge-b100__iqr::after { content: ''; position: absolute; top: -5px; width: 2px; height: 12px; background: var(--c-panel); }
.ge-corps .ge-b100__iqr::before { left: 0; } .ge-corps .ge-b100__iqr::after { right: 0; }
.ge-corps .ge-b100__v { font-family: var(--f-display); font-size: 21px; font-weight: 800; text-align: right; color: var(--c-ink); font-variant-numeric: tabular-nums; }

/* Histogramme : treize colonnes, la part de chaque tranche ÉCRITE au-dessus de
   sa barre (avant le 2026-09-16 elle ne vivait que dans un `title`, invisible
   au doigt comme à l'impression). Une barre déclare sa valeur réelle `--p` et
   la hauteur se calcule contre le `--max` de la figure : le Markdown ne porte
   plus de hauteur pré-divisée que personne ne saurait relire. */
.ge-corps .ge-histo { display: grid; grid-template-columns: repeat(13, 1fr); gap: 3px; height: 128px; margin: 4px 0; }
.ge-corps .ge-histo__c { display: flex; flex-direction: column; justify-content: flex-end; min-width: 0; }
.ge-corps .ge-histo__c b {
  flex: none;
  font-family: var(--f-mono); font-size: 9.5px; font-weight: 600; line-height: 14px;
  text-align: center; color: var(--c-muted); font-variant-numeric: tabular-nums;
}
/* La barre laisse au-dessus d'elle la ligne qui porte sa valeur. */
.ge-corps .ge-histo__c i { flex: none; height: calc(var(--p) / var(--max, 16) * (100% - 14px)); background: var(--c-accent); border-radius: 2px 2px 0 0; }
.ge-corps .ge-histo__c[data-side="bas"] i { background: var(--c-accent-soft); }
.ge-corps .ge-histo__c[data-side="haut"] i { background: var(--c-danger); opacity: .7; }
.ge-corps .ge-histo__axis { display: grid; grid-template-columns: repeat(13, 1fr); gap: 3px; font-family: var(--f-mono); font-size: 10px; color: var(--c-muted); }
/* Une graduation marque la BORNE gauche de sa tranche : la barre « 50 à 60 % »
   se tient entre « 50 » et « 60 ». Centré sous sa barre (avant le 2026-09-19),
   le « 50 » se lisait comme la valeur de la barre. */
.ge-corps .ge-histo__axis span { text-align: center; transform: translateX(-50%); }
/* L'axe dit ce qu'il mesure. La figure porte deux sortes de pourcentages (la
   part des ventes au-dessus des barres, le prix payé en abscisse) : sans ce
   titre, rien ne disait que ceux du bas sont des % du prix du voisinage. */
.ge-corps p.ge-histo__axis-t {
  margin: 6px 0 0;
  text-align: center;
  font-family: var(--f-mono); font-size: 10.5px; letter-spacing: .04em;
  color: var(--c-meta);
}

/* ── Chiffres lisibles DANS un tableau (2026-09-16) ─────────────────────────
   Une colonne de pourcentages nus se lit ligne à ligne ; les mêmes chiffres
   doublés d'une barre se classent d'un coup d'œil. Deux composants, posés
   dans une cellule de tableau Markdown, tout en propriétés personnalisées :

   `.ge-cbar`  une valeur et sa barre         <span class="ge-cbar" style="--v:71"><i></i><b>71 %</b></span>
   `.ge-mark`  une médiane et sa dispersion   <span class="ge-mark" style="--m:77;--a:64;--b:89"><b>77 %</b><i></i><small>64–89 %</small></span>

   `--v` / `--m` la valeur, `--a`–`--b` la moitié centrale, `--max` le haut de
   l'échelle (100 par défaut pour une barre, 120 pour une piste base 100, qui
   porte alors un repère au prix du voisinage), `--w` la largeur de la piste.
   Aucune donnée n'est réécrite : le chiffre reste dans la cellule, la barre ne
   fait que le situer. */
.ge-corps .ge-cbar {
  display: inline-grid; grid-template-columns: var(--w, 58px) auto; gap: 9px;
  align-items: center; text-align: right;
}
.ge-corps .ge-cbar i { position: relative; height: 8px; border-radius: 2px; background: var(--c-bg-2); }
.ge-corps .ge-cbar i::before {
  content: ''; position: absolute; inset: 0 auto 0 0;
  width: calc(var(--v) / var(--max, 100) * 100%);
  border-radius: 2px; background: var(--c-accent);
}
.ge-corps .ge-cbar b { font-weight: 600; color: var(--c-ink); }
/* Variante laiton : la mise à prix, jamais de la même couleur que le marteau. */
.ge-corps .ge-cbar--map i::before { background: var(--c-decor); }

.ge-corps .ge-mark {
  display: inline-grid; grid-template-columns: 42px var(--w, 114px);
  gap: 1px 9px; align-items: center; text-align: left; vertical-align: middle;
}
.ge-corps .ge-mark b {
  grid-row: 1 / 3; align-self: center;
  font-weight: 600; font-size: .95rem; text-align: right; color: var(--c-ink);
}
.ge-corps .ge-mark i {
  position: relative; height: 9px; border-radius: 2px;
  /* Le repère du prix du voisinage (100 %) sur une piste qui monte à --max. */
  background:
    linear-gradient(var(--c-border-strong), var(--c-border-strong))
      calc(100 / var(--max, 120) * 100%) / 1px 100% no-repeat,
    var(--c-bg-2);
}
.ge-corps .ge-mark i::before {
  content: ''; position: absolute; top: 0; bottom: 0;
  left: calc(var(--a) / var(--max, 120) * 100%);
  right: calc(100% - var(--b) / var(--max, 120) * 100%);
  border-radius: 2px; background: var(--c-accent); opacity: .3;
}
.ge-corps .ge-mark i::after {
  content: ''; position: absolute; top: -3px; bottom: -3px;
  left: calc(var(--m) / var(--max, 120) * 100%);
  width: 2px; margin-left: -1px; background: var(--c-accent-strong);
}
.ge-corps .ge-mark small { font-size: .7rem; letter-spacing: 0; color: var(--c-muted); }

/* Haltères : mise à prix → marteau, sur une piste base 100. */
.ge-corps .ge-dumb { display: grid; gap: 12px; margin: 6px 0 4px; }
.ge-corps .ge-dumb__row { display: grid; grid-template-columns: 150px 1fr; gap: 12px; align-items: center; font-size: .88rem; color: var(--c-ink-2); line-height: 1.25; }
.ge-corps .ge-dumb__row small { display: block; font-family: var(--f-mono); font-size: .74rem; color: var(--c-muted); }
.ge-corps .ge-dumb__track { position: relative; height: 26px; }
.ge-corps .ge-dumb__track::before { content: ''; position: absolute; left: 0; right: 0; top: 50%; border-top: 1px solid var(--c-border-strong); }
.ge-corps .ge-dumb__seg { position: absolute; top: 50%; height: 4px; margin-top: -2px; background: var(--c-border-2); }
.ge-corps .ge-dumb__pt { position: absolute; top: 50%; width: 14px; height: 14px; margin: -7px 0 0 -7px; border-radius: 50%; }
.ge-corps .ge-dumb__pt--map { background: var(--c-decor); }
.ge-corps .ge-dumb__pt--adj { background: var(--c-accent); }
.ge-corps .ge-dumb__pt--mkt { width: 2px; height: 20px; margin: -10px 0 0 -1px; border-radius: 0; background: var(--c-ink-2); }
.ge-corps .ge-dumb__lab { position: absolute; top: -9px; transform: translateX(-50%); font-family: var(--f-mono); font-size: 10.5px; color: var(--c-ink-2); }
.ge-corps .ge-legend { display: flex; flex-wrap: wrap; gap: 14px; margin: 8px 0 0; font-size: .8rem; color: var(--c-muted); }
.ge-corps .ge-legend i { display: inline-block; width: 10px; height: 10px; margin-right: 6px; border-radius: 50%; vertical-align: -1px; }
.ge-corps .ge-legend i.ge-legend--map { background: var(--c-decor); }
.ge-corps .ge-legend i.ge-legend--adj { background: var(--c-accent); }
.ge-corps .ge-legend i.ge-legend--mkt { width: 2px; border-radius: 0; background: var(--c-ink-2); }

/* Barres par département, médiane nationale en pointillé. */
.ge-corps .ge-depts { position: relative; display: grid; gap: 7px; margin: 14px 0 4px; }
.ge-corps .ge-dept { display: grid; grid-template-columns: 160px 1fr 40px; gap: 10px; align-items: center; font-size: .9rem; color: var(--c-ink); line-height: 1.15; }
.ge-corps .ge-dept__n { display: block; font-size: .74rem; color: var(--c-muted); }
.ge-corps .ge-dept__track { position: relative; height: 20px; border-radius: 2px; background: var(--c-bg-2); }
.ge-corps .ge-dept__bar { position: absolute; inset: 0 auto 0 0; border-radius: 2px; background: var(--c-accent); }
.ge-corps .ge-dept__bar[data-w="haut"] { background: var(--c-accent-strong); }
.ge-corps .ge-dept__bar[data-w="bas"] { background: var(--c-decor); }
.ge-corps .ge-dept__v { font-family: var(--f-mono); font-weight: 600; text-align: right; font-variant-numeric: tabular-nums; }
.ge-corps .ge-median { position: absolute; top: 0; bottom: 0; border-left: 2px dashed var(--c-ink-2); opacity: .5; }
.ge-corps .ge-median span { position: absolute; top: -18px; left: -40px; width: 80px; text-align: center; font-family: var(--f-mono); font-size: 10px; color: var(--c-ink-2); }
.ge-corps .ge-dept__scale { display: grid; grid-template-columns: 160px 1fr 40px; gap: 10px; }
.ge-corps .ge-dept__scale div { display: flex; justify-content: space-between; font-family: var(--f-mono); font-size: 10px; color: var(--c-muted); }

/* Trois lecteurs, trois ventes commentées, calcul posé, citation. */
.ge-corps .ge-readers { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin: .6rem 0 1rem; }
.ge-corps .ge-reader { border-top: 3px solid var(--c-accent); padding-top: 8px; }
.ge-corps .ge-reader h3 { margin: 0 0 6px; font-size: 15px; }
.ge-corps .ge-reader p { margin: 0 0 8px; font-size: .88rem; color: var(--c-ink-2); }
/* Autant de colonnes que de ventes commentées : à trois cartes la grille en
   fait trois, à deux elle en fait deux — un `repeat(3, 1fr)` figé laissait un
   tiers vide et deux cartes serrées depuis que l'édition 2 n'en cite que deux. */
.ge-corps .ge-cases { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 12px; margin: .6rem 0 .4rem; }
.ge-corps .ge-case {
  display: flex; flex-direction: column; gap: 5px;
  padding: 14px;
  border: 1px solid var(--c-border);
  border-radius: var(--rad-card);
  background: var(--c-panel);
}
.ge-corps .ge-case__where { font-family: var(--f-display); font-size: 16px; font-weight: 700; color: var(--c-ink); }
.ge-corps .ge-case__what { font-size: .8rem; color: var(--c-muted); }
.ge-corps .ge-case__line { display: flex; justify-content: space-between; gap: 8px; margin-top: 2px; padding-top: 5px; border-top: 1px solid var(--c-border-soft); font-size: .85rem; }
.ge-corps .ge-case__line b { font-family: var(--f-mono); font-weight: 600; color: var(--c-ink); font-variant-numeric: tabular-nums; }
.ge-corps .ge-case__pct { margin-top: 6px; font-family: var(--f-display); font-size: 26px; font-weight: 800; letter-spacing: -.03em; line-height: 1; color: var(--c-accent-strong); }
.ge-corps .ge-case__pct small { display: block; margin-top: 4px; font-family: var(--f-sans); font-size: .76rem; font-weight: 400; color: var(--c-muted); }
.ge-corps .ge-case p { margin: 4px 0 0; font-size: .82rem; line-height: 1.4; color: var(--c-ink-2); }
/* Le calcul posé : trois lignes, un libellé, le chiffre en gros, sa provenance
   en petit — puis le résultat détaché sous un filet. Avant le 2026-09-16
   c'était un bloc monospace de trois phrases où le lecteur devait retrouver
   lui-même les deux nombres qu'on divise. */
.ge-corps .ge-calc {
  margin: .6rem 0 1rem;
  padding: 14px 18px 12px;
  border: 1px solid var(--c-border);
  border-radius: var(--rad-card);
  background: var(--c-panel);
}
.ge-corps .ge-calc__t {
  margin: 0 0 10px;
  font-size: .86rem; line-height: 1.45; color: var(--c-ink);
}
.ge-corps .ge-calc__row {
  display: grid; grid-template-columns: 1fr auto; gap: 2px 14px; align-items: baseline;
  padding: 7px 0; border-top: 1px solid var(--c-border-soft);
}
.ge-corps .ge-calc__row > span { font-size: .88rem; color: var(--c-ink-2); }
.ge-corps .ge-calc__row > b {
  font-family: var(--f-mono); font-size: 1rem; font-weight: 600;
  color: var(--c-ink); font-variant-numeric: tabular-nums; white-space: nowrap;
}
.ge-corps .ge-calc__row > small {
  grid-column: 1 / -1;
  font-size: .76rem; line-height: 1.4; color: var(--c-muted);
}
.ge-corps .ge-calc__out {
  display: grid; grid-template-columns: 1fr auto; gap: 2px 14px; align-items: center;
  margin-top: 2px; padding-top: 10px; border-top: 2px solid var(--c-accent);
}
.ge-corps .ge-calc__out > span { font-family: var(--f-mono); font-size: .84rem; color: var(--c-muted); }
.ge-corps .ge-calc__out > b {
  font-family: var(--f-display); font-size: 30px; font-weight: 800;
  letter-spacing: -.03em; line-height: 1; color: var(--c-accent-strong);
  font-variant-numeric: tabular-nums;
}
.ge-corps .ge-calc__out > small { grid-column: 1 / -1; font-size: .78rem; color: var(--c-ink-2); }
.ge-corps .ge-cite {
  margin: .4rem 0 1rem;
  padding: 10px 14px;
  border-left: 3px solid var(--c-decor);
  background: var(--c-panel);
  font-family: var(--f-mono);
  font-size: .82rem;
}
@media (max-width: 640px) {
  .ge-corps .ge-readers, .ge-corps .ge-cases { grid-template-columns: 1fr; }
  /* Pistes raccourcies : la barre garde son sens, le tableau défile moins. */
  /* La largeur se fixe sur la grille, pas sur `--w` : un tableau qui déclare
     `--w:150px` en ligne l'emportait sur cette règle et poussait sa dernière
     colonne hors de l'écran (tableau 1 de l'étude n° 1, 2026-09-19). */
  .ge-corps .ge-cbar { grid-template-columns: 40px auto; gap: 7px; }
  .ge-corps .ge-mark { --w: 80px; grid-template-columns: 38px var(--w); gap: 0 7px; }
  .ge-corps .ge-histo { height: 104px; }
  .ge-corps .ge-histo__c b { font-size: 8.5px; }
  .ge-corps .ge-b100__row { grid-template-columns: 100px 1fr 44px; }
  .ge-corps .ge-dumb__row { grid-template-columns: 1fr; gap: 20px; }
  .ge-corps .ge-dept, .ge-corps .ge-dept__scale { grid-template-columns: 110px 1fr 36px; }
  .ge-corps .ge-big { grid-template-columns: 1fr; gap: 6px; }
}
/* Dans un tableau qui défile, le libellé de ligne ne se casse pas sur trois
   lignes : c'est la colonne de droite qui défile. En revanche un EN-TÊTE long
   (« huit ventes sur dix se concluent entre ») se casse volontiers : tenu sur
   une ligne, il poussait à lui seul les dernières colonnes hors de l'écran. */
.ge-corps .ge-table-scroll table { font-size: .84rem; }
.ge-corps .ge-table-scroll th, .ge-corps .ge-table-scroll td { padding: .5rem .45rem; }
.ge-corps .ge-table-scroll th:first-child, .ge-corps .ge-table-scroll td:first-child { white-space: nowrap; }
.ge-corps .ge-table-scroll th:not(:first-child) { white-space: normal; text-wrap: balance; }
