/*
 * Шапка списков товаров — раздел каталога, поиск и подборки выглядят одинаково (подключается на всех страницах):
 * путь по разделам сверху во всю ширину; над фильтром — «Найдено N товаров» (поиск) или опрос о фильтрах (раздел),
 * на одной высоте с ним — «Сортировать:» кнопками и вид «списком / плиткой»; фильтр и первые карточки — на одной высоте.
 * Контейнер страницы — .catalog (раздел: .cat-page, поиск и подборки: .vs-page).
 */
.catalog .vs-top .breadcrumbs,
.catalog .cat-top .breadcrumbs { margin-bottom: 0; }
.catalog .vs-head { align-items: flex-start; margin-bottom: 18px; }
.catalog .vs-head-line { display: flex; align-items: center; gap: 12px; min-height: 40px; }
/* одна строка — посередине строки сортировки (40 px); длинный текст (RO) переносится плотно */
.catalog .vs-found { margin: 0; padding: 7px 0; font-size: 20px; line-height: 26px; font-weight: 700; color: #303030; }
.catalog .vs-head-line .vs-found { margin-right: 18px; }
.catalog .vs-head .vs-sortbar { margin: 0; }
.catalog .vs-view { margin-left: auto; flex: 0 0 auto; }
/* фильтр и первые карточки — на одной высоте (у карточки фильтра в main.css отступ сверху 24 px) */
.catalog .vs-aside .filters,
.catalog .cat-aside .filters { margin-top: 0; }

/* сортировка на компьютере — кнопками: серые, выбранная — жёлтая */
.vs-sortbar { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 4px 0 22px; }
.vs-sortbar-title { font-weight: 700; font-size: 14px; color: #303030; margin-right: 6px; }
.vs-pill { display: inline-flex; align-items: center; gap: 6px; height: 34px; padding: 0 16px; border-radius: 4px;
    background: #F0F2F4; color: #303030; font-size: 14px; line-height: 1; white-space: nowrap; text-decoration: none;
    cursor: pointer; transition: background-color .15s; }
.vs-pill.is-active { background: #FEDC29; }
/* наведение — только там, где есть мышь (на телефоне и планшете после нажатия оно «застревает» на кнопке) */
@media (hover: hover) {
    .vs-pill:hover { background: #E4E7EA; color: #303030; text-decoration: none; }
    .vs-pill.is-active:hover { background: #FFD600; }
}
.vs-pill svg { width: 16px; height: 16px; fill: #303030; flex: 0 0 16px; }
.vs-pill:focus { outline: none; }
.vs-pill:focus-visible { box-shadow: inset 0 0 0 2px #303030; }

/* раздел каталога: название и соседние разделы (быстрый переход) — карточки с фото раздела */
.cat-page .cat-title { margin: 2px 0 14px; font-size: 28px; line-height: 34px; font-weight: 700; color: #303030; }
.cat-sibs-wrap { display: flex; align-items: flex-start; gap: 10px; margin: 0 0 22px; }
.cat-sibs { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); flex: 1 1 auto; min-width: 0; gap: 10px; }
/* компьютер: один ряд, остальные — по «Ещё N» */
@media (min-width: 1001px) {
    .cat-sibs { max-height: 62px; overflow: hidden; }
    .cat-sibs-wrap.is-open .cat-sibs { max-height: none; }
}
.cat-sibs-more { flex: 0 0 auto; height: 62px; padding: 0 18px; border: 0; border-radius: 10px; background: #F0F2F4; color: #303030;
    font-size: 14px; font-weight: 700; line-height: 1; white-space: nowrap; cursor: pointer; transition: background-color .15s; }
@media (hover: hover) {
    .cat-sibs-more:hover { background: #E4E7EA; }
}
.cat-sibs-more:focus { outline: none; }
.cat-sibs-more:focus-visible { box-shadow: 0 0 0 2px #303030; }
.cat-sib { display: flex; align-items: center; gap: 10px; min-width: 0; height: 62px; padding: 6px 12px 6px 6px;
    border: 1px solid #EAEAEA; border-radius: 10px; background: #fff; color: #303030; font-size: 14px; line-height: 18px;
    text-decoration: none; transition: border-color .15s, background-color .15s; }
/* фото — в светлой плитке: белый фон снимка сливается с плиткой (multiply), товар будто вырезан */
.cat-sib-img { flex: 0 0 48px; width: 48px; height: 48px; border-radius: 8px; background: #F5F6F8; overflow: hidden; isolation: isolate; }
.cat-sib-img img { display: block; width: 100%; height: 100%; padding: 4px; object-fit: contain; mix-blend-mode: multiply; }
.cat-sib-name { min-width: 0; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden;
    overflow-wrap: anywhere; -webkit-hyphens: auto; hyphens: auto; }
@media (hover: hover) {
    .cat-sib:hover { border-color: #FEDC29; color: #303030; text-decoration: none; }
}
.cat-sib.is-current { border-color: #FEDC29; background: #FFF7D1; font-weight: 700; }
.cat-sib.is-current .cat-sib-img { background: #fff; }
.cat-sib:focus { outline: none; }
/* рамка фокуса — внутри карточки (снаружи её обрезал бы ряд с overflow: hidden) */
.cat-sib:focus-visible { outline: 2px solid #303030; outline-offset: -2px; }

/* маленькая карточка-кнопка над фильтром: «Не нашли, что искали?» (поиск), «Сделаем фильтры удобнее» (раздел каталога) */
.vs-ask { display: flex; align-items: center; gap: 10px; margin-top: 10px; padding: 8px 12px; background: #fff;
    border: 1px solid #EAEAEA; border-radius: 8px; color: #303030; text-decoration: none;
    transition: border-color .15s, box-shadow .15s; }
/* подсветка — при наведении мышью и при переходе клавишей Tab (не «:focus»: после закрытия окна кнопка остаётся
   в фокусе и рамка «застревала»; на телефоне так же «застревало» наведение) */
.vs-ask:hover, .vs-ask:focus { color: #303030; text-decoration: none; outline: none; }
.vs-ask:focus-visible { border-color: #FEDC29; box-shadow: 0 2px 10px rgba(68, 92, 130, .08); }
@media (hover: hover) {
    .vs-ask:hover { border-color: #FEDC29; box-shadow: 0 2px 10px rgba(68, 92, 130, .08); }
}
.vs-ask-ico { flex: 0 0 30px; width: 30px; height: 30px; border-radius: 50%; background: #FEDC29;
    display: flex; align-items: center; justify-content: center; }
.vs-ask-ico svg { width: 15px; height: 15px; fill: #303030; }
.vs-ask-txt { display: flex; flex-direction: column; min-width: 0; font-size: 12px; line-height: 16px; color: #787878; }
.vs-ask-txt b { font-size: 13px; line-height: 17px; font-weight: 700; color: #303030; }

/* под товарами — плашка-приглашение (поиск: «Не нашли?», раздел каталога на телефоне: опрос о фильтрах):
   мягкий жёлтый фон, крупный значок, пояснение и кнопка (широко — в строку, на телефоне — по центру друг под другом) */
.catalog .vs-ask-bottom { gap: 14px; margin: 18px 0 26px; padding: 16px 18px; border: 1px solid #FBEFB8; border-radius: 12px;
    background: linear-gradient(135deg, #FFF6C7 0%, #FFFBE8 55%, #FFFDF6 100%); }
.catalog .vs-ask-bottom:focus-visible { border-color: #FEDC29; box-shadow: 0 4px 14px rgba(68, 92, 130, .08); }
@media (hover: hover) {
    .catalog .vs-ask-bottom:hover { border-color: #FEDC29; box-shadow: 0 4px 14px rgba(68, 92, 130, .08); }
    .vs-ask-bottom:hover .vs-ask-cta { background: #FFD600; }
}
.vs-ask-bottom .vs-ask-ico { flex: 0 0 46px; width: 46px; height: 46px; box-shadow: 0 4px 12px rgba(254, 220, 41, .55); }
.vs-ask-bottom .vs-ask-ico svg { width: 21px; height: 21px; }
.vs-ask-bottom .vs-ask-txt { flex: 1 1 auto; font-size: 14px; line-height: 19px; color: #4F4F4F; }
.vs-ask-bottom .vs-ask-txt b { margin-bottom: 3px; font-size: 17px; line-height: 22px; }
.vs-ask-cta { flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; padding: 11px 22px; border-radius: 45px;
    background: #FEDC29; color: #303030; font-size: 14px; font-weight: 700; line-height: 18px; white-space: nowrap;
    box-shadow: 0 2px 6px rgba(68, 92, 130, .12); transition: background-color .15s; }
@media (max-width: 600px) {
    .catalog .vs-ask-bottom { flex-direction: column; gap: 10px; margin-top: 16px; padding: 22px 18px 20px; text-align: center; }
    .vs-ask-bottom .vs-ask-txt { align-items: center; text-wrap: balance; }
    .vs-ask-bottom .vs-ask-cta { margin-top: 6px; min-width: 200px; padding: 13px 26px; font-size: 15px; }
}

/* раздел каталога: опрос «Сделаем фильтры удобнее» — над фильтром (компьютер) и плашкой под товарами (телефон) */
.cat-page .vs-head { align-items: center; }
.catalog .vc-svy-side { margin-top: 0; }
.vc-svy-ico path { fill: none; stroke: #303030; stroke-width: 1.6; stroke-linecap: round; }
.vc-svy-ico circle { fill: #FEDC29; stroke: #303030; stroke-width: 1.6; }
@media (min-width: 1001px) {
    .catalog .vc-svy-bottom { display: none; }
}

/* окно формы (запрос «Не нашли?», опрос о фильтрах) — по образцу окон сайта (.reg-in-popup), поуже, подписи над полями */
.vs-ask-pop .vs-ask-dialog { width: 520px; max-width: calc(100% - 32px); max-height: 90vh; overflow: auto;
    padding: 28px 32px 22px; border-radius: 8px; }
.vs-ask-dialog h2 { font-size: 24px; font-weight: 800; margin: 0 28px 6px 0; }
.vs-ask-lead { margin: 0 0 16px; font-size: 14px; line-height: 20px; color: #4F4F4F; }
.vs-ask-dialog .vs-ask-label { display: block; margin: 0 0 6px; padding: 0; font-size: 14px; font-weight: 700; color: #303030; }
.vs-ask-label span { font-weight: 400; color: #9A9A9A; }
.vs-ask-dialog textarea, .vs-ask-dialog input[type=text] { font-size: 14px; }
.vs-ask-dialog textarea:focus, .vs-ask-dialog input[type=text]:focus { border-color: #FEDC29; outline: none; }
.vs-ask-dialog .is-error { border-color: #DD2C01; }
.vs-ask-err { display: block; margin: -10px 0 12px; font-size: 12px; color: #DD2C01; }
.vs-ask-query { margin: -4px 0 14px; font-size: 12px; color: #9A9A9A; overflow-wrap: anywhere; }
.vs-ask-send[disabled] { opacity: .6; cursor: default; }
.vs-ask-msg { margin: 10px 0 0; font-size: 13px; color: #303030; }
.vs-ask-msg:empty { display: none; }
.vs-ask-msg.is-error { color: #DD2C01; }
.vs-ask-hp { position: absolute; left: -9999px; top: 0; width: 1px; height: 1px; overflow: hidden; }

/* окно опроса: полоска шагов, вопрос, ответы «Да / Нет» плитками с кружком выбора, «Назад» и «Далее / Отправить» */
.vc-svy-bar { display: flex; gap: 6px; margin: 10px 0 16px; }
.vc-svy-bar i { flex: 1 1 0; height: 4px; border-radius: 2px; background: #EAEAEA; transition: background-color .2s; }
.vc-svy-bar i.is-on { background: #FEDC29; }
.vc-svy-count { margin: 0 0 4px; font-size: 12px; line-height: 16px; color: #9A9A9A; }
.vc-svy-q { margin: 0 0 14px; font-size: 17px; line-height: 23px; font-weight: 700; color: #303030; }
.vc-svy-opts { display: flex; gap: 10px; margin: 0 0 18px; }
.vc-svy-opt { position: relative; flex: 1 1 0; display: flex; align-items: center; gap: 10px; min-height: 48px; margin: 0; padding: 0 16px;
    border: 1px solid #DADDE1; border-radius: 8px; background: #fff; color: #303030; font-size: 15px; font-weight: 600; line-height: 20px;
    cursor: pointer; user-select: none; transition: border-color .15s, background-color .15s; }
@media (hover: hover) {
    .vc-svy-opt:hover { border-color: #FEDC29; }
}
.vc-svy-opt.is-checked { border-color: #FEDC29; background: #FFF7D1; }
/* сам переключатель не виден (вместо него — кружок), но работает с клавиатуры; у полей окна в main.css — ширина и рамка */
.vc-svy-pop .vc-svy-opt input[type=radio] { position: absolute; left: 0; top: 0; width: 1px; height: 1px; margin: 0; padding: 0;
    border: 0; opacity: 0; }
.vc-svy-dot { flex: 0 0 20px; width: 20px; height: 20px; border: 2px solid #C4C8CD; border-radius: 50%; background: #fff;
    transition: border-color .15s, box-shadow .15s; }
.vc-svy-opt input:checked + .vc-svy-dot { border-color: #303030; background: #303030; box-shadow: inset 0 0 0 4px #fff; }
.vc-svy-opt input:focus-visible + .vc-svy-dot { box-shadow: 0 0 0 3px rgba(48, 48, 48, .25); }
.vc-svy-opt input:checked:focus-visible + .vc-svy-dot { box-shadow: inset 0 0 0 4px #fff, 0 0 0 3px rgba(48, 48, 48, .25); }
.vc-svy-actions { display: flex; align-items: center; gap: 10px; margin-top: 4px; }
.vc-svy-actions .def-yellow-btn { flex: 1 1 auto; line-height: 20px; transition: opacity .15s; }
.vc-svy-actions .def-yellow-btn[disabled], .vc-svy-actions .def-yellow-btn[disabled]:hover { opacity: .5; cursor: default; }
.vc-svy-back { flex: 0 0 auto; padding: 13px 20px; border: 1px solid #DADDE1; border-radius: 8px; background: #fff; color: #4F4F4F;
    font-size: 14px; font-weight: 700; line-height: 20px; cursor: pointer; transition: border-color .15s; }
@media (hover: hover) {
    .vc-svy-back:hover { border-color: #FEDC29; }
}
/* у жёлтых кнопок сайта (main.css) при наведении — полупрозрачность; на телефоне она «застревала» бы после нажатия */
@media (hover: none) {
    .vc-svy-actions .def-yellow-btn:not([disabled]) { opacity: 1; }
}
.vc-svy-back:focus { outline: none; }
.vc-svy-back:focus-visible { box-shadow: 0 0 0 2px #303030; }
@media (max-width: 1000px), (pointer: coarse) {
    /* iPhone приближает страницу на полях со шрифтом меньше 16 px */
    .vs-ask-dialog textarea, .vs-ask-dialog input[type=text] { font-size: 16px; }
}
@media (max-width: 770px) {
    .vs-ask-pop .vs-ask-dialog { padding: 22px 18px 18px; }
    .vs-ask-dialog h2 { font-size: 20px; }
}

/* ── телефон и планшет: сортировка и вид — в строке «≡ сортировка … + Фильтры» над товарами ── */
@media (max-width: 1000px) {
    .vs-sortbar { display: none; }
    .catalog .vs-head { margin-bottom: 12px; }
    /* раздел каталога: в строке над товарами на телефоне ничего не видно (опрос — плашкой под товарами) —
       её нет, и строка «≡ сортировка … + Фильтры» — сразу под разделами */
    .cat-page .vs-head { display: none; }
    .cat-page .mob-go-flex { margin-top: 8px !important; }
    .catalog .vs-head-line { min-height: 0; }
    .catalog .vs-found { padding: 0; font-size: 18px; line-height: 24px; }
    .cat-page .cat-title { margin-bottom: 10px; font-size: 22px; line-height: 28px; }
    /* соседние разделы — лентой с прокруткой пальцем, карточки одной ширины (видно, что дальше есть ещё) */
    .cat-sibs-wrap { margin: 0 -15px 12px; }
    .cat-sibs { display: flex; flex-wrap: nowrap; gap: 8px; overflow-x: auto; padding: 0 15px 4px; -webkit-overflow-scrolling: touch;
        scrollbar-width: none; }
    .cat-sib { flex: 0 0 164px; width: 164px; height: 56px; gap: 8px; padding: 4px 10px 4px 4px; font-size: 13px; line-height: 16px; }
    .cat-sib-img { flex-basis: 46px; width: 46px; height: 46px; }
    .cat-sibs-more { display: none; }
    .cat-sibs::-webkit-scrollbar { display: none; }
}
