:root {
	--dark: #121212;
	--blue: #37A9E0;
	--orange: #fbba00;
	--green: #67a82f;
	--cyan: #00bcd4;
	--blue-dark: #101628;
	--blue-cobalt: #005595;
	--blue-slate: #494c64;
	--blue-silver: #99a9b5;
	--blue-steel: #4c82c3;
	--green-apple: #93c020;
	--dark-iris: #3c3950;
	--dark-slate: #393d50;
	--dark-cool: #454b5f;
	--font-montserrat: 'Montserrat', sans-serif;
	--font-soure-san: "Source Sans 3", sans-serif;
}

body {
	font-family: var(--font-soure-san);
	color: var(--blue-dark);
	background: var(--bs-white);
	font-size: 16px;
	line-height: 25px;
	font-weight: 400;
	-ms-text-size-adjust: 100%;
    -webkit-text-size-adjust: 100%;
}

a,
a::after,
a::before,
.btn,
.btn > span,
.btn::before,
.btn::after,
.em2-animate,
.em2-animate::before,
.em2-animate::after{
	-webkit-transition: all ease .3s;
	-moz-transition: all ease .3s;
	-ms-transition: all ease .3s;
	-o-transition: all ease .3s;
	transition: all ease .3s;
}
button:focus, .btn:focus,
button:active, .btn:active{
	outline: none;
	box-shadow: none;
}
a{
	text-decoration: none;
}
.wrapper a:not(.btn){
	color: var(--dark);
}
/* ICONS */
@font-face {
	font-family: 'thegem-icons';
	src:url('../fonts/thegem-icons.eot?-yiqymz');
	src:url('../fonts/thegem-icons.eot?#iefix-yiqymz') format('embedded-opentype'),
		url('../fonts/thegem-icons.woff?-yiqymz') format('woff'),
		url('../fonts/thegem-icons.ttf?-yiqymz') format('truetype'),
		url('../fonts/thegem-icons.svg?-yiqymz#thegem-icons') format('svg');
	font-weight: normal;
	font-style: normal;
}

@font-face {
	font-family: 'thegem-socials';
	src:url('../fonts/thegem-socials.eot');
	src:url('../fonts/thegem-socials.eot?#iefix') format('embedded-opentype'),
		url('../fonts/thegem-socials.ttf') format('truetype'),
		url('../fonts/thegem-socials.woff') format('woff'),
		url('../fonts/thegem-socials.svg#thegem-socials') format('svg');
	font-weight: normal;
	font-style: normal;
}

/* FONTS */
h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6,
.title-xlarge{
	font-family: var(--font-montserrat);
	font-weight: 700;
}
main.wrapper h1,
main.wrapper .h1{
	font-size: 50px;
	line-height: 69px;
}
main.wrapper h2,
main.wrapper .h2{
	font-size: 36px;
	line-height: 53px;
}
main.wrapper h3,
main.wrapper .h3 {
	font-size: 28px;
	line-height: 42px;
}
main.wrapper h4,
main.wrapper .h4 {
	font-size: 24px;
	line-height: 38px;
}
main.wrapper h5,
main.wrapper .h5 {
	font-size: 19px;
	line-height: 30px;
}
main.wrapper h6,
main.wrapper .h6 {
	font-size: 16px;
	line-height: 25px;
}
p {
	margin: 1rem 0;
}
main.wrapper .title-xlarge {
	text-transform: uppercase;
	letter-spacing: 0.05em;
	font-size: 80px;
	line-height: 90px;
}

/* Header */
header{
	position: relative;
	z-index: 9;
	background: #fff;
	padding: 20px 0px;
	a.logo{
		display: inline-block;
	}
}
body.em2-page-slider header{
	position: fixed;
	width: 100%;
	background: transparent;
}
body.em2-page-slider header.is-scrolled,
header.is-scrolled{
	position: fixed;
	width: 100%;
	top: 0px;
	animation: headerSticky 0.5s ease-in-out;
	background: rgba(255, 255, 255, 0.95);
}
body:not(.em2-page-slider) header,
header.is-scrolled{
	-moz-box-shadow: 0 0 2px 0 rgba(56, 69, 84, 0.2);
    -webkit-box-shadow: 0 0 2px 0 rgba(56, 69, 84, 0.2);
    box-shadow: 0 0 2px 0 rgba(56, 69, 84, 0.2);
}
header.is-scrolled a.logo{
	max-width: 77px;
}

