/*** Sitio: Cines Axion Sevilla ***/
/* =============================================
   SLIDER PRINCIPAL: fixes globales responsive
   ============================================= */

/* Slide de banner (4D, publicidad): el div interno debe ocupar el 100% del alto
   para que la imagen pueda llenarlo correctamente */
.slider-cab .splide__slide > div > div:not(.ancho-web) {
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
}
.slider-cab .splide__slide > div > div:not(.ancho-web) image,
.slider-cab .splide__slide > div > div:not(.ancho-web) img {
    width: 100% !important;
    height: auto !important;
    max-height: 100%;
    object-fit: cover;
}

/* El bloque de texto+título debe expandirse para ocupar el espacio restante
   y evitar que quede fondo negro visible a la derecha */
.slider-cab .splide__slide .ancho-web > div:last-child {
    flex: 1;
    min-width: 0;
}

/* Botón "COMPRA TUS ENTRADAS": override del width:400px inline */
.titulo-slider1-izq {
    /*width: auto !important;*/
    max-width: 100%;
}

/* =============================================
   SLIDER CABECERA CARTELES — ESCRITORIO (>1280px)
   Banner publicidad: forzar height:100% del slide para que
   iguale la altura de los slides de película (600px).
   Con object-fit:cover la imagen rellena el slide sin huecos.
   ============================================= */
@media (min-width: 1281px) {
    /* Forzar el alto del div interno del slide a 600px. El inline
       height:600px!important no se está aplicando (Splide lo altera). */
    #slider-cabecera-carteles .splide__slide > div {
        height: 600px !important;
        min-height: 600px !important;
        max-height: 600px !important;
    }
    #slider-cabecera-carteles .splide__slide > div > div:not(.ancho-web) {
        height: 600px !important;
        min-height: 600px !important;
    }
    #slider-cabecera-carteles .splide__slide > div > div:not(.ancho-web) img,
    #slider-cabecera-carteles .splide__slide > div > div:not(.ancho-web) image {
        width: 100% !important;
        height: 600px !important;
        max-height: 600px !important;
        object-fit: cover !important;
        object-position: center center !important;
        display: block !important;
    }
}

/* ============================================= */

/* Móviles pequeños (hasta 480px) */
@media (max-width: 480px) {
    :root {
        --ancho-web: 100%;
        --tamano: 14px;
        --espacio: 70px; /* Solo altura del logo, el submenu está fuera del header */
        --scroll-alto:120px;
    }
    .ord-1 {
        order: 1;
    }
    .ord-2 {
        order: 2;
    }
    .ord-3 {
        order: 3;
    }
    .ord-4 {
        order: 4;
    }
    .ancho-web {
        width: 100% !important;
        margin: auto;
        padding: 0px 10px;
    }
    .cabecera {
        width: 100%;
        gap: 10px;
        height: auto;
        padding: 10px 15px;
        justify-content: space-between;
        flex-wrap: nowrap;
        align-items: center;
        /* sin position:relative — el dropdown fluye en el documento y empuja el submenú hacia abajo */
    }
    .logo {
        flex: 0 0 auto;
        margin: 0;
        justify-content: flex-start;
    }
    .logo img {
        max-height: 50px;
        width: auto;
    }
    .contenedor {
        gap: 10px;
        margin-top: 10px;
    }
    #proximamente {
        margin-top: 20px !important;
    }
    #proximamente .bloque {
        /*flex: 0 0 50%;*/
        max-width: 50%;
    }
    #proximamente .bloque img {
        width: 180px !important;
        height: auto !important;
    }
    #proximamente .contenedor {
        margin-top: 0px !important;
    }
    .margen-arriba {
        margin-top: 20px;
    }
    .contenedor-bloque {
        gap: 8px;
    }
    .cabecera.contenedor-bloque {
        justify-content: space-between;
    }
    .bloque {
        flex: 1 1 auto; /* Bloques al 100% ancho en móviles */
        padding: var(--padding2, 10px);
        box-sizing: border-box;
        text-align: center;
    }
    .bloque50, .bloque50 .bloque, .bloque33, .bloque33 .bloque, .bloque25, .bloque25 .bloque, .bloque75, .bloque75 .bloque, .bloque10, .bloque10 .bloque {
        flex: 1 1 100%;
        margin-top: 10px;
        max-width: 100%;
        /*padding: 0 10px;*/
    }
    .bloque50 img, .bloque50 iframe, .bloque33 img, .bloque22 iframe, .bloque25 img, .bloque25 iframe, .bloque75 img, .bloque75 iframe, .bloque10 img, .bloque10 iframe {
        max-width: 100%;
    }
.columna {
        flex: 1 1 auto; /* Bloques al 100% ancho en móviles */
        padding: var(--padding2, 10px);
        box-sizing: border-box;
        text-align: center;
    }
    .columna2-3, .columna1-3, .columna1-3, .columna3-4, .columna1-4, .columna2, .columna3 {
        --columna-ancho: 100%;
    }
    .izquierda, .left, .derecha, .right {
        float: none;
        margin-bottom: 10px;
    }
    .banner-home {
        width: 100%;
        height: auto;
        margin: var(--padding2) 0;
    }
    .banner-home .banner-titulo {
        height: auto;
        padding: 10px;
        font-size: 1rem;
    }
    .logo {
        text-align: center;
    }
    .logo img {
        max-height: 50px;
        padding-left: 0px;
    }
    .titulo-slider {
        font-size: 1.5rem;
        text-align: center;
    }
    .titulo-slider1 {
        font-size: 30px;
        padding: 5px 10px;
        top: 40%;
        right: 5%;
    }
    .titulo-slider2 {
        font-size: 20px;
        padding: 5px 10px;
        top: 60%;
        right: 5%;
    }
    .titulo1, h1, .titulo2, h2, .titulo3, .titulo5 {
        font-size: 1.8rem;
        padding: 2px 0;
    }
    .titulo3{
        display:none;
    }
    .titulo5 {
        font-size: 1.5rem;
        margin-bottom: 15px;
    }
    .titulo4 {
        font-size: 1.2rem;
    }
    .titulo1::after, .titulo1::before, .titulo2::after, .titulo2::before, .titulo3::after, .titulo3::before, .titulo5::after, .titulo5::before {
        display: none;
        /*width: 20px;
    height: auto;
    mask-image: url('../img/icos/detalle.svg'); 
    -webkit-mask-image: url('../img/icos/detalle.svg'); 
    margin-top:20px;*/
    }
    h2, h2 span {
        font-size: 20px;
        padding: var(--padding1) 0;
    }
