/* Animations */

.visible .d1, .d1.visible{
  transition-delay: 300ms
}
.visible .d2, .d2.visible{
  transition-delay: 600ms
}
.visible .d3, .d3.visible{
  transition-delay: 900ms
}
.visible .d4, .d4.visible{
  transition-delay: 1200ms
}
.visible .d5, .d5.visible{
  transition-delay: 1500ms
}
.visible .d6, .d6.visible{
  transition-delay: 1800ms
}
.visible .d7, .d7.visible{
  transition-delay: 2100ms
}
.visible .d8, .d8.visible{
  transition-delay: 2400ms
}
.aniSup{
  opacity:0;
  transform: translate(0px, 300px);
  transition-property: all;
  transition-duration: 1s;
  transition-timing-function: ease;
}
.visible .aniSup, .aniSup.visible{
  transition-property: all;
  transition-duration: 1s;
  transition-timing-function: ease;
  opacity:1;
  transform: translate(0px, 0);
  
}
.visible .aniSup, .aniSup.visible{
  transition-property: all;
  transition-duration: 1s;
  transition-timing-function: ease;
  opacity:1;
  transform: translate(0px, 0);
  
}
.aniDown{
  opacity:0;
  transform: translate(0px, -300px);
  transition-property: all;
  transition-duration: 1s;
  transition-timing-function: ease;
}
.visible .aniDown, .aniDown.visible{
  transition-property: all;
  transition-duration: 1s;
  transition-timing-function: ease;
  opacity:1;
  transform: translate(0px, 0);
  
}

.aniLeft{
  opacity:0;
  transform: translate(-300px, 0);
  transition-property: all;
  transition-duration: 1s;
  transition-timing-function: ease;
}
.visible .aniLeft, .aniLeft.visible{
  transition-property: all;
  transition-duration: 1s;
  transition-timing-function: ease;
  opacity:1;
  transform: translate(0, 0);
  
}

.aniRight{
  opacity:0;
  transform: translate(300px, 0);
  transition-property: all;
  transition-duration: 1s;
  transition-timing-function: ease;
}
.visible .aniRight, .aniRight.visible{
  transition-property: all;
  transition-duration: 1s;
  transition-timing-function: ease;
  opacity:1;
  transform: translate(0, 0);
  
}
.visible .aniRight, .aniRight.visible{
  transition-property: all;
  transition-duration: 1s;
  transition-timing-function: ease;
  opacity:1;
  transform: translate(0, 0);
  
}

.aniScale{
  transform: scale(0.004);
  transition-property: all;
  transition-duration: 1s;
  transition-timing-function: ease;
}
.visible .aniScale, .aniScale.visible{
  transition-property: all;
  transition-duration: 1s;
  transition-timing-function: ease;
  transform: scale(1);
}
.aniOpa{
  opacity:0;
  transition-property: all;
  transition-duration: 1s;
  transition-timing-function: ease;
}
.visible .aniOpa, .aniOpa.visible{
  transition-property: all;
  transition-duration: 1s;
  transition-timing-function: ease;
  opacity:1;
}
.aniRotate{
  opacity:0;
  transform: rotate(270deg) scale(0.1);
  transition-property: all;
  transition-duration: 2s;
  transition-timing-function: ease;
}
.visible .aniRotate, .aniRotate.visible{
  transform: rotate(0) scale(1);
  transition-property: all;
  transition-duration: 2s;
  transition-timing-function: ease;
  opacity:.3;

}
.aniFlip{
  transform: rotateX(90deg) ;
  transition-property: all;
  transition-duration: 1s;
  transition-timing-function: ease;
}
.visible .aniFlip, .aniFlip.visible{
  transform: rotateY(0) ;
  transition-property: all;
  transition-duration: 1s;
  transition-timing-function: ease;

}
.aniRotate2{
  opacity:0;
  transform: rotate(-270deg) scale(0.1);
  transition-property: all;
  transition-duration: 2s;
  transition-timing-function: ease;
}
.visible .aniRotate2, .aniRotate2.visible{
  transform: rotate(0) scale(1);
  transition-property: all;
  transition-duration: 2s;
  transition-timing-function: ease;
  opacity:1;

}
.aniRotate3{
  opacity:0;
  transform: rotate(180deg) scale(0.01);
  transition-property: all;
  transition-duration: 2s;
  transition-timing-function: ease;
}
.visible .aniRotate3, .aniRotate3.visible{
  transform: rotate(0) scale(1);
  transition-property: all;
  transition-duration: 2s;
  transition-timing-function: ease;
  opacity:1;

}
@font-face {
  font-family: 'Akrobat';
  src: url('fonts/Akrobat-Regular.eot');
  src: local('☺'), url('fonts/Akrobat-Regular.woff') format('woff'), url('fonts/Akrobat-Regular.ttf') format('truetype'), url('fonts/Akrobat-Regular.svg') format('svg');
  font-weight: normal;
  font-style: normal;
}
@font-face {
  font-family: 'Akrobat';
  src: url('fonts/Akrobat-Bold.eot');
  src: local('☺'), url('fonts/Akrobat-Bold.woff') format('woff'), url('fonts/Akrobat-Bold.ttf') format('truetype'), url('fonts/Akrobat-Bold.svg') format('svg');
  font-weight: bold;
  font-style: normal;
}
@font-face {
  font-family: 'Akrobat';
  src: url('fonts/Akrobat-ExtraBold.eot');
  src: local('☺'), url('fonts/Akrobat-ExtraBold.woff') format('woff'), url('fonts/Akrobat-ExtraBold.ttf') format('truetype'), url('fonts/Akrobat-ExtraBold.svg') format('svg');
  font-weight: 900;
  font-style: normal;
}

