body{

    margin:0;
    font-family:"Montserrat",Arial, sans-serif;
    background:white;

}


header{

    background:#1b4332;
    color:white;
    padding:10px 0;
    text-align:center;


}

footer{
    margin-top:0;
}

header h1{

    margin:0;

    font-family:"Cinzel", serif;

    font-size:2.7rem;

    letter-spacing:0.3px;

    line-height:1.1;

}

header p{

    margin-top:5px;

    font-size:1rem;

    color:#f2f2f2;

}

.panel{
    display:grid;
    grid-template-columns:repeat(4,260px);
    justify-content:center;
    gap:15px;

    padding:10px 10px 4px;
    background:white;
}

.panelExplorar{

    width:100%;

    display:flex;

    justify-content:center;

    background:white;

    padding:10px 10px 4px;

    box-sizing:border-box;

}

.filtro{

    display:flex;
    flex-direction:column;

    gap:8px;

}


.filtro label{

    font-size:15px;

}


.filtro select,
.filtro input{

    width:250px;

    padding:8px;

    border:1px solid #ece6dc;

    border-radius:12px;

    font-size:14px;

    box-sizing:border-box;

}

#listaNumenes input{

    width:auto;

}

#mapa{

    flex:1;

    height:82vh;

    border-radius:14px;

}
/* ===========================
   VENTANA DE NÚMENES
=========================== */

/*#abrirNumenes{

    width:250px;
    padding:8px;

    border:1px solid #ece6dc;
    border-radius:12px;

    background:white;

    cursor:pointer;

}*/

#numenesSeleccionados{

    margin-top:8px;

    display:flex;
    flex-wrap:wrap;
    gap:6px;

}

#numenesSeleccionados span{

    background:#1b4332;
    color:white;

    padding:4px 8px;

    border-radius:20px;

    font-size:12px;

}

.modal{

    position:fixed;

    top:0;
    left:0;

    width:100%;
    height:100%;

    background:rgba(0,0,0,.45);

    display:flex;
    justify-content:center;
    align-items:center;

    z-index:9999;

}

.oculto{

    display:none;

}

.modalContenido{

    width:min(88vw,500px);

    background:#fff;

    border-radius:22px;

    padding:16px; /* Ajusta el padding según tus necesidades */

    box-shadow:0 30px 80px rgba(0,0,0,.18);

    display:flex;

    flex-direction:column;

    max-height:88vh;

}

/* .modalDescripcion{

    margin-top:14px;

    margin-bottom:28px;

    font-size:18px;

    color:#666;

    line-height:1.6; */

/* } */

/* ==========================
   CABECERA MODALES
========================== */

/* .modalCabecera{

    display:flex;
    justify-content:space-between;
    align-items:flex-start;

    margin-bottom:8px; /* Ajusta el margen inferior según tus necesidades */

/* } */

/*.modalDescripcion{

    margin-top:4px;
    margin-bottom:0px;

    font-size:16px;

    color:#666;

    line-height:1.5;*/

/*}*/

.modalCabecera h3{

    margin:0;

}

/* ==========================
   CABECERA MODALES
========================== */

.modalCabecera{

    display:flex;
    justify-content:space-between;
    align-items:flex-start;

    margin-bottom:8px;


}

.modalTitulo{

    display:flex;
    align-items:center;

    gap:22px;

}

.modalIcono{

    width:64px;
    height:64px;

    object-fit:contain;

    flex-shrink:0;
    

}

.modalTitulo h3{
    /* Titulo desplegables */

    margin:0;

    font-size:30px;

    color:#173c2c;

    font-weight:600;

}

.modalDescripcion{

    margin-top:4px;

    font-size:16px;

    color:#666;

    line-height:1.5;

}

.cerrarModal{

    background:none;

    border:none;

    font-size:28px;

    color:#777;

    cursor:pointer;

    line-height:1;

    padding:0;

}

.cerrarModal:hover{

    color:#1b4332;

}

.modalContenido input{
    /* buscador */ 
    width:100%;

    padding:14px 18px;
    font-size:16px;

    border:1px solid #ece6dc;

    border-radius:18px;

    margin-bottom:14px;

    transition:.2s;
    
    box-sizing:border-box;

}
.modalContenido input:focus{

    border-color:#1b4332;

    box-shadow:0 0 0 4px rgba(27,67,50,.12);

    outline:none;

}

#listaNumenes{

    height:300px;

    overflow-y:auto;

    border:1px solid #ece6dc;

    border-radius:12px;

    padding:10px;

}

