/* Observatoire électoral du Millénaire, thème de la page d'accueil et de la
   page des prévisions. Version 4, 25 septembre 2026.

   Deux modes portés par les mêmes variables : nuit (défaut) et jour
   (html[data-theme="jour"]). Typographie : la charte de lemillenaire.org,
   Baskervville pour les titres, Playfair Display pour les chiffres,
   Montserrat pour le texte, IBM Plex Mono pour les données. Polices servies
   depuis accueil/polices/ (licence OFL), aucune dépendance externe.

   Couleurs des trois niveaux validées pour le daltonisme sur chaque fond
   (outil dataviz) : nuit #2f9e7a, #bc8a2e, #dd4f5b sur #121a2c ; jour
   #1a8a5f, #2456a8, #c0341c sur #f6f1e8. L'état d'un résultat face à
   l'intervalle est porté par la forme (point plein, losange creux) et par
   le texte, jamais par la couleur seule. */

:root{
  --nuit:#0a0f1c;--nuit2:#0e1524;--carte:#121a2c;--carte2:#182238;
  --encre:#f4f0e8;--encre2:#c8c3b8;--gris:#8a8e99;
  --trait:rgba(214,225,245,.09);--trait2:rgba(214,225,245,.17);
  --accent:#d6b56a;--accent2:#b8862a;--accent-texte:#0a0f1c;
  --rec:#2f9e7a;--sui:#bc8a2e;--mod:#dd4f5b;
  --rec-clair:#5fc4a0;--sui-clair:#e2b45c;--mod-clair:#f08a92;
  --dans:#5b98d4;
  --halo1:rgba(91,141,239,.14);--halo2:rgba(214,181,106,.06);
  --etoiles:.5;
  --marine:var(--encre);--marine2:var(--encre2);--rouge:var(--mod);--fond:var(--nuit);--fond2:var(--carte2);
  --titre:"Baskervville",Georgia,serif;--chiffre:"Playfair Display",Georgia,serif;
  --txt:"Montserrat",-apple-system,Helvetica,sans-serif;--mono:"IBM Plex Mono",monospace;
}
html[data-theme="jour"]{
  --nuit:#f6f1e8;--nuit2:#efe8dc;--carte:#fbf8f2;--carte2:#ffffff;
  --encre:#111a2e;--encre2:#3b4356;--gris:#7a7f8c;
  --trait:#dcd4c6;--trait2:#c8bfae;
  --accent:#c0341c;--accent2:#9a2a16;--accent-texte:#ffffff;
  --rec:#1a8a5f;--sui:#2456a8;--mod:#c0341c;
  --rec-clair:#1a8a5f;--sui-clair:#2456a8;--mod-clair:#c0341c;
  --dans:#2456a8;
  --halo1:rgba(36,86,168,.06);--halo2:rgba(192,52,28,.04);
  --etoiles:0;
}
html{background:var(--nuit)}
body{background:var(--nuit);color:var(--encre);font:14.5px/1.6 var(--txt)}
::selection{background:var(--accent);color:var(--accent-texte)}
a{color:inherit}

/* ---------- Bascule nuit / jour ---------- */
.bascule{position:fixed;top:14px;right:14px;z-index:60;display:inline-flex;align-items:center;gap:8px;
  background:color-mix(in srgb,var(--nuit2) 80%,transparent);backdrop-filter:blur(8px);border:1px solid var(--trait2);border-radius:2px;
  color:var(--encre2);padding:7px 11px;font:600 9.5px var(--mono);letter-spacing:.14em;text-transform:uppercase;cursor:pointer}
.bascule:hover{color:var(--encre);border-color:var(--accent)}
.bascule i{width:9px;height:9px;border-radius:50%;background:var(--accent);flex:none}
.bascule .b-jour{display:none}html[data-theme="jour"] .bascule .b-jour{display:inline}html[data-theme="jour"] .bascule .b-nuit{display:none}

/* ---------- Entrée ---------- */
.hero-facettes{background:var(--nuit)}
.fac-pin{background:radial-gradient(900px 600px at 75% 10%,var(--halo1),transparent 60%),radial-gradient(700px 500px at 20% 90%,var(--halo2),transparent 60%),var(--nuit)}
.fac-pin:before{opacity:var(--etoiles)}
.fac-pin:after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(180deg,transparent 60%,color-mix(in srgb,var(--nuit) 88%,transparent) 100%)}
/* La vignette qui protège le texte suit .fac-menu : elle s'efface avec lui au défilement et la carte réapparaît. */
.fac-menu{position:relative}
.fac-menu:after{content:"";position:absolute;z-index:-1;left:50%;top:50%;width:max(160vw,1400px);height:max(120vh,900px);transform:translate(-50%,-50%);pointer-events:none;
  background:radial-gradient(closest-side,color-mix(in srgb,var(--nuit) var(--voile1),transparent) 0%,color-mix(in srgb,var(--nuit) var(--voile2),transparent) 40%,transparent 100%)}
