/* initialiser les marges de toutes les balises à 0 */
*{
	margin: 0;
	padding: 0;

	/* limite la taille du bloc à la taille de son conteneur parent
	   le padding et la bordure n'augmentent plus sa largeur */
	-moz-box-sizing: border-box;
	-webkit-box-sizing: border-box;
	-o-box-sizing: border-box;
	box-sizing: border-box;
}

html,
body {
    width: 100%;
    height: auto;
    margin: 0;
}

body{
	font-size: 100%;
}

h1{
	font-family: 'Righteous', 'Montserrat', sans-serif;
	color: #fff;
	font-size: 343.75%;
	font-weight: normal;
	text-align: center;
	margin: 0;
	padding: 0;
}

h2{
	font-family: 'Righteous', 'Montserrat', sans-serif;
	color: #fff;
	font-size: 250%;
	font-weight: normal;
	text-align: center;
}

h3{
	position: relative;
	font-family: 'Righteous', 'Montserrat', sans-serif;
	font-weight: normal;
	font-size: 100%;
	text-align: center;
	z-index: 1;
}

h4{
	font-family: 'Righteous', 'Montserrat', sans-serif;
	font-weight: normal;
	font-size: 80%;
}

p{
	font-family: 'Montserrat', sans-serif;
}

/* pour des images fluides */
img{
	max-width: 100%;
	height: auto;
}

/* loader */
#loader {
	position : fixed;
	z-index: 9999;
	background-color : #ecf0f1;
	top : 0px;
	left : 0px;
	height : 100%;
	width : 100%;
	cursor : wait;
	display: flex;
	flex-direction: column;
	justify-content: center;
}

#loader-img {
	background : url('../images/loading-img.svg') 50% 50% no-repeat;
	width: 100%;
	height: 100%;
	max-height: 200px;
	margin-bottom: 1em;
}

#loader-txt {
	background : url('../images/loading-txt.gif') 50% 50% no-repeat;
	width : 100%;
	height : 100%;
	max-height: 59px;
}


/*********************************************/
/*             Wrapper et autres             */
/*********************************************/

#wrapper{
	position: relative;
	width: 100%;
	max-width: 100%;
	overflow: hidden;
	background-color: #fff;
}

.wrapper-container{
	position: relative;
	margin: 0 auto;
	width: 100%;
	max-width: 100%;
}

.content{
	width: 100%;
	margin: 0 auto;
	padding: 0 2em;
}

.content h3{
	font-family: 'Righteous';
	font-size: 300%;
	font-weight: normal;
	margin-bottom: 40px;
	text-align: center;
}

.center{ text-align: center;}

.clearfix {
	clear: both;
}

.visible {
	display: block;
}


/*********************************************/
/*                Bannière                   */
/*********************************************/
header{
	position: absolute;
	width: 100%;
	height: 92px;
	margin-top: 0;
	z-index: 10;
	display: flex;
	justify-content: space-between;
	align-items: center;
	-webkit-transition: height 0.8s, opacity 0.8s;
	-moz-transition: height 0.8s, opacity 0.8s;
	transition: height 0.8s, opacity 0.8s;
}


/********************** Navigation principale **********************/
/* menu mobile */
#menu-mobile {
	display: none;
}

#menu-icon  {
	
}

header label {
	position: absolute;
	top: 1.5em;
	right: 1em;
	z-index: 50;
	display: none;
	opacity: 0;
	webkit-transition: all 0.5s;
	-moz-transition: all 0.5s;
	transition: all 0.5s;
}

/* début icone menu mobile */
#menu-icon {
	width: 60px;
	height: 45px;
	margin-top: 0;
	opacity: 0;
	-webkit-transform: rotate(0deg);
	-moz-transform: rotate(0deg);
	-o-transform: rotate(0deg);
	transform: rotate(0deg);
	-webkit-transition: .5s ease-in-out;
	-moz-transition: .5s ease-in-out;
	-o-transition: .5s ease-in-out;
	transition: .5s ease-in-out;
	cursor: pointer;
}