.modalBotones{

    display:flex;

    justify-content:center;

    align-items:center;

    gap:10px;

    margin-top:8px;

    padding-top:8px;

    border-top:1px solid #ece6dc;

    flex-wrap:wrap;

    flex-shrink:0;

}

.modalBotones button{

    border-radius:16px;

    height:35px;
    min-width:145px;

    font-size:14px;
    font-weight:600;

    cursor:pointer;

    transition:.25s;

}

.modalBotones button:last-child{

    background:#1b4332;

    color:white;

    border:none;

}

.modalBotones button:hover{

    transform:translateY(-2px);

}

.modalBotones button:last-child:hover{

    background:#24553f;

}
.modalBotones button:not(:last-child){

    background:white;

    border:1px solid #ece6dc;

    color:#1b4332;

}

.modalBotones button:not(:last-child):hover{

    background:#f6faf8;

}


/* ===========================
   CONTENEDOR MAPA
=========================== */

#contenedorMapa{

    max-width:1400px;
    display:flex;

    gap:30px;

    align-items:flex-start;

    margin:20px auto;

}

#listaMunicipios{

    margin-top:10px;

    height:250px;

    overflow-y:auto;

    overflow-x:hidden;

    min-height:0;

    contain: layout;

}

/* ===========================
   PANEL LATERAL
=========================== */

#panelResultados{
    /*panel de laderecha */
    width:400px;

    flex-shrink:0;

    background:white;

    border-radius:12px;

    padding:18px;

    box-shadow:0 8px 20px rgba(0,0,0,.10);

    align-self:flex-start;
    

}

/* ===========================
   TARJETAS
=========================== */

.resumen{

    display:flex;

   /* grid-template-columns:repeat(3,1fr); */


    gap:12px;

    margin-bottom:20px;
    

}

.tarjeta{

    display:grid;
    flex-direction:column;

    justify-content:center;
    align-items:center;

    gap:8px;

    background:white;
    border:1px solid #ece6dc;
    border-radius:10px;

    padding:14px 10px;

    flex:1;
    min-width:0;
    min-height:105px;

    text-align:center;
    box-sizing:border-box;
}

.tarjetaIcono{

    display:block;
    margin:0 auto;

    width:40px;
    height:40px;
}

.tarjeta div{

    width:100%;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content: center;

    min-width:0;
}

.tarjeta span{

    font-size:19px;
    font-weight:700;
    line-height:1;
}

.tarjeta small{
/* descripcion de tarjeta */
    margin-top:4px;

    font-size:11px;

    line-height:1.2;

    white-space:normal;

    word-break:normal;

    overflow-wrap:anywhere;
}

/* ===========================
   ACCESIBILIDAD
=========================== */

button:focus,
select:focus,
input:focus,
a:focus{

    outline:3px solid #ffbf47;
    outline-offset:3px;

}

#listaMunicipios button{

    width:100%;

    text-align:left;

    background:white;

    border:none;

    border-radius:6px;

    padding:10px;

    margin-bottom:5px;

    cursor:pointer;

    transition:.2s;

    font:inherit;

}

#listaMunicipios button:hover{

    background:#eef7f2;

    color:#1b4332;

    font-weight:bold;

}

#listaMunicipios button:focus{

    background:#eef7f2;

}
.explorarBotones{

    display:grid;

    grid-template-columns:repeat(2,minmax(260px,1fr));

    gap:15px;

    width:100%;

    max-width:535px;

}
/* ===========================
   CABECERA
=========================== */

.cabecera{

    display:flex;

    justify-content:center;

    align-items:center;

    max-width:1400px;

    margin:0 auto;

    padding:0 20px;

}

.cabeceraIzquierda{

    display:flex;

    align-items:center;

    gap:18px;

}



.logo{

    width:85px;

    height:85px;

    object-fit:contain;

    display:block;

}

.titulo h1{

    margin:0;

}

.titulo p{

    margin-top:4px;

}
.titulo{

    display:flex;

    flex-direction:column;

    justify-content:center;

}

/*#abrirProvincias{

    width:250px;
    border:1px solid #e6e2da;
    border-radius:14px;
    padding:10px 14px;
    font-weight:500;
    transition:.25s;

    background:white;

    cursor:pointer;

}*/

#provinciasSeleccionados{

    margin-top:8px;

    display:flex;
    flex-wrap:wrap;
    gap:6px;

}

#provinciasSeleccionados span{

    background:#1b4332;
    color:white;

    padding:4px 8px;

    border-radius:20px;

    font-size:12px;

}



#listaProvincias input{

    width:auto;

}

