:root{
    --ciruela:#2E2348;
    --ocre:#D48A4C;
    --marfil:#F5F0E7;
    --vino:#7C4555;
    --blanco:#FDFCFB;
}

*{
    box-sizing:border-box;
}

/* 
   Safari utiliza el color del body para teñir la interfaz del navegador.
   El body debe permanecer en color ciruela.
   La capa body:before restaura visualmente el fondo marfil.
   ⚠️ No modificar sin comprobar el comportamiento en Safari.
*/

body{
    margin:0;
    font-family:"Segoe UI", Georgia, serif;
    color:var(--vino);
    background:var(--ciruela);
    line-height:1.7;
}

body:before{
    content:"";
    position:fixed;
    inset:0;
    background:var(--marfil);
    z-index:-1;
}

.hero{
    background:
        linear-gradient(rgba(46,35,72,0.45), rgba(46,35,72,0.62)),
        url("Portada-Original-Puentes.jpg");
    background-size:cover;
    background-position:center;
    color:white;
    text-align:center;
    padding:7rem 2rem;
}

.hero h1{
    margin:0;
    font-size:3.8rem;
    letter-spacing:1px;
    overflow-wrap:anywhere;
}

.hero .subtitulo{
    font-size:2rem;
    margin-top:1rem;
    font-weight:300;
    overflow-wrap:anywhere;
}

.hero .eslogan{
    margin-top:1rem;
    font-style:italic;
    font-size:1.3rem;
    overflow-wrap:anywhere;
}

.hero-interior{
    padding:4.5rem 2rem;
}

.hero-interior h1{
    font-size:3rem;
}

nav{
    background:var(--ciruela);
    position:sticky;
    top:0;
    box-shadow:0 2px 8px rgba(0,0,0,.1);
    z-index:100;
}

nav ul{
    list-style:none;
    display:flex;
    justify-content:center;
    flex-wrap:wrap;
    margin:0;
    padding:1rem;
}

nav a{
    text-decoration:none;
    color:var(--marfil);
    font-weight:600;
    margin:0 1rem;
}

nav a:hover,
nav a.activo,
.nav-trigger:hover,
.nav-trigger.activo{
    color:var(--ocre);
}

.nav-desplegable{
    position:relative;
}

.nav-trigger{
    margin:0 1rem;
    padding:0;
    border:0;
    background:transparent;
    color:var(--marfil);
    font:inherit;
    font-weight:600;
    cursor:pointer;
}

.nav-trigger span{
    font-size:.75rem;
}

.submenu{
    position:absolute;
    left:50%;
    top:100%;
    min-width:190px;
    display:block;
    margin:0;
    padding:.65rem 0;
    list-style:none;
    background:var(--ciruela);
    border-top:2px solid var(--ocre);
    box-shadow:0 10px 22px rgba(46,35,72,.22);
    opacity:0;
    visibility:hidden;
    transform:translate(-50%, .4rem);
    transition:opacity .2s ease, transform .2s ease, visibility .2s ease;
}

.submenu li{
    display:block;
}

.submenu a{
    display:block;
    margin:0;
    padding:.65rem 1rem;
    white-space:nowrap;
}

.nav-desplegable:hover .submenu,
.nav-desplegable:focus-within .submenu{
    opacity:1;
    visibility:visible;
    transform:translate(-50%, 0);
}

main{
    max-width:1100px;
    width:100%;
    margin-bottom:6rem;
    margin:auto;
    padding:4rem 2rem;
    background:var(--marfil);
}

section{
    margin-bottom:8rem;
}

h2{
    color:var(--vino);
    border-left:6px solid var(--ocre);
    padding-left:2rem;
    margin-bottom:2rem;
    overflow-wrap:anywhere;
}

.destacado{
    background:var(--blanco);
    padding:2rem;
    border-left:5px solid var(--ocre);
    box-shadow:0 2px 8px rgba(46,35,72,.08);
}

.programa-item{
    background:var(--blanco);
    margin:1rem 0;
    padding:1rem 1.5rem;
    border-left:5px solid var(--vino);
    box-shadow:0 2px 6px rgba(46,35,72,.08);
}

.cta{
    text-align:center;
}