#menu-icon span {
	display: block;
	position: absolute;
	height: 9px;
	width: 100%;
	background: #fff;
	border-radius: 9px;
	opacity: 1;
	left: 0;
	-webkit-transform: rotate(0deg);
	-moz-transform: rotate(0deg);
	-o-transform: rotate(0deg);
	transform: rotate(0deg);
	-webkit-transition: .25s ease-in-out;
	-moz-transition: .25s ease-in-out;
	-o-transition: .25s ease-in-out;
	transition: .25s ease-in-out;
}

#menu-icon span:nth-child(1) {
	top: 0px;
}

#menu-icon span:nth-child(2),#menu-icon span:nth-child(3) {
	top: 18px;
	background: #24729D;
}

#menu-icon span:nth-child(4) {
	top: 36px;
}

#menu-icon.open span:nth-child(1) {
  top: 18px;
  width: 0%;
  left: 50%;
}

#menu-icon.open span:nth-child(2) {
  -webkit-transform: rotate(45deg);
  -moz-transform: rotate(45deg);
  -o-transform: rotate(45deg);
  transform: rotate(45deg);
}

#menu-icon.open span:nth-child(3) {
  -webkit-transform: rotate(-45deg);
  -moz-transform: rotate(-45deg);
  -o-transform: rotate(-45deg);
  transform: rotate(-45deg);
}

#menu-icon.open span:nth-child(4) {
  top: 18px;
  width: 0%;
  left: 50%;
}
/* fin icone menu mobile*/

/* logo */
#logo {
	padding: 0 0.8em;
}

#logo a {
	font-family: 'Audiowide';
	color: #fff;
	font-size: 350%;
	font-weight: bold;
	text-align: center;
	width: 350px;
	text-decoration: none;
	line-height: 1;
}

#logo a  span{
	color: #24729D;
}

/* menu */
#nav-princ{
	display: flex;
	align-items: center;
	height: 100%;
	z-index: 10;
	position: relative;
}

#nav-princ ul{
	display: flex;
	justify-content: flex-end;
	list-style: none;
	margin: 0;
	width: 100%;
}

#nav-princ li{
	margin-top: 6px;
	padding: 0 1.5em;
}
	
#nav-princ li a{
	font-family: 'Nunito', sans-serif;
	font-size: 135%;
	margin: 0 0.8em;
	padding: 0 0.2em;
	color: #fff;
	opacity: 0.6;
	border-bottom: 3px solid rgba(255, 255, 255, 0);
	outline: none;
	text-decoration: none;
	-webkit-transition: border-bottom-color 0.5s, opacity 0.5s;
	-moz-transition: border-bottom-color 0.5s, opacity 0.5s;
	transition: border-bottom-color 0.5s, opacity 0.5s;
}

#nav-princ li a.active{
	color: #fff;
	opacity: 1;
	border-bottom: 3px solid rgba(255, 255, 255, 1);
}

#nav-princ li a:hover{
	color: #fff;
	opacity: 1;
}

header .overlay {
    display: none;
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    background-color: rgba(0,0,0,0.6);
}


/*********************************************/
/*                 Accueil                   */
/*********************************************/
#accueil{
	background-color: #333333;
	color: #fff;
	width: 100%;
	height: 100vh;
	margin: 0 auto;
	text-align: center;
	display: flex;
	align-items: flex-end;
}

#accueil .content {
	display: flex;
	flex-direction: column;
    height: 100%;
	z-index: 1;
}

#accueil h1 {
	line-height: 1;
}

#accueil p{
	font-size: 200%;
	align-self: flex-end;
	justify-self: self-end;
	justify-content: center;
	height: 50%;
	display: flex;
	align-items: center;
}

#accueil #nom {
    height: 50%;
    justify-content: center;
    display: flex;
    align-items: flex-end;
    font-size: 200%;
}

#video_accueil {
    width: 100%;
	height: 100%;
	position: fixed;
	top: 0;
	left: 0;
	background: url(../images/bg_accueil.jpg) top no-repeat;
	background-size: cover;
}

#video_accueil video {
    width: 100%;
}

#accueil .overlay {
    position: absolute;
    width: 200vw;
    height: 200vh;
	top: 11.2%;
    left: -60%;
	background-color: rgba(0,0,0,0.8);
	transform-origin: top center;
	transform: rotate(-30deg);
}


