@font-face {
  font-family: 'icomoon';
  src:  url('fonts/icomoon.eot?bwm4gm');
  src:  url('fonts/icomoon.eot?bwm4gm#iefix') format('embedded-opentype'),
    url('fonts/icomoon.ttf?bwm4gm') format('truetype'),
    url('fonts/icomoon.woff?bwm4gm') format('woff'),
    url('fonts/icomoon.svg?bwm4gm#icomoon') format('svg');
  font-weight: normal;
  font-style: normal;
  font-display: block;
}

[class^="icon-"], [class*=" icon-"] {
  /* use !important to prevent issues with browser extensions that change fonts */
  font-family: 'icomoon' !important;
  speak: never;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;

  /* Better Font Rendering =========== */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.icon-cart-icon-original:before {
  content: "\e900";
}
.icon-arrow-left:before {
  content: "\e901";
}
.icon-facebook:before {
  content: "\e902";
}
.icon-instagram:before {
  content: "\e903";
}
.icon-linkedin:before {
  content: "\e904";
}
.icon-arrow-right:before {
  content: "\e905";
}
.icon-email:before {
  content: "\e906";
}
.icon-marker:before {
  content: "\e907";
}
.icon-tel:before {
  content: "\e908";
}
.icon-user:before {
  content: "\e971";
}



/*  ---- CORE ----  */

body { position: relative;  font-size: 16px; font-family: 'Montserrat', sans-serif;  overflow-x: hidden;}
input { border-radius: 0;}
img:focus, a:focus, input[type="submit"]:focus, :focus  { outline:0 !important; }
input, textarea, button, select, a, div { -webkit-tap-highlight-color: transparent;}
a, a:focus, a:hover { outline: none; text-decoration: none;}
a { color: #231f20;  -webkit-transition: all 0.25s ease; transition: all 0.25s ease;}
a:hover { color:#231f20;}
button::-moz-focus-inner { border: 0;}
p { color: #3a3a3a; font-size: 16px;  line-height: 1.6;}
img { max-width: 100%; height: auto;}
b, strong { font-weight: 700;}

h1, h2, h3, h4, h5 { font-family: 'Montserrat', sans-serif; font-weight: 800;  color: #231f20;}


/**** SEOPRESS CONSENT ****/

body .seopress-user-consent { border:0;   z-index: 999999;}
body .seopress-edit-choice {  z-index: 999998;}
body .seopress-user-consent-backdrop { z-index: 99999; }
.seopress-user-message.seopress-user-consent button, .seopress-user-consent #seopress-user-consent-close, body  #seopress-user-consent-edit { 
  font-size: 14px;
  background: transparent;
  border: #231f20 1px solid;
  color: #231f20;
  cursor: pointer;
  font-weight: 500;
  outline: 0;
  border-radius: 25px;
  padding: 3px 10px;
  box-shadow: none;
  -webkit-transition: all .2s; 
  transition: all .2s;
}
.seopress-user-consent button:hover, #seopress-user-consent-close:hover, body  #seopress-user-consent-edit:hover { background: #231f20;  border: 1px solid #231f20;  color: #FFF;}
.seopress-user-consent a { text-decoration: underline; }

#moove_gdpr_cookie_modal .moove-gdpr-modal-content.logo-position-left .moove-gdpr-company-logo-holder { display: none; }

body #moove_gdpr_cookie_info_bar.moove-gdpr-dark-scheme, body #moove_gdpr_cookie_info_bar.moove-gdpr-light-scheme {
    background-color: rgba(0, 0, 0, .85);
    border-top: 0;
    z-index: 999999999;
    min-height: 100%;
    padding: 0 20px;
}
body #moove_gdpr_cookie_info_bar .moove-gdpr-info-bar-container {
    position: relative;
    display: inline-block;
    top: calc(50vh - (170px / 2));
    width: 100%;
    max-width: 400px;
    left: 0;
    text-align: center;
    background: #FFF;
    padding: 30px;
    border-radius: 6px;
}

body #moove_gdpr_cookie_info_bar .moove-gdpr-info-bar-container .moove-gdpr-info-bar-content {
    padding-left: 0;
    padding-right: 0;
    text-align: left;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: center;
    align-items: self-start;
    justify-content: flex-start;
    width: 100%;
    flex-direction: column;
}

body #moove_gdpr_cookie_info_bar .moove-gdpr-info-bar-container .moove-gdpr-info-bar-content p, body #moove_gdpr_cookie_info_bar .moove-gdpr-info-bar-container .moove-gdpr-info-bar-content p a { 
  color: #000;
  font-size: 15px;
  font-weight: 400;
}

body #moove_gdpr_cookie_info_bar .moove-gdpr-info-bar-container .moove-gdpr-info-bar-content .moove-gdpr-button-holder {
    padding-left: 0;
    gap: 10px;
    margin-top: 20px;
}

body #moove_gdpr_cookie_info_bar .moove-gdpr-info-bar-container .moove-gdpr-info-bar-content button.mgbutton {  margin: 0; }


body .gdpr_lightbox { z-index: 999999999; }


h2 { font-size: 1.4rem; }

.animate {-webkit-transition: all 0.25s ease; transition: all 0.25s ease;}
.stopFlickering { 
    -webkit-backface-visibility: hidden;
    -webkit-transform: translateZ(0) scale(1.0, 1.0);
    transform: translateZ(0);
}

.grecaptcha-badge {opacity:0;}