.titulo2.home{
display:none;
}
    .boton1, .boton2, .boton3, button {
        padding: 8px 20px;
        font-size: 0.9rem;
    }
    .boton-trabaja {
        padding: 8px 15px;
        gap: 0.3em;
    }
    .boton-trabaja::before {
        width: 1.8em;
        height: 1.8em;
    }
    .menu-movil {
        display: block !important;
    }
    .menu-escritorio {
        display: none !important;
    }
    /* Hamburguesa: derecha, misma fila que el logo */
    #menu {
        width: auto !important;
        max-width: none !important;
        flex: 0 0 auto;
        margin: 0 !important;
    }
    /* Cuando hamburguesa abierto: #menu ocupa fila completa, dropdown empuja submenú hacia abajo */
    .cabecera:has(#show-menu:checked) {
        flex-wrap: wrap;
        align-items: flex-start;
    }
    .cabecera:has(#show-menu:checked) > #menu {
        flex: 0 0 100%;
        width: 100% !important;
        max-width: 100% !important;
    }
    /* Submenu horizontal: sticky bajo el logo, aparece debajo del slider */
    #submenu-movil {
        position: sticky;
        top: 70px;
        z-index: 5;
        background-color: var(--color1);
        width: 100%;
        box-sizing: border-box;
        padding: 8px 15px;
    }
    #submenu-movil ul {
        list-style: none;
        margin: 0;
        padding: 0;
    }
    #submenu-movil #bloque-menu {
        display: flex;
        gap: 8px;
        justify-content: center;
        flex-wrap: wrap;
    }
    #submenu-movil li a {
        display: block;
        padding: 8px 16px;
        background-color: var(--color3);
        color: var(--color1);
        text-decoration: none;
        opacity: 1;
    }
    #submenu-movil li a:hover {
        opacity: 0.6;
    }
    /* Apartado activo: marcado con opacity */
    #submenu-movil li.menu-selec a {
        opacity: 0.5;
    }

    /*MENU — dropdown debajo de la fila del logo (.cabecera) */
    /* display: none con baja especificidad para que el checked de principal.css pueda sobreescribirlo */
    #menu ul {
        display: none;
    }
    /* position: absolute !important para ganar a #bloque-menu { position: relative !important } de principal.css */
    /* left:50% + translateX(-50%) + width:100vw → ancho completo de viewport independientemente del padding de .cabecera */
    #menu #bloque-menu {
        position: static !important;
        width: 100%;
        margin: 0;
        padding: 0;
        background-color: var(--color3);
    }
    /*Crear espacio vertical*/
    #menu li, #menupie li {
        margin-bottom: 1px;
    }
    /*Todos los enlaces del menú de ancho completo y apilados verticalmente*/
    #menu ul li, #menu li a {
        display: block !important;
        width: 100%;
        font-size: 1.5rem !important;
        line-height: 50px;
        text-align: center;
    }
    #menupie ul li, #menupie li a {
        font-size: 0.8rem !important;
        text-align: center;
    }
    .show-menu {
        display: flex;
        align-items: center;
        justify-content: flex-end;
        cursor: pointer;
        font-size: 2rem;
        padding: 0 5px;
        z-index: 100;
    }
    /* Iconos */
    .show-menu .cruz {
        display: none;
    }
    #show-menu:checked + label .barra {
        display: none;
    }
    #show-menu:checked + label .cruz {
        display: inline-block;
    }
    .bloque-menu1, .bloque-menu2 {
        border-left: none;
        padding-left: 0px;
    }
    #menupie .left {
        display: none;
    }
    .submenu {
        margin-top: 50px !important;
        text-align: center !important;
        width: 300px;
    }
    /* Submenu CINES: fluye normal (no absoluto), oculto por defecto (principal.css pone display:none) */
    .submenu-cines {
        position: static !important;
        left: auto !important;
        width: 100% !important;
        /* sin display: block — se muestra con :focus-within al hacer click en CINES */
        padding: 4px 0 !important;
    }
    /* Cada li del submenú CINES: flex row → ::before (icono color) queda a la izq del texto.
       Selector #menu .submenu-cines li supera en especificidad a #menu ul li (que tiene display:block !important) */
    #menu .submenu-cines li {
        display: flex !important;
        align-items: center;
        gap: 8px;
        padding-left: 15px !important;
    }
    #menu .submenu-cines li::before {
        position: static !important;  /* saca el ::before de position:absolute → entra en flujo flex */
        flex: 0 0 13px;
        margin: 0 !important;         /* elimina margin-left:15px y margin-top:9px del desktop */
    }
    /* #menu .submenu-cines li a supera a #menu li a (que tiene font-size:1.5rem y line-height:50px) */
    #menu .submenu-cines li a {
        flex: 1 1 auto;
        padding-left: 0 !important;   /* el icono ya está en flujo flex, no hace falta indentación */
        text-align: left !important;
        font-size: 1rem !important;
        line-height: 2.2 !important;
    }
    /* Mostrar submenú CINES al hacer click: el <a> recibe foco → li tiene :focus-within */
    #menu .menu-movil li:focus-within > .submenu-cines {
        display: block !important;
    }
    /* Ocultar ::before decorativo en submenús normales, PERO conservarlo en .submenu-cines (icono de color de cada cine) */
    #menu li ul:not(.submenu-cines) li::before {
        display: none;
    }
    #menu li .submenu li a{
        font-size:1.2rem !important;
    }
    .parallax {
        height: 180px;
    }
    .noticia-titulo {
        font-size: 1.2rem;
    }
    .noticia-sinopsis {
        font-size: 0.9rem;
    }
    .ver-mas-boton {
        padding: 5px 20px;
        font-size: 0.75rem;
    }
    .formulario input[type="text"], .formulario input[type="email"], .formulario input[type="tel"], .formulario textarea {
        font-size: 0.9rem;
    }
    .formulario label {
        font-size: 0.9rem;
    }
    .ui-tabs .ui-tabs-nav {
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
    }
    .ui-tabs .ui-tabs-nav .ui-tabs-anchor {
        padding: 0.5em;
        font-size: 0.8rem;
        min-width: unset;
    }
    .lista-sesiones {
        width: 100%;
    }
    .lista-sesiones .sinopsis {
        text-align: left;
    }
    td:has(.titulo-ficha) {
        height: auto;
    }
    div#cartelera {
        margin-top: 20px !important;
    }
    /* Grid cartelera: imagen fija en col1, todo lo demás en col2 */
    .cartelera {
        display: grid;
        grid-template-columns: auto 1fr;
        grid-template-areas: none;
        column-gap: 10px;
        align-items: start;
        margin-bottom: 0px;
    }
    .cartelera .cartelera-imagen {
        grid-column: 1 !important;
        grid-row: 1 / span 20;
        align-self: start;
    }
    .cartelera > *:not(.cartelera-imagen) {
        grid-column: 2 !important;
        grid-row: auto;
        text-align: left;
    }
    /* Ficha película: imagen (180px) | título+info, sesiones abajo a todo ancho */
    .ficha {
        display: grid !important;
        grid-template-columns: 180px 1fr;
        grid-template-areas:
            "imagen titulo"
            "imagen info"
            "sesiones sesiones";
        gap: 10px;
        align-items: start;
        margin-bottom: 0;
        margin-top: 0;
    }
    /* Columna imagen: fija 180px */
    .ficha > .columna0.columna1-3 {
        grid-area: imagen;
        width: 180px !important;
        max-width: 180px !important;
        min-height: auto !important;
    }
    /* display:contents "desenvuelve" .columna2-3: .ficha__titulo, .ficha__informacion
       y .ficha__sesiones pasan a ser hijos directos del grid (usan sus grid-area de cartelera.css) */
    .ficha > .columna0.columna2-3 {
        display: contents;
    }
    .ficha .panel-sesiones {
        display: flex;
        gap: 20px;
        flex-wrap: wrap;
        align-items: center;
    }
    .ficha .panel-sesiones > * {
        width: auto;
        flex: 0 0 auto;
    }