/*#abrirCategorias{

    width:250px;
    border:1px solid #e6e2da;
    border-radius:14px;
    padding:10px 14px;
    font-weight:500;
    transition:.25s;

    background:white;

    cursor:pointer;

}*/

#categoriasSeleccionados{

    margin-top:8px;

    display:flex;
    flex-wrap:wrap;
    gap:6px;

}

#categoriasSeleccionados span{

    background:#1b4332;
    color:white;

    padding:4px 8px;

    border-radius:20px;

    font-size:12px;

}

#listaCategorias input{

    width:auto;

}

/*#abrirBibliografia{

    width:250px;
    border:1px solid #e6e2da;
    border-radius:14px;
    padding:10px 14px;
    font-weight:500;
    transition:.25s;

    background:white;

    cursor:pointer;

}*/


#listaBibliografias input{

    width:auto;

}

/*#abrirMunicipios{

    width:250px;
    border:1px solid #e6e2da;
    border-radius:14px;
    padding:10px 14px;
    font-weight:500;
    transition:.25s;

    background:white;

    cursor:pointer;

}

#abrirFichaNumenes{

    width:250px;
    border:1px solid #e6e2da;
border-radius:14px;
padding:10px 14px;
font-weight:500;
transition:.25s;
    background:white;

    cursor:pointer;

}*/

/* ===========================
   SIN RESULTADOS
=========================== */

#sinResultados{

    margin-top:15px;

    padding:15px;

    background:#fff8f0;

    border:1px solid #efd8a8;

    border-radius:14px;

    color:#6a4b14;

}

#sinResultados h3{

    margin-top:0;

    color:#8c5d00;

}


/* ===========================
   RESTABLECER FILTROS
=========================== */

#restablecerFiltros{

    width:100%;

    margin-top:15px;

    padding:10px;

    border:none;

    border-radius:6px;

    background:#1b4332;

    color:white;

    font-weight:bold;

    cursor:pointer;

}

#restablecerFiltros:hover{

    background:#24553f;

}
/* ===========================
   SELECTOR DE IDIOMA
=========================== */

#selectorIdioma{

    position:static;

    display:flex;

    justify-content:flex-end;

    align-items:center;

    gap:10px;

}

.idioma{

    background:none;

    color:rgba(255,255,255,.45);

    border:none;

    cursor:pointer;

    transition:.2s;

}

.idioma:hover{

    color:white;

}

.idioma.activo{

    color:white;

    border:2px solid #d4af37;

    background:rgba(212,175,55,.15);

}


#selectorIdioma span{

    color:#bfc8c4;

}

footer{

    margin-top:60px;

    background:#1f4d37;

    color:white;

    padding:30px 20px;

}

.footerContenido{

    max-width:1100px;

    margin:auto;

    text-align:center;

}

.footerContenido h3{

    font-size:1.9rem;

    margin:0 0 8px;

    font-family:'Cinzel',serif;

}

.footerContenido p{

    margin:6px 0;

    line-height:1.5;

}

.footerContenido a{

    color:white;

    text-decoration:none;

    transition:.25s;

}

.footerContenido a:hover{

    color:#d8c17a;

}

.footerLinks{

    display:flex;

    justify-content:center;

    gap:22px;

    flex-wrap:wrap;

    margin:18px 0 14px;

}

.copyright{

    opacity:.6;

    font-size:.85rem;

    margin-top:14px;

}

.footerLogo{

    width:65px;

    margin-bottom:6px;

}



.leyendaMapa h4{

    margin:0 0 8px 0;
    font-size:15px;

}

.leyendaItem{

    display:flex;

    align-items:center;

    gap:8px;

    margin:5px 0;

}

.colorLeyenda{

    width:18px;

    height:18px;

    border:1px solid #666;

}

.info.legend{

    background:white;
    padding:12px;
    border-radius:14px;
    box-shadow:0 0 12px rgba(0,0,0,.25);

    line-height:24px;
    font-size:14px;
    margin-bottom: 150px !important;

}

.leaflet-bottom{
    margin-bottom:10px !important;
}

.info.legend span{

    display:inline-block;

    width:18px;
    height:18px;

    margin-right:8px;

    border:1px solid #666;

    vertical-align:middle;

}

h3 small{
    display:block;
    margin-top:6px;
    font-size:14px;
    font-weight:500;
    color:#666;
}

.sr-only{
    position:absolute;
    width:1px;
    height:1px;
    padding:0;
    margin:-1px;
    overflow:hidden;
    clip:rect(0,0,0,0);
    white-space:nowrap;
    border:0;
}
.municipio-item{

    padding:10px 14px;

    cursor:pointer;

    border-bottom:1px solid #ececec;

    transition:.2s;

}

