/* =====================================================================
   SALA MIRARI · Sistema visual (propuesta v1, septiembre 2026)
   Concepto: el programa de mano de una sala de ilusionismo.
   La sala a oscuras como fondo, el latón del engranaje del logo en filetes
   y ornamentos, y una sola hoja de pergamino (la del regalo).
   Rejilla de 12 columnas en 1240 px. Titulares alineados a la izquierda.
   ===================================================================== */

:root {
  /* Color: cinco tintas, todas salen de la marca actual */
  --tinta: #040A13;        /* fondo base · color «Headings» de la web actual */
  --noche: #0A1627;        /* superficie secundaria, entre la tinta y el azul Mirari */
  --azul-mirari: #132D52;  /* azul de marca · dorsos, estados, telón */
  --oro: #FDE69D;          /* acento de marca · botones y cifras */
  --laton: #D9A548;        /* oro del engranaje del logo · filetes y ornamentos */
  --papel: #F1E9DA;        /* texto principal sobre oscuro */
  --niebla: #9AA4B7;       /* texto secundario, gris con sesgo azul */
  --pergamino: #EAD9B5;    /* la hoja del regalo (textura real de la sala) */
  --tinta-papel: #2B2116;  /* texto sobre pergamino */
  --filete: rgba(217, 165, 72, .24);

  /* Tipografía: display de marca + grotesca con versión estrecha para rótulos */
  --f-display: "Abril Fatface", "Bodoni 72", Didot, "Times New Roman", serif;
  --f-texto: "Archivo", "Helvetica Neue", Arial, sans-serif;
  --f-rotulo: "Archivo Narrow", "Arial Narrow", "Helvetica Neue", Arial, sans-serif;

  --t-portada: clamp(3.05rem, 1.55rem + 6.6vw, 8rem);
  --t-h2: clamp(2.45rem, 1.55rem + 3.6vw, 4.6rem);
  --t-h3: clamp(1.5rem, 1.2rem + 1.1vw, 2.15rem);
  --t-entradilla: clamp(1.08rem, .98rem + .42vw, 1.3rem);
  --t-texto: 1.0625rem;
  --t-peq: .9375rem;
  --t-rotulo: .8125rem;

  --ancho: 1240px;
  --margen: clamp(1rem, .4rem + 2.6vw, 2.5rem);
  --seccion: clamp(4.5rem, 2.4rem + 7vw, 9rem);
  --radio: 2px;
  --ease: cubic-bezier(.2, .7, .2, 1);
  --retraso: .15s;

  color-scheme: dark;
}

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
[hidden] { display: none !important; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; scroll-padding-top: 5rem; }
body {
  margin: 0;
  background: var(--tinta);
  color: var(--papel);
  font-family: var(--f-texto);
  font-size: var(--t-texto);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  overflow-x: hidden;
  overflow-x: clip;
}
img, video, svg { display: block; max-width: 100%; }
img { height: auto; }
a { color: inherit; }
button { font: inherit; color: inherit; }
h1, h2, h3 { font-family: var(--f-display); font-weight: 400; line-height: 1.02; margin: 0; text-wrap: balance; }
h2 { font-size: var(--t-h2); }
h3 { font-size: var(--t-h3); }
p { margin: 0; text-wrap: pretty; }
p + p { margin-top: 1em; }
figure { margin: 0; }
::selection { background: var(--oro); color: var(--tinta); }
:focus-visible { outline: 2px solid var(--oro); outline-offset: 3px; }

.caja { width: 100%; max-width: var(--ancho); margin-inline: auto; padding-inline: var(--margen); }
.sin-corte { white-space: nowrap; }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.saltar {
  position: absolute; left: 1rem; top: -5rem; z-index: 70;
  background: var(--oro); color: var(--tinta); padding: .75rem 1rem; text-decoration: none;
  font-family: var(--f-rotulo); font-weight: 700; letter-spacing: .1em; text-transform: uppercase;
}
.saltar:focus { top: 1rem; }

.rotulo {
  font-family: var(--f-rotulo);
  font-weight: 600;
  font-size: var(--t-rotulo);
  letter-spacing: .16em;
  text-transform: uppercase;
  line-height: 1.35;
  color: var(--laton);
}
.engranaje { fill: currentColor; }

