.clear{
	clear:both;
}

*{
	outline: 0;
}

img:not(.noauto){
    border:none;
    max-width: 100%;
    height:auto;
}

.mobileframe{
    position: relative;
}

.mobileframe .cadre{
    z-index: 300;
    position: relative;
}

.mobilescreenshot{
    position:absolute;
    top:8.8%;
    left:6.3%;
    width:84.6%;
    height:87.9%;
    z-index: 200;
    background-position: center top;
    background-size: cover;
    background-repeat: no-repeat;
}

.nowrap{
    white-space: nowrap;
}

.hidden{
    visibility: hidden;
}

a{
    color: #2BA4DF;
    text-decoration: none;
}

.lazy_alpha {
    opacity: 0;
}
.lazy_alpha:not(.initial) {
    transition: opacity 1.5s;
}
.lazy_alpha.initial,
.lazy_alpha.loaded,
.lazy_alpha.error {
    opacity: 1;
}

html{
	padding:0px;
	margin:0px;
	min-height:100%;
	height: 100%;
    text-rendering: auto;
	text-rendering: optimizeLegibility;
	text-rendering: geometricPrecision;
	font-smooth: always;
	
	font-smoothing: antialiased;
	-moz-font-smoothing: antialiased;
	-webkit-font-smoothing: subpixel-antialiased;
	-webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

body{
    padding:0px;
	margin:0px;
	min-height:100%;
	width:100%;
    height: 100%;
    max-width: 100%;
	-ms-text-size-adjust: 100%;
    -webkit-text-size-adjust: 100%;
	-webkit-font-smoothing: antialiased;
    background-color:#f5f5f5;
	color:#9c9c9c;
	font-size:16px;
	font-family:Arial, Helvetica, sans-serif;
    padding-top:130px;
    box-sizing: border-box;
}

.inside{
    box-sizing: border-box;
    padding-left: 40px;
    padding-right: 40px;
    width:100%;
}

#content{
    padding-bottom: 60px;
    min-height: calc(100vh - 220px);
    box-sizing: border-box;
}

body.projets #content{ 
    min-height: calc(100vh - 298px);
}

header{
    /*background-image: url(../img/trait.gif);*/
    border-bottom: 1px solid #ddd;
    background-repeat: repeat-x;
    background-position: left bottom;
    height: 130px;
    position: fixed;
    left: 0px;
    top:0px;
    width:100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    background-color: #f5f5f5;
    z-index: 200;
}

header nav ul, .headernav ul{
    display: flex;
    list-style: none;
    gap:20px;
    padding: 0px;
    margin:0px;
    font-size: 20px;
}

header.mobile{
    /*background-image: url(../img/trait.gif);*/
    border-bottom: 1px solid #ddd;
    background-repeat: repeat-x;
    background-position: left bottom;
    height: 60px;
    position: fixed;
    left: 0px;
    top:0px;
    width:100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    background-color: #f2f1f1;
    z-index: 200;
    display:none;
}

@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {
    header nav ul li{
        margin-right:20px;
    }
}

header nav ul li a, .headernav ul li a{
    font-family: 'DIN';
	text-decoration: none;
	color:#c0c0c0;
	/*text-shadow: 0px 1px 0px #fff;*/
    font-weight: 500;
}

header nav ul li  a:hover, header nav ul li.active a, .headernav ul li a:hover, .headernav ul li a.active {
    color: #2ba4df;
}

.headernav {
    display: none;
}

.logo{
    background-image: url(../img/monoloco.svg);
    background-position: right center;
    background-repeat: no-repeat;
    width:240px;
    height:40px;
    background-size: contain;
    overflow: hidden;
    text-indent: -40000px;
}

footer{
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 60px;
    background-color: #eaeaea;
}

footer, footer a{
    text-decoration: none;
    color: #9c9c9c;
    /*text-shadow: 0px 1px 0px #fff;*/
    font-size: 12px;
}

