.elementor-260 .elementor-element.elementor-element-8dc00d9{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;box-shadow:0px 0px 10px 0px rgba(0,0,0,0.5);--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;--z-index:999;}.elementor-260 .elementor-element.elementor-element-54a2cad{--display:flex;--position:absolute;--min-height:80px;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--align-items:center;--gap:3rem 3rem;--row-gap:3rem;--column-gap:3rem;--padding-top:1rem;--padding-bottom:1rem;--padding-left:2rem;--padding-right:2rem;top:0px;}body:not(.rtl) .elementor-260 .elementor-element.elementor-element-54a2cad{left:0px;}body.rtl .elementor-260 .elementor-element.elementor-element-54a2cad{right:0px;}.elementor-widget-icon.elementor-view-stacked .elementor-icon{background-color:var( --e-global-color-primary );}.elementor-widget-icon.elementor-view-framed .elementor-icon, .elementor-widget-icon.elementor-view-default .elementor-icon{color:var( --e-global-color-primary );border-color:var( --e-global-color-primary );}.elementor-widget-icon.elementor-view-framed .elementor-icon, .elementor-widget-icon.elementor-view-default .elementor-icon svg{fill:var( --e-global-color-primary );}.elementor-260 .elementor-element.elementor-element-e0c3d43 .elementor-icon-wrapper{text-align:center;}.elementor-260 .elementor-element.elementor-element-e0c3d43 .elementor-icon{font-size:40px;}.elementor-260 .elementor-element.elementor-element-e0c3d43 .elementor-icon svg{height:40px;}.elementor-260 .elementor-element.elementor-element-e0c3d43 .elementor-icon-wrapper svg{width:auto;}.elementor-widget-mega-menu > .e-n-menu > .e-n-menu-wrapper > .e-n-menu-heading > .e-n-menu-item > .e-n-menu-title, .elementor-widget-mega-menu > .e-n-menu > .e-n-menu-wrapper > .e-n-menu-heading > .e-n-menu-item > .e-n-menu-title > .e-n-menu-title-container, .elementor-widget-mega-menu > .e-n-menu > .e-n-menu-wrapper > .e-n-menu-heading > .e-n-menu-item > .e-n-menu-title > .e-n-menu-title-container > span{font-family:var( --e-global-typography-accent-font-family ), Sans-serif;font-weight:var( --e-global-typography-accent-font-weight );}.elementor-widget-mega-menu{--n-menu-divider-color:var( --e-global-color-text );}.elementor-260 .elementor-element.elementor-element-08b3161{--display:flex;}.elementor-260 .elementor-element.elementor-element-e95a993{--display:flex;}.elementor-260 .elementor-element.elementor-element-7c48382{--display:flex;}.elementor-260 .elementor-element.elementor-element-56ed1d1{--display:flex;}.elementor-260 .elementor-element.elementor-element-203e73f{--display:flex;}.elementor-260 .elementor-element.elementor-element-ca7ea3f{--n-menu-dropdown-content-max-width:initial;--n-menu-heading-justify-content:flex-end;--n-menu-title-flex-grow:initial;--n-menu-title-justify-content:initial;--n-menu-title-justify-content-mobile:flex-end;--n-menu-heading-wrap:nowrap;--n-menu-heading-overflow-x:scroll;--n-menu-title-distance-from-content:0px;--n-menu-toggle-icon-wrapper-animation-duration:500ms;--n-menu-title-space-between:0px;--n-menu-title-font-size:0.9rem;--n-menu-title-color-normal:var( --e-global-color-64df594 );--n-menu-title-transition:300ms;--n-menu-icon-size:16px;--n-menu-toggle-icon-size:20px;--n-menu-toggle-icon-color:var( --e-global-color-64df594 );--n-menu-toggle-icon-hover-duration:500ms;--n-menu-toggle-icon-distance-from-dropdown:0px;}.elementor-260 .elementor-element.elementor-element-ca7ea3f > .e-n-menu > .e-n-menu-wrapper > .e-n-menu-heading > .e-n-menu-item > .e-n-menu-title, .elementor-260 .elementor-element.elementor-element-ca7ea3f > .e-n-menu > .e-n-menu-wrapper > .e-n-menu-heading > .e-n-menu-item > .e-n-menu-title > .e-n-menu-title-container, .elementor-260 .elementor-element.elementor-element-ca7ea3f > .e-n-menu > .e-n-menu-wrapper > .e-n-menu-heading > .e-n-menu-item > .e-n-menu-title > .e-n-menu-title-container > span{font-family:"Inter", Sans-serif;font-weight:500;}.elementor-260 .elementor-element.elementor-element-ca7ea3f {--n-menu-title-color-hover:var( --e-global-color-accent );--n-menu-title-color-active:var( --e-global-color-accent );}.elementor-widget-button .elementor-button{background-color:var( --e-global-color-accent );font-family:var( --e-global-typography-accent-font-family ), Sans-serif;font-weight:var( --e-global-typography-accent-font-weight );}.elementor-theme-builder-content-area{height:400px;}.elementor-location-header:before, .elementor-location-footer:before{content:"";display:table;clear:both;}@media(max-width:1024px){.elementor-260 .elementor-element.elementor-element-54a2cad{--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:space-between;}.elementor-260 .elementor-element.elementor-element-e0c3d43{z-index:1002;}.elementor-260 .elementor-element.elementor-element-ca7ea3f{--n-menu-toggle-align:flex-end;}}@media(max-width:767px){.elementor-260 .elementor-element.elementor-element-54a2cad{--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--padding-top:1rem;--padding-bottom:1rem;--padding-left:1rem;--padding-right:1rem;}}/* Start custom CSS for icon, class: .elementor-element-e0c3d43 */.elementor-260 .elementor-element.elementor-element-e0c3d43{
    max-height: 40px;
}


