/* ═══════════════════════════════════════════════════════════════════════════
   Soliman al-Halabi — Abounaddara / CNRS
   Feuille commune aux pages juridiques : mentions légales, données
   personnelles, accessibilité, et la page 404.

   POURQUOI UNE FEUILLE SÉPARÉE, ALORS QUE L'ACCUEIL PORTE LA SIENNE EN LIGNE
   L'accueil est UNE page : y écrire le style dans le document épargne une
   requête et fait tenir la première peinture en un aller-retour. Les pages
   juridiques sont QUATRE, elles partagent tout, et on les relit d'un texte à
   l'autre : un fichier commun se met en cache une fois et sert aux trois
   suivantes. La règle de cache correspondante est dans netlify.toml.

   ⚠️ ELLES SONT LUES, PAS REGARDÉES. L'accueil est une composition tenue dans
   une fenêtre ; ici, on cherche un alinéa, on l'imprime, on l'agrandit à
   200 %. D'où trois partis pris qui ne sont pas ceux de l'accueil :
     · aucune hauteur en `vh` — le texte commande la hauteur, jamais l'écran ;
     · une mesure en `rem`, qui suit la taille de police du navigateur ;
     · une feuille d'impression, en fin de fichier : ces pages se classent.

   ⚠️ CONTRASTES VÉRIFIÉS, ET À VÉRIFIER DE NOUVEAU si l'on retouche une
   couleur. Le seuil du RGAA 4.1 (critère 3.2) est de 4,5:1 pour le texte
   courant. Les valeurs mesurées sur le fond #0a0a0a sont notées en regard de
   chaque teinte : aucune n'est au-dessus par accident.
   ═══════════════════════════════════════════════════════════════════════════ */

/* ═══════════════════════════════════════════════════════════════════════════
   LES POLICES, DÉCLARÉES ICI ET NON DANS UN FICHIER À PART

   ⚠️ CE BLOC RÉPARE UNE PANNE SILENCIEUSE, ET C'EST TOUT SON INTÉRÊT. Ces
   quatre pages ont d'abord appelé `fonts/fonts.css`. Le fichier existait sur
   le disque — mais il n'était pas suivi par git, donc jamais déployé : en
   ligne, il répondait 404. Rien ne cassait pour autant. Les pages restaient
   justes, lisibles, bien composées… dans les polices de secours du système.
   Un défaut qu'on ne voit qu'en comparant deux captures.

   Les faces vivent donc ICI, dans la feuille que les pages chargent déjà.
   Une dépendance de moins, une requête de moins, et plus rien à oublier de
   committer. C'est le chemin qu'a pris l'accueil avant elles, qui porte ses
   propres @font-face dans sa page.

   ⚠️ LES url() SONT RELATIVES À CE FICHIER, qui est à la racine de `site/` :
   `fonts/…` et non `…` tout court, contrairement à ce qu'écrivait
   fonts/fonts.css, qui vivait dans le dossier des polices.

   Aucun appel à un serveur tiers, et c'est délibéré : une requête vers
   fonts.googleapis.com transmettrait l'adresse IP du visiteur hors de l'UE —
   ce que la page « Données personnelles » affirme ne pas faire.
   Licences : voir fonts/LICENCES.txt (SIL Open Font License 1.1).
   ═══════════════════════════════════════════════════════════════════════════ */

