/*
Theme Name: Logist
Theme URI:
Author:
Description: Кастомная тема проекта Logist. Сгенерирована из шаблона _starter. Дизайн-система — в theme.json.
Version: 0.6.2
Requires at least: 6.6
Tested up to: 7.1
Requires PHP: 8.0
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: logist
Tags: block-styles, custom-colors, custom-logo, editor-style, full-width-template, threaded-comments, translation-ready
*/

/* Основные стили темы. Токены и типографика задаются в theme.json. */

:root {
	--lg-navy: #1b3a5c;
	--lg-navy-dark: #12293f;
	--lg-blue: #3975a8;
	--lg-paper: #eef4fa;
	--lg-surface: #f3f7fa;
	--lg-border: #d9e3ea;
	--lg-muted: #5b7082;
	--lg-wide: 76rem;
}

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

/* ---------- Шапка ---------- */

.site-header {
	border-bottom: 1px solid var(--wp--preset--color--border, #d9e3ea);
	background: var(--wp--preset--color--base, #fff);
	position: sticky;
	top: 0;
	z-index: 50;
}

.site-header__inner,
.site-footer__inner,
.site-main {
	max-width: var(--wp--style--global--wide-size, 76rem);
	margin-inline: auto;
}

.site-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 2rem;
	padding-block: 0.875rem;
}

.site-branding {
	display: flex;
	align-items: center;
	padding: 0.25rem 0.35rem;
	border-left: 3px solid #3275a7;
	border-radius: 0 0.65rem 0.25rem 0;
	background: #fff;
	box-shadow: 0 0.5rem 1.3rem rgba(20, 45, 67, 0.08);
	text-decoration: none;
}

.site-branding__logo {
	display: block;
	width: clamp(15rem, 22vw, 20rem);
	height: auto;
	max-width: 100%;
	filter: hue-rotate(326deg) saturate(0.82);
}

/* Меню по центру — как на макете. */
.site-nav {
	flex: 1;
	display: flex;
	justify-content: center;
}

.site-nav ul {
	display: flex;
	gap: 1.75rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

.site-nav a {
	color: var(--lg-navy);
	text-decoration: none;
	font-weight: 500;
}

.site-nav a:hover {
	color: var(--lg-navy-dark);
}

/* Переключатель языка RU/EN — как на макете: глобус + код + шеврон. */
.site-lang {
	display: inline-flex;
	align-items: center;
	gap: 0.375rem;
	color: var(--lg-navy);
	text-decoration: none;
	font-weight: 600;
	white-space: nowrap;
	padding: 0.375rem 0.5rem;
	border-radius: 0.375rem;
	transition: background 0.15s ease;
}

.site-lang:hover {
	background: rgba(27, 58, 92, 0.08);
}

.site-lang__code {
	line-height: 1;
}

/* Список языков (Polylang) */
.site-lang__list {
	display: flex;
	align-items: center;
	gap: 0.25rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.site-lang__list li {
	margin: 0;
}

.site-lang__list a {
	display: inline-block;
	padding: 0.125rem 0.375rem;
	border-radius: 4px;
	color: var(--lg-navy);
	text-decoration: none;
	font-weight: 600;
	line-height: 1.4;
	text-transform: uppercase;
}

.site-lang__list a:hover {
	background: rgba(27, 58, 92, 0.08);
}

.site-lang__list .current-lang > a,
.site-lang__list a[aria-current] {
	background: rgba(27, 58, 92, 0.12);
}

.site-lang__chev {
	opacity: 0.6;
}

.site-header__phone {
	font-weight: 600;
	color: var(--lg-navy);
	text-decoration: none;
	white-space: nowrap;
}

.site-header__phone:hover {
	color: var(--lg-navy-dark);
}

/* ---------- Подвал ---------- */

.site-main {
	padding-block: 0;
}

.site-footer {
	border-top: 1px solid var(--wp--preset--color--border, #d9e3ea);
	margin-top: 0;
	padding-block: 2rem;
	color: var(--wp--preset--color--muted, #5b7082);
	background: var(--wp--preset--color--base, #fff);
}

.site-footer__inner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding-inline: 1.25rem;
}

.site-footer__nav ul {
	display: flex;
	gap: 1.5rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

.site-footer a {
	color: var(--wp--preset--color--muted, #5b7082);
	text-decoration: none;
}

.site-footer a:hover {
	color: var(--lg-navy);
}

.skip-link {
	position: absolute;
	left: -9999px;
	top: 0;
	background: #fff;
	padding: 0.75rem 1rem;
	z-index: 100;
}

.skip-link:focus {
	left: 0;
}

/* ---------- Мобильная шапка ---------- */

@media ( max-width: 780px ) {
	.site-header__inner {
		flex-wrap: wrap;
		justify-content: center;
		gap: 0.75rem 1.25rem;
	}

	.site-nav {
		order: 3;
		flex-basis: 100%;
	}

	.site-nav ul {
		flex-wrap: wrap;
		justify-content: center;
		gap: 0.5rem 1.25rem;
	}
}

/* ---------- Доработка по финальному макету ---------- */

.site-header__inner,
.site-footer__inner {
	max-width: 96rem;
	padding-inline: clamp(1rem, 2vw, 2rem);
}

.site-main--front {
	max-width: none;
	margin: 0;
	padding-block: 0;
}

.dir-grid {
	min-height: calc(100svh - 6rem);
	padding: clamp(1rem, 1.5vw, 1.5rem);
	background-position: center 42%;
}

.dir-grid__cards {
	grid-template-rows: repeat(2, minmax(18rem, 1fr));
	gap: clamp(1rem, 1.8vh, 1.5rem) clamp(7rem, 17vw, 17rem);
}

.dir-card {
	min-height: clamp(18rem, calc((100svh - 9rem) / 2), 32rem);
	border: 1px solid rgba(255, 255, 255, 0.72);
	box-shadow: 0 16px 38px rgba(18, 41, 63, 0.13);
}

.dir-card--auto,
.dir-card--sea {
	border-radius: 0.75rem 2rem 2rem 0.75rem;
}

.dir-card--air,
.dir-card--rail {
	border-radius: 2rem 0.75rem 0.75rem 2rem;
}

.dir-card__scrim {
	background: linear-gradient(90deg, rgba(9, 29, 49, 0.56), transparent 78%),
		linear-gradient(0deg, rgba(9, 29, 49, 0.84), rgba(9, 29, 49, 0.05) 72%);
}

.dir-card__title {
	font-size: clamp(1.45rem, 2.3vw, 2rem);
	text-wrap: balance;
}

.dir-card__sub {
	font-size: clamp(0.95rem, 1.15vw, 1.1rem);
	line-height: 1.45;
}

.dir-card__more {
	width: 3.25rem;
	height: 3.25rem;
	border-color: rgba(255, 255, 255, 0.88);
	background: rgba(255, 255, 255, 0.08);
}

.callback-btn {
	width: clamp(10rem, 17vw, 15rem);
	background: radial-gradient(circle at 38% 28%, #275982 0%, #1b3a5c 58%, #10283f 100%);
}

.callback-btn__text strong {
	font-size: clamp(1rem, 1.25vw, 1.25rem);
}

.modal__backdrop {
	background: rgba(8, 27, 46, 0.62);
	backdrop-filter: blur(7px);
}

.modal__dialog {
	width: min(72rem, 100%);
	border: 1px solid rgba(255, 255, 255, 0.8);
	border-radius: 1.25rem;
	background: linear-gradient(135deg, #fff 0%, #f5f9fd 100%);
	box-shadow: 0 30px 90px rgba(8, 27, 46, 0.38);
	padding: clamp(1.5rem, 3.5vw, 3.25rem);
}

.modal__close {
	top: 1rem;
	right: 1rem;
	width: 2.75rem;
	height: 2.75rem;
	background: #e9f1f8;
}

.modal__grid {
	gap: clamp(1.5rem, 4vw, 3.5rem);
}

.modal__form-col .kicker {
	margin-bottom: 0.75rem;
}

.modal__form-col .section-title {
	max-width: 16ch;
	font-size: clamp(1.75rem, 3vw, 2.5rem);
}

.modal__lead {
	max-width: 48ch;
	line-height: 1.6;
}

.modal__form,
.request__form {
	gap: 0.875rem;
}

.modal__form .field--wide {
	grid-column: 1 / -1;
}

.modal__form .field input,
.modal__form .field textarea,
.request__form .field input,
.request__form .field textarea {
	min-height: 3rem;
	border-color: #c8d7e5;
	border-radius: 0.6rem;
	background: rgba(255, 255, 255, 0.88);
}

.modal__form .field input:focus-visible,
.modal__form .field textarea:focus-visible,
.request__form .field input:focus-visible,
.request__form .field textarea:focus-visible {
	outline: 3px solid rgba(56, 120, 176, 0.24);
	border-color: #3878b0;
}

.modal__form .consent,
.request__form .consent {
	font-size: 0.82rem;
	line-height: 1.5;
	color: #3d5368;
}

.modal__form .consent a,
.request__form .consent a {
	color: #174b79;
	font-weight: 650;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.15em;
}

.modal__form .consent input,
.request__form .consent input {
	flex: 0 0 auto;
	width: 1.05rem;
	height: 1.05rem;
	margin: 0.15rem 0.45rem 0 0;
	accent-color: #1b3a5c;
}

.modal__form > .btn {
	grid-column: 1 / -1;
	justify-self: start;
	min-height: 3.2rem;
	border-radius: 999px;
	padding-inline: 2rem;
	box-shadow: 0 8px 20px rgba(27, 58, 92, 0.18);
}

.modal__aside {
	align-self: stretch;
	justify-content: center;
	padding: clamp(1rem, 2.5vw, 2rem);
	border: 1px solid #dce8f2;
	border-radius: 1rem;
	background: linear-gradient(160deg, #edf5fb 0%, #e1edf7 100%);
}

.modal__map {
	border-radius: 0.75rem;
	box-shadow: 0 12px 26px rgba(27, 58, 92, 0.12);
}

.direction-text__lead {
	font-size: 1.2rem;
	line-height: 1.65;
	color: var(--lg-navy-dark);
}

.direction-text__benefits {
	padding-left: 1.25rem;
}

.direction-text__benefits li::marker {
	color: #3878b0;
}

.direction-text__cta {
	margin-top: 1rem;
	border-radius: 999px;
}

.request {
	max-width: 96rem;
	margin: 0 auto;
	padding: clamp(2.5rem, 6vw, 5rem) clamp(1rem, 2vw, 2rem);
}

@media (max-width: 900px) {
	.dir-grid__cards {
		gap: 1rem clamp(5rem, 14vw, 8rem);
	}

	.dir-card {
		min-height: clamp(16rem, 34vh, 23rem);
	}

	.modal__dialog {
		max-height: calc(100svh - 1.5rem);
		padding: 1.5rem;
	}
}

@media (max-width: 780px) {
	.site-branding__logo {
		width: clamp(12rem, 68vw, 16rem);
	}

	.dir-grid {
		min-height: 0;
		padding: 1rem;
	}

	.dir-grid__cards {
		grid-template-rows: auto;
		gap: 1rem;
	}

	.dir-card {
		min-height: clamp(15rem, 55vw, 22rem);
	}

	.dir-card__body {
		padding: 1.25rem;
	}

	.dir-card__more {
		width: 2.75rem;
		height: 2.75rem;
	}

	.callback-btn {
		margin: 1.5rem auto 0;
	}

	.modal {
		padding: 0.75rem;
	}

	.modal__dialog {
		max-height: calc(100svh - 1.5rem);
		padding: 1.5rem 1rem 1rem;
	}

	.modal__grid {
		gap: 1.25rem;
	}

	.modal__aside {
		padding: 0.75rem;
	}

	.modal__map {
		height: 11rem;
	}

	.modal__form > .btn {
		width: 100%;
		justify-self: stretch;
	}
}

@media (prefers-reduced-motion: reduce) {
	.carousel__slide,
	.callback-btn,
	.dir-card__more,
	.modal__close {
		transition-duration: 0.01ms !important;
	}
}

/* ---------- Карта (в модалке) ---------- */

.site-map {
	position: relative;
	overflow: hidden;
	height: clamp(14rem, 26vw, 20rem);
	background: var(--wp--preset--color--surface, #e6ebe3);
	border-radius: 0.5rem;
}

/*
 * iframe намеренно выше блока: у бесплатного виджета Яндекса снизу своя полоса
 * с промо и подписью, и она съедает часть высоты. Здесь она уходит за нижнюю
 * границу и обрезается родительским overflow, а карта занимает всю высоту.
 * ВАЖНО: вместе с ней обрезается и подпись «© Яндекс», которую требует
 * лицензия, — для продакшена используйте JS API Карт (по ключу) или OSM + Leaflet.
 */
.site-map iframe {
	display: block;
	width: 100%;
	height: calc(100% + 200px);
	min-height: calc(100% + 200px);
	border: 0;
}

.site-map:not(.is-loaded) iframe {
	visibility: hidden;
}

/* ---------- Ленивые фоны ---------- */

[data-bg] {
	background-color: var(--wp--preset--color--surface, #e9e9e9);
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
}

[data-bg] img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* ---------- Общие блоки ---------- */

.kicker {
	margin: 0 0 0.5rem;
	font-size: 0.8125rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--lg-navy);
	font-weight: 600;
}

.section-title {
	margin: 0 0 1.5rem;
	font-size: clamp(1.5rem, 3vw, 2.25rem);
	line-height: 1.2;
	color: var(--lg-navy-dark);
}

.btn {
	display: inline-block;
	padding: 0.875rem 1.75rem;
	border: 0;
	border-radius: 0.375rem;
	font-size: 1rem;
	font-weight: 600;
	cursor: pointer;
	text-decoration: none;
	transition: background 0.2s ease, transform 0.1s ease;
}

.btn--primary {
	background: var(--lg-navy);
	color: #fff;
}

.btn--primary:hover {
	background: var(--lg-navy-dark);
}

.btn--primary:active {
	transform: translateY(1px);
}

/* =========================================================
   Сетка направлений — главная, композиция макета 1_1.png
   ========================================================= */

/*
 * Фон секции сделан из back.png заказчика, логотип вынесен отдельно.
 * На широком экране фон кадрируется по центру, чтобы карта оставалась видимой.
 */
.dir-grid {
	position: relative;
	background-image: url("assets/img/back-no-logo.webp");
	background-size: cover;
	background-position: center 35%;
	background-repeat: no-repeat;
	background-color: var(--lg-paper);
	padding-block: clamp(1.5rem, 3vw, 2.5rem);
	/* Внутренний отступ снизу, чтобы круглая кнопка не слипалась с футером. */
	padding-inline: clamp(1rem, 3vw, 2rem);
}

/*
 * Две колонки с широким центральным каналом: сквозь него видно фон с картой.
 * Вертикальный зазор меньше горизонтального — как на макете.
 */
.dir-grid__cards {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: clamp(0.875rem, 1.6vw, 1.25rem) clamp(7rem, 15vw, 13rem);
	max-width: none;
	width: 100%;
	margin-inline: auto;
}

.dir-card {
	position: relative;
	min-height: clamp(17rem, 42vh, 28rem);
	overflow: hidden;
	display: flex;
	align-items: flex-end;
	background: var(--lg-navy-dark);
}

/*
 * Скругление со стороны центрального канала — как на макете:
 * левые карточки скруглены справа, правые — слева.
 */
.dir-card--auto,
.dir-card--sea {
	border-radius: 0.5rem 1.75rem 1.75rem 0.5rem;
}

.dir-card--air,
.dir-card--rail {
	border-radius: 1.75rem 0.5rem 0.5rem 1.75rem;
}

/*
 * Тёмная подложка под текстом: градиент от непрозрачного тёмно-синего снизу
 * к прозрачному к середине. Гарантирует, что белый текст читается на любом
 * фото — и на тёмном, и на светлом (проблема «сливается с чёрным/белым»).
 */
.dir-card__scrim {
	position: absolute;
	inset: 0;
	z-index: 1;
	pointer-events: none;
	background: linear-gradient(
		to top,
		rgba(18, 41, 63, 0.92) 0%,
		rgba(18, 41, 63, 0.62) 26%,
		rgba(18, 41, 63, 0.2) 48%,
		rgba(18, 41, 63, 0) 66%
	);
}

.dir-card__body {
	position: relative;
	z-index: 2;
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 1rem;
	width: 100%;
	padding: clamp(1.25rem, 3vw, 2.25rem);
	color: #fff;
}

.dir-card__text {
	min-width: 0;
}

.dir-card__title {
	margin: 0 0 0.375rem;
	font-size: clamp(1.25rem, 2.4vw, 1.75rem);
	line-height: 1.15;
	color: #fff;
	text-shadow: 0 1px 12px rgba(18, 41, 63, 0.45);
}

.dir-card__sub {
	margin: 0;
	font-size: 0.9375rem;
	line-height: 1.4;
	opacity: 0.95;
	max-width: 30ch;
	color: #fff;
	text-shadow: 0 1px 10px rgba(18, 41, 63, 0.5);
}

/* Круглая кнопка-стрелка справа — как на макете. */
.dir-card__more {
	flex-shrink: 0;
	display: grid;
	place-items: center;
	width: 3rem;
	height: 3rem;
	border-radius: 50%;
	border: 1.5px solid rgba(255, 255, 255, 0.55);
	background: rgba(255, 255, 255, 0.12);
	backdrop-filter: blur(4px);
	color: #fff;
	text-decoration: none;
	transition: background 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
}

.dir-card__more:hover {
	background: var(--lg-navy);
	border-color: var(--lg-navy);
	transform: translateX(3px);
}

.dir-card__arrow {
	display: grid;
	place-items: center;
	line-height: 1;
}

/* ---------- Карусель (плавный crossfade) ---------- */

.carousel {
	position: absolute;
	inset: 0;
}

.carousel__slide {
	position: absolute;
	inset: 0;
	opacity: 0;
	z-index: 1;
	transition: opacity 2.2s ease;
}

/* Текущий слайд — под входящим, плавно уходит. */
.carousel__slide.is-active {
	opacity: 1;
	z-index: 2;
}

.carousel__slide.is-next {
	z-index: 3;
}

.carousel__slide.is-fading {
	opacity: 0;
	z-index: 1;
}

.carousel__slide img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* =========================================================
   Центральная круглая кнопка «Оставить заявку»
   ========================================================= */

.callback-btn {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	z-index: 10;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	width: clamp(9.5rem, 16vw, 13rem);
	aspect-ratio: 1;
	border-radius: 50%;
	border: 0;
	padding: 1.5rem 1rem;
	background: radial-gradient(circle at 35% 30%, #24507a 0%, var(--lg-navy) 55%, var(--lg-navy-dark) 100%);
	color: #fff;
	text-align: center;
	cursor: pointer;
	box-shadow:
		0 0 0 8px rgba(255, 255, 255, 0.35),
		0 0 0 9px rgba(27, 58, 92, 0.12),
		0 14px 34px rgba(18, 41, 63, 0.35);
	font: inherit;
	transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.callback-btn:hover {
	transform: translate(-50%, -50%) scale(1.04);
	box-shadow:
		0 0 0 10px rgba(255, 255, 255, 0.45),
		0 0 0 11px rgba(27, 58, 92, 0.16),
		0 16px 40px rgba(18, 41, 63, 0.42);
}

.callback-btn:focus-visible {
	outline: 3px solid #fff;
	outline-offset: 4px;
}

/* Тонкое светлое кольцо вокруг круга — как на макете. */
.callback-btn__ring {
	position: absolute;
	inset: -14px;
	border-radius: 50%;
	border: 1.5px solid rgba(255, 255, 255, 0.5);
	pointer-events: none;
}

.callback-btn__icon {
	display: grid;
	place-items: center;
	color: #fff;
}

.callback-btn__text {
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
	font-size: 0.8125rem;
	line-height: 1.3;
	color: #fff;
}

.callback-btn__text strong {
	font-size: 1.0625rem;
	font-weight: 700;
}

.callback-btn__text span {
	opacity: 0.85;
	max-width: 12ch;
}

/* =========================================================
   Модальное окно заявки
   ========================================================= */

.modal {
	position: fixed;
	inset: 0;
	z-index: 200;
	display: none;
	align-items: center;
	justify-content: center;
	padding: 1.25rem;
}

.modal.is-open {
	display: flex;
}

/* Блокировка прокрутки страницы под модалкой. */
html.modal-locked,
html.modal-locked body {
	overflow: hidden;
}

.modal__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(18, 41, 63, 0.55);
	backdrop-filter: blur(3px);
}

.modal__dialog {
	position: relative;
	z-index: 1;
	width: min(64rem, 100%);
	max-height: calc(100vh - 2.5rem);
	overflow-y: auto;
	background: var(--wp--preset--color--base, #fff);
	border-radius: 0.75rem;
	box-shadow: 0 24px 64px rgba(18, 41, 63, 0.35);
	padding: clamp(1.25rem, 3vw, 2.5rem);
}

.modal__close {
	position: absolute;
	top: 0.875rem;
	right: 0.875rem;
	z-index: 2;
	display: grid;
	place-items: center;
	width: 2.25rem;
	height: 2.25rem;
	border: 0;
	border-radius: 50%;
	background: rgba(27, 58, 92, 0.08);
	color: var(--lg-navy);
	cursor: pointer;
	transition: background 0.15s ease;
}

.modal__close:hover {
	background: rgba(27, 58, 92, 0.16);
}

.modal__grid {
	display: grid;
	grid-template-columns: 1.1fr 0.9fr;
	gap: clamp(1.5rem, 4vw, 3rem);
	align-items: start;
}

.modal__lead {
	margin: 0 0 1.5rem;
	color: var(--wp--preset--color--muted, #5b7082);
}

.modal__form {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 1rem;
}

.modal__aside {
	display: flex;
	flex-direction: column;
	gap: 1rem;
}

.modal__map {
	height: clamp(12rem, 22vw, 16rem);
}

.modal__contacts {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	font-style: normal;
	font-size: 1.0625rem;
	font-weight: 600;
}

.modal__contacts a {
	color: var(--lg-navy);
	text-decoration: none;
}

.modal__contacts a:hover {
	color: var(--lg-navy-dark);
}

/* ---------- Поля формы (общие для модалки и страниц) ---------- */

.field {
	display: flex;
	flex-direction: column;
	gap: 0.375rem;
}

.field--wide {
	grid-column: 1 / -1;
}

.field__label {
	font-size: 0.875rem;
	font-weight: 500;
}

.field input,
.field textarea {
	padding: 0.75rem 0.875rem;
	border: 1px solid var(--wp--preset--color--border, #d9e3ea);
	border-radius: 0.375rem;
	font: inherit;
	background: var(--wp--preset--color--base, #fff);
	transition: border-color 0.15s ease;
}

.field input:focus,
.field textarea:focus {
	outline: none;
	border-color: var(--lg-navy);
}

.consent {
	grid-column: 1 / -1;
	display: flex;
	gap: 0.625rem;
	align-items: flex-start;
	font-size: 0.875rem;
	line-height: 1.45;
	color: var(--wp--preset--color--muted, #5b7082);
}

.consent input {
	margin-top: 0.2rem;
}

.consent a {
	color: var(--lg-navy);
}

.modal__submit {
	grid-column: 1 / -1;
	justify-self: start;
}

.notice {
	padding: 0.875rem 1rem;
	border-radius: 0.375rem;
	margin-bottom: 1.25rem;
	font-size: 0.9375rem;
}

.notice--ok {
	background: #e6f4ec;
	color: #14532d;
	border: 1px solid #b7dfc6;
}

.notice--err {
	background: #fdecec;
	color: #7f1d1d;
	border: 1px solid #f3b8b8;
}

/* ---------- Страница направления ---------- */

.direction-head {
	margin-bottom: 2rem;
}

.direction-head__title {
	font-size: clamp(1.75rem, 4vw, 2.75rem);
	line-height: 1.1;
	margin: 0 0 0.75rem;
}

.direction-head__sub {
	margin: 0;
	color: var(--wp--preset--color--muted, #5b7082);
	font-size: 1.125rem;
}

.direction-gallery {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 0.5rem;
	margin: 2rem 0;
}

.direction-gallery .carousel {
	position: relative;
	aspect-ratio: 4 / 3;
	border-radius: 0.5rem;
	overflow: hidden;
}

.direction-text {
	max-width: var(--wp--style--global--content-size, 46rem);
}

.direction-text > * + * {
	margin-top: 1rem;
}

/* ---------- Адаптив ---------- */

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

	.direction-gallery {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media ( max-width: 780px ) {
	/* На узком экране сетка в один столбец, канал исчезает. */
	.dir-grid__cards {
		grid-template-columns: 1fr;
		gap: 1rem;
	}

	.dir-card--auto,
	.dir-card--air,
	.dir-card--sea,
	.dir-card--rail {
		border-radius: 0.75rem;
	}

	.dir-card {
		min-height: clamp(14rem, 38vh, 20rem);
	}

	/* Кнопка уходит в обычный поток — pill под сеткой. */
	.callback-btn {
		position: static;
		transform: none;
		margin: 1.75rem auto 0;
		flex-direction: row;
		width: auto;
		aspect-ratio: auto;
		border-radius: 999px;
		padding: 1rem 1.75rem;
	}

	.callback-btn:hover {
		transform: scale(1.02);
	}

	.callback-btn__ring {
		display: none;
	}

	.callback-btn__text span {
		max-width: none;
	}

	.modal__form {
		grid-template-columns: 1fr;
	}

	.direction-gallery {
		grid-template-columns: 1fr;
	}
}

@media ( prefers-reduced-motion: reduce ) {
	.carousel__slide {
		transition: none;
	}

	.callback-btn,
	.dir-card__more {
		transition-duration: 0.01ms;
	}
}

/* ---------- Дополнительные страницы меню ---------- */

.info-page {
	max-width: none;
	padding: clamp(1.25rem, 4vw, 3.5rem) clamp(1rem, 3vw, 2.5rem) clamp(3rem, 7vw, 6rem);
}

.info-hero,
.info-services,
.info-sections,
.info-contact,
.info-bottom-cta {
	width: min(100%, 76rem);
	margin-inline: auto;
}

.info-hero {
	display: grid;
	grid-template-columns: minmax(0, 1.1fr) minmax(19rem, 0.9fr);
	align-items: stretch;
	gap: clamp(1.5rem, 4vw, 4rem);
	padding: clamp(1.25rem, 4vw, 3.5rem);
	border: 1px solid #dce7f0;
	border-radius: 1.5rem;
	background: linear-gradient(130deg, #fff 45%, #f1f7fc 100%);
	box-shadow: 0 1.25rem 3.5rem rgba(27, 58, 92, 0.08);
}

.info-hero__copy {
	align-self: center;
}

.info-hero__kicker {
	margin: 0 0 0.9rem;
	color: #3975a8;
	font-size: 0.82rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.info-hero h1 {
	max-width: 16ch;
	margin: 0;
	color: var(--lg-navy-dark);
	font-size: clamp(2rem, 4vw, 3.6rem);
	line-height: 1.07;
	letter-spacing: -0.035em;
}

.info-hero__lead {
	max-width: 58ch;
	margin: 1.25rem 0 0;
	color: #526a80;
	font-size: clamp(1rem, 1.3vw, 1.15rem);
	line-height: 1.75;
}

.info-hero__cta {
	margin-top: 1.75rem;
	border-radius: 999px;
}

.info-hero__image {
	position: relative;
	min-height: 20rem;
	margin: 0;
	overflow: hidden;
	border-radius: 1.1rem;
	background: #e5edf4;
}

.info-hero__image img,
.info-service img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.info-hero__image img {
	position: absolute;
	inset: 0;
}

.info-services {
	margin-top: clamp(3rem, 7vw, 5.5rem);
}

.info-services h2,
.info-section h2,
.info-bottom-cta h2 {
	color: var(--lg-navy-dark);
	font-size: clamp(1.5rem, 2.6vw, 2.25rem);
	line-height: 1.2;
}

.info-services__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1rem;
}

.info-service {
	position: relative;
	display: grid;
	grid-template-columns: minmax(6rem, 0.36fr) 1fr auto;
	min-height: 8.5rem;
	align-items: center;
	gap: 1rem;
	padding: 0.7rem;
	border: 1px solid #dce7f0;
	border-radius: 1rem;
	background: #fff;
	color: inherit;
	text-decoration: none;
	transition: transform 180ms ease, box-shadow 180ms ease, border-color 180ms ease;
}

.info-service:hover {
	transform: translateY(-2px);
	border-color: #b8d0e4;
	box-shadow: 0 0.8rem 1.8rem rgba(27, 58, 92, 0.1);
}

.info-service img {
	min-height: 6.9rem;
	border-radius: 0.65rem;
}

.info-service__copy,
.info-service__copy span {
	display: block;
}

.info-service__copy strong {
	color: var(--lg-navy-dark);
	font-size: 1.05rem;
}

.info-service__copy span {
	margin-top: 0.4rem;
	color: #64798c;
	font-size: 0.9rem;
	line-height: 1.45;
}

.info-service__arrow {
	align-self: start;
	padding: 0.45rem;
	color: #3975a8;
	font-size: 1.2rem;
}

.info-sections {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1rem;
	margin-top: clamp(2.5rem, 6vw, 4.5rem);
}

.info-section {
	padding: clamp(1.15rem, 2.3vw, 1.75rem);
	border: 1px solid #e0e9f1;
	border-radius: 1rem;
	background: #fff;
}

.info-section h2 {
	margin: 0 0 0.8rem;
	font-size: 1.2rem;
}

.info-section p,
.info-bottom-cta p {
	margin: 0;
	color: #5c7082;
	line-height: 1.7;
}

.info-contact {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem 2rem;
	margin-top: 2rem;
	padding: 1.25rem 1.5rem;
	border-radius: 1rem;
	background: #eef5fa;
}

.info-contact a {
	color: var(--lg-navy-dark);
	font-size: 1.1rem;
	font-weight: 700;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.2em;
}

.info-bottom-cta {
	margin-top: clamp(2.5rem, 6vw, 4.5rem);
	padding: clamp(1.5rem, 4vw, 3rem);
	border-radius: 1.25rem;
	background: #eaf3fa;
	text-align: center;
}

.info-bottom-cta h2 {
	margin: 0 0 0.75rem;
}

.info-bottom-cta p {
	max-width: 55ch;
	margin-inline: auto;
}

.info-bottom-cta .btn {
	margin-top: 1.25rem;
	border-radius: 999px;
}

@media (max-width: 900px) {
	.info-hero {
		grid-template-columns: 1fr 0.85fr;
		gap: 1.5rem;
	}

	.info-services__grid,
	.info-sections {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 640px) {
	.info-hero,
	.info-services__grid,
	.info-sections {
		grid-template-columns: 1fr;
	}

	.info-hero__image {
		min-height: 14rem;
	}

	.info-service {
		grid-template-columns: 6rem 1fr auto;
	}
}

/* ---------- Внутренние страницы: единая навигация и ритм ---------- */

.interior-page {
	color: #24384b;
	background:
		radial-gradient(ellipse at 92% 6%, rgba(63, 127, 177, 0.07), transparent 27rem),
		#fff;
}

.breadcrumbs {
	width: min(100%, 76rem);
	margin: 0 auto 1.25rem;
	padding: 0.15rem 0 0.2rem 0.8rem;
	border-left: 2px solid #6da3cc;
	color: #637a8d;
	font-size: 0.82rem;
	line-height: 1.5;
}

.breadcrumbs ol {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.35rem 0.65rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.breadcrumbs__item {
	display: inline-flex;
	align-items: center;
	gap: 0.65rem;
}

.breadcrumbs__item + .breadcrumbs__item::before {
	content: "/";
	color: #9aabba;
}

.breadcrumbs a {
	color: #486981;
	text-decoration: none;
}

.breadcrumbs a:hover {
	color: #174f7e;
	text-decoration: underline;
	text-underline-offset: 0.18em;
}

.breadcrumbs [aria-current="page"] {
	color: #203b52;
	font-weight: 650;
}

.interior-kicker {
	margin: 0 0 0.75rem;
	color: #3376a7;
	font-size: 0.78rem;
	font-weight: 750;
	letter-spacing: 0.11em;
	line-height: 1.4;
	text-transform: uppercase;
}

.info-page {
	padding-top: clamp(1.5rem, 3.5vw, 2.75rem);
}

.info-page > .breadcrumbs {
	margin-bottom: 1.5rem;
}

.info-hero {
	grid-template-columns: minmax(0, 0.92fr) minmax(22rem, 1.08fr);
	gap: clamp(2rem, 5vw, 5rem);
	padding: clamp(1.75rem, 5.2vw, 4.5rem);
	border: 0;
	border-left: 4px solid #28638f;
	border-radius: 0.2rem 1.25rem 1.25rem 0.2rem;
	background: linear-gradient(112deg, #f2f7fb 0%, #edf4f8 56%, #e5eef5 100%);
	box-shadow: 0 1rem 2.5rem rgba(25, 52, 75, 0.08);
}

.info-hero--text-only {
	grid-template-columns: minmax(0, 1fr);
}

.info-hero--text-only .info-hero__copy {
	max-width: 58rem;
}

.info-hero h1 {
	max-width: 14ch;
	color: #142d43;
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(2.35rem, 4.4vw, 4.15rem);
	font-weight: 600;
	line-height: 1.04;
	letter-spacing: -0.035em;
}

.info-hero__kicker {
	margin-bottom: 1.2rem;
	color: #23618f;
	font-size: 0.75rem;
	letter-spacing: 0.14em;
}

.info-hero__lead {
	margin-top: 1.35rem;
	color: #40596e;
	font-size: clamp(1.03rem, 1.3vw, 1.18rem);
	line-height: 1.7;
}

.info-hero__image {
	position: relative;
	min-height: 24rem;
	aspect-ratio: 1.34;
	border: 0.45rem solid rgba(255, 255, 255, 0.82);
	border-radius: 0.25rem 1rem 0.25rem 1rem;
	box-shadow: 0 1rem 2.25rem rgba(17, 42, 63, 0.15);
}

.info-hero__image img {
	position: absolute;
	inset: 0;
}

.info-services {
	margin-top: clamp(3rem, 6vw, 5rem);
}

.info-services h2 {
	margin: 0 0 1.25rem;
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(1.75rem, 2.8vw, 2.5rem);
}

.info-service {
	grid-template-columns: minmax(7.5rem, 0.4fr) minmax(0, 1fr) auto;
	min-height: 9rem;
	padding: 0.65rem 1rem 0.65rem 0.65rem;
	border: 0;
	border-top: 1px solid #d8e2e9;
	border-radius: 0;
	background: transparent;
	transition: background-color 180ms ease;
}

.info-service:hover {
	transform: none;
	border-color: #c2d3e0;
	background: #f3f7fa;
	box-shadow: none;
}

.info-service img {
	min-height: 7.5rem;
	border-radius: 0.2rem 0.7rem 0.2rem 0.7rem;
}

.info-service__copy strong {
	font-family: Georgia, "Times New Roman", serif;
	font-size: 1.2rem;
}

.info-service__copy span {
	color: #586f82;
	font-size: 0.93rem;
}

.info-service__arrow {
	align-self: center;
	font-size: 1.35rem;
}

.info-sections {
	grid-template-columns: minmax(0, 1fr);
	gap: 0;
	margin-top: clamp(2.5rem, 6vw, 4.5rem);
	border-top: 1px solid #d9e3ea;
}

.info-section {
	display: grid;
	grid-template-columns: minmax(13rem, 0.72fr) minmax(0, 1.28fr);
	align-items: start;
	gap: clamp(1.5rem, 5vw, 5rem);
	padding: clamp(1.5rem, 3.5vw, 2.5rem) 0;
	border: 0;
	border-bottom: 1px solid #d9e3ea;
	border-radius: 0;
	background: transparent;
}

.info-section h2 {
	max-width: 19ch;
	margin: 0;
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(1.35rem, 2vw, 1.7rem);
}

.info-section p {
	max-width: 68ch;
	color: #465f73;
	font-size: 1.02rem;
	line-height: 1.8;
}

.info-contact {
	gap: 0.75rem 2.5rem;
	margin-top: 2.5rem;
	padding: 1.1rem 0;
	border-block: 1px solid #d3e0e9;
	border-radius: 0;
	background: transparent;
}

.info-contact a {
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(1.1rem, 1.5vw, 1.35rem);
}

.info-bottom-cta {
	position: relative;
	margin-top: clamp(3rem, 6vw, 5rem);
	padding: clamp(1.75rem, 4vw, 3.25rem);
	border-radius: 0.2rem 1rem 0.2rem 1rem;
	background: #183a56;
	color: #fff;
	text-align: left;
}

.info-bottom-cta h2 {
	margin: 0 0 0.65rem;
	color: #fff;
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(1.6rem, 2.7vw, 2.25rem);
}

.info-bottom-cta p {
	max-width: 60ch;
	margin: 0;
	color: #d7e4ed;
}

.info-bottom-cta .btn {
	margin-top: 1.4rem;
	border: 1px solid rgba(255, 255, 255, 0.5);
	border-radius: 999px;
	background: #fff;
	color: #173a56;
}

.info-bottom-cta .btn:hover {
	background: #e4eef5;
}

/* Направления — тот же маршрутный ритм, фото остаются плавной каруселью. */
.direction-page {
	max-width: none;
	padding: clamp(1.5rem, 3.5vw, 2.75rem) clamp(1rem, 3vw, 2.5rem) clamp(3rem, 7vw, 6rem);
}

.direction-page__inner {
	width: min(100%, 76rem);
	margin-inline: auto;
}

.direction-hero {
	display: grid;
	grid-template-columns: minmax(0, 0.8fr) minmax(24rem, 1.2fr);
	align-items: center;
	gap: clamp(2rem, 5vw, 5rem);
	padding: clamp(1.5rem, 4.5vw, 3.75rem);
	border-left: 4px solid #28638f;
	border-radius: 0.2rem 1.1rem 0.2rem 0.2rem;
	background: linear-gradient(112deg, #f2f7fb 0%, #eaf2f8 100%);
}

.direction-head__title {
	max-width: 15ch;
	margin: 0;
	color: #142d43;
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(2.35rem, 4.25vw, 4rem);
	font-weight: 600;
	line-height: 1.04;
	letter-spacing: -0.035em;
}

.direction-head__sub {
	max-width: 36ch;
	margin: 1.15rem 0 0;
	color: #506b80;
	font-size: 1.1rem;
	line-height: 1.65;
}

.direction-gallery {
	position: relative;
	display: block;
	width: 100%;
	min-width: 0;
	aspect-ratio: 1.42;
	margin: 0;
	overflow: hidden;
	border: 0.45rem solid rgba(255, 255, 255, 0.85);
	border-radius: 0.2rem 1rem 0.2rem 1rem;
	background: #dce7ef;
	box-shadow: 0 1rem 2.2rem rgba(17, 42, 63, 0.15);
}

.direction-gallery .carousel {
	position: absolute;
	inset: 0;
	aspect-ratio: auto;
	border-radius: 0;
}

.direction-detail {
	display: grid;
	grid-template-columns: minmax(13rem, 0.72fr) minmax(0, 1.28fr);
	gap: clamp(1.5rem, 5vw, 5rem);
	margin-top: clamp(2.75rem, 5.5vw, 4.75rem);
	padding-block: clamp(1.5rem, 3.5vw, 2.5rem);
	border-block: 1px solid #d9e3ea;
}

.direction-detail__heading h2 {
	max-width: 18ch;
	margin: 0;
	color: #17334b;
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(1.5rem, 2.5vw, 2.1rem);
	line-height: 1.15;
}

.direction-detail__body {
	max-width: 68ch;
}

.direction-text__lead {
	margin: 0;
	color: #40596e;
	font-size: 1.12rem;
	line-height: 1.75;
}

.direction-text__benefits {
	display: grid;
	gap: 0.75rem;
	margin: 1.4rem 0;
	padding: 0;
	list-style: none;
}

.direction-text__benefits li {
	position: relative;
	padding-left: 1.5rem;
	color: #344e63;
	line-height: 1.6;
}

.direction-text__benefits li::before {
	position: absolute;
	left: 0;
	color: #3275a7;
	content: "↗";
	font-weight: 700;
}

.direction-detail__body > p:not(.direction-text__lead) {
	color: #586f82;
	line-height: 1.75;
}

.direction-copy {
	width: min(100%, 68ch);
	margin: clamp(2rem, 5vw, 4rem) auto;
	color: #40596e;
	font-size: 1.05rem;
	line-height: 1.8;
}

.direction-copy h2,
.generic-page .entry-content h2 {
	margin-top: 2.3rem;
	color: #17334b;
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(1.45rem, 2.4vw, 1.9rem);
}

.direction-text__cta {
	margin-top: 1.45rem;
	border-radius: 999px;
}

.related-directions {
	margin-top: clamp(2.75rem, 5.5vw, 4.75rem);
}

.related-directions__list {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	border-top: 1px solid #d9e3ea;
}

.related-directions__list a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	min-height: 4.5rem;
	padding: 0.8rem 1rem 0.8rem 0;
	border-bottom: 1px solid #d9e3ea;
	color: #254760;
	font-weight: 650;
	text-decoration: none;
}

.related-directions__list a + a {
	padding-left: 1rem;
	border-left: 1px solid #d9e3ea;
}

.related-directions__list a:hover {
	color: #1b6b9f;
}

.generic-page {
	width: min(calc(100% - 2 * clamp(1rem, 3vw, 2.5rem)), var(--lg-wide));
	min-height: 55vh;
	padding: clamp(1.5rem, 3.5vw, 2.75rem) 0 clamp(3rem, 7vw, 6rem);
}

.generic-page article {
	max-width: 68ch;
	margin-inline: auto;
	padding: clamp(1.5rem, 4vw, 3rem);
	border-left: 3px solid #6da3cc;
	background: #f3f7fa;
}

.generic-page .entry-title {
	margin: 0 0 1.75rem;
	color: #142d43;
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(2rem, 4vw, 3.25rem);
	line-height: 1.1;
}

.generic-page .entry-content {
	color: #40596e;
	font-size: 1rem;
	line-height: 1.8;
}

.generic-page .entry-content h2 {
	margin-block: 2rem 0.75rem;
}

.generic-page .breadcrumbs {
	margin-bottom: 1.2rem;
}

.interior-page :focus-visible {
	outline: 3px solid #4f93c4;
	outline-offset: 3px;
}

@media (max-width: 900px) {
	.info-hero,
	.direction-hero {
		grid-template-columns: minmax(0, 1fr) minmax(0, 0.9fr);
		gap: 1.75rem;
	}

	.info-hero__image {
		min-height: 19rem;
	}
}

@media (max-width: 680px) {
	.info-hero,
	.direction-hero {
		grid-template-columns: minmax(0, 1fr);
		gap: 1.5rem;
		padding: 1.5rem;
	}

	.info-hero h1,
	.direction-head__title {
		max-width: 18ch;
		font-size: clamp(2rem, 10vw, 3rem);
	}

	.info-hero__image,
	.direction-gallery {
		min-height: 0;
		aspect-ratio: 1.35;
	}

	.info-section,
	.direction-detail {
		grid-template-columns: minmax(0, 1fr);
		gap: 0.9rem;
	}

	.info-service {
		grid-template-columns: 6rem minmax(0, 1fr) auto;
		gap: 0.8rem;
		padding-right: 0.35rem;
	}

	.info-service img {
		min-height: 5.6rem;
	}

	.related-directions__list {
		grid-template-columns: minmax(0, 1fr);
	}

	.related-directions__list a + a {
		padding-left: 0;
		border-left: 0;
	}

	.generic-page article {
		padding: 1.25rem;
	}
}

@media (prefers-reduced-motion: reduce) {
	.info-service,
	.related-directions__list a {
		transition-duration: 0.01ms;
	}
}

/* ---------- Главные новости: редакционная лента ---------- */

.news-strip {
	position: relative;
	padding: clamp(3.5rem, 7vw, 6.5rem) clamp(1rem, 3vw, 2.5rem);
	background:
		radial-gradient(ellipse at 2% 95%, rgba(62, 115, 150, 0.1), transparent 30rem),
		#edf3f6;
	overflow: hidden;
}

.news-strip::before {
	position: absolute;
	top: -8rem;
	right: -6rem;
	width: 26rem;
	 aspect-ratio: 1;
	border: 1px solid rgba(47, 101, 138, 0.09);
	border-radius: 50%;
	box-shadow: 0 0 0 2rem rgba(47, 101, 138, 0.025), 0 0 0 4rem rgba(47, 101, 138, 0.02);
	content: "";
	pointer-events: none;
}

.news-strip__inner {
	position: relative;
	width: min(100%, 76rem);
	margin-inline: auto;
}

.news-strip__heading-row {
	display: flex;
	align-items: end;
	justify-content: space-between;
	gap: 1.5rem;
	margin-bottom: clamp(1.5rem, 3vw, 2.5rem);
	padding-bottom: 1.1rem;
	border-bottom: 1px solid #cad8e1;
}

.news-strip__eyebrow {
	margin: 0 0 0.45rem;
	color: #3275a7;
	font-size: 0.72rem;
	font-weight: 750;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.news-strip__heading {
	margin: 0;
	color: #142d43;
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(2rem, 4vw, 3.3rem);
	font-weight: 600;
	line-height: 1.05;
	letter-spacing: -0.035em;
}

.news-strip__signature {
	padding-bottom: 0.3rem;
	color: #657d8f;
	font-size: 0.75rem;
	font-weight: 750;
	letter-spacing: 0.14em;
}

.news-strip__signature span {
	margin-inline: 0.35rem;
	color: #3275a7;
}

.news-strip__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 1.1rem;
	width: 100%;
	max-width: 76rem;
	margin-inline: auto;
}

.news-card {
	position: relative;
	display: flex;
	min-height: 13.5rem;
	flex-direction: row;
	align-items: stretch;
	overflow: hidden;
	border: 1px solid rgba(255, 255, 255, 0.8);
	border-radius: 0.2rem 1rem 0.2rem 0.2rem;
	background: #142e45;
	box-shadow: 0 1rem 2.4rem rgba(21, 48, 70, 0.12);
	color: #fff;
	transition: transform 220ms ease, box-shadow 220ms ease;
}

.news-card:hover {
	transform: translateY(-3px);
	box-shadow: 0 1.3rem 2.8rem rgba(21, 48, 70, 0.17);
}

.news-card--featured {
	grid-row: auto;
	min-height: 17rem;
}

.news-card__media {
	position: relative;
	flex: 0 0 37%;
	max-width: 37%;
	overflow: hidden;
}

.news-card__media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 550ms cubic-bezier(0.2, 0.65, 0.25, 1);
}

.news-card:hover .news-card__media img {
	transform: scale(1.035);
}

.news-card__scrim {
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, rgba(9, 29, 49, 0.03) 22%, rgba(9, 29, 49, 0.88) 100%);
}

.news-card__body {
	position: relative;
	display: flex;
	min-width: 0;
	flex: 1 1 auto;
	flex-direction: column;
	justify-content: center;
	gap: 0.75rem;
	padding: clamp(1.15rem, 2.3vw, 1.8rem);
	color: #fff;
}

.news-card__kicker {
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem 0.8rem;
	margin: 0;
	color: #bdccd6;
	font-size: 0.68rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	line-height: 1.4;
	text-transform: uppercase;
}

.news-card__title {
	margin: 0;
	color: #fff;
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(1.15rem, 1.45vw, 1.45rem);
	font-weight: 600;
	line-height: 1.2;
	text-wrap: balance;
}

.news-card__title a {
	color: inherit;
	text-decoration: none;
}

.news-card__title a:hover,
.news-card__title a:focus-visible {
	color: #d9ebf5;
	text-decoration: underline;
	text-underline-offset: 0.17em;
}

.news-card__sub {
	margin: 0;
	color: #e1eaf0;
	font-size: 0.9rem;
	line-height: 1.55;
}

.news-card__more {
	display: inline-flex;
	width: 2.65rem;
	height: 2.65rem;
	align-items: center;
	justify-content: center;
	margin-top: 0.25rem;
	border: 1px solid rgba(255, 255, 255, 0.72);
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.06);
	color: #fff;
	font-size: 1.2rem;
	text-decoration: none;
	transition: background-color 180ms ease, transform 180ms ease;
}

.news-card__more:hover,
.news-card__more:focus-visible {
	transform: translateX(2px);
	background: rgba(255, 255, 255, 0.18);
}

.news-card--featured .news-card__media {
	position: relative;
	flex: 0 0 35%;
	max-width: 35%;
}

.news-card--featured .news-card__media img {
	object-position: center;
}

.news-card--featured .news-card__scrim {
	background: linear-gradient(90deg, rgba(9, 29, 49, 0.02), rgba(9, 29, 49, 0.25));
}

.news-card--featured .news-card__body {
	justify-content: center;
	padding: clamp(1.15rem, 2.3vw, 1.8rem);
}

.news-card--featured .news-card__title {
	max-width: 32ch;
	font-size: clamp(1.35rem, 2.2vw, 2rem);
	line-height: 1.15;
}

.news-card--featured .news-card__sub {
	max-width: 68ch;
	font-size: 0.95rem;
}

.news-card--no-thumb {
	background:
		radial-gradient(circle at 88% 18%, rgba(103, 169, 204, 0.23), transparent 9rem),
		linear-gradient(135deg, #1c4563, #0c2237 78%);
}

.news-card--no-thumb::before,
.news-card--no-thumb::after {
	position: absolute;
	right: -2rem;
	bottom: -6rem;
	width: 17rem;
	 aspect-ratio: 1;
	border: 1px solid rgba(199, 225, 239, 0.16);
	border-radius: 50%;
	content: "";
	pointer-events: none;
}

.news-card--no-thumb::after {
	right: 1rem;
	bottom: -3rem;
	width: 11rem;
}

.news-card--no-thumb .news-card__media {
	display: none;
}

@media (max-width: 58rem) {
	.news-strip__grid {
		grid-template-columns: minmax(0, 1fr);
		grid-template-rows: auto;
	}

	.news-card--featured {
		grid-row: auto;
		min-height: 25rem;
	}
}

@media (max-width: 38rem) {
	.news-strip__heading-row {
		align-items: start;
	}

	.news-strip__signature {
		padding-top: 0.25rem;
		font-size: 0.6rem;
	}

	.news-card:not(.news-card--featured) {
		min-height: auto;
		flex-direction: column;
	}

	.news-card:not(.news-card--featured) .news-card__media {
		flex: 0 0 auto;
		width: 100%;
		max-width: none;
		height: 11rem;
	}

	.news-card:not(.news-card--featured) .news-card__scrim {
		background: linear-gradient(180deg, rgba(9, 29, 49, 0.02), rgba(9, 29, 49, 0.38));
	}

	.news-card:not(.news-card--featured) .news-card__body {
		padding: 1.1rem 1.2rem 1.25rem;
	}

	.news-card--no-thumb:not(.news-card--featured) {
		min-height: 14rem;
	}
	.news-card--no-thumb:not(.news-card--featured) .news-card__body {
		min-height: 14rem;
	}

	.news-card--featured {
		min-height: 25rem;
	}
}

@media (max-width: 80rem) and (min-width: 48.81rem) {
	.site-header__inner {
		gap: 1rem;
	}

	.site-branding__logo {
		width: clamp(12rem, 18vw, 15rem);
	}

	.site-nav ul {
		flex-wrap: nowrap;
		gap: clamp(0.55rem, 1.05vw, 0.9rem);
	}

	.site-nav a {
		font-size: 0.9rem;
		white-space: nowrap;
	}

	.site-lang {
		gap: 0.1rem;
		padding-inline: 0.2rem;
	}

	.site-lang__list {
		gap: 0;
	}
}

@media (prefers-reduced-motion: reduce) {
	.news-card,
	.news-card__media img,
	.news-card__more {
		transition-duration: 0.01ms;
	}
}

/* ---------- Полноширинная карта перед футером ---------- */

.site-map-section {
	width: 100%;
	padding: clamp(2.5rem, 5vw, 4.5rem) clamp(1rem, 3vw, 2.5rem) 0;
	background: #edf3f6;
}

.site-map-section__heading {
	display: flex;
	width: min(100%, 76rem);
	align-items: end;
	justify-content: space-between;
	gap: 1.5rem;
	margin: 0 auto 1.25rem;
}

.site-map-section__heading p {
	margin: 0 0 0.35rem;
	color: #3275a7;
	font-size: 0.74rem;
	font-weight: 750;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.site-map-section__heading h2 {
	margin: 0;
	color: #142d43;
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(1.5rem, 3vw, 2.25rem);
	font-weight: 600;
}

.site-map-section__heading > a {
	flex: 0 0 auto;
	color: #3275a7;
	font-size: 0.88rem;
	font-weight: 700;
	text-decoration: none;
}

.site-map-section__heading > a:hover {
	color: #142d43;
}

.site-map--fullwidth {
	height: clamp(19rem, 42vw, 33rem);
	margin-inline: calc(50% - 50vw);
	border-radius: 0;
	background: #dbe5e9;
}

.site-map--fullwidth iframe {
	height: calc(100% + 200px);
}

/* ---------- Футер: единый блок навигации и контактов ---------- */

.site-footer {
	margin-top: 0;
	padding: clamp(2.5rem, 5vw, 4.75rem) clamp(1rem, 3vw, 2.5rem) 1rem;
	border: 0;
	background:
		radial-gradient(ellipse at 8% 0%, rgba(73, 133, 171, 0.18), transparent 30rem),
		#102a40;
	color: #eaf1f5;
}

.site-footer__inner {
	width: min(100%, 76rem);
	max-width: none;
	display: block;
	padding: 0;
}

.site-footer__grid {
	display: grid;
	grid-template-columns: minmax(10rem, 0.85fr) minmax(10rem, 0.8fr) minmax(15rem, 1.25fr);
	gap: clamp(1.25rem, 2.5vw, 2.4rem);
	padding-bottom: clamp(2rem, 4vw, 3.25rem);
}

.site-footer__brand,
.site-footer__nav,
.site-footer__contacts {
	min-width: 0;
}

.site-footer__logo {
	display: inline-flex;
	max-width: 15rem;
	align-items: center;
	padding: 0.45rem 0.6rem;
	border: 1px solid rgba(218, 234, 243, 0.28);
	border-radius: 0.25rem 0.8rem 0.25rem 0.25rem;
	background: #fff;
	box-shadow: 0 0.6rem 1.6rem rgba(2, 15, 27, 0.18);
}

.site-footer__logo img {
	display: block;
	width: 100%;
	height: auto;
	filter: hue-rotate(326deg) saturate(0.82);
}

.site-footer__nav h2,
.site-footer__contacts h2 {
	margin: 0 0 1rem;
	color: #fff;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 1.15rem;
	font-weight: 600;
}

.site-footer__nav ul {
	display: grid;
	gap: 0.58rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.site-footer__nav a,
.site-footer__contacts a,
.site-footer__bottom a {
	color: #c2d1db;
	text-decoration: none;
	transition: color 160ms ease;
}

.site-footer__nav a {
	font-size: 0.88rem;
}

.site-footer__nav a:hover,
.site-footer__contacts a:hover,
.site-footer__bottom a:hover {
	color: #fff;
}

.site-footer__contacts {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
}

.site-footer__contact-value {
	margin-bottom: 0.7rem;
	font-size: 0.93rem;
}

.site-footer__request {
	display: inline-flex;
	align-items: center;
	gap: 1.2rem;
	margin-top: 0.6rem;
	padding: 0.65rem 0.85rem;
	border: 1px solid rgba(226, 240, 249, 0.42);
	border-radius: 999px;
	color: #fff !important;
	font-size: 0.82rem;
	font-weight: 700;
}

.site-footer__request:hover {
	border-color: #fff;
	background: rgba(255, 255, 255, 0.08);
}

.site-footer__bottom {
	display: flex;
	width: 100%;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem 1.5rem;
	padding-top: 1rem;
	border-top: 1px solid rgba(210, 229, 239, 0.18);
	color: #8fa8b9;
	font-size: 0.75rem;
}

.site-footer__bottom p {
	margin: 0;
}

.site-footer__bottom a {
	font-size: inherit;
}

.site-lang__list a {
	font-size: 0.8rem;
}

@media (max-width: 62rem) {
	.site-footer__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

}

@media (max-width: 38rem) {
	.site-footer__grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.site-map-section__heading {
		align-items: start;
		flex-direction: column;
		gap: 0.75rem;
	}
}

/* Визуально скрытый текст: остаётся в дереве доступности (скринридеры,
   поисковики), но не отображается. Используется для H1 на главной —
   в макете отдельного заголовка нет. */
.screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	border: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	word-wrap: normal !important;
}

/* Полные публикации: редакционная подача и читаемая колонка. */
.news-article-wrap {
	width: min(100% - 2.5rem, 76rem);
	margin: 0 auto;
	padding: clamp(2rem, 5vw, 4.5rem) 0 clamp(4rem, 8vw, 7rem);
}

.news-article-wrap > .breadcrumbs {
	width: 100%;
	margin-bottom: clamp(1.5rem, 3vw, 2.5rem);
}

.news-article {
	max-width: none;
	margin: 0;
	padding: clamp(1.2rem, 3.4vw, 3.25rem);
	border: 1px solid #e0e8ed;
	border-radius: 0.35rem 1.6rem 0.35rem 0.35rem;
	background: #fff;
	box-shadow: 0 1.5rem 4.5rem rgba(18, 44, 65, 0.09);
}

.news-article__header {
	max-width: 57rem;
	margin: 0 auto clamp(1.5rem, 3.5vw, 2.8rem);
}

.news-article__category {
	display: inline-flex;
	align-items: center;
	gap: 0.55rem;
	margin: 0 0 1rem;
	color: #567b94;
	font-size: 0.72rem;
	font-weight: 750;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.news-article__category::before {
	width: 1.4rem;
	height: 2px;
	background: var(--lg-blue);
	content: "";
}

.news-article__title {
	max-width: 20ch;
	margin: 0;
	color: #15334b;
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(2.2rem, 5.5vw, 4.6rem);
	font-weight: 600;
	letter-spacing: -0.035em;
	line-height: 1.04;
	text-wrap: balance;
}

.news-article__byline {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.55rem 1rem;
	margin-top: 1.25rem;
	color: #687e8e;
	font-size: 0.82rem;
}

.news-article__byline time {
	padding-right: 1rem;
	border-right: 1px solid #ccd8df;
}

.news-article__byline a,
.news-article__source a {
	color: #23648d;
	font-weight: 650;
	text-decoration: none;
}

.news-article__lead {
	max-width: 48rem;
	margin: 1.35rem 0 0;
	color: #405a6e;
	font-size: clamp(1.05rem, 1.6vw, 1.28rem);
	line-height: 1.65;
}

.news-article__cover {
	position: relative;
	margin: 0;
	overflow: hidden;
	border-radius: 0.2rem 1.1rem 0.2rem 0.2rem;
	background: #dbe5e9;
}

.news-article__cover img {
	display: block;
	width: 100%;
	height: auto;
	max-height: 35rem;
	object-fit: cover;
}

.news-article__cover figcaption {
	position: absolute;
	right: 0.75rem;
	bottom: 0.75rem;
	padding: 0.35rem 0.6rem;
	border-radius: 999px;
	background: rgba(12, 34, 51, 0.78);
	font-size: 0.7rem;
}

.news-article__cover figcaption a {
	color: #fff;
	text-decoration: none;
}

.news-article__columns {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(14rem, 18rem);
	align-items: start;
	gap: clamp(2rem, 5vw, 5rem);
	max-width: 66rem;
	margin: clamp(2rem, 4vw, 3.5rem) auto 0;
}

.news-article__content {
	min-width: 0;
	color: #324b5e;
	font-size: 1.02rem;
	line-height: 1.8;
}

.news-article__content > :first-child { margin-top: 0; }
.news-article__content p { margin: 0 0 1.35rem; }

.news-article__content h2,
.news-article__content h3 {
	margin: 2.4rem 0 0.8rem;
	color: #15334b;
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(1.45rem, 2.5vw, 2rem);
	line-height: 1.18;
}

.news-article__content a {
	color: #23648d;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.18em;
}

.news-article__source {
	display: flex;
	flex-wrap: wrap;
	gap: 0.3rem 0.5rem;
	margin-top: 2rem;
	padding: 1rem 0;
	border-top: 1px solid #e0e8ed;
	color: #738695;
	font-size: 0.79rem;
}

.news-article__aside {
	position: sticky;
	top: 1.5rem;
	padding: 1.4rem;
	border: 1px solid #dbe5eb;
	border-radius: 0.2rem 1rem 0.2rem 0.2rem;
	background: linear-gradient(155deg, #f2f7fa, #fff 75%);
}

.news-article__aside-label {
	margin: 0 0 1.3rem;
	color: #6b8799;
	font-size: 0.69rem;
	font-weight: 750;
	letter-spacing: 0.13em;
	text-transform: uppercase;
}

.news-article__aside h2 {
	margin: 0 0 0.65rem;
	color: #16364e;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 1.55rem;
	line-height: 1.15;
}

.news-article__aside > p:not(.news-article__aside-label) {
	margin: 0 0 1.25rem;
	color: #526d80;
	font-size: 0.87rem;
	line-height: 1.6;
}

.news-article__aside > a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.5rem;
	padding: 0.8rem 1rem;
	border-radius: 999px;
	background: var(--lg-navy);
	color: #fff;
	font-size: 0.83rem;
	font-weight: 750;
	text-decoration: none;
	transition: background-color 160ms ease, transform 160ms ease;
}

.news-article__aside > a:hover {
	transform: translateY(-1px);
	background: var(--lg-navy-dark);
}

.news-article__back {
	display: inline-flex;
	align-items: center;
	gap: 0.55rem;
	color: #23648d;
	font-size: 0.85rem;
	font-weight: 700;
	text-decoration: none;
}

.news-article__back:hover {
	text-decoration: underline;
	text-underline-offset: 0.18em;
}

@media (max-width: 56rem) {
	.news-article__columns { grid-template-columns: minmax(0, 1fr); }
	.news-article__aside { position: static; }
}

@media (max-width: 38rem) {
	.news-article-wrap {
		width: min(100% - 1.25rem, 76rem);
		padding-top: 1.35rem;
	}

	.news-article {
		padding: 1.2rem;
		border-radius: 0.2rem 1rem 0.2rem 0.2rem;
	}

	.news-article__title { font-size: clamp(2rem, 10vw, 3rem); }
	.news-article__cover { margin-inline: -1.2rem; border-radius: 0; }
	.news-article__cover img { min-height: 14rem; }
	.news-article__byline time { padding-right: 0; border-right: 0; }
}
