:root{
--papier:#faf8f4;--papier-creux:#f3efe7;--encre:#14171c;--doux:#5d6470;
--trait:#e0dace;--trait-fort:#cfc7b6;
--accent:#1f4d42;--accent-vif:#2b6d5d;--accent-voile:#eaf1ee;
--brique:#8c3223;--brique-voile:#f9ebe8;
--ocre:#7d6216;--ocre-voile:#faf3e0;
--serif:Georgia,"Iowan Old Style","Palatino Linotype","Book Antiqua","Times New Roman",serif;
--sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
--chiffre:ui-monospace,"SF Mono","Cascadia Mono","Segoe UI Mono",Consolas,monospace;
--mesure:66rem;--lecture:40rem}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
--papier:#121418;--papier-creux:#1a1d22;--encre:#e9e6e0;--doux:#9aa0ab;
--trait:#2b2f36;--trait-fort:#3c414a;
--accent:#7bb9a7;--accent-vif:#96cebd;--accent-voile:#182521;
--brique:#e0917f;--brique-voile:#271a17;
--ocre:#d4b464;--ocre-voile:#241f13}}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--papier);color:var(--encre);
font:400 17px/1.65 var(--serif);text-rendering:optimizeLegibility}
a{color:var(--accent);text-underline-offset:2px;text-decoration-thickness:1px}
a:hover{color:var(--accent-vif)}

/* ---- en-tête ---------------------------------------------------------- */
.bandeau{height:3px;background:var(--accent)}
header.site{border-bottom:1px solid var(--trait);background:var(--papier);
padding:16px 24px;display:flex;gap:20px;align-items:baseline;flex-wrap:wrap;
font-family:var(--sans)}
header.site .marque{font-family:var(--serif);font-size:17px;font-weight:700;
letter-spacing:-.01em;text-decoration:none;color:var(--encre);line-height:1.25}
header.site nav{display:flex;gap:18px}
header.site nav a{color:var(--doux);text-decoration:none;font-size:14px}
header.site nav a:hover{color:var(--accent)}
header.site .langues{margin-left:auto;font-size:13px;display:flex;gap:4px;
align-items:center}
header.site .langues a{color:var(--doux);text-decoration:none;padding:3px 9px;
border:1px solid transparent;border-radius:3px}
header.site .langues a:hover{color:var(--accent);border-color:var(--trait)}
header.site .langues a[aria-current]{color:var(--encre);font-weight:600;
background:var(--papier-creux);border-color:var(--trait)}

/* La mesure de lecture borne le TEXTE, jamais la mise en page : une grille de
   27 juridictions enfermée dans 44rem devient une colonne interminable, alors
   qu'une phrase qui court sur 66rem ne se lit plus. Les deux contraintes sont
   distinctes, et elles doivent le rester. */
main{padding:30px 24px 56px;max-width:var(--mesure);margin:0 auto}
.chapeau,.statut p,.statut .attestation,.vide,.accroche .intro{max-width:var(--lecture)}
h1{max-width:30ch}
dl.champs,.source{max-width:54rem}
ul.liste{max-width:58rem}

/* ---- fil d'Ariane ------------------------------------------------------ */
.fil{font-family:var(--sans);font-size:13px;color:var(--doux);margin:0 0 18px;
display:flex;gap:7px;flex-wrap:wrap;align-items:baseline}
.fil a{color:var(--doux);text-decoration:none}
.fil a:hover{color:var(--accent);text-decoration:underline}
.fil span[aria-hidden]{color:var(--trait-fort)}

/* ---- titres ------------------------------------------------------------ */
h1{font-size:31px;line-height:1.24;margin:0 0 8px;font-weight:700;
letter-spacing:-.012em}
h2{font-family:var(--sans);font-size:12px;font-weight:700;letter-spacing:.1em;
text-transform:uppercase;color:var(--doux);margin:40px 0 14px;
padding-bottom:7px;border-bottom:1px solid var(--trait)}
h3{font-size:19px;margin:28px 0 8px;font-weight:700}
.chapeau{color:var(--doux);margin:0 0 24px;font-size:16px;font-style:italic}
.surtitre{font-family:var(--sans);font-size:12px;font-weight:600;
letter-spacing:.09em;text-transform:uppercase;color:var(--accent);margin:0 0 10px}

