/* prisons.fr — design D « Repère » : la clarté de A (Atkinson, vert d'action), la chaleur de B (bloc bleu nuit, tuiles) */
@font-face{font-family:'Atkinson Hyperlegible';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/atkinson-400.woff2) format('woff2')}
@font-face{font-family:'Atkinson Hyperlegible';font-style:normal;font-weight:700;font-display:swap;src:url(fonts/atkinson-700.woff2) format('woff2')}

:root{
  --encre:#13263B; --gris:#4A5866; --filet:#D9DEE3; --filet2:#E6EAEE; --fond:#F4F6F8; --panneau:#F2F5F7; --blanc:#FFFFFF;
  --vert:#0A6B4F; --vert-f:#064A37; --vert-c:#E3F1EB; --menthe:#7FD1B0;
  --nuit:#13263B; --nuit2:#26375A; --nuit-t:#D7E0EC; --nuit-t2:#B9C6DA;
  --sable:#FFF1D2; --sable-t:#6B4A00;
  --rouge:#A3261B; --rouge-c:#FBE7E4; --orange:#8A4B00; --orange-c:#FFF0DC;
  --r:18px; --r-s:12px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--fond);color:var(--encre);font-family:'Atkinson Hyperlegible',system-ui,-apple-system,'Segoe UI',sans-serif;font-size:17px;line-height:1.55}
a{color:var(--vert)}a:hover{color:var(--vert-f)}
img,svg{max-width:100%}
h1,h2,h3{line-height:1.15;margin:0}
p{margin:0}
.wrap{max-width:1200px;margin:0 auto;padding:0 20px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:-9999px}.skip:focus{left:12px;top:12px;z-index:99;background:var(--blanc);padding:10px 14px;border-radius:8px}
:focus-visible{outline:3px solid var(--vert);outline-offset:2px}

/* Bandeau « indépendant » + en-tête */
.indep{background:var(--nuit);color:#C9D3DC;font-size:14px}
.indep .wrap{padding-top:6px;padding-bottom:6px}
.site-head{background:var(--blanc);border-bottom:1px solid var(--filet)}
.head-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-top:12px;padding-bottom:12px}
.logo{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--encre);font-weight:700;font-size:22px}
.logo-ic{width:34px;height:34px;border-radius:10px;background:var(--vert);display:flex;align-items:center;justify-content:center;flex:none}
.logo b{color:var(--vert)}
.nav-desk{display:none;gap:4px;font-weight:700}
.nav-desk a{min-height:44px;display:inline-flex;align-items:center;padding:0 13px;border-radius:10px;color:var(--encre);text-decoration:none}
.nav-desk a:hover,.nav-desk a[aria-current]{background:var(--vert-c);color:var(--vert-f)}
.nav-mob summary{list-style:none;width:44px;height:44px;border:1px solid var(--filet);border-radius:10px;display:flex;align-items:center;justify-content:center;cursor:pointer}
.nav-mob summary::-webkit-details-marker{display:none}
.nav-mob[open] nav{position:absolute;left:0;right:0;top:100%;z-index:50;background:var(--blanc);border-bottom:1px solid var(--filet);display:flex;flex-direction:column;padding:8px 20px 16px;box-shadow:0 12px 24px rgba(19,38,59,.08)}
.nav-mob nav a{min-height:48px;display:flex;align-items:center;border-bottom:1px solid var(--filet2);color:var(--encre);text-decoration:none;font-weight:700}
.site-head{position:relative}
@media(min-width:960px){.nav-desk{display:flex}.nav-mob{display:none}}

/* Fil d'Ariane */
.crumbs{font-size:14px;color:var(--nuit-t2);display:flex;flex-wrap:wrap;gap:6px}
.crumbs a{color:var(--nuit-t2)}
.crumbs [aria-current]{color:var(--nuit-t)}

