/* krsknet.ru */
@import url('https://fonts.googleapis.com/css2?family=Onest:wght@400;500;600;700;800&display=swap&subset=cyrillic,cyrillic-ext');

:root {
	/* Единые боковые поля на мобильных: логотип, карточки KPI, блок контактов и т.д. */
	--layout-gutter-x: clamp(1.5rem, 5vw, 2.5rem);
	/* Доп. отступ от края экрана (верхний лого и текст в одном ритме); на широких — 0 */
	--layout-edge-nudge: 0;
	--font-display: 'Onest', system-ui, sans-serif;
	--font-body: 'Onest', system-ui, sans-serif;
	--accent: #e11d48;
	--accent-dim: #be123c;
	--accent-glow: rgba(225, 29, 72, 0.35);
	--radius: 1rem;
	--radius-lg: 1.5rem;
	--radius-xl: 2rem;
	--transition: 0.22s cubic-bezier(0.4, 0, 0.2, 1);
	--surface-shadow: 0 10px 28px -22px rgba(15, 23, 42, 0.22);
}

/* На узких экранах делаем отступ заметнее (главная страница) */
@media (max-width: 767px) {
	:root {
		--layout-gutter-x: clamp(1.65rem, 6.5vw, 2.75rem);
	}
}

@media (max-width: 899px) {
	:root {
		/* Боковой зазор на телефоне; + жёсткие min в конце файла (на случай сбоя calc) */
		--layout-edge-nudge: 1rem;
	}
}

html.light {
	color-scheme: light;
	--bg: #f4f6fa;
	--bg-elevated: #ffffff;
	--text: #0f172a;
	--text-muted: #475569;
	--border: rgba(15, 23, 42, 0.08);
	--header-bg: rgba(255, 255, 255, 0.72);
	--mesh-1: rgba(225, 29, 72, 0.07);
	--mesh-2: rgba(225, 29, 72, 0.045);
	--hero-stage-fade: rgba(225, 29, 72, 0.07);
	--card-shadow: 0 4px 24px -4px rgba(15, 23, 42, 0.08);
	--hero-orb: rgba(225, 29, 72, 0.14);
	/* Личный кабинет (зелёный, аккуратно и с контрастом) */
	--lk-green: #16a34a;
	--lk-green-2: #0f766e;
	--lk-text: #0f766e;
	--lk-ghost-bg: rgba(22, 163, 74, 0.08);
	--lk-ghost-border: rgba(22, 163, 74, 0.55);
	--lk-ghost-text: #065f46;
	--lk-glow: rgba(22, 163, 74, 0.25);

	/* Мягкая розовая подсветка по странице (светлая тема) */
	--ambient-red-apex: rgba(225, 29, 72, 0.055);
	--ambient-red-side: rgba(225, 29, 72, 0.028);
	--ambient-red-floor: rgba(225, 29, 72, 0.034);
	--ambient-red-vignette: rgba(225, 29, 72, 0.018);
	--surface-red-glow: 0 0 44px -22px rgba(225, 29, 72, 0.09);

	background-color: var(--bg);
	background-image:
		radial-gradient(ellipse 120% 42% at 50% -8%, var(--ambient-red-apex), transparent 58%),
		radial-gradient(ellipse 48% 38% at -6% 42%, var(--ambient-red-side), transparent 52%),
		radial-gradient(ellipse 44% 36% at 106% 48%, var(--ambient-red-side), transparent 52%),
		radial-gradient(ellipse 130% 48% at 50% 108%, var(--ambient-red-floor), transparent 58%),
		radial-gradient(ellipse 95% 75% at 50% 50%, transparent 46%, var(--ambient-red-vignette) 100%);
	background-attachment: fixed;
	background-repeat: no-repeat;
}

html.dark {
	color-scheme: dark;
	--bg: #0a0c10;
	--bg-elevated: #12151c;
	--text: #f1f5f9;
	--text-muted: #94a3b8;
	--border: rgba(241, 245, 249, 0.08);
	--header-bg: rgba(10, 12, 16, 0.78);
	--mesh-1: rgba(225, 29, 72, 0.14);
	--mesh-2: rgba(225, 29, 72, 0.09);
	--hero-stage-fade: rgba(225, 29, 72, 0.12);
	--card-shadow: 0 8px 32px -8px rgba(0, 0, 0, 0.45);
	--hero-orb: rgba(225, 29, 72, 0.2);
	/* Красная «подсветка» по странице (тёмная тема) */
	--ambient-red-apex: rgba(225, 29, 72, 0.13);
	--ambient-red-side: rgba(225, 29, 72, 0.065);
	--ambient-red-floor: rgba(225, 29, 72, 0.07);
	--ambient-red-vignette: rgba(225, 29, 72, 0.045);
	--surface-red-glow: 0 0 48px -18px rgba(225, 29, 72, 0.18);
	/* Личный кабинет (зелёный, аккуратно и с контрастом) */
	--lk-green: #34d399;
	--lk-green-2: #10b981;
	--lk-text: #bbf7d0;
	--lk-ghost-bg: rgba(16, 185, 129, 0.12);
	--lk-ghost-border: rgba(16, 185, 129, 0.65);
	--lk-ghost-text: #d1fae5;
	--lk-glow: rgba(16, 185, 129, 0.22);

	/* Фон страницы: база + несколько мягких красных пятен (фиксируются при скролле) */
	background-color: var(--bg);
	background-image:
		radial-gradient(ellipse 120% 42% at 50% -8%, var(--ambient-red-apex), transparent 58%),
		radial-gradient(ellipse 48% 38% at -6% 42%, var(--ambient-red-side), transparent 52%),
		radial-gradient(ellipse 44% 36% at 106% 48%, var(--ambient-red-side), transparent 52%),
		radial-gradient(ellipse 130% 48% at 50% 108%, var(--ambient-red-floor), transparent 58%),
		radial-gradient(ellipse 95% 75% at 50% 50%, transparent 42%, var(--ambient-red-vignette) 100%);
	background-attachment: fixed;
	background-repeat: no-repeat;
}

@media (max-width: 900px) {
	html.light,
	html.dark {
		/* fixed-фон на iOS/Android даёт рывки и смещение при скролле */
		background-attachment: scroll;
	}
}

*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	scroll-behavior: smooth;
}

body {
	margin: 0;
	font-family: var(--font-body);
	font-size: 1rem;
	line-height: 1.65;
	color: var(--text);
	background: var(--bg);
	min-height: 100vh;
	transition: background-color var(--transition), color var(--transition);
}

/* Контент не вылезает по горизонтали на узких экранах; модалка — вне main, не режется */
main {
	min-width: 0;
	overflow-x: clip;
}

html.dark body,
html.light body {
	/* Атмосфера на html, тело прозрачное — без двойных пятен */
	background: transparent;
}

body::before {
	content: '';
	position: fixed;
	inset: 0;
	pointer-events: none;
	z-index: 0;
	background:
		radial-gradient(ellipse 80% 50% at 20% -20%, var(--mesh-1), transparent),
		radial-gradient(ellipse 60% 40% at 100% 0%, var(--mesh-2), transparent);
}

html.dark body::before,
html.light body::before {
	display: none;
}

/* Живой фон: мягкие размытые пятна (GPU, без лишней нагрузки) */
.bg-live {
	position: fixed;
	inset: 0;
	z-index: 0;
	pointer-events: none;
	overflow: hidden;
	contain: strict;
}

.bg-live__blob {
	position: absolute;
	border-radius: 50%;
	filter: blur(72px);
	will-change: transform;
}

html.light .bg-live__blob--a {
	width: min(52vmin, 460px);
	height: min(52vmin, 460px);
	background: rgba(225, 29, 72, 0.12);
	top: -14%;
	left: -20%;
	animation: bg-live-move-a 24s ease-in-out infinite alternate;
}

html.light .bg-live__blob--b {
	width: min(44vmin, 400px);
	height: min(44vmin, 400px);
	background: rgba(225, 29, 72, 0.075);
	bottom: 2%;
	right: -14%;
	animation: bg-live-move-b 28s ease-in-out infinite alternate;
	animation-delay: -6s;
	filter: blur(68px);
}

html.light .bg-live__blob--c {
	width: min(36vmin, 320px);
	height: min(36vmin, 320px);
	background: rgba(251, 113, 133, 0.065);
	top: 36%;
	right: -6%;
	animation: bg-live-move-c 32s ease-in-out infinite alternate;
	animation-delay: -11s;
	filter: blur(62px);
}

html.dark .bg-live__blob--a {
	width: min(54vmin, 480px);
	height: min(54vmin, 480px);
	background: rgba(225, 29, 72, 0.2);
	top: -16%;
	left: -22%;
	animation: bg-live-move-a 26s ease-in-out infinite alternate;
}

html.dark .bg-live__blob--b {
	width: min(46vmin, 420px);
	height: min(46vmin, 420px);
	background: rgba(225, 29, 72, 0.13);
	bottom: -4%;
	right: -16%;
	animation: bg-live-move-b 30s ease-in-out infinite alternate;
	animation-delay: -5s;
	filter: blur(76px);
}

html.dark .bg-live__blob--c {
	width: min(40vmin, 380px);
	height: min(40vmin, 380px);
	background: rgba(190, 18, 60, 0.12);
	top: 40%;
	left: 52%;
	animation: bg-live-move-c 34s ease-in-out infinite alternate;
	animation-delay: -9s;
	filter: blur(70px);
}

@keyframes bg-live-move-a {
	from {
		transform: translate(0, 0) scale(1);
	}
	to {
		transform: translate(11vmin, 9vmin) scale(1.14);
	}
}

@keyframes bg-live-move-b {
	from {
		transform: translate(0, 0) scale(1.03);
	}
	to {
		transform: translate(-11vmin, -13vmin) scale(1.12);
	}
}

@keyframes bg-live-move-c {
	from {
		transform: translate(0, 0) scale(1);
	}
	to {
		transform: translate(-13vmin, 11vmin) scale(1.16);
	}
}

