/* ══════════════════════════════════════════════════════════
   ALMA & TOMÁS · 05.12.2026
   Paleta y tipografía tomadas de la invitación original.
   ══════════════════════════════════════════════════════════ */

@font-face{
  font-family:"Astoria";
  src:url("assets/fonts/astoria.woff2") format("woff2");
  font-weight:400; font-style:normal; font-display:swap;
  /* el subset sólo contiene mayúsculas y vocales acentuadas */
  unicode-range:U+0020,U+0041-005A,U+00C1,U+00D3,U+00DA;
}
@font-face{
  font-family:"Open Sans";
  src:url("assets/fonts/opensans.woff2") format("woff2");
  font-weight:300 700; font-style:normal; font-display:swap;
}

:root{
  --navy-950:#0a0c22;
  --navy-900:#12152F;
  --navy-800:#171B49;
  --navy-700:#1E2352;
  --navy-600:#2A3070;
  --bone:#F2EFE7;
  --white:#ffffff;
  --red:#A60D0D;
  --red-deep:#780303;
  --red-glow:#d4241f;

  --ink:rgba(242,239,231,.92);
  --ink-soft:rgba(242,239,231,.66);
  --ink-faint:rgba(242,239,231,.34);
  --rule:rgba(242,239,231,.16);

  --gut:clamp(1.25rem,5vw,4.5rem);
  --max:1360px;
  --ease:cubic-bezier(.22,.61,.36,1);
  --ease-out:cubic-bezier(.16,1,.3,1);
}

*,*::before,*::after{box-sizing:border-box}
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth }
@media (prefers-reduced-motion:reduce){ html{scroll-behavior:auto} }

body{
  margin:0;
  background:var(--navy-900);
  color:var(--ink);
  font-family:"Open Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
  font-weight:300;
  font-size:clamp(15px,.55vw + 13.4px,18px);
  line-height:1.62;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
body.is-locked{ overflow:hidden; height:100svh }

img{max-width:100%;display:block;height:auto}
a{color:inherit}
::selection{background:var(--red);color:#fff}

.astoria{
  font-family:"Astoria","Open Sans",serif;
  font-weight:400;
  letter-spacing:.005em;
  line-height:.92;
  text-transform:uppercase;
}

/* ── canvas ───────────────────────────────────────────── */
#gl{
  position:fixed; inset:0; width:100%; height:100%;
  z-index:0; display:block; pointer-events:none;
  background:
    radial-gradient(120% 90% at 22% 8%, #1E2352 0%, #141833 42%, #0d1027 100%);
}
#vignette{
  position:fixed; inset:0; z-index:1; pointer-events:none;
  /* negro neutro: oscurece sin virar las fotos */
  background:
    radial-gradient(130% 100% at 50% 45%, transparent 42%, rgba(5,5,9,.5) 100%);
  mix-blend-mode:multiply;
}
/* grano sobre toda la pieza, como el papel de la invitación original */
#vignette::after{
  content:""; position:absolute; inset:0;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.42'/%3E%3C/svg%3E");
  opacity:.13; mix-blend-mode:overlay;
}
body:not(.gl) #vignette::after{opacity:.18}

main{
  position:relative; z-index:2;
  opacity:1; transition:opacity 1.1s var(--ease) .15s;
}
/* mientras el sobre está cerrado, la invitación todavía no existe */
body.is-locked main{opacity:0;pointer-events:none}

/* ── loader ───────────────────────────────────────────── */
#loader{
  position:fixed; inset:0; z-index:90;
  display:grid; place-content:center; gap:2rem; justify-items:center;
  background:var(--navy-900);
  transition:opacity .7s var(--ease), visibility .7s;
}
#loader.done{opacity:0;visibility:hidden}
.loader-mark{
  font-family:"Astoria","Open Sans",serif; font-size:clamp(2.6rem,9vw,4.4rem);
  color:var(--bone); display:flex; align-items:center; gap:.24em;
  letter-spacing:.02em;
}
.loader-mark i{font-style:normal;color:var(--red-glow);font-size:.55em;transform:translateY(-.1em)}
.loader-mark span{opacity:0;animation:fadeUp .9s var(--ease-out) forwards}
.loader-mark span:nth-child(3){animation-delay:.18s}
.loader-bar{width:min(180px,42vw);height:1px;background:rgba(242,239,231,.16);overflow:hidden}
.loader-fill{height:100%;width:0;background:var(--bone);transition:width .4s var(--ease)}
@keyframes fadeUp{from{opacity:0;transform:translateY(.32em)}to{opacity:1;transform:none}}

