@font-face {
	font-family: "Bay Tavern X";
	src:
		local("Bay Tavern X Plain Regular"),
		local("BayTavernXPlain-Regular"),
		local("Bay Tavern X Plain"),
		url("fonts/Bay%20Tavern%20X%20Plain%20Regular.otf") format("opentype");
	font-weight: 400;
	font-style: normal;
	font-display: swap;
}
*,
*::before,
*::after {
	box-sizing: border-box;
	margin: 0;
	padding: 0;
}
html,
body {
	overflow-x: hidden;
}
:root {
	/* Шрифты. Меняй здесь — применится по всему сайту.
       В HTML используются классы .ff1, .ff2, .ff3. */
	--ff1: "Inter", sans-serif; /* основной текст */
	--ff2: "Montserrat", sans-serif; /* заголовки, акценты */
	--ff3: "Bay Tavern X", serif; /* лого / классическая антиква */
	
	/* было */
	/* --navy: #0b1728; */
	/* стало */
	/* --navy: #2a3d5c; */
	/* стало 2 */
	--navy: #4d6c9d;

	--navy_mid: #34486a;
	--navy_dim: #2f415f;
	--blue: #1565c0;
	--blue_hi: #1e88e5;
	--accent: #ff0c0c; /* фирменный красный из логотипа */
	--accent_rgb: 255, 12, 12;
	--accent_hi: #ff2e2e;
	--accent_dim: #c20a0a;
	--white: #ffffff;
	--off_white: #f4f6f9;
	--border: #dde3ec;
	--muted: #6b7a8d;
	--text: #1a2332;
}
.ff1 {
	font-family: var(--ff1);
}
.ff2 {
	font-family: var(--ff2);
}
.ff3 {
	font-family: var(--ff3);
}
html {
	scroll-behavior: smooth;
}
body {
	font-family: var(--ff1);
	font-size: 16px;
	color: var(--text);
	background: var(--white);
	min-width: 320px;
	display: flex;
	flex-direction: column;
	min-height: 100dvh;
}
input,
select,
textarea,
button {
	font-family: inherit;
}
img {
	display: block;
	max-width: 100%;
}
a {
	text-decoration: none;
	color: inherit;
}
ul {
	list-style: none;
}
[class$="_inner"] {
	position: relative;
	z-index: 2;
	max-width: 1280px;
	margin: 0 auto;
	padding: 0 20px;
}
.section_eyebrow {
	display: flex;
	align-items: center;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 3px;
	text-transform: uppercase;
	color: var(--accent);
	margin-bottom: 14px;
}
.section_eyebrow::before {
	content: "";
	width: 36px;
	height: 1px;
	background: var(--accent);
	margin-right: 14px;
	flex-shrink: 0;
}
.section_eyebrow_light {
	color: var(--accent);
}
.section_title {
	font-weight: 800;
	font-size: 56px;
	letter-spacing: 1px;
	line-height: 1;
	color: var(--text);
}
.section_title.ff3 {
	font-weight: 400;
	font-size: 68px;
	letter-spacing: 0.5px;
	line-height: 1.05;
	text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.25);
}
.section_title_light {
	color: var(--white);
}
.section_title_light.ff3 {
	text-shadow: 2px 2px 0 rgba(0, 0, 0, 0.5);
}
@media (max-width: 850px) {
	.section_title {
		font-size: 40px;
	}
	.section_title.ff3 {
		font-size: 46px;
	}
	.section_eyebrow::before {
		width: 24px;
		margin-right: 10px;
	}
}
.link_arrow {
	display: inline-flex;
	align-items: center;
	font-size: 13px;
	font-weight: 600;
	color: var(--blue_hi);
	margin-top: 28px;
	transition: color 0.2s;
}
.link_arrow span {
	margin-left: 6px;
	transition: transform 0.2s;
}
.link_arrow:hover {
	color: var(--blue);
}
.link_arrow:hover span {
	transform: translateX(4px);
}
.btn_accent {
	display: inline-block;
	background: var(--accent);
	color: var(--white);
	font-size: 14px;
	font-weight: 600;
	letter-spacing: 0.5px;
	padding: 15px 36px;
	border: 2px solid var(--accent);
	cursor: pointer;
	transition:
		background 0.2s,
		border-color 0.2s;
	white-space: nowrap;
}
.btn_accent:hover {
	background: var(--accent_hi);
	border-color: var(--accent_hi);
}
.btn_ghost {
	display: inline-block;
	background: transparent;
	color: var(--white);
	font-size: 14px;
	font-weight: 600;
	letter-spacing: 0.5px;
	padding: 15px 36px;
	border: 2px solid rgba(255, 255, 255, 0.35);
	cursor: pointer;
	transition:
		border-color 0.2s,
		background 0.2s;
	white-space: nowrap;
	margin-left: 16px;
}
.btn_ghost:hover {
	border-color: rgba(255, 255, 255, 0.7);
	background: rgba(255, 255, 255, 0.06);
}
.btn_outline {
	display: inline-block;
	background: transparent;
	color: var(--text);
	font-size: 14px;
	font-weight: 600;
	letter-spacing: 0.5px;
	padding: 14px 40px;
	border: 2px solid var(--border);
	cursor: pointer;
	transition:
		border-color 0.2s,
		color 0.2s;
}
.btn_outline:hover {
	border-color: var(--blue);
	color: var(--blue);
}
/* ── HEADER ── */
.site_header {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 100;
	background: rgba(74, 74, 74, 0.88);
	-webkit-backdrop-filter: blur(14px);
	backdrop-filter: blur(14px);
	border-bottom: 1px solid rgba(255, 255, 255, 0.12);
	transition:
		background 0.3s,
		box-shadow 0.3s,
		border-color 0.3s;
}
.site_header.scrolled {
	background: rgba(58, 58, 58, 0.95);
	border-bottom-color: rgba(255, 255, 255, 0.16);
	box-shadow: 0 2px 24px rgba(0, 0, 0, 0.35);
}
.site_header_inner {
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	align-items: center;
	min-height: 96px;
	padding: 12px 24px;
}
.header_logo_img_link {
	grid-column: 1;
	justify-self: start;
}
.header_logo_text {
	grid-column: 2;
	justify-self: center;
}
.header_burger {
	grid-column: 3;
	justify-self: end;
}
.header_logo {
	display: contents;
}
.header_logo_img_link {
	flex-shrink: 0;
	display: block;
}
.header_logo_img {
	height: 88px;
	width: auto;
	display: block;
	filter: drop-shadow(0 2px 8px rgba(255, 255, 255, 0.25)) drop-shadow(0 1px 2px rgba(0, 0, 0, 0.4));
}
.header_logo_text {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	min-width: 0;
}
.header_logo_form {
	font-size: 11px;
	font-weight: 500;
	color: rgba(255, 255, 255, 0.7);
	letter-spacing: 0.4px;
	line-height: 1.2;
	margin-bottom: 8px;
}
.header_logo_name {
	font-weight: 700;
	font-size: 32px;
	letter-spacing: 5px;
	text-transform: uppercase;
	color: #fff;
	line-height: 1;
	text-decoration: none;
}
.header_logo_name.ff3 {
	font-weight: 400;
	color: #fff;
	text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.5);
}
.header_logo_address {
	font-size: 10px;
	font-weight: 400;
	color: rgba(255, 255, 255, 0.75);
	letter-spacing: 0.2px;
	line-height: 1.55;
	margin-top: 7px;
	max-width: 480px;
}
.header_logo_address a {
	color: #fff;
	transition: color 0.2s;
}
.header_logo_address a:hover {
	color: var(--accent);
}
.header_dropdown {
	display: none;
	position: absolute;
	top: 100%;
	right: 24px;
	min-width: 280px;
	background: rgba(0, 0, 0, 0.75);
	-webkit-backdrop-filter: blur(14px);
	backdrop-filter: blur(14px);
	border-top: 2px solid var(--accent);
	border-right: 1px solid rgba(255, 255, 255, 0.1);
	border-bottom: 1px solid rgba(255, 255, 255, 0.1);
	border-left: 1px solid rgba(255, 255, 255, 0.1);
	flex-direction: column;
	align-items: flex-start;
	padding: 20px 28px 24px;
	z-index: 99;
	box-shadow: 0 12px 24px rgba(0, 0, 0, 0.35);
}
.header_dropdown.open {
	display: flex;
}
.header_nav {
	width: 100%;
}
.header_nav_list {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	width: 100%;
}
.header_nav_list li + li {
	margin-top: 4px;
}
.header_nav_list a {
	display: block;
	padding: 10px 0;
	font-size: 16px;
	font-weight: 500;
	color: #fff;
	letter-spacing: 0.3px;
	transition: color 0.2s;
}
.header_nav_list a:hover {
	color: var(--accent);
}
.header_actions {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	width: 100%;
	margin-top: 20px;
	padding-top: 20px;
	border-top: 1px solid rgba(255, 255, 255, 0.12);
}
.btn_cta {
	display: inline-block;
	background: var(--accent);
	color: var(--white);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.4px;
	padding: 10px 22px;
	border: 2px solid var(--accent);
	white-space: nowrap;
	transition: background 0.2s;
}
.btn_cta:hover {
	background: var(--accent_hi);
	border-color: var(--accent_hi);
}
.header_burger {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	width: 26px;
	height: 18px;
	background: none;
	border: none;
	cursor: pointer;
	flex-shrink: 0;
}
.header_burger span {
	display: block;
	width: 100%;
	height: 2px;
	background: #fff;
	transition:
		transform 0.3s,
		opacity 0.3s;
}
.header_burger.open span:nth-child(1) {
	transform: translateY(8px) rotate(45deg);
}
.header_burger.open span:nth-child(2) {
	opacity: 0;
}
.header_burger.open span:nth-child(3) {
	transform: translateY(-8px) rotate(-45deg);
}
@media (max-width: 850px) {
	.site_header_inner {
		grid-template-columns: auto 1fr auto;
		min-height: 64px;
		padding: 0 16px;
	}
	.header_logo_img {
		height: 42px;
	}
	.site_header .header_logo_form {
		display: none;
	}
	.site_header .header_logo_address {
		display: none;
	}
	.site_header .header_logo_name {
		font-size: 14px;
		letter-spacing: 2px;
	}
	.header_dropdown {
		right: 16px;
	}
	.header_nav_list a {
		font-size: 17px;
	}
	.btn_cta {
		padding: 12px 28px;
		font-size: 14px;
	}
}
/* ── INNER PAGE (no hero) ── */
body.inner_page main {
	padding-top: 96px;
}
@media (max-width: 850px) {
	body.inner_page main {
		padding-top: 64px;
	}
}
/* ── HERO ── */
.hero_section {
	position: relative;
	min-height: 100vh;
	display: flex;
	flex-direction: column;
	overflow: hidden;
}
.hero_bg {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	z-index: 0;
}
.hero_section::before {
	content: "";
	position: absolute;
	inset: 0;
	background:
		linear-gradient(105deg, rgba(11, 19, 32, 0.55) 0%, rgba(11, 19, 32, 0.28) 55%, rgba(11, 19, 32, 0.18) 100%),
		linear-gradient(180deg, rgba(11, 19, 32, 0.05) 35%, rgba(11, 19, 32, 0.55) 100%);
	z-index: 2;
}
.hero_bg {
	animation: heroZoom 18s ease-in-out infinite alternate;
	transform-origin: 55% 50%;
}
@keyframes heroZoom {
	from { transform: scale(1.0); }
	to   { transform: scale(1.08); }
}
.hero_section_inner {
	flex: 1;
	width: 100%;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: flex-start;
	padding-top: 100px;
	padding-bottom: 60px;
	position: relative;
	z-index: 3;
}
.hero_content {
	width: 100%;
	max-width: 100%;
	margin-left: 0;
}
.hero_eyebrow {
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 3px;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.45);
	margin-bottom: 24px;
}
.hero_title {
	font-weight: 800;
	font-size: 88px;
	line-height: 0.94;
	letter-spacing: 0px;
	color: var(--white);
	text-transform: uppercase;
	margin-bottom: 32px;
	display: flex;
	flex-direction: column;
}
.hero_title_line {
	display: block;
}
.hero_title_accent {
	color: var(--accent);
}
.hero_sub {
	font-size: 18px;
	font-weight: 300;
	color: rgba(255, 255, 255, 0.65);
	line-height: 1.65;
	margin-bottom: 44px;
	max-width: 560px;
}
.hero_actions {
	display: flex;
	align-items: center;
}
.about_stats_bar {
	position: relative;
	background: var(--off_white);
	border: 1px solid var(--border);
	border-top: 2px solid var(--accent);
	margin-bottom: 28px;
}
.about_stats_bar_inner {
	display: flex;
	align-items: stretch;
	justify-content: space-between;
	padding: 0 24px;
}
.about_stat {
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: 26px 0;
	min-width: 0;
}
.about_stat_div {
	width: 1px;
	background: var(--border);
	margin: 20px 48px;
	flex-shrink: 0;
}
.about_stat strong {
	font-weight: 700;
	font-size: 32px;
	letter-spacing: 0.5px;
	color: var(--text);
	line-height: 1;
}
.about_stat span {
	font-size: 12px;
	color: var(--muted);
	margin-top: 6px;
	letter-spacing: 0.3px;
	text-transform: uppercase;
}
@media (max-width: 850px) {
	.hero_title {
		font-size: 46px;
	}
	.hero_sub {
		font-size: 16px;
	}
	.hero_actions {
		flex-direction: column;
		align-items: flex-start;
	}
	.btn_ghost {
		margin-left: 0;
		margin-top: 12px;
	}
	.about_stats_bar_inner {
		flex-wrap: wrap;
		padding: 0 16px;
	}
	.about_stat {
		width: 50%;
		padding: 20px 0;
	}
	.about_stat_div {
		display: none;
	}
}
@media (max-width: 600px) {
	.hero_title {
		font-size: 42px;
	}
}
@media (max-width: 480px) {
	.hero_title {
		/* Fluid: длинные кириллические слова (МЕЖДУНАРОДНЫЕ) влезают вплоть до 320px */
		font-size: clamp(24px, 8.5vw, 36px);
	}
	.about_stat {
		width: 100%;
	}
}
@media (max-width: 360px) {
	.hero_title {
		font-size: 30px;
	}
}
/* ── ABOUT ── */
.about_section {
	padding: 100px 0 110px;
	background: var(--white);
}
.about_section_inner {
	display: flex;
	flex-direction: column;
}
.about_top {
	display: flex;
	align-items: flex-start;
	margin-bottom: 48px;
}
.about_left {
	flex: 1;
	padding-right: 80px;
}
.about_right {
	flex-shrink: 0;
	width: 440px;
}
.about_text {
	font-size: 16px;
	font-weight: 400;
	color: var(--muted);
	line-height: 1.8;
	margin-top: 18px;
}
.about_img_wrap {
	position: relative;
}
.about_img {
	width: 100%;
	height: 360px;
	object-fit: cover;
	display: block;
}
.about_img_badge {
	position: absolute;
	bottom: 16px;
	right: 16px;
	background: var(--accent);
	padding: 12px 18px;
	display: flex;
	flex-direction: column;
}
.about_img_badge strong {
	font-weight: 700;
	font-size: 22px;
	letter-spacing: 1px;
	color: var(--white);
	line-height: 1;
}
.about_img_badge span {
	font-size: 11px;
	color: rgba(255, 255, 255, 0.8);
	margin-top: 2px;
}
@media (max-width: 850px) {
	.about_section {
		padding: 72px 0;
	}
	.about_top {
		flex-direction: column;
		margin-bottom: 36px;
	}
	.about_left {
		padding-right: 0;
		margin-bottom: 44px;
	}
	.about_right {
		width: 100%;
	}
	.about_img {
		height: 280px;
	}
}
/* ── SERVICES ── */
.services_section {
	padding: 110px 0;
	background: var(--navy);
	border-bottom: 2px solid var(--accent);
}
.services_head {
	margin-bottom: 56px;
}
.services_grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 10px;
	background: none;
	position: relative;
}
/* ---------- Карточки услуг (редизайн 2026-06-19) ---------- */
.service_card {
	background: #0b1320;
	padding: 28px 28px 26px;
	position: relative;
	overflow: hidden;
	border-radius: 26px;
	border: 1px solid rgba(255, 255, 255, 0.06);
	box-shadow: 0 18px 40px -22px rgba(0, 0, 0, 0.7), 0 2px 10px -4px rgba(0, 0, 0, 0.4);
	display: flex;
	flex-direction: column;
	min-height: 360px;
	transition: transform 0.45s cubic-bezier(0.2, 0.7, 0.2, 1), border-color 0.35s ease, box-shadow 0.45s ease;
	will-change: transform;
	cursor: pointer;
}
.service_card_bg {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	z-index: 0;
	opacity: 0.55;
	transform: scale(1.04);
	transition: transform 0.7s cubic-bezier(0.2, 0.7, 0.2, 1), opacity 0.35s ease, filter 0.35s ease;
	filter: saturate(0.85);
}
.service_card::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(165deg, rgba(11, 19, 32, 0.6) 0%, rgba(11, 19, 32, 0.92) 70%, rgba(11, 19, 32, 0.96) 100%);
	z-index: 1;
	transition: background 0.4s ease;
}
.service_card::after {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: inherit;
	pointer-events: none;
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0);
	transition: box-shadow 0.4s ease;
	z-index: 3;
}
.service_card:hover {
	transform: translateY(-4px) scale(1.01);
	border-color: rgba(255, 255, 255, 0.16);
	box-shadow: 0 35px 60px -20px rgba(0, 0, 0, 0.75), 0 0 0 1px rgba(var(--accent_rgb, 255, 184, 28), 0.18);
}
.service_card:hover .service_card_bg {
	transform: scale(1.1);
	opacity: 0.7;
	filter: saturate(1);
}
.service_card:hover::before {
	background: linear-gradient(165deg, rgba(11, 19, 32, 0.45) 0%, rgba(11, 19, 32, 0.82) 75%, rgba(11, 19, 32, 0.92) 100%);
}
.service_card:hover::after {
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.12);
}
.service_card_top {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: auto;
	position: relative;
	z-index: 2;
}
.service_icon {
	width: 64px;
	height: 64px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: var(--white);
	background: rgba(255, 255, 255, 0.04);
	border: 1px solid rgba(255, 255, 255, 0.08);
	border-radius: 18px;
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	transition: background 0.3s ease, border-color 0.3s ease, transform 0.3s ease;
}
.service_icon img {
	width: 40px;
	height: 40px;
	object-fit: contain;
	filter: brightness(0) invert(1);
	opacity: 0.92;
}
.service_card:hover .service_icon {
	background: rgba(255, 255, 255, 0.08);
	border-color: rgba(255, 255, 255, 0.16);
	transform: translateY(-2px);
}
.service_arrow_btn {
	width: 44px;
	height: 44px;
	border-radius: 50%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: var(--white);
	background: rgba(255, 255, 255, 0.06);
	border: 1px solid rgba(255, 255, 255, 0.12);
	transition: background 0.3s ease, border-color 0.3s ease, transform 0.35s cubic-bezier(0.2, 0.7, 0.2, 1), box-shadow 0.35s ease, color 0.3s ease;
}
.service_arrow_btn svg {
	transition: transform 0.35s cubic-bezier(0.2, 0.7, 0.2, 1);
}
.service_card:hover .service_arrow_btn {
	background: var(--accent, #ffb81c);
	border-color: var(--accent, #ffb81c);
	color: #0b1320;
	box-shadow: 0 0 0 6px rgba(var(--accent_rgb, 255, 184, 28), 0.12), 0 12px 24px -8px rgba(var(--accent_rgb, 255, 184, 28), 0.45);
	transform: translate(2px, -2px);
}
.service_card:hover .service_arrow_btn svg {
	transform: translate(1px, -1px) rotate(0deg);
}
.service_card_body {
	position: relative;
	z-index: 2;
	margin-top: 24px;
}
.service_num {
	display: block;
	font-weight: 700;
	font-size: 13px;
	letter-spacing: 2px;
	color: rgba(255, 255, 255, 0.32);
	line-height: 1;
	margin-bottom: 10px;
	text-transform: uppercase;
}
.service_title {
	font-weight: 700;
	font-size: 26px;
	letter-spacing: 0.2px;
	color: var(--white);
	margin: 0 0 14px;
	line-height: 1.15;
	background: linear-gradient(120deg, #ffffff 0%, rgba(255, 255, 255, 0.78) 100%);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
}
.service_link {
	font-size: 13px;
	font-weight: 600;
	color: var(--accent, #ffb81c);
	text-decoration: none;
	letter-spacing: 0.3px;
	margin-top: 8px;
	display: inline-flex;
	align-items: center;
	min-height: 18px;
	transition: color 0.2s;
}
.service_link::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 4;
}
.service_link span {
	position: relative;
	z-index: 2;
	opacity: 0;
	transform: translateY(4px);
	transition: opacity 0.25s ease, transform 0.25s ease;
}
.service_card:hover .service_link span {
	opacity: 1;
	transform: translateY(0);
}
.service_link:hover {
	color: var(--accent_hi, #ffd166);
}
@media (hover: none) {
	.service_link span {
		opacity: 1;
		transform: none;
	}
	.service_card:hover {
		transform: none;
	}
}
@media (max-width: 850px) {
	.services_section {
		padding: 72px 0;
	}
	.services_grid {
		grid-template-columns: repeat(2, 1fr);
	}
}
@media (max-width: 480px) {
	.services_grid {
		grid-template-columns: 1fr;
	}
}
/* ── USP ── */
.usp_section {
	padding: 110px 0;
	background: var(--navy);
	position: relative;
	overflow: hidden;
}
.usp_section::before {
	content: "";
	position: absolute;
	top: -300px;
	right: -300px;
	width: 700px;
	height: 700px;
	border-radius: 50%;
	background: radial-gradient(circle, rgba(21, 101, 192, 0.1) 0%, transparent 65%);
	pointer-events: none;
}
.usp_head {
	margin-bottom: 64px;
}
.usp_grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1px;
	background: rgba(255, 255, 255, 0.05);
}
.usp_item {
	padding: 52px 44px;
	background: var(--navy);
	position: relative;
	overflow: hidden;
	transition: background 0.25s;
}
.usp_item:hover {
	background: var(--navy_mid);
}
.usp_bg_num {
	position: absolute;
	bottom: -20px;
	right: -8px;
	font-weight: 800;
	font-size: 120px;
	letter-spacing: 2px;
	color: rgba(255, 255, 255, 0.04);
	line-height: 1;
	pointer-events: none;
	user-select: none;
}
.usp_title {
	font-weight: 700;
	font-size: 26px;
	letter-spacing: 0.5px;
	color: var(--white);
	margin-bottom: 14px;
	line-height: 1;
}
.usp_desc {
	font-size: 14px;
	color: rgba(255, 255, 255, 0.45);
	line-height: 1.7;
	position: relative;
	z-index: 1;
}
@media (max-width: 850px) {
	.usp_section {
		padding: 72px 0;
	}
	.usp_grid {
		grid-template-columns: repeat(2, 1fr);
	}
	.usp_item {
		padding: 36px 28px;
	}
}
@media (max-width: 480px) {
	.usp_grid {
		grid-template-columns: 1fr;
	}
}
/* ── ROUTES ── */
.routes_section {
	padding: 30px 0 110px;
	background: var(--white);
}
.routes_head {
	margin-bottom: 56px;
}
.routes_list {
	display: flex;
	flex-direction: column;
}
.route_row {
	display: flex;
	align-items: center;
	padding: 32px 36px;
	border: 1px solid var(--border);
	background: var(--off_white);
	transition:
		background 0.2s,
		border-color 0.2s;
}
.route_row + .route_row {
	margin-top: 4px;
}
.route_row:hover {
	background: #fff5f5;
	border-color: #ffcfcf;
}
.route_index {
	font-weight: 800;
	font-size: 40px;
	letter-spacing: 1px;
	color: var(--border);
	flex-shrink: 0;
	width: 56px;
	line-height: 1;
}
.route_flow {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	flex: 1;
	margin-left: 24px;
}
.route_node {
	font-weight: 700;
	font-size: 24px;
	letter-spacing: 0.5px;
	color: var(--text);
	white-space: nowrap;
}
.route_dest {
	color: var(--accent);
}
.route_arr {
	font-size: 18px;
	color: var(--muted);
	margin-left: 10px;
	margin-right: 10px;
	flex-shrink: 0;
}
.route_note {
	font-size: 13px;
	color: var(--muted);
	margin-left: 36px;
	flex-shrink: 0;
	max-width: 260px;
	text-align: right;
	line-height: 1.5;
}
@media (max-width: 850px) {
	.routes_section {
		padding: 72px 0;
	}
	.route_row {
		flex-direction: column;
		align-items: flex-start;
		padding: 24px 20px;
	}
	.route_flow {
		margin-left: 0;
		margin-top: 10px;
		flex-wrap: wrap;
	}
	.route_node {
		font-size: 18px;
	}
	.route_note {
		margin-left: 0;
		margin-top: 10px;
		text-align: left;
		max-width: 100%;
	}
}
@media (max-width: 600px) {
	.route_node {
		font-size: 14px;
	}
}
/* ── FERRY ── */
.ferry_section {
	padding: 200px 0 110px;
	position: relative;
	overflow: hidden;
}
.ferry_bg {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	z-index: 0;
}
.ferry_section::before {
	content: "";
	position: absolute;
	inset: 0;
	/* было */
	/* background: linear-gradient(
		to right,
		rgba(42, 61, 92, 0.88) 0%,
		rgba(42, 61, 92, 0.72) 55%,
		rgba(42, 61, 92, 0.5) 100%
	); */
	/* стало */
	background: linear-gradient(
		to right,
		rgba(42, 61, 92, 0.55) 0%,
		rgba(42, 61, 92, 0.4) 55%,
		rgba(42, 61, 92, 0.2) 100%
	);
	/* background: linear-gradient(
		to right,
		rgba(42, 61, 92, 0.2) 0%,
		rgba(42, 61, 92, 0.2) 55%,
		rgba(42, 61, 92, 0.2) 100%
	); */
	z-index: 1;
}
.ferry_content {
	max-width: 700px;
}
.ferry_route {
	font-size: 16px;
	color: rgba(255, 255, 255, 0.6);
	margin-top: 16px;
	margin-bottom: 36px;
	line-height: 1.5;
}
.ferry_route strong {
	color: var(--white);
}
.ferry_cargo {
	display: flex;
	flex-wrap: wrap;
	margin: -8px 0 0 -8px;
	margin-bottom: 32px;
}
.ferry_cargo_item {
	display: flex;
	align-items: center;
	padding: 13px 20px;
	background: rgba(255, 255, 255, 0.07);
	border: 1px solid rgba(255, 255, 255, 0.12);
	color: var(--white);
	font-size: 14px;
	font-weight: 500;
	margin: 8px 0 0 8px;
	transition:
		background 0.2s,
		border-color 0.2s;
}
.ferry_cargo_item:hover {
	background: rgba(255, 255, 255, 0.13);
	border-color: rgba(255, 255, 255, 0.25);
}
.ferry_cargo_item svg {
	margin-right: 10px;
	flex-shrink: 0;
}
.ferry_notice {
	font-size: 13px;
	color: rgba(255, 255, 255, 0.35);
	line-height: 1.65;
	margin-bottom: 36px;
	max-width: 540px;
	padding-left: 16px;
	border-left: 2px solid rgba(255, 255, 255, 0.12);
}
@media (max-width: 850px) {
	.ferry_section {
		padding: 130px 0 72px;
	}
}
/* ── NEWS ── */
.news_section {
	padding: 110px 0;
	background: var(--off_white);
}
.news_head {
	margin-bottom: 56px;
}
.news_grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
}
.news_card {
	position: relative;
	background: var(--white);
	border: 1px solid var(--border);
	overflow: hidden;
	cursor: pointer;
	transition:
		box-shadow 0.25s,
		transform 0.25s;
}
.news_card .link_arrow::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
}
.news_card:hover {
	box-shadow: 0 12px 48px rgba(0, 0, 0, 0.09);
	transform: translateY(-4px);
}
.news_card_img_wrap {
	overflow: hidden;
}
.news_card_img {
	width: 100%;
	height: 210px;
	object-fit: cover;
	display: block;
	transition: transform 0.4s;
}
.news_card:hover .news_card_img {
	transform: scale(1.04);
}
.news_card_body {
	padding: 28px 28px 32px;
}
.news_date {
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 1.5px;
	text-transform: uppercase;
	color: var(--muted);
}
.news_title {
	font-weight: 700;
	font-size: 22px;
	letter-spacing: 0.3px;
	color: var(--text);
	line-height: 1.15;
	margin-top: 10px;
	margin-bottom: 12px;
}
.news_excerpt {
	font-size: 14px;
	color: var(--muted);
	line-height: 1.65;
	margin-bottom: 20px;
}
.news_more {
	margin-top: 48px;
	text-align: center;
}
@media (max-width: 850px) {
	.news_section {
		padding: 72px 0;
	}
	.news_grid {
		grid-template-columns: 1fr;
		gap: 16px;
	}
}
/* ── RESTRICTIONS ── */
.restrict_section {
	padding: 110px 0;
	background: var(--navy);
	border-top: 2px solid var(--accent);
}
.restrict_head {
	margin-bottom: 56px;
}
.restrict_sub {
	font-size: 15px;
	color: rgba(255, 255, 255, 0.45);
	line-height: 1.7;
	margin-top: 16px;
	max-width: 640px;
}
.restrict_grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 2px;
	background: rgba(255, 255, 255, 0.05);
	margin-bottom: 36px;
}
.restrict_item {
	display: flex;
	align-items: flex-start;
	padding: 24px 28px;
	background: var(--navy);
	transition: background 0.2s;
}
.restrict_item:hover {
	background: var(--navy_mid);
}
.restrict_icon {
	flex-shrink: 0;
	width: 36px;
	height: 36px;
	background-color: var(--accent);
	-webkit-mask: url("img/icon-restrict.svg") center / 22px 22px no-repeat;
	mask: url("img/icon-restrict.svg") center / 22px 22px no-repeat;
	margin-right: 16px;
	margin-top: 2px;
}
.restrict_text {
	display: flex;
	flex-direction: column;
}
.restrict_text strong {
	font-size: 15px;
	font-weight: 600;
	color: var(--white);
	line-height: 1.2;
	margin-bottom: 4px;
}
.restrict_text span {
	font-size: 13px;
	color: rgba(255, 255, 255, 0.35);
	line-height: 1.5;
}
.restrict_note {
	font-size: 13px;
	color: rgba(255, 255, 255, 0.3);
	line-height: 1.6;
	padding-left: 16px;
	border-left: 2px solid rgba(255, 255, 255, 0.1);
}
.restrict_note a {
	color: var(--accent);
	text-decoration: underline;
	text-underline-offset: 3px;
	transition: color 0.2s;
}
.restrict_note a:hover {
	color: var(--accent_hi);
}
@media (max-width: 850px) {
	.restrict_section {
		padding: 72px 0;
	}
	.restrict_grid {
		grid-template-columns: 1fr;
	}
	.restrict_item {
		padding: 20px 20px;
	}
}
/* ── PARTNERS ── */
.partners_section {
	padding: 72px 0;
	background: var(--white);
	border-top: 1px solid var(--border);
	border-bottom: 1px solid var(--border);
}
.partners_head {
	margin-bottom: 44px;
	text-align: center;
}
.partners_title {
	font-weight: 800;
	font-size: 32px;
	letter-spacing: 1px;
	color: var(--text);
}
.partners_logos {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-wrap: wrap;
	margin: -16px 0 0 -24px;
}
.partner_item {
	margin: 16px 0 0 24px;
	flex-shrink: 0;
	opacity: 0.55;
	filter: grayscale(1);
	transition:
		opacity 0.25s,
		filter 0.25s;
}
.partner_item:hover {
	opacity: 1;
	filter: grayscale(0);
}
.partner_item img {
	height: 56px;
	width: auto;
	display: block;
}
@media (max-width: 850px) {
	.partners_section {
		padding: 56px 0;
	}
	.partners_title {
		font-size: 26px;
	}
	.partner_item img {
		height: 46px;
	}
}
/* ── FORM ── */
.form_section {
	padding: 110px 0;
	background: #eef2f7;
}
.form_head {
	margin-bottom: 48px;
}
.form_sub {
	font-size: 15px;
	color: var(--muted);
	margin-top: 12px;
	max-width: 480px;
}
.request_form {
	width: 100%;
}
.form_block {
	background: var(--white);
	border: 1px solid #d8dfe8;
	padding: 36px 40px;
	margin-bottom: 3px;
}
.form_block_title {
	font-size: 10px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 2.5px;
	color: var(--accent);
	margin-bottom: 28px;
	padding-bottom: 16px;
	border-bottom: 1px solid var(--border);
}
.form_row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 20px;
	margin-bottom: 20px;
}
.form_row:last-child {
	margin-bottom: 0;
}
.form_row_3 {
	grid-template-columns: repeat(3, 1fr);
}
.form_row_4 {
	grid-template-columns: repeat(4, 1fr);
}
.form_row_single {
	grid-template-columns: 1fr;
}
.form_group {
	display: flex;
	flex-direction: column;
}
.form_label {
	font-size: 11px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 1px;
	color: var(--navy);
	margin-bottom: 10px;
	opacity: 0.7;
	min-height: 32px;
	display: flex;
	align-items: flex-end;
}
.form_req {
	color: var(--accent);
	opacity: 1;
}
.form_input {
	font-size: 14px;
	color: var(--text);
	background: #fafbfd;
	border: 1.5px solid #d8dfe8;
	padding: 14px 16px;
	outline: none;
	transition:
		border-color 0.18s,
		box-shadow 0.18s,
		background 0.18s;
	width: 100%;
	appearance: none;
}
.form_input:focus {
	border-color: var(--accent);
	background: var(--white);
	box-shadow: inset 3px 0 0 var(--accent);
}
.form_input.error {
	border-color: #e53935;
	box-shadow: inset 3px 0 0 #e53935;
}
.form_select {
	cursor: pointer;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1L6 6L11 1' stroke='%236B7A8D' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 16px center;
	padding-right: 42px;
}
.form_error {
	font-size: 12px;
	color: #e53935;
	margin-top: 6px;
	min-height: 16px;
}
.form_footer {
	display: flex;
	align-items: center;
	margin-top: 32px;
	padding: 32px 40px;
	background: var(--white);
	border: 1px solid #d8dfe8;
}
.btn_submit {
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 1px;
	text-transform: uppercase;
	color: var(--white);
	background: var(--navy);
	border: 2px solid var(--navy);
	padding: 16px 48px;
	cursor: pointer;
	transition:
		background 0.2s,
		border-color 0.2s;
	flex-shrink: 0;
}
.btn_submit:hover {
	background: var(--accent);
	border-color: var(--accent);
}
.form_agree {
	font-size: 12px;
	color: var(--muted);
	margin-left: 24px;
	line-height: 1.6;
}
.form_agree a {
	color: var(--blue_hi);
	text-decoration: underline;
}
.file_drop {
	border: 2px dashed #c8d3df;
	background: #fafbfd;
	padding: 40px 28px;
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	cursor: pointer;
	transition:
		border-color 0.2s,
		background 0.2s;
	position: relative;
}
.file_drop:hover,
.file_drop.drag_over {
	border-color: var(--accent);
	background: #fff5f5;
}
.file_drop input[type="file"] {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	opacity: 0;
	cursor: pointer;
}
.file_drop_icon {
	width: 32px;
	height: 32px;
	margin: 0 auto 12px;
	background-color: var(--accent);
	-webkit-mask: url("img/icon-file-drop.svg") no-repeat center / contain;
	        mask: url("img/icon-file-drop.svg") no-repeat center / contain;
}
.file_drop_body {
	display: flex;
	align-items: center;
	margin-bottom: 6px;
}
.file_drop_btn {
	font-size: 14px;
	font-weight: 600;
	color: var(--accent);
	cursor: pointer;
	border-bottom: 1px solid rgba(255, 12, 12, 0.3);
	transition: color 0.2s;
}
.file_drop_btn:hover {
	color: var(--accent_hi);
}
.file_drop_or {
	font-size: 14px;
	color: var(--muted);
	margin-left: 6px;
}
.file_drop_hint {
	font-size: 12px;
	color: var(--muted);
	letter-spacing: 0.2px;
}
.file_drop_names {
	font-size: 13px;
	font-weight: 500;
	color: var(--text);
	margin-top: 10px;
	word-break: break-all;
}
@media (max-width: 850px) {
	.form_section {
		padding: 72px 0;
	}
	.form_block {
		padding: 24px 20px;
	}
	.form_row_4 {
		grid-template-columns: 1fr 1fr;
	}
	.form_row_3 {
		grid-template-columns: 1fr 1fr;
	}
	.form_row {
		grid-template-columns: 1fr;
	}
	.form_footer {
		flex-direction: column;
		align-items: flex-start;
		padding: 24px 20px;
	}
	.btn_submit {
		width: 100%;
	}
	.form_agree {
		margin-left: 0;
		margin-top: 14px;
	}
}
/* ── FOOTER ── */
.site_footer {
	background: var(--navy);
	padding: 80px 0 0;
	margin-top: auto;
}
.footer_top {
	display: flex;
	align-items: flex-start;
	padding-bottom: 60px;
	border-bottom: 1px solid rgba(255, 255, 255, 0.07);
}
.footer_brand {
	flex-shrink: 0;
	width: 360px;
	margin-right: 60px;
}
.footer_brand .header_logo_text {
	align-items: flex-start;
	text-align: left;
}
.footer_brand .header_logo_name {
	color: var(--white);
}
.footer_brand .header_logo_name.ff3 {
	color: var(--white);
	text-shadow: 1px 1px 0 rgba(255, 12, 12, 0.55);
}
.footer_brand .header_logo_address {
	color: rgba(255, 255, 255, 0.45);
}
.footer_brand .header_logo_address a {
	color: rgba(255, 255, 255, 0.8);
}
.footer_brand .header_logo_address a:hover {
	color: var(--accent);
}
.footer_col {
	flex: 1;
	margin-left: 40px;
}
.footer_col_title {
	font-weight: 700;
	font-size: 14px;
	letter-spacing: 2px;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.3);
	margin-bottom: 20px;
}
.footer_links li + li {
	margin-top: 10px;
}
.footer_links a {
	font-size: 14px;
	color: rgba(255, 255, 255, 0.5);
	transition: color 0.2s;
}
.footer_links a:hover {
	color: var(--white);
}
.footer_contacts {
	display: flex;
	flex-direction: column;
}
.footer_contacts li {
	font-size: 13px;
	color: rgba(255, 255, 255, 0.5);
	line-height: 1.6;
}
.footer_contacts li + li {
	margin-top: 12px;
}
.footer_contacts a {
	color: rgba(255, 255, 255, 0.5);
	transition: color 0.2s;
}
.footer_contacts a:hover {
	color: var(--white);
}
.footer_bottom {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 24px 0;
	border-top: 1px solid rgba(255, 255, 255, 0.04);
}
.footer_bottom span {
	font-size: 13px;
	color: rgba(255, 255, 255, 0.2);
}
.footer_bottom a {
	font-size: 13px;
	color: rgba(255, 255, 255, 0.2);
	transition: color 0.2s;
}
.footer_bottom a:hover {
	color: rgba(255, 255, 255, 0.5);
}
@media (max-width: 850px) {
	.footer_top {
		flex-direction: column;
		padding-bottom: 40px;
	}
	.footer_brand {
		width: 100%;
		margin-right: 0;
		margin-bottom: 40px;
	}
	.footer_brand .header_logo_text {
		align-items: center;
		text-align: center;
	}
	.footer_brand .header_logo_name {
		font-size: 24px;
		letter-spacing: 3px;
	}
	.footer_col {
		margin-left: 0;
		margin-top: 32px;
		width: 100%;
	}
	.footer_bottom {
		flex-direction: column;
		align-items: flex-start;
	}
	.footer_bottom a {
		margin-top: 8px;
	}
	.site_footer {
		padding: 56px 0 0;
	}
}
/* ── ANIMATION ── */
@keyframes fadeUp {
	from {
		opacity: 0;
		transform: translateY(20px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}
.hero_eyebrow {
	animation: fadeUp 0.7s ease 0.1s both;
}
.hero_title_line:nth-child(1) {
	animation: fadeUp 0.7s ease 0.22s both;
}
.hero_title_line:nth-child(2) {
	animation: fadeUp 0.7s ease 0.36s both;
}
.hero_title_line:nth-child(3) {
	animation: fadeUp 0.7s ease 0.5s both;
}
.hero_sub {
	animation: fadeUp 0.7s ease 0.64s both;
}
.hero_actions {
	animation: fadeUp 0.7s ease 0.78s both;
}
.fade_in {
	opacity: 0;
	transform: translateY(28px);
	transition:
		opacity 0.65s ease,
		transform 0.65s ease;
}
.fade_in.visible {
	opacity: 1;
	transform: translateY(0);
}
.services_grid .fade_in:nth-child(2) {
	transition-delay: 90ms;
}
.services_grid .fade_in:nth-child(3) {
	transition-delay: 180ms;
}
.services_grid .fade_in:nth-child(4) {
	transition-delay: 270ms;
}
.services_grid .fade_in:nth-child(5) {
	transition-delay: 360ms;
}
.services_grid .fade_in:nth-child(6) {
	transition-delay: 450ms;
}
.usp_grid .fade_in:nth-child(2) {
	transition-delay: 90ms;
}
.usp_grid .fade_in:nth-child(3) {
	transition-delay: 180ms;
}
.usp_grid .fade_in:nth-child(4) {
	transition-delay: 270ms;
}
.usp_grid .fade_in:nth-child(5) {
	transition-delay: 360ms;
}
.usp_grid .fade_in:nth-child(6) {
	transition-delay: 450ms;
}
.news_grid .fade_in:nth-child(2) {
	transition-delay: 90ms;
}
.news_grid .fade_in:nth-child(3) {
	transition-delay: 180ms;
}
/* ── BANNER CRUMBS (inside ferry_section) ── */
.banner_crumbs {
	font-size: 13px;
	line-height: 1.5;
	margin-bottom: 22px;
	color: rgba(255, 255, 255, 0.6);
}
.banner_crumbs a {
	color: rgba(255, 255, 255, 0.6);
	text-decoration: none;
	transition: color 0.2s;
}
.banner_crumbs a:hover {
	color: var(--accent);
}
.banner_crumbs_sep {
	margin: 0 8px;
	color: rgba(255, 255, 255, 0.3);
}
.banner_crumbs_current {
	color: rgba(255, 255, 255, 0.9);
}

/* ── BANNER META (eyebrow inside ferry_section, e.g. article date) ── */
.banner_meta {
	font-size: 12px;
	letter-spacing: 1.5px;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.55);
	margin-bottom: 14px;
}

/* ── ARTICLE BODY (single news) ── */
.article_section {
	padding: 80px 0 110px;
	background: var(--white);
}
.article_body {
	max-width: 760px;
	/* margin: 0 auto; */
	font-size: 16px;
	line-height: 1.75;
	color: var(--text);
}
.article_body > * + * {
	margin-top: 20px;
}
.article_body h2 {
	font-size: 26px;
	line-height: 1.3;
	margin-top: 40px;
	color: var(--text);
}
.article_body h3 {
	font-size: 20px;
	line-height: 1.35;
	margin-top: 32px;
	color: var(--text);
}
.article_body ul {
	padding-left: 22px;
}
.article_body ul li {
	margin-bottom: 8px;
}
.article_body .lead {
	font-size: 18px;
	line-height: 1.7;
	color: var(--text);
}
.article_body ol {
	padding-left: 22px;
}
.article_body ol li {
	margin-bottom: 8px;
}
.article_body blockquote {
	border-left: 3px solid var(--accent, #1a5fa8);
	padding: 12px 20px;
	margin-left: 0;
	font-style: italic;
	color: var(--text);
	background: rgba(0,0,0,0.03);
}
.article_body strong {
	color: var(--text);
	font-weight: 600;
}
.article_body img {
	width: 100%;
	height: auto;
}
.article_back {
	max-width: 760px;
	margin: 48px auto 0;
	text-align: center;
}
@media (max-width: 850px) {
	.article_section {
		padding: 48px 0 72px;
	}
	.article_body {
		font-size: 15px;
	}
}

/* ── CONTACTS PAGE ── */
.contacts_section {
	padding: 80px 0 110px;
	background: var(--white);
}
.contacts_grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 16px;
	margin-bottom: 48px;
}
.contact_card {
	padding: 32px 28px;
	background: var(--off_white);
	border: 1px solid var(--border);
	transition: border-color 0.2s;
}
.contact_card:hover {
	border-color: var(--accent);
}
.contact_card_icon {
	width: 48px;
	height: 48px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--white);
	color: var(--accent);
	margin-bottom: 18px;
	border: 1px solid var(--border);
}
.contact_card_label {
	font-size: 12px;
	letter-spacing: 1.5px;
	text-transform: uppercase;
	color: var(--muted);
	margin-bottom: 8px;
}
.contact_card_value {
	font-size: 17px;
	color: var(--text);
	line-height: 1.5;
}
.contact_card_value a {
	color: var(--text);
	text-decoration: none;
	transition: color 0.2s;
}
.contact_card_value a:hover {
	color: var(--accent);
}
.contacts_map {
	width: 100%;
	min-height: 400px;
	background: var(--off_white);
	border: 1px solid var(--border);
	overflow: hidden;
}
.contacts_map iframe {
	display: block;
	width: 100%;
	border: 0;
}
@media (max-width: 850px) {
	.contacts_section {
		padding: 48px 0 72px;
	}
	.contacts_grid {
		grid-template-columns: 1fr;
	}
	.contact_card {
		padding: 24px 22px;
	}
}
/* ── CF7 ADAPTATION ── */
.cf7_wrap {
	margin-top: 40px;
}
.cf7_wrap .wpcf7 {
	margin: 0;
	padding: 0;
}
.cf7_wrap .wpcf7-form {
	margin: 0;
}
.cf7_wrap .screen-reader-response {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
	border: 0;
}
.cf7_wrap .hidden-fields-container {
	border: 0;
	padding: 0;
	margin: 0;
	min-width: 0;
}
.cf7_wrap .form_group > p,
.cf7_wrap .form_footer > p,
.cf7_wrap .file_drop > p,
.cf7_wrap .file_drop_body > p {
	margin: 0;
}
.cf7_wrap .form_group br,
.cf7_wrap .form_footer br,
.cf7_wrap .file_drop br,
.cf7_wrap .file_drop_body br {
	display: none;
}
.cf7_wrap .form_group {
	position: relative;
}
.cf7_wrap .wpcf7-form-control-wrap {
	display: block;
	position: static;
	width: 100%;
}
.cf7_wrap .wpcf7-form-control-wrap .form_input {
	width: 100%;
}
/* Все поля формы одинаковой высоты (2026-07-29) */
.cf7_wrap .form_input {
	height: 52px;
}
.cf7_wrap textarea.form_input {
	height: 52px;
	min-height: 52px;
	resize: none;
	line-height: 1.4;
	overflow-y: auto;
}
.cf7_wrap .wpcf7-not-valid-tip {
	position: absolute;
	left: 0;
	top: 100%;
	margin-top: 4px;
	font-size: 12px;
	color: #e53935;
	line-height: 1.2;
	pointer-events: none;
}
.cf7_wrap .wpcf7-not-valid {
	border-color: #e53935;
	box-shadow: inset 3px 0 0 #e53935;
}
.cf7_wrap .form_error {
	display: none;
}
.cf7_wrap .wpcf7-spinner {
	visibility: hidden;
	position: absolute;
	top: 50%;
	left: 117px;
	width: 22px;
	height: 22px;
	margin: -11px 0 0 0;
	padding: 0;
	background: none;
	border: 2px solid rgba(255, 255, 255, 0.35);
	border-top-color: var(--white);
	border-radius: 50%;
	pointer-events: none;
	animation: cf7_spin 0.8s linear infinite;
}
.cf7_wrap .wpcf7-form.submitting .wpcf7-spinner {
	visibility: visible;
}
.cf7_wrap .wpcf7-form.submitting .btn_submit {
	color: transparent;
	cursor: wait;
}
@keyframes cf7_spin {
	to { transform: rotate(360deg); }
}
.cf7_wrap .wpcf7-response-output {
	position: absolute;
	left: 0;
	right: 0;
	top: 100%;
	margin: 0;
	padding: 12px 16px;
	font-size: 13px;
	line-height: 1.4;
	color: #e53935;
	border: 1px solid #e53935;
	background: #fff5f5;
}
.cf7_wrap .wpcf7-form.sent .wpcf7-response-output {
	color: #1e7e34;
	border-color: #1e7e34;
	background: #f1faf3;
}
.cf7_wrap .form_footer > p {
	display: flex;
	align-items: center;
	width: 100%;
	position: relative;
}
.cf7_wrap .form_footer .form_agree {
	flex: 1;
}
.cf7_wrap .file_drop > p:last-of-type {
	position: absolute;
	inset: 0;
	margin: 0;
}
.cf7_wrap .file_drop .wpcf7-form-control-wrap,
.cf7_wrap .file_drop input[type="file"] {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	opacity: 0;
	cursor: pointer;
}
.cf7_wrap .file_drop_body > p {
	display: flex;
	align-items: center;
}
@media (max-width: 850px) {
	.cf7_wrap .form_footer > p {
		flex-direction: column;
		align-items: flex-start;
	}
	.cf7_wrap .form_footer .form_agree {
		margin-left: 0;
		margin-top: 14px;
	}
	.cf7_wrap .wpcf7-not-valid-tip {
		font-size: 11px;
	}
	.cf7_wrap .wpcf7-spinner {
		top: 28px;
		left: 50%;
		margin: -11px 0 0 -11px;
	}
}
/* ── SERVICE ABOUT (текстовая секция на странице одной услуги; стили работают для любого HTML из ACF-визивига) ── */
.service_about {
	padding: 110px 0;
	background: var(--white);
}
.service_about_body {
	max-width: 880px;
	color: var(--text);
	font-size: 17px;
	line-height: 1.7;
}
.service_about_body > * {
	margin: 0;
}
.service_about_body > * + * {
	margin-top: 24px;
}
.service_about_body .lead {
	font-size: 20px;
	line-height: 1.55;
	color: var(--navy);
}
.service_about_body h2,
.service_about_body h3,
.service_about_body h4 {
	font-family: var(--ff2);
	font-weight: 700;
	color: var(--navy_mid);
	line-height: 1.25;
	padding-top: 8px;
}
.service_about_body h2 { font-size: 32px; }
.service_about_body h3 {
	font-size: 22px;
	padding-left: 16px;
	border-left: 3px solid var(--accent);
}
.service_about_body h4 { font-size: 18px; }
.service_about_body ul,
.service_about_body ol {
	padding-left: 0;
	list-style: none;
}
.service_about_body ul > li + li,
.service_about_body ol > li + li {
	margin-top: 12px;
}
.service_about_body li {
	position: relative;
	padding-left: 28px;
}
.service_about_body ul > li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 12px;
	width: 14px;
	height: 2px;
	background: var(--accent);
}
.service_about_body ol {
	counter-reset: about_step;
}
.service_about_body ol > li::before {
	counter-increment: about_step;
	content: counter(about_step, decimal-leading-zero);
	position: absolute;
	left: 0;
	top: 0;
	font-family: var(--ff2);
	font-weight: 700;
	font-size: 14px;
	color: var(--accent);
	line-height: 1.7;
}
.service_about_body blockquote {
	padding: 24px 28px;
	background: #f5f7fa;
	border-left: 4px solid var(--accent);
	font-style: italic;
	color: var(--navy_mid);
	font-size: 18px;
	line-height: 1.55;
}
.service_about_body img {
	display: block;
	max-width: 100%;
	height: auto;
}
.service_about_body strong {
	color: var(--navy_mid);
	font-weight: 700;
}
.service_about_body a {
	color: var(--accent);
	text-decoration: underline;
}
.service_about_body a:hover {
	color: var(--accent_hi);
}
@media (max-width: 850px) {
	.service_about {
		padding: 60px 0;
	}
	.service_about_body {
		font-size: 15px;
		line-height: 1.65;
	}
	.service_about_body > * + * {
		margin-top: 20px;
	}
	.service_about_body .lead {
		font-size: 17px;
	}
	.service_about_body h2 { font-size: 24px; }
	.service_about_body h3 { font-size: 19px; }
	.service_about_body h4 { font-size: 17px; }
	.service_about_body blockquote {
		padding: 18px 20px;
		font-size: 16px;
	}
}
/* ── POPUP ── */
.popup_overlay {
	position: fixed;
	inset: 0;
	background: rgba(0, 0, 0, 0.65);
	z-index: 2000;
	display: flex;
	align-items: center;
	justify-content: center;
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.25s, visibility 0.25s;
}
.popup_overlay.open {
	opacity: 1;
	visibility: visible;
}
.popup_modal {
	position: relative;
	background: #fff;
	border-radius: 8px;
	width: 100%;
	max-width: 740px;
	max-height: 90dvh;
	overflow: hidden;
	transform: translateY(24px);
	transition: transform 0.25s;
}
.popup_overlay.open .popup_modal {
	transform: translateY(0);
}
.popup_modal_body {
	padding: 48px 48px 40px;
	max-height: 90dvh;
	overflow-y: auto;
	scrollbar-width: thin;
	scrollbar-color: rgba(0, 0, 0, 0.18) transparent;
}
.popup_modal_body::-webkit-scrollbar {
	width: 4px;
}
.popup_modal_body::-webkit-scrollbar-track {
	background: transparent;
}
.popup_modal_body::-webkit-scrollbar-thumb {
	background: rgba(0, 0, 0, 0.18);
	border-radius: 2px;
}
.popup_title {
	font-size: 26px;
	font-weight: 700;
	color: var(--navy);
	margin: 0 0 4px;
	padding-right: 40px;
}
.popup_close {
	position: absolute;
	top: 16px;
	right: 16px;
	width: 36px;
	height: 36px;
	background: none;
	border: none;
	cursor: pointer;
	font-size: 26px;
	line-height: 36px;
	color: #666;
	padding: 0;
	text-align: center;
	transition: color 0.2s;
	z-index: 1;
}
.popup_close:hover {
	color: #111;
}
.popup_modal_body .cf7_wrap {
	margin-top: 0;
}
@media (max-width: 850px) {
	.popup_modal {
		border-radius: 6px;
		max-height: 92dvh;
	}
	.popup_modal_body {
		padding: 40px 20px 32px;
		max-height: 92dvh;
	}
	.popup_title {
		font-size: 22px;
	}
}

