/* ==================================== VARIABLES ==================================== */

:root {
	/* size */
	--container__max: 1440px;
	--container__padding: 60px;

	/* font */
	--font__fam: "Roboto";
	--font__size: 18px;
	--font__weight: 300;
	--line-height: 1.4;

	/* colors */
	--white: #fff;
	--main-black: #050029;
	--main-blue: #4341B6;
	--secondary-blue: #6461DE;
	--light-black: #4E4B64;
	--main-grey: #D6D5DE;
	--dark-grey: #C5C4CF;
	--text-select: #D9D9F2;

	/* transition */
	--short: .3s;
	--medium: .5s;
}


/* ==================================== GLOBAL ==================================== */

@font-face {
	font-family: "Roboto";
	font-style: normal;
	font-weight: 300;
	font-display: swap;
	src: local(""),
		url("../fonts/roboto-v30-latin_cyrillic-300.woff2") format("woff2"),
		url("../fonts/roboto-v30-latin_cyrillic-300.woff") format("woff");
}

@font-face {
	font-family: "Roboto";
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: local(""),
		url("../fonts/roboto/roboto-v30-latin_cyrillic-regular.woff2") format("woff2"),
		url("../fonts/roboto/roboto-v30-latin_cyrillic-regular.woff") format("woff");
}

@font-face {
	font-family: "Roboto";
	font-style: normal;
	font-weight: 500;
	font-display: swap;
	src: local(''),
		url('../fonts/roboto/roboto-v30-latin_cyrillic-500.woff2') format('woff2'),
		url('../fonts/roboto/roboto-v30-latin_cyrillic-500.woff') format('woff');
}

@font-face {
	font-family: "Montserrat";
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: local(""),
		url("../fonts/montserrat/montserrat-v25-latin_cyrillic-regular.woff2") format("woff2"),
		url("../fonts/montserrat/montserrat-v25-latin_cyrillic-regular.woff") format("woff");
}

@font-face {
	font-family: "Montserrat";
	font-style: normal;
	font-weight: 700;
	font-display: swap;
	src: local(""),
		url("../fonts/montserrat/montserrat-v25-latin_cyrillic-700.woff2") format("woff2"),
		url("../fonts/montserrat/montserrat-v25-latin_cyrillic-700.woff") format("woff");
}

html {
	-webkit-box-sizing: border-box;
	box-sizing: border-box;
	font-family: var(--font__fam), sans-serif, Arial;
	font-size: var(--font__size);
	font-weight: var(--font__weight);
	line-height: var(--line-height);
}

body {
	min-width: 320px;
	color: var(--light-black);
	background-color: var(--white);
}

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

img,
svg {
	max-width: 100%;
	height: auto;
}

*,
*::before,
*::after {
	box-sizing: inherit;
	-webkit-box-sizing: inherit;
}

::-moz-selection {
	background-color: var(--text-select);
}

::selection {
	background-color: var(--text-select);
}

.container {
	max-width: var(--container__max);
	margin: 0 auto;
	padding-left: var(--container__padding);
	padding-right: var(--container__padding);
}

.reset-list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.logo {
	display: block;
	width: 100%;
	height: 100%;
}

.title,
.text {
	margin: 0;
}

.title {
	font-family: "Montserrat";
	font-weight: 700;
	line-height: 1.3;
	color: var(--main-blue);
}

.title--main {
	font-size: 48px;
	letter-spacing: 0.03em;
}

.title--second {
	font-size: 24px;
	letter-spacing: 0.05em;
}

.link {
	position: relative;
}

.link::after {
	position: absolute;
	content: '';
	left: 0;
	bottom: -10px;
	border-radius: 100px;
	background-color: currentColor;
	-webkit-transform: scale(0);
	-ms-transform: scale(0);
	transform: scale(0);
	-webkit-transition: -webkit-transform var(--short) ease-in;
	transition: -webkit-transform var(--short) ease-in;
	-o-transition: transform var(--short) ease-in;
	transition: transform var(--short) ease-in;
	transition: transform var(--short) ease-in, -webkit-transform var(--short) ease-in;
}

.link:focus,
.link:hover {
	outline: none;
	color: var(--main-blue);
}

.link:hover::after {
	-webkit-transform: scaleX(1);
	-ms-transform: scaleX(1);
	transform: scaleX(1);
}

@media (max-width: 1366px) {
	.title--main {
		font-size: 42px;
	}

	.title--second {
		font-size: 20px;
	}
}

@media (max-width: 862px) {
	.title--main {
		font-size: 40px;
	}

	.title--second {
		font-size: 19px;
	}

	.text {
		font-size: 16px;
	}
}

@media (max-width: 670px) {
	.container {
		padding-left: 15px;
		padding-right: 15px;
	}

	.title--main {
		font-size: 36px;
	}

	.title--second {
		font-size: 16px;
	}

	.text {
		font-size: 14px;
	}

	.link::after {
		bottom: -3px;
	}
}

@media (max-width: 420px) {
	.title--main {
		font-size: 28px;
	}

	.title--second {
		font-size: 14px;
	}

	.text {
		font-size: 12px;
	}
}


