:root {
	--primary: #4761FF;
	--secondary: #555555;
	--light: #F1F3FA;
	--dark: #1C2035;
}

a {
	text-decoration: none;
}

.bold{
	font-weight: bold;
}
.normal{
	font-weight: normal!important;
}

.size7{
	font-size:calc(0.1rem + 0.3vw)!important;
}
.size8{
	font-size:calc(0.2rem + 0.3vw)!important;
}
.size9{
	font-size:calc(0.3rem + 0.3vw)!important;
}
.size10{
	font-size:calc(0.4rem + 0.3vw)!important;
}
.size11{
	font-size:calc(0.5rem + 0.3vw)!important;
}
.size12{
	font-size:calc(0.6rem + 0.3vw)!important;
}
.size13{
	font-size:calc(0.7rem + 0.3vw)!important;
}
.size14{
	font-size:calc(0.8rem + 0.3vw)!important;
}
.size15{
	font-size:calc(0.9rem + 0.3vw)!important;
}
.size16{
	font-size:calc(1rem + 0.4vw)!important;
}
.size17{
	font-size:calc(1.1rem + 0.4vw)!important;
}
.size18{
	font-size:calc(1.2rem + 0.4vw)!important;
}
.size19{
	font-size:calc(1.3rem + 0.4vw)!important;
}
.size20{
	font-size:calc(1.4rem + 0.4vw)!important;
}
.size21{
	font-size:calc(1.5rem + 0.5vw)!important;
}
.size22{
	font-size:calc(1.6rem + 0.6vw)!important;
}
.size23{
	font-size:calc(1.7rem + 0.7vw)!important;
}
.size24{
	font-size:calc(1.8rem + 0.8vw)!important;
}
.size25{
	font-size:calc(2.0rem + 1.0vw)!important;
}

.fw-medium {
	font-weight: 500;
}

/*** Spinner ***/
#spinner {
	opacity: 0;
	visibility: hidden;
	transition: opacity .5s ease-out, visibility 0s linear .5s;
	z-index: 99999;
}

#spinner.show {
	transition: opacity .5s ease-out, visibility 0s linear 0s;
	visibility: visible;
	opacity: 1;
}

#spinner .spinner-border {
	width: 10rem;
	height: 10rem;
}

/*** Button ***/
.btn {
	transition: .5s;
	font-weight: 500;
}

.btn-primary,
.btn-outline-primary:hover {
	color: var(--light);
}

.btn-secondary,
.btn-outline-secondary:hover {
	color: var(--dark);
}

.btn-square {
	width: 38px;
	height: 38px;
}

.btn-sm-square {
	width: 32px;
	height: 32px;
}

.btn-lg-square {
	width: 48px;
	height: 48px;
}

