/* =========================================================
   کاجینو — انیمیشن‌ها
   یک توالی هماهنگ برای بارگذاری هیرو + واکنش‌های هدفمند به عمل کاربر
   ========================================================= */

/* توالی ورود هیرو (یک‌بار، هنگام بارگذاری صفحه‌ی اصلی) */
@keyframes rise-in {
  from { opacity: 0; transform: translateY(16px); }
  to   { opacity: 1; transform: translateY(0); }
}
.hero-eyebrow  { animation: rise-in 0.6s cubic-bezier(.2,.7,.3,1) both; }
.hero-title    { animation: rise-in 0.7s cubic-bezier(.2,.7,.3,1) 0.08s both; }
.hero-sub      { animation: rise-in 0.7s cubic-bezier(.2,.7,.3,1) 0.16s both; }
.hero-dropzone { animation: rise-in 0.7s cubic-bezier(.2,.7,.3,1) 0.24s both; }
.hero-art      { animation: rise-in 0.9s cubic-bezier(.2,.7,.3,1) 0.2s both; }

/* خط اسکن روی سند در تصویر هیرو — تنها حرکت پیوسته‌ی صفحه */
@keyframes scan-sweep {
  0%   { transform: translateY(-6px); opacity: 0; }
  8%   { opacity: 1; }
  92%  { opacity: 1; }
  100% { transform: translateY(148px); opacity: 0; }
}
.scan-line { animation: scan-sweep 2.8s ease-in-out infinite; }

/* تبدیل خطوط سند به تیک تایید در تصویر هیرو */
@keyframes doc-check-pop {
  0%, 60% { transform: scale(0); opacity: 0; }
  75%  { transform: scale(1.15); opacity: 1; }
  100% { transform: scale(1); opacity: 1; }
}
.doc-check { animation: doc-check-pop 2.8s ease-in-out infinite; }

/* دراپ‌زون: حالت کشیدن فایل روی ناحیه */
.dropzone { transition: border-color 0.15s ease, background-color 0.15s ease, transform 0.15s ease; }
.dropzone.is-dragover {
  border-color: var(--teal);
  background: var(--teal-tint);
  transform: scale(1.01);
}

/* نوار پیشرفت آپلود */
@keyframes progress-grow {
  from { width: 0%; }
}
.progress-bar-fill { transition: width 0.3s ease; }

/* لرزش ملایم برای خطای اعتبارسنجی */
@keyframes shake {
  10%, 90% { transform: translateX(-1px); }
  20%, 80% { transform: translateX(2px); }
  30%, 50%, 70% { transform: translateX(-4px); }
  40%, 60% { transform: translateX(4px); }
}
.shake { animation: shake 0.5s; }

/* کارت‌ها و ردیف قیمت: واکنش به هاور، نه ورود صفحه */
.hover-lift { transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease; }
.hover-lift:hover { transform: translateY(-3px); box-shadow: var(--shadow-pop); border-color: var(--border-strong); }

/* آکاردئون سوالات متداول */
.faq-item .faq-body {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.25s ease;
}
.faq-item.open .faq-body { max-height: 240px; }
.faq-item .faq-icon { transition: transform 0.2s ease; }
.faq-item.open .faq-icon { transform: rotate(45deg); }

/* منوی موبایل */
@keyframes menu-drop {
  from { opacity: 0; transform: translateY(-8px); }
  to   { opacity: 1; transform: translateY(0); }
}
.nav.open .nav-links { animation: menu-drop 0.2s ease both; }

/* حرکت کم برای کاربرانی که آن را غیرفعال کرده‌اند */
@media (prefers-reduced-motion: reduce) {
  * { animation-duration: 0.001ms !important; animation-iteration-count: 1 !important; transition-duration: 0.001ms !important; }
}
