/* ============================================================
   NEW HOPE MINISTRY — animations.css
   ============================================================ */

/* Hero entrance (used by GSAP; classes give a no-JS fallback) */
.hero [data-hero] { will-change: transform, opacity; }

/* Gentle floating for hero chips */
@keyframes floaty {
  0%, 100% { transform: translateY(0); }
  50%      { transform: translateY(-10px); }
}
.hero__chip--tl { animation: floaty 5s ease-in-out infinite; }
.hero__chip--br { animation: floaty 6s ease-in-out 1s infinite; }

/* Underline sweep for links inside articles */
.article-body a {
  background: linear-gradient(var(--nhm-green), var(--nhm-green)) 0 100%/0 2px no-repeat;
  transition: background-size .3s ease;
}
.article-body a:hover { background-size: 100% 2px; }

/* Image reveal used by GSAP ScrollTrigger */
.reveal-img { clip-path: inset(0 0 0 0); }

/* Pulse on donate button in hero */
@keyframes pulse-ring {
  0%   { box-shadow: 0 0 0 0 rgba(249, 115, 22, .45); }
  70%  { box-shadow: 0 0 0 14px rgba(249, 115, 22, 0); }
  100% { box-shadow: 0 0 0 0 rgba(249, 115, 22, 0); }
}
.hero .btn-donate { animation: pulse-ring 2.6s infinite; }

/* Swiper theming */
.swiper-pagination-bullet { background: var(--nhm-blue); opacity: .35; }
.swiper-pagination-bullet-active { background: var(--nhm-green); opacity: 1; }
.swiper-button-next, .swiper-button-prev {
  color: var(--nhm-blue); background: #fff; width: 46px; height: 46px;
  border-radius: 50%; box-shadow: var(--shadow-md);
}
.swiper-button-next::after, .swiper-button-prev::after { font-size: 1rem; font-weight: 900; }

/* Respect reduced motion */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
  [data-aos] { opacity: 1 !important; transform: none !important; }
}
