/* ══ VARIABLES ══ */
:root {
  --gold:       #C9A84C;
  --gold-light: #E8D5A3;
  --gold-dark:  #9A7B3A;
  --gold-shine: #F0E0A8;
  --white:      #FFFFFF;
  --off-white:  #FBFAF7;
  --cream:      #F5F0E8;
  --dark:       #14110F;
  --text-dark:  #2b2b2b;
  --text-mid:   #4A3F35;
  --text-light: #8A7A6A;
  --border:     rgba(201,168,76,0.25);
}
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:'Jost',sans-serif;font-size:18px;background:var(--off-white);color:var(--text-dark);overflow-x:hidden;padding-top:62px}

/* ══ SCROLL-REVEAL UTILITY ══ */
.reveal{opacity:0;transform:translateY(32px);transition:opacity .9s cubic-bezier(.16,1,.3,1),transform .9s cubic-bezier(.16,1,.3,1)}
.reveal.visible{opacity:1;transform:translateY(0)}
.reveal-left{opacity:0;transform:translateX(-40px);transition:opacity .9s cubic-bezier(.16,1,.3,1),transform .9s cubic-bezier(.16,1,.3,1)}
.reveal-right{opacity:0;transform:translateX(40px);transition:opacity .9s cubic-bezier(.16,1,.3,1),transform .9s cubic-bezier(.16,1,.3,1)}
.reveal-left.visible,.reveal-right.visible{opacity:1;transform:translateX(0)}

/* ══ ORNAMENT ══ */
.ornament{display:flex;align-items:center;justify-content:center;gap:16px;margin:1.5rem auto}
.ornament::before,.ornament::after{content:'';flex:1;max-width:120px;height:1px;background:linear-gradient(90deg,transparent,var(--gold))}
.ornament::after{background:linear-gradient(90deg,var(--gold),transparent)}
.ornament-diamond{width:8px;height:8px;background:var(--gold);transform:rotate(45deg);flex-shrink:0}

/* ══ SECTION TITLE ══ */
.section-title{font-family:'Playfair Display',serif;font-size:clamp(2rem,4.5vw,3.2rem);font-weight:400;text-align:center;color:var(--text-dark);letter-spacing:1px}
.section-title span{color:var(--gold);font-style:italic}
section{padding:clamp(50px,8vw,100px) clamp(20px,5vw,80px)}

/* ══ CELEBRATE SCRIPT ══ */
.celebrate{font-family:'Great Vibes',cursive;color:var(--gold-dark);font-size:clamp(2.2rem,8vw,4rem);display:inline-block;letter-spacing:.6px;text-shadow:0 8px 24px rgba(201,168,76,.16);animation:pop 1.2s cubic-bezier(.2,.9,.26,1) both}
.celebrate.small{font-size:clamp(1.6rem,6.5vw,2.6rem)}
.celebrate:hover{transform:scale(1.06) rotate(-.5deg);transition:transform .3s}
@keyframes pop{0%{transform:scale(.9) rotate(-1.5deg);opacity:0}55%{transform:scale(1.08) rotate(1deg);opacity:1}100%{transform:scale(1) rotate(0)}}

/* ══════════════════════════════════════
   INTRO SCREEN — CINEMATIC
══════════════════════════════════════ */
#intro {
  position:fixed; inset:0; z-index:9999;
  display:flex; align-items:center; justify-content:center;
  overflow:hidden;
  background:#000;
}

/* Two curtain panels that slide apart */
.curtain {
  position:absolute; inset:0; z-index:2;
  display:flex; pointer-events:none;
}
.curtain-l, .curtain-r {
  flex:1; height:100%;
  background:linear-gradient(160deg,#1A1208 0%,#0E0B06 100%);
  transition:transform 1.4s cubic-bezier(.86,0,.07,1);
  will-change:transform;
}
.curtain-l { transform-origin:left center; border-right:1px solid rgba(201,168,76,0.08); }
.curtain-r { transform-origin:right center; border-left:1px solid rgba(201,168,76,0.08); }
.curtain-l::after, .curtain-r::after {
  content:'';
  position:absolute; top:0; bottom:0; width:60px;
  background:linear-gradient(90deg,transparent,rgba(201,168,76,0.04));
}
.curtain-l::after { right:0; }
.curtain-r::after { left:0; background:linear-gradient(270deg,transparent,rgba(201,168,76,0.04)); }

/* open state */
#intro.open .curtain-l { transform:translateX(-100%); }
#intro.open .curtain-r { transform:translateX(100%); }

/* canvas for petals */
#petalCanvas {
  position:absolute; inset:0; z-index:1;
  pointer-events:none;
}