:root{--voile1:94%;--voile2:72%}
html[data-theme="jour"]{--voile1:84%;--voile2:52%}
.fac-scene svg{filter:drop-shadow(0 0 80px color-mix(in srgb,var(--accent) 10%,transparent))}
/* Même dessin dans les deux modes : contour, rayons et aplats des trois niveaux passent par des variables. */
:root{--contour-fond:color-mix(in srgb,var(--accent) 4%,transparent);--contour-trait:color-mix(in srgb,var(--accent) 55%,transparent);--rayons:color-mix(in srgb,var(--accent) 28%,transparent);--aplat:60%}
html[data-theme="jour"]{--contour-fond:rgba(17,26,46,.03);--contour-trait:rgba(17,26,46,.5);--rayons:rgba(17,26,46,.14);--aplat:88%}
.fac-contour{fill:var(--contour-fond);stroke:var(--contour-trait);stroke-width:.8}
.fac-rayons{stroke:var(--rayons);stroke-width:.4}
.fac-contour.n-recense{fill:color-mix(in srgb,var(--rec) var(--aplat),transparent);stroke:var(--rec-clair)}
.fac-contour.n-suivi{fill:color-mix(in srgb,var(--sui) var(--aplat),transparent);stroke:var(--sui-clair)}
.fac-contour.n-modelise{fill:color-mix(in srgb,var(--mod) var(--aplat),transparent);stroke:var(--mod-clair)}
.fac-contour.on{stroke:var(--encre)}
.fac-scene svg.filtre-mois .fac-contour.dans-mois{stroke:var(--encre);filter:drop-shadow(0 0 7px color-mix(in srgb,var(--accent) 80%,transparent))}
@media(min-width:900px){
  .fac-scene{top:56%;width:min(96vw,180vh,1700px)}
  .frise-mois{width:min(1100px,92vw)}
}
.fac-marque{display:block;font:600 11.5px var(--mono);letter-spacing:.3em;text-transform:uppercase;color:var(--accent);margin-bottom:26px;text-align:center}
.fac-t2{margin:0;font:400 clamp(34px,5.4vw,80px)/1.05 var(--titre);letter-spacing:0;color:var(--encre);text-transform:none;text-align:center;max-width:none}
.fac-sous{margin:16px 0 0;max-width:none;font:italic 400 clamp(17px,1.5vw,23px)/1.4 var(--titre);color:var(--encre2);text-align:center}
@media(min-width:900px){.fac-t2,.fac-sous{white-space:nowrap}}
.fac-note{margin-top:30px;max-width:520px;border:1px solid var(--trait2);border-radius:4px;background:color-mix(in srgb,var(--nuit2) 78%,transparent);backdrop-filter:blur(8px);padding:16px 18px 15px;text-align:left}
.fac-note-tete{font:600 9.5px var(--mono);letter-spacing:.14em}
.fac-note-tete i{background:var(--mod);box-shadow:0 0 0 4px color-mix(in srgb,var(--mod) 18%,transparent)}
.fac-note-tete .live{color:var(--accent)}
.fac-note-tete .date,.fac-note-frac{color:var(--gris)}
.fac-note p{font:400 13.5px/1.55 var(--txt);color:var(--encre2)}
.fac-note b{color:var(--encre)}
.fac-note .rien{color:var(--gris)}.fac-note .jx{color:var(--accent)}.fac-note .n{color:var(--mod-clair)}
.fac-motto{margin-top:26px;gap:22px;justify-content:center;font:500 10px var(--mono);letter-spacing:.16em}
.fac-motto span{display:inline-flex;align-items:center;gap:8px}
.fac-motto span:before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}
.fac-motto span:nth-child(1){color:var(--rec-clair)}.fac-motto span:nth-child(2){color:var(--sui-clair)}.fac-motto span:nth-child(3){color:var(--mod-clair)}
.fac-cta{margin-top:30px;background:var(--accent);color:var(--accent-texte);border-radius:2px;padding:14px 26px;font:700 11px var(--txt);letter-spacing:.14em}
.fac-cta:hover{background:var(--accent2);color:#fff}
.fac-etiquette{display:none}

/* Frise */
.frise-mois{background:color-mix(in srgb,var(--nuit2) 80%,transparent);border:1px solid var(--trait2);border-radius:4px;backdrop-filter:blur(10px);padding:12px 18px 10px}
.fm-titre{color:var(--accent);letter-spacing:.16em}
.fm-etat{color:var(--encre2)}
.fm-lecture{background:transparent;color:var(--encre);border:1px solid var(--trait2);border-radius:2px;font:500 10px var(--mono);letter-spacing:.1em}
.fm-lecture[aria-pressed="true"]{background:var(--accent);color:var(--accent-texte);border-color:var(--accent)}
.fm-mois{border-radius:2px;color:var(--gris)}
.fm-mois:hover:not(:disabled),.fm-mois:focus-visible{background:color-mix(in srgb,var(--accent) 8%,transparent)}
.fm-barre{background:color-mix(in srgb,var(--accent) 38%,transparent);border-radius:1px;max-width:22px}
.fm-mois.on{background:color-mix(in srgb,var(--accent) 10%,transparent);color:var(--encre)}
.fm-mois.on .fm-barre{background:var(--accent)}

/* ---------- Rideau et sections ---------- */
.rideau{background:var(--nuit);border-radius:0;margin-top:0;border-top:1px solid var(--trait2)}
.rideau:before{content:"";display:block;height:1px;background:linear-gradient(90deg,transparent,var(--accent2),transparent);opacity:.6}
.w{max-width:1120px;padding:0 clamp(20px,4vw,48px) 90px}
.cy-kicker{display:block;font:600 10.5px var(--mono);letter-spacing:.24em;text-transform:uppercase;color:var(--accent);margin-bottom:10px}
.cy-h2{margin:56px 0 18px;font:400 34px/1.05 var(--titre);letter-spacing:0;color:var(--encre)}
.cy-cta{display:inline-flex;align-items:center;gap:8px;background:var(--accent);color:var(--accent-texte);border-radius:2px;padding:12px 20px;text-decoration:none;font:700 11px var(--txt);letter-spacing:.14em;text-transform:uppercase}
.cy-cta:hover{background:var(--accent2);color:#fff}
h3,.explo-entete h3{font:600 10.5px var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--accent);margin:56px 0 18px}
.cnote{color:var(--gris)}

/* Compteurs */
.compte{margin:40px 0 0;border:0;border-top:1px solid var(--trait2);border-bottom:1px solid var(--trait2);background:transparent;gap:0}
.compte>div{padding:26px 22px 24px;border-right:1px solid var(--trait)}
.compte>div:last-child{border-right:0}
.compte .n{font:400 54px/1 var(--chiffre);color:var(--encre);letter-spacing:-.02em}
.compte .m .n{color:var(--mod-clair)}.compte .s .n{color:var(--sui-clair)}.compte .r .n{color:var(--rec-clair)}
.compte .l{color:var(--gris);font:500 9.5px var(--mono);letter-spacing:.14em;margin-top:10px}

/* Nos prévisions */
.cy-prev{position:relative;margin-top:40px;border:1px solid color-mix(in srgb,var(--accent) 35%,transparent);background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 6%,transparent),transparent 40%),var(--carte);padding:34px 36px 30px;border-radius:4px}
.cy-prev:before{content:"";position:absolute;left:0;right:0;top:0;height:2px;background:linear-gradient(90deg,transparent,var(--accent),transparent)}
.cy-prev-tete{display:grid;grid-template-columns:1fr auto;gap:8px 40px;align-items:end}
.cy-prev-tete h2{margin:0;font:400 40px/1 var(--titre);letter-spacing:0;color:var(--encre);grid-column:1}
.cy-prev-tete .cy-kicker{grid-column:1}
.cy-prev-tete p{grid-column:1;margin:14px 0 0;max-width:72ch;font:400 15px/1.6 var(--txt);color:var(--encre2)}
.cy-prev-tete .cy-cta{grid-column:2;grid-row:1/4;align-self:end}
.cy-prev-kpis{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:1px;background:color-mix(in srgb,var(--accent) 25%,transparent);border:1px solid color-mix(in srgb,var(--accent) 35%,transparent);margin-top:28px}
.cy-kpi{background:var(--carte);padding:22px 22px 20px;display:flex;flex-direction:column;gap:10px;min-width:0}
.cy-kpi b{font:400 56px/1 var(--chiffre);color:var(--encre);letter-spacing:-.02em;display:flex;align-items:baseline;gap:6px}
.cy-kpi b i{font-style:normal;font-size:24px;color:var(--gris)}
.cy-kpi-grand{background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 14%,transparent),color-mix(in srgb,var(--accent) 4%,transparent)),var(--carte)}
.cy-kpi-grand b{font-size:84px;color:var(--accent);font-weight:700}
.cy-kpi-grand b i{color:var(--accent2);font-size:32px}
.cy-kpi span{font:400 13px/1.5 var(--txt);color:var(--encre2);max-width:30ch}
.cy-prev-cols{display:grid;grid-template-columns:minmax(300px,1.15fr) 2fr;gap:28px;align-items:start;margin-top:28px;padding-top:24px;border-top:1px solid var(--trait2)}
.cy-prev-col h4{margin:0 0 12px;font:600 10px var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--accent)}
.cy-prev .vide{border:1px dashed var(--trait2);color:var(--encre2);padding:20px;border-radius:4px;font-size:13.5px;text-align:left}
.cy-prev .vide b{color:var(--encre);font:400 17px var(--titre);display:block;margin-bottom:6px}
.cy-prev-clos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:min-content;gap:1px;background:var(--trait);border:1px solid var(--trait);align-self:start;min-width:0}
.cy-prev-clos h4{grid-column:1/-1;background:var(--carte);padding:12px 14px 0;margin:0}
.cy-pc{display:flex;flex-direction:column;gap:4px;min-width:0;padding:14px 14px 16px;background:var(--carte);text-decoration:none;color:var(--encre);transition:background .15s}
.cy-pc:hover{background:var(--carte2)}
.cy-pc-pays{font:600 10px var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--gris)}
.cy-pc-quoi{font:400 15px/1.25 var(--titre);color:var(--encre);min-height:38px}
.cy-pc-quand{font:400 10.5px var(--mono);color:var(--gris)}
.cy-pc-mes{display:flex;flex-wrap:wrap;gap:10px 16px;margin-top:8px;padding-top:10px;border-top:1px solid var(--trait)}
.cy-pc-mes>b{display:flex;align-items:baseline;gap:8px}
.cy-pc-mes b{display:block;font:400 30px/1 var(--chiffre);color:var(--encre);letter-spacing:-.02em}
.cy-pc-mes b i{font-style:normal;font-size:16px;color:var(--gris)}
.cy-pc-mes em{display:block;font:400 9px var(--mono);color:var(--gris);font-style:normal;margin-top:4px;text-transform:uppercase;letter-spacing:.08em}
.cy-pc-liste{list-style:none;margin:10px 0 0;padding:10px 0 0;border-top:1px solid var(--trait);display:flex;flex-direction:column;gap:6px}
.cy-pc-liste li{display:flex;gap:8px;font:400 12px/1.4 var(--txt);color:var(--encre2)}
.cy-pc-liste li i{font-style:normal;color:var(--accent);flex:none;width:12px}
.cy-prev-just{margin-top:26px;padding-top:22px;border-top:1px solid var(--trait2)}
.cy-prev-h4{margin:0 0 12px;font:600 10px var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--gris)}
.cy-prev .justesse{margin:0;padding:0;border:0;background:transparent}
.cy-prev .justesse>h4{display:none}

