/* ── KEYFRAMES ─────────────────────────────────────────────────── */
@keyframes fadeInUp {
  from { opacity: 0; transform: translateY(28px); }
  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 scaleIn {
  from { opacity: 0; transform: scale(0.88); }
  to   { opacity: 1; transform: scale(1); }
}

@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.80); }
  to   { opacity: 1; transform: scale(1); }
}

/* Pulso del anillo del logo en el hero */
@keyframes ringPulse {
  0%, 100% { opacity: 0.35; transform: scale(1); }
  50%       { opacity: 0.65; transform: scale(1.04); }
}

/* Hoja flotando suavemente */
@keyframes leafFloat {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  33%       { transform: translateY(-8px) rotate(1.5deg); }
  66%       { transform: translateY(-4px) rotate(-1deg); }
}

/* Destello dorado */
@keyframes goldShimmer {
  0%   { background-position: -200% center; }
  100% { background-position: 200% center; }
}

/* Línea que se extiende */
@keyframes lineGrow {
  from { transform: scaleX(0); }
  to   { transform: scaleX(1); }
}

/* ── REVEAL ON SCROLL ──────────────────────────────────────────── */
.reveal {
  opacity: 0;
  transform: translateY(32px);
  transition: opacity 0.65s cubic-bezier(0.22, 0.61, 0.36, 1),
              transform 0.65s cubic-bezier(0.22, 0.61, 0.36, 1);
}

.reveal.visible {
  opacity: 1;
  transform: translateY(0);
}

.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; }

/* ── HERO ENTRANCE ─────────────────────────────────────────────── */
.hero-eyebrow    { animation: fadeInDown 0.70s cubic-bezier(0.22, 0.61, 0.36, 1) 0.20s both; }
.hero-logo-wrap  { animation: scaleIn   0.80s cubic-bezier(0.22, 0.61, 0.36, 1) 0.30s both; }
.hero-title      { animation: fadeInUp  0.70s cubic-bezier(0.22, 0.61, 0.36, 1) 0.50s both; }
.hero-tagline    { animation: fadeInUp  0.70s cubic-bezier(0.22, 0.61, 0.36, 1) 0.65s both; }
.hero-divider    { animation: fadeIn    0.60s ease 0.75s both; }
.hero-subtitle   { animation: fadeInUp  0.70s cubic-bezier(0.22, 0.61, 0.36, 1) 0.80s both; }
.hero-actions    { animation: fadeInUp  0.70s cubic-bezier(0.22, 0.61, 0.36, 1) 0.95s both; }
.hero-scroll     { animation: fadeIn    0.60s ease 1.30s both,
                               bounce 2.8s ease 2.0s infinite; }

/* ── BOTANICAL DECORATION ──────────────────────────────────────── */
.hero-botanical     { animation: leafFloat 8s ease-in-out 1s infinite; }
.hero-botanical-left { animation: leafFloat 10s ease-in-out 2s infinite; }

/* ── STAT NUMBER ───────────────────────────────────────────────── */
.stat-number.counting {
  animation: countUp 0.45s cubic-bezier(0.22, 0.61, 0.36, 1) both;
}

/* ── PAGE HERO ENTRANCE ────────────────────────────────────────── */
.page-hero .page-hero-label    { animation: fadeInDown 0.60s ease 0.15s both; }
.page-hero .page-hero-title    { animation: fadeInUp  0.65s ease 0.30s both; }
.page-hero .page-hero-subtitle { animation: fadeInUp  0.65s ease 0.45s both; }