.clear { clear: both; display: block;}
.btn { white-space: normal;}

.cover {
  background-repeat: no-repeat;
  background-position: center;
  -webkit-background-size: cover;
  -moz-background-size: cover;
  -o-background-size: cover;
  background-size: cover;
}


body .container {
  width: 100%;
  max-width: 1530px;
}
.container-full {
  width: 100%;
  padding-left: 20px;
  padding-right: 20px;
}
.container-full > .row {
  margin-left: 0;
  margin-right: 0;
}
.container-full > .row > [class^="col"] {
  padding-left: 0;
  padding-right: 0;
}
.padding130 {
  padding: 130px 0;
}


.cta {
    border: #231f20 1px solid; 
    color: #231f20; 
    background: transparent;
    line-height: 1.1; 
    border-radius:25px; 
    font-size: 16px; 
    font-weight: 500;
    text-decoration: none; 
    text-transform: none;
    padding: 15px 30px;
    display: inline-block;
    -webkit-transition: all 0.25s ease; 
    transition: all 0.25s ease;
}
.cta:hover { color: #FFF; background: #231f20; }


.image-texte, .texte-image { padding: 60px 0 0 0; }

.image-texte::after, .texte-image::after { 
    content:""; 
    display: block;
    background: #231f20;
    height: 2px;
    margin: 60px 20px 0 20px;
}

.image-texte .image-wrap { position: relative; left: 0; }
.texte-image .image-wrap { position: relative; right: 0; } 

.image-texte .texte-wrap, .texte-image .texte-wrap { max-width: 720px; }

.image-texte .texte-wrap h2, .texte-image .texte-wrap h2, .image-texte .texte-wrap h1 { font-size: 30px; margin: 0 0 30px 0; text-transform: uppercase; color: #231f20;}
.image-texte .texte-wrap p:last-of-type, .texte-image .texte-wrap p:last-of-type { margin: 0;}

.image-texte .image-wrap, .texte-image .image-wrap { margin-bottom: 40px;  position: relative; }


.header { 
    position: fixed;
    top:0; left:0;
    width: 100%;
    height: 150px;
    z-index: 99999;
   -webkit-transition: all 0.25s ease; 
    transition: all 0.25s ease;
}


.header .logo-noir { display: block; }
.header .logo-blanc { display: none; }



.header::after { 
    content:""; 
    display: block;
    background: #231f20;
    height: 2px;
    margin: 0 20px;
    -webkit-transition: all 0.25s ease; 
    transition: all 0.25s ease;
}

.header.changed { height:90px; background: #231f20; }
.header.changed::after { opacity: 0; }

.header .container-full, .header .container-full .row { height: 100%; }

.header .logo { margin-left: 0; display: block;}
.header .logo img { width: 200px; } 

.header .menu-principal ul { list-style: none; margin: 0; padding: 0; }
.header .menu-principal ul li { display: inline-block; padding: 0 3%;}
.header .menu-principal ul li a { color: #231f20; font-size: 18px; font-weight: 400; padding: 0 10px; text-transform: uppercase; text-decoration: none; display: block;}
.header .menu-principal ul li a:hover { }

.header .menu-principal ul li:not(.cta-soumission) a::after {
    content: '';
    display: block;
    height: 2px;
    background: #231f20;
    -webkit-transform: scaleX(0);
    transform: scaleX(0);
    -webkit-transform-origin: 50%;
    transform-origin: 50%;
    -webkit-transition: all 0.25s cubic-bezier(0.77,0.2,0.05,1.0);
    transition: all 0.25s cubic-bezier(0.77,0.2,0.05,1.0);
}
.header .menu-principal ul li:not(.cta-soumission) a:hover::after, .header .menu-principal ul li.current-menu-item:not(.cta-soumission) a::after { -webkit-transform: scaleX(1); transform: scaleX(1); }



.header .menu-principal ul li.cta-soumission a {  
    background: transparent; 
    color: #231f20; 
    border: 1px #231f20 solid;
    line-height: 48px; 
    border-radius:25px; 
    font-size: 14px; 
    font-weight: 500;
    text-decoration: none; 
    text-transform: none;
    padding: 0 20px;
}
.header .menu-principal ul li.cta-soumission a:after { display: none;}
.header .menu-principal ul li.cta-soumission a:hover { background: #231f20;   color: #FFF;  }

.header .menu-principal ul li.nav-compte a { 
    display: inline-block; 
    width:50px; height:50px; 
    text-align: center;
    line-height: 50px;
    border: 1px #231f20 solid;
    background: transparent; 
    font-size: 22px; 
    border-radius:50%;
}
.header .menu-principal ul li.nav-compte a::after { display: none; }
.header .menu-principal ul li.nav-compte a:hover { background: #231f20;   color: #FFF; text-decoration: none; }

.header.changed .menu-principal ul li.cta-soumission a { }
.header.changed .menu-principal ul li.cta-soumission a:hover { background: #000; }

.header.changed .logo-noir { display: none; }
.header.changed .logo-blanc { display: block; }
.header.changed .menu-principal ul li a { color: #FFF;}
.header.changed .menu-principal ul li:not(.cta-soumission) a::after { background: #FFF;}
.header.changed .menu-principal ul li.cta-soumission a {   background: #FFF;  color: #231f20;  border: 0;}
.header.changed .menu-principal ul li.cta-soumission a:hover { background: #000;  color: #FFF;  }

.header.changed .menu-principal ul li.nav-compte a { background: #FFF;  color: #231f20;  border: 0;}
.header.changed .menu-principal ul li.nav-compte a::after { display: none; }
.header.changed .menu-principal ul li.nav-compte a:hover {  background: #000;  color: #FFF; }

.home .header .logo-noir { display: none; }
.home .header .logo-blanc { display: block; }
.home .header::after {  background: rgba(255, 255, 255, 0.5); }


.home .header .menu-principal ul li a { color: #FFF;}
.home .header .menu-principal ul li:not(.cta-soumission) a::after { background: #FFF;}
.home .header .menu-principal ul li.cta-soumission a {   background: #FFF;  color: #231f20;  border: 0;}
.home .header .menu-principal ul li.cta-soumission a:hover { background: #231f20;   color: #FFF;  }
.home .header.changed .menu-principal ul li.cta-soumission a:hover { background: #000; }


.home .header .menu-principal ul li.nav-compte a {   background: #FFF;  color: #231f20;  border: 0;}
.home .header .menu-principal ul li.nav-compte a:hover { background: #231f20;   color: #FFF;  }
.home .header .menu-principal ul li.nav-compte a::after { display: none;}
.home .header.changed .menu-principal ul li.nav-compte a:hover { background: #000; }




/**** ACCUEIL ****/

.accueil .bandeau { height: 700px; padding-top: 150px; background-position: left top;}
.accueil .bandeau .container-full, .accueil .bandeau .container-full .row { height: 100%; }
.accueil .bandeau .wrapper { margin-left: 0;}
.accueil .bandeau h2 { font-size: 38px; font-weight:800; text-transform: uppercase; margin: 20px 0 50px 0; max-width: 670px; color: #FFF; }
.accueil .bandeau p { font-size: 20px; margin:0; color: #FFF;}
.accueil .bandeau a {
    border: #FFF 1px solid; 
    color: #FFF; 
    line-height: 1.1; 
    border-radius:25px; 
    font-size: 16px; 
    font-weight: 500;
    text-decoration: none; 
    text-transform: none;
    padding: 15px 30px;
    display: inline-block;
}
.accueil .bandeau a:hover { color: #231f20; background: #FFF; }
    

.accueil .home-realisations { padding: 60px 0; }
.accueil .home-realisations .texte-wrap {
    text-align: center;
    display: block;
    margin: 0 auto;
    max-width: 1040px;
    padding: 0 20px;
}
.accueil .home-realisations .texte-wrap h2  { font-size: 30px; margin: 0 0 40px 0; text-transform: uppercase; color: #231f20; }
.accueil .home-realisations .texte-wrap p { margin: 0;}

.accueil .home-realisations .realisations-slider  { margin: 60px 0 30px 0;}
.accueil .home-realisations .container-full { padding: 0; }
.accueil .home-realisations .slick-slide { margin: 0 20px;}
.accueil .home-realisations .slick-slide img { width: 100%; max-width: none; }
.realisations-slider .slick-prev, .realisations-slider .slick-next { z-index: 10; width: 30px; height:30px;}
.realisations-slider .slick-prev { left: calc(25% + 50px); }
.realisations-slider .slick-next { right: calc(25% + 50px); }
.slick-prev:before, .slick-next:before {
    font-family: 'icomoon';
    font-size: 30px;
    line-height: 1;
    opacity: 1;
    color: white;
}
.slick-prev:before {  content: "\e901";}
.slick-next:before {  content: "\e905"; }

.home-produit .cta { margin-top: 30px; }

/**** GÉNÉRAL ****/

.general { padding-top: 80px;}
.general h1 { text-align: center; font-size:30px; text-transform: uppercase; margin-bottom: 30px; }
.general .top-texte { padding-top: 60px; }
.general .top-texte p {  font-size: 18px;  }
.general .texte-wrap { text-align: left;  margin: 0 auto 60px auto; max-width: 1080px;}

.general .infos-wrap { display: block; }
.general .infos-wrap .info { font-weight: 700; }
.general .info, .general .info:hover { text-decoration: none; display: inline-block; margin: 0 45px 50px 45px; font-size: 18px; color: #3a3a3a;  }
.general .info i { display: inline-block; margin-right: 20px; vertical-align: middle;}
.general .info .icon-tel { font-size: 27px; }
.general .info .icon-email { font-size: 23px;  vertical-align: -4px; }
.general .info .icon-marker { font-size: 31px; vertical-align: -7px; }





/****** À PROPOS ******/

.apropos .top-texte::after {
    content:""; 
    display: block;
    background: #231f20;
    height: 2px;
    margin: 60px 20px 0 20px;
}
.apropos.general .texte-wrap { margin: 0 auto; text-align: left;}

.apropos .img-wrap { display: block;  width: 100%; height: 420px; margin-top: 60px; }
.apropos .img-wrap img { width: 100%;  height: 100%; object-fit: cover; }

.apropos .stats {  padding: 60px 0 20px 0; text-align: center; }
.apropos .stats .stats-wrap { display: inline-block; margin: 0 90px 40px 90px; font-size: 18px;}
.apropos .stats .stats-wrap .stat { display: block; font-size: 96px; font-weight: 500; line-height: 1; margin: 10px 0;}



/***** RÉALISATIONS *****/


.realisations .realisations-wrap { padding: 60px 0 30px 0; }

.realisations .realisations-wrap .galerie { margin: 0 -15px;}
.realisations .realisations-wrap .galerie .col-lg-4 {padding: 0 15px;}
.realisations .realisations-wrap .galerie a { display: block; margin: 0 0 30px 0; position: relative;}
.realisations .realisations-wrap .galerie a::before { 
    content:"";  
    width: 100%; height: 100%; 
    background: rgba(0, 0, 0, 0.5);
    position: absolute;
    left:0; top:0;
    opacity: 0;
    -webkit-transition: all 0.25s ease; 
    transition: all 0.25s ease;
}
.realisations .realisations-wrap .galerie a:hover::before { opacity:1; }

.lg-outer .lg-thumb-item { border: 2px solid #000; border-radius: 0; }
.lg-outer .lg-thumb-item.active, .lg-outer .lg-thumb-item:hover { border-color: #FFF; }


/******** PRODUIT ********/


.produit  { padding-bottom: 140px;}
.produit.general .texte-wrap { text-align: left; }
.produit h1{  
    color: #FFF;
    text-align: center;
    text-shadow: -1px -1px 0 #231f20,
               1px -1px 0 #231f20,
               -1px 1px 0 #231f20,
               1px 1px 0 #231f20,
               -1px 0 0 #231f20,
               1px 0 0 #231f20,
               0 -1px 0 #231f20,
               0 1px 0 #231f20;
}
.produit h1 strong {  color: #231f20; text-shadow: none; font-weight: 800;}

.produit .texte-wrap p { margin-bottom: 40px;}

#text_and_upload_panel { opacity: 1; }


#vpc-container #vpc-preview { border: 0;  background: #f2f2f2;}

#vpc-container .vpc-component { border: 0;  padding: 0; margin-top: 40px; }
#vpc-container .vpc-component:first-of-type { border:0;  margin-top: 0; }

#vpc-container .vpc-component-header > span{ font-size: 20px; font-weight:700; color: #231f20; text-transform: uppercase; padding-left: 0; }
#vpc-container .vpc-component-header  .txt.vpc-selected {font-size: 14px; }

#vpc-container .vpc-options { background: transparent;}
#vpc-container .vpc-options label.custom { border-radius: 15px; overflow: hidden; border: 2px transparent solid;}
#vpc-container .vpc-options input:checked+label.custom { border: 2px #000 solid; font-size: 20px;}

#vpc-container .formbuilt div label { display: block; width: 100%; font-size: 20px; font-weight:700; color: #231f20; text-transform: uppercase; }
#vpc-container .formbuilt div input[type="text"] { border: 0; background: #f2f2f2; font-size: 18px; width:100%; height: 60px;}

#vpc-container .default-right-skin #vpc-price-container { text-align: right !important; font-size: 28px; color: #231f20;}
#vpc-container .default-right-skin #vpc-price-container .vpc-price-label { font-size: 28px; color: #231f20 !important;}

#vpc-container .vpc-group { padding:0; border-top: 1px solid #231f20;}
#vpc-container .vpc-single-option-wrap.textfield  { padding: 0; }
#vpc-container .vpc-single-option-wrap.textfield input[type="text"] { border: 0; background: #f2f2f2; font-size: 18px; width:100%; height: 60px; padding: 12px 20px;}
#vpc-container .vpc-textfield-font { width:100%; margin: 10px 0 20px 0;}
#vpc-container .vpc-font-dropdown {  border-radius: 0; font-size: 18px; background-color: #f2f2f2;  box-shadow: none; }
#vpc-container .vpc-font-dropdown .selected-font-field {  padding: 0 35px 0 20px;  height: 60px;  line-height: 60px;}

#vpc-container .vpc-font-dropdown .vpc-font-list, #vpc-container .vpc-font-list-backdrop .vpc-font-list { font-size: 16px;  }
#vpc-container .vpc-font-dropdown:after { line-height: 60px;  color: #231f20;  right: 20px;}
#vpc-container .vpc-font-dropdown .vpc-font-list li, #vpc-container .vpc-font-list-backdrop .vpc-font-list li { font-size: 18px; padding: 0 20px; }
#vpc-container .vpc-font-dropdown .vpc-font-list li:hover, #vpc-container .vpc-font-dropdown .vpc-font-list li.selected:hover { color: #FFF; background:#231f20; }
#vpc-container .vpc-font-dropdown .vpc-font-list li.selected, #vpc-container .vpc-font-list-backdrop .vpc-font-list li.selected { color: #231f20; background-color: #f2f2f2;  }
#vpc-container .vpc-font-dropdown.active .vpc-font-list {  top: 59px; }

#vpc-container .vpc-action-buttons button {
    display: inline-block;
    line-height: 1;
    box-shadow: none !important;
    width: auto;
    height: auto !important;
    background: transparent;
    text-align: center;
    position: relative;
    -webkit-transition: all 0.25s ease;
    transition: all 0.25s ease;
    border: #231f20 1px solid !important;
    color: #231f20 !important;
    border-radius: 40px;
    font-size: 18px;
    font-weight: 500 !important;
    text-decoration: none;
    text-transform: none !important;
    padding: 20px 50px !important;
}
#vpc-container  .add-to-cart-button-text-color:after { display: none; }

#vpc-container .vpc-action-buttons button:hover { opacity: 1;  background: #231f20  !important;  color: #FFF !important; }

#vpc-container .vpc-single-option-wrap.textfield label { display: none !important;}
#vpc-container .numero-civique-option-624b0c285899d-field { display: none !important;}

.produit .custom-note { display: block; margin: 10px 0; }
.produit .custom-note p { text-align: left; font-size: 14px;}


.general .texte-wrap .woocommerce { text-align: left; }

#vpc-container .vpc-success { background-color: #231f20;  margin-top: 30px; }
#vpc-container .vpc-success a { color: #FFF; font-weight: 700; }


#vpc-container  .conf_desc {   text-align: left; margin: 30px 0 0 0;}


.formbuilt div input[type='radio'], .formbuilt div input[type='checkbox'] { 
 -webkit-appearance: auto; 
 appearance: auto;      
 margin: 12px 12px 12px 0;
 width: 18px;
 height: 18px;
}



/***** CART ******/


.woocommerce-cart .woocommerce table.shop_table th.product-remove { width: 50px; }
.woocommerce-cart .woocommerce a.remove { color: #231f20 !important }
.woocommerce-cart  .woocommerce a.remove:hover {  color: #fff !important;  background: #231f20; }

#add_payment_method table.cart .product-thumbnail, .woocommerce-cart table.cart .product-thumbnail, .woocommerce-checkout table.cart .product-thumbnail { width: 150px; }
.shop_table .vpc-cart-config-image {   max-width: 150px; margin: 0; }
#add_payment_method table.cart img, .woocommerce-cart table.cart img, .woocommerce-checkout table.cart img {  width: 150px; box-shadow: none; max-width: none !important;}


.shop_table .vpc-cart-options-container > div { font-size: 14px; }

.woocommerce .quantity .qty {
    width: 3.631em;
    text-align: center;
    border: 0;
    background: #f2f2f2;
}


.cart_totals h2{ text-align: left; }


.woocommerce #respond input#submit, .woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .woocommerce a.button.alt, .btn-outline-primary, .btn-outline-primary:active, .btn-outline-primary:not(:disabled):not(.disabled):active, .woocommerce button.button.alt, .woocommerce button.button.alt:not(:disabled):not(.disabled):active{
    display: inline-block;
    line-height: 1;
    box-shadow: none !important;
    width: auto;
    height: auto !important;
    background: transparent;
    text-align: center;
    position: relative;
    -webkit-transition: all 0.25s ease;
    transition: all 0.25s ease;
    border: #231f20 1px solid ;
    color: #231f20;
    border-radius: 40px;
    font-size: 16px;
    font-weight: 500;
    text-decoration: none;
    text-transform: none !important;
    padding: 10px 30px !important;
}

.woocommerce #respond input#submit:hover, .woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover, .woocommerce a.button.alt:hover, .btn-outline-primary:hover, .woocommerce button.button.alt:hover {  
    color: #FFF;
    background: #231f20 ;
    border: #231f20 1px solid ;
}

.woocommerce .btn-outline-primary.disabled, .woocommerce .btn-outline-primary:disabled { color: #231f20;  background: transparent; border: #231f20 1px solid ; }

.woocommerce .woocommerce-message, .woocommerce .woocommerce-info { border-top-color: #231f20; }
.woocommerce .woocommerce-message::before, .woocommerce .woocommerce-info:before { color: #231f20; }


.wc-proceed-to-checkout { text-align: center; }
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button { padding: 15px 30px !important; }


.woocommerce-page .general .top-texte p {  font-size: 16px; }
.woocommerce form.woocommerce-shipping-calculator .form-row { display: block; }
.woocommerce form.woocommerce-shipping-calculator .form-row input.input-text {  font-size: 16px; }

.woocommerce .form-row.woocommerce-SavedPaymentMethods-saveNew { position: relative; }
.woocommerce .form-row.woocommerce-SavedPaymentMethods-saveNew #wc-woocommerce_payments-new-payment-method { position: absolute; top:6px;}
.woocommerce .form-row.woocommerce-SavedPaymentMethods-saveNew  label { line-height: 1.4; display: inline-block !important; padding-left: 22px; font-size: 14px; }

.woocommerce-page .woocommerce ul#shipping_method li label {
  display: inline-block;
  vertical-align: middle;
  margin: 0;
}
.woocommerce-page .woocommerce ul#shipping_method li input { vertical-align: middle; margin: 0 .4375em 0 0;}


.shipping .woocommerce-shipping-destination { display: none; }


.woocommerce-form-login .btn.btn-outline-primary { margin: 10px 10px 10px 0; }


.woocommerce form  .input-checkbox {
  display: inline-block;
  margin: -2px 8px 0 0;
  text-align: center;
  vertical-align: middle;
  background: #FFF;
  border: 1px #000 solid;
  width: 20px;
  height: 20px;
  -webkit-appearance: auto;
}



p#wcpay-payment-request-button-separator { display: none !important; }
div#wcpay-payment-request-wrapper {  margin-bottom:  20px !important; }


/****** CHECKOUT ******/

.woocommerce-checkout .general .texte-wrap, .woocommerce-cart .general .texte-wrap {  max-width: 1400px; }
.checkout h3 {  margin-top: 40px; font-size: 24px;  }



/****** MODIFIER COMPTE ******/

.edit-account fieldset { margin-top: 40px; display: block; }
.edit-account .form-row { display: block; }
.edit-account .cta { margin-top: 30px;}

.woocommerce-edit-address form .cta { margin-top: 30px;}

.woocommerce-Address { margin-top: 40px; display: block; }


.woocommerce-order-details h2, .woocommerce-customer-details h2{ font-size: 26px;  }

.general .woocommerce-customer-details address p { font-size:16px; }


/***** ENTREPRENEUR *****/

.contact .entrepreneur-form.formulaire  {  margin-top: 30px; }

.general .top-texte .texte-left p { text-align: left;}





/***** CONTACT *****/

.contact.general .texte-wrap { text-align: center; }
.contact .texte-wrap p:last-of-type { margin-bottom: 50px; }


.contact .map { display: block; width:100%; height:380px; position: relative;}
.contact .map iframe { position: absolute; width:100%; height:100%; top:0; bottom:0; left: 0; right: 0;}

.contact .formulaire { margin-top: 100px; }
.contact .formulaire .btn-wrap { text-align: right;}


/**** FORM ****/

.wpcf7 { max-width: 100%;  margin: 0;}
.wpcf7 .wpcf7-form-control-wrap { display: block; margin-bottom: 30px; }
.wpcf7 input[type=text], .wpcf7 input[type=email], .wpcf7 input[type=tel], .wpcf7 textarea, .form-control, .woocommerce form .form-row.woocommerce-invalid .select2-container, .woocommerce form .form-row.woocommerce-invalid input.input-text, .woocommerce form .form-row.woocommerce-invalid select, .woocommerce form .form-row input.input-text, .woocommerce form .form-row.woocommerce-validated .select2-container, .woocommerce form .form-row.woocommerce-validated input.input-text, .woocommerce form .form-row.woocommerce-validated select{ 
	background: #f2f2f2;
	border: 0;
	box-sizing: border-box;
	border-radius: 0;
	font-size: 18px;
	box-shadow: none;
	font-weight: 400;
	height:60px;
	color: #231f20;
	padding: 0 30px;
} 

.payment_method_woocommerce_payments iframe input { font-size: 14px !important; }

.wpcf7 textarea, textarea.form-control, .woocommerce form .form-row textarea { height:220px; padding:15px 30px;}
.wpcf7 input:focus[type=text], .wpcf7 input:focus[type=email], .wpcf7 input:focus[type=tel], .wpcf7 textarea:focus, .form-control:focus{  border: 0; box-shadow:none; background: #f2f2f2;  color: #231f20;}

.wpcf7 input[type=submit], .wpcf7 input:not(:disabled):not(.disabled):active:focus[type=submit], .wpcf7 input[type=submit]:focus{
	display: inline-block;
	line-height:1;
	box-shadow: none;
	width: auto; 
	height:auto;
	background: transparent;
	text-align: center;
	position: relative;
	-webkit-transition: all 0.25s ease;
	transition: all 0.25s ease;
    border: #231f20 1px solid; 
    color: #231f20; 
    border-radius:40px; 
    font-size: 18px; 
    font-weight: 500;
    text-decoration: none; 
    text-transform: none;
    padding: 20px 50px;

}
.wpcf7 input[type=submit]:focus { box-shadow: none; border: #231f20 1px solid; }
.wpcf7 input[type=submit]:hover {color: #FFF; background: #231f20; border: #231f20 1px solid; }

.wpcf7-spinner { float: left; }
.wpcf7-not-valid-tip { text-align: left; }

::-webkit-input-placeholder { color: #898a8d;}
::-moz-placeholder { color: #898a8d;}
:-ms-input-placeholder { color: #898a8d;}
:-moz-placeholder { color: #898a8d;}

.form-control, .woocommerce form .form-row.woocommerce-invalid .select2-container, .woocommerce form .form-row.woocommerce-invalid input.input-text, .woocommerce form .form-row.woocommerce-invalid select, .woocommerce form .form-row input.input-text, .woocommerce form .form-row.woocommerce-validated input.input-text { padding: 0 20px; }
.woocommerce form .form-row textarea { padding:15px 20px;}

.woocommerce form .form-row.woocommerce-validated .select2-container,  .woocommerce form .form-row.woocommerce-validated select { padding: 0;}

.woocommerce form .form-row .input-checkbox {
    display: inline-block;
    margin: -2px 8px 0 0;
    text-align: center;
    vertical-align: middle;
    background: #FFF;
    border: 1px #000 solid;
    width: 20px;
    height: 20px;
    -webkit-appearance: auto;
}


.select2-container .select2-selection--single {  height: 60px;}
.select2-container--default .select2-selection--single { background-color: #fff;  border: 0;  border-radius: 0;}
.select2-container--default .select2-selection--single .select2-selection__rendered {  color: #444;  line-height: 60px; background: #f2f2f2; padding-left: 20px;  padding-right: 20px;}
.select2-container--default .select2-selection--single .select2-selection__arrow {
    height: 60px;
    position: absolute;
    top: 1px;
    right: 1px;
    width: 40px;
}


.woocommerce form .form-row { display: block; }



/**** PLAN DU SITE ****/

.plan.general .texte-wrap { text-align: left; }
.plan.general .texte-wrap h1 { text-align: center; }
.plan.general .texte-wrap a:hover { text-decoration: underline;}



/***** FOOTER *****/

footer { padding: 60px 0 0 0;  background: #231f20; position: relative; color:#FFF; overflow: hidden; }
footer::after { 
    content:""; 
    background-image: url(img/gravure-civique_icone.png); 
    width: 946px; height: 890px; 
    position: absolute; 
    bottom:0; right:90px;
    mix-blend-mode: multiply;
}
footer .container-full { position: relative; z-index: 5;}

footer .logo img {  width: 200px;}
footer .social { display: block; margin: 40px 0 0 0;}
footer .social a { 
    display: inline-block; 
    color: #FFF; 
    font-size: 25px; 
    margin-right: 30px;
     
}
footer .social a i { 
    vertical-align: middle;
}


footer h3 { text-transform: uppercase; font-size:30px; color: #FFF; font-weight:800; margin: 60px 0 30px 0;}
footer p { color:#FFF;  font-size:18px; margin: 0 0 30px 0; max-width:400px; }
footer p:last-of-type { margin:0; max-width: 320px;  }
footer p a { display: inline-block; text-decoration: underline; color: #FFF; margin-bottom: 10px; }
footer p a:hover { color: #FFF; }

footer .menu { margin: 0; padding: 0;  list-style: none; }
footer .menu li { padding: 5px 0;}
footer .menu li a { font-size: 18px; color: #FFF; position: relative; display: inline-block;}
footer .menu li a::after {
    content: '';
    display: block;
    height: 1px;
    background: #FFF;
    -webkit-transform: scaleX(0);
    transform: scaleX(0);
    -webkit-transform-origin: 50%;
    transform-origin: 50%;
    -webkit-transition: all 0.25s cubic-bezier(0.77,0.2,0.05,1.0);
    transition: all 0.25s cubic-bezier(0.77,0.2,0.05,1.0);
}
footer .menu li a:hover::after { -webkit-transform: scaleX(1); transform: scaleX(1); }

.copyright.container-full { padding-top: 60px; padding-bottom: 20px;}
.copyright ul { list-style: none; margin: 0; padding: 0;}
.copyright ul li { font-size: 14px; line-height: 1.2; text-align: center; padding: 8px 0;}
.copyright ul li a { color: #FFF; font-size: 14px; }
.copyright ul li a:hover { text-decoration: underline; }





body .lg-outer { z-index: 99999999; }



/***** RESPONSIVE *****/


@media (max-width: 1300px) {
    
    .header .menu-principal ul li a { font-size: 16px; }
    .header .menu-principal ul li.cta-soumission a { font-size: 12px; }

}

@media (min-width: 1024px) and (max-width: 1160px) {
        
    .header .logo img { width: 145px; }
    .header .menu-principal ul li a {  font-size: 14px; }
    
}


@media (max-width: 1024px) {
     
    body #responsive-menu-pro-header {z-index:999999;}
	#responsive-menu-pro-container #responsive-menu-pro-wrapper{ padding-top:80px;}
	#responsive-menu-pro-container #responsive-menu-pro { padding: 20px 0 30px 0; }
	#responsive-menu-pro-header-bar-button #responsive-menu-pro-button {z-index:999999;}
	#responsive-menu-pro-header-bar-button .responsive-menu-pro-box { margin-top: -2px; }
    #responsive-menu-pro-container #responsive-menu-pro li.responsive-menu-pro-item .responsive-menu-pro-item-link {text-transform: uppercase;}
    
    
    .accueil .bandeau {  height: 600px;   padding-top: 80px; }
    
    .realisations .bandeau {  height: 400px;   padding-top: 80px; }
    
    #responsive-menu-pro-header, body button#responsive-menu-pro-button {  -webkit-transition: all 0.25s ease; transition: all 0.25s ease; }
    .nav-up #responsive-menu-pro-header, .nav-up .responsive-menu-pro-button{ -webkit-transform: translateY(-80px); transform: translateY(-80px);  }

}

@media (max-width: 991px) {
    
    
    .contact .texte-wrap p:last-of-type { margin-bottom: 40px;}
   
    .contact .formulaire { margin-top: 60px;}
    
    #vpc-container #vpc-preview-wrap { width: 100%; }
    #vpc-container #vpc-components {  width: 100%; }
    
    
}


@media (max-width: 767px) {
    
    
    .accueil .bandeau { height: 500px; }
    .accueil .bandeau h2 { font-size: 28px;}
    .accueil .bandeau p { font-size: 18px; }
    
    .image-texte .texte-wrap h2, .texte-image .texte-wrap h2, .image-texte .texte-wrap h1 { font-size: 22px; }
    .accueil .home-realisations .texte-wrap h2 { font-size: 22px;  margin: 0 0 30px 0;}
    
    .realisations-slider .slick-prev { left: 50px; }
    .realisations-slider .slick-next { right: 50px; }
    
    .realisations .bandeau {  height: 320px; }
    .realisations .bandeau h1 { font-size: 32px; }
    
    .general .top-texte p {  font-size: 16px;  }
    
    .general .info, .general .info:hover { font-size:16px; }
    
    footer { text-align: center;}
    footer h3 { font-size: 24px;   margin: 50px 0 20px 0; }
    footer p { margin: 0 auto 20px auto;}
    footer p:last-of-type { margin: 0 auto; }
    footer p, footer .menu li a { font-size:16px;  }
    footer .social a:last-of-type { margin:0; }
    .copyright.container-full { padding-top: 40px; }
    
    
    
}

@media (max-width: 575px) {
    
    .general .info, .general .info:hover { margin: 0 0 30px 0; display: block; }
    .general .info i { margin-right: 10px;}
    
    .contact .map { height: 300px; }
    
    .wpcf7 input[type=text], .wpcf7 input[type=email], .wpcf7 input[type=tel], .wpcf7 textarea { font-size: 16px; padding: 0 15px; }
    .wpcf7 textarea { padding: 15px;}
    .wpcf7 input[type=submit], .wpcf7 input:not(:disabled):not(.disabled):active:focus[type=submit], .wpcf7 input[type=submit]:focus { font-size: 16px; }
    
}




/** Medium devices (tablets, 768px and up) **/
@media (min-width: 768px) {
    
    .container-full { padding: 0 40px;}
    
    .header::after { margin: 0 40px; }
    
    .image-texte::after, .texte-image::after {  margin: 60px 40px 0 40px; } 
    
    
}

/** Large devices (desktops, 992px and up) **/
@media (min-width: 992px) {
    

    .texte-image .image-wrap img, .image-texte .image-wrap img { width: 100%; max-width: none; }
    .image-texte .image-wrap { position: relative; left: -80px; }
    .texte-image .image-wrap { position: relative; right: -80px; margin-left: auto;  }
    .image-texte .image-wrap, .texte-image .image-wrap { margin-bottom: 0;  display: block; width: 100%; }
    .image-texte .image-wrap::after, .texte-image .image-wrap::after {
        display: block;
        content:"";
        position: absolute;
        top:89%;
        width:100%;
        padding-top: 44.807%;
        background-size: contain;
        z-index: -1;
        background-repeat: no-repeat;
    }
    .image-texte .image-wrap::after { background-image: url(img/gravure-civique_image-shadow-left.png);}
    .texte-image .image-wrap::after { background-image: url(img/gravure-civique_image-shadow-right.png);}
    
    
    .image-texte, .texte-image { padding: 100px 0 0 0; }
    .image-texte::after, .texte-image::after {  margin: 100px 40px 0 40px; } 
    
    .accueil .home-realisations { padding: 100px 0; }
    .accueil .home-realisations .realisations-slider  { margin: 100px 0 60px 0;}
    
    .realisations .realisations-wrap { padding: 100px 0 70px 0; }
    
    .general .top-texte, .general .woo-wrap { padding-top: 100px;}
    .general .texte-wrap { margin: 0 auto 100px auto }
    .general h1 {margin-bottom: 40px; }
        
    .apropos .top-texte::after {  margin: 100px 40px 0 40px;}
    .apropos .img-wrap { margin-top: 80px; }
    .apropos .stats {  padding: 100px 0 60px 0;  }
    
    .contact .texte-wrap p:last-of-type { margin-bottom: 60px; }
    
     #vpc-container #vpc-components { margin-top: 0; margin-left: 3%;  width: 30%;}
    
    footer h3 { margin: 0 0 30px 0; }
    
    
}

@media (min-width: 1025px) {

    .general { padding-top: 150px;}
    .header .logo { margin-left: 0}
    
   
    
    .header .menu-principal ul li { display: inline-block; padding: 0 1%;}
    .header .menu-principal ul li:first-of-type { padding: 0 1% 0 0;}
    .header .menu-principal ul li.nav-compte { padding: 0 0 0 1%;}

}

@media (min-width: 1200px) {

  .woocommerce .cart-collaterals .cart_totals, .woocommerce-page .cart-collaterals .cart_totals {  float: none; width: 100%; }

}

@media (min-width: 1300px) {
    

    .container-full { padding: 0 80px;}
    
    .header::after { margin: 0 80px; }
    
    .accueil .bandeau .wrapper { margin-left: 40px; }
    
    .accueil .home-realisations .texte-wrap { padding: 0; }
    
    .texte-image .texte-wrap { margin-left: 40px; }


    .apropos .top-texte::after {  margin: 100px 80px 0 80px; } 
    .apropos .img-wrap { margin-top: 100px; }
    
    
    footer { padding: 100px 0 0 0; }
    
    
}


@media (min-width: 1480px) {
    
    .header .menu-principal ul li { display: inline-block; padding: 0 2%;}
    .header .menu-principal ul li:first-of-type { padding: 0 2% 0 0;}
    .header .menu-principal ul li.nav-compte{ padding: 0 0 0 2%;}
    
}



@media (min-width: 1700px) {
    
    .container-full { padding: 0 140px;}
    
    .header::after { margin: 0 140px; }
    .header .logo { margin-left: 100px;}
    
    .accueil .bandeau .wrapper { margin-left: 100px; }
    .accueil .home-realisations { padding: 140px 0; }
    .accueil .home-realisations .realisations-slider  { margin: 140px 0 70px 0;}
    
    .realisations .realisations-wrap { padding: 100px 0 110px 0; }
    
    .general .top-texte, .general .woo-wrap { padding-top: 100px;}
    
    .image-texte, .texte-image { padding: 140px 0 0 0; }
    .image-texte::after, .texte-image::after {  margin: 140px 140px 0 140px; } 
    .image-texte .image-wrap { position: relative; left: -140px; }
    .texte-image .image-wrap { position: relative; right: -140px; }
    .texte-image .texte-wrap { margin-left: 100px; }
    
    .apropos .top-texte::after  {  margin: 140px 140px 0 140px; } 
    .apropos .stats {  padding: 140px 0 100px 0;  }

    
    
    footer { padding: 140px 0 0 0; }
    
    
}

    
@media (min-width: 2200px) {
    
    
    .header .menu-principal ul li { display: inline-block; padding: 0 4%;}
    .header .menu-principal ul li:first-of-type { padding: 0 4% 0 0;}
    .header .menu-principal ul li.nav-compte { padding: 0 0 0 4%;}


}