/* =====================================================================
   Глобальные scroll-эффекты: smooth, parallax, glow, reveal (2026-06-19)
   ===================================================================== */

html { scroll-behavior: smooth; }

/* Базовое поведение параллакса (JS добавляет transform). */
[data-parallax] {
	will-change: transform;
	transform: translate3d(0, 0, 0);
}

/* Расширенные reveal-варианты (помимо существующего .fade_in). */
.reveal {
	opacity: 0;
	transition:
		opacity 0.75s ease,
		transform 0.85s cubic-bezier(0.2, 0.7, 0.2, 1);
	will-change: opacity, transform;
}
.reveal_up    { transform: translateY(50px); }
.reveal_down  { transform: translateY(-50px); }
.reveal_left  { transform: translateX(-60px); }
.reveal_right { transform: translateX(60px); }
.reveal_zoom  { transform: scale(0.92); }
.reveal_blur  { filter: blur(8px); }
.reveal.visible {
	opacity: 1;
	transform: none;
	filter: none;
}
/* Лесенка задержек для серий */
.stagger > * { transition-delay: calc(var(--stagger-step, 90ms) * var(--i, 0)); }

/* --- Подсветка секций (radial glow) --- */
.hero_section::after {
	content: "";
	position: absolute;
	left: 50%;
	top: 70%;
	width: 950px;
	height: 950px;
	max-width: 140vw;
	max-height: 140vw;
	transform: translate(-50%, -50%);
	background:
		radial-gradient(circle at center,
			rgba(var(--accent_rgb, 255, 12, 12), 0.32) 0%,
			rgba(var(--accent_rgb, 255, 12, 12), 0.10) 28%,
			rgba(var(--accent_rgb, 255, 12, 12), 0) 60%);
	z-index: 1;
	pointer-events: none;
	filter: blur(18px);
	opacity: 0.55;
	mix-blend-mode: screen;
	animation: heroGlowPulse 6s ease-in-out infinite;
}
@keyframes heroGlowPulse {
	0%, 100% { opacity: 0.45; transform: translate(-50%, -50%) scale(1.0); }
	50%      { opacity: 0.75; transform: translate(-50%, -50%) scale(1.06); }
}

