html{
    height:100%;
}

body{
    min-height:100vh;

    display:flex;
    flex-direction:column;

    margin:0;
    font-family:"Montserrat",Arial, sans-serif;
    background:#f5f5f5;
}

.contenido{

    flex:1;

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

    margin:20px auto 50px auto;
    padding:0 25px;

    box-sizing:border-box;

}

.resumen{

    display:flex;
    justify-content:center;
    gap:20px;
    flex-wrap:wrap;

}

.tarjeta{

    display:flex;

    align-items:center;

    justify-content:center;

    gap:16px;

    width:220px;

    padding:18px;

    background:white;

    border-radius:14px;

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

    text-align: center;
}

.icono-tarjeta{

    width:46px;

    height:46px;

    object-fit:contain;

    flex-shrink:0;

}

.tarjeta img{

    width:60px;
    height:60px;

}

.numero{

    font-size:1.5rem;

    line-height:1;

    color:#1b4332;

    font-weight:600;

}

.texto{

    margin-top:5px;

    font-size:1rem;

    color:#666;

}

.bloque{

    margin-top:18px;

}

.bloque h3{

    color:#1b4332;

    font-size:24px;

    margin-bottom:18px;

    border-bottom:3px solid #1b4332;

    padding-bottom:10px;

}

.lista-numenes{

    display:flex;

    flex-wrap:wrap;

    gap:15px;

}

.numen{

    text-decoration:none;

    background:#edf7f1;

    color:#1b4332;

    border:1px solid #d5eadf;

    padding:8px 15px;

    border-radius:18px;

    font-size:15px;

    font-weight:600;

    transition:.2s;

}

.numen:hover{

    background:#1b4332;

    color:white;

    border-color:#1b4332;

    transform:translateY(-2px);

}


.bibliografia{

    padding-left:25px;

}

.bibliografia li{

    margin-bottom:10px;

    font-size:17px;

    line-height:1.5;

}
.bloque h4{

    margin-top:30px;
    margin-bottom:15px;

    color:#1b4332;

    font-size:22px;

}

/* ==========================
   PRESENCIA GEOGRÁFICA
========================== */

.provincia{

    margin-top:20px;
    margin-bottom:6px;

    font-size:22px;

    font-weight:600;

    color:#1b4332;

}

.lista-municipios{

    margin-top:8px;
    margin-bottom:8px;

    margin-left:20px;

}

.lista-municipios ul{
    list-style:none;
    padding-left:0;
    margin:0;
}

.lista-municipios li{
    margin:6px 0;
}

.municipio-link{

    color:#1b4332;

    text-decoration:underline;

    font-weight:500;

}

.municipio-link:hover{

    color:#2d6a4f;

}

.sin-municipios{

    margin-top:8px;

    margin-left:20px;

    color:#888;

    font-style:italic;

}
/* ==========================
   DOS COLUMNAS
========================== */

.informacion{

    display:grid;

    grid-template-columns:2fr 1fr;

    gap:40px;


    align-items:start;

}

.descripcionMapa{

    display:grid;

    grid-template-columns:2fr 1fr;

    gap:40px;

    align-items:start;

    margin-top:30px;

}

#mapaNumen{

    width:100%;

    height:360px;

    border-radius:16px;

    overflow:hidden;

    border:1px solid #d8d8d8;

}

.subtituloMapa{

    margin-top:-10px;

    margin-bottom:14px;

    color:#666;

    font-size:15px;

    font-style:italic;

}

.contenidoPrincipal{

    display:grid;
    grid-template-columns:1fr 1fr;

    column-gap:40px;
    row-gap:25px;

    align-items:start;

    grid-template-areas:
        "descripcion descripcion"
        "presencia mapa"
        "bibliografia bibliografia";

}

.bloqueDescripcion{
    grid-area:descripcion;
}

.bloqueMapa{
    grid-area:mapa;
    align-self:start;
    margin-top: 0;
}

.bloquePresencia{
    grid-area:presencia;
    margin-top:0;
}

.bloqueBibliografia{
    grid-area:bibliografia;
}

.bloqueDescripcion p{

    text-align:justify;
    text-justify:inter-word;
    line-height:1.75;

}

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

