/**
 * Añadir al carrito: spinner centrado en el botón (no depende de npm run build).
 * Layout de página carrito (también aquí: soft-nav no aplica @stack('styles')).
 */
.sbc-cart-btn--busy {
    cursor: wait;
    opacity: 0.92;
    pointer-events: none;
    display: flex !important;
    align-items: center;
    justify-content: center;
    flex-direction: row;
}

.sbc-cart-btn__busy-inner {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 0;
}

.sbc-cart-btn__spinner {
    flex-shrink: 0;
    display: block;
    animation: sbc-cart-spin 0.65s linear infinite;
    vertical-align: middle;
}

@keyframes sbc-cart-spin {
    to {
        transform: rotate(360deg);
    }
}

.cart-layout {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 1.5rem;
}
.cart-layout__main { min-width: 0; flex: 1 1 auto; }
.cart-layout__aside { width: 100%; flex-shrink: 0; }
@media (min-width: 640px) {
    .cart-layout {
        flex-direction: row;
        align-items: flex-start;
        flex-wrap: nowrap;
        gap: 2rem;
    }
    .cart-layout__main { flex: 1 1 0%; min-width: 0; }
    .cart-layout__aside {
        flex: 0 0 20rem;
        width: 20rem;
        max-width: min(20rem, 100%);
    }
}
@media (min-width: 1024px) {
    .cart-layout__aside {
        flex-basis: 22rem;
        width: 22rem;
        max-width: min(22rem, 100%);
    }
}
@media (min-width: 640px) {
    .cart-summary-sticky { position: sticky; top: 5.5rem; }
}
[data-sbc-cart-page][aria-busy="true"] {
    opacity: 0.72;
    pointer-events: none;
    transition: opacity 0.15s ease;
}
