@import url('https://fonts.googleapis.com/css2?family=DM+Serif+Display:ital@0;1&family=EB+Garamond:ital,wght@0,400..800;1,400..800&family=Libre+Franklin:ital,wght@0,100..900;1,100..900&family=Montserrat:ital,wght@0,100..900;1,100..900&family=Raleway:ital,wght@0,100..900;1,100..900&family=Red+Hat+Display:ital,wght@0,300..900;1,300..900&family=Rubik:ital,wght@0,300..900;1,300..900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Atkinson+Hyperlegible+Next:wght@400;500;700&family=Lexend:wght@300;400;500;600;700&display=swap');

/*VARIABLES*/

:root{
    color-scheme: light;
    /* Colores */
    --color-primario:#5E17EB;
    --color-secundario:#50C878;
    --color-fondo:#F7F7FB;
    --color-texto:#222222;
    --color-texto-secundario:#555555;
    --color-titulo:#161616;
    --color-borde:#DDDDDD;
    --color-focus:#FFD54A;
    /* Tipografía */
    --fuente-textos:"Atkinson Hyperlegible Next",sans-serif;
    --fuente-titulos:"Lexend",sans-serif;
    /* Espaciados */
    --espacio-xs:.5rem;
    --espacio-sm:1rem;
    --espacio-md:1.5rem;
    --espacio-lg:2rem;
    --espacio-xl:3rem;
    /* Bordes */
    --radio:14px;
    /* Sombras */
    --sombra-suave:
        0 4px 18px rgba(0,0,0,.08);
    --sombra-hover:
        0 12px 30px rgba(0,0,0,.15);
}

/*RESET*/

*,
*::before,
*::after{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

html{
    scroll-behavior:smooth;

}

body{
    min-height:100vh;
    background-color: var(--color-fondo);
    color:var(--color-texto);
    font-family:var(--fuente-textos);
    font-size: 1.12em;
    line-height: 1.7;
    text-rendering:optimizeLegibility;
}

html, body {
    overflow-x: hidden;
    width: 100%;
}
/*IMÁGENES*/

figure{
    margin:0;
}

img{
    border-radius:6px;
    display:block;
    max-width:100%;
    height:auto;
}

ul{
    list-style:none;
}

a{
    color:inherit;
    text-decoration:none;
}

button{
    font:inherit;
    cursor:pointer;
    background:none;
}

/*ACCESIBILIDAD*/
a,
button,
input,
textarea,
select{
    min-height: 2em;
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible{
    outline:4px solid var(--color-focus);
    outline-offset:4px;
    border-radius:8px;
}


/* Personas sensibles al movimiento */

@media (prefers-reduced-motion:reduce){
    html{
        scroll-behavior:auto;
    }
    *,
    *::before,
    *::after{
        animation:none!important;
        transition:none!important;
    }
}

/*TIPOGRAFÍA*/

h1,
h2,
h3,
h4,
h5{
    color:var(--color-titulo);
    font-family:var(--fuente-titulos);
    font-weight:700;
    line-height:1.2;
    margin-bottom:.7em;
}

h1{
    font-size:clamp(2rem,3vw,2.8rem);
}

h2{
    font-size:clamp(1.6rem,2vw,2.2rem);
}

h3{
    font-size:1.4rem;
}

p{
    margin-bottom:1rem;
}

span{
    font-weight:600;
}

/*HEADER*/

header{
    position:sticky;
    top:0;
    z-index:9000;
    background:var(--color-primario);
    box-shadow:var(--sombra-suave);
}

.header-contenido{
    margin:0 3em;
    display:flex;
    justify-content:space-between;
    align-items:center;
    padding:1rem 0;
}

#logo{
    display:flex;
    align-items:center;
}

#logo img{
    width:35%;
}

/*NAVEGACIÓN DESKTOP*/

nav{
    position:relative;
}

nav ul{
    display:flex;
    align-items:center;
    gap:1rem;
}

nav li{
    display:flex;
}

nav a{
    display:flex;
    align-items:center;
    justify-content:center;
    padding:.9rem 1.2rem;
    border-radius:10px;
    transition:.25s;
    font-weight:600;
    color:white;
}

nav a:hover{
    background:rgba(255,255,255,.12);
}

nav a:active{
    transform:scale(.97);
}

/*BOTÓN HAMBURGUESA*/

.menu-btn{
    display:none;
    width:50px;
    height:50px;
    justify-content:center;
    align-items:center;
    flex-direction:column;
    gap:6px;
    cursor:pointer;
}

.btn-linea{
    width:30px;
    height:3px;
    background:#fff;
    border-radius:999px;
    transition:.3s;
}

/*LAYOUT*/