header{

    background:#1b4332;
    color:white;

    padding:22px 35px;

}

.cabecera{

    position:relative;

    max-width:1280px;

    margin:0 auto;

    display:flex;

    justify-content:center;

    align-items:center;

}

.izquierda{

    display:flex;

    align-items:center;

    gap:20px;

}

.logo{

    width:80px;

    height:80px;

    object-fit:contain;

}

.titulo h1{

    margin:0;

    font-family:"Cinzel", serif;

    font-size:2.8rem;

}

.titulo p{

    margin-top:6px;

    font-size:1.2rem;

    opacity:.9;

    text-align:left;

}

.volver{

    position:absolute;

    right:-50px;

    top:50%;

    transform:translateY(-50%);

    display:flex;

    align-items:center;

    gap:10px;

}

.volver a{

    color:white;

    text-decoration:none;

    font-size:18px;

    font-weight:600;

}

.volver a:hover{

    text-decoration:underline;

}

.volver span{

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

}
footer{

    margin-top:60px;

    background:#1f4d37;

    color:white;

    padding:30px 20px;

}

.footerContenido{

    max-width:1280px;

    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;

}


#contenido{

    flex:1;

}

.imagen-numen{

    background:white;

    border-radius:18px;

    padding:18px;

    box-shadow:0 8px 25px rgba(0,0,0,.08);

    text-align:center;

}

.imagen-numen img{

    width:100%;

    border-radius:14px;

}


#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);

}
/* ===========================
   MODO ALTO CONTRASTE
=========================== */

body.alto-contraste{

    background:#ffffff;
    color:#000;

}

body.alto-contraste header{

    background:#102b20;

}

body.alto-contraste header h1,
body.alto-contraste header p,
body.alto-contraste .volver a{

    color:#fff;

}

body.alto-contraste h3,
body.alto-contraste h4,
body.alto-contraste .provincia{

    color:#000;

}

body.alto-contraste .tarjeta{

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

}

body.alto-contraste #mapaNumen{

    border:2px solid #000;

}

body.alto-contraste .subtituloMapa{

    color:#333;

}

body.alto-contraste .municipio-link{

    color:#000;
    font-weight:600;

}

body.alto-contraste button:focus,
body.alto-contraste a:focus{

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

}

@media (max-width:900px){

    .contenido{

    padding:0 14px;
    margin:10px auto 30px;

    }

    .contenidoPrincipal{

        display:flex;
        flex-direction:column;
        gap:30px;

    }

    .columnaIzquierda,
    .columnaDerecha{

        width:100%;

    }

    #mapaNumen{

        height:420px;

    }

    .resumen{

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

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

    margin:0 auto;

    }

    .tarjeta{

        width:100%;
        max-width:none;
        /*min-height: 110px;*/

        padding:16px;

    }

.bloque h3{

    display:flex;
    align-items:flex-end;

    border-bottom:none;

}

.bloque h3::after{

    content:"";

    flex:1;

    margin-left:12px;

    border-bottom:3px solid #1b4332;
}

    .bloqueMapa{

    display:flex;
    flex-direction:column;
    /*align-items:center;*/
    

    }

    .bloqueMapa h3,
    .bloqueMapa .subtituloMapa{

        align-self:stretch;

    }

    #mapaNumen{
        
        width:100%;
        max-width:500px;
        margin:10px auto 0;

    }

    .bloqueMapa,
    .bloquePresencia,
    .bloqueBibliografia,
    .bloqueDescripcion{
        width:100%;
    }

}