.municipio-item:hover{

    background:#edf7f1;

    color:#1b4332;

    font-weight:600;

}
#listaMunicipiosModal,
#listaFichaNumenes{

    max-height:400px;

    overflow-y:auto;

}

.municipio-item{

    display:block;

    padding:10px 14px;

    color:#1b4332;

    text-decoration:none;

    border-bottom:1px solid #ececec;

    transition:.2s;

}

.municipio-item:hover{

    background:#edf7f1;

    font-weight:600;

}

.infoFiltros{

    text-align:center;

    color:#666;

    font-size:14px;

    margin:8px 0 12px;

}

/* ===============================
   TARJETAS DE FILTROS
================================ */
.selectorCard,.tarjetaAccion{

    display:flex;
    align-items:center;
    justify-content:space-between;

    background:#ffffff;

    border:1px solid #e6e6e6;
    border-radius:22px;

    padding:8px 18px;

    cursor:pointer;

    transition:.25s;

    box-shadow:0 4px 12px rgba(0,0,0,.05);

    /*min-height:72px;*/

    width:260px;

    height:75px;

    box-sizing:border-box;


}

.selectorCard:hover,.tarjetaAccion:hover{

    transform:translateY(-2px);

    box-shadow:0 10px 24px rgba(0,0,0,.10);

}

.selectorTexto,.accionTexto{

    flex:1;

    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:center;

    text-align:center;


}
/*Boton de filtro*/

.selectorTitulo,.accionTitulo{

    font-size:11px;

    letter-spacing:0.3px;

    color:#7b736b;

}
.selectorResumen,.accionSubtitulo{

    font-size:16px;

    font-weight:500;

    color:#173c2c;

    display:block;
    width:100%;

    margin-top:2px;

    text-align:center;

}
.selectorIcono,.accionIcono{

    width:58px;
    height:58px;

    display:flex;
    justify-content:center;
    align-items:center;

    flex-shrink:0;

}

.selectorIcono img,.accionIcono img{

    width:54px;
    height:54px;
    object-fit:contain;
    display:block;

}
.selectorFlecha,.accionFlecha{

    font-size:28px;

    color:#7a7a7a;

    font-weight:300;

}
/* Las opciones dentro del desplegable */

#listaProvincias,
#listaCategorias,
#listaBibliografias,
#listaNumenes{

    width:95%;
    
    overflow-y:auto;

    border:1px solid #ece6dc;
    border-radius:18px;

    padding:9px 6px;
    font-size:15px;

    background:#fafaf8;

    flex:1;

    height:200px;

}

#listaProvincias label,
#listaCategorias label,
#listaBibliografias label,
#listaNumenes label{

    display:flex;

    align-items:flex-start;

    gap:5px;

    padding:9px 16px;
    
    margin:2px 8px;

    font-size:15px;

    border-radius:14px;

    border:1px solid transparent;

    background:white;

    cursor:pointer;

    transition:.25s;

    color:#173c2c;

    font-weight:500;

    height:auto;
    min-height:20px;
    line-height:1.3;
    box-sizing:border-box;


}

#listaProvincias label:hover,
#listaCategorias label:hover,
#listaBibliografias label:hover,
#listaNumenes label:hover{
    background:#f7fbf8;

    border-color:#dfe8e2;

    transform:translateX(3px);

}
/* ======================================
   OPCIONES DE FILTRO DESACTIVADAS
====================================== */

#listaProvincias label:has(input[type="checkbox"]:disabled),
#listaCategorias label:has(input[type="checkbox"]:disabled),
#listaBibliografias label:has(input[type="checkbox"]:disabled),
#listaNumenes label:has(input[type="checkbox"]:disabled){

    color:#b8b8b8;

    background:#f8f8f8;

    cursor:not-allowed;

    opacity:.65;

    transform:none;

}


/* Evitar el efecto hover en opciones desactivadas */

#listaProvincias label:has(input[type="checkbox"]:disabled):hover,
#listaCategorias label:has(input[type="checkbox"]:disabled):hover,
#listaBibliografias label:has(input[type="checkbox"]:disabled):hover,
#listaNumenes label:has(input[type="checkbox"]:disabled):hover{

    background:#f8f8f8;

    border-color:transparent;

    transform:none;

}


/* Checkbox desactivado */

#listaProvincias input[type="checkbox"]:disabled,
#listaCategorias input[type="checkbox"]:disabled,
#listaBibliografias input[type="checkbox"]:disabled,
#listaNumenes input[type="checkbox"]:disabled{

    opacity:.4;

    cursor:not-allowed;

}

