/* Portada de temporada · módulo mnvportada. Sólo se carga en la portada. */

.mnv-portada {
    --mnv-negro: #050505;
    --mnv-tarjeta: #101010;
    --mnv-superficie: #1a1a1a;
    --mnv-linea: #2b2b2b;
    --mnv-linea-suave: #1f1f1f;
    --mnv-texto: #ffffff;
    --mnv-texto-2: #b8b8b8;
    --mnv-texto-3: #8c8c8c;
    --mnv-verde: #1dbf6a;
    --mnv-verde-claro: #36d47f;
    --mnv-verde-tinta: #082c18;
    --mnv-ambar: #f7b477;
    --mnv-menta: #a3ddb8;
    --mnv-cabecera: 80px;

    background: var(--mnv-negro);
    color: var(--mnv-texto);
    font: 400 15px/1.5 'Montserrat', 'Helvetica Neue', Arial, sans-serif;
    -webkit-font-smoothing: antialiased;
}

.mnv-portada *,
.mnv-portada *::before,
.mnv-portada *::after { box-sizing: border-box; }

.mnv-portada h1,
.mnv-portada h2,
.mnv-portada h3,
.mnv-portada p,
.mnv-portada ul { margin: 0; padding: 0; color: inherit; font-family: inherit; letter-spacing: normal; }
.mnv-portada img { max-width: 100%; height: auto; }
.mnv-portada button { font: inherit; color: inherit; cursor: pointer; }
.mnv-portada button:disabled { cursor: default; }
.mnv-portada [hidden] { display: none !important; }
.mnv-portada :focus-visible { outline: 2px solid #fff; outline-offset: 2px; }

.mnv-contenedor { width: 100%; max-width: 1320px; margin: 0 auto; padding: 0 24px; }

/* La portada ocupa todo el ancho: el contenedor habitual de la página queda vacío. */
#index #inner-wrapper { display: none; }
#index #wrapper { padding: 0; background: var(--mnv-negro, #050505); }

/* Vídeo de cabecera ---------------------------------------------------- */

.mnv-heroe {
    --mnv-heroe-alto: clamp(420px, 76vh, 760px);
    position: relative; isolation: isolate; overflow: hidden;
    display: grid; place-items: center;
    height: var(--mnv-heroe-alto); background: #000; text-align: center;
}
.mnv-heroe__fondo, .mnv-heroe__video, .mnv-heroe__velo { position: absolute; inset: 0; }
.mnv-heroe__fondo { z-index: -3; background: center / cover no-repeat; animation: mnv-acercar 26s ease-in-out infinite alternate; }
@keyframes mnv-acercar { to { transform: scale(1.08); } }
.mnv-heroe__video { z-index: -2; pointer-events: none; opacity: 0; transition: opacity .8s; }
.mnv-heroe__video--visible { opacity: 1; }
/* El vídeo cubre el hueco sin deformarse; la ampliación recorta las bandas negras de sus planos panorámicos. */
.mnv-heroe__video iframe {
    position: absolute; top: 50%; left: 50%; border: 0;
    width: 100%; height: 100%;
    min-width: calc(var(--mnv-heroe-alto) * 1.7778); min-height: 56.25vw;
    transform: translate(-50%, -50%) scale(1.35);
}
.mnv-heroe__velo { z-index: -1; background: linear-gradient(180deg, rgba(0, 0, 0, .5) 0%, rgba(0, 0, 0, .08) 45%, rgba(5, 5, 5, .94) 100%); }
.mnv-heroe__texto { padding-top: 48px; padding-bottom: 48px; text-shadow: 0 2px 28px rgba(0, 0, 0, .6); }
.mnv-portada .mnv-antetitulo { color: var(--mnv-ambar); font-size: 13px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.mnv-portada .mnv-heroe h1 {
    margin: 14px 0; font-size: clamp(36px, 7.4vw, 104px); font-weight: 800; line-height: .98;
    letter-spacing: -.01em; text-transform: uppercase; text-wrap: balance;
}
.mnv-portada .mnv-heroe__lema { margin-bottom: 28px; color: #e8e8e8; font-size: clamp(15px, 1.6vw, 20px); }
.mnv-portada .mnv-heroe__pausa {
    position: absolute; right: 16px; bottom: 16px; min-height: 36px; padding: 0 14px;
    border: 1px solid rgba(255, 255, 255, .35); border-radius: 999px; background: rgba(0, 0, 0, .5);
    color: #fff; font-size: 12px; font-weight: 600;
}

.mnv-portada .mnv-boton {
    display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 0 28px;
    border: 0; border-radius: 999px; font-size: 13px; font-weight: 700; letter-spacing: .08em; line-height: 1.2;
    text-decoration: none; text-transform: uppercase; text-shadow: none; white-space: nowrap; transition: background .15s, border-color .15s;
}
/* El editor del tema colorea los enlaces con un selector más específico que una clase: aquí se fijan con el id. */
#mnv-portada .mnv-boton--claro { background: #fff; color: #000; }
#mnv-portada .mnv-boton--claro:hover { background: #e4e4e4; color: #000; }
#mnv-portada .mnv-boton--linea { min-height: 40px; padding: 0 18px; border: 1px solid rgba(255, 255, 255, .32); color: #fff; font-size: 12px; }
#mnv-portada .mnv-boton--linea:hover { border-color: #fff; background: rgba(255, 255, 255, .08); color: #fff; }

/* Entradas ------------------------------------------------------------- */

.mnv-temporada { padding: 64px 0 88px; scroll-margin-top: var(--mnv-cabecera); }
.mnv-portada .mnv-temporada h2 { font-size: clamp(30px, 4.6vw, 56px); font-weight: 800; line-height: 1.05; text-align: center; text-transform: uppercase; }
.mnv-portada .mnv-temporada__texto { margin-top: 10px; color: var(--mnv-texto-2); font-size: clamp(15px, 1.5vw, 18px); text-align: center; }
.mnv-portada .mnv-aviso {
    max-width: 720px; margin: 22px auto 0; padding: 12px 18px; border: 1px solid #6b4a2b; border-radius: 12px;
    background: rgba(247, 180, 119, .1); color: var(--mnv-ambar); font-weight: 600; text-align: center;
}

.mnv-pildoras { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin: 28px 0 36px; }
.mnv-portada .mnv-pildora {
    min-height: 46px; padding: 0 22px; border: 1px solid rgba(255, 255, 255, .3); border-radius: 999px;
    background: rgba(255, 255, 255, .05); color: #fff; font-size: 14px; font-weight: 600; white-space: nowrap;
    transition: background .15s, border-color .15s, color .15s;
}
.mnv-portada .mnv-pildora:hover { background: rgba(255, 255, 255, .14); border-color: rgba(255, 255, 255, .55); }
.mnv-portada .mnv-pildora[aria-selected="true"] { background: #fff; border-color: #fff; color: #000; }
/* Sin JavaScript no hay pestañas: los bloques se ven seguidos. */
.mnv-panel + .mnv-panel { margin-top: 56px; }
.mnv-pildoras:not([hidden]) ~ .mnv-panel { margin-top: 0; }

.mnv-eventos { display: grid; grid-template-columns: repeat(auto-fill, minmax(288px, 1fr)); gap: 20px; }

.mnv-evento {
    display: flex; flex-direction: column; overflow: hidden;
    background: var(--mnv-tarjeta); border: 1px solid #222; border-radius: 16px;
}
.mnv-evento__cartel { position: relative; aspect-ratio: 1 / 1; background: #0b0b0b; }
/* Fuera del flujo: un cartel vertical no estira la tarjeta. */
.mnv-evento__cartel img { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover; }
.mnv-evento__dia {
    position: absolute; top: 12px; left: 12px; display: flex; flex-direction: column; align-items: center;
    min-width: 56px; padding: 8px 10px 7px; border-radius: 12px;
    background: rgba(5, 5, 5, .84); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
    font-size: 11px; font-weight: 700; letter-spacing: .12em; line-height: 1;
}
.mnv-evento__dia b { margin-bottom: 4px; font-size: 26px; font-weight: 800; letter-spacing: 0; }
.mnv-evento__cabecera { padding: 16px 16px 0; }
.mnv-portada .mnv-evento__cuando { color: var(--mnv-texto-2); font-size: 12.5px; }
.mnv-evento__cuando::first-letter { text-transform: uppercase; }
.mnv-portada .mnv-evento__titulo { margin-top: 6px; font-size: 18px; font-weight: 800; line-height: 1.2; text-transform: uppercase; text-wrap: balance; }
/* Dos líneas reservadas para el título: los talones quedan a la misma altura en toda la fila. */
.mnv-portada .mnv-eventos .mnv-evento__titulo { min-height: 2.4em; }
.mnv-evento__compra { padding: 16px 16px 14px; }
.mnv-portada .mnv-gastos { margin-top: 10px; color: var(--mnv-texto-3); font-size: 11.5px; }
.mnv-evento__enlaces {
    display: flex; flex-wrap: wrap; gap: 0 14px; margin-top: auto; padding: 8px 16px 10px;
    border-top: 1px solid var(--mnv-linea-suave);
}
#mnv-portada .mnv-evento__enlaces a {
    display: inline-flex; align-items: center; min-height: 36px;
    color: #d6d6d6; font-size: 12.5px; font-weight: 600;
    text-decoration: underline; text-decoration-color: rgba(255, 255, 255, .28); text-underline-offset: 4px;
}
#mnv-portada .mnv-evento__enlaces a:hover { color: #fff; text-decoration-color: #fff; }

/* Talón de entrada: datos a la izquierda, precio y compra en la parte que «se corta». */
.mnv-talon-form { margin: 0; }
.mnv-talon-form + .mnv-talon-form,
.mnv-talon-form + .mnv-talon,
.mnv-talon + .mnv-talon-form,
.mnv-talon + .mnv-talon { margin-top: 10px; }
.mnv-portada .mnv-talon {
    position: relative; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: stretch;
    width: 100%; min-height: 64px; padding: 0; overflow: hidden;
    border: 0; border-radius: 12px; background: var(--mnv-superficie); box-shadow: inset 0 0 0 1px var(--mnv-linea);
    color: var(--mnv-texto); text-align: left; text-transform: none; letter-spacing: normal;
}
.mnv-talon__info { display: flex; flex-direction: column; justify-content: center; gap: 1px; min-width: 0; padding: 10px 14px; }
.mnv-talon__tipo { font-size: 15px; font-weight: 800; letter-spacing: .06em; }
.mnv-talon__release { color: var(--mnv-ambar); font-size: 12px; font-weight: 600; }
.mnv-talon__aviso { color: #ff9d7a; font-size: 10.5px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.mnv-portada .mnv-talon--vip { box-shadow: inset 0 0 0 1px #32503f; }
.mnv-talon--vip .mnv-talon__tipo { color: var(--mnv-menta); }
.mnv-portada .mnv-talon__accion {
    position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px;
    min-width: 116px; padding: 8px 14px; border: 0; border-left: 2px dashed var(--mnv-tarjeta); border-radius: 0;
    background: var(--mnv-verde); color: var(--mnv-verde-tinta); transition: background .15s;
}
.mnv-talon__accion::before,
.mnv-talon__accion::after {
    content: ''; position: absolute; left: -8px; width: 14px; height: 14px; border-radius: 50%; background: var(--mnv-tarjeta);
}
.mnv-talon__accion::before { top: -8px; }
.mnv-talon__accion::after { bottom: -8px; }
.mnv-talon__precio { font-size: 17px; font-weight: 800; line-height: 1.1; white-space: nowrap; }
.mnv-talon__precio small { font-size: 10px; font-weight: 700; }
.mnv-talon__verbo { position: relative; font-size: 10.5px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.mnv-portada button.mnv-talon:hover .mnv-talon__accion,
.mnv-portada button.mnv-talon__accion:hover { background: var(--mnv-verde-claro); }
.mnv-portada button.mnv-talon:active { transform: translateY(1px); }

.mnv-talon--agotado .mnv-talon__info { opacity: .5; }
.mnv-portada .mnv-talon--agotado .mnv-talon__accion { background: #242424; color: #9a9a9a; }

.mnv-portada .mnv-talon--cantidad { grid-template-columns: minmax(0, 1fr) auto auto; }
.mnv-cantidad { display: flex; align-items: center; gap: 2px; padding-right: 10px; }
.mnv-portada .mnv-cantidad button {
    width: 34px; height: 34px; padding: 0; border: 1px solid #3a3a3a; border-radius: 50%; background: none; font-size: 16px; line-height: 1;
}
.mnv-portada .mnv-cantidad input {
    width: 30px; height: 34px; padding: 0; border: 0; background: none; color: #fff; font: inherit; font-weight: 700; text-align: center;
    -moz-appearance: textfield; appearance: textfield;
}
.mnv-cantidad input::-webkit-outer-spin-button,
.mnv-cantidad input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

.mnv-talon--cargando { pointer-events: none; }
.mnv-talon--cargando .mnv-talon__verbo { color: transparent; }
.mnv-talon--cargando .mnv-talon__verbo::after {
    content: ''; position: absolute; inset: 0; width: 12px; height: 12px; margin: auto;
    border: 2px solid var(--mnv-verde-tinta); border-right-color: transparent; border-radius: 50%; animation: mnv-girar .6s linear infinite;
}
@keyframes mnv-girar { to { transform: rotate(360deg); } }

/* Pases ---------------------------------------------------------------- */

.mnv-portada .mnv-subtitulo {
    display: flex; align-items: center; gap: 18px; margin: 56px 0 22px;
    font-size: 22px; font-weight: 800; text-transform: uppercase;
}
.mnv-subtitulo::after { content: ''; flex: 1; height: 1px; background: var(--mnv-linea); }
.mnv-pases { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 460px), 1fr)); gap: 20px; }
.mnv-pase {
    display: grid; grid-template-columns: 200px minmax(0, 1fr);
    grid-template-areas: 'cartel cabecera' 'cartel compra' 'cartel enlaces'; grid-template-rows: auto 1fr auto;
    overflow: hidden; background: var(--mnv-tarjeta); border: 1px solid #222; border-radius: 16px;
}
.mnv-portada .mnv-pase__cartel { grid-area: cartel; display: block; width: 100%; height: 100%; object-fit: cover; }
.mnv-pase__cabecera { grid-area: cabecera; padding: 18px 18px 0; }
.mnv-portada .mnv-pase__texto { margin-top: 6px; color: var(--mnv-texto-2); font-size: 13.5px; }
.mnv-pase__compra { grid-area: compra; padding: 16px 18px 14px; }
.mnv-pase .mnv-evento__enlaces { grid-area: enlaces; padding-left: 18px; padding-right: 18px; }

/* Paquetes y canjes ---------------------------------------------------- */

.mnv-portada .mnv-panel__nota { max-width: 760px; margin: 0 auto 28px; color: var(--mnv-texto-2); text-align: center; }
.mnv-bloques { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 520px), 1fr)); align-items: start; gap: 20px; }
.mnv-bloque { padding: 18px; background: var(--mnv-tarjeta); border: 1px solid #222; border-radius: 16px; }
.mnv-bloque__cabecera { display: flex; align-items: center; gap: 14px; }
.mnv-portada .mnv-bloque__cabecera img { flex: none; width: 72px; height: 72px; border-radius: 10px; object-fit: cover; }
.mnv-portada .mnv-bloque__cabecera .mnv-evento__titulo { margin-top: 4px; font-size: 16px; }
.mnv-portada .mnv-ofertas { margin: 14px 0 0; padding: 0; list-style: none; }
.mnv-oferta {
    display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: 8px 18px;
    padding: 12px 0; border-top: 1px solid var(--mnv-linea-suave);
}
.mnv-oferta__texto strong { display: block; font-size: 14px; font-weight: 700; }
.mnv-oferta__texto span { color: var(--mnv-texto-3); font-size: 12px; }
.mnv-oferta__texto em { color: var(--mnv-ambar); font-style: normal; font-weight: 700; }
.mnv-oferta__precio { font-size: 16px; font-weight: 800; white-space: nowrap; }
.mnv-oferta__precio small { font-size: 10px; font-weight: 700; }
.mnv-oferta--agotada .mnv-oferta__texto,
.mnv-oferta--agotada .mnv-oferta__precio { opacity: .5; }

/* Ventanas -------------------------------------------------------------- */

.mnv-portada .mnv-ventana {
    width: min(660px, calc(100vw - 32px)); max-height: min(86vh, 760px); padding: 0; overflow: hidden;
    background: #111; border: 1px solid var(--mnv-linea); border-radius: 18px; color: var(--mnv-texto);
}
.mnv-ventana[open] { display: flex; flex-direction: column; }
.mnv-ventana::backdrop { background: rgba(0, 0, 0, .74); -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); }
.mnv-ventana__cabecera { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; padding: 18px 18px 14px 22px; border-bottom: 1px solid var(--mnv-linea-suave); }
.mnv-portada .mnv-ventana__cabecera h2 { font-size: 17px; font-weight: 800; line-height: 1.25; text-transform: uppercase; }
.mnv-portada .mnv-ventana__cerrar {
    flex: none; width: 40px; height: 40px; margin: -6px -6px 0 0; padding: 0; border: 0; border-radius: 50%; background: none;
    font-size: 26px; line-height: 1;
}
.mnv-portada .mnv-ventana__cerrar:hover { background: rgba(128, 128, 128, .2); }
.mnv-ventana__cuerpo { padding: 16px 22px 22px; overflow: auto; }
.mnv-portada .mnv-ventana__texto { color: var(--mnv-texto-2); font-size: 14px; }

/* Pantallas estrechas --------------------------------------------------- */

@media (max-width: 699px) {
    .mnv-portada { --mnv-cabecera: 60px; }
    .mnv-contenedor { padding: 0 16px; }
    .mnv-heroe { --mnv-heroe-alto: clamp(340px, 56vh, 500px); }
    .mnv-temporada { padding: 40px 0 64px; }
    .mnv-pildoras { flex-wrap: nowrap; justify-content: flex-start; margin: 22px -16px 24px; padding: 0 16px 4px; overflow-x: auto; scrollbar-width: none; }
    .mnv-pildoras::-webkit-scrollbar { display: none; }
    .mnv-portada .mnv-pildora { flex: none; }

    /* Cartel pequeño junto al título: las entradas quedan a la vista sin desplazarse. */
    .mnv-eventos { grid-template-columns: 1fr; gap: 14px; }
    .mnv-evento,
    .mnv-pase {
        display: grid; grid-template-columns: 112px minmax(0, 1fr); grid-template-rows: auto;
        grid-template-areas: 'cartel cabecera' 'compra compra' 'enlaces enlaces';
    }
    .mnv-portada .mnv-evento__cartel,
    .mnv-portada .mnv-pase__cartel { grid-area: cartel; width: 98px; height: 98px; margin: 14px 0 0 14px; aspect-ratio: auto; border-radius: 10px; overflow: hidden; }
    .mnv-evento__dia { display: none; }
    .mnv-evento__cabecera,
    .mnv-pase__cabecera { grid-area: cabecera; align-self: center; padding: 14px 14px 0 12px; }
    .mnv-portada .mnv-eventos .mnv-evento__titulo { min-height: 0; }
    .mnv-evento__compra,
    .mnv-pase__compra { grid-area: compra; padding: 14px 14px 12px; }
    .mnv-evento__enlaces,
    .mnv-pase .mnv-evento__enlaces { grid-area: enlaces; padding-left: 14px; padding-right: 14px; }
    .mnv-portada .mnv-evento__titulo { font-size: 16px; }
    .mnv-portada .mnv-subtitulo { margin: 40px 0 16px; font-size: 18px; }

    .mnv-oferta { grid-template-columns: minmax(0, 1fr) auto; }
    .mnv-oferta .mnv-boton { grid-column: 1 / -1; }

    .mnv-portada .mnv-ventana { width: 100%; max-width: 100%; max-height: 88vh; margin: auto 0 0; border-radius: 18px 18px 0 0; border-bottom: 0; }

    /* Tamaños para el dedo y para leer sin esfuerzo. */
    .mnv-portada .mnv-heroe__pausa { min-height: 40px; }
    #mnv-portada .mnv-evento__enlaces a { min-height: 40px; }
    .mnv-talon__precio small { font-size: 11px; }
    .mnv-talon__verbo { font-size: 11px; }
}

/* En los teléfonos más estrechos los tres enlaces del pie de la tarjeta siguen cabiendo en una fila. */
@media (max-width: 359px) {
    .mnv-evento__enlaces { gap: 0 10px; }
    #mnv-portada .mnv-evento__enlaces a { font-size: 12px; }
}

@media (prefers-reduced-motion: reduce) {
    .mnv-portada *, .mnv-portada *::before, .mnv-portada *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}
