/* ---- */
/* FONT */
/* ---- */

@font-face
{
    font-family: "Josefin Sans";
    src: url("webfonts/josefinsans-regular-webfont.woff2") format("woff2"),
         url("webfonts/josefinsans-regular-webfont.woff") format("woff");
    font-weight: normal;
    font-style: normal;
}


/* ----- */
/* STYLE */
/* ----- */

body
{
	width: 100%;
	height: 100%;
	
	color: #777777;
	font-size: 16px;
	font-family: "Josefin Sans", Arial, Helvetica, sans-serif;
	text-align: center;
	
	background-color: #ffffff;
}

img
{  
	margin: 0px;
	padding: 0px;
	border: none;
}

p
{
	margin: 20px;
	color: #ffffff;
	font-size: 16px;
	line-height: normal;
}

a, a:hover
{
	color: #ffffff;
	text-decoration: none;
}

i, em
{
	font-style: italic;
}
b, strong
{
	font-weight: 700;
}
.light
{
	font-weight: 300;
}

hr
{
	width: 80px;
	height: 1px;
	margin: 20px auto;
	background-color: #ff6600;
	border: none;
}

.mobile
{
	display: none;
}


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

#header
{
	width: 100%;
	position: fixed;
	right: 0px;
	top: 0px;
	
	z-index: 10;
	
	-webkit-transition: right 0.5s ease;
	-moz-transition: right 0.5s ease;
    -o-transition: right 0.5s ease;
	-ms-transition: right 0.5s ease;
	transition: right 0.5s ease;
}
#header.scrolled
{
	background-color: #202020;
	box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.5);;
}
#header h1
{
	display: none;
}
#header .logo
{
	margin: 0;
	position: absolute;
	left: 40px;
	top: 14px;
	
	font-size: 20px;
	font-weight: bold;
	line-height:25px;
	text-align: left;
	text-transform: uppercase;
	letter-spacing: 5px;
}
#header .logo a
{
	color: #ffffff;
}

#header #menu
{
	margin: 30px;
	text-align: right;
}

#header #menu li
{
	display: inline-block;
	margin:0px 20px;
	
	font-weight: bold;
	text-transform:uppercase;
	letter-spacing: 2px;
}
#header #menu li a
{
	color: #ffffff;
	
	-webkit-transition: all 0.2s ease;
	-moz-transition: all 0.2s ease;
    -o-transition: all 0.2s ease;
	-ms-transition: all 0.2s ease;
	transition: all 0.2s ease;
}
#header #menu li a:hover
{
	color: #ffffff;
	text-shadow: 0px 0px 5px #ffffff;
}
#header.scrolled #menu li a
{
	color: #2499ca;
}
#header.scrolled #menu li a:hover
{
	color: #ffffff;
}

#header #burger
{
	display: none;
	width: 50px;
	height: 50px;
	position: absolute;
	left: -55px;
	top: 10px;

	border: 5px solid #202020;
	border-right: none;
	background-color: #d2d2d2;
	cursor: pointer;

	background-image: url(../img/burger_button.png);
	background-position: center;
	background-repeat: no-repeat;
	background-size: contain;
}

#header .social
{
	display: none;
	margin: 15px 35px 15px;
	text-align: right;
	font-size: 20px;
}



/* ------ */
/* FOOTER */
/* ------ */

#footer
{
	
}


/* ---- */
/* SITE */
/* ---- */

#site
{
	
}
section
{
	padding: 40px 0;
	position: relative;
	top: 800px;

	overflow: hidden;
}
.content
{
	display: inline-block;
	width: calc(100% - 60px);
	max-width: 1200px;
	margin: auto;
	padding: 0px 30px;
}

h2
{
	margin: 20px 20px 60px;
	line-height: 40px;
	
	font-size: 30px;
	color: #ffffff;
	text-transform: uppercase;
	letter-spacing: 5px;
}


/* ---- */
/* HOME */
/* ---- */

#home
{
	width: 100%;
	height: 100%;
	padding: 0px;
	position: absolute;
	left: 0px;
	right: 0px;
	top: 0px;

	background-color: #000000;
	background-image: url(../img/bg_home.jpg);
	background-size: cover;
}
#home .content
{
	display:block;
	
	max-width: none;
	position: absolute;
	left: 0px;
	right: 0px;
  	top: 50%;
	
	-webkit-transform: translateY(-50%);
	-moz-transform: translateY(-50%);
    -o-transform: translateY(-50%);
	-ms-transform: translateY(-50%);
	transform: translateY(-50%);
	
	text-align: center;
	overflow: hidden;
}
#home h2
{
	margin: 50px 0px;
	line-height: 70px;
	
	font-size: 60px;
	color: #ffffff;
	font-weight: bold;
	text-transform: uppercase;
	letter-spacing: 10px;
}
#home h3
{
	margin: 20px;
	line-height: 30px;
	
	font-size: 20px;
	color: #ffffff;
	text-transform: uppercase;
	letter-spacing: 5px;
}
#home .slogan
{
	margin: 50px;
	line-height: 26px;
	
	font-size: 16px;
	color: #ffffff;
	text-transform: uppercase;
	letter-spacing: 4px;
}