.header.menu-open .elementor-element-e0c3d43 .elementor-icon svg .cls-1,
.header.menu-open .elementor-element-e0c3d43 .elementor-icon svg .cls-2,
.header:not(.menu-open) .elementor-element-e0c3d43 .elementor-icon svg .cls-1,
.header:not(.menu-open) .elementor-element-e0c3d43 .elementor-icon svg .cls-2 {
  transition: fill 0.6s ease; /* transition uniquement lors du toggle menu */
}


.header .elementor-element-e0c3d43 .elementor-icon svg *,
.header:not(.scrolled) .elementor-element-e0c3d43 .elementor-icon svg * {
  fill: #ffffff !important;
}
.header.scrolled .elementor-element-e0c3d43 .elementor-icon svg .cls-1 {
  fill: #243b3e !important;  /* couleur originale */
}

.header.scrolled .elementor-element-e0c3d43 .elementor-icon svg .cls-2 {
  fill: #ee7627 !important;  /* couleur originale */
}

/* Etat menu ouvert */
.header.menu-open .elementor-element-e0c3d43 .elementor-icon svg .cls-1 {
  fill: #243b3e !important;  /* couleur quand menu ouvert */
}

.header.menu-open .elementor-element-e0c3d43 .elementor-icon svg .cls-2 {
  fill: #ee7627 !important;  /* couleur quand menu ouvert */
}/* End custom CSS */
/* Start custom CSS for mega-menu, class: .elementor-element-ca7ea3f */@media (max-width: 1024px) {
    .elementor-260 .elementor-element.elementor-element-ca7ea3f {
        display: none ;
    }
}/* End custom CSS */
/* Start custom CSS for button, class: .elementor-element-74ab7de */@media (max-width: 1024px) {
    .elementor-260 .elementor-element.elementor-element-74ab7de {
        display: none ;
    }
}/* End custom CSS */
/* Start custom CSS for html, class: .elementor-element-e96bf6e *//* =====================
  Base menu off-canvas
===================== */
.menu-toggle {
  display: none; /* caché sur PC */
  cursor: pointer;
  width: 28px;
  height: 30px;
  position: fixed;
  top: 20px;
  right: 2rem;
  z-index: 1001;
  background: none;
  border: none;
  padding: 0;
}

.menu-toggle.change div,
.header.scrolled .menu-toggle div {
  background-color: var(--e-global-color-primary) !important;
}

