@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@300;400;500&family=Jost:wght@300;400;500&family=Great+Vibes&display=swap');

:root{
  --bg: #efe7db;
  --text: #3a2f20;

  --section-pad-y: clamp(38px, 4.6vw, 62px);
  --section-pad-x: 20px;
  --after-hero-gap: clamp(18px, 2.2vw, 30px);

  --envelope-max: 560px;
  --envelope-vw: 70vw;

  --seal-x: 50%;
  --seal-y: 51%;
  --seal-size: 18%;
}

*{ box-sizing:border-box; }

html, body{
  height:100%;
  width:100%;
  overflow-x:hidden;
}

body{
  margin:0;
  color:var(--text);
  font-family:'Jost', sans-serif;
  background: var(--bg) url("Imagenes/Fondo4.png") center/cover no-repeat;
}

.is-hidden{ display:none !important; }

/* =========================
   LOBBY
   ========================= */

.lobby{
  width: 100%;
  height: 100vh;
  height: 100svh;
  min-height: 100vh;
  min-height: 100svh;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  overflow: hidden;
  position: relative;
}

.lobby__top{
  flex: 0 0 auto;
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: clamp(80px, 10vh, 120px) 16px clamp(4px, 1vh, 12px);
}

/* Nombres portada estilo elegante */
.lobby__names-wrap{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap: clamp(6px, 1.2vh, 12px);
  color:#3a2f20;
  text-align:center;
  transform: translateY(35px);
}

.lobby__name{
  font-family:'Cormorant Garamond', serif;
  font-weight:400;
  font-size: clamp(4.2rem, 12vw, 6.7rem);
  line-height:.84;
  letter-spacing:.01em;
  color:#3a2f20;
  text-shadow: 0 8px 22px rgba(58,47,32,.08);
}

.lobby__middle{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap: 2px;
  margin: -2px 0;
}

.lobby__heart{
  color:#c6a16b;
  font-size: clamp(1rem, 3vw, 1.45rem);
  line-height:1;
  opacity:.95;
}

.lobby__amp-line{
  display:flex;
  align-items:center;
  justify-content:center;
  gap: clamp(12px, 3.8vw, 22px);
}

.lobby__amp-line span{
  display:block;
  width: clamp(54px, 18vw, 110px);
  height:1px;
  background: linear-gradient(90deg, transparent, rgba(198,161,107,.90));
}

.lobby__amp-line span:last-child{
  background: linear-gradient(90deg, rgba(198,161,107,.90), transparent);
}

.lobby__amp{
  font-family:'Cormorant Garamond', serif;
  font-size: clamp(2.7rem, 8vw, 4rem);
  line-height:.72;
  font-weight:400;
  color:#6f5a40;
  opacity:.95;
}

.lobby__center{
  flex: 1 1 auto;
  min-height: 0;
  width: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 0 8px;
  overflow: visible;
}

.lobby__stage{
  position: relative;
  width: min(var(--envelope-vw), var(--envelope-max), 100%);
  max-width: 100%;
  max-height: 92%;
  display: flex;
  justify-content: center;
  align-items: center;
  filter: drop-shadow(0 18px 26px rgba(0,0,0,.18));
  transform: translateY(12px);
}

.lobby__envelope{
  display: block;
  width: 100%;
  height: auto;
  max-height: 100%;
  object-fit: contain;
  user-select: none;
  -webkit-user-drag: none;
  pointer-events: none;
}

.lobby__bottom{
  flex: 0 0 auto;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: clamp(6px, 1.2vh, 14px) 16px clamp(18px, 3.5vh, 38px);
}

.lobby__hint-wrap{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
}

.lobby__hint-decoration{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  margin-bottom:12px;
  color:#c6a16b;
}

.lobby__hint-decoration span{
  display:block;
  width: clamp(48px, 16vw, 72px);
  height:1px;
  background: linear-gradient(90deg, transparent, rgba(198,161,107,.85));
}

.lobby__hint-decoration span:last-child{
  background: linear-gradient(90deg, rgba(198,161,107,.85), transparent);
}

.lobby__hint-decoration .heart{
  width:auto;
  height:auto;
  background:none;
  font-size:1.05rem;
  line-height:1;
}

.lobby__hint{
  font-size: clamp(.9rem, 2.8vw, 1.05rem);
  opacity: .78;
  letter-spacing: .22em;
  margin:0;
}


.seal-hotspot{
  position: absolute;
  left: var(--seal-x);
  top: var(--seal-y);
  width: var(--seal-size);
  aspect-ratio: 1 / 1;
  transform: translate(-50%, -50%);
  border: none;
  background: transparent;
  border-radius: 999px;
  cursor: pointer;
  outline: none;
  z-index: 2;
}

.seal-ring{
  position: absolute;
  left: var(--seal-x);
  top: var(--seal-y);
  width: calc(var(--seal-size) * 1.35);
  aspect-ratio: 1 / 1;
  transform: translate(-50%, -50%);
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.45);
  box-shadow: 0 0 0 10px rgba(255,255,255,.08);
  opacity: 0;
  pointer-events: none;
  z-index: 2;
}

.seal-hotspot:hover + .seal-ring,
.seal-hotspot:focus-visible + .seal-ring{
  opacity: 1;
  animation: pulse 1.25s ease-in-out infinite;
}

@keyframes pulse{
  0%  { transform: translate(-50%, -50%) scale(1); opacity: .9; }
  50% { transform: translate(-50%, -50%) scale(1.06); opacity: .55; }
  100%{ transform: translate(-50%, -50%) scale(1); opacity: .9; }
}

.lobby--open{
  animation: lobbyOut .52s ease forwards;
}

@keyframes lobbyOut{
  to { opacity: 0; transform: translateY(-6px); }
}

/* =========================
   SITIO
   ========================= */

.site{
  background:
    linear-gradient(180deg, #6f8fbf 0%, #f7f1e8 18%, #efe6d8 100%);
}

/* NAV */

.navbar{
  position:fixed;
  top:0; left:0; right:0;
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:18px 28px;
  z-index:50;
  transition: background .25s ease, box-shadow .25s ease, padding .25s ease;
  background:transparent;
}

.navbar.scrolled{
  background:rgba(245,239,230,.92);
  box-shadow:0 10px 20px rgba(0,0,0,.08);
  padding:14px 22px;
}

.navbar__logo{
  font-family:'Cormorant Garamond', serif;
  font-size:1.6rem;
  letter-spacing:.06em;
  text-decoration:none;
  color:#3a2f20;
}

/* HERO */

.hero{
  position: relative;
  height: 100vh;
  height: 100svh;
  min-height: 100vh;
  min-height: 100svh;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  overflow: hidden;
  padding: 0;
  isolation: isolate;
}

.hero__bg{
  position:absolute;
  inset:0;
  background:
    linear-gradient(180deg, rgba(7,15,25,.10), rgba(7,15,25,.20)),
    url("Imagenes/GAF_112-32.jpg") center/cover no-repeat;
  transform:scale(1.06);
  filter: saturate(.92) contrast(.98);
}

.hero__bg::after{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at 50% 36%, rgba(224,190,142,.10), transparent 24%),
    radial-gradient(circle at 50% 52%, rgba(255,255,255,.08), transparent 26%),
    linear-gradient(90deg, rgba(4,11,14,.50) 0%, rgba(4,11,14,.13) 50%, rgba(4,11,14,.48) 100%);
}

.hero__overlay{
  position:absolute;
  inset:0;
  background:
    linear-gradient(180deg, rgba(2,8,12,.58) 0%, rgba(5,10,14,.40) 38%, rgba(3,9,12,.62) 100%);
}

.hero__content{
  position: relative;
  z-index: 2;
  width: min(1040px, calc(100% - 28px));
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: clamp(10px, 1.5vh, 18px);
  padding: clamp(28px, 5vh, 54px) 20px 112px;
  text-align: center;
  box-sizing: border-box;
}

.hero__intro{
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: clamp(8px, 1.5vh, 15px);
  margin-bottom: clamp(2px, .8vh, 8px);
  text-shadow: 0 8px 26px rgba(0,0,0,.36);
}

.hero__ornament{
  display:flex;
  align-items:center;
  justify-content:center;
  gap: 10px;
  color: #d7b77d;
  opacity: .86;
  margin-bottom: 2px;
}

.hero__ornament span{
  display:block;
  width: 48px;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(215,183,125,.85));
}

.hero__ornament span:last-child{
  background: linear-gradient(90deg, rgba(215,183,125,.85), transparent);
}

.hero__ornament i{
  font-style: normal;
  font-size: 1.4rem;
  line-height: 1;
}

.hero__invitationCopy{
  display:flex;
  flex-direction:column;
  gap: 10px;
}

.hero__kicker{
  margin: 0;
  text-transform: uppercase;
  letter-spacing: .42em;
  line-height: 1;
}

.hero__kicker--small{
  font-family:'Jost', sans-serif;
  font-size: clamp(.74rem, 1.35vw, .95rem);
  font-weight: 400;
  color: #d7b77d;
}

.hero__kicker--main{
  font-family:'Cormorant Garamond', serif;
  font-size: clamp(1.02rem, 2.1vw, 1.42rem);
  font-weight: 500;
  color: rgba(255,255,255,.94);
  letter-spacing: .36em;
}

.hero__miniDivider{
  display:flex;
  align-items:center;
  justify-content:center;
  gap: 12px;
  color: #d7b77d;
  opacity: .88;
  margin: 0 0 clamp(2px, .6vh, 6px);
}

.hero__miniDivider span{
  display:block;
  width: 56px;
  height:1px;
  background: linear-gradient(90deg, transparent, rgba(215,183,125,.82));
}

.hero__miniDivider span:last-child{
  background: linear-gradient(90deg, rgba(215,183,125,.82), transparent);
}

.hero__miniDivider i{
  font-style: normal;
  font-size: .78rem;
  line-height: 1;
}

.hero__names{
  margin: 0;
  font-family:'Cormorant Garamond', serif;
  font-size: clamp(3.8rem, 8vw, 6.5rem);
  font-weight: 300;
  line-height: .94;
  letter-spacing: .055em;
  color: rgba(255,255,255,.96);
  text-shadow: 0 10px 28px rgba(0,0,0,.38);
}

.hero__names span{
  color: #d7b77d;
  font-style: italic;
  font-weight: 300;
  letter-spacing: .01em;
}

.hero__dateLine{
  display:flex;
  align-items:center;
  justify-content:center;
  gap: clamp(14px, 2vw, 24px);
  margin: clamp(4px, .9vh, 10px) 0 0;
  text-transform: uppercase;
}

.hero__dateWord{
  font-size: clamp(.86rem, 1.55vw, 1.08rem);
  letter-spacing: .28em;
  color: rgba(255,255,255,.92);
  font-weight: 500;
}

.hero__dateDay{
  font-family:'Cormorant Garamond', serif;
  font-size: clamp(2.2rem, 5vw, 3.6rem);
  font-weight: 400;
  line-height: .9;
  letter-spacing: .10em;
  color: #e1bd80;
  text-shadow: 0 7px 20px rgba(0,0,0,.34);
}

.hero__dateSep{
  width: 1px;
  height: clamp(30px, 4.2vw, 42px);
  background: linear-gradient(180deg, transparent, rgba(215,183,125,.92), transparent);
}

.hero__leafDivider{
  width: min(180px, 45vw);
  height: 18px;
  margin-top: 2px;
  opacity: .74;
  background:
    radial-gradient(ellipse at center, rgba(215,183,125,.85) 0 2px, transparent 3px),
    linear-gradient(90deg, transparent 0%, rgba(215,183,125,.75) 35%, rgba(215,183,125,.75) 65%, transparent 100%);
  background-size: 10px 10px, 100% 1px;
  background-repeat: repeat-x, no-repeat;
  background-position: center, center;
}

.hero__eyebrow{
  margin: 0 0 clamp(4px, .8vh, 8px);
  font-size: clamp(.74rem, 1.2vw, .88rem);
  letter-spacing: .38em;
  text-transform: uppercase;
  color: #d7b77d;
  opacity: .96;
  text-shadow: 0 5px 18px rgba(0,0,0,.35);
}

.countdown{
  display: inline-flex;
  align-items: flex-end;
  justify-content: center;
  gap: clamp(22px, 3.2vw, 42px);
  padding: clamp(18px, 2.2vw, 24px) clamp(30px, 4.2vw, 54px);
  border-radius: 26px;
  background: rgba(18,16,15,.32);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border: 1px solid rgba(215,183,125,.38);
  box-shadow:
    0 22px 48px rgba(0,0,0,.28),
    inset 0 1px 0 rgba(255,255,255,.16);
}

.countdown__block{
  text-align:center;
  min-width:74px;
}

.countdown__number{
  font-size: clamp(2rem, 3.1vw, 2.7rem);
  font-weight:300;
  letter-spacing:.12em;
  color: rgba(255,255,255,.96);
  text-shadow:0 4px 16px rgba(0,0,0,.30);
}

.countdown__label{
  font-size:.74rem;
  letter-spacing:.26em;
  opacity:.98;
  text-transform:uppercase;
  color:#ead5b0;
}

.countdown__separator{
  font-size:1.25rem;
  color:#d7b77d;
  opacity:.72;
  transform: translateY(-12px);
}

.hero__scroll{
  position: absolute;
  left: 50%;
  bottom: 28px;
  transform: translateX(-50%);
  width: fit-content;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  text-decoration: none;
  color: #ead5b0;
  opacity: .94;
  margin: 0;
}

.hero__scroll:link,
.hero__scroll:visited,
.hero__scroll:hover,
.hero__scroll:active{
  color:#ead5b0;
  text-decoration:none;
}

.hero__scrollText{
  font-size:.82rem;
  letter-spacing:.30em;
  text-transform:uppercase;
}

.hero__scrollIcon{
  width: 22px;
  height: 38px;
  border:1.6px solid rgba(234,213,176,.82);
  border-radius:999px;
  position:relative;
}

.hero__scrollIcon::after{
  content:"";
  position:absolute;
  left:50%;
  top:8px;
  width:4px;
  height:8px;
  border-radius:999px;
  background:#ead5b0;
  transform: translateX(-50%);
  animation: scrollCue 1.8s ease-in-out infinite;
}

/* =========================
   PÁGINA 2 / BENDICIÓN
   ========================= */

.story,
.blessing{
  padding:
    calc(var(--section-pad-y) + var(--after-hero-gap))
    var(--section-pad-x)
    var(--section-pad-y);
  background:
    radial-gradient(circle at top center, rgba(255,255,255,.68), transparent 42%),
    linear-gradient(180deg, #f5efe6 0%, #f2ebdf 100%);
}

.story__wrap,
.blessing__wrap{
  width: min(960px, calc(100% - 24px));
  margin: 0 auto;
}

.story__card,
.blessing__card{
  position: relative;
  text-align: center;
  padding: clamp(34px, 4.4vw, 58px) clamp(20px, 4vw, 54px);
  border-radius: 34px;
  background:
    radial-gradient(circle at 50% 0%, rgba(255,255,255,.82), transparent 48%),
    linear-gradient(180deg, rgba(255,251,245,.95), rgba(255,248,240,.9));
  border: 1px solid rgba(181,132,67,.16);
  box-shadow:
    0 26px 70px rgba(58,47,32,.10),
    inset 0 1px 0 rgba(255,255,255,.70);
  overflow: hidden;
}

.story__card::after,
.blessing__card::after{
  content:"";
  position:absolute;
  inset:18px;
  border-radius: 26px;
  border: 1px solid rgba(181,132,67,.14);
  pointer-events:none;
}

.blessing__card::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at 0% 42%, rgba(181,132,67,.08), transparent 22%),
    radial-gradient(circle at 100% 44%, rgba(181,132,67,.08), transparent 22%);
  pointer-events:none;
}

.blessing__card > *{
  position: relative;
  z-index: 1;
}

.blessing__ornament{
  width: min(340px, 68vw);
  margin: 0 auto 26px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap: 12px;
  color:#b58443;
  opacity:.95;
}

.blessing__ornament span{
  height:1px;
  flex:1;
  background: linear-gradient(to right, transparent, rgba(181,132,67,.70));
}

.blessing__ornament span:last-child{
  background: linear-gradient(to left, transparent, rgba(181,132,67,.70));
}

.blessing__ornament i{
  font-style: normal;
  font-size: .92rem;
  line-height: 1;
}

.blessing__ornament--bottom{
  margin: 34px auto 0;
}

.blessing__eyebrow{
  margin: 0 0 14px;
  font-size: clamp(.82rem, 1.3vw, 1rem);
  letter-spacing: .36em;
  text-transform: uppercase;
  color: rgba(58,47,32,.70);
}

.blessing__title{
  margin: 0;
  font-family: 'Cormorant Garamond', serif;
  font-weight: 400;
  font-size: clamp(3rem, 8vw, 6.2rem);
  line-height: .94;
  letter-spacing: .08em;
  text-transform: uppercase;
  color:#3a2f20;
  text-shadow: 0 12px 28px rgba(58,47,32,.08);
}