/* ── el sobre ─────────────────────────────────────────── */
#sobre{
  position:fixed; inset:0; z-index:60;
  display:grid; align-items:end; justify-items:center;
  padding:0 var(--gut) clamp(2rem,7vh,4.5rem);
  transition:opacity .9s var(--ease), visibility .9s;
}
#sobre::before{
  content:""; position:absolute; left:50%; top:42%;
  width:min(56vw,560px); height:min(12vw,120px);
  transform:translate(-50%,-50%);
  border-radius:50%;
  background:radial-gradient(ellipse,rgba(2,3,15,.58),transparent 70%);
  filter:blur(18px); pointer-events:none;
}
#sobre[hidden]{display:none}
#sobre.gone{opacity:0;visibility:hidden;pointer-events:none}
.sobre-copy{text-align:center;max-width:36rem;pointer-events:auto}
.sobre-kicker{
  margin:0 0 .9rem; font-size:.72rem; letter-spacing:.36em; text-transform:uppercase;
  color:var(--ink-soft);
}
.sobre-title{
  margin:0 0 1.8rem; font-size:clamp(2.1rem,8.2vw,4.2rem); color:var(--bone);
  text-shadow:0 2px 40px rgba(10,12,34,.9);
}
.sobre-title em{font-style:normal;color:var(--red-glow);font-size:.72em;padding:0 .12em}
.sobre-hint{
  margin:1.1rem 0 0; font-size:.74rem; letter-spacing:.24em; text-transform:uppercase;
  color:var(--ink-faint); animation:pulse 3.2s ease-in-out infinite;
}
@keyframes pulse{0%,100%{opacity:.45}50%{opacity:.95}}