/* Bloc bleu nuit d'ouverture */
.hero{background:var(--nuit);color:#fff;border-radius:22px;padding:24px 20px;display:flex;flex-direction:column;gap:14px}
.hero h1{font-size:29px;line-height:1.12}
.hero .lead{color:var(--nuit-t);font-size:18px;max-width:640px}
.hero .lead strong{color:#fff}
.hero-badge{align-self:flex-start;background:var(--nuit2);font-weight:700;font-size:14px;padding:3px 12px;border-radius:99px}
.chips{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.chips .lbl{color:var(--nuit-t2);font-size:15px}
.chip{min-height:38px;display:inline-flex;align-items:center;padding:0 13px;border-radius:99px;background:var(--nuit2);color:#fff;text-decoration:none;font-size:15px}
.chip:hover{background:#33476E;color:#fff}
@media(min-width:760px){.hero{padding:38px 40px}.hero h1{font-size:44px}}

/* Recherche */
.search{position:relative;display:flex;flex-direction:column;gap:6px;max-width:640px}
.search label{font-weight:700;color:var(--nuit-t)}
.search-row{display:flex;gap:8px}
.search input{flex:1;min-width:0;min-height:56px;border:0;border-radius:var(--r-s);padding:0 16px;font:inherit;color:var(--encre);background:#fff}
.search button{flex:none;min-height:56px;min-width:56px;padding:0 22px;border:0;border-radius:var(--r-s);background:var(--vert);color:#fff;font:inherit;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px}
.search button:hover{background:var(--vert-f)}
.search button .t{display:none}@media(min-width:560px){.search button .t{display:inline}}
.search-list{position:absolute;left:0;right:0;top:100%;margin:6px 0 0;padding:6px;list-style:none;background:#fff;border-radius:var(--r-s);box-shadow:0 14px 32px rgba(19,38,59,.22);z-index:40;max-height:360px;overflow:auto}
.search-list li a{display:block;padding:10px 12px;border-radius:8px;color:var(--encre);text-decoration:none}
.search-list li a span{display:block;font-size:14px;color:var(--gris)}
.search-list li[aria-selected=true] a,.search-list li a:hover{background:var(--vert-c)}
.search-light label{color:var(--encre)}
.search-light input{border:2px solid var(--encre)}

/* Mise en page */
main{display:block}
.page{padding-top:18px;padding-bottom:48px;display:flex;flex-direction:column;gap:26px}
.cols{display:flex;flex-wrap:wrap;gap:22px;align-items:flex-start}
.col-main{flex:999 1 560px;min-width:0;display:flex;flex-direction:column;gap:22px}
.col-side{flex:1 1 330px;min-width:0;display:flex;flex-direction:column;gap:18px}
.duo{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px}
.sec{display:flex;flex-direction:column;gap:14px}
.sec>h2,.h2{font-size:24px}
@media(min-width:760px){.sec>h2,.h2{font-size:28px}}
.sec-tete{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px 16px}
.sec-tete p{color:var(--gris)}
.carte{background:var(--blanc);border:1px solid var(--filet);border-radius:var(--r);padding:20px;display:flex;flex-direction:column;gap:12px}
.carte h2{font-size:21px}
.carte h3{font-size:18px}
.carte-vert{background:var(--vert-c);border-color:transparent}
.carte-vert h2{color:var(--vert-f)}
.carte-sable{background:var(--sable);border-color:transparent}
.carte-nuit{background:var(--nuit);border-color:transparent;color:#fff}
.carte-nuit p{color:var(--nuit-t)}
.muted{color:var(--gris)}
.small{font-size:14px}
.src{font-size:14px;color:var(--gris)}
.src a{color:var(--gris)}

/* Boutons */
.btn{min-height:50px;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:0 20px;border-radius:var(--r-s);background:var(--vert);color:#fff;text-decoration:none;font-weight:700;border:0;font:inherit;font-weight:700;cursor:pointer}
.btn:hover{background:var(--vert-f);color:#fff}
.btn .ic,.search button .ic,.chip .ic{color:currentColor}
.btn-line{background:transparent;border:2px solid var(--vert);color:var(--vert)}
.btn-line:hover{background:var(--vert-c);color:var(--vert-f)}
.btn-nuit{background:transparent;border:1.5px solid #5B6E8F;color:#fff}
.btn-nuit:hover{background:var(--nuit2);color:#fff}
.btns{display:flex;flex-wrap:wrap;gap:10px}
.btn-bloc{display:flex;width:100%}

/* Badges */
.badge{display:inline-flex;align-self:flex-start;font-size:13px;font-weight:700;padding:2px 10px;border-radius:99px;background:var(--panneau);color:var(--encre)}
.badge-vert{background:var(--vert-c);color:var(--vert-f)}
.badge-sable{background:var(--sable);color:var(--sable-t)}
.badge-nuit{background:var(--nuit);color:#fff}

/* Tuiles « Que voulez-vous faire ? » */
.tuiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
@media(min-width:760px){.tuiles{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px}}
.tuile{background:var(--blanc);border:1px solid var(--filet);border-radius:var(--r);padding:16px;display:flex;flex-direction:column;gap:8px;text-decoration:none;color:var(--encre);min-height:122px}
.tuile:hover{border-color:var(--vert);color:var(--encre)}
.tuile.on{border:2px solid var(--vert)}
.tuile strong{font-size:17px;line-height:1.2}
.tuile span.d{color:var(--gris);font-size:15px;display:none}
@media(min-width:760px){.tuile{padding:20px}.tuile strong{font-size:19px}.tuile span.d{display:block}}
.ic{width:30px;height:30px;color:var(--vert);flex:none}

/* Frise numérotée */
.frise{margin:0;padding:0;list-style:none;display:flex;flex-direction:column}
.frise li{display:flex;gap:14px}
.frise .pt{display:flex;flex-direction:column;align-items:center}
.num{width:32px;height:32px;border-radius:99px;background:var(--vert);color:#fff;font-weight:700;display:flex;align-items:center;justify-content:center;flex:none}
.frise .ligne{flex:1;width:2px;background:var(--filet);min-height:16px}
.frise li:last-child .ligne{display:none}
.frise .tx{padding-bottom:16px}
.frise li:last-child .tx{padding-bottom:0}
.frise .tx div{color:var(--gris)}
.etapes{margin:0;padding:0;list-style:none;display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}
.etapes li{display:flex;flex-direction:column;gap:8px;padding:16px;background:var(--panneau);border-radius:14px}
.etapes li span.t{color:var(--gris)}

/* Sélecteur condamné / prévenu */
.bascule{display:inline-grid;grid-template-columns:repeat(2,minmax(0,1fr));max-width:540px;border:1px solid var(--encre);border-radius:10px;overflow:hidden}
.bascule button{min-height:48px;border:0;background:#fff;color:var(--encre);font:inherit;font-weight:700;cursor:pointer;padding:0 10px}
.bascule button[aria-pressed=true]{background:var(--encre);color:#fff}
.js .panneau-bascule[hidden]{display:none}

/* Listes de liens */
.liste{display:flex;flex-direction:column}
.liste a{display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:52px;border-bottom:1px solid var(--filet2);color:var(--encre);text-decoration:none}
.liste a:last-child{border-bottom:0}
.liste a:hover strong,.liste a:hover span.n{color:var(--vert)}
.liste .n{font-weight:700;white-space:nowrap}
.fleche{flex:none;color:var(--encre)}

/* Grilles de régions et de prisons */
.grille{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}
.case{background:var(--blanc);border:1px solid var(--filet);border-radius:16px;padding:15px 18px;text-decoration:none;color:var(--encre);display:flex;flex-direction:column;gap:4px}
.case:hover{border-color:var(--vert);color:var(--encre)}
.case .haut{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}
.case .cpt{font-weight:700;background:var(--panneau);padding:0 10px;border-radius:99px;flex:none}
.case .ex{color:var(--gris);font-size:15px}
.case-plus{background:var(--vert-c);border-color:transparent;color:var(--vert-f);align-items:center;justify-content:center;font-weight:700}

/* Fiches dans les listes (région, département, type) */
.fiches{display:flex;flex-direction:column;gap:10px}
@media(min-width:760px){.fiches{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr))}}
.fiche-l{background:var(--blanc);border:1px solid var(--filet);border-radius:16px;padding:14px 16px;display:flex;flex-direction:column;gap:5px;text-decoration:none;color:var(--encre)}
.fiche-l:hover{border-color:var(--vert);color:var(--encre)}
.fiche-l strong{font-size:17px}
.fiche-l .l2{color:var(--gris);font-size:15px}
.fiche-l .l3{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;font-size:14px}
.dep-titre{font-size:20px;margin:6px 0 -2px}

/* Densité */
.dens{font-weight:700;padding:1px 9px;border-radius:99px;font-size:14px;white-space:nowrap}
.dens-ok{background:var(--vert-c);color:var(--vert-f)}
.dens-moy{background:var(--orange-c);color:var(--orange)}
.dens-fort{background:var(--rouge-c);color:var(--rouge)}
.jauge{height:12px;border-radius:99px;background:rgba(255,255,255,.18);overflow:hidden;position:relative}
.jauge i{position:absolute;left:0;top:0;bottom:0;background:var(--menthe);border-radius:99px}
.jauge-cl{background:var(--panneau)}
.jauge-cl i{background:var(--vert)}

/* Chiffres */
.chiffres{background:var(--nuit);color:#fff;border-radius:22px;padding:22px 24px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 14px}
@media(min-width:760px){.chiffres{grid-template-columns:repeat(4,minmax(0,1fr));padding:28px 34px}}
.chiffres .v{font-size:28px;font-weight:700;line-height:1.1}
@media(min-width:760px){.chiffres .v{font-size:36px}}
.chiffres .v.m{color:var(--menthe)}
.chiffres .l{color:var(--nuit-t);font-size:15px}
.chiffres .src{grid-column:1/-1;color:var(--nuit-t2)}
.chiffres .src a{color:var(--nuit-t2)}

/* Types */
.types{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
@media(min-width:760px){.types{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}}
.type{background:var(--blanc);border:1px solid var(--filet);border-radius:16px;padding:16px;text-decoration:none;color:var(--encre)}
.type:hover{border-color:var(--vert);color:var(--encre)}
.type .v{font-size:28px;font-weight:700;line-height:1.1;color:var(--vert)}
.type .d{color:var(--gris);font-size:15px}

/* FAQ */
.faq{display:flex;flex-direction:column;gap:10px}
.faq details{background:var(--blanc);border:1px solid var(--filet);border-radius:14px;padding:15px 18px}
.faq summary{font-weight:700;cursor:pointer;min-height:26px}
.faq details p,.faq details ul{margin:10px 0 0;color:var(--gris)}

/* Enveloppe */
.enveloppe{background:var(--panneau);border-radius:var(--r-s);padding:16px 18px;line-height:1.6;font-size:17px}
.enveloppe .k{font-size:12px;font-weight:700;color:var(--gris);text-transform:uppercase;letter-spacing:.6px;margin-bottom:4px}
.enveloppe .ph{color:var(--gris);font-style:italic}

/* Tableau */
.tab-wrap{overflow-x:auto;border:1px solid var(--filet);border-radius:14px;background:#fff}
table{border-collapse:collapse;width:100%;font-size:16px}
th,td{text-align:left;padding:10px 14px;border-bottom:1px solid var(--filet2);vertical-align:top}
th{font-size:14px;color:var(--gris);font-weight:700;background:var(--panneau)}
td.n,th.n{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
tr:last-child td{border-bottom:0}
tbody tr:hover{background:#FAFBFC}

/* Graphique */
.courbe{width:100%;height:auto;display:block}
.courbe text{font-family:inherit;font-size:13px;fill:var(--gris)}
.carte-nuit .courbe text{fill:var(--nuit-t2)}

/* Carte Leaflet */
.plan{height:220px;border-radius:var(--r-s);overflow:hidden;background:var(--panneau);border:1px solid var(--filet)}
.plan-g{height:420px}

/* Texte des guides */
.texte{background:var(--blanc);border:1px solid var(--filet);border-radius:var(--r);padding:22px}
@media(min-width:760px){.texte{padding:32px 36px}}
.texte h2{font-size:24px;margin:30px 0 10px}
.texte h2:first-child{margin-top:0}
.texte h3{font-size:19px;margin:22px 0 8px}
.texte p{margin:0 0 14px}
.texte ul,.texte ol{margin:0 0 14px;padding-left:22px}
.texte li{margin:0 0 6px}
.texte .encadre{background:var(--vert-c);border-radius:14px;padding:16px 18px;margin:0 0 16px}
.texte .encadre-sable{background:var(--sable)}
.texte .encadre p:last-child{margin:0}
.texte .sources{border-top:1px solid var(--filet);margin-top:26px;padding-top:16px;font-size:14px;color:var(--gris)}
.texte .sources ul{padding-left:18px}
.sommaire ol{margin:0;padding-left:20px}
.sommaire li{margin:4px 0}
.sommaire-haut{display:block}
.sommaire-haut summary{font-weight:700;cursor:pointer}
@media(min-width:1000px){.sommaire-haut{display:none}}
.sommaire-cote{display:none}
@media(min-width:1000px){.sommaire-cote{display:flex;position:sticky;top:16px}}
.bref{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 14px;background:var(--vert-c);border-radius:var(--r);padding:18px}
.bref .k{font-size:13px;color:#33584A}
.bref .v{font-weight:700}
.bref .v.g{font-size:26px;line-height:1.1}
.bref .w{grid-column:1/-1}

/* Formulaire */
.form{display:flex;flex-direction:column;gap:14px}
.form label{font-weight:700;display:block;margin-bottom:4px}
.form input,.form select,.form textarea{width:100%;min-height:50px;border:2px solid var(--filet);border-radius:10px;padding:10px 12px;font:inherit;color:var(--encre);background:#fff}
.form textarea{min-height:160px}
.form input:focus,.form select:focus,.form textarea:focus{border-color:var(--vert);outline:0}
.piege{position:absolute;left:-9999px}
.msg-ok{background:var(--vert-c);border-radius:12px;padding:14px 16px;color:var(--vert-f);font-weight:700}
.msg-err{background:var(--rouge-c);border-radius:12px;padding:14px 16px;color:var(--rouge)}

/* Pied de page */
.site-foot{background:var(--nuit);color:#fff;margin-top:20px}
.foot-grid{display:grid;grid-template-columns:1fr;gap:20px;padding-top:30px;padding-bottom:14px}
@media(min-width:760px){.foot-grid{grid-template-columns:1.4fr 1fr 1fr}}
.foot-logo{font-weight:700;font-size:20px;margin-bottom:6px}
.foot-logo b{color:var(--menthe)}
.site-foot p{color:#C9D3DC;font-size:15px}
.site-foot nav{display:flex;flex-direction:column;gap:2px}
.site-foot nav a{color:#fff;text-decoration:none;min-height:36px;display:flex;align-items:center;font-size:15px}
.site-foot nav a:hover{color:var(--menthe)}
.foot-src{padding-top:12px;padding-bottom:24px;border-top:1px solid #26375A;font-size:13px;color:var(--nuit-t2)}
.col-side .search button .t{display:none}.col-side .search button{padding:0 16px}
