/* site.css — l'habillage, transcrit du gabarit « System Page Mobile.dc.html »
   (Claude Design, export du 03.09.2026, docs/direction-visuelle/export-claude-design/).

   ⛔⛔ POURQUOI CE FICHIER EXISTE : le gabarit met TOUT en style="" en ligne. La politique de
      securite stricte du site interdit les styles en ligne, et elle echoue SANS ERREUR VISIBLE —
      la page s'affiche simplement nue. Chaque valeur ci-dessous est donc reportee du gabarit,
      a l'identique, dans une feuille LIEE.

   ⭐ L'image fait autorite. En cas d'ecart entre ce fichier et la planche, c'est la planche qui
      gagne : c'est elle qui a ete validee.
   ⛔ Les couleurs ne se redefinissent PAS ici : elles viennent de jetons.css. */

/* ============================ ossature ============================ */

*, *::before, *::after { box-sizing: border-box; }

body {
  margin: 0;
  background: var(--papier);
  color: var(--ink);
  font-family: var(--texte);
  -webkit-font-smoothing: antialiased;
}

a { color: var(--rail); text-decoration: none; }
a:hover { color: var(--rouille); }

img { max-width: 100%; }

.page {
  min-height: 100vh;
  background: var(--papier);
  display: flex;
  flex-direction: column;
  max-width: 480px;      /* ⚠️ la vue mobile du gabarit. Le bureau viendra avec System Page v2. */
  margin: 0 auto;
}

.contenu { flex: 1; display: flex; flex-direction: column; }
.contenu > * { min-width: 0; }

/* ⭐ Le bord de peinture dechire — le motif de transition de toute l'identite.
   Deux trames differentes : sous l'en-tete, et au-dessus du pied de page. */
.dechire-bas {
  height: 6px; background: var(--rouille);
  clip-path: polygon(0 0,100% 0,100% 40%,94% 80%,87% 42%,80% 88%,72% 48%,64% 92%,56% 50%,
                     48% 85%,40% 45%,32% 90%,24% 50%,16% 82%,8% 44%,0 78%);
}
.dechire-haut {
  height: 8px; background: var(--rouille);
  clip-path: polygon(0 60%,6% 20%,13% 70%,20% 15%,27% 65%,34% 25%,41% 75%,48% 18%,55% 60%,
                     62% 28%,69% 72%,76% 15%,83% 62%,90% 30%,97% 70%,100% 40%,100% 100%,0 100%);
}

/* ============================ en-tete ============================ */

.entete { background: var(--papier-clair); border-bottom: var(--filet); position: relative; }
.entete-rang { display: flex; align-items: center; justify-content: space-between; padding: 10px 16px; }

.marque { display: flex; align-items: center; gap: 10px; color: var(--ink); min-height: 44px; }
.marque img { height: 42px; width: auto; mix-blend-mode: multiply; }
.marque-mots { display: flex; flex-direction: column; line-height: 1; }
.marque-nom { font-family: var(--titre); font-size: 21px; letter-spacing: .05em; color: var(--ink); }
.marque-guide {
  font-family: var(--sous-titre); font-weight: 700; font-size: 10.5px;
  letter-spacing: .38em; text-transform: uppercase; color: var(--rouille); margin-top: 1px;
}

.actions { display: flex; align-items: center; gap: 2px; }
/* ⛔ 44px : la zone tactile minimum. Le gabarit la tient partout, on la tient aussi. */
.bouton-icone {
  width: 44px; height: 44px; display: flex; align-items: center; justify-content: center;
  background: none; border: none; cursor: pointer; color: var(--petrole);
}

/* ============================ fil d'Ariane et titre ============================ */

.section { padding: 36px 20px 0; display: flex; flex-direction: column; gap: 14px; position: relative; }
.section-titre { padding-top: 22px; gap: 12px; }

.ariane {
  display: flex; align-items: center; gap: 7px; flex-wrap: wrap;
  font-size: 12px; color: var(--gris-bleu);
}
.ariane a { display: inline-flex; align-items: center; min-height: 44px; }
.ariane-courant { color: var(--rouille); font-weight: 500; }

.titre-bloc { display: flex; flex-direction: column; gap: 4px; }
.numero { font-family: var(--titre); font-size: 24px; line-height: 1; color: var(--rouille); }
h1 {
  margin: 0; font-family: var(--titre); font-weight: 400; font-size: 60px;
  line-height: .92; letter-spacing: .01em; color: var(--ink);
}

.intro { margin: 0; font-size: 15px; line-height: 1.55; color: var(--texte-corps); }

/* ⭐⭐ LA MENTION NON CONFIRMEE — en bout de ligne d'intro, discrete.
   ⛔⛔ JAMAIS un bandeau, JAMAIS un badge, JAMAIS de rouge. C'est le composant le plus
      important du regime editorial : il doit informer sans alarmer. */
.non-confirme {
  display: inline-flex; align-items: center; gap: 6px; vertical-align: middle;
  border-left: 1px solid rgba(14, 26, 36, .25);
  padding-left: 10px; margin-left: 4px;
  font-size: 11.5px; color: var(--gris-bleu);
}

/* Le filet orange au losange — separateur recurrent de l'identite. */
.filet-losange { display: flex; align-items: center; gap: 12px; margin-top: 4px; }
.filet-losange span:first-child,
.filet-losange span:last-child { flex: 1; height: 2px; background: var(--rouille); }
.losange { width: 8px; height: 8px; background: var(--rouille); transform: rotate(45deg); flex-shrink: 0; }

/* ============================ niveau de confiance ============================ */

.confiance { display: flex; flex-direction: column; gap: 8px; }
.confiance-label {
  font-family: var(--sous-titre); font-weight: 700; font-size: 12.5px;
  letter-spacing: .16em; text-transform: uppercase; color: var(--petrole);
}
.confiance-etats { display: flex; gap: 6px; flex-wrap: wrap; }
.etat {
  font-family: var(--sous-titre); font-weight: 600; font-size: 12px;
  letter-spacing: .08em; text-transform: uppercase;
  color: var(--gris-bleu); border: 1px solid rgba(139, 167, 173, .5);
  border-radius: 999px; padding: 4px 11px;
}
.etat[aria-current="true"] {
  font-weight: 700; color: var(--papier-clair);
  background: var(--rouille); border-color: var(--rouille);
}

/* ============================ illustration d'ouverture ============================ */