@media (prefers-reduced-motion: reduce) {
	.bg-live__blob {
		animation: none !important;
	}
}

main#main {
	position: relative;
	z-index: 1;
}

.err-shell {
	position: relative;
	z-index: 1;
}

a {
	color: inherit;
	text-decoration: none;
}

a:hover {
	color: var(--accent);
}

a:focus-visible,
button:focus-visible,
.btn:focus-visible,
.faq-trigger:focus-visible,
.tabs-list button:focus-visible {
	outline: 3px solid var(--accent);
	outline-offset: 3px;
	border-radius: 0.5rem;
}

img {
	max-width: 100%;
	height: auto;
	display: block;
}

.sr-only {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.skip-link {
	position: absolute;
	top: -100px;
	left: 1rem;
	z-index: 9999;
	padding: 0.75rem 1.25rem;
	background: var(--accent);
	color: #fff;
	font-weight: 600;
	border-radius: var(--radius);
	transition: top 0.2s;
}

.skip-link:focus {
	top: 1rem;
}

.wrap {
	position: relative;
	z-index: 1;
	max-width: 1280px;
	margin: 0 auto;
	/* safe-area: вырезы и индикатор «домой» на телефонах */
	padding-left: max(calc(var(--layout-gutter-x) + var(--layout-edge-nudge)), env(safe-area-inset-left, 0px));
	padding-right: max(calc(var(--layout-gutter-x) + var(--layout-edge-nudge)), env(safe-area-inset-right, 0px));
	padding-top: 0;
	padding-bottom: 0;
}

/* Header */
.site-header {
	position: sticky;
	top: 0;
	z-index: 100;
	backdrop-filter: blur(16px);
	-webkit-backdrop-filter: blur(16px);
	background: var(--header-bg);
	border-bottom: 1px solid var(--border);
	box-shadow: 0 10px 26px -24px rgba(15, 23, 42, 0.3);
	transition: background var(--transition), box-shadow var(--transition);
}

.header-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	padding: 0.8rem 0;
}

/* Мобильная шапка: логотип визуально вровень с кнопками справа */
@media (max-width: 899px) {
	.header-inner {
		min-height: 3.25rem;
		padding-top: 0.65rem;
		padding-bottom: 0.65rem;
	}

	.site-header .logo.brandmark {
		align-self: center;
		flex-shrink: 0;
		min-width: 0;
	}
}

.brandmark {
	display: inline-flex;
	align-items: baseline;
	gap: 0.35rem;
	font-family: var(--font-display);
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	line-height: 1;
}

.brandmark-main {
	font-size: clamp(1.15rem, 2.3vw, 1.65rem);
	color: var(--text);
	text-shadow: 0 2px 14px rgba(225, 29, 72, 0.12);
}

.brandmark-suffix {
	font-size: clamp(0.75rem, 1.4vw, 0.95rem);
	font-weight: 700;
	color: var(--accent);
	padding: 0.18rem 0.45rem;
	border-radius: 999px;
	border: 1px solid rgba(225, 29, 72, 0.35);
	background: rgba(225, 29, 72, 0.1);
	transform: translateY(-0.2rem);
}

/* Логотип KRSKNET.RU — печатный капительный стиль */
.brandmark--domain {
	text-transform: uppercase;
	letter-spacing: 0.14em;
	font-weight: 800;
}

.brandmark--domain .brandmark-main {
	letter-spacing: 0.14em;
	font-weight: 800;
	font-variant-numeric: lining-nums;
}

.brandmark--domain .brandmark-suffix {
	letter-spacing: 0.1em;
	font-weight: 800;
	transform: translateY(-0.12rem);
}

.nav-desktop {
	display: none;
}

@media (min-width: 1100px) {
	.nav-desktop {
		display: flex;
	}
}

.nav-desktop ul {
	display: flex;
	flex-wrap: nowrap;
	gap: 0.35rem 1rem;
	list-style: none;
	margin: 0;
	padding: 0;
	font-family: var(--font-display);
	font-size: 0.76rem;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.nav-desktop a {
	padding: 0.3rem 0;
	border-bottom: 2px solid transparent;
	transition: border-color var(--transition), color var(--transition);
	white-space: nowrap;
}

.nav-soon {
	display: inline-block;
	margin-left: 0.5rem;
	font-family: var(--font-display);
	font-size: 0.65rem;
	font-weight: 800;
	letter-spacing: 0.06em;
	text-transform: none;
	color: var(--accent);
	background: rgba(225, 29, 72, 0.08);
	border: 1px solid rgba(225, 29, 72, 0.25);
	border-radius: 999px;
	padding: 0.2rem 0.55rem;
	vertical-align: middle;
}

.nav-soon--orange {
	/* Оранжевый для IPTV: ближе к акценту "скоро" */
	color: #f97316;
	background: rgba(249, 115, 22, 0.10);
	border-color: rgba(249, 115, 22, 0.30);
}

.nav-desktop a:hover {
	color: var(--accent);
	border-bottom-color: var(--accent);
}

.header-actions {
	display: flex;
	align-items: center;
	gap: 0.45rem;
}

.phone-link {
	display: none;
	align-items: center;
	gap: 0.4rem;
	font-family: var(--font-display);
	font-weight: 600;
	font-size: 0.86rem;
	white-space: nowrap;
	color: var(--text-muted);
}

@media (min-width: 1100px) {
	.phone-link {
		display: flex;
	}
}

.phone-link svg {
	flex-shrink: 0;
	color: var(--accent);
}

.btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	font-family: var(--font-display);
	font-weight: 600;
	font-size: 0.875rem;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	padding: 0.72rem 1.1rem;
	border-radius: var(--radius);
	border: none;
	cursor: pointer;
	transition: transform 0.15s ease, box-shadow var(--transition), background var(--transition);
}

.btn:active {
	transform: scale(0.98);
}

.btn-primary {
	background: linear-gradient(135deg, var(--accent), var(--accent-dim));
	color: #fff;
	box-shadow: 0 4px 20px var(--accent-glow);
}

.btn-primary:hover {
	filter: brightness(1.08);
	color: #fff;
}

.btn-ghost {
	background: transparent;
	color: var(--text);
	border: 2px solid var(--border);
}

.btn-ghost:hover {
	border-color: var(--accent);
	color: var(--accent);
}

.btn a[href*='lk.krsknet.ru'] {
	/* на всякий случай, если у вас внутри кнопок будет ссылка */
	color: inherit;
}

/* Личный кабинет (зелёный, но без "кричащего" контраста) */
a[href*='lk.krsknet.ru'] {
	color: var(--lk-text);
}

a[href*='lk.krsknet.ru'].btn-primary {
	background: linear-gradient(135deg, var(--lk-green), var(--lk-green-2));
	box-shadow: 0 4px 20px var(--lk-glow);
	color: #fff;
	border: none;
}

a[href*='lk.krsknet.ru'].btn-primary:hover {
	filter: brightness(1.06);
	color: #fff;
}

a[href*='lk.krsknet.ru'].btn-ghost {
	background: var(--lk-ghost-bg);
	border-color: var(--lk-ghost-border);
	color: var(--lk-ghost-text);
}

a[href*='lk.krsknet.ru'].btn-ghost:hover {
	background: rgba(16, 185, 129, 0.16);
	border-color: rgba(16, 185, 129, 0.95);
	color: var(--lk-ghost-text);
}

.btn-icon {
	width: 2.65rem;
	height: 2.65rem;
	padding: 0;
	border-radius: var(--radius);
}

.header-lk {
	padding: 0.55rem 0.7rem;
	font-size: 0.76rem;
	letter-spacing: 0.06em;
	border-width: 1px;
	box-shadow: none;
	min-width: 0;
	background: transparent;
	border-color: var(--border);
	color: var(--text);
}

.header-lk i[data-lucide] {
	width: 16px !important;
	height: 16px !important;
}

.header-lk:hover {
	background: var(--bg-elevated);
	border-color: var(--accent);
	color: var(--accent);
}

.btn-menu {
	display: flex;
}

@media (min-width: 1100px) {
	.btn-menu {
		display: none;
	}
}

.theme-toggle {
	background: var(--bg-elevated);
	border: 1px solid var(--border);
	color: var(--text);
}

.theme-toggle:hover {
	border-color: var(--accent);
}

.theme-toggle .icon-sun,
.theme-toggle .icon-moon {
	display: block;
}

html.light .theme-toggle .icon-sun {
	display: none;
}

html.light .theme-toggle .icon-moon {
	display: block;
}

html.dark .theme-toggle .icon-moon {
	display: none;
}

html.dark .theme-toggle .icon-sun {
	display: block;
}

/* Mobile drawer */
.nav-drawer {
	position: fixed;
	inset: 0;
	z-index: 200;
	pointer-events: none;
	opacity: 0;
	visibility: hidden;
	transition: opacity var(--transition), visibility var(--transition);
}

.nav-drawer.is-open {
	pointer-events: auto;
	opacity: 1;
	visibility: visible;
}

.nav-drawer__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.45);
	backdrop-filter: blur(4px);
}

.nav-drawer__panel {
	position: absolute;
	top: 0;
	right: 0;
	width: min(100%, 320px);
	height: 100%;
	background: var(--bg-elevated);
	border-left: 1px solid var(--border);
	padding-top: max(1.5rem, env(safe-area-inset-top, 0px));
	padding-bottom: max(1.5rem, env(safe-area-inset-bottom, 0px));
	padding-left: max(calc(var(--layout-gutter-x) + var(--layout-edge-nudge)), env(safe-area-inset-left, 0px));
	padding-right: max(calc(var(--layout-gutter-x) + var(--layout-edge-nudge)), env(safe-area-inset-right, 0px));
	transform: translateX(100%);
	transition: transform var(--transition);
	box-shadow: -12px 0 40px rgba(0, 0, 0, 0.15);
}

.nav-drawer.is-open .nav-drawer__panel {
	transform: translateX(0);
}