a.btn-arrow-top{
	position: fixed;
    right: 50px;
    bottom: 50px;
    z-index: 1000;
    opacity: 0;
    visibility: hidden;
	width: 50px;
	height: 50px;
	background: #06060f;
	color: var(--blue-silver);
	display: flex;
	align-items: center;
	justify-content: center;
	& i{
		font-size: 24px;
	}
}
header.is-scrolled a.btn-arrow-top{
	visibility: visible;
	opacity: 1;
}
a.em2-burger{
	display: none;
}
#em2-mainmenu{
	& ul.mainmenu{
		align-items: center;
		& li a{
			font-family: var(--font-montserrat);
			font-size: 14px;
			font-weight: 700;
			text-transform: uppercase;
			position: relative;
			color: var(--dark);
			padding: 0px 15px;
			border: 2px solid transparent;
			line-height: 25px;
			display: inline-flex;
		}
		& li.current-menu-item > a,
		& li.current-menu-parent > a,
		& li a:hover{
			color: var(--blue);
		}
		& li.current-menu-item > a,
		& li.current-menu-parent > a{
			border-color: #f4f6f7;
		}
	}
}
body.em2-page-slider header:not(.is-scrolled) #em2-mainmenu ul.mainmenu{
	& li a{
		color: #fff;
	}
	& li.current-menu-item > a,
	& li.current-menu-parent > a{
		border-color: #fff;
		border-bottom: 2px solid var(--blue);
	}
}
.em2-top-bar{
	background: var(--dark-slate);
	border-bottom: 1px solid var(--blue-slate);
	border-top: 5px solid var(--cyan);
	padding: 10px 0px;
	& .top-bar-inner{
		color: var(--blue-silver);
		display: flex;
		justify-content: flex-end;
		align-items: center;
		gap: 0 70px;
		& ul{
			display: flex;
			margin: 0px;
			font-size: 14px;
			align-items: center;
			gap: 0 34px;
			position: relative;
			&::after{
				content: '';
				position: absolute;
				border-right: 1px solid var(--blue-slate);
				height: calc(100% + 25px);
				right: -35px;
			}
			& li{
				display: inline-flex;
				align-items: center;
				gap: 0 5px;
				&::before{
					font-family: 'thegem-icons';
				    margin-right: 0.33em;
				    vertical-align: top;
				    display: inline-block;
					font-size: 16px;
				}
				&.address::before{
					content: '\e604';
				}
				&.phone::before{
					content: '\e625';
				}
				&.email::before{
					content: '\e607';
				}
			}
		}
		& a{
			color: var(--blue);
		}
		& .btn{
			font-size: 14px;
			text-transform: none;
			color: #fff;
		}
	}
}

