/* ---------------------------------------------
Author: Théo de la Hogue
Website: http://theod.fr
-----------------------------------------------*/
/* ---------------------------------------------
CONTENTS:
general
loader
menu
scroll back
gallery
connect
animations
colors
-----------------------------------------------*/

.row {
    padding: 0%;
    margin: 0;
}
.col-lg-12 {
    padding: 0%;
    margin: 0;
}
.no-scroll {
    overflow: hidden;
}

/********* loader *********/
#loader {
    z-index: 100;
    width: 100%;
    height: 100%;
    cursor: pointer;
}
#loader #icon {
    z-index: 101;
    width: 50%;
    height: auto;
    position: absolute;
    top: 50%;
    left: 50%;
    -webkit-transform: translate(-50%,-50%);
            transform: translate(-50%,-50%);
}

/********* diaporama *********/
#diaporama {
    z-index: -2;
    width: 100%;
    height: 100%;
}
#diaporama #picture {
    position: absolute;
    z-index: -1;
    width: 100%;
    height: auto;
    bottom: 0%;
}

/********* menu *********/
.menu {
    z-index: 10;
    width: 93%;
    padding: 0%;
    margin: 0;
    -webkit-animation-name: slideInLeft;
            animation-name: slideInLeft;
    -webkit-animation-timing-function: cubic-bezier(.075,.82,.165,1);
            animation-timing-function: cubic-bezier(.075,.82,.165,1);
    -webkit-animation-duration: 1000ms;
            animation-duration: 1000ms;
}
.menu ul {
    padding: 0% 0%;
    margin: 0;
}
.menu#technic ul {
    padding: 0% 0% 5% 0%;
}
.menu#connect ul {
    padding: 5% 0% 10% 0%;
}
.menu li {
    display: inline-block;
    position: relative;
    overflow: hidden;
    white-space: nowrap;
}
.menu .underline:before {
    z-index: 10;
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 2%;
    content: '';
    -webkit-transform: translate3d(-100%,0,0);
            transform: translate3d(-100%,0,0);
}
.menu#connect .underline:before {
    height: 1%;
}   
.menu .underline:hover:before {
    -webkit-animation-name: slideInRight;
            animation-name: slideInRight;
    -webkit-animation-delay: .1s;
            animation-delay: .1s;
    -webkit-animation-fill-mode: both;
            animation-fill-mode: both;
    -webkit-animation-timing-function: cubic-bezier(.075,.82,.165,1);
            animation-timing-function: cubic-bezier(.075,.82,.165,1);
    -webkit-animation-duration: 500ms;
            animation-duration: 500ms;
}
.menu li h1 {
    z-index: 12;
    font-family: 'Montserrat', sans-serif;
    font-weight: 200;
	font-size: 2vw;
    line-height: 1.5vw;
}
.menu li h1:before {
    content: '{';
}
.menu li h1:after {
    content: '}';
}
.menu li a {
    z-index: 12;
    cursor: pointer;
    pointer-events: all;
    text-decoration: none;
}
.menu li#newsletter {
    display: block;
}
.menu li#newsletter.underline:before {
    width: 21%;
}
.menu li input[type='text'] {
    width: 11.5vw;
    -webkit-transition: width .5s linear;
    transition: width .5s linear;
    height: 2vw;
    cursor: pointer;
    border-style: solid;
    border-width: 0px;
    margin: -1vw -0.5vw;
    outline: none;
}
.menu li input[type='text'].subscribing {
    cursor: text;
    border-width: 1px;
    margin: -1vw 0vw;
    width: 25vw;
    -webkit-transition: width .5s linear;
    transition: width .5s linear;
}
.menu li input[type='button'] {
    height: 2vw;
    background-color: white;
    border-style: solid;
    border-width: 0px;
    border-color: red;
    margin: -1vw 0vw;
    outline: none;
}
@media screen and (max-width: 767px) {
.menu ul {
    padding: 0% 5%;
}
.menu li {
    display: block;
}
.menu li h1 {
    font-weight: 300;
	font-size: 5vw;
    line-height: 3vw;
}
.menu .underline:before {
     display: none;
}
.menu .underline:hover:before {
     display: none;
}
.menu li input[type='text'] {
    width: 29vw;
    -webkit-transition: width .5s linear;
    transition: width .5s linear;
    height: 5vw;
    margin: -1vw -1.5vw;
}
.menu li input[type='text'].subscribing {
    margin: -1vw 0vw;
    width: 55vw;
    -webkit-transition: width .5s linear;
    transition: width .5s linear;
}
.menu li input[type='button'] {
    height: 5vw;
    margin: -1vw 0vw;
}
}
/********* scroll back *********/
#scroll-back
{
    display: none;
    z-index: 20;
    position: fixed;
    bottom: 2%;
    right: 15%;
    border: 15px solid white;
    border-radius: 100px;
    text-align: center;
    -webkit-animation-name: slideInUp;
            animation-name: slideInUp;
    -webkit-animation-timing-function: cubic-bezier(.075,.82,.165,1);
            animation-timing-function: cubic-bezier(.075,.82,.165,1);
    -webkit-animation-duration: 1000ms;
            animation-duration: 1000ms;
}
#scroll-back a {
    z-index: 22;
    font-family: 'Montserrat', sans-serif;
    font-weight: 200;
    font-size: 3vw;
    line-height: 3vw;
    text-decoration: none;
}
#scroll-back a:before {
    content: '{';
}
#scroll-back a:after {
    content: '}';
}
#scroll-back  a:hover {
    cursor: pointer;
    text-decoration: underline;
}
@media screen and (max-width: 767px) {
#scroll-back
{
    right: 2%;
    border: 7px solid white;
    border-radius: 35px;
}
#scroll-back a {
    font-weight: 300;
    font-size: 8vw;
    line-height: 8vw;
}
}

