:root
{
	--primary-font:'Montserrat', sans-serif;
	--second-font:'Caveat', cursive;
	--font-size: 15px;
	--gap:10px;
	--indent: 20px;
	--vu:25px;
	--header-height:calc(2 * var(--vu));
	--footer-height:calc(10 * var(--vu));
	--border-color:#DDD;
	--radius:3px;
	--black: rgba(26, 30, 48, 0.85);
	--white: #FFF;
	--blue:#42BFFF;
	--darkblue:#1A1E30;
	--gray: #c0c0c0;
	--lightgray: #BFBFBF;
	--darkgray: #2B2B2B;
	--red:#FF0000;
	--swiper-preloader-color:#ddd;
	--transition-time:0.8s;
	--transition-ease:cubic-bezier(0.22, 1, 0.36, 1);
	--transition:all var(--transition-time) var(--transition-ease);
	--image-hover-filter:brightness(111%) contrast(111%);
	--icon-phone:url("data:image/svg+xml,%3Csvg width='17' height='17' viewBox='0 0 17 17' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M1.36337 6.86592C0.376288 5.07636 0 3.63366 0 2.65922C0 1.68477 0.239412 1.40529 0.48235 1.17951C0.725288 0.953724 1.82077 0.278326 2.00742 0.152367C2.19407 0.0264076 2.90646 -0.218381 3.35321 0.424275C3.79996 1.06693 4.64125 2.35725 5.22126 3.21443C6.13141 4.42856 5.40631 4.96154 5.1721 5.28099C4.74112 5.86883 4.49296 6.01381 4.49296 6.73562C4.49296 7.45743 6.51022 9.50812 6.99257 10.0134C7.47125 10.5148 9.48128 12.2769 10.1041 12.3711C10.7313 12.466 11.571 11.8019 11.7495 11.6336C12.6577 10.9363 13.1703 11.4649 13.5887 11.6947C14.007 11.9245 15.8971 13.1022 16.4828 13.4992C17.034 13.8962 16.9996 14.5098 16.9996 14.5098C16.9996 14.5098 15.8626 16.3143 15.7248 16.5308C15.5525 16.7835 15.1391 17 14.2088 17C13.2786 17 12.2847 16.8301 9.92255 15.531C7.98978 14.4681 6.14732 12.8036 5.18262 11.8291C4.18346 10.8547 2.4909 8.91011 1.36337 6.86592Z' fill='%232B2B2B'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M1.36337 6.86592C0.376288 5.07636 0 3.63366 0 2.65922C0 1.68477 0.239412 1.40529 0.48235 1.17951C0.725288 0.953724 1.82077 0.278326 2.00742 0.152367C2.19407 0.0264076 2.90646 -0.218381 3.35321 0.424275C3.79996 1.06693 4.64125 2.35725 5.22126 3.21443C6.13141 4.42856 5.40631 4.96154 5.1721 5.28099C4.74112 5.86883 4.49296 6.01381 4.49296 6.73562C4.49296 7.45743 6.51022 9.50812 6.99257 10.0134C7.47125 10.5148 9.48128 12.2769 10.1041 12.3711C10.7313 12.466 11.571 11.8019 11.7495 11.6336C12.6577 10.9363 13.1703 11.4649 13.5887 11.6947C14.007 11.9245 15.8971 13.1022 16.4828 13.4992C17.034 13.8962 16.9996 14.5098 16.9996 14.5098C16.9996 14.5098 15.8626 16.3143 15.7248 16.5308C15.5525 16.7835 15.1391 17 14.2088 17C13.2786 17 12.2847 16.8301 9.92255 15.531C7.98978 14.4681 6.14732 12.8036 5.18262 11.8291C4.18346 10.8547 2.4909 8.91011 1.36337 6.86592Z' fill='%232B2B2B'/%3E%3C/svg%3E%0A");
	--icon-pin:url("data:image/svg+xml,%3Csvg width='20' height='26' viewBox='0 0 20 26' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M10.2703 0C4.89699 0 0.540527 4.24105 0.540527 9.36C0.540527 17.1779 10.2703 25.48 10.2703 25.48C10.2703 25.48 20 17.1779 20 9.36C20 4.24125 15.6437 0 10.2703 0ZM10.2703 12.48C8.4806 12.48 7.02701 11.0647 7.02701 9.36C7.02701 7.65511 8.48039 6.24 10.2703 6.24C12.0599 6.24 13.5135 7.65517 13.5135 9.36C13.5135 11.0648 12.0599 12.48 10.2703 12.48Z' fill='%232A2A2A'/%3E%3C/svg%3E%0A");
	--icon-close:url("data:image/svg+xml,%3Csvg width='22' height='22' viewBox='0 0 22 22' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M22 11C22 17.0751 17.0751 22 11 22C4.92487 22 0 17.0751 0 11C0 4.92487 4.92487 0 11 0C17.0751 0 22 4.92487 22 11ZM6.48293 7.90938C6.08902 7.51547 6.08902 6.87683 6.48293 6.48293C6.87683 6.08903 7.51547 6.08903 7.90937 6.48293L11 9.57356L14.0906 6.48293C14.4845 6.08903 15.1232 6.08903 15.5171 6.48293C15.911 6.87683 15.911 7.51547 15.5171 7.90938L12.4264 11L15.5171 14.0906C15.911 14.4845 15.911 15.1232 15.5171 15.5171C15.1232 15.911 14.4845 15.911 14.0906 15.5171L11 12.4264L7.90937 15.5171C7.51547 15.911 6.87683 15.911 6.48293 15.5171C6.08902 15.1232 6.08902 14.4845 6.48293 14.0906L9.57355 11L6.48293 7.90938Z' fill='%23C7C7CC' /%3E%3C/svg%3E%0A");
}

