/* animations.css — классы появления при скролле (Intersection Observer) */

/* ── Базовые состояния (скрыто) ─────────────────────────── */
.fade-in {
  opacity: 0;
  transition: opacity 0.7s ease, transform 0.7s ease;
}

.slide-up {
  opacity: 0;
  transform: translateY(32px);
  transition: opacity 0.7s ease, transform 0.7s ease;
}

/* ── Видимое состояние (добавляет JS) ──────────────────── */
.fade-in.visible {
  opacity: 1;
}

.slide-up.visible {
  opacity: 1;
  transform: translateY(0);
}

/* ── Задержки для каскадных анимаций ───────────────────── */
.fade-in:nth-child(1), .slide-up:nth-child(1) { transition-delay: 0s; }
.fade-in:nth-child(2), .slide-up:nth-child(2) { transition-delay: 0.1s; }
.fade-in:nth-child(3), .slide-up:nth-child(3) { transition-delay: 0.2s; }
.fade-in:nth-child(4), .slide-up:nth-child(4) { transition-delay: 0.3s; }

/* ── Анимация scroll-индикатора в hero ──────────────────── */
@keyframes scrollWheel {
  0%   { transform: translateY(0);   opacity: 1; }
  60%  { transform: translateY(8px); opacity: 0; }
  100% { transform: translateY(0);   opacity: 0; }
}

.scroll-wheel {
  animation: scrollWheel 1.8s ease infinite;
}

/* ── Плавающая WA-кнопка — появление ───────────────────── */
.float-wa {
  opacity: 0;
  transform: translateY(16px);
  transition: opacity 0.5s ease, transform 0.5s ease, box-shadow 0.3s ease;
}

.float-wa.visible {
  opacity: 1;
  transform: translateY(0);
}

/* ── Модальные окна — fade + scale ──────────────────────── */
.modal {
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease;
}

.modal.open {
  opacity: 1;
  pointer-events: all;
}

.modal-content,
.modal-gallery-inner,
.modal-video-inner {
  transform: scale(0.95);
  transition: transform 0.3s ease;
}

.modal.open .modal-content,
.modal.open .modal-gallery-inner,
.modal.open .modal-video-inner {
  transform: scale(1);
}

/* ── Раскрытие feature-extra (max-height trick) ─────────── */
.feature-extra {
  max-height: 0;
  overflow: hidden;
  opacity: 0;
  transition: max-height 0.45s ease, opacity 0.35s ease;
}

.feature-extra.open {
  max-height: 1000px;
  opacity: 1;
}