/* ── botones ──────────────────────────────────────────── */
.btn{
  --bg:transparent; --bd:rgba(242,239,231,.4); --fg:var(--bone);
  position:relative; display:inline-flex; align-items:center; justify-content:center;
  gap:.6em; padding:.92em 1.7em; min-height:48px;
  border:1px solid var(--bd); background:var(--bg); color:var(--fg);
  font:inherit; font-size:.82rem; font-weight:400;
  letter-spacing:.16em; text-transform:uppercase; text-decoration:none;
  border-radius:2px; cursor:pointer; overflow:hidden;
  transition:color .45s var(--ease), border-color .45s var(--ease), transform .3s var(--ease);
  -webkit-tap-highlight-color:transparent;
}
.btn::before{
  content:""; position:absolute; inset:0; background:var(--bone);
  transform:scaleX(0); transform-origin:right; transition:transform .5s var(--ease-out);
}
.btn span{position:relative;z-index:1}
.btn:hover{border-color:var(--bone)}
.btn:hover::before{transform:scaleX(1);transform-origin:left}
.btn:hover{color:var(--navy-900)}
.btn:active{transform:scale(.98)}
.btn:focus-visible{outline:2px solid var(--red-glow);outline-offset:3px}
.btn-primary{--bd:rgba(214,36,31,.75)}
.btn-primary::before{background:var(--red)}
.btn-primary:hover{color:#fff;border-color:var(--red)}
.btn-ghost{font-size:.74rem;padding:.78em 1.3em;min-height:42px}
.btn-row{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.9rem}
.btn-row.center{justify-content:center}

/* ── índice ───────────────────────────────────────────── */
#nav-toggle{
  position:fixed; top:clamp(.9rem,2.4vw,1.7rem); right:clamp(.9rem,2.4vw,1.7rem);
  z-index:70; width:46px; height:46px; display:none; place-content:center; gap:6px;
  background:rgba(18,21,47,.6); backdrop-filter:blur(14px);
  border:1px solid var(--rule); border-radius:50%; cursor:pointer;
  transition:opacity .5s var(--ease);
}
body.entered #nav-toggle{display:grid}
#nav-toggle span{
  display:block; width:16px; height:1px; background:var(--bone);
  transition:transform .4s var(--ease), opacity .3s;
}
#nav-toggle[aria-expanded="true"] span:first-child{transform:translateY(3.5px) rotate(45deg)}
#nav-toggle[aria-expanded="true"] span:last-child{transform:translateY(-3.5px) rotate(-45deg)}
#nav{
  position:fixed; inset:0; z-index:69;
  display:grid; place-content:center;
  background:rgba(10,12,34,.9); backdrop-filter:blur(22px);
  animation:navIn .5s var(--ease-out);
}
#nav[hidden]{display:none}
@keyframes navIn{from{opacity:0}to{opacity:1}}
#nav ol{list-style:none;margin:0;padding:0;text-align:center;counter-reset:n}
#nav li{counter-increment:n;opacity:0;animation:fadeUp .5s var(--ease-out) forwards}
#nav li:nth-child(2){animation-delay:.03s} #nav li:nth-child(3){animation-delay:.06s}
#nav li:nth-child(4){animation-delay:.09s} #nav li:nth-child(5){animation-delay:.12s}
#nav li:nth-child(6){animation-delay:.15s} #nav li:nth-child(7){animation-delay:.18s}
#nav li:nth-child(8){animation-delay:.21s} #nav li:nth-child(9){animation-delay:.24s}
#nav li:nth-child(10){animation-delay:.27s} #nav li:nth-child(11){animation-delay:.30s}
#nav a{
  display:block; padding:.42em 1.2em; text-decoration:none;
  font-size:clamp(1.15rem,4.4vw,1.7rem); font-weight:300;
  color:var(--ink-soft); transition:color .3s var(--ease), letter-spacing .4s var(--ease);
}
#nav a::before{
  content:"0" counter(n); margin-right:.9em; font-size:.44em; letter-spacing:.2em;
  color:var(--ink-faint); vertical-align:middle;
}
#nav a:hover,#nav a:focus-visible{color:var(--bone);letter-spacing:.03em}

#progress{
  position:fixed; left:0; top:0; height:2px; width:100%; z-index:68;
  background:transparent; opacity:0; transition:opacity .5s;
}
body.entered #progress{opacity:1}
#progress i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--red),var(--red-glow))}

/* ── layout de actos ──────────────────────────────────── */
.act{
  position:relative;
  padding:clamp(5rem,14vh,9rem) 0;
  scroll-margin-top:clamp(1rem,4vh,3rem);
}
.wrap{
  width:min(var(--max),100% - var(--gut)*2); margin-inline:auto;
}
.wrap.narrow{width:min(760px,100% - var(--gut)*2)}
.act-split .wrap{
  display:grid; gap:clamp(2.2rem,5vw,5rem); align-items:center;
  grid-template-columns:minmax(0,.86fr) minmax(0,1fr);
}
.act-split.reverse .wrap{grid-template-columns:minmax(0,1fr) minmax(0,.86fr)}
.col{min-width:0}

@media (max-width:820px){
  .act-split .wrap,.act-split.reverse .wrap{grid-template-columns:1fr}
  .act-split .photo{order:-1;width:min(78%,340px);margin-inline:auto}
  .act-split.reverse .col{order:1}
}

