/* =====================================================
   WC B2B WhatsApp Quote v2.5
   IDs used everywhere for maximum specificity
   Modal uses visibility/opacity, NOT display:none
   to avoid conflict with Popup Maker & similar plugins
   ===================================================== */

:root {
    --w-primary: #25D366;
    --w-dark:    #111827;
    --w-gray:    #6b7280;
    --w-font:    -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
    --w-ease:    cubic-bezier(.16,1,.3,1);
}

/* Hard reset scoped to our IDs */
#wcb2b-fab-wrap, #wcb2b-fab-wrap *,
#wcb2b-modal,    #wcb2b-modal *,
#wcb2b-toast-wrap, #wcb2b-toast-wrap * {
    font-family: var(--w-font) !important;
    box-sizing: border-box !important;
    -webkit-tap-highlight-color: transparent;
}

/* ── BACKDROP — only used for modal, NOT for speed dial ── */
#wcb2b-backdrop {
    position: fixed !important;
    top: 0 !important; left: 0 !important;
    width: 100vw !important; height: 100vh !important;
    background: rgba(8,12,22,.5) !important;
    z-index: 99979 !important;
    opacity: 0 !important;
    visibility: hidden !important;
    transition: opacity .25s ease, visibility .25s !important;
    pointer-events: none !important; /* NEVER blocks page even when fading */
    display: block !important;
    margin: 0 !important; padding: 0 !important; border: none !important;
}
#wcb2b-backdrop.w-open {
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important; /* Only blocks when modal is open */
}

/* ── FAB WRAPPER ── */
#wcb2b-fab-wrap {
    position: fixed !important;
    bottom: 24px !important; right: 24px !important;
    left: auto !important; top: auto !important;
    z-index: 99990 !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-end !important;
    gap: 12px !important;
    width: auto !important; height: auto !important;
    background: transparent !important;
    margin: 0 !important; padding: 0 !important; border: none !important;
    pointer-events: none !important;
}
#wcb2b-fab-wrap > * { pointer-events: auto !important; }

/* ── SPEED DIAL ── */
#wcb2b-speed-dial {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-end !important;
    gap: 8px !important;
    margin: 0 !important; padding: 0 !important;
    background: transparent !important;
    pointer-events: none !important;
}

/* ── SPEED DIAL ITEMS ── */
.wcb2b-sd-item {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    margin: 0 !important; padding: 0 !important;
    background: transparent !important;
    opacity: 0 !important;
    transform: translateY(10px) scale(.9) !important;
    transition: opacity .2s var(--w-ease), transform .2s var(--w-ease) !important;
    pointer-events: none !important;
}
.wcb2b-sd-item.w-visible {
    opacity: 1 !important;
    transform: none !important;
    pointer-events: auto !important;
}
.wcb2b-sd-item:nth-child(1) { transition-delay: .03s !important; }
.wcb2b-sd-item:nth-child(2) { transition-delay: .06s !important; }
.wcb2b-sd-item:nth-child(3) { transition-delay: .09s !important; }
.wcb2b-sd-item:nth-child(4) { transition-delay: .12s !important; }

/* ── TOOLTIP LABEL ── */
.wcb2b-sd-label {
    display: flex !important;
    align-items: center !important;
    gap: 7px !important;
    background: #1e293b !important;
    color: #f1f5f9 !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    line-height: 1.2 !important;
    padding: 9px 15px 9px 13px !important;
    border-radius: 8px !important;
    white-space: nowrap !important;
    box-shadow: 0 2px 14px rgba(0,0,0,.28) !important;
    cursor: pointer !important;
    text-decoration: none !important;
    margin: 0 !important; border: none !important;
    position: relative !important;
    user-select: none !important;
}
.wcb2b-sd-label::after {
    content: '' !important;
    position: absolute !important;
    right: -5px !important; top: 50% !important;
    width: 0 !important; height: 0 !important;
    transform: translateY(-50%) !important;
    border: 5px solid transparent !important;
    border-left-color: #1e293b !important;
    border-right: 0 !important;
    background: none !important;
    box-shadow: none !important;
    margin: 0 !important; padding: 0 !important;
}
.wcb2b-sd-label .wcb2b-cart-count {
    background: #ef4444 !important;
    color: #fff !important;
    font-size: 10px !important;
    font-weight: 800 !important;
    line-height: 1 !important;
    min-width: 18px !important; height: 18px !important;
    border-radius: 9px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 0 4px !important;
    margin: 0 !important; border: none !important;
}