footer .copyright, footer .contacts{
    min-width:220px;
    max-width: 100%;
}

/*** HOME ***/
.swiperhome {
    width: 100%;
    height: 500px;
    margin: 0px auto 50px auto;
    /*background-image: url(../img/trait.gif);*/
    border-bottom: 1px solid #ddd;
    background-position: left bottom;
    background-color: #fff;
    background-repeat: repeat-x;
    font-family: 'DIN';
    font-weight: bold;
}

.swiperhome .swiper-slide{
    overflow: hidden;
}

.swiperhome div.titre{
	color:#000;
	font-size:36px;
    margin-top:50px;
}

.swiperhome div.text{
	font-size:28px;
    
}
.swiperhome div.text a{
	background-color:#009ee0;
	padding:6px;
	color:#FFF;
	font-size:16px;
	text-decoration: none;
	 border-radius: 5px 5px 5px 5px;
	 margin-top:20px;
	 display:inline-block;
   /* font-family: 'DINMedium';*/

}

.swiperhome .projetslide div.text{
    max-width: 400px;
    font-weight: 500;
    line-height: 1.1em;
}

#welcome_imac{
    position:absolute;
    left:70%;
    bottom:50px;
}

#welcome_ipad{
    position:absolute;
    left:80%;
    bottom:30px;
}

#welcome_iphone{
    position:absolute;
    left:85%;
    bottom:0px;
}

#flowercontainer{
    position:absolute;
    bottom:-70px;
    left:60%;
    width: 400px;
    height: 400px;
}


.flower{ 
    position:absolute;
    width:400px;
    max-width: 100%;
    text-align:right;
    display:none
}

.flower img{
    border-radius: 4px;
    border: 3px solid #FFF;
    width: 200px !important;
    height: auto !important;
}

#cms_imac{
    position:absolute;
    left:70%;
    bottom:50px;
}


.projectimac{
    position:absolute;
    width:401px;
    height:236px;
    padding-top:12px;
    padding-bottom:152px;
    padding-left:19px;
    padding-right:20px;
    overflow:hidden;
    background-image:url(../img/imac.png);
    bottom:50px;
    left:70%;
}

.hometestimonials{
    background-color: #2BA4DF;
    margin-top: 50px;
    text-align: center;
    color:#fff;
    font-size: 30px;
    font-family: 'DIN';
    font-weight: 500;
}

.hometestimonials .temoignage{
    padding-left: 30px;
    padding-right: 30px;
    max-width: 960px;
    position: relative;
    margin: auto;
    box-sizing: border-box;
}

.hometemoigangesslider .swiper-slide{
    padding-top:40px;
    padding-bottom: 40px;
    padding-top:130px;
    padding-bottom: 130px;
}

.hometemoigangesslider .swiper-pagination-bullet-active{
    background:#fff;
}

.hometemoigangesslider .navigationcontainer{
    display: flex;
    position: absolute;
    bottom:10px;
    width:100%;
    align-items: center;
    justify-content: center;
}

.hometemoigangesslider .swiper-button-next, .hometemoigangesslider .swiper-button-prev, .hometemoigangesslider .swiper-pagination{
    position:relative;
    top:auto;
    left:auto;
    bottom:auto;
    right:auto;
  
}

.hometemoigangesslider .swiper-pagination{
    width:auto;
    display: flex;
    align-items: center;
    justify-content: center;
}


.hometestimonials .signature{
    font-weight: 400;
    font-size: 22px;
}

.home #content{
    padding-bottom:0px;
}

.filterselectcontainer{
    display: none;
}

.filtertitre{
    font-family: 'DIN';
    font-weight: 500;
}

select, .selectric {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    border-radius: 5px;
    background-color: #d2d2d2;
    color: #fff;
    padding: 5px;
    padding-left: 10px;
    padding-right: 10px;
    text-transform: uppercase;
    font-size: 12px;
    font-family: 'DIN';
    font-weight: 500;
    border:none;
    background-image: url(../img/down-arrow.svg);
    background-position: calc(100% - 20px) center;
    background-repeat: no-repeat;
    background-size: 20px;
    box-sizing: border-box;
}