/* ── tipografía de secciones ──────────────────────────── */
.h-xl{
  margin:0 0 clamp(1.1rem,2.4vw,1.9rem);
  font-size:clamp(2.5rem,7.6vw,5.4rem);
  color:var(--bone);
  line-height:1.08;
  padding:.12em .03em .16em;
  overflow:visible;
}
.h-xl.center{text-align:center}
.h-xl span{display:inline-block;font-size:.62em;opacity:.72;padding:0 .1em}
.lead{
  margin:0 0 1.6rem; max-width:34ch;
  font-size:clamp(1.02rem,1.5vw,1.22rem); line-height:1.66; color:var(--ink);
}
.lead b{font-weight:600;color:var(--white)}
.center .lead{margin-inline:auto}

.date-big{margin:0 0 1.6rem;display:flex;flex-direction:column;line-height:1.15}
.date-big span{font-size:.82rem;letter-spacing:.3em;text-transform:uppercase;color:var(--ink-soft)}
/* el subset de Astoria no trae números: los años y horarios van en Open Sans */
.date-big b{font-weight:300;font-size:clamp(2.1rem,4.6vw,2.9rem);color:var(--bone);letter-spacing:.06em;font-variant-numeric:tabular-nums}

.facts{margin:0 0 .4rem;display:grid;gap:.9rem}
.facts div{display:grid;gap:.15rem;padding-left:1rem;border-left:1px solid var(--rule)}
.facts dt{font-size:.68rem;letter-spacing:.28em;text-transform:uppercase;color:var(--ink-faint)}
.facts dd{margin:0;font-size:1.06rem;color:var(--ink)}

/* ── cuenta regresiva ─────────────────────────────────── */
.countdown{
  display:grid; grid-template-columns:repeat(4,minmax(0,1fr));
  gap:.5rem; max-width:22rem; margin:0 0 .4rem;
}
.countdown div{
  text-align:center; padding:.7rem .2rem;
  border:1px solid var(--rule); border-radius:2px;
  background:rgba(30,35,82,.28); backdrop-filter:blur(6px);
}
.countdown b{
  display:block; font-weight:300; font-size:clamp(1.25rem,3.6vw,1.75rem);
  font-variant-numeric:tabular-nums; color:var(--bone); line-height:1.1;
}
.countdown span{font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-faint)}

/* ── fotos (contenedores que WebGL rellena) ───────────── */
.photo{
  position:relative; margin:0; aspect-ratio:var(--ar,.75);
  overflow:hidden; border-radius:1px;
  box-shadow:0 30px 90px -30px rgba(4,6,20,.9);
}
.photo img{width:100%;height:100%;object-fit:cover;transition:opacity .8s var(--ease)}
body.gl .photo img,body.gl .hero-media img{opacity:0}
.photo::after{
  content:""; position:absolute; inset:0; pointer-events:none;
  box-shadow:inset 0 0 0 1px rgba(242,239,231,.14);
  transition:opacity .6s var(--ease);
}
/* con WebGL el marco lo dibuja el shader */
body.gl .photo{overflow:visible;box-shadow:0 40px 110px -40px rgba(4,6,20,.95)}
body.gl .photo::after{opacity:0}