@media (min-width: 990px)
{
	:root
	{
		--vu:20px;
		--font-size: 16px;
		--header-height:calc(5 * var(--vu));
		--gap:30px;
	}
}

*
{
	-webkit-touch-callout: none;
	-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}

html
{
	scroll-behavior: smooth;
	width: 100vw;
	overflow-x: hidden;
}

body
{
	font-family:var(--primary-font);
	font-size:var(--font-size);
	font-weight: 400;
	color:var(--black);
	display: flex;
	flex-direction: column;
	background-color:var(--white);
}

main
{
	flex: 1 0 auto;
	margin-top:var(--header-height);
}

footer
{
	flex-shrink: 0;
}

a
{
	color:var(--black);
	text-decoration: none;
	-webkit-tap-highlight-color: transparent;
}

h1,
h2,
h3,
h4,
.h1,
.h2,
.h3,
.h4
{
	font-weight: 500;
	line-height: 1.3;
	margin-bottom: calc(1 * var(--vu));
}

h1,
.h1
{
	font-size: 24px;
	line-height: 1.4;
	font-weight: 600;
}

h2,
.h2
{
	font-size: 18px;
	line-height: 1.4;
	font-weight: 600;
}

ul
{
	padding-left: 18px;
}

.page-title
{
	line-height: calc(3 * var(--vu));
	margin-left: -2px;
}

.section-title
{
	line-height: calc(3 * var(--vu));
	margin-left: -2px;
}

b
{
	font-weight: 500;
}

p
{
	margin-bottom: 10px;
}

li p
{
	margin-bottom: 0;
}

textarea
{
	resize: none;
}

picture source
{
	display: none;
}

@media (max-width: 990px)
{
	html
	{
	}
}

@media (min-width: 990px)
{
	h1,
	.h1
	{
		font-size: 40px;
	}
	
	h2,
	.h2
	{
		font-size: 24px;
	}
	
	.section-title
	{
		line-height: calc(2 * var(--vu));
	}
}

/*Сетка*/
.grid
{
	display: grid;
	grid-template-columns: repeat(6, 1fr);
	gap:var(--gap);
}

.col-1
{
	grid-column: span 1;
}

.col-2
{
	grid-column: span 2;
}

.col-3
{
	grid-column: span 3;
}

