@import url('https://fonts.googleapis.com/css2?family=Palanquin:wght@400;700&display=swap');

html{
	font-family: 'Palanquin', Helvetica, Arial, sans-serif;
	font-size: 13px;
	-webkit-font-smoothing: antialiased;
}

:root {
  --content-width: 115rem;
  --mainColor: #00ff00;
}

body{
	opacity: 0;
	transition:  opacity .5s ease-in-out .3s;
}

body.fadeIn{
	opacity: 1;
}

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

}

li {
  list-style: none;
}

a {
  color: currentColor;
  text-decoration: none;
  border-bottom: 1px solid transparent;
  transition: border .3s ease;
}

.underline,
a.active,
a:hover{
  border-bottom: 1px solid #000;
}

.bold,
strong,
b {
  font-weight: 700;
}

img {
  width: 100%;
}

.flex{
  display:-webkit-flex;
  display:flex;
}

.space-btw{
  -webkit-justify-content: space-between;
  justify-content: space-between;
}

.flex-column{
  -webkit-flex-direction:column;
  flex-direction: column;
}

.w_100{
  width:100%;
}

.w_75{
  width:75%;
}

.w_50{
  width:50%;
}

.w_66{
  width:66.666666%;
}

.w_33{
  width:33.333333%;
}

.w_25{
  width:25%;
}

.grid {
  --columns: 16;
  --gutter: 0;
  display: grid;
  grid-gap: var(--gutter);
  grid-template-columns: 1fr;
}

@media screen and (min-width:1024px){
  .grid{
    --gutter: 15rem;
  }
  .grid.c-2{
    grid-template-columns: repeat(2, 1fr);
  }
  .grid.c-2--extended{
    grid-template-columns: 25% 75%;
  }
  .grid.c-3{
    grid-template-columns: repeat(3, 1fr);
  }
  .grid.c-4{
    grid-template-columns: repeat(4, 1fr);
     --gutter: 8rem;
  }
  .grid.c-5{
    grid-template-columns: repeat(5, 1fr);
    grid-gap: 100px;
  }
}

.padding_t-l{
	 padding-top:1.43em;
}

.padding_t-xl{
	 padding-top:7.14em;
}

.margin-s{
  margin:0.7em;
}

.margin_b-s{
  margin-bottom:0.7em;
}

.margin_t-s{
  margin-top:0.7em;
}

.margin-m{
  margin:1.43em;
}

.margin_t-m{
  margin-top:1.43em;
}

.margin_b-m{
  margin-bottom:1.43em;
}

.margin-l{
  margin:3.57em;
}

.margin_b-l{
  margin-bottom:3.57em;
}

.margin_t-l{
  margin-top:3.57em;
}

.margin_t-xl{
  margin-top:7.14em;
}

.margin-xl{
  margin:7.14em;
}

.margin_r-xl{
  margin-right:7.14em;
}

.margin_b-xl{
  margin-bottom:7.14em;
}

.margin_t-xl{
  margin-top:7.14em;
}

.margin-xxl{
  margin:14.2em;
}

.margin_t-xxl{
  margin-top:14.2em;
}

.cursor-pointer{
  cursor: pointer;
}

/*.close-button{
  display:block;
  width:20px;
  height:20px;
  position:absolute;
  top:15px;
  left:20px;
}

.close-button:after,
.close-button:before{
  content:"";
  position:relative;
  height:1px;
  width:100%;
  display:block;
  background-color:#000;
  -webkit-transform: translateY(-50%) rotate(45deg);
  transform: translateY(-50%) rotate(45deg);
  top:50%;
  left:0;
}

.close-button:after{
  top:calc(50% - 1px);
  -webkit-transform: translateY(-50%) rotate(-45deg);
  transform: translateY(-50%) rotate(-45deg);
}*/


@media screen and (max-width:767px){

  html{
    font-size: 16px;
  }

  .hidden-mb{
  	display: none;
  }

  .no-flex_mb{
    display:block;
  }

  .margin_b-m_mb{
    margin-bottom:1.43em;
  }

  .margin_t-l_mb{
    margin-top:3.57em;
  }

  .margin_b-l_mb{
    margin-bottom:3.57em;
  }

  .margin_t-xl_mb{
    margin-top:7.14em;
  }

  .margin_t-xxl_mb{
    margin-top:14.2em;
  }

  .no-margin_mb{
    margin:0;
  }

  .w_100_mb{
    width: 100%;
  }

  .double-arrow{
  	border: none!important;
  }
}