.selectric-open .selectric, .selectric-items{
    border-color:#d2d2d2;
}

.selectric .label{
    color:#fff;
    font-size: 14px;
}

.selectric .button{
    display: none;
}

select::-ms-expand {
    display: none;
}

select{
    font-size: 14px;
    padding:10px;
    line-height: 20px;
}

.selectric-items{
    text-transform: uppercase;
    font-family: 'DIN';
    font-weight: 500;
    top: calc(100% - 10px);
    box-sizing: border-box;
    border-bottom-left-radius: 5px;
    border-bottom-right-radius: 5px;
    padding-top: 10px;
}

.selectric-items li{
    /*color:#d2d2d2;*/
    padding-left: 20px;
}

.selectric-items li.highlighted{
    color:#fff;
}

.selectric-items li:hover{
    background-color: #d2d2d2;
    color: #fff;
}

@media all and (max-width:1023px){
    .swiperhome{
        height: auto;
    }
    .swiperhome .swiper-slide .inside{
        padding-bottom:500px;
    }
    .swiperhome div.text{
        max-width:none;
    }

    .filterselectcontainer{
        display: flex;
        margin-bottom: 50px;
        justify-content: space-between;
    }
    
    .filterselectcontainer form{
        width:100%;
    }
    
    .filterselectcontainer select{
        width:100%;
       
        
    }
    #welcome_imac, #welcome_ipad, #welcome_iphone, #flowercontainer, #cms_imac, .projectimac{
        left:auto;
        right:40px;
    }
}

@media all and (max-width:500px){

    .filterselectcontainer{
        flex-direction:column;
        margin-bottom: 10px;
    }

    .filterselectcontainer form{
        width:100%;
        margin-bottom: 20px;
    }
}



/*** PAGE ***/

.page #content, .contact #content{
    padding-bottom:0px;
}
.pageitem{
    /*display: flex;
    justify-content: space-between;
    align-items: flex-start;*/
    /*background-image: url(../img/trait.gif);*/
   
    background-repeat: repeat-x;
    background-position: left bottom;
    padding-top: 25px;
    background-color: #F7F7F7;
    color: #545454;
    align-items: stretch;
}

.pagecontent{
    width:100%;
    box-sizing: border-box;
    padding-left: 40px;
    padding-right: 40px;
    margin-bottom: 40px;
    max-width: 760px;
}

.pagecontent h1{
    font-family: "DIN";
    font-weight: bold;
    color: #333;
    font-size: 22px;
   
}

.pageimages{
    width:100%;
    overflow: hidden;
}

.pageimages img{
    width:auto;
    height:100%;
}

.pageimages .swiper{
    height: 100%;
}
/*** PAGE ***/

/*** PROJETS ***/

.projectfilters{
    /*position: fixed;
    left: 0px;
    top:130px;
    width:100%;*/
    margin: auto;
    margin-bottom: 20px;
    padding-top: 30px;
    padding-bottom: 30px;
    background-repeat: repeat-x;
    background-position: left bottom;
    width: 100%;
    background-color: #f5f5f5;
    z-index: 200;
    display: flex;
    align-items: center;
    justify-content:flex-start;
}


.projectfilters ul{
    display: flex;
    list-style: none;
    gap:20px;
    padding: 0px;
    margin:0px;
    margin-right:20px;
}

@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {
    .projectfilters ul li{
        margin-right:20px;
    }

    .projectfilters ul.tags li{
        margin-right:0px;
        margin-left: 20px;
    }
}

.projectfilters ul li a{
    border-radius: 5px;
    background-color: #FFF;
    color: #ababab;
    text-decoration: none;
    padding: 5px;
    padding-left: 10px;
    padding-right: 10px;
    text-transform: uppercase;
    font-size: 12px;
    font-family: 'DIN';
    font-weight: 500;
}

