/* Price-calculation feedback only. The native BlockUI node remains the owner. */
body.single-product form.cart > .blockUI.blockMsg.mydiy-cpo-loading-message {
    position: fixed !important;
    top: 50% !important;
    left: 50% !important;
    right: auto !important;
    bottom: auto !important;
    transform: translate(-50%, -50%) !important;
    box-sizing: border-box !important;
    width: 220px !important;
    max-width: calc(100vw - 40px) !important;
    padding: 22px 24px 24px !important;
    margin: 0 !important;
    border: 1px solid #e6d8d5 !important;
    border-radius: 10px !important;
    background: #fff !important;
    color: #582c4d !important;
    box-shadow: 0 12px 36px rgba(88, 44, 77, .14) !important;
    text-align: center !important;
    cursor: progress;
}
body.single-product form.cart .blockMsg [data-loader="circle"].mydiy-cpo-loading-art {
    position: relative !important;
    inset: auto !important;
    display: grid !important;
    justify-items: center !important;
    gap: 9px !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: none !important;
    text-indent: 0 !important;
    box-shadow: none !important;
    animation: none !important;
    transform: none !important;
}
body.single-product .mydiy-cpo-loading-art::before,
body.single-product .mydiy-cpo-loading-art::after {
    content: none !important;
    animation: none !important;
}
body.single-product .mydiy-cpo-loading-art .mydiy-cpo-loading-window {
    display: block;
    width: 80px;
    height: 80px;
    fill: none;
}
body.single-product .mydiy-cpo-loading-frame { fill: #fff; stroke: #582c4d; stroke-width: 2; }
body.single-product .mydiy-cpo-loading-mullion { fill: none; stroke: #d4b9b2; stroke-width: 1; }
body.single-product .mydiy-cpo-loading-headrail { fill: #582c4d; }
body.single-product .mydiy-cpo-loading-cloth { fill: #d4b9b2; }
body.single-product .mydiy-cpo-loading-folds { fill: none; stroke: #a36769; stroke-width: 1.5; }
body.single-product .mydiy-cpo-loading-rail { fill: none; stroke: #582c4d; stroke-width: 3; }
body.single-product .mydiy-cpo-loading-fabric {
    animation: mydiy-blind-price-loading 2s cubic-bezier(.45, 0, .55, 1) infinite;
}
body.single-product .mydiy-cpo-loading-label {
    display: block;
    color: #582c4d !important;
    -webkit-text-fill-color: #582c4d !important;
    font: 500 14px/1.4 var(--mydiy-action-font, "Source Sans Pro", Arial, sans-serif) !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
}
/* Keep the existing Add to cart progress bar as the feedback for cart writes. */
body.single-product form.cart.mydiy-atc-busy > .blockUI.blockMsg.mydiy-cpo-loading-message {
    display: none !important;
}
@keyframes mydiy-blind-price-loading {
    0%, 100% { transform: translateY(-30px); }
    50% { transform: translateY(0); }
}
@media (prefers-reduced-motion: reduce) {
    body.single-product .mydiy-cpo-loading-fabric {
        animation: none;
        transform: translateY(-15px);
    }
}

/* WooCommerce adds its own circle to the overlay, outside the CPO message. */
body.single-product form.cart > .blockUI.blockOverlay.mydiy-cpo-loading-overlay::before,
body.single-product form.cart > .blockUI.blockOverlay.mydiy-cpo-loading-overlay::after {
    content: none !important;
    display: none !important;
    background: none !important;
    animation: none !important;
}