main{
    width:95%;
    margin: auto;
    padding:.51em ;
}

section{
    margin-bottom:4rem;
}

footer{
    display: flex;
    flex-direction: row;
    justify-content: space-around;
    background:#111;
    color:white;
    padding:2rem;
    margin-top:4rem;
    text-align:center;
    font-size:.95rem;
}

footer p{
    max-width: 95%;
}
/*INTRODUCCIÓN*/

.introducción{
    background:white;
    padding:2rem;
    border-radius:var(--radio);
    box-shadow:var(--sombra-suave);
}

.introducción p{
    font-size:1.4rem;
}

.intro,
.span-introduccion{
    color:var(--color-primario);
    font-weight:700;
}

/*SCROLL HORIZONTAL*/

.scroll-horizontal{
    display:flex;
    gap:2rem;
    overflow-x:auto;
    padding-bottom:1rem;
}

.scroll-horizontal::-webkit-scrollbar{
    height:1em;
}

.scroll-horizontal::-webkit-scrollbar-thumb{
    background:var(--color-primario);
    border-radius:999px;
}

.scroll-horizontal::-webkit-scrollbar-track{
    background:#ddd;
}

.tema-contenedor{
    position:sticky;
    top:0;
    z-index:6000;
    background:var(--color-primario);
    box-shadow:var(--sombra-suave);
    padding: 1em 1em 0em 1em;
    margin-bottom: .5em;
    border-top-left-radius: 5px;
    border-top-right-radius: 5px;
}

/*TARJETAS*/

.contenedor-obra,
.contenedor-pelicula{
    flex:0 0 340px;
    min-width:25em;
    background:var(--color-superficie);
    border-radius:var(--radio);
    overflow:hidden;
    box-shadow:var(--sombra-suave);
    transition:
        transform .30s ease,
        box-shadow .30s ease;
    scroll-snap-align:start;
}

.contenedor-obra:hover,
.contenedor-pelicula:hover{
    transform:translateY(-8px);
    box-shadow:var(--sombra-hover);
}

.tarjeta{
    position:relative;
    overflow:hidden;
}

.tarjeta figure{
    overflow:hidden;
}

.tarjeta img{
    width:100%;
    aspect-ratio:2/3;
    object-fit:cover;
    transition:transform .45s ease;
}

.tarjeta:hover img,
.tarjeta:focus-within img{
    transform:scale(1.08);
}

/*INFORMACIÓN HOVER*/

.info-hover{
    position:absolute;
    inset:0;
    display:flex;
    flex-direction:column;
    justify-content:flex-end;
    gap:.6rem;
    padding:1.5rem;
    background:linear-gradient(
        to top,
        rgba(0,0,0,.93),
        rgba(0,0,0,.60),
        rgba(0,0,0,.15)
    );
    color:white;
    opacity:0;
    transition:opacity .35s;
}

.tarjeta:hover .info-hover,
.tarjeta:focus-within .info-hover{
    opacity:1;
}

.info-hover h3{
    color:white;
    margin:0;
}

.info-hover h4{
    color:#f1f1f1;
}

.info-hover p{
    margin:0;
}

.info-hover a{
    color:white;
    display:block;
    width:100%;
    height:100%;
}

/*DIRECTOR*/

.director{
    font-size:1.5rem;
    font-style:italic;
    color:#DDDDDD;
}

.ultima-funcion{
    display:inline-flex;
    align-items:center;
    padding:.35rem .7rem;
    border-radius:999px;
    background:var(--color-secundario);
    color:#111;
    font-weight:700;
    font-size:1rem;
}

/*ICONOS ACCESIBILIDAD*/

.accesibilidad-presente{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:.7rem;
    margin-top:.8rem;
}

.accesibilidad-presente figure{
    width:9em;
    height:9em;
    border-radius:50%;
    background:white;
    display:flex;
    justify-content:center;
    align-items:center;
    padding:.35rem;
}

.accesibilidad-presente img{
    width:100%;
    height:100%;
    object-fit:contain;
}

.iconos-acceso{
    display:flex;
    flex-wrap:wrap;
    gap:1rem;
    margin-top:1rem;
}

.iconos-acceso img{
    width: 6rem;
}

/*BOTÓN VER TODOS*/

section>div:last-child{
    margin-top:1.4rem;
}

section>div:last-child a{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    background:var(--color-primario);
    color:white;
    padding:.9rem 1.4rem;
    border-radius:999px;
    font-weight:700;
    transition:.25s;
}

section>div:last-child a:hover{
    background:#4813ba;
    transform:translateY(-2px);
}

section>div:last-child a:active{
    transform:scale(.98);
}

/*NOTICIAS*/