/*.projectfilters ul li a.tag {
    border:1px solid #ababab;
    background-color: transparent;
}*/

.projectfilters ul li a.selected, .projectfilters ul li a:hover{
    background-color: #d2d2d2;
    color: #FFF;
}





.projectsgrid{
    display: flex;
    display: -ms-flexbox;
    flex-direction: row;
    flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    justify-content: flex-start;
    align-items: stretch;
    align-content: flex-start;
    gap:20px;
}
.projetitem{
    width: calc((100% - (4*20px))/5);
    box-sizing: border-box;
    padding: 10px;
    background-color: #fff;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    overflow: hidden;
    text-decoration: none;
    color:inherit;
   
}
@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {
    .projetitem{
        margin-right: 20px;
        margin-bottom: 20px;
    }
}

.projetitem.ajax{
    visibility:hidden;
}


.projetitem img{
    max-width: 100%;
}

.projetitem .thumb{
    position: relative;
    background-size: 100% auto;
    background-repeat: no-repeat;
    width:100%;
    padding-top:56.83%;
    overflow: hidden;
    z-index: 1;
}

.projetitem .thumb img{
    position: absolute;
    left:0px;
    top:0px;
    width:100%;
    height:auto
}

.projetitem .thumb .mobileframe{
    position: absolute;
    left:10%;
    top:10%;
    width: 80%;
}

.projetitem .thumb .mobileframe img{
    position: relative;
}

.projetitem h2{
    font-family: "DIN";
    font-weight: 500;
    color: #333;
    font-size: 14px;
    margin-top: 10px;
    margin-bottom: 10px;
}

.projetitem h3{
    margin: 0px;
    margin-top: 10px;
    text-transform: uppercase;
    font-size: 12px;
    font-weight: normal;
}

.projetitem h3 .nouveaute{
    color: #2ba4df;
    font-weight: 800;
}

.projetcontainer{
    position: relative;
    width:100%;
    padding-left: 40px;
    padding-right: 40px;
    background-color: #000;
    display: note;
    margin-left: -40px;
    margin-right: -40px;
    padding-top: 0px;
    padding-bottom: 0px;
    background-color: #F7F7F7;
     /*background-image: url(../img/trait.gif);*/
     border-top: 1px solid #ddd;
    background-repeat: repeat-x;
    background-position: left top; 
    overflow: hidden;
    height: 0px;
}

.projetcontainer.detailfrompage{
    height:auto;
    padding-top:25px;
    padding-bottom:27px;
    border-top: none;
}

.projetcontainer:after{
    content:"";
    display: block;
    position: absolute;
     /*background-image: url(../img/trait.gif);*/
     border-bottom: 1px solid #ddd;
    background-repeat: repeat-x;
    background-position: left bottom;
    height:2px;
    width:100%;
    bottom:0px;
    left:0px;
}
.projetcontainer.loading{
    display: flex;
    justify-content: center;
    align-items: center;
    overflow: hidden;
}

.projetcontainer.loaded{
    display: block;
}

.projectdetails{
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    opacity: 0;
}

.projetcontainer.detailfrompage .projectdetails{
    opacity: 1;
}

.projetcontainer.loading .projectdetails{
    opacity:0;
    /*visibility:hidden;*/
}

.projectdetails .closeproject{
    display: block;
    background-image: url(../img/close_icon.svg);
    background-repeat: no-repeat;
    background-position: center center;
    background-color: rgba(200,200,200,.5);
    border-radius: 20px;
    background-size: 50%;
    height: 20px;
    width: 20px;
    position: absolute;
    top: 15px;
    left: 15px;
}


.projectcontent{
    width:480px;
    color: #545454;
    font-size: 14px;
}

.projectcontent a.whitebtn, a.btn{
	border-radius: 5px;
	background-color:#FFF;
	text-decoration:none;
	padding:5px;
	padding-left:10px;
	padding-right:10px;
	text-transform:uppercase;
	font-size:12px;
	font-weight:bold;
	white-space: nowrap;
}