@media (max-width:768px){

    header{

        padding:18px;

    }

    .cabecera{

        flex-direction:column;
        text-align:center;
        gap:14px;

    }

    .izquierda{

        flex-direction:column;
        gap:12px;

    }

    .logo{

        width:65px;
        height:65px;

    }

    .titulo h1{

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

    }

    .titulo p{

        font-size:1rem;
        text-align:center;

    }

    .volver{

    position:static;
    transform:none;

    display:flex;

    justify-content:center;

    align-items:center;

    width:100%;

    gap:12px;

    margin-top:12px;

    }

    /* CONTENIDO */

    .contenido{

    padding:0 14px;
    margin:10px auto 30px;

    }

    .contenidoPrincipal{

    display:flex;
    flex-direction:column;
    gap:30px;

    }

    /* TARJETAS */
    .resumen{

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

    }

    .tarjeta{

        width:100%;
        max-width:150px;
        /*min-height: 110px;*/

        padding:16px;

    }

    .icono-tarjeta{

        width:40px;
        height:40px;

    }

    .numero{

        font-size:2rem;

    }

    .texto{

        font-size:15px;

    }

    /* TITULOS */

.bloque h3{
    border-bottom:none;
}

.bloque h3::after{
    content:"";
    display:block;
    flex:1;
    border-bottom:3px solid #1b4332;
}

    .provincia{

        font-size:24px;

    }

    .bibliografia li,
    .lista-municipios li{

        font-size:17px;

    }

    /* MAPA */

    #mapaNumen{

        width:100%;
        height:340px;
        margin-top:8px;

    }

    .subtituloMapa{

        margin-bottom:14px;

    }

    /* Descripción más agradable de leer */

    .columnaIzquierda .bloque:first-child p{

    text-align:justify;
    text-justify:inter-word;
    line-height:1.75;

    }

    /* Más separación entre bloques */

    .bloque{

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

    }

    .bloqueMapa{

    display:flex;
    flex-direction:column;
    /*align-items:center;*/

    }

    .bloqueMapa h3,
    .bloqueMapa .subtituloMapa{

        align-self:stretch;

    }

    #mapaNumen{
        
        width:100%;
        max-width:500px;
        margin:10px auto 0;

    }
        /* ORDEN DE LA FICHA EN MÓVIL */

    .bloqueDescripcion{
        order:1;
    }

    .bloqueMapa{
        order:2;
    }

    .bloquePresencia{
        order:3;
    }

    .bloqueBibliografia{
        order:4;
    }

    /* FOTO ENCIMA DE LA DESCRIPCIÓN */

    .descripcionSuperior{

        grid-template-columns:1fr;

        gap:20px;

    }

    .imagenDescripcion{

        order:-1;

        justify-content:center;

    }

    .textoDescripcion{

        order:2;

    }

    .imagenNumen{
        width:220px;
        height:220px;
        min-width:220px;
        min-height:220px;
        max-width:220px;
        max-height:220px;

        object-fit:contain;

        background:#E9DED2;
        border-radius:50%;

        padding:20px;
        box-sizing:border-box;

        margin:0 auto;

        visibility:hidden;
    }
}

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

body.texto-grande .bloqueDescripcion p{

    font-size:1.18rem;

    line-height:1.9;

}

body.texto-grande .provincia{

    font-size:24px;

}

body.texto-grande .lista-municipios li{

    font-size:18px;

}

body.texto-grande .municipio-link{

    font-size:18px;

}

body.texto-grande .bibliografia li{

    font-size:19px;

}

body.texto-grande h3{

    font-size:30px;

}

body.texto-grande h4{

    font-size:24px;

}
body.texto-grande .tarjeta{

    padding:24px;

}

body.texto-grande .icono-tarjeta{

    width:56px;
    height:56px;

}

body.texto-grande .numero{

    font-size:2.3rem;

}

body.texto-grande .texto{

    font-size:1.25rem;

    line-height:1.3;

}
body.texto-grande .tarjeta{

    width:260px;

}

.descripcionSuperior{

    display:grid;

    grid-template-columns:2fr 280px;

    gap:35px;

    align-items:start;

}

.textoDescripcion p{

    margin:0;

    text-align:justify;

    line-height:1.8;

}

.imagenDescripcion{

    display:flex;

    justify-content:center;

    align-items: flex-start;

}

.imagenNumen{

    width:260px;
    height:260px;

    object-fit:contain;

    background:#E9DED2;

    border-radius:50%;

    padding:20px;

    box-sizing:border-box;

    visibility:hidden;

}

.imagenNumen.cargada{

    visibility:visible;

}

@media (max-width:768px){

    .descripcionSuperior{

        grid-template-columns:1fr;

        gap:20px;

    }

    .imagenDescripcion{

        order:-1;

        justify-content:center;

    }

    .textoDescripcion{

        order:2;

    }

}

.contadorMunicipios{
    font-size:0.8em;
    font-weight:500;
}