.ficha-no-ses > span {
    font-size: 0.7rem !important;
}
    .cartelera-home .sobre-pelicula {
        max-width: 100%;
        padding: 10px 0;
    }
    .bloque .pelicula-titulo {
        font-size: 1em;
    }
    .bloque .pelicula-titulo .btn-comprar {
        font-size: 0.7em;
    }
    .ficha-titulo {
        font-size: 1.4rem;
    }
    /* Título ficha real (clase con doble guión bajo): reducir de 3rem desktop a móvil */
    .ficha__titulo {
        font-size: 1.4rem !important;
        line-height: 1.2 !important;
    }
    .cartelera {
        padding: 10px;
    }
    .alert {
        padding: 15px;
    }
    .ficha-imagen {
        width: 100%;
        max-width: 180px;
        /*margin-top: -100px;*/
        min-height: auto;
    }
    /* Póster ficha película: máximo 180px en móvil */
    .ficha__imagen {
        width: 100% !important;
        max-width: 180px !important;
        min-height: auto !important;
        height: auto !important;
    }
    .ficha__imagen img {
        width: 100% !important;
        height: auto !important;
    }
    /* Imagen cartelera: máximo 220px */
    .cartelera-imagen, .cartelera-imagen img {
        width: min(220px, 42vw);
        max-width: 220px;
        min-height: auto !important;
    }
    .cartelera-home div img {
		width: 100%;
        /*max-width: 100%;*/
		max-width:250px !important;
        min-width: unset !important;
        height: auto;
    }
    /* Imágenes en columnas de contenido: responsivas en móvil */
    .contenedor .fila .columna2 img,
    .contenedor .fila .columna1-3 img,
    .contenedor .fila .columna2-3 img {
        width: 100%;
        max-width: 100%;
        height: auto;
    }
    .ficha-imagenv {
        width: 100%;
        height: auto;
    }
    .ficha-home-imagen img {
        width: 100%;
        height: auto;
    }
    .ficha-sinopsis, .cartelera-sinopsis {
        width: 100%;
        font-size: 0.95rem;
    }
    /* Sinopsis ficha real (clase con doble guión bajo): tamaño legible en móvil */
    .ficha__sinopsis {
        font-size: 1rem !important;
        line-height: 1.5 !important;
    }
    /* Sesiones del mismo día: en fila (no columna) para ahorrar espacio vertical */
    .scroll .sesiones-dia {
        flex-direction: row;
        flex-wrap: wrap;
        gap: 4px;
    }
    /* Sesiones: hora centrada */
    .linea-sesion {
        justify-content: center !important;
        font-size: large;
    }
    .linea-sesion > *:nth-child(1) {
        text-align: center;
    }
    .linea-sesion > *:nth-child(2) {
        flex: 0 0 auto !important;
        text-align: center;
    }
    .cont-ses, .mas-ses {
        flex: 0 0 auto;
        margin: 3px;
    }
    .ficha-home {
        width: 100%;
        display: block;
    }
    .carrusel-carteles {
        padding-top: 30px;
        display: flex;
        justify-content: center;
        gap: 0px;
        flex-direction: column;
        padding-top: 20px;
        margin-bottom: 30px;
    }
    .carrusel-carteles div {
        width: 100%;
        text-align: center;
    }
    .titulo-carrusel {
        padding: 10px 0px 20px 0px;
    }
    .patio {
        padding: 0 10px;
    }
    .cont-resumen {
        column-gap: 10px;
        flex-direction: column;
    }
    .resumen, .productos {
        width: 100%;
        flex-wrap: wrap;
        flex-direction: row;
    }
    .resumen-peli {
        width: 100%;
    }
    .resumen-peli .img-v {
        position: relative;
        width: 100%;
        text-align: center;
    }
    .resumen-peli .img-v > img {
        margin-right: 0px;
    }
    .resumen-compra:not(.con-info-adicional) {
        display: grid !important;
        grid-template-areas: "inf"
            "loc"
            "btn"
            "btn"
            "des"
            "det" !important;
        grid-template-columns: 100% !important;
    }
    .resumen-compra.con-info-adicional {
        display: grid !important;
        grid-template-areas: "inf"
            "inf"
            "btn"
            "btn"
            "des"
            "det" !important;
        grid-template-columns: 100% !important;
    }
    .resumen-compra .resumen-peli .img-v {
        position: relative;
        width: auto;
        text-align: left;
    }
    .resumen-compra .bloque-resumen {
        display: block;
    }
    .resumen-compra .botones-resumen .btn {
        font-size: 1.5em !important;
        margin: 2px 5px;
    }
    .resumen-compra .passbook {
        right: 0px;
        margin-top: 70px;
    }
    .ficha-cabecera {
        display: none;
    }
    .ficha-imagen {
        /*margin-top: 10px;*/
    }
}
/* Móviles medianos y grandes (481px a 767px) */
@media (min-width: 481px) and (max-width: 767px) {
    :root {
        --ancho-web: 100%;
        --tamano: 14px;
        --espacio: 70px; /* Solo altura del logo, el submenu está fuera del header */
        --scroll-alto:120px;
    }
    .ord-1 {
        order: 1;
    }
    .ord-2 {
        order: 2;
    }
    .ord-3 {
        order: 3;
    }
    .ord-4 {
        order: 4;
    }
    .ancho-web {
        width: 100% !important;
        margin: auto;
        padding: 0px 10px;
    }
    .cabecera {
        width: 100%;
        gap: 10px;
        height: auto;
        padding: 10px 15px;
        justify-content: space-between;
        flex-wrap: nowrap;
        align-items: center;
        /* sin position:relative — el dropdown fluye en el documento y empuja el submenú hacia abajo */
    }
    .logo {
        flex: 0 0 auto;
        margin: 0;
        justify-content: flex-start;
    }
    .logo img {
        max-height: 55px;
        width: auto;
    }
    .contenedor {
        gap: 10px;
        margin-top: 10px;
    }
    #proximamente {
        margin-top: 20px !important;
    }
    #proximamente .bloque {
        flex: 0 0 50%;
        max-width: 50%;
    }
    #proximamente .bloque img {
        width: 180px !important;
        height: auto !important;
    }
    #proximamente .contenedor {
        margin-top: 0px !important;
    }
    .margen-arriba {
        margin-top: 20px;
    }
    .contenedor-bloque {
        gap: 8px;
    }
    .cabecera.contenedor-bloque {
        justify-content: space-between;
    }
    .bloque {
        flex: 1 1 auto; /* Bloques al 100% ancho en móviles */
        padding: var(--padding2, 10px);
        box-sizing: border-box;
        text-align: center;
    }
    .bloque50, .bloque50 .bloque, .bloque33, .bloque33 .bloque, .bloque25, .bloque25 .bloque, .bloque75, .bloque75 .bloque, .bloque10, .bloque10 .bloque {
        flex: 1 1 100%;
        margin-top: 10px;
        max-width: 100%;
        /*padding: 0 10px;*/
    }
    .bloque50 img, .bloque50 iframe, .bloque33 img, .bloque22 iframe, .bloque25 img, .bloque25 iframe, .bloque75 img, .bloque75 iframe, .bloque10 img, .bloque10 iframe {
        max-width: 100%;
    }
.columna {
        flex: 1 1 auto; /* Bloques al 100% ancho en móviles */
        padding: var(--padding2, 10px);
        box-sizing: border-box;
        text-align: center;
    }
    .columna2-3, .columna1-3, .columna1-3, .columna3-4, .columna1-4, .columna2, .columna3 {
        --columna-ancho: 100%;
    }
    .izquierda, .left, .derecha, .right {
        float: none;
        margin-bottom: 10px;
    }
    .banner-home {
        width: 100%;
        height: auto;
        margin: var(--padding2) 0;
    }
    .banner-home .banner-titulo {
        height: auto;
        padding: 10px;
        font-size: 1rem;
    }
    .logo {
        text-align: center;
    }
    .logo img {
        max-height: 50px;
        padding-left: 0px;
    }
    .titulo-slider {
        font-size: 1.5rem;
        text-align: center;
    }
    .titulo-slider1 {
        font-size: 30px;
        padding: 5px 10px;
        top: 40%;
        right: 5%;
    }
    .titulo-slider2 {
        font-size: 20px;
        padding: 5px 10px;
        top: 60%;
        right: 5%;
    }
    .titulo1, h1, .titulo2, h2, .titulo3, .titulo5 {
        font-size: 1.8rem;
        padding: 2px 0;
    }
    .titulo3{
        display:none;
    }
    .titulo5 {
        font-size: 1.5rem;
        margin-bottom: 15px;
    }
    .titulo4 {
        font-size: 1.2rem;
    }
    .titulo1::after, .titulo1::before, .titulo2::after, .titulo2::before, .titulo3::after, .titulo3::before, .titulo5::after, .titulo5::before {
        display: none;
        /*width: 20px;
    height: auto;
    mask-image: url('../img/icos/detalle.svg'); 
    -webkit-mask-image: url('../img/icos/detalle.svg'); 
    margin-top:20px;*/
    }