#listaProvincias label:last-child,
#listaCategorias label:last-child,
#listaBibliografias label:last-child,
#listaNumenes label:last-child{

    border-bottom:none;

}

#listaProvincias input,
#listaCategorias input,
#listaBibliografias input,
#listaNumenes input{

    width:22px;
    height:22px;

    margin-top:2px;

    flex-shrink:0;

    accent-color:#1b4332;

}

.infoFiltros{

    max-width:900px;

    margin:12px auto 10px;

    padding:10px 16px;

    background:white;

    border:1px solid #e6e2da;

    border-radius:14px;

    color:#1b4332;

    font-size:14px;

    text-align:center;

    line-height:1.5;

}
/* ======================================
   POPUP MUNICIPIOS
====================================== */

.popup-municipio{

    width:240px;

    color:#173c2c;

    min-width:260px;
    max-width:350px;
    

    font-family:"Montserrat", Arial, sans-serif;

}

/* ---------- Cabecera ---------- */

.popup-header{

    display:flex;
    align-items:center;
    gap:10px;

    margin-bottom:8px;

}

.popup-icono{

    width:46px;
    height:46px;

    flex-shrink:0;

}

.popup-info{

    flex:1;

}

.popup-titulo{

    font-size:18px;

    font-weight:600;

    color:#173c2c;

    line-height:1;

}

.popup-provincia{

    margin-top:4px;

    color:#6f6f6f;

    font-size:13px;

}

/* ---------- Separador ---------- */

.popup-separador{

    height:1px;

    background:#ece6dc;

    margin:16px 0;

}

/* ---------- Tarjetas ---------- */

.popup-estadisticas{

    display:grid;

    grid-template-columns:1fr 1fr;

    gap:6px;

    margin-bottom:8px;

}

.popup-card{

    background:#fafaf8;

    border:1px solid #ece6dc;

    border-radius:14px;

    padding:8px;

    text-align:center;

    display:flex;

    align-items:center;

    gap:8px;


}
.popup-card-icono{

    width:36px;
    height:36px;

    object-fit:contain;

    flex-shrink:0;

}

.popup-card div{

    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:center;

    flex:1;

    text-align:center;

}

.popup-numero{


    font-size:22px;

    font-weight:600;

    color:#173c2c;

    line-height:1;

}

.popup-card small{

    display:block;

    margin-top:3px;

    color:#7d746d;

    font-size:10px;
    line-height:1.2;

}

/* ---------- Botón ---------- */

.popup-ficha{

    display:flex;

    justify-content:center;
    align-items:center;

    width:90%;

    margin:10px auto;

    padding:10px;

    text-decoration:none;

    background:#1b4332;

    color:white !important;

    border-radius:12px;

    font-size:16px;

    font-weight:600;

    transition:.25s;

}

.popup-ficha:hover{

    background:#285943;

}

/* ---------- Subtítulo ---------- */

.popup-subtitulo{

    display:flex;

    justify-content:center;

    align-items:center;

    gap:10px;

    margin:8px 0 8px;

    font-size:10px;

    text-align:center;
    letter-spacing:0.3px;

    font-weight:600;

    color:#7d6d56;

    letter-spacing:0.3px;

    text-transform:none;

    width:100%;
    margin-top:16px;
    margin-bottom:10px;

}

/* ---------- Lista ---------- */

.popup-lista{

    max-height:95px;

    overflow-y:auto;

    border:1px solid #ece6dc;

    border-radius:14px;

    background:#fafaf8;

    width:100%;

    box-sizing:border-box;

}

.popup-numen{

    display:block;

    padding:10px 14px;

    text-decoration:none;

    color:#173c2c;

    border-bottom:1px solid #ece6dc;

    transition:.2s;

}

.popup-numen:last-child{

    border-bottom:none;

}

.popup-numen:hover{

    background:#eef5f0;

    padding-left:18px;

}
.leaflet-popup-content-wrapper{

    border-radius:22px;

    box-shadow:0 16px 40px rgba(0,0,0,.18);

    padding:6px;

}

.leaflet-popup-content{

    margin:10px;

}

.leaflet-popup-tip{

    box-shadow:none;

}

.tooltipMunicipio{

    background:#1b4332 !important;

    color:white !important;

    border:none !important;

    border-radius:10px;

    padding:6px 12px;

    font-size:13px;

    font-weight:600;

    box-shadow:0 6px 16px rgba(0,0,0,.18);

}