@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url(fonts/inter-var-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url(fonts/inter-var-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(fonts/inter-var-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(fonts/inter-var-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(fonts/inter-var-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(fonts/inter-var-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(fonts/inter-var-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(fonts/inter-var-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'Playfair Display';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url(fonts/playfair-display-var-italic-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'Playfair Display';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url(fonts/playfair-display-var-italic-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'Playfair Display';
  font-style: italic;
  font-weight: 700;
  font-display: swap;
  src: url(fonts/playfair-display-var-italic-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'Playfair Display';
  font-style: italic;
  font-weight: 700;
  font-display: swap;
  src: url(fonts/playfair-display-var-italic-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(fonts/playfair-display-var-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(fonts/playfair-display-var-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(fonts/playfair-display-var-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(fonts/playfair-display-var-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root {
  /* Prévient le navigateur que la page est sombre : il accorde ses barres de
     défilement et ses contrôles au lieu de peindre du blanc par-dessus. */
  color-scheme: dark;

  --jr-fond:        #0a0a0a;
  --jr-texte:       rgba(232, 231, 224, 0.88); /* 15,3:1 */
  --jr-fort:        #f4f2ec;                   /* 18,1:1 */
  --jr-sourdine:    #a6a6a0;                   /*  8,2:1 */
  --jr-or:          #e0c074;                   /* 11,2:1 */
  --jr-filet:       rgba(255, 255, 255, 0.12);
  --jr-filet-fort:  rgba(255, 255, 255, 0.22);
  --jr-focus:       rgba(255, 210, 80, 0.95);

  /* La mesure : environ 70 signes par ligne à la taille de base. Au-delà,
     l'œil perd la ligne suivante en revenant à la marge (RGAA 10.x). */
  --jr-mesure: 42rem;
}

* { box-sizing: border-box; }

html {
  /* Le défilement doux est ACCORDÉ AU RÉGLAGE SYSTÈME (voir plus bas) : ici,
     seule l'ancre du sommaire s'en sert. */
  scroll-behavior: smooth;
}

body {
  margin: 0;
  /* Un halo très bas derrière l'en-tête, puis le noir : c'est le dégradé de
     l'accueil, mis à plat pour une page qui défile. */
  background-color: var(--jr-fond);
  background-image: radial-gradient(120% 45% at 50% 0%,
                    rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0) 72%);
  background-repeat: no-repeat;
  color: var(--jr-texte);
  font-family: 'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif;
  font-size: 1rem;
  font-weight: 300;
  line-height: 1.75;
  letter-spacing: 0.012em;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-wrap: pretty;
}

/* ── L'évitement, premier élément focalisable de la page ─────────────────
   ⚠️ IL DOIT RESTER LE PREMIER. Sa raison d'être est d'offrir, dès la
   première tabulation, le saut par-dessus l'en-tête : placé plus bas, il
   arrive après ce qu'il permet d'éviter. */
.jr-evite {
  position: absolute;
  top: -100px;
  left: 1rem;
  z-index: 10;
  padding: 0.75rem 1.1rem;
  background: #fff;
  color: #000;
  font-size: 0.9rem;
  letter-spacing: 0.02em;
  text-decoration: none;
  border: 2px solid #000;
  transition: top 0.2s ease;
}

.jr-evite:focus { top: 1rem; }

/* ── Gouttière commune ──────────────────────────────────────────────────── */
.jr-bande {
  width: min(100% - 2.5rem, var(--jr-mesure));
  margin-inline: auto;
}

/* ── En-tête ────────────────────────────────────────────────────────────── */
.jr-entete {
  padding-block: clamp(1.5rem, 5vh, 3rem) clamp(1rem, 3vh, 1.8rem);
  border-bottom: 1px solid var(--jr-filet);
}

.jr-retour {
  display: inline-flex;
  align-items: center;
  gap: 0.6em;
  min-height: 24px;
  color: var(--jr-sourdine);
  font-size: 0.78rem;
  font-weight: 300;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  text-decoration: none;
  border-bottom: 1px solid transparent;
  transition: color 0.35s ease, border-color 0.35s ease;
}

.jr-retour:hover {
  color: var(--jr-fort);
  border-bottom-color: var(--jr-filet-fort);
}

.jr-retour__fleche {
  display: inline-block;
  transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1);
}

.jr-retour:hover .jr-retour__fleche { transform: translateX(-4px); }

.jr-surtitre {
  margin: 0.9rem 0 0;
  color: #8f8f89; /* 5,9:1 — même teinte que le surtitre de l'accueil */
  font-size: 0.68rem;
  letter-spacing: 0.42em;
  text-transform: uppercase;
}

/* ── Corps ──────────────────────────────────────────────────────────────── */
.jr-main {
  padding-block: clamp(2rem, 7vh, 3.5rem) clamp(3rem, 9vh, 5rem);
}

h1 {
  margin: 0 0 1.2rem;
  color: #fff;
  font-family: 'Playfair Display', Georgia, serif;
  font-size: clamp(1.9rem, 5.5vw, 3rem);
  font-weight: 400;
  line-height: 1.15;
  letter-spacing: -0.018em;
}

h2 {
  margin: 3rem 0 0.9rem;
  padding-top: 1.6rem;
  border-top: 1px solid var(--jr-filet);
  color: rgba(255, 255, 255, 0.95);
  font-family: 'Playfair Display', Georgia, serif;
  font-size: clamp(1.2rem, 3.2vw, 1.5rem);
  font-weight: 400;
  line-height: 1.3;
  letter-spacing: -0.005em;
}

h3 {
  margin: 2rem 0 0.6rem;
  color: var(--jr-fort);
  font-family: 'Inter', sans-serif;
  font-size: 0.98rem;
  font-weight: 500;
  letter-spacing: 0.01em;
}

p, ul, ol { margin: 0 0 1.1rem; }

ul, ol { padding-left: 1.4rem; }

li { margin-bottom: 0.45rem; }

li::marker { color: var(--jr-sourdine); }

strong { color: var(--jr-fort); font-weight: 500; }

em { font-style: italic; }

abbr[title] {
  text-decoration: underline dotted;
  text-underline-offset: 0.2em;
  cursor: help;
}

code {
  padding: 0.1em 0.35em;
  border: 1px solid var(--jr-filet);
  border-radius: 2px;
  background: rgba(255, 255, 255, 0.04);
  font-family: ui-monospace, 'SFMono-Regular', Consolas, monospace;
  font-size: 0.88em;
}

/* ── Réservé aux lecteurs d'écran ────────────────────────────────────────
   ⚠️ NI `display: none` NI `visibility: hidden` : l'un et l'autre retirent le
   texte de l'arbre d'accessibilité, c'est-à-dire exactement le contraire du
   but. Le texte reste rendu, et découpé à un pixel.
   Il sert ici à une chose : prévenir qu'un lien s'ouvre dans une nouvelle
   fenêtre, ce que rien n'annonce autrement (RGAA 13.x / WCAG 3.2.5). */
.jr-sr {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  border: 0;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}

/* Le chapeau : une seule phrase, un ton au-dessus du corps. */
.jr-chapeau {
  color: var(--jr-fort);
  font-size: 1.08rem;
  line-height: 1.7;
}

/* ── Liens ──────────────────────────────────────────────────────────────
   ⚠️ LE SOULIGNEMENT N'EST PAS DÉCORATIF : le critère RGAA 10.6 demande
   qu'un lien dans le texte se distingue AUTREMENT QUE PAR LA COULEUR. */
a {
  color: var(--jr-fort);
  text-decoration: none;
  border-bottom: 1px solid rgba(210, 175, 90, 0.55);
  padding-bottom: 1px;
  transition: color 0.3s ease, border-color 0.3s ease;
}

a:hover {
  color: var(--jr-or);
  border-bottom-color: var(--jr-or);
}

/* Un seul et même anneau de focus sur tout le site — c'est celui de
   l'accueil. `:focus-visible` ne le montre qu'au clavier. */
a:focus-visible,
.jr-evite:focus-visible,
[tabindex]:focus-visible {
  outline: 2px solid var(--jr-focus);
  outline-offset: 3px;
  border-radius: 2px;
}

/* ── Sommaire ───────────────────────────────────────────────────────────── */
.jr-sommaire {
  margin: 2rem 0 0;
  padding: 1.3rem 1.5rem;
  border: 1px solid var(--jr-filet);
  background: rgba(255, 255, 255, 0.02);
}

.jr-sommaire h2 {
  margin: 0 0 0.7rem;
  padding: 0;
  border: 0;
  font-family: 'Inter', sans-serif;
  font-size: 0.7rem;
  font-weight: 400;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--jr-sourdine);
}

.jr-sommaire ol {
  margin: 0;
  padding: 0;
  list-style: none;
  counter-reset: jr-som;
}

.jr-sommaire li {
  margin: 0;
  counter-increment: jr-som;
}

.jr-sommaire a {
  display: inline-flex;
  gap: 0.7em;
  min-height: 28px;
  align-items: baseline;
  padding: 0.22rem 0;
  border-bottom-color: transparent;
  font-size: 0.94rem;
}

.jr-sommaire a::before {
  content: counter(jr-som, decimal-leading-zero);
  color: var(--jr-sourdine);
  font-size: 0.72rem;
  font-variant-numeric: tabular-nums;
}

.jr-sommaire a:hover { border-bottom-color: var(--jr-or); }

/* ── Adresses et blocs signalés ─────────────────────────────────────────── */
address {
  margin: 0 0 1.1rem;
  padding-left: 1.1rem;
  border-left: 1px solid var(--jr-filet-fort);
  font-style: normal;
  line-height: 1.7;
}

.jr-chiffres { font-variant-numeric: tabular-nums; }

/* Un encadré d'avertissement, pour ce qui doit être relu avant une mise en
   ligne future (ajout d'un traceur, d'une vidéo, d'un formulaire…). */
.jr-note {
  margin: 1.4rem 0;
  padding: 1.1rem 1.3rem;
  border-left: 3px solid var(--jr-or);
  background: rgba(224, 192, 116, 0.06);
}

.jr-note :last-child { margin-bottom: 0; }

/* L'état de conformité, dans la forme imposée par le décret n° 2019-768. */
.jr-etat {
  display: inline-block;
  margin: 0 0 1.2rem;
  padding: 0.5rem 1rem;
  border: 1px solid var(--jr-filet-fort);
  border-radius: 50px;
  color: var(--jr-fort);
  font-size: 0.78rem;
  font-weight: 400;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

.jr-maj {
  margin-top: 3rem;
  padding-top: 1.4rem;
  border-top: 1px solid var(--jr-filet);
  color: var(--jr-sourdine);
  font-size: 0.85rem;
}

/* ── Pied de page ───────────────────────────────────────────────────────── */
.jr-pied {
  padding-block: clamp(1.5rem, 4vh, 2.2rem) clamp(2rem, 6vh, 3rem);
  border-top: 1px solid var(--jr-filet);
}

/* ⚠️ MÊME INTERLETTRAGE QUE L'ACCUEIL (0.2em), et pour une raison qui ne se
   voit qu'en passant d'une page à l'autre : c'est LA MÊME LIGNE, aux mêmes
   mots, et elle doit se lire de la même façon partout. Serrée à 0.16em ici,
   elle paraissait plus grosse et plus proche que sur la page d'accueil, et le
   passage d'un document à l'autre donnait l'impression d'un autre site. */
.jr-pied__nav {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0 0.6rem;
  margin-bottom: 1rem;
  font-size: 0.66rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}

/* ⚠️ 24 px de haut au minimum : c'est la cible tactile du critère WCAG 2.5.8,
   et un texte de 0,68 rem n'y arrive pas tout seul. */
.jr-pied__lien {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 0.2rem 0.1rem;
  color: var(--jr-sourdine);
  border-bottom-color: transparent;
}

.jr-pied__lien:hover {
  color: var(--jr-fort);
  border-bottom-color: var(--jr-filet-fort);
}

/* La page courante est signalée, et pas seulement à l'œil : `aria-current`
   est lu par les lecteurs d'écran (RGAA 12.2). */
.jr-pied__lien[aria-current="page"] {
  color: var(--jr-fort);
  border-bottom-color: var(--jr-or);
}

.jr-pied__sep {
  color: var(--jr-filet-fort);
  -webkit-user-select: none;
          user-select: none;
}

.jr-pied__signature {
  margin: 0;
  color: #8f8f89;
  font-size: 0.68rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

/* ── Réglages système ───────────────────────────────────────────────────── */

/* Le seul mouvement de ces pages est le défilement de l'ancre du sommaire et
   les transitions de survol. On les coupe toutes, sans exception. */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }

  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

/* Contraste renforcé : on retire les demi-teintes. */
@media (prefers-contrast: more) {
  :root {
    --jr-texte:      #fff;
    --jr-sourdine:   #d6d6d0;
    --jr-filet:      rgba(255, 255, 255, 0.35);
    --jr-filet-fort: rgba(255, 255, 255, 0.6);
  }

  a { border-bottom-color: currentColor; }
}

@media (max-width: 480px) {
  body { font-size: 0.97rem; }
  .jr-bande { width: calc(100% - 2rem); }
  .jr-sommaire { padding: 1.1rem 1.2rem; }
}

/* ── Impression ─────────────────────────────────────────────────────────
   Ces pages se classent : un contrat, un signalement, une demande RGPD. On
   les rend donc lisibles sur papier — noir sur blanc, sans le décor, et avec
   les adresses des liens ÉCRITES EN TOUTES LETTRES, puisqu'on ne clique pas
   sur du papier. */
@media print {
  :root { color-scheme: light; }

  body {
    background: #fff;
    color: #000;
    font-size: 11pt;
    line-height: 1.5;
  }

  .jr-evite,
  .jr-retour,
  .jr-sommaire,
  .jr-pied__nav { display: none; }

  .jr-bande { width: auto; max-width: none; }

  h1, h2, h3 { color: #000; }
  h2 { page-break-after: avoid; border-top: 1px solid #999; }
  p, li, address { page-break-inside: avoid; }

  a { color: #000; border-bottom: 0; text-decoration: underline; }

  /* L'adresse, en clair, après le lien — sauf pour les ancres internes. */
  a[href^="http"]::after {
    content: " (" attr(href) ")";
    font-size: 9pt;
    word-break: break-all;
  }

  .jr-note, .jr-etat, address {
    border-color: #999;
    background: none;
  }

  .jr-surtitre, .jr-maj, .jr-pied__signature { color: #333; }
}
