/* ====================================================================
   Lazo de Seda · tema de "Lazo Rosa 3 años" (cumple de Emilia)
   Se carga DESPUÉS de secciones.css (copia idéntica de _shared/) y
   reestiliza las secciones del motor sin tocarlo.

   IDENTIDAD
   · Estilo:  coquette / satén. Lazos y listones brillantes, acuarela rosa
              difuminada y marcos ovalados con filigrana dorada.
   · Trazo:   líneas finas de 1–1.5 px en oro champán, esquinas con espiral,
              formas redondeadas (óvalos, arcos, píldoras); nunca ángulos duros.
   · Color:   marfil #FFFBF8 · rosa empolvado #D4707E · blush #F4C9D2
              oro #B8923A · rosa profundo #A9515F (texto pequeño)
              ciruela #4A3B3F · malva #85707A · oro claro #EBD9B8
   · Fuente:  Pinyon Script (nombre y títulos) + Cormorant Garamond (todo lo demás)
   Prefijo propio: lz (clases y keyframes).
   ==================================================================== */

:root{
  --color-fondo:#FFFBF8;
  --color-superficie:#FFFFFF;
  --color-principal:#D4707E;
  --color-secundario:#F4C9D2;
  --color-acento:#B8923A;
  --color-rosa-oscuro:#A9515F;
  --color-rosa-suave:#FDEFF1;
  --color-rosa-fondo:#F9DCE2;
  --color-texto:#4A3B3F;
  --color-texto-suave:#85707A;
  --color-borde:#EBD9B8;

  --lz-script:'Pinyon Script','Great Vibes',cursive;
  --lz-serif:'Cormorant Garamond',Georgia,'Times New Roman',serif;
  --lz-oro-texto:#A47F2C;
  --lz-oro-linea:rgba(184,146,58,.55);
  --lz-oro-grad:linear-gradient(135deg,#D9B968 0%,#A47F2C 48%,#E2C77C 72%,#A47F2C 100%);
  --lz-rosa-grad:linear-gradient(135deg,#E58B9A 0%,#D4707E 55%,#C75F6F 100%);
  --lz-pad:20px;

  /* íconos del clima en rosa y oro */
  --oc-w-sol:#B8923A; --oc-w-sol-fondo:#FBEBC4; --oc-w-nube:#B79AA3; --oc-w-nube-fondo:#fff;
  --oc-w-gota:#D4707E; --oc-w-rayo:#B8923A;
}
@media (min-width:768px){ :root{ --lz-pad:32px; } }

html{ scroll-behavior:smooth; }
body.lz-paper{
  margin:0; overflow-x:hidden; font-family:var(--lz-serif); font-weight:500; font-size:17px; line-height:1.5;
  color:var(--color-texto); -webkit-font-smoothing:antialiased; font-variant-numeric:lining-nums;
  background-color:var(--color-fondo);
  background-image:
    radial-gradient(ellipse 80% 4% at 0% 9%, rgba(244,201,210,.60), transparent 70%),
    radial-gradient(ellipse 70% 3.4% at 100% 24%, rgba(244,201,210,.50), transparent 70%),
    radial-gradient(ellipse 80% 4% at 0% 44%, rgba(244,201,210,.55), transparent 70%),
    radial-gradient(ellipse 70% 3.4% at 100% 62%, rgba(232,213,176,.40), transparent 70%),
    radial-gradient(ellipse 80% 4% at 0% 80%, rgba(244,201,210,.55), transparent 70%),
    radial-gradient(ellipse 70% 3.4% at 100% 94%, rgba(244,201,210,.45), transparent 70%),
    linear-gradient(180deg,#FFFBF8 0%,#FFF6F6 28%,#FFFBF8 52%,#FFF4F5 78%,#FFFBF8 100%);
}
body.lz-lock{ overflow:hidden; }
.lz-main{ position:relative; z-index:10; width:100%; }
::selection{ background:#F4C9D2; color:#4A3B3F; }
:focus-visible{ outline:2px solid #D4707E; outline-offset:3px; }

/* ---------- utilidades de tipografía ---------- */
.lz-script{ font-family:var(--lz-script); font-weight:400; color:var(--color-principal); line-height:1.1; margin:0; }
.lz-kicker{
  margin:0; font-family:var(--lz-serif); font-weight:600; font-size:.8rem; letter-spacing:.3em; text-indent:.3em;
  text-transform:uppercase; color:var(--color-rosa-oscuro);
}
.lz-oro-texto{ background:var(--lz-oro-grad); -webkit-background-clip:text; background-clip:text; color:transparent; }

/* ---------- pétalos que caen (muy suaves) ---------- */
.lz-petals{ position:fixed; inset:0; z-index:5; pointer-events:none; overflow:hidden; }
.lz-petals span{
  position:absolute; top:-30px; width:12px; height:15px; border-radius:100% 0 100% 0;
  background:linear-gradient(135deg,#F9CBD3,#E68FA0); opacity:0; animation:lzPetal 14s linear infinite;
}
.lz-petals span:nth-child(1){ left:6%;  animation-delay:0s;   animation-duration:15s; }
.lz-petals span:nth-child(2){ left:18%; animation-delay:3s;   animation-duration:12s; width:9px; height:12px; }
.lz-petals span:nth-child(3){ left:31%; animation-delay:7s;   animation-duration:16s; }
.lz-petals span:nth-child(4){ left:46%; animation-delay:1.5s; animation-duration:13s; width:10px; height:13px; }
.lz-petals span:nth-child(5){ left:58%; animation-delay:9s;   animation-duration:17s; }
.lz-petals span:nth-child(6){ left:70%; animation-delay:4.5s; animation-duration:12.5s; width:9px; height:12px; }
.lz-petals span:nth-child(7){ left:82%; animation-delay:11s;  animation-duration:15s; }
.lz-petals span:nth-child(8){ left:93%; animation-delay:6s;   animation-duration:14s; width:10px; height:13px; }
@keyframes lzPetal{
  0%{ transform:translate3d(0,-30px,0) rotate(0); opacity:0 }
  10%{ opacity:.55 }
  50%{ transform:translate3d(36px,52vh,0) rotate(160deg); opacity:.5 }
  90%{ opacity:.35 }
  100%{ transform:translate3d(-14px,108vh,0) rotate(330deg); opacity:0 }
}

/* ====================================================================
   SOBRE DE ENTRADA: sobre de satén con un lazo como sello
   ==================================================================== */
.lz-open{
  position:fixed; inset:0; z-index:100; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:22px;
  padding:24px; overflow:hidden; text-align:center;
  background:
    radial-gradient(ellipse 90% 40% at 0% 8%, rgba(244,201,210,.7), transparent 70%),
    radial-gradient(ellipse 90% 40% at 100% 94%, rgba(244,201,210,.65), transparent 70%),
    radial-gradient(circle at 50% 45%, #fff 0%, #FFFBF8 55%, #FDEFF1 100%);
  transition:opacity .9s ease, transform .9s cubic-bezier(.16,1,.3,1);
}
.lz-open.is-hiding{ opacity:0; transform:scale(1.04); pointer-events:none; }
.lz-open-eyebrow{ margin:0; }
.lz-open-name{ font-family:var(--lz-script); font-size:clamp(2.6rem,12vw,3.4rem); color:var(--color-principal); line-height:1; margin:0; }
.lz-open-hint{
  margin:0; font-family:var(--lz-serif); font-style:italic; font-weight:600; font-size:1.05rem; color:var(--color-texto-suave);
  animation:lzHint 2.4s ease-in-out infinite;
}
.lz-open.is-open .lz-open-hint{ animation:none; opacity:0; transition:opacity .3s; }
@keyframes lzHint{ 0%,100%{ opacity:.55; transform:translateY(0) } 50%{ opacity:1; transform:translateY(-3px) } }

.lz-env{
  position:relative; display:block; width:min(84vw,340px); aspect-ratio:10/7; padding:0; border:0; background:none; cursor:pointer;
  perspective:1000px; margin-top:34px; filter:drop-shadow(0 28px 26px rgba(212,112,126,.30)); -webkit-tap-highlight-color:transparent;
}
.lz-env > *{ position:absolute; display:block; }
.lz-env-back{ inset:0; width:100%; height:100%; z-index:1; }
.lz-env-card{
  left:8%; right:8%; top:8%; bottom:7%; z-index:2; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px;
  background:#FFFDFB; border:1px solid var(--lz-oro-linea); border-radius:6px;
  box-shadow:inset 0 0 0 4px #fff, inset 0 0 0 5px rgba(184,146,58,.35);
  transition:transform 1.1s cubic-bezier(.22,.8,.24,1) .45s;
}
.lz-env-card b{ font-family:var(--lz-script); font-weight:400; font-size:clamp(2rem,10vw,2.6rem); line-height:1; color:var(--color-principal); }
.lz-env-card small{ font-family:var(--lz-serif); font-weight:700; font-size:.7rem; letter-spacing:.3em; text-indent:.3em; text-transform:uppercase; color:var(--lz-oro-texto); }
.lz-env-front{ inset:0; width:100%; height:100%; z-index:3; }
.lz-env-flap{
  left:0; top:0; width:100%; height:58%; z-index:5; transform-origin:50% 0; transform:rotateX(0deg);
  transition:transform .85s cubic-bezier(.4,.1,.2,1), z-index 0s .38s;
}
.lz-env-lazo{
  left:50%; top:40%; width:46%; z-index:6; transform:translate(-50%,-50%); transform-origin:50% 50%;
  filter:drop-shadow(0 8px 8px rgba(169,81,95,.35)); animation:lzLazo 2.6s ease-in-out infinite;
  transition:opacity .5s ease .1s, transform .7s cubic-bezier(.3,.7,.3,1);
}
@keyframes lzLazo{ 0%,100%{ transform:translate(-50%,-50%) rotate(-2deg) scale(1) } 50%{ transform:translate(-50%,-52%) rotate(2deg) scale(1.05) } }
.lz-open.is-open .lz-env-lazo{ animation:none; opacity:0; transform:translate(-50%,-90%) scale(1.5) rotate(8deg); }
.lz-open.is-open .lz-env-flap{ transform:rotateX(180deg); z-index:1; }
.lz-open.is-open .lz-env-card{ transform:translateY(-52%); z-index:4; }
.lz-open.is-open .lz-env-front{ z-index:5; }

/* ====================================================================
   PORTADA: tarjeta con lazo, listones, óvalo de foto y filigrana
   ==================================================================== */
.lz-hero{ position:relative; padding:34px 16px 12px; }
.lz-card{
  position:relative; max-width:430px; margin:0 auto; padding:24px 26px 46px; text-align:center;
  border:1px solid var(--lz-oro-linea); border-radius:4px;
  background:
    radial-gradient(circle at 108% 20%, rgba(244,201,210,.70), transparent 40%),
    radial-gradient(circle at -8% 62%, rgba(244,201,210,.62), transparent 42%),
    radial-gradient(circle at 104% 94%, rgba(244,201,210,.52), transparent 38%),
    #fff;
  box-shadow:0 34px 60px -34px rgba(212,112,126,.5), 0 2px 0 rgba(255,255,255,.8) inset;
}
.lz-card::before{ content:''; position:absolute; inset:7px; border:1px solid rgba(184,146,58,.42); border-radius:2px; pointer-events:none; }
.lz-corner{ position:absolute; z-index:4; width:54px; height:54px; background:url("filigrana.svg") center/contain no-repeat; pointer-events:none; }
.lz-corner.tl{ top:12px; left:12px; }
.lz-corner.tr{ top:12px; right:12px; transform:scaleX(-1); }
.lz-corner.bl{ bottom:12px; left:12px; transform:scaleY(-1); }
.lz-corner.br{ bottom:12px; right:12px; transform:scale(-1,-1); }

.lz-stage{ position:relative; width:calc(100% + 52px); margin:0 -26px; aspect-ratio:360/520; }
.lz-stage > *{ position:absolute; }
.lz-foto{
  z-index:1; left:20.83%; top:25%; width:58.33%; height:48.08%; border-radius:50%; overflow:hidden; background:#F9DCE2;
  box-shadow:0 0 0 4px #fff, 0 0 0 5.5px #C9A24A, 0 0 0 9px rgba(255,255,255,.75), 0 0 0 10px rgba(201,162,74,.55), 0 22px 36px -14px rgba(212,112,126,.55);
}
.lz-foto img{ width:100%; height:100%; object-fit:cover; display:block; }
.lz-listones{ z-index:2; left:0; top:0; width:100%; height:100%; pointer-events:none; filter:drop-shadow(0 8px 10px rgba(212,112,126,.22)); }
.lz-lazo{ z-index:3; left:19.4%; top:1.9%; width:61%; filter:drop-shadow(0 10px 12px rgba(169,81,95,.28)); animation:lzMece 6s ease-in-out infinite; transform-origin:50% 40%; }
.lz-rosa{ z-index:3; top:23%; width:15%; filter:drop-shadow(0 6px 6px rgba(169,81,95,.22)); }
.lz-rosa.l{ left:4.5%; }
.lz-rosa.r{ right:4.5%; transform:scaleX(-1); }
@keyframes lzMece{ 0%,100%{ transform:rotate(-1.2deg) } 50%{ transform:rotate(1.2deg) } }

.lz-head{ position:relative; z-index:3; margin-top:-27%; }
.lz-eyebrow{ display:flex; flex-direction:column; align-items:center; gap:6px; margin:0 0 4px; }
.lz-eyebrow::after{ content:'♥'; font-size:.7rem; color:var(--color-principal); line-height:1; }
.lz-nombre{
  margin:0; font-family:var(--lz-script); font-weight:400; line-height:1.05; padding:4px 0 6px;
  font-size:clamp(3.8rem,18vw,5.2rem); color:var(--color-principal);
  background:linear-gradient(180deg,#E58B9A 0%,#D4707E 55%,#BF5A6B 100%); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent;
  filter:drop-shadow(0 2px 0 rgba(255,255,255,.9));
}
.lz-edad{
  margin:0; font-family:var(--lz-serif); font-weight:700; font-size:clamp(1.55rem,6.4vw,2rem); line-height:1.1; letter-spacing:.02em;
}
.lz-datos{ list-style:none; margin:26px auto 0; padding:0; max-width:262px; text-align:left; }
.lz-datos li{ display:flex; align-items:flex-start; gap:14px; padding:12px 2px; border-bottom:1px solid rgba(184,146,58,.42); }
.lz-datos li:last-child{ border-bottom:0; }
.lz-datos svg{ flex:none; width:24px; height:24px; margin-top:1px; color:var(--lz-oro-texto); }
.lz-datos .t{ display:block; font-weight:600; font-size:1.08rem; line-height:1.3; color:var(--color-texto); }
.lz-datos .t small{ display:block; font-weight:500; font-size:.95rem; line-height:1.3; color:var(--color-texto-suave); margin-top:1px; }

/* ====================================================================
   NUESTRA PEQUEÑA PRINCESA
   ==================================================================== */
.lz-festejada{ position:relative; padding:56px var(--lz-pad) 24px; text-align:center; }
.lz-fest-in{ max-width:520px; margin:0 auto; }
.lz-rule{ display:block; width:170px; height:26px; margin:0 auto 8px; background:url("divisor.svg") center/contain no-repeat; }
.lz-fest-in .lz-script{ font-size:clamp(2.4rem,9vw,3rem); margin:10px 0 22px; }
.lz-marco{
  position:relative; margin:0 auto; padding:44px 28px 36px; background:rgba(255,255,255,.88);
  border:1px solid var(--lz-oro-linea); border-radius:4px; box-shadow:0 26px 44px -30px rgba(212,112,126,.5);
}
.lz-marco::before{ content:''; position:absolute; inset:6px; border:1px solid rgba(184,146,58,.38); border-radius:2px; pointer-events:none; }
.lz-marco .lz-corner{ width:42px; height:42px; }
.lz-marco .lz-corner.tl{ top:9px; left:9px; } .lz-marco .lz-corner.tr{ top:9px; right:9px; }
.lz-marco .lz-corner.bl{ bottom:9px; left:9px; } .lz-marco .lz-corner.br{ bottom:9px; right:9px; }
.lz-frase{
  position:relative; margin:0 0 18px; font-style:italic; font-weight:600; font-size:clamp(1.3rem,5.4vw,1.55rem); line-height:1.4; color:var(--color-rosa-oscuro);
}
.lz-frase::before{
  content:'“'; display:block; font-family:var(--lz-script); font-style:normal; font-size:4rem; line-height:.6; height:.5em; color:var(--color-principal); opacity:.8;
}
.lz-marco .sep{ display:block; width:90px; height:12px; margin:0 auto 18px; background:url("divisor.svg") center/cover no-repeat; opacity:.9; }
.lz-mensaje{ margin:0; font-size:1.18rem; line-height:1.55; color:var(--color-texto); }
.lz-papas{ margin:26px 0 0; display:flex; flex-direction:column; gap:4px; align-items:center; }
.lz-papas b{ font-family:var(--lz-script); font-weight:400; font-size:clamp(1.55rem,6.4vw,1.9rem); line-height:1.1; color:var(--color-principal); }

/* ====================================================================
   SECCIONES DEL MOTOR
   ==================================================================== */
section.oc-section.oc-section{ padding:60px var(--lz-pad); overflow-x:clip; isolation:isolate; font-weight:500; }
@media (min-width:768px){ section.oc-section.oc-section{ padding-top:76px; padding-bottom:76px; } }
section.oc-section .oc-inner{ position:relative; z-index:1; max-width:600px; }
section.oc-section .oc-title{
  font-family:var(--lz-script); font-weight:400; font-style:normal; color:var(--oc-principal);
  font-size:clamp(2.4rem,9vw,3rem); line-height:1.1; margin:0 0 8px;
}
section.oc-section .oc-sub{ font-family:var(--lz-serif); font-weight:600; font-size:1.12rem; font-style:italic; color:var(--oc-suave); }

/* adorno: lazo pequeño entre filetes dorados */
section.oc-section .oc-rule{ display:block; width:170px; height:26px; margin:0 auto 8px; gap:0; }
section.oc-section .oc-rule i{ display:none; }
section.oc-section .oc-rule::before{ content:''; width:100%; height:100%; opacity:1; background:url("divisor.svg") center/contain no-repeat; display:block; }
section.oc-section .oc-rule::after{ display:none; }

/* botones: píldora rosa con filo dorado */
section.oc-section .oc-btn{
  position:relative; overflow:hidden; min-height:46px; padding:12px 26px;
  font-family:var(--lz-serif); font-weight:700; font-size:1rem; letter-spacing:.08em; text-transform:uppercase;
  background:var(--lz-rosa-grad); color:#fff;
  box-shadow:0 0 0 1px #fff inset, 0 0 0 2px rgba(255,255,255,.0), 0 8px 20px -6px rgba(212,112,126,.55), 0 0 0 1px rgba(184,146,58,.55);
  transition:transform .3s cubic-bezier(.16,1,.3,1), box-shadow .3s ease, filter .3s ease;
}
section.oc-section .oc-btn:hover{ opacity:1; transform:translateY(-2px); filter:brightness(1.05); }
section.oc-section .oc-btn.is-ghost{
  background:#fff; color:var(--color-rosa-oscuro);
  box-shadow:0 0 0 1px rgba(184,146,58,.7), 0 6px 14px -8px rgba(212,112,126,.4);
}
section.oc-section .oc-btn.is-ghost:hover{ background:#FFF6F7; }
/* destello de satén que cruza el botón principal */
section.oc-section.oc-rsvp form.oc-rsvp .oc-btn::after,
section.oc-section.oc-regalos .oc-btn:not(.is-ghost)::after{
  content:''; position:absolute; top:0; bottom:0; left:0; width:30%; pointer-events:none;
  background:linear-gradient(90deg, transparent, rgba(255,255,255,.55), transparent); animation:lzShine 4.4s ease-in-out infinite;
}
@keyframes lzShine{ 0%{ transform:translateX(-140%) skewX(-18deg) } 55%,100%{ transform:translateX(460%) skewX(-18deg) } }

/* tarjetas: papel con doble filete dorado */
section.oc-section .oc-card{
  position:relative; background:#fff; border:1px solid var(--lz-oro-linea); border-radius:6px;
  box-shadow:0 22px 40px -26px rgba(212,112,126,.45);
}
section.oc-section .oc-card::before{
  content:''; position:absolute; inset:5px; border:1px solid rgba(184,146,58,.30); border-radius:3px; pointer-events:none;
}

/* carrusel (hospedaje) */
.oc-carousel{ padding:6px var(--lz-pad) 18px; margin:0 calc(var(--lz-pad) * -1); }
section.oc-section .oc-dots button{ background:#EBD9B8; }
section.oc-section .oc-dots button.active{ background:var(--color-principal); width:22px; }

/* ---------- música: cajita de listón ---------- */
section.oc-section.oc-musica{ padding-top:26px; padding-bottom:34px; }
section.oc-section.oc-musica .oc-rule{ display:none; }
section.oc-section.oc-musica .oc-title{
  font-family:var(--lz-serif); font-weight:700; font-size:.8rem; letter-spacing:.32em; text-indent:.32em; text-transform:uppercase;
  color:var(--color-rosa-oscuro); margin:0 0 10px;
}
section.oc-section .oc-song{ font-family:var(--lz-script); font-size:1.9rem; line-height:1.2; color:var(--oc-principal); }
section.oc-section .oc-artist{ font-family:var(--lz-serif); font-weight:600; font-style:italic; font-size:1rem; color:var(--oc-suave); }
.oc-player{
  position:relative; max-width:420px; margin:14px auto 0; padding:12px 20px 12px 12px; gap:16px;
  background:#fff; border:1px solid var(--lz-oro-linea); border-radius:999px; box-shadow:0 14px 30px -18px rgba(212,112,126,.55);
}
section.oc-section .oc-play{
  position:relative; width:50px; height:50px; background:var(--lz-rosa-grad); color:#fff;
  box-shadow:0 0 0 3px #fff, 0 0 0 4px rgba(184,146,58,.6), 0 8px 14px -6px rgba(212,112,126,.7);
}
section.oc-section .oc-play svg{ width:20px; height:20px; }
section.oc-section .oc-play .i-play{ margin-left:3px; }
section.oc-section .oc-player.is-playing .oc-play::after{
  content:''; position:absolute; inset:-6px; border-radius:50%; border:2px solid #E58B9A; pointer-events:none; animation:lzRing 1.8s ease-out infinite;
}
@keyframes lzRing{ 0%{ transform:scale(.9); opacity:.9 } 100%{ transform:scale(1.35); opacity:0 } }
section.oc-section .oc-bar{ height:5px; border-radius:5px; background:#F9DCE2; }
section.oc-section .oc-fill{ border-radius:5px; background:linear-gradient(90deg,#D9B968,#B8923A); }
section.oc-section .oc-times{ font-family:var(--lz-serif); font-weight:600; color:var(--oc-suave); font-size:.82rem; }

/* ---------- cuenta regresiva: banda de acuarela con listón de satén ---------- */
section.oc-section.oc-cuenta_regresiva{
  margin:44px 0; padding:74px var(--lz-pad) 70px;
  background:
    radial-gradient(ellipse 60% 70% at 12% 20%, rgba(255,255,255,.55), transparent 70%),
    radial-gradient(ellipse 55% 60% at 92% 84%, rgba(255,255,255,.45), transparent 70%),
    linear-gradient(180deg,#FBDDE3 0%,#F8D0D9 52%,#FBDDE3 100%);
  overflow:visible;
}
section.oc-section.oc-cuenta_regresiva::before,
section.oc-section.oc-cuenta_regresiva::after,
section.oc-section.oc-rsvp::before,
section.oc-section.oc-rsvp::after{
  content:''; position:absolute; left:0; right:0; height:68px; pointer-events:none; z-index:2;
  background:url("liston-onda.svg") repeat-x center/200px 68px;
  filter:drop-shadow(0 6px 6px rgba(212,112,126,.2));
}
section.oc-section.oc-cuenta_regresiva::before, section.oc-section.oc-rsvp::before{ top:-34px; }
section.oc-section.oc-cuenta_regresiva::after, section.oc-section.oc-rsvp::after{ bottom:-34px; transform:scaleY(-1); }
section.oc-section.oc-cuenta_regresiva .oc-title{ color:var(--color-rosa-oscuro); }
section.oc-section.oc-cuenta_regresiva .oc-sub{ color:#8F5560; margin-bottom:24px; }
section.oc-section .oc-count{ gap:8px; }
section.oc-section .oc-count .sep{ display:none; }
section.oc-section .oc-count div{
  max-width:80px; padding:14px 4px 12px; background:rgba(255,255,255,.94); border-radius:50% 50% 14px 14px / 38% 38% 14px 14px;
  box-shadow:0 0 0 1px rgba(184,146,58,.6), 0 0 0 4px rgba(255,255,255,.65), 0 14px 22px -14px rgba(169,81,95,.6);
}
section.oc-section .oc-count b{ font-family:var(--lz-serif); font-weight:700; font-size:clamp(1.8rem,8.4vw,2.4rem); color:var(--color-principal); font-variant-numeric:lining-nums; }
section.oc-section .oc-count small{ font-weight:700; font-size:.7rem; letter-spacing:.14em; color:var(--lz-oro-texto); }
section.oc-section .oc-done{ font-family:var(--lz-script); font-size:2.2rem; color:var(--color-rosa-oscuro); }

/* ---------- calendario ---------- */
section.oc-section .oc-cal{ max-width:340px; padding:26px 20px; }
section.oc-section .oc-cal-head{ font-family:var(--lz-script); font-weight:400; font-size:2.2rem; line-height:1.1; color:var(--oc-principal); }
section.oc-section .oc-cal-grid .dow{ font-family:var(--lz-serif); font-weight:700; font-size:.78rem; letter-spacing:.06em; color:var(--lz-oro-texto); }
section.oc-section .oc-cal-grid span{ font-family:var(--lz-serif); font-weight:600; font-size:1.02rem; }
section.oc-section .oc-cal-grid span.is-day{ color:#fff; font-weight:700; }
section.oc-section .oc-cal-grid span.is-day::before{
  width:38px; height:38px; left:50%; top:50%; margin:-19px 0 0 -19px; background:var(--lz-rosa-grad);
  filter:drop-shadow(0 4px 5px rgba(212,112,126,.5)); animation:lzLate 2.6s ease-in-out infinite;
}
@keyframes lzLate{ 0%,100%{ transform:scale(1) } 50%{ transform:scale(1.12) } }
section.oc-section .oc-cal-time{
  display:inline-block; margin-top:16px; padding:6px 18px; border-radius:999px; background:var(--color-rosa-suave); color:var(--color-rosa-oscuro);
  font-family:var(--lz-serif); font-weight:700; font-size:1rem; letter-spacing:.04em; box-shadow:0 0 0 1px rgba(184,146,58,.4);
}

/* ---------- ubicación ---------- */
section.oc-section .oc-place{ padding:30px 22px 26px; }
section.oc-section .oc-place h3{ font-family:var(--lz-script); font-weight:400; font-size:2.2rem; line-height:1.1; color:var(--oc-principal); }
section.oc-section .oc-place .oc-p-time{ font-family:var(--lz-serif); font-weight:700; font-size:1.2rem; color:var(--lz-oro-texto); }
section.oc-section .oc-place .oc-p-name{ font-family:var(--lz-serif); font-weight:700; letter-spacing:.16em; font-size:1rem; color:var(--color-texto); }
section.oc-section .oc-place .oc-p-addr{ font-size:1.05rem; color:var(--oc-suave); }
section.oc-section .oc-map{ border-radius:10px; box-shadow:0 0 0 3px #fff, 0 0 0 4px rgba(184,146,58,.6); filter:saturate(.75) sepia(.12) hue-rotate(-12deg); margin-top:18px; }

/* ---------- clima ---------- */
section.oc-section .oc-w-hero{ position:relative; border-radius:6px; background:#fff; box-shadow:0 0 0 1px var(--lz-oro-linea), 0 22px 40px -26px rgba(212,112,126,.45); }
section.oc-section .oc-w-date{ font-weight:700; letter-spacing:.24em; color:var(--lz-oro-texto); }
section.oc-section .oc-w-city{ font-family:var(--lz-script); font-size:1.7rem; line-height:1.2; color:var(--oc-principal); }
section.oc-section .oc-w-now b{ font-family:var(--lz-serif); font-weight:700; color:var(--color-texto); }
section.oc-section .oc-w-now .d strong{ color:var(--color-rosa-oscuro); }
section.oc-section .oc-w-stats small{ font-weight:700; color:var(--lz-oro-texto); }
section.oc-section .oc-w-stats div + div{ border-left-color:rgba(184,146,58,.4); }
section.oc-section .oc-w-tip{ font-style:italic; font-weight:600; color:var(--color-rosa-oscuro); }

/* ---------- itinerario: un listón de satén con lacitos ---------- */
section.oc-section .oc-timeline::before{
  width:6px; left:72px; top:-4px; bottom:-4px; opacity:1; border-radius:6px;
  background:linear-gradient(180deg,#F6C3CE,#FCE3E8 50%,#EFA9B9); box-shadow:0 0 0 1px rgba(184,146,58,.35);
}
section.oc-section .oc-t-item::before{
  width:18px; height:18px; left:-31px; top:3px; background:var(--lz-rosa-grad); box-shadow:0 0 0 3px #fff, 0 0 0 4px rgba(184,146,58,.7);
}
section.oc-section .oc-t-time{ font-family:var(--lz-serif); font-weight:700; font-size:.88rem; letter-spacing:0; white-space:nowrap; left:-104px; width:68px; color:var(--lz-oro-texto); }
section.oc-section .oc-t-what{ font-family:var(--lz-script); font-weight:400; font-size:1.7rem; line-height:1.15; color:var(--oc-principal); }
section.oc-section .oc-t-desc{ font-size:1.05rem; color:var(--oc-suave); }

/* ---------- galería: arcos con marco dorado ---------- */
section.oc-section .oc-gallery{ gap:16px; }
section.oc-section .oc-gallery button{
  border-radius:999px 999px 14px 14px; background:#F9DCE2; box-shadow:0 0 0 4px #fff, 0 0 0 5px rgba(184,146,58,.65), 0 18px 28px -18px rgba(212,112,126,.6);
}

/* ---------- video ---------- */
div.oc-video{ border-radius:10px; box-shadow:0 0 0 4px #fff, 0 0 0 5px rgba(184,146,58,.65), 0 20px 34px -20px rgba(212,112,126,.6); background:#F3C2CC; }
section.oc-section .oc-video-ph::before{ background:linear-gradient(180deg,rgba(244,201,210,.25),rgba(169,81,95,.55)); }
section.oc-section .oc-video-ph{ font-family:var(--lz-script); font-size:1.6rem; }

/* ---------- vestimenta ---------- */
section.oc-section .oc-dress-figs{ color:var(--color-principal); }
section.oc-section .oc-dress-type{
  font-family:var(--lz-serif); font-weight:700; font-size:1.3rem; letter-spacing:.28em; color:var(--color-rosa-oscuro);
  border-top:1px solid var(--lz-oro-linea); border-bottom:1px solid var(--lz-oro-linea);
}

/* ---------- hospedaje ---------- */
section.oc-section .oc-hotel svg{ color:var(--lz-oro-texto); }
section.oc-section .oc-hotel .tag{ background:var(--color-rosa-suave); color:var(--color-rosa-oscuro); font-weight:700; box-shadow:0 0 0 1px rgba(184,146,58,.4); }
section.oc-section .oc-hotel h3{ font-family:var(--lz-script); font-weight:400; font-size:1.9rem; color:var(--oc-principal); }
section.oc-section .oc-hotel .stars{ color:var(--color-acento); }
section.oc-section .oc-hotel .note{ border-top-color:rgba(184,146,58,.4); }

/* ---------- regalos: el lazo es el moño del regalo ---------- */
section.oc-section.oc-regalos .oc-title::before{
  content:''; display:block; width:104px; height:66px; margin:0 auto 4px;
  background:url("lazo.svg") center/contain no-repeat; filter:drop-shadow(0 6px 6px rgba(169,81,95,.25)); animation:lzMece 6s ease-in-out infinite;
}
section.oc-section.oc-regalos .oc-rule{ display:none; }
.oc-tabs{ background:var(--color-rosa-suave); box-shadow:0 0 0 1px rgba(184,146,58,.4); padding:5px; }
section.oc-section .oc-tabs button{
  font-family:var(--lz-serif); font-weight:700; font-size:.9rem; letter-spacing:.1em; text-transform:uppercase; color:var(--color-rosa-oscuro); padding:9px 20px; min-height:40px;
}
section.oc-section .oc-tabs button[aria-selected="true"]{ background:var(--lz-rosa-grad); color:#fff; box-shadow:0 8px 14px -8px rgba(212,112,126,.8); }
section.oc-section .oc-gift-row{ border-bottom:1px dotted rgba(184,146,58,.7); }
section.oc-section .oc-gift-row .k{ font-weight:700; letter-spacing:.14em; color:var(--lz-oro-texto); font-size:.78rem; }
section.oc-section .oc-gift-row .v{ font-weight:700; }
section.oc-section .oc-gift-store{ font-family:var(--lz-script); font-weight:400; font-size:2.3rem; color:var(--oc-principal); }
section.oc-section .oc-gift-num{ font-family:var(--lz-serif); font-weight:700; color:var(--color-rosa-oscuro); letter-spacing:.14em; font-size:1.5rem; }

/* ---------- agendar ---------- */
section.oc-section .oc-save-btns{ display:flex; flex-wrap:wrap; justify-content:center; gap:12px; }

/* ---------- confirmar: otra banda de acuarela con listón ---------- */
section.oc-section.oc-rsvp{
  margin:50px 0; padding:76px var(--lz-pad) 80px; overflow:visible;
  background:
    radial-gradient(ellipse 60% 60% at 90% 12%, rgba(255,255,255,.5), transparent 70%),
    radial-gradient(ellipse 55% 60% at 8% 90%, rgba(255,255,255,.42), transparent 70%),
    linear-gradient(180deg,#FBDDE3 0%,#F8D0D9 52%,#FBDDE3 100%);
}
section.oc-section.oc-rsvp .oc-title{ color:var(--color-rosa-oscuro); }
section.oc-section.oc-rsvp .oc-sub{ color:#8F5560; }
section.oc-section .oc-field label{ font-family:var(--lz-serif); font-weight:700; font-size:.82rem; letter-spacing:.16em; color:var(--lz-oro-texto); }
section.oc-section .oc-field input[type="text"]{ font-family:var(--lz-serif); font-weight:600; font-size:1.2rem; border-bottom:1px solid rgba(184,146,58,.7); }
section.oc-section .oc-field input[type="text"]:focus{ border-bottom-color:var(--color-principal); }
section.oc-section .oc-choices label{ font-family:var(--lz-serif); font-weight:700; font-size:1.05rem; letter-spacing:.01em; text-transform:none; box-shadow:inset 0 0 0 1px rgba(184,146,58,.5); border-radius:999px; }
section.oc-section .oc-choices label:has(input:checked){ box-shadow:inset 0 0 0 2px var(--color-principal); background:var(--color-rosa-suave); }
section.oc-section .oc-choices input{ accent-color:#D4707E; }

/* ====================================================================
   DESPEDIDA
   ==================================================================== */
.lz-despedida{ position:relative; padding:40px var(--lz-pad) 90px; text-align:center; }
.lz-despedida .corona{ display:block; width:76px; margin:0 auto 6px; filter:drop-shadow(0 6px 6px rgba(164,127,44,.3)); animation:lzMece 6s ease-in-out infinite; }
.lz-despedida .lz-script{ font-size:clamp(2.8rem,12vw,3.8rem); margin:4px 0 8px; }
.lz-despedida p{ margin:0 auto; max-width:360px; font-size:1.2rem; color:var(--color-texto); }
.lz-firma{ margin-top:14px !important; font-style:italic; color:var(--color-texto-suave) !important; }
.lz-firma b{ font-family:var(--lz-script); font-style:normal; font-weight:400; font-size:2rem; line-height:1.1; color:var(--color-principal); margin-left:4px; }
.lz-despedida .lz-rule{ margin-top:22px; }
.lz-credito{ margin-top:26px !important; font-size:.85rem !important; letter-spacing:.14em; text-transform:uppercase; color:var(--color-texto-suave) !important; }
.lz-credito a{ color:var(--color-rosa-oscuro); font-weight:700; text-decoration:none; border-bottom:1px solid rgba(184,146,58,.6); }

/* ====================================================================
   BOTÓN FLOTANTE DE MÚSICA
   ==================================================================== */
.lz-music{ position:fixed; top:12px; right:12px; z-index:40; }
.lz-music[hidden]{ display:none; }
.lz-music button{
  display:flex; align-items:center; gap:8px; min-height:40px; padding:6px 14px; border-radius:999px; cursor:pointer;
  background:rgba(255,255,255,.92); backdrop-filter:blur(8px); border:1px solid var(--lz-oro-linea); color:var(--color-rosa-oscuro);
  font-family:var(--lz-serif); font-weight:700; font-size:.82rem; letter-spacing:.1em; text-transform:uppercase;
  box-shadow:0 8px 18px -10px rgba(212,112,126,.6);
}
.lz-music svg{ width:16px; height:16px; color:var(--lz-oro-texto); }
.lz-bars{ display:flex; align-items:flex-end; gap:2px; height:14px; width:14px; }
.lz-bars i{ width:2px; height:4px; border-radius:2px; background:var(--color-principal); animation:lzBar 1.2s ease-in-out infinite alternate; }
.lz-bars i:nth-child(2){ animation-delay:.35s } .lz-bars i:nth-child(3){ animation-delay:.5s } .lz-bars i:nth-child(4){ animation-delay:.2s }
.lz-bars.paused i{ animation-play-state:paused; height:4px; }
@keyframes lzBar{ 0%{ height:4px } 100%{ height:14px } }

/* ---------- menú pastilla y modo demo ---------- */
.oc-nav{ font-family:var(--lz-serif); }
.oc-nav-pill.oc-nav-pill{
  border-color:var(--lz-oro-linea); background:rgba(255,255,255,.94); color:var(--color-rosa-oscuro);
  font-family:var(--lz-serif); font-weight:700; font-size:13px; letter-spacing:.1em; text-transform:uppercase;
  box-shadow:0 8px 18px -10px rgba(212,112,126,.6);
}
.oc-nav-pill.oc-nav-pill:hover{ background:#fff; border-color:var(--color-principal); }
.oc-nav-pill.oc-nav-pill svg{ color:var(--lz-oro-texto); }
.oc-nav-drop.oc-nav-drop{ border-color:var(--lz-oro-linea); background:rgba(255,253,251,.97); border-radius:18px; box-shadow:0 24px 48px -16px rgba(212,112,126,.5); }
.oc-nav-head.oc-nav-head{ border-bottom-color:rgba(184,146,58,.35); color:var(--lz-oro-texto); font-family:var(--lz-serif); font-weight:700; }
.oc-nav-head.oc-nav-head i{ background:var(--color-principal); }
.oc-nav-drop.oc-nav-drop a{ font-family:var(--lz-serif); font-weight:600; font-size:16px; color:var(--color-texto); }
.oc-nav-drop.oc-nav-drop a:hover{ background:var(--color-rosa-suave); color:var(--color-rosa-oscuro); }
.oc-nav-drop.oc-nav-drop a svg{ color:var(--lz-oro-texto); }
.oc-nav-drop.oc-nav-drop a.is-current{ background:var(--color-rosa-suave); color:var(--color-rosa-oscuro); }
.oc-nav-drop.oc-nav-drop a.is-cta{ background:var(--lz-rosa-grad); color:#fff; box-shadow:0 8px 14px -8px rgba(212,112,126,.8); }
.oc-nav-drop.oc-nav-drop a.is-cta:hover{ background:var(--lz-rosa-grad); color:#fff; filter:brightness(1.06); }
.oc-nav-drop.oc-nav-drop a.is-cta svg{ color:#fff; }
.oc-nav-drop.oc-nav-drop a.is-cta.is-current{ box-shadow:0 0 0 2px #fff, 0 0 0 3.5px var(--color-principal); }
.oc-demo-check span, .oc-demo-fija{ background:var(--color-principal); }
.oc-demo-check input:not(:checked) + span{ background:#E8D5D9; }
.oc-nav.is-demo .oc-demo-foot{ font-family:var(--lz-serif); border-top-color:rgba(184,146,58,.35); }
.oc-nav-drop.oc-nav-drop a.oc-demo-send{ border-color:var(--color-principal); color:var(--color-rosa-oscuro); }
.oc-demo-tip{ background:var(--color-rosa-oscuro); font-family:var(--lz-serif); font-weight:600; }

/* ---------- movimiento reducido ---------- */
@media (prefers-reduced-motion: reduce){
  .lz-petals{ display:none; }
  .lz-lazo, .lz-despedida .corona, section.oc-section.oc-regalos .oc-title::before,
  .lz-env-lazo, .lz-open-hint, section.oc-section .oc-cal-grid span.is-day::before,
  section.oc-section .oc-btn::after, .lz-bars i{ animation:none !important; }
  .lz-env-card, .lz-env-flap, .lz-env-lazo, .lz-open{ transition-duration:.01s !important; transition-delay:0s !important; }
}
