/* Boussole Finance — feuille de style unique. Mobile d'abord. */

@font-face { font-family: "Public Sans"; font-weight: 400; font-style: normal; font-display: swap; src: url(/assets/polices/public-sans-400.ttf) format("truetype"); }
@font-face { font-family: "Public Sans"; font-weight: 700; font-style: normal; font-display: swap; src: url(/assets/polices/public-sans-700.ttf) format("truetype"); }
@font-face { font-family: "Literata"; font-weight: 600; font-style: normal; font-display: swap; src: url(/assets/polices/literata-600.ttf) format("truetype"); }
@font-face { font-family: "Literata"; font-weight: 700; font-style: normal; font-display: swap; src: url(/assets/polices/literata-700.ttf) format("truetype"); }

:root {
  --encre: #15201c;
  --texte: #24302b;
  --gris: #57605b;          /* 6,3:1 sur --papier */
  --filet: #dcd7ca;
  --filet-fort: #b9b3a3;
  --papier: #fbfaf6;
  --blanc: #ffffff;
  --fond-doux: #f1eee4;
  --sapin: #123d33;
  --lien: #17594a;
  --lien-survol: #0b3a2f;
  --ocre: #b7832f;
  --ocre-pale: #f6ecd8;
  --alerte: #9b2c1f;
  --serif: "Literata", Georgia, "Times New Roman", serif;
  --sans: "Public Sans", "Helvetica Neue", Arial, sans-serif;
  --mesure: 42rem;
  --large: 80rem;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; min-height: 100vh; min-height: 100dvh; display: flex; flex-direction: column; background: var(--papier); color: var(--texte); font: 400 1.0625rem/1.65 var(--sans); font-variant-numeric: lining-nums; }
img, svg { max-width: 100%; height: auto; }
a { color: var(--lien); text-decoration-thickness: 1px; text-underline-offset: .18em; }
a:hover { color: var(--lien-survol); text-decoration-thickness: 2px; }
:focus-visible { outline: 3px solid var(--ocre); outline-offset: 2px; }
h1, h2, h3, h4 { font-family: var(--serif); color: var(--encre); font-weight: 600; line-height: 1.22; margin: 0 0 .5em; letter-spacing: -.005em; }
h1 { font-size: 1.85rem; font-weight: 700; }
h2 { font-size: 1.4rem; margin-top: 2rem; }
h3 { font-size: 1.15rem; margin-top: 1.6rem; }
p { margin: 0 0 1em; }
strong { font-weight: 700; color: var(--encre); }

.evitement { position: absolute; left: -9999px; }
.evitement:focus { left: 1rem; top: 1rem; z-index: 10; background: var(--blanc); padding: .5rem 1rem; }
.bandeau-essai { background: var(--alerte); color: #fff; text-align: center; font-size: .85rem; padding: .35rem 1rem; }

/* En-tête */
.entete { background: var(--blanc); border-top: 4px solid var(--sapin); border-bottom: 1px solid var(--filet); }
.entete-int { max-width: var(--large); margin: 0 auto; padding: .75rem 1rem 0; }
.logo { display: inline-flex; align-items: center; gap: .55rem; text-decoration: none; color: var(--sapin); }
.logo:hover { color: var(--sapin); }
.logo-aiguille { flex: none; color: var(--sapin); }
.logo-nom { font-family: var(--serif); font-weight: 700; font-size: 1.45rem; letter-spacing: -.01em; line-height: 1; color: var(--sapin); }
.logo-finance { font-family: var(--sans); font-weight: 400; font-size: .72em; letter-spacing: .14em; text-transform: uppercase; margin-left: .45em; color: var(--gris); }
.nav-principale { margin: .5rem 0 0; }
.nav-principale::-webkit-scrollbar { display: none; }
.nav-principale ul { display: flex; flex-wrap: wrap; list-style: none; margin: 0; padding: 0; gap: 0 1.1rem; white-space: nowrap; }
.nav-principale a { display: block; padding: .45rem 0 .5rem; font-size: .95rem; font-weight: 700; color: var(--texte); text-decoration: none; border-bottom: 3px solid transparent; }
.nav-principale a:hover, .nav-principale a[aria-current] { color: var(--sapin); border-bottom-color: var(--ocre); }

/* Lien et page de recherche */
.entete-int { position: relative; }
.lien-recherche { position: absolute; top: .95rem; right: 1rem; display: inline-flex; align-items: center; gap: .35rem; font-size: .9rem; font-weight: 700; color: var(--sapin); text-decoration: none; padding: .3rem .1rem; }
.lien-recherche:hover, .lien-recherche[aria-current] { text-decoration: underline; }
.lien-recherche svg { flex: none; }
.recherche { max-width: var(--mesure); }
.form-recherche label { display: block; font-weight: 700; margin-bottom: .35rem; }
.recherche-ligne { display: flex; gap: .5rem; }
.recherche-ligne input { flex: 1 1 auto; min-width: 0; font: inherit; font-size: 1.05rem; padding: .6rem .7rem; border: 1px solid var(--gris); border-radius: 3px; background: var(--blanc); color: var(--texte); }
.recherche-ligne input:focus { outline: 3px solid var(--ocre); outline-offset: 1px; }
.recherche-ligne button { flex: none; font: inherit; font-weight: 700; padding: .6rem 1rem; border: 0; border-radius: 3px; background: var(--sapin); color: #fff; cursor: pointer; }
.recherche-aide { font-size: .9rem; color: var(--gris); margin: .6rem 0 0; }
.recherche-etat { font-weight: 700; margin: 1.2rem 0 0; min-height: 1.5em; }
.resultats-recherche .liste-article h2 { margin: 0 0 .35rem; font-size: 1.2rem; }
.resultats-recherche .liste-article h2 a { color: var(--encre); text-decoration: none; }
.resultats-recherche .liste-article h2 a:hover, .resultats-recherche .liste-article h2 a:focus { color: var(--lien); text-decoration: underline; }

.principal { flex: 1 0 auto; width: 100%; max-width: var(--large); margin: 0 auto; padding: 1rem 1rem 3rem; }
.entete, .pied { flex: none; }

/* Fil d'Ariane */
.ariane ol { list-style: none; margin: 0 0 1.25rem; padding: 0; display: flex; flex-wrap: wrap; font-size: .85rem; color: var(--gris); }
.ariane li + li::before { content: "›"; margin: 0 .45rem; color: var(--filet-fort); }
.ariane li[aria-current] { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 60vw; }
.ariane a { color: var(--gris); }

/* Surtitres et listes */
.surtitre { font-size: .8rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--sapin); margin: 0 0 .4rem; }
.surtitre a { color: inherit; text-decoration: none; }
.surtitre-format { color: var(--gris); font-weight: 400; letter-spacing: .04em; }
.surtitre a + .surtitre-format::before, .surtitre > :not(:first-child)::before { content: "· "; }
.titre-section { font-family: var(--sans); font-size: .85rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--gris); border-top: 2px solid var(--encre); padding-top: .6rem; margin: 2.5rem 0 1rem; }