/* General CSS */
:root{
  --c1:#BE1D2C;
  --c2:#292563;
  --grisCat:rgb(220,220,220);
      --ham:#000;
      --shad:0 3px 15px 5px rgba(0,0,0,0.1);
}

body{overflow-x: hidden;
font-family:"Akrobat"}

a{color:var(--c1); transition: color .3s ease}
a:hover{
  text-decoration: none;
  color:var(--c1);
}
a.dec:hover{
  color:#fff
}
input{border:none;}
/*Helpers*/
.op0{opacity:0;}
.op1{opacity: 1;}
.h100{ height:100%;}
.w100{ width:100%;}
.rel{ position:relative;}
.bgc{
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}
.centerCont{
  display:flex;
  justify-content: center;
  align-items:center;
}
.noUnder{
  text-decoration: none;
  color:inherit;
}
.noUnder:hover{
  text-decoration: none;
}
/*Site specific CSS*/

@media (min-width: 1200px){
  .container {
    max-width: 1360px;
  }
}
.shadow{
  box-shadow:var(--shad)
}
.navSec{
  background-color: #fff;
}
#contTopMenu{
  background: #F1F1F1;
  padding:1rem 0
}
.dropdown-toggle::after{
  content:none
}
#colNavBar{
  display: flex;
  justify-content:flex-end;
  font-weight:bold;
  text-transform:uppercase
}
#colNavBar > *{
  margin: 0 2rem
}
#colNavBar > a{
  color:#000
}
#colNavBar svg{
  color: var(--c1)
}
.navbar{
  width: 100%;  
}
.navbar-nav{
  justify-content: flex-end;
  width:100% ;
  align-items: center;
}
.dropdown-menu{
  display:block;
  transition:all .7s ease;
  overflow:hidden;
  max-height:0;
  border:none;
  border-radius:0;
  padding:0
}
.dropdown-menu.show{
  max-height:500px;
  box-shadow:var(--shad);
      padding: .5rem 0;
}
/*Hamburger menu*/
.navbar-toggler
{margin-top: 5px;}

