.elementor-kit-6{--e-global-color-primary:#8C9A5B;--e-global-color-secondary:#899B69;--e-global-color-text:#4B4C43;--e-global-color-accent:#0E1209;--e-global-color-bc_text_strong:#20120F;--e-global-color-bc_bg_soft:#E8EADF;--e-global-color-bc_white:#FFFFFF;--e-global-color-bc_black:#000000;--e-global-color-bc_gold:#D4AF37;--e-global-color-bc_overlay_15:rgba(140,154,91,0.15);--e-global-color-bc_overlay_13:rgba(140,154,91,0.13);--e-global-color-bc_overlay_07:rgba(140,154,91,0.07);--e-global-typography-primary-font-family:"Outfit";--e-global-typography-primary-font-size:56px;--e-global-typography-primary-font-weight:700;--e-global-typography-primary-line-height:1.2em;--e-global-typography-secondary-font-family:"Outfit";--e-global-typography-secondary-font-size:44px;--e-global-typography-secondary-font-weight:700;--e-global-typography-secondary-line-height:1.2em;--e-global-typography-text-font-family:"Inter";--e-global-typography-text-font-size:16px;--e-global-typography-text-font-weight:400;--e-global-typography-text-line-height:1.5em;--e-global-typography-accent-font-family:"Inter";--e-global-typography-accent-font-size:14px;--e-global-typography-accent-font-weight:500;--e-global-typography-accent-line-height:1.2em;--e-global-typography-accent-letter-spacing:0.5px;--e-global-typography-bc_h3-font-family:"Inter";--e-global-typography-bc_h3-font-size:24px;--e-global-typography-bc_h3-font-weight:700;--e-global-typography-bc_h3-line-height:1.4em;--e-global-typography-bc_h4-font-family:"Inter";--e-global-typography-bc_h4-font-size:18px;--e-global-typography-bc_h4-font-weight:500;--e-global-typography-bc_h4-line-height:1.4em;--e-global-typography-bc_small-font-family:"Inter";--e-global-typography-bc_small-font-size:14px;--e-global-typography-bc_small-font-weight:300;--e-global-typography-bc_small-line-height:1.5em;--e-global-typography-bc_label-font-family:"DM Sans";--e-global-typography-bc_label-font-size:13px;--e-global-typography-bc_label-font-weight:400;--e-global-typography-bc_label-line-height:1.2em;background-color:#FFFFFF;color:#4B4C43;font-family:"Inter", Sans-serif;font-size:16px;font-weight:400;line-height:1.5em;}.elementor-kit-6 e-page-transition{background-color:#FFBC7D;}.elementor-kit-6 a{color:#8C9A5B;}.elementor-kit-6 a:hover{color:#899B69;}.elementor-kit-6 h1{color:#0E1209;font-family:"Outfit", Sans-serif;font-size:56px;font-weight:700;line-height:1.2em;}.elementor-kit-6 h2{color:#0E1209;font-family:"Outfit", Sans-serif;font-size:44px;font-weight:700;line-height:1.2em;}.elementor-kit-6 h3{color:#0E1209;font-family:"Inter", Sans-serif;font-size:24px;font-weight:700;line-height:1.4em;}.elementor-kit-6 h4{color:#0E1209;font-family:"Inter", Sans-serif;font-size:18px;font-weight:500;line-height:1.4em;}.elementor-kit-6 button,.elementor-kit-6 input[type="button"],.elementor-kit-6 input[type="submit"],.elementor-kit-6 .elementor-button{font-family:"Inter", Sans-serif;font-size:14px;font-weight:500;letter-spacing:0.5px;border-radius:100px 100px 100px 100px;padding:14px 28px 14px 28px;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1200px;}.e-con{--container-max-width:1200px;}.elementor-widget:not(:last-child){--kit-widget-spacing:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}.site-header .site-branding{flex-direction:column;align-items:stretch;}.site-header{padding-inline-end:0px;padding-inline-start:0px;}.site-footer .site-branding{flex-direction:column;align-items:stretch;}@media(max-width:1024px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-kit-6{--e-global-typography-primary-font-size:32px;--e-global-typography-secondary-font-size:28px;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}
/* Start custom CSS *//* Fix image widgets that stay 0x0 (lazy-load loop) */
.elementor-widget-image img,
.elementor-widget-image-box .elementor-image-box-img img {
  width: 100%;
  height: auto;
  max-width: 100%;
  display: block;
}

/* removed Lot 1.1 sticky shadow (Lot 3E) */

/* Disable Elementor background lazy-load that strips background-image on deep containers (conflicts with our SVG icons) */
.e-con.e-parent,
.e-con.e-parent * {
  background-image: unset;
}
/* Hide original FA/SVG glyphs */
.elementor-element-sec20011 .elementor-icon > i,
.elementor-element-sec20011 .elementor-icon > svg,
.elementor-element-sec20012 .elementor-icon > i,
.elementor-element-sec20012 .elementor-icon > svg,
.elementor-element-sec20013 .elementor-icon > i,
.elementor-element-sec20013 .elementor-icon > svg,
.elementor-element-sec20014 .elementor-icon > i,
.elementor-element-sec20014 .elementor-icon > svg,
.elementor-element-sec40011 .elementor-icon > i,
.elementor-element-sec40011 .elementor-icon > svg,
.elementor-element-sec40012 .elementor-icon > i,
.elementor-element-sec40012 .elementor-icon > svg,
.elementor-element-sec40013 .elementor-icon > i,
.elementor-element-sec40013 .elementor-icon > svg,
.elementor-element-sec40014 .elementor-icon > i,
.elementor-element-sec40014 .elementor-icon > svg,
.elementor-element-sec40015 .elementor-icon > i,
.elementor-element-sec40015 .elementor-icon > svg,
.elementor-element-sec40016 .elementor-icon > i,
.elementor-element-sec40016 .elementor-icon > svg,
.elementor-element-sec80011 .elementor-icon > i,
.elementor-element-sec80011 .elementor-icon > svg,
.elementor-element-sec80012 .elementor-icon > i,
.elementor-element-sec80012 .elementor-icon > svg,
.elementor-element-sec80013 .elementor-icon > i,
.elementor-element-sec80013 .elementor-icon > svg,
.elementor-element-sec80014 .elementor-icon > i,
.elementor-element-sec80014 .elementor-icon > svg,
.elementor-element-sec80015 .elementor-icon > i,
.elementor-element-sec80015 .elementor-icon > svg,
.elementor-element-sec80016 .elementor-icon > i,
.elementor-element-sec80016 .elementor-icon > svg {
  display: none !important;
}

/* Apply SVG backgrounds with very high specificity to beat Elementor inline lazy rule */
html body.page .elementor-24 .elementor-element.elementor-element-sec20011 .elementor-icon-box-icon .elementor-icon {
  background-image: url("/elementor-templates/assets/icons/icon-problem-infiltrations.svg") !important;
  background-color: transparent !important;
  background-size: contain !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  width: 72px !important;
  height: 72px !important;
  border: 0 !important;
  padding: 0 !important;
}

html body.page .elementor-24 .elementor-element.elementor-element-sec20012 .elementor-icon-box-icon .elementor-icon {
  background-image: url("/elementor-templates/assets/icons/icon-problem-peinture.svg") !important;
  background-color: transparent !important;
  background-size: contain !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  width: 72px !important;
  height: 72px !important;
  border: 0 !important;
  padding: 0 !important;
}

html body.page .elementor-24 .elementor-element.elementor-element-sec20013 .elementor-icon-box-icon .elementor-icon {
  background-image: url("/elementor-templates/assets/icons/icon-problem-couleur.svg") !important;
  background-color: transparent !important;
  background-size: contain !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  width: 72px !important;
  height: 72px !important;
  border: 0 !important;
  padding: 0 !important;
}

html body.page .elementor-24 .elementor-element.elementor-element-sec20014 .elementor-icon-box-icon .elementor-icon {
  background-image: url("/elementor-templates/assets/icons/icon-problem-cout.svg") !important;
  background-color: transparent !important;
  background-size: contain !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  width: 72px !important;
  height: 72px !important;
  border: 0 !important;
  padding: 0 !important;
}

html body.page .elementor-24 .elementor-element.elementor-element-sec40011 .elementor-icon-box-icon .elementor-icon {
  background-image: url("/elementor-templates/assets/icons/icon-method-01.svg") !important;
  background-color: transparent !important;
  background-size: contain !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  width: 72px !important;
  height: 72px !important;
  border: 0 !important;
  padding: 0 !important;
}

html body.page .elementor-24 .elementor-element.elementor-element-sec40012 .elementor-icon-box-icon .elementor-icon {
  background-image: url("/elementor-templates/assets/icons/icon-method-02.svg") !important;
  background-color: transparent !important;
  background-size: contain !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  width: 72px !important;
  height: 72px !important;
  border: 0 !important;
  padding: 0 !important;
}

html body.page .elementor-24 .elementor-element.elementor-element-sec40013 .elementor-icon-box-icon .elementor-icon {
  background-image: url("/elementor-templates/assets/icons/icon-method-03.svg") !important;
  background-color: transparent !important;
  background-size: contain !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  width: 72px !important;
  height: 72px !important;
  border: 0 !important;
  padding: 0 !important;
}

html body.page .elementor-24 .elementor-element.elementor-element-sec40014 .elementor-icon-box-icon .elementor-icon {
  background-image: url("/elementor-templates/assets/icons/icon-method-04.svg") !important;
  background-color: transparent !important;
  background-size: contain !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  width: 72px !important;
  height: 72px !important;
  border: 0 !important;
  padding: 0 !important;
}

html body.page .elementor-24 .elementor-element.elementor-element-sec40015 .elementor-icon-box-icon .elementor-icon {
  background-image: url("/elementor-templates/assets/icons/icon-method-05.svg") !important;
  background-color: transparent !important;
  background-size: contain !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  width: 72px !important;
  height: 72px !important;
  border: 0 !important;
  padding: 0 !important;
}

html body.page .elementor-24 .elementor-element.elementor-element-sec40016 .elementor-icon-box-icon .elementor-icon {
  background-image: url("/elementor-templates/assets/icons/icon-star.svg") !important;
  background-color: transparent !important;
  background-size: contain !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  width: 72px !important;
  height: 72px !important;
  border: 0 !important;
  padding: 0 !important;
}

html body.page .elementor-24 .elementor-element.elementor-element-sec80011 .elementor-icon-box-icon .elementor-icon {
  background-image: url("/elementor-templates/assets/icons/icon-service-01.svg") !important;
  background-color: transparent !important;
  background-size: contain !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  width: 72px !important;
  height: 72px !important;
  border: 0 !important;
  padding: 0 !important;
}

html body.page .elementor-24 .elementor-element.elementor-element-sec80012 .elementor-icon-box-icon .elementor-icon {
  background-image: url("/elementor-templates/assets/icons/icon-service-02.svg") !important;
  background-color: transparent !important;
  background-size: contain !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  width: 72px !important;
  height: 72px !important;
  border: 0 !important;
  padding: 0 !important;
}

html body.page .elementor-24 .elementor-element.elementor-element-sec80013 .elementor-icon-box-icon .elementor-icon {
  background-image: url("/elementor-templates/assets/icons/icon-service-03.svg") !important;
  background-color: transparent !important;
  background-size: contain !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  width: 72px !important;
  height: 72px !important;
  border: 0 !important;
  padding: 0 !important;
}

html body.page .elementor-24 .elementor-element.elementor-element-sec80014 .elementor-icon-box-icon .elementor-icon {
  background-image: url("/elementor-templates/assets/icons/icon-service-04.svg") !important;
  background-color: transparent !important;
  background-size: contain !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  width: 72px !important;
  height: 72px !important;
  border: 0 !important;
  padding: 0 !important;
}

html body.page .elementor-24 .elementor-element.elementor-element-sec80015 .elementor-icon-box-icon .elementor-icon {
  background-image: url("/elementor-templates/assets/icons/icon-service-05.svg") !important;
  background-color: transparent !important;
  background-size: contain !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  width: 72px !important;
  height: 72px !important;
  border: 0 !important;
  padding: 0 !important;
}

html body.page .elementor-24 .elementor-element.elementor-element-sec80016 .elementor-icon-box-icon .elementor-icon {
  background-image: url("/elementor-templates/assets/icons/icon-service-06.svg") !important;
  background-color: transparent !important;
  background-size: contain !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  width: 72px !important;
  height: 72px !important;
  border: 0 !important;
  padding: 0 !important;
}

/* ============================================================
   LOT 3A.1 — Typo SERIF globale (Playfair Display)
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,500;0,600;0,700;0,800;1,400;1,600;1,700&display=swap');

/* Tous les H1/H2 Elementor → serif Playfair */
h1.elementor-heading-title,
h2.elementor-heading-title,
.elementor-widget-heading h1,
.elementor-widget-heading h2,
.bc-hero-title,
.bc-fc-title,
.bc-np-title,
.bc-cs-title,
.bc-ex-title,
.bc-pq-title,
.bc-cmp-title,
.bc-pt-content h3,
.bc-cf-title,
.bc-testimonials-title,
.bc-pb-heading,
.bc-real-head-title h2 {
  font-family: 'Playfair Display', 'Times New Roman', Georgia, serif !important;
  font-weight: 700 !important;
  font-style: normal !important;
  letter-spacing: -0.01em !important;
  line-height: 1.12 !important;
}

/* ============================================================
   Kicker pattern "// TEXT"
   ============================================================ */
.bc-kicker,
.bc-fc-kicker,
.bc-np-kicker,
.bc-cs-kicker,
.bc-ex-kicker,
.bc-pq-kicker,
.bc-cf-kicker,
.bc-real-head-title .bc-kicker {
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
}
.bc-kicker::before,
.bc-fc-kicker::before,
.bc-np-kicker::before,
.bc-cs-kicker::before,
.bc-ex-kicker::before,
.bc-pq-kicker::before,
.bc-cf-kicker::before,
.bc-real-head-title .bc-kicker::before {
  content: '//';
  font-weight: 700;
  letter-spacing: 0;
  color: #8C9A5B;
}

/* Center kicker when parent is centered */
.bc-ex-head .bc-ex-kicker,
.bc-pq-head .bc-pq-kicker,
div[style*="text-align:center"] > .bc-kicker {
  justify-content: center;
}

/* ============================================================
   Cohérence visuelle : tailles & espacements
   ============================================================ */
.bc-hero-title, .bc-fc-title, .bc-np-title, .bc-cs-title,
.bc-ex-title, .bc-pq-title {
  font-size: 52px !important;
  letter-spacing: -0.02em !important;
}

@media (max-width: 900px) {
  .bc-hero-title, .bc-fc-title, .bc-np-title, .bc-cs-title,
  .bc-ex-title, .bc-pq-title {
    font-size: 34px !important;
  }
}

/* ============================================
   BATI-CLEAN — Global Kit CSS v2 (Figma-match)
   ============================================ */

/* Import Playfair Display (serif headings + accents) */
@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,500;0,600;0,700;0,800;1,400;1,700&display=swap');

/* Headings : serif Figma */
body .bc-serif,
body h1.bc-serif,
body h2.bc-serif,
body h3.bc-serif,
body .bc-hero-title,
body .bc-fc-title,
body .bc-np-title,
body .bc-pq-title,
body .bc-ex-title,
body .bc-cs-title,
body .bc-cmp-title,
body .bc-tc-name-big,
body .bc-kicker-h2 {
  font-family: 'Playfair Display', 'Times New Roman', Georgia, serif !important;
  font-weight: 700 !important;
  letter-spacing: -0.01em !important;
}

/* Kicker pattern // NOS PRESTATIONS */
.bc-kicker {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: 'Inter', sans-serif;
  font-weight: 600;
  font-size: 13px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: #8C9A5B;
  margin: 0;
}
.bc-kicker::before {
  content: '//';
  color: #8C9A5B;
  font-weight: 800;
  font-size: 14px;
  letter-spacing: 0;
}

/* Utility : span d'accent vert pour titres */
.bc-accent { color: #8C9A5B; }

/* Pill bullets (pour "Votre façade coûte" et "Nettoyage pro") */
.bc-pill-bullets {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.bc-pill-bullet {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 10px 18px;
  background: #FFFFFF;
  border: 1px solid #E5E7DB;
  border-radius: 100px;
  font-family: 'Inter', sans-serif;
  font-size: 14px;
  color: #3D4930;
  width: fit-content;
  max-width: 100%;
}
.bc-pill-bullet-icon {
  flex-shrink: 0;
  width: 22px; height: 22px;
  border-radius: 50%;
  background: #8C9A5B;
  color: #FFFFFF;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

/* CTA Devis Gratuit standard (avec icône ↗) */
.bc-cta-primary, .bc-cta-primary:link, .bc-cta-primary:visited {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 14px 28px;
  background: #8C9A5B !important;
  color: #FFFFFF !important;
  border-radius: 100px;
  text-decoration: none !important;
  font-family: 'Outfit', sans-serif;
  font-weight: 600;
  font-size: 15px;
  transition: background .25s ease;
  border: none;
}
.bc-cta-primary:hover { background: #7A8A4B !important; color: #FFFFFF !important; }

.bc-cta-ghost, .bc-cta-ghost:link, .bc-cta-ghost:visited {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 12px 28px;
  background: transparent !important;
  color: #1D2513 !important;
  border: 1.5px solid #1D2513;
  border-radius: 100px;
  text-decoration: none !important;
  font-family: 'Outfit', sans-serif;
  font-weight: 600;
  font-size: 15px;
  transition: all .25s ease;
}
.bc-cta-ghost:hover {
  background: #1D2513 !important;
  color: #FFFFFF !important;
}

/* Section kicker alignment helpers */
.bc-section-head {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 14px;
  margin-bottom: 40px;
}
.bc-section-head h2 {
  font-family: 'Playfair Display', 'Times New Roman', Georgia, serif !important;
  font-weight: 700 !important;
  font-size: 44px;
  line-height: 1.12;
  color: #1D2513;
  margin: 0;
  letter-spacing: -0.01em;
}
.bc-section-head p.bc-section-sub {
  font-family: 'Inter', sans-serif;
  font-size: 17px;
  color: #3D4930;
  margin: 0;
  max-width: 640px;
}

/* Override existing sections that use Outfit for H1/H2 */
.bc-fc-title, .bc-np-title, .bc-pq-title, .bc-ex-title, .bc-cs-title {
  font-family: 'Playfair Display', 'Times New Roman', Georgia, serif !important;
}

/* Override Elementor heading widget for sections sec-* with "bc-serif-h2" class */
.elementor-element .bc-serif-h2 .elementor-heading-title {
  font-family: 'Playfair Display', 'Times New Roman', Georgia, serif !important;
  font-weight: 700 !important;
  letter-spacing: -0.01em !important;
}

@media (max-width: 767px) {
  .bc-section-head h2 { font-size: 30px; }
  .bc-section-head p.bc-section-sub { font-size: 15px; }
}

/* ==== LOT 3C — Hero fidelity Figma ==== */
/* Extend hero bg to page top, under the transparent header */
.elementor-element-sec10000 {
  background-image: url('/elementor-templates/assets/Section%20-%20HERO.png') !important;
  background-size: cover !important;
  background-position: top center !important;
  background-repeat: no-repeat !important;
  background-color: #E8EADF !important;
  margin-top: -240px !important;
  padding-top: 340px !important;
  position: relative !important;
  z-index: 0 !important;
}
body > header,
body header.site-header,
header.elementor-location-header,
.elementor-location-header {
  position: relative !important;
  z-index: 10 !important;
}

/* ---- Hero stats icons : 40x40 rounded square, cream bg ---- */
.bc-hero-v2-stats {
  column-gap: 32px !important;
}
.bc-hero-v2-stat {
  gap: 10px !important;
}
.bc-hero-v2-stat-icon {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 40px !important;
  height: 40px !important;
  background: #F4F2E8 !important;
  border-radius: 10px !important;
  color: #1D2513 !important;
  margin-bottom: 4px !important;
}
.bc-hero-v2-stat-icon svg {
  width: 22px !important;
  height: 22px !important;
  stroke-width: 1.8 !important;
}
.bc-hero-v2-stat-num {
  font-size: 32px !important;
  line-height: 1.1 !important;
  font-weight: 700 !important;
  color: #0E1209 !important;
}
.bc-hero-v2-stat-label {
  font-size: 13px !important;
  line-height: 1.35 !important;
  color: #6B6F5A !important;
}

/* ---- Hero CTAs : pill buttons Figma-size ---- */
.bc-hero-v2-ctas {
  gap: 16px !important;
  margin-top: 8px !important;
}
.bc-hero-v2-btn,
.bc-hero-v2-btn:link,
.bc-hero-v2-btn:visited {
  padding: 16px 32px !important;
  font-size: 15px !important;
  font-weight: 600 !important;
  line-height: 1 !important;
  min-height: 56px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  border-radius: 100px !important;
  text-decoration: none !important;
  letter-spacing: 0 !important;
  transition: all 0.25s ease !important;
}
.bc-hero-v2-btn-primary,
.bc-hero-v2-btn-primary:link,
.bc-hero-v2-btn-primary:visited {
  background: #8C9A5B !important;
  color: #FFFFFF !important;
  border: 1px solid #8C9A5B !important;
}
.bc-hero-v2-btn-ghost,
.bc-hero-v2-btn-ghost:link,
.bc-hero-v2-btn-ghost:visited {
  background: transparent !important;
  color: #8C9A5B !important;
  border: 1.5px solid #8C9A5B !important;
}

/* Mobile tweaks hero */
@media (max-width: 767px) {
  .elementor-element-sec10000 {
    margin-top: -100px !important;
    padding-top: 180px !important;
    background-position: top left !important;
  }
  .bc-hero-v2-stats {
    grid-template-columns: repeat(2, 1fr) !important;
    column-gap: 20px !important;
    row-gap: 24px !important;
  }
  .bc-hero-v2-btn {
    padding: 14px 24px !important;
    min-height: 50px !important;
    font-size: 14px !important;
  }
}
/* ==== END LOT 3C ==== */

/* ==== LOT 3E — header no shadow ==== */
/* Retire la shadow sur le wrap header + sticky, garde la shadow sur le nav pill (hdr00002) */
header.elementor-location-header .elementor-element-hdr00001,
header .elementor-sticky--active,
header .elementor-sticky--effects {
  box-shadow: none !important;
}
/* ==== END LOT 3E ==== */

/* ==== LOT 3F — content max-width 1440 ==== */
/* Élargit le content-width par défaut des containers Elementor (1200 → 1440) */
.e-con.e-con-boxed > .e-con-inner,
.elementor .e-con-inner {
  max-width: min(100%, 1440px) !important;
}
/* Wrappers internes custom : bc-hero, bc-faq, etc. */
.bc-hero-v2-wrap,
.bc-fc-wrap,
.bc-np-wrap,
.bc-pq-wrap,
.bc-ex-wrap,
.bc-cs-wrap,
.bc-cmp-wrap,
.bc-pt-wrap,
.bc-cf-wrap,
.bc-faq-wrap,
.bc-real-wrap,
.bc-testimonials-wrap,
.bc-pb-wrap {
  max-width: 1440px !important;
}
/* ==== END LOT 3F ==== */

/* ==== LOT 3G — body bg + hero margin safety ==== */
body { background-color: #E8EADF !important; }
/* ==== END LOT 3G ==== */

/* ==== LOT 3I — menu single-line + ghost btn safety ==== */
/* Menu nav : padding réduit, font légèrement plus petite, nowrap, pour tenir sur 1 ligne */
header .elementor-nav-menu > li > a,
header .elementor-nav-menu li a.elementor-item {
  padding: 12px 12px !important;
  font-size: 14px !important;
  white-space: nowrap !important;
}
header .elementor-nav-menu {
  flex-wrap: nowrap !important;
}
/* Ultra-specific override pour ghost btn → vert */
html body .bc-hero-v2-btn-ghost,
html body .bc-hero-v2-btn-ghost:link,
html body .bc-hero-v2-btn-ghost:visited {
  color: #8C9A5B !important;
  border-color: #8C9A5B !important;
}
/* Header CTA "Devis Gratuit" : nowrap pour ne pas casser sur 2 lignes */
header .elementor-button,
header a.elementor-button-link,
header .elementor-widget-button a {
  white-space: nowrap !important;
}
/* Hero image alignée à droite du container */
html body .bc-hero-v2-right {
  justify-content: flex-end !important;
}
/* Logo header : taille réduite pour matcher Figma (~100px de large) */
header .elementor-element-hdr00003 img,
header .bc-logo img {
  max-width: 100px !important;
  width: 100px !important;
  height: auto !important;
}
/* ==== END LOT 3I ==== */

/* ==== LOT 4B — boutons standard sitewide ==== */
/* Standard sitewide : tous les boutons ghost (bc-*-btn-ghost) en vert #8C9A5B
   Tous les btn-arrow (img classe .bc-btn-arrow) à 14×14 */
html body [class*="-btn-ghost"],
html body [class*="-btn-ghost"]:link,
html body [class*="-btn-ghost"]:visited {
  color: #8C9A5B !important;
  border-color: #8C9A5B !important;
  background: transparent !important;
}
.bc-btn-arrow {
  width: 14px !important;
  height: 14px !important;
  display: inline-block !important;
  vertical-align: middle;
}
/* ==== END LOT 4B ==== */



/* ==== LOT 6A2 — sec95000 partner card ==== */
/* Clip le border-radius sur la card pour que les cols gauche/droite soient
   découpées aux coins arrondis. */
html body .elementor .bc-partner-card {
  overflow: hidden !important;
}
/* Force les 2 cols à être toute la hauteur du card (sinon align-items:stretch
   peut fail sur mobile quand direction passe en column) */
html body .elementor .bc-partner-left,
html body .elementor .bc-partner-right {
  align-self: stretch !important;
}
/* ==== END LOT 6A2 ==== */

/* ==== LOT 6B2 — sec70000 bullets + surface cards ==== */
/* Bullet pill (white rounded check + texte) : force Icon Box layout row */
html body .elementor .bc-bullet-pill {
  width: fit-content !important;
  max-width: 100% !important;
}
html body .elementor .bc-bullet-pill .elementor-icon-box-wrapper {
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  gap: 10px !important;
}
html body .elementor .bc-bullet-pill .elementor-icon-box-icon {
  margin: 0 !important;
}
html body .elementor .bc-bullet-pill .elementor-icon {
  font-size: 11px !important;
  padding: 0.5em !important;
}
html body .elementor .bc-bullet-pill .elementor-icon svg,
html body .elementor .bc-bullet-pill .elementor-icon i {
  width: 11px !important;
  height: 11px !important;
}
html body .elementor .bc-bullet-pill .elementor-icon-box-title {
  margin: 0 !important;
}

/* Surface info card (DirtBox / Aquafiltre) : Icon Box layout row avec petit icon */
html body .elementor .bc-surface-info {
  max-width: 280px !important;
}
html body .elementor .bc-surface-info .elementor-icon-box-wrapper {
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  gap: 12px !important;
}
html body .elementor .bc-surface-info .elementor-icon-box-icon {
  margin: 0 !important;
}
html body .elementor .bc-surface-info .elementor-icon {
  font-size: 14px !important;
  padding: 0.55em !important;
}
html body .elementor .bc-surface-info .elementor-icon svg,
html body .elementor .bc-surface-info .elementor-icon i {
  width: 14px !important;
  height: 14px !important;
}
html body .elementor .bc-surface-info .elementor-icon-box-title {
  margin-bottom: 2px !important;
}
/* ==== END LOT 6B2 ==== */

/* ==== LOT 6C2 — sec85000 cards pourquoi choisir ==== */
/* Card : flex 1 1 0 pour égaliser les cols dans chaque row */
html body .elementor .bc-pq-card {
  flex: 1 1 0 !important;
  min-width: 0 !important;
  max-width: 100% !important;
  min-height: 200px !important;
}
html body .elementor .bc-pq-card .elementor-icon {
  font-size: 18px !important;
  padding: 0.7em !important;
}
html body .elementor .bc-pq-card .elementor-icon svg,
html body .elementor .bc-pq-card .elementor-icon i {
  width: 18px !important;
  height: 18px !important;
}
html body .elementor .bc-pq-card .elementor-icon-box-title {
  margin-bottom: 8px !important;
}

@media (max-width: 767px) {
  html body .elementor .bc-pq-card {
    flex: 0 0 100% !important;
    max-width: 100% !important;
    min-height: auto !important;
  }
}
/* ==== END LOT 6C2 ==== */

/* ==== LOT 6D2 — sec15000 pills custom icons + image border-radius ==== */
/* Pill container : fit-content width, pas full column */
html body .elementor .bc-fc-pill {
  width: fit-content !important;
  max-width: 100% !important;
  align-self: flex-start !important;
}
/* Icon image 22x22 */
html body .elementor .bc-fc-pill-icon img {
  width: 22px !important;
  height: 22px !important;
  object-fit: contain !important;
}
/* Text heading : line 1, sans wrap intempestif */
html body .elementor .bc-fc-pill-text .elementor-heading-title {
  margin: 0 !important;
  line-height: 1.4 !important;
}

/* Image façade : border-radius 24 visible directement sur <img> */
html body .elementor .bc-fc-image img,
html body .elementor .bc-rounded-image img {
  border-radius: 24px !important;
  overflow: hidden !important;
}
/* Stretch image to fill its column height (match content height) */
html body .elementor .bc-fc-image,
html body .elementor .bc-fc-image .elementor-widget-container {
  height: 100% !important;
}
html body .elementor .bc-fc-image img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  display: block !important;
}

@media (max-width: 767px) {
  html body .elementor .bc-fc-pill-icon img {
    width: 20px !important;
    height: 20px !important;
  }
  html body .elementor .bc-fc-image img {
    height: auto !important;
    min-height: 260px !important;
  }
}
/* ==== END LOT 6D2 ==== */

/* ==== LOT 6F2 — sec27000 tags & cards ==== */
/* Tags pill (Commerce / Immeuble) : fit-content width, pill white */
html body .elementor .bc-sc-tag {
  width: fit-content !important;
  max-width: 100% !important;
  background: #FFFFFF !important;
  border-radius: 100px !important;
  padding: 6px 14px !important;
}
html body .elementor .bc-sc-tag .elementor-heading-title {
  margin: 0 !important;
  text-transform: none !important;
}
/* Card : flex 1 1 0 pour égaliser les 3 cols */
html body .elementor .bc-sc-card {
  flex: 1 1 0 !important;
  min-width: 0 !important;
  max-width: 100% !important;
}
@media (max-width: 767px) {
  html body .elementor .bc-sc-card {
    flex: 0 0 100% !important;
    max-width: 100% !important;
  }
}
/* ==== END LOT 6F2 ==== */

/* ==== LOT 6G2 — sec90000 FAQ accordion ==== */
/* Wrap inner */
html body .elementor .bc-faq-accordion .elementor-accordion {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
/* Item wrapper : pill arrondi, pas de border par défaut */
html body .elementor .bc-faq-accordion .elementor-accordion-item {
  border: 0 !important;
  border-radius: 16px !important;
  overflow: hidden;
  background: #E8EADF;
  transition: background .25s ease;
}
html body .elementor .bc-faq-accordion .elementor-accordion-item:has(.elementor-active) {
  background: #DCDFD0;
}
/* Title row */
html body .elementor .bc-faq-accordion .elementor-tab-title {
  padding: 20px 28px !important;
  background: transparent !important;
  border: 0 !important;
  display: flex !important;
  flex-direction: row-reverse;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  font-family: 'Inter', sans-serif !important;
  font-size: 16px;
  font-weight: 600;
  color: #1D2513 !important;
  line-height: 1.4;
  text-align: left;
}
html body .elementor .bc-faq-accordion .elementor-tab-title .elementor-accordion-title {
  flex: 1;
  text-align: left;
}
html body .elementor .bc-faq-accordion .elementor-tab-title.elementor-active {
  color: #1D2513 !important;
}
/* Icon pill (wraps the <i>) */
html body .elementor .bc-faq-accordion .elementor-tab-title .elementor-accordion-icon {
  flex-shrink: 0;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: #FFFFFF;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  transition: background .3s ease, transform .3s ease;
  margin: 0 !important;
  padding: 0 !important;
  float: none !important;
}
html body .elementor .bc-faq-accordion .elementor-tab-title .elementor-accordion-icon i,
html body .elementor .bc-faq-accordion .elementor-tab-title .elementor-accordion-icon svg {
  font-size: 12px !important;
  width: 12px !important;
  height: 12px !important;
  color: #5B6E3A !important;
  fill: #5B6E3A !important;
  transition: color .3s ease, fill .3s ease;
}
/* Active state : icon pill vert, arrow blanc */
html body .elementor .bc-faq-accordion .elementor-tab-title.elementor-active .elementor-accordion-icon {
  background: #8C9A5B;
}
html body .elementor .bc-faq-accordion .elementor-tab-title.elementor-active .elementor-accordion-icon i,
html body .elementor .bc-faq-accordion .elementor-tab-title.elementor-active .elementor-accordion-icon svg {
  color: #FFFFFF !important;
  fill: #FFFFFF !important;
}
/* Hide the opened icon container so only chevron rotates visually */
html body .elementor .bc-faq-accordion .elementor-tab-title .elementor-accordion-icon .elementor-accordion-icon-opened {
  display: none !important;
}
html body .elementor .bc-faq-accordion .elementor-tab-title.elementor-active .elementor-accordion-icon .elementor-accordion-icon-closed {
  display: none !important;
}
html body .elementor .bc-faq-accordion .elementor-tab-title.elementor-active .elementor-accordion-icon .elementor-accordion-icon-opened {
  display: inline-flex !important;
}
/* Content */
html body .elementor .bc-faq-accordion .elementor-tab-content {
  padding: 0 28px 22px !important;
  background: transparent !important;
  border: 0 !important;
  color: #3D4930 !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 15px;
  line-height: 1.6;
}
html body .elementor .bc-faq-accordion .elementor-tab-content p {
  margin: 0 !important;
}
html body .elementor .bc-faq-accordion .elementor-tab-content a {
  color: #5B6E3A !important;
  text-decoration: underline;
}
/* Title serif forcing (title widget) */
html body .elementor .bc-faq-title .elementor-heading-title {
  font-family: 'Playfair Display', 'Times New Roman', Georgia, serif !important;
}
html body .elementor .bc-faq-title .elementor-heading-title em {
  color: #8C9A5B;
}
@media (max-width: 767px) {
  html body .elementor .bc-faq-accordion .elementor-tab-title {
    padding: 16px 20px !important;
    font-size: 14px;
  }
  html body .elementor .bc-faq-accordion .elementor-tab-content {
    padding: 0 20px 18px !important;
    font-size: 14px;
  }
}
/* ==== END LOT 6G2 ==== */



/* ==== LOT 6I2 — sec40000 carte Suisse ==== */
/* Left col : flex:0 sinon empile trop large sur desktop */
html body .elementor .elementor-element-sec40left,
html body .elementor .elementor-element-sec40right {
  flex: 1 1 0 !important;
  min-width: 0 !important;
}
@media (max-width: 900px) {
  html body .elementor .elementor-element-sec40left,
  html body .elementor .elementor-element-sec40right {
    flex: 0 0 100% !important;
    width: 100% !important;
  }
}
/* Stats items : flex 0 auto pour qu'elles restent côte à côte */
html body .elementor .elementor-element-sec40stats > .elementor-element {
  flex: 0 0 auto !important;
  width: auto !important;
}
/* CTA items : auto width */
html body .elementor .elementor-element-sec40ctas > .elementor-element {
  flex: 0 0 auto !important;
  width: auto !important;
}
/* Map image : shadow + max-width */
html body .elementor .bc-cs-map-img img {
  max-width: 580px !important;
  width: 100% !important;
  height: auto !important;
  filter: drop-shadow(0 20px 40px rgba(91,110,58,0.2));
}
/* Serif title with em italique vert */
html body .elementor .bc-cs-title em,
html body .elementor .elementor-element-sec40title em {
  color: #8C9A5B;
}
/* Title p/margin reset */
html body .elementor .bc-cs-desc p,
html body .elementor .bc-cs-stat-label p {
  margin: 0 !important;
}
/* ==== END LOT 6I2 ==== */

/* ==== LOT 6J2 — sec80000 processus grid 2×3 ==== */
/* Grid : 2 cols desktop, 2 cols tablette, 1 col mobile */
html body .elementor .elementor-element-sec80grid {
  display: flex !important;
}
/* Step card : ~48.5% width sur desktop pour 2 cards/row */
html body .elementor .bc-pr-step-card,
html body .elementor .elementor-element-sec80s1,
html body .elementor .elementor-element-sec80s2,
html body .elementor .elementor-element-sec80s3,
html body .elementor .elementor-element-sec80s4,
html body .elementor .elementor-element-sec80s5,
html body .elementor .elementor-element-sec80s6 {
  flex: 0 0 calc((100% - 20px) / 2) !important;
  max-width: calc((100% - 20px) / 2) !important;
  min-width: 0 !important;
}
@media (max-width: 767px) {
  html body .elementor .bc-pr-step-card,
  html body .elementor .elementor-element-sec80s1,
  html body .elementor .elementor-element-sec80s2,
  html body .elementor .elementor-element-sec80s3,
  html body .elementor .elementor-element-sec80s4,
  html body .elementor .elementor-element-sec80s5,
  html body .elementor .elementor-element-sec80s6 {
    flex: 0 0 100% !important;
    max-width: 100% !important;
  }
}
/* Num title : "01." vert clair + <span>titre</span> vert foncé */
html body .elementor .bc-pr-num-title .elementor-heading-title {
  font-family: 'Playfair Display', 'Times New Roman', Georgia, serif !important;
  color: #5B6E3A !important;
}
html body .elementor .bc-pr-num-title .elementor-heading-title span {
  color: #1D2513 !important;
}
/* Title em italique vert (titre h2 section) */
html body .elementor .bc-pr-title em {
  color: #8C9A5B;
}
/* Bullets pills : blanc rond avec check vert */
html body .elementor .bc-pr-bullet {
  background: #FFFFFF !important;
  border-radius: 100px !important;
  padding: 8px 14px !important;
  width: auto !important;
  min-width: auto !important;
  flex: 0 0 auto !important;
}
html body .elementor .bc-pr-bullet .elementor-icon-box-wrapper {
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  gap: 6px !important;
}
html body .elementor .bc-pr-bullet .elementor-icon-box-icon {
  margin: 0 !important;
}
html body .elementor .bc-pr-bullet .elementor-icon {
  font-size: 10px !important;
  width: auto !important;
  height: auto !important;
  color: #8C9A5B !important;
}
html body .elementor .bc-pr-bullet .elementor-icon-box-title {
  margin: 0 !important;
}
html body .elementor .bc-pr-bullet .elementor-icon-box-title,
html body .elementor .bc-pr-bullet .elementor-icon-box-title .elementor-heading-title {
  font-family: 'Inter', sans-serif !important;
  font-weight: 500 !important;
  font-size: 13px !important;
  color: #5B6E3A !important;
  line-height: 1 !important;
}
/* Desc p margin reset */
html body .elementor .bc-pr-desc p,
html body .elementor .bc-pr-sub p {
  margin: 0 !important;
}
/* ==== END LOT 6J2 ==== */

/* ==== LOT 6L2 — sec30000 comparatif prix ==== */
/* 2 cards flex 1, badge central fixed width */
html body .elementor .bc-cmp-wrap,
html body .elementor .elementor-element-sec30grid {
  position: relative;
}
html body .elementor .elementor-element-sec30p,
html body .elementor .elementor-element-sec30s {
  flex: 1 1 0 !important;
  min-width: 0 !important;
}
html body .elementor .elementor-element-sec30badge {
  flex: 0 0 auto !important;
  width: auto !important;
  align-self: stretch;
  position: relative;
}
/* Line vertical between cards (superseded by LOT 6P) */
/* Badge -70% gold pill */
html body .elementor .bc-cmp-badge {
  background: #D4AF37 !important;
  border-radius: 100px !important;
  padding: 10px 22px !important;
  color: #1D2513 !important;
  box-shadow: 0 6px 20px rgba(212,175,55,0.25) !important;
  width: fit-content !important;
  position: relative;
  z-index: 2;
}
@media (max-width: 767px) {
  html body .elementor .elementor-element-sec30p,
  html body .elementor .elementor-element-sec30s {
    flex: 0 0 100% !important;
  }
  html body .elementor .elementor-element-sec30badge::before {
    display: none;
  }
  html body .elementor .elementor-element-sec30badge {
    padding: 16px 0 !important;
  }
}
/* Card head icon circle 48x48 */
html body .elementor .bc-cmp-card-icon .elementor-icon {
  width: 48px !important;
  height: 48px !important;
  font-size: 22px !important;
  background: #FFFFFF !important;
}
/* Specs grid 2 cols per card — cibler via ID class (container _css_classes ignoré WP-CLI) */
html body .elementor .elementor-element-sec30pspecs,
html body .elementor .elementor-element-sec30sspecs {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: wrap !important;
}
html body .elementor .elementor-element-sec30pspecs > .elementor-element,
html body .elementor .elementor-element-sec30sspecs > .elementor-element {
  flex: 0 0 calc((100% - 24px) / 2) !important;
  max-width: calc((100% - 24px) / 2) !important;
  min-width: 0 !important;
}
/* Spec icon circle 26x26 + glyph taille */
html body .elementor .bc-cmp-spec-icon .elementor-icon {
  width: 26px !important;
  height: 26px !important;
  font-size: 11px !important;
}
html body .elementor .bc-cmp-spec-icon .elementor-icon svg {
  width: 11px !important;
  height: 11px !important;
}
/* Card head icon SVG taille (paint-roller / leaf) */
html body .elementor .bc-cmp-card-icon .elementor-icon svg {
  width: 22px !important;
  height: 22px !important;
}
/* Badge center : flex alignement vertical */
html body .elementor .elementor-element-sec30badge {
  padding: 0 16px !important;
}
/* Title em italique vert */
html body .elementor .bc-cmp-title em {
  color: #8C9A5B;
}
/* Sub p reset */
html body .elementor .bc-cmp-sub p {
  margin: 0 !important;
}
/* Spec label/value p reset */
html body .elementor .bc-cmp-specs .elementor-widget-text-editor p {
  margin: 0 !important;
}
/* ==== END LOT 6L2 ==== */

/* ==== LOT 6M2 — sec55000 réalisations grid 3×2 ==== */
/* Grid 3 cols desktop, 2 cols tablette, 1 col mobile */
html body .elementor .elementor-element-sec55grid {
  display: flex !important;
  flex-wrap: wrap !important;
}
html body .elementor:not(.elementor-142):not(.elementor-170):not(.elementor-176) .elementor-element-sec55c1,
html body .elementor:not(.elementor-142):not(.elementor-170):not(.elementor-176) .elementor-element-sec55c2,
html body .elementor:not(.elementor-142):not(.elementor-170):not(.elementor-176) .elementor-element-sec55c3,
html body .elementor:not(.elementor-142):not(.elementor-170):not(.elementor-176) .elementor-element-sec55c4,
html body .elementor:not(.elementor-142):not(.elementor-170):not(.elementor-176) .elementor-element-sec55c5,
html body .elementor:not(.elementor-142):not(.elementor-170):not(.elementor-176) .elementor-element-sec55c6 {
  flex: 0 0 calc((100% - 48px) / 3) !important;
  max-width: calc((100% - 48px) / 3) !important;
  min-width: 0 !important;
}
@media (max-width: 1024px) {
  html body .elementor:not(.elementor-142):not(.elementor-170):not(.elementor-176) .elementor-element-sec55c1,
  html body .elementor:not(.elementor-142):not(.elementor-170):not(.elementor-176) .elementor-element-sec55c2,
  html body .elementor:not(.elementor-142):not(.elementor-170):not(.elementor-176) .elementor-element-sec55c3,
  html body .elementor:not(.elementor-142):not(.elementor-170):not(.elementor-176) .elementor-element-sec55c4,
  html body .elementor:not(.elementor-142):not(.elementor-170):not(.elementor-176) .elementor-element-sec55c5,
  html body .elementor:not(.elementor-142):not(.elementor-170):not(.elementor-176) .elementor-element-sec55c6 {
    flex: 0 0 calc((100% - 24px) / 2) !important;
    max-width: calc((100% - 24px) / 2) !important;
  }
}
@media (max-width: 640px) {
  html body .elementor:not(.elementor-142):not(.elementor-170):not(.elementor-176) .elementor-element-sec55c1,
  html body .elementor:not(.elementor-142):not(.elementor-170):not(.elementor-176) .elementor-element-sec55c2,
  html body .elementor:not(.elementor-142):not(.elementor-170):not(.elementor-176) .elementor-element-sec55c3,
  html body .elementor:not(.elementor-142):not(.elementor-170):not(.elementor-176) .elementor-element-sec55c4,
  html body .elementor:not(.elementor-142):not(.elementor-170):not(.elementor-176) .elementor-element-sec55c5,
  html body .elementor:not(.elementor-142):not(.elementor-170):not(.elementor-176) .elementor-element-sec55c6 {
    flex: 0 0 100% !important;
    max-width: 100% !important;
  }
}
/* Image wrap : single image, full size (no crop) */
html body .elementor .bc-rc-imgwrap .elementor-widget-image,
html body .elementor .bc-rc-imgwrap .elementor-widget-image .elementor-widget-container {
  width: 100% !important;
  height: auto !important;
}
html body .elementor .bc-rc-imgwrap img {
  width: 100% !important;
  height: auto !important;
  object-fit: contain !important;
  display: block;
}
/* Card title em italique vert */
html body .elementor .bc-rc-title em {
  color: #8C9A5B;
}
/* Card desc p reset */
html body .elementor .bc-rc-card-desc p {
  margin: 0 !important;
}
/* Overflow hidden card pour bords images arrondis */
html body .elementor:not(.elementor-142):not(.elementor-170):not(.elementor-176) .elementor-element-sec55c1,
html body .elementor:not(.elementor-142):not(.elementor-170):not(.elementor-176) .elementor-element-sec55c2,
html body .elementor:not(.elementor-142):not(.elementor-170):not(.elementor-176) .elementor-element-sec55c3,
html body .elementor:not(.elementor-142):not(.elementor-170):not(.elementor-176) .elementor-element-sec55c4,
html body .elementor:not(.elementor-142):not(.elementor-170):not(.elementor-176) .elementor-element-sec55c5,
html body .elementor:not(.elementor-142):not(.elementor-170):not(.elementor-176) .elementor-element-sec55c6 {
  overflow: hidden !important;
}
/* ==== END LOT 6M2 ==== */

/* ==== LOT 6N2 — sec10000 hero natif ==== */

/* Section : override LOT 3C padding-top trop généreux pour le nouveau hero natif.
   On garde margin-top négatif pour que le bg Figma remonte sous le header,
   mais on réduit le padding-top de 340→180 pour coller au Figma. */
html body .elementor .elementor-element.elementor-element-sec10000 {
  margin-top: -140px !important;
  padding-top: 170px !important;
  padding-bottom: 60px !important;
}
@media (max-width: 767px) {
  html body .elementor .elementor-element.elementor-element-sec10000 {
    margin-top: -100px !important;
    padding-top: 160px !important;
    padding-bottom: 40px !important;
  }
}

/* Inner : 2 cols alignées au top (pas de centrage vertical) */
html body .elementor .elementor-element.elementor-element-sec10inner {
  align-items: flex-start !important;
}

/* Col gauche 50%, col droite 50% — les classes container .bc-hero-* sont droppées par WP-CLI */
html body .elementor .elementor-element.elementor-element-sec10left,
html body .elementor .elementor-element.elementor-element-sec10right {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

/* H1 hero : Playfair Display + taille Figma 60px */
html body .elementor .bc-hero-title .elementor-heading-title {
  font-family: 'Playfair Display', 'Times New Roman', Georgia, serif !important;
  font-weight: 700 !important;
  font-size: 60px !important;
  line-height: 1.1 !important;
  letter-spacing: -1px !important;
  color: #1D2513 !important;
}
html body .elementor .bc-hero-title .elementor-heading-title em {
  color: #8C9A5B !important;
}
@media (max-width: 1024px) {
  html body .elementor .bc-hero-title .elementor-heading-title {
    font-size: 46px !important;
  }
}
@media (max-width: 767px) {
  html body .elementor .bc-hero-title .elementor-heading-title {
    font-size: 36px !important;
  }
}

/* Description hero : max-width pour que le texte ne soit pas trop large */
html body .elementor .bc-hero-desc,
html body .elementor .bc-hero-desc .elementor-widget-container {
  max-width: 520px;
}

/* Pill : cercle cream derrière le leaf SVG + pill container cibé par ID */
html body .elementor .elementor-element.elementor-element-sec10pill {
  width: fit-content !important;
  max-width: 100% !important;
  align-self: flex-start !important;
  padding: 8px 18px 8px 10px !important;
}
html body .elementor .bc-hero-pill-icon .elementor-widget-container {
  width: 22px !important;
  height: 22px !important;
  border-radius: 50% !important;
  background: #EDF0E0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex-shrink: 0 !important;
}
html body .elementor .bc-hero-pill-icon img {
  width: 13px !important;
  height: 13px !important;
  display: block !important;
}
html body .elementor .bc-hero-pill-text .elementor-heading-title {
  margin: 0 !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 13px !important;
  color: #3D4930 !important;
  line-height: 1.4 !important;
  white-space: nowrap !important;
}

/* Stats grid — 4 col desktop, 2 col tablet/mobile — container ciblé par ID */
html body .elementor .elementor-element.elementor-element-sec10stats {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  gap: 20px !important;
}
html body .elementor .elementor-element.elementor-element-sec10stat1,
html body .elementor .elementor-element.elementor-element-sec10stat2,
html body .elementor .elementor-element.elementor-element-sec10stat3,
html body .elementor .elementor-element.elementor-element-sec10stat4 {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  gap: 6px !important;
  width: auto !important;
  padding: 4px 20px 4px 0 !important;
  position: relative !important;
}
/* Barres verticales séparatrices entre stats (comme Figma) */
html body .elementor .elementor-element.elementor-element-sec10stat1::after,
html body .elementor .elementor-element.elementor-element-sec10stat2::after,
html body .elementor .elementor-element.elementor-element-sec10stat3::after {
  content: '' !important;
  position: absolute !important;
  right: 0 !important;
  top: 10% !important;
  bottom: 10% !important;
  width: 1px !important;
  background: #CFD2BE !important;
  display: block !important;
}
html body .elementor .elementor-element.elementor-element-sec10stat4 {
  padding-right: 0 !important;
}
html body .elementor .bc-hero-stat-icon img {
  width: 22px !important;
  height: 22px !important;
  display: block !important;
  object-fit: contain !important;
}
html body .elementor .bc-hero-stat-num .elementor-heading-title {
  margin: 0 !important;
  font-family: 'Outfit', sans-serif !important;
  font-weight: 700 !important;
  font-size: 30px !important;
  line-height: 1 !important;
  color: #1D2513 !important;
}
html body .elementor .bc-hero-stat-label .elementor-heading-title {
  margin: 0 !important;
  font-family: 'Inter', sans-serif !important;
  font-weight: 400 !important;
  font-size: 13px !important;
  line-height: 1.35 !important;
  color: #6B6F5A !important;
}
@media (max-width: 1024px) {
  html body .elementor .elementor-element.elementor-element-sec10stats {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 18px !important;
  }
}

/* CTAs container aligné gauche, row — ciblé par ID */
html body .elementor .elementor-element.elementor-element-sec10ctas {
  flex-wrap: wrap !important;
  justify-content: flex-start !important;
  padding: 4px 0 0 0 !important;
}

/* Boutons hero : arrondis + styles Figma */
html body .elementor .bc-hero-btn .elementor-button {
  border-radius: 100px !important;
  padding: 16px 32px !important;
  font-family: 'Outfit', sans-serif !important;
  font-weight: 600 !important;
  font-size: 15px !important;
  transition: all .25s ease !important;
}
html body .elementor .bc-hero-btn-primary .elementor-button {
  background: #8C9A5B !important;
  color: #FFFFFF !important;
  border: 1px solid #8C9A5B !important;
}
html body .elementor .bc-hero-btn-ghost .elementor-button {
  background: transparent !important;
  color: #8C9A5B !important;
  border: 1.5px solid #8C9A5B !important;
}

/* Image hero : bord droit */
html body .elementor .bc-hero-image img {
  max-width: 100% !important;
  width: auto !important;
  height: auto !important;
  display: block !important;
  margin-left: auto !important;
}

/* Responsive : 1 col sur mobile */
@media (max-width: 767px) {
  html body .elementor .elementor-element.elementor-element-sec10inner {
    flex-direction: column !important;
  }
  html body .elementor .elementor-element.elementor-element-sec10left,
  html body .elementor .elementor-element.elementor-element-sec10right {
    width: 100% !important;
  }
  html body .elementor .bc-hero-image img {
    margin: 0 auto !important;
  }
}

/* Purge rules bc-hero-v2-* devenues obsoletes (HTML widget supprimé) */
/* Les rules restent dans LOT 3C mais ne matchent plus aucun élément - pas d'impact. */

/* ==== END LOT 6N2 ==== */

/* ==== LOT 6O2 — Kicker SVG (Vector-27 remplace le //) ==== */

/* Nouveau heading stripped (bc-kicker-svg) : pseudo ::before avec SVG */
html body .elementor .bc-kicker-svg .elementor-heading-title {
  display: inline-flex !important;
  align-items: center !important;
  gap: 10px !important;
}
html body .elementor .bc-kicker-svg .elementor-heading-title::before {
  content: '' !important;
  display: inline-block !important;
  width: 16px !important;
  height: 12px !important;
  background: url('/elementor-templates/assets/icons/icon-kicker-slashes.svg') no-repeat center / contain !important;
  flex-shrink: 0 !important;
}

/* Legacy .bc-kicker / variants : remplace le ::before textuel `//` par le SVG
   (sans toucher aux widgets, uniquement overrides CSS). */
html body .elementor .bc-kicker::before,
html body .elementor .bc-fc-kicker::before,
html body .elementor .bc-np-kicker::before,
html body .elementor .bc-cs-kicker::before,
html body .elementor .bc-ex-kicker::before,
html body .elementor .bc-pq-kicker::before,
html body .elementor .bc-cf-kicker::before,
html body .elementor .bc-real-head-title .bc-kicker::before {
  content: '' !important;
  display: inline-block !important;
  width: 16px !important;
  height: 12px !important;
  background: url('/elementor-templates/assets/icons/icon-kicker-slashes.svg') no-repeat center / contain !important;
  color: transparent !important;
  font-size: 0 !important;
  letter-spacing: 0 !important;
  margin-right: 4px !important;
  vertical-align: middle !important;
  flex-shrink: 0 !important;
}

/* ==== END LOT 6O2 ==== */

/* ==== LOT 6P — sec30000 Figma fidelity (divider + colors + icons) ==== */
html body .elementor .elementor-element-sec30badge {
  position: relative !important;
}
html body .elementor .elementor-element-sec30badge::before {
  content: '' !important;
  position: absolute !important;
  left: 50% !important;
  top: 80px !important;
  bottom: 80px !important;
  width: 1px !important;
  height: auto !important;
  background: #C4C8B6 !important;
  background-image: none !important;
  transform: translateX(-50%) !important;
  z-index: 1 !important;
}

/* Kicker // COMPARAISON : forcer le centrage */
html body .elementor .elementor-element-sec30kick,
html body .elementor .elementor-element-sec30kick > .elementor-widget-container {
  text-align: center !important;
  display: block !important;
  width: 100% !important;
}
html body .elementor .elementor-element-sec30kick .elementor-heading-title {
  display: inline-flex !important;
  justify-content: center !important;
  align-items: center !important;
  gap: 10px !important;
  margin: 0 auto;
  text-align: center !important;
}

/* Price text color + taille Figma */
html body .elementor .elementor-element-sec30pamt .elementor-heading-title,
html body .elementor .elementor-element-sec30pcur .elementor-heading-title {
  color: #A52E20 !important;
}
html body .elementor .elementor-element-sec30samt .elementor-heading-title,
html body .elementor .elementor-element-sec30scur .elementor-heading-title {
  color: #58693A !important;
}
/* Prix plus grands (Figma ~64px) */
html body .elementor .elementor-element-sec30pamt .elementor-heading-title,
html body .elementor .elementor-element-sec30samt .elementor-heading-title {
  font-size: 64px !important;
  line-height: 1 !important;
  letter-spacing: -0.5px !important;
}
/* CHF labels : 14px bold */
html body .elementor .elementor-element-sec30pcur .elementor-heading-title,
html body .elementor .elementor-element-sec30scur .elementor-heading-title {
  font-size: 14px !important;
  font-weight: 700 !important;
  letter-spacing: 1px !important;
}
/* Spec labels : 12px Inter 400 (Figma) */
html body .elementor .elementor-element-sec30000 [class*="psp"][class*="l"] .elementor-heading-title,
html body .elementor .elementor-element-sec30000 [class*="ssp"][class*="l"] .elementor-heading-title {
  font-size: 12px !important;
  font-weight: 400 !important;
  color: #6B6F5A !important;
}
/* Spec values : 16px Inter 600 (Figma) */
html body .elementor .elementor-element-sec30000 [class*="psp"][class*="v"] .elementor-heading-title,
html body .elementor .elementor-element-sec30000 [class*="ssp"][class*="v"] .elementor-heading-title {
  font-size: 16px !important;
  font-weight: 600 !important;
  line-height: 1.35 !important;
}
/* Badge -70% : bold (Figma) */
html body .elementor .bc-cmp-badge,
html body .elementor .bc-cmp-badge .elementor-heading-title {
  font-size: 15px !important;
  font-weight: 700 !important;
  line-height: 1 !important;
}

/* Icons Figma */
html body .elementor .elementor-element-sec30000 .elementor-widget-icon .elementor-icon svg {
  display: none !important;
}
html body .elementor .elementor-element-sec30pico .elementor-icon {
  background-color: #FFFFFF !important;
  background-image: url('/elementor-templates/assets/icons/icon-paint-brush.svg') !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  background-size: 18px 18px !important;
  border-radius: 50% !important;
  width: 40px !important;
  height: 40px !important;
}
html body .elementor .elementor-element-sec30sico .elementor-icon {
  background-color: #FFFFFF !important;
  background-image: url('/elementor-templates/assets/icons/icon-drop.svg') !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  background-size: 14px 18px !important;
  border-radius: 50% !important;
  width: 40px !important;
  height: 40px !important;
}
html body .elementor .elementor-element-sec30psp1i .elementor-icon,
html body .elementor .elementor-element-sec30psp2i .elementor-icon,
html body .elementor .elementor-element-sec30psp3i .elementor-icon,
html body .elementor .elementor-element-sec30psp4i .elementor-icon,
html body .elementor .elementor-element-sec30psp5i .elementor-icon,
html body .elementor .elementor-element-sec30psp6i .elementor-icon {
  background-color: #F3D8D3 !important;
  background-image: url('/elementor-templates/assets/icons/icon-x-red.svg') !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  background-size: 16px 16px !important;
  border-radius: 50% !important;
  width: 28px !important;
  height: 28px !important;
}
html body .elementor .elementor-element-sec30ssp1i .elementor-icon,
html body .elementor .elementor-element-sec30ssp2i .elementor-icon,
html body .elementor .elementor-element-sec30ssp3i .elementor-icon,
html body .elementor .elementor-element-sec30ssp4i .elementor-icon,
html body .elementor .elementor-element-sec30ssp5i .elementor-icon,
html body .elementor .elementor-element-sec30ssp6i .elementor-icon {
  background-color: #DDE2C8 !important;
  background-image: url('/elementor-templates/assets/icons/icon-check-green.svg') !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  background-size: 16px 16px !important;
  border-radius: 50% !important;
  width: 28px !important;
  height: 28px !important;
}
/* ==== END LOT 6P ==== */

/* Labels specs sec30000 — retirer margin-bottom du <p> */
html body .elementor [class*='sec30psp'][class*='l'] p,
html body .elementor [class*='sec30ssp'][class*='l'] p {
  margin: 0 !important;
}

/* ==== LOT 6R — sec42000 about-2 image+text ==== */
/* Grid : 2 cols desktop, 1 col mobile */
html body .elementor .elementor-element-sec42grid {
  display: flex !important;
}
html body .elementor .elementor-element-sec42left,
html body .elementor .elementor-element-sec42right {
  flex: 1 1 0 !important;
  min-width: 0 !important;
}
@media (max-width: 900px) {
  html body .elementor .elementor-element-sec42grid {
    flex-direction: column !important;
  }
  html body .elementor .elementor-element-sec42left,
  html body .elementor .elementor-element-sec42right {
    flex: 0 0 100% !important;
    width: 100% !important;
  }
}
/* Left : single composite image */
html body .elementor .bc-ab-img img {
  width: 100% !important;
  height: auto !important;
  object-fit: cover !important;
  border-radius: 12px !important;
}
/* CTAs : auto width, cote a cote */
html body .elementor .elementor-element-sec42ctas > .elementor-element {
  flex: 0 0 auto !important;
  width: auto !important;
}
/* Desc p / sign p reset margins */
html body .elementor .bc-ab-desc p {
  margin: 0 0 12px !important;
}
html body .elementor .bc-ab-sign p {
  margin: 12px 0 8px !important;
}
/* ==== END LOT 6R ==== */

/* ==== LOT 6S — sec55 carousel Swiper ==== */
html body .elementor .elementor-element-sec55grid.bc-rc-swiper {
  display: block !important;
  position: relative !important;
  padding: 0 60px 50px !important;
  overflow: hidden !important;
}
html body .elementor .elementor-element-sec55grid.bc-rc-swiper .swiper-wrapper {
  display: flex !important;
  align-items: stretch !important;
}
html body .elementor .elementor-element-sec55grid.bc-rc-swiper .swiper-slide {
  flex: 0 0 auto !important;
  height: auto !important;
  max-width: none !important;
}
/* Arrows : visible (gold style) */
html body .elementor .bc-rc-swiper .swiper-button-prev,
html body .elementor .bc-rc-swiper .swiper-button-next {
  display: flex !important;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: #FFFFFF;
  border: 1px solid rgba(26,32,18,0.18);
  color: #1A2012;
  box-shadow: 0 4px 12px rgba(0,0,0,0.08);
  z-index: 10;
  transition: background 200ms ease, color 200ms ease;
}
html body .elementor .bc-rc-swiper .swiper-button-prev:hover,
html body .elementor .bc-rc-swiper .swiper-button-next:hover {
  background: #C8AB3B;
  color: #FFFFFF;
  border-color: #C8AB3B;
}
html body .elementor .bc-rc-swiper .swiper-button-prev::after,
html body .elementor .bc-rc-swiper .swiper-button-next::after {
  font-size: 16px !important;
  font-weight: 700;
}
/* Pagination gold */
html body .elementor .bc-rc-swiper .swiper-pagination {
  position: absolute !important;
  bottom: 0 !important;
  left: 0 !important;
  right: 0 !important;
  text-align: center !important;
}
html body .elementor .bc-rc-swiper .swiper-pagination-bullet {
  background: #D9D9D2 !important;
  opacity: 1 !important;
  width: 10px !important;
  height: 10px !important;
  margin: 0 4px !important;
  border-radius: 50% !important;
}
html body .elementor .bc-rc-swiper .swiper-pagination-bullet-active {
  background: #C8AB3B !important;
}
/* ==== END LOT 6S ==== */

/* ==== LOT 6S3 — sec55 image flush + button compact ==== */
/* Card : padding 0 pour image flush, mais NO margin override (Swiper gere le gap entre slides) */
html body .elementor .elementor-element.bc-rc-card,
html body .elementor:not(.elementor-142):not(.elementor-170):not(.elementor-176) .elementor-element-sec55c1,
html body .elementor:not(.elementor-142):not(.elementor-170):not(.elementor-176) .elementor-element-sec55c2,
html body .elementor:not(.elementor-142):not(.elementor-170):not(.elementor-176) .elementor-element-sec55c3,
html body .elementor:not(.elementor-142):not(.elementor-170):not(.elementor-176) .elementor-element-sec55c4,
html body .elementor:not(.elementor-142):not(.elementor-170):not(.elementor-176) .elementor-element-sec55c5,
html body .elementor:not(.elementor-142):not(.elementor-170):not(.elementor-176) .elementor-element-sec55c6 {
  padding: 0 !important;
  overflow: hidden !important;
  border-radius: 16px !important;
  background: #FFFFFF !important;
}
/* Image wrap : no padding */
html body .elementor .bc-rc-imgwrap,
html body .elementor:not(.elementor-142):not(.elementor-170):not(.elementor-176) .elementor-element-sec55c1imgs,
html body .elementor:not(.elementor-142):not(.elementor-170):not(.elementor-176) .elementor-element-sec55c2imgs,
html body .elementor:not(.elementor-142):not(.elementor-170):not(.elementor-176) .elementor-element-sec55c3imgs,
html body .elementor:not(.elementor-142):not(.elementor-170):not(.elementor-176) .elementor-element-sec55c4imgs,
html body .elementor:not(.elementor-142):not(.elementor-170):not(.elementor-176) .elementor-element-sec55c5imgs,
html body .elementor:not(.elementor-142):not(.elementor-170):not(.elementor-176) .elementor-element-sec55c6imgs {
  padding: 0 !important;
  margin: 0 !important;
  width: 100% !important;
  --padding-top: 0 !important;
  --padding-right: 0 !important;
  --padding-bottom: 0 !important;
  --padding-left: 0 !important;
}
html body .elementor .bc-rc-imgwrap .elementor-widget-image,
html body .elementor .bc-rc-imgwrap .elementor-widget-image > .elementor-widget-container {
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}
html body .elementor .bc-rc-imgwrap img {
  width: 100% !important;
  height: auto !important;
  display: block !important;
  object-fit: cover !important;
  aspect-ratio: 16/11 !important;
  margin: 0 !important;
  padding: 0 !important;
  border-radius: 0 !important;
  vertical-align: top !important;
}
@media (min-width: 768px) {
html body .elementor:not(.elementor-142):not(.elementor-170):not(.elementor-176) .elementor-element-sec55c1body,
html body .elementor:not(.elementor-142):not(.elementor-170):not(.elementor-176) .elementor-element-sec55c2body,
html body .elementor:not(.elementor-142):not(.elementor-170):not(.elementor-176) .elementor-element-sec55c3body,
html body .elementor:not(.elementor-142):not(.elementor-170):not(.elementor-176) .elementor-element-sec55c4body,
html body .elementor:not(.elementor-142):not(.elementor-170):not(.elementor-176) .elementor-element-sec55c5body,
html body .elementor:not(.elementor-142):not(.elementor-170):not(.elementor-176) .elementor-element-sec55c6body {
  padding: 20px !important;
  margin: 0 !important;
}
}
/* CTA header button identique header menu hdr00005 */
html body .elementor .elementor-element-sec55cta .elementor-button {
  padding: 12px 22px !important;
  font-size: 14px !important;
  font-family: 'Inter', sans-serif !important;
  font-weight: 500 !important;
  background-color: #8C9A5B !important;
  color: #FFFFFF !important;
  border-radius: 100px !important;
  white-space: nowrap !important;
  display: inline-flex !important;
  align-items: center !important;
  line-height: 1 !important;
}
html body .elementor .elementor-element-sec55cta .elementor-button-text {
  white-space: nowrap !important;
}
html body .elementor .elementor-element-sec55cta {
  flex: 0 0 auto !important;
  width: auto !important;
}
html body .elementor .elementor-element-sec55cta .elementor-button .elementor-button-icon {
  margin-left: 8px !important;
}
html body .elementor .elementor-element-sec55cta .elementor-button i {
  font-size: 12px !important;
  color: #FFFFFF !important;
}
/* ==== END LOT 6S3 ==== */

/* ==== LOT 6T — sec57 slider avant/après ==== */
/* Text head spacing (widgets natifs) */
/* Head spacing: kicker 8 -> title 16 -> subtitle 48 -> slider */
html body .elementor .elementor-element-sec57inner {
  gap: 0 !important;
  --widgets-spacing: 0 0 !important;
  --widgets-spacing-row: 0 !important;
  --widgets-spacing-column: 0 !important;
  --kit-widget-spacing: 0;
}

html body .elementor .elementor-element-sec57kick .elementor-heading-title {
  margin: 0;
  line-height: 1.2 !important;
}

html body .elementor .elementor-element-sec57title .elementor-heading-title {
  margin: 0;
  line-height: 1.15 !important;
}

html body .elementor .elementor-element-sec57sub p {
  margin: 0;
}
/* Slider container — aspect 21/9 (moins haut) */
html body .elementor .bc-sld {
  position: relative !important;
  width: 100% !important;
  aspect-ratio: 21/9 !important;
  border-radius: 20px !important;
  overflow: hidden !important;
  box-shadow: 0 20px 50px rgba(14,18,9,0.15) !important;
  background: #E8EADF !important;
  user-select: none !important;
  touch-action: none !important;
}
html body .elementor .bc-sld-img {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  display: block !important;
  pointer-events: none !important;
}

/* Handle : left SANS !important (JS met a jour style.left dynamiquement) */
html body .elementor .bc-sld-handle {
  position: absolute !important;
  top: 0 !important;
  bottom: 0 !important;
  left: 50%;
  width: 4px !important;
  background: #FFFFFF !important;
  transform: translateX(-50%) !important;
  pointer-events: none !important;
  box-shadow: 0 0 12px rgba(0,0,0,0.3) !important;
}
html body .elementor .bc-sld-thumb {
  position: absolute !important;
  top: 50% !important;
  left: 50%;
  width: 56px !important;
  height: 56px !important;
  border-radius: 50% !important;
  background: #8C9A5B !important;
  border: 3px solid #FFFFFF !important;
  transform: translate(-50%, -50%) !important;
  cursor: ew-resize !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  color: #FFFFFF !important;
  box-shadow: 0 4px 14px rgba(0,0,0,0.2) !important;
  z-index: 3 !important;
  touch-action: none !important;
}
html body .elementor .bc-sld-label {
  position: absolute !important;
  top: 20px !important;
  padding: 8px 16px !important;
  border-radius: 100px !important;
  font-family: 'Inter', sans-serif !important;
  font-weight: 700 !important;
  font-size: 12px !important;
  letter-spacing: 2px !important;
  text-transform: uppercase !important;
  z-index: 2 !important;
  backdrop-filter: blur(8px) !important;
}
html body .elementor .bc-sld-label-before { left: 16px !important; right: auto !important; background: rgba(198,90,76,0.95) !important; color: #FFFFFF !important; }
html body .elementor .bc-sld-label-after { right: 16px !important; left: auto !important; background: rgba(140,154,91,0.95) !important; color: #FFFFFF !important; }
@media (max-width: 767px) {
  html body .elementor .bc-sld { aspect-ratio: 4/3 !important; }
  html body .elementor .bc-sld-thumb { width: 44px !important; height: 44px !important; }
  html body .elementor .bc-sld-label { font-size: 10px !important; padding: 6px 12px !important; top: 12px !important; }
  html body .elementor .bc-sld-label-before { left: 16px !important; right: auto !important; background: rgba(198,90,76,0.95) !important; color: #FFFFFF !important; }
  html body .elementor .bc-sld-label-after { right: 16px !important; left: auto !important; background: rgba(140,154,91,0.95) !important; color: #FFFFFF !important; }
}
/* ==== END LOT 6T ==== */



/* ==== LOT 6X — sec80 head spacing (match sec57/sec60) ==== */
html body .elementor .elementor-element-sec80inner {
  --widgets-spacing: 0 0 !important;
  --widgets-spacing-row: 0 !important;
  --kit-widget-spacing: 0;
}

html body .elementor .elementor-element-sec80kick .elementor-heading-title {
  margin: 0;
  line-height: 1.2 !important;
}

html body .elementor .elementor-element-sec80title .elementor-heading-title {
  margin: 0;
  line-height: 1.15 !important;
}

html body .elementor .elementor-element-sec80sub p {
  margin: 0;
}
/* ==== END LOT 6X ==== */

/* ==== LOT 6Y — sec80 processus carousel ==== */
/* Override grid : Swiper wrapper prend le relais */
html body .elementor .elementor-element-sec80grid.bc-pr-swiper {
  display: block !important;
  position: relative !important;
  padding: 0 !important;
  overflow: hidden !important;
  max-width: 1200px !important;
  margin: 0 auto !important;
}
html body .elementor .elementor-element-sec80grid.bc-pr-swiper .swiper-wrapper {
  display: flex !important;
}
html body .elementor .elementor-element-sec80grid.bc-pr-swiper .swiper-slide {
  flex: 0 0 100% !important;
  max-width: 100% !important;
  display: flex !important;
  flex-direction: row !important;
  gap: 10px !important;
  align-items: stretch !important;
  padding: 40px 60px !important;
  background: #E8EADF !important;
  border-radius: 20px !important;
  box-sizing: border-box !important;
}
@media (max-width: 900px) {
  html body .elementor .elementor-element-sec80grid.bc-pr-swiper .swiper-slide {
    flex-direction: column !important;
  }
}
/* Card : reset les rules grid 2x3 précédentes */
html body .elementor .bc-pr-step-card,
html body .elementor .elementor-element-sec80s1,
html body .elementor .elementor-element-sec80s2,
html body .elementor .elementor-element-sec80s3,
html body .elementor .elementor-element-sec80s4,
html body .elementor .elementor-element-sec80s5,
html body .elementor .elementor-element-sec80s6 {
  flex: 0 0 100% !important;
  max-width: 100% !important;
  width: 100% !important;
}
/* Card content : 2 cols layout */
html body .elementor .elementor-element[id^="sec80s"][id$="left"],
html body .elementor .bc-pr-step-left {
  flex: 0 0 40% !important;
  max-width: 40% !important;
}
html body .elementor .elementor-element[id^="sec80s"][id$="right"],
html body .elementor .bc-pr-step-right {
  flex: 0 0 60% !important;
  max-width: 60% !important;
  display: flex !important;
  align-items: center !important;
}
@media (max-width: 900px) {
  html body .elementor .bc-pr-step-left,
  html body .elementor .bc-pr-step-right {
    flex: 0 0 100% !important;
    max-width: 100% !important;
  }
}
/* Right col image : full, rounded */
html body .elementor .bc-pr-img {
  width: 100% !important;
}
html body .elementor .bc-pr-img img {
  width: 100% !important;
  height: 100% !important;
  max-height: 420px !important;
  object-fit: cover !important;
  border-radius: 16px !important;
  display: block !important;
}
/* Number titles "0X. Title" : "0X." en vert, reste en noir */
html body .elementor .bc-pr-num-title .elementor-heading-title {
  font-family: 'Playfair Display', Georgia, serif !important;
  font-weight: 700 !important;
  font-size: 32px !important;
  line-height: 1.2 !important;
  color: #5B6E3A !important;
}
html body .elementor .bc-pr-num-title .elementor-heading-title span {
  color: #1D2513 !important;
}
/* Bullet pills : sage green outline */
html body .elementor .bc-pr-step-card .elementor-icon-box-wrapper,
html body .elementor .bc-pr-step-left .elementor-icon-box-wrapper {
  display: inline-flex !important;
  align-items: center !important;
}
/* Custom nav bar under card */
html body .elementor .bc-pr-nav {
  display: flex !important;
  align-items: center !important;
  gap: 16px !important;
  margin-top: 24px !important;
  padding-left: 8px !important;
}
html body .elementor .bc-pr-prev,
html body .elementor .bc-pr-next {
  width: 36px !important;
  height: 36px !important;
  border-radius: 50% !important;
  border: 1.5px solid #8C9A5B !important;
  background: transparent !important;
  color: #8C9A5B !important;
  cursor: pointer !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 0 !important;
  transition: all 0.2s !important;
}
html body .elementor .bc-pr-prev:hover,
html body .elementor .bc-pr-next:hover {
  background: #8C9A5B !important;
  color: #FFFFFF !important;
}
html body .elementor .bc-pr-counter {
  font-family: 'Inter', sans-serif !important;
  font-weight: 500 !important;
  font-size: 14px !important;
  color: #3D4930 !important;
  letter-spacing: 1px !important;
  min-width: 50px !important;
  text-align: center !important;
}
/* ==== END LOT 6Y ==== */
/* ==== LOT 7A2 — sec95000 polish ==== */
/* Card border-radius plus arrondi (28→32px) + fond gauche clair */
html body .elementor .bc-partner-card {
  border-radius: 32px !important;
  overflow: hidden !important;
}
html body .elementor .bc-partner-left {
  background-color: #E8E8DF !important;
}
/* Proportion colonne logo : légèrement plus large */
@media (min-width: 768px) {
  html body .elementor .elementor-element-sec95col_left {
    flex: 0 0 38% !important;
    max-width: 38% !important;
  }
  html body .elementor .elementor-element-sec95col_right {
    flex: 0 0 62% !important;
    max-width: 62% !important;
  }
}
/* ==== END LOT 7A2 ==== */

/* ==== LOT 7C2 — sec80000 bullets outline ==== */
/* Bullets pills processus : OUTLINE vert (Figma) — override lot 6J2 blanc rempli */
html body .elementor .bc-pr-bullet {
  background: transparent !important;
  border: 1.5px solid #8C9A5B !important;
  border-radius: 100px !important;
  padding: 7px 14px !important;
  width: auto !important;
  min-width: auto !important;
  flex: 0 0 auto !important;
}
html body .elementor .bc-pr-bullet .elementor-icon-box-wrapper {
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  gap: 6px !important;
}
html body .elementor .bc-pr-bullet .elementor-icon-box-icon {
  margin: 0 !important;
}
html body .elementor .bc-pr-bullet .elementor-icon {
  font-size: 10px !important;
  width: auto !important;
  height: auto !important;
  color: #8C9A5B !important;
}
html body .elementor .bc-pr-bullet .elementor-icon-box-title,
html body .elementor .bc-pr-bullet .elementor-icon-box-title .elementor-heading-title {
  font-family: 'Inter', sans-serif !important;
  font-weight: 500 !important;
  font-size: 13px !important;
  color: #5B6E3A !important;
  line-height: 1 !important;
  margin: 0 !important;
}
/* ==== END LOT 7C2 ==== */
/* ==== LOT 7C3 — sec80000 btn icon diagonal ==== */
/* Boutons "Devis Gratuit" des cards processus : icône arrow-right rotée -45°
   pour effet diagonal (Figma up-right), sans casser le FA5 disponible */
html body .elementor .bc-pr-step-card .bc-btn-primary .elementor-button-icon .fa-arrow-right,
html body .elementor .bc-pr-step-card .bc-btn-primary .elementor-button-icon i {
  display: inline-block !important;
  transform: rotate(-45deg) !important;
}
/* ==== END LOT 7C3 ==== */

/* ==== LOT 8A2 — secA0000 contact refonte ==== */

/* === COLONNE GAUCHE : textes noirs sur fond vert olive === */

/* Kicker dark (sur fond vert) */
html body .elementor .bc-cf-kicker-dark .elementor-heading-title {
  color: #3D4930 !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  letter-spacing: 1.5px !important;
  text-transform: uppercase !important;
}
/* Kicker slashes prefix via ::before */
html body .elementor .bc-cf-kicker-dark .elementor-heading-title::before {
  content: '' !important; /* pas de prefix répété, texte inclut // */
}

/* H2 titre : tout noir, Playfair Display */
html body .elementor .bc-cf-title-dark .elementor-heading-title {
  color: #1D2513 !important;
  font-family: 'Playfair Display', serif !important;
  font-size: 38px !important;
  font-weight: 700 !important;
  line-height: 1.15 !important;
}
/* Pas d'em vert sur ce titre (fond vert, texte noir) */
html body .elementor .bc-cf-title-dark .elementor-heading-title em,
html body .elementor .bc-cf-title-dark .elementor-heading-title span {
  color: inherit !important;
  font-style: normal !important;
}

/* Description : texte noir */
html body .elementor .bc-cf-desc-dark p,
html body .elementor .bc-cf-desc-dark {
  color: #1D2513 !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 15px !important;
  line-height: 1.6 !important;
  opacity: 0.85;
}

/* === INFO ITEMS : icône blanche sur cercle semi-transparent blanc === */
html body .elementor .bc-cf-info-item .elementor-icon-box-wrapper {
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  gap: 12px !important;
  text-align: left !important;
}
html body .elementor .bc-cf-info-item .elementor-icon-box-icon {
  margin: 0 !important;
  flex-shrink: 0 !important;
}
html body .elementor .bc-cf-info-item .elementor-icon {
  width: 34px !important;
  height: 34px !important;
  border-radius: 50% !important;
  background: rgba(255,255,255,0.18) !important;
  color: #FFFFFF !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-size: 13px !important;
  padding: 0 !important;
}
html body .elementor .bc-cf-info-item .elementor-icon-box-content {
  display: flex;
  flex-direction: column;
}
html body .elementor .bc-cf-info-item .elementor-icon-box-title {
  display: none !important;
  margin: 0 !important;
}
html body .elementor .bc-cf-info-item .elementor-icon-box-description {
  margin: 0 !important;
  color: #1D2513 !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  line-height: 1.4 !important;
}
/* Links dans infos (tel, email) : noirs */
html body .elementor .bc-cf-info-item .elementor-icon-box-description a,
html body .elementor .bc-cf-info-item .elementor-icon-box-description a:link,
html body .elementor .bc-cf-info-item .elementor-icon-box-description a:visited {
  color: #1D2513 !important;
  text-decoration: none !important;
}
html body .elementor .bc-cf-info-item .elementor-icon-box-description a:hover {
  text-decoration: underline !important;
}

/* Info container : compact gap */
html body .elementor .elementor-element-secA0info {
  gap: 14px !important;
}

/* === SOCIAUX : icon sombre sur fond BLANC circulaire (inversion Figma) === */
html body .elementor .bc-cf-socials .elementor-social-icons-wrapper {
  gap: 8px !important;
}
html body .elementor .bc-cf-socials .elementor-social-icon {
  background: #FFFFFF !important;
  color: #1D2513 !important;
  border-radius: 50% !important;
  width: 36px !important;
  height: 36px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  transition: background 0.2s, color 0.2s !important;
}
html body .elementor .bc-cf-socials .elementor-social-icon i,
html body .elementor .bc-cf-socials .elementor-social-icon svg {
  color: #1D2513 !important;
  fill: #1D2513 !important;
}
html body .elementor .bc-cf-socials .elementor-social-icon:hover {
  background: #3D4930 !important;
  color: #FFFFFF !important;
}
html body .elementor .bc-cf-socials .elementor-social-icon:hover i,
html body .elementor .bc-cf-socials .elementor-social-icon:hover svg {
  color: #FFFFFF !important;
  fill: #FFFFFF !important;
}

/* === FORMULAIRE COLONNE DROITE === */

/* Inputs pill : border-radius 50px */
html body .elementor .bc-cf-form .elementor-field-textual:not(textarea) {
  border-radius: 50px !important;
  padding: 12px 20px !important;
  border: 1px solid #E5E7DB !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 15px !important;
  color: #1D2513 !important;
  background: #FFFFFF !important;
  height: auto !important;
}
html body .elementor .bc-cf-form .elementor-field-textual:not(textarea):focus {
  border-color: #8C9A5B !important;
  outline: none !important;
  box-shadow: 0 0 0 3px rgba(140,154,91,0.12) !important;
}

/* Textarea : border-radius 16px (pas pill) */
html body .elementor .bc-cf-form textarea.elementor-field-textual {
  border-radius: 16px !important;
  padding: 14px 20px !important;
  min-height: 130px !important;
  border: 1px solid #E5E7DB !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 15px !important;
  color: #1D2513 !important;
  background: #FFFFFF !important;
  resize: vertical !important;
}
html body .elementor .bc-cf-form textarea.elementor-field-textual:focus {
  border-color: #8C9A5B !important;
  outline: none !important;
  box-shadow: 0 0 0 3px rgba(140,154,91,0.12) !important;
}

/* Select natif (si conservé) : border-radius 50px */
html body .elementor .bc-cf-form .elementor-field-type-select .elementor-field {
  border-radius: 50px !important;
}

/* Champ upload (file) : dashed border, pleine largeur */
html body .elementor .bc-cf-form .elementor-field-type-upload .elementor-field,
html body .elementor .bc-cf-form input[type="file"] {
  border: 2px dashed #C8CDB8 !important;
  border-radius: 12px !important;
  background: #FAFAF7 !important;
  padding: 20px !important;
  text-align: center !important;
  color: #6B7A52 !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 14px !important;
  cursor: pointer !important;
  width: 100% !important;
}
html body .elementor .bc-cf-form .elementor-field-type-upload label.elementor-field-label {
  display: none !important; /* label vide caché */
}

/* Labels des champs : dark sur bg blanc */
html body .elementor .bc-cf-form label.elementor-field-label {
  color: #3D4930 !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  letter-spacing: 0.5px !important;
  text-transform: uppercase !important;
  margin-bottom: 6px !important;
}

/* === BOUTON SUBMIT : pill olive aligné droite avec flèche ↗ === */
html body .elementor .bc-cf-form .elementor-button-wrapper {
  display: flex !important;
  justify-content: flex-end !important;
  width: 100% !important;
}
html body .elementor .bc-cf-form button[type="submit"],
html body .elementor #bc-cf-submit {
  background: #8C9A5B !important;
  color: #FFFFFF !important;
  border: none !important;
  border-radius: 100px !important;
  padding: 14px 28px !important;
  font-family: 'Outfit', sans-serif !important;
  font-size: 15px !important;
  font-weight: 600 !important;
  cursor: pointer !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  transition: background 0.2s !important;
}
/* Flèche diagonale ↗ via pseudo-element */
html body .elementor .bc-cf-form button[type="submit"]::after,
html body .elementor #bc-cf-submit::after {
  content: '↗' !important;
  font-size: 16px !important;
  line-height: 1 !important;
}

/* Spacing entre champs du form */
html body .elementor .bc-cf-form .elementor-form-fields-wrapper {
  gap: 16px !important;
}

/* === RESPONSIF === */
@media (max-width: 1024px) {
  html body .elementor .bc-cf-title-dark .elementor-heading-title {
    font-size: 32px !important;
  }
}
@media (max-width: 767px) {
  html body .elementor .bc-cf-title-dark .elementor-heading-title {
    font-size: 28px !important;
  }
  html body .elementor .elementor-element-secA0left,
  html body .elementor .elementor-element-secA0right {
    width: 100% !important;
  }
  html body .elementor .elementor-element-secA0left {
    border-radius: 16px 16px 0 0 !important;
  }
  html body .elementor .elementor-element-secA0right {
    border-radius: 0 0 16px 16px !important;
  }
  html body .elementor .elementor-element-secA0grid {
    flex-direction: column !important;
    border-radius: 16px !important;
  }
}

/* ==== END LOT 8A2 ==== */

/* ==== LOT 8B — secA0000 polish ==== */

/* === COLONNE GAUCHE : layout avec socials en bas === */

/* Left col inner flex : space-between pour socials en bas */
html body .elementor .elementor-element-secA0left > .e-con-inner {
  display: flex !important;
  flex-direction: column !important;
  justify-content: space-between !important;
  height: 100% !important;
  min-height: 100% !important;
}

/* Groupe du haut (kicker + titre + desc + infos) : flex-col avec gap naturel */
html body .elementor .elementor-element-secA0kick,
html body .elementor .elementor-element-secA0title,
html body .elementor .elementor-element-secA0desc {
  flex-shrink: 0 !important;
}

/* Info container : lui donner flex-grow pour occuper l'espace si pas assez de contenu */
html body .elementor .elementor-element-secA0info {
  flex-shrink: 0 !important;
  margin-top: 0 !important;
}

/* Socials : tout en bas (grâce à space-between) */
html body .elementor .elementor-element-secA0soc {
  margin-top: auto !important;
  flex-shrink: 0 !important;
}

/* === KICKER : blanc pour meilleur contraste sur vert === */
html body .elementor .bc-cf-kicker-dark .elementor-heading-title {
  color: rgba(255,255,255,0.70) !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  letter-spacing: 1.5px !important;
  text-transform: uppercase !important;
}

/* === TITRE : blanc plutôt que noir pour meilleur contraste sur vert === */
html body .elementor .bc-cf-title-dark .elementor-heading-title {
  color: #FFFFFF !important;
  font-family: 'Playfair Display', serif !important;
  font-size: 38px !important;
  font-weight: 700 !important;
  line-height: 1.15 !important;
}
html body .elementor .bc-cf-title-dark .elementor-heading-title em,
html body .elementor .bc-cf-title-dark .elementor-heading-title span {
  color: inherit !important;
  font-style: normal !important;
}

/* === DESC : blanc semi-transparent === */
html body .elementor .bc-cf-desc-dark p,
html body .elementor .bc-cf-desc-dark {
  color: rgba(255,255,255,0.85) !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 15px !important;
  line-height: 1.6 !important;
  opacity: 1 !important;
}

/* === INFO ITEMS : desc texte blanc === */
html body .elementor .bc-cf-info-item .elementor-icon-box-description {
  color: rgba(255,255,255,0.9) !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  line-height: 1.4 !important;
}
html body .elementor .bc-cf-info-item .elementor-icon-box-description a,
html body .elementor .bc-cf-info-item .elementor-icon-box-description a:link,
html body .elementor .bc-cf-info-item .elementor-icon-box-description a:visited {
  color: rgba(255,255,255,0.9) !important;
  text-decoration: none !important;
}
html body .elementor .bc-cf-info-item .elementor-icon-box-description a:hover {
  color: #FFFFFF !important;
  text-decoration: underline !important;
}

/* === FORM : NOM label couleur sur fond blanc === */
html body .elementor .bc-cf-form label.elementor-field-label {
  color: #5B6E3A !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  letter-spacing: 0.5px !important;
  text-transform: uppercase !important;
  margin-bottom: 6px !important;
}

/* === INPUTS PILL hauteur min pour harmoniser === */
html body .elementor .bc-cf-form .elementor-field-textual:not(textarea) {
  height: 48px !important;
  min-height: 48px !important;
}

/* === FORM FIELDS gap harmonieux === */
html body .elementor .bc-cf-form .elementor-form-fields-wrapper {
  gap: 20px !important;
  row-gap: 20px !important;
}

/* === RESPONSIVE mobile === */
@media (max-width: 767px) {
  html body .elementor .bc-cf-title-dark .elementor-heading-title {
    font-size: 28px !important;
  }
  html body .elementor .elementor-element-secA0left > .e-con-inner {
    justify-content: flex-start !important;
    gap: 20px !important;
  }
  html body .elementor .elementor-element-secA0soc {
    margin-top: 24px !important;
  }
}

/* ==== END LOT 8B ==== */



/* ==== LOT 9C — sec80 full-width + unified bg ==== */
/* Parent inner : full-width 1440px */
.elementor-element-sec80inner {
  max-width: 1440px !important;
  width: 100% !important;
}

/* Wrap devient la grande card uniforme sage (1440px full-width) */
.elementor-element-sec80wrap,
.elementor-element.elementor-element-sec80wrap {
  max-width: 1440px !important;
  width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
  background-color: #E8EADF !important;
}

/* Slides individuelles : pas de bg (hérite du wrap) + PAS de padding.
   Spécificité haute pour battre la règle legacy LOT 6J qui force padding:40px
   via `html body .elementor .elementor-element-sec80grid.bc-pr-swiper .swiper-slide`. */
html body .elementor .elementor-element-sec80grid.bc-pr-swiper .swiper-slide,
html body .elementor-24 .elementor-element.elementor-element-sec80s1,
html body .elementor-24 .elementor-element.elementor-element-sec80s2,
html body .elementor-24 .elementor-element.elementor-element-sec80s3,
html body .elementor-24 .elementor-element.elementor-element-sec80s4,
html body .elementor-24 .elementor-element.elementor-element-sec80s5,
html body .elementor-24 .elementor-element.elementor-element-sec80s6 {
  background-color: transparent !important;
  background: transparent !important;
  padding: 0 !important;
  --padding-top: 0 !important;
  --padding-right: 0 !important;
  --padding-bottom: 0 !important;
  --padding-left: 0 !important;
  --padding-block-start: 0 !important;
  --padding-block-end: 0 !important;
  --padding-inline-start: 0 !important;
  --padding-inline-end: 0 !important;
}
.elementor-element-sec80s1 > .e-con-inner,
.elementor-element-sec80s2 > .e-con-inner,
.elementor-element-sec80s3 > .e-con-inner,
.elementor-element-sec80s4 > .e-con-inner,
.elementor-element-sec80s5 > .e-con-inner,
.elementor-element-sec80s6 > .e-con-inner {
  padding: 0 !important;
}

/* Padding wrap : vertical 56px, horizontal réduit à 40px (plus compact)
   Override CSS vars Elementor pour garantir l'application */
@media (min-width: 768px) {
.elementor-element-sec80wrap {
  --padding-top: 56px !important;
  --padding-bottom: 56px !important;
  --padding-left: 40px !important;
  --padding-right: 40px !important;
  --padding-block-start: 56px !important;
  --padding-block-end: 56px !important;
  --padding-inline-start: 40px !important;
  --padding-inline-end: 40px !important;
  padding: 56px 40px !important;
}
}
.elementor-element-sec80wrap > .e-con-inner {
  padding: 0 !important;
}

/* Colonne gauche : retirer aussi le petit padding (10px détecté) */
.elementor-element-sec80s1left,
.elementor-element-sec80s2left,
.elementor-element-sec80s3left,
.elementor-element-sec80s4left,
.elementor-element-sec80s5left,
.elementor-element-sec80s6left {
  --padding-top: 0 !important;
  --padding-right: 0 !important;
  --padding-bottom: 0 !important;
  --padding-left: 0 !important;
  --padding-block-start: 0 !important;
  --padding-block-end: 0 !important;
  --padding-inline-start: 0 !important;
  --padding-inline-end: 0 !important;
}

/* Colonne gauche : pas de height fixe (conflit avec align-self:stretch) */
.elementor-element-sec80s1left,
.elementor-element-sec80s2left,
.elementor-element-sec80s3left,
.elementor-element-sec80s4left,
.elementor-element-sec80s5left,
.elementor-element-sec80s6left {
  align-self: stretch !important;
  min-height: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: flex-start !important;
}

/* CTA Devis Gratuit poussé en bas de la colonne */
.elementor-element-sec80s1btn,
.elementor-element-sec80s2btn,
.elementor-element-sec80s3btn,
.elementor-element-sec80s4btn,
.elementor-element-sec80s5btn,
.elementor-element-sec80s6btn {
  margin-top: auto !important;
}

/* 3 bullets en colonne (une par ligne) au lieu de row */
.elementor-element-sec80s1bs,
.elementor-element-sec80s2bs,
.elementor-element-sec80s3bs,
.elementor-element-sec80s4bs,
.elementor-element-sec80s5bs,
.elementor-element-sec80s6bs {
  flex-direction: column !important;
  align-items: flex-start !important;
  gap: 10px !important;
}
.elementor-element-sec80s1bs > .e-con-inner,
.elementor-element-sec80s2bs > .e-con-inner,
.elementor-element-sec80s3bs > .e-con-inner,
.elementor-element-sec80s4bs > .e-con-inner,
.elementor-element-sec80s5bs > .e-con-inner,
.elementor-element-sec80s6bs > .e-con-inner {
  flex-direction: column !important;
  align-items: flex-start !important;
  gap: 10px !important;
  width: 100% !important;
}
/* Nav carousel sec80 (flèches + 01/06) centrée */
.bc-pr-nav {
  justify-content: center !important;
  align-items: center !important;
  width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* Chaque pill en bloc aligné à gauche */
.elementor-element-sec80s1b1, .elementor-element-sec80s1b2, .elementor-element-sec80s1b3,
.elementor-element-sec80s2b1, .elementor-element-sec80s2b2, .elementor-element-sec80s2b3,
.elementor-element-sec80s3b1, .elementor-element-sec80s3b2, .elementor-element-sec80s3b3,
.elementor-element-sec80s4b1, .elementor-element-sec80s4b2, .elementor-element-sec80s4b3,
.elementor-element-sec80s5b1, .elementor-element-sec80s5b2, .elementor-element-sec80s5b3,
.elementor-element-sec80s6b1, .elementor-element-sec80s6b2, .elementor-element-sec80s6b3 {
  width: auto !important;
  flex: 0 0 auto !important;
}
/* ==== END LOT 9C ==== */

/* ==== LOT 9E — sec40/sec42 full-width 1440 ==== */
/* Force sec40 Redonner vie, sec42 Philippe M., secA0 Contact, sec95 Besoin nettoyage
   au meme full-width que sec80 (1440px).
   sec95000 cible la section elle-meme (son width est directement controle sans wrap intermediaire). */
html body .elementor .elementor-element-sec40grid,
html body .elementor .elementor-element-sec42grid,
html body .elementor .elementor-element-secA0grid,
html body .elementor .elementor-element-sec95000 > .e-con-inner {
  max-width: 1440px !important;
  width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
}
/* ==== END LOT 9E ==== */

/* ==== LOT 9F — secA0 form 2-col fix ==== */
/* Compense le gap 20px du wrapper pour que elementor-col-50 tienne a 2 par ligne */
html body .elementor .bc-cf-form .elementor-form-fields-wrapper {
  display: flex !important;
  flex-wrap: wrap !important;
}
html body .elementor .bc-cf-form .elementor-form-fields-wrapper > .elementor-col-50 {
  flex: 0 0 calc(50% - 10px) !important;
  max-width: calc(50% - 10px) !important;
}
html body .elementor .bc-cf-form .elementor-form-fields-wrapper > .elementor-col-100 {
  flex: 0 0 100% !important;
  max-width: 100% !important;
}
@media (max-width: 767px) {
  html body .elementor .bc-cf-form .elementor-form-fields-wrapper > .elementor-col-50 {
    flex: 0 0 100% !important;
    max-width: 100% !important;
  }
}
/* ==== END LOT 9F ==== */


/* ==== LOT 7B — sec90000 FAQ accordion polish ==== */
/* Items accordion : fond sage-cream saturé (match Figma) + border discret */
html body .elementor .bc-faq-accordion .elementor-accordion-item {
  background: #FFFFFF !important;
  border: 1px solid #D4D9C2 !important;
  border-radius: 16px !important;
  overflow: hidden !important;
}
/* Meme bg quand open (Figma montre pas de changement) */
html body .elementor .bc-faq-accordion .elementor-accordion-item:has(.elementor-active) {
  background: #FFFFFF !important;
  border-color: #D4D9C2 !important;
}
/* Title row : padding genereux */
html body .elementor .bc-faq-accordion .elementor-tab-title {
  padding: 22px 28px !important;
}
/* Typographie question : Playfair Display serif bold */
html body .elementor .bc-faq-accordion .elementor-tab-title,
html body .elementor .bc-faq-accordion .elementor-tab-title a {
  font-family: 'Playfair Display', serif !important;
  font-weight: 700 !important;
  font-size: 17px !important;
  color: #1D2513 !important;
  letter-spacing: 0 !important;
}
/* Icône toggle : cercle outline vert */
html body .elementor .bc-faq-accordion .elementor-tab-title .elementor-accordion-icon {
  width: 32px !important;
  height: 32px !important;
  border-radius: 50% !important;
  background: transparent !important;
  border: 1.5px solid #8C9A5B !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  transition: background 0.25s ease, border-color 0.25s ease !important;
  flex-shrink: 0 !important;
  float: none !important;
  padding: 0 !important;
}
html body .elementor .bc-faq-accordion .elementor-accordion-icon-closed i,
html body .elementor .bc-faq-accordion .elementor-accordion-icon-closed svg,
html body .elementor .bc-faq-accordion .elementor-accordion-icon-opened i,
html body .elementor .bc-faq-accordion .elementor-accordion-icon-opened svg {
  color: #8C9A5B !important;
  fill: #8C9A5B !important;
  font-size: 11px !important;
  width: 11px !important;
  height: 11px !important;
}
/* Open state : chevron blanc dans cercle vert plein */
html body .elementor .bc-faq-accordion .elementor-tab-title.elementor-active .elementor-accordion-icon {
  background: #8C9A5B !important;
  border-color: #8C9A5B !important;
}
html body .elementor .bc-faq-accordion .elementor-tab-title.elementor-active .elementor-accordion-icon-opened i,
html body .elementor .bc-faq-accordion .elementor-tab-title.elementor-active .elementor-accordion-icon-opened svg {
  color: #FFFFFF !important;
  fill: #FFFFFF !important;
}
/* Contenu reponse : meme bg que question, padding aligné */
html body .elementor .bc-faq-accordion .elementor-tab-content {
  background: #FFFFFF !important;
  padding: 0 28px 22px !important;
  border-top: none !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 15px !important;
  color: #3D4930 !important;
  line-height: 1.6 !important;
}
/* ==== END LOT 7B ==== */


/* ==== LOT 9H — FAQ question pill sage ==== */
/* Question row : pill sage #E8EADF avec margin + radius */
html body .elementor .bc-faq-accordion .elementor-tab-title {
  background: #E8EADF !important;
  color: #1D2513 !important;
  border-radius: 16px !important;
  padding: 20px 28px !important;
}
html body .elementor .bc-faq-accordion .elementor-tab-title .elementor-accordion-title,
html body .elementor .bc-faq-accordion .elementor-tab-title a {
  color: #1D2513 !important;
}
/* Chevron : cercle outline vert (fermé) */
html body .elementor .bc-faq-accordion .elementor-tab-title .elementor-accordion-icon {
  border-color: #8C9A5B !important;
  background: transparent !important;
}
html body .elementor .bc-faq-accordion .elementor-tab-title .elementor-accordion-icon i,
html body .elementor .bc-faq-accordion .elementor-tab-title .elementor-accordion-icon svg {
  color: #8C9A5B !important;
  fill: #8C9A5B !important;
}
/* Ouvert : cercle vert plein, chevron blanc */
html body .elementor .bc-faq-accordion .elementor-tab-title.elementor-active .elementor-accordion-icon {
  background: #8C9A5B !important;
  border-color: #8C9A5B !important;
}
html body .elementor .bc-faq-accordion .elementor-tab-title.elementor-active .elementor-accordion-icon i,
html body .elementor .bc-faq-accordion .elementor-tab-title.elementor-active .elementor-accordion-icon svg {
  color: #FFFFFF !important;
  fill: #FFFFFF !important;
}
/* ==== END LOT 9H ==== */


/* ==== LOT 9I — FAQ item spacing default (editable) ==== */
/* Default 15px entre les pills FAQ — specificite basse pour que l'UI Advanced>Margin surclasse */
.bc-faq-accordion .elementor-accordion-item {
  margin-bottom: 15px;
}
/* ==== END LOT 9I ==== */


/* ==== LOT 9J — FAQ title margin user-defined ==== */
/* Universal: cible la classe widget pour fonctionner sur home + toute page utilisant le template shortcode FAQ */
html body .elementor .bc-faq-accordion .elementor-tab-title {
  background-color: #E8EADF !important;
  margin: 10px !important;
}
/* ==== END LOT 9J ==== */


/* ==== LOT 9K — sec57 slider hybride native ==== */
.elementor-element-sec57sldWrap {
  position: relative !important;
  width: 100% !important;
  max-width: 1000px !important;
  overflow: hidden !important;
  border-radius: 20px !important;
  user-select: none !important;
  margin: 0 auto !important;
}
/* BEFORE image relative — defines the wrapper height naturally */
.elementor-element-sec57sldWrap .elementor-widget-image.bc-sld-img-before,
.elementor-element-sec57sldWrap > .elementor-widget-image:first-of-type {
  position: relative !important;
  width: 100% !important;
  height: auto !important;
  margin: 0 !important;
  display: block !important;
}
/* AFTER image absolute — overlays exactly */
.elementor-element-sec57sldWrap .elementor-widget-image.bc-sld-img-after,
.elementor-element-sec57sldWrap > .elementor-widget-image:nth-of-type(2) {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
}
/* BEFORE img: natural height auto */
.elementor-element-sec57sldWrap > .elementor-widget-image:first-of-type .elementor-widget-container,
.elementor-element-sec57sldWrap > .elementor-widget-image:first-of-type img {
  width: 100% !important;
  height: auto !important;
  display: block !important;
}
/* AFTER img: stretch to wrapper height (defined by before) */
.elementor-element-sec57sldWrap > .elementor-widget-image:nth-of-type(2) .elementor-widget-container,
.elementor-element-sec57sldWrap > .elementor-widget-image:nth-of-type(2) img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  display: block !important;
}
.elementor-element-sec57sldWrap > .elementor-widget-image:nth-of-type(2) .elementor-widget-container {
  height: 100% !important;
}
.elementor-element-sec57sldWrap .bc-sld-img-after img {
  clip-path: inset(0 0 0 50%);
}
.bc-sld-label {
  position: absolute;
  top: 16px;
  padding: 6px 14px;
  border-radius: 100px;
  font-family: 'Inter', sans-serif;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.5px;
  text-transform: uppercase;
  color: #FFFFFF;
  z-index: 3;
  pointer-events: none;
}
.bc-sld-label-before { left: 16px !important; right: auto !important; background: rgba(198,90,76,0.95) !important; color: #FFFFFF !important; }
.bc-sld-label-after { right: 16px !important; left: auto !important; background: rgba(140,154,91,0.95) !important; color: #FFFFFF !important; }
.bc-sld-handle {
  position: absolute;
  top: 0; bottom: 0;
  width: 2px;
  background: #FFFFFF;
  left: 50%;
  transform: translateX(-50%);
  z-index: 4;
  pointer-events: none;
}
.bc-sld-thumb {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: #FFFFFF;
  border: 2px solid #8C9A5B;
  color: #8C9A5B;
  display: flex;
  align-items: center;
  justify-content: center;
  transform: translate(-50%, -50%);
  cursor: ew-resize;
  z-index: 5;
  box-shadow: 0 4px 12px rgba(0,0,0,0.15);
}

/* Force HTML widget a ne pas etre le positioning context (sinon labels mal places) */
.elementor-element-sec57sldWrap .elementor-element-sec57sldUI {
  position: static !important;
}
.elementor-element-sec57sldWrap .elementor-element-sec57sldUI > .elementor-widget-container {
  position: static !important;
}


/* pointer-events none sur images/labels pour que le drag aille toujours a la wrap */
.elementor-element-sec57sldWrap .elementor-widget-image,
.elementor-element-sec57sldWrap .elementor-widget-image img,
.elementor-element-sec57sldWrap .bc-sld-label,
.elementor-element-sec57sldWrap .bc-sld-handle {
  pointer-events: none !important;
}
.elementor-element-sec57sldWrap .bc-sld-thumb {
  pointer-events: auto !important;
}
.elementor-element-sec57sldWrap {
  cursor: ew-resize !important;
}


/* Mobile : aspect-ratio 4:3 pour donner plus de hauteur sur petit viewport */
@media (max-width: 767px) {
  .elementor-element-sec57sldWrap {
    aspect-ratio: 4 / 3 !important;
  }
  /* AFTER image overlay (already absolute) — fits 4:3 */
  /* BEFORE image : doit aussi prendre 100% height pour matcher le ratio */
  .elementor-element-sec57sldWrap > .elementor-widget-image:first-of-type,
  .elementor-element-sec57sldWrap > .elementor-widget-image:first-of-type .elementor-widget-container,
  .elementor-element-sec57sldWrap > .elementor-widget-image:first-of-type img {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
  }
}
/* ==== END LOT 9K ==== */

/* ==== LOT 9M — mobile aggressif (compact, moins de padding) ==== */
@media (max-width: 767px) {
  /* === HEADER COMPACT === */
  /* CTA Devis Gratuit header masque */
  header [data-id="hdr00005"], header .elementor-element-hdr00005 { display: none !important; }

  /* Wrapper/inner pill : compact, quasi plat */
  header .elementor-element-hdr00001,
  header .elementor-element-hdr00002,
  header .elementor-sticky--active {
    width: 100% !important; max-width: 100% !important;
    margin: 0 !important; padding: 0 !important;
    border-radius: 0 !important;
  }
  header .elementor-element-hdr00002 > .e-con-inner,
  header .elementor-element-hdr00001 > .e-con-inner {
    padding: 6px 14px !important;
    min-height: 52px !important;
    max-width: 100% !important;
    width: 100% !important;
  }
  /* Logo compact */
  header .elementor-element-hdr00003 img,
  header img[src*="logo"] {
    max-width: 56px !important; width: 56px !important; height: auto !important;
  }
  /* Hamburger : bien a droite */
  header .elementor-widget-nav-menu,
  header .elementor-widget-icon-list { margin-left: auto !important; }
  /* Tue la shadow sticky qui cree le bord blanc 10px */
  header .elementor-sticky--active {
    box-shadow: 0 1px 4px rgba(14,18,9,0.08) !important;
  }
  /* Horizontal padding retire — edite via UI Elementor Mobile > Padding */
  /* Sections : padding vertical reduit — exclure header */
  body:not(.elementor-editor-active) main .elementor-element.e-con[data-element_type="container"],
  section.elementor-section { 
    padding-top: 32px !important; padding-bottom: 32px !important;
  }
  /* Hero : pas trop d'espace vide avant le contenu */
  .elementor-element-sec10000 > .e-con-inner {
    padding-top: 0 !important;
    margin-top: 0 !important;
    min-height: auto !important;
  }
  /* Hero background (qui avait un margin-top -240 en desktop) : reset */
  .elementor-element-sec10000 {
    margin-top: 0 !important;
    padding-top: 20px !important;
  }

  /* === TITRES : reduire serif === */
  .elementor-widget-heading h1,
  .elementor-widget-heading .elementor-heading-title[class*="h1"] { font-size: 34px !important; line-height: 1.15 !important; }
  .elementor-widget-heading h2 { font-size: 26px !important; line-height: 1.2 !important; }
  .elementor-widget-heading h3 { font-size: 20px !important; line-height: 1.25 !important; }

  /* === HERO PILL BADGE (overflow fix) === */
  .elementor-element-sec10000 [class*="pill"] .elementor-widget-container,
  .elementor-element-sec10000 .bc-hero-v2-pill-wrap {
    max-width: 100% !important;
    overflow: hidden !important;
  }
  .elementor-element-sec10000 [class*="pill"] .elementor-heading-title,
  .elementor-element-sec10000 [class*="pill"] p {
    font-size: 11px !important;
    line-height: 1.3 !important;
    white-space: normal !important;
  }

  /* === sec80 : stack 1col + image full === */
  html body .elementor .elementor-element[id^="sec80s"][id$="left"],
  html body .elementor .elementor-element[id^="sec80s"][id$="right"] {
    flex: 0 0 100% !important; max-width: 100% !important; width: 100% !important;
  }
  html body .elementor .elementor-element-sec80grid.bc-pr-swiper .swiper-slide {
    flex-direction: column !important;
    padding: 0 !important;
    gap: 0 !important;
    border-radius: 0 !important;
  }
  /* Mobile : padding 10px 20px 0 sur le div de l'image */
  html body .elementor .elementor-element[id^="sec80s"][id$="right"] {
    padding: 10px 20px 0 !important;
    margin: 0 !important;
  }
  html body .elementor .elementor-element[id^="sec80s"][id$="right"] .elementor-widget-image,
  html body .elementor .elementor-element[id^="sec80s"][id$="right"] .elementor-widget-container {
    padding: 0 !important;
    margin: 0 !important;
  }
  /* Mobile : padding interne uniquement sur la colonne CONTENU */
  html body .elementor .elementor-element[id^="sec80s"][id$="left"] {
    padding: 24px 20px !important;
  }
  /* Mobile : image RATIO NATUREL (pas de 16:10 cropping) — override desktop aspect-ratio */
  html body .elementor .elementor-element[id^="sec80s"][id$="right"] img,
  #sec80s1img img,
  #sec80s2img img,
  #sec80s3img img,
  #sec80s4img img,
  #sec80s5img img,
  #sec80s6img img {
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    aspect-ratio: auto !important;
    object-fit: contain !important;
    display: block !important;
    margin: 0 !important;
    min-height: 0 !important;
    max-height: none !important;
  }
  /* Nuke padding horizontal sur sec80wrap */
  html body .elementor .elementor-element-sec80wrap {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
  .elementor-element[id^="sec80s"][id$="img"] img {
    width: 100% !important; height: auto !important;
    aspect-ratio: 16/10 !important; object-fit: cover !important;
    border-radius: 12px !important;
  }
  /* Bullets sec80 : align gauche, font compacte */
  .elementor-element-sec80s1bs > .e-con-inner,
  .elementor-element-sec80s2bs > .e-con-inner,
  .elementor-element-sec80s3bs > .e-con-inner,
  .elementor-element-sec80s4bs > .e-con-inner,
  .elementor-element-sec80s5bs > .e-con-inner,
  .elementor-element-sec80s6bs > .e-con-inner { align-items: flex-start !important; gap: 6px !important; }
  .bc-pr-bullet { padding: 5px 10px !important; font-size: 12px !important; }
  /* Devis Gratuit btn sec80 : nowrap */
  .elementor-element[id^="sec80s"][id$="btn"] .elementor-button {
    white-space: nowrap !important;
    padding: 12px 22px !important; font-size: 14px !important;
  }

  /* === secA0 Contact : stack 2 cards + reduire padding === */
  html body .elementor .elementor-element-secA0grid {
    flex-direction: column !important; gap: 12px !important;
  }
  html body .elementor .elementor-element-secA0left,
  html body .elementor .elementor-element-secA0right {
    width: 100% !important; max-width: 100% !important;
    border-radius: 16px !important;
    }

  /* === sec95 Besoin nettoyage : stack 2 cards === */
  html body .elementor .elementor-element-sec95card { flex-direction: column !important; }
  html body .elementor .elementor-element-sec95col_left,
  html body .elementor .elementor-element-sec95col_right {
    width: 100% !important; max-width: 100% !important;
    border-width: 1px !important;
  }
  html body .elementor .elementor-element-sec95col_left {
    border-radius: 16px 16px 0 0 !important;
  }
  html body .elementor .elementor-element-sec95col_right {
    border-radius: 0 0 16px 16px !important;
  }

  /* === FAQ pills : compact === */
  .elementor-24 .elementor-element.elementor-element-sec90acc .elementor-tab-title {
    margin: 4px !important; padding: 14px 18px !important;
  }

  /* === Cards (sec15, sec20, sec25, sec27...) : padding reduit === */
  .bc-pq-card, .bc-ps-card, .bc-sc-card,
  .bc-cmp-card, .bc-testimonial-card {
    padding: 20px !important;
  }

  /* === Stats hero 2x2 au lieu de 4 colonnes === */
  .elementor-element-sec10000 [class*="stats"],
  .elementor-element-sec10000 .bc-hero-v2-stats {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 16px !important;
  }
}
/* ==== END LOT 9M ==== */


/* ==== LOT 9N — hero pill text wrap fix mobile ==== */
@media (max-width: 767px) {
  html body .elementor-24 .elementor-element.elementor-element-sec10p_tx .elementor-heading-title,
  html body .elementor-24 .elementor-element.elementor-element-sec10p_tx {
    white-space: normal !important;
    word-wrap: break-word !important;
    font-size: 11px !important;
    line-height: 1.35 !important;
  }
  .elementor-element-sec10pill {
    padding: 8px 14px !important;
    width: auto !important;
    max-width: calc(100% - 24px) !important;
  }
  /* Le 1 jour d'intervention en moyenne tient sur 2 lignes */
  .elementor-element-sec10000 .bc-hero-v2-stats .elementor-heading-title,
  .elementor-element-sec10000 [class*="stats"] .elementor-heading-title { font-size: 22px !important; }
  .elementor-element-sec10000 .bc-hero-v2-stats p,
  .elementor-element-sec10000 [class*="stats"] p { font-size: 12px !important; line-height: 1.3 !important; }
}
/* ==== END LOT 9N ==== */


/* ==== LOT 9O — mobile spacing killer ==== */
@media (max-width: 767px) {
  /* Hero : tuer le padding-top massif 160px */
  html body .elementor-24 .elementor-element.elementor-element-sec10000 {
    padding-top: 20px !important;
    padding-bottom: 20px !important;
    margin-top: 0 !important;
  }
  html body .elementor-24 .elementor-element.elementor-element-sec10000 > .e-con-inner {
    padding-top: 0 !important;
    padding-bottom: 24px !important;
  }
  /* Padding inner retire — edite via UI Mobile > Padding sur la section */
  /* Container inner dans un container (nested) : pas de double padding */
  html body .elementor-24 .elementor-element.e-con.e-child > .e-con-inner {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }
  /* Idem */
}
/* ==== END LOT 9O ==== */


/* ==== LOT 9O2 — mobile kill nested container padding ==== */
@media (max-width: 767px) {
  html body .elementor-24 .elementor-element.elementor-element-sec10inner,
  html body .elementor-24 .elementor-element.elementor-element-sec10left,
  html body .elementor-24 .elementor-element.elementor-element-sec10right {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }
}
/* ==== END LOT 9O2 ==== */


/* ==== LOT 9P — force logical padding reset header mobile ==== */
@media (max-width: 767px) {
  header .elementor-element-hdr00001,
  header .elementor-element-hdr00002,
  header .elementor-sticky--active {
    padding-block-start: 0 !important;
    padding-block-end: 0 !important;
    padding-inline-start: 0 !important;
    padding-inline-end: 0 !important;
    --padding-top: 0 !important;
    --padding-bottom: 0 !important;
    --padding-left: 0 !important;
    --padding-right: 0 !important;
  }
  /* Le inner wrapper garde le padding compact 6px 14px */
  header .elementor-element-hdr00001 > .e-con-inner,
  header .elementor-element-hdr00002 > .e-con-inner {
    padding-block-start: 8px !important;
    padding-block-end: 8px !important;
    padding-inline-start: 14px !important;
    padding-inline-end: 14px !important;
  }
}
/* ==== END LOT 9P ==== */


/* ==== LOT 9P2 — ULTRA specific header mobile ==== */
@media (max-width: 767px) {
  header.elementor-location-header .elementor-22 .elementor-element.elementor-element-hdr00001,
  header.elementor-location-header .elementor-22 .elementor-element.elementor-element-hdr00002,
  html body header.elementor-location-header .elementor-22 .elementor-element.elementor-element-hdr00001,
  html body header.elementor-location-header .elementor-22 .elementor-element.elementor-element-hdr00002 {
    padding: 0 !important;
    padding-block: 0 !important;
    padding-inline: 0 !important;
    --padding-top: 0 !important;
    --padding-bottom: 0 !important;
    --padding-left: 0 !important;
    --padding-right: 0 !important;
    --padding-block-start: 0 !important;
    --padding-block-end: 0 !important;
    --padding-inline-start: 0 !important;
    --padding-inline-end: 0 !important;
    min-height: 0 !important;
  }
  header.elementor-location-header .elementor-22 .elementor-element.elementor-element-hdr00001 > .e-con-inner,
  header.elementor-location-header .elementor-22 .elementor-element.elementor-element-hdr00002 > .e-con-inner {
    padding-block: 10px !important;
    padding-inline: 14px !important;
  }
  /* Retire shadow + border-radius pill massif */
  header.elementor-location-header .elementor-22 .elementor-element.elementor-element-hdr00002 {
    box-shadow: 0 1px 4px rgba(14,18,9,.08) !important;
    border-radius: 0 !important;
    --border-radius: 0 0 16px 16px !important;
  }
  /* Logo image : garder small */
  header.elementor-location-header .elementor-22 .elementor-element.elementor-element-hdr00003 img {
    width: 56px !important;
    max-width: 56px !important;
    height: auto !important;
  }
}
/* ==== END LOT 9P2 ==== */

/* ==== LOT 9R — menu mobile dropdown pro ==== */
@media (max-width: 767px) {
  /* Header reste visible au-dessus du menu */
  header.elementor-location-header { z-index: 100000 !important; position: relative !important; }
  header .elementor-sticky--active { z-index: 100000 !important; }

  /* ===== DROPDOWN FULLSCREEN ===== */
  header .elementor-nav-menu--dropdown {
    position: fixed !important;
    top: 68px !important;
    left: 0 !important; right: 0 !important;
    width: 100vw !important; max-width: 100vw !important;
    height: calc(100vh - 68px) !important;
    max-height: calc(100vh - 68px) !important;
    overflow-y: auto !important;
    background-color: #F5F5F0 !important;
    padding: 40px 28px 40px !important;
    border: none !important;
    display: flex !important;
    flex-direction: column !important;
    z-index: 99999 !important;
    transform: translateX(100%);
    transition: transform .4s cubic-bezier(.22,.61,.36,1) !important;
    will-change: transform;
  }
  html:has(header .elementor-menu-toggle.elementor-active) header .elementor-nav-menu--dropdown {
    transform: translateX(0);
  }

  /* Label "MENU" en haut */
  header .elementor-nav-menu--dropdown::before {
    content: 'Menu';
    display: block;
    font-family: 'Inter', sans-serif;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .2em;
    text-transform: uppercase;
    color: rgba(14,18,9,.5);
    margin-bottom: 24px;
    padding-bottom: 20px;
    border-bottom: 1px solid rgba(14,18,9,.08);
  }

  /* ===== ITEMS NAV : generous et pro ===== */
  header .elementor-nav-menu--dropdown > ul {
    width: 100% !important; margin: 0 !important; padding: 0 !important;
    flex: 1 1 auto;
  }
  header .elementor-nav-menu--dropdown li { list-style: none !important; border: none !important; }
  header .elementor-nav-menu--dropdown li:not(:last-child) {
    border-bottom: 1px solid rgba(14,18,9,.08) !important;
  }
  header .elementor-nav-menu--dropdown .elementor-item,
  header .elementor-nav-menu--dropdown a.elementor-item {
    padding: 24px 4px !important;
    font-family: 'Playfair Display', serif !important;
    font-size: 26px !important;
    font-weight: 500 !important;
    letter-spacing: -.015em !important;
    color: #0E1209 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    border-radius: 0 !important;
    background: transparent !important;
    text-transform: none !important;
    line-height: 1.1 !important;
    transition: color .2s ease, padding-left .2s ease, transform .2s ease;
  }
  header .elementor-nav-menu--dropdown .elementor-item:hover,
  header .elementor-nav-menu--dropdown .elementor-item-active,
  header .elementor-nav-menu--dropdown .current-menu-item > a {
    color: #8C9A5B !important;
    font-style: italic !important;
    padding-left: 10px !important;
  }

  /* ===== Block Contact en bas ===== */
  header .elementor-nav-menu--dropdown::after {
    content: 'Contact\A 022 543 55 44  \2022  079 139 20 00\A info@bati-clean.ch';
    white-space: pre-line;
    display: block;
    margin-top: 32px;
    padding-top: 24px;
    border-top: 1px solid rgba(14,18,9,.08);
    font-family: 'Inter', sans-serif;
    font-size: 13px;
    line-height: 1.9;
    color: rgba(14,18,9,.65);
    letter-spacing: .01em;
  }

  /* Toggle hamburger */
  header .elementor-menu-toggle {
    background: transparent !important;
    color: #0E1209 !important;
    padding: 8px !important;
    transition: color .2s ease;
  }
  header .elementor-menu-toggle:hover,
  header .elementor-menu-toggle.elementor-active { color: #8C9A5B !important; }

  /* Lock scroll body quand menu ouvert */
  html:has(header .elementor-menu-toggle.elementor-active) body {
    overflow: hidden !important;
  }
}
/* ==== END LOT 9R ==== */

/* ==== LOT 10A — nfHero bullets hug + spacing ==== */
/* Bullets hug-content — override Elementor e-con-full width:100% */
.elementor-104 .elementor-element.elementor-element-nfHeroB1,
.elementor-104 .elementor-element.elementor-element-nfHeroB2,
.elementor-104 .elementor-element.elementor-element-nfHeroB3{
    width: auto !important;
    max-width: 100%;
    flex: 0 1 auto !important;
    background: #FFFFFF;
    border-radius: 999px;
    padding: 8px 14px;
    align-items: center;
    gap: 6px;
    box-shadow: 0 1px 2px rgba(14,18,9,0.04);
}
.elementor-104 .elementor-element.elementor-element-nfHeroBenefits{
    align-items: flex-start;
}
/* Mobile: stack vertical */
@media (max-width: 767px) {
    .elementor-104 .elementor-element.elementor-element-nfHeroB1,
    .elementor-104 .elementor-element.elementor-element-nfHeroB2,
    .elementor-104 .elementor-element.elementor-element-nfHeroB3{
        width: 100% !important;
    }
}
/* Btn primary arrow rotation -45deg (effet ↗) — icon is svg, not i */
.elementor-104 .elementor-element.elementor-element-nfHeroBtn1 .elementor-button-icon svg,
.elementor-104 .elementor-element.elementor-element-nfHeroBtn1 .elementor-button-icon i{
    transform: rotate(-45deg);
    display: inline-block;
}
/* ==== END LOT 10A ==== */



/* ==== LOT 10B — sec80 page 104 Figma split-4 layout ==== */
/* 2 cards visibles côte à côte (dark Figma split-4) */
.elementor-104 .elementor-element.elementor-element-sec80grid.bc-pr-swiper .swiper-slide {
    flex: 0 0 calc(50% - 12px) !important;
    max-width: calc(50% - 12px) !important;
    flex-direction: column !important;
    background: #3D4830 !important;
    padding: 0 !important;
    border-radius: 24px !important;
    overflow: hidden;
    position: relative;
    gap: 0 !important;
    align-items: stretch !important;
    border: 1px solid rgba(255,255,255,0.06);
}
@media (max-width: 767px) {
    .elementor-104 .elementor-element.elementor-element-sec80grid.bc-pr-swiper .swiper-slide {
        flex: 0 0 100% !important;
        max-width: 100% !important;
    }
}
/* Image (right col) : top, full-width, height fixe */
.elementor-104 .elementor-element.elementor-element-sec80grid.bc-pr-swiper [data-id^="sec80s"][data-id$="right"] {
    flex: 0 0 auto !important;
    max-width: 100% !important;
    width: 100% !important;
    order: 1;
    align-items: stretch !important;
}
.elementor-104 .elementor-element.elementor-element-sec80grid.bc-pr-swiper [data-id^="sec80s"][data-id$="right"] img {
    width: 100% !important;
    height: 200px !important;
    max-height: 200px !important;
    object-fit: cover !important;
    border-radius: 0 !important;
    display: block !important;
}
/* Content (left col) : bottom, full-width, padding */
.elementor-104 .elementor-element.elementor-element-sec80grid.bc-pr-swiper [data-id^="sec80s"][data-id$="left"] {
    flex: 1 1 auto !important;
    max-width: 100% !important;
    width: 100% !important;
    order: 2;
    padding: 28px 28px 24px !important;
    position: relative;
    min-height: 130px;
}
/* Title "01. Title" — Playfair blanc sur dark card */
html body .elementor.elementor-104 .elementor-element.elementor-element-sec80grid [data-id^="sec80s"][data-id$="nt"] .elementor-heading-title {
    color: #FFFFFF !important;
    font-size: 22px !important;
    line-height: 1.3 !important;
    font-weight: 700 !important;
    margin-bottom: 8px !important;
}
html body .elementor.elementor-104 .elementor-element.elementor-element-sec80grid [data-id^="sec80s"][data-id$="nt"] .elementor-heading-title span {
    color: #FFFFFF !important;
}
/* Desc — gris clair sur dark card */
html body .elementor.elementor-104 .elementor-element.elementor-element-sec80grid [data-id^="sec80s"][data-id$="d"] p,
html body .elementor.elementor-104 .elementor-element.elementor-element-sec80grid [data-id^="sec80s"][data-id$="d"] {
    color: #B8BAA8 !important;
    font-size: 13px !important;
    line-height: 1.5 !important;
    margin: 0 !important;
}
/* Numéro grand "0X" top-right gris pâle Playfair italique */
.elementor-104 .elementor-element.elementor-element-sec80s1 [data-id$="left"]::after { content: "01"; }
.elementor-104 .elementor-element.elementor-element-sec80s2 [data-id$="left"]::after { content: "02"; }
.elementor-104 .elementor-element.elementor-element-sec80s3 [data-id$="left"]::after { content: "03"; }
.elementor-104 .elementor-element.elementor-element-sec80s4 [data-id$="left"]::after { content: "04"; }
.elementor-104 .elementor-element.elementor-element-sec80s5 [data-id$="left"]::after { content: "05"; }
.elementor-104 .elementor-element.elementor-element-sec80grid [data-id^="sec80s"][data-id$="left"]::after {
    position: absolute;
    top: 20px;
    right: 24px;
    font-family: 'Playfair Display', Georgia, serif;
    font-size: 28px;
    font-weight: 400;
    color: #7A8364;
    font-style: italic;
    line-height: 1;
    letter-spacing: 0;
    pointer-events: none;
    opacity: 0.7;
}
/* Reset image radius hérité de LOT 6Y (max-height: 420px) */
.elementor-104 .elementor-element.elementor-element-sec80grid .bc-pr-img img {
    max-height: 200px !important;
    border-radius: 0 !important;
}
/* ==== END LOT 10B ==== */

/* ==== LOT 10C — footer chiffres mobile fix ==== */
/* Sur mobile/tablet, forcer le wrapper d'icône à 50x50 cercle (sinon 100% width = ovale) */
@media (max-width: 1024px) {
    .elementor [data-id^="ftrCh"][data-id$="IcW"] {
        width: 50px !important;
        max-width: 50px !important;
        height: 50px !important;
        flex: 0 0 50px !important;
        margin-left: auto !important;
        margin-right: auto !important;
        align-self: center;
    }
    /* Center text/numbers under icon */
    .elementor [data-id^="ftrCh"][data-id$="Tx"] {
        align-items: center !important;
        text-align: center !important;
    }
    .elementor [data-id^="ftrCh"][data-id$="Tx"] .elementor-heading-title {
        text-align: center !important;
    }
    /* Reduce gap between cells */
    .elementor-element.elementor-element-ftrChIn .e-con-inner {
        gap: 24px !important;
    }
    /* Reduce padding section */
    .elementor-element.elementor-element-ftrChiffres {
        padding-block-start: 32px !important;
        padding-block-end: 32px !important;
    }
}
/* ==== END LOT 10C ==== */



/* ==== LOT 11A — p104 sec70 cards bg force (lazy-load override) ==== */
/* Lazy-load rule .e-con.e-parent:nth-of-type(n+4):not(.e-lazyloaded):not(.e-no-lazyload) *
   has specificity (0,5,0). We chain enough classes to beat it (0,7,0). */
.elementor-104 .elementor-element.elementor-element-sec70card1.e-con.e-child.e-flex.e-con-full {
    background-image: url("/elementor-templates/assets/nettoyage-facade/images/dirtbox-traitement-eaux-facades.png") !important;
    background-size: cover !important;
    background-position: center center !important;
    background-repeat: no-repeat !important;
}
.elementor-104 .elementor-element.elementor-element-sec70card2.e-con.e-child.e-flex.e-con-full {
    background-image: url("/elementor-templates/assets/nettoyage-facade/images/aquafiltre-traitement-eaux.png") !important;
    background-size: cover !important;
    background-position: center center !important;
    background-repeat: no-repeat !important;
}
/* Hide redundant info pills — the new bg images from zip already contain DirtBox/Aquafiltre labels baked in */
.elementor-104 .elementor-element.elementor-element-sec70card1_info,
.elementor-104 .elementor-element.elementor-element-sec70card2_info {
    display: none !important;
}
/* ==== END LOT 11A ==== */

/* ==== LOT 12A dropzone ==== */
/* ---- File upload dropzone (secA0 contact form) ---- */
/* The upload group div has both classes on the same element */
.elementor-104 .elementor-field-type-upload.elementor-field-group {
    position: relative;
    min-height: 140px;
}
/* Hide native input but keep full-size + clickable */
.elementor-104 .elementor-field-type-upload.elementor-field-group input[type="file"] {
    position: absolute;
    top: 0; left: 0;
    width: 100%; height: 100%;
    opacity: 0;
    cursor: pointer;
    z-index: 3;
    margin: 0;
    padding: 0;
}
/* Dropzone box via ::before */
.elementor-104 .elementor-field-type-upload.elementor-field-group::before {
    content: "";
    display: block;
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    border: 2px dashed #D5D8C8;
    background: #ffffff;
    border-radius: 16px;
    cursor: pointer;
    transition: border-color 0.2s, background 0.2s;
    z-index: 1;
}
/* Upload icon + label via ::after */
.elementor-104 .elementor-field-type-upload.elementor-field-group::after {
    content: "\f382  Glisser & deposer les images ici\A ou parcourir les fichiers";
    font-family: "Font Awesome 5 Free", "Font Awesome 5 Pro", "FontAwesome", sans-serif;
    font-weight: 900;
    font-size: 13px;
    color: #6B7162;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    position: absolute;
    top: 50%; left: 50%;
    transform: translate(-50%, -50%);
    pointer-events: none;
    z-index: 2;
    width: calc(100% - 32px);
    white-space: pre;
    line-height: 2;
}
/* Hover state */
.elementor-104 .elementor-field-type-upload.elementor-field-group:hover::before {
    border-color: #8C9A5B;
    background: #f9faf5;
}
/* Drag-over class added by JS */
.elementor-104 .elementor-field-type-upload.elementor-field-group.bc-dragover::before {
    border-color: #8C9A5B !important;
    background: #f0f3e8 !important;
}
/* File count badge */
.elementor-104 .elementor-field-type-upload .bc-file-count {
    position: absolute;
    bottom: 8px; left: 50%;
    transform: translateX(-50%);
    font-size: 11px;
    color: #8C9A5B;
    font-weight: 600;
    z-index: 4;
    pointer-events: none;
    background: rgba(255,255,255,0.9);
    padding: 2px 8px;
    border-radius: 99px;
    white-space: nowrap;
}

/* ==== END LOT 12A ==== */





/* ==== LOT 11B — sec80 wrap fix + footer layout ==== */
/* sec80wrap : transparent + no horizontal padding pour carousel full-width */
.elementor-104 .elementor-element.elementor-element-sec80wrap {
    background: transparent !important;
    background-color: transparent !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}
/* sec80grid : full-width — override LOT 6Y `html body .elementor .elementor-element-sec80grid.bc-pr-swiper`
   qui impose max-width:1200px + margin:0 auto. Spécificité (0,6,2) pour battre (0,5,2). */
html body .elementor.elementor-104 .elementor-element-sec80grid.bc-pr-swiper {
    margin-left: 0 !important;
    margin-right: 0 !important;
    max-width: 100% !important;
    width: 100% !important;
}
/* All cards same height — Swiper sets per-slide height based on content
   (cards 1-3 had 345px, 4-5 had 326px). Force uniform min-height to avoid
   visual jump when navigating to slides 3+. */
html body .elementor.elementor-104 .elementor-element-sec80grid.bc-pr-swiper .swiper-slide {
    min-height: 345px !important;
    align-items: stretch !important;
}
@media (max-width: 767px) {
    html body .elementor.elementor-104 .elementor-element-sec80grid.bc-pr-swiper .swiper-slide {
        min-height: 380px !important;
    }
}
/* Espacement boutons "Nettoyer ma façade" géré par widget Spacer Elementor
   inséré avant chaque CTA (sec55, sec57) — éditable via UI Advanced > Spacer.
   Ne PAS forcer margin via Kit CSS pour rester éditable. */
/* Footer carousel : btn LEFT + nav RIGHT (override LOT 10A center) */
.elementor-104 .bc-pr-nav {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    width: 100% !important;
    gap: 16px !important;
    margin-top: 32px !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}
/* Btn "Devis Gratuit" : primary plein vert (Figma) — override outline ghost */
.elementor-104 .bc-pr-nav .bc-pr-cta {
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
    background: #8C9A5B !important;
    color: #FFFFFF !important;
    border: 1px solid #8C9A5B !important;
    border-radius: 100px !important;
    padding: 14px 28px !important;
    font-family: 'Outfit', sans-serif !important;
    font-size: 15px !important;
    font-weight: 600 !important;
    line-height: 1 !important;
    text-decoration: none !important;
    transition: background-color .2s, color .2s;
}
.elementor-104 .bc-pr-nav .bc-pr-cta:hover {
    background: #7A8650 !important;
    color: #FFFFFF !important;
}
.elementor-104 .bc-pr-nav .bc-pr-cta svg {
    transform: rotate(-45deg);
    stroke: currentColor !important;
}
/* Right group : prev/counter/next stays inline on the right */
.elementor-104 .bc-pr-nav .bc-pr-right {
    display: inline-flex !important;
    align-items: center !important;
    gap: 12px !important;
}
/* Counter + arrows : white tone on dark bg */
.elementor-104 .bc-pr-nav .bc-pr-counter {
    color: #FFFFFF !important;
    font-family: 'Inter', sans-serif !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    letter-spacing: 1px !important;
    min-width: 50px !important;
    text-align: center !important;
}
.elementor-104 .bc-pr-nav .bc-pr-prev,
.elementor-104 .bc-pr-nav .bc-pr-next {
    width: 36px !important;
    height: 36px !important;
    border-radius: 50% !important;
    border: 1.5px solid rgba(255,255,255,0.5) !important;
    background: transparent !important;
    color: #FFFFFF !important;
    cursor: pointer !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
}
.elementor-104 .bc-pr-nav .bc-pr-prev:hover,
.elementor-104 .bc-pr-nav .bc-pr-next:hover {
    background: rgba(255,255,255,0.12) !important;
    border-color: #FFFFFF !important;
}
/* Mobile : stack btn above nav */
@media (max-width: 600px) {
    .elementor-104 .bc-pr-nav {
        flex-direction: column !important;
        gap: 16px !important;
    }
}
/* ==== END LOT 11B ==== */

/* ==== LOT 11C — Footer chiffres icon wrappers : cercle parfait ==== */
/* Elementor setting `width: 50px` on container generates `--width: 50px` CSS var
   but doesn't actually apply `width: 50px`. Force it explicitly. */
.elementor-23 .elementor-element.elementor-element-ftrCh1IcW,
.elementor-23 .elementor-element.elementor-element-ftrCh2IcW,
.elementor-23 .elementor-element.elementor-element-ftrCh3IcW,
.elementor-23 .elementor-element.elementor-element-ftrCh4IcW {
    width: 50px !important;
    height: 50px !important;
    min-width: 50px !important;
    flex: 0 0 50px !important;
    aspect-ratio: 1 / 1;
}
/* ==== END LOT 11C ==== */


/* ==== LOT 11D — Hero pill "Nos Services" hug + design Figma ==== */
.elementor-104 .elementor-element.elementor-element-nfHeroPill{
    align-self: flex-start !important;
    width: auto !important;
    max-width: max-content !important;
    background-color: #FFFFFF !important;
    border: 1px solid #EAECDF !important;
    border-radius: 100px !important;
    padding: 6px 14px;
    box-shadow: 0 1px 2px rgba(14, 18, 9, 0.04);
    gap: 6px;
}
.elementor-104 .elementor-element.elementor-element-nfHeroPill .elementor-heading-title{
    font-size: 13px !important;
    font-weight: 500 !important;
    color: #1D2513 !important;
    line-height: 1.2 !important;
}
.elementor-104 .elementor-element.elementor-element-nfHeroPill img{
    width: 14px !important;
    height: 14px !important;
    object-fit: contain !important;
}
/* ==== END LOT 11D ==== */

/* ==== LOT 12B — Extend p104 .elementor-kit-6s to p142 (Murs/sols/terrasses) ==== */
/* ==== END LOT 9R ==== */

/* ==== LOT 10A — nfHero bullets hug + spacing ==== */
/* Bullets hug-content — override Elementor e-con-full width:100% */
.elementor-142 .elementor-element.elementor-element-nfHeroB1, .elementor-142 .elementor-element.elementor-element-nfHeroB2, .elementor-142 .elementor-element.elementor-element-nfHeroB3{
    width: auto !important;
    max-width: 100%;
    flex: 0 1 auto !important;
    background: #FFFFFF;
    border-radius: 999px;
    padding: 8px 14px;
    align-items: center;
    gap: 6px;
    box-shadow: 0 1px 2px rgba(14,18,9,0.04);
}
.elementor-142 .elementor-element.elementor-element-nfHeroBenefits{
    align-items: flex-start;
}
.elementor-142 .elementor-element.elementor-element-nfHeroB1, .elementor-142 .elementor-element.elementor-element-nfHeroB2, .elementor-142 .elementor-element.elementor-element-nfHeroB3{
        width: 100% !important;
    }
not i */
.elementor-142 .elementor-element.elementor-element-nfHeroBtn1 .elementor-button-icon svg, .elementor-142 .elementor-element.elementor-element-nfHeroBtn1 .elementor-button-icon i{
    transform: rotate(-45deg);
    display: inline-block;
}
0). */
.elementor-142 .elementor-element.elementor-element-sec70card1.e-con.e-child.e-flex.e-con-full {
    background-image: url("/elementor-templates/assets/nettoyage-facade/images/dirtbox-traitement-eaux-facades.png") !important;
    background-size: cover !important;
    background-position: center center !important;
    background-repeat: no-repeat !important;
}
.elementor-142 .elementor-element.elementor-element-sec70card2.e-con.e-child.e-flex.e-con-full {
    background-image: url("/elementor-templates/assets/nettoyage-facade/images/aquafiltre-traitement-eaux.png") !important;
    background-size: cover !important;
    background-position: center center !important;
    background-repeat: no-repeat !important;
}
/* Hide redundant info pills — the new bg images from zip already contain DirtBox/Aquafiltre labels baked in */
.elementor-142 .elementor-element.elementor-element-sec70card1_info, .elementor-142 .elementor-element.elementor-element-sec70card2_info {
    display: none !important;
}
/* ==== END LOT 11A ==== */

/* ==== LOT 12A dropzone ==== */
/* ---- File upload dropzone (secA0 contact form) ---- */
/* The upload group div has both classes on the same element */
.elementor-142 .elementor-field-type-upload.elementor-field-group {
    position: relative;
    min-height: 140px;
}
/* Hide native input but keep full-size + clickable */
.elementor-142 .elementor-field-type-upload.elementor-field-group input[type="file"] {
    position: absolute;
    top: 0; left: 0;
    width: 100%; height: 100%;
    opacity: 0;
    cursor: pointer;
    z-index: 3;
    margin: 0;
    padding: 0;
}
/* Dropzone box via ::before */
.elementor-142 .elementor-field-type-upload.elementor-field-group::before {
    content: "";
    display: block;
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    border: 2px dashed #D5D8C8;
    background: #ffffff;
    border-radius: 16px;
    cursor: pointer;
    transition: border-color 0.2s, background 0.2s;
    z-index: 1;
}
/* Upload icon + label via ::after */
.elementor-142 .elementor-field-type-upload.elementor-field-group::after {
    content: "\f382  Glisser & deposer les images ici\A ou parcourir les fichiers";
    font-family: "Font Awesome 5 Free", "Font Awesome 5 Pro", "FontAwesome", sans-serif;
    font-weight: 900;
    font-size: 13px;
    color: #6B7162;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    position: absolute;
    top: 50%; left: 50%;
    transform: translate(-50%, -50%);
    pointer-events: none;
    z-index: 2;
    width: calc(100% - 32px);
    white-space: pre;
    line-height: 2;
}
/* Hover state */
.elementor-142 .elementor-field-type-upload.elementor-field-group:hover::before {
    border-color: #8C9A5B;
    background: #f9faf5;
}
/* Drag-over class added by JS */
.elementor-142 .elementor-field-type-upload.elementor-field-group.bc-dragover::before {
    border-color: #8C9A5B !important;
    background: #f0f3e8 !important;
}
/* File count badge */
.elementor-142 .elementor-field-type-upload .bc-file-count {
    position: absolute;
    bottom: 8px; left: 50%;
    transform: translateX(-50%);
    font-size: 11px;
    color: #8C9A5B;
    font-weight: 600;
    z-index: 4;
    pointer-events: none;
    background: rgba(255,255,255,0.9);
    padding: 2px 8px;
    border-radius: 99px;
    white-space: nowrap;
}
sec57) — éditable via UI Advanced > Spacer.
   Ne PAS forcer margin via Kit CSS pour rester éditable. */
/* Footer carousel : btn LEFT + nav RIGHT (override LOT 10A center) */
.elementor-142 .bc-pr-nav {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    width: 100% !important;
    gap: 16px !important;
    margin-top: 32px !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}
/* Btn "Devis Gratuit" : primary plein vert (Figma) — override outline ghost */
.elementor-142 .bc-pr-nav .bc-pr-cta {
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
    background: #8C9A5B !important;
    color: #FFFFFF !important;
    border: 1px solid #8C9A5B !important;
    border-radius: 100px !important;
    padding: 14px 28px !important;
    font-family: 'Outfit', sans-serif !important;
    font-size: 15px !important;
    font-weight: 600 !important;
    line-height: 1 !important;
    text-decoration: none !important;
    transition: background-color .2s, color .2s;
}
.elementor-142 .bc-pr-nav .bc-pr-cta:hover {
    background: #7A8650 !important;
    color: #FFFFFF !important;
}
.elementor-142 .bc-pr-nav .bc-pr-cta svg {
    transform: rotate(-45deg);
    stroke: currentColor !important;
}
/* Right group : prev/counter/next stays inline on the right */
.elementor-142 .bc-pr-nav .bc-pr-right {
    display: inline-flex !important;
    align-items: center !important;
    gap: 12px !important;
}
/* Counter + arrows : white tone on dark bg */
.elementor-142 .bc-pr-nav .bc-pr-counter {
    color: #FFFFFF !important;
    font-family: 'Inter', sans-serif !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    letter-spacing: 1px !important;
    min-width: 50px !important;
    text-align: center !important;
}
.elementor-142 .bc-pr-nav .bc-pr-prev, .elementor-142 .bc-pr-nav .bc-pr-next {
    width: 36px !important;
    height: 36px !important;
    border-radius: 50% !important;
    border: 1.5px solid rgba(255,255,255,0.5) !important;
    background: transparent !important;
    color: #FFFFFF !important;
    cursor: pointer !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
}
.elementor-142 .bc-pr-nav .bc-pr-prev:hover, .elementor-142 .bc-pr-nav .bc-pr-next:hover {
    background: rgba(255,255,255,0.12) !important;
    border-color: #FFFFFF !important;
}
.elementor-142 .bc-pr-nav {
        flex-direction: column !important;
        gap: 16px !important;
    }
/* ==== END LOT 11C ==== */


/* ==== LOT 11D — Hero pill "Nos Services" hug + design Figma ==== */
.elementor-142 .elementor-element.elementor-element-nfHeroPill{
    align-self: flex-start !important;
    width: auto !important;
    max-width: max-content !important;
    background-color: #FFFFFF !important;
    border: 1px solid #EAECDF !important;
    border-radius: 100px !important;
    padding: 6px 14px;
    box-shadow: 0 1px 2px rgba(14, 18, 9, 0.04);
    gap: 6px;
}
.elementor-142 .elementor-element.elementor-element-nfHeroPill .elementor-heading-title{
    font-size: 13px !important;
    font-weight: 500 !important;
    color: #1D2513 !important;
    line-height: 1.2 !important;
}
.elementor-142 .elementor-element.elementor-element-nfHeroPill img{
    width: 14px !important;
    height: 14px !important;
    object-fit: contain !important;
}
/* ==== END LOT 12B ==== */






/* ==== LOT 12E — Image step height nuke via ID .elementor-kit-6 (desktop+ only) ==== */
@media (min-width: 768px) {
  #sec80s1img img,
  #sec80s2img img,
  #sec80s3img img,
  #sec80s4img img,
  #sec80s5img img,
  #sec80s6img img {
      width: 100% !important;
      max-width: 100% !important;
      height: auto !important;
      aspect-ratio: 16 / 10 !important;
      object-fit: cover !important;
      object-position: center !important;
      display: block !important;
  }
}
/* ==== END LOT 12E ==== */

/* ==== LOT 12F — Image step max-height nuke via ID (desktop+ only) ==== */
@media (min-width: 768px) {
  #sec80s1img img,
  #sec80s2img img,
  #sec80s3img img,
  #sec80s4img img,
  #sec80s5img img,
  #sec80s6img img {
      max-height: none !important;
      min-height: 0 !important;
      height: auto !important;
      aspect-ratio: 16 / 10 !important;
      object-fit: cover !important;
      object-position: center !important;
  }
}
/* ==== END LOT 12F ==== */



/* ==== LOT 12H — duplicate p104/p142 rules to p170 (Gestion eaux) ==== */
.elementor-170 .elementor-element.elementor-element-nfHeroBenefits{
  align-items: flex-start;
}
.elementor-170 .elementor-element.elementor-element-nfHeroB1, .elementor-170 .elementor-element.elementor-element-nfHeroB2, .elementor-170 .elementor-element.elementor-element-nfHeroB3{
  width: 100% !important;
}
.elementor-170 .elementor-element.elementor-element-sec80grid.bc-pr-swiper .swiper-slide {
  flex: 0 0 100% !important;
        max-width: 100% !important;
}
.elementor-170 .elementor-element.elementor-element-sec80grid.bc-pr-swiper [data-id^="sec80s"][data-id$="right"] img {
  width: 100% !important;
    height: 200px !important;
    max-height: 200px !important;
    object-fit: cover !important;
    border-radius: 0 !important;
    display: block !important;
}
html body .elementor.elementor-170 .elementor-element.elementor-element-sec80grid [data-id^="sec80s"][data-id$="nt"] .elementor-heading-title span {
  color: #FFFFFF !important;
}
.elementor-170 .elementor-element.elementor-element-sec80s2 [data-id$="left"]::after {
  content: "02";
}
.elementor-170 .elementor-element.elementor-element-sec80s3 [data-id$="left"]::after {
  content: "03";
}
.elementor-170 .elementor-element.elementor-element-sec80s4 [data-id$="left"]::after {
  content: "04";
}
.elementor-170 .elementor-element.elementor-element-sec80s5 [data-id$="left"]::after {
  content: "05";
}
.elementor-170 .elementor-element.elementor-element-sec80grid [data-id^="sec80s"][data-id$="left"]::after {
  position: absolute;
    top: 20px;
    right: 24px;
    font-family: 'Playfair Display', Georgia, serif;
    font-size: 28px;
    font-weight: 400;
    color: #7A8364;
    font-style: italic;
    line-height: 1;
    letter-spacing: 0;
    pointer-events: none;
    opacity: 0.7;
}
.elementor-170 .elementor-element.elementor-element-sec70card2.e-con.e-child.e-flex.e-con-full {
  background-image: url("/elementor-templates/assets/nettoyage-facade/images/aquafiltre-traitement-eaux.png") !important;
    background-size: cover !important;
    background-position: center center !important;
    background-repeat: no-repeat !important;
}
html body .elementor.elementor-170 .elementor-element-sec80grid.bc-pr-swiper .swiper-slide {
  min-height: 380px !important;
}
.elementor-170 .bc-pr-nav .bc-pr-cta:hover {
  background: #7A8650 !important;
    color: #FFFFFF !important;
}
.elementor-170 .bc-pr-nav .bc-pr-cta svg {
  transform: rotate(-45deg);
    stroke: currentColor !important;
}
.elementor-170 .bc-pr-nav .bc-pr-prev, .elementor-170 .bc-pr-nav .bc-pr-next {
  width: 36px !important;
    height: 36px !important;
    border-radius: 50% !important;
    border: 1.5px solid rgba(255,255,255,0.5) !important;
    background: transparent !important;
    color: #FFFFFF !important;
    cursor: pointer !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
}
.elementor-170 .bc-pr-nav .bc-pr-prev:hover, .elementor-170 .bc-pr-nav .bc-pr-next:hover {
  background: rgba(255,255,255,0.12) !important;
    border-color: #FFFFFF !important;
}
.elementor-170 .bc-pr-nav {
  flex-direction: column !important;
        gap: 16px !important;
}
.elementor-170 .elementor-element.elementor-element-nfHeroPill .elementor-heading-title{
  font-size: 13px !important;
    font-weight: 500 !important;
    color: #1D2513 !important;
    line-height: 1.2 !important;
}
.elementor-170 .elementor-element.elementor-element-nfHeroPill img{
  width: 14px !important;
    height: 14px !important;
    object-fit: contain !important;
}
not i */
.elementor-170 .elementor-element.elementor-element-nfHeroBtn1 .elementor-button-icon svg, .elementor-170 .elementor-element.elementor-element-nfHeroBtn1 .elementor-button-icon i{
  transform: rotate(-45deg);
    display: inline-block;
}
height fixe */
.elementor-170 .elementor-element.elementor-element-sec80grid.bc-pr-swiper [data-id^="sec80s"][data-id$="right"] {
  flex: 0 0 auto !important;
    max-width: 100% !important;
    width: 100% !important;
    order: 1;
    align-items: stretch !important;
}
padding */
.elementor-170 .elementor-element.elementor-element-sec80grid.bc-pr-swiper [data-id^="sec80s"][data-id$="left"] {
  flex: 1 1 auto !important;
    max-width: 100% !important;
    width: 100% !important;
    order: 2;
    padding: 28px 28px 24px !important;
    position: relative;
    min-height: 130px;
}
0). */
.elementor-170 .elementor-element.elementor-element-sec70card1.e-con.e-child.e-flex.e-con-full {
  background-image: url("/elementor-templates/assets/nettoyage-facade/images/dirtbox-traitement-eaux-facades.png") !important;
    background-size: cover !important;
    background-position: center center !important;
    background-repeat: no-repeat !important;
}
2). */
html body .elementor.elementor-170 .elementor-element-sec80grid.bc-pr-swiper {
  margin-left: 0 !important;
    margin-right: 0 !important;
    max-width: 100% !important;
    width: 100% !important;
}
4-5 had 326px). Force uniform min-height to avoid
   visual jump when navigating to slides 3+. */
html body .elementor.elementor-170 .elementor-element-sec80grid.bc-pr-swiper .swiper-slide {
  min-height: 345px !important;
    align-items: stretch !important;
}
sec57) — éditable via UI Advanced > Spacer.
   Ne PAS forcer margin via Kit CSS pour rester éditable. */
/* Footer carousel : btn LEFT + nav RIGHT (override LOT 10A center) */
.elementor-170 .bc-pr-nav {
  display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    width: 100% !important;
    gap: 16px !important;
    margin-top: 32px !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}
html body .elementor.elementor-170 .elementor-element.elementor-element-sec80s1right.e-con, html body .elementor.elementor-170 .elementor-element.elementor-element-sec80s2right.e-con, html body .elementor.elementor-170 .elementor-element.elementor-element-sec80s3right.e-con, html body .elementor.elementor-170 .elementor-element.elementor-element-sec80s4right.e-con, html body .elementor.elementor-170 .elementor-element.elementor-element-sec80s5right.e-con {
  flex: 1 1 auto !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 100% !important;
    height: auto !important;
    padding: 0 !important;
}
html body .elementor.elementor-170 .elementor-element.elementor-element-sec80s1right .elementor-widget-image, html body .elementor.elementor-170 .elementor-element.elementor-element-sec80s2right .elementor-widget-image, html body .elementor.elementor-170 .elementor-element.elementor-element-sec80s3right .elementor-widget-image, html body .elementor.elementor-170 .elementor-element.elementor-element-sec80s4right .elementor-widget-image, html body .elementor.elementor-170 .elementor-element.elementor-element-sec80s5right .elementor-widget-image {
  width: 100% !important;
    max-width: 100% !important;
}
html body .elementor.elementor-170 .elementor-element.elementor-element-sec80s1right img, html body .elementor.elementor-170 .elementor-element.elementor-element-sec80s2right img, html body .elementor.elementor-170 .elementor-element.elementor-element-sec80s3right img, html body .elementor.elementor-170 .elementor-element.elementor-element-sec80s4right img, html body .elementor.elementor-170 .elementor-element.elementor-element-sec80s5right img {
  width: 100% !important;
    height: 320px !important;
    object-fit: cover !important;
    display: block !important;
}
html body .elementor.elementor-170 .elementor-element.elementor-element-sec80s1left.e-con, html body .elementor.elementor-170 .elementor-element.elementor-element-sec80s2left.e-con, html body .elementor.elementor-170 .elementor-element.elementor-element-sec80s3left.e-con, html body .elementor.elementor-170 .elementor-element.elementor-element-sec80s4left.e-con, html body .elementor.elementor-170 .elementor-element.elementor-element-sec80s5left.e-con {
  flex: 0 0 auto !important;
    width: 100% !important;
    max-width: 100% !important;
    padding: 32px !important;
}
html body .elementor.elementor-170 .elementor-element.elementor-element-sec80s1left .elementor-heading-title span, html body .elementor.elementor-170 .elementor-element.elementor-element-sec80s2left .elementor-heading-title span, html body .elementor.elementor-170 .elementor-element.elementor-element-sec80s3left .elementor-heading-title span, html body .elementor.elementor-170 .elementor-element.elementor-element-sec80s4left .elementor-heading-title span, html body .elementor.elementor-170 .elementor-element.elementor-element-sec80s5left .elementor-heading-title span {
  color: #8C9A5B !important;
}
html body .elementor.elementor-170 .elementor-element.elementor-element-sec80s1left .elementor-widget-text-editor, html body .elementor.elementor-170 .elementor-element.elementor-element-sec80s2left .elementor-widget-text-editor, html body .elementor.elementor-170 .elementor-element.elementor-element-sec80s3left .elementor-widget-text-editor, html body .elementor.elementor-170 .elementor-element.elementor-element-sec80s4left .elementor-widget-text-editor, html body .elementor.elementor-170 .elementor-element.elementor-element-sec80s5left .elementor-widget-text-editor {
  color: #4F5742 !important;
}
html body .elementor.elementor-170 .elementor-element.elementor-element-sec80wrap {
  background-color: transparent !important;
}
html body .elementor.elementor-170 .elementor-element.elementor-element-sec80kick .elementor-heading-title {
  color: #8C9A5B !important;
}
html body .elementor.elementor-170 .elementor-element.elementor-element-sec80title .elementor-heading-title {
  color: #FFFFFF !important;
}
html body .elementor.elementor-170 .elementor-element.elementor-element-cb18ebe .elementor-widget-container {
  color: #D5D8C8 !important;
}
html body .elementor.elementor-170 .elementor-element.elementor-element-sec80wrap .bc-pr-nav .bc-pr-arrow {
  border-color: #1D2513 !important;
    color: #1D2513 !important;
}
html body .elementor.elementor-170 .elementor-element.elementor-element-sec80wrap .bc-pr-nav .bc-pr-counter {
  color: #1D2513 !important;
}

/* ==== END LOT 12H ==== */

/* ==== LOT 12I — extend Kit CSS to a-propos (176), resultats (177), contact (178) ==== */
html body.page .elementor-176 .elementor-element.elementor-element-sec20012 .elementor-icon-box-icon .elementor-icon, html body.page .elementor-177 .elementor-element.elementor-element-sec20012 .elementor-icon-box-icon .elementor-icon, html body.page .elementor-178 .elementor-element.elementor-element-sec20012 .elementor-icon-box-icon .elementor-icon {
  background-image: url("/elementor-templates/assets/icons/icon-problem-peinture.svg") !important;
  background-color: transparent !important;
  background-size: contain !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  width: 72px !important;
  height: 72px !important;
  border: 0 !important;
  padding: 0 !important;
}
html body.page .elementor-176 .elementor-element.elementor-element-sec20013 .elementor-icon-box-icon .elementor-icon, html body.page .elementor-177 .elementor-element.elementor-element-sec20013 .elementor-icon-box-icon .elementor-icon, html body.page .elementor-178 .elementor-element.elementor-element-sec20013 .elementor-icon-box-icon .elementor-icon {
  background-image: url("/elementor-templates/assets/icons/icon-problem-couleur.svg") !important;
  background-color: transparent !important;
  background-size: contain !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  width: 72px !important;
  height: 72px !important;
  border: 0 !important;
  padding: 0 !important;
}
html body.page .elementor-176 .elementor-element.elementor-element-sec20014 .elementor-icon-box-icon .elementor-icon, html body.page .elementor-177 .elementor-element.elementor-element-sec20014 .elementor-icon-box-icon .elementor-icon, html body.page .elementor-178 .elementor-element.elementor-element-sec20014 .elementor-icon-box-icon .elementor-icon {
  background-image: url("/elementor-templates/assets/icons/icon-problem-cout.svg") !important;
  background-color: transparent !important;
  background-size: contain !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  width: 72px !important;
  height: 72px !important;
  border: 0 !important;
  padding: 0 !important;
}
html body.page .elementor-176 .elementor-element.elementor-element-sec40011 .elementor-icon-box-icon .elementor-icon, html body.page .elementor-177 .elementor-element.elementor-element-sec40011 .elementor-icon-box-icon .elementor-icon, html body.page .elementor-178 .elementor-element.elementor-element-sec40011 .elementor-icon-box-icon .elementor-icon {
  background-image: url("/elementor-templates/assets/icons/icon-method-01.svg") !important;
  background-color: transparent !important;
  background-size: contain !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  width: 72px !important;
  height: 72px !important;
  border: 0 !important;
  padding: 0 !important;
}
html body.page .elementor-176 .elementor-element.elementor-element-sec40012 .elementor-icon-box-icon .elementor-icon, html body.page .elementor-177 .elementor-element.elementor-element-sec40012 .elementor-icon-box-icon .elementor-icon, html body.page .elementor-178 .elementor-element.elementor-element-sec40012 .elementor-icon-box-icon .elementor-icon {
  background-image: url("/elementor-templates/assets/icons/icon-method-02.svg") !important;
  background-color: transparent !important;
  background-size: contain !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  width: 72px !important;
  height: 72px !important;
  border: 0 !important;
  padding: 0 !important;
}
html body.page .elementor-176 .elementor-element.elementor-element-sec40013 .elementor-icon-box-icon .elementor-icon, html body.page .elementor-177 .elementor-element.elementor-element-sec40013 .elementor-icon-box-icon .elementor-icon, html body.page .elementor-178 .elementor-element.elementor-element-sec40013 .elementor-icon-box-icon .elementor-icon {
  background-image: url("/elementor-templates/assets/icons/icon-method-03.svg") !important;
  background-color: transparent !important;
  background-size: contain !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  width: 72px !important;
  height: 72px !important;
  border: 0 !important;
  padding: 0 !important;
}
html body.page .elementor-176 .elementor-element.elementor-element-sec40014 .elementor-icon-box-icon .elementor-icon, html body.page .elementor-177 .elementor-element.elementor-element-sec40014 .elementor-icon-box-icon .elementor-icon, html body.page .elementor-178 .elementor-element.elementor-element-sec40014 .elementor-icon-box-icon .elementor-icon {
  background-image: url("/elementor-templates/assets/icons/icon-method-04.svg") !important;
  background-color: transparent !important;
  background-size: contain !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  width: 72px !important;
  height: 72px !important;
  border: 0 !important;
  padding: 0 !important;
}
html body.page .elementor-176 .elementor-element.elementor-element-sec40015 .elementor-icon-box-icon .elementor-icon, html body.page .elementor-177 .elementor-element.elementor-element-sec40015 .elementor-icon-box-icon .elementor-icon, html body.page .elementor-178 .elementor-element.elementor-element-sec40015 .elementor-icon-box-icon .elementor-icon {
  background-image: url("/elementor-templates/assets/icons/icon-method-05.svg") !important;
  background-color: transparent !important;
  background-size: contain !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  width: 72px !important;
  height: 72px !important;
  border: 0 !important;
  padding: 0 !important;
}
html body.page .elementor-176 .elementor-element.elementor-element-sec40016 .elementor-icon-box-icon .elementor-icon, html body.page .elementor-177 .elementor-element.elementor-element-sec40016 .elementor-icon-box-icon .elementor-icon, html body.page .elementor-178 .elementor-element.elementor-element-sec40016 .elementor-icon-box-icon .elementor-icon {
  background-image: url("/elementor-templates/assets/icons/icon-star.svg") !important;
  background-color: transparent !important;
  background-size: contain !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  width: 72px !important;
  height: 72px !important;
  border: 0 !important;
  padding: 0 !important;
}
html body.page .elementor-176 .elementor-element.elementor-element-sec80011 .elementor-icon-box-icon .elementor-icon, html body.page .elementor-177 .elementor-element.elementor-element-sec80011 .elementor-icon-box-icon .elementor-icon, html body.page .elementor-178 .elementor-element.elementor-element-sec80011 .elementor-icon-box-icon .elementor-icon {
  background-image: url("/elementor-templates/assets/icons/icon-service-01.svg") !important;
  background-color: transparent !important;
  background-size: contain !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  width: 72px !important;
  height: 72px !important;
  border: 0 !important;
  padding: 0 !important;
}
html body.page .elementor-176 .elementor-element.elementor-element-sec80012 .elementor-icon-box-icon .elementor-icon, html body.page .elementor-177 .elementor-element.elementor-element-sec80012 .elementor-icon-box-icon .elementor-icon, html body.page .elementor-178 .elementor-element.elementor-element-sec80012 .elementor-icon-box-icon .elementor-icon {
  background-image: url("/elementor-templates/assets/icons/icon-service-02.svg") !important;
  background-color: transparent !important;
  background-size: contain !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  width: 72px !important;
  height: 72px !important;
  border: 0 !important;
  padding: 0 !important;
}
html body.page .elementor-176 .elementor-element.elementor-element-sec80013 .elementor-icon-box-icon .elementor-icon, html body.page .elementor-177 .elementor-element.elementor-element-sec80013 .elementor-icon-box-icon .elementor-icon, html body.page .elementor-178 .elementor-element.elementor-element-sec80013 .elementor-icon-box-icon .elementor-icon {
  background-image: url("/elementor-templates/assets/icons/icon-service-03.svg") !important;
  background-color: transparent !important;
  background-size: contain !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  width: 72px !important;
  height: 72px !important;
  border: 0 !important;
  padding: 0 !important;
}
html body.page .elementor-176 .elementor-element.elementor-element-sec80014 .elementor-icon-box-icon .elementor-icon, html body.page .elementor-177 .elementor-element.elementor-element-sec80014 .elementor-icon-box-icon .elementor-icon, html body.page .elementor-178 .elementor-element.elementor-element-sec80014 .elementor-icon-box-icon .elementor-icon {
  background-image: url("/elementor-templates/assets/icons/icon-service-04.svg") !important;
  background-color: transparent !important;
  background-size: contain !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  width: 72px !important;
  height: 72px !important;
  border: 0 !important;
  padding: 0 !important;
}
html body.page .elementor-176 .elementor-element.elementor-element-sec80015 .elementor-icon-box-icon .elementor-icon, html body.page .elementor-177 .elementor-element.elementor-element-sec80015 .elementor-icon-box-icon .elementor-icon, html body.page .elementor-178 .elementor-element.elementor-element-sec80015 .elementor-icon-box-icon .elementor-icon {
  background-image: url("/elementor-templates/assets/icons/icon-service-05.svg") !important;
  background-color: transparent !important;
  background-size: contain !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  width: 72px !important;
  height: 72px !important;
  border: 0 !important;
  padding: 0 !important;
}
html body.page .elementor-176 .elementor-element.elementor-element-sec80016 .elementor-icon-box-icon .elementor-icon, html body.page .elementor-177 .elementor-element.elementor-element-sec80016 .elementor-icon-box-icon .elementor-icon, html body.page .elementor-178 .elementor-element.elementor-element-sec80016 .elementor-icon-box-icon .elementor-icon {
  background-image: url("/elementor-templates/assets/icons/icon-service-06.svg") !important;
  background-color: transparent !important;
  background-size: contain !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  width: 72px !important;
  height: 72px !important;
  border: 0 !important;
  padding: 0 !important;
}
html body .elementor-176 .elementor-element.elementor-element-sec10p_tx .elementor-heading-title, html body .elementor-177 .elementor-element.elementor-element-sec10p_tx .elementor-heading-title, html body .elementor-178 .elementor-element.elementor-element-sec10p_tx .elementor-heading-title, html body .elementor-176 .elementor-element.elementor-element-sec10p_tx, html body .elementor-177 .elementor-element.elementor-element-sec10p_tx, html body .elementor-178 .elementor-element.elementor-element-sec10p_tx {
  white-space: normal !important;
    word-wrap: break-word !important;
    font-size: 11px !important;
    line-height: 1.35 !important;
}
html body .elementor-176 .elementor-element.elementor-element-sec10000 > .e-con-inner, html body .elementor-177 .elementor-element.elementor-element-sec10000 > .e-con-inner, html body .elementor-178 .elementor-element.elementor-element-sec10000 > .e-con-inner {
  padding-top: 0 !important;
    padding-bottom: 24px !important;
}
html body .elementor-176 .elementor-element.elementor-element-sec10inner, html body .elementor-177 .elementor-element.elementor-element-sec10inner, html body .elementor-178 .elementor-element.elementor-element-sec10inner, html body .elementor-176 .elementor-element.elementor-element-sec10left, html body .elementor-177 .elementor-element.elementor-element-sec10left, html body .elementor-178 .elementor-element.elementor-element-sec10left, html body .elementor-176 .elementor-element.elementor-element-sec10right, html body .elementor-177 .elementor-element.elementor-element-sec10right, html body .elementor-178 .elementor-element.elementor-element-sec10right {
  padding-top: 0 !important;
    padding-bottom: 0 !important;
}
.elementor-176 .elementor-element.elementor-element-nfHeroBenefits, .elementor-177 .elementor-element.elementor-element-nfHeroBenefits, .elementor-178 .elementor-element.elementor-element-nfHeroBenefits{
  align-items: flex-start;
}
.elementor-176 .elementor-element.elementor-element-nfHeroB1, .elementor-177 .elementor-element.elementor-element-nfHeroB1, .elementor-178 .elementor-element.elementor-element-nfHeroB1, .elementor-176 .elementor-element.elementor-element-nfHeroB2, .elementor-177 .elementor-element.elementor-element-nfHeroB2, .elementor-178 .elementor-element.elementor-element-nfHeroB2, .elementor-176 .elementor-element.elementor-element-nfHeroB3, .elementor-177 .elementor-element.elementor-element-nfHeroB3, .elementor-178 .elementor-element.elementor-element-nfHeroB3{
  width: 100% !important;
}
.elementor-176 .elementor-element.elementor-element-sec80grid.bc-pr-swiper .swiper-slide, .elementor-177 .elementor-element.elementor-element-sec80grid.bc-pr-swiper .swiper-slide, .elementor-178 .elementor-element.elementor-element-sec80grid.bc-pr-swiper .swiper-slide {
  flex: 0 0 100% !important;
        max-width: 100% !important;
}
.elementor-176 .elementor-element.elementor-element-sec80grid.bc-pr-swiper [data-id^="sec80s"][data-id$="right"] img, .elementor-177 .elementor-element.elementor-element-sec80grid.bc-pr-swiper [data-id^="sec80s"][data-id$="right"] img, .elementor-178 .elementor-element.elementor-element-sec80grid.bc-pr-swiper [data-id^="sec80s"][data-id$="right"] img {
  width: 100% !important;
    height: 200px !important;
    max-height: 200px !important;
    object-fit: cover !important;
    border-radius: 0 !important;
    display: block !important;
}
html body .elementor.elementor-176 .elementor-element.elementor-element-sec80grid [data-id^="sec80s"][data-id$="nt"] .elementor-heading-title span, html body .elementor.elementor-177 .elementor-element.elementor-element-sec80grid [data-id^="sec80s"][data-id$="nt"] .elementor-heading-title span, html body .elementor.elementor-178 .elementor-element.elementor-element-sec80grid [data-id^="sec80s"][data-id$="nt"] .elementor-heading-title span {
  color: #FFFFFF !important;
}
.elementor-176 .elementor-element.elementor-element-sec80s2 [data-id$="left"]::after, .elementor-177 .elementor-element.elementor-element-sec80s2 [data-id$="left"]::after, .elementor-178 .elementor-element.elementor-element-sec80s2 [data-id$="left"]::after {
  content: "02";
}
.elementor-176 .elementor-element.elementor-element-sec80s3 [data-id$="left"]::after, .elementor-177 .elementor-element.elementor-element-sec80s3 [data-id$="left"]::after, .elementor-178 .elementor-element.elementor-element-sec80s3 [data-id$="left"]::after {
  content: "03";
}
.elementor-176 .elementor-element.elementor-element-sec80s4 [data-id$="left"]::after, .elementor-177 .elementor-element.elementor-element-sec80s4 [data-id$="left"]::after, .elementor-178 .elementor-element.elementor-element-sec80s4 [data-id$="left"]::after {
  content: "04";
}
.elementor-176 .elementor-element.elementor-element-sec80s5 [data-id$="left"]::after, .elementor-177 .elementor-element.elementor-element-sec80s5 [data-id$="left"]::after, .elementor-178 .elementor-element.elementor-element-sec80s5 [data-id$="left"]::after {
  content: "05";
}
.elementor-176 .elementor-element.elementor-element-sec80grid [data-id^="sec80s"][data-id$="left"]::after, .elementor-177 .elementor-element.elementor-element-sec80grid [data-id^="sec80s"][data-id$="left"]::after, .elementor-178 .elementor-element.elementor-element-sec80grid [data-id^="sec80s"][data-id$="left"]::after {
  position: absolute;
    top: 20px;
    right: 24px;
    font-family: 'Playfair Display', Georgia, serif;
    font-size: 28px;
    font-weight: 400;
    color: #7A8364;
    font-style: italic;
    line-height: 1;
    letter-spacing: 0;
    pointer-events: none;
    opacity: 0.7;
}
.elementor-176 .elementor-element.elementor-element-sec70card2.e-con.e-child.e-flex.e-con-full, .elementor-177 .elementor-element.elementor-element-sec70card2.e-con.e-child.e-flex.e-con-full, .elementor-178 .elementor-element.elementor-element-sec70card2.e-con.e-child.e-flex.e-con-full {
  background-image: url("/elementor-templates/assets/nettoyage-facade/images/aquafiltre-traitement-eaux.png") !important;
    background-size: cover !important;
    background-position: center center !important;
    background-repeat: no-repeat !important;
}
html body .elementor.elementor-176 .elementor-element-sec80grid.bc-pr-swiper .swiper-slide, html body .elementor.elementor-177 .elementor-element-sec80grid.bc-pr-swiper .swiper-slide, html body .elementor.elementor-178 .elementor-element-sec80grid.bc-pr-swiper .swiper-slide {
  min-height: 380px !important;
}
.elementor-176 .bc-pr-nav .bc-pr-cta:hover, .elementor-177 .bc-pr-nav .bc-pr-cta:hover, .elementor-178 .bc-pr-nav .bc-pr-cta:hover {
  background: #7A8650 !important;
    color: #FFFFFF !important;
}
.elementor-176 .bc-pr-nav .bc-pr-cta svg, .elementor-177 .bc-pr-nav .bc-pr-cta svg, .elementor-178 .bc-pr-nav .bc-pr-cta svg {
  transform: rotate(-45deg);
    stroke: currentColor !important;
}
.elementor-176 .bc-pr-nav .bc-pr-prev, .elementor-177 .bc-pr-nav .bc-pr-prev, .elementor-178 .bc-pr-nav .bc-pr-prev, .elementor-176 .bc-pr-nav .bc-pr-next, .elementor-177 .bc-pr-nav .bc-pr-next, .elementor-178 .bc-pr-nav .bc-pr-next {
  width: 36px !important;
    height: 36px !important;
    border-radius: 50% !important;
    border: 1.5px solid rgba(255,255,255,0.5) !important;
    background: transparent !important;
    color: #FFFFFF !important;
    cursor: pointer !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
}
.elementor-176 .bc-pr-nav .bc-pr-prev:hover, .elementor-177 .bc-pr-nav .bc-pr-prev:hover, .elementor-178 .bc-pr-nav .bc-pr-prev:hover, .elementor-176 .bc-pr-nav .bc-pr-next:hover, .elementor-177 .bc-pr-nav .bc-pr-next:hover, .elementor-178 .bc-pr-nav .bc-pr-next:hover {
  background: rgba(255,255,255,0.12) !important;
    border-color: #FFFFFF !important;
}
.elementor-176 .bc-pr-nav, .elementor-177 .bc-pr-nav, .elementor-178 .bc-pr-nav {
  flex-direction: column !important;
        gap: 16px !important;
}
.elementor-176 .elementor-element.elementor-element-nfHeroPill .elementor-heading-title, .elementor-177 .elementor-element.elementor-element-nfHeroPill .elementor-heading-title, .elementor-178 .elementor-element.elementor-element-nfHeroPill .elementor-heading-title{
  font-size: 13px !important;
    font-weight: 500 !important;
    color: #1D2513 !important;
    line-height: 1.2 !important;
}
.elementor-176 .elementor-element.elementor-element-nfHeroPill img, .elementor-177 .elementor-element.elementor-element-nfHeroPill img, .elementor-178 .elementor-element.elementor-element-nfHeroPill img{
  width: 14px !important;
    height: 14px !important;
    object-fit: contain !important;
}
not i */
.elementor-176 .elementor-element.elementor-element-nfHeroBtn1 .elementor-button-icon svg, not i */
.elementor-177 .elementor-element.elementor-element-nfHeroBtn1 .elementor-button-icon svg, not i */
.elementor-178 .elementor-element.elementor-element-nfHeroBtn1 .elementor-button-icon svg, .elementor-176 .elementor-element.elementor-element-nfHeroBtn1 .elementor-button-icon i, .elementor-177 .elementor-element.elementor-element-nfHeroBtn1 .elementor-button-icon i, .elementor-178 .elementor-element.elementor-element-nfHeroBtn1 .elementor-button-icon i{
  transform: rotate(-45deg);
    display: inline-block;
}
height fixe */
.elementor-176 .elementor-element.elementor-element-sec80grid.bc-pr-swiper [data-id^="sec80s"][data-id$="right"], height fixe */
.elementor-177 .elementor-element.elementor-element-sec80grid.bc-pr-swiper [data-id^="sec80s"][data-id$="right"], height fixe */
.elementor-178 .elementor-element.elementor-element-sec80grid.bc-pr-swiper [data-id^="sec80s"][data-id$="right"] {
  flex: 0 0 auto !important;
    max-width: 100% !important;
    width: 100% !important;
    order: 1;
    align-items: stretch !important;
}
padding */
.elementor-176 .elementor-element.elementor-element-sec80grid.bc-pr-swiper [data-id^="sec80s"][data-id$="left"], padding */
.elementor-177 .elementor-element.elementor-element-sec80grid.bc-pr-swiper [data-id^="sec80s"][data-id$="left"], padding */
.elementor-178 .elementor-element.elementor-element-sec80grid.bc-pr-swiper [data-id^="sec80s"][data-id$="left"] {
  flex: 1 1 auto !important;
    max-width: 100% !important;
    width: 100% !important;
    order: 2;
    padding: 28px 28px 24px !important;
    position: relative;
    min-height: 130px;
}
0). */
.elementor-176 .elementor-element.elementor-element-sec70card1.e-con.e-child.e-flex.e-con-full, 0). */
.elementor-177 .elementor-element.elementor-element-sec70card1.e-con.e-child.e-flex.e-con-full, 0). */
.elementor-178 .elementor-element.elementor-element-sec70card1.e-con.e-child.e-flex.e-con-full {
  background-image: url("/elementor-templates/assets/nettoyage-facade/images/dirtbox-traitement-eaux-facades.png") !important;
    background-size: cover !important;
    background-position: center center !important;
    background-repeat: no-repeat !important;
}
2). */
html body .elementor.elementor-176 .elementor-element-sec80grid.bc-pr-swiper, 2). */
html body .elementor.elementor-177 .elementor-element-sec80grid.bc-pr-swiper, 2). */
html body .elementor.elementor-178 .elementor-element-sec80grid.bc-pr-swiper {
  margin-left: 0 !important;
    margin-right: 0 !important;
    max-width: 100% !important;
    width: 100% !important;
}
4-5 had 326px). Force uniform min-height to avoid
   visual jump when navigating to slides 3+. */
html body .elementor.elementor-176 .elementor-element-sec80grid.bc-pr-swiper .swiper-slide, 4-5 had 326px). Force uniform min-height to avoid
   visual jump when navigating to slides 3+. */
html body .elementor.elementor-177 .elementor-element-sec80grid.bc-pr-swiper .swiper-slide, 4-5 had 326px). Force uniform min-height to avoid
   visual jump when navigating to slides 3+. */
html body .elementor.elementor-178 .elementor-element-sec80grid.bc-pr-swiper .swiper-slide {
  min-height: 345px !important;
    align-items: stretch !important;
}
sec57) — éditable via UI Advanced > Spacer.
   Ne PAS forcer margin via Kit CSS pour rester éditable. */
/* Footer carousel : btn LEFT + nav RIGHT (override LOT 10A center) */
.elementor-176 .bc-pr-nav, sec57) — éditable via UI Advanced > Spacer.
   Ne PAS forcer margin via Kit CSS pour rester éditable. */
/* Footer carousel : btn LEFT + nav RIGHT (override LOT 10A center) */
.elementor-177 .bc-pr-nav, sec57) — éditable via UI Advanced > Spacer.
   Ne PAS forcer margin via Kit CSS pour rester éditable. */
/* Footer carousel : btn LEFT + nav RIGHT (override LOT 10A center) */
.elementor-178 .bc-pr-nav {
  display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    width: 100% !important;
    gap: 16px !important;
    margin-top: 32px !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}
html body .elementor.elementor-176 .elementor-element.elementor-element-sec80s1right.e-con, html body .elementor.elementor-177 .elementor-element.elementor-element-sec80s1right.e-con, html body .elementor.elementor-178 .elementor-element.elementor-element-sec80s1right.e-con, html body .elementor.elementor-176 .elementor-element.elementor-element-sec80s2right.e-con, html body .elementor.elementor-177 .elementor-element.elementor-element-sec80s2right.e-con, html body .elementor.elementor-178 .elementor-element.elementor-element-sec80s2right.e-con, html body .elementor.elementor-176 .elementor-element.elementor-element-sec80s3right.e-con, html body .elementor.elementor-177 .elementor-element.elementor-element-sec80s3right.e-con, html body .elementor.elementor-178 .elementor-element.elementor-element-sec80s3right.e-con, html body .elementor.elementor-176 .elementor-element.elementor-element-sec80s4right.e-con, html body .elementor.elementor-177 .elementor-element.elementor-element-sec80s4right.e-con, html body .elementor.elementor-178 .elementor-element.elementor-element-sec80s4right.e-con, html body .elementor.elementor-176 .elementor-element.elementor-element-sec80s5right.e-con, html body .elementor.elementor-177 .elementor-element.elementor-element-sec80s5right.e-con, html body .elementor.elementor-178 .elementor-element.elementor-element-sec80s5right.e-con {
  flex: 1 1 auto !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 100% !important;
    height: auto !important;
    padding: 0 !important;
}
html body .elementor.elementor-176 .elementor-element.elementor-element-sec80s1right .elementor-widget-image, html body .elementor.elementor-177 .elementor-element.elementor-element-sec80s1right .elementor-widget-image, html body .elementor.elementor-178 .elementor-element.elementor-element-sec80s1right .elementor-widget-image, html body .elementor.elementor-176 .elementor-element.elementor-element-sec80s2right .elementor-widget-image, html body .elementor.elementor-177 .elementor-element.elementor-element-sec80s2right .elementor-widget-image, html body .elementor.elementor-178 .elementor-element.elementor-element-sec80s2right .elementor-widget-image, html body .elementor.elementor-176 .elementor-element.elementor-element-sec80s3right .elementor-widget-image, html body .elementor.elementor-177 .elementor-element.elementor-element-sec80s3right .elementor-widget-image, html body .elementor.elementor-178 .elementor-element.elementor-element-sec80s3right .elementor-widget-image, html body .elementor.elementor-176 .elementor-element.elementor-element-sec80s4right .elementor-widget-image, html body .elementor.elementor-177 .elementor-element.elementor-element-sec80s4right .elementor-widget-image, html body .elementor.elementor-178 .elementor-element.elementor-element-sec80s4right .elementor-widget-image, html body .elementor.elementor-176 .elementor-element.elementor-element-sec80s5right .elementor-widget-image, html body .elementor.elementor-177 .elementor-element.elementor-element-sec80s5right .elementor-widget-image, html body .elementor.elementor-178 .elementor-element.elementor-element-sec80s5right .elementor-widget-image {
  width: 100% !important;
    max-width: 100% !important;
}
html body .elementor.elementor-176 .elementor-element.elementor-element-sec80s1right img, html body .elementor.elementor-177 .elementor-element.elementor-element-sec80s1right img, html body .elementor.elementor-178 .elementor-element.elementor-element-sec80s1right img, html body .elementor.elementor-176 .elementor-element.elementor-element-sec80s2right img, html body .elementor.elementor-177 .elementor-element.elementor-element-sec80s2right img, html body .elementor.elementor-178 .elementor-element.elementor-element-sec80s2right img, html body .elementor.elementor-176 .elementor-element.elementor-element-sec80s3right img, html body .elementor.elementor-177 .elementor-element.elementor-element-sec80s3right img, html body .elementor.elementor-178 .elementor-element.elementor-element-sec80s3right img, html body .elementor.elementor-176 .elementor-element.elementor-element-sec80s4right img, html body .elementor.elementor-177 .elementor-element.elementor-element-sec80s4right img, html body .elementor.elementor-178 .elementor-element.elementor-element-sec80s4right img, html body .elementor.elementor-176 .elementor-element.elementor-element-sec80s5right img, html body .elementor.elementor-177 .elementor-element.elementor-element-sec80s5right img, html body .elementor.elementor-178 .elementor-element.elementor-element-sec80s5right img {
  width: 100% !important;
    height: 320px !important;
    object-fit: cover !important;
    display: block !important;
}
html body .elementor.elementor-176 .elementor-element.elementor-element-sec80s1left.e-con, html body .elementor.elementor-177 .elementor-element.elementor-element-sec80s1left.e-con, html body .elementor.elementor-178 .elementor-element.elementor-element-sec80s1left.e-con, html body .elementor.elementor-176 .elementor-element.elementor-element-sec80s2left.e-con, html body .elementor.elementor-177 .elementor-element.elementor-element-sec80s2left.e-con, html body .elementor.elementor-178 .elementor-element.elementor-element-sec80s2left.e-con, html body .elementor.elementor-176 .elementor-element.elementor-element-sec80s3left.e-con, html body .elementor.elementor-177 .elementor-element.elementor-element-sec80s3left.e-con, html body .elementor.elementor-178 .elementor-element.elementor-element-sec80s3left.e-con, html body .elementor.elementor-176 .elementor-element.elementor-element-sec80s4left.e-con, html body .elementor.elementor-177 .elementor-element.elementor-element-sec80s4left.e-con, html body .elementor.elementor-178 .elementor-element.elementor-element-sec80s4left.e-con, html body .elementor.elementor-176 .elementor-element.elementor-element-sec80s5left.e-con, html body .elementor.elementor-177 .elementor-element.elementor-element-sec80s5left.e-con, html body .elementor.elementor-178 .elementor-element.elementor-element-sec80s5left.e-con {
  flex: 0 0 auto !important;
    width: 100% !important;
    max-width: 100% !important;
    padding: 32px !important;
}
html body .elementor.elementor-176 .elementor-element.elementor-element-sec80s1left .elementor-heading-title span, html body .elementor.elementor-177 .elementor-element.elementor-element-sec80s1left .elementor-heading-title span, html body .elementor.elementor-178 .elementor-element.elementor-element-sec80s1left .elementor-heading-title span, html body .elementor.elementor-176 .elementor-element.elementor-element-sec80s2left .elementor-heading-title span, html body .elementor.elementor-177 .elementor-element.elementor-element-sec80s2left .elementor-heading-title span, html body .elementor.elementor-178 .elementor-element.elementor-element-sec80s2left .elementor-heading-title span, html body .elementor.elementor-176 .elementor-element.elementor-element-sec80s3left .elementor-heading-title span, html body .elementor.elementor-177 .elementor-element.elementor-element-sec80s3left .elementor-heading-title span, html body .elementor.elementor-178 .elementor-element.elementor-element-sec80s3left .elementor-heading-title span, html body .elementor.elementor-176 .elementor-element.elementor-element-sec80s4left .elementor-heading-title span, html body .elementor.elementor-177 .elementor-element.elementor-element-sec80s4left .elementor-heading-title span, html body .elementor.elementor-178 .elementor-element.elementor-element-sec80s4left .elementor-heading-title span, html body .elementor.elementor-176 .elementor-element.elementor-element-sec80s5left .elementor-heading-title span, html body .elementor.elementor-177 .elementor-element.elementor-element-sec80s5left .elementor-heading-title span, html body .elementor.elementor-178 .elementor-element.elementor-element-sec80s5left .elementor-heading-title span {
  color: #8C9A5B !important;
}
html body .elementor.elementor-176 .elementor-element.elementor-element-sec80s1left .elementor-widget-text-editor, html body .elementor.elementor-177 .elementor-element.elementor-element-sec80s1left .elementor-widget-text-editor, html body .elementor.elementor-178 .elementor-element.elementor-element-sec80s1left .elementor-widget-text-editor, html body .elementor.elementor-176 .elementor-element.elementor-element-sec80s2left .elementor-widget-text-editor, html body .elementor.elementor-177 .elementor-element.elementor-element-sec80s2left .elementor-widget-text-editor, html body .elementor.elementor-178 .elementor-element.elementor-element-sec80s2left .elementor-widget-text-editor, html body .elementor.elementor-176 .elementor-element.elementor-element-sec80s3left .elementor-widget-text-editor, html body .elementor.elementor-177 .elementor-element.elementor-element-sec80s3left .elementor-widget-text-editor, html body .elementor.elementor-178 .elementor-element.elementor-element-sec80s3left .elementor-widget-text-editor, html body .elementor.elementor-176 .elementor-element.elementor-element-sec80s4left .elementor-widget-text-editor, html body .elementor.elementor-177 .elementor-element.elementor-element-sec80s4left .elementor-widget-text-editor, html body .elementor.elementor-178 .elementor-element.elementor-element-sec80s4left .elementor-widget-text-editor, html body .elementor.elementor-176 .elementor-element.elementor-element-sec80s5left .elementor-widget-text-editor, html body .elementor.elementor-177 .elementor-element.elementor-element-sec80s5left .elementor-widget-text-editor, html body .elementor.elementor-178 .elementor-element.elementor-element-sec80s5left .elementor-widget-text-editor {
  color: #4F5742 !important;
}
html body .elementor.elementor-176 .elementor-element.elementor-element-sec80wrap, html body .elementor.elementor-177 .elementor-element.elementor-element-sec80wrap, html body .elementor.elementor-178 .elementor-element.elementor-element-sec80wrap {
  background-color: transparent !important;
}
html body .elementor.elementor-176 .elementor-element.elementor-element-sec80kick .elementor-heading-title, html body .elementor.elementor-177 .elementor-element.elementor-element-sec80kick .elementor-heading-title, html body .elementor.elementor-178 .elementor-element.elementor-element-sec80kick .elementor-heading-title {
  color: #8C9A5B !important;
}
html body .elementor.elementor-176 .elementor-element.elementor-element-sec80title .elementor-heading-title, html body .elementor.elementor-177 .elementor-element.elementor-element-sec80title .elementor-heading-title, html body .elementor.elementor-178 .elementor-element.elementor-element-sec80title .elementor-heading-title {
  color: #1D2513 !important;
}
html body .elementor.elementor-176 .elementor-element.elementor-element-cb18ebe .elementor-widget-container, html body .elementor.elementor-177 .elementor-element.elementor-element-cb18ebe .elementor-widget-container, html body .elementor.elementor-178 .elementor-element.elementor-element-cb18ebe .elementor-widget-container {
  color: #4F5742 !important;
}
html body .elementor.elementor-176 .elementor-element.elementor-element-sec80wrap .bc-pr-nav .bc-pr-arrow, html body .elementor.elementor-177 .elementor-element.elementor-element-sec80wrap .bc-pr-nav .bc-pr-arrow, html body .elementor.elementor-178 .elementor-element.elementor-element-sec80wrap .bc-pr-nav .bc-pr-arrow {
  border-color: #1D2513 !important;
    color: #1D2513 !important;
}
html body .elementor.elementor-176 .elementor-element.elementor-element-sec80wrap .bc-pr-nav .bc-pr-counter, html body .elementor.elementor-177 .elementor-element.elementor-element-sec80wrap .bc-pr-nav .bc-pr-counter, html body .elementor.elementor-178 .elementor-element.elementor-element-sec80wrap .bc-pr-nav .bc-pr-counter {
  color: #1D2513 !important;
}
html body .elementor.elementor-176 .elementor-element.elementor-element-sec80grid [data-id^="sec80s"][data-id$="nt"] .elementor-heading-title span, html body .elementor.elementor-177 .elementor-element.elementor-element-sec80grid [data-id^="sec80s"][data-id$="nt"] .elementor-heading-title span, html body .elementor.elementor-178 .elementor-element.elementor-element-sec80grid [data-id^="sec80s"][data-id$="nt"] .elementor-heading-title span {
  color: #8C9A5B !important;
}
/* ==== END LOT 12I ==== */



/* ==== LOT MST-FINAL ==== */
/* sec88 - Un résultat qui dure: image right rounded */
.elementor-142 .elementor-element.elementor-element-sec88img img {
  width: 100% !important;
  height: auto !important;
  border-radius: 24px !important;
  object-fit: cover !important;
  aspect-ratio: 1 / 1 !important;
}
.elementor-142 .elementor-element.elementor-element-sec88inner > .e-con-inner {
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  gap: 56px !important;
  width: 100% !important;
}
.elementor-142 .elementor-element.elementor-element-sec88col_content,
.elementor-142 .elementor-element.elementor-element-sec88col_image {
  width: 50% !important;
  flex: 0 0 auto !important;
}
/* bullet pill icon size */
.elementor-142 [class*="elementor-element-sec88b"] .elementor-widget-image img {
  width: 20px !important;
  height: 20px !important;
}
.elementor-142 .elementor-element.bc-bullet-pill-active {
  background: #58693A !important;
}
.elementor-142 .elementor-element.bc-bullet-pill-active .elementor-heading-title {
  color: #FFFFFF !important;
}

/* sec30 NEW - Nettoyer plutôt que remplacer */
.elementor-142 .elementor-element.elementor-element-sec30grid > .e-con-inner {
  display: flex !important;
  flex-direction: row !important;
  gap: 32px !important;
  align-items: flex-start !important;
  width: 100% !important;
}
.elementor-142 .elementor-element.elementor-element-sec30col_bad,
.elementor-142 .elementor-element.elementor-element-sec30col_good {
  flex: 1 1 0 !important;
}
.elementor-142 [class*="elementor-element-sec30bc"] .elementor-widget-image img,
.elementor-142 [class*="elementor-element-sec30gc"] .elementor-widget-image img {
  width: 20px !important;
  height: 20px !important;
}

/* sec92 - Perches télescopiques: 4 dark cards row */
.elementor-142 .elementor-element.elementor-element-sec92cards > .e-con-inner {
  display: flex !important;
  flex-direction: row !important;
  gap: 16px !important;
  width: 100% !important;
}
.elementor-142 [class*="elementor-element-sec92dc"]:not([class*="iconwrap"]) {
  flex: 1 1 0 !important;
  min-width: 0 !important;
}
.elementor-142 [class*="elementor-element-sec92dc"] .elementor-widget-image img {
  width: 24px !important;
  height: 24px !important;
  filter: brightness(0) invert(1) !important;
}
.elementor-142 .elementor-element.elementor-element-sec92toprow > .e-con-inner {
  display: flex !important;
  flex-direction: row !important;
  align-items: flex-end !important;
  justify-content: space-between !important;
  gap: 32px !important;
  width: 100% !important;
}

@media (max-width: 767px) {
  .elementor-142 .elementor-element.elementor-element-sec88inner > .e-con-inner,
  .elementor-142 .elementor-element.elementor-element-sec30grid > .e-con-inner,
  .elementor-142 .elementor-element.elementor-element-sec92cards > .e-con-inner,
  .elementor-142 .elementor-element.elementor-element-sec92toprow > .e-con-inner {
    flex-direction: column !important;
  }
  .elementor-142 .elementor-element.elementor-element-sec88col_content,
  .elementor-142 .elementor-element.elementor-element-sec88col_image {
    width: 100% !important;
  }
}

/* Force icon wrap to small circle */
.elementor-142 [class*="elementor-element-sec30bc"][class*="iconwrap"],
.elementor-142 [class*="elementor-element-sec30gc"][class*="iconwrap"] {
  width: 40px !important;
  height: 40px !important;
  flex: 0 0 40px !important;
  align-self: center !important;
}
.elementor-142 [class*="elementor-element-sec92dc"][class*="iconwrap"] {
  width: 56px !important;
  height: 56px !important;
  flex: 0 0 56px !important;
  align-self: flex-start !important;
}
/* Cards: icon at top center for sec30, top-left for sec92 */
.elementor-142 [class*="elementor-element-sec30bc"]:not([class*="iconwrap"]) > .e-con-inner,
.elementor-142 [class*="elementor-element-sec30gc"]:not([class*="iconwrap"]) > .e-con-inner {
  align-items: center !important;
}

/* ==== LOT MST-SEC80-MIRROR ==== */

/* ==== END LOT 10A ==== */



/* ==== LOT 10B — sec80 page 104 Figma split-4 layout ==== */
/* 2 cards visibles côte à côte (dark Figma split-4) */
.elementor-142 .elementor-element.elementor-element-sec80grid.bc-pr-swiper .swiper-slide {
    flex: 0 0 calc(50% - 12px) !important;
    max-width: calc(50% - 12px) !important;
    flex-direction: column !important;
    background: #3D4830 !important;
    padding: 0 !important;
    border-radius: 24px !important;
    overflow: hidden;
    position: relative;
    gap: 0 !important;
    align-items: stretch !important;
    border: 1px solid rgba(255,255,255,0.06);
}

@media (max-width: 767px) {
    .elementor-142 .elementor-element.elementor-element-sec80grid.bc-pr-swiper .swiper-slide {
        flex: 0 0 100% !important;
        max-width: 100% !important;
    }
}

/* Image (right col) : top, full-width, height fixe */
.elementor-142 .elementor-element.elementor-element-sec80grid.bc-pr-swiper [data-id^="sec80s"][data-id$="right"] {
    flex: 0 0 auto !important;
    max-width: 100% !important;
    width: 100% !important;
    order: 1;
    align-items: stretch !important;
}

.elementor-142 .elementor-element.elementor-element-sec80grid.bc-pr-swiper [data-id^="sec80s"][data-id$="right"] img {
    width: 100% !important;
    height: 200px !important;
    max-height: 200px !important;
    object-fit: cover !important;
    border-radius: 0 !important;
    display: block !important;
}

/* Content (left col) : bottom, full-width, padding */
.elementor-142 .elementor-element.elementor-element-sec80grid.bc-pr-swiper [data-id^="sec80s"][data-id$="left"] {
    flex: 1 1 auto !important;
    max-width: 100% !important;
    width: 100% !important;
    order: 2;
    padding: 28px 28px 24px !important;
    position: relative;
    min-height: 130px;
}

/* Title "01. Title" — Playfair blanc sur dark card */
html body .elementor.elementor-142 .elementor-element.elementor-element-sec80grid [data-id^="sec80s"][data-id$="nt"] .elementor-heading-title {
    color: #FFFFFF !important;
    font-size: 22px !important;
    line-height: 1.3 !important;
    font-weight: 700 !important;
    margin-bottom: 8px !important;
}

html body .elementor.elementor-142 .elementor-element.elementor-element-sec80grid [data-id^="sec80s"][data-id$="nt"] .elementor-heading-title span {
    color: #FFFFFF !important;
}

/* Desc — gris clair sur dark card */
html body .elementor.elementor-142 .elementor-element.elementor-element-sec80grid [data-id^="sec80s"][data-id$="d"] p,
html body .elementor.elementor-142 .elementor-element.elementor-element-sec80grid [data-id^="sec80s"][data-id$="d"] {
    color: #B8BAA8 !important;
    font-size: 13px !important;
    line-height: 1.5 !important;
    margin: 0 !important;
}

/* Numéro grand "0X" top-right gris pâle Playfair italique */
.elementor-142 .elementor-element.elementor-element-sec80s1 [data-id$="left"]::after { content: "01"; }

.elementor-142 .elementor-element.elementor-element-sec80s2 [data-id$="left"]::after { content: "02"; }

.elementor-142 .elementor-element.elementor-element-sec80s3 [data-id$="left"]::after { content: "03"; }

.elementor-142 .elementor-element.elementor-element-sec80s4 [data-id$="left"]::after { content: "04"; }

.elementor-142 .elementor-element.elementor-element-sec80s5 [data-id$="left"]::after { content: "05"; }

.elementor-142 .elementor-element.elementor-element-sec80grid [data-id^="sec80s"][data-id$="left"]::after {
    position: absolute;
    top: 20px;
    right: 24px;
    font-family: 'Playfair Display', Georgia, serif;
    font-size: 28px;
    font-weight: 400;
    color: #7A8364;
    font-style: italic;
    line-height: 1;
    letter-spacing: 0;
    pointer-events: none;
    opacity: 0.7;
}

/* Reset image radius hérité de LOT 6Y (max-height: 420px) */
.elementor-142 .elementor-element.elementor-element-sec80grid .bc-pr-img img {
    max-height: 200px !important;
    border-radius: 0 !important;
}

/* ==== END LOT 10B ==== */

/* ==== LOT 10C — footer chiffres mobile fix ==== */
/* Sur mobile/tablet, forcer le wrapper d'icône à 50x50 cercle (sinon 100% width = ovale) */
@media (max-width: 1024px) {
    .elementor [data-id^="ftrCh"][data-id$="IcW"] {
        width: 50px !important;
        max-width: 50px !important;
        height: 50px !important;
        flex: 0 0 50px !important;
        margin-left: auto !important;
        margin-right: auto !important;
        align-self: center;
    }
    /* Center text/numbers under icon */
    .elementor [data-id^="ftrCh"][data-id$="Tx"] {
        align-items: center !important;
        text-align: center !important;
    }
    .elementor [data-id^="ftrCh"][data-id$="Tx"] .elementor-heading-title {
        text-align: center !important;
    }
    /* Reduce gap between cells */
    .elementor-element.elementor-element-ftrChIn .e-con-inner {
        gap: 24px !important;
    }
    /* Reduce padding section */
    .elementor-element.elementor-element-ftrChiffres {
        padding-block-start: 32px !important;
        padding-block-end: 32px !important;
    }
}
/* ==== END LOT 10C ==== */



/* ==== LOT 11A — p104 sec70 cards bg force (lazy-load override) ==== */
/* Lazy-load rule .e-con.e-parent:nth-of-type(n+4):not(.e-lazyloaded):not(.e-no-lazyload) *
   has specificity (0,5,0). We chain enough classes to beat it (0,7,0). */
.elementor-142 .elementor-element.elementor-element-sec70card1.e-con.e-child.e-flex.e-con-full {
    background-image: url("/elementor-templates/assets/nettoyage-facade/images/dirtbox-traitement-eaux-facades.png") !important;
    background-size: cover !important;
    background-position: center center !important;
    background-repeat: no-repeat !important;
}
.elementor-142 .elementor-element.elementor-element-sec70card2.e-con.e-child.e-flex.e-con-full {
    background-image: url("/elementor-templates/assets/nettoyage-facade/images/aquafiltre-traitement-eaux.png") !important;
    background-size: cover !important;
    background-position: center center !important;
    background-repeat: no-repeat !important;
}
/* Hide redundant info pills — the new bg images from zip already contain DirtBox/Aquafiltre labels baked in */
.elementor-142 .elementor-element.elementor-element-sec70card1_info,
.elementor-142 .elementor-element.elementor-element-sec70card2_info {
    display: none !important;
}
/* ==== END LOT 11A ==== */

/* ==== LOT 12A dropzone ==== */
/* ---- File upload dropzone (secA0 contact form) ---- */
/* The upload group div has both classes on the same element */
.elementor-142 .elementor-field-type-upload.elementor-field-group {
    position: relative;
    min-height: 140px;
}
/* Hide native input but keep full-size + clickable */
.elementor-142 .elementor-field-type-upload.elementor-field-group input[type="file"] {
    position: absolute;
    top: 0; left: 0;
    width: 100%; height: 100%;
    opacity: 0;
    cursor: pointer;
    z-index: 3;
    margin: 0;
    padding: 0;
}
/* Dropzone box via ::before */
.elementor-142 .elementor-field-type-upload.elementor-field-group::before {
    content: "";
    display: block;
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    border: 2px dashed #D5D8C8;
    background: #ffffff;
    border-radius: 16px;
    cursor: pointer;
    transition: border-color 0.2s, background 0.2s;
    z-index: 1;
}
/* Upload icon + label via ::after */
.elementor-142 .elementor-field-type-upload.elementor-field-group::after {
    content: "\f382  Glisser & deposer les images ici\A ou parcourir les fichiers";
    font-family: "Font Awesome 5 Free", "Font Awesome 5 Pro", "FontAwesome", sans-serif;
    font-weight: 900;
    font-size: 13px;
    color: #6B7162;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    position: absolute;
    top: 50%; left: 50%;
    transform: translate(-50%, -50%);
    pointer-events: none;
    z-index: 2;
    width: calc(100% - 32px);
    white-space: pre;
    line-height: 2;
}
/* Hover state */
.elementor-142 .elementor-field-type-upload.elementor-field-group:hover::before {
    border-color: #8C9A5B;
    background: #f9faf5;
}
/* Drag-over class added by JS */
.elementor-142 .elementor-field-type-upload.elementor-field-group.bc-dragover::before {
    border-color: #8C9A5B !important;
    background: #f0f3e8 !important;
}
/* File count badge */
.elementor-142 .elementor-field-type-upload .bc-file-count {
    position: absolute;
    bottom: 8px; left: 50%;
    transform: translateX(-50%);
    font-size: 11px;
    color: #8C9A5B;
    font-weight: 600;
    z-index: 4;
    pointer-events: none;
    background: rgba(255,255,255,0.9);
    padding: 2px 8px;
    border-radius: 99px;
    white-space: nowrap;
}

/* ==== END LOT 12A ==== */





/* ==== LOT 11B — sec80 wrap fix + footer layout ==== */
/* sec80wrap : transparent + no horizontal padding pour carousel full-width */
.elementor-142 .elementor-element.elementor-element-sec80wrap {
    background: transparent !important;
    background-color: transparent !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}
/* sec80grid : full-width — override LOT 6Y `html body .elementor .elementor-element-sec80grid.bc-pr-swiper`
   qui impose max-width:1200px + margin:0 auto. Spécificité (0,6,2) pour battre (0,5,2). */
html body .elementor.elementor-142 .elementor-element-sec80grid.bc-pr-swiper {
    margin-left: 0 !important;
    margin-right: 0 !important;
    max-width: 100% !important;
    width: 100% !important;
}
/* All cards same height — Swiper sets per-slide height based on content
   (cards 1-3 had 345px, 4-5 had 326px). Force uniform min-height to avoid
   visual jump when navigating to slides 3+. */
html body .elementor.elementor-142 .elementor-element-sec80grid.bc-pr-swiper .swiper-slide {
    min-height: 345px !important;
    align-items: stretch !important;
}
@media (max-width: 767px) {
    html body .elementor.elementor-142 .elementor-element-sec80grid.bc-pr-swiper .swiper-slide {
        min-height: 380px !important;
    }
}
/* Espacement boutons "Nettoyer ma façade" géré par widget Spacer Elementor
   inséré avant chaque CTA (sec55, sec57) — éditable via UI Advanced > Spacer.
   Ne PAS forcer margin via Kit CSS pour rester éditable. */
/* Footer carousel : btn LEFT + nav RIGHT (override LOT 10A center) */
.elementor-142 .bc-pr-nav {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    width: 100% !important;
    gap: 16px !important;
    margin-top: 32px !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}
/* Btn "Devis Gratuit" : primary plein vert (Figma) — override outline ghost */
.elementor-142 .bc-pr-nav .bc-pr-cta {
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
    background: #8C9A5B !important;
    color: #FFFFFF !important;
    border: 1px solid #8C9A5B !important;
    border-radius: 100px !important;
    padding: 14px 28px !important;
    font-family: 'Outfit', sans-serif !important;
    font-size: 15px !important;
    font-weight: 600 !important;
    line-height: 1 !important;
    text-decoration: none !important;
    transition: background-color .2s, color .2s;
}
.elementor-142 .bc-pr-nav .bc-pr-cta:hover {
    background: #7A8650 !important;
    color: #FFFFFF !important;
}
.elementor-142 .bc-pr-nav .bc-pr-cta svg {
    transform: rotate(-45deg);
    stroke: currentColor !important;
}
/* Right group : prev/counter/next stays inline on the right */
.elementor-142 .bc-pr-nav .bc-pr-right {
    display: inline-flex !important;
    align-items: center !important;
    gap: 12px !important;
}
/* Counter + arrows : white tone on dark bg */
.elementor-142 .bc-pr-nav .bc-pr-counter {
    color: #FFFFFF !important;
    font-family: 'Inter', sans-serif !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    letter-spacing: 1px !important;
    min-width: 50px !important;
    text-align: center !important;
}
.elementor-142 .bc-pr-nav .bc-pr-prev,
.elementor-142 .bc-pr-nav .bc-pr-next {
    width: 36px !important;
    height: 36px !important;
    border-radius: 50% !important;
    border: 1.5px solid rgba(255,255,255,0.5) !important;
    background: transparent !important;
    color: #FFFFFF !important;
    cursor: pointer !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
}
.elementor-142 .bc-pr-nav .bc-pr-prev:hover,
.elementor-142 .bc-pr-nav .bc-pr-next:hover {
    background: rgba(255,255,255,0.12) !important;
    border-color: #FFFFFF !important;
}
/* Mobile : stack btn above nav */
@media (max-width: 600px) {
    .elementor-142 .bc-pr-nav {
        flex-direction: column !important;
        gap: 16px !important;
    }
}
/* ==== END LOT 11B ==== */

/* ==== LOT 11C — Footer chiffres icon wrappers : cercle parfait ==== */
/* Elementor setting `width: 50px` on container generates `--width: 50px` CSS var
   but doesn't actually apply `width: 50px`. Force it explicitly. */
.elementor-23 .elementor-element.elementor-element-ftrCh1IcW,
.elementor-23 .elementor-element.elementor-element-ftrCh2IcW,
.elementor-23 .elementor-element.elementor-element-ftrCh3IcW,
.elementor-23 .elementor-element.elementor-element-ftrCh4IcW {
    width: 50px !important;
    height: 50px !important;
    min-width: 50px !important;
    flex: 0 0 50px !important;
    aspect-ratio: 1 / 1;
}
/* ==== END LOT MST-SEC80-MIRROR ==== */

/* ==== LOT MST-SEC25-55 FIXES ==== */
/* ===== sec25 — Une méthode adaptée ===== */
/* Card icon-on-LEFT layout */
.elementor-142 .elementor-element[class*="elementor-element-sec25c"] > .e-con-inner {
  flex-direction: row !important;
  align-items: flex-start !important;
  gap: 16px !important;
}
/* Check icon as small dark green circle */
.elementor-142 .elementor-element[class*="elementor-element-sec25c"] .elementor-widget-image:first-child {
  width: 32px !important;
  height: 32px !important;
  flex: 0 0 32px !important;
  background: #58693A !important;
  border-radius: 999px !important;
  padding: 7px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}
.elementor-142 .elementor-element[class*="elementor-element-sec25c"] .elementor-widget-image:first-child img {
  filter: brightness(0) invert(1) !important;
  width: 18px !important;
  height: 18px !important;
}
/* Title + desc grouped beside icon */
.elementor-142 .elementor-element[class*="elementor-element-sec25c"] > .e-con-inner > .elementor-widget-heading,
.elementor-142 .elementor-element[class*="elementor-element-sec25c"] > .e-con-inner > .elementor-widget-text-editor {
  flex: 1 1 auto !important;
}
/* Card titles dark */
html body .elementor.elementor-142 .elementor-element.elementor-element-sec25c1t .elementor-heading-title,
html body .elementor.elementor-142 .elementor-element.elementor-element-sec25c2t .elementor-heading-title,
html body .elementor.elementor-142 .elementor-element.elementor-element-sec25c3t .elementor-heading-title {
  color: #1A2012 !important;
  margin: 0 !important;
  font-size: 18px !important;
}





/* Card titles bold dark on sec55 */
html body .elementor.elementor-142 [class*="elementor-element-sec55c"] .elementor-widget-heading h3 {
  color: #1A2012 !important;
  font-weight: 700 !important;
  font-size: 18px !important;
}

/* ===== sec25 RÉSULTAT card v2: hand INSIDE card, flex-row ===== */
.elementor-142 .elementor-element.elementor-element-sec25rs_card {
  position: relative !important;
  overflow: hidden !important;
  padding-right: 0 !important;
  display: flex !important;
}
.elementor-142 .elementor-element.elementor-element-sec25rs_card > .e-con-inner {
  flex-direction: row !important;
  align-items: flex-start !important;
  width: 100% !important;
}
/* Stars + heading + desc on LEFT (~55%) */
.elementor-142 .elementor-element.elementor-element-sec25rs_stars,
.elementor-142 .elementor-element.elementor-element-sec25rs_title,
.elementor-142 .elementor-element.elementor-element-sec25rs_desc {
  flex: 0 0 auto !important;
  width: 60% !important;
  max-width: 60% !important;
}
/* Stars compact */
.elementor-142 .elementor-element.elementor-element-sec25rs_stars img {
  width: 96px !important;
  height: auto !important;
  display: block !important;
}
/* Gant image RIGHT (~45%), fits height */
.elementor-142 .elementor-element.elementor-element-sec25rs_gant {
  position: absolute !important;
  right: 0 !important;
  top: 0 !important;
  bottom: 0 !important;
  width: 45% !important;
  height: 100% !important;
  z-index: 1 !important;
}
.elementor-142 .elementor-element.elementor-element-sec25rs_gant img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: bottom right !important;
}

/* ===== sec25 RÉSULTAT card v3 ===== */
.elementor-142 .elementor-element.elementor-element-sec25rs_card {
  position: relative !important;
  overflow: hidden !important;
  padding-right: 32px !important;
  }
/* Content (stars + heading + desc) takes ~55% width on LEFT */
.elementor-142 .elementor-element.elementor-element-sec25rs_stars,
.elementor-142 .elementor-element.elementor-element-sec25rs_title,
.elementor-142 .elementor-element.elementor-element-sec25rs_desc {
  width: 55% !important;
  position: relative !important;
  z-index: 2 !important;
}
.elementor-142 .elementor-element.elementor-element-sec25rs_stars img {
  width: 96px !important;
  height: auto !important;
}
.elementor-142 .elementor-element.elementor-element-sec25rs_title .elementor-heading-title {
  font-size: 22px !important;
  color: #8C9A5B !important;
  font-weight: 700 !important;
  margin: 0 !important;
}
.elementor-142 .elementor-element.elementor-element-sec25rs_desc p {
  color: #5d6357 !important;
  margin: 0 !important;
}
/* Gant image absolute on RIGHT half of card (~45%) */
.elementor-142 .elementor-element.elementor-element-sec25rs_gant {
  position: absolute !important;
  right: 0 !important;
  top: 0 !important;
  bottom: 0 !important;
  width: 45% !important;
  height: 100% !important;
  z-index: 1 !important;
  margin: 0 !important;
  padding: 0 !important;
}
.elementor-142 .elementor-element.elementor-element-sec25rs_gant > .elementor-widget-container,
.elementor-142 .elementor-element.elementor-element-sec25rs_gant img {
  width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}
.elementor-142 .elementor-element.elementor-element-sec25rs_gant img {
  object-fit: contain !important;
  object-position: bottom right !important;
}
/* ==== END LOT MST-SEC25-55 FIXES ==== */

/* RÉSULTAT card v4 - force column layout for content */
html body .elementor.elementor-142 .elementor-element.elementor-element-sec25rs_card > .e-con-inner {
  flex-direction: column !important;
  align-items: flex-start !important;
  gap: 16px !important;
  position: relative !important;
}
html body .elementor.elementor-142 .elementor-element.elementor-element-sec25rs_title .elementor-heading-title {
  font-size: 22px !important;
  color: #8C9A5B !important;
  font-weight: 700 !important;
  text-align: left !important;
  margin: 0 !important;
  display: block !important;
}
html body .elementor.elementor-142 .elementor-element.elementor-element-sec25rs_desc {
  display: block !important;
}
html body .elementor.elementor-142 .elementor-element.elementor-element-sec25rs_desc .elementor-widget-container {
  color: #5d6357 !important;
}

/* sec25 cards: Grid layout - icon LEFT, title+desc RIGHT (no .e-con-inner) */
html body .elementor.elementor-142 .elementor-element.elementor-element-sec25c1,
html body .elementor.elementor-142 .elementor-element.elementor-element-sec25c2,
html body .elementor.elementor-142 .elementor-element.elementor-element-sec25c3 {
  display: grid !important;
  grid-template-columns: 32px 1fr !important;
  grid-template-rows: auto auto !important;
  column-gap: 16px !important;
  row-gap: 8px !important;
  align-items: start !important;
}
/* Icon image: col 1, spans both rows, top-aligned */
html body .elementor.elementor-142 .elementor-element.elementor-element-sec25c1 > .elementor-widget-image,
html body .elementor.elementor-142 .elementor-element.elementor-element-sec25c2 > .elementor-widget-image,
html body .elementor.elementor-142 .elementor-element.elementor-element-sec25c3 > .elementor-widget-image {
  grid-column: 1 !important;
  grid-row: 1 / span 2 !important;
  width: 32px !important;
  height: 32px !important;
  align-self: flex-start !important;
}
/* Heading: col 2 row 1 */
html body .elementor.elementor-142 .elementor-element.elementor-element-sec25c1 > .elementor-widget-heading,
html body .elementor.elementor-142 .elementor-element.elementor-element-sec25c2 > .elementor-widget-heading,
html body .elementor.elementor-142 .elementor-element.elementor-element-sec25c3 > .elementor-widget-heading {
  grid-column: 2 !important;
  grid-row: 1 !important;
}
/* Desc: col 2 row 2 */
html body .elementor.elementor-142 .elementor-element.elementor-element-sec25c1 > .elementor-widget-text-editor,
html body .elementor.elementor-142 .elementor-element.elementor-element-sec25c2 > .elementor-widget-text-editor,
html body .elementor.elementor-142 .elementor-element.elementor-element-sec25c3 > .elementor-widget-text-editor {
  grid-column: 2 !important;
  grid-row: 2 !important;
}

/* RÉSULTAT card stretch full height of left col */
html body .elementor.elementor-142 .elementor-element.elementor-element-sec25grid {
  align-items: stretch !important;
}
html body .elementor.elementor-142 .elementor-element.elementor-element-sec25grid > .e-con-inner {
  align-items: stretch !important;
}
html body .elementor.elementor-142 .elementor-element.elementor-element-sec25grid_right {
  display: flex !important;
  align-self: stretch !important;
  height: auto !important;
}
html body .elementor.elementor-142 .elementor-element.elementor-element-sec25rs_card {
  flex: 1 1 auto !important;
  min-height: 0 !important;
  height: auto !important;
  align-self: stretch !important;
}

/* sec55 cards (start with card 1, all cards same) - image full-width edge-to-edge top + btn full-width */

/* Body container: padding inside */

/* Button full-width */
html body .elementor.elementor-142 [class*="elementor-element-sec55c"] .elementor-widget-button {
  width: 100% !important;
}
html body .elementor.elementor-142 [class*="elementor-element-sec55c"] .elementor-widget-button .elementor-button-wrapper {
  width: 100% !important;
}
html body .elementor.elementor-142 [class*="elementor-element-sec55c"] .elementor-button {
  width: 100% !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 14px 20px !important;
  border-radius: 999px !important;
  font-size: 15px !important;
}

/* sec55 buttons: force 100% width with high specificity */
html body .elementor.elementor-142 [class*="elementor-element-sec55c"] .elementor-button-link,
html body .elementor.elementor-142 [class*="elementor-element-sec55c"] a.elementor-button,
html body .elementor.elementor-142 [class*="elementor-element-sec55c"] .elementor-widget-container .elementor-button-wrapper {
  width: 100% !important;
  display: block !important;
}
html body .elementor.elementor-142 [class*="elementor-element-sec55c"] .elementor-button {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  box-sizing: border-box !important;
}

/* sec55 button widgets: kill internal padding so button takes full container width */
html body .elementor.elementor-142 [class*="elementor-element-sec55c"] > .elementor-widget-button.elementor-element {
  padding: 0 !important;
}

/* sec55 button widgets: kill internal padding (descendant, not direct child) */
html body .elementor.elementor-142 [class*="elementor-element-sec55c"] .elementor-widget-button.elementor-element {
  padding: 0 !important;
}
html body .elementor.elementor-142 .elementor-element[class*="elementor-element-sec55c"][class*="cta"] {
  padding: 0 !important;
}

/* sec55 - minimal cosmetic CSS (everything else editable via Elementor UI) */
.elementor-142 .bc-rc-imgwrap img {
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 4 / 3 !important;
  object-fit: cover !important;
  display: block !important;
}
.elementor-142 [class*="elementor-element-sec55c"] .elementor-button .elementor-button-icon {
  margin-left: 8px !important;
}

/* sec55cN body padding 16px (no !important so UI Elementor margin/padding wins) */
.elementor-142 [class*="elementor-element-sec55c"][class*="body"] {
  padding: 16px;
}



/* ==== LOT EAUX-CLEAN-DUP ==== */
html body .elementor:not(.elementor-170) .elementor-element-sec55c1,
html body .elementor:not(.elementor-170) .elementor-element-sec55c2,
html body .elementor:not(.elementor-170) .elementor-element-sec55c3,
html body .elementor:not(.elementor-170) .elementor-element-sec55c4,
html body .elementor:not(.elementor-170) .elementor-element-sec55c5,
html body .elementor:not(.elementor-170) .elementor-element-sec55c6 {
  flex: 0 0 calc((100% - 48px) / 3) !important;
  max-width: calc((100% - 48px) / 3) !important;
  min-width: 0 !important;
}
/* Overflow hidden card pour bords images arrondis */
html body .elementor:not(.elementor-170) .elementor-element-sec55c1,
html body .elementor:not(.elementor-170) .elementor-element-sec55c2,
html body .elementor:not(.elementor-170) .elementor-element-sec55c3,
html body .elementor:not(.elementor-170) .elementor-element-sec55c4,
html body .elementor:not(.elementor-170) .elementor-element-sec55c5,
html body .elementor:not(.elementor-170) .elementor-element-sec55c6 {
  overflow: hidden !important;
}
/* ==== END LOT 6S ==== */

/* ==== LOT 6S3 — sec55 image flush + button compact ==== */
/* Card : padding 0 pour image flush, mais NO margin override (Swiper gere le gap entre slides) */
html body .elementor .elementor-element.bc-rc-card,
html body .elementor:not(.elementor-170) .elementor-element-sec55c1,
html body .elementor:not(.elementor-170) .elementor-element-sec55c2,
html body .elementor:not(.elementor-170) .elementor-element-sec55c3,
html body .elementor:not(.elementor-170) .elementor-element-sec55c4,
html body .elementor:not(.elementor-170) .elementor-element-sec55c5,
html body .elementor:not(.elementor-170) .elementor-element-sec55c6 {
  padding: 0 !important;
  overflow: hidden !important;
  border-radius: 16px !important;
  background: #FFFFFF !important;
}
/* Image wrap : no padding */
html body .elementor .bc-rc-imgwrap,
html body .elementor:not(.elementor-170) .elementor-element-sec55c1imgs,
html body .elementor:not(.elementor-170) .elementor-element-sec55c2imgs,
html body .elementor:not(.elementor-170) .elementor-element-sec55c3imgs,
html body .elementor:not(.elementor-170) .elementor-element-sec55c4imgs,
html body .elementor:not(.elementor-170) .elementor-element-sec55c5imgs,
html body .elementor:not(.elementor-170) .elementor-element-sec55c6imgs {
  padding: 0 !important;
  margin: 0 !important;
  width: 100% !important;
  --padding-top: 0 !important;
  --padding-right: 0 !important;
  --padding-bottom: 0 !important;
  --padding-left: 0 !important;
}
/* ==== END LOT 12I ==== */

/* ==== LOT MST-SEC55 ==== */
/* sec55grid has e-con-inner wrapper holding the cards - apply grid there */
html body .elementor.elementor-170 .elementor-element.elementor-element-sec55grid > .e-con-inner {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 24px !important;
  width: 100% !important;
}

.elementor-170 .bc-rc-imgwrap img {
  width: 100% !important;
  height: 220px !important;
  object-fit: cover !important;
}
.elementor-170 [class*="elementor-element-sec55c"] .elementor-widget-heading h3 {
  margin: 0 !important;
  font-weight: 700 !important;
  font-size: 18px !important;
}
.elementor-170 [class*="elementor-element-sec55c"] .elementor-widget-text-editor p {
  font-size: 14px !important;
  color: #5d6357 !important;
  margin: 0 !important;
}
.elementor-170 [class*="elementor-element-sec55c"] .elementor-button {
  padding: 12px 20px !important;
  font-size: 14px !important;
  border-radius: 999px !important;
}
/* Espacement boutons "Nettoyer ma façade" géré par widget Spacer Elementor
   inséré avant chaque CTA (sec55, sec57) — éditable via UI Advanced > Spacer.
   Ne PAS forcer margin via Kit CSS pour rester éditable. */
/* Footer carousel : btn LEFT + nav RIGHT (override LOT 10A center) */
.elementor-170 .bc-pr-nav {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    width: 100% !important;
    gap: 16px !important;
    margin-top: 32px !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}
/* Card titles bold dark on sec55 */
html body .elementor.elementor-170 [class*="elementor-element-sec55c"] .elementor-widget-heading h3 {
  color: #1A2012 !important;
  font-weight: 700 !important;
  font-size: 18px !important;
}
/* sec55 cards (start with card 1, all cards same) - image full-width edge-to-edge top + btn full-width */

/* Body container: padding inside */

/* Button full-width */
html body .elementor.elementor-170 [class*="elementor-element-sec55c"] .elementor-widget-button {
  width: 100% !important;
}
html body .elementor.elementor-170 [class*="elementor-element-sec55c"] .elementor-widget-button .elementor-button-wrapper {
  width: 100% !important;
}
html body .elementor.elementor-170 [class*="elementor-element-sec55c"] .elementor-button {
  width: 100% !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 14px 20px !important;
  border-radius: 999px !important;
  font-size: 15px !important;
}
/* sec55 buttons: force 100% width with high specificity */
html body .elementor.elementor-170 [class*="elementor-element-sec55c"] .elementor-button-link,
html body .elementor.elementor-170 [class*="elementor-element-sec55c"] a.elementor-button,
html body .elementor.elementor-170 [class*="elementor-element-sec55c"] .elementor-widget-container .elementor-button-wrapper {
  width: 100% !important;
  display: block !important;
}
html body .elementor.elementor-170 [class*="elementor-element-sec55c"] .elementor-button {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  box-sizing: border-box !important;
}
/* sec55 button widgets: kill internal padding so button takes full container width */
html body .elementor.elementor-170 [class*="elementor-element-sec55c"] > .elementor-widget-button.elementor-element {
  padding: 0 !important;
}
/* sec55 button widgets: kill internal padding (descendant, not direct child) */
html body .elementor.elementor-170 [class*="elementor-element-sec55c"] .elementor-widget-button.elementor-element {
  padding: 0 !important;
}
html body .elementor.elementor-170 .elementor-element[class*="elementor-element-sec55c"][class*="cta"] {
  padding: 0 !important;
}
/* sec55 - minimal cosmetic CSS (everything else editable via Elementor UI) */
.elementor-170 .bc-rc-imgwrap img {
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 4 / 3 !important;
  object-fit: cover !important;
  display: block !important;
}
.elementor-170 [class*="elementor-element-sec55c"] .elementor-button .elementor-button-icon {
  margin-left: 8px !important;
}
/* sec55cN body padding 16px (no !important so UI Elementor margin/padding wins) */
.elementor-170 [class*="elementor-element-sec55c"][class*="body"] {
  padding: 16px;
}
html body.page .elementor-170 .elementor-element.elementor-element-sec40011 .elementor-icon-box-icon .elementor-icon {
  background-image: url("/elementor-templates/assets/icons/icon-method-01.svg") !important;
  background-color: transparent !important;
  background-size: contain !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  width: 72px !important;
  height: 72px !important;
  border: 0 !important;
  padding: 0 !important;
}
html body.page .elementor-170 .elementor-element.elementor-element-sec40012 .elementor-icon-box-icon .elementor-icon {
  background-image: url("/elementor-templates/assets/icons/icon-method-02.svg") !important;
  background-color: transparent !important;
  background-size: contain !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  width: 72px !important;
  height: 72px !important;
  border: 0 !important;
  padding: 0 !important;
}
html body.page .elementor-170 .elementor-element.elementor-element-sec40013 .elementor-icon-box-icon .elementor-icon {
  background-image: url("/elementor-templates/assets/icons/icon-method-03.svg") !important;
  background-color: transparent !important;
  background-size: contain !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  width: 72px !important;
  height: 72px !important;
  border: 0 !important;
  padding: 0 !important;
}
html body.page .elementor-170 .elementor-element.elementor-element-sec40014 .elementor-icon-box-icon .elementor-icon {
  background-image: url("/elementor-templates/assets/icons/icon-method-04.svg") !important;
  background-color: transparent !important;
  background-size: contain !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  width: 72px !important;
  height: 72px !important;
  border: 0 !important;
  padding: 0 !important;
}
html body.page .elementor-170 .elementor-element.elementor-element-sec40015 .elementor-icon-box-icon .elementor-icon {
  background-image: url("/elementor-templates/assets/icons/icon-method-05.svg") !important;
  background-color: transparent !important;
  background-size: contain !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  width: 72px !important;
  height: 72px !important;
  border: 0 !important;
  padding: 0 !important;
}
html body.page .elementor-170 .elementor-element.elementor-element-sec40016 .elementor-icon-box-icon .elementor-icon {
  background-image: url("/elementor-templates/assets/icons/icon-star.svg") !important;
  background-color: transparent !important;
  background-size: contain !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  width: 72px !important;
  height: 72px !important;
  border: 0 !important;
  padding: 0 !important;
}

.elementor-170 .elementor-element.elementor-element-sec24000 .bc-fc-pill {
  box-shadow: 0 1px 2px rgba(14,18,9,0.06);
}
.elementor-170 .elementor-element.elementor-element-sec24col_image .elementor-widget-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 24px;
}
@media (max-width: 767px) {
  .elementor-170 .elementor-element.elementor-element-sec24inner {
    flex-direction: column !important;
  }
}

/* ==== END LOT EAUX-CLEAN-DUP ==== */

/* ==== LOT EAUX-PILL-FIX ==== */
.elementor-170 .elementor-element.elementor-element-nfHeroPill{
  width: fit-content !important;
  max-width: fit-content !important;
  align-self: flex-start !important;
  flex-grow: 0 !important;
}
.elementor-170 .elementor-element.elementor-element-nfHeroPill > .e-con-inner{
  width: auto !important;
}
/* ==== END LOT EAUX-PILL-FIX ==== */

/* ==== LOT EAUX-IMG-RADIUS ==== */
/* Force radius 24 + overflow hidden on all p170 image-text section images */
html body .elementor.elementor-170 .elementor-element.elementor-element-sec15img,
html body .elementor.elementor-170 .elementor-element.elementor-element-sec15img .elementor-widget-container,
html body .elementor.elementor-170 .elementor-element.elementor-element-sec15img .elementor-widget-container > a,
html body .elementor.elementor-170 .elementor-element.elementor-element-sec15img img,
html body .elementor.elementor-170 .elementor-element.elementor-element-sec18img img,
html body .elementor.elementor-170 .elementor-element.elementor-element-sec22img img,
html body .elementor.elementor-170 .elementor-element.elementor-element-sec25img img,
html body .elementor.elementor-170 .elementor-element.elementor-element-sec99img img {
  border-radius: 24px !important;
  overflow: hidden !important;
}
/* ==== END LOT EAUX-IMG-RADIUS ==== */

/* ==== LOT SEC22-IMG-FREE ==== */
/* sec22 image: free from forced cover/100% height — let user control via Elementor UI */
html body .elementor.elementor-170 .elementor-element.elementor-element-sec22img,
html body .elementor.elementor-170 .elementor-element.elementor-element-sec22img .elementor-widget-container {
  height: auto !important;
}
html body .elementor.elementor-170 .elementor-element.elementor-element-sec22img img {
  height: auto !important;
  width: auto !important;
  max-width: 100%;
  object-fit: unset !important;
}
/* ==== END LOT SEC22-IMG-FREE ==== */

/* ==== LOT EAUX-NEW ==== */

/* sec22 DirtBox bullets/badge */
.elementor-170 .elementor-element.elementor-element-sec22000 .bc-dx-bullet {
  box-shadow: 0 1px 2px rgba(14,18,9,0.06);
}
.elementor-170 .elementor-element.elementor-element-sec22000 .bc-dx-bullet-on .elementor-icon i {
  color: #8C9A5B !important;
}
.elementor-170 .elementor-element.elementor-element-sec22000 .bc-dx-bullet .elementor-icon i {
  color: #9aa593;
}
.elementor-170 .elementor-element.elementor-element-sec22000 .bc-dx-badge .elementor-widget-image img {
  width: 28px;
  height: 28px;
}

/* sec88 Respect normes - cards */
.elementor-170 .elementor-element.elementor-element-sec88000 .bc-norms-card {
  align-self: stretch;
}
.elementor-170 .elementor-element.elementor-element-sec88000 .bc-norms-icon-wrap {
  border: 1px solid #E8EADF;
}
.elementor-170 .elementor-element.elementor-element-sec88000 .bc-norms-icon-img img {
  width: 28px;
  height: 28px;
}

/* sec92 Ce qui nous définit - cards */
.elementor-170 .elementor-element.elementor-element-sec92000 .bc-define-card {
  align-self: stretch;
}
.elementor-170 .elementor-element.elementor-element-sec92000 .bc-define-icon img {
  width: 28px;
  height: 28px;
}
.elementor-170 .elementor-element.elementor-element-sec92000 .bc-define-card-dark .bc-define-title .elementor-heading-title {
  color: #FFFFFF !important;
}

/* ==== END LOT EAUX-NEW ==== */

/* ==== LOT SEC80-TIMELINE ==== */

/* sec80 dark bg */
.elementor-170 .elementor-element.elementor-element-sec80000 {
  background-color: #2F3320 !important;
}

/* Timeline row layout */
.elementor-170 .elementor-element.elementor-element-sec80timeline {
  position: relative;
  align-items: flex-start !important;
}

/* Dashed gold line connecting the 4 circles (top of circles ~ y=20) */
.elementor-170 .elementor-element.elementor-element-sec80timeline::before {
  content: '';
  position: absolute;
  top: 40px;
  left: 12.5%;
  right: 12.5%;
  height: 0;
  border-top: 1px dashed rgba(200, 171, 59, 0.45);
  z-index: 0;
  pointer-events: none;
}
@media (max-width: 767px) {
  .elementor-170 .elementor-element.elementor-element-sec80timeline::before { display: none; }
}

/* Each step container */
.elementor-170 .elementor-element.elementor-element-sec80s1,
.elementor-170 .elementor-element.elementor-element-sec80s2,
.elementor-170 .elementor-element.elementor-element-sec80s3,
.elementor-170 .elementor-element.elementor-element-sec80s4 {
  position: relative;
  z-index: 1;
}

/* Highlighted step 4 */
.elementor-170 .elementor-element.elementor-element-sec80s4 {
  background-color: rgba(58, 64, 40, 0.55) !important;
  border: 1px solid rgba(200, 171, 59, 0.4) !important;
  border-radius: 16px !important;
}

/* Numbered/sparkle circles */
.elementor-170 .elementor-element.elementor-element-sec80s1_circle,
.elementor-170 .elementor-element.elementor-element-sec80s2_circle,
.elementor-170 .elementor-element.elementor-element-sec80s3_circle,
.elementor-170 .elementor-element.elementor-element-sec80s4_circle {
  flex: 0 0 40px !important;
  width: 40px !important;
  min-height: 40px !important;
  height: 40px !important;
  background-color: #C8AB3B !important;
  border: none !important;
  border-radius: 999px !important;
  z-index: 2;
}
.elementor-170 .elementor-element.elementor-element-sec80s1_n .elementor-heading-title,
.elementor-170 .elementor-element.elementor-element-sec80s2_n .elementor-heading-title,
.elementor-170 .elementor-element.elementor-element-sec80s3_n .elementor-heading-title,
.elementor-170 .elementor-element.elementor-element-sec80s4_n .elementor-heading-title {
  margin: 0 !important;
  line-height: 40px !important;
  color: #1D2513 !important;
  font-weight: 700 !important;
}

/* Sparkle icon for step 4 */
.elementor-170 .elementor-element.elementor-element-sec80s4_circle {
  background-color: #C8AB3B !important;
}
.elementor-170 .elementor-element.elementor-element-sec80s4_n .elementor-icon i {
  color: #1D2513 !important;
  font-size: 16px !important;
}

/* Titles white */
.elementor-170 .elementor-element.elementor-element-sec80s1_t .elementor-heading-title,
.elementor-170 .elementor-element.elementor-element-sec80s2_t .elementor-heading-title,
.elementor-170 .elementor-element.elementor-element-sec80s3_t .elementor-heading-title,
.elementor-170 .elementor-element.elementor-element-sec80s4_t .elementor-heading-title {
  color: #FFFFFF !important;
}

/* Kicker gold on dark */
.elementor-170 .elementor-element.elementor-element-sec80kicker .elementor-heading-title {
  color: #C8AB3B !important;
}

/* ==== END LOT SEC80-TIMELINE ==== */

/* ==== LOT SEC80-WIDTH-FIX ==== */
.elementor-170 .elementor-element.elementor-element-sec80s1,
.elementor-170 .elementor-element.elementor-element-sec80s2,
.elementor-170 .elementor-element.elementor-element-sec80s3,
.elementor-170 .elementor-element.elementor-element-sec80s4 {
  width: 25% !important;
  flex: 0 0 25% !important;
  max-width: 25% !important;
}
@media (max-width: 767px) {
  .elementor-170 .elementor-element.elementor-element-sec80s1,
  .elementor-170 .elementor-element.elementor-element-sec80s2,
  .elementor-170 .elementor-element.elementor-element-sec80s3,
  .elementor-170 .elementor-element.elementor-element-sec80s4 {
    width: 100% !important;
    flex: 0 0 100% !important;
    max-width: 100% !important;
  }
}
/* ==== END LOT SEC80-WIDTH-FIX ==== */

/* ==== LOT SEC80-S4-ICON ==== */
.elementor-170 .elementor-element.elementor-element-sec80s4_n .elementor-icon {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  width: 18px !important;
  height: 18px !important;
}
.elementor-170 .elementor-element.elementor-element-sec80s4_n .elementor-icon svg {
  width: 18px !important;
  height: 18px !important;
  fill: #1D2513 !important;
}
.elementor-170 .elementor-element.elementor-element-sec80s4_n .elementor-icon i {
  color: #1D2513 !important;
  font-size: 18px !important;
}
/* ==== END LOT SEC80-S4-ICON ==== */

/* ==== LOT SEC80-SPAN-GOLD ==== */
html body .elementor.elementor-170 .elementor-element.elementor-element-sec80title .elementor-heading-title span {
  color: #C8AB3B !important;
}
/* ==== END LOT SEC80-SPAN-GOLD ==== */

/* ==== LOT SEC55-CAROUSEL-FIX ==== */
/* ==== END LOT SEC55-CAROUSEL-FIX ==== */



/* ==== LOT P176-APROPOS ==== */
/* Overflow hidden card pour bords images arrondis */
/* ==== END LOT 6S ==== */

/* ==== LOT 6S3 — sec55 image flush + button compact ==== */
/* Card : padding 0 pour image flush, mais NO margin override (Swiper gere le gap entre slides) */
html body .elementor .elementor-element.bc-rc-card,
/* Image wrap : no padding */
html body .elementor .bc-rc-imgwrap,
html body .elementor:not(.elementor-176):not(.elementor-170) .elementor-element-sec55c1imgs,
html body .elementor:not(.elementor-176):not(.elementor-170) .elementor-element-sec55c2imgs,
html body .elementor:not(.elementor-176):not(.elementor-170) .elementor-element-sec55c3imgs,
html body .elementor:not(.elementor-176):not(.elementor-170) .elementor-element-sec55c4imgs,
html body .elementor:not(.elementor-176):not(.elementor-170) .elementor-element-sec55c5imgs,
html body .elementor:not(.elementor-176):not(.elementor-170) .elementor-element-sec55c6imgs {
  padding: 0 !important;
  margin: 0 !important;
  width: 100% !important;
  --padding-top: 0 !important;
  --padding-right: 0 !important;
  --padding-bottom: 0 !important;
  --padding-left: 0 !important;
}
/* ==== END LOT 12I ==== */

/* ==== LOT MST-SEC55 ==== */
/* sec55grid has e-con-inner wrapper holding the cards - apply grid there */
html body .elementor.elementor-176 .elementor-element.elementor-element-sec55grid > .e-con-inner {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 24px !important;
  width: 100% !important;
}
html body .elementor.elementor-176 .elementor-element.elementor-element-sec55c1,
html body .elementor.elementor-176 .elementor-element.elementor-element-sec55c2,
html body .elementor.elementor-176 .elementor-element.elementor-element-sec55c3,
html body .elementor.elementor-176 .elementor-element.elementor-element-sec55c4,
html body .elementor.elementor-176 .elementor-element.elementor-element-sec55c5,
html body .elementor.elementor-176 .elementor-element.elementor-element-sec55c6 {
  flex: none !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  height: auto !important;
}
.elementor-176 .bc-rc-imgwrap img {
  width: 100% !important;
  height: 220px !important;
  object-fit: cover !important;
}
.elementor-176 [class*="elementor-element-sec55c"] .elementor-widget-heading h3 {
  margin: 0 !important;
  font-weight: 700 !important;
  font-size: 18px !important;
}
.elementor-176 [class*="elementor-element-sec55c"] .elementor-widget-text-editor p {
  font-size: 14px !important;
  color: #5d6357 !important;
  margin: 0 !important;
}
.elementor-176 [class*="elementor-element-sec55c"] .elementor-button {
  padding: 12px 20px !important;
  font-size: 14px !important;
  border-radius: 999px !important;
}
/* Espacement boutons "Nettoyer ma façade" géré par widget Spacer Elementor
   inséré avant chaque CTA (sec55, sec57) — éditable via UI Advanced > Spacer.
   Ne PAS forcer margin via Kit CSS pour rester éditable. */
/* Footer carousel : btn LEFT + nav RIGHT (override LOT 10A center) */
.elementor-176 .bc-pr-nav {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    width: 100% !important;
    gap: 16px !important;
    margin-top: 32px !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}
/* Card titles bold dark on sec55 */
html body .elementor.elementor-176 [class*="elementor-element-sec55c"] .elementor-widget-heading h3 {
  color: #1A2012 !important;
  font-weight: 700 !important;
  font-size: 18px !important;
}
/* sec55 cards (start with card 1, all cards same) - image full-width edge-to-edge top + btn full-width */

/* Body container: padding inside */

/* Button full-width */
html body .elementor.elementor-176 [class*="elementor-element-sec55c"] .elementor-widget-button {
  width: 100% !important;
}
html body .elementor.elementor-176 [class*="elementor-element-sec55c"] .elementor-widget-button .elementor-button-wrapper {
  width: 100% !important;
}
html body .elementor.elementor-176 [class*="elementor-element-sec55c"] .elementor-button {
  width: 100% !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 14px 20px !important;
  border-radius: 999px !important;
  font-size: 15px !important;
}
/* sec55 buttons: force 100% width with high specificity */
html body .elementor.elementor-176 [class*="elementor-element-sec55c"] .elementor-button-link,
html body .elementor.elementor-176 [class*="elementor-element-sec55c"] a.elementor-button,
html body .elementor.elementor-176 [class*="elementor-element-sec55c"] .elementor-widget-container .elementor-button-wrapper {
  width: 100% !important;
  display: block !important;
}
html body .elementor.elementor-176 [class*="elementor-element-sec55c"] .elementor-button {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  box-sizing: border-box !important;
}
/* sec55 button widgets: kill internal padding so button takes full container width */
html body .elementor.elementor-176 [class*="elementor-element-sec55c"] > .elementor-widget-button.elementor-element {
  padding: 0 !important;
}
/* sec55 button widgets: kill internal padding (descendant, not direct child) */
html body .elementor.elementor-176 [class*="elementor-element-sec55c"] .elementor-widget-button.elementor-element {
  padding: 0 !important;
}
html body .elementor.elementor-176 .elementor-element[class*="elementor-element-sec55c"][class*="cta"] {
  padding: 0 !important;
}
/* sec55 - minimal cosmetic CSS (everything else editable via Elementor UI) */
.elementor-176 .bc-rc-imgwrap img {
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 4 / 3 !important;
  object-fit: cover !important;
  display: block !important;
}
.elementor-176 [class*="elementor-element-sec55c"] .elementor-button .elementor-button-icon {
  margin-left: 8px !important;
}
/* sec55cN body padding 16px (no !important so UI Elementor margin/padding wins) */
.elementor-176 [class*="elementor-element-sec55c"][class*="body"] {
  padding: 16px;
}
html body.page .elementor-176 .elementor-element.elementor-element-sec40011 .elementor-icon-box-icon .elementor-icon {
  background-image: url("/elementor-templates/assets/icons/icon-method-01.svg") !important;
  background-color: transparent !important;
  background-size: contain !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  width: 72px !important;
  height: 72px !important;
  border: 0 !important;
  padding: 0 !important;
}
html body.page .elementor-176 .elementor-element.elementor-element-sec40012 .elementor-icon-box-icon .elementor-icon {
  background-image: url("/elementor-templates/assets/icons/icon-method-02.svg") !important;
  background-color: transparent !important;
  background-size: contain !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  width: 72px !important;
  height: 72px !important;
  border: 0 !important;
  padding: 0 !important;
}
html body.page .elementor-176 .elementor-element.elementor-element-sec40013 .elementor-icon-box-icon .elementor-icon {
  background-image: url("/elementor-templates/assets/icons/icon-method-03.svg") !important;
  background-color: transparent !important;
  background-size: contain !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  width: 72px !important;
  height: 72px !important;
  border: 0 !important;
  padding: 0 !important;
}
html body.page .elementor-176 .elementor-element.elementor-element-sec40014 .elementor-icon-box-icon .elementor-icon {
  background-image: url("/elementor-templates/assets/icons/icon-method-04.svg") !important;
  background-color: transparent !important;
  background-size: contain !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  width: 72px !important;
  height: 72px !important;
  border: 0 !important;
  padding: 0 !important;
}
html body.page .elementor-176 .elementor-element.elementor-element-sec40015 .elementor-icon-box-icon .elementor-icon {
  background-image: url("/elementor-templates/assets/icons/icon-method-05.svg") !important;
  background-color: transparent !important;
  background-size: contain !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  width: 72px !important;
  height: 72px !important;
  border: 0 !important;
  padding: 0 !important;
}
html body.page .elementor-176 .elementor-element.elementor-element-sec40016 .elementor-icon-box-icon .elementor-icon {
  background-image: url("/elementor-templates/assets/icons/icon-star.svg") !important;
  background-color: transparent !important;
  background-size: contain !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  width: 72px !important;
  height: 72px !important;
  border: 0 !important;
  padding: 0 !important;
}

/* sec26 image */
.elementor-176 .elementor-element.elementor-element-sec26000 .bc-fc-image img {
  border-radius: 24px !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
}

/* secCH chiffres - dividers between cells */
.elementor-176 .elementor-element.elementor-element-secCH000 {
  background-color: #2F3320 !important;
}
.elementor-176 .elementor-element.elementor-element-secCHc1,
.elementor-176 .elementor-element.elementor-element-secCHc2,
.elementor-176 .elementor-element.elementor-element-secCHc3 {
  border-right: 1px solid rgba(213, 216, 200, 0.15) !important;
}
.elementor-176 .elementor-element.elementor-element-secCHc1 .elementor-icon img,
.elementor-176 .elementor-element.elementor-element-secCHc2 .elementor-icon img,
.elementor-176 .elementor-element.elementor-element-secCHc3 .elementor-icon img,
.elementor-176 .elementor-element.elementor-element-secCHc4 .elementor-icon img {
  width: 22px;
  height: 22px;
}
.elementor-176 .elementor-element.elementor-element-secCHkicker .elementor-heading-title {
  color: #C8AB3B !important;
}
.elementor-176 .elementor-element.elementor-element-secCHtitle .elementor-heading-title {
  color: #FFFFFF !important;
}
@media (max-width: 767px) {
  .elementor-176 .elementor-element.elementor-element-secCHc1,
  .elementor-176 .elementor-element.elementor-element-secCHc2,
  .elementor-176 .elementor-element.elementor-element-secCHc3 {
    border-right: none !important;
    border-bottom: 1px solid rgba(213, 216, 200, 0.15) !important;
  }
}

/* sec70 — composite image cards with overlaid pills */
.elementor-176 .elementor-element.elementor-element-sec70card1,
.elementor-176 .elementor-element.elementor-element-sec70card2 {
  position: relative;
  overflow: hidden;
}
.elementor-176 .elementor-element.elementor-element-sec70card1_pill,
.elementor-176 .elementor-element.elementor-element-sec70card2_pill {
  box-shadow: 0 2px 8px rgba(14,18,9,0.12);
}

/* Stronger override against Elementor lazy-load BG removal */
html body .elementor.elementor-176 .elementor-element.elementor-element-sec70card1.e-con.e-child.e-flex,
html body .elementor.elementor-176 .elementor-element.elementor-element-sec70card2.e-con.e-child.e-flex {
  background-image: var(--background-overlay), inherit !important;
}

/* ==== END LOT P176-APROPOS ==== */

/* ==== LOT APROPOS-FULL - figma fidelity p176 ==== */
/* ===== nfHero restructure — image LEFT card + content RIGHT, sage bg ===== */
.elementor-176 .elementor-element.elementor-element-nfHero{
    background-color: #E8EADF !important;
    background-image: none !important;
    min-height: 0 !important;
}
.elementor-176 .elementor-element.elementor-element-nfHeroBox{
    flex-direction: row !important;
    align-items: stretch !important;
    gap: 48px;
    background: transparent !important;
    background-image: none !important;
    border-radius: 0 !important;
    padding: 32px 0;
    box-shadow: none !important;
    max-width: 1440px;
    margin-left: auto;
    margin-right: auto;
}
.elementor-176 .elementor-element.elementor-element-nfHeroImg{
    flex: 1 1 50% !important;
    width: 50% !important;
    max-width: 50%;
}
.elementor-176 .elementor-element.elementor-element-nfHeroImg img{
    width: 100% !important;
    height: 100% !important;
    object-fit: cover;
    border-radius: 24px;
    aspect-ratio: 4 / 5;
    display: block;
}
.elementor-176 .elementor-element.elementor-element-nfHeroCard{
    background: transparent !important;
    background-color: transparent !important;
    border-radius: 0 !important;
    padding: 0;
    box-shadow: none !important;
    width: 50% !important;
    flex: 1 1 50% !important;
    max-width: 50%;
    align-self: center;
}
@media (max-width: 767px) {
    .elementor-176 .elementor-element.elementor-element-nfHeroBox{
        flex-direction: column !important;
        gap: 24px;
        padding: 16px;
    }
    .elementor-176 .elementor-element.elementor-element-nfHeroImg,
    .elementor-176 .elementor-element.elementor-element-nfHeroCard{
        width: 100% !important;
        max-width: 100% !important;
        flex: 1 1 100% !important;
    }
}

/* ===== sec27 header centered (kicker + title + sub) ===== */
.elementor-176 .elementor-element.elementor-element-sec27kick,
.elementor-176 .elementor-element.elementor-element-sec27title,
.elementor-176 .elementor-element.elementor-element-sec27sub {
    text-align: center !important;
}
.elementor-176 .elementor-element.elementor-element-sec27sub .elementor-widget-container {
    max-width: 720px;
    margin-left: auto;
    margin-right: auto;
}

/* ===== sec55 carousel — Figma : 2 slides per view, cards with 1 image each (current OK) ===== */
/* sec25 statbox — responsive mobile + visual polish */
.elementor-176 .elementor-element.elementor-element-sec25statbox {
    background: #FFFFFF !important;
    border-radius: 16px !important;
}
/* Number "1,500 +" : nowrap + width auto (override widget=130px) */
.elementor-176 .elementor-element.elementor-element-sec25stbox_l {
    width: auto !important;
    flex: 0 0 auto !important;
    min-width: 130px;
}
.elementor-176 .elementor-element.elementor-element-sec25stnum .elementor-heading-title {
    white-space: nowrap;
}
.elementor-176 .elementor-element.elementor-element-sec25stlbl .elementor-heading-title {
    white-space: nowrap;
}
.elementor-176 .elementor-element.elementor-element-sec25stbox_r {
    flex: 1 1 auto;
}
@media (max-width: 767px) {
    .elementor-176 .elementor-element.elementor-element-sec25statbox {
        flex-direction: column !important;
        align-items: flex-start !important;
    }
    .elementor-176 .elementor-element.elementor-element-sec25stbox_r {
        border-left: 0 !important;
        padding-left: 0 !important;
        padding-top: 12px !important;
        border-top: 1px solid #E8EADF;
    }
}

/* sec55 hdr : row desktop / column mobile + CTA top-right alignment */
.elementor-176 .elementor-element.elementor-element-sec55hdr {
    flex-direction: row !important;
    align-items: flex-end !important;
    justify-content: space-between !important;
    gap: 24px;
}
.elementor-176 .elementor-element.elementor-element-sec55hl {
    flex: 1 1 auto !important;
    width: auto !important;
}
.elementor-176 .elementor-element.elementor-element-sec55cta_top {
    flex: 0 0 auto !important;
    width: auto !important;
}
/* sec55 CTA arrow : rotate -45deg pour effet ↗ */
.elementor-176 .elementor-element.elementor-element-sec55cta_top .elementor-button .elementor-button-icon i {
    transform: rotate(45deg);
    transition: transform 0.2s ease;
    display: inline-block;
}
@media (max-width: 767px) {
    .elementor-176 .elementor-element.elementor-element-sec55hdr {
        flex-direction: column !important;
        align-items: flex-start !important;
    }
    .elementor-176 .elementor-element.elementor-element-sec55cta_top {
        align-self: flex-start;
    }
}
/* ==== END LOT APROPOS-FULL ==== */



/* ==== LOT APROPOS-HERO-POLISH - figma chunk-1 fidelity ==== */
/* ===== nfHero — image landscape + spacing Figma + full-width sitewide ===== */
.elementor-176 .elementor-element.elementor-element-nfHero{}
.elementor-176 .elementor-element.elementor-element-nfHeroBox{
    gap: 48px;
    padding: 0;
    align-items: center !important;
    max-width: 1440px !important;
    margin-left: auto;
    margin-right: auto;
}
.elementor-176 .elementor-element.elementor-element-nfHeroImg{
    flex: 1 1 50% !important;
    width: 50% !important;
    max-width: 50% !important;
}
.elementor-176 .elementor-element.elementor-element-nfHeroImg img{
    aspect-ratio: 16 / 11 !important;
    max-height: none !important;
    height: auto !important;
    width: 100% !important;
    object-fit: cover !important;
    border-radius: 24px !important;
    display: block !important;
}
.elementor-176 .elementor-element.elementor-element-nfHeroCard{
    flex: 1 1 50% !important;
    width: 50% !important;
    max-width: 50% !important;
    align-self: center !important;
}
/* Pill "Procédure et coûts" — compact (taille naturelle, pas pleine largeur)
   Cible double : ancienne classe + ID actuel du container, pour robustesse
   Le client peut éditer COULEUR/TAILLE du texte via UI : sélectionner heading
   "Procédure et coûts" → onglet Style → Couleur du texte / Typographie. */
.elementor-176 .elementor-element.elementor-element-1bfe221,
.elementor-176 .elementor-element.bc-hero-pill,
.elementor-176 .elementor-element.elementor-element-nfHeroPill{
    width: fit-content !important;
    max-width: fit-content !important;
    align-self: flex-start !important;
    margin-left: 0;
}
.elementor-176 .elementor-element.elementor-element-1bfe221 > .e-con-inner,
.elementor-176 .elementor-element.bc-hero-pill > .e-con-inner,
.elementor-176 .elementor-element.elementor-element-nfHeroPill > .e-con-inner{
    width: auto !important;
    flex: 0 0 auto !important;
}
/* Couleur + taille du label : ÉDITABLE via UI Elementor.
   Valeurs par défaut héritées du widget heading id=868ebeb :
     - color  : #4D5638 (vert foncé) — modifiable via Style → Couleur du texte
     - size   : 13px (taille normale label)            — modifiable via Style → Typographie
   Pas d'override !important ici — le Kit CSS ne force plus la couleur. */
/* Btn primary arrow → rotation diagonale ↗ (Figma) */
.elementor-176 .elementor-element.elementor-element-nfHeroBtn1 .elementor-button-icon svg,
.elementor-176 .elementor-element.elementor-element-nfHeroBtn1 .elementor-button-icon i{
    transform: rotate(-45deg) !important;
    transition: transform 0.2s ease;
}
/* Tablet polish */
@media (max-width: 1024px) and (min-width: 768px) {
    .elementor-176 .elementor-element.elementor-element-nfHero{}
    .elementor-176 .elementor-element.elementor-element-nfHeroBox{
        gap: 32px;
    }
}
/* ===== secCH stat icon circles — VRAI cercle 56×56 outline gold ===== */
.elementor-176 .elementor-element.elementor-element-secCHc1icw,
.elementor-176 .elementor-element.elementor-element-secCHc2icw,
.elementor-176 .elementor-element.elementor-element-secCHc3icw,
.elementor-176 .elementor-element.elementor-element-secCHc4icw {
    width: 56px !important;
    height: 56px !important;
    min-height: 56px !important;
    max-width: 56px !important;
    aspect-ratio: 1 / 1 !important;
    padding: 0 !important;
    flex-shrink: 0 !important;
}
.elementor-176 .elementor-element.elementor-element-secCHc1icw .elementor-widget-image,
.elementor-176 .elementor-element.elementor-element-secCHc2icw .elementor-widget-image,
.elementor-176 .elementor-element.elementor-element-secCHc3icw .elementor-widget-image,
.elementor-176 .elementor-element.elementor-element-secCHc4icw .elementor-widget-image {
    margin: 0 !important;
}
.elementor-176 .elementor-element.elementor-element-secCHc1icw img,
.elementor-176 .elementor-element.elementor-element-secCHc2icw img,
.elementor-176 .elementor-element.elementor-element-secCHc3icw img,
.elementor-176 .elementor-element.elementor-element-secCHc4icw img {
    width: 22px !important;
    height: 22px !important;
    object-fit: contain !important;
}

/* Mobile reset */
@media (max-width: 767px) {
    .elementor-176 .elementor-element.elementor-element-nfHeroBox{
        padding: 16px;
        gap: 24px;
    }
    .elementor-176 .elementor-element.elementor-element-nfHeroImg{
        width: 100% !important;
        max-width: 100% !important;
        flex: 1 1 100% !important;
    }
    .elementor-176 .elementor-element.elementor-element-nfHeroImg img{
        aspect-ratio: 4 / 3 !important;
        max-height: 320px !important;
    }
}
/* ==== END LOT APROPOS-HERO-POLISH ==== */


/* ==== LOT TC-UNIFIED — Témoignages carousel (class-based, page-agnostic) ==== */
/* Architecture portable : tous les .elementor-kit-6s basés sur classes bc-tc-* / bc-testimonial*.
   Marche sur n'importe quelle page (post 24/104/142/170/176/177/178 + futures pages
   qui insèrent le template "Témoignages Carousel"). Plus aucun .elementor-{postId}.
   IMPORTANT : !important seulement sur structure (flex/width/position). Margins/paddings
   sans !important pour permettre overrides via UI Elementor. */

/* ===== Section spacing (head) — défauts éditables UI ===== */
.bc-testimonials {
  --widgets-spacing: 0 0;
  --widgets-spacing-row: 0;
  --widgets-spacing-column: 0;
  --kit-widget-spacing: 0;
}
.bc-tc-kicker p { margin: 0; line-height: 1.2; }
.bc-tc-title-h2 { margin: 0 0 16px; }
.bc-tc-title-h2 .elementor-heading-title { margin: 0; line-height: 1.15; }
.bc-tc-sub p { margin: 0; }

/* ===== Card baseline (visual styling, gardé !important) ===== */
.bc-testimonial-card {
  background: #F5F5F0 !important;
  border-radius: 18px !important;
  box-shadow: 0 6px 20px rgba(14,18,9,0.06);
  align-self: stretch !important;
  min-height: 0 !important;
  flex: 1 1 0 !important;
  min-width: 0 !important;
}
.bc-testimonial-card > .e-con-inner {
  flex-grow: 1 !important;
  min-height: 100% !important;
  justify-content: space-between !important;
}

/* ===== Quote icon ===== */
.bc-tc-quote-icon { align-self: flex-start !important; text-align: left !important; }
.bc-tc-quote-icon .elementor-widget-container { text-align: left !important; }
.bc-tc-quote-icon img { max-width: 36px; height: auto; }

/* ===== Quote body ===== */
.bc-tc-quote p { margin: 0; }

/* ===== Footer (border-top + author/stars space-between) ===== */
.bc-tc-footer {
  border-top: 1px solid #EEEFE7 !important;
  padding-top: 16px;
  margin-top: auto !important;
  display: flex !important;
  flex-direction: row !important;
  justify-content: space-between !important;
  align-items: center !important;
  gap: 12px !important;
}
.bc-tc-footer > .e-con-inner {
  display: flex !important;
  flex-direction: row !important;
  justify-content: space-between !important;
  align-items: center !important;
  width: 100% !important;
}
.bc-tc-author { width: auto !important; flex: 0 1 auto !important; min-width: 0; }
.bc-tc-author > .e-con-inner { width: auto !important; }
.bc-tc-author-text { width: auto !important; flex: 0 1 auto !important; }
.bc-tc-author-text > .e-con-inner { width: auto !important; }

/* ===== Avatar / Name / Title / Stars ===== */
.bc-tc-avatar { flex: 0 0 auto !important; width: auto !important; }
.bc-tc-avatar img {
  width: 40px !important; height: 40px !important;
  border-radius: 50% !important; object-fit: cover;
}
.bc-tc-name .elementor-heading-title {
  font-size: 13px !important;
  white-space: nowrap !important;
  letter-spacing: 0.5px !important;
  line-height: 1.25 !important;
}
.bc-tc-title p { font-size: 12px !important; margin: 0; }
.bc-tc-stars { flex: 0 0 auto !important; width: auto !important; }
.bc-tc-stars img { max-width: 110px; height: auto; }

/* ===== Swiper carousel layout (structure — !important) ===== */
.bc-testimonials-row.bc-tc-swiper {
  position: relative;
  padding: 10px 72px;
  width: 100% !important;
  max-width: 1440px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  overflow: hidden;
}
.bc-tc-swiper .swiper-wrapper {
  display: flex !important;
  align-items: stretch !important;
}
.bc-tc-swiper .swiper-slide {
  width: calc(50% - 14px);
  flex: 0 0 calc(50% - 14px) !important;
  max-width: calc(50% - 14px) !important;
  display: flex !important;
  flex-direction: column !important;
  height: auto;
  align-self: stretch !important;
  min-width: 0 !important;
}
.bc-tc-swiper .swiper-slide > .e-con-inner,
.bc-tc-swiper .swiper-slide.bc-testimonial-card {
  width: 100% !important;
  flex-grow: 1 !important;
}

@media (max-width: 899px) {
  .bc-tc-swiper .swiper-slide {
    width: 100% !important;
    flex: 0 0 100% !important;
    max-width: 100% !important;
  }
  .bc-testimonials-row.bc-tc-swiper { padding: 10px 48px; }
}

/* ===== Arrows ===== */
.bc-tc-arrow {
  position: absolute !important;
  top: 50% !important;
  transform: translateY(-50%);
  width: 44px !important;
  height: 44px !important;
  margin-top: 0 !important;
  border-radius: 50%;
  background: #F5F5F0;
  border: 1.5px solid #D9DBCE;
  box-shadow: 0 2px 8px rgba(14,18,9,0.06);
  cursor: pointer;
  z-index: 5;
  transition: background .2s, border-color .2s, box-shadow .2s;
}
.bc-tc-arrow:hover {
  background: #EDEFE3;
  border-color: #8C9A5B;
  box-shadow: 0 4px 14px rgba(14,18,9,0.1);
}
.bc-tc-arrow.bc-tc-arrow-prev { left: 8px !important; right: auto !important; }
.bc-tc-arrow.bc-tc-arrow-next { right: 8px !important; left: auto !important; }
.bc-tc-arrow::after {
  content: "";
  display: block;
  position: absolute;
  top: 50%;
  left: 50%;
  width: 10px;
  height: 10px;
  border-top: 2px solid #1D2513;
  border-right: 2px solid #1D2513;
  transform: translate(-65%, -50%) rotate(45deg);
}
.bc-tc-arrow.bc-tc-arrow-prev::after {
  transform: translate(-35%, -50%) rotate(-135deg);
}
.bc-tc-arrow.swiper-button-disabled { opacity: .45; cursor: default; }

.bc-tc-swiper .swiper-button-prev::before,
.bc-tc-swiper .swiper-button-next::before,
.bc-tc-swiper .swiper-button-prev .swiper-icon,
.bc-tc-swiper .swiper-button-next .swiper-icon { display: none !important; }
.bc-tc-swiper .swiper-button-prev,
.bc-tc-swiper .swiper-button-next { color: transparent !important; }

/* ===== Google badge — margin éditable UI ===== */
.bc-google-badge {
  margin: 28px auto 0 auto;
  background-color: #F5F5F0 !important;
  border-radius: 12px 12px 0 0 !important;
  border-bottom: 0 !important;
  box-shadow: 0 -2px 8px rgba(14,18,9,0.04) !important;
  justify-content: center !important;
}
.bc-google-badge > .e-con-inner {
  justify-content: center !important;
  align-items: center !important;
  width: auto !important;
  margin: 0 auto;
}
.bc-g-text { width: auto !important; flex: 0 0 auto !important; }
.bc-g-text > .e-con-inner { width: auto !important; }
/* ==== END LOT TC-UNIFIED ==== */


/* ==== LOT RC-UNIFIED — Réalisations carousel (class-based, page-agnostic) ==== */
/* Pattern miroir du LOT TC : marche sur n'importe quelle page sans dépendance ID.
   Margins/paddings sans !important pour permettre overrides UI Elementor. */

/* ===== Section header layout ===== */
.bc-rc-header {
  display: flex !important;
  flex-direction: row !important;
  justify-content: space-between !important;
  align-items: flex-end !important;
  gap: 24px !important;
  flex-wrap: wrap !important;
}
.bc-rc-header-left {
  flex: 1 1 auto !important;
  width: auto !important;
}

/* ===== CTA header (Devis Gratuit pill) ===== */
.bc-rc-cta {
  flex: 0 0 auto !important;
  width: auto !important;
}
.bc-rc-cta .elementor-button {
  padding: 12px 22px;
  font-size: 14px;
  font-family: 'Inter', sans-serif;
  font-weight: 500;
  background-color: #8C9A5B !important;
  color: #FFFFFF !important;
  border-radius: 100px !important;
  white-space: nowrap !important;
  display: inline-flex !important;
  align-items: center !important;
  line-height: 1;
}
.bc-rc-cta .elementor-button-text { white-space: nowrap !important; }
.bc-rc-cta .elementor-button .elementor-button-icon { margin-left: 8px; }
.bc-rc-cta .elementor-button i { font-size: 12px; color: #FFFFFF !important; }

/* ===== Card baseline (visual — gardé !important) ===== */
.bc-rc-card {
  padding: 0;
  overflow: hidden !important;
  border-radius: 16px !important;
  background: #FFFFFF !important;
}

/* ===== Image wrap : flush edge-to-edge (structurel, garde !important) ===== */
.bc-rc-imgwrap {
  padding: 0 !important;
  margin: 0;
  width: 100% !important;
  --padding-top: 0 !important;
  --padding-right: 0 !important;
  --padding-bottom: 0 !important;
  --padding-left: 0 !important;
}
.bc-rc-imgwrap .elementor-widget-image,
.bc-rc-imgwrap .elementor-widget-image > .elementor-widget-container {
  width: 100% !important;
  margin: 0;
  padding: 0;
}
.bc-rc-imgwrap img,
.bc-rc-img img {
  width: 100% !important;
  height: auto !important;
  display: block !important;
  margin: 0;
  padding: 0;
  border-radius: 0 !important;
  vertical-align: top !important;
}

/* ===== Body padding (éditable UI) ===== */
@media (min-width: 768px) {
  .bc-rc-body { padding: 20px; margin: 0; }
}
@media (max-width: 767px) {
  .bc-rc-body { padding: 16px; margin: 0; }
}

/* ===== Card title / desc ===== */
.bc-rc-card-title .elementor-heading-title {
  font-size: 18px;
  font-weight: 700;
  color: #1D2513;
  line-height: 1.25;
  margin: 0 0 8px;
}
.bc-rc-card-desc p {
  font-size: 14px;
  color: #4F5848;
  line-height: 1.5;
  margin: 0;
}

/* ===== Swiper carousel layout (structurel) ===== */
.bc-rc-grid.bc-rc-swiper {
  display: block !important;
  position: relative !important;
  padding: 0 60px 50px !important;
  overflow: hidden !important;
  width: 100% !important;
  max-width: 1440px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}
.bc-rc-grid.bc-rc-swiper .swiper-wrapper {
  display: flex !important;
  align-items: stretch !important;
}
.bc-rc-grid.bc-rc-swiper .swiper-slide {
  flex: 0 0 auto !important;
  height: auto !important;
  max-width: none !important;
  align-self: stretch !important;
}

/* ===== Arrows visible ===== */
.bc-rc-swiper .bc-rc-arrow,
.bc-rc-swiper .swiper-button-prev,
.bc-rc-swiper .swiper-button-next {
  display: flex !important;
}

/* ===== Pagination gold ===== */
.bc-rc-swiper .swiper-pagination,
.bc-rc-swiper .bc-rc-pagination {
  position: absolute !important;
  bottom: 0 !important;
  left: 0 !important;
  right: 0 !important;
  text-align: center !important;
}
/* Arrows positioned at outer edges (in the 60px padding zone) */
.bc-rc-swiper .swiper-button-prev {
  left: 6px !important;
}
.bc-rc-swiper .swiper-button-next {
  right: 6px !important;
}
@media (max-width: 767px) {
  .bc-rc-grid.bc-rc-swiper {
    padding: 0 0 40px !important;
  }
  .bc-rc-swiper .swiper-button-prev,
  .bc-rc-swiper .swiper-button-next {
    width: 36px !important;
    height: 36px !important;
  }
  .bc-rc-swiper .swiper-button-prev { left: 4px !important; }
  .bc-rc-swiper .swiper-button-next { right: 4px !important; }
}

.bc-rc-swiper .swiper-pagination-bullet {
  background: #D9D9D2 !important;
  opacity: 1 !important;
  width: 10px !important;
  height: 10px !important;
  margin: 0 4px;
  border-radius: 50% !important;
}
.bc-rc-swiper .swiper-pagination-bullet-active {
  background: #C8AB3B !important;
}

/* ===== Mobile : header stack vertical ===== */
@media (max-width: 767px) {
  .bc-rc-header {
    flex-direction: column !important;
    align-items: flex-start !important;
  }
  .bc-rc-cta { align-self: flex-start !important; }
}
/* ==== END LOT RC-UNIFIED ==== */


/* ==== LOT RC-SPACING-FIX — gap entre slides + section padding + 2-per-view ==== */
/* Force layout 2-per-view (override ID-based rules) — !important sur structure */
html body .elementor .bc-rc-grid.bc-rc-swiper .swiper-wrapper > .elementor-element.swiper-slide,
html body .elementor .bc-rc-grid.bc-rc-swiper .swiper-wrapper > .swiper-slide {
  flex: 0 0 auto !important;
  flex-basis: auto !important;
  width: calc(50% - 12px) !important;
  max-width: calc(50% - 12px) !important;
  min-width: 0 !important;
  margin-right: 24px !important;
}
@media (max-width: 1024px) {
  html body .elementor .bc-rc-grid.bc-rc-swiper .swiper-wrapper > .elementor-element.swiper-slide,
  html body .elementor .bc-rc-grid.bc-rc-swiper .swiper-wrapper > .swiper-slide {
    width: 100% !important;
    max-width: 100% !important;
    margin-right: 16px !important;
  }
}
/* Espacement section/header — éditable UI (sans !important) */
.bc-realisations { padding-bottom: 60px; }
@media (max-width: 767px) {
  .bc-realisations { padding-bottom: 40px; }
}

/* Tablet + Mobile : retire padding 60px latéral pour que le slide principal prenne plus d'espace */
@media (max-width: 1024px) {
  html body .elementor .elementor-element-sec55grid.bc-rc-swiper {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
  /* Flèches plus petites positionnées sur le bord du slide */
  html body .elementor .bc-rc-swiper .swiper-button-prev,
  html body .elementor .bc-rc-swiper .swiper-button-next {
    width: 32px !important;
    height: 32px !important;
  }
  html body .elementor .bc-rc-swiper .swiper-button-prev::after,
  html body .elementor .bc-rc-swiper .swiper-button-next::after {
    font-size: 13px !important;
  }
  html body .elementor .bc-rc-swiper .swiper-button-prev { left: 4px !important; }
  html body .elementor .bc-rc-swiper .swiper-button-next { right: 4px !important; }
}
/* ==== END LOT RC-SPACING-FIX ==== */


/* ==== LOT SECCH-RESPONSIVE — chiffres footer 2×2 sur tablet + centré mobile ==== */
/* Tablet 768-1023 : grid 2×2 (sélecteur direct car secCHgrid n'a pas de .e-con-inner) */
@media (min-width: 768px) and (max-width: 1023px) {
  .elementor-element-secCHgrid {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 32px 24px !important;
    flex-wrap: wrap !important;
  }
  .elementor-element-secCHc1,
  .elementor-element-secCHc2,
  .elementor-element-secCHc3,
  .elementor-element-secCHc4 {
    width: auto !important;
    flex: 0 0 auto !important;
    max-width: none !important;
    border-right: 0 !important;
    border-bottom: 0 !important;
  }
  /* Séparateur horizontal entre la 1ère et la 2e ligne */
  .elementor-element-secCHc1,
  .elementor-element-secCHc2 {
    border-bottom: 1px solid rgba(255,255,255,0.12) !important;
    padding-bottom: 28px !important;
  }
  /* Séparateur vertical entre col 1 et col 2 */
  .elementor-element-secCHc1,
  .elementor-element-secCHc3 {
    border-right: 1px solid rgba(255,255,255,0.12) !important;
    padding-right: 16px !important;
  }
}

/* Mobile <768 : column 1-col + contenu centré (icon + chiffre + texte) */
@media (max-width: 767px) {
  .elementor-element-secCHgrid {
    flex-direction: column !important;
  }
  .elementor-element-secCHc1,
  .elementor-element-secCHc2,
  .elementor-element-secCHc3,
  .elementor-element-secCHc4 {
    border-right: 0 !important;
    padding-right: 0 !important;
    flex-direction: column !important;
    align-items: center !important;
    text-align: center !important;
  }
  /* Icon wrap centré */
  .elementor-element-secCHc1 .elementor-element-secCHc1icw,
  .elementor-element-secCHc2 .elementor-element-secCHc2icw,
  .elementor-element-secCHc3 .elementor-element-secCHc3icw,
  .elementor-element-secCHc4 .elementor-element-secCHc4icw,
  [class*="elementor-element-secCHc"][class*="icw"] {
    margin-left: auto !important;
    margin-right: auto !important;
    align-self: center !important;
    text-align: center !important;
  }
  /* Texte (chiffre + label) centré */
  [class*="elementor-element-secCHc"][class*="txt"] {
    align-items: center !important;
    text-align: center !important;
  }
  [class*="elementor-element-secCHc"][class*="txt"] > .e-con-inner {
    align-items: center !important;
  }
  /* Chiffre + label individuel */
  [class*="elementor-element-secCHc"][class*="n"] .elementor-heading-title,
  [class*="elementor-element-secCHc"][class*="n"] .elementor-widget-container,
  [class*="elementor-element-secCHc"][class*="lbl"] .elementor-widget-container,
  [class*="elementor-element-secCHc"][class*="lbl"] .elementor-heading-title,
  [class*="elementor-element-secCHc"][class*="lbl"] p {
    text-align: center !important;
  }
}
/* ==== END LOT SECCH-RESPONSIVE ==== */


/* ==== LOT NFHERO-MOBILE-FIX — force nfHeroCard 100% mobile ==== */
@media (max-width: 1023px) {
  html body .elementor.elementor-176 .elementor-element.elementor-element-nfHeroCard,
  html body .elementor.elementor-104 .elementor-element.elementor-element-nfHeroCard,
  html body .elementor.elementor-142 .elementor-element.elementor-element-nfHeroCard,
  html body .elementor.elementor-170 .elementor-element.elementor-element-nfHeroCard,
  html body .elementor.elementor-177 .elementor-element.elementor-element-nfHeroCard,
  html body .elementor.elementor-178 .elementor-element.elementor-element-nfHeroCard {
    width: 100% !important;
    max-width: 100% !important;
    flex: 1 1 100% !important;
    flex-basis: 100% !important;
  }
  html body .elementor.elementor-176 .elementor-element.elementor-element-nfHeroBox,
  html body .elementor.elementor-104 .elementor-element.elementor-element-nfHeroBox,
  html body .elementor.elementor-142 .elementor-element.elementor-element-nfHeroBox,
  html body .elementor.elementor-170 .elementor-element.elementor-element-nfHeroBox,
  html body .elementor.elementor-177 .elementor-element.elementor-element-nfHeroBox,
  html body .elementor.elementor-178 .elementor-element.elementor-element-nfHeroBox {
    flex-direction: column !important;
  }
  html body .elementor.elementor-176 .elementor-element.elementor-element-nfHeroImg,
  html body .elementor.elementor-104 .elementor-element.elementor-element-nfHeroImg,
  html body .elementor.elementor-142 .elementor-element.elementor-element-nfHeroImg,
  html body .elementor.elementor-170 .elementor-element.elementor-element-nfHeroImg,
  html body .elementor.elementor-177 .elementor-element.elementor-element-nfHeroImg,
  html body .elementor.elementor-178 .elementor-element.elementor-element-nfHeroImg {
    width: 100% !important;
    max-width: 100% !important;
    flex: 1 1 100% !important;
  }
}
/* ==== END LOT NFHERO-MOBILE-FIX ==== */


/* ==== LOT TBR — Tabulation Résultats (p177) ==== */
/* .bc-tbr bg/padding moved to UI editable */
.bc-tbr-inner {
  max-width: 1280px;
  margin: 0 auto;
}

/* Header centered — !important pour battre les classes globales */
.bc-tbr-kicker .elementor-heading-title {
  text-align: center !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 14px !important;
  letter-spacing: 2px !important;
  color: #8C9A5B !important;
  font-weight: 500 !important;
  margin: 0 !important;
  text-transform: uppercase !important;
  line-height: 1.4 !important;
}
.bc-tbr-title .elementor-heading-title {
  text-align: center !important;
  font-family: 'Playfair Display', serif !important;
  font-size: 48px !important;
  font-weight: 700 !important;
  color: #1D2513 !important;
  line-height: 1.15 !important;
  margin: 12px 0 16px !important;
  font-style: normal !important;
}
.bc-tbr-title .elementor-heading-title span {
  color: #8C9A5B !important;
  font-style: italic !important;
}
.bc-tbr-sub p {
  text-align: center;
  font-size: 16px;
  color: #4F5848;
  line-height: 1.5;
  margin: 0 auto 40px;
  max-width: 760px;
}

/* Tabs */
.bc-tbr-tabs-wrap .elementor-widget-container { 
  display: flex !important; 
  justify-content: center !important;
}
.bc-tbr-tabs {
  display: flex !important;
  flex-wrap: wrap !important;
  justify-content: center !important;
  gap: 12px !important;
  margin: 0 0 48px !important;
}
.bc-tbr-tab {
  padding: 12px 22px;
  border-radius: 100px;
  border: 1px solid #C9CCBE;
  background: transparent;
  color: #1D2513;
  font-family: 'Inter', sans-serif;
  font-size: 14px;
  font-weight: 500;
  cursor: pointer;
  transition: all .2s ease;
  white-space: nowrap;
}
.bc-tbr-tab:hover { background: rgba(140,154,91,0.1); }
.bc-tbr-tab.active {
  background: #1D2513;
  color: #FFFFFF;
  border-color: #1D2513;
}

/* Grid */
.bc-tbr-grid {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 24px !important;
  width: 100% !important;
}

/* Card */
.bc-tbr-card {
  background: #FFFFFF !important;
  border-radius: 16px !important;
  overflow: hidden !important;
  padding: 0 !important;
}
.bc-tbr-imgwrap {
  position: relative !important;
  padding: 0 !important;
  margin: 0 !important;
  width: 100% !important;
  display: block !important;
  overflow: hidden !important;
}
.bc-tbr-imgwrap > .e-con-inner {
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}
.bc-tbr-imgwrap .elementor-widget-image,
.bc-tbr-imgwrap .elementor-widget-image > .elementor-widget-container {
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}
.bc-tbr-imgwrap img,
.bc-tbr-img img {
  width: 100% !important;
  height: auto !important;
  display: block !important;
  border-radius: 0 !important;
  margin: 0 !important;
}
/* Avant/Apres labels */
.bc-tbr-imgwrap::before,
.bc-tbr-imgwrap::after {
  position: absolute;
  top: 16px;
  font-family: 'Inter', sans-serif;
  font-size: 13px;
  font-weight: 500;
  padding: 6px 16px;
  border-radius: 100px;
  z-index: 5;
  pointer-events: none;
  line-height: 1;
}
.bc-tbr-imgwrap::before {
  content: "Avant";
  left: 16px;
  background: #F5F5F0;
  color: #1D2513;
}
.bc-tbr-imgwrap::after {
  content: "Apres";
  right: 16px;
  background: #8C9A5B;
  color: #FFFFFF;
}

/* Card title + desc */
.bc-tbr-card-title .elementor-heading-title {
  font-family: 'Playfair Display', serif !important;
  font-size: 22px !important;
  font-weight: 700 !important;
  color: #1D2513 !important;
  line-height: 1.25 !important;
  margin: 0 !important;
  padding: 24px 24px 8px !important;
}
.bc-tbr-card-desc p {
  font-size: 14px;
  color: #4F5848;
  line-height: 1.55;
  margin: 0;
  padding: 0 24px 24px;
}

/* Hide JS widget */
.bc-tbr-js, .elementor-widget-html.bc-tbr-js {
  display: none !important;
}

/* Tablet */
@media (max-width: 1023px) {
  /* .bc-tbr bg/padding moved to UI editable */
  .bc-tbr-title .elementor-heading-title { font-size: 36px !important; }
}

/* Mobile */
@media (max-width: 767px) {
  /* .bc-tbr bg/padding moved to UI editable */
  .bc-tbr-title .elementor-heading-title { font-size: 28px !important; }
  .bc-tbr-grid {
    grid-template-columns: 1fr !important;
    gap: 16px !important;
  }
  .bc-tbr-tabs {
    overflow-x: auto !important;
    flex-wrap: nowrap !important;
    justify-content: flex-start !important;
    padding: 0 8px 8px !important;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }
  .bc-tbr-tabs::-webkit-scrollbar { display: none; }
  .bc-tbr-tab {
    flex: 0 0 auto;
    font-size: 13px;
    padding: 10px 16px;
  }
  .bc-tbr-imgwrap::before,
  .bc-tbr-imgwrap::after {
    font-size: 11px;
    padding: 4px 12px;
    top: 12px;
  }
  .bc-tbr-imgwrap::before { left: 12px; }
  .bc-tbr-imgwrap::after { right: 12px; }
  .bc-tbr-card-title .elementor-heading-title {
    font-size: 18px !important;
    padding: 16px 16px 0 !important;
  }
  .bc-tbr-card-desc p { padding: 0 16px 16px; }
}
/* ==== END LOT TBR ==== */


/* ==== LOT TBR-PILL-FIX — labels Avant/Apres pills (override .e-con::before) ==== */
/* Elementor a `.e-con::before { width:100%; height:100%; display:block; position:absolute }`
   pour les background slideshows. Comme .bc-tbr-imgwrap a la classe .e-con, son ::before/::after
   héritait width 100% — couvrant tout le card. Override ici. */
html body .elementor .bc-tbr-imgwrap::before,
html body .elementor .bc-tbr-imgwrap::after {
  width: auto !important;
  height: auto !important;
  display: inline-block !important;
  max-width: none !important;
  inset: auto !important;
}
html body .elementor .bc-tbr-imgwrap::before {
  top: 16px !important;
  left: 16px !important;
}
html body .elementor .bc-tbr-imgwrap::after {
  top: 16px !important;
  right: 16px !important;
}
@media (max-width: 767px) {
  html body .elementor .bc-tbr-imgwrap::before {
    top: 12px !important;
    left: 12px !important;
  }
  html body .elementor .bc-tbr-imgwrap::after {
    top: 12px !important;
    right: 12px !important;
  }
}
/* ==== END LOT TBR-PILL-FIX ==== */

/* ==== LOT TBR-FIDELITY ==== */
/* Grid 2-col : Elementor wrap les enfants dans .e-con-inner.
   Cibler le wrapper inner pour activer le display:grid réel. */
/* Wrapper grid : on délègue le layout 2-col au widget Loop Grid (pas grid ici).
   Juste centrer le contenu sur 1280px max. */
html body .elementor .bc-tbr-grid {
  display: flex !important;
  flex-direction: column !important;
  grid-template-columns: none !important;
  width: 100% !important;
  max-width: 1280px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  --content-width: 1280px !important;
  gap: 0 !important;
}
html body .elementor .bc-tbr-grid > .e-con-inner {
  display: flex !important;
  flex-direction: column !important;
  width: 100% !important;
  max-width: 1280px !important;
}
/* Loop Grid widget prend toute la largeur du wrapper */
html body .elementor .bc-tbr-loop {
  width: 100% !important;
  max-width: 100% !important;
}
html body .elementor .bc-tbr-loop > .elementor-widget-container {
  width: 100% !important;
}
html body .elementor .bc-tbr-loop .elementor-loop-container {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 24px !important;
  width: 100% !important;
}
@media (max-width: 1023px) {
  html body .elementor .bc-tbr-loop .elementor-loop-container {
    grid-template-columns: 1fr !important;
    gap: 20px !important;
  }
}
/* Loop items = .bc-tbr-card (notre template a la classe) */
html body .elementor .bc-tbr-loop .e-loop-item {
  width: auto !important;
  max-width: 100% !important;
  flex: unset !important;
}

/* Cards : image edge-to-edge (pas de padding), radius 20px, overflow hidden pour clip image */
html body .elementor .bc-tbr-card {
  background: #FFFFFF !important;
  border-radius: 20px !important;
  overflow: hidden !important;
  padding: 0 0 24px 0 !important;
}
html body .elementor .bc-tbr-card > .e-con-inner {
  padding: 0 !important;
  gap: 16px !important;
}

/* Imgwrap : 2 images côte-à-côte edge-to-edge (la card clip via overflow:hidden) */
html body .elementor .bc-tbr-imgwrap {
  position: relative !important;
  border-radius: 0 !important;
  overflow: hidden !important;
  padding: 0 !important;
  margin: 0 !important;
}
html body .elementor .bc-tbr-imgwrap {
  --content-width: 100% !important;
}
html body .elementor .bc-tbr-imgwrap > .e-con-inner {
  display: flex !important;
  flex-direction: row !important;
  gap: 4px !important;
  width: 100% !important;
  max-width: 100% !important;
  padding: 0 !important;
}
html body .elementor .bc-tbr-imgwrap > .e-con-inner > .bc-tbr-img {
  flex: 1 1 100% !important;
  width: 100% !important;
  max-width: 100% !important;
}
html body .elementor .bc-tbr-imgwrap .bc-tbr-img,
html body .elementor .bc-tbr-imgwrap .bc-tbr-img .elementor-widget-container,
html body .elementor .bc-tbr-imgwrap .bc-tbr-img .elementor-image,
html body .elementor .bc-tbr-imgwrap .bc-tbr-img .elementor-image a {
  width: 100% !important;
  display: block !important;
}
html body .elementor .bc-tbr-imgwrap .bc-tbr-img img {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  border-radius: 0 !important;
}
@media (max-width: 767px) {
  html body .elementor .bc-tbr-imgwrap .bc-tbr-img img {
    height: 240px !important;
  }
}

/* Pills Avant / Apres — corner ribbon style */
html body .elementor .bc-tbr-imgwrap::before,
html body .elementor .bc-tbr-imgwrap::after {
  position: absolute !important;
  z-index: 5 !important;
  width: auto !important;
  height: auto !important;
  display: inline-block !important;
  max-width: none !important;
  font-family: 'Inter', sans-serif !important;
  font-weight: 600 !important;
  font-size: 13px !important;
  letter-spacing: 0.3px !important;
  padding: 6px 16px !important;
  pointer-events: none !important;
}
html body .elementor .bc-tbr-imgwrap::before {
  content: "Avant" !important;
  top: 0 !important;
  left: 0 !important;
  right: auto !important;
  bottom: auto !important;
  background: #F5F5F0 !important;
  color: #8C9A5B !important;
  border-radius: 0 0 14px 0 !important;
}
html body .elementor .bc-tbr-imgwrap::after {
  content: "Apres" !important;
  top: 0 !important;
  right: 0 !important;
  left: auto !important;
  bottom: auto !important;
  background: #8C9A5B !important;
  color: #FFFFFF !important;
  border-radius: 0 0 0 14px !important;
}

/* Card title + desc : alignement structurel (padding L/R 24px par défaut, surchageable via UI).
   PAS d'!important sur margin/padding/font/color → éditables via Elementor UI. */
html body .elementor .bc-tbr-card-title,
html body .elementor .bc-tbr-card-desc {
  width: 100%;
  max-width: 100%;
  padding: 0 24px;
  text-align: left;
}
html body .elementor .bc-tbr-card-title .elementor-heading-title {
  font-family: 'Inter', sans-serif;
  font-size: 18px;
  font-weight: 700;
  color: #1D2513;
  margin: 8px 0;
  line-height: 1.3;
  text-align: left;
}
html body .elementor .bc-tbr-card-desc p {
  font-family: 'Inter', sans-serif;
  font-size: 14px;
  color: #6B7363;
  line-height: 1.55;
  margin: 0;
  text-align: left;
}

/* Title de section : forcer tout noir (override span vert italique du HTML) */
html body .elementor .bc-tbr-title .elementor-heading-title,
html body .elementor .bc-tbr-title .elementor-heading-title span {
  color: #1D2513 !important;
  font-style: normal !important;
  font-family: 'Playfair Display', serif !important;
  font-weight: 700 !important;
}

/* Tabs : actif = noir, inactif = bg blanc + bordure outline gris clair */
html body .elementor .bc-tbr-tab {
  background: #FFFFFF !important;
  color: #1D2513 !important;
  border: 1px solid #C9CCBE !important;
  padding: 12px 24px !important;
  border-radius: 999px !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  cursor: pointer !important;
  transition: background 0.2s, color 0.2s !important;
}
html body .elementor .bc-tbr-tab:hover {
  background: #F5F5F0 !important;
}
html body .elementor .bc-tbr-tab.active {
  background: #1D2513 !important;
  color: #FFFFFF !important;
  border-color: #1D2513 !important;
}
/* ==== END LOT TBR-FIDELITY ==== */

/* ==== LOT P178-FORM-BG ==== */
/* p178 Contact : le wrapper .bc-tpl-form a un bg #E8EADF (set via UI Elementor),
   mais le template 353 contient un container secA0000 avec son propre bg #F5F5F0
   qui le masque. Rendre ce container transparent UNIQUEMENT sur p178. */
html body .elementor-178 .bc-tpl-form .elementor-element.elementor-element-secA0000 {
  background-color: transparent !important;
  background-image: none !important;
}
/* ==== END LOT P178-FORM-BG ==== */

/* ==== LOT P178-CO-WIDTH ==== */
/* Section Nos coordonnées : aligner la largeur sur le standard sitewide 1440px.
   bc-co = section full bg, bc-co-inner = contenu limité 1440px centré. */
html body .elementor .bc-co-inner {
  max-width: 1440px !important;
  width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
}
html body .elementor .bc-co > .e-con-inner {
  max-width: 1440px !important;
  width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
}
/* Map widget : max-width 1440px aussi (elle est dans bc-co-inner mais on sécurise) */
html body .elementor .bc-co .bc-co-map,
html body .elementor .bc-co .bc-co-map .elementor-widget-container,
html body .elementor .bc-co .bc-co-map .elementor-custom-embed {
  max-width: 100% !important;
  width: 100% !important;
}
/* ==== END LOT P178-CO-WIDTH ==== */

/* ==== LOT MOBILE-MENU-FS ==== */
/* Mobile menu premium : slide-in fullscreen vert avec logo + items serif + CTA + contact */
@media (max-width: 1024px) {

  /* Hamburger toggle (closed state) : transparent, dark icon */
  header .elementor-menu-toggle {
    position: relative !important;
    z-index: 100000 !important;
    background: transparent !important;
    border: none !important;
    color: #1D2513 !important;
    transition: color .25s ease;
  }

  /* Active state : X dans cercle blanc, fixé top-right au-dessus de l'overlay */
  header .elementor-menu-toggle.elementor-active {
    position: fixed !important;
    top: 18px !important;
    right: 18px !important;
    width: 36px !important;
    height: 36px !important;
    background: #FFFFFF !important;
    border-radius: 50% !important;
    color: #1D2513 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    box-shadow: 0 2px 10px rgba(0,0,0,0.18) !important;
    z-index: 100001 !important;
    padding: 0 !important;
  }
  header .elementor-menu-toggle.elementor-active .elementor-menu-toggle__icon--close,
  header .elementor-menu-toggle.elementor-active i {
    color: #1D2513 !important;
    font-size: 16px !important;
  }

  /* Dropdown overlay : slide-in from right, full screen, vert sage profond */
  header .elementor-nav-menu--dropdown {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    width: 100vw !important;
    height: 100vh !important;
    height: 100dvh !important;
    max-height: none !important;
    margin: 0 !important;
    padding: 0 !important;
    background: linear-gradient(165deg, #2F3320 0%, #1D2513 100%) !important;
    z-index: 99999 !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    box-shadow: none !important;
    border: none !important;
    transform: translateX(100%);
    transition: transform .45s cubic-bezier(0.4, 0, 0.2, 1) !important;
    display: block !important;
    visibility: hidden;
    opacity: 0;
  }
  header .elementor-nav-menu--dropdown[aria-hidden="false"] {
    transform: translateX(0) !important;
    visibility: visible !important;
    opacity: 1 !important;
  }

  /* Pseudo-element : decoration leaf pattern bottom-left */
  header .elementor-nav-menu--dropdown::before {
    content: "" !important;
    position: absolute !important;
    bottom: -120px !important;
    left: -120px !important;
    width: 360px !important;
    height: 360px !important;
    border-radius: 50% !important;
    background: radial-gradient(circle, rgba(140, 154, 91, 0.18) 0%, transparent 70%) !important;
    pointer-events: none !important;
    z-index: 0 !important;
  }
  header .elementor-nav-menu--dropdown::after {
    content: "" !important;
    position: absolute !important;
    top: -80px !important;
    right: -80px !important;
    width: 280px !important;
    height: 280px !important;
    border-radius: 50% !important;
    background: radial-gradient(circle, rgba(200, 171, 59, 0.12) 0%, transparent 70%) !important;
    pointer-events: none !important;
    z-index: 0 !important;
  }

  /* Container interne : items en flex column */
  header .elementor-nav-menu--dropdown .elementor-nav-menu--main,
  header .elementor-nav-menu--dropdown nav {
    position: relative !important;
    z-index: 1 !important;
    height: 100% !important;
    display: flex !important;
    flex-direction: column !important;
  }

  /* UL items : padding-top généreux pour que premier item soit BIEN sous le bouton fermer */
  header .elementor-nav-menu--dropdown .elementor-nav-menu {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 0 !important;
    margin: 0 !important;
    padding: 90px 32px 32px !important;
    list-style: none !important;
    flex: 1 !important;
  }
  header .elementor-nav-menu--dropdown .elementor-nav-menu li {
    border-bottom: 1px solid rgba(255, 255, 255, 0.08) !important;
  }
  header .elementor-nav-menu--dropdown .elementor-nav-menu li:last-child {
    border-bottom: none !important;
  }

  /* Items : Playfair serif large, blanc, avec chevron > qui apparaît au hover */
  header .elementor-nav-menu--dropdown .elementor-nav-menu li a,
  header .elementor-nav-menu--dropdown .elementor-nav-menu .elementor-item {
    font-family: 'Playfair Display', serif !important;
    font-size: 20px !important;
    font-weight: 500 !important;
    color: #FFFFFF !important;
    padding: 16px 0 !important;
    text-align: left !important;
    background: transparent !important;
    border: none !important;
    line-height: 1.2 !important;
    letter-spacing: 0 !important;
    position: relative !important;
    display: block !important;
    transition: color .25s ease, padding-left .3s ease !important;
  }
  /* Chevron à droite via ::after */
  header .elementor-nav-menu--dropdown .elementor-nav-menu li a::after,
  header .elementor-nav-menu--dropdown .elementor-nav-menu .elementor-item::after {
    content: "→" !important;
    position: absolute !important;
    right: 4px !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    color: #C8AB3B !important;
    font-family: 'Inter', sans-serif !important;
    font-size: 18px !important;
    opacity: 0 !important;
    transition: opacity .25s ease, transform .3s ease !important;
  }

  /* Hover/active : passe au gold + chevron visible */
  header .elementor-nav-menu--dropdown .elementor-nav-menu li a:hover,
  header .elementor-nav-menu--dropdown .elementor-nav-menu li a:focus,
  header .elementor-nav-menu--dropdown .elementor-nav-menu .elementor-item.elementor-item-active {
    color: #C8AB3B !important;
    padding-left: 8px !important;
  }
  header .elementor-nav-menu--dropdown .elementor-nav-menu li a:hover::after,
  header .elementor-nav-menu--dropdown .elementor-nav-menu .elementor-item.elementor-item-active::after {
    opacity: 1 !important;
    transform: translateY(-50%) translateX(4px) !important;
  }

  /* Footer overlay : CTA + contact infos */
  header .elementor-nav-menu--dropdown .elementor-nav-menu::after {
    content: "Demander un devis gratuit" !important;
    display: block !important;
    margin: 32px 0 16px !important;
    padding: 18px 28px !important;
    background: #C8AB3B !important;
    color: #1D2513 !important;
    font-family: 'Inter', sans-serif !important;
    font-size: 16px !important;
    font-weight: 700 !important;
    text-align: center !important;
    border-radius: 999px !important;
    letter-spacing: 0.3px !important;
    cursor: pointer !important;
  }

  /* Bloquer scroll body quand menu ouvert */
  body:has(header .elementor-menu-toggle.elementor-active) {
    overflow: hidden !important;
  }

  /* SubMenu : caché en mobile fullscreen (on garde simple) */
  header .elementor-nav-menu--dropdown .sub-menu {
    display: none !important;
  }
}
/* ==== END LOT MOBILE-MENU-FS ==== */

/* ==== LOT FOOTER-CHIFFRES-TABLET ==== */
/* Tablette (768-1024px) : footer chiffres en grid 2x2 propre */
@media (min-width: 768px) and (max-width: 1024px) {
  /* Reset l'outer en block, c'est le .e-con-inner qui porte le grid (Elementor wrap les enfants dedans) */
  html body footer .elementor-element.elementor-element-ftrChIn {
    display: block !important;
    width: 100% !important;
    max-width: 720px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    grid-template-columns: none !important;
  }
  html body footer .elementor-element.elementor-element-ftrChIn > .e-con-inner {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 32px 24px !important;
    width: 100% !important;
    max-width: 100% !important;
  }
  /* Chaque cellule : flex-row icône + texte, plein espace de sa col, divider à droite UNIQUEMENT pour cellules en col 1 */
  html body footer .elementor-element.elementor-element-ftrCh1,
  html body footer .elementor-element.elementor-element-ftrCh2,
  html body footer .elementor-element.elementor-element-ftrCh3,
  html body footer .elementor-element.elementor-element-ftrCh4 {
    width: 100% !important;
    max-width: 100% !important;
    flex: 1 1 auto !important;
    padding: 0 !important;
    border-right: none !important;
  }
  /* Divider vertical entre col 1 et col 2 : garder sur ftrCh1 et ftrCh3 (col gauche) */
  html body footer .elementor-element.elementor-element-ftrCh1,
  html body footer .elementor-element.elementor-element-ftrCh3 {
    border-right: 1px solid rgba(255,255,255,0.15) !important;
    padding-right: 24px !important;
  }
}

/* Petite tablette / large mobile (550-767px) : grid 2x2 plus compact */
@media (min-width: 550px) and (max-width: 767px) {
  html body footer .elementor-element.elementor-element-ftrChIn {
    display: block !important;
    width: 100% !important;
    grid-template-columns: none !important;
  }
  html body footer .elementor-element.elementor-element-ftrChIn > .e-con-inner {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 24px 16px !important;
    width: 100% !important;
  }
  html body footer .elementor-element.elementor-element-ftrCh1,
  html body footer .elementor-element.elementor-element-ftrCh2,
  html body footer .elementor-element.elementor-element-ftrCh3,
  html body footer .elementor-element.elementor-element-ftrCh4 {
    width: 100% !important;
    max-width: 100% !important;
    padding: 0 !important;
    border-right: none !important;
  }
}
/* ==== END LOT FOOTER-CHIFFRES-TABLET ==== */

/* ==== LOT SEC73-TPS ==== */
/* sec73000 — Types de surfaces traitées : 6 cards en grid 3x2 */
html body .elementor .bc-tps {
  background-color: #F5F5F0;
}
html body .elementor .bc-tps-inner,
html body .elementor .elementor-element.elementor-element-sec73inner {
  max-width: 1280px;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}
/* Section header */
html body .elementor .bc-tps-kick { margin-bottom: 12px; }
html body .elementor .bc-tps-title { margin-bottom: 16px; }
html body .elementor .bc-tps-sub { margin-bottom: 56px; max-width: 720px; margin-left: auto; margin-right: auto; }
html body .elementor .bc-tps-sub p { color: #6B7363; font-size: 15px; line-height: 1.55; }

/* Grid : container e-con-full (pas de wrapper inner), display:grid direct */
html body .elementor .elementor-element.elementor-element-sec73grid {
  display: grid !important;
  grid-template-columns: 1fr 1fr 1fr !important;
  gap: 24px !important;
  width: 100% !important;
  max-width: 100% !important;
  flex-wrap: nowrap !important;
}
@media (max-width: 1024px) {
  html body .elementor .elementor-element.elementor-element-sec73grid {
    grid-template-columns: 1fr 1fr !important;
    gap: 20px !important;
  }
}
@media (max-width: 600px) {
  html body .elementor .elementor-element.elementor-element-sec73grid {
    grid-template-columns: 1fr !important;
  }
}
/* Cards en grid : annuler flex-basis Elementor */
html body .elementor .elementor-element.elementor-element-sec73grid > .bc-tps-card {
  flex: unset !important;
  width: 100% !important;
}

/* Card : white bg, radius 24, padding 28, image 4 corners rounded */
html body .elementor .bc-tps-card {
  background: #FFFFFF !important;
  border-radius: 24px !important;
    width: 100% !important;
  max-width: 100% !important;
  display: flex !important;
  flex-direction: column !important;
  text-align: left;
  align-items: stretch !important;
}
html body .elementor .bc-tps-card > .e-con-inner {
  padding: 0 !important;
  gap: 16px !important;
  height: 100% !important;
  align-items: stretch !important;
}
/* Card e-con-full (pas de wrapper inner) : gap entre enfants directs via flex gap */
html body .elementor .bc-tps-card.e-con-full {
  gap: 16px !important;
  align-items: stretch !important;
}

/* Image : full-width, 4 coins arrondis 16px, height 240 */
html body .elementor .bc-tps-img {
  width: 100% !important;
  margin: 0 !important;
}
html body .elementor .bc-tps-img .elementor-widget-container,
html body .elementor .bc-tps-img a,
html body .elementor .bc-tps-img .elementor-image {
  width: 100% !important;
  display: block !important;
}
html body .elementor .bc-tps-img img {
  display: block !important;
  width: 100% !important;
  height: 240px !important;
  object-fit: cover !important;
  border-radius: 16px !important;
}

/* Title + desc */
html body .elementor .bc-tps-card-title {
  width: 100% !important;
  margin: 4px 0 0 0 !important;
}
html body .elementor .bc-tps-card-title .elementor-heading-title {
  font-family: 'Inter', sans-serif !important;
  font-weight: 700 !important;
  font-size: 18px !important;
  color: #1D2513 !important;
  margin: 0 !important;
  line-height: 1.3;
  text-align: left !important;
}
html body .elementor .bc-tps-card-desc {
  width: 100% !important;
  margin: 0 !important;
}
html body .elementor .bc-tps-card-desc p {
  font-family: 'Inter', sans-serif !important;
  font-size: 14px !important;
  color: #6B7363 !important;
  line-height: 1.55 !important;
  margin: 0 !important;
  text-align: left !important;
}

/* Bouton CTA : pill vert, FULL WIDTH dans la card */
html body .elementor .bc-tps-card .elementor-widget-button {
  margin-top: auto !important;
  width: 100% !important;
  align-self: stretch !important;
}
html body .elementor .bc-tps-card .elementor-widget-button .elementor-widget-container {
  width: 100% !important;
}
html body .elementor .bc-tps-card .elementor-widget-button .elementor-button {
  background: #8C9A5B !important;
  color: #FFFFFF !important;
  border-radius: 999px !important;
  padding: 14px 22px !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  width: 100% !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
}
/* Icône arrow rotation diagonale ↗ */
html body .elementor .bc-tps-card .elementor-button svg,
html body .elementor .bc-tps-card .elementor-button i {
  transform: rotate(-45deg) !important;
  transition: none !important;
}

/* Section padding mobile */
@media (max-width: 767px) {
  html body .elementor .bc-tps {
    padding: 56px 16px !important;
  }
}
/* ==== END LOT SEC73-TPS ==== */

/* ==== LOT HERO-BULLETS-MULTI ==== */
/* Extend LOT 10A nfHero bullets hug-content to p142 + p170 (LOT 12B/12H avait omis cette règle) */
.elementor-142 .elementor-element.elementor-element-nfHeroB1,
.elementor-142 .elementor-element.elementor-element-nfHeroB2,
.elementor-142 .elementor-element.elementor-element-nfHeroB3,
.elementor-170 .elementor-element.elementor-element-nfHeroB1,
.elementor-170 .elementor-element.elementor-element-nfHeroB2,
.elementor-170 .elementor-element.elementor-element-nfHeroB3,
.elementor-176 .elementor-element.elementor-element-nfHeroB1,
.elementor-176 .elementor-element.elementor-element-nfHeroB2,
.elementor-176 .elementor-element.elementor-element-nfHeroB3,
.elementor-177 .elementor-element.elementor-element-nfHeroB1,
.elementor-177 .elementor-element.elementor-element-nfHeroB2,
.elementor-177 .elementor-element.elementor-element-nfHeroB3,
.elementor-178 .elementor-element.elementor-element-nfHeroB1,
.elementor-178 .elementor-element.elementor-element-nfHeroB2,
.elementor-178 .elementor-element.elementor-element-nfHeroB3 {
  width: auto !important;
  max-width: 100%;
  flex: 0 1 auto !important;
  background: #FFFFFF;
  border-radius: 999px;
  padding: 8px 14px;
  align-items: center;
  gap: 6px;
  box-shadow: 0 1px 2px rgba(14,18,9,0.04);
}
/* nfHeroBenefits : flex-wrap pour 2+1 layout sur desktop */
.elementor-142 .elementor-element.elementor-element-nfHeroBenefits,
.elementor-170 .elementor-element.elementor-element-nfHeroBenefits,
.elementor-176 .elementor-element.elementor-element-nfHeroBenefits,
.elementor-177 .elementor-element.elementor-element-nfHeroBenefits,
.elementor-178 .elementor-element.elementor-element-nfHeroBenefits {
  flex-direction: row !important;
  flex-wrap: wrap !important;
  gap: 10px !important;
  justify-content: flex-start !important;
}
/* ==== END LOT HERO-BULLETS-MULTI ==== */

/* ==== LOT P392-PILL-FIX ==== */
/* Pill 'Procédure et coûts' (1bfe221) sur p392 Resultats : hug-content (auto width).
   Le pill garde son design (radius, padding) mais ne prend plus 100% de la card.
   Le client peut éditer ce setting via UI Elementor. */
.elementor-392 .elementor-element.elementor-element-1bfe221,
.elementor-176 .elementor-element.elementor-element-1bfe221 {
  width: fit-content !important;
  max-width: fit-content !important;
  align-self: flex-start !important;
  flex-grow: 0 !important;
}
.elementor-392 .elementor-element.elementor-element-1bfe221 > .e-con-inner,
.elementor-176 .elementor-element.elementor-element-1bfe221 > .e-con-inner {
  width: auto !important;
  flex: 0 0 auto !important;
}
/* ==== END LOT P392-PILL-FIX ==== */

/* ==== LOT HERO-SLIDER ==== */
/* p24 Hero : slider drag avant/après dans la colonne droite (sec10right) */
html body .elementor .elementor-element-sec10right {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-end !important;
  justify-content: center !important;
}
html body .elementor .bc-hero-sld {
  position: relative !important;
  width: 100% !important;
  max-width: 583px !important;
  aspect-ratio: 583 / 590 !important;
  border-radius: 24px !important;
  overflow: visible !important;
  user-select: none !important;
  cursor: ew-resize !important;
}
/* Border-radius sur les images directement (overflow:visible nécessaire pour le badge qui dépasse) */
html body .elementor .bc-hero-sld .bc-sld-img-before img,
html body .elementor .bc-hero-sld .bc-sld-img-after img {
  border-radius: 24px !important;
}
/* Layer images : superposées en absolute */
html body .elementor .bc-hero-sld .bc-sld-img-before,
html body .elementor .bc-hero-sld .bc-sld-img-after {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
  pointer-events: none !important;
}
html body .elementor .bc-hero-sld .bc-sld-img-before .elementor-widget-container,
html body .elementor .bc-hero-sld .bc-sld-img-after .elementor-widget-container,
html body .elementor .bc-hero-sld .bc-sld-img-before .elementor-image,
html body .elementor .bc-hero-sld .bc-sld-img-after .elementor-image {
  width: 100% !important;
  height: 100% !important;
}
html body .elementor .bc-hero-sld .bc-sld-img-before img,
html body .elementor .bc-hero-sld .bc-sld-img-after img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  display: block !important;
}
/* After layer above before, controlled via JS clip-path */
html body .elementor .bc-hero-sld .bc-sld-img-after {
  z-index: 2 !important;
}
/* HTML widget reset position */
html body .elementor .elementor-element.elementor-element-sec10sldUI {
  position: static !important;
}
/* Labels Avant/Apres : masqués sur le hero */
html body .elementor .bc-hero-sld .bc-sld-label {
  display: none !important;
}

/* Badge 5 ans garantie : overlay top-right légèrement débordant comme la maquette */
html body .elementor .bc-hero-sld .bc-hero-badge {
  position: absolute !important;
  top: -22px !important;
  right: -22px !important;
  width: 100px !important;
  height: 100px !important;
  margin: 0 !important;
  z-index: 6 !important;
  pointer-events: none !important;
}
html body .elementor .bc-hero-sld .bc-hero-badge .elementor-widget-container,
html body .elementor .bc-hero-sld .bc-hero-badge .elementor-image {
  width: 100% !important;
  height: 100% !important;
}
html body .elementor .bc-hero-sld .bc-hero-badge img {
  width: 100% !important;
  height: 100% !important;
  object-fit: contain !important;
  display: block !important;
}
@media (max-width: 767px) {
  html body .elementor .bc-hero-sld .bc-hero-badge {
    width: 70px !important;
    height: 70px !important;
    top: -16px !important;
    right: -16px !important;
  }
}
/* Handle (vertical line) */
html body .elementor .bc-hero-sld .bc-sld-handle {
  position: absolute !important;
  top: 0 !important;
  bottom: 0 !important;
  width: 3px !important;
  background: #FFFFFF !important;
  z-index: 3 !important;
  pointer-events: none !important;
  transform: translateX(-50%);
  box-shadow: 0 0 12px rgba(0,0,0,0.4);
}
/* Thumb circle */
html body .elementor .bc-hero-sld .bc-sld-thumb {
  position: absolute !important;
  top: 50% !important;
  width: 44px !important;
  height: 44px !important;
  background: #FFFFFF !important;
  color: #1D2513 !important;
  border-radius: 50% !important;
  z-index: 4 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  cursor: ew-resize !important;
  box-shadow: 0 4px 12px rgba(0,0,0,0.25) !important;
  transform: translate(-50%, -50%);
}
@media (max-width: 1024px) {
  html body .elementor .bc-hero-sld {
    max-width: 100% !important;
    aspect-ratio: 583 / 590 !important;
  }
}
/* ==== END LOT HERO-SLIDER ==== */

/* ==== LOT 13A — sec80 p104 cards equal height ==== */
@media (min-width: 768px) {
  /* 1) Swiper wrapper en flex stretch : toutes les slides visibles s'alignent
     à la hauteur de la plus haute */
  html body .elementor.elementor-104 .elementor-element.elementor-element-sec80grid.bc-pr-swiper .swiper-wrapper {
    align-items: stretch !important;
  }

  /* 2) Chaque slide en height:auto pour laisser stretch faire son travail */
  html body .elementor.elementor-104 .elementor-element.elementor-element-sec80grid.bc-pr-swiper .swiper-slide {
    height: auto !important;
    align-self: stretch !important;
  }

  /* 3) e-con-inner remplit toute la slide */
  html body .elementor.elementor-104 .elementor-element.elementor-element-sec80grid.bc-pr-swiper .swiper-slide > .e-con-inner {
    height: 100% !important;
    display: flex !important;
    flex-direction: column !important;
  }

  /* 4) Image col : taille fixe (déjà 200px via LOT 10B) — on s'assure que flex:0 0 auto */
  html body .elementor.elementor-104 .elementor-element.elementor-element-sec80grid [data-id^="sec80s"][data-id$="right"] {
    flex: 0 0 auto !important;
  }

  /* 5) Content col (left) : prend tout l'espace restant — c'est elle qui s'étire */
  html body .elementor.elementor-104 .elementor-element.elementor-element-sec80grid [data-id^="sec80s"][data-id$="left"] {
    flex: 1 1 auto !important;
    height: auto !important;
    align-self: stretch !important;
  }

  html body .elementor.elementor-104 .elementor-element.elementor-element-sec80grid [data-id^="sec80s"][data-id$="left"] > .e-con-inner {
    height: 100% !important;
    display: flex !important;
    flex-direction: column !important;
  }
}
/* ==== END LOT 13A ==== */

/* ==== LOT 13B — global image hover sitewide ==== */

/* Effet hover sur l'IMG uniquement → préserve border-radius parent */
.elementor-widget-image img {
  transition:
    transform 500ms cubic-bezier(0.16, 1, 0.3, 1),
    filter   500ms cubic-bezier(0.16, 1, 0.3, 1);
  display: block;
}

.elementor-widget-image:hover img {
  transform: translateY(-4px) scale(1.025);
  filter:
    brightness(1.04)
    saturate(1.08)
    drop-shadow(0 14px 28px rgba(14, 18, 9, 0.18));
}

/* === EXCLUSIONS (pas de hover) === */

/* 1) Header / Footer */
.elementor-location-header .elementor-widget-image:hover img,
.elementor-location-footer .elementor-widget-image:hover img,
/* 2) Images dans Icon Box */
.elementor-widget-icon-box .elementor-widget-image:hover img,
/* 3) Petites images détectées par chemin/nom de fichier */
.elementor-widget-image:has(img[src*="/icons/"]):hover img,
.elementor-widget-image:has(img[src*="/logos/"]):hover img,
.elementor-widget-image:has(img[src*="logo-"]):hover img,
.elementor-widget-image:has(img[src*="avatar"]):hover img,
.elementor-widget-image:has(img[src*="icon-"]):hover img,
.elementor-widget-image:has(img[src*="badge"]):hover img,
.elementor-widget-image:has(img[src*="stars"]):hover img,
.elementor-widget-image:has(img[src*="google"]):hover img,
.elementor-widget-image:has(img[src*="zip-"]):hover img,
.elementor-widget-image:has(img[src$=".svg"]):hover img,
/* 4) Slider drag avant/après (sec57) — interactif */
.elementor-element-sec57sldBefore:hover img,
.elementor-element-sec57sldAfter:hover img {
  transform: none !important;
  filter: none !important;
}

/* === BG-IMAGE CARDS (sec70 DirtBox/Aquafiltre) ===
   box-shadow respecte le border-radius du container nativement */
.elementor-element-sec70card1,
.elementor-element-sec70card2 {
  transition:
    transform   500ms cubic-bezier(0.16, 1, 0.3, 1),
    box-shadow  500ms cubic-bezier(0.16, 1, 0.3, 1);
}
.elementor-element-sec70card1:hover,
.elementor-element-sec70card2:hover {
  transform: translateY(-4px);
  box-shadow: 0 18px 32px -10px rgba(14, 18, 9, 0.18);
}

/* ==== END LOT 13B ==== */

/* ==== LOT 13C — CTA button interactions ==== */

/* Cible UNIQUEMENT les vrais boutons (anchors / button) — jamais les wrappers div.
   Pour les Elementor button widgets dont le wrapper a une classe personnalisée
   (ex: .bc-hero-btn-primary appliqué via _css_classes), on cible
   `.bc-hero-btn-primary .elementor-button` pour atteindre l'anchor interne. */
.elementor-button,
a[class*="-btn-primary"],
a[class*="-btn-ghost"],
[class*="-btn-primary"] .elementor-button,
[class*="-btn-ghost"]   .elementor-button,
a.bc-cta-primary,
a.bc-cta-ghost,
button[type="submit"] {
  transition:
    transform 420ms cubic-bezier(0.22, 1, 0.36, 1),
    box-shadow 420ms cubic-bezier(0.22, 1, 0.36, 1);
  will-change: transform;
}

/* HOVER — lift + ombre douce CONTENUE (reste sous le bouton, suit le radius) */
.elementor-button:hover,
a[class*="-btn-primary"]:hover,
a[class*="-btn-ghost"]:hover,
[class*="-btn-primary"] .elementor-button:hover,
[class*="-btn-ghost"]   .elementor-button:hover,
a.bc-cta-primary:hover,
a.bc-cta-ghost:hover,
button[type="submit"]:hover {
  transform: translateY(-3px);
  box-shadow: 0 8px 16px -4px rgba(86, 100, 56, 0.28);
}

/* ACTIVE — push down rapide */
.elementor-button:active,
a[class*="-btn-primary"]:active,
a[class*="-btn-ghost"]:active,
[class*="-btn-primary"] .elementor-button:active,
[class*="-btn-ghost"]   .elementor-button:active,
a.bc-cta-primary:active,
a.bc-cta-ghost:active,
button[type="submit"]:active {
  transform: translateY(0);
  transition-duration: 90ms;
  box-shadow: 0 3px 6px -2px rgba(86, 100, 56, 0.20);
}

/* FOCUS clavier */
.elementor-button:focus-visible,
a[class*="-btn-primary"]:focus-visible,
a[class*="-btn-ghost"]:focus-visible,
[class*="-btn-primary"] .elementor-button:focus-visible,
[class*="-btn-ghost"]   .elementor-button:focus-visible,
a.bc-cta-primary:focus-visible,
a.bc-cta-ghost:focus-visible,
button[type="submit"]:focus-visible {
  outline: 2px solid rgba(140, 154, 91, 0.55);
  outline-offset: 3px;
}

/* ==== END LOT 13C ==== */

/* ==== LOT 13D — mobile menu CTA ==== */

/* Desktop : item masqué (la CTA header reste visible) */
@media (min-width: 768px) {
  .menu-item.bc-mobile-cta,
  li.bc-mobile-cta {
    display: none !important;
  }
}

/* Mobile : item stylé en bouton vert plein, en bas du drawer */
@media (max-width: 767px) {
  /* Conteneur de l'item dans le drawer */
  .elementor-nav-menu--dropdown .menu-item.bc-mobile-cta,
  nav.elementor-nav-menu--dropdown li.bc-mobile-cta {
    margin: 16px 20px !important;
    border: 0 !important;
    background: transparent !important;
  }

  /* Lien transformé en bouton pill vert */
  .elementor-nav-menu--dropdown .menu-item.bc-mobile-cta > a,
  nav.elementor-nav-menu--dropdown li.bc-mobile-cta > a {
    background-color: #8C9A5B !important;
    color: #FFFFFF !important;
    border-radius: 999px !important;
    padding: 14px 28px !important;
    text-align: center !important;
    display: block !important;
    font-weight: 600 !important;
    font-size: 16px !important;
    letter-spacing: 0.2px !important;
    border-bottom: 0 !important;
    transition:
      transform 420ms cubic-bezier(0.22, 1, 0.36, 1),
      box-shadow 420ms cubic-bezier(0.22, 1, 0.36, 1);
  }

  /* Hover/active cohérent avec LOT 13C */
  .elementor-nav-menu--dropdown .menu-item.bc-mobile-cta > a:hover,
  nav.elementor-nav-menu--dropdown li.bc-mobile-cta > a:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 16px -4px rgba(86, 100, 56, 0.32);
  }
  .elementor-nav-menu--dropdown .menu-item.bc-mobile-cta > a:active,
  nav.elementor-nav-menu--dropdown li.bc-mobile-cta > a:active {
    transform: translateY(0);
    transition-duration: 90ms;
  }
}

/* ==== END LOT 13D ==== */

/* ==== LOT 13E — mobile menu fixes ==== */

/* 1) ESPACE entre la liste des items et le bouton Devis Gratuit */
@media (max-width: 767px) {
  .elementor-nav-menu--dropdown .menu-item.bc-mobile-cta,
  nav.elementor-nav-menu--dropdown li.bc-mobile-cta {
    margin-top: 40px !important;
    margin-bottom: 24px !important;
  }
}

/* 2) FIX :hover figé sur device tactile
      Sur mobile, le :hover reste collé à l'item touché parce qu'il n'y a
      pas de mouseout. Résultat : un item apparaît faussement "actif" (vert
      italique). On neutralise les styles hover quand le pointer est coarse
      (= doigt) ET qu'aucun hover réel n'est dispo. */
@media (hover: none) and (pointer: coarse) {
  /* Neutralise les changements visuels hover sur les items du dropdown */
  header .elementor-nav-menu--dropdown .elementor-item:hover,
  header .elementor-nav-menu--dropdown .elementor-nav-menu li a:hover {
    color: inherit !important;
    font-style: normal !important;
    padding-left: 0 !important;
  }
  /* Neutralise le chevron > qui apparaît au hover */
  header .elementor-nav-menu--dropdown .elementor-nav-menu li a:hover::after {
    opacity: 0 !important;
    transform: translateY(-50%) !important;
  }

  /* IMPORTANT : on garde l'effet sur l'item RÉELLEMENT actif (current page).
     elementor-item-active est ajouté par Elementor seulement sur l'URL courante.
     Cette règle EST conservée intentionnellement par sa spécificité supérieure. */
}

/* ==== END LOT 13E ==== */

/* ==== LOT 13F — small desktop menu fit (1025-1349px) ==== */
@media (min-width: 1025px) and (max-width: 1349px) {

  /* 1) Forcer flex nowrap sur les containers du header pour interdire le wrap */
  header .e-con-inner,
  header .e-con-boxed > .e-con-inner,
  header [data-element_type="container"] > .e-con-inner,
  header .elementor-element.e-flex {
    flex-wrap: nowrap !important;
  }

  /* 2) Compresser les items du menu nav (font + padding) */
  header .elementor-nav-menu > li > a,
  header .elementor-nav-menu li a.elementor-item {
    padding: 10px 7px !important;
    font-size: 13px !important;
    letter-spacing: -0.1px !important;
  }

  /* 3) Réduire le CTA Devis Gratuit (hdr00005) du header */
  header .elementor-element-hdr00005 .elementor-button,
  header .elementor-element-hdr00005 a.elementor-button {
    padding: 10px 18px !important;
    font-size: 13px !important;
  }

  /* 4) Logo : laisser respirer mais cap à 100px (au lieu de plus large) */
  header .elementor-location-header img[src*="logo"],
  header .elementor-widget-image img[src*="/logos/"] {
    max-width: 100px !important;
    height: auto !important;
  }
}
/* ==== END LOT 13F ==== */

/* ==== LOT 13C — header frosted glass (backdrop blur) ==== */
/* Frosted glass effect on the header pill (hdr00002).
   Works at top of page (over body bg) and when sticky scrolled (over content below).
   The pill bg is rgba so the blur is visible. */

/* Desktop + tablet : keep pill shape, add backdrop blur */
header .elementor-element-hdr00002 {
  -webkit-backdrop-filter: blur(20px) saturate(180%) !important;
  backdrop-filter: blur(20px) saturate(180%) !important;
  background-color: rgba(251,251,251,0.55) !important;
  border: 1px solid rgba(255,255,255,0.45) !important;
}

/* Soften shadow so the frosted feel is not crushed by a hard drop */
header .elementor-element-hdr00002 {
  box-shadow: 0 8px 24px rgba(14,18,9,0.06) !important;
}

/* Sticky state (scrolled) : keep frosted, slightly increase opacity for legibility */
header .elementor-sticky--active .elementor-element-hdr00002,
header .elementor-element-hdr00002.elementor-sticky--active {
  background-color: rgba(251,251,251,0.65) !important;
  box-shadow: 0 4px 20px rgba(14,18,9,0.08) !important;
}

/* Outer wrap stays fully transparent so the blur reads through */
header .elementor-element-hdr00001 {
  background-color: transparent !important;
}

/* Safari fallback : if backdrop-filter is unsupported, bump opacity */
@supports not ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) {
  header .elementor-element-hdr00002 {
    background-color: rgba(251,251,251,0.92) !important;
  }
}

/* Mobile (<=767px) : LOT 9P/9P2 force border-radius:0 (full bar). Keep frosted there too. */
@media (max-width: 767px) {
  header.elementor-location-header .elementor-22 .elementor-element.elementor-element-hdr00002 {
    -webkit-backdrop-filter: blur(18px) saturate(180%) !important;
    backdrop-filter: blur(18px) saturate(180%) !important;
    background-color: rgba(251,251,251,0.65) !important;
    border: none !important;
    border-bottom: 1px solid rgba(255,255,255,0.35) !important;
    box-shadow: 0 1px 4px rgba(14,18,9,0.05) !important;
  }
}
/* ==== END LOT 13C ==== */

/* ==== LOT 14E — sec20000 fix specificity ==== */
/* ============================================================
   Strategy:
   - Cosmetic: spec (0,3,2) — beats theme/browser defaults, loses to UI overrides via cascade order
   - Structural: !important on grid/position
   - Pseudo-elements ::before/::after for badge & winner card overlay
   ============================================================ */

/* SECTION background (forced default, UI Background panel overrides via Elementor's specificity-matched auto-CSS injected later in cascade) */
.elementor-24 .elementor-element.elementor-element-sec20000 {
  position: relative;
  overflow: hidden;
}
.elementor-24 .elementor-element.elementor-element-sec20000::before {
  content: "";
  position: absolute;
  top: 0; left: 50%;
  transform: translateX(-50%);
  width: 90%;
  max-width: 1100px;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(200,171,59,0.45), transparent);
  pointer-events: none;
}

.elementor-24 .elementor-element.elementor-element-sec20inner {
  width: 100% !important;
  max-width: 1200px !important;
  --content-width: 1200px !important;
  margin-inline: auto !important;
}
.elementor-24 .elementor-element.elementor-element-sec20inner > .e-con-inner {
  width: 100% !important;
  max-width: 1200px !important;
  --content-width: 1200px !important;
  margin-inline: auto !important;
  padding: 0 !important;
}

/* TYPOGRAPHY DEFAULTS — spec (0,3,2) — UI overrides win via cascade */
.elementor-element.elementor-element-sec20kicker .elementor-heading-title {
  color: #C8AB3B;
  font-family: "Inter", sans-serif;
  font-size: 12px;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  font-weight: 600;
  line-height: 1.2;
  margin: 0 0 18px 0;
}
.elementor-element.elementor-element-sec20title .elementor-heading-title {
  font-family: "Playfair Display", serif;
  font-weight: 700;
  font-size: 56px;
  line-height: 1.05;
  letter-spacing: -1.2px;
  color: #FFFFFF;
  margin: 0 0 14px 0;
  max-width: 800px;
}
.elementor-element.elementor-element-sec20sub .elementor-heading-title {
  font-family: "Playfair Display", serif;
  font-style: italic;
  font-weight: 400;
  font-size: 22px;
  color: rgba(255,255,255,0.65);
  margin: 0 0 64px 0;
  line-height: 1.4;
  max-width: 700px;
}

/* COL 1 — Label */


/* COL 2 — Loser */


/* COL 3 — Winner */


/* HEADER PILLS text colors */



/* ============ STRUCTURAL (forced) ============ */

/* TABLE container */



/* WINNER CARD overlay */


/* RECOMMANDÉ badge */


/* ROWS — grid 3 cols */








/* HEADER PILL layout */






/* DATA CELLS layout */






/* Hover micro-interaction */



/* Vertical hairline col 1 / col 2 */


/* TABLET */
@media (max-width: 1024px) {
  .elementor-24 .elementor-element[class*="elementor-element-sec20row"] { grid-template-columns: 180px 1fr 1fr !important; }
  .elementor-24 .elementor-element.elementor-element-sec20table::after { width: calc((100% - 180px) / 2); }
  .elementor-24 .elementor-widget.bc-cmp-cell { padding: 18px 14px !important; min-height: 68px; }
  .elementor-24 .elementor-widget.bc-cmp-cell-h { padding: 18px 14px !important; }
  .elementor-element-sec20rh2 .elementor-icon-box-title { font-size: 12.5px; }
  .elementor-element-sec20rh3 .elementor-icon-box-title { font-size: 14.5px; }
  .elementor-24 .bc-cmp-cell-h .elementor-icon-box-icon .elementor-icon { width: 24px; height: 24px; font-size: 12px; }
  .elementor-24 .bc-cmp-cell-label .elementor-heading-title { font-size: 15px; }
  .elementor-24 .bc-cmp-cell-mid .elementor-heading-title { font-size: 13.5px; }
  .elementor-24 .bc-cmp-cell-right .elementor-heading-title { font-size: 14.5px; }
}

/* MOBILE */
@media (max-width: 600px) {
  
  
  .elementor-element.elementor-element-sec20kicker .elementor-heading-title { font-size: 11px; }
  .elementor-element.elementor-element-sec20title .elementor-heading-title { font-size: 30px; line-height: 1.1; }
  .elementor-element.elementor-element-sec20sub .elementor-heading-title { font-size: 15px; margin-bottom: 32px; }
  
  
  
  
  
  
  
  
  
  
  
  
  
}
/* ==== END LOT 14E ==== */
/* ==== LOT 14F — sec20000 table redesign (cream-bg friendly, color-contrast hierarchy) ==== */

/* TABLE wrapper */
.elementor-24 .elementor-element.elementor-element-sec20table {
  display: flex !important;
  flex-direction: column !important;
  width: 100% !important;
  max-width: 100% !important;
  padding: 0 !important;
  gap: 0 !important;
  position: relative;
  margin-top: 28px;
}
.elementor-24 .elementor-element.elementor-element-sec20table > .e-con-inner {
  width: 100% !important;
  max-width: 100% !important;
  padding: 0 !important;
  gap: 0 !important;
}

/* WINNER CARD overlay */
.elementor-24 .elementor-element.elementor-element-sec20table::after {
  content: "";
  position: absolute;
  top: -28px;
  bottom: -16px;
  right: 0;
  width: calc((100% - 220px) / 2);
  background: linear-gradient(180deg, rgba(200,171,59,0.05) 0%, rgba(200,171,59,0.02) 100%);
  border: 1.5px solid rgba(200,171,59,0.55);
  border-radius: 18px;
  box-shadow: 0 0 60px -16px rgba(200,171,59,0.30);
  pointer-events: none;
  z-index: 0;
}

/* RECOMMANDÉ badge */
.elementor-24 .elementor-element.elementor-element-sec20rh3::before {
  content: "★ RECOMMANDÉ";
  position: absolute;
  top: -42px;
  left: 50%;
  transform: translateX(-50%);
  background: linear-gradient(135deg, #E8C547 0%, #C8AB3B 50%, #A88E2B 100%);
  color: #1A2012;
  font-family: "Inter", sans-serif;
  font-weight: 800;
  font-size: 10.5px;
  letter-spacing: 0.20em;
  padding: 7px 16px;
  border-radius: 999px;
  white-space: nowrap;
  box-shadow:
    0 6px 18px -4px rgba(200,171,59,0.65),
    0 0 0 4px rgba(200,171,59,0.15);
  z-index: 3;
  pointer-events: none;
}

/* ROWS — grid 3 cols */
.elementor-24 .elementor-element[class*="elementor-element-sec20row"] {
  display: grid !important;
  grid-template-columns: 220px 1fr 1fr !important;
  width: 100% !important;
  max-width: 100% !important;
  padding: 0 !important;
  gap: 0 !important;
  position: relative;
  z-index: 1;
}
.elementor-24 .elementor-element[class*="elementor-element-sec20row"] > .e-con-inner {
  display: contents !important;
}

/* HEADER row */
.elementor-24 .elementor-element.elementor-element-sec20rowH {
  position: relative;
  border-bottom: 1px solid rgba(26,32,18,0.18) !important;
}
.elementor-24 .elementor-element.elementor-element-sec20rowH .elementor-element.elementor-element-sec20rh2 {
  grid-column: 2 !important;
  position: relative;
}
.elementor-24 .elementor-element.elementor-element-sec20rowH .elementor-element.elementor-element-sec20rh3 {
  grid-column: 3 !important;
  position: relative;
}

/* DATA rows — dark hairlines visible on cream */
.elementor-24 .elementor-element.bc-cmp-row-data {
  border-top: 1px solid rgba(26,32,18,0.10) !important;
  transition: background-color 250ms ease;
}
.elementor-24 .elementor-element.bc-cmp-row-data:hover {
  background-color: rgba(200,171,59,0.06) !important;
}

/* ============ HEADER PILLS (icon-box widgets) ============ */
.elementor-24 .elementor-widget.bc-cmp-cell-h {
  padding: 22px 18px !important;
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  width: auto !important;
}
.elementor-24 .bc-cmp-cell-h .elementor-widget-container {
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
}
/* Force icon-box wrapper inline on header */
.elementor-24 .bc-cmp-cell-h .elementor-icon-box-wrapper {
  display: inline-flex !important;
  flex-direction: row !important;
  align-items: center !important;
  gap: 12px !important;
  text-align: center !important;
}
.elementor-24 .bc-cmp-cell-h .elementor-icon-box-icon {
  margin: 0 !important;
}
.elementor-24 .bc-cmp-cell-h .elementor-icon-box-icon .elementor-icon {
  width: 28px;
  height: 28px;
  border-radius: 5px;
  font-size: 14px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.elementor-24 .bc-cmp-cell-h .elementor-icon-box-content {
  text-align: left !important;
}
.elementor-24 .bc-cmp-cell-h .elementor-icon-box-title {
  margin: 0 !important;
}
.elementor-24 .bc-cmp-cell-h .elementor-icon-box-title,
.elementor-24 .bc-cmp-cell-h .elementor-icon-box-title a,
.elementor-24 .bc-cmp-cell-h .elementor-icon-box-title span {
  font-family: "Inter", sans-serif;
  font-weight: 700;
  font-size: 16px;
  letter-spacing: 0.10em;
  text-transform: uppercase;
  line-height: 1;
}
/* Loser muted */
.elementor-element-sec20rh2 .elementor-icon-box-title,
.elementor-element-sec20rh2 .elementor-icon-box-title a,
.elementor-element-sec20rh2 .elementor-icon-box-title span {
  color: rgba(26,32,18,0.50);
  font-weight: 600;
  font-size: 14.5px;
}
/* Winner prominent */
.elementor-element-sec20rh3 .elementor-icon-box-title,
.elementor-element-sec20rh3 .elementor-icon-box-title a,
.elementor-element-sec20rh3 .elementor-icon-box-title span {
  color: #1A2012;
  font-weight: 800;
  font-size: 17px;
  text-shadow: 0 0 18px rgba(200,171,59,0.30);
}

/* ============ DATA CELLS layout ============ */
.elementor-24 .elementor-widget.bc-cmp-cell {
  padding: 22px 20px !important;
  display: flex !important;
  align-items: center !important;
  width: auto !important;
  min-height: 78px;
  position: relative;
}
.elementor-24 .bc-cmp-cell .elementor-widget-container {
  width: 100% !important;
}
.elementor-24 .bc-cmp-cell .elementor-heading-title {
  margin: 0;
}

/* COL 1 — Label : serif dark olive */
.elementor-24 .bc-cmp-cell-label {
  justify-content: flex-start !important;
  padding-left: 8px !important;
}
.elementor-24 .bc-cmp-cell-label .elementor-heading-title {
  font-family: "Playfair Display", serif;
  font-weight: 700;
  font-size: 18px;
  line-height: 1.25;
  letter-spacing: -0.2px;
  text-align: left;
  color: #1A2012;
}

/* COL 2 — Loser : muted dark olive (40% alpha) */
.elementor-24 .bc-cmp-cell-mid {
  justify-content: center !important;
}
.elementor-24 .bc-cmp-cell-mid .elementor-heading-title {
  font-family: "Inter", sans-serif;
  font-weight: 400;
  font-size: 15px;
  line-height: 1.45;
  text-align: center;
  color: rgba(26,32,18,0.42);
}

/* COL 3 — Winner : sage green bold + subtle gold shadow */
.elementor-24 .bc-cmp-cell-right {
  justify-content: center !important;
}
.elementor-24 .bc-cmp-cell-right .elementor-heading-title {
  font-family: "Inter", sans-serif;
  font-weight: 600;
  font-size: 16.5px;
  line-height: 1.4;
  letter-spacing: -0.1px;
  text-align: center;
  color: #1A2012;
  text-shadow: 0 0 12px rgba(200,171,59,0.25);
}

/* Hover micro-interactions */
.elementor-24 .bc-cmp-row-data:hover .bc-cmp-cell-label .elementor-heading-title {
  color: #C8AB3B;
  transition: color 200ms ease;
}
.elementor-24 .bc-cmp-row-data:hover .bc-cmp-cell-right .elementor-heading-title {
  color: #6E7E47;
}

/* Vertical hairline col 1 / col 2 */
.elementor-24 .elementor-element.bc-cmp-row-data .bc-cmp-cell-mid::before {
  content: "";
  position: absolute;
  left: 0;
  top: 18px;
  bottom: 18px;
  width: 1px;
  background: rgba(26,32,18,0.10);
  z-index: 0;
}

/* TABLET */
@media (max-width: 1024px) {
  .elementor-24 .elementor-element[class*="elementor-element-sec20row"] { grid-template-columns: 180px 1fr 1fr !important; }
  .elementor-24 .elementor-element.elementor-element-sec20table::after { width: calc((100% - 180px) / 2); }
  .elementor-24 .elementor-widget.bc-cmp-cell { padding: 18px 14px !important; min-height: 68px; }
  .elementor-24 .elementor-widget.bc-cmp-cell-h { padding: 18px 14px !important; }
  .elementor-element-sec20rh2 .elementor-icon-box-title { font-size: 12.5px; }
  .elementor-element-sec20rh3 .elementor-icon-box-title { font-size: 14.5px; }
  .elementor-24 .bc-cmp-cell-h .bc-cmp-x svg, .elementor-24 .bc-cmp-cell-h .bc-cmp-check svg { width: 22px; height: 22px; }
  .elementor-24 .bc-cmp-cell-label .elementor-heading-title { font-size: 15px; }
  .elementor-24 .bc-cmp-cell-mid .elementor-heading-title { font-size: 13.5px; }
  .elementor-24 .bc-cmp-cell-right .elementor-heading-title { font-size: 14.5px; }
}

/* MOBILE */
@media (max-width: 600px) {
  /* Badge — much smaller, higher to not overlap header */
  .elementor-24 .elementor-element.elementor-element-sec20rh3::before {
    content: "★ RECOMMANDÉ";
    font-size: 8px;
    padding: 4px 8px;
    top: -38px;
    letter-spacing: 0.14em;
  }
  /* Winner card — more clearance top so it doesn't cut through text */
  .elementor-24 .elementor-element[class*="elementor-element-sec20row"] { grid-template-columns: 95px 1fr 1fr !important; }
  .elementor-24 .elementor-element.elementor-element-sec20table {
    margin-top: 48px;
  }
  .elementor-24 .elementor-element.elementor-element-sec20table::after {
    width: calc((100% - 95px) / 2);
    border-radius: 12px;
    top: -10px;
    bottom: -8px;
  }
  /* Cells compact */
  .elementor-24 .elementor-widget.bc-cmp-cell { padding: 12px 6px !important; min-height: 56px; }
  .elementor-24 .elementor-widget.bc-cmp-cell-h { padding: 14px 6px !important; }
  /* Stack icon + text vertically — gives text full column width */
  .elementor-24 .bc-cmp-cell-h .elementor-icon-box-wrapper {
    flex-direction: column !important;
    align-items: center !important;
    gap: 6px !important;
    text-align: center !important;
  }
  .elementor-24 .bc-cmp-cell-h .elementor-icon-box-content { text-align: center !important; }
  .elementor-24 .bc-cmp-cell-h .elementor-icon-box-icon .elementor-icon { width: 22px; height: 22px; font-size: 11px; border-radius: 4px; }
  /* Title fits on 1-2 lines centered */
  .elementor-element-sec20rh2 .elementor-icon-box-title { font-size: 10.5px; line-height: 1.2; }
  .elementor-element-sec20rh3 .elementor-icon-box-title { font-size: 11.5px; line-height: 1.2; }
  /* Data cells smaller */
  .elementor-24 .bc-cmp-cell-label .elementor-heading-title { font-size: 12px; line-height: 1.2; }
  .elementor-24 .bc-cmp-cell-mid .elementor-heading-title { font-size: 11px; line-height: 1.3; }
  .elementor-24 .bc-cmp-cell-right .elementor-heading-title { font-size: 12px; line-height: 1.3; }
}
/* ==== END LOT 14F ==== */

/* ==== LOT 13A - bc-cmp row-table layout + p104 binding ==== */

/* ============================================================
   Tableau comparatif row-based — design 100% class-based
   Cible : .bc-cmp-section / -inner / -table / -row / -row-h / -row-data
           .bc-cmp-cell-label / -mid / -right / -h / -bad / -good
   Universel : applique sur toute page (.elementor-XX) sans préfixe
   ============================================================ */

/* --- 1. Inner centré 1200 max (fonctionne en mode boxed ET full) --- */
.bc-cmp-inner,
.bc-cmp-inner > .e-con-inner {
  max-width: 1200px !important;
  --content-width: 1200px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* --- 2. Table : carte blanche arrondie + position pour ::after gold-glow --- */
/* Force padding/gap a 0 sur la table elle-meme (mode full) ET son inner (mode boxed) */
.bc-cmp-table {
  background: #FFFFFF;
  border-radius: 24px;
  margin-top: 32px;
  position: relative;
  overflow: visible;  /* pour que le badge RECOMMANDÉ déborde au-dessus */
  padding: 0 !important;
  gap: 0 !important;
  --gap: 0 !important;
}
.bc-cmp-table > .e-con-inner {
  width: 100% !important;
  max-width: 100% !important;
  padding: 0 !important;
  gap: 0 !important;
  --gap: 0 !important;
  position: relative;
  z-index: 1;  /* contenu au-dessus du ::after */
}

/* Rows : pas de padding outer, pas de gap entre cells (le gap est sur grid inner) */
.bc-cmp-row {
  padding: 0 !important;
  --gap: 0 !important;
  --row-gap: 0 !important;
}

/* Colonne droite (BÂTI-CLEAN) : highlight doré qui couvre header + toutes data rows */
.bc-cmp-table::after {
  content: "";
  position: absolute;
  top: -16px;
  bottom: -16px;
  right: 0;
  width: calc((100% - 220px) / 2);
  background: linear-gradient(180deg, rgba(200,171,59,0.05) 0%, rgba(200,171,59,0.02) 100%);
  border: 1.5px solid rgba(200,171,59,0.55);
  border-radius: 18px;
  box-shadow: 0 0 60px -16px rgba(200,171,59,0.30);
  pointer-events: none;
  z-index: 0;
}

/* --- 3. Row : grid 3 colonnes (label 220px / mid 1fr / right 1fr) --- match home exactement */
.bc-cmp-row > .e-con-inner {
  display: grid !important;
  grid-template-columns: 220px 1fr 1fr !important;
  align-items: stretch !important;
  gap: 0 !important;
  width: 100% !important;
  padding: 0 !important;
}

/* --- 4. Header row : pas de fond sombre, juste border-bottom --- */
.bc-cmp-row-h {
  position: relative;
  border-bottom: 1px solid rgba(26,32,18,0.18);
}
/* Le header utilise grid-column placement : empty label en col1, bad → col2, good → col3 */
.bc-cmp-row-h > .e-con-inner > .bc-cmp-cell-bad {
  grid-column: 2 !important;
  position: relative;
}
.bc-cmp-row-h > .e-con-inner > .bc-cmp-cell-good {
  grid-column: 3 !important;
  position: relative;
}

/* --- 5. ★ RECOMMANDÉ badge au-dessus de la colonne BÂTI-CLEAN --- */
.bc-cmp-row-h > .e-con-inner > .bc-cmp-cell-good::before {
  content: "★ RECOMMANDÉ";
  position: absolute;
  top: -42px;
  left: 50%;
  transform: translateX(-50%);
  background: linear-gradient(135deg, #E8C547 0%, #C8AB3B 50%, #A88E2B 100%);
  color: #1A2012;
  font-family: "Inter", sans-serif;
  font-weight: 800;
  font-size: 10.5px;
  letter-spacing: 0.20em;
  padding: 7px 16px;
  border-radius: 999px;
  white-space: nowrap;
  box-shadow:
    0 6px 18px -4px rgba(200,171,59,0.65),
    0 0 0 4px rgba(200,171,59,0.15);
  z-index: 3;
  pointer-events: none;
}

/* --- 6. Data rows : separator + hover --- */
.bc-cmp-row-data > .e-con-inner {
  border-top: 1px solid rgba(26,32,18,0.10);
  min-height: 78px;
}
.bc-cmp-row-data {
  transition: background-color 250ms ease;
}
.bc-cmp-row-data:hover > .e-con-inner {
  background-color: rgba(200,171,59,0.06);
}

/* --- 7. Cellules data : reset flex, padding, base styling --- */
.bc-cmp-row > .e-con-inner > .elementor-element.bc-cmp-cell,
.bc-cmp-row > .e-con-inner > .elementor-element.bc-cmp-cell-h {
  width: 100% !important;
  max-width: 100% !important;
  flex: 1 1 auto !important;
  min-width: 0 !important;
}

.elementor-widget.bc-cmp-cell {
  padding: 22px 20px !important;
  display: flex !important;
  align-items: center !important;
  min-height: 78px;
  position: relative;
}
.elementor-widget.bc-cmp-cell .elementor-widget-container {
  width: 100% !important;
}
.elementor-widget.bc-cmp-cell .elementor-heading-title {
  margin: 0;
}

/* Label : Playfair, gras, gauche (specificite 0,3,1 bat .elementor-widget-heading) */
.elementor-widget.bc-cmp-cell-label {
  justify-content: flex-start !important;
  padding-left: 24px !important;
}
.elementor-widget.bc-cmp-cell-label .elementor-heading-title {
  font-family: "Playfair Display", serif !important;
  font-weight: 700 !important;
  font-size: 18px !important;
  line-height: 1.25 !important;
  letter-spacing: -0.2px !important;
  text-align: left !important;
  color: #1A2012 !important;
}

/* Mid (Haute pression option) : Inter regular gris, centre */
.elementor-widget.bc-cmp-cell-mid {
  justify-content: center !important;
  position: relative;
}
.elementor-widget.bc-cmp-cell-mid::before {
  content: "";
  position: absolute;
  left: 0;
  top: 18px;
  bottom: 18px;
  width: 1px;
  background: rgba(26,32,18,0.10);
  z-index: 0;
}
.elementor-widget.bc-cmp-cell-mid .elementor-heading-title {
  font-family: "Inter", sans-serif !important;
  font-weight: 400 !important;
  font-size: 15px !important;
  line-height: 1.45 !important;
  text-align: center !important;
  color: rgba(26,32,18,0.55) !important;
}

/* Right (BÂTI-CLEAN option) : Inter semi-bold, sombre avec gold shadow */
.elementor-widget.bc-cmp-cell-right {
  justify-content: center !important;
  position: relative;
}
.elementor-widget.bc-cmp-cell-right::before {
  content: "";
  position: absolute;
  left: 0;
  top: 18px;
  bottom: 18px;
  width: 1px;
  background: rgba(26,32,18,0.10);
  z-index: 0;
}
.elementor-widget.bc-cmp-cell-right .elementor-heading-title {
  font-family: "Inter", sans-serif !important;
  font-weight: 600 !important;
  font-size: 16.5px !important;
  line-height: 1.4 !important;
  letter-spacing: -0.1px !important;
  text-align: center !important;
  color: #1A2012 !important;
  text-shadow: 0 0 12px rgba(200,171,59,0.25);
}

/* Hover effects sur data row : labels jauni, valeurs droites verdies */
.bc-cmp-row-data:hover .bc-cmp-cell-label .elementor-heading-title {
  color: #C8AB3B !important;
  transition: color 200ms ease;
}
.bc-cmp-row-data:hover .bc-cmp-cell-right .elementor-heading-title {
  color: #6E7E47 !important;
}

/* --- 8. Cellule header (icon-box) : layout horizontal icon + title, CENTRE dans grid cell --- */
.elementor-widget.bc-cmp-cell-h {
  padding: 22px 18px !important;
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  background: transparent !important;
}
.elementor-widget.bc-cmp-cell-h .elementor-widget-container {
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  width: 100% !important;
}
.elementor-widget.bc-cmp-cell-h .elementor-icon-box-wrapper {
  display: inline-flex !important;
  flex-direction: row !important;
  align-items: center !important;
  gap: 12px !important;
  text-align: center !important;
}
.elementor-widget.bc-cmp-cell-h .elementor-icon-box-icon {
  margin: 0 !important;
}
.elementor-widget.bc-cmp-cell-h .elementor-icon-box-icon .elementor-icon {
  width: 32px !important;
  height: 32px !important;
  border-radius: 6px !important;
  font-size: 14px !important;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.elementor-widget.bc-cmp-cell-h .elementor-icon-box-content {
  text-align: left !important;
}
.elementor-widget.bc-cmp-cell-h .elementor-icon-box-title {
  margin: 0 !important;
}

/* HAUTE PRESSION title : faded gray, less prominent */
.bc-cmp-cell-bad .elementor-icon-box-title,
.bc-cmp-cell-bad .elementor-icon-box-title a,
.bc-cmp-cell-bad .elementor-icon-box-title span {
  font-family: "Inter", sans-serif !important;
  font-weight: 600 !important;
  font-size: 14.5px !important;
  letter-spacing: 0.10em !important;
  text-transform: uppercase !important;
  line-height: 1 !important;
  color: rgba(26,32,18,0.50) !important;
}

/* BÂTI-CLEAN title : dark + gold text-shadow, more prominent */
.bc-cmp-cell-good .elementor-icon-box-title,
.bc-cmp-cell-good .elementor-icon-box-title a,
.bc-cmp-cell-good .elementor-icon-box-title span {
  font-family: "Inter", sans-serif !important;
  font-weight: 800 !important;
  font-size: 17px !important;
  letter-spacing: 0.10em !important;
  text-transform: uppercase !important;
  line-height: 1 !important;
  color: #1A2012 !important;
  text-shadow: 0 0 18px rgba(200,171,59,0.30);
}

/* --- 9. Responsive mobile (≤767px) — 3-col compact (matche home, PAS de stack) --- */
@media (max-width: 767px) {
  /* Garde le grid 3 colonnes mais compact : label 95px + 2 options égales */
  .bc-cmp-row > .e-con-inner {
    grid-template-columns: 95px 1fr 1fr !important;
  }

  /* Highlight column adapte sa largeur (matche home mobile rule) */
  .bc-cmp-table::after {
    width: calc((100% - 95px) / 2);
    border-radius: 12px;
    top: -10px;
    bottom: -8px;
  }

  /* Badge RECOMMANDÉ plus petit */
  .bc-cmp-row-h > .e-con-inner > .bc-cmp-cell-good::before {
    content: "★ RECOMMANDÉ";
    font-size: 8px;
    padding: 4px 8px;
    top: -38px;
    letter-spacing: 0.14em;
  }

  /* Cellule header mobile : icon AU-DESSUS du title (column flex) */
  .elementor-widget.bc-cmp-cell-h .elementor-icon-box-wrapper {
    flex-direction: column !important;
    align-items: center !important;
    gap: 6px !important;
    text-align: center !important;
  }
  .elementor-widget.bc-cmp-cell-h .elementor-icon-box-content {
    text-align: center !important;
  }
  .elementor-widget.bc-cmp-cell-h .elementor-icon-box-icon .elementor-icon {
    width: 22px !important;
    height: 22px !important;
    font-size: 11px !important;
    border-radius: 4px !important;
  }

  /* Padding compact */
  .elementor-widget.bc-cmp-cell {
    padding: 12px 6px !important;
    min-height: 56px;
  }
  .elementor-widget.bc-cmp-cell-h {
    padding: 14px 6px !important;
  }
  .elementor-widget.bc-cmp-cell-label {
    padding-left: 10px !important;
    justify-content: flex-start !important;
  }

  /* Fonts plus petites pour tenir en 3 cols compactes */
  .elementor-widget.bc-cmp-cell-label .elementor-heading-title { font-size: 12px !important; line-height: 1.2 !important; }
  .elementor-widget.bc-cmp-cell-mid .elementor-heading-title { font-size: 11px !important; line-height: 1.3 !important; }
  .elementor-widget.bc-cmp-cell-right .elementor-heading-title { font-size: 12px !important; line-height: 1.3 !important; }
  .bc-cmp-cell-bad .elementor-icon-box-title,
  .bc-cmp-cell-bad .elementor-icon-box-title a,
  .bc-cmp-cell-bad .elementor-icon-box-title span {
    font-size: 10.5px !important;
    line-height: 1.2 !important;
    letter-spacing: 0.06em !important;
  }
  .bc-cmp-cell-good .elementor-icon-box-title,
  .bc-cmp-cell-good .elementor-icon-box-title a,
  .bc-cmp-cell-good .elementor-icon-box-title span {
    font-size: 11.5px !important;
    line-height: 1.2 !important;
    letter-spacing: 0.06em !important;
  }

  /* Espacement entre table et titre */
  .bc-cmp-table {
    margin-top: 48px;
  }
}

/* ==== END LOT 13A ==== */

/* ==== LOT HIDE-CARD-DESC : masquer la description des cards résultats ==== */
.bc-tbr-card-desc { display: none !important; }
/* ==== END LOT HIDE-CARD-DESC ==== */
/* ==== LOT SMOOTH-SCROLL ==== */
html { scroll-behavior: smooth; }
/* ==== END LOT SMOOTH-SCROLL ==== */
/* ==== LOT SEC57-MOBILE ==== */
/* Slider standalone .bc-sld-wrap (HTML widget sec57 / sec20).
   EXCLUT .bc-hero-sld (slider du hero) qui a son propre styling. */
html body .elementor .bc-sld-wrap:not(.bc-hero-sld) {
  aspect-ratio: 16 / 9 !important;
  width: 100% !important;
  max-width: 100% !important;
  display: block !important;
  height: auto !important;
}
@media (max-width: 1024px) {
  html body .elementor .bc-sld-wrap:not(.bc-hero-sld) {
    aspect-ratio: 4 / 3 !important;
    min-height: 240px !important;
  }
}
@media (max-width: 767px) {
  html body .elementor .bc-sld-wrap:not(.bc-hero-sld) {
    aspect-ratio: 4 / 3 !important;
    min-height: 280px !important;
  }
}
/* ==== END LOT SEC57-MOBILE ==== */

/* ==== LOT HOME-SEC80-IMG-FULL ==== */
.elementor-24 #sec80s1img img,
.elementor-24 #sec80s2img img,
.elementor-24 #sec80s3img img,
.elementor-24 #sec80s4img img,
.elementor-24 #sec80s5img img,
.elementor-24 #sec80s6img img,
.elementor-104 #sec80s1img img,
.elementor-104 #sec80s2img img,
.elementor-104 #sec80s3img img,
.elementor-104 #sec80s4img img {
  aspect-ratio: auto !important;
  max-height: none !important;
  min-height: 0 !important;
  height: auto !important;
  width: 100% !important;
  object-fit: contain !important;
  object-position: center !important;
}
@media (min-width: 768px) {
  .elementor-24 #sec80s1img img,
  .elementor-24 #sec80s2img img,
  .elementor-24 #sec80s3img img,
  .elementor-24 #sec80s4img img,
  .elementor-24 #sec80s5img img,
  .elementor-24 #sec80s6img img,
  .elementor-104 #sec80s1img img,
  .elementor-104 #sec80s2img img,
  .elementor-104 #sec80s3img img,
  .elementor-104 #sec80s4img img {
    aspect-ratio: auto !important;
    max-height: none !important;
    min-height: 0 !important;
    height: auto !important;
    object-fit: contain !important;
  }
}
/* ==== END LOT HOME-SEC80-IMG-FULL ==== *//* End custom CSS */