/* Карточки каталога в стиле Wildberries: вертикальные, фото-доминанта, компактно */

/* ── Сетка: больше карточек в ряд ── */
.catalog__in {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 22px 14px !important;
    align-items: flex-start;
}

/* .catalog__item — реальный флекс-элемент (обёртка карточки). Ширина = 5 в ряд */
.catalog__in > .catalog__item {
    flex: 0 0 calc(20% - 12px) !important;
    max-width: calc(20% - 12px) !important;
    width: calc(20% - 12px) !important;
    box-sizing: border-box;
    margin: 0 !important;
    padding: 0 !important;
}
@media (max-width: 1400px) { .catalog__in > .catalog__item { flex-basis: calc(25% - 11px) !important; max-width: calc(25% - 11px) !important; width: calc(25% - 11px) !important; } }
@media (max-width: 1100px) { .catalog__in > .catalog__item { flex-basis: calc(33.333% - 10px) !important; max-width: calc(33.333% - 10px) !important; width: calc(33.333% - 10px) !important; } }
@media (max-width: 700px)  { .catalog__in > .catalog__item { flex-basis: calc(50% - 7px) !important; max-width: calc(50% - 7px) !important; width: calc(50% - 7px) !important; } .catalog__in { gap: 16px 10px !important; } }

/* Карточка внутри обёртки — на всю ширину, без рамки/фона (как WB) */
.goods {
    width: 100% !important;
    max-width: 100% !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    display: flex !important;
    flex-direction: column;
    overflow: hidden;
}
.goods:hover { box-shadow: none !important; }
.goods__in { display: flex !important; flex-direction: column; }

/* принудительная ширина 100% на всех уровнях — перебиваем инлайн slick и схлопывание грид-элемента */
.goods, .goods__in, .goods__imgs,
.goods__imgs .slick-list, .goods__imgs .slick-track { width: 100% !important; }

/* ── Фото: вертикальное 3:4, скруглённое, обрезка по объекту ── */
.goods__imgs, .goods__imgs.js-goods-gallery {
    width: 100% !important;
    aspect-ratio: 3 / 4;
    border-radius: 12px;
    overflow: hidden;
    background: #f3f5f7;
    margin: 0 0 8px !important;
    order: 1;
    position: relative;
}
/* слайдер slick заставляем показывать одно фото на всю ширину карточки */
.goods__imgs .slick-list { height: 100% !important; width: 100% !important; overflow: hidden; }
.goods__imgs .slick-track { height: 100% !important; width: 100% !important; transform: none !important; }
.goods__imgs .slick-slide { width: 100% !important; height: 100% !important; float: none !important; }
.goods__imgs .slick-slide:not(.slick-current):not(.slick-active) { display: none !important; }
.goods__img, .goods__img.ibg {
    width: 100% !important;
    height: 100% !important;
    border-radius: 12px;
    overflow: hidden;
    background: #f3f5f7;
    float: none !important;
}
.goods__img img, .goods__img .img-responsive {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    display: block;
}

/* ── ЖЁСТКО: картинка товара заполняет рамку 3:4 целиком и ОДИНАКОВО у всех ──
   Проблема была в том, что height:100% не доходил до <img> по цепочке slick,
   и картинка рендерилась по своей пропорции (у одних пусто снизу, у других обрезано).
   Делаем всю цепочку 100% и позиционируем img абсолютно внутри рамки → cover заполняет ровно. */
.catalog__in .goods__imgs .slick-list,
.catalog__in .goods__imgs .slick-track,
.catalog__in .goods__imgs .slick-slide,
.catalog__in .goods__imgs .slick-slide > div { height: 100% !important; }
.catalog__in .goods__imgs .goods__img,
.catalog__in .goods__imgs .goods__img.ibg {
    position: relative !important; height: 100% !important; display: block !important;
}
.catalog__in .goods__imgs .goods__img img,
.catalog__in .goods__imgs img.img-responsive {
    position: absolute !important; top: 0 !important; left: 0 !important;
    width: 100% !important; height: 100% !important;
    object-fit: cover !important; display: block !important;
}
/* (блок поставщика вынесен в единый авторитетный раздел в конце файла) */

