/* Единые анимации для всех попапов */

/* Базовые стили для всех попапов */
.cart-popup,
.callback_form,
.consultation-popup,
.change-manager-popup,
.my-modal,
.popup_wrapper,
.popup__block,
.mfp-container {
    /* Анимация появления overlay */
    transition: opacity 0.4s cubic-bezier(0.4, 0, 0.2, 1), 
                visibility 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Overlay анимация */
.cart-popup__overlay,
.popup__background,
.mfp-bg,
.my-modal__overlay {
    opacity: 0;
    transition: opacity 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.cart-popup.show .cart-popup__overlay,
.popup_wrapper:not(.hidden) .popup__background,
.mfp-ready.mfp-bg,
.my-modal:not(.hidden) .my-modal__overlay {
    opacity: 1;
}

/* Контейнер попапа - анимация масштаба и появления */
.cart-popup__container,
.callback_form,
.consultation-popup,
.change-manager-popup,
.popup__block,
.mfp-content > .callback_form,
.my-modal__container {
    opacity: 0;
    transform: scale(0.85) translateY(20px);
    transition: opacity 0.4s cubic-bezier(0.4, 0, 0.2, 1),
                transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    will-change: transform, opacity;
}

/* Анимация появления контейнера */
.cart-popup.show .cart-popup__container,
.popup_wrapper:not(.hidden) .popup__block,
.mfp-ready .mfp-content > .callback_form,
.mfp-ready .mfp-content > .consultation-popup,
.mfp-ready .mfp-content > .change-manager-popup,
.my-modal:not(.hidden) .my-modal__container {
    opacity: 1;
    transform: scale(1) translateY(0);
}

/* Специфичные анимации для разных попапов */

/* Попап корзины */
.cart-popup {
    opacity: 0;
    visibility: hidden;
}

.cart-popup.show {
    opacity: 1;
    visibility: visible;
}

.cart-popup__container {
    transform: scale(0.9) translateY(30px);
}

.cart-popup.show .cart-popup__container {
    transform: scale(1) translateY(0);
    animation: popupSlideIn 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
}

/* Callback формы */
.callback_form {
    transform: scale(0.9) translateY(30px);
    opacity: 0;
}

.mfp-ready .callback_form,
.popup_wrapper:not(.hidden) .callback_form {
    transform: scale(1) translateY(0);
    opacity: 1;
    animation: popupSlideIn 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
}

/* Consultation popup */
.consultation-popup {
    transform: scale(0.9) translateY(30px);
    opacity: 0;
}

.mfp-ready .consultation-popup {
    transform: scale(1) translateY(0);
    opacity: 1;
    animation: popupSlideIn 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
}

/* Change manager popup */
.change-manager-popup {
    transform: scale(0.9) translateY(30px);
    opacity: 0;
}

.mfp-ready .change-manager-popup {
    transform: scale(1) translateY(0);
    opacity: 1;
    animation: popupSlideIn 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
}

/* My-modal (мобильное меню и другие) */
.my-modal {
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.4s cubic-bezier(0.4, 0, 0.2, 1), 
                visibility 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.my-modal:not(.hidden) {
    opacity: 1;
    visibility: visible;
}

.my-modal__container {
    transform: scale(0.95) translateY(20px);
    opacity: 0;
}

.my-modal:not(.hidden) .my-modal__container {
    transform: scale(1) translateY(0);
    opacity: 1;
    animation: popupSlideIn 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
}

/* Popup wrapper */
.popup_wrapper {
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.4s cubic-bezier(0.4, 0, 0.2, 1), 
                visibility 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.popup_wrapper:not(.hidden) {
    opacity: 1;
    visibility: visible;
}

.popup__block {
    transform: scale(0.9) translateY(30px);
    opacity: 0;
}

.popup_wrapper:not(.hidden) .popup__block {
    transform: scale(1) translateY(0);
    opacity: 1;
    animation: popupSlideIn 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
}

/* Magnific Popup */
.mfp-bg {
    opacity: 0;
    transition: opacity 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.mfp-ready.mfp-bg {
    opacity: 0.8;
}

.mfp-content {
    opacity: 0;
    transform: scale(0.9) translateY(30px);
    transition: opacity 0.4s cubic-bezier(0.4, 0, 0.2, 1),
                transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.mfp-ready .mfp-content {
    opacity: 1;
    transform: scale(1) translateY(0);
    animation: popupSlideIn 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
}

/* Ключевые кадры анимации */
@keyframes popupSlideIn {
    0% {
        opacity: 0;
        transform: scale(0.85) translateY(30px);
    }
    60% {
        transform: scale(1.02) translateY(-5px);
    }
    100% {
        opacity: 1;
        transform: scale(1) translateY(0);
    }
}

@keyframes popupSlideOut {
    0% {
        opacity: 1;
        transform: scale(1) translateY(0);
    }
    100% {
        opacity: 0;
        transform: scale(0.9) translateY(20px);
    }
}

/* Анимация закрытия */
.cart-popup:not(.show) .cart-popup__container,
.popup_wrapper.hidden .popup__block,
.mfp-removing .mfp-content,
.my-modal.hidden .my-modal__container {
    animation: popupSlideOut 0.3s cubic-bezier(0.4, 0, 1, 1);
}

/* Улучшенная анимация для элементов внутри попапа */
.cart-popup__item,
.callback_form > *,
.consultation-popup__content > * {
    animation: fadeInUp 0.5s cubic-bezier(0.4, 0, 0.2, 1) backwards;
}

.cart-popup__item:nth-child(1) { animation-delay: 0.1s; }
.cart-popup__item:nth-child(2) { animation-delay: 0.15s; }
.cart-popup__item:nth-child(3) { animation-delay: 0.2s; }
.cart-popup__item:nth-child(4) { animation-delay: 0.25s; }
.cart-popup__item:nth-child(5) { animation-delay: 0.3s; }

@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(15px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Плавное появление кнопок */
.cart-popup__btns,
.callback_form button,
.consultation-form__submit {
    animation: fadeInUp 0.6s cubic-bezier(0.4, 0, 0.2, 1) 0.2s backwards;
}

/* Анимация для заголовков */
.cart-popup__heading,
.callback_form__title,
.consultation-popup__manager-name {
    animation: fadeInUp 0.5s cubic-bezier(0.4, 0, 0.2, 1) 0.1s backwards;
}

/* Отключаем анимацию для элементов, которые уже видны */
.cart-popup.show .cart-popup__item,
.mfp-ready .callback_form > * {
    animation: none;
}

/* Оптимизация производительности */
.cart-popup__container,
.callback_form,
.consultation-popup,
.my-modal__container,
.popup__block {
    will-change: transform, opacity;
    backface-visibility: hidden;
    -webkit-font-smoothing: antialiased;
}

/* Мобильные устройства - упрощенная анимация */
@media (max-width: 768px) {
    .cart-popup__container,
    .callback_form,
    .consultation-popup,
    .my-modal__container {
        transform: scale(0.95) translateY(20px);
        transition: opacity 0.3s ease, transform 0.3s ease;
    }
    
    .cart-popup.show .cart-popup__container,
    .mfp-ready .callback_form,
    .mfp-ready .consultation-popup,
    .my-modal:not(.hidden) .my-modal__container {
        transform: scale(1) translateY(0);
        animation: popupSlideInMobile 0.3s ease;
    }
    
    @keyframes popupSlideInMobile {
        0% {
            opacity: 0;
            transform: scale(0.95) translateY(20px);
        }
        100% {
            opacity: 1;
            transform: scale(1) translateY(0);
        }
    }
}

