/* ── Google Font ── */
@import url('https://fonts.googleapis.com/css2?family=Hind+Siliguri:wght@400;500;600;700&display=swap');

/* ── Theme Conflict Isolation ── */
/* opwc-wrapper এর ভেতরে থিমের CSS override করো */
.opwc-wrapper *,
.opwc-wrapper *::before,
.opwc-wrapper *::after {
    box-sizing: border-box;
}
.opwc-wrapper input[type="radio"],
.opwc-wrapper input[type="checkbox"] {
    /* Theme radio/checkbox styles reset */
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    margin: 0;
    padding: 0;
    border: none;
    background: none;
    width: auto;
    height: auto;
}
.opwc-wrapper label {
    /* Theme label styles reset */
    font-weight: inherit;
    cursor: inherit;
}
.opwc-ship-radio {
    cursor: pointer;
    user-select: none;
}


/* ── Root ── */
.opwc-wrapper {
    font-family: 'Hind Siliguri', sans-serif;
    width: 100%;
    padding: 10px;
    color: var(--opwc-title-color, #1a1a2e);
    box-sizing: border-box;
}

.opwc-section-title {
    font-size: 18px;
    font-weight: 700;
    color: var(--opwc-title-color, #1a1a2e);
    margin: 0 0 14px 0;
    padding-bottom: 8px;
    border-bottom: 2px solid #e8eaf0;
}

/* ── Product Card ── */
.opwc-products-section {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin-bottom: 24px;
}

.opwc-product-card {
    background: var(--opwc-card-bg, #f0f4ff);
    border: 2px solid var(--opwc-card-border, #d6e0ff);
    border-radius: 16px;
    padding: 16px;
    transition: border-color 0.2s, box-shadow 0.2s;
}

.opwc-product-card.opwc-card-selected {
    border-color: var(--opwc-primary, #3b6ff5);
    box-shadow: 0 0 0 3px rgba(59,111,245,0.12);
    background: var(--opwc-card-bg-selected, #eef2ff);
}

/* Card top row */
.opwc-card-top {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    flex-wrap: nowrap;
    cursor: pointer; /* পুরো top area clickable */
    user-select: none;
}

/* Custom Checkbox */
.opwc-checkbox-wrap {
    position: relative;
    flex-shrink: 0;
    cursor: pointer;
}
.opwc-checkbox-wrap input[type="checkbox"] {
    position: absolute;
    opacity: 0;
    width: 0;
    height: 0;
}
.opwc-checkbox-custom {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: 8px;
    border: 2px solid #b0bef3;
    background: #fff;
    transition: all 0.2s;
}
.opwc-checkbox-wrap input:checked + .opwc-checkbox-custom {
    background: var(--opwc-primary, #3b6ff5);
    border-color: var(--opwc-primary, #3b6ff5);
}
.opwc-checkbox-wrap input:checked + .opwc-checkbox-custom::after {
    content: '';
    display: block;
    width: 6px;
    height: 11px;
    border: 2.5px solid #fff;
    border-top: none;
    border-left: none;
    transform: rotate(45deg) translate(-1px, -1px);
}

/* Thumbnail */
.opwc-product-thumb {
    flex-shrink: 0;
    width: 56px;
    height: 56px;
    border-radius: 10px;
    overflow: hidden;
    background: #dde3f5;
    display: flex;
    align-items: center;
    justify-content: center;
}
.opwc-product-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* Product info */
.opwc-product-info {
    flex: 1;
    min-width: 0;
    overflow: hidden;
}
.opwc-product-name {
    font-size: 15px;
    font-weight: 600;
    color: var(--opwc-title-color, #1a1a2e);
    line-height: 1.35;
    word-break: break-word;
    overflow-wrap: break-word;
    hyphens: auto;
}
.opwc-badge-variable {
    display: inline-block;
    margin-top: 4px;
    font-size: 11px;
    font-weight: 600;
    color: #c07000;
    background: #fff3d6;
    border-radius: 20px;
    padding: 2px 10px;
}

/* Price */
.opwc-product-price-wrap {
    text-align: right;
    flex-shrink: 0;
    max-width: 80px;
}
.opwc-product-current-price {
    font-size: 15px;
    font-weight: 700;
    color: var(--opwc-price, #d63031);
    white-space: nowrap;
}
.opwc-product-current-price .woocommerce-Price-amount { color: var(--opwc-price, #d63031); }
.opwc-product-old-price {
    font-size: 13px;
    color: #999;
    text-decoration: line-through;
}

/* ── Variation Section ── */
.opwc-variation-section {
    margin-top: 14px;
    padding-top: 12px;
    border-top: 1px solid var(--opwc-card-border, #d6e0ff);
}
.opwc-var-label {
    font-size: 13px;
    color: #666;
    margin: 0 0 8px 0;
}
.opwc-var-list {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 7px;
}
@media (max-width: 480px) {
    .opwc-var-list {
        grid-template-columns: 1fr;
    }
}

/* Variation Radio Item */
.opwc-var-radio-item {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 9px 12px;
    background: #fff;
    border: 1.5px solid #dde3f5;
    border-radius: 10px;
    cursor: pointer;
    transition: border-color 0.15s, background 0.15s;
    min-width: 0;
}
.opwc-var-radio-item input[type="radio"] {
    display: none;
}
.opwc-var-radio-circle {
    width: 20px;
    height: 20px;
    border-radius: 50%;
    border: 2px solid #b0bef3;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: border-color 0.15s;
}
.opwc-var-radio-item.opwc-var-selected {
    border-color: var(--opwc-primary, #3b6ff5);
    background: var(--opwc-card-bg, #f0f4ff);
}
.opwc-var-radio-item.opwc-var-selected .opwc-var-radio-circle {
    border-color: var(--opwc-primary, #3b6ff5);
}
.opwc-var-radio-item.opwc-var-selected .opwc-var-radio-circle::after {
    content: '';
    display: block;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: var(--opwc-primary, #3b6ff5);
}
.opwc-var-label-text {
    flex: 1;
    font-size: 13px;
    font-weight: 500;
    min-width: 0;
    word-break: break-word;
}
.opwc-var-price {
    font-size: 13px;
    font-weight: 700;
    color: var(--opwc-price, #d63031);
    white-space: nowrap;
    flex-shrink: 0;
}
.opwc-var-price .woocommerce-Price-amount { color: var(--opwc-price, #d63031); }

/* ── Qty Section ── */
.opwc-qty-section {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid var(--opwc-card-border, #d6e0ff);
}
.opwc-qty-label {
    font-size: 14px;
    color: #555;
}
.opwc-qty-control {
    display: flex;
    align-items: center;
    gap: 0;
    border: 1.5px solid #b0bef3;
    border-radius: 8px;
    overflow: hidden;
    background: #fff;
}
.opwc-qty-btn {
    background: #fff;
    border: none;
    width: 34px;
    height: 34px;
    font-size: 18px;
    line-height: 1;
    cursor: pointer;
    color: var(--opwc-primary, #3b6ff5);
    transition: background 0.15s;
}
.opwc-qty-btn:hover { background: var(--opwc-card-bg-selected, #eef2ff); }
.opwc-qty-val {
    width: 36px;
    text-align: center;
    font-size: 15px;
    font-weight: 600;
    border-left: 1px solid var(--opwc-card-border, #d6e0ff);
    border-right: 1px solid var(--opwc-card-border, #d6e0ff);
    height: 34px;
    line-height: 34px;
}

/* ── Order Summary ── */
.opwc-order-box {
    background: #fff;
    border: 1.5px solid #e0e4f5;
    border-radius: 16px;
    padding: 18px;
    margin-bottom: 24px;
}
.opwc-order-empty {
    text-align: center;
    padding: 20px 0;
    color: #999;
}
.opwc-order-empty-icon {
    font-size: 28px;
    display: block;
    margin-bottom: 6px;
}
.opwc-order-items {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin-bottom: 14px;
}
.opwc-order-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 8px 0;
    border-bottom: 1px solid #f0f0f8;
}
.opwc-order-row-left {
    display: flex;
    align-items: center;
    gap: 8px;
}
.opwc-order-row-right {
    display: flex;
    align-items: center;
    gap: 10px;
}
.opwc-order-name {
    font-size: 14px;
    font-weight: 500;
}
.opwc-order-qty {
    font-size: 13px;
    color: #888;
}
.opwc-order-price {
    font-size: 14px;
    font-weight: 700;
    color: var(--opwc-price, #d63031);
}
.opwc-order-total-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-top: 10px;
    font-size: 16px;
    font-weight: 700;
    border-top: 2px solid #e0e4f5;
}
.opwc-order-total-price {
    color: var(--opwc-price, #d63031);
    font-size: 18px;
}
.opwc-remove {
    background: #ffecec;
    color: var(--opwc-price, #d63031);
    border: none;
    border-radius: 6px;
    width: 22px;
    height: 22px;
    font-size: 12px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.15s;
    flex-shrink: 0;
}
.opwc-remove:hover { background: #ffd0d0; }

/* ── Loading ── */
.opwc-loading {
    color: #888;
    font-size: 13px;
    padding: 6px 0;
}

/* ── Checkout Box ── */
.opwc-checkout-box {
    background: #fff;
    border: 1.5px solid #e0e4f5;
    border-radius: 16px;
    padding: 18px;
}

/* WooCommerce overrides inside widget */
.opwc-checkout-box .woocommerce-checkout {
    margin: 0;
}

/* ── Spinner ── */
.opwc-loading {
    display: flex;
    align-items: center;
    gap: 8px;
    color: #888;
    font-size: 13px;
    padding: 8px 0;
}
.opwc-spinner {
    display: inline-block;
    width: 16px;
    height: 16px;
    border: 2px solid var(--opwc-card-border, #d6e0ff);
    border-top-color: var(--opwc-primary, #3b6ff5);
    border-radius: 50%;
    animation: opwc-spin 0.7s linear infinite;
    flex-shrink: 0;
}
@keyframes opwc-spin {
    to { transform: rotate(360deg); }
}

/* ── Subtotal row ── */
.opwc-order-sub-row {
    display: flex;
    justify-content: space-between;
    font-size: 14px;
    color: #555;
    padding: 5px 0;
    border-bottom: 1px solid #f0f0f8;
}

/* ── Toast notification ── */
.opwc-toast {
    position: fixed;
    bottom: 24px;
    left: 50%;
    transform: translateX(-50%) translateY(20px);
    background: var(--opwc-title-color, #1a1a2e);
    color: #fff;
    padding: 12px 24px;
    border-radius: 10px;
    font-size: 14px;
    font-family: 'Hind Siliguri', sans-serif;
    z-index: 99999;
    opacity: 0;
    transition: opacity 0.3s, transform 0.3s;
    white-space: nowrap;
}
.opwc-toast.opwc-toast-show {
    opacity: 1;
    transform: translateX(-50%) translateY(0);
}

/* ── Checkout box smooth reveal ── */
.opwc-checkout-box {
    background: #fff;
    border: 1.5px solid #e0e4f5;
    border-radius: 16px;
    padding: 18px;
    margin-top: 0;
}

/* ── Product Grid Column System ── */
/* ── Masonry Grid (JS controlled) ── */
.opwc-products-grid {
    position: relative; /* JS absolute positioning এর জন্য */
    /* Initial render এ page jump কমাতে min-height */
    min-height: 80px;
    /* Will-change দিয়ে GPU layer hint — reflow কমায় */
    will-change: height;
}

/* JS layout হওয়ার আগে grid দেখাও — no flash */
.opwc-products-grid.opwc-masonry-init {
    visibility: visible;
}

.opwc-product-card {
    position: absolute;
    box-sizing: border-box;
    /* transition সরানো হয়েছে — card repositioning এ page jump বন্ধ */
}

/* Single column — no masonry needed */
.opwc-cols-1 .opwc-product-card {
    position: relative;
    width: 100%;
}

/* Responsive fallback */
@media (max-width: 480px) {
    .opwc-product-card {
        position: relative !important;
        width: 100% !important;
        left: auto !important;
        top: auto !important;
    }
    .opwc-products-grid {
        display: flex;
        flex-direction: column;
        gap: 12px;
        height: auto !important;
    }
}

/* ── Multi-column card adjustments ── */
.opwc-cols-2 .opwc-product-thumb,
.opwc-cols-3 .opwc-product-thumb,
.opwc-cols-4 .opwc-product-thumb {
    width: 48px;
    height: 48px;
}
.opwc-cols-3 .opwc-product-name,
.opwc-cols-4 .opwc-product-name {
    font-size: 13px;
}
.opwc-cols-3 .opwc-product-current-price,
.opwc-cols-4 .opwc-product-current-price {
    font-size: 13px;
}
.opwc-cols-3 .opwc-product-card,
.opwc-cols-4 .opwc-product-card {
    padding: 12px;
}
.opwc-cols-3 .opwc-badge-variable,
.opwc-cols-4 .opwc-badge-variable {
    font-size: 10px;
    padding: 1px 7px;
}
/* Card top: on very narrow cards stack thumb+info vertically */
.opwc-cols-3 .opwc-card-top,
.opwc-cols-4 .opwc-card-top {
    gap: 8px;
}
.opwc-cols-3 .opwc-product-price-wrap,
.opwc-cols-4 .opwc-product-price-wrap {
    max-width: 70px;
}

/* ══════════════════════════════════════════════════
   SHIPPING METHODS — Order Summary Radio Buttons
══════════════════════════════════════════════════ */
.opwc-shipping-methods {
    margin: 8px 0 4px 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
    border-bottom: 1px solid #f0f0f8;
    padding-bottom: 10px;
}

.opwc-ship-radio {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 14px;
    background: #f7f8ff;
    border: 1.5px solid #dde3f5;
    border-radius: 10px;
    cursor: pointer;
    transition: border-color 0.15s, background 0.15s;
}
.opwc-ship-radio input[type="radio"] { display: none; }
.opwc-ship-circle {
    width: 18px;
    height: 18px;
    border-radius: 50%;
    border: 2px solid #b0bef3;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: border-color 0.15s;
}
.opwc-ship-radio.opwc-ship-selected {
    border-color: var(--opwc-primary, #3b6ff5);
    background: var(--opwc-card-bg-selected, #eef2ff);
}
.opwc-ship-radio.opwc-ship-selected .opwc-ship-circle {
    border-color: var(--opwc-primary, #3b6ff5);
}
.opwc-ship-radio.opwc-ship-selected .opwc-ship-circle::after {
    content: '';
    display: block;
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: var(--opwc-primary, #3b6ff5);
}
.opwc-ship-label {
    flex: 1;
    font-size: 14px;
    font-weight: 500;
    color: var(--opwc-title-color, #1a1a2e);
}
.opwc-ship-cost {
    font-size: 14px;
    font-weight: 700;
    color: var(--opwc-price, #d63031);
}
.opwc-ship-cost .woocommerce-Price-amount { color: var(--opwc-price, #d63031); }

/* ══════════════════════════════════════════════════
   CHECKOUT FORM — Improved Design
══════════════════════════════════════════════════ */

/* Box wrapper */
.opwc-checkout-box {
    background: #fff;
    border: 1.5px solid #e0e4f5;
    border-radius: 16px;
    padding: 24px 22px;
    margin-top: 0;
}

/* "Ship to different address?" — সম্পূর্ণ বাদ */
.opwc-checkout-box .woocommerce-shipping-fields,
.opwc-checkout-box #ship-to-different-address,
.opwc-checkout-box .shipping_address {
    display: none !important;
}

/* Billing — full width single column */
.opwc-checkout-box .woocommerce-billing-fields__field-wrapper,
.opwc-checkout-box .woocommerce-checkout .col2-set,
.opwc-checkout-box .woocommerce-checkout .col-1,
.opwc-checkout-box .woocommerce-checkout .col-2 {
    width: 100% !important;
    float: none !important;
    margin: 0 !important;
}
.woocommerce-billing-fields h3 {
	display: none;
}
/* Form rows — full width */
.opwc-checkout-box .form-row-first,
.opwc-checkout-box .form-row-last {
    width: 100% !important;
    float: none !important;
    clear: both !important;
}

/* Input fields */
.opwc-checkout-box .woocommerce-input-wrapper input,
.opwc-checkout-box .woocommerce-input-wrapper select,
.opwc-checkout-box .woocommerce-input-wrapper textarea {
    width: 100% !important;
    border: 1.5px solid var(--opwc-input-border, #d6dcf5) !important;
    border-radius: 10px !important;
    padding: 11px 14px !important;
    font-size: 14px !important;
    font-family: 'Hind Siliguri', sans-serif;
    color: var(--opwc-title-color, #1a1a2e) !important;
    background: #fafbff !important;
    transition: border-color 0.2s, box-shadow 0.2s !important;
    box-shadow: none !important;
    outline: none !important;
}
.opwc-checkout-box .woocommerce-input-wrapper input:focus,
.opwc-checkout-box .woocommerce-input-wrapper select:focus,
.opwc-checkout-box .woocommerce-input-wrapper textarea:focus {
    border-color: var(--opwc-primary, #3b6ff5) !important;
    box-shadow: 0 0 0 3px rgba(59,111,245,0.1) !important;
    background: #fff !important;
}

/* Labels */
.opwc-checkout-box .woocommerce-checkout label,
.opwc-checkout-box .woocommerce-billing-fields label {
    font-size: 13px !important;
    font-weight: 600 !important;
    color: #444 !important;
    margin-bottom: 5px !important;
    display: block !important;
}

/* Section headings */
.opwc-checkout-box .woocommerce-billing-fields h3,
.opwc-checkout-box .woocommerce-additional-fields h3,
.opwc-checkout-box #order_review_heading {
    font-size: 16px !important;
    font-weight: 700 !important;
    color: var(--opwc-title-color, #1a1a2e) !important;
    margin: 0 0 16px 0 !important;
    padding-bottom: 8px !important;
    border-bottom: 2px solid #e8eaf0 !important;
}

/* WC এর built-in coupon toggle ও form — আমাদের নিজের coupon আছে right side এ */
.opwc-checkout-box .woocommerce-form-coupon-toggle,
.opwc-checkout-box .checkout_coupon {
    display: none !important;
}

/* Place Order button */
.opwc-checkout-box #place_order {
    width: 100% !important;
    background: var(--opwc-btn-bg, var(--opwc-primary, #3b6ff5)) !important;
    color: var(--opwc-btn-txt, #fff) !important;
    border: none !important;
    border-radius: 12px !important;
    padding: 16px 24px !important;
    font-size: 17px !important;
    font-weight: 700 !important;
    font-family: 'Hind Siliguri', sans-serif;
    cursor: pointer !important;
    transition: background 0.2s, transform 0.15s, box-shadow 0.2s !important;
    letter-spacing: 0.3px !important;
    display: block !important;
    text-align: center !important;
    box-shadow: 0 4px 16px rgba(59,111,245,0.25) !important;
}
#add_payment_method #payment div.form-row, .woocommerce-cart #payment div.form-row, .woocommerce-checkout #payment div.form-row {
	padding: 0;
}
.opwc-checkout-box #place_order:hover {
    background: var(--opwc-btn-bg-hover, var(--opwc-primary-dark, #2d5bdb)) !important;
    transform: translateY(-2px) !important;
    box-shadow: 0 8px 24px rgba(59,111,245,0.35) !important;
}
.opwc-checkout-box #place_order:active {
    transform: translateY(0) !important;
    box-shadow: 0 2px 8px rgba(59,111,245,0.2) !important;
}

/* Place Order button — loading / disabled state */
.opwc-checkout-box #place_order:disabled,
.opwc-checkout-box #place_order[disabled] {
    background: #7fa3f7 !important;
    cursor: not-allowed !important;
    transform: none !important;
    box-shadow: none !important;
    opacity: 0.78 !important;
    transition: opacity 0.25s ease !important; /* smooth disabled fade, no jump */
}

/* WC processing class — form overlay থেকে বাড়তি blink বন্ধ */
.opwc-checkout-box form.woocommerce-checkout.processing {
    pointer-events: none;
}
.opwc-checkout-box form.woocommerce-checkout.processing::before {
    /* WC নিজে overlay দেয় — সেটা hide করো, আমাদের opwc-submit-overlay আছে */
    display: none !important;
}

/* Submit overlay spinner */
.opwc-submit-overlay {
    border-radius: 8px;
}
.opwc-submit-overlay .opwc-spinner {
    width: 32px !important;
    height: 32px !important;
    border-width: 3px !important;
}

/* Required asterisk */
.opwc-checkout-box abbr[title] {
    color: var(--opwc-price, #d63031) !important;
    text-decoration: none !important;
}

/* Error messages */
.opwc-checkout-box .woocommerce-error,
.opwc-checkout-box .woocommerce-message {
    border-radius: 10px !important;
    border-left: 4px solid var(--opwc-price, #d63031) !important;
    background: #fff5f5 !important;
    padding: 12px 16px !important;
    font-size: 14px !important;
    list-style: none !important;
}
.opwc-checkout-box .woocommerce-message {
    border-left-color: var(--opwc-primary, #3b6ff5) !important;
    background: var(--opwc-card-bg, #f0f4ff) !important;
}

/* Additional info textarea */
.opwc-checkout-box #order_comments {
    min-height: 80px !important;
    resize: vertical !important;
}

/* Hide WC's own order review table — কিন্তু Place Order button রাখো */
.opwc-checkout-box #order_review_heading,
.opwc-checkout-box .woocommerce-checkout-review-order-table {
    display: none !important;
}

/* Payment methods — সবসময় দেখাবে */
.opwc-checkout-box .woocommerce-checkout-payment .payment_methods,
.opwc-checkout-box #payment .wc_payment_methods,
.opwc-checkout-box #payment ul.payment_methods {
    display: block !important;
    list-style: none !important;
    margin: 0 0 16px 0 !important;
    padding: 0 !important;
}

/* Place Order button — সবসময় দেখাবে */
.opwc-checkout-box #order_review,
.opwc-checkout-box .woocommerce-checkout-review-order {
    display: block !important;
}
.opwc-checkout-box .woocommerce-checkout-payment,
.opwc-checkout-box #payment {
    display: block !important;
    background: transparent !important;
    border: none !important;
    padding: 0 !important;
}

.woocommerce-message, .woocommerce-info, .woocommerce-error, .woocommerce-noreviews, p.no-comments {
	color: #e90000;
}

/* ── Payment Method Items ─────────────────────────────────────────── */
.opwc-checkout-box #payment .wc_payment_method,
.opwc-checkout-box #payment li.wc_payment_method {
    display: block !important;
    background: #f8f9ff !important;
    border: 2px solid #e8ecf8 !important;
    border-radius: 10px !important;
    margin-bottom: 10px !important;
    padding: 14px 16px !important;
    cursor: pointer !important;
    transition: border-color 0.2s, background 0.2s !important;
    list-style: none !important;
}
.opwc-checkout-box #payment .wc_payment_method:hover,
.opwc-checkout-box #payment li.wc_payment_method:hover {
    border-color: var(--opwc-primary, #3b6ff5) !important;
    background: #f0f4ff !important;
}
.opwc-checkout-box #payment .wc_payment_method.active,
.opwc-checkout-box #payment li.wc_payment_method.active {
    border-color: var(--opwc-primary, #3b6ff5) !important;
    background: #eef2ff !important;
}

/* Payment method label */
.opwc-checkout-box #payment .wc_payment_method label,
.opwc-checkout-box #payment li.wc_payment_method label {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    font-weight: 600 !important;
    font-size: 15px !important;
    cursor: pointer !important;
    margin: 0 !important;
    color: #1a2340 !important;
}

/* Gateway radio */
.opwc-checkout-box #payment input[type="radio"] {
    width: 18px !important;
    height: 18px !important;
    accent-color: var(--opwc-primary, #3b6ff5) !important;
    cursor: pointer !important;
    flex-shrink: 0 !important;
}

/* Payment box (gateway description/fields) */
.opwc-checkout-box #payment .payment_box {
    background: #fff !important;
    border-radius: 8px !important;
    padding: 12px !important;
    margin-top: 10px !important;
    border: 1px solid #e0e6f5 !important;
    font-size: 14px !important;
    color: #555 !important;
}
.opwc-checkout-box #payment .payment_box p {
    margin: 0 !important;
}

/* Gateway icons */
.opwc-checkout-box #payment .wc_payment_method label img {
    max-height: 26px !important;
    vertical-align: middle !important;
    margin-left: auto !important;
}

/* ══════════════════════════════════════════════════
   2-COLUMN CHECKOUT LAYOUT
   Desktop: billing left | order summary right
   Mobile: single column stack
══════════════════════════════════════════════════ */
.opwc-checkout-columns {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    align-items: start;
}

.opwc-checkout-columns.opwc-columns-hidden {
    display: none;
}

.opwc-col-left,
.opwc-col-right {
    min-width: 0;
}

/* Right column: order box স্টিকি থাকবে scroll এ */
.opwc-col-right {
    position: sticky;
    top: 20px;
}

/* Right column এর order box এ payment button ও থাকবে */
.opwc-col-right .opwc-order-box {
    margin-bottom: 0;
}

/* Place Order button — right column এ move হবে JS এর মাধ্যমে */
/* Payment stays inside form in left col */
.opwc-col-left .woocommerce-checkout-payment {
    display: block !important;
}

/* Payment wrap not used */

/* Mobile: single column */
@media (max-width: 768px) {
    .opwc-checkout-columns {
        grid-template-columns: 1fr;
    }
    .opwc-col-right {
        position: static;
        /* Mobile এ right column (order summary) আগে দেখাবে */
        order: -1;
    }
    .opwc-col-left .woocommerce-checkout-payment {
        display: block !important;
    }
    .opwc-checkout-payment-wrap {
        display: none !important;
    }
}

/* Coupon styles moved above */

/* ══════════════════════════════════════════════════
   COUPON FORM — inline layout (input + button)
══════════════════════════════════════════════════ */
.opwc-checkout-box .checkout_coupon .coupon {
    display: flex !important;
    gap: 10px !important;
    align-items: center !important;
    flex-wrap: wrap !important;
}
.opwc-checkout-box .checkout_coupon p.form-row {
    margin: 0 !important;
    flex: 1 !important;
    min-width: 150px !important;
}
.opwc-checkout-box .checkout_coupon .input-text {
    width: 100% !important;
    border: 1.5px solid var(--opwc-input-border, #d6dcf5) !important;
    border-radius: 10px !important;
    padding: 11px 14px !important;
    font-size: 14px !important;
    background: #fff !important;
    transition: border-color 0.2s, box-shadow 0.2s !important;
}
.opwc-checkout-box .checkout_coupon .input-text:focus {
    border-color: var(--opwc-primary, #3b6ff5) !important;
    box-shadow: 0 0 0 3px rgba(59,111,245,0.1) !important;
    outline: none !important;
}
.opwc-checkout-box .checkout_coupon .button {
    background: var(--opwc-btn-bg, var(--opwc-primary, #3b6ff5)) !important;
    color: var(--opwc-btn-txt, #fff) !important;
    border: none !important;
    border-radius: 10px !important;
    padding: 11px 22px !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    cursor: pointer !important;
    white-space: nowrap !important;
    font-family: 'Hind Siliguri', sans-serif;
    transition: opacity 0.2s, transform 0.1s !important;
    flex-shrink: 0 !important;
}
.opwc-checkout-box .checkout_coupon .button:hover {
    opacity: 0.88 !important;
    transform: translateY(-1px) !important;
}

/* ── Coupon in Order Summary (right column) ── */
.opwc-coupon-wrap {
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid #f0f0f8;
}
.opwc-coupon-label {
    font-size: 13px;
    font-weight: 600;
    color: #555;
    margin: 0 0 8px 0;
}
.opwc-coupon-row {
    display: flex;
    gap: 8px;
    align-items: center;
}
.opwc-coupon-input {
    flex: 1;
    padding: 9px 12px;
    border: 1.5px solid var(--opwc-input-border, #d6dcf5);
    border-radius: 10px;
    font-size: 14px;
    font-family: 'Hind Siliguri', sans-serif;
    color: var(--opwc-title-color, #1a1a2e);
    background: #fafbff;
    outline: none;
    transition: border-color 0.2s, box-shadow 0.2s;
}
.opwc-coupon-input:focus {
    border-color: var(--opwc-primary, #3b6ff5);
    box-shadow: 0 0 0 3px rgba(59,111,245,0.1);
    background: #fff;
}
.opwc-coupon-btn {
    padding: 9px 16px;
    background: var(--opwc-primary, #3b6ff5);
    color: #fff;
    border: none;
    border-radius: 10px;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    font-family: 'Hind Siliguri', sans-serif;
    white-space: nowrap;
    transition: opacity 0.2s, transform 0.1s;
    flex-shrink: 0;
}
.opwc-coupon-btn:hover {
    opacity: 0.88;
    transform: translateY(-1px);
}
.opwc-coupon-btn:disabled {
    opacity: 0.6;
    cursor: not-allowed;
    transform: none;
}
.opwc-coupon-msg {
    margin-top: 6px;
    font-size: 13px;
    padding: 6px 10px;
    border-radius: 8px;
    display: none;
}
.opwc-coupon-msg.opwc-coupon-success {
    background: #e8f5e9;
    color: #2e7d32;
    display: block;
}
.opwc-coupon-msg.opwc-coupon-error {
    background: #fff5f5;
    color: #c62828;
    display: block;
}

/* ── Free Shipping Progress Notice ── */
.opwc-ship-notice {
    margin-top: 12px;
    padding: 10px 12px;
    background: #f0f4ff;
    border: 1.5px solid #d6e0ff;
    border-radius: 10px;
    font-size: 13px;
    color: #444;
}
.opwc-ship-notice-bar {
    display: block;
    height: 6px;
    background: #dde3f5;
    border-radius: 99px;
    overflow: hidden;
    margin-bottom: 6px;
}
.opwc-ship-notice-fill {
    display: block;
    height: 100%;
    background: linear-gradient(90deg, var(--opwc-primary, #3b6ff5), #6a9fff);
    border-radius: 99px;
    transition: width 0.4s ease;
}
.opwc-ship-notice-text {
    font-size: 12px;
    color: #555;
}
.opwc-ship-notice-done {
    background: #e8f5e9;
    border-color: #a5d6a7;
    color: #2e7d32;
    font-weight: 600;
    text-align: center;
}

/* Checkout form AJAX loading state */
.opwc-form-loading {
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 40px 20px;
    min-height: 120px;
}
