/*
 * Страницы-узлы каталога (например, «Гаражные ворота»): плитки разделов с фото и кратким описанием.
 * Плитки выводит тег [section_tiles:ID,ID] / [sub_catalogs] по «Шаблону подразделов» раздела;
 * оформление в духе плиток главной страницы: белая карточка, мягкая тень, синий заголовок Montserrat.
 */
.hub-h2 {
	margin: 34px 0 18px;
	font-family: 'Montserrat', sans-serif;
	font-size: 22px;
	font-weight: 700;
	line-height: 1.3;
	color: #001e29;
}
.hub-tiles {
	row-gap: 24px;
	margin-bottom: 8px;
}
a.hub-card {
	display: flex;
	flex-direction: column;
	height: 100%;
	overflow: hidden;
	border-radius: 10px;
	background: #fff;
	box-shadow: 0 4px 15px rgba(153, 153, 153, .18);
	color: #001e29;
	text-decoration: none;
	transition: box-shadow .2s ease, transform .2s ease;
}
a.hub-card:hover {
	box-shadow: 0 8px 24px rgba(0, 52, 154, .18);
	transform: translateY(-2px);
	text-decoration: none;
}
.hub-card-photo {
	display: block;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	background: #f1f5fc;
}
.hub-card-photo img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center 35%;
	transition: transform .35s ease;
}
a.hub-card:hover .hub-card-photo img {
	transform: scale(1.04);
}
.hub-card-body {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	gap: 8px;
	padding: 16px 18px 18px;
}
.hub-card-name {
	font-family: 'Montserrat', sans-serif;
	font-size: 16px;
	font-weight: 700;
	line-height: 1.3;
	color: #00349a;
}
.hub-card-text {
	font-family: 'Montserrat', sans-serif;
	font-size: 13px;
	line-height: 1.55;
	color: #33414a;
}
.hub-card-price {
	font-family: 'Montserrat', sans-serif;
	font-size: 14px;
	font-weight: 600;
	color: #00349a;
}
.hub-card-price:empty {
	display: none;
}
.hub-card-more {
	margin-top: auto;
	padding-top: 6px;
	font-family: 'Montserrat', sans-serif;
	font-size: 13px;
	font-weight: 600;
	color: #00349a;
}
.hub-card-more::after {
	content: ' \2192';
	color: #fe9900;
}
@media (max-width: 575.98px) {
	.hub-h2 { font-size: 19px; margin-top: 26px; }
	.hub-tiles { row-gap: 14px; }
	a.hub-card { flex-direction: row; }
	.hub-card-photo { flex: 0 0 38%; aspect-ratio: auto; min-height: 150px; }
	.hub-card-body { padding: 12px 14px 14px; gap: 6px; }
	.hub-card-name { font-size: 15px; }
	.hub-card-text {
		display: -webkit-box;
		-webkit-box-orient: vertical;
		-webkit-line-clamp: 6;
		overflow: hidden;
		font-size: 12.5px;
	}
}
@media (prefers-reduced-motion: reduce) {
	a.hub-card, .hub-card-photo img { transition: none; }
	a.hub-card:hover { transform: none; }
}

/*
 * Ритм страниц-узлов: заголовки секций с оранжевой чертой, блок подбора на светлой подложке, длинный текст отделён и
 * ограничен по ширине, чтобы блоки не сливались в одну массу.
 */