.nav-drawer ul {
	list-style: none;
	margin: 2rem 0 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
	font-family: var(--font-display);
	font-weight: 600;
	text-transform: uppercase;
	font-size: 0.9rem;
	letter-spacing: 0.05em;
}

.nav-drawer a {
	display: block;
	padding: 0.85rem 0;
	border-bottom: 1px solid var(--border);
}

.drawer-close {
	position: absolute;
	top: max(1rem, env(safe-area-inset-top, 0px));
	right: max(calc(var(--layout-gutter-x) + var(--layout-edge-nudge)), env(safe-area-inset-right, 0px));
}

/* Hero */
.hero {
	padding: 0;
}

.hero--renew .hero-stage {
	position: relative;
	padding: clamp(2.65rem, 6.5vw, 5rem) 0 clamp(2.15rem, 4.5vw, 3.5rem);
	background:
		linear-gradient(165deg, var(--hero-stage-fade) 0%, transparent 52%),
		radial-gradient(ellipse 90% 58% at 100% -8%, var(--mesh-2), transparent 58%);
}

.hero-layout {
	display: grid;
	gap: clamp(1.5rem, 3vw, 2.25rem);
	align-items: start;
}

@media (min-width: 1024px) {
	.hero-layout {
		grid-template-columns: minmax(0, 1.12fr) minmax(280px, 0.88fr);
		gap: clamp(2rem, 3.5vw, 3rem);
		align-items: center;
	}
}

.hero-main {
	position: relative;
	padding-left: 1.35rem;
	border-left: none;
}

.hero-main::before {
	content: '';
	position: absolute;
	left: 0;
	top: 0.12rem;
	bottom: 0.2rem;
	width: 4px;
	border-radius: 999px;
	background: linear-gradient(180deg, var(--accent) 0%, rgba(225, 29, 72, 0.45) 100%);
	box-shadow: 0 0 20px -4px rgba(225, 29, 72, 0.45);
}

.hero-aside {
	position: relative;
}

.hero-copy {
	display: flex;
	flex-direction: column;
}

.hero-kpis {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0.65rem;
	margin: 1.45rem 0 1.6rem;
	max-width: 44rem;
}

@media (min-width: 640px) {
	.hero-kpis {
		grid-template-columns: repeat(4, minmax(0, 1fr));
		gap: 0.75rem;
	}
}

.hero-kpi {
	margin: 0;
	padding: 0.7rem 0.75rem 0.75rem;
	border: 1px solid var(--border);
	border-radius: var(--radius);
	background: color-mix(in srgb, var(--bg-elevated) 88%, transparent);
	box-shadow: 0 6px 22px -14px rgba(15, 23, 42, 0.2);
	transition: border-color var(--transition), box-shadow var(--transition), transform 0.2s ease;
}

.hero-kpi:hover {
	border-color: rgba(225, 29, 72, 0.28);
	box-shadow: 0 10px 28px -16px rgba(225, 29, 72, 0.22);
	transform: translateY(-1px);
}

@media (prefers-reduced-motion: reduce) {
	.hero-kpi:hover {
		transform: none;
	}
}

html.dark .hero-kpi {
	background: color-mix(in srgb, var(--bg-elevated) 75%, rgba(255, 255, 255, 0.04));
	box-shadow: 0 8px 26px -18px rgba(0, 0, 0, 0.45);
}

.hero-kpi dt {
	font-size: 0.65rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	color: var(--text-muted);
}

.hero-kpi dd {
	margin: 0.4rem 0 0;
	font-family: var(--font-display);
	font-weight: 800;
	font-size: clamp(1rem, 2.1vw, 1.12rem);
	letter-spacing: -0.02em;
	color: var(--text);
	font-variant-numeric: tabular-nums;
}

.hero-badge {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	font-family: var(--font-display);
	font-size: 0.7rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.12em;
	color: var(--accent-dim);
	background: var(--hero-orb);
	padding: 0.42rem 0.95rem;
	border-radius: 999px;
	margin-bottom: 1.05rem;
	border: 1px solid rgba(225, 29, 72, 0.22);
	box-shadow: 0 4px 18px -10px rgba(225, 29, 72, 0.35);
}

.hero-badge::before {
	content: '';
	width: 0.35rem;
	height: 0.35rem;
	border-radius: 999px;
	background: var(--accent);
	flex-shrink: 0;
	box-shadow: 0 0 0 3px rgba(225, 29, 72, 0.2);
}

h1,
h2,
h3,
.section-title {
	font-family: var(--font-display);
	font-weight: 800;
	line-height: 1.15;
	letter-spacing: -0.02em;
}

.hero h1 {
	font-size: clamp(1.85rem, 4.8vw, 3.15rem);
	margin: 0 0 1.05rem;
	text-wrap: balance;
	letter-spacing: -0.03em;
	line-height: 1.12;
}

.hero-lead {
	font-size: clamp(1.02rem, 1.9vw, 1.22rem);
	color: var(--text-muted);
	margin: 0;
	max-width: 46ch;
	line-height: 1.65;
}

.brand-inline {
	color: var(--accent);
	font-weight: 700;
}

.hero-facts {
	list-style: none;
	padding: 0;
	margin: 0 0 1.5rem;
	display: grid;
	gap: 0.6rem;
	max-width: 34rem;
}

.hero-facts li {
	display: flex;
	align-items: center;
	gap: 0.6rem;
	font-size: 0.92rem;
	color: var(--text);
}

.hero-facts li::before {
	content: '';
	width: 0.55rem;
	height: 0.55rem;
	border-radius: 999px;
	background: var(--accent);
	flex-shrink: 0;
}

.hero-cta {
	display: flex;
	flex-wrap: wrap;
	gap: 0.85rem 1rem;
	margin-top: 0.35rem;
}

@media (max-width: 520px) {
	.hero-cta {
		flex-direction: column;
		align-items: stretch;
	}

	.hero-cta .btn {
		width: 100%;
		justify-content: center;
	}
}

.hero-cta .btn-primary {
	min-width: min(100%, 12.5rem);
	padding-inline: 1.25rem;
}

.hero-sidecard {
	position: relative;
	width: 100%;
	height: 100%;
	display: flex;
	flex-direction: column;
	padding: clamp(1.25rem, 2.5vw, 1.55rem) clamp(1.15rem, 2.2vw, 1.45rem);
	border: 1px solid var(--border);
	border-radius: calc(var(--radius-lg) + 2px);
	border-top: 3px solid var(--accent);
	background: linear-gradient(165deg, rgba(255, 255, 255, 0.94) 0%, var(--bg-elevated) 55%, var(--bg-elevated) 100%);
	box-shadow: var(--surface-shadow);
	backdrop-filter: blur(12px);
	overflow: hidden;
}

.hero-sidecard::after {
	content: '';
	position: absolute;
	inset: auto -30% -40% auto;
	width: 55%;
	height: 55%;
	background: radial-gradient(circle at center, rgba(225, 29, 72, 0.09) 0%, transparent 68%);
	pointer-events: none;
}

html.dark .hero-sidecard {
	background: linear-gradient(165deg, rgba(22, 28, 38, 0.98) 0%, var(--bg-elevated) 55%, var(--bg-elevated) 100%);
	box-shadow: var(--surface-shadow), 0 0 44px -20px rgba(225, 29, 72, 0.16);
}

.hero-sidecard__header {
	position: relative;
	z-index: 1;
	flex: 1;
	min-height: 0;
}

.hero-sidecard__eyebrow {
	display: inline-block;
	font-family: var(--font-display);
	font-size: 0.72rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--accent);
}

.hero-sidecard__title {
	margin: 0.6rem 0 0.55rem;
	font-family: var(--font-display);
	font-size: clamp(1.2rem, 2.3vw, 1.6rem);
	line-height: 1.2;
}

.hero-sidecard__text {
	margin: 0;
	color: var(--text-muted);
	font-size: 0.95rem;
	line-height: 1.6;
}

.hero-sidecard__footer {
	position: relative;
	z-index: 1;
	margin-top: auto;
	padding-top: 1.15rem;
	border-top: 1px solid var(--border);
}

.hero-sidecard__phone {
	display: inline-flex;
	align-items: center;
	gap: 0.55rem;
	padding: 0.55rem 1rem 0.55rem 0.85rem;
	border-radius: 999px;
	border: 1px solid var(--border);
	background: color-mix(in srgb, var(--bg-elevated) 90%, transparent);
	font-family: var(--font-display);
	font-weight: 700;
	font-size: 1.02rem;
	color: var(--text);
	text-decoration: none;
	transition: border-color var(--transition), box-shadow var(--transition), color var(--transition);
}

.hero-sidecard__phone:hover {
	border-color: rgba(225, 29, 72, 0.45);
	box-shadow: 0 6px 22px -12px rgba(225, 29, 72, 0.35);
	color: var(--accent);
}

.hero-sidecard__phone i[data-lucide] {
	display: inline-block;
	flex-shrink: 0;
	color: var(--accent);
}

.hero-sidecard__phone i[data-lucide] svg {
	width: 100%;
	height: 100%;
}

.hero-sidecard__footer p,
.hero-sidecard__note {
	margin: 0.55rem 0 0;
	color: var(--text-muted);
	font-size: 0.88rem;
	line-height: 1.55;
	max-width: 26rem;
}

/* Sections */
section {
	padding: clamp(2rem, 4vw, 3.25rem) 0;
}

.section-surface {
	padding: 0.95rem 0;
}

.section-surface .wrap {
	padding-top: clamp(1.4rem, 3vw, 2rem);
	padding-bottom: clamp(1.4rem, 3vw, 2rem);
	border: 1px solid var(--border);
	border-radius: var(--radius-xl);
	background: var(--bg-elevated);
	box-shadow: var(--surface-shadow);
}

.section-surface--soft .wrap {
	background:
		linear-gradient(180deg, rgba(225, 29, 72, 0.04) 0%, var(--bg-elevated) 100%);
}

