/* ============================================================
   Mago Konstant — tema corporativo para shows-corporativos.html
   Se carga DESPUÉS de styles.css y solo en esta página (body.corp).
   Conserva la estructura y la profundidad de "Noche de Asombro"
   (reflectores, fotos en movimiento, bloques a sangre, tarjetas con volumen)
   con colores corporativos: azul marino de escenario y dorado sobrio.
   Tipografía cuadrada: Archivo variable (OFL), autoalojada.
   Sin confeti, sin magenta, sin cian.
   ============================================================ */

@font-face{
  font-family:"Archivo"; font-style:normal; font-weight:400 800; font-stretch:62% 100%; font-display:swap;
  src:url(../assets/fonts/archivo.woff2) format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}

body.corp{
  --bg:        #0A1426;
  --bg-2:      #0E1C35;
  --surface:   #13223F;
  --ink:       #F4F6FA;
  --ink-soft:  #C9D2E0;
  --ink-dim:   #9AA8BF;

  --gold:      #D4B06A;
  --gold-deep: #B08A45;
  --magenta:   #D4B06A;
  --cyan:      #A9C4E6;

  --line:      rgba(255,255,255,.13);
  --line-2:    rgba(255,255,255,.07);
  --glow-gold: 0 0 0 1px rgba(212,176,106,.5), 0 16px 42px -14px rgba(212,176,106,.55);
  --shadow:    0 30px 70px -30px #000;

  --radius:    14px;
  --radius-lg: 22px;

  --display: "Archivo", system-ui, -apple-system, "Segoe UI", sans-serif;
  --sans:    "Archivo", system-ui, -apple-system, "Segoe UI", sans-serif;

  background:var(--bg);
}
body.corp ::selection{ background:var(--gold); color:#0A1426; }
body.corp :focus-visible{ outline:2px solid var(--gold); outline-offset:3px; }

/* ---------- Reflectores de escenario en vez de cielo de fiesta ---------- */
/* Solo capas translúcidas: .sky es fija y un fondo opaco taparía lo que no está posicionado. */
body.corp .sky{
  background:
    radial-gradient(1100px 700px at 86% -8%, rgba(212,176,106,.17), transparent 62%),
    radial-gradient(1000px 780px at -4% 8%, rgba(110,150,215,.16), transparent 58%),
    radial-gradient(1200px 800px at 50% 115%, rgba(40,78,150,.22), transparent 62%);
}
body.corp .creds-strip{ position:relative; z-index:1; }
body.corp .sky::before{ opacity:.22; }

/* ---------- Tipografía cuadrada ---------- */
body.corp h1, body.corp h2, body.corp h3, body.corp .display{
  font-family:var(--display); font-weight:700; font-stretch:84%; letter-spacing:-.012em;
}
body.corp h1{ line-height:1.02; }
body.corp h2{ line-height:1.04; }
body.corp h3{ font-stretch:90%; letter-spacing:-.005em; }
body.corp .brand-name{ font-family:var(--display); font-weight:700; font-stretch:78%; letter-spacing:.08em; text-transform:uppercase; font-size:1.45rem; }
body.corp .brand-eyebrow{ font-stretch:90%; font-size:.6875rem; letter-spacing:.28em; }
body.corp .foot-col h4{ font-size:.8rem; letter-spacing:.14em; text-transform:uppercase; color:var(--gold); }
body.corp .lead, body.corp .prose p{ line-height:1.65; }

/* ---------- Botones con volumen ---------- */
body.corp .btn{ font-family:var(--sans); font-weight:650; font-stretch:92%; border-radius:10px; letter-spacing:.01em; }
body.corp .btn-gold{ background:linear-gradient(180deg,#E0C07F 0%,#D4B06A 55%,#C29C55 100%); color:#0A1426; box-shadow:var(--glow-gold), inset 0 1px 0 rgba(255,255,255,.35); }
body.corp .btn-gold:hover{ box-shadow:0 0 0 1px var(--gold), 0 22px 55px -12px rgba(212,176,106,.7), inset 0 1px 0 rgba(255,255,255,.4); }
body.corp .btn-ghost{ background:rgba(255,255,255,.05); border-color:rgba(255,255,255,.28); }
body.corp .btn-ghost:hover{ border-color:var(--gold); color:var(--gold); }

/* ---------- Cabecera ---------- */
body.corp .site-header.scrolled{ background:rgba(10,20,38,.82); }
@media (max-width:920px){
  body.corp .nav-links{ background:rgba(10,20,38,.98); }
}
body.corp .nav-links a[aria-current="page"]{ color:var(--gold); }

/* ---------- Portada ---------- */
body.corp .subhero::after{
  background:
    linear-gradient(180deg, rgba(10,20,38,.52) 0%, rgba(10,20,38,.93) 100%),
    radial-gradient(900px 520px at 82% 8%, rgba(212,176,106,.2), transparent 60%);
}

/* ---------- Franja de credenciales: rombos dorados en vez de estrellas ---------- */
body.corp .creds-strip{ background:rgba(8,16,30,.55); border-color:rgba(212,176,106,.22); }
body.corp .creds-track span{ font-weight:600; font-stretch:88%; letter-spacing:.02em; }
body.corp .creds-track .star{ display:inline-block; flex:none; width:7px; height:7px; background:var(--gold); transform:rotate(45deg); font-size:0; line-height:0; align-self:center; }

/* ---------- Fotos en movimiento ---------- */
body.corp .marquee figure{ border-radius:var(--radius); border-color:rgba(255,255,255,.12); box-shadow:0 26px 50px -24px #000; }
body.corp .marquee figcaption{ font-weight:650; font-stretch:90%; letter-spacing:.01em; background:linear-gradient(transparent, rgba(8,16,30,.9)); }

/* ---------- Temporada: posadas y fin de año ---------- */
body.corp .season-card{
  position:relative; overflow:hidden; display:grid; grid-template-columns:1.1fr 1fr; gap:clamp(28px,4vw,56px); align-items:center;
  padding:clamp(28px,4.5vw,60px); border-radius:var(--radius-lg);
  background:linear-gradient(155deg,#17305A 0%,#0F2140 52%,#0B172D 100%);
  border:1px solid rgba(212,176,106,.38);
  box-shadow:0 26px 40px -22px rgba(0,0,0,.75), inset 0 1px 0 rgba(255,255,255,.07);
}
body.corp .season-card::before{
  content:""; position:absolute; right:-18%; top:-55%; width:620px; height:620px; pointer-events:none;
  background:radial-gradient(circle, rgba(212,176,106,.26), transparent 64%);
}
body.corp .season-card > *{ position:relative; }
body.corp .season-card h2{ font-size:clamp(2rem,4.2vw,3.2rem); }
body.corp .season-card .lead{ margin:16px 0 28px; }
body.corp .season-list{ list-style:none; border-top:1px solid rgba(212,176,106,.35); }
body.corp .season-list li{ display:flex; justify-content:space-between; align-items:baseline; gap:16px; padding:15px 0; border-bottom:1px solid rgba(255,255,255,.1); color:var(--ink-soft); }
body.corp .season-list b{ color:var(--gold); font-weight:650; font-stretch:88%; text-align:right; }
@media (max-width:860px){
  body.corp .season-card{ grid-template-columns:1fr; }
}

/* ---------- Marcas ---------- */
body.corp .brand-cell{ border-radius:12px; background:#FBFBFD; border-color:rgba(255,255,255,.2); box-shadow:0 14px 30px -18px rgba(0,0,0,.6); }

/* ---------- Garantías: tres puntos centrados, sin tarjeta ---------- */
body.corp .seal::before{ content:""; display:block; width:9px; height:9px; background:var(--gold); transform:rotate(45deg); margin:0 auto 18px; }
body.corp .seal h3{ font-size:1.36rem; }
body.corp .seal p{ max-width:32ch; }
@media (max-width:920px){
  body.corp .seals{ gap:46px; margin-top:44px; }
}

/* ---------- Preguntas: se abren por filas de grid, sin animar la altura ---------- */
body.corp .faq-q{ font-family:var(--display); font-stretch:90%; font-weight:650; }
body.corp .faq-a{ max-height:none; display:grid; grid-template-rows:0fr; transition:grid-template-rows .35s var(--e-out); }
body.corp .faq-a > p{ min-height:0; overflow:hidden; padding:0; }
body.corp .faq-a > p::after{ content:""; display:block; height:24px; }
body.corp .faq-item.open .faq-a{ grid-template-rows:1fr; }

/* ---------- Contacto ---------- */
body.corp .contact-card.wa{ background:linear-gradient(155deg,#17305A,#0E1C35); border:1px solid rgba(212,176,106,.35); box-shadow:0 24px 40px -22px rgba(0,0,0,.75); }
body.corp .contact-card.corp{ background:rgba(255,255,255,.035); box-shadow:0 24px 40px -24px rgba(0,0,0,.7); }
body.corp .field label{ font-weight:600; font-stretch:90%; letter-spacing:.02em; }
body.corp .field input, body.corp .field select{ border-radius:10px; background:rgba(6,13,25,.62); border-color:rgba(255,255,255,.16); }
body.corp .field input:focus, body.corp .field select:focus{ border-color:var(--gold); box-shadow:0 0 0 3px rgba(212,176,106,.28); }
body.corp .field input::placeholder{ color:#8E9BB2; }

/* ---------- Pie y botón flotante ---------- */
body.corp .foot-col h4{ font-family:var(--display); font-stretch:88%; }
body.corp .fab{ background:linear-gradient(180deg,#E0C07F,#C9A45C); color:#0A1426; box-shadow:0 14px 34px -12px rgba(0,0,0,.6), 0 0 0 1px rgba(212,176,106,.5); }

/* ============ Ronda de arreglos de la revisión final ============ */

/* 1) Iconos de preguntas dibujados, no caracteres */
body.corp .faq-q::before, body.corp .faq-q::after,
body.corp .faq-item.open .faq-q::after{
  content:""; position:absolute; right:6px; top:50%; width:16px; height:2px; background:var(--gold);
  font-size:0; transition:transform .3s var(--e-out);
}
body.corp .faq-q::before{ transform:translateY(-50%); }
body.corp .faq-q::after{ transform:translateY(-50%) rotate(90deg); }
body.corp .faq-item.open .faq-q::after{ transform:translateY(-50%) rotate(0deg); }

/* 2) Con movimiento reducido, las pruebas se muestran completas y quietas */
@media (prefers-reduced-motion:reduce){
  body.corp .creds-track, body.corp .brand-track, body.corp .marquee{ width:auto; max-width:100%; flex-wrap:wrap; justify-content:center; animation:none; }
  body.corp .creds-track{ white-space:normal; row-gap:10px; column-gap:22px; padding:0 20px; }
  body.corp .creds-track > :nth-child(n+10){ display:none; }
  body.corp .brand-row, body.corp .react-marquees{ overflow:visible; }
  body.corp .brand-track{ row-gap:14px; padding:0 12px; }
  body.corp .marquee{ row-gap:20px; padding:0 20px; }
}

/* 5) Botones de la portada en móvil: mismo ancho, completos */
@media (max-width:540px){
  body.corp .subhero .sub-cta{ flex-direction:column; align-items:stretch; }
  body.corp .subhero .sub-cta .btn{ width:100%; justify-content:center; }
}

@media (prefers-reduced-motion:reduce) and (max-width:540px){
  body.corp .brand-track{ display:grid; grid-template-columns:repeat(2,1fr); gap:12px; padding:0 20px; }
  body.corp .brand-cell{ width:auto; }
}

/* ============ Segunda ronda de arreglos ============ */

/* Logo de Don Pedro: el archivo trae mucho margen; se amplía dentro de su tarjeta */
body.corp .brand-cell{ overflow:hidden; }
body.corp .brand-cell img[alt="Don Pedro"]{ transform:scale(1.6); }

@media (prefers-reduced-motion:reduce){
  /* Credenciales: un rombo al inicio de cada dato, sin separadores sueltos al partir la línea */
  body.corp .creds-track .star{ display:none; }
  body.corp .creds-track{ column-gap:26px; }
  body.corp .creds-track > span:not(.star)::before{ content:""; display:inline-block; flex:none; width:6px; height:6px; margin-right:10px; background:var(--gold); transform:rotate(45deg); }
}
@media (prefers-reduced-motion:reduce) and (max-width:860px){
  /* Fotos: cuadrícula de dos columnas a todo el ancho del texto */
  body.corp .marquee{ display:grid; grid-template-columns:repeat(2,1fr); gap:14px; width:100%; }
  body.corp .marquee figure{ width:auto; height:auto; aspect-ratio:4/3; }
}
@media (prefers-reduced-motion:reduce) and (max-width:540px){
  /* Logos: el que queda solo en la última fila, centrado */
  body.corp .brand-track > .brand-cell:last-child:nth-child(odd){ grid-column:1 / -1; justify-self:center; width:calc(50% - 6px); }
}

/* ============================================================
   Versión 3 (18-sep-2026, noche)
   Portada con el arquero, formatos en tarjetas con foto,
   producción teatral a lo grande y efectos de scroll.
   ============================================================ */

/* ---------- Portada: el arquero ---------- */
/* La portada más la franja de credenciales llenan la primera pantalla. */
body.corp .subhero{ min-height:max(560px, calc(100svh - 144px)); view-timeline:--hero block; }
body.corp .subhero .bg img{ object-position:62% 12%; transform-origin:50% 20%; }
body.corp .subhero::after{
  background:
    linear-gradient(180deg, rgba(10,20,38,.34) 0%, rgba(10,20,38,.06) 22%, rgba(10,20,38,.5) 46%, rgba(10,20,38,.9) 70%, rgba(10,20,38,.97) 100%),
    radial-gradient(700px 480px at 85% 0%, rgba(212,176,106,.16), transparent 62%);
}
@media (max-width:899px){
  body.corp .subhero{ padding-top:clamp(260px,44svh,440px); padding-bottom:40px; }
}
@media (min-width:900px){
  /* En escritorio la foto va a sangre, como el bloque de "Talla internacional", y el texto centrado debajo de la cara y el arco */
  body.corp .subhero{ padding:120px 0 64px; }
  body.corp .subhero .bg img{ object-position:50% 30%; }
  body.corp .subhero::after{
    background:
      linear-gradient(180deg, rgba(10,20,38,.3) 0%, rgba(10,20,38,.16) 24%, rgba(10,20,38,.62) 50%, rgba(10,20,38,.92) 74%, rgba(10,20,38,.97) 100%),
      radial-gradient(130% 100% at 50% 30%, transparent 45%, rgba(7,14,27,.55) 100%);
  }
  body.corp .subhero h1{ max-width:24ch; }
  body.corp .subhero .sub{ max-width:60ch; }
}

/* ---------- Formatos en tarjetas con foto ---------- */
body.corp .formats-head{ max-width:780px; }
body.corp .formats-head .lead{ margin-top:16px; }
body.corp .fmt-grid{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(16px,2vw,24px); margin-top:clamp(30px,4vw,48px); }
body.corp .fmt{
  position:relative; display:flex; flex-direction:column; min-width:0; overflow:hidden; border-radius:var(--radius);
  background:linear-gradient(172deg, rgba(255,255,255,.065), rgba(255,255,255,.015));
  border:1px solid rgba(255,255,255,.11);
  box-shadow:0 22px 34px -22px rgba(0,0,0,.72), inset 0 1px 0 rgba(255,255,255,.06);
  transition:border-color .3s ease;
}
body.corp .fmt:hover{ border-color:rgba(212,176,106,.55); }
body.corp .fmt-media{ position:relative; aspect-ratio:4/3; overflow:hidden; background:#0B172D; }
body.corp .fmt-media::after{ content:""; position:absolute; left:0; right:0; bottom:0; height:40%; pointer-events:none; background:linear-gradient(transparent, rgba(10,20,38,.5)); }
body.corp .fmt-media img{ width:100%; height:100%; object-fit:cover; }
body.corp .fmt:nth-child(1) .fmt-media img{ object-position:50% 32%; }
body.corp .fmt:nth-child(2) .fmt-media img{ object-position:28% 50%; }
body.corp .fmt-body{ display:flex; flex-direction:column; flex:1; padding:22px 22px 24px; }
body.corp .fmt h3{ font-size:1.42rem; }
body.corp .fmt-body > p{ margin-top:10px; color:var(--ink-soft); font-size:1rem; line-height:1.6; }
body.corp .fmt-specs{ margin-top:auto; padding-top:20px; }
body.corp .fmt-specs div{ display:flex; justify-content:space-between; align-items:baseline; gap:14px; padding:10px 0 0; margin-top:10px; border-top:1px solid rgba(255,255,255,.1); }
body.corp .fmt-specs div:first-child{ margin-top:0; border-top-color:rgba(212,176,106,.5); }
body.corp .fmt-specs dt{ flex:none; color:var(--gold); font-size:.74rem; font-weight:650; font-stretch:90%; letter-spacing:.14em; text-transform:uppercase; }
body.corp .fmt-specs dd{ color:var(--ink); font-weight:600; text-align:right; font-variant-numeric:tabular-nums; }

/* El formato magno: la tarjeta insignia, a todo el ancho */
body.corp .fmt--flag{
  grid-column:1 / -1; display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);
  background:linear-gradient(155deg,#17305A 0%,#0F2140 52%,#0B172D 100%);
  border-color:rgba(212,176,106,.42);
}
body.corp .fmt--flag .fmt-media{ aspect-ratio:auto; min-height:clamp(380px,40vw,520px); background:#000; }
body.corp .fmt--flag .fmt-media img{ object-position:50% 34%; }
body.corp .fmt--flag .fmt-media::after{ left:auto; top:0; width:34%; height:auto; background:linear-gradient(90deg, transparent, rgba(16,36,70,.92)); }
body.corp .fmt--flag .fmt-body{ justify-content:center; padding:clamp(28px,4vw,56px); }
body.corp .fmt--flag h3{ font-size:clamp(1.8rem,3.2vw,2.6rem); font-stretch:84%; }
body.corp .fmt--flag .fmt-body > p{ margin-top:14px; font-size:1.06rem; max-width:50ch; }
body.corp .fmt--flag .fmt-specs{ margin-top:26px; padding-top:0; max-width:440px; }
/* Nota de cotización: solo texto, centrado debajo de los formatos */
body.corp .formats-note{ max-width:60ch; margin:clamp(28px,3.6vw,44px) auto 0; text-align:center; color:var(--ink-soft); font-size:clamp(1.02rem,1.4vw,1.14rem); line-height:1.6; }
body.corp .formats-note b{ color:var(--ink); font-weight:650; }

@media (max-width:980px){
  body.corp .fmt-grid{ grid-template-columns:1fr; }
  body.corp .fmt{ display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); }
  body.corp .fmt-media{ aspect-ratio:auto; min-height:250px; }
  body.corp .fmt--flag .fmt-media{ min-height:0; }
}
@media (max-width:600px){
  body.corp .fmt, body.corp .fmt--flag{ display:flex; flex-direction:column; }
  body.corp .fmt-media{ aspect-ratio:4/3; min-height:0; }
  body.corp .fmt--flag .fmt-media{ aspect-ratio:1/1; }
  body.corp .fmt--flag .fmt-media::after{ left:0; top:auto; width:auto; height:40%; background:linear-gradient(transparent, rgba(16,36,70,.85)); }
  body.corp .fmt-body{ padding:20px 20px 22px; }
  body.corp .fmt--flag .fmt-body{ padding:24px 20px 26px; }
}

/* ---------- Producción teatral, a lo grande ---------- */
/* overflow:clip recorta sin crear un contenedor de scroll; con hidden, la línea de tiempo del telón se mediría dentro de la sección */
body.corp .stage{ text-align:center; overflow:clip; padding-top:clamp(40px,6vw,80px); }
/* Fondo de escenario casi negro detrás de la foto, que se funde con el azul arriba y abajo */
body.corp .stage::before{
  content:""; position:absolute; inset:0; z-index:-1; pointer-events:none;
  background:
    radial-gradient(ellipse 62% 46% at 50% 64%, rgba(2,4,9,.96) 0%, rgba(2,4,9,.82) 55%, transparent 100%),
    linear-gradient(180deg, transparent 0%, rgba(3,6,12,.72) 34%, rgba(3,6,12,.8) 76%, transparent 100%);
}
body.corp .stage-head{ max-width:860px; }
body.corp .stage-head h2{ font-size:clamp(2.4rem,6vw,4.6rem); }
body.corp .stage-head .lead{ margin:20px auto 0; max-width:60ch; text-align:center; }
body.corp .stage-photo{
  position:relative; overflow:clip; width:min(100%, 1280px, 118vh); margin:clamp(22px,4vw,40px) auto 0;
  view-timeline:--telon block;
  /* Bordes difuminados: el negro de la foto se funde con el fondo sin dejar un rectángulo */
  -webkit-mask-image:linear-gradient(90deg, transparent 0%, #000 11%, #000 89%, transparent 100%), linear-gradient(180deg, transparent 0%, #000 9%, #000 88%, transparent 100%);
  -webkit-mask-composite:source-in;
          mask-image:linear-gradient(90deg, transparent 0%, #000 11%, #000 89%, transparent 100%), linear-gradient(180deg, transparent 0%, #000 9%, #000 88%, transparent 100%);
          mask-composite:intersect;
}
body.corp .stage-photo img{ width:100%; height:auto; }
body.corp .stage-photo figcaption{
  position:absolute; left:50%; bottom:6%; transform:translateX(-50%); z-index:1; white-space:nowrap;
  color:var(--gold); font-size:.76rem; font-weight:650; font-stretch:90%; letter-spacing:.22em; text-transform:uppercase;
}
/* Telón: dos hojas que se abren desde el centro. Solo existen cuando hay movimiento. */
body.corp .stage-photo::before, body.corp .stage-photo::after{
  content:""; position:absolute; top:0; bottom:0; z-index:2; width:50.5%; display:none; pointer-events:none;
  background:linear-gradient(90deg, #050A14, #0C1830);
}
body.corp .stage-photo::before{ left:0; box-shadow:inset -1px 0 0 rgba(212,176,106,.8), 18px 0 40px -10px rgba(0,0,0,.6); }
body.corp .stage-photo::after{ right:0; background:linear-gradient(270deg, #050A14, #0C1830); box-shadow:inset 1px 0 0 rgba(212,176,106,.8), -18px 0 40px -10px rgba(0,0,0,.6); }
body.corp .stage-foot{ margin-top:clamp(6px,2vw,18px); }

/* ---------- Efectos de scroll ---------- */
/* Barra de avance dorada; solo donde el navegador anima con el scroll */
body.corp .scroll-progress{
  position:fixed; top:0; left:0; right:0; z-index:80; height:2px; pointer-events:none;
  transform:scaleX(0); transform-origin:0 50%;
  background:linear-gradient(90deg, var(--gold-deep), var(--gold) 70%, #EFD9A6);
}

/* Aparición escalonada y tarjetas que se descubren como un telón que sube */
.js body.corp .reveal.in{ transition-delay:var(--d,0s); }
.js body.corp .fmt.reveal.in{ transition:opacity .7s var(--e-out) var(--d,0s), transform .8s var(--e-out) var(--d,0s), border-color .3s ease; }
.js body.corp .fmt.reveal .fmt-media img{ clip-path:inset(36% 0 0 0); transform:scale(1.12); }
.js body.corp .fmt.reveal.in .fmt-media img{ clip-path:inset(0 0 0 0); transform:none;
  transition:clip-path 1.1s var(--e-out) calc(var(--d,0s) + .12s), transform 1.4s var(--e-out) calc(var(--d,0s) + .12s); }
body.corp .fmt:hover .fmt-media img,
.js body.corp .fmt.reveal.in:hover .fmt-media img{ transform:scale(1.045); transition:transform .7s var(--e-out); }

@supports (animation-timeline: view()){
  @media (prefers-reduced-motion:no-preference){
    body.corp .scroll-progress{ animation:corpProgress linear both; animation-timeline:scroll(root block); }

    /* Portada: la foto baja más lento que la página */
    body.corp .subhero .bg img{ animation:corpHeroDrift linear both; animation-timeline:--hero; animation-range:exit 0% exit 100%; }

    /* Producción teatral: el telón se abre mientras la foto sube a pantalla */
    body.corp .stage-photo::before, body.corp .stage-photo::after{ display:block; animation:corpTelonL linear both; animation-timeline:--telon; animation-range:entry 20% cover 48%; }
    body.corp .stage-photo::after{ animation-name:corpTelonR; }
    body.corp .stage-photo img{ animation:corpTelonZoom linear both; animation-timeline:--telon; animation-range:entry 0% cover 55%; }
  }
}
@supports (animation-timeline: view()){
  /* En escritorio la portada cabe en pantalla y su texto se retira al salir; en móvil no, para no apagar los botones mientras se leen */
  @media (prefers-reduced-motion:no-preference) and (min-width:900px){
    body.corp .subhero .wrap{ animation:corpHeroText linear both; animation-timeline:--hero; animation-range:exit 30% exit 90%; }
  }
}
@supports not (animation-timeline: view()){
  /* Respaldo: el telón se abre una vez al aparecer */
  .js body.corp .stage-photo::before, .js body.corp .stage-photo::after{ display:block; transition:transform 1.6s cubic-bezier(.7,0,.2,1) .2s; }
  .js body.corp .stage-photo img{ transform:scale(1.1); transition:transform 2.2s var(--e-out) .2s; }
  .js body.corp .stage-photo.in::before{ transform:translateX(-101%); }
  .js body.corp .stage-photo.in::after{ transform:translateX(101%); }
  .js body.corp .stage-photo.in img{ transform:none; }
}
@keyframes corpProgress{ to{ transform:scaleX(1); } }
@keyframes corpHeroDrift{ to{ transform:translate3d(0,14%,0) scale(1.07); } }
@keyframes corpHeroText{ to{ opacity:0; transform:translate3d(0,-44px,0); } }
@keyframes corpTelonL{ from{ transform:translateX(0); } to{ transform:translateX(-101%); } }
@keyframes corpTelonR{ from{ transform:translateX(0); } to{ transform:translateX(101%); } }
@keyframes corpTelonZoom{ from{ transform:scale(1.14); } to{ transform:none; } }

@media (prefers-reduced-motion:reduce){
  body.corp .stage-photo::before, body.corp .stage-photo::after{ display:none; }
}
@media print{
  .js .reveal, .js body.corp .fmt.reveal .fmt-media img{ opacity:1 !important; transform:none !important; clip-path:none !important; }
  body.corp .stage-photo::before, body.corp .stage-photo::after, body.corp .scroll-progress{ display:none !important; }
}

/* ============================================================
   Versión 4 (18-sep-2026, noche)
   Nota de cotización como texto, garantías sin tarjeta que se revelan al bajar
   y botón de WhatsApp más chico en móvil.
   ============================================================ */

/* Garantías: cada punto aparece al bajar y su rombo gira hasta su lugar */
@supports (animation-timeline: view()){
  @media (prefers-reduced-motion:no-preference){
    body.corp .seal{ view-timeline:--seal block; animation:corpSealIn linear both; animation-timeline:--seal; animation-range:cover 0% cover 26%; }
    body.corp .seal::before{ animation:corpSealGem linear both; animation-timeline:--seal; animation-range:cover 4% cover 24%; }
  }
  /* En escritorio los tres van en fila: se revelan uno tras otro conforme se baja */
  @media (prefers-reduced-motion:no-preference) and (min-width:921px){
    body.corp .seal:nth-child(2){ animation-range:cover 8% cover 32%; }
    body.corp .seal:nth-child(2)::before{ animation-range:cover 12% cover 30%; }
    body.corp .seal:nth-child(3){ animation-range:cover 16% cover 38%; }
    body.corp .seal:nth-child(3)::before{ animation-range:cover 20% cover 36%; }
  }
}
@supports not (animation-timeline: view()){
  .js body.corp .seal.reveal::before{ transform:rotate(-135deg) scale(0); }
  .js body.corp .seal.reveal.in::before{ transform:rotate(45deg) scale(1); transition:transform .9s var(--e-out) calc(var(--d,0s) + .15s); }
}
@keyframes corpSealIn{ from{ opacity:0; transform:translate3d(0,44px,0); } to{ opacity:1; transform:none; } }
@keyframes corpSealGem{ from{ opacity:0; transform:rotate(-135deg) scale(0); } to{ opacity:1; transform:rotate(45deg) scale(1); } }

/* Botón de WhatsApp de la tarjeta "Escríbenos directo": tamaño normal en móvil */
@media (max-width:600px){
  body.corp .contact-card.wa .btn{ padding:12px 20px; font-size:.98rem; box-shadow:0 10px 22px -12px rgba(52,199,120,.6); }
  body.corp .contact-card.wa .btn .wa-ico{ width:18px; height:18px; }
}

/* ============================================================
   Versión 5 (18-sep-2026, noche): todo el texto centrado
   ============================================================ */

/* Portada */
body.corp .subhero .wrap{ text-align:center; }
body.corp .subhero h1, body.corp .subhero .sub{ margin-inline:auto; }
body.corp .subhero .sub-cta{ justify-content:center; }

/* Introducción y encabezado de formatos */
body.corp .prose{ text-align:center; }
body.corp .prose p{ max-width:64ch; margin-inline:auto; }
body.corp .formats-head{ margin-inline:auto; text-align:center; }
body.corp .formats-head .lead{ margin-inline:auto; }

/* Tarjetas de formato: texto y ficha centrados */
body.corp .fmt-body{ text-align:center; }
body.corp .fmt--flag .fmt-body > p, body.corp .fmt--flag .fmt-specs{ margin-inline:auto; }
body.corp .fmt--flag .fmt-specs{ width:min(100%,420px); }
body.corp .fmt-specs div{ justify-content:center; flex-wrap:wrap; column-gap:10px; row-gap:2px; }
body.corp .fmt-specs dd{ text-align:center; }

/* Posadas: una sola columna centrada; las ocasiones en una rejilla de dos */
body.corp .season-card{ grid-template-columns:1fr; justify-items:center; gap:0; text-align:center; }
body.corp .season-card .lead{ margin:16px auto 28px; }
body.corp .season-list{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); width:min(100%,680px); }
body.corp .season-list li{ flex-direction:column; align-items:center; justify-content:center; gap:4px; padding:16px 12px; text-align:center; }
body.corp .season-list li:nth-child(odd){ border-right:1px solid rgba(255,255,255,.1); }
body.corp .season-list b{ text-align:center; }
body.corp .season-card .btn{ margin-top:30px; }
@media (max-width:540px){
  body.corp .season-list{ grid-template-columns:1fr; }
  body.corp .season-list li{ padding:13px 0; }
  body.corp .season-list li:nth-child(odd){ border-right:none; }
  body.corp .season-card .btn{ width:100%; padding-inline:20px; }
}

/* Pies de foto de la franja */
body.corp .marquee figcaption{ text-align:center; }

/* Preguntas: pregunta y respuesta centradas; el signo sigue a la derecha */
body.corp .faq-q{ text-align:center; padding-left:46px; padding-right:46px; }
body.corp .faq-a > p{ text-align:center; margin-inline:auto; }

/* Contacto */
body.corp .contact-card{ text-align:center; }
body.corp .field label{ text-align:center; }
body.corp .field input, body.corp .field select{ text-align:center; text-align-last:center; }
/* Tipo de evento y fecha, uno debajo del otro: así el tipo de evento no se corta */
body.corp .contact-card .form-row{ grid-template-columns:1fr; gap:0; }

/* Pie de página */
body.corp .foot-grid{ justify-content:center; column-gap:clamp(34px,6vw,90px); text-align:center; }
body.corp .foot-col .brand{ align-items:center; }
body.corp .foot-col p{ margin-inline:auto; }
@media (max-width:540px){
  /* En móvil cada columna del pie va completa, para que los teléfonos no se partan */
  body.corp .foot-grid{ row-gap:26px; }
  body.corp .foot-col{ flex:1 1 100%; }
}
