/* ==========================================================================
   ASTRA & WOOCOMMERCE - SPINNER UNIVERSAL CORRIGIDO (ANEL OCO ROTATIVO)
   ========================================================================== */

/* --- 1. KEYFRAMES DE ROTAÇÃO PURA --- */
@keyframes ast-modern-spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

@-webkit-keyframes ast-modern-spin {
    0% { -webkit-transform: rotate(0deg); }
    100% { -webkit-transform: rotate(360deg); }
}

/* --- 2. NEUTRALIZA TODOS OS ÍCONES/SPINNERS NATIVOS DO ASTRA/WOO --- */
.woocommerce li.product .add_to_cart_button.loading::after,
.woocommerce li.product .add_to_cart_button::after,
.single_add_to_cart_button.loading::after,
.single_add_to_cart_button::after,
.woocommerce .blockUI.blockOverlay::before {
    display: none !important;
    content: none !important;
}

/* --- 3. ESTADO DE CARREGAMENTO NO BOTÃO --- */
.ast-btn-loading,
button.ast-btn-loading,
a.ast-btn-loading,
input[type="submit"].ast-btn-loading,
.single_add_to_cart_button.ast-btn-loading,
ul.products li.product .button.ast-btn-loading,
ul.products li.product .button.loading,
.add_to_cart_button.ast-btn-loading,
.add_to_cart_button.loading,
.ast-button.ast-btn-loading,
#place_order.ast-btn-loading,
#co_apply_btn.ast-btn-loading {
    position: relative !important;
    color: transparent !important;
    text-shadow: none !important;
    pointer-events: none !important;
    user-select: none !important;
    cursor: wait !important;
    opacity: 1 !important;
}

/* Oculta o texto e ícones internos sem quebrar o layout */
.ast-btn-loading *,
ul.products li.product .button.loading * {
    opacity: 0 !important;
    visibility: hidden !important;
}

/* --- 4. RENDERIZAÇÃO DO ANEL ROTATIVO (FUNDO TRANSPARENTE OBRIGATÓRIO) --- */
.ast-btn-loading::after,
button.ast-btn-loading::after,
a.ast-btn-loading::after,
input[type="submit"].ast-btn-loading::after,
.single_add_to_cart_button.ast-btn-loading::after,
ul.products li.product .button.ast-btn-loading::after,
ul.products li.product .button.loading::after,
.add_to_cart_button.ast-btn-loading::after,
.add_to_cart_button.loading::after,
#place_order.ast-btn-loading::after {
    content: "" !important;
    position: absolute !important;
    top: 50% !important;
    left: 50% !important;
    width: 20px !important;
    height: 20px !important;
    margin-top: -10px !important;
    margin-left: -10px !important;
    background: transparent !important; /* Resolve o bug do ponto branco preenchido */
    background-color: transparent !important;
    border: 2.5px solid rgba(255, 255, 255, 0.25) !important;
    border-top-color: #ffffff !important;
    border-radius: 50% !important;
    box-sizing: border-box !important;
    animation: ast-modern-spin 0.65s linear infinite !important;
    -webkit-animation: ast-modern-spin 0.65s linear infinite !important;
    display: block !important;
    z-index: 999 !important;
}

/* --- 5. SPINNER COMPACTO PARA CUPÕES E BOTÕES PEQUENOS --- */
#co_apply_btn.ast-btn-loading::after,
.coupon button.ast-btn-loading::after,
.woocommerce-form-coupon button.ast-btn-loading::after {
    width: 16px !important;
    height: 16px !important;
    margin-top: -8px !important;
    margin-left: -8px !important;
    border-width: 2px !important;
    background: transparent !important;
}