/* ---------------------------------------------------------------
   Cartographe SVG : affichage d'une carte.
   Les couleurs et tailles réglées dans l'éditeur arrivent sous forme
   de variables CSS posées sur .cgs-carte ; les valeurs de repli
   ci-dessous servent à l'éditeur et aux cartes sans réglage.
   --------------------------------------------------------------- */
.cgs-carte{
  max-width:var(--cgs-largeur-max,720px);
  margin:2.2rem auto;
  font-family:var(--cgs-police,'Helvetica Neue',Arial,sans-serif);
  color:var(--cgs-prog,#1B3D5C);
}
.cgs-carte .cgs-svg{display:block;width:100%;height:var(--cgs-hauteur,auto);}

.cgs-svg .cgs-pays{color:var(--cgs-pays,#F0CDB5);fill:var(--cgs-pays,#F0CDB5);
  stroke:var(--cgs-contour,#D9A47C);stroke-width:var(--cgs-contour-ep,1.6px);stroke-linejoin:round;}
.cgs-svg .cgs-point{fill:var(--cgs-point,#C85000);stroke:#fff;stroke-width:2.5;}
.cgs-svg .cgs-lien{stroke:var(--cgs-lien,#8FA3B5);stroke-width:var(--cgs-lien-ep,2px);}
.cgs-svg .cgs-prog-fond{fill:#fff;stroke:#fff;stroke-width:3;}
.cgs-svg .cgs-ville-lbl{fill:var(--cgs-ville,#C85000);}
.cgs-svg .cgs-prog-lbl{fill:var(--cgs-prog,#1B3D5C);}
.cgs-svg .cgs-ville-lbl,
.cgs-svg .cgs-prog-lbl{font-size:var(--cgs-fs,64px);font-weight:700;
  font-family:var(--cgs-police,'Helvetica Neue',Arial,sans-serif);
  paint-order:stroke;stroke:#fff;stroke-width:var(--cgs-halo,4px);stroke-linejoin:round;}

/* --- Liste des programmes sous la carte --- */
.cgs-carte .cgs-liste{list-style:none;margin:20px 0 0;padding:0;}
.cgs-carte .cgs-liste li{margin:0;padding:10px 0;border-bottom:1px solid #DDE3EB;
  font-size:.95rem;line-height:1.55;color:#607080;}
.cgs-carte .cgs-liste li:last-child{border-bottom:none;}
.cgs-carte .cgs-nom{font-weight:700;color:var(--cgs-prog,#1B3D5C);transition:color .16s;}
.cgs-carte .cgs-liste a{color:inherit;text-decoration:none;}
.cgs-carte .cgs-liste a:hover .cgs-nom,
.cgs-carte .cgs-liste li.cgs-on .cgs-nom{color:var(--cgs-point,#C85000);}
.cgs-carte .cgs-liste a:focus-visible{outline:2px solid var(--cgs-point,#C85000);outline-offset:3px;}
.cgs-carte .cgs-brouillon{margin:0 0 .5em;padding:.4em .8em;background:#FFF4D6;
  border-left:4px solid #DBA617;font-size:.85rem;}

/* --- Mise en évidence au survol (carte.js) --- */
.cgs-carte .cgs-lien,
.cgs-carte .cgs-ville,
.cgs-carte .cgs-prog{transition:opacity .2s ease, stroke-width .2s ease;}
.cgs-carte.cgs-actif .cgs-lien:not(.cgs-on),
.cgs-carte.cgs-actif .cgs-ville:not(.cgs-on),
.cgs-carte.cgs-actif .cgs-prog:not(.cgs-on){opacity:.2;}
.cgs-carte.cgs-actif .cgs-lien.cgs-on{stroke-width:calc(var(--cgs-lien-ep,2px) * 2.5);}

/* Sur petit écran la carte prend toute la largeur. */
@media (max-width:620px){
  .cgs-carte .cgs-svg{height:auto;}
}
@media (prefers-reduced-motion:reduce){
  .cgs-carte .cgs-lien,.cgs-carte .cgs-ville,.cgs-carte .cgs-prog,.cgs-carte .cgs-nom{transition:none;}
}