/*/ TYPO /*/

.medium-title{
	font-size: 2em;
	line-height: 1.1;
}

.small-title{
	font-size: 1.5em;
	line-height: 1.1;
}

.capitalize{
  text-transform: capitalize;
}

.uppercase{
  text-transform: uppercase;
}

.text-content{
	font-size: 1.2em;
	max-width: 800px;
	line-height: 1.1;
}

.text-content--extended{
	max-width: 100%;
}

.text-content p + p{
	margin-top: 1em;
}

@media screen and (min-width: 768px){
	.small-title{
		font-size: 3.5em;
	}
	.medium-title{
		font-size: 5em;
	}
	.text-content{
		font-size: 1.5em;
	}
}

/* LAYOUT /*/

.page{
	padding: 75px 30px 0 30px; 
}

.thumb{
	margin-bottom: 3rem;
}

figure.thumb-img{
	width: 100%;
	position: relative;
	height: 0;
	overflow: hidden;
	padding-bottom: 69%;
	margin-bottom:1.5rem;
}

figure.thumb-img > img{
	position: absolute;
	width: 100%;
	height:100%;
	object-fit: contain;
}

.align-right{
	text-align: right;
}

.cursor-pointer{
	cursor: pointer;
}

.svg-title{
	position: relative;
	right: -30px;
	max-width: 900px;
}

.hidden{
	display: none;
}

.dropdown{
	padding: 40px 0;
}

.dropdown:nth-child(even){
	background-color: #000;
	color:  #fff;
	margin-left:  -30px;
	margin-right:  -30px;
	padding: 40px 30px;
}

.dropdown .dropdown-header{
	margin-bottom:  3em;
	position: relative;
	padding-top: 2em;
}

.dropdown .dropdown-header:before{
	content:  "";
	width: 10%;
	height: 3px;
	display: block;
	position:  absolute;
	background:  #000;
	top: 0;
	left:  0;
}

.dropdown:nth-child(even) .dropdown-header:before{
	background:  #fff;
}

.dropdown[data-expand='false'] .dropdown-body{
	height: 0;
	overflow: hidden;
	max-height: 0;
	transition: max-height .3s ease;
}

.dropdown[data-expand='true'] .dropdown-body{
	height: auto;
	max-height: 3500px;
	-webkit-transition: max-height .3s ease;
	transition: max-height .3s ease;
}

.dropdown-header .medium-title{
	color: inherit;
	-webkit-transition: color .3s ease-in-out;
	transition: color .3s ease-in-out;
}

.dropdown-header .medium-title:hover{
	color: var(--mainColor);
}

.video figure{
	height: 0;
	position: relative;
	overflow: hidden;
	display:  block;
	padding-bottom: 56%;
}

.video figure img,
.video figure iframe{
	position:  absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	width: 100%;
	height: 100%;
}

.border-top{
	position: relative;
}

.border-top:before{
	content: "";
	width: calc(100% + 30px);
	background: #000;
	height: 3px;
	position: absolute;
	left: 0;
	top: -10px;
}

@media screen and (min-width: 768px){
	.page{
		padding: 100px 100px 0 100px; 
	}

	.svg-title{
		right: -100px;
	}

	.border-top:before{
		width: calc(100% + 100px);
	}

	.dropdown{
		padding: 50px 0;
	}

	.dropdown:nth-child(even){
		background-color: #000;
		color:  #fff;
		margin-left:  -100px;
		margin-right:  -100px;
		padding: 53px 100px;
	}
}

/*/ COLORS /*/

.mainColor--bg{
	background: var(--mainColor);
}

.mainColor--bgGradient{
	background: linear-gradient(0deg, rgba(255,255,255,1) 0%, rgba(255,255,255,1) 55%, rgba(0,255,0,1) 100%);
}

@media screen and (min-width: 768px){
	.mainColor--bgGradient{
		background: linear-gradient(0deg, rgba(255,255,255,1) 0%, rgba(255,255,255,1) 35%, rgba(0,255,0,1) 100%);
	}
}

