:root {
  --gold:        #B37E10;
  --gold-light:  #F8DD7B;
  --gold-mid:    #D4A843;
  --black:       #000000;
  --black-soft:  #0a0a0a;
  --black-card:  #111111;
  --white:       #FFFFFF;
  --border-gold: rgba(212,168,67,0.3);
  --text-primary:   rgba(255,255,255,1);
  --text-secondary: rgba(255,255,255,0.85);
  --text-muted:     rgba(255,255,255,0.70);
  --gold-readable:  #F8DD7B;
  --gold-sub:       #E0C060;
}

*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }
body {
  background: var(--black);
  color: var(--white);
  font-family: 'Montserrat', sans-serif;
  font-weight: 300;
  overflow-x: hidden
}

/* CURSOR */

/* NAV */

/* HERO */
.ev-hero { min-height:100vh;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;overflow:hidden;padding:9rem 2rem 7rem; }
.ev-hero-bg { position:absolute;inset:0;background-size:cover;background-position:center;opacity:.22;filter:blur(3px) saturate(.55) brightness(.7); }
.ev-hero-overlay {
  position:absolute;inset:0;
  background:linear-gradient(to bottom,rgba(0,0,0,.65) 0%,rgba(0,0,0,.15) 35%,rgba(0,0,0,.15) 65%,rgba(0,0,0,.88) 100%);
}
.ev-hero-inner { position:relative;z-index:1;max-width:860px;width:100%; }

/* "Jardín de Novias" */
.ev-eyebrow {
  font-size:0.65rem;letter-spacing:.42em;text-transform:uppercase;
  color:var(--gold-readable);
  margin-bottom:1.5rem;
  display:flex;align-items:center;justify-content:center;gap:1rem;
  opacity:0;animation:fadeUp .6s .15s forwards;
  font-weight:400;
}
.ev-eyebrow::before, .ev-eyebrow::after { content:'';width:36px;height:1px;background:rgba(248,221,123,.5);flex-shrink:0; }