/********* fullscreen panel *********/
#fs-panel {
    z-index: 998;
    position: fixed;
    width: 100%;
    height: 100%;
    top: 0;
    bottom: 0;
    background-color: white;
    background-size: cover;
    cursor: pointer;
}
#fs-img {
    z-index: 999;
    position: fixed;
    height: 100%;
    width: auto;
    top: 50%;
    left: 50%;
    -webkit-transform: translate(-50%,-50%);
            transform: translate(-50%,-50%);
    overflow-x: scroll;
    overflow-y: scroll;
}

/********* gallery *********/
#gallery {
    z-index: 0;
    width: 100%;
    height: 100%;
    padding: 0%;
    margin: 0;
    -webkit-animation-name: slideInUp;
            animation-name: slideInUp;
    -webkit-animation-timing-function: cubic-bezier(.075,.82,.165,1);
            animation-timing-function: cubic-bezier(.075,.82,.165,1);
    -webkit-animation-duration: 1000ms;
            animation-duration: 1000ms;
    /* snap point */
    -webkit-scroll-snap-type: mandatory;
        -ms-scroll-snap-type: mandatory;
            scroll-snap-type: mandatory;
}
#gallery .item {
    width: 100%;
    height: 100%;
    padding: 2.5% 5%;
    margin: 0;
    overflow: hidden;
}
#gallery .intro,
#gallery .about {
    padding: 2.5% 5%;
    margin: 0;
    text-align: left;
    border-top-style: solid;
    border-top-color: red;
    border-top-width: 1px;
    border-bottom-style: solid;
    border-bottom-color: red;
    border-bottom-width: 1px;
}
#gallery .illustration {
    padding: 0% 5% 0% 0%;
}
#gallery .illustration img {
    width: 100%;
    height: 100%;
    margin: 0;
    cursor: pointer;
}
#gallery .description {
    height: 100%;
    padding: 0% 0% 0% 0%;
    margin: 0;
    text-align: left;
    text-indent: 0;
}
#gallery .detail {
    height: 100%;
    padding: 5% 15% 0% 0%;
    margin: 0;
    text-align: left;
    text-indent: 0;
    font-style: italic;
    overflow: hidden;
    text-overflow: ellipsis;
}
#gallery h1, 
#gallery h2, 
#gallery p, 
#gallery a {
    z-index: 2;
    text-decoration: none;
    font-family: 'Montserrat', sans-serif;
    font-weight: 200;
}
#gallery h1 {
	font-size: 2.5vw;
    line-height: 2.5vw;
}
#gallery h2 {
	font-size: 1.8vw;
    line-height: 2vw;
}
#gallery .intro h2,
#gallery .about h2 {
    line-height: 2.5vw;
}
#gallery p {
	font-size: 1vw;
    line-height: 1.5vw;
}
#gallery .detail p {
	font-size: 1vw;
    line-height: 1.5vw;
}
#gallery a {
	font-size: 1.3vw;
    line-height: 1.5vw;
}
#gallery a:before {
    content: '{';
}
#gallery a:after {
    content: '}';
}
#gallery a:hover {
    cursor: pointer;
    text-decoration: underline;
}
@media screen and (max-width: 767px) {
#gallery .item {
    border-top-style: solid;
    border-top-color: red;
    border-top-width: 1px;
}
#gallery .intro,
#gallery .about {
    padding: 0% 5%;
    text-align: left;
}
#gallery .intro
{
    border-bottom-style: none;
    border-bottom-width: 0px;
}
#gallery .description {
    padding: 2.5% 5%;
    text-align: right;
}
#gallery .detail {
    display: none;
    padding: 2.5% 0% 0% 0%;
    overflow: auto;
    text-overflow: ellipsis;
}
#gallery .illustration {
    padding: 0%;
}
#gallery .illustration img {
    padding: 2.5% 0% 0% 0%;
}
#gallery .fullscreen {
    z-index: 999;
    position: fixed;
    height: 1200px;
    width: 1200px;
    top: 0;
    right: 25%;
    bottom: 0;
}
#gallery h1, 
#gallery h2, 
#gallery p, 
#gallery a {
    font-weight: 300;
}
#gallery h1 {
	font-size: 4.7vw;
    line-height: 5vw;
}
#gallery h2 {
	font-size: 3.7vw;
    line-height: 4vw;
}
#gallery .intro h2,
#gallery .about h2 {
    line-height: 5vw;
}
#gallery p {
	font-size: 2.8vw;
    line-height: 3.1vw;
}
#gallery .detail p {
	font-size: 2.8vw;
    line-height: 3.1vw;
}
#gallery a {
	font-size: 3vw;
    line-height: 3.3vw;
}
}