.menu-toggle div {
  width: 100%;
  height: 3px;
  background-color: #fff;
  margin: 7px 0;
  border-radius: 2px;
  transform-origin: center;
  transition: background-color 0.4s ease;
}

/* =====================
  Animation Hamburger → Croix (Séquence)
===================== */
/* Barre du haut - Séquence 1: Fusion au centre, Séquence 2: Rotation */
.menu-toggle.change .bar1 {
  animation: bar1-animation 0.6s ease-in-out forwards;
}

/* Barre du milieu - Disparaît pendant la fusion */
.menu-toggle.change .bar2 {
  animation: bar2-animation 0.6s ease-in-out forwards;
}

/* Barre du bas - Séquence 1: Fusion au centre, Séquence 2: Rotation */
.menu-toggle.change .bar3 {
  animation: bar3-animation 0.6s ease-in-out forwards;
}

/* Animation Barre 1 (haut) */
@keyframes bar1-animation {
  /* Séquence 1 (0-50%): Fusion au centre */
  0% {
    transform: translateY(0) rotate(0deg);
  }
  50% {
    transform: translateY(10px) rotate(0deg);
  }
  /* Séquence 2 (50-100%): Rotation vers croix */
  100% {
    transform: translateY(10px) rotate(45deg);
  }
}

/* Animation Barre 2 (milieu) */
@keyframes bar2-animation {
  /* Séquence 1 (0-50%): Reste visible puis disparaît */
  0% {
    opacity: 1;
    transform: translateX(0);
  }
  50% {
    opacity: 0.5;
    transform: translateX(0);
  }
  /* Séquence 2 (50-100%): Disparaît complètement */
  100% {
    opacity: 0;
    transform: translateX(0);
  }
}

/* Animation Barre 3 (bas) */
@keyframes bar3-animation {
  /* Séquence 1 (0-50%): Fusion au centre */
  0% {
    transform: translateY(0) rotate(0deg);
  }
  50% {
    transform: translateY(-10px) rotate(0deg);
  }
  /* Séquence 2 (50-100%): Rotation vers croix */
  100% {
    transform: translateY(-10px) rotate(-45deg);
  }
}

/* Animation INVERSE Croix → Hamburger */
/* On n'anime QUE si la classe change a été retirée après avoir été présente */
.menu-toggle.animate-reverse .bar1 {
  animation: bar1-reverse 0.6s ease-in-out forwards;
}

.menu-toggle.animate-reverse .bar2 {
  animation: bar2-reverse 0.6s ease-in-out forwards;
}

.menu-toggle.animate-reverse .bar3 {
  animation: bar3-reverse 0.6s ease-in-out forwards;
}

/* Animation Barre 1 INVERSE */
@keyframes bar1-reverse {
  0% {
    transform: translateY(10px) rotate(45deg);
  }
  50% {
    transform: translateY(10px) rotate(0deg);
  }
  100% {
    transform: translateY(0) rotate(0deg);
  }
}

/* Animation Barre 2 INVERSE */
@keyframes bar2-reverse {
  0% {
    opacity: 0;
    transform: translateX(0);
  }
  50% {
    opacity: 0.5;
    transform: translateX(0);
  }
  100% {
    opacity: 1;
    transform: translateX(0);
  }
}

/* Animation Barre 3 INVERSE */
@keyframes bar3-reverse {
  0% {
    transform: translateY(-10px) rotate(-45deg);
  }
  50% {
    transform: translateY(-10px) rotate(0deg);
  }
  100% {
    transform: translateY(0) rotate(0deg);
  }
}

/* Off-canvas menu */
.offcanvas-menu {
  position: fixed;
  top: -120%; /* caché hors écran */
  left: 0;
  width: 100%;
  height: 100vh;
  max-height: 100vh;
  background: #fff;
  transition: top 0.5s ease;
  z-index: 1000;
  padding: 120px 20px 20px 20px;
  box-sizing: border-box;
  overflow-y: auto;
}