.btn-square,
.btn-sm-square,
.btn-lg-square {
	padding: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	font-weight: normal;
}
/*** Topbar ***/
.topbar-logo-img{
	max-width: 2rem;
	margin-bottom: .11rem;
}
.topbar-logo{
	text-decoration: none;
}
.topbar-logo-text{
	vertical-align: bottom!important;
	/*color: #3090d1;*/
	font-weight: bold;
	color: transparent;
	-webkit-background-clip: text;
	background-clip: text;
	background-image: linear-gradient(to bottom right, #3194cf, #53b8ef);
	font-size: calc(1.4rem + .4vw);
	
}
/*#53b8ef
#3194cf*/

.topbar h1{
	padding: 1rem 0 1rem 0!important;
	margin: .1rem!important;
	font-size: calc(1.3rem + .9vw);
	font-weight: bold;
}
.phone-sm{
	padding: 0 0 .5rem 0!important;
}
.phone-sm small{
	font-size: calc(.9rem + .5vw);
}


/*** Navbar ***/



.sticky-top {
	top: -100px;
	transition: .5s;
}

.navbar .navbar-nav .nav-link {
	margin-right: 35px;
	padding: 25px 0;
	color: var(--dark);
	font-size: 18px;
	font-weight: 500;
	outline: none;
}

.navbar .navbar-nav .nav-link:hover,
.navbar .navbar-nav .nav-link.active {
	color: var(--primary);
}

.navbar .dropdown-toggle::after {
	border: none;
	content: "\f107";
	font-family: "Font Awesome 5 Free";
	font-weight: 900;
	vertical-align: middle;
	margin-left: 8px;
}

@media (max-width: 767.98px) {
	.navbar .navbar-nav .nav-link  {
		margin-right: 0;
		padding: 10px 0;
	}
	
	.navbar .navbar-nav {
		margin-top: 15px;
		border-top: 1px solid #EEEEEE;
	}
}

@media (min-width: 768px) {
	.navbar .nav-item .dropdown-menu {
		display: block;
		border: none;
		margin-top: 0;
		top: 150%;
		opacity: 0;
		visibility: hidden;
		transition: .5s;
	}
	
	.navbar .nav-item:hover .dropdown-menu {
		top: 100%;
		visibility: visible;
		transition: .5s;
		opacity: 1;
	}
}

/*** Breadcrumb ***/
.breadcrumb{
	font-size:calc(0.65rem + 0.3vw);
	margin: .5rem 0;
}

.breadcrumb-container{
	background: #f8f8f8;
}

/*** Header ***/
.carousel-caption {
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	display: flex;
	align-items: center;
	background: rgba(0, 0, 0, .1);
	z-index: 1;
}

.carousel-control-prev,
.carousel-control-next {
	width: 15%;
}

.carousel-control-prev-icon,
.carousel-control-next-icon {
	width: 3.5rem;
	height: 3.5rem;
	border-radius: 3.5rem;
	background-color: var(--primary);
	border: 15px solid var(--primary);
}

/*@media (max-width: 768px) {
	#header-carousel .carousel-item {
		position: relative;
		min-height: 300px;
	}
	
	#header-carousel .carousel-item img {
		position: absolute;
		width: 100%;
		height: 100%;
		object-fit: cover;
	}
}*/

.page-header {
	background: linear-gradient(rgba(0, 0, 0, .1), rgba(0, 0, 0, .1)), url(../img/carousel-1.jpg) center center no-repeat;
	background-size: cover;
}

.page-header .breadcrumb-item+.breadcrumb-item::before {
	color: var(--light);
}

.page-header .breadcrumb-item,
.page-header .breadcrumb-item a {
	font-size: 18px;
	color: var(--light);
}

/*** Features ***/
.feature-row {
	box-shadow: 0 0 45px rgba(0, 0, 0, .08);
}

.feature-item {
	border-color: rgba(0, 0, 0, .03) !important;
}

/*** Service ***/
.service-item .service-text {
	position: relative;
	width: 100%;
	top: 0;
	left: 0;
	text-align: center;
	background: #FFFFFF;
	box-shadow: 0 0 45px rgba(0, 0, 0, .06);
	transition: .5s;
	z-index: 2;
}

.service-item:hover .service-text {
	top: -1.5rem;
}

.service-item .service-text h5 {
	transition: .5s;
}

.service-item:hover .service-text h5 {
	color: var(--primary);
}

.service-item .service-btn {
	position: absolute;
	width: 80%;
	height: 3rem;
	left: 10%;
	bottom: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	background: #FFFFFF;
	box-shadow: 0 0 45px rgba(0, 0, 0, .07);
	transition: .5s;
	z-index: 1;
}

.service-item:hover .service-btn {
	bottom: -1.5rem;
}

/*** Project ***/
.project-item {
	position: relative;
	border-radius: 8px;
	overflow: hidden;
	box-shadow: 0 0 45px rgba(0, 0, 0, .07);
}

.project-item .project-overlay {
	position: absolute;
	width: 100%;
	height: 100%;
	top: 0;
	left: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	background: rgba(0, 0, 0, .5);
	opacity: 0;
	padding-top: 60px;
	transition: .5s;
}

.project-item:hover .project-overlay {
	opacity: 1;
	padding-top: 0;
}

.project-carousel .owl-nav {
	position: absolute;
	top: -100px;
	right: 0;
	display: flex;
}

.project-carousel .owl-nav .owl-prev,
.project-carousel .owl-nav .owl-next {
	margin-left: 15px;
	width: 55px;
	height: 55px;
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--secondary);
	border-radius: 55px;
	box-shadow: 0 0 45px rgba(0, 0, 0, .15);
	font-size: 25px;
	transition: .5s;
}

.project-carousel .owl-nav .owl-prev:hover,
.project-carousel .owl-nav .owl-next:hover {
	background: var(--primary);
	color: #FFFFFF;
}

@media (max-width: 768px) {
	.project-carousel .owl-nav {
		top: -70px;
		right: auto;
		left: 50%;
		transform: translateX(-50%);
	}
	
	.project-carousel .owl-nav .owl-prev,
	.project-carousel .owl-nav .owl-next {
		margin: 0 7px;
		width: 45px;
		height: 45px;
		font-size: 20px;
	}
}

/*** Team ***/
.team-item {
	position: relative;
	text-align: center;
	box-shadow: 0 0 45px rgba(0, 0, 0, .07);
}

/*** Quote ***/

textarea{
	height: 130px!important;
}


.form-floating{
	padding-top: 0.5rem;
	padding-bottom: 0.5rem;
}

/* Стили для секции, с помощью которой можно добавить к форме файлы */

.form-attach__wrapper{
	position: relative;
	background: #fff;
	border: 3px dashed #ccc;
	border-radius: 5px;
	min-height: 50px;
	align-items: center;
	justify-content: center;
	padding: 4px;
}

.form-attach__wrapper input{
	position: absolute;
	top: 0;
	left: 0;
	bottom: 0;
	width: 100%;
	filter: alpha(opacity=0);
	opacity: 0;
	outline: none;
	cursor: pointer;
	display: block;
}

.form-attach__description{
	width: 100%;
	text-align: center;
	display: flex;
	flex-direction: column;
	align-items: center;
	padding: 15px 10px;
}

.form-attach__description > :first-child{
	font-weight: 700;
}

.form-attach__description > :last-child{
	color: #6c757d;
	font-size: 0.8125rem;
}