/* ── portada ──────────────────────────────────────────── */
.act-portada{
  min-height:100svh; padding:0;
  display:grid; grid-template-rows:1fr auto; align-items:center;
}
.hero-media{position:absolute;inset:0;overflow:hidden}
.hero-media img{width:100%;height:100%;object-fit:cover}
.act-portada::after{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:
    radial-gradient(74% 48% at 50% 44%, rgba(6,6,10,.5) 0%, transparent 78%),
    linear-gradient(180deg,rgba(6,6,10,.48) 0%,rgba(6,6,10,.05) 26%,rgba(8,9,20,.12) 58%,rgba(10,12,34,.94) 100%);
}
.hero-type{
  position:relative; z-index:3; width:min(var(--max),100% - var(--gut)*2);
  margin-inline:auto; padding-top:clamp(3rem,10vh,6rem);
  isolation:isolate;
}
.hero-type::before{
  content:""; position:absolute; z-index:-1; pointer-events:none;
  inset:-10% -5% -12%;
  background:radial-gradient(ellipse at 47% 48%,rgba(5,7,22,.56),rgba(5,7,22,.22) 44%,transparent 72%);
  filter:blur(18px);
}
.hero-title{
  margin:0; color:var(--red);
  font-size:clamp(4.2rem,24vw,10.5rem);
  text-shadow:0 4px 34px rgba(10,12,34,.85), 0 6px 70px rgba(90,4,4,.55);
  display:grid;
}
@media (min-width:900px){ .hero-title{font-size:clamp(5rem,13.5vw,10.5rem)} }
.hero-title .l1{justify-self:start}
.hero-title .l2{justify-self:center;font-size:.44em;color:var(--red-glow);line-height:1.6}
.hero-title .l3{justify-self:end;text-align:right}
.hero-date{
  margin:clamp(1.2rem,3vh,2rem) 0 0; text-align:center;
  font-size:.8rem; letter-spacing:.52em; text-indent:.52em;
  text-transform:uppercase; color:rgba(242,239,231,.8);
  text-shadow:0 2px 24px rgba(10,12,34,.9);
}
.scroll-cue{
  position:relative; z-index:3; justify-self:center;
  display:grid; justify-items:center; gap:.7rem;
  padding-bottom:clamp(1.6rem,5vh,3rem); text-decoration:none;
}
.cue-line{
  width:1px; height:clamp(38px,7vh,64px);
  background:linear-gradient(180deg,transparent,rgba(242,239,231,.75));
  animation:cue 2.6s var(--ease) infinite;
  transform-origin:top;
}
@keyframes cue{0%{transform:scaleY(.2);opacity:0}45%{opacity:1}100%{transform:scaleY(1);opacity:0}}
.cue-txt{font-size:.62rem;letter-spacing:.3em;text-transform:uppercase;color:var(--ink-faint)}

/* ── itinerario ───────────────────────────────────────── */
.timeline{list-style:none;margin:0 0 2.2rem;padding:0;counter-reset:t}
.timeline li{
  counter-increment:t; position:relative;
  padding:.72rem 0 .72rem 3.4rem;
  border-bottom:1px solid rgba(242,239,231,.09);
  font-size:clamp(1rem,1.5vw,1.14rem);
}
.timeline li::before{
  content:"0" counter(t); position:absolute; left:0; top:.86rem;
  font-size:.68rem; letter-spacing:.16em; color:var(--red-glow);
}
.timeline li::after{
  content:""; position:absolute; left:1.75rem; top:0; bottom:0; width:1px;
  background:rgba(242,239,231,.13);
}
.timeline li:first-child::after{top:.9rem}
.timeline li:last-child{border-bottom:0}
.timeline li:last-child::after{bottom:calc(100% - 1.4rem)}
.notes{display:grid;gap:.9rem;padding-left:1rem;border-left:1px solid var(--rule)}
.notes p{margin:0;font-size:.95rem;color:var(--ink-soft);max-width:44ch}

/* ── menú ─────────────────────────────────────────────── */
.menu-grid{
  display:grid; gap:clamp(1.4rem,2.6vw,2.4rem);
  grid-template-columns:repeat(auto-fit,minmax(min(100%,270px),1fr));
  align-items:start;
  margin-top:clamp(1.8rem,4vw,3rem);
}
.menu-card{
  padding:clamp(1.3rem,2.4vw,1.9rem);
  border:1px solid var(--rule); border-radius:2px;
  background:linear-gradient(160deg,rgba(38,44,99,.34),rgba(18,21,47,.24));
  backdrop-filter:blur(10px);
}
.menu-card h3{
  margin:0 0 1rem; font-family:"Astoria","Open Sans",serif; font-weight:400;
  font-size:clamp(1.28rem,2.6vw,1.72rem); color:var(--bone);
  letter-spacing:.01em; line-height:1;
}
.menu-card ul{margin:0;padding:0;list-style:none;display:grid;gap:.52rem}
.menu-card li{position:relative;padding-left:1.05rem;font-size:.97rem;color:var(--ink)}
.menu-card li::before{
  content:""; position:absolute; left:0; top:.62em; width:5px; height:5px;
  background:var(--red-glow); transform:rotate(45deg);
}

