﻿*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  font-family:'Jost',sans-serif;
  background:#FEFCF7;
  color:#2E2416;
  overflow-x:hidden;
}
body::before{
  content:'';
  position:fixed;inset:0;pointer-events:none;z-index:0;
  background-image:
    repeating-linear-gradient(90deg,rgba(180,155,100,0.022) 0,transparent 1px,transparent 18px),
    repeating-linear-gradient(0deg,rgba(180,155,100,0.022) 0,transparent 1px,transparent 18px);
}

/* ══ HERO ══ */
.hero{
  position:relative;width:100%;
  height:100svh;min-height:500px;max-height:900px;
  overflow:hidden;
  display:flex;flex-direction:column;
  align-items:center;justify-content:flex-end;
  padding-bottom:64px;
}
.hero-img{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;object-position:center center;
  animation:slowZoom 24s ease-in-out infinite alternate;
}
@keyframes slowZoom{from{transform:scale(1.0);}to{transform:scale(1.06);}}
.hero-overlay{
  position:absolute;inset:0;
  background:linear-gradient(to bottom,
    rgba(254,252,247,0.05) 0%,
    rgba(254,252,247,0.15) 30%,
    rgba(254,252,247,0.60) 58%,
    rgba(254,252,247,0.93) 80%,
    rgba(254,252,247,1.00) 100%);
}
.hero-content{
  position:relative;z-index:2;
  text-align:center;padding:0 24px;width:100%;max-width:520px;
}
.hero-pre{
  font-family:'Cinzel',serif;font-size:9px;letter-spacing:0.5em;
  color:#B8912A;text-transform:uppercase;margin-bottom:14px;
  opacity:0;animation:fadeUp 1.4s 0.2s ease forwards;
}
.hero-names{
  font-family:'Cormorant Garamond',serif;
  font-size:clamp(50px,12vw,84px);font-weight:300;font-style:italic;
  color:#1E1710;line-height:1.05;
  opacity:0;animation:fadeUp 1.4s 0.35s ease forwards;
}
.hero-amp{color:#B8912A;font-size:0.62em;display:block;margin:3px 0;font-style:normal;}
.hero-orn{
  display:flex;align-items:center;justify-content:center;gap:12px;
  margin:16px auto;width:min(260px,80%);
  opacity:0;animation:fadeUp 1.4s 0.5s ease forwards;
}
.hero-orn .hl{flex:1;height:0.5px;background:#B8912A;opacity:0.6;}
.hero-orn .hd{font-family:'Cinzel',serif;font-size:9px;letter-spacing:0.3em;color:#B8912A;white-space:nowrap;}
.hero-city{
  font-family:'Cinzel',serif;font-size:9px;letter-spacing:0.35em;
  color:#9A7A30;text-transform:uppercase;
  opacity:0;animation:fadeUp 1.4s 0.62s ease forwards;
}
@keyframes fadeUp{from{opacity:0;transform:translateY(20px);}to{opacity:1;transform:translateY(0);}}
.scroll-cue{
  position:absolute;bottom:22px;left:50%;transform:translateX(-50%);
  z-index:3;display:flex;flex-direction:column;align-items:center;gap:5px;
  cursor:pointer;opacity:0;animation:fadeUp 1.4s 1s ease forwards;
}
.scroll-cue span{font-family:'Cinzel',serif;font-size:7px;letter-spacing:0.38em;color:#B8912A;text-transform:uppercase;}
.scroll-arr{
  width:13px;height:13px;
  border-right:1px solid #B8912A;border-bottom:1px solid #B8912A;
  transform:rotate(45deg);animation:abounce 2.2s infinite;
}
@keyframes abounce{0%,100%{transform:rotate(45deg) translateY(0);}50%{transform:rotate(45deg) translateY(5px);}}

/* ══ SHARED SECTIONS ══ */
.sec{
  position:relative;z-index:1;
  padding:clamp(56px,8vw,88px) clamp(20px,5vw,40px);
  max-width:560px;margin:0 auto;text-align:center;
}
.sec-tag{
  font-family:'Cinzel',serif;font-size:10px;letter-spacing:0.45em;
  color:#B8912A;text-transform:uppercase;display:block;margin-bottom:14px;
}
.sec-title{
  font-family:'Cormorant Garamond',serif;
  font-size:clamp(32px,6vw,44px);font-weight:300;font-style:italic;
  color:#2E2416;line-height:1.2;margin-bottom:14px;
}
.orn{display:flex;align-items:center;justify-content:center;gap:10px;margin:16px 0;}
.orn .ol{flex:1;height:0.5px;background:linear-gradient(to right,transparent,#C9A84C);}
.orn .or{flex:1;height:0.5px;background:linear-gradient(to left,transparent,#C9A84C);}
.orn .od{color:#C9A84C;font-size:9px;}
.body-txt{
  font-family:'Cormorant Garamond',serif;
  font-size:clamp(18px,2.8vw,21px);font-style:italic;font-weight:300;
  color:#6A5830;line-height:1.85;
}

/* ══ PADRES ══ */
.padres-band{
  position:relative;z-index:1;
  background:#F7F3EA;
  border-top:1px solid rgba(185,145,42,0.18);
  border-bottom:1px solid rgba(185,145,42,0.18);
  padding:clamp(48px,7vw,72px) clamp(24px,6vw,48px);
  text-align:center;
}
.padres-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:clamp(20px,4vw,48px);
  max-width:520px;margin:24px auto 0;
}
@media(max-width:500px){.padres-grid{grid-template-columns:1fr;gap:28px;}}
.padres-col{}
.padres-rol{
  font-family:'Cinzel',serif;font-size:9.5px;
  letter-spacing:0.35em;color:#B8912A;text-transform:uppercase;
  display:block;margin-bottom:10px;
}
.padres-nombre{
  font-family:'Cormorant Garamond',serif;
  font-size:clamp(16px,2.5vw,18px);font-style:italic;font-weight:300;
  color:#4A3820;line-height:1.7;
}
.padres-nombre span{display:block;}

/* ══ PARALLAX BANDS ══
   Only using truly landscape photos (f1, f5) — 1.35 ratio.
   object-fit:cover + object-position:center keeps subject visible.
   On iOS, JS replaces bg with <img> tag.
*/
.photo-band{
  position:relative;width:100%;
  height:clamp(240px,38vw,420px);
  overflow:hidden;
}
.photo-band .pb-img{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;object-position:center center;
  /* Parallax via transform on scroll — handled by JS */
  will-change:transform;
}
.photo-band .pb-vignette{
  position:absolute;inset:0;z-index:1;
  background:linear-gradient(to bottom,
    rgba(254,252,247,0.5) 0%,
    rgba(254,252,247,0.0) 22%,
    rgba(254,252,247,0.0) 78%,
    rgba(254,252,247,0.5) 100%);
}

/* ══ QUOTE ══ */
.quote-band{
  position:relative;z-index:1;
  background:#F7F3EA;
  border-top:1px solid rgba(185,145,42,0.18);
  border-bottom:1px solid rgba(185,145,42,0.18);
  padding:clamp(48px,7vw,72px) clamp(24px,6vw,60px);
  text-align:center;overflow:hidden;
}
.quote-band::before{
  content:'"';position:absolute;top:-24px;left:12px;
  font-family:'Cormorant Garamond',serif;
  font-size:clamp(140px,25vw,220px);font-weight:300;
  color:#B8912A;opacity:0.07;line-height:1;pointer-events:none;
}
.quote-txt{
  font-family:'Cormorant Garamond',serif;
  font-size:clamp(19px,3.2vw,25px);font-style:italic;font-weight:300;
  color:#2E2416;line-height:1.75;max-width:440px;margin:0 auto 14px;
  position:relative;z-index:1;
}
.quote-by{font-family:'Cinzel',serif;font-size:9.5px;letter-spacing:0.38em;color:#B8912A;text-transform:uppercase;}

/* ══ COUNTDOWN ══ */
.cd-wrap{display:flex;justify-content:center;gap:clamp(8px,2vw,18px);flex-wrap:wrap;margin:28px 0 6px;}
.cd-box{
  background:#FEFCF7;border:1px solid rgba(185,145,42,0.35);
  padding:clamp(12px,2vw,20px) clamp(12px,2.5vw,20px) 12px;
  min-width:clamp(62px,14vw,80px);
  display:flex;flex-direction:column;align-items:center;position:relative;flex:0 0 auto;
}
.cd-box::before{content:'';position:absolute;inset:3px;border:0.5px solid rgba(185,145,42,0.15);pointer-events:none;}
.cd-n{font-family:'Cormorant Garamond',serif;font-size:clamp(36px,8vw,50px);font-weight:300;color:#2E2416;line-height:1;}
.cd-l{font-family:'Cinzel',serif;font-size:7.5px;letter-spacing:0.22em;color:#B8912A;text-transform:uppercase;margin-top:5px;}

/* ══ DRESS CODE ══ */
.dresscode-band{
  position:relative;z-index:1;
  background:#FEFCF7;
  padding:clamp(56px,8vw,88px) clamp(20px,5vw,40px);
  text-align:center;
}
.dc-grid{
  display:grid;grid-template-columns:1fr 1fr;
  gap:clamp(16px,3vw,32px);
  max-width:440px;margin:28px auto 0;
}
@media(max-width:440px){.dc-grid{grid-template-columns:1fr;}}
.dc-card{
  background:#F7F3EA;
  border:1px solid rgba(185,145,42,0.28);
  padding:clamp(20px,4vw,32px) clamp(16px,3vw,24px);
  position:relative;
}
.dc-card::before{content:'';position:absolute;inset:4px;border:0.5px solid rgba(185,145,42,0.14);pointer-events:none;}
.dc-icon{font-size:26px;display:block;margin-bottom:10px;}
.dc-role{
  font-family:'Cinzel',serif;font-size:9.5px;
  letter-spacing:0.3em;color:#B8912A;text-transform:uppercase;
  display:block;margin-bottom:8px;
}
.dc-desc{
  font-family:'Cormorant Garamond',serif;
  font-size:clamp(17px,2.8vw,20px);font-style:italic;
  color:#4A3820;line-height:1.5;
}
.dc-note{
  font-family:'Jost',sans-serif;font-weight:200;
  font-size:13px;letter-spacing:0.05em;
  color:#9A8060;margin-top:26px;line-height:1.6;
  max-width:360px;margin-left:auto;margin-right:auto;
}
.dc-note strong{font-weight:400;color:#B8912A;}

/* ══ GALLERY GRID ══ */
.gallery-band{
  position:relative;z-index:1;background:#F7F3EA;
  padding:clamp(56px,8vw,88px) clamp(16px,4vw,28px);
  border-top:1px solid rgba(185,145,42,0.15);
  border-bottom:1px solid rgba(185,145,42,0.15);
}
.gallery-inner{max-width:600px;margin:0 auto;text-align:center;}
.gal-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:32px;}
.g-item{position:relative;overflow:hidden;aspect-ratio:4/3;}
.g-item.portrait{aspect-ratio:3/4;}
.g-item.wide{grid-column:1/-1;aspect-ratio:16/9;}
.g-item img{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;object-position:center center;
  transition:transform 0.7s ease;filter:brightness(1.01) contrast(1.03);
}
.g-item:hover img{transform:scale(1.04);}
.g-frame{position:absolute;inset:6px;border:1px solid rgba(185,145,42,0.38);pointer-events:none;z-index:1;}
.g-frame::before{content:'';position:absolute;inset:3px;border:0.5px solid rgba(185,145,42,0.18);}
@media(max-width:480px){
  .gal-grid{grid-template-columns:1fr;}
  .g-item.wide,.g-item.portrait{aspect-ratio:4/3;}
}

/* ══ EVENT ══ */
.event-card{
  background:#FEFCF7;border:1px solid rgba(185,145,42,0.3);
  padding:clamp(24px,5vw,40px) clamp(20px,5vw,36px);
  margin-top:26px;position:relative;
}
.event-card::before{content:'';position:absolute;inset:6px;border:0.5px solid rgba(185,145,42,0.14);pointer-events:none;}
.ev-icon{font-size:20px;display:block;margin-bottom:12px;}
.ev-tag{font-family:'Cinzel',serif;font-size:9.5px;letter-spacing:0.35em;color:#B8912A;text-transform:uppercase;margin-bottom:10px;display:block;}
.ev-name{font-family:'Cormorant Garamond',serif;font-size:clamp(22px,4vw,28px);font-style:italic;color:#2E2416;margin-bottom:10px;}
.ev-addr{font-family:'Jost',sans-serif;font-weight:200;font-size:clamp(13px,2vw,15px);letter-spacing:0.05em;color:#7A6840;line-height:1.9;margin-bottom:20px;}
.map-link{
  display:inline-block;font-family:'Cinzel',serif;font-size:9.5px;
  letter-spacing:0.3em;text-transform:uppercase;
  color:#B8912A;border:1px solid rgba(185,145,42,0.6);
  padding:11px 22px;text-decoration:none;transition:all 0.3s;background:#FEFCF7;
}
.map-link:hover{background:#B8912A;color:#FEFCF7;}
.map-embed{margin-top:22px;width:100%;aspect-ratio:16/9;min-height:180px;border:1px solid rgba(185,145,42,0.2);display:block;}

/* ══ ITINERARIO ══ */
.itinerario-band{
  position:relative;z-index:1;
  background:#F7F3EA;
  border-top:1px solid rgba(185,145,42,0.18);
  border-bottom:1px solid rgba(185,145,42,0.18);
  padding:clamp(56px,8vw,88px) clamp(20px,5vw,40px);
  text-align:center;
}
.itin-list{
  max-width:420px;margin:32px auto 0;
  position:relative;
}
/* Vertical line */
.itin-list::before{
  content:'';
  position:absolute;
  left:50%;top:0;bottom:0;
  width:0.5px;
  background:linear-gradient(to bottom,transparent,rgba(185,145,42,0.35) 8%,rgba(185,145,42,0.35) 92%,transparent);
  transform:translateX(-50%);
}
.itin-item{
  display:grid;
  grid-template-columns:1fr 32px 1fr;
  align-items:start;
  gap:0 clamp(10px,3vw,20px);
  margin-bottom:clamp(20px,4vw,32px);
}
.itin-item:last-child{margin-bottom:0;}
/* Dot on the line */
.itin-dot{
  display:flex;align-items:flex-start;justify-content:center;
  padding-top:3px;
}
.itin-dot span{
  width:7px;height:7px;
  border-radius:50%;
  background:#FEFCF7;
  border:1px solid #C9A84C;
  display:block;
  flex-shrink:0;
}
/* Time — right-aligned on left side */
.itin-time{
  text-align:right;
  padding-top:2px;
}
.itin-time p{
  font-family:'Cinzel',serif;
  font-size:clamp(10.5px,2vw,12.5px);
  letter-spacing:0.2em;
  color:#B8912A;
  text-transform:uppercase;
  line-height:1.4;
}
/* Description — left-aligned on right side */
.itin-desc{
  text-align:left;
  padding-top:2px;
}
.itin-desc p{
  font-family:'Cormorant Garamond',serif;
  font-size:clamp(17px,2.8vw,20px);
  font-style:italic;
  font-weight:300;
  color:#2E2416;
  line-height:1.4;
}
.itin-desc small{
  display:block;margin-top:2px;
  font-family:'Jost',sans-serif;font-weight:200;
  font-size:12px;letter-spacing:0.06em;
  color:#9A8060;font-style:normal;
}
@media(max-width:400px){
  .itin-list::before{left:16px;}
  .itin-item{grid-template-columns:16px 1fr;grid-template-rows:auto auto;}
  .itin-time{grid-column:2;text-align:left;margin-bottom:2px;}
  .itin-dot{grid-column:1;grid-row:1/3;padding-top:4px;justify-content:flex-start;}
  .itin-desc{grid-column:2;}
}

/* ══ RSVP ══ */
.rsvp-band{
  position:relative;z-index:1;background:#F0EBE0;
  border-top:1px solid rgba(185,145,42,0.2);
  padding:clamp(56px,8vw,88px) clamp(20px,5vw,40px);text-align:center;
}
.rsvp-inner{max-width:420px;margin:0 auto;}
.rsvp-body{font-family:'Cormorant Garamond',serif;font-size:clamp(17px,2.8vw,20px);font-style:italic;color:#6A5830;line-height:1.8;margin-bottom:28px;}
.rsvp-body strong{color:#B8912A;font-style:normal;font-weight:400;}
.field{
  width:100%;background:#FEFCF7;border:1px solid rgba(185,145,42,0.35);
  padding:13px 16px;font-family:'Jost',sans-serif;font-weight:200;
  font-size:15px;letter-spacing:0.05em;color:#2E2416;outline:none;
  transition:border-color 0.3s;margin-bottom:12px;
  appearance:none;-webkit-appearance:none;border-radius:0;
}
.field::placeholder{color:rgba(180,145,60,0.42);}
.field:focus{border-color:#B8912A;}
.rsvp-btn{
  width:100%;background:transparent;border:1px solid #B8912A;padding:14px;
  font-family:'Cinzel',serif;font-size:10.5px;letter-spacing:0.4em;text-transform:uppercase;
  color:#B8912A;cursor:pointer;transition:all 0.3s;margin-top:4px;border-radius:0;
}
.rsvp-btn:hover{background:#B8912A;color:#FEFCF7;}
.rsvp-ok{display:none;font-family:'Cormorant Garamond',serif;font-size:clamp(18px,3vw,22px);font-style:italic;color:#B8912A;margin-top:22px;animation:fadeUp 0.8s ease;line-height:1.6;}

/* ══ FOOTER ══ */
footer{
  position:relative;z-index:1;background:#FEFCF7;
  border-top:1px solid rgba(185,145,42,0.22);
  padding:clamp(36px,6vw,56px) 24px;text-align:center;
}
.ft-names{font-family:'Cormorant Garamond',serif;font-size:clamp(24px,5vw,32px);font-style:italic;font-weight:300;color:#2E2416;}
.ft-date{font-family:'Cinzel',serif;font-size:10px;letter-spacing:0.4em;color:#B8912A;text-transform:uppercase;margin-top:10px;display:block;}
.ft-tag{font-family:'Cormorant Garamond',serif;font-size:16px;font-style:italic;color:#9A8A60;margin-top:6px;}

/* ══ GALLERY TOGGLE ══ */
.gal-toggle{
  display:inline-block;background:transparent;border:1px solid #B8912A;
  padding:11px 28px;margin-top:8px;
  font-family:'Cinzel',serif;font-size:9.5px;letter-spacing:0.38em;text-transform:uppercase;
  color:#B8912A;cursor:pointer;transition:all 0.3s;border-radius:0;
}
.gal-toggle:hover{background:#B8912A;color:#FEFCF7;}
.gal-grid{margin-top:28px;}

/* ══ REVEAL ══ */
.reveal{opacity:0;transform:translateY(20px);transition:opacity 0.95s ease,transform 0.95s ease;}
.reveal.vis{opacity:1;transform:translateY(0);}