.elementor-29 .elementor-element.elementor-element-1ee87e0{--display:flex;--position:fixed;--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;--justify-content:space-between;--align-items:center;border-style:none;--border-style:none;--border-radius:10px 10px 10px 10px;--margin-top:20px;--margin-bottom:0px;--margin-left:0px;--margin-right:34px;--padding-top:10px;--padding-bottom:0px;--padding-left:0px;--padding-right:10px;top:0px;--z-index:10000;}.elementor-29 .elementor-element.elementor-element-1ee87e0:not(.elementor-motion-effects-element-type-background), .elementor-29 .elementor-element.elementor-element-1ee87e0 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#00000000;}.elementor-29 .elementor-element.elementor-element-1ee87e0.e-con{--align-self:center;--flex-grow:1;--flex-shrink:0;}body:not(.rtl) .elementor-29 .elementor-element.elementor-element-1ee87e0{left:0px;}body.rtl .elementor-29 .elementor-element.elementor-element-1ee87e0{right:0px;}.elementor-29 .elementor-element.elementor-element-81e6222{--display:flex;--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;--border-radius:10px 10px 10px 10px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:15px;}.elementor-29 .elementor-element.elementor-element-81e6222:not(.elementor-motion-effects-element-type-background), .elementor-29 .elementor-element.elementor-element-81e6222 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#000000BD;}.elementor-29 .elementor-element.elementor-element-dd15807{width:var( --container-widget-width, 346px );max-width:346px;--container-widget-width:346px;--container-widget-flex-grow:0;}.elementor-29 .elementor-element.elementor-element-dd15807.elementor-element{--align-self:center;}.elementor-29 .elementor-element.elementor-element-dd15807 img{width:100%;max-width:100%;}.elementor-29 .elementor-element.elementor-element-388a509.elementor-element{--align-self:center;--flex-grow:0;--flex-shrink:0;}.elementor-29 .elementor-element.elementor-element-388a509 .elementor-menu-toggle{margin:0 auto;}.elementor-29 .elementor-element.elementor-element-388a509 .elementor-nav-menu .elementor-item{font-family:"Inter", Sans-serif;font-size:16px;font-weight:900;}.elementor-29 .elementor-element.elementor-element-388a509 .elementor-nav-menu--main .elementor-item{color:var( --e-global-color-primary );fill:var( --e-global-color-primary );padding-left:16px;padding-right:16px;}.elementor-29 .elementor-element.elementor-element-388a509 .elementor-nav-menu--main .elementor-item:hover,
					.elementor-29 .elementor-element.elementor-element-388a509 .elementor-nav-menu--main .elementor-item.elementor-item-active,
					.elementor-29 .elementor-element.elementor-element-388a509 .elementor-nav-menu--main .elementor-item.highlighted,
					.elementor-29 .elementor-element.elementor-element-388a509 .elementor-nav-menu--main .elementor-item:focus{color:#DE1F2E;fill:#DE1F2E;}.elementor-29 .elementor-element.elementor-element-388a509 .elementor-nav-menu--main .elementor-item.elementor-item-active{color:#DE1F2E;}.elementor-29 .elementor-element.elementor-element-9ba3c1a{--display:flex;--min-height:51px;--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;--justify-content:center;--align-items:stretch;border-style:none;--border-style:none;--border-radius:8px 8px 8px 8px;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-29 .elementor-element.elementor-element-9ba3c1a.e-con{--align-self:center;}.elementor-29 .elementor-element.elementor-element-ea01610 .elementor-button{background-color:#00000024;font-family:"Archivo", Sans-serif;font-size:14px;font-weight:700;fill:#FFFFFF;color:#FFFFFF;border-style:solid;border-width:1px 1px 1px 1px;border-color:#FFFFFF;border-radius:8px 8px 8px 8px;}.elementor-29 .elementor-element.elementor-element-ea01610 .elementor-button-content-wrapper{flex-direction:row-reverse;}.elementor-29 .elementor-element.elementor-element-ea01610 .elementor-button .elementor-button-content-wrapper{gap:10px;}.elementor-29 .elementor-element.elementor-element-08fdf35 .e-off-canvas__content{background-color:#0505055C;}.elementor-29 .elementor-element.elementor-element-08fdf35 .e-off-canvas__overlay{background-color:rgba(0,0,0,.8);}.elementor-29 .elementor-element.elementor-element-08fdf35{--e-off-canvas-height:100vh;--e-off-canvas-content-overflow:auto;--e-off-canvas-animation-duration:0.5s;--e-off-canvas-overlay-opacity:1;}.elementor-29 .elementor-element.elementor-element-9aeed97{--display:flex;}.elementor-29 .elementor-element.elementor-element-f48d6ac .elementor-nav-menu .elementor-item{font-size:22px;}.elementor-29 .elementor-element.elementor-element-f48d6ac .elementor-nav-menu--main .elementor-item{color:#FFFFFF;fill:#FFFFFF;}.elementor-29 .elementor-element.elementor-element-f48d6ac .elementor-nav-menu--main .elementor-item:hover,
					.elementor-29 .elementor-element.elementor-element-f48d6ac .elementor-nav-menu--main .elementor-item.elementor-item-active,
					.elementor-29 .elementor-element.elementor-element-f48d6ac .elementor-nav-menu--main .elementor-item.highlighted,
					.elementor-29 .elementor-element.elementor-element-f48d6ac .elementor-nav-menu--main .elementor-item:focus{color:var( --e-global-color-text );fill:var( --e-global-color-text );}.elementor-29 .elementor-element.elementor-element-f48d6ac .elementor-nav-menu--main .elementor-item.elementor-item-active{color:var( --e-global-color-text );}.elementor-29 .elementor-element.elementor-element-c0fa60d .elementor-button{background-color:#00000059;font-family:"Archivo", Sans-serif;font-size:14px;font-weight:700;fill:#FFFFFF;color:#FFFFFF;border-style:solid;border-width:1px 1px 1px 1px;border-color:#FFFFFF;border-radius:8px 8px 8px 8px;}.elementor-29 .elementor-element.elementor-element-c0fa60d .elementor-button-content-wrapper{flex-direction:row-reverse;}.elementor-29 .elementor-element.elementor-element-c0fa60d .elementor-button .elementor-button-content-wrapper{gap:10px;}.elementor-29 .elementor-element.elementor-element-1b86f7a{--display:flex;}.elementor-theme-builder-content-area{height:400px;}.elementor-location-header:before, .elementor-location-footer:before{content:"";display:table;clear:both;}@media(min-width:768px){.elementor-29 .elementor-element.elementor-element-1ee87e0{--content-width:90%;}.elementor-29 .elementor-element.elementor-element-9ba3c1a{--width:165px;}}@media(max-width:1024px){.elementor-29 .elementor-element.elementor-element-1ee87e0{--justify-content:space-between;--align-items:stretch;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-29 .elementor-element.elementor-element-81e6222{--margin-top:10px;--margin-bottom:10px;--margin-left:10px;--margin-right:10px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-29 .elementor-element.elementor-element-f48d6ac{margin:50px 50px calc(var(--kit-widget-spacing, 0px) + 50px) 50px;}.elementor-29 .elementor-element.elementor-element-c0fa60d{padding:0px 50px 50px 50px;}.elementor-29 .elementor-element.elementor-element-1b86f7a{--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}}@media(max-width:767px){.elementor-29 .elementor-element.elementor-element-1ee87e0{--align-items:stretch;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-29 .elementor-element.elementor-element-81e6222{--width:100%;--padding-top:5px;--padding-bottom:5px;--padding-left:5px;--padding-right:5px;}.elementor-29 .elementor-element.elementor-element-dd15807{--container-widget-width:153px;--container-widget-flex-grow:0;width:var( --container-widget-width, 153px );max-width:153px;}.elementor-29 .elementor-element.elementor-element-dd15807 img{width:100%;}.elementor-29 .elementor-element.elementor-element-08fdf35{--e-off-canvas-width:100%;}.elementor-29 .elementor-element.elementor-element-9aeed97{--align-items:center;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--margin-top:40px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;}.elementor-29 .elementor-element.elementor-element-f48d6ac{width:var( --container-widget-width, 100% );max-width:100%;margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;padding:0px 0px 0px 20px;--container-widget-width:100%;--container-widget-flex-grow:0;}.elementor-29 .elementor-element.elementor-element-f48d6ac .elementor-nav-menu .elementor-item{font-size:28px;}.elementor-29 .elementor-element.elementor-element-f48d6ac .elementor-nav-menu--main .elementor-item{padding-left:0px;padding-right:0px;padding-top:25px;padding-bottom:25px;}.elementor-29 .elementor-element.elementor-element-c0fa60d{padding:0px 0px 0px 20px;}.elementor-29 .elementor-element.elementor-element-c0fa60d.elementor-element{--align-self:flex-start;}}/* Start custom CSS for button, class: .elementor-element-ea01610 *//* ============================================
   RECTILUX — Apparence des boutons à pastille
   Structure uniquement.
   Couleurs de fond, typo et largeur : Elementor.
   ============================================ */

.elementor-widget-button .elementor-button {
  display: inline-flex;
  align-items: stretch;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  padding-right: 0 !important;
  overflow: hidden;
  gap: 0;
  line-height: 1;
  transition: background .25s ease, border-color .25s ease;
}

.elementor-widget-button .elementor-button-content-wrapper {
  display: flex;
  align-items: stretch;
  gap: 0;
}

/* Le padding vertical vit ici : c'est lui qui donne sa hauteur au bouton,
   et donc à la pastille. C'est la seule valeur à ajuster pour la hauteur. */
.elementor-widget-button .elementor-button-text {
  display: flex;
  align-items: center;
  white-space: nowrap;
  padding: 16px 0;
}

/* --- La pastille d'icône --- */
.elementor-widget-button .elementor-button-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  align-self: stretch;
  box-sizing: border-box;
  margin: 0 !important;
  padding: 0 18px;
  min-width: 3.2em;
  background: #e2231a;
  color: #fff;
  flex-shrink: 0;
  font-size: 1.1em;
}

.elementor-widget-button .elementor-button-icon svg {
  width: 1.15em;
  height: 1.15em;
  fill: currentColor;
  flex-shrink: 0;
}

.elementor-widget-button .elementor-button-icon i {
  font-size: 1.15em;
  line-height: 1;
}

/* --- Boutons sans icône : on rétablit un padding droit --- */
.elementor-widget-button .elementor-button:not(:has(.elementor-button-icon)) {
  padding-right: 28px !important;
}/* End custom CSS */
/* Start custom CSS for button, class: .elementor-element-c0fa60d *//* ============================================
   RECTILUX — Apparence des boutons à pastille
   Structure uniquement.
   Couleurs de fond, typo et largeur : Elementor.
   ============================================ */

.elementor-widget-button .elementor-button {
  display: inline-flex;
  align-items: stretch;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  padding-right: 0 !important;
  overflow: hidden;
  gap: 0;
  line-height: 1;
  transition: background .25s ease, border-color .25s ease;
}

.elementor-widget-button .elementor-button-content-wrapper {
  display: flex;
  align-items: stretch;
  gap: 0;
}

/* Le padding vertical vit ici : c'est lui qui donne sa hauteur au bouton,
   et donc à la pastille. C'est la seule valeur à ajuster pour la hauteur. */
.elementor-widget-button .elementor-button-text {
  display: flex;
  align-items: center;
  white-space: nowrap;
  padding: 16px 0;
}

/* --- La pastille d'icône --- */
.elementor-widget-button .elementor-button-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  align-self: stretch;
  box-sizing: border-box;
  margin: 0 !important;
  padding: 0 18px;
  min-width: 3.2em;
  background: #e2231a;
  color: #fff;
  flex-shrink: 0;
  font-size: 1.1em;
}