/* Бегущий блик сверху-слева → вниз-вправо */
.hero_section .hero_shine {
	position: absolute;
	inset: 0;
	z-index: 2;
	pointer-events: none;
	overflow: hidden;
}
.hero_section .hero_shine::before {
	content: "";
	position: absolute;
	top: -40%;
	left: -60%;
	width: 60%;
	height: 220%;
	background: linear-gradient(115deg,
		transparent 0%,
		rgba(255, 255, 255, 0) 30%,
		rgba(255, 255, 255, 0.08) 48%,
		rgba(255, 255, 255, 0.18) 50%,
		rgba(255, 255, 255, 0.08) 52%,
		rgba(255, 255, 255, 0) 70%,
		transparent 100%);
	transform: rotate(8deg);
	animation: heroShine 8s ease-in-out infinite;
	mix-blend-mode: screen;
}
@keyframes heroShine {
	0%   { transform: translateX(-30%) rotate(8deg); opacity: 0; }
	20%  { opacity: 0.9; }
	60%  { opacity: 0.9; }
	100% { transform: translateX(260%) rotate(8deg); opacity: 0; }
}
@media (prefers-reduced-motion: reduce) {
	.hero_bg, .hero_section::after, .hero_section .hero_shine::before { animation: none !important; }
}

.services_section { position: relative; overflow: hidden; }
.services_section::before {
	content: "";
	position: absolute;
	inset: 0;
	background:
		radial-gradient(620px circle at 18% 28%, rgba(var(--accent_rgb, 255, 12, 12), 0.12), transparent 62%),
		radial-gradient(720px circle at 82% 82%, rgba(255, 255, 255, 0.05), transparent 65%);
	pointer-events: none;
	z-index: 0;
}
.services_section_inner { position: relative; z-index: 1; }