/* ==================================== HEADER ==================================== */

.header {
	padding: var(--container__padding) 0;
}

.header__wrapper {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
}

.header__logo {
	display: inline-block;
	-ms-flex-negative: 0;
	flex-shrink: 0;
	width: 70px;
	height: 70px;
	margin-right: 80px;
}

.nav__list {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
	-webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
}

.nav__item:not(:last-child) {
	margin-right: 60px;
}

.nav__link {
	font-size: 24px;
	font-weight: 500;
	line-height: 1.2;
	color: var(--dark-grey);
	-webkit-transition: color var(--short) ease-in;
	-o-transition: color var(--short) ease-in;
	transition: color var(--short) ease-in;
}

.nav__link::after {
	width: 100%;
	height: 5px;
}

@media (max-width: 1366px) {
	.header__wrapper {
		-webkit-box-pack: justify;
		-ms-flex-pack: justify;
		justify-content: space-between;
	}

	.header__logo {
		width: 50px;
		height: 50px;
	}

	.nav__link {
		font-size: 22px;
	}

	.nav__link::after {
		height: 2px;
	}
}

@media (max-width: 862px) {
	.nav__link {
		font-size: 18px;
	}

	.nav__item:not(:last-child) {
		margin-right: 30px;
	}
}

@media (max-width: 670px) {
	.header {
		padding: 30px 0;
	}

	.nav__list {
		-webkit-box-orient: vertical;
		-webkit-box-direction: normal;
		-ms-flex-direction: column;
		flex-direction: column;
		-webkit-box-align: end;
		-ms-flex-align: end;
		align-items: flex-end;
	}

	.nav__item:not(:last-child) {
		margin-right: 0;
	}
}

@media (max-width: 420px) {
	.header {
		padding: 20px 0;
	}

	.nav__item:not(:last-child) {
		margin-bottom: 10px;
	}

	.nav__link {
		font-size: 15px;
	}
}


/* ==================================== HERO ==================================== */

.hero {
	padding: 30px 0;
}

.hero__blocks {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
}

.hero__left {
	width: calc(834 / 1320 * 100%);
	margin-right: 77px;
}

.hero__title {
	margin-bottom: 40px;
}

.hero__right {
	width: calc(409 / 1320 * 100%);
	background: transparent url("../img/hero/background.svg") no-repeat center center / contain;
}

@media (max-width: 670px) {
	.hero__left {
		width: 100%;
		margin-right: 0;
	}

	.hero__right {
		display: none;
	}
}

@media (max-width: 420px) {
	.hero {
		padding: 20px 0;
	}

	.hero__title {
		margin-bottom: 20px;
	}
}

/* ==================================== VALUES ==================================== */

.values {
	padding: 30px 0;
}

.values__title {
	margin-bottom: 85px;
}

.values__blocks {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
}

.values__left {
	width: 350px;
	height: 350px;
	margin-right: 80px;
	background: transparent url("../img/values/background.svg") no-repeat center center / contain;
	-webkit-transform: translateY(-40px);
	-ms-transform: translateY(-40px);
	transform: translateY(-40px);
}

.values__right {
	width: calc(863 / 1320 * 100%);
}

.values__list {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
	-webkit-box-pack: justify;
	-ms-flex-pack: justify;
	justify-content: space-between;
	-webkit-box-align: start;
	-ms-flex-align: start;
	align-items: flex-start;
}

.values__item {
	width: calc(400 / 863 * 100%);
	margin-bottom: 60px;
}

.values__item-top {
	display: flex;
	align-items: center;
	margin-bottom: 27px;
}

.values__item-icon {
	flex-shrink: 0;
	width: 50px;
	height: 50px;
	margin-right: 30px;
}

@media (max-width: 1366px) {
	.values__item-icon {
		width: 40px;
		height: 40px;
	}
}

@media (max-width: 1219px) {
	.values {
		padding-top: 50px;
		padding-bottom: 15px;
	}

	.values__left {
		display: none;
	}

	.values__right {
		width: 100%;
	}
}

@media (max-width: 670px) {
	.values {
		padding-top: 30px;
	}

	.values__title {
		margin-bottom: 30px;
	}

	.values__item {
		width: 100%;
		margin-bottom: 0;
	}

	.values__item:not(:last-child) {
		margin-bottom: 40px;
	}
}

@media (max-width: 420px) {
	.values {
		padding: 20px 0;
	}

	.values__item-top {
		margin-bottom: 15px;
	}

	.values__item-icon {
		width: 30px;
		height: 30px;
	}
}


/* ==================================== SERVICES ==================================== */

.services {
	padding: 30px 0;
}

.services__title {
	margin-bottom: 40px;
}

.services__blocks {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-pack: justify;
	-ms-flex-pack: justify;
	justify-content: space-between;
}

.services__left {
	width: calc(860 / 1320 * 100%);
}

.services__list {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
	-webkit-box-pack: justify;
	-ms-flex-pack: justify;
	justify-content: space-between;
	-webkit-box-align: start;
	-ms-flex-align: start;
	align-items: flex-start;
}