.elementor-widget-button .elementor-button-icon svg {
  width: 1.15em;
  height: 1.15em;
  fill: currentColor;
  flex-shrink: 0;
}

.elementor-widget-button .elementor-button-icon i {
  font-size: 1.15em;
  line-height: 1;
}

/* --- Boutons sans icône : on rétablit un padding droit --- */
.elementor-widget-button .elementor-button:not(:has(.elementor-button-icon)) {
  padding-right: 28px !important;
}/* End custom CSS */
/* Start custom CSS for container, class: .elementor-element-1ee87e0 */.elementor-29 .elementor-element.elementor-element-1ee87e0 .elementor-widget-off-canvas .e-off-canvas {
    height: 100%;
    left: 0;
    right: 0;
    pointer-events: none;
    position: fixed;
    top: 60px;
    width: 100%;
    z-index: 2147483630;
}
 
 /* ===== Header fixe centré ===== */
.rx-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;              /* left + right = le header occupe toute la largeur, sans décalage */
  width: 100%;
  z-index: 999;
  box-sizing: border-box;
}

/* Le contenu interne s'aligne sur la largeur de tes autres sections */
.rx-header > .e-con-inner {
  max-width: 1400px;     /* ← ta largeur de contenu */
  width: 100%;
  margin: 0 auto;
  padding: 0 20px;       /* ← ton padding latéral */
  display: flex;
  align-items: center;
  justify-content: space-between;
  box-sizing: border-box;
}

