/* ── KEYFRAMES — Belle Époque 1911 ────────────────────────────── */

@keyframes fadeInUp {
  from { opacity: 0; transform: translateY(32px); }
  to   { opacity: 1; transform: translateY(0); }
}

@keyframes fadeInDown {
  from { opacity: 0; transform: translateY(-20px); }
  to   { opacity: 1; transform: translateY(0); }
}

@keyframes fadeIn {
  from { opacity: 0; }
  to   { opacity: 1; }
}

@keyframes fadeInLeft {
  from { opacity: 0; transform: translateX(-32px); }
  to   { opacity: 1; transform: translateX(0); }
}

@keyframes fadeInRight {
  from { opacity: 0; transform: translateX(32px); }
  to   { opacity: 1; transform: translateX(0); }
}

@keyframes bounce {
  0%, 100% { transform: translateX(-50%) translateY(0); }
  50%       { transform: translateX(-50%) translateY(9px); }
}

@keyframes spin {
  to { transform: rotate(360deg); }
}

@keyframes countUp {
  from { opacity: 0; transform: scale(0.85); }
  to   { opacity: 1; transform: scale(1); }
}

/* Parpadeo suave del borde dorado */
@keyframes goldPulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(201,162,101,0); }
  50%       { box-shadow: 0 0 0 6px rgba(201,162,101,0.10); }
}

/* Medallón girando levemente como decoración */
@keyframes medallionDrift {
  0%, 100% { opacity: 0.35; }
  50%       { opacity: 0.45; }
}


/* ── REVEAL ON SCROLL ─────────────────────────────────────────── */
.reveal {
  opacity: 0;
  transform: translateY(36px);
  transition: opacity var(--transition-reveal), transform var(--transition-reveal);
}

.reveal.visible {
  opacity: 1;
  transform: translateY(0);
}

.reveal-left {
  opacity: 0;
  transform: translateX(-36px);
  transition: opacity var(--transition-reveal), transform var(--transition-reveal);
}

.reveal-left.visible {
  opacity: 1;
  transform: translateX(0);
}

.reveal-right {
  opacity: 0;
  transform: translateX(36px);
  transition: opacity var(--transition-reveal), transform var(--transition-reveal);
}

.reveal-right.visible {
  opacity: 1;
  transform: translateX(0);
}

/* Delays escalonados */
.reveal-delay-1 { transition-delay: 0.12s; }
.reveal-delay-2 { transition-delay: 0.24s; }
.reveal-delay-3 { transition-delay: 0.36s; }
.reveal-delay-4 { transition-delay: 0.48s; }
.reveal-delay-5 { transition-delay: 0.60s; }


/* ── HERO ENTRANCE — staggered, más lento que el template base ── */
.hero-eyebrow  { animation: fadeInDown 0.9s cubic-bezier(0.4,0,0.2,1) 0.4s both; }
.hero-title    { animation: fadeInUp  1.0s cubic-bezier(0.4,0,0.2,1) 0.65s both; }
.hero-rule     { animation: fadeIn    0.8s ease 0.9s both; }
.hero-subtitle { animation: fadeInUp  0.9s cubic-bezier(0.4,0,0.2,1) 0.95s both; }
.hero-actions  { animation: fadeInUp  0.9s cubic-bezier(0.4,0,0.2,1) 1.15s both; }
.hero-scroll   { animation: fadeIn    0.8s ease 1.5s both, bounce 3s ease 2.3s infinite; }


/* ── STAT NUMBER ──────────────────────────────────────────────── */
.stat-number.counting {
  animation: countUp 0.5s cubic-bezier(0.4,0,0.2,1) both;
}


/* ── HOVER IMAGE ZOOM ─────────────────────────────────────────── */
.gallery-item img,
.evento-img img,
.espacio-img img,
.about-img img {
  transition: transform 0.7s cubic-bezier(0.4,0,0.2,1);
}

.gallery-item:hover img,
.evento-card:hover .evento-img img,
.espacio-card:hover .espacio-img img {
  transform: scale(1.06);
}


/* ── PAGE TRANSITION — fade al cargar ───────────────────────── */
@keyframes pageLoad {
  from { opacity: 0; }
  to   { opacity: 1; }
}

body {
  animation: pageLoad 0.4s ease both;
}


/* ── BORDER GOLD PULSE en cards destacadas ────────────────────── */
.paquete-card.featured {
  animation: goldPulse 3s ease-in-out infinite;
}