.col-4
{
	grid-column: span 4;
}

.col-5
{
	grid-column: span 5;
}

.col-6
{
	grid-column: span 6;
}

.order-1
{
	order: 1;
}

.order-2
{
	order: 2;
}

.order-3
{
	order: 3;
}

.order-4
{
	order: 4;
}

.order-5
{
	order: 5;
}

.order-6
{
	order: 6;
}

.order-7
{
	order: 7;
}

@media (min-width: 990px)
{
	.grid
	{
		grid-template-columns: repeat(12, 1fr);
		gap:var(--gap);
	}
	
	.grid-9
	{
		grid-template-columns: repeat(9, 1fr);
	}
	
	.col-lg-1
	{
		grid-column: span 1;
	}
	
	.col-lg-2
	{
		grid-column: span 2;
	}
	
	.col-lg-3
	{
		grid-column: span 3;
	}
	
	.col-lg-4
	{
		grid-column: span 4;
	}
	
	.col-lg-5
	{
		grid-column: span 5;
	}
	
	.col-lg-6
	{
		grid-column: span 6;
	}
	
	.col-lg-7
	{
		grid-column: span 7;
	}
	
	.col-lg-8
	{
		grid-column: span 8;
	}
	
	.col-lg-9
	{
		grid-column: span 9;
	}
	
	.col-lg-10
	{
		grid-column: span 10;
	}
	
	.col-lg-11
	{
		grid-column: span 11;
	}
	
	.col-lg-12
	{
		grid-column: span 12;
	}
	
	.order-lg-1
	{
		order: 1;
	}
	
	.order-lg-2
	{
		order: 2;
	}
	
	.order-lg-3
	{
		order: 3;
	}
	
	.order-lg-4
	{
		order: 4;
	}
	
	.order-lg-5
	{
		order: 5;
	}
	
	.order-lg-6
	{
		order: 6;
	}
	
	.order-lg-7
	{
		order: 7;
	}
}

/*Отступы*/
.mt-5
{
	margin-top: 5px !important;
}

/* Выравнивание*/
.align-items-center
{
	align-items: center;
}

.align-self-center
{
	align-self: center;
}

.justify-items-right
{
	justify-content: right;
}

.text-center
{
	text-align: center;
}

.text-right
{
	text-align: right;
}

/*Контейнер*/
.container
{
	width: calc(100vw - var(--indent)*2);
	margin-left: auto;
	margin-right: auto;
	height: 100%;
	/*outline: 1px solid rgba(152, 152, 152, 0.25);*/
}

@media (min-width: 990px)
{
	.container
	{
		width: calc(100vw - 160px);
	}
}

@media (min-width: 1280px)
{
	.container
	{
		width: 1240px;
	}
}

/*Разное*/
body.preload *
{
	/*animation-duration: 0s !important;*/
	/*-webkit-animation-duration: 0s !important;*/
	/*transition: all 0s;*/
}

.btn
{
	display: grid;
	align-content: center;
	justify-content: center;
	height: calc(2 * var(--vu));
	font-family:var(--primary-font);
	font-size: 16px;
	letter-spacing: 1px;
	line-height: 1;
	text-transform: uppercase;
	border: none;
	background-color:var(--darkblue);
	color:var(--white);
	/*+border-radius: 100px;*/
	-moz-border-radius: 100px;
	-webkit-border-radius: 100px;
	-khtml-border-radius: 100px;
	border-radius: 100px;
	padding-left: calc(1 * var(--vu));
	padding-right: calc(1 * var(--vu));
}

.btn-outline
{
	display: grid;
	align-content: center;
	justify-content: center;
	border: 1px solid black;
	height: calc(5 * var(--vu));
	font-size: 16px;
	text-transform: uppercase;
	font-weight: bold;
	letter-spacing: 0.5px;
}

.enhance-img
{
	image-rendering: auto;
	image-rendering: crisp-edges;
	image-rendering: pixelated;
	image-rendering: -webkit-optimize-contrast;
}

