html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed, 
figure, figcaption, footer, header, hgroup, 
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
	margin: 0;
	padding: 0;
	border: 0;
	font-size: 100%;
	font: inherit;
	vertical-align: baseline;
}
/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure, 
footer, header, hgroup, menu, nav, section {
	display: block;
}
body {
	line-height: 1;
    font-family: 'Oswald', sans-serif;
    font-weight: 300;
    font-size: 20px;

}
ol, ul {
	list-style: none;
}
blockquote, q {
	quotes: none;
}
blockquote:before, blockquote:after,
q:before, q:after {
	content: '';
	content: none;
}
table {
	border-collapse: collapse;
	border-spacing: 0;
}
.page_loader{
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 50%;
    transform: translate(-50%, 0%);
    background-color: #d8d8d8;
    z-index: 9999;
  }
.lds-ripple {
    display: inline-block;
    position: relative;
    width: 80px;
    height: 80px;
    top: 50%;
    left: 50%;
    transform: translate(-50%, 0%);
  }
  .lds-ripple div {
    position: absolute;
    border: 4px solid #0B3E79;
    opacity: 1;
    border-radius: 50%;
    animation: lds-ripple 1s cubic-bezier(0, 0.2, 0.8, 1) infinite;
  }
  .lds-ripple div:nth-child(2) {
    animation-delay: -0.5s;
  }
  @keyframes lds-ripple {
    0% {
      top: 36px;
      left: 36px;
      width: 0;
      height: 0;
      opacity: 0;
    }
    4.9% {
      top: 36px;
      left: 36px;
      width: 0;
      height: 0;
      opacity: 0;
    }
    5% {
      top: 36px;
      left: 36px;
      width: 0;
      height: 0;
      opacity: 1;
    }
    100% {
      top: 0px;
      left: 0px;
      width: 72px;
      height: 72px;
      opacity: 0;
    }
  }

/* ---------- Style ---------- */

header{
    background-color: white;
    -webkit-box-shadow: 0px 4px 5px -1px #d8d8d8; 
    box-shadow: 0px 4px 5px -1px #d8d8d8;
    width: 100vw;
    height: 100px;
    position: fixed;
    z-index: 1;
    display: flex;
}

header img{
    width: 40%;
    margin: 0 auto;
}
header .logo{
    padding: 10px ; 
    margin: 0 auto ; 
    text-align: center ; 
    transition: 0.5s all;
}
header .logo:hover{
    transition: 0.5s all; 
    -ms-transform: scale(0.9); /* IE 9 */
    -webkit-transform: scale(0.9); /* Safari 3-8 */
    transform: scale(0.9);

}


/* ---------- MENU ---------- */
#menuToggle
{
    display: block;
    position: fixed;
    top: 45px;
    left: 45px;
    z-index: 1;
    -webkit-user-select: none;
    user-select: none;
}

#menuToggle input
{
    display: block;
    width: 40px;
    height: 32px;
    position: absolute;
    top: -7px;
    left: -5px;
    cursor: pointer;
    opacity: 0;
    z-index: 2;
    -webkit-touch-callout: none;
}

#menuToggle span
{
    display: block;
    width: 26px;
    height: 2px;
    margin-bottom: 5px;
    position: relative;
    background: black;
    border-radius: 3px;
    z-index: 1;
    transform-origin: 3px 0px;
    transition: transform 0.2s cubic-bezier(0.77,0.2,0.05,1.0);
    background: 0.5s cubic-bezier(0.77,0.2,0.05,1.0);
    opacity: 0.55s ease;
}

#menuToggle span:first-child
{
    transform-origin: 0% 0%;
}

#menuToggle span:nth-last-child(2)
{
    transform-origin: 0% 100%;
}

#menuToggle input:checked ~ span
{
    opacity: 1;
    transform: rotate(45deg) translate(-2px, -1px);
    background: #0B3E79;
}
#menuToggle input:checked ~ span:nth-last-child(3)
{
    opacity: 0;
    transform: rotate(0deg)     
      scale(0.2, 0.2);
}

#menuToggle input:checked ~ span:nth-last-child(2)
{
    opacity: 1;
    transform: rotate(-45deg) translate(0, -1px);
}