/* ── barra ────────────────────────────────────────────── */
.barra-list{
  list-style:none; margin:clamp(1.8rem,4vw,3rem) 0 0; padding:0;
  display:block; columns:2; column-gap:3rem;
}
.barra-list li{
  break-inside:avoid; padding:.66rem 0;
  border-bottom:1px solid rgba(242,239,231,.09);
  font-size:1rem; text-align:left;
}
@media (max-width:560px){ .barra-list{columns:1} }

/* ── datos útiles ─────────────────────────────────────── */
.cards{
  display:grid; gap:clamp(1.1rem,2.2vw,1.8rem) 0;
  grid-template-columns:
    minmax(0,1fr) clamp(62px,7vw,96px)
    minmax(0,1fr) clamp(62px,7vw,96px)
    minmax(0,1fr);
  margin-top:clamp(1.8rem,4vw,3rem);
  align-items:stretch;
}
.card{
  position:relative; overflow:hidden;
  padding:clamp(1.4rem,2.6vw,2rem);
  border:1px solid var(--rule); border-radius:2px;
  background:linear-gradient(160deg,rgba(38,44,99,.34),rgba(18,21,47,.24));
  backdrop-filter:blur(10px);
}
.card-wide{grid-column:1/-1}
.swan-interstice{
  position:relative; z-index:2;
  width:clamp(70px,8vw,104px); aspect-ratio:1;
  margin:auto clamp(-52px,-4vw,-35px);
  justify-self:center; align-self:center;
  border-radius:50%; overflow:hidden;
  border:1px solid rgba(242,239,231,.44);
  background:var(--navy-900);
  box-shadow:0 18px 45px rgba(5,7,25,.55),0 0 0 5px rgba(18,21,47,.52);
  pointer-events:none;
}
.swan-interstice::after{
  content:"";position:absolute;inset:0;
  box-shadow:inset 0 0 24px rgba(10,12,34,.36);
}
.swan-interstice img{
  width:100%;height:100%;object-fit:cover;object-position:52% 42%;
  filter:saturate(.78) contrast(1.04) brightness(.94);
}
.swan-interstice-alt img{object-position:28% 42%;transform:scaleX(-1)}
@media(max-width:920px){
  .cards{grid-template-columns:1fr;gap:0}
  .cards .card{grid-column:1}
  .swan-interstice{
    grid-column:1;width:clamp(76px,20vw,102px);
    margin:clamp(-10px,-1vw,-4px) auto;
  }
  .cards .card-wide{margin-top:clamp(1.1rem,4vw,1.8rem)}
}
.card h3{
  margin:0 0 .8rem; font-size:.7rem; font-weight:600;
  letter-spacing:.28em; text-transform:uppercase; color:var(--ink-faint);
}
.card .big{
  margin:0 0 .3rem; font-weight:300;
  font-size:clamp(1.15rem,2.4vw,1.5rem); color:var(--bone); line-height:1.24;
  letter-spacing:.01em;
}
/* sólo donde no hay números podemos usar la display */
.card .big.astoria{
  font-family:"Astoria","Open Sans",serif; font-weight:400;
  font-size:clamp(1.5rem,3.4vw,2.2rem); line-height:1.02; letter-spacing:.01em;
}
.card .sub{margin:0;font-size:.95rem;color:var(--ink-soft);max-width:52ch}
.card .sub.warn{color:var(--red-glow);letter-spacing:.04em}
.venue-separator{
  margin:1rem 0 .7rem; font-size:.6rem; letter-spacing:.25em;
  text-transform:uppercase; color:var(--red-glow);
}
.card .big.venue-secondary{font-size:clamp(1rem,2vw,1.28rem)}
.card .btn-ghost{margin-top:1.1rem}
.phones{
  margin:1.4rem 0 0; display:flex; flex-wrap:wrap; gap:.4rem 1.6rem;
  font-size:.9rem;
}
.phones a{color:var(--ink-soft);text-decoration:none;border-bottom:1px solid var(--rule);padding-bottom:2px}
.phones a:hover{color:var(--bone)}