.titulo2.home{
display:none;
}
    h2, h2 span {
        font-size: 20px;
        padding: var(--padding1) 0;
    }
    .boton1, .boton2, .boton3, button {
        padding: 8px 20px;
        font-size: 0.9rem;
    }
    .boton-trabaja {
        padding: 8px 15px;
        gap: 0.3em;
    }
    .boton-trabaja::before {
        width: 1.8em;
        height: 1.8em;
    }
    .menu-movil {
        display: block !important;
    }
    .menu-escritorio {
        display: none !important;
    }
    /* Hamburguesa: derecha, misma fila que el logo */
    #menu {
        width: auto !important;
        max-width: none !important;
        flex: 0 0 auto;
        margin: 0 !important;
    }
    /* Cuando hamburguesa abierto: #menu ocupa fila completa, dropdown empuja submenú hacia abajo */
    .cabecera:has(#show-menu:checked) {
        flex-wrap: wrap;
        align-items: flex-start;
    }
    .cabecera:has(#show-menu:checked) > #menu {
        flex: 0 0 100%;
        width: 100% !important;
        max-width: 100% !important;
    }
    /* Submenu: fondo blanco, botones cuadrados verdes */
    /* Submenu horizontal: sticky bajo el logo, aparece debajo del slider */
    #submenu-movil {
        position: sticky;
        top: 70px;
        z-index: 5;
        background-color: var(--color1);
        width: 100%;
        box-sizing: border-box;
        padding: 8px 15px;
    }
    #submenu-movil ul {
        list-style: none;
        margin: 0;
        padding: 0;
    }
    #submenu-movil #bloque-menu {
        display: flex;
        gap: 8px;
        justify-content: center;
        flex-wrap: wrap;
    }
    #submenu-movil li a {
        display: block;
        padding: 8px 16px;
        background-color: var(--color3);
        color: var(--color1);
        text-decoration: none;
        opacity: 1;
    }
    #submenu-movil li a:hover {
        opacity: 0.6;
    }
    /* Apartado activo: marcado con opacity */
    #submenu-movil li.menu-selec a {
        opacity: 0.5;
    }

    /*MENU — abre hacia abajo desde la fila del logo (.cabecera) */
    #menu ul {
        display: none;
    }
    /* #menu #bloque-menu con !important para ganar a #bloque-menu { position: relative !important } de principal.css */
    #menu #bloque-menu {
        position: static !important;
        width: 100%;
        margin: 0;
        padding: 0;
        background-color: var(--color3);
    }
    /*Crear espacio vertical*/
    #menu li, #menupie li {
        margin-bottom: 1px;
    }
    /*Todos los enlaces del menú de ancho completo y apilados verticalmente*/
    #menu ul li, #menu li a {
        display: block !important;
        width: 100%;
        font-size: 1.5rem !important;
        line-height: 50px;
        text-align: center;
    }
    #menupie ul li, #menupie li a {
        font-size: 0.8rem !important;
        text-align: center;
    }
    .show-menu {
        display: flex;
        align-items: center;
        justify-content: flex-end;
        cursor: pointer;
        font-size: 2rem;
        padding: 0 5px;
        z-index: 100;
    }
    /* Iconos */
    .show-menu .cruz {
        display: none;
    }
    #show-menu:checked + label .barra {
        display: none;
    }
    #show-menu:checked + label .cruz {
        display: inline-block;
    }
    .bloque-menu1, .bloque-menu2 {
        border-left: none;
        padding-left: 0px;
    }
    #menupie .left {
        display: none;
    }
    .submenu {
        margin-top: 50px !important;
        text-align: center !important;
        width: 300px;
    }
    /* Submenu CINES: fluye normal (no absoluto), oculto por defecto (principal.css pone display:none) */
    .submenu-cines {
        position: static !important;
        left: auto !important;
        width: 100% !important;
        /* sin display: block — se muestra con :focus-within al hacer click en CINES */
        padding: 4px 0 !important;
    }
    /* Cada li del submenú CINES: flex row → ::before (icono color) queda a la izq del texto.
       Selector #menu .submenu-cines li supera en especificidad a #menu ul li (que tiene display:block !important) */
    #menu .submenu-cines li {
        display: flex !important;
        align-items: center;
        gap: 8px;
        padding-left: 15px !important;
    }
    #menu .submenu-cines li::before {
        position: static !important;  /* saca el ::before de position:absolute → entra en flujo flex */
        flex: 0 0 13px;
        margin: 0 !important;         /* elimina margin-left:15px y margin-top:9px del desktop */
    }
    /* #menu .submenu-cines li a supera a #menu li a (que tiene font-size:1.5rem y line-height:50px) */
    #menu .submenu-cines li a {
        flex: 1 1 auto;
        padding-left: 0 !important;   /* el icono ya está en flujo flex, no hace falta indentación */
        text-align: left !important;
        font-size: 1rem !important;
        line-height: 2.2 !important;
    }
    /* Mostrar submenú CINES al hacer click: el <a> recibe foco → li tiene :focus-within */
    #menu .menu-movil li:focus-within > .submenu-cines {
        display: block !important;
    }
    /* Ocultar ::before decorativo en submenús normales, PERO conservarlo en .submenu-cines (icono de color de cada cine) */
    #menu li ul:not(.submenu-cines) li::before {
        display: none;
    }
    .parallax {
        height: 180px;
    }
    .noticia-titulo {
        font-size: 1.2rem;
    }
    .noticia-sinopsis {
        font-size: 0.9rem;
    }
    .ver-mas-boton {
        padding: 5px 20px;
        font-size: 0.75rem;
    }
    .formulario input[type="text"], .formulario input[type="email"], .formulario input[type="tel"], .formulario textarea {
        font-size: 0.9rem;
    }
    .formulario label {
        font-size: 0.9rem;
    }
    .ui-tabs .ui-tabs-nav {
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
    }
    .ui-tabs .ui-tabs-nav .ui-tabs-anchor {
        padding: 0.5em;
        font-size: 0.8rem;
        min-width: unset;
    }
    .lista-sesiones {
        width: 100%;
    }
    .lista-sesiones .sinopsis {
        text-align: left;
    }
    td:has(.titulo-ficha) {
        height: auto;
    }
    div#cartelera {
        margin-top: 20px !important;
    }
    /* Grid cartelera: imagen fija en col1, todo lo demás en col2 */
    .cartelera {
        display: grid;
        grid-template-columns: auto 1fr;
        grid-template-areas: none;
        column-gap: 10px;
        align-items: start;
        margin-bottom: 0px;
    }
    .cartelera .cartelera-imagen {
        grid-column: 1 !important;
        grid-row: 1 / span 20;
        align-self: start;
    }
    .cartelera > *:not(.cartelera-imagen) {
        grid-column: 2 !important;
        grid-row: auto;
        text-align: left;
    }
    .ficha {
        display: grid;
        grid-template-columns: auto 1fr;
        grid-template-rows: auto auto auto;
        grid-template-areas:
            "titulo  titulo"
            "imagen  sinopsis"
            "imagen  info"
            "sesiones  sesiones";
        column-gap: 10px;
        align-items: start;
        margin-bottom: 0px;
        margin-top: -40px;
    }
     .ficha .panel-sesiones {
        display: flex;
        gap: 20px;
        flex-wrap: wrap;
        align-items: center;
    }
    .ficha .panel-sesiones > * {
        width: auto;
        flex: 0 0 auto;
    }