a.btn{
    margin-top:40px;
    display: inline-block;
}

.projectcontent a.whitebtn:hover, a.btn:hover{
	background-color:#2BA4DF;
	color:#FFF !important;
}

.projectcontent span.graybtn{
	border-radius: 5px;
	background-color:#FFF;
	text-decoration:none;
	padding:5px;
	text-transform:uppercase;
	font-size:9px;
	font-weight:bold;
	 white-space: nowrap;
	
}

.projectcontent h2{
    font-family: 'DIN';
    color: #333;
    font-size: 22px;
    font-weight: bold;
}

.projectimages{
    width:calc(100% - 540px);
    overflow: hidden;
}

.archivegrid{
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: flex-start;
    align-items: stretch;
    align-content: flex-end;
    gap: 20px;
    margin-top: 20px;
}

.archivegrid, .archivegrid > span, .archivegrid > a{
    line-height: 22px;
}

.archiveitem.highlight{
    font-size: 1.2em;
    font-weight: bold;
}

/*.archiveitem.selected{
    font-weight: bold;
}*/

.archives h2{
    font-family: 'DIN';
    color: #c0c0c0;
    font-size: 22px;
    font-weight: bold;
    margin-top:60px;
    margin-bottom: 40px;
}

.archivegrid .anneetitre{
    color:#c0c0c0;
    font-family: 'DIN';
    font-weight: bold;
    font-size: 1.2em;

}
/*** PROJETS ***/

/*** COMPETENCES ***/
.competenceitem{
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
     /*background-image: url(../img/trait.gif);*/
     border-bottom: 1px solid #ddd;
    background-repeat: repeat-x;
    background-position: left bottom;
    padding-bottom: 47px;
    padding-top: 40px;
    overflow: hidden;
}

.competencecontent{
    width:65%;
    color: #545454;
    font-size: 16px;
}

.competencecontent h2{
  font-family: 'DIN';
  color: #333;
  font-size: 30px;
  font-weight: bold;
  margin-top: 10px;
}


.competenceimages{
    width:calc(70% - 60px);
}

.competenceswiper .swiper-slide{
    display: flex;
    align-items: center;
    justify-content: center;
}

.competenceswiper .swiper-slide img{
    max-height: 600px;
}


/*** COMPETENCES ***/

/*** CONTACT ***/

#map{
    width: 100%;
    height:400px;
}



/*** CONTACT ***/


/*** LOADER ***/
.lds-ring {
    display: inline-block;
    position: relative;
    width: 80px;
    height: 80px;
  }
  .lds-ring div {
    box-sizing: border-box;
    display: block;
    position: absolute;
    width: 64px;
    height: 64px;
    margin: 8px;
    border: 8px solid #fff;
    border-radius: 50%;
    animation: lds-ring 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite;
    border-color: #fff transparent transparent transparent;
  }
  .lds-ring div:nth-child(1) {
    animation-delay: -0.45s;
  }
  .lds-ring div:nth-child(2) {
    animation-delay: -0.3s;
  }
  .lds-ring div:nth-child(3) {
    animation-delay: -0.15s;
  }
  @keyframes lds-ring {
    0% {
      transform: rotate(0deg);
    }
    100% {
      transform: rotate(360deg);
    }
  }
/*** LOADER ***/

/*** SWIPER ***/
.swiper-button-next, .swiper-button-prev{
    width:30px;
    height:30px;
    margin-top: 0px;
}

.swiper-button-next:after, .swiper-button-prev:after{
    width:30px;
    height:30px;
    background-color: rgba(43, 164, 223, .8);
    color:#fff;
    border-radius: 100%;
    font-size: 12px;
    display: flex;
    justify-content: center;
    align-items: center;
}
/*** SWIPER ***/

.mobileonly{
    display: none;
}

@media all and (max-width:2200px){
    .projetitem{
        width: calc((100% - (4*20px))/5);
    }
}

