/* v1.3.0 : largeur calculée depuis le BORD GAUCHE RÉEL du module.
   Ne jamais recentrer un bloc à 100vw dans une page ayant un menu latéral.
   Le JavaScript définit --sdis11-map-fluid-width depuis getBoundingClientRect().left.
   Sans JS, le conteneur reste à 100% (dégradation propre). */
html body .sdis11-map {
  --sdis-navy:#132d49;
  --sdis-blue:#214a68;
  --sdis-red:#b6233c;
  --sdis-border:#e4eaf0;
  color:#213346;
  font-family:inherit;
  display:block;
  box-sizing:border-box;
  width:var(--sdis11-map-fluid-width, 100%) !important;
  max-width:none !important;
  min-width:0;
  position:relative !important;
  inset:auto !important;
  transform:none !important;
  margin:0 !important;
  overflow:visible;
}
/* Sections Impreza et emballages WPBakery pouvant masquer un contenu plus large.
   Ne vise que la section qui contient la carte, pas les autres pages. */
@supports selector(.l-section:has(.sdis11-map)) {
  .l-section:has(.sdis11-map),
  .l-section-h:has(.sdis11-map),
  .vc_row:has(.sdis11-map),
  .vc_column_container:has(.sdis11-map),
  .wpb_wrapper:has(.sdis11-map) {
    overflow:visible !important;
  }
}

/* Respect de la police d'Impreza (y compris les entêtes et formulaires). */
.sdis11-map *{box-sizing:border-box;font-family:inherit!important}
.sdis11-map .leaflet-container,.sdis11-map .leaflet-container *{font-family:inherit!important}
/* Débordement maîtrisé hors du conteneur WPBakery, sans imposer de police. */
.sdis11-map .sdis11-map-hero,.sdis11-map .sdis11-map-inner,.sdis11-map .sdis11-map-canvas,.sdis11-map .sdis11-map-directory,.sdis11-map .sdis11-map-results{width:100%;max-width:none;min-width:0}