.section-surface--compact {
	padding-top: 0.5rem;
	padding-bottom: 0.5rem;
}

.section-title {
	font-size: clamp(1.5rem, 3vw, 2.25rem);
	text-align: center;
	margin: 0 0 1.8rem;
	text-transform: none;
	letter-spacing: -0.02em;
}

.section-title::before {
	content: '';
	display: block;
	width: 2.75rem;
	height: 3px;
	margin: 0 auto 0.95rem;
	border-radius: 3px;
	background: linear-gradient(90deg, var(--accent), var(--accent-dim));
}

.section-intro {
	max-width: 44rem;
	margin: -0.6rem auto 1.6rem;
	text-align: center;
	color: var(--text-muted);
	font-size: 0.98rem;
}

.section-intro--narrow {
	max-width: 38rem;
	margin-top: 1.25rem;
}

.products-mesh-legend {
	font-size: 0.93rem;
	line-height: 1.55;
}

.section-intro a {
	color: var(--accent);
}

/* «Услуги», «Wi‑Fi роутеры»: вводные абзацы — как мобильный футер */
@media (max-width: 899px) {
	#SERVICES .section-intro,
	#PRODUCTS .section-intro {
		max-width: 22rem;
		margin-left: auto;
		margin-right: auto;
		margin-top: -0.4rem;
		margin-bottom: 1.5rem;
		text-align: left;
		text-wrap: balance;
		padding-right: 1.15rem;
		box-sizing: border-box;
	}
}

/* Тёмная тема: мягкое красное свечение у поверхностей по всей странице */
html.dark .section-surface .wrap {
	box-shadow: var(--surface-shadow), var(--surface-red-glow);
	border-color: rgba(241, 245, 249, 0.09);
}

html.dark .section-surface--soft .wrap {
	background: linear-gradient(180deg, rgba(225, 29, 72, 0.07) 0%, var(--bg-elevated) 100%);
}

html.dark .site-header {
	border-bottom-color: rgba(225, 29, 72, 0.14);
	box-shadow:
		0 1px 0 rgba(225, 29, 72, 0.1),
		0 14px 36px -22px rgba(0, 0, 0, 0.55);
}

html.dark .step-card,
html.dark .condition-card,
html.dark .tariff-card,
html.dark .product-card,
html.dark .trust-card,
html.dark .trust-partners,
html.dark .promo-card,
html.dark .tabs-list,
html.dark .support-card,
html.dark .faq-item,
html.dark .product-modal__dialog {
	box-shadow: var(--surface-shadow), 0 0 40px -20px rgba(225, 29, 72, 0.14);
}

html.dark .step-card:hover,
html.dark .condition-card:hover,
html.dark .tariff-card:hover,
html.dark .product-card:hover {
	box-shadow: var(--surface-shadow), 0 0 52px -18px rgba(225, 29, 72, 0.22);
}

html.dark .tabs-panel.is-active {
	box-shadow: var(--surface-shadow), 0 0 44px -22px rgba(225, 29, 72, 0.15);
}

/* Светлая тема: та же логика подсветки, но деликатнее */
html.light .section-surface .wrap {
	box-shadow: var(--surface-shadow), var(--surface-red-glow);
	border-color: rgba(15, 23, 42, 0.07);
}

html.light .section-surface--soft .wrap {
	background: linear-gradient(180deg, rgba(225, 29, 72, 0.045) 0%, var(--bg-elevated) 100%);
}

html.light .site-header {
	border-bottom-color: rgba(225, 29, 72, 0.12);
	box-shadow:
		0 1px 0 rgba(225, 29, 72, 0.06),
		0 14px 36px -26px rgba(15, 23, 42, 0.12);
}

html.light .step-card,
html.light .condition-card,
html.light .tariff-card,
html.light .product-card,
html.light .trust-card,
html.light .trust-partners,
html.light .promo-card,
html.light .tabs-list,
html.light .support-card,
html.light .faq-item,
html.light .product-modal__dialog {
	box-shadow: var(--surface-shadow), 0 0 36px -22px rgba(225, 29, 72, 0.08);
}

html.light .step-card:hover,
html.light .condition-card:hover,
html.light .tariff-card:hover,
html.light .product-card:hover {
	box-shadow: var(--surface-shadow), 0 0 48px -20px rgba(225, 29, 72, 0.12);
}

html.light .hero-sidecard {
	box-shadow: var(--surface-shadow), 0 0 40px -22px rgba(225, 29, 72, 0.08);
}

html.light .tabs-panel.is-active {
	box-shadow: var(--surface-shadow), 0 0 40px -22px rgba(225, 29, 72, 0.09);
}

/* Steps */
.steps-grid {
	display: grid;
	gap: 1.25rem;
}

.steps-grid--compact {
	max-width: 980px;
	margin: 0 auto;
}

@media (min-width: 900px) {
	.steps-grid--compact {
		grid-template-columns: repeat(3, 1fr);
	}
}