.services__item {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-orient: vertical;
	-webkit-box-direction: normal;
	-ms-flex-direction: column;
	flex-direction: column;
	width: calc(400 / 860 * 100%);
	min-height: 169px;
	margin-bottom: 50px;
}

.services__item-header {
	margin-bottom: 20px;
}

.services__right {
	width: calc(324 / 860 * 100%);
	background: transparent url("../img/services/background.svg") no-repeat center center / contain;
}

@media (max-width: 1219px) {
	.services__right {
		width: 30%;
	}
}

@media (max-width: 670px) {
	.services__title {
		margin-bottom: 40px;
	}

	.services__left {
		width: 100%;
	}

	.services__right {
		display: none;
	}
}


/* ==================================== TEAM ==================================== */

.team {
	padding: 30px 0;
}

.team__title {
	margin-bottom: 40px;
}

.team__swiper-container {
	width: calc(1070 / 1320 * 100%);
	margin: 0 auto;
	overflow: hidden;
}

.team__swiper {
	position: relative;
}

.team__swiper-btn {
	position: absolute;
	top: 40%;
	width: 40px;
	height: 60px;
	border: none;
	background-color: transparent;
	cursor: pointer;
}

.team__swiper-btn::before {
	position: absolute;
	content: "";
	top: calc(40% - 30px / 2);
	width: 30px;
	height: 30px;
	-webkit-transform: rotate(45deg);
	-ms-transform: rotate(45deg);
	transform: rotate(45deg);
}

.team__swiper-prev {
	left: 0;
}

.team__swiper-next {
	right: 30px;
}

.team__swiper-prev::before {
	border-left: 4px solid var(--main-blue);
	border-bottom: 4px solid var(--main-blue);
}

.team__swiper-next::before {
	border-top: 4px solid var(--main-blue);
	border-right: 4px solid var(--main-blue);
}

.team__swiper-btn--disabled.team__swiper-prev::before,
.team__swiper-btn--disabled.team__swiper-next::before {
	border-color: var(--dark-grey);
	cursor: auto;
}

.team__swiper-img {
	width: 100%;
	height: 326px;
	object-fit: cover;
}

.team__swiper-header {
	margin-bottom: 20px;
}

.team__swiper-descr {
	display: block;
}

@media (max-width: 1219px) {
	.team__swiper-container {
		width: 70%;
	}
}

@media (max-width: 862px) {
	.team__swiper-container {
		width: 80%;
	}

	.team__swiper-btn {
		width: 30px;
		height: 30px;
	}

	.team__swiper-btn::before {
		width: 20px;
		height: 20px;
	}
}

@media (max-width: 670px) {
	.team__swiper-container {
		width: 50%;
	}

	.team {
		padding: 0;
	}
}


/* ==================================== CONTACTS ==================================== */

.contacts {
	padding: 30px 0;
}

.contacts__title {
	margin-bottom: 50px;
}

.contacts__list {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-align: start;
	-ms-flex-align: start;
	align-items: flex-start;
	-webkit-box-pack: justify;
	-ms-flex-pack: justify;
	justify-content: space-between;
}

.contacts__item {
	width: 33.3%;
}

.contacts__item-header {
	margin-bottom: 20px;
}

.contacts__link {
	-webkit-transition: color var(--short) ease-in;
	-o-transition: color var(--short) ease-in;
	transition: color var(--short) ease-in;
}

.contacts__link::after {
	width: 40%;
	height: 2px;
}

@media (max-width: 1219px) {
	.contacts {
		padding: 50px 0;
	}
}

@media (max-width: 862px) {
	.contacts__item {
		width: 30%;
	}
}

@media (max-width: 670px) {
	.contacts__title {
		margin-bottom: 40px;
	}

	.contacts__list {
		-webkit-box-orient: vertical;
		-webkit-box-direction: normal;
		-ms-flex-direction: column;
		flex-direction: column;
	}

	.contacts__item {
		width: 100%;
		margin-bottom: 20px;
	}

	.contacts__item-header {
		margin-bottom: 10px;
	}
}


/* ==================================== CONTACTS ==================================== */

.footer {
	padding: 60px 0;
	background-color: var(--main-blue);
}

.footer__wrapper {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
}

.footer__logo {
	display: inline-block;
	width: 281px;
	margin-right: auto;
}

.footer__copyright {
	font-size: 24px;
	font-weight: 400;
	color: var(--main-grey);
	-webkit-touch-callout: none;
	-webkit-user-select: none;
	-moz-user-select: none;
	-ms-user-select: none;
	user-select: none;
}

@media (max-width: 1219px) {
	.footer {
		padding: 30px 0;
	}

	.footer__logo {
		width: 181px;
	}

	.footer__copyright {
		font-size: 18px;
	}
}

@media (max-width: 670px) {
	.footer__logo {
		width: 141px;
	}
}

@media (max-width: 420px) {
	.footer__copyright {
		font-size: 14px;
	}
}