.barreHamMenu
{
  width: 30px;
  height: 3px;
  margin-top: 3px;
  margin-bottom: 8px;

  -webkit-transition: all .3s ease;
  -o-transition: all .3s ease;
  transition: all .3s ease;

  background-color: var(--ham);
}
.navbar-toggler[aria-expanded='true'] .barreHamMenu
{
  width: 35px;

  -webkit-transition: all .3s ease;
  -o-transition: all .3s ease;
  transition: all .3s ease;
  -webkit-transform: rotate(-45deg);
  -ms-transform: rotate(-45deg);
  transform: rotate(-45deg);
}
.navbar-toggler[aria-expanded='true'] .barreHamMenu:first-child
{
  -webkit-transform: none;
  -ms-transform: none;
  transform: none;

  opacity: 0;
}
.navbar-toggler[aria-expanded='true'] .barreHamMenu:last-child
{
  margin-top: -11px;

  -webkit-transform: rotate(45deg);
  -ms-transform: rotate(45deg);
  transform: rotate(45deg);
}
.nav-item{
  display:flex;
  align-items:center;
  margin:1rem 
}
.nav-link{
  white-space:nowrap;
  font-size:20px;
  color:#000;
  
  padding:0
}

.active .nav-link{
  color:var(--c1)
}
.nav-item::before{
  display:block;
  content:"";
  height:45px;
  width:8px;
  background:#EEE
}
.visible .nav-link{
  color:white!important;
}
.dropdown-menu.show{
  border:none;
  border-radius:0;
  box-shadow:var(--shad)
}
.navbar-brand img{
  margin-top:-70px
}
#slider{
  height:50vh;
  width:100%;
  position:relative;
}
#index #slider{
  height:90vh;
}
#slider .carousel-item, #carousel-inner{
  height:100%;
}
.vert .carousel-item-next.carousel-item-left,
.vert .carousel-item-prev.carousel-item-right {
    -webkit-transform: translate3d(0, 0, 0);
            transform: translate3d(0, 0, 0);
}

.vert .carousel-item-next,
.vert .visible.carousel-item-right {
    -webkit-transform: translate3d(0, 100%, 0);
            transform: translate3d(0, 100% 0);
}

.vert .carousel-item-prev,
.vert .visible.carousel-item-left {
-webkit-transform: translate3d(0,-100%, 0);
        transform: translate3d(0,-100%, 0);
}
.dec{
  padding:8px 40px;
  border-radius:7px;
  text-align: center;
  background:var(--c1);
  color:#fff;
  transition:all .7s ease
}
.dec svg{
  color: #fff;
  margin-right:.5rem;
  transition:all .7s ease
}
.dec:hover{
  cursor: pointer;
  letter-spacing:1px
}
.dec:hover svg{
  margin-right:1rem;
  margin-left:-.5rem
}
.rappelBtn:hover{
  cursor:pointer
}
.linkHome.active{color:var(--c1)!important}

/*Main section*/
#main{
  margin-top:-70px;
  padding-top:14rem;
  padding-bottom: 6rem;
}
#index #main{
  padding-top:0
}
.blocContact{
  padding:2rem;
  padding-bottom:3rem;
  box-shadow:var(--shad);
  height:100%;
  background:#fff;
  margin-bottom:2rem
}
.blocContact .dec{
  margin-top:1.5rem
}
.blocContact > div svg{
  color:var(--c1);
  font-size:20px;
  margin-right:1rem
}
.blocContact > div{
  line-height:1;
  margin-bottom:1rem
}
.blocContact > div:nth-child(3){
  margin-bottom:2rem
}
.blocContact span,.blocContact span a{
  color:var(--c2);
  font-size: 20px;
  font-weight:900
}
.titreContact{
  font-size:30px;
  font-weight:900;
  color:var(--c2);
}
.inputText{
  border-radius:7px;
  width: 100%;
  background-color:#ECECEC;
  padding:1rem;
  border:none
}

option:disabled {
    color: #9FA09F;
}
.inputRap{
  background-image:url('/img/v.png');
  background-position:95% 50%;
  background-repeat: no-repeat;

}
.inputDevis{
  background-image:url('/img/v2.png');
  background-position:95% 50%;
  background-repeat: no-repeat;
  -webkit-appearance: none;
  -moz-appearance: none;
  text-indent: 1px;
  text-overflow: '';
}
.inputDevis::-ms-expand {
    display: none;
}
#formContact #inputVille{
  max-height:0;
  padding:0;
  transition:all .7s ease;
  overflow: hidden;
  margin-bottom:0;
  
}
#formContact #inputVille.visible{
  max-height:100px;
  padding:1rem;
  margin-bottom:1rem
}
#txtMain{
  background:#EFEFEF;
  margin-top:8rem
}
#contTextMain{
  transform:translateY(-100px)}