/* Justesse (couleurs du graphique) */
.js-total{color:var(--encre2);font-size:14px}
.jo{border-color:var(--trait2);color:var(--encre2);border-radius:2px;font:500 11.5px var(--txt)}
.jo.on{background:var(--encre);color:var(--nuit);border-color:var(--encre)}
.jl{color:var(--gris)}
.jl-dans{background:var(--dans)}.jl-hors{border-color:var(--dans)}.jl-centre{background:var(--encre)}.jl-iv{background:color-mix(in srgb,var(--encre) 40%,transparent)}
.jg-ligne.dans .jg-ob{fill:var(--dans)}.jg-ligne.hors .jg-ob{stroke:var(--dans)}.jg-ligne.neutre .jg-ob{fill:var(--gris)}
.jp-tete{color:var(--encre2)}.jp-tete b{color:var(--encre)}.jp-tete a{color:var(--accent)}
.jmb{border-color:var(--trait2);color:var(--gris);border-radius:2px}
.jmb.on{background:var(--carte2);color:var(--encre);border-color:var(--trait2)}
.jg-grille{stroke:color-mix(in srgb,var(--encre) 7%,transparent)}
.jg-parti{fill:var(--encre);font:600 11.5px var(--txt)}
.jg-val{fill:var(--encre2)}
.jg-axe{fill:var(--gris)}
.jg-iv{stroke:color-mix(in srgb,var(--encre) 40%,transparent)}
.jg-centre{stroke:var(--encre)}
.jt,.jt summary{color:var(--gris)}
.jt th{border-bottom-color:var(--trait2);color:var(--gris)}
.jt td{border-bottom-color:var(--trait);color:var(--encre2)}
.jg-parts,.jg-sieges{overflow-x:auto;max-width:100%}