.offcanvas-menu ul li .btn-devis {
  display: inline-block;
  background: var(--e-global-color-accent, #0073e6);
  color: #fff;
  padding: 12px 25px;
  border-radius: 8px;
  font-weight: 700;
  text-transform: uppercase;
  font-size: 16px;
  transition: background 0.3s, transform 0.2s;
}

.offcanvas-menu ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

.offcanvas-menu ul li {
  margin: 20px 0;
  text-align: center;
}

.offcanvas-menu ul li a {
  text-decoration: none;
  color: #333;
  font-size: 18px;
  font-weight: 600;
  padding: 12px 25px;
  transition: color 0.3s;
  position: relative;
}

.offcanvas-menu ul li a::after {
  content: '';
  position: absolute;
  bottom: -5px;
  left: 50%;
  transform: translateX(-50%);
  width: 0;
  height: 2px;
  background: var(--e-global-color-primary, #0073e6);
  transition: width 0.3s ease;
}

/* =====================
  Mobile Paysage - Optimisation
===================== */
@media (max-height: 650px) and (orientation: landscape) {
  .offcanvas-menu {
    padding: 70px 20px 20px 20px;
  }
  
  .offcanvas-menu ul li {
    margin: 12px 0;
  }
  
  .offcanvas-menu ul li a {
    font-size: 16px;
  }
  
  .offcanvas-menu ul li .btn-devis {
    padding: 10px 20px;
    font-size: 14px;
  }
}

/* =====================
  Responsive Tablette/Mobile
===================== */
@media (max-width: 1024px) {
  .menu-toggle {
    display: block;
  }
}

@media (max-width: 767px) {
  .menu-toggle {
    right: 1rem;
  }
}/* End custom CSS */
/* Start custom CSS for html, class: .elementor-element-d6835fc */.elementor-260 .elementor-element.elementor-element-d6835fc{
    display: none;
}

/* Header avant le scroll (transparent) */
.header {
  background-color: transparent;
  transition: background-color 0.3s ease, box-shadow 0.3s ease;
}

/* Liens de menu par défaut (ex: blanc) */
.header .e-n-menu-title-text {
  transition: color 0.3s ease;
}

/* Survol avant scroll */
.header .e-n-menu-title-text:hover {
  color: var(--e-global-color-accent);
}

/* Lien actif avant scroll */
.header .e-n-menu-title.e-current .e-n-menu-title-text {
  color: var(--e-global-color-accent);
}

/* ------------------------------------------
   CTA Header avant scroll
-------------------------------------------*/
.header #cta-header {
  border: 1px solid #ffffff;
  background-color: transparent;
  color: #ffffff;
  border-radius: 6px;
  transition: all 0.3s ease;
}

/* Survol avant scroll */
.header #cta-header:hover {
  background-color: #ffffff;
  color: var(--e-global-color-primary);
}

/* ------------------------------------------
   Header après scroll
-------------------------------------------*/
.header.scrolled {
  background-color: #ffffff;
  box-shadow: 0 2px 10px rgba(0,0,0,0.08);
}

/* Liens du menu après scroll */
.header.scrolled .e-n-menu-title-text {
  color: var(--e-global-color-primary)!important;
}

/* Survol après scroll */
.header.scrolled .e-n-menu-title:hover .e-n-menu-title-text {
  color: var(--e-global-color-accent)!important;
}

/* Lien actif après scroll */
.header.scrolled .e-n-menu-title.e-current .e-n-menu-title-text {
  color: var(--e-global-color-accent)!important;
}

/* ------------------------------------------
   CTA Header après scroll
-------------------------------------------*/
.header.scrolled #cta-header {
  background-color: var(--e-global-color-accent);
  border-color: var(--e-global-color-accent);
  color: #ffffff;
}

/* Survol après scroll (tu peux ajuster si besoin) */
.header.scrolled #cta-header:hover {
  opacity: 0.85;
}/* End custom CSS */
/* Start custom CSS *//* Empêche le flash au chargement */
body.preloading {
    visibility: hidden !important;
    opacity: 0 !important;
}

body.loaded {
    visibility: visible !important;
    opacity: 1 !important;
    transition: opacity 0.25s ease-out;
}/* End custom CSS */