:root{
  --background: oklch(0.972 0.012 88);
  --foreground: oklch(0.34 0.02 60);
  --muted-foreground: oklch(0.5 0.03 150);
  --border: oklch(0.89 0.02 85);
  --gold: oklch(0.68 0.1 76);
  --gold-soft: oklch(0.9 0.06 90);
  --rose: oklch(0.68 0.14 20);
  --pine: oklch(0.42 0.09 158);
  --card: oklch(0.985 0.008 90);
}
html.modo-noche{
  --background:#050a14;
  --foreground:#d8e4ff;
  --muted-foreground:#8fa0c4;
  --border:#1c2740;
  --gold:#e2c589;
  --gold-soft:#7d6a44;
  --card:#0c1428;
}
*{ box-sizing:border-box; }
*, *::before, *::after{
  transition:background-color 1.1s ease, color 1.1s ease, border-color 1.1s ease, fill 1.1s ease, stroke 1.1s ease;
}
html{ scroll-behavior:smooth; }
body{
  margin:0;
  background:var(--background);
  color:var(--foreground);
  font-family:'Karla', system-ui, sans-serif;
  font-weight:400;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3{ margin:0; font-family:'Cormorant Garamond', Georgia, serif; font-weight:400; }
a{ color:inherit; text-decoration:none; }
img{ max-width:100%; display:block; }
.wrap{ max-width:1180px; margin:0 auto; padding:0 22px; }
.wrap-md{ max-width:760px; margin:0 auto; padding:0 22px; }
section{ position:relative; }
.center{ text-align:center; }
button{ font-family:inherit; cursor:pointer; }

.kicker{
  font-family:'Karla', sans-serif;
  font-size:.62rem;
  letter-spacing:.34em;
  text-transform:uppercase;
  color:var(--gold);
  font-weight:500;
}
.gold-rule{
  height:1px;
  background:linear-gradient(to right, transparent, var(--gold), transparent);
}
.hairline{ border-color: color-mix(in oklab, var(--gold) 35%, transparent); }

/* ============ REVEAL (scroll fade-in) ============ */
.reveal{
  opacity:0;
  transform:translateY(28px);
  transition:opacity .9s cubic-bezier(.16,1,.3,1), transform .9s cubic-bezier(.16,1,.3,1);
}
.reveal.visible{ opacity:1; transform:none; }
.reveal-left{ transform:translateX(-32px); }
.reveal-left.visible{ transform:none; }
.reveal-right{ transform:translateX(32px); }
.reveal-right.visible{ transform:none; }

@keyframes float-soft{ 0%,100%{ transform:translateY(0); } 50%{ transform:translateY(-10px); } }
@keyframes shimmer-gold{ 0%,100%{ opacity:.55; } 50%{ opacity:1; } }
@keyframes rise-in{ from{ opacity:0; transform:translateY(24px); } to{ opacity:1; transform:none; } }
.float-soft{ animation:float-soft 7s ease-in-out infinite; }
.shimmer-gold{ animation:shimmer-gold 3.4s ease-in-out infinite; }
.rise-in{ animation:rise-in 1s cubic-bezier(.16,1,.3,1) both; }

.hover-lift{ transition:transform .4s cubic-bezier(.16,1,.3,1), box-shadow .4s ease; }
.hover-lift:hover{ transform:translateY(-6px); box-shadow:0 26px 55px -24px color-mix(in oklab, var(--pine) 55%, transparent); }

.tile-zoom{ overflow:hidden; }
.tile-zoom img{ transition:transform 1.1s cubic-bezier(.16,1,.3,1); }
.tile-zoom:hover img{ transform:scale(1.06); }

.nav-link{
  position:relative;
  font-size:.68rem;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:color-mix(in oklab, var(--foreground) 78%, transparent);
  transition:color .3s ease;
}
.nav-link::after{
  content:"";
  position:absolute; left:0; bottom:-6px;
  height:1px; width:100%;
  background:var(--gold);
  transform:scaleX(0);
  transform-origin:right;
  transition:transform .4s cubic-bezier(.16,1,.3,1);
}
.nav-link:hover{ color:var(--gold); }
.nav-link:hover::after{ transform:scaleX(1); transform-origin:left; }

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

/* ============ NAV ============ */
.nav-principal{
  position:fixed; top:0; left:0; right:0; z-index:200;
  border-bottom:1px solid color-mix(in oklab, var(--gold) 25%, transparent);
  background:color-mix(in oklab, var(--background) 85%, transparent);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  opacity:0;
  transform:translateY(-8px);
  pointer-events:none;
  transition:opacity .5s ease, transform .5s ease;
}
.nav-principal.visible{ opacity:1; transform:none; pointer-events:auto; }
.nav-principal .wrap{
  display:grid;
  grid-template-columns:auto 1fr auto;
  align-items:center;
  gap:14px;
  padding:14px 18px;
}
.nav-hamburger{
  justify-self:start;
  background:none; border:none; padding:6px; margin:0;
  cursor:pointer;
  display:flex; flex-direction:column; gap:5px;
}
.nav-hamburger span{ display:block; width:20px; height:1px; background:var(--gold); transition:transform .3s ease, opacity .3s ease; }
.nav-hamburger.abierto span:nth-child(1){ transform:translateY(6px) rotate(45deg); }
.nav-hamburger.abierto span:nth-child(2){ opacity:0; }
.nav-hamburger.abierto span:nth-child(3){ transform:translateY(-6px) rotate(-45deg); }
.nav-logo{
  grid-column:2; justify-self:center;
  font-family:'Cormorant Garamond', serif; font-size:1.3rem; letter-spacing:.2em; color:var(--gold); flex-shrink:0;
}
.nav-logo span{ margin:0 4px; color:color-mix(in oklab, var(--foreground) 30%, transparent); }
.nav-links{ display:none; gap:22px; flex-wrap:wrap; align-items:baseline; }
.nav-links .nav-link{ display:inline-flex; align-items:baseline; gap:6px; }
.nav-cta{
  grid-column:3; justify-self:end;
  border:1px solid color-mix(in oklab, var(--gold) 60%, transparent);
  padding:9px 18px;
  font-size:.6rem;
  letter-spacing:.24em;
  text-transform:uppercase;
  color:var(--gold);
  transition:background-color .25s ease;
  flex-shrink:0;
}
.nav-cta:hover{ background:color-mix(in oklab, var(--gold) 10%, transparent); }
.nav-mobile-menu{
  max-height:0;
  overflow:hidden;
  border-top:0 solid transparent;
  transition:max-height .4s ease;
}
.nav-mobile-menu.abierto{
  max-height:min(70vh, 700px);
  overflow-y:auto;
  border-top:1px solid color-mix(in oklab, var(--gold) 22%, transparent);
}
.nav-mobile-menu .nav-link{
  display:block;
  padding:14px 22px;
  font-size:.72rem;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:color-mix(in oklab, var(--foreground) 82%, transparent);
  border-bottom:1px solid color-mix(in oklab, var(--gold) 12%, transparent);
}
@media (min-width:1024px){
  .nav-principal .wrap{ display:flex; gap:32px; padding:16px 22px; }
  .nav-hamburger{ display:none; }
  .nav-logo{ justify-self:auto; }
  .nav-links{ display:flex; }
  .nav-cta{ margin-left:auto; }
  .nav-mobile-menu{ display:none; }
}

/* ============ HERO / PORTADA ============ */
.hero{
  position:relative;
  height:100vh; height:100svh;
  overflow:hidden;
  border-bottom:1px solid color-mix(in oklab, var(--gold) 25%, transparent);
}
.hero-img{
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit:cover;
  transform-origin:center;
  will-change:transform, filter;
  transform:scale(1);
  filter:saturate(.82) contrast(.98);
  transition:transform 4.6s cubic-bezier(.16,1,.3,1), filter 3.6s ease 1s;
}
.hero.desplegado .hero-img{ transform:scale(1.1); filter:saturate(1.35) contrast(1.06) brightness(1.03); }
.hero-tint{
  position:absolute; inset:0;
  background:color-mix(in oklab, var(--background) 45%, transparent);
  transition:opacity 2.2s ease 3s;
}
.hero.desplegado .hero-tint{ opacity:.6; }
.hero-vignette{
  position:absolute; inset:0;
  background:radial-gradient(ellipse 62% 40% at 50% 48%, color-mix(in oklab, var(--background) 75%, transparent) 0%, color-mix(in oklab, var(--background) 30%, transparent) 55%, transparent 78%);
  pointer-events:none;
  transition:opacity 2.2s ease 3s;
}
.hero.desplegado .hero-vignette{ opacity:.5; }
@media (max-width:640px){
  .hero-vignette{
    background:radial-gradient(ellipse 78% 34% at 50% 46%, color-mix(in oklab, var(--background) 90%, transparent) 0%, color-mix(in oklab, var(--background) 48%, transparent) 52%, transparent 78%);
  }
}
.sun-rays{
  pointer-events:none;
  position:absolute; inset:0;
  background:
    linear-gradient(112deg, transparent 32%, color-mix(in oklab, var(--gold) 26%, transparent) 41%, transparent 48%),
    linear-gradient(98deg, transparent 55%, color-mix(in oklab, var(--gold) 18%, transparent) 63%, transparent 70%);
  mix-blend-mode:screen;
  animation:rays-drift 12s ease-in-out infinite;
}
@keyframes rays-drift{
  0%,100%{ opacity:.35; transform:translate3d(-2%,0,0); }
  50%{ opacity:.7; transform:translate3d(2%,1%,0); }
}
@keyframes spark-twinkle{
  0%,100%{ opacity:0; transform:scale(.4) rotate(0deg); }
  50%{ opacity:1; transform:scale(1.15) rotate(45deg); }
}
.spark{
  position:absolute;
  border-radius:9999px;
  background:radial-gradient(circle, color-mix(in oklab, var(--gold) 92%, white) 0%, color-mix(in oklab, var(--gold) 40%, transparent) 45%, transparent 70%);
  box-shadow:0 0 18px color-mix(in oklab, var(--gold) 60%, transparent);
  animation:spark-twinkle 5.5s ease-in-out infinite;
}
.hero-contenido{
  position:relative;
  height:100%;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  padding:0 24px;
  text-align:center;
}
.hero-letras{ margin-top:24px; display:flex; align-items:center; justify-content:center; }
.hero-letra{
  font-family:'Cormorant Garamond',serif; font-weight:300; text-transform:uppercase; line-height:1; color:var(--gold); font-size:4.4rem;
  transition:transform 1.9s cubic-bezier(.4,0,.2,1);
  will-change:transform;
  -webkit-transform:translateZ(0);
  transform:translateZ(0);
  text-shadow:0 2px 22px color-mix(in oklab, var(--background) 92%, transparent), 0 0 44px color-mix(in oklab, var(--background) 65%, transparent);
}
@media (min-width:640px){ .hero-letra{ font-size:7.5rem; } }
#heroAmp{
  margin:0 12px; font-family:'Cormorant Garamond',serif; font-weight:300; color:color-mix(in oklab, var(--gold) 70%, transparent); font-size:2.4rem;
  transition:opacity 1.8s ease;
  will-change:opacity;
  -webkit-transform:translateZ(0);
  transform:translateZ(0);
  text-shadow:0 2px 18px color-mix(in oklab, var(--background) 90%, transparent), 0 0 36px color-mix(in oklab, var(--background) 60%, transparent);
}
@media (min-width:640px){ #heroAmp{ font-size:3.6rem; margin:0 24px; } }
#heroNombresWrap{
  margin-top:16px; overflow:hidden;
  clip-path:inset(0 100% 0 0);
  opacity:0;
  transition:clip-path 3.2s cubic-bezier(.65,0,.35,1) .3s, opacity .7s ease .3s;
  will-change:clip-path, opacity;
  -webkit-transform:translateZ(0);
  transform:translateZ(0);
}
#heroNombres{
  white-space:nowrap;
  font-family:'Cormorant Garamond',serif; font-weight:300; text-transform:uppercase;
  letter-spacing:.24em; color:var(--gold);
  font-size:1.5rem;
  transition:color 1.5s ease 3.5s;
}
.hero.desplegado #heroNombres{ color:var(--foreground); }
@media (min-width:640px){ #heroNombres{ font-size:2.25rem; } }
#heroFecha{
  margin-top:24px; font-size:1.05rem; font-weight:500; letter-spacing:.28em; color:color-mix(in oklab, var(--foreground) 78%, transparent);
  opacity:0; transition:opacity 1.1s ease 4.2s;
  will-change:opacity;
}
.hero-rule-row{
  margin-top:40px; display:flex; align-items:center; gap:12px;
  opacity:0; animation:fadeUp 1.1s ease forwards .35s;
}
.hero-rule-row .gold-rule{ width:64px; }
.hero-rule-row span.estrella{ font-size:.75rem; color:var(--gold); }
.hero.desplegado #letraA{ transform:translateX(-42px); }
.hero.desplegado #letraH{ transform:translateX(42px); }
.hero.desplegado #heroAmp{ opacity:0; }
.hero.desplegado #heroNombresWrap{ clip-path:inset(0 0% 0 0); opacity:1; }
.hero.desplegado #heroFecha{ opacity:1; }
.hero-scroll-cue{
  position:absolute; bottom:26px; left:50%; transform:translateX(-50%);
  width:1px; height:40px;
  background:linear-gradient(var(--gold), transparent);
}