/* Mur des douze mois */
.cy-bande{display:grid;grid-template-columns:200px 1fr;gap:0 28px;padding:26px 0 30px;border-top:1px solid var(--trait2)}
.cy-bande h3{margin:0;position:sticky;top:20px;align-self:start;display:flex;flex-direction:column;font:inherit;letter-spacing:0;text-transform:none}
.cy-bande h3 b{font:400 72px/1 var(--chiffre);letter-spacing:-.03em;color:var(--accent)}
.cy-bande h3 span{font:400 16px var(--titre);color:var(--encre);text-transform:capitalize;margin-top:8px}
.cy-bande h3 em{font:400 10px var(--mono);color:var(--gris);font-style:normal;letter-spacing:.06em;text-transform:uppercase;margin-top:4px}
.cy-bande-sans h3 b{color:var(--gris)}
.cy-mur{display:grid;grid-template-columns:repeat(auto-fill,minmax(148px,1fr));gap:1px;background:var(--trait);border:1px solid var(--trait)}
.vig.cy-t{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:16px 14px 14px;background:var(--carte);text-decoration:none;color:var(--encre);border:0;min-height:0;transition:background .15s,transform .15s;min-width:0}
.vig.cy-t:hover{background:var(--carte2);transform:translateY(-2px)}
.cy-t img,.cy-t-vide{width:56px;height:56px;border-radius:50%;box-shadow:0 0 0 1px var(--trait2);margin-bottom:8px;display:block}
.cy-t-vide{background:var(--carte2)}
.cy-t .pays{font:400 16px/1.15 var(--titre);color:var(--encre)}
.cy-t .quoi{font:400 12px var(--txt);color:var(--encre2)}
.cy-t .quoi b{color:var(--encre);font-weight:600}
.cy-t .quand{font:500 10.5px var(--mono);color:var(--gris);margin-top:2px}
.cy-t .st{margin-top:2px}
.cy-t .rien,.cy-t .agr,.cy-t .proba{margin-top:8px;width:100%;border-top:1px solid var(--trait);padding-top:8px;display:flex;align-items:center;gap:6px}
.cy-t .agr .bar{display:flex;height:6px;flex:1;overflow:hidden}
.cy-t .agr .bar i{display:block;height:6px}
.cy-t .agr .t,.cy-t .proba .l{font:500 10px var(--mono);color:var(--gris)}
.cy-t .proba .n{font:700 22px/1 var(--chiffre);color:var(--mod-clair)}
.vig.cy-t.suivi{box-shadow:inset 0 2px 0 var(--sui)}
.vig.cy-t.modelise{box-shadow:inset 0 2px 0 var(--mod)}
.niv{border-color:var(--trait2);color:var(--gris);border-radius:2px;font:600 8.5px var(--mono);letter-spacing:.14em;background:transparent}
.niv.modelise{color:var(--mod-clair);border-color:color-mix(in srgb,var(--mod) 50%,transparent)}.niv.modelise:before{background:var(--mod)}
.niv.suivi{color:var(--sui-clair);border-color:color-mix(in srgb,var(--sui) 50%,transparent)}.niv.suivi:before{background:var(--sui)}
.st{color:var(--gris)}
.d-leg{color:var(--encre);border-bottom-color:var(--gris)}
.d-sans{color:var(--mod-clair)}
.st-inc:before{border-color:var(--mod);background:transparent}

/* Derniers clos */
.cy-clos .clos-liste{margin:0;padding:0;border:0}
.cy-clos .clos-liste>h4{display:none}
.clos-ligne{border-bottom-color:var(--trait);color:var(--encre2);padding:11px 0}
.clos-ligne b{color:var(--encre);font:400 16px var(--titre)}
.clos-ligne .mesure{color:var(--encre)}.clos-ligne .nr{color:var(--sui-clair)}.clos-ligne .statut,.clos-ligne .quand{color:var(--gris)}