#accueil .overlay.scroll {
	transform: none;
	position: fixed;
	top: 0;
	left: 0;
	height: 92px;
	background-color:rgba(51,51,51,1);
}


#accueil #scroll-down {
	position: absolute;
	width: 100%;
	z-index: 1;
}

/* flèche */
.arrows {
	width: 60px;
	height: 72px;
	position: absolute;
	left: 50%;
	margin-left: -30px;
	bottom: 10px;
}

.arrows path {
	stroke: #2994D1;
	fill: transparent;
	stroke-width: 1px;	
	animation: arrow 2s infinite;
	-webkit-animation: arrow 2s infinite; 
}

@keyframes arrow
{
0% {opacity:0}
40% {opacity:1}
80% {opacity:0}
100% {opacity:0}
}

@-webkit-keyframes arrow /*Safari and Chrome*/
{
0% {opacity:0}
40% {opacity:1}
80% {opacity:0}
100% {opacity:0}
}

.arrows path.a1 {
	animation-delay:-1s;
	-webkit-animation-delay:-1s; /* Safari and Chrome */
}

.arrows path.a2 {
	animation-delay:-0.5s;
	-webkit-animation-delay:-0.5s; /* Safari and Chrome */
}

.arrows path.a3 {	
	animation-delay:0s;
	-webkit-animation-delay:0s; /* Safari and Chrome */
}

/*************   typed   ************/
.typed-cursor{
    opacity: 1;
    -webkit-animation: blink 0.7s infinite;
    -moz-animation: blink 0.7s infinite;
    animation: blink 0.7s infinite;
}
@keyframes blink{
    0% { opacity:1; }
    50% { opacity:0; }
    100% { opacity:1; }
}
@-webkit-keyframes blink{
    0% { opacity:1; }
    50% { opacity:0; }
    100% { opacity:1; }
}
@-moz-keyframes blink{
    0% { opacity:1; }
    50% { opacity:0; }
    100% { opacity:1; }
}


/*********************************************/
/*               Réalisations                */
/*********************************************/
#realisations{
	position: relative;
	background-color: #3C4044;
	color: #fff;
	height: auto;
	width: 100%;
	min-height: 100%;
	padding: 150px 0;
}

section#realisations article {
    height: 250px;
}

section#realisations article img, .modalbox-sources img {
    height: auto;
    width: 100%;
	border: 3px solid #24729D;
	transition: transform 0.5s;
}

section#realisations article a:hover img, #modalbox-sources a:hover img {
    transform: scale(1.1);
}

section#realisations .video-container {
    position: relative;
    padding-bottom: 56.25%;
    padding-top: 20.47%;
    height: 0;
    overflow: hidden;
}


section#realisations .video-container iframe {
	position: absolute;
    top:0;
    left: 0;
    height: 100%;
    width: 100%;
}

section#realisations .overflow, #modalbox-sources .overflow {
    position: relative;
	overflow: hidden;
}

section#realisations span.span, .modalbox-sources  span.span {
    opacity: 0;
	width: 100%;
	height: 100%;
	font-family: 'Montserrat', sans-serif;
	font-weight: bold;
	font-size: 110%;
	color: #fff;
	padding: 2.5em 1em;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	text-align: center;
	position: absolute;
	top: 0;
	left: 0;
	z-index: 1;
	border: 3px solid #24729D;
	
	-webkit-transition: all 0.5s;
    -moz-transition: all 0.5s;
    transition: all 0.5s;
}

section#realisations span.span:hover, .modalbox-sources  span.span:hover {
    opacity: 1;
	background-color: rgba(0,0,0,0.6);
}

section#realisations span.h3 {
    font-size: 250%;
	font-family: 'Righteous';
}

section#realisations span.h4 {
    font-size: 150%;
	font-family: 'Righteous';
}

section#realisations span.p {
    width: auto;
    margin-top: 1em;
    padding: 0 6px 2px 6px;
    border: 2px solid #fff;
}

section#realisations div.controls{
	font-family: 'Nunito', sans-serif; 
	text-align: center;
	margin-bottom: 30px;
	font-size: 125.00%;
	display: flex;
	flex-direction: row;
	justify-content: center;
	flex-wrap : wrap;
}