/* ── ACTION BUTTON CIRCLE ── */
.wcb2b-sd-btn {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 48px !important; height: 48px !important;
    min-width: 48px !important; min-height: 48px !important;
    border-radius: 50% !important;
    border: none !important;
    outline: none !important;
    padding: 0 !important;
    margin: 0 !important;
    flex-shrink: 0 !important;
    cursor: pointer !important;
    pointer-events: auto !important;
    overflow: visible !important;
    box-shadow: 0 3px 12px rgba(0,0,0,.28) !important;
    transition: transform .18s ease, box-shadow .18s ease !important;
    text-decoration: none !important;
    -webkit-appearance: none !important;
    appearance: none !important;
    line-height: 1 !important;
}
.wcb2b-sd-btn:hover {
    transform: scale(1.12) !important;
    box-shadow: 0 6px 20px rgba(0,0,0,.36) !important;
}
.wcb2b-sd-btn svg {
    display: block !important;
    width: 22px !important; height: 22px !important;
    min-width: 22px !important; min-height: 22px !important;
    max-width: 22px !important; max-height: 22px !important;
    fill: #ffffff !important;
    color: #ffffff !important;
    margin: 0 !important; padding: 0 !important;
    border: none !important; background: none !important;
    pointer-events: none !important;
    flex-shrink: 0 !important;
}
.wcb2b-sd-btn svg path,
.wcb2b-sd-btn svg rect,
.wcb2b-sd-btn svg circle,
.wcb2b-sd-btn svg polygon {
    fill: #ffffff !important;
}

/* ── MAIN FAB ── */
#wcb2b-fab {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 58px !important; height: 58px !important;
    min-width: 58px !important; min-height: 58px !important;
    border-radius: 50% !important;
    background: var(--w-primary) !important;
    border: none !important;
    outline: none !important;
    padding: 0 !important; margin: 0 !important;
    cursor: pointer !important;
    position: relative !important;
    overflow: visible !important;
    z-index: 99991 !important;
    flex-shrink: 0 !important;
    box-shadow: 0 4px 18px rgba(0,0,0,.25) !important;
    transition: transform .2s ease, background .2s ease !important;
    -webkit-appearance: none !important;
    appearance: none !important;
    line-height: 1 !important;
    text-align: center !important;
    vertical-align: middle !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
    text-shadow: none !important;
}
#wcb2b-fab:hover { transform: scale(1.07) !important; }
#wcb2b-fab:focus { outline: none !important; box-shadow: 0 0 0 3px rgba(37,211,102,.35), 0 4px 18px rgba(0,0,0,.25) !important; }
#wcb2b-fab.w-open { background: #374151 !important; }

/* Pulse ring */
#wcb2b-fab .wcb2b-fab-pulse {
    position: absolute !important;
    top: -9px !important; right: -9px !important;
    bottom: -9px !important; left: -9px !important;
    width: auto !important; height: auto !important;
    border-radius: 50% !important;
    border: 2.5px solid var(--w-primary) !important;
    background: transparent !important;
    box-shadow: none !important;
    margin: 0 !important; padding: 0 !important;
    opacity: 0 !important;
    pointer-events: none !important;
    animation: wPulse 2.6s ease-out infinite !important;
    display: block !important;
}
#wcb2b-fab.w-open .wcb2b-fab-pulse { animation: none !important; }
@keyframes wPulse {
    0%   { opacity: .65; transform: scale(1); }
    70%  { opacity: 0;   transform: scale(1.65); }
    100% { opacity: 0;   transform: scale(1.65); }
}