.about_section { position: relative; overflow: hidden; }
.about_section::before {
	content: "";
	position: absolute;
	right: -220px;
	top: 50%;
	width: 720px;
	height: 720px;
	max-width: 90vw;
	max-height: 90vw;
	transform: translateY(-50%);
	background: radial-gradient(circle at center, rgba(var(--accent_rgb, 255, 12, 12), 0.09) 0%, transparent 65%);
	z-index: 0;
	pointer-events: none;
}
.about_section_inner { position: relative; z-index: 1; }

.routes_section, .news_section, .partners_section, .form_section {
	position: relative;
	overflow: hidden;
}
.routes_section::before,
.news_section::before,
.partners_section::before,
.form_section::before {
	content: "";
	position: absolute;
	pointer-events: none;
	z-index: 0;
}
.routes_section::before {
	left: -180px;
	top: 18%;
	width: 520px;
	height: 520px;
	max-width: 90vw;
	max-height: 90vw;
	background: radial-gradient(circle, rgba(255, 255, 255, 0.05), transparent 65%);
}
.usp_section::after {
	content: "";
	position: absolute;
	right: -180px;
	bottom: 8%;
	width: 620px;
	height: 620px;
	max-width: 90vw;
	max-height: 90vw;
	background: radial-gradient(circle, rgba(var(--accent_rgb, 255, 12, 12), 0.10), transparent 65%);
	z-index: 0;
	pointer-events: none;
}
.news_section::before {
	left: 50%;
	top: 20%;
	width: 820px;
	height: 420px;
	max-width: 110vw;
	transform: translateX(-50%);
	background: radial-gradient(ellipse, rgba(var(--accent_rgb, 255, 12, 12), 0.08), transparent 70%);
}
.partners_section::before {
	left: 50%;
	top: 50%;
	width: 720px;
	height: 420px;
	max-width: 110vw;
	transform: translate(-50%, -50%);
	background: radial-gradient(ellipse, rgba(255, 255, 255, 0.05), transparent 65%);
}
.form_section::before {
	right: -120px;
	top: -120px;
	width: 520px;
	height: 520px;
	max-width: 90vw;
	max-height: 90vw;
	background: radial-gradient(circle, rgba(var(--accent_rgb, 255, 12, 12), 0.09), transparent 60%);
}
.routes_section_inner,
.usp_section_inner,
.news_section_inner,
.partners_section_inner,
.form_section_inner {
	position: relative;
	z-index: 1;
}

