/* =============================================================
   Frequently Bought Together v1.9 — forced override styles
   ============================================================= */

/* Section */
div.fbt-section {
    margin: 32px 0 !important;
    padding: 0 !important;
    max-width: 680px !important;
    width: 100% !important;
    background: none !important;
    border: none !important;
    box-shadow: none !important;
    font-family: inherit !important;
}

/* Header */
div.fbt-section .fbt-header {
    margin: 0 0 12px 0 !important;
    padding: 0 !important;
}
div.fbt-section .fbt-header-title {
    display: block !important;
    font-size: 0.88em !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.6px !important;
    color: #111 !important;
}

/* Cards list — vertical stack of horizontal rows */
div.fbt-section .fbt-cards-list {
    display: flex !important;
    flex-direction: column !important;
    gap: 8px !important;
    margin: 0 0 12px 0 !important;
    padding: 0 !important;
    list-style: none !important;
}

/* ── Single card ── */
div.fbt-section .fbt-card {
    /* HORIZONTAL ROW — critical */
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    flex-wrap: nowrap !important;
    /* sizing */
    width: 100% !important;
    box-sizing: border-box !important;
    padding: 12px 14px !important;
    gap: 12px !important;
    /* look */
    background: #f5f5f5 !important;
    border-radius: 8px !important;
    border: none !important;
    box-shadow: none !important;
    margin: 0 !important;
    transition: opacity .2s !important;
    position: relative !important;
    float: none !important;
    clear: both !important;
}

div.fbt-section .fbt-card-unchecked {
    opacity: 0.45 !important;
}

/* ── Checkbox column ── */
div.fbt-section .fbt-card-check {
    flex: 0 0 22px !important;
    width: 22px !important;
    padding: 0 !important;
    margin: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    cursor: pointer !important;
}
div.fbt-section .fbt-item-checkbox {
    position: absolute !important;
    opacity: 0 !important;
    width: 0 !important;
    height: 0 !important;
    pointer-events: none !important;
}
div.fbt-section .fbt-checkmark {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 22px !important;
    height: 22px !important;
    min-width: 22px !important;
    max-width: 22px !important;
    border-radius: 5px !important;
    background: #2271b1 !important;
    border: 2px solid #2271b1 !important;
    flex-shrink: 0 !important;
    cursor: pointer !important;
    box-sizing: border-box !important;
}
div.fbt-section .fbt-checkmark-fixed {
    cursor: default !important;
}
div.fbt-section .fbt-item-checkbox:not(:checked) + .fbt-checkmark {
    background: #fff !important;
    border-color: #ccc !important;
}
div.fbt-section .fbt-item-checkbox:not(:checked) + .fbt-checkmark svg path {
    stroke: transparent !important;
}
div.fbt-section .fbt-item-checkbox:checked + .fbt-checkmark {
    background: #2271b1 !important;
    border-color: #2271b1 !important;
}