/* ── preguntas frecuentes ────────────────────────────── */
.faq-heading{text-align:center;margin-bottom:clamp(1.8rem,4vw,3rem)}
.faq-heading .h-xl{margin-bottom:1rem}
.faq-heading p{
  margin:0 auto;max-width:44ch;color:var(--ink-soft);
  font-size:clamp(.95rem,1.5vw,1.08rem);
}
.faq-swans{
  width:clamp(78px,10vw,112px);aspect-ratio:1;margin:0 auto 1rem;
  border-radius:50%;overflow:hidden;
  border:1px solid rgba(242,239,231,.36);
  box-shadow:0 14px 38px rgba(5,7,25,.42);
}
.faq-swans img{
  width:100%;height:100%;object-fit:cover;object-position:52% 42%;
  filter:saturate(.78) contrast(1.04) brightness(.94);
}
.faq-list{display:grid;gap:.72rem}
.faq-list details{
  border:1px solid var(--rule);border-radius:2px;
  background:linear-gradient(160deg,rgba(38,44,99,.30),rgba(18,21,47,.22));
  backdrop-filter:blur(10px);overflow:hidden;
  transition:border-color .35s var(--ease),background .35s var(--ease);
}
.faq-list details[open]{
  border-color:rgba(242,239,231,.30);
  background:linear-gradient(160deg,rgba(44,51,112,.40),rgba(18,21,47,.30));
}
.faq-list summary{
  position:relative;list-style:none;cursor:pointer;
  padding:1.15rem 3.4rem 1.15rem 1.25rem;
  color:var(--bone);font-size:clamp(.96rem,1.7vw,1.08rem);
  letter-spacing:.015em;
}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary::after{
  content:"+";position:absolute;right:1.25rem;top:50%;
  transform:translateY(-50%);color:var(--red-glow);
  font-size:1.35rem;font-weight:300;transition:transform .35s var(--ease);
}
.faq-list details[open] summary::after{transform:translateY(-50%) rotate(45deg)}
.faq-answer{padding:0 3.4rem 1.2rem 1.25rem}
.faq-answer p{margin:0;max-width:58ch;color:var(--ink-soft);font-size:.95rem}

/* ── luna de miel ─────────────────────────────────────── */
.bank{display:grid;gap:.7rem;margin-top:.4rem}
.bank-row{
  display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:.9rem;
  width:100%; padding:.95rem 1.1rem; min-height:56px;
  border:1px solid var(--rule); border-radius:2px;
  background:rgba(30,35,82,.28); color:inherit; font:inherit;
  cursor:pointer; text-align:left;
  transition:border-color .35s var(--ease), background .35s var(--ease);
  -webkit-tap-highlight-color:transparent;
}
.bank-row:hover{border-color:rgba(242,239,231,.4);background:rgba(38,44,99,.4)}
.bank-k{font-size:.62rem;letter-spacing:.24em;text-transform:uppercase;color:var(--ink-faint)}
.bank-v{
  font-size:clamp(.82rem,2.1vw,1rem); color:var(--bone);
  font-variant-numeric:tabular-nums; overflow-wrap:anywhere;
}
.bank-c{font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;color:var(--red-glow)}
.bank-row.copied .bank-c{color:var(--bone)}