/* Burger */
.em2-burger {
	flex-direction: column;
	gap: 5px;
	background: none;
	border: none;
	cursor: pointer;
	padding: 8px;
}
.em2-burger span {
	display: block;
	width: 24px; height: 2px;
	background: var(--blue-dark);
	border-radius: 2px;
	transition: all .3s;
}
.em2-burger.is-open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.em2-burger.is-open span:nth-child(2) { opacity: 0; }
.em2-burger.is-open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
body.em2-page-slider header:not(.is-scrolled) .em2-burger span{
	background: #fff;
}
/* FOOTER */
footer{
	background: var(--blue-dark);
	padding: 15px 0px;
	& .copyright{
		color: #4d575f;
		font-size: 83.86%;
	}
	& ul.footer-social{
		display: flex;
		justify-content: flex-end;
		margin: 0px;
	}
}
.admin-bar footer{
	margin-bottom: 32px;
}
/* CONTENT */
.em2Title, .em2SubTitle{
	text-transform: uppercase;
}
.em2SubTitle, .em2Title.title-light{
	font-weight: 100;
}
.em2Title strong{
	font-weight: 700 !important;
}
#page-preloader {
	position: fixed;
	left: 0;
	right: 0;
	top: 0;
	bottom: 0;
	z-index: 999999;
	opacity: 0.98;
	background: #2c2e3d;
	& .page-preloader-spin {
		position: absolute;
		left: 50%;
		top: 50%;
		z-index: 1001;
		width: 80px;
		height: 80px;
		margin: -40px 0 0 -40px;
		border-radius: 50%;
		-moz-border-radius: 50%;
		-webkit-border-radius: 50%;
		border: 2px solid transparent;
		border-top-color: #2398D3;
		-webkit-animation: PreloaderSpin 2s linear infinite;
		animation: PreloaderSpin 2s linear infinite;
		&::before{
			content: "";
			position: absolute;
			top: 4px;
			left: 4px;
			right: 4px;
			bottom: 4px;
			border-radius: 50%;
			-moz-border-radius: 50%;
			-webkit-border-radius: 50%;
			border: 2px solid transparent;
			border-top-color: #fbba00;
			-webkit-animation: PreloaderSpin 3s linear infinite;
			animation: PreloaderSpin 3s linear infinite;
		}
		&::after {
			content: "";
			position: absolute;
			top: 10px;
			left: 10px;
			right: 10px;
			bottom: 10px;
			border-radius: 50%;
			-moz-border-radius: 50%;
			-webkit-border-radius: 50%;
			border: 2px solid transparent;
			border-top-color: #7BBB42;
			-webkit-animation: PreloaderSpin 1.5s linear infinite;
			animation: PreloaderSpin 1.5s linear infinite;
		}
	}
	&.preloader-loaded{
		visibility: hidden;
		opacity: 0;
		-webkit-transition: all 0.3s ease-out;
		transition: all 0.3s ease-out;
	}
}
/* CONTACT FORM */
.contact-form-style-2 [class*='cf-style2-']{
	position: relative;
	&::before{
		position: absolute;
		right: 20px;
		top: calc(50% - 12px);
		font-size: 24px;
		font-family: 'ElegantIcons';
		color: #b6c6c9;
	}
	&.cf-style2-phone::before{
		content: "\e090";
	}
	&.cf-style2-company::before{
		content: "\e0e3";
	}
	&.cf-style2-name::before{
		content: "\e08a";
	}
	&.cf-style2-email::before{
		content: "\e010";
	}
}
#contact-form-legals p{
	font-size: 9px;
    line-height: 1.5;
    color: var(--blue-silver);
    text-align: justify;
	& a{
		color: var(--blue);
	}
}
/* BTN */
.btn {
	height: 50px;
	border-radius: 3px;
	padding: 0px 25px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-family: var(--font-montserrat);
	font-weight: 700;
	font-size: 19px;
	border: 2px solid #ffffff;
	cursor: pointer;
	position: relative;
	z-index: 1;
	color: #ffffff;
	background: transparent;
	text-transform: uppercase;
	
	
	&:hover{
		background: #ffffff;
	}
}
.btn.size-medium{
	height: 40px;
	padding: 0px 17px;
	font-size: 14px;
}
.btn.size-small{
	height: 30px;
	padding: 0px 14px;
}
.btn.btn-blue-steel:hover{
	color: var(--blue-steel);
}
.btn.btn-dark-cool:hover{
	color: var(--dark-cool);
}
.btn.btn-orange:hover{
	color: var(--orange);
}
.btn.btn-green:hover{
	color: var(--green);
}
.btn.btn-blue-silver{
	border: none;
	background: var(--blue-silver);
	&:hover{
		background: var(--cyan);
	}
}
.btn.btn-reverser{
	&.btn-blue-steel{
		background: var(--blue-steel);
	}
	&.btn-dark-cool{
		background: var(--dark-cool);
	}
	&.btn-orange{
		background: var(--orange);
	}
	&.btn-green{
		background: var(--green);
	}
	&:hover{
		background: transparent !important;
	}
}
.btn.btn-reverser.btn-blue-silver{
	background: var(--cyan);
	&:hover{
		background: var(--blue-silver);
	}
}
/* FORM */
.form-label{
	font-weight: 400;
	color: #ffffff;
	margin-bottom: 5px;
	font-size: 14px;
	line-height: 22px;
}
.form-control{
	height: 50px;
	padding: 10px;
	background: #fff;
	border: none;
	border-radius: 0px;
	-moz-border-radius: 0px;
	-webkit-border-radius: 0px;
	font-weight: 400;
	font-size: 14px;
	line-height: 22px;
	padding: 10px 20px;
}
.form-control[readonly] {
	background: rgba(255,255,255,0.1);
}
.form-select, select.form-control{
	height: 50px;
	border: none;
	border-radius: 0px;
	-moz-border-radius: 0px;
	-webkit-border-radius: 0px;
	background-color: #fff;
	font-weight: 400;
	font-size: 14px;
	line-height: 22px;
	padding: 10px 20px;
}
textarea.form-control{
	min-height: 120px;
}
.form-control::-moz-placeholder{
	color: #46485c;
}
.form-control:-ms-input-placeholder{
	color: #46485c;
}
.form-control::-webkit-input-placeholder{
	color: #46485c;
}
.form-control:focus{
	outline: none;
	box-shadow: 0 0 0 1px var(--blue);
}
.form-check{
	padding-left: 0px;
}
.form-check input.form-check-input{
	visibility: hidden;
	display: none;
}
.form-check label.form-check-label{
	position: relative;
	padding-left: 25px;
	display: inline-block;
}
.form-check label.form-check-label::after{
	position: absolute;
	width: 10px;
	height: 10px;
	left: 5px;
	top: calc(50% - 6px);
	content: '';
	border-radius: 1px;
}
.form-check label.form-check-label::before{
	content: '';
	width: 20px;
	height: 20px;
	border-radius: 4px;
	border: 1px solid var(--neutre-gris-plus);
	display: inline-block;
	position: absolute;
	left: 0px;
	top: calc(50% - 11px);
}
.form-check.form-radio label.form-check-label::before,
.form-check.form-radio label.form-check-label::after{
	border-radius: 100%;
	-moz-border-radius: 100%;
	-webkit-border-radius: 100%;
}
.form-check input:checked~label::after{
    background: var(--orange-primary);
}
/* COMMON */
.not-loading,
.not-loading::before,
.not-loading::after{
	display: none !important;
}
.not-loading.loading{
	display: inline-block !important;
}
.not-loading.failed,
.not-loading.success{
	display: inline-block !important;
}
.not-loading.failed i,
.not-loading.success i{
	animation:none;
	margin-left:3px;
}
.not-loading.success i::before{
	content:'\f00c';
}
.not-loading.failed i::before{
	content:'\f00d';
}
.em2-block{
	margin-bottom: 30px;
}
.vc_row-fluid .wpb_wrapper .em2-block:last-child,
.vc_row-no-padding .wpb_wrapper .em2-block:last-child{
	margin-bottom: 0px;
}
.wpb_column.is-sticky-column,
.is-sticky-column{
	position: sticky;
	top: 130px;
}