/* Иконки (избранное) поверх фото, справа сверху */
.goods__icons { position: absolute; top: 8px; right: 8px; z-index: 3; order: 0; }

/* Точки слайдера — компактно поверх фото */
.goods__imgs .slick-dots { bottom: 6px; }

/* ── Цена крупная и жирная (WB) ── */
.goods__price, .goods__price.hello {
    order: 2;
    font-size: 19px !important;
    font-weight: 800 !important;
    color: #1d2733 !important;
    line-height: 1.2;
    margin: 6px 0 2px !important;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.goods__price #price_edit, .goods__price #batch_price_edit { font-size: inherit; font-weight: 800; white-space: nowrap; }
.goods__price .goods__size-title { font-size: 11px; font-weight: 500; color: #8695a4; }

/* Артикул/название — как подпись товара */
.goods__flex { order: 3; align-items: baseline; }
.goods__art { font-size: 13px !important; color: #5b6b7d !important; font-weight: 500; }
.goods__date { display: none !important; }   /* дату на карточке WB не показывает */

/* инфо-блок: убираем абсолютное позиционирование из старого дизайна (наложения) */
.goods__in > .goods__price,
.goods__in > .goods__flex,
.goods__in > .goods__supp,
.goods__in > .goods__size,
.goods__in > .goods__bottom {
    position: relative !important; top: auto !important; left: auto !important; right: auto !important; bottom: auto !important;
}

/* ── Поставщик + рейтинг компактно ── */
.goods__supp {
    order: 5; display: flex !important; align-items: center; gap: 6px;
    margin: 6px 0 0 !important; position: relative !important;
}
.goods__supp-left { display: flex !important; align-items: center; gap: 6px; position: static !important; }
.goods__supp-img { width: 20px !important; height: 20px !important; border-radius: 50%; overflow: hidden; flex: 0 0 auto; }
.goods__supp-img img { width: 100%; height: 100%; object-fit: cover; }
.goods__supp-name { font-size: 12px !important; color: #5b6b7d !important; }

/* ── ФИКС раскладки низа карточки ──
   Блоки .goods__supp и .goods__bottom лежат внутри <form> (а не в .goods__in),
   поэтому старый сброс не срабатывал: тема оставляла их position:absolute →
   аватар поставщика вылезал из блока, а кнопка «Купить» уезжала ниже карточки
   и обрезалась overflow:hidden. Делаем форму flex-колонкой и возвращаем всё в поток. */
.catalog__in .goods { overflow: visible !important; }
.catalog__in .goods > form { display: flex !important; flex-direction: column !important; }
.catalog__in .goods__in { order: 0 !important; }
.catalog__in .goods__supp,
.catalog__in .goods__supp-left {
    position: static !important;
    top: auto !important; left: auto !important; right: auto !important; bottom: auto !important;
}
/* Тема прячет низ карточки (opacity:0; z-index:-1; bottom:-80px) и показывает только по :hover.
   WB-стиль: кнопка «Купить» всегда видна — возвращаем блок в поток и делаем видимым. */
.catalog__in .goods__bottom {
    position: static !important;
    opacity: 1 !important;
    z-index: auto !important;
    top: auto !important; left: auto !important; right: auto !important; bottom: auto !important;
    background: transparent !important;
    box-shadow: none !important;
    padding: 0 !important;
    margin-top: 8px !important;
}
.catalog__in .goods__bottom:before { display: none !important; }
/* Аватар: relative (не static!) — служит containing block для своего absolute img,
   иначе картинка внутри раздувается на всю карточку. */
.catalog__in .goods__supp-img {
    position: relative !important;
    width: 20px !important; height: 20px !important;
    flex: 0 0 auto !important; overflow: hidden; border-radius: 50%;
}
.catalog__in .goods__supp-img img { width: 100% !important; height: 100% !important; object-fit: cover; }

/* ── Единый размер карточек (WB): строка поставщика всегда в одну линию ──
   Длинное имя поставщика толкало рейтинг на 2-ю строку → карточки разной высоты.
   Держим аватар+имя+рейтинг в одну строку, имя обрезаем эллипсисом. */
.catalog__in .goods__supp {
    flex-wrap: nowrap !important;
    align-items: center !important;
    min-height: 22px;
}
.catalog__in .goods__supp-left {
    min-width: 0 !important; flex: 0 1 auto !important; overflow: hidden;
}
.catalog__in .goods__supp-name {
    white-space: nowrap !important; overflow: hidden !important; text-overflow: ellipsis !important; min-width: 0;
}
.catalog__in .goods__supp-rating,
.catalog__in .goods__supp .rating { flex: 0 0 auto !important; }
/* Название товара — всегда одна строка */
.catalog__in .goods__art {
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis; display: block;
}

/* Размеры — компактной строкой */
.goods__size, .goods__sizes { order: 4; }

/* ── Мобилка: степер количества не влезает рядом с «Купить» на узкой карточке →
   прячем степер, кнопка на всю ширину (как на WB; количество меняется в корзине). ── */
@media (max-width: 700px) {
    .catalog__in .goods__bottom-in { display: block !important; }
    .catalog__in .goods__count.count.js-order { display: none !important; }
    .catalog__in .goods__btn.js-add { width: 100% !important; }
    /* Текст карточки не прижимаем к краю экрана — боковой отступ (фото остаётся full-bleed) */
    .catalog__in .goods__price,
    .catalog__in .goods__flex,
    .catalog__in .goods__supp,
    .catalog__in .goods__bottom { padding-left: 10px !important; padding-right: 10px !important; }
}

/* ── Кнопка «В каталог товаров» (главная, блок новинок): отделяем от карточек ── */
.new-products-btn {
    display: flex !important;
    justify-content: center;
    margin: 40px 0 14px !important;
    clear: both;
}
.new-products-btn .btn {
    width: auto !important;
    min-width: 280px;
    max-width: 460px;
    border-radius: 12px !important;
    padding: 14px 32px !important;
}
@media (max-width: 700px) {
    .new-products-btn { margin-top: 34px !important; }
    .new-products-btn .btn { width: 100% !important; min-width: 0; }
}

/* ── Кнопка «Показать ещё» ── */
.load-more-wrap { display: flex; justify-content: center; margin: 26px 0 10px; }
.btn-more.js-load-more {
    display: inline-flex; align-items: center; justify-content: center;
    min-width: 280px; height: 48px; padding: 0 28px;
    border: 1px solid #dbe3ec; border-radius: 12px;
    background: #fff; color: #1d2733; font-size: 15px; font-weight: 700;
    cursor: pointer; transition: background .15s, border-color .15s;
}
.btn-more.js-load-more:hover { background: #f3f7fd; border-color: #1f7ae0; color: #1f7ae0; }
.btn-more.js-load-more.is-loading { opacity: .6; cursor: default; }

/* ── Низ: кнопка на всю ширину (WB) ── */
.goods__bottom { order: 6; margin-top: 8px !important; }
.goods__bottom-in { display: flex; gap: 8px; align-items: center; }
/* WB-стиль кнопка «Купить»: корзина + текст, без фоновой иконки по центру */
.goods__btn.btn, .goods__btn.js-add, .goods__btn.wb-add-btn {
    width: 100% !important;
    min-height: 44px;
    border-radius: 10px !important;
    background-image: none !important;
    background-color: #0E63F4 !important;
    display: flex !important;
    align-items: center;
    justify-content: center;
    gap: 8px;
    color: #fff !important;
    font-weight: 700 !important;
    font-size: 15px !important;
    line-height: 1;
    cursor: pointer;
}
.goods__btn.js-add:hover, .goods__btn.wb-add-btn:hover { background-color: #0047FF !important; background-image: none !important; }
.goods__btn.js-add .goods__btn-ico, .goods__btn.wb-add-btn .goods__btn-ico { flex: 0 0 auto; width: 20px; height: 20px; }
.goods__btn.js-add .goods__btn-label, .goods__btn.wb-add-btn .goods__btn-label { color: #fff; }

/* Каталог: прячем старый предварительный степпер количества (WB: количество после добавления) */
.catalog__in .goods__bottom-in .goods__count.wb-preqty-hide { display: none !important; }

/* Универсальное скрытие. Для кнопки нужна повышенная специфичность,
   т.к. .goods__btn.wb-add-btn ставит display:flex !important (2 класса). */
.wb-hide { display: none !important; }
.goods__btn.wb-add-btn.wb-hide,
.g-btn.wb-add-btn.wb-hide { display: none !important; }

/* WB-стиль: размеры выбираются только в поп-апе — инлайн-селектор с карточки убираем.
   Радио остаются в DOM (display:none), поп-ап их читает через .goods[data-product]. */
.catalog__in .goods__size { display: none !important; }
.goods__stock { font-size: 11px; color: #8695a4; }

/* ═══════════════════════════════════════════════════════════════════════════
   БЛОК ПОСТАВЩИКА — переписан начисто. Перебивает и тему (в т.ч.
   .catalog.is-two-row ... display:block и абсолютный аватар), и все прошлые
   правки. Простая flex-строка: [круг-аватар] [имя…] [★рейтинг].
   Одинаково на десктопе и мобиле.
   ═══════════════════════════════════════════════════════════════════════════ */
.catalog__in .goods .goods__supp {
    position: static !important;
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 6px !important;
    top: auto !important; left: auto !important; right: auto !important; bottom: auto !important;
    margin: 8px 0 0 !important;
    padding: 0 !important;
    height: auto !important; min-height: 24px !important; max-height: none !important;
    overflow: visible !important;
    z-index: auto !important;
    order: 5;
}
.catalog__in .goods .goods__supp-left {
    position: static !important;
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    gap: 6px !important;
    padding: 0 !important;
    margin: 0 !important;
    min-height: 0 !important;
    min-width: 0 !important;
    flex: 0 1 auto !important;
    overflow: hidden !important;
}
.catalog__in .goods .goods__supp-img {
    position: relative !important;
    top: auto !important; left: auto !important; margin: 0 !important;
    width: 22px !important; height: 22px !important; min-width: 22px !important;
    flex: 0 0 22px !important;
    border-radius: 50% !important;
    overflow: hidden !important;
    display: block !important;
    background: #eef2f7 !important;
}
.catalog__in .goods .goods__supp-img img {
    position: static !important;
    transform: none !important;
    top: auto !important; left: auto !important;
    width: 22px !important; height: 22px !important; max-width: none !important;
    object-fit: cover !important;
    display: block !important;
}
.catalog__in .goods .goods__supp-name {
    font-size: 12px !important;
    line-height: 1.25 !important;
    color: #5b6b7d !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    min-width: 0 !important;
    flex: 0 1 auto !important;
    margin: 0 !important;
}
.catalog__in .goods .goods__supp-rating {
    flex: 0 0 auto !important;
    margin: 0 0 0 6px !important;
    display: flex !important;
    align-items: center !important;
}

/* ═══════════════════════════════════════════════════════════════════════════
   WB-СТЕППЕР ПО РАЗМЕРАМ (страница товара + каталог)
   Бейдж количества на размере + степпер «− N + В корзине».
   ═══════════════════════════════════════════════════════════════════════════ */

/* Бейдж-счётчик на плитке размера (красный кружок в углу) */
.g-block-sizes_products label.size,
.wb-size-modal__sizes .wb-size-chip { position: relative; }
.wb-size-badge {
    position: absolute;
    top: -8px; right: -8px;
    min-width: 20px; height: 20px;
    padding: 0 5px;
    box-sizing: border-box;
    border-radius: 10px;
    background: #f5163b;
    color: #fff;
    font-size: 12px; font-weight: 700;
    line-height: 20px; text-align: center;
    box-shadow: 0 1px 3px rgba(0,0,0,.25);
    z-index: 3;
    pointer-events: none;
}

/* Степпер «− N + В корзине» */
.wb-stepper {
    display: inline-flex;
    align-items: stretch;
    height: 50px;
    min-width: 190px;
    border-radius: 12px;
    overflow: hidden;
    background: #0E63F4;
    user-select: none;
}
.wb-stepper__btn {
    width: 54px;
    border: 0;
    background: transparent;
    color: #fff;
    font-size: 26px;
    font-weight: 500;
    line-height: 1;
    cursor: pointer;
    transition: background .12s;
}
.wb-stepper__btn:hover { background: rgba(255,255,255,.14); }
.wb-stepper__btn:active { background: rgba(0,0,0,.10); }
.wb-stepper__box {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    color: #fff;
    padding: 0 6px;
}
.wb-stepper__qty { font-size: 18px; font-weight: 800; line-height: 1.1; }
.wb-stepper__lbl { font-size: 11px; opacity: .9; }

/* Карточка каталога: степпер во всю ширину (как кнопка «Купить») */
.catalog__in .goods .wb-stepper { display: flex; width: 100%; min-width: 0; height: 44px; }
.catalog__in .goods .wb-stepper__btn { width: 46px; font-size: 22px; }

/* ── Поп-ап каталога: размеры с бейджами + степпер + «Перейти в корзину» ── */
.wbc-modal { position: fixed; inset: 0; z-index: 100000; display: none; }
.wbc-modal.is-open { display: block; }
.wbc-modal__overlay { position: absolute; inset: 0; background: rgba(15,25,40,.45); }
.wbc-modal__box {
    position: absolute; left: 50%; top: 50%; transform: translate(-50%,-50%);
    width: calc(100% - 32px); max-width: 440px; background: #fff; border-radius: 18px;
    padding: 22px 20px 20px; box-shadow: 0 20px 60px rgba(0,0,0,.25); box-sizing: border-box;
}
.wbc-modal__close { position: absolute; top: 10px; right: 14px; border: 0; background: none; font-size: 28px; line-height: 1; color: #8695a4; cursor: pointer; }
.wbc-modal__title { font-size: 20px; font-weight: 800; color: #1d2733; margin: 0 0 16px; }
/* padding сверху/справа — чтобы overflow не обрезал бейджи количества (они торчат на -8px) */
.wbc-modal__sizes { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 20px; max-height: 300px; overflow-y: auto; padding: 12px 12px 2px; }
.wbc-chip {
    position: relative; min-width: 56px; height: 48px; padding: 0 12px;
    border: 1.5px solid #e2e8f0; border-radius: 10px; background: #fff;
    font-size: 15px; font-weight: 600; color: #1d2733; cursor: pointer;
    transition: border-color .12s, box-shadow .12s;
}
.wbc-chip:hover { border-color: #0E63F4; }
.wbc-chip.is-active { border-color: #0E63F4; box-shadow: 0 0 0 1px #0E63F4 inset; }
.wbc-modal__foot { display: flex; align-items: stretch; gap: 10px; }
.wbc-modal__go {
    flex: 1 1 auto; display: flex; align-items: center; justify-content: center; height: 50px;
    border-radius: 12px; background: #0E63F4; color: #fff !important; font-size: 15px; font-weight: 700; text-decoration: none;
}
.wbc-modal__go:hover { background: #0047FF; }
.wbc-modal__add {
    flex: 1 1 auto; height: 50px; border: 0; border-radius: 12px;
    background: #0E63F4; color: #fff; font-size: 16px; font-weight: 700; cursor: pointer;
}
.wbc-modal__add:hover { background: #0047FF; }
.wbc-modal__stepper { flex: 0 0 auto; display: flex; align-items: center; height: 50px; border-radius: 12px; background: #eef2fb; overflow: hidden; }
.wbc-modal__stepper button { width: 46px; height: 50px; border: 0; background: transparent; color: #0E63F4; font-size: 24px; cursor: pointer; }
.wbc-modal__stepper button:hover { background: #dfe8fb; }
.wbc-modal__qty { min-width: 34px; text-align: center; font-size: 17px; font-weight: 800; color: #1d2733; }
@media (max-width: 600px) {
    .wbc-modal__box { left: 0; top: auto; bottom: 0; transform: none; width: 100%; max-width: 100%; border-radius: 18px 18px 0 0; padding-bottom: 24px; }
}

/* ── Мобилка (каталог): цена и блок поставщика тоже с боковым отступом ──
   Ставим В КОНЦЕ файла и на 3 класса (.catalog__in .goods .*) + !important,
   чтобы перебить авторитетное .catalog__in .goods .goods__supp{padding:0 !important}
   и прочие обнуления. Название и кнопка уже с отступом — приводим цену и
   поставщика к тому же краю (не прижимаем к экрану). */
@media (max-width: 700px) {
    .catalog__in .goods .goods__price,
    .catalog__in .goods .goods__flex,
    .catalog__in .goods .goods__supp,
    .catalog__in .goods .goods__bottom {
        padding-left: 10px !important;
        padding-right: 10px !important;
    }
}

/* ── Фикс страницы товара: главное фото показываем ЦЕЛИКОМ, без обрезки ──
   Было: .img-responsive{object-fit:cover} в рамке фикс. высоты → вертикальное
   фото в полный рост кропалось (голова/ноги). Тут только галерея товара (.g-left). */
.g-left .g-gallery__item {
    background: #fff;
}
.g-left .g-gallery__item .img-responsive,
.g-left .g-gallery .img-responsive {
    -o-object-fit: contain !important;
    object-fit: contain !important;
    -o-object-position: center center !important;
    object-position: center center !important;
}
/* тёмный градиент поверх фото на мобиле — убираем (создавал вид «обрезки») */
.g-gallery__item:after {
    display: none !important;
}

/* ══════════════ КОРЗИНА · мобильная карточка товара (задачи 1, 11) ══════════════ */
@media (max-width: 767px) {
    /* Фото слева, инфо (поставщик/название/размер/цена) — справа от фото */
    .js-cart-item .order__left { position: relative; min-height: 96px; }
    .js-cart-item .order__img {
        position: absolute; top: 0; left: 0; width: 96px; padding-right: 0;
    }
    .js-cart-item .order__content { margin-top: 0; }
    .js-cart-item .order__content > .flex-btwn {
        margin-left: 112px;      /* 96 фото + 16 отступ */
        min-height: 96px;        /* поля-комментарии уходят ниже фото */
        align-items: flex-start;
    }
    /* поля «комментарий» / «этикетка» — на всю ширину под фото + больше воздуха */
    .js-cart-item .order__content > .order__field { margin-left: 0; margin-top: 18px; }

    /* Размер — жирным и чёрным */
    .js-cart-item .order__size__title { color: #000; }
    .js-cart-item .order__size__title strong { color: #000; font-weight: 700; }

    /* Кнопка удаления — крупнее и в стиле макета (красная, в скруглённой плашке) */
    .js-cart-item .order__del--mobile {
        display: inline-flex; align-items: center; justify-content: center;
        width: 40px; height: 40px; border-radius: 12px;
        background: #fdeaea; color: #f0483e; margin-top: 0 !important;
    }
    .js-cart-item .order__del--mobile svg { width: 22px; height: 22px; }

    /* «Проверка на брак» (посредник): текст слева, тумблер и (i) — справа */
    .js-cart-item .defects--mobile .js-defects-text { align-items: center; width: 100%; }
    .js-cart-item .defects--mobile .js-defects-text .total-check__text { order: 1; }
    .js-cart-item .defects--mobile .js-defects-text .total-check__slider {
        order: 5; margin-left: auto !important; margin-right: 0 !important;
    }
    .js-cart-item .defects--mobile .js-defects-text > div { order: 6; }
}