/* ---- statut : le bloc qui porte la réserve ----------------------------- */
.statut{margin:26px 0 30px;padding:16px 20px;border:1px solid var(--trait);
border-left:4px solid var(--doux);background:var(--papier-creux);border-radius:2px}
.statut .etiquette{display:inline-block;font-family:var(--sans);font-size:11px;
font-weight:700;letter-spacing:.1em;text-transform:uppercase;
padding:3px 9px;border-radius:2px;margin-bottom:9px;
background:var(--doux);color:var(--papier)}
.statut p{margin:0;font-size:16px;line-height:1.6}
.statut .attestation{margin-top:10px;font-size:14px;color:var(--doux);
font-family:var(--sans)}
.statut.terminal{border-left-color:var(--brique);background:var(--brique-voile)}
.statut.terminal .etiquette{background:var(--brique)}
.statut.indetermine{border-left-color:var(--ocre);background:var(--ocre-voile)}
.statut.indetermine .etiquette{background:var(--ocre)}
.statut.altere{border-left-color:var(--accent);background:var(--accent-voile)}
.statut.altere .etiquette{background:var(--accent)}

/* ---- champs ------------------------------------------------------------ */
dl.champs{display:grid;grid-template-columns:13rem 1fr;gap:0;margin:0;
border-top:1px solid var(--trait);font-size:16px}
dl.champs dt{font-family:var(--sans);font-size:12px;font-weight:600;
letter-spacing:.07em;text-transform:uppercase;color:var(--doux);
padding:12px 18px 12px 0;border-bottom:1px solid var(--trait)}
dl.champs dd{margin:0;padding:12px 0;border-bottom:1px solid var(--trait);
overflow-wrap:anywhere}
dl.champs dd.numero{font-family:var(--chiffre);font-size:15px}

/* ---- listes ------------------------------------------------------------ */
ul.liste{list-style:none;padding:0;margin:0}
ul.liste li{padding:13px 0;border-bottom:1px solid var(--trait)}
ul.liste li:last-child{border-bottom:none}
ul.liste a{text-decoration:none;font-weight:600}
ul.liste a:hover{text-decoration:underline}
ul.liste .meta{display:block;font-family:var(--sans);font-size:13px;
color:var(--doux);margin-top:4px;letter-spacing:.01em}
.vide{color:var(--doux);font-style:italic;margin:10px 0;font-size:15px}

/* ---- grilles de navigation --------------------------------------------- */
.grille{display:grid;grid-template-columns:repeat(auto-fill,minmax(16rem,1fr));
gap:12px;margin:4px 0}
.grille a,.grille .carte-sans-page{display:block;padding:14px 16px;
border:1px solid var(--trait);border-radius:3px;text-decoration:none;
color:var(--encre);font-weight:600;font-size:16px;line-height:1.35}
.grille a:hover{border-color:var(--accent);background:var(--accent-voile)}
.grille .carte-sans-page{border-style:dashed;color:var(--doux);font-weight:400}
.grille .compte{display:block;font-family:var(--sans);font-size:12px;
font-weight:400;color:var(--doux);margin-top:5px;letter-spacing:.04em}

/* ---- chiffres de l'accueil ---------------------------------------------- */
.chiffres{display:grid;grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));
gap:2px;margin:8px 0 6px;background:var(--trait);border:1px solid var(--trait)}
.chiffres div{background:var(--papier);padding:16px 18px}
.chiffres b{display:block;font-family:var(--chiffre);font-size:29px;
font-weight:600;line-height:1.1;color:var(--accent);letter-spacing:-.02em}
.chiffres span{display:block;font-family:var(--sans);font-size:12px;
color:var(--doux);margin-top:6px;letter-spacing:.04em}