.ficha-no-ses > span {
    font-size: 0.7rem !important;
}
    .cartelera-home .sobre-pelicula {
        max-width: 100%;
        padding: 10px 0;
    }
    .bloque .pelicula-titulo {
        font-size: 1em;
    }
    .bloque .pelicula-titulo .btn-comprar {
        font-size: 0.7em;
    }
    .ficha-titulo {
        font-size: 1.4rem;
    }
    /* Título ficha real (clase con doble guión bajo): reducir de 3rem desktop a móvil */
    .ficha__titulo {
        font-size: 1.4rem !important;
        line-height: 1.2 !important;
    }
    .cartelera {
        padding: 10px;
    }
    .alert {
        padding: 15px;
    }
    .ficha-imagen {
        width: 100%;
        max-width: 180px;
        /*margin-top: -100px;*/
        min-height: auto;
    }
    /* Póster ficha película: máximo 180px en móvil */
    .ficha__imagen {
        width: 100% !important;
        max-width: 180px !important;
        min-height: auto !important;
        height: auto !important;
    }
    .ficha__imagen img {
        width: 100% !important;
        height: auto !important;
    }
    /* Imagen cartelera: máximo 220px */
    .cartelera-imagen, .cartelera-imagen img {
        width: min(220px, 42vw);
        max-width: 220px;
        min-height: auto !important;
    }
    .cartelera-home div img {
        width: 100%;
        /*max-width: 100%;*/
		max-width:250px !important;
        min-width: unset !important;
        height: auto;
    }
    /* Imágenes en columnas de contenido: responsivas en móvil */
    .contenedor .fila .columna2 img,
    .contenedor .fila .columna1-3 img,
    .contenedor .fila .columna2-3 img {
        width: 100%;
        max-width: 100%;
        height: auto;
    }
    .ficha-imagenv {
        width: 100%;
        height: auto;
    }
    .ficha-home-imagen img {
        width: 100%;
        height: auto;
    }
    .ficha-sinopsis, .cartelera-sinopsis {
        width: 100%;
        font-size: 0.95rem;
    }
    /* Sinopsis ficha real (clase con doble guión bajo): tamaño legible en móvil */
    .ficha__sinopsis {
        font-size: 1rem !important;
        line-height: 1.5 !important;
    }
    /* Sesiones del mismo día: en fila (no columna) para ahorrar espacio vertical */
    .scroll .sesiones-dia {
        flex-direction: row;
        flex-wrap: wrap;
        gap: 4px;
    }
    /* Sesiones: hora centrada */
    .linea-sesion {
        justify-content: center !important;
        font-size: large;
    }
    .linea-sesion > *:nth-child(1) {
        text-align: center;
    }
    .linea-sesion > *:nth-child(2) {
        flex: 0 0 auto !important;
        text-align: center;
    }
    .cont-ses, .mas-ses {
        flex: 0 0 auto;
        margin: 3px;
    }
    .ficha-home {
        width: 100%;
        display: block;
    }
    .carrusel-carteles {
        padding-top: 30px;
        display: flex;
        justify-content: center;
        gap: 0px;
        flex-direction: column;
        padding-top: 20px;
        margin-bottom: 30px;
    }
    .carrusel-carteles div {
        width: 100%;
        text-align: center;
    }
    .titulo-carrusel {
        padding: 10px 0px 20px 0px;
    }
    .patio {
        padding: 0 10px;
    }
    .cont-resumen {
        column-gap: 10px;
        flex-direction: column;
    }
    .resumen, .productos {
        width: 100%;
        flex-wrap: wrap;
        flex-direction: row;
    }
    .resumen-peli {
        width: 100%;
    }
    .resumen-peli .img-v {
        position: relative;
        width: 100%;
        text-align: center;
    }
    .resumen-peli .img-v > img {
        margin-right: 0px;
    }
    .resumen-compra:not(.con-info-adicional) {
        display: grid !important;
        grid-template-areas: "inf"
            "loc"
            "btn"
            "btn"
            "des"
            "det" !important;
        grid-template-columns: 100% !important;
    }
    .resumen-compra.con-info-adicional {
        display: grid !important;
        grid-template-areas: "inf"
            "inf"
            "btn"
            "btn"
            "des"
            "det" !important;
        grid-template-columns: 100% !important;
    }
    .resumen-compra .resumen-peli .img-v {
        position: relative;
        width: auto;
        text-align: left;
    }
    .resumen-compra .bloque-resumen {
        display: block;
    }
    .resumen-compra .botones-resumen .btn {
        font-size: 1.5em !important;
        margin: 2px 5px;
    }
    .resumen-compra .passbook {
        right: 0px;
        margin-top: 70px;
    }
    .ficha-cabecera {
        display: none;
    }
    .ficha-imagen {
        /*margin-top: 10px;*/
    }

}
/* Tablets (768px a 1024px) */
@media (min-width: 768px) and (max-width: 1024px) {
    :root {
        --tamano: 16px;
        --ancho-web: 100%;
        --espacio: 80px; /* Solo altura del logo en tablet */
        box-sizing: border-box;
    }
    .ancho-web {
        width: 100% !important;
        margin: auto;
    }
    .cabecera {
        height: auto;
        gap: 10px;
        padding: 10px 20px;
        justify-content: space-between;
        flex-wrap: nowrap;
        align-items: center;
        /* sin position:relative — el dropdown fluye en el documento y empuja el submenú hacia abajo */
    }
    .logo {
        margin: 0;
        justify-content: flex-start;
        flex: 0 0 auto;
    }
    .contenedor {
        padding: 20px;
    }
    .bloque {
        flex: 1 1 auto;
        box-sizing: border-box;
        text-align: center;
    }
    .bloque50, .bloque50 .bloque {
        flex: 1 1 calc(49% - 10px);
        max-width: calc(49% - 10px);
    }
    .bloque33, .bloque33 .bloque {
        flex: 1 1 calc(32.333% - 16px);
    }
    .bloque25, .bloque25 .bloque {
        flex: 1 1 calc(24% - 16px);
    }
    .bloque75, .bloque75 .bloque {
        flex: 1 1 calc(74% - 16px);
    }
    .bloque10, .bloque10 .bloque {
        flex: 1 1 calc(9% - 16px);
    }
    .izquierda, .left, .derecha, .right {
        float: none;
    }
    .banners-home {
        justify-content: flex-start !important;
        box-sizing: border-box;
        text-align: center;
    }
    .banner-home {
        width: 300px;
        height: auto;
        margin: var(--padding2);
    }
    .banner-home .banner-titulo {
        height: 150px;
        padding: 20px;
        font-size: 1.15rem;
    }
    .titulo-slider {
        font-size: 2.3rem;
    }
    .titulo-slider1 {
        font-size: 65px;
        padding: 10px 20px;
        top: 50%;
        right: 2%;
    }
    .titulo-slider2 {
        font-size: 50px;
        padding: 10px 20px;
        top: 70%;
        right: 2%;
    }
    .titulo1, h1, .titulo2, h2, .titulo3, .titulo5 {
        font-size: 2.6rem;
    }
    .titulo5 {
        font-size: 2rem;
        margin-bottom: 25px;
    }
    .titulo4 {
        font-size: 1.4rem;
    }
.titulo2.home{
display:none;
}
    h2, h2 span {
        font-size: 28px;
    }
    .boton1, .boton2, .boton3, button {
        padding: 10px 35px;
        font-size: 1.05rem;
    }
    .boton-trabaja {
        padding: 10px 25px;
    }
    .boton-trabaja::before {
        width: 2.3em;
        height: 2.3em;
    }
    .menu-movil {
        display: block !important;
    }
    .menu-escritorio {
        display: none !important;
    }
    /* Hamburguesa: alineada a la derecha en la misma fila que el logo */
    #menu {
        width: auto !important;
        max-width: none !important;
        flex: 0 0 auto;
        margin: 0 !important;
    }
    /* Cuando hamburguesa abierto: #menu ocupa fila completa, dropdown empuja submenú hacia abajo */
    .cabecera:has(#show-menu:checked) {
        flex-wrap: wrap;
        align-items: flex-start;
    }
    .cabecera:has(#show-menu:checked) > #menu {
        flex: 0 0 100%;
        width: 100% !important;
        max-width: 100% !important;
    }
    /* Submenu horizontal: sticky bajo el logo, aparece debajo del slider */
    #submenu-movil {
        position: sticky;
        top: 80px;
        z-index: 5;
        background-color: var(--color1);
        width: 100%;
        box-sizing: border-box;
        padding: 10px 20px;
    }
    #submenu-movil ul {
        list-style: none;
        margin: 0;
        padding: 0;
    }
    #submenu-movil #bloque-menu {
        display: flex;
        gap: 10px;
        justify-content: center;
        flex-wrap: wrap;
    }
    #submenu-movil li a {
        display: block;
        padding: 10px 24px;
        background-color: var(--color3);
        color: var(--color1);
        text-decoration: none;
        opacity: 1;
    }
    #submenu-movil li a:hover {
        opacity: 0.6;
    }
    /* Apartado activo: marcado con opacity */
    #submenu-movil li.menu-selec a {
        opacity: 0.5;
    }
    /*MENU — abre hacia abajo de la fila del logo (.cabecera) */
    #menu ul {
        display: none;
    }
    /* #menu #bloque-menu con !important para ganar a #bloque-menu { position: relative !important } de principal.css */
    #menu #bloque-menu {
        position: static !important;
        width: 100%;
        margin: 0;
        padding: 0;
        background-color: var(--color3);
    }
    /*Crear espacio vertical*/
    #menu li, #menupie li {
        margin-bottom: 1px;
    }
    /*Todos los enlaces del menú de ancho completo y apilados verticalmente*/
    #menu ul li, #menu li a {
        display: block !important;
        width: 100%;
        font-size: 1.5rem !important;
        line-height: 50px;
        text-align: center;
    }
    #menupie ul li, #menupie li a {
        /*width: 100%;*/
        font-size: 0.8rem !important;
        /*line-height: 50px;*/
        text-align: center;
    }
    .show-menu {
        display: flex;
        align-items: center;
        justify-content: flex-end;
        cursor: pointer;
        font-size: 2rem;
        padding: 0 5px;
        text-align: right;
    }
    /* Ocultar la X por defecto; mostrarla solo cuando el checkbox está marcado */
    .show-menu .cruz {
        display: none;
    }
    #show-menu:checked + label .barra {
        display: none;
    }
    #show-menu:checked + label .cruz {
        display: inline-block;
    }
    .bloque-menu1, .bloque-menu2 {
        border-left: none;
        padding-left: 0px;
        background-color: var(--color3);
    }
    .bloque-menu1 {
        margin-top: 0;
    }
    .bloque-menu2 {
        margin-top: 0;
    }
    #menupie .left {
        display: none;
    }
    .submenu {
        margin-top: 50px !important;
        text-align: center !important;
    }
    /* Submenu CINES: fluye normal (no absoluto), oculto por defecto (principal.css pone display:none) */
    .submenu-cines {
        position: static !important;
        left: auto !important;
        width: 100% !important;
        /* sin display: block — se muestra con :focus-within al hacer click en CINES */
        padding: 4px 0 !important;
    }
    /* Cada li del submenú CINES: flex row → ::before (icono color) queda a la izq del texto.
       Selector #menu .submenu-cines li supera en especificidad a #menu ul li (que tiene display:block !important) */
    #menu .submenu-cines li {
        display: flex !important;
        align-items: center;
        gap: 8px;
        padding-left: 15px !important;
    }
    #menu .submenu-cines li::before {
        position: static !important;  /* saca el ::before de position:absolute → entra en flujo flex */
        flex: 0 0 13px;
        margin: 0 !important;         /* elimina margin-left:15px y margin-top:9px del desktop */
    }
    /* #menu .submenu-cines li a supera a #menu li a (que tiene font-size:1.5rem y line-height:50px) */
    #menu .submenu-cines li a {
        flex: 1 1 auto;
        padding-left: 0 !important;   /* el icono ya está en flujo flex, no hace falta indentación */
        text-align: left !important;
        font-size: 1rem !important;
        line-height: 2.2 !important;
    }
    /* Mostrar submenú CINES al hacer click: el <a> recibe foco → li tiene :focus-within */
    #menu .menu-movil li:focus-within > .submenu-cines {
        display: block !important;
    }
    /* Ocultar ::before decorativo en submenús normales, PERO conservarlo en .submenu-cines (icono de color de cada cine) */
    #menu li ul:not(.submenu-cines) li::before {
        display: none;
    }
    .parallax {
        height: 250px;
        background-attachment: scroll; /* Evita problemas en móviles */
    }
    .noticia {
        grid-template-columns: 1fr;
    }
    .noticia-imagen img {
        width: 100%;
        height: auto;
    }
    .ver-mas-boton {
        padding: 5px 30px;
    }
    .lista-sesiones {
        width: 80%;
    }
    /* Cartelera: 1 ficha por fila (evita que se corten 2 juntas) */
    .cartelera {
        flex: 0 0 100%;
        width: 100% !important;
        max-width: 100%;
        box-sizing: border-box;
        display: grid;
        grid-template-columns: auto 1fr;
        grid-template-areas: none;
        column-gap: 15px;
        align-items: start;
    }
    .cartelera .cartelera-imagen {
        grid-column: 1 !important;
        grid-row: 1 / span 20;
        align-self: start;
    }
    .cartelera > *:not(.cartelera-imagen) {
        grid-column: 2 !important;
        grid-row: auto;
        text-align: left;
    }
    .ficha, .cont-ficha {
        grid-template-columns: auto 1fr;
        grid-template-areas:
            "imagen titulo"
            "imagen sinopsis"
            "imagen info"
            "imagen sesiones"
            "galeria sesiones";
    }
    .ficha-titulo {
        font-size: 2.5rem;
    }
    .bloque .pelicula-titulo {
        font-size: 1.1em;
    }
    .bloque .pelicula-titulo .btn-comprar {
        font-size: 0.8em;
    }
    .cartelera-home .sobre-pelicula {
        max-width: 100%;
    }
    .cartelera {
        padding: 15px 20px;
    }
    .ficha-imagen {
        width: 80%;
        margin-top: -200px;
        min-height: auto;
    }
    /* Imagen cartelera: máximo 220px */
    .cartelera-imagen, .cartelera-imagen img {
        width: 220px;
        max-width: 220px;
        min-height: auto;
    }
    /* Sesiones: hora centrada */
    .linea-sesion {
        justify-content: center !important;
        font-size: large;
    }
    .linea-sesion > *:nth-child(1) {
        text-align: center;
    }
    .linea-sesion > *:nth-child(2) {
        flex: 0 0 auto !important;
        text-align: center;
    }
    .cartelera-home div img {
        width: 100%;
        max-width: 250px !important;
        min-width: unset !important;
        height: auto;
    }
    /* Imágenes en columnas de contenido: responsivas en móvil */
    .contenedor .fila .columna2 img,
    .contenedor .fila .columna1-3 img,
    .contenedor .fila .columna2-3 img {
        width: 100%;
        max-width: 100%;
        height: auto;
    }
    .ficha-imagenv {
        width: 60%;
        height: auto;
    }
    .ficha-home-imagen img {
        width: 80%;
        height: auto;
    }
    .ficha-sinopsis, .cartelera-sinopsis {
        width: 100%;
        font-size: 1rem;
    }
    /* Sesiones del mismo día: en fila */
    .scroll .sesiones-dia {
        flex-direction: row;
        flex-wrap: wrap;
        gap: 4px;
    }
    .cont-ses, .mas-ses {
        flex: 1 1 45%;
        margin: 6px;
    }
    .ficha-home {
        width: 100%;
    }
    .carrusel-carteles {
        padding-top: 30px;
        display: flex;
        justify-content: center;
        gap: 0px;
        flex-direction: column;
        padding-top: 20px;
        margin-bottom: 30px;
    }
    .carrusel-carteles div {
        width: 100%;
        text-align: center;
    }
    .titulo-carrusel {
        padding: 10px 0px 20px 0px;
    }
    .patio {
        padding: 0 10px;
    }
    .cont-resumen {
        column-gap: 10px;
        flex-direction: column;
    }
    .resumen, .productos {
        width: 100%;
        flex-wrap: wrap;
        flex-direction: row;
    }
    .resumen > div {
        width: 100%;
    }
    .res-contador {
        text-align: center;
    }
    .resumen-peli {
        width: 100%;
    }
    .resumen-peli .img-v {
        position: relative;
        width: 100%;
        text-align: center;
    }
    .resumen-peli .img-v > img {
        margin-right: 0px;
    }
    .resumen-compra:not(.con-info-adicional) {
        display: grid !important;
        grid-template-areas: "inf"
            "loc"
            "btn"
            "btn"
            "des"
            "det" !important;
        grid-template-columns: 100% !important;
    }
    .resumen-compra.con-info-adicional {
        display: grid !important;
        grid-template-areas: "inf"
            "inf"
            "btn"
            "btn"
            "des"
            "det" !important;
        grid-template-columns: 100% !important;
    }
    .resumen-compra .resumen-peli .img-v {
        position: relative;
        width: auto;
        text-align: left;
    }
    .resumen-compra .bloque-resumen {
        display: block;
    }
    .resumen-compra .botones-resumen .btn {
        font-size: 1.5em !important;
        margin: 2px 5px;
    }
    .resumen-compra .passbook {
        right: 0px;
        margin-top: 70px;
    }
    .ficha-cabecera {
        display: none;
    }
    .ficha-imagen {
        margin-top: 10px;
    }