.boxShadow{
    box-shadow:var(--shad);
    width:100%;
    height:100%

}
.blocImgMain{
  padding-top:100%;
  width:100%;
  background-image:url('/img/imgMain.jpg');
  height:100%;
  position:relative
}
.blocImgMain.bis{
  background-image:none;
}
.blocImgMain.rennes{
  background-image:url('/img/rennes.jpg');
}
.blocImgMain.nantes{
  background-image:url('/img/nantes.jpg');
}
.blocImgMain.orleans{
  background-image:url('/img/orleans.jpg');
}
#sliderInterne{
  position:absolute;
  top:0;
  left:0;
  height:100%;
  width:100%
}
.blocTexte{
  padding:4rem;
  background-color:#fff;
  height:100%;
  display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
}
.titre{
  font-size:50px;
  font-weight:900;
  color:var(--c2)
}
.titre.bis{color:#fff}
.ssTitre {
  font-size:30px;
  font-weight:900;
  
}

.texte {
  text-align:justify;
  font-size:18px;
}
.texte.bis{
  color:#fff;
}
.texte.ter{
  color:#fff;
  font-size:22px;
  font-weight:900
}
.blocSvc{
  background:var(--c2);
  padding:3rem;
  height:100%;
  display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
}
.blocSvc.bis{
  padding:4rem
}
.titreSvc{
  text-transform: uppercase;
  font-size:30px;
  color:#fff;
  font-weight:900;
  margin-bottom:2rem
}
.rondFleche{
  border-radius:50%;
  width:40px;
  height: 40px;
  margin-right:1rem;
  background:var(--c1);
  display:flex;
  -webkit-justify-content: center;
          justify-content: center;
  -webkit-align-items: center;
          align-items: center;
}
.rondFleche svg{
  color:#fff;
  font-size:25px
}
.ssTitreSvc{
  font-size:26px;
  color:#fff;
  font-weight:900;
  margin-bottom:0
}
.listPage{
  padding-left:0;
  column-count: 2;
  margin-bottom:1.5rem

}
.listPage li{
  display:flex;
  font-size:18px;
  margin-bottom:.5rem;
  align-items:center;
}
.listPage li::before{
  content:"";
  width:10px;
  height:10px;
  border-radius:50%;
  background:var(--c1);
  margin-right:.7rem
}
.listPage li a {
  color:#fff;
}
.blocSvc .d-flex{
  margin-bottom:1rem
}
#actuSec{
  padding:8rem 0
}
.titreSecActu{
  text-transform: uppercase;
  font-size:30px;
  color:var(--c2);
  font-weight:900;

}
.texteContact{
  font-size:26px;
  margin-top:2rem
}
.texteContact span a, .texteContact span{
  font-weight:bold;
  color: var(--c2)
}
#actusP #main{
  margin-top:0
}
.rActu{
  margin-top:5rem
}
.cActu{
  box-shadow:var(--shad)
}
.contActu{
  padding:2.5rem
}
.imgActu{
  width:100%;
  padding-top: 60%;

  position:relative;
}
.titreActu {
  text-overflow: ellipsis;
  margin-bottom:1.5rem ;
  display: -webkit-box;
     -webkit-line-clamp: 2; 
     -webkit-box-orient: vertical;
  font-size:26px;
  color:var(--c2);
  font-weight:900;
  min-height:72px;
  overflow: hidden; 
}
.resume{
  display: -webkit-box;
  -webkit-line-clamp: 3; 
  -webkit-box-orient: vertical;
  text-overflow: ellipsis;
      overflow: hidden; 
  font-size:18px

}
.lire {
  margin-top:2rem;
  text-decoration:underline;
  font-weight:900;
  font-size:18px
}
#rep{
  border:1px solid grey ;
  width:40px;
  height:40px
}
#brand{
  margin-top:2rem;
  margin-bottom:4rem;
}
#brand img{
  margin:1rem 0
}
.rGal{
  background:#fff
}
.contGal{
  width:100%;
  padding-top:100%;
  position:relative;
}
.modal-content{
  border-radius:0
}
.modal.show .modal-content{
  box-shadow:var(--shad)
}
.ekko-lightbox-nav-overlay a:first-child{
  justify-content: flex-start;
  padding-left:1rem
    
}
.ekko-lightbox-nav-overlay a:last-child{
  justify-content: flex-end;
  padding-right:1rem
    
}