.liste-articles { list-style: none; margin: 0; padding: 0; }
.liste-article { padding: 1.1rem 0; border-bottom: 1px solid var(--filet); }
.liste-article h3 { margin: 0 0 .35rem; font-size: 1.2rem; }
.liste-article h3 a { color: var(--encre); text-decoration: none; }
.liste-article h3 a:hover { color: var(--lien); text-decoration: underline; }
.liste-chapeau { margin: 0 0 .35rem; color: var(--texte); font-size: .98rem; }
.liste-date { margin: 0; font-size: .82rem; color: var(--gris); }

/* Accueil */
.accueil-tete { padding: 1rem 0 0; }
.accueil-tete h1 { font-size: 1.75rem; max-width: 22em; }
.accueil-promesse { font-size: 1.08rem; color: var(--texte); max-width: 40em; }
.grille-rubriques { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr; gap: 0; border-top: 1px solid var(--filet); }
.grille-rubriques li { border-bottom: 1px solid var(--filet); }
.grille-rubriques a { display: block; padding: .9rem 0; text-decoration: none; }
.rub-nom { display: block; font-family: var(--serif); font-weight: 600; font-size: 1.2rem; color: var(--sapin); }
.rub-desc { display: block; font-size: .9rem; color: var(--gris); line-height: 1.45; margin-top: .15rem; }
.grille-rubriques a:hover .rub-nom { text-decoration: underline; text-underline-offset: .18em; }

/* Accueil : chiffres clés datés et sourcés */
.reperes .titre-section { margin-top: 1.5rem; }
.grille-reperes { display: flex; flex-wrap: wrap; column-gap: 2rem; margin: 0; border-top: 1px solid var(--filet); }
.repere { flex: 1 1 100%; padding: .85rem 0; border-bottom: 1px solid var(--filet); min-width: 0; }
.repere dt { font-size: .85rem; font-weight: 700; color: var(--gris); line-height: 1.35; }
.repere dd { margin: .2rem 0 0; }
.repere-valeur { display: block; font-family: var(--serif); font-weight: 700; font-size: 1.5rem; line-height: 1.2; color: var(--encre); font-variant-numeric: tabular-nums; }
.repere-precision { display: block; font-size: .88rem; color: var(--texte); margin-top: .15rem; line-height: 1.4; }
.repere-source { display: block; font-size: .76rem; color: var(--gris); margin-top: .35rem; line-height: 1.4; }
.repere-source a { color: var(--gris); }
.repere-lien { display: inline-block; font-size: .85rem; font-weight: 700; margin-top: .35rem; }
.accueil-methode p { font-size: .9rem; color: var(--gris); line-height: 1.5; }
.accueil-cote .grille-rubriques { grid-template-columns: 1fr !important; }

/* Ligne de métadonnées (articles) et listes */
.meta-ligne { margin: 0; line-height: 1.6; }
.meta-ligne time { color: var(--texte); font-weight: 700; }
.meta-regles { background: var(--ocre-pale); color: var(--encre); padding: 0 .35rem; border-radius: 2px; white-space: nowrap; }
.liste-date .meta-regles { padding: 0 .3rem; }
.meta-sep { color: var(--filet-fort); }

/* Fin d'article */
.signaler { margin-top: 2rem; font-size: .88rem; color: var(--gris); }
.lire-aussi { margin-top: 2.5rem; padding-top: .75rem; border-top: 2px solid var(--encre); }
.lire-aussi h2 { font-family: var(--sans); font-size: .8rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--gris); margin: 0 0 .4rem; border: 0; padding: 0; }
.lire-aussi ul, .article-corps .lire-aussi ul { list-style: none; margin: 0; padding: 0; }
.lire-aussi li { padding: .7rem 0; border-bottom: 1px solid var(--filet); margin: 0; }
.lire-aussi li > a { font-family: var(--serif); font-weight: 600; font-size: 1.08rem; color: var(--encre); text-decoration: none; line-height: 1.3; }
.lire-aussi li > a:hover { color: var(--lien); text-decoration: underline; }
.lire-aussi .surtitre { font-size: .72rem; margin-bottom: .15rem; }
.lire-aussi .liste-date { margin-top: .2rem; }

/* Rubrique */
.rubrique-tete { border-bottom: 2px solid var(--encre); padding-bottom: .75rem; margin-bottom: .5rem; }
.rubrique-desc { color: var(--gris); max-width: 40em; margin: 0; }
.vide { color: var(--gris); padding: 1.5rem 0; max-width: 40em; }

/* Article */
.article-tete { max-width: 48rem; margin-bottom: 1.25rem; }
.chapeau { font-size: 1.15rem; line-height: 1.55; color: var(--encre); margin: .75rem 0 1rem; }
.article-meta { border-top: 1px solid var(--filet); border-bottom: 1px solid var(--filet); padding: .6rem 0; font-size: .85rem; color: var(--gris); }
.signature { margin: 0 0 .25rem; }
.signature a { color: var(--texte); font-weight: 700; text-decoration: none; }

.article-corps, .article-marge { max-width: var(--mesure); }
.article-corps > h2 { padding-top: .25rem; border-top: 1px solid var(--filet); }
.article-corps ul, .article-corps ol { padding-left: 1.3rem; margin: 0 0 1em; }
.article-corps li { margin-bottom: .35em; }
.article-corps .intro { font-size: 1.1rem; color: var(--encre); }

.sommaire { background: var(--blanc); border: 1px solid var(--filet); border-left: 3px solid var(--sapin); padding: .8rem 1rem; margin-bottom: 1.5rem; font-size: .92rem; }
.sommaire-titre { font-weight: 700; font-size: .8rem; letter-spacing: .08em; text-transform: uppercase; color: var(--gris); margin: 0 0 .4rem; }
.sommaire ol { margin: 0; padding-left: 1.2rem; }
.sommaire li { margin: .2rem 0; }
.sommaire a { color: var(--texte); text-decoration: none; }
.sommaire a:hover { color: var(--lien); text-decoration: underline; }

.avertissement { border: 1px solid var(--filet-fort); background: var(--fond-doux); padding: .7rem .9rem; font-size: .85rem; line-height: 1.5; color: var(--texte); margin: 0 0 1.5rem; }
.avertissement p { margin: 0; }