.ficha-no-ses > span {
    font-size: 0.6rem;
}
}
/* Laptops/Desktops pequeños (1025px a 1280px) */
@media (min-width: 1025px) and (max-width: 1280px) {
    :root {
        --ancho-web: 100%;
        --tamano: 17px;
        --espacio: 80px; /* Solo altura del logo */
    }
    .ancho-web {
        width: 100% !important;
        margin: auto;
    }
    /* Cabecera: hamburguesa (igual que tablet) */
    .cabecera {
        height: auto;
        gap: 10px;
        padding: 10px 20px;
        justify-content: space-between;
        flex-wrap: nowrap;
        align-items: center;
        /* sin position:relative — el dropdown fluye en el documento y empuja el submenú hacia abajo */
    }
    .logo {
        margin: 0;
        justify-content: flex-start;
        flex: 0 0 auto;
    }
    .menu-movil {
        display: block !important;
    }
    .menu-escritorio {
        display: none !important;
    }
    #menu {
        width: auto !important;
        max-width: none !important;
        flex: 0 0 auto;
        margin: 0 !important;
    }
    /* Cuando hamburguesa abierto: #menu ocupa fila completa, dropdown empuja submenú hacia abajo */
    .cabecera:has(#show-menu:checked) {
        flex-wrap: wrap;
        align-items: flex-start;
    }
    .cabecera:has(#show-menu:checked) > #menu {
        flex: 0 0 100%;
        width: 100% !important;
        max-width: 100% !important;
    }
    /* Submenu horizontal: sticky bajo el logo, aparece debajo del slider */
    #submenu-movil {
        position: sticky;
        top: 80px;
        z-index: 5;
        background-color: var(--color1);
        width: 100%;
        box-sizing: border-box;
        padding: 10px 20px;
    }
    #submenu-movil ul { list-style: none; margin: 0; padding: 0; }
    #submenu-movil #bloque-menu {
        display: flex;
        gap: 10px;
        justify-content: center;
        flex-wrap: wrap;
    }
    #submenu-movil li a {
        display: block;
        padding: 10px 24px;
        background-color: var(--color3);
        color: var(--color1);
        text-decoration: none;
        opacity: 1;
    }
    #submenu-movil li a:hover { opacity: 0.6; }
    #submenu-movil li.menu-selec a { opacity: 0.5; }
    #menu ul { display: none; }
    /* #menu #bloque-menu con !important para ganar a #bloque-menu { position: relative !important } de principal.css */
    #menu #bloque-menu {
        position: static !important;
        width: 100%;
        margin: 0;
        padding: 0;
        background-color: var(--color3);
    }
    #menu li, #menupie li { margin-bottom: 1px; }
    #menu ul li, #menu li a {
        width: 100%;
        font-size: 1.5rem !important;
        line-height: 50px;
        text-align: center;
    }
    .show-menu {
        display: flex;
        align-items: center;
        justify-content: flex-end;
        cursor: pointer;
        font-size: 2rem;
        padding: 0 5px;
    }
    .show-menu .cruz { display: none; }
    #show-menu:checked + label .barra { display: none; }
    #show-menu:checked + label .cruz { display: inline-block; }
    /* Submenu CINES: fluye normal (no absoluto), oculto por defecto (principal.css pone display:none) */
    .submenu-cines {
        position: static !important;
        left: auto !important;
        width: 100% !important;
        /* sin display: block — se muestra con :focus-within al hacer click en CINES */
        padding: 4px 0 !important;
    }
    /* Cada li del submenú CINES: flex row → ::before (icono color) queda a la izq del texto.
       Selector #menu .submenu-cines li supera en especificidad a #menu ul li (que tiene display:block !important) */
    #menu .submenu-cines li {
        display: flex !important;
        align-items: center;
        gap: 8px;
        padding-left: 15px !important;
    }
    #menu .submenu-cines li::before {
        position: static !important;  /* saca el ::before de position:absolute → entra en flujo flex */
        flex: 0 0 13px;
        margin: 0 !important;         /* elimina margin-left:15px y margin-top:9px del desktop */
    }
    /* #menu .submenu-cines li a supera a #menu li a (que tiene font-size:1.5rem y line-height:50px) */
    #menu .submenu-cines li a {
        flex: 1 1 auto;
        padding-left: 0 !important;   /* el icono ya está en flujo flex, no hace falta indentación */
        text-align: left !important;
        font-size: 1rem !important;
        line-height: 2.2 !important;
    }
    /* Mostrar submenú CINES al hacer click: el <a> recibe foco → li tiene :focus-within */
    #menu .menu-movil li:focus-within > .submenu-cines {
        display: block !important;
    }
    /* Ocultar ::before decorativo en submenús normales, PERO conservarlo en .submenu-cines (icono de color de cada cine) */
    #menu li ul:not(.submenu-cines) li::before {
        display: none;
    }
