/* Стили контента «Вендор Нова» (статические страницы и элементы инфоблоков) */
.post_text__txt ul,
.post_text__txt ol {
	display: flex;
	flex-direction: column;
	gap: 1.2rem;
	padding-left: 2.4rem;
}
.post_text__txt ul { list-style: disc; }
.post_text__txt ol { list-style: decimal; }
.post_text__txt li {
	font-size: 2rem;
	line-height: 150%;
	color: hsla(217, 36%, 18%, 1);
}
.post_text__txt li::marker { color: var(--color-brand-600); }
.post_text__txt a.btn,
.post_text__txt a.btn:hover { color: #fff; }
.post_text__txt a.btn--ghost,
.post_text__txt a.btn--ghost:hover { color: var(--color-brand-600); }
.post_text__txt h4 {
	font-size: 2.4rem;
	color: hsla(217, 36%, 18%, 1);
}

/* Логотип (SVG от заказчика, 22.10.2026): тёмные буквы — шапка и липкая шапка, белые — тёмный подвал.
   Исходник — «ВендорНова_1.svg» (с тёмным фоном); варианты без фона, обрезаны по знаку. PNG оставлен для og:image и микроразметки. */
.header__logo { background-image: url("/local/templates/gianit/assets/img/vendornova-logo-dark.svg"); }
.footer__logo { background-image: url("/local/templates/gianit/assets/img/vendornova-logo-light.svg"); }

/* Страница без картинки справа — текст на всю ширину */
.post_text__container--full { grid-template-columns: 1fr; }

/* Карточки-факты (цифры) */
.vn-stats {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(18rem, 1fr));
	gap: 1.6rem;
}
.vn-stat {
	padding: 2.4rem;
	border-radius: 1.6rem;
	background-color: hsla(210, 40%, 96%, 1);
}
.vn-stat__value {
	font-size: 3.6rem;
	font-weight: 700;
	color: var(--color-brand-600);
	line-height: 120%;
}
.vn-stat__label {
	font-size: 1.6rem;
	color: hsla(217, 36%, 18%, 1);
}

/* Карточки (категории ПО, вендоры, модели лицензирования) */
.vn-cards {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(30rem, 1fr));
	gap: 2.4rem;
}
.vn-card {
	display: flex;
	flex-direction: column;
	gap: 1.2rem;
	padding: 3.2rem;
	border-radius: 1.6rem;
	background-color: hsla(210, 40%, 96%, 1);
}
.vn-card__title {
	font-size: 2.4rem;
	font-weight: 600;
	color: var(--color-brand-600);
}
.vn-card p,
.vn-card li {
	font-size: 1.8rem;
	line-height: 150%;
	color: hsla(217, 36%, 18%, 1);
}
.vn-card ul {
	display: flex;
	flex-direction: column;
	gap: 0.8rem;
	padding-left: 2rem;
	list-style: disc;
}
.vn-card__tags {
	display: flex;
	flex-wrap: wrap;
	gap: 0.8rem;
	margin-top: auto;
}
.vn-card__tag {
	font-size: 1.4rem;
	padding: 0.4rem 1.2rem;
	border-radius: 10rem;
	background-color: #fff;
	color: var(--color-brand-600);
}

/* Вопрос-ответ */
.vn-faq {
	display: flex;
	flex-direction: column;
	gap: 1.6rem;
}
.vn-faq details {
	padding: 2.4rem 3.2rem;
	border-radius: 1.6rem;
	background-color: hsla(210, 40%, 96%, 1);
}
.vn-faq summary {
	cursor: pointer;
	font-size: 2rem;
	font-weight: 600;
	color: hsla(217, 36%, 18%, 1);
}
.vn-faq details p {
	margin-top: 1.6rem;
	font-size: 1.8rem;
	line-height: 150%;
	color: hsla(217, 36%, 18%, 1);
}

@media (max-width: 768px) {
	.post_text__txt li { font-size: 1.6rem; }
	.vn-card { padding: 2.4rem; }
	.vn-faq details { padding: 1.6rem 2rem; }
}

/* ---------- Главная: преимущества ---------- */
.vn-features {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 2.4rem;
}
.vn-feature {
	display: flex;
	flex-direction: column;
	gap: 1.6rem;
	padding: 3.2rem;
	border-radius: 1.6rem;
	background-color: hsla(210, 40%, 96%, 1);
}
.vn-feature__icon { width: 6.4rem; height: 6.4rem; }
.vn-feature__title {
	font-size: 2.4rem;
	font-weight: 600;
	color: var(--color-brand-600);
}
.vn-feature__text {
	font-size: 1.8rem;
	line-height: 150%;
	color: hsla(217, 36%, 18%, 1);
}

/* ---------- Главная: цифры ---------- */
.vn-numbers {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 2.4rem;
}
.vn-number {
	display: flex;
	flex-direction: column;
	gap: 0.8rem;
	padding: 3.2rem 0;
	border-top: 2px solid var(--color-brand-600);
}
.vn-number__value {
	font-size: 6.4rem;
	font-weight: 700;
	line-height: 110%;
	color: var(--color-brand-600);
}
.vn-number__label {
	font-size: 1.8rem;
	line-height: 140%;
	color: hsla(217, 36%, 18%, 1);
}

/* ---------- Главная: отзывы ---------- */
.vn-reviews {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 2.4rem;
}
.vn-review {
	display: flex;
	flex-direction: column;
	gap: 1.6rem;
	padding: 3.2rem;
	border-radius: 1.6rem;
	background-color: hsla(210, 40%, 96%, 1);
}
.vn-review__name {
	font-size: 2rem;
	font-weight: 600;
	color: hsla(217, 36%, 18%, 1);
}
.vn-review__company {
	font-size: 1.6rem;
	color: var(--color-brand-600);
}
.vn-review__text {
	font-size: 1.8rem;
	line-height: 150%;
	color: hsla(217, 36%, 18%, 1);
}
.vn-review__date {
	margin-top: auto;
	font-size: 1.4rem;
	color: hsla(215, 16%, 47%, 1);
}

@media (max-width: 1024px) {
	.vn-features, .vn-numbers { grid-template-columns: repeat(2, 1fr); }
	.vn-reviews { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
	.vn-features, .vn-numbers { grid-template-columns: 1fr; }
	.vn-number__value { font-size: 4.8rem; }
	.vn-feature, .vn-review { padding: 2.4rem; }
}

/* ---------- Юридические тексты (политика, согласие) ---------- */
.vn-legal { max-width: 96rem; }
.vn-legal .post_text__txt { gap: 1.6rem; }
.vn-legal .post_text__txt p,
.vn-legal .post_text__txt li {
	font-size: 1.7rem;
	line-height: 160%;
	letter-spacing: 0;
}
.vn-legal .post_text__txt ul { gap: 0.8rem; }

/* ---------- Баннер «Станьте нашим партнёром» (картинка сгенерирована в Higgsfield) ---------- */
.bigcta__art {
	background: url("/upload/vendornova/banner/cta-partner-1600.jpg") left center / cover no-repeat;
	background-image: image-set(
		url("/upload/vendornova/banner/cta-partner-1600.webp") type("image/webp"),
		url("/upload/vendornova/banner/cta-partner-1600.jpg") type("image/jpeg")
	);
}
@media (max-width: 768px) {
	.bigcta__art {
		background-image: url("/upload/vendornova/banner/cta-partner-800.webp");
	}
}

/* ---------- Первый экран главной (картинка сгенерирована в Higgsfield) ---------- */
/* Один и тот же файл на всех ширинах — он же указан в preload в header.php.
   Исходник 16:9 продлён влево светлым фоном до 2.4:1, чтобы техника не попадала под заголовок. */
.hero {
	background: var(--bg-image) url("/upload/vendornova/banner/hero-2400.webp") right center / cover no-repeat;
}
@media (max-width: 1024px) {
	.hero {
		background: var(--bg-image) url("/upload/vendornova/banner/hero-2400.webp") 88% bottom / 180rem no-repeat;
	}
}

/* ---------- Главная: блок «О компании» (фото-сетка + текст + цифры) ---------- */
/* Отступы с нижней границей в px: rem в шаблоне зависит от ширины окна и может сильно уменьшаться */
.vn-about__grid {
	display: grid;
	grid-template-columns: 1.1fr 1fr;
	gap: 40px;
	gap: max(6.4rem, 40px);
	align-items: center;
}
.vn-about__photos {
	display: grid;
	grid-template-columns: 1.35fr 1fr;
	grid-template-rows: 1fr 1fr;
	gap: 12px;
	gap: max(1.6rem, 12px);
	height: 52rem;
	overflow: hidden;
}
.vn-about__photo {
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: 2.4rem;
	display: block;
}
.vn-about__photo--main { grid-row: 1 / 3; }
.vn-about__copy {
	display: flex;
	flex-direction: column;
	gap: 2.4rem;
}
.vn-about__eyebrow {
	font-size: 1.6rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--color-brand-600);
}
.vn-about__title {
	font-size: 4.8rem;
	font-weight: 700;
	line-height: 1.05;
	letter-spacing: -0.02em;
	color: hsla(217, 36%, 18%, 1);
}
.vn-about__text {
	font-size: 2rem;
	line-height: 155%;
	color: hsla(217, 20%, 32%, 1);
}
.vn-about__list {
	margin: 0;
	padding: 0;
	list-style: none;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1.2rem 2.4rem;
}
.vn-about__list li {
	display: flex;
	align-items: flex-start;
	gap: 1rem;
	font-size: 1.7rem;
	line-height: 140%;
	color: hsla(217, 36%, 18%, 1);
}
.vn-about__check {
	flex: none;
	margin-top: 0.1rem;
	color: var(--color-brand-600);
}
.vn-about__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 1.2rem;
	margin-top: 0.8rem;
}
.vn-about__stats {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	margin-top: 48px;
	margin-top: max(6.4rem, 48px);
	padding: 3.2rem 0;
	border-radius: 2.4rem;
	background-color: hsla(210, 40%, 96%, 1);
}
.vn-about__stat {
	padding: 0 3.2rem;
	border-left: 1px solid hsla(214, 32%, 85%, 1);
}
.vn-about__stat:first-child { border-left: 0; }
.vn-about__stat-value {
	font-size: 5.6rem;
	font-weight: 700;
	line-height: 1.1;
	color: var(--color-brand-600);
}
.vn-about__stat-label {
	margin-top: 0.4rem;
	font-size: 1.6rem;
	line-height: 140%;
	color: hsla(217, 20%, 32%, 1);
}
@media (max-width: 1024px) {
	.vn-about__grid { grid-template-columns: 1fr; gap: 32px; gap: max(4rem, 32px); }
	.vn-about__photos { height: 40rem; }
	.vn-about__stats { grid-template-columns: repeat(2, 1fr); row-gap: 3.2rem; }
	.vn-about__stat:nth-child(3) { border-left: 0; }
}
@media (max-width: 600px) {
	.vn-about__photos { height: 28rem; gap: 0.8rem; }
	.vn-about__photo { border-radius: 1.6rem; }
	.vn-about__title { font-size: 3.2rem; }
	.vn-about__text { font-size: 1.7rem; }
	.vn-about__list { grid-template-columns: 1fr; }
	.vn-about__actions .btn { flex: 1 1 100%; justify-content: center; }
	.vn-about__stat { padding: 0 2rem; }
	.vn-about__stat-value { font-size: 4rem; }
}