.form-attach__items{
	display: flex;
	flex-wrap: wrap;
	flex: 0 0 100%;
}

.form-attach__item{
	flex: 0 0 25%;
	overflow: hidden;
	font-size: 0.75rem;
	border: 1px solid #e0e0e0;
	background: #f5f5f5;
	padding: 1.625rem 0.25rem;
	border-radius: 4px;
	position: relative;
	min-height: 100%;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
}

.form-attach__item-wrapper{
	border: 1px solid #e0e0e0;
	background: #f5f5f5;
	padding: 26px 4px;
	border-radius: 4px;
	position: relative;
	min-height: 100%;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
}

.form-attach__image{
	display: block;
	max-width: 100%;
	height: auto;
	margin-top: auto;
	margin-left: auto;
	margin-right: auto;
	border: 1px solid #e0e0e0;
}

.form-attach__name{
	margin-top: auto;
	max-width: 100%;
	overflow: hidden;
	word-wrap: break-word;
}

.form-attach__size{
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	padding: 3px 6px;
	font-weight: bold;
	text-align: right;
}

.form-attach__link{
	position: absolute;
	top: 0;
	right: 0;
	padding: 0 .375rem 0.5rem;
	color: inherit;
	cursor: pointer;
	float: right;
	font-size: 1.5rem;
	font-weight: 700;
	line-height: 1;
	color: #000;
	text-shadow: 0 1px 0 #fff;
	opacity: .5;
}

.form-attach__item.is-valid .form-attach__item-wrapper{
	border-color: #28a745;
	background-color: #f8fcf9;
}

.form-attach__item.is-invalid .form-attach__item-wrapper{
	border-color: #dc3545;
	background-color: #fefbfb;
}



/* Стили для сообщения об ошибках */
.form-error {
	position: relative;
	padding: .5rem 1rem 0.6rem;
	margin-bottom: 1rem;
	border-radius: .25rem;
	color: #dc3545;
	background-color: #dc35450d;
	border: 1px solid #dc3545;
}

.form-error_hide {
	display: none;
}


/* сообщение об успешной отправки формы */
.form-success {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 1000;
	display: flex;
	text-align: center;
	align-items: center;
	background: rgba(0, 0, 0, .7);
	font-size: 1.25rem;
	border-radius: 0.25rem;
}

.form-success_hide {
	display: none;
}

.form-success__message {
	position: relative;
	padding: 1rem;
	background-color: #fafafa;
}

.form-success__btn {
	font-weight: 400;
	color: #0d6efd;
	text-decoration: underline;
	border: none;
	background-color: transparent;
	display: inline;
	padding: 0;
}




/*** Footer ***/
.footer {
	color: #B0B9AE;
}

.footer .btn.btn-link {
	display: block;
	margin-bottom: 5px;
	padding: 0;
	text-align: left;
	color: #B0B9AE;
	font-weight: normal;
	text-transform: capitalize;
	transition: .3s;
}

.footer .btn.btn-link::before {
	position: relative;
	content: "\f105";
	font-family: "Font Awesome 5 Free";
	font-weight: 900;
	margin-right: 10px;
}

.footer .btn.btn-link:hover {
	color: var(--light);
	letter-spacing: 1px;
	box-shadow: none;
}

.copyright {
	color: #B0B9AE;
}

.copyright {
	background: #111111;
}

.copyright a:hover {
	color: var(--primary) !important;
}

/*Отдельная страница service-menu*/
.service-menu a{
	text-decoration: none;
	font-weight: bold;
}

.box-description{
	max-width: 78%;
}
/**/

/*Отдельная страница service*/
.box-page h3{
	font-size:calc(1.0rem + 0.2vw)!important;
}
.box-page p{
	text-align: justify;
}
.box-page ul{
	margin-top: 0;
	padding-top: 0;
}
.img-full-scheme{
	width: min(600px, 100%);
}

/* Стили для страниц privacy и terms*/
.legal-document h2, .legal-document h3{
	font-size:calc(1.0rem + 0.2vw)!important;
	margin: 1rem 0 .5rem 0!important;
}

.legal-document dl, .legal-document ol, .legal-document ul, .legal-document p{
	margin-bottom: .5rem;
}

/* --- МОБИЛЬНЫЕ УЛУЧШЕНИЯ ДЛЯ СМАРТФОНОВ --- */
@media (max-width: 768px) {
	/* Делаем прикрепленные файлы крупнее (по 2 в ряд на телефоне) */
	.form-attach__item {
		flex: 0 0 50%;
	}
	
	/* Разрешаем тексту занимать всю ширину экрана на телефоне */
	.box-description {
		max-width: 100%;
	}
}

/* --- Плашка уведомления о Cookies (152-ФЗ) --- */
.cookie-banner {
	position: fixed;
	bottom: 0;
	left: 0;
	width: 100%;
	background-color: rgba(33, 37, 41, 0.95);
	z-index: 10000;
	box-shadow: 0 -4px 10px rgba(0,0,0,0.1);
	display: none; /* Скрыто по умолчанию, управляется через JS */
}