/* Tous les pays */
.cy-pays-outils{display:flex;flex-wrap:wrap;gap:12px 20px;align-items:center;margin-bottom:14px}
.cy-cherche{flex:1;min-width:220px;max-width:360px;background:var(--carte);border:1px solid var(--trait2);color:var(--encre);padding:10px 14px;border-radius:2px;font:400 14px var(--txt)}
.cy-cherche::placeholder{color:var(--gris)}
.cy-cherche:focus{outline:none;border-color:var(--accent)}
.cy-onglets{display:flex;flex-wrap:wrap;gap:6px}
.cy-ong{background:transparent;border:1px solid var(--trait2);color:var(--encre2);border-radius:2px;padding:7px 12px;font:600 11px var(--txt);cursor:pointer}
.cy-ong em{font:400 10px var(--mono);color:var(--gris);font-style:normal;margin-left:4px}
.cy-ong:hover{border-color:var(--accent);color:var(--encre)}
.cy-ong.on{background:var(--encre);color:var(--nuit);border-color:var(--encre)}.cy-ong.on em{color:var(--nuit2)}
.cy-pays-grille{display:grid;grid-template-columns:repeat(auto-fill,minmax(168px,1fr));gap:1px;background:var(--trait);border:1px solid var(--trait)}
.cy-pf{display:grid;grid-template-columns:34px 1fr;gap:0 12px;align-items:center;padding:12px 14px;background:var(--carte);text-decoration:none;color:var(--encre);transition:background .15s}
.cy-pf:hover{background:var(--carte2)}
.cy-pf[hidden]{display:none}
.cy-pf img{grid-row:1/3;width:34px;height:34px;border-radius:50%;box-shadow:0 0 0 1px var(--trait2);display:block}
.cy-pf span{font:400 14px/1.15 var(--titre);color:var(--encre)}
.cy-pf i{font:500 9px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--gris);font-style:normal;margin-top:3px}
.cy-pf.n-suivi i{color:var(--sui-clair)}.cy-pf.n-modelise i{color:var(--mod-clair)}.cy-pf.n-recense i{color:var(--rec-clair)}
.cy-pays-note{margin:12px 0 0;font:400 12.5px/1.5 var(--txt);color:var(--gris);max-width:90ch}
.cy-pays-vide{display:none;padding:22px;color:var(--gris);border:1px dashed var(--trait2);font-size:13px}

/* Carte à explorer */
.explo-section{margin:56px 0 0;padding:0}
.explo-cadre{background:var(--carte);border:1px solid var(--trait);border-radius:4px}
.explo-cadre .pays-svg{fill:color-mix(in srgb,var(--encre) 12%,var(--carte));stroke:color-mix(in srgb,var(--encre) 10%,transparent)}
.explo-cadre .pays-svg.n-recense{fill:var(--rec)}
.explo-cadre .pays-svg.n-suivi{fill:var(--sui)}
.explo-cadre .pays-svg.n-modelise{fill:var(--mod)}
.explo-cadre .pays-svg.on{stroke:var(--encre)}
.explo-cont-btn{background:color-mix(in srgb,var(--nuit) 60%,transparent);border:1px solid var(--trait2);color:var(--encre2);border-radius:2px;font:600 9.5px var(--mono);letter-spacing:.12em}
.explo-cont-btn:hover,.explo-cont-btn.on{background:var(--accent);color:var(--accent-texte);border-color:var(--accent)}
.explo-zoom button{background:color-mix(in srgb,var(--nuit) 60%,transparent);border:1px solid var(--trait2);color:var(--encre);border-radius:2px}
.explo-zoom button:hover{background:var(--accent);color:var(--accent-texte)}
.explo-fiche{background:var(--carte);border:1px solid var(--trait);border-radius:4px;color:var(--encre)}
.explo-fiche-vide{color:var(--gris)}
.explo-fiche-vide b{color:var(--encre);font:400 20px var(--titre)}
.explo-fiche .pays{color:var(--encre);font:400 24px var(--titre)}
.explo-fiche .quoi{color:var(--encre2)}
.explo-fiche-lien{background:var(--accent);color:var(--accent-texte);border-radius:2px;font:700 11px var(--txt);letter-spacing:.1em;text-transform:uppercase}
.explo-fiche-lien:hover{background:var(--accent2);color:#fff}
.explo-fv.n-suivi .explo-fv-niv{background:var(--sui)}.explo-fv.n-modelise .explo-fv-niv{background:var(--mod)}
.explo-fv.n-recense .explo-fv-niv{background:var(--rec)}

/* Pour qui */
.cy-publics-grille{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--trait2);border:1px solid var(--trait2)}
.cy-pub{background:var(--carte);padding:26px 26px 28px;display:flex;flex-direction:column}
.cy-pub h3{margin:0 0 14px;font:600 10px var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--gris)}
.cy-pub p.cy-pub-t{margin:0 0 12px;font:400 26px/1.1 var(--titre);color:var(--encre)}
.cy-pub p{margin:0;font:400 13.5px/1.6 var(--txt);color:var(--encre2)}
.cy-pub a{margin-top:auto;padding-top:18px;color:var(--accent);text-decoration:none;font:600 12.5px var(--txt)}
.cy-pub a:hover{text-decoration:underline}
.cy-pub-or{background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 10%,transparent),color-mix(in srgb,var(--accent) 2%,transparent)),var(--carte)}
.cy-pub-or h3{color:var(--accent)}

/* Pied */
.pied{color:var(--gris);border-top:1px solid var(--trait);padding-top:28px;margin-top:40px}
.pied-legal{font:600 10.5px/1.7 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--encre2);max-width:80ch;margin:0 0 18px}
.pied a{color:var(--accent)}