/* WA + Close icons */
.wcb2b-icon-wa,
.wcb2b-icon-close {
    position: absolute !important;
    top: 50% !important; left: 50% !important;
    transform: translate(-50%,-50%) scale(1) rotate(0) !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    pointer-events: none !important;
    margin: 0 !important; padding: 0 !important;
    transition: opacity .22s var(--w-ease), transform .22s var(--w-ease) !important;
}
.wcb2b-icon-wa    { opacity: 1 !important; }
.wcb2b-icon-close { opacity: 0 !important; transform: translate(-50%,-50%) scale(.4) rotate(-45deg) !important; }
#wcb2b-fab.w-open .wcb2b-icon-wa    { opacity: 0 !important; transform: translate(-50%,-50%) scale(.4) rotate(45deg) !important; }
#wcb2b-fab.w-open .wcb2b-icon-close { opacity: 1 !important; transform: translate(-50%,-50%) scale(1) rotate(0) !important; }
#wcb2b-fab svg {
    display: block !important;
    width: 28px !important; height: 28px !important;
    fill: #fff !important;
    margin: 0 !important; padding: 0 !important;
    border: none !important; background: none !important;
}

/* Badge */
#wcb2b-fab-badge {
    position: absolute !important;
    top: -3px !important; right: -3px !important;
    background: #ef4444 !important;
    color: #fff !important;
    font-size: 10px !important; font-weight: 800 !important; line-height: 1 !important;
    min-width: 19px !important; height: 19px !important;
    border-radius: 10px !important;
    display: inline-flex !important;
    align-items: center !important; justify-content: center !important;
    border: 2.5px solid var(--w-primary) !important;
    padding: 0 3px !important; margin: 0 !important;
    z-index: 2 !important; box-shadow: none !important;
}
#wcb2b-fab.w-open #wcb2b-fab-badge { border-color: #374151 !important; }

/* ── TOAST ── */
.wcb2b-toast {
    position: fixed !important;
    top: 70px !important; right: 24px !important;
    left: auto !important; bottom: auto !important;
    background: #1e293b !important;
    color: #f1f5f9 !important;
    padding: 11px 16px !important;
    border-radius: 10px !important;
    box-shadow: 0 4px 20px rgba(0,0,0,.22) !important;
    display: flex !important;
    align-items: center !important;
    gap: 9px !important;
    z-index: 999999 !important;
    font-size: 13px !important; font-weight: 500 !important; line-height: 1.4 !important;
    max-width: 290px !important;
    border-left: 3px solid var(--w-primary) !important;
    animation: wSlideIn .3s var(--w-ease) both !important;
    pointer-events: none !important;
    margin: 0 !important;
}
.wcb2b-toast svg { fill: var(--w-primary) !important; flex-shrink: 0 !important; display: block !important; width: 16px !important; height: 16px !important; }
@keyframes wSlideIn {
    from { opacity: 0; transform: translateX(40px); }
    to   { opacity: 1; transform: translateX(0); }
}

/* ══════════════════════════════════════════════════
   MODAL — uses opacity+visibility NOT display:none
   to prevent Popup Maker from hijacking it
   ══════════════════════════════════════════════════ */
#wcb2b-modal {
    position: fixed !important;
    top: 0 !important; left: 0 !important;
    width: 100vw !important; height: 100vh !important;
    z-index: 999998 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 16px !important;
    margin: 0 !important; border: none !important;
    background: transparent !important;
    /* Hidden by default via opacity/visibility, NOT display:none */
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
    transition: opacity .25s ease, visibility .25s !important;
}
#wcb2b-modal.w-modal-open {
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
}

#wcb2b-modal-overlay {
    position: absolute !important;
    top: 0 !important; left: 0 !important;
    width: 100% !important; height: 100% !important;
    background: rgba(0,0,0,.62) !important;
    backdrop-filter: blur(5px) !important;
    -webkit-backdrop-filter: blur(5px) !important;
    z-index: 0 !important;
    display: block !important;
    margin: 0 !important; padding: 0 !important; border: none !important;
}