/* EFFECT */
@keyframes headerSticky{
	0% {
		position: fixed;
		top: -10;
	}
	100% {
		position: fixed;
		top: 0;
	}
}
@keyframes menuMobile{
	0% {
		left: -100%;
	}
	100% {
		left: 0;
	}
}
@keyframes PreloaderSpin {
	0% {
		-webkit-transform: rotate(0deg);
		-ms-transform: rotate(0deg);
		transform: rotate(0deg);
	}
	100% {
		-webkit-transform: rotate(360deg);
		-ms-transform: rotate(360deg);
		transform: rotate(360deg);
	}
}
/* RESPONSIVE */
@media (min-width: 1400px) {
    .fancybox-slide--iframe .fancybox-content{
		max-width: 994px;
		height: 560px !important;
	}
}
@media (min-width: 768px){
	.em2-burger {
		display: none;
	}
}
@media (max-width: 1030px){
	
}
@media (max-width: 998px){
	
}
@media (max-width: 767px){
	.fancybox-slide--iframe .fancybox-content{
		height: 400px !important;
	}
	main.wrapper h1,
	main.wrapper .h1{
		font-size: calc(1.375rem + 1.5vw);
	}
	main.wrapper h2,
	main.wrapper .h2{
		font-size: calc(1.325rem + 0.9vw);
	}
	main.wrapper h3,
	main.wrapper .h3 {
		font-size: calc(1.3rem + 0.6vw);
	}
	main.wrapper h4,
	main.wrapper .h4 {
		font-size: calc(1.275rem + 0.3vw);
	}
	main.wrapper .title-xlarge{
		font-size: 8vw;
		line-height: 9vw;
	}
	.em2-burger {
		display: flex;
	}
	.mobile-item{
		display: flex;
		flex-wrap: wrap;
		gap: 15px;
		justify-content: flex-end;
		align-items: center;
	}
	.em2-header .col-md-3{
		display: flex;
		justify-content: space-between;
		align-items: center;
	}
	#em2-mainmenu.is-open {
		position: fixed;
		top: 90px; 
		left: 16px; 
		right: 16px;
		background: #fff;
		border-radius: 10px;
		padding: 15px 15px 30px 15px;
		z-index: 499;
		& .custom-item{
			display: none;
		}
	}
	body.em2-page-slider header:not(.is-scrolled) #em2-mainmenu.is-open{
		background: var(--blue-dark);
	}
	#em2-mainmenu.is-open .mainmenu {
		flex-direction: column;
		align-items: stretch;
		gap: 20px;
	}
	#em2-mainmenu.is-open .mainmenu li a {
		justify-content: flex-start;
		padding: 12px 16px;
	}
	#em2-mainmenu.is-open .mainmenu li.em2-menu-button > a{
		width: 100%;
	}
	#em2-mainmenu:not(.is-open) { display: none; }
	.em2-top-bar .top-bar-inner{
		display: block;
		position: relative;
		& ul{
			width: 100%;
			display: block;
			& li{
				width: 100%;
			}
		}
		& .btn{
			position: absolute;
			right: 0px;
			top: calc(50% - 15px);
		}
	}
	.wpb_column.is-sticky-column,
	.is-sticky-column{
		position: static;
	}
	.wpb_wrapper{
		padding: 30px 0px;
	}
	footer{
		& .copyright{
			text-align: center;
		}
		& ul.footer-social{
			justify-content: center;
		}
	}
}