@media all and (max-width:1900px){
    .projetitem{
        width: calc((100% - (4*20px))/5);
    }
}

body.home .projetitem{
    width: calc((100% - (3*20px))/4);
}

@media all and (max-width:1600px){
    .projetitem{
        width: calc((100% - (3*20px))/4);
    }
}

@media all and (max-width:1300px){
    .projetitem{
        width: calc((100% - (2*20px))/3);
    }
    body.home .projetitem{
        width: calc((100% - (2*20px))/3);
    }
}



@media all and (max-width:1023px){
    .mobileonly{
        display: block;
    }
    header{
        display: none;
    }
    header.mobile{
        display:flex;
        z-index: 3000;
    }
    .pageitem{
        flex-direction: column;
    }
    .pagecontent{
        width:100% !important;
        padding-right: 40px;
    }
    .pageimages{
        width:100% !important;
    }

    .contact .pageimages{
        height:300px;
        margin-top: 20px;
    }

    .projectdetails{
        flex-direction: column;
    }
    .projectcontent{
        width:100%;
    }

    .projectswiper .swiper-slide{
        max-width:100%;
        text-align: center;

    }
    .projectswiper img{
        height: auto;
        width:auto;
        max-width: 100%;
    }
    .mobileframe{
        display: inline-block;
    }
    

    .swiper .mobileframe .cadre, .swiperhome img {
        max-height: 500px;
        width:auto;
        max-width: 100%;
    }

    .projectimages{
        width:100%;
    }

    .projectfilters{
        display: none;
    }

    .competenceitem{
        flex-direction: column;
    }

    .competencecontent{
        width:100%;
    }

    .competenceimages{
        width:100%;
        margin-top: 40px;
    }

    body{
        padding-top: 60px;
    }
    body.projets {
        padding-top: 90px;
    }

    .hamburger{
        z-index: 3000;
        margin-top:17px;
    }

    header .logo{
        z-index: 3000;
    }


    .headernav {
        display: flex;
        flex-direction: column;
        align-items: center;
        position: fixed;
        width: 100vw;
        height: 100vh;
        z-index: 2000;
        background-color: #f2f1f1;
        top: 0px;
        left: 0px;
        justify-content: space-between;
        box-sizing: border-box;
        padding-top: 20px;
        padding-bottom: 20px;
        transform: translateY(-100%);
        transition: transform .5s ease-in-out;
        
    }

    header.mobile .logo{
        width:190px;
    }

    body.menuopened .headernav {
        transform: translateY(0);
    }
    .headernav ul{
        flex-direction: column;
        align-items: center;
        width: 100%;
        font-size: 30px;
        opacity: 0;
        transition: transform 2s ease-in;
    }

    body.menuopened .headernav ul{
        opacity:1;
    }
}

@media all and (max-width:900px){
    .projetitem{
        width: calc((100% - (1*20px))/2);
    }
    body.home .projetitem{
        width: calc((100% - (1*20px))/2);
    }

    footer{
        flex-direction: column;
        padding-top:10px;
        padding-bottom:10px;
    }

    #map{
        width: 100%;
        height:400px;
    }
}


@media all and (max-width:820px){

 .competenceitem:nth-child(2n+1) {
  flex-direction: column !important;
}
    
    
}

@media all and (max-width:600px){
    .inside{
        padding-left:15px;
        padding-right: 15px;
    }
    .pagecontent{
        padding-left:15px;
        padding-right: 15px;
    }
    .projetitem{
        width: 100%;
    }
    body.home .projetitem{
        width: 100%;
    }

    .swiper .mobileframe .cadre, .swiperhome img {
        max-height: 300px;
    }
    

    .swiperhome div.titre{
        font-size:28px;
    }
    
    .swiperhome div.text{
        font-size:20px;
    }
    .swiperhome div.text a{
        font-size: 12px;
    }

    .projectdetails .closeproject{
        left:35px;
    }
}