/* Volet */
.volet-fond{background:color-mix(in srgb,var(--nuit) 70%,transparent)}
.volet-panneau{background:var(--nuit2);border-left:1px solid var(--trait2);box-shadow:-40px 0 80px rgba(0,0,0,.35);color:var(--encre)}
.volet-fermer{background:transparent;border:1px solid var(--trait2);color:var(--encre);border-radius:2px}
.volet-corps .pays{font:400 30px/1.05 var(--titre);color:var(--encre);letter-spacing:0}
.vl-titre{color:var(--accent);letter-spacing:.16em}
.vl-scrutin,.vl-clos{border:1px solid var(--trait);border-radius:4px;background:var(--carte);color:var(--encre)}
.vl-scrutin:hover,.vl-clos:hover{background:var(--carte2);border-color:var(--trait2)}
.vl-scrutin.n-modelise{border-left:2px solid var(--mod)}.vl-scrutin.n-suivi{border-left:2px solid var(--sui)}
.vl-scrutin.vise{box-shadow:0 0 0 1px var(--accent)}
.vl-scrutin .quoi,.vl-clos .quoi{color:var(--encre2)}
.vl-scrutin .quand,.vl-clos .quand,.vl-rien,.vl-clos .statut,.vl-scrutin .agr .t{color:var(--gris)}
.vl-scrutin .proba,.vl-scrutin .agr,.vl-scrutin .rien{border-top-color:var(--trait)}
.vl-scrutin .proba .n{color:var(--mod-clair)}
.vl-clos .mesure{color:var(--encre)}.vl-clos .mesure.nr{color:var(--sui-clair)}
.volet .explo-fiche-lien{margin-top:14px}
@media(max-width:640px){.volet-panneau{border-top:2px solid var(--accent);border-radius:4px 4px 0 0}}

/* Calendrier modal */
.cal-overlay{background:color-mix(in srgb,var(--nuit) 78%,transparent)}
.cal-dialog{background:var(--nuit2);border:1px solid var(--trait2);border-radius:4px;color:var(--encre)}
.cal-tete{background:var(--nuit2);border-bottom:1px solid var(--trait2);color:var(--encre)}
.cal-tete h3{margin:0;font:400 20px var(--titre);letter-spacing:0;text-transform:none;color:var(--encre)}
.cal-mois{color:var(--accent)}
.cal-item{border-bottom-color:var(--trait);color:var(--encre)}
.cal-item:hover{background:var(--carte)}
.cal-item.n-modelise{background:color-mix(in srgb,var(--mod) 8%,transparent)}
.cal-drap{border-color:var(--trait2);background:var(--carte)}
.cal-voir{background:var(--carte2);color:var(--encre)}
.cal-txt span{color:var(--encre)}.cal-txt span+span{color:var(--gris)}

/* ---------- Page des prévisions ---------- */
body.page-prev{background:var(--nuit);color:var(--encre)}
.pp-tete{display:flex;justify-content:space-between;align-items:center;padding:18px clamp(20px,4vw,48px);border-bottom:1px solid var(--trait2)}
.pp-retour{color:var(--encre2);text-decoration:none;font:600 12px var(--txt)}
.pp-retour:hover{color:var(--accent)}
.pp-marque{font:600 11px var(--mono);letter-spacing:.3em;text-transform:uppercase;color:var(--accent);margin-right:120px}
.pp{max-width:1000px;margin:0 auto;padding:0 clamp(20px,4vw,48px) 80px}
.pp-intro{padding:70px 0 40px;border-bottom:1px solid var(--accent2)}
.pp-intro h1{margin:0;font:400 clamp(44px,6.5vw,88px)/1 var(--titre);letter-spacing:0;color:var(--encre)}
.pp-lead{margin:24px 0 0;max-width:60ch;font:italic 400 clamp(19px,1.7vw,24px)/1.4 var(--titre);color:var(--encre2)}
.pp-bloc{display:grid;grid-template-columns:240px 1fr;gap:0 48px;padding:44px 0 40px;border-bottom:1px solid var(--trait2)}
.pp-bloc-tete{position:sticky;top:24px;align-self:start}
.pp-bloc-tete h2{margin:0;font:400 30px/1.05 var(--titre);letter-spacing:0;color:var(--encre)}
.pp-bloc>*:not(.pp-bloc-tete){grid-column:2;min-width:0}
.pp-etapes{margin:0;padding:0;list-style:none;counter-reset:e;display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--trait);border:1px solid var(--trait)}
.pp-etapes li{counter-increment:e;background:var(--carte);padding:22px 22px 24px}
.pp-etapes li:before{content:"0" counter(e);display:block;font:400 13px var(--mono);letter-spacing:.2em;color:var(--accent);margin-bottom:12px}
.pp-etapes b{display:block;font:400 20px/1.15 var(--titre);color:var(--encre);margin-bottom:8px}
.pp-etapes p{margin:0;font:400 13.5px/1.6 var(--txt);color:var(--encre2)}
.pp-note{margin:20px 0 0;font:400 13.5px/1.6 var(--txt);color:var(--gris);max-width:70ch}
.pp .vide{border:1px dashed var(--trait2);color:var(--encre2);padding:22px;border-radius:4px;font-size:13.5px}
.pp .vide b{color:var(--encre);font:400 18px var(--titre);display:block;margin-bottom:6px}
.pp .cy-prev-kpis{margin-top:0}
.pp .cy-prev-clos{margin-top:24px}
.pp-just{margin-top:26px}
.pp .justesse{margin:0;padding:0;border:0;background:transparent;min-width:0}
.pp .justesse>h4{display:none}
.pp-liste{margin:0;padding:0;list-style:none}
.pp-liste li{padding:12px 0;border-bottom:1px solid var(--trait);font:400 14.5px/1.55 var(--txt);color:var(--encre2)}
.pp-liste li:last-child{border-bottom:0}
.pp-liste b{color:var(--encre);font-weight:600}
.pp-contact p{margin:0 0 20px;font:400 15px/1.6 var(--txt);color:var(--encre2);max-width:60ch}
.pp-contact .cy-cta{justify-self:start}
.pp-pied{max-width:1000px;margin:0 auto;padding:28px clamp(20px,4vw,48px) 40px;border-top:1px solid var(--trait);color:var(--gris);font-size:11px}
.pp-pied .pied-legal{margin-bottom:16px}

