/* =========================================================
   ANIMATIONS.CSS — Transiciones, reveal al scroll, hover
   EcoAnalítica
   ========================================================= */

/* ---------- Reveal base (controlado por scroll.js) ---------- */
.reveal {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity .7s ease, transform .7s ease;
  will-change: opacity, transform;
}
.reveal.show { opacity: 1; transform: none; }

/* Variantes direccionales para columnas */
.reveal-left  { transform: translateX(-40px); }
.reveal-right { transform: translateX(40px); }
.reveal-left.show,
.reveal-right.show { transform: none; }

/* Retraso escalonado para grids (aplicado por scroll.js vía índice) */
.reveal[data-delay="1"] { transition-delay: .08s; }
.reveal[data-delay="2"] { transition-delay: .16s; }
.reveal[data-delay="3"] { transition-delay: .24s; }

/* ---------- Indicador de scroll del hero ---------- */
.scroll-dot { animation: scrollPulse 1.8s ease-in-out infinite; }
@keyframes scrollPulse {
  0%   { transform: translateY(0);   opacity: 1; }
  50%  { transform: translateY(10px); opacity: .3; }
  100% { transform: translateY(0);   opacity: 1; }
}

/* ---------- Accesibilidad: respeta reduce-motion ---------- */
@media (prefers-reduced-motion: reduce) {
  .reveal { opacity: 1; transform: none; transition: none; }
  .scroll-dot { animation: none; }
  * { scroll-behavior: auto !important; }
}