/* ------------ */
/* PRESENTATION */
/* ------------ */

#presentation
{
	background-color: #202020;
}
#presentation h2
{
	display: none;
}
#presentation p
{
	line-height: 30px;
}


/* ----------- */
/* COMPETENCES */
/* ----------- */

#competences
{
	padding: 50px 0px 100px;
	
	background-color: #2499ca;
	background-image: url(../img/bg_bricks_blue2.jpg);
	background-size: cover;
}
#competences .sub
{
	margin: 50px auto;
}
#competences .container
{
	margin-top: -40px;

	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	justify-content: center;
}
#competences .bloc
{
	width: 360px;
	max-width: 360px;
	height: 360px;
	margin: 40px;
	padding: 10px;
	position: relative;
	
	display: flex;
	flex-direction: column;
	justify-content: center;
	
	background-color: #d2d2d2;
	border: 20px solid #202020;
	cursor: pointer;

	-webkit-transition: all 0.2s ease;
	-moz-transition: all 0.2s ease;
    -o-transition: all 0.2s ease;
	-ms-transition: all 0.2s ease;
	transition: all 0.2s ease;
}
#competences .bloc.touch
{
	background-image: url(../img/icon_touch1.png);
	background-position: bottom right;
	background-repeat: no-repeat;
}
#competences .bloc:hover
{
	border: 20px solid #fff;
}
#competences .bloc h3
{
	margin: 10px auto 20px;
	
	font-size: 20px;
	color: #2499ca;
	text-transform: uppercase;
	letter-spacing: 2px;
}
#competences .bloc li
{
	margin: 10px auto;
	color: #202020;
}
#competences .bloc table
{
	margin: 0px auto;
}
#competences .bloc table td
{
	text-align: left;
	padding: 6px;
	color: #202020;
}
#competences .bloc table td:first-child
{
	text-align: right;
}
#competences .bloc .lvl
{
	width: 12px;
	height: 12px;
	margin: 2px;
	position: relative;
	top: -2px;
	display: inline-block;
	vertical-align: middle;
	
	background-color: #000000;
}
#competences .bloc .lvl.on
{
	-webkit-transition: all 0.8s ease;
	-moz-transition: all 0.8s ease;
    -o-transition: all 0.8s ease;
	-ms-transition: all 0.8s ease;
	transition: all 0.8s ease;
}
#competences .bloc:hover .lvl.on
{
	width: 12px;
	height: 12px;
	background-color: #2499ca;
	box-shadow: 0px 0px 5px #ffffff;
}


/* --------- */
/* PORTFOLIO */
/* --------- */

#portfolio
{
	padding: 50px 0px 100px;
	background-color: #000000;
}
#portfolio .tri
{
	margin: -20px auto 20px;
}
#portfolio .option,
#portfolio .plus
{
	display: inline-block;
	width: 100px;
	margin: 20px;
	padding: 10px;
	
	color: #ffffff;
	border: 4px solid #202020;
	
	cursor: pointer;
	-webkit-transition: all 0.2s ease;
	-moz-transition: all 0.2s ease;
    -o-transition: all 0.2s ease;
	-ms-transition: all 0.2s ease;
	transition: all 0.2s ease;
}
#portfolio .plus
{
	display: inline-block;
	width: 150px;
}
#portfolio #plus-3
{
	display: none;
}
#portfolio .option:hover,
#portfolio .plus:hover
{
	border: 4px solid #ffffff;
}
#portfolio .option.on,
#portfolio .plus.on
{
	border: 4px solid #ffffff;
	background-color: #2499ca;
}
#portfolio .container
{
	display: none;
	flex-direction: row;
	flex-wrap: wrap;
	justify-content: center;
}
#portfolio .container.show
{
	display: flex;
}
#portfolio .bloc
{
	width: 200px;
	height: 200px;
	margin: 20px;
	
	display: flex;
	flex-direction: column;
	justify-content: center;
	
	background-color: rgba(255, 255, 255, 0.9);;
	border: 10px solid #202020;
	cursor: pointer;

	background-size: 200px 200px;
	background-position: center;
	background-repeat: no-repeat;

	-webkit-transition: all 0.2s ease;
	-moz-transition: all 0.2s ease;
    -o-transition: all 0.2s ease;
	-ms-transition: all 0.2s ease;
	transition: all 0.2s ease;

	opacity: 0;
}
#portfolio .bloc.show
{
	opacity: 1;
}
#portfolio .bloc:hover
{
	border: 10px solid #fff;
	background-size: 300px 300px;
}
#portfolio .bloc .details
{
	width: 100%;
	height: 100%;

	display: flex;
	flex-direction: column;
	justify-content: center;

	background-color: rgba(255, 255, 255, 0.9);;
	opacity: 0;

	-webkit-transition: all 0.2s ease;
	-moz-transition: all 0.2s ease;
    -o-transition: all 0.2s ease;
	-ms-transition: all 0.2s ease;
	transition: all 0.2s ease;
}
#portfolio .bloc:hover .details
{
	opacity: 1;
}
#portfolio .bloc .details a
{
	width: 100%;
	height: 100%;

	display: flex;
	flex-direction: column;
	justify-content: center;

	background-image: url(../img/icon_loupe1.png);
	background-position: bottom right;
	background-repeat: no-repeat;
}
#portfolio .bloc .details h3
{
	margin: 0px 20px 10px;
	line-height: 18px;
	
	font-size: 14px;
	font-weight: bold;
	color: #2499ca;
	text-transform: uppercase;
	letter-spacing: 1px;
}
#portfolio .bloc .details p
{
	margin: 0px 20px;
	line-height: 18px;
	font-size: 14px;
	color: #202020;
}


