/* ============================================
   ОБЩИЕ СТИЛИ ДЛЯ ВСЕГО САЙТА
   ============================================ */

/* ============================================
   ИМПОРТЫ
   ============================================ */
@import url("https://fonts.googleapis.com/css2?family=Unbounded:wght@400;500;700;800&family=Wix+Madefor+Display:wght@500;600;700;800&display=swap");

/* ============================================
   CSS ПЕРЕМЕННЫЕ
   ============================================ */
:root {
	/* Цвета */
	--color-primary: #004890;
	--color-primary-dark: #003067;
	--color-primary-darker: #001c47;
	--color-accent: #0085e4;
	--color-accent-light: #0db7ff;
	--color-secondary: #a2d9f3;
	--color-secondary-light: #cbebfa;
	--color-secondary-lighter: #83c2ee;
	--color-bg-white: #ffffff;
	--color-bg-light: #f2f7f8;
	--color-bg-lighter: #e5ecf2;
	--color-text-primary: #16323b;
	--color-text-secondary: #6e8ea2;
	--color-text-dark: #001c47;
	--color-text-blue: #004890;

	/* Типографика */
	--font-heading: "Unbounded", sans-serif;
	--font-body: "Wix Madefor Display", sans-serif;

	/* Отступы */
	--spacing-xs: 4px;
	--spacing-sm: 10px;
	--spacing-md: 20px;
	--spacing-lg: 24px;
	--spacing-xl: 40px;
	--spacing-2xl: 48px;

	/* Скругления */
	--radius-sm: 6px;
	--radius-md: 12px;
	--radius-lg: 24px;
	--radius-xl: 48px;
	--radius-2xl: 64px;

	/* Тени */
	--shadow-sm: 0px 12px 20px rgba(0, 48, 103, 0.25);
	--shadow-md: 0px 24px 32px rgba(0, 28, 71, 0.25);
	--shadow-lg: 0px 32px 32px rgba(0, 28, 71, 0.25);
	--shadow-xl: 0px 48px 96px rgba(0, 28, 71, 0.5);
	--shadow-card: 0px 32px 48px rgba(16, 113, 174, 0.1);
}

/* ============================================
   СБРОС И БАЗОВЫЕ СТИЛИ
   ============================================ */
* {
	margin: 0;
	padding: 0;
	box-sizing: border-box;
	/* outline: 2px solid red; */
}