.tooltipMunicipio::before{

    display:none;

}
#botonCentrarMapa{

    width:40px;
    height:40px;

    display:flex;

    align-items:center;
    justify-content:center;

    text-decoration:none;

}

#botonCentrarMapa img{

    width:60px;
    height:45px;

    display:block;

}
/* LEYENDA MÓVIL */
.info.legend{

    display:flex;
    align-items:center;

    gap:8px;

    top:10px !important;
    right:10px !important;

    padding:8px 10px;

}

.info.legend h4{

    margin:0;
    font-size:15px;

}

.info.legend div{

    display:flex;
    align-items:center;

    gap:6px;

    margin:0;

}

.info.legend span{

    width:14px;
    height:14px;

    margin-right:4px;

}

#accionesCabecera{

    position:absolute;

    top:18px;

    right:25px;

    display:flex;

    flex-direction:column;

    align-items:flex-end;

    gap:8px;

}

#botonesAccesibilidad{
    display:flex;
    gap:10px;
    justify-content: center;
}

.accesibilidad{

    width:30px;
    height:24px;

    border:1px solid transparent;

    background:transparent;

    color:#d4af37;

    cursor:pointer;

    font-size:14px;

    border-radius:4px;

    transition:.2s;

}

.accesibilidad.activo{

    border:1px solid #d4af37;

    background:#d4af37;

    color:#1b4332;

}

.accesibilidad:hover{

    border:1px solid #d4af37;

    background:rgba(212,175,55,.15);

}
body.alto-contraste{

    background:#ffffff;

    color:#000000;

}

body.alto-contraste .cabecera{

    background:#102b20;

}
body.alto-contraste header h1,
body.alto-contraste header p{

    color:white;

}
body.alto-contraste h2,
body.alto-contraste h3{

    color:#000;

}

body.alto-contraste .selectorCard,
body.alto-contraste .tarjeta,
body.alto-contraste .tarjetaAccion{

    border:2px solid #000;
    box-shadow:0 3px 8px rgba(0,0,0,.25);

}
body.alto-contraste #panelResultados{

    border:2px solid #000;

}
body.alto-contraste .infoFiltros{

    border:2px solid #000;

}
body.alto-contraste button:focus,
body.alto-contraste a:focus,
body.alto-contraste input:focus,
body.alto-contraste select:focus{

    outline:4px solid #ffbf47;
    outline-offset:4px;

}

body.alto-contraste .info.legend{

    border:2px solid #000;
    box-shadow:0 4px 12px rgba(0,0,0,.35);

}

body.alto-contraste .info.legend span{

    border:2px solid #000;

}
/* ===========================
   MEDIA TABLET*/ 

@media (max-width:1100px){

    #contenedorMapa{

        flex-direction:column;
        gap:24px;
        padding:0 20px;

    }

    #mapa{

        width:100%;
        height:65vh;

    }

    #panelResultados{

        width:100%;
        box-sizing:border-box;

    }

    .resumen{

        display:grid;
        grid-template-columns:repeat(3,1fr);
        gap:16px;

    }

    .tarjeta{

        min-height:100px;
        padding:16px 12px;
        
        

    }

    .tarjetaIcono{

        width:34px;
        height:34px;

    }

    .tarjeta span{

        font-size:18px;

    }

    .tarjeta small{

        font-size:11px;
        line-height:1.2;

    }

    .panel{

        display:grid;
        grid-template-columns:repeat(2,minmax(0,1fr));
        gap:14px;

        width:100%;
        max-width:700px;

        margin:0 auto;

    }
    .selectorCard{

        width:100%;
        min-width:0;
        max-width:none;

    }
    #abrirProvincias,
    #abrirCategorias,
    #abrirBibliografia,
    #abrirNumenes,
    #abrirMunicipios,
    #abrirFichaNumenes{

        width:100%;
    }
    .tarjetaAccion{

    width:100%;
    min-width:0;
    max-width:none;

    }

    .explorarBotones{

        max-width:100%;

        grid-template-columns:repeat(2,minmax(0,1fr));

    }

}


/* ===========================
   TEXTO GRANDE
=========================== */

body.texto-grande .selectorTitulo,
body.texto-grande .accionTitulo{

    font-size:13px;

}


body.texto-grande .infoFiltros{

    font-size:17px;

}

body.texto-grande .tarjeta{

    min-height:120px;

}

body.texto-grande .tarjeta span{

    font-size:24px;

}

body.texto-grande .tarjeta small{

    font-size:14px;

}

body.texto-grande #listaMunicipios button{

    font-size:18px;

}

