/* ===== Carte de France « Retrouvez votre délégué » ===== */
.carte-delegues { --cd-bleu: #1F2A44; --cd-bleu-clair: #3A4B73; --cd-rouge: #C8102E; --cd-jaune: #F5C518; margin: 0 auto; max-width: 980px; }
.cd-haut { display: flex; flex-wrap: wrap; gap: 20px 36px; align-items: center; justify-content: center; }
.cd-carte { flex: 0 1 430px; min-width: 0; width: 100%; }
.cd-svg { display: block; width: 100%; height: auto; overflow: visible; }

.cd-region { fill: var(--cd-bleu); stroke: #fff; stroke-width: 1.6; stroke-linejoin: round; cursor: pointer; outline: none; transition: fill .25s ease, transform .25s ease; transform-box: fill-box; transform-origin: center; }
.cd-region:hover, .cd-region:focus-visible { fill: var(--cd-bleu-clair); }
.cd-region.est-actif { fill: var(--cd-rouge); }
.cd-region:focus-visible { stroke: var(--cd-jaune); stroke-width: 3; }
.cd-region.cd-sans { fill: #7C879F; }
.cd-region.cd-sans:hover { fill: #5C6985; }
.cd-region.cd-sans.est-actif { fill: var(--cd-rouge); }

.cd-etiquettes { pointer-events: none; }
.cd-etiquettes circle { fill: #fff; }
.cd-etiquettes text { fill: #fff; font-weight: 800; font-size: 13px; letter-spacing: .02em; }
.cd-etiquettes [data-pour="PACA"] text, .cd-etiquettes .cd-idf { font-size: 11px; }

.cd-ville { cursor: pointer; outline: none; }
.cd-lib { fill: #fff; stroke: var(--cd-bleu); stroke-width: 3.2px; paint-order: stroke; stroke-linejoin: round; font-size: 11.5px; font-weight: 800; pointer-events: all; cursor: pointer; transition: fill .2s ease; }
.cd-ville:hover .cd-lib, .cd-ville:focus-visible .cd-lib { fill: var(--cd-jaune); }
.cd-ville.est-actif .cd-lib { fill: #FFB3BE; stroke: var(--cd-rouge); }
.cd-ville.cd-sans .cd-lib { fill: #DDE2EC; }
.cd-halo { fill: rgba(245, 197, 24, 0); transition: fill .25s ease; }
.cd-pin { fill: var(--cd-jaune); stroke: var(--cd-bleu); stroke-width: 1.3; stroke-linejoin: round; transition: transform .2s ease; }
.cd-pin-oeil { fill: var(--cd-bleu); pointer-events: none; }
.cd-ville:hover .cd-halo, .cd-ville:focus-visible .cd-halo { fill: rgba(245, 197, 24, .45); }
.cd-ville.est-actif .cd-halo { fill: rgba(200, 16, 46, .55); }
.cd-ville.est-actif .cd-pin { fill: #fff; stroke: var(--cd-rouge); }
.cd-ville.est-actif .cd-pin-oeil { fill: var(--cd-rouge); }

/* Ville sans délégué affiché : repère grisé */
.cd-ville.cd-sans .cd-pin { fill: #C9D0DD; }

/* Colonne de boutons (établissements hors carte + légende des villes) */
.cd-droite { flex: 1 1 260px; display: flex; flex-direction: column; justify-content: center; gap: 14px; min-width: 0; }
.cd-autres { display: flex; flex-direction: column; gap: 10px; }
.cd-autres-titre { margin: 0 0 2px; font-size: .95rem; font-weight: 700; color: var(--cd-bleu); }
.cd-bouton { display: flex; align-items: center; gap: 10px; width: 100%; box-sizing: border-box; padding: 11px 16px; border: 2px solid var(--cd-bleu); border-radius: 999px; background: #fff; color: var(--cd-bleu); font: inherit; font-weight: 700; text-align: left; cursor: pointer; transition: background .2s ease, color .2s ease, border-color .2s ease, transform .2s ease; }
.cd-bouton:hover, .cd-bouton:focus-visible { background: var(--cd-bleu); color: #fff; transform: translateX(3px); }
.cd-bouton.est-actif { background: var(--cd-rouge); border-color: var(--cd-rouge); color: #fff; }
.cd-bouton-pastille { flex: 0 0 auto; width: 14px; height: 14px; border-radius: 50%; background: var(--cd-jaune); border: 2px solid var(--cd-bleu); }
.cd-bouton.est-actif .cd-bouton-pastille { border-color: #fff; }
.cd-bouton-tous { background: var(--cd-bleu); color: #fff; justify-content: center; }
.cd-bouton-tous:hover, .cd-bouton-tous:focus-visible { background: var(--cd-bleu-clair); border-color: var(--cd-bleu-clair); }
.cd-bouton-tous.est-actif { background: var(--cd-rouge); }

/* Résultats */
.cd-resultats { margin-top: 28px; scroll-margin-top: 90px; }
.cd-invite { margin: 0; padding: 18px 20px; text-align: center; font-size: 1.1rem; font-weight: 700; color: var(--cd-bleu); background: #F4F7FB; border: 2px dashed #C4CEDF; border-radius: 14px; }
.cd-entete { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 6px 16px; margin: 0 0 14px; padding-bottom: 10px; border-bottom: 3px solid var(--cd-rouge); }
.cd-titre { margin: 0; font-size: 1.25rem; color: var(--cd-bleu); }
.cd-compte { font-size: .95rem; color: #55607A; }
.cd-vide { margin: 0; padding: 14px 16px; background: #FFF6F0; border-radius: 12px; color: #6B3E26; }
.cd-grille { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 16px; }
.cd-resultats [hidden] { display: none !important; }

@media (prefers-reduced-motion: no-preference) {
    @keyframes cd-entree { from { opacity: 0; transform: translateY(18px) scale(.97); } to { opacity: 1; transform: none; } }
    @keyframes cd-pouls { 0%, 100% { opacity: .55; } 50% { opacity: 1; } }
    .cd-entree { animation: cd-entree .5s cubic-bezier(.2,.7,.2,1) both; }
    .cd-invite:not(.cd-invite-fait) { animation: cd-pouls 2.6s ease-in-out infinite; }
}
@media (max-width: 760px) { .cd-droite { flex-basis: 100%; } .cd-grille { grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); } }
