@keyframes sakCartSpinner {
    to {
        transform: rotate(360deg);
    }
}

@keyframes sakCartButtonAdded {
    0% {
        transform: scale(1);
    }

    45% {
        transform: scale(1.035);
    }

    100% {
        transform: scale(1);
    }
}

@keyframes sakCartSourceAdded {
    0% {
        box-shadow: 0 0 0 0 rgba(12, 177, 117, .35);
    }

    38% {
        box-shadow: 0 0 0 3px rgba(12, 177, 117, .32), 0 14px 34px rgba(12, 99, 206, .12);
    }

    100% {
        box-shadow: 0 0 0 0 rgba(12, 177, 117, 0);
    }
}

@keyframes sakCartHeaderPulse {
    0% {
        transform: scale(1);
        filter: none;
    }

    45% {
        transform: scale(1.08);
        filter: drop-shadow(0 8px 14px rgba(11, 99, 206, .28));
    }

    100% {
        transform: scale(1);
        filter: none;
    }
}

.sak-cart-btn-spinner {
    width: 14px;
    height: 14px;
    border: 2px solid rgba(255, 255, 255, .45);
    border-top-color: #fff;
    border-radius: 999px;
    animation: sakCartSpinner .65s linear infinite;
}

.btn.sak-cart-btn-loading,
.add-to-cart-btn.sak-cart-btn-loading {
    opacity: .94;
    cursor: progress !important;
}

.btn.sak-cart-btn-loading,
.btn.sak-cart-btn-added,
.btn.sak-cart-btn-error,
.add-to-cart-btn.sak-cart-btn-loading,
.add-to-cart-btn.sak-cart-btn-added,
.add-to-cart-btn.sak-cart-btn-error {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 7px !important;
    white-space: nowrap !important;
}

.btn.sak-cart-btn-added,
.add-to-cart-btn.sak-cart-btn-added {
    background: linear-gradient(135deg, #12a46f, #087d55) !important;
    color: #fff !important;
    border-color: transparent !important;
    box-shadow: 0 12px 24px rgba(8, 125, 85, .24) !important;
    animation: sakCartButtonAdded .42s ease-out;
}

.btn.sak-cart-btn-error,
.add-to-cart-btn.sak-cart-btn-error {
    background: linear-gradient(135deg, #dc2626, #b91c1c) !important;
    color: #fff !important;
    border-color: transparent !important;
}

.sak-cart-added-source {
    border-color: rgba(12, 177, 117, .58) !important;
    animation: sakCartSourceAdded 1.25s ease-out;
}

.sak-cart-pulse {
    transform-origin: center;
    animation: sakCartHeaderPulse .62s ease-out;
}

@media (prefers-reduced-motion: reduce) {
    .sak-cart-btn-spinner,
    .btn.sak-cart-btn-added,
    .add-to-cart-btn.sak-cart-btn-added,
    .sak-cart-added-source,
    .sak-cart-pulse {
        animation: none !important;
    }
}