body.texto-grande .popup-numen{

    font-size:17px;

}
body.texto-grande .selectorResumen,
body.texto-grande .accionSubtitulo{

    font-size:20px;

}

body.texto-grande #listaMunicipios button{

    font-size:20px;

}
.selectorCard,
.tarjetaAccion{

    min-height:75px;
    height:auto;

}
body.texto-grande .municipio-item{

    font-size:18px;

}
body.texto-grande #listaMunicipios div{

    font-size:18px;
    line-height:1.6;
    padding: 10px 0;

}

body.texto-grande .popup-card{

    padding:12px;
    min-height:80px;

}

body.texto-grande .popup-provincia,
body.texto-grande .popup-dato,
body.texto-grande .popup-numen{

    font-size:16px;

}

body.texto-grande .popup-ficha{

    font-size:18px;

}

body.texto-grande .popup-titulo{

    font-size:22px;

}

body.texto-grande .popup-provincia{

    font-size:16px;

}

body.texto-grande .popup-numero{

    font-size:26px;

}

body.texto-grande .popup-card small{

    font-size:13px;

}

body.texto-grande .popup-subtitulo{

    font-size:13px;

}

body.texto-grande .popup-numen{

    font-size:17px;

}

body.texto-grande .popup-ficha{

    font-size:18px;

}
body.texto-grande .popup-estadisticas{

    grid-template-columns:1fr;

}
.leaflet-popup-close-button{

    top:12px !important;
    right:12px !important;

    font-size:22px !important;

    color:#666 !important;

    z-index:1000;

}


@media (max-width:768px){

    /* ===========================
    CABECERA
    =========================== */

    .cabecera{

        flex-direction:column;
        text-align:center;
        padding:15px;

    }

    .cabeceraIzquierda{

        flex-direction:column;
        gap:10px;

    }

    .logo{

        width:70px;
        height:70px;

    }

    header h1{

        font-size:2rem;

    }

    header p{

        font-size:.9rem;

    }

    #selectorIdioma{

        position:static;
        justify-content:center;
        margin-top:10px;

    }

    /* ===========================
    FILTROS
    =========================== */

    .panel{

        display:grid;
        grid-template-columns:repeat(2,minmax(0,1fr));
        gap:14px;

        width:100%;
        max-width:700px;

        margin:0 auto;

    }

    .explorarBotones{

        max-width:100%;

        grid-template-columns:repeat(2,minmax(0,1fr));

    }
    .tarjetaAccion{

        width:100%;
        min-width:0;
        max-width:none;

    }

    

    /* ===========================
    MAPA
    =========================== */

    #contenedorMapa{

        display:flex;
        flex-direction:column;
        gap:16px;
        padding:0 12px 15px;

    }

    #mapa{

        width:100%;
        height:55vh;
        min-height:340px;

    }

    /* ===========================
    PANEL
    =========================== */

    #panelResultados{

        width:100%;
        margin:0;
        padding:16px;
        box-sizing:border-box;

    }

    .resumen{

        display:grid;
        grid-template-columns:repeat(3,1fr);
        gap:8px;

    }

    .tarjeta{

        min-height:95px;
        padding:10px 6px;
        box-sizing:border-box;


    }

    .tarjetaIcono{

        width:28px;
        height:28px;

    }

    .tarjeta span{

        font-size:16px;

    }

    .tarjeta small{

        font-size:10px;
        line-height:1.15;
        word-break:normal;

    }

    /* ===========================
    MODALES
    =========================== */

    .modalContenido{

        width:92vw;
        max-height:90vh;
        padding:16px;

    }

    .modalCabecera{

        gap:12px;

    }

    .modalTitulo{

        gap:14px;

    }

    .modalIcono{

        width:52px;
        height:52px;

    }

    .modalTitulo h3{

        font-size:2rem;

    }

    .modalDescripcion{

        font-size:15px;

    }

    #listaProvincias,
    #listaCategorias,
    #listaBibliografias,
    #listaNumenes{

        height:210px;

    }

    .modalBotones{

        gap:8px;

    }

    .modalBotones button{

        flex:1;
        min-width:120px;

    }

    /* ===========================
    POPUPS
    =========================== */

    .popup-municipio{

        width:250px;

    }

    .popup-lista{

        max-height:120px;

    }

    /* ===========================
    LEYENDA
    =========================== */

    .info.legend{

        padding:8px 10px;
        font-size:12px;

    }

    .info.legend h4{

        font-size:14px;

    }

    #abrirProvincias,
    #abrirCategorias,
    #abrirBibliografia,
    #abrirNumenes,
    #abrirMunicipios,
    #abrirFichaNumenes{

        width:100%;
    }

    .selectorCard{

    width:100%;
    min-width:0;
    max-width:none;

    }

    .selectorTitulo,
    .accionTitulo{

        font-size:10px;

    }

    .selectorResumen,
    .accionSubtitulo{

        font-size:12px;
        line-height:1.2;

    }

    .selectorIcono,
    .accionIcono{

        width:50px;
        height:50px;

    }

    .selectorIcono img,
    .accionIcono img{

        width:46px;
        height:46px;

    }

}