/* -------- */
/* PARCOURS */
/* -------- */

#parcours
{
	background-color: #202020;
	background-image: url(../img/bg_bricks_grey.jpg);
	background-size: cover;
}
#parcours .bloc
{
	width: 500px;
	max-width: 500px;
	margin: 40px auto;
	padding: 40px 10px;
	position: relative;
	
	display: flex;
	flex-direction: column;
	justify-content: center;
	
	background-color: #d2d2d2;
	border: 20px solid #202020;
	cursor: pointer;

	-webkit-transition: all 0.2s ease;
	-moz-transition: all 0.2s ease;
    -o-transition: all 0.2s ease;
	-ms-transition: all 0.2s ease;
	transition: all 0.2s ease;
}
#parcours .bloc:hover
{
	border: 20px solid #ffffff;
}
#parcours .bloc.b5
{
	left: 80px;
	z-index: 7;
}
#parcours .bloc.b4
{
	left: -80px;
	z-index: 6;
}
#parcours .bloc.b3
{
	left: 80px;
	z-index: 5;
}
#parcours .bloc.b2
{
	left: -80px;
	z-index: 4;
}
#parcours .bloc.b1
{
	left: 80px;
	z-index: 3;
}
#parcours .bloc h3
{
	margin: 15px auto 5px;
	
	font-size: 20px;
	color: #2499ca;
	text-transform: uppercase;
	letter-spacing: 2px;
}
#parcours .bloc .date
{
	padding: 8px;
	position: absolute;
	left: 0px;
	top: 0px;

	color: #ffffff;
	font-size: 16px;
	background-color: #000000;

	-webkit-transition: all 0.2s ease;
	-moz-transition: all 0.2s ease;
    -o-transition: all 0.2s ease;
	-ms-transition: all 0.2s ease;
	transition: all 0.2s ease;
}
#parcours .bloc:hover .date
{
	background-color: #2499ca;
}
#parcours .bloc .city
{
	margin: 0px auto 10px;

	color: #202020;
	font-size: 12px;
	font-weight: bold;
	text-transform: uppercase;
	letter-spacing: 5px;
}
#parcours .bloc p
{
	margin: 20px auto 15px;
	color: #202020;
}
#parcours .bloc li
{
	margin: 5px auto;
	font-size: 14px;
	color: #202020;
}

#parcours .timeline
{
	width: 130px;
	height: 130px;
	position: absolute;
	left: 50px;
	top: -150px;

	background-image: url(../img/timeline2.png);
	background-position: top left;
	background-repeat: no-repeat;
	z-index: 1;
}
#parcours .timeline.t1
{
	left: auto;
	right: 50px;

	background-image: url(../img/timeline1.png);
	background-position: top right;
}


/* ------- */
/* CONTACT */
/* ------- */