.noticias{
    display:grid;
    gap:2rem;
}

.contenedor-noticia{
    background:var(--color-fondo);
    border-radius:var(--radio);
    padding:2rem;
    box-shadow:var(--sombra-suave);
    border-left:8px solid var(--color-primario);
    transition:.30s;
}

.contenedor-noticia:hover{
    transform:translateY(-4px);
    box-shadow:var(--sombra-hover);
}

.contenedor-noticia h2{
    margin-bottom:1rem;
}

.contenedor-noticia p{
    color:var(--color-texto-secundario);
}

.contenedor-noticia a{
    display:inline-flex;
    margin-top:1rem;
    color:var(--color-primario);
    font-weight:700;
}

.contenedor-noticia a:hover{
    text-decoration:underline;
}

/*OBRA INDIVIDUAL*/

.filtro-accesibilidad {
    margin-bottom: 1em;
}

.filtro-accesibilidad button {
    margin: .2em 
}

.cartelera{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(320px,1fr));
    gap:2rem;
    width: 90%
}

.obra-teatro{
    display:flex;
    flex-direction:column;
    gap:1rem;
    background:white;
    padding:1.5rem;
    border-radius:var(--radio);
    box-shadow:var(--sombra-suave);
}

.obra-teatro img{
    width:100%;
    aspect-ratio:2/3;
    object-fit:cover;
}

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

.obra-teatro{
    display:grid;
    gap:1.5rem;
    background:white;
    padding:2rem;
    border-radius:var(--radio);
    box-shadow:var(--sombra-suave);
}

@media (max-width:768px){

    .cartelera{
        grid-template-columns:1fr;
    }

}
/*CINE*/

.contenedor-cine{
    background:white;
    border-radius:var(--radio);
    padding:2rem;
    box-shadow:var(--sombra-suave);
}

.contenedor-cine iframe{
    width:100%;
    aspect-ratio:16/9;
    border-radius:12px;
}

/*BOTONES*/

button,
input[type="submit"]{
    display:inline-flex;
    justify-content:center;
    align-items:center;
    padding:.9rem 1.4rem;
    border-radius:999px;
    background:var(--color-primario);
    color:white;
    font-weight:700;
    transition:.25s;
}

button:hover,
input[type="submit"]:hover{
    background:#4912bd;
}

button:active,
input[type="submit"]:active{
    transform:scale(.97);
}

/*MENÚ RESPONSIVE*/

/* Desktop */

.menu-btn{
    display:none;
}

.menu-fondo{
    display:flex;
}

/*NOTEBOOK*/

@media (max-width:1200px){

    body{
        font-size:17px;
    }

    main,
    .header-contenido{
        width:min(96%,1200px);
    }
}

/*TABLET*/

@media (max-width:992px){

    body{
        font-size:17px;
    }

    #logo img{
        width:35%;
    }

    .scroll-horizontal{
        gap:1.25rem;
    }

    .contenedor-obra,
    .contenedor-pelicula{
        min-width:300px;
        flex-basis:300px;
    }
}

/*CELULAR*/

@media (max-width:768px){

    header{
        padding:0;
    }

    .header-contenido{
        padding:1rem;
        margin: 0;
        width: 100%;
    }

    /*Botón hamburguesa-*/

    .menu-btn{
        display:flex;
        position:relative;
        z-index:9002;
    }

    /*Menú lateral*/

    .menu-fondo{
        position:fixed;
        top:0;
        right:0;
        width:min(320px,85vw);
        height:100vh;
        background:var(--color-primario);
        box-shadow:-8px 0 30px rgba(0,0,0,.25);
        display:flex;
        justify-content:flex-start;
        align-items:flex-start;
        padding:6rem 2rem;
        transform:translateX(100%);
        transition:.35s;
        z-index:9000;
    }

    .menuVisible .menu-fondo{
        transform:translateX(0);
    }

    /*Links*/

    nav ul{
        width:100%;
        display:flex;
        flex-direction:column;
        align-items:stretch;
        gap:.8rem;
    }

    nav li{
        width:100%;
    }

    nav a{
        width:100%;
        justify-content:flex-start;
        padding:1rem;
        border-radius:10px;
        font-size:1rem;
    }

    nav a:hover{
        background:rgba(255,255,255,.15);
    }

    /*Animación botón*/

    .menuVisible .btn-linea:nth-child(1){
        transform:
            rotate(45deg)
            translateY(12px);
    }

    .menuVisible .btn-linea:nth-child(2){
        opacity:0;
    }

    .menuVisible .btn-linea:nth-child(3){
        transform:
            rotate(-45deg)
            translateY(-12px);
    }

    /*Layout*/

    main{
        padding:1.5rem 0;
    }

    section{
        margin-bottom:3rem;
    }

    .introducción{
        padding:1.5rem;
    }

    h1{
        font-size:2rem;
    }
}