/*/ HEADER /*/

header.main-header{
	padding: 40px;
	position:  absolute;
	width: 100%;
	top: 0;
	left:  0;
	z-index: 999;
	background: linear-gradient(
0deg, rgba(255,255,255,0) 0%, rgba(255,255,255,0) 75%, rgba(255,255,255,0) 100%);
	transition:  background .5s linear;
}

header.main-header .logo{
	width: 120px;
	transition: width .3s ease, opacity .3s ease;
}

header.main-header a.logo:hover{
	border-bottom: none;
	opacity: .7;
}

.small-header header.main-header{
	padding: 40px;
	background: linear-gradient(
0deg, rgba(255,255,255,0) 0%, rgba(255,255,255,.87) 60%, rgba(255,255,255,1) 100%);
	/*background: var(--mainColor);*/
  /*padding: 20px 40px;*/
 /* box-shadow: 10px 2px 20px #000;*/
}

.small-header header.main-header .logo{
	width: 70px;
}

header.main-header ul{
	text-align: right;
	font-size: 1.3rem;
}

header.main-header ul li:last-child{
	padding-right: 0;
}

header.main-header ul li a{
	border-bottom: 3px solid transparent;
}

header.main-header ul li a.active,
header.main-header ul li a:hover{
	border-bottom: 3px solid #000;
}


.mobile-menu{
  position:relative;
  cursor:pointer;
  display: block;
  z-index: 9999;
  width: 30px;
  height: 30px;
  margin-top: .5rem;
}

.mobile-menu span:not(.burger--line){
  padding-left:20px;
}

.mobile-menu .burger--line:after,
.mobile-menu .burger--line:before,
.mobile-menu .burger--line{
  height: 2px;
  background: #000;
  width:100%;
  position: absolute;
  left: 0;
  -webkit-transform: rotate(0);
  transform: rotate(0);
  transition: transform .3s ease, background .3s ease;
}

.mobile-menu .burger--line{
  top: 50%;
  -webkit-transform: translate(0,-50%);
  transform: translate(0,-50%);
}
  
.mobile-menu .burger--line:after,
.mobile-menu .burger--line:before{
  content:"";
}

.mobile-menu .burger--line:before{
  top:-8px;
}

.mobile-menu .burger--line:after{
  bottom:-8px;
}

.main-header.open .mobile-menu .burger--line{
  background: transparent;
}

.main-header.open .mobile-menu .burger--line:before{
  transform: rotate(45deg);
  top: 0;
  background: #fff;
}

.main-header.open .mobile-menu .burger--line:after{
  transform: rotate(-45deg);
  bottom: 0;
  background: #fff;
}

@media screen and (max-width: 768px){
	header.main-header .logo{
		width: 70px;
	}
	header.main-header nav{
		z-index: 9998;
		padding: 40px 25px;
    position: fixed;
    background-color: #000;
    color: #fff;
    width: 50%;
    top: 0;
    right: 0;
    height: 100vh;
    -webkit-transition:  transform .5s ease;
    transition:  transform .5s ease;
    -webkit-transform: translate(100%, 0);
    transform: translate(100%, 0);
	}
	header.main-header.open:after{
		content: "";
		display: block;
		z-index: 9997;
    position: fixed;
    background-color: #000;
    opacity: .3;
    width: 100%;
    top: 0;
    left: 0;
    height: 100vh;
    scroll-events: none;
    cursor-events: none;
	}
	header.main-header nav ul{
		 margin-top: 5rem;
	}
	header.main-header.open nav{
		-webkit-transform:  translate(0, 0);
		transform:  translate(0, 0);
	}
}

@media screen and (min-width: 768px){
	.mobile-menu{
		display: none;
	}

	header.main-header ul li{
		display: inline-block;
		padding: 0 25px;	
	}
	header.main-header ul{
		text-align: left;
	}
	header.main-header .logo{
		width: 200px;
	}
}

/*/ FOOTER /*/

.main-footer{
	margin-top: 25em;
	padding:  10px 30px;
  justify-content: space-between;
  border-top: 1px solid #000;
  position: relative;
}

.main-footer nav ul li{
	display: inline-block;
	padding-right: 7px;
	position: relative;
}