/* ---------- Écrans étroits ---------- */
@media(max-width:1000px){
  .cy-prev{padding:24px 20px}.cy-prev-tete{grid-template-columns:1fr}.cy-prev-tete .cy-cta{grid-column:1;grid-row:auto;justify-self:start;margin-top:16px}
  .cy-prev-kpis{grid-template-columns:1fr 1fr}.cy-kpi-grand{grid-column:1/-1}.cy-kpi-grand b{font-size:64px}.cy-kpi b{font-size:40px}
  .cy-prev-cols{grid-template-columns:1fr}.cy-prev-clos{grid-template-columns:1fr}
  .cy-bande{grid-template-columns:1fr}.cy-bande h3{position:static;flex-direction:row;align-items:baseline;gap:12px}.cy-bande h3 b{font-size:44px}
  .cy-publics-grille{grid-template-columns:1fr}
  .cy-h2{font-size:28px}
  .pp-bloc{grid-template-columns:1fr;gap:16px}.pp-bloc-tete{position:static}.pp-bloc>*:not(.pp-bloc-tete){grid-column:1}.pp-etapes{grid-template-columns:1fr}
}

/* ---------- Ils parlent de nous (bande sous l'entrée) ---------- */
.cy-cites{display:flex;align-items:center;gap:28px;flex-wrap:wrap;padding:18px 0 16px;border-bottom:1px solid var(--trait2);margin:0 0 28px}
.cy-cites-t{font:600 9.5px var(--mono);letter-spacing:.2em;text-transform:uppercase;color:var(--gris);flex:none}
.cy-cites ul{display:flex;flex:1;flex-wrap:wrap;gap:10px 22px;margin:0;padding:0;list-style:none;justify-content:space-between;align-items:flex-end}
.cy-cites li a{display:inline-flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:4px;text-decoration:none;color:var(--encre2);opacity:.85;transition:opacity .15s,color .15s}
.cy-cites li a:hover{opacity:1;color:var(--encre)}
.cy-cite-nom{font:400 24px/1.1 var(--titre);letter-spacing:-.01em;white-space:nowrap}
.cy-cite-nom img{height:22px;width:auto;max-width:150px;display:block;object-fit:contain;filter:grayscale(1) contrast(1.05);opacity:.82}
:root:not([data-theme="jour"]) .cy-cite-nom img{filter:grayscale(1) invert(1) brightness(1.15)}
.cy-cites li a:hover .cy-cite-nom img{opacity:1}
.cy-cite-quand{font:400 9.5px var(--mono);letter-spacing:.08em;color:var(--gris)}
@media(max-width:1200px){.cy-cites{flex-direction:column;align-items:flex-start;gap:12px}.cy-cites ul{justify-content:flex-start;gap:12px 26px;width:100%}}
@media(max-width:900px){.cy-cites li a{align-items:flex-start}.cy-cite-nom{font-size:19px}}

/* ---------- Presse ---------- */
.cy-presse{margin:28px 0 8px;padding:22px 26px 20px;border:1px solid var(--trait2);border-left:3px solid var(--accent);background:var(--carte)}
.cy-presse .cy-kicker{margin-bottom:14px}
.cy-presse-liste{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1px;background:var(--trait);border:1px solid var(--trait)}
.cy-presse-item{background:var(--carte);padding:16px 18px 14px;text-decoration:none;color:inherit;display:flex;flex-direction:column;gap:6px;min-width:0}
.cy-presse-item:hover{background:color-mix(in srgb,var(--accent) 6%,var(--carte))}
.cy-presse-media{font:400 24px/1.05 var(--titre);color:var(--encre)}
.cy-presse-titre{font:400 12.5px/1.45 var(--txt);color:var(--encre2)}
.cy-presse-date{font:500 10px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--gris)}
.pp .cy-presse{grid-column:1/-1;margin:0;border-top:0;border-right:0;border-bottom:1px solid var(--trait2);padding:36px 0 34px;background:transparent;border-left:0}
.pp .cy-presse-liste{border:1px solid var(--trait)}

/* ---------- Bilan : faits marquants ---------- */
.cy-faits{margin:22px 0 0;padding:0;list-style:none;border-top:1px solid var(--trait2)}
.cy-faits li{display:grid;grid-template-columns:minmax(200px,.7fr) 1.6fr;gap:4px 24px;padding:14px 0;border-bottom:1px solid var(--trait);font:400 14px/1.55 var(--txt);color:var(--encre2)}
.cy-faits b{color:var(--encre);font-weight:600;display:block}
.cy-faits .quand{font:400 11px var(--mono);color:var(--gris);display:block}
.cy-faits .fait{color:var(--encre2)}
.cy-faits .fait::first-letter{text-transform:uppercase}