.boton{
    display:inline-block;
    background:var(--vino);
    color:white;
    text-decoration:none;
    padding:1rem 2rem;
    border-radius:50px;
    margin-top:1rem;
}

.boton:hover{
    background:var(--ciruela);
}

/* Indicador de foco visible para navegación por teclado. */
a:focus-visible,
button:focus-visible,
summary:focus-visible{
    outline:3px solid var(--ocre);
    outline-offset:4px;
}

.lista-elegante{
    background:var(--blanco);
    padding:1.5rem 2rem;
    box-shadow:0 2px 8px rgba(46,35,72,.08);
}

.selector-programa{
    margin-bottom:8rem;
}

.ediciones{
    display:flex;
    flex-wrap:wrap;
    gap:1rem;
}

.edicion-boton{
    display:inline-flex;
    align-items:center;
    min-height:54px;
    padding:.85rem 1.35rem;
    background:var(--blanco);
    color:var(--ciruela);
    border:1px solid rgba(124,69,85,.18);
    border-left:5px solid var(--ocre);
    border-radius:8px;
    box-shadow:0 2px 8px rgba(46,35,72,.08);
    font-weight:700;
    text-decoration:none;
    transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

.edicion-boton:hover,
.edicion-boton.activo{
    border-color:rgba(212,138,76,.65);
    box-shadow:0 6px 16px rgba(46,35,72,.12);
    transform:translateY(-2px);
}

.cabecera-edicion h2{
    margin-top:.35rem;
}

.programa-acordeon{
    display:grid;
    gap:1rem;
}

.programa-detalle{
    background:var(--blanco);
    border:1px solid rgba(124,69,85,.16);
    border-left:5px solid var(--vino);
    border-radius:8px;
    box-shadow:0 2px 8px rgba(46,35,72,.08);
    overflow:hidden;
    transition:box-shadow .2s ease, border-color .2s ease;
}

.programa-detalle:hover,
.programa-detalle[open]{
    border-left-color:var(--ocre);
    box-shadow:0 6px 16px rgba(46,35,72,.12);
}

.programa-detalle summary{
    display:grid;
    grid-template-columns:150px 1fr auto;
    gap:1rem;
    align-items:center;
    padding:1.15rem 1.5rem;
    color:var(--ciruela);
    cursor:pointer;
    list-style:none;
}

.programa-detalle summary::-webkit-details-marker{
    display:none;
}

.programa-detalle summary:after{
    content:"+";
    justify-self:end;
    color:var(--ocre);
    font-size:1.6rem;
    font-weight:300;
    line-height:1;
}

.programa-detalle[open] summary:after{
    content:"-";
}

.hora{
    color:var(--vino);
    font-weight:800;
    white-space:nowrap;
}

.actividad{
    padding-right:2rem;
    font-weight:700;
}

.contenido-programa{
    padding:0 1.5rem 1.5rem;
    border-top:1px solid rgba(124,69,85,.12);
}

.contenido-programa p{
    margin-bottom:0;
}

.comunicantes{
    display:grid;
    gap:1rem;
    padding-top:1rem;
}

.comunicantes article{
    padding:1rem;
    background:var(--marfil);
    border-radius:8px;
}

.comunicantes h3{
    margin:0 0 .35rem;
    color:var(--ciruela);
    font-size:1.05rem;
}

.comunicantes p{
    margin:0;
}

.comunicantes a{
    color:var(--vino);
    text-decoration:none;
}

.comunicantes a:hover{
    color:var(--ciruela);
    text-decoration:underline;
}

.rejilla-comites{
    display:grid;
    grid-template-columns:1fr;
    gap:1.5rem;
}

.tarjeta-comite{
    background:var(--blanco);
    border:1px solid rgba(124,69,85,.14);
    border-top:5px solid var(--ocre);
    border-radius:8px;
    padding:1.5rem;
    box-shadow:0 2px 8px rgba(46,35,72,.08);
}

.tarjeta-comite h3{
    margin-top:0;
    color:var(--ciruela);
}

.tarjeta-comite p{
    margin-bottom:0;
}

.lista-personas{
    margin:0;
    padding-left:1.2rem;
}

.lista-personas li{
    margin:.35rem 0;
}

.nota-discreta{
    margin:1.25rem 0 0;
    color:rgba(124,69,85,.82);
    font-size:.95rem;
    font-style:italic;
}

.galeria-carteles{
    display:grid;
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:2rem;
    margin-top:2rem;
    align-items:start;
}

.galeria-carteles figure{
    margin:0;
    padding:1rem;
    background:var(--marfil);
    border:1px solid rgba(124,69,85,.14);
    border-radius:8px;
    box-shadow:0 2px 8px rgba(46,35,72,.08);
}

.galeria-carteles img{
    display:block;
    width:100%;
    height:auto;
    border-radius:4px;
}

.galeria-carteles figcaption{
    margin-top:.85rem;
    color:var(--ciruela);
    font-size:.95rem;
    font-weight:700;
    text-align:center;
}

.tarjeta-contacto,
.tarjeta-entidad{
    background:var(--blanco);
    border:1px solid rgba(124,69,85,.14);
    border-radius:8px;
    box-shadow:0 2px 8px rgba(46,35,72,.08);
}

.tarjeta-contacto{
    padding:1.75rem;
    border-left:5px solid var(--vino);
}

.tarjeta-contacto-destacada{
    border-left-color:var(--ocre);
}

.tarjeta-contacto h3{
    margin:0 0 .5rem;
    color:var(--ciruela);
    font-size:1.25rem;
}

.tarjeta-contacto p{
    margin:0;
}

.tarjeta-contacto a{
    color:var(--vino);
    font-weight:700;
    text-decoration:none;
}

.tarjeta-contacto a:hover{
    color:var(--ciruela);
    text-decoration:underline;
}

.rejilla-entidades{
    display:grid;
    grid-template-columns:repeat(2, 1fr);
    gap:1rem;
}

.tarjeta-entidad{
    min-height:120px;
    padding:1.35rem 1.5rem;
    border-top:5px solid var(--ocre);
    transition:transform .2s ease, box-shadow .2s ease;
}

.tarjeta-entidad:hover{
    box-shadow:0 6px 16px rgba(46,35,72,.12);
    transform:translateY(-2px);
}

.tarjeta-entidad p{
    margin:0;
    color:var(--ciruela);
    font-weight:700;
    line-height:1.55;
}

.tarjeta-entidad img{
    display:block;
    max-width:180px;
    max-height:72px;
    width:auto;
    height:auto;
    margin-bottom:1rem;
    object-fit:contain;
}

.texto-presentacion,
.inicio-bienvenida p{
    min-width:0;
    max-width:80ch;
    margin:0 auto;
    font-size:1.15rem;
    line-height:1.8;
    text-align:justify;
    hyphens:auto;
    overflow-wrap:anywhere;
}

.texto-presentacion + .texto-presentacion{
    margin-top:1rem;
}

.cronologia-inscripcion{
    display:grid;
    grid-template-columns:repeat(4, 1fr);
    gap:1rem;
    margin-top:2rem;
}

.cronologia-inscripcion article{
    min-height:190px;
    padding:1.4rem;
    background:var(--blanco);
    border:1px solid rgba(124,69,85,.14);
    border-top:5px solid var(--ocre);
    border-radius:8px;
    box-shadow:0 2px 8px rgba(46,35,72,.08);
    transition:transform .2s ease, box-shadow .2s ease;
}

.cronologia-inscripcion article:hover{
    box-shadow:0 6px 16px rgba(46,35,72,.12);
    transform:translateY(-2px);
}

.cronologia-inscripcion span{
    color:var(--ocre);
    font-weight:800;
}

.cronologia-inscripcion h3,
.tarjeta-inscripcion h2{
    color:var(--ciruela);
}

.cronologia-inscripcion h3{
    margin:.75rem 0 .5rem;
    font-size:1.05rem;
    line-height:1.35;
}

.cronologia-inscripcion p{
    margin:0;
}

.modalidades-inscripcion{
    display:grid;
    grid-template-columns:1.15fr .85fr;
    gap:1.5rem;
}

.tarjeta-inscripcion{
    display:flex;
    min-height:100%;
    flex-direction:column;
    justify-content:space-between;
    gap:1.5rem;
    padding:2rem;
    background:var(--blanco);
    border:1px solid rgba(124,69,85,.14);
    border-left:5px solid var(--vino);
    border-radius:8px;
    box-shadow:0 2px 8px rgba(46,35,72,.08);
}

.tarjeta-inscripcion-destacada{
    border-left-color:var(--ocre);
}

.tarjeta-inscripcion h2{
    margin-top:.35rem;
}

.tarjeta-inscripcion p,
.tarjeta-inscripcion li{
    text-align:justify;
}

.tarjeta-inscripcion ul{
    margin:1rem 0 0;
    padding-left:1.3rem;
}

.tarjeta-inscripcion .boton{
    align-self:flex-start;
}

.recursos-documentacion{
    display:grid;
    grid-template-columns:repeat(2, 1fr);
    gap:1rem;
    margin-top:2rem;
}

.recursos-documentacion a{
    display:block;
    padding:1.35rem 1.5rem;
    background:var(--blanco);
    color:var(--ciruela);
    border:1px solid rgba(124,69,85,.14);
    border-left:5px solid var(--ocre);
    border-radius:8px;
    box-shadow:0 2px 8px rgba(46,35,72,.08);
    font-weight:700;
    text-decoration:none;
    transition:transform .2s ease, box-shadow .2s ease, color .2s ease;
}

.recursos-documentacion a:hover{
    color:var(--vino);
    box-shadow:0 6px 16px rgba(46,35,72,.12);
    transform:translateY(-2px);
}

.recursos-documentacion span{
    display:block;
    color:var(--ocre);
    font-size:.85rem;
    letter-spacing:.08em;
    text-transform:uppercase;
}

.faq-lista{
    display:grid;
    gap:1rem;
    margin-top:2rem;
}

.faq-item{
    background:var(--blanco);
    border:1px solid rgba(124,69,85,.14);
    border-left:5px solid var(--vino);
    border-radius:8px;
    box-shadow:0 2px 8px rgba(46,35,72,.08);
    overflow:hidden;
    transition:border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}

.faq-item:hover,
.faq-item[open]{
    border-left-color:var(--ocre);
    box-shadow:0 6px 16px rgba(46,35,72,.12);
    transform:translateY(-2px);
}

.faq-item summary{
    display:grid;
    grid-template-columns:1fr auto;
    gap:1rem;
    align-items:center;
    padding:1.25rem 1.5rem;
    color:var(--ciruela);
    cursor:pointer;
    font-weight:800;
    line-height:1.35;
    list-style:none;
}

.faq-item summary::-webkit-details-marker{
    display:none;
}

.faq-item summary:after{
    content:"+";
    justify-self:end;
    color:var(--ocre);
    font-size:1.6rem;
    font-weight:300;
    line-height:1;
}

.faq-item[open] summary:after{
    content:"-";
}

.faq-respuesta{
    padding:0 1.5rem 1.5rem;
    border-top:1px solid rgba(124,69,85,.12);
}

.faq-respuesta p{
    margin:1rem 0 0;
    text-align:justify;
    hyphens:auto;
}

.texto-intro{
    min-width:0;
    max-width:900px;
    font-size:1.15rem;
    overflow-wrap:anywhere;
}

.encuentro-resumen{
    display:grid;
    grid-template-columns:1.1fr .9fr;
    gap:2rem;
    align-items:stretch;
}

.encuentro-resumen h2,
.participa h2{
    margin-top:.35rem;
}

.etiqueta-seccion{
    display:inline-block;
    color:var(--ocre);
    font-size:.85rem;
    font-weight:700;
    letter-spacing:.08em;
    text-transform:uppercase;

}

.contador{
    display:grid;
    grid-template-columns:repeat(4, 1fr);
    gap:.75rem;
    margin-top:1.5rem;
}

.contador div{
    min-height:112px;
    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:center;
    background:var(--marfil);
    border:1px solid rgba(124,69,85,.18);
    border-radius:8px;
    text-align:center;
}

.contador strong{
    color:var(--ciruela);
    font-size:2.15rem;
    line-height:1.1;
}

.contador span{
    color:var(--vino);
    font-size:.9rem;
    font-weight:600;
}

.datos-encuentro{
    display:flex;
    flex-direction:column;
}

.dato{
    margin-top:1rem;
    padding:1rem 0 0;
    border-top:1px solid rgba(124,69,85,.18);
}

.dato strong{
    display:block;
    color:var(--ciruela);
}

.rejilla-tarjetas,
.rejilla-conceptos{
    display:grid;
    gap:1rem;
    align-items:center;
    justify-content:center;
    text-align:center;
}

.rejilla-tarjetas{
    grid-template-columns:repeat(5, minmax(0, 1fr));
}

.tarjeta-perfil,
.rejilla-conceptos article{
    min-width:0;
    background:var(--blanco);
    border:1px solid rgba(124,69,85,.14);
    border-radius:8px;
    box-shadow:0 2px 8px rgba(46,35,72,.08);
}

.tarjeta-perfil{
    min-height:150px;
    padding:1.25rem;
}

.tarjeta-perfil span{
    color:var(--ocre);
    font-weight:700;
}

.tarjeta-perfil h3,
.rejilla-conceptos h3{
    color:var(--ciruela);
    line-height:1.35;
}

.tarjeta-perfil h3{
    margin:1.25rem 0 0;
    font-size:1.05rem;
}

.ambitos-tematicos{
    margin:8rem 0 0;
}

.ambitos-tematicos .texto-intro{
    margin-bottom:1.5rem; 
    text-align: justify;
    line-height: 1.9;
    max-width: 900px;
    margin: 0 auto 2rem auto;
    
}

.rejilla-ambitos{
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:1rem;
    margin-top:3rem;
}

.tarjeta-ambito{
    background:var(--blanco);
    border:1px solid rgba(124,69,85,.14);
    border-radius:8px;
    box-shadow:0 2px 8px rgba(46,35,72,.08);
    padding:1.5rem;
}

.tarjeta-ambito span{
    color:var(--ocre);
    font-weight:700;
}

.tarjeta-ambito h3{
    margin:1rem 0 .75rem;
    color:var(--ciruela);
    font-size:1.05rem;
    line-height:1.35;
}

.tarjeta-ambito p{
    margin:0;
    text-align:left;
}

.frase-cierre{
    margin-top:4.5rem;
    color:var(--ciruela);
    font-size:1.1rem;
    font-style:italic;
    text-align:center;
}

.participa{
    display:flex;
    justify-content:space-between;
    gap:2rem;
    align-items:center;
}

.participa p{
    margin-bottom:0;
}

.acciones-participa{
    display:flex;
    flex-wrap:wrap;
    gap:1rem;
    justify-content:flex-end;
}

.acciones-participa .boton{
    margin-top:0;
    text-align:center;
}

.boton-secundario{
    background:var(--ocre);
    color:var(--ciruela);
}

.boton-secundario:hover{
    background:var(--ciruela);
    color:white;
}

.rejilla-conceptos{
    grid-template-columns:repeat(4, minmax(0, 1fr));
}

.rejilla-conceptos article{
    min-height:135px;
    padding:1.5rem;
    border-top:5px solid var(--ocre);
}

.rejilla-conceptos h3{
    margin:0;
    font-size:1.05rem;
}

.hero-comunicaciones{
    background:
        linear-gradient(rgba(46,35,72,0.58), rgba(46,35,72,0.78)),
        url("Portada-Original-Puentes.jpg");
    background-size:cover;
    background-position:center;
}

.hero-comunicaciones .eslogan{
    max-width:760px;
    margin:1.2rem auto 0;
}

.landing-comunicaciones section{
    margin-bottom:7rem;
}

.hero-acciones{
    display:flex;
    flex-wrap:wrap;
    gap:1rem;
    justify-content:center;
    margin-top:2rem;
}

.hero-acciones .boton{
    margin-top:0;
}

.entradilla-landing{
    max-width:820px;
    margin:0 auto;
    font-size:1.18rem;
    line-height:1.9;
    text-align:justify;
    text-justify:inter-word;
    padding-inline:1.5rem
}

.rejilla-landing{
    display:grid;
    grid-template-columns:repeat(auto-fit, minmax(230px, 1fr));
    gap:1rem;
    margin-top:2rem;
}

.tarjeta-landing{
    min-width:0;
    min-height:100%;
    padding:1.5rem;
    background:var(--blanco);
    border:1px solid rgba(124,69,85,.14);
    border-top:5px solid var(--ocre);
    border-radius:8px;
    box-shadow:0 2px 8px rgba(46,35,72,.08);
    transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

.tarjeta-landing:hover{
    box-shadow:0 6px 16px rgba(46,35,72,.12);
    transform:translateY(-2px);
}

.tarjeta-landing-vino{
    border-top-color:var(--vino);
}

.tarjeta-landing-ligera{
    background:rgba(253,252,251,.62);
    border-color:rgba(212,138,76,.24);
}

.tarjeta-landing span,
.paso-envio span,
.momento span{
    color:var(--ocre);
    font-weight:800;
}

.tarjeta-landing h3,
.paso-envio h3,
.momento h3{
    margin:.15rem 0 .5rem;
    color:var(--ciruela);
    line-height:1.35;
    overflow-wrap:anywhere;
}

.tarjeta-landing p,
.paso-envio p,
.momento p{
    margin:0;
}

.secuencia-landing{
    display:grid;
    grid-template-columns:repeat(auto-fit, minmax(145px, 1fr));
    gap:.75rem;
    margin-top:2rem;
}

.secuencia-landing article{
    min-width:0;
    padding:1.2rem 1rem;
    background:rgba(253,252,251,.72);
    border:1px solid rgba(124,69,85,.14);
    border-left:5px solid var(--ocre);
    border-radius:8px;
    box-shadow:0 2px 8px rgba(46,35,72,.08);
    text-align:center;
}

.secuencia-landing article:nth-child(even){
    border-left-color:var(--ciruela);
}

.secuencia-landing h3{
    margin:0;
    color:var(--ciruela);
    font-size:1rem;
    overflow-wrap:anywhere;
}

.landing-ambitos{
    grid-template-columns:repeat(auto-fit, minmax(230px, 1fr));
    margin-top:3rem;
}

.landing-ambitos .tarjeta-ambito{
    min-width:0;
    min-height:118px;
    display:flex;
    align-items:center;
    border-top:5px solid var(--ocre);
    transition:transform .2s ease, box-shadow .2s ease;
}

.landing-ambitos .tarjeta-ambito:nth-child(even){
    border-top-color:var(--ciruela);
    background:rgba(253,252,251,.64);
}

.landing-ambitos .tarjeta-ambito:hover{
    box-shadow:0 6px 16px rgba(46,35,72,.12);
    transform:translateY(-2px);
}

.landing-ambitos .tarjeta-ambito h3{
    margin:0;
    overflow-wrap:anywhere;
}

.modalidades-landing,
.pasos-envio,
.calendario-landing{
    display:grid;
    grid-template-columns:repeat(auto-fit, minmax(240px, 1fr));
    gap:1rem;
    margin-top:2rem;
}

.modalidades-landing .tarjeta-landing{
    min-height:0;
}

.paso-envio,
.momento{
    min-width:0;
    padding:1.5rem;
    background:var(--blanco);
    border:1px solid rgba(124,69,85,.14);
    border-left:5px solid var(--vino);
    border-radius:8px;
    box-shadow:0 2px 8px rgba(46,35,72,.08);
}

.momento{
    border-left-color:var(--ocre);
}

.momento-destacado,
.paso-envio-destacado{
    background:rgba(253,252,251,.68);
    border-left-color:var(--ciruela);
}

.cta-final{
    margin-bottom:0;
    padding:3rem 2rem;
    background:
        linear-gradient(135deg, rgba(253,252,251,.94), rgba(245,240,231,.88));
    border-left:5px solid var(--ocre);
    border-radius:8px;
    box-shadow:0 2px 8px rgba(46,35,72,.08);
    text-align:center;
}

.cta-final h2{
    display:inline-block;
    text-align:left;
}

.cta-final .acciones-participa{
    justify-content:center;
    margin-top:2rem;
}

footer{
    background:var(--vino);
    color:white;
    text-align:center;
    padding:2rem;
}

.visor-cartel{
    position:fixed;
    inset:0;
    z-index:1000;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:2rem;
    background:rgba(46,35,72,.88);
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transition:opacity .2s ease, visibility .2s ease;
}

.visor-cartel.activo{
    opacity:1;
    visibility:visible;
    pointer-events:auto;
}

.visor-cartel img{
    display:block;
    max-width:92vw;
    max-height:92vh;
    width:auto;
    height:auto;
    object-fit:contain;
    box-shadow:0 8px 30px rgba(0,0,0,.35);
}

.visor-cerrar{
    position:absolute;
    top:1rem;
    right:1.5rem;
    width:48px;
    height:48px;
    padding:0;
    border:0;
    background:transparent;
    color:white;
    font-size:2.5rem;
    font-weight:300;
    line-height:1;
    cursor:pointer;
}

.visor-cerrar:hover{
    color:var(--ocre);
}

@media (max-width:768px){
    .hero{
        padding:5rem 1.5rem;
    }

    .hero h1{
        font-size:1.9rem;
        line-height:1.2;
    }

    .hero-interior h1{
        font-size:2.2rem;
    }

    .hero .subtitulo{
        font-size:1.2rem;
        max-width:100%;
    }

    nav ul{
        display:grid;
        grid-template-columns:repeat(2, max-content);
        gap:.35rem 1.15rem;
        padding:1rem .75rem;
    }

    nav a{
        display:inline-block;
        margin:0;
    }

    .nav-trigger{
        margin:0;
    }

    .submenu{
        left:0;
        right:0;
        min-width:220px;
        transform:translateY(.4rem);
    }

    .nav-desplegable:hover .submenu,
    .nav-desplegable:focus-within .submenu{
        transform:translateY(0);
    }

    main{
        padding:3rem 1.5rem;
    }

    h2{
        padding-left:1rem;
    }

    .encuentro-resumen,
    .participa{
        grid-template-columns:1fr;
        display:block;
    }

    .cuenta-atras{
        margin-bottom:2rem;
    }

    .contador{
        grid-template-columns:repeat(2, 1fr);
    }

    .rejilla-tarjetas,
    .rejilla-ambitos,
    .rejilla-conceptos{
        grid-template-columns:1fr;
    }

    .tarjeta-perfil{
        min-height:auto;
    }

    .participa{
        text-align:left;
    }

    .acciones-participa{
        justify-content:flex-start;
        margin-top:1.5rem;
    }

    .acciones-participa .boton{
        width:100%;
    }

    .programa-detalle summary{
        grid-template-columns:1fr auto;
        gap:.35rem;
        padding:1rem 1.2rem;
    }

    .programa-detalle summary .hora,
    .programa-detalle summary .actividad{
        grid-column:1;
        min-width:0;
    }

    .programa-detalle summary:after{
        position:absolute;
        right:1.2rem;
    }

    .programa-detalle summary{
        position:relative;
    }

    .actividad{
        padding-right:2rem;
    }

    .contenido-programa{
        padding:0 1.2rem 1.2rem;
    }

    .rejilla-comites{
        grid-template-columns:1fr;
    }

    .rejilla-entidades{
        grid-template-columns:1fr;
    }

    .cronologia-inscripcion,
    .modalidades-inscripcion,
    .recursos-documentacion{
        grid-template-columns:1fr;
    }

    .cronologia-inscripcion article{
        min-height:auto;
    }

    .tarjeta-inscripcion{
        padding:1.5rem;
    }

    .tarjeta-inscripcion .boton{
        width:100%;
        text-align:center;
    }

    .galeria-carteles{
        grid-template-columns:1fr;
    }

    .cartel-ampliable{
    display:block;
    cursor:zoom-in;
}

.cartel-ampliable img{
    transition:transform .2s ease, box-shadow .2s ease;
}

.cartel-ampliable:hover img{
    transform:scale(1.015);
    box-shadow:0 6px 18px rgba(46,35,72,.16);
}

    .landing-comunicaciones section{
        margin-bottom:5rem;
    }

    .hero-acciones .boton{
        width:100%;
        max-width:320px;
        text-align:center;
    }

    .cta-final{
        padding:2rem 1.4rem;
    }

    .cta-final h2{
        display:block;
    }
}