@media (min-width: 900px) {
	.steps-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

.step-card {
	display: grid;
	grid-template-columns: 1fr auto;
	gap: 1.25rem;
	align-items: center;
	padding: 1.35rem 1.45rem;
	background: var(--bg-elevated);
	border: 1px solid var(--border);
	border-radius: var(--radius-lg);
	box-shadow: var(--surface-shadow);
	transition: transform var(--transition), border-color var(--transition);
}

.step-card:hover {
	transform: translateY(-2px);
	border-color: rgba(225, 29, 72, 0.25);
}

.step-num {
	font-family: var(--font-display);
	font-size: clamp(2rem, 4vw, 3rem);
	font-weight: 700;
	color: var(--accent);
	line-height: 1;
	opacity: 0.9;
}

.step-text {
	font-size: 1.05rem;
	font-weight: 500;
	margin: 0;
}

.step-card img {
	width: 100px;
	height: auto;
}

.step-card i[data-lucide] {
	width: 70px;
	height: auto;
	display: block;
	color: var(--accent);
}

.step-card i[data-lucide] svg {
	width: 100%;
	height: 100%;
}

.condition-card {
	padding: 1.25rem;
	border: 1px solid var(--border);
	border-radius: var(--radius-lg);
	background: var(--bg-elevated);
	box-shadow: var(--surface-shadow);
}

.condition-card h3 {
	margin: 0 0 0.7rem;
	font-family: var(--font-display);
	font-size: 1.05rem;
}

.condition-modal-source__lead {
	margin: 0 0 1rem;
	font-size: 0.95rem;
	line-height: 1.6;
	color: var(--text-muted);
}

.condition-modal-source .product-details-btn {
	width: 100%;
}

.product-modal__body .tariff-modal-subheading--first {
	margin-top: 0;
}

/* Акции */
.promo-section .wrap {
	max-width: 56rem;
}

.promo-section .section-title {
	margin-bottom: 0.65rem;
}

.promo-grid {
	display: grid;
	gap: 1.25rem;
	align-items: stretch;
}

@media (min-width: 768px) {
	.promo-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

.promo-card {
	position: relative;
	height: 100%;
	display: flex;
	flex-direction: column;
	border-color: rgba(225, 29, 72, 0.22);
	box-shadow: var(--surface-shadow), 0 0 0 1px rgba(225, 29, 72, 0.06);
}

.promo-card .product-details-btn {
	margin-top: auto;
}

.promo-card__title {
	text-transform: uppercase;
	letter-spacing: 0.04em;
	font-size: clamp(0.95rem, 2.2vw, 1.08rem);
}

html.dark .promo-card {
	border-color: rgba(225, 29, 72, 0.35);
	box-shadow: var(--surface-shadow), 0 0 0 1px rgba(225, 29, 72, 0.12);
}

/* Tariffs */
.tariffs-grid {
	display: grid;
	gap: 1.25rem;
	align-items: stretch;
}

@media (min-width: 768px) {
	.tariffs-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (min-width: 1200px) {
	.tariffs-grid {
		grid-template-columns: repeat(3, 1fr);
	}
}

/* Пять тарифов в ряд на широких экранах */
.tariffs-grid--five {
	grid-template-columns: 1fr;
}

@media (min-width: 640px) {
	.tariffs-grid--five {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (min-width: 900px) {
	.tariffs-grid--five {
		grid-template-columns: repeat(3, 1fr);
	}
}

@media (min-width: 1280px) {
	.tariffs-grid--five {
		grid-template-columns: repeat(3, 1fr);
	}
}

@media (min-width: 1600px) {
	.tariffs-grid--five {
		grid-template-columns: repeat(5, 1fr);
	}
}

/* Секция тарифов — акцент на странице */
.pricing-section.section-surface {
	padding-top: clamp(1.35rem, 3vw, 2rem);
	padding-bottom: clamp(1.35rem, 3vw, 2rem);
}

.pricing-section.section-surface .wrap {
	border-color: rgba(225, 29, 72, 0.24);
	background: linear-gradient(185deg, rgba(225, 29, 72, 0.07) 0%, var(--bg-elevated) 38%, var(--bg-elevated) 100%);
	box-shadow: var(--surface-shadow), 0 0 0 1px rgba(225, 29, 72, 0.06), 0 28px 70px -36px rgba(225, 29, 72, 0.22);
}

html.dark .pricing-section.section-surface .wrap {
	border-color: rgba(225, 29, 72, 0.32);
	background: linear-gradient(185deg, rgba(225, 29, 72, 0.12) 0%, var(--bg-elevated) 40%, var(--bg-elevated) 100%);
	box-shadow: var(--surface-shadow), 0 0 0 1px rgba(225, 29, 72, 0.1), 0 32px 72px -34px rgba(225, 29, 72, 0.28);
}

.pricing-eyebrow {
	margin: 0 auto 0.35rem;
	max-width: 44rem;
	text-align: center;
	font-family: var(--font-display);
	font-size: 0.72rem;
	font-weight: 800;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--accent);
}

.pricing-section .section-title {
	margin-bottom: 1rem;
}

.tariff-region-intro {
	text-align: center;
	color: var(--text-muted);
	max-width: 44rem;
	margin: 0 auto 1.1rem;
	line-height: 1.55;
	font-size: 0.98rem;
}

.pon-explain {
	max-width: 900px;
	margin: 0 auto 1.5rem;
	padding: 1.2rem 1.15rem;
	background: var(--bg-elevated);
	border: 1px solid var(--border);
	border-radius: var(--radius-lg);
	box-shadow: var(--card-shadow);
}

.pon-title {
	font-family: var(--font-display);
	font-weight: 800;
	margin: 0 0 0.5rem;
	font-size: 1.15rem;
	letter-spacing: -0.02em;
	text-transform: uppercase;
}

.pon-text {
	margin: 0 0 0.9rem;
	color: var(--text-muted);
	line-height: 1.65;
	font-size: 1rem;
}

.pon-list {
	margin: 0;
	padding-left: 1.15rem;
	display: grid;
	gap: 0.6rem;
	color: var(--text-muted);
	line-height: 1.6;
	font-size: 0.95rem;
}

.pon-list li strong {
	color: var(--text);
	font-weight: 800;
}

.pon-explain:focus-within {
	border-color: rgba(225, 29, 72, 0.35);
}

.location-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	justify-content: center;
	margin-bottom: 0.65rem;
}

.location-chip {
	font-family: var(--font-display);
	font-size: 0.78rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	padding: 0.55rem 1rem;
	border-radius: 999px;
	border: 2px solid var(--border);
	background: var(--bg-elevated);
	color: var(--text-muted);
	cursor: pointer;
	transition:
		border-color var(--transition),
		color var(--transition),
		background var(--transition),
		box-shadow var(--transition);
}

.location-chip:hover {
	border-color: rgba(225, 29, 72, 0.45);
	color: var(--text);
}

.location-chip.is-active {
	border-color: var(--accent);
	color: var(--accent);
	background: rgba(225, 29, 72, 0.08);
	box-shadow: 0 4px 16px -4px var(--accent-glow);
}

.tariff-location-live {
	text-align: center;
	font-size: 0.95rem;
	margin: 0 0 1.75rem;
	color: var(--text-muted);
}

.tariff-location-name {
	color: var(--accent);
	font-weight: 700;
}

.tariff-duplex {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: center;
	gap: 0.2rem 0.45rem;
	font-family: var(--font-display);
	font-size: clamp(1.05rem, 2vw, 1.2rem);
	font-weight: 600;
	line-height: 1;
	font-variant-numeric: tabular-nums;
	font-feature-settings: 'tnum' 1;
}

.tariff-duplex strong {
	font-size: clamp(2rem, 4.2vw, 2.6rem);
	font-weight: 800;
	line-height: 1;
}

.tariff-speed-caption {
	display: block;
	margin-top: 0.35rem;
	max-width: 14rem;
	margin-left: auto;
	margin-right: auto;
	font-size: 0.72rem;
	font-weight: 600;
	color: var(--text-muted);
	text-transform: uppercase;
	letter-spacing: 0.05em;
	line-height: 1.35;
}

.tariff-card--featured .tariff-speed-caption {
	color: var(--text-muted);
}

.badge-max {
	font-size: 0.65rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	background: #334155;
	color: #f8fafc;
	padding: 0.25rem 0.6rem;
	border-radius: 999px;
	white-space: nowrap;
}

/* IPTV */
.iptv-lead {
	text-align: center;
	max-width: 42rem;
	margin: 0 auto;
	color: var(--text-muted);
	line-height: 1.6;
	font-size: 1.02rem;
}

.iptv-compact {
	max-width: 800px;
	margin: 0 auto;
	padding: 1.4rem 1.5rem;
	border: 1px solid var(--border);
	border-radius: var(--radius-lg);
	background: var(--bg-elevated);
	box-shadow: var(--card-shadow);
	text-align: center;
}

.iptv-compact .section-title {
	margin-bottom: 1rem;
	font-size: clamp(1.25rem, 2.3vw, 1.75rem);
}

.iptv-grid {
	display: grid;
	gap: 1.25rem;
}

.iptv-grid--single {
	grid-template-columns: 1fr;
	justify-items: center;
}

.iptv-grid--single .iptv-card {
	max-width: 560px;
	width: 100%;
}

@media (min-width: 900px) {
	.iptv-grid {
		grid-template-columns: repeat(3, 1fr);
		align-items: stretch;
	}

	.iptv-grid--single {
		grid-template-columns: 1fr;
	}
}

.iptv-card {
	position: relative;
	padding: 1.5rem;
	padding-top: 1.75rem;
	background: var(--bg-elevated);
	border: 1px solid var(--border);
	border-radius: var(--radius-lg);
	box-shadow: var(--card-shadow);
	display: flex;
	flex-direction: column;
	min-height: 100%;
	transition:
		transform var(--transition),
		border-color var(--transition);
}

.iptv-card:hover {
	transform: translateY(-3px);
	border-color: rgba(225, 29, 72, 0.2);
}

.iptv-card--featured {
	border-color: rgba(225, 29, 72, 0.35);
	box-shadow: 0 10px 32px -8px var(--accent-glow);
}

.iptv-badge {
	position: absolute;
	top: 0.85rem;
	right: 0.85rem;
	font-size: 0.62rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	background: var(--accent);
	color: #fff;
	padding: 0.28rem 0.55rem;
	border-radius: 999px;
}

.iptv-card-title {
	font-family: var(--font-display);
	font-size: 1.2rem;
	font-weight: 800;
	margin: 0 0 0.65rem;
	letter-spacing: -0.02em;
}

.iptv-card-desc {
	margin: 0 0 1rem;
	font-size: 0.95rem;
	color: var(--text-muted);
	flex: 1;
	line-height: 1.55;
}

.iptv-card-price {
	font-family: var(--font-display);
	font-size: 1.05rem;
	margin: 0 0 1rem;
}

.iptv-card-price strong {
	color: var(--accent);
	font-size: 1.25rem;
}

.iptv-card-list {
	margin: 0 0 1.25rem;
	padding-left: 1.15rem;
	font-size: 0.88rem;
	color: var(--text-muted);
	line-height: 1.5;
}

.iptv-card-btn {
	width: 100%;
	margin-top: auto;
}

.iptv-note {
	margin-top: 2rem;
	font-size: 0.9rem;
	color: var(--text-muted);
	text-align: center;
	max-width: 48rem;
	margin-left: auto;
	margin-right: auto;
	line-height: 1.65;
}

.tariff-card {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	text-align: center;
	padding: clamp(1.2rem, 2.5vw, 1.45rem) clamp(1rem, 2vw, 1.25rem) 1.25rem;
	background: var(--bg-elevated);
	border: 1px solid var(--border);
	border-radius: var(--radius-lg);
	box-shadow: var(--surface-shadow);
	position: relative;
	overflow: hidden;
	transition: transform var(--transition), border-color var(--transition), box-shadow var(--transition);
}

.tariff-card:hover {
	transform: translateY(-3px);
	border-color: rgba(225, 29, 72, 0.25);
	box-shadow: 0 16px 36px -24px rgba(225, 29, 72, 0.25);
}

.tariff-card--featured {
	background: linear-gradient(180deg, rgba(225, 29, 72, 0.08) 0%, var(--bg-elevated) 65%);
	border-color: rgba(225, 29, 72, 0.3);
	color: var(--text);
}

.tariff-card--featured .tariff-muted {
	color: var(--text-muted);
}

.tariff-card--featured .tariff-border {
	border-color: var(--border);
}

.tariff-muted {
	color: var(--text-muted);
}

.tariff-speed.tariff-muted .tariff-duplex,
.tariff-speed.tariff-muted .tariff-duplex strong {
	color: var(--text);
}

.tariff-head {
	display: flex;
	justify-content: center;
	align-items: center;
	flex-wrap: wrap;
	gap: 0.45rem 0.65rem;
	margin-bottom: 0.55rem;
	min-height: 2.1rem;
}

.tariff-name {
	font-family: var(--font-display);
	font-weight: 800;
	font-size: 1.02rem;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.badge-popular {
	font-size: 0.65rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	background: #b45309;
	color: #fff;
	padding: 0.25rem 0.6rem;
	border-radius: 999px;
	white-space: nowrap;
}

.tariff-speed {
	display: flex;
	flex-direction: column;
	align-items: center;
	margin-bottom: 0.85rem;
	font-size: 0.95rem;
}

.tariff-speed strong {
	font-size: inherit;
	font-weight: inherit;
	font-family: inherit;
	display: inline;
}

.tariff-speed .tariff-duplex strong {
	font-size: clamp(2rem, 4.2vw, 2.6rem);
}

.tariff-border {
	border: 0;
	border-top: 1px solid var(--border);
	margin: 0 0 0.85rem;
	width: 100%;
}

.tariff-row {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	margin: 0 auto 0.7rem;
	max-width: 100%;
	font-size: 0.9rem;
	line-height: 1.35;
	text-align: left;
}

.tariff-row img {
	width: 22px;
	height: 22px;
	flex-shrink: 0;
}

.tariff-row i[data-lucide] {
	width: 22px;
	height: 22px;
	flex-shrink: 0;
	display: inline-block;
	color: var(--accent);
}

.tariff-row i[data-lucide] svg {
	width: 100%;
	height: 100%;
}

.tariff-price-block {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 0.15rem;
	margin: 0 0 0.95rem;
	padding: 0.65rem 0.75rem;
	min-height: 4.1rem;
	width: 100%;
	box-sizing: border-box;
	text-align: center;
	border-radius: var(--radius);
	background: rgba(225, 29, 72, 0.07);
	border: 1px solid rgba(225, 29, 72, 0.14);
}

.tariff-card--featured .tariff-price-block {
	background: rgba(225, 29, 72, 0.11);
	border-color: rgba(225, 29, 72, 0.22);
}

.tariff-price-block--soft {
	background: rgba(15, 23, 42, 0.04);
	border-color: var(--border);
}

html.dark .tariff-price-block--soft {
	background: rgba(255, 255, 255, 0.04);
}

.tariff-price-block__value {
	font-family: var(--font-display);
	font-weight: 800;
	font-size: clamp(1.35rem, 3.2vw, 1.65rem);
	line-height: 1.05;
	letter-spacing: 0.02em;
	font-variant-numeric: tabular-nums;
	font-feature-settings: 'tnum' 1;
	color: var(--accent);
}

.tariff-price-block.tariff-muted .tariff-price-block__value {
	color: var(--accent);
}

.tariff-price-block__suffix {
	font-size: 0.72rem;
	font-weight: 600;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	color: var(--text-muted);
}

.tariff-card__actions {
	display: flex;
	flex-direction: column;
	gap: 0.65rem;
	margin-top: auto;
	width: 100%;
	align-self: stretch;
}

.tariff-card__actions .btn {
	width: 100%;
}

.tariff-modal-footnote {
	margin: 1rem 0 0;
	padding-top: 0.85rem;
	border-top: 1px solid var(--border);
	font-size: 0.88rem;
	line-height: 1.55;
	color: var(--text-muted);
}

.product-modal__body .tariff-modal-subheading {
	margin: 1.2rem 0 0.5rem;
	font-family: var(--font-display);
	font-size: 0.78rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--accent);
}

/* Product cards (routers) */
.products-nav {
	display: flex;
	justify-content: space-between;
	gap: 0.6rem;
	max-width: 1180px;
	margin: -0.4rem auto 1rem;
}

.products-nav__btn {
	width: 2.7rem;
	height: 2.7rem;
	border: 1px solid var(--border);
	border-radius: 999px;
	background: var(--bg-elevated);
	color: var(--text);
	font-size: 1.5rem;
	line-height: 1;
	cursor: pointer;
	box-shadow: var(--surface-shadow);
}

.products-nav__btn:hover {
	border-color: var(--accent);
	color: var(--accent);
}

.products-scroll {
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: minmax(280px, 340px);
	gap: 1.5rem;
	max-width: 1180px;
	margin: 0 auto;
	overflow-x: auto;
	padding: 0.25rem 0 1rem;
	scroll-snap-type: x proximity;
	scrollbar-width: thin;
}

.product-card {
	background: var(--bg-elevated);
	border: 1px solid var(--border);
	border-radius: var(--radius-lg);
	overflow: hidden;
	box-shadow: var(--surface-shadow);
	display: flex;
	flex-direction: column;
	scroll-snap-align: start;
	transition: transform var(--transition), box-shadow var(--transition);
}

.product-card:hover {
	transform: translateY(-2px);
	box-shadow: 0 14px 32px -20px rgba(0, 0, 0, 0.2);
}

.product-card__media {
	background: #fff;
	padding: 0.5rem;
	min-height: 200px;
	display: flex;
	align-items: center;
	justify-content: center;
	position: relative;
	cursor: pointer;
	transition: box-shadow var(--transition), background-color var(--transition);
}

.product-card__media:hover {
	box-shadow: inset 0 0 0 1px rgba(225, 29, 72, 0.18);
}

.product-card__media:focus-visible {
	outline: 2px solid var(--accent);
	outline-offset: 2px;
}

.product-card__media img {
	max-height: 180px;
	width: auto;
	object-fit: contain;
	pointer-events: none;
}

.product-badge {
	position: absolute;
	top: 0.75rem;
	left: 0.75rem;
	font-size: 0.65rem;
	font-weight: 700;
	text-transform: uppercase;
	padding: 0.3rem 0.6rem;
	border-radius: 999px;
	color: #fff;
}

.product-badge--rent {
	background: #16a34a;
}

.product-badge--rent-sale {
	background: linear-gradient(135deg, #2563eb, #7c3aed);
}

.product-badge--sale {
	background: #ca8a04;
}

.product-card__body {
	padding: 1.25rem;
	flex: 1;
	display: flex;
	flex-direction: column;
}

.product-card__body h4 {
	margin: 0.25rem 0 1rem;
	font-family: var(--font-display);
	font-size: 1.25rem;
}

.product-meta {
	font-size: 0.9rem;
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}

.product-meta-row {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 0.35rem 0.65rem;
	align-items: start;
}

.product-meta-row span:last-child {
	color: var(--accent);
	font-weight: 700;
	text-align: right;
}

.product-divider {
	border: 0;
	border-top: 2px solid var(--border);
	margin: 0.75rem 0;
}

.product-card__actions {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
	margin-top: 1rem;
}

.product-card__actions .btn {
	width: 100%;
}

.product-modal {
	position: fixed;
	inset: 0;
	z-index: 10050;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: max(1rem, env(safe-area-inset-top, 0px)) max(1rem, env(safe-area-inset-right, 0px)) max(1rem, env(safe-area-inset-bottom, 0px))
		max(1rem, env(safe-area-inset-left, 0px));
}

.product-modal[hidden] {
	display: none !important;
}

.product-modal__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(2, 6, 23, 0.62);
	backdrop-filter: blur(6px);
}

.product-modal__dialog {
	position: relative;
	z-index: 1;
	width: min(100%, 720px);
	max-height: min(88vh, 760px);
	max-height: min(88dvh, 760px);
	overflow: auto;
	-webkit-overflow-scrolling: touch;
	padding: 1.35rem 1.35rem 1.2rem;
	border: 1px solid var(--border);
	border-radius: var(--radius-lg);
	background: var(--bg-elevated);
	box-shadow: 0 28px 70px -36px rgba(15, 23, 42, 0.45);
}

.product-modal__close {
	position: absolute;
	top: 0.8rem;
	right: 0.8rem;
	width: 2.3rem;
	height: 2.3rem;
	border: 0;
	border-radius: 999px;
	background: rgba(148, 163, 184, 0.14);
	color: var(--text);
	cursor: pointer;
}

.product-modal__title {
	margin: 0 2.6rem 1rem 0;
	font-family: var(--font-display);
	font-size: clamp(1.2rem, 2.4vw, 1.7rem);
}

.product-modal__body {
	color: var(--text-muted);
	font-size: 0.98rem;
	line-height: 1.7;
}

.product-modal__body p {
	margin: 0 0 0.9rem;
}

.product-details__list {
	margin: 0;
	padding-left: 1.2rem;
}

.product-details__list li + li {
	margin-top: 0.35rem;
}

/* News */
.news-list {
	display: flex;
	flex-direction: column;
	gap: 1.15rem;
	max-width: 860px;
	margin: 0 auto;
}

.news-item {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 1rem;
	align-items: start;
	padding: 1.15rem 1.2rem;
	border: 1px solid var(--border);
	border-radius: var(--radius);
	background: var(--bg-elevated);
	box-shadow: var(--card-shadow);
}

.news-item__icon img {
	width: 28px;
	height: 28px;
	opacity: 0.85;
}

.news-item__icon i[data-lucide] {
	width: 28px;
	height: 28px;
	opacity: 0.85;
	display: inline-block;
	color: var(--accent);
}

.news-item__icon i[data-lucide] svg {
	width: 100%;
	height: 100%;
}

.news-tag {
	font-weight: 700;
	color: var(--accent);
	margin-right: 0.75rem;
}

.news-title {
	font-family: var(--font-display);
	font-size: 1.1rem;
	font-weight: 700;
	text-transform: uppercase;
	margin: 0.5rem 0;
	line-height: 1.35;
}

.news-body {
	margin: 0;
	color: var(--text-muted);
	font-size: 1rem;
}

.news-update-note {
	margin: 0;
	text-align: center;
	font-size: 1rem;
	color: var(--text-muted);
}

.news-compact {
	max-width: 760px;
	margin: 0 auto;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
}

.news-compact .section-title {
	margin-bottom: 0.65rem;
}

/* Promo */
.promo-card {
	max-width: 900px;
	margin: 0 auto;
	padding: clamp(1.35rem, 3vw, 1.9rem);
	background: var(--bg-elevated);
	border: 1px solid var(--border);
	border-radius: var(--radius-lg);
	box-shadow: 0 8px 24px -16px rgba(15, 23, 42, 0.18);
}

.promo-head {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 1rem;
	text-align: center;
	margin-bottom: 1.25rem;
}

@media (min-width: 768px) {
	.promo-head {
		flex-direction: row;
		text-align: left;
	}
}

.promo-head img {
	width: 72px;
	height: 72px;
}

.promo-head i[data-lucide] {
	width: 72px;
	height: 72px;
	display: inline-block;
	color: var(--accent);
}

.promo-head i[data-lucide] svg {
	width: 100%;
	height: 100%;
}

.promo-title {
	font-family: var(--font-display);
	font-size: clamp(1.25rem, 3vw, 1.75rem);
	font-weight: 800;
	margin: 0;
}

.promo-text {
	color: var(--text-muted);
	margin: 0 0 1.5rem;
}

/* Services tabs */
.services-wrap {
	max-width: 960px;
	margin: 0 auto;
}

/* Прейскурант: раскрытие по клику */
.services-pricelist-disclosure {
	max-width: 960px;
	margin: 0.35rem auto 0;
}

.services-pricelist-disclosure__summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	list-style: none;
	cursor: pointer;
	padding: 0.9rem 1.05rem;
	font-family: var(--font-display);
	font-weight: 700;
	font-size: 0.92rem;
	line-height: 1.35;
	text-align: left;
	color: var(--text);
	border: 1px solid var(--border);
	border-radius: var(--radius-lg);
	background: var(--bg-elevated);
	box-shadow: var(--card-shadow);
	transition: border-color var(--transition), box-shadow var(--transition);
}

.services-pricelist-disclosure__summary::-webkit-details-marker {
	display: none;
}

.services-pricelist-disclosure__summary::marker {
	content: '';
}

.services-pricelist-disclosure__summary:hover {
	border-color: rgba(225, 29, 72, 0.28);
	box-shadow: 0 12px 28px -18px rgba(225, 29, 72, 0.35);
}

.services-pricelist-disclosure__summary:focus {
	outline: none;
}

.services-pricelist-disclosure__summary:focus-visible {
	outline: 2px solid var(--accent);
	outline-offset: 3px;
}

.services-pricelist-disclosure__chevron {
	display: block;
	flex-shrink: 0;
	width: 0.55rem;
	height: 0.55rem;
	margin-top: -0.2rem;
	border-right: 2px solid var(--accent);
	border-bottom: 2px solid var(--accent);
	transform: rotate(45deg);
	transition: transform 0.2s ease;
}

.services-pricelist-disclosure[open] .services-pricelist-disclosure__chevron {
	transform: rotate(-135deg);
	margin-top: 0.15rem;
}

.services-pricelist-disclosure[open] .services-pricelist-disclosure__summary {
	margin-bottom: 0.85rem;
}

/* Прейскурант монтажных работ (вкладки) */
.mount-pricelist-wrap {
	max-width: 960px;
	margin: 0 auto;
}

.mount-pricelist-wrap > .mount-pricelist__legend {
	margin: 0 0 1rem;
	padding: 0 0.5rem;
	font-size: 0.92rem;
	font-weight: 500;
	line-height: 1.55;
	letter-spacing: 0;
	text-transform: none;
	text-align: left;
	color: var(--text-muted);
}

.mount-pricelist-wrap > .mount-pricelist__legend strong {
	color: var(--text);
	font-weight: 700;
}

.mount-pricelist {
	padding: 0.15rem 0 0.35rem;
}

.mount-pricelist__section-title {
	margin: 0 0 0.75rem;
	padding-bottom: 0.45rem;
	border-bottom: 2px solid var(--border);
	font-family: var(--font-display);
	font-size: 1.05rem;
	font-weight: 800;
	color: var(--text);
}

@media (min-width: 768px) and (max-width: 1199px) {
	.mount-pricelist-wrap .tabs-list {
		flex-wrap: wrap;
	}

	.mount-pricelist-wrap .tabs-list button {
		flex: 1 1 30%;
		min-width: 7.5rem;
		font-size: 0.72rem;
		padding-left: 0.55rem;
		padding-right: 0.55rem;
	}
}

.pricelist-item-head {
	margin: 1.1rem 0 0.25rem;
	font-size: 0.95rem;
	font-weight: 700;
	color: var(--text);
	line-height: 1.45;
}

.mount-pricelist .pricelist-item-head {
	display: grid;
	grid-template-columns: 2.35rem minmax(0, 1fr);
	column-gap: 0.6rem;
	row-gap: 0.15rem;
	align-items: start;
}

.pricelist-item-head__no {
	display: inline-block;
	min-width: 1.5rem;
	margin-right: 0.35rem;
	font-family: var(--font-display);
	font-weight: 800;
	color: var(--accent);
}

.mount-pricelist .pricelist-item-head .pricelist-item-head__no {
	margin: 0.1rem 0 0;
	min-width: 0;
	width: 100%;
	font-variant-numeric: tabular-nums;
	text-align: center;
	line-height: 1.35;
	justify-self: center;
}

.mount-pricelist .service-row span:first-child {
	min-width: 0;
	color: var(--text-muted);
	font-size: 0.95rem;
	line-height: 1.45;
}

.mount-pricelist__notes {
	margin: 1.75rem 0 0;
	padding-left: 1.25rem;
	color: var(--text-muted);
	font-size: 0.92rem;
	line-height: 1.6;
}

.mount-pricelist__notes li + li {
	margin-top: 0.65rem;
}

.mount-pricelist__notes--below-tabs {
	margin-top: 1.25rem;
	margin-bottom: 0;
	padding: 1rem 1.25rem 1.05rem 1.5rem;
	text-align: left;
	background: var(--bg-elevated);
	border: 1px solid var(--border);
	border-radius: var(--radius-lg);
	box-shadow: var(--surface-shadow);
}

.tabs-list {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	padding: 0.5rem;
	background: var(--bg-elevated);
	border: 1px solid var(--border);
	border-radius: var(--radius-lg);
	margin-bottom: 1rem;
}

@media (min-width: 768px) {
	.tabs-list {
		flex-direction: row;
	}
}

@media (min-width: 768px) and (max-width: 1199px) {
	.services-wrap .tabs-list {
		flex-wrap: wrap;
	}

	.services-wrap .tabs-list button {
		flex: 1 1 31%;
		min-width: 8.5rem;
		font-size: 0.78rem;
	}
}

.tabs-list button {
	flex: 1;
	font-family: var(--font-display);
	font-weight: 700;
	font-size: 0.85rem;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	padding: 1rem;
	border: none;
	border-radius: var(--radius);
	background: transparent;
	color: var(--text-muted);
	cursor: pointer;
	transition: background var(--transition), color var(--transition);
}

.tabs-list button[aria-selected='true'] {
	background: var(--bg);
	color: var(--text);
	box-shadow: var(--card-shadow);
}

.tabs-panel {
	display: none;
	padding: 1.75rem;
	background: var(--bg-elevated);
	border: 1px solid var(--border);
	border-radius: var(--radius-lg);
	box-shadow: var(--surface-shadow);
}

.tabs-panel.is-active {
	display: block;
}

.service-row {
	display: grid;
	grid-template-columns: 1fr;
	gap: 0.45rem;
	padding: 0.85rem 0;
	border-bottom: 1px dashed var(--border);
	align-items: start;
}

@media (min-width: 640px) {
	.service-row {
		grid-template-columns: minmax(0, 1fr) minmax(6.5rem, max-content);
		column-gap: 1.25rem;
		align-items: baseline;
		row-gap: 0.2rem;
	}

	/* Ровная колонка цен в прейскуранте */
	.mount-pricelist .service-row {
		grid-template-columns: minmax(0, 1fr) 7.75rem;
		column-gap: 1.5rem;
		align-items: center;
	}
}

.service-row:last-child {
	border-bottom: none;
}

.service-price {
	display: inline-flex;
	align-items: baseline;
	justify-content: flex-start;
	gap: 0.28rem;
	flex-wrap: nowrap;
	font-family: var(--font-display);
	font-weight: 800;
	color: var(--accent);
	white-space: nowrap;
}

@media (min-width: 640px) {
	.service-price {
		justify-content: flex-end;
		justify-self: end;
		text-align: right;
	}
}

.mount-pricelist .service-price {
	width: 100%;
	box-sizing: border-box;
}

@media (min-width: 640px) {
	.mount-pricelist .service-price {
		justify-self: stretch;
		padding-left: 0.25rem;
	}
}

.mount-pricelist .price-amount {
	font-size: 1.05rem;
	font-variant-numeric: tabular-nums;
	font-feature-settings: 'tnum' 1;
	letter-spacing: -0.01em;
}

.mount-pricelist .price-currency {
	font-size: 0.82rem;
	font-weight: 700;
	opacity: 0.88;
	line-height: 1;
}

/* Support block */
.support-grid {
	display: grid;
	gap: 1.25rem;
	max-width: 1080px;
	margin: 0 auto;
}

@media (min-width: 900px) {
	.support-grid {
		grid-template-columns: 1fr 1fr;
	}
}

.support-card {
	background: var(--bg-elevated);
	border: 1px solid var(--border);
	border-radius: var(--radius-lg);
	box-shadow: var(--surface-shadow);
	padding: 1.25rem;
}

.support-card--checklist {
	background: linear-gradient(180deg, rgba(225, 29, 72, 0.07) 0%, var(--bg-elevated) 100%);
}

.support-card--note {
	background: linear-gradient(180deg, rgba(15, 23, 42, 0.03) 0%, var(--bg-elevated) 100%);
	border-color: rgba(15, 23, 42, 0.08);
}

.support-card--note .support-card-title {
	color: var(--text);
}

.support-rows {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
	margin-bottom: 1rem;
}

.support-row {
	display: flex;
	gap: 0.85rem;
	align-items: flex-start;
}

.support-row img {
	margin-top: 0.15rem;
	width: 22px;
	height: 22px;
}

.support-row i[data-lucide] {
	margin-top: 0.15rem;
	width: 22px;
	height: 22px;
	display: inline-block;
	color: var(--accent);
}

.support-row i[data-lucide] svg {
	width: 100%;
	height: 100%;
}

.support-row-title {
	font-family: var(--font-display);
	font-weight: 800;
	font-size: 0.95rem;
	margin-bottom: 0.15rem;
}

.support-row-link {
	color: var(--text);
	font-weight: 700;
}

.support-text {
	color: var(--text-muted);
	margin: 0 0 1rem;
	line-height: 1.65;
}

.support-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	margin-top: 0.5rem;
}

.support-card-title {
	font-family: var(--font-display);
	font-weight: 800;
	font-size: 1.15rem;
	margin: 0 0 0.75rem;
}

.support-list {
	margin: 0;
	padding-left: 1.15rem;
	color: var(--text-muted);
	line-height: 1.7;
}

.support-list li {
	margin: 0.35rem 0;
}

/* FAQ */
.faq-list {
	max-width: 920px;
	margin: 0 auto;
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}

@media (min-width: 980px) {
	.faq-list {
		display: grid;
		grid-template-columns: repeat(2, 1fr);
		align-items: start;
	}
}

.faq-item {
	border: 1px solid var(--border);
	border-radius: var(--radius);
	background: var(--bg-elevated);
	overflow: hidden;
	box-shadow: 0 8px 22px -18px rgba(15, 23, 42, 0.18);
}

.faq-item--important {
	border-color: rgba(225, 29, 72, 0.55);
	background: linear-gradient(180deg, rgba(225, 29, 72, 0.10) 0%, rgba(14, 23, 42, 0) 100%);
}

.faq-item--important .faq-trigger {
	color: var(--accent);
}

.faq-item--important .faq-panel {
	/* Важно: используем переменные, чтобы контраст был и в светлой, и в тёмной теме */
	color: var(--text-muted);
}

.faq-trigger {
	width: 100%;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 1rem;
	padding: 1.15rem 1.25rem;
	font-family: var(--font-display);
	font-size: 0.95rem;
	font-weight: 600;
	text-align: left;
	text-transform: none;
	letter-spacing: 0.01em;
	background: transparent;
	border: none;
	color: var(--text);
	cursor: pointer;
}

.faq-trigger svg {
	flex-shrink: 0;
	transition: transform var(--transition);
}

.faq-item.is-open .faq-trigger svg {
	transform: rotate(180deg);
}

.faq-panel {
	padding: 0 1.25rem 1.25rem;
	color: var(--text-muted);
	font-size: 0.95rem;
	line-height: 1.65;
}

.faq-panel a {
	color: var(--accent);
	text-decoration: underline;
	text-underline-offset: 0.15em;
}

.faq-panel a:hover {
	filter: brightness(1.08);
}

.faq-panel a:focus-visible {
	outline: 2px solid var(--accent);
	outline-offset: 2px;
	border-radius: 0.2rem;
}

.faq-panel[hidden] {
	display: none !important;
}

.trust-section {
	padding-top: 0;
}

.trust-grid {
	display: grid;
	gap: 1rem;
	max-width: 1180px;
	margin: 0 auto;
}

@media (min-width: 900px) {
	.trust-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

.trust-card {
	padding: 1.25rem;
	border: 1px solid var(--border);
	border-radius: var(--radius-lg);
	background: var(--bg-elevated);
	box-shadow: var(--surface-shadow);
}

.trust-card h3 {
	margin: 0 0 0.55rem;
	font-family: var(--font-display);
	font-size: 1.05rem;
}

.trust-card p {
	margin: 0;
	color: var(--text-muted);
}

.trust-card a {
	color: var(--accent);
	text-decoration: underline;
	text-underline-offset: 0.15em;
}

.trust-partners {
	max-width: 1180px;
	margin: 1rem auto 0;
	padding: 1.1rem 1.25rem;
	border: 1px solid var(--border);
	border-radius: var(--radius-lg);
	background: var(--bg-elevated);
	box-shadow: var(--surface-shadow);
}

.trust-partners__title {
	margin: 0 0 0.85rem;
	font-family: var(--font-display);
	font-size: 1.05rem;
}

.trust-partners__grid {
	display: grid;
	gap: 0.85rem;
}

.trust-partners__grid:has(> :only-child) {
	max-width: 26rem;
	margin-inline: auto;
}

@media (min-width: 900px) {
	.trust-partners__grid {
		grid-template-columns: repeat(2, 1fr);
	}

	.trust-partners__grid:has(> :only-child) {
		grid-template-columns: 1fr;
	}
}

.trust-partners__card {
	display: flex;
	flex-direction: column;
	gap: 0.65rem;
	padding: 0.9rem;
	border: 1px solid var(--border);
	border-radius: calc(var(--radius) - 0.15rem);
	background: rgba(255, 255, 255, 0.55);
	color: inherit;
}

html.dark .trust-partners__card {
	background: rgba(255, 255, 255, 0.03);
}

.trust-partners__logo {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 104px;
	padding: 0.85rem 1rem;
	border: 1px solid var(--border);
	border-radius: calc(var(--radius) - 0.15rem);
	background: #ffffff;
}

.trust-partners__logo img {
	display: block;
	width: min(220px, 100%);
	height: 64px;
	object-fit: contain;
	object-position: center;
}

.trust-partners__name {
	font-family: var(--font-display);
	font-weight: 700;
	font-size: 1rem;
}

.trust-partners__text {
	margin: 0;
	color: var(--text-muted);
}

/* Footer */
.site-footer {
	position: relative;
	z-index: 1;
	background: linear-gradient(180deg, #0b1220 0%, #09101b 100%);
	color: #e2e8f0;
	margin-top: 2rem;
}

.site-footer a:hover {
	color: #fda4af;
}

.site-footer a {
	color: #e2e8f0;
}

.site-footer a:focus-visible {
	outline: 2px solid #fb7185;
	outline-offset: 2px;
	border-radius: 0.3rem;
}

.footer-grid {
	display: grid;
	gap: 2.5rem;
	padding: clamp(2.5rem, 5vw, 4rem) 0;
}

@media (min-width: 900px) {
	.footer-grid {
		grid-template-columns: 1.2fr 0.8fr 1fr;
		align-items: start;
	}
}

/* Мобильный футер: колонки по центру экрана */
@media (max-width: 899px) {
	.footer-grid {
		justify-items: center;
		text-align: center;
	}

	/* Первая колонка: лого + текст + соцсети — как контакты, с отступом вправо */
	.footer-grid > div:first-child {
		max-width: 22rem;
		width: 100%;
		margin-left: auto;
		margin-right: auto;
		padding-right: 1.15rem;
		box-sizing: border-box;
		text-align: left;
	}

	.footer-brand {
		display: flex;
		justify-content: flex-start;
		width: 100%;
		margin-bottom: 1.25rem;
	}

	.footer-brand .brandmark {
		justify-content: flex-start;
	}

	.footer-tagline {
		max-width: 100%;
		margin-left: 0;
		margin-right: 0;
		text-align: left;
		text-wrap: balance;
	}

	.footer-social {
		justify-content: flex-start;
	}

	.footer-nav {
		width: 100%;
		max-width: 22rem;
		margin-left: auto;
		margin-right: auto;
		padding-right: 1.15rem;
		box-sizing: border-box;
	}

	.footer-nav ul {
		align-items: flex-start;
		text-align: left;
	}

	.footer-nav a {
		display: inline-block;
		text-align: left;
	}

	.footer-contact {
		align-items: stretch;
		width: 100%;
		max-width: 22rem;
		margin-left: auto;
		margin-right: auto;
		padding-right: 1.15rem;
		box-sizing: border-box;
		text-align: left;
	}

	.footer-contact-row {
		justify-content: flex-start;
	}
}

.footer-brand {
	margin-bottom: 1.25rem;
}

.brandmark--footer .brandmark-main {
	color: #f8fafc;
	text-shadow: 0 4px 18px rgba(251, 113, 133, 0.15);
}

.brandmark--footer .brandmark-suffix {
	color: #fb7185;
	border-color: rgba(251, 113, 133, 0.45);
	background: rgba(251, 113, 133, 0.12);
}

.footer-tagline {
	font-size: 1.05rem;
	line-height: 1.55;
	color: #94a3b8;
	margin: 0;
}

.footer-tagline .brand-inline {
	color: #fb7185;
}

.footer-social {
	display: flex;
	gap: 1rem;
	margin-top: 1.25rem;
}

.footer-social a {
	display: flex;
	opacity: 0.9;
	transition: opacity 0.2s, transform 0.2s;
}

.footer-social a:hover {
	opacity: 1;
	transform: scale(1.05);
}

.footer-social img {
	width: 48px;
	height: 48px;
}

.footer-social i[data-lucide] {
	width: 38px;
	height: 38px;
	display: inline-block;
	color: #ffffff;
}

.footer-trust {
	margin-top: 1.25rem;
	display: grid;
	gap: 0.45rem;
	font-size: 0.92rem;
	color: #94a3b8;
}

.footer-partner {
	display: grid;
	gap: 0.45rem;
	margin-top: 0.35rem;
}

.footer-partner span {
	font-size: 0.82rem;
	text-transform: uppercase;
	letter-spacing: 0.05em;
}

.footer-partner img {
	display: block;
	max-width: 180px;
	height: auto;
	filter: brightness(0) invert(1);
	opacity: 0.9;
}

.footer-social i[data-lucide] svg {
	width: 100%;
	height: 100%;
}

.footer-nav ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 0.65rem;
	font-family: var(--font-display);
	font-size: 0.85rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.06em;
}

.footer-contact {
	display: flex;
	flex-direction: column;
	gap: 1.25rem;
}

.footer-contact-row {
	display: grid;
	grid-template-columns: 1.75rem minmax(0, 1fr);
	align-items: start;
	column-gap: 0.85rem;
	row-gap: 0.25rem;
	font-size: 1rem;
	color: #cbd5e1;
	line-height: 1.45;
}

.footer-contact-row img {
	width: 44px;
	height: 44px;
	flex-shrink: 0;
}

.footer-contact-row i[data-lucide] {
	width: 1.75rem;
	height: 1.75rem;
	display: block;
	flex-shrink: 0;
	color: #cbd5e1;
	margin-top: 0.12rem;
}

.footer-contact-row span,
.footer-contact-row a {
	min-width: 0;
	text-align: left;
}

.footer-contact-row i[data-lucide] svg {
	width: 100%;
	height: 100%;
}

.footer-bar {
	text-align: center;
	padding-top: 1.25rem;
	padding-bottom: 1.25rem;
	padding-left: max(calc(var(--layout-gutter-x) + var(--layout-edge-nudge)), env(safe-area-inset-left, 0px));
	padding-right: max(calc(var(--layout-gutter-x) + var(--layout-edge-nudge)), env(safe-area-inset-right, 0px));
	border-top: 1px solid rgba(255, 255, 255, 0.08);
	font-size: 0.8rem;
	color: #64748b;
	letter-spacing: 0.04em;
}

/* Мобильные боковые поля: дублирование в конце (специфичность + min в px, виден зазор у логотипа) */
@media screen and (max-width: 899px) {
	html body .wrap {
		padding-left: max(2.25rem, env(safe-area-inset-left, 0px));
		padding-right: max(2.25rem, env(safe-area-inset-right, 0px));
	}

	html body .nav-drawer__panel {
		padding-left: max(2.25rem, env(safe-area-inset-left, 0px));
		padding-right: max(2.25rem, env(safe-area-inset-right, 0px));
	}

	html body .drawer-close {
		right: max(2.25rem, env(safe-area-inset-right, 0px));
	}

	html body .footer-bar {
		padding-left: max(2.25rem, env(safe-area-inset-left, 0px));
		padding-right: max(2.25rem, env(safe-area-inset-right, 0px));
	}
}