/* centre content */
.i-stage {
  position:relative; z-index:3;
  display:flex; flex-direction:column;
  align-items:center; text-align:center;
  padding:0 clamp(24px,8vw,80px);
  pointer-events:none;
}

/* monogram ring */
.i-mono {
  position:relative;
  width:clamp(80px,14vw,120px);
  height:clamp(80px,14vw,120px);
  margin-bottom:clamp(24px,4vw,40px);
  opacity:0;
  transform:scale(.7) rotate(-20deg);
  transition:opacity 1s .4s, transform 1.2s .4s cubic-bezier(.34,1.56,.64,1);
}
.i-mono-ring {
  position:absolute; inset:0;
  border-radius:50%;
  border:1px solid rgba(201,168,76,0.5);
  animation:rotateSlow 18s linear infinite;
}
.i-mono-ring::before {
  content:'';
  position:absolute; inset:-8px;
  border-radius:50%;
  border:1px solid rgba(201,168,76,0.15);
  animation:rotateSlow 28s linear infinite reverse;
}
/* eight small diamond ticks on the ring */
.i-mono-ring::after {
  content:'';
  position:absolute;
  top:50%; left:50%;
  width:5px; height:5px;
  background:var(--gold);
  transform:translate(-50%,-180%) rotate(45deg);
  box-shadow:
    0 clamp(36px,6.5vw,55px) 0 rgba(201,168,76,.6),
    0 clamp(-36px,-6.5vw,-55px) 0 rgba(201,168,76,.6),
    clamp(36px,6.5vw,55px) 0 0 rgba(201,168,76,.6),
    clamp(-36px,-6.5vw,-55px) 0 0 rgba(201,168,76,.6);
}
.i-mono-inner {
  position:absolute; inset:0;
  display:flex; align-items:center; justify-content:center;
  font-family:'Playfair Display',serif;
  font-style:italic;
  font-size:clamp(1.4rem,3.5vw,2.6rem);
  font-weight:400;
  color:var(--gold-light);
  letter-spacing:2px;
  line-height:1;
}
@keyframes rotateSlow { to { transform:rotate(360deg); } }

/* small label above names */
.i-sup {
  font-family:'Jost',sans-serif;
  font-size:clamp(.58rem,1vw,.68rem);
  letter-spacing:7px;
  text-transform:uppercase;
  color:rgba(201,168,76,.5);
  font-weight:300;
  opacity:0;
  transform:translateY(8px);
  transition:opacity .8s, transform .8s;
  margin-bottom:clamp(14px,2.5vw,24px);
}

/* large names — individual letters animated via JS */
.i-names {
  font-family:'Playfair Display',serif;
  font-style:italic;
  font-size:clamp(3rem,11vw,8rem);
  font-weight:400;
  color:#fff;
  line-height:.9;
  letter-spacing:-2px;
  white-space:nowrap;
}
.i-names .i-amp {
  display:inline-block;
  font-size:clamp(1.5rem,5vw,4rem);
  color:var(--gold-light);
  font-weight:200;
  font-style:normal;
  margin:0 clamp(6px,1.5vw,16px);
  opacity:0;
  transform:translateY(20px) scale(.8);
  transition:opacity .7s, transform .7s cubic-bezier(.34,1.56,.64,1);
}
.i-letter {
  display:inline-block;
  opacity:0;
  transform:translateY(30px);
  transition:opacity .5s, transform .6s cubic-bezier(.34,1.4,.64,1);
}

/* thin gold line */
.i-line {
  width:0; height:1px;
  background:linear-gradient(90deg,transparent,var(--gold),transparent);
  margin:clamp(16px,2.5vw,28px) auto;
  transition:width 1.2s cubic-bezier(.77,0,.175,1);
}

/* date */
.i-date {
  font-family:'Jost',sans-serif;
  font-size:clamp(.65rem,1.2vw,.8rem);
  letter-spacing:5px;
  color:rgba(255,255,255,.4);
  font-weight:300;
  opacity:0;
  transform:translateY(8px);
  transition:opacity .8s, transform .8s;
}

/* parents line */
.i-parents {
  font-family:'Jost',sans-serif;
  font-size:clamp(.58rem,1vw,.68rem);
  letter-spacing:2px;
  color:rgba(255,255,255,.22);
  font-weight:300;
  margin-top:clamp(10px,1.8vw,18px);
  opacity:0;
  transition:opacity .8s;
}