/*This is the Menu part, which gets triggered by toggle*/
#menu
{
    position: absolute;
    width: 43vw;
    height: 110vh;
    margin: -100px 0 0 -50px;
    padding: 50px;
    padding-top: 125px;
    background: rgba(255, 255, 255, 0.97);;
    list-style-type: none;
    transform-origin: 0 0;
    transform: translate(-100%, 0);
    transition: transform 0.5s cubic-bezier(0.77,0.2,0.05,1.0);
    text-align: center;
}
#menu li
{
    padding: 25px 0;
    color: #000000;
    list-style-type: none;
    font-size: 2em;
    font-weight: 300;
}
#menu li a {
      color: gray;
      text-decoration: none;
      text-transform: uppercase;
      transition: all 1s;
}
#menu li a:hover {
    transition: all 1s;
    color: #0B3E79;
    text-decoration: none;
}
#menuToggle input:checked ~ ul
{
    transform: scale(1.0, 1.0);
    opacity: 1;
}
.fab{
    top: 45px;
    right: 45px;
    position: absolute;
    color:black;
    transition: all 0.5s;
}
a .fab:hover{
    -ms-transform: scale(1.3); /* IE 9 */
    -webkit-transform: scale(1.3); /* Safari 3-8 */
    transform: scale(1.3);
    color: #0B3E79; 
}
/* ---------- Fond accueil ---------- */

