@import url('https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,300;0,400;0,500;0,600;0,700;0,800;1,300;1,400&display=swap');

:root {
	--color-1: #4c3a6c;
	--color-1-2: #33244f;
	--color-2: #bbb0ce;
	--color-2-2: #9583b5;
	--color-3: #6c6c6c;
	--color-line: #f7f7f7;
}

@view-transition {navigation: auto;}

/* Общие стили */

*, ::after, ::before {margin:0; padding:0; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box;}

html { 
	/* тест более глобального применения отступов. У .row пока отключены */
	--bs-gutter-x: 1.5rem;
	--bs-gutter-y: 1.5rem;
}

body {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
	font-family: 'Montserrat', sans-serif;
	font-size: 18px;
	/* background: #eee; */
	color: #222;
	overflow-x: hidden;
}

a {
	color: var(--color-1);
	text-decoration: none; 
	transition: all 0.3s ease;
	-o-transition: all 0.3s;
	-webkit-transition: all 0.3s ease 0s;
}

a:hover {text-decoration: underline;}

a[href^="tel"] {text-decoration: none !important; cursor: default; white-space: nowrap;}
a[href^="tel"]:hover { color: inherit !important;}

img {max-width: 100%; height: auto;}
a img {border: none;}
	
h1, h2, h3, strong {font-weight: 600;}

table {width: 100%; border-collapse: collapse;}		  

input, textarea, select, button {font-family: 'Montserrat', sans-serif;}

*:focus, input:focus, button:focus {outline: none;}

input, button {  
	transition: color 0.3s ease, background-color 0.3s ease;
	-o-transition: color 0.3s, background-color 0.3s;
	-webkit-transition: color 0.3s ease 0s, background-color 0.3s ease 0s;
}

input, select, textarea {padding: 10px 20px; max-width: 100%; border: 1px solid #eee; font-size: 1rem;}

@media (max-width: 576px) { body {background: #fff;} }

  
/* Блочная верстка */

.container, .container-fluid {
	width: 100%;
	/*max-width: 1320px;*/ 
	margin-left: auto; 
	margin-right: auto;   
	padding-right: var(--bs-gutter-x, 0.75rem);
	padding-left: var(--bs-gutter-x, 0.75rem);
}

@media (max-width: 576px) { 
	.container {
		max-width: 100%; 
		padding-right: var(--bs-gutter-x, 1.5rem); 
		padding-left: var(--bs-gutter-x, 1.5rem);
	} 
}
@media (min-width: 576px)  { .container {max-width: 540px;} }
@media (min-width: 768px)  { .container {max-width: 720px;} }
@media (min-width: 992px)  { .container {max-width: 960px;} }
@media (min-width: 1200px) { .container {max-width: 1140px;} }
@media (min-width: 1400px) { .container {max-width: 1320px;} }	
@media (min-width: 1600px) { .container {max-width: 1560px;} }
@media (min-width: 1800px) { .container {max-width: 1760px;} }
@media (min-width: 1921px) { .container {max-width: 1880px;} }

.container-fluid {max-width: none;}

.row {
	/* --bs-gutter-x: 1.5rem;
	--bs-gutter-y: 0; */
	display: flex;
	flex-wrap: wrap;
	/* margin-bottom: calc(var(--bs-gutter-y) * -1); */
	row-gap: var(--bs-gutter-y);
	margin-right: calc(var(--bs-gutter-x) * -.5);
	margin-left: calc(var(--bs-gutter-x) * -.5);
}

/* .gutter {
    --bs-gutter-y: 1rem;
} */

.align-items-center {
	align-items: center !important;
}

.justify-content-center {
	justify-content: center !important;
}

.row > * {
	box-sizing: border-box;
	flex-shrink: 0;
	width: 100%;
	max-width: 100%;
	padding-right: calc(var(--bs-gutter-x) * .5);
	padding-left: calc(var(--bs-gutter-x) * .5);
	order: 10;
}

.col {flex: 1 0 0%;}
.row-cols-auto > * {flex: 0 0 auto; width: auto;}
.row-cols-1 > * {flex: 0 0 auto; width: 100%;}
.row-cols-2 > * {flex: 0 0 auto; width: 50%;}
.row-cols-3 > * {flex: 0 0 auto; width: 33.3333333333%;}
.row-cols-4 > * {flex: 0 0 auto; width: 25%;}
.row-cols-5 > * {flex: 0 0 auto; width: 20%;}
.row-cols-6 > * {flex: 0 0 auto; width: 16.6666666667%;}

.col-1  {flex: 0 0 auto; width: 8.33%;}
.col-2  {flex: 0 0 auto; width: 16.66%;}
.col-3  {flex: 0 0 auto; width: 25%;}
.col-4  {flex: 0 0 auto; width: 33.33%;}
.col-5  {flex: 0 0 auto; width: 41.66%;}
.col-6  {flex: 0 0 auto; width: 50%;}
.col-7  {flex: 0 0 auto; width: 58.33%;}
.col-8  {flex: 0 0 auto; width: 66.66%;}
.col-9  {flex: 0 0 auto; width: 75%;}
.col-10 {flex: 0 0 auto; width: 83.33%;}
.col-11 {flex: 0 0 auto; width: 91.66%;}
.col-12 {flex: 0 0 auto; width: 100%;}

.mb-0 {margin-bottom: 0 !important;}
.mb-15 {margin-bottom: 15px !important;}
.mb-30 {margin-bottom: 30px !important;}
.mb-50 {margin-bottom: 50px !important;}
.mb-auto {margin-bottom: auto !important;}
.mt-auto {margin-top: auto !important;}
.mt-30 {margin-top: 30px !important;}
.mt-50 {margin-top: 50px !important;}

@media (max-width: 992px)  { 
	.row-cols-3 > *, .col-3 {width: 50%;} 
}

@media (max-width: 576px)  {
	.row-cols-2 > *, .row-cols-3 > *, .col-3 {width: 100%;} 
	
}
	

/* ---------- HEADER ---------- */

#mobile-head {
    display: none;
    position: sticky;
    z-index: 999;
    top: 0;
	background: #fff;
    border-bottom: 1px solid #eee;
}

.mobile-head {
    height: 60px;
}

.mobile-head > * {
    display: flex;
    align-items: center;
    height: 100%;
}

#mobile-head-button {
    justify-content: flex-end;
}

#mobile-head-logo a {
    display: flex;
    align-items: center;
    height: 100%;
    padding: 10px 0;
	justify-content: flex-start;
	height: 60px;
}