/* CTA button */
.i-btn {
  margin-top:clamp(32px,5.5vw,56px);
  pointer-events:all;
  position:relative;
  display:inline-flex; align-items:center; gap:14px;
  padding:clamp(14px,2.2vw,19px) clamp(36px,5.5vw,58px);
  background:transparent;
  border:1px solid rgba(201,168,76,.45);
  color:var(--gold-light);
  font-family:'Jost',sans-serif;
  font-size:clamp(.68rem,1.1vw,.8rem);
  font-weight:400;
  letter-spacing:5px;
  text-transform:uppercase;
  cursor:pointer;
  border-radius:1px;
  overflow:hidden;
  opacity:0;
  transform:translateY(14px);
  transition:opacity .9s, transform .9s, border-color .4s;
}
/* pulsing glow ring behind button */
.i-btn::after {
  content:'';
  position:absolute; inset:-6px;
  border:1px solid rgba(201,168,76,0);
  border-radius:2px;
  transition:border-color .4s;
  animation:btnPulse 2.4s ease-in-out infinite;
}
@keyframes btnPulse {
  0%,100% { box-shadow:0 0 0 0 rgba(201,168,76,0); }
  50%      { box-shadow:0 0 18px 4px rgba(201,168,76,0.18); }
}
/* gold fill sweep on hover */
.i-btn-fill {
  position:absolute; inset:0;
  background:var(--gold);
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .5s cubic-bezier(.77,0,.175,1);
}
.i-btn:hover .i-btn-fill { transform:scaleX(1); }
.i-btn:hover { color:#14110F; border-color:var(--gold); }
.i-btn span, .i-btn svg { position:relative; z-index:1; }

/* exit transition */
#intro.exit {
  transition:opacity .9s cubic-bezier(.77,0,.175,1), transform .9s cubic-bezier(.77,0,.175,1);
  opacity:0;
  transform:scale(1.04);
  pointer-events:none;
}

/* ══ MUSIC BAR (fixed top) ══ */
#musicBar{position:fixed;top:0;left:0;right:0;z-index:999;background:rgba(20,17,15,.97);backdrop-filter:blur(12px);border-bottom:1px solid rgba(201,168,76,.2);display:flex;align-items:center;gap:clamp(8px,2vw,24px);padding:0 clamp(14px,4vw,48px);height:62px}
.mbar-names{font-family:'Playfair Display',serif;font-style:italic;color:var(--gold-light);font-size:clamp(.8rem,1.4vw,1rem);white-space:nowrap;flex-shrink:0}
.mbar-div{width:1px;height:28px;background:rgba(201,168,76,.2);flex-shrink:0}
.mbar-thumb{width:36px;height:36px;border-radius:6px;background-size:cover;background-position:center;flex-shrink:0;transition:transform .15s,box-shadow .15s;border:1px solid rgba(201,168,76,.3)}
.mbar-thumb.beat{transform:scale(1.1);box-shadow:0 0 14px rgba(201,168,76,.45)}
.mbar-play{width:36px;height:36px;flex-shrink:0;border-radius:50%;background:var(--gold);border:none;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:.85rem;transition:.2s}
.mbar-play:hover{background:var(--gold-dark);transform:scale(1.07)}
.mbar-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.mbar-track{font-size:clamp(.66rem,1.1vw,.78rem);font-weight:500;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mbar-artist{font-size:clamp(.56rem,.9vw,.65rem);color:rgba(255,255,255,.38)}
.mbar-prog-wrap{flex:2;max-width:340px;min-width:70px;display:flex;flex-direction:column;gap:4px}
.mbar-prog{width:100%;height:3px;background:rgba(255,255,255,.1);border-radius:2px;cursor:pointer;position:relative}
.mbar-prog-fill{height:100%;width:0%;background:linear-gradient(90deg,var(--gold-dark),var(--gold));border-radius:2px;transition:width .4s linear}
.mbar-time{display:flex;justify-content:space-between;font-size:.54rem;color:rgba(255,255,255,.28)}
.mbar-vol{display:flex;align-items:center;gap:6px;flex-shrink:0}
.mbar-vol i{color:var(--gold);font-size:.7rem}
.mbar-vol input[type=range]{width:clamp(46px,6vw,86px);accent-color:var(--gold);cursor:pointer}
.mbar-status{font-size:.58rem;letter-spacing:2px;text-transform:uppercase;color:var(--gold);flex-shrink:0;opacity:0;transition:opacity .3s}
.mbar-status.show{opacity:1}
@media(max-width:520px){.mbar-names,.mbar-div,.mbar-time,.mbar-status{display:none}.mbar-vol input{width:50px}}

/* ══ HERO ══ */
.hero{position:relative;width:100%;height:calc(100svh - 62px);min-height:560px;background:url('../Images/Foto2.jpeg') center center/cover no-repeat;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:#fff;overflow:hidden}
.hero::before{content:'';position:absolute;inset:0;background:linear-gradient(to bottom,rgba(0,0,0,.18) 0%,rgba(0,0,0,.5) 55%,rgba(0,0,0,.74) 100%)}
.hero-content{position:relative;z-index:2;padding:0 clamp(20px,6vw,80px);animation:fadeUp 1.4s ease both}
.hero-label{font-family:'Jost',sans-serif;font-weight:300;font-size:clamp(.72rem,1.4vw,.88rem);letter-spacing:7px;text-transform:uppercase;color:var(--gold-light);margin-bottom:clamp(14px,2.5vw,24px)}
.hero h1{font-family:'Playfair Display',serif;font-size:clamp(4rem,14vw,10rem);font-weight:400;font-style:italic;line-height:.92;letter-spacing:-1px}
.hero-ampersand{font-size:clamp(2rem,6vw,4rem);color:var(--gold-light);display:block;margin:clamp(8px,1.5vw,14px) 0;font-weight:200;font-style:normal}
.hero-line{width:60px;height:1px;background:var(--gold-light);margin:clamp(16px,3vw,26px) auto}
.hero-date{font-size:clamp(.78rem,1.4vw,.95rem);letter-spacing:5px;margin-top:8px;color:rgba(255,255,255,.82);font-weight:300}
.hero-scroll{position:absolute;bottom:32px;left:50%;transform:translateX(-50%);z-index:2;display:flex;flex-direction:column;align-items:center;gap:7px;color:rgba(255,255,255,.48);font-size:.65rem;letter-spacing:3px;text-transform:uppercase;animation:bounce 2.5s infinite}
@keyframes fadeUp{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:translateY(0)}}
@keyframes bounce{0%,100%{transform:translateX(-50%) translateY(0)}50%{transform:translateX(-50%) translateY(7px)}}

/* ══ PADRES ══ */
.padres-section { background: var(--cream); text-align: center; }
.padres-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 50px;
  align-items: center;
  justify-items: center;
  max-width: 700px;
  margin: 2rem auto 0;
}
.parent-block { text-align: center; }
.parent-label { font-size: clamp(.7rem,1.2vw,.82rem); letter-spacing:3px; text-transform:uppercase; color:var(--gold); font-weight:600; margin-bottom:10px; display:block }
.parent-label::after { content:''; display:block; width:40px; height:3px; margin:8px auto 0; border-radius:2px; background: linear-gradient(90deg,var(--gold-dark),var(--gold)); }
.parent-block p { font-family:'Playfair Display',serif; font-size:clamp(1.05rem,2.2vw,1.5rem); color:var(--text-dark); font-weight:400; line-height:1.4; margin:6px 0 0; }
.deceased { color: var(--text-light); margin-right:6px; font-weight:600; }