.fit-cover
{
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.fit-contain
{
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.border-radius
{
	/*+border-radius:var(--radius);*/
	-moz-border-radius: var(--radius);
	-webkit-border-radius: var(--radius);
	-khtml-border-radius: var(--radius);
	border-radius:var(--radius);
}

.cursor-pointer
{
	cursor: pointer;
}

.underline
{
	text-decoration: underline;
}

.default-page
{
	margin-top: calc(2 * var(--vu));
}

.no-scroll
{
	overflow: hidden !important;
}

.no-border
{
	border: none !important;
}

*:disabled
{
	opacity: 0.8;
}

.d-flex
{
	display: flex;
}

.d-grid
{
	display: grid;
}

.text-uppercase
{
	text-transform: uppercase;
}

:focus-visible
{
	outline: none;
}

.menu-opened,
.prevent-scroll
{
	overflow: hidden !important;
}

.social-icon
{
	display: grid;
	align-content: center;
	justify-content: center;
	width: 24px;
	height: 24px;
}

@media (max-width: 340px)
{
	.xsmobile-hide
	{
		display: none !important;
	}
}

@media (max-width: 990px)
{
	.mobile-hide
	{
		display: none !important;
	}
	
	.mobile-full-width
	{
		width: 100vw;
		max-width: none;
		margin-left: calc(var(--indent) * -1);
		margin-right: calc(var(--indent) * -1);
	}
}

@media (min-width: 990px)
{
	.desktop-hide
	{
		display: none !important;
	}
	
	.btn
	{
		height: calc(3 * var(--vu));
		padding-left: calc(1 * var(--vu));
		padding-right: calc(1 * var(--vu));
		width: 255px;
	}
	
	.btn-outline
	{
		height: calc(3 * var(--vu));
		width: 255px;
	}
	
	.btn.small
	{
		font-size: 14px;
		height: calc(2 * var(--vu));
		width: 220px;
	}
	
	.btn-w-icon picture img
	{
		height: calc(1.2 * var(--vu));
	}
}

/*Таблицы*/
.table
{
	display: grid;
}

.th
{
	font-weight: bold;
}

.tr
{
	border-bottom:1px solid var(--gray);
	display: grid;
	grid-template-columns:repeat(var(--columns-xs), 1fr);
	align-content: center;
	min-height: calc(4 * var(--vu));
}

.td
{
	display: grid;
	padding: 5px 0;
}

@media (min-width: 990px)
{
	.tr
	{
		grid-template-columns:repeat(var(--columns-lg), 1fr);
		min-height: calc(2 * var(--vu));
	}
	
	.tr:has(.id)
	{
		grid-template-columns: 100px repeat(calc(var(--columns-lg) - 1), 1fr);
	}
}

/* Подчёркнутые ссылки*/
.hover-underline
{
	position: relative;
}

.hover-underline:before
{
	position: absolute;
	content: '';
	height: 1px;
	width: 100%;
	background-color:var(--black);
	bottom: 0;
	left: 0;
	transform: scaleX(0);
	transform-origin: bottom left;
	transition:transform var(--transition-time) ease;
}

.hover-underline:hover:before
{
	transform: scaleX(1);
}

/*Кастомный 
Скроллбар*/
.custom-scroll::-webkit-scrollbar
{
	width: 5px;
}

.custom-scroll::-webkit-scrollbar-track
{
	background:var(--lightgray);
}

.custom-scroll::-webkit-scrollbar-thumb
{
	background:var(--gray);
}

/*header*/
.page-header
{
	position: fixed;
	height:var(--header-height);
	width: 100vw;
	z-index: 3;
	background-color:var(--darkblue);
}

.page-header__logo
{
	line-height: 0;
}

.page-header__burger
{
	display: grid;
	justify-items: right;
}

@media (max-width: 990px)
{
	.page-header__logo svg
	{
		width: 85px;
		height: auto;
	}
	
	.page-header__burger
	{
		align-self: center;
		justify-self: right;
	}
}

@media (min-width: 990px)
{
	.page-header
	{
		height:var(--header-height);
		transition:height var(--transition-time) ease;
	}
	
	.page-header.minimized
	{
		height:var(--minimized-header-height);
	}
}

/*Футер*/
.page-footer
{
	padding-top: calc(2 * var(--vu));
	padding-bottom: calc(2 * var(--vu));
	font-size: 11px;
	background-color: #1A1E30;
	color:var(--white);
}

.footer__logo
{
	line-height: 0;
}

.footer__code
{
	font-size: 70%;
	opacity: 0.3;
	margin-top: 15px;
}

@media (max-width: 990px)
{
	.footer__logo
	{
		text-align: center;
	}
	
	.footer__logo-svg
	{
		width: 70px;
		height: auto;
	}
	
	.footer__company
	{
		text-align: center;
	}
}

@media (min-width: 990px)
{
	.page-footer
	{
		padding-top: calc(3 * var(--vu));
		padding-bottom: calc(3 * var(--vu));
		font-size: 15px;
	}
	
	.footer__logo
	{
	}
	
	.footer__logo-svg
	{
		width: 122px;
		height: auto;
	}
	
	.footer__company
	{
		text-align: right;
	}
}

/*Десктоп меню*/
@media (min-width: 990px)
{
	.desktop-menu
	{
		display: flex;
		gap: 30px;
		justify-self: right;
	}
	
	.desktop-menu .main-menu__item
	{
		color:var(--white);
		font-size:var(--font-size);
		display: flex;
		align-items: center;
		height: 42px;
	}
	
	.desktop-menu .accent
	{
		color:var(--black);
		background-color:var(--white);
		/*+border-radius: 35px;*/
		-moz-border-radius: 35px;
		-webkit-border-radius: 35px;
		-khtml-border-radius: 35px;
		border-radius: 35px;
		padding-left:var(--vu);
		padding-right:var(--vu);
	}
}

/*Мобильное меню*/
@media (max-width: 990px)
{
	.menu
	{
		position: fixed;
		height: 35vh;
		width: 100vw;
		top: 0;
		left: 0;
		display: flex;
		z-index: 1;
		align-items: center;
		background:var(--darkblue);
		color:var(--white);
		flex-direction: column;
		visibility: hidden;
		will-change:clip-path;
		transition:var(--transition);
		transition-timing-function:var(--transition-ease);
		transition-duration: 0.8s;
		transform: scaleY(0);
		transform-origin: top;
	}
	
	.menu.opened
	{
		visibility: visible;
		transform: scaleY(1);
	}
	
	.menu___content
	{
		margin-top: calc(var(--header-height) + 50px);
	}
	
	.menu__item
	{
		font-size: 19px;
		text-transform: uppercase;
		font-weight: 500;
		text-align: right;
		display: block;
		color:var(--white);
		margin-bottom: 15px;
	}
	
	/*Бургер*/
	.menu-toggler
	{
		height: 25px;
		width: 25px;
		position: relative;
		cursor: pointer;
	}
	
	.menu-toggler__bar
	{
		display: block;
		position: absolute;
		margin: auto;
		left: 0;
		right: 0;
		width: 100%;
		height: 2px;
		background-color:var(--white);
		transition: var(--transition);
		transition-duration: 0.2s;
		transform-origin: center;
	}
	
	.menu-toggler__bar-top
	{
		transform: translate(0, 5px);
	}
	
	.menu-toggler__bar-bottom
	{
		transform: translate(0, 13px);
	}
	
	.menu-opened .menu-toggler__bar-top
	{
		transform: rotate(45deg) translateX(5px) translateY(5px);
	}
	
	.menu-opened .menu-toggler__bar-bottom
	{
		transform: rotate(-45deg) translateX(-5px) translateY(5px);
	}
}

/*Формы - инпуты*/
.form .grid
{
	row-gap: 0;
}

.form__h3
{
	margin-top: calc(2 * var(--vu));
	font-weight: 600;
	margin-bottom: 15px;
}

.form__spacer
{
	grid-column: span 6;
	height: calc(1.3 * var(--vu));
}

.spacer-x2
{
	height: calc(2.5 * var(--vu));
}

.form__field
{
	position: relative;
	font-size: 16px;
}

.form__field-date
{
	display: grid;
	grid-template-columns: auto auto;
	align-items: center;
}

.form__input
{
	width: 100%;
	height: calc(2 * var(--vu));
	border: none;
	border-bottom:1px solid var(--black);
	border-radius: 0px;
	padding-left: 0;
	padding-right: 0;
	color:var(--black);
	background-color:var(--white);
	margin-bottom: 15px;
}

.form__field-date .form__label
{
	height: calc(2 * var(--vu));
	display: flex;
	align-items: center;
	border-bottom:1px solid var(--black);
	color:var(--darkgray);
	margin-bottom: 15px;
	letter-spacing: -0.5px;
}

.form__field-date .form__input
{
	text-align: right;
	justify-self: right;
	-webkit-appearance: none;
	-moz-appearance: none;
}

.form__select
{
	-webkit-appearance: none;
	-moz-appearance: none;
}

.form__textarea
{
	width: 100%;
	min-height: 130px;
	border: 1px dotted #CECECE;
	/*+border-radius: 3px;*/
	-moz-border-radius: 3px;
	-webkit-border-radius: 3px;
	-khtml-border-radius: 3px;
	border-radius: 3px;
}

.error-message
{
	position: absolute;
	top: calc(2 * var(--vu));
	left: 0;
	z-index: 2;
	font-size: 10px;
	color:var(--red);
}

.form__checkbox
{
	width: 15px;
	height: 15px;
	accent-color: var(--black);
}

.form__note
{
	color:var(--red);
	font-weight: bold;
}

.add-row
{
	margin-top: calc(1 * var(--vu));
	margin-bottom: calc(2 * var(--vu));
	font-weight: bold;
}

.delete-row
{
	display: grid;
	grid-template-columns: 20px auto;
	align-items: center;
	height: calc(1 * var(--vu));
	color:var(--red);
}

.clone-template
{
	margin-top: 0 !important;
}

.clone-template .delete-row
{
	display: none;
}

.repeated-row
{
	margin-top: calc(2 * var(--vu));
}

input[type="checkbox" i]
{
	cursor: pointer;
	margin: 0 10px 0 0;
}

input::placeholder
{
	color:var(--darkgray);
}

button[type="submit"]
{
	cursor: pointer;
}

.form__submit-container
{
	display: grid;
	justify-items: center;
	margin-top: calc(2* var(--vu));
	margin-bottom: calc(2 * var(--vu));
}

/*Не  iOS девайсы*/
@supports not (-webkit-touch-callout: none)
{
	.form__input
	{
		font-size: 12px;
	}
}

@media (max-width: 990px)
{
	input::placeholder,
	.form__label
	{
		font-size: 12px;
	}
	
	.form__field-date .form__input
	{
		width: 100%;
		min-width: 100px;
	}
	
	.form__input
	{
		font-size: 16px;
	}
	
	.delete-work
	{
		margin-bottom: calc(2 * var(--vu));
	}
	
	.form__agree
	{
		font-size: 13px;
		display: grid;
		grid-template-columns: 20px auto;
		gap: 10px;
	}
}

@media (min-width: 990px)
{
	.form__input
	{
		font-size: 16px;
	}
	
	.form__input,
	.form__field-date .form__label
	{
		margin-bottom: 20px;
	}
	
	.form__spacer
	{
		grid-column: span 9;
		height: calc(1.3 * var(--vu));
	}
	
	.spacer-x2
	{
		height: calc(2 * var(--vu));
	}
	
	.delete-work
	{
		height: calc(2 * var(--vu));
	}
}

/*
Анимации*/
@keyframes fade-in
{
	from
	{
		opacity: 0;
	}
	
	to
	{
		opacity: 1;
	}
}

@keyframes rotate
{
	from
	{
		transform: rotate(0deg);
	}
	
	to
	{
		transform: rotate(360deg);
	}
}
