/* ═══════════════════════════════════════════════
   Royal BD Buy Now & Add to Cart — style.css v1.5.3
   ═══════════════════════════════════════════════ */

/* ── Elementor widget base ── */
.subhan-eac-add-to-cart,
.subhan-eac-buy-now {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    line-height: 1.2;
    text-decoration: none;
    transition: background-color .15s ease;
}
.subhan-eac-add-to-cart { position: relative; overflow: hidden; }

/* ── Spinner ── */
.royalbd-bnacb-add.royalbd-loading {
    color: transparent !important;
    position: relative !important;
    pointer-events: none !important;
    opacity: 1 !important;
}
.royalbd-bnacb-add.royalbd-loading::after {
    content: "";
    position: absolute;
    top: 50%; left: 50%;
    width: 16px; height: 16px;
    margin: -8px 0 0 -8px;
    border: 2px solid #fff;
    border-top-color: transparent;
    border-radius: 50%;
    animation: royalbd-spin .6s linear infinite;
}
@keyframes royalbd-spin { to { transform: rotate(360deg); } }

/* ── Toast ── */
.royalbd-toast {
    position: fixed;
    top: 24px;
    left: 50%;
    transform: translateX(-50%) translateY(-12px);
    background: #111827;
    color: #fff;
    padding: 11px 24px;
    border-radius: 8px;
    font-size: 14px;
    font-weight: 500;
    opacity: 0;
    z-index: 9999999;
    pointer-events: none;
    white-space: nowrap;
    box-shadow: 0 4px 20px rgba(0,0,0,.25);
    transition: opacity .3s ease, transform .3s ease;
}
.royalbd-toast.show {
    opacity: 1;
    transform: translateX(-50%) translateY(0);
}

/* ═══════════════════════════════════════════════
   BUTTON WRAP
   ═══════════════════════════════════════════════ */
.royalbd-bnacb-wrap {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;       /* FIX: nowrap — buttons একই লাইনে থাকবে */
    gap: 6px !important;
    margin-top: 10px !important;
    margin-bottom: 10px !important;
    width: 100% !important;
    box-sizing: border-box !important;
    align-items: stretch !important;
    padding: 0 !important;
    background: none !important;
    border: none !important;
    float: none !important;
    position: relative !important;
    z-index: 1 !important;           /* FIX: 1 রাখলে fixed header (z-index 999+) এর পেছনে থাকবে */
    overflow: visible !important;
    clip: auto !important;
    clip-path: none !important;
    height: auto !important;
    max-height: none !important;
    transform: none !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
}

/* ═══════════════════════════════════════════════
   BUTTONS
   ═══════════════════════════════════════════════ */
.royalbd-bnacb-btn {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex: 1 1 0 !important;             /* FIX: 0 base — সমান ভাগ, overflow নয় */
    min-width: 0 !important;
    box-sizing: border-box !important;
    float: none !important;
    position: relative !important;
    z-index: 2 !important;           /* wrap(1) এর উপরে থাকবে, কিন্তু header-এর নিচে */
    margin: 0 !important;
    text-decoration: none !important;
    border: none !important;
    outline: none !important;
    box-shadow: none !important;
    letter-spacing: normal !important;
    text-transform: none !important;
    word-break: keep-all !important;    /* FIX: keep-all — বাংলা শব্দ মাঝে ভাঙবে না */
    white-space: nowrap !important;     /* FIX: nowrap — একটাও line break নয় */
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    line-height: 1.3 !important;
    font-family: inherit !important;
    font-weight: 600 !important;
    -webkit-appearance: none !important;
    appearance: none !important;
    cursor: pointer !important;
    transition: background-color .15s ease !important;
    text-align: center !important;
    pointer-events: auto !important;
    visibility: visible !important;
    opacity: 1 !important;
}

/* Hover */
.royalbd-bnacb-btn:hover,
.royalbd-bnacb-btn:focus {
    text-decoration: none !important;
    outline: none !important;
    opacity: 0.88 !important;
    visibility: visible !important;
}