#mobile-head-logo img {
    display: block;
    /* max-width: 200px; */
    width: auto;
	width: 100%;
    max-width: 200px;
    max-height: 100%;
	max-height: 40px;
}

.mobile-head #mobile-head-button:before {
    content: "\e968";
    font-family: "icomoon";
    /* background: #007c88; */
    color: var(--color-1);
    border: 1px solid #eee;
    font-size: 1.2rem;
    min-width: 45px;
    line-height: 45px;
    text-align: center;
}

[menu=open] .mobile-head #mobile-head-button:before {
	content: "\ea83";
}

.overlay {
    position: fixed;
    top: 0;
    bottom: 0;
    left: 0;
    width: 100%;
    will-change: transform;
    -webkit-transition: .3s cubic-bezier(.36,.07,.19,.97);
    -o-transition: .3s cubic-bezier(.36,.07,.19,.97);
    transition: .3s cubic-bezier(.36,.07,.19,.97);
    z-index: 80;
    background: rgb(0 0 0 / 20%);
	visibility: hidden;
    opacity: 0;
}

[menu=open] .overlay {
    visibility: visible;
    opacity: 1;
}

[menu=open] body {
    overflow: hidden;
}


body > header {position: relative; z-index: 999; position:-webkit-sticky; position:sticky; top:0; border-bottom: 1px solid var(--color-line); background: #fff; width: 100%;}
	
body.home > header {
    position: absolute;
    background: none;
    border: none;
    color: #fff;
}

body.home > header.fixed {position: fixed; background: #fff; border-bottom: 1px solid var(--color-line); color: inherit;}

#header a {color: inherit;}
#header a[href]:hover {color: var(--color-2);}	

#header i {color: var(--color-1);}

#header-logo {flex: 0 0 200px;}
#header-logo a {display: flex; padding: 15px 0;}
#header-logo svg {fill: var(--color-1); height: 50px; width: 100%; max-width: 200px;}
body.home #header-logo svg {fill: var(--color-2);}
body.home header.fixed #header-logo svg {fill: var(--color-1);}

  
.menu {display: flex;}
.menu li {list-style: none;}
.menu > li > a {display: block; text-decoration: none; white-space: nowrap;}
.menu > li.menu-item-has-children > a:after {
    content: "\ec19";
    font-family: 'icomoon';
    font-size: 0.6rem;
    margin-left: 10px;
    color: var(--color-2);
}

.menu .sub-menu {
	position: absolute; 
	top: 100%;
	background: rgb(76 58 108 / 95%);
	color: #fff;
	visibility: hidden; 
	opacity: 0; 
	-o-transition: all 0.3s; 
	transition: all 0.3s ease; 
	-webkit-transition: all 0.3s ease 0s;
}

.menu li:hover .sub-menu {visibility: visible; opacity: 1;}

.sub-menu li > a {padding: 15px; display: block; text-decoration: none;}


#header-menu .menu {gap: 15px 30px; padding-left: 50px; font-weight: 500;}
#header-menu .menu > li > a {padding: 30px 0;}



#mobile-search-button, #mobile-menu-button {display: none;}

#mobile-menu-button:before {
    content: "\e968";
    display: inline-block;
    border-radius: 3px;
    font-family: "icomoon";
    color: var(--color-1);
    border: 1px solid var(--color-line);
    font-size: 1.2rem;
    min-width: 40px;
    line-height: 40px;
    text-align: center;
}

#mobile-menu-button.active:before {content: "\ea83";}

#mobile-search-button i {
    width: 45px;
    height: 45px;
    cursor: pointer;
    border: 1px solid #eee;
    border-radius: 7px;
    font-size: 1.2rem;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto;
}