/* CELULARES */

@media (max-width:576px){

    body{
        font-size:16px;
    }

    #logo img{
        width:35%
    }

    .scroll-horizontal{
        gap:1rem;
    }

    .contenedor-obra,
    .contenedor-pelicula{
        min-width:260px;
        flex-basis:260px;
    }

    .contenedor-noticia{
        padding:1.5rem;
    }

    .obra-teatro,
    .contenedor-cine{
        padding:1.25rem;
    }

    .info-hover{
        padding:1rem;
    }

    .info-hover h3{
        font-size:1.15rem;
    }

    .director{
        font-size:.9rem;
    }

    .ultima-funcion{
        font-size:.8rem;
    }

    .accesibilidad-presente{
        gap:.5rem;
    }

    .accesibilidad-presente figure{
        width:36px;
        height:36px;
    }
}

/*CELULARES PEQUEÑOS*/

@media (max-width:380px){

    body{
        font-size:15px;
    }
    #logo img{
        width:35%;
    }
    .menu-fondo{
        width:100vw;
    }
    .contenedor-obra,
    .contenedor-pelicula{
        min-width:220px;
        flex-basis:220px;
    }
    h1{
        font-size:1.8rem;
    }
    h2{
        font-size:1.5rem;
    }
}

/*MODO OSCURO*/

@media (prefers-color-scheme:dark){

    :root{
        --color-fondo:#161616;
        --color-superficie:#242424;
        --color-texto:#F5F5F5;
        --color-texto-secundario:#DDDDDD;
        --color-titulo:#FFFFFF;
        --color-borde:#444;
    }
}


/*FAQ*/

.faq-item{
    margin-bottom:1rem;
    overflow:hidden;
    border-left:6px solid var(--color-primario);
    border-radius: 15px;
}

.faq-pregunta{
    width:100%;
    display:flex;
    justify-content:space-between;
    align-items:center;
    padding:1.2rem 1.5rem;
    background:rgb(229, 229, 250);
    border-radius: 15px;
    font-weight:700;
    color:var(--color-titulo);
    text-align:left;
    border:none;  
}

.faq-pregunta:hover{
    background:rgba(94,23,235,.06);
}

.faq-pregunta:focus-visible{
    outline:none;
}

.faq-respuesta{
    display:none;
    padding:0 1.5rem 1.5rem;
}

.faq-item.active .faq-respuesta{
    display:block;
}

.icon{
    font-size:1.5rem;
    font-weight:700;
    transition:transform .3s ease;
}

.faq-item.active .icon{
    transform:rotate(45deg);
}


/*UTILIDADES*/

.container{
    width:min(1300px,95%);
    margin:auto;
}

.text-center{
    text-align:center;
}

.oculto{
    display:none!important;
}

.mt-1{margin-top:1rem;}
.mt-2{margin-top:2rem;}
.mt-3{margin-top:3rem;}

.mb-1{margin-bottom:1rem;}
.mb-2{margin-bottom:2rem;}
.mb-3{margin-bottom:3rem;}


/*SOLO PARA LECTORES DE PANTALLA*/

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


/*SCROLLBAR*/

*{
    scrollbar-width:thin;
    scrollbar-color:var(--color-primario) transparent;
}

::-webkit-scrollbar{
    width:10px;
    height:10px;
}

::-webkit-scrollbar-thumb{
    background:var(--color-primario);
    border-radius:999px;
}

::-webkit-scrollbar-track{
    background:transparent;
}

/*TABLAS*/

table{
    width:100%;
    border-collapse:collapse;
    margin:2rem 0;
}

th,
td{
    border:1px solid var(--color-borde);
    padding:1rem;
    text-align:left;
}

th{
    background:var(--color-primario);
    color:white;
}

/*ENLACES*/

a{
    transition:
        color .25s ease
        background .25s ease;
}

main a:not(nav a){
    color:var(--color-primario);
    font-weight:600;
}

main a:not(nav a):hover{
    text-decoration:underline;
}

/*ESTADOS DE FOCO*/

.tarjeta:focus-within{
    outline:4px solid var(--color-focus);
    outline-offset:5px;
    border-radius:var(--radio);
}

.contenedor-noticia:focus-within{
    outline:4px solid var(--color-focus);
}

button:active,
a:active{
    transform:scale(.98);
}

/*MEJORAS DE LEGIBILIDAD*/

p{
    max-width:75ch;
}

h1,
h2,
h3{
    text-wrap:balance;
}

p{
    text-wrap:pretty;
}

