/* Product detail — linked color variant swap loader (blur overlay only) */

.rw-pd-swap-region {
    position: relative;
}

.rw-pd-swap-region.is-swapping > .row {
    pointer-events: none;
    user-select: none;
}

.rw-pd-color-loader {
    position: fixed;
    inset: 0;
    z-index: 1050;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(5, 5, 5, 0.28);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 0.28s cubic-bezier(0.16, 1, 0.3, 1), visibility 0.28s cubic-bezier(0.16, 1, 0.3, 1);
}

.rw-pd-color-loader.is-active {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}

.rw-pd-color-loader__content {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.875rem;
}

.rw-pd-color-loader__visual {
    position: relative;
    width: 44px;
    height: 44px;
}

.rw-pd-color-loader__ring {
    position: absolute;
    inset: 0;
    border-radius: 50%;
    border: 2px solid transparent;
}

.rw-pd-color-loader__ring--outer {
    border-top-color: #ff4545;
    border-right-color: rgba(255, 69, 69, 0.22);
    animation: rw-pd-color-spin 0.9s cubic-bezier(0.5, 0, 0.5, 1) infinite;
}

.rw-pd-color-loader__ring--inner {
    inset: 8px;
    border-bottom-color: rgba(255, 255, 255, 0.65);
    border-left-color: rgba(255, 255, 255, 0.1);
    animation: rw-pd-color-spin-rev 1.15s cubic-bezier(0.5, 0, 0.5, 1) infinite;
}

.rw-pd-color-loader__label {
    font-family: 'Outfit', 'Helvetica Neue', Arial, sans-serif;
    font-size: 12px;
    font-weight: 500;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.78);
}

.rw-pd-color-section--linked.is-swapping .rw-pd-color-card--link.is-swapping-target .rw-pd-color-card-inner {
    box-shadow: 0 0 0 2px rgba(255, 69, 69, 0.55);
}

@keyframes rw-pd-color-spin {
    to {
        transform: rotate(360deg);
    }
}

@keyframes rw-pd-color-spin-rev {
    to {
        transform: rotate(-360deg);
    }
}

@media (prefers-reduced-motion: reduce) {
    .rw-pd-color-loader__ring--outer,
    .rw-pd-color-loader__ring--inner {
        animation: none !important;
    }

    .rw-pd-color-loader__ring--outer {
        border-color: rgba(255, 69, 69, 0.45);
        border-top-color: #ff4545;
    }
}
