/* Оптовая витрина (buyblock, настройка «Оптовая витрина»). Цвета pultopt: красный #ee1c25, зелёный #2e9a5a. */
html.bb-ws:not(.bb-ws-ready) .cart-price { visibility: hidden; }
.bbws-hidden { display: none !important; }

/* ---------- шапка ---------- */
.bbws-hc { display: block; margin-top: 4px; width: 150px; }
.bbws-hc[hidden] { display: none; }
.bbws-bar { display: block; height: 5px; border-radius: 3px; background: #e6e7ec; overflow: hidden; }
.bbws-bar i { display: block; height: 100%; background: #2e9a5a; border-radius: 3px; transition: width .3s; }
.bbws-hc-t { display: block; margin-top: 3px; font-size: 11px; line-height: 1.25; color: #6b6f7b; white-space: normal; }
.f-panel__cart .bbws-hc { min-width: 0; margin-top: 2px; }
.f-panel__cart .bbws-hc-t { display: none; }
.bbws-save { margin: 10px 0 2px; padding: 9px 12px; border: 1px solid #f3d27a; border-radius: 8px; background: #fff8e1; font-size: 13px; line-height: 1.35; color: #333; }

/* ---------- карточки ---------- */
.bbws-sku { display: block; font-size: 12px; color: #8a8f99; margin-bottom: 2px; }
.bbws-meta { display: block; margin: 4px 0 2px; }
.bbws-stock { font-size: 13px; font-weight: 500; color: #2e9a5a; white-space: nowrap; }
.bbws-stock::before { content: ''; display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: currentColor; margin-right: 5px; vertical-align: 1px; }
.bbws-stock-no { color: #a0a4ad; }
.bbws-card .complex5 .js-complex-plugin-table,
.bbws-card .complex5 .complex-plugin-table { display: none !important; }
.bbws-pb { margin: 6px 0 8px; }
.bbws-your { display: flex; align-items: baseline; gap: 6px; flex-wrap: wrap; margin-bottom: 4px; }
.bbws-your b { font-size: 22px; line-height: 1.1; color: #222; white-space: nowrap; }
.bbws-your span { font-size: 12px; color: #8a8f99; }
.bbws-ladder { font-size: 12px; line-height: 1.3; }
.bbws-lr { display: flex; justify-content: space-between; gap: 8px; padding: 2px 7px; border-radius: 4px; color: #555; }
.bbws-lr.is-cur { background: #fdecec; color: #c4121b; font-weight: 700; }
.bbws-pb-product { max-width: 320px; }
.bbws-pb-product .bbws-your b { font-size: 28px; }
.bbws-pb-product .bbws-ladder { font-size: 14px; }
.bbws-pb-product .bbws-lr { padding: 3px 9px; }
.bbws-pb-product .bbws-meta { margin: 0 0 8px; }

/* ---------- Плитка / Список ---------- */
.bbws-bar-top { display: flex; align-items: center; justify-content: flex-end; gap: 16px; margin: 0 0 14px; }
.bbws-quick-link { font-size: 14px; color: #232846; text-decoration: underline; text-underline-offset: 3px; }
.bbws-switch { display: inline-flex; border: 1px solid #d9dbe2; border-radius: 6px; overflow: hidden; }
.bbws-switch button { border: 0; background: #fff; padding: 8px 14px; font: inherit; font-size: 14px; color: #232846; cursor: pointer; }
.bbws-switch button.is-on { background: #232846; color: #fff; }
.bbws-wrap[hidden] { display: none; }
.bbws-tw { background: #fff; border: 1px solid #e5e6ea; border-radius: 12px; overflow: auto; }
.bbws-t { width: 100%; border-collapse: collapse; font-size: 14px; }
.bbws-t th { background: #f6f7f9; font-size: 12px; font-weight: 500; color: #666; text-align: left; padding: 9px 8px; border-bottom: 1px solid #e5e6ea; white-space: nowrap; }
.bbws-t td { padding: 6px 8px; border-bottom: 1px solid #eef0f3; vertical-align: middle; }
.bbws-t tr:last-child td { border-bottom: 0; }
.bbws-t .bbws-n { text-align: right; white-space: nowrap; }
.bbws-t th.is-cur { color: #c4121b; font-weight: 700; }
.bbws-t td.is-cur { background: #fdecec; color: #c4121b; font-weight: 700; }
.bbws-t tr.is-sel td { background: #f3fbf6; }
.bbws-t tr.is-sel td.is-cur { background: #fae3e3; }
.bbws-t tr.is-na td { color: #a0a4ad; }
.bbws-img { width: 52px; }
.bbws-img img { width: 40px; height: 40px; object-fit: contain; display: block; }
.bbws-sk { color: #777; white-space: nowrap; }
.bbws-nm a { color: #222; text-decoration: none; }
.bbws-nm a:hover { color: #ee1c25; }
.bbws-st .bbws-stock { font-size: 13px; }
.bbws-sum { font-weight: 700; }
.bbws-qty { display: inline-flex; align-items: center; border: 1px solid #d9dbe2; border-radius: 6px; background: #fff; }
.bbws-qty button { width: 28px; height: 32px; border: 0; background: none; font-size: 17px; color: #666; cursor: pointer; padding: 0; }
.bbws-qty input { width: 46px; height: 32px; border: 0; border-left: 1px solid #eee; border-right: 1px solid #eee; text-align: center; font: inherit; font-size: 15px; padding: 0; outline: none; background: #fff; }
.bbws-qty input:focus { background: #fffbe6; }
tr.is-sel .bbws-qty { border-color: #2e9a5a; }
.bbws-hint { font-size: 13px; color: #8a8f99; margin: 8px 2px 0; }
.bbws-dock { position: sticky; bottom: 0; z-index: 50; display: flex; align-items: center; gap: 24px; margin-top: 12px; padding: 12px 18px; background: #232846; color: #fff; border-radius: 12px; }
.bbws-dock[hidden] { display: none; }
.bbws-dock small { display: block; font-size: 12px; opacity: .75; }
.bbws-dock b { display: block; font-size: 17px; white-space: nowrap; }
.bbws-dock-i { flex: 1; min-width: 0; }
.bbws-dock-i small { opacity: .85; margin-bottom: 6px; }
.bbws-dock .bbws-bar { background: #3a4066; }
.bbws-add, .bbq-btn { border: 0; border-radius: 6px; background: #ee1c25; color: #fff; font: inherit; font-weight: 700; font-size: 15px; padding: 12px 20px; cursor: pointer; white-space: nowrap; }
.bbws-add:disabled, .bbq-btn:disabled { opacity: .7; cursor: wait; }
html.bbws-listmode .f-panel { z-index: 40; }

/* уведомление после добавления */
.bbws-toast { position: fixed; left: 50%; bottom: 90px; z-index: 10000; transform: translate(-50%, 20px); opacity: 0; transition: .3s; max-width: 92vw; padding: 12px 18px; border-radius: 10px; background: #2e9a5a; color: #fff; font-size: 15px; white-space: pre-line; box-shadow: 0 10px 30px rgba(0,0,0,.18); }
.bbws-toast.is-warn { background: #b3540f; }
.bbws-toast.is-on { opacity: 1; transform: translate(-50%, 0); }
.bbws-toast a { display: inline-block; margin-left: 14px; color: #fff; font-weight: 700; text-decoration: underline; }

/* ---------- быстрый заказ ---------- */
.bbq { margin-bottom: 40px; }
.bbq-h1 { margin: 0 0 18px; }
.bbq-grid { display: grid; grid-template-columns: 340px minmax(0, 1fr); gap: 20px; align-items: start; }
.bbq-box { background: #fff; border: 1px solid #e5e6ea; border-radius: 12px; }
.bbq-in { padding: 18px; }
.bbq-hint { font-size: 13px; color: #777; margin: 4px 0 10px; }
.bbq-text { box-sizing: border-box; width: 100%; height: 240px; resize: vertical; padding: 12px; border: 1px solid #d9dbe2; border-radius: 8px; background: #f6f7f9; font: 15px/1.7 Menlo, Consolas, monospace; }
.bbq-btns { display: flex; gap: 10px; margin-top: 12px; }
.bbq-btns > * { flex: 1; text-align: center; }
.bbq-btn-o { background: #fff; color: #ee1c25; border: 2px solid #ee1c25; padding: 10px 12px; }
.bbq-link { display: block; margin-top: 14px; padding: 0; border: 0; background: none; font: inherit; font-size: 14px; color: #232846; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; text-align: left; }
.bbq-out { overflow: hidden; }
.bbq-out-h { padding: 14px 18px; }
.bbq-status { color: #777; font-size: 13px; }
.bbq-t td.bbq-ok { color: #2e9a5a; }
.bbq-t tr.is-miss td { background: #fdecec; color: #c4121b; }
.bbq-x { width: 26px; height: 26px; border: 0; border-radius: 50%; background: none; color: #a0a4ad; font-size: 18px; cursor: pointer; }
.bbq-x:hover { background: #f1f2f5; color: #c4121b; }
.bbq-foot { display: flex; align-items: center; gap: 20px; padding: 14px 18px; border-top: 1px solid #e5e6ea; }
.bbq-foot[hidden] { display: none; }
.bbq-sum { flex: 1; }
.bbq-sum b { font-size: 18px; }
.bbq-sum small { display: block; color: #777; font-size: 12px; margin-top: 2px; }

/* ---------- телефон ---------- */
@media (max-width: 767px) {
    .bbws-your b { font-size: 18px; }
    .bbws-ladder { font-size: 11px; }
    .bbws-lr { padding: 1px 4px; }
    .bbws-bar-top { justify-content: space-between; }
    .bbws-tw { border: 0; background: none; overflow: visible; }
    .bbws-t, .bbws-t tbody { display: block; }
    .bbws-t tr:first-child { display: none; }
    .bbws-t tr { display: grid; grid-template-columns: 44px minmax(0, 1fr) auto; grid-template-areas: "img nm nm" "img st st" "img pr q" "img pr sum"; gap: 2px 10px; padding: 10px; margin-bottom: 8px; background: #fff; border: 1px solid #e5e6ea; border-radius: 10px; }
    .bbws-t td { display: none; padding: 0; border: 0; background: none !important; }
    .bbws-t td.bbws-img { display: block; grid-area: img; width: auto; }
    .bbws-t td.bbws-nm { display: block; grid-area: nm; font-size: 14px; }
    .bbws-t td.bbws-sk { display: none; }
    .bbws-t td.bbws-st { display: block; grid-area: st; }
    .bbws-t td.bbws-pr.is-cur { display: block; grid-area: pr; text-align: left; font-size: 17px; align-self: center; }
    .bbws-t td.bbws-pr.is-cur::after { content: ' руб. · ' attr(data-l); font-size: 12px; font-weight: 400; }
    .bbws-t td.bbws-q { display: block; grid-area: q; }
    .bbws-t td.bbws-sum { display: block; grid-area: sum; text-align: right; font-size: 13px; }
    .bbws-t tr.is-sel { border-color: #2e9a5a; background: #f3fbf6; }
    .bbws-dock { flex-wrap: wrap; gap: 6px 16px; padding: 10px 12px; bottom: 60px; border-radius: 10px; }
    .bbws-dock-i { order: 3; flex-basis: 100%; }
    .bbws-dock .bbws-add { margin-left: auto; padding: 10px 14px; }
    .bbq-grid { grid-template-columns: 1fr; }
    .bbq-text { height: 160px; }
    .bbq-t tr { grid-template-columns: 22px minmax(0, 1fr) auto; grid-template-areas: "ok nm x" "ok st st" "ok pr q" "ok sum sum"; }
    .bbq-t td.bbq-ok { display: block; grid-area: ok; }
    .bbq-t td.bbws-n:not(.bbws-sum) { display: block; grid-area: pr; text-align: left; align-self: center; font-weight: 700; }
    .bbq-t td:last-child { display: block; grid-area: x; }
    .bbq-t tr.is-miss { grid-template-areas: "ok nm x"; }
    .bbq-t tr.is-miss td { display: block; }
    .bbq-t tr.is-miss td:first-child { grid-area: ok; }
    .bbq-t tr.is-miss td[colspan] { grid-area: nm; }
    .bbq-foot { flex-wrap: wrap; }
    .bbq-foot .bbq-btn { width: 100%; }
}
/* над нижней панелью темы (f-panel, 54 px на компьютере) */
@media (min-width: 768px) {
    html:has(.f-panel) .bbws-dock { bottom: 62px; }
}
.bbq-wrap { padding-top: 20px; }