/* ---- accroche de l'accueil ---------------------------------------------- */
.accroche{border-bottom:1px solid var(--trait);padding-bottom:26px;
margin-bottom:8px}
.accroche h1{font-size:36px;max-width:26ch}
.accroche .intro{font-size:18px;line-height:1.6;color:var(--encre);margin:14px 0 0}

/* ---- source officielle --------------------------------------------------- */
.source{border:1px solid var(--trait);border-radius:3px;padding:14px 18px;
background:var(--papier-creux)}
.source a{font-weight:600;text-decoration:none;font-family:var(--sans);
font-size:15px}
.source a:hover{text-decoration:underline}
.source .adresse{display:block;font-family:var(--chiffre);font-size:12px;
color:var(--doux);margin-top:7px;overflow-wrap:anywhere}

/* ---- pied ---------------------------------------------------------------- */
footer{border-top:1px solid var(--trait);margin-top:52px;padding:24px;
font-family:var(--sans);font-size:13px;line-height:1.6;color:var(--doux)}
footer .dedans{max-width:var(--mesure);margin:0 auto}
footer p{margin:0 0 8px}
footer p:last-child{margin-bottom:0}
footer .arrete{color:var(--encre);font-weight:600}
footer nav.pied{margin-top:14px;display:flex;flex-wrap:wrap;gap:6px 18px}
footer nav.pied a{color:var(--doux);text-decoration:none;border-bottom:1px solid var(--trait)}
footer nav.pied a:hover{color:var(--encre)}

/* ---- accès clavier -------------------------------------------------------
   Le lien d'évitement est hors écran tant qu'il n'a pas le focus. Il n'est pas
   masqué par display:none, qui le retirerait aussi de l'ordre de tabulation et
   le rendrait donc inatteignable — ce qui annulerait son objet. */
.evitement{position:absolute;left:-9999px;top:0;z-index:10;
background:var(--accent);color:var(--papier);padding:10px 16px;
font-family:var(--sans);font-size:14px;text-decoration:none;border-radius:0 0 3px 0}
.evitement:focus{left:0}

/* Texte destiné aux seuls lecteurs d'écran. */
.pour-lecteur{position:absolute;width:1px;height:1px;padding:0;margin:-1px;
overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* ---- pages de texte suivi (à propos, mentions, introuvable) --------------- */
.suivi{max-width:var(--lecture)}
.suivi h2{margin-top:32px}
.suivi p{margin:0 0 14px}
.suivi ul{padding-left:20px}
.suivi li{margin-bottom:7px}

@media (max-width:640px){
body{font-size:16px}
main{padding:22px 18px 40px}
h1{font-size:26px}
.accroche h1{font-size:29px}
dl.champs{grid-template-columns:1fr}
dl.champs dt{padding-bottom:0;border-bottom:none}
dl.champs dd{padding-top:4px}
header.site{padding:13px 18px;gap:12px}
}

/* ---- impression ---------------------------------------------------------
   Ce lecteur imprime, ou produit un PDF pour l'annexer à une note. Il doit
   obtenir un document : sans navigation, sans sélecteur de langue, et avec
   l'adresse de la source en toutes lettres plutôt qu'un lien mort sur papier. */
@media print{
:root{--papier:#fff;--papier-creux:#fff;--encre:#000;--doux:#444;--trait:#bbb}
body{font-size:11pt}
.bandeau,header.site nav,header.site .langues,.fil{display:none}
header.site{border-bottom:1px solid #000;padding:0 0 8pt;margin-bottom:14pt}
main{max-width:none;padding:0}
h1{font-size:18pt}
h2{margin-top:18pt}
a{color:#000;text-decoration:none}
.statut{border:1px solid #000;border-left-width:3pt;background:none}
.statut .etiquette{background:none;color:#000;border:1px solid #000}
.source a::after{content:" — " attr(href);font-family:var(--chiffre);
font-size:9pt;word-break:break-all}
.source .adresse{display:none}
.grille,.chiffres{break-inside:avoid}
ul.liste li{break-inside:avoid}
footer{border-top:1px solid #000;margin-top:20pt}
footer nav.pied,.evitement{display:none}
}
