/* EcomSaleBooster — Quantity Deals frontend (deal-section cards).
   Visual values come from global "Quantity Deals Styling" via CSS variables
   set inline on .ecomsb-qd; fallbacks keep a sane look when unset. Per-row
   inline styles override these where the merchant set them per tier. */

/* Component-scoped normalization. Popups are body-level siblings, so each root is
   listed explicitly instead of applying a storefront-wide element reset. */
.ecomsb-qd,
.ecomsb-sticky,
.ecomsb-qd-urgency,
.ecomsb-qo-overlay,
.ecomsb-inqpop-overlay,
.ecomsb-giftpop-overlay,
.ecomsb-qd-config-overlay {
    box-sizing: border-box;
}
.ecomsb-qd *, .ecomsb-qd *::before, .ecomsb-qd *::after,
.ecomsb-sticky *, .ecomsb-sticky *::before, .ecomsb-sticky *::after,
.ecomsb-qd-urgency *, .ecomsb-qd-urgency *::before, .ecomsb-qd-urgency *::after,
.ecomsb-qo-overlay *, .ecomsb-qo-overlay *::before, .ecomsb-qo-overlay *::after,
.ecomsb-inqpop-overlay *, .ecomsb-inqpop-overlay *::before, .ecomsb-inqpop-overlay *::after,
.ecomsb-giftpop-overlay *, .ecomsb-giftpop-overlay *::before, .ecomsb-giftpop-overlay *::after,
.ecomsb-qd-config-overlay *, .ecomsb-qd-config-overlay *::before, .ecomsb-qd-config-overlay *::after {
    box-sizing: inherit;
}
.ecomsb-qd :is(button, input, select, textarea),
.ecomsb-sticky :is(button, input, select, textarea),
.ecomsb-qo-overlay :is(button, input, select, textarea),
.ecomsb-inqpop-overlay :is(button, input, select, textarea),
.ecomsb-giftpop-overlay :is(button, input, select, textarea),
.ecomsb-qd-config-overlay :is(button, input, select, textarea) {
    font-family: inherit;
    letter-spacing: normal;
}
.ecomsb-qd button,
.ecomsb-sticky button,
.ecomsb-qo-overlay button,
.ecomsb-inqpop-overlay button,
.ecomsb-giftpop-overlay button,
.ecomsb-qd-config-overlay button {
    -webkit-appearance: none;
    appearance: none;
    margin: 0;
    text-transform: none;
}
.ecomsb-qd {
    margin: 16px 0;
    padding: 16px;
    font-size: 15px;
    line-height: 1.5;
    background: var(--ecomsb-qd-section-bg, transparent);
    border: var(--ecomsb-qd-section-bd-width, 0) var(--ecomsb-qd-section-bd-style, solid) var(--ecomsb-qd-section-bd-color, transparent);
    border-radius: var(--ecomsb-qd-section-radius, 12px);
}
.ecomsb-qd-product-name { margin: 0 0 8px; font-size: var(--ecomsb-qd-pname-size, 18px); font-weight: var(--ecomsb-qd-pname-weight, 800); color: var(--ecomsb-qd-pname-color, var(--ecomsb-qd-title-color, #111827)); text-align: var(--ecomsb-qd-pname-align, center); }
.ecomsb-qd-title { margin: 0 0 4px; font-size: var(--ecomsb-qd-title-size, 18px); font-weight: var(--ecomsb-qd-title-weight, 700); color: var(--ecomsb-qd-title-color, #111827); text-align: var(--ecomsb-qd-title-align, inherit); }
.ecomsb-qd-desc { margin: 0 0 12px; font-size: var(--ecomsb-qd-desc-size, 15px); font-weight: var(--ecomsb-qd-desc-weight, 400); color: var(--ecomsb-qd-desc-color, #4b5563); text-align: var(--ecomsb-qd-desc-align, inherit); }

.ecomsb-qd-deals { display: flex; flex-direction: column; gap: 10px; }
/* Hiding the Before/After row removes its 12px bottom margin. Restore a modest
   section-owned gap so the Product Name never sits against the first deal card. */
html body .ecomsb-qd.ecomsb-qd--price-row-hidden > .ecomsb-qd-deals {
    margin-top: 0;
    padding-top: 12px;
}

.ecomsb-qd-deal {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 14px 16px;
    border: var(--ecomsb-qd-card-bd-width, 2px) var(--ecomsb-qd-card-bd-style, solid) var(--ecomsb-qd-card-bd-color, #e5e7eb);
    border-radius: var(--ecomsb-qd-card-radius, 12px);
    background: var(--ecomsb-qd-card-bg, #fff);
    cursor: pointer;
    transition: border-color .15s ease, box-shadow .15s ease, opacity .15s ease, filter .15s ease;
}
/* Header row: title block on the start side, price block on the end side. */
.ecomsb-qd-deal-top { display: grid; grid-template-columns: minmax(0, 1fr) max-content; align-items: start; gap: 12px; width: 100%; }
.ecomsb-qd-deal-lead { display: flex; align-items: flex-start; gap: 12px; min-width: 0; width: 100%; margin-top: 3px; }
/* Compact cards: drop the per-unit/discount line, tighten to equal top/bottom
   padding, and centre the title+price line vertically. */
.ecomsb-qd-deals--compact .ecomsb-qd-unit { display: none; }
/* Non-compact rows with NO badge can be a touch shorter (unit/discount line kept).
   Badge rows keep their own padding; compact owns its own spacing. */
.ecomsb-qd-deals:not(.ecomsb-qd-deals--compact) .ecomsb-qd-deal:not(.ecomsb-qd-deal--ribbon) { padding-top: 10px; padding-bottom: 10px; }
.ecomsb-qd-deals--compact .ecomsb-qd-deal { padding-top: 10px; padding-bottom: 10px; gap: 6px; }
/* Corner-tab badge still needs top room inside the card so the hanging tab does
   not cover the title/price — restore it for cornertab only (other badges stay tight). */
.ecomsb-qd-deals--compact .ecomsb-qd-deal--bs-cornertab { padding-top: 22px; }
.ecomsb-qd-deal-pricecol { display: flex; flex-direction: column; align-items: flex-end; justify-self: end; gap: 2px; min-width: 88px; max-width: 42%; text-align: end; }
/* Gift + free-shipping span the full card width, below the header. */
.ecomsb-qd-deal-extras { display: flex; flex-direction: column; gap: 8px; width: 100%; }
.ecomsb-qd-deal-extras > .ecomsb-qd-gift, .ecomsb-qd-deal-extras > .ecomsb-qd-ship { margin-top: 0; }
.ecomsb-qd-deal:hover { border-color: var(--ecomsb-qd-glow-color, #c7cdd6); }
/* Slight dim on the non-selected offers ONLY once a card is selected (no default
   selection, so nothing dims on first load). Fade + desaturate, both configurable. */
.ecomsb-qd-deals--dim:has(.ecomsb-qd-deal.is-selected) .ecomsb-qd-deal:not(.is-selected) { opacity: var(--ecomsb-qd-dim-opacity, .82); filter: grayscale(var(--ecomsb-qd-dim-gray, .9)); }
.ecomsb-qd-deals--dim:has(.ecomsb-qd-deal.is-selected) .ecomsb-qd-deal:not(.is-selected):hover { opacity: 1; filter: grayscale(0); }
.ecomsb-qd-deal.is-selected {
    border-color: var(--ecomsb-qd-glow-color, #4f46e5);
    box-shadow: 0 0 calc(var(--ecomsb-qd-glow-size, 3px) * 3) var(--ecomsb-qd-glow-color, rgba(79, 70, 229, .45));
}
.ecomsb-qd-deals--hl-border .ecomsb-qd-deal.is-selected {
    box-shadow: none;
    outline: var(--ecomsb-qd-hl-border-size, 2px) var(--ecomsb-qd-hl-border-style, solid) var(--ecomsb-qd-glow-color, #4f46e5);
    outline-offset: calc(-1 * var(--ecomsb-qd-hl-border-size, 2px));
}
.ecomsb-qd-radio { position: absolute; opacity: 0; pointer-events: none; }

.ecomsb-qd-radio-ui {
    flex: 0 0 auto;
    width: 20px; height: 20px;
    margin-top: 2px;
    border: 2px solid #cbd5e1;
    border-radius: 50%;
    background: #fff;
    position: relative;
}
.ecomsb-qd-deal.is-selected .ecomsb-qd-radio-ui { border-color: var(--ecomsb-qd-price-color, #4f46e5); }
.ecomsb-qd-deal.is-selected .ecomsb-qd-radio-ui::after {
    content: ""; position: absolute; inset: 3px; border-radius: 50%; background: var(--ecomsb-qd-price-color, #4f46e5);
}

.ecomsb-qd-deal-main { display: flex; flex-direction: column; gap: 4px; min-width: 0; width: 100%; }
.ecomsb-qd-deal-head { display: grid; grid-template-columns: max-content minmax(0, 1fr); align-items: start; gap: 8px; width: 100%; }
.ecomsb-qd-deal-titlewrap { display: flex; flex-direction: column; gap: 4px; min-width: 0; text-align: start; }
.ecomsb-qd-deal-title { font-weight: var(--ecomsb-qd-deal-title-weight, 700); font-size: var(--ecomsb-qd-deal-title-size, 16px); line-height: 1.35; text-align: start; overflow-wrap: anywhere; }
.ecomsb-qd-qty-pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: calc((var(--ecomsb-qd-pill-digits, 1) * .75ch) + 2.8em);
    min-width: calc((var(--ecomsb-qd-pill-digits, 1) * .75ch) + 2.8em);
    max-width: none;
    box-sizing: border-box;
    font-weight: 700;
    font-size: var(--ecomsb-qd-pill-size, 12px);
    color: var(--ecomsb-qd-pill-color, #4f46e5);
    background: var(--ecomsb-qd-pill-bg, #eef2ff);
    border: var(--ecomsb-qd-pill-bd-width, 0) solid var(--ecomsb-qd-pill-bd-color, transparent);
    border-radius: var(--ecomsb-qd-pill-radius, 999px);
    padding: 1px 8px;
    line-height: 1.3;
}
.ecomsb-qd-deal-desc { color: var(--ecomsb-qd-offer-desc-color, #6b7280); font-size: var(--ecomsb-qd-odesc-size, 13px); font-weight: var(--ecomsb-qd-odesc-weight, 400); line-height: 1.35; text-align: start; overflow-wrap: anywhere; }

.ecomsb-qd-deal-prices { display: flex; flex-direction: column; align-items: flex-end; justify-content: flex-start; gap: 1px; width: 100%; text-align: end; }
.ecomsb-qd-price-new { font-size: var(--ecomsb-qd-price-size, 17px); font-weight: var(--ecomsb-qd-price-weight, 800); color: var(--ecomsb-qd-price-color, #111827); }
.ecomsb-qd-starting { display: block; width: 100%; font-size: 11px; font-weight: 600; color: #6b7280; line-height: 1.2; margin: 0; text-align: end; }
.ecomsb-qd-price-old { display: block; font-size: var(--ecomsb-qd-oldprice-size, 14px); font-weight: var(--ecomsb-qd-oldprice-weight, 400); color: var(--ecomsb-qd-oldprice-color, #9ca3af); text-align: end; }
.ecomsb-qd-save { font-size: 13px; font-weight: 700; color: var(--ecomsb-qd-discount-percent-color, #16a34a); background: var(--ecomsb-qd-discount-percent-bg, #dcfce7); border-radius: 6px; padding: 2px 8px; }
.ecomsb-qd-unit { display: inline-flex; align-items: center; gap: 6px; flex-wrap: wrap; justify-content: flex-end; font-size: 12px; color: #6b7280; }

/* Free Shipping row rendered on the deal card (icon + title + desc + logos) */
.ecomsb-qd-ship {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 8px;
    padding: 8px 10px;
    background: var(--ecomsb-qd-ship-bg, #fff7ed);
    border: var(--ecomsb-qd-ship-bd-width, 1px) var(--ecomsb-qd-ship-bd-style, solid) var(--ecomsb-qd-ship-bd-color, #f97316);
    border-radius: var(--ecomsb-qd-ship-radius, 10px);
}
.ecomsb-qd-ship-icon { flex: 0 0 auto; line-height: 0; }
.ecomsb-qd-ship-icon .ecomsb-qd-ship-iconimg { width: var(--ecomsb-qd-ship-icon-size, 35px); height: var(--ecomsb-qd-ship-icon-size, 35px); object-fit: contain; }
.ecomsb-qd-ship-body { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.ecomsb-qd-ship-title { color: var(--ecomsb-qd-ship-title-color, #ea580c); font-size: var(--ecomsb-qd-ship-title-size, 16px); font-weight: var(--ecomsb-qd-ship-title-weight, 600); }
.ecomsb-qd-ship-desc { color: var(--ecomsb-qd-ship-desc-color, #111827); font-size: var(--ecomsb-qd-ship-desc-size, 13px); font-weight: var(--ecomsb-qd-ship-desc-weight, 400); }
.ecomsb-qd-ship-logos { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-top: 4px; }
.ecomsb-qd-ship-logo { line-height: 0; display: inline-flex; align-items: center; justify-content: center; background: #fff; border: 1px solid rgba(0, 0, 0, .08); border-radius: 12px; padding: 5px 9px; box-shadow: 0 1px 2px rgba(0, 0, 0, .05); }
.ecomsb-qd-ship-logo .ecomsb-qd-ship-logoimg { height: 15px; width: auto; object-fit: contain; }

.ecomsb-qd-ribbon {
    position: absolute; top: -10px; inset-inline-end: 12px;
    font-size: var(--ecomsb-qd-badge-size, 12px); font-weight: var(--ecomsb-qd-badge-weight, 700);
    color: var(--ecomsb-qd-badge-color, #fff);
    background: var(--ecomsb-qd-badge-bg, #ef4444);
    border-radius: 6px; padding: 2px 10px;
}
/* Badge shapes (per-row "Badge Style"). Base above = Pill. */
.ecomsb-qd-ribbon--tag {
    top: 4px; inset-inline-end: 0; border-radius: 0; padding: 4px 12px 4px 18px;
    clip-path: polygon(14px 0, 100% 0, 100% 100%, 14px 100%, 0 50%);
}
.ecomsb-qd-deal--bs-tag .ecomsb-qd-deal-top { margin-top: 26px; }
[dir="rtl"] .ecomsb-qd-ribbon--tag {
    padding: 4px 18px 4px 12px;
    clip-path: polygon(0 0, calc(100% - 14px) 0, 100% 50%, calc(100% - 14px) 100%, 0 100%);
}
.ecomsb-qd-ribbon--banner {
    top: 0; inset-inline-start: 0; inset-inline-end: 0; text-align: center;
    border-radius: var(--ecomsb-qd-card-radius, 12px) var(--ecomsb-qd-card-radius, 12px) 0 0;
    padding: 4px 0;
}
.ecomsb-qd-deal--bs-banner { padding-top: 58px; }
/* Corner tab: a tab hanging from the top edge — rounded bottom corners with two
   folded ribbon ends at the top corners. */
.ecomsb-qd-ribbon--cornertab {
    top: -9px; inset-inline-start: 0; inset-inline-end: 0;
    margin-inline: auto; width: max-content; transform: none;
    border-radius: 0 0 6px 6px; padding: 6px 12px;
}
.ecomsb-qd-ribbon--cornertab::before,
.ecomsb-qd-ribbon--cornertab::after {
    content: ""; position: absolute; top: 0; width: 0; height: 0;
    border-bottom: 8px solid var(--ecomsb-qd-badge-bg, #ef4444);
    border-bottom-color: color-mix(in srgb, var(--ecomsb-qd-badge-bg, #ef4444) 60%, #000);
}
.ecomsb-qd-ribbon--cornertab::before { right: 100%; border-left: 8px solid transparent; }
.ecomsb-qd-ribbon--cornertab::after { left: 100%; border-right: 8px solid transparent; }
.ecomsb-qd-deal--bs-cornertab { padding-top: 22px; margin-top: 3px; }

.ecomsb-qd-cta { margin-top: 14px; }
.ecomsb-qd button.ecomsb-qd-add {
    -webkit-appearance: none;
    appearance: none;
    width: 100%;
    min-width: 0;
    max-width: 100%;
    box-sizing: border-box;
    display: flex; align-items: center; justify-content: center;
    min-height: var(--ecomsb-qd-btn-height, 48px);
    padding: 8px 22px;
    border: 0; border-radius: 10px;
    background: var(--ecomsb-qd-btn-bg, #111827);
    color: var(--ecomsb-qd-btn-color, #fff);
    box-shadow: none;
    font-family: inherit;
    font-size: var(--ecomsb-qd-btn-text-size, 16px);
    font-weight: var(--ecomsb-qd-btn-text-weight, 700);
    line-height: 1.25;
    letter-spacing: normal;
    text-decoration: none;
    text-shadow: none;
    text-transform: none;
    white-space: normal;
    overflow-wrap: anywhere;
    word-break: normal;
    text-align: center;
    cursor: pointer;
    transition: background .15s ease, color .15s ease, filter .15s ease;
}
.ecomsb-qd button.ecomsb-qd-add:hover,
.ecomsb-qd button.ecomsb-qd-add:focus-visible {
    background: var(--ecomsb-qd-btn-hover-bg, var(--ecomsb-qd-btn-bg, #111827));
    color: var(--ecomsb-qd-btn-hover-color, var(--ecomsb-qd-btn-color, #fff));
}
.ecomsb-qd-cta > a.added_to_cart.wc-forward {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    max-width: 100%;
    min-height: 42px;
    margin: 8px 0 0;
    padding: 9px 18px;
    box-sizing: border-box;
    border: 1px solid currentColor;
    border-radius: 10px;
    background: var(--ecomsb-qd-btn-hover-bg, var(--ecomsb-qd-btn-bg, #111827));
    color: var(--ecomsb-qd-btn-hover-color, var(--ecomsb-qd-btn-color, #fff));
    font-size: 14px;
    font-weight: 700;
    line-height: 1.25;
    text-align: center;
    text-decoration: none;
    float: none;
    clear: both;
    gap: 9px;
    -webkit-appearance: none; appearance: none; font-family: inherit; letter-spacing: normal; text-transform: none; box-shadow: none;
    transition: background .15s ease, color .15s ease, transform .15s ease;
}
.ecomsb-qd-cta > a.added_to_cart.wc-forward::before {
    content: "";
    flex: 0 0 auto;
    width: 18px;
    height: 18px;
    background: currentColor;
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M3 3h2.2l1.2 2.5H20a1 1 0 0 1 .94 1.34l-2.4 6.5a2 2 0 0 1-1.88 1.31H9.1l-.55 1.1H18v2H8.2a2 2 0 0 1-1.79-2.89l.77-1.55L4 5H3V3Zm6 16.5A1.5 1.5 0 1 1 6 19.5a1.5 1.5 0 0 1 3 0Zm10 0a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0Z'/%3E%3C/svg%3E") center / contain no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M3 3h2.2l1.2 2.5H20a1 1 0 0 1 .94 1.34l-2.4 6.5a2 2 0 0 1-1.88 1.31H9.1l-.55 1.1H18v2H8.2a2 2 0 0 1-1.79-2.89l.77-1.55L4 5H3V3Zm6 16.5A1.5 1.5 0 1 1 6 19.5a1.5 1.5 0 0 1 3 0Zm10 0a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0Z'/%3E%3C/svg%3E") center / contain no-repeat;
}
.ecomsb-qd-cta > a.added_to_cart.wc-forward:hover,
.ecomsb-qd-cta > a.added_to_cart.wc-forward:focus-visible {
    background: var(--ecomsb-qd-btn-bg, #111827);
    color: var(--ecomsb-qd-btn-color, #fff);
    transform: translateY(-1px);
    outline: none;
}
.ecomsb-qd button.ecomsb-qd-add--buynow { gap: 9px; }
.ecomsb-qd-add-icon { flex: 0 0 auto; width: 18px; height: 18px; }
.ecomsb-qd-add-text { flex: 0 1 auto; min-width: 0; max-width: 100%; white-space: normal; overflow-wrap: anywhere; word-break: normal; text-align: center; }
.ecomsb-qd button.ecomsb-qd-add.is-loading {
    pointer-events: none;
    cursor: wait;
    opacity: .82;
    animation: none;
}
.ecomsb-qd button.ecomsb-qd-add.is-loading .ecomsb-qd-add-icon { display: none; }
.ecomsb-qd button.ecomsb-qd-add.is-loading::before {
    content: "";
    width: 18px;
    height: 18px;
    flex: 0 0 18px;
    border: 2px solid currentColor;
    border-inline-end-color: transparent;
    border-radius: 50%;
    animation: ecomsb-qd-add-spin .7s linear infinite;
}
@keyframes ecomsb-qd-add-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) {
    .ecomsb-qd button.ecomsb-qd-add.is-loading::before { animation-duration: 1.4s; }
}

/* Variable products: per-piece variation pickers */
.ecomsb-qd-variants { margin-top: 6px; }
.ecomsb-qd + .ecomsb-qd-acc { margin-bottom: 16px; }
.ecomsb-qd-piece { margin-top: 14px; }
.ecomsb-qd-piece-title { font-weight: 800; text-align: center; margin-bottom: 10px; color: #111827; }
.ecomsb-qd-variant-grid {
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.ecomsb-qd-piece-cards {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 8px;
}
.ecomsb-qd-variant-card {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    flex: 0 0 calc((100% - 16px) / 3);
    max-width: calc((100% - 16px) / 3);
    box-sizing: border-box;
    padding: 8px;
    border: 2px solid var(--ecomsb-qd-card-bd-color, #e5e7eb);
    border-radius: 10px;
    background: #fff;
    cursor: pointer;
    transition: border-color .15s ease, box-shadow .15s ease, opacity .15s ease, filter .15s ease;
}
.ecomsb-qd-variant-card:hover { border-color: var(--ecomsb-qd-accent-color, #16a34a); }
.ecomsb-qd-variant-card.is-selected { border-color: var(--ecomsb-qd-accent-color, #16a34a); }
/* Only a real card selection dims its siblings. Dropdown placeholder options also
   carry .is-selected, so :has(.is-selected) incorrectly dimmed every card before
   the shopper selected a variation. */
.ecomsb-qd-piece.has-selection .ecomsb-qd-variant-card:not(.is-selected) { opacity: .5; filter: grayscale(.6); }
.ecomsb-qd-piece-cards[data-card-count="4"] .ecomsb-qd-variant-card {
    flex-basis: calc((100% - 8px) / 2);
    max-width: calc((100% - 8px) / 2);
}
@media (max-width: 600px) {
    .ecomsb-qd-variant-card { flex-basis: calc((100% - 16px) / 3); max-width: calc((100% - 16px) / 3); }
    .ecomsb-qd-piece-cards[data-card-count="4"] .ecomsb-qd-variant-card {
        flex-basis: calc((100% - 8px) / 2);
        max-width: calc((100% - 8px) / 2);
    }
}
.ecomsb-qd-variant-card input { position: absolute; opacity: 0; pointer-events: none; }
.ecomsb-qd-variant-card img { width: 100%; height: 110px; object-fit: cover; border-radius: 8px; }
.ecomsb-qd-variant-noimg {
    width: 100%; height: 110px;
    display: flex; align-items: center; justify-content: center;
    font-size: 28px; background: #f3f4f6; border-radius: 8px;
}
.ecomsb-qd-variant-cap { font-size: 14px; font-weight: 700; text-align: center; line-height: 1.3; color: #374151; }
/* Two-click model: a card's dropdown is interactive only while that card is the
   selected one. Before any selection (and on dimmed cards) the dropdown ignores
   pointer events, so the click selects the card first, then a second click opens
   the dropdown. */
.ecomsb-qd-piece:not(.has-selection) .ecomsb-qd-variant-select,
.ecomsb-qd-piece.has-selection .ecomsb-qd-variant-card:not(.is-selected) .ecomsb-qd-variant-select {
    pointer-events: none;
}
.ecomsb-qd-variant-select { position: relative; display: flex; flex-direction: column; gap: 4px; width: 100%; margin-top: 4px; }
.ecomsb-qd-vs-label { font-size: 12px; font-weight: 700; color: #111827; text-align: center; line-height: 1.2; }
.ecomsb-qd-vs-req { color: #dc2626; }
.ecomsb-qd-vs-control {
    display: flex;
    align-items: center;
    gap: 6px;
    width: 100%;
    box-sizing: border-box;
    min-height: 32px;
    padding: 4px 10px;
    border: 1px solid var(--ecomsb-qd-card-bd-color, #d1d5db);
    border-radius: 8px;
    background: #fff;
    font: inherit;
    color: inherit;
    cursor: pointer;
    transition: border-color .15s ease, box-shadow .15s ease;
}
.ecomsb-qd-vs-control:hover { border-color: #9ca3af; }
.ecomsb-qd-variant-select.is-open .ecomsb-qd-vs-control {
    border-color: var(--ecomsb-qd-glow-color, #4f46e5);
    box-shadow: 0 0 0 3px rgba(79, 70, 229, .15);
}
.ecomsb-qd-vs-text {
    flex: 1;
    min-width: 0;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.2;
    color: #374151;
    text-align: center;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    word-break: break-word;
}
.ecomsb-qd-vs-arrow { flex: 0 0 auto; font-size: 13px; color: #374151; transition: transform .15s ease; }
.ecomsb-qd-variant-select.is-open .ecomsb-qd-vs-arrow { transform: rotate(180deg); }
.ecomsb-qd-vs-list {
    position: absolute;
    top: calc(100% + 4px);
    left: 50%;
    transform: translateX(-50%);
    z-index: 20;
    min-width: 100%;
    width: max-content;
    max-width: 240px;
    margin: 0;
    padding: 3px;
    list-style: none;
    background: #fff;
    border: 1px solid var(--ecomsb-qd-card-bd-color, #d1d5db);
    border-radius: 10px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, .12);
    max-height: 240px;
    overflow-y: auto;
    font: inherit;
}
.ecomsb-qd-vs-list[hidden] { display: none; }
.ecomsb-qd-vs-opt {
    padding: 6px 12px;
    border-radius: 7px;
    text-align: center;
    white-space: nowrap;
    font-size: 13px;
    font-weight: 600;
    color: #374151;
    cursor: pointer;
    transition: background .12s ease, color .12s ease;
}
.ecomsb-qd-vs-opt:hover { background: #374151; color: #fff; }
.ecomsb-qd-variant-card:has(.ecomsb-qd-variant-select.is-open) { z-index: 30; }

/* Price Row (Before / After) box above the cards */
.ecomsb-qd-price-row {
    display: flex;
    align-items: stretch;
    justify-content: center;
    margin: 0 0 12px;
    padding: 10px 14px;
    background: var(--ecomsb-qd-prow-bg, #fef2f2);
    border: var(--ecomsb-qd-prow-bd-width, 1px) var(--ecomsb-qd-prow-bd-style, dashed) var(--ecomsb-qd-prow-bd-color, #dc2626);
    border-radius: var(--ecomsb-qd-prow-radius, 10px);
}
.ecomsb-qd-prow-before, .ecomsb-qd-prow-after {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
    padding: 0 24px;
}
.ecomsb-qd-prow-after { border-inline-start: 1px solid var(--ecomsb-qd-prow-bd-color, rgba(0, 0, 0, .15)); }
.ecomsb-qd-prow-lbl { white-space: nowrap; overflow-wrap: normal; word-break: normal; }
.ecomsb-qd-prow-before .ecomsb-qd-prow-lbl { color: var(--ecomsb-qd-pbefore-lbl-color, #627089); font-size: var(--ecomsb-qd-pbefore-lbl-size, 15px); font-weight: var(--ecomsb-qd-pbefore-lbl-weight, 600); }
.ecomsb-qd-prow-before .ecomsb-qd-prow-val { color: var(--ecomsb-qd-pbefore-val-color, #627089); font-size: var(--ecomsb-qd-pbefore-val-size, 15px); font-weight: var(--ecomsb-qd-pbefore-val-weight, 700); text-decoration: line-through; }
.ecomsb-qd-prow-after .ecomsb-qd-prow-lbl { color: var(--ecomsb-qd-pafter-lbl-color, #000); font-size: var(--ecomsb-qd-pafter-lbl-size, 18px); font-weight: var(--ecomsb-qd-pafter-lbl-weight, 900); }
.ecomsb-qd-prow-after .ecomsb-qd-prow-val { color: var(--ecomsb-qd-pafter-val-color, #000); font-size: var(--ecomsb-qd-pafter-val-size, 18px); font-weight: var(--ecomsb-qd-pafter-val-weight, 900); }

/* Free-gift box rendered on the deal card (icon + label/name | product image) */
.ecomsb-qd-gift {
    display: block;
    margin-top: 8px;
    padding: 8px 10px;
    background: var(--ecomsb-qd-gift-bg, #ecfdf5);
    border: var(--ecomsb-qd-gift-bd-width, 1px) var(--ecomsb-qd-gift-bd-style, solid) var(--ecomsb-qd-gift-bd-color, #a7f3d0);
    border-radius: var(--ecomsb-qd-gift-radius, 10px);
}
.ecomsb-qd-gift-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}
.ecomsb-qd-gift-row + .ecomsb-qd-gift-row { margin-top: 8px; }
.ecomsb-qd-gift-main { display: flex; align-items: center; gap: 10px; min-width: 0; flex: 1; }
.ecomsb-qd-gift-icon { flex: 0 0 auto; line-height: 0; }
.ecomsb-qd-gift-icon .ecomsb-qd-gift-iconimg { width: var(--ecomsb-qd-gift-icon-size, 35px); height: var(--ecomsb-qd-gift-icon-size, 35px); max-width: var(--ecomsb-qd-gift-icon-size, 35px); object-fit: contain; }
.ecomsb-qd-gift-info { display: flex; flex-direction: column; gap: 0; min-width: 0; }
.ecomsb-qd-gift-prefix { color: var(--ecomsb-qd-glabel-color, #047857); font-weight: var(--ecomsb-qd-glabel-weight, 700); font-size: var(--ecomsb-qd-glabel-size, 16px); }
.ecomsb-qd-gift-name { color: var(--ecomsb-qd-gname-color, #065f46); font-weight: var(--ecomsb-qd-gname-weight, 500); font-size: var(--ecomsb-qd-gname-size, 13px); }
.ecomsb-qd-gift-nameline { display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px; min-width: 0; }
.ecomsb-qd-gift-qty { color: var(--ecomsb-qd-gname-color, #065f46); font-weight: 700; font-size: var(--ecomsb-qd-gname-size, 13px); }
.ecomsb-qd-gift-img { flex: 0 0 auto; line-height: 0; position: relative; overflow: hidden; border-radius: 8px; width: var(--ecomsb-qd-gift-img-size, 60px); height: var(--ecomsb-qd-gift-img-size, 60px); }
.ecomsb-qd-gift-img .ecomsb-qd-gift-photo { width: var(--ecomsb-qd-gift-img-size, 60px); height: var(--ecomsb-qd-gift-img-size, 60px); max-width: var(--ecomsb-qd-gift-img-size, 60px); object-fit: contain; border-radius: 8px; background: #fff; display: block; }
.ecomsb-qd-gift-ribbon { position: absolute; inset: 0; pointer-events: none; background-repeat: no-repeat; background-position: top left; background-size: 100% 100%; }
/* Gift-choice popup (asks the shopper which variation) */
.ecomsb-giftpop-overlay { position: fixed; inset: 0; z-index: 100000; display: flex; align-items: center; justify-content: center; padding: 16px; background: rgba(0, 0, 0, .55); }
/* While either Gift popup is open the background document is scroll-locked and
   the main Quantity Deals Sticky Add to Cart is suppressed (hidden + inert) so
   it can never appear behind the modal. Specificity beats the base .ecomsb-sticky
   rule on its own. */
html.ecomsb-giftpop-open, html.ecomsb-giftpop-open body { overflow: hidden; overscroll-behavior: none; }
html.ecomsb-giftpop-open .ecomsb-sticky { visibility: hidden; pointer-events: none; }
.ecomsb-giftpop { position: relative; width: 100%; max-width: 480px; max-height: 86vh; min-height: 0; overflow: hidden; display: grid; grid-template-rows: auto minmax(0, 1fr) auto; background: #fff; border-radius: 14px; padding: 0; box-shadow: 0 20px 60px rgba(0, 0, 0, .3); }
.ecomsb-giftpop-header { position: relative; z-index: 70; display: grid; grid-template-columns: 34px minmax(0, 1fr) 34px; align-items: center; gap: 8px; min-height: 58px; padding: 10px 14px; background: #fff; border-bottom: 1px solid #e5e7eb; border-radius: 14px 14px 0 0; box-shadow: 0 5px 14px rgba(15, 23, 42, .05); }
.ecomsb-giftpop-body { min-height: 0; overflow-y: auto; overflow-x: visible; overscroll-behavior: contain; padding: 18px 22px 24px; border-radius: 0; }
.ecomsb-giftpop-x { grid-column: 3; justify-self: end; position: relative; inset: auto; width: 34px; height: 34px; min-width: 34px; min-height: 34px; padding: 0; border: 0; border-radius: 50%; background: transparent; font-size: 26px; line-height: 1; color: #6b7280; cursor: pointer; }
.ecomsb-giftpop-title { grid-column: 2; min-width: 0; margin: 0; font-size: 18px; font-weight: 800; line-height: 1.3; color: #111827; text-align: center; overflow-wrap: anywhere; }
.ecomsb-giftpop-sec + .ecomsb-giftpop-sec { margin-top: 16px; }
.ecomsb-giftpop-sec-name { font-weight: 600; color: #374151; margin-bottom: 8px; text-align: center; }
.ecomsb-giftpop-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(110px, 132px)); gap: 10px; justify-content: center; }
.ecomsb-giftpop-sec-config { margin-top: 14px; padding-top: 12px; border-top: 1px solid #e5e7eb; }
.ecomsb-giftpop-sec-hero { margin-bottom: 12px; }
.ecomsb-giftpop-sec-status { width: 100%; margin-top: 10px; font-size: 13px; line-height: 1.4; text-align: center; }
.ecomsb-giftpop-sec-status.is-loading { color: #6b7280; -webkit-text-fill-color: #6b7280; }
.ecomsb-giftpop-sec-status.is-error { color: #b91c1c; -webkit-text-fill-color: #b91c1c; }
.ecomsb-giftpop-card { display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 8px; border: 2px solid #e5e7eb; border-radius: 10px; background: #fff; cursor: pointer; text-align: center; }
.ecomsb-giftpop-card:hover { border-color: #c7cdd6; }
.ecomsb-giftpop-card.is-selected { border-color: var(--ecomsb-qd-accent-color, #16a34a); background: #f0fdf4; }
.ecomsb-giftpop-card-img { width: 100%; line-height: 0; overflow: hidden; border-radius: 8px; }
.ecomsb-giftpop-card-img img { width: 100%; height: 120px; object-fit: cover; display: block; border-radius: 8px; }
.ecomsb-giftpop-card-label { font-size: 13px; color: #374151; line-height: 1.3; }
.ecomsb-giftpop-err { color: #dc2626; font-size: 13px; margin-top: 12px; }
.ecomsb-giftpop-card--grouped { justify-content: flex-start; }
.ecomsb-giftpop-sec.has-selection .ecomsb-giftpop-card:not(.is-selected) { opacity: .55; filter: grayscale(.45); }
.ecomsb-giftpop-card:not(.is-selected) .ecomsb-giftpop-variant-select { pointer-events: none; }
.ecomsb-giftpop-card .ecomsb-giftpop-variant-select { width: 100%; margin-top: 4px; }
.ecomsb-giftpop-card .ecomsb-qd-vs-control { min-height: 34px; }
.ecomsb-giftpop-card .ecomsb-qd-vs-list {
    z-index: 100003;
    min-width: 0;
    box-sizing: border-box;
    overflow-x: hidden;
}
.ecomsb-giftpop-card .ecomsb-qd-vs-opt {
    white-space: normal;
    overflow-wrap: anywhere;
}
.ecomsb-giftpop-card:has(.ecomsb-giftpop-variant-select.is-open) { position: relative; z-index: 90; }
.ecomsb-giftpop-confirm { margin-top: 16px; width: 100%; padding: 12px; border: 0; border-radius: 10px; background: var(--ecomsb-qd-accent-color, #16a34a); color: #fff; font-size: 15px; font-weight: 700; cursor: pointer; }
.ecomsb-giftpop-confirm:hover,
.ecomsb-giftpop-confirm:focus-visible { background: var(--ecomsb-qd-accent-hover-color, var(--ecomsb-qd-accent-color, #15803d)); }
.ecomsb-giftpop-footer { position: relative; z-index: 60; flex: 0 0 auto; margin: 0; padding: 12px 22px 14px; background: #fff; border-top: 1px solid #e5e7eb; border-radius: 0 0 14px 14px; box-shadow: 0 -6px 14px rgba(0, 0, 0, .06); }
.ecomsb-giftpop-footer .ecomsb-giftpop-confirm { margin-top: 0; }

/* Mobile typography (767px and narrower) — falls back to desktop vars when unset */
@media (max-width: 767px) {
    .ecomsb-qd-title       { font-size: var(--ecomsb-qd-title-size-m, var(--ecomsb-qd-title-size, 18px)); font-weight: var(--ecomsb-qd-title-weight-m, var(--ecomsb-qd-title-weight, 700)); text-align: var(--ecomsb-qd-title-align-m, var(--ecomsb-qd-title-align, inherit)); }
    .ecomsb-qd-desc        { font-size: var(--ecomsb-qd-desc-size-m, var(--ecomsb-qd-desc-size, 15px)); font-weight: var(--ecomsb-qd-desc-weight-m, var(--ecomsb-qd-desc-weight, 400)); text-align: var(--ecomsb-qd-desc-align-m, var(--ecomsb-qd-desc-align, inherit)); }
    .ecomsb-qd-product-name{ font-size: var(--ecomsb-qd-pname-size-m, var(--ecomsb-qd-pname-size, 18px)); font-weight: var(--ecomsb-qd-pname-weight-m, var(--ecomsb-qd-pname-weight, 800)); text-align: var(--ecomsb-qd-pname-align-m, var(--ecomsb-qd-pname-align, center)); }
    .ecomsb-qd-deal-title  { font-size: var(--ecomsb-qd-deal-title-size-m, var(--ecomsb-qd-deal-title-size, 16px)); font-weight: var(--ecomsb-qd-deal-title-weight-m, var(--ecomsb-qd-deal-title-weight, 700)); }
    .ecomsb-qd-ribbon      { font-size: var(--ecomsb-qd-badge-size-m, var(--ecomsb-qd-badge-size, 12px)); font-weight: var(--ecomsb-qd-badge-weight-m, var(--ecomsb-qd-badge-weight, 700)); }
    .ecomsb-qd-deal-desc   { font-size: var(--ecomsb-qd-odesc-size-m, var(--ecomsb-qd-odesc-size, 13px)); font-weight: var(--ecomsb-qd-odesc-weight-m, var(--ecomsb-qd-odesc-weight, 400)); }
    .ecomsb-qd-price-old   { font-size: var(--ecomsb-qd-oldprice-size-m, var(--ecomsb-qd-oldprice-size, 14px)); font-weight: var(--ecomsb-qd-oldprice-weight-m, var(--ecomsb-qd-oldprice-weight, 400)); }
    .ecomsb-qd-price-new   { font-size: var(--ecomsb-qd-price-size-m, var(--ecomsb-qd-price-size, 17px)); font-weight: var(--ecomsb-qd-price-weight-m, var(--ecomsb-qd-price-weight, 800)); }
    .ecomsb-qd-starting    { text-align: end; }
    .ecomsb-qd-deal-prices { flex-direction: column; flex-wrap: nowrap; align-items: flex-end; justify-content: flex-start; gap: 1px; }
    .ecomsb-qd-cta         { margin-top: 14px; }
    .ecomsb-qd button.ecomsb-qd-add { justify-content: center; min-height: var(--ecomsb-qd-btn-height-m, var(--ecomsb-qd-btn-height, 48px)); padding-inline: 14px; font-size: var(--ecomsb-qd-btn-text-size-m, var(--ecomsb-qd-btn-text-size, 16px)); font-weight: var(--ecomsb-qd-btn-text-weight-m, var(--ecomsb-qd-btn-text-weight, 700)); }
    .ecomsb-qd-gift-prefix { font-size: var(--ecomsb-qd-glabel-size-m, var(--ecomsb-qd-glabel-size, 16px)); font-weight: var(--ecomsb-qd-glabel-weight-m, var(--ecomsb-qd-glabel-weight, 700)); color: var(--ecomsb-qd-glabel-color-m, var(--ecomsb-qd-glabel-color, #047857)); }
    .ecomsb-qd-gift-name   { font-size: var(--ecomsb-qd-gname-size-m, var(--ecomsb-qd-gname-size, 13px)); font-weight: var(--ecomsb-qd-gname-weight-m, var(--ecomsb-qd-gname-weight, 500)); color: var(--ecomsb-qd-gname-color-m, var(--ecomsb-qd-gname-color, #065f46)); }
    .ecomsb-qd-ship-title  { font-size: var(--ecomsb-qd-ship-title-size-m, var(--ecomsb-qd-ship-title-size, 16px)); font-weight: var(--ecomsb-qd-ship-title-weight-m, var(--ecomsb-qd-ship-title-weight, 600)); color: var(--ecomsb-qd-ship-title-color-m, var(--ecomsb-qd-ship-title-color, #ea580c)); }
    .ecomsb-qd-ship-desc   { font-size: var(--ecomsb-qd-ship-desc-size-m, var(--ecomsb-qd-ship-desc-size, 13px)); font-weight: var(--ecomsb-qd-ship-desc-weight-m, var(--ecomsb-qd-ship-desc-weight, 400)); color: var(--ecomsb-qd-ship-desc-color-m, var(--ecomsb-qd-ship-desc-color, #111827)); }
}

/* HTML under button + footer HTML */
.ecomsb-qd-note { margin-top: 10px; font-size: 13px; color: #4b5563; }
.ecomsb-qd-footer-html { margin-top: 12px; font-size: 13px; color: #4b5563; }

/* Add-to-cart button animations (Button Animation setting) */
.ecomsb-qd button.ecomsb-qd-add--pulse  { animation: ecomsb-qd-pulse 1.6s ease-in-out infinite; }
.ecomsb-qd button.ecomsb-qd-add--bounce { animation: ecomsb-qd-bounce 1.6s ease-in-out infinite; }
.ecomsb-qd button.ecomsb-qd-add--shake  { animation: ecomsb-qd-shake 2.4s ease-in-out infinite; }
.ecomsb-qd button.ecomsb-qd-add--glow {
    position: relative;
    isolation: isolate;
    overflow: visible;
}
.ecomsb-qd button.ecomsb-qd-add--glow::after {
    content: "";
    position: absolute;
    inset: 0;
    border: 2px solid var(--ecomsb-qd-btn-bg, #111827);
    border-radius: inherit;
    background: transparent;
    pointer-events: none;
    animation: ecomsb-qd-btnglow 2.2s ease-out infinite;
    will-change: inset, opacity;
}
.ecomsb-qd button.ecomsb-qd-add--glow:disabled::after,
.ecomsb-qd button.ecomsb-qd-add--glow.is-loading::after { display: none; animation: none; }
@keyframes ecomsb-qd-pulse  { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.04); } }
@keyframes ecomsb-qd-bounce { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-4px); } }
@keyframes ecomsb-qd-shake  { 0%, 92%, 100% { transform: translateX(0); } 94% { transform: translateX(-3px); } 96% { transform: translateX(3px); } 98% { transform: translateX(-3px); } }
@keyframes ecomsb-qd-btnglow {
    0% { inset: -1px; opacity: .72; }
    52% { inset: -6px; opacity: 0; }
    100% { inset: -6px; opacity: 0; }
}
@media (prefers-reduced-motion: reduce) {
    .ecomsb-qd button.ecomsb-qd-add--pulse, .ecomsb-qd button.ecomsb-qd-add--bounce, .ecomsb-qd button.ecomsb-qd-add--shake { animation: none; }
    .ecomsb-qd button.ecomsb-qd-add--glow::after { animation: none; display: none; }
}

/* Quantity Deals Info Accordion */
.ecomsb-qd-acc {
    margin-top: 14px;
    background: var(--ecomsb-qd-acc-section-bg, #fff);
    border: var(--ecomsb-qd-acc-bd-width, 1px) solid var(--ecomsb-qd-acc-bd-color, #d1d5db);
    border-radius: var(--ecomsb-qd-acc-radius, 12px);
    overflow: hidden;
}
.ecomsb-qd-acc-section-title {
    margin: 0;
    padding: 16px 14px;
    color: var(--ecomsb-qd-acc-section-title-color, #111827);
    font-size: var(--ecomsb-qd-acc-section-title-size, 24px);
    font-weight: var(--ecomsb-qd-acc-section-title-weight, 700);
    line-height: 1.3;
    text-align: var(--ecomsb-qd-acc-section-title-align, start);
}
.ecomsb-qd-acc-section-title + .ecomsb-qd-acc-item {
    border-top: var(--ecomsb-qd-acc-bd-width, 1px) solid var(--ecomsb-qd-acc-bd-color, #d1d5db);
}
.ecomsb-qd-acc-item + .ecomsb-qd-acc-item { border-top: var(--ecomsb-qd-acc-bd-width, 1px) solid var(--ecomsb-qd-acc-bd-color, #d1d5db); }
.ecomsb-qd-acc-head {
    display: grid; grid-template-columns: minmax(0, 1fr) 16px; align-items: center; gap: 10px; width: 100%;
    direction: var(--ecomsb-qd-acc-head-dir, inherit);
    padding: var(--ecomsb-qd-acc-head-pad-y, 15px) 14px;
    background: var(--ecomsb-qd-acc-head-bg, #fff);
    border: 0; cursor: pointer; text-align: var(--ecomsb-qd-acc-title-align, start);
}
.ecomsb-qd-acc-item.is-open .ecomsb-qd-acc-head { border-bottom: 1px solid var(--ecomsb-qd-acc-bd-color, #d1d5db); }
.ecomsb-qd-acc-title-group {
    min-width: 0; display: flex; align-items: center; gap: 10px;
    justify-content: var(--ecomsb-qd-acc-title-justify, flex-start);
}
.ecomsb-qd-acc-icon { flex: 0 0 auto; line-height: 0; }
.ecomsb-qd-acc-icon .ecomsb-qd-acc-iconimg { width: 24px; height: 24px; object-fit: contain; }
.ecomsb-qd-acc-title {
    min-width: 0;
    color: var(--ecomsb-qd-acc-title-color, #111827);
    font-size: var(--ecomsb-qd-acc-title-size, 16px);
    font-weight: var(--ecomsb-qd-acc-title-weight, 700);
    text-align: var(--ecomsb-qd-acc-title-align, start);
}
.ecomsb-qd-acc-toggle { flex: 0 0 auto; width: 16px; height: 16px; position: relative; transition: transform .2s ease; color: var(--ecomsb-qd-acc-title-color, #111827); }
/* chevron */
.ecomsb-qd-acc--chevron .ecomsb-qd-acc-toggle::before { content: ""; position: absolute; top: 3px; left: 3px; width: 8px; height: 8px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); }
.ecomsb-qd-acc--chevron .ecomsb-qd-acc-item.is-open .ecomsb-qd-acc-toggle { transform: rotate(180deg); }
/* arrow */
.ecomsb-qd-acc--arrow .ecomsb-qd-acc-toggle::before { content: ""; position: absolute; top: 4px; left: 5px; width: 7px; height: 7px; border-top: 2px solid currentColor; border-right: 2px solid currentColor; transform: rotate(45deg); }
.ecomsb-qd-acc--arrow .ecomsb-qd-acc-item.is-open .ecomsb-qd-acc-toggle { transform: rotate(135deg); }
/* plus / minus */
.ecomsb-qd-acc--plus .ecomsb-qd-acc-toggle::before,
.ecomsb-qd-acc--plus .ecomsb-qd-acc-toggle::after { content: ""; position: absolute; background: currentColor; transition: opacity .2s ease; }
.ecomsb-qd-acc--plus .ecomsb-qd-acc-toggle::before { top: 7px; left: 1px; width: 14px; height: 2px; }
.ecomsb-qd-acc--plus .ecomsb-qd-acc-toggle::after { left: 7px; top: 1px; width: 2px; height: 14px; }
.ecomsb-qd-acc--plus .ecomsb-qd-acc-item.is-open .ecomsb-qd-acc-toggle::after { opacity: 0; }
.ecomsb-qd-acc-panel { overflow: hidden; max-height: 0; transition: max-height .25s ease; background: var(--ecomsb-qd-acc-body-bg, #fff); }
/* Items rendered open server-side must be visible on first paint (before JS sets
   the exact max-height) so the default-open tab doesn't flash open after load. */
.ecomsb-qd-acc-item.is-open .ecomsb-qd-acc-panel { max-height: 2000px; }
.ecomsb-qd-acc-panel-inner {
    direction: var(--ecomsb-qd-acc-body-dir, inherit);
    padding: 12px 14px 14px;
    color: var(--ecomsb-qd-acc-body-color, #4b5563);
    font-size: var(--ecomsb-qd-acc-body-size, 14px);
    font-weight: var(--ecomsb-qd-acc-body-weight, 400);
    text-align: var(--ecomsb-qd-acc-body-align, start);
}
/* Normalize merchant body HTML: drop the browser's big one-sided list indent
   (which left RTL text glued to the edge) and use a small logical inset so the
   bullets sit just inside the start edge in both LTR and RTL. */
.ecomsb-qd-acc-panel-inner :where(ul, ol) { margin: 0; padding-inline-start: 1.4em; padding-inline-end: 0; }
.ecomsb-qd-acc-panel-inner :where(p) { margin: 0; }
.ecomsb-qd-acc-panel-inner li { margin: 2px 0; }

/* Inquiry / Quotation card (sits as the last card after the deals) */
.ecomsb-qd-inquiry {
    display: flex; align-items: center; justify-content: space-between; gap: 14px;
    margin-top: 10px;
    padding: 16px 18px;
    border: 1px dashed var(--ecomsb-qd-card-bd-color, #cbd5e1);
    border-radius: var(--ecomsb-qd-card-radius, 12px);
    background: #f8fafc;
}
.ecomsb-qd-inquiry-info { min-width: 0; }
.ecomsb-qd-inquiry-title { font-size: 16px; font-weight: 700; color: #111827; }
.ecomsb-qd-inquiry-desc { margin-top: 2px; font-size: 13px; color: #4b5563; }
.ecomsb-qd-inquiry-btn {
    flex: 0 0 auto;
    display: inline-flex; align-items: center; justify-content: center; gap: 8px;
    padding: 12px 20px;
    border: 0; border-radius: 10px; font-size: 14px; font-weight: 700;
    color: #fff; cursor: pointer; text-decoration: none;
}
.ecomsb-qd-inquiry-btn--whatsapp { background: #128c7e; }
.ecomsb-qd-inquiry-btn--email { background: #2563eb; }
.ecomsb-qd-inquiry-btn:hover { filter: brightness(1.08); color: #fff; }
.ecomsb-qd-inq-wa { width: 20px; height: 20px; flex: 0 0 auto; background: url(../../img/qda/whatsapp.png?ecomsb-r26) center/contain no-repeat; }
.ecomsb-qd-inq-mail { width: 20px; height: 20px; flex: 0 0 auto; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='4' width='20' height='16' rx='2'/%3E%3Cpath d='m2 6 10 7L22 6'/%3E%3C/svg%3E") center/contain no-repeat; }
@media (max-width: 600px) { .ecomsb-qd-inquiry { flex-direction: column; align-items: stretch; text-align: start; } .ecomsb-qd-inquiry-btn { width: 100%; } }

/* Inquiry popup (Name + optional Phone/Email + Required Quantity + Notes) */
.ecomsb-inqpop-overlay { position: fixed; inset: 0; z-index: 100000; display: flex; align-items: center; justify-content: center; padding: 16px; background: rgba(0,0,0,.55); }
.ecomsb-inqpop { position: relative; width: 100%; max-width: 460px; background: #fff; border-radius: 16px; padding: 24px; box-shadow: 0 20px 60px rgba(0,0,0,.3); }
.ecomsb-inqpop-x { position: absolute; top: 12px; inset-inline-end: 12px; width: 30px; height: 30px; border: 0; border-radius: 50%; background: #ef4444; color: #fff; font-size: 17px; line-height: 1; cursor: pointer; }
.ecomsb-inqpop-x:hover { filter: brightness(1.08); }
.ecomsb-inqpop-title { font-size: 18px; font-weight: 800; color: #111827; padding-inline-end: 26px; }
.ecomsb-inqpop-desc { margin-top: 2px; font-size: 13px; color: #6b7280; }
.ecomsb-inqpop-field { margin-top: 16px; }
.ecomsb-inqpop-label { display: block; font-weight: 700; font-size: 14px; color: #374151; margin-bottom: 6px; }
.ecomsb-inqpop-required { color: #dc2626; }
.ecomsb-inqpop-input { width: 100%; padding: 12px 14px; border: 1px solid #d1d5db; border-radius: 10px; font-size: 14px; box-sizing: border-box; }
.ecomsb-inqpop-qtyrow { display: flex; gap: 10px; align-items: stretch; }
.ecomsb-inqpop-stepper { display: flex; align-items: stretch; flex: 1; height: 46px; border: 1px solid #d1d5db; border-radius: 10px; overflow: hidden; }
.ecomsb-inqpop-stepper button { width: 46px; flex: 0 0 auto; border: 0; background: #f3f4f6; font-size: 18px; line-height: 1; cursor: pointer; color: #374151; }
.ecomsb-inqpop-stepper button:hover { background: #e5e7eb; }
.ecomsb-inqpop-stepper input { flex: 1; min-width: 0; border: 0; text-align: center; font-size: 15px; font-weight: 700; -moz-appearance: textfield; appearance: textfield; }
.ecomsb-inqpop-stepper input::-webkit-outer-spin-button, .ecomsb-inqpop-stepper input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.ecomsb-inqpop-notestoggle { display: inline-flex; align-items: center; gap: 8px; flex: 0 0 auto; height: 46px; padding: 0 14px; border: 1px solid #d1d5db; border-radius: 10px; font-size: 13px; color: #374151; cursor: pointer; white-space: nowrap; box-sizing: border-box; }
.ecomsb-inqpop-notes { margin-top: 12px; }
.ecomsb-inqpop-notes[hidden] { display: none; }
.ecomsb-inqpop-textarea { width: 100%; min-height: 80px; padding: 12px 14px; border: 1px solid #d1d5db; border-radius: 10px; font-size: 14px; box-sizing: border-box; resize: vertical; }
.ecomsb-inqpop-mathrow { display: flex; align-items: center; gap: 10px; }
.ecomsb-inqpop-mathq { font-size: 16px; font-weight: 800; color: #111827; white-space: nowrap; }
.ecomsb-inqpop-mathrow .ecomsb-inqpop-input { flex: 1; }
.ecomsb-inqpop-recaptcha { margin-top: 4px; }
.ecomsb-inqpop-overlay button.ecomsb-inqpop-send { margin-top: 18px; width: 100%; padding: 14px; border: 0; border-radius: 10px; background: #111827; color: #fff; font-family: inherit; font-size: 15px; font-weight: 700; line-height: 1.25; letter-spacing: normal; text-transform: none; box-shadow: none; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; gap: 8px; }
.ecomsb-inqpop-overlay button.ecomsb-inqpop-send:hover,
.ecomsb-inqpop-overlay button.ecomsb-inqpop-send:focus-visible { filter: brightness(1.12); }
.ecomsb-inqpop-overlay button.ecomsb-inqpop-send[disabled] { opacity: .6; cursor: default; }
.ecomsb-inqpop-wa { width: 20px; height: 20px; flex: 0 0 auto; background: url(../../img/qda/whatsapp.png?ecomsb-r26) center/contain no-repeat; }
.ecomsb-inqpop-mail { width: 20px; height: 20px; flex: 0 0 auto; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='4' width='20' height='16' rx='2'/%3E%3Cpath d='m2 6 10 7L22 6'/%3E%3C/svg%3E") center/contain no-repeat; }
.ecomsb-inqpop-err { color: #dc2626; font-size: 13px; margin-top: 10px; }
.ecomsb-inqpop-success { text-align: center; padding: 16px 8px; }
.ecomsb-inqpop-success-ic { width: 56px; height: 56px; margin: 0 auto 12px; border-radius: 50%; background: #16a34a; color: #fff; font-size: 30px; line-height: 56px; }

/* Checkout review: the offer/per-piece badge sits on its own line under the
   "× qty" (it's appended to the quantity cell, not via item-data, to avoid
   WooCommerce's stray "key:" colon). */
.ecomsb-review-badge { display: block; margin-top: 10px; padding-top: 2px; }
.ecomsb-review-badge--name { margin-top: 6px; }

/* =========================================================================
 * Quantity Deals-owned storefront addons: Urgency Box and Quick Order.
 * Relocated from frontend/core.css during CSS ownership consolidation.
 * ========================================================================= */
/* ---- Urgency Box (storefront) ---- */
.ecomsb-qd-urgency { display: flex; flex-direction: column; align-items: stretch; gap: 10px; padding: 12px 16px; margin: 12px 0; }
.ecomsb-qd-urgency[dir="rtl"] { direction: rtl; }
.ecomsb-qd-urgency[dir="ltr"] { direction: ltr; }
.ecomsb-qd-urg-timer { display: flex; align-items: center; justify-content: center; gap: 10px; flex-wrap: wrap; }
.ecomsb-qd-urg-timer-body { display: inline-flex; align-items: center; gap: 10px; }
.ecomsb-qd-urg-iconwrap { flex: 0 0 auto; display: inline-flex; align-items: center; }
.ecomsb-qd-urg-timer .ecomsb-qd-urg-icon { width: 36px; height: 36px; object-fit: contain; display: block; }
.ecomsb-qd-urg-timer-title { font-size: 15px; }
.ecomsb-qd-urg-clock { font-size: 18px; font-weight: 700; font-variant-numeric: tabular-nums; white-space: nowrap; }
/* the 3 bills, together in one translucent-white rounded frame */
.ecomsb-qd-urg-stats { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 10px; }
.ecomsb-qd-urg-stat { display: inline-flex; align-items: center; gap: 6px; padding: 5px 12px; background: #fff; border: 1px solid rgba(0, 0, 0, .08); border-radius: 9px; box-shadow: 0 1px 2px rgba(0, 0, 0, .05); }
.ecomsb-qd-urg-stat .ecomsb-qd-urg-icon { width: 18px; height: 18px; object-fit: contain; display: block; }
.ecomsb-qd-urg-stat-text { font-size: 14px; white-space: nowrap; }

/* ---- Quick Order popup ---- */
html.ecomsb-qo-open { overflow: hidden; }
.ecomsb-qo-overlay { position: fixed; inset: 0; z-index: 2147483000; display: flex; align-items: center; justify-content: center; padding: 16px; background: rgba(15, 23, 42, .58); box-sizing: border-box; }
.ecomsb-qo-overlay[hidden] { display: none; }
.ecomsb-qo-dialog { position: relative; width: 100%; max-width: 500px; max-height: 86vh; display: flex; flex-direction: column; overflow: hidden; background: #fff; border: 1px solid #e2e8f0; border-radius: 20px; box-shadow: 0 24px 70px rgba(15, 23, 42, .3); box-sizing: border-box; }
/* Sticky header + footer; only the body scrolls. */
.ecomsb-qo-header { flex-shrink: 0; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 18px; border-bottom: 1px solid #eef2f7; background: #fff; }
.ecomsb-qo-header.ecomsb-qo-header--thankyou { background: var(--ecomsb-qo-popup-bg, #ffffff); border-bottom-color: rgba(15, 23, 42, .10); }
.ecomsb-qo-body { flex: 1 1 auto; overflow-y: auto; overflow-x: hidden; padding: 16px 18px; }
.ecomsb-qo-footer { flex-shrink: 0; padding: 12px 18px; border-top: 1px solid #eef2f7; background: #fff; }
.ecomsb-qo-close { flex-shrink: 0; border: 0; width: 36px; height: 36px; border-radius: 999px; background: #fee2e2; color: #dc2626; font-size: 22px; font-weight: 800; line-height: 1; cursor: pointer; display: flex; align-items: center; justify-content: center; box-shadow: 0 2px 6px rgba(0, 0, 0, .12); transition: background .15s, color .15s; }
.ecomsb-qo-close:hover { background: #dc2626; color: #fff; }
.ecomsb-qo-title { margin: 0; flex: 1; min-width: 0; line-height: 1.3; color: var(--ecomsb-qo-title-color, #111827); }
.ecomsb-qo-desc { margin: 0 0 12px; color: var(--ecomsb-qo-desc-color, #111111); }
.ecomsb-qo-form { display: flex; flex-direction: column; gap: 10px; margin-bottom: 14px; }
.ecomsb-qo-field { display: flex; flex-direction: column; gap: 5px; }
.ecomsb-qo-label { font-weight: 700; color: var(--ecomsb-qo-label-color, #334155); }
.ecomsb-qo-req { color: #dc2626; }
.ecomsb-qo-overlay .ecomsb-qo-input { -webkit-appearance: none; appearance: none; width: 100%; max-width: none; margin: 0; box-sizing: border-box; padding: 10px 12px; border: 1px solid #d1d5db; border-radius: 12px; font-family: inherit; font-size: 16px; line-height: 1.35; letter-spacing: normal; background: #fff; color: #111827; box-shadow: none; }
.ecomsb-qo-overlay .ecomsb-qo-input:focus { outline: none; border-color: #2563eb; box-shadow: 0 0 0 3px rgba(37, 99, 235, .13); }
.ecomsb-qo-overlay .ecomsb-qo-input.ecomsb-qo-invalid { border-color: #dc2626; box-shadow: 0 0 0 3px rgba(220, 38, 38, .12); }
/* Notes — collapsible checkbox toggle that reveals the textarea */
.ecomsb-qo-body > .ecomsb-qo-field { margin-top: 12px; }
.ecomsb-qo-toggle { display: flex; align-items: center; gap: 10px; background: #f8fafc; border: 1px solid #e2e8f0; border-radius: 12px; padding: 11px 13px; font-weight: 700; color: #334155; cursor: pointer; }
.ecomsb-qo-toggle input { width: auto; min-height: 0; margin: 0; flex: 0 0 auto; }
.ecomsb-qo-toggle-panel { margin-top: 8px; }
.ecomsb-qo-notes-area { margin: 0; }
.ecomsb-qo-field-icon { flex: 0 0 auto; color: #334155; }
.ecomsb-qo-input-icon { position: absolute; inset-inline-end: 10px; top: 50%; transform: translateY(-50%); pointer-events: none; }
.ecomsb-qo-coupon-row { display: flex; gap: 8px; flex-wrap: wrap; }
.ecomsb-qo-coupon-row .ecomsb-qo-input { flex: 1 1 140px; }
.ecomsb-qo-coupon-apply, .ecomsb-qo-coupon-remove { border: 0; border-radius: 12px; padding: 0 18px; font: inherit; font-weight: 800; cursor: pointer; white-space: nowrap; }
.ecomsb-qo-coupon-apply { background: #111111; color: #fff; }
.ecomsb-qo-coupon-apply:disabled { opacity: .6; cursor: default; }
.ecomsb-qo-coupon-remove { background: #fef2f2; color: #dc2626; }
.ecomsb-qo-coupon-msg { margin-top: 6px; font-size: 13px; font-weight: 700; }
.ecomsb-qo-coupon-msg.is-ok { color: #16a34a; }
.ecomsb-qo-coupon-msg.is-error { color: #dc2626; }
.ecomsb-qo-account-hint { margin: 6px 2px 0; color: #64748b; font-size: 13px; }
.ecomsb-qo-sum-discount { color: #16a34a; font-weight: 700; }
.ecomsb-qo-confirm { position: absolute; inset: 0; z-index: 5; display: flex; align-items: center; justify-content: center; background: rgba(15, 23, 42, .45); padding: 16px; }
.ecomsb-qo-confirm-card { background: #fff; border-radius: 14px; padding: 18px; max-width: 330px; width: 100%; box-shadow: 0 18px 44px rgba(15, 23, 42, .25); text-align: center; box-sizing: border-box; }
.ecomsb-qo-confirm-title { margin: 0 0 6px; font-weight: 900; font-size: 17px; color: #111827; }
.ecomsb-qo-confirm-logo { display: flex; justify-content: center; margin: 0 0 8px; }
.ecomsb-qo-confirm-msg { margin: 0 0 10px; font-weight: 500; font-size: 14px; color: #475569; line-height: 1.5; }
.ecomsb-qo-confirm-number { margin: 0 0 16px; font-weight: 900; font-size: 20px; color: #111827; letter-spacing: .5px; word-break: break-all; direction: ltr; unicode-bidi: isolate; text-align: center; }
.ecomsb-qo-confirm-actions { display: flex; gap: 8px; justify-content: center; }
.ecomsb-qo-confirm-actions button { border: 0; border-radius: 10px; padding: 9px 16px; font: inherit; font-weight: 800; cursor: pointer; }
.ecomsb-qo-confirm-ok { background: #16a34a; color: #fff; }
.ecomsb-qo-confirm-edit { background: #f1f5f9; color: #334155; }
.ecomsb-qo-notes-icon { width: 22px; height: 22px; object-fit: contain; flex: 0 0 22px; }
/* Phone field with the store-country flag inside it.
   Phone numbers are inherently LTR, so keep this field LTR in both page
   directions and pin the flag / WhatsApp icon to the physical left. This
   removes the stray gap that showed up on RTL (Arabic) pages, where the
   logical insets flipped the flag to one side and the text to the other. */
.ecomsb-qo-phone-wrap { position: relative; }
.ecomsb-qo-phone-wrap .ecomsb-qo-input { padding-left: 44px; padding-right: 12px; }
.ecomsb-qo-phone-flag { position: absolute; left: 10px; right: auto; top: 50%; transform: translateY(-50%); width: 26px; height: 18px; object-fit: cover; border-radius: 3px; box-shadow: 0 0 0 1px rgba(0, 0, 0, .08); pointer-events: none; }
.ecomsb-qo-phone-wrap .ecomsb-qo-input-icon { inset: 50% auto auto 10px; transform: translateY(-50%); }
/* Custom searchable region picker (name on one side, cost on the other) */
.ecomsb-qo-region-picker { position: relative; }
.ecomsb-qo-region-toggle { display: flex; align-items: center; justify-content: space-between; gap: 10px; text-align: start; cursor: pointer; }
.ecomsb-qo-region-label { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ecomsb-qo-region-arrow { flex: 0 0 auto; color: #64748b; transition: transform .15s; }
.ecomsb-qo-region-picker.is-open .ecomsb-qo-region-arrow { transform: rotate(180deg); }
.ecomsb-qo-region-menu { display: none; position: absolute; top: calc(100% + 6px); inset-inline: 0; z-index: 20; background: #fff; border: 1px solid #d1d5db; border-radius: 14px; box-shadow: 0 18px 44px rgba(15, 23, 42, .18); padding: 8px; }
.ecomsb-qo-region-picker.is-open .ecomsb-qo-region-menu { display: block; }
.ecomsb-qo-region-search { width: 100%; box-sizing: border-box; border: 1px solid #e2e8f0; border-radius: 10px; padding: 9px 11px; margin-bottom: 6px; font-size: 16px; }
.ecomsb-qo-region-options { max-height: 230px; overflow-y: auto; }
.ecomsb-qo-region-option { width: 100%; border: 0; background: transparent; padding: 10px 12px; border-radius: 10px; display: flex; align-items: center; justify-content: space-between; gap: 12px; cursor: pointer; text-align: start; color: #111827; }
.ecomsb-qo-region-option:hover { background: #f1f5f9; }
.ecomsb-qo-region-opt-name { min-width: 0; }
.ecomsb-qo-region-opt-cost { flex: 0 0 auto; color: #9d6673; font-weight: 700; white-space: nowrap; }
.ecomsb-qo-summary { background: #f0fdf4; border: 1px solid #bbf7d0; border-radius: 12px; padding: 12px 14px; margin-top: 14px; }
.ecomsb-qo-summary-title { font-weight: 800; color: #166534; margin-bottom: 8px; }
.ecomsb-qo-summary-group { padding: 4px 0; }
.ecomsb-qo-summary-section-title { display: inline-flex; width: fit-content; padding: 4px 10px; border-radius: 999px; background: var(--ecomsb-qo-section-title-bg, #ecfdf5); color: var(--ecomsb-qo-section-title-color, #047857); font-weight: 800; margin-bottom: 4px; }
.ecomsb-qo-summary-detail-lines { display: block; }
.ecomsb-qo-summary-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 4px 0; }
.ecomsb-qo-summary-detail-row { align-items: flex-start; }
.ecomsb-qo-summary-detail-label { min-width: 0; color: #334155; overflow-wrap: anywhere; }
.ecomsb-qo-summary-detail-value { flex: 0 0 auto; font-weight: 600; text-align: end; white-space: nowrap; }
.ecomsb-qo-summary-products + [data-ecomsb-qo-discount-row],
.ecomsb-qo-summary-products + [data-ecomsb-qo-discount-row] + .ecomsb-qo-adjustments,
.ecomsb-qo-summary-shipping { margin-top: 4px; }
.ecomsb-qo-summary-total { border-top: 1px dashed #86efac; margin-top: 6px; padding-top: 8px; font-weight: 800; }
.ecomsb-qo-overlay button.ecomsb-qo-submit { width: 100%; min-height: 62px; box-sizing: border-box; border: 0; padding: 14px 18px; border-radius: 14px; background: var(--ecomsb-qo-submit-bg, #111); color: var(--ecomsb-qo-submit-color, #fff); font-weight: 800; font-size: 16px; cursor: pointer; transition: background .15s, color .15s; display: flex; align-items: center; justify-content: center; gap: 8px; -webkit-appearance: none; appearance: none; max-width: none; box-shadow: none; font-family: inherit; line-height: 1.25; letter-spacing: normal; text-decoration: none; text-shadow: none; text-transform: none; }
.ecomsb-qo-overlay button.ecomsb-qo-submit:hover,
.ecomsb-qo-overlay button.ecomsb-qo-submit:focus-visible { background: var(--ecomsb-qo-hover-bg, #16a34a); color: var(--ecomsb-qo-hover-color, #fff); }
.ecomsb-qo-overlay button.ecomsb-qo-submit[disabled] { opacity: .6; cursor: wait; }
.ecomsb-qo-submit-ico { width: 34px; height: 34px; flex: 0 0 auto; display: inline-block; }
.ecomsb-qo-submit-ico svg, .ecomsb-lottie-ico svg { width: 100%; height: 100%; display: block; }
.ecomsb-qo-thankyou { text-align: center; padding: 8px 6px; }
.ecomsb-qo-ty-check { width: 72px; height: 72px; margin: 0 auto 14px; border-radius: 50%; background: #dcfce7; color: #16a34a; font-size: 38px; font-weight: 900; line-height: 72px; }
.ecomsb-qo-ty-order { display: inline-block; margin: 12px 0 4px; padding: 6px 14px; border: 1px dashed #cbd5e1; border-radius: 10px; font-weight: 800; }
.ecomsb-qo-ty-icon { display: block; width: 84px; height: 84px; margin: 0 auto 14px; object-fit: contain; }
.ecomsb-qo-ty-title { margin: 0 0 6px; font-size: 20px; font-weight: 800; line-height: 1.3; text-align: center; }
.ecomsb-qo-ty-desc { margin: 0 0 16px; color: #64748b; text-align: center; }
.ecomsb-qo-ty-top { display: flex; gap: 12px; margin: 0 0 18px; }
.ecomsb-qo-ty-box { flex: 1; border: 1px solid #e5e9f0; border-radius: 12px; padding: 12px 14px; text-align: center; }
.ecomsb-qo-ty-box span { display: block; font-size: 12px; color: #64748b; margin-bottom: 4px; }
.ecomsb-qo-ty-box strong { font-size: 17px; font-weight: 800; color: #0f172a; }
.ecomsb-qo-ty-section { margin: 0 0 16px; text-align: center; }
.ecomsb-qo-ty-h { display: inline-block; margin: 0 auto 10px; padding: 5px 16px; border-radius: 999px; background: var(--ecomsb-qo-section-title-bg, #ecfdf5); color: var(--ecomsb-qo-section-title-color, #047857); font-size: 13px; font-weight: 700; }
.ecomsb-qo-ty-card { border: 1px solid #e5e9f0; border-radius: 12px; padding: 4px 14px; text-align: start; }
.ecomsb-qo-ty-line { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 11px 0; border-bottom: 1px solid #f1f5f9; }
.ecomsb-qo-ty-card .ecomsb-qo-ty-line:last-child { border-bottom: 0; }
.ecomsb-qo-ty-line > span { color: #64748b; }
.ecomsb-qo-ty-line > strong { font-weight: 700; color: #0f172a; text-align: end; }
.ecomsb-qo-ty-line.is-total { font-size: 16px; }
.ecomsb-qo-ty-line.is-total > strong { font-weight: 800; }
.ecomsb-qo-ty-line.is-wide { flex-direction: column; align-items: flex-start; gap: 2px; }
.ecomsb-qo-ty-line.is-wide > strong { text-align: start; }
.ecomsb-qo-ty-line .is-free { color: #16a34a; }
.ecomsb-qo-ty-subhead { padding: 10px 0 3px; color: #0f172a; font-weight: 800; }
.ecomsb-qo-ty-subhead + .ecomsb-qo-ty-line { padding-top: 7px; }
.ecomsb-qo-ty-product-label { min-width: 0; overflow-wrap: anywhere; }
.ecomsb-qo-ty-address .ecomsb-qo-ty-line { flex-direction: column; align-items: center; gap: 2px; text-align: center; }
.ecomsb-qo-ty-address .ecomsb-qo-ty-line > span { color: #64748b; }
.ecomsb-qo-ty-address .ecomsb-qo-ty-line > strong { text-align: center; }
.ecomsb-qo-ty-item { align-items: flex-start; }
.ecomsb-qo-ty-item-copy { display: flex; flex-direction: column; gap: 2px; text-align: start; }
.ecomsb-qo-ty-item-copy strong { font-weight: 700; color: #0f172a; }
.ecomsb-qo-ty-qty { font-size: 12px; color: #94a3b8; }
.ecomsb-qo-ty-item > b { font-weight: 700; white-space: nowrap; }
.ecomsb-qo-ty-actions { display: flex; flex-direction: column; gap: 10px; margin-top: 18px; }
.ecomsb-qo-ty-actions-row { display: flex; gap: 10px; }
.ecomsb-qo-ty-closebtn, .ecomsb-qo-ty-wa { flex: 1; display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 13px 16px; border-radius: 12px; font-size: 15px; font-weight: 700; border: 0; cursor: pointer; text-decoration: none; }
.ecomsb-qo-ty-closebtn { background: var(--ecomsb-qo-submit-bg, #111); color: var(--ecomsb-qo-submit-color, #fff); }
.ecomsb-qo-ty-closebtn:hover { background: var(--ecomsb-qo-hover-bg, #16a34a); color: var(--ecomsb-qo-hover-color, #fff); }
.ecomsb-qo-ty-wa { background: #22c55e; color: #fff; }
.ecomsb-qo-ty-wa svg, .ecomsb-qo-ty-print svg { width: 20px; height: 20px; }
.ecomsb-qo-ty-x { font-size: 18px; line-height: 1; }
.ecomsb-qo-ty-print { display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 10px; background: transparent; border: 0; color: #475569; font-size: 14px; font-weight: 600; cursor: pointer; }
/* Quick Order — Checkboxes (multiple) custom field */
.ecomsb-qo-check { display: inline-flex; align-items: center; gap: 6px; font-size: 14px; cursor: pointer; }
.ecomsb-qo-check input { margin: 0; }

/* Quick Order request protection: one visible in-flight state, no repeat clicks. */
.ecomsb-qo-overlay button.ecomsb-qo-submit.is-loading .ecomsb-qo-submit-ico { display: none; }
.ecomsb-qo-overlay button.ecomsb-qo-submit.is-loading::before {
    content: "";
    width: 18px;
    height: 18px;
    flex: 0 0 18px;
    border: 2px solid currentColor;
    border-inline-end-color: transparent;
    border-radius: 50%;
    animation: ecomsb-qo-submit-spin .7s linear infinite;
}
@keyframes ecomsb-qo-submit-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) {
    .ecomsb-qo-overlay button.ecomsb-qo-submit.is-loading::before { animation-duration: 1.4s; }
}


/* Quick Order mobile viewport safety. */
@media (max-width: 480px) {
    .ecomsb-qo-overlay {
        align-items: center;
        padding: max(8px, env(safe-area-inset-top)) 8px max(8px, env(safe-area-inset-bottom));
    }
    .ecomsb-qo-dialog {
        width: 100%;
        max-width: calc(100vw - 16px);
        max-height: calc(100dvh - 16px - env(safe-area-inset-top) - env(safe-area-inset-bottom));
        border-radius: 16px;
    }
    .ecomsb-qo-header {
        position: relative;
        z-index: 2;
        min-height: 48px;
        padding: 9px 12px;
    }
    .ecomsb-qo-close {
        width: 34px;
        height: 34px;
        min-width: 34px;
        padding: 0;
    }
    .ecomsb-qo-body { padding: 12px; }
    .ecomsb-qo-footer { padding: 10px 12px; }
}

/* =========================================================================
 * Print invoice — when the customer prints the thank-you popup, output ONLY
 * that popup as a clean, single A4 page (hide the rest of the site, drop the
 * modal chrome/backdrop, and let the content flow). Lives here (not core.css)
 * because a print reset legitimately needs !important to beat theme styles.
 * ========================================================================= */
@media print {
    /* Print ONLY the thank-you popup as a clean single A4 page. Using display:none
       (not visibility) removes the rest of the page from layout, so no blank pages. */
    html, body { height: auto !important; min-height: 0 !important; overflow: visible !important; background: #fff !important; }
    body > *:not(.ecomsb-qo-overlay) { display: none !important; }
    .ecomsb-qo-overlay {
        position: static !important; display: block !important; background: #fff !important;
        margin: 0 !important; padding: 0 !important; height: auto !important; max-height: none !important;
        overflow: visible !important; inset: auto !important;
    }
    .ecomsb-qo-overlay .ecomsb-qo-dialog {
        position: static !important; width: auto !important; max-width: 100% !important;
        height: auto !important; max-height: none !important; margin: 0 !important;
        border: 0 !important; border-radius: 0 !important; box-shadow: none !important; overflow: visible !important;
    }
    .ecomsb-qo-overlay .ecomsb-qo-body { max-height: none !important; overflow: visible !important; padding: 0 !important; }
    .ecomsb-qo-overlay .ecomsb-qo-header,
    .ecomsb-qo-overlay .ecomsb-qo-close,
    .ecomsb-qo-overlay .ecomsb-qo-ty-actions { display: none !important; }
    .ecomsb-qo-overlay .ecomsb-qo-thankyou { padding: 0 !important; }
    .ecomsb-qo-overlay .ecomsb-qo-ty-title { font-size: 18px !important; }
    .ecomsb-qo-overlay .ecomsb-qo-ty-icon { width: 56px !important; height: 56px !important; margin-bottom: 8px !important; }
    .ecomsb-qo-overlay .ecomsb-qo-ty-top { margin-bottom: 10px !important; }
    .ecomsb-qo-overlay .ecomsb-qo-ty-section { margin-bottom: 8px !important; }
    .ecomsb-qo-overlay .ecomsb-qo-ty-line { padding: 5px 0 !important; }
    @page { size: A4; margin: 12mm; }
}

/* =========================================================================
 * Free Shipping label — green + bold, scoped to the Quick Order overlay only.
 * Applies to the temporary State/Region cost label (--free modifier) and the
 * popup Order Summary shipping value (is-free). Presentation only; normal
 * monetary costs and unrelated WooCommerce shipping text are untouched.
 * ========================================================================= */
.ecomsb-qo-overlay .ecomsb-qo-region-opt-cost.ecomsb-qo-region-opt-cost--free,
.ecomsb-qo-overlay .ecomsb-qo-sum-shipping.is-free,
.ecomsb-qo-overlay .ecomsb-qo-ty-line strong.is-free {
    color: #15803d;
    font-weight: 700;
}
/* Order Items: one coherent row. Main side = qty + name (flex, qty pinned to the first line of
   the name); amount aligned on the logical end via a 2-column grid. RTL/LTR
   safe (logical columns, no fixed left/right). */
.ecomsb-qo-overlay .ecomsb-ty-item-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 4px 10px; align-items: baseline; }
.ecomsb-qo-overlay .ecomsb-ty-item-main { display: flex; align-items: baseline; flex-wrap: nowrap; gap: 6px; min-width: 0; }
.ecomsb-qo-overlay .ecomsb-ty-item-qty { flex: 0 0 auto; color: #64748b; font-variant-numeric: tabular-nums; white-space: nowrap; }
.ecomsb-qo-overlay .ecomsb-ty-item-name { flex: 1 1 auto; min-width: 0; overflow-wrap: anywhere; font-weight: 600; color: #0f172a; }
.ecomsb-qo-overlay .ecomsb-ty-item-total { flex: 0 0 auto; font-weight: 700; white-space: nowrap; }

/* =========================================================================
 * Custom Details rows — reuse the centred Delivery Details model (the card also
 * carries .ecomsb-qo-ty-address). These rules only add safe wrapping for long
 * validated values (e.g. messages, image URLs) and keep a row from splitting
 * across printed pages. Scoped to the Quick Order overlay's custom card only.
 * ========================================================================= */
.ecomsb-qo-overlay .ecomsb-qo-ty-custom .ecomsb-qo-ty-line {
    break-inside: avoid;
    page-break-inside: avoid;
}
.ecomsb-qo-overlay .ecomsb-qo-ty-custom .ecomsb-qo-ty-line > strong {
    width: 100%;
    overflow-wrap: anywhere;
    word-break: break-word;
    white-space: normal;
}

/* ===== Sticky Add to Cart Bar (pinned bottom) ===== */
.ecomsb-sticky {
    position: fixed;
    left: 0; right: 0;
    bottom: 0;
    z-index: 9990;
    pointer-events: none;
    opacity: 0;
    visibility: hidden;
    transform: translateY(100%);
    transition: opacity .25s ease, transform .25s ease, visibility .25s ease;
}
.ecomsb-sticky.is-visible {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}
.ecomsb-sticky--floating { bottom: var(--ecomsb-sticky-gap, 0px); }
.ecomsb-sticky__inner {
    pointer-events: auto;
    width: 100%;
    background: #fff;
    box-shadow: 0 -4px 18px rgba(15, 23, 42, .12);
    border-radius: 0;
    padding: 10px 14px;
    overflow: hidden;
}
.ecomsb-sticky__row {
    max-width: 1200px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.ecomsb-sticky__primary {
    width: 100%;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 7px;
}
.ecomsb-sticky__summary {
    min-width: 0;
    display: flex;
    align-items: baseline;
    justify-content: center;
    flex-wrap: wrap;
    gap: 6px 12px;
    padding-inline: 3px;
    color: #0f172a;
    text-align: center;
}
.ecomsb-sticky__product-name {
    min-width: 0;
    max-width: 100%;
    font-size: 16px;
    font-weight: 700;
    line-height: 1.35;
    overflow-wrap: anywhere;
    text-align: center;
}
.ecomsb-sticky__unit-price {
    display: inline-flex;
    align-items: baseline;
    justify-content: center;
    flex-wrap: wrap;
    gap: 5px;
    color: #0f172a;
    font-size: 16px;
    font-weight: 800;
    line-height: 1.25;
    white-space: nowrap;
}
.ecomsb-sticky__starting {
    color: #111827;
    font-size: 13px;
    font-weight: 700;
}
.ecomsb-sticky__price-old {
    color: #111827;
    font-size: 14px;
    font-weight: 500;
    opacity: .72;
}
.ecomsb-sticky__unit-value {
    color: #dd3333;
    font-size: 18px;
    font-weight: 800;
}
.ecomsb-sticky__starting[hidden],
.ecomsb-sticky__price-old[hidden] { display: none; }
/* Desktop: the product summary and button own the full row. Trust badges
   sit directly underneath and divide the same available width equally. */
@media (min-width: 769px) {
    .ecomsb-sticky__row {
        flex-direction: column;
        align-items: stretch;
        gap: 8px;
    }
    .ecomsb-sticky__primary {
        flex: 1 1 auto;
        width: 100%;
        min-width: 0;
    }
    .ecomsb-sticky .ecomsb-trust {
        width: 100%;
        min-width: 0;
        margin-top: 0;
        margin-inline-start: 0;
        padding-inline-start: 0;
        border-inline-start: 0;
    }
    .ecomsb-sticky .ecomsb-trust__grid {
        display: grid;
        width: 100%;
        grid-template-columns: repeat(var(--ecomsb-trust-count, 1), minmax(0, 1fr));
        gap: var(--ecomsb-trust-gap, 14px);
    }
    .ecomsb-sticky .ecomsb-trust__item {
        width: 100%;
        min-width: 0;
        box-sizing: border-box;
    }
    .ecomsb-sticky .ecomsb-trust__text {
        min-width: 0;
        white-space: normal;
        overflow-wrap: anywhere;
    }
    .ecomsb-sticky .ecomsb-trust.ecomsb-trust--hide-desktop {
        display: none;
    }
}
/* Floating: a white rounded card hovering over the page (not edge-to-edge). */
.ecomsb-sticky--floating .ecomsb-sticky__inner {
    max-width: 1040px;
    margin: 0 auto;
    border-radius: 16px;
    box-shadow: 0 10px 30px rgba(15, 23, 42, .18);
}
.ecomsb-sticky button.ecomsb-sticky__btn {
    width: 100%;
    display: flex; align-items: center; justify-content: center; gap: 8px;
    min-height: var(--ecomsb-sticky-h, 56px);
    padding: 8px 22px;
    border: 0; border-radius: 10px; cursor: pointer;
    font-size: var(--ecomsb-sticky-fs, 16px);
    font-weight: var(--ecomsb-sticky-fw, 700);
    background: var(--ecomsb-sticky-bg, var(--ecomsb-qd-btn-bg, #111827));
    color: var(--ecomsb-sticky-color, var(--ecomsb-qd-btn-color, #fff));
    -webkit-appearance: none; appearance: none; min-width: 0; max-width: none; box-shadow: none; font-family: inherit; line-height: 1.25; letter-spacing: normal; text-decoration: none; text-shadow: none; text-transform: none;
    transition: background .15s ease, color .15s ease;
}
.ecomsb-sticky button.ecomsb-sticky__btn:hover,
.ecomsb-sticky button.ecomsb-sticky__btn:focus-visible {
    background: var(--ecomsb-sticky-hbg, var(--ecomsb-qd-btn-hover-bg, #16a34a));
    color: var(--ecomsb-sticky-hcolor, var(--ecomsb-qd-btn-hover-color, #fff));
}
/* Display targeting */
.ecomsb-sticky--desktop { display: block; }
.ecomsb-sticky--mobile  { display: none; }
@media (max-width: 768px) {
    .ecomsb-sticky--floating { bottom: var(--ecomsb-sticky-gap-m, 0px); }
    .ecomsb-sticky--desktop { display: none; }
    .ecomsb-sticky--mobile  { display: block; }
    .ecomsb-sticky__summary { gap: 4px 9px; }
    .ecomsb-sticky__product-name { font-size: 14px; }
    .ecomsb-sticky__unit-price { font-size: 14px; }
    .ecomsb-sticky__starting { font-size: 11px; }
    .ecomsb-sticky__price-old { font-size: 12px; }
    .ecomsb-sticky__unit-value { font-size: 16px; }
}
.ecomsb-qo-summary-payment { margin-top: 6px; }
.ecomsb-qo-summary-payment-description,
.ecomsb-qo-summary-payment-instructions { margin-top: 4px; color: #475569; font-size: 13px; line-height: 1.45; overflow-wrap: anywhere; }
.ecomsb-qo-summary-payment-instructions { color: #64748b; }
.ecomsb-qo-ty-payment .ecomsb-qo-ty-card { text-align: center; }
.ecomsb-qo-ty-payment .ecomsb-qo-ty-line.is-wide { align-items: center; text-align: center; }
.ecomsb-qo-ty-payment .ecomsb-qo-ty-line.is-wide > span { color: #0f172a; font-weight: 700; text-align: center; }
.ecomsb-qo-ty-payment .ecomsb-qo-ty-line.is-wide > strong { color: #475569; font-weight: 500; text-align: center; }
@media (max-width: 768px) {
    .ecomsb-sticky--floating .ecomsb-sticky__inner {
        width: 90vw;
        max-width: 90vw;
        box-sizing: border-box;
        margin-inline: auto;
    }
}
/* Animations (button) */
.ecomsb-sticky--anim button.ecomsb-sticky__btn { animation-duration: var(--ecomsb-sticky-speed, 1500ms); animation-iteration-count: infinite; animation-timing-function: ease-in-out; }
.ecomsb-sticky--once button.ecomsb-sticky__btn { animation-iteration-count: 1; }
.ecomsb-sticky--pulse  button.ecomsb-sticky__btn { animation-name: ecomsb-st-pulse; transform-origin: center; }
.ecomsb-sticky--shrink button.ecomsb-sticky__btn { animation-name: ecomsb-st-shrink; }
.ecomsb-sticky--swing  button.ecomsb-sticky__btn { animation-name: ecomsb-st-swing; transform-origin: center; }
.ecomsb-sticky--bounce button.ecomsb-sticky__btn { animation-name: ecomsb-st-bounce; }
.ecomsb-sticky--shake  button.ecomsb-sticky__btn { animation-name: ecomsb-st-shake; }
.ecomsb-sticky--glow button.ecomsb-sticky__btn {
    position: relative;
    isolation: isolate;
    overflow: visible;
}
.ecomsb-sticky--glow button.ecomsb-sticky__btn::after {
    content: "";
    position: absolute;
    inset: 0;
    border: 2px solid var(--ecomsb-sticky-bg, var(--ecomsb-qd-btn-bg, #111827));
    border-radius: inherit;
    background: transparent;
    pointer-events: none;
    animation: ecomsb-qd-btnglow var(--ecomsb-sticky-speed, 1500ms) ease-out infinite;
    will-change: inset, opacity;
}
.ecomsb-sticky--once.ecomsb-sticky--glow button.ecomsb-sticky__btn::after { animation-iteration-count: 1; }
@keyframes ecomsb-st-pulse  { 0%,100% { transform: scale(1); } 50% { transform: scaleX(1.008) scaleY(1.025); } }
@keyframes ecomsb-st-shrink { 0%,100% { transform: scale(1); } 50% { transform: scale(.96); } }
@keyframes ecomsb-st-swing  { 0%,100% { transform: rotate(0); } 25% { transform: rotate(.35deg); } 75% { transform: rotate(-.35deg); } }
@keyframes ecomsb-st-bounce { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-5px); } }
@keyframes ecomsb-st-shake  { 0%,100% { transform: translateX(0); } 25% { transform: translateX(-4px); } 75% { transform: translateX(4px); } }
@media (prefers-reduced-motion: reduce) {
    .ecomsb-sticky--anim button.ecomsb-sticky__btn { animation: none; }
    .ecomsb-sticky--glow button.ecomsb-sticky__btn::after { animation: none; display: none; }
}
/* Trust badges row */
.ecomsb-trust { margin-top: 10px; }
.ecomsb-trust__grid {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: stretch;
    gap: var(--ecomsb-trust-gap, 14px);
}
.ecomsb-trust__item {
    flex: 0 1 auto;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    padding: 7px 9px;
    border-radius: 10px;
    font-size: var(--ecomsb-trust-fs, 12px);
    font-weight: var(--ecomsb-trust-fw, 500);
    text-align: center;
}
.ecomsb-trust__icon { display: inline-flex; flex: 0 0 auto; }
.ecomsb-trust__img  { width: 22px; height: 22px; object-fit: contain; }
.ecomsb-trust__text { min-width: 0; line-height: 1.25; white-space: nowrap; }
@media (max-width: 768px) {
    .ecomsb-trust__grid {
        display: grid;
        grid-template-columns: repeat(var(--ecomsb-trust-cols-m, 2), minmax(0, 1fr));
    }
    .ecomsb-trust__item {
        width: 100%;
        min-width: 0;
        box-sizing: border-box;
    }
    .ecomsb-trust__text {
        white-space: normal;
        overflow-wrap: anywhere;
        font-size: min(var(--ecomsb-trust-fs, 12px), 11px);
    }
    .ecomsb-sticky--trust-count-3 .ecomsb-trust--mobile-cols-2 .ecomsb-trust__item {
        order: 1;
    }
    .ecomsb-sticky--trust-count-3 .ecomsb-trust--mobile-cols-2 .ecomsb-trust__item--mobile-wide {
        grid-column: 1 / -1;
        order: 2;
    }
    .ecomsb-sticky .ecomsb-trust.ecomsb-trust--hide-mobile {
        display: none;
    }
}

/* Quick Order Multi Select — one option per line (field-scoped, LTR + RTL) */
.ecomsb-qo-checks { display: flex; flex-direction: column; flex-wrap: wrap; align-items: stretch; gap: 6px; padding: 4px 0; }
.ecomsb-qo-checks .ecomsb-qo-check { display: flex; align-items: center; flex-wrap: wrap; gap: 4px 8px; }
.ecomsb-qo-checks .ecomsb-qo-check > input[type="checkbox"] { flex: 0 0 auto; margin: 0; }
.ecomsb-qo-checks .ecomsb-qo-check > .ecomsb-qo-option-label { flex: 1 1 auto; min-width: 0; overflow-wrap: anywhere; }

/* Custom-field price-adjustment summary lines, label hints and option suffixes. */
.ecomsb-qo-overlay .ecomsb-qo-adjustments { display: flex; flex-direction: column; gap: 2px; }
.ecomsb-qo-overlay .ecomsb-qo-adjust-line { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 4px 10px; align-items: baseline; font-size: 13px; opacity: 0.95; }
.ecomsb-qo-overlay .ecomsb-qo-adjust-line .ecomsb-qo-adjust-label { overflow-wrap: anywhere; word-break: break-word; }
.ecomsb-qo-overlay .ecomsb-qo-price-hint { margin-inline-start: 6px; font-size: 12px; font-weight: 600; color: #2563eb; white-space: nowrap; }
.ecomsb-qo-overlay .ecomsb-qo-option-price { flex: 0 0 auto; display: inline-flex; align-items: center; gap: 5px; padding: 1px 7px; font-size: 11.5px; font-weight: 600; line-height: 1.7; border: 1px solid #e2e8f0; border-radius: 999px; white-space: nowrap; }
.ecomsb-qo-overlay .ecomsb-qo-option-price .ecomsb-qo-price-prefix { font-weight: 500; color: #64748b; }
.ecomsb-qo-overlay .ecomsb-qo-option-price .ecomsb-qo-price-value { unicode-bidi: isolate; }
/* Field header: label + separate price badge. Label stays primary; the badge is
   a compact secondary element that wraps below as one unit on narrow widths. Logical spacing
   and border separators keep RTL/LTR correct; <bdi> isolates the signed monetary fragment. */
.ecomsb-qo-overlay .ecomsb-qo-field-head { display: flex; align-items: center; flex-wrap: wrap; gap: 6px 10px; }
.ecomsb-qo-overlay .ecomsb-qo-field-head .ecomsb-qo-label { margin: 0; }
.ecomsb-qo-overlay .ecomsb-qo-field-price-hint { display: inline-flex; align-items: center; gap: 6px; padding: 1px 8px; font-size: 12px; font-weight: 500; line-height: 1.7; color: #475066; background: #f1f5f9; border: 1px solid #e2e8f0; border-radius: 999px; white-space: nowrap; }
.ecomsb-qo-overlay .ecomsb-qo-field-price-prefix { color: #64748b; }
.ecomsb-qo-overlay .ecomsb-qo-field-price-value { font-weight: 600; color: #0f172a; unicode-bidi: isolate; }
.ecomsb-qo-overlay .ecomsb-qo-field-price-scope { color: #64748b; padding-inline-start: 6px; border-inline-start: 1px solid #cbd5e1; }
.ecomsb-qo-overlay .ecomsb-qo-field-help { margin-top: 4px; font-size: 12.5px; font-weight: 400; line-height: 1.5; color: #64748b; overflow-wrap: anywhere; }
/* Positive / negative price-adjustment semantic states. Sign stays visible so the
   meaning is not colour-only; the discount red is intentionally softer than validation red. */
.ecomsb-qo-overlay .ecomsb-qo-field-price-hint.ecomsb-qo-price-positive { color: #15803d; background: #f0fdf4; border-color: #bbf7d0; }
.ecomsb-qo-overlay .ecomsb-qo-field-price-hint.ecomsb-qo-price-positive .ecomsb-qo-field-price-value { color: #15803d; }
.ecomsb-qo-overlay .ecomsb-qo-field-price-hint.ecomsb-qo-price-negative { color: #b91c1c; background: #fef2f2; border-color: #fecaca; }
.ecomsb-qo-overlay .ecomsb-qo-field-price-hint.ecomsb-qo-price-negative .ecomsb-qo-field-price-value { color: #b91c1c; }
.ecomsb-qo-overlay .ecomsb-qo-option-price.ecomsb-qo-price-positive { color: #15803d; background: #f0fdf4; border-color: #bbf7d0; }
.ecomsb-qo-overlay .ecomsb-qo-option-price.ecomsb-qo-price-positive .ecomsb-qo-price-prefix { color: #15803d; }
.ecomsb-qo-overlay .ecomsb-qo-option-price.ecomsb-qo-price-negative { color: #b91c1c; background: #fef2f2; border-color: #fecaca; }
.ecomsb-qo-overlay .ecomsb-qo-option-price.ecomsb-qo-price-negative .ecomsb-qo-price-prefix { color: #b91c1c; }
/* Native <option> text stays neutral; the selected price shows in a separate badge. */
.ecomsb-qo-overlay .ecomsb-qo-select-wrap { display: flex; align-items: center; flex-wrap: wrap; gap: 6px 10px; }
.ecomsb-qo-overlay .ecomsb-qo-select-wrap > select { flex: 1 1 auto; min-width: 0; }
.ecomsb-qo-overlay .ecomsb-qo-selected-option-price { display: inline-flex; align-items: center; gap: 5px; padding: 1px 8px; font-size: 12px; font-weight: 600; line-height: 1.7; border: 1px solid transparent; border-radius: 999px; white-space: nowrap; }
.ecomsb-qo-overlay .ecomsb-qo-selected-option-price[hidden] { display: none; }
.ecomsb-qo-overlay .ecomsb-qo-selected-option-price .ecomsb-qo-price-prefix { font-weight: 500; }
.ecomsb-qo-overlay .ecomsb-qo-selected-option-price .ecomsb-qo-price-value { unicode-bidi: isolate; }
.ecomsb-qo-overlay .ecomsb-qo-selected-option-price .ecomsb-qo-price-scope { padding-inline-start: 5px; border-inline-start: 1px solid currentColor; opacity: 0.85; }
.ecomsb-qo-overlay .ecomsb-qo-selected-option-price .ecomsb-qo-price-scope[hidden] { display: none; }
.ecomsb-qo-overlay .ecomsb-qo-selected-option-price bdi { unicode-bidi: isolate; }
.ecomsb-qo-overlay .ecomsb-qo-selected-option-price.ecomsb-qo-price-positive { color: #15803d; background: #f0fdf4; border-color: #bbf7d0; }
.ecomsb-qo-overlay .ecomsb-qo-selected-option-price.ecomsb-qo-price-negative { color: #b91c1c; background: #fef2f2; border-color: #fecaca; }

/* Required-field validation UX. Icon + text (never colour alone), compact,
   above the sticky button, RTL/LTR safe (flex + logical spacing, no left/right). */
.ecomsb-qo-overlay .ecomsb-qo-validation-alert { display: flex; align-items: flex-start; gap: 6px; margin: 0 0 10px; padding: 8px 10px; font-size: 13px; line-height: 1.4; color: #b91c1c; background: #fef2f2; border: 1px solid #fecaca; border-radius: 8px; }
.ecomsb-qo-overlay .ecomsb-qo-validation-alert[hidden] { display: none; }
.ecomsb-qo-overlay .ecomsb-qo-validation-alert::before { content: "\26A0"; font-size: 14px; line-height: 1.4; flex: 0 0 auto; }
.ecomsb-qo-overlay .ecomsb-qo-field-error { margin-top: 4px; font-size: 12px; line-height: 1.4; color: #dc2626; }
.ecomsb-qo-overlay .ecomsb-qo-checks.ecomsb-qo-invalid { border: 1px solid #dc2626; border-radius: 8px; padding: 6px; background: rgba(220, 38, 38, .04); }
.ecomsb-qo-overlay .ecomsb-qo-region-picker.ecomsb-qo-invalid .ecomsb-qo-region-toggle { border-color: #dc2626; box-shadow: 0 0 0 3px rgba(220, 38, 38, .12); }
.ecomsb-qo-overlay .ecomsb-qo-ty-custom + .ecomsb-qo-ty-section .ecomsb-qo-adjust-label { overflow-wrap: anywhere; }

/* Quantity Deals gift add-on configuration popup. Independently owned, QD-scoped
   selectors (never the slider .ecomsb-cfg popup). Visually consistent with the
   gift choice popup; logical properties keep RTL/LTR and mobile correct. */
.ecomsb-qd-config-overlay { position: fixed; inset: 0; z-index: 100001; display: flex; align-items: center; justify-content: center; padding: 16px; background: rgba(0, 0, 0, .55); }
.ecomsb-qd-config-popup { position: relative; width: 100%; max-width: 480px; max-height: 86vh; min-height: 0; overflow: hidden; display: grid; grid-template-rows: auto minmax(0, 1fr) auto; background: #fff; border-radius: 14px; padding: 0; box-shadow: 0 20px 60px rgba(0, 0, 0, .3); }
.ecomsb-qd-config-header { position: relative; z-index: 70; display: grid; grid-template-columns: 34px minmax(0, 1fr) 34px; align-items: center; gap: 8px; min-height: 58px; padding: 10px 14px; background: #fff; border-bottom: 1px solid #e5e7eb; border-radius: 14px 14px 0 0; box-shadow: 0 5px 14px rgba(15, 23, 42, .05); }
.ecomsb-qd-config-body { min-height: 0; overflow-y: auto; overflow-x: visible; overscroll-behavior: contain; padding: 18px 22px 24px; border-radius: 0; }
.ecomsb-qd-config-x { grid-column: 3; justify-self: end; position: relative; inset: auto; width: 34px; height: 34px; min-width: 34px; min-height: 34px; padding: 0; border: 0; border-radius: 50%; background: transparent; font-size: 26px; line-height: 1; color: #6b7280; cursor: pointer; }
.ecomsb-qd-config-title { grid-column: 2; min-width: 0; margin: 0; font-size: 18px; font-weight: 800; line-height: 1.3; color: #111827; text-align: center; overflow-wrap: anywhere; }
.ecomsb-qd-config-options { display: block; }
.ecomsb-qd-config-options p { margin-block: 8px; }
.ecomsb-qd-config-options label { display: block; font-weight: 600; color: #374151; margin-block-end: 4px; }
.ecomsb-qd-config-options input[type="text"], .ecomsb-qd-config-options input[type="number"], .ecomsb-qd-config-options input[type="email"], .ecomsb-qd-config-options input[type="tel"], .ecomsb-qd-config-options input[type="url"], .ecomsb-qd-config-options input[type="date"], .ecomsb-qd-config-options input[type="time"], .ecomsb-qd-config-options select, .ecomsb-qd-config-options textarea { width: 100%; padding-block: 8px; padding-inline: 10px; border: 1px solid #d1d5db; border-radius: 8px; background: #fff; color: #374151; font-size: 14px; }
.ecomsb-qd-config-options input:focus, .ecomsb-qd-config-options select:focus, .ecomsb-qd-config-options textarea:focus { outline: none; border-color: #16a34a; }
.ecomsb-qd-config-fileunsupported { margin-block-start: 6px; font-size: 12px; color: #b45309; }
.ecomsb-qd-config-error { color: #dc2626; font-size: 13px; margin-block-start: 12px; }
.ecomsb-qd-config-confirm { margin-block-start: 16px; width: 100%; padding: 12px; border: 0; border-radius: 10px; background: #16a34a; color: #fff; font-size: 15px; font-weight: 700; cursor: pointer; }
.ecomsb-qd-config-footer { position: sticky; bottom: 0; z-index: 60; flex: 0 0 auto; margin: 0; padding: 12px 22px 14px; background: #fff; border-top: 1px solid #e5e7eb; border-radius: 0 0 14px 14px; box-shadow: 0 -6px 14px rgba(0, 0, 0, .06); }
.ecomsb-qd-config-footer .ecomsb-qd-config-confirm { margin-block-start: 0; }
@media (max-width: 767px) {
    .ecomsb-qd-config-popup { padding: 0; border-radius: 12px; }
    .ecomsb-qd-config-header { min-height: 54px; padding: 8px 12px; border-radius: 12px 12px 0 0; }
    .ecomsb-qd-config-body { padding: 16px; border-radius: 0; }
    .ecomsb-qd-config-footer { margin: 0; padding: 12px 16px 14px; border-radius: 0 0 12px 12px; }
}

/* Readable add-on label/value pairs rendered under a gift item in the Quick
   Order Thank You popup. */
.ecomsb-ty-item-addons { display: block; margin-block-start: 2px; }
.ecomsb-ty-item-addon { display: block; font-size: 12px; color: #6b7280; }

/* Gift configuration popup hero: centered image, name, struck original price and
   a green Free Gift badge, with a customization instruction line. Scoped to the
   Quantity Deals gift config popup; never affects the Slider popup. */
.ecomsb-qd-config-hero { display: flex; flex-direction: column; align-items: center; gap: 8px; margin-block-end: 12px; text-align: center; }
.ecomsb-qd-config-hero-img { position: relative; width: 150px; height: 150px; max-width: 100%; }
.ecomsb-qd-config-hero-img img { width: 100%; height: 100%; object-fit: cover; border-radius: 12px; display: block; }
.ecomsb-qd-config-ribbon { position: absolute; inset: 0; pointer-events: none; background-repeat: no-repeat; background-position: top left; background-size: 100% 100%; border-radius: 12px; }
@media (max-width: 480px) { .ecomsb-qd-config-hero-img { width: 128px; height: 128px; } }
.ecomsb-qd-config-hero-body { display: flex; flex-direction: column; align-items: center; gap: 4px; }
.ecomsb-qd-config-name { font-size: 15px; font-weight: 700; color: #111827; text-align: center; }
.ecomsb-qd-config-price-row { display: inline-flex; align-items: center; gap: 8px; }
.ecomsb-qd-config-price-old { text-decoration: line-through; color: #9ca3af; font-size: 14px; }
.ecomsb-qd-config-free-badge { display: inline-block; padding-block: 2px; padding-inline: 8px; border-radius: 999px; background: #16a34a; color: #fff; font-size: 12px; font-weight: 700; }
.ecomsb-qd-config-instructions {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    width: 100%;
    text-align: center;
    color: #4b5563;
    font-size: 13px;
    font-weight: 700;
    margin-block-end: 10px;
}
.ecomsb-qd-config-instructions::before,
.ecomsb-qd-config-instructions::after {
    content: "";
    flex: 0 0 auto;
    width: 12px;
    height: 12px;
    border-right: 3px solid #dc2626;
    border-bottom: 3px solid #dc2626;
    animation: ecomsb-qd-addon-arrow-bob 1s ease-in-out infinite;
}
@keyframes ecomsb-qd-addon-arrow-bob {
    0%, 100% { transform: translateY(-2px) rotate(45deg); }
    50% { transform: translateY(3px) rotate(45deg); }
}
@media (prefers-reduced-motion: reduce) {
    .ecomsb-qd-config-instructions::before,
    .ecomsb-qd-config-instructions::after { animation: none; transform: rotate(45deg); }
}

/* Thank You popup: site-gift Free Gift indicator as a green pill (non-site gifts
   never receive it). */
.ecomsb-ty-free-badge { display: inline-block; margin-inline-start: 6px; padding-block: 1px; padding-inline: 7px; border-radius: 999px; background: #16a34a; color: #fff; font-size: 11px; font-weight: 700; vertical-align: middle; }

@media (max-width: 600px) {
    .ecomsb-qd-price-row { padding-inline: 8px; }
    .ecomsb-qd-prow-before,
    .ecomsb-qd-prow-after {
        flex: 1 1 0;
        min-width: 0;
        padding-inline: 10px;
    }
}

@media (max-width: 767px) {
    .ecomsb-giftpop {
        max-height: 80vh;
        max-height: 80dvh;
    }
    .ecomsb-giftpop-body {
        overflow-y: auto;
        overscroll-behavior: contain;
        -webkit-overflow-scrolling: touch;
        scrollbar-gutter: stable;
    }
}

@media (max-width: 480px) {
    .ecomsb-giftpop-header { min-height: 54px; padding: 8px 12px; border-radius: 12px 12px 0 0; }
    .ecomsb-giftpop-body { padding: 16px; border-radius: 0; }
    .ecomsb-giftpop-footer { padding: 12px 16px 14px; border-radius: 0 0 12px 12px; }
}

/* Quantity Deals — hide the store/theme native purchase controls only when a
   rendered offer explicitly requests it. The plugin's own CTA and sticky bar are
   outside these selectors and remain interactive. */
body.single-product.ecomsb-qda-hide-native-cart div.product .summary form.cart,
body.single-product.ecomsb-qda-hide-native-cart div.product .entry-summary form.cart,
body.single-product.ecomsb-qda-hide-native-cart div.product .summary .woocommerce-variation-add-to-cart,
body.single-product.ecomsb-qda-hide-native-cart .shoptimizer-sticky-add-to-cart,
body.single-product.ecomsb-qda-hide-native-cart .commercekit-sticky-add-to-cart,
body.single-product.ecomsb-qda-hide-native-cart .etheme-sticky-cart,
body.single-product.ecomsb-qda-hide-native-cart .wd-sticky-btn,
body.single-product.ecomsb-qda-hide-native-cart .woodmart-sticky-btn,
body.single-product.ecomsb-qda-hide-native-cart .sticky-add-to-cart:not(.ecomsb-sticky),
body.single-product.ecomsb-qda-hide-native-cart .single_add_to_cart_button:not(.ecomsb-qd *),
body.single-product.ecomsb-qda-hide-native-cart .single-product-builder .et_product-block form.cart,
body.single-product.ecomsb-qda-hide-native-cart .elementor-widget-woocommerce-product-etheme_add_to_cart .etheme-add-to-cart-form form.cart,
body.single-product.ecomsb-qda-hide-native-cart .ecomsb-qda-native-cart,
body.single-product.ecomsb-qda-hide-native-cart .ecomsb-qda-native-cart-extra,
body.single-product.ecomsb-qda-hide-native-cart .ecomsb-qda-theme-sticky-cart,
body.single-product.ecomsb-qda-hide-native-cart .ecomsb-qda-native-quantity {
    display: none !important;
    visibility: hidden !important;
    pointer-events: none !important;
}

body.single-product.ecomsb-qda-hide-native-price .ecomsb-qda-native-price,
body.single-product.ecomsb-qda-hide-native-price .ecomsb-qda-native-price-extra {
    display: none !important;
    visibility: hidden !important;
    pointer-events: none !important;
}


/* Quick Order gift summary: every gift stays visibly free; paid add-ons use a separate row. */
.ecomsb-qo-summary-free-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: auto;
    padding: 2px 8px;
    border-radius: 999px;
    background: #16a34a;
    color: #fff;
    font-size: 11px;
    font-weight: 700;
    line-height: 1.4;
    white-space: nowrap;
}
.ecomsb-qo-summary-gift-addon-line .ecomsb-qo-summary-detail-label {
    padding-inline-start: 14px;
    color: #475569;
    font-size: .92em;
}

/* badges must reserve real space instead of covering card content. */

.ecomsb-qd-deal.ecomsb-qd-deal--bs-banner {
    padding-top: 14px;
}
.ecomsb-qd-deal.ecomsb-qd-deal--bs-banner .ecomsb-qd-ribbon--banner {
    position: relative;
    inset: auto;
    top: auto;
    display: block;
    align-self: stretch;
    width: auto;
    margin: -14px -16px 3px;
    flex: 0 0 auto;
    box-sizing: border-box;
    z-index: 1;
}

/* adaptive built-in Quick Order submit icons. */
.ecomsb-qo-overlay button.ecomsb-qo-submit .ecomsb-qo-submit-ico:not(.ecomsb-qo-submit-ico--custom) {
    color: var(--ecomsb-qo-submit-icon-color, #ffffff);
}
.ecomsb-qo-overlay button.ecomsb-qo-submit:hover .ecomsb-qo-submit-ico:not(.ecomsb-qo-submit-ico--custom),
.ecomsb-qo-overlay button.ecomsb-qo-submit:focus-visible .ecomsb-qo-submit-ico:not(.ecomsb-qo-submit-ico--custom) {
    color: var(--ecomsb-qo-submit-icon-hover-color, #ffffff);
}
.ecomsb-qo-submit-ico--builtin svg,
.ecomsb-qo-submit-ico.ecomsb-lottie-ico svg {
    width: 100%;
    height: 100%;
    display: block;
}
.ecomsb-qo-submit-ico--custom {
    object-fit: contain;
}


/* cross-theme hardening for Quick Order and Inquiry.
   These selectors deliberately include the component root plus the owned control
   class so broad theme button/input/heading rules cannot alter geometry or state. */
.ecomsb-qo-overlay .ecomsb-qo-dialog {
    font-family: var(--ecomsb-font, inherit);
    font-synthesis: none;
}
.ecomsb-qo-overlay .ecomsb-qo-title,
.ecomsb-qo-overlay .ecomsb-qo-label,
.ecomsb-qo-overlay .ecomsb-qo-summary-title,
.ecomsb-qo-overlay .ecomsb-qo-summary-section-title,
.ecomsb-qo-overlay .ecomsb-qo-ty-h,
.ecomsb-qo-overlay .ecomsb-qo-ty-subhead {
    font-family: inherit;
    font-style: normal;
    font-synthesis: none;
    letter-spacing: normal;
    text-transform: none;
}
.ecomsb-qo-overlay button.ecomsb-qo-close {
    display: inline-grid;
    place-items: center;
    flex: 0 0 36px;
    width: 36px;
    min-width: 36px;
    max-width: 36px;
    height: 36px;
    min-height: 36px;
    max-height: 36px;
    aspect-ratio: 1 / 1;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: #fee2e2;
    color: #dc2626;
    box-shadow: 0 2px 6px rgba(0, 0, 0, .12);
    font-family: Arial, sans-serif;
    font-size: 22px;
    font-weight: 700;
    line-height: 1;
    text-align: center;
    text-decoration: none;
    text-shadow: none;
    transform: none;
}
.ecomsb-qo-overlay button.ecomsb-qo-close:hover,
.ecomsb-qo-overlay button.ecomsb-qo-close:focus-visible {
    background: #dc2626;
    color: #fff;
    border-color: transparent;
    box-shadow: 0 2px 6px rgba(0, 0, 0, .12);
    transform: none;
}
.ecomsb-qo-overlay .ecomsb-qo-phone-wrap input.ecomsb-qo-input[type="tel"] {
    direction: ltr;
    unicode-bidi: plaintext;
    text-align: left;
    padding-left: 44px;
    padding-right: 12px;
}
.ecomsb-qo-overlay .ecomsb-qo-phone-wrap input.ecomsb-qo-input[type="tel"]::placeholder {
    direction: ltr;
    text-align: left;
    opacity: 1;
}
/* On RTL pages the empty English/Arabic placeholder follows the form alignment;
   once the customer types, the telephone value returns to physical LTR. */
html[dir="rtl"] .ecomsb-qo-overlay .ecomsb-qo-phone-wrap input.ecomsb-qo-input[type="tel"]:placeholder-shown {
    direction: rtl;
    text-align: right;
}
html[dir="rtl"] .ecomsb-qo-overlay .ecomsb-qo-phone-wrap input.ecomsb-qo-input[type="tel"]:placeholder-shown::placeholder {
    direction: rtl;
    text-align: right;
}
.ecomsb-qo-overlay button.ecomsb-qo-region-toggle {
    background: #fff;
    color: #111827;
    border: 1px solid #d1d5db;
    border-radius: 12px;
    box-shadow: none;
    font-weight: 400;
}
.ecomsb-qo-overlay button.ecomsb-qo-region-toggle:hover,
.ecomsb-qo-overlay button.ecomsb-qo-region-toggle:focus-visible {
    background: #fff;
    color: #111827;
    border-color: #94a3b8;
    box-shadow: none;
}
.ecomsb-qo-overlay button.ecomsb-qo-region-option {
    min-height: 0;
    margin: 0;
    border: 0;
    border-radius: 10px;
    background: transparent;
    color: #111827;
    box-shadow: none;
    font: inherit;
    font-weight: 400;
    line-height: 1.35;
    text-decoration: none;
    text-shadow: none;
    transform: none;
}
.ecomsb-qo-overlay button.ecomsb-qo-region-option:hover,
.ecomsb-qo-overlay button.ecomsb-qo-region-option:focus-visible,
.ecomsb-qo-overlay button.ecomsb-qo-region-option[aria-selected="true"] {
    background: #f1f5f9;
    color: #111827;
    border-color: transparent;
    box-shadow: none;
    filter: none;
    transform: none;
}
.ecomsb-qo-overlay button.ecomsb-qo-region-option:hover .ecomsb-qo-region-opt-name,
.ecomsb-qo-overlay button.ecomsb-qo-region-option:focus-visible .ecomsb-qo-region-opt-name {
    color: #111827;
}
.ecomsb-qo-overlay button.ecomsb-qo-region-option:hover .ecomsb-qo-region-opt-cost,
.ecomsb-qo-overlay button.ecomsb-qo-region-option:focus-visible .ecomsb-qo-region-opt-cost {
    color: #9d6673;
}
.ecomsb-qo-overlay button.ecomsb-qo-ty-print {
    width: 100%;
    min-height: 42px;
    margin: 0;
    padding: 10px 14px;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    background: transparent;
    color: #475569;
    box-shadow: none;
    font-family: inherit;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.25;
    letter-spacing: normal;
    text-decoration: none;
    text-shadow: none;
    text-transform: none;
    filter: none;
    transform: none;
}
.ecomsb-qo-overlay button.ecomsb-qo-ty-print:hover,
.ecomsb-qo-overlay button.ecomsb-qo-ty-print:focus-visible {
    border-color: #cbd5e1;
    background: #f8fafc;
    color: #334155;
    box-shadow: none;
    filter: none;
    transform: none;
}

/* Elessi/hostile-theme Quick Order ownership.
   The selectors deliberately include the overlay, dialog and owned subcomponent.
   !important is limited to late theme states that were observed to win even
   after the Stage 2 load-order pass: placeholders and CTA hover/print colours. */
.ecomsb-qo-overlay .ecomsb-qo-dialog input.ecomsb-qo-region-search {
    -webkit-appearance: none;
    appearance: none;
    width: 100%;
    max-width: none;
    min-height: 0;
    margin: 0 0 6px;
    padding: 9px 11px;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    background: #fff;
    color: #111827;
    -webkit-text-fill-color: #111827;
    box-shadow: none;
    font: inherit;
    font-size: 16px;
    font-weight: 400;
    line-height: 1.35;
    opacity: 1;
}
.ecomsb-qo-overlay .ecomsb-qo-dialog input.ecomsb-qo-region-search::placeholder {
    color: #64748b !important;
    -webkit-text-fill-color: #64748b !important;
    opacity: 1 !important;
}
.ecomsb-qo-overlay .ecomsb-qo-dialog button.ecomsb-qo-region-toggle .ecomsb-qo-region-label,
.ecomsb-qo-overlay .ecomsb-qo-dialog button.ecomsb-qo-region-option .ecomsb-qo-region-opt-name {
    color: #111827;
    -webkit-text-fill-color: #111827;
    opacity: 1;
    visibility: visible;
}
.ecomsb-qo-overlay .ecomsb-qo-dialog button.ecomsb-qo-region-option .ecomsb-qo-region-opt-cost {
    color: #9d6673;
    -webkit-text-fill-color: #9d6673;
    opacity: 1;
    visibility: visible;
}
.ecomsb-qo-overlay .ecomsb-qo-dialog button.ecomsb-qo-region-option .ecomsb-qo-region-opt-cost.ecomsb-qo-region-opt-cost--free {
    color: #15803d;
    -webkit-text-fill-color: #15803d;
}
.ecomsb-qo-overlay .ecomsb-qo-dialog .ecomsb-qo-footer button.ecomsb-qo-submit:hover,
.ecomsb-qo-overlay .ecomsb-qo-dialog .ecomsb-qo-footer button.ecomsb-qo-submit:focus-visible {
    background-color: var(--ecomsb-qo-hover-bg, #16a34a) !important;
    background-image: none !important;
    color: var(--ecomsb-qo-hover-color, #fff) !important;
}
.ecomsb-qo-overlay .ecomsb-qo-dialog .ecomsb-qo-summary-product-line,
.ecomsb-qo-overlay .ecomsb-qo-dialog .ecomsb-qo-summary-gift-line,
.ecomsb-qo-overlay .ecomsb-qo-dialog .ecomsb-qo-ty-item {
    align-items: flex-start;
}
.ecomsb-qo-overlay .ecomsb-qo-dialog .ecomsb-qo-summary-product-line .ecomsb-qo-summary-detail-label,
.ecomsb-qo-overlay .ecomsb-qo-dialog .ecomsb-qo-summary-gift-line .ecomsb-qo-summary-detail-label,
.ecomsb-qo-overlay .ecomsb-qo-dialog .ecomsb-qo-ty-product-label,
.ecomsb-qo-overlay .ecomsb-qo-dialog .ecomsb-ty-item-name {
    font-synthesis: none;
    line-height: 1.45;
}
.ecomsb-qo-overlay .ecomsb-qo-dialog .ecomsb-qo-ty-title {
    line-height: 1.35;
    font-synthesis: none;
}
.ecomsb-qo-overlay .ecomsb-qo-dialog .ecomsb-qo-ty-desc,
.ecomsb-qo-overlay .ecomsb-qo-dialog .ecomsb-qo-ty-line,
.ecomsb-qo-overlay .ecomsb-qo-dialog .ecomsb-qo-ty-line > span,
.ecomsb-qo-overlay .ecomsb-qo-dialog .ecomsb-qo-ty-line > strong {
    line-height: 1.45;
    font-synthesis: none;
}
.ecomsb-qo-overlay .ecomsb-qo-dialog .ecomsb-qo-ty-actions button.ecomsb-qo-ty-closebtn,
.ecomsb-qo-overlay .ecomsb-qo-dialog .ecomsb-qo-ty-actions a.ecomsb-qo-ty-wa {
    min-height: 48px;
    margin: 0;
    padding: 11px 14px;
    border: 0;
    border-radius: 12px;
    box-shadow: none;
    font-family: inherit;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.25;
    letter-spacing: normal;
    text-align: center;
    text-decoration: none;
    text-shadow: none;
    text-transform: none;
    filter: none;
    transform: none;
}
.ecomsb-qo-overlay .ecomsb-qo-dialog .ecomsb-qo-ty-actions button.ecomsb-qo-ty-closebtn {
    background: var(--ecomsb-qo-submit-bg, #111);
    color: var(--ecomsb-qo-submit-color, #fff);
}
.ecomsb-qo-overlay .ecomsb-qo-dialog .ecomsb-qo-ty-actions button.ecomsb-qo-ty-closebtn:hover,
.ecomsb-qo-overlay .ecomsb-qo-dialog .ecomsb-qo-ty-actions button.ecomsb-qo-ty-closebtn:focus-visible {
    background: var(--ecomsb-qo-hover-bg, #16a34a);
    color: var(--ecomsb-qo-hover-color, #fff);
}
.ecomsb-qo-overlay .ecomsb-qo-dialog .ecomsb-qo-ty-actions a.ecomsb-qo-ty-wa,
.ecomsb-qo-overlay .ecomsb-qo-dialog .ecomsb-qo-ty-actions a.ecomsb-qo-ty-wa:visited,
.ecomsb-qo-overlay .ecomsb-qo-dialog .ecomsb-qo-ty-actions a.ecomsb-qo-ty-wa:hover,
.ecomsb-qo-overlay .ecomsb-qo-dialog .ecomsb-qo-ty-actions a.ecomsb-qo-ty-wa:focus-visible {
    background: #22c55e !important;
    color: #fff !important;
}
.ecomsb-qo-overlay .ecomsb-qo-dialog .ecomsb-qo-ty-actions button.ecomsb-qo-ty-print {
    display: inline-flex !important;
    visibility: visible;
    opacity: 1;
    min-height: 42px;
    background: #f8fafc;
    color: #334155 !important;
    -webkit-text-fill-color: #334155;
}
.ecomsb-qo-overlay .ecomsb-qo-dialog .ecomsb-qo-ty-actions button.ecomsb-qo-ty-print:hover,
.ecomsb-qo-overlay .ecomsb-qo-dialog .ecomsb-qo-ty-actions button.ecomsb-qo-ty-print:focus-visible {
    background: #eef2f7;
    color: #0f172a !important;
    -webkit-text-fill-color: #0f172a;
}
.ecomsb-qo-overlay .ecomsb-qo-dialog .ecomsb-qo-ty-actions button.ecomsb-qo-ty-print > span,
.ecomsb-qo-overlay .ecomsb-qo-dialog .ecomsb-qo-ty-actions button.ecomsb-qo-ty-print > svg,
.ecomsb-qo-overlay .ecomsb-qo-dialog .ecomsb-qo-ty-actions a.ecomsb-qo-ty-wa > span,
.ecomsb-qo-overlay .ecomsb-qo-dialog .ecomsb-qo-ty-actions a.ecomsb-qo-ty-wa > svg {
    display: inline-block;
    visibility: visible;
    opacity: 1;
    color: inherit;
}

.ecomsb-inqpop-overlay .ecomsb-inqpop {
    font-family: var(--ecomsb-font, inherit);
    font-synthesis: none;
}
.ecomsb-inqpop-overlay button.ecomsb-inqpop-x {
    display: inline-grid;
    place-items: center;
    width: 30px;
    min-width: 30px;
    max-width: 30px;
    height: 30px;
    min-height: 30px;
    max-height: 30px;
    aspect-ratio: 1 / 1;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: #ef4444;
    color: #fff;
    box-shadow: none;
    font-family: Arial, sans-serif;
    font-size: 17px;
    font-weight: 700;
    line-height: 1;
    text-align: center;
    text-decoration: none;
    text-shadow: none;
    transform: none;
}
.ecomsb-inqpop-overlay button.ecomsb-inqpop-x:hover,
.ecomsb-inqpop-overlay button.ecomsb-inqpop-x:focus-visible {
    background: #dc2626;
    color: #fff;
    box-shadow: none;
    filter: none;
    transform: none;
}
.ecomsb-inqpop-overlay .ecomsb-inqpop-stepper {
    min-height: 46px;
    border: 1px solid #d1d5db;
    border-radius: 10px;
    background: #fff;
    overflow: hidden;
    box-shadow: none;
}
.ecomsb-inqpop-overlay .ecomsb-inqpop-stepper button {
    display: inline-grid;
    place-items: center;
    flex: 0 0 46px;
    width: 46px;
    min-width: 46px;
    max-width: 46px;
    height: 46px;
    min-height: 46px;
    max-height: 46px;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: #f3f4f6;
    color: #374151;
    box-shadow: none;
    font-family: Arial, sans-serif;
    font-size: 20px;
    font-weight: 400;
    line-height: 1;
    text-align: center;
    text-decoration: none;
    text-shadow: none;
    transform: none;
}
.ecomsb-inqpop-overlay .ecomsb-inqpop-stepper button:hover,
.ecomsb-inqpop-overlay .ecomsb-inqpop-stepper button:focus-visible {
    background: #e5e7eb;
    color: #111827;
    box-shadow: none;
    filter: none;
    transform: none;
}
.ecomsb-inqpop-overlay .ecomsb-inqpop-stepper input {
    height: 46px;
    min-height: 46px;
    margin: 0;
    padding: 0 8px;
    border: 0;
    border-radius: 0;
    background: #fff;
    color: #374151;
    box-shadow: none;
    line-height: 46px;
}
.ecomsb-inqpop-overlay .ecomsb-inqpop-notestoggle {
    min-height: 46px;
    margin: 0;
    padding: 0 14px;
    border: 1px solid #d1d5db;
    border-radius: 10px;
    background: #fff;
    color: #374151;
    box-shadow: none;
    font: inherit;
    line-height: 1.25;
}
.ecomsb-inqpop-overlay .ecomsb-inqpop-notestoggle:hover,
.ecomsb-inqpop-overlay .ecomsb-inqpop-notestoggle:focus-within {
    border-color: #94a3b8;
    background: #f8fafc;
    color: #374151;
}
.ecomsb-inqpop-overlay .ecomsb-inqpop-notestoggle input[type="checkbox"] {
    width: 16px;
    min-width: 16px;
    height: 16px;
    min-height: 16px;
    margin: 0;
    padding: 0;
    border-radius: 4px;
    accent-color: #2563eb;
    box-shadow: none;
}
.ecomsb-inqpop-overlay .ecomsb-inqpop-input,
.ecomsb-inqpop-overlay .ecomsb-inqpop-textarea {
    margin: 0;
    border: 1px solid #d1d5db;
    border-radius: 10px;
    background: #fff;
    color: #111827;
    box-shadow: none;
    font-family: inherit;
    font-weight: 400;
    letter-spacing: normal;
    text-transform: none;
}


/* component-owned critical contracts.
   Scoped !important is limited to properties commonly forced by late theme rules. */
body .ecomsb-qo-overlay .ecomsb-qo-dialog .ecomsb-qo-title {
    font-size: var(--ecomsb-qo-title-size, 24px) !important;
    font-weight: var(--ecomsb-qo-title-weight, 800) !important;
    color: var(--ecomsb-qo-title-color, #111827) !important;
    -webkit-text-fill-color: var(--ecomsb-qo-title-color, #111827) !important;
    line-height: 1.3 !important;
    letter-spacing: normal !important;
    text-transform: none !important;
}
body .ecomsb-qo-overlay .ecomsb-qo-dialog .ecomsb-qo-desc {
    font-size: var(--ecomsb-qo-desc-size, 16px) !important;
    font-weight: var(--ecomsb-qo-desc-weight, 400) !important;
    color: var(--ecomsb-qo-desc-color, #111111) !important;
    -webkit-text-fill-color: var(--ecomsb-qo-desc-color, #111111) !important;
    line-height: 1.55 !important;
    letter-spacing: normal !important;
    text-transform: none !important;
}
body .ecomsb-qo-overlay .ecomsb-qo-dialog .ecomsb-qo-label {
    font-size: var(--ecomsb-qo-label-size, 14px) !important;
    font-weight: var(--ecomsb-qo-label-weight, 700) !important;
    color: var(--ecomsb-qo-label-color, #334155) !important;
    -webkit-text-fill-color: var(--ecomsb-qo-label-color, #334155) !important;
    line-height: 1.35 !important;
    letter-spacing: normal !important;
    text-transform: none !important;
}
body .ecomsb-qo-overlay .ecomsb-qo-dialog :is(input.ecomsb-qo-input, select.ecomsb-qo-input, textarea.ecomsb-qo-input, button.ecomsb-qo-region-toggle, input.ecomsb-qo-region-search) {
    border: 1px solid #d1d5db !important;
    border-radius: 12px !important;
    background-color: #fff !important;
    background-image: none !important;
    color: #111827 !important;
    -webkit-text-fill-color: #111827 !important;
    box-shadow: none !important;
    font-weight: 400 !important;
    line-height: 1.35 !important;
    letter-spacing: normal !important;
    text-transform: none !important;
}
body .ecomsb-qo-overlay .ecomsb-qo-dialog :is(input.ecomsb-qo-input, select.ecomsb-qo-input, textarea.ecomsb-qo-input, button.ecomsb-qo-region-toggle, input.ecomsb-qo-region-search):is(:focus, :focus-visible) {
    outline: 0 !important;
    border-color: #2563eb !important;
    box-shadow: 0 0 0 3px rgba(37, 99, 235, .13) !important;
}
body .ecomsb-qo-overlay .ecomsb-qo-dialog :is(.ecomsb-qo-input.ecomsb-qo-invalid, .ecomsb-qo-region-picker.ecomsb-qo-invalid button.ecomsb-qo-region-toggle) {
    border-color: #dc2626 !important;
    box-shadow: 0 0 0 3px rgba(220, 38, 38, .12) !important;
}
body .ecomsb-qo-overlay .ecomsb-qo-dialog button.ecomsb-qo-close {
    width: 36px !important; min-width: 36px !important; max-width: 36px !important;
    height: 36px !important; min-height: 36px !important; max-height: 36px !important;
    padding: 0 !important; border: 0 !important; border-radius: 50% !important;
    background: #fee2e2 !important; color: #dc2626 !important; -webkit-text-fill-color: #dc2626 !important;
    opacity: 1 !important; line-height: 1 !important; transform: none !important; filter: none !important;
}
body .ecomsb-qo-overlay .ecomsb-qo-dialog button.ecomsb-qo-close:is(:hover, :focus-visible, :active) {
    background: #dc2626 !important; color: #fff !important; -webkit-text-fill-color: #fff !important;
}
body .ecomsb-qo-overlay .ecomsb-qo-dialog .ecomsb-qo-footer button.ecomsb-qo-submit {
    min-height: 62px !important; border: 0 !important;
    border-radius: var(--ecomsb-qo-submit-radius, 14px) !important;
    background-color: var(--ecomsb-qo-submit-bg, #2d9a6e) !important; background-image: none !important;
    color: var(--ecomsb-qo-submit-color, #fff) !important; -webkit-text-fill-color: var(--ecomsb-qo-submit-color, #fff) !important;
    box-shadow: none !important; opacity: 1 !important;
    font-size: var(--ecomsb-qo-submit-size, 20px) !important; font-weight: var(--ecomsb-qo-submit-weight, 900) !important;
    line-height: 1.25 !important; letter-spacing: normal !important; text-transform: none !important;
    filter: none !important; transform: none !important;
}
body .ecomsb-qo-overlay .ecomsb-qo-dialog .ecomsb-qo-footer button.ecomsb-qo-submit:is(:hover, :focus-visible, :active):not(:disabled) {
    background-color: var(--ecomsb-qo-hover-bg, #fe6f3a) !important;
    color: var(--ecomsb-qo-hover-color, #fff) !important; -webkit-text-fill-color: var(--ecomsb-qo-hover-color, #fff) !important;
}
body .ecomsb-qo-overlay .ecomsb-qo-dialog .ecomsb-qo-footer button.ecomsb-qo-submit:is(.is-loading, :disabled) {
    background-color: var(--ecomsb-qo-submit-bg, #2d9a6e) !important;
    color: var(--ecomsb-qo-submit-color, #fff) !important; -webkit-text-fill-color: var(--ecomsb-qo-submit-color, #fff) !important;
    opacity: 1 !important;
}
body .ecomsb-qo-overlay .ecomsb-qo-dialog .ecomsb-qo-submit-text {
    color: inherit !important; -webkit-text-fill-color: currentColor !important;
    font-size: inherit !important; font-weight: inherit !important; line-height: inherit !important;
    letter-spacing: inherit !important; text-transform: none !important; opacity: 1 !important;
}
body .ecomsb-qo-overlay .ecomsb-qo-dialog :is(.ecomsb-qo-summary-detail-label, .ecomsb-qo-ty-product-label, .ecomsb-ty-item-name) {
    font-weight: 400 !important; line-height: 1.45 !important; letter-spacing: normal !important; text-transform: none !important;
}
body .ecomsb-qo-overlay .ecomsb-qo-dialog .ecomsb-qo-summary-detail-value { font-weight: 600 !important; line-height: 1.45 !important; }
body .ecomsb-qo-overlay .ecomsb-qo-dialog .ecomsb-qo-ty-item-copy strong { font-weight: 700 !important; line-height: 1.45 !important; }
body .ecomsb-qo-overlay .ecomsb-qo-dialog :is(.ecomsb-qo-summary-title, .ecomsb-qo-summary-section-title, .ecomsb-qo-ty-title, .ecomsb-qo-ty-subhead) {
    font-weight: 800 !important; line-height: 1.35 !important; letter-spacing: normal !important; text-transform: none !important;
}
body .ecomsb-qo-overlay .ecomsb-qo-dialog :is(.ecomsb-qo-summary-section-title, .ecomsb-qo-ty-h) {
    background: var(--ecomsb-qo-section-title-bg, #ecfdf5) !important;
    color: var(--ecomsb-qo-section-title-color, #047857) !important;
    -webkit-text-fill-color: var(--ecomsb-qo-section-title-color, #047857) !important;
}
body .ecomsb-qo-overlay .ecomsb-qo-dialog .ecomsb-qo-ty-h { font-weight: 700 !important; line-height: 1.35 !important; }
body .ecomsb-qo-overlay .ecomsb-qo-dialog .ecomsb-qo-ty-actions :is(button.ecomsb-qo-ty-closebtn, button.ecomsb-qo-ty-print, a.ecomsb-qo-ty-wa) {
    box-shadow: none !important; opacity: 1 !important; line-height: 1.25 !important;
    letter-spacing: normal !important; text-decoration: none !important; text-transform: none !important;
    filter: none !important; transform: none !important;
}
body .ecomsb-qo-overlay .ecomsb-qo-dialog .ecomsb-qo-ty-actions :is(button.ecomsb-qo-ty-closebtn, button.ecomsb-qo-ty-print, a.ecomsb-qo-ty-wa) :is(span, svg, path) {
    color: inherit !important; -webkit-text-fill-color: currentColor !important; opacity: 1 !important;
}
body .ecomsb-inqpop-overlay .ecomsb-inqpop button.ecomsb-inqpop-send {
    min-height: 48px !important; border: 0 !important; border-radius: 10px !important;
    background-color: #111827 !important; background-image: none !important;
    color: #fff !important; -webkit-text-fill-color: #fff !important; box-shadow: none !important; opacity: 1 !important;
    font-size: 15px !important; font-weight: 700 !important; line-height: 1.25 !important;
    letter-spacing: normal !important; text-transform: none !important; filter: none !important; transform: none !important;
}
body .ecomsb-inqpop-overlay .ecomsb-inqpop button.ecomsb-inqpop-send:is(:hover, :focus-visible, :active) { background-color: #0f172a !important; }
body .ecomsb-inqpop-overlay .ecomsb-inqpop button.ecomsb-inqpop-x {
    position: absolute !important;
    top: 12px !important;
    bottom: auto !important;
    left: auto !important;
    right: auto !important;
    inset-inline-start: auto !important;
    inset-inline-end: 12px !important;
    width: 30px !important; min-width: 30px !important; max-width: 30px !important;
    height: 30px !important; min-height: 30px !important; max-height: 30px !important;
    margin: 0 !important; padding: 0 !important; border: 0 !important; border-radius: 50% !important;
    opacity: 1 !important; line-height: 1 !important; transform: none !important;
}


/* General Typography and Inquiry card contracts. */
body .ecomsb-qd,
body .ecomsb-sticky,
body .ecomsb-qo-overlay .ecomsb-qo-dialog,
body .ecomsb-inqpop-overlay .ecomsb-inqpop,
body .ecomsb-giftpop-overlay,
body .ecomsb-qd-config-overlay {
    font-family: var(--ecomsb-font, inherit) !important;
    font-synthesis: none;
}
body .ecomsb-qd :is(.ecomsb-qd-title, .ecomsb-qd-desc, .ecomsb-qd-product-name, .ecomsb-qd-deal-title, .ecomsb-qd-deal-desc, .ecomsb-qd-price-new, .ecomsb-qd-price-old, .ecomsb-qd-unit, .ecomsb-qd-qty-pill) {
    font-family: var(--ecomsb-font, inherit) !important;
    font-synthesis: none;
    letter-spacing: normal !important;
    text-transform: none !important;
}
body .ecomsb-qd .ecomsb-qd-title {
    font-size: var(--ecomsb-qd-title-size, 18px) !important;
    font-weight: var(--ecomsb-qd-title-weight, 700) !important;
    line-height: 1.35 !important;
}
body .ecomsb-qd .ecomsb-qd-desc {
    font-size: var(--ecomsb-qd-desc-size, 15px) !important;
    font-weight: var(--ecomsb-qd-desc-weight, 400) !important;
    line-height: 1.5 !important;
}
body .ecomsb-qd .ecomsb-qd-product-name {
    font-size: var(--ecomsb-qd-pname-size, 18px) !important;
    font-weight: var(--ecomsb-qd-pname-weight, 800) !important;
    line-height: 1.4 !important;
}
body .ecomsb-qd .ecomsb-qd-deal-title {
    font-size: var(--ecomsb-qd-deal-title-size, 16px) !important;
    font-weight: var(--ecomsb-qd-deal-title-weight, 700) !important;
    line-height: 1.35 !important;
}
body .ecomsb-qd .ecomsb-qd-deal-desc {
    font-size: var(--ecomsb-qd-odesc-size, 13px) !important;
    font-weight: var(--ecomsb-qd-odesc-weight, 400) !important;
    line-height: 1.45 !important;
}
body .ecomsb-qd .ecomsb-qd-inquiry {
    align-items: center;
    gap: 16px;
}
body .ecomsb-qd .ecomsb-qd-inquiry-info {
    display: grid;
    gap: 5px;
    min-width: 0;
    text-align: start !important;
}
body .ecomsb-qd .ecomsb-qd-inquiry-title,
body .ecomsb-qd .ecomsb-qd-inquiry-desc,
body .ecomsb-qd .ecomsb-qd-inquiry-btn {
    font-family: var(--ecomsb-font, inherit) !important;
    font-synthesis: none;
    letter-spacing: normal !important;
    text-transform: none !important;
}
body .ecomsb-qd .ecomsb-qd-inquiry-title {
    margin: 0 !important;
    font-size: 16px !important;
    font-weight: 700 !important;
    line-height: 1.35 !important;
    text-align: start !important;
}
body .ecomsb-qd .ecomsb-qd-inquiry-desc {
    margin: 0 !important;
    font-size: 13px !important;
    font-weight: 400 !important;
    line-height: 1.5 !important;
    text-align: start !important;
}
body .ecomsb-qd .ecomsb-qd-inquiry button.ecomsb-qd-inquiry-btn {
    min-height: 42px !important;
    margin: 0 !important;
    padding: 11px 18px !important;
    border: 0 !important;
    border-radius: 10px !important;
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
    box-shadow: none !important;
    opacity: 1 !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    line-height: 1.25 !important;
    filter: none !important;
    transform: none !important;
}
body .ecomsb-qd .ecomsb-qd-inquiry button.ecomsb-qd-inquiry-btn--whatsapp {
    background-color: #128c7e !important;
    background-image: none !important;
}
body .ecomsb-qd .ecomsb-qd-inquiry button.ecomsb-qd-inquiry-btn--whatsapp:is(:hover, :focus-visible, :active) {
    background-color: #075e54 !important;
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
}
body .ecomsb-qd .ecomsb-qd-inquiry button.ecomsb-qd-inquiry-btn--email {
    background-color: #2563eb !important;
    background-image: none !important;
}
body .ecomsb-qd .ecomsb-qd-inquiry button.ecomsb-qd-inquiry-btn--email:is(:hover, :focus-visible, :active) {
    background-color: #1d4ed8 !important;
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
}
@media (max-width: 600px) {
    body .ecomsb-qd .ecomsb-qd-inquiry {
        flex-direction: column !important;
        align-items: center !important;
        justify-content: center !important;
        padding-inline: 0 !important;
        text-align: center !important;
    }
    body .ecomsb-qd .ecomsb-qd-inquiry-info,
    body .ecomsb-qd .ecomsb-qd-inquiry-title,
    body .ecomsb-qd .ecomsb-qd-inquiry-desc {
        width: 100% !important;
        text-align: center !important;
    }
    body .ecomsb-qd .ecomsb-qd-inquiry button.ecomsb-qd-inquiry-btn {
        width: 100% !important;
        max-width: 100% !important;
        margin-inline: auto !important;
    }
}
body .ecomsb-qo-overlay .ecomsb-qo-dialog,
body .ecomsb-qo-overlay .ecomsb-qo-dialog :is(.ecomsb-qo-title, .ecomsb-qo-desc, .ecomsb-qo-label, .ecomsb-qo-summary-title, .ecomsb-qo-summary-section-title, .ecomsb-qo-summary-detail-label, .ecomsb-qo-summary-detail-value, .ecomsb-qo-ty-title, .ecomsb-qo-ty-subhead, .ecomsb-qo-ty-h, .ecomsb-qo-ty-item-copy, .ecomsb-ty-item-name, .ecomsb-qo-submit, .ecomsb-qo-ty-actions button, .ecomsb-qo-ty-actions a) {
    font-family: var(--ecomsb-font, inherit) !important;
    font-synthesis: none;
}
body .ecomsb-inqpop-overlay .ecomsb-inqpop :is(.ecomsb-inqpop-title, .ecomsb-inqpop-desc, .ecomsb-inqpop-label, .ecomsb-inqpop-input, .ecomsb-inqpop-textarea, .ecomsb-inqpop-notestoggle, .ecomsb-inqpop-send) {
    font-family: var(--ecomsb-font, inherit) !important;
    font-synthesis: none;
}

/* final Quantity Deals typography coverage.
   Variable selectors, primary CTAs, Sticky Bar and the information accordion
   use General Typography while their existing size/weight variables remain in
   control. */
body .ecomsb-qd :is(
    .ecomsb-qd-piece-title,
    .ecomsb-qd-variant-cap,
    .ecomsb-qd-vs-label,
    .ecomsb-qd-vs-text,
    .ecomsb-qd-vs-opt,
    .ecomsb-qd-vs-control,
    .ecomsb-qd-vs-list,
    button.ecomsb-qd-add
),
body .ecomsb-sticky button.ecomsb-sticky__btn,
body .ecomsb-qd-acc :is(
    .ecomsb-qd-acc-section-title,
    button.ecomsb-qd-acc-head,
    .ecomsb-qd-acc-title,
    .ecomsb-qd-acc-panel-inner
) {
    font-family: var(--ecomsb-font, inherit) !important;
    font-synthesis: none !important;
    letter-spacing: normal !important;
    text-transform: none !important;
}
body .ecomsb-qd button.ecomsb-qd-add {
    font-size: var(--ecomsb-qd-btn-text-size, 16px) !important;
    font-weight: var(--ecomsb-qd-btn-text-weight, 700) !important;
    line-height: 1.25 !important;
}
body .ecomsb-sticky button.ecomsb-sticky__btn {
    font-size: var(--ecomsb-sticky-fs, 16px) !important;
    font-weight: var(--ecomsb-sticky-fw, 700) !important;
    line-height: 1.25 !important;
}
body .ecomsb-qd-acc .ecomsb-qd-acc-section-title {
    font-size: var(--ecomsb-qd-acc-section-title-size, 24px) !important;
    font-weight: var(--ecomsb-qd-acc-section-title-weight, 700) !important;
    line-height: 1.3 !important;
}
body .ecomsb-qd-acc .ecomsb-qd-acc-title {
    font-size: var(--ecomsb-qd-acc-title-size, 16px) !important;
    font-weight: var(--ecomsb-qd-acc-title-weight, 700) !important;
    line-height: 1.35 !important;
}
body .ecomsb-qd-acc .ecomsb-qd-acc-panel-inner {
    font-size: var(--ecomsb-qd-acc-body-size, 14px) !important;
    font-weight: var(--ecomsb-qd-acc-body-weight, 400) !important;
    line-height: 1.55 !important;
}

/* Inquiry quantity controls: pale neutral surfaces with dark, readable glyphs. */
body .ecomsb-inqpop-overlay .ecomsb-inqpop .ecomsb-inqpop-stepper button {
    background-color: #f1f5f9 !important;
    background-image: none !important;
    color: #111827 !important;
    -webkit-text-fill-color: #111827 !important;
    opacity: 1 !important;
    box-shadow: none !important;
    filter: none !important;
    transform: none !important;
}
body .ecomsb-inqpop-overlay .ecomsb-inqpop .ecomsb-inqpop-stepper button:is(:hover, :focus-visible, :active):not(:disabled) {
    background-color: #e2e8f0 !important;
    color: #000000 !important;
    -webkit-text-fill-color: #000000 !important;
}
body .ecomsb-inqpop-overlay .ecomsb-inqpop .ecomsb-inqpop-stepper button:disabled {
    background-color: #f8fafc !important;
    color: #111827 !important;
    -webkit-text-fill-color: #111827 !important;
    opacity: .55 !important;
    cursor: not-allowed !important;
}

/* Inquiry delivery-method ownership: WhatsApp stays green and Email stays blue. */
body .ecomsb-inqpop-overlay .ecomsb-inqpop button.ecomsb-inqpop-send--whatsapp {
    background-color: #128c7e !important;
}
body .ecomsb-inqpop-overlay .ecomsb-inqpop button.ecomsb-inqpop-send--whatsapp:is(:hover, :focus-visible, :active):not(:disabled) {
    background-color: #075e54 !important;
}
body .ecomsb-inqpop-overlay .ecomsb-inqpop button.ecomsb-inqpop-send--email {
    background-color: #2563eb !important;
}
body .ecomsb-inqpop-overlay .ecomsb-inqpop button.ecomsb-inqpop-send--email:is(:hover, :focus-visible, :active):not(:disabled) {
    background-color: #1d4ed8 !important;
}
body .ecomsb-inqpop-overlay .ecomsb-inqpop button.ecomsb-inqpop-send--whatsapp .ecomsb-inqpop-wa {
    width: 21px !important;
    height: 21px !important;
    border-radius: 0 !important;
    background-color: transparent !important;
    background-size: contain !important;
    box-shadow: none !important;
    filter: none !important;
}
body .ecomsb-inqpop-overlay .ecomsb-inqpop button.ecomsb-inqpop-send--email .ecomsb-inqpop-mail {
    width: 21px !important;
    height: 21px !important;
}


/* Quick Order phone confirmation and validation notice contract. */
.ecomsb-qo-overlay .ecomsb-qo-confirm-actions button.ecomsb-qo-confirm-ok,
.ecomsb-qo-overlay .ecomsb-qo-confirm-actions button.ecomsb-qo-confirm-edit {
    min-width: 112px !important;
    min-height: 42px !important;
    margin: 0 !important;
    border-radius: 10px !important;
    border: 1px solid transparent !important;
    padding: 9px 16px !important;
    font-family: var(--ecomsb-font, inherit) !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    line-height: 1.2 !important;
    text-transform: none !important;
    letter-spacing: normal !important;
    opacity: 1 !important;
    visibility: visible !important;
    box-shadow: none !important;
}
.ecomsb-qo-overlay .ecomsb-qo-confirm-actions button.ecomsb-qo-confirm-ok,
.ecomsb-qo-overlay .ecomsb-qo-confirm-actions button.ecomsb-qo-confirm-ok:hover,
.ecomsb-qo-overlay .ecomsb-qo-confirm-actions button.ecomsb-qo-confirm-ok:focus,
.ecomsb-qo-overlay .ecomsb-qo-confirm-actions button.ecomsb-qo-confirm-ok:active {
    background: #16a34a !important;
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
}
.ecomsb-qo-overlay .ecomsb-qo-confirm-actions button.ecomsb-qo-confirm-edit,
.ecomsb-qo-overlay .ecomsb-qo-confirm-actions button.ecomsb-qo-confirm-edit:hover,
.ecomsb-qo-overlay .ecomsb-qo-confirm-actions button.ecomsb-qo-confirm-edit:focus,
.ecomsb-qo-overlay .ecomsb-qo-confirm-actions button.ecomsb-qo-confirm-edit:active {
    background: #f1f5f9 !important;
    border-color: #dbe3ee !important;
    color: #334155 !important;
    -webkit-text-fill-color: #334155 !important;
}
.ecomsb-qo-overlay .ecomsb-qo-confirm--notice .ecomsb-qo-confirm-card { max-width: 360px !important; }
.ecomsb-qo-overlay .ecomsb-qo-confirm--notice .ecomsb-qo-confirm-msg { margin-bottom: 16px !important; color: #334155 !important; -webkit-text-fill-color: #334155 !important; }

/* Furnob first-paint and geometry contracts.
   These rules stay scoped to plugin-owned controls and preserve the configured
   typography/colour variables while preventing late theme textarea/button rules
   from collapsing the interactive UI. */
html body .ecomsb-qo-overlay .ecomsb-qo-dialog textarea.ecomsb-qo-input.ecomsb-qo-textarea--long {
    display: block;
    width: 100%;
    max-width: none;
    height: auto !important;
    min-height: 96px !important;
    margin: 0;
    padding: 12px 14px !important;
    box-sizing: border-box;
    resize: vertical !important;
    overflow: auto;
    white-space: pre-wrap;
    line-height: 1.5 !important;
}
html body .ecomsb-qo-overlay .ecomsb-qo-dialog textarea.ecomsb-qo-input.ecomsb-qo-textarea--address {
    min-height: 88px !important;
}
html body .ecomsb-qo-overlay .ecomsb-qo-dialog textarea.ecomsb-qo-input.ecomsb-qo-textarea--notes,
html body .ecomsb-qo-overlay .ecomsb-qo-dialog textarea.ecomsb-qo-input.ecomsb-qo-textarea--custom {
    min-height: 96px !important;
}
html body .ecomsb-qo-overlay .ecomsb-qo-dialog button.ecomsb-qo-region-toggle .ecomsb-qo-region-label {
    display: block;
    min-width: 0;
    color: #111827 !important;
    -webkit-text-fill-color: #111827 !important;
    opacity: 1 !important;
    font-family: var(--ecomsb-font, inherit);
    font-size: inherit !important;
    font-weight: 400;
    line-height: 1.35 !important;
    letter-spacing: normal;
    text-transform: none;
}
html body .ecomsb-qd-acc .ecomsb-qd-acc-section-title {
    margin: 0 !important;
    padding: 16px 14px !important;
    min-height: 0;
    border: 0;
    box-sizing: border-box;
}
html body .ecomsb-qd-acc button.ecomsb-qd-acc-head {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 16px !important;
    align-items: center;
    gap: 10px;
    width: 100%;
    min-width: 0;
    min-height: 0;
    margin: 0 !important;
    padding: var(--ecomsb-qd-acc-head-pad-y, 15px) 14px !important;
    border-radius: 0 !important;
    background-color: var(--ecomsb-qd-acc-head-bg, #fff) !important;
    background-image: none !important;
    box-shadow: none;
    opacity: 1;
}

/* Furnob-safe Region and FAQ first paint. */
html body .ecomsb-qo-overlay .ecomsb-qo-dialog button.ecomsb-qo-region-toggle {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 18px;
    align-items: center;
    width: 100%;
    min-width: 0;
    min-height: 44px !important;
    padding: 9px 12px;
    box-sizing: border-box;
}
html body .ecomsb-qo-overlay .ecomsb-qo-dialog button.ecomsb-qo-region-toggle [data-ecomsb-qo-region-label] {
    display: block !important;
    width: 100%;
    min-width: 0;
    min-height: 1.35em;
    margin: 0;
    padding: 0;
    color: #111827 !important;
    -webkit-text-fill-color: #111827 !important;
    opacity: 1 !important;
    visibility: visible !important;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    text-indent: 0;
    font-family: var(--ecomsb-font, inherit) !important;
    font-size: inherit !important;
    font-weight: 400;
    line-height: 1.35 !important;
}
html body .ecomsb-qo-overlay .ecomsb-qo-dialog .ecomsb-qo-region-label[data-ecomsb-placeholder]:empty::before {
    display: block !important;
    content: attr(data-ecomsb-placeholder) !important;
    color: #111827 !important;
    -webkit-text-fill-color: #111827 !important;
    opacity: 1 !important;
    visibility: visible !important;
}
html body .ecomsb-qd-acc h3.ecomsb-qd-acc-section-title {
    display: flex !important;
    align-items: center;
    justify-content: var(--ecomsb-qd-acc-section-title-justify, flex-start) !important;
    width: 100%;
    min-width: 0;
    min-height: 62px !important;
    margin: 0 !important;
    padding: 16px 18px !important;
    box-sizing: border-box;
    background: var(--ecomsb-qd-acc-section-bg, #fff);
    color: var(--ecomsb-qd-acc-section-title-color, #111827) !important;
    -webkit-text-fill-color: var(--ecomsb-qd-acc-section-title-color, #111827) !important;
    font-family: var(--ecomsb-font, inherit) !important;
    font-size: var(--ecomsb-qd-acc-section-title-size, 24px) !important;
    font-weight: var(--ecomsb-qd-acc-section-title-weight, 700) !important;
    line-height: 1.3 !important;
    text-align: var(--ecomsb-qd-acc-section-title-align, start);
    opacity: 1 !important;
    visibility: visible !important;
}
html body .ecomsb-qd-acc .ecomsb-qd-acc-item > button.ecomsb-qd-acc-head {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 18px !important;
    align-items: center;
    gap: 12px;
    width: 100%;
    min-width: 0;
    min-height: 58px !important;
    margin: 0 !important;
    padding: var(--ecomsb-qd-acc-head-pad-y, 15px) 18px !important;
    border-radius: 0 !important;
    background: var(--ecomsb-qd-acc-head-bg, #fff) !important;
    color: var(--ecomsb-qd-acc-title-color, #111827) !important;
    -webkit-text-fill-color: var(--ecomsb-qd-acc-title-color, #111827) !important;
    opacity: 1 !important;
    visibility: visible !important;
    box-shadow: none;
}
html body .ecomsb-qd-acc .ecomsb-qd-acc-title-group {
    display: flex !important;
    align-items: center;
    justify-content: var(--ecomsb-qd-acc-title-justify, flex-start) !important;
    gap: 10px;
    width: 100%;
    min-width: 0;
    opacity: 1 !important;
    visibility: visible !important;
}
html body .ecomsb-qd-acc :is(.ecomsb-qd-acc-icon, .ecomsb-qd-acc-toggle) {
    display: grid !important;
    place-items: center;
    flex: 0 0 auto;
    opacity: 1 !important;
    visibility: visible !important;
}
html body .ecomsb-qd-acc .ecomsb-qd-acc-icon,
html body .ecomsb-qd-acc .ecomsb-qd-acc-icon .ecomsb-qd-acc-iconimg {
    width: 24px !important;
    min-width: 24px !important;
    max-width: 24px !important;
    height: 24px !important;
    min-height: 24px !important;
    max-height: 24px !important;
    margin: 0;
    padding: 0;
    object-fit: contain;
}
html body .ecomsb-qd-acc .ecomsb-qd-acc-title {
    display: block !important;
    min-width: 0;
    margin: 0;
    color: var(--ecomsb-qd-acc-title-color, #111827) !important;
    -webkit-text-fill-color: var(--ecomsb-qd-acc-title-color, #111827) !important;
    opacity: 1 !important;
    visibility: visible !important;
    line-height: 1.35 !important;
}

/* Quick Order selected Region first paint.
   Region names are already emitted for the active locale; keep the selected
   label visible while TranslatePress and late theme animations inspect the DOM. */
html body .ecomsb-qo-overlay .ecomsb-qo-dialog .ecomsb-qo-region-label[data-no-dynamic-translation] {
    visibility: visible !important;
    opacity: 1 !important;
    transform: none !important;
    animation: none !important;
    transition: none !important;
    content-visibility: visible !important;
    clip-path: none !important;
    filter: none !important;
}
html body .ecomsb-qo-overlay .ecomsb-qo-dialog .ecomsb-qo-region-label[data-ecomsb-selected-label]:empty::before {
    content: attr(data-ecomsb-selected-label) !important;
    display: inline !important;
    visibility: visible !important;
    opacity: 1 !important;
}


/* fixed Inquiry WhatsApp artwork.
   The previous bundled image was RGB with a black canvas. Both the inline card
   and popup now use the merchant-supplied transparent PNG without synthetic
   backgrounds, filters or theme pseudo-elements. */
html body .ecomsb-qd .ecomsb-qd-inquiry .ecomsb-qd-inq-wa,
html body .ecomsb-inqpop-overlay .ecomsb-inqpop .ecomsb-inqpop-wa {
    display: inline-block !important;
    width: 22px !important;
    min-width: 22px !important;
    max-width: 22px !important;
    height: 22px !important;
    min-height: 22px !important;
    max-height: 22px !important;
    flex: 0 0 22px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background-color: transparent !important;
    background-image: url(../../img/qda/whatsapp.png?ecomsb-r26) !important;
    background-position: center !important;
    background-repeat: no-repeat !important;
    background-size: contain !important;
    box-shadow: none !important;
    filter: none !important;
    transform: none !important;
    opacity: 1 !important;
    mix-blend-mode: normal !important;
}
html body .ecomsb-qd .ecomsb-qd-inquiry .ecomsb-qd-inq-wa::before,
html body .ecomsb-qd .ecomsb-qd-inquiry .ecomsb-qd-inq-wa::after,
html body .ecomsb-inqpop-overlay .ecomsb-inqpop .ecomsb-inqpop-wa::before,
html body .ecomsb-inqpop-overlay .ecomsb-inqpop .ecomsb-inqpop-wa::after {
    content: none !important;
    display: none !important;
}


/* Gift popup fixed header and first-paint copy.
   The popup is a three-row dialog: fixed header, independently scrollable body,
   and fixed footer. Server-translated copy is never left to a late theme or
   TranslatePress mutation pass. */
html body .ecomsb-giftpop-overlay.ecomsb-giftpop--copy-ready :is(
    .ecomsb-giftpop-title,
    .ecomsb-giftpop-sec-name,
    .ecomsb-giftpop-card-label,
    .ecomsb-giftpop-variant-select .ecomsb-qd-vs-label,
    .ecomsb-giftpop-variant-select .ecomsb-qd-vs-text,
    .ecomsb-giftpop-variant-select .ecomsb-qd-vs-opt,
    .ecomsb-giftpop-sec-status,
    .ecomsb-giftpop-err
) {
    visibility: visible !important;
    opacity: 1 !important;
    transform: none !important;
    translate: none !important;
    clip-path: none !important;
    mask: none !important;
    animation: none !important;
    text-indent: 0 !important;
}
html body .ecomsb-giftpop-overlay .ecomsb-giftpop-header {
    display: grid !important;
    grid-template-columns: 34px minmax(0, 1fr) 34px !important;
    align-items: center !important;
    background-color: #fff !important;
    background-image: none !important;
}
html body .ecomsb-giftpop-overlay .ecomsb-giftpop-title {
    color: #111827 !important;
    -webkit-text-fill-color: #111827 !important;
}
html body .ecomsb-giftpop-overlay button.ecomsb-giftpop-x {
    position: relative !important;
    inset: auto !important;
    width: 34px !important;
    min-width: 34px !important;
    max-width: 34px !important;
    height: 34px !important;
    min-height: 34px !important;
    max-height: 34px !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 50% !important;
    background: transparent !important;
    color: #6b7280 !important;
    -webkit-text-fill-color: #6b7280 !important;
    box-shadow: none !important;
    opacity: 1 !important;
    transform: none !important;
}
html body .ecomsb-giftpop-overlay .ecomsb-giftpop-sec-status.is-loading {
    color: #6b7280 !important;
    -webkit-text-fill-color: #6b7280 !important;
    opacity: 1 !important;
}
html body .ecomsb-giftpop-overlay .ecomsb-giftpop-sec-status.is-error {
    color: #b91c1c !important;
    -webkit-text-fill-color: #b91c1c !important;
    opacity: 1 !important;
}

/* fixed-gift configuration popup parity and
   centered asynchronous status. The fixed/simple gift flow now uses the same
   fixed header / scrollable body / fixed footer contract as customer-choice
   gifts, while server-translated copy is visible on the first paint. */
html body .ecomsb-giftpop-overlay .ecomsb-giftpop-sec-status {
    width: 100% !important;
    margin-inline: auto !important;
    text-align: center !important;
}
html body .ecomsb-qd-config-overlay.ecomsb-qd-config--copy-ready :is(
    .ecomsb-qd-config-title,
    .ecomsb-qd-config-instructions,
    .ecomsb-qd-config-error
) {
    visibility: visible !important;
    opacity: 1 !important;
    transform: none !important;
    translate: none !important;
    clip-path: none !important;
    mask: none !important;
    animation: none !important;
    text-indent: 0 !important;
}
html body .ecomsb-qd-config-overlay .ecomsb-qd-config-popup {
    overflow: hidden !important;
    grid-template-rows: auto minmax(0, 1fr) auto !important;
}
html body .ecomsb-qd-config-overlay .ecomsb-qd-config-header {
    display: grid !important;
    grid-template-columns: 34px minmax(0, 1fr) 34px !important;
    align-items: center !important;
    background-color: #fff !important;
    background-image: none !important;
}
html body .ecomsb-qd-config-overlay .ecomsb-qd-config-title {
    margin: 0 !important;
    color: #111827 !important;
    -webkit-text-fill-color: #111827 !important;
    text-align: center !important;
}
html body .ecomsb-qd-config-overlay button.ecomsb-qd-config-x {
    position: relative !important;
    inset: auto !important;
    width: 34px !important;
    min-width: 34px !important;
    max-width: 34px !important;
    height: 34px !important;
    min-height: 34px !important;
    max-height: 34px !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 50% !important;
    background: transparent !important;
    color: #6b7280 !important;
    -webkit-text-fill-color: #6b7280 !important;
    box-shadow: none !important;
    opacity: 1 !important;
    transform: none !important;
}

/* Quick Order total keeps breathing room below
   the dashed separator across theme line-height/padding resets. */
html body .ecomsb-qo-overlay .ecomsb-qo-dialog .ecomsb-qo-summary-row.ecomsb-qo-summary-total {
    margin-top: 8px !important;
    padding-top: 13px !important;
    padding-bottom: 2px !important;
    line-height: 1.45 !important;
}



/* theme-resistant variation media geometry.
   The media wrapper, rather than the theme-controlled img element, owns a true
   square. Exact grouped selections replace the image in place while captions
   and remaining-attribute dropdowns stay in their own card layers. */
html body .ecomsb-qd .ecomsb-qd-variant-card,
html body .ecomsb-giftpop-overlay .ecomsb-giftpop-card {
    position: relative !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
    flex-direction: column !important;
    align-items: center !important;
    overflow: visible !important;
    isolation: isolate !important;
}
html body .ecomsb-qd .ecomsb-qd-variant-media,
html body .ecomsb-giftpop-overlay .ecomsb-giftpop-card-img {
    position: relative !important;
    display: grid !important;
    place-items: center !important;
    width: 100% !important;
    max-width: 100% !important;
    aspect-ratio: 1 / 1 !important;
    height: auto !important;
    min-height: 0 !important;
    overflow: hidden !important;
    border-radius: 8px !important;
    background-color: #fff !important;
    background-image: var(--ecomsb-variation-media-image, none) !important;
    background-repeat: no-repeat !important;
    background-position: center !important;
    background-size: contain !important;
    isolation: isolate !important;
    line-height: 0 !important;
}
html body .ecomsb-qd .ecomsb-qd-variant-media > img,
html body .ecomsb-giftpop-overlay .ecomsb-giftpop-card-img > img {
    display: block !important;
    width: 100% !important;
    min-width: 100% !important;
    max-width: 100% !important;
    height: 100% !important;
    min-height: 100% !important;
    max-height: 100% !important;
    aspect-ratio: 1 / 1 !important;
    object-fit: contain !important;
    object-position: center !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 8px !important;
    box-shadow: none !important;
    transform: none !important;
    position: relative !important;
    z-index: 1 !important;
    visibility: visible !important;
    opacity: 1 !important;
}
html body .ecomsb-qd .ecomsb-qd-variant-media > .ecomsb-qd-variant-noimg,
html body .ecomsb-giftpop-overlay .ecomsb-giftpop-card-img > .ecomsb-giftpop-card-noimg {
    display: grid !important;
    place-items: center !important;
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
    margin: 0 !important;
    border-radius: 8px !important;
    background: #f3f4f6 !important;
    font-size: 28px !important;
    line-height: 1 !important;
}
html body .ecomsb-qd .ecomsb-qd-variant-card--grouped .ecomsb-qd-variant-cap,
html body .ecomsb-qd .ecomsb-qd-variant-card--grouped .ecomsb-qd-variant-select,
html body .ecomsb-giftpop-overlay .ecomsb-giftpop-card--grouped .ecomsb-giftpop-card-label,
html body .ecomsb-giftpop-overlay .ecomsb-giftpop-card--grouped .ecomsb-giftpop-variant-select {
    width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
}


/* the wrapper background mirrors the validated
   child image, so theme lazy-load rewrites cannot leave the card empty. */
html body .ecomsb-qd .ecomsb-qd-variant-media.has-ecomsb-media,
html body .ecomsb-giftpop-overlay .ecomsb-giftpop-card-img.has-ecomsb-media {
    color: transparent !important;
}

/* stable multilingual variation/gift controls.
   Plugin-owned, server-translated copy is committed on the first paint; custom
   dropdowns expose an explicit radio state and resist theme form/button rules. */
html body :is(.ecomsb-qd, .ecomsb-giftpop-overlay, .ecomsb-qd-config-overlay).ecomsb-copy-ready [data-ecomsb-copy],
html body :is(.ecomsb-qd, .ecomsb-giftpop-overlay, .ecomsb-qd-config-overlay) .ecomsb-copy-ready [data-ecomsb-copy],
html body .ecomsb-copy-ready[data-ecomsb-copy] {
    visibility: visible !important;
    opacity: 1 !important;
    content-visibility: visible !important;
    clip: auto !important;
    clip-path: none !important;
    -webkit-clip-path: none !important;
    mask: none !important;
    -webkit-mask: none !important;
    filter: none !important;
    animation: none !important;
    text-indent: 0 !important;
    transform: none !important;
    translate: none !important;
}
html body .ecomsb-qd :is(
    .ecomsb-qd-piece-title,
    .ecomsb-qd-variant-cap,
    .ecomsb-qd-vs-label,
    .ecomsb-qd-vs-text,
    .ecomsb-qd-vs-opt-text
),
html body .ecomsb-giftpop-overlay :is(
    .ecomsb-giftpop-title,
    .ecomsb-giftpop-sec-name,
    .ecomsb-giftpop-card-label,
    .ecomsb-qd-vs-label,
    .ecomsb-qd-vs-text,
    .ecomsb-qd-vs-opt-text,
    .ecomsb-giftpop-confirm
),
html body .ecomsb-qd-config-overlay :is(
    .ecomsb-qd-config-title,
    .ecomsb-qd-config-name,
    .ecomsb-qd-config-instructions,
    .ecomsb-qd-config-free-badge,
    .ecomsb-qd-config-confirm
) {
    font-family: var(--ecomsb-font, inherit) !important;
    font-style: normal !important;
    letter-spacing: normal !important;
    text-transform: none !important;
    text-shadow: none !important;
    opacity: 1 !important;
    visibility: visible !important;
}
html body .ecomsb-qd .ecomsb-qd-variant-card-radio,
html body .ecomsb-giftpop-overlay .ecomsb-giftpop-card-radio {
    position: absolute !important;
    inset-block-start: 7px !important;
    inset-inline-start: 7px !important;
    z-index: 6 !important;
    display: inline-grid !important;
    place-items: center !important;
    width: 18px !important;
    height: 18px !important;
    min-width: 18px !important;
    border: 2px solid #9ca3af !important;
    border-radius: 50% !important;
    background: #fff !important;
    box-sizing: border-box !important;
    pointer-events: none !important;
}
html body .ecomsb-qd .ecomsb-qd-variant-card.is-selected .ecomsb-qd-variant-card-radio,
html body .ecomsb-giftpop-overlay .ecomsb-giftpop-card.is-selected .ecomsb-giftpop-card-radio {
    border-color: var(--ecomsb-qd-glow-color, #16a34a) !important;
}
html body .ecomsb-qd .ecomsb-qd-variant-card.is-selected .ecomsb-qd-variant-card-radio::after,
html body .ecomsb-giftpop-overlay .ecomsb-giftpop-card.is-selected .ecomsb-giftpop-card-radio::after {
    content: "" !important;
    display: block !important;
    width: 8px !important;
    height: 8px !important;
    border-radius: 50% !important;
    background: var(--ecomsb-qd-glow-color, #16a34a) !important;
}
html body :is(.ecomsb-qd, .ecomsb-giftpop-overlay) .ecomsb-qd-variant-select {
    position: relative !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 4px !important;
    width: 100% !important;
    min-width: 0 !important;
    margin: 4px 0 0 !important;
    padding: 0 !important;
    box-sizing: border-box !important;
    font-family: var(--ecomsb-font, inherit) !important;
}
html body :is(.ecomsb-qd, .ecomsb-giftpop-overlay) button.ecomsb-qd-vs-control {
    -webkit-appearance: none !important;
    appearance: none !important;
    display: grid !important;
    grid-template-columns: 17px minmax(0, 1fr) 14px !important;
    align-items: center !important;
    gap: 6px !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    min-height: 38px !important;
    height: auto !important;
    margin: 0 !important;
    padding: 6px 8px !important;
    border: 2px solid #9ca3af !important;
    border-radius: 9px !important;
    background: #fff !important;
    background-image: none !important;
    color: #111827 !important;
    -webkit-text-fill-color: #111827 !important;
    box-shadow: none !important;
    font: inherit !important;
    font-family: var(--ecomsb-font, inherit) !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    line-height: 1.25 !important;
    text-align: center !important;
    cursor: pointer !important;
    opacity: 1 !important;
    transform: none !important;
    box-sizing: border-box !important;
}
html body :is(.ecomsb-qd, .ecomsb-giftpop-overlay) .ecomsb-qd-variant-select.is-open button.ecomsb-qd-vs-control,
html body :is(.ecomsb-qd, .ecomsb-giftpop-overlay) .ecomsb-qd-variant-select.has-value button.ecomsb-qd-vs-control {
    border-color: var(--ecomsb-qd-glow-color, #16a34a) !important;
    box-shadow: 0 0 0 2px color-mix(in srgb, var(--ecomsb-qd-glow-color, #16a34a) 18%, transparent) !important;
}
html body :is(.ecomsb-qd, .ecomsb-giftpop-overlay) .ecomsb-qd-vs-radio {
    display: inline-grid !important;
    place-items: center !important;
    width: 16px !important;
    height: 16px !important;
    min-width: 16px !important;
    border: 2px solid #9ca3af !important;
    border-radius: 50% !important;
    background: #fff !important;
    box-sizing: border-box !important;
    pointer-events: none !important;
}
html body :is(.ecomsb-qd, .ecomsb-giftpop-overlay) .ecomsb-qd-variant-select.has-value > .ecomsb-qd-vs-control .ecomsb-qd-vs-radio,
html body :is(.ecomsb-qd, .ecomsb-giftpop-overlay) .ecomsb-qd-vs-opt.is-selected .ecomsb-qd-vs-radio {
    border-color: var(--ecomsb-qd-glow-color, #16a34a) !important;
}
html body :is(.ecomsb-qd, .ecomsb-giftpop-overlay) .ecomsb-qd-variant-select.has-value > .ecomsb-qd-vs-control .ecomsb-qd-vs-radio::after,
html body :is(.ecomsb-qd, .ecomsb-giftpop-overlay) .ecomsb-qd-vs-opt.is-selected .ecomsb-qd-vs-radio::after {
    content: "" !important;
    display: block !important;
    width: 7px !important;
    height: 7px !important;
    border-radius: 50% !important;
    background: var(--ecomsb-qd-glow-color, #16a34a) !important;
}
html body :is(.ecomsb-qd, .ecomsb-giftpop-overlay) .ecomsb-qd-vs-text,
html body :is(.ecomsb-qd, .ecomsb-giftpop-overlay) .ecomsb-qd-vs-opt-text {
    display: block !important;
    min-width: 0 !important;
    color: #111827 !important;
    -webkit-text-fill-color: #111827 !important;
    font-family: var(--ecomsb-font, inherit) !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    line-height: 1.35 !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
    text-align: center !important;
    opacity: 1 !important;
    visibility: visible !important;
}
html body :is(.ecomsb-qd, .ecomsb-giftpop-overlay) ul.ecomsb-qd-vs-list {
    box-sizing: border-box !important;
    margin: 0 !important;
    padding: 4px !important;
    border: 1px solid #cbd5e1 !important;
    border-radius: 10px !important;
    background: #fff !important;
    background-image: none !important;
    box-shadow: 0 14px 34px rgba(15, 23, 42, .22) !important;
    list-style: none !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    font-family: var(--ecomsb-font, inherit) !important;
    opacity: 1 !important;
    visibility: visible !important;
}
html body :is(.ecomsb-qd, .ecomsb-giftpop-overlay) ul.ecomsb-qd-vs-list[hidden] {
    display: none !important;
}
html body :is(.ecomsb-qd, .ecomsb-giftpop-overlay) li.ecomsb-qd-vs-opt {
    display: grid !important;
    grid-template-columns: 18px minmax(0, 1fr) !important;
    align-items: center !important;
    gap: 8px !important;
    width: 100% !important;
    min-width: 0 !important;
    min-height: 36px !important;
    margin: 0 !important;
    padding: 6px 8px !important;
    border: 0 !important;
    border-radius: 7px !important;
    background: #fff !important;
    color: #111827 !important;
    cursor: pointer !important;
    box-sizing: border-box !important;
    opacity: 1 !important;
    visibility: visible !important;
}
html body :is(.ecomsb-qd, .ecomsb-giftpop-overlay) li.ecomsb-qd-vs-opt:hover,
html body :is(.ecomsb-qd, .ecomsb-giftpop-overlay) li.ecomsb-qd-vs-opt.is-selected {
    background: var(--ecomsb-qd-accent-soft-strong, #eefbf2) !important;
    color: #111827 !important;
}
html body .ecomsb-giftpop-overlay button.ecomsb-giftpop-confirm:disabled,
html body .ecomsb-giftpop-overlay button.ecomsb-giftpop-confirm.is-loading {
    opacity: .68 !important;
    cursor: wait !important;
    pointer-events: none !important;
}
@media (max-width: 600px) {
    html body :is(.ecomsb-qd, .ecomsb-giftpop-overlay) button.ecomsb-qd-vs-control {
        min-height: 40px !important;
        padding: 7px 8px !important;
    }
    html body :is(.ecomsb-qd, .ecomsb-giftpop-overlay) .ecomsb-qd-vs-text,
    html body :is(.ecomsb-qd, .ecomsb-giftpop-overlay) .ecomsb-qd-vs-opt-text {
        font-size: 11px !important;
    }
}

/* Quantity Deals variation-card interaction.
   Keep a maximum of three cards per row on desktop and mobile; exactly four
   cards use a balanced 2×2 layout. The card itself remains the accessible radio
   target, but the decorative top-corner circle is intentionally removed. */
html body .ecomsb-qd .ecomsb-qd-piece-cards {
    display: flex !important;
    flex-wrap: wrap !important;
    justify-content: center !important;
    align-items: stretch !important;
    gap: 8px !important;
}
html body .ecomsb-qd .ecomsb-qd-piece-cards > .ecomsb-qd-variant-card {
    flex: 0 0 calc((100% - 16px) / 3) !important;
    width: calc((100% - 16px) / 3) !important;
    max-width: calc((100% - 16px) / 3) !important;
    min-width: 0 !important;
    height: auto !important;
    align-self: stretch !important;
    opacity: 1;
    filter: none;
}
html body .ecomsb-qd .ecomsb-qd-piece-cards[data-card-count="4"] > .ecomsb-qd-variant-card {
    flex-basis: calc((100% - 8px) / 2) !important;
    width: calc((100% - 8px) / 2) !important;
    max-width: calc((100% - 8px) / 2) !important;
}
html body .ecomsb-qd .ecomsb-qd-piece.has-selection .ecomsb-qd-variant-card:not(.is-selected) {
    opacity: .5 !important;
    filter: grayscale(.6) !important;
}
html body .ecomsb-qd .ecomsb-qd-variant-card-radio {
    display: none !important;
}



/* variation-card density and exclusive Gift selection.
   Flat one-attribute variations use up to four cards per row on desktop and mobile.
   Grouped/two-attribute variations remain at most three per row; two and four choices
   use balanced two-column rows. Long labels clamp to two lines with the full value
   preserved in the title attribute instead of using a distracting marquee. */
html body .ecomsb-qd .ecomsb-qd-piece-cards[data-card-mode="flat"] > .ecomsb-qd-variant-card {
    flex: 0 0 calc((100% - 24px) / 4) !important;
    width: calc((100% - 24px) / 4) !important;
    max-width: calc((100% - 24px) / 4) !important;
}
html body .ecomsb-qd .ecomsb-qd-piece-cards[data-card-mode="grouped"] > .ecomsb-qd-variant-card {
    flex: 0 0 calc((100% - 16px) / 3) !important;
    width: calc((100% - 16px) / 3) !important;
    max-width: calc((100% - 16px) / 3) !important;
}
html body .ecomsb-qd .ecomsb-qd-piece-cards[data-card-mode="grouped"][data-card-count="2"] > .ecomsb-qd-variant-card,
html body .ecomsb-qd .ecomsb-qd-piece-cards[data-card-mode="grouped"][data-card-count="4"] > .ecomsb-qd-variant-card {
    flex-basis: calc((100% - 8px) / 2) !important;
    width: calc((100% - 8px) / 2) !important;
    max-width: calc((100% - 8px) / 2) !important;
}
html body .ecomsb-qd .ecomsb-qd-variant-cap,
html body .ecomsb-giftpop-overlay .ecomsb-giftpop-card-label {
    display: -webkit-box !important;
    -webkit-box-orient: vertical !important;
    -webkit-line-clamp: 2 !important;
    min-height: 2.6em !important;
    max-height: 2.6em !important;
    overflow: hidden !important;
    overflow-wrap: anywhere !important;
    word-break: normal !important;
    text-overflow: ellipsis !important;
}

/* Gift popup uses the card border as the sole visible selection affordance.
   Semantic radio/listbox state remains on the elements for assistive technology. */
html body .ecomsb-giftpop-overlay .ecomsb-giftpop-card-radio,
html body .ecomsb-giftpop-overlay .ecomsb-qd-vs-radio {
    display: none !important;
}
html body .ecomsb-giftpop-overlay button.ecomsb-qd-vs-control {
    grid-template-columns: minmax(0, 1fr) 14px !important;
}
html body .ecomsb-giftpop-overlay li.ecomsb-qd-vs-opt {
    grid-template-columns: minmax(0, 1fr) !important;
}
html body .ecomsb-giftpop-overlay .ecomsb-qd-variant-select.is-open button.ecomsb-qd-vs-control,
html body .ecomsb-giftpop-overlay .ecomsb-qd-variant-select.has-value button.ecomsb-qd-vs-control {
    border-color: #cbd5e1 !important;
    box-shadow: none !important;
    background: #fff !important;
}

/* centered Gift rows and tighter per-piece hierarchy.
   Gift choices use a centered wrapping flex layout so incomplete final rows are
   balanced. Quantity Deals piece headings inherit the same highlighted treatment
   as Product Configuration and sit closer to the selected deal row. */
html body .ecomsb-giftpop-overlay .ecomsb-giftpop-cards {
    display: flex !important;
    flex-wrap: wrap !important;
    justify-content: center !important;
    align-items: stretch !important;
    gap: 10px !important;
}
html body .ecomsb-giftpop-overlay .ecomsb-giftpop-cards > .ecomsb-giftpop-card {
    flex: 0 0 calc((100% - 20px) / 3) !important;
    width: calc((100% - 20px) / 3) !important;
    max-width: calc((100% - 20px) / 3) !important;
    min-width: 0 !important;
    height: auto !important;
    align-self: stretch !important;
}
html body .ecomsb-giftpop-overlay .ecomsb-giftpop-cards[data-card-count="2"] > .ecomsb-giftpop-card,
html body .ecomsb-giftpop-overlay .ecomsb-giftpop-cards[data-card-count="4"] > .ecomsb-giftpop-card {
    flex-basis: calc((100% - 10px) / 2) !important;
    width: calc((100% - 10px) / 2) !important;
    max-width: calc((100% - 10px) / 2) !important;
}
html body .ecomsb-giftpop-overlay .ecomsb-giftpop-card-img,
html body .ecomsb-giftpop-overlay .ecomsb-giftpop-card-img img {
    aspect-ratio: 1 / 1 !important;
}
html body .ecomsb-giftpop-overlay .ecomsb-giftpop-card-img img {
    height: auto !important;
    object-fit: cover !important;
}
html body .ecomsb-qd .ecomsb-qd-deal.is-selected + .ecomsb-qd-variants {
    margin-top: 2px !important;
}
html body .ecomsb-qd .ecomsb-qd-variants > .ecomsb-qd-variant-grid > .ecomsb-qd-piece:first-child {
    margin-top: 0 !important;
}
html body .ecomsb-qd .ecomsb-qd-piece + .ecomsb-qd-piece {
    margin-top: 12px !important;
}
html body .ecomsb-qd .ecomsb-qd-piece-title {
    margin: 0 0 7px !important;
    padding: 7px 12px !important;
    border-radius: 8px !important;
    background: var(--ecomsb-qd-piece-heading-bg, #99c3d8) !important;
    color: #111827 !important;
    -webkit-text-fill-color: #111827 !important;
    line-height: 1.3 !important;
}
@media (max-width: 600px) {
    html body .ecomsb-qd .ecomsb-qd-piece-title {
        margin-bottom: 7px !important;
        padding: 5px 10px !important;
    }
}

/* Keep compact call-to-action and variation controls stable inside narrow theme columns. */
html body .ecomsb-qd button.ecomsb-qd-add {
    white-space: normal !important;
    overflow-wrap: anywhere !important;
    word-break: normal !important;
}
html body .ecomsb-qd .ecomsb-qd-variant-select,
html body .ecomsb-giftpop-overlay .ecomsb-giftpop-variant-select {
    gap: 3px !important;
    margin-top: 2px !important;
}

/* Responsive action mirror for a variable tier whose real Quantity Deals CTA
   is still below the viewport. It uses desktop typography above 782px, mobile
   typography at 782px and below, and never replaces the independent offer-wide
   Sticky Bar (the two visibility windows are mutually exclusive). */
html body .ecomsb-qd-selection-cta {
    position: fixed !important;
    right: auto !important;
    bottom: calc(10px + env(safe-area-inset-bottom, 0px)) !important;
    z-index: 2147482500 !important;
    display: block !important;
    box-sizing: border-box !important;
    max-width: calc(100vw - 24px) !important;
    padding: 7px !important;
    border: 1px solid rgba(15, 23, 42, .12) !important;
    border-radius: 14px !important;
    background: rgba(255, 255, 255, .96) !important;
    box-shadow: 0 10px 30px rgba(15, 23, 42, .22) !important;
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
    transform: translateY(calc(100% + 24px)) !important;
    transition: opacity .16s ease, transform .16s ease, visibility .16s ease !important;
}
html body .ecomsb-qd-selection-cta.is-visible {
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    transform: translateY(0) !important;
}
html body .ecomsb-qd-selection-cta button.ecomsb-qd-add {
    -webkit-appearance: none !important;
    appearance: none !important;
    box-sizing: border-box !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 9px !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    min-height: var(--ecomsb-qd-btn-height, 48px) !important;
    margin: 0 !important;
    padding: 8px 18px !important;
    border: 0 !important;
    border-radius: 10px !important;
    background: var(--ecomsb-qd-btn-bg, #111827) !important;
    color: var(--ecomsb-qd-btn-color, #fff) !important;
    box-shadow: none !important;
    font-family: var(--ecomsb-font, inherit) !important;
    font-size: var(--ecomsb-qd-btn-text-size, 16px) !important;
    font-weight: var(--ecomsb-qd-btn-text-weight, 700) !important;
    font-synthesis: none !important;
    line-height: 1.25 !important;
    letter-spacing: normal !important;
    text-align: center !important;
    text-decoration: none !important;
    text-shadow: none !important;
    text-transform: none !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
    word-break: normal !important;
    cursor: pointer !important;
}
html body .ecomsb-qd-selection-cta button.ecomsb-qd-add:hover,
html body .ecomsb-qd-selection-cta button.ecomsb-qd-add:focus-visible {
    background: var(--ecomsb-qd-btn-hover-bg, var(--ecomsb-qd-btn-bg, #111827)) !important;
    color: var(--ecomsb-qd-btn-hover-color, var(--ecomsb-qd-btn-color, #fff)) !important;
}
html body .ecomsb-qd-selection-cta button.ecomsb-qd-add:disabled,
html body .ecomsb-qd-selection-cta button.ecomsb-qd-add.is-loading {
    pointer-events: none !important;
    cursor: wait !important;
    opacity: .82 !important;
    animation: none !important;
}
html body .ecomsb-qd-selection-cta button.ecomsb-qd-add.is-loading .ecomsb-qd-add-icon { display: none !important; }
html body .ecomsb-qd-selection-cta button.ecomsb-qd-add.is-loading::before {
    content: "" !important;
    flex: 0 0 auto !important;
    width: 18px !important;
    height: 18px !important;
    border: 2px solid currentColor !important;
    border-right-color: transparent !important;
    border-radius: 50% !important;
    animation: ecomsb-qd-add-spin .7s linear infinite !important;
}
@media (max-width: 782px) {
    html body .ecomsb-qd-selection-cta button.ecomsb-qd-add {
        min-height: var(--ecomsb-qd-btn-height-m, var(--ecomsb-qd-btn-height, 48px)) !important;
        padding-inline: 14px !important;
        font-size: var(--ecomsb-qd-btn-text-size-m, var(--ecomsb-qd-btn-text-size, 16px)) !important;
        font-weight: var(--ecomsb-qd-btn-text-weight-m, var(--ecomsb-qd-btn-text-weight, 700)) !important;
    }
}

/* Selection is communicated by the owned card border/highlight; decorative radio circles stay hidden. */
html body .ecomsb-qd :is(.ecomsb-qd-radio-ui, .ecomsb-qd-variant-card-radio, .ecomsb-qd-vs-radio),
html body .ecomsb-giftpop-overlay :is(.ecomsb-giftpop-card-radio, .ecomsb-qd-vs-radio) {
    display: none !important;
}
html body :is(.ecomsb-qd, .ecomsb-giftpop-overlay) button.ecomsb-qd-vs-control {
    grid-template-columns: minmax(0, 1fr) 14px !important;
}
html body :is(.ecomsb-qd, .ecomsb-giftpop-overlay) li.ecomsb-qd-vs-opt {
    grid-template-columns: minmax(0, 1fr) !important;
}
html body .ecomsb-qd .ecomsb-qd-deal.is-selected + .ecomsb-qd-variants {
    margin-top: -6px !important;
}
html body .ecomsb-qd .ecomsb-qd-variants {
    margin-bottom: 0 !important;
}
html body .ecomsb-qd .ecomsb-qd-piece-title {
    margin-bottom: 7px !important;
}
@media (max-width: 600px) {
    html body .ecomsb-qd .ecomsb-qd-piece-title {
        margin-bottom: 7px !important;
    }
}

html body :is(.ecomsb-qd, .ecomsb-giftpop-overlay) :is(.ecomsb-qd-variant-card, .ecomsb-giftpop-card):hover,
html body :is(.ecomsb-qd, .ecomsb-giftpop-overlay) :is(.ecomsb-qd-variant-card, .ecomsb-giftpop-card).is-selected {
    border-color: var(--ecomsb-qd-accent-color, #16a34a) !important;
    background: #fff !important;
}
html body :is(.ecomsb-qd, .ecomsb-giftpop-overlay) .ecomsb-qd-variant-select.is-open button.ecomsb-qd-vs-control {
    border-color: var(--ecomsb-qd-accent-color, #16a34a) !important;
    box-shadow: 0 0 0 3px var(--ecomsb-qd-accent-ring, rgba(22, 163, 74, .18)) !important;
}

/* Keep Thank You section labels compact when a theme stretches headings to the container width. */
html body .ecomsb-qo-overlay .ecomsb-qo-dialog .ecomsb-qo-ty-section > h4.ecomsb-qo-ty-h {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    align-self: center !important;
    flex: 0 0 auto !important;
    width: fit-content !important;
    min-width: 0 !important;
    max-width: 100% !important;
    margin: 0 auto 10px !important;
    padding: 5px 16px !important;
    box-sizing: border-box !important;
}


/* Deal cards keep a fixed image/copy/price grid on narrow screens. */
@media (max-width: 767px) {
    html body .ecomsb-qd .ecomsb-qd-deal {
        padding: 9px !important;
    }
    html body .ecomsb-qd .ecomsb-qd-deal-top {
        display: grid !important;
        grid-template-columns: 56px minmax(0, 1fr) minmax(88px, max-content) !important;
        align-items: stretch !important;
        gap: 8px !important;
    }
    html body .ecomsb-qd .ecomsb-qd-deal-image {
        width: 56px !important;
        height: 56px !important;
        min-width: 56px !important;
    }
    html body .ecomsb-qd .ecomsb-qd-deal-main {
        min-height: 56px !important;
        gap: 2px !important;
    }
    html body .ecomsb-qd .ecomsb-qd-deal-titlewrap,
    html body .ecomsb-qd .ecomsb-qd-deal-title,
    html body .ecomsb-qd .ecomsb-qd-deal-desc {
        text-align: start !important;
    }
    html body .ecomsb-qd .ecomsb-qd-deal-title {
        font-size: var(--ecomsb-qd-deal-title-size-m, var(--ecomsb-qd-deal-title-size, 16px)) !important;
        line-height: 1.22 !important;
    }
    html body .ecomsb-qd .ecomsb-qd-deal-desc {
        font-size: var(--ecomsb-qd-odesc-size-m, var(--ecomsb-qd-odesc-size, 13px)) !important;
        line-height: 1.2 !important;
    }
    html body .ecomsb-qd .ecomsb-qd-deal-pricecol {
        width: auto !important;
        min-width: 88px !important;
        max-width: 34vw !important;
        padding-inline-start: 7px !important;
        align-items: flex-end !important;
        justify-self: end !important;
        gap: 2px !important;
        text-align: end !important;
    }
    html body .ecomsb-qd .ecomsb-qd-deal-prices {
        display: flex !important;
        width: 100% !important;
        min-width: 0 !important;
        flex-direction: column !important;
        flex-wrap: nowrap !important;
        align-items: flex-end !important;
        justify-content: center !important;
        gap: 2px !important;
        text-align: end !important;
    }
    html body .ecomsb-qd .ecomsb-qd-starting,
    html body .ecomsb-qd .ecomsb-qd-price-new,
    html body .ecomsb-qd .ecomsb-qd-price-old {
        display: block !important;
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 !important;
        text-align: end !important;
    }
    html body .ecomsb-qd .ecomsb-qd-price-new {
        font-size: var(--ecomsb-qd-price-size-m, var(--ecomsb-qd-price-size, 17px)) !important;
    }
    html body .ecomsb-qd .ecomsb-qd-price-old {
        font-size: var(--ecomsb-qd-oldprice-size-m, var(--ecomsb-qd-oldprice-size, 14px)) !important;
    }
    html body .ecomsb-qd .ecomsb-qd-starting {
        font-size: 9px !important;
    }
    html body .ecomsb-qd .ecomsb-qd-unit {
        justify-content: flex-end !important;
        text-align: end !important;
    }
}

/* Compact variation-card content while preserving equal heights within each row. */
html body .ecomsb-qd .ecomsb-qd-piece-cards > .ecomsb-qd-variant-card,
html body .ecomsb-giftpop-overlay .ecomsb-giftpop-card {
    justify-content: flex-start !important;
    gap: 4px !important;
    padding-bottom: 6px !important;
}
html body .ecomsb-qd .ecomsb-qd-variant-cap,
html body .ecomsb-giftpop-overlay .ecomsb-giftpop-card-label {
    min-height: 0 !important;
    margin: 0 !important;
}
html body .ecomsb-qd .ecomsb-qd-variant-select,
html body .ecomsb-giftpop-overlay .ecomsb-giftpop-variant-select {
    margin-top: 1px !important;
}

/* Optional merchant media inside the Quick Order and Thank You popups. Inline
   width/height/object-fit values come only from sanitized store settings. */
.ecomsb-qo-overlay .ecomsb-qo-media,
.ecomsb-qo-overlay .ecomsb-qo-ty-media {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-width: 0;
    margin: 0 auto 14px;
    overflow: hidden;
}
.ecomsb-qo-overlay .ecomsb-qo-media--after-summary { margin: 14px auto 0; }
.ecomsb-qo-overlay .ecomsb-qo-media img,
.ecomsb-qo-overlay .ecomsb-qo-ty-media img {
    display: block;
    max-width: 100%;
    margin: 0 auto;
    border: 0;
    border-radius: 10px;
    box-shadow: none;
}
.ecomsb-qo-overlay .ecomsb-qo-ty-media { margin-bottom: 18px; }
@media (max-width: 600px) {
    .ecomsb-qo-overlay .ecomsb-qo-media,
    .ecomsb-qo-overlay .ecomsb-qo-ty-media { margin-bottom: 16px; }
}

/* Natural-ratio Quick Order media fills the configured width without an
   artificial fixed-height box. Fixed-height media remains contained. */
.ecomsb-qo-overlay .ecomsb-qo-media img,
.ecomsb-qo-overlay .ecomsb-qo-ty-media img {
    width: var(--ecomsb-qo-media-width, 100%) !important;
    max-width: 100% !important;
}
.ecomsb-qo-overlay .ecomsb-qo-media--natural img,
.ecomsb-qo-overlay .ecomsb-qo-ty-media--natural img {
    height: auto !important;
    object-fit: contain !important;
}

/* Pricing-card composition: image at inline-start, quantity above the
   offer copy, and a stable vertical price column at inline-end. */
html body .ecomsb-qd .ecomsb-qd-deal-top {
    display: grid;
    grid-template-columns: 64px minmax(0, 1fr) minmax(105px, max-content);
    align-items: stretch;
    gap: 12px;
    width: 100%;
    min-width: 0;
    direction: inherit;
}
html body .ecomsb-qd .ecomsb-qd-deal-image {
    position: relative;
    display: block;
    align-self: center;
    width: 64px;
    height: 64px;
    min-width: 64px;
    overflow: hidden;
    border: 1px solid rgba(148, 163, 184, .35);
    border-radius: 10px;
    background: #f8fafc;
    line-height: 0;
}
html body .ecomsb-qd .ecomsb-qd-deal-image img.ecomsb-qd-deal-image-element,
html body .ecomsb-qd .ecomsb-qd-deal-image img {
    display: block;
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    max-height: none !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 9px;
    object-fit: cover !important;
}
html body .ecomsb-qd .ecomsb-qd-deal-main {
    display: grid;
    grid-template-rows: auto minmax(0, 1fr);
    align-content: stretch;
    align-self: stretch;
    gap: 3px;
    min-width: 0;
    min-height: 64px;
    width: 100%;
}
html body .ecomsb-qd .ecomsb-qd-qty-pill {
    justify-self: start;
    align-self: start;
}
html body .ecomsb-qd .ecomsb-qd-deal-titlewrap {
    display: grid;
    grid-template-rows: minmax(0, 1fr) auto;
    align-self: stretch;
    gap: 2px;
    min-width: 0;
    text-align: start;
}
html body .ecomsb-qd .ecomsb-qd-deal-title {
    align-self: center;
    text-align: start;
}
html body .ecomsb-qd .ecomsb-qd-deal-desc {
    align-self: end;
    margin: 0;
    text-align: start;
}
html body .ecomsb-qd .ecomsb-qd-deal-pricecol {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    justify-content: center;
    justify-self: end;
    align-self: stretch;
    gap: 3px;
    min-width: 105px;
    max-width: none;
    padding-inline-start: 12px;
    border-inline-start: 1px solid rgba(148, 163, 184, .24);
    text-align: end;
}
html body .ecomsb-qd .ecomsb-qd-deal-prices {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    justify-content: center;
    gap: 2px;
    width: 100%;
    min-width: 0;
    text-align: end;
}
html body .ecomsb-qd .ecomsb-qd-starting,
html body .ecomsb-qd .ecomsb-qd-price-new,
html body .ecomsb-qd .ecomsb-qd-price-old {
    width: 100%;
    margin: 0;
    text-align: end;
    white-space: nowrap;
}
html body .ecomsb-qd .ecomsb-qd-unit {
    justify-content: flex-end;
    text-align: end;
}

/* Viewport-owned variation dropdowns may contain long translated values. */
html body :is(.ecomsb-qd, .ecomsb-giftpop-overlay) ul.ecomsb-qd-vs-list {
    overflow-x: hidden !important;
    overscroll-behavior: contain !important;
}
html body :is(.ecomsb-qd, .ecomsb-giftpop-overlay) li.ecomsb-qd-vs-opt,
html body :is(.ecomsb-qd, .ecomsb-giftpop-overlay) .ecomsb-qd-vs-opt-text {
    min-width: 0 !important;
    max-width: 100% !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
    word-break: break-word !important;
}




/* Exact starting-label visibility, compact pricing, mobile dropdown containment,
   inquiry sizing, and centered non-tag deal badges. */
html body .ecomsb-qd .ecomsb-qd-starting[hidden] {
    display: none !important;
}
html body .ecomsb-qd .ecomsb-qd-starting {
    align-self: center;
    width: fit-content !important;
    max-width: 100% !important;
    margin: 0 0 1px !important;
    padding: 1px 7px;
    border-radius: var(--ecomsb-deal-label-radius, 999px);
    background: var(--ecomsb-qd-starting-bg, var(--ecomsb-from-bg, #e8f5e9));
    color: var(--ecomsb-qd-starting-text, var(--ecomsb-from-text, #2e7d32));
    font-size: min(var(--ecomsb-deal-label-size, 12px), 10px) !important;
    font-weight: var(--ecomsb-deal-label-weight, 700);
    line-height: 1.35;
    text-align: center !important;
    white-space: nowrap;
}
html body .ecomsb-qd .ecomsb-qd-deal-pricecol {
    align-items: center !important;
    justify-self: stretch !important;
    gap: 0 !important;
    padding-inline-start: 10px !important;
    border-inline-start: 1px dashed rgba(100, 116, 139, .38) !important;
    text-align: center !important;
}
html body .ecomsb-qd .ecomsb-qd-deal-prices {
    align-items: center !important;
    gap: 0 !important;
    text-align: center !important;
}
html body .ecomsb-qd .ecomsb-qd-starting,
html body .ecomsb-qd .ecomsb-qd-price-new,
html body .ecomsb-qd .ecomsb-qd-price-old {
    margin-inline: auto !important;
    text-align: center !important;
}
html body .ecomsb-qd .ecomsb-qd-price-new,
html body .ecomsb-qd .ecomsb-qd-price-old {
    line-height: 1.15;
}
html body .ecomsb-qd .ecomsb-qd-unit {
    justify-content: center !important;
    text-align: center !important;
}

/* Pill and corner-tab badges are centered. Tag keeps its directional edge. */
html body .ecomsb-qd .ecomsb-qd-ribbon--pill,
html body .ecomsb-qd .ecomsb-qd-ribbon--cornertab {
    inset-inline-start: 0;
    inset-inline-end: 0;
    width: max-content;
    max-width: calc(100% - 20px);
    margin-inline: auto;
    text-align: center;
}
/* The floating pill ends at the card's top edge; reserve a small visual gap
   before the in-card quantity pill so the two badges never read as one block. */
html body .ecomsb-qd :is(.ecomsb-qd-deal--bs-pill, .ecomsb-qd-deal--bs-cornertab) .ecomsb-qd-deal-top {
    margin-top: 8px;
}
html body .ecomsb-qd .ecomsb-qd-deal.ecomsb-qd-deal--bs-banner .ecomsb-qd-ribbon--banner {
    align-self: center;
    width: calc(100% + 32px);
    max-width: calc(100% + 32px);
    margin: -14px -16px 3px;
    text-align: center;
}

/* Long translated variation values wrap inside a compact viewport-owned list. */
html body :is(.ecomsb-qd, .ecomsb-giftpop-overlay) .ecomsb-qd-vs-opt-text {
    width: 100%;
    text-wrap: pretty;
    unicode-bidi: plaintext;
}
@media (max-width: 600px) {
    html body :is(.ecomsb-qd, .ecomsb-giftpop-overlay) ul.ecomsb-qd-vs-list {
        max-width: min(220px, calc(100vw - 16px)) !important;
        max-height: 164px !important;
        padding: 3px !important;
    }
    html body :is(.ecomsb-qd, .ecomsb-giftpop-overlay) li.ecomsb-qd-vs-opt {
        min-height: 0 !important;
        padding: 6px 7px !important;
        white-space: normal !important;
    }
    html body :is(.ecomsb-qd, .ecomsb-giftpop-overlay) .ecomsb-qd-vs-opt-text {
        font-size: 10px !important;
        line-height: 1.35 !important;
    }
    html body .ecomsb-qd .ecomsb-qd-deal.ecomsb-qd-deal--bs-banner {
        padding-top: 9px !important;
    }
    html body .ecomsb-qd .ecomsb-qd-deal.ecomsb-qd-deal--bs-banner .ecomsb-qd-ribbon--banner {
        width: calc(100% + 18px);
        max-width: calc(100% + 18px);
        margin: -9px -9px 3px;
    }
    body .ecomsb-qd .ecomsb-qd-inquiry {
        padding: 14px 12px !important;
    }
    body .ecomsb-qd .ecomsb-qd-inquiry button.ecomsb-qd-inquiry-btn {
        align-self: stretch !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        box-sizing: border-box !important;
        padding-inline: 12px !important;
    }
}

/* Quantity Deals-owned typography, color, banner and popup contracts.
   These late component-scoped rules keep the independent desktop/mobile
   settings authoritative after broad theme CSS and earlier fallbacks. */
html body .ecomsb-qd .ecomsb-qd-title {
    color: var(--ecomsb-qd-title-color, #111827) !important;
    font-size: var(--ecomsb-qd-title-size, 18px) !important;
    font-weight: var(--ecomsb-qd-title-weight, 700) !important;
}
html body .ecomsb-qd .ecomsb-qd-desc {
    color: var(--ecomsb-qd-desc-color, #4b5563) !important;
    font-size: var(--ecomsb-qd-desc-size, 15px) !important;
    font-weight: var(--ecomsb-qd-desc-weight, 400) !important;
}
html body .ecomsb-qd .ecomsb-qd-product-name {
    color: var(--ecomsb-qd-pname-color, var(--ecomsb-qd-title-color, #111827)) !important;
    font-size: var(--ecomsb-qd-pname-size, 18px) !important;
    font-weight: var(--ecomsb-qd-pname-weight, 800) !important;
}
html body .ecomsb-qd .ecomsb-qd-deal-title {
    color: var(--ecomsb-qd-deal-title-color, #111827) !important;
    font-size: var(--ecomsb-qd-deal-title-size, 16px) !important;
    font-weight: var(--ecomsb-qd-deal-title-weight, 700) !important;
}
html body .ecomsb-qd .ecomsb-qd-price-new {
    color: var(--ecomsb-qd-price-color, #111827) !important;
    font-size: var(--ecomsb-qd-price-size, 17px) !important;
    font-weight: var(--ecomsb-qd-price-weight, 800) !important;
}
html body .ecomsb-qd .ecomsb-qd-price-old {
    color: var(--ecomsb-qd-oldprice-color, #9ca3af) !important;
    font-size: var(--ecomsb-qd-oldprice-size, 14px) !important;
    font-weight: var(--ecomsb-qd-oldprice-weight, 400) !important;
}
html body .ecomsb-qd .ecomsb-qd-prow-before .ecomsb-qd-prow-lbl {
    color: var(--ecomsb-qd-pbefore-lbl-color, #627089) !important;
    font-size: var(--ecomsb-qd-pbefore-lbl-size, 15px) !important;
    font-weight: var(--ecomsb-qd-pbefore-lbl-weight, 600) !important;
}
html body .ecomsb-qd .ecomsb-qd-prow-before .ecomsb-qd-prow-val {
    color: var(--ecomsb-qd-pbefore-val-color, #627089) !important;
    font-size: var(--ecomsb-qd-pbefore-val-size, 15px) !important;
    font-weight: var(--ecomsb-qd-pbefore-val-weight, 700) !important;
}
html body .ecomsb-qd .ecomsb-qd-prow-after .ecomsb-qd-prow-lbl {
    color: var(--ecomsb-qd-pafter-lbl-color, #000) !important;
    font-size: var(--ecomsb-qd-pafter-lbl-size, 18px) !important;
    font-weight: var(--ecomsb-qd-pafter-lbl-weight, 900) !important;
}
html body .ecomsb-qd .ecomsb-qd-prow-after .ecomsb-qd-prow-val {
    color: var(--ecomsb-qd-pafter-val-color, #000) !important;
    font-size: var(--ecomsb-qd-pafter-val-size, 18px) !important;
    font-weight: var(--ecomsb-qd-pafter-val-weight, 900) !important;
}

/* Card Background belongs to the main pricing deal cards only. Per-piece
   variation cards stay white in normal, hover and selected states; selection
   continues to be communicated by the existing owned border treatment. */
html body .ecomsb-qd .ecomsb-qd-variant-card,
html body .ecomsb-qd .ecomsb-qd-variant-card:hover,
html body .ecomsb-qd .ecomsb-qd-variant-card.is-selected {
    background: #fff !important;
}

/* Gift popup typography and actions follow the shared Popup Button Colors. */
html body .ecomsb-giftpop-overlay .ecomsb-giftpop-title {
    font-weight: 800 !important;
}
html body .ecomsb-giftpop-overlay button.ecomsb-giftpop-confirm,
html body .ecomsb-qd-config-overlay button.ecomsb-qd-config-confirm {
    -webkit-appearance: none !important;
    appearance: none !important;
    background: var(--ecomsb-popup-btn-bg, #000) !important;
    background-image: none !important;
    border: 0 !important;
    border-radius: 10px !important;
    box-shadow: none !important;
    color: var(--ecomsb-popup-btn-color, #fff) !important;
    line-height: 1.25 !important;
    min-height: 44px !important;
    overflow: hidden !important;
    padding: 12px 18px !important;
    text-decoration: none !important;
    text-shadow: none !important;
    text-transform: none !important;
}
html body .ecomsb-giftpop-overlay button.ecomsb-giftpop-confirm:hover,
html body .ecomsb-giftpop-overlay button.ecomsb-giftpop-confirm:focus-visible,
html body .ecomsb-qd-config-overlay button.ecomsb-qd-config-confirm:hover,
html body .ecomsb-qd-config-overlay button.ecomsb-qd-config-confirm:focus-visible {
    background: var(--ecomsb-popup-btn-hover-bg, #16a34a) !important;
    color: var(--ecomsb-popup-btn-color, #fff) !important;
}

/* Free Shipping copy follows the document direction rather than centering. */
html body .ecomsb-qd .ecomsb-qd-ship-body {
    flex: 1 1 auto;
    align-items: flex-start !important;
    width: 100%;
    text-align: start !important;
}
html body .ecomsb-qd .ecomsb-qd-ship-title,
html body .ecomsb-qd .ecomsb-qd-ship-desc {
    width: 100%;
    text-align: start !important;
}
html body .ecomsb-qd .ecomsb-qd-ship-logos {
    justify-content: flex-start !important;
}

/* Mobile settings are final and independent from Desktop & Tablet values. */
@media (max-width: 767px) {
    html body .ecomsb-qd .ecomsb-qd-title {
        font-size: var(--ecomsb-qd-title-size-m, 18px) !important;
        font-weight: var(--ecomsb-qd-title-weight-m, 700) !important;
    }
    html body .ecomsb-qd .ecomsb-qd-desc {
        font-size: var(--ecomsb-qd-desc-size-m, 15px) !important;
        font-weight: var(--ecomsb-qd-desc-weight-m, 400) !important;
    }
    html body .ecomsb-qd .ecomsb-qd-product-name {
        font-size: var(--ecomsb-qd-pname-size-m, 18px) !important;
        font-weight: var(--ecomsb-qd-pname-weight-m, 800) !important;
    }
    html body .ecomsb-qd .ecomsb-qd-deal-title {
        font-size: var(--ecomsb-qd-deal-title-size-m, 16px) !important;
        font-weight: var(--ecomsb-qd-deal-title-weight-m, 700) !important;
    }
    html body .ecomsb-qd .ecomsb-qd-price-new {
        font-size: var(--ecomsb-qd-price-size-m, 17px) !important;
        font-weight: var(--ecomsb-qd-price-weight-m, 800) !important;
    }
    html body .ecomsb-qd .ecomsb-qd-price-old {
        font-size: var(--ecomsb-qd-oldprice-size-m, 14px) !important;
        font-weight: var(--ecomsb-qd-oldprice-weight-m, 400) !important;
    }
    html body .ecomsb-qd button.ecomsb-qd-add {
        font-size: var(--ecomsb-qd-btn-text-size-m, 16px) !important;
        font-weight: var(--ecomsb-qd-btn-text-weight-m, 700) !important;
    }
}

/* WooCommerce wraps formatted money in nested amount/currency spans. Force those
   descendants to inherit the Quantity Deals-owned typography and colors. */
html body .ecomsb-qd .ecomsb-qd-price-new :is(.woocommerce-Price-amount, .woocommerce-Price-amount *, .woocommerce-Price-currencySymbol),
html body .ecomsb-qd .ecomsb-qd-price-old :is(.woocommerce-Price-amount, .woocommerce-Price-amount *, .woocommerce-Price-currencySymbol),
html body .ecomsb-qd .ecomsb-qd-prow-val :is(.woocommerce-Price-amount, .woocommerce-Price-amount *, .woocommerce-Price-currencySymbol) {
    color: inherit !important;
    font-family: inherit !important;
    font-size: inherit !important;
    font-weight: inherit !important;
    line-height: inherit !important;
}

/* Quick Order Delivery Date / Delivery Time pickers. The native controls remain
   the no-JS fallback; once Air Datepicker initializes, the visible localized
   input and its logical-end icon read as one grouped control. */
html body .ecomsb-qo-overlay .ecomsb-qo-picker-wrap {
    position: relative !important;
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
}
html body .ecomsb-qo-overlay .ecomsb-qo-picker-wrap input.ecomsb-qo-picker[type="text"] {
    width: 100% !important;
    max-width: none !important;
    padding-inline-end: 50px !important;
    cursor: pointer !important;
}
/* Clock notation is intrinsically left-to-right. Isolate the time string from
   the surrounding RTL paragraph so 06:09 is never painted as 09:06 and the
   AM/PM token stays on the correct side. Alignment still follows the page. */
html body .ecomsb-qo-overlay .ecomsb-qo-picker-wrap input.ecomsb-qo-picker[data-ecomsb-qo-picker-type="time"][type="text"] {
    direction: ltr !important;
    unicode-bidi: plaintext !important;
}
html[dir="rtl"] body .ecomsb-qo-overlay .ecomsb-qo-picker-wrap input.ecomsb-qo-picker[data-ecomsb-qo-picker-type="time"][type="text"] {
    text-align: right !important;
}
html body .ecomsb-qo-overlay .ecomsb-qo-picker-open {
    -webkit-appearance: none !important;
    appearance: none !important;
    position: absolute !important;
    inset-block: 1px !important;
    inset-inline-end: 1px !important;
    z-index: 2 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 44px !important;
    min-width: 44px !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-inline-start: 1px solid var(--ecomsb-qo-input-border, #d1d5db) !important;
    border-radius: 0 !important;
    border-start-end-radius: 11px !important;
    border-end-end-radius: 11px !important;
    background: #f8fafc !important;
    color: #2563eb !important;
    box-shadow: none !important;
    line-height: 1 !important;
    text-transform: none !important;
    cursor: pointer !important;
}
html body .ecomsb-qo-overlay .ecomsb-qo-picker-open[hidden] {
    display: none !important;
}
html body .ecomsb-qo-overlay .ecomsb-qo-picker-open:hover,
html body .ecomsb-qo-overlay .ecomsb-qo-picker-open:focus-visible {
    background: #eef4ff !important;
    color: #1d4ed8 !important;
    outline: none !important;
}
html body .ecomsb-qo-overlay .ecomsb-qo-picker-open svg {
    display: block !important;
    width: 19px !important;
    height: 19px !important;
    pointer-events: none !important;
}
html.ecomsb-qo-open .air-datepicker.ecomsb-qo-air-datepicker {
    --adp-z-index: 2147483300;
    --adp-font-family: var(--ecomsb-font, inherit);
    --adp-accent-color: #2563eb;
    --adp-cell-background-color-selected: #2563eb;
    --adp-cell-background-color-selected-hover: #1d4ed8;
    --adp-day-name-color: #2563eb;
    font-family: var(--ecomsb-font, inherit) !important;
    z-index: 2147483300 !important;
}
html.ecomsb-qo-open .air-datepicker.ecomsb-qo-air-datepicker--rtl {
    direction: rtl !important;
}
/* Keep the calendar chrome RTL, but isolate the numeric clock itself. Air
   Datepicker renders hours, colon, minutes and day period as flex children;
   inheriting RTL reverses those children visually even though the selected
   Date value is correct. Range controls also remain LTR so their direction is
   consistent with the displayed clock. */
html.ecomsb-qo-open .air-datepicker.ecomsb-qo-air-datepicker--time .air-datepicker-time--current {
    direction: ltr !important;
    unicode-bidi: isolate !important;
}
html.ecomsb-qo-open .air-datepicker.ecomsb-qo-air-datepicker--time .air-datepicker-time--row input[type="range"] {
    direction: ltr !important;
}
html.ecomsb-qo-open .air-datepicker-overlay {
    --adp-overlay-z-index: 2147483200;
    z-index: 2147483200 !important;
}
html.ecomsb-qo-open .air-datepicker.ecomsb-qo-air-datepicker button.air-datepicker-button {
    min-height: 34px !important;
    margin: 0 !important;
    padding: 0 8px !important;
    border: 0 !important;
    border-radius: var(--adp-btn-border-radius) !important;
    background: transparent !important;
    color: var(--adp-btn-color) !important;
    box-shadow: none !important;
    font: inherit !important;
    line-height: 1.2 !important;
    letter-spacing: normal !important;
    text-transform: none !important;
}
html.ecomsb-qo-open .air-datepicker.ecomsb-qo-air-datepicker button.air-datepicker-button:hover,
html.ecomsb-qo-open .air-datepicker.ecomsb-qo-air-datepicker button.air-datepicker-button:focus-visible {
    background: var(--adp-btn-background-color-hover) !important;
    color: var(--adp-btn-color-hover) !important;
    outline: none !important;
}


/* Woodmart and late-theme ownership for Quick Order region controls.
   The region toggle and every option keep logical start/end alignment; themes
   must not center the selected label, governorate names or shipping amounts. */
html body .ecomsb-qo-overlay .ecomsb-qo-dialog button.ecomsb-qo-region-toggle,
html body .ecomsb-qo-overlay .ecomsb-qo-dialog input.ecomsb-qo-region-search,
html body .ecomsb-qo-overlay .ecomsb-qo-dialog button.ecomsb-qo-region-option {
    text-align: start !important;
}
html body .ecomsb-qo-overlay .ecomsb-qo-dialog button.ecomsb-qo-region-toggle {
    justify-content: stretch !important;
    justify-items: stretch !important;
}
html body .ecomsb-qo-overlay .ecomsb-qo-dialog button.ecomsb-qo-region-toggle .ecomsb-qo-region-arrow {
    justify-self: end !important;
}
html body .ecomsb-qo-overlay .ecomsb-qo-dialog button.ecomsb-qo-region-option {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    width: 100% !important;
}
html body .ecomsb-qo-overlay .ecomsb-qo-dialog button.ecomsb-qo-region-toggle .ecomsb-qo-region-label,
html body .ecomsb-qo-overlay .ecomsb-qo-dialog button.ecomsb-qo-region-option .ecomsb-qo-region-opt-name {
    text-align: start !important;
    justify-self: stretch !important;
    flex: 1 1 auto !important;
    margin-inline-end: auto !important;
}
html body .ecomsb-qo-overlay .ecomsb-qo-dialog button.ecomsb-qo-region-option .ecomsb-qo-region-opt-cost {
    text-align: end !important;
    flex: 0 0 auto !important;
    margin-inline-start: auto !important;
    margin-inline-end: 0 !important;
}

/* Required Gift/YITH controls remain visibly invalid until the shopper
   replaces the placeholder or supplies the required value. Scoped to plugin
   configuration popups only. */
.ecomsb-giftpop-overlay .ecomsb-qd-config-options .ecomsb-qd-config-invalid,
.ecomsb-qd-config-overlay .ecomsb-qd-config-options .ecomsb-qd-config-invalid {
    border-color: #dc2626 !important;
    box-shadow: 0 0 0 2px rgba(220, 38, 38, .14) !important;
}



/* Native Delivery Time keeps the platform clock/wheel picker while the
   owned logical-end button remains the visible launcher. */
html body .ecomsb-qo-overlay .ecomsb-qo-picker-wrap input.ecomsb-qo-picker[type="time"] {
    width: 100% !important;
    max-width: none !important;
    direction: ltr !important;
    text-align: end !important;
    padding-inline-end: 52px !important;
}
html body .ecomsb-qo-overlay .ecomsb-qo-picker-wrap input.ecomsb-qo-picker[type="time"]::-webkit-calendar-picker-indicator {
    opacity: 0;
    pointer-events: none;
}

/* Preserve canonical WooCommerce amount structure so currency filters and
   merchant-owned bdi/currencySymbol pseudo-elements remain usable. */
html body .ecomsb-qd :is(.ecomsb-qd-price-new,.ecomsb-qd-price-old,.ecomsb-qd-prow-val,.ecomsb-qd-unit-val) .woocommerce-Price-amount,
html body .ecomsb-qd :is(.ecomsb-qd-price-new,.ecomsb-qd-price-old,.ecomsb-qd-prow-val,.ecomsb-qd-unit-val) .woocommerce-Price-amount bdi {
    display: inline-block;
    overflow: visible;
    white-space: nowrap;
}

/* Offer-footer clearance, theme-proof banner/FAQ controls, and unit-price baseline. */
html body .ecomsb-qd .ecomsb-qd-offer-footer-banner {
    display: block;
    width: 100%;
    min-width: 0;
    margin-top: 14px;
}
html body .ecomsb-qd .ecomsb-qd-offer-footer-banner > .ecomsb-banners {
    margin-top: 0;
}

html body .ecomsb-qd button.ecomsb-banners__nav {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 34px !important;
    min-width: 34px !important;
    max-width: 34px !important;
    height: 34px !important;
    min-height: 34px !important;
    max-height: 34px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 50% !important;
    line-height: 0 !important;
    aspect-ratio: 1 / 1;
    box-sizing: border-box !important;
    appearance: none !important;
    -webkit-appearance: none !important;
    transform: translateY(-50%) !important;
}
html body .ecomsb-qd button.ecomsb-banners__nav .ecomsb-nav-ico {
    display: block !important;
    width: 13px !important;
    min-width: 13px !important;
    max-width: 13px !important;
    height: 13px !important;
    min-height: 13px !important;
    max-height: 13px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    transform: none !important;
}

html body .ecomsb-qd-acc .ecomsb-qd-acc-toggle {
    display: block !important;
    position: relative !important;
    width: 18px !important;
    min-width: 18px !important;
    max-width: 18px !important;
    height: 18px !important;
    min-height: 18px !important;
    max-height: 18px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: none !important;
    box-shadow: none !important;
    line-height: 0 !important;
    box-sizing: border-box !important;
    appearance: none !important;
    -webkit-appearance: none !important;
}
html body .ecomsb-qd-acc .ecomsb-qd-acc-toggle::before,
html body .ecomsb-qd-acc .ecomsb-qd-acc-toggle::after {
    box-sizing: border-box !important;
    margin: 0 !important;
    padding: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
}
html body .ecomsb-qd-acc.ecomsb-qd-acc--chevron .ecomsb-qd-acc-toggle::before {
    content: "" !important;
    position: absolute !important;
    top: 4px !important;
    left: 4px !important;
    width: 9px !important;
    height: 9px !important;
    border: 0 !important;
    border-right: 2px solid currentColor !important;
    border-bottom: 2px solid currentColor !important;
    background: transparent !important;
    transform: rotate(45deg) !important;
}
html body .ecomsb-qd-acc.ecomsb-qd-acc--arrow .ecomsb-qd-acc-toggle::before {
    content: "" !important;
    position: absolute !important;
    top: 5px !important;
    left: 5px !important;
    width: 8px !important;
    height: 8px !important;
    border: 0 !important;
    border-top: 2px solid currentColor !important;
    border-right: 2px solid currentColor !important;
    background: transparent !important;
    transform: rotate(45deg) !important;
}
html body .ecomsb-qd-acc.ecomsb-qd-acc--plus .ecomsb-qd-acc-toggle::before,
html body .ecomsb-qd-acc.ecomsb-qd-acc--plus .ecomsb-qd-acc-toggle::after {
    content: "" !important;
    position: absolute !important;
    border: 0 !important;
    background: currentColor !important;
}
html body .ecomsb-qd-acc.ecomsb-qd-acc--plus .ecomsb-qd-acc-toggle::before {
    top: 8px !important;
    left: 2px !important;
    width: 14px !important;
    height: 2px !important;
}
html body .ecomsb-qd-acc.ecomsb-qd-acc--plus .ecomsb-qd-acc-toggle::after {
    top: 2px !important;
    left: 8px !important;
    width: 2px !important;
    height: 14px !important;
}
html body .ecomsb-qd-acc.ecomsb-qd-acc--plus .ecomsb-qd-acc-item.is-open .ecomsb-qd-acc-toggle::after {
    opacity: 0 !important;
}

html body .ecomsb-qd .ecomsb-qd-unit {
    align-items: baseline !important;
}
/* Keep the rendered Quantity Deals unit price and the Sticky Bar summary
   on WooCommerce's native baseline. Extending the established owner rule
   prevents Flatsome-style superscript currency without adding a later override. */
html body .ecomsb-qd .ecomsb-qd-unit,
html body .ecomsb-qd .ecomsb-qd-unit-val,
html body .ecomsb-qd .ecomsb-qd-unit-val .woocommerce-Price-amount,
html body .ecomsb-qd .ecomsb-qd-unit-val .woocommerce-Price-amount bdi,
html body .ecomsb-qd .ecomsb-qd-unit-val .woocommerce-Price-currencySymbol,
html body .ecomsb-sticky .ecomsb-sticky__unit-price,
html body .ecomsb-sticky .ecomsb-sticky__unit-price .woocommerce-Price-amount,
html body .ecomsb-sticky .ecomsb-sticky__unit-price .woocommerce-Price-amount bdi,
html body .ecomsb-sticky .ecomsb-sticky__unit-price .woocommerce-Price-currencySymbol,
html body .ecomsb-sticky .ecomsb-sticky__price-old,
html body .ecomsb-sticky .ecomsb-sticky__price-old .woocommerce-Price-amount,
html body .ecomsb-sticky .ecomsb-sticky__price-old .woocommerce-Price-amount bdi,
html body .ecomsb-sticky .ecomsb-sticky__price-old .woocommerce-Price-currencySymbol {
    position: static !important;
    inset: auto !important;
    top: auto !important;
    bottom: auto !important;
    transform: none !important;
    vertical-align: baseline !important;
    line-height: inherit !important;
}
html body .ecomsb-qd .ecomsb-qd-unit-val .woocommerce-Price-currencySymbol,
html body .ecomsb-sticky .ecomsb-sticky__unit-price .woocommerce-Price-currencySymbol,
html body .ecomsb-sticky .ecomsb-sticky__price-old .woocommerce-Price-currencySymbol {
    font-size: 1em !important;
}



/* Row-gap tuning, price-row strike parity, and lighter corner-tab clearance. */
html body .ecomsb-qd .ecomsb-qd-deals {
    gap: 8px !important;
}

html body .ecomsb-qd .ecomsb-qd-price-old,
html body .ecomsb-qd .ecomsb-qd-price-old :is(.woocommerce-Price-amount, .woocommerce-Price-amount *, .woocommerce-Price-currencySymbol, bdi),
html body .ecomsb-qd .ecomsb-qd-prow-before .ecomsb-qd-prow-val,
html body .ecomsb-qd .ecomsb-qd-prow-before .ecomsb-qd-prow-val :is(.woocommerce-Price-amount, .woocommerce-Price-amount *, .woocommerce-Price-currencySymbol, bdi) {
    text-decoration-line: line-through !important;
    text-decoration-thickness: from-font !important;
    text-decoration-skip-ink: auto !important;
    text-decoration-color: currentColor !important;
}
html body .ecomsb-qd .ecomsb-qd-price-old[style*="display:none"],
html body .ecomsb-qd .ecomsb-qd-price-old[style*="display: none"] {
    display: none !important;
}

html body .ecomsb-qd .ecomsb-qd-deal.ecomsb-qd-deal--bs-pill {
    margin-top: 8px !important;
}
html body .ecomsb-qd .ecomsb-qd-deal.ecomsb-qd-deal--bs-cornertab {
    margin-top: 4px !important;
    padding-top: 26px !important;
}
html body .ecomsb-qd .ecomsb-qd-deals--compact .ecomsb-qd-deal.ecomsb-qd-deal--bs-cornertab {
    padding-top: 26px !important;
}
html body .ecomsb-qd .ecomsb-qd-deal.ecomsb-qd-deal--bs-cornertab .ecomsb-qd-deal-top {
    margin-top: 4px !important;
}
html body .ecomsb-qd .ecomsb-qd-deal.ecomsb-qd-deal--bs-tag,
html body .ecomsb-qd .ecomsb-qd-deal.ecomsb-qd-deal--bs-banner {
    margin-top: 0 !important;
}

@media (max-width: 600px) {
    html body .ecomsb-qd .ecomsb-qd-deal.ecomsb-qd-deal--bs-cornertab {
        margin-top: 3px !important;
        padding-top: 28px !important;
    }
    html body .ecomsb-qd .ecomsb-qd-deals--compact .ecomsb-qd-deal.ecomsb-qd-deal--bs-cornertab {
        padding-top: 28px !important;
    }
    html body .ecomsb-qd .ecomsb-qd-deal.ecomsb-qd-deal--bs-cornertab .ecomsb-qd-deal-top {
        margin-top: 5px !important;
    }
}

/* Quick Order Air Datepicker touch ergonomics and gift dropdown containment. */
html.ecomsb-qo-open .air-datepicker.ecomsb-qo-air-datepicker--time {
    width: min(92vw, 420px) !important;
    max-width: calc(100vw - 24px) !important;
    border-radius: 14px !important;
    --adp-time-track-height: 5px;
    --adp-time-thumb-size: 22px;
}
html.ecomsb-qo-open .air-datepicker.ecomsb-qo-air-datepicker--time .air-datepicker-time {
    grid-template-columns: 96px minmax(0, 1fr) !important;
    column-gap: 18px !important;
    align-items: center !important;
    padding: 14px 16px 10px !important;
}
html.ecomsb-qo-open .air-datepicker.ecomsb-qo-air-datepicker--time .air-datepicker-time--current {
    justify-content: center !important;
    min-width: 88px !important;
    padding: 8px 10px !important;
    border-radius: 12px !important;
    background: #f8fafc !important;
    border: 1px solid #dbeafe !important;
    color: #111827 !important;
    font-weight: 700 !important;
}
html.ecomsb-qo-open .air-datepicker.ecomsb-qo-air-datepicker--time .air-datepicker-time--row {
    height: 38px !important;
    margin: 0 0 10px !important;
    background-size: 100% 5px !important;
}
html.ecomsb-qo-open .air-datepicker.ecomsb-qo-air-datepicker--time .air-datepicker-time--row:last-child {
    margin-bottom: 0 !important;
}
html.ecomsb-qo-open .air-datepicker.ecomsb-qo-air-datepicker--time .air-datepicker-time--row input[type="range"] {
    height: 38px !important;
    min-height: 38px !important;
    touch-action: pan-x !important;
}
html.ecomsb-qo-open .air-datepicker.ecomsb-qo-air-datepicker--time .air-datepicker-time--row input[type="range"]::-webkit-slider-thumb {
    width: 22px !important;
    height: 22px !important;
    margin-top: -9px !important;
    border-radius: 999px !important;
    border: 2px solid #2563eb !important;
    background: #fff !important;
    box-shadow: 0 2px 8px rgba(37, 99, 235, .25) !important;
}
html.ecomsb-qo-open .air-datepicker.ecomsb-qo-air-datepicker--time .air-datepicker-time--row input[type="range"]::-moz-range-thumb {
    width: 22px !important;
    height: 22px !important;
    border-radius: 999px !important;
    border: 2px solid #2563eb !important;
    background: #fff !important;
    box-shadow: 0 2px 8px rgba(37, 99, 235, .25) !important;
}
html.ecomsb-qo-open .air-datepicker.ecomsb-qo-air-datepicker .air-datepicker-buttons {
    display: flex !important;
    gap: 8px !important;
    padding: 10px !important;
}
html.ecomsb-qo-open .air-datepicker.ecomsb-qo-air-datepicker button.air-datepicker-button {
    flex: 1 1 0 !important;
    min-height: 40px !important;
    padding: 0 10px !important;
    border: 1px solid #dbeafe !important;
    border-radius: 11px !important;
    background: #f8fafc !important;
    color: #1d4ed8 !important;
    font-weight: 800 !important;
    box-shadow: none !important;
}
html.ecomsb-qo-open .air-datepicker.ecomsb-qo-air-datepicker button.air-datepicker-button.ecomsb-qo-air-datepicker__done {
    background: #2563eb !important;
    border-color: #2563eb !important;
    color: #fff !important;
}
html.ecomsb-qo-open .air-datepicker.ecomsb-qo-air-datepicker button.air-datepicker-button.ecomsb-qo-air-datepicker__current {
    background: #eff6ff !important;
    border-color: #bfdbfe !important;
    color: #1d4ed8 !important;
}
html.ecomsb-qo-open .air-datepicker.ecomsb-qo-air-datepicker button.air-datepicker-button:not(.ecomsb-qo-air-datepicker__done):not(.ecomsb-qo-air-datepicker__current) {
    background: #fff7ed !important;
    border-color: #fed7aa !important;
    color: #c2410c !important;
}
html.ecomsb-qo-open .air-datepicker.ecomsb-qo-air-datepicker button.air-datepicker-button:hover,
html.ecomsb-qo-open .air-datepicker.ecomsb-qo-air-datepicker button.air-datepicker-button:focus-visible {
    filter: brightness(.97) !important;
    outline: 2px solid rgba(37, 99, 235, .25) !important;
    outline-offset: 2px !important;
}
@media (max-width: 480px) {
    html.ecomsb-qo-open .air-datepicker.ecomsb-qo-air-datepicker--time {
        width: calc(100vw - 24px) !important;
    }
    html.ecomsb-qo-open .air-datepicker.ecomsb-qo-air-datepicker--time .air-datepicker-time {
        grid-template-columns: 102px minmax(0, 1fr) !important;
        column-gap: 16px !important;
        padding-inline: 14px !important;
    }
}

html body .ecomsb-giftpop-overlay .ecomsb-giftpop-card .ecomsb-giftpop-variant-select .ecomsb-qd-vs-list {
    max-width: calc(100vw - 24px) !important;
}
@media (max-width: 600px) {
    html body .ecomsb-giftpop-overlay .ecomsb-giftpop-card .ecomsb-giftpop-variant-select .ecomsb-qd-vs-list {
        width: min(260px, calc(100vw - 24px)) !important;
        min-width: min(210px, calc(100vw - 24px)) !important;
        max-width: calc(100vw - 24px) !important;
        max-height: 190px !important;
    }
    html body .ecomsb-giftpop-overlay .ecomsb-giftpop-card .ecomsb-qd-vs-control {
        grid-template-columns: 16px minmax(0, 1fr) 14px !important;
    }
    html body .ecomsb-giftpop-overlay .ecomsb-giftpop-card .ecomsb-qd-vs-opt-text,
    html body .ecomsb-giftpop-overlay .ecomsb-giftpop-card .ecomsb-qd-vs-text {
        font-size: 11px !important;
        line-height: 1.35 !important;
    }
}


/* Gift grouped variation dropdowns reuse the Quantity Deals compact mobile pattern.
   The selected card border remains the selection affordance; no radio indicator is
   shown in the Gift popup. Controls keep enough text width on narrow Safari screens
   and dropdown lists are clamped by the popup geometry in JS. */
@media (max-width: 600px) {
    html body .ecomsb-giftpop-overlay .ecomsb-giftpop-cards[data-card-mode="grouped"] > .ecomsb-giftpop-card--grouped {
        flex: 0 0 calc((100% - 10px) / 2) !important;
        width: calc((100% - 10px) / 2) !important;
        max-width: calc((100% - 10px) / 2) !important;
        min-width: 0 !important;
        padding: 7px !important;
    }
    html body .ecomsb-giftpop-overlay .ecomsb-giftpop-card .ecomsb-qd-vs-control {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) 14px !important;
        gap: 6px !important;
        min-height: 40px !important;
        padding: 7px 8px !important;
        text-align: center !important;
    }
    html body .ecomsb-giftpop-overlay .ecomsb-giftpop-card .ecomsb-qd-vs-text {
        display: -webkit-box !important;
        -webkit-box-orient: vertical !important;
        -webkit-line-clamp: 2 !important;
        white-space: normal !important;
        overflow: hidden !important;
        overflow-wrap: normal !important;
        word-break: normal !important;
        hyphens: none !important;
        text-align: center !important;
    }
    html body .ecomsb-giftpop-overlay .ecomsb-giftpop-card .ecomsb-qd-vs-opt-text {
        white-space: normal !important;
        overflow-wrap: normal !important;
        word-break: normal !important;
        hyphens: none !important;
        text-align: center !important;
    }
    html body .ecomsb-giftpop-overlay .ecomsb-giftpop-card .ecomsb-qd-vs-list {
        width: min(230px, calc(100vw - 32px)) !important;
        min-width: min(178px, calc(100vw - 32px)) !important;
        max-width: calc(100vw - 32px) !important;
        max-height: 190px !important;
    }
    html body .ecomsb-giftpop-overlay .ecomsb-giftpop-card .ecomsb-qd-vs-radio {
        display: none !important;
    }
    html body .ecomsb-giftpop-overlay .ecomsb-giftpop-card .ecomsb-qd-vs-arrow {
        display: inline-grid !important;
        place-items: center !important;
        width: 14px !important;
        min-width: 14px !important;
        transform-origin: center !important;
    }
}

/* Quantity Deals sticky summary owns its Starting-from styling and comparison word. */
html body .ecomsb-sticky .ecomsb-sticky__unit-price {
    white-space: normal;
}
html body .ecomsb-sticky .ecomsb-sticky__starting {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 2px 7px;
    border-radius: 999px;
    background: var(--ecomsb-qd-starting-bg, #8cee19);
    color: var(--ecomsb-qd-starting-text, #000000);
    font-size: 11px;
    font-weight: 700;
    line-height: 1.15;
    vertical-align: baseline;
}
html body .ecomsb-sticky .ecomsb-sticky__instead {
    color: #6b7280;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.2;
    vertical-align: baseline;
}
html body .ecomsb-sticky .ecomsb-sticky__instead[hidden] {
    display: none !important;
}
html body .ecomsb-sticky .ecomsb-sticky__price-old,
html body .ecomsb-sticky .ecomsb-sticky__price-old :is(.woocommerce-Price-amount, bdi, .woocommerce-Price-currencySymbol) {
    text-decoration-line: line-through !important;
    text-decoration-thickness: 1.5px !important;
    text-decoration-color: currentColor !important;
}

/* Rich-text offer description: preserve TinyMCE inline formatting without adding extra spacing. */
html body .ecomsb-qd .ecomsb-qd-desc > :first-child { margin-top: 0 !important; }
html body .ecomsb-qd .ecomsb-qd-desc > :last-child { margin-bottom: 0 !important; }
html body .ecomsb-qd .ecomsb-qd-desc p { color: inherit; font: inherit; text-align: inherit; }


/* KAPEE/theme label reset: deal cards are <label> controls, but theme label
   typography and spacing must not add visual padding or gaps inside cards. */
html body .ecomsb-qd label.ecomsb-qd-deal {
    margin-block: 0 !important;
    margin-inline: 0 !important;
    font-weight: inherit !important;
    color: inherit !important;
    line-height: 1.35 !important;
}
html body .ecomsb-qd label.ecomsb-qd-deal.ecomsb-qd-deal--bs-banner {
    padding-top: 0 !important;
}
html body .ecomsb-qd label.ecomsb-qd-deal.ecomsb-qd-deal--bs-banner .ecomsb-qd-ribbon--banner {
    margin: 0 -16px 8px -16px !important;
}
@media (max-width: 600px) {
    html body .ecomsb-qd label.ecomsb-qd-deal.ecomsb-qd-deal--bs-banner .ecomsb-qd-ribbon--banner {
        margin-inline: -9px !important;
    }
}

/* Theme compatibility: KAPEE product-summary label cards should keep the
   plugin deal geometry compact without changing image sizes or RTL order. */
html body[class*="kapee-v"] #primary .product .single-product-wrapper .entry-summary .ecomsb-qd label.ecomsb-qd-deal {
    display: flex !important;
    flex-direction: column !important;
    margin: 0 !important;
    font-weight: inherit !important;
    line-height: 1.35 !important;
    color: inherit !important;
}
html body[class*="kapee-v"] #primary .product .single-product-wrapper .entry-summary .ecomsb-qd .ecomsb-qd-deal-top {
    align-items: start !important;
    margin-top: -20px !important;
}
html body[class*="kapee-v"] #primary .product .single-product-wrapper .entry-summary .ecomsb-qd .ecomsb-qd-deal-image {
    align-self: start !important;
}
html body[class*="kapee-v"] #primary .product .single-product-wrapper .entry-summary .ecomsb-qd .ecomsb-qd-deal-main {
    align-self: start !important;
    align-content: start !important;
    justify-content: flex-start !important;
    min-height: 0 !important;
    grid-template-rows: auto auto !important;
}
html body[class*="kapee-v"] #primary .product .single-product-wrapper .entry-summary .ecomsb-qd .ecomsb-qd-deal-titlewrap {
    align-self: start !important;
    grid-template-rows: auto auto !important;
    justify-content: flex-start !important;
}
html body[class*="kapee-v"] #primary .product .single-product-wrapper .entry-summary .ecomsb-qd .ecomsb-qd-deal-title,
html body[class*="kapee-v"] #primary .product .single-product-wrapper .entry-summary .ecomsb-qd .ecomsb-qd-deal-desc {
    align-self: start !important;
}
html body[class*="kapee-v"] #primary .product .single-product-wrapper .entry-summary .ecomsb-qd .ecomsb-qd-deal-pricecol {
    align-self: start !important;
    justify-content: flex-start !important;
}
html body[class*="kapee-v"] #primary .product .single-product-wrapper .entry-summary .ecomsb-qd .ecomsb-qd-deal--bs-tag .ecomsb-qd-deal-top {
    margin-top: -1px !important;
}
html body[class*="kapee-v"] #primary .product .single-product-wrapper .entry-summary .ecomsb-qd label.ecomsb-qd-deal.ecomsb-qd-deal--bs-banner {
    padding-top: 0 !important;
    overflow: hidden !important;
}
html body[class*="kapee-v"] #primary .product .single-product-wrapper .entry-summary .ecomsb-qd label.ecomsb-qd-deal.ecomsb-qd-deal--bs-banner > .ecomsb-qd-ribbon--banner {
    position: relative !important;
    display: block !important;
    width: calc(100% + 32px) !important;
    max-width: none !important;
    margin: -33px -16px 16px -16px !important;
    padding: 4px 10px !important;
    inset: auto !important;
    transform: none !important;
    border-radius: var(--ecomsb-qd-card-radius, 12px) var(--ecomsb-qd-card-radius, 12px) 0 0 !important;
    clip-path: none !important;
    pointer-events: none !important;
}
html body[class*="kapee-v"] #primary .product .single-product-wrapper .entry-summary .ecomsb-qd label.ecomsb-qd-deal.ecomsb-qd-deal--bs-banner > .ecomsb-qd-deal-top {
    margin-top: -12px !important;
}
html body[class*="kapee-v"] #primary .product .single-product-wrapper .entry-summary .ecomsb-qd label.ecomsb-qd-deal.is-selected + .ecomsb-qd-variants {
    margin-top: 2px !important;
}
@media (max-width: 767px) {
    html body[class*="kapee-v"] #primary .product .single-product-wrapper .entry-summary .ecomsb-qd label.ecomsb-qd-deal.is-selected + .ecomsb-qd-variants {
        margin-top: 0 !important;
    }
}



/* R106: global selected-deal to inline-variation spacing.
   Applies after the compact R94 variant rules so Choose-details headers do not
   touch the selected deal card on any theme. */
html body .ecomsb-qd .ecomsb-qd-deal.is-selected + .ecomsb-qd-variants {
    margin-top: 2px !important;
}
@media (max-width: 767px) {
    html body .ecomsb-qd .ecomsb-qd-deal.is-selected + .ecomsb-qd-variants {
        margin-top: 0 !important;
    }
}