.avisoActualizacion{
    max-width:1100px;
    margin:60px auto 30px;
    padding:25px 30px;
    box-sizing:border-box;

    background:#f5f0eb;
    border:1px solid #ddd2c7;
    border-radius:12px;
}

.avisoActualizacion h3{
    margin:0 0 10px;
    color:#214D37;
    font-size:1.1rem;
}

.avisoActualizacion p{
    margin:0;
    line-height:1.6;
    font-size:0.9rem;
}

@media (max-width:768px){

    .avisoActualizacion{
        margin:40px 18px 25px;
        padding:20px;
    }

}

/* =========================================================
   HEADER RESPONSIVE — TABLET Y MÓVIL
========================================================= */

.cabecera{
    position:relative;
}


/* =========================================================
   TABLET
========================================================= */

@media (min-width:769px) and (max-width:1100px){

    header{
        padding:12px 0 16px;
    }

    .cabecera{
        min-height:105px;
        padding:0 20px;
    }

    .cabeceraIzquierda{
        justify-content:center;
    }

    .logo{
        width:72px;
        height:72px;
    }

    header h1{
        font-size:2.2rem;
    }

    header p{
        font-size:.9rem;
    }

    #accionesCabecera{
        position:absolute;
        top:12px;
        right:16px;

        display:flex;
        flex-direction:column;
        align-items:flex-end;
        gap:7px;

        z-index:10;
    }

    #selectorIdioma{
        display:flex;
        align-items:center;
        justify-content:flex-end;
        gap:7px;
        white-space:nowrap;
    }

    .idioma{
        padding:4px 6px;
        font-size:13px;
    }

    #botonesAccesibilidad{
        display:flex;
        gap:6px;
    }

}


/* =========================================================
   MÓVIL
========================================================= */

@media (max-width:768px){

    header{
        position:relative;
        padding:10px 0 18px;
    }

    .cabecera{

        position:relative;

        display:flex;
        flex-direction:column;

        justify-content:center;
        align-items:center;

        text-align:center;

        padding:62px 15px 12px;

        min-height:255px;
        box-sizing:border-box;

    }

    .cabeceraIzquierda{

        display:flex;
        flex-direction:column;

        align-items:center;
        justify-content:center;

        gap:7px;

        width:100%;
    }


    /* -------------------------
       LOGO
    ------------------------- */

    .logo{

        width:72px;
        height:72px;

    }


    /* -------------------------
       TÍTULO
    ------------------------- */

    .titulo{

        align-items:center;
        justify-content:center;

        width:100%;
    }

    header h1{

        font-size:2rem;
        line-height:1.05;

        margin:0;

    }

    header p{

        font-size:.88rem;
        line-height:1.25;

        margin:5px 0 0;

    }


    /* -------------------------
       CONTROLES SUPERIORES
    ------------------------- */

    #accionesCabecera{

        position:absolute;

        top:9px;
        right:12px;

        display:flex;

        flex-direction:column;

        align-items:flex-end;

        gap:5px;

        z-index:20;

    }


    /* -------------------------
       IDIOMAS
    ------------------------- */

    #selectorIdioma{

        position:static;

        display:flex;

        align-items:center;

        justify-content:flex-end;

        gap:4px;

        margin:0;

        white-space:nowrap;

    }

    .idioma{

        min-width:30px;

        padding:4px 5px;

        font-size:13px;

        line-height:1.2;

    }

    #selectorIdioma span{

        font-size:13px;

    }


    /* -------------------------
       ACCESIBILIDAD
    ------------------------- */

    #botonesAccesibilidad{

        display:flex;

        align-items:center;

        justify-content:flex-end;

        gap:5px;

    }

    .accesibilidad{

        width:30px;
        height:24px;

        font-size:14px;

    }

}
/* ======================================
   SEPARADOR DE OPCIONES NO DISPONIBLES
====================================== */

.separador-no-disponibles {
    margin: 5px 6px 3px;
    padding: 4px 6px;

    color: #8a8a8a;

    font-size: 12px;
    font-weight: 600;
    line-height: 1.2;

    text-align: center;
}