/* Mapa de España por provincias (App\Helpers\MapaEspana) */
.ap-mapa { position: relative; max-width: 760px; margin: 0 auto 24px; }
.ap-mapa-svg { display: block; width: 100%; height: auto; }
.ap-mapa-svg path { fill: var(--ap-acento-suave); stroke: var(--ap-superficie); stroke-width: .8; stroke-linejoin: round; transition: fill .15s; }
.ap-mapa-svg a { cursor: pointer; }
.ap-mapa-svg a path { fill: #bcd6f3; fill: color-mix(in srgb, var(--ap-acento) 32%, var(--ap-superficie)); }
.ap-mapa-svg a:hover path, .ap-mapa-svg a.ap-mapa-activa path { fill: var(--ap-acento); }
.ap-mapa-svg a:focus { outline: none; }
.ap-mapa-svg a:focus-visible path { fill: var(--ap-acento); stroke: var(--ap-marca); stroke-width: 2; }
.ap-mapa-svg path.ap-mapa-sin-datos { fill: var(--ap-borde-suave); }
.ap-mapa-recuadros rect { fill: none; stroke: var(--ap-borde); stroke-width: 1; }
.ap-mapa-recuadros text { fill: var(--ap-texto-3); font: 12px var(--ap-letra); }
.ap-mapa figcaption { color: var(--ap-texto-3); font-size: 13px; text-align: center; margin-top: 4px; }
.ap-mapa-tip {
    position: absolute; z-index: 5; pointer-events: none; white-space: nowrap;
    transform: translate(-50%, calc(-100% - 10px));
    background: var(--ap-texto); color: var(--ap-superficie);
    padding: 4px 10px; border-radius: 6px; font-size: 14px; font-weight: 600;
    box-shadow: var(--ap-sombra-alta);
}
.ap-mapa-tip[hidden] { display: none; }
/* Mapa plegado cuando ya hay una provincia elegida */
.ap-mapa-desplegable { margin: 12px 0; }
.ap-mapa-desplegable summary { cursor: pointer; color: var(--ap-acento); font-weight: 600; }
.ap-mapa-desplegable[open] summary { margin-bottom: 8px; }
/* Mapa con escala de color (portada: % de aptos, App\Helpers\MapaAprobados). Azules de menos a más. */
.ap-mapa-escala { --ap-mapa-n0: #d5d8dc; --ap-mapa-n1: #c6dbef; --ap-mapa-n2: #9ecae1; --ap-mapa-n3: #6baed6; --ap-mapa-n4: #3182bd; --ap-mapa-n5: #08519c; }
.ap-mapa-escala .ap-mapa-svg a path { stroke: #fff; }
.ap-mapa-escala .ap-mapa-svg a.ap-mapa-n0 path { fill: var(--ap-mapa-n0); }
.ap-mapa-escala .ap-mapa-svg a.ap-mapa-n1 path { fill: var(--ap-mapa-n1); }
.ap-mapa-escala .ap-mapa-svg a.ap-mapa-n2 path { fill: var(--ap-mapa-n2); }
.ap-mapa-escala .ap-mapa-svg a.ap-mapa-n3 path { fill: var(--ap-mapa-n3); }
.ap-mapa-escala .ap-mapa-svg a.ap-mapa-n4 path { fill: var(--ap-mapa-n4); }
.ap-mapa-escala .ap-mapa-svg a.ap-mapa-n5 path { fill: var(--ap-mapa-n5); }
/* Porcentaje escrito dentro de cada provincia: blanco sobre azules oscuros, oscuro sobre claros */
.ap-mapa-pct { text-anchor: middle; dominant-baseline: central; pointer-events: none; font-family: var(--ap-letra); font-weight: 700; fill: #12263a; }
.ap-mapa-n4 .ap-mapa-pct, .ap-mapa-n5 .ap-mapa-pct { fill: #fff; }
.ap-mapa-n0 .ap-mapa-pct { fill: var(--ap-texto-2); }
/* Al pasar o enfocar se conserva el color y se resalta el borde */
.ap-mapa-escala .ap-mapa-svg a:hover path, .ap-mapa-escala .ap-mapa-svg a.ap-mapa-activa path,
.ap-mapa-escala .ap-mapa-svg a:focus-visible path { stroke: var(--ap-texto); stroke-width: 2; }
.ap-mapa-escala .ap-mapa-svg a:hover, .ap-mapa-escala .ap-mapa-svg a.ap-mapa-activa, .ap-mapa-escala .ap-mapa-svg a:focus-visible { filter: brightness(1.08); }
.ap-mapa-tip-dato { display: block; font-weight: 400; font-size: 13px; opacity: .9; }
.ap-mapa-muestra { display: inline-block; width: 22px; height: 14px; border-radius: 3px; vertical-align: -2px; }
.ap-mapa-muestra.ap-mapa-n0 { background: var(--ap-mapa-n0, #d5d8dc); }
.ap-mapa-muestra.ap-mapa-n1 { background: var(--ap-mapa-n1, #c6dbef); }
.ap-mapa-muestra.ap-mapa-n2 { background: var(--ap-mapa-n2, #9ecae1); }
.ap-mapa-muestra.ap-mapa-n3 { background: var(--ap-mapa-n3, #6baed6); }
.ap-mapa-muestra.ap-mapa-n4 { background: var(--ap-mapa-n4, #3182bd); }
.ap-mapa-muestra.ap-mapa-n5 { background: var(--ap-mapa-n5, #08519c); }
@media (prefers-reduced-motion: reduce) { .ap-mapa-svg path { transition: none; } }
/* En pantallas estrechas el mapa se reduce y el texto no se leería: queda el tooltip al tocar */
@media (max-width: 560px) { .ap-mapa-pct { display: none; } }