#fondAccueil{
    background-image: url('img/Imageaccueil.jpg');
    height: 100vh;
    width: 100%;
    background-repeat: no-repeat;
    background-size: cover;
}

  
/* ---------- Container ---------- */
.container{
    max-width: 1500px;
    margin: auto;
}
strong{
    font-weight: bolder;
}
.textpresaccueil{
    text-align: center;
    padding: 100px 0 100px 0;
}
.textpresaccueil h2{
    font-size: 30px;
}
.textpresaccueil h1{
    font-size: 35px;
    padding-bottom: 20px;
}
.imgCategory{
    width: 100%;
    height: auto;
}
.category{
    width: 100%;
    display: flex;
}
.texteCategory h2{
    font-size: 25px;
    padding-bottom: 20px;
}
.texteCategory p{
    padding-bottom: 20px;
}
.textePage{
    text-align: center;
    padding: 50px;
    position: relative;
    top: 155px;
}
.block2{
    width: 48%;
    margin: 1%;
}
.block2 img {
    width: 100%;
}
.block2 .texteCategory{
    text-align: right;
    transform: translateY(10%);
    padding: 130px;
}
#listHome .category:nth-child(2n){
    flex-direction: row-reverse;
    padding-bottom: 0;
}
#listHome .category:nth-child(2n) .texteCategory{
    text-align: left;
}
.creative{
    width: 100%;
    display: flex;
}
.blockImage{
    width: 33%;
    margin: 1%;
}
.blockImage img {
    display: block;
    width: 100%;
    height: auto;
}
#biographie{
    width: 100%;
    display: flex;
}
.blockBio{
    width: 48%;
    margin: 1%;
}
.blockBio img {
    width: 100%;
}
.blockBio .textbio {
    padding: 65px;
    transform: translateY(20%);
}
.blockBio .textbio h3{
    font-size: 25px;
    padding-bottom: 10px;
}
.blockBio .textbio p{
    padding-top: 10px;
}
/* ---------- Bouton ----------- */
.btnA a{
    padding: 10px;
    border-radius: 3px;
    border: 2px solid #0B3E79;
    width: 30%;
    text-align: center;
    padding: 10px;
    margin: 20px 0 0 0;
    display: inline-block;
    color: black;
    text-align: center;
    text-decoration: none;
    transition: all 1s;
}
.btnA a:hover{
    color: white;
    background-color: #0B3E79;
    transition: all 1s;
}
.btnB{
    text-align: center;
    padding-top: 100px;
}
.btnB a{
    padding: 10px;
    border-radius: 3px;
    border: 2px solid #0B3E79;
    width: 30%;
    text-align: center;
    padding: 10px;
    margin: 20px 0 0 0;
    display: inline-block;
    color: black;
    text-align: center;
    text-decoration: none;
    transition: all 1s;
}
.btnB a:hover{
    color: white;
    background-color: #0B3E79;
    transition: all 1s;
}
/* ---------- gallerie ----------*/
#grid {
    column-count: 4;
    column-gap: .5em;
    max-width: 1500px;
    margin: 1%;
    width: 98%;
}
img {
    height: auto;
    max-width: 100%;
}
@media(max-width: 1980px) {
    #grid {
        column-count: 5;
    }
}
@media(max-width: 1200px) {
    #grid {
        column-count: 4;
    }
}
@media(max-width: 992px) {
    #grid {
        column-count: 3;
    }
}
@media(max-width: 768px) {
    #grid {
        column-count: 2;
    }
}
@media(max-width: 570px) {
    #grid {
        column-count: 1;
    }
}
@media(max-width: 480px) {
    #grid {
        column-count: 1;
      }
    
}
/* ---------- Card ----------*/ 
.blockcard {
    padding-top: 100px;
    display: flex;
    flex-wrap: wrap;
    position: relative;
    justify-content: center;
}
.card .texte .center{
    width: 20%;
    position: absolute;
    top: 50%;
    left: 40%;
    transition: 1s all;
}
.card .texte h2{
    color: black;
    text-align: center;
    margin-top: 150px;
    transition: all 1s;
}
.card:hover h2{
    color: black;
    text-align: center;
    margin-top: 50px;
    transform:translateY(1px);
    transition: all 1s;
}
.card .Tblock{
    display: none;
    transition: all 1s;
}
.card:hover .Tblock{
    display: flex;
    margin: 50px 15px 15px 15px;
    justify-content: space-between;
    transition: all 1s;
}
.card:hover .Tblock p{
    padding-bottom: 15px;
    
}
.Tblock .text{
    text-align: left;
}
.Tblock .textDroit{
    text-align: right;
}
.card:hover .center{
    opacity: 0;
    transition: 0.2s ease-out;
    text-align: center;
    transform:translateY(-120px);
    transition: all 0.5s;
}
.card {
    border-radius: 3px;
    cursor: pointer;
    width: 300px;
    height: 380px;
    margin: 0 15px 50px 15px;
    background: #ffffff00;
    position: relative;
    transition: transform 200ms, box-shadow 500ms;
    background-size: cover;
    background-position: center;
    box-shadow: 0px 2px 8px -1px rgb(0 0 0 / 35%);
    transition: all 1s;
}
.card::after {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background-image: linear-gradient(35deg, transparent 0%, transparent 48%, rgba(255, 255, 255, 0.322) 50%, transparent 100%);
    background-repeat: no-repeat;
    background-position-y: -100px;
    background-size: 500px;
    opacity: 0.5;
    transition: background-position 300ms ease, opacity 300ms ease;
}
.card:hover {
    transform: perspective(600px) scale(1.10);
    transition: all 1s;
}
.card:hover::after {
    opacity: 1;
    background-position-y: -20px;
}
/* -----------  Footer ----------- */
footer .fondFooter{
    background-color: #e7e7e7af ;
    height: 300px;
    width: auto;
    margin-top: 50px;
}
footer{
    color: gray;
}
footer .textfooter{
    text-align: center;
    padding: 20px 0 20px 0;
}
.textfooter h4{
    font-size: 15px;
}
.textfooter ol{
    font-size: 10px ;
    margin: 0 auto;
    display: flex;
}
.textfooter ol a{
    text-decoration: none;
    color: gray;
    transition: all 0.5s;
    padding: 10px;
    margin: 0 auto;
}
.textfooter ol a:hover{
    transition: all 0.5s;
    color: #0B3E79;
}

/* -----------  Contact ----------- */
.textpresaccueil h1{
        font-size: 35px;
        padding: 20px 0 20px 0;
}
.contact{
    text-align: center;
}
.block{
    display: flex;
}
input{
    margin-bottom: 20px;
}
input[type="text"],[type="email"],[type="tel"] {
    background: none;
    border: none;
    border-bottom: 2px solid #0B3E79;
    font-family: 'Oswald', sans-serif;
    width: 70%;
    padding: 10px;
    font-size: 20px;
    color: black;
    font-weight: 300;
}
#precision {
    background: none!important;
    border: none!important;
    font-family: 'Oswald', sans-serif!important;
    width: 70%!important;
    font-size: 20px!important;
    color: black!important;
    font-weight: 300!important;
    margin-bottom: 0px;
    padding: 0px;
}