/* ============ DIVISOR DE COPAS ============ */
.divisor-copas{
  display:flex;
  justify-content:center;
  align-items:center;
  padding:34px 24px;
  background:var(--background);
  border-bottom:1px solid color-mix(in oklab, var(--gold) 25%, transparent);
}
.divisor-copas img{ width:118px; height:auto; opacity:.92; }
@media (min-width:640px){ .divisor-copas img{ width:150px; } }

/* ============ EDITORIAL ============ */
.editorial-section{ border-bottom:1px solid color-mix(in oklab, var(--gold) 25%, transparent); }
.editorial-grid{
  display:grid;
  grid-template-columns:3fr 2fr;
  align-items:stretch;
}
@media (max-width:480px){ .editorial-grid{ grid-template-columns:3fr 2fr; } }
.editorial-texto{ display:flex; flex-direction:column; justify-content:center; padding:36px 18px 36px 24px; }
@media (min-width:640px){ .editorial-texto{ padding:64px 32px 64px 56px; } }
.editorial-texto h2{ margin-top:0; font-size:1.5rem; font-weight:300; line-height:1.22; }
@media (min-width:480px){ .editorial-texto h2{ font-size:1.9rem; } }
@media (min-width:640px){ .editorial-texto h2{ font-size:2.6rem; } }
@media (min-width:1024px){ .editorial-texto h2{ font-size:3rem; } }
.editorial-texto p{ margin-top:16px; font-size:.8rem; line-height:1.7; color:var(--muted-foreground); }
@media (min-width:640px){ .editorial-texto p{ margin-top:26px; font-size:.92rem; line-height:1.9; max-width:480px; } }
@media (min-width:1024px){ .editorial-texto p{ font-size:.98rem; max-width:580px; } }
@media (min-width:1400px){ .editorial-texto p{ max-width:650px; } }
.editorial-texto p strong{ color:var(--foreground); font-weight:600; }
.editorial-texto .editorial-firma{
  font-family:'Cormorant Garamond', serif;
  font-style:italic;
  font-size:1.15rem;
  color:var(--gold);
  margin-top:22px;
}
@media (min-width:640px){ .editorial-texto .editorial-firma{ font-size:1.3rem; margin-top:26px; } }
.editorial-texto .hero-rule-row{ margin-top:18px; }
@media (min-width:640px){ .editorial-texto .hero-rule-row{ margin-top:30px; } }
.editorial-texto .gold-rule{ width:64px; }
@media (min-width:640px){ .editorial-texto .gold-rule{ width:100px; } }
.editorial-img{ position:relative; min-height:280px; overflow:hidden; }
@media (min-width:640px){ .editorial-img{ min-height:420px; } }
.editorial-img img{ position:absolute; inset:0; height:100%; width:100%; object-fit:cover; }