.illustration {
  width: 100%; height: 170px; object-fit: cover; object-position: 50% 42%;
  display: block; margin-top: 22px; mix-blend-mode: multiply;
  clip-path: polygon(0 0,100% 0,100% 94%,92% 98%,84% 94%,75% 98.5%,66% 95%,57% 98%,48% 94.5%,
                     39% 98.5%,30% 95%,21% 98%,12% 94.5%,5% 98%,0 95%);
}

/* ============================ les quatre blocs ============================ */

/* ⭐ Le chiffre fantome : c'est lui qui donne au gabarit son air de document imprime. */
.fantome {
  position: absolute; top: 14px; right: 14px;
  font-family: var(--titre); font-size: 110px; line-height: .8;
  color: rgba(199, 154, 107, .26); user-select: none; pointer-events: none;
}
.section:first-of-type .fantome { top: 8px; }

.bloc-entete { display: flex; align-items: center; gap: 11px; position: relative; }
.tuile {
  width: 40px; height: 40px; background: var(--petrole); border-radius: var(--rayon);
  display: flex; align-items: center; justify-content: center; flex-shrink: 0;
}
.losange-petit { width: 7px; height: 7px; background: var(--rouille); transform: rotate(45deg); flex-shrink: 0; }
h2 {
  margin: 0; font-family: var(--sous-titre); font-weight: 700; font-size: 21px;
  letter-spacing: .07em; text-transform: uppercase; color: var(--rouille);
}

.prose { margin: 0; font-size: 14.5px; line-height: 1.65; color: var(--texte-corps); }

/* --- le resume structure du bloc 01 --- */
.resume {
  background: var(--papier-clair); border: 1px solid rgba(14, 26, 36, .15);
  border-radius: var(--rayon); padding: 16px 18px; display: flex; flex-direction: column;
}
.resume-ligne { display: flex; flex-direction: column; gap: 2px; padding: 10px 0; border-bottom: 1px solid rgba(14, 26, 36, .1); }
.resume-ligne:first-child { padding-top: 0; }
.resume-ligne:last-child { padding-bottom: 0; border-bottom: none; }
.etiquette {
  font-family: var(--sous-titre); font-weight: 700; font-size: 12px;
  letter-spacing: .14em; text-transform: uppercase; color: var(--gris-bleu);
}
.valeur { font-size: 13.5px; line-height: 1.5; }
.valeur-attenuee { color: var(--texte-attenue); }

/* ============================ le bloc SOURCE ============================ */
/* ⭐⭐ Le composant qui PROUVE. Il doit inspirer confiance sans ecraser l'editorial,
   et ⛔ sans jamais ressembler a une publicite ni a une alerte. */

.source {
  background: var(--papier-clair); border: 1px solid rgba(14, 26, 36, .18);
  border-radius: var(--rayon-grand); padding: 20px 18px;
  display: flex; flex-direction: column; gap: 16px;
}
.source-entete { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; }
.source-mot { font-family: var(--titre); font-size: 26px; line-height: 1; letter-spacing: .03em; }
.source-sous { font-size: 12px; color: var(--gris-bleu); }

.source-panneau {
  border: var(--filet); border-radius: var(--rayon); background: var(--papier);
  display: flex; flex-direction: column;
}
.source-champ { padding: 14px 16px; display: flex; flex-direction: column; gap: 4px; border-bottom: var(--filet); }
.source-champ:last-child { border-bottom: none; }
.source-cle {
  font-family: var(--sous-titre); font-weight: 700; font-size: 11.5px;
  letter-spacing: .16em; text-transform: uppercase; color: var(--gris-bleu);
}
.source-valeur { font-family: var(--sous-titre); font-weight: 700; font-size: 18px; letter-spacing: .04em; }
.source-note { font-size: 12.5px; line-height: 1.5; color: var(--texte-attenue); }
.source-date { display: flex; align-items: center; gap: 9px; }
.source-pastille {
  align-self: flex-start; font-family: var(--sous-titre); font-weight: 600; font-size: 12px;
  letter-spacing: .06em; text-transform: uppercase; color: var(--petrole);
  border: 1px solid rgba(22, 78, 80, .4); border-radius: 999px; padding: 3px 11px;
}

/* --- la citation verbatim --- */
.citation {
  background: var(--papier-fonce); border-radius: var(--rayon);
  padding: 18px 18px 16px; display: flex; flex-direction: column; gap: 8px; position: relative;
}
.citation-guillemet {
  position: absolute; top: 6px; left: 14px;
  font-family: var(--titre); font-size: 56px; line-height: .7; color: var(--rouille); user-select: none;
}
.citation-cle {
  font-family: var(--sous-titre); font-weight: 700; font-size: 12.5px;
  letter-spacing: .16em; text-transform: uppercase; color: var(--petrole); padding-left: 30px;
}
/* ⛔ <blockquote> porte une marge de 40px de chaque cote par defaut dans tous les
   navigateurs : sans ca la citation s'etrangle a moitie de la largeur. Vu a l'ecran. */
.citation blockquote { margin: 0; }
.citation p { margin: 0; font-size: 16px; line-height: 1.6; font-style: italic; color: var(--ink); }
.citation-pied { font-size: 12px; color: var(--texte-attenue); }
.citation-pied strong { font-weight: 600; color: var(--petrole); }

.source-lien {
  display: flex; align-items: center; justify-content: space-between; gap: 10px; min-height: 44px;
  font-family: var(--sous-titre); font-weight: 700; font-size: 15px;
  letter-spacing: .09em; text-transform: uppercase; color: var(--rouille);
  border-top: var(--filet); padding-top: 6px;
}
.source-lien:hover { color: var(--petrole); }

/* ⛔⛔ UNE ADRESSE NE SE MET PAS EN CAPITALES. Le chemin d'une URL et la partie locale d'une
   adresse de courrier sont SENSIBLES A LA CASSE : affichee en capitales, une adresse recopiee
   a la main devient fausse — et le lien, lui, marchait, donc rien ne le signale.
   ⚠️ Constate le 05.09.2026 en regardant la page de contact rendue. */
.source-lien.adresse-litterale {
  text-transform: none; letter-spacing: .01em; font-weight: 600;
  word-break: break-all; min-width: 0;
}