/* ---------- Prévisions ouvertes ---------- */
.cy-ouvertes{display:flex;flex-direction:column;gap:16px}
.cy-ouv{display:flex;flex-direction:column;gap:6px;padding:20px 22px 18px;border:1px solid color-mix(in srgb,var(--accent) 45%,transparent);background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 10%,transparent),transparent 60%),var(--carte);position:relative}
.cy-ouv-etat{position:absolute;top:14px;right:14px;font:600 9.5px var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--accent-texte);background:var(--accent);padding:4px 8px;border-radius:2px}
.cy-ouv .cy-pc-pays{font:400 24px/1.05 var(--titre);color:var(--encre)}
.cy-ouv .cy-pc-quoi{font:400 14px var(--txt);color:var(--encre2)}
.cy-ouv .cy-pc-quand{font:400 11px var(--mono);color:var(--gris)}
.cy-ouv-t{width:100%;border-collapse:collapse;margin:12px 0 4px;font:400 13px var(--txt)}
.cy-ouv-t th,.cy-ouv-t td{padding:8px 10px;border-bottom:1px solid var(--trait);text-align:right}
.cy-ouv-t thead th{font:600 9.5px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--gris);text-align:right;vertical-align:bottom;max-width:9ch}
.cy-ouv-t tbody th{text-align:left;color:var(--encre);font-weight:600}
.cy-ouv-t td{font:400 20px/1 var(--chiffre);color:var(--encre)}
.cy-ouv-t td:last-child{color:var(--accent);font-weight:700}
.cy-ouv-tirage{font:400 11px var(--mono);color:var(--gris);margin-top:4px}
.cy-ouv-lien,.cy-ouv-pays{color:var(--accent);text-decoration:none;font:600 12.5px var(--txt);margin-top:6px}
.cy-ouv-lien:hover,.cy-ouv-pays:hover{text-decoration:underline}
.cy-prepa h4{margin:0 0 8px;font:600 10px var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--gris)}
.cy-prepa ul{margin:0;padding:0;list-style:none;border-top:1px solid var(--trait2)}
.cy-prepa li{padding:10px 0;border-bottom:1px solid var(--trait);font:400 13.5px/1.5 var(--txt);color:var(--encre2);display:flex;flex-wrap:wrap;gap:4px 10px;align-items:baseline}
.cy-prepa li a{text-decoration:none;color:inherit}.cy-prepa li a:hover b{text-decoration:underline}
.cy-prepa b{color:var(--encre);font-weight:600}
.cy-prepa .liste{flex:1 1 auto}
.cy-prepa .quand{font:400 11px var(--mono);color:var(--gris)}
.cy-ouvertes.compact .cy-ouv-t td{font-size:17px}

/* ---------- Abonnement ---------- */
.cy-abo{margin:16px 0 4px;padding:14px 16px 13px;border:1px dashed var(--trait2);border-radius:3px;position:relative;background:color-mix(in srgb,var(--nuit2) 60%,transparent)}
.cy-abo-tag{position:absolute;top:-9px;left:12px;font:600 9px var(--mono);letter-spacing:.16em;text-transform:uppercase;background:var(--accent);color:var(--accent-texte);padding:3px 7px;border-radius:2px}
.cy-abo b{display:block;font:400 17px var(--titre);color:var(--encre);margin:2px 0 4px}
.cy-abo p{margin:0;font:400 12.5px/1.5 var(--txt);color:var(--encre2)}
.cy-pub .cy-mail{color:var(--accent);text-decoration:none;margin:0;padding:0;font:inherit}
.cy-pub .cy-mail:hover{text-decoration:underline}

/* ---------- Page des prévisions : méthode et accès ---------- */
.pp-chapo{margin:0 0 22px;font:400 16px/1.65 var(--txt);color:var(--encre2);max-width:72ch}
.pp-bilan .cy-faits{margin-top:26px}
.pp-acces-grille{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1px;background:var(--trait2);border:1px solid var(--trait2)}
.pp-acces-grille .cy-abo{margin:0;border:0;border-radius:0;background:var(--carte);padding:24px 22px 22px}
.pp-acces-grille .cy-abo-tag{top:12px;left:auto;right:12px}
.pp-contact-carte{background:var(--carte);padding:24px 22px 22px;display:flex;flex-direction:column}
.pp-contact-carte b{display:block;font:400 20px/1.15 var(--titre);color:var(--encre);margin-bottom:8px}
.pp-contact-carte p{margin:0;font:400 13.5px/1.6 var(--txt);color:var(--encre2)}
.pp-contact-carte a:not(.cy-cta){color:var(--accent);text-decoration:none}
.pp-contact-carte a:not(.cy-cta):hover{text-decoration:underline}
.pp-contact-carte .cy-cta{margin-top:auto;padding-top:12px;align-self:start;margin-top:18px}
.pp-contact-or{background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 10%,transparent),color-mix(in srgb,var(--accent) 2%,transparent)),var(--carte)}
.pp-pied a{color:var(--accent)}

@media(max-width:900px){
  .fac-menu:after{display:none}
  .fac-colonne{padding-top:54px}
  .compte{display:grid;grid-template-columns:1fr 1fr}.compte>div{border-right:0;border-bottom:1px solid var(--trait)}
  .compte .n{font-size:40px}
  .bascule{top:10px;right:10px;padding:6px 9px}
  .pp-marque{margin-right:110px}
}
/* Mois choisi sur la frise : la bande correspondante du mur s'éclaire. */
.cy-bande.mois-on{background:linear-gradient(90deg,color-mix(in srgb,var(--accent) 6%,transparent),transparent 60%)}
.cy-bande.mois-on h3 b{color:var(--encre)}
.fac-colonne .fac-cta{position:relative;z-index:1}
@media(max-width:900px){
  .cy-faits li{grid-template-columns:1fr}
  .pp-acces-grille{grid-template-columns:1fr}
  .cy-presse-liste{grid-template-columns:1fr}
  .cy-ouv-t td{font-size:16px}.cy-ouv-t th,.cy-ouv-t td{padding:6px 6px}
}