.titulo2.home{
display:none;
}
    /* Sesiones: hora centrada */
    .linea-sesion {
        justify-content: center !important;
        font-size: large;
    }
    .linea-sesion > *:nth-child(1) {
        text-align: center;
    }
    .linea-sesion > *:nth-child(2) {
        flex: 0 0 auto !important;
        text-align: center;
    }
    .contenedor {
        padding: 20px;
    }
    .contenedor-bloque {
        gap: 8px;
    }
    .bloque {
        flex: 1 1 auto; /* Bloques al 100% ancho en móviles */
        padding: var(--padding2, 10px);
        box-sizing: border-box;
        text-align: center;
    }
    .bloque50, .bloque50 .bloque {
        flex: 1 1 calc(49% - 10px);
        max-width: calc(49% - 10px);
    }
    .bloque33, .bloque33 .bloque {
        flex: 1 1 calc(32.333% - 16px);
    }
    .bloque25, .bloque25 .bloque {
        flex: 1 1 calc(24% - 16px);
    }
    .bloque75, .bloque75 .bloque {
        flex: 1 1 calc(74% - 16px);
    }
    .bloque10, .bloque10 .bloque {
        flex: 1 1 calc(9% - 16px);
    }
    .bloque50 img, .bloque50 iframe, .bloque33 img, .bloque22 iframe, .bloque25 img, .bloque25 iframe, .bloque75 img, .bloque75 iframe, .bloque10 img, .bloque10 iframe {
        max-width: 100%;
    }
    .izquierda, .left {
        float: left;
    }
    .derecha, .right {
        float: right;
    }
    .banner-home {
        width: 280px;
        /*height: 190px;*/
        margin: var(--padding2);
    }
    .banner-home .banner-titulo {
        font-size: 1.2rem;
    }
    .titulo-slider {
        font-size: 2.5rem;
    }
    .titulo-slider1 {
        font-size: 75px;
        padding: 10px 20px;
    }
    .titulo-slider2 {
        font-size: 60px;
        padding: 10px 20px;
    }
    .titulo1, h1, .titulo2, h2, .titulo3, .titulo5 {
        font-size: 3rem;
    }
    .titulo5 {
        font-size: 2rem;
        margin-bottom: 30px;
    }
    .titulo4 {
        font-size: 1.5rem;
    }
    h2, h2 span {
        font-size: 30px;
    }
    .boton1, .boton2, .boton3, button {
        padding: 10px 40px;
        font-size: 1rem;
    }
    .boton-trabaja {
        padding: 10px 25px;
    }
    .boton-trabaja::before {
        width: 2.5em;
        height: 2.5em;
    }
    /* Grid cartelera: imagen en col1, todo lo demás en col2 */
    .cartelera {
        display: grid;
        grid-template-columns: auto 1fr;
        grid-template-areas: none;
        column-gap: 15px;
        align-items: start;
    }
    .cartelera .cartelera-imagen {
        grid-column: 1 !important;
        grid-row: 1 / span 20;
        align-self: start;
    }
    .cartelera > *:not(.cartelera-imagen) {
        grid-column: 2 !important;
        grid-row: auto;
        text-align: left;
    }
    .ficha, .cont-ficha {
        display: grid;
        grid-template-columns: auto 1fr;
        grid-template-areas:
            "imagen titulo"
            "imagen sinopsis"
            "imagen info"
            "sesiones sesiones"
            "sesiones sesiones";
    }
    .cartelera-imagen, .cartelera-imagen img {
        width: 220px;
        min-height: auto;
    }
    .cartelera-home div img {
        width: 100%;
        max-width: 100%;
        min-width: unset !important;
        height: auto;
    }
    /* Imágenes en columnas de contenido: responsivas */
    .contenedor .fila .columna2 img,
    .contenedor .fila .columna1-3 img,
    .contenedor .fila .columna2-3 img {
        width: 100%;
        max-width: 100%;
        height: auto;
    }
    .patio {
        padding: 0 20px;
    }
    .resumen-peli .img-v > img {
        width: 255px !important;
        margin-right: 20px;
        height: auto;
    }
    .detalle {
        padding-right: 30px;
    }
    .resumen-peli .botones-resumen .btn {
        width: 48%;
        margin: 0px 0px !important;
    }
}

