/* ═══════════════════════════════════════════
   15 AÑOS DE SOFÍA MONTENEGRO - STYLE
   ═══════════════════════════════════════════ */

*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }

:root {
  --emerald: #2E8B57;
  --emerald-dark: #1E6B3A;
  --gold: #D4AF37;
  --gold-light: #E8C84A;
  --gold-dark: #B8962E;
  --cream: #F7F3E0;
  --cream-dark: #EBE3CA;
  --dark: #1E1E1E;
  --text: #2C2C2C; --text-light: #6B6B6B;
  --white: #FFFFFF;
  --shadow: 0 8px 32px rgba(0,0,0,0.08);
  --shadow-lg: 0 20px 60px rgba(0,0,0,0.12);
  --radius: 12px; --radius-lg: 20px;
  --font-serif: 'Playfair Display', Georgia, serif;
  --font-sans: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --nav-height: 64px;
}

html { scroll-behavior: smooth; -webkit-tap-highlight-color: transparent; }
body { font-family: var(--font-sans); background: var(--cream); color: var(--text); overflow-x: hidden; -webkit-font-smoothing: antialiased; }
img { max-width:100%; display:block; }
a { text-decoration:none; color:inherit; }
.gold-text { color: var(--gold); }

::-webkit-scrollbar { width:5px; }
::-webkit-scrollbar-track { background:var(--cream); }
::-webkit-scrollbar-thumb { background:var(--emerald); border-radius:3px; }

