/* ============================================================
   ZonaKlimata — анимации и микроанимации
   ============================================================ */

/* Появление снизу */
@keyframes fadeInUp {
    from { opacity: 0; transform: translateY(30px); }
    to { opacity: 1; transform: translateY(0); }
}
.fade-in-up { animation: fadeInUp 0.7s ease both; }

/* Появление */
@keyframes fadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
}
.fade-in { animation: fadeIn 0.8s ease both; }

/* Слайд слева */
@keyframes slideInLeft {
    from { opacity: 0; transform: translateX(-40px); }
    to { opacity: 1; transform: translateX(0); }
}

/* Слайд справа */
@keyframes slideInRight {
    from { opacity: 0; transform: translateX(40px); }
    to { opacity: 1; transform: translateX(0); }
}

/* Мерцание для бейджа скидки */
@keyframes shimmer {
    0% { background-position: -200% 0; }
    100% { background-position: 200% 0; }
}

/* Плавное появление заголовка героя */
.hero-title, .hero-description, .hero-badge {
    animation: fadeInUp 0.8s ease both;
}
.hero-description { animation-delay: 0.15s; }
.hero-stats { animation-delay: 0.3s; animation: fadeInUp 0.8s ease both; }
.hero-actions { animation-delay: 0.45s; animation: fadeInUp 0.8s ease both; }

/* Анимация иконок преимуществ */
.feature-card:hover .feature-icon i {
    animation: wiggle 0.5s ease;
}
@keyframes wiggle {
    0%, 100% { transform: rotate(0); }
    25% { transform: rotate(-12deg); }
    75% { transform: rotate(12deg); }
}

/* Пульсация точки "в наличии" */
@keyframes dotPulse {
    0%, 100% { box-shadow: 0 0 0 0 rgba(16, 185, 129, 0.5); }
    50% { box-shadow: 0 0 0 6px rgba(16, 185, 129, 0); }
}

/* Подпрыгивание корзины */
.cart-bounce { animation: cartBounce 0.35s ease; }
@keyframes cartBounce {
    0%, 100% { transform: scale(1); }
    40% { transform: scale(1.25); }
}

/* Эффект появления модального окна */
.modal.fade .modal-dialog { transform: translateY(20px); transition: transform 0.3s ease; }
.modal.show .modal-dialog { transform: translateY(0); }

/* Мягкое парение для карточек с фото */
@keyframes gentleFloat {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-10px); }
}

/* Анимация градиентного текста */
.animated-gradient-text {
    background-size: 200% 200%;
    animation: gradientShift 5s ease infinite;
}
@keyframes gradientShift {
    0%, 100% { background-position: 0% 50%; }
    50% { background-position: 100% 50%; }
}