.royalbd-bnacb-wrap .royalbd-bnacb-add:hover,
.royalbd-bnacb-wrap .royalbd-bnacb-add:focus {
    color: var(--royalbd-add-color, #fff) !important;
    background-color: var(--royalbd-add-bg, #2563eb) !important;
    opacity: 0.88 !important;
    visibility: visible !important;
}

.royalbd-bnacb-wrap .royalbd-bnacb-buy:hover,
.royalbd-bnacb-wrap .royalbd-bnacb-buy:focus {
    color: var(--royalbd-buy-color, #fff) !important;
    background-color: var(--royalbd-buy-bg, #dc2626) !important;
    opacity: 0.88 !important;
    visibility: visible !important;
}

/* Card hover — stay visible */
li.product:hover .royalbd-bnacb-wrap,
li.product:hover .royalbd-bnacb-btn,
.product:hover .royalbd-bnacb-wrap,
.product:hover .royalbd-bnacb-btn {
    visibility: visible !important;
    opacity: 1 !important;
}

.royalbd-bnacb-btn:active { transform: scale(.97) !important; }

/* ═══════════════════════════════════════════════
   MOBILE FIX
   FIX: column layout + font ছোট করে দুই লাইন ঠেকানো
   ═══════════════════════════════════════════════ */
@media (max-width: 480px) {
    .royalbd-bnacb-wrap {
        flex-direction: column !important;
        flex-wrap: nowrap !important;
    }
    .royalbd-bnacb-btn {
        flex: 1 1 auto !important;
        width: 100% !important;
        white-space: normal !important;  /* column mode-এ wrap OK */
        font-size: 13px !important;
    }
}

@media (min-width: 481px) and (max-width: 768px) {
    /* Tablet/mid — row কিন্তু font একটু ছোট */
    .royalbd-bnacb-wrap {
        flex-direction: row !important;
        flex-wrap: nowrap !important;
        gap: 5px !important;
    }
    .royalbd-bnacb-btn {
        flex: 1 1 0 !important;
        font-size: 12px !important;      /* FIX: ছোট font = একই লাইনে থাকে */
        padding-left: 6px !important;
        padding-right: 6px !important;
        white-space: nowrap !important;
    }
}

@media (min-width: 769px) {
    .royalbd-bnacb-wrap {
        flex-direction: row !important;
        flex-wrap: nowrap !important;
    }
}

/* ═══════════════════════════════════════════════
   ENSURE ALWAYS SHOW
   ═══════════════════════════════════════════════ */
.royalbd-bnacb-wrap .royalbd-bnacb-btn,
.royalbd-bnacb-wrap .royalbd-bnacb-add,
.royalbd-bnacb-wrap .royalbd-bnacb-buy,
.woocommerce ul.products li.product .royalbd-bnacb-wrap .royalbd-bnacb-btn {
    display: inline-flex !important;
    visibility: visible !important;
    opacity: 1 !important;
}

/* ═══════════════════════════════════════════════
   HIDE WC DEFAULT BUTTONS
   ═══════════════════════════════════════════════ */
.woocommerce ul.products li.product a.add_to_cart_button,
.woocommerce ul.products li.product a.ajax_add_to_cart,
.woocommerce ul.products li.product a.product_type_simple,
.woocommerce ul.products li.product a.product_type_variable,
.woocommerce ul.products li.product a.product_type_external,
.woocommerce ul.products li.product a.product_type_grouped,
.woocommerce ul.products li.product .button:not(.royalbd-bnacb-btn),
.wc-block-grid__product .wc-block-grid__product-add-to-cart,
a.added_to_cart,
p.cart a.added_to_cart,
.woocommerce-message a.wc-forward,
.woocommerce a.added_to_cart.wc-forward {
    display: none !important;
}

/* ═══════════════════════════════════════════════
   FIX: HEADER OVERLAP
   Page এর প্রথম product row-এর buttons
   fixed header-এর পেছনে চলে যাচ্ছিল।
   wrap-এর z-index header-এর চেয়ে কম রাখতে হবে।
   ═══════════════════════════════════════════════ */
.royalbd-bnacb-wrap {
    z-index: 9 !important; /* header সাধারণত 999+, আমরা 9 রাখি */
}

/* ═══════════════════════════════════════════════
   THEME OVERLAY BYPASS
   Flatsome, OceanWP, Astra, Betheme
   ═══════════════════════════════════════════════ */
li.product .royalbd-bnacb-wrap,
.product .royalbd-bnacb-wrap,
.product-inner .royalbd-bnacb-wrap,
.product-grid-item .royalbd-bnacb-wrap,
ul.products li.product .royalbd-bnacb-wrap {
    position: relative !important;
    z-index: 1 !important;           /* header-এর পেছনে থাকবে */
    pointer-events: auto !important;
    transform: none !important;
}

li.product .royalbd-bnacb-btn,
.product .royalbd-bnacb-btn,
.product-inner .royalbd-bnacb-btn,
.product-grid-item .royalbd-bnacb-btn,
ul.products li.product .royalbd-bnacb-btn {
    position: relative !important;
    z-index: 2 !important;
    pointer-events: auto !important;
    transform: none !important;
    opacity: 1 !important;
    visibility: visible !important;
    display: inline-flex !important;
}

/* OceanWP */
.woocommerce ul.products li.product .product-inner .royalbd-bnacb-wrap {
    transform: none !important;
    transition: none !important;
}

/* Astra */
.ast-shop-product-wrap .royalbd-bnacb-wrap,
.ast-shop-product-wrap .royalbd-bnacb-btn {
    pointer-events: auto !important;
}

/* ═══════════════════════════════════════════════
   AFTER ADD TO CART — keep buttons visible
   ═══════════════════════════════════════════════ */
.royalbd-bnacb-wrap .royalbd-bnacb-btn.added,
.royalbd-bnacb-wrap .royalbd-bnacb-add.added,
.royalbd-bnacb-wrap .royalbd-bnacb-add.loading,
.royalbd-bnacb-wrap .royalbd-bnacb-btn.loading {
    display: inline-flex !important;
    visibility: visible !important;
    opacity: 1 !important;
}

/* Colors, padding, radius, font-size → inline style from PHP admin settings */