.radio {
    text-align: left;
    margin-left: 86px;
    padding: 10px;
}
input[type="submit"]{
   text-align: center;
   border: 2px solid #0B3E79;
   border-radius: 5px;
   background-color: transparent;
   font-family: 'Oswald', sans-serif;
   font-size: 20px;
   width: auto;
   margin: auto;
   transition: all 1s;
}
input[type="radio"]{
    accent-color: #0B3E79;
}
::placeholder{
    color: black;  
}
textarea.form-control {
    font-family: 'Oswald', sans-serif;
    font-weight: 300;
    resize: vertical;
    background: none;
    border-bottom: 2px solid #0B3E79;
    border-left: none;
    border-top: none;
    border-right: none;
    width: 72%;
    height: 208px;
    outline: none;
    color: black;
    padding-left: 15px;
    font-size: 20px;
}
input[type="submit"]:hover{
    background-color: #0B3E79;
    color: white;
    transition: all 1s;
}
#Envoyez:focus{
    border: none;
}
input {
    border: none;
    outline: none
}
.BtnEnvoie{
    text-align: center;
}
#category {
    padding: 10px;
    margin: 10px;
    width: 74%;
    font-family: 'Oswald';
    font-weight: 300;
    font-size: 15px;
    padding-left: 19px;
}
#category:focus{
    border: 1px solid #0B3E79;
}
@media screen and (max-width: 1980px){
    .container{
        max-width: 1980px;
    }
}
@media screen and (max-width: 1029px){
    .category {
        width: 100%;
    }
    .category .texteCategory p{
        font-size: 18px;
    }
    .block2 .texteCategory{
        text-align: right;
        transform: translateY(135%);
    }
    
    .textePage {
        text-align: center;
        position: relative;
        top: 60px;
    }
}

@media screen and (max-width: 992px){
    .block2 .texteCategory {
        transform: translateY(17%);
        padding: 59px;
    }
    .btnA a{
        width: 90%;
    }
    .textePage {
        text-align: center;
        position: relative;
        top: 50px;
    }
}
@media screen and (max-width: 768px){
   
    #menu li{
        font-size: 1.5em;
    }
    .category{
        width: auto;
        display: block;
    }
    .block{
        display: block;
    }
    .block2 {
        width: auto;
        margin: 3%;
    }
    .blockImage {
        width: auto;
        margin: 3%;
    }
    #biographie{
        width: auto;
        display: block;
        margin: 0 2%;
    }
    .blockBio{
        width: auto;
    }
    .category .texteCategory{
        margin: 50px 0px;
    }
    .imgCategory{
        width: 100%;
    }
    .block2 .texteCategory{
        text-align: right;
        transform: none;
        padding: 0;
    }
    .btnA a {
        width: 45%;
    }
    .blockBio .textbio {
        padding: 0 0 50px 0;
    }
    .contact{
        display: block;
    }
    .BtnEnvoie{
        margin-top: 30px;
    }
    .textePage {
        text-align: center;
        padding: 37px;
        position: relative;
        top: 0px;
        right: 0;
    }
    .textePage p{
        font-size: 15px;
    }
    
    .radio {
    text-align: left;
    margin-left: 86px;
    padding-top: 10px;
    }
    .creative {
        display: block;
    }
}
@media screen and (max-width: 576px){
    .textpresaccueil h1 {
        padding: 75px 0 20px 0;
        font-size: 40px;
    }
    #menu{
    position: absolute;
    width: 100vw;
    padding: 100px 0 50px 0;
    }
    .textpresaccueil h2{
    font-size: 25px;
    }
    .textpresaccueil {
    text-align: center;
    padding: 50px 0 50px 0;
    }
    .radio {
        text-align: left;
        padding-top: 10px;
        margin-left: 30px;
    }

}
