/**
 * Okolica — site-wide motion: slower, softer easing.
 */
:root {
    --ok-ease: cubic-bezier(0.4, 0, 0.2, 1);
    --ok-dur: 0.42s;
    --ok-dur-press: 0.28s;
}

button,
.btn,
.add-btn,
.p-cart-btn,
.btn-primary,
.btn-secondary,
.btn-ghost,
.add_to_cart_button,
[data-ok-add-cart],
[type="button"],
[type="submit"],
.action-item,
.nav-link,
.mm-cart-btn {
    transition-timing-function: var(--ok-ease, cubic-bezier(0.4, 0, 0.2, 1));
}

.add-btn,
.p-cart-btn,
.btn[data-ok-add-cart],
[data-ok-add-cart],
.mm-cart-btn,
.add_to_cart_button,
.ok-qty-ctrl,
.ok-qty-ctrl .ok-qty-btn {
    transition:
        background-color 0.38s var(--ok-ease, cubic-bezier(0.4, 0, 0.2, 1)),
        background 0.38s var(--ok-ease, cubic-bezier(0.4, 0, 0.2, 1)),
        color 0.38s var(--ok-ease, cubic-bezier(0.4, 0, 0.2, 1)),
        border-color 0.38s var(--ok-ease, cubic-bezier(0.4, 0, 0.2, 1)),
        box-shadow 0.45s var(--ok-ease, cubic-bezier(0.4, 0, 0.2, 1)),
        transform 0.42s var(--ok-ease, cubic-bezier(0.4, 0, 0.2, 1)),
        opacity 0.4s var(--ok-ease, cubic-bezier(0.4, 0, 0.2, 1)),
        filter 0.38s var(--ok-ease, cubic-bezier(0.4, 0, 0.2, 1));
}

.add-btn:active,
.p-cart-btn:active,
.btn[data-ok-add-cart]:active,
[data-ok-add-cart]:active,
.mm-cart-btn:active,
.add_to_cart_button:active,
.btn-primary:active,
.ok-qty-ctrl .ok-qty-btn:active,
.ok-undo-btn:active {
    transform: scale(0.99);
    transition-duration: 0.22s;
}

.add-btn.is-adding,
.p-cart-btn.is-adding,
.btn.is-adding,
[data-ok-add-cart].is-adding {
    transform: scale(0.99);
    filter: brightness(1.05);
}

.ok-motion-swap-out {
    opacity: 0 !important;
    transform: scale(0.985) translateY(3px);
    pointer-events: none !important;
}

.ok-motion-swap-in {
    animation: okCartSwapIn 0.5s var(--ok-ease, cubic-bezier(0.4, 0, 0.2, 1));
}

@keyframes okCartSwapIn {
    from {
        opacity: 0;
        transform: scale(0.985) translateY(5px);
    }
    to {
        opacity: 1;
        transform: none;
    }
}

.ok-badge-pulse {
    animation: okBadgePulse 0.62s var(--ok-ease, cubic-bezier(0.4, 0, 0.2, 1));
}

@keyframes okBadgePulse {
    0% {
        transform: scale(1);
    }
    45% {
        transform: scale(1.08);
    }
    100% {
        transform: scale(1);
    }
}

@media (prefers-reduced-motion: reduce) {
    .ok-motion-swap-out,
    .ok-motion-swap-in,
    .ok-badge-pulse,
    .ok-compare-toggle.is-pop,
    .btn-compare.is-pop {
        animation: none !important;
        transform: none !important;
        opacity: 1 !important;
        transition: none !important;
    }

    .add-btn:active,
    .p-cart-btn:active,
    [data-ok-add-cart]:active,
    .mm-cart-btn:active,
    .btn-primary:active {
        transform: none;
    }
}