/********* credit *********/
#credit {
    -webkit-animation-name: slideInUp;
            animation-name: slideInUp;
    -webkit-animation-timing-function: cubic-bezier(.075,.82,.165,1);
            animation-timing-function: cubic-bezier(.075,.82,.165,1);
    -webkit-animation-duration: 1000ms;
            animation-duration: 1000ms;
}
#credit a {
    text-decoration: none;
    font-family: 'Montserrat', sans-serif;
    font-weight: 200;
	font-size: 1.3vw;
    line-height: 1.5vw;
}
#credit a:before {
    content: '{';
}
#credit a:after {
    content: '}';
}
@media screen and (max-width: 767px) {
#credit a {
    font-weight: 300;
	font-size: 3vw;
    line-height: 3.3vw;
}
}

/********* animations *********/
@-webkit-keyframes slideInLeft {
  0% {
    -webkit-transform: translateX(-150%);
            transform: translateX(-150%);
  }
  100% {
    -webkit-transform: translateX(0%);
            transform: translateX(0%);
  }
}
@keyframes slideInLeft {
  0% {
    -webkit-transform: translateX(-150%);
            transform: translateX(-150%);
  }
  100% {
    -webkit-transform: translateX(0%);
            transform: translateX(0%);
  }
}
@-webkit-keyframes slideInUp {
  0% {
    -webkit-transform: translateY(100%);
            transform: translateY(100%);
  }
  100% {
    -webkit-transform: translateY(0%);
            transform: translateY(0%);
  }
}
@keyframes slideInUp {
  0% {
    -webkit-transform: translateY(100%);
            transform: translateY(100%);
  }
  100% {
    -webkit-transform: translateY(0%);
            transform: translateY(0%);
  }
}
@-webkit-keyframes slideInRight {
0% {
    -webkit-transform: translate3d(-100%,0%,0);
    transform: translate3d(-100%,0%,0);
}
50% {
    -webkit-transform: translate3d(-50,0%,0);
    transform: translate3d(-50,0%,0);
}
100% {
    -webkit-transform: translate3d(0%,0,0);
    transform: translate3d(0%,0,0);
}
}
@keyframes slideInRight {
0% {
    -webkit-transform: translate3d(-100%,0%,0);
    transform: translate3d(-100%,0%,0);
}
50% {
    -webkit-transform: translate3d(-50,0%,0);
    transform: translate3d(-50,0%,0);
}
100% {
    -webkit-transform: translate3d(0%,0,0);
    transform: translate3d(0%,0,0);
}
}

/********* colors *********/
#index-page {
    background-color: white;
}
#main-page {
    background-color: transparent;
}
.menu li:before {
    background: red;
}
.menu li h1:before,
.menu li h1:after {
    color: red;
}
.menu .success:before {
    background: limegreen;
}
.menu .success h1,
.menu .success h1:before,
.menu .success h1:after {
    color: limegreen;
}
.menu .error:before {
    background: orange;
}
.menu .error h1,
.menu .error h1:before,
.menu .error h1:after {
    color: orange;
}
.menu li a {
    color: #57524D;
}
.menu li input[type='text'].subscribing {
    border-color: red;
}
.menu li input[type='button'] {
    color: red;
}
::-webkit-input-placeholder {
    color: #57524D;
}
:-ms-input-placeholder {
    color: #57524D;
}
::placeholder {
    color: #57524D;
}
#scroll-back
{
    background-color: white;
}
#scroll-back a
{
    color: #57524D;
}
#scroll-back a:before,
#scroll-back a:after,
#scroll-back a:hover {
    color: red;
}
#scroll-back a:hover {
    -webkit-text-decoration-color: red;
            text-decoration-color: red;
}
#gallery .item {
    background-color: transparent;
}
#gallery .illustration {
    background-color: transparent;
}
#gallery .description {
    background-color: transparent;
}
#gallery h1 {
    color: red;
}
#gallery h2,
#gallery p,
#gallery a,
#gallery a:hover {
    color: #57524D;
}
#gallery a:before,
#gallery a:after {
    color: red;
}
#gallery a:hover {
    -webkit-text-decoration-color: red;
            text-decoration-color: red;
}
#credit a {
    color: #57524D;
    white-space: nowrap;
}
#credit a:before,
#credit a:after {
    color: red;
}