.ekko-lightbox-nav-overlay a>* {
    flex-grow: unset; 
}
.intGal{
  position: absolute;
  top:0;
  left:0;
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction:column;
  -webkit-justify-content: center;
          justify-content: center;
  -webkit-align-items: center;
          align-items: center;
  padding:1rem;
  -webkit-transition: all .7s ease;
     -moz-transition: all .7s ease;
      -ms-transition: all .7s ease;
       -o-transition: all .7s ease;
          transition: all .7s ease;
}
.titreGal{
  font-size:40px;
  font-weight:800;
  color:#fff;
  text-align:center;
  transition:all .7s ease
}
.texteGal{
  max-height:0;
  overflow:hidden;
  transition:all .7s ease;
  color:#fff;
  font-size:18px;
}
.intGal:hover .texteGal{
  max-height:300px;
  transition:all 1.5s ease;
}
.intGal:hover .titreGal{
  transform:scale(.7)
}
.colGal:nth-child(odd) .intGal{
  background:rgba(169, 52, 48,0.5)
}
.colGal:nth-child(odd) .intGal:hover{
  background:rgba(169, 52, 48,.9)
}
.colGal:nth-child(even) .intGal{
  background:rgba(40, 39, 96,0.7)
}
.colGal:nth-child(even) .intGal:hover{
  background:rgba(40, 39, 96,0.9)
}
#formContact .inputText{
  margin-bottom:1rem
}
#contact .modal-backdrop.fade.show{
  display:none
}
/*Footer}*/
#contFooter{
  padding:6rem 0;
  background-image:url('/img/bgFooter.jpg')
}
.listPage.bis{
  column-count: 3;
}
.titreFoot{
  text-transform: uppercase;
  font-size:30px;
  color:#fff;
  font-weight:900;
}
.texteFoot{
  color:#fff;
  font-size:18px;
  margin-top:1.5rem
}
.social svg{
  font-size: 26px;
  color: rgb(138, 138, 138);
  margin-left:15px;
}
.credits {
  padding: 1rem 0
}
.credits a{
  color:inherit;
}
#actu .col-lg-6 .img-fluid{
  padding-top:4rem
}
/*Mpas*/
#map{
  min-height:400px;
  width:100%;
  height:100%
}
/*Youtube*/
.video-container {
  position: relative;
  padding-bottom: 56.25%;
  padding-top: 30px; 
  height: 0; 
  overflow: hidden;
}
.video-container iframe,
.video-container object,
.video-container embed {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
.video-container2 {
  position: relative;
  padding-bottom: 56.25%;
  padding-top: 30px; 
  height: 0; 
  overflow: hidden;
  width: 100%;
}
.video-container2 iframe,
.video-container2 object,
.video-container2 embed {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
#rep{
  border:1px solid grey;
  width:40px;
  height:40px
}

@media (max-width: 991px) {

  .navbar-nav{
    padding-left:0;
    align-items:flex-start
  }
  .rIntro .col-lg-4{
    margin-bottom:2rem
  }
  .rActu .col-lg-4{
    margin-bottom:2rem
  }
  .titre{
    font-size:40px;
  }
  .nav-item::before {
    margin-right: 5px
  }
  .nav-item {
    margin-left:0
  }
  .nav-link{
    font-size:16px
  }
   .listPage.bis {
        column-count: 2;
  }
  .txtNav{
      margin-right: .5rem;
}
}

@media (max-width: 767px) {
  #colNavBar > * {
    margin: 0 .5rem;
  }
  .listPage, .listPage.bis {
        column-count: 1;
  }
  .blocTexte, .blocSvc, .blocSvc.bis {
    padding:2rem
  }
  #main{
    padding-bottom: 2rem;
  }
  #txtMain{
    margin-top: 6rem;

  }
}
@media (max-width: 575px) {
}