/* ============ CUENTA ATRAS (reloj astronómico) ============ */
:root{
  --bg-base: #faf8f5;
  --bg-overlay: radial-gradient(circle at 50% 50%, rgba(255, 235, 195, 0.45) 0%, rgba(250, 248, 245, 0) 70%);
  --monogram-color: #b39359;
  --text-main: #4a453f;
  --text-gold: #b39359;
  --number-color: #2b2825;
  --number-glow: transparent;
  --svg-line: rgba(179, 147, 89, 0.35);
  --svg-subtle: rgba(140, 130, 115, 0.15);
  --star-fill: #b39359;
  --star-glow: none;
  --disc-bg: transparent;
}
.countdown-section{
  position:relative;
  width:100%;
  min-height:100vh;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  padding:3rem 1.5rem;
  background:var(--bg-overlay), var(--bg-base);
  transition:background 1.5s ease;
  overflow:hidden;
  border-bottom:1px solid color-mix(in oklab, var(--gold) 25%, transparent);
}
.astronomical-clock-container{
  position:absolute;
  width:1000px; height:1000px;
  top:50%; left:50%;
  transform:translate(-50%,-50%);
  pointer-events:none;
  z-index:1;
}
.astronomical-clock-bg{ width:100%; height:100%; }
.svg-line{ stroke:var(--svg-line); transition:stroke 1.5s ease; }
.svg-subtle{ stroke:var(--svg-subtle); transition:stroke 1.5s ease; }
.svg-fill{ fill:var(--star-fill); transition:fill 1.5s ease; filter:var(--star-glow); }
.svg-disc{ fill:var(--disc-bg); transition:fill 1.5s ease; }
.star-real{
  animation:gentleSparkle 4s ease-in-out infinite alternate;
  transform-box:fill-box;
  transform-origin:center;
}
.star-real:nth-child(2n){ animation-duration:5.5s; animation-delay:.8s; }
.star-real:nth-child(3n){ animation-duration:3.8s; animation-delay:1.6s; }
.star-real:nth-child(5n){ animation-duration:4.2s; animation-delay:2.3s; }
@keyframes gentleSparkle{
  0%{ opacity:.45; transform:scale(.85); }
  50%{ opacity:1; transform:scale(1.15); }
  100%{ opacity:.55; transform:scale(.9); }
}
.countdown-content{ position:relative; z-index:5; text-align:center; max-width:900px; width:100%; }
.monogram{
  font-family:'Cinzel', serif;
  font-size:1.8rem;
  letter-spacing:.35em;
  color:var(--monogram-color) !important;
  margin-bottom:.4rem;
  font-weight:500;
  transition:color 1.5s ease;
}
.date-header{
  font-family:'Montserrat', sans-serif;
  font-size:.72rem;
  letter-spacing:.35em;
  text-transform:uppercase;
  color:var(--text-main);
  opacity:.85;
  margin-bottom:3.2rem;
  transition:color 1.5s ease;
}
.timer-grid{ display:flex; justify-content:center; align-items:center; gap:1.2rem; margin-bottom:3.2rem; }
.timer-block{ display:flex; flex-direction:column; align-items:center; min-width:80px; }
.number{
  font-family:'Syncopate', sans-serif;
  font-size:4.2rem;
  font-weight:400;
  line-height:1;
  color:var(--number-color);
  letter-spacing:.05em;
  text-shadow:var(--number-glow);
  transition:color 1.5s ease, text-shadow 1.5s ease;
}
.label{
  font-family:'Montserrat', sans-serif;
  font-size:.6rem;
  letter-spacing:.3em;
  text-transform:uppercase;
  color:var(--text-gold);
  margin-top:.8rem;
  font-weight:400;
  transition:color 1.5s ease;
}
.separator{
  font-family:'Cinzel', serif;
  font-size:1.2rem;
  color:var(--text-gold);
  opacity:.6;
  margin-bottom:1.2rem;
  transition:color 1.5s ease;
}
.footer-quote{
  font-family:'Cinzel', serif;
  font-size:.95rem;
  letter-spacing:.2em;
  text-transform:lowercase;
  color:var(--text-main);
  opacity:.9;
  font-weight:400;
  transition:color 1.5s ease;
}
.sim-panel{
  position:absolute;
  bottom:20px; left:50%;
  transform:translateX(-50%);
  z-index:100;
  background:rgba(255,255,255,.92);
  backdrop-filter:blur(10px);
  padding:10px 18px;
  border-radius:30px;
  border:1px solid rgba(179,147,89,.35);
  box-shadow:0 10px 30px rgba(0,0,0,.12);
  display:flex; gap:10px; align-items:center; flex-wrap:wrap; justify-content:center;
  transition:background .5s ease, border-color .5s ease;
}
.sim-group{ display:flex; align-items:center; gap:6px; }
.sim-panel span{ font-size:.65rem; text-transform:uppercase; letter-spacing:.1em; color:#555; font-weight:500; }
.sim-input{
  border:1px solid rgba(179,147,89,.4);
  padding:4px 8px;
  border-radius:12px;
  font-size:.7rem;
  font-family:'Montserrat', sans-serif;
  color:#333;
  outline:none;
  background:#fff;
}
.sim-arrow-btn{
  background:rgba(179,147,89,.1);
  border:1px solid rgba(179,147,89,.4);
  border-radius:50%;
  width:24px; height:24px;
  display:flex; align-items:center; justify-content:center;
  cursor:pointer;
  font-size:.75rem;
  color:#333;
  transition:all .2s ease;
  user-select:none;
}
.sim-arrow-btn:hover{ background:#b39359; color:#fff; border-color:#b39359; }
.sim-btn{
  background:none;
  border:1px solid rgba(179,147,89,.4);
  padding:5px 12px;
  border-radius:20px;
  font-size:.7rem;
  font-family:'Montserrat', sans-serif;
  cursor:pointer;
  color:#333;
  transition:all .3s ease;
}
.sim-btn:hover, .sim-btn.active{ background:#b39359; color:#fff; border-color:#b39359; }
.sim-divider{ width:1px; height:18px; background:rgba(179,147,89,.3); }
.modo-noche-btn{
  position:fixed;
  bottom:26px; right:26px;
  z-index:300;
  width:48px; height:48px;
  border-radius:50%;
  border:1px solid rgba(179,147,89,.35);
  background:color-mix(in oklab, var(--background) 88%, transparent);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
  box-shadow:0 8px 24px rgba(0,0,0,.16);
  font-size:1.3rem;
  line-height:1;
  display:flex; align-items:center; justify-content:center;
  cursor:pointer;
  transition:transform .35s ease, background .4s ease, border-color .4s ease, box-shadow .4s ease;
}
.modo-noche-btn:hover{ transform:scale(1.1); box-shadow:0 10px 26px rgba(0,0,0,.2); }
.modo-noche-btn.activo{
  background:rgba(255,255,255,.14);
  border-color:rgba(226,197,137,.55);
  box-shadow:0 0 18px rgba(226,197,137,.5);
}
@media (max-width:640px){
  .modo-noche-btn{ bottom:18px; right:18px; width:42px; height:42px; font-size:1.1rem; }
}
@media (max-width:768px){
  .countdown-section{ padding:2rem 1rem; }
  .astronomical-clock-container{ width:600px; height:600px; }
  .monogram{ font-size:1.4rem; letter-spacing:.3em; }
  .date-header{ font-size:.58rem; letter-spacing:.25em; margin-bottom:2rem; }
  .timer-grid{ gap:.3rem; margin-bottom:2.2rem; }
  .timer-block{ min-width:55px; }
  .number{ font-size:2.2rem; }
  .label{ font-size:.48rem; letter-spacing:.2em; margin-top:.5rem; }
  .separator{ font-size:.8rem; margin-bottom:.8rem; }
  .footer-quote{ font-size:.8rem; letter-spacing:.15em; }
  .sim-panel{ bottom:10px; width:92%; padding:8px 12px; gap:6px; border-radius:20px; }
  .sim-panel span{ font-size:.55rem; }
  .sim-btn{ padding:3px 8px; font-size:.6rem; }
  .sim-input{ font-size:.6rem; padding:2px 4px; }
  .sim-arrow-btn{ width:20px; height:20px; font-size:.65rem; }
  .sim-divider{ display:none; }
}

/* ============ MOSAICO / LUGARES ============ */
.mosaico{ display:grid; border-bottom:1px solid color-mix(in oklab, var(--gold) 25%, transparent); }
@media (min-width:640px){ .mosaico{ grid-template-columns:1fr 1fr; } }
.mosaico-tile{ position:relative; display:block; height:320px; }
@media (min-width:1024px){ .mosaico-tile{ height:420px; } }
.mosaico-tile img{ height:100%; width:100%; object-fit:cover; filter:saturate(.92); }
.mosaico-tile .overlay{ position:absolute; inset:0; background:color-mix(in oklab, var(--foreground) 35%, transparent); }
.mosaico-tile .texto{ position:absolute; bottom:28px; left:28px; text-align:left; }
.mosaico-tile .texto .kicker-tile{ font-size:.6rem; letter-spacing:.32em; text-transform:uppercase; color:color-mix(in oklab, var(--background) 80%, transparent); }
.mosaico-tile .texto .titulo-tile{ margin-top:6px; font-family:'Cormorant Garamond',serif; font-size:1.9rem; color:var(--background); }
.mosaico-tile .texto .mapa-tile{ display:inline-block; margin-top:10px; font-size:.66rem; letter-spacing:.2em; text-transform:uppercase; color:var(--gold-soft); border-bottom:1px solid color-mix(in oklab, var(--gold-soft) 60%, transparent); }

/* ============ EL GRAN DIA / CAMINO ============ */
.horario-section{ border-bottom:1px solid color-mix(in oklab, var(--gold) 25%, transparent); padding:80px 24px; }
@media (max-width:480px){ .horario-section{ padding:64px 18px; } }
.horario-titulo{ margin:0 auto; max-width:640px; text-align:center; }
.horario-titulo h2{ margin-top:0; font-size:2.2rem; font-weight:300; }
@media (min-width:640px){ .horario-titulo h2{ font-size:2.9rem; } }
.horario-titulo .gold-rule{ margin:24px auto 0; width:128px; }

.horario-lista{ max-width:620px; margin:56px auto 0; }
.horario-fila{
  display:flex; align-items:center; gap:20px;
  padding:20px 4px;
}
.horario-icono{
  flex-shrink:0;
  width:28px; height:28px;
  color:var(--gold);
}
.horario-icono svg{ width:100%; height:100%; display:block; }
.horario-hora{
  flex-shrink:0;
  width:78px;
  font-family:'Cormorant Garamond', serif;
  font-weight:400;
  font-size:1.35rem;
  color:var(--gold);
}
.horario-texto{
  flex:1;
  font-family:'Karla', sans-serif;
  font-weight:500;
  font-size:.94rem;
  letter-spacing:.01em;
  color:var(--foreground);
}

@media (max-width:480px){
  .horario-lista{ margin-top:44px; }
  .horario-fila{ gap:14px; padding:16px 0; }
  .horario-icono{ width:22px; height:22px; }
  .horario-hora{ width:60px; font-size:1.1rem; }
  .horario-texto{ font-size:.86rem; }
}

/* ============ REGALO ============ */
.regalo-section{ border-bottom:1px solid color-mix(in oklab, var(--gold) 25%, transparent); }
.regalo-grid{ display:grid; align-items:center; }
@media (min-width:1024px){ .regalo-grid{ grid-template-columns:1fr 1fr; } }
.regalo-img{ position:relative; display:none; min-height:340px; overflow:hidden; }
@media (min-width:1024px){ .regalo-img{ display:block; } }
.regalo-img img{ position:absolute; inset:0; height:100%; width:100%; object-fit:cover; }
.regalo-texto{ padding:64px 24px; }
@media (min-width:640px){ .regalo-texto{ padding:64px 56px; } }
.regalo-texto h2{ margin-top:16px; font-size:2.2rem; font-weight:300; }
@media (min-width:640px){ .regalo-texto h2{ font-size:2.9rem; } }
.regalo-texto p{ margin-top:24px; max-width:420px; font-size:.92rem; line-height:1.9; color:var(--muted-foreground); text-align:justify; text-justify:inter-word; }
.btn-outline{
  margin-top:32px;
  display:inline-block;
  border:1px solid color-mix(in oklab, var(--gold) 60%, transparent);
  padding:13px 34px;
  font-size:.64rem; letter-spacing:.28em; text-transform:uppercase;
  color:color-mix(in oklab, var(--foreground) 80%, transparent);
  background:none;
  transition:background-color .25s ease, color .25s ease;
}
.btn-outline:hover{ background:color-mix(in oklab, var(--gold) 10%, transparent); color:var(--gold); }
.btn-grande{
  display:inline-block;
  font-family:'Karla', sans-serif;
  font-size:.68rem;
  letter-spacing:.24em;
  text-transform:uppercase;
  text-decoration:none;
  padding:16px 40px;
  background:var(--gold);
  color:var(--background);
  border:1px solid var(--gold);
  text-align:center;
  cursor:pointer;
  transition:background-color .25s ease, color .25s ease, opacity .25s ease;
}
.btn-grande:hover{ background:color-mix(in oklab, var(--gold) 82%, black); }
.iban-box{ margin-top:32px; display:none; }
.iban-box.visible{ display:block; }
.iban-row{ display:flex; align-items:baseline; flex-wrap:wrap; gap:18px; }
.iban-box .iban-num{ font-family:'Cormorant Garamond',serif; font-size:1.3rem; letter-spacing:.05em; color:var(--gold); }
.iban-box .titular{ margin-top:6px; font-size:.78rem; color:var(--muted-foreground); }
.iban-box .copiar{ border:none; background:none; border-bottom:1px solid var(--gold); padding-bottom:2px; font-size:.82rem; color:var(--foreground); transition:color .25s ease; }
.iban-box .copiar:hover{ color:var(--gold); }

/* ============ FOTOS ============ */
.fotos-section{ border-bottom:1px solid color-mix(in oklab, var(--gold) 25%, transparent); padding:80px 24px; text-align:center; }
.fotos-section .wrap-md{ max-width:640px; }
.fotos-section h2{ margin-top:16px; font-size:2.2rem; font-weight:300; }
@media (min-width:640px){ .fotos-section h2{ font-size:2.9rem; } }
.fotos-section .gold-rule{ margin:24px auto 0; width:128px; }
.fotos-section p{ margin-top:28px; font-size:.92rem; line-height:1.9; color:var(--muted-foreground); }
.fotos-section .disponible{ margin-top:24px; font-size:.62rem; letter-spacing:.3em; text-transform:uppercase; color:var(--gold); }

.faq-section, .sitting-section, .gracias-section{
  border-bottom:1px solid color-mix(in oklab, var(--gold) 25%, transparent);
  padding:80px 24px; text-align:center;
}
.gracias-section{ border-bottom:none; }
.faq-section .wrap-md, .sitting-section .wrap-md, .gracias-section .wrap-md{ max-width:640px; margin:0 auto; }
.faq-section h2, .sitting-section h2, .gracias-section h2{ margin-top:16px; font-size:2.2rem; font-weight:300; }
@media (min-width:640px){ .faq-section h2, .sitting-section h2, .gracias-section h2{ font-size:2.9rem; } }
.faq-section .gold-rule, .sitting-section .gold-rule, .gracias-section .gold-rule{ margin:24px auto 0; width:128px; }
.faq-section > .wrap-md > p, .sitting-section p, .gracias-section p{ margin-top:28px; font-size:.92rem; line-height:1.9; color:var(--muted-foreground); }
.sitting-section .disponible{ margin-top:24px; font-size:.62rem; letter-spacing:.3em; text-transform:uppercase; color:var(--gold); }

.faq-lista{ margin-top:44px; text-align:left; }
.faq-item{ border-bottom:1px solid color-mix(in oklab, var(--gold) 22%, transparent); }
.faq-item:first-child{ border-top:1px solid color-mix(in oklab, var(--gold) 22%, transparent); }
.faq-pregunta{
  width:100%;
  display:flex; align-items:center; justify-content:space-between; gap:18px;
  padding:20px 2px;
  background:none; border:none;
  cursor:pointer;
  text-align:left;
  font-family:'Cormorant Garamond', serif;
  font-size:1.12rem;
  font-weight:400;
  color:var(--foreground);
}
@media (min-width:640px){ .faq-pregunta{ font-size:1.3rem; } }
.faq-icono{
  flex-shrink:0;
  font-family:'Karla', sans-serif;
  font-size:1.3rem;
  color:var(--gold);
  transition:transform .35s ease;
}
.faq-item.abierto .faq-icono{ transform:rotate(45deg); }
.faq-respuesta{ max-height:0; overflow:hidden; transition:max-height .45s ease; }
.faq-respuesta-texto{ margin:0 2px 22px; font-size:.88rem; line-height:1.75; color:var(--muted-foreground); }
.faq-respuesta-texto a{ color:var(--gold); text-decoration:underline; text-underline-offset:2px; }
.faq-respuesta-texto a:hover{ color:color-mix(in oklab, var(--gold) 82%, black); }
.faq-respuesta-texto ul, .faq-respuesta-texto ol{
  margin:14px 0; padding-left:22px;
}
.faq-respuesta-texto ul:first-child, .faq-respuesta-texto ol:first-child{ margin-top:0; }
.faq-respuesta-texto ul:last-child, .faq-respuesta-texto ol:last-child{ margin-bottom:0; }
.faq-respuesta-texto li{ margin-bottom:6px; }
.faq-respuesta-texto li::marker{ color:var(--gold); }

/* ============ RSVP ============ */
.rsvp-section{ border-bottom:1px solid color-mix(in oklab, var(--gold) 25%, transparent); }
.rsvp-grid{ display:grid; }
@media (min-width:1024px){ .rsvp-grid{ grid-template-columns:1fr 1fr; } }
.rsvp-texto{ padding:64px 24px; border-bottom:1px solid color-mix(in oklab, var(--gold) 25%, transparent); }
@media (min-width:640px){ .rsvp-texto{ padding:64px 56px; } }
@media (min-width:1024px){ .rsvp-texto{ border-bottom:none; border-right:1px solid color-mix(in oklab, var(--gold) 25%, transparent); } }
.rsvp-texto h2{ margin-top:16px; font-size:2.2rem; font-weight:300; text-transform:uppercase; letter-spacing:.06em; }
@media (min-width:640px){ .rsvp-texto h2{ font-size:2.9rem; } }
.rsvp-texto p{ margin-top:24px; max-width:420px; font-size:.92rem; line-height:1.9; color:var(--muted-foreground); }
.rsvp-nota{ margin-top:32px; font-size:.88rem; font-style:italic; color:var(--muted-foreground); }
.rsvp-cita{ display:flex; align-items:center; justify-content:center; padding:64px 24px; }
.rsvp-cita-box{ border:1px solid color-mix(in oklab, var(--gold) 40%, transparent); padding:56px 40px; text-align:center; }
.rsvp-cita-box p{ font-family:'Cormorant Garamond',serif; font-size:1.7rem; font-weight:300; line-height:1.4; }
@media (min-width:640px){ .rsvp-cita-box p{ font-size:2.1rem; } }
.rsvp-cita-box .estrella{ margin-top:24px; font-size:.85rem; color:var(--gold); }

/* ============ FOOTER ============ */
footer{ padding:40px 24px; }
.footer-inner{ max-width:1180px; margin:0 auto; display:flex; flex-direction:column; align-items:center; gap:12px; text-align:center; }
@media (min-width:640px){ .footer-inner{ flex-direction:row; justify-content:space-between; text-align:left; } }
.footer-inner .fnombres{ font-size:.62rem; letter-spacing:.3em; text-transform:uppercase; color:var(--muted-foreground); }
.footer-inner .flogo{ font-family:'Cormorant Garamond',serif; font-size:1.3rem; letter-spacing:.2em; color:var(--gold); }
.footer-inner .ffecha{ font-size:.62rem; letter-spacing:.3em; text-transform:uppercase; color:var(--muted-foreground); }