/* Tableaux de données */
.article-corps table, table.donnees { width: 100%; border-collapse: collapse; font-size: .92rem; font-variant-numeric: tabular-nums; margin: 1rem 0 1.5rem; background: var(--blanc); }
.article-corps th, .article-corps td { text-align: left; padding: .5rem .6rem; border-bottom: 1px solid var(--filet); vertical-align: top; }
.article-corps thead th { border-bottom: 2px solid var(--encre); font-weight: 700; color: var(--encre); background: var(--blanc); }
.tableau-defilant, .tableau-scroll { overflow-x: auto; }
/* Tableaux de 3 colonnes ou plus sur petit écran : une fiche par ligne, chaque valeur précédée de son intitulé (data-label) */
@media (max-width: 39.99rem) {
  .tableau-empile { overflow: visible; border-top: 2px solid var(--encre); margin: 1rem 0 1.5rem; }
  .tableau-empile table, .tableau-empile tbody, .tableau-empile tr, .tableau-empile td { display: block; width: 100%; }
  .article-corps .tableau-empile table { margin: 0; background: transparent; }
  .tableau-empile thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .tableau-empile tr { padding: .7rem 0 .6rem; border-bottom: 1px solid var(--filet); }
  .article-corps .tableau-empile td { border: 0; padding: .1rem 0; white-space: normal; }
  .article-corps .tableau-empile td:first-child { font-weight: 700; font-size: 1rem; color: var(--encre); padding-bottom: .3rem; }
  .tableau-empile td:not(:first-child)[data-label]::before { content: attr(data-label); display: block; font: 700 .7rem/1.3 var(--sans); letter-spacing: .05em; text-transform: uppercase; color: var(--gris); margin-top: .35rem; }
  .tableau-empile td:empty { display: none; }
}
@media (min-width: 40rem) { .article-corps td:not(:first-child) { white-space: nowrap; } .article-corps .tableau-empile td { white-space: normal; } }

/* Encadrés repris du Markdown */
.en-bref { border-top: 3px solid var(--sapin); background: var(--blanc); padding: .9rem 1rem; margin: 0 0 1.5rem; border-bottom: 1px solid var(--filet); }
.en-bref-titre { font-weight: 700; font-size: .8rem; letter-spacing: .08em; text-transform: uppercase; color: var(--sapin); margin-bottom: .4rem; }
.en-bref-item { padding: .3rem 0; font-size: .97rem; }
.encadre-marge { background: var(--blanc); border: 1px solid var(--filet); border-left: 3px solid var(--ocre); padding: .8rem 1rem; margin: 1.25rem 0; font-size: .95rem; }
.encadre-titre { font-weight: 700; color: var(--encre); margin-bottom: .3rem; }
.encadre-contenu p:last-child { margin: 0; }
.depliant { border: 1px solid var(--filet); background: var(--blanc); margin: 1rem 0; }
.depliant-titre { cursor: pointer; padding: .6rem .9rem; font-weight: 700; color: var(--sapin); }
.depliant-contenu { padding: 0 .9rem .5rem; }
hr { border: 0; border-top: 1px solid var(--filet-fort); margin: 2rem 0; }
blockquote { margin: 1.25rem 0; padding-left: 1rem; border-left: 3px solid var(--filet-fort); color: var(--texte); }
code { font-size: .9em; background: var(--fond-doux); padding: 0 .25em; }
.invisible { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }

/* Sources et corrections */
.sources, .corrections { margin-top: 2.5rem; padding-top: .75rem; border-top: 2px solid var(--encre); font-size: .88rem; }
.sources h2, .corrections h2 { font-family: var(--sans); font-size: .8rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--gris); margin: 0 0 .6rem; border: 0; padding: 0; }
.sources ol { padding-left: 1.3rem; margin: 0; }
.sources li { margin-bottom: .3rem; overflow-wrap: anywhere; }
.source-domaine { color: var(--gris); font-size: .9em; }
.source-date { color: var(--gris); }
.article-en-bref { max-width: var(--mesure); }
.source-domaine::before { content: "("; } .source-domaine::after { content: ")"; }
.corrections ul { padding-left: 1.2rem; margin: 0; }

/* Pages fixes */
.adresse { font-weight: 700; color: var(--encre); white-space: nowrap; }
.adresse-bloc { font-size: 1.15rem; background: var(--blanc); border: 1px solid var(--filet); padding: .8rem 1rem; display: inline-block; }

/* Publicité : rien sans PUBLICITE_CLIENT ; sinon hauteur réservée en ligne */
.pub { display: block; margin: 2rem 0; background: var(--fond-doux); position: relative; }
.pub-mention { position: absolute; top: .25rem; left: .5rem; font-size: .7rem; color: var(--gris); text-transform: uppercase; letter-spacing: .08em; }