/* ── Image column — FIXED 64×64 ── */
div.fbt-section .fbt-card-image {
    flex: 0 0 64px !important;
    width: 64px !important;
    min-width: 64px !important;
    max-width: 64px !important;
    height: 64px !important;
    min-height: 64px !important;
    max-height: 64px !important;
    overflow: hidden !important;
    border-radius: 6px !important;
    background: #fff !important;
    display: block !important;
    padding: 0 !important;
    margin: 0 !important;
}
div.fbt-section .fbt-card-image img,
div.fbt-section .fbt-card-image .fbt-img {
    display: block !important;
    width: 64px !important;
    height: 64px !important;
    min-width: 64px !important;
    max-width: 64px !important;
    min-height: 64px !important;
    max-height: 64px !important;
    object-fit: cover !important;
    border-radius: 6px !important;
    float: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* ── Info column — takes remaining space ── */
div.fbt-section .fbt-card-info {
    flex: 1 1 0% !important;
    min-width: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 4px !important;
    overflow: hidden !important;
    padding: 0 !important;
    margin: 0 !important;
}
div.fbt-section .fbt-card-name {
    display: block !important;
    font-size: 0.87em !important;
    font-weight: 600 !important;
    color: #1a1a1a !important;
    text-decoration: none !important;
    line-height: 1.3 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    max-width: 100% !important;
}
div.fbt-section .fbt-card-name:hover { color: #2271b1 !important; }

/* ── Variant selects inside card ── */
div.fbt-section .fbt-card-variants {
    display: flex !important;
    flex-direction: column !important;
    gap: 4px !important;
}
div.fbt-section .fbt-card-unchecked .fbt-card-variants {
    display: none !important;
}
div.fbt-section .fbt-variant-row {
    display: flex !important;
}
div.fbt-section .fbt-variant-select {
    appearance: auto !important;
    font-size: 0.82em !important;
    color: #333 !important;
    background: transparent !important;
    border: none !important;
    border-bottom: 1px solid #aaa !important;
    border-radius: 0 !important;
    padding: 2px 2px 2px 0 !important;
    margin: 0 !important;
    max-width: 160px !important;
    font-weight: 500 !important;
    cursor: pointer !important;
    box-shadow: none !important;
    outline: none !important;
    height: auto !important;
    line-height: 1.4 !important;
}
div.fbt-section .fbt-variant-select:focus {
    border-bottom-color: #333 !important;
    box-shadow: none !important;
    outline: none !important;
}
div.fbt-section .fbt-variant-select.fbt-select-error {
    border-bottom-color: #e74c3c !important;
}
div.fbt-section .fbt-variant-error {
    display: none;
    font-size: 0.75em !important;
    color: #e74c3c !important;
}

/* ── Card prices ── */
div.fbt-section .fbt-card-price {
    display: flex !important;
    align-items: center !important;
    gap: 6px !important;
    flex-wrap: wrap !important;
    margin: 0 !important;
    padding: 0 !important;
}
div.fbt-section .fbt-price-new { color: #e74c3c !important; font-weight: 700 !important; font-size: 0.92em !important; }
div.fbt-section .fbt-price-new .woocommerce-Price-amount { color: #e74c3c !important; font-weight: 700 !important; }
div.fbt-section .fbt-price-old { font-size: 0.8em !important; color: #999 !important; }
div.fbt-section .fbt-price-old del { color: #999 !important; text-decoration: line-through !important; }

/* ── CTA button ── */
div.fbt-section .fbt-cta-btn {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    /* fill width */
    width: 100% !important;
    box-sizing: border-box !important;
    /* spacing */
    padding: 15px 20px !important;
    margin: 4px 0 0 0 !important;
    /* colours */
    background: #e41e26 !important;
    background-image: none !important;
    color: #fff !important;
    /* shape */
    border: none !important;
    border-radius: 6px !important;
    /* typography */
    font-size: 1em !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    line-height: 1.2 !important;
    text-decoration: none !important;
    /* misc */
    cursor: pointer !important;
    box-shadow: 0 2px 8px rgba(228,30,38,.3) !important;
    transition: background .2s, transform .15s !important;
    outline: none !important;
    float: none !important;
    clear: both !important;
    appearance: none !important;
    -webkit-appearance: none !important;
}
div.fbt-section .fbt-cta-btn:hover {
    background: #c0181f !important;
    transform: translateY(-1px) !important;
    color: #fff !important;
}
div.fbt-section .fbt-cta-btn:disabled,
div.fbt-section .fbt-cta-btn.fbt-loading {
    opacity: .7 !important;
    cursor: not-allowed !important;
    transform: none !important;
}
div.fbt-section .fbt-cta-label {
    color: #fff !important;
    font-weight: 800 !important;
    letter-spacing: 1px !important;
    font-size: 1em !important;
}
div.fbt-section .fbt-cta-label::after { content: ' ·' !important; font-weight: 400 !important; }
div.fbt-section .fbt-cta-prices {
    display: flex !important;
    align-items: center !important;
    gap: 7px !important;
}
div.fbt-section .fbt-cta-price-new { color: #fff !important; font-weight: 700 !important; font-size: 1em !important; }
div.fbt-section .fbt-cta-price-new .woocommerce-Price-amount { color: #fff !important; font-weight: 700 !important; }
div.fbt-section .fbt-cta-price-old { color: rgba(255,255,255,.75) !important; font-size: .88em !important; text-decoration: line-through !important; }
div.fbt-section .fbt-cta-price-old del { color: rgba(255,255,255,.75) !important; }

/* ── Message ── */
div.fbt-section .fbt-message {
    display: block !important;
    margin: 10px 0 0 0 !important;
    min-height: 18px !important;
    font-size: 0.9em !important;
    font-weight: 500 !important;
    text-align: center !important;
}
div.fbt-section .fbt-message.fbt-success { color: #27ae60 !important; }
div.fbt-section .fbt-message.fbt-error   { color: #e74c3c !important; }

/* ── Responsive ── */
@media (max-width: 500px) {
    div.fbt-section .fbt-card { padding: 10px !important; gap: 9px !important; }
    div.fbt-section .fbt-card-image,
    div.fbt-section .fbt-card-image img,
    div.fbt-section .fbt-card-image .fbt-img {
        flex: 0 0 52px !important;
        width: 52px !important; height: 52px !important;
        min-width: 52px !important; max-width: 52px !important;
        min-height: 52px !important; max-height: 52px !important;
    }
    div.fbt-section .fbt-cta-btn { padding: 13px 14px !important; font-size: .9em !important; }
}

/* =============================================================
   Cart — locked qty & bundle badge
   ============================================================= */
.fbt-qty-locked {
    display: inline-flex !important; align-items: center !important;
    justify-content: center !important; min-width: 36px !important;
    height: 36px !important; padding: 0 12px !important;
    background: #f5f5f5 !important; border: 1px solid #ddd !important;
    border-radius: 4px !important; font-weight: 600 !important; color: #555 !important;
}
.fbt-cart-bundle-wrap { display: inline-flex !important; flex-direction: column !important; gap: 3px !important; margin-top: 5px !important; }
.fbt-cart-badge {
    display: inline-block !important; background: linear-gradient(135deg,#2271b1,#135e96) !important;
    color: #fff !important; font-size: .72em !important; font-weight: 700 !important;
    padding: 2px 8px !important; border-radius: 20px !important;
    vertical-align: middle !important; margin-right: 5px !important;
}
.fbt-cart-bundle-info { display: inline-block !important; font-size: .8em !important; color: #555 !important; vertical-align: middle !important; }
.fbt-cart-bundle-info strong { color: #333 !important; font-weight: 600 !important; }
.fbt-cart-discount-pct { color: #e74c3c !important; font-weight: 700 !important; }