.sdis11-map .sdis11-map-hero{background:linear-gradient(122deg,#102944,#1a4568);border-radius:18px;color:#fff;padding:clamp(30px,5vw,68px);}
.sdis11-map h2{font-size:clamp(30px,4vw,48px);line-height:1.14;color:#fff;margin:12px 0 18px;font-weight:800}
.sdis11-map .sdis11-map-hero p{max-width:760px;line-height:1.8;color:#e3edf4;font-size:17px}
.sdis11-map-overline{letter-spacing:.11em;text-transform:uppercase;font-size:12px;font-weight:750;color:#c74b60}
.sdis11-map-hero .sdis11-map-overline{color:#ffb5be}
.sdis11-map-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:24px}
.sdis11-map-actions a{border:1px solid rgba(255,255,255,.5);border-radius:9px;padding:10px 17px;color:white;text-decoration:none;font-weight:700}
.sdis11-map-actions a:hover,.sdis11-map-actions a:focus-visible{background:white;color:#132d49}
.sdis11-map-inner{padding:clamp(24px,3vw,50px) clamp(6px,2vw,34px);max-width:none;margin:0}
.sdis11-map-heading{display:flex;justify-content:space-between;align-items:end;flex-wrap:wrap;gap:15px}
.sdis11-map h3{font-size:clamp(24px,3vw,32px);margin:10px 0;color:#172e47;line-height:1.2}
.sdis11-map-count{background:#eff4f7;border-radius:999px;padding:9px 14px;font-weight:700;color:#264663}
.sdis11-map-reveal{background:#b6233c!important;color:#fff!important;border:0!important;padding:13px 23px!important;border-radius:10px!important;font-weight:700!important;cursor:pointer;margin:8px 0}
.sdis11-map-reveal:disabled{opacity:.72;cursor:default}
.sdis11-map-status{font-size:14px;color:#526777;min-height:24px}
.sdis11-map-wheel{margin:8px 0 13px;font-size:14px;color:#526777}
.sdis11-map-wheel[hidden]{display:none!important}
.sdis11-map-canvas{width:100%;height:clamp(440px,60vh,700px);min-height:320px;border:1px solid #dce5eb;border-radius:14px;z-index:0;overflow:hidden}
.sdis11-map-canvas[hidden]{display:none!important}
.sdis11-map-directory{margin-top:32px}
.sdis11-map-directory label{display:block;margin-bottom:9px;font-weight:750;color:#172e47}
.sdis11-map-directory input{width:100%;padding:14px;border:1px solid #cdd8e2;border-radius:10px;font:inherit;font-size:16px;background:#fff;color:#213346}
.sdis11-map-results{margin-top:21px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.sdis11-map-result{display:flex;flex-direction:column;justify-content:space-between;gap:14px;border:1px solid var(--sdis-border);border-radius:12px;padding:20px;background:#fff;box-shadow:0 8px 30px rgba(17,44,70,.04)}
.sdis11-map-result[hidden]{display:none}
.sdis11-map-result strong{font-size:18px;color:#173650}
.sdis11-map-result p{margin:6px 0 4px;line-height:1.6}
.sdis11-map-result small{color:#526777}
/* Portrait et nom du chef intégrés à chaque carte de centre, jamais dans un bloc séparé. */
.sdis11-map-result{position:relative;overflow:visible}
.sdis11-map-result-chef{display:flex;align-items:center;gap:17px;margin-top:15px;padding-top:17px;border-top:1px solid var(--sdis-border);min-height:158px}
.sdis11-map-result-portrait-wrap{position:relative;flex:0 0 116px;width:116px;min-width:0}
.sdis11-map-portrait-trigger{display:block;width:116px;height:138px;border:0;padding:0;margin:0;cursor:zoom-in;border-radius:12px;background:#edf3f7;overflow:hidden;box-shadow:0 4px 14px rgba(19,45,73,.12)}
.sdis11-map-result-portrait,.sdis11-map-result-portrait-placeholder{display:block;width:116px;height:138px;object-fit:cover;object-position:50% 20%;border-radius:12px;background:#eef3f7}
.sdis11-map-result-portrait-placeholder{display:grid;place-items:center;flex:0 0 116px;font-size:35px;color:#64798a}
.sdis11-map-result-chef-info{display:flex;flex-direction:column;gap:5px;min-width:0}
/* Survol souris : véritable aperçu 258 × 322 px. L'image ne masque pas l'annuaire.
   Le clic ouvre une visionneuse native accessible au clavier et au tactile. */
.sdis11-map-result-portrait-popover{position:absolute;left:0;bottom:calc(100% + 11px);width:258px;max-width:min(258px,calc(100vw - 34px));pointer-events:none;opacity:0;visibility:hidden;transform:translateY(7px) scale(.98);transition:opacity .14s ease,transform .14s ease;z-index:200;border:5px solid #fff;border-radius:15px;background:white;box-shadow:0 20px 48px rgba(16,40,64,.30)}
.sdis11-map-result-portrait-popover img{display:block;width:100%;height:314px;object-fit:cover;object-position:50% 20%;border-radius:9px}
@media (hover:hover) and (pointer:fine) {.sdis11-map-result-portrait-wrap:hover .sdis11-map-result-portrait-popover,.sdis11-map-result-portrait-wrap:focus-within .sdis11-map-result-portrait-popover{opacity:1;visibility:visible;transform:translateY(0) scale(1)}}
.sdis11-map-portrait-dialog{position:fixed;inset:0;margin:auto;padding:18px;background:white;color:#20374d;border:0;border-radius:17px;box-shadow:0 24px 78px rgba(8,28,48,.40);width:min(460px,calc(100vw - 28px));max-width:460px;max-height:90dvh;overflow:auto}
.sdis11-map-portrait-dialog::backdrop{background:rgba(9,26,44,.74)}
.sdis11-map-portrait-dialog img{display:block;width:100%;max-height:min(69dvh,620px);height:auto;object-fit:contain;border-radius:10px}
.sdis11-map-portrait-dialog-caption{font-size:16px;font-weight:750;margin:14px 0 2px;text-align:center}
.sdis11-map-portrait-close{display:block;margin:0 0 12px auto;border-radius:8px;border:1px solid #d5dee7;background:#f1f5f8;color:#193a57;padding:7px 13px;cursor:pointer;font-weight:700}
@media (prefers-reduced-motion:reduce){.sdis11-map-result-portrait-popover{transition:none}}
.sdis11-map-result-chef-label{font-size:11px;font-weight:750;letter-spacing:.075em;color:#64798a}
.sdis11-map-result-chef .sdis11-map-result-chef-name{font-size:15px;line-height:1.4;overflow-wrap:anywhere;color:#183850}
.sdis11-map-result-actions{display:flex;gap:8px;flex-wrap:wrap}
.sdis11-map-result-actions a{display:inline-block;border-radius:8px;border:1px solid #d8e1e9;padding:8px 12px;text-decoration:none;font-size:14px;font-weight:700;color:#17466c}
.sdis11-map-result-actions a:first-child{background:#f0f5f8}
/* Itinéraire vers un centre, sans appel à la localisation avant le clic. */
.sdis11-map-result-actions a.sdis11-map-route,.sdis11-marker-actions a.sdis11-map-route{background:#b6233c;color:white!important;border-color:#b6233c}
.sdis11-map-result-actions a.sdis11-map-route:hover,.sdis11-marker-actions a.sdis11-map-route:hover{background:#8e1930;color:white!important}
.sdis11-marker-popup .sdis11-marker-estimated{display:block;margin:6px 0 8px;color:#4a5660}
.sdis11-marker-actions{display:flex;flex-wrap:wrap;gap:9px;margin-top:10px}
.sdis11-marker-actions a{display:inline-block;border:1px solid #cdd7e1;border-radius:7px;padding:7px 10px;text-decoration:none;font-weight:700;color:#173a5c;background:#f0f5f8}
.sdis11-marker-popup a:focus-visible{outline:3px solid #b6233c;outline-offset:3px}
.sdis11-map-disclaimer{background:#f1f5f8;border-radius:12px;padding:16px 19px;margin-top:38px;font-size:14px;line-height:1.6}
.sdis11-map :focus-visible{outline:3px solid #fcb742;outline-offset:3px}
@media(max-width:750px){.sdis11-map-results{grid-template-columns:1fr}.sdis11-map-inner{padding:25px 0}.sdis11-map .sdis11-map-hero{border-radius:12px;padding:28px 21px}.sdis11-map-hero p{font-size:15px}.sdis11-map-canvas{min-height:340px;height:390px}.sdis11-map-result-portrait-wrap{width:96px;flex-basis:96px}.sdis11-map-portrait-trigger,.sdis11-map-result-portrait,.sdis11-map-result-portrait-placeholder{width:96px;height:114px}.sdis11-map-result-chef{min-height:132px;gap:13px}}

@media(min-width:1380px){.sdis11-map-results{grid-template-columns:repeat(3,minmax(0,1fr))}}

/* Sur les écrans tactiles, le survol est supprimé : toucher le portrait ouvre la visionneuse. */
@media (hover:none) { .sdis11-map-result-portrait-popover{display:none!important} }

/* RGAA : titres de cartes, état des filtres annoncé et visible, contrastes du focus. */
.sdis11-map-result-title{font-size:18px;color:#173650;margin:0;font-weight:800;line-height:1.4}
.sdis11-map-search-summary{margin:10px 0 2px;font-size:14px;color:#314f65;line-height:1.5}
