:root{
  --bleu:#000091;--bleu-clair:#e3e3fd;--rouge:#e1000f;
  --vert:#18753c;--vert-bg:#b8fec9;--orange:#b34000;--orange-bg:#ffe9c2;--rouge-bg:#ffe1e1;
  --gris:#666;--gris-bg:#f6f6f6;--bord:#dddddf;--texte:#161616;
  --c-court:#3bb45f;--c-moyen:#f5a623;--c-long:#e0304a;
}
/* Styles confinés à .wrap : sur WordPress le shortcode sort <div class="mdel-observatoire wrap">,
   donc rien ne déborde sur le header/footer du thème. En statique, tout le contenu est dans .wrap. */
.wrap *{box-sizing:border-box}
.wrap{max-width:1080px;margin:0 auto;padding:20px 16px 48px;font-family:"Marianne",system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;color:var(--texte);line-height:1.5;}
body{margin:0;background:#fff;}
.wrap h1{font-size:1.7rem;margin:0 0 .15em;}
.wrap h2{font-size:1.2rem;margin:1.8em 0 .5em;}
.wrap h3{font-size:1rem;margin:0 0 .3em;color:var(--bleu);}
.wrap a{color:var(--bleu);}
.lede{color:var(--gris);margin:.2em 0 1.2em;max-width:72ch;}
.tag{display:inline-block;background:var(--bleu-clair);color:var(--bleu);font-size:.72rem;font-weight:700;padding:2px 8px;border-radius:4px;letter-spacing:.02em;text-transform:uppercase;margin-bottom:10px;}
.banner{border-left:4px solid var(--bleu);background:var(--bleu-clair);padding:12px 16px;border-radius:4px;margin:0 0 8px;font-size:.92rem;}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin:18px 0;}
.kpi{border:1px solid var(--bord);border-radius:8px;padding:14px;background:#fff;}
.kpi .n{font-size:1.7rem;font-weight:700;line-height:1.1;}
.kpi .l{font-size:.8rem;color:var(--gris);margin-top:2px;}
.legend{display:flex;gap:16px;flex-wrap:wrap;font-size:.82rem;margin:6px 0 2px;}
.legend span{display:inline-flex;align-items:center;gap:6px;}
.wrap .dot{width:14px;height:14px;border-radius:3px;display:inline-block;border:1px solid rgba(0,0,0,.15);}
.grid2{display:grid;grid-template-columns:1.15fr .85fr;gap:20px;align-items:start;}
@media(max-width:820px){.grid2{grid-template-columns:1fr;}}
#map-wrap{border:1px solid var(--bord);border-radius:10px;padding:10px;background:#fbfbfe;position:relative;min-height:360px;}
#map svg{width:100%;height:auto;display:block;}
.dept{stroke:#fff;stroke-width:.4;cursor:pointer;transition:opacity .15s;}
.dept:hover{opacity:.72;}
.dept.sel{stroke:var(--texte);stroke-width:1.5;}
.wrap .panel{border:1px solid var(--bord);border-radius:10px;padding:18px;background:#fff;min-height:360px;}
.wrap .panel .ph{color:var(--gris);font-size:.92rem;}
.badge{display:inline-block;padding:3px 12px;border-radius:20px;font-size:.8rem;font-weight:700;}
.badge.court{background:var(--vert-bg);color:var(--vert);}
.badge.moyen{background:var(--orange-bg);color:var(--orange);}
.badge.long{background:var(--rouge-bg);color:var(--rouge);}
.pv-ville{font-size:1.3rem;font-weight:700;margin:6px 0 2px;}
.pv-reg{color:var(--gris);font-size:.85rem;margin-bottom:10px;}
.pv-delai{font-size:2rem;font-weight:800;margin:8px 0 0;}
.pv-row{display:flex;justify-content:space-between;border-top:1px solid var(--bord);padding:8px 0;font-size:.9rem;gap:10px;}
.pv-row span:first-child{color:var(--gris);}
/* .wrap .btn : spécificité (0,2,0) pour gagner sur .wrap a et garantir le texte blanc lisible */
.wrap .btn{display:inline-block;text-decoration:none;font-weight:700;font-size:.92rem;padding:11px 16px;border-radius:4px;background:var(--bleu);color:#fff;margin-top:12px;}
.wrap .btn:hover{background:#1212a5;color:#fff;}
.wrap .btn.ghost{background:#fff;color:var(--bleu);border:1px solid var(--bleu);margin-left:8px;}
.wrap .btn.ghost:hover{background:var(--bleu-clair);color:var(--bleu);}
.wrap table{width:100%;border-collapse:collapse;font-size:.9rem;}
.wrap th,.wrap td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--bord);}
.wrap th{background:var(--gris-bg);}
.cols3{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px;}
.card{border:1px solid var(--bord);border-radius:8px;padding:15px;background:#fff;}
.steps{display:flex;gap:10px;flex-wrap:wrap;margin-top:6px;}
.step{flex:1 1 180px;border:1px solid var(--bord);border-left:4px solid var(--bleu);border-radius:6px;padding:12px;background:#fff;}
.step b{display:block;color:var(--bleu);}
.muted{color:var(--gris);font-size:.85rem;}
.wrap details{border:1px solid var(--bord);border-radius:8px;padding:12px 16px;margin-top:14px;background:var(--gris-bg);}
.wrap summary{font-weight:600;cursor:pointer;}
.foot{font-size:.8rem;color:var(--gris);margin-top:22px;border-top:1px solid var(--bord);padding-top:14px;}
#fallback{display:none;padding:6px;}
.obs-nav{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 16px;}
.obs-nav-link{display:inline-flex;align-items:center;gap:6px;text-decoration:none;font-weight:600;font-size:.9rem;color:var(--bleu);background:#fff;border:1px solid var(--bord);border-radius:20px;padding:7px 14px;transition:background .12s,border-color .12s;}
.obs-nav-link:hover{background:var(--bleu-clair);border-color:var(--bleu);}
.obs-nav-link.is-current{background:var(--bleu);color:#fff;border-color:var(--bleu);}
.delta{font-size:.78rem;font-weight:700;padding:2px 8px;border-radius:12px;vertical-align:middle;}
.delta.up{background:var(--rouge-bg);color:var(--rouge);}
.delta.down{background:var(--vert-bg);color:var(--vert);}
.delta.eq{background:var(--gris-bg);color:var(--gris);}
.om-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px;margin-top:8px;}
.om-tile{display:flex;flex-direction:column;gap:4px;text-align:left;border:1px solid var(--bord);border-left:4px solid #bbb;border-radius:8px;padding:12px 14px;background:#fff;cursor:pointer;font:inherit;}
.om-tile:hover{background:var(--gris-bg);}
.om-nom{font-weight:700;}
.om-code{color:var(--gris);font-weight:400;font-size:.82rem;}
.om-val{font-size:1.15rem;font-weight:800;}
.om-val.np{color:var(--gris);font-weight:600;font-size:.9rem;}
.mosaic{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px;}
.tile{width:30px;height:30px;border-radius:4px;display:flex;align-items:center;justify-content:center;font-size:.6rem;color:#00000090;cursor:pointer;border:1px solid rgba(0,0,0,.08);}
/* Liste des 101 pages départementales sur le hub (remplace le sommaire statique). */
.wrap .obs-dept-liste{font-size:.92rem;line-height:2;margin:0 0 14px;}
.wrap .obs-dept-liste a{font-weight:600;text-decoration:none;}
.wrap .obs-dept-liste a:hover{text-decoration:underline;}
.wrap h3{margin-top:1.1em;}

/* ══════════════════════════════════════════════════════════════════════
   Peau « design system des pages piliers » (27/07/2026).
   Quand le composant est appelé DANS une page au gabarit .mdel-gu (le hub
   2989), il hérite des jetons du design system (--sans, --serif, --ink,
   --navy, --blue, --line…) définis sur .mdel-gu : mêmes polices, mêmes
   couleurs, mêmes cartes que le reste du site. Hors .mdel-gu, rien ne
   change — les règles ci-dessus continuent de servir.
   ══════════════════════════════════════════════════════════════════════ */
.mdel-gu .wrap{max-width:none;margin:0;padding:0;font-family:var(--sans);color:var(--ink);line-height:1.55;}
.mdel-gu .wrap h2,.mdel-gu .wrap h3{font-family:var(--serif);color:var(--navy);letter-spacing:-.01em;}
.mdel-gu .wrap h2{font-size:clamp(21px,2.4vw,26px);margin:0 0 10px;}
.mdel-gu .wrap h3{font-size:16px;margin:0 0 8px;}
.mdel-gu .wrap a{color:var(--blue);}
.mdel-gu .wrap .muted{color:var(--muted);}
.mdel-gu .wrap .banner{background:var(--blue-soft);border:1px solid var(--blue-border);border-left:3px solid var(--blue);border-radius:12px;color:var(--ink);font-size:14.5px;padding:14px 18px;}
.mdel-gu .wrap .kpi,.mdel-gu .wrap .card,.mdel-gu .wrap .panel,.mdel-gu .wrap #map-wrap,.mdel-gu .wrap .om-tile{
  border:1px solid var(--line);border-radius:14px;background:#fff;}
.mdel-gu .wrap .kpi .n{font-family:var(--serif);color:var(--navy);}
.mdel-gu .wrap .kpi .l,.mdel-gu .wrap .pv-reg{color:var(--meta);}
.mdel-gu .wrap #map-wrap{background:var(--hero-b);}
.mdel-gu .wrap .om-tile{border-left-width:4px;border-left-style:solid;}
.mdel-gu .wrap table{font-size:14.5px;}
.mdel-gu .wrap th{background:var(--blue-soft);color:var(--navy);border-bottom:1px solid var(--line);}
.mdel-gu .wrap td{border-bottom:1px solid var(--line);}
.mdel-gu .wrap .obs-nav-link{border-color:var(--line);color:var(--blue);border-radius:999px;}
.mdel-gu .wrap .obs-nav-link:hover{background:var(--blue-soft);border-color:var(--blue-border);}
.mdel-gu .wrap .obs-nav-link.is-current{background:var(--blue);border-color:var(--blue);color:#fff;}
.mdel-gu .wrap .btn{background:var(--teal);color:#fff;border-radius:10px;font-weight:600;}
.mdel-gu .wrap .btn:hover{background:#0b6558;color:#fff;}
.mdel-gu .wrap .btn.ghost{background:#fff;color:var(--blue);border:1px solid var(--blue-border);}
.mdel-gu .wrap .btn.ghost:hover{background:var(--blue-soft);color:var(--blue);}
.mdel-gu .wrap .foot{border-top:1px solid var(--line);color:var(--meta);}