/* ── LOADER ── */
.loader { position:fixed; inset:0; z-index:99999; background:linear-gradient(135deg,#1A3A2A,#0D2818); display:flex; align-items:center; justify-content:center; flex-direction:column; gap:1.5rem; transition:opacity .6s ease,visibility .6s ease; }
.loader.hidden { opacity:0; visibility:hidden; pointer-events:none; }
.loader-ring { width:52px; height:52px; border:3px solid rgba(212,175,55,0.15); border-top-color:var(--gold); border-radius:50%; animation:spin .8s cubic-bezier(.4,0,.2,1) infinite; }
@keyframes spin { to { transform:rotate(360deg); } }
.loader p { color:rgba(212,175,55,0.7); font-size:.8rem; letter-spacing:.15em; text-transform:uppercase; }

/* ═══════════════════════════════════════════
   HERO FULL-SCREEN (Prisma-inspired)
   ═══════════════════════════════════════════ */
.hero-full {
  position:relative;
  width:100%; height:100vh;
  overflow:hidden;
  background:#0D2818;
}

.hero-bg-video {
  position:absolute; inset:0;
}
.hero-bg-image {
  width:100%; height:100%;
  background: url('https://images.unsplash.com/photo-1492684223066-81342ee5ff30?w=1600&q=80') center/cover fixed;
  filter:saturate(0.7);
  animation:heroZoom 20s ease-in-out infinite alternate;
}
@keyframes heroZoom {
  from { transform:scale(1); }
  to { transform:scale(1.08); }
}

.noise-overlay {
  position:absolute; inset:0;
  pointer-events:none;
  mix-blend-mode:overlay;
  opacity:0.6;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.5'/%3E%3C/svg%3E");
}

.hero-gradient-overlay {
  position:absolute; inset:0;
  background: linear-gradient(135deg, rgba(13,40,24,0.6) 0%, rgba(26,58,42,0.3) 50%, rgba(13,40,24,0.7) 100%);
}

.hero-gradient-overlay::after {
  content:'';
  position:absolute; bottom:0; left:0; right:0;
  height:60%;
  background:linear-gradient(to top, #0D2818 0%, transparent 100%);
}

/* Fixed Nav (global, overlaid on all content) */
.hero-nav {
  position: fixed;
  top: 0.75rem; left: 50%; transform: translateX(-50%);
  z-index: 1000;
}
.hero-nav-inner {
  display:flex; align-items:center; gap:0.25rem;
  background:rgba(0,0,0,0.5);
  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);
  border-radius:100px;
  padding:0.4rem 0.6rem;
  border:1px solid rgba(212,175,55,0.1);
}
.hero-nav-item {
  color:rgba(225,224,204,0.75);
  font-size:0.75rem; font-weight:400;
  letter-spacing:0.04em;
  padding:0.4rem 0.8rem;
  border-radius:50px;
  transition:all 0.25s;
  white-space:nowrap;
  cursor:pointer;
}
.hero-nav-item:hover,
.hero-nav-item.active-nav { background:rgba(212,175,55,0.15); color:var(--gold); }

.hero-nav-item .badge {
  display:inline-flex; align-items:center; justify-content:center;
  background:var(--gold); color:var(--dark);
  font-size:0.55rem; font-weight:700;
  min-width:16px; height:16px;
  border-radius:8px; padding:0 4px; margin-left:3px;
  vertical-align:middle;
}

/* Bottom content */
.hero-bottom {
  position:absolute;
  bottom:0; left:0; right:0;
  z-index:10;
  padding:2rem 2rem 3rem;
}
.hero-bottom-inner {
  max-width:1200px;
  margin:0 auto;
  display:grid;
  grid-template-columns: 1.3fr 1fr;
  gap:3rem;
  align-items:end;
}
@media (max-width:768px) {
  .hero-bottom-inner { grid-template-columns:1fr; gap:1rem; }
}
.hero-title {
  font-family:var(--font-serif);
  font-size:clamp(2.8rem,11vw,7rem);
  font-weight:700;
  line-height:0.95;
  letter-spacing:-0.06em;
  color:#E1E0CC;
  display:flex; flex-wrap:wrap;
}
.word-pull {
  display:inline-block;
  margin-right:0.08em;
  opacity:0;
  transform:translateY(30px);
  animation:wordPullUp 0.7s cubic-bezier(0.16,1,0.3,1) forwards;
  animation-delay:calc(0.12s * var(--i, 0) + 0.3s);
}
@keyframes wordPullUp {
  to { opacity:1; transform:translateY(0); }
}
.hero-title .word-pull.gold-text { color:var(--gold); }

.hero-desc {
  color:rgba(225,224,204,0.65);
  font-size:clamp(0.78rem,1.2vw,0.95rem);
  line-height:1.6;
  font-weight:300;
  margin-bottom:1rem;
  opacity:0;
  transform:translateY(20px);
  animation:fadeUpCta 0.8s cubic-bezier(0.16,1,0.3,1) 0.8s forwards;
}

.btn-hero-cta {
  display:inline-flex; align-items:center; gap:0.6rem;
  background:#E1E0CC; color:#1A1A1A;
  border:none; border-radius:100px;
  padding:0.5rem 0.5rem 0.5rem 1.4rem;
  font-family:var(--font-sans);
  font-size:0.85rem; font-weight:500;
  cursor:pointer;
  transition:all 0.35s cubic-bezier(.4,0,.2,1);
  opacity:0;
  transform:translateY(20px);
  animation:fadeUpCta 0.8s cubic-bezier(0.16,1,0.3,1) 1s forwards;
}
@keyframes fadeUpCta {
  to { opacity:1; transform:translateY(0); }
}
.btn-hero-cta:hover { gap:1rem; background:var(--gold); }
.btn-hero-arrow {
  display:flex; align-items:center; justify-content:center;
  width:34px; height:34px;
  border-radius:50%;
  background:#1A1A1A;
  color:#E1E0CC;
  transition:transform 0.3s;
}
.btn-hero-cta:hover .btn-hero-arrow { transform:scale(1.12); }

.scroll-indicator-f {
  position:absolute; bottom:0.8rem; left:50%; transform:translateX(-50%);
  z-index:10;
  color:rgba(212,175,55,0.3);
  font-size:1.5rem;
  animation:bounceDown 2s ease-in-out infinite;
  cursor:pointer;
}
@keyframes bounceDown { 0%,100% { transform:translateX(-50%) translateY(0); opacity:.3; } 50% { transform:translateX(-50%) translateY(8px); opacity:1; } }

@media (max-width:768px) {
  .hero-bottom { padding:1.5rem 1rem 2rem; }
  .hero-nav-inner { gap:0; padding:0.3rem 0.4rem; }
  .hero-nav-item { font-size:0.65rem; padding:0.3rem 0.5rem; }
}

/* ═══════════════════════════════════════════
   SECTIONS
   ═══════════════════════════════════════════ */
.section { display:none; }
.section.active { display:block; animation:fadeUp .5s ease both; }
@keyframes fadeUp { from { opacity:0; transform:translateY(20px); } to { opacity:1; transform:translateY(0); } }

.section-block { padding:4rem 1.5rem; border-bottom:1px solid rgba(46,139,87,0.05); }
.section-block:last-of-type { border-bottom:none; }
.section-block[id] { scroll-margin-top: 80px; }
.block-inner { max-width:1200px; margin:0 auto; }
.block-inner.narrow { max-width:650px; }

.block-pre {
  font-size:.65rem; letter-spacing:.25em; text-transform:uppercase;
  color:var(--emerald); font-weight:500; margin-bottom:.4rem; text-align:center;
}
.block-title {
  font-family:var(--font-serif);
  font-size:clamp(1.6rem,4vw,2.4rem);
  color:var(--dark); line-height:1.2; margin-bottom:1.2rem; text-align:center;
}
.block-desc { color:var(--text-light); font-size:.9rem; line-height:1.7; text-align:center; max-width:480px; margin:0 auto; }

.divider-gold { display:flex; align-items:center; justify-content:center; gap:.6rem; margin-bottom:1rem; }
.divider-gold::before,.divider-gold::after { content:''; width:40px; height:1px; background:linear-gradient(to right,transparent,var(--gold)); }
.divider-gold::after { background:linear-gradient(to left,transparent,var(--gold)); }
.divider-gold span { color:var(--gold); font-size:.8rem; }

/* ═══════════════════════════════════════════
   LA FESTEJADA
   ═══════════════════════════════════════════ */
.festejada-photo {
  margin:2rem auto 0;
  max-width:400px;
  border-radius:16px;
  overflow:hidden;
  box-shadow:0 12px 40px rgba(212,175,55,0.15);
  border:3px solid var(--gold);
}
.festejada-photo img {
  width:100%; height:auto;
  display:block;
}

/* ═══════════════════════════════════════════
   FRASE
   ═══════════════════════════════════════════ */
.frase-block { background:var(--white); text-align:center; }
.frase-icon { font-family:var(--font-serif); font-size:4rem; line-height:1; color:var(--gold); opacity:.3; margin-bottom:.5rem; }
.frase-text { font-family:var(--font-serif); font-size:clamp(1.1rem,2.5vw,1.4rem); font-style:italic; color:var(--text); line-height:1.7; margin-bottom:.6rem; }
.frase-autor { font-size:.85rem; color:var(--emerald); font-weight:500; }

/* ═══════════════════════════════════════════
   AUDIO
   ═══════════════════════════════════════════ */
.audio-block { background:rgba(46,139,87,0.02); text-align:center; }
.audio-player { background:var(--white); border-radius:var(--radius); padding:1.5rem; box-shadow:var(--shadow); max-width:380px; margin:0 auto; border:1px solid rgba(46,139,87,0.06); }
.audio-icon { font-size:2.5rem; margin-bottom:.5rem; }
.audio-label { font-size:.85rem; color:var(--text-light); margin-bottom:1rem; }
.audio-controls { display:flex; align-items:center; gap:.75rem; }
.audio-btn { width:44px; height:44px; border-radius:50%; background:var(--emerald); border:none; color:var(--white); font-size:1rem; cursor:pointer; display:flex; align-items:center; justify-content:center; flex-shrink:0; transition:all .25s; }
.audio-btn:hover { background:var(--emerald-dark); transform:scale(1.05); }
.audio-progress { flex:1; height:6px; border-radius:3px; background:var(--cream-dark); cursor:pointer; position:relative; overflow:hidden; }
.audio-progress-fill { height:100%; width:0%; border-radius:3px; background:var(--gold); transition:width .1s linear; }
.audio-time { font-size:.78rem; color:var(--text-light); min-width:35px; text-align:right; }

/* ═══════════════════════════════════════════
   INVITACIÓN
   ═══════════════════════════════════════════ */
.invite-block { background:var(--white); text-align:center; }
.invite-card { max-width:400px; margin:0 auto; padding:2rem; border:2px solid var(--gold); border-radius:var(--radius-lg); position:relative; }
.invite-card::before,.invite-card::after { content:'✦'; position:absolute; color:var(--gold); font-size:.8rem; }
.invite-card::before { top:-.6rem; left:50%; transform:translateX(-50%); background:var(--white); padding:0 .5rem; }
.invite-card::after { bottom:-.6rem; left:50%; transform:translateX(-50%); background:var(--white); padding:0 .5rem; }
.invite-line { font-size:.95rem; line-height:1.8; color:var(--text); }
.invite-line.highlight { color:var(--emerald); font-weight:600; }
.invite-line.small { font-size:.82rem; color:var(--text-light); margin-top:.3rem; }

/* ═══════════════════════════════════════════
   FECHA
   ═══════════════════════════════════════════ */
.date-block { text-align:center; }
.date-cards { display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; max-width:700px; margin:0 auto 2rem; }
@media (max-width:600px) { .date-cards { grid-template-columns:1fr; gap:.8rem; } }
.date-card { background:var(--white); border-radius:var(--radius); padding:1.5rem 1rem; box-shadow:var(--shadow); border:1px solid rgba(46,139,87,0.06); transition:transform .3s; }
.date-card:hover { transform:translateY(-4px); }
.date-card-icon { font-size:2rem; margin-bottom:.5rem; }
.date-card h3 { font-size:.75rem; text-transform:uppercase; letter-spacing:.1em; color:var(--text-light); margin-bottom:.3rem; }
.date-card-value { font-family:var(--font-serif); font-size:1.1rem; color:var(--dark); font-weight:600; }
.date-card-label { font-size:.78rem; color:var(--text-light); margin-top:.15rem; }
.map-container { max-width:700px; margin:0 auto; border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow); }

/* ═══════════════════════════════════════════
   COUNTDOWN
   ═══════════════════════════════════════════ */
.countdown-block { text-align:center; background:linear-gradient(135deg,#1A3A2A,#0D2818); color:var(--white); }
.countdown-block .block-pre { color:rgba(212,175,55,0.6); }
.countdown-block .block-title { color:var(--white); }
.countdown-grid { display:flex; align-items:center; justify-content:center; gap:.5rem; margin-top:1.5rem; }
.countdown-item { text-align:center; min-width:70px; }
.countdown-num { display:block; font-family:var(--font-serif); font-size:clamp(2rem,5vw,3.2rem); font-weight:700; color:var(--gold); line-height:1; }
.countdown-label { font-size:.7rem; text-transform:uppercase; letter-spacing:.1em; color:rgba(255,255,255,0.5); margin-top:.3rem; }
.countdown-sep { font-size:2rem; color:rgba(212,175,55,0.4); padding-bottom:.5rem; }
@media (max-width:400px) { .countdown-grid { gap:.2rem; } .countdown-item { min-width:55px; } }

/* ═══════════════════════════════════════════
   FEATURED IMAGE
   ═══════════════════════════════════════════ */
.featured-image { padding:2rem 1.5rem; }
.featured-img-frame { max-width:800px; margin:0 auto; border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-lg); position:relative; }
.featured-img-frame img { width:100%; height:auto; display:block; }
.featured-img-overlay { position:absolute; bottom:1rem; right:1rem; width:50px; height:50px; background:rgba(212,175,55,0.15); backdrop-filter:blur(8px); border-radius:50%; display:flex; align-items:center; justify-content:center; color:var(--gold); font-size:1.5rem; }

/* ═══════════════════════════════════════════
   CRONOGRAMA
   ═══════════════════════════════════════════ */
.schedule-block { background:var(--white); }
.timeline { position:relative; max-width:500px; margin:0 auto; padding-left:2rem; }
.timeline::before { content:''; position:absolute; left:20px; top:0; bottom:0; width:2px; background:linear-gradient(to bottom,var(--gold),var(--emerald)); opacity:.3; }
.timeline-item { position:relative; padding-bottom:1.8rem; display:flex; gap:1rem; }
.timeline-item:last-child { padding-bottom:0; }
.timeline-time { min-width:60px; font-size:.78rem; font-weight:600; color:var(--emerald); padding-top:.1rem; text-align:right; }
.timeline-dot { position:relative; z-index:1; flex-shrink:0; width:12px; height:12px; border-radius:50%; background:var(--gold); border:3px solid var(--cream); margin-top:.2rem; }
.timeline-content h3 { font-size:.95rem; color:var(--dark); font-weight:600; }
.timeline-content p { font-size:.8rem; color:var(--text-light); margin-top:.1rem; }
@media (max-width:400px) { .timeline { padding-left:1.5rem; } .timeline::before { left:15px; } .timeline-time { min-width:50px; font-size:.7rem; } }

/* ═══════════════════════════════════════════
   DRESS CODE / GIFTS
   ═══════════════════════════════════════════ */
.dresscode-block { text-align:center; }
.dresscode-cards { display:grid; grid-template-columns:1fr 1fr; gap:1rem; max-width:500px; margin:0 auto 1.2rem; }
@media (max-width:450px) { .dresscode-cards { grid-template-columns:1fr; } }
.dresscode-card { background:var(--white); border-radius:var(--radius); padding:1.5rem; box-shadow:var(--shadow); border:1px solid rgba(46,139,87,0.06); }
.dresscode-icon { font-size:2rem; margin-bottom:.5rem; }
.dresscode-card h3 { font-size:.9rem; color:var(--dark); margin-bottom:.3rem; }
.dresscode-card p { font-size:.8rem; color:var(--text-light); line-height:1.5; }
.dresscode-note { font-size:.82rem; color:var(--emerald); font-style:italic; }

.gifts-block { text-align:center; }
.gifts-grid { display:grid; grid-template-columns:1fr 1fr; gap:1rem; max-width:550px; margin:1.5rem auto 0; }
@media (max-width:450px) { .gifts-grid { grid-template-columns:1fr; } }
.gift-card { background:var(--white); border-radius:var(--radius); padding:1.5rem; box-shadow:var(--shadow); border:1px solid rgba(212,175,55,0.1); transition:transform .3s; }
.gift-card:hover { transform:translateY(-4px); }
.gift-icon { font-size:2.2rem; margin-bottom:.5rem; }
.gift-card h3 { font-size:.9rem; color:var(--dark); margin-bottom:.3rem; }
.gift-card p { font-size:.8rem; color:var(--text-light); line-height:1.5; }

/* ═══════════════════════════════════════════
   AGRADECIMIENTO / CIERRE
   ═══════════════════════════════════════════ */
.thanks-block { background:var(--white); text-align:center; }
.thanks-card { max-width:500px; margin:0 auto; }
.thanks-text { font-size:.9rem; line-height:1.8; color:var(--text-light); margin-bottom:1rem; }
.thanks-autor { font-family:var(--font-serif); font-size:1rem; color:var(--emerald); margin-top:1rem; line-height:1.5; }

.closing-block { text-align:center; background:linear-gradient(to top,rgba(46,139,87,0.03),transparent); padding-bottom:5rem; }
.closing-icon { font-size:2.5rem; color:var(--gold); margin-bottom:.5rem; animation:pulseGlow 2s ease-in-out infinite; }
.closing-text { font-size:.9rem; color:var(--text-light); line-height:1.6; margin-bottom:1.5rem; }
.closing-actions { margin-bottom:1.5rem; }
.closing-footer { font-size:.75rem; color:var(--text-light); letter-spacing:.08em; margin-top:2rem; }

@keyframes pulseGlow { 0%,100% { box-shadow:0 0 0 0 rgba(212,175,55,0.3); } 50% { box-shadow:0 0 0 14px rgba(212,175,55,0); } }

/* ═══════════════════════════════════════════
   FOTOS PAGE
   ═══════════════════════════════════════════ */
#section-fotos { padding-top:calc(var(--nav-height) + 0.75rem); min-height:100vh; }
.fotos-layout { display:grid; grid-template-columns:380px 1fr; min-height:calc(100vh - var(--nav-height)); background:var(--white); }
@media (max-width:900px) { .fotos-layout { grid-template-columns:1fr; } }

.fotos-upload { background:var(--cream); padding:2rem 1.5rem; border-right:1px solid rgba(46,139,87,0.06); }
@media (min-width:901px) { .fotos-upload { position:sticky; top:var(--nav-height); height:calc(100vh - var(--nav-height)); overflow-y:auto; } }
.upload-sticky { max-width:340px; margin:0 auto; }

.fotos-gallery { padding:1.5rem; min-height:calc(100vh - var(--nav-height)); }
.gallery-header-fixed { display:flex; align-items:flex-start; justify-content:space-between; flex-wrap:wrap; gap:.8rem; margin-bottom:1.5rem; position:sticky; top:var(--nav-height); z-index:10; background:var(--white); padding:.5rem 0; }
.gallery-header-fixed h2 { font-family:var(--font-serif); font-size:1.3rem; color:var(--dark); }
.gallery-count { font-size:.8rem; color:var(--text-light); margin-top:.1rem; }

.filter-pills { display:flex; gap:.4rem; flex-wrap:wrap; }
.filter-pill { background:var(--cream); border:1px solid rgba(46,139,87,0.1); padding:.45rem 1rem; border-radius:50px; font-family:var(--font-sans); font-size:.78rem; font-weight:500; cursor:pointer; color:var(--text-light); transition:all .25s; }
.filter-pill.active,.filter-pill:hover { background:var(--emerald); border-color:var(--emerald); color:var(--white); }

.masonry { columns:2; column-gap:.7rem; }
@media (max-width:500px) { .masonry { columns:1; } }
.photo-card { break-inside:avoid; margin-bottom:.7rem; border-radius:10px; overflow:hidden; cursor:pointer; position:relative; background:var(--cream); animation:cardIn .4s ease both; transition:transform .4s cubic-bezier(.4,0,.2,1), box-shadow .4s; }
@keyframes cardIn { from { opacity:0; transform:translateY(12px) scale(.97); } to { opacity:1; transform:translateY(0) scale(1); } }
.photo-card:hover { transform:translateY(-3px); box-shadow:var(--shadow-lg); }
.photo-card img { width:100%; display:block; transition:transform .5s; }
.photo-card:hover img { transform:scale(1.05); }
.photo-card .photo-info { position:absolute; bottom:0; left:0; right:0; padding:1.5rem .8rem .7rem; background:linear-gradient(to top,rgba(30,30,30,0.8) 0%,transparent 100%); transform:translateY(12px); opacity:0; transition:all .35s; pointer-events:none; }
.photo-card:hover .photo-info { opacity:1; transform:translateY(0); }
.photo-info .autor { color:var(--white); font-size:.82rem; font-weight:500; }
.photo-info .meta { color:var(--gold); font-size:.7rem; margin-top:.15rem; }

.empty-state { text-align:center; padding:4rem 1.5rem; color:var(--text-light); column-span:all; }
.empty-icon { font-size:2.5rem; margin-bottom:.8rem; display:block; }
.empty-state p { font-size:.85rem; line-height:1.6; }

.scroll-top-btn { position:fixed; bottom:2rem; right:2rem; width:44px; height:44px; border-radius:50%; background:var(--emerald); color:var(--white); border:none; cursor:pointer; font-size:1.2rem; box-shadow:0 4px 16px rgba(46,139,87,0.3); transition:all .3s; z-index:100; display:none; }
.scroll-top-btn:hover { background:var(--emerald-dark); transform:translateY(-3px); }
.scroll-top-btn.visible { display:flex; align-items:center; justify-content:center; }

/* ═══════════════════════════════════════════
   DROP ZONE / UPLOAD
   ═══════════════════════════════════════════ */
.drop-zone { border:2px dashed rgba(46,139,87,0.25); border-radius:var(--radius); padding:2rem 1.5rem; text-align:center; cursor:pointer; transition:all .35s; position:relative; background:rgba(247,243,224,0.5); }
.drop-zone:hover,.drop-zone.drag-over { border-color:var(--emerald); background:rgba(46,139,87,0.04); }
.drop-zone input[type="file"] { position:absolute; inset:0; opacity:0; cursor:pointer; width:100%; height:100%; }
.drop-icon { font-size:2.2rem; margin-bottom:.5rem; display:block; }
.drop-zone strong { color:var(--emerald); display:block; font-size:.95rem; margin-bottom:.2rem; }
.drop-text { color:var(--text-light); font-size:.82rem; }
.drop-text small { opacity:.6; }

.preview-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:.4rem; margin:.8rem 0; }
.preview-item { aspect-ratio:1; border-radius:8px; overflow:hidden; position:relative; background:var(--cream-dark); }
.preview-item img { width:100%; height:100%; object-fit:cover; }
.preview-item button { position:absolute; top:3px; right:3px; width:20px; height:20px; background:rgba(30,30,30,0.6); color:white; border:none; border-radius:50%; font-size:.6rem; cursor:pointer; display:flex; align-items:center; justify-content:center; }

.form-group { display:flex; flex-direction:column; gap:.3rem; margin-bottom:.75rem; }
.form-group label { font-size:.72rem; font-weight:500; letter-spacing:.06em; text-transform:uppercase; color:var(--text-light); }
.form-group .required { color:#D32F2F; }
.form-group input,.form-group textarea { background:var(--white); border:1.5px solid rgba(46,139,87,0.1); border-radius:8px; padding:.7rem .9rem; font-family:var(--font-sans); font-size:.88rem; color:var(--text); outline:none; transition:border-color .25s,box-shadow .25s; }
.form-group input:focus,.form-group textarea:focus { border-color:var(--emerald); box-shadow:0 0 0 3px rgba(46,139,87,0.08); }
.form-group textarea { resize:vertical; min-height:60px; }
.upload-note { margin-top:1rem; padding:.8rem 1rem; background:rgba(212,175,55,0.06); border-radius:8px; text-align:center; font-size:.78rem; color:var(--text-light); border-left:3px solid var(--gold); }

/* ═══════════════════════════════════════════
   LIGHTBOX
   ═══════════════════════════════════════════ */
.lightbox { position:fixed; inset:0; z-index:2000; background:rgba(30,30,30,0.96); display:none; align-items:center; justify-content:center; padding:1.5rem; backdrop-filter:blur(12px); }
.lightbox.open { display:flex; }
.lightbox-content { max-width:900px; width:100%; animation:fadeUp .35s ease; }
.lightbox-content img { width:100%; max-height:70vh; object-fit:contain; border-radius:var(--radius); }
.lightbox-meta { margin-top:1rem; color:var(--white); display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:.5rem; }
.lightbox-meta h3 { font-family:var(--font-serif); font-size:1.1rem; color:var(--gold); }
.lightbox-meta p { color:rgba(255,255,255,0.5); font-size:.82rem; margin-top:.1rem; }
.lightbox-meta span { color:rgba(255,255,255,0.4); font-size:.8rem; }
.lightbox-close { position:absolute; top:1.2rem; right:1.2rem; width:40px; height:40px; border-radius:50%; background:rgba(255,255,255,0.06); border:none; color:rgba(255,255,255,0.7); font-size:1.2rem; cursor:pointer; transition:all .25s; display:flex; align-items:center; justify-content:center; }
.lightbox-close:hover { background:var(--emerald); color:var(--white); }
.lightbox-nav { position:absolute; bottom:1.5rem; left:50%; transform:translateX(-50%); display:flex; gap:.5rem; }
.lightbox-nav button { background:rgba(255,255,255,0.06); border:none; color:rgba(255,255,255,0.7); width:40px; height:40px; border-radius:50%; cursor:pointer; font-size:1.1rem; transition:all .25s; display:flex; align-items:center; justify-content:center; }
.lightbox-nav button:hover { background:var(--gold); color:var(--dark); }

/* ═══════════════════════════════════════════
   TOAST / FOOTER
   ═══════════════════════════════════════════ */
.toast-container { position:fixed; bottom:1.5rem; left:50%; transform:translateX(-50%); z-index:9999; pointer-events:none; }
.toast { background:var(--emerald-dark); color:var(--white); padding:.8rem 1.5rem; border-radius:10px; font-size:.85rem; font-weight:500; box-shadow:0 8px 32px rgba(0,0,0,0.2); transform:translateY(20px); opacity:0; transition:all .4s cubic-bezier(.34,1.56,.64,1); pointer-events:all; text-align:center; min-width:180px; }
.toast.show { transform:translateY(0); opacity:1; }

footer { background:var(--white); border-top:1px solid rgba(46,139,87,0.06); padding:1.5rem; text-align:center; }
footer p { color:var(--text-light); font-size:.78rem; }
.footer-text { color:var(--dark); font-weight:500; }

/* ═══════════════════════════════════════════
   RESPONSIVE
   ═══════════════════════════════════════════ */
@media (max-width:768px) {
  .section-block { padding:3rem 1rem; }
  .fotos-upload { padding:1.5rem 1rem; }
  .fotos-gallery { padding:1rem; }
  .gallery-header-fixed { flex-direction:column; }
}
@media (max-width:480px) {
  .dresscode-cards { grid-template-columns:1fr; }
  .gifts-grid { grid-template-columns:1fr; }
}