#wcb2b-modal-box {
    position: relative !important;
    z-index: 1 !important;
    background: #fff !important;
    width: 100% !important;
    max-width: 460px !important;
    border-radius: 18px !important;
    box-shadow: 0 30px 60px -10px rgba(0,0,0,.32) !important;
    display: flex !important;
    flex-direction: column !important;
    max-height: 90vh !important;
    overflow: hidden !important;
    margin: 0 !important; padding: 0 !important; border: none !important;
    animation: wZoom .3s var(--w-ease) both !important;
    transform-origin: center bottom !important;
}
@keyframes wZoom {
    from { opacity: 0; transform: scale(.93) translateY(14px); }
    to   { opacity: 1; transform: scale(1) translateY(0); }
}

/* Close button */
#wcb2b-modal-close-btn {
    position: absolute !important;
    top: 12px !important; right: 12px !important;
    z-index: 20 !important;
    width: 30px !important; height: 30px !important;
    min-width: 30px !important; min-height: 30px !important;
    border-radius: 50% !important;
    background: rgba(0,0,0,.08) !important;
    color: #6b7280 !important;
    border: none !important; outline: none !important;
    font-size: 20px !important; line-height: 1 !important;
    cursor: pointer !important;
    display: flex !important; align-items: center !important; justify-content: center !important;
    padding: 0 !important; margin: 0 !important;
    transition: background .15s !important;
    -webkit-appearance: none !important;
    box-shadow: none !important;
    text-shadow: none !important;
}
#wcb2b-modal-close-btn:hover { background: rgba(0,0,0,.15) !important; color: #111827 !important; }

/* Brand strip */
#wcb2b-modal-brand {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 90px !important;
    max-height: 110px !important;
    padding: 16px 32px !important;
    flex-shrink: 0 !important;
    overflow: hidden !important;
    margin: 0 !important; border: none !important;
}
#wcb2b-brand-logo {
    display: block !important;
    max-height: 60px !important;
    max-width: 200px !important;
    width: auto !important;
    height: auto !important;
    object-fit: contain !important;
    margin: 0 auto !important;
    border: none !important; box-shadow: none !important;
}
#wcb2b-brand-name {
    color: #fff !important;
    font-weight: 700 !important; font-size: 16px !important; line-height: 1.3 !important;
    display: block !important;
}

/* Steps bar */
#wcb2b-steps-bar {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 12px 24px 0 !important;
    gap: 8px !important;
    flex-shrink: 0 !important;
    background: #fff !important;
    margin: 0 !important; border: none !important;
}
.wcb2b-step {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    gap: 3px !important;
}
.wcb2b-step span {
    width: 26px !important; height: 26px !important;
    border-radius: 50% !important;
    background: #f3f4f6 !important; color: #9ca3af !important;
    font-size: 12px !important; font-weight: 700 !important; line-height: 1 !important;
    display: flex !important; align-items: center !important; justify-content: center !important;
    border: 2px solid #e5e7eb !important;
    transition: all .3s !important;
    margin: 0 !important; padding: 0 !important;
}
.wcb2b-step em {
    font-style: normal !important;
    font-size: 11px !important; font-weight: 600 !important;
    color: #9ca3af !important; line-height: 1.2 !important;
}
.wcb2b-step.wcb2b-step-active span, .wcb2b-step.wcb2b-step-done span {
    background: var(--w-primary) !important;
    border-color: var(--w-primary) !important;
    color: #fff !important;
}
.wcb2b-step.wcb2b-step-done span { background: #d1fae5 !important; border-color: #6ee7b7 !important; color: #065f46 !important; }
.wcb2b-step-line {
    flex: 1 !important; height: 2px !important; min-height: 2px !important;
    background: #e5e7eb !important; max-width: 50px !important;
    margin-bottom: 14px !important;
    border-radius: 0 !important; border: none !important;
}
.wcb2b-step-line-fill {
    height: 2px !important; min-height: 2px !important; width: 0 !important;
    background: var(--w-primary) !important;
    transition: width .35s ease !important;
    border-radius: 0 !important;
}

/* ── STEP CONTAINERS — flex column layout to enable mbody scroll ── */
#wcb2b-step-1 {
    display: flex;           /* NO !important — JS/inline style must be able to hide it */
    flex-direction: column !important;
    flex: 1 !important;
    min-height: 0 !important;
    overflow: hidden !important;
    width: 100% !important;
}
#wcb2b-step-2 {
    display: none;           /* Hidden by default, shown by JS with display:flex */
    flex-direction: column !important;
    flex: 1 !important;
    min-height: 0 !important;
    overflow: hidden !important;
    width: 100% !important;
}
/* When JS shows step-2 it sets display:flex inline */