/* ⭐ L'URL brute, VISIBLE. C'est ce qui permet de verifier sans cliquer. */
/* ⛔⛔ min-width:0 — SANS LUI LA PAGE ENTIERE DEBORDE.
   Un enfant de conteneur flex vaut `min-width:auto` par defaut : il REFUSE de descendre
   sous la largeur de son contenu. Ici l'URL est en `nowrap`, donc elle elargissait la page
   au-dela de l'ecran, et le texte de TOUTES les sections sortait par la droite.
   ⚠️ Constate le 03.09.2026 en regardant la page rendue a 390px — ⛔ aucun controle ne l'aurait vu. */
.source > * { min-width: 0; }

.source-url {
  min-width: 0;
  font-family: ui-monospace, 'Cascadia Mono', Consolas, monospace; font-size: 11.5px;
  color: var(--texte-attenue); background: var(--papier);
  border: 1px solid rgba(14, 26, 36, .12); border-radius: var(--rayon-petit);
  padding: 8px 12px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.source-verifie { display: flex; align-items: flex-start; gap: 9px; font-size: 12.5px; line-height: 1.5; color: var(--texte-attenue); }
.source-verifie strong {
  font-family: var(--sous-titre); font-weight: 700; font-size: 13px;
  letter-spacing: .1em; text-transform: uppercase; color: var(--petrole);
}

/* ============================ systemes lies ============================ */

.lies { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.lie {
  display: flex; flex-direction: column; gap: 8px; min-height: 44px;
  background: var(--papier-clair); border: 1px solid rgba(14, 26, 36, .15);
  border-radius: var(--rayon); padding: 13px; color: var(--ink);
  transition: border-color var(--transition);
}
.lie:hover { border-color: var(--rouille); color: var(--ink); }
.lie-icone {
  width: 32px; height: 32px; border: 1px solid rgba(45, 106, 106, .4);
  border-radius: var(--rayon-petit); display: flex; align-items: center; justify-content: center;
}
.lie-nom {
  font-family: var(--sous-titre); font-weight: 700; font-size: 14.5px;
  letter-spacing: .05em; text-transform: uppercase; line-height: 1.15;
}
.lie-note { font-size: 12px; line-height: 1.4; color: var(--texte-attenue); }

/* ============================ questions ouvertes ============================ */

.questions { display: flex; flex-direction: column; }
.question {
  display: flex; gap: 11px; align-items: baseline; padding: 10px 0;
  border-bottom: 1px solid rgba(14, 26, 36, .1);
  font-size: 14px; line-height: 1.55; color: var(--texte-corps);
}
.question:last-child { border-bottom: none; }
.puce { color: var(--rouille); flex-shrink: 0; }

/* ⭐ « Ce qui trancherait » : sur aplat petrole. C'est ce bloc qui transforme une lacune
   en promesse tenable — on dit ce qu'on ignore, ET ce qui permettrait de le savoir. */
.trancherait {
  background: var(--petrole); border-radius: var(--rayon);
  padding: 18px; display: flex; flex-direction: column; gap: 10px;
}
.trancherait-cle {
  font-family: var(--sous-titre); font-weight: 700; font-size: 12.5px;
  letter-spacing: .16em; text-transform: uppercase; color: var(--sable);
}
.trancherait-ligne {
  display: flex; gap: 10px; align-items: baseline; padding: 7px 0;
  border-bottom: 1px solid rgba(250, 247, 240, .12);
  font-size: 13px; line-height: 1.5; color: var(--petrole-texte);
}
.trancherait-ligne:last-of-type { border-bottom: none; }
.trancherait-ligne .losange-petit { align-self: center; width: 6px; height: 6px; }
.trancherait a {
  display: flex; align-items: center; min-height: 44px;
  font-family: var(--sous-titre); font-weight: 700; font-size: 13.5px;
  letter-spacing: .1em; text-transform: uppercase; color: var(--papier-clair);
}
.trancherait a:hover { color: var(--rouille); }

/* ============================ pied de page d'article ============================ */

.arrete-zone { padding: 30px 20px 40px; }
.arrete {
  border-top: 1px solid rgba(14, 26, 36, .2); padding-top: 16px;
  display: flex; flex-direction: column; gap: 12px;
}
.arrete-methode { display: flex; gap: 9px; font-size: 12.5px; line-height: 1.5; color: var(--texte-attenue); }
.arrete-methode a { font-weight: 500; }
.arrete-dates {
  display: flex; gap: 18px; flex-wrap: wrap;
  font-family: var(--sous-titre); font-weight: 600; font-size: 12.5px;
  letter-spacing: .08em; text-transform: uppercase; color: var(--gris-bleu);
}
.arrete-dates strong { color: var(--petrole); font-weight: 700; }

/* ============================ pied de page ============================ */

.pied { background: var(--petrole); padding: 28px 20px 22px; display: flex; flex-direction: column; gap: 18px; }
.pied .marque img { height: 48px; filter: brightness(1.35); mix-blend-mode: normal; }
.pied .marque-nom { font-size: 22px; letter-spacing: .06em; color: var(--papier-clair); }
.pied .marque-guide { font-size: 10.5px; letter-spacing: .4em; margin-top: 2px; }
.pied-baseline { margin: 0; font-size: 13.5px; line-height: 1.6; color: var(--petrole-texte); }
.pied-baseline strong { color: var(--papier-clair); font-weight: 600; }

/* ⛔⛔ La mention de non-affiliation : sur TOUTES les pages, sans exception.
   Elle est encadree pour etre lisible, ⛔ pas agressive. */
.pied-mention {
  margin: 0; font-size: 11.5px; line-height: 1.6; color: var(--gris-bleu);
  border: 1px solid rgba(250, 247, 240, .18); border-radius: var(--rayon); padding: 13px 15px;
}
.pied-credit { margin: 0; font-size: 11.5px; line-height: 1.6; color: var(--gris-bleu); }
.pied-nav { display: flex; gap: 16px; flex-wrap: wrap; }
.pied-nav a {
  /* ⛔ 44px : zone tactile minimum. Mesure a l'ecran le 03.09.2026 — ces trois liens
     faisaient 16px de haut. ⭐ La regle vise les CIBLES tactiles distinctes ;
     un lien en pleine phrase (« View methodology ») en est exempt, et le reste. */
  display: inline-flex; align-items: center; min-height: 44px;
  font-family: var(--sous-titre); font-weight: 600; font-size: 12.5px;
  letter-spacing: .08em; text-transform: uppercase; color: var(--petrole-texte);
}
.pied-nav a:hover { color: var(--rouille); }
.pied-copyright { font-size: 11.5px; color: var(--gris-bleu); text-align: center; }

/* ================================================================================
   LA NAVIGATION ET LE PIED DE PAGE
   Transcrits du gabarit « Header & Footer.dc.html » (export du 03.09.2026).
   ⭐ Mobile d'abord : une rangee d'ICONES sans libelle — six destinations a 44px,
      toutes atteignables. ⛔ Aucun script : la politique de securite l'interdit.
   ================================================================================ */

.nav { display: flex; align-items: stretch; gap: 2px; flex-wrap: nowrap; }
.nav-item { position: relative; display: flex; }

.nav-lien {
  display: flex; flex-direction: column; align-items: center; gap: 4px;
  min-width: 44px; min-height: 44px; padding: 6px 6px 5px;
  color: var(--petrole); border-bottom: 3px solid transparent;
  transition: color var(--transition), border-color var(--transition);
}
.nav-lien:hover { color: var(--rouille); }
.nav-lien-actif {
  color: var(--rouille); border-bottom-color: var(--rouille);
  background: rgba(230, 111, 24, .07);
}
/* ⛔ En ecran etroit le libelle disparait : six libelles ne tiennent pas, et un libelle
   tronque est pire qu'une icone claire. ⭐ L'attribut de titre reste lisible par les
   technologies d'assistance. */
.nav-libelle {
  display: none;
  font-family: var(--sous-titre); font-weight: 600; font-size: 15px;
  letter-spacing: .08em; text-transform: uppercase;
}
.nav-lien-actif .nav-libelle { font-weight: 700; }

.selecteur-langue { position: relative; margin-left: 8px; color: var(--petrole); }
.selecteur-langue-label {
  display: flex; align-items: center; min-height: 44px; padding: 6px 10px;
  border: 1px solid rgba(22, 78, 80, .25); background: transparent; color: var(--petrole);
  font-family: var(--sous-titre); font-size: 11px; font-weight: 700;
  letter-spacing: .1em; text-transform: uppercase; cursor: pointer;
}
.selecteur-langue-label::-webkit-details-marker { display: none; }
.selecteur-langue-label::after { content: "▾"; margin-left: 7px; color: var(--rouille); }
.selecteur-langue[open] .selecteur-langue-label::after { content: "▴"; }
.selecteur-langue-liens {
  position: absolute; z-index: 10; top: 48px; right: 0; display: grid; grid-template-columns: repeat(2, max-content);
  gap: 2px; min-width: 250px; padding: 8px; background: var(--papier-clair);
  border: 1px solid rgba(22, 78, 80, .25); box-shadow: 0 12px 24px rgba(14, 26, 36, .16);
}
.selecteur-langue-liens a {
  display: block; min-height: 40px; padding: 11px 12px; color: var(--petrole); font-size: 12px;
}
.selecteur-langue-liens a:hover,
.selecteur-langue-liens a.selecteur-langue-actif { color: var(--rouille); background: rgba(230, 111, 24, .08); }

/* ⛔ Le mega-menu ne s'affiche PAS en ecran etroit : les cinq rubriques sont deja dans le
   sommaire de l'accueil et dans le pied de page. Aucune page n'est inatteignable. */
.megamenu { display: none; }

/* ⛔⛔ SOUS 400 PIXELS, LA RANGEE D'EN-TETE NE TIENT PLUS — et comme elle vit dans la coque
   commune, c'est TOUTE la page, sur TOUTES les adresses, qui defile horizontalement.
   ⚠️ Mesure du 05.09.2026 sur le site construit, cadre de 330 px : contenu 371 pour 330
   disponibles, debordement propage de .entete-rang jusqu'a <html>. La marque elle-meme etait
   deja comprimee (111 de contenu dans 81).
   ⭐ Ce qui ne se reduit PAS : les six cibles tactiles de 44 px — c'est le choix du gabarit.
   ⭐ Ce qui se reduit : le mot-symbole a cote du logo, les marges de la rangee, l'ecart des
   icones. Le logo reste, et il ramene a l'accueil. */
@media (max-width: 399px) {
  .entete-rang { padding: 10px; gap: 8px; }
  .marque { min-width: 0; }
  .marque-mots { display: none; }
  .nav { gap: 0; }
  .selecteur-langue { margin-left: 0; }
  .selecteur-langue-label { padding-left: 7px; padding-right: 7px; }
}

/* ⭐ LE PLANCHER, pour les ecrans plus etroits encore : si la rangee deborde malgre tout,
   c'est la NAVIGATION qui defile dans son propre cadre, ⛔ jamais la page.
   ⚠️ Borne a l'ecran etroit : au-dela de 768 px le mega-menu se deploie hors de .nav, et un
   cadre defilant le couperait. */
@media (max-width: 767px) {
  .nav { min-width: 0; overflow-x: auto; scrollbar-width: none; }
  .nav::-webkit-scrollbar { display: none; }
}

/* ============================ le pied de page ============================ */

.pied-grille { display: flex; flex-direction: column; gap: 26px; }
.pied-marque { display: flex; flex-direction: column; gap: 14px; }
.pied-credo { margin: 0; font-size: 13px; line-height: 1.6; color: var(--gris-bleu); }
.filet-losange-pied { max-width: 220px; margin-top: 0; }
.filet-losange-pied span:first-child,
.filet-losange-pied span:last-child { height: 1px; background: rgba(250, 247, 240, .2); }

.pied-col { display: flex; flex-direction: column; gap: 10px; }
.pied-titre {
  font-family: var(--sous-titre); font-weight: 700; font-size: 14.5px;
  letter-spacing: .16em; text-transform: uppercase; color: var(--sable);
  border-bottom: 2px solid rgba(250, 247, 240, .22); padding-bottom: 8px;
}
.pied-col a {
  display: inline-flex; align-items: center; gap: 8px; min-height: 44px;
  font-size: 14px; color: #C9D8D5;
}
.pied-col a:hover { color: var(--rouille); }

.pied-legal {
  display: flex; gap: 14px; align-items: flex-start;
  border: 1px solid rgba(250, 247, 240, .2); border-radius: var(--rayon);
  padding: 16px 18px; color: var(--sable);
}
.pied-legal svg { flex-shrink: 0; margin-top: 2px; }

/* ================================================================================
   ÉCRAN LARGE — la coque a 1520px, la navigation a libelles, le mega-menu.
   ⚠️ La bascule est a 768px, comme le gabarit le demande.
   ================================================================================ */

@media (min-width: 768px) {

  .page { max-width: 1520px; }

  /* --- l'en-tete --- */
  .entete-rang { padding: 18px 40px; gap: 40px; }
  .marque { gap: 14px; flex-shrink: 0; }
  .marque img { height: 64px; }
  .marque-nom { font-size: 30px; letter-spacing: .06em; }
  .marque-guide { font-size: 14px; letter-spacing: .42em; margin-top: 2px; }

  .nav { gap: 6px; }
  .nav-lien { gap: 5px; padding: 8px 16px 10px; min-width: 0; }
  .nav-libelle { display: block; }

  /* --- ⭐⭐ LE MÉGA-MENU, ouvert au survol ET au focus clavier, SANS SCRIPT --- */
  .nav-item-menu:hover .megamenu,
  .nav-item-menu:focus-within .megamenu {
    display: block;
  }
  /* ⛔ ANCRE SUR L'EN-TETE, PAS SUR LE BOUTON. Centre sur son bouton, le menu debordait
     de l'ecran par la droite — mesure le 03.09.2026 : bord droit au-dela du viewport.
     ⭐ On neutralise donc le contexte de positionnement de l'element de navigation. */
  .nav-item { position: static; }
  .megamenu {
    position: absolute; top: 100%; left: 40px; right: 40px; transform: none;
    z-index: 20;
    background: var(--papier-clair);
    border: var(--filet); border-top: 3px solid var(--rouille);
    border-radius: 0 0 var(--rayon-grand) var(--rayon-grand);
    box-shadow: 0 10px 24px rgba(14, 26, 36, .10);
  }
  .megamenu-grille {
    display: grid; grid-template-columns: repeat(5, 1fr);
    gap: 36px; padding: 30px 40px 26px;
  }
  .megamenu-col { display: flex; flex-direction: column; gap: 11px; }
  .megamenu-tete {
    display: flex; align-items: center; gap: 10px;
    border-bottom: 2px solid var(--petrole); padding-bottom: 9px; color: var(--rail);
  }
  .megamenu-titre {
    font-family: var(--sous-titre); font-weight: 700; font-size: 16.5px;
    letter-spacing: .07em; text-transform: uppercase; color: var(--ink);
  }
  .megamenu-titre:hover { color: var(--rouille); }
  .megamenu-intro { margin: 0; font-size: 13.5px; line-height: 1.55; color: var(--texte-attenue); }
  .megamenu-tout {
    margin-top: auto;
    font-family: var(--sous-titre); font-weight: 700; font-size: 12.5px;
    letter-spacing: .1em; text-transform: uppercase; color: var(--rouille);
  }

  /* --- l'illustration d'ouverture, plus haute --- */
  .illustration { height: 300px; margin-top: 28px; }

  /* --- le corps d'article : ⛔ un paragraphe ne s'etire JAMAIS sur 1520px --- */
  .section { padding: 44px 40px 0; }
  .section-titre { padding-top: 30px; }
  h1 { font-size: 92px; }
  .intro { font-size: 17px; max-width: var(--texte-max); }
  .prose { font-size: 15.5px; max-width: var(--texte-max); }
  h2 { font-size: 25px; }
  .fantome { font-size: 150px; top: 18px; right: 34px; }

  .resume, .source { max-width: 760px; }
  .lies { grid-template-columns: repeat(3, 1fr); max-width: 1100px; }
  .questions, .trancherait { max-width: var(--texte-max); }
  .arrete-zone { padding: 44px 40px 56px; }
  .arrete { flex-direction: row; align-items: center; justify-content: space-between; gap: 28px; }

  /* --- le pied de page en quatre colonnes --- */
  .pied { padding: 56px 40px 26px; gap: 0; }
  .pied-grille {
    display: grid; grid-template-columns: 1.5fr 1fr 1fr 1.2fr;
    gap: 56px; align-items: start;
  }
  .pied-marque { gap: 18px; }
  .pied .marque img { height: 72px; }
  .pied .marque-nom { font-size: 32px; }
  .pied-baseline { font-size: 15px; }
  .pied-legal { margin-top: 36px; }
  .pied-copyright { margin-top: 26px; }
}

/* Entre tablette et petit bureau, les six entrées de navigation passent en icônes
   pour laisser au sélecteur de langue sa largeur utile sans élargir la page. */
@media (min-width: 768px) and (max-width: 1023px) {
  .entete-rang { padding: 14px 20px; gap: 14px; }
  .nav { min-width: 0; flex: 1; gap: 0; overflow-x: auto; scrollbar-width: none; }
  .nav::-webkit-scrollbar { display: none; }
  .nav-lien { gap: 0; padding: 8px 10px 10px; }
  .nav-libelle { display: none; }
  .selecteur-langue { flex-shrink: 0; }
}

/* ⭐ Tres grand ecran : on ne laisse pas les titres devenir absurdes. */
@media (min-width: 1280px) {
  h1 { font-size: 108px; }
  .megamenu-intro { font-size: 14px; }
}

/* ================================================================================
   LES PAGES FIXES — methode, date de sortie, a propos
   ⭐ Transcrites des gabarits Method / About / Release Date v2 (export du 03.09.2026).
   ⛔ Conteneur a 1060px : ce sont des pages de LECTURE, pas des pages d'index.
   ================================================================================ */

.page-fixe { display: flex; flex-direction: column; }
.pf-entete { padding: 22px 20px 0; display: flex; flex-direction: column; gap: 12px; }
.pf-entete .numero {
  font-family: var(--sous-titre); font-weight: 700; font-size: 13px;
  letter-spacing: .18em; text-transform: uppercase; color: var(--rouille);
}

/* --- les trois axes de la page methode --- */
.pf-axes { padding: 34px 20px 0; display: flex; flex-direction: column; gap: 26px; }
.pf-axe {
  display: flex; flex-direction: column; gap: 10px;
  background: var(--papier-clair); border: 1px solid rgba(14, 26, 36, .15);
  border-radius: var(--rayon); padding: 20px 20px 22px;
}
.pf-axe h2 { font-size: 22px; }
.pf-ligne {
  margin: 0; font-family: var(--sous-titre); font-weight: 600; font-size: 15.5px;
  letter-spacing: .02em; color: var(--petrole);
}

/* --- un tableau de lecture, sans balise de tableau : il se replie tout seul --- */
.pf-tableau { display: flex; flex-direction: column; gap: 2px; }
.pf-rangee {
  display: flex; flex-direction: column; gap: 6px;
  padding: 14px 0; border-bottom: 1px solid rgba(14, 26, 36, .12);
}
.pf-rangee:last-child { border-bottom: none; }
.pf-rangee .etat { align-self: flex-start; }
.pf-cellule { display: flex; flex-direction: column; gap: 5px; font-size: 14px; line-height: 1.55; }
.pf-cellule-attenuee { color: var(--texte-attenue); font-size: 13px; }

/* --- la reponse de la page date de sortie : sobre, ⛔ jamais un compte a rebours --- */
.pf-reponse {
  background: var(--papier-clair); border: 1px solid rgba(14, 26, 36, .18);
  border-left: 4px solid var(--rouille);
  border-radius: var(--rayon); padding: 22px 22px 20px;
  display: flex; flex-direction: column; gap: 14px;
}
.pf-reponse-titre {
  margin: 0; font-family: var(--sous-titre); font-weight: 700; font-size: 21px;
  line-height: 1.3; letter-spacing: .02em; text-transform: uppercase; color: var(--ink);
}
.pf-dit {
  font-family: var(--titre); font-size: 26px; line-height: 1.1;
  letter-spacing: .02em; color: var(--petrole);
}
/* ⭐⭐ LA MEME CITATION, MAIS LONGUE. La police de titre ci-dessus est en capitales : elle
   porte tres bien trois mots (« To be announced »), ⛔ et devient illisible sur un paragraphe
   entier. ⚠️ Constate le 05.09.2026 en ouvrant la page demo & playtest : les citations du
   studio y font jusqu'a soixante mots, et elles sortaient toutes en majuscules d'affiche.
   ⭐ Ici on revient a la police de texte, en gardant la couleur qui dit « c'est une citation ». */
.pf-dit-long {
  font-family: var(--texte); font-size: 15px; line-height: 1.6;
  letter-spacing: 0; color: var(--petrole); font-style: italic;
}

.pf-liste { margin: 0; padding-left: 22px; display: flex; flex-direction: column; gap: 10px; }
.pf-liste li { font-size: 14.5px; line-height: 1.65; color: var(--texte-corps); }
.pf-liste li::marker { color: var(--rouille); }

@media (min-width: 768px) {
  /* ⛔ 1060px : une page de lecture ne s'etire pas sur la coque entiere. */
  .page-fixe { max-width: 1060px; width: 100%; margin: 0 auto; }
  .pf-entete { padding: 40px 40px 0; }
  .pf-axes { padding: 44px 40px 0; flex-direction: row; gap: 24px; }
  .pf-axe { flex: 1; }
  .pf-rangee { flex-direction: row; align-items: baseline; gap: 24px; }
  .pf-rangee .etat { flex: 0 0 150px; }
  .pf-rangee .pf-cellule { flex: 1; }
  .pf-rangee-large { align-items: flex-start; gap: 40px; }
  .pf-rangee-large .pf-cellule:first-child { flex: 0 0 240px; }
  .pf-reponse { padding: 30px 32px 26px; }
  .pf-reponse-titre { font-size: 27px; }
}

/* ================================================================================
   L'ACCUEIL — transcrit du gabarit « Home.dc.html » (export du 03.09.2026).
   Un SOMMAIRE dense, pas une plaquette. Mobile d'abord, large a 768px.
   ================================================================================ */

.accueil-hero { padding: 26px 20px 0; display: flex; flex-direction: column; gap: 22px; }
.accueil-titre { font-size: 54px; line-height: .94; letter-spacing: .01em; margin: 0; }
.accueil-titre span { color: var(--petrole); }
.accueil-promesse { margin: 0; font-size: 16px; line-height: 1.6; color: var(--texte-corps); max-width: 52ch; }
.accueil-promesse strong { color: var(--rouille); font-weight: 600; }
.accueil-departs { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.accueil-departs-label {
  font-family: var(--sous-titre); font-weight: 600; font-size: 12.5px;
  letter-spacing: .12em; text-transform: uppercase; color: var(--gris-bleu);
}
.accueil-puce {
  font-size: 13px; color: var(--rail); border: 1px solid rgba(45, 106, 106, .35);
  border-radius: 5px; padding: 6px 11px; min-height: 32px; display: inline-flex; align-items: center;
}
.accueil-puce:hover { border-color: var(--rouille); }
.accueil-hero-image img {
  width: 100%; height: auto; display: block; border-radius: var(--rayon); mix-blend-mode: multiply;
  clip-path: polygon(0 0,100% 0,100% 95%,90% 99%,80% 95%,70% 99%,60% 95%,50% 99%,40% 95%,30% 99%,20% 95%,10% 99%,0 95%);
}

/* --- la bande des principes --- */
.principes { border-top: var(--filet); border-bottom: var(--filet); background: var(--papier-clair); margin-top: 30px; }
.principes-grille { padding: 20px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px 24px; }
.principe { border-left: 2px solid var(--rouille); padding-left: 12px; display: flex; flex-direction: column; gap: 3px; }
.principe-titre {
  font-family: var(--sous-titre); font-weight: 700; font-size: 15px;
  letter-spacing: .1em; text-transform: uppercase; color: var(--ink);
}
.principe-titre a { color: var(--rouille); }
.principe-texte { font-size: 12.5px; color: var(--texte-attenue); line-height: 1.45; }

/* --- le sommaire --- */
.sommaire, .actus { padding: 40px 20px 0; }
.sommaire-tete { display: flex; align-items: baseline; justify-content: space-between; gap: 20px; margin-bottom: 22px; flex-wrap: wrap; }
.titre-section { margin: 0; font-family: var(--titre); font-weight: 400; font-size: 36px; letter-spacing: .02em; color: var(--ink); }
.titre-section-petit { font-size: 30px; }
.lien-majuscule {
  font-family: var(--sous-titre); font-weight: 700; font-size: 13.5px;
  letter-spacing: .09em; text-transform: uppercase; color: var(--rouille);
  display: inline-flex; align-items: center; min-height: 32px;
}
.sommaire-grille { display: grid; grid-template-columns: 1fr; gap: 18px; }

.carte-rubrique {
  background: var(--papier-clair); border: 1px solid rgba(14, 26, 36, .15);
  border-radius: var(--rayon); padding: 20px 20px 16px; display: flex; flex-direction: column; gap: 12px;
}
.carte-rubrique-tete { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.carte-rubrique-numero { font-family: var(--titre); font-size: 26px; color: var(--rouille); line-height: 1; }
.carte-rubrique-titre {
  font-family: var(--sous-titre); font-weight: 700; font-size: 20px;
  letter-spacing: .05em; text-transform: uppercase; color: var(--ink); flex: 1;
}
.carte-rubrique-titre:hover { color: var(--rouille); }
.carte-rubrique-compte { font-size: 11.5px; color: var(--gris-bleu); white-space: nowrap; }
.carte-rubrique-image { border-radius: 6px; overflow: hidden; border: 1px solid rgba(14, 26, 36, .1); height: 96px; }
.carte-rubrique-image img { width: 100%; height: 100%; object-fit: cover; display: block; }
.carte-rubrique-intro { margin: 0; font-size: 13.5px; line-height: 1.55; color: #3B4A52; }
.carte-rubrique-liste { display: flex; flex-direction: column; border-top: 1px solid rgba(14, 26, 36, .1); }
.carte-rubrique-liste a {
  display: flex; align-items: center; justify-content: space-between; gap: 10px;
  padding: 9px 2px; min-height: 40px; border-bottom: 1px solid rgba(14, 26, 36, .08);
  font-size: 14px; color: var(--ink);
}
.carte-rubrique-liste a:hover { color: var(--rouille); }
.fleche-sable { color: var(--sable); }
.fleche-orange { color: var(--rouille); }
.carte-rubrique-tout {
  font-family: var(--sous-titre); font-weight: 700; font-size: 13.5px;
  letter-spacing: .09em; text-transform: uppercase; color: var(--rouille); margin-top: 2px;
  min-height: 32px; display: inline-flex; align-items: center;
}

/* --- la date de sortie : sobre, jamais un compte a rebours --- */
.sortie { padding: 34px 20px 0; }
.sortie-bloc {
  background: var(--petrole); border-radius: var(--rayon-grand); padding: 26px 22px;
  display: flex; flex-direction: column; gap: 18px;
}
.sortie-texte { display: flex; flex-direction: column; gap: 9px; max-width: 66ch; }
.sortie-label {
  font-family: var(--sous-titre); font-weight: 700; font-size: 14px;
  letter-spacing: .16em; text-transform: uppercase; color: var(--sable);
}
.sortie-titre { margin: 0; font-family: var(--titre); font-weight: 400; font-size: 30px; letter-spacing: .02em; color: var(--papier-clair); line-height: 1.05; }
.sortie-corps { margin: 0; font-size: 14.5px; line-height: 1.6; color: var(--petrole-texte); }
.sortie-releve { font-size: 12.5px; color: var(--gris-bleu); }
.bouton-orange {
  align-self: flex-start; flex-shrink: 0; background: var(--rouille); color: var(--papier-clair);
  font-family: var(--sous-titre); font-weight: 700; font-size: 15.5px; letter-spacing: .08em;
  text-transform: uppercase; padding: 13px 22px; border-radius: 6px; min-height: 44px;
  display: inline-flex; align-items: center;
}
.bouton-orange:hover { background: var(--ink); color: var(--papier-clair); }

/* --- les actualites, en bas --- */
.actus { padding-bottom: 48px; }
.actus-grille { display: grid; grid-template-columns: 1fr; gap: 16px; }
.carte-actu {
  display: flex; flex-direction: column; gap: 10px; color: var(--ink);
  background: var(--papier-clair); border: 1px solid rgba(14, 26, 36, .15);
  border-radius: var(--rayon); padding: 18px;
}
.carte-actu:hover { border-color: var(--rouille); color: var(--ink); }
.carte-actu-meta { display: flex; align-items: center; gap: 10px; }
.carte-actu-date { font-family: var(--sous-titre); font-weight: 700; font-size: 13.5px; letter-spacing: .06em; color: var(--rouille); }
.carte-actu-type {
  font-family: var(--sous-titre); font-weight: 600; font-size: 12px; letter-spacing: .1em;
  text-transform: uppercase; color: var(--gris-bleu);
}
.carte-actu-titre { font-family: var(--sous-titre); font-weight: 700; font-size: 18.5px; line-height: 1.2; letter-spacing: .02em; }
.carte-actu-source { font-size: 13px; line-height: 1.5; color: var(--texte-attenue); }

/* ================================================================================
   L'INDEX DE RUBRIQUE — transcrit de « Rubric Index v2.dc.html ».
   Colonne sombre de contexte, puis liste dense. Sert aussi au fil d'actualites.
   ================================================================================ */

.rubrique { display: flex; flex-direction: column; }
.rubrique-cote { background: var(--petrole); color: var(--papier-clair); padding: 22px 20px 26px; display: flex; flex-direction: column; gap: 12px; }
.ariane-sombre { color: var(--petrole-texte); }
.ariane-sombre a { color: var(--petrole-texte); }
.rubrique-titre { margin: 0; font-family: var(--titre); font-weight: 400; font-size: 56px; line-height: .92; color: var(--papier-clair); }
.rubrique-compte { font-family: var(--sous-titre); font-weight: 600; font-size: 16px; letter-spacing: .04em; color: var(--rouille); }
.rubrique-intro { margin: 0; font-size: 15px; line-height: 1.55; color: var(--petrole-texte); max-width: 40ch; }
.rubrique-image { width: 100%; height: 150px; object-fit: cover; border-radius: 6px; display: block; margin-top: 6px; }
.rubrique-rapides {
  margin-top: 10px; border: 1px solid rgba(250, 247, 240, .18); border-radius: var(--rayon);
  padding: 14px 16px; display: flex; flex-direction: column; gap: 4px;
}
.rubrique-rapides-titre {
  font-family: var(--sous-titre); font-weight: 700; font-size: 13px; letter-spacing: .16em;
  text-transform: uppercase; color: var(--sable); padding-bottom: 6px;
  border-bottom: 1px solid rgba(250, 247, 240, .15); margin-bottom: 4px;
}
.rubrique-rapides a {
  display: flex; justify-content: space-between; align-items: center; gap: 10px;
  min-height: 40px; font-size: 14px; color: var(--papier-clair);
}
.rubrique-rapides a:hover { color: var(--rouille); }
.rubrique-rapides-note { margin: 0; font-size: 13px; line-height: 1.5; color: var(--petrole-texte); }

.rubrique-corps { padding: 26px 20px 30px; display: flex; flex-direction: column; gap: 16px; }
.rubrique-corps-tete { display: flex; align-items: center; justify-content: space-between; gap: 14px; flex-wrap: wrap; }
.rubrique-corps-titre { margin: 0; font-family: var(--titre); font-weight: 400; font-size: 30px; letter-spacing: .02em; color: var(--ink); }
.rubrique-pastille {
  font-family: var(--sous-titre); font-weight: 600; font-size: 12.5px; letter-spacing: .06em;
  text-transform: uppercase; color: var(--petrole); border: var(--filet); border-radius: 6px; padding: 6px 12px;
  background: var(--papier-clair);
}

.rubrique-liste { display: grid; grid-template-columns: 1fr; border: var(--filet); border-radius: var(--rayon); overflow: hidden; background: var(--papier-clair); }
.rubrique-ligne {
  display: grid; grid-template-columns: 44px 32px 1fr 24px; align-items: center; gap: 12px;
  padding: 14px 16px; border-bottom: var(--filet); color: var(--ink); min-height: 72px;
}
.rubrique-ligne:last-child { border-bottom: none; }
.rubrique-ligne:hover { background: var(--papier); color: var(--ink); }
.rubrique-ligne-icone {
  width: 44px; height: 44px; border: 1px solid rgba(45, 106, 106, .35); border-radius: 6px;
  display: flex; align-items: center; justify-content: center; color: var(--rail);
}
.rubrique-ligne-numero { font-family: var(--sous-titre); font-weight: 700; font-size: 14px; color: var(--rouille); }
.rubrique-ligne-texte { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.rubrique-ligne-titre { font-family: var(--sous-titre); font-weight: 700; font-size: 16px; letter-spacing: .05em; text-transform: uppercase; }
.rubrique-ligne-desc { font-size: 13.5px; line-height: 1.45; color: var(--texte-attenue); }
.rubrique-ligne-fleche { font-size: 18px; }
.rubrique-pied {
  display: flex; align-items: center; justify-content: space-between; gap: 14px; flex-wrap: wrap;
  border: var(--filet); border-radius: var(--rayon); background: var(--papier-clair);
  padding: 12px 16px; font-size: 13px; color: var(--texte-attenue);
}

/* --- le fil d'actualites : un vrai rail vertical --- */
.chrono { list-style: none; margin: 0; padding: 0 0 0 14px; border-left: 2px solid var(--rouille); display: flex; flex-direction: column; gap: 22px; }
.chrono-ligne { position: relative; display: flex; flex-direction: column; gap: 6px; }
.chrono-ligne::before {
  content: ""; position: absolute; left: -21px; top: 6px; width: 10px; height: 10px;
  border-radius: 50%; border: 2px solid var(--rouille); background: var(--papier);
}
.chrono-date { font-family: var(--sous-titre); font-weight: 700; font-size: 16px; letter-spacing: .03em; color: var(--ink); }
.chrono-corps { display: flex; flex-direction: column; gap: 5px; }
.chrono-type { font-family: var(--sous-titre); font-weight: 600; font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: var(--rouille); }
.chrono-titre { font-family: var(--sous-titre); font-weight: 700; font-size: 18px; line-height: 1.25; color: var(--ink); }
.chrono-titre:hover { color: var(--rouille); }
.chrono-note { font-size: 13px; color: var(--texte-attenue); }

/* ================================ ecran large ================================ */
@media (min-width: 768px) {
  .accueil-hero { display: grid; grid-template-columns: 1.05fr .95fr; gap: 56px; padding: 56px 40px 48px; align-items: center; }
  .accueil-hero-texte { display: flex; flex-direction: column; gap: 22px; }
  .accueil-titre { font-size: 88px; }
  .accueil-promesse { font-size: 17px; }
  .principes { margin-top: 0; }
  .principes-grille { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 36px; padding: 22px 40px; }
  .sommaire, .actus { padding: 56px 40px 20px; }
  .actus { padding-bottom: 64px; }
  .titre-section { font-size: 46px; }
  .titre-section-petit { font-size: 38px; }
  .sommaire-grille { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 26px; }
  .carte-rubrique { padding: 24px 24px 20px; }
  .sortie { padding: 44px 40px; }
  .sortie-bloc { flex-direction: row; align-items: center; justify-content: space-between; gap: 40px; padding: 36px 44px; }
  .sortie-titre { font-size: 40px; }
  .actus-grille { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 26px; }

  /* ⛔⛔ `minmax(0, 1fr)` ET PAS `1fr` — c'est la difference entre une page qui tient et une
     page qui defile lateralement. Une colonne `1fr` refuse de descendre sous la largeur
     MINIMALE de son contenu : la grille grossit alors au-dela de la fenetre, sans qu'aucun
     element ne soit lui-meme trop large, donc sans que rien ne le signale.
     ⚠️ Mesure du 05.09.2026 : a 768 px exactement — la largeur ou cette regle s'enclenche —
     l'index de rubrique debordait de 6 pixels. Une seule page sur les six, une seule largeur
     sur les huit : ⛔ personne ne l'aurait vu a l'oeil.
     ⭐ La commande qui l'a trouve, et qui le retrouvera : scripts/verifier-ecran-etroit.mjs */
  .rubrique { display: grid; grid-template-columns: 340px minmax(0, 1fr); min-height: 60vh; }
  .rubrique-cote { padding: 32px 30px 40px; gap: 14px; }
  .rubrique-titre { font-size: 64px; }
  .rubrique-image { height: 220px; margin-top: 10px; }
  .rubrique-corps { padding: 36px 40px 40px; }
  .rubrique-corps-titre { font-size: 34px; }
  .rubrique-liste { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rubrique-ligne:nth-child(odd) { border-right: var(--filet); }
  .rubrique-ligne:nth-last-child(-n+2) { border-bottom: none; }
  .chrono { padding-left: 22px; gap: 26px; }
  .chrono-ligne { flex-direction: row; gap: 28px; }
  .chrono-ligne::before { left: -29px; }
  .chrono-date { flex: 0 0 170px; }
}
@media (min-width: 1280px) {
  .rubrique { grid-template-columns: 380px 1fr; }
  .rubrique-liste { max-width: 1100px; }
}

/* ⭐ Les emplacements reserves (kit 05, integrer) : prevus des la conception, vides au jour 1.
   `hidden` les retire du rendu ; le jour ou ils servent, on retire l'attribut, pas le gabarit. */
.emplacement-reserve[hidden] { display: none; }
.emplacement-reserve { margin: 18px 0; }