.hub-h2 {
	margin-top: 56px;
}
.hub-h2::after,
.hub-text > h2::after {
	content: '';
	display: block;
	width: 44px;
	height: 3px;
	margin-top: 10px;
	border-radius: 2px;
	background: #fe9900;
}
.catalog > .hub-h2:first-of-type {
	margin-top: 40px;
}
.hub-band {
	margin: 64px 0 8px;
	padding: 4px 32px 32px;
	border: 1px solid #e5ebf8;
	border-radius: 20px;
	background: #f1f5fc;
}
.hub-band .hub-h2 {
	margin-top: 28px;
}
.hub-band .choose-card {
	margin-bottom: 0;
	border-color: #e2e8f5;
	box-shadow: none;
}
.hub-band .choose-card:hover {
	box-shadow: 0 8px 18px rgba(0, 52, 154, .14);
}
.hub-band .choose-help {
	margin: 28px 0 0;
	border-color: #e2e8f5;
	border-left-color: #fe9900;
	background: #fff;
	box-shadow: none;
}
.hub-text {
	margin-top: 72px;
	padding-top: 12px;
	border-top: 1px solid #e2e2e2;
}
.hub-text > p {
	max-width: 880px;
	margin: 0 0 16px;
	line-height: 1.7;
}
.hub-text > h2 {
	margin: 56px 0 16px;
	font-family: 'Montserrat', sans-serif;
	font-size: 22px;
	font-weight: 700;
	line-height: 1.3;
	color: #001e29;
}
.hub-text > h3 {
	margin: 48px 0 14px;
	font-family: 'Montserrat', sans-serif;
	font-size: 19px;
	font-weight: 700;
	color: #001e29;
}
.hub-text > .table-container {
	margin: 28px 0 20px;
}
.hub-text > .gallery {
	margin: 0 0 24px;
}
@media (max-width: 767.98px) {
	.hub-h2,
	.hub-text > h2 { margin-top: 44px; }
	.hub-band {
		margin-top: 48px;
		padding: 2px 14px 20px;
		border-radius: 16px;
	}
	.hub-text { margin-top: 52px; }
}
.hub-text > p {
	font-size: 15px;
}
.hub-text > .table-container td,
.hub-text > .table-container th {
	font-size: 14px;
}

/* Плашка-консультация между плитками и текстом (у узлов без блока подбора) */
.hub-help { margin: 48px 0 0; }
.hub-help .choose-help { margin: 0; }

/* Нижний текст: списки, подзаголовки четвёртого уровня, картинки, разделители */
.hub-text > hr { display: none; }
.hub-text > h4 {
	margin: 32px 0 10px;
	font-family: 'Montserrat', sans-serif;
	font-size: 17px;
	font-weight: 700;
	color: #001e29;
}
.hub-text > ul,
.hub-text > ol {
	max-width: 880px;
	margin: 0 0 18px;
	padding-left: 22px;
	font-size: 15px;
	line-height: 1.7;
}
.hub-text > ul li,
.hub-text > ol li { margin-bottom: 6px; }
.hub-text > ul li::marker { color: #fe9900; }
.hub-text img {
	max-width: 100%;
	height: auto;
	border-radius: 14px;
}

/* Вводный текст раздела: комфортная длина строки */
.catalog > .catalog-description:not(.hub-text) {
	max-width: 900px;
	font-size: 15px;
	line-height: 1.7;
}

/* Широкие таблицы: прокрутка вбок на телефоне, подпись-подсказка и тень у края (скрипт swipe_hints.js) */
div.table-container {
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}
table.price-gate tr:hover {
	transform: none;
}
@media (max-width: 767.98px) {
	table.price-gate { min-width: 560px; }
}
div.table-container.is-scrollable {
	background:
		linear-gradient(to right, #fff 30%, rgba(255, 255, 255, 0)) left center / 40px 100% no-repeat local,
		linear-gradient(to left, #fff 30%, rgba(255, 255, 255, 0)) right center / 40px 100% no-repeat local,
		radial-gradient(farthest-side at 0 50%, rgba(0, 30, 41, .22), rgba(0, 30, 41, 0)) left center / 12px 100% no-repeat scroll,
		radial-gradient(farthest-side at 100% 50%, rgba(0, 30, 41, .22), rgba(0, 30, 41, 0)) right center / 12px 100% no-repeat scroll,
		#fff;
}
.table-hint {
	display: flex;
	align-items: center;
	gap: 6px;
	margin: 20px 0 8px;
	font-family: 'Montserrat', sans-serif;
	font-size: 12.5px;
	font-weight: 600;
	color: #00349a;
}
.table-hint[hidden] { display: none; }
.table-hint svg {
	width: 18px;
	height: 18px;
	fill: none;
	stroke: #fe9900;
	stroke-width: 2.4;
	stroke-linecap: round;
	stroke-linejoin: round;
	animation: table-hint-move 1.4s ease-in-out infinite;
}
@keyframes table-hint-move {
	0%, 100% { transform: translateX(0); }
	50% { transform: translateX(5px); }
}
@media (prefers-reduced-motion: reduce) {
	.table-hint svg { animation: none; }
}

/* Длинные слова и обозначения моделей не растягивают страницу на телефоне */
.hub-text,
.catalog > .catalog-description {
	overflow-wrap: break-word;
}

/* Блок «Стоимость рассчитываем индивидуально» (cta-order) в начале раздела -- на всю ширину, как сетка карточек и поиск */
.catalog > .catalog-description:has(> .cta-order) {
	max-width: none;
}