/* Pied */
.pied { background: var(--sapin); color: #dfe8e3; font-size: .9rem; }
.pied-int { max-width: var(--large); margin: 0 auto; padding: 2rem 1rem 1rem; display: grid; gap: 1.5rem; }
.pied a { color: #fff; }
.pied-nom { display: flex; align-items: center; gap: .5rem; font-family: var(--serif); font-weight: 700; font-size: 1.15rem; color: #fff; margin-bottom: .5rem; }
.pied-nom .logo-aiguille { color: #fff; }
.pied-identite p:last-child { max-width: 32em; margin: 0; line-height: 1.5; }
.pied-liens ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: .4rem 1rem; }
.pied-bas { max-width: var(--large); margin: 0 auto; padding: .75rem 1rem 1.5rem; font-size: .8rem; color: #b8c9c0; border-top: 1px solid rgba(255,255,255,.15); }


/* Fiches */
.fiche-dates { display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; margin: 0; padding: .65rem .9rem; background: var(--blanc); border: 1px solid var(--filet); border-left: 4px solid var(--ocre); font-size: .88rem; }
.fiche-dates div { display: flex; flex-direction: column; }
.fiche-dates dt { color: var(--gris); font-size: .78rem; text-transform: uppercase; letter-spacing: .06em; }
.fiche-dates dd { margin: 0; font-weight: 700; color: var(--encre); }
.fiche-alerte { border: 1px solid var(--alerte); color: var(--alerte); background: #fff; padding: .6rem .9rem; font-size: .9rem; }
.chiffres-cles .titre-section { margin-top: 1.5rem; }
.grille-chiffres { display: grid; grid-template-columns: 1fr 1fr; gap: 0; margin: 0 0 1.5rem; border-top: 1px solid var(--filet); border-left: 1px solid var(--filet); background: var(--blanc); }
.chiffre { padding: .75rem .8rem; border-right: 1px solid var(--filet); border-bottom: 1px solid var(--filet); min-width: 0; }
.chiffre dt { font-size: .8rem; color: var(--gris); line-height: 1.3; min-height: 2.1em; }
.chiffre dd { margin: .2rem 0 0; }
.chiffre-valeur { display: block; font-family: var(--serif); font-weight: 700; font-size: 1.45rem; color: var(--encre); font-variant-numeric: tabular-nums; line-height: 1.2; }
.chiffre-source, .chiffre-note { display: block; font-size: .74rem; color: var(--gris); line-height: 1.35; margin-top: .25rem; }
.chiffre-source a { color: var(--gris); }
.fiche-corps { max-width: var(--mesure); }
.historique h2 { border-top: 1px solid var(--filet); padding-top: .25rem; }
.graphique { display: block; width: 100%; aspect-ratio: 640 / 240; background: var(--blanc); border: 1px solid var(--filet); margin: .5rem 0 1rem; }
.g-axe { stroke: var(--encre); stroke-width: 1; }
.g-grille { stroke: var(--filet); stroke-width: 1; }
.g-ligne { fill: none; stroke: var(--sapin); stroke-width: 2.2; stroke-linejoin: miter; }
.g-point { fill: var(--ocre); }
.historique-note { font-size: .85rem; color: var(--gris); line-height: 1.5; margin: .25rem 0 .5rem; }
.historique-detail table { margin: 0; }
.fiche-texte h2 { border-top: 1px solid var(--filet); padding-top: .25rem; }
.g-barre { fill: #7fa395; }
.g-dernier { fill: var(--sapin); }
.g-val { font: 700 15px var(--sans); fill: var(--encre); }
.g-lib { font: 400 14px var(--sans); fill: var(--gris); }
table.donnees th, table.donnees td { text-align: left; padding: .45rem .6rem; border-bottom: 1px solid var(--filet); }
table.donnees thead th { border-bottom: 2px solid var(--encre); }
table.donnees tbody td, table.donnees thead th:not(:first-child) { text-align: right; }
table.donnees tbody th { font-weight: 400; }
table.donnees tbody td:first-child { text-align: left; }
.tableau-source { font-size: .8rem; color: var(--gris); margin-top: -.75rem; }
.cell-au { display: block; font-size: .72rem; color: var(--gris); }
button.tri { font: inherit; font-weight: 700; color: inherit; background: none; border: 0; padding: 0; cursor: pointer; text-align: inherit; }
th[aria-sort="ascending"] button.tri::after { content: " ▲"; font-size: .7em; }
th[aria-sort="descending"] button.tri::after { content: " ▼"; font-size: .7em; }
@media (min-width: 40rem) { .grille-chiffres { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 64rem) { .grille-chiffres { grid-template-columns: repeat(5, 1fr); } }

@media (min-width: 40rem) {
  h1 { font-size: 2.2rem; }
  .accueil-tete h1 { font-size: 2.3rem; }
    .grille-rubriques { grid-template-columns: 1fr 1fr; column-gap: 2rem; }
  .pied-int { grid-template-columns: 1.4fr 1fr; }
}

@media (min-width: 40rem) { .repere { flex-basis: calc(50% - 1rem); } }
@media (min-width: 64rem) {
  .repere { flex-basis: calc(33.333% - 1.34rem); }
  .accueil-colonnes { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: 3rem; }
}

@media (min-width: 64rem) {
  .entete-int { display: flex; align-items: flex-end; justify-content: space-between; gap: 2rem; padding-top: 1rem; }
  .logo { padding-bottom: .7rem; }
  .nav-principale { margin: 0; }
  .nav-principale ul { padding: 0; gap: 1.6rem; }
  .nav-principale { margin-left: auto; }
  .lien-recherche { position: static; flex: none; padding: .45rem 0 .7rem 1.2rem; border-left: 1px solid var(--filet); margin-bottom: .45rem; padding-bottom: .25rem; }
  .principal { padding-top: 1.5rem; }
  .grille-rubriques { grid-template-columns: repeat(3, 1fr); }
  .article-grille { display: grid; grid-template-columns: 15rem minmax(0, var(--mesure)); gap: 3rem; }
  .article-grille.avec-en-bref { grid-template-rows: auto 1fr; row-gap: 0; }
  .avec-en-bref .article-en-bref { grid-column: 2; grid-row: 1; }
  .avec-en-bref .article-marge { grid-column: 1; grid-row: 1 / span 2; }
  .avec-en-bref .article-corps { grid-column: 2; grid-row: 2; }
  .article-marge { order: 0; }
  .sommaire { position: sticky; top: 1rem; background: transparent; border: 0; border-left: 2px solid var(--filet); padding: .2rem 0 .2rem 1rem; }
  .page-fixe .article-corps, .page-fixe .article-tete { margin-left: 18rem; }
  .chapeau { font-size: 1.22rem; }
}

@media print {
  .entete, .pied, .sommaire, .pub, .nav-principale { display: none; }
  body { background: #fff; }
}
.graphique-escalier .g-val { paint-order: stroke; stroke: #fff; stroke-width: 5px; stroke-linejoin: round; }
/* Cartes de chiffres clés des fiches : chiffre en avant, source courte, précisions repliées */
.chiffre-contexte { display: block; font-size: .88rem; color: var(--texte); margin-top: .15rem; line-height: 1.4; }
.chiffre-precisions { margin-top: .35rem; font-size: .78rem; color: var(--gris); }
.chiffre-precisions summary { cursor: pointer; color: var(--lien); font-weight: 700; }
.chiffre-precisions p { margin: .3rem 0 0; line-height: 1.45; }
.page-fiche .grille-chiffres { grid-template-columns: 1fr; }
.page-fiche .chiffre-valeur { font-size: 1.9rem; }
.page-fiche .chiffre dt { min-height: 0; font-weight: 700; }
/* Chiffres secondaires : rangée compacte sous les cartes, sur fond neutre, rattachée à la grille (pas d'espace entre les deux) */
.grille-chiffres.avec-secondaires { margin-bottom: 0; }
.chiffres-secondaires { display: grid; grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr)); margin: 0 0 1.5rem; border: 1px solid var(--filet); border-top: 0; background: var(--papier); font-size: .84rem; }
.chiffres-secondaires > div { padding: .45rem .8rem; border-top: 1px solid var(--filet); min-width: 0; }
.chiffres-secondaires dt { color: var(--gris); font-size: .78rem; line-height: 1.3; }
.chiffres-secondaires dd { margin: 0; line-height: 1.4; }
.chiffres-secondaires .chiffre-source { display: block; font-size: .72rem; margin-top: .1rem; }
.chiffres-secondaires .chiffre-precisions { margin-top: .15rem; }
.page-fiche .chiffre { padding: .65rem .8rem; }
.page-fiche .chiffre-valeur { font-size: 1.75rem; }
@media (min-width: 40rem) {
  .page-fiche .grille-chiffres { grid-template-columns: repeat(auto-fit, minmax(13.5rem, 1fr)); }
}
/* Tableaux rédigés dans l'analyse d'une fiche : même habillage que les tableaux de données */
.analyse table { width: 100%; border-collapse: collapse; font-size: .92rem; font-variant-numeric: tabular-nums; margin: 1rem 0 1.5rem; background: var(--blanc); }
.analyse th, .analyse td { text-align: left; padding: .5rem .6rem; border-bottom: 1px solid var(--filet); vertical-align: top; }
.analyse thead th { border-bottom: 2px solid var(--encre); font-weight: 700; color: var(--encre); background: var(--blanc); }
@media (max-width: 39.99rem) {
  .analyse .tableau-empile table { margin: 0; background: transparent; }
  .analyse .tableau-empile td { border: 0; padding: .1rem 0; }
  .analyse .tableau-empile td:first-child { font-weight: 700; font-size: 1rem; color: var(--encre); padding-bottom: .3rem; }
}
/* Simulateurs */
.outil-grille { display: grid; gap: 1.5rem; margin-bottom: 2rem; }
.simu-form { max-width: var(--mesure); min-width: 0; }
.simu-form fieldset { min-width: 0; }
.simu-groupe { border: 1px solid var(--filet); background: var(--blanc); padding: .9rem 1rem 1rem; margin: 0 0 1rem; min-width: 0; }
.simu-groupe legend { font-family: var(--serif); font-weight: 600; font-size: 1.1rem; color: var(--encre); padding: 0 .3rem; }
.simu-choix { display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; }
.simu-choix label, .simu-case { display: flex; gap: .45rem; align-items: center; min-height: 44px; }
.simu-case { margin-top: .4rem; font-size: .95rem; }
.simu-champ { margin: .8rem 0 0; }
.simu-champ > label { display: block; font-weight: 700; color: var(--encre); font-size: .95rem; line-height: 1.35; }
.simu-aide { display: block; font-size: .82rem; color: var(--gris); line-height: 1.4; margin: .1rem 0 .3rem; }
.simu-saisie { display: inline-flex; align-items: center; gap: .4rem; margin-top: .3rem; }
.simu-form input:not([type=radio]):not([type=checkbox]) { font: inherit; font-variant-numeric: tabular-nums; width: 11rem; max-width: 100%; min-height: 44px; padding: .4rem .6rem; border: 1px solid var(--filet-fort); border-radius: 2px; background: #fff; color: var(--encre); text-align: right; margin-top: .3rem; }
.simu-saisie input { margin-top: 0 !important; }
.simu-form input[type=date] { text-align: left; }
.simu-form input.simu-date { text-align: left; }
.simu-form select { font: inherit; width: 100%; max-width: 22rem; min-width: 0; min-height: 44px; padding: .4rem .6rem; border: 1px solid var(--filet-fort); border-radius: 2px; background: #fff; color: var(--encre); margin-top: .3rem; }
.simu-form select:focus { outline: 3px solid var(--ocre); outline-offset: 1px; }
.simu-form input:focus { outline: 3px solid var(--ocre); outline-offset: 1px; }
.simu-ligne { display: grid; grid-template-columns: 1fr; gap: 0 1rem; }
.simu-ligne input { width: 8rem !important; }
.simu-details { margin: .8rem 0 0; border-top: 1px dashed var(--filet); padding-top: .5rem; }
.simu-details summary { cursor: pointer; color: var(--lien); font-weight: 700; font-size: .92rem; min-height: 32px; }
.simu-actions { display: flex; gap: .75rem; margin: 1rem 0 .5rem; }
.simu-bouton, .simu-bouton-secondaire { font: 700 1rem var(--sans); min-height: 44px; padding: .55rem 1.3rem; border-radius: 2px; cursor: pointer; }
.simu-bouton { background: var(--sapin); color: #fff; border: 1px solid var(--sapin); }
.simu-bouton:hover { background: var(--lien-survol); }
.simu-bouton-secondaire { background: transparent; color: var(--texte); border: 1px solid var(--filet-fort); }
.simu-confidentialite { font-size: .82rem; color: var(--gris); }
.simu-resultat { border-top: 3px solid var(--sapin); background: var(--blanc); padding: 1rem; border-bottom: 1px solid var(--filet); }
.simu-resultat:focus { outline: none; }
.simu-synthese-titre { font-weight: 700; font-size: .8rem; letter-spacing: .08em; text-transform: uppercase; color: var(--sapin); margin: 0 0 .5rem; }
.simu-synthese dl { margin: 0 0 1rem; display: grid; gap: .5rem; }
.simu-synthese dt { font-size: .85rem; color: var(--gris); }
.simu-synthese dd { margin: 0; font-family: var(--serif); font-weight: 700; font-size: 1.6rem; color: var(--encre); font-variant-numeric: tabular-nums; }
.simu-etapes h3 { font-size: 1.05rem; margin: 1rem 0 .4rem; }
.simu-etapes ol { padding-left: 1.3rem; margin: 0; font-size: .95rem; }
.simu-etapes li { margin-bottom: .45rem; }
.simu-note, .simu-alertes { font-size: .85rem; color: var(--gris); }
.simu-erreurs { border: 1px solid var(--alerte); color: var(--alerte); background: #fff; padding: .6rem .9rem; }
@media (min-width: 40rem) { .simu-ligne { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 64rem) {
  .outil-grille { grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: 2.5rem; align-items: start; }
  .outil-resultat { position: sticky; top: 1rem; }
  .outil-corps { margin-left: 0; }
}
/* Graphique en escalier : un tracé pour mobile, un pour les écrans moyens et grands */
.graphique-cadre { margin: .5rem 0 .25rem; }
.graphique-cadre .graphique { margin: 0; height: auto; }
.g-large { display: none !important; }
.g-titre-axe { font-weight: 700; fill: var(--gris); font-family: var(--sans); }
.graphique-escalier .g-lib, .graphique-escalier .g-val, .graphique-escalier .g-annotation { font-size: inherit; }
.graphique-escalier .g-val { font-family: var(--sans); font-weight: 700; fill: var(--encre); paint-order: normal; stroke: none; }
.g-repere { stroke: var(--ocre); stroke-width: 1; stroke-dasharray: 3 3; }
.g-annotation { font-family: var(--sans); fill: var(--texte); paint-order: stroke; stroke: #fff; stroke-width: 4px; stroke-linejoin: round; }
.graphique-legende { font-size: .85rem; color: var(--gris); margin: .25rem 0 .75rem; }
.historique-detail .depliant-contenu { padding-top: .25rem; }
.historique-detail .tableau-source { margin-top: 0; }
@media (min-width: 40rem) { .g-large { display: block !important; } .g-mobile { display: none !important; } }

/* Chiffres secondaires des fiches : une ligne compacte */
.chiffre-contexte-court { color: var(--texte); }
.chiffres-secondaires .chiffre-source { display: block; }

/* Colonnes latérales (fiches et articles) : plan collant, contenus liés, emplacement publicitaire réservé dessous */
.cote-bloc { border-top: 2px solid var(--encre); padding-top: .55rem; margin: 2rem 0 1.25rem; font-size: .92rem; }
.cote-titre { font-weight: 700; font-size: .78rem; letter-spacing: .08em; text-transform: uppercase; color: var(--gris); margin: 0 0 .35rem; }
.cote-bloc ul { list-style: none; margin: 0; padding: 0; }
.cote-bloc li { padding: .45rem 0; border-bottom: 1px solid var(--filet); line-height: 1.35; }
.cote-bloc li a { font-family: var(--serif); font-weight: 600; color: var(--encre); text-decoration: none; }
.cote-bloc li a:hover { color: var(--lien); text-decoration: underline; }
.cote-surtitre { display: block; font-size: .7rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--sapin); }
.cote-chiffres dl { margin: 0; }
.cote-chiffres div { padding: .5rem 0; border-bottom: 1px solid var(--filet); }
.cote-chiffres dt { font-size: .8rem; color: var(--gris); line-height: 1.3; }
.cote-chiffres dd { margin: 0; }
.cote-valeur { display: block; font-family: var(--serif); font-weight: 700; font-size: 1.15rem; color: var(--encre); line-height: 1.25; }
.cote-date { display: block; font-size: .74rem; color: var(--gris); }
.article-cote { display: none; }
.fiche-sommaire { display: none; }
.fiche-cote .pub { margin-top: 1.5rem; }
@media (min-width: 64rem) {
  .fiche-grille { display: grid; grid-template-columns: minmax(0, 44rem) 18rem; gap: 4rem; align-items: start; }
  .page-fiche .fiche-corps, .page-fiche .article-en-bref { max-width: none; }
  .fiche-cote { position: sticky; top: 1rem; max-height: calc(100vh - 2rem); overflow-y: auto; }
  .fiche-sommaire { display: block; margin-top: 1.5rem; }
  .fiche-cote .cote-bloc { margin-top: 1.25rem; }
  .page-fiche .article-tete { max-width: 44rem; }
}
@media (min-width: 80rem) {
  .article-grille.avec-cote { grid-template-columns: 13rem minmax(0, var(--mesure)) 16rem; column-gap: 2.5rem; }
  .avec-cote .article-cote { display: block; grid-column: 3; grid-row: 1 / span 2; }
  .avec-cote .article-cote > :first-child { margin-top: 0; }
  .article-grille.avec-cote:not(.avec-en-bref) .article-cote { grid-row: 1; }
}

/* Accueil : simulateurs publiés */
.liste-outils { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--filet); }
.liste-outils li { padding: .7rem 0; border-bottom: 1px solid var(--filet); }
.liste-outils a { display: block; font-family: var(--serif); font-weight: 600; font-size: 1.08rem; color: var(--sapin); }
.outil-resume { display: block; font-size: .88rem; color: var(--gris); line-height: 1.4; }

[hidden] { display: none !important; }

/* Tableau d'une fiche (ex. plafonds de revenus du LEP) : étroit, lignes secondaires en retrait et grisées */
table.tableau-etroit { max-width: 34rem; }
table.donnees .groupe-secondaire th[scope="rowgroup"] { font-weight: 600; font-size: .8rem; color: var(--gris); text-transform: none; padding-top: .9rem; border-bottom: 1px solid var(--filet); }
table.donnees tr.ligne-secondaire th, table.donnees tr.ligne-secondaire td { color: var(--gris); font-size: .86rem; }
.cell-note { display: block; font-size: .72rem; color: var(--gris); }
/* Regroupement : textes courts alignés à gauche ; sur mobile, une carte par fiche */
.regroupement-note { font-size: .82rem; color: var(--gris); margin: .6rem 0 0; }
.tableau-regroupement table.donnees thead th[data-tri="texte"] { text-align: left; }
.regroupement-texte { max-width: var(--mesure); margin-top: 2.5rem; }
.regroupement-texte h2 { font-size: 1.35rem; margin: 2rem 0 .6rem; }
table.donnees td.cell-texte { text-align: left; font-size: .86rem; min-width: 12rem; }
.tableau-regroupement table.donnees tbody th { font-weight: 600; }
@media (max-width: 60rem) {
  .regroupement-note .note-tri { display: none; }
  .tableau-regroupement table.donnees thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .tableau-regroupement table.donnees, .tableau-regroupement tbody, .tableau-regroupement tr, .tableau-regroupement th, .tableau-regroupement td { display: block; width: 100%; }
  .tableau-regroupement tr { border: 1px solid var(--filet); margin-bottom: .9rem; padding: .3rem .1rem; }
  .tableau-regroupement table.donnees tbody th { font-size: 1rem; border-bottom: 1px solid var(--filet); }
  .tableau-regroupement table.donnees td { text-align: left; border-bottom: 0; min-width: 0; padding: .3rem .6rem; }
  .tableau-regroupement td::before { content: attr(data-titre); display: block; font-size: .72rem; font-weight: 600; color: var(--gris); }
  .tableau-regroupement .cell-au { display: inline; margin-left: .3rem; }
}
/* Tablette (640 à 960 px) : carte sur deux colonnes (taux et plafond côte à côte, puis accès et fiscalité) */
@media (min-width: 40rem) and (max-width: 60rem) {
  .tableau-regroupement tr { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: 1.25rem; background: var(--blanc); padding: .3rem .5rem .5rem; }
  .tableau-regroupement table.donnees tbody th { grid-column: 1 / -1; width: auto; padding: .45rem .6rem .5rem; margin-bottom: .2rem; }
  .tableau-regroupement table.donnees td { width: auto; padding: .35rem .6rem; }
  .tableau-regroupement .cell-au { display: block; margin-left: 0; }
}

/* Repères numérotés des graphiques : numéro sur le tracé, libellé en légende */
.g-repere-num { font-weight: 700; fill: var(--ocre); }
.graphique-reperes { margin: .25rem 0 .5rem; padding-left: 1.4rem; font-size: .85rem; color: var(--texte); }
.graphique-reperes li { margin: .1rem 0; }
.graphique-reperes li::marker { color: var(--ocre); font-weight: 700; }

/* Chiffres secondaires : petites cases côte à côte, pas une ligne pleine largeur par chiffre */
.chiffres-secondaires { display: grid; grid-template-columns: 1fr; margin: 0 0 1.5rem; }
.chiffres-secondaires > div { display: block; padding: .45rem .7rem; }
.chiffres-secondaires dt { font-size: .8rem; line-height: 1.3; }
.chiffres-secondaires .chiffre-contexte-court { display: block; font-size: .82rem; color: var(--gris); line-height: 1.35; }
.chiffres-secondaires .chiffre-source { display: block; font-size: .75rem; }
@media (min-width: 40rem) {
  .chiffres-secondaires { grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr)); }
  .chiffres-secondaires > div { display: block; border-left: 1px solid var(--filet); }
  .chiffres-secondaires > div:first-child { border-left: 0; }
  /* Grille des fiches en auto-fit (2 ou 3 cartes par ligne selon la largeur) : plus d'étirement de la dernière carte */
}
.page-fiche .en-bref-item { padding: .15rem 0; }
/* Fiche : l'en-tête est dans la colonne principale, la colonne latérale commence en haut de page */
@media (min-width: 64rem) { .fiche-cote .fiche-sommaire { margin-top: .5rem; } }

/* Images principales (graphiques maison, photos) : rapport 16:9 réservé par width/height, pas de décalage */
.figure-principale { margin: 1rem 0 1.25rem; max-width: 46rem; }
.figure-principale img, .vignette img, .une-image img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; background: var(--fond-doux); }
.figure-principale img { border: 1px solid var(--filet); }
.figure-principale figcaption { margin-top: .4rem; font-size: .82rem; line-height: 1.4; color: var(--gris); }
.liste-article.avec-vignette .vignette { margin-bottom: .6rem; }
.vignette img { border: 1px solid var(--filet); }
/* Mobile (< 48rem) : petite vignette à droite du titre, le texte l'habille (critique 2026-10-28, écart 1) */
@media (max-width: 47.99rem) {
  .liste-article.avec-vignette { display: flow-root; }
  .liste-article.avec-vignette .vignette { float: right; width: 6.5rem; margin: .15rem 0 .4rem .85rem; }
}
@media (min-width: 48rem) {
  .liste-article.avec-vignette { display: grid; grid-template-columns: 12rem 1fr; column-gap: 1.1rem; align-items: start; }
  .liste-article.avec-vignette .vignette { grid-row: 1 / span 4; margin: .2rem 0 0; }
  .liste-article.avec-vignette > :not(.vignette) { grid-column: 2; }
}
.accueil-une { margin: 1.25rem 0 1.5rem; border-top: 3px solid var(--sapin); padding-top: 1rem; }
.une-lien { display: grid; gap: .9rem; color: inherit; text-decoration: none; }
.une-lien h2 { font-size: 1.45rem; margin: .1rem 0 .4rem; color: var(--encre); }
.une-lien:hover h2 { color: var(--lien); text-decoration: underline; text-decoration-thickness: 1px; }
.une-image img { border: 1px solid var(--filet); }
/* Vignettes photo (champ « vignette », demande n° 28) : 3:2, même étalonnage pour toutes, réservées par width/height */
.vignette-photo img { aspect-ratio: 3 / 2; object-fit: cover; }
/* À la une : photo basse (16:9 recadrée), texte aligné en haut (critique 2026-10-28, écart 3) */
.une-photo img { aspect-ratio: 16 / 9; object-fit: cover; }
.liste-credits { list-style: none; padding: 0; }
.liste-credits li { border-top: 1px solid var(--filet); padding: .7rem 0; }
.liste-credits p { margin: .15rem 0; }
/* Mobile (< 48rem) : la une au format des cartes, vignette 3:2 à droite du titre, pour que le titre et les
   premiers chiffres clés tiennent dans le premier écran (critique 2026-10-28-vignettes-2, écart 1) */
@media (max-width: 47.99rem) {
  .une-lien { display: flow-root; }
  .une-image { float: right; width: 6.5rem; margin: .15rem 0 .4rem .85rem; }
  .une-photo img { aspect-ratio: 3 / 2; }
  .une-lien h2 { font-size: 1.3rem; }
  .une-chapeau-long { display: none; }
}
@media (min-width: 48rem) { .une-chapeau-court { display: none; } }
@media (min-width: 48rem) { .une-lien { grid-template-columns: minmax(0, 17rem) 1fr; gap: 1.25rem; align-items: start; } }
@media (min-width: 64rem) {
  .une-lien { grid-template-columns: minmax(0, 24rem) 1fr; gap: 1.5rem; }
  .une-lien h2 { font-size: 1.8rem; }
}

/* Page /outils/ : titres des cartes de simulateurs (h2 sous le h1 de la page) */
.liste-simulateurs .liste-article h2 { margin: 0 0 .35rem; font-size: 1.2rem; }
.liste-simulateurs .liste-article h2 a { color: var(--encre); text-decoration: none; }
.liste-simulateurs .liste-article h2 a:hover { color: var(--lien); text-decoration: underline; }

/* Chiffres secondaires sous 640 px : une ligne compacte par chiffre (intitulé à gauche, montant à droite),
   contexte, source et précisions en dessous, sur une seule ligne quand c'est possible */
@media (max-width: 39.99rem) {
  .chiffres-secondaires > div { display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: .75rem; align-items: baseline; padding: .55rem .7rem; }
  .chiffres-secondaires dd { display: contents; }
  .chiffres-secondaires dt { grid-column: 1; grid-row: 1; color: var(--texte); font-weight: 700; font-size: .84rem; }
  .chiffres-secondaires dd > strong { grid-column: 2; grid-row: 1; font-size: .95rem; white-space: nowrap; }
  .chiffres-secondaires .chiffre-contexte-court, .chiffres-secondaires .chiffre-source { grid-column: 1 / -1; }
  .chiffres-secondaires .chiffre-source { margin-top: .15rem; }
  .chiffres-secondaires .chiffre-precisions { grid-column: 1 / -1; margin-top: .1rem; font-size: .8rem; }
}

/* En-tête étroit : le lien de recherche se réduit à sa loupe (intitulé conservé pour les lecteurs d'écran) */
.lien-recherche-texte { margin-left: 0; }
@media (max-width: 29.99rem) {
  .lien-recherche { top: .35rem; right: .25rem; width: 44px; height: 44px; justify-content: center; padding: 0; }
  .lien-recherche svg { width: 20px; height: 20px; }
  /* Menu sur deux lignes équilibrées (3 + 2) plutôt qu'un mot seul sur la seconde */
  .nav-principale ul { display: grid; grid-template-columns: repeat(3, max-content); column-gap: 1.1rem; }
  .lien-recherche-texte { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
}

/* Page de recherche : bouton, accès directs avant saisie, mention de confidentialité */
.recherche-ligne button { display: inline-flex; align-items: center; gap: .4rem; min-height: 44px; }
.recherche-ligne button svg { display: none; }
.recherche-ligne input { min-height: 44px; }
.recherche-ligne input::-webkit-search-cancel-button { margin-left: .5rem; }
.resultats-recherche .liste-date { margin: .3rem 0 0; }
.acces-directs { display: grid; gap: 0 2rem; margin-top: 1.5rem; border-top: 2px solid var(--encre); }
.acces-directs[hidden] { display: none; }
.acces-directs h2 { font-family: var(--sans); font-size: .78rem; letter-spacing: .08em; text-transform: uppercase; color: var(--gris); margin: 1.1rem 0 .4rem; }
.acces-directs ul { list-style: none; margin: 0; padding: 0; }
.acces-directs li { border-bottom: 1px solid var(--filet); }
.acces-directs a { display: block; padding: .6rem 0; font-weight: 600; text-decoration: none; color: var(--encre); }
.acces-directs a:hover, .acces-directs a:focus { color: var(--lien); text-decoration: underline; }
.recherche-confidentialite { font-size: .82rem; color: var(--gris); margin: 2rem 0 0; }
@media (min-width: 48rem) { .page-recherche .recherche { max-width: 60rem; } .acces-directs { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 24.99rem) {
  .recherche-ligne button { padding: .6rem .8rem; }
  .recherche-ligne button svg { display: block; }
  .recherche-ligne .bouton-texte { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
}
.recherche-etat:empty, .resultats-recherche:empty { display: none; }
/* Regroupement en cartes (sous 960 px) : une seule largeur pour l'encadré et les cartes ; date commune dite une fois */
.regroupement-date { font-size: .85rem; color: var(--gris); margin: 0 0 .6rem; }
@media (max-width: 60rem) {
  .page-regroupement .rubrique-tete, .page-regroupement .avertissement, .page-regroupement .tableau-regroupement, .page-regroupement .regroupement-note { max-width: 46rem; }
}
/* Date commune affichée au-dessus du tableau : colonne « Données au » masquée à toutes les largeurs (dernière colonne) */
.tableau-regroupement.donnees-communes td[data-titre="Données au"], .tableau-regroupement.donnees-communes thead th:last-child { display: none; }

/* À la une : crédit photo discret sous le chapeau (critique 2026-10-28, écart 8) */
.une-texte { align-self: start; }
.une-texte > :first-child { margin-top: 0; }
.une-credit { margin: .5rem 0 0; font-size: .78rem; color: var(--gris); }
/* Pages de liste : autres rubriques en bas (critique 2026-10-28, écart 6) */
.rubriques-voisines { margin-top: 2.5rem; }
/* Crédits des images : une miniature par crédit (écart 7) */
.article-corps .liste-credits { padding-left: 0; }
.liste-credits li.credit-avec-mini { display: grid; grid-template-columns: 6.5rem 1fr; column-gap: 1rem; align-items: start; }
.credit-mini img { display: block; width: 100%; height: auto; border: 1px solid var(--filet); background: var(--fond-doux); }
.credit-mini.mini-32 img { aspect-ratio: 3 / 2; }
.credit-mini.mini-169 img { aspect-ratio: 16 / 9; }
@media (min-width: 48rem) { .liste-credits li.credit-avec-mini { grid-template-columns: 9rem 1fr; column-gap: 1.25rem; } }
/* Fiches SCPI : chiffre compagnon (taux versé), mentions « performances passées », barres de répartition, tableau des frais */
.chiffre-avec { display: block; font-size: .88rem; color: var(--texte); margin-top: .15rem; line-height: 1.4; }
.historique-mention { font-size: .85rem; color: var(--texte); margin: .25rem 0 .5rem; }
.historique-intro { font-size: .95rem; color: var(--texte); margin: 0 0 .5rem; }
.cell-barre { display: flex; align-items: center; gap: .6rem; justify-content: flex-end; }
.barre { flex: none; width: 5rem; height: .5rem; background: var(--fond-doux); border: 1px solid var(--filet); }
.barre > span { display: block; height: 100%; background: var(--sapin); }
@media (min-width: 48rem) { .barre { width: 9rem; } }
table.donnees.tableau-groupe tbody th { text-align: left; font-weight: 600; vertical-align: top; width: 45%; }
table.donnees.tableau-groupe tbody td { text-align: left; vertical-align: top; }
.donnees .cell-source, .cell-source { display: block; font-size: .72rem; color: var(--gris); margin-top: .15rem; }
.chiffres-source-commune { font-size: .82rem; color: var(--gris); margin: -.25rem 0 .75rem; }
.chiffres-notes ul { margin: .4rem 0 0; padding-left: 1.1rem; font-size: .85rem; }
.chiffres-rappel { font-size: .85rem; color: var(--texte); margin: .75rem 0 1.5rem; padding-left: .6rem; border-left: 3px solid var(--filet-fort, #999); }
@media (max-width: 47.99rem) {
  table.donnees.tableau-groupe tbody th, table.donnees.tableau-groupe tbody td { display: block; width: auto; border-bottom: 0; }
  table.donnees.tableau-groupe tbody tr { display: block; border-bottom: 1px solid var(--filet); padding: .35rem 0; }
  table.donnees.tableau-groupe .cell-note, table.donnees.tableau-groupe .cell-source { font-size: .8rem; }
}

/* Fiche SCPI : graphique à axe resserré (TOF), répartition à deux niveaux */
.g-ligne { fill: none; stroke: #7fa395; stroke-width: 2.5; }
.g-point { fill: #7fa395; stroke: #fff; stroke-width: 2; }
.g-point.g-dernier { fill: var(--sapin); }
.graphique-resserre .g-titre-axe { font-size: 17px; }
.graphique-resserre .g-lib { font-size: 17px; }
.graphique-resserre .g-val { font-size: 19px; }
@media (max-width: 600px) { .graphique-resserre .g-titre-axe { font-size: 24px; } .graphique-resserre .g-lib { font-size: 25px; } .graphique-resserre .g-val { font-size: 27px; } }
.graphique-axe { margin: .25rem 0 0; font: 400 .875rem/1.45 var(--sans); color: var(--gris); }
table.donnees tr.ligne-groupe th, table.donnees tr.ligne-groupe td { font-weight: 700; border-top: 2px solid var(--filet); }
table.donnees tr.ligne-sous th { padding-left: 1.6rem; color: var(--gris); }
sup { font-size: .7em; line-height: 0; vertical-align: .45em; }