/* Modal header */
.wcb2b-mheader {
    padding: 14px 22px 10px !important;
    border-bottom: 1px solid #f3f4f6 !important;
    flex-shrink: 0 !important;
    background: #fff !important;
    margin: 0 !important;
}
.wcb2b-mheader h3 {
    margin: 0 !important; padding: 0 !important;
    font-size: 16px !important; font-weight: 700 !important;
    color: #111827 !important; line-height: 1.3 !important;
}
.wcb2b-mheader p {
    margin: 3px 0 0 !important; padding: 0 !important;
    font-size: 13px !important; color: #6b7280 !important; line-height: 1.4 !important;
}

/* Modal body */
.wcb2b-mbody {
    padding: 16px 22px !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    flex: 1 !important;
    -webkit-overflow-scrolling: touch !important;
    overscroll-behavior: contain !important;
    background: #fff !important;
    min-height: 0 !important;
}

/* Cart list */
#wcb2b-cart-container {
    border: 1px solid #e5e7eb !important;
    border-radius: 10px !important;
    overflow: hidden !important;
    width: 100% !important;
    display: block !important;
    margin: 0 !important; padding: 0 !important;
}
.wcb2b-cart-item {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    padding: 11px 14px !important;
    border-bottom: 1px solid #f3f4f6 !important;
    background: #fff !important;
    gap: 10px !important;
    margin: 0 !important;
}
.wcb2b-cart-item:last-child { border-bottom: none !important; }
.wcb2b-cart-item:hover { background: #fafafa !important; }
.wcb2b-item-info { flex: 1 !important; min-width: 0 !important; }
.wcb2b-item-name {
    font-weight: 600 !important; font-size: 13px !important;
    color: #111827 !important; display: block !important;
    white-space: nowrap !important; overflow: hidden !important;
    text-overflow: ellipsis !important; line-height: 1.4 !important;
    margin: 0 !important; padding: 0 !important;
}
.wcb2b-item-sku {
    font-size: 11px !important; color: #9ca3af !important;
    background: #f3f4f6 !important;
    padding: 2px 6px !important; border-radius: 4px !important;
    display: inline-block !important; margin-top: 3px !important;
    line-height: 1.4 !important;
}
.wcb2b-remove-btn {
    display: flex !important; align-items: center !important; justify-content: center !important;
    width: 28px !important; height: 28px !important;
    color: #ef4444 !important; background: #fee2e2 !important;
    padding: 6px !important; border-radius: 6px !important;
    cursor: pointer !important; flex-shrink: 0 !important;
    border: none !important; transition: background .12s !important;
    margin: 0 !important; -webkit-appearance: none !important;
}
.wcb2b-remove-btn:hover { background: #fca5a5 !important; }
.wcb2b-remove-btn svg { width: 14px !important; height: 14px !important; fill: currentColor !important; display: block !important; }

/* Mini summary */
#wcb2b-mini-summary {
    background: #f8fafc !important;
    border: 1px solid #e5e7eb !important;
    border-radius: 8px !important;
    padding: 9px 13px !important;
    margin: 0 0 14px !important;
    font-size: 12px !important; color: #6b7280 !important; line-height: 1.5 !important;
    display: block !important;
}
#wcb2b-mini-summary strong { color: #111827 !important; font-weight: 600 !important; }
#wcb2b-mini-summary:empty { display: none !important; }

/* Form fields */
.wcb2b-field {
    margin: 0 0 13px !important; padding: 0 !important; display: block !important; width: 100% !important;
}
.wcb2b-field label {
    display: block !important;
    font-size: 11px !important; font-weight: 700 !important;
    color: #374151 !important; text-transform: uppercase !important;
    letter-spacing: .06em !important; line-height: 1.3 !important;
    margin: 0 0 5px !important; padding: 0 !important;
}
.wcb2b-field label span { color: #ef4444 !important; }
.wcb2b-input {
    display: block !important; width: 100% !important;
    padding: 10px 12px !important;
    border: 1.5px solid #e5e7eb !important;
    border-radius: 8px !important;
    font-size: 14px !important; color: #111827 !important;
    background: #fff !important; box-shadow: none !important;
    font-family: var(--w-font) !important; line-height: 1.4 !important;
    -webkit-appearance: none !important; appearance: none !important;
    margin: 0 !important; outline: none !important;
    transition: border-color .15s, box-shadow .15s !important;
}
.wcb2b-input:focus {
    border-color: var(--w-primary) !important;
    box-shadow: 0 0 0 3px rgba(37,211,102,.15) !important;
    outline: none !important;
}

/* ── PRIVACY CONSENT CHECKBOX ── */
.wcb2b-field.wcb2b-consent {
    margin: 6px 0 4px !important;
    padding: 12px 13px !important;
    background: #f8fafc !important;
    border: 1.5px solid #e5e7eb !important;
    border-radius: 10px !important;
    transition: border-color .2s, background .2s !important;
}
.wcb2b-field.wcb2b-consent.wcb2b-consent-error {
    border-color: #ef4444 !important;
    background: #fef2f2 !important;
}
.wcb2b-consent-label {
    display: flex !important;
    align-items: flex-start !important;
    gap: 10px !important;
    cursor: pointer !important;
    margin: 0 !important;
    padding: 0 !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    line-height: 1.45 !important;
}
.wcb2b-consent-label input[type="checkbox"] {
    flex-shrink: 0 !important;
    width: 18px !important;
    height: 18px !important;
    min-width: 18px !important;
    min-height: 18px !important;
    margin: 1px 0 0 !important;
    padding: 0 !important;
    cursor: pointer !important;
    accent-color: var(--w-popup, var(--w-primary)) !important;
    border: 1.5px solid #cbd5e1 !important;
    border-radius: 4px !important;
    appearance: auto !important;
    -webkit-appearance: checkbox !important;
}
.wcb2b-consent-text {
    flex: 1 !important;
    display: block !important;
    font-size: 12px !important;
    font-weight: 500 !important;
    color: #374151 !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    line-height: 1.45 !important;
}
.wcb2b-consent-text a {
    color: var(--w-popup, var(--w-primary)) !important;
    text-decoration: underline !important;
    font-weight: 600 !important;
}
.wcb2b-consent-text a:hover { text-decoration: none !important; }
.wcb2b-consent-text span {
    color: #ef4444 !important;
    font-weight: 700 !important;
}

/* Modal footer */
.wcb2b-mfooter {
    padding: 12px 22px 18px !important;
    border-top: 1px solid #f3f4f6 !important;
    display: flex !important; flex-direction: column !important;
    gap: 7px !important; flex-shrink: 0 !important;
    background: #fff !important; margin: 0 !important;
}

/* Primary button */
.wcb2b-btn-ok {
    display: flex !important; align-items: center !important; justify-content: center !important;
    gap: 7px !important; width: 100% !important;
    min-height: 44px !important;
    background: var(--w-primary) !important; color: #fff !important;
    border: none !important; border-radius: 10px !important;
    font-size: 14px !important; font-weight: 700 !important; line-height: 1 !important;
    cursor: pointer !important; padding: 13px 18px !important; margin: 0 !important;
    font-family: var(--w-font) !important;
    box-shadow: 0 3px 12px rgba(37,211,102,.3) !important;
    transition: filter .18s, transform .15s !important;
    -webkit-appearance: none !important; appearance: none !important;
    letter-spacing: 0 !important; text-transform: none !important; text-shadow: none !important;
}
.wcb2b-btn-ok:hover  { filter: brightness(1.08) !important; transform: translateY(-1px) !important; }
.wcb2b-btn-ok:active { transform: translateY(0) !important; }
.wcb2b-btn-ok:disabled { opacity: .6 !important; cursor: not-allowed !important; transform: none !important; }
.wcb2b-btn-ok svg { display: block !important; width: 16px !important; height: 16px !important; fill: currentColor !important; flex-shrink: 0 !important; }
.wcb2b-btn-label  { display: flex !important; align-items: center !important; gap: 7px !important; }
.wcb2b-btn-loading { display: none; align-items: center !important; gap: 7px !important; }

/* Ghost button */
.wcb2b-btn-ghost {
    display: flex !important; align-items: center !important; justify-content: center !important;
    gap: 5px !important; width: 100% !important;
    min-height: 38px !important;
    background: transparent !important; color: #9ca3af !important;
    border: 1.5px solid #e5e7eb !important; border-radius: 8px !important;
    font-size: 13px !important; font-weight: 600 !important; line-height: 1 !important;
    cursor: pointer !important; padding: 10px 16px !important; margin: 0 !important;
    font-family: var(--w-font) !important;
    transition: border-color .15s, color .15s !important;
    -webkit-appearance: none !important; appearance: none !important;
    letter-spacing: 0 !important; text-transform: none !important;
}
.wcb2b-btn-ghost:hover { border-color: #9ca3af !important; color: #374151 !important; background: transparent !important; }
.wcb2b-btn-ghost svg { display: block !important; width: 14px !important; height: 14px !important; fill: currentColor !important; }

/* Spinner */
@keyframes wSpin { to { transform: rotate(360deg); } }
.wcb2b-spin { animation: wSpin .75s linear infinite !important; fill: none !important; }

/* Mobile */
@media (max-width: 768px) {
    #wcb2b-fab-wrap { bottom: 18px !important; right: 16px !important; }
    /* Modal full-screen en mobile para evitar que el form quede fuera del viewport */
    #wcb2b-modal { padding: 0 !important; align-items: stretch !important; justify-content: stretch !important; }
    #wcb2b-modal-box {
        border-radius: 0 !important;
        width: 100vw !important;
        max-width: 100vw !important;
        height: 100vh !important;
        height: 100dvh !important;
        max-height: 100vh !important;
        max-height: 100dvh !important;
        margin: 0 !important;
        animation: wFadeUp .25s var(--w-ease) both !important;
    }
    /* Asegurar que el body sea scrolleable y el footer no se solape */
    #wcb2b-modal-box .wcb2b-mbody { padding: 14px 18px !important; }
    #wcb2b-modal-box .wcb2b-mfooter { padding: 12px 18px 22px !important; }
    #wcb2b-modal-brand { min-height: 70px !important; max-height: 88px !important; padding: 12px 18px !important; }
    #wcb2b-brand-logo { max-height: 44px !important; max-width: 160px !important; }
    @keyframes wFadeUp {
        from { opacity: 0; transform: translateY(20px); }
        to   { opacity: 1; transform: translateY(0); }
    }
}

/* fab-icon-img */
#wcb2b-fab .wcb2b-icon-wa img { width:28px !important; height:28px !important; display:block !important; filter: brightness(0) invert(1); }
#wcb2b-fab .wcb2b-icon-wa svg { width:28px !important; height:28px !important; display:block !important; fill:#fff !important; }

/* hide-on-checkout-cart */
body.woocommerce-cart #wcb2b-fab-wrap,
body.woocommerce-cart #wcb2b-modal,
body.woocommerce-cart #wcb2b-toast-wrap,
body.woocommerce-checkout #wcb2b-fab-wrap,
body.woocommerce-checkout #wcb2b-modal,
body.woocommerce-checkout #wcb2b-toast-wrap,
body.woocommerce-order-received #wcb2b-fab-wrap,
body.woocommerce-order-received #wcb2b-modal,
body.woocommerce-order-received #wcb2b-toast-wrap,
body.woocommerce-account #wcb2b-fab-wrap,
body.woocommerce-account #wcb2b-modal,
body.woocommerce-account #wcb2b-toast-wrap { display: none !important; visibility: hidden !important; }