.main-footer nav ul li:last-child:after{
	display: none;
}

.main-footer nav ul li:after{
	content: "";
	width: 5px;
	height: 5px;
	background:#000;
	display: inline-block;
	border-radius: 100%;
	font-size: 2.5rem;
	margin-left: 10px;
	line-height: 1;
	position: relative;
  top: 0;
  right: 0px;
}

.socials .icon{
	width:  30px;
	height:  30px;
	display: block;
	border-radius:  100%;
	font-size: 0;
	color:  transparent;
	border-bottom: 0;
	transition:  opacity .3s ease;
	opacity: 1;
}

.socials .icon.icon--linkedin{
	background: url(/img/linkedin.png) no-repeat center;
	background-size: 100%;
}

.socials .icon:hover{
	text-decoration: none;
	border-bottom: 0;
	opacity:  .7;
}

#backToTop{
	height: 60px;
	width: 15px;
  background: url(img/arrow-down-b.svg) no-repeat center;
  transform:  -webkit-rotate(180deg);
  transform:  rotate(180deg);
  display: block;
  position: absolute;
  top: -100px;
  right: 78px;
  cursor: pointer;
  -webkit-animation: 1s ease-in-out 0s infinite alternate bounceTop;
	animation: 1s ease-in-out 0s infinite alternate bounceTop;
}

@-webkit-keyframes bounceTop{
	0%{
		top: -100px;
	}
	100%{
		top: -130px;
	}
}

@keyframes bounceTop{
	0%{
		top: -100px;
	}
	100%{
		top: -130px;
	}
}


@media screen and (max-width: 768px){
	.main-footer{
		margin-top: 15em;
	}
}


@media screen and (min-width: 768px){
	.main-footer{
		padding:  10px 70px;
	}
}

/*/ PAGES /*/

.landing{
	min-height: calc(100vh - 295px);
	padding:  295px 0 100px 0;
	font-size: 640%;
	line-height: 1.1;
	text-align: justify;
}

.schema{
	font-size: 1.15em;
}

.schema ul li:before{
	content: "- ";
}

.schema .title{
	background:  #000;
	color:  #fff;
	display: inline-block;
	padding:  0 5px;
}

.bloc{
	border: 3px solid #000;
	padding: 5px;
	position: relative;
}

.bloc.no-padding{
	padding: 0;
}

.section-grid{
	margin-top: 5em;
}

.section-grid h2{
	position: relative;
}

.section-grid .thumb{
	position: relative;
}

.section-grid .thumb:last-child:before{
	width:  100%;
}

.section-grid p{
	line-height: 1.1;
	font-size: 1.15rem;
}

.section-grid p+p{
	margin-top: 1em;
}

.section-grid .thumb figure{
	height: 0;
	overflow:  hidden;
	width: 100%;
	padding-bottom: 56%;
	position: relative;
	margin: 6rem 0 4rem 0;
}

.section-grid .thumb figure img{
	position: absolute;
	top: 50%;
	left:  50%;
	width: 100%;
	height: 100%;
	object-fit: contain;
	-webkit-transform:  translate(-50%, -50%);
	transform:  translate(-50%, -50%);
}

.form-section{
	position: relative;
}

.form-section .grid{
	grid-gap: 0;
}

.form-section h2{
	margin-left: -30px;
	position: relative;
}

.form-section h2:before{
	content: "";
	width: 60%;
	position: absolute;
	bottom:  -5px;
	height: 3px;
	background:  #000;
}

.form-section .contact-img{
	position: absolute;
	top: 105px;
	max-width: 110px;
	right: 15px;
	transform: rotate(45deg);
	-webkit-animation: 1s ease-in-out 0s infinite alternate bounce;
	animation: 1s ease-in-out 0s infinite alternate bounce;
}

@-webkit-keyframes bounce{
	0%{
		top: 0;
	}
	100%{
		top: 40px;
	}
}

@keyframes bounce{
	0%{
		top: 0;
	}
	100%{
		top: 40px;
	}
}

@media screen and (max-width: 768px){
	.bloc{
		margin-bottom: 15px!important;
		padding: 5px!important;
	}
	.section-grid h2:after{
		content: "";
		display: block;
		position: absolute;
		height: 3px;
		background-color: #000;
		width: calc(100% + 30px);
		left: 0;
		bottom: -10px;
	}
}

