@import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700&display=swap');
@layer tokens, reset, base, layout, components, utilities, overrides;
@layer tokens {
	:root {
		--color-black: #000000;
		--color-dark-gray: #1d1d1f;
		--color-mid-gray: #424245;
		--color-gray: #86868b;
		--color-light-gray: #d2d2d7;
		--color-off-white: #f5f5f7;
		--color-white: #ffffff;
		--font-family-base: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
		--fw-regular: 400;
		--fw-medium: 500;
		--fw-bold: 700;
		--fs-h1: 48px;
		--fs-h2: 28px;
		--fs-h3: 20px;
		--fs-body: 18px;
		--fs-btn: 14px;
		--fs-footer: 16px;
		--lh-tight: 1.15;
		--lh-normal: 1.4;
		--lh-relaxed: 1.6;
		--sp-xs: 10px;
		--sp-s: 20px;
		--sp-m: 40px;
		--sp-l: 60px;
		--sp-xl: 80px;
		--sp-xxl: 120px;
		--br-s: 4px;
		--br-m: 8px;
		--br-l: 16px;
		--border-separator: 1px solid var(--color-mid-gray);
		--transition-fast: all 0.2s ease-in-out;
		--transition-normal: all 0.3s ease-in-out;
		--z-base: 1;
		--z-dropdown: 10;
		--z-header: 100;
		--z-overlay: 200;
		--z-modal: 300;
		--z-tooltip: 400;
		--z-popover: 500;
		--z-toast: 600;
		--z-max: 1000;
		--content-s: 900px;
		--content-m: 1200px;
		--content-l: 1600px;
		--content-xl: 1920px;
		--nav-width: 71rem;
		--nav-height: 50px;
	}
}
@layer reset {
	*,
	*::before,
	*::after {
		box-sizing: border-box;
		margin: 0;
		padding: 0;
	}
	html {
		-moz-text-size-adjust: none;
		-webkit-text-size-adjust: none;
		text-size-adjust: none;
		scrollbar-gutter: stable;
		scroll-behavior: smooth;
	}
	body,
	button,
	input,
	textarea,
	select {
		font-family: var(--font-family-base);
	}
	article,
	aside,
	details,
	figcaption,
	figure,
	footer,
	header,
	hgroup,
	nav,
	section,
	summary {
		display: block;
	}
	img,
	picture,
	svg,
	video,
	canvas {
		display: block;
		height: auto;
		max-width: 100%;
	}
	a {
		color: inherit;
		text-decoration: none;
	}
	ul,
	ol {
		list-style: none;
	}
	table {
		border-collapse: collapse;
		border-spacing: 0;
		width: 100%;
	}
	button,
	input,
	textarea,
	select {
		font: inherit;
		color: inherit;
	}
	button {
		cursor: pointer;
		background: none;
		border: none;
	}
	strong,
	b {
		font-weight: 700;
	}
}
@layer base {
	body {
		background: var(--color-white);
		overflow-x: clip;
		color: var(--color-white);
		font-family: var(--font-family-base);
		font-size: 16px;
		font-weight: 400;
		line-height: var(--lh-normal);
		-webkit-font-smoothing: antialiased;
		text-rendering: optimizeLegibility;
	}
	main {
		min-height: 50vh;
	}
	:focus-visible {
		outline: 2px solid var(--color-white);
		outline-offset: 3px;
	}
	.skip-link {
		position: absolute;
		top: -49px;
		left: 0;
		background: var(--color-red);
		color: var(--color-white);
		padding: 8px 12px;
		z-index: 1000;
	}
	.skip-link:focus {
		top: 0;
	}
	.sr-only {
		position: absolute;
		width: 1px;
		height: 1px;
		padding: 0;
		margin: -1px;
		overflow: hidden;
		clip: rect(0, 0, 0, 0);
		white-space: nowrap;
		border-width: 0;
	}
}
@layer layout {
	.site-header {
		position: fixed;
		width: 100%;
		top: 0;
		z-index: var(--z-overlay);
		background: var(--color-black);
		height: var(--nav-height);
		display: flex;
	}
	.header-container {
		max-width: 1200px;
		margin: 0 auto;
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 24px;
		min-height: 18px;
		padding: 20px 32px;
	}
	.section {
		padding: var(--sp-xxl) 10%;
		text-align: center;
		background: var(--color-white);
		color: var(--color-black);
	}
	footer {
		background: var(--color-black);
		color: var(--color-white);
	}
	.footer__widgets {
		padding: var(--sp-xxl) 0;
		margin: 0 auto;
		display: grid;
		grid-template-columns: 1fr 1fr 1fr;
		gap: 20px;
		width: min(94%, 1920px);
	}
	.footer__social {
		display: inline-flex;
		align-items: center;
		gap: 2.5rem;
		margin: var(--sp-l) 0 0;
		padding: 0;
	}
	.footer__brand-logo {
		padding: 0 0 var(--sp-m) 0;
		width: 18rem;
	}
	.footer__contact h3 {
		margin-top: var(--sp-s);
	}
	.footer__legal {
		text-align: center;
		background-color: var(--color-dark-gray);
		margin: 0 auto;
		padding: var(--sp-l) 0 var(--sp-l) 0;
		display: grid;
		grid-template-columns: 1fr 1fr 1fr;
		justify-content: space-between;
	}
	p.footer__about {
		max-width: 21rem;
	}

	footer li,
	footer .footer__contact-item  {
    	margin-bottom: 0.4rem;
	}

	.footer__heading {
		margin-bottom: var(--sp-s);
	}
}
@layer components {
	.site-logo {
		display: flex;
		align-items: center;
		justify-content: center;
		flex-shrink: 0;
	}
	.site-logo a {
		display: inline-flex;
		align-items: center;
		justify-content: center;
	}
	.main-navigation {
		display: grid;
		align-items: center;
		min-height: var(--nav-height);
		z-index: 99;
		position: static;
		inset: 0 0 auto 0;
		min-width: 720px;
		padding-right: 0.7rem;
	}
	.nav-links {
		display: flex;
		justify-content: flex-end;
		align-items: center;
		line-height: 30px;
		flex: 1 1 500px;
		gap: 1rem;
	}
	.nav-links li {
		list-style: none;
	}
	.nav-lang {
		cursor: pointer;
	}
	.nav-flag {
		width: 14px;
		height: 14px;
		border-radius: 50%;
		position: relative;
	}
	.menu-item-row {
		text-decoration: none;
		color: var(--color-white);
		font-size: var(--fs-body);
		font-weight: 400;
		padding: 0.01rem 0.7rem;
		align-items: center;
		gap: var(--sp-s);
		transition: 0.25s;
	}
	.menu-item-row > a {
		display: flex;
		align-items: center;
		font-size: var(--fs-body);
		opacity: 0.85;
		gap: var(--sp-s);
		min-width: max-content;
	}
	.menu-item-row > a:hover {
		color: var(--color-white);
		opacity: 1;
		transform: translateY(-1px);
	}
	.menu-item-row > a:focus-visible {
		opacity: 1;
		color: var(--color-white);
	}
	.active {
		opacity: 1;
		font-weight: var(--fw-bold);
	}
	.menu-item-row.active a {
		font-weight: 700;
		opacity: 1;
	}
	.burger {
		display: none;
	}

	.menu-item-row > a > svg {
		display: none;
		
	}
	.menu-item-row > a > svg,
	.submenu-toggle > svg {
		opacity: 0.85;
		margin-bottom: 0rem;
		margin-left: 0.3rem;
	}
	.menu-item-row > a:hover svg {
		-webkit-transform: rotate(180deg);
		transform: rotate(180deg);
	}
	.has-submenu {
		position: relative;
	}
	.submenu {
		position: absolute;
		top: 100%;
		left: 50%;
		transform: translateX(-50%) scaleY(0);
		transform-origin: top center;
		min-width: 314px;
		z-index: 999;
		padding: 15px 0;
		opacity: 0;
		visibility: hidden;
		transition:
			transform 0.3s ease,
			opacity 0.3s ease,
			visibility 0s linear 0.3s;
		margin: 10px 0 0 0;
		align-items: center;
		justify-content: space-between;
		background: var(--color-dark-gray);
		border-radius: 0 0 var(--br-m);
	}
	.submenu li {
		display: block;
		margin: 0;
		line-height: normal;
	}
	.submenu li a {
		display: flex;
		padding: 9px 18px;
		color: var(--color-white);
		opacity: 0.75;
		border-radius: 30px;
		margin: 0 9px;
		align-items: center;
	}
	.submenu li a:hover {
		opacity: 1;
	}
	.submenu li a.active {
		opacity: 1;
	}
	.submenu li a .nav-flag {
		margin-right: 7px;
	}
	.has-submenu:hover .submenu,
	.has-submenu:focus-within .submenu {
		transform: translateX(-50%) scaleY(1);
		opacity: 0.99;
		visibility: visible;
		transition:
			transform 0.3s ease,
			opacity 0.3s ease,
			visibility 0s linear 0s;
	}
	.submenu-toggle {
		display: none;
		color: var(--color-white);
	}
	.nav-line {
		height: 1px;
		background: rgba(160, 158, 158, 0.5);
		margin: 7px 16px;
		opacity: 0.5;
	}
	.nav-line:hover {
		opacity: 0.9;
	}
	section:has(.section__bg-img) {
		position: relative;
		display: flex;
		align-items: center;
		justify-content: center;
		height: 1075px;
		width: 100vw;
		color: white;
		text-align: center;
		overflow: hidden;
		padding: 0 20% 0 20%;
	}
	.hero-bg-img,
	.section__bg-img {
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		object-fit: cover;
		object-position: center;
		z-index: 1;
	}
	.hero-content,
	.section__content {
		position: relative;
		z-index: 2;
		padding: 0;
	}
	.btn {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		font-family: var(--font-family-base);
		font-size: var(--fs-btn);
		font-weight: var(--fw-bold);
		padding: 9px 50px;
		border-radius: 30px;
		cursor: pointer;
		text-decoration: none;
		border: 1px solid var(--color-white);
	}
	.btn:hover {
		background-color: rgba(255, 255, 255, 0.2);
		color: var(--color-white);
		transform: translateY(-1px);
	}
	.btn-black {
		color: var(--color-black);
		border: 1px solid var(--color-black);
	}
	.btn-black:hover {
		background-color: var(--color-off-white);
		color: var(--color-black);
	}
	.btn-inactive {
		background-color: var(--color-gray);
		color: var(--color-white);
	}
	.btn-inactive:hover {
		background-color: var(--color-mid-gray);
	}
	.btn-active {
		background-color: var(--color-black);
		color: var(--color-white);
	}
	.btn-active:hover {
		background-color: var(--color-dark-gray);
	}
	.btn-light {
		background-color: var(--color-white);
		color: var(--color-black);
	}
	.btn-light:hover {
		background-color: var(--color-off-white);
	}
	.section .btn {
		margin-top: var(--sp-m);
	}
	.section__eyebrow {
		padding-bottom: var(--sp-m);
		text-transform: uppercase;
		display: block;
	}
	.section__heading {
		margin-bottom: var(--sp-m);
		font-size: var(--fs-h2);
		font-weight: var(--fw-bold);
	}
	.section__img {
		margin: var(--sp-m) auto;
	}
	.section.transport {
		background-color: var(--color-off-white);
	}
	.section.contact .btn {
		margin: 0 auto;
		display: block;
	}
	.section.partners {
		background-color: var(--color-off-white);
	}
	.section.plane {
		margin-bottom: 3px;
	}
	.slider {
		background: transparent;
		height: 100px;
		margin: 0 auto;
		overflow: hidden;
		position: relative;
		width: 100%;
		border-radius: 8px;
	}
	.slider::before,
	.slider::after {
		background: linear-gradient(to right,
				var(--color-white) 0%,
				rgba(255, 255, 255, 0) 100%);
		content: "";
		height: auto;
		position: absolute;
		width: 200px;
		z-index: 2;
	}
	.slider::after {
		right: 0;
		top: 0;
		transform: rotateZ(180deg);
	}
	.slider::before {
		left: 0;
		top: 0;
	}
	.slider .slide-track {
		animation: scroll 40s linear infinite;
		display: flex;
		width: calc(250px * 5);
	}
	.slider .slide {
		height: auto;
		width: auto;
		padding: 0 2rem;
		min-height: max-content;
	}
	.slide img {
		max-width: initial;
	}
	.partners-slider {
		display: flex;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		-webkit-overflow-scrolling: touch;
		gap: 1rem;
		margin: var(--sp-xxl) 0 0 0;
	}
	@keyframes scroll {
		0% {
			transform: translateX(0);
		}
		100% {
			transform: translateX(calc(-250px * 3));
		}
	}
	.cards {
		display: grid;
		grid-template-columns: 1fr 1fr 1fr;
		gap: var(--sp-m);
		margin-top: var(--sp-l);
		display: grid;
		grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
		gap: 1rem;
	}
	.card {
		background-color: var(--color-white);
		border-radius: var(--br-m);
		overflow: hidden;
		box-shadow: var(--shadow-card);
		display: flex;
		flex-direction: column;
		width: 330px;
		margin: 0 auto;
	}
	.card__img {
		width: 100%;
		height: 200px;
		object-fit: cover;
	}
	.card__eyebrow {
		margin: var(--sp-s) 0 0;
		font-size: var(--fs-xs);
		color: var(--color-gray);
	}
	.card__title {
		margin: var(--sp-xs) 0 0;
		font-size: var(--fs-sm);
		font-weight: var(--fw-bold);
	}
	.card__description {
		margin: var(--sp-xs) 0 0;
		font-size: var(--fs-xs);
		color: var(--color-gray);
	}
	.card__btn {
		margin-top: auto;
		margin-bottom: var(--sp-m);
		align-self: center;
	}
	.form-shell {
		max-width: 600px;
		margin: 0 auto;
		margin-top: var(--sp-l);
	}
	.form-shell--blurred .form {
		filter: blur(3px);
		pointer-events: none;
		user-select: none;
		transition: filter 400ms cubic-bezier(0.4, 0, 0.2, 1);
	}
	.form-overlay {
		position: absolute;
		inset: 0;
		display: none;
		align-items: center;
		justify-content: center;
		z-index: 10;
	}
	.form-overlay--visible {
		display: flex;
	}
	.form {
		display: flex;
		flex-direction: column;
		gap: var(--sp-m);
	}
	form .field {
		display: flex;
		flex-direction: column;
	}
	form .field {
		gap: var(--sp-0);
	}
	.field__input,
	.field__input--textarea {
		display: block;
		width: 100%;
		border: 1px solid rgba(0, 0, 0, 0.2);
		font-family: inherit;
		font-size: var(--font-size-md);
		line-height: 1.5;
		color: var(--color-black);
		border-radius: var(--br-l);
		box-shadow: var(--shadow-input);
		-webkit-appearance: none;
		appearance: none;
		font-weight: 600;
		transition:
			border-color var(--trans-normal),
			box-shadow var(--trans-normal),
			background var(--trans-normal),
			transform 0.2s ease;
	}
	.field__input {
		height: 63px;
		padding: 0 36px;
	}
	.field__input--textarea {
		min-height: 260px;
		padding: 34px 36px;
		resize: vertical;
	}
	.field--invalid .field__input,
	.field--invalid .field__input--textarea {
		border-color: var(--color-error-bdr);
		box-shadow: var(--shadow-form-error);
	}
	input:-internal-autofill-selected {
		border: 1px solid rgba(0, 0, 0, 0.4);
		box-shadow: 0 5px 1px rgba(20, 29, 48, 0.25);
		background: none;
	}
	.form__button {
		max-width: fit-content;
		margin: 0 auto;
		box-shadow:
			inset 0px 0px 7px rgba(0, 0, 0, 0.3),
			0 0 5px rgba(255, 255, 255, 0.1);
		background: var(--globalnav-background);
		border: 1px solid rgb(255 255 255 / 18%);
	}
	.form__button svg {
		width: 28px;
		height: 28px;
		stroke: var(--color-secondary);
		stroke-width: 2.5;
		fill: none;
	}
	.field__input:disabled {
		background: var(--color-disabled);
		color: var(--color-ink-soft);
		cursor: not-allowed;
		border-color: var(--color-border);
	}
	.field__input--textarea:disabled {
		background: var(--color-disabled);
		color: var(--color-ink-soft);
		cursor: not-allowed;
		border-color: var(--color-border);
	}
	.field__input::placeholder,
	.field__input--textarea::placeholder {
		color: #aeaeb8;
	}
	.field__input:hover:not(:disabled),
	.field__input--textarea:hover:not(:disabled) {
		border: 1px solid rgba(0, 0, 0, 0.4);
		opacity: 1;
		box-shadow: 0 1px 0.1px rgba(20, 29, 48, 0.25);
	}
	.field__input:focus,
	.field__input--textarea:focus {
		border: 1px solid rgba(0, 0, 0, 0.4);
		opacity: 1;
		box-shadow: 0 1px 0.1px rgba(20, 29, 48, 0.25);
	}
	.field__hint {
		font-size: var(--font-size-label);
		color: var(--color-ink-soft);
	}
	.field__hint {
		margin-top: calc(-1 * var(--sp-1));
	}
	.field__error {
		display: block;
		min-height: 1em;
		font-size: var(--font-size-nav);
		font-weight: 500;
		color: var(--form-error-color, #c0392b);
		margin-top: var(--sp-2);
	}
	input:user-invalid,
	textarea:user-invalid {
		border-color: #c0392b;
	}
	.section-contact p.section__description {
		padding-bottom: var(--sp-md);
		opacity: 0.7;
	}
}
@layer overrides {
	@media (max-width: 1199px) {
		.header-container {
			padding-inline: 24px;
		}
		.footer__widgets {
			grid-template-columns: 1fr 1fr;
		}
		.footer__brand {
			grid-column: 1 / -1;
		}
		.tours-grid {
			grid-template-columns: repeat(2, minmax(0, 1fr));
		}
		.contact-wrap {
			grid-template-columns: 1fr;
		}
	}
	@media (max-width: 810px) {
		.header-container {
			padding: 16px 20px;
		}
		.site-logo {
			justify-content: flex-start;
		}
		.burger {
			display: block;
		}
		#main-navigation {
			min-width: auto;
		}
		#main-navigation ul li {
			display: block;
			margin: 10px 0;
			line-height: 10px;
		}
		#main-navigation ul li a {
			font-size: var(--fs-body);
			color: var(--color-white);
			font-weight: 400;
			display: inline-block;
			padding: 0.75rem 1rem;
			line-height: 1.35;
		}
		.burger {
			position: absolute;
			right: 20px;
			display: block;
			cursor: pointer;
			background: transparent;
			box-shadow: none;
			border: none;
		}
		.burger span {
			padding: 1px 10px;
			background: var(--color-white);
			margin: 5px 0;
			display: block;
			border-radius: 50px;
			transition:
				transform 0.5s ease,
				opacity 0.5s ease,
				background-color 0.5s ease;
		}
		.nav-links {
			width: 95%;
			margin: 0 auto;
			height: calc(100dvh - var(--nav-height) - 1rem);
			padding-top: 30px;
			padding-bottom: 30px;
			position: fixed;
			top: calc(var(--nav-height) + 0.5rem);
			left: 103%;
			text-align: center;
			flex-direction: column;
			justify-content: flex-start;
			align-items: center;
			transition: transform 1s ease;
			z-index: 10;
			background: var(--color-black);
			overflow-y: auto;
			overscroll-behavior: contain;
			-webkit-overflow-scrolling: touch;
			border-radius: var(--br-m);
		}
		.menu-item-row > a > svg {
			display: none;
		}
		.nav-links:not([hidden]) {
			transform: translateX(-105%);
		}
		.burger.is-open .line1 {
			transform: rotateZ(45deg) translateY(500%);
			background: var(--color-white);
		}
		.burger.is-open .line2 {
			opacity: 0;
		}
		.burger.is-open .line3 {
			transform: rotateZ(-45deg) translateY(-500%);
			background: var(--color-white);
		}
		.submenu {
			position: static;
			transform: scaleY(0);
			transform-origin: top center;
			opacity: 0;
			visibility: hidden;
			max-height: 0;
			overflow: hidden;
			border-top: none;
			min-width: 100%;
			padding: 0;
			margin: 0;
			transition:
				transform 0.3s ease,
				opacity 0.3s ease,
				max-height 0.4s ease,
				visibility 0s linear 0.3s;
		}
		.has-submenu:hover .submenu,
		.has-submenu:focus-within .submenu {
			transform: scaleY(0);
			opacity: 0;
			visibility: hidden;
			max-height: 0;
			transition:
				transform 0.3s ease,
				opacity 0.3s ease,
				max-height 0.4s ease,
				visibility 0s linear 0.3s;
		}
		.has-submenu.is-open .submenu {
			transform: scaleY(1);
			opacity: 1;
			visibility: visible;
			max-height: 100%;
			padding: 0;
			transition:
				transform 0.3s ease,
				opacity 0.3s ease,
				max-height 0.4s ease,
				visibility 0s linear 0s;
		}
		.has-submenu.is-open .submenu-toggle svg {
			-webkit-transform: rotate(180deg);
			transform: rotate(180deg);
		}
		.menu-item-row {
			display: flex;
			align-items: center;
			justify-content: center;
			gap: 0.5rem;
		}
		.submenu-toggle {
			display: inline-flex;
			align-items: center;
			justify-content: center;
			background: transparent;
			border: none;
			font-size: var(--fs-body);
			line-height: 1;
			padding: 0.25rem 0.5rem;
			width: auto;
			margin: 0;
			border-radius: 0;
			letter-spacing: 0;
			box-shadow: none;
		}
		.submenu li a {
			padding: 10px 24px;
			line-height: 1.4;
		}
		.footer__widgets {
			grid-template-columns: 1fr;
			padding: 54px 20px 30px;
			gap: 30px;
		}
		.footer__legal {
			padding-inline: 20px;
			justify-content: flex-start;
		}
		.hero {
			min-height: 620px;
		}
		.hero__content {
			padding-block: 56px;
		}
		.section {
			padding: 80px 5%;
		}
	}
	@media (min-width: 600px) and (max-width: 1199px) {
		.cards > .card:last-child:nth-child(odd) {
			grid-column: 1 / -1;
			width: calc((100% - 1rem) / 2);
			justify-self: center;
		}
	}
	@media (max-width: 599px) {
		.header-container {
			padding-inline: 16px;
		}
		.footer__legal {
			gap: 8px 12px;
			font-size: 12px;
		}
		.footer__about,
		.footer__nav-list a,
		.footer__contact-item p,
		.footer__text {
			font-size: 15px;
		}
		.container {
			padding-inline: 18px;
		}
		.hero__actions {
			flex-direction: column;
			align-items: flex-start;
		}
		.button,
		.contact-form__submit {
			width: 100%;
		}
	}
}