@charset "UTF-8";
/* ХИТ КЕРАМИКС · CSS head_custom только для /catalog/* · собрано 26.09.2026 (аудит A1 W4, p1_perf-01) из инлайн-блоков
   include/header_include/head_custom.php. Порядок блоков = порядок в файле (каскад сохранён).
   Правка: меняешь этот файл → поднимаешь ?v= в head_custom.php (у /upload/hc_js/ кеш браузера 30 дней). */

/* ==== head_custom.php L1464 · Каталог ==== */
/* ——— 1. Корневая страница каталога: сетка разделов ——— */
/* Карточки тянутся на всю высоту ячейки, иначе рядом с длинным списком
   («Декоративный камень», 9 коллекций) короткие карточки висят в воздухе */
.catalog_section_list .item_block { display: flex; }
.catalog_section_list .item_block > .section_item { width: 100%; }

/* Подкатегории: тёмно-серым вместо #F35C50 (контраст 3.25 на белом при кегле 13px),
   красный оставлен на наведение. Цвет отдаём теме — в тёмной он белый */
.catalog_section_list .section_info li.sect a,
.catalog_section_list .section_info li.sect a.muted777 {
	color: #333;
	color: var(--white_text_black, #333);
	font-size: 14px;
	line-height: 24px;
}
.catalog_section_list .section_info li.sect a:hover,
.catalog_section_list .section_info li.sect a.muted777:hover { color: #EE2C2D; }

/* «Ещё N» — разворачивает скрытые подкатегории (скрипт ниже) */
.catalog_section_list .section_info li.hc-more a {
	color: #777;
	color: var(--light_basic_text_black, #777);
	border-bottom: 1px dashed currentColor;
	cursor: pointer;
	font-size: 13px;
}
.catalog_section_list .section_info li.hc-more a:hover { color: #EE2C2D; }

/* SEO-текст под каталогом — во всю ширину контейнера, по тем же вертикальным
   линиям, что «Ранее вы смотрели» и карточки. Ширину НЕ ограничивать:
   31.08 перебрали колонку 780px у левого края, две колонки и колонку по центру —
   Кирилл забраковал всё, нужен текст от края до края контейнера. */
.hc-catalog-intro { max-width: none; }
.hc-catalog-intro p { margin: 0 0 1.15em; }
.hc-catalog-intro p:last-child { margin-bottom: 0; }
/* На листинге с левой колонкой фильтра (/catalog/?q=…, отфильтрованный каталог)
   текст начинался от края контейнера и уезжал под фильтр. Сдвигаем его на ширину
   левого блока, чтобы он шёл по одной вертикали с карточками товаров
   (Кирилл 31.08 нарисовал эту линию на скрине). У Aspro .left_block = 258px
   от 1300px и 244px ниже, gap 32px; под 992px фильтр скрыт и сдвиг не нужен.
   На корне /catalog/ .left_block отсутствует — :has() не сработает, текст
   остаётся во всю ширину. !important — у блока свой инлайновый style="margin:30px 0 10px" */
@media (min-width: 992px) {
	.main-catalog-wrapper:has(> .left_block) + .hc-catalog-intro { margin-left: 276px !important; }
}
@media (min-width: 1300px) {
	.main-catalog-wrapper:has(> .left_block) + .hc-catalog-intro { margin-left: 290px !important; }
}

@media (max-width: 767px) {
	/* Одна колонка строкой-списком: две колонки ломали заголовки на три строки,
	   а иконка раздувалась до половины экрана */
	.catalog_section_list .item_block.col-xs-6 { width: 100%; float: none; }
	.catalog_section_list .section_item { padding: 16px 18px; }
	.catalog_section_list .section_item_inner { width: 100%; }
	.catalog_section_list .section_item tr { display: flex; align-items: flex-start; }
	.catalog_section_list .section_item tr td { display: block; }
	.catalog_section_list .section_item td.image {
		width: 64px; min-width: 64px; flex: 0 0 64px;
		padding: 0 14px 0 0; margin: 0;
	}
	.catalog_section_list .section_item td.image img { width: 64px; height: auto; }
	.catalog_section_list .section_item td.section_info {
		text-align: left; vertical-align: top; padding: 0;
	}
}

/* ——— 2. Плитка товаров в разделе ——— */
/* Пять пустых звёзд у всех товаров читаются как «этого никто не купил».
   Прячем только там, где оценок нет; появится первая — блок вернётся */
/* Кнопка «В корзину» была видна только по наведению — на тачскрине недоступна вовсе.
   Делаем блок частью карточки, а не всплывающим слоем под ней */
.section-content-wrapper .ajax_load.block .item_block .footer_button {
	display: block;
	opacity: 1;
	visibility: visible;
	height: auto;
}
@media (min-width: 601px) {
	html:not(.mobile) .section-content-wrapper .catalog_block .item_block .catalog_item:not(.big) .footer_button {
		position: static;
		/* всплывающий слой лежал ПОВЕРХ отступов карточки, во всю её ширину;
		   став частью потока, блок влез внутрь padding:25px у .inner_wrap и потерял
		   50 px — из-за этого чипсы размеров вставали по одному в строку, а «шт»
		   отрывалось от подписи. Возвращаем ширину отрицательными полями.
		   07.08.2026: −24, а не −25. Карточки в ряду стоят вплотную, разделяет их
		   только рамка .inner_wrap (box-shadow: inset 0 0 0 1px #ececec). При −25 полоса
		   накрывала эту рамку, и красная «В корзину» одной карточки сливалась с красной
		   «Под заказ» соседней в один широкий прямоугольник с двумя подписями.
		   Один пиксель с каждой стороны оставляет рамку видимой — вертикальная линия
		   сетки идёт насквозь, цвет берётся из темы (тёмная подхватывается сама) */
		margin: 12px -24px 0;
		width: auto;
		background: transparent;
		border-color: transparent;
		box-shadow: none;
	}
	/* Габарит строки «В корзину». Кнопка у Aspro размера btn-exlg: padding 20/19 +
	   строка 15,7 = 56,7 px. На всплывающем слое карточка была шире (≈380 px) и
	   такая высота читалась нормально — 15 % ширины; в сетке из четырёх колонок
	   карточка 262 px, и та же кнопка стала занимать 22 % — «поля» выглядят выше,
	   чем на старой карточке (замечание Кирилла 06.08). Ужимаем до 44,7 px —
	   это те же 15 % при карточке 302 px и остаётся комфортной целью для пальца.
	   Мобильную раскладку не трогаем: там карточка широкая и высота уместна.

	   🔴 07.08.2026: правило перечисляло классы .to-cart/.in-cart и пропускало ещё две
	   кнопки той же строки — .to-order («Под заказ», у товаров с ценой по запросу) и
	   .read_more («Подробнее», у товаров с несколькими ТП, лежит в .offer_buy_block,
	   а НЕ в .button_block). Они оставались родными 57 px, тогда как соседи по ряду —
	   45 px. Высоту ряда задаёт самая высокая карточка, поэтому низ у всех совпадал,
	   а верх кнопки уезжал на 12 px вверх: в ряду со смешанными кнопками полоса
	   получалась ступенькой (скрин Кирилла 07.08). На /catalog/stroitelnye_smesi/
	   таких рядов было 7 из 16. Цепляемся за общий у Aspro размерный класс .btn-exlg —
	   он есть у всех четырёх кнопок, новые варианты подхватятся сами */
	html:not(.mobile) .section-content-wrapper .catalog_block .item_block .catalog_item:not(.big) .footer_button .btn-exlg,
	html:not(.mobile) .section-content-wrapper .catalog_block .item_block .catalog_item:not(.big) .footer_button .counter_block input.text {
		padding-top: 14px;
		padding-bottom: 13px;
	}
}
/* 06.08.2026 (вечер, просьба Кирилла): счётчик количества и выбор размера/цвета/
   единицы измерения в плитке ВОЗВРАЩЕНЫ — карточка снова как была.
   Прятавшие их правила убраны намеренно, не восстанавливать. */

/* 07.08.2026 (просьба Кирилла): «карточка стала полностью статичная — раньше
   информация под Корзиной появлялась только по наведению». Возвращаем это
   поведение выбору размера/цвета/единицы измерения: по умолчанию слоя нет,
   на наведении он выпадает под карточкой — как было у Aspro до правок 06.08.
   Строку «В корзину» НЕ прячем: её выносили в поток как раз потому, что на
   тачскрине всплывающий слой недоступен.
   Якорь слоя — .catalog_item_wrapp (у него position:relative), поэтому top:100%
   попадает ровно под строку «В корзину»; right:-1px повторяет margin-right:-1px
   у .inner_wrap, иначе слой на пиксель уже карточки.
   Карточка от этого в сетке не растёт: sku_props уходит из потока и её высота
   падает с 754 до 533 px (замер 1600 px, четыре колонки).
   Гейт html:not(.mobile) — не опечатка: класс `mobile` Aspro вешает по ШИРИНЕ
   (появляется ниже ~1000 px), там раскладка карточки другая и всё остаётся
   статичным, как и должно быть на тач-устройствах. */
@media (min-width: 601px) {
	html:not(.mobile) .section-content-wrapper .catalog_block .item_block .catalog_item:not(.big) .footer_button .sku_props {
		position: absolute;
		left: 0;
		right: -1px;
		top: 100%;
		z-index: 2;
		/* СВОИХ горизонтальных отступов не задавать: у .bx_catalog_item_scu внутри
		   уже есть padding 16px 26px 20px. Мои 25px складывались с ними — контент
		   терял 50 px, чипсы размеров вставали по одному в строку, а «шт»
		   отрывалось от подписи (те же симптомы, что 06.08 у блока в потоке) */
		padding: 0;
		background: #fff;
		background: var(--card_bg_hover_black, #fff);
		box-shadow: 0 14px 20px 0 rgba(0, 0, 0, .07);
		opacity: 0;
		visibility: hidden;
		transition: opacity .1s ease, visibility .1s ease;
	}
	/* На самом узком десктопе (1366 px, карточка 338) три чипа размера кирпича
	   требуют 288 px (93+86+94 + по 5 px правого поля), а контента при родных
	   26 px отступа ровно 287 — не хватает ОДНОГО пикселя, и третий размер
	   срывается на вторую строку. Подрезаем боковой отступ до 22 px: даёт 294 px
	   и запас 6 px, на глаз отличие от исходных 26 px незаметно.
	   Только в плитке — на детальной карточке отступы не трогаем */
	html:not(.mobile) .section-content-wrapper .catalog_block .item_block .catalog_item:not(.big) .footer_button .sku_props > .bx_catalog_item_scu {
		padding-left: 22px;
		padding-right: 22px;
	}
	/* Наведение ловим на .item_block: слой лежит ЗА пределами карточки геометрически,
	   но остаётся её потомком в DOM — поэтому, уводя курсор на сам слой (выбрать
	   размер), пользователь его не закрывает. `.hover` — класс от скриптов Aspro */
	html:not(.mobile) .section-content-wrapper .catalog_block .item_block:hover .catalog_item:not(.big) .footer_button .sku_props,
	html:not(.mobile) .section-content-wrapper .catalog_block .item_block .catalog_item:not(.big).hover .footer_button .sku_props {
		opacity: 1;
		visibility: visible;
	}
	/* Без подъёма карточки слой уходит ПОД следующую в строке: у .col-* стоит
	   position:relative с z-index:auto, и они рисуются в порядке DOM */
	html:not(.mobile) .section-content-wrapper .catalog_block .item_block:hover .catalog_item:not(.big) {
		z-index: 5;
	}
}

/* Четвёртая колонка включается с 1200 px (col-lg-3), но при левом фильтре под товары
   остаётся ~860 px — карточка сжимается до 216 px, и всё в ней выглядит громоздким.
   Ширину задаёт правило Аспро с `#main` — перебить можно только не меньшей
   специфичностью, «.catalog_block .item_block.col-lg-3» молча проигрывает.

   07.08.2026: верхняя граница 1349 px снята, три колонки держим на всём десктопе
   (решение Кирилла — «верни как было», прислал образец с карточкой ≈370 px).
   🔴 Причина, по которой ограничивать сверху бессмысленно: контейнер каталога
   упирается в ~1400 px, поэтому при ЧЕТЫРЁХ колонках карточка равна 302 px и на
   1600, и на 1920, и на 4K — шире она уже не станет. А в 302 px три чипа размера
   кирпича (93+86+94 + зазоры ≈ 283 px при контенте 250 px) не помещаются физически,
   при любом отступе. Три колонки дают 338 px на 1366 и ~400 px на 1920 — размеры
   встают в одну строку, как на образце.
   Без левого фильтра карточка и так ~350 px, там правило не нужно. */
@media (min-width: 1200px) {
	#main .catalog_page .section-content-wrapper.with-leftblock .catalog_block .item_block.col-lg-3:not(.custom-line),
	#main .catalog_in_content .section-content-wrapper.with-leftblock .catalog_block .item_block.col-lg-3:not(.custom-line) {
		width: 33.3333%;
	}
}

/* Товар «под заказ» (цена по запросу): у него нет ни одного доступного торгового
   предложения, поэтому Aspro метит ВСЕ варианты классом .missing и гасит их до
   opacity .3 — размер, цвет и единица измерения выглядят недоступными, хотя выбирать
   там попросту не из чего (замечание Кирилла 06.08). Гасить нечего — возвращаем
   нормальный вид. Там, где часть вариантов доступна, .missing остаётся как было:
   бледный вариант честно говорит, что этой комбинации нет.
   Признак карточки «под заказ» — кнопка `.to-order` (у обычной `.to-cart`). */
.catalog_item:has(.to-order) .sku_props ul li.missing,
.catalog_item.hc-to-order .sku_props ul li.missing,
.catalog_detail:has(.to-order) .sku_props ul li.missing,
.catalog_detail.hc-to-order .sku_props ul li.missing { opacity: 1; }
.catalog_item:has(.to-order) .sku_props ul li.missing .cnt_item,
.catalog_item.hc-to-order .sku_props ul li.missing .cnt_item,
.catalog_detail:has(.to-order) .sku_props ul li.missing .cnt_item,
.catalog_detail.hc-to-order .sku_props ul li.missing .cnt_item { opacity: 1; }
/* перечёркивание образца цвета — диагональ рисует .cnt1::before градиентом */
.catalog_item:has(.to-order) .sku_props ul li.missing .cnt1:before,
.catalog_item.hc-to-order .sku_props ul li.missing .cnt1:before,
.catalog_detail:has(.to-order) .sku_props ul li.missing .cnt1:before,
.catalog_detail.hc-to-order .sku_props ul li.missing .cnt1:before { display: none; }

/* ——— 3. Фильтр ——— */
/* Фильтр стоял под деревом каталога, то есть за первым экраном */
.left_block .sticky-sidebar__inner { display: flex; flex-direction: column; }
.left_block .sticky-sidebar__inner > .bx_filter { order: -1; }

/* Порядок блоков внутри фильтра: цена и то, чем реально выбирают, — наверх */
.bx_filter .bx_filter_parameters { display: flex; flex-direction: column; }
.bx_filter .bx_filter_parameters > * { order: 20; }
.bx_filter .bx_filter_parameters > input { order: 0; }
.bx_filter .bx_filter_parameters_box[data-prop_code="aspro_filter_sort"] { order: 1; }
.bx_filter .bx_filter_parameters_box:not([data-prop_code]) { order: 2; }
.bx_filter .bx_filter_parameters_box[data-prop_code="proizvoditel"] { order: 3; }
.bx_filter .bx_filter_parameters_box[data-prop_code="tcvet_tp"] { order: 4; }
.bx_filter .bx_filter_parameters_box[data-prop_code="razmer_mm"] { order: 5; }
.bx_filter .bx_filter_parameters_box[data-prop_code="format"] { order: 6; }
.bx_filter .bx_filter_parameters_box[data-prop_code="poverkhnost"] { order: 7; }
.bx_filter .bx_filter_parameters_box[data-prop_code="chasto_ishchut"] { order: 8; }
.bx_filter .bx_filter_parameters_box[data-prop_code="strana"] { order: 9; }
/* блок с единственным значением ничего не отфильтровывает — только шумит */
.bx_filter .bx_filter_parameters_box.hc-single-value { display: none !important; }

/* ——— 4. Чипсы над каталогом ——— */
.landings-list__info-wrapper.hc-grouped { display: block; }
.hc-chip-group { display: flex; flex-wrap: wrap; align-items: center; margin: 0 0 6px; }
.hc-chip-group__label {
	flex: 0 0 auto;
	margin: 0 10px 6px 0;
	color: #777;
	color: var(--light_basic_text_black, #777);
	font-size: 13px;
	white-space: nowrap;
}
.hc-chip-group .landings-list__item { margin-right: 6px; }
.hc-chip-swatch {
	display: inline-block;
	width: 12px; height: 12px;
	margin: -1px 6px 0 0;
	border-radius: 50%;
	border: 1px solid rgba(0,0,0,.18);
	vertical-align: middle;
}
@media (max-width: 767px) {
	.hc-chip-group { margin-bottom: 4px; }
	.hc-chip-group__label { flex-basis: 100%; margin-bottom: 3px; }
}

/* ==== head_custom.php L3130 · hc-oneclick-cta-2026-08-28 ==== */
/* hc-oneclick-cta: кнопка быстрого заказа под строкой «В корзину» */
.hc-ocb{display:flex;align-items:center;justify-content:center;width:100%;box-sizing:border-box;
	min-height:36px;margin:6px 0 0;padding:8px 10px;
	border:1px solid var(--stroke_black,#e0e0e0);border-radius:4px;background:transparent;
	font-size:12.5px;font-weight:600;line-height:1.15;text-align:center;
	color:var(--white_text_black,#333);cursor:pointer;
	transition:border-color .15s,color .15s;-webkit-user-select:none;user-select:none}
.hc-ocb:hover{border-color:#EE2C2D;color:#EE2C2D}
.hc-ocb-item{margin:6px 0 0;font-size:13px;line-height:1.35;opacity:.75}
/* на тачскрине цель пальца не меньше 44 px */
@media (max-width:600px){.hc-ocb{min-height:44px;font-size:13px}}

/* ==== head_custom.php L6053 · hc-catalog-root-2026-09-02 ==== */
.catalog_section_list .section_item{cursor:pointer}
.catalog_section_list .section_item:hover li.name a{color:#EE2C2D}
@media (min-width:768px){
	.catalog_section_list .section_item li.name a{font-size:16px}}
@media (max-width:767px){
	.catalog_section_list .section_info li.sect{padding:0}
	.catalog_section_list .section_info li.sect a{display:block;padding:7px 0;line-height:22px}
	.catalog_section_list .section_info li.hc-more a{display:inline-block;padding:8px 0}
	.catalog_section_list .section_item li.name a{display:inline-block;padding:4px 0}}

/* ==== hc-w4-cls-2026-09-26 (аудит A1 W4, p1_perf-09) ==== */
/* CLS разделов каталога на десктопе: CTA квиза «Не хотите листать весь каталог?» (/upload/hc_js/hc-quiz-20260914.js)
   вставляется на DOMContentLoaded ПЕРЕД .main-catalog-wrapper, то есть над всем каталогом, и сдвигал его на 129 px
   (0,05–0,08 CLS на керамблоках, 1440×900). Высота CTA на десктопе постоянна: 18 + 93 + 18 = 129 px при 992–1920 px.
   Резервируем это место заранее, пока CTA нет; как только он встал — резерв снимается тем же селектором (сдвиг 0).
   Условие резерва = условию вставки в квизе: страница /catalog/* (этот файл только там) с листингом .js_wrapper_items.
   На телефоне листинг ниже первого экрана — сдвиг CLS не даёт, резерва нет. Браузеры без :has() — как было. */
@media (min-width:992px){
	.container:has(> .main-catalog-wrapper .js_wrapper_items):not(:has(> .hcq-cta)) > .main-catalog-wrapper{margin-top:129px}
}

/* ==== hc-w9c-filter-hide-2026-09-27 (аудит A1 W9c, c3_catalog_nav-03; решение Кирилла 27.09 «Спрятать логистику и дубли»:
   «Убрать из бокового фильтра логистику, технологию (вне смесей) и дубли. В карточке характеристики остаются, адреса
   посадочных не пострадают.») ====
   Свойства остаются в умном фильтре (b_iblock_section_property): на них держатся адреса посадочных, а выключенное
   свойство Битрикс молча выбрасывает из адреса. Прячем только блоки бокового фильтра, как hc-filter-hide-2026-08-28.
   Порядок/раскрытие блоков ведёт hc_filter_tune.php (класс hc-ft-hide) — display:none здесь работает поверх него.
   Откат: удалить этот блок и поднять ?v= в head_custom.php. */
/* 1) логистика — во всех разделах */
.bx_filter_parameters_box[data-prop_code=kolichestvo_sht_poddon],
.bx_filter_parameters_box[data-prop_code=kolichestvo_sht_up],
.bx_filter_parameters_box[data-prop_code=kolichestvo_sht_avto],
.bx_filter_parameters_box[data-prop_code=kolichestvo_m2_up],
.bx_filter_parameters_box[data-prop_code=kolichestvo_m2_poddon],
.bx_filter_parameters_box[data-prop_code=kolichestvo_m2_avto],
.bx_filter_parameters_box[data-prop_code=ves_poddona],
.bx_filter_parameters_box[data-prop_code=kol_vo_v_up],
.bx_filter_parameters_box[data-prop_code=kol_vo_v_a_m]{display:none!important}
/* 2) технология смесей — во всех разделах, включая /catalog/stroitelnye_smesi/ (Кирилл 27.09 ~22:20 «мелкие вопросы — делай»;
   в карточке характеристики остаются). Было до 22:20: только вне смесей. */
.bx_filter_parameters_box[data-prop_code=kolichestvo_vody_zatvoreniya],
.bx_filter_parameters_box[data-prop_code=vremya_ispolzovaniya],
.bx_filter_parameters_box[data-prop_code=srok_khraneniya],
.bx_filter_parameters_box[data-prop_code=vykhod_rastvora]{display:none!important}
/* 3) дубль: «Размер» (razmer) там, где есть «Размер, мм» (razmer_mm).
   «Завод» (zavod) НЕ прячем: завод ≠ производитель (у ЛСР 4 завода, у Röben 2), его дозаполняют по задаче Кирилла 27.09;
   малозаполненный блок и так скрывает hc_filter_tune.php (<10 % раздела). */
form:has(.bx_filter_parameters_box[data-prop_code=razmer_mm]) .bx_filter_parameters_box[data-prop_code=razmer]{display:none!important}
/* ==== конец hc-w9c-filter-hide-2026-09-27 ==== */
