/* ТЕХНО-БУ — tb-features.css (владелец: агент theme-features).
   Формы заявок, реклама в сетке, плашка cookie, блок «Комиссионка», страница товара.
   Цвета берём из tehnobu.css (--tb-*), с запасными значениями. */

:root {
    --tbf-ink: var(--tb-ink, #1f2937);
    --tbf-muted: var(--tb-muted, #6b7280);
    --tbf-line: var(--tb-line, #e5e7eb);
    --tbf-canvas: var(--tb-canvas, #f4f5f7);
    --tbf-card: var(--tb-card, #ffffff);
    --tbf-dark: var(--tb-dark, #111827);
    --tbf-accent: var(--tb-accent, #29b6f6);
    --tbf-accent-strong: #0277bd;
    --tbf-sale: var(--tb-sale, #dc2626);
    --tbf-ok: var(--tb-ok, #059669);
    --tbf-radius: var(--tb-radius, 14px);
    --tbf-shadow: var(--tb-shadow, 0 1px 2px rgba(16, 24, 40, .06), 0 1px 3px rgba(16, 24, 40, .10));
}

/* штатную cookie-плашку темы не показываем — вместо неё .tb-cookie */
#cookie-agreement { display: none !important; }

html.tb-lock,
html.tb-lock body { overflow: hidden !important; }

/* ---------- кнопки ---------- */
.tb-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 46px;
    padding: 10px 18px;
    border-radius: 10px;
    border: 1.5px solid transparent;
    font: inherit;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.2;
    text-align: center;
    text-decoration: none !important;
    white-space: normal;
    cursor: pointer;
    box-sizing: border-box;
    transition: background-color .15s, border-color .15s, color .15s, box-shadow .15s;
    -webkit-tap-highlight-color: transparent;
}
.tb-btn svg { flex: none; }
.tb-btn.tb-btn--primary { background: var(--tbf-dark); border-color: var(--tbf-dark); color: #fff; }
.tb-btn.tb-btn--primary:hover { background: #000; border-color: #000; color: #fff; }
.tb-btn.tb-btn--accent { background: var(--tbf-accent-strong); border-color: var(--tbf-accent-strong); color: #fff; }
.tb-btn.tb-btn--accent:hover { background: #01579b; border-color: #01579b; color: #fff; }
.tb-btn.tb-btn--ghost { background: #fff; border-color: #d1d5db; color: var(--tbf-ink); }
.tb-btn.tb-btn--ghost:hover { border-color: var(--tbf-dark); color: var(--tbf-dark); }
.tb-btn.tb-btn--tg { background: #fff; border-color: #9fd7f5; color: #0a72a8; }
.tb-btn.tb-btn--tg:hover { background: #f0f9ff; border-color: #229ed9; color: #075985; }
.tb-btn.tb-btn--block { display: flex; width: 100%; }
.tb-btn[disabled] { opacity: .65; cursor: progress; }
.tb-btn:focus-visible { outline: 3px solid rgba(41, 182, 246, .55); outline-offset: 2px; }

/* ---------- кнопка «Быстрый заказ» в карточке ---------- */
ul.product-list button.tb-qo-btn {
    display: block;
    width: 100%;
    margin: 6px 0 0;
    min-height: 34px;
    padding: 6px 8px;
    border-radius: 10px;
    border: 1.5px solid #d1d5db;
    background: #fff;
    color: var(--tbf-ink);
    font: inherit;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.2;
    cursor: pointer;
    box-shadow: none;
}
ul.product-list button.tb-qo-btn:hover { border-color: var(--tbf-dark); background: #fff; color: var(--tbf-dark); }

/* ---------- реклама в сетке ---------- */
ul.product-list > li.tb-ad { position: relative; display: flex; flex-direction: column; }
.tb-ad__media { display: block; position: relative; text-decoration: none !important; color: inherit; }
.tb-ad .tb-ad__image {
    position: relative;
    width: 100%;
    aspect-ratio: 4 / 5; /* docs4: как рамка фото товара (tehnobu.css «фото карточки 4:5»); было 1 / 1 */
    overflow: hidden;
    border-radius: 10px;
    background: var(--tbf-canvas);
}
.tb-ad .tb-ad__image img { display: block; width: 100%; height: 100%; object-fit: cover; max-width: none; }
.tb-ad__label {
    position: absolute;
    top: 8px;
    right: 8px;
    z-index: 2;
    padding: 3px 7px;
    border-radius: 6px;
    background: rgba(17, 24, 39, .62);
    color: #fff;
    font-size: 10.5px;
    font-weight: 600;
    line-height: 1.2;
    letter-spacing: .02em;
    pointer-events: none;
}
.tb-ad__body { display: flex; flex-direction: column; gap: 8px; flex: 1 1 auto; padding-top: 8px; }
.tb-ad .tb-ad__title {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    color: var(--tbf-ink);
    font-weight: 600;
    line-height: 1.3;
    text-decoration: none;
}
.tb-ad .tb-ad__more { margin-top: auto; text-align: center; justify-content: center; }

/* docs4 (26.10, список владельца «рекламная карточка», п. 1–4):
   • картинка всегда на всю рамку 4:5 — без серых полос сверху и снизу; какую часть держать — из панели (pos: top/center/bottom);
   • кнопка — из настроек панели (надпись, цвет, можно убрать); по умолчанию как «Купить»: #0b8de6, белый текст, жирная;
   • format full — «картинка на всю карточку»: вся плитка одна картинка и одна ссылка, без подписи и кнопки. */
ul.product-list > li.tb-ad .tb-ad__image img,
ul.product-list.tb-grid > li.tb-ad .tb-card__media .tb-ad__image img { object-fit: cover; object-position: 50% 50%; }
ul.product-list > li.tb-ad.tb-ad--pos-top .tb-ad__image img,
ul.product-list.tb-grid > li.tb-ad.tb-ad--pos-top .tb-card__media .tb-ad__image img { object-position: 50% 0; }
ul.product-list > li.tb-ad.tb-ad--pos-bottom .tb-ad__image img,
ul.product-list.tb-grid > li.tb-ad.tb-ad--pos-bottom .tb-card__media .tb-ad__image img { object-position: 50% 100%; }
ul.product-list > li.tb-ad .tb-ad__body { display: flex; flex-direction: column; flex: 1 1 auto; }
ul.product-list > li.tb-ad .tb-ad__body a.tb-ad__more,
ul.product-list.tb-grid > li.tb-ad .tb-ad__body a.tb-ad__more {
    display: flex;
    align-items: center;
    justify-content: center;
    align-self: flex-start;
    box-sizing: border-box;
    width: auto;
    min-width: 62%;
    max-width: 100%;
    min-height: 46px;
    margin-top: auto;
    padding: 0 26px;
    border: 0;
    border-radius: 999px;
    background: #0b8de6;
    color: #fff;
    font-size: 1.08em;
    font-weight: 800;
    letter-spacing: .01em;
    line-height: 1.1;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    text-decoration: none;
    box-shadow: none;
}
ul.product-list > li.tb-ad .tb-ad__body a.tb-ad__more:hover,
ul.product-list.tb-grid > li.tb-ad .tb-ad__body a.tb-ad__more:hover { background: #0a76c2; color: #fff; }
ul.product-list.tb-grid > li.tb-ad .tb-ad__body a.tb-ad__more.tb-ad__more--dark,
ul.product-list > li.tb-ad .tb-ad__body a.tb-ad__more.tb-ad__more--dark { background: #111827; color: #fff; }
ul.product-list.tb-grid > li.tb-ad .tb-ad__body a.tb-ad__more.tb-ad__more--dark:hover,
ul.product-list > li.tb-ad .tb-ad__body a.tb-ad__more.tb-ad__more--dark:hover { background: #000; }
ul.product-list.tb-grid > li.tb-ad .tb-ad__body a.tb-ad__more.tb-ad__more--green,
ul.product-list > li.tb-ad .tb-ad__body a.tb-ad__more.tb-ad__more--green { background: #16a34a; color: #fff; }
ul.product-list.tb-grid > li.tb-ad .tb-ad__body a.tb-ad__more.tb-ad__more--green:hover,
ul.product-list > li.tb-ad .tb-ad__body a.tb-ad__more.tb-ad__more--green:hover { background: #15803d; }
ul.product-list.tb-grid > li.tb-ad .tb-ad__body a.tb-ad__more.tb-ad__more--orange,
ul.product-list > li.tb-ad .tb-ad__body a.tb-ad__more.tb-ad__more--orange { background: #f97316; color: #fff; }
ul.product-list.tb-grid > li.tb-ad .tb-ad__body a.tb-ad__more.tb-ad__more--orange:hover,
ul.product-list > li.tb-ad .tb-ad__body a.tb-ad__more.tb-ad__more--orange:hover { background: #ea580c; }
ul.product-list.tb-grid > li.tb-ad .tb-ad__body a.tb-ad__more.tb-ad__more--red,
ul.product-list > li.tb-ad .tb-ad__body a.tb-ad__more.tb-ad__more--red { background: #dc2626; color: #fff; }
ul.product-list.tb-grid > li.tb-ad .tb-ad__body a.tb-ad__more.tb-ad__more--red:hover,
ul.product-list > li.tb-ad .tb-ad__body a.tb-ad__more.tb-ad__more--red:hover { background: #b91c1c; }
ul.product-list.tb-grid > li.tb-ad .tb-ad__body a.tb-ad__more.tb-ad__more--light,
ul.product-list > li.tb-ad .tb-ad__body a.tb-ad__more.tb-ad__more--light { background: #fff; color: #0b8de6; box-shadow: inset 0 0 0 2px #0b8de6; }
ul.product-list.tb-grid > li.tb-ad .tb-ad__body a.tb-ad__more.tb-ad__more--light:hover,
ul.product-list > li.tb-ad .tb-ad__body a.tb-ad__more.tb-ad__more--light:hover { background: #e8f4fd; color: #0b8de6; }
@media (max-width: 767px) {
    ul.product-list > li.tb-ad .tb-ad__body a.tb-ad__more,
    ul.product-list.tb-grid > li.tb-ad .tb-ad__body a.tb-ad__more {
        align-self: stretch;
        width: 100%;
        min-width: 0;
        min-height: 44px;
        padding: 0 10px;
        font-size: 1em;
    }
}
/* картинка на всю карточку: плитка без внутренних отступов, картинка закрывает её целиком (высоту ряда задают товары) */
ul.product-list > li.tb-ad.tb-ad--full,
ul.product-list.tb-grid > li.tb-ad.tb-ad--full {
    display: flex;
    flex-direction: column;
    padding: 0;
    overflow: hidden;
}
.tb-ad--full .tb-adf__link {
    position: relative;
    display: block;
    flex: 1 1 auto;
    overflow: hidden;
    border-radius: inherit;
    color: inherit;
    text-decoration: none !important;
    -webkit-tap-highlight-color: transparent;
}
.tb-ad--full .tb-adf__link::before { content: ''; display: block; padding-top: 200%; } /* плитка не ниже 1:2, даже если в ряду одна реклама */
.tb-ad--full .tb-adf__link img {
    position: absolute;
    top: 0;
    left: 0;
    display: block;
    width: 100%;
    height: 100%;
    max-width: none;
    object-fit: cover;
    object-position: 50% 50%;
    background: var(--tbf-canvas);
}
.tb-ad--full.tb-ad--pos-top .tb-adf__link img { object-position: 50% 0; }
.tb-ad--full.tb-ad--pos-bottom .tb-adf__link img { object-position: 50% 100%; }
.tb-ad--full .tb-adf__title {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 1;
    padding: 32px 10px 10px;
    background: linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, .66));
    color: #fff;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.25;
    overflow-wrap: anywhere;
}
.tb-ad--full .tb-adf__link:focus-visible { outline: 3px solid rgba(17, 24, 39, .55); outline-offset: -3px; }

/* баннер на весь ряд (ads.json format: wide): целый ряд сетки — 2 плитки на телефоне, 3–5 на ПК.
   Вставляется только на границе ряда (tb-features.js), поэтому дыр в сетке не остаётся. */
ul.product-list > li.tb-ad--wide,
ul.product-list.tb-grid > li.tb-ad--wide {
    grid-column: 1 / -1;
    display: block;
    padding: 0;
    overflow: hidden;
}
.tb-adw__link { display: block; position: relative; color: inherit; text-decoration: none !important; }
.tb-adw__link picture { display: block; }
.tb-adw__link img { display: block; width: 100%; height: auto; max-width: none; background: var(--tbf-canvas); }

/* ---------- плашка cookie ---------- */
.tb-cookie {
    position: fixed;
    left: 12px;
    right: 12px;
    bottom: calc(var(--tb-bnav-h, 0px) + var(--tb-pbar-h, 0px) + 12px);
    z-index: 950;
    max-width: 760px;
    margin: 0 auto;
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 14px 16px;
    border-radius: 14px;
    background: #111827;
    color: #fff;
    box-shadow: 0 10px 30px rgba(0, 0, 0, .25);
    opacity: 0;
    transform: translateY(16px);
    transition: opacity .25s, transform .25s;
    box-sizing: border-box;
}
.tb-cookie.is-shown { opacity: 1; transform: none; }
.tb-cookie__text { margin: 0; flex: 1 1 auto; font-size: 13.5px; line-height: 1.45; color: rgba(255, 255, 255, .88); }
.tb-cookie__text a { color: #7dd3fc; text-decoration: underline; }
.tb-cookie .tb-btn.tb-cookie__btn { flex: none; min-height: 40px; padding: 8px 22px; background: var(--tbf-accent); border-color: var(--tbf-accent); color: #06202c; }
.tb-cookie .tb-btn.tb-cookie__btn:hover { background: #4fc3f7; border-color: #4fc3f7; color: #06202c; }
/* телефон: компактная плашка (≤ 72 px) — текст в 1–2 строки и маленькая кнопка справа */
@media (max-width: 767px) {
    .tb-cookie { left: 8px; right: 8px; bottom: calc(var(--tb-bnav-h, 0px) + var(--tb-pbar-h, 0px) + 8px); gap: 10px; padding: 8px 8px 8px 14px; border-radius: 12px; }
    .tb-cookie__text { font-size: 12.5px; line-height: 1.35; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden; }
    .tb-cookie .tb-btn.tb-cookie__btn { min-height: 44px; padding: 6px 14px; font-size: 13.5px; border-radius: 10px; } /* 44 px — тап-цель (раунд 6c) */
}

/* ---------- окно заявки (телефон — панель снизу) ---------- */
.tb-modal {
    position: fixed;
    top: 0; right: 0; bottom: 0; left: 0;
    z-index: 10000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 16px;
    box-sizing: border-box;
}
.tb-modal__backdrop {
    position: absolute;
    top: 0; right: 0; bottom: 0; left: 0;
    background: rgba(17, 24, 39, .55);
    opacity: 0;
    transition: opacity .25s;
}
.tb-modal__box {
    position: relative;
    width: 100%;
    max-width: 460px;
    max-height: calc(100vh - 32px);
    max-height: calc(100dvh - 32px);
    overflow: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    padding: 24px 24px 20px;
    border-radius: 18px;
    background: #fff;
    color: var(--tbf-ink);
    box-shadow: 0 24px 60px rgba(0, 0, 0, .3);
    box-sizing: border-box;
    opacity: 0;
    transform: translateY(16px) scale(.98);
    transition: transform .25s ease, opacity .25s ease;
    outline: none;
}
.tb-modal.is-open .tb-modal__backdrop { opacity: 1; }
.tb-modal.is-open .tb-modal__box { opacity: 1; transform: none; }
.tb-modal__grip { display: none; }
.tb-modal .tb-modal__close {
    /* виден прежний кружок 36 px, нажимается 44 × 44 (прозрачная рамка 4 px, раунд 6c) */
    position: absolute;
    top: 8px;
    right: 8px;
    box-sizing: border-box;
    width: 44px;
    height: 44px;
    min-height: 0;
    padding: 0;
    border: 4px solid transparent;
    border-radius: 50%;
    background: #f3f4f6;
    background-clip: padding-box;
    color: #374151;
    font-size: 24px;
    line-height: 36px;
    text-align: center;
    cursor: pointer;
    z-index: 2;
}
.tb-modal .tb-modal__close:hover { background-color: #e5e7eb; color: #111827; }

@media (max-width: 640px) {
    .tb-modal { align-items: flex-end; padding: 0; }
    .tb-modal__box {
        max-width: none;
        max-height: 92vh;
        max-height: 92dvh;
        border-radius: 18px 18px 0 0;
        padding: 0 16px calc(16px + env(safe-area-inset-bottom, 0px));
        opacity: 1;
        transform: translateY(100%);
        transition: transform .28s cubic-bezier(.2, .8, .2, 1);
    }
    .tb-modal.is-open .tb-modal__box { transform: translateY(0); }
    .tb-modal__grip { display: flex; justify-content: center; padding: 10px 0 12px; position: sticky; top: 0; background: #fff; z-index: 1; touch-action: none; }
    .tb-modal__grip span { display: block; width: 42px; height: 5px; border-radius: 3px; background: #d1d5db; }
    .tb-modal .tb-modal__close { top: 6px; right: 6px; }
}

/* ---------- поля формы ---------- */
.tb-form__head { margin: 0 44px 14px 0; }
.tb-form-wrap .tb-form__title { margin: 0 0 6px; font-size: 21px; font-weight: 800; line-height: 1.25; color: var(--tbf-ink); }
.tb-form__lead { margin: 0; color: var(--tbf-muted); font-size: 14px; line-height: 1.45; }
.tb-form { position: relative; margin: 0; }
.tb-form__product { margin: 0 0 14px; padding: 12px 14px; border-radius: 12px; background: var(--tbf-canvas); }
.tb-form__pname { font-weight: 700; font-size: 15px; line-height: 1.35; }
.tb-form__pmeta { display: flex; flex-wrap: wrap; gap: 4px 14px; margin-top: 4px; font-size: 14px; color: var(--tbf-muted); }
.tb-form__pmeta b { color: var(--tbf-ink); font-size: 16px; }
.tb-f { margin: 0 0 12px; }
.tb-f__label { display: block; margin: 0 0 5px; font-size: 13px; font-weight: 600; color: #374151; }
.tb-f__opt { font-weight: 400; color: var(--tbf-muted); }
.tb-form .tb-f input[type="text"],
.tb-form .tb-f input[type="tel"],
.tb-form .tb-f select,
.tb-form .tb-f textarea {
    display: block;
    width: 100%;
    height: 46px;
    margin: 0;
    padding: 0 14px;
    border: 1.5px solid #d1d5db;
    border-radius: 10px;
    background: #fff;
    color: var(--tbf-ink);
    font: inherit;
    font-size: 16px; /* меньше 16px — iPhone увеличивает страницу при вводе */
    line-height: 1.3;
    box-sizing: border-box;
    box-shadow: none;
    transition: border-color .15s, box-shadow .15s;
}
.tb-form .tb-f textarea { height: auto; min-height: 66px; padding: 10px 14px; resize: vertical; }
.tb-form .tb-f select { padding-right: 36px; -webkit-appearance: none; appearance: none;
    background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%236b7280' stroke-width='2'/%3E%3C/svg%3E") no-repeat right 14px center; }
.tb-form .tb-f input:focus,
.tb-form .tb-f select:focus,
.tb-form .tb-f textarea:focus { outline: none; border-color: var(--tbf-accent); box-shadow: 0 0 0 3px rgba(41, 182, 246, .22); }
.tb-form .tb-f.is-bad input,
.tb-form .tb-f.is-bad select,
.tb-form .tb-f.is-bad textarea { border-color: var(--tbf-sale); }
.tb-f__err { margin-top: 4px; color: var(--tbf-sale); font-size: 12.5px; line-height: 1.35; }
.tb-f__err:empty { display: none; }
.tb-f__hint { margin-top: 4px; color: var(--tbf-muted); font-size: 12.5px; }
.tb-pick__one { padding: 10px 12px; border-radius: 10px; background: var(--tbf-canvas); font-size: 14px; line-height: 1.4; }
.tb-pick__hours, .tb-pick__opt small { display: block; color: var(--tbf-muted); font-size: 12.5px; }
.tb-pick__opt { display: flex; align-items: flex-start; gap: 10px; margin: 0 0 8px; padding: 10px 12px; border: 1.5px solid var(--tbf-line); border-radius: 10px; cursor: pointer; font-size: 14px; }
.tb-pick__opt input { margin: 2px 0 0; accent-color: var(--tbf-dark); }
.tb-pick__opt:has(input:checked) { border-color: var(--tbf-dark); }
.tb-pick__note { margin-top: 6px; color: var(--tbf-muted); font-size: 12.5px; }
.tb-consent { display: flex; align-items: flex-start; gap: 10px; font-size: 13px; line-height: 1.45; color: #374151; cursor: pointer; }
.tb-consent input { flex: none; width: 20px; height: 20px; margin: 1px 0 0; accent-color: var(--tbf-dark); }
/* галочка согласия: видна квадратом 22 px, а нажимается на 44 × 44 (прозрачная рамка 11 px; поля −11 px
   оставляют раскладку прежней) — раунд 6c, тап-цели на телефоне */
.tb-consent input[type="checkbox"] {
    -webkit-appearance: none; appearance: none; box-sizing: border-box;
    width: 44px; height: 44px; margin: -10px -11px -11px;
    border: 11px solid transparent; border-radius: 16px;
    background: #fff no-repeat center / 16px 16px; background-clip: padding-box; background-origin: padding-box;
    box-shadow: inset 0 0 0 2px #9ca3af; cursor: pointer;
}
.tb-consent input[type="checkbox"]:checked {
    background-color: var(--tbf-dark); box-shadow: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 12.5l4.2 4.2L19 7' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}
.tb-consent input[type="checkbox"]:focus-visible { outline: 2px solid var(--tbf-accent); outline-offset: -9px; }
.tb-f--consent.is-bad .tb-consent input[type="checkbox"] { box-shadow: inset 0 0 0 2px var(--tbf-sale); }
.tb-consent a { color: var(--tbf-accent-strong); text-decoration: underline; }
.tb-f--consent.is-bad .tb-consent { color: var(--tbf-sale); }
.tb-hp { position: absolute !important; left: -10000px !important; top: auto !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
.tb-form__status { margin: 4px 0 12px; padding: 10px 12px; border-radius: 10px; font-size: 13.5px; line-height: 1.45; }
.tb-form__status.is-error { background: #fef2f2; border: 1px solid #fecaca; color: #991b1b; }
.tb-form__status.is-error b { display: block; margin-bottom: 2px; }
.tb-form__status.is-error a { color: #991b1b; font-weight: 700; text-decoration: underline; white-space: nowrap; }
.tb-form .tb-form__submit { margin-top: 4px; min-height: 50px; font-size: 16px; }
.tb-form__alt { margin: 12px 0 0; text-align: center; font-size: 13px; color: var(--tbf-muted); }
.tb-form__alt a { color: var(--tbf-ink); font-weight: 700; text-decoration: none; white-space: nowrap; }
.tb-done { padding: 14px 0 4px; text-align: center; }
.tb-done__icon { display: inline-flex; align-items: center; justify-content: center; width: 64px; height: 64px; margin: 0 0 10px; border-radius: 50%; background: #d1fae5; color: var(--tbf-ok); }
.tb-done p { margin: 0 0 10px; color: #374151; font-size: 15px; line-height: 1.45; }
.tb-done__id { color: var(--tbf-muted) !important; font-size: 13px !important; }
.tb-done__alt { font-size: 13px !important; color: var(--tbf-muted) !important; }
.tb-done__alt a { color: var(--tbf-ink); font-weight: 700; text-decoration: none; }

/* ---------- «Комиссионка» (#tb-commission-intro) ---------- */
.tb-ci { margin: 0 0 20px; }
.tb-ci__in { padding: 22px; border-radius: 18px; background: linear-gradient(135deg, #0f172a 0%, #12324f 100%); color: #fff; }
.tb-ci__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.tb-ci .tb-ci__title { margin: 0 0 6px; color: #fff; font-size: 22px; font-weight: 800; line-height: 1.25; }
.tb-ci__lead { margin: 0; max-width: 620px; color: rgba(255, 255, 255, .86); font-size: 15px; line-height: 1.5; }
.tb-ci__lead b { color: #7dd3fc; }
.tb-ci__price { flex: none; padding: 10px 16px; border: 1px solid rgba(255, 255, 255, .2); border-radius: 14px; background: rgba(255, 255, 255, .08); text-align: center; }
.tb-ci__price b { display: block; color: #7dd3fc; font-size: 26px; line-height: 1.1; }
.tb-ci__price span { font-size: 12px; color: rgba(255, 255, 255, .78); }
.tb-ci__steps { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; margin: 18px 0; padding: 0; list-style: none; }
.tb-ci__step { display: flex; gap: 10px; margin: 0; padding: 12px; border-radius: 12px; background: rgba(255, 255, 255, .07); }
.tb-ci__num { display: flex; flex: none; align-items: center; justify-content: center; width: 26px; height: 26px; border-radius: 50%; background: var(--tbf-accent); color: #06202c; font-size: 13px; font-weight: 800; }
.tb-ci__step .tb-ci__num { display: flex; color: #06202c; font-size: 13px; line-height: 1; } /* mobile-ux: цифра стояла в углу круга — её перебивало правило .tb-ci__step span */
.tb-ci__step b { display: block; margin-bottom: 3px; font-size: 14px; line-height: 1.3; }
.tb-ci__step span { display: block; color: rgba(255, 255, 255, .78); font-size: 12.5px; line-height: 1.4; }
.tb-ci__cta { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; }
.tb-ci .tb-btn.tb-btn--primary { background: var(--tbf-accent); border-color: var(--tbf-accent); color: #06202c; }
.tb-ci .tb-btn.tb-btn--primary:hover { background: #4fc3f7; border-color: #4fc3f7; color: #06202c; }
.tb-ci .tb-btn.tb-btn--ghost { background: transparent; border-color: rgba(255, 255, 255, .45); color: #fff; }
.tb-ci .tb-btn.tb-btn--ghost:hover { border-color: #fff; color: #fff; }
.tb-ci__phone { color: rgba(255, 255, 255, .85) !important; font-size: 14px; text-decoration: none !important; }
.tb-ci__phone span { text-decoration: underline; white-space: nowrap; }
@media (max-width: 1000px) { .tb-ci__steps { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 640px) {
    .tb-ci__in { padding: 18px 16px; border-radius: 16px; }
    .tb-ci__head { flex-direction: column; gap: 12px; }
    .tb-ci .tb-ci__title { font-size: 19px; }
    .tb-ci__price { display: flex; align-items: baseline; gap: 8px; padding: 8px 12px; }
    .tb-ci__price b { display: inline; font-size: 20px; }
    .tb-ci__steps { grid-template-columns: 1fr; gap: 8px; margin: 14px 0; }
    .tb-ci__step { padding: 10px 12px; }
    .tb-ci__cta .tb-btn { flex: 1 1 100%; }
    .tb-ci__phone { flex: 1 1 100%; text-align: center; }
}

/* ---------- страница товара ---------- */
.tb-pp { margin: 0 0 24px; color: var(--tbf-ink); }
.tb-pp__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; align-items: start; }
@media (min-width: 768px) {
    .tb-pp__grid { grid-template-columns: minmax(0, 1.1fr) minmax(300px, 1fr); gap: 24px; }
}
@media (min-width: 1100px) {
    .tb-pp__grid { grid-template-columns: minmax(0, 1.25fr) minmax(360px, 1fr); gap: 32px; }
}
.tb-pp__media { min-width: 0; }

/* галерея */
.tb-gal { position: relative; overflow: hidden; border: 1px solid var(--tbf-line); border-radius: var(--tbf-radius); background: #fff; outline: none; }
.tb-gal:focus-visible { box-shadow: 0 0 0 3px rgba(41, 182, 246, .45); }
.tb-gal__track {
    display: flex;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-snap-type: x mandatory;
    scroll-behavior: auto;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-x: contain;
    scrollbar-width: none;
}
.tb-gal__track::-webkit-scrollbar { display: none; }
.tb-gal__slide {
    display: flex;
    flex: 0 0 100%;
    align-items: center;
    justify-content: center;
    margin: 0;
    aspect-ratio: 1 / 1;
    scroll-snap-align: center;
    scroll-snap-stop: always;
    cursor: zoom-in;
    background: #fff;
}
.tb-gal__slide img { display: block; width: 100%; height: 100%; object-fit: contain; }
@media (min-width: 768px) { .tb-gal__slide { aspect-ratio: 5 / 4; } }
.tb-gal__badges { position: absolute; top: 10px; left: 10px; z-index: 2; display: flex; flex-direction: column; align-items: flex-start; gap: 5px; pointer-events: none; }
.tb-gal__count { position: absolute; top: 10px; right: 10px; z-index: 2; padding: 3px 9px; border-radius: 999px; background: rgba(17, 24, 39, .6); color: #fff; font-size: 12px; font-weight: 600; }
.tb-gal__dots { position: absolute; left: 0; right: 0; bottom: 10px; z-index: 2; display: flex; justify-content: center; gap: 6px; }
.tb-gal .tb-gal__dot { width: 8px; height: 8px; min-height: 0; padding: 0; border: 0; border-radius: 50%; background: rgba(17, 24, 39, .25); cursor: pointer; }
.tb-gal .tb-gal__dot.is-active { background: var(--tbf-dark); width: 18px; border-radius: 4px; }
.tb-gal__nav,
.tb-viewer .tb-gal__nav {
    position: absolute;
    top: 50%;
    z-index: 3;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    min-height: 0;
    margin-top: -22px;
    padding: 0 0 4px;
    border: 0;
    border-radius: 50%;
    background: rgba(255, 255, 255, .94);
    box-shadow: 0 2px 10px rgba(0, 0, 0, .18);
    color: var(--tbf-ink);
    font-size: 30px;
    line-height: 1;
    cursor: pointer;
    transition: opacity .15s;
}
.tb-gal__nav--prev { left: 10px; }
.tb-gal__nav--next { right: 10px; }
/* branch-gallery-fix-r2 (22.10.2026): рамка фокуса у стрелок «‹ ›», когда листают с клавиатуры (Tab). Штатный default.css
   гасит обводку у всех кнопок (button { outline: 0 } в @layer components) — здесь возвращаем её, как у .tb-btn.
   Мышью и пальцем рамки нет (:focus-visible). Действует у фото отделений, в галерее товара и в просмотре фото. */
.tb-gal__nav:focus-visible { outline: 3px solid rgba(41, 182, 246, .55); outline-offset: 2px; }
.is-first > .tb-gal__nav--prev,
.is-last > .tb-gal__nav--next { opacity: 0; pointer-events: none; }
@media (hover: none) { .tb-gal > .tb-gal__nav { display: none; } }
@media (max-width: 767px) { .tb-gal__dots { display: flex; } }
@media (min-width: 768px) { .tb-gal__dots { display: none; } }
.tb-gal__thumbs { display: none; }
@media (min-width: 768px) {
    .tb-gal__thumbs { display: flex; gap: 8px; margin-top: 10px; overflow-x: auto; scrollbar-width: thin; padding-bottom: 2px; }
    .tb-gal__thumbs .tb-gal__thumb { flex: none; width: 68px; height: 68px; min-height: 0; padding: 3px; border: 2px solid var(--tbf-line); border-radius: 10px; background: #fff; cursor: pointer; }
    .tb-gal__thumbs .tb-gal__thumb.is-active { border-color: var(--tbf-dark); }
    .tb-gal__thumb img { display: block; width: 100%; height: 100%; object-fit: contain; }
}
.tb-gal--empty { display: flex; align-items: center; justify-content: center; aspect-ratio: 4 / 3; background: var(--tbf-canvas); }
@media (min-width: 768px) { .tb-gal--empty { aspect-ratio: 5 / 4; } }
.tb-gal__empty { padding: 20px; text-align: center; color: #9ca3af; }
.tb-gal__empty p { margin: 8px 0 6px; color: var(--tbf-muted); font-size: 15px; }
.tb-gal__empty a { color: var(--tbf-accent-strong); font-size: 14px; font-weight: 600; }

/* правая колонка */
.tb-pp__side { min-width: 0; }
.tb-pp .tb-pp__title { margin: 0 0 8px; font-size: 22px; font-weight: 800; line-height: 1.25; color: var(--tbf-ink); overflow-wrap: anywhere; }
@media (min-width: 1100px) { .tb-pp .tb-pp__title { font-size: 26px; } }
.tb-pp__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 16px; margin: 0 0 14px; color: var(--tbf-muted); font-size: 13.5px; }
.tb-pp__meta b { color: var(--tbf-ink); font-weight: 600; }
.tb-pp__avail { display: inline-flex; align-items: center; gap: 6px; font-weight: 600; }
.tb-pp__avail::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: currentColor; }
.tb-pp__avail.is-in { color: var(--tbf-ok); }
.tb-pp__avail.is-out { color: var(--tbf-sale); }

.tb-pp__buy { padding: 18px; border: 1px solid var(--tbf-line); border-radius: var(--tbf-radius); background: #fff; box-shadow: var(--tbf-shadow); }
.tb-pp__prices { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; }
.tb-pp__price { font-size: 30px; font-weight: 800; line-height: 1.1; color: var(--tbf-ink); white-space: nowrap; }
.tb-pp__old { color: var(--tbf-muted); font-size: 17px; white-space: nowrap; }
.tb-pp__disc { padding: 3px 8px; border-radius: 8px; background: var(--tbf-sale); color: #fff; font-size: 14px; font-weight: 700; line-height: 1.2; }
.tb-pp__save { margin-top: 4px; color: var(--tbf-sale); font-size: 14px; font-weight: 600; }
.tb-pp__actions { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 10px; margin-top: 16px; }
.tb-pp__actions > .tb-btn { min-width: 0; font-size: 14.5px; padding-left: 10px; padding-right: 10px; }
.tb-pp__sold { grid-column: 1 / -1; padding: 12px 14px; border-radius: 10px; background: #fef2f2; color: #991b1b; font-size: 14px; line-height: 1.45; }

/* штатная форма корзины внутри карточки: оставляем только кнопку */
.tb-pp__cart { min-width: 0; margin: 0; padding: 0; border: 0; background: none; box-shadow: none; }
.tb-pp__cart #cart-form { margin: 0; }
.tb-pp__cart #cart-form > .wa-mb-16,
.tb-pp__cart #cart-form > .add2cart.js-top,
.tb-pp__cart #cart-form > .s-product-desc,
.tb-pp__cart #cart-form > [itemprop="offers"],
.tb-pp__cart #cart-form > .stocks,
.tb-pp__cart .qty,
.tb-pp__cart .quantity-wrapper { display: none !important; }
.tb-pp__cart .purchase,
.tb-pp__cart .add2cart { display: block; margin: 0; padding: 0; }
.tb-pp__cart .add2cart button[type="submit"],
.tb-pp__cart .add2cart .gotocart-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 46px;
    margin: 0;
    padding: 8px 10px;
    border: 1.5px solid var(--tbf-dark);
    border-radius: 10px;
    background: var(--tbf-dark);
    color: #fff;
    font: inherit;
    font-size: 14.5px;
    font-weight: 700;
    line-height: 1.15;
    text-decoration: none;
    box-sizing: border-box;
    cursor: pointer;
}
.tb-pp__cart .add2cart button[type="submit"]:hover { background: #000; border-color: #000; }
.tb-pp__cart .add2cart .gotocart-btn { flex-direction: column; background: #fff; color: var(--tbf-dark); }
.tb-pp__cart .add2cart .gotocart-btn.wa-hide,
.tb-pp__cart .add2cart .gotocart-btn[style*="none"] { display: none; }
.tb-pp__cart .add2cart .gotocart-btn .smaller { font-size: 12px; font-weight: 500; }

.tb-pp__terms { margin: 16px 0 0; padding: 14px 0 0; border-top: 1px solid var(--tbf-line); list-style: none; font-size: 13.5px; line-height: 1.45; color: #374151; }
.tb-pp__terms li { position: relative; margin: 0 0 6px; padding-left: 20px; }
.tb-pp__terms li::before { content: ""; position: absolute; left: 2px; top: .45em; width: 9px; height: 5px; border-left: 2px solid var(--tbf-ok); border-bottom: 2px solid var(--tbf-ok); transform: rotate(-45deg); }
.tb-pp__terms li[hidden] { display: none; }

.tb-pp .tb-pp__h { margin: 0 0 10px; font-size: 18px; font-weight: 800; line-height: 1.3; color: var(--tbf-ink); }
.tb-pp__specs { margin-top: 16px; padding: 16px 18px 6px; border: 1px solid var(--tbf-line); border-radius: var(--tbf-radius); background: #fff; }
.tb-pp__specs dl { margin: 0; }
.tb-pp__spec { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; padding: 9px 0; border-bottom: 1px dashed var(--tbf-line); font-size: 14.5px; }
.tb-pp__spec:last-child { border-bottom: 0; }
.tb-pp__spec dt { flex: none; margin: 0; color: var(--tbf-muted); font-weight: 400; }
.tb-pp__spec dd { margin: 0; font-weight: 600; text-align: right; overflow-wrap: anywhere; }

.tb-pp__desc { margin-top: 24px; padding: 18px; border: 1px solid var(--tbf-line); border-radius: var(--tbf-radius); background: #fff; }
.tb-pp__desc-body { font-size: 15px; line-height: 1.6; overflow-wrap: anywhere; }
.tb-pp__desc-body img { max-width: 100%; height: auto; }

.tb-pp__similar { margin-top: 32px; }
.tb-pp__similar-head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 6px 16px; margin-bottom: 12px; }
.tb-pp__similar-head .tb-pp__h { margin: 0; font-size: 22px; }
.tb-pp__similar-head a { color: var(--tbf-accent-strong); font-size: 14px; font-weight: 600; text-decoration: none; }

/* хлебные крошки на телефоне — в одну строку с прокруткой */
@media (max-width: 767px) {
    #page-content > .breadcrumbs:has(~ .tb-pp) { white-space: nowrap; overflow-x: auto; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
    #page-content > .breadcrumbs:has(~ .tb-pp)::-webkit-scrollbar { display: none; }
}

/* липкая панель действий — только телефон, над нижней навигацией сайта */
.tb-pbar { display: none; }
.tb-pbar-spacer { display: block; height: 0; }
@media (max-width: 767px) {
    .tb-pbar {
        position: fixed;
        left: 0;
        right: 0;
        bottom: var(--tb-bnav-h, 0px);
        z-index: 900;
        display: flex;
        align-items: center;
        gap: 8px;
        padding: 8px 12px max(8px, env(safe-area-inset-bottom, 0px));
        border-top: 1px solid var(--tbf-line);
        background: rgba(255, 255, 255, .97);
        box-shadow: 0 -6px 18px rgba(16, 24, 40, .08);
        box-sizing: border-box;

    }
    html.tb-bnav-on .tb-pbar { padding-bottom: 8px; }
    /* пока свои кнопки покупки на экране, панель спрятана за нижней навигацией (tb-features.js PP.pbar, раунд 6c) */
    .tb-pbar { transition: transform .2s ease, visibility 0s linear 0s; }
    .tb-pbar.is-off { transform: translateY(calc(100% + 8px)); visibility: hidden; box-shadow: none; transition: transform .2s ease, visibility 0s linear .2s; }
    .tb-pbar__price { display: flex; flex: 1 1 auto; flex-direction: column; min-width: 0; line-height: 1.15; }
    .tb-pbar__price b { font-size: 17px; font-weight: 800; white-space: nowrap; }
    .tb-pbar__price s { color: var(--tbf-muted); font-size: 12px; white-space: nowrap; }
    .tb-pbar .tb-btn { flex: 0 1 auto; min-height: 44px; padding: 8px 12px; font-size: 14px; white-space: nowrap; }
    .tb-pbar .tb-pbar__go { display: none; }
    .tb-pp.is-in-cart .tb-pbar__cart { display: none; }
    .tb-pp.is-in-cart .tb-pbar__go { display: inline-flex; }
}
@media (max-width: 359px) {
    .tb-pbar__price { display: none; }
    .tb-pbar .tb-btn { flex: 1 1 0; padding: 8px; font-size: 13px; }
}

/* просмотр фото на весь экран */
.tb-viewer { position: fixed; top: 0; right: 0; bottom: 0; left: 0; z-index: 10001; background: rgba(0, 0, 0, .94); outline: none; }
.tb-viewer__track { display: flex; height: 100%; overflow-x: auto; overflow-y: hidden; scroll-snap-type: x mandatory; scrollbar-width: none; overscroll-behavior: contain; }
.tb-viewer__track::-webkit-scrollbar { display: none; }
.tb-viewer__slide { display: flex; flex: 0 0 100%; align-items: center; justify-content: center; height: 100%; scroll-snap-align: center; }
.tb-viewer__slide img { display: block; max-width: 100%; max-height: 100%; object-fit: contain; }
.tb-viewer__count { position: absolute; top: 18px; left: 16px; color: #fff; font-size: 14px; font-weight: 600; }
.tb-viewer .tb-viewer__close { position: absolute; top: 10px; right: 10px; z-index: 3; width: 44px; height: 44px; min-height: 0; padding: 0; border: 0; border-radius: 50%; background: rgba(255, 255, 255, .16); color: #fff; font-size: 28px; line-height: 44px; cursor: pointer; }
@media (hover: none) { .tb-viewer .tb-gal__nav { display: none; } }

/* mobile-ux: на телефоне блок «Комиссионка» короче — шаги в две колонки без пояснений, без дубля «500 ₽» */
@media (max-width: 767px) {
    .tb-ci__in { padding: 16px 14px; }
    .tb-ci .tb-ci__title { font-size: 18px; }
    .tb-ci__lead { font-size: 14px; line-height: 1.45; }
    .tb-ci__price { display: none; }
    .tb-ci__steps { grid-template-columns: 1fr 1fr; gap: 6px; margin: 12px 0; }
    .tb-ci__step { align-items: center; gap: 8px; padding: 8px 10px; }
    .tb-ci__step b { margin: 0; font-size: 13px; }
    .tb-ci__step span:not(.tb-ci__num) { display: none; }
    .tb-ci__step .tb-ci__num { width: 22px; height: 22px; font-size: 12px; }
    .tb-ci__step:last-child { grid-column: 1 / -1; }
}

/* ---------- крупные карточки «2 места» (панель → Сайт → Закреплённые → «Крупная карточка») ----------
   Раскладку делает tb-features.js (раздел 6): li.tb-fw ставится только туда, где две клетки свободны в одном ряду.
   На телефоне (2 колонки) — целый ряд: фото сверху во всю ширину, под ним подпись, цена, название, состояние и кнопка;
   на ПК — 2 клетки: крупное фото слева, справа подпись, цена, название, состояние, описание и кнопки.
   Без JS этих карточек нет — обычная сетка. */
ul.product-list.tb-grid.tb-fw-on {
    /* страховка: если дыра всё же осталась (крупная в конце ещё не догруженной ленты), её займёт следующая плитка */
    grid-auto-flow: row dense;
}
ul.product-list.tb-grid > li.tb-fw {
    grid-column: span 2;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    column-gap: 14px;
    align-items: stretch;
    border-color: var(--tbf-accent);
    box-shadow: inset 0 0 0 1px var(--tbf-accent);   /* рамка 2 px без сдвига содержимого */
    background: linear-gradient(135deg, #f0f9ff 0%, var(--tbf-card) 55%);
}
/* фото прижато к верху, как у обычной карточки: плашки (они стоят в углу карточки) лежат на фото, а не над ним
   (при align-self: center фото уезжало вниз и «Как новый» висела над ним — qa-fs-visual №1) */
ul.product-list.tb-grid > li.tb-fw > .tb-card__media { grid-column: 1; align-self: start; }
ul.product-list.tb-grid > li.tb-fw > .tb-card__body { grid-column: 2; padding-top: 0; min-width: 0; }
/* плашки состояния — только над фото, не над текстом */
ul.product-list.tb-grid > li.tb-fw .badge-wrapper { right: 50%; }
ul.product-list.tb-grid > li.tb-fw .tb-card__price .price { font-size: 1.45em; }
ul.product-list.tb-grid > li.tb-fw a.tb-card__title {
    -webkit-line-clamp: 3;
    line-clamp: 3;
    min-height: 0;
    margin-bottom: 6px;
    font-size: 1em;
    font-weight: 600;
}
.tb-fw__label {
    align-self: flex-start;
    display: inline-flex;
    align-items: center;
    max-width: 100%;
    margin: 0 0 6px;
    padding: 3px 9px;
    border-radius: 999px;
    background: #1565c0;
    color: #fff;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.2;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.tb-fw__more { display: grid; gap: 6px; margin: 0 0 10px; min-width: 0; }
.tb-fw__facts { display: grid; gap: 2px; margin: 0; padding: 0; list-style: none; color: var(--tbf-ink); font-size: 13px; line-height: 1.35; }
/* строка факта — до двух строк: в одну «Комплектация: Нет только документов и упаковки» обрезалась
   до «Комплектация: Нет тол…» и теряла смысл (qa-fs-visual №2); третья строка всё же прячется — карточка не растёт */
.tb-fw__facts li {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    overflow: hidden;
    overflow-wrap: break-word;
}
.tb-fw__facts li::before { content: "•"; margin-right: 6px; color: var(--tbf-accent); }
.tb-fw__desc {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    line-clamp: 3;
    overflow: hidden;
    margin: 0;
    color: var(--tbf-muted);
    font-size: 12.5px;
    line-height: 1.4;
}
@media (max-width: 767px) {
    /* телефон: крупная карточка — во всю ширину ряда, ФОТО СВЕРХУ на всю ширину (4:3), текст под ним.
       Зачем: раньше фото стояло слева в половине ряда и выходило МЕНЬШЕ, чем у обычной карточки (134 px против
       141 на 360), карточка — ниже ряда обычных, плашки висели над фото, «Средняя цена …» переносилась
       (qa-fs-visual №1). Так фото ~300×225, карточка выше ряда обычных — выглядит «как топовый товар».
       Описание прячем — компактно, без «простыни». */
    ul.product-list.tb-grid > li.tb-fw { grid-template-columns: minmax(0, 1fr); row-gap: 8px; }
    ul.product-list.tb-grid > li.tb-fw > .tb-card__media,
    ul.product-list.tb-grid > li.tb-fw > .tb-card__body { grid-column: 1; }
    ul.product-list.tb-grid > li.tb-fw .tb-card__media .image,
    ul.product-list.tb-grid > li.tb-fw .product_image_slider { aspect-ratio: 4 / 3; }
    /* плашки — по всей ширине фото (как у обычной карточки): длинная «Средняя цена 23 100 ₽» в одну строку */
    ul.product-list.tb-grid > li.tb-fw .badge-wrapper { right: 0; }
    ul.product-list.tb-grid > li.tb-fw > .tb-card__body { padding: 0 4px; }
    ul.product-list.tb-grid > li.tb-fw .tb-card__price .price { font-size: 21px; }
    ul.product-list.tb-grid > li.tb-fw a.tb-card__title { font-size: 15px; -webkit-line-clamp: 2; line-clamp: 2; }
    .tb-fw__desc { display: none; }
    .tb-fw__facts { font-size: 13px; }
    .tb-fw__label { font-size: 12px; padding: 2px 9px; margin-bottom: 6px; }
    .tb-fw__more { margin-bottom: 10px; }
}

/* r8-branches: часы отделения по пунктам (ПН–ПТ / СБ / ВС — с новой строки) и пометка о закрытии */
.tb-pick__hours, .tb-pick__opt small { white-space: pre-line; }
.tb-pick__closed, .tb-pick__opt small.tb-pick__closed { color: #c62828; font-weight: 600; }