#contact
{
	padding: 40px 0px 80px;
	background-color: #000000;
}
#contact .container
{
	width: 520px;
	max-width: 520px;
	margin: auto;
	padding: 20px 40px 0px;

	background-color: #d2d2d2;
	border: 20px solid #202020;
	overflow: hidden;

	-webkit-transition: all 0.2s ease;
	-moz-transition: all 0.2s ease;
    -o-transition: all 0.2s ease;
	-ms-transition: all 0.2s ease;
	transition: all 0.2s ease;
}
#contact .container.success
{
	border: 20px solid #ffffff;
}
#contact .congrats
{
	margin-bottom: 30px;
	color: #202020;
}
#contact label
{
	display: block;
	margin: 10px 0px;

	color: #202020;
	font-size: 16px;
	font-weight: bold;
	text-align: left;
}
#contact .input,
#contact textarea
{
	display: block;
	width: calc(100% - 28px);
	min-width: calc(100% - 28px);
	max-width: calc(100% - 28px);
	margin: 10px auto 20px;
	padding: 12px;

	color: #777777;
	font-size: 16px;
	font-family: "Josefin Sans", Arial, Helvetica, sans-serif;
	border: 2px solid #ffffff;

	-webkit-transition: all 0.2s ease;
	-moz-transition: all 0.2s ease;
    -o-transition: all 0.2s ease;
	-ms-transition: all 0.2s ease;
	transition: all 0.2s ease;
}
#contact textarea
{
	min-height: 100px;
}
#contact .input:focus,
#contact textarea:focus
{
	outline: none;
	box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.5);
}
#contact .input.error,
#contact textarea.error
{
	border: 2px solid #f78f8f;
}
#contact #c_email_bis
{
	display: none;
	visibility: hidden;
	opacity: 0;
}
#contact #c_button
{
	margin: 20px auto 30px;
	padding: 10px 20px;

	color: #ffffff;
	font-size: 16px;
	font-family: "Josefin Sans", Arial, Helvetica, sans-serif;

	border: none;
	background-color: #000000;
	cursor: pointer;

	-webkit-transition: all 0.2s ease;
	-moz-transition: all 0.2s ease;
    -o-transition: all 0.2s ease;
	-ms-transition: all 0.2s ease;
	transition: all 0.2s ease;
}
#contact #c_button:hover
{
	color: #ffffff;
	border: none;
	outline: none;
	background-color: #2499ca;
}
#contact #c_button:focus
{
	border: none;
	outline: none;
}
#contact #c_button.off
{
	opacity: 0.5;
}
#contact #c_button.disabled
{
	color: #000000;
	background-color: #ffffff;
	cursor: default;
}
#contact #c_callback
{
	height: auto;
	margin: 0px;
	color: #202020;
	font-style: italic;

	overflow: hidden;
}
#contact #c_callback.show
{
	margin-bottom: 30px;
}
#contact #c_callback.error
{
	color: #f78f8f;
}
#contact #c_callback img
{
	height: 50px;
}
#contact #g-recaptcha
{
	display: inline-block;
}


/* ------ */
/* FOOTER */
/* ------ */

#footer
{
	position: relative;
	background-color: #202020;
}
#footer p .copyright
{
	margin-right: 50px;
	line-height: 20px;

	font-size: 12px;
	font-weight: bold;
	text-transform: uppercase;
	letter-spacing: 5px;
}
#footer p a
{
	margin: 0px 5px;
	font-size: 20px;
	vertical-align: middle;

	-webkit-transition: all 0.2s ease;
	-moz-transition: all 0.2s ease;
    -o-transition: all 0.2s ease;
	-ms-transition: all 0.2s ease;
	transition: all 0.2s ease;
}
#footer p a:hover
{
	color: #2499ca;
}
#footer #open_preferences_center
{
	position: fixed;
	bottom: 20px;
	right: 20px;
}

/* -------------- */
/* COOKIE CONSENT */
/* -------------- */

.cc-nb-main-container,
.termsfeed-com---pc-dialog
{
	font-family: "Josefin Sans", Arial, Helvetica, sans-serif;
	background-color: #ffffff;
}
.termsfeed-com---nb-interstitial
{
	top: auto !important;
	bottom: 3vh !important;
}
.termsfeed-com---pc-dialog
{
	width: 950px !important;
	bottom: 3vh !important;
}
.termsfeed-com---nb .cc-nb-okagree,
.termsfeed-com---palette-light .cc-cp-foot-save
{
	background-color: #2499ca !important;
}
.termsfeed-com---nb .cc-nb-reject
{
	background-color: #000000 !important;
}
.termsfeed-com---nb .cc-nb-okagree:focus,
.termsfeed-com---nb .cc-nb-reject:focus,
.termsfeed-com---nb .cc-nb-changep:focus
{
	box-shadow: 0 0 0 2px #000000 !important;
}
.termsfeed-com---palette-light .cc-cp-body-content-entry-text
{
	font-size: 14px !important;
}
.cc-cp-body-tabs li
{
	font-family: "Josefin Sans", Arial, Helvetica, sans-serif !important;
}
.cc-cp-body-tabs li:nth-child(3),
.cc-cp-body-tabs li:nth-child(5)
{
	display: none;
}
.cc-pc-head-lang-select
{
	display: none;
}