/* ── cierre ───────────────────────────────────────────── */
.act-cierre{
  min-height:100svh; padding:0;
  display:grid; grid-template-rows:1fr auto; align-content:center;
}
.act-cierre::after{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:
    radial-gradient(58% 42% at 50% 42%, rgba(6,6,10,.66) 0%, transparent 72%),
    linear-gradient(180deg,rgba(6,6,10,.7) 0%,rgba(6,6,10,.3) 26%,rgba(9,10,26,.6) 70%,var(--navy-900) 100%);
}
.cierre-type{
  position:relative; z-index:3; text-align:center;
  width:min(var(--max),100% - var(--gut)*2); margin-inline:auto;
  align-self:center; padding-top:clamp(2rem,8vh,5rem);
  isolation:isolate;
}
.cierre-type::before{
  content:""; position:absolute; z-index:-1; pointer-events:none;
  inset:-20% 9% -18%;
  border-radius:50%;
  background:radial-gradient(ellipse,rgba(4,5,18,.72),rgba(4,5,18,.28) 48%,transparent 74%);
  filter:blur(20px);
}
.cierre-title{
  margin:0; color:var(--red-deep);
  font-size:clamp(2.9rem,12vw,8rem);
  text-shadow:0 2px 26px rgba(6,8,24,.95), 0 0 90px rgba(6,8,24,.8);
}
.cierre-sub{
  margin:clamp(1.4rem,4vh,2.4rem) auto 0; max-width:22ch;
  font-size:clamp(.98rem,2.9vw,1.6rem); color:var(--bone);
  letter-spacing:.02em; line-height:1.24;
  text-shadow:0 2px 30px rgba(6,8,24,.9);
}
.foot{
  position:relative; z-index:3; text-align:center;
  padding:clamp(2rem,6vh,3.5rem) var(--gut) clamp(1.6rem,4vh,2.4rem);
  display:grid; justify-items:center; gap:.9rem;
}
.foot .spk{width:22px;height:22px;fill:var(--bone);opacity:.6}
.foot p{margin:0;font-size:.72rem;letter-spacing:.24em;text-transform:uppercase;color:var(--ink-faint)}
.foot em{font-style:normal;color:var(--red-glow)}

/* ── destellos decorativos ────────────────────────────── */
.act-split .wrap::before,.act-wide .wrap::before{
  content:""; position:absolute; width:clamp(16px,3vw,30px); aspect-ratio:1;
  left:calc(var(--gut) * .18); top:clamp(1.5rem,5vh,3.5rem);
  background:var(--bone); opacity:.5;
  clip-path:polygon(50% 0,53% 47%,100% 50%,53% 53%,50% 100%,47% 53%,0 50%,47% 47%);
}
@media (max-width:820px){ .act-split .wrap::before,.act-wide .wrap::before{opacity:.28} }

/* ── revelado ─────────────────────────────────────────── */
[data-rise]{
  opacity:0; transform:translateY(1.6rem);
  transition:opacity .9s var(--ease-out), transform 1s var(--ease-out);
  transition-delay:var(--d,0ms);
}
[data-rise].in{opacity:1;transform:none}
.card[data-rise]{transform:translateY(2rem) perspective(700px) rotateX(3deg)}
.card[data-rise].in{transform:none}
.h-xl[data-rise]{transition:opacity .9s var(--ease-out),transform 1s var(--ease-out)}
@media (prefers-reduced-motion:reduce){
  [data-rise]{opacity:1;transform:none;transition:none}
  .cue-line,.sobre-hint{animation:none}
}

/* ── toast ────────────────────────────────────────────── */
#toast{
  position:fixed; left:50%; bottom:clamp(1.2rem,4vh,2.4rem); z-index:95;
  transform:translate(-50%,1.2rem); opacity:0; pointer-events:none;
  padding:.8em 1.4em; border:1px solid var(--rule); border-radius:2px;
  background:rgba(18,21,47,.92); backdrop-filter:blur(14px);
  font-size:.76rem; letter-spacing:.14em; text-transform:uppercase; color:var(--bone);
  transition:opacity .4s var(--ease), transform .4s var(--ease-out);
}

#toast.show{opacity:1;transform:translate(-50%,0)}

/* ── impresión ────────────────────────────────────────── */
@media print{
  #gl,#vignette,#loader,#sobre,#nav-toggle,#nav,#progress,.scroll-cue{display:none!important}
  body{background:#fff;color:#111}
  body.gl .photo img,body.gl .hero-media img{opacity:1}
  [data-rise]{opacity:1;transform:none}
}