/* Карточки новостей и логотипы партнёров — лёгкий лифт на hover */
.news_card,
.partner_item {
	transition: transform 0.35s cubic-bezier(0.2, 0.7, 0.2, 1), box-shadow 0.35s ease, filter 0.35s ease;
	will-change: transform;
}
.news_card:hover {
	transform: translateY(-4px);
	box-shadow: 0 30px 50px -22px rgba(0, 0, 0, 0.55);
}
.partner_item:hover {
	transform: translateY(-3px);
	filter: drop-shadow(0 6px 14px rgba(var(--accent_rgb, 255, 12, 12), 0.35));
}

/* Buttons глоу */
.btn_outline,
.btn_primary,
.link_arrow {
	position: relative;
	transition: transform 0.25s ease, box-shadow 0.3s ease, color 0.25s ease, background 0.25s ease;
}
.btn_outline:hover,
.btn_primary:hover {
	transform: translateY(-2px);
	box-shadow: 0 18px 30px -14px rgba(var(--accent_rgb, 255, 12, 12), 0.55);
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	[data-parallax] { transform: none !important; }
	.reveal, .fade_in { transition: none; opacity: 1 !important; transform: none !important; filter: none !important; }
	.news_card:hover, .partner_item:hover, .service_card:hover { transform: none; }
}

/* На узких экранах ослабим glow, чтобы не съедал перформанс и фон */
@media (max-width: 850px) {
	.hero_section::after,
	.services_section::before,
	.about_section::before,
	.routes_section::before,
	.usp_section::after,
	.news_section::before,
	.partners_section::before,
	.form_section::before { opacity: 0.55; }
}

/* ======================================================
   Карта маршрутов в блоке «География перевозок» (Leaflet)
   ====================================================== */

.routes_map_wrap {
	position: relative;
	margin: 36px 0 48px;
	border-radius: 22px;
	overflow: hidden;
	background: #0b1320;
	border: 1px solid rgba(255, 255, 255, 0.08);
	box-shadow: 0 25px 50px -25px rgba(0, 0, 0, 0.7);
	z-index: 2;
}
#routes_map {
	width: 100%;
	height: 520px;
	background: #0b1320;
}
@media (max-width: 850px) {
	#routes_map { height: 420px; }
}
@media (max-width: 480px) {
	#routes_map { height: 360px; }
}

.routes_legend {
	list-style: none;
	margin: 0;
	padding: 14px 22px;
	display: flex;
	flex-wrap: wrap;
	gap: 10px 22px;
	background: linear-gradient(180deg, rgba(11, 19, 32, 0) 0%, rgba(11, 19, 32, 0.85) 100%);
	border-top: 1px solid rgba(255, 255, 255, 0.06);
	font-size: 13px;
	color: rgba(255, 255, 255, 0.78);
}
.routes_legend li { display: inline-flex; align-items: center; gap: 8px; }
.routes_legend .dot {
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: var(--c, #ffffff);
	box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.08);
	display: inline-block;
}

/* Кастомные маркеры */
.fm-marker { background: transparent !important; border: 0 !important; pointer-events: none; }
.fm-marker__dot {
	width: 12px;
	height: 12px;
	display: block;
	border-radius: 50%;
	background: var(--c, #ffffff);
	box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.15), 0 0 14px 2px var(--c, rgba(255, 255, 255, 0.5));
	position: relative;
}
.fm-marker--port .fm-marker__dot::after {
	content: "";
	position: absolute;
	inset: -6px;
	border-radius: 50%;
	border: 1px solid var(--c, #ff0c0c);
	opacity: 0.55;
	animation: fmMarkerPulse 2.6s ease-out infinite;
}
.fm-marker__label {
	position: absolute;
	top: -4px;
	left: 16px;
	transform: translateY(-100%);
	white-space: nowrap;
	font-family: var(--ff2, sans-serif);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.6px;
	text-transform: uppercase;
	color: #ffffff;
	background: rgba(11, 19, 32, 0.78);
	padding: 4px 8px;
	border-radius: 6px;
	border: 1px solid rgba(255, 255, 255, 0.08);
	backdrop-filter: blur(6px);
	-webkit-backdrop-filter: blur(6px);
}
@keyframes fmMarkerPulse {
	0%   { transform: scale(0.6); opacity: 0.7; }
	80%  { transform: scale(1.8); opacity: 0; }
	100% { transform: scale(1.8); opacity: 0; }
}

/* Бегущая «вода» в пунктире маршрута */
.leaflet-overlay-pane path.fm-route-line {
	animation: fmRouteDash 1.6s linear infinite;
}
@keyframes fmRouteDash {
	from { stroke-dashoffset: 28; }
	to   { stroke-dashoffset: 0; }
}

/* Leaflet UI под тёмную тему */
.leaflet-container { background: #0b1320; font-family: var(--ff1, sans-serif); }
.leaflet-control-zoom a {
	background-color: rgba(11, 19, 32, 0.85) !important;
	color: #ffffff !important;
	border: 1px solid rgba(255, 255, 255, 0.12) !important;
}
.leaflet-control-zoom a:hover { background-color: rgba(255, 12, 12, 0.85) !important; }
.leaflet-control-attribution {
	background: rgba(11, 19, 32, 0.75) !important;
	color: rgba(255, 255, 255, 0.55) !important;
	font-size: 10px !important;
}
.leaflet-control-attribution a { color: rgba(255, 255, 255, 0.85) !important; }
.leaflet-tooltip {
	background: rgba(11, 19, 32, 0.92);
	color: #fff;
	border: 1px solid rgba(255, 255, 255, 0.12);
	box-shadow: none;
	font-family: var(--ff2, sans-serif);
	font-size: 12px;
	letter-spacing: 0.3px;
}
.leaflet-tooltip::before { display: none; }

@media (prefers-reduced-motion: reduce) {
	.fm-marker--port .fm-marker__dot::after,
	.leaflet-overlay-pane path.fm-route-line { animation: none !important; }
}

/* =========================================================================
   v2 — Светлый редакционный редизайн (Maersk/Flexport-style)
   Шаблон index-v2.php. Префикс всех селекторов: .v2_*
   ========================================================================= */
.v2_main {
	--v2-bg: #ffffff;
	--v2-bg-alt: #f5f7fa;
	--v2-bg-soft: #fafbfc;
	--v2-dark: #0a1220;
	--v2-dark-2: #142033;
	--v2-text: #0e1622;
	--v2-text-2: #4b5563;
	--v2-text-3: #6b7280;
	--v2-border: #e6e8ec;
	--v2-border-2: #d1d5db;
	--v2-accent: #ff0c0c;
	--v2-accent-dim: #c20a0a;
	--v2-blue: #2563eb;
	background: var(--v2-bg);
	color: var(--v2-text);
	font-family: var(--ff1);
	font-size: 16px;
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}
.v2_main * { box-sizing: border-box; }
.v2_main h1, .v2_main h2, .v2_main h3, .v2_main h4 {
	margin: 0;
	color: var(--v2-text);
	font-family: var(--ff2);
	letter-spacing: -0.015em;
	line-height: 1.1;
}
.v2_main p { margin: 0; color: var(--v2-text-2); line-height: 1.65; }
.v2_main a { color: inherit; text-decoration: none; }
.v2_main img { max-width: 100%; height: auto; display: block; }
.v2_main .ff2 { font-family: var(--ff2); }
.v2_container { max-width: 1280px; margin: 0 auto; padding: 0 32px; }

/* Eyebrow и общие заголовки секций */
.v2_eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-family: var(--ff2);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--v2-accent);
	margin-bottom: 18px;
}
.v2_eyebrow_light { color: rgba(255, 255, 255, 0.7); }
.v2_section_head { max-width: 760px; margin: 0 auto 56px; text-align: center; }
.v2_section_head_split {
	max-width: 100%;
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 24px;
	text-align: left;
}
.v2_section_title {
	font-size: clamp(28px, 3.4vw, 46px);
	font-weight: 700;
	color: var(--v2-text);
	margin-bottom: 16px;
}
.v2_section_lead {
	font-size: clamp(15px, 1.2vw, 18px);
	color: var(--v2-text-2);
	line-height: 1.55;
}

/* Кнопки */
.v2_btn {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 16px 28px;
	border-radius: 10px;
	font-family: var(--ff2);
	font-size: 15px;
	font-weight: 600;
	letter-spacing: 0.01em;
	border: 1px solid transparent;
	cursor: pointer;
	transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
}
.v2_btn span { transition: transform 0.25s ease; }
.v2_btn:hover span { transform: translateX(3px); }
.v2_btn_primary {
	background: var(--v2-accent);
	color: #fff;
	box-shadow: 0 8px 24px -8px rgba(255, 12, 12, 0.45);
}
.v2_btn_primary:hover {
	background: var(--v2-accent-dim);
	box-shadow: 0 12px 30px -10px rgba(255, 12, 12, 0.55);
	transform: translateY(-1px);
}
.v2_btn_ghost {
	background: rgba(255, 255, 255, 0.08);
	color: #fff;
	border-color: rgba(255, 255, 255, 0.35);
	backdrop-filter: blur(8px);
}
.v2_btn_ghost:hover { background: rgba(255, 255, 255, 0.18); border-color: rgba(255, 255, 255, 0.6); }

/* ---------- 1. HERO ---------- */
.v2_hero {
	position: relative;
	background: var(--v2-dark);
	color: #fff;
	padding: 140px 0 100px;
	overflow: hidden;
}
.v2_hero_bg { position: absolute; inset: 0; z-index: 0; }
.v2_hero_bg img { width: 100%; height: 100%; object-fit: cover; opacity: 0.4; }
.v2_hero_overlay {
	position: absolute; inset: 0;
	background: linear-gradient(180deg, rgba(10, 18, 32, 0.55) 0%, rgba(10, 18, 32, 0.85) 60%, rgba(10, 18, 32, 0.98) 100%);
}
.v2_hero_inner { position: relative; z-index: 1; max-width: 920px; }
.v2_hero_eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 8px 16px;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.08);
	border: 1px solid rgba(255, 255, 255, 0.18);
	color: rgba(255, 255, 255, 0.92);
	font-family: var(--ff2);
	font-size: 13px;
	font-weight: 500;
	letter-spacing: 0.02em;
	margin-bottom: 32px;
	backdrop-filter: blur(8px);
}
.v2_pulse {
	width: 8px; height: 8px;
	border-radius: 50%;
	background: #4ade80;
	box-shadow: 0 0 0 0 rgba(74, 222, 128, 0.7);
	animation: v2pulse 2s infinite;
}
@keyframes v2pulse {
	0%   { box-shadow: 0 0 0 0 rgba(74, 222, 128, 0.7); }
	70%  { box-shadow: 0 0 0 10px rgba(74, 222, 128, 0); }
	100% { box-shadow: 0 0 0 0 rgba(74, 222, 128, 0); }
}
.v2_hero_title {
	color: #fff;
	font-size: clamp(36px, 5.5vw, 72px);
	font-weight: 700;
	letter-spacing: -0.025em;
	line-height: 1.05;
	margin: 0 0 28px;
}
.v2_hero_lead {
	font-size: clamp(16px, 1.4vw, 20px);
	color: rgba(255, 255, 255, 0.75);
	line-height: 1.55;
	max-width: 680px;
	margin-bottom: 40px;
}
.v2_hero_cta { display: flex; flex-wrap: wrap; gap: 14px; margin-bottom: 48px; }
.v2_hero_feats {
	list-style: none;
	padding: 0; margin: 0;
	display: flex; flex-wrap: wrap; gap: 32px;
}
.v2_hero_feats li {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	color: rgba(255, 255, 255, 0.85);
	font-size: 15px;
}
.v2_check {
	width: 22px; height: 22px;
	display: inline-flex; align-items: center; justify-content: center;
	background: rgba(74, 222, 128, 0.15);
	color: #4ade80;
	border-radius: 50%;
	font-size: 12px;
	font-weight: 700;
}

/* ---------- 2. STATS STRIP ---------- */
.v2_stats {
	background: var(--v2-bg);
	border-bottom: 1px solid var(--v2-border);
	padding: 0;
}
.v2_stats_grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 0;
}
.v2_stat {
	padding: 56px 28px;
	text-align: left;
	border-right: 1px solid var(--v2-border);
}
.v2_stat:last-child { border-right: none; }
.v2_stat_num {
	font-size: clamp(40px, 4.5vw, 64px);
	font-weight: 700;
	letter-spacing: -0.03em;
	color: var(--v2-text);
	line-height: 1;
	margin-bottom: 10px;
}
.v2_stat_num span { color: var(--v2-accent); font-weight: 600; }
.v2_stat_label {
	font-size: 14px;
	color: var(--v2-text-3);
	line-height: 1.4;
	font-weight: 500;
}

/* ---------- 3. SERVICES ---------- */
.v2_services { padding: clamp(72px, 9vw, 120px) 0; background: var(--v2-bg); }
.v2_services_grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 20px;
}
.v2_svc_card {
	display: flex;
	flex-direction: column;
	background: var(--v2-bg);
	border: 1px solid var(--v2-border);
	border-radius: 18px;
	padding: 28px;
	min-height: 240px;
	transition: border-color 0.25s ease, transform 0.25s ease, box-shadow 0.25s ease;
	cursor: pointer;
	position: relative;
	overflow: hidden;
}
.v2_svc_card::after {
	content: "";
	position: absolute;
	left: 0; right: 0; top: 0;
	height: 3px;
	background: var(--v2-accent);
	transform: scaleX(0);
	transform-origin: left center;
	transition: transform 0.35s ease;
}
.v2_svc_card:hover {
	border-color: var(--v2-text);
	transform: translateY(-4px);
	box-shadow: 0 22px 40px -22px rgba(14, 22, 34, 0.18);
}
.v2_svc_card:hover::after { transform: scaleX(1); }
.v2_svc_card_top {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 28px;
}
.v2_svc_icon {
	width: 56px; height: 56px;
	display: inline-flex; align-items: center; justify-content: center;
	background: var(--v2-bg-alt);
	border-radius: 14px;
	transition: background 0.25s ease;
}
.v2_svc_card:hover .v2_svc_icon { background: #ffe9e9; }
.v2_svc_icon img {
	width: 32px; height: 32px;
	object-fit: contain;
	filter: brightness(0) saturate(100%) invert(8%) sepia(15%) saturate(2000%) hue-rotate(195deg) brightness(95%) contrast(95%);
	opacity: 0.85;
}
.v2_svc_num {
	font-family: var(--ff2);
	font-size: 13px;
	font-weight: 600;
	color: var(--v2-text-3);
	letter-spacing: 0.08em;
}
.v2_svc_title {
	font-size: 22px;
	font-weight: 700;
	color: var(--v2-text);
	margin: 0 0 auto;
	letter-spacing: -0.01em;
	line-height: 1.25;
}
.v2_svc_foot {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-top: 24px;
	padding-top: 20px;
	border-top: 1px solid var(--v2-border);
}
.v2_svc_more {
	font-family: var(--ff2);
	font-size: 13px;
	font-weight: 600;
	color: var(--v2-text);
	letter-spacing: 0.02em;
}
.v2_svc_arrow {
	width: 36px; height: 36px;
	display: inline-flex; align-items: center; justify-content: center;
	border-radius: 50%;
	background: var(--v2-bg-alt);
	color: var(--v2-text);
	transition: background 0.25s ease, color 0.25s ease, transform 0.25s ease;
}
.v2_svc_card:hover .v2_svc_arrow {
	background: var(--v2-accent);
	color: #fff;
	transform: translateX(2px);
}

/* ---------- 4. ABOUT ---------- */
.v2_about {
	background: var(--v2-bg-alt);
	padding: clamp(72px, 9vw, 120px) 0;
}
.v2_about_grid {
	display: grid;
	grid-template-columns: 0.95fr 1fr;
	gap: 64px;
	align-items: center;
}
.v2_about_visual { position: relative; }
.v2_about_img_wrap {
	border-radius: 24px;
	overflow: hidden;
	aspect-ratio: 4 / 5;
	background: var(--v2-bg);
	box-shadow: 0 30px 60px -30px rgba(14, 22, 34, 0.25);
}
.v2_about_img { width: 100%; height: 100%; object-fit: cover; }
.v2_about_badge {
	position: absolute;
	right: -16px; bottom: 28px;
	background: var(--v2-text);
	color: #fff;
	padding: 18px 22px;
	border-radius: 14px;
	display: flex;
	align-items: baseline;
	gap: 10px;
	box-shadow: 0 16px 30px -12px rgba(14, 22, 34, 0.4);
}
.v2_about_badge_num { font-size: 32px; font-weight: 700; letter-spacing: -0.02em; color: var(--v2-accent); }
.v2_about_badge_text { font-size: 13px; font-weight: 500; color: rgba(255, 255, 255, 0.85); text-transform: uppercase; letter-spacing: 0.12em; }
.v2_about_body .v2_eyebrow { margin-bottom: 16px; }
.v2_about_text :is(h1, h2, h3) {
	font-family: var(--ff2);
	color: var(--v2-text);
	font-size: clamp(26px, 2.6vw, 38px);
	font-weight: 700;
	letter-spacing: -0.02em;
	line-height: 1.15;
	margin: 0 0 20px;
}
.v2_about_text p {
	color: var(--v2-text-2);
	font-size: clamp(15px, 1.1vw, 17px);
	line-height: 1.7;
	margin: 0 0 14px;
}
.v2_about_text p:last-child { margin-bottom: 0; }
.v2_about_bar {
	margin-top: 56px;
	background: var(--v2-bg);
	border: 1px solid var(--v2-border);
	border-radius: 18px;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	overflow: hidden;
}
.v2_about_bar > * {
	padding: 28px 28px;
	border-right: 1px solid var(--v2-border);
	background: var(--v2-bg);
}
.v2_about_bar > *:last-child { border-right: none; }
.v2_about_bar :is(.stats_value, .stat_value, strong, b) {
	display: block;
	color: var(--v2-text);
	font-family: var(--ff2);
	font-size: 32px;
	font-weight: 700;
	letter-spacing: -0.02em;
	line-height: 1.1;
	margin-bottom: 8px;
}
.v2_about_bar :is(.stats_label, .stat_label, span, p) {
	color: var(--v2-text-3);
	font-size: 13px;
	font-weight: 500;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	line-height: 1.4;
}

/* ---------- 5. ROUTES ---------- */
.v2_routes {
	background: var(--v2-bg);
	padding: clamp(72px, 9vw, 120px) 0;
}
.v2_routes_map_wrap {
	background: var(--v2-bg-soft);
	border: 1px solid var(--v2-border);
	border-radius: 22px;
	padding: 24px;
	overflow: hidden;
}
.v2_routes_map_wrap #routes_map {
	width: 100%;
	height: 540px;
	border-radius: 16px;
	overflow: hidden;
}
.v2_routes_legend {
	list-style: none;
	padding: 0;
	margin: 18px 0 0;
	display: flex;
	flex-wrap: wrap;
	gap: 14px 24px;
}
.v2_routes_legend li {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-size: 13px;
	font-weight: 500;
	color: var(--v2-text-2);
}
.v2_dot {
	width: 12px; height: 12px;
	border-radius: 50%;
	background: var(--c, var(--v2-accent));
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--c, var(--v2-accent)) 22%, transparent);
}
.v2_routes_list {
	margin-top: 48px;
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(380px, 1fr));
	gap: 14px;
}
.v2_routes_list .route_row {
	background: var(--v2-bg);
	border: 1px solid var(--v2-border);
	border-radius: 14px;
	padding: 22px 24px;
	display: flex;
	gap: 18px;
	align-items: flex-start;
	transition: border-color 0.25s ease, box-shadow 0.25s ease, transform 0.25s ease;
}
.v2_routes_list .route_row:hover {
	border-color: var(--v2-text);
	box-shadow: 0 12px 28px -16px rgba(14, 22, 34, 0.18);
	transform: translateY(-2px);
}
.v2_routes_list .route_index {
	flex: 0 0 auto;
	font-family: var(--ff2);
	font-size: 13px;
	font-weight: 700;
	color: var(--v2-accent);
	letter-spacing: 0.06em;
	min-width: 28px;
	padding-top: 2px;
}
.v2_routes_list .route_flow {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px 8px;
}
.v2_routes_list .route_node {
	font-family: var(--ff2);
	font-size: 14px;
	font-weight: 600;
	color: var(--v2-text);
	letter-spacing: 0;
}
.v2_routes_list .route_node.route_dest {
	color: var(--v2-accent);
}
.v2_routes_list .route_arr {
	color: var(--v2-text-3);
	font-size: 13px;
	font-weight: 500;
}
.v2_routes_list .route_note {
	flex-basis: 100%;
	color: var(--v2-text-3);
	font-size: 13px;
	font-weight: 400;
	line-height: 1.5;
	margin: 8px 0 0 46px;
}

/* ---------- 6. USP ---------- */
.v2_usp {
	background: var(--v2-bg-alt);
	padding: clamp(72px, 9vw, 120px) 0;
}
.v2_usp_grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: 16px;
}
.v2_usp_grid .usp_item {
	position: relative;
	background: var(--v2-bg);
	border: 1px solid var(--v2-border);
	border-radius: 18px;
	padding: 28px 28px 32px;
	overflow: hidden;
	transition: border-color 0.25s ease, transform 0.25s ease, box-shadow 0.25s ease;
}
.v2_usp_grid .usp_item:hover {
	border-color: var(--v2-text);
	transform: translateY(-3px);
	box-shadow: 0 18px 32px -18px rgba(14, 22, 34, 0.18);
}
.v2_usp_grid .usp_bg_num {
	font-family: var(--ff2);
	font-size: 92px;
	font-weight: 700;
	color: transparent;
	-webkit-text-stroke: 1px var(--v2-border-2);
	line-height: 1;
	position: absolute;
	top: 12px; right: 16px;
	opacity: 0.85;
	pointer-events: none;
}
.v2_usp_grid .usp_title {
	position: relative;
	font-family: var(--ff2);
	font-size: 20px;
	font-weight: 700;
	color: var(--v2-text);
	margin: 0 0 12px;
	letter-spacing: -0.01em;
	line-height: 1.25;
}
.v2_usp_grid .usp_desc {
	position: relative;
	color: var(--v2-text-2);
	font-size: 14.5px;
	line-height: 1.6;
	margin: 0;
}

/* ---------- 7. TRUST / PARTNERS ---------- */
.v2_trust {
	background: var(--v2-bg);
	border-top: 1px solid var(--v2-border);
	border-bottom: 1px solid var(--v2-border);
	padding: 80px 0;
}
.v2_trust_head { text-align: center; margin-bottom: 36px; }
.v2_trust_head .v2_eyebrow { margin-bottom: 10px; }
.v2_trust_kicker {
	color: var(--v2-text-3);
	font-size: 14px;
	letter-spacing: 0.02em;
}
.v2_trust_logos {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	gap: 24px 56px;
}
.v2_trust_item {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	max-width: 160px;
	max-height: 60px;
}
.v2_trust_item img {
	max-width: 100%;
	max-height: 60px;
	object-fit: contain;
	filter: grayscale(100%);
	opacity: 0.55;
	transition: opacity 0.25s ease, filter 0.25s ease;
}
.v2_trust_item:hover img { filter: grayscale(0); opacity: 1; }

/* ---------- 8. NEWS ---------- */
.v2_news {
	background: var(--v2-bg-alt);
	padding: clamp(72px, 9vw, 120px) 0;
}
.v2_news .v2_section_head { margin-bottom: 40px; }
.v2_link_arrow {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	color: var(--v2-text);
	font-family: var(--ff2);
	font-size: 14px;
	font-weight: 600;
	letter-spacing: 0.01em;
	border-bottom: 1px solid transparent;
	padding-bottom: 4px;
	transition: color 0.2s, border-color 0.2s, transform 0.2s;
}
.v2_link_arrow span { transition: transform 0.25s ease; }
.v2_link_arrow:hover { color: var(--v2-accent); border-color: var(--v2-accent); }
.v2_link_arrow:hover span { transform: translateX(4px); }
.v2_news_grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 22px;
}
.v2_news_card {
	position: relative;
	display: flex;
	flex-direction: column;
	background: var(--v2-bg);
	border: 1px solid var(--v2-border);
	border-radius: 18px;
	overflow: hidden;
	transition: border-color 0.25s ease, transform 0.25s ease, box-shadow 0.25s ease;
}
.v2_news_card:hover {
	border-color: var(--v2-text);
	transform: translateY(-4px);
	box-shadow: 0 22px 40px -22px rgba(14, 22, 34, 0.2);
}
.v2_news_link { position: absolute; inset: 0; z-index: 2; }
.v2_news_img_wrap { aspect-ratio: 16 / 10; overflow: hidden; background: var(--v2-bg-alt); }
.v2_news_img {
	width: 100%; height: 100%; object-fit: cover;
	transition: transform 0.5s ease;
}
.v2_news_card:hover .v2_news_img { transform: scale(1.05); }
.v2_news_body { padding: 24px 26px 26px; display: flex; flex-direction: column; gap: 10px; flex: 1; }
.v2_news_date {
	color: var(--v2-text-3);
	font-size: 12px;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	font-weight: 500;
}
.v2_news_title {
	font-size: 19px;
	font-weight: 700;
	color: var(--v2-text);
	margin: 0;
	line-height: 1.3;
	letter-spacing: -0.01em;
}
.v2_news_excerpt {
	color: var(--v2-text-2);
	font-size: 14px;
	line-height: 1.55;
	margin: 0;
}
.v2_news_more {
	margin-top: auto;
	padding-top: 10px;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-family: var(--ff2);
	font-size: 13px;
	font-weight: 600;
	color: var(--v2-accent);
}
.v2_news_more span { transition: transform 0.25s ease; }
.v2_news_card:hover .v2_news_more span { transform: translateX(3px); }