.elementor-29 .elementor-element.elementor-element-1ee87e0 .e-off-canvas__content{
    
    overflow: scroll;
}
 
/* éléments qu’on veut pouvoir cacher (Réalisations + Contact) */
.e-off-canvas__content [data-nav].nav-auto-hide {
  overflow: hidden;
  max-height: 140px;           /* assez grand pour un item */
  opacity: 1;
  transform: translateY(0);
  transition: max-height .35s ease,   transform .35s ease;
  will-change: max-height, opacity, transform;
}

.e-off-canvas__content.services-open .elementor-element-306c998{
    gap: 0px;
    transition: .35s ease,
}
.e-off-canvas__content .elementor-element-306c998{ 
    transition: .35s ease,
}

.elementor-29 .elementor-element.elementor-element-150f0d5 .e-off-canvas__overlay {
    background-color: rgba(0, 0, 0, .8);
    display: none;
}

/* quand services est ouvert -> on cache */
.e-off-canvas__content.services-open [data-nav].nav-auto-hide, .e-off-canvas__content.services-open [data-nav].is-active-nav {
  max-height: 0;
  opacity: 0;
  padding: 0px;
  transform: translateY(-6px);
  pointer-events: none;
}
/* coupe les animations Elementor trop lentes sur ce off-canvas */

/* ============================================
   BARRE DE DÉFILEMENT HORIZONTALE
   ============================================ */
html, body {
  overflow-x: hidden;
  max-width: 100%;
}


.elementor-29 .elementor-element.elementor-element-1ee87e0 .e-con-inner {
    width: 100% !important;
    margin: 0 auto !important;
}/* End custom CSS */