section#realisations div.controls button{
	margin: 0 20px;
	text-transform: uppercase;
	background-image: none;
	border: none;
	padding: 0 0.2em;
	background-color: transparent;
	border-bottom: 3px solid transparent;
	outline: none;
	-webkit-transition: all 0.5s !important;
	-moz-transition: all 0.5s !important;
	transition: all 0.5s !important;
}

section#realisations div.controls button:hover{
	border-bottom-color: #fff;
}

section#realisations div.controls button.mixitup-control-active{
	border-bottom-color: #fff;
}

section#realisations div.container {
    display: flex;
    flex-wrap: wrap;
}

section#realisations div.mix {
    width: 25%;
    padding: 15px;
}

section#realisations article{
	height: auto;
	background-color: gray;
	-webkit-transition: 0.4s ease;
	transition: 0.4s ease;
}

.img-block{
	display: block;
}

a#cv {
	text-decoration: none;
	outline: none;
	color: #fff;
	margin: 0 20px;
	border-bottom: 3px solid transparent;
	-webkit-transition: all 0.5s !important;
	-moz-transition: all 0.5s !important;
	transition: all 0.5s !important;
}

a#cv:hover{
	border-bottom: 3px solid #fff;
}


/*********************************************/
/*                 À propos                  */
/*********************************************/
#a-propos{
	position: relative;
	background-color: #F6F6F6;
	color: #000;
	height: auto;
	padding-top: 150px;
	padding-bottom: 190px;
	width: 100%;
	margin: 0 auto;
}

#a-propos #picture {
	padding-top: 30px;
}

#a-propos #picture p{
	float: left;
	width: 400px;
	margin-right: 2%;
}

#a-propos #picture p img {
    display: block;
}

#a-propos #texte {
	display: flex;
	flex-direction: column;
	justify-content: center;
	height: auto;
	min-height: 408px;
}

#a-propos #texte p {
	margin-bottom: 40px;
	font-size: 120%;
}

#a-propos #texte p:last-child {
    margin-bottom: 0;
}


/*********************************************/
/*                 Contact                   */
/*********************************************/
#contact{
	position: relative;
	background-color: #ecf0f1;
	color: #333;
	height: 400px;
}

#contact .content {
    width: 100%;
	margin: 0;
	padding: 0;
	display: flex;
}

#contact h3 {
    margin: 0;
	padding-bottom: 20px;
}

#carte {
    width: 50%;
	/*cursor: pointer;*/
}

#carte p {
    line-height: 0;
}

#carte iframe {
    width: 100%;
	height: 400px;
	/*pointer-events: none;*/
}

#coordonnee {
	width: 50%;
	text-align: center;
	padding: 2em;
	display: flex;
	flex-direction: column;
	justify-content: center;
}

#coordonnee h4 {
	font-family: 'Montserrat', sans-serif;
	font-size: 130%;
	font-weight: bold;
	padding-bottom: 20px;
}

#adresse {
    padding-bottom: 20px;
}

#joindre p:first-child {
    padding-bottom: 20px;
}

#joindre a {
	color: #24729D;
	text-decoration: none;
	outline: none;
}

#joindre a:hover {
	text-decoration: underline;
}



/************************************/
/************** Footer ************* /
/************************************/
footer {
	position: relative;
	width: 100%;
	background-color: #3E474F;
	font-family: 'Montserrat', sans-serif;
	font-size: 80%;	
	height: auto;
	color: #fff;
}

footer .content {
    padding: 1em 2em;
}

footer a {
	color: #fff;
	text-decoration: none;
	outline: none;
}

footer a:hover {
	text-decoration: underline;
}

footer #copyright {
	text-align: center;
}

/************************* retour au haut de page ******************/
#scroll-up{
	display: none;
}

#scroll-up a{
	position: fixed;
	bottom: 5px;
	right: 0;
	height: 80px;
	width: 80px;
	cursor: pointer;
	background: url(../images/scroll.png) no-repeat;
	background-size: 100%;
	text-indent: -9999px;
	opacity: 0.6;
	z-index: 20;
}

#scroll-up a:hover{
	opacity: 1;
}