/* ==========================================================================
   Nice PageBuilder — Frontend Animations
   Triggered by IntersectionObserver in animations.js
   ========================================================================== */

/* ── Base state (hidden, ready to animate) ──────────────────────────────── */
[class*="nice-anim--"] {
  opacity: 0;
  will-change: opacity, transform;
  transition: opacity .6s ease, transform .6s ease;
}

/* ── Animated state (JS adds .is-animated) ──────────────────────────────── */
[class*="nice-anim--"].is-animated {
  opacity: 1;
  transform: none;
}

/* ── Fade from below ────────────────────────────────────────────────────── */
.nice-anim--fade-up    { transform: translateY(30px); }

/* ── Fade from above ────────────────────────────────────────────────────── */
.nice-anim--fade-down  { transform: translateY(-30px); }

/* ── Fade from right (element enters from right, slides left) ───────────── */
.nice-anim--fade-left  { transform: translateX(30px); }

/* ── Fade from left (element enters from left, slides right) ────────────── */
.nice-anim--fade-right { transform: translateX(-30px); }

/* ── Fade from center ───────────────────────────────────────────────────── */
.nice-anim--fade-center { transform: scale(.94); }

/* ── Stagger children ───────────────────────────────────────────────────── */
/* Add data-anim-stagger to a parent to stagger its direct children */
[data-anim-stagger] > * { transition-delay: 0s; }
[data-anim-stagger] > *:nth-child(2) { transition-delay: .1s; }
[data-anim-stagger] > *:nth-child(3) { transition-delay: .2s; }
[data-anim-stagger] > *:nth-child(4) { transition-delay: .3s; }
[data-anim-stagger] > *:nth-child(5) { transition-delay: .4s; }
[data-anim-stagger] > *:nth-child(6) { transition-delay: .5s; }

/* ── Reduced motion ─────────────────────────────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
  [class*="nice-anim--"] {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}