/* ---------- Шапка: телефон и WhatsApp ---------- */
.vn-header-phone {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 0.2rem;
	white-space: nowrap;
	color: var(--fg-default);
	transition: color var(--dur-1) var(--ease-out);
}
.vn-header-phone:hover { color: var(--color-brand-600); }
.vn-header-phone__num {
	font-size: 1.8rem;
	font-weight: 700;
	letter-spacing: -0.01em;
	line-height: 1.2;
}
.vn-header-phone__hours {
	font-size: 1.2rem;
	color: var(--fg-muted);
}
.social--wa:hover { color: #25D366 !important; }
@media (max-width: 1280px) {
	.vn-header-phone__hours { display: none; }
}

/* ===================================================================
   Главная: блоки по макету (префикс vn-mp-), перенесены с /test/ 19.10.2026
   =================================================================== */
.vn-mp { --vn-accent: #19B4E6; --vn-ink: hsla(217, 36%, 14%, 1); --vn-muted: hsla(217, 15%, 46%, 1); --vn-soft: #F3F5F8; --vn-r: 1.6rem; display: flex; flex-direction: column; gap: 2.4rem; }
.vn-mp a { color: inherit; text-decoration: none; }
.vn-mp-btn { display: inline-flex; align-items: center; justify-content: center; gap: 0.8rem; height: 5.4rem; padding: 0 2.4rem; border-radius: 1.2rem; background: var(--color-brand-600); color: #fff !important; font-size: 1.6rem; font-weight: 600; transition: background .2s; }
.vn-mp-btn:hover { background: var(--color-brand-500); }
.vn-mp-btn--block { flex: 1; height: 4.4rem; }
.vn-mp-iconbtn { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 4.4rem; height: 4.4rem; border-radius: 1.2rem; border: 1px solid #E2E6EC; color: var(--vn-ink); transition: border-color .2s, color .2s; }
.vn-mp-iconbtn:hover { border-color: var(--color-brand-600); color: var(--color-brand-600); }
.vn-mp-round { display: inline-flex; align-items: center; justify-content: center; width: 4.6rem; height: 4.6rem; border-radius: 50%; border: 0; background: #fff; color: var(--vn-ink); box-shadow: 0 2px 8px rgba(16,24,40,.12); cursor: pointer; transition: transform .2s; }
.vn-mp-round:hover { transform: scale(1.06); }
.vn-mp-badge { position: absolute; top: 1.4rem; left: 1.4rem; z-index: 2; padding: 0.6rem 1.2rem; border-radius: 0.8rem; background: #fff; font-size: 1.3rem; font-weight: 700; color: var(--vn-ink); }
.vn-mp-h2 { margin: 2.4rem 0 0; font-size: 3.2rem; font-weight: 700; line-height: 1.1; color: var(--vn-ink); }

/* --- Верх: слайдер + карточка --- */
.vn-mp-top { display: grid; grid-template-columns: 1fr 34.4rem; gap: 2.4rem; margin-top: 3.2rem; }
.vn-mp-slider { position: relative; height: 49.4rem; border-radius: var(--vn-r); overflow: hidden; background: var(--vn-soft); }
.vn-mp-slide { position: absolute; inset: 0; display: flex; align-items: center; padding: 0 6.4rem; opacity: 0; visibility: hidden; transition: opacity .5s ease, visibility .5s; }
.vn-mp-slide.is-active { opacity: 1; visibility: visible; }
.vn-mp-slide::before { content: ""; position: absolute; inset: 0; background: var(--bg) center / cover no-repeat; }
.vn-mp-slide--right::before { background-position: right center; }
.vn-mp-slide--flip::before { transform: scaleX(-1); }
.vn-mp-slide--dark::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(12,24,64,.88) 0%, rgba(12,24,64,.55) 45%, rgba(12,24,64,0) 75%); }
.vn-mp-slide__copy { position: relative; z-index: 1; display: flex; flex-direction: column; align-items: flex-start; gap: 1.6rem; max-width: 52rem; }
.vn-mp-slide__title { font-size: 4.8rem; font-weight: 800; line-height: 1.05; letter-spacing: -0.02em; color: var(--vn-ink); }
.vn-mp-slide__text { font-size: 1.8rem; line-height: 1.4; color: hsla(217, 20%, 30%, 1); margin-bottom: 1.6rem; }
.vn-mp-slide--dark .vn-mp-slide__title, .vn-mp-slide--dark .vn-mp-slide__text { color: #fff; }
.vn-mp-slider__dots { position: absolute; left: 6.4rem; bottom: 2.4rem; z-index: 3; display: flex; gap: 0.8rem; }
.vn-mp-slider__dots button { width: 0.8rem; height: 0.8rem; padding: 0; border: 0; border-radius: 1rem; background: rgba(255,255,255,.8); box-shadow: 0 0 0 1px rgba(16,24,40,.08); cursor: pointer; transition: width .3s, background .3s; }
.vn-mp-slider__dots button.is-active { width: 2.8rem; background: var(--vn-accent); }
.vn-mp-slider__arrows { position: absolute; right: 2.4rem; bottom: 2.4rem; z-index: 3; display: flex; gap: 0.8rem; }

.vn-mp-hit { position: relative; }
.vn-mp-hit__item { display: none; flex-direction: column; height: 100%; }
.vn-mp-hit__item.is-active { display: flex; }
.vn-mp-hit__media { position: relative; display: block; flex: 1; min-height: 0; border-radius: var(--vn-r); overflow: hidden; background: var(--vn-soft); }
.vn-mp-hit__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.vn-mp-hit__media:hover img { transform: scale(1.04); }
.vn-mp-hit__price { margin-top: 1.6rem; font-size: 2.6rem; font-weight: 800; color: var(--vn-ink); }
.vn-mp-hit__price span { font-size: 1.8rem; }
.vn-mp-hit__title { margin-top: 0.6rem; font-size: 1.6rem; line-height: 1.35; color: var(--vn-ink); }
.vn-mp-hit__actions { display: flex; gap: 1.2rem; margin-top: 1.6rem; }
.vn-mp-hit__nav { position: absolute; top: 17.5rem; left: -2.3rem; right: -2.3rem; z-index: 3; display: flex; justify-content: space-between; pointer-events: none; }
.vn-mp-hit__nav .vn-mp-round { pointer-events: auto; }

/* --- 6 высоких плиток --- */
.vn-mp-tiles { display: grid; grid-template-columns: repeat(6, 1fr); gap: 2.4rem; }
.vn-mp-tile { position: relative; display: block; aspect-ratio: 221 / 393; border-radius: var(--vn-r); overflow: hidden; background: var(--vn-soft); }
.vn-mp-tile img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.vn-mp-tile::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(8,16,40,.62) 0%, rgba(8,16,40,.15) 38%, rgba(8,16,40,0) 60%); }
.vn-mp-tile:hover img { transform: scale(1.05); }
.vn-mp-tile__title { position: absolute; top: 2.4rem; left: 1.8rem; right: 1.8rem; z-index: 1; font-size: 2.6rem; font-weight: 800; line-height: 1.15; color: #fff; }

/* --- Широкий промо-баннер --- */
.vn-mp-promo { position: relative; display: flex; align-items: center; height: 36.2rem; margin-top: 2.4rem; padding: 0 6.4rem; border-radius: var(--vn-r); overflow: hidden; background: #0E1A2E; }
.vn-mp-promo__img { position: absolute; top: 0; right: 0; bottom: 0; width: 64%; object-fit: cover; }
.vn-mp-promo::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, #0E1A2E 36%, rgba(14,26,46,.6) 52%, rgba(14,26,46,0) 70%); }
.vn-mp-promo__copy { position: relative; z-index: 1; display: flex; flex-direction: column; gap: 0.4rem; color: #fff; }
.vn-mp-promo__label { display: inline-flex; align-items: center; gap: 0.8rem; margin-bottom: 1.6rem; font-size: 1.3rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.vn-mp-promo__label::before { content: ""; width: 0.8rem; height: 0.8rem; border-radius: 50%; background: var(--vn-accent); }
.vn-mp-promo__title { font-size: 5.6rem; font-weight: 800; line-height: 1; letter-spacing: -0.02em; }
.vn-mp-promo__sub { font-size: 1.8rem; opacity: .9; }
.vn-mp-promo__price { margin-top: 2.4rem; font-size: 6.4rem; font-weight: 800; line-height: 1; }
.vn-mp-promo__caption { margin-top: 1.2rem; font-size: 1.5rem; opacity: .8; }

/* --- Популярные категории --- */
.vn-mp-cats { display: grid; grid-template-columns: repeat(5, 1fr); gap: 2.4rem; }
.vn-mp-cat { display: flex; flex-direction: column; align-items: center; gap: 1.2rem; }
.vn-mp-cat__img { display: block; width: 100%; aspect-ratio: 3 / 2; border-radius: var(--vn-r); overflow: hidden; }
.vn-mp-cat__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.vn-mp-cat:hover .vn-mp-cat__img img { transform: scale(1.05); }
.vn-mp-cat__name { font-size: 1.6rem; font-weight: 700; color: var(--vn-ink); text-align: center; }
.vn-mp-cat:hover .vn-mp-cat__name { color: var(--color-brand-600); }

@media (max-width: 1024px) {
	.vn-mp-top { grid-template-columns: 1fr; margin-top: 2rem; }
	.vn-mp-hit { display: none; }
	.vn-mp-slider { height: 44rem; }
	.vn-mp-slide { padding: 0 3.2rem; align-items: flex-start; padding-top: 4rem; }
	.vn-mp-slide__title { font-size: 3.2rem; }
	.vn-mp-slide--right::before { background-position: 78% bottom; background-size: auto 62%; }
	.vn-mp-slide--right::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(248,250,252,.95) 0%, rgba(248,250,252,.75) 40%, rgba(248,250,252,0) 65%); }
	.vn-mp-slide__text { font-size: 1.6rem; }
	.vn-mp-slider__dots { left: 3.2rem; }
	.vn-mp-tiles { grid-template-columns: repeat(6, 16rem); overflow-x: auto; scrollbar-width: none; margin: 0 -1.6rem; padding: 0 1.6rem; gap: 1.2rem; }
	.vn-mp-tile__title { font-size: 2rem; top: 1.6rem; left: 1.4rem; }
	.vn-mp-promo { height: auto; padding: 3.2rem; align-items: flex-start; min-height: 40rem; }
	.vn-mp-promo__img { width: 100%; opacity: .55; }
	.vn-mp-promo::after { background: linear-gradient(180deg, #0E1A2E 30%, rgba(14,26,46,.3) 100%); }
	.vn-mp-promo__title { font-size: 3.6rem; }
	.vn-mp-promo__price { font-size: 4.4rem; }
	.vn-mp-cats { grid-template-columns: repeat(5, 18rem); overflow-x: auto; scrollbar-width: none; margin: 0 -1.6rem; padding: 0 1.6rem; gap: 1.2rem; }
	.vn-mp-h2 { font-size: 2.6rem; }
}
/* --- Заголовок блока со ссылкой «Смотреть все» --- */
.vn-mp-head { display: flex; align-items: center; justify-content: space-between; gap: 2.4rem; margin-top: 2.4rem; }
.vn-mp-head .vn-mp-h2 { margin: 0; }
.vn-mp-more { display: inline-flex; align-items: center; gap: 0.8rem; height: 4.4rem; padding: 0 2rem; border-radius: 1.2rem; background: var(--vn-soft); font-size: 1.5rem; font-weight: 600; color: var(--vn-ink); white-space: nowrap; transition: background .2s; }
.vn-mp-more:hover { background: #E7EBF1; }
.vn-mp-more--link { height: auto; padding: 0; background: none; text-decoration: underline; text-underline-offset: .3em; }
.vn-mp-more--link:hover { background: none; color: var(--color-brand-600); }

/* --- Витрина «Востребованные позиции» --- */
.vn-mp-showcase { position: relative; margin-top: 2.4rem; padding: 6.4rem 2.6rem 2.6rem; border-radius: var(--vn-r); overflow: hidden; background: var(--bg) right center / cover no-repeat; }
.vn-mp-showcase::before { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(248,250,252,.55) 0%, rgba(248,250,252,.2) 100%); }
.vn-mp-showcase__head { position: relative; display: flex; flex-direction: column; align-items: flex-start; gap: 0.8rem; padding: 0 3.8rem 4rem; }
.vn-mp-showcase__title { font-size: 4.8rem; font-weight: 800; line-height: 1; letter-spacing: -0.02em; color: var(--vn-ink); }
.vn-mp-showcase__sub { font-size: 1.8rem; color: hsla(217, 20%, 30%, 1); margin-bottom: 1.6rem; }
.vn-mp-cards { position: relative; display: grid; grid-template-columns: repeat(5, 1fr); gap: 2.4rem; }

/* --- Карточка товара (переиспользуемая) --- */
.vn-mp-card { display: flex; flex-direction: column; padding: 1.2rem 1.2rem 1.6rem; border-radius: var(--vn-r); background: #fff; }
.vn-mp-card__media { position: relative; display: block; aspect-ratio: 1; border-radius: 1.2rem; overflow: hidden; background: var(--vn-soft); }
.vn-mp-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.vn-mp-card:hover .vn-mp-card__media img { transform: scale(1.05); }
.vn-mp-chip { position: absolute; top: 1rem; left: 1rem; z-index: 1; padding: 0.3rem 0.8rem; border-radius: 0.6rem; background: #0F8A5F; color: #fff; font-size: 1.2rem; font-weight: 700; }
.vn-mp-card__price { margin-top: 1.6rem; font-size: 2.2rem; font-weight: 800; color: var(--vn-ink); }
.vn-mp-card__sku { margin-top: 0.4rem; font-size: 1.3rem; color: var(--vn-muted); }
.vn-mp-card__name { margin-top: 0.4rem; font-size: 1.5rem; line-height: 1.35; color: var(--vn-ink); display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; min-height: 4.1rem; }
.vn-mp-card__name:hover { color: var(--color-brand-600); }
.vn-mp-card__stock { margin-top: 0.8rem; font-size: 1.3rem; color: #0F8A5F; }
.vn-mp-card__btn { margin-top: 1.6rem; height: 4.4rem; align-self: flex-start; padding: 0 2rem; font-size: 1.5rem; }

/* --- Пара баннеров --- */
.vn-mp-banners { display: grid; grid-template-columns: 1fr 1fr; gap: 2.4rem; }
.vn-mp-banner { position: relative; display: flex; align-items: center; height: 35.4rem; padding: 0 3.2rem; border-radius: var(--vn-r); overflow: hidden; color: #fff !important; }
.vn-mp-banner--dark { background: #141C2B; }
.vn-mp-banner--blue { background: #12305E; }
.vn-mp-banner__img { position: absolute; top: 0; right: 0; bottom: 0; width: 55%; height: 100%; object-fit: cover; transition: transform .5s; }
.vn-mp-banner:hover .vn-mp-banner__img { transform: scale(1.04); }
.vn-mp-banner::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, var(--vn-banner-bg, #141C2B) 42%, rgba(0,0,0,0) 75%); }
.vn-mp-banner--blue::after { background: linear-gradient(90deg, #12305E 42%, rgba(18,48,94,0) 75%); }
.vn-mp-banner__copy { position: relative; z-index: 1; display: flex; flex-direction: column; gap: 0.2rem; max-width: 60%; }
.vn-mp-banner__title { font-size: 4.4rem; font-weight: 800; line-height: 1.05; letter-spacing: -0.02em; }
.vn-mp-banner__sub { font-size: 1.5rem; opacity: .9; }
.vn-mp-banner__big { margin-top: 2rem; font-size: 4rem; font-weight: 800; line-height: 1; }
.vn-mp-banner__caption { margin-top: 1rem; font-size: 1.3rem; opacity: .8; }

/* --- Кейсы карточками --- */
.vn-mp-posts { display: grid; grid-template-columns: repeat(4, 1fr); gap: 2.4rem; }
.vn-mp-post { display: flex; flex-direction: column; gap: 0.8rem; }
.vn-mp-post__media { position: relative; display: block; aspect-ratio: 3 / 2; border-radius: var(--vn-r); overflow: hidden; background: var(--vn-soft); margin-bottom: 0.8rem; }
.vn-mp-post__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.vn-mp-post:hover .vn-mp-post__media img { transform: scale(1.05); }
.vn-mp-post__date { position: absolute; top: 1.4rem; left: 1.4rem; padding: 0.5rem 1rem; border-radius: 0.8rem; background: #fff; font-size: 1.3rem; color: var(--vn-ink); }
.vn-mp-post__title { padding: 0 0.8rem; font-size: 1.8rem; font-weight: 700; line-height: 1.25; color: var(--vn-ink); }
.vn-mp-post:hover .vn-mp-post__title { color: var(--color-brand-600); }
.vn-mp-post__text { padding: 0 0.8rem; font-size: 1.5rem; line-height: 1.45; color: var(--vn-muted); }

/* --- Вендоры --- */
.vn-mp-brands { display: grid; grid-template-columns: repeat(8, 1fr); gap: 2.4rem; }
.vn-mp-brand { display: flex; align-items: center; justify-content: center; height: 10rem; padding: 0 1.2rem; border-radius: var(--vn-r); background: var(--vn-soft); font-size: 1.7rem; font-weight: 800; letter-spacing: -0.01em; color: hsla(217, 30%, 28%, 1); text-align: center; transition: background .2s, color .2s; }
.vn-mp-brand:hover { background: #E7EBF1; color: var(--color-brand-600); }

@media (max-width: 1024px) {
	.vn-mp-showcase { padding: 3.2rem 1.6rem 1.6rem; }
	.vn-mp-showcase__head { padding: 0 1.6rem 2.4rem; }
	.vn-mp-showcase__title { font-size: 3.2rem; }
	.vn-mp-cards { grid-template-columns: repeat(5, 22rem); overflow-x: auto; scrollbar-width: none; gap: 1.2rem; }
	.vn-mp-banners { grid-template-columns: 1fr; }
	.vn-mp-banner { height: 28rem; padding: 0 2.4rem; }
	.vn-mp-banner__title { font-size: 3.2rem; }
	.vn-mp-banner__big { font-size: 3rem; }
	.vn-mp-posts { grid-template-columns: repeat(4, 26rem); overflow-x: auto; scrollbar-width: none; margin: 0 -1.6rem; padding: 0 1.6rem; gap: 1.2rem; }
	.vn-mp-brands { grid-template-columns: repeat(2, 1fr); gap: 1.2rem; }
	.vn-mp-brand { height: 7.2rem; font-size: 1.5rem; }
	.vn-mp-head { margin-top: 1.6rem; }
}

/* ---------- Шапка: две строки справа от логотипа (только десктоп) ----------
   Строка 1: Каталог + меню, телефон, мессенджеры, почта, адрес.
   Строка 2: поиск, «Заказать звонок», корзина. Логотип крупнее и по центру обеих строк. */
.vn-hdr { display: none; }
@media (min-width: 1025px) {
	.header__bar {
		height: auto;
		padding: 1.6rem 0;
		align-items: center;
		gap: 4.8rem;
	}
	.header__bar > .header__logo {
		flex: none;
		width: 24.8rem;
		height: 9.6rem;
		background-position: left center;
	}
	.vn-hdr {
		flex: 1 1 auto;
		min-width: 0;
		display: flex;
		flex-direction: column;
		gap: 1.6rem;
	}
	.vn-hdr__row {
		display: flex;
		align-items: center;
		gap: 3.2rem;
		min-width: 0;
	}
	.vn-hdr__row--top .header__nav {
		margin-left: 0;
		margin-right: auto;
		flex-wrap: nowrap;
		white-space: nowrap;
	}
	.vn-hdr__row--top .vn-hdr__contact { flex: none; gap: 2.4rem; }
	.vn-hdr__row--top .header__contacts { flex: none; gap: 2.4rem; white-space: nowrap; }
	.vn-hdr__row--bottom .header__search { flex: 1 1 auto; min-width: 0; max-width: none; }
	.vn-hdr__row--bottom .header__search form { flex: 1 1 auto; max-width: none; }
	.vn-hdr__row--bottom .header__search .search { max-width: none; }
	.vn-hdr__row--bottom .header__search > .btn { flex: none; white-space: nowrap; }
	.vn-hdr__row--bottom .header__actions { flex: none; gap: 2.4rem; }
}
/* На средних экранах адрес не помещается в строку меню — он есть в подвале и на странице контактов */
@media (min-width: 1025px) and (max-width: 1599px) {
	.vn-hdr__row--top .header__contacts .header__contact:last-child { display: none; }
}
@media (min-width: 1025px) and (max-width: 1279px) {
	.vn-hdr__row--top .header__contacts { display: none; }
}

/* ===================================================================
   Карточка товара (тест /test/product/, префикс vn-pd-) — по макету
   =================================================================== */
.vn-pd { --pd-ink: hsla(217, 36%, 14%, 1); --pd-muted: hsla(217, 15%, 46%, 1); --pd-line: #E3E7ED; --pd-soft: #F3F5F8; --pd-green: #16A34A; color: var(--pd-ink); }
.vn-pd a { color: inherit; text-decoration: none; }
.vn-pd button { font: inherit; color: inherit; background: none; border: 0; cursor: pointer; }
.vn-pd-green { color: var(--pd-green) !important; }
.vn-pd-note { margin: 1.6rem 0 2.4rem; padding: 1rem 1.6rem; border-radius: 1rem; background: #FFF6DB; font-size: 1.4rem; color: #8A6100; }
.vn-pd-title { font-size: 2.8rem; font-weight: 700; line-height: 1.25; max-width: 130rem; color: var(--pd-ink); letter-spacing: -0.01em; }
.vn-pd-h2, .vn-pd-h3, .vn-pd-sideblock h3 { color: var(--pd-ink); }
.vn-pd-meta { display: flex; justify-content: space-between; align-items: center; gap: 2.4rem; flex-wrap: wrap; margin: 1.6rem 0 3.2rem; font-size: 1.5rem; }
.vn-pd-meta__left { display: flex; gap: 1rem; color: var(--pd-muted); }
.vn-pd-meta__left b { color: var(--pd-ink); font-weight: 500; }
.vn-pd-meta__right { display: flex; align-items: center; gap: 3.2rem; }
.vn-pd-meta__item { display: inline-flex; align-items: center; gap: 0.8rem; }
.vn-pd-meta__item--guard svg { color: #DC2626; }
.vn-pd-link:hover, .vn-pd-link.is-on { color: var(--color-brand-600); }
.vn-pd-link.is-on svg { fill: currentColor; }
.vn-pd-top { display: grid; grid-template-columns: minmax(0, 1.9fr) minmax(0, 1fr) 34rem; gap: 3.2rem; align-items: start; }
.vn-pd-gallery { display: grid; grid-template-columns: 6.4rem 1fr; gap: 2.4rem; }
.vn-pd-gallery__thumbs { display: flex; flex-direction: column; gap: 1.2rem; }
.vn-pd-thumb { width: 6.4rem; height: 6.4rem; padding: 0.4rem !important; border: 2px solid transparent !important; border-radius: 0.8rem; background: #fff !important; }
.vn-pd-thumb img { width: 100%; height: 100%; object-fit: contain; }
.vn-pd-thumb.is-active, .vn-pd-thumb:hover { border-color: var(--pd-ink) !important; }
.vn-pd-gallery__main { position: relative; aspect-ratio: 1; border-radius: 1.6rem; background: #fff; display: flex; align-items: center; justify-content: center; }
.vn-pd-gallery__img { width: 92%; height: 92%; object-fit: contain; }
.vn-pd-badge { position: absolute; top: 1.2rem; left: 1.2rem; z-index: 1; padding: 0.4rem 1rem; border-radius: 0.6rem; background: var(--color-brand-600); color: #fff; font-size: 1.3rem; font-weight: 600; }
.vn-pd-info { display: flex; flex-direction: column; gap: 2.4rem; }
.vn-pd-opt__label { margin-bottom: 1rem; font-size: 1.4rem; color: var(--pd-muted); }
.vn-pd-opt__list { display: flex; flex-wrap: wrap; gap: 0.8rem; }
.vn-pd-chip { padding: 0.8rem 1.4rem !important; border: 1px solid var(--pd-line) !important; border-radius: 1rem; font-size: 1.5rem !important; transition: border-color .15s; }
.vn-pd-chip:hover { border-color: #AEB7C4 !important; }
.vn-pd-chip.is-active { border: 2px solid var(--pd-ink) !important; padding: 0.7rem 1.3rem !important; }
.vn-pd-short { display: flex; flex-direction: column; gap: 1.2rem; margin: 0.8rem 0 0; padding: 0; list-style: none; font-size: 1.5rem; }
.vn-pd-short span { color: var(--pd-muted); }
.vn-pd-more { display: inline-flex; align-items: center; gap: 0.4rem; font-size: 1.5rem; font-weight: 500; }
.vn-pd-more:hover { color: var(--color-brand-600); }
.vn-pd-buy { display: flex; flex-direction: column; gap: 1.6rem; }
.vn-pd-promo { display: flex; align-items: center; gap: 1.2rem; padding: 1.2rem 1.6rem; border-radius: 1.2rem; background: #E8F7EC; font-size: 1.4rem; line-height: 1.35; }
.vn-pd-promo__icon { display: inline-flex; width: 3.6rem; height: 3.6rem; flex: none; align-items: center; justify-content: center; border-radius: 50%; background: var(--pd-green); color: #fff; }
.vn-pd-price { display: flex; flex-direction: column; gap: 1.6rem; padding: 2.4rem; border-radius: 1.6rem; background: #fff; box-shadow: 0 2px 16px rgba(16, 24, 40, .08); }
.vn-pd-price__row { display: flex; align-items: baseline; gap: 1.2rem; flex-wrap: wrap; }
.vn-pd-price__value { font-size: 3.6rem; font-weight: 800; line-height: 1; white-space: nowrap; }
.vn-pd-price__unit { font-size: 1.4rem; color: var(--pd-muted); }
.vn-pd-tiers { display: flex; flex-direction: column; gap: 0.4rem; padding: 0.8rem; border-radius: 1.2rem; background: #EEF4FF; }
.vn-pd-tier { display: flex; justify-content: space-between; padding: 0.6rem 1rem; border-radius: 0.8rem; font-size: 1.4rem; }
.vn-pd-tier b { font-weight: 700; }
.vn-pd-tier.is-active { background: #fff; color: var(--color-brand-600); }
.vn-pd-qty { display: flex; align-items: center; gap: 0.8rem; }
.vn-pd-qty__btn { width: 4rem; height: 4rem; border-radius: 1rem; background: var(--pd-soft) !important; font-size: 2rem !important; line-height: 1; }
.vn-pd-qty__btn:hover { background: #E7EBF1 !important; }
.vn-pd-qty__input { width: 6.4rem; height: 4rem; border: 1px solid var(--pd-line); border-radius: 1rem; text-align: center; font-size: 1.6rem; font-weight: 600; -moz-appearance: textfield; }
.vn-pd-qty__input::-webkit-outer-spin-button, .vn-pd-qty__input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.vn-pd-qty__sum { margin-left: auto; font-size: 1.4rem; color: var(--pd-muted); text-align: right; }
.vn-pd-qty__sum b { color: var(--pd-ink); }
.vn-pd-btn { display: flex; align-items: center; justify-content: center; gap: 1rem; height: 5.2rem; border-radius: 1.2rem; font-size: 1.7rem !important; font-weight: 600; transition: background .2s; }
.vn-pd-btn--primary { background: var(--color-brand-600) !important; color: #fff !important; }
.vn-pd-btn--primary:hover { background: var(--color-brand-500) !important; }
.vn-pd-btn--secondary { background: var(--pd-soft); }
.vn-pd-btn--secondary:hover { background: #E7EBF1; }
.vn-pd-price__pay { display: flex; align-items: center; gap: 1rem; font-size: 1.4rem; color: var(--pd-muted) !important; }
.vn-pd-price__pay span { flex: 1; }
.vn-pd-price__pay:hover { color: var(--color-brand-600) !important; }
.vn-pd-stock { display: flex; flex-direction: column; gap: 1.6rem; margin: 0.8rem 0 0; padding: 0; list-style: none; font-size: 1.4rem; line-height: 1.4; }
.vn-pd-stock li { display: flex; gap: 1.2rem; }
.vn-pd-stock li > svg { flex: none; margin-top: 0.1rem; }
.vn-pd-related { margin-top: 6.4rem; }
.vn-pd-h2row { display: flex; align-items: baseline; gap: 1.6rem; margin-bottom: 2.4rem; }
.vn-pd-h2 { font-size: 2.4rem; font-weight: 700; }
.vn-pd-h2link { font-size: 1.5rem; color: var(--pd-muted) !important; }
.vn-pd-h2link:hover { color: var(--color-brand-600) !important; }
.vn-pd-carousel { position: relative; }
.vn-pd-carousel__track { display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% - 5 * 2.4rem) / 6); gap: 2.4rem; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; scrollbar-width: none; }
.vn-pd-carousel__track::-webkit-scrollbar { display: none; }
.vn-pd-carousel__nav { position: absolute; top: 9rem; z-index: 2; display: flex; align-items: center; justify-content: center; width: 4.4rem; height: 4.4rem; border-radius: 50%; background: #fff !important; box-shadow: 0 2px 8px rgba(16, 24, 40, .14); }
.vn-pd-carousel__nav--prev { left: -2.2rem; }
.vn-pd-carousel__nav--next { right: -2.2rem; }
.vn-pd-mini { display: flex; flex-direction: column; gap: 0.6rem; scroll-snap-align: start; }
.vn-pd-mini__img { display: flex; align-items: center; justify-content: center; aspect-ratio: 1; margin-bottom: 0.8rem; border-radius: 1.2rem; background: #fff; overflow: hidden; }
.vn-pd-mini__img img { width: 88%; height: 88%; object-fit: contain; transition: transform .3s; }
.vn-pd-mini:hover .vn-pd-mini__img img { transform: scale(1.05); }
.vn-pd-mini__price { font-size: 1.8rem; font-weight: 800; }
.vn-pd-mini__name { font-size: 1.4rem; line-height: 1.4; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden; }
.vn-pd-mini:hover .vn-pd-mini__name { color: var(--color-brand-600); }
.vn-pd-mini__stock { font-size: 1.3rem; color: var(--pd-muted); }
.vn-pd-tabs { display: flex; justify-content: space-between; gap: 2.4rem; margin: 6.4rem 0 3.2rem; border-bottom: 1px solid var(--pd-line); overflow-x: auto; scrollbar-width: none; }
.vn-pd-tabs a { flex: none; padding: 1.4rem 0.4rem; border-bottom: 2px solid transparent; margin-bottom: -1px; font-size: 1.4rem; font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase; color: var(--pd-muted) !important; white-space: nowrap; }
.vn-pd-tabs a:hover { color: var(--pd-ink) !important; }
.vn-pd-tabs a.is-active { color: var(--pd-ink) !important; border-bottom-color: var(--color-brand-600); }
.vn-pd-body { display: grid; grid-template-columns: minmax(0, 1fr) 34rem; gap: 8rem; align-items: start; }
.vn-pd-main, .vn-pd-side { display: flex; flex-direction: column; gap: 2.4rem; }
.vn-pd-text p { margin: 0 0 1.2rem; font-size: 1.5rem; line-height: 1.6; }
.vn-pd-h3 { margin-top: 1.6rem; font-size: 2rem; font-weight: 700; scroll-margin-top: 10rem; }
.vn-pd-specs { margin: 0; display: flex; flex-direction: column; gap: 1rem; font-size: 1.5rem; max-width: 76rem; }
.vn-pd-specs__row { display: grid; grid-template-columns: 1.4fr 1fr; align-items: baseline; }
.vn-pd-specs__row dt { display: flex; align-items: baseline; color: var(--pd-muted); }
.vn-pd-specs__row dt::after { content: ""; flex: 1; margin: 0 1rem; border-bottom: 1px dotted #C5CCD6; transform: translateY(-0.3em); }
.vn-pd-specs__row dd { margin: 0; }
.vn-pd-specs__row dd.is-accent { color: var(--color-brand-600); }
.vn-pd-bullets { display: flex; flex-direction: column; gap: 1rem; margin: 0; padding: 0; list-style: none; font-size: 1.5rem; line-height: 1.45; }
.vn-pd-bullets li { position: relative; padding-left: 2rem; }
.vn-pd-bullets li::before { content: ""; position: absolute; left: 0.4rem; top: 0.65em; width: 0.6rem; height: 0.6rem; border-radius: 50%; background: var(--color-brand-600); }
.vn-pd-guarantees { display: grid; grid-template-columns: 1fr 1fr; gap: 2.4rem; margin-top: 1.6rem; }
.vn-pd-guarantee { display: flex; align-items: center; gap: 1.6rem; padding: 1.6rem 2rem; border-radius: 1.2rem; font-size: 1.4rem; line-height: 1.4; }
.vn-pd-guarantee svg { flex: none; color: #DC2626; }
.vn-pd-guarantee--green { background: #E8F7EC; }
.vn-pd-guarantee--green svg { color: var(--pd-green); }
.vn-pd-disclaimer { font-size: 1.3rem; font-style: italic; color: var(--pd-muted); }
.vn-pd-brand { border-radius: 1.6rem; background: #EEF4FF; overflow: hidden; }
.vn-pd-brand__top { display: flex; align-items: center; gap: 0.8rem; padding: 1.2rem 1.6rem; font-size: 1.4rem; font-weight: 600; }
.vn-pd-brand__body { margin: 0 0.4rem 0.4rem; padding: 2rem; border-radius: 1.2rem; background: #fff; }
.vn-pd-brand__name { font-size: 2rem; font-weight: 700; }
.vn-pd-brand__all { font-size: 1.4rem; color: var(--pd-muted) !important; }
.vn-pd-brand__all:hover { color: var(--color-brand-600) !important; }
.vn-pd-sideblock { scroll-margin-top: 10rem; }
.vn-pd-sideblock h3 { margin-bottom: 1.2rem; font-size: 2rem; font-weight: 700; }
.vn-pd-sideblock p { margin: 0 0 0.8rem; font-size: 1.5rem; }
.vn-pd-doclink { display: flex; align-items: center; gap: 1rem; margin-bottom: 1rem; font-size: 1.5rem; }
.vn-pd-doclink:hover { color: var(--color-brand-600); }
.vn-pd-service { margin-top: 6.4rem; scroll-margin-top: 10rem; }
.vn-pd-service__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2.4rem; margin-top: 2.4rem; }
.vn-pd-service__card { display: flex; flex-direction: column; gap: 1.2rem; padding: 3.2rem; border-radius: 1.6rem; background: #fff; box-shadow: 0 2px 16px rgba(16, 24, 40, .06); }
.vn-pd-service__title { font-size: 2.2rem; font-weight: 700; color: var(--color-brand-600); }
.vn-pd-service__card p { margin: 0; font-size: 1.5rem; line-height: 1.5; color: var(--pd-muted); flex: 1; }
.vn-pd-service__card a { display: inline-flex; align-items: center; gap: 0.4rem; font-size: 1.5rem; font-weight: 500; }
.vn-pd-service__card a:hover { color: var(--color-brand-600); }
@media (max-width: 1280px) {
	.vn-pd-top { grid-template-columns: minmax(0, 1fr) 34rem; }
	.vn-pd-info { grid-column: 1 / -1; grid-row: 2; }
	.vn-pd-carousel__track { grid-auto-columns: calc((100% - 3 * 2.4rem) / 4); }
}
@media (max-width: 1024px) {
	.vn-pd-title { font-size: 2.2rem; }
	.vn-pd-meta__right { gap: 1.6rem; flex-wrap: wrap; }
	.vn-pd-top { grid-template-columns: 1fr; }
	.vn-pd-info { grid-row: auto; }
	.vn-pd-gallery { grid-template-columns: 1fr; }
	.vn-pd-gallery__thumbs { order: 2; flex-direction: row; }
	.vn-pd-carousel__track { grid-auto-columns: 46%; }
	.vn-pd-carousel__nav { display: none; }
	.vn-pd-tabs { justify-content: flex-start; }
	.vn-pd-body { grid-template-columns: 1fr; gap: 4rem; }
	.vn-pd-specs__row { grid-template-columns: 1.2fr 1fr; }
	.vn-pd-guarantees, .vn-pd-service__grid { grid-template-columns: 1fr; }
	.vn-pd-price__value { font-size: 3.2rem; }
}

/* Карточка товара: состояния шаблона catalog.element/vendornova */
.vn-pd-top--noinfo { grid-template-columns: minmax(0, 1fr) 34rem; }
.vn-pd-gallery--single { grid-template-columns: 1fr; }
.vn-pd-gallery--single .vn-pd-gallery__main { max-width: 64rem; }
.vn-pd-price__value--request { font-size: 2.8rem; }
.vn-pd-muted { color: var(--pd-muted); font-size: 1.3rem; }
.vn-pd-cartform { display: flex; flex-direction: column; gap: 1.6rem; }
@media (max-width: 1024px) { .vn-pd-top--noinfo { grid-template-columns: 1fr; } }

/* Плитки главной: переносы длинных слов (названия теперь из инфоблока) */
.vn-mp-tile__title{hyphens:auto;-webkit-hyphens:auto;overflow-wrap:break-word}

/* =====================================================================
   Каталог: раздел (vn-cat-), фильтр (vn-flt-). Шаблоны catalog.section/vendornova,
   catalog.smart.filter/vendornova; тест — /test/catalog/
   ===================================================================== */
.vn-cat { --c-ink: hsla(217, 36%, 14%, 1); --c-muted: hsla(217, 15%, 46%, 1); --c-line: #E3E7ED; --c-soft: #F3F5F8; --c-green: #16A34A; --c-brand: var(--color-brand-600, #1A5FD6); color: var(--c-ink); }
.vn-cat a { color: inherit; text-decoration: none; }
.vn-cat button { font: inherit; color: inherit; background: none; border: 0; cursor: pointer; }
.vn-cat-note { margin: 0 0 2.4rem; padding: 1rem 1.6rem; border-radius: 1rem; background: #FFF6DB; font-size: 1.4rem; color: #8A6100; }
.vn-cat-head { display: flex; align-items: baseline; flex-wrap: wrap; gap: 0.4rem 1.6rem; margin-bottom: 2.4rem; }
.vn-cat-title { margin: 0; font-size: 3.2rem; font-weight: 700; line-height: 1.2; letter-spacing: -0.01em; color: var(--c-ink); }
.vn-cat-total { font-size: 1.5rem; color: var(--c-muted); }

/* Плитки разделов */
.vn-cat-tiles { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 1.6rem; margin-bottom: 3.2rem; }
.vn-cat-tile { display: flex; flex-direction: column; min-height: 22rem; padding: 1.6rem; border-radius: 1.6rem; background: var(--c-soft); overflow: hidden; transition: background .2s, box-shadow .2s; }
.vn-cat-tile:hover { background: #EAEFF5; box-shadow: 0 0.8rem 2.4rem rgba(16, 24, 40, .08); }
.vn-cat-tile__name { font-size: 1.6rem; font-weight: 700; line-height: 1.25; }
.vn-cat-tile__cnt { margin-top: 0.4rem; font-size: 1.3rem; color: var(--c-muted); }
.vn-cat-tile__img { display: flex; align-items: flex-end; justify-content: center; height: 12rem; margin-top: auto; padding-top: 1.2rem; }
.vn-cat-tile__img img { max-width: 85%; max-height: 100%; object-fit: contain; mix-blend-mode: multiply; transition: transform .3s; }
.vn-cat-tile:hover .vn-cat-tile__img img { transform: scale(1.05); }
.vn-cat-chips { display: flex; flex-wrap: wrap; gap: 0.8rem; margin-bottom: 2.4rem; }
.vn-cat-chip { padding: 0.8rem 1.4rem; border-radius: 10rem; background: var(--c-soft); font-size: 1.4rem; transition: background .2s; }
.vn-cat-chip:hover { background: #E7EBF1; }
.vn-cat .vn-cat-chip.is-active { background: var(--c-brand); color: #fff; }

/* Полоса преимуществ (тексты — ИБ «Главная страница», раздел «Карточка товара») */
.vn-cat-trust { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.6rem; margin-bottom: 3.2rem; }
.vn-cat-trust__item { display: flex; align-items: center; gap: 1.2rem; padding: 1.4rem 1.6rem; border: 1px solid var(--c-line); border-radius: 1.4rem; font-size: 1.4rem; line-height: 1.35; }
.vn-cat-trust__item svg { flex: none; color: var(--c-brand); }
.vn-cat-trust__item b { display: block; font-weight: 600; }
.vn-cat-trust__item span { display: block; color: var(--c-muted); }

/* Раскладка: фильтр слева, товары справа */
.vn-cat-layout { display: grid; grid-template-columns: 30rem minmax(0, 1fr); gap: 4rem; align-items: start; }
.vn-cat-side__head, .vn-cat-side__overlay, .vn-cat-bar__filters, .vn-cat-bar__select { display: none; }
.vn-cat-side__title { font-size: 1.6rem; font-weight: 700; }
.vn-cat-tree { display: flex; flex-direction: column; gap: 0.2rem; margin-bottom: 2rem; padding-bottom: 2rem; border-bottom: 1px solid var(--c-line); }
.vn-cat-tree .vn-cat-side__title { margin-bottom: 1rem; }
.vn-cat-tree a { display: flex; justify-content: space-between; gap: 1rem; padding: 0.8rem 1.2rem; border-radius: 0.8rem; font-size: 1.5rem; line-height: 1.3; transition: background .2s; }
.vn-cat-tree a span { font-size: 1.3rem; color: var(--c-muted); }
.vn-cat-tree a:hover, .vn-cat-tree a.is-active { background: var(--c-soft); }
.vn-cat-tree a.is-active { font-weight: 600; }
.vn-cat-tree a.vn-cat-tree__sub { padding-left: 2.4rem; }
.vn-cat .vn-cat-bar__filters[hidden] { display: none; }

/* Фильтр */
.vn-flt__group { padding: 1.6rem 0; border-bottom: 1px solid var(--c-line); }
.vn-flt__title { display: flex; justify-content: space-between; align-items: center; gap: 1rem; font-size: 1.6rem; font-weight: 700; list-style: none; cursor: pointer; }
.vn-flt__title::-webkit-details-marker { display: none; }
.vn-flt__title::after { content: ""; flex: none; width: 0.8rem; height: 0.8rem; margin: -0.4rem 0.4rem 0 0; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); transition: transform .2s; }
.vn-flt__group[open] > .vn-flt__title { margin-bottom: 1.4rem; }
.vn-flt__group[open] > .vn-flt__title::after { margin-top: 0.4rem; transform: rotate(-135deg); }
.vn-flt__inputs { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.vn-flt__inputs label { display: flex; align-items: center; gap: 0.6rem; height: 4.4rem; padding: 0 1.2rem; border: 1px solid var(--c-line); border-radius: 1rem; background: #fff; font-size: 1.4rem; color: var(--c-muted); transition: border-color .2s; }
.vn-flt__inputs label:focus-within { border-color: var(--c-brand); }
.vn-flt__inputs input { width: 100%; min-width: 0; padding: 0; border: 0; outline: 0; background: none; font: inherit; color: var(--c-ink); -moz-appearance: textfield; }
.vn-flt__inputs input::-webkit-outer-spin-button, .vn-flt__inputs input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.vn-flt__slider { position: relative; height: 2.4rem; margin: 1.4rem 0.9rem 0; }
.vn-flt__slider::before { content: ""; position: absolute; left: 0; right: 0; top: 50%; height: 0.4rem; margin-top: -0.2rem; border-radius: 0.2rem; background: var(--c-line); }
.vn-flt__fill { position: absolute; top: 50%; height: 0.4rem; margin-top: -0.2rem; border-radius: 0.2rem; background: var(--c-brand); }
.vn-flt__slider input[type=range] { position: absolute; top: 0; left: -0.9rem; width: calc(100% + 1.8rem); height: 100%; margin: 0; background: none; pointer-events: none; -webkit-appearance: none; appearance: none; }
.vn-flt__slider input[type=range]::-webkit-slider-runnable-track { background: none; }
.vn-flt__slider input[type=range]::-webkit-slider-thumb { width: 1.8rem; height: 1.8rem; border: 2px solid var(--c-brand); border-radius: 50%; background: #fff; box-shadow: 0 1px 4px rgba(0, 0, 0, .15); pointer-events: auto; cursor: pointer; -webkit-appearance: none; }
.vn-flt__slider input[type=range]::-moz-range-thumb { width: 1.8rem; height: 1.8rem; border: 2px solid var(--c-brand); border-radius: 50%; background: #fff; pointer-events: auto; cursor: pointer; }
.vn-flt__list { display: flex; flex-direction: column; gap: 1rem; }
.vn-flt__list--cols { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem 1.2rem; }
.vn-flt__check { position: relative; display: flex; align-items: center; gap: 1rem; font-size: 1.5rem; line-height: 1.3; cursor: pointer; }
.vn-flt__check[hidden] { display: none; }
.vn-flt__check input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.vn-flt__box { flex: none; width: 2rem; height: 2rem; border: 1.5px solid #C5CDD8; border-radius: 0.5rem; background: #fff center / 1.3rem no-repeat; transition: background-color .15s, border-color .15s; }
.vn-flt__check:hover .vn-flt__box { border-color: var(--c-brand); }
.vn-flt__check input:checked + .vn-flt__box { border-color: var(--c-brand); background-color: var(--c-brand); 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.5 4.5L19 7.5' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }
.vn-flt__check input:focus-visible + .vn-flt__box { outline: 2px solid var(--c-brand); outline-offset: 2px; }
.vn-flt__check.is-disabled { opacity: .45; }
.vn-flt__label { min-width: 0; overflow-wrap: anywhere; }
.vn-flt__cnt { margin-left: auto; padding-left: 0.6rem; font-size: 1.2rem; color: var(--c-muted); }
.vn-cat .vn-flt__more { margin-top: 1.2rem; font-size: 1.4rem; color: var(--c-muted); }
.vn-cat .vn-flt__more:hover { color: var(--c-brand); }
.vn-flt__footer { position: sticky; bottom: 0; z-index: 2; display: flex; flex-direction: column; align-items: center; gap: 1rem; padding: 2rem 0 1.6rem; background: #fff; }
.vn-flt__apply { width: 100%; }
.vn-flt__apply.is-loading { opacity: .7; }
.vn-flt__apply:disabled { opacity: .5; cursor: default; }
.vn-cat .vn-flt__reset { font-size: 1.4rem; color: var(--c-muted); text-decoration: underline; }

/* Кнопки */
.vn-cat-btn { display: inline-flex; align-items: center; justify-content: center; gap: 0.8rem; height: 4.4rem; padding: 0 2rem; border-radius: 1rem; font-size: 1.5rem; font-weight: 600; white-space: nowrap; transition: background .2s, color .2s; }
.vn-cat .vn-cat-btn--primary { background: var(--c-brand); color: #fff; }
.vn-cat .vn-cat-btn--primary:hover { background: var(--color-brand-500, #2D72EA); }
.vn-cat .vn-cat-btn--ghost { background: var(--c-soft); color: var(--c-ink); }
.vn-cat .vn-cat-btn--ghost:hover { background: #E7EBF1; }
.vn-cat .vn-cat-btn--white { background: #fff; color: var(--c-ink); }
.vn-cat .vn-cat-btn--white:hover { background: #E7EBF1; }
.vn-cat-btn .icon { fill: currentColor; }

/* Панель над товарами */
.vn-cat-bar { display: flex; align-items: center; flex-wrap: wrap; gap: 1rem 2.4rem; min-height: 4.4rem; margin-bottom: 2rem; }
.vn-cat-bar__found { font-size: 1.6rem; font-weight: 700; }
.vn-cat-bar__sort { display: flex; flex-wrap: wrap; align-items: center; gap: 0.4rem 1.6rem; font-size: 1.5rem; }
.vn-cat-bar__label { color: var(--c-muted); }
.vn-cat .vn-cat-bar__sort a:hover, .vn-cat .vn-cat-bar__sort a.is-active { color: var(--c-brand); }
.vn-cat-bar__sort a.is-active { font-weight: 600; }
.vn-cat-bar__view { display: flex; gap: 0.4rem; margin-left: auto; }
.vn-cat .vn-cat-bar__view button { display: flex; padding: 0.6rem; border-radius: 0.8rem; color: #B3BCC9; transition: color .2s, background .2s; }
.vn-cat .vn-cat-bar__view button.is-active { background: var(--c-soft); color: var(--c-brand); }

/* Сетка и карточка товара */
.vn-cat-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.6rem; }
.vn-cat-card { display: flex; flex-direction: column; padding: 1.2rem 1.2rem 1.6rem; border: 1px solid var(--c-line); border-radius: 1.6rem; background: #fff; transition: box-shadow .2s, border-color .2s; }
.vn-cat-card:hover { border-color: transparent; box-shadow: 0 1.2rem 3.2rem rgba(16, 24, 40, .12); }
.vn-cat-card__media { position: relative; }
.vn-cat-card__img { display: flex; align-items: center; justify-content: center; aspect-ratio: 1; padding: 1.2rem; border-radius: 1.2rem; overflow: hidden; }
.vn-cat-card__img img { max-width: 100%; max-height: 100%; object-fit: contain; transition: transform .35s; }
.vn-cat-card:hover .vn-cat-card__img img { transform: scale(1.04); }
.vn-cat-card__badge { position: absolute; top: 0.4rem; left: 0.4rem; padding: 0.3rem 0.8rem; border-radius: 0.6rem; background: #141C2B; color: #fff; font-size: 1.2rem; font-weight: 700; }
.vn-cat .vn-cat-card__fav { position: absolute; top: 0.2rem; right: 0.2rem; display: flex; padding: 0.6rem; border-radius: 50%; background: rgba(255, 255, 255, .85); color: #9AA5B5; transition: color .2s, transform .2s; }
.vn-cat .vn-cat-card__fav:hover, .vn-cat .vn-cat-card__fav.is-active { color: #E5484D; }
.vn-cat-card__fav:hover { transform: scale(1.1); }
.vn-cat-card__fav.is-active path { fill: currentColor; }
.vn-cat-card__body { display: flex; flex: 1; flex-direction: column; margin-top: 1.2rem; }
.vn-cat-card__price { font-size: 2.2rem; font-weight: 800; line-height: 1.2; letter-spacing: -0.01em; }
.vn-cat-card__price span { font-size: 1.3rem; font-weight: 500; letter-spacing: 0; color: var(--c-muted); }
.vn-cat-card__price--request { font-size: 1.8rem; }
.vn-cat-card__opt { align-self: flex-start; margin-top: 0.6rem; padding: 0.3rem 0.8rem; border-radius: 0.6rem; background: #E8F7EE; color: #0F7A3D; font-size: 1.3rem; }
.vn-cat-card__name { display: -webkit-box; margin-top: 0.8rem; overflow: hidden; font-size: 1.5rem; line-height: 1.35; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
.vn-cat .vn-cat-card__name:hover { color: var(--c-brand); }
.vn-cat-card__meta { margin-top: 0.6rem; font-size: 1.3rem; color: var(--c-muted); }
.vn-cat-card__specs { display: none; }
.vn-cat-card__stock { margin-top: auto; padding-top: 1.2rem; font-size: 1.3rem; font-weight: 600; color: #B26B00; }
.vn-cat-card__stock.is-in { color: var(--c-green); }
.vn-cat-card__date { display: flex; align-items: flex-start; gap: 0.4rem; margin-top: 0.4rem; font-size: 1.2rem; line-height: 1.35; color: var(--c-muted); }
.vn-cat-card__date svg { flex: none; margin-top: 0.1rem; }
.vn-cat-card__actions { display: flex; gap: 0.8rem; margin-top: 1.4rem; }
.vn-cat-card__actions .vn-cat-btn { flex: 1; height: 4rem; padding: 0 1.4rem; font-size: 1.4rem; }
.vn-cat-card__actions .vn-cat-btn--ghost { display: none; }

/* Карточка «Закупаете партией?» внутри сетки */
.vn-cat-promo { position: relative; display: flex; flex-direction: column; justify-content: flex-end; gap: 1.2rem; min-height: 36rem; padding: 2.4rem; border-radius: 1.6rem; overflow: hidden; background: #12305E url('/upload/vendornova/banner/cta-partner-800.webp') center / cover; color: #fff; }
.vn-cat-promo::before { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(18, 48, 94, .3) 0%, rgba(18, 48, 94, .96) 62%); }
.vn-cat-promo > * { position: relative; }
.vn-cat-promo__title { font-size: 2.4rem; font-weight: 800; line-height: 1.15; }
.vn-cat-promo__text { margin: 0; font-size: 1.5rem; line-height: 1.4; opacity: .9; }
.vn-cat-promo .vn-cat-btn { align-self: flex-start; }
.vn-cat .vn-cat-promo__link { font-size: 1.4rem; color: #fff; text-decoration: underline; opacity: .85; }

/* Вид «списком» */
.vn-cat-grid--list { grid-template-columns: 1fr; }
.vn-cat-grid--list .vn-cat-card { display: grid; grid-template-columns: 18rem minmax(0, 1fr) 22rem; gap: 2.4rem; align-items: start; padding: 1.6rem; }
.vn-cat-grid--list .vn-cat-card__body { margin-top: 0; }
.vn-cat-grid--list .vn-cat-card__name { order: -3; margin-top: 0; font-size: 1.7rem; font-weight: 600; -webkit-line-clamp: 2; }
.vn-cat-grid--list .vn-cat-card__meta { order: -2; }
.vn-cat-grid--list .vn-cat-card__specs { order: -1; display: block; margin: 1rem 0 1.2rem; padding: 0; list-style: none; font-size: 1.4rem; line-height: 1.5; }
.vn-cat-grid--list .vn-cat-card__specs span { color: var(--c-muted); }
.vn-cat-grid--list .vn-cat-card__stock { margin-top: 1rem; padding-top: 0; }
.vn-cat-grid--list .vn-cat-card__actions { flex-direction: column; margin-top: 0; }
.vn-cat-grid--list .vn-cat-card__actions .vn-cat-btn { flex: none; width: 100%; }
.vn-cat-grid--list .vn-cat-card__actions .vn-cat-btn--ghost { display: inline-flex; }
.vn-cat-grid--list .vn-cat-promo { min-height: 0; }

/* «Показать ещё», страницы, пусто */
.vn-cat .vn-cat-more { display: block; width: 100%; height: 4.8rem; margin-top: 2.4rem; border: 1px solid var(--c-line); border-radius: 1.2rem; font-size: 1.5rem; font-weight: 600; transition: background .2s; }
.vn-cat .vn-cat-more:hover { background: var(--c-soft); }
.vn-cat-more.is-loading { opacity: .6; pointer-events: none; }
.vn-cat-pager { display: flex; justify-content: center; flex-wrap: wrap; gap: 0.4rem; margin-top: 2rem; }
.vn-cat-pager a, .vn-cat-pager span { display: inline-flex; align-items: center; justify-content: center; min-width: 4rem; height: 4rem; padding: 0 0.8rem; border-radius: 2rem; font-size: 1.5rem; }
.vn-cat-pager a:hover { background: var(--c-soft); }
.vn-cat-pager .is-active { background: var(--c-brand); color: #fff; font-weight: 700; }
.vn-cat-empty { padding: 4rem 2.4rem; border-radius: 1.6rem; background: var(--c-soft); text-align: center; font-size: 1.5rem; }
.vn-cat-empty b { display: block; margin-bottom: 0.8rem; font-size: 2rem; }
.vn-cat-empty p { margin: 0 0 1.6rem; color: var(--c-muted); }

/* Блоки под каталогом */
.vn-cat-extra { margin-top: 6.4rem; }
.vn-cat-viewed { margin-top: 6.4rem; }
.vn-cat-viewed[hidden] { display: none; }
.vn-cat-viewed .vn-mp-h2 { margin-bottom: 2.4rem; }
.vn-cat-viewed__track { display: grid; grid-auto-columns: max(20rem, 160px); justify-content: start; grid-auto-flow: column; gap: 1.6rem; padding-bottom: 0.8rem; overflow-x: auto; scrollbar-width: thin; }
.vn-cat-mini { display: flex; flex-direction: column; gap: 0.6rem; max-width: 26rem; padding: 1.2rem; border: 1px solid #E3E7ED; border-radius: 1.4rem; background: #fff; color: var(--vn-ink) !important; text-decoration: none !important; transition: box-shadow .2s; }
.vn-cat-mini:hover { box-shadow: 0 0.8rem 2.4rem rgba(16, 24, 40, .1); }
.vn-cat-mini img { width: 100%; aspect-ratio: 1; object-fit: contain; }
.vn-cat-mini b { font-size: 1.6rem; }
.vn-cat-mini span { display: -webkit-box; overflow: hidden; font-size: 1.3rem; line-height: 1.35; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.vn-cat-seo { max-width: 120rem; margin-top: 4.8rem; font-size: 1.5rem; line-height: 1.6; color: var(--vn-muted); }
html.vn-noscroll, html.vn-noscroll body { overflow: hidden; }

/* Каталог: rem на сайте масштабируется от ширины окна (1440 px → 1rem ≈ 7.5 px) — нижняя граница для мелкого текста */
.vn-cat-tree a, .vn-flt__check, .vn-cat-bar__sort, .vn-cat-card__name, .vn-cat-btn, .vn-cat-chip { font-size: max(1.5rem, 14px); }
.vn-flt__title, .vn-cat-side__title, .vn-cat-bar__found, .vn-cat-tile__name { font-size: max(1.6rem, 15px); }
.vn-cat-card__meta, .vn-cat-card__stock, .vn-cat-card__opt, .vn-cat-tile__cnt, .vn-cat-tree a span, .vn-flt__inputs label, .vn-cat-trust__item, .vn-cat .vn-flt__more, .vn-cat .vn-flt__reset, .vn-cat-note { font-size: max(1.3rem, 13px); }
.vn-cat-card__date, .vn-cat-card__price span, .vn-flt__cnt, .vn-cat-card__badge { font-size: max(1.2rem, 12px); }
.vn-cat-card__price { font-size: max(2.2rem, 19px); }
.vn-cat-card__price--request { font-size: max(1.8rem, 16px); }
.vn-cat-card__actions .vn-cat-btn { height: max(4rem, 38px); font-size: max(1.4rem, 13px); }
.vn-cat-btn { height: max(4.4rem, 40px); }
.vn-flt__inputs label { height: max(4.4rem, 40px); }
.vn-flt__box { width: max(2rem, 18px); height: max(2rem, 18px); }
.vn-flt__footer { background: #F8FAFC; }
.vn-cat-title { font-size: max(3.2rem, 26px); }

@media (max-width: 1280px) {
	.vn-cat-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.vn-cat-tiles { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (max-width: 1024px) {
	.vn-cat-tiles { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.vn-cat-trust { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.vn-cat-layout { grid-template-columns: 1fr; }
	.vn-cat-side { position: fixed; top: 0; bottom: 0; left: 0; z-index: 10001; width: min(40rem, 88vw); padding: 0 2rem; overflow-y: auto; background: #fff; transform: translateX(-100%); transition: transform .25s ease; }
	.vn-cat-side.is-open { transform: none; box-shadow: 0 0 4rem rgba(0, 0, 0, .2); }
	.vn-cat-side__head { position: sticky; top: 0; z-index: 3; display: flex; justify-content: space-between; align-items: center; padding: 1.6rem 0; background: #fff; font-size: 1.8rem; font-weight: 700; }
	.vn-cat .vn-cat-side__close { padding: 0.4rem 0.8rem; font-size: 2rem; }
	.vn-cat-side__overlay { position: fixed; inset: 0; z-index: 10000; display: block; background: rgba(15, 23, 42, .45); opacity: 0; visibility: hidden; transition: opacity .25s, visibility .25s; }
	.vn-cat-side.is-open + .vn-cat-side__overlay { opacity: 1; visibility: visible; }
	.vn-cat .vn-cat-bar__filters { display: inline-flex; align-items: center; gap: 0.6rem; height: 4rem; padding: 0 1.4rem; border-radius: 1rem; background: var(--c-soft); font-size: 1.4rem; font-weight: 600; }
	.vn-cat-bar__sort { display: none; }
	.vn-cat-bar__select { display: block; height: 4rem; padding: 0 1rem; border: 1px solid var(--c-line); border-radius: 1rem; background: #fff; font: inherit; font-size: 1.4rem; color: var(--c-ink); }
	.vn-cat-bar__found { width: 100%; }
}
@media (max-width: 640px) {
	.vn-cat-title { font-size: 2.4rem; }
	.vn-cat-tiles { grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: 14rem; gap: 1rem; margin-right: -1.6rem; padding-right: 1.6rem; overflow-x: auto; scrollbar-width: none; }
	.vn-cat-tiles::-webkit-scrollbar { display: none; }
	.vn-cat-tile { min-height: 15rem; padding: 1.2rem; }
	.vn-cat-tile__name { font-size: 14px; }
	.vn-cat-tile__img { height: 7rem; }
	.vn-cat-trust { grid-template-columns: 1fr; gap: 0.8rem; }
	.vn-cat-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
	.vn-cat-card { padding: 0.8rem 0.8rem 1.2rem; }
	.vn-cat-card__price { font-size: 1.8rem; }
	.vn-cat-card__price--request { font-size: 1.6rem; }
	.vn-cat-card__actions .vn-cat-btn { padding: 0 1rem; font-size: 1.3rem; }
	.vn-cat-promo { grid-column: 1 / -1; min-height: 0; padding: 2rem; }
	.vn-cat-grid--list .vn-cat-card { grid-template-columns: 11rem minmax(0, 1fr); gap: 1.2rem; }
	.vn-cat-grid--list .vn-cat-card__actions { grid-column: 1 / -1; flex-direction: row; }
	.vn-cat-grid--list .vn-cat-card__actions .vn-cat-btn { flex: 1; width: auto; }
}

/* =====================================================================
   «О компании» (vn-ab-): тёмный первый экран, бенто-сетка, большой CTA. Тест — /test/about/
   ===================================================================== */
.vn-ab { --ab-ink: #131313; --ab-muted: hsla(217, 15%, 46%, 1); --ab-line: #E3E7ED; --ab-soft: #F3F5F8; --ab-blue: #1078F5; --ab-cyan: #06F2F0; --ab-grad: linear-gradient(120deg, #1078F5 0%, #06F2F0 100%); color: var(--ab-ink); }
.vn-ab a { color: inherit; text-decoration: none; }
.vn-ab-note { margin: 0 0 2.4rem; padding: 1rem 1.6rem; border-radius: 1rem; background: #FFF6DB; font-size: max(1.4rem, 13px); color: #8A6100; }
.vn-ab-eyebrow { display: inline-block; font-size: max(1.3rem, 12px); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--ab-cyan); }
.vn-ab-eyebrow--dark { color: var(--ab-blue); }
.vn-ab-btn { display: inline-flex; align-items: center; gap: 0.8rem; height: max(5.6rem, 46px); padding: 0 max(2.8rem, 20px); border-radius: 10rem; font-size: max(1.6rem, 15px); font-weight: 600; white-space: nowrap; transition: transform .2s, box-shadow .2s, background .2s; }
.vn-ab .vn-ab-btn--grad { background: var(--ab-grad); color: #04121F; }
.vn-ab-btn--grad:hover { transform: translateY(-2px); box-shadow: 0 1rem 3rem rgba(6, 242, 240, .3); }
.vn-ab .vn-ab-btn--glass { border: 1px solid rgba(255, 255, 255, .22); background: rgba(255, 255, 255, .08); color: #fff; }
.vn-ab-btn--glass:hover { background: rgba(255, 255, 255, .16); }

/* Первый экран */
.vn-ab-hero { position: relative; isolation: isolate; display: grid; gap: max(6.4rem, 32px); padding: max(8rem, 40px) max(6.4rem, 24px) max(4.8rem, 28px); border-radius: max(3.2rem, 20px); overflow: hidden; background: #131313; color: #fff; }
.vn-ab-hero::before { content: ""; position: absolute; inset: 0; z-index: -2; background: radial-gradient(55% 75% at 85% 15%, rgba(16, 120, 245, .38), transparent 60%), radial-gradient(40% 55% at 70% 95%, rgba(6, 242, 240, .2), transparent 60%); }
.vn-ab-hero__orbit { position: absolute; top: max(4.8rem, 24px); right: 4%; z-index: -1; width: min(46rem, 34%); pointer-events: none; animation: vnAbSpin 80s linear infinite; }
@keyframes vnAbSpin { to { transform: rotate(360deg); } }
.vn-ab-hero__copy { max-width: 86rem; }
.vn-ab-hero__title { margin: 1.6rem 0 0; font-size: max(6.4rem, 32px); font-weight: 800; line-height: 1.04; letter-spacing: -0.025em; color: #fff; }
.vn-ab-hero__title span { background: var(--ab-grad); -webkit-background-clip: text; background-clip: text; color: transparent; }
.vn-ab-hero__lead { max-width: 64rem; margin: 2.4rem 0 0; font-size: max(2rem, 16px); line-height: 1.5; color: rgba(255, 255, 255, .75); }
.vn-ab-hero__btns { display: flex; flex-wrap: wrap; gap: 1.2rem; margin-top: max(3.6rem, 24px); }
.vn-ab-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 0; padding-top: max(3.2rem, 20px); border-top: 1px solid rgba(255, 255, 255, .12); }
.vn-ab-stat { padding-right: 2.4rem; }
.vn-ab-stat + .vn-ab-stat { padding-left: 2.4rem; border-left: 1px solid rgba(255, 255, 255, .12); }
.vn-ab-stat dt { font-size: max(4.8rem, 30px); font-weight: 800; line-height: 1; letter-spacing: -0.02em; background: var(--ab-grad); -webkit-background-clip: text; background-clip: text; color: transparent; }
.vn-ab-stat dd { margin: 0.8rem 0 0; font-size: max(1.5rem, 13px); line-height: 1.35; color: rgba(255, 255, 255, .7); }

/* Бенто-сетка */
.vn-ab-bento { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: max(1.6rem, 12px); margin-top: max(1.6rem, 12px); }
.vn-ab-tile { position: relative; margin: 0; padding: max(3.2rem, 20px); border: 1px solid var(--ab-line); border-radius: max(2.4rem, 18px); overflow: hidden; background: #fff; transition: transform .25s, box-shadow .25s; }
.vn-ab-tile:hover { transform: translateY(-3px); box-shadow: 0 1.6rem 4rem rgba(16, 24, 40, .08); }
.vn-ab-tile p { max-width: 64rem; margin: 0 0 1.2rem; font-size: max(1.6rem, 14px); line-height: 1.6; color: var(--ab-muted); }
.vn-ab-tile p:last-child { margin-bottom: 0; }
.vn-ab-h2 { margin: 1.2rem 0 1.6rem; font-size: max(3.6rem, 24px); font-weight: 800; line-height: 1.1; letter-spacing: -0.02em; color: var(--ab-ink); }
.vn-ab-tile__year { margin-bottom: auto; font-size: max(12rem, 64px); font-weight: 800; line-height: .9; letter-spacing: -0.04em; background: var(--ab-grad); -webkit-background-clip: text; background-clip: text; color: transparent; }
.vn-ab-tile--story { grid-column: span 7; display: flex; flex-direction: column; justify-content: flex-end; gap: 2.4rem; min-height: max(44rem, 260px); border-color: transparent; background: var(--ab-soft); }
.vn-ab-tile--photo { grid-column: span 3; min-height: max(26rem, 200px); padding: 0; border: 0; }
.vn-ab-tile--photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .6s; }
.vn-ab-tile--photo:hover img { transform: scale(1.05); }
.vn-ab-tile--photo-main { grid-column: span 5; }
.vn-ab-tile--clients { grid-column: span 5; }
.vn-ab-clients { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem 1.6rem; margin: 2rem 0 0; padding: 0; list-style: none; }
.vn-ab-clients li { display: flex; flex-direction: column; gap: 0.4rem; font-size: max(1.4rem, 13px); line-height: 1.4; color: var(--ab-muted); }
.vn-ab-clients b { font-size: max(1.7rem, 15px); color: var(--ab-ink); }
.vn-ab-ico { display: inline-flex; align-items: center; justify-content: center; width: max(4.8rem, 40px); height: max(4.8rem, 40px); margin-bottom: 0.8rem; border-radius: 1.4rem; background: #EAF3FF; color: var(--ab-blue); }
.vn-ab-ico--grad { background: var(--ab-grad); color: #04121F; }
.vn-ab-tile--brand { grid-column: span 4; display: flex; flex-direction: column; justify-content: space-between; gap: 2.4rem; border: 0; background: var(--ab-grad); color: #04121F; }
.vn-ab-tile__big { font-size: max(3.6rem, 24px); font-weight: 800; line-height: 1.05; letter-spacing: -0.02em; }
.vn-ab-tile__big i { font-style: normal; opacity: .55; }
.vn-ab .vn-ab-tile--brand p { color: rgba(4, 18, 31, .75); }
.vn-ab-tile--cats { grid-column: span 5; }
.vn-ab-chips { display: flex; flex-wrap: wrap; gap: 0.8rem; margin-top: 2rem; }
.vn-ab-chips a, .vn-ab-chips span { padding: 0.8rem 1.4rem; border-radius: 10rem; background: var(--ab-soft); font-size: max(1.4rem, 13px); transition: background .2s, color .2s; }
.vn-ab .vn-ab-chips a:hover { background: #EAF3FF; color: var(--ab-blue); }
.vn-ab .vn-ab-chips .vn-ab-chips__more { background: none; font-weight: 600; color: var(--ab-blue); }
.vn-ab-tile--why { grid-column: span 4; border-color: #131313; background: #131313; color: #fff; }
.vn-ab-why { display: flex; flex-direction: column; gap: 1.4rem; margin: 2rem 0 0; padding: 0; list-style: none; }
.vn-ab-why li { display: flex; align-items: flex-start; gap: 1.2rem; font-size: max(1.6rem, 14px); line-height: 1.4; }
.vn-ab-check { flex: none; display: inline-flex; align-items: center; justify-content: center; width: max(2.4rem, 22px); height: max(2.4rem, 22px); border-radius: 50%; background: var(--ab-grad); color: #04121F; }
.vn-ab-tile--services { grid-column: span 7; }
.vn-ab-services { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin-top: 2rem; }
.vn-ab-services a { display: grid; grid-template-columns: auto 1fr auto; column-gap: 1.2rem; row-gap: 0.2rem; align-items: center; padding: 1.6rem; border-radius: 1.6rem; background: var(--ab-soft); transition: background .2s; }
.vn-ab-services a:hover { background: #EAF3FF; }
.vn-ab-services__n { grid-row: span 2; font-size: max(1.3rem, 12px); font-weight: 700; color: var(--ab-blue); }
.vn-ab-services b { font-size: max(1.6rem, 14px); }
.vn-ab-services a > span:not(.vn-ab-services__n) { grid-column: 2; font-size: max(1.3rem, 12px); color: var(--ab-muted); }
.vn-ab-services svg { grid-column: 3; grid-row: 1 / span 2; color: var(--ab-blue); transition: transform .2s; }
.vn-ab-services a:hover svg { transform: translateX(4px); }
.vn-ab-tile--place { grid-column: span 5; display: flex; flex-direction: column; justify-content: center; gap: 0.6rem; }
.vn-ab-tile--place b { font-size: max(2rem, 17px); line-height: 1.3; }
.vn-ab-tile--place > span:not(.vn-ab-ico) { font-size: max(1.5rem, 13px); color: var(--ab-muted); }
.vn-ab-place__links { display: flex; flex-wrap: wrap; gap: 1.6rem; margin-top: 1rem; }
.vn-ab .vn-ab-place__links a { display: inline-flex; align-items: center; gap: 0.6rem; font-size: max(1.5rem, 14px); font-weight: 600; color: var(--ab-blue); }

/* Большой CTA */
.vn-ab-cta { position: relative; isolation: isolate; display: grid; grid-template-columns: 1.3fr 1fr; align-items: center; gap: 3.2rem; margin-top: max(6.4rem, 40px); padding: max(6.4rem, 32px) max(6.4rem, 24px); border-radius: max(3.2rem, 20px); overflow: hidden; background: #131313; color: #fff; }
.vn-ab-cta::before { content: ""; position: absolute; inset: 0; z-index: -2; background: radial-gradient(50% 90% at 0% 100%, rgba(16, 120, 245, .35), transparent 60%), radial-gradient(40% 60% at 100% 0%, rgba(6, 242, 240, .15), transparent 60%); }
.vn-ab-cta__orbit { position: absolute; bottom: -45%; left: -6%; z-index: -1; width: max(52rem, 280px); opacity: .3; pointer-events: none; }
.vn-ab-cta__title { margin: 0 0 1.6rem; font-size: max(5.6rem, 30px); font-weight: 800; line-height: 1.05; letter-spacing: -0.025em; color: #fff; }
.vn-ab-cta p { max-width: 56rem; margin: 0; font-size: max(1.8rem, 15px); line-height: 1.5; color: rgba(255, 255, 255, .75); }
.vn-ab-cta__actions { justify-self: end; display: flex; flex-direction: column; align-items: flex-start; gap: 1.2rem; }
.vn-ab .vn-ab-cta__wa { padding-left: 0.4rem; font-size: max(1.5rem, 14px); font-weight: 600; color: var(--ab-cyan); }
.vn-ab-extra { margin-top: max(6.4rem, 40px); }
@media (prefers-reduced-motion: reduce) { .vn-ab-hero__orbit { animation: none; } .vn-ab-tile, .vn-ab-tile--photo img { transition: none; } }
@media (max-width: 1024px) {
	.vn-ab-bento { grid-template-columns: repeat(6, minmax(0, 1fr)); }
	.vn-ab-tile--story, .vn-ab-tile--photo-main, .vn-ab-tile--clients, .vn-ab-tile--cats, .vn-ab-tile--services, .vn-ab-tile--place { grid-column: span 6; }
	.vn-ab-tile--photo, .vn-ab-tile--brand, .vn-ab-tile--why { grid-column: span 3; }
	.vn-ab-tile--story { min-height: 0; }
	.vn-ab-stats { grid-template-columns: 1fr 1fr; row-gap: 2.4rem; }
	.vn-ab-stat:nth-child(3) { padding-left: 0; border-left: 0; }
	.vn-ab-hero__orbit { width: 60%; right: -18%; opacity: .4; }
	.vn-ab-cta { grid-template-columns: 1fr; }
	.vn-ab-cta__actions { justify-self: start; }
}
@media (max-width: 640px) {
	.vn-ab-hero { padding: 32px 20px 24px; }
	.vn-ab-hero__title { font-size: 32px; overflow-wrap: anywhere; }
	.vn-ab-hero__lead { font-size: 16px; }
	.vn-ab-stat dt { font-size: 30px; }
	.vn-ab-stat { padding-right: 12px; }
	.vn-ab-stat + .vn-ab-stat { padding-left: 12px; }
	.vn-ab-h2 { font-size: 24px; }
	.vn-ab-tile__year { font-size: 64px; }
	.vn-ab-tile__big { font-size: 26px; }
	.vn-ab-cta { padding: 32px 20px; }
	.vn-ab-cta__title { font-size: 30px; }
	.vn-ab-bento > * { grid-column: 1 / -1; }
	.vn-ab-tile--photo { min-height: 220px; }
	.vn-ab-services { grid-template-columns: 1fr; }
	.vn-ab-hero__btns .vn-ab-btn, .vn-ab-cta__actions .vn-ab-btn { width: 100%; justify-content: center; }
	.vn-ab-cta__actions { align-self: stretch; align-items: stretch; }
}

/* =====================================================================
   Мега-меню каталога (vn-mega-) — /include/vn_mega_menu.php
   ===================================================================== */
.vn-mega[hidden], .vn-mega__pane[hidden] { display: none; }
.vn-mega { position: fixed; inset: 0; z-index: 10050; }
.vn-mega a { color: inherit; text-decoration: none; }
.vn-mega__backdrop { position: absolute; inset: 0; background: rgba(15, 23, 42, .35); }
.vn-mega__panel { position: absolute; top: var(--vn-mega-top, 120px); left: 50%; display: grid; grid-template-columns: max(32rem, 240px) minmax(0, 1fr); width: min(150rem, calc(100% - 32px)); max-height: calc(100vh - var(--vn-mega-top, 120px) - 24px); border-radius: max(2.4rem, 16px); overflow: hidden; background: #fff; box-shadow: 0 2.4rem 6.4rem rgba(16, 24, 40, .18); color: #131313; transform: translateX(-50%); animation: vnMegaIn .18s ease; }
@keyframes vnMegaIn { from { opacity: 0; transform: translate(-50%, -8px); } to { opacity: 1; transform: translate(-50%, 0); } }
.vn-mega__mhead { display: none; }
.vn-mega__cats { display: flex; flex-direction: column; gap: 0.2rem; padding: 1.6rem; overflow-y: auto; background: #F6F8FB; }
.vn-mega__cat { display: grid; grid-template-columns: auto 1fr auto auto; align-items: center; gap: 1.2rem; padding: 0.8rem 1rem; border-radius: 1.2rem; font-size: max(1.5rem, 14px); transition: background .15s, box-shadow .15s; }
.vn-mega__cat:hover, .vn-mega__cat.is-active { background: #fff; box-shadow: 0 1px 3px rgba(16, 24, 40, .08); }
.vn-mega__cat.is-active { font-weight: 600; }
.vn-mega__cat svg { color: #9AA5B5; }
.vn-mega__cat.is-active svg { color: #1078F5; }
.vn-mega__thumb { display: flex; align-items: center; justify-content: center; width: max(4rem, 34px); height: max(4rem, 34px); border-radius: 1rem; overflow: hidden; background: #fff; }
.vn-mega__thumb img { max-width: 85%; max-height: 85%; object-fit: contain; }
.vn-mega__cnt { font-size: max(1.2rem, 12px); color: #8A94A6; }
.vn-mega .vn-mega__all { margin-top: auto; padding: 1.2rem 1rem 0.4rem; font-size: max(1.4rem, 13px); font-weight: 600; color: #1078F5; }
.vn-mega__body { padding: max(2.8rem, 20px) max(3.2rem, 20px); overflow-y: auto; }
.vn-mega__head { display: flex; align-items: baseline; gap: 1.2rem; margin-bottom: 2rem; }
.vn-mega__title { display: inline-flex; align-items: center; gap: 0.4rem; font-size: max(2.6rem, 20px); font-weight: 800; letter-spacing: -0.01em; }
.vn-mega .vn-mega__title:hover { color: #1078F5; }
.vn-mega__head > span { font-size: max(1.4rem, 13px); color: #8A94A6; }
.vn-mega__cols { display: grid; grid-template-columns: 1fr 1.3fr max(26rem, 210px); align-items: start; gap: max(3.2rem, 20px); }
.vn-mega__label { margin: 0 0 1rem; font-size: max(1.2rem, 11px); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #8A94A6; }
.vn-mega__links { display: flex; flex-direction: column; }
.vn-mega__links .vn-mega__label:not(:first-child) { margin-top: 1.6rem; }
.vn-mega__links a { display: flex; justify-content: space-between; gap: 1rem; padding: 0.6rem 0; font-size: max(1.5rem, 14px); }
.vn-mega__links a span { font-size: max(1.2rem, 12px); color: #8A94A6; }
.vn-mega .vn-mega__links a:hover { color: #1078F5; }
.vn-mega .vn-mega__more { margin-top: 1rem; font-weight: 600; color: #1078F5; }
.vn-mega__top { display: flex; flex-direction: column; gap: 1rem; }
.vn-mega__prod { display: grid; grid-template-columns: max(8rem, 64px) minmax(0, 1fr); align-items: center; gap: 1.2rem; padding: 1rem; border: 1px solid #E3E7ED; border-radius: 1.4rem; transition: border-color .2s, box-shadow .2s; }
.vn-mega__prod:hover { border-color: transparent; box-shadow: 0 0.8rem 2.4rem rgba(16, 24, 40, .1); }
.vn-mega__prod-img { display: flex; align-items: center; justify-content: center; aspect-ratio: 1; }
.vn-mega__prod-img img { max-width: 100%; max-height: 100%; object-fit: contain; }
.vn-mega__prod-body { display: flex; flex-direction: column; gap: 0.4rem; min-width: 0; }
.vn-mega__prod-body b { font-size: max(1.6rem, 14px); }
.vn-mega__prod-body span { display: -webkit-box; overflow: hidden; font-size: max(1.3rem, 12px); line-height: 1.35; color: #5B6576; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.vn-mega__promo { display: flex; flex-direction: column; gap: 1rem; padding: max(2.4rem, 18px); border-radius: 1.8rem; background: #131313 url("/local/templates/gianit/assets/img/vn-orbit.svg") right -30% bottom -35% / 75% no-repeat; color: #fff; }
.vn-mega__promo b { font-size: max(2rem, 17px); line-height: 1.2; }
.vn-mega__promo p { margin: 0; font-size: max(1.4rem, 13px); line-height: 1.45; color: rgba(255, 255, 255, .75); }
.vn-mega .vn-mega__promo-btn { align-self: flex-start; margin-top: 0.6rem; padding: 1rem 1.8rem; border-radius: 10rem; background: linear-gradient(120deg, #1078F5, #06F2F0); font-size: max(1.4rem, 13px); font-weight: 600; color: #04121F; }
.vn-mega .vn-mega__promo-link { font-size: max(1.3rem, 12px); color: #06F2F0; }
@media (max-width: 1280px) { .vn-mega__cols { grid-template-columns: 1fr 1.2fr; } .vn-mega__promo { grid-column: 1 / -1; } }
@media (max-width: 1024px) {
	.vn-mega__panel { top: 0; left: 0; grid-template-columns: 1fr; grid-template-rows: auto minmax(0, 1fr); width: 100%; height: 100%; max-height: none; border-radius: 0; transform: none; animation: none; }
	.vn-mega__mhead { display: flex; justify-content: space-between; align-items: center; padding: 16px 20px; border-bottom: 1px solid #E3E7ED; font-size: 18px; }
	.vn-mega__close { padding: 4px 8px; border: 0; background: none; font-size: 20px; cursor: pointer; }
	.vn-mega__cats { background: #fff; }
	.vn-mega__body { display: none; }
}

/* =====================================================================
   Услуги (vn-sv-; общие кнопки, первый экран и CTA — vn-ab-). Тест — /test/services/
   ===================================================================== */
.vn-sv-listhero .vn-ab-hero__copy { max-width: 92rem; }
.vn-sv-block { margin-top: max(8rem, 48px); }
.vn-sv-head { margin-bottom: max(3.2rem, 20px); }
.vn-sv-head .vn-ab-h2 { margin-bottom: 0; }
.vn-sv-head--row { display: flex; justify-content: space-between; align-items: flex-end; gap: 2rem; }
.vn-sv .vn-sv-all { display: inline-flex; align-items: center; gap: 0.6rem; font-size: max(1.5rem, 14px); font-weight: 600; color: var(--ab-blue); white-space: nowrap; }

/* Карточки услуг */
.vn-sv-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: max(1.6rem, 12px); margin-top: max(1.6rem, 12px); }
.vn-sv-card { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) 38%; min-height: max(38rem, 280px); border: 1px solid var(--ab-line); border-radius: max(2.4rem, 18px); overflow: hidden; background: #fff; transition: transform .25s, box-shadow .25s; }
.vn-sv-card:hover { transform: translateY(-3px); box-shadow: 0 1.6rem 4rem rgba(16, 24, 40, .1); }
.vn-sv-card__body { display: flex; flex-direction: column; padding: max(3.2rem, 22px); }
.vn-sv-card__n { font-size: max(1.4rem, 13px); font-weight: 700; color: var(--ab-blue); }
.vn-sv-card__title { margin: 1.2rem 0 0.8rem; font-size: max(2.8rem, 21px); font-weight: 800; line-height: 1.15; letter-spacing: -0.01em; color: var(--ab-ink); }
.vn-sv-card__short { margin: 0; font-size: max(1.6rem, 14px); color: var(--ab-muted); }
.vn-sv-card__list { display: flex; flex-direction: column; gap: 0.8rem; margin: 2.4rem 0 0; padding: 0; list-style: none; }
.vn-sv-card__list li { display: flex; align-items: flex-start; gap: 0.8rem; font-size: max(1.5rem, 14px); line-height: 1.35; }
.vn-sv-card__list svg { flex: none; margin-top: 0.1rem; color: var(--ab-blue); }
.vn-sv-card__more { display: inline-flex; align-items: center; gap: 0.6rem; margin-top: auto; padding-top: 2.4rem; font-size: max(1.5rem, 14px); font-weight: 600; color: var(--ab-blue); }
.vn-sv-card__more svg { transition: transform .2s; }
.vn-sv-card:hover .vn-sv-card__more svg { transform: translateX(4px); }
.vn-sv-card__img { position: relative; overflow: hidden; }
.vn-sv-card__img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .6s; }
.vn-sv-card:hover .vn-sv-card__img img { transform: scale(1.05); }
.vn-ab .vn-sv-card--dark { color: #fff; }
.vn-sv-card--dark { grid-template-columns: 1fr; border-color: #131313; background: #131313 url("/local/templates/gianit/assets/img/vn-orbit.svg") right -12% bottom -30% / 52% no-repeat; color: #fff; }
.vn-sv-card--dark .vn-sv-card__title { color: #fff; }
.vn-sv-card--dark .vn-sv-card__short { color: rgba(255, 255, 255, .7); }
.vn-sv-card--dark .vn-sv-card__n, .vn-sv-card--dark .vn-sv-card__more { color: var(--ab-cyan); }
.vn-sv-chips { display: flex; flex-wrap: wrap; gap: 0.8rem; margin-top: 2.4rem; max-width: 52rem; }
.vn-sv-chips span { padding: 0.7rem 1.3rem; border: 1px solid rgba(255, 255, 255, .18); border-radius: 10rem; background: rgba(255, 255, 255, .06); font-size: max(1.4rem, 13px); }
.vn-sv-chips--light span { border-color: transparent; background: #fff; color: var(--ab-ink); }
.vn-sv-grid--others { grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: 0; }
.vn-sv-grid--others .vn-sv-card { grid-template-columns: 1fr; grid-template-rows: max(18rem, 140px) auto; min-height: 0; }
.vn-sv-grid--others .vn-sv-card__img { grid-row: 1; }
.vn-sv-grid--others .vn-sv-card__body { grid-row: 2; }
.vn-sv-grid--others .vn-sv-card--dark { grid-template-rows: auto; background-size: 70%; }
.vn-sv-grid--others .vn-sv-card__list { display: none; }

/* Преимущества */
.vn-sv-why { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: max(1.6rem, 12px); }
.vn-sv-why__item { padding: max(2.8rem, 20px); border-radius: max(2.4rem, 18px); background: var(--ab-soft); }
.vn-sv-why__item b { display: block; font-size: max(1.8rem, 16px); }
.vn-sv-why__item p { margin: 0.6rem 0 0; font-size: max(1.5rem, 14px); line-height: 1.5; color: var(--ab-muted); }

/* Шаги */
.vn-sv-steps { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: max(1.6rem, 12px); margin: 0; padding: 0; list-style: none; }
.vn-sv-step { position: relative; padding: max(2.8rem, 20px); border: 1px solid var(--ab-line); border-radius: max(2.4rem, 18px); background: #fff; }
.vn-sv-step:not(:last-child)::after { content: ""; position: absolute; top: calc(max(2.8rem, 20px) + max(2.4rem, 20px)); left: calc(max(2.8rem, 20px) + max(4.8rem, 40px) + 1.2rem); right: -1.6rem; height: 2px; background: repeating-linear-gradient(90deg, #BFD9FC 0 6px, transparent 6px 12px); }
.vn-sv-step__n { display: inline-flex; align-items: center; justify-content: center; width: max(4.8rem, 40px); height: max(4.8rem, 40px); margin-bottom: 2rem; border-radius: 50%; background: var(--ab-grad); font-size: max(1.8rem, 16px); font-weight: 800; color: #04121F; }
.vn-sv-step b { display: block; font-size: max(1.8rem, 16px); }
.vn-sv-step p { margin: 0.6rem 0 0; font-size: max(1.5rem, 14px); line-height: 1.5; color: var(--ab-muted); }

/* Страница услуги */
.vn-sv-hero { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: max(1.6rem, 12px); }
.vn-sv-hero__main { padding-bottom: max(6.4rem, 32px); }
.vn-sv-hero__title { font-size: max(5.6rem, 30px); }
.vn-sv-hero__main .vn-ab-hero__orbit { width: min(40rem, 45%); opacity: .55; }
.vn-sv-hero__img { position: relative; min-height: max(40rem, 260px); margin: 0; border-radius: max(3.2rem, 20px); overflow: hidden; }
.vn-sv-hero__img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.vn-sv-hero__chips { display: flex; flex-direction: column; justify-content: flex-end; padding: max(4rem, 24px); border-radius: max(3.2rem, 20px); background: var(--ab-grad); }
.vn-sv-hero__chips .vn-ab-eyebrow { color: #04121F; }
.vn-sv-items { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: max(1.6rem, 12px); }
.vn-sv-items--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.vn-sv-item { padding: max(3.2rem, 22px); border-radius: max(2.4rem, 18px); background: var(--ab-soft); transition: background .2s; }
.vn-sv-item:hover { background: #EAF3FF; }
.vn-sv-item__n { font-size: max(4rem, 28px); font-weight: 800; line-height: 1; background: var(--ab-grad); -webkit-background-clip: text; background-clip: text; color: transparent; }
.vn-sv-item h3 { margin: 2.4rem 0 0.8rem; font-size: max(2rem, 17px); line-height: 1.25; color: var(--ab-ink); }
.vn-sv-item p { margin: 0; font-size: max(1.5rem, 14px); line-height: 1.55; color: var(--ab-muted); }
.vn-sv-outro { margin: max(2.4rem, 16px) 0 0; font-size: max(1.7rem, 15px); color: var(--ab-ink); }
.vn-sv .vn-sv-outro a { display: inline-flex; align-items: center; gap: 0.6rem; font-weight: 600; color: var(--ab-blue); }

/* FAQ: заголовок слева, вопросы справа */
.vn-sv-faqwrap { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: max(3.2rem, 20px); align-items: start; }
.vn-sv-faqwrap .vn-sv-head { position: sticky; top: 12rem; }
.vn-sv-faq { display: flex; flex-direction: column; gap: 1rem; }
.vn-sv-faq__item { border: 1px solid var(--ab-line); border-radius: max(1.8rem, 14px); background: #fff; transition: border-color .2s; }
.vn-sv-faq__item[open] { border-color: #BFD9FC; }
.vn-sv-faq__item summary { display: flex; justify-content: space-between; align-items: center; gap: 2rem; padding: max(2.2rem, 16px) max(2.8rem, 18px); font-size: max(1.8rem, 16px); font-weight: 600; list-style: none; cursor: pointer; }
.vn-sv-faq__item summary::-webkit-details-marker { display: none; }
.vn-sv-faq__plus { flex: none; display: inline-flex; color: var(--ab-blue); transition: transform .25s; }
.vn-sv-faq__item[open] .vn-sv-faq__plus { transform: rotate(45deg); }
.vn-sv-faq__item p { margin: 0; padding: 0 max(2.8rem, 18px) max(2.4rem, 16px); font-size: max(1.6rem, 14px); line-height: 1.6; color: var(--ab-muted); }

@media (max-width: 1024px) {
	.vn-sv-grid, .vn-sv-grid--others, .vn-sv-hero, .vn-sv-faqwrap { grid-template-columns: 1fr; }
	.vn-sv-faqwrap .vn-sv-head { position: static; }
	.vn-sv-why, .vn-sv-steps, .vn-sv-items, .vn-sv-items--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.vn-sv-step::after { display: none; }
}
@media (max-width: 640px) {
	.vn-sv-card { grid-template-columns: 1fr; grid-template-rows: auto 200px; }
	.vn-sv-card__img { grid-row: 2; }
	.vn-sv-card--dark { grid-template-rows: auto; }
	.vn-sv-why, .vn-sv-steps, .vn-sv-items, .vn-sv-items--4 { grid-template-columns: 1fr; }
	.vn-sv-hero__title { font-size: 30px; }
	.vn-sv-head--row { flex-direction: column; align-items: flex-start; }
	.vn-sv-faq__item summary { font-size: 16px; }
}

/* Услуги: доп. содержимое страницы («Российское ПО» — /include/services/rossijskoe-po.php) в новом стиле */
.vn-sv-legacy h2 { margin: max(6.4rem, 40px) 0 1.2rem; font-size: max(3.6rem, 24px); font-weight: 800; line-height: 1.1; letter-spacing: -0.02em; color: var(--ab-ink); }
.vn-sv-legacy > p { max-width: 90rem; margin: 0 0 2.4rem; font-size: max(1.6rem, 14px); line-height: 1.6; color: var(--ab-muted); }
.vn-sv-legacy > p strong { color: var(--ab-ink); }
.vn-sv-legacy .vn-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: max(1.6rem, 12px); margin: 0 0 2.4rem; }
.vn-sv-legacy .vn-stat { padding: max(2.8rem, 20px); border-radius: max(2.4rem, 18px); background: #131313; }
.vn-sv-legacy .vn-stat__value { font-size: max(4rem, 28px); font-weight: 800; line-height: 1; letter-spacing: -0.02em; background: var(--ab-grad); -webkit-background-clip: text; background-clip: text; color: transparent; }
.vn-sv-legacy .vn-stat__label { margin-top: 0.8rem; font-size: max(1.5rem, 13px); color: rgba(255, 255, 255, .7); }
.vn-sv-legacy .vn-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(max(30rem, 240px), 1fr)); gap: max(1.6rem, 12px); margin-bottom: 2.4rem; }
.vn-sv-legacy .vn-card { display: flex; flex-direction: column; padding: max(2.8rem, 20px); border: 0; border-radius: max(2.4rem, 18px); background: var(--ab-soft); box-shadow: none; transition: background .2s; }
.vn-sv-legacy .vn-card:hover { background: #EAF3FF; }
.vn-sv-legacy .vn-card__title { margin-bottom: 0.8rem; font-size: max(2rem, 17px); font-weight: 700; line-height: 1.25; color: var(--ab-ink); }
.vn-sv-legacy .vn-card p { margin: 0 0 1.2rem; font-size: max(1.5rem, 14px); line-height: 1.55; color: var(--ab-muted); }
.vn-sv-legacy .vn-card ul { margin: 0 0 1.6rem; padding: 0; list-style: none; }
.vn-sv-legacy .vn-card li { position: relative; padding-left: 2rem; margin-top: 0.6rem; font-size: max(1.5rem, 14px); color: var(--ab-ink); }
.vn-sv-legacy .vn-card li::before { content: ""; position: absolute; top: 0.7em; left: 0.4rem; width: 0.8rem; height: 0.8rem; border-radius: 50%; background: var(--ab-grad); transform: translateY(-50%); }
.vn-sv-legacy .vn-card > p:last-child { margin: auto 0 0; padding-top: 0.8rem; }
.vn-sv-legacy .vn-card__tags { display: flex; flex-wrap: wrap; gap: 0.6rem; margin-bottom: 1.6rem; }
.vn-sv-legacy .vn-card__tag { padding: 0.4rem 1rem; border-radius: 10rem; background: #fff; font-size: max(1.3rem, 12px); color: var(--ab-blue); }
.vn-sv-legacy .btn--primary { border-radius: 10rem; background: var(--ab-grad); color: #04121F !important; font-weight: 600; }
.vn-sv-legacy .btn--ghost { border-radius: 10rem; }
.vn-sv-legacy .vn-faq { display: flex; flex-direction: column; gap: 1rem; max-width: 110rem; }
.vn-sv-legacy .vn-faq details { border: 1px solid var(--ab-line); border-radius: max(1.8rem, 14px); background: #fff; }
.vn-sv-legacy .vn-faq details[open] { border-color: #BFD9FC; }
.vn-sv-legacy .vn-faq summary { padding: max(2.2rem, 16px) max(2.8rem, 18px); font-size: max(1.8rem, 16px); font-weight: 600; cursor: pointer; }
.vn-sv-legacy .vn-faq details p { margin: 0; padding: 0 max(2.8rem, 18px) max(2.4rem, 16px); font-size: max(1.6rem, 14px); line-height: 1.6; color: var(--ab-muted); }
@media (max-width: 1024px) { .vn-sv-legacy .vn-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .vn-sv-legacy .vn-stat { padding: 18px 16px; } .vn-sv-legacy .vn-stat__value { font-size: 24px; white-space: nowrap; } .vn-sv-legacy h2 { font-size: 24px; } }

/* =====================================================================
   Реквизиты (vn-rq-) — /about/rekvizity/, /include/vn_rekvizity.php
   ===================================================================== */
.vn-rq-card { position: relative; isolation: isolate; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 3.2rem; padding: max(5.6rem, 32px) max(5.6rem, 24px); border-radius: max(3.2rem, 20px); overflow: hidden; background: #131313; color: #fff; }
.vn-rq-card::before { content: ""; position: absolute; inset: 0; z-index: -2; background: radial-gradient(50% 90% at 100% 0%, rgba(16, 120, 245, .35), transparent 60%); }
.vn-rq-card__orbit { position: absolute; top: -30%; right: -6%; z-index: -1; width: max(40rem, 240px); opacity: .35; pointer-events: none; }
.vn-rq-card__title { margin: 1.2rem 0 0; font-size: max(5.6rem, 30px); font-weight: 800; line-height: 1.05; letter-spacing: -0.025em; color: #fff; }
.vn-rq-card__lead { max-width: 60rem; margin: 1.6rem 0 0; font-size: max(1.8rem, 15px); line-height: 1.5; color: rgba(255, 255, 255, .72); }
.vn-rq-card__actions { display: flex; flex-direction: column; align-items: stretch; gap: 1rem; min-width: max(26rem, 220px); }
.vn-rq .vn-rq-card__actions button.vn-ab-btn { justify-content: center; border: 0; cursor: pointer; font-family: inherit; }
.vn-rq .vn-rq-card__actions .vn-ab-btn--glass { border: 1px solid rgba(255, 255, 255, .22); }
.vn-rq .vn-rq-card__link { display: inline-flex; align-items: center; justify-content: center; gap: 0.6rem; padding-top: 0.4rem; font-size: max(1.5rem, 14px); font-weight: 600; color: var(--ab-cyan); }
.vn-rq-groups { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: max(1.6rem, 12px); margin-top: max(1.6rem, 12px); }
.vn-rq-group { padding: max(3.2rem, 20px); border: 1px solid var(--ab-line); border-radius: max(2.4rem, 18px); background: #fff; }
.vn-rq-group:first-child { grid-row: span 2; }
.vn-rq-group__title { margin: 0 0 1.2rem; font-size: max(2.2rem, 18px); font-weight: 800; color: var(--ab-ink); }
.vn-rq-list { margin: 0; }
.vn-rq-row { display: grid; grid-template-columns: minmax(0, 38%) minmax(0, 1fr); gap: 1.6rem; align-items: center; padding: 1.4rem 0; border-top: 1px solid var(--ab-line); }
.vn-rq-row dt { font-size: max(1.4rem, 13px); color: var(--ab-muted); }
.vn-rq-row dd { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin: 0; }
.vn-rq-row__value { min-width: 0; font-size: max(1.6rem, 14px); font-weight: 500; line-height: 1.4; overflow-wrap: anywhere; color: var(--ab-ink); }
.vn-rq-row__value--num { font-variant-numeric: tabular-nums; letter-spacing: .02em; font-weight: 600; }
.vn-rq .vn-rq-row__value a { color: var(--ab-blue); }
.vn-rq .vn-rq-copy { flex: none; display: inline-flex; align-items: center; justify-content: center; width: max(3.6rem, 32px); height: max(3.6rem, 32px); padding: 0; border: 0; border-radius: 1rem; background: var(--ab-soft); color: var(--ab-muted); cursor: pointer; transition: background .2s, color .2s; }
.vn-rq .vn-rq-copy:hover { background: #EAF3FF; color: var(--ab-blue); }
.vn-rq .vn-rq-copy.is-done { background: #E8F7EE; color: #16A34A; }
.vn-rq-row:hover .vn-rq-copy { color: var(--ab-blue); }
.vn-rq-toast { position: fixed; left: 50%; bottom: 3.2rem; z-index: 10100; padding: 1.2rem 2rem; border-radius: 10rem; background: #131313; color: #fff; font-size: max(1.5rem, 14px); box-shadow: 0 1rem 3rem rgba(0, 0, 0, .25); transform: translateX(-50%); animation: vnToastIn .2s ease; }
.vn-rq-toast[hidden] { display: none; }
@keyframes vnToastIn { from { opacity: 0; transform: translate(-50%, 8px); } to { opacity: 1; transform: translate(-50%, 0); } }
@media (max-width: 1024px) {
	.vn-rq-card { grid-template-columns: 1fr; align-items: start; }
	.vn-rq-card__actions { flex-direction: row; flex-wrap: wrap; }
	.vn-rq-groups { grid-template-columns: 1fr; }
	.vn-rq-group:first-child { grid-row: auto; }
}
@media (max-width: 640px) {
	.vn-rq-card { padding: 32px 20px; }
	.vn-rq-card__title { font-size: 30px; }
	.vn-rq-card__actions { flex-direction: column; }
	.vn-rq-row { grid-template-columns: 1fr; gap: 0.4rem; }
}
@media print {
	.header, .header_fixed, .header_mobile, .footer, .vn-rq-card__actions, .vn-rq-copy, .breadcrumbs, [class*=breadcrumb], .cookie-wall { display: none !important; }
	.vn-rq-card { background: none; color: #000; padding: 0 0 16px; }
	.vn-rq-card__title { color: #000; }
	.vn-rq-card__orbit, .vn-rq-card::before { display: none; }
}

/* =====================================================================
   Кейсы (vn-cs-; общие vn-ab-, vn-sv-head) — /cases/, шаблон news «vn_cases»
   ===================================================================== */
.vn-cs-list { margin-top: max(1.6rem, 12px); }
.vn-cs-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: max(1.6rem, 12px); }
.vn-cs-list .vn-cs-grid { margin-top: max(1.6rem, 12px); }
.vn-cs-card { display: flex; flex-direction: column; border: 1px solid var(--ab-line); border-radius: max(2.4rem, 18px); overflow: hidden; background: #fff; transition: transform .25s, box-shadow .25s; }
.vn-cs-card:hover { transform: translateY(-3px); box-shadow: 0 1.6rem 4rem rgba(16, 24, 40, .1); }
.vn-cs-card__img { position: relative; display: block; aspect-ratio: 16 / 10; overflow: hidden; background: var(--ab-soft); }
.vn-cs-card__img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .6s; }
.vn-cs-card:hover .vn-cs-card__img img { transform: scale(1.05); }
.vn-cs-card__body { display: flex; flex: 1; flex-direction: column; gap: 0.8rem; padding: max(2.4rem, 18px); }
.vn-cs-card__date { align-self: flex-start; padding: 0.4rem 1rem; border-radius: 10rem; background: #EAF3FF; font-size: max(1.3rem, 12px); font-weight: 600; color: var(--ab-blue); }
.vn-cs-card__title { font-size: max(2rem, 17px); font-weight: 800; line-height: 1.25; letter-spacing: -0.01em; color: var(--ab-ink); }
.vn-cs-card__text { display: -webkit-box; overflow: hidden; font-size: max(1.5rem, 14px); line-height: 1.55; color: var(--ab-muted); -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
.vn-cs-card__more { display: inline-flex; align-items: center; gap: 0.6rem; margin-top: auto; padding-top: 0.8rem; font-size: max(1.5rem, 14px); font-weight: 600; color: var(--ab-blue); }
.vn-cs-card__more svg { transition: transform .2s; }
.vn-cs-card:hover .vn-cs-card__more svg { transform: translateX(4px); }
.vn-cs-card--feature { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); min-height: max(46rem, 300px); }
.vn-cs-card--feature .vn-cs-card__img { aspect-ratio: auto; }
.vn-cs-card--feature .vn-cs-card__body { justify-content: center; gap: 1.4rem; padding: max(4.8rem, 24px); }
.vn-cs-card--feature .vn-cs-card__title { font-size: max(3.6rem, 24px); line-height: 1.1; }
.vn-cs-card--feature .vn-cs-card__text { font-size: max(1.7rem, 15px); -webkit-line-clamp: 5; }
.vn-cs-card--feature .vn-cs-card__more { margin-top: 1.2rem; }
.vn-cs-pager { margin-top: 2.4rem; }
.vn-cs .vn-ab-cta { margin-top: max(6.4rem, 40px); }

/* Страница кейса */
.vn-cs-dhero { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: max(1.6rem, 12px); }
.vn-cs-dhero--noimg { grid-template-columns: 1fr; }
.vn-cs-dhero__main { padding-bottom: max(5.6rem, 32px); }
.vn-cs-dhero__main .vn-ab-hero__orbit { width: min(36rem, 42%); opacity: .5; }
.vn-cs-dhero__title { font-size: max(4.4rem, 26px); line-height: 1.1; }
.vn-cs-dhero__img { position: relative; min-height: max(40rem, 240px); margin: 0; border-radius: max(3.2rem, 20px); overflow: hidden; background: var(--ab-soft); }
.vn-cs-dhero__img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.vn-cs-body { display: grid; grid-template-columns: minmax(0, 1fr) max(36rem, 280px); gap: max(4.8rem, 24px); align-items: start; margin-top: max(5.6rem, 32px); }
.vn-cs-article { max-width: 86rem; font-size: max(1.7rem, 15px); line-height: 1.7; color: #2B3443; }
.vn-cs-article > *:first-child { margin-top: 0; }
.vn-cs-article p { margin: 0 0 1.6rem; }
.vn-cs-article h2, .vn-cs-article h3 { margin: 3.6rem 0 1.2rem; font-size: max(2.6rem, 20px); font-weight: 800; line-height: 1.2; letter-spacing: -0.01em; color: var(--ab-ink); }
.vn-cs-article ul, .vn-cs-article ol { margin: 0 0 2rem; padding: 0; list-style: none; }
.vn-cs-article li { position: relative; margin-top: 0.8rem; padding-left: 2.6rem; }
.vn-cs-article ul li::before { content: ""; position: absolute; top: 0.85em; left: 0.4rem; width: 0.9rem; height: 0.9rem; border-radius: 50%; background: var(--ab-grad); transform: translateY(-50%); }
.vn-cs-article ol { counter-reset: vncs; }
.vn-cs-article ol li { counter-increment: vncs; }
.vn-cs-article ol li::before { content: counter(vncs); position: absolute; left: 0; font-weight: 800; color: var(--ab-blue); }
.vn-cs-article strong { color: var(--ab-ink); }
.vn-cs-article a { color: var(--ab-blue); }
.vn-cs-article img { max-width: 100%; height: auto; border-radius: 1.6rem; }
.vn-cs-mark { display: inline-block; margin-right: 0.8rem; padding: 0.3rem 1.1rem; border-radius: 10rem; background: #EAF3FF; font-size: max(1.3rem, 12px); font-weight: 700; letter-spacing: .04em; text-transform: uppercase; vertical-align: 0.15em; color: var(--ab-blue); }
.vn-cs-para--hard .vn-cs-mark { background: #FFF1E6; color: #B54708; }
.vn-cs-para--solution .vn-cs-mark, .vn-cs-para--tech .vn-cs-mark { background: #E8F7EE; color: #0F7A3D; }
.vn-cs-para--result { margin-top: 2.8rem !important; padding: max(2.8rem, 20px); border-radius: max(2.4rem, 18px); background: #131313; color: rgba(255, 255, 255, .85); }
.vn-cs-para--result .vn-cs-mark { display: table; margin-bottom: 1.2rem; background: var(--ab-grad); color: #04121F; }
.vn-cs-aside { position: sticky; top: 12rem; display: flex; flex-direction: column; gap: 1.2rem; }
.vn-cs-aside__card { display: flex; flex-direction: column; gap: 1.2rem; padding: max(2.8rem, 20px); border-radius: max(2.4rem, 18px); background: #131313 url("/local/templates/gianit/assets/img/vn-orbit.svg") right -40% bottom -40% / 70% no-repeat; color: #fff; }
.vn-cs-aside__card b { font-size: max(2.2rem, 18px); line-height: 1.2; }
.vn-cs-aside__card p { margin: 0; font-size: max(1.5rem, 14px); line-height: 1.5; color: rgba(255, 255, 255, .75); }
.vn-cs-aside__card .vn-ab-btn { justify-content: center; }
.vn-ab .vn-cs-aside__phone { font-size: max(1.8rem, 16px); font-weight: 700; color: #fff; }
.vn-ab .vn-cs-aside__wa { font-size: max(1.5rem, 14px); font-weight: 600; color: var(--ab-cyan); }
.vn-ab .vn-cs-share { display: inline-flex; align-items: center; justify-content: center; gap: 0.8rem; padding: 1.2rem 1.6rem; border: 1px solid var(--ab-line); border-radius: 10rem; background: #fff; font: inherit; font-size: max(1.4rem, 13px); font-weight: 600; color: var(--ab-ink); cursor: pointer; transition: background .2s; }
.vn-ab .vn-cs-share:hover { background: var(--ab-soft); }
.vn-cs-others { margin-top: max(8rem, 48px); }
@media (max-width: 1024px) {
	.vn-cs-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.vn-cs-card--feature, .vn-cs-dhero, .vn-cs-body { grid-template-columns: 1fr; }
	.vn-cs-card--feature .vn-cs-card__img { aspect-ratio: 16 / 9; }
	.vn-cs-aside { position: static; }
}
@media (max-width: 640px) {
	.vn-cs-grid { grid-template-columns: 1fr; }
	.vn-cs-card--feature .vn-cs-card__body { padding: 20px; }
	.vn-cs-card--feature .vn-cs-card__title { font-size: 22px; }
	.vn-cs-dhero__title { font-size: 26px; }
}

/* Каталог: срок рядом с ценой, без повторяющейся метки поставки. */
.vn-pd-leadtime { display: flex; align-items: flex-start; gap: .8rem; padding: 1.2rem; border-radius: 1rem; background: #F3F5F8; font-size: 1.4rem; line-height: 1.45; }
.vn-pd-leadtime > svg { flex: none; margin-top: .15rem; color: var(--pd-muted); }
.vn-pd-leadtime__text { font-weight: 500; overflow-wrap: anywhere; }
.vn-pd-leadtime__updated { margin-top: .4rem; color: var(--pd-muted); font-size: 1.2rem; }
.vn-pd-price__confirm { margin: 0; font-size: 1.3rem; line-height: 1.45; color: var(--pd-muted); }
.vn-cat-card__date { align-items: flex-start; line-height: 1.45; }
.vn-cat-card__date > svg { flex: none; margin-top: .2rem; }
.vn-mp-card__stock { line-height: 1.4; }

.vn-cat-card__date { font-size: max(1.3rem, 13px); }
.vn-cat-card__meta { overflow-wrap: anywhere; }
.vn-mp-card__stock { color: #64748b; }
@media (max-width: 767px) { .vn-cat-grid:not(.vn-cat-grid--list) { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.vn-cat-grid.vn-cat-grid--list { grid-template-columns: minmax(0, 1fr); }

@media (max-width: 900px) {
  .vn-cat-grid--list .vn-cat-card { grid-template-columns: 11rem minmax(0, 1fr); gap: 1.2rem; }
  .vn-cat-grid--list .vn-cat-card__actions { grid-column: 1 / -1; flex-direction: row; }
  .vn-cat-grid--list .vn-cat-card__actions .vn-cat-btn { flex: 1; width: auto; }
  .vn-cat-grid--list .vn-cat-card__name { -webkit-line-clamp: 3; }
}

/* Цена, НДС и доступные условия покупки. */
.vn-pd-price__unit { font-size: max(1.3rem, 13px); }
.vn-pd-price__comparison { display: flex; flex-wrap: wrap; align-items: baseline; gap: .6rem 1rem; color: var(--pd-muted); font-size: max(1.3rem, 13px); }
.vn-pd-price__comparison del { font-size: max(1.7rem, 16px); text-decoration-thickness: 1px; }
.vn-pd-price__customer-label { font-size: max(1.3rem, 13px); color: var(--pd-muted); margin-bottom: -.8rem; }
.vn-pd-price__buyers { margin: 0; font-size: max(1.3rem, 13px); line-height: 1.45; color: var(--pd-ink); }
.vn-pd-price__pay { font-size: max(1.3rem, 13px); }
.vn-pd-price__pay > svg { flex: none; }
.vn-pd-price__pay > span { min-width: 0; }
.vn-pd-partner-offer { padding: 1.2rem; border: 1px solid #CBE3D5; border-radius: 1rem; background: #F1F8F4; }
.vn-pd-partner-offer__title { font-size: max(1.4rem, 14px); font-weight: 600; }
.vn-pd-partner-offer__prices { display: flex; align-items: baseline; flex-wrap: wrap; gap: .6rem 1.2rem; margin: .6rem 0; }
.vn-pd-partner-offer__prices del { color: var(--pd-muted); font-size: max(1.4rem, 14px); text-decoration-thickness: 1px; }
.vn-pd-partner-offer__prices strong { color: #166534; font-size: max(2.4rem, 23px); font-weight: 750; }
.vn-pd-partner-offer__note { font-size: max(1.2rem, 12px); line-height: 1.4; color: #52665A; }

/* Cart feedback follows the hidden attribute even with component display rules. */
[data-vn-cart-feedback][hidden], [data-vn-cart-link][hidden] { display: none !important; }

/* Product overview: balanced columns, brand and useful summary. */
.vn-pd-top--compact { grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr) minmax(300px, 34rem); gap: 3.2rem; }
.vn-pd-top--compact .vn-pd-gallery { min-width: 0; gap: 1.6rem; }
.vn-pd-top--compact .vn-pd-gallery__main { width: 100%; max-width: none; aspect-ratio: 1.08; max-height: 48rem; }
.vn-pd-top--compact .vn-pd-info { min-width: 0; gap: 2rem; grid-column: auto; grid-row: auto; }
.vn-pd-info .vn-pd-brand { display: flex; align-items: center; gap: 1.6rem; padding: 1.6rem 2rem; border: 1px solid var(--pd-line); background: #fff; }
.vn-pd-info .vn-pd-brand__top { padding: 0; color: var(--pd-muted); font-size: max(1.3rem, 13px); font-weight: 400; }
.vn-pd-info .vn-pd-brand__body { min-width: 0; margin: 0; padding: 0; background: transparent; }
.vn-pd-info .vn-pd-brand__name { font-size: max(2.2rem, 20px); line-height: 1.2; overflow-wrap: anywhere; }
.vn-pd-info .vn-pd-brand__all { display: inline-block; margin-top: .6rem; font-size: max(1.3rem, 13px); line-height: 1.4; }
.vn-pd-summary__title, .vn-pd-help h2 { margin: 0 0 1.2rem; font-size: max(1.7rem, 16px); font-weight: 600; }
.vn-pd-summary__specs { margin: 0 0 1.6rem; font-size: max(1.4rem, 13px); line-height: 1.5; }
.vn-pd-summary__specs > div { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: 1.6rem; padding: .9rem 0; border-bottom: 1px solid var(--pd-line); }
.vn-pd-summary__specs dt { color: var(--pd-muted); }
.vn-pd-summary__specs dd { margin: 0; font-weight: 500; overflow-wrap: anywhere; }
.vn-pd-selection-note { display: flex; gap: 1rem; padding: 1.4rem; border-radius: 1rem; background: #EEF4FF; font-size: max(1.3rem, 13px); line-height: 1.5; }
.vn-pd-selection-note > svg { flex: none; color: var(--color-brand-600); }
.vn-pd-selection-note p { margin: 0; font-size: inherit; line-height: inherit; }
.vn-pd-help { padding: 1.6rem 2rem; border: 1px solid var(--pd-line); border-radius: 1.2rem; }
.vn-pd-help h2 { font-size: max(1.5rem, 15px); margin-bottom: .6rem; }
.vn-pd-help p { margin: 0 0 1rem; color: var(--pd-muted); font-size: max(1.3rem, 13px); line-height: 1.5; }
.vn-pd-info .vn-pd-more { font-size: max(1.4rem, 13px); }
.vn-pd-meta__left { flex-wrap: wrap; }
.vn-pd-side:empty { display: none; }
.vn-pd-body:has(> .vn-pd-side:empty) { grid-template-columns: minmax(0, 1fr); }
@media (min-width: 1025px) and (max-width: 1279px) {
  .vn-pd-top--compact { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 2.4rem; }
  .vn-pd-top--compact .vn-pd-info { grid-column: 1; grid-row: 2; }
  .vn-pd-top--compact .vn-pd-buy { grid-column: 2; grid-row: 1 / span 2; }
}
@media (max-width: 1024px) {
  .vn-pd-top--compact { grid-template-columns: 1fr; gap: 2.4rem; }
  .vn-pd-top--compact .vn-pd-info { grid-column: auto; grid-row: auto; }
  .vn-pd-top--compact .vn-pd-gallery__main { max-height: 36rem; }
  .vn-pd-top--compact .vn-pd-gallery { max-width: 48rem; width: 100%; justify-self: center; }
}

/* Product card: compact heading, consistent spacing and purchase panel. */
.content:has(.vn-pd) > .section:has(.breadcrumb) { margin-bottom: clamp(16px, 2.4rem, 24px); }
.content:has(.vn-pd) .breadcrumb { margin-top: clamp(20px, 3.2rem, 32px); }
.vn-pd-title { max-width: none; }
.vn-pd-configuration { margin: 10px 0 0; font-size: max(1.5rem, 14px); line-height: 1.5; color: var(--pd-muted); }
.vn-pd-meta { margin: 12px 0 24px; }
.vn-pd-top--compact .vn-pd-info { gap: 16px; }
.vn-pd-info .vn-pd-brand { padding: 12px 16px; }
.vn-pd-info .vn-pd-brand__all { margin-top: 4px; }
.vn-pd-summary__specs { margin-bottom: 12px; }
.vn-pd-summary__specs > div { padding: 7px 0; }
.vn-pd-selection-note { padding: 10px 12px; }
.vn-pd-help { padding: 12px 16px; }
.vn-pd-purchase-facts { padding: 12px 16px; border: 1px solid var(--pd-line); border-radius: 12px; font-size: max(1.3rem, 13px); }
.vn-pd-purchase-facts__warranty { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.vn-pd-purchase-facts__warranty > span { color: var(--pd-muted); }
.vn-pd-purchase-facts__warranty > b { font-weight: 600; }
.vn-pd-complect { margin-top: 10px; }
.vn-pd-complect summary, .vn-pd-fulfilment summary { cursor: pointer; font-weight: 500; }
.vn-pd-complect .vn-pd-bullets { margin-top: 12px; font-size: inherit; }
.vn-pd-complect p, .vn-pd-facts-note { margin: 8px 0 0; color: var(--pd-muted); font-size: 12px; line-height: 1.45; }
.vn-pd-buy { gap: 12px; }
.vn-pd-buy .vn-pd-price { padding: 16px; gap: 8px; }
.vn-pd-buy .vn-pd-cartform { gap: 10px; }
.vn-pd-buy .vn-pd-btn--secondary { height: 36px; font-size: max(1.4rem, 14px) !important; }
.vn-pd-buy .vn-pd-partner-offer { padding: 10px 12px; }
.vn-pd-buy .vn-pd-partner-offer__prices { margin: 4px 0; }
.vn-pd-buy .vn-pd-partner-offer__note { font-size: 12px; line-height: 1.35; }
.vn-pd-buy .vn-pd-leadtime { padding: 10px; }
.vn-pd-price__confirm { font-size: 12px; line-height: 1.4; }
.vn-pd-fulfilment { padding: 0 4px; font-size: max(1.3rem, 13px); }
.vn-pd-fulfilment .vn-pd-stock { margin-top: 12px; font-size: 13px; gap: 12px; }
.vn-pd-tabs { margin-top: 32px; margin-bottom: 24px; }
.vn-pd-related, .vn-pd-service { margin-top: 40px; }
.vn-pd-h2row { margin-bottom: 20px; }
@media (min-width: 1280px) {
  .vn-pd-top--compact { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(320px, 34rem); gap: 24px; }
}
@media (max-width: 1024px) {
  .vn-pd-meta { margin-bottom: 20px; }
  .vn-pd-buy .vn-pd-btn--primary { min-height: 44px; }
  .vn-pd-gallery__thumbs { max-width: 100%; overflow-x: auto; }
  .vn-pd-thumb { flex: none; }
}

.vn-pd-buy .vn-pd-price__customer-label { line-height: 1.3; }
.vn-pd-buy .vn-pd-partner-offer__title { line-height: 1.3; }
.vn-pd-buy .vn-pd-partner-offer__prices strong { line-height: 1.2; }
.vn-pd-buy-links { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 16px; font-size: max(1.3rem, 13px); }
.vn-pd-buy-links > a { display: inline-flex; align-items: center; min-height: 28px; }
.vn-pd-quote-link { font-weight: 600; color: var(--color-brand-600) !important; }
.vn-pd-buy-links .vn-pd-price__pay { gap: 6px; }
.vn-pd-buy-links .vn-pd-price__pay > svg:last-child { display: none; }


/* Secondary purchase actions are visibly interactive links. */
.vn-pd-buy-links > a { gap: 7px; min-height: 32px; color: var(--color-brand-600) !important; border-radius: 4px; }
.vn-pd-buy-links > a > svg { flex: none; }
.vn-pd-buy-links > a > span { text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
.vn-pd-buy-links > a:hover > span { text-decoration-thickness: 2px; }
.vn-pd-buy-links > a:focus-visible { outline: 2px solid var(--color-brand-600); outline-offset: 4px; }


.vn-pd-documents { margin-top: 32px; padding: 24px; border: 1px solid var(--pd-line); border-radius: 16px; background: #fff; scroll-margin-top: 90px; }
.vn-pd-documents > h2 { margin: 0 0 20px; }
.vn-pd-documents__list { display: grid; gap: 16px; }
.vn-pd-document { display: flex; align-items: flex-start; gap: 16px; }
.vn-pd-document__icon { display: flex; align-items: center; justify-content: center; flex: none; width: 48px; height: 56px; border-radius: 10px; background: #EEF4FF; color: var(--color-brand-600); }
.vn-pd-document__body { min-width: 0; }
.vn-pd-document h3 { margin: 0 0 6px; font-size: max(1.7rem, 16px); font-weight: 600; }
.vn-pd-document p, .vn-pd-documents__note, .vn-pd-documents__empty { margin: 6px 0 0; font-size: max(1.3rem, 13px); line-height: 1.5; color: var(--pd-muted); overflow-wrap: anywhere; }
.vn-pd-document .vn-pd-document__number { color: var(--pd-ink); font-weight: 500; }
.vn-pd-document__links { display: flex; flex-wrap: wrap; gap: 10px 24px; margin-top: 10px; }
.vn-pd-document__links a, .vn-pd-documents__request { display: inline-flex; align-items: center; gap: 7px; min-height: 32px; font-size: max(1.4rem, 14px); color: var(--color-brand-600) !important; }
.vn-pd-document__links a > svg, .vn-pd-documents__request > svg { flex: none; }
.vn-pd-document__links a > span, .vn-pd-documents__request > span { text-decoration: underline; text-underline-offset: 3px; }
.vn-pd-document__links a:hover > span, .vn-pd-documents__request:hover > span { text-decoration-thickness: 2px; }
.vn-pd-document__links a:focus-visible, .vn-pd-documents__request:focus-visible { outline: 2px solid var(--color-brand-600); outline-offset: 4px; }
.vn-pd-document__links small { color: var(--pd-muted); font-size: 12px; }
.vn-pd-documents__note { margin-top: 16px; }
.vn-pd-documents__request { margin-top: 12px; font-weight: 500; }
@media (max-width: 600px) {
  .vn-pd-documents { padding: 16px; }
  .vn-pd-document { gap: 12px; }
  .vn-pd-document__icon { width: 36px; height: 44px; }
  .vn-pd-document__links { flex-direction: column; align-items: flex-start; }
}

/* Catalog: consistent page spacing and compact, comparable product cards. */
.content:has(.vn-cat) > .section:has(.breadcrumb) { margin-bottom: clamp(16px, 2.4rem, 24px); }
.content:has(.vn-cat) .breadcrumb { margin-top: clamp(20px, 3.2rem, 32px); }
.vn-cat-head { margin-bottom: 24px; }
.vn-cat-tiles, .vn-cat-trust { margin-bottom: 24px; }
.vn-cat-layout { gap: 24px; }
.vn-cat-grid { gap: 16px; }
.vn-cat-card { padding: 16px; }
.vn-cat-card__body { margin-top: 12px; }
.vn-cat-card__name { order: -3; margin-top: 0; font-size: max(1.6rem, 15px); font-weight: 600; line-height: 1.4; }
.vn-cat-card__meta { order: -2; margin-top: 6px; line-height: 1.4; }
.vn-cat-card__specs, .vn-cat-grid--list .vn-cat-card__specs { order: -1; display: block; margin: 10px 0 14px; padding: 0; list-style: none; font-size: 13px; line-height: 1.5; }
.vn-cat-card__specs li { overflow-wrap: anywhere; }
.vn-cat-card__specs span { color: var(--c-muted); }
.vn-cat-card__price { margin-top: auto; padding-top: 4px; }
.vn-cat-card__date { margin-top: 10px; }
.vn-cat-card__actions { margin-top: 16px; }
.vn-cat-grid--list .vn-cat-card__price { margin-top: 0; }
@media (min-width: 768px) {
  .vn-cat-tile { display: grid; grid-template-columns: minmax(0, 1fr) 68px; grid-template-rows: auto 1fr; column-gap: 12px; min-height: 104px; padding: 16px; }
  .vn-cat-tile__name { font-size: max(1.5rem, 14px); }
  .vn-cat-tile__cnt { align-self: start; }
  .vn-cat-tile__img { grid-column: 2; grid-row: 1 / 3; height: 68px; margin: 0; padding: 0; align-self: center; align-items: center; }
  .vn-cat-tile__img img { max-width: 100%; }
}
@media (max-width: 767px) {
  .vn-cat-head, .vn-cat-tiles, .vn-cat-trust { margin-bottom: 20px; }
  .vn-cat-grid { gap: 10px; }
  .vn-cat-card { padding: 12px; }
  .vn-cat-card__name { font-size: 14px; }
  .vn-cat-card__specs, .vn-cat-grid--list .vn-cat-card__specs { font-size: 12px; margin: 8px 0 12px; }
  .vn-cat-card__meta { font-size: 12px; }
  .vn-cat-card__actions { margin-top: 12px; }
}

/* Catalog search and category filters. */
.title-search-result:has(> .vn-search-results) { padding: 12px; min-width: 0 !important; max-width: calc(100vw - 32px) !important; box-shadow: 0 12px 32px rgba(16,24,40,.16); }
table.title-search-result.vn-search-results { display: table; width: 100%; max-width: none; margin: 0; padding: 0; border-collapse: collapse; background: transparent; border-radius: 0; }
.vn-search-results td { padding: 0; }
.vn-search-hit { display: flex; align-items: center; gap: 12px; padding: 12px 8px; border-bottom: 1px solid #e3e7ed; color: #182230; text-decoration: none; }
.vn-search-hit:hover, .title-search-selected .vn-search-hit { background: #f0f4ff; }
.vn-search-hit__image { flex: none; width: 52px; height: 52px; object-fit: contain; }
.vn-search-hit__info { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 4px; font-size: 14px; line-height: 1.35; }
.vn-search-hit__info > span, .vn-search-hit__info small { font-size: 12px; color: #66758c; }
.vn-search-hit__price { flex: none; max-width: 135px; font-size: 15px; font-weight: 700; line-height: 1.35; text-align: right; }
.vn-search-hit__price small { display: block; font-size: 12px; font-weight: 400; color: #66758c; }
.vn-search-all { display: block; padding: 14px 8px 6px; font-size: 14px; font-weight: 600; color: #203fc5; text-decoration: underline; text-underline-offset: 3px; }
.title-search-selected .vn-search-all { background: #f0f4ff; }
.vn-search-none { padding: 16px 8px !important; font-size: 14px; line-height: 1.5; }
.vn-search-form { display: flex; gap: 12px; max-width: 800px; margin: 0 0 12px; }
.vn-search-form .search { flex: 1; min-width: 0; }
.vn-search-form .vn-cat-btn { min-width: 100px; }
.vn-search-hint, .vn-search-prompt { margin: 0 0 24px; font-size: 14px; line-height: 1.5; color: #66758c; }
.vn-search-page .vn-search-hint a { color: #203fc5; text-decoration: underline; text-underline-offset: 3px; }
.vn-flt__hint { margin: 0 0 16px; font-size: 13px; line-height: 1.5; color: var(--c-muted); }
.vn-flt__footer .vn-flt__reset { display: block; text-align: center; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
@media (max-width: 767px) {
  .vn-search-hit { flex-wrap: wrap; gap: 8px; }
  .vn-search-hit__image { width: 40px; height: 40px; }
  .vn-search-hit__info { flex-basis: calc(100% - 52px); }
  .vn-search-hit__price { margin-left: 48px; max-width: none; text-align: left; }
  .vn-search-hit__price small { display: inline; margin-left: 6px; }
  .vn-search-form { gap: 8px; }
  .vn-search-form .vn-cat-btn { min-width: 72px; padding: 0 12px; }
}

.title-search-result:has(> .vn-search-results) { max-height: min(520px, calc(100vh - 150px)); overflow-y: auto; overscroll-behavior: contain; }
.vn-cat-bar__filters[hidden] { display: none !important; }

/* Vendor Nova: logo blue and consistent header controls. */
:root { --color-brand-600: #1078F5; --color-brand-500: #0866D5; --color-brand-link: #1078F5; --color-brand-sky: #06F2F0; --color-brand-sky-2: #06F2F0; --color-brand-info: #1078F5; }
.btn-primary { background-color: var(--color-brand-600) !important; border-color: var(--color-brand-600) !important; }
.btn-primary:hover, .btn-primary:focus { background-color: var(--color-brand-500) !important; border-color: var(--color-brand-500) !important; }
.vn-search-all, .vn-search-page .vn-search-hint a { color: var(--color-brand-600); }
.header .vn-hdr-icon, .header .cart { position: relative; display: inline-flex; align-items: center; justify-content: center; flex: none; width: 40px; height: 40px; padding: 8px; border-radius: 10px; color: #52647c; text-decoration: none; transition: color .2s, background .2s; }
.header .vn-hdr-icon:hover, .header .cart:hover { color: var(--color-brand-600); background: #eaf3ff; }
.header .vn-hdr-icon:focus-visible, .header .cart:focus-visible { outline: 2px solid var(--color-brand-600); outline-offset: 2px; }
.header .vn-hdr-icon svg, .header .vn-hdr-cart-icon { display: block; width: 24px; height: 24px; flex: none; }
.vn-hdr-badge, .header .cart__badge { position: absolute; top: 0; right: -1px; display: flex; align-items: center; justify-content: center; min-width: 17px; height: 17px; padding: 0 4px; border-radius: 12px; background: var(--color-brand-600); color: #fff; font: 600 10px/1 var(--font-sans); }
.vn-hdr-badge[hidden] { display: none; }
.header .header__contact { align-items: center; gap: 8px; line-height: 1.4; }
.header .vn-hdr-mail-icon { display: block; flex: none; width: 18px; height: 18px; }
.header .vn-catalog-icon { display: block; flex: none; width: 20px; height: 20px; fill: none; color: currentColor; }
.header .btn--catalog { display: inline-flex; align-items: center; gap: 8px; }
.header .search { height: 42px; }
.header .search__input { min-width: 0; font-size: 14px; }
.header .search-title-btn { display: inline-flex; align-items: center; justify-content: center; flex: none; padding: 0; background: none; border: 0; }
.header .search__icon { width: 18px; height: 18px; }
.vn-favorites-note { margin: 0 0 24px; color: #66758c; font-size: 14px; line-height: 1.5; }
.vn-favorites-back { display: inline-block; margin-top: 24px; color: var(--color-brand-600) !important; text-decoration: underline !important; text-underline-offset: 3px; font-size: 14px; }
.vn-cat .vn-cat-card__fav.is-active { color: var(--color-brand-600); }
@media (min-width: 1025px) {
  .header__bar { gap: 24px; }
  .header__bar > .header__logo { width: 168px; height: 82px; }
  .vn-hdr { gap: 14px; }
  .vn-hdr__row { gap: 16px; }
  .vn-hdr__row--top .header__nav { gap: 16px; }
  .header__nav .nav-link, .header .btn--catalog { font-size: 13px; }
  .header .btn--catalog { min-height: 38px; padding: 0 14px; }
  .vn-hdr__row--top .vn-hdr__contact { gap: 14px; }
  .vn-header-phone__num { font-size: 14px; }
  .vn-header-phone__hours { font-size: 11px; }
  .vn-hdr__row--top .header__contacts { gap: 14px; font-size: 12px; }
  .vn-hdr__row--bottom .header__search { flex: 1 1 340px; max-width: 520px; }
  .vn-hdr__row--bottom .header__search form { width: 100%; max-width: none; }
  .vn-hdr__row--bottom .header__actions { margin-left: auto; gap: 12px; }
  .vn-hdr__row--bottom .header__actions > .btn { height: 40px; padding: 0 18px; font-size: 13px; white-space: nowrap; }
  .header_fixed { gap: 14px; }
  .header_fixed .header__nav { gap: 14px; margin-left: auto; margin-right: 0; }
  .header_fixed .header__search { flex: 1 1 220px; max-width: 340px; }
  .header_fixed .header__search form { width: 100%; max-width: none; }
  .header_fixed .header__search .search { max-width: none; }
}
@media (min-width: 1025px) and (max-width: 1279px) {
  .header_fixed .header__nav > :not(.btn--catalog) { display: none; }
}
@media (max-width: 1024px) {
  .header__bar { height: 44px; }
  .header__mobile-actions { gap: 8px; }
  .header .header__mobile-actions .vn-hdr-icon, .header .header__mobile-actions .cart { width: 36px; height: 36px; padding: 6px; }
  .header__mobile-actions .hamburger { width: 36px; height: 36px; display: flex; align-items: center; justify-content: center; padding: 6px; background: none; border: 0; color: #52647c; }
  .header .vn-hdr-menu-icon { display: block; width: 24px; height: 24px; }
  .header_mobile .header__search, .header_mobile .header__search form { width: 100%; max-width: none; }
  .header_mobile > div:has(> .header__actions:empty) { display: none; }
}

.vn-favorites-page .vn-cat-promo { display: none; }

/* Compact shared footer. */
.footer.vn-footer { padding: 0; margin-top: 48px; background: #111a27; color: #c5cfdd; }
.vn-footer__wrap { width: 100%; padding: 0 var(--layout-gutter); }
.vn-footer a { color: inherit; text-decoration: none; transition: color .2s; }
.vn-footer a:hover { color: #65b2ff; }
.vn-footer a:focus-visible, .vn-footer summary:focus-visible { outline: 2px solid #65b2ff; outline-offset: 4px; border-radius: 4px; }
.vn-footer__cta { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 32px 0; border-bottom: 1px solid #304052; scroll-margin-top: 88px; }
.vn-footer__cta h2 { margin: 0 0 8px; font-size: clamp(21px,2.6rem,27px); line-height: 1.25; font-weight: 650; letter-spacing: -.02em; color: #fff; }
.vn-footer__cta p { margin: 0; font-size: 14px; line-height: 1.5; color: #b3bfd0; }
.vn-footer .vn-footer__cta .btn { flex: none; min-height: 44px; height: auto; padding: 13px 20px; gap: 12px; font-size: 14px; color: #fff; white-space: nowrap; }
.vn-footer__grid { display: grid; grid-template-columns: 1.05fr 1.1fr 1fr 1.15fr; gap: 32px; padding: 36px 0 32px; }
.vn-footer__logo { display: block; width: 172px; max-width: 100%; margin-bottom: 16px; }
.vn-footer__logo img { display: block; width: 100%; height: auto; }
.vn-footer__brand p { max-width: 240px; margin: 0 0 14px; font-size: 14px; line-height: 1.5; }
.vn-footer__vat { display: inline-block; padding: 6px 10px; border: 1px solid #34577c; border-radius: 7px; color: #e0efff; font-size: 12px; font-weight: 600; }
.vn-footer__company { display: flex; flex-wrap: wrap; gap: 8px 16px; margin-top: 18px; font-size: 13px; }
.vn-footer__group { min-width: 0; }
.vn-footer__group > summary, .vn-footer__contacts > h2 { margin: 0 0 16px; padding: 0; list-style: none; color: #fff; font-size: 15px; font-weight: 650; line-height: 1.4; cursor: default; }
.vn-footer__group > summary::-webkit-details-marker { display: none; }
.vn-footer__group > nav { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; font-size: 13px; line-height: 1.45; }
.vn-footer .vn-footer__accent { color: #65b2ff; }
.vn-footer .vn-footer__accent:hover { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
.vn-footer__contacts { min-width: 0; }
.vn-footer__contacts > a { display: block; width: fit-content; max-width: 100%; }
.vn-footer .vn-footer__phone { font-size: 19px; font-weight: 700; line-height: 1.35; color: #fff; white-space: nowrap; }
.vn-footer__email { margin-top: 10px; font-size: 14px; }
.vn-footer__contacts address { margin-top: 16px; font-size: 13px; font-style: normal; line-height: 1.6; }
.vn-footer__contacts p { margin: 8px 0 14px; font-size: 13px; line-height: 1.45; color: #a6b4c7; }
.vn-footer__contacts .vn-footer__accent { font-size: 13px; }
.vn-footer__bottom { display: grid; grid-template-columns: 1fr auto; gap: 16px 32px; padding: 22px 0 24px; border-top: 1px solid #304052; font-size: 11px; line-height: 1.6; color: #9cacc0; }
.vn-footer__legal { display: flex; flex-direction: column; gap: 4px; }
.vn-footer__legal > span:first-child { color: #c5cfdd; font-size: 12px; }
.vn-footer__bottom > nav { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: flex-end; gap: 8px 20px; }
.vn-footer__fine { margin: 0; max-width: 860px; }
.vn-footer__credit { text-align: right; align-self: end; white-space: nowrap; }
.vn-buyer-page { max-width: 1500px; }
.vn-buyer-page h1 { margin: 0 0 18px; font-size: clamp(26px,3.2rem,36px); font-weight: 700; }
.vn-buyer-page__lead { margin: 0 0 28px; max-width: 900px; font-size: 17px; line-height: 1.55; color: #52647c; }
.vn-buyer-page__grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px; margin-bottom: 28px; }
.vn-buyer-page__grid article { padding: 24px; border: 1px solid #e3e7ed; border-radius: 16px; background: #fff; }
.vn-buyer-page h2 { margin: 0 0 16px; font-size: 19px; line-height: 1.35; }
.vn-buyer-page p { font-size: 15px; line-height: 1.6; }
.vn-buyer-page__grid p { margin: 0 0 12px; }
.vn-buyer-page__grid p:last-child { margin-bottom: 0; }
.vn-buyer-page__grid a { color: var(--color-brand-600); text-decoration: underline; text-underline-offset: 3px; }
@media (min-width: 768px) and (max-width: 1100px) {
  .vn-footer__grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 32px; }
  .vn-buyer-page__grid { grid-template-columns: 1fr; }
}
@media (max-width: 767px) {
  .footer.vn-footer { margin-top: 32px; }
  .vn-footer__wrap { padding: 0 20px; }
  .vn-footer__cta { display: block; padding: 28px 0; }
  .vn-footer__cta h2 { font-size: 23px; }
  .vn-footer__cta p { font-size: 14px; }
  .vn-footer .vn-footer__cta .btn { margin-top: 18px; }
  .vn-footer__grid { display: flex; flex-direction: column; gap: 0; padding: 28px 0 8px; }
  .vn-footer__contacts { order: -2; padding-bottom: 24px; }
  .vn-footer__contacts > h2 { margin-bottom: 12px; }
  .vn-footer__brand { order: -1; padding: 24px 0; border-top: 1px solid #304052; }
  .vn-footer__logo { width: 150px; margin-bottom: 14px; }
  .vn-footer__brand p { max-width: 320px; }
  .vn-footer__group { border-top: 1px solid #304052; }
  .vn-footer__group > summary { display: flex; justify-content: space-between; align-items: center; margin: 0; padding: 18px 0; font-size: 15px; cursor: pointer; }
  .vn-footer__group > summary::after { content: '+'; font-size: 22px; line-height: 1; font-weight: 400; color: #65b2ff; }
  .vn-footer__group[open] > summary::after { content: '−'; }
  .vn-footer__group > nav { padding-bottom: 20px; gap: 14px; font-size: 14px; }
  .vn-footer__bottom { display: flex; flex-direction: column; gap: 14px; padding: 20px 0 24px; font-size: 11px; }
  .vn-footer__bottom > nav { justify-content: flex-start; gap: 10px 18px; }
  .vn-footer__credit { align-self: flex-start; text-align: left; }
  .vn-buyer-page__grid { grid-template-columns: 1fr; gap: 16px; }
  .vn-buyer-page__grid article { padding: 20px; }
}

.vn-footer__brand p { color: #c5cfdd; }
.vn-footer p.vn-footer__fine { color: #9cacc0; font-size: 11px; line-height: 1.6; }

/* Header v2: compact utility line, unified shopping row. */
.header.vn-header-v2 { padding: 0 var(--layout-gutter); background: #f8fafc; }
.vn-h2-top { display: flex; align-items: center; justify-content: space-between; gap: 20px; min-height: 40px; padding: 8px 0; border-bottom: 1px solid #e3e7ed; }
.vn-h2-top > nav { display: flex; flex-wrap: wrap; gap: 8px 18px; font-size: 12px; line-height: 1.4; }
.vn-h2-top a { color: #52647c; text-decoration: none; }
.vn-h2-contacts { display: flex; align-items: center; gap: 20px; white-space: nowrap; font-size: 12px; }
.vn-h2-contacts .vn-h2-phone { font-size: 14px; font-weight: 650; color: #1d293d; }
.vn-h2-email { display: inline-flex; align-items: center; gap: 7px; }
.vn-h2-email svg { width: 17px; height: 17px; flex: none; }
.vn-h2-main { display: flex; align-items: center; gap: 18px; width: 100%; padding: 12px 0; }
.vn-header-v2 .header__logo { flex: none; width: 136px; max-width: none; height: 66px; background-position: left center; }
.vn-header-v2 .vn-h2-catalog { display: inline-flex; align-items: center; justify-content: center; flex: none; gap: 9px; height: 44px; padding: 0 16px; font-size: 14px; border-radius: 10px; }
.vn-h2-catalog svg { width: 21px; height: 21px; flex: none; }
.vn-header-v2 .vn-h2-main .header__search { display: block; flex: 1 1 280px; min-width: 120px; max-width: none; }
.vn-header-v2 .header__search form { width: 100%; max-width: none; }
.vn-header-v2 .header__search .search { width: 100%; max-width: none; height: 44px; }
.vn-header-v2 .vn-h2-actions { display: flex; flex: none; align-items: center; gap: 8px; }
.vn-header-v2 .vn-h2-action { display: flex; flex: none; flex-direction: column; align-items: center; justify-content: center; position: relative; gap: 5px; width: 66px; height: 58px; padding: 5px 2px; border-radius: 9px; color: #52647c; text-decoration: none; transition: background .2s,color .2s; }
.vn-h2-action > svg { display: block; width: 24px; height: 24px; flex: none; }
.vn-h2-action > span { font-size: 11px; font-weight: 500; line-height: 1.2; white-space: nowrap; }
.vn-header-v2 .vn-h2-action:hover { color: var(--color-brand-600); background: #eaf3ff; }
.vn-header-v2 .vn-h2-action:focus-visible { outline: 2px solid var(--color-brand-600); outline-offset: 2px; }
.vn-header-v2 .vn-h2-action .vn-hdr-badge, .vn-header-v2 .vn-h2-action .cart__badge { top: 0; right: 9px; font-size: 10px; }
.vn-header-v2 .vn-h2-menu { display: none; }
.vn-header-v2 .header_fixed { display: block; padding: 4px var(--layout-gutter); background: #f8fafc; border-bottom: 1px solid #e3e7ed; border-radius: 0; }
.vn-header-v2 .header_fixed .vn-h2-main { padding: 4px 0; gap: 16px; }
.vn-header-v2 .header_fixed .header__logo { width: 112px; height: 52px; }
.vn-header-v2 .header_fixed .header__search { flex: 1 1 280px; max-width: none; margin: 0; }
.vn-header-v2 .header_fixed .vn-h2-action { height: 52px; }
.vn-header-v2 .vn-h2-top a:hover, .vn-header-v2 a[href^="mailto:"]:hover, .vn-header-v2 .vn-h2-mobile-contacts a:hover,
.vn-footer .vn-footer__contacts .vn-footer__email:hover, .vn-footer .vn-footer__contacts address a:hover { color: var(--color-brand-600); text-decoration: underline; text-underline-offset: 4px; }
.vn-header-v2 a[href^="mailto:"]:focus-visible, .vn-header-v2 .vn-h2-mobile-contacts a:focus-visible,
.vn-footer .vn-footer__contacts .vn-footer__email:focus-visible, .vn-footer .vn-footer__contacts address a:focus-visible { outline: 2px solid var(--color-brand-600); outline-offset: 4px; text-decoration: underline; text-underline-offset: 4px; }
.vn-footer .vn-footer__contacts address a { color: inherit; }
@media (min-width: 1025px) and (max-width: 1199px) {
  .vn-h2-main { gap: 12px; }
  .vn-header-v2 .header__logo { width: 116px; }
  .vn-header-v2 .vn-h2-actions { gap: 2px; }
  .vn-header-v2 .vn-h2-action { width: 60px; }
  .vn-h2-top > nav { gap: 8px 12px; font-size: 11px; }
  .vn-h2-contacts { gap: 12px; font-size: 11px; }
  .vn-h2-contacts .vn-h2-phone { font-size: 12px; }
}
@media (max-width: 1024px) {
  .header.vn-header-v2 { padding: 0 16px; }
  .vn-h2-top, .vn-header-v2 .header_fixed { display: none !important; }
  .vn-h2-main { display: grid; grid-template-columns: 104px minmax(0,1fr) 32px; grid-template-areas: 'logo actions menu' 'catalog search search'; gap: 10px 8px; padding: 12px 0; }
  .vn-header-v2 .header__logo { grid-area: logo; width: 104px; height: 52px; }
  .vn-header-v2 .vn-h2-catalog { grid-area: catalog; padding: 0 10px; height: 42px; font-size: 13px; }
  .vn-header-v2 .vn-h2-main .header__search { grid-area: search; min-width: 0; width: 100%; }
  .vn-header-v2 .header__search .search { height: 42px; }
  .vn-header-v2 .vn-h2-actions { grid-area: actions; justify-content: flex-end; gap: 4px; min-width: 0; }
  .vn-header-v2 .vn-h2-action { width: 58px; height: 56px; padding: 4px 0; gap: 5px; }
  .vn-header-v2 .vn-h2-menu { grid-area: menu; display: flex; align-items: center; justify-content: center; width: 32px; height: 42px; padding: 4px; color: #52647c; background: none; border: 0; }
  .vn-header-v2.active .vn-h2-menu { color: var(--color-brand-600); }
  .vn-header-v2 .vn-h2-mobile-panel { inset: 132px 0 0; min-height: 0; height: auto; margin: 0; padding: 20px; background: #f8fafc; }
  .vn-h2-mobile-panel > nav, .vn-h2-mobile-contacts { display: flex; flex-direction: column; align-items: flex-start; gap: 0; }
  .vn-h2-mobile-panel > nav a { display: block; width: 100%; padding: 14px 0; border-bottom: 1px solid #e3e7ed; font-size: 16px; color: #1d293d; }
  .vn-h2-mobile-contacts { margin-top: 24px; gap: 18px; font-size: 14px; line-height: 1.5; }
}
@media (max-width: 420px) {
  .vn-h2-main { grid-template-columns: 80px minmax(0,1fr) 28px; gap: 10px 6px; }
  .vn-header-v2 .header__logo { width: 80px; }
  .vn-header-v2 .vn-h2-actions { gap: 0; }
  .vn-header-v2 .vn-h2-action { width: 42px; }
  .vn-h2-action > span { font-size: 9px; }
  .vn-h2-action > svg { width: 22px; height: 22px; }
  .vn-header-v2 .vn-h2-catalog { gap: 5px; padding: 0 7px; font-size: 12px; }
  .vn-h2-catalog svg { width: 17px; height: 17px; }
  .vn-header-v2 .header__search .search { padding: 0 10px; }
  .vn-header-v2 .search__input { font-size: 12px; }
}

/* Избранное в карточке товара: общий список vnFav каталога и шапки. */
.vn-pd .vn-pd-favorite { display: inline-flex; align-items: center; gap: 8px; min-height: 40px; padding: 8px 12px; border: 1px solid #dce5f0; border-radius: 10px; background: #fff; color: #1078f5; font-family: inherit; font-size: 14px; font-weight: 500; line-height: 1.35; cursor: pointer; }
.vn-pd .vn-pd-favorite svg { flex: none; width: 20px; height: 20px; stroke: currentColor; fill: none; }
.vn-pd .vn-pd-favorite:hover { border-color: #1078f5; background: #edf5ff; }
.vn-pd .vn-pd-favorite.is-active { border-color: #1078f5; background: #edf5ff; color: #0866d5; }
.vn-pd .vn-pd-favorite.is-active svg { fill: currentColor; }
.vn-pd .vn-pd-favorite:focus-visible { outline: 3px solid #1078f5; outline-offset: 3px; }
@media(max-width:600px){.vn-pd-meta{gap:12px;}.vn-pd .vn-pd-favorite{min-height:44px;}}