/* ══ SWIPER MAIN ══ */
.swiper-section{background:#fff}
.swiper{width:100%}
.mainSwiper{height:clamp(620px,92vw,1320px)}
.mainSwiper .swiper-slide{height:100%}
.swiper-slide{overflow:hidden;display:flex;align-items:center;justify-content:center;background:var(--off-white)}
.swiper-slide img { width: auto; height: 100%; max-width: 100%; object-fit: contain; display: block; }
.swiper-slide img.fill-cover{width:100%;height:100%;object-fit:cover}
.swiper-slide.swiper-slide-active img{transform:scale(1.02)}
.swiper-button-next,.swiper-button-prev{color:var(--gold)!important;background:rgba(255,255,255,.9);width:46px!important;height:46px!important;border-radius:50%;box-shadow:0 4px 14px rgba(0,0,0,.1)}
.swiper-button-next::after,.swiper-button-prev::after{font-size:.9rem!important;font-weight:700}
.swiper-pagination-bullet{background:var(--gold)!important;width:8px!important;height:8px!important}
.swiper-pagination-bullet-active{transform:scale(1.3)}

/* ══ COUNTDOWN ══ */
.countdown-section{background:var(--dark);color:#fff;text-align:center}
.countdown-section .section-title{color:#fff}
.countdown-section .section-title span{color:var(--gold-light)}
.countdown-intro{color:rgba(255,255,255,.72);font-size:clamp(.85rem,2vw,.98rem);max-width:680px;margin:.5rem auto 0;line-height:1.6}
.countdown-subtitle{font-family:'Playfair Display',serif;font-size:clamp(1.2rem,3vw,1.7rem);color:var(--gold-light);margin-top:10px;font-weight:400}
.countdown-grid{display:flex;flex-direction:column;align-items:center;gap:clamp(8px,1.5vw,16px);margin:clamp(24px,4vw,42px) auto;max-width:760px;padding:18px;background:linear-gradient(180deg,rgba(255,255,255,.02),rgba(0,0,0,.06));border-radius:12px;border:1px solid rgba(201,168,76,.06);box-shadow:0 12px 40px rgba(0,0,0,.25)}
.countdown-row{display:flex;justify-content:center;align-items:center;gap:clamp(10px,2.5vw,28px)}
.countdown-box{text-align:center;min-width:clamp(70px,14vw,105px);padding:12px 16px;border-radius:10px;background:rgba(255,255,255,.02);border:1px solid rgba(255,255,255,.03)}
.countdown-num{font-family:'Playfair Display',serif;font-size:clamp(2.4rem,7vw,4.4rem);font-weight:400;color:var(--gold-light);line-height:1;display:block;text-shadow:0 6px 18px rgba(0,0,0,.35)}
.countdown-label{font-size:clamp(.58rem,1.1vw,.72rem);letter-spacing:3px;text-transform:uppercase;color:rgba(255,255,255,.7);margin-top:8px;display:block;font-weight:300}
.countdown-sep{font-family:'Playfair Display',serif;font-size:clamp(1.8rem,5vw,3.4rem);color:var(--gold);align-self:center;font-style:italic;font-weight:700;padding:0 4px}
.event-date-label{font-size:clamp(.75rem,1.4vw,.9rem);letter-spacing:3px;color:rgba(255,255,255,.55);font-weight:300;margin-top:12px;opacity:.9}
@media(max-width:520px){.countdown-row{gap:12px}.countdown-box{min-width:clamp(70px,28vw,100px)}}

/* ══ COLLAGE ══ */
.collage-section{background:var(--off-white)}
.collage-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-auto-rows:clamp(200px,26vw,340px);gap:clamp(8px,1.2vw,14px);margin-top:clamp(24px,4vw,44px);max-width:1200px;margin-left:auto;margin-right:auto}
.collage-item{overflow:hidden;border-radius:3px;display:flex;align-items:center;justify-content:center;background:var(--off-white)}
.collage-item.tall{grid-row:span 2}
.collage-item img{width:auto;height:100%;max-width:100%;object-fit:contain;display:block;transition:transform .8s cubic-bezier(.25,.46,.45,.94)}
.collage-item:hover img{transform:scale(1.04)}
@media(max-width:640px){.collage-grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:clamp(160px,38vw,260px)}.collage-item.tall{grid-row:span 1}}

/* ══ PLACE CARDS ══ */
.places-section{background:#fff;padding:clamp(50px,8vw,100px) clamp(20px,5vw,80px)}
.place-wrap{max-width:1200px;margin:0 auto}
.place-card{display:grid;grid-template-columns:55% 45%;border:1px solid var(--border);border-radius:4px;overflow:hidden;box-shadow:0 8px 40px rgba(0,0,0,.06);margin:clamp(32px,5vw,56px) 0}
.place-card.reverse{direction:rtl}
.place-card.reverse>*{direction:ltr}
.place-img{overflow:hidden;min-height:clamp(280px,38vw,520px)}
.place-img img{width:100%;height:100%;object-fit:cover;object-position:center;display:block;transition:transform .8s ease}
.place-card:hover .place-img img{transform:scale(1.04)}
.place-info{padding:clamp(28px,4.5vw,64px);display:flex;flex-direction:column;justify-content:center;background:var(--off-white)}
.place-tag{font-size:clamp(.58rem,.95vw,.68rem);letter-spacing:5px;text-transform:uppercase;color:var(--gold);font-weight:600;margin-bottom:12px}
.place-info h3{font-family:'Playfair Display',serif;font-size:clamp(1.5rem,2.8vw,2.2rem);font-weight:400;line-height:1.2;margin-bottom:clamp(12px,2vw,20px)}
.place-meta{color:var(--text-light);font-size:clamp(.8rem,1.3vw,.92rem);line-height:2.2;font-weight:300}
.place-meta i{color:var(--gold);margin-right:7px;width:16px}
.btn-map{display:inline-flex;align-items:center;gap:8px;margin-top:clamp(16px,2.5vw,26px);padding:clamp(10px,1.4vw,14px) clamp(20px,2.8vw,30px);border:1.5px solid var(--gold);background:transparent;color:var(--gold-dark);font-family:'Jost',sans-serif;font-size:clamp(.66rem,.95vw,.78rem);font-weight:500;letter-spacing:2px;text-transform:uppercase;border-radius:2px;cursor:pointer;text-decoration:none;transition:.25s;width:fit-content}
.btn-map:hover{background:var(--gold);color:#fff}
@media(max-width:768px){.place-card,.place-card.reverse{grid-template-columns:1fr;direction:ltr}.place-img{min-height:220px}}

/* ══ ACCESS CARD ══ */
.access-card-wrap{display:flex;justify-content:center;margin:2.5rem auto}
.access-card{background:linear-gradient(160deg,#3b2f2a,#6b4f41);color:#fff;max-width:720px;width:calc(100% - 40px);border-radius:14px;padding:clamp(18px,3vw,32px);box-shadow:0 18px 50px rgba(27,20,18,.32);border:1px solid rgba(255,255,255,.05);display:flex;align-items:center;gap:18px;transition:transform .3s,box-shadow .3s}
.access-card:hover{transform:translateY(-4px);box-shadow:0 26px 60px rgba(27,20,18,.38)}
.access-left{flex:1}
.access-title{font-family:'Great Vibes',cursive;font-size:clamp(1.4rem,4vw,2.4rem);color:#F7EAD9;margin-bottom:6px}
.access-sub{font-family:'Playfair Display',serif;font-size:.9rem;color:rgba(255,235,220,.92);margin-bottom:8px}
.reserve-lines{font-weight:700;letter-spacing:1px;text-transform:uppercase;color:#FFF8F0;font-size:clamp(1.3rem,4.5vw,2.4rem);line-height:1.1}
.reserve-lines small{display:block;font-weight:600;font-size:.82rem;opacity:.85;margin-top:6px}
.access-cta{display:flex;align-items:center;gap:12px;margin-top:14px}
.btn-confirm{background:linear-gradient(90deg,#C9A84C,#9A7B3A);color:#fff;padding:11px 18px;border-radius:8px;text-decoration:none;font-weight:700;font-size:.9rem;box-shadow:0 8px 28px rgba(201,168,76,.18);transition:transform .18s,box-shadow .18s}
.btn-confirm:hover{transform:translateY(-3px);box-shadow:0 14px 40px rgba(201,168,76,.25)}
.access-thumb{width:110px;height:110px;border-radius:8px;background:url('./Images/Foto5.jpeg') center/cover no-repeat;flex-shrink:0;box-shadow:inset 0 -6px 18px rgba(0,0,0,.2)}
@media(max-width:680px){.access-card{flex-direction:column;text-align:center;align-items:center}.access-thumb{width:100%;height:140px}.access-left{width:100%}.access-cta{justify-content:center}}

/* ══ DRESSCODE ══ */
.dresscode-section{background:var(--cream);text-align:center}
.dresscode-inner{max-width:660px;margin:1.5rem auto 0}
.dress-icon{width:clamp(58px,8vw,76px);height:clamp(58px,8vw,76px);border-radius:50%;background:var(--gold);color:#fff;display:flex;align-items:center;justify-content:center;font-size:clamp(1.3rem,2.2vw,1.7rem);margin:0 auto clamp(14px,2.5vw,22px)}
.dresscode-note{margin-top:18px;background:rgba(255,255,255,.88);color:var(--text-dark);border-radius:10px;padding:clamp(14px,2vw,22px);box-shadow:0 10px 30px rgba(0,0,0,.06);border:1px solid rgba(201,168,76,.08);max-width:760px;margin-left:auto;margin-right:auto;text-align:left}
.dresscode-note p{margin:0 0 8px;line-height:1.6;font-size:.95rem}
.dresscards{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;max-width:1100px;margin:18px auto 0}
.dresscard{background:linear-gradient(180deg,rgba(255,255,255,.88),rgba(250,248,245,.94));border-radius:12px;padding:14px;text-align:left;box-shadow:0 12px 40px rgba(18,14,10,.06);border:1px solid rgba(201,168,76,.08);transition:transform .22s,box-shadow .22s}
.dresscard img{width:100%;height:clamp(120px,18vw,170px);object-fit:cover;border-radius:8px;display:block;margin-bottom:10px;box-shadow:0 8px 24px rgba(0,0,0,.08)}
.card-label{font-family:'Playfair Display',serif;font-size:1.05rem;color:var(--gold-dark);margin-bottom:6px;letter-spacing:.3px}
.card-swatches{display:flex;align-items:center;margin-top:4px}
.sw-bullet{width:16px;height:16px;border-radius:50%;border:1px solid rgba(0,0,0,.07);box-shadow:0 2px 6px rgba(0,0,0,.07);flex-shrink:0}
.sw-label{font-size:.85rem;color:var(--text-light)}
@media(min-width:701px){.dresscard:hover{transform:translateY(-5px);box-shadow:0 18px 60px rgba(18,14,10,.1)}}
@media(max-width:900px){.dresscards{grid-template-columns:repeat(2,1fr)}}
@media(max-width:480px){.dresscards{gap:10px}.dresscard img{height:clamp(110px,35vw,160px)}}

/* ══ GALLERY SWIPER 2 ══ */
.hgal-sec{background:#fff;overflow:hidden}
.swiper-hgal .swiper-slide{width:auto!important;flex-shrink:0}
.swiper-hgal .swiper-slide img{width:auto;max-height:clamp(300px,50vh,560px);max-width:90vw;object-fit:contain;display:block}
.swiper-hgal .swiper-slide img.fill-cover{width:100%;height:100%;object-fit:cover;max-width:none;max-height:none}

/* ══ GIFTS ══ */
.gifts-section{background:#fff;text-align:center}
.gift-cards{display:grid;grid-template-columns:repeat(2,minmax(220px,1fr));gap:clamp(14px,3vw,30px);margin-top:clamp(28px,4vw,48px);align-items:start}
@media(max-width:520px){
  .gift-cards{grid-template-columns:repeat(2,minmax(120px,1fr));gap:12px}
  .gift-card{padding:12px 10px}
  .gift-icon{font-size:clamp(1.4rem,3.2vw,1.9rem)}
  .gift-card h4{font-size:clamp(.98rem,1.2vw,1.15rem)}
  .gift-card p{font-size:clamp(.7rem,1.1vw,.82rem)}
}
.gift-card{background:var(--off-white);border:1px solid var(--border);border-radius:6px;padding:clamp(28px,4vw,44px) clamp(24px,3vw,38px);width:100%;justify-self:stretch;box-sizing:border-box;text-align:center;transition:.3s}
.gift-card:hover{transform:translateY(-5px);box-shadow:0 14px 44px rgba(201,168,76,.13)}
.gift-icon{font-size:clamp(1.7rem,2.8vw,2.3rem);color:var(--gold);margin-bottom:14px}
.gift-card h4{font-family:'Playfair Display',serif;font-size:clamp(1.05rem,1.9vw,1.3rem);font-weight:400;margin-bottom:8px}
.gift-card p{font-size:clamp(.78rem,1.2vw,.88rem);color:var(--text-light);margin-bottom:18px;font-weight:300;line-height:1.6}

/* ══ FORM ══ */
.form-section{background:var(--dark)}
.form-section .section-title{color:#fff}
.form-section .section-title span{color:var(--gold-light)}
.form-card{max-width:760px;margin:clamp(28px,5vw,52px) auto 0;background:#fff;border-radius:6px;padding:clamp(28px,5vw,56px);box-shadow:0 28px 72px rgba(0,0,0,.22)}
.access-badge{display:inline-flex;align-items:center;gap:10px;background:linear-gradient(135deg,var(--gold-dark),var(--gold));color:#fff;padding:10px 20px;border-radius:40px;font-size:clamp(.74rem,1.2vw,.86rem);font-weight:500;margin-bottom:28px;letter-spacing:1px}
.form-label{display:block;font-size:clamp(.6rem,.95vw,.7rem);letter-spacing:3px;text-transform:uppercase;color:var(--text-light);margin-bottom:8px;font-weight:500}
.form-input,.form-select,.form-textarea{width:100%;padding:14px 18px;border:1px solid #E8E0D5;border-radius:2px;font-family:'Jost',sans-serif;font-size:.92rem;color:var(--text-dark);background:var(--off-white);transition:border-color .2s,box-shadow .2s;outline:none;appearance:none}
.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(201,168,76,.1);background:#fff}
.form-textarea{border-radius:4px;resize:vertical;min-height:100px}
.form-group{margin-bottom:22px}
.attendance-tabs{display:grid;grid-template-columns:1fr 1fr;border:1px solid #E8E0D5;border-radius:2px;overflow:hidden;margin-bottom:28px}
.att-tab{padding:14px;text-align:center;cursor:pointer;font-size:.85rem;font-weight:400;transition:.2s;border:none;background:transparent;font-family:'Jost',sans-serif;color:var(--text-light);letter-spacing:1px;display:flex;align-items:center;justify-content:center;gap:6px}
.att-tab i{color:inherit!important;transition:.2s}
.att-tab.active{background:var(--gold);color:#fff;font-weight:500}
.att-tab:not(.active):hover{background:var(--cream)}
.guests-container{margin:0 0 22px}
.guest-row{display:flex;align-items:center;gap:18px;padding:18px 20px;background:var(--cream);border-radius:10px;margin-bottom:18px;border-left:4px solid var(--gold);box-shadow:0 2px 12px rgba(201,168,76,0.07);transition:box-shadow .2s}
.guest-row:hover{box-shadow:0 4px 24px rgba(201,168,76,0.13)}
.guest-avatar{width:44px;height:44px;border-radius:50%;background:linear-gradient(135deg,var(--gold-light),var(--gold-dark));display:flex;align-items:center;justify-content:center;font-size:1.6rem;color:#fff;font-family:'Playfair Display',serif;margin-right:8px;box-shadow:0 2px 8px rgba(201,168,76,0.10)}
.guest-row-inner{display:flex;flex-direction:column;gap:7px;flex:1}
.guest-type-row{display:flex;gap:8px}
.type-btn{flex:1;padding:8px;border:1px solid #E8E0D5;border-radius:2px;background:#fff;font-family:'Jost',sans-serif;font-size:.74rem;cursor:pointer;transition:.2s;color:var(--text-light);letter-spacing:1px}
.type-btn.selected{border-color:var(--gold);background:var(--gold);color:#fff}
.guest-num{font-family:'Playfair Display',serif;font-size:1.4rem;color:var(--gold);font-weight:400;min-width:28px;text-align:center;padding-top:12px}
.btn-submit{width:100%;padding:16px;background:linear-gradient(135deg,var(--gold-dark) 0%,var(--gold) 50%,var(--gold-dark) 100%);background-size:200% auto;color:#fff;border:none;border-radius:2px;font-family:'Jost',sans-serif;font-size:.84rem;font-weight:500;letter-spacing:3px;text-transform:uppercase;cursor:pointer;transition:.4s;margin-top:8px}
.btn-submit:hover{background-position:right center;transform:translateY(-1px);box-shadow:0 8px 26px rgba(201,168,76,.3)}
.confirm-box{text-align:center;padding:40px 20px;display:none}
.confirm-box.show{display:block}
.confirm-icon{width:70px;height:70px;border-radius:50%;background:linear-gradient(135deg,var(--gold-dark),var(--gold));color:#fff;font-size:1.8rem;display:flex;align-items:center;justify-content:center;margin:0 auto 20px}
.confirm-box h3{font-family:'Playfair Display',serif;font-size:1.8rem;font-weight:400;margin-bottom:10px}
.confirm-box p{color:var(--text-light);font-size:.9rem;font-weight:300;line-height:1.8}
.hidden{display:none!important}

/* ══ FOOTER ══ */
footer{background:#0F0D0C;color:rgba(255,255,255,.45);text-align:center;padding:clamp(44px,7vw,88px) 20px}
.footer-names{font-family:'Playfair Display',serif;font-size:clamp(1.8rem,5vw,3.2rem);font-style:italic;font-weight:400;color:var(--gold-light);margin-bottom:12px}
.footer-date{font-size:.72rem;letter-spacing:6px;text-transform:uppercase;margin-bottom:clamp(18px,3vw,28px)}
.footer-msg{font-size:.82rem;font-weight:300;line-height:2.2}

/* ══ GIFT MODAL ══ */

.gift-modal-overlay{position:fixed;inset:0;display:none;align-items:center;justify-content:center;background:rgba(3,3,3,0.55);z-index:10000;padding:20px}
.gift-modal-overlay.show{display:flex}
.gift-modal{background:linear-gradient(180deg,#ffffff,#fbfbfb);max-width:720px;width:100%;border-radius:12px;box-shadow:0 40px 100px rgba(11,9,7,0.45);position:relative;overflow:hidden;transform:translateY(12px);opacity:0;transition:all .28s ease}
.gift-modal-overlay.show .gift-modal{transform:translateY(0);opacity:1}
.gift-modal .modal-head{display:flex;gap:18px;align-items:center;padding:22px 24px;background:linear-gradient(90deg,rgba(201,168,76,0.12),rgba(201,168,76,0.04));border-bottom:1px solid rgba(201,168,76,0.06)}
.gift-modal .modal-icon{width:64px;height:64px;border-radius:12px;background:linear-gradient(135deg,var(--gold),var(--gold-dark));display:flex;align-items:center;justify-content:center;color:#fff;font-size:1.6rem;box-shadow:0 8px 30px rgba(201,168,76,0.16)}
.gift-modal .modal-meta{flex:1}
.gift-modal h3{font-family:'Playfair Display',serif;margin:0;font-size:1.35rem;color:var(--dark)}
.gift-modal .modal-sub{font-size:0.9rem;color:var(--text-light);margin-top:6px}
.gift-modal .modal-body{padding:20px 24px;background:linear-gradient(180deg,transparent,#fff);color:var(--text-dark);line-height:1.6}
.gift-modal .modal-body p{margin:0 0 14px}
.gift-modal .gift-actions{display:flex;gap:12px;justify-content:flex-end;padding:18px 24px;border-top:1px solid rgba(0,0,0,0.03);background:#fff}
.gift-modal .btn-primary{background:linear-gradient(90deg,var(--gold),var(--gold-dark));color:#fff;border:none;padding:10px 16px;border-radius:6px;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;gap:8px}
.gift-modal .btn-secondary{background:transparent;border:1px solid rgba(0,0,0,0.06);color:var(--text-dark);padding:10px 14px;border-radius:6px;cursor:pointer}
.gift-modal .close-modal{position:absolute;top:12px;right:12px;background:#fff;border:1px solid rgba(0,0,0,0.06);width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.1rem;cursor:pointer;box-shadow:0 6px 20px rgba(0,0,0,0.06)}