body {
	font-family: var(--font-body);
	color: var(--color-text-primary);
	background: linear-gradient(180deg, #003067 0%, #0064b5 100%);
	background-blend-mode: color;
	background-repeat: no-repeat;
	background-size: contain;
	overflow-x: hidden;
}

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

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

button {
	border: none;
	background: none;
	cursor: pointer;
	font-family: inherit;
}

textarea {
	resize: none;
}

table {
	border-spacing: 0;
}

/* ============================================
   КОНТЕЙНЕР
   ============================================ */
.container {
	max-width: 1440px;
	margin: 0 auto;
	padding: 0 20px;
}

/* ============================================
   ОБЩИЕ СЕКЦИИ
   ============================================ */
/* .section {
	padding: 40px 0;
} */

/* ============================================
   ФОНОВЫЕ ЭЛЕМЕНТЫ
   ============================================ */

.top-bg.page404 {
	background-image: url(../img/zaglushka.png);
}

/* ============================================
   ТИПОГРАФИКА
   ============================================ */
.heading-xl {
	font-family: var(--font-heading);
	font-size: clamp(32px, 3vw, 40px);
	font-weight: 800;
	text-transform: uppercase;
	line-height: 1.25;
}

.heading-lg {
	font-family: var(--font-heading);
	font-size: 24px;
	font-weight: 800;
	text-transform: uppercase;
}

.heading-md {
	font-family: var(--font-heading);
	font-size: 20px;
	font-weight: 700;
}

.heading-sm {
	font-family: var(--font-heading);
	font-size: 18px;
	font-weight: 400;
	text-transform: uppercase;
	line-height: 1;
}

.text-lg {
	font-family: var(--font-body);
	font-size: 18px;
	font-weight: 800;
	text-transform: uppercase;
	line-height: 1;
}

.text-md {
	font-family: var(--font-body);
	font-size: 16px;
	font-weight: 600;
}

.text-sm {
	font-family: var(--font-body);
	font-size: 14px;
	font-weight: 600;
}

.text-xs {
	font-family: var(--font-body);
	font-size: 12px;
	font-weight: 500;
	line-height: 1.1;
	text-transform: uppercase;
}

/* ============================================
   УТИЛИТАРНЫЕ КЛАССЫ
   ============================================ */
.text-white {
	filter: drop-shadow(0px 4px 16px #001c4733);
	color: #ffffff;
}

.gradient-text {
	background: linear-gradient(90deg, #0085e4 0%, #0db7ff 100%);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	background-clip: text;
}

.gradient-text-dark {
	background: linear-gradient(88.88deg, #001c47 0.19%, #0064b5 100%);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}

.gradient-text-white {
	background: linear-gradient(88.88deg, #ffffff 0.19%, #c7f7ff 100%);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}

.text-blue {
	color: var(--color-text-blue);
}

.text-light-blue {
	color: var(--color-secondary-light);
}

.text-dark {
	color: var(--color-text-dark);
}

.bg-primary {
	background-color: var(--color-primary);
}

.bg-white {
	background-color: var(--color-bg-white);
}

.bg-light {
	background-color: var(--color-bg-light);
}

.wave-decoration {
	position: relative;
	background: linear-gradient(180deg, #ffffff 0%, #e5f0f2 100%);
	border-radius: 0 var(--radius-lg) var(--radius-lg);
	padding: var(--spacing-md);
}

.wave-decoration.bg-white {
	background: var(--color-bg-white);
}

/* ============================================
   КОМПОНЕНТЫ: КНОПКИ
   ============================================ */

.breadcrumbs {
	width: fit-content;
	margin: 40px 0;
}

.breadcrumbs__swiper {
	overflow: hidden;
	padding: 12px 24px;
	border-radius: 24px;
	width: 100%;
	box-shadow: 0px 4px 4px 2px #001c471a inset, 0px 16px 24px -8px #001c4740;
}

.breadcrumbs__item {
	font-weight: 600;
	font-size: 18px;
	line-height: 100%;
	text-transform: uppercase;
	color: #d7ebef;
	text-shadow: 0px 1px 1px #06183240;
}

.breadcrumbs__item.active-page {
	color: #ffffff;
}

.breadcrumbs__item + svg {
	margin: 0 12px;
}

.breadcrumbs__list {
	display: flex;
	align-items: center;
}

.breadcrumbs__slide {
	display: flex;
	align-items: center;
	gap: 12px;
	flex: 0 0 auto;
	width: auto;
}

.breadcrumbs__slide svg {
	margin: 0;
	flex-shrink: 0;
}

.next-paragraph {
	display: block;
	height: 24px;
}

.pre-paragraph {
	margin-right: 12px;
}

.btn {
	font-family: var(--font-body);
	font-size: 18px;
	font-weight: 800;
	text-transform: uppercase;
	padding: 10px 24px;
	border-radius: var(--radius-xl);
	transition: all 0.3s ease;
	display: inline-block;
	min-height: 64px;
}

a.btn {
	display: flex;
	align-items: center;
	text-align: center;
}

.btn-primary {
	background: #0064b5e5;
	color: var(--color-bg-white);
	padding: 10px 48px;
	box-shadow: 0px 16px 24px -8px #0064b540;
}

.btn-secondary {
	background: #0064b540;
	box-shadow: 0px 16px 24px -8px #001c4766;
	color: var(--color-bg-white);
}

.banner-btn {
	box-shadow: 0px 16px 24px -8px #001c4740, 0px 4px 4px 2px #001c471a inset,
		0px 0px 0px 0.5px #ffffff33 inset, 0px 0px 2px 1px #ffffff80 inset;
	background-color: #0064b580;
}

.swiper__buttons-wrapper {
	display: flex;
	align-items: center;
	gap: 8px;
	position: relative;
	top: 25px;
}

.swiper__btn-prev,
.swiper__btn-next {
	width: 64px;
	height: 64px;
	border-radius: 50%;
	background: #0064b540;
	box-shadow: 0px 16px 24px -8px #001c4766;
	display: flex;
	align-items: center;
	justify-content: center;
	z-index: 1;
	top: calc(50% + 32px);
	cursor: pointer;
	pointer-events: auto;
}

.swiper__btn-prev.glass__container,
.swiper__btn-next.glass__container {
	pointer-events: auto;
}

/* ============================================
   ОВЕРЛЕЙ ДЛЯ КАРТЫ
   ============================================ */

.map::before,
.map::after {
	position: absolute;
	content: "";
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	pointer-events: none;
	z-index: 1;
	border-radius: 24px;
}
/*
.map::before {
	background: #0045ad59;
	mix-blend-mode: normal;
}

.map::after {
	background: #0045ad;
	mix-blend-mode: color;
}
 */
/* ============================================
   КОМПОНЕНТ: SCROLLBAR
   ============================================ */

.custom-scrollbar {
	position: absolute;
	/* bottom: 30px; */
	left: 32px;
	width: calc(100% - 64px);
	height: 16px;
	background: #eaf5f9;
	border-radius: 16px;
	z-index: 10;
	box-shadow: 0px 1px 1px 0px #001c4726 inset, 0px 1px 4px 1px #001c4726 inset;
}

.scroll-thumb {
	position: absolute;
	left: -12px;
	top: -8px;
	width: 400px;
	background: #1cb3ff80;
	height: 32px;
	border-radius: 32px;
	cursor: pointer;
	box-shadow: 0px 6px 6px -4px #001c4733, 0px 2px 4px 2px #0045ad40 inset,
		0px 0px 1px 1px #ffffffbf inset;
}

.scroll-thumb::before {
	position: absolute;
	content: "";
	width: calc(100% - 16px);
	height: 12px;
	top: 4px;
	left: 8px;
	background: #ffffff;
	backdrop-filter: blur(4px);
	border-radius: 12px;
	opacity: 0.3;
}

/* ============================================
   КОМПОНЕНТЫ: КАРТОЧКА (общая)
   ============================================ */
.card {
	border-radius: var(--radius-lg);
	overflow: hidden;
	transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.card:hover {
	transform: translateY(-4px);
}

/* ============================================
   КОМПОНЕНТЫ: ЗАГОЛОВОК (общая)
   ============================================ */

.section-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 0 var(--spacing-lg) 0 0;
	margin: 0;
}

.heading-figure {
	background: #ffffff;
	padding-top: 34px;
	padding-left: var(--spacing-lg);
	border-radius: 24px 0 0;
	position: relative;
	width: fit-content;
}

@supports (-moz-appearance: none) {
	.bg-liquid-glass {
		backdrop-filter: blur(4px) !important;
	}
}

.heading-figure::after {
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	left: 100%;
	aspect-ratio: 201 / 66;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 201 66' preserveAspectRatio='none'%3E%3Cpath d='M201 66C84 66 107 0 0 0V66H201Z' fill='%23FFFFFF'/%3E%3C/svg%3E");
	/* background-size: contain; */
	background-repeat: no-repeat;
}

.heading-figure + .glass__container {
	top: 30px;
	z-index: 1;
}

.heading-link {
	font-size: 18px;
	font-weight: 800;
	text-transform: uppercase;
	padding: 23px 24px;
	border-radius: var(--radius-xl);
	transition: all 0.3s ease;
	display: inline-block;
	background: #0064b540;
	box-shadow: 0px 16px 24px -8px #001c4766;
	color: var(--color-bg-white);
}

.glass__container {
	position: relative;
}

/* ============================================
   КОМПОНЕНТЫ: LIQUID GLASS
   ============================================ */

.bg-liquid-glass {
	backdrop-filter: blur(4px);
	-webkit-backdrop-filter: blur(4px);
	z-index: 1;
	@apply bg-muted/25;
}

@supports not (hanging-punctuation: first) {
	.bg-liquid-glass {
		backdrop-filter: url(#displacementFilter) blur(2px);
	}
}

/* ============================================
   АДАПТИВНОСТЬ (общие правила)
   ============================================ */
@media (max-width: 991px) {
	.heading-figure h2 {
		width: min-content;
	}

	/* @supports (-moz-appearance: none) {
		.heading-figure h2 {
			width: min-content;
		}
	} */
}

@media (max-width: 768px) {
	/* .section {
		padding: 20px 0;
	} */

	.heading-xl {
		font-size: 24px;
	}

	.heading-lg {
		font-size: 16px;
	}

	.heading-md {
		font-size: 18px;
	}

	.text-md {
		font-size: 14px;
	}
	.breadcrumbs {
		margin: 20px 10px;
	}

	.breadcrumbs__item {
		font-size: 12px;
	}

	.breadcrumbs__swiper {
		padding: 8px 12px;
	}

	.section-header {
		text-align: center;
		justify-content: center;
		padding: 0;
	}

	.heading-figure {
		border-radius: 0;
		padding-left: 0;
		width: 66%;
		padding-top: 10px;
		max-height: 37px;
		max-width: none;
	}

	.heading-figure h2 {
		width: auto;
		position: relative;
		z-index: 1;
		hyphens: auto;
		-moz-hyphens: auto;
	}

	.heading-figure::after {
		width: 17%;
		background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 38 38' preserveAspectRatio='none'%3E%3Cpath d='M38 38C29.7157 38 23 31.2843 23 23C23 10.2975 12.7025 0 0 0V23V38H38Z' fill='white'/%3E%3C/svg%3E");
		aspect-ratio: auto;
		transform: scaleX(1);
	}

	.heading-figure::before {
		content: "";
		position: absolute;
		top: 0;
		bottom: 0;
		right: 100%;
		width: 17%;
		transform: scaleX(-1);
		background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 38 38' preserveAspectRatio='none'%3E%3Cpath d='M38 38C29.7157 38 23 31.2843 23 23C23 10.2975 12.7025 0 0 0V23V38H38Z' fill='white'/%3E%3C/svg%3E");
		background-size: contain;
		background-repeat: no-repeat;
	}

	.section-header .glass__container {
		display: none;
	}

	.wave-decoration {
		border-radius: var(--radius-lg);
		padding: 24px 10px 10px;
	}

	.swiper__buttons-wrapper {
		display: none;
	}
}

@media (max-width: 550px) {
	.container {
		padding: 0 10px;
	}

	.breadcrumbs {
		width: auto;
	}
}

@supports (-moz-appearance: none) {
	.heading-figure::after,
	.heading-figure::before {
		width: auto;
		aspect-ratio: 201 / 66;
	}
}
@media not all and (min-resolution: 0.001dpcm) {
	.heading-figure::after,
	.heading-figure::before {
		width: 100%;
		aspect-ratio: auto;
	}
}