/* ---------- Botones: la entrada de teatro (muescas laterales) ---------- */
.boton {
  --muesca: 7px;
  display: inline-flex; align-items: center; justify-content: center; gap: .6em;
  font-family: var(--f-rotulo); font-weight: 700; font-size: .9375rem;
  letter-spacing: .12em; text-transform: uppercase; line-height: 1;
  color: var(--tinta); background: var(--oro);
  padding: 1.1em 1.75em 1.05em;
  border: 0; border-radius: var(--radio);
  text-decoration: none; cursor: pointer; white-space: nowrap;
  -webkit-mask: radial-gradient(circle var(--muesca) at 0 50%, #0000 97%, #000) 0 0 / 51% 100% no-repeat,
                radial-gradient(circle var(--muesca) at 100% 50%, #0000 97%, #000) 100% 0 / 51% 100% no-repeat;
          mask: radial-gradient(circle var(--muesca) at 0 50%, #0000 97%, #000) 0 0 / 51% 100% no-repeat,
                radial-gradient(circle var(--muesca) at 100% 50%, #0000 97%, #000) 100% 0 / 51% 100% no-repeat;
  transition: transform .2s var(--ease), background-color .2s ease;
}
.boton:hover { background: #FFF1C4; transform: translateY(-1px); }
.boton:active { transform: translateY(1px); }
.boton:focus-visible { outline: none; background: #FFF4D2; box-shadow: inset 0 0 0 2px var(--tinta), inset 0 0 0 4px var(--oro); }
.boton--peq { --muesca: 5px; font-size: .8125rem; padding: .9em 1.35em .85em; }
.boton--tinta { background: var(--tinta); color: var(--oro); }
.boton--tinta:hover { background: #13223A; }
.boton--tinta:focus-visible { background: #13223A; box-shadow: inset 0 0 0 2px var(--oro); }
.boton[aria-disabled="true"] { opacity: .5; pointer-events: none; }

.enlace {
  display: inline-flex; align-items: baseline; gap: .5em;
  font-family: var(--f-rotulo); font-weight: 600; font-size: .875rem;
  letter-spacing: .12em; text-transform: uppercase; line-height: 1.3;
  color: var(--oro); background: none; border: 0; padding: .35em 0; cursor: pointer;
  text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .4em;
  text-decoration-color: rgba(253, 230, 157, .45);
  transition: text-decoration-color .2s ease, color .2s ease;
}
.enlace:hover { text-decoration-color: var(--oro); color: #FFF1C4; }
.enlace small { font-size: .78em; letter-spacing: .1em; color: var(--niebla); text-decoration: none; }

.sello {
  display: inline-block;
  font-family: var(--f-rotulo); font-weight: 700; font-size: .78rem;
  letter-spacing: .22em; text-transform: uppercase; line-height: 1;
  color: var(--oro); border: 1.5px solid currentColor; padding: .45em .7em .4em .8em;
  transform: rotate(-4deg);
}

/* ---------- Telón de entrada (una vez por sesión) ---------- */
.telon { display: none; position: fixed; inset: 0; z-index: 80; pointer-events: none; }
.con-telon .telon { display: block; }
.telon__hoja {
  position: absolute; top: 0; bottom: 0; width: 50.6%;
  background:
    linear-gradient(180deg, rgba(0, 0, 0, .45), rgba(0, 0, 0, 0) 16%, rgba(0, 0, 0, 0) 78%, rgba(0, 0, 0, .5)),
    repeating-linear-gradient(90deg, #0A1830 0, #16325D 2.3%, #0C1D3A 4.6%, #071326 6.9%);
}
.telon__hoja--izq { left: 0; transform-origin: left center; box-shadow: inset -2px 0 0 rgba(217, 165, 72, .55); }
.telon__hoja--der { right: 0; transform-origin: right center; box-shadow: inset 2px 0 0 rgba(217, 165, 72, .55); }
.telon__hoja::before { content: ""; position: absolute; left: 0; right: 0; bottom: 30px; height: 3px; background: var(--laton); }
.telon__hoja::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 30px;
  background: repeating-linear-gradient(90deg, var(--laton) 0 2px, transparent 2px 6px);
  -webkit-mask: linear-gradient(#000 40%, transparent); mask: linear-gradient(#000 40%, transparent);
}
.telon__logo {
  position: absolute; left: 50%; top: 50%; width: min(44vw, 240px);
  transform: translate(-50%, -50%);
}
.con-telon .telon { animation: telon-fuera .01s linear 2.25s forwards; }
.con-telon .telon__hoja--izq { animation: telon-izq 1.3s cubic-bezier(.72, 0, .24, 1) .55s forwards; }
.con-telon .telon__hoja--der { animation: telon-der 1.3s cubic-bezier(.72, 0, .24, 1) .55s forwards; }
.con-telon .telon__logo { animation: telon-logo .5s ease .3s forwards; }
@keyframes telon-izq { to { transform: translateX(-100%) scaleX(.85); } }
@keyframes telon-der { to { transform: translateX(100%) scaleX(.85); } }
@keyframes telon-logo { to { opacity: 0; transform: translate(-50%, -50%) scale(.94); } }
@keyframes telon-fuera { to { visibility: hidden; } }
.con-telon { --retraso: 1.25s; }

/* ---------- Cabecera ---------- */
.cab {
  position: fixed; top: 0; left: 0; right: 0; z-index: 50;
  padding-top: env(safe-area-inset-top, 0px);
  transition: background-color .3s ease, box-shadow .3s ease;
}
.cab--solida { background: rgba(4, 10, 19, .95); box-shadow: 0 1px 0 rgba(217, 165, 72, .16); }
.cab__barra { display: flex; align-items: center; gap: 2rem; height: 4.5rem; }
.cab__logo { flex: none; }
.cab__logo img { height: 3.2rem; width: auto; }
.cab__maqueta {
  flex: none; font-family: var(--f-rotulo); font-weight: 600; font-size: .6875rem; letter-spacing: .16em; text-transform: uppercase;
  color: var(--niebla); text-decoration: none; padding: .4em .65em .35em; margin-left: -1rem;
  border: 1px dashed rgba(154, 164, 183, .55); border-radius: var(--radio); white-space: nowrap;
}
.cab__maqueta:hover { color: var(--oro); border-color: rgba(253, 230, 157, .6); }
.cab__nav { display: flex; gap: 1.75rem; margin-left: auto; }
.cab__nav a {
  font-family: var(--f-rotulo); font-weight: 600; font-size: .8125rem;
  letter-spacing: .14em; text-transform: uppercase; text-decoration: none;
  color: rgba(241, 233, 218, .86); padding-block: .45rem;
  border-bottom: 1px solid transparent; transition: color .2s ease, border-color .2s ease;
}
.cab__nav a:hover { color: var(--oro); border-bottom-color: rgba(253, 230, 157, .5); }
.cab__menu {
  display: none; margin-left: .75rem;
  font-family: var(--f-rotulo); font-weight: 700; font-size: .8125rem; letter-spacing: .16em; text-transform: uppercase;
  background: none; border: 1px solid rgba(253, 230, 157, .45); color: var(--oro);
  padding: .7em 1em .65em; border-radius: var(--radio); cursor: pointer;
}
.menu-movil {
  position: fixed; left: 0; right: 0; bottom: 0; top: calc(4.5rem + env(safe-area-inset-top, 0px));
  z-index: 49; overflow: auto; background: var(--tinta);
  padding: 1.5rem var(--margen) 3rem; border-top: 1px solid var(--filete);
}
.menu-movil nav a {
  display: block; font-family: var(--f-display); font-size: 2.15rem; line-height: 1.15;
  padding-block: .4rem; text-decoration: none; border-bottom: 1px solid var(--filete);
}
.menu-movil__pie { margin-top: 2rem; color: var(--niebla); font-size: var(--t-peq); }
.menu-movil__pie .boton { margin-top: 1.25rem; width: 100%; }
body.menu-abierto { overflow: hidden; }

/* ---------- 1 · Portada ---------- */
.portada {
  position: relative; isolation: isolate; overflow: hidden;
  display: flex; flex-direction: column; justify-content: flex-end;
  min-height: max(640px, 92vh); min-height: max(640px, 92svh);
  padding-block: 7rem clamp(2rem, 4vw, 3.25rem);
}
.portada__video, .portada__poster { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -3; }
.portada__velo {
  position: absolute; inset: 0; z-index: -1;
  background:
    linear-gradient(180deg, rgba(4, 10, 19, .8) 0%, rgba(4, 10, 19, .12) 24%, rgba(4, 10, 19, .3) 55%, rgba(4, 10, 19, .97) 100%),
    radial-gradient(110% 80% at 0% 100%, rgba(4, 10, 19, .72) 0%, rgba(4, 10, 19, 0) 62%);
}
.portada__rejilla { display: grid; grid-template-columns: minmax(0, 1fr) 21rem; gap: 2rem 4rem; align-items: end; }
.portada__lugar { margin-bottom: 1.4rem; animation: aparecer .9s var(--ease) both; animation-delay: var(--retraso); }
.portada__titulo { display: flex; flex-direction: column; }
.portada__pre, .portada__post {
  display: block; font-family: var(--f-rotulo); font-weight: 600;
  font-size: clamp(.92rem, .72rem + .72vw, 1.4rem); letter-spacing: .3em; text-transform: uppercase;
  color: var(--oro); animation: aparecer .9s var(--ease) both;
}
.portada__pre { animation-delay: calc(var(--retraso) + .05s); }
.portada__post { animation-delay: calc(var(--retraso) + .5s); }
.portada__grande { display: block; font-size: var(--t-portada); line-height: .9; margin: .12em 0 .18em; color: var(--papel); letter-spacing: -.005em; }
.portada__grande .linea { display: block; overflow: hidden; padding-bottom: .2em; margin-bottom: -.2em; }
.portada__grande .linea > span { display: block; animation: subir 1.05s var(--ease) both; }
.portada__grande .linea:nth-child(1) > span { animation-delay: calc(var(--retraso) + .12s); }
.portada__grande .linea:nth-child(2) > span { animation-delay: calc(var(--retraso) + .26s); }
.portada__entradilla { max-width: 36rem; margin-top: 1.5rem; font-size: var(--t-entradilla); color: rgba(241, 233, 218, .88); animation: aparecer .9s var(--ease) both; animation-delay: calc(var(--retraso) + .6s); }
.portada__acciones { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 2rem; margin-top: 2rem; animation: aparecer .9s var(--ease) both; animation-delay: calc(var(--retraso) + .7s); }
@keyframes subir { from { transform: translateY(106%); } to { transform: none; } }
@keyframes aparecer { from { opacity: 0; transform: translateY(.6rem); } to { opacity: 1; transform: none; } }

/* Entrada «este sábado» */
.entrada {
  --muesca: 11px;
  position: relative; padding: 1.3rem 1.4rem 1.15rem;
  background: rgba(10, 22, 39, .86);
  box-shadow: inset 0 0 0 1px rgba(217, 165, 72, .38);
  -webkit-mask: radial-gradient(circle var(--muesca) at 0 70%, #0000 97%, #000) 0 0 / 51% 100% no-repeat,
                radial-gradient(circle var(--muesca) at 100% 70%, #0000 97%, #000) 100% 0 / 51% 100% no-repeat;
          mask: radial-gradient(circle var(--muesca) at 0 70%, #0000 97%, #000) 0 0 / 51% 100% no-repeat,
                radial-gradient(circle var(--muesca) at 100% 70%, #0000 97%, #000) 100% 0 / 51% 100% no-repeat;
  animation: aparecer .9s var(--ease) both; animation-delay: calc(var(--retraso) + .85s);
}
.entrada__lista { list-style: none; margin: .9rem 0 0; padding: 0; }
.entrada__lista li { display: grid; grid-template-columns: 3.4rem minmax(0, 1fr); gap: .1rem .75rem; padding-block: .55rem; border-top: 1px solid var(--filete); }
.entrada__hora { grid-row: span 2; font-family: var(--f-rotulo); font-weight: 700; font-size: 1.05rem; letter-spacing: .04em; color: var(--oro); padding-top: .2rem; }
.entrada__obra { font-family: var(--f-display); font-size: 1.35rem; line-height: 1.1; }
.entrada__nota { font-size: .875rem; color: var(--niebla); }
.entrada__pie { margin-top: 1.1rem; padding-top: .9rem; border-top: 1px dashed rgba(217, 165, 72, .5); }

/* ---------- 2 · Cartelera ---------- */
.cartelera { position: relative; padding-block: var(--seccion); overflow: hidden; }
.deco-engranaje { --g: 420px; position: absolute; width: var(--g); height: var(--g); color: var(--laton); opacity: .08; pointer-events: none; will-change: transform; }
.deco-engranaje--cartelera { --g: clamp(340px, 44vw, 620px); top: -120px; right: calc(var(--g) * -.3); }
.cartelera .caja { position: relative; }
.cartelera__cabecera { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 25rem); gap: 1.25rem 4rem; align-items: end; margin-bottom: clamp(2.5rem, 5vw, 4.5rem); }
.cartelera__cabecera h2 { margin-top: .5rem; }
.cartelera__nota { color: var(--niebla); font-size: var(--t-peq); }

.estreno { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(1.75rem, 5vw, 5rem); align-items: center; margin-bottom: clamp(3.5rem, 7vw, 6rem); }
.estreno__cartel img {
  width: 100%; aspect-ratio: 2 / 3; object-fit: cover;
  transform: rotate(-1.4deg);
  box-shadow: 0 0 0 1px rgba(217, 165, 72, .3), 0 40px 70px -30px rgba(0, 0, 0, .95);
}
.estreno__titulo { font-size: clamp(3.8rem, 2rem + 6.4vw, 7.4rem); line-height: .88; margin: .15em 0 .12em; }
.estreno__artista { font-family: var(--f-rotulo); font-weight: 600; font-size: 1.15rem; letter-spacing: .05em; color: var(--oro); margin-bottom: 1.4rem; }
.estreno__texto > p:not(.rotulo):not(.estreno__artista) { color: rgba(241, 233, 218, .86); max-width: 36rem; }
.estreno__funciones { list-style: none; margin: 2.25rem 0 0; padding: 0; border-top: 1px solid var(--filete); }
.estreno__funciones li { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 1.5rem; padding-block: 1.05rem; border-bottom: 1px solid var(--filete); }
.estreno__fecha { font-family: var(--f-rotulo); font-weight: 600; font-size: 1.05rem; letter-spacing: .08em; text-transform: uppercase; min-width: 11.5rem; }
.estreno__precios { flex: 1; min-width: 12rem; color: var(--niebla); font-size: var(--t-peq); }
.estreno__precios strong { color: var(--papel); font-weight: 600; }

.cartelera__herramientas { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: .5rem 2rem; margin-bottom: .75rem; }
.filtros { display: flex; flex-wrap: wrap; gap: .25rem 1.6rem; }
.filtros button {
  font-family: var(--f-rotulo); font-weight: 600; font-size: .8125rem; letter-spacing: .14em; text-transform: uppercase;
  color: var(--niebla); background: none; border: 0; border-bottom: 1px solid transparent;
  padding: .7em 0 .55em; cursor: pointer; transition: color .2s ease, border-color .2s ease;
}
.filtros button:hover { color: var(--papel); }
.filtros button[aria-pressed="true"] { color: var(--oro); border-bottom-color: var(--oro); }
.cartelera__cuenta { font-size: .875rem; color: var(--niebla); }

.funciones { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--filete); }
.funcion {
  display: grid; grid-template-columns: 4.25rem 4.6rem minmax(0, 1fr) auto auto;
  gap: 0 1.6rem; align-items: center;
  padding: 1rem .9rem; border-bottom: 1px solid var(--filete);
  transition: background-color .25s ease;
}
.funcion:hover { background: rgba(19, 45, 82, .3); }
.funcion__fecha { display: grid; justify-items: center; line-height: 1; font-family: var(--f-rotulo); font-weight: 600; font-size: .75rem; letter-spacing: .12em; text-transform: uppercase; color: var(--niebla); }
.funcion__dia { font-family: var(--f-display); font-size: 2.3rem; letter-spacing: 0; color: var(--papel); margin: .1em 0 .08em; }
.funcion__cartel { width: 4.6rem; height: auto; aspect-ratio: 4 / 5; object-fit: cover; box-shadow: 0 0 0 1px rgba(217, 165, 72, .28); transition: transform .35s var(--ease); }
.funcion:hover .funcion__cartel { transform: rotate(-2.5deg) scale(1.05); }
.funcion__cartel--texto { display: grid; place-items: center; text-align: center; background: var(--azul-mirari); color: var(--oro); font-family: var(--f-display); font-size: .78rem; line-height: 1.05; padding: .35rem; }
.funcion__hora { font-family: var(--f-rotulo); font-weight: 600; font-size: .8125rem; letter-spacing: .14em; text-transform: uppercase; color: var(--laton); }
.funcion__titulo { font-size: clamp(1.45rem, 1.2rem + .8vw, 1.95rem); line-height: 1.05; margin: .15em 0 .18em; }
.funcion__detalle { color: var(--niebla); font-size: .9375rem; line-height: 1.45; }
.funcion__accion { display: contents; }
.funcion__precio { font-family: var(--f-rotulo); font-weight: 600; font-size: 1.15rem; letter-spacing: .03em; white-space: nowrap; text-align: right; line-height: 1.15; }
.funcion__precio span { display: block; font-size: .7rem; font-weight: 500; letter-spacing: .16em; text-transform: uppercase; color: var(--niebla); }
.cartelera__mas { margin-top: 1rem; }
.cartelera__pie { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 2rem; margin-top: 2.75rem; }
.cartelera__pie p { color: var(--niebla); font-size: var(--t-peq); }

/* ---------- 3 · La sala: foco ---------- */
.foco {
  --x: 64%; --y: 42%; --r: clamp(150px, 21vw, 300px);
  position: relative; overflow: hidden; isolation: isolate;
  height: clamp(540px, 80vh, 820px); background: var(--tinta);
  touch-action: pan-y; cursor: crosshair;
}
.foco__foto { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; }
.foco__sombra {
  position: absolute; inset: 0; z-index: -1;
  background:
    radial-gradient(circle calc(var(--r) * .85) at var(--x) var(--y), rgba(253, 230, 157, .12), rgba(253, 230, 157, 0) 72%),
    radial-gradient(circle var(--r) at var(--x) var(--y), rgba(4, 10, 19, 0) 0%, rgba(4, 10, 19, .22) 48%, rgba(4, 10, 19, .93) 100%);
}
.foco__texto { position: absolute; left: 0; right: 0; bottom: clamp(2rem, 5vw, 4.5rem); pointer-events: none; }
.foco__texto h2 { max-width: 11ch; text-shadow: 0 2px 30px rgba(4, 10, 19, .9); }
.foco__texto p { max-width: 30rem; margin-top: 1.25rem; font-size: var(--t-entradilla); color: rgba(241, 233, 218, .88); text-shadow: 0 1px 18px rgba(4, 10, 19, .95); }
.foco__pista { position: absolute; top: 1.5rem; right: var(--margen); color: rgba(241, 233, 218, .65); }

.sala__detalle { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(3rem, 7vw, 7rem); align-items: center; padding-block: var(--seccion); }
.sala__datos { list-style: none; margin: 0; padding: 0; }
.sala__datos li { padding-block: 1.4rem; border-top: 1px solid var(--filete); }
.sala__datos li:last-child { border-bottom: 1px solid var(--filete); }
.sala__datos h3 { font-size: 1.5rem; line-height: 1.15; margin-bottom: .4rem; }
.sala__datos p { color: var(--niebla); }

.mosaico { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); align-items: start; padding-bottom: 8%; }
.mosaico figure { position: relative; will-change: transform; }
.mosaico img { width: 100%; object-fit: cover; box-shadow: 0 0 0 1px rgba(217, 165, 72, .22), 0 30px 60px -28px rgba(0, 0, 0, .95); }
.mosaico__a { grid-column: 1 / span 7; grid-row: 1; }
.mosaico__a img { aspect-ratio: 4 / 5; }
.mosaico__b { grid-column: 6 / span 7; grid-row: 1; margin-top: 14%; z-index: 2; }
.mosaico__b img { aspect-ratio: 3 / 2; }
.mosaico__c { grid-column: 4 / span 8; grid-row: 1; align-self: end; margin-bottom: -16%; z-index: 3; }
.mosaico__c img { aspect-ratio: 3 / 2; }

/* Revelado: las fotos llegan «sin revelar» y se revelan al entrar en pantalla */
.revelado-activo [data-revelar] img { transition: filter 1.4s ease; }
.revelado-activo [data-revelar]:not(.revelada) img { filter: saturate(.15) brightness(.55) contrast(.9); }

/* Galería «Así se vive una función»: una grande y cuatro pequeñas; en el móvil, tira que se desliza */
.galeria { padding-bottom: var(--seccion); }
.galeria__cabecera { margin-bottom: clamp(1.75rem, 3.5vw, 2.75rem); }
.galeria__titulo { font-size: clamp(2rem, 1.4rem + 2.3vw, 3.4rem); line-height: 1.05; margin-top: .55rem; }
.galeria__fotos { list-style: none; margin-block: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(.6rem, 1.2vw, 1rem); }
.galeria__fotos li:first-child { grid-column: span 2; grid-row: span 2; }
.galeria__fotos figure { margin: 0; height: 100%; }
.galeria__fotos img { width: 100%; height: 100%; aspect-ratio: 3 / 2; object-fit: cover; box-shadow: 0 0 0 1px rgba(217, 165, 72, .2); }
.galeria__credito { margin-top: 1rem; font-size: .8125rem; color: var(--niebla); }
.galeria__credito a { color: var(--niebla); }
.galeria__credito a:hover { color: var(--oro); }
@media (max-width: 899px) {
  .galeria__fotos { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-inline: var(--margen); padding-bottom: .75rem; scrollbar-width: thin; scrollbar-color: rgba(217, 165, 72, .4) transparent; }
  .galeria__fotos li { flex: 0 0 82%; scroll-snap-align: start; }
  .galeria__fotos img { height: auto; }
}

/* ---------- 3b · El truco ---------- */
.truco { background: var(--noche); border-block: 1px solid rgba(217, 165, 72, .16); padding-block: clamp(4rem, 8vw, 7rem); }
.truco__caja { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(2.5rem, 5vw, 5rem); align-items: center; }
.truco__titulo { font-size: clamp(2.2rem, 1.45rem + 2.8vw, 3.6rem); margin-top: .6rem; }
.truco__instr { color: rgba(241, 233, 218, .82); margin-top: 1.1rem; max-width: 30rem; }
.truco__acciones { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.75rem; margin-top: 1.9rem; min-height: 3.4rem; }
.truco__mesa { --hueco: clamp(.55rem, 1.1vw, .95rem); display: flex; flex-wrap: wrap; justify-content: center; gap: var(--hueco); perspective: 1400px; min-height: 12rem; }
.carta { width: calc((100% - 5 * var(--hueco)) / 6); max-width: 6.6rem; aspect-ratio: 5 / 7; }
.carta__giro {
  position: relative; width: 100%; height: 100%;
  transform-style: preserve-3d;
  transition: transform .75s cubic-bezier(.3, .7, .2, 1);
  transition-delay: calc(var(--i, 0) * 70ms);
}
.carta.bocabajo .carta__giro { transform: rotateY(180deg); }
.carta__cara, .carta__dorso {
  position: absolute; inset: 0; border-radius: 7px;
  -webkit-backface-visibility: hidden; backface-visibility: hidden;
  box-shadow: 0 14px 26px -14px rgba(0, 0, 0, .9);
}
.carta__cara {
  display: grid; place-items: center; background: #F6F0E2; color: #11151D;
  outline: 1px solid rgba(217, 165, 72, .7); outline-offset: -6px;
}
.carta--rojo .carta__cara { color: #9B2F25; }
.carta__figura { display: grid; justify-items: center; line-height: 1; }
.carta__letra { font-family: var(--f-display); font-size: clamp(2.1rem, 3.6vw, 3rem); }
.carta__palo { font-size: clamp(1.1rem, 1.7vw, 1.5rem); margin-top: .15rem; font-family: "Segoe UI Symbol", "Apple Symbols", "DejaVu Sans", sans-serif; }
.carta__esquina { position: absolute; top: .45rem; left: .5rem; display: grid; justify-items: center; font-family: var(--f-rotulo); font-weight: 700; font-size: .8rem; line-height: .95; }
.carta__esquina i { font-style: normal; font-size: .72rem; font-family: "Segoe UI Symbol", "Apple Symbols", "DejaVu Sans", sans-serif; }
.carta__esquina--inv { top: auto; left: auto; bottom: .45rem; right: .5rem; transform: rotate(180deg); }
.carta__dorso {
  transform: rotateY(180deg); display: grid; place-items: center;
  background:
    repeating-linear-gradient(45deg, rgba(217, 165, 72, .17) 0 1px, transparent 1px 7px),
    repeating-linear-gradient(-45deg, rgba(217, 165, 72, .17) 0 1px, transparent 1px 7px),
    var(--azul-mirari);
  outline: 1px solid rgba(217, 165, 72, .6); outline-offset: -6px;
}
.carta__dorso svg { width: 48%; color: var(--laton); }
.truco__mesa.barajando .carta { animation: barajar .5s ease-in-out 2; animation-delay: calc(var(--i, 0) * 45ms); }
@keyframes barajar { 50% { transform: translateY(-10px) rotate(calc((var(--i, 0) - 2.5) * 1.6deg)); } }

/* ---------- 4 · Regalar ---------- */
.regalo { position: relative; padding-block: var(--seccion); }
.papel { position: relative; isolation: isolate; color: var(--tinta-papel); padding: clamp(1.75rem, 5.5vw, 5rem); }
.papel::before {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background: url("../img/pergamino.webp") center / cover, var(--pergamino);
  transform: rotate(-.7deg);
  box-shadow: 0 50px 90px -40px rgba(0, 0, 0, .95), 0 0 0 1px rgba(0, 0, 0, .25);
}
.papel h2, .papel h3 { color: var(--tinta); }
.papel .rotulo { color: #6E4D15; }
.regalo__cabecera { max-width: 42rem; margin-bottom: clamp(2.5rem, 5vw, 4rem); }
.regalo__cabecera p { margin-top: 1.1rem; font-size: var(--t-entradilla); color: #4B3C28; }
.oferta { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(1.75rem, 4vw, 4rem); align-items: center; }
.oferta + .oferta { margin-top: clamp(3rem, 6vw, 5rem); padding-top: clamp(3rem, 6vw, 5rem); border-top: 1px solid rgba(43, 33, 22, .22); }
.oferta--gift .oferta__foto { order: 2; }
.oferta__foto img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; box-shadow: 0 30px 50px -28px rgba(43, 33, 22, .9); }
.oferta h3 { font-size: clamp(2rem, 1.4rem + 2.2vw, 3.1rem); margin: .45rem 0 .9rem; }
.oferta__texto > p { max-width: 34rem; }
.oferta__intro { margin-top: 1.3rem; }
.oferta__precio { display: flex; align-items: baseline; gap: .8rem; margin-top: 1.4rem; font-family: var(--f-display); font-size: 2.4rem; line-height: 1; color: var(--tinta); }
.oferta__precio del { font-family: var(--f-rotulo); font-size: 1.1rem; color: #7A6547; }
.oferta__precio small { font-family: var(--f-rotulo); font-size: .8rem; letter-spacing: .14em; text-transform: uppercase; color: #6B5639; }
.oferta__contenido { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem 2rem; margin: 1.6rem 0 2rem; padding-block: 1.25rem; border-block: 1px solid rgba(43, 33, 22, .2); }
.oferta__contenido h4 { margin: 0 0 .45rem; font-family: var(--f-rotulo); font-weight: 700; font-size: .78rem; letter-spacing: .16em; text-transform: uppercase; color: #6E4D15; }
.oferta__contenido ul { margin: 0; padding: 0; list-style: none; font-size: .95rem; line-height: 1.5; }
.oferta__contenido li + li { margin-top: .3rem; }
.oferta--gift .oferta__texto .boton { margin-top: 2rem; }

.cryptex {
  --alto: 1.55em;
  display: inline-flex; align-items: center; gap: .08em;
  font-family: var(--f-display); font-size: clamp(1.35rem, 1.05rem + 1.1vw, 1.85rem);
  padding: .28em .6em; border-radius: .5em; border: 0; cursor: pointer;
  background: linear-gradient(180deg, #3A260A, #8C611F 20%, #E9BD68 48%, #8C611F 78%, #2E1E08);
  box-shadow: 0 16px 26px -16px rgba(43, 33, 22, .95), inset 0 0 0 1px rgba(46, 30, 8, .6);
}
.cryptex__anillo {
  position: relative; width: 1.15em; height: calc(var(--alto) * 1.9); overflow: hidden; border-radius: .14em;
  background: linear-gradient(180deg, #2A1B07 0%, #B98A3C 22%, #F6DB98 50%, #B98A3C 78%, #2A1B07 100%);
  box-shadow: inset 0 0 0 1px rgba(60, 38, 8, .55);
}
.cryptex__anillo::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(180deg, rgba(20, 12, 2, .75), rgba(20, 12, 2, 0) 32%, rgba(20, 12, 2, 0) 68%, rgba(20, 12, 2, .75));
}
.cryptex__tira {
  display: flex; flex-direction: column;
  transform: translateY(calc(var(--alto) * .45 - var(--n, 0) * var(--alto)));
  transition: transform var(--dur, 1.6s) cubic-bezier(.12, .78, .18, 1);
}
.cryptex__tira span { height: var(--alto); flex: none; display: grid; place-items: center; line-height: 1; color: #3A2608; text-shadow: 0 1px 0 rgba(255, 236, 190, .6); }

/* ---------- 5 · Opiniones y prensa ---------- */
.opiniones { padding-top: var(--seccion); }
.opiniones__rejilla { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(2.5rem, 6vw, 6.5rem); align-items: start; }
.opiniones__texto h2 { margin-bottom: clamp(2rem, 4vw, 3rem); }
.cita { margin: 0; }
.cita footer { margin-top: 1rem; font-family: var(--f-rotulo); font-weight: 600; font-size: .8125rem; letter-spacing: .16em; text-transform: uppercase; color: var(--laton); }
.cita--grande p { font-family: var(--f-display); font-size: clamp(1.3rem, 1rem + 1.05vw, 1.85rem); line-height: 1.26; color: var(--papel); max-width: 34ch; }
.citas { display: grid; gap: 1.75rem; padding-top: .4rem; }
.citas .cita + .cita { padding-top: 1.75rem; border-top: 1px solid var(--filete); }
.citas p { color: rgba(241, 233, 218, .84); }

.prensa { margin-top: var(--seccion); padding-block: 2.6rem 2.9rem; background: var(--noche); border-block: 1px solid rgba(217, 165, 72, .16); }
.prensa__cabecera { display: flex; flex-wrap: wrap; align-items: baseline; gap: .35rem 1.5rem; margin-bottom: 1.6rem; }
.prensa__nota { font-size: var(--t-peq); color: var(--niebla); }
.marquesina { overflow: hidden; -webkit-mask: linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent); mask: linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent); }
.marquesina__pista { display: flex; width: max-content; padding-block: .5rem; animation: desfile 55s linear infinite; }
.marquesina:hover .marquesina__pista, .marquesina:focus-within .marquesina__pista { animation-play-state: paused; }
.marquesina ul { display: flex; align-items: flex-start; gap: clamp(.75rem, 1.6vw, 1.5rem); margin: 0; padding: 0 clamp(1.4rem, 2.5vw, 2.4rem); list-style: none; }
.medio { display: grid; justify-items: center; gap: .35rem; width: 8.75rem; text-align: center; text-decoration: none; color: inherit; border-radius: var(--radio); }
.medio .medalla { margin-bottom: .55rem; }
.medio__nombre { font-size: .8125rem; line-height: 1.3; color: rgba(241, 233, 218, .88); }
.medio__accion {
  display: inline-flex; align-items: center; gap: .35em;
  font-family: var(--f-rotulo); font-weight: 700; font-size: .72rem; letter-spacing: .14em; text-transform: uppercase; white-space: nowrap;
  color: var(--oro); padding-bottom: .2em; border-bottom: 1px solid rgba(253, 230, 157, .4); transition: border-color .2s ease;
}
.flecha { width: .8em; height: .8em; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; transition: transform .2s ease; }
.medio:hover .medio__accion, .medio:focus-visible .medio__accion { border-bottom-color: var(--oro); }
.medio:hover .flecha, .medio:focus-visible .flecha { transform: translate(1.5px, -1.5px); }
@keyframes desfile { to { transform: translateX(-50%); } }

/* Medallón: logos de prensa y clientes, a color sobre disco papel, con el doble aro de latón */
.medalla {
  display: block; width: var(--medalla, 4.5rem); height: auto; aspect-ratio: 1; max-width: none;
  border-radius: 50%; object-fit: cover; background: var(--papel);
  box-shadow: 0 0 0 1px var(--laton), 0 0 0 4px var(--noche), 0 0 0 5px rgba(217, 165, 72, .45);
  transition: transform .3s var(--ease);
}
a:hover > .medalla, a:focus-visible > .medalla { transform: scale(1.08) rotate(-4deg); }
.marquesina { --medalla: clamp(3.6rem, 5vw, 4.6rem); }

/* Clientes: créditos del programa. Logos en latón, sin contenedor, en cuadrícula con filetes */
.clientes { margin-top: clamp(3.5rem, 7vw, 5.5rem); }
.clientes__cabecera { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 1rem 2rem; margin-bottom: 1.6rem; }
.clientes__titulo { font-size: var(--t-h3); }
.clientes__cabecera p { margin-top: .5rem; color: var(--niebla); font-size: var(--t-peq); }
.clientes__lista {
  list-style: none; margin: 0; padding: 0;
  display: grid; grid-template-columns: repeat(6, minmax(0, 1fr));
  border-top: 1px solid var(--filete); border-left: 1px solid var(--filete);
}
.clientes__lista li {
  display: flex; align-items: center; justify-content: center; height: clamp(5.25rem, 7.5vw, 6.75rem); padding: .75rem 1rem;
  border-right: 1px solid var(--filete); border-bottom: 1px solid var(--filete);
  transition: background-color .25s ease;
}
.clientes__lista img { width: auto; height: auto; max-width: 80%; max-height: clamp(2.3rem, 3.4vw, 3.3rem); opacity: .88; transition: opacity .25s ease, transform .35s var(--ease); }
.clientes__lista .cuadrado img { max-height: clamp(3rem, 4.6vw, 4.4rem); }
.clientes__lista li:hover { background: rgba(19, 45, 82, .32); }
.clientes__lista li:hover img { opacity: 1; transform: scale(1.04); }

/* ---------- 6 · Nosotros ---------- */
.equipo { padding-block: var(--seccion); }
.equipo__cabecera { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 2rem clamp(2rem, 5vw, 5rem); align-items: end; margin-bottom: clamp(3rem, 6vw, 5rem); }
.equipo__titulo h2 { margin-top: .5rem; }
.equipo__foto img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; box-shadow: 0 0 0 1px rgba(217, 165, 72, .25), 0 40px 70px -34px rgba(0, 0, 0, .95); }
.equipo__personas { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 3rem clamp(2.5rem, 5vw, 5rem); }
.persona { display: grid; grid-template-columns: clamp(5.5rem, 8vw, 7.25rem) minmax(0, 1fr); gap: 1.25rem 1.9rem; align-items: start; }
.persona__foto {
  width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: 50%;
  box-shadow: 0 0 0 1px var(--laton), 0 0 0 5px var(--tinta), 0 0 0 6px rgba(217, 165, 72, .45);
}
.persona h3 { font-size: clamp(1.7rem, 1.3rem + 1.2vw, 2.3rem); }
.persona__rol { margin-top: .45rem; font-family: var(--f-rotulo); font-weight: 600; font-size: .78rem; letter-spacing: .14em; text-transform: uppercase; line-height: 1.5; color: var(--laton); }
.persona__texto p:not(.persona__rol) { color: rgba(241, 233, 218, .84); }

/* ---------- 7 · Más allá de la cartelera ---------- */
.mas { padding-block: var(--seccion); }
.mas__cabecera { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 24rem); gap: 1rem 4rem; align-items: end; margin-bottom: clamp(2.25rem, 4.5vw, 3.75rem); }
.mas__cabecera p { color: var(--niebla); font-size: var(--t-peq); }
.programa { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--filete); }
.programa__fila {
  position: relative; display: grid;
  grid-template-columns: auto minmax(2rem, 1fr) auto;
  grid-template-areas: "titulo puntos meta" "texto texto texto";
  align-items: baseline; gap: .45rem 1.1rem;
  padding: 1.7rem .4rem 1.6rem; border-bottom: 1px solid var(--filete);
  text-decoration: none; color: inherit;
}
.programa__titulo { grid-area: titulo; font-family: var(--f-display); font-size: clamp(1.65rem, 1.1rem + 1.9vw, 2.85rem); line-height: 1.05; transition: color .25s ease; }
.programa__puntos { grid-area: puntos; align-self: end; height: 0; margin-bottom: .55em; border-bottom: 2px dotted rgba(217, 165, 72, .5); }
.programa__meta { grid-area: meta; font-family: var(--f-rotulo); font-weight: 600; font-size: .875rem; letter-spacing: .14em; text-transform: uppercase; color: var(--oro); text-align: right; }
.programa__texto { grid-area: texto; max-width: 40rem; color: var(--niebla); }
.programa__foto { grid-area: foto; display: none; }
.programa__fila:hover .programa__titulo, .programa__fila:focus-visible .programa__titulo { color: var(--oro); }
@media (min-width: 900px) {
  /* La foto vive en su propia columna a la derecha: en reposo, apagada como una carta boca abajo;
     al pasar por encima se enciende y gira. No tapa nunca el título ni el texto. */
  .programa__fila {
    grid-template-columns: auto minmax(2rem, 1fr) auto clamp(8.5rem, 13vw, 11.5rem);
    grid-template-areas: "titulo puntos meta foto" "texto texto texto foto";
    column-gap: 1.1rem;
  }
  .programa__meta { margin-right: 1.4rem; }
  .programa__foto {
    display: block; align-self: center; width: 100%; aspect-ratio: 4 / 3; object-fit: cover;
    filter: grayscale(1) sepia(.35) brightness(.62); opacity: .7;
    transform: rotate(2deg);
    transition: filter .45s ease, opacity .35s ease, transform .55s var(--ease), box-shadow .45s ease;
    box-shadow: 0 0 0 1px rgba(217, 165, 72, .22);
  }
  .programa__fila:hover .programa__foto, .programa__fila:focus-visible .programa__foto {
    filter: none; opacity: 1; transform: rotate(-2deg) scale(1.07);
    box-shadow: 0 0 0 1px rgba(217, 165, 72, .45), 0 26px 46px -20px rgba(0, 0, 0, .95);
  }
}
@media (min-width: 900px) and (prefers-reduced-motion: reduce) {
  .programa__foto, .programa__fila:hover .programa__foto { transform: none; }
}

/* ---------- 7 · Visítanos ---------- */
.visita { background: var(--noche); padding-block: var(--seccion); border-top: 1px solid rgba(217, 165, 72, .16); }
.visita__rejilla { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(2.5rem, 6vw, 6.5rem); align-items: center; }
.visita__foto img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.visita__foto figcaption { margin-top: .8rem; font-size: .875rem; color: var(--niebla); }
.visita h2 { font-size: clamp(2.4rem, 1.5rem + 3.4vw, 4.4rem); margin-top: .6rem; }
.visita__barrio { margin-top: .9rem; font-size: var(--t-entradilla); color: rgba(241, 233, 218, .86); }
.contacto { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem 2rem; margin: 2.25rem 0 2.25rem; padding-block: 1.5rem; border-block: 1px solid var(--filete); }
.contacto dt { font-family: var(--f-rotulo); font-weight: 600; font-size: .75rem; letter-spacing: .16em; text-transform: uppercase; color: var(--niebla); }
.contacto dd { margin: .35rem 0 0; font-size: 1.05rem; overflow-wrap: anywhere; }
.contacto a { text-decoration-color: rgba(253, 230, 157, .4); text-underline-offset: .25em; }
.visita__acciones { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 2rem; }
.faq { margin-top: clamp(4rem, 8vw, 6.5rem); }
.faq__cabecera { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 1rem 2rem; margin-bottom: 1.75rem; }
.faq__lista { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 3rem; margin: 0; }
.faq__lista div { padding-block: 1.3rem; border-top: 1px solid var(--filete); }
.faq__lista dt { font-weight: 600; color: var(--papel); margin-bottom: .4rem; line-height: 1.4; }
.faq__lista dd { margin: 0; color: var(--niebla); font-size: var(--t-peq); }

/* ---------- Pie ---------- */
.pie { position: relative; overflow: hidden; background: #02060C; padding-block: 4.5rem 2.25rem; font-size: var(--t-peq); }
.deco-engranaje--pie { --g: 420px; right: -150px; bottom: -190px; opacity: .07; }
.pie__rejilla { position: relative; display: grid; grid-template-columns: minmax(0, 1.4fr) repeat(3, minmax(0, 1fr)); gap: 2.5rem 3rem; }
.pie__marca img { width: 128px; }
.pie__marca p { margin-top: 1.1rem; color: var(--niebla); max-width: 20rem; }
.pie h2 { font-family: var(--f-rotulo); font-weight: 600; font-size: .75rem; letter-spacing: .16em; text-transform: uppercase; color: var(--laton); margin-bottom: .9rem; }
.pie ul { list-style: none; margin: 0; padding: 0; }
.pie li a, .pie address a { color: var(--niebla); text-decoration: none; display: inline-block; padding-block: .22rem; transition: color .2s ease; }
.pie li a:hover, .pie address a:hover { color: var(--oro); }
.pie address { font-style: normal; color: var(--niebla); line-height: 1.75; }
.pie__legal { position: relative; display: flex; flex-wrap: wrap; gap: .5rem 1.75rem; margin-top: 3.5rem; padding-top: 1.5rem; border-top: 1px solid rgba(217, 165, 72, .16); font-size: .8125rem; color: var(--niebla); }
.pie__legal a { color: var(--niebla); }
.pie__propuesta { position: relative; margin-top: 1rem; font-size: .8125rem; color: rgba(154, 164, 183, .8); }
.pie__propuesta a { color: var(--oro); }

/* ---------- Barra de reserva móvil ---------- */
.barra-movil {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 45;
  display: flex; gap: .6rem;
  padding: .7rem var(--margen) calc(.7rem + env(safe-area-inset-bottom, 0px));
  background: rgba(4, 10, 19, .96); border-top: 1px solid rgba(217, 165, 72, .24);
  transition: transform .35s var(--ease);
}
.barra-movil .boton { flex: 1; }
.barra-movil__wa {
  display: inline-flex; align-items: center; justify-content: center; padding: 0 1.1rem;
  font-family: var(--f-rotulo); font-weight: 700; font-size: .8125rem; letter-spacing: .12em; text-transform: uppercase;
  color: var(--oro); text-decoration: none; border-radius: var(--radio);
  box-shadow: inset 0 0 0 1px rgba(253, 230, 157, .5);
}
.barra-movil--oculta { transform: translateY(115%); }

/* ---------- Vídeo de la sala ---------- */
.video-modal { width: min(1100px, 94vw); max-height: 92vh; padding: 0; border: 0; background: #000; color: var(--papel); overflow: visible; }
.video-modal::backdrop { background: rgba(2, 6, 12, .9); }
.video-modal video { width: 100%; height: auto; max-height: 86vh; background: #000; }
.video-modal__cerrar {
  position: absolute; right: 0; top: -3rem; background: none; border: 0; cursor: pointer;
  font-family: var(--f-rotulo); font-weight: 700; font-size: .8125rem; letter-spacing: .16em; text-transform: uppercase; color: var(--oro); padding: .6rem 0;
}

/* ---------- Responsive ---------- */
@media (min-width: 900px) {
  .barra-movil { display: none; }
  .portada__frase { display: block; }
}
@media (max-width: 1100px) {
  .cab__nav { gap: 1.25rem; }
  .faq__lista { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pie__rejilla { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 1179px) {
  .cab__nav { display: none; }
  .cab__menu { display: inline-flex; }
  .cab__reservar { margin-left: auto; }
}
@media (max-width: 899px) {
  .cab__reservar { display: none; }
  .cab__menu { margin-left: auto; }
  .cab__logo img { height: 2.8rem; }
  .portada { padding-top: 6rem; }
  .portada__rejilla { grid-template-columns: minmax(0, 1fr); }
  .entrada { max-width: 26rem; }
  .cartelera__cabecera, .mas__cabecera { grid-template-columns: minmax(0, 1fr); }
  .estreno { grid-template-columns: minmax(0, 1fr); }
  .estreno__cartel { max-width: 22rem; }
  .sala__detalle, .truco__caja, .opiniones__rejilla, .visita__rejilla { grid-template-columns: minmax(0, 1fr); }
  .oferta { grid-template-columns: minmax(0, 1fr); }
  .oferta--gift .oferta__foto { order: 0; }
  .oferta__foto { max-width: 26rem; }
  .equipo__cabecera, .equipo__personas { grid-template-columns: minmax(0, 1fr); }
  .visita__foto { max-width: 30rem; }
  .pie { padding-bottom: calc(6.5rem + env(safe-area-inset-bottom, 0px)); }
}
@media (max-width: 759px) {
  .funcion {
    grid-template-columns: 3.1rem 3.7rem minmax(0, 1fr);
    grid-template-areas: "fecha cartel info" "fecha cartel accion";
    gap: .15rem .9rem; padding: 1rem .15rem; align-items: start;
  }
  .funcion__fecha { grid-area: fecha; padding-top: .15rem; }
  .funcion__dia { font-size: 1.95rem; }
  .funcion__cartel { grid-area: cartel; width: 3.7rem; }
  .funcion__info { grid-area: info; }
  .funcion__accion { grid-area: accion; display: flex; align-items: center; justify-content: space-between; gap: .75rem; margin-top: .6rem; }
  .funcion__precio { text-align: left; }
  .funcion__detalle { font-size: .875rem; }
  .programa__fila { grid-template-columns: minmax(0, 1fr) 5.25rem; grid-template-areas: "titulo foto" "meta foto" "texto texto"; gap: .45rem 1rem; }
  .programa__puntos { display: none; }
  .programa__meta { text-align: left; font-size: .75rem; }
  .programa__foto { display: block; width: 5.25rem; aspect-ratio: 1; object-fit: cover; align-self: start; box-shadow: 0 0 0 1px rgba(217, 165, 72, .28); }
  .contacto { grid-template-columns: minmax(0, 1fr); }
  .faq__lista { grid-template-columns: minmax(0, 1fr); }
  .oferta__contenido { grid-template-columns: minmax(0, 1fr); }
  .clientes__lista { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .marquesina { overflow-x: auto; scroll-snap-type: x proximity; scrollbar-width: none; -webkit-mask: linear-gradient(90deg, #000 82%, transparent); mask: linear-gradient(90deg, #000 82%, transparent); }
  .marquesina::-webkit-scrollbar { display: none; }
  .marquesina__pista { animation: none; }
  .marquesina ul[aria-hidden="true"] { display: none; }
  .marquesina ul { padding-inline: var(--margen) 2.5rem; }
  .marquesina li { scroll-snap-align: start; scroll-margin-left: var(--margen); }
  .clientes__lista li { height: 4.75rem; padding: .6rem .7rem; }
  .clientes__lista img { max-height: 2.35rem; }
  .clientes__lista .cuadrado img { max-height: 3.1rem; }
  .citas { grid-template-columns: minmax(0, 1fr); gap: 1.75rem; }
  .carta { width: calc((100% - 2 * var(--hueco)) / 3); max-width: 6.5rem; }
  .truco__mesa { width: 100%; max-width: 22rem; justify-self: center; }
  .persona { grid-template-columns: minmax(0, 1fr); gap: 1.1rem; }
  .persona__foto { width: 6.5rem; }
  .foco { height: clamp(520px, 78vh, 700px); }
  .foco__texto h2 { max-width: 9ch; }
}
@media (max-width: 420px) {
  .portada__pre, .portada__post { letter-spacing: .22em; }
  .estreno__fecha { min-width: 0; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; transition-delay: 0s !important; }
  .marquesina__pista { flex-wrap: wrap; width: auto; }
  .marquesina ul[aria-hidden="true"] { display: none; }
  .marquesina ul { flex-wrap: wrap; justify-content: center; row-gap: 1.5rem; }
}

/* Entrada «próximas funciones» de la portada (muescas a la altura del filete) */
.entrada { --pie: 3.1rem; -webkit-mask: radial-gradient(circle var(--muesca) at 0 calc(100% - var(--pie)), #0000 97%, #000) 0 0 / 51% 100% no-repeat, radial-gradient(circle var(--muesca) at 100% calc(100% - var(--pie)), #0000 97%, #000) 100% 0 / 51% 100% no-repeat; mask: radial-gradient(circle var(--muesca) at 0 calc(100% - var(--pie)), #0000 97%, #000) 0 0 / 51% 100% no-repeat, radial-gradient(circle var(--muesca) at 100% calc(100% - var(--pie)), #0000 97%, #000) 100% 0 / 51% 100% no-repeat; }
  .entrada__pie { height: var(--pie); display: flex; align-items: center; margin: 1rem -1.4rem -1.15rem; padding: 0 1.4rem; border-top: 1px dashed rgba(217, 165, 72, .55); }

/* ---------- Páginas interiores (tema WordPress) ---------- */
body:not(.home) .cab { background: rgba(4, 10, 19, .97); box-shadow: 0 1px 0 rgba(217, 165, 72, .16); }
.pagina__cabecera { padding-block: calc(4.5rem + clamp(3rem, 7vw, 6rem)) clamp(2rem, 4vw, 3.5rem); border-bottom: 1px solid var(--filete); background: radial-gradient(90% 120% at 100% 0%, rgba(19, 45, 82, .55), rgba(4, 10, 19, 0) 70%), var(--tinta); }
.pagina__titulo { font-size: var(--t-h2); margin-top: .5rem; }
.pagina__entradilla { margin-top: 1rem; max-width: 40rem; font-size: var(--t-entradilla); color: rgba(241, 233, 218, .86); }
.pagina__accion { margin-top: 2rem; }
.pagina__cuerpo { padding-block: clamp(2.5rem, 6vw, 5rem) var(--seccion); }
.contenido > * + * { margin-top: 1.1em; }
.contenido h2 { font-size: var(--t-h3); margin-top: 2em; }
.contenido h3 { font-size: 1.4rem; margin-top: 1.6em; }
.contenido a { color: var(--oro); text-underline-offset: .2em; }
.contenido ul, .contenido ol { padding-left: 1.2em; }
.contenido p, .contenido li { max-width: 46rem; color: rgba(241, 233, 218, .88); }
.reserva-amelia__vuelta { margin-top: 2.5rem; }
.pagina__nota { margin-top: .9rem; font-family: var(--f-rotulo); font-weight: 600; font-size: var(--t-rotulo); letter-spacing: .12em; text-transform: uppercase; color: var(--niebla); }

/* Página «Entradas»: la cartelera completa, pegada a la cabecera */
.cartelera--completa { padding-top: clamp(2rem, 4vw, 3.5rem); }
.cartelera--completa .cartelera__pie { justify-content: flex-start; }

/* ==========================================================
   Páginas interiores · fase 3 (Tu evento, Academia, Socios, Contacto, Preguntas, legales)
   ========================================================== */
.pagina__accion { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 2rem; }

/* Bloque de foto + texto */
.bloque { padding-block: clamp(3.5rem, 7vw, 6.5rem); border-bottom: 1px solid var(--filete); }
.bloque:last-child { border-bottom: 0; padding-bottom: var(--seccion); }
.bloque__rejilla { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(2rem, 5vw, 5rem); align-items: center; }
.bloque--invertido .bloque__rejilla { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); }
.bloque--invertido .bloque__foto { order: 2; }
.bloque__foto { margin: 0; }
.bloque__foto img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; box-shadow: 0 0 0 1px var(--filete), 0 30px 60px -30px #000; }
.bloque__texto h2, .bloque__titulo { font-size: clamp(2rem, 1.4rem + 2.3vw, 3.4rem); line-height: 1.05; margin: .55rem 0 1.1rem; }
.bloque__texto > p:not(.rotulo) { max-width: 38rem; color: rgba(241, 233, 218, .86); }
.bloque__texto > p + p { margin-top: .9rem; }
.celebra { list-style: none; margin: 1.75rem 0 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(.6rem, 1.2vw, 1rem); }
.celebra figure { margin: 0; }
.celebra img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; box-shadow: 0 0 0 1px var(--filete); }
@media (max-width: 640px) {
  .celebra { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: .75rem; scrollbar-width: thin; scrollbar-color: rgba(217, 165, 72, .4) transparent; }
  .celebra li { flex: 0 0 72%; scroll-snap-align: start; }
}
.pie__credito a { color: var(--niebla); }
.pie__credito a:hover { color: var(--oro); }
.bloque__subtitulo {
  margin: 2rem 0 .2rem; font-family: var(--f-rotulo); font-weight: 700; font-size: var(--t-rotulo);
  letter-spacing: .16em; text-transform: uppercase; color: var(--laton);
}
.bloque__accion { margin-top: 2rem; }
.bloque__accion--centro { text-align: center; margin-top: clamp(2.5rem, 5vw, 3.5rem); }
.bloque__accion--centro p { color: var(--niebla); }
.bloque__accion--centro p + p { margin-top: 1.25rem; display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 1rem 2rem; }

/* Lista con filetes (tipo programa de mano) */
.lista-filete { list-style: none; margin: 1.5rem 0 0; padding: 0; max-width: 34rem; }
.lista-filete li {
  padding: .7rem 0; border-top: 1px solid var(--filete);
  font-family: var(--f-rotulo); font-weight: 600; font-size: .95rem; letter-spacing: .1em; text-transform: uppercase;
}
.lista-filete li:last-child { border-bottom: 1px solid var(--filete); }
.lista-filete--dos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 1.75rem; margin-top: .8rem; }
.lista-filete--dos li:nth-last-child(2) { border-bottom: 1px solid var(--filete); }

/* Ficha de datos (Academia) */
.ficha { margin: 1.75rem 0 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 2rem; }
.ficha div { padding: .85rem 0; border-top: 1px solid var(--filete); }
.ficha dt { font-family: var(--f-rotulo); font-weight: 600; font-size: .75rem; letter-spacing: .16em; text-transform: uppercase; color: var(--niebla); }
.ficha dd { margin: .3rem 0 0; font-size: var(--t-peq); color: var(--papel); }
.ficha strong { color: var(--oro); font-weight: 600; }

/* Dos columnas de texto (talleres / verano) */
.columnas { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(2rem, 5vw, 5rem); }
.columna { padding-top: 1.5rem; border-top: 1px solid rgba(217, 165, 72, .45); }
.columna h2 { font-size: clamp(1.8rem, 1.3rem + 1.6vw, 2.6rem); margin: .5rem 0 1rem; }
.columna p:not(.rotulo) { color: rgba(241, 233, 218, .86); max-width: 34rem; }
.columna p + p { margin-top: .9rem; }

/* Socios: ventajas numeradas y modalidades */
.ventajas { list-style: none; counter-reset: ventaja; margin: 2rem 0 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 3rem; }
.ventajas li {
  counter-increment: ventaja; position: relative; padding: 1.3rem 0 1.3rem 3.6rem; border-top: 1px solid var(--filete);
  color: rgba(241, 233, 218, .86); font-size: var(--t-entradilla);
}
.ventajas li::before {
  content: counter(ventaja); position: absolute; left: 0; top: 1rem;
  font-family: var(--f-display); font-size: 2.2rem; line-height: 1; color: var(--oro);
}
.ventajas strong { color: var(--papel); font-weight: 600; }
.bloque--modalidades { background: var(--noche); }
.modalidades { list-style: none; margin: 2rem 0 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; }
.modalidad {
  position: relative; padding: 2rem 1.6rem 1.8rem; background: var(--tinta);
  border: 1px solid var(--filete); border-radius: var(--radio); box-shadow: inset 0 3px 0 var(--laton);
}
.modalidad__numero { position: absolute; top: 1.2rem; right: 1.4rem; font-family: var(--f-display); font-size: 3rem; line-height: 1; color: rgba(217, 165, 72, .25); }
.modalidad__nombre { font-size: clamp(1.5rem, 1.2rem + 1vw, 2rem); line-height: 1.1; padding-right: 2.5rem; }
.modalidad__cuota { margin: .6rem 0 .9rem; font-family: var(--f-rotulo); font-weight: 700; font-size: .8rem; letter-spacing: .16em; text-transform: uppercase; color: var(--laton); }
.modalidad p:last-child { color: rgba(241, 233, 218, .86); font-size: var(--t-peq); }

/* Contacto: datos + formulario */
.contacto-pagina { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(2rem, 6vw, 6rem); align-items: start; }
.contacto-pagina__datos h2 { font-size: clamp(2rem, 1.4rem + 2.3vw, 3.2rem); margin: .55rem 0 1rem; }
.contacto--columna { grid-template-columns: minmax(0, 1fr); margin: 0 0 1.5rem; gap: 1.1rem; }
.contacto-pagina__datos .contacto--columna { margin-top: 1.5rem; }
.contacto-pagina__nota { color: var(--niebla); font-size: var(--t-peq); max-width: 28rem; }

.formulario { display: grid; gap: 1.15rem; }
.formulario__fila { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.15rem; }
.campo { margin: 0; }
.campo label { display: block; margin-bottom: .45rem; font-family: var(--f-rotulo); font-weight: 600; font-size: .8rem; letter-spacing: .12em; text-transform: uppercase; color: var(--niebla); }
.campo label span { text-transform: none; letter-spacing: 0; font-weight: 400; }
.campo input, .campo select, .campo textarea {
  width: 100%; min-height: 3.1rem; padding: .75rem .95rem;
  font: inherit; font-size: 1rem; color: var(--papel);
  background: var(--tinta); border: 1px solid rgba(217, 165, 72, .38); border-radius: var(--radio);
  transition: border-color .2s ease, box-shadow .2s ease;
}
.campo select {
  appearance: none; padding-right: 2.4rem;
  background-image: linear-gradient(45deg, transparent 50%, var(--laton) 50%), linear-gradient(135deg, var(--laton) 50%, transparent 50%);
  background-position: calc(100% - 1.15rem) 50%, calc(100% - .8rem) 50%; background-size: .35rem .35rem; background-repeat: no-repeat;
}
.campo textarea { resize: vertical; min-height: 9rem; }
.campo input:focus, .campo select:focus, .campo textarea:focus { outline: none; border-color: var(--oro); box-shadow: 0 0 0 3px rgba(253, 230, 157, .18); }
.campo--casilla { display: flex; gap: .7rem; align-items: flex-start; }
.campo--casilla input { width: 1.15rem; min-height: 0; height: 1.15rem; margin-top: .2rem; flex: none; accent-color: var(--oro); }
.campo--casilla label { margin: 0; font-family: var(--f-texto); font-weight: 400; font-size: .9rem; letter-spacing: 0; text-transform: none; color: var(--papel); }
.campo--casilla a { color: var(--oro); }
.formulario__trampa { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.formulario__enviar { margin: .4rem 0 0; }
.aviso { padding: 1.1rem 1.25rem; border: 1px solid var(--filete); border-left: 3px solid var(--laton); border-radius: var(--radio); background: var(--noche); margin-bottom: 1.25rem; }
.aviso--ok { border-left-color: #8CCB95; }
.aviso--error { border-left-color: #F0948A; }
.aviso strong { color: var(--oro); font-weight: 600; }
.bloque--formulario { background: var(--noche); }

/* Preguntas frecuentes por grupos */
.faq-grupo + .faq-grupo { margin-top: clamp(2.5rem, 5vw, 4rem); }
.faq-grupo__titulo { margin-bottom: 1rem; font-family: var(--f-rotulo); font-weight: 700; font-size: var(--t-rotulo); letter-spacing: .16em; text-transform: uppercase; color: var(--laton); }
.faq__lista--dos { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.faq__lista dd a { color: var(--oro); text-underline-offset: .2em; }
.faq-grupo--otra p { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 2rem; }

/* Legales (contenido antiguo de Elementor): sin márgenes ni columnas propias */
.contenido .elementor-section, .contenido .e-con, .contenido .e-con-inner { margin: 0 !important; padding: 0 !important; }
.contenido .elementor-container { max-width: none !important; }
.contenido .elementor-widget-wrap, .contenido .elementor-column > .elementor-element-populated { padding: 0 !important; }
.contenido .elementor-widget:not(:last-child) { margin-bottom: 1.1em; }
.contenido .elementor-widget-text-editor { color: rgba(241, 233, 218, .88); font-family: var(--f-texto); font-size: var(--t-texto); line-height: 1.65; }
.contenido .elementor-widget-text-editor p { margin: 0 0 1em; }
.contenido .elementor-heading-title { font-family: var(--f-display) !important; color: var(--papel) !important; }
.contenido u { text-decoration: none; }

@media (max-width: 900px) {
  .bloque__rejilla, .bloque--invertido .bloque__rejilla, .contacto-pagina, .columnas { grid-template-columns: minmax(0, 1fr); }
  .bloque--invertido .bloque__foto { order: 0; }
  .modalidades, .ventajas, .faq__lista--dos { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 560px) {
  .formulario__fila, .ficha, .lista-filete--dos { grid-template-columns: minmax(0, 1fr); }
  .lista-filete--dos li:nth-last-child(2) { border-bottom: 0; }
}

/* Legales: separadores de Elementor como filete; espaciadores fuera */
.contenido .elementor-widget-spacer { display: none; }
.contenido .elementor-divider { padding-block: .5rem !important; }
.contenido .elementor-divider-separator { border: 0 !important; border-top: 1px solid var(--filete) !important; width: 100% !important; }
.contenido .elementor-widget-divider .elementor-widget-container { border: 0 !important; padding: 0 !important; }
/* Contacto: los datos arrancan a la altura del formulario */
.contacto-pagina__datos > .contacto--columna:first-child { margin-top: 0; padding-top: 0; border-top: 0; }

/* Separadores antiguos de The7 dentro del contenido */
.contenido hr { border: 0; border-top: 1px solid var(--filete); height: 0; padding: 0 !important; margin: 2rem 0; max-width: 46rem; }

/* Estreno agotado: versión compacta para que no tape las funciones que sí se pueden comprar */
.estreno--agotado { grid-template-columns: minmax(0, 3fr) minmax(0, 8fr); margin-bottom: clamp(2.5rem, 5vw, 4rem); }
.estreno--agotado .estreno__titulo { font-size: clamp(2.6rem, 1.6rem + 3.6vw, 4.8rem); }
.estreno--agotado .estreno__funciones { margin-top: 1.5rem; }
.estreno__espera { display: flex; flex-wrap: wrap; align-items: center; gap: .9rem 1.5rem; margin-top: 1.5rem; }
.estreno__espera span { color: var(--niebla); font-size: var(--t-peq); max-width: 22rem; }
.funcion__espera { font-size: .78rem; white-space: nowrap; }
@media (max-width: 899px) {
  .estreno--agotado { grid-template-columns: 6.5rem minmax(0, 1fr); gap: 0 1.1rem; align-items: start; }
  .estreno--agotado .estreno__cartel { max-width: none; }
  .estreno--agotado .estreno__texto > p:not(.rotulo):not(.estreno__artista):not(.estreno__espera) { display: none; }
  .estreno--agotado .estreno__titulo { font-size: 2.6rem; }
  .estreno--agotado .estreno__artista { font-size: .95rem; margin-bottom: 0; }
  .estreno--agotado .estreno__funciones, .estreno--agotado .estreno__espera { grid-column: 1 / -1; }
  .estreno--agotado .estreno__texto { display: contents; }
  .estreno--agotado .estreno__texto > .rotulo, .estreno--agotado .estreno__titulo, .estreno--agotado .estreno__artista { grid-column: 2; }
  .estreno--agotado .estreno__cartel { grid-row: 1 / span 3; }
}

/* Página Reservar: cartel, texto del show y otras fechas */
.reserva-show { display: grid; grid-template-columns: minmax(0, 15rem) minmax(0, 1fr); gap: clamp(1.5rem, 4vw, 3.5rem); align-items: start; }
.reserva-show__cartel { width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; box-shadow: 0 0 0 1px var(--filete), 0 30px 60px -30px #000; transform: rotate(-1.5deg); }
.reserva-show__descripcion { margin-top: 1rem; max-width: 40rem; color: rgba(241, 233, 218, .82); font-size: var(--t-peq); }
.reserva-show__fechas { margin-top: 1.6rem; }
.reserva-show__fechas-titulo { font-family: var(--f-rotulo); font-weight: 700; font-size: .75rem; letter-spacing: .16em; text-transform: uppercase; color: var(--laton); margin-bottom: .6rem; }
.reserva-show__fechas ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem; }
.fecha-chip {
  display: inline-flex; align-items: center; gap: .5rem; padding: .55rem .9rem; border: 1px solid rgba(217, 165, 72, .4); border-radius: var(--radio);
  font-family: var(--f-rotulo); font-weight: 600; font-size: .85rem; letter-spacing: .08em; text-transform: uppercase; color: var(--papel); text-decoration: none;
  transition: border-color .2s ease, background .2s ease;
}
a.fecha-chip:hover { border-color: var(--oro); background: rgba(253, 230, 157, .08); }
.fecha-chip--actual { background: var(--oro); border-color: var(--oro); color: var(--tinta); }
.fecha-chip--completa { opacity: .62; }
.fecha-chip small { font-size: .75rem; letter-spacing: .12em; }
@media (max-width: 640px) {
  .reserva-show { grid-template-columns: 6.5rem minmax(0, 1fr); gap: 1.1rem; }
  .reserva-show__cartel { transform: none; }
  .reserva-show .pagina__titulo { font-size: clamp(2rem, 8vw, 2.6rem); }
  .reserva-show__descripcion, .reserva-show__fechas, .reserva-show .pagina__nota { grid-column: 1 / -1; }
  .reserva-show__texto { display: contents; }
  .reserva-show__texto > .rotulo, .reserva-show__texto > .pagina__titulo, .reserva-show__texto > .pagina__entradilla { grid-column: 2; }
  .reserva-show__cartel { grid-row: 1 / span 3; }
  .reserva-show .pagina__entradilla { font-size: 1rem; margin-top: .4rem; }
}

/* Menú: página actual y enlaces secundarios del menú móvil */
.cab__nav a[aria-current="page"] { color: var(--oro); }
.menu-movil__peq { list-style: none; margin: 1.5rem 0 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .2rem 1rem; }
.menu-movil__peq a { display: block; padding: .45rem 0; font-family: var(--f-rotulo); font-weight: 600; font-size: .85rem; letter-spacing: .12em; text-transform: uppercase; color: var(--niebla); text-decoration: none; }
.menu-movil__peq a:hover { color: var(--oro); }
.menu-movil__pie a:not(.boton) { color: inherit; }

/* Portada en móvil más corta: opiniones en carrusel, biografías plegables y tres preguntas */
.citas__pista { display: none; }
.persona__mas > summary { display: none; }
.persona__mas > p { margin-top: 1em; }
@media (max-width: 759px) {
  .citas__pista { display: block; margin: 2rem 0 .8rem; font-family: var(--f-rotulo); font-weight: 600; font-size: .75rem; letter-spacing: .14em; text-transform: uppercase; color: var(--niebla); }
  .citas {
    display: flex; gap: .9rem; overflow-x: auto; scroll-snap-type: x mandatory; overscroll-behavior-x: contain;
    margin-inline: calc(-1 * var(--margen)); padding: 0 var(--margen) .6rem; scrollbar-width: none;
  }
  .citas::-webkit-scrollbar { display: none; }
  .citas .cita, .citas .cita + .cita {
    flex: 0 0 84%; scroll-snap-align: start; padding: 1.25rem 1.2rem; border: 1px solid var(--filete); border-radius: var(--radio); background: var(--noche);
  }
  .persona__mas > summary {
    display: inline-block; margin-top: .8rem; cursor: pointer; list-style: none;
    font-family: var(--f-rotulo); font-weight: 700; font-size: .8125rem; letter-spacing: .14em; text-transform: uppercase;
    color: var(--oro); border-bottom: 1px solid rgba(253, 230, 157, .45); padding-bottom: .15rem;
  }
  .persona__mas > summary::-webkit-details-marker { display: none; }
  .persona__mas[open] > summary { display: none; }
  .faq .faq__lista > div:nth-child(n+4) { display: none; }
}

/* Franja de aviso (panel «Web Mirari» → Aviso) */
.aviso-web { background: var(--oro); color: var(--tinta); text-align: center; }
.aviso-web p, .aviso-web a {
  display: block; margin: 0; padding: .5rem var(--margen); min-height: 2.25rem;
  font-family: var(--f-rotulo); font-weight: 700; font-size: .8125rem; letter-spacing: .1em; text-transform: uppercase; line-height: 1.3;
  color: var(--tinta); text-decoration: none;
}
.aviso-web a:hover { text-decoration: underline; text-underline-offset: .2em; }
body.con-aviso .menu-movil { top: calc(4.5rem + 2.25rem + env(safe-area-inset-top, 0px)); }
body.con-aviso .pagina__cabecera { padding-top: calc(4.5rem + 2.25rem + clamp(3rem, 7vw, 6rem)); }
body.con-aviso .portada { padding-top: 2.25rem; }
/* Precio opcional de las modalidades de socio */
.modalidad p.modalidad__precio { margin-top: auto; padding-top: 1.4rem; font-family: var(--f-display); font-size: 2rem; line-height: 1; color: var(--oro); }
.modalidad:has(.modalidad__precio) { display: flex; flex-direction: column; }

/* Página de cada show (/espectaculo/…) */
.funcion__titulo a, .estreno__titulo a { color: inherit; text-decoration: none; }
.funcion__titulo a:hover, .estreno__titulo a:hover { color: var(--oro); }
.show-datos { list-style: none; margin: 1.5rem 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: .8rem 2rem; }
.show-datos li { display: flex; flex-direction: column; gap: .2rem; font-size: var(--t-peq); color: var(--papel); }
.show-datos span { font-family: var(--f-rotulo); font-weight: 600; font-size: .72rem; letter-spacing: .16em; text-transform: uppercase; color: var(--laton); }
.show-cuerpo { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); gap: clamp(2rem, 5vw, 5rem); align-items: start; }
.show-cuerpo__titulo { font-family: var(--f-rotulo); font-weight: 700; font-size: var(--t-rotulo); letter-spacing: .16em; text-transform: uppercase; color: var(--laton); margin-bottom: 1rem; }
.show-fechas .estreno__funciones { margin-top: 0; }
.show-cuerpo__nota { margin-top: 1.25rem; color: var(--niebla); font-size: var(--t-peq); }
.show-sobre p { max-width: 38rem; }
.show-cuerpo__vuelta { grid-column: 1 / -1; }
.reserva-show__mas { margin-top: .8rem; }
@media (max-width: 900px) {
  .show-cuerpo { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 640px) {
  .reserva-show .show-datos, .reserva-show__mas { grid-column: 1 / -1; }
}
.show-sobre .show-cuerpo__titulo { font-family: var(--f-rotulo); font-size: var(--t-rotulo); margin-top: 0; }

/* Rendimiento: hueco reservado para la reserva de Amelia (evita que la página salte al cargarla) */
.pagina--reservar .reserva-amelia > div:first-child:not(.aviso) { min-height: 150px; }
@media (max-width: 640px) { .pagina--reservar .reserva-amelia > div:first-child:not(.aviso) { min-height: 470px; } }

/* Tablas de las páginas legales: en móvil, una celda debajo de otra (no se salen de la pantalla) */
.contenido table { width: 100% !important; border-collapse: collapse; }
.contenido td, .contenido th { vertical-align: top; padding: .5rem .75rem .5rem 0; }
.contenido td:first-child { font-weight: 600; color: var(--papel); }
@media (max-width: 640px) {
  .contenido table, .contenido tbody, .contenido tr, .contenido td, .contenido th { display: block; width: 100% !important; height: auto !important; }
  .contenido tr { padding: .6rem 0; border-top: 1px solid var(--filete); }
  .contenido td { padding: .2rem 0; }
  .contenido, .contenido * { overflow-wrap: anywhere; }
}
/* El contenido antiguo de Elementor crea capas propias: se encierra para que no pase por encima de la cabecera */
.contenido { position: relative; z-index: 0; isolation: isolate; }

/* Móvil: zonas táctiles cómodas (≈44 px) sin cambiar el aspecto, y rótulos de al menos 12 px */
@media (hover: none), (max-width: 759px) {
  .enlace { padding-block: .85em; margin-block: -.5em; }
  .pie__legal a { display: inline-block; padding-block: .7rem; }
  .persona__mas > summary { padding-block: .7rem; }
  .pie nav a, .pie ul a { display: inline-block; padding-block: .35rem; }
}
.funcion__precio span, .enlace small { font-size: .75rem; }
.medio__accion { font-size: .75rem; }
.show-datos span { font-size: .75rem; }
@media (max-width: 560px) {
  .estreno:not(.estreno--agotado) .estreno__cartel { max-width: 14rem; margin-inline: auto; }
  /* Filas de fechas iguales en el móvil: fecha arriba; precios a la izquierda y botón (o sello) a la derecha */
  .estreno__funciones li { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .45rem 1rem; }
  .estreno__funciones .estreno__fecha { grid-column: 1 / -1; }
  .pie__legal { gap: 0 1.25rem; align-items: center; }
  .pie__legal a { padding-block: .5rem; }
}