#header-social {flex: 0 0 105px;}
#header-social .social {display: flex; gap: 10px;}
#header-social .social img {display: block;}

	
#header-contact {flex: 0 0 225px;}  
#header-contact .phone {font-weight: 600; font-size: 1.3rem; white-space: nowrap;}
#header-contact .phone a {display: flex; gap: 10px; align-items: center;}

#header-order {flex: 0 0 180px;}
#header-order a {color: #fff;}


@media (max-width: 1600px) {  
	#header-order {flex: 0 0 162px;}
	#header-order .btn {padding: 0 20px; line-height: 36px; font-size: 1rem; font-weight: 500;}

	#header-menu .menu {gap: 15px 25px; padding-left: 30px;}
	li#menu-item-62 {display: none;}
}

@media (max-width: 1400px) {  
	#header-menu .menu {padding-left: 20px;}
	li#menu-item-538 {display: none;}
}

@media (max-width: 1200px) {  
	#header-logo {flex: 0 0 180px;}
	#header-menu .menu {padding-left: 10px; gap: 15px; font-size: 1rem;}

	#header-order {flex: 0 0 134px;}
	#header-order .btn {padding: 0 15px; line-height: 30px; font-size: 0.8rem;}

	#header-social {flex: 0 0 95px;}
}


@media (max-width: 992px) {  

	#mobile-head {display: block;}
	
	body > header, body.home > header {
		position: fixed;
		top: 60px;
		z-index: 99;
		background: #fff;
		width: 70%;
		height: calc(100% - 60px);
		display: flex;
		align-items: center;
		padding: 30px;
		border-right: 1px solid #eee;
		left: -100%;
		transition: all 0.3s ease;
		-o-transition: all 0.3s;
		-webkit-transition: all 0.3s ease 0s;
	}
	
	[menu=open] body > header {left: 0;} 
	
	#header {flex-direction: column;}
	#header > * {text-align: center; flex: 0 0 0%;}
	header #header-logo {display: none;}
	#mobile-menu-button, #mobile-search-button {display: none;}
	#header-menu > div, #header-search .searchform {display: block; position: relative; background: none;}
	#header-menu ul.menu {flex-wrap: wrap; margin-bottom: 15px; gap: 30px; font-size: 1.2rem; padding: 0;}
	#header-menu ul.menu > li {width: 100%;}
	#header-menu ul.menu > li > a {padding: 0; color: initial;}

	.menu > li.menu-item-has-children > a:after, .menu .sub-menu {display: none;}

	#header-search {order: 11;}
	#header-search .searchform {padding: 0;}
	#header-contact .phone a {justify-content: center;}


	#header-social .social {justify-content: center;}

	#header-order .buttons {justify-content: center;}
	#header-order .btn {padding: 0 20px; line-height: 36px; font-size: 1rem;}
}

@media (max-width: 576px) {
	body > header, body.home > header {width: 100%; border-right: none;}
}


@media (max-width: 480px) {
	input, select, textarea {padding: 10px;}
	body > header, body.home > header {padding: 30px 0;}
}


@media (max-width: 380px) {
	.mobile-head {height: 50px;}
	body > header, body.home > header {top: 50px; height: calc(100% - 50px);}
	#mobile-head-logo a {height: 50px;}
	.mobile-head #mobile-head-button:before {min-width: 40px; line-height: 40px; font-size: 1rem;}
}