.blessing__divider,
.blessing__smallDivider{
  display:flex;
  align-items:center;
  justify-content:center;
  gap: 10px;
  color:#b58443;
}

.blessing__divider{
  width: min(190px, 48vw);
  margin: 26px auto 34px;
}

.blessing__divider span,
.blessing__smallDivider span{
  height: 1px;
  flex: 1;
  background: linear-gradient(to right, transparent, rgba(181,132,67,.68));
}

.blessing__divider span:last-child,
.blessing__smallDivider span:last-child{
  background: linear-gradient(to left, transparent, rgba(181,132,67,.68));
}

.blessing__divider i,
.blessing__smallDivider i{
  font-style: normal;
  font-size: .9rem;
  line-height: 1;
}

.blessing__photo{
  width: min(760px, 100%);
  margin: 0 auto 40px;
}

.blessing__photo img{
  display:block;
  width:100%;
  height:auto;
  aspect-ratio: 16 / 8;
  object-fit: cover;
  object-position: center;
  border-radius: 28px;
  filter: grayscale(1) contrast(.96) brightness(1.06);
  box-shadow:
    0 28px 58px rgba(58,47,32,.14),
    0 8px 18px rgba(58,47,32,.06);
}

.blessing__parents{
  width: min(760px, 100%);
  margin: 0 auto;
  display:grid;
  grid-template-columns: minmax(0,1fr) 46px minmax(0,1fr);
  gap: clamp(18px, 3.4vw, 34px);
  align-items: stretch;
}

.blessing__side{
  padding: 4px 0;
}

.blessing__role{
  margin:0 0 12px;
  font-size: .92rem;
  letter-spacing: .42em;
  text-transform: uppercase;
  color:#b58443;
}

.blessing__role::before,
.blessing__role::after{
  content:"·";
  margin: 0 10px;
  color:#b58443;
}

.blessing__miniLeaf{
  color:#b58443;
  font-size: 1.35rem;
  line-height: 1;
  margin-bottom: 20px;
  opacity:.9;
}

.blessing__parent h3{
  margin:0;
  font-family:'Cormorant Garamond', serif;
  font-weight:400;
  font-size: clamp(1.65rem, 3vw, 2.25rem);
  line-height:1.08;
  color:#3a2f20;
}

.blessing__parent p{
  margin: 10px 0 0;
  font-size: .88rem;
  letter-spacing: .34em;
  text-transform: uppercase;
  color: rgba(58,47,32,.68);
}

.blessing__smallDivider{
  width: min(110px, 42%);
  margin: 24px auto 26px;
}

.blessing__smallDivider i{
  font-size:.72rem;
}

.blessing__centerLine{
  position: relative;
  display:flex;
  align-items:center;
  justify-content:center;
  color:#b58443;
}

.blessing__centerLine::before{
  content:"";
  position:absolute;
  top: 0;
  bottom: 0;
  width: 1px;
  background: linear-gradient(to bottom, transparent, rgba(181,132,67,.58), transparent);
}

.blessing__centerLine i{
  position:relative;
  z-index:1;
  display:flex;
  align-items:center;
  justify-content:center;
  width:30px;
  height:30px;
  border-radius:999px;
  background: rgba(255,249,241,.96);
  font-style:normal;
  font-size:.85rem;
}

/* Compatibilidad con clases story anteriores */
.story__eyebrow,
.story__title,
.story__text,
.story__photo,
.story__footer,
.story__date,
.story__signature,
.story__signatureLine,
.story__names{
  position:relative;
  z-index:1;
}

@media (max-width: 720px){
  .story,
  .blessing{
    padding: 34px 14px 42px;
  }

  .story__wrap,
  .blessing__wrap{
    width: 100%;
  }

  .story__card,
  .blessing__card{
    padding: 30px 18px 34px;
    border-radius: 28px;
  }

  .story__card::after,
  .blessing__card::after{
    inset: 12px;
    border-radius: 22px;
  }

  .blessing__ornament{
    margin-bottom: 20px;
  }

  .blessing__eyebrow{
    letter-spacing: .26em;
    font-size: .74rem;
  }

  .blessing__title{
    font-size: clamp(2.3rem, 12.2vw, 3.7rem);
    letter-spacing: .045em;
  }

  .blessing__divider{
    margin: 20px auto 26px;
  }

  .blessing__photo{
    margin-bottom: 30px;
  }

  .blessing__photo img{
    aspect-ratio: 16 / 10 !important;
    object-position: center 58% !important;
    border-radius: 22px;
}

  .blessing__parents{
    grid-template-columns: 1fr;
    gap: 26px;
  }

  .blessing__centerLine{
    height: 1px;
    width: min(210px, 76%);
    margin: 0 auto;
  }

  .blessing__centerLine::before{
    top: 50%;
    bottom: auto;
    left: 0;
    right: 0;
    width: auto;
    height: 1px;
    background: linear-gradient(to right, transparent, rgba(181,132,67,.58), transparent);
  }

  .blessing__role{
    font-size: .82rem;
    letter-spacing: .32em;
  }

  .blessing__parent h3{
    font-size: 1.85rem;
  }

  .blessing__parent p{
    font-size: .78rem;
  }
}

/* =========================
   TIMELINE / ITINERARIO PREMIUM
   ========================= */

.timeline{
  padding: clamp(42px, 5vw, 72px) var(--section-pad-x);
  background:
    radial-gradient(circle at top center, rgba(255,255,255,.72), transparent 40%),
    linear-gradient(180deg, #f5efe6 0%, #efe7db 100%);
}

.timeline__container{
  max-width: 760px;
  margin: 0 auto;
  width: 100%;
}

.timeline__container--premium{
  position: relative;
  padding: clamp(28px, 4vw, 48px) clamp(18px, 4vw, 34px);
  border-radius: 34px;
  background:
    radial-gradient(circle at 50% 0%, rgba(255,255,255,.86), transparent 46%),
    linear-gradient(180deg, rgba(255,251,245,.96), rgba(250,243,233,.92));
  border: 1px solid rgba(181,132,67,.16);
  box-shadow:
    0 28px 72px rgba(58,47,32,.12),
    inset 0 1px 0 rgba(255,255,255,.75);
  overflow: hidden;
}

.timeline__container--premium::before{
  content:"";
  position:absolute;
  inset: 12px;
  border-radius: 27px;
  border: 1px solid rgba(181,132,67,.14);
  pointer-events:none;
}

.timeline__container--premium > *{
  position: relative;
  z-index: 1;
}

.timeline__topLines{
  width: min(420px, 86%);
  margin: 0 auto clamp(26px, 4vw, 38px);
  display:flex;
  align-items:center;
  justify-content:center;
  gap: 14px;
}

.timeline__topLines span{
  height:1px;
  flex:1;
  background: linear-gradient(90deg, transparent, rgba(181,132,67,.42));
}

.timeline__topLines span:last-child{
  background: linear-gradient(90deg, rgba(181,132,67,.42), transparent);
}

.timeline__topLines strong{
  min-width: 72px;
  padding: 10px 16px;
  border-radius: 999px;
  background: rgba(255,255,255,.66);
  border: 1px solid rgba(181,132,67,.14);
  box-shadow: 0 10px 22px rgba(58,47,32,.06);
  font-family:'Cormorant Garamond', serif;
  font-size: 1rem;
  font-weight: 400;
  letter-spacing: .08em;
  color: rgba(58,47,32,.78);
  text-align:center;
}

.timeline__header{
  text-align:center;
  margin-bottom: clamp(28px, 4vw, 42px);
}

.timeline__title{
  font-family:'Cormorant Garamond', serif;
  font-weight:400;
  font-size: clamp(3rem, 8vw, 4.9rem);
  line-height: .95;
  letter-spacing: .045em;
  margin: 0;
  color:#3a2f20;
  text-wrap: balance;
}

.timeline__divider{
  width: min(250px, 70%);
  margin: 18px auto 16px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap: 14px;
  color:#b58443;
}

.timeline__divider span,
.timeline__miniSep span,
.timeline__bottom span{
  height:1px;
  flex:1;
  background: linear-gradient(90deg, transparent, rgba(181,132,67,.68));
}

.timeline__divider span:last-child,
.timeline__miniSep span:last-child,
.timeline__bottom span:last-child{
  background: linear-gradient(90deg, rgba(181,132,67,.68), transparent);
}

.timeline__divider i,
.timeline__miniSep i,
.timeline__bottom i{
  font-style: normal;
  line-height: 1;
  color:#b58443;
}

.timeline__subtitle{
  margin: 0;
  font-family:'Cormorant Garamond', serif;
  font-style: italic;
  font-size: clamp(1.22rem, 3vw, 1.65rem);
  line-height: 1.35;
  color: rgba(58,47,32,.64);
}

.timeline__list{
  position: relative;
  display: grid;
  gap: clamp(18px, 3vw, 26px);
}

.timeline__list--premium::before{
  content:"";
  position:absolute;
  left: clamp(70px, 17vw, 130px);
  top: 22px;
  bottom: 22px;
  width: 1px;
  background: linear-gradient(180deg, transparent, rgba(181,132,67,.45), transparent);
}

.timeline__item{
  position: relative;
  display:grid;
  grid-template-columns: clamp(112px, 22vw, 190px) minmax(0,1fr);
  align-items:center;
  gap: clamp(16px, 3vw, 34px);
}

.timeline__iconBox{
  width: clamp(92px, 18vw, 148px);
  aspect-ratio: 1 / 1;
  border-radius: 999px;
  justify-self: center;
  display:flex;
  align-items:center;
  justify-content:center;
  background:
    radial-gradient(circle, rgba(255,255,255,.55), rgba(255,250,243,.20));
  border: 1px solid rgba(181,132,67,.38);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.78);
}

.timeline__iconBox::before{
  content:"❧";
  position:absolute;
  left: clamp(12px, 2.8vw, 30px);
  bottom: clamp(10px, 2vw, 20px);
  font-size: clamp(1.7rem, 4vw, 2.7rem);
  color: rgba(181,132,67,.78);
  transform: rotate(-28deg);
}

.timeline__iconBox::after{
  content:"";
  position:absolute;
  left: calc(clamp(70px, 17vw, 130px) - 3px);
  width: 7px;
  height: 7px;
  border-radius: 999px;
  background:#b58443;
  box-shadow: 0 0 0 7px rgba(255,250,243,.86);
}

.timeline__icon{
  font-size: clamp(2rem, 5vw, 3.2rem);
  line-height: 1;
  filter: sepia(.45) saturate(.75) brightness(.86);
}

.timeline__content{
  background: rgba(255,252,247,.82);
  border: 1px solid rgba(181,132,67,.10);
  border-radius: 22px;
  padding: clamp(18px, 3vw, 28px) clamp(18px, 3.4vw, 32px);
  box-shadow:
    0 18px 42px rgba(58,47,32,.09),
    inset 0 1px 0 rgba(255,255,255,.72);
  transition: transform .22s ease, box-shadow .22s ease;
}

.timeline__content:hover{
  transform: translateY(-3px);
  box-shadow:
    0 24px 52px rgba(58,47,32,.12),
    inset 0 1px 0 rgba(255,255,255,.82);
}

.timeline__time{
  margin: 0 0 8px;
  font-size: clamp(.95rem, 2.2vw, 1.12rem);
  line-height: 1;
  letter-spacing:.18em;
  font-weight: 500;
  color:#b58443;
  text-transform: uppercase;
  white-space: nowrap;
}

.timeline__cardTitle{
  margin: 0;
  font-family:'Cormorant Garamond', serif;
  font-weight:400;
  font-size: clamp(1.85rem, 4.8vw, 2.7rem);
  line-height: 1.02;
  color:#3a2f20;
  text-wrap: balance;
}

.timeline__miniSep{
  width: min(190px, 78%);
  margin: 14px 0 16px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap: 12px;
}

.timeline__miniSep i{
  font-size: .82rem;
}

.timeline__cardText{
  margin: 0;
  font-size: clamp(1rem, 2.4vw, 1.18rem);
  line-height: 1.58;
  color: rgba(58,47,32,.66);
}

.timeline__bottom{
  width: min(360px, 78%);
  margin: clamp(30px, 5vw, 44px) auto 0;
  display:flex;
  align-items:center;
  justify-content:center;
  gap: 14px;
}

@media (max-width: 720px){
  .timeline{
    padding: 34px 12px 42px;
  }

  .timeline__container--premium{
    padding: 26px 16px 30px;
    border-radius: 28px;
  }

  .timeline__container--premium::before{
    inset: 9px;
    border-radius: 23px;
  }

  .timeline__topLines{
    width: 92%;
    margin-bottom: 28px;
  }

  .timeline__topLines strong{
    min-width: 58px;
    padding: 8px 13px;
    font-size: .9rem;
  }

  .timeline__header{
    margin-bottom: 26px;
  }

  .timeline__title{
    font-size: clamp(2.45rem, 11.6vw, 3.55rem);
    letter-spacing: .025em;
  }

  .timeline__subtitle{
    font-size: 1.08rem;
    font-family:'Jost', sans-serif;
    font-style: normal;
  }

  .timeline__list{
    gap: 16px;
  }

  .timeline__list--premium::before{
    left: 30px;
    top: 28px;
    bottom: 28px;
  }

  .timeline__item{
    grid-template-columns: 46px minmax(0,1fr);
    gap: 12px;
    align-items: start;
  }

  .timeline__iconBox{
    width: 38px;
    margin-top: 16px;
    background: #4a4037;
    border: 5px solid rgba(181,132,67,.14);
    box-shadow: 0 0 0 5px rgba(58,47,32,.05);
  }

  .timeline__iconBox::before{
    display:none;
  }

  .timeline__iconBox::after{
    display:none;
  }

  .timeline__icon{
    font-size: 1.05rem;
    filter: none;
  }

  .timeline__content{
    border-radius: 16px;
    padding: 15px 16px 16px;
  }

  .timeline__time{
    font-size: .82rem;
    letter-spacing: .10em;
    margin-bottom: 10px;
  }

  .timeline__cardTitle{
    font-size: 1.55rem;
  }

  .timeline__miniSep{
    display:none;
  }

  .timeline__cardText{
    margin-top: 8px;
    font-size: .95rem;
    line-height: 1.52;
  }

  .timeline__bottom{
    margin-top: 28px;
  }
}


/* =========================
   VENUES
   ========================= */

.venues{
  padding: calc(var(--section-pad-y) * .85) var(--section-pad-x) var(--section-pad-y);
  background:#f5efe6;
}

.venues__grid{
  max-width:1100px;
  margin:0 auto;
  display:grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap:26px;
}

.venue-card{
  position: relative;
  background:#fffaf2;
  border-radius:18px;
  box-shadow:0 18px 40px rgba(0,0,0,.08);
  overflow:hidden;
  transition: transform .25s ease, box-shadow .25s ease;
}

.venue-card:hover{
  transform:translateY(-6px);
  box-shadow:0 25px 55px rgba(0,0,0,.12);
}

.venue-card::after{
  content:"";
  position:absolute;
  inset:auto 18px 16px;
  height:1px;
  background: linear-gradient(90deg, transparent, rgba(58,47,32,.16), transparent);
}

.venue-card__image-wrapper{
  height:240px;
  overflow:hidden;
  border-top-left-radius:14px;
  border-top-right-radius:14px;
}

.venue-card__image{
  width:100%;
  height:100%;
  object-fit:cover;
  transition: transform .6s ease;
  transform: scale(1.22);
}

.venue-card:hover .venue-card__image{
  transform: scale(0.99);
}

.venue-card__title{
  font-family:'Cormorant Garamond', serif;
  font-size:2rem;
  font-weight:400;
  padding:18px 18px 6px;
  color:#3a2f20;
}

.venue-card__name,
.venue-card__address,
.venue-card__time{
  padding:0 18px 10px;
  font-size:1rem;
  opacity:.8;
}

.venue-card__name{
  font-weight:500;
  letter-spacing:.02em;
}

.venue-card__time{
  padding-bottom:20px;
}

.venue-card__map{
  display:inline-block;
  margin: 4px 18px 24px;
  padding: 10px 18px;
  font-size:.9rem;
  letter-spacing:.05em;
  text-decoration:none;
  border-radius:30px;
  border:1px solid rgba(58,47,32,.25);
  color:#3a2f20;
  background: linear-gradient(180deg, rgba(255,255,255,.92), rgba(241,234,224,.96));
  transition: all .25s ease;
}

.venue-card__map:hover{
  background:#3a2f20;
  color:#fff;
  transform: translateY(-2px);
  box-shadow:0 8px 18px rgba(0,0,0,.15);
}

/* =========================
   RSVP
   ========================= */

.rsvp{
  padding: var(--section-pad-y) var(--section-pad-x);
  background:
    radial-gradient(circle at top left, rgba(255,255,255,.7), transparent 34%),
    linear-gradient(180deg, #f5efe6 0%, #f2ebdf 100%);
}

.rsvp__card{
  max-width: 960px;
  margin: 0 auto;
  background: linear-gradient(180deg, rgba(255,250,242,.98), rgba(255,247,238,.96));
  border-radius: 28px;
  box-shadow: 0 24px 56px rgba(0,0,0,.10);
  padding: 34px;
  border: 1px solid rgba(58,47,32,.08);
  position: relative;
  overflow: hidden;
  transition: transform .35s ease, box-shadow .35s ease, opacity .45s ease;
}

.rsvp__card::before{
  content:"";
  position:absolute;
  inset:0 0 auto;
  height: 4px;
  background: linear-gradient(90deg, #d8c8b4 0%, #a7c0e4 50%, #d8c8b4 100%);
}

.rsvp__header{
  display:grid;
  grid-template-columns: minmax(0,1.4fr) minmax(260px,.9fr);
  gap: 20px;
  align-items: start;
  margin-bottom: 24px;
}

.rsvp__eyebrow{
  margin: 0 0 8px;
  letter-spacing: .22em;
  text-transform: uppercase;
  font-size: .76rem;
  color: rgba(58,47,32,.62);
}

.rsvp__title{
  font-family:'Cormorant Garamond', serif;
  font-weight:400;
  font-size:2.45rem;
  line-height: 1.02;
  margin:0 0 10px;
  color:#3a2f20;
  text-wrap: balance;
}

.rsvp__subtitle{
  margin: 0;
  opacity:.8;
  font-size:1.03rem;
  line-height: 1.72;
  max-width: 560px;
}

.rsvp__deadline{
  margin: 14px 0 0;
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:10px 14px;
  border-radius:999px;
  background: rgba(255,255,255,.72);
  border: 1px solid rgba(58,47,32,.10);
  color: rgba(58,47,32,.82);
  font-size: .92rem;
  line-height: 1.5;
  box-shadow: 0 10px 24px rgba(0,0,0,.05);
}

.rsvp__deadline strong{
  color:#3a2f20;
  font-weight:600;
}

.rsvp__guestbox{
  background: rgba(255,255,255,.72);
  border: 1px solid rgba(58,47,32,.08);
  border-radius: 20px;
  padding: 16px 18px;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.55);
}

.rsvp__guestlabel{
  display:block;
  font-size: .8rem;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: rgba(58,47,32,.52);
  margin-bottom: 8px;
}

.rsvp__guest{
  margin:0;
  font-size: 1rem;
  line-height: 1.6;
  color:#3a2f20;
}

.rsvp__formbox{
  background: rgba(255,255,255,.48);
  border: 1px solid rgba(58,47,32,.07);
  border-radius: 22px;
  padding: 20px;
}

.rsvp__row{
  margin-top: 14px;
  display:flex;
  flex-direction:column;
  gap: 8px;
}

.rsvp__row:first-child{ margin-top: 0; }

.rsvp__label{
  display:block;
  font-size:.95rem;
  opacity:.88;
}

.rsvp__select,
.rsvp__textarea{
  display:block;
  width:100% !important;
  max-width:100%;
  border:1px solid rgba(58,47,32,.14);
  border-radius: 16px;
  padding: 14px 16px;
  font-family: 'Jost', sans-serif;
  font-size:1rem;
  background:#fff;
  color:#3a2f20;
  outline:none;
  transition: border-color .2s ease, box-shadow .2s ease, background .2s ease;
}

.rsvp__select{
  appearance: none;
  -webkit-appearance: none;
  background-image:
    linear-gradient(45deg, transparent 50%, rgba(58,47,32,.65) 50%),
    linear-gradient(135deg, rgba(58,47,32,.65) 50%, transparent 50%);
  background-position:
    calc(100% - 20px) calc(50% - 3px),
    calc(100% - 14px) calc(50% - 3px);
  background-size: 6px 6px, 6px 6px;
  background-repeat: no-repeat;
  padding-right: 44px;
}

.rsvp__select:focus,
.rsvp__textarea:focus{
  border-color: rgba(58,47,32,.28);
  box-shadow: 0 0 0 6px rgba(58,47,32,.08);
  background:#fffefc;
}

.rsvp__textarea{
  resize: vertical;
  min-height: 120px;
}

.rsvp__actions{
  margin-top: 18px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 16px;
  flex-wrap: wrap;
}

.rsvp__btn{
  border:1px solid rgba(58,47,32,.18);
  background: linear-gradient(180deg, #fffefb 0%, #f6efe5 100%);
  color:#3a2f20;
  padding: 14px 20px;
  border-radius: 999px;
  cursor:pointer;
  font-size: .98rem;
  letter-spacing: .06em;
  text-transform: uppercase;
  transition: transform .15s ease, box-shadow .15s ease, opacity .15s ease, background .2s ease, color .2s ease;
  box-shadow: 0 12px 24px rgba(0,0,0,.10);
}

.rsvp__btn:hover{
  transform: translateY(-2px);
  box-shadow: 0 16px 30px rgba(0,0,0,.10);
  background: #3a2f20;
  color: #fff;
}

.rsvp__btn:active{ transform: translateY(0); }

.rsvp__btn:disabled{
  opacity:.45;
  cursor:not-allowed;
  transform:none;
  box-shadow:none;
}

.rsvp__btn.is-loading{
  opacity: .78;
  pointer-events: none;
}

.rsvp__note{
  margin:0;
  font-size: .92rem;
  line-height: 1.55;
  color: rgba(58,47,32,.66);
  max-width: 380px;
}

.rsvp__status{
  margin-top: 14px;
  min-height: 24px;
  font-size: .98rem;
  opacity:.92;
}

.rsvp__status.is-loading{ color:#6b5b48; }
.rsvp__status.is-success{ color:#2f6f44; font-weight:500; }
.rsvp__status.is-error{ color:#b42318; font-weight:500; }

/* =========================
   MAP MODAL
   ========================= */

.no-scroll{
  overflow: hidden;
  touch-action: none;
}

.mapmodal.is-hidden{ display:none; }

.mapmodal{
  position: fixed;
  inset: 0;
  z-index: 9999;
}

.mapmodal__backdrop{
  position:absolute;
  inset:0;
  background: rgba(21,18,15,.56);
  backdrop-filter: blur(6px);
}

.mapmodal__card{
  position: relative;
  width: min(920px, calc(100% - 24px));
  margin: 24px auto;
  background: linear-gradient(180deg, rgba(247,241,233,.98), rgba(255,248,240,.98));
  border: 1px solid rgba(58,47,32,.10);
  border-radius: 24px;
  padding: 22px;
  box-shadow: 0 30px 80px rgba(0,0,0,.28);
}

.mapmodal__close{
  position: absolute;
  right: 12px;
  top: 12px;
  width: 40px;
  height: 40px;
  border: 1px solid rgba(58,47,32,.12);
  border-radius: 999px;
  background: rgba(255,255,255,.76);
  font-size: 18px;
  cursor: pointer;
  opacity: .88;
  transition: transform .15s ease, opacity .2s ease, background .2s ease;
}

.mapmodal__close:hover{
  opacity: 1;
  transform: translateY(-1px);
  background: #fff;
}

.mapmodal__eyebrow{
  margin: 0 42px 6px 0;
  letter-spacing: .22em;
  text-transform: uppercase;
  font-size: .76rem;
  color: rgba(58,47,32,.56);
}

.mapmodal__title{
  margin: 0 42px 6px 0;
  font-family:'Cormorant Garamond', serif;
  font-weight: 400;
  font-size: 2rem;
  color:#3a2f20;
}

.mapmodal__subtitle{
  margin: 0 0 16px;
  font-size: 1rem;
  line-height: 1.6;
  opacity:.82;
}

.mapmodal__framewrap{
  position: relative;
}

.mapmodal__frame{
  border-radius: 18px;
  overflow: hidden;
  background: #eee;
  aspect-ratio: 16 / 9;
  box-shadow: inset 0 0 0 1px rgba(58,47,32,.06), 0 14px 32px rgba(0,0,0,.08);
}

.mapmodal__frame iframe{
  width: 100%;
  height: 100%;
  border: 0;
  display:block;
}

.mapmodal__actions{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  margin-top: 16px;
}

.mapmodal__btn{
  appearance:none;
  border:1px solid rgba(58,47,32,.18);
  background: linear-gradient(180deg, #fffefc 0%, #f3ece2 100%);
  color:#3a2f20;
  border-radius:999px;
  padding:13px 18px;
  text-decoration:none;
  font: inherit;
  cursor:pointer;
  transition: transform .15s ease, box-shadow .15s ease, background .2s ease, color .2s ease;
  box-shadow: 0 12px 22px rgba(0,0,0,.06);
}

.mapmodal__btn:hover{
  transform: translateY(-1px);
  box-shadow: 0 14px 24px rgba(0,0,0,.08);
  background: #3a2f20;
  color: #fff;
}

.mapmodal__btn--ghost{
  background: transparent;
  box-shadow: none;
}

.mapmodal__btn--ghost:hover{
  background: rgba(58,47,32,.08);
  color:#3a2f20;
}

.mapmodal__helper{
  margin: 12px 2px 0;
  font-size: .93rem;
  color: rgba(58,47,32,.64);
}

.mapmodal__status{
  margin: 8px 2px 0;
  min-height: 22px;
  font-size: .95rem;
  color:#3a2f20;
  opacity:.86;
}

.mapmodal__status.is-success{
  color:#2f6f44;
  font-weight:500;
}


/* =========================
   GIFT MODAL
   ========================= */

.giftmodal.is-hidden{ display:none; }

.giftmodal{
  position: fixed;
  inset: 0;
  z-index: 9999;
}

.giftmodal__backdrop{
  position:absolute;
  inset:0;
  background: rgba(21,18,15,.56);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
}

.giftmodal__card{
  position: relative;
  width: min(720px, calc(100% - 24px));
  margin: 24px auto;
  background: linear-gradient(180deg, rgba(247,241,233,.98), rgba(255,248,240,.98));
  border: 1px solid rgba(58,47,32,.10);
  border-radius: 24px;
  padding: 22px;
  box-shadow: 0 30px 80px rgba(0,0,0,.28);
}

.giftmodal__close{
  position: absolute;
  right: 12px;
  top: 12px;
  width: 40px;
  height: 40px;
  border: 1px solid rgba(58,47,32,.12);
  border-radius: 999px;
  background: rgba(255,255,255,.76);
  font-size: 18px;
  cursor: pointer;
  opacity: .88;
  transition: transform .15s ease, opacity .2s ease, background .2s ease;
}

.giftmodal__close:hover{
  opacity: 1;
  transform: translateY(-1px);
  background: #fff;
}

.giftmodal__eyebrow{
  margin: 0 42px 6px 0;
  letter-spacing: .22em;
  text-transform: uppercase;
  font-size: .76rem;
  color: rgba(58,47,32,.56);
}

.giftmodal__title{
  margin: 0 42px 6px 0;
  font-family:'Cormorant Garamond', serif;
  font-weight: 400;
  font-size: 2rem;
  color:#3a2f20;
}

.giftmodal__subtitle{
  margin: 0 0 16px;
  font-size: 1rem;
  line-height: 1.6;
  opacity:.82;
}

.giftmodal__bank{
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 16px;
  padding: 16px;
  border-radius: 20px;
  background: rgba(255,255,255,.6);
  border: 1px solid rgba(58,47,32,.08);
}

.giftmodal__bankBadge{
  width: 64px;
  height: 64px;
  border-radius: 18px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, #708db7, #58759f);
  color: #fff;
  font-weight: 600;
}

.giftmodal__bankMeta{
  min-width: 0;
}

.giftmodal__bankLabel{
  display: block;
  margin-bottom: 4px;
  font-size: .76rem;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: rgba(58,47,32,.56);
}

.giftmodal__bankValue{
  display: block;
  font-size: 1rem;
  line-height: 1.5;
  color:#3a2f20;
  word-break: break-word;
}

.giftmodal__details{
  display: grid;
  gap: 14px;
}

.giftmodal__detail{
  padding: 16px;
  border-radius: 18px;
  background: rgba(255,255,255,.55);
  border: 1px solid rgba(58,47,32,.08);
}

.giftmodal__label{
  display: block;
  margin-bottom: 8px;
  font-size: .76rem;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: rgba(58,47,32,.56);
}

.giftmodal__valueRow{
  display: flex;
  align-items: center;
  gap: 10px;
}

.giftmodal__value{
  display: block;
  flex: 1;
  padding: 12px 14px;
  border-radius: 14px;
  background: rgba(239,231,219,.72);
  border: 1px solid rgba(58,47,32,.06);
  overflow-wrap: anywhere;
}

.giftmodal__copy{
  border: none;
  border-radius: 14px;
  min-height: 44px;
  padding: 0 18px;
  background: linear-gradient(135deg, #708db7, #58759f);
  color: #fff;
  font-weight: 500;
  cursor: pointer;
  box-shadow: 0 12px 24px rgba(77,104,147,.20);
}

.giftmodal__valueText{
  margin: 0;
  color:#3a2f20;
  line-height: 1.55;
}

.giftmodal__helper{
  margin: 16px 2px 0;
  font-size: .93rem;
  color: rgba(58,47,32,.64);
}

.giftmodal__status{
  margin: 8px 2px 0;
  min-height: 22px;
  font-size: .95rem;
  color:#3a2f20;
  opacity:.86;
}

/* =========================
   REVEAL
   ========================= */

.reveal{
  opacity: 1;
  transform: none;
  transition: opacity .75s ease, transform .75s ease;
  will-change: opacity, transform;
}

.site:not(.is-hidden) .reveal{
  opacity: 0;
  transform: translateY(14px);
}

.site:not(.is-hidden) .reveal.is-visible{
  opacity: 1;
  transform: translateY(0);
}

.reveal[data-reveal-delay="120"]{ transition-delay: .12s; }
.reveal[data-reveal-delay="180"]{ transition-delay: .18s; }

@media (prefers-reduced-motion: reduce){
  .reveal{
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}

/* =========================
   SEPARADOR
   ========================= */

.sep{
  width: min(980px, calc(100% - 40px));
  margin: 28px auto;
  display:flex;
  align-items:center;
  justify-content:center;
  gap: 14px;
}

.sep__line{
  height: 1px;
  flex: 1;
  background: linear-gradient(
    to right,
    transparent,
    rgba(58,47,32,.28),
    transparent
  );
}

.sep__badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding: 8px 14px;
  border-radius: 999px;
  font-family: 'Cormorant Garamond', serif;
  font-weight: 400;
  letter-spacing: .12em;
  color: rgba(58,47,32,.92);
  border: 1px solid rgba(58,47,32,.16);
  background: rgba(255,255,255,.35);
  backdrop-filter: blur(3px);
  box-shadow: 0 10px 24px rgba(0,0,0,.06);
}

/* =========================
   GALERÍA CARRUSEL
   ========================= */

.gallery--carousel{
  padding: var(--section-pad-y) var(--section-pad-x);
  background:#f5efe6;
}

.closing + .gallery--carousel,
.closing + .sep + .gallery--carousel{
  background: linear-gradient(180deg, #f5efe6 0%, #f3ecdf 100%);
}

.gallery__container{
  max-width: 1100px;
  margin: 0 auto;
}

.gallery__header{
  text-align:center;
  margin-bottom: 18px;
}

.gallery__eyebrow{
  margin: 0 0 10px;
  letter-spacing: .22em;
  text-transform: uppercase;
  font-size: .78rem;
  color: rgba(58,47,32,.58);
}

.gallery__title{
  font-family:'Cormorant Garamond', serif;
  font-weight: 400;
  font-size: 2.4rem;
  margin: 0 0 6px;
  color:#3a2f20;
  text-wrap: balance;
}

.gallery__subtitle{
  margin: 0;
  opacity: .78;
  font-size: 1.05rem;
}

.gallery__shell{
  position: relative;
  display:flex;
  align-items:center;
  gap: 10px;
}

.gallery__nav{
  width: 42px;
  height: 42px;
  border-radius: 999px;
  border: 1px solid rgba(58,47,32,.12);
  background: rgba(255,255,255,.72);
  backdrop-filter: blur(6px);
  cursor:pointer;
  font-size: 28px;
  line-height: 1;
  color: rgba(58,47,32,.9);
  box-shadow: 0 16px 34px rgba(0,0,0,.10);
  transition: transform .15s ease, opacity .2s ease;
}

.gallery__nav:hover{ transform: translateY(-1px); }
.gallery__nav:active{ transform: translateY(0); }

.gallery__nav[disabled]{
  opacity:.35;
  cursor:not-allowed;
  box-shadow:none;
}

.gallery__track{
  flex: 1;
  display:flex;
  gap: 14px;
  overflow-x:auto;
  padding: 8px 6px 14px;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  scrollbar-width: none;
}

.gallery__track::-webkit-scrollbar{ display:none; }

.gallery__track.is-dragging{
  cursor: grabbing;
  user-select: none;
}

.gallery__card{
  position:relative;
  border:0;
  padding:0;
  background: transparent;
  cursor:pointer;
  overflow:hidden;
  flex: 0 0 clamp(240px, 34vw, 420px);
  aspect-ratio: 4 / 3;
  border-radius: 18px;
  scroll-snap-align: center;
  box-shadow: 0 18px 44px rgba(0,0,0,.10);
  transform: translateZ(0);
  outline:none;
  transition: transform .25s ease, box-shadow .25s ease;
}

.gallery__card img{
  width:100%;
  height:100%;
  object-fit: cover;
  display:block;
  transform: scale(1.03);
  transition: transform .6s ease;
}

.gallery__veil{
  position:absolute;
  inset:0;
  background: radial-gradient(120% 90% at 50% 20%,
    rgba(255,255,255,.18),
    rgba(0,0,0,.22)
  );
  opacity: .18;
  transition: opacity .35s ease;
}

.gallery__chip{
  position:absolute;
  left: 12px;
  top: 12px;
  padding: 6px 10px;
  border-radius: 999px;
  font-size: .85rem;
  letter-spacing: .10em;
  color: rgba(58,47,32,.92);
  background: rgba(245,239,230,.75);
  border: 1px solid rgba(58,47,32,.12);
  backdrop-filter: blur(6px);
}

.gallery__card:hover{
  transform: translateY(-3px);
  box-shadow: 0 24px 56px rgba(0,0,0,.14);
}

.gallery__card:hover img{ transform: scale(1.10); }
.gallery__card:hover .gallery__veil{ opacity: .08; }

.gallery__card:focus-visible{
  box-shadow: 0 0 0 6px rgba(58,47,32,.10), 0 24px 56px rgba(0,0,0,.14);
}

.gallery__footer{
  margin-top: 10px;
  text-align:center;
}

.gallery__progress{
  height: 6px;
  border-radius: 999px;
  background: rgba(58,47,32,.10);
  overflow:hidden;
  width: min(520px, 92%);
  margin: 0 auto;
}

.gallery__bar{
  display:block;
  height:100%;
  width: 0%;
  background: rgba(58,47,32,.38);
  border-radius: 999px;
  transition: width .15s ease;
}

.gallery__hint{
  margin: 8px 0 0;
  opacity: .65;
  font-size: .95rem;
}

/* =========================
   LIGHTBOX PREMIUM
   ========================= */

.lightbox.is-hidden{ display:none; }

.lightbox{
  position: fixed;
  inset: 0;
  z-index: 99999;
}

.lightbox__backdrop{
  position:absolute;
  inset:0;
  background: rgba(0,0,0,.55);
}

.lightbox__dialog{
  position: relative;
  width: min(980px, calc(100% - 22px));
  margin: 22px auto;
  background: rgba(247,241,233,.92);
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 18px;
  padding: 14px;
  box-shadow: 0 30px 90px rgba(0,0,0,.35);
  backdrop-filter: blur(10px);
}

.lightbox__frame{
  border-radius: 14px;
  overflow:hidden;
  background:#eee;
  aspect-ratio: 16 / 10;
}

.lightbox__img{
  width:100%;
  height:100%;
  object-fit: contain;
  display:block;
  background: #111;
}

.lightbox__close{
  position:absolute;
  top: 10px;
  right: 10px;
  border: 0;
  background: rgba(255,255,255,.85);
  border-radius: 999px;
  width: 36px;
  height: 36px;
  cursor:pointer;
  font-size: 18px;
  opacity: .9;
}

.lightbox__close:hover{ opacity: 1; }

.lightbox__nav{
  position:absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 40px;
  height: 40px;
  border-radius: 999px;
  border: 0;
  cursor:pointer;
  background: rgba(255,255,255,.85);
  font-size: 26px;
  line-height: 1;
  opacity: .9;
}

.lightbox__nav:hover{ opacity: 1; }

.lightbox__nav--prev{ left: 10px; }
.lightbox__nav--next{ right: 10px; }

.lightbox__meta{
  display:flex;
  justify-content:center;
  margin-top: 10px;
}

.lightbox__count{
  font-size: .92rem;
  opacity: .75;
}

/* =========================
   DRESS CODE / PÁGINA 5 PREMIUM
   ========================= */

.dress{
  padding: var(--section-pad-y) var(--section-pad-x);
  background:
    radial-gradient(circle at 16% 24%, rgba(255,255,255,.52), transparent 26%),
    radial-gradient(circle at 86% 18%, rgba(255,255,255,.36), transparent 28%),
    linear-gradient(180deg, #f5efe6 0%, #f1e8dc 100%);
}

.dress__wrap{
  width: min(1180px, calc(100% - 28px));
  margin: 0 auto;
}

.dress__card{
  position: relative;
  overflow: hidden;
  text-align: center;
  padding: clamp(38px, 5vw, 72px) clamp(18px, 5vw, 76px) clamp(30px, 4vw, 50px);
  border-radius: 38px;
  background:
    radial-gradient(circle at 50% 0%, rgba(255,255,255,.76), transparent 44%),
    linear-gradient(180deg, rgba(255,251,245,.94), rgba(255,247,238,.89));
  border: 1px solid rgba(183,135,65,.20);
  box-shadow:
    0 30px 80px rgba(58,47,32,.12),
    inset 0 1px 0 rgba(255,255,255,.62);
}

.dress__card::before{
  content:"";
  position:absolute;
  inset: 18px;
  border: 1px solid rgba(183,135,65,.16);
  border-radius: 28px;
  pointer-events:none;
}

.dress__card::after{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at 0% 58%, rgba(183,135,65,.07), transparent 23%),
    radial-gradient(circle at 100% 58%, rgba(183,135,65,.07), transparent 23%);
  pointer-events:none;
}

.dress__ornament,
.dress__header,
.dress__guide,
.dress__note,
.dress__brand{
  position: relative;
  z-index: 1;
}

.dress__ornament{
  display:flex;
  align-items:center;
  justify-content:center;
  gap: 18px;
  color:#b78641;
  margin: 0 auto 30px;
  opacity:.95;
}

.dress__ornament span{
  width: min(140px, 22vw);
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(183,134,65,.72));
}

.dress__ornament span:last-child{
  background: linear-gradient(90deg, rgba(183,134,65,.72), transparent);
}

.dress__ornament i{
  font-style: normal;
  font-family:'Cormorant Garamond', serif;
  font-size: 1.25rem;
  line-height: 1;
}

.dress__ornament--bottom{
  margin: 30px auto 10px;
}

.dress__eyebrow{
  margin: 0 0 14px;
  text-transform: uppercase;
  letter-spacing: .32em;
  font-size: clamp(.72rem, 1.2vw, .86rem);
  color: #b78641;
}

.dress__title{
  margin: 0;
  font-family:'Cormorant Garamond', serif;
  font-weight: 400;
  font-size: clamp(4rem, 8vw, 7.2rem);
  color: #3a2f20;
  line-height: .92;
  letter-spacing: .01em;
  text-shadow: 0 10px 28px rgba(58,47,32,.10);
}

.dress__miniSep{
  display:flex;
  align-items:center;
  justify-content:center;
  gap: 12px;
  margin: 24px 0 18px;
  color:#b78641;
}

.dress__miniSep span{
  width: 56px;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(183,134,65,.82));
}

.dress__miniSep span:last-child{
  background: linear-gradient(90deg, rgba(183,134,65,.82), transparent);
}

.dress__miniSep i{
  font-style: normal;
  font-size: .9rem;
}

.dress__subtitle{
  margin: 0 auto;
  font-family:'Cormorant Garamond', serif;
  font-style: italic;
  font-size: clamp(1.25rem, 2.2vw, 1.75rem);
  line-height: 1.45;
  letter-spacing: .14em;
  color: rgba(58,47,32,.82);
}

.dress__guide{
  margin: clamp(28px, 4vw, 48px) auto 0;
  display:grid;
  grid-template-columns: minmax(0,1fr) 1px minmax(0,1fr) 1px minmax(0,1fr);
  align-items: stretch;
  gap: clamp(16px, 2.2vw, 34px);
}

.dress__divider{
  width:1px;
  min-height: 150px;
  background: linear-gradient(to bottom, transparent, rgba(183,134,65,.56), transparent);
  align-self:center;
}

.dress__item{
  min-width: 0;
  padding: 0 clamp(2px, 1vw, 12px);
  display:flex;
  flex-direction:column;
  align-items:center;
}

.dress__icon{
  width: clamp(76px, 8vw, 104px);
  height: clamp(76px, 8vw, 104px);
  margin: 0 auto 18px;
  border-radius: 999px;
  border: 1px solid rgba(183,134,65,.75);
  display:flex;
  align-items:center;
  justify-content:center;
  background: rgba(255,255,255,.24);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.50);
}

.dress__icon svg{
  width: 58%;
  height: 58%;
  fill: none;
  stroke: #b78641;
  stroke-width: 1.55;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.dress__icon--colors{
  gap: 9px;
}

.dress__swatch{
  width: 24px;
  height: 24px;
  border-radius:999px;
  border:1px solid rgba(58,47,32,.18);
  display:block;
}

.dress__swatch--cream{ background:#fffaf1; }
.dress__swatch--blue{ background:#233d64; border-color:rgba(35,61,100,.45); }
.dress__swatch--sky{ background:#9fb7ce; border-color:rgba(90,113,135,.38); }

.dress__item h3{
  margin: 0 0 16px;
  font-size: clamp(.88rem, 1.25vw, 1.05rem);
  font-weight: 500;
  letter-spacing: .34em;
  text-transform: uppercase;
  color: #3a2f20;
}

.dress__item h3::after{
  content:"";
  display:block;
  width: 46px;
  height: 1px;
  margin: 12px auto 0;
  background: rgba(183,134,65,.70);
}

.dress__item p{
  margin: 0;
  font-family:'Cormorant Garamond', serif;
  font-size: clamp(1.08rem, 1.7vw, 1.45rem);
  line-height: 1.36;
  color: rgba(58,47,32,.88);
}

.dress__note{
  width: min(860px, 100%);
  margin: clamp(30px, 4vw, 46px) auto 0;
  padding: clamp(18px, 3vw, 28px) clamp(18px, 4vw, 46px);
  border: 1px solid rgba(183,134,65,.40);
  border-radius: 24px;
  display:grid;
  grid-template-columns: auto 1fr auto;
  align-items:center;
  gap: 18px;
  background: rgba(255,255,255,.22);
}

.dress__note p{
  margin: 0;
  font-family:'Cormorant Garamond', serif;
  font-size: clamp(1.12rem, 1.8vw, 1.42rem);
  line-height: 1.45;
  letter-spacing: .10em;
  color: rgba(58,47,32,.86);
}

.dress__leaf{
  color:#b78641;
  font-size: 2rem;
  line-height: 1;
  opacity: .9;
}

.dress__brand{
  margin: 14px 0 0;
  font-family:'Cormorant Garamond', serif;
  letter-spacing: .22em;
  color:#b78641;
  font-size: 1.25rem;
}

@media (max-width: 760px){
  .dress{
    padding: 34px 10px;
  }

  .dress__wrap{
    width: min(100%, 430px);
  }

  .dress__card{
    padding: 34px 13px 26px;
    border-radius: 28px;
  }

  .dress__card::before{
    inset: 10px;
    border-radius: 22px;
  }

  .dress__ornament{
    gap: 10px;
    margin-bottom: 22px;
  }

  .dress__ornament span{
    width: 72px;
  }

  .dress__eyebrow{
    font-size: .67rem;
    letter-spacing: .24em;
    margin-bottom: 10px;
  }

  .dress__title{
    font-size: clamp(3rem, 16vw, 4.25rem);
  }

  .dress__miniSep{
    margin: 17px 0 13px;
  }

  .dress__subtitle{
    font-size: 1.15rem;
    letter-spacing: .09em;
  }

  .dress__guide{
    margin-top: 26px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0;
    border-top: 1px solid rgba(183,134,65,.22);
    border-bottom: 1px solid rgba(183,134,65,.22);
    padding: 18px 0 16px;
  }

  .dress__divider{
    display:none;
  }

  .dress__item{
    padding: 0 7px;
    border-left: 1px solid rgba(183,134,65,.28);
  }

  .dress__item:first-child{
    border-left: 0;
  }

  .dress__icon{
    width: 58px;
    height: 58px;
    margin-bottom: 12px;
  }

  .dress__icon--colors{
    gap: 4px;
  }

  .dress__swatch{
    width: 13px;
    height: 13px;
  }

  .dress__item h3{
    font-size: .64rem;
    letter-spacing: .22em;
    margin-bottom: 10px;
  }

  .dress__item h3::after{
    width: 28px;
    margin-top: 8px;
  }

  .dress__item p{
    font-size: .92rem;
    line-height: 1.25;
  }

  .dress__note{
    margin-top: 22px;
    grid-template-columns: 1fr;
    gap: 8px;
    padding: 17px 14px;
    border-radius: 18px;
  }

  .dress__leaf{
    font-size: 1.25rem;
  }

  .dress__note p{
    font-size: 1rem;
    line-height: 1.36;
    letter-spacing: .06em;
  }

  .dress__brand{
    font-size: 1.02rem;
    margin-top: 12px;
  }
}
/* =========================
   MESA DE REGALOS PREMIUM
   ========================= */

.gifts{
  padding: clamp(38px, 5vw, 72px) 12px;
  background:
    radial-gradient(circle at top center, rgba(255,255,255,.75), transparent 42%),
    linear-gradient(180deg, #f5efe6 0%, #efe6d8 100%);
}

.gifts__wrap{
  width: min(980px, 100%);
  margin: 0 auto;
}

.gifts__wrap--premium{
  width: min(960px, 100%);
}

.gifts__card--premium{
  position: relative;
  overflow: hidden;
  text-align: center;
  padding: clamp(42px, 5vw, 70px) clamp(18px, 5vw, 70px);
  border-radius: 34px;
  background:
    radial-gradient(circle at 50% 0%, rgba(255,255,255,.90), transparent 46%),
    linear-gradient(180deg, rgba(255,251,246,.98), rgba(255,247,238,.94));
  border: 1px solid rgba(185,134,68,.18);
  box-shadow:
    0 28px 70px rgba(58,47,32,.12),
    inset 0 1px 0 rgba(255,255,255,.75);
}

.gifts__card--premium::before{
  content:"";
  position:absolute;
  inset: 16px;
  border-radius: 26px;
  border: 1px solid rgba(185,134,68,.14);
  pointer-events:none;
}

.gifts__card--premium::after{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at 0% 42%, rgba(185,134,68,.07), transparent 22%),
    radial-gradient(circle at 100% 42%, rgba(185,134,68,.07), transparent 22%);
  pointer-events:none;
}

.gifts__card--premium > *{
  position: relative;
  z-index: 1;
}

/* Ornamentos */

.gifts__ornament{
  display:flex;
  align-items:center;
  justify-content:center;
  gap: 16px;
  width: min(480px, 86%);
  margin: 0 auto 38px;
  color:#c7924d;
}

.gifts__ornament--bottom{
  margin: 46px auto 0;
}

.gifts__ornament span{
  width: clamp(46px, 12vw, 108px);
  height:1px;
  background: linear-gradient(90deg, transparent, rgba(199,146,77,.75));
}

.gifts__ornament span:last-child{
  background: linear-gradient(90deg, rgba(199,146,77,.75), transparent);
}

.gifts__ornament i{
  font-style: normal;
  font-size: 1.28rem;
  line-height: 1;
  color:#c7924d;
}

.gifts__leaf{
  width: clamp(58px, 11vw, 96px);
  height: auto;
  fill: none;
  stroke: #c7924d;
  stroke-width: 2.1;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.gifts__leaf--right{
  transform: scaleX(-1);
}

/* Header */

.gifts__header--premium{
  max-width: 740px;
  margin: 0 auto;
}

.gifts__eyebrow{
  margin: 0 0 18px;
  text-transform: uppercase;
  letter-spacing: .48em;
  font-size: clamp(.72rem, 1.3vw, .95rem);
  font-weight: 400;
  color:#c7924d;
}

.gifts__title{
  margin: 0;
  font-family:'Cormorant Garamond', serif;
  font-weight: 400;
  font-size: clamp(4.1rem, 8.8vw, 7.2rem);
  line-height: .86;
  letter-spacing: .01em;
  color:#34291f;
  text-shadow: 0 12px 28px rgba(58,47,32,.10);
}

.gifts__divider,
.gifts__miniDivider{
  display:flex;
  align-items:center;
  justify-content:center;
  gap: 14px;
  color:#c7924d;
}

.gifts__divider{
  width: min(210px, 54%);
  margin: 30px auto 30px;
}

.gifts__divider span,
.gifts__miniDivider span{
  height:1px;
  flex:1;
  background: linear-gradient(90deg, transparent, rgba(199,146,77,.78));
}

.gifts__divider span:last-child,
.gifts__miniDivider span:last-child{
  background: linear-gradient(90deg, rgba(199,146,77,.78), transparent);
}

.gifts__divider i,
.gifts__miniDivider i{
  font-style: normal;
  font-size: .95rem;
  line-height: 1;
}

.gifts__subtitle{
  width: min(650px, 100%);
  margin: 0 auto;
  font-size: clamp(1.02rem, 1.75vw, 1.35rem);
  line-height: 1.88;
  color: rgba(58,47,32,.88);
}

/* Opciones */

.gifts__options{
  display:grid;
  gap: 24px;
  width: min(820px, 100%);
  margin: clamp(34px, 5vw, 58px) auto 0;
}

.gifts__option{
  min-height: 170px;
  display:grid;
  grid-template-columns: 190px 1px 1fr;
  align-items:center;
  border-radius: 26px;
  background:
    radial-gradient(circle at 0% 50%, rgba(255,255,255,.85), transparent 32%),
    linear-gradient(180deg, rgba(255,255,255,.72), rgba(255,250,244,.58));
  border: 1px solid rgba(185,134,68,.16);
  box-shadow:
    0 20px 44px rgba(58,47,32,.075),
    inset 0 1px 0 rgba(255,255,255,.74);
  overflow:hidden;
}

.gifts__optionIcon{
  width: 112px;
  height: 112px;
  margin: 0 auto;
  border-radius: 999px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:
    radial-gradient(circle at 35% 25%, rgba(255,255,255,.72), transparent 38%),
    linear-gradient(180deg, rgba(248,238,225,.95), rgba(242,228,209,.74));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.62);
}

.gifts__optionIcon svg{
  width: 58px;
  height: 58px;
  fill: none;
  stroke: #c7924d;
  stroke-width: 3.2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.gifts__optionSeparator{
  height: 118px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap: 10px;
  color:#c7924d;
}

.gifts__optionSeparator span{
  width: 1px;
  flex: 1;
  background: linear-gradient(180deg, transparent, rgba(199,146,77,.65));
}

.gifts__optionSeparator span:last-child{
  background: linear-gradient(180deg, rgba(199,146,77,.65), transparent);
}

.gifts__optionSeparator i{
  font-style: normal;
  font-size: 1.2rem;
  line-height: 1;
}

.gifts__optionText{
  padding: 0 clamp(18px, 4vw, 56px);
}

.gifts__optionText h3{
  margin: 0;
  text-transform: uppercase;
  letter-spacing: .34em;
  font-size: clamp(.9rem, 1.55vw, 1.15rem);
  font-weight: 400;
  color:#34291f;
}

.gifts__miniDivider{
  width: 150px;
  margin: 24px auto 0;
}

.gifts__miniDivider i{
  font-size: .78rem;
}

/* Botón */

.gifts__actions{
  margin-top: clamp(30px, 4.5vw, 48px);
}

.gifts__btn--premium{
  appearance:none;
  border:0;
  width: min(620px, 92%);
  min-height: 70px;
  border-radius: 999px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap: 22px;
  padding: 18px 34px;
  cursor:pointer;
  background:
    radial-gradient(circle at 22% 18%, rgba(255,255,255,.22), transparent 28%),
    linear-gradient(135deg, #1c3d70 0%, #0d2a54 100%);
  color:#fff;
  box-shadow:
    0 18px 34px rgba(13,42,84,.28),
    inset 0 1px 0 rgba(255,255,255,.20);
  transition: transform .2s ease, box-shadow .2s ease, filter .2s ease;
}

.gifts__btn--premium:hover{
  transform: translateY(-2px);
  box-shadow:
    0 24px 42px rgba(13,42,84,.34),
    inset 0 1px 0 rgba(255,255,255,.22);
  filter: brightness(1.04);
}

.gifts__btn--premium svg{
  width: 28px;
  height: 28px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.9;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.gifts__btn--premium span{
  text-transform: uppercase;
  letter-spacing: .30em;
  font-size: clamp(.76rem, 1.35vw, .98rem);
  font-weight: 400;
}

/* Mobile */

@media (max-width: 720px){
  .gifts{
    padding: 34px 10px;
  }

  .gifts__card--premium{
    padding: 34px 13px 34px;
    border-radius: 28px;
  }

  .gifts__card--premium::before{
    inset: 10px;
    border-radius: 22px;
  }

  .gifts__ornament{
    gap: 9px;
    width: 100%;
    margin-bottom: 26px;
  }

  .gifts__ornament--bottom{
    margin-top: 34px;
  }

  .gifts__ornament span{
    width: 46px;
  }

  .gifts__leaf{
    width: 54px;
    stroke-width: 2;
  }

  .gifts__eyebrow{
    font-size: .68rem;
    letter-spacing: .34em;
    margin-bottom: 14px;
  }

  .gifts__title{
    font-size: clamp(3.25rem, 16vw, 4.75rem);
    line-height: .92;
  }

  .gifts__divider{
    width: 150px;
    margin: 22px auto 24px;
  }

  .gifts__subtitle{
    width: min(290px, 100%);
    font-size: .93rem;
    line-height: 1.65;
  }

  .gifts__options{
    gap: 18px;
    margin-top: 28px;
  }

  .gifts__option{
    min-height: 112px;
    grid-template-columns: 88px 1px 1fr;
    border-radius: 20px;
  }

  .gifts__optionIcon{
    width: 58px;
    height: 58px;
  }

  .gifts__optionIcon svg{
    width: 36px;
    height: 36px;
    stroke-width: 3;
  }

  .gifts__optionSeparator{
    height: 78px;
    gap: 5px;
  }

  .gifts__optionSeparator i{
    font-size: .85rem;
  }

  .gifts__optionText{
    padding: 0 14px;
  }

  .gifts__optionText h3{
    font-size: .76rem;
    letter-spacing: .08em;
    line-height: 1.25;
    font-weight: 500;
  }

  .gifts__miniDivider{
    width: 72px;
    margin-top: 14px;
    gap: 8px;
  }

  .gifts__miniDivider i{
    font-size: .66rem;
  }

  .gifts__btn--premium{
    width: 100%;
    min-height: 58px;
    padding: 15px 18px;
    gap: 14px;
  }

  .gifts__btn--premium svg{
    width: 21px;
    height: 21px;
  }

  .gifts__btn--premium span{
    font-size: .64rem;
    letter-spacing: .26em;
  }
}

/* =========================
   CIERRE FINAL + FOOTER
   ========================= */

.closing{
  position: relative;
  padding: calc(var(--section-pad-y) * 1.05) var(--section-pad-x) calc(var(--section-pad-y) * .9);
  background:
    radial-gradient(circle at 50% 0%, rgba(255,255,255,.72), transparent 34%),
    radial-gradient(circle at 18% 42%, rgba(167,192,228,.16), transparent 30%),
    radial-gradient(circle at 88% 24%, rgba(198,161,107,.10), transparent 28%),
    linear-gradient(180deg, #f5efe6 0%, #f3ecdf 100%);
  overflow: hidden;
}

.closing::before,
.closing::after{
  content:"";
  position:absolute;
  width: 170px;
  height: 230px;
  background:
    radial-gradient(ellipse at 38% 18%, rgba(198,161,107,.18) 0 6px, transparent 7px),
    radial-gradient(ellipse at 56% 35%, rgba(198,161,107,.14) 0 5px, transparent 6px),
    radial-gradient(ellipse at 42% 54%, rgba(198,161,107,.12) 0 5px, transparent 6px),
    linear-gradient(120deg, transparent 0 46%, rgba(198,161,107,.30) 47% 48%, transparent 49%);
  opacity: .42;
  pointer-events:none;
}

.closing::before{
  left: max(-46px, calc(50% - 520px));
  bottom: 18px;
  transform: rotate(-18deg);
}

.closing::after{
  right: max(-54px, calc(50% - 520px));
  top: 28px;
  transform: rotate(18deg) scaleX(-1);
}

.closing__wrap{
  position: relative;
  width:min(760px, calc(100% - 40px));
  margin:0 auto;
  text-align:center;
  padding: clamp(34px, 5vw, 54px) clamp(22px, 5vw, 58px) clamp(32px, 4vw, 46px);
  border-radius:34px;
  background:
    radial-gradient(circle at top center, rgba(255,255,255,.96), transparent 58%),
    linear-gradient(180deg, rgba(255,252,247,.96), rgba(250,240,226,.94));
  border:1px solid rgba(198,161,107,.24);
  box-shadow:
    0 30px 76px rgba(58,47,32,.13),
    inset 0 1px 0 rgba(255,255,255,.78);
  overflow:hidden;
}

.closing__wrap::before{
  content:"";
  position:absolute;
  inset:14px;
  border-radius:26px;
  border:1px solid rgba(198,161,107,.18);
  pointer-events:none;
}

.closing__wrap::after{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at 8% 22%, rgba(198,161,107,.07), transparent 24%),
    radial-gradient(circle at 92% 78%, rgba(167,192,228,.10), transparent 28%);
  pointer-events:none;
}

.closing__wrap > *{
  position: relative;
  z-index: 1;
}

.closing__ornament,
.closing__divider{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  color:#c6a16b;
}

.closing__ornament{
  width:min(280px, 76%);
  margin:0 auto 20px;
  opacity:.96;
}

.closing__ornament--bottom{
  margin:24px auto 0;
}

.closing__ornament span,
.closing__divider span{
  height:1px;
  flex:1;
  background:linear-gradient(90deg, transparent, rgba(198,161,107,.82));
}

.closing__ornament span:last-child,
.closing__divider span:last-child{
  background:linear-gradient(90deg, rgba(198,161,107,.82), transparent);
}

.closing__ornament i,
.closing__divider i{
  font-style:normal;
  line-height:1;
  color:#c6a16b;
}

.closing__ornament i{ font-size:1.05rem; }
.closing__divider i{ font-size:.96rem; }

.closing__eyebrow{
  margin:0 0 14px;
  text-transform:uppercase;
  letter-spacing:.38em;
  font-size:.78rem;
  color:#b58a4b;
}

.closing__title{
  max-width: 520px;
  margin:0 auto;
  font-family:'Cormorant Garamond', serif;
  font-weight:400;
  font-size:clamp(2.55rem, 7.2vw, 4.45rem);
  line-height:.96;
  color:#3a2f20;
  text-wrap:balance;
  text-shadow:0 12px 28px rgba(58,47,32,.08);
}

.closing__divider{
  width:min(250px, 78%);
  margin:24px auto 22px;
}

.closing__text{
  max-width:520px;
  margin:0 auto;
  line-height:1.9;
  color:rgba(58,47,32,.78);
  font-size:1.02rem;
}

.closing__signature{
  margin-top:28px;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:8px;
}

.closing__names{
  margin:0;
  font-family:'Cormorant Garamond', serif;
  font-size:clamp(1.85rem, 4vw, 2.35rem);
  color:#3a2f20;
}

.closing__date{
  margin:0;
  letter-spacing:.26em;
  text-transform:uppercase;
  font-size:.78rem;
  color:rgba(58,47,32,.58);
}

.footer{
  padding: 8px var(--section-pad-x) 34px;
  background:#f3ecdf;
}

.footer__wrap{
  width:min(760px, calc(100% - 40px));
  margin:0 auto;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:14px;
}

.footer__line{
  flex:1;
  height:1px;
  background: linear-gradient(to right, transparent, rgba(58,47,32,.22), transparent);
}

.footer__brand{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:8px 14px;
  border-radius:999px;
  background:rgba(255,255,255,.4);
  border:1px solid rgba(58,47,32,.12);
  font-family:'Cormorant Garamond', serif;
  font-size:1.2rem;
  color:#4b3b29;
  box-shadow:0 8px 20px rgba(0,0,0,.05);
}

/* =========================
   ANIMACIÓN SCROLL
   ========================= */

@keyframes scrollCue{
  0%, 100%{ transform: translate(-50%, 0); opacity:1; }
  60%{ transform: translate(-50%, 10px); opacity:.35; }
}

/* =========================
   RESPONSIVE
   ========================= */

@media (min-width: 769px){
  :root{
    --envelope-vw: 55vw;
    --envelope-max: 560px;
    --seal-size: 18%;
    --seal-y: 51%;
  }
}

@media (max-width: 900px){
  .venues__grid,
  .gifts__grid{
    grid-template-columns:1fr;
  }
}

@media (max-width: 768px){
  :root{
    --envelope-vw: 82vw;
    --envelope-max: 560px;
    --seal-size: 18%;
    --seal-y: 51%;
  }
}

@media (max-width: 760px){
  .rsvp__header{
    grid-template-columns: 1fr;
  }

  .rsvp__guestbox{
    padding: 14px 16px;
  }
}

@media (max-width: 700px){
  .hero{
    height: 100svh;
    min-height: 100svh;
    padding-top: 0;
  }

  .hero__content{
    width:min(100%, calc(100% - 18px));
    height: 100%;
    min-height: 0;
    padding: clamp(28px, 7vh, 58px) 10px 92px;
    gap: 10px;
    justify-content: center;
  }

  .hero__intro{
    gap: 8px;
    margin-bottom: 0;
  }

  .hero__ornament span{ width: 34px; }
  .hero__ornament i{ font-size: 1.12rem; }

  .hero__invitationCopy{ gap: 7px; }

  .hero__kicker{
    letter-spacing: .30em;
  }

  .hero__kicker--small{
    font-size: clamp(.62rem, 2.8vw, .76rem);
  }

  .hero__kicker--main{
    font-size: clamp(.84rem, 3.7vw, 1.05rem);
    letter-spacing: .26em;
  }

  .hero__miniDivider span{ width: 42px; }

  .hero__names{
    font-size: clamp(2.65rem, 13vw, 4.2rem);
    letter-spacing: .035em;
    line-height: .96;
  }

  .hero__dateLine{
    gap: 12px;
    margin-top: 0;
  }

  .hero__dateWord{
    font-size: .74rem;
    letter-spacing: .22em;
  }

  .hero__dateDay{
    font-size: clamp(2rem, 10vw, 2.8rem);
  }

  .hero__dateSep{
    height: 30px;
  }

  .hero__leafDivider{
    width: 132px;
    height: 14px;
  }

  .hero__eyebrow{
    font-size:.70rem;
    letter-spacing:.30em;
    margin-bottom: 2px;
  }

  .countdown{
    width: min(100%, 380px);
    gap: 10px;
    padding: 15px 14px;
    border-radius: 24px;
    flex-wrap: nowrap;
  }

  .countdown__separator{ display:none; }
  .countdown__block{ min-width: 0; flex: 1; }
  .countdown__number{ font-size: clamp(1.55rem, 7vw, 2rem); }
  .countdown__label{ font-size: .58rem; letter-spacing: .14em; }

  .hero__scrollText{
    font-size: .72rem;
    letter-spacing: .22em;
  }

  .hero__scrollIcon{
    width: 20px;
    height: 34px;
  }
}

@media (max-width: 640px){
  .story{
    padding:
      calc(var(--section-pad-y) + 8px)
      16px
      calc(var(--section-pad-y) * .95);
  }

  .story__card{
    padding: 28px 16px 30px;
    border-radius: 26px;
  }

  .story__card::after{
    inset: 12px;
    border-radius: 20px;
  }

  .story__title{
    font-size: clamp(2rem, 8.8vw, 3rem);
    line-height: 1.1;
  }

  .story__text{
    max-width: 320px;
    margin: 18px auto 24px;
    font-size: .97rem;
    line-height: 1.82;
  }

  .story__photo--featured img{
    aspect-ratio: 4 / 3;
    border-radius: 24px;
  }

  .story__date{
    font-size: .84rem;
    letter-spacing: .17em;
    margin-bottom: 14px;
  }

  .story__signature{
    gap: 10px;
  }

  .story__signatureLine{
    width: 64px;
  }

  .story__monogram{
    min-width: 68px;
    height: 42px;
    font-size: 1.08rem;
    padding: 0 14px;
  }

  .story__names{
    font-size: 1.18rem;
  }

  .timeline{
    padding: calc(var(--section-pad-y) * .9) 16px;
  }

  .timeline__list::before{ left: 18px; }

  .timeline__item{
    grid-template-columns: 1fr;
    align-items: start;
    gap: 10px;
    padding-left: 40px;
  }

  .timeline__time{
    text-align:left;
    font-size: .98rem;
    opacity: .85;
  }

  .timeline__dot{
    position:absolute;
    left: 18px;
    top: 16px;
    transform: translateX(-50%);
  }

  .timeline__card{ padding: 14px 16px; }

  .mapmodal{
    display:flex;
    align-items:flex-end;
    justify-content:center;
  }

  .mapmodal__card{
    width: 100%;
    margin: 0;
    padding: 16px;
    border-radius: 24px 24px 0 0;
    max-height: min(90svh, 90vh);
    overflow:auto;
  }

  .mapmodal__title{
    font-size: 1.72rem;
    margin-right: 44px;
  }

  .mapmodal__subtitle,
  .mapmodal__helper{
    font-size: .95rem;
  }

  .mapmodal__frame{
    aspect-ratio: 4 / 3;
    border-radius: 16px;
  }

  .mapmodal__actions{
    flex-direction: column;
  }

  .mapmodal__btn{
    width:100%;
    text-align:center;
    justify-content:center;
  }

  .dress__title{
    font-size:2.2rem;
  }

  .dress__illustration{
    width:200px;
  }

  .dress__pill{
    width:100%;
    text-align:center;
  }

  .dress__wrap,
  .gifts__wrap{
    width:min(calc(100% - 20px), 1000px);
  }

  .gifts__btn{
    width:100%;
  }

  .giftmodal{
    display:flex;
    align-items:flex-end;
    justify-content:center;
  }

  .giftmodal__card{
    width:100%;
    margin:0;
    max-width:none;
    border-radius:26px 26px 0 0;
    padding:26px 18px 20px;
    max-height:min(90svh, 90vh);
    overflow:auto;
    -webkit-overflow-scrolling: touch;
    box-shadow:0 -10px 40px rgba(0,0,0,.25);
  }

  .giftmodal__close{
    position: sticky;
    top: 0;
    margin-left: auto;
    z-index: 5;
    background: rgba(255,255,255,.9);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
  }

  .giftmodal__bank{
    align-items:flex-start;
    flex-direction:column;
  }

  .giftmodal__valueRow{
    flex-direction:column;
    align-items:stretch;
  }

  .giftmodal__copy{
    width:100%;
  }

  .closing{
    padding: 40px 10px 34px;
  }

  .closing::before,
  .closing::after{
    width:120px;
    height:170px;
    opacity:.28;
  }

  .closing__wrap{
    width:min(calc(100% - 20px), 760px);
    padding:34px 18px 30px;
    border-radius:28px;
  }

  .closing__wrap::before{
    inset:10px;
    border-radius:22px;
  }

  .closing__eyebrow{
    font-size:.68rem;
    letter-spacing:.30em;
  }

  .closing__title{
    font-size:clamp(2.25rem, 10vw, 3.25rem);
  }

  .closing__divider{
    margin:20px auto 18px;
  }

  .closing__text{
    font-size:.96rem;
    line-height:1.76;
  }

  .closing__names{
    font-size:1.75rem;
  }

  .closing__date{
    font-size:.70rem;
    letter-spacing:.22em;
  }

  .footer{
    padding-bottom:26px;
  }

  .footer__wrap{
    width:min(calc(100% - 20px), 760px);
  }
}

@media (max-width: 560px){
  .gallery--carousel{
    padding: calc(var(--section-pad-y) * .9) 18px;
    background:
      linear-gradient(180deg, #f7f1e8 0%, #f3ecdf 100%);
  }

  .gallery__container{
    max-width: 100%;
  }

  .gallery__header{
    margin-bottom: 18px;
    text-align: center;
  }

  .gallery__title{
    font-size: clamp(2rem, 8vw, 2.35rem);
    line-height: 1.08;
    margin-bottom: 8px;
  }

  .gallery__subtitle{
    font-size: .96rem;
    line-height: 1.55;
    max-width: 290px;
    margin: 0 auto;
    color: rgba(58,47,32,.72);
  }

  .gallery__nav{
    display: none;
  }

  .gallery__shell{
    gap: 0;
  }

  .gallery__track{
    gap: 14px;
    padding: 8px 2px 16px;
    scroll-padding-inline: 20px;
  }

  .gallery__card{
    flex: 0 0 78vw;
    max-width: 78vw;
    aspect-ratio: 4 / 5.2;
    border-radius: 26px;
    box-shadow:
      0 18px 38px rgba(0,0,0,.10),
      0 4px 10px rgba(0,0,0,.04);
    background: rgba(255,255,255,.72);
    border: 1px solid rgba(58,47,32,.06);
  }

  .gallery__card img{
    transform: scale(1.01);
  }

  .gallery__card:hover{
    transform: none;
    box-shadow:
      0 18px 38px rgba(0,0,0,.10),
      0 4px 10px rgba(0,0,0,.04);
  }

  .gallery__card:hover img{
    transform: scale(1.01);
  }

  .gallery__veil{
    opacity: .10;
    background: linear-gradient(
      180deg,
      rgba(255,255,255,.14) 0%,
      rgba(0,0,0,.10) 100%
    );
  }

  .gallery__chip{
    left: 12px;
    top: 12px;
    padding: 7px 11px;
    font-size: .78rem;
    letter-spacing: .10em;
    border-radius: 999px;
    background: rgba(250,246,240,.88);
    border: 1px solid rgba(58,47,32,.08);
    box-shadow: 0 8px 18px rgba(0,0,0,.06);
  }

  .gallery__footer{
    margin-top: 8px;
  }

  .gallery__progress{
    width: min(180px, 58%);
    height: 5px;
    background: rgba(58,47,32,.10);
  }

  .gallery__bar{
    background: rgba(58,47,32,.32);
  }

  .lightbox__dialog{
    margin: 12px auto;
    padding: 12px;
  }

  .lightbox__nav{
    display: none;
  }

  .lightbox__frame{
    aspect-ratio: 4 / 5;
    border-radius: 16px;
  }
}

@media (max-width: 520px){
  :root{
    --envelope-vw: 118vw;
    --envelope-max: 640px;
    --seal-size: 17%;
    --seal-y: 51%;
    --section-pad-y: clamp(34px, 6.2vw, 54px);
    --section-pad-x: 16px;
    --after-hero-gap: clamp(12px, 3.2vw, 18px);
  }

  .navbar{ padding:14px 18px; }
  .countdown{ gap:8px; }
  .countdown__number{ font-size:1.45rem; }
  .hero__names{ font-size: clamp(2.35rem, 12.5vw, 3.45rem); }
  .hero__kicker--main{ font-size: .78rem; }
  .hero__dateWord{ font-size: .66rem; }

  .lobby__top{
    padding-top: clamp(42px, 7vh, 66px);
    padding-bottom: 0;
  }

  .lobby__bottom{
    padding-top: 2px;
    padding-bottom: 12px;
  }

  .lobby__name{
    font-size: clamp(4.05rem, 18vw, 5.05rem);
    line-height: .82;
  }

  .lobby__amp{
    font-size: clamp(2.55rem, 11vw, 3.35rem);
  }

  .lobby__amp-line span{
    width: clamp(48px, 17vw, 76px);
  }

  .lobby__stage{
    transform: translateY(14px);
  }

  .rsvp{
    padding-left: 16px;
    padding-right: 16px;
  }

  .rsvp__card{
    padding: 22px 18px;
    border-radius: 22px;
  }

  .rsvp__title{
    font-size: 2.08rem;
  }

  .rsvp__subtitle,
  .rsvp__guest,
  .rsvp__note{
    font-size: .95rem;
  }

  .rsvp__formbox{
    padding: 16px;
    border-radius: 18px;
  }

  .rsvp__select,
  .rsvp__textarea{
    font-size: 16px;
  }

  .rsvp__actions{
    align-items: stretch;
  }

  .rsvp__btn{
    width:100%;
    text-align:center;
  }

  .rsvp__note{
    max-width:none;
  }

  .rsvp__deadline{
    display:block;
    font-size:.9rem;
    padding:10px 12px;
  }

  .sep{
    width: calc(100% - 28px);
    margin: 22px auto;
    gap: 12px;
  }

  .sep__badge{
    padding: 7px 12px;
    letter-spacing: .10em;
  }
}

@media (max-width: 450px){
  :root{
    --envelope-vw: 126vw;
    --envelope-max: 660px;
    --seal-size: 18%;
    --seal-y: 51%;
  }

  .lobby__top{
    padding-top: 48px;
    padding-bottom: 0;
  }

  .lobby__name{
    font-size: clamp(3.85rem, 17.4vw, 4.8rem);
    line-height: .82;
  }
}

@media (max-height: 700px) and (max-width: 520px){
  :root{
    --envelope-vw: 112vw;
    --envelope-max: 540px;
    --seal-size: 18%;
    --seal-y: 51%;
  }

  .lobby__top{
    padding-top: 30px;
    padding-bottom: 0;
  }

  .lobby__bottom{
    padding-top: 2px;
    padding-bottom: 8px;
  }

  .lobby__name{
    font-size: clamp(3.2rem, 14vw, 4rem);
    line-height: .82;
  }

  .lobby__amp{
    font-size: clamp(2rem, 9vw, 2.7rem);
  }

  .lobby__stage{
    transform: translateY(8px);
  }
}

/* =========================
   AJUSTE V2 - BENDICIÓN COMO DISEÑO ORIGINAL
   Mantiene dos columnas también en celular y agrega detalles gráficos.
   ========================= */

.blessing__card{
  padding-top: clamp(42px, 5vw, 72px);
  padding-bottom: clamp(42px, 5vw, 72px);
}

.blessing__ornament{
  width: min(380px, 70vw);
  gap: 12px;
}

.blessing__ornament i{
  position: relative;
  color: transparent;
  width: 34px;
  height: 20px;
}

.blessing__ornament i::before{
  content: "❧";
  position: absolute;
  inset: auto 0 -2px 0;
  color: #b58443;
  font-size: 1.35rem;
  transform: rotate(90deg);
  line-height: 1;
}

.blessing__eyebrow{
  margin-bottom: 18px;
  color: rgba(58,47,32,.78);
}

.blessing__title{
  max-width: 780px;
  margin-left: auto;
  margin-right: auto;
}

.blessing__photo{
  position: relative;
  width: min(760px, 100%);
  margin-bottom: clamp(38px, 4vw, 52px);
}

.blessing__photo::before,
.blessing__photo::after{
  content:"";
  position:absolute;
  bottom: 0;
  width: clamp(76px, 12vw, 132px);
  height: clamp(150px, 22vw, 250px);
  background-repeat: no-repeat;
  background-size: contain;
  background-position: center bottom;
  opacity: .88;
  pointer-events:none;
  z-index: 2;
}

.blessing__photo::before{
  left: clamp(-68px, -5vw, -24px);
  background-image: url("data:image/svg+xml,%3Csvg width='120' height='240' viewBox='0 0 120 240' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M94 222C45 167 36 105 48 18' stroke='%23B58443' stroke-width='1.5' stroke-linecap='round'/%3E%3Cpath d='M49 65C24 45 21 25 44 2C61 27 62 48 49 65Z' stroke='%23B58443' stroke-width='1.2'/%3E%3Cpath d='M55 93C28 78 17 58 29 31C53 49 64 70 55 93Z' stroke='%23B58443' stroke-width='1.2'/%3E%3Cpath d='M62 121C35 107 23 87 36 60C60 77 71 98 62 121Z' stroke='%23B58443' stroke-width='1.2'/%3E%3Cpath d='M70 151C43 136 32 116 44 90C68 107 79 128 70 151Z' stroke='%23B58443' stroke-width='1.2'/%3E%3Cpath d='M81 184C54 169 42 150 55 123C79 140 90 161 81 184Z' stroke='%23B58443' stroke-width='1.2'/%3E%3Cpath d='M47 82C75 67 90 47 83 21C57 34 43 57 47 82Z' stroke='%23B58443' stroke-width='1.2'/%3E%3Cpath d='M56 113C84 98 100 78 92 52C66 65 52 88 56 113Z' stroke='%23B58443' stroke-width='1.2'/%3E%3Cpath d='M66 146C94 131 109 111 102 85C76 98 62 121 66 146Z' stroke='%23B58443' stroke-width='1.2'/%3E%3Cpath d='M78 183C105 168 113 148 107 126C83 139 70 160 78 183Z' stroke='%23B58443' stroke-width='1.2'/%3E%3C/svg%3E");
}

.blessing__photo::after{
  right: clamp(-68px, -5vw, -24px);
  transform: scaleX(-1);
  background-image: url("data:image/svg+xml,%3Csvg width='120' height='240' viewBox='0 0 120 240' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M94 222C45 167 36 105 48 18' stroke='%23B58443' stroke-width='1.5' stroke-linecap='round'/%3E%3Cpath d='M49 65C24 45 21 25 44 2C61 27 62 48 49 65Z' stroke='%23B58443' stroke-width='1.2'/%3E%3Cpath d='M55 93C28 78 17 58 29 31C53 49 64 70 55 93Z' stroke='%23B58443' stroke-width='1.2'/%3E%3Cpath d='M62 121C35 107 23 87 36 60C60 77 71 98 62 121Z' stroke='%23B58443' stroke-width='1.2'/%3E%3Cpath d='M70 151C43 136 32 116 44 90C68 107 79 128 70 151Z' stroke='%23B58443' stroke-width='1.2'/%3E%3Cpath d='M81 184C54 169 42 150 55 123C79 140 90 161 81 184Z' stroke='%23B58443' stroke-width='1.2'/%3E%3Cpath d='M47 82C75 67 90 47 83 21C57 34 43 57 47 82Z' stroke='%23B58443' stroke-width='1.2'/%3E%3Cpath d='M56 113C84 98 100 78 92 52C66 65 52 88 56 113Z' stroke='%23B58443' stroke-width='1.2'/%3E%3Cpath d='M66 146C94 131 109 111 102 85C76 98 62 121 66 146Z' stroke='%23B58443' stroke-width='1.2'/%3E%3Cpath d='M78 183C105 168 113 148 107 126C83 139 70 160 78 183Z' stroke='%23B58443' stroke-width='1.2'/%3E%3C/svg%3E");
}

.blessing__parents{
  grid-template-columns: minmax(0,1fr) 48px minmax(0,1fr);
  align-items: stretch;
  gap: clamp(22px, 4vw, 46px);
}

.blessing__parent h3{
  white-space: normal;
}

@media (max-width: 720px){
  .blessing{
    padding: 30px 10px 38px;
  }

  .blessing__card{
    padding: 34px 14px 38px;
    border-radius: 26px;
  }

  .blessing__card::after{
    inset: 10px;
    border-radius: 20px;
  }

  .blessing__ornament{
    width: min(250px, 72vw);
    margin-bottom: 20px;
  }

  .blessing__eyebrow{
    font-size: .68rem;
    letter-spacing: .30em;
    margin-bottom: 12px;
  }

  .blessing__title{
    font-size: clamp(2.15rem, 10.6vw, 3.25rem);
    line-height: .96;
    letter-spacing: .055em;
  }

  .blessing__divider{
    margin: 18px auto 24px;
    width: min(150px, 42vw);
  }

  .blessing__photo{
    width: min(100%, 620px);
    margin-bottom: 34px;
  }

  .blessing__photo img{
    aspect-ratio: 16 / 8;
    object-position: center;
    border-radius: 20px;
  }

  .blessing__photo::before,
  .blessing__photo::after{
    width: clamp(42px, 14vw, 76px);
    height: clamp(92px, 28vw, 150px);
    bottom: 0;
    opacity: .85;
  }

  .blessing__photo::before{
    left: -22px;
  }

  .blessing__photo::after{
    right: -22px;
  }

  .blessing__parents{
    width: 100%;
    grid-template-columns: minmax(0,1fr) 20px minmax(0,1fr);
    gap: clamp(8px, 2.4vw, 14px);
  }

  .blessing__side{
    padding: 0;
  }

  .blessing__centerLine{
    width: auto;
    height: auto;
    margin: 0;
  }

  .blessing__centerLine::before{
    top: 0;
    bottom: 0;
    left: 50%;
    right: auto;
    width: 1px;
    height: auto;
    background: linear-gradient(to bottom, transparent, rgba(181,132,67,.58), transparent);
  }

  .blessing__centerLine i{
    width: 22px;
    height: 22px;
    font-size: .68rem;
  }

  .blessing__role{
    margin-bottom: 10px;
    font-size: .64rem;
    letter-spacing: .24em;
  }

  .blessing__role::before,
  .blessing__role::after{
    margin: 0 5px;
  }

  .blessing__miniLeaf{
    font-size: 1rem;
    margin-bottom: 12px;
  }

  .blessing__parent h3{
    font-size: clamp(1.12rem, 5.2vw, 1.55rem);
    line-height: 1.04;
  }

  .blessing__parent p{
    margin-top: 7px;
    font-size: .58rem;
    letter-spacing: .24em;
  }

  .blessing__smallDivider{
    width: min(76px, 62%);
    margin: 16px auto 18px;
  }

  .blessing__ornament--bottom{
    margin-top: 30px;
  }
}

@media (max-width: 390px){
  .blessing__card{
    padding-left: 12px;
    padding-right: 12px;
  }

  .blessing__parents{
    grid-template-columns: minmax(0,1fr) 16px minmax(0,1fr);
    gap: 6px;
  }

  .blessing__parent h3{
    font-size: clamp(1.02rem, 5vw, 1.34rem);
  }

  .blessing__role{
    font-size: .58rem;
    letter-spacing: .20em;
  }

  .blessing__parent p{
    font-size: .53rem;
    letter-spacing: .20em;
  }
}


/* =========================
   AJUSTE PREMIUM EXTRA - DRESS CODE V2
   ========================= */
.dress__flourish{display:flex;align-items:center;justify-content:center;gap:16px;width:min(560px,82%);margin:0 auto 30px;color:#b78641;position:relative;z-index:1}.dress__flourish span{flex:1;height:1px;background:linear-gradient(90deg,transparent,rgba(183,134,65,.70))}.dress__flourish span:last-child{background:linear-gradient(90deg,rgba(183,134,65,.70),transparent)}.dress__flourish svg{width:min(190px,36vw);height:auto;fill:none;stroke:currentColor;stroke-width:1.55;stroke-linecap:round;stroke-linejoin:round;opacity:.95}.dress__flourish--bottom{margin:30px auto 10px}.dress__ornament{display:none}.dress__card{background:radial-gradient(circle at 50% 0%,rgba(255,255,255,.80),transparent 46%),radial-gradient(circle at 8% 70%,rgba(183,135,65,.08),transparent 22%),radial-gradient(circle at 92% 70%,rgba(183,135,65,.08),transparent 22%),linear-gradient(180deg,rgba(255,252,247,.97),rgba(255,247,238,.91))}.dress__icon{width:clamp(86px,8.6vw,114px);height:clamp(86px,8.6vw,114px);background:radial-gradient(circle at 50% 35%,rgba(255,255,255,.60),transparent 64%),rgba(255,255,255,.26);box-shadow:inset 0 1px 0 rgba(255,255,255,.55),0 12px 30px rgba(183,134,65,.08)}.dress__svg{width:67%;height:67%;fill:none;stroke:#b78641;stroke-width:1.45;stroke-linecap:round;stroke-linejoin:round}.dress__svg--dress{width:64%;height:64%}.dress__note{position:relative;display:flex;align-items:center;justify-content:center;min-height:130px;padding:clamp(24px,3.2vw,34px) clamp(68px,8vw,118px);background:rgba(255,255,255,.26)}.dress__noteLeaf{position:absolute;top:50%;width:78px;height:auto;transform:translateY(-50%);fill:none;stroke:#b78641;stroke-width:1.1;stroke-linecap:round;stroke-linejoin:round;opacity:.86}.dress__noteLeaf--left{left:34px}.dress__noteLeaf--right{right:34px}.dress__leaf{display:none}.dress__guide{margin-top:clamp(30px,4vw,50px)}.dress__divider{min-height:176px}.dress__swatch{box-shadow:inset 0 1px 0 rgba(255,255,255,.55),0 4px 10px rgba(0,0,0,.06)}
@media (max-width:760px){.dress__flourish{gap:8px;margin-bottom:21px;width:82%}.dress__flourish svg{width:108px;stroke-width:1.35}.dress__icon{width:64px;height:64px}.dress__svg{width:69%;height:69%;stroke-width:1.35}.dress__note{min-height:126px;padding:20px 38px}.dress__noteLeaf{width:32px;opacity:.72}.dress__noteLeaf--left{left:8px}.dress__noteLeaf--right{right:8px}.dress__item{padding:0 6px}.dress__item p{font-size:.90rem}.dress__flourish--bottom{margin-top:28px}}

/* =========================
   DRESS CODE V3 - ÍCONOS PREMIUM
   ========================= */
.dress__guide{
  border-top: 1px solid rgba(183,134,65,.22);
  border-bottom: 1px solid rgba(183,134,65,.22);
  padding: clamp(22px, 2.6vw, 34px) 0;
}

.dress__icon{
  width: clamp(92px, 8.8vw, 126px) !important;
  height: clamp(92px, 8.8vw, 126px) !important;
  border-color: rgba(183,134,65,.78) !important;
  background:
    radial-gradient(circle at 50% 38%, rgba(255,255,255,.74), transparent 60%),
    linear-gradient(180deg, rgba(255,252,247,.58), rgba(255,246,235,.32)) !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.70),
    0 12px 26px rgba(183,134,65,.08) !important;
}

.dress__svg{
  width: 78% !important;
  height: 78% !important;
  stroke: #b78641 !important;
  stroke-width: 1.45 !important;
  fill: none !important;
  stroke-linecap: round !important;
  stroke-linejoin: round !important;
  filter: drop-shadow(0 4px 8px rgba(183,134,65,.08));
}

.dress__svg--dress{
  width: 74% !important;
  height: 74% !important;
}

.dress__icon--colors{
  gap: 7px !important;
}

.dress__swatch{
  width: clamp(21px, 2vw, 28px) !important;
  height: clamp(21px, 2vw, 28px) !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.7),
    0 5px 12px rgba(0,0,0,.07);
}

.dress__item h3{
  margin-top: 0 !important;
  margin-bottom: 12px !important;
}

.dress__item p{
  max-width: 210px;
}

@media (max-width:760px){
  .dress__card{
    padding-left: 10px !important;
    padding-right: 10px !important;
  }
  .dress__guide{
    gap: 0 !important;
    padding: 18px 0 !important;
    grid-template-columns: minmax(0,1fr) 1px minmax(0,1fr) 1px minmax(0,1fr) !important;
  }
  .dress__item{
    padding: 0 5px !important;
  }
  .dress__icon{
    width: 70px !important;
    height: 70px !important;
    margin-bottom: 13px !important;
  }
  .dress__svg{
    width: 78% !important;
    height: 78% !important;
    stroke-width: 1.55 !important;
  }
  .dress__item h3{
    font-size: .62rem !important;
    letter-spacing: .30em !important;
    margin-bottom: 10px !important;
  }
  .dress__item h3::after{
    width: 30px !important;
    margin-top: 8px !important;
  }
  .dress__item p{
    font-size: .82rem !important;
    line-height: 1.28 !important;
    max-width: 90px;
  }
  .dress__divider{
    min-height: 182px !important;
  }
  .dress__swatch{
    width: 15px !important;
    height: 15px !important;
  }
  .dress__icon--colors{
    gap: 4px !important;
  }
}

@media (max-width:380px){
  .dress__item p{
    font-size: .76rem !important;
  }
  .dress__icon{
    width: 64px !important;
    height: 64px !important;
  }
}


/* =========================
   DRESS CODE V4 - FINAL PREMIUM RESPONSIVE
   Clase nueva dc5__ para evitar que se encimen estilos anteriores
   ========================= */
.dc5{
  padding: var(--section-pad-y) var(--section-pad-x);
  background:
    radial-gradient(circle at top center, rgba(255,255,255,.55), transparent 42%),
    linear-gradient(180deg, #f3ecdf 0%, #efe6d8 100%);
}

.dc5__wrap{
  width: min(1120px, calc(100% - 24px));
  margin: 0 auto;
}

.dc5__card{
  position: relative;
  overflow: hidden;
  border-radius: 34px;
  padding: clamp(34px, 5vw, 64px) clamp(18px, 5vw, 70px) clamp(26px, 4vw, 44px);
  text-align: center;
  color: #3a2f20;
  background:
    radial-gradient(circle at 50% 0%, rgba(255,255,255,.88), transparent 46%),
    radial-gradient(circle at 0% 62%, rgba(183,134,65,.08), transparent 26%),
    radial-gradient(circle at 100% 62%, rgba(183,134,65,.08), transparent 26%),
    linear-gradient(180deg, rgba(255,252,247,.98), rgba(255,247,238,.94));
  border: 1px solid rgba(183,134,65,.18);
  box-shadow:
    0 30px 70px rgba(58,47,32,.10),
    inset 0 1px 0 rgba(255,255,255,.70);
}

.dc5__card::before{
  content:"";
  position:absolute;
  inset: 16px;
  border: 1px solid rgba(183,134,65,.16);
  border-radius: 26px;
  pointer-events:none;
}

.dc5__card::after{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg, rgba(183,134,65,.03), transparent 18%, transparent 82%, rgba(183,134,65,.03)),
    radial-gradient(circle at 50% 44%, rgba(255,255,255,.55), transparent 38%);
  pointer-events:none;
}

.dc5__flourish,
.dc5__header,
.dc5__guide,
.dc5__note,
.dc5__brand{
  position: relative;
  z-index: 1;
}

.dc5__flourish{
  width: min(560px, 78%);
  margin: 0 auto clamp(22px, 3vw, 34px);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  color: #b78641;
}

.dc5__flourish span{
  flex: 1;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(183,134,65,.76));
}

.dc5__flourish span:last-child{
  background: linear-gradient(90deg, rgba(183,134,65,.76), transparent);
}

.dc5__flourish svg{
  width: min(220px, 34vw);
  height: auto;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.45;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.dc5__eyebrow{
  margin: 0 0 12px;
  font-size: .82rem;
  letter-spacing: .42em;
  text-transform: uppercase;
  color: #b78641;
}

.dc5__title{
  margin: 0;
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(3.2rem, 8vw, 7.4rem);
  font-weight: 400;
  line-height: .86;
  color: #3a2f20;
}

.dc5__miniSep{
  margin: clamp(16px, 2vw, 24px) auto clamp(14px, 2vw, 20px);
  display:flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  color:#b78641;
}

.dc5__miniSep span{
  width:64px;
  height:1px;
  background:linear-gradient(90deg, transparent, currentColor);
}
.dc5__miniSep span:last-child{ background:linear-gradient(90deg, currentColor, transparent); }
.dc5__miniSep i{ font-style:normal; font-size:.8rem; }

.dc5__subtitle{
  margin: 0;
  font-family: 'Cormorant Garamond', serif;
  font-style: italic;
  font-size: clamp(1.22rem, 2.4vw, 1.7rem);
  line-height: 1.35;
  letter-spacing: .08em;
  color: rgba(58,47,32,.82);
}

.dc5__guide{
  margin-top: clamp(28px, 4.4vw, 54px);
  padding: clamp(26px, 3.8vw, 44px) 0 clamp(22px, 3vw, 36px);
  display:grid;
  grid-template-columns: minmax(0,1fr) 1px minmax(0,1fr) 1px minmax(0,1fr);
  gap: 0;
  align-items: start;
  border-top:1px solid rgba(183,134,65,.18);
  border-bottom:1px solid rgba(183,134,65,.18);
}

.dc5__item{
  min-width: 0;
  display:flex;
  flex-direction:column;
  align-items:center;
  padding: 0 clamp(12px, 2.6vw, 34px);
}

.dc5__divider{
  width:1px;
  min-height: 230px;
  background: linear-gradient(180deg, transparent, rgba(183,134,65,.42), transparent);
}

.dc5__icon{
  width: clamp(96px, 10vw, 134px);
  height: clamp(96px, 10vw, 134px);
  border: 1.25px solid rgba(183,134,65,.80);
  border-radius: 999px;
  display:flex;
  align-items:center;
  justify-content:center;
  margin: 0 auto 20px;
  background: radial-gradient(circle at 50% 38%, rgba(255,255,255,.72), rgba(255,247,238,.25));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.65), 0 14px 28px rgba(183,134,65,.08);
}

.dc5__svg{
  width: 78%;
  height: 78%;
  fill:none;
  stroke:#b78641;
  stroke-width:1.55;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.dc5__svg--dress{ width: 75%; height: 75%; }

.dc5__icon--colors{
  gap: 9px;
}

.dc5__swatch{
  width: clamp(24px, 2.2vw, 32px);
  height: clamp(24px, 2.2vw, 32px);
  border-radius:999px;
  display:block;
  border:1px solid rgba(183,134,65,.52);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.7), 0 5px 12px rgba(0,0,0,.07);
}
.dc5__swatch--ivory{ background:#fffaf1; }
.dc5__swatch--navy{ background:#233d64; border-color:rgba(35,61,100,.45); }
.dc5__swatch--blue{ background:#9fb7ce; border-color:rgba(90,113,135,.38); }
.dc5__swatch--red{
    background: #8B1E2D;
}

.dc5__item h3{
  margin:0;
  font-size:.82rem;
  letter-spacing:.42em;
  text-transform:uppercase;
  font-weight:500;
  color:#3a2f20;
}

.dc5__item h3::after{
  content:"";
  display:block;
  width:42px;
  height:1px;
  margin:13px auto 16px;
  background:#b78641;
}

.dc5__item p{
  margin:0;
  max-width: 230px;
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(1.05rem, 1.65vw, 1.34rem);
  line-height: 1.28;
  color: rgba(58,47,32,.86);
}

.dc5__note{
  margin: clamp(26px, 3.4vw, 44px) auto 0;
  width: min(850px, 100%);
  min-height: 126px;
  border:1px solid rgba(183,134,65,.38);
  border-radius: 22px;
  display:flex;
  align-items:center;
  justify-content:center;
  padding: 26px clamp(78px, 9vw, 120px);
  background: rgba(255,255,255,.26);
}

.dc5__note p{
  margin:0;
  font-family:'Cormorant Garamond', serif;
  font-size: clamp(1.05rem, 1.8vw, 1.35rem);
  line-height: 1.45;
  letter-spacing:.08em;
  color: rgba(58,47,32,.82);
}

.dc5__leaf{
  position:absolute;
  top:50%;
  width:72px;
  height:auto;
  transform:translateY(-50%);
  fill:none;
  stroke:#b78641;
  stroke-width:1.05;
  stroke-linecap:round;
  stroke-linejoin:round;
  opacity:.78;
}
.dc5__leaf--left{ left:34px; }
.dc5__leaf--right{ right:34px; }

.dc5__flourish--bottom{
  margin-top: clamp(28px, 3.8vw, 46px);
  margin-bottom: 10px;
}

.dc5__brand{
  margin: 0;
  font-family:'Cormorant Garamond', serif;
  font-size:1.22rem;
  letter-spacing:.24em;
  color:#b78641;
}

@media (max-width: 760px){
  .dc5{
    padding: 34px 14px;
  }
  .dc5__wrap{
    width: min(430px, 100%);
  }
  .dc5__card{
    border-radius: 28px;
    padding: 28px 10px 24px;
  }
  .dc5__card::before{
    inset: 9px;
    border-radius: 22px;
  }
  .dc5__flourish{
    width: 76%;
    gap: 8px;
    margin-bottom: 20px;
  }
  .dc5__flourish svg{
    width: 108px;
    stroke-width: 1.35;
  }
  .dc5__eyebrow{
    font-size:.60rem;
    letter-spacing:.34em;
    margin-bottom: 8px;
  }
  .dc5__title{
    font-size: 2.35rem;
    line-height: .95;
  }
  .dc5__miniSep{
    margin: 15px auto 12px;
    gap:9px;
  }
  .dc5__miniSep span{ width:48px; }
  .dc5__subtitle{
    font-size: 1.05rem;
    line-height: 1.38;
  }
  .dc5__guide{
    margin-top: 24px;
    padding: 18px 0 17px;
    grid-template-columns: minmax(0,1fr) 1px minmax(0,1fr) 1px minmax(0,1fr);
  }
  .dc5__item{
    padding: 0 5px;
  }
  .dc5__divider{
    min-height: 174px;
  }
  .dc5__icon{
    width: 62px;
    height: 62px;
    margin-bottom: 12px;
  }
  .dc5__svg{
    width: 79%;
    height: 79%;
    stroke-width: 1.65;
  }
  .dc5__svg--dress{
    width: 76%;
    height: 76%;
  }
  .dc5__icon--colors{
    gap: 4px;
  }
  .dc5__swatch{
    width: 14px;
    height: 14px;
  }
  .dc5__item h3{
    font-size:.54rem;
    letter-spacing:.30em;
    white-space: nowrap;
  }
  .dc5__item h3::after{
    width: 30px;
    margin: 8px auto 10px;
  }
  .dc5__item p{
    max-width: 92px;
    font-size:.82rem;
    line-height:1.20;
  }
  .dc5__note{
    margin-top: 22px;
    min-height: 118px;
    padding: 20px 34px;
    border-radius: 17px;
  }
  .dc5__note p{
    font-size: .94rem;
    line-height:1.42;
    letter-spacing:.045em;
  }
  .dc5__leaf{
    width: 30px;
    opacity:.75;
  }
  .dc5__leaf--left{ left:8px; }
  .dc5__leaf--right{ right:8px; }
  .dc5__flourish--bottom{
    margin-top: 24px;
    margin-bottom: 10px;
  }
  .dc5__brand{
    font-size:1rem;
  }
}

@media (max-width: 360px){
  .dc5__card{ padding-left: 8px; padding-right: 8px; }
  .dc5__item{ padding:0 3px; }
  .dc5__icon{ width:56px; height:56px; }
  .dc5__item h3{ font-size:.49rem; letter-spacing:.25em; }
  .dc5__item p{ font-size:.76rem; max-width:82px; }
  .dc5__divider{ min-height:166px; }
  .dc5__swatch{ width:12px; height:12px; }
  .dc5__note{ padding-left:30px; padding-right:30px; }
}

/* =========================
   NUESTRA HISTORIA EN FOTOS / REEL HORIZONTAL
   ========================= */

.photo-reel{
  position: relative;
  padding: clamp(58px, 8vw, 96px) 0 clamp(70px, 9vw, 110px);
  background:
    radial-gradient(circle at 18% 28%, rgba(255,255,255,.75), transparent 34%),
    radial-gradient(circle at 84% 72%, rgba(255,255,255,.62), transparent 32%),
    linear-gradient(180deg, #f5efe6 0%, #fffaf2 46%, #f3ebdf 100%);
  overflow: hidden;
}

.photo-reel::before,
.photo-reel::after{
  content:"";
  position:absolute;
  pointer-events:none;
  opacity:.75;
  width: 260px;
  height: 360px;
  background:
    radial-gradient(circle at 50% 100%, rgba(198,161,107,.22) 0 2px, transparent 3px),
    linear-gradient(130deg, transparent 46%, rgba(198,161,107,.32) 47%, transparent 48%);
  background-size: 38px 38px, 100% 100%;
}

.photo-reel::before{
  left:-120px;
  top:120px;
  transform: rotate(-18deg);
}

.photo-reel::after{
  right:-110px;
  bottom:50px;
  transform: rotate(18deg);
}

.photo-reel__wrap{
  position: relative;
  z-index: 1;
  width: 100%;
  margin: 0 auto;
}

.photo-reel__topLine{
  width: min(520px, calc(100% - 44px));
  margin: 0 auto clamp(48px, 8vw, 70px);
  display:flex;
  align-items:center;
  justify-content:center;
  gap: 18px;
  color:#8a6d45;
}

.photo-reel__topLine span{
  flex:1;
  height:1px;
  background: linear-gradient(90deg, transparent, rgba(198,161,107,.75), transparent);
}

.photo-reel__topLine i{
  font-style: normal;
  font-family:'Cormorant Garamond', serif;
  font-size: 1.25rem;
  padding: 10px 22px;
  border-radius:999px;
  background: rgba(255,255,255,.62);
  box-shadow: 0 14px 34px rgba(58,47,32,.08);
}

.photo-reel__header{
  text-align:center;
  width: min(680px, calc(100% - 34px));
  margin: 0 auto clamp(30px, 6vw, 52px);
}

.photo-reel__heart{
  color:#c6a16b;
  font-size: 1.8rem;
  margin-bottom: 14px;
}

.photo-reel__eyebrow{
  margin: 0 0 8px;
  font-size: .78rem;
  letter-spacing: .36em;
  text-transform: uppercase;
  color: rgba(58,47,32,.58);
}

.photo-reel__title{
  margin:0;
  font-family:'Cormorant Garamond', serif;
  font-weight:400;
  font-size: clamp(3.1rem, 10vw, 5.2rem);
  line-height:.96;
  color:#3a2f20;
  text-shadow: 0 14px 28px rgba(58,47,32,.07);
}

.photo-reel__title em{
  display:block;
  font-family:'Great Vibes', cursive;
  font-style: normal;
  font-size: clamp(3rem, 9vw, 5rem);
  line-height:.9;
  color:#c6a16b;
  margin-top: 4px;
}

.photo-reel__divider{
  width: min(310px, 72vw);
  margin: 24px auto 0;
  display:flex;
  align-items:center;
  justify-content:center;
  gap: 14px;
  color:#c6a16b;
}

.photo-reel__divider span,
.photo-reel__bottomHeart span{
  height:1px;
  flex:1;
  background: linear-gradient(90deg, transparent, rgba(198,161,107,.72), transparent);
}

.photo-reel__divider i,
.photo-reel__bottomHeart i{
  font-style:normal;
}

.photo-reel__viewport{
  width: 100%;
  overflow: hidden;
}

.photo-reel__track{
  display:flex;
  gap: clamp(16px, 4vw, 26px);
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  scroll-behavior:smooth;
  scrollbar-width:none;
  padding: 12px max(22px, calc((100vw - 440px) / 2)) 22px;
}

.photo-reel__track::-webkit-scrollbar{
  display:none;
}

.photo-reel__card{
  flex: 0 0 min(78vw, 420px);
  height: clamp(360px, 74vw, 540px);
  border: 1px solid rgba(198,161,107,.42);
  border-radius: 34px;
  background:
    linear-gradient(180deg, rgba(255,255,255,.86), rgba(255,249,239,.95));
  padding: 10px;
  box-shadow:
    0 28px 58px rgba(58,47,32,.14),
    inset 0 1px 0 rgba(255,255,255,.75);
  scroll-snap-align: center;
  overflow:hidden;
  cursor:pointer;
  transform: translateZ(0);
}

.photo-reel__card img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  border-radius: 26px;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.45);
}

.photo-reel__card--active{
  transform: scale(1.02);
}

.photo-reel__dots{
  display:flex;
  justify-content:center;
  align-items:center;
  gap: 12px;
  margin-top: 10px;
}

.photo-reel__dots span{
  width: 10px;
  height: 10px;
  border-radius: 999px;
  background: rgba(58,47,32,.16);
}

.photo-reel__dots span.is-active{
  width: 18px;
  background:#c6a16b;
}

.photo-reel__bottomHeart{
  width: min(310px, 72vw);
  margin: 34px auto 0;
  display:flex;
  align-items:center;
  justify-content:center;
  gap: 18px;
  color:#c6a16b;
  font-size: 2.1rem;
}

/* Mobile fino */
@media (max-width: 720px){
  .photo-reel{
    padding: 54px 0 72px;
  }

  .photo-reel__topLine{
    margin-bottom: 44px;
  }

  .photo-reel__header{
    margin-bottom: 28px;
  }

  .photo-reel__track{
    gap: 18px;
    padding-left: 24px;
    padding-right: 24px;
  }

  .photo-reel__card{
    flex-basis: 78vw;
    height: 430px;
    border-radius: 30px;
  }

  .photo-reel__card img{
    border-radius: 22px;
  }
}

@media (max-width: 420px){
  .photo-reel__card{
    flex-basis: 82vw;
    height: 390px;
  }

  .photo-reel__title{
    font-size: 3.05rem;
  }

  .photo-reel__title em{
    font-size: 3.2rem;
  }
}

/* FIX Dress Code Mobile - iconos centrados y sin encimarse */

@media (max-width: 720px){
  .dc5__guide{
    display: grid;
    grid-template-columns: 1fr;
    gap: 28px;
  }

  .dc5__divider{
    display: none;
  }

  .dc5__item{
    width: 100%;
    max-width: 260px;
    margin: 0 auto;
    padding: 0;
    text-align: center;
  }

  .dc5__icon,
  .dc5__icon--photo,
  .dc5__icon--colors{
    width: 138px;
    height: 138px;
    margin: 0 auto 18px;
  }

  .dc5__icon--photo img{
    width: 58%;
    height: 58%;
    object-fit: contain;
  }

  .dc5__icon--colors{
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
  }

  .dc5__item h3{
    margin-top: 0;
  }

  .dc5__item p{
    max-width: 220px;
    margin-left: auto;
    margin-right: auto;
  }
}

/* =========================================================
   FIX FINAL - DRESS CODE PREMIUM
   Corrige tamaño de iconos en computadora y mantiene móvil bien
   ========================================================= */

/* Base para las imágenes nuevas del dress code */
.dc5__icon--photo{
  overflow: hidden;
}

.dc5__icon--photo img{
  display: block;
  width: 62px;
  height: 62px;
  max-width: 68%;
  max-height: 68%;
  object-fit: contain;
}

/* Bolita roja elegante */
.dc5__swatch--red{
  background: #8B1E2D;
  border-color: rgba(139,30,45,.45);
}

/* Computadora / escritorio */
@media (min-width: 721px){
  .dc5__guide{
    grid-template-columns: minmax(0,1fr) 1px minmax(0,1fr) 1px minmax(0,1fr);
    align-items: start;
  }

  .dc5__item{
    text-align: center;
  }

  .dc5__icon,
  .dc5__icon--photo,
  .dc5__icon--colors{
    width: 132px;
    height: 132px;
    margin: 0 auto 20px;
  }

  .dc5__icon--photo img{
    width: 62px;
    height: 62px;
    max-width: 68%;
    max-height: 68%;
  }

  .dc5__icon--colors{
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
  }
}

/* Celular */
@media (max-width: 720px){
  .dc5__guide{
    display: grid;
    grid-template-columns: 1fr;
    gap: 32px;
    align-items: center;
  }

  .dc5__divider{
    display: none;
  }

  .dc5__item{
    width: 100%;
    max-width: 260px;
    margin: 0 auto;
    padding: 0;
    text-align: center;
  }

  .dc5__icon,
  .dc5__icon--photo,
  .dc5__icon--colors{
    width: 138px;
    height: 138px;
    margin: 0 auto 18px;
  }

  .dc5__icon--photo img{
    width: 62%;
    height: 62%;
    max-width: 68%;
    max-height: 68%;
    object-fit: contain;
  }

  .dc5__icon--colors{
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
  }

  .dc5__item h3{
    margin-top: 0;
  }

  .dc5__item p{
    max-width: 220px;
    margin-left: auto;
    margin-right: auto;
  }
}

/* =========================================================
   FIX FINAL DEFINITIVO - Hojitas nuevas PNG en Bendición
   ========================================================= */

.blessing__photo{
  position: relative !important;
  overflow: visible !important;
}

/* Apagar ramas antiguas que venían como ::before / ::after */
.blessing__photo::before,
.blessing__photo::after{
  content: none !important;
  display: none !important;
  background: none !important;
  background-image: none !important;
}

/* =========================================================
   FIX FINAL DEFINITIVO - Bendición / Padres
   Foto más elegante + hojitas PNG nuevas
   ========================================================= */

.blessing__photo{
  position: relative !important;
  overflow: visible !important;
  width: min(820px, 100%) !important;
  margin: 0 auto 42px !important;
}

/* Apaga ramas antiguas que venían como pseudo-elementos */
.blessing__photo::before,
.blessing__photo::after{
  content: none !important;
  display: none !important;
  background: none !important;
  background-image: none !important;
}

/* Foto principal */
.blessing__photo > img:not(.blessing__photoLeaf){
  display: block !important;
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 16 / 10 !important;
  object-fit: cover !important;
  object-position: center 60% !important;
  border-radius: 28px !important;
  filter: grayscale(1) contrast(.96) brightness(1.06) !important;
  box-shadow:
    0 28px 58px rgba(58,47,32,.14),
    0 8px 18px rgba(58,47,32,.06) !important;
}

/* Hojitas PNG nuevas */
.blessing__photo > img.blessing__photoLeaf{
  position: absolute !important;
  display: block !important;

  width: 205px !important;
  height: auto !important;
  max-width: none !important;
  max-height: none !important;
  aspect-ratio: auto !important;

  object-fit: contain !important;
  object-position: center !important;

  border-radius: 0 !important;
  box-shadow: none !important;

  bottom: -35px !important;
  z-index: 5 !important;
  pointer-events: none !important;
  opacity: .94 !important;

  filter:
    sepia(1)
    saturate(2.2)
    hue-rotate(350deg)
    brightness(1.08)
    contrast(1.04)
    drop-shadow(0 2px 3px rgba(181,132,67,.12)) !important;
}

/* Izquierda espejeada */
.blessing__photo > img.blessing__photoLeaf--left{
  left: -62px !important;
  right: auto !important;
  transform: scaleX(-1) !important;
}

/* Derecha normal */
.blessing__photo > img.blessing__photoLeaf--right{
  right: -62px !important;
  left: auto !important;
  transform: scaleX(1) !important;
}

/* Celular */
@media (max-width: 720px){
  .blessing__photo{
    width: 100% !important;
    margin: 0 auto 34px !important;
  }

  .blessing__photo > img:not(.blessing__photoLeaf){
    aspect-ratio: 16 / 10 !important;
object-position: center 60% !important;
    object-position: center 58% !important;
    border-radius: 22px !important;
  }

  .blessing__photo > img.blessing__photoLeaf{
    width: 150px !important;
    height: auto !important;
    bottom: -25px !important;
    opacity: .94 !important;
  }

  .blessing__photo > img.blessing__photoLeaf--left{
    left: -54px !important;
    right: auto !important;
    transform: scaleX(-1) !important;
  }

  .blessing__photo > img.blessing__photoLeaf--right{
    right: -54px !important;
    left: auto !important;
    transform: scaleX(1) !important;
  }
}

/* =========================================================
   FIX FINAL - ITINERARIO PREMIUM EN CELULAR
   Mantiene el diseño de la referencia: icono grande a la izquierda,
   línea vertical fina y tarjeta a la derecha.
   ========================================================= */

@media (max-width: 720px){
  .timeline{
    padding: 28px 10px 38px !important;
  }

  .timeline__container--premium{
    width: min(100%, 360px) !important;
    padding: 22px 12px 26px !important;
    border-radius: 24px !important;
    background:
      radial-gradient(circle at 50% 0%, rgba(255,255,255,.94), transparent 42%),
      linear-gradient(180deg, rgba(255,251,245,.97), rgba(247,239,227,.94)) !important;
  }

  .timeline__container--premium::before{
    inset: 7px !important;
    border-radius: 20px !important;
  }

  .timeline__topLines{
    width: 88% !important;
    margin: 0 auto 20px !important;
    gap: 10px !important;
  }

  .timeline__topLines strong{
    min-width: 54px !important;
    padding: 7px 12px !important;
    font-size: .82rem !important;
  }

  .timeline__header{
    margin-bottom: 22px !important;
  }

  .timeline__title{
    font-size: clamp(2.35rem, 10.5vw, 3.05rem) !important;
    line-height: .96 !important;
    letter-spacing: .035em !important;
  }

  .timeline__divider{
    width: 190px !important;
    margin: 13px auto 12px !important;
  }

  .timeline__subtitle{
    font-family:'Cormorant Garamond', serif !important;
    font-style: italic !important;
    font-size: 1.08rem !important;
    color: rgba(58,47,32,.62) !important;
  }

  .timeline__list,
  .timeline__list--premium{
    gap: 14px !important;
  }

  .timeline__list::before,
  .timeline__list--premium::before{
    content:"" !important;
    position:absolute !important;
    left: 116px !important;
    top: 18px !important;
    bottom: 18px !important;
    width: 1px !important;
    background: linear-gradient(180deg, transparent, rgba(181,132,67,.42), transparent) !important;
    border-radius: 0 !important;
  }

  .timeline__item{
    display: grid !important;
    grid-template-columns: 92px minmax(0, 1fr) !important;
    gap: 14px !important;
    align-items: center !important;
    padding-left: 0 !important;
  }

  .timeline__iconBox{
    position: relative !important;
    width: 78px !important;
    height: 78px !important;
    aspect-ratio: 1 / 1 !important;
    margin: 0 auto !important;
    border-radius: 999px !important;
    background:
      radial-gradient(circle at 38% 30%, rgba(255,255,255,.78), rgba(255,250,243,.34) 52%, rgba(246,235,219,.50) 100%) !important;
    border: 1px solid rgba(181,132,67,.38) !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.85) !important;
  }

  .timeline__iconBox::before{
    content:"❧" !important;
    display:block !important;
    position:absolute !important;
    left: -7px !important;
    bottom: -4px !important;
    font-size: 1.55rem !important;
    color: rgba(181,132,67,.76) !important;
    transform: rotate(-28deg) !important;
  }

  .timeline__iconBox::after{
    content:"" !important;
    display:block !important;
    position:absolute !important;
    right: -18px !important;
    left: auto !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    width: 5px !important;
    height: 5px !important;
    border-radius: 999px !important;
    background:#b58443 !important;
    box-shadow: 0 0 0 5px rgba(255,250,243,.92) !important;
  }

  .timeline__icon{
    font-size: 1.9rem !important;
    line-height: 1 !important;
    filter: sepia(.45) saturate(.72) brightness(.90) !important;
  }

  .timeline__content{
    border-radius: 17px !important;
    padding: 13px 14px 14px !important;
    background: rgba(255,252,247,.88) !important;
    border: 1px solid rgba(181,132,67,.09) !important;
    box-shadow:
      0 12px 28px rgba(58,47,32,.075),
      inset 0 1px 0 rgba(255,255,255,.78) !important;
  }

  .timeline__time{
    display:block !important;
    text-align:left !important;
    margin: 0 0 7px !important;
    font-size: .78rem !important;
    letter-spacing: .14em !important;
    color:#b58443 !important;
    opacity: 1 !important;
  }

  .timeline__cardTitle{
    font-size: 1.45rem !important;
    line-height: 1.04 !important;
    margin: 0 !important;
  }

  .timeline__miniSep{
    display:flex !important;
    width: 112px !important;
    gap: 8px !important;
    margin: 9px 0 10px !important;
  }

  .timeline__miniSep i{
    font-size: .62rem !important;
  }

  .timeline__cardText{
    margin: 0 !important;
    font-size: .82rem !important;
    line-height: 1.48 !important;
    color: rgba(58,47,32,.66) !important;
  }

  .timeline__bottom{
    width: 230px !important;
    margin: 22px auto 0 !important;
  }
}

@media (max-width: 360px){
  .timeline__container--premium{
    width: 100% !important;
    padding-left: 10px !important;
    padding-right: 10px !important;
  }

  .timeline__title{
    font-size: 2.25rem !important;
  }

  .timeline__item{
    grid-template-columns: 82px minmax(0,1fr) !important;
    gap: 11px !important;
  }

  .timeline__list::before,
  .timeline__list--premium::before{
    left: 102px !important;
  }

  .timeline__iconBox{
    width: 70px !important;
    height: 70px !important;
  }

  .timeline__iconBox::after{
    right: -16px !important;
  }

  .timeline__cardTitle{
    font-size: 1.32rem !important;
  }

  .timeline__cardText{
    font-size: .79rem !important;
  }
}

.blessing__dedication{
    max-width: 420px;
    margin: 0 auto 38px;

    text-align: center;

    font-family: "Cormorant Garamond", serif;
    font-style: italic;
    font-size: 1.35rem;
    line-height: 1.6;

    color: rgba(107, 90, 72, 0.82);
}