/* =============================================
   STICKY DEL WRAPPER DEL SUBMENU
   #submenu-movil no puede ser sticky porque su
   padre es solo tan alto como él mismo.
   Solución: hacemos sticky el padre
   (#carrusel-general + div) cuyo padre es <body>.
   ============================================= */
@media (max-width: 767px) {
    #carrusel-general + div {
        position: sticky;
        top: 70px;
        z-index: 4;
        width: 100%;
    }
    #submenu-movil {
        position: static !important;
    }
}
@media (min-width: 768px) and (max-width: 1280px) {
    #carrusel-general + div {
        position: sticky;
        top: 80px;
        z-index: 4;
        width: 100%;
    }
    #submenu-movil {
        position: static !important;
    }
}

/* Desktop (>1280px): el submenu ya está en el menú principal, ocultarlo del flujo */
@media (min-width: 1281px) {
   /* #submenu-movil,
    #carrusel-general + div {
        display: none !important;
    }*/
}

/* =============================================
   SLIDER CABECERA CARTELES — LAYOUT INTERNO MÓVIL / TABLET
   Solo tocamos el contenido DENTRO de cada .splide__slide del
   #slider-cabecera-carteles. El alto del slide lo gestiona el
   JS por breakpoint. No tocamos .splide__list/track ni raíz.
   ============================================= */
@media (max-width: 1280px) {
    /* Fondo negro para disimular las bandas del object-fit:contain */
    #slider-cabecera-carteles .splide__slide,
    #slider-cabecera-carteles .splide__slide > div,
    #slider-cabecera-carteles .splide__track,
    #slider-cabecera-carteles .splide__list {
        background-color: #000 !important;
    }
    /* Slide banner publicidad (no tiene .ancho-web) */
    #slider-cabecera-carteles .splide__slide > div > div:not(.ancho-web) {
        width: 100% !important;
        height: 100% !important;
        padding: 0 !important;
        margin: 0 !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        background-color: #000 !important;
    }
    #slider-cabecera-carteles .splide__slide > div > div:not(.ancho-web) img,
    #slider-cabecera-carteles .splide__slide > div > div:not(.ancho-web) image {
        width: 100% !important;
        height: 100% !important;
        max-width: 100% !important;
        max-height: 100% !important;
        object-fit: contain !important;
        display: block !important;
    }

    /* Slide película: cartel a la izq + título pequeño + botón grande */
    #slider-cabecera-carteles .splide__slide .ancho-web {
        display: flex !important;
        flex-direction: row !important;
        flex-wrap: nowrap !important;
        align-items: stretch !important;
        justify-content: flex-start !important;
        gap: 10px !important;
        padding: 10px !important;
        height: 100% !important;
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
    }
    /* Columna póster: ocupa toda la altura del slide */
    #slider-cabecera-carteles .splide__slide .ancho-web > div:first-child {
        width: auto !important;
        height: 100% !important;
        flex: 0 0 auto !important;
        display: flex !important;
        align-items: center !important;
        padding: 0 !important;
        margin: 0 !important;
    }
    #slider-cabecera-carteles .splide__slide .ancho-web > div:first-child img {
        width: auto !important;
        height: 100% !important;
        max-width: none !important;
        max-height: 100% !important;
        display: block !important;
        object-fit: contain !important;
    }
    /* Columna título + botón: centrada verticalmente respecto al cartel */
    #slider-cabecera-carteles .splide__slide .ancho-web > div:last-child {
        flex: 1 1 0 !important;
        min-width: 0 !important;
        max-width: 100% !important;
        display: flex !important;
        flex-direction: column !important;
        justify-content: center !important;
        align-items: stretch !important;
        padding: 0 !important;
        margin: 0 !important;
    }
    /* Contenedor título + botón: apilados juntos en el centro
       (anulamos el flex:1 + space-between inline del HTML) */
    #slider-cabecera-carteles .splide__slide .titulo-slider {
        flex: 0 1 auto !important;
        display: flex !important;
        flex-direction: column !important;
        justify-content: center !important;
        align-items: stretch !important;
        gap: 10px !important;
        padding: 0 !important;
        margin: 0 !important;
        width: 100% !important;
        min-width: 0 !important;
        box-sizing: border-box !important;
    }
    /* Título: tamaño en consonancia con el botón, centrado como él */
    #slider-cabecera-carteles .splide__slide .titulo-slider > div:first-child {
        font-size: 1.1rem !important;
        line-height: 1.2 !important;
        font-weight: 600 !important;
        text-align: center !important;
        padding: 0 !important;
        margin: 0 !important;
        word-break: break-word !important;
    }
    /* Ocultar <br> que añade espacio vertical innecesario */
    #slider-cabecera-carteles .splide__slide .titulo-slider br {
        display: none !important;
    }
    /* Botón COMPRA TUS ENTRADAS: proporcionado al título */
    #slider-cabecera-carteles .titulo-slider1-izq {
        width: 100% !important;
        max-width: 100% !important;
        font-size: 0.95rem !important;
        font-weight: 500 !important;
        padding: 10px 8px !important;
        margin: 0 !important;
        box-sizing: border-box !important;
    }
}
