/* ============================================================
   animations.css — گسترش سیستم reveal موجود به کل صفحه
   نسخه: v1.0.0-20260827-1304
   وابستگی: بارگذاری بعد از home-modern.css (همان متغیرهای --hm-*)
   اصل طراحی: عیناً همان الگوی opacity+translateY فعلی —
   هیچ افکت تزئینی جدیدی (sheen/spring/glass) اضافه نشده
   تا با تصمیم قبلی Rollback تیم هم‌خوانی داشته باشد.
   ============================================================ */

:root {
  --aos-duration: 500ms;
  --aos-ease: cubic-bezier(0.4, 0, 0.2, 1); /* هم‌نوا با --hm-ease موجود */
  --aos-distance: 16px; /* هم‌نوا با فاصلهٔ .js-reveal موجود */
}

/* حالت پایه: فقط وقتی JS فعال است مخفی می‌شود (No-JS Fallback حفظ می‌شود) */
html.am-js .aos {
  opacity: 0;
  transform: translateY(var(--aos-distance));
  transition: opacity var(--aos-duration) var(--aos-ease) var(--aos-delay, 0ms),
              transform var(--aos-duration) var(--aos-ease) var(--aos-delay, 0ms);
}

html.am-js .aos-fade-in {
  transform: none; /* فقط فید، بدون جابجایی — برای FAQ و بلاک‌های متنی */
}

html.am-js .aos.is-visible {
  opacity: 1;
  transform: none;
}

/* will-change فقط در حین انیمیشن فعال باشد، بعد از پایان (کلاس aos-done از JS) حذف شود */
html.am-js .aos.is-visible:not(.aos-done) {
  will-change: opacity, transform;
}

/* کلید خاموش‌کننده — احترام به prefers-reduced-motion (هم‌سو با home-modern.css) */
@media (prefers-reduced-motion: reduce) {
  html.am-js .aos,
  html.am-js .aos.is-visible {
    animation: none !important;
    transition: none !important;
    opacity: 1 !important;
    transform: none !important;
  }
}

/* موبایل: کمی سریع‌تر برای حس واکنش‌گراتر */
@media (max-width: 600px) {
  :root {
    --aos-duration: 400ms;
    --aos-distance: 12px;
  }
}