@media screen and (min-width: 768px){

	.section-grid{
		margin-top: 15em;
	}

	.section-grid .thumb:before{
		content: "";
		height: 4px;
		background: #000;
		position: absolute;
		left: 0;
		top: 0;
		width: calc(100% + 15rem);
	}

	.double-arrow:before,
	.arrow:after{
		content: "";
		background:  url(img/arrow-down-b.svg) no-repeat center;
		width: 10px;
		height: 45px;
		display: block;
		position: absolute;
		top:  10px;
		left: -30px;
	}

	.arrow-down:after{
		left: 20%;
	    top: -50px;
	}

	.arrow-up:before{
		top: -50px;
		transform:  rotate(180deg);
		left: 25%;
	}

	.arrow-left:after{
		transform:  rotate(-90deg);
	}

	.bloc{
		margin: 25px;
	}

	.form-section h2{
		margin-left: -100px;
	}

	.form-section .contact-img{
		position: absolute;
		top: 40px;
		max-width: 250px;
		right: 100px;
		transform: rotate(45deg)
	}
}

/*/ FORM /*/

form label{
	font-size: 1em;
	color: #fff;
	background-color: #000;
	padding:  3px 10px;
	line-height: 1.3;
}

form input{
	border:  2px solid #000;
	border-radius: 0;
	padding:  5px 10px;
	appearance: none;
  -moz-appearance: none;
	-webkit-appearance: none;
}

form p:last-child{
	text-align:  right;
}

form input[type='submit']{
	padding: 5px 10px;
	font-size: 1.8em;
	background-color: #fff;
	cursor:  pointer;
	border-radius:  0;
	-webkit-transition:  background .5s ease;
	transition:  background .5s ease;
}

form input[type='submit']:hover{
	background-color: var(--mainColor);
}

form input:focus{
	-webkit-outline: 2px solid var(--mainColor);
	outline: 2px solid var(--mainColor);
}

@media screen and (min-width: 768px){
	form label{
		font-size: 1.8em;
	}
}

/*/ Cookies /*/

#CybotCookiebotDialogPoweredbyLink{
	display: none;
}

#CybotCookiebotDialog a, 
#CybotCookiebotDialog div, 
#CybotCookiebotDialogBodyContentControls, 
#CybotCookiebotDialogBodyContentTitle,
#CybotCookiebotDialogBodyContent,
#CybotCookiebotDialog,
#CybotCookiebotDialogBodyButtonDecline,
#CybotCookiebotDialogBodyButtonAccept,
#CybotCookiebotDialogBody{
	font-family: 'Palanquin', Helvetica, Arial, sans-serif!important;
}

#CybotCookiebotDialogBodyContentTitle{
	margin-top: 20px!important;
}

#CybotCookiebotDialogBodyContent{
	padding: 10px 30px!important;
}

#CybotCookiebotDialogBodyButtonDecline, 
#CybotCookiebotDialogBodyButtonAccept{
	padding: 5px!important;
	text-transform: uppercase!important;
	width: 120px!important;
	border: none!important;
}

#CybotCookiebotDialogBodyButtons{
	margin:  0!important;
	padding: 10px 15px!important;
}

#CybotCookiebotDialogBodyButtonAccept{
	background-color: var(--mainColor)!important;
}

#CybotCookiebotDialog{
	border-radius: 0!important;
	border:  3px solid #000!important;
	box-shadow:  none!important;
}

#CybotCookiebotDialogBodyButtonDetails{
	padding-left: 15px!important;
}
#CybotCookiebotDialogBodyButtonDetails:hover{
	border-bottom: 0!important;
}

.CookieDeclarationDialogText{
	max-width: 600px;
}

.CookieDeclaration{
	padding: 25px 0;
}

@media screen and (max-width: 768px){
	#CybotCookiebotDialog{
		margin-left: 25px!important;
		margin-top: 50%!important;
	}
	#CybotCookiebotDialogBodyButtonDecline, 
	#CybotCookiebotDialogBodyButtonAccept{
		margin: 10px auto!important;
		width: 90%!important;
		display: block!important;
	}
}