.ev-hero-title { font-family:'Cormorant Garamond',serif;font-size:clamp(3.2rem,9vw,8rem);font-weight:300;line-height:.95;margin-bottom:1.5rem;opacity:0;animation:fadeUp .8s .3s forwards; }
.ev-hero-title span { display:block;color:var(--white); }
.ev-hero-title em { display:block;font-style:italic;background:linear-gradient(135deg,var(--gold-mid) 0%,var(--gold-light) 55%,var(--gold-mid) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent; }

.ev-hero-line { width:60px;height:1px;background:linear-gradient(to right,transparent,var(--gold-mid),transparent);margin:0 auto 1.5rem;opacity:0;animation:fadeUp .6s .45s forwards; }

.ev-hero-sub { font-size:0.78rem;font-weight:300;color:rgba(255,255,255,.85);line-height:2;max-width:580px;margin:0 auto 3rem;opacity:0;animation:fadeUp .7s .55s forwards; }

.ev-hero-stats { display:flex;align-items:center;justify-content:center;gap:2.5rem;opacity:0;animation:fadeUp .7s .7s forwards; }
.ev-hero-stat { text-align:center; }
.ev-stat-n { font-family:'Cormorant Garamond',serif;font-size:2.5rem;font-weight:300;background:linear-gradient(135deg,var(--gold-mid),var(--gold-light));-webkit-background-clip:text;-webkit-text-fill-color:transparent;display:block;line-height:1; }
.ev-stat-l { font-size:0.6rem;letter-spacing:.28em;text-transform:uppercase;color:rgba(255,255,255,.78);margin-top:.35rem;font-weight:400; }
.ev-hero-stat-div { width:1px;height:3rem;background:rgba(212,168,67,.25); }

/* "Explorar" */
.ev-scroll-hint { position:absolute;bottom:2.5rem;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:.6rem;opacity:0;animation:fadeUp .6s 1.1s forwards; }
.ev-scroll-hint span { font-size:0.62rem;letter-spacing:.38em;text-transform:uppercase;color:rgba(248,221,123,.9);font-weight:400; }
.ev-scroll-line { width:1px;height:44px;background:linear-gradient(to bottom,rgba(248,221,123,.65),transparent); }

/* FILTROS */
.ev-filters-bar { display:flex;gap:0;justify-content:center;padding:1.25rem 2rem;background:var(--black-soft);border-bottom:1px solid var(--border-gold);position:sticky;top:0;z-index:200;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px); }
.ev-filter { padding:.65rem 2.2rem;font-size:0.65rem;letter-spacing:.22em;text-transform:uppercase;cursor:pointer;background:transparent;border:none;color:rgba(255,255,255,.75);font-family:'Montserrat',sans-serif;font-weight:400;border-bottom:2px solid transparent;transition:all .25s; }
.ev-filter.active { color:var(--gold-readable);border-bottom-color:var(--gold-mid); }
.ev-filter:hover { color:#fff; }

/* SECTIONS */
.ev-section { padding:6rem 2rem; }
.ev-section-dark { background:var(--black-soft); }
.ev-section-inner { max-width:1200px;margin:0 auto; }
.ev-section-header { margin-bottom:4rem; }
.ev-section-label { font-size:0.65rem;letter-spacing:.32em;text-transform:uppercase;color:var(--gold-readable);margin-bottom:.8rem;display:flex;align-items:center;gap:.75rem;font-weight:400; }
.ev-section-label::before { content:'✦';font-size:0.6rem; }
.ev-section-title { font-family:'Cormorant Garamond',serif;font-size:clamp(2rem,4vw,3.5rem);font-weight:300;color:var(--white);line-height:1.1; }
.ev-section-title em { font-style:italic;background:linear-gradient(135deg,var(--gold-mid),var(--gold-light));-webkit-background-clip:text;-webkit-text-fill-color:transparent; }

/* FEATURED GRID */
.ev-featured-grid { display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:3px; }
.ev-featured-card { position:relative;overflow:hidden;aspect-ratio:16/10;cursor:pointer;background:var(--black-card); }
.ev-featured-card:first-child { grid-column:1 / -1;aspect-ratio:21/9; }
.ev-featured-card img { width:100%;height:100%;object-fit:cover;transition:transform .7s cubic-bezier(.25,.46,.45,.94),filter .5s;filter:brightness(.72) saturate(.85); }
.ev-featured-card:hover img { transform:scale(1.05);filter:brightness(.88) saturate(1); }
.ev-featured-placeholder { width:100%;height:100%;background:linear-gradient(135deg,#0d0d0d,#1a1200);display:flex;align-items:center;justify-content:center;font-size:4rem; }
.ev-featured-overlay { position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.88) 0%,rgba(0,0,0,.3) 55%,transparent 100%);transition:background .4s; }
.ev-featured-card:hover .ev-featured-overlay { background:linear-gradient(to top,rgba(0,0,0,.92) 0%,rgba(0,0,0,.4) 60%,transparent 100%); }
.ev-featured-content { position:absolute;bottom:0;left:0;right:0;padding:2rem 2.5rem; }
.ev-featured-tag { display:inline-block;font-size:0.6rem;letter-spacing:.22em;text-transform:uppercase;background:linear-gradient(135deg,var(--gold),var(--gold-light));color:#000;padding:.3rem .85rem;font-weight:600;margin-bottom:.75rem; }
.ev-featured-name { font-family:'Cormorant Garamond',serif;font-size:clamp(1.4rem,3vw,2.2rem);font-weight:300;color:#fff;line-height:1.1;margin-bottom:.5rem; }
.ev-featured-date { font-size:0.65rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gold-readable);font-weight:400; }
.ev-featured-arrow { position:absolute;top:1.5rem;right:1.5rem;width:2.5rem;height:2.5rem;border:1px solid rgba(248,221,123,.4);display:flex;align-items:center;justify-content:center;font-size:.9rem;color:var(--gold-readable);transition:all .3s;opacity:0;transform:translate(4px,-4px); }
.ev-featured-card:hover .ev-featured-arrow { opacity:1;transform:translate(0,0);border-color:var(--gold-light); }

/* MASONRY */
.ev-masonry { display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem; }
.ev-card { background:var(--black-card);border:1px solid rgba(212,168,67,.15);overflow:hidden;cursor:pointer;transition:transform .3s,border-color .3s,box-shadow .3s;position:relative; }
.ev-card:hover { transform:translateY(-5px);border-color:rgba(212,168,67,.4);box-shadow:0 20px 60px rgba(179,126,16,.14); }
.ev-card:nth-child(4n+1) { grid-row:span 2; }
.ev-card-img { width:100%;overflow:hidden;aspect-ratio:3/4; }
.ev-card:nth-child(4n+1) .ev-card-img { aspect-ratio:auto;height:100%;max-height:600px; }
.ev-card-img img { width:100%;height:100%;object-fit:cover;transition:transform .6s;filter:brightness(.82); }
.ev-card:hover .ev-card-img img { transform:scale(1.05);filter:brightness(.92); }
.ev-card-ph { width:100%;height:220px;background:linear-gradient(135deg,#0d0d0d,#1a1300);display:flex;align-items:center;justify-content:center;font-size:3rem; }
.ev-card-body { padding:1.5rem; }
.ev-card-tag { font-size:0.62rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-readable);margin-bottom:.65rem;font-weight:400; }
.ev-card-name { font-family:'Cormorant Garamond',serif;font-size:1.3rem;color:#fff;line-height:1.2;margin-bottom:.4rem; }
.ev-card-date { font-size:0.62rem;letter-spacing:.12em;color:rgba(248,221,123,.85);margin-bottom:.65rem;font-weight:400; }
.ev-card-desc { font-size:0.7rem;color:rgba(255,255,255,.8);line-height:1.85;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden; }
.ev-card-badges { display:flex;gap:.4rem;margin-top:.85rem;flex-wrap:wrap; }
.ev-card-badge { font-size:0.58rem;letter-spacing:.12em;text-transform:uppercase;padding:.2rem .6rem;border:1px solid rgba(212,168,67,.3);color:rgba(248,221,123,.88);font-weight:400; }
.ev-card-badge.has-video { border-color:rgba(255,255,255,.22);color:rgba(255,255,255,.82); }

.ev-estado { position:absolute;top:1rem;right:1rem;font-size:0.58rem;letter-spacing:.18em;text-transform:uppercase;padding:.25rem .75rem;font-weight:600;z-index:2; }
.ev-estado.proximo { background:linear-gradient(135deg,var(--gold),var(--gold-light));color:#000; }
.ev-estado.pasado { background:rgba(0,0,0,.7);border:1px solid rgba(255,255,255,.28);color:rgba(255,255,255,.85); }

/* MODAL */
.ev-modal { position:fixed;inset:0;z-index:800;background:rgba(0,0,0,.92);backdrop-filter:blur(12px);display:flex;align-items:center;justify-content:center;padding:2rem;opacity:0;pointer-events:none;transition:opacity .35s; }
.ev-modal.open { opacity:1;pointer-events:all; }
.ev-modal-box { background:var(--black-card);border:1px solid rgba(212,168,67,.28);max-width:1060px;width:100%;max-height:92vh;overflow-y:auto;display:grid;grid-template-columns:58% 1fr;position:relative;transform:translateY(20px) scale(.98);transition:transform .35s; }
.ev-modal.open .ev-modal-box { transform:translateY(0) scale(1); }
.ev-modal-close { position:absolute;top:1.25rem;right:1.25rem;z-index:10;width:2.2rem;height:2.2rem;background:rgba(0,0,0,.65);border:1px solid rgba(255,255,255,.28);color:rgba(255,255,255,.92);font-size:.8rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;font-family:inherit; }
.ev-modal-close:hover { border-color:var(--gold-light);color:#fff; }
/* Galería: el contenedor se adapta a la imagen, sin recorte */
.ev-modal-gallery { position:relative;background:#000;display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start; }
.ev-modal-gallery-main { position:relative;width:100%;background:#000;overflow:hidden; }
/* La imagen activa establece la altura; las inactivas se superponen con absolute */
.ev-modal-gallery-main img { width:100%;height:auto;max-height:72vh;object-fit:contain;display:block;opacity:0;transition:opacity .45s;position:absolute;inset:0;margin:auto; }
.ev-modal-gallery-main img.active { opacity:1;position:relative;z-index:1; }
/* Placeholder sin fotos */
.ev-modal-gallery-main .ph { width:100%;aspect-ratio:4/3;background:linear-gradient(135deg,#0d0d0d,#1a1300);display:flex;align-items:center;justify-content:center;font-size:5rem; }
.ev-modal-gallery .ph { width:100%;aspect-ratio:4/3;background:linear-gradient(135deg,#0d0d0d,#1a1300);display:flex;align-items:center;justify-content:center;font-size:5rem; }
.ev-modal-thumbs { display:flex;gap:.35rem;justify-content:center;padding:.6rem .75rem;background:#000;flex-wrap:wrap; }
.ev-modal-thumb { width:48px;height:48px;object-fit:cover;cursor:pointer;opacity:.5;border:1px solid transparent;transition:all .2s;flex-shrink:0; }
.ev-modal-thumb.active,.ev-modal-thumb:hover { opacity:1;border-color:var(--gold-light); }
.ev-modal-nav { position:absolute;top:50%;transform:translateY(-50%);display:flex;justify-content:space-between;width:100%;padding:0 .75rem;pointer-events:none;z-index:2; }
.ev-modal-nav button { width:2.4rem;height:2.4rem;background:rgba(0,0,0,.62);border:1px solid rgba(255,255,255,.25);color:rgba(255,255,255,.92);cursor:pointer;pointer-events:all;font-size:1rem;display:flex;align-items:center;justify-content:center;transition:all .2s;font-family:inherit; }
.ev-modal-nav button:hover { background:rgba(179,126,16,.45);border-color:var(--gold-mid); }
.ev-modal-content { padding:2.2rem 2rem;overflow-y:auto;display:flex;flex-direction:column;gap:.9rem; }
.ev-modal-tag { font-size:0.62rem;letter-spacing:.24em;text-transform:uppercase;background:linear-gradient(135deg,var(--gold),var(--gold-light));color:#000;padding:.3rem .9rem;font-weight:600;display:inline-block; }
.ev-modal-name { font-family:'Cormorant Garamond',serif;font-size:clamp(1.4rem,2.5vw,2rem);font-weight:300;color:#fff;line-height:1.15;margin-top:.15rem; }
.ev-modal-date { font-size:0.62rem;letter-spacing:.2em;text-transform:uppercase;color:rgba(248,221,123,.75);display:flex;align-items:center;gap:.6rem;font-weight:400; }
.ev-modal-date::before { content:'';width:18px;height:1px;background:rgba(212,168,67,.55);flex-shrink:0; }
.ev-modal-sep { height:1px;background:rgba(212,168,67,.2); }
.ev-modal-desc { font-size:0.78rem;color:rgba(255,255,255,.78);line-height:1.9; }
.ev-modal-videos { display:flex;flex-direction:column;gap:.75rem; }
.ev-modal-video-label { font-size:0.62rem;letter-spacing:.25em;text-transform:uppercase;color:var(--gold-readable);display:flex;align-items:center;gap:.5rem;font-weight:400; }
.ev-modal-video-label::before { content:'▶';font-size:.55rem; }
.ev-modal-video-list { display:flex;flex-direction:column;gap:.5rem; }
.ev-modal-video-link { display:flex;align-items:center;gap:.75rem;padding:.65rem 1rem;background:rgba(255,255,255,.04);border:1px solid rgba(212,168,67,.22);text-decoration:none;transition:all .25s; }
.ev-modal-video-link:hover { background:rgba(179,126,16,.1);border-color:rgba(212,168,67,.5); }
.ev-modal-video-link span:first-child { font-size:.9rem; }
.ev-modal-video-link span:last-child { font-size:0.65rem;color:rgba(248,221,123,.92);letter-spacing:.05em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis; }

/* EMPTY */
.ev-empty { text-align:center;padding:6rem 2rem; }
.ev-empty-icon { font-size:2rem;color:rgba(212,168,67,.3);margin-bottom:1rem; }
.ev-empty p { font-size:0.75rem;letter-spacing:.15em;text-transform:uppercase;color:rgba(255,255,255,.55); }

/* CTA */
.ev-cta-section { padding:7rem 2rem;text-align:center;position:relative;overflow:hidden;background:var(--black); }
.ev-cta-section::before { content:'';position:absolute;inset:0;background:radial-gradient(ellipse 70% 70% at 50% 50%,rgba(179,126,16,.06) 0%,transparent 70%); }
.ev-cta-inner { position:relative;z-index:1;max-width:620px;margin:0 auto; }
.ev-cta-title { font-family:'Cormorant Garamond',serif;font-size:clamp(2.2rem,5vw,3.8rem);font-weight:300;color:#fff;line-height:1.1;margin-bottom:1rem; }
.ev-cta-title em { font-style:italic;background:linear-gradient(135deg,var(--gold-mid),var(--gold-light));-webkit-background-clip:text;-webkit-text-fill-color:transparent; }
.ev-cta-sub { font-size:0.75rem;color:rgba(255,255,255,.78);line-height:2;max-width:480px;margin:0 auto 2.5rem; }
.ev-cta-btns { display:flex;gap:1rem;justify-content:center;flex-wrap:wrap; }
.btn-gold { padding:.85rem 2.5rem;background:linear-gradient(135deg,var(--gold),var(--gold-light));color:#000;font-size:0.68rem;letter-spacing:.22em;text-transform:uppercase;font-weight:600;text-decoration:none;font-family:'Montserrat',sans-serif;transition:all .3s;display:inline-block; }
.btn-gold:hover { opacity:.9;transform:translateY(-2px); }
.btn-ghost { padding:.85rem 2.5rem;background:transparent;color:var(--gold-readable);font-size:0.68rem;letter-spacing:.22em;text-transform:uppercase;font-weight:400;text-decoration:none;border:1px solid rgba(248,221,123,.58);font-family:'Montserrat',sans-serif;transition:all .3s;display:inline-block; }
.btn-ghost:hover { border-color:var(--gold-readable);color:#fff;transform:translateY(-2px); }

/* FOOTER */
.ev-footer { padding:2rem 4rem;border-top:1px solid var(--border-gold);display:flex;align-items:center;justify-content:space-between;background:var(--black); }
.ev-footer-copy { font-size:0.72rem;color:rgba(255,255,255,.68);letter-spacing:.06em; }
.ev-footer-link { font-size:0.7rem;letter-spacing:.15em;text-transform:uppercase;color:rgba(248,221,123,.85);text-decoration:none;transition:color .2s;font-weight:400; }
.ev-footer-link:hover { color:#fff; }

/* ANIMACIONES */
@keyframes fadeUp { from{opacity:0;transform:translateY(18px)} to{opacity:1;transform:translateY(0)} }
.reveal { opacity:0;transform:translateY(24px);transition:opacity .65s,transform .65s; }
.reveal.visible { opacity:1;transform:translateY(0); }

/* TABLET ≤1024px */
@media (max-width:1024px) {
  .ev-masonry { grid-template-columns:repeat(2,1fr); }
  .ev-card:nth-child(4n+1) { grid-row:span 1; }
  .ev-card:nth-child(4n+1) .ev-card-img { height:auto;max-height:none;aspect-ratio:3/4; }
  .ev-modal-box { grid-template-columns:1fr; }
  .ev-modal-gallery-main img { max-height:55vh; }
  .ev-modal-gallery { min-height:unset; }
  .ev-featured-grid { grid-template-columns:1fr; }
  .ev-featured-card:first-child { aspect-ratio:16/9; }
  .ev-hero-stats { gap:2rem; }
}

/* MOBILE ≤768px */
@media (max-width:768px) {  .ev-hero { padding:7rem 1.5rem 5rem; }
  .ev-eyebrow { font-size:0.6rem;letter-spacing:.28em; }
  .ev-hero-sub { font-size:0.75rem; }
  .ev-hero-stats { gap:1.5rem;flex-wrap:wrap; }
  .ev-stat-n { font-size:2rem; }
  .ev-stat-l { font-size:0.58rem; }
  .ev-scroll-hint span { font-size:0.58rem; }
  .ev-filters-bar { padding:1rem;gap:.15rem; }
  .ev-filter { padding:.55rem .9rem;font-size:0.6rem;letter-spacing:.14em; }
  .ev-section { padding:3.5rem 1.25rem; }
  .ev-section-label { font-size:0.62rem; }
  .ev-section-header { margin-bottom:2.5rem; }
  .ev-masonry { grid-template-columns:1fr;gap:1rem; }
  .ev-card:nth-child(4n+1) { grid-row:span 1; }
  .ev-card-tag { font-size:0.62rem; }
  .ev-card-name { font-size:1.2rem; }
  .ev-card-date { font-size:0.62rem; }
  .ev-card-desc { font-size:0.68rem; }
  .ev-card-badge { font-size:0.6rem; }
  .ev-featured-content { padding:1.5rem; }
  .ev-featured-date { font-size:0.62rem; }
  .ev-modal { padding:.5rem; }
  .ev-modal-box { grid-template-columns:1fr;max-height:96vh; }
  .ev-modal-gallery-main img { max-height:45vh; }
  .ev-modal-gallery { min-height:unset; }
  .ev-modal-content { padding:1.5rem 1.25rem; }
  .ev-modal-desc { font-size:0.72rem; }
  .ev-modal-video-link span:last-child { font-size:0.62rem; }
  .btn-gold,.btn-ghost { padding:.75rem 1.8rem;font-size:0.65rem; }
  .ev-cta-section { padding:5rem 1.25rem; }
  .ev-cta-sub { font-size:0.72rem; }
  .ev-footer { flex-direction:column;gap:.85rem;text-align:center;padding:1.5rem 1.25rem; }
  .ev-footer-copy,.ev-footer-link { font-size:0.7rem; }
  .wa-float { width:50px;height:50px;font-size:1.2rem;bottom:1.25rem;right:1.25rem; }
}

/* SMALL ≤420px */
@media (max-width:420px) {
  .ev-hero-stats { gap:1rem; }
  .ev-hero-stat-div { display:none; }
  .ev-stat-n { font-size:1.8rem; }
  .ev-filters-bar { flex-wrap:wrap;gap:.3rem; }
  .ev-filter { padding:.5rem .75rem;font-size:0.58rem; }
  .ev-modal-gallery-main img { max-height:38vh; }
  .ev-featured-card,.ev-featured-card:first-child { aspect-ratio:4/3; }
}