/* ---------- 9. CTA FINALE ---------- */
.v2_cta {
	background: var(--v2-dark);
	color: #fff;
	padding: clamp(72px, 9vw, 120px) 0;
	position: relative;
	overflow: hidden;
}
.v2_cta::before {
	content: "";
	position: absolute;
	inset: -50%;
	background: radial-gradient(circle at 30% 40%, rgba(255, 12, 12, 0.16) 0%, transparent 45%);
	pointer-events: none;
}
.v2_cta_grid {
	position: relative;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 56px;
	align-items: start;
}
.v2_cta_text { padding-top: 8px; }
.v2_cta_title {
	color: #fff;
	font-size: clamp(28px, 3.4vw, 44px);
	font-weight: 700;
	letter-spacing: -0.02em;
	line-height: 1.1;
	margin: 0 0 18px;
}
.v2_cta_lead {
	color: rgba(255, 255, 255, 0.72);
	font-size: clamp(15px, 1.2vw, 18px);
	line-height: 1.55;
	margin-bottom: 28px;
}
.v2_cta_feats { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 14px; }
.v2_cta_feats li {
	display: flex; align-items: flex-start; gap: 12px;
	color: rgba(255, 255, 255, 0.88);
	font-size: 15px;
	line-height: 1.5;
}
.v2_check_light {
	flex: 0 0 22px;
	width: 22px; height: 22px;
	display: inline-flex; align-items: center; justify-content: center;
	background: rgba(255, 12, 12, 0.18);
	color: var(--v2-accent);
	border-radius: 50%;
	font-size: 12px;
	font-weight: 700;
	margin-top: 2px;
}
.v2_cta_form {
	background: rgba(255, 255, 255, 0.04);
	border: 1px solid rgba(255, 255, 255, 0.1);
	border-radius: 20px;
	padding: 36px;
	backdrop-filter: blur(12px);
}
.v2_cta_form .wpcf7 label { display: block; margin-bottom: 14px; color: rgba(255, 255, 255, 0.85); font-size: 13px; font-weight: 500; letter-spacing: 0.04em; text-transform: uppercase; }
.v2_cta_form .wpcf7 input[type="text"],
.v2_cta_form .wpcf7 input[type="email"],
.v2_cta_form .wpcf7 input[type="tel"],
.v2_cta_form .wpcf7 textarea {
	width: 100%;
	background: rgba(255, 255, 255, 0.06);
	border: 1px solid rgba(255, 255, 255, 0.14);
	color: #fff;
	font-family: var(--ff1);
	font-size: 15px;
	padding: 14px 16px;
	border-radius: 10px;
	margin-top: 6px;
	transition: border-color 0.2s, background 0.2s;
}
.v2_cta_form .wpcf7 input:focus,
.v2_cta_form .wpcf7 textarea:focus {
	outline: none;
	background: rgba(255, 255, 255, 0.09);
	border-color: var(--v2-accent);
}
.v2_cta_form .wpcf7 textarea { min-height: 100px; resize: vertical; }
.v2_cta_form .wpcf7 input[type="submit"] {
	background: var(--v2-accent);
	color: #fff;
	border: none;
	padding: 16px 28px;
	border-radius: 10px;
	font-family: var(--ff2);
	font-size: 15px;
	font-weight: 600;
	cursor: pointer;
	width: 100%;
	margin-top: 8px;
	transition: background 0.2s, transform 0.2s, box-shadow 0.2s;
}
.v2_cta_form .wpcf7 input[type="submit"]:hover {
	background: var(--v2-accent-dim);
	transform: translateY(-1px);
	box-shadow: 0 12px 30px -10px rgba(255, 12, 12, 0.5);
}
.v2_cta_form .wpcf7-response-output { color: #fff; border-color: rgba(255, 255, 255, 0.2); margin: 18px 0 0; padding: 14px; border-radius: 10px; }

/* ---------- LEAFLET: светлые тайлы для v2 ---------- */
.v2_routes_map_wrap .leaflet-tile-pane { filter: invert(1) hue-rotate(180deg) brightness(0.95) contrast(1.05); }
.v2_routes_map_wrap .leaflet-control-attribution {
	background: rgba(255, 255, 255, 0.92) !important;
	color: rgba(14, 22, 34, 0.65) !important;
}
.v2_routes_map_wrap .leaflet-control-attribution a { color: var(--v2-text) !important; }
.v2_routes_map_wrap .leaflet-tooltip {
	background: var(--v2-text);
	color: #fff;
	border-color: var(--v2-text);
}
.v2_routes_map_wrap .fm-marker__label {
	color: var(--v2-text);
	text-shadow: 0 0 4px #fff, 0 0 4px #fff, 0 0 4px #fff;
}

/* ---------- Responsive ---------- */
@media (max-width: 1100px) {
	.v2_services_grid { grid-template-columns: repeat(2, 1fr); }
	.v2_news_grid { grid-template-columns: repeat(2, 1fr); }
	.v2_stats_grid { grid-template-columns: repeat(2, 1fr); }
	.v2_stat { border-right: 1px solid var(--v2-border); border-bottom: 1px solid var(--v2-border); }
	.v2_stat:nth-child(2n) { border-right: none; }
	.v2_stat:nth-last-child(-n+2) { border-bottom: none; }
	.v2_about_grid { grid-template-columns: 1fr; gap: 48px; }
	.v2_about_badge { right: 16px; bottom: 16px; }
	.v2_cta_grid { grid-template-columns: 1fr; gap: 40px; }
}
@media (max-width: 760px) {
	.v2_container { padding: 0 20px; }
	.v2_hero { padding: 100px 0 72px; }
	.v2_hero_feats { flex-direction: column; gap: 14px; }
	.v2_hero_cta { flex-direction: column; align-items: stretch; }
	.v2_btn { justify-content: center; }
	.v2_services_grid, .v2_news_grid, .v2_stats_grid { grid-template-columns: 1fr; }
	.v2_stat { border-right: none; border-bottom: 1px solid var(--v2-border); padding: 36px 24px; }
	.v2_stat:last-child { border-bottom: none; }
	.v2_section_head_split { flex-direction: column; align-items: flex-start; gap: 18px; }
	.v2_routes_map_wrap #routes_map { height: 380px; }
	.v2_routes_list { grid-template-columns: 1fr; }
	.v2_cta_form { padding: 24px; }
	.v2_about_bar { grid-template-columns: 1fr; }
	.v2_about_bar > * { border-right: none; border-bottom: 1px solid var(--v2-border); }
	.v2_about_bar > *:last-child { border-bottom: none; }
}

/* ==============================================================
   Карточки услуг: светлая тема (2026-07-14) — override предыдущих
   ============================================================== */
.service_card {
	background: #ffffff;
	border: 1px solid rgba(11, 19, 32, 0.08);
	box-shadow:
		0 18px 40px -24px rgba(11, 19, 32, 0.22),
		0 2px 10px -4px rgba(11, 19, 32, 0.10);
}
.service_card_bg {
	opacity: 0.14;
	filter: saturate(0.9);
}
.service_card::before {
	background: linear-gradient(165deg,
		rgba(255, 255, 255, 0.85) 0%,
		rgba(255, 255, 255, 0.97) 70%,
		#ffffff 100%);
}
.service_card:hover {
	border-color: rgba(var(--accent_rgb, 255, 12, 12), 0.35);
	box-shadow:
		0 35px 60px -22px rgba(11, 19, 32, 0.35),
		0 0 0 1px rgba(var(--accent_rgb, 255, 12, 12), 0.20);
}
.service_card:hover .service_card_bg {
	opacity: 0.22;
	filter: saturate(1);
}
.service_card:hover::before {
	background: linear-gradient(165deg,
		rgba(255, 255, 255, 0.78) 0%,
		rgba(255, 255, 255, 0.94) 70%,
		rgba(255, 255, 255, 0.98) 100%);
}
.service_card:hover::after {
	box-shadow: inset 0 0 0 1px rgba(11, 19, 32, 0.06);
}

/* Иконка: светлый круг с тёмным содержимым */
.service_icon {
	background: rgba(11, 19, 32, 0.04);
	border-color: rgba(11, 19, 32, 0.08);
	color: #0b1320;
}
.service_icon img {
	filter: brightness(0);
	opacity: 0.9;
}
.service_card:hover .service_icon {
	background: rgba(11, 19, 32, 0.06);
	border-color: rgba(11, 19, 32, 0.14);
}

/* Стрелка-кнопка справа сверху */
.service_arrow_btn {
	background: rgba(11, 19, 32, 0.04);
	border-color: rgba(11, 19, 32, 0.12);
	color: #0b1320;
}
.service_card:hover .service_arrow_btn {
	background: var(--accent, #ff0c0c);
	border-color: var(--accent, #ff0c0c);
	color: #ffffff;
	box-shadow:
		0 0 0 6px rgba(var(--accent_rgb, 255, 12, 12), 0.14),
		0 12px 24px -8px rgba(var(--accent_rgb, 255, 12, 12), 0.55);
}

/* Тексты — тёмные */
.service_num {
	color: rgba(11, 19, 32, 0.35);
}
.service_title {
	color: #0b1320;
	background: none;
	-webkit-background-clip: initial;
	background-clip: initial;
	-webkit-text-fill-color: initial;
}
.service_link {
	color: var(--accent, #ff0c0c);
}
.service_link:hover {
	color: var(--accent_hi, #d10000);
}

/* --- Контраст текста hero поверх видео (2026-07-14) --- */
.hero_content .hero_eyebrow {
	color: rgba(255, 255, 255, 0.9);
	text-shadow: 0 1px 2px rgba(0, 0, 0, 0.5);
}
.hero_content .hero_sub,
.hero_content .hero_subtitle {
	color: rgba(255, 255, 255, 0.95);
	text-shadow: 0 1px 3px rgba(0, 0, 0, 0.5);
}
.hero_content .hero_title {
	text-shadow: 0 3px 12px rgba(0, 0, 0, 0.4);
}

/* --- Плавное появление hero-контента (2026-07-14) --- */
@keyframes heroSoftIn {
	from {
		opacity: 0;
		transform: translateY(30px);
		filter: blur(8px);
	}
	to {
		opacity: 1;
		transform: none;
		filter: blur(0);
	}
}
.hero_content .hero_eyebrow,
.hero_content .hero_title,
.hero_content .hero_title_line,
.hero_content .hero_actions,
.hero_content .hero_subtitle,
.hero_content > p {
	opacity: 0;
	animation: heroSoftIn 1.15s cubic-bezier(0.22, 0.61, 0.36, 1) both;
}
.hero_content .hero_eyebrow      { animation-delay: 0.2s; }
.hero_content .hero_title_line:nth-child(1) { animation-delay: 0.45s; }
.hero_content .hero_title_line:nth-child(2) { animation-delay: 0.65s; }
.hero_content .hero_title_line:nth-child(3) { animation-delay: 0.85s; }
.hero_content .hero_title_line:nth-child(4) { animation-delay: 1.05s; }
.hero_content .hero_subtitle,
.hero_content > p              { animation-delay: 1.1s; }
.hero_content .hero_actions    { animation-delay: 1.3s; }

@media (prefers-reduced-motion: reduce) {
	.hero_content .hero_eyebrow,
	.hero_content .hero_title,
	.hero_content .hero_title_line,
	.hero_content .hero_actions,
	.hero_content .hero_subtitle,
	.hero_content > p {
		animation: none;
		opacity: 1;
		filter: none;
		transform: none;
	}
}

/* --- Ссылки на логотипах партнёров + grid 4-в-ряд (2026-07-14) --- */
.partners_logos {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: 28px;
	align-items: center;
	justify-items: center;
	margin: 0;
}
.partner_item {
	margin: 0;
	width: 100%;
	min-height: 140px;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: flex-start;
	gap: 12px;
	padding-top: 8px;
}
/* Логотип — серый по умолчанию, цветной на hover карточки */
.partner_logo {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 110px;
	opacity: 0.55;
	filter: grayscale(1);
	transition: opacity 0.25s ease, filter 0.25s ease, transform 0.3s ease;
}
/* Логотип подсвечивается только при наведении на сам логотип (независимо от подписи) */
.partner_logo:hover {
	opacity: 1;
	filter: grayscale(0);
}
.partner_logo a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	max-width: 100%;
	max-height: 100%;
	line-height: 0;
	text-decoration: none;
	cursor: pointer;
}
.partner_logo img,
.partner_logo a img {
	display: block;
	width: auto;
	height: 110px;
	max-width: 100%;
	object-fit: contain;
}
.partner_logo a:focus-visible {
	outline: 2px solid var(--accent, #ff0c0c);
	outline-offset: 4px;
	border-radius: 4px;
}
/* Подпись-ссылка под логотипом — отделена от логотипа чертой-разделителем */
.partner_caption {
	display: inline-block;
	position: relative;
	margin-top: 10px;
	padding-top: 14px;
	font-size: 13px;
	font-weight: 600;
	line-height: 1.3;
	text-align: center;
	color: var(--accent, #ff0c0c);
	text-decoration: none;
	border-bottom: 1px solid transparent;
	transition: color 0.2s ease, border-color 0.2s ease;
	cursor: pointer;
}
.partner_caption::before {
	content: "";
	position: absolute;
	top: 0;
	left: 50%;
	transform: translateX(-50%);
	width: 44px;
	height: 1px;
	background: var(--border, rgba(11, 19, 32, 0.16));
}
.partner_caption:hover {
	color: var(--accent_hi, #d10000);
	border-bottom-color: currentColor;
}
.partner_caption:focus-visible {
	outline: 2px solid var(--accent, #ff0c0c);
	outline-offset: 3px;
	border-radius: 3px;
}
@media (max-width: 1024px) {
	.partners_logos { grid-template-columns: repeat(3, 1fr); gap: 24px; }
}
@media (max-width: 720px) {
	.partners_logos { grid-template-columns: repeat(2, 1fr); }
	.partner_logo img, .partner_logo a img { height: 84px; }
	.partner_logo { min-height: 84px; }
}
@media (max-width: 420px) {
	.partners_logos { grid-template-columns: 1fr; }
}

/* --- Вернуть видимость фото на карточках услуг (2026-07-14) --- */
.service_card_bg {
	opacity: 1;
	filter: none;
	transform: scale(1.02);
}
.service_card::before {
	background: linear-gradient(180deg,
		rgba(255, 255, 255, 0) 0%,
		rgba(255, 255, 255, 0) 32%,
		rgba(255, 255, 255, 0.55) 58%,
		rgba(255, 255, 255, 0.95) 88%,
		#ffffff 100%);
}
.service_card:hover .service_card_bg {
	opacity: 1;
	transform: scale(1.06);
}
.service_card:hover::before {
	background: linear-gradient(180deg,
		rgba(255, 255, 255, 0) 0%,
		rgba(255, 255, 255, 0) 26%,
		rgba(255, 255, 255, 0.45) 55%,
		rgba(255, 255, 255, 0.9) 88%,
		#ffffff 100%);
}
/* Иконка и стрелка — glass-круги, чтобы читалось поверх фотки */
.service_icon {
	background: rgba(255, 255, 255, 0.82);
	border-color: rgba(255, 255, 255, 0.9);
	backdrop-filter: blur(6px);
	-webkit-backdrop-filter: blur(6px);
}
.service_card:hover .service_icon {
	background: rgba(255, 255, 255, 0.92);
	border-color: #ffffff;
}
.service_arrow_btn {
	background: rgba(255, 255, 255, 0.82);
	border-color: rgba(255, 255, 255, 0.9);
	backdrop-filter: blur(6px);
	-webkit-backdrop-filter: blur(6px);
	color: #0b1320;
}
/* Номер лежит на фото — светлый с тенью для контраста */
.service_num {
	color: rgba(255, 255, 255, 0.9);
	text-shadow: 0 1px 3px rgba(0, 0, 0, 0.35);
}

/* ==============================================================
   Видео-фон hero (YouTube IFrame, 16:9 покрытие) — 2026-07-14
   ============================================================== */
.hero_video_wrap {
	position: absolute;
	inset: 0;
	overflow: hidden;
	pointer-events: none;
	z-index: 0;
	opacity: 0;
	transition: opacity 0.6s ease;
}
.hero_video_wrap.is-ready {
	opacity: 1;
}
.hero_video_wrap iframe,
.hero_video_wrap > div {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	/* Всегда покрываем всю секцию: выбираем большее из vw/vh */
	width: 100vw;
	height: 56.25vw;         /* 100vw * 9/16 */
	min-height: 100vh;
	min-width: 177.78vh;     /* 100vh * 16/9 */
	border: 0;
	pointer-events: none;
}

/* На мобильных iframe грузится долго и играет так себе — оставляем картинку */
@media (max-width: 720px) {
	.hero_video_wrap { display: none !important; }
}
@media (prefers-reduced-motion: reduce) {
	.hero_video_wrap { display: none !important; }
}

/* --- Переключатель языков Polylang (2026-07-23) --- */
.header_lang {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	margin-bottom: 14px;
}
/* Всегда видимый переключатель в шапке (2026-07-24) */
.header_right {
	grid-column: 3;
	justify-self: end;
	display: flex;
	align-items: center;
	gap: 14px;
}
.header_lang.header_lang--bar {
	margin-bottom: 0;
}
@media (max-width: 480px) {
	.header_right { gap: 8px; }
	.header_lang.header_lang--bar { gap: 3px; }
	.header_lang.header_lang--bar .header_lang_item {
		min-width: 30px;
		padding: 4px 6px;
		font-size: 11px;
	}
}
.header_lang_item {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 34px;
	padding: 5px 9px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.5px;
	line-height: 1;
	color: rgba(255, 255, 255, 0.55);
	text-decoration: none;
	border: 1px solid rgba(255, 255, 255, 0.14);
	border-radius: 6px;
	transition: color 0.2s ease, border-color 0.2s ease, background 0.2s ease;
}
.header_lang_item:hover {
	color: #fff;
	border-color: rgba(255, 255, 255, 0.4);
}
.header_lang_item.is-active {
	color: #fff;
	background: var(--accent, #ff0c0c);
	border-color: var(--accent, #ff0c0c);
}

/* --- Плавающая кнопка WhatsApp (2026-07-29) --- */
.wa_float {
	position: fixed;
	right: 22px;
	bottom: 22px;
	z-index: 9998;
	width: 56px;
	height: 56px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	background: #25d366;
	color: #fff;
	box-shadow: 0 8px 24px -6px rgba(37, 211, 102, 0.6), 0 4px 12px rgba(0, 0, 0, 0.25);
	transition: transform 0.25s ease, box-shadow 0.25s ease;
	animation: waPulse 2.4s ease-in-out infinite;
}
.wa_float:hover {
	transform: scale(1.08);
	box-shadow: 0 12px 30px -6px rgba(37, 211, 102, 0.75), 0 6px 16px rgba(0, 0, 0, 0.3);
}
.wa_float svg { display: block; }
@keyframes waPulse {
	0%, 100% { box-shadow: 0 8px 24px -6px rgba(37, 211, 102, 0.6), 0 0 0 0 rgba(37, 211, 102, 0.45); }
	50% { box-shadow: 0 8px 24px -6px rgba(37, 211, 102, 0.6), 0 0 0 12px rgba(37, 211, 102, 0); }
}
@media (max-width: 480px) {
	.wa_float { right: 16px; bottom: 16px; width: 52px; height: 52px; }
}
@media (prefers-reduced-motion: reduce) {
	.wa_float { animation: none; }
}
