/* ImaginAI · tienda. Editorial magazine with documentary proof: paper, ink, terracotta and honey.
   System fonts only (fast, private). Motion only when the visitor allows it. */
:root {
  --papel: #F6F1E8;
  --papel-2: #ECE4D6;
  --tarjeta: #FFFCF6;
  --tinta: #17130F;
  --tinta-2: #463E36;
  --tinta-3: #6A6057;
  --linea: #DDD2C1;
  --acento: #B9471F;
  --acento-hover: #9A3A17;
  --acento-suave: #F5DFD1;
  --miel: #E8B04A;
  --miel-suave: #FAEBCB;
  --noche: #17130F;
  --noche-2: #231D17;
  --noche-texto: #EFE7DA;
  --noche-tenue: #B7AB9B;
  --verde: #2E6A4F;
  --rojo: #A12A1C;
  --serif: "Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", Georgia, serif;
  --sans: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --mono: ui-monospace, "Cascadia Mono", "SF Mono", Consolas, monospace;
  --radio: 8px;
  --ancho: 76rem;
  --suave: cubic-bezier(.2, .7, .2, 1);
  color-scheme: light;
}
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
  margin: 0; background: var(--papel); color: var(--tinta);
  font: 400 1.0625rem/1.6 var(--sans); text-rendering: optimizeLegibility;
}
img, svg, video { display: block; max-width: 100%; }
picture { display: block; }
a { color: var(--acento); text-underline-offset: .18em; text-decoration-thickness: 1px; }
a:hover { color: var(--acento-hover); }
:focus-visible { outline: 3px solid var(--miel); outline-offset: 3px; border-radius: 3px; }
h1, h2, h3 { font-family: var(--serif); font-weight: 600; line-height: 1.08; letter-spacing: -.015em; margin: 0 0 .5em; text-wrap: balance; }
h1 { font-size: clamp(2.2rem, 1.3rem + 3.6vw, 4.4rem); }
h2 { font-size: clamp(1.75rem, 1.2rem + 2vw, 2.9rem); }
h3 { font-size: 1.15rem; line-height: 1.25; }
p { margin: 0 0 1em; }
.saltar { position: absolute; left: -999px; top: 0; background: var(--tinta); color: #fff; padding: .5rem 1rem; z-index: 10; }
.saltar:focus { left: 1rem; top: 1rem; }

/* Header and footer */
.cabecera, .pie, main > section, .franja > *, .misma > * { width: min(var(--ancho), 100% - 2rem); margin-inline: auto; }
.cabecera { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.1rem 0; border-bottom: 1px solid var(--tinta); }
.marca { display: inline-flex; align-items: center; gap: .55rem; font: 700 1.25rem/1 var(--serif); color: var(--tinta); text-decoration: none; letter-spacing: -.01em; }
.marca-punto { width: .8rem; height: .8rem; border-radius: 50%; background: radial-gradient(circle at 35% 35%, var(--miel), var(--acento)); }
.cabecera nav a { font: 650 .82rem/1 var(--sans); letter-spacing: .08em; text-transform: uppercase; text-decoration: none; padding: .55rem .8rem; border: 1px solid var(--tinta); border-radius: 99px; color: var(--tinta); }
.cabecera nav a:hover { background: var(--tinta); color: var(--papel); }
.pie { margin-top: 5rem; padding: 2rem 0 3rem; border-top: 1px solid var(--tinta); color: var(--tinta-3); font-size: .9rem; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 1rem; }
.pie p { margin: 0; }
.pie nav { display: flex; flex-wrap: wrap; gap: .4rem 1.25rem; }
.pie a { color: var(--tinta-2); }

/* Shared pieces */
.etiqueta { font: 650 .76rem/1.3 var(--sans); letter-spacing: .14em; text-transform: uppercase; color: var(--acento); margin-bottom: .9rem; }
.etiqueta::before { content: ""; display: inline-block; width: 1.6rem; height: 1px; background: currentColor; vertical-align: middle; margin-right: .6rem; }
.entradilla { font-size: clamp(1.08rem, 1rem + .4vw, 1.3rem); color: var(--tinta-2); max-width: 40rem; }
.nota { font-size: .9rem; color: var(--tinta-3); }
.estrecho { max-width: 44rem; }
.boton {
  display: inline-flex; align-items: center; justify-content: center; gap: .5rem; min-height: 3rem;
  padding: .75rem 1.35rem; border: 0; border-radius: var(--radio); cursor: pointer;
  background: var(--acento); color: #fff; font: 650 1rem/1.2 var(--sans); text-decoration: none;
  box-shadow: inset 0 -2px 0 rgba(0,0,0,.18); transition: background-color .15s ease, transform .15s ease;
}
.boton:hover { background: var(--acento-hover); color: #fff; }
.boton:active { transform: translateY(1px); }
.boton-grande { min-height: 3.4rem; padding-inline: 1.7rem; font-size: 1.08rem; }
.boton-secundario { background: transparent; color: var(--tinta-2); box-shadow: inset 0 0 0 1px var(--linea); }
.boton-secundario:hover { background: var(--papel-2); color: var(--tinta); }
.botones { display: flex; flex-wrap: wrap; gap: .75rem; align-items: center; }
.enlace-flecha { font-weight: 650; text-decoration: none; }
.enlace-flecha::after { content: " →"; transition: margin .15s ease; }
.enlace-flecha:hover::after { margin-left: .2rem; }
.error { color: var(--rojo); background: #FBE9E5; border-left: 3px solid var(--rojo); padding: .6rem .8rem; border-radius: 4px; font-size: .95rem; }

/* Forms */
input[type=email], input:not([type]), input[type=text] {
  width: 100%; min-height: 3rem; padding: .7rem .9rem; font: inherit; color: var(--tinta);
  background: var(--tarjeta); border: 1px solid #BFAF98; border-radius: var(--radio);
}
input:focus { border-color: var(--acento); outline: 3px solid var(--acento-suave); outline-offset: 0; }
input[aria-invalid=true] { border-color: var(--rojo); }
.formulario { margin: 1.5rem 0; }
.apilado { display: grid; gap: .75rem; max-width: 26rem; }
.apilado label { font-weight: 600; display: grid; gap: .35rem; }
.trampa { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }

/* Hero */
.heroe { display: grid; gap: 2.5rem; align-items: end; padding: clamp(2rem, 5vw, 4.5rem) 0 3rem; }
.titular { font-size: clamp(2.5rem, 1.2rem + 4.6vw, 5rem); line-height: .98; letter-spacing: -.03em; max-width: 15ch; }
.heroe-venta .titular { max-width: 16ch; }
@media (min-width: 960px) {
  .heroe-portada { grid-template-columns: minmax(0, 1.3fr) minmax(0, .7fr); }
  .heroe-venta { grid-template-columns: minmax(0, 1.25fr) minmax(0, .75fr); }
}
.captar { background: var(--tarjeta); border: 1px solid var(--tinta); border-radius: 12px; padding: 1.25rem; max-width: 34rem; box-shadow: 6px 6px 0 var(--tinta); }
.captar-titulo { display: block; font: 600 1.08rem/1.35 var(--serif); margin-bottom: .8rem; }
.captar-fila { display: flex; flex-wrap: wrap; gap: .6rem; }
.captar-fila input { flex: 1 1 14rem; }
.captar-fila .boton { flex: 0 0 auto; }
.captar .nota { margin: .7rem 0 0; }
.enlaces-heroe { display: flex; flex-wrap: wrap; gap: .5rem 1.6rem; }

.heroe-medio { margin: 0; justify-self: start; width: min(100%, 23rem); }
@media (min-width: 960px) { .heroe-medio { justify-self: end; } }
.marco { position: relative; background: var(--noche); padding: .6rem .6rem 2.2rem; border-radius: 4px; transform: rotate(1.2deg); box-shadow: 0 30px 60px -35px rgba(23, 19, 15, .7); }
.marco::after { content: "VERA · VÍDEO GENERADO"; position: absolute; left: .8rem; bottom: .75rem; font: 600 .66rem/1 var(--mono); letter-spacing: .12em; color: var(--miel); }
.marco video { width: 100%; height: auto; aspect-ratio: 9 / 16; object-fit: cover; background: var(--noche-2); border-radius: 2px; max-height: 72vh; }
.heroe-medio figcaption { margin-top: 1.2rem; font-size: .92rem; color: var(--tinta-2); max-width: 22rem; }
.heroe-medio figcaption strong { font-family: var(--serif); font-size: 1.05rem; }

/* Video play/pause (added by /movimiento.js) */
.marco, .pieza, .escena { position: relative; }
.video-boton {
  position: absolute; right: .7rem; top: .7rem; z-index: 2; min-height: 2.25rem; padding: .35rem .75rem;
  font: 650 .78rem/1 var(--sans); letter-spacing: .04em; color: var(--noche-texto); background: rgba(23, 19, 15, .72);
  border: 1px solid rgba(239, 231, 218, .35); border-radius: 99px; cursor: pointer; backdrop-filter: blur(4px);
}
.video-boton:hover { background: var(--noche); }

/* «Misma persona, cualquier escena»: the dark contact-sheet band */
.misma { background: var(--noche); color: var(--noche-texto); padding: clamp(3rem, 7vw, 5.5rem) 0; margin-top: 2rem; width: 100%; }
.misma .etiqueta { color: var(--miel); }
.misma h2 { color: #fff; font-size: clamp(2rem, 1.2rem + 3.4vw, 4rem); line-height: 1; max-width: 14ch; }
.misma-cabecera p:last-child { color: var(--noche-tenue); max-width: 36rem; }
.misma-cuerpo { display: grid; gap: 2.5rem; margin-top: 2.5rem; align-items: start; }
@media (min-width: 1000px) { .misma-cuerpo { grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); } }

.contactos { margin: 0; background: var(--noche-2); border: 1px solid #3A3129; border-radius: 6px; padding: .9rem; }
.metodo-visual .contactos { background: var(--noche); border-color: var(--noche); }
.contactos-pie { display: flex; justify-content: space-between; font: 600 .7rem/1 var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--miel); padding: .1rem .1rem .8rem; border-bottom: 1px dashed #4A3F35; margin-bottom: .8rem; }
.contactos-rejilla { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .45rem; }
.contactos-rejilla li { position: relative; aspect-ratio: 3 / 4; overflow: hidden; border-radius: 2px; background: #2C251E; }
.contactos-rejilla picture, .contactos-rejilla img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 12%; }
.contactos-num { position: absolute; left: .3rem; top: .3rem; z-index: 1; font: 700 .66rem/1 var(--mono); color: var(--noche); background: var(--miel); padding: .18rem .3rem; border-radius: 2px; }
.contactos-nombre { position: absolute; left: 0; right: 0; bottom: 0; padding: 1.2rem .35rem .3rem; font: 600 .68rem/1.2 var(--sans); color: #fff; background: linear-gradient(transparent, rgba(0,0,0,.72)); }

.escenas { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .7rem; }
@media (min-width: 700px) { .escenas { grid-template-columns: repeat(3, minmax(0, 1fr)); } .escenas .e1, .escenas .e4 { transform: translateY(1.8rem); } }
.escena { margin: 0; }
.escena picture, .escena img, .escena video { width: 100%; aspect-ratio: 4 / 5; height: auto; object-fit: cover; border-radius: 3px; background: #2C251E; }
.escena figcaption { font: 600 .7rem/1.3 var(--mono); letter-spacing: .08em; text-transform: uppercase; margin-top: .45rem; color: var(--noche-tenue); }

/* Method summary (home) */
.metodo-resumen { display: grid; gap: 1rem 3rem; padding-top: clamp(3rem, 6vw, 5rem); }
@media (min-width: 900px) { .metodo-resumen { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); } .metodo-resumen h2 { grid-column: 1 / -1; max-width: 18ch; } }
.metodo-nombres { list-style: none; counter-reset: m; margin: 0; padding: 0; border-top: 1px solid var(--tinta); }
.metodo-nombres li { counter-increment: m; display: flex; gap: 1rem; align-items: baseline; padding: .7rem 0; border-bottom: 1px solid var(--linea); font: 600 1.25rem/1.3 var(--serif); }
.metodo-nombres li::before { content: counter(m, decimal-leading-zero); font: 650 .78rem/1 var(--mono); color: var(--acento); }
.metodo-resumen > p:last-child { grid-column: 1 / -1; }

/* Gallery */
.galeria-bloque { padding-top: clamp(3rem, 6vw, 5rem); }
.galeria { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem; margin-top: 1.5rem; }
@media (min-width: 900px) { .galeria { grid-template-columns: repeat(4, minmax(0, 1fr)); grid-auto-flow: dense; } .galeria .alta { grid-row: span 2; } }
.pieza { margin: 0; }
.pieza picture, .pieza img, .pieza video { width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; border-radius: 3px; background: var(--papel-2); }
.galeria .alta video { aspect-ratio: 9 / 16; }
@media (min-width: 900px) { .galeria .alta video { height: calc(100% - 1.6rem); } }
.pieza figcaption { font: 600 .7rem/1.3 var(--mono); letter-spacing: .08em; text-transform: uppercase; color: var(--tinta-3); margin-top: .45rem; }

.franja { background: var(--acento); color: #FFF4EC; padding: 2.2rem 0; width: 100%; margin-top: 4rem; }
.cifras { list-style: none; margin: 0 auto; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.4rem 1.25rem; }
.cifras li:last-child:nth-child(odd) { grid-column: 1 / -1; }
@media (min-width: 760px) { .cifras { grid-template-columns: repeat(5, minmax(0, 1fr)); } .cifras li:last-child:nth-child(odd) { grid-column: auto; } }
.cifras li { display: grid; gap: .1rem; }
.cifras strong { font: 600 clamp(2.4rem, 1.8rem + 2vw, 3.4rem)/1 var(--serif); font-variant-numeric: tabular-nums; }
.cifras span { font-size: .95rem; }

.cierre { padding: clamp(3rem, 7vw, 5rem) 0 0; display: grid; justify-items: start; }
.cierre-precio { font-size: clamp(4rem, 2rem + 9vw, 9rem); line-height: .9; letter-spacing: -.04em; color: var(--acento); margin-bottom: .2em; }

/* Launch ticket */
.ticket { display: grid; grid-template-columns: 1fr auto; background: var(--noche); color: var(--noche-texto); border-radius: 10px; overflow: hidden; max-width: 30rem; width: 100%; box-shadow: 10px 10px 0 var(--acento); }
.ticket-cuerpo { padding: 1.5rem 1.5rem 1.3rem; }
.ticket-numero { display: grid; font: 500 1rem/1.2 var(--serif); margin-bottom: 1rem; color: var(--noche-tenue); }
.ticket-numero strong { font-size: clamp(4rem, 3rem + 4vw, 6rem); line-height: .95; color: var(--miel); font-variant-numeric: tabular-nums; letter-spacing: -.02em; }
.barra { height: .5rem; border-radius: 99px; background: #3A3129; overflow: hidden; }
.barra-relleno { display: block; height: 100%; background: var(--miel); border-radius: inherit; min-width: .5rem; }
.b0{width:0}.b1{width:5%}.b2{width:10%}.b3{width:15%}.b4{width:20%}.b5{width:25%}.b6{width:30%}.b7{width:35%}.b8{width:40%}.b9{width:45%}.b10{width:50%}
.b11{width:55%}.b12{width:60%}.b13{width:65%}.b14{width:70%}.b15{width:75%}.b16{width:80%}.b17{width:85%}.b18{width:90%}.b19{width:95%}.b20{width:100%}
.ticket-quedan { margin: .9rem 0 0; font-weight: 650; color: #fff; font-variant-numeric: tabular-nums; }
.ticket-talon { display: grid; align-content: center; justify-items: start; gap: .3rem; padding: 1.2rem; background: var(--noche-2); border-left: 2px dashed #4A3F35; min-width: 8rem; }
.ticket-talon span { font: 600 .68rem/1.2 var(--mono); text-transform: uppercase; letter-spacing: .08em; color: var(--noche-tenue); }
.ticket-talon strong { font: 600 1.15rem/1.15 var(--serif); color: #fff; }

/* Sales page sections */
.bloque { padding: clamp(2.8rem, 5vw, 4.5rem) 0 0; }
.bloque > h2 { max-width: 22ch; }
.comparacion-columnas { display: grid; gap: 0; margin-top: 1.5rem; border: 1px solid var(--tinta); border-radius: 10px; overflow: hidden; }
@media (min-width: 860px) { .comparacion-columnas { grid-template-columns: 1fr 1fr; } }
.columna { padding: clamp(1.2rem, 3vw, 2rem); }
.columna h3 { font: 650 .78rem/1.3 var(--sans); letter-spacing: .14em; text-transform: uppercase; margin-bottom: 1rem; }
.alquilar { background: var(--papel-2); color: var(--tinta-2); }
.alquilar h3 { color: var(--tinta-3); }
.duena { background: var(--noche); color: var(--noche-texto); }
.duena h3 { color: var(--miel); }
.duena .lista-si li::before { color: var(--miel); }
.problemas { list-style: none; padding: 0; margin: 0; display: grid; gap: 1.1rem; }
.problemas strong { display: block; font: 600 1.4rem/1.2 var(--serif); color: var(--tinta); margin-bottom: .2rem; text-decoration: line-through; text-decoration-color: var(--acento); text-decoration-thickness: 2px; }
.solucion { font-size: 1.15rem; margin-bottom: 1.2rem; }
.duena .solucion strong { color: #fff; }

.metodo-bloque { display: grid; gap: 2.5rem; align-items: start; }
@media (min-width: 1000px) { .metodo-bloque { grid-template-columns: minmax(0, 1fr) minmax(0, .95fr); } .metodo-visual { position: sticky; top: 1.5rem; } }
.metodo { list-style: none; counter-reset: paso; padding: 0; margin: 1.5rem 0 0; display: grid; gap: 0; }
.metodo li { counter-increment: paso; position: relative; padding: 1.1rem 0 1.1rem 3.6rem; border-top: 1px solid var(--linea); color: var(--tinta-2); }
.metodo li::before { content: counter(paso); position: absolute; left: 0; top: .8rem; font: 600 2.2rem/1 var(--serif); color: var(--acento); }
.metodo li strong { color: var(--tinta); font-family: var(--serif); font-size: 1.15rem; }
.metodo-visual { display: grid; gap: .8rem; background: var(--noche); padding: .9rem; border-radius: 8px; }
.metodo-escenas { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .5rem; }
.metodo-escenas .escena video { aspect-ratio: 4 / 5; }

.incluye { list-style: none; counter-reset: n; padding: 0; margin: 1.5rem 0; display: grid; gap: 0 2.5rem; grid-template-columns: repeat(auto-fit, minmax(min(19rem, 100%), 1fr)); }
.incluye li { counter-increment: n; position: relative; padding: 1rem 0 1rem 2.9rem; border-top: 1px solid var(--linea); }
.incluye li::before { content: counter(n, decimal-leading-zero); position: absolute; left: 0; top: 1.05rem; font: 600 .82rem/1.4 var(--mono); color: var(--acento); }
.incluye h3 { margin-bottom: .2rem; }
.incluye p { margin: 0; color: var(--tinta-2); }

.modelos-lista { list-style: none; padding: 0; margin: 1.2rem 0 1.5rem; display: grid; gap: 1rem; max-width: 52rem; }
.modelos-lista li { font: 400 clamp(1.08rem, 1rem + .45vw, 1.35rem)/1.45 var(--serif); padding-left: 1.2rem; border-left: 2px solid var(--tinta); }
.modelos-lista strong { font-family: var(--sans); font-size: .78em; letter-spacing: .08em; text-transform: uppercase; color: var(--acento); }
.destacado { max-width: 52rem; background: var(--miel-suave); border-left: 4px solid var(--miel); padding: 1rem 1.2rem; border-radius: 0 6px 6px 0; }

.pasos { padding-left: 1.4rem; margin: 1rem 0 1.5rem; display: grid; gap: .5rem; max-width: 42rem; }
.pasos li::marker { color: var(--acento); font-weight: 700; font-family: var(--serif); }
.dos-columnas { display: grid; gap: 2rem; grid-template-columns: repeat(auto-fit, minmax(min(18rem, 100%), 1fr)); }
.lista-si, .lista-no, .requisitos { list-style: none; padding: 0; margin: 0; display: grid; gap: .55rem; }
.lista-si li, .lista-no li, .requisitos li { position: relative; padding-left: 1.7rem; }
.lista-si li::before, .lista-no li::before, .requisitos li::before { position: absolute; left: 0; top: 0; font-weight: 700; }
.lista-si li::before { content: "✓"; color: var(--verde); }
.lista-no li::before { content: "✕"; color: var(--rojo); }
.requisitos li::before { content: "—"; color: var(--acento); }

/* Purchase box */
.pago { display: grid; gap: 2rem; align-items: start; }
@media (min-width: 900px) { .pago { grid-template-columns: 1.2fr .8fr; } .pago > h2 { grid-column: 1 / -1; margin-bottom: 0; } }
.compra { margin: 0; background: var(--tarjeta); border: 1px solid var(--tinta); border-radius: 12px; padding: clamp(1.1rem, 3vw, 1.75rem); display: grid; gap: 1rem; box-shadow: 8px 8px 0 var(--tinta); }
.linea-pedido { display: flex; justify-content: space-between; gap: 1rem; align-items: baseline; font-weight: 600; padding-bottom: .9rem; border-bottom: 1px dashed var(--linea); }
.linea-pedido strong { font: 600 1.6rem/1 var(--serif); font-variant-numeric: tabular-nums; }
.opcion { display: grid; grid-template-columns: auto 1fr; gap: .75rem; align-items: start; padding: .9rem 1rem; border: 1px solid var(--linea); border-radius: var(--radio); cursor: pointer; color: var(--tinta-2); font-size: .97rem; }
.opcion:hover { border-color: #BFAF98; }
.opcion:has(input:checked) { border-color: var(--acento); background: var(--acento-suave); }
.opcion strong { display: block; color: var(--tinta); }
.opcion input { width: 1.25rem; height: 1.25rem; margin: .15rem 0 0; accent-color: var(--acento); }
.opcion.legal { background: var(--papel); font-size: .92rem; }
.opcion.legal:has(input:checked) { background: #EEF4EF; border-color: var(--verde); }
.compra .boton { width: 100%; }
.compra .nota { margin: 0; }
.devolucion { border-left: 3px solid var(--miel); padding-left: 1rem; color: var(--tinta-2); }
.devolucion h3 { color: var(--tinta); }
.precio, .linea-pedido strong { white-space: nowrap; }
.total-pedido { margin: 0; color: var(--tinta-2); }
.total-pedido strong { color: var(--tinta); }

.faq { display: grid; gap: .5rem; max-width: 46rem; margin-top: 1rem; }
.faq details { background: var(--tarjeta); border: 1px solid var(--linea); border-radius: var(--radio); padding: 0 1.1rem; }
.faq summary { cursor: pointer; font-weight: 600; padding: 1rem 0; list-style: none; display: flex; justify-content: space-between; gap: 1rem; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: "+"; color: var(--acento); font: 600 1.3rem/1 var(--serif); }
.faq details[open] summary::after { content: "−"; }
.faq details p { color: var(--tinta-2); padding-bottom: .5rem; }

/* Notices, thank-you, download, legal */
.aviso { padding: clamp(2.5rem, 6vw, 4.5rem) 0 1rem; }
.aviso h1 { font-size: clamp(1.8rem, 1.3rem + 2.2vw, 2.6rem); }
.oferta { margin-top: 2.5rem; background: var(--tarjeta); border: 2px solid var(--miel); border-radius: 12px; padding: 1.5rem; }
.legal h2 { font-size: 1.3rem; margin-top: 2rem; }
.legal li { margin-bottom: .4rem; }
.datos { display: grid; grid-template-columns: max-content 1fr; gap: .35rem 1.2rem; background: var(--tarjeta); border: 1px solid var(--linea); border-radius: var(--radio); padding: 1rem 1.2rem; }
.datos dt { font-weight: 600; color: var(--tinta-3); }
.datos dd { margin: 0; overflow-wrap: anywhere; }
@media (max-width: 480px) { .datos { grid-template-columns: 1fr; } .datos dd { margin-bottom: .5rem; } }
.codigo { text-transform: none; letter-spacing: .02em; font-family: var(--mono); }

/* Local Stripe simulator */
.simulador main { padding-top: 3rem; }
.tabla { width: 100%; border-collapse: collapse; margin: 1rem 0; background: var(--tarjeta); }
.tabla td { padding: .6rem .8rem; border-bottom: 1px solid var(--linea); }
.tabla .num { text-align: right; font-variant-numeric: tabular-nums; }
.tabla .total td { font-weight: 700; }

@media (max-width: 560px) {
  body { font-size: 1rem; }
  .marco { transform: none; }
  .heroe-medio { width: min(100%, 17rem); }
  .ticket { grid-template-columns: 1fr; }
  .ticket-talon { border-left: 0; border-top: 2px dashed #4A3F35; grid-auto-flow: column; justify-content: start; align-items: baseline; gap: .6rem; }
  .captar-fila .boton { width: 100%; }
  .captar, .compra { box-shadow: 4px 4px 0 var(--tinta); }
  .contactos-nombre { font-size: .58rem; padding-inline: .25rem; }
  .metodo li { padding-left: 2.8rem; }
}

/* Motion: an orchestrated entrance and reveals on scroll, only when the visitor allows motion.
   Without support for scroll-driven animations everything is simply visible. */
@media (prefers-reduced-motion: no-preference) {
  @keyframes subir { from { opacity: 0; transform: translateY(1.4rem); } to { opacity: 1; transform: none; } }
  @keyframes asomar { from { opacity: 0; transform: translateY(2rem) rotate(3deg); } to { opacity: 1; transform: rotate(1.2deg); } }
  .entrada .heroe-texto > * { animation: subir .8s var(--suave) both; }
  .entrada .heroe-texto > :nth-child(2) { animation-delay: .08s; }
  .entrada .heroe-texto > :nth-child(3) { animation-delay: .18s; }
  .entrada .heroe-texto > :nth-child(4) { animation-delay: .28s; }
  .entrada .heroe-texto > :nth-child(5) { animation-delay: .36s; }
  .entrada .marco { animation: asomar 1s var(--suave) .25s both; }
  .entrada .ticket { animation: subir .9s var(--suave) .3s both; }
  @supports (animation-timeline: view()) {
    .revelar { animation: subir linear both; animation-timeline: view(); animation-range: entry 0% cover 22%; }
    .escenas .escena, .galeria .pieza { animation: subir linear both; animation-timeline: view(); animation-range: entry 0% cover 30%; }
  }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
}

/* Mobile hero: Vera right after the headline, then the rest (same HTML, reordered). */
@media (max-width: 959px) {
  .heroe-portada .heroe-texto { display: contents; }
  .heroe-portada > * , .heroe-portada .heroe-texto > * { order: 5; }
  .heroe-portada .etiqueta { order: 1; }
  .heroe-portada .titular { order: 2; font-size: clamp(2.2rem, 1.4rem + 4vw, 3.2rem); }
  .heroe-portada .heroe-medio { order: 3; }
  .heroe-portada .entradilla { order: 4; }
  .heroe-portada { gap: 1.2rem; }
  .heroe-portada .captar, .heroe-portada .enlaces-heroe { margin: 0; }
}
.video-sonido { right: auto; left: .7rem; }
.video-sonido[aria-pressed="true"] { background: var(--miel); color: var(--noche); border-color: var(--miel); }

/* Sales copy: «Qué necesitas» sits with the payment, the method eyebrow spans the grid. */
.necesitas { background: var(--tarjeta); border: 1px solid var(--linea); border-radius: 10px; padding: 1.2rem 1.4rem; }
.necesitas h3 { font: 650 .78rem/1.3 var(--sans); letter-spacing: .14em; text-transform: uppercase; color: var(--acento); }
@media (min-width: 900px) { .pago .necesitas { grid-column: 1 / -1; } }
.metodo-resumen > .etiqueta { grid-column: 1 / -1; margin-bottom: 0; }

/* Price ladder */
.ticket { grid-template-columns: 1fr; }
.escalera-ahora { font-weight: 650; margin: 0 0 .7rem; font-variant-numeric: tabular-nums; }
.ticket .escalera-ahora { color: #fff; }
.escalera-siguientes { list-style: none; margin: .9rem 0 0; padding: 0; display: grid; gap: .3rem; font: 600 .8rem/1.3 var(--mono); letter-spacing: .04em; }
.ticket .escalera-siguientes { color: var(--noche-tenue); }
.cierre .escalera { min-width: min(100%, 26rem); margin-bottom: 1.4rem; }
.cierre .barra { background: var(--papel-2); }
.cierre .barra-relleno { background: var(--acento); }
.cierre .escalera-siguientes { color: var(--tinta-3); }
