/* Cartes départementales interactives : fond topographique + calque SVG cliquable + zoom. */
.carte-departement-interactive{margin:1rem 0 1.6rem;position:relative;}
.carte-departement-interactive__help{margin:0 0 .75rem;color:#4b5563;font-size:.96rem;line-height:1.45;}
.carte-departement-interactive__viewport{position:relative;overflow:hidden;border:1px solid rgba(34,48,60,.16);border-radius:18px;background:#eef2f6;box-shadow:0 14px 34px rgba(15,23,42,.10);}
.carte-departement-interactive__stage{position:relative;overflow:hidden;cursor:default;touch-action:none;}
.carte-departement-interactive__stage.is-draggable{cursor:grab;}
.carte-departement-interactive__stage.is-dragging{cursor:grabbing;}
.carte-departement-interactive__zoomable{position:relative;width:100%;min-height:360px;transform-origin:0 0;will-change:transform;overflow:hidden;}
.carte-departement-interactive__fallback{position:absolute;inset:0;z-index:0;background:linear-gradient(135deg,#e8edf3 0%,#d9e2ea 36%,#f6efd8 70%,#e4d1ae 100%);}
.carte-departement-interactive__image{position:absolute;inset:0;z-index:1;display:block;width:100%;height:100%;object-fit:fill;}
.carte-departement-interactive__image.is-missing{display:none;}
.carte-departement-interactive__svg-layer{position:absolute;inset:0;z-index:2;width:100%;height:100%;pointer-events:none;}
.carte-departement-interactive__svg-layer>svg{display:block;position:absolute;inset:0;width:100%;height:100%;}
.carte-departement-interactive__svg-layer a,.carte-departement-interactive__svg-layer .commune-link,.carte-departement-interactive__svg-layer .commune-zone{pointer-events:auto;}
.carte-departement-interactive__zoom-control{position:absolute;z-index:10;top:.85rem;right:.85rem;display:flex;align-items:center;gap:.35rem;padding:.42rem;border-radius:14px;background:rgba(255,255,255,.94);border:1px solid rgba(34,48,60,.18);box-shadow:0 10px 24px rgba(15,23,42,.16);backdrop-filter:blur(4px);}
.carte-departement-interactive__zoom-title{padding:0 .35rem;font-size:.86rem;font-weight:700;color:#334155;}
.carte-departement-interactive__btn{appearance:none;border:1px solid rgba(34,48,60,.16);background:#fff;color:#1f2937;border-radius:10px;min-width:2.15rem;height:2.15rem;padding:0 .65rem;font-weight:800;line-height:1;cursor:pointer;}
.carte-departement-interactive__btn--reset{min-width:3.6rem;font-size:.82rem;}
.carte-departement-interactive__btn:hover,.carte-departement-interactive__btn:focus-visible{background:#eff6ff;border-color:rgba(32,95,171,.38);outline:0;}
.carte-departement-interactive .commune-link,.carte-departement-interactive .commune-zone{outline:none;}
.carte-departement-interactive .commune-zone{fill:rgba(255,255,255,.001);stroke:rgba(255,255,255,0);stroke-width:1.25;vector-effect:non-scaling-stroke;transition:fill .14s ease,stroke .14s ease;}
.carte-departement-interactive .commune-zone--etudiee{cursor:pointer;}
.carte-departement-interactive .commune-zone--non-etudiee{cursor:help;}
.carte-departement-interactive a:hover .commune-zone--etudiee,.carte-departement-interactive a:focus .commune-zone--etudiee,.carte-departement-interactive a:focus-visible .commune-zone--etudiee,.carte-departement-interactive .commune-zone--etudiee:hover,.carte-departement-interactive .commune-zone--etudiee:focus,.carte-departement-interactive .commune-zone--etudiee:focus-visible{fill:rgba(38,122,72,.24);stroke:rgba(27,87,51,.95);}
.carte-departement-interactive .commune-zone--non-etudiee:hover,.carte-departement-interactive .commune-zone--non-etudiee:focus,.carte-departement-interactive .commune-zone--non-etudiee:focus-visible{fill:rgba(160,170,182,.22);stroke:rgba(86,94,104,.75);}
.carte-departement-interactive .commune-label,.carte-departement-interactive .commune-label--large,.carte-departement-interactive .commune-label--medium,.carte-departement-interactive .commune-label--small{display:block;pointer-events:none;opacity:.86;font-family:Arial,Helvetica,sans-serif;font-weight:700;fill:#18202a;stroke:#fff;stroke-width:3.2px;paint-order:stroke;stroke-linejoin:round;}
.carte-departement-interactive.is-zoomed .commune-label{opacity:.94;}
.carte-departement-interactive.is-zoomed-2 .commune-label,.carte-departement-interactive.is-zoomed-3 .commune-label{opacity:1;}
.carte-departement-interactive__message{min-height:1.35rem;margin:.65rem 0 0;color:#34414f;font-weight:700;font-size:.95rem;}
.carte-departement-interactive__message.is-warning{color:#7a4b00;}
.carte-departement-interactive__count{margin:.2rem 0 0;color:#34414f;font-weight:700;font-size:.94rem;}

/* Liste alphabétique compacte : zones tactiles conformes Lighthouse. */
.agl-departement-alpha--compact,.agl-departement-alpha{padding:1rem!important;margin:0 0 1rem!important;}
.agl-departement-alpha-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.8rem;margin-bottom:.65rem!important;}
.agl-departement-alpha-header h3{margin:0 0 .15rem!important;font-size:1.14rem;line-height:1.25;}
.agl-departement-alpha-header p{margin:0!important;font-size:.92rem;color:var(--muted,#5a6b7d);line-height:1.35;}
.agl-letter-index{display:flex;flex-wrap:wrap;gap:.5rem;margin:.7rem 0 .85rem!important;}
.agl-letter-index a{display:inline-flex;align-items:center;justify-content:center;min-width:2.75rem!important;min-height:2.75rem!important;padding:.3rem .58rem!important;border:1px solid var(--border,#d9e2ec);border-radius:999px;background:#fff;font-size:.88rem;font-weight:800;text-decoration:none;color:var(--text,#1f2933);line-height:1;}
.agl-letter-index a:hover,.agl-letter-index a:focus{border-color:var(--primary,#0f3b5f);color:var(--primary,#0f3b5f);outline:0;background:rgba(15,59,95,.045);}
.agl-alpha-block{margin-top:.55rem!important;padding-top:.45rem!important;border-top:1px solid var(--border,#d9e2ec);}
.agl-alpha-block h4{margin:0 0 .35rem!important;font-size:.92rem!important;}
.agl-alpha-city-list{list-style:none;margin:0!important;padding:0!important;}
.agl-alpha-city-list--compact{display:grid!important;grid-template-columns:repeat(5,minmax(0,1fr));gap:.48rem .9rem;columns:initial!important;}
.agl-alpha-city-list--compact li{position:relative;display:flex;align-items:center;gap:.32rem;min-width:0;min-height:40px;margin:0!important;break-inside:auto!important;line-height:1.25;}
.agl-alpha-city-list--compact a{display:flex;align-items:center;width:100%;max-width:100%;min-height:40px;padding:8px 10px;border-radius:10px;font-size:.9rem;font-weight:600;text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.25;}
.agl-alpha-city-list--compact a:hover,.agl-alpha-city-list--compact a:focus{text-decoration:underline;background:rgba(15,59,95,.055);outline:0;}
.agl-alpha-letter-marker{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:1.5rem;height:1.5rem;border-radius:999px;background:rgba(15,59,95,.08);color:var(--primary,#0f3b5f);font-size:.74rem;font-weight:800;line-height:1;}
@media(max-width:1100px){.agl-alpha-city-list--compact{grid-template-columns:repeat(4,minmax(0,1fr));}}
@media(max-width:820px){.carte-departement-interactive__zoomable{min-height:300px;}.agl-alpha-city-list--compact{grid-template-columns:repeat(2,minmax(0,1fr));gap:.4rem .7rem;}.agl-departement-alpha-header{flex-direction:column;}.agl-departement-alpha-header .geotch-btn{align-self:flex-start;}}
@media(max-width:560px){.carte-departement-interactive__zoom-control{top:.55rem;right:.55rem;max-width:calc(100% - 1.1rem);}.carte-departement-interactive__zoomable{min-height:245px;}.carte-departement-interactive__btn{min-height:2.5rem;}.carte-departement-interactive__btn--reset{min-width:6.6rem;}.agl-alpha-city-list--compact{grid-template-columns:repeat(1,minmax(0,1fr));gap:.42rem;}.agl-letter-index a{min-width:2.75rem!important;min-height:2.75rem!important;}.agl-alpha-city-list--compact a{width:100%;min-height:44px;padding:9px 10px;font-size:.92rem;background:rgba(15,59,95,.035);}}


/* Correctifs Lighthouse P1/P3 — carte SVG différée et cibles tactiles compactes. */
.carte-departement-interactive__svg-layer[aria-busy="true"]::before{content:"Chargement de la carte interactive…";position:absolute;inset:0;z-index:3;display:flex;align-items:center;justify-content:center;padding:1rem;text-align:center;color:#334155;font-weight:700;background:rgba(255,255,255,.55);}
.carte-departement-interactive--svg-ready .carte-departement-interactive__svg-layer::before{display:none;}
.agl-alpha-city-list--compact{gap:.55rem .9rem!important;}
.agl-alpha-city-list--compact li{min-height:44px!important;align-items:stretch!important;}
.agl-alpha-city-list--compact a{min-height:44px!important;padding:9px 10px!important;}
.carte-departement-interactive__btn{min-width:44px!important;min-height:44px!important;height:auto!important;}
.carte-departement-interactive__btn--reset{min-width:7.6rem!important;}
@media(max-width:560px){.carte-departement-interactive__zoom-control{flex-wrap:wrap;}.carte-departement-interactive__btn--reset{min-width:100%!important;}}
