/* MAFATEC 2026 — adaptation WordPress/Elementor sans contenu HTML imposé */
html,body{min-height:100%}
body{overflow-x:hidden;background:var(--paper,#faf8f2);font-size:var(--maf-body-size,1rem)}
.site-main{width:100%;min-height:calc(100vh - 62px)}
.mafatec-entry{padding-top:clamp(2rem,5vw,5rem);padding-bottom:clamp(3rem,7vw,6rem)}
.mafatec-fullwidth,.mafatec-fullwidth .entry-content{width:100%;max-width:none;margin:0;padding:0}.mafatec-fullwidth>*{max-width:none}
.gnav{position:relative;background:var(--maf-header-bg,#fafafa)}
.gnav.is-fixed{position:fixed;top:0;left:0;right:0;animation:mafHeaderIn .32s ease both}.admin-bar .gnav.is-fixed{top:32px}@keyframes mafHeaderIn{from{transform:translateY(-100%)}to{transform:translateY(0)}}
.maf-primary-menu,.maf-footer-menu{list-style:none;display:flex;align-items:center;gap:1.4rem;margin:0;padding:0}.maf-primary-menu a{font-size:var(--maf-link-size,.74rem);font-weight:500;letter-spacing:.04em;color:var(--maf-link-custom,var(--text-soft));transition:color .3s var(--ease);white-space:nowrap;position:relative;text-decoration:none}.maf-primary-menu a::after{content:'';position:absolute;left:0;bottom:-6px;height:1px;width:0;background:var(--champagne);transition:width .4s var(--ease-lux)}.maf-primary-menu a:hover{color:var(--text)}.maf-primary-menu a:hover::after{width:100%}
.gmenu .gmenu-grp{list-style:none}.gmenu .gmenu-grp li{border-top:1px solid var(--line-warm);padding:.5rem 0}.gmenu .gmenu-grp a{font-family:var(--serif);font-size:1.5rem;color:var(--text);display:block;padding:.4rem 0;text-decoration:none}
.mafatec-footer{background:var(--maf-footer-bg,#fafafa)!important;color:var(--text-soft)!important;border-top:1px solid #ececec}.mafatec-footer .wrap{max-width:1180px;margin:0 auto;padding-left:1.5rem;padding-right:1.5rem}.maf-footer-menu a{font-size:.72rem;color:var(--muted);text-decoration:none;transition:color .35s var(--ease)}.maf-footer-menu a:hover{color:var(--champagne-deep)}
body .lfoot{display:none!important}
/* Correctifs Elementor pour que les classes du template agissent aussi sur les wrappers widgets */
.elementor-widget.picto,.elementor-widget-html.picto,.elementor-element.picto{display:flex;align-items:center;justify-content:center}.elementor-widget.panel-title .elementor-heading-title{font:inherit;color:inherit}.elementor-widget.eyebrow .elementor-heading-title{font:inherit;color:inherit;letter-spacing:inherit;text-transform:inherit}.elementor-widget.panel-desc p:last-child{margin-bottom:0}.elementor-button.cta-lux,.elementor-widget-button .cta-lux,.cta-lux.e-button-base{display:inline-flex!important;align-items:center;justify-content:center;text-decoration:none;font-size:var(--maf-button-size,.78rem)}
.panel .elementor-widget-html:has(> .panel-bar){position:static}.panel-bar{display:block}.panel-tags .elementor-widget-text-editor,.panel-tags .elementor-widget-heading{width:auto!important}.panel-tags p{margin:0}
/* Classes Elementor recommandées pour la home : split > panel panel-part/panel-pro > panel-bar + inner > eyebrow, picto, panel-title display, panel-desc, cta-lux, panel-tags */
@media(max-width:782px){.admin-bar .gnav.is-fixed{top:46px}}@media(max-width:860px){.maf-primary-menu{display:none}.gnav-right .gnav-phone{display:none}.gnav-burger{display:flex}.sfoot-in{flex-direction:column;text-align:center;gap:.9rem}.sfoot-links{justify-content:center}}

/* Compatibilité Elementor home split */
body.elementor-page .site-main,
body.elementor-page .mafatec-fullwidth,
body.elementor-page .mafatec-fullwidth .entry-content{padding:0;margin:0;width:100%;max-width:none;}

/* Le conteneur parent Elementor doit avoir la classe split */
.split.elementor-element,
.split.e-con,
.split.e-flexbox-base{display:flex!important;flex-direction:row!important;align-items:stretch!important;justify-content:stretch!important;gap:0!important;width:100%!important;min-height:100% !important;height:100% !important;}
.split.e-con-boxed > .e-con-inner{display:flex!important;flex-direction:row!important;align-items:stretch!important;justify-content:stretch!important;gap:0!important;width:100%!important;max-width:none;}

/* Panneaux Elementor : annule les comportements boxed qui cassent le rendu */
.panel.elementor-element,
.panel.e-con,
.panel.e-flexbox-base{flex:1 1 50%!important;width:50%!important;max-width:none;min-height:100%!important;height:100%!important;display:flex!important;align-items:center!important;justify-content:center!important;gap:0!important;}
.panel.e-con-boxed > .e-con-inner{width:100%!important;max-width:none;min-height:inherit;display:flex!important;align-items:center!important;justify-content:center!important;}
.panel > .e-con-inner > .elementor-widget-html:has(.panel-bar){position:static!important;}

/* Contenu centré comme dans la maquette */
.inner.elementor-element,
.inner.e-con{width:100%!important;max-width:500px!important;margin:0 auto!important;display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;text-align:center!important;gap:0!important;}
.inner.e-con-full{--width:100%;}

/* Icône : accepte soit un widget HTML avec classe picto, soit un div .picto dans le HTML */
.picto img{width:52px!important;height:52px!important;object-fit:contain;position:relative;z-index:2;}
.elementor-widget-html:not(.picto) > .elementor-widget-container > .picto{margin-left:auto;margin-right:auto;}

/* Si l'utilisateur oublie la classe picto sur le widget et colle seulement ring + img */
.elementor-widget-html .ring + img{width:52px!important;height:52px!important;object-fit:contain;position:relative;z-index:2;}

/* Évite que l'animation d'entrée masque tout si JS/cache ne s'exécute pas */
body:not(.ready) .panel .inner > *{opacity:1;transform:none;}
body:not(.ready) .nav,body:not(.ready) .foot{opacity:1;}

@media(max-width:860px){
  .split.elementor-element,.split.e-con,.split.e-flexbox-base,.split.e-con-boxed > .e-con-inner{display:block!important;min-height:auto;}
  .panel.elementor-element,.panel.e-con,.panel.e-flexbox-base{width:100%!important;min-height:auto;}
}

/* ============================================================
   Correctif Elementor — bouton CTA luxe + accents champagne
   Reprend le rendu du template-mafatec-juin-2026 sans laisser
   Elementor forcer le bouton bleu plein.
   ============================================================ */
.elementor-widget-button .elementor-button.cta-lux,
.elementor-button.cta-lux,
button.cta-lux,
.cta-lux.e-button-base,
.elementor-widget .cta-lux.e-button-base{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:.85rem!important;
  font-family:var(--sans)!important;
  font-weight:600!important;
  font-size:.82rem!important;
  letter-spacing:.1em!important;
  text-transform:uppercase!important;
  color:var(--on-dark)!important;
  padding:1.05rem 2rem!important;
  min-width:280px!important;
  min-height:56px!important;
  border:1px solid rgba(243,239,230,.28)!important;
  border-radius:2px!important;
  background:transparent!important;
  background-color:transparent!important;
  position:relative!important;
  overflow:hidden!important;
  isolation:isolate!important;
  transition:color .5s var(--ease-lux),border-color .5s var(--ease-lux),transform .4s var(--ease-lux)!important;
  box-shadow:none!important;
  text-decoration:none!important;
}
.elementor-widget-button .elementor-button.cta-lux::before,
.elementor-button.cta-lux::before,
button.cta-lux::before,
.cta-lux.e-button-base::before,
.elementor-widget .cta-lux.e-button-base::before{
  content:''!important;
  position:absolute!important;
  inset:0!important;
  z-index:-1!important;
  background:var(--red-500)!important;
  transform:scaleX(0)!important;
  transform-origin:left!important;
  transition:transform .55s var(--ease-lux)!important;
}
.elementor-widget-button .elementor-button.cta-lux:hover,
.elementor-button.cta-lux:hover,
button.cta-lux:hover,
.cta-lux.e-button-base:hover,
.elementor-widget .cta-lux.e-button-base:hover{
  color:#fff!important;
  border-color:var(--red-500)!important;
  background:transparent!important;
  background-color:transparent!important;
  transform:translateY(-2px)!important;
}
.elementor-widget-button .elementor-button.cta-lux:hover::before,
.elementor-button.cta-lux:hover::before,
button.cta-lux:hover::before,
.cta-lux.e-button-base:hover::before,
.elementor-widget .cta-lux.e-button-base:hover::before{
  transform:scaleX(1)!important;
}
.elementor-widget-button .elementor-button.cta-lux-blue::before,
.elementor-button.cta-lux-blue::before,
button.cta-lux-blue::before,
.cta-lux-blue.e-button-base::before{background:var(--logo-blue)!important}
.elementor-widget-button .elementor-button.cta-lux-blue:hover,
.elementor-button.cta-lux-blue:hover,
button.cta-lux-blue:hover,
.cta-lux-blue.e-button-base:hover{border-color:var(--logo-blue)!important}

/* Le contenu Elementor garde le bon niveau au-dessus du fond animé. */
.cta-lux .elementor-button-content-wrapper,
.cta-lux .elementor-button-text,
.cta-lux .lbl,
.cta-lux svg{position:relative;z-index:1}
.cta-lux svg{width:14px;height:14px;transition:transform .5s var(--ease-lux)}
.cta-lux:hover svg{transform:translateX(5px)}

/* Accents champagne exacts du ZIP design complet. */
.eyebrow .mark,
.sec-eyebrow .mark{background:var(--champagne)!important}
.panel-title em,
.xhero h1 em,
.xcta h2 em{color:var(--champagne-soft)!important}
.picto,
.xhero-icon{border-color:rgba(174,182,196,.4)!important;background:radial-gradient(circle at 50% 32%,rgba(174,182,196,.12),transparent 70%)!important}
.picto::before{border-color:rgba(174,182,196,.22)!important}
.picto svg{color:var(--champagne)!important}
.panel:hover .picto svg{color:var(--champagne-soft)!important}

/* Correctif footer fixe MAFATEC : bande grise toujours visible en bas */
html,body{min-height:100%;}
body{padding-bottom:48px!important;}
.sfoot.mafatec-footer,
.mafatec-footer{
  position:fixed!important;
  left:0!important;
  right:0!important;
  bottom:0!important;
  z-index:9990!important;
  height:48px!important;
  min-height:48px!important;
  background:#f6f6f4!important;
  border-top:1px solid rgba(13,15,32,.08)!important;
  color:#8d92a6!important;
  box-shadow:none!important;
}
.sfoot .sfoot-in,
.mafatec-footer .sfoot-in{
  height:48px!important;
  min-height:48px!important;
  padding:0 32px!important;
  max-width:none;
  width:100%!important;
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:24px!important;
}
.sfoot-addr{
  flex:1 1 0!important;
  color:#8d92a6!important;
  font-size:11px!important;
  letter-spacing:.01em!important;
  white-space:nowrap!important;
  text-align:left!important;
}
.sfoot-certs{
  position:absolute!important;
  left:50%!important;
  transform:translateX(-50%)!important;
  flex:none!important;
  color:#27304f!important;
  font-family:Georgia,'Times New Roman',serif!important;
  font-size:13px!important;
  line-height:48px!important;
  letter-spacing:.04em!important;
  white-space:nowrap!important;
  text-align:center!important;
}
.sfoot-links{
  flex:1 1 0!important;
  display:flex!important;
  justify-content:flex-end!important;
  align-items:center!important;
  gap:24px!important;
}
.maf-footer-menu{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  gap:5px 10px!important;
  list-style:none!important;
  margin:0!important;
  padding:0!important;
}
.maf-footer-menu li{margin:0!important;padding:0!important;}
.sfoot-links a,
.maf-footer-menu a{
  color:#8d92a6!important;
  font-size:11px!important;
  line-height:1!important;
  text-decoration:none!important;
  letter-spacing:.01em!important;
}
.sfoot-links a:hover,
.maf-footer-menu a:hover{color:#0d0f20!important;}
body.home .split,
.split{
  min-height:calc(100vh - var(--maf-header-height,88px) - 48px)!important;
}
body.home .panel,
.split .panel{
  min-height:calc(100vh - var(--maf-header-height,88px) - 48px)!important;
}
@media(max-width:860px){
  body{padding-bottom:96px!important;}
  .sfoot.mafatec-footer,.mafatec-footer{height:auto!important;min-height:96px!important;}
  .sfoot .sfoot-in,.mafatec-footer .sfoot-in{height:auto!important;min-height:96px!important;padding:10px 18px!important;flex-direction:column!important;justify-content:center!important;gap:8px!important;text-align:center!important;}
  .sfoot-certs{position:static!important;transform:none!important;line-height:1.2!important;}
  .sfoot-addr,.sfoot-links{flex:none!important;text-align:center!important;justify-content:center!important;}
  .maf-footer-menu{justify-content:center!important;gap:14px!important;flex-wrap:wrap!important;}
}

/* ============================================================
   Correctif 2026-06 : Elementor page /particulier
   - reveal fonctionne avec .in ajouté par JS
   - fallback si le cache bloque le JS
   - layout xhero-in correct sur les containers Elementor boxed
   - bouton rouge non écrasé par Elementor
   ============================================================ */
.reveal.in,
body.ready .reveal.in{
  opacity:1!important;
  visibility:visible!important;
  transform:none!important;
}
body:not(.ready) .reveal{
  opacity:1!important;
  visibility:visible!important;
  transform:none!important;
}

.xhero.e-con,
.xhero.elementor-element{
  position:relative!important;
  overflow:hidden!important;
  background:var(--ink-900)!important;
  color:var(--on-dark)!important;
  padding:11rem 0 6rem!important;
}
.xhero > .elementor-widget-html:first-child,
.xhero > .elementor-widget-html:first-child .elementor-widget-container{
  position:static!important;
}
.xhero-in.e-con-boxed > .e-con-inner,
.xhero-in.elementor-element.e-con-boxed > .e-con-inner{
  width:100%!important;
  max-width:1200px!important;
  margin:0 auto!important;
  display:grid!important;
  grid-template-columns:1.15fr .85fr!important;
  gap:4.5rem!important;
  align-items:center!important;
  padding:0 2.5rem!important;
}
.xhero-copy.e-con,
.xhero-copy.elementor-element{
  align-items:flex-start!important;
  justify-content:center!important;
  text-align:left!important;
  gap:0!important;
}
.xhero-copy .elementor-widget{
  width:auto!important;
  max-width:60%!important;
}
.xhero-copy .xhero-lead,
.elementor-widget.xhero-lead{
  width:100%!important;
  max-width:60%!important;
}
.xhero-visual.center.e-con,
.xhero-visual.center.elementor-element{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-height:260px!important;
}
.xhero-icon img{
  width:58px!important;
  height:58px!important;
  object-fit:contain!important;
  position:relative!important;
  z-index:2!important;
}

button.btn.btn-red,
button.btn.btn-red.e-button-base,
.elementor-widget-button .elementor-button.btn.btn-red,
.elementor-button.btn.btn-red,
.btn.btn-red.e-button-base{
  --bg:var(--red-500)!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:.65rem!important;
  background:var(--bg)!important;
  background-color:var(--bg)!important;
  color:#fff!important;
  border:0!important;
  border-radius:var(--r-sm)!important;
  padding:1.1rem 2.1rem!important;
  font-family:var(--sans)!important;
  font-weight:600!important;
  font-size:.9rem!important;
  line-height:1!important;
  letter-spacing:.02em!important;
  box-shadow:none!important;
  text-decoration:none!important;
  width:auto!important;
  min-width:auto!important;
  transition:transform .4s var(--ease-lux),box-shadow .4s var(--ease-lux),background .35s var(--ease)!important;
}
button.btn.btn-red:hover,
button.btn.btn-red.e-button-base:hover,
.elementor-widget-button .elementor-button.btn.btn-red:hover,
.elementor-button.btn.btn-red:hover,
.btn.btn-red.e-button-base:hover{
  --bg:var(--red-400)!important;
  background:var(--bg)!important;
  background-color:var(--bg)!important;
  color:#fff!important;
  transform:translateY(-2px)!important;
  box-shadow:0 14px 34px rgba(201,59,24,.34)!important;
}

@media(max-width:880px){
  .xhero-in.e-con-boxed > .e-con-inner,
  .xhero-in.elementor-element.e-con-boxed > .e-con-inner{
    grid-template-columns:1fr!important;
    gap:3rem!important;
  }
}
@media(max-width:600px){
  .xhero.e-con,
  .xhero.elementor-element{
    padding:7.5rem 0 4rem!important;
  }
  .xhero-in.e-con-boxed > .e-con-inner,
  .xhero-in.elementor-element.e-con-boxed > .e-con-inner{
    padding:0 1.4rem!important;
  }
}

/* ============================================================
   FINAL FIX — HERO /particulier sous Elementor
   Elementor force parfois .e-con-inner en flex et donne des largeurs
   automatiques aux enfants. On force la structure exacte du design.
   ============================================================ */
.xhero.grain.elementor-element{
  min-height:560px!important;
  padding:0!important;
}
.xhero.grain .xhero-bg{
  position:absolute!important;
  inset:0!important;
  z-index:0!important;
  pointer-events:none!important;
}
.xhero.grain .wrap.xhero-in,
.xhero.grain .wrap.xhero-in.e-con,
.xhero.grain .wrap.xhero-in.elementor-element{
  position:relative!important;
  z-index:2!important;
  width:100%!important;
  max-width:none;
  min-height:560px!important;
  margin:0!important;
  padding:0!important;
}
.xhero.grain .wrap.xhero-in > .e-con-inner{
  width:100%!important;
  max-width:1200px!important;
  min-height:560px!important;
  margin:0 auto!important;
  padding:0 2.5rem!important;
  display:flex!important;
  flex-direction:row!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:4.5rem!important;
}
.xhero.grain .xhero-copy.e-con,
.xhero.grain .xhero-copy.elementor-element{
  flex:0 1 60%!important;
  width:60%!important;
  max-width:60%!important;
  min-width:0!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:flex-start!important;
  justify-content:center!important;
  text-align:left!important;
  gap:0!important;
}
.xhero.grain .xhero-copy > *,
.xhero.grain .xhero-copy .elementor-widget,
.xhero.grain .xhero-copy .e-heading-base{
  width:100%!important;
  max-width:100%!important;
  flex:none!important;
}
.xhero.grain .display,
.xhero.grain h1.display,
.xhero.grain .e-heading-base.display{
  display:block!important;
  font-family:var(--serif)!important;
  font-size:clamp(2.4rem,4vw,3.9rem)!important;
  line-height:1.06!important;
  letter-spacing:-.012em!important;
  color:var(--on-dark)!important;
  margin:0 0 2.1rem!important;
  white-space:normal!important;
  word-break:normal!important;
  overflow-wrap:normal!important;
  text-align:left!important;
}
.xhero.grain .display em,
.xhero.grain h1.display em,
.xhero.grain .e-heading-base.display em{
  font-style:italic!important;
  color:var(--red-400)!important;
}
.xhero.grain .xhero-lead,
.xhero.grain .elementor-widget.xhero-lead,
.xhero.grain .xhero-lead p{
  width:100%!important;
  max-width:100%!important;
  font-size:1.1rem!important;
  line-height:1.78!important;
  color:var(--on-dark-soft)!important;
  margin:0 0 2.6rem!important;
}
.xhero.grain .xhero-visual.center.e-con,
.xhero.grain .xhero-visual.center.elementor-element{
  flex:0 1 35%!important;
  width:35%!important;
  max-width:35%!important;
  min-width:260px!important;
  min-height:260px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  text-align:center!important;
}
.xhero.grain .xhero-visual.center .elementor-widget-container{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
}
.xhero.grain .btn.btn-red.e-button-base,
.xhero.grain button.btn.btn-red{
  width:auto!important;
  max-width:none;
  white-space:nowrap!important;
  flex:none!important;
}
@media(max-width:880px){
  .xhero.grain .wrap.xhero-in > .e-con-inner{
    flex-direction:column!important;
    align-items:flex-start!important;
    justify-content:center!important;
    gap:3rem!important;
  }
  .xhero.grain .xhero-copy.e-con,
  .xhero.grain .xhero-copy.elementor-element,
  .xhero.grain .xhero-visual.center.e-con,
  .xhero.grain .xhero-visual.center.elementor-element{
    width:100%!important;
    max-width:560px!important;
    flex:0 0 auto!important;
  }
}

/* Correctif scroll pages Elementor : home.css est chargé globalement et mettait body en overflow:hidden */
html, body{
  height:auto!important;
  min-height:100%!important;
  overflow-x:hidden!important;
  overflow-y:auto!important;
}
body.home{
  overflow-y:auto!important;
}
body.elementor-page{
  overflow-y:auto!important;
}
.site-main,
.mafatec-fullwidth,
.entry-content,
.elementor,
.elementor-page .elementor{
  overflow:visible!important;
}


/* ============================================================
   Correctif Elementor — Sections pages intérieures
   Chaque section doit être indépendante, centrée et lisible.
   NE PAS utiliser xhero-in hors du hero.
   ============================================================ */
.elementor-page main,
.elementor-page .site-main,
.elementor-page .mafatec-fullwidth,
.elementor-page .entry-content,
.elementor-page .elementor{
  width:100%!important;
  max-width:none;
  overflow:visible!important;
}

/* Section générique : pleine largeur, contenu centré */
.elementor .section,
.elementor section.section,
.elementor .e-con.section{
  width:100%!important;
  margin:0!important;
  padding:clamp(5rem,8vw,7rem) 0!important;
  display:block!important;
  position:relative!important;
  background:var(--paper,#fff);
}


/* Fond papier gris spécifique aux bandes .band-paper2.
   Correction ciblée : les sections internes restent transparentes pour laisser apparaître le fond du parent. */
.elementor .band-paper2{
  background:#f5f5f7;
}
.elementor .band-paper2 > .section,
.elementor .band-paper2 > section.section,
.elementor .band-paper2 > .e-con.section{
  background:transparent;
}
.elementor .band-paper2 > .section > .wrap,
.elementor .band-paper2 > section.section > .wrap,
.elementor .band-paper2 > .e-con.section > .wrap,
.elementor .band-paper2 .section > .e-con.wrap,
.elementor .band-paper2 .section > .elementor-element.wrap{
  background:transparent;
}

/* Container .wrap standard Elementor : pleine largeur du parent + padding de sécurité réduit.
   Pas de max-width ici : la largeur encadrée / 1200px reste pilotée par Elementor. */
.elementor .section > .wrap,
.elementor .section > .e-con.wrap,
.elementor .section > .elementor-element.wrap,
.elementor .band-paper2 .section > .wrap,
.elementor .band-paper2 .section > .e-con.wrap,
.elementor .band-paper2 .section > .elementor-element.wrap{
  width:100%!important;
  margin-left:auto!important;
  margin-right:auto!important;
  padding-left:clamp(0.6rem,2vw,1rem);
  padding-right:clamp(0.6rem,2vw,1rem);
  display:block!important;
}

/* Elementor ajoute .e-con-inner.
   Pour les sections normales, il doit rester en colonne :
   titre au-dessus, cartes en dessous. La largeur reste pilotée par Elementor. */
.elementor .section > .wrap:not(.xhero-in) > .e-con-inner,
.elementor .section > .e-con.wrap:not(.xhero-in) > .e-con-inner,
.elementor .section > .elementor-element.wrap:not(.xhero-in) > .e-con-inner,
.elementor .band-paper2 .section > .wrap:not(.xhero-in) > .e-con-inner,
.elementor .band-paper2 .section > .e-con.wrap:not(.xhero-in) > .e-con-inner,
.elementor .band-paper2 .section > .elementor-element.wrap:not(.xhero-in) > .e-con-inner{
  width:100%;
  margin-left:auto;
  margin-right:auto;
  padding:0;
  display:flex!important;
  flex-direction:column!important;
  align-items:stretch!important;
  justify-content:flex-start!important;
  min-height:0!important;
}

.elementor .section .sec-eyebrow,
.elementor .section .elementor-widget.sec-eyebrow,
.elementor .section .sec-eyebrow .elementor-widget-container{
  display:inline-flex!important;
  align-items:center!important;
  gap:.7rem!important;
  margin:0 0 1.35rem!important;
  color:var(--red-500)!important;
  font-family:var(--sans)!important;
  font-size:.72rem!important;
  font-weight:700!important;
  letter-spacing:.24em!important;
  text-transform:uppercase!important;
  line-height:1.2!important;
}
.elementor .section .sec-eyebrow .mark{
  display:inline-block!important;
  width:28px!important;
  height:1px!important;
  background:var(--champagne)!important;
  margin:0!important;
  flex:0 0 28px!important;
}

.elementor .section .sec-h,
.elementor .section h2.sec-h,
.elementor .section .e-heading-base.sec-h,
.elementor .section .elementor-widget.sec-h .elementor-heading-title{
  display:block!important;
  margin:0 0 clamp(2.4rem,4vw,3.2rem)!important;
  padding:0!important;
  color:var(--text)!important;
  font-family:var(--serif)!important;
  font-size:clamp(2.1rem,3vw,3.1rem)!important;
  line-height:1.08!important;
  letter-spacing:-.012em!important;
  text-align:left!important;
  white-space:normal!important;
  word-break:normal!important;
  overflow-wrap:normal!important;
  max-width: 680px !important;
}
.elementor .section .sec-h em,
.elementor .section h2.sec-h em,
.elementor .section .e-heading-base.sec-h em{
  color:var(--red-500)!important;
  font-style:italic!important;
}

/* Grille des deux accès */
.elementor .section .access,
.elementor .section .e-con.access,
.elementor .section .elementor-element.access{
  width:100%!important;
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:1.5rem!important;
  margin:0!important;
  padding:0!important;
  align-items:stretch!important;
}
.elementor .section .access > .e-con-inner{
  width:100%!important;
  margin:0!important;
  padding:0!important;
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:1.5rem!important;
  align-items:stretch!important;
}
.elementor .section .access .elementor-widget-html,
.elementor .section .access .elementor-widget-container{
  height:100%!important;
}
.elementor .section .access-card{
  width:100%!important;
  height:100%!important;
  min-height:260px!important;
  box-sizing:border-box!important;
}
/* Si l'utilisateur a par erreur mis access-card sur un container Elementor, on neutralise le double emballage */
.elementor .section .e-con.access-card{
  padding:0!important;
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
  min-height:0!important;
}
.elementor .section .e-con.access-card::before{display:none!important;}
.elementor .section .e-con.access-card > .elementor-widget-html,
.elementor .section .e-con.access-card > .elementor-widget-html > .elementor-widget-container{height:100%!important;}

@media(max-width:860px){
  .elementor .section .access,
  .elementor .section .e-con.access,
  .elementor .section .elementor-element.access,
  .elementor .section .access > .e-con-inner{
    grid-template-columns:1fr!important;
  }
}

/* ============================================================
   Correctif 2026-06 — Sections Elementor sans classe .section
   Quand Elementor a seulement un enfant .wrap, on centre quand même.
   ============================================================ */
.elementor > .e-con:not(.certbar):not(.xcta):not(.xhero):not(.band-paper2):has(> .wrap:not(.xhero-in)),
.elementor > section:not(.certbar):not(.xcta):not(.xhero):not(.band-paper2):has(> .wrap:not(.xhero-in)),
.elementor .elementor-element:not(.certbar):not(.xcta):not(.xhero):not(.band-paper2):has(> .wrap:not(.xhero-in)){
  width:100%!important;
  margin:0!important;
  padding:clamp(5rem,8vw,7rem) 0!important;
  display:block!important;
  position:relative!important;
  background:var(--paper,#fff);
}

.elementor > .e-con:not(.certbar):not(.xcta):not(.xhero):not(.band-paper2):has(> .wrap:not(.xhero-in)) > .wrap,
.elementor > section:not(.certbar):not(.xcta):not(.xhero):not(.band-paper2):has(> .wrap:not(.xhero-in)) > .wrap,
.elementor .elementor-element:not(.certbar):not(.xcta):not(.xhero):not(.band-paper2):has(> .wrap:not(.xhero-in)) > .wrap{
  margin-left:auto;
  margin-right:auto;
}

.elementor > .e-con:not(.certbar):not(.xcta):not(.xhero):not(.band-paper2):has(> .wrap:not(.xhero-in)) > .wrap > .e-con-inner,
.elementor > section:not(.certbar):not(.xcta):not(.xhero):not(.band-paper2):has(> .wrap:not(.xhero-in)) > .wrap > .e-con-inner,
.elementor .elementor-element:not(.certbar):not(.xcta):not(.xhero):not(.band-paper2):has(> .wrap:not(.xhero-in)) > .wrap > .e-con-inner{
  width:100%;
  margin-left:auto;
  margin-right:auto;
  padding:0;
  display:flex!important;
  flex-direction:column!important;
  align-items:stretch!important;
  justify-content:flex-start!important;
}


.elementor .wrap:not(.xhero-in) .access,
.elementor .wrap:not(.xhero-in) .e-con.access,
.elementor .wrap:not(.xhero-in) .elementor-element.access{
  width:100%!important;
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:1.5rem!important;
  margin:0!important;
  padding:0!important;
  align-items:stretch!important;
}

.elementor .wrap:not(.xhero-in) .access > .e-con-inner{
  width:100%!important;
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:1.5rem!important;
  margin:0!important;
  padding:0!important;
}

.elementor .wrap:not(.xhero-in) .access-card{
  width:100%!important;
  height:100%!important;
  min-height:260px!important;
  box-sizing:border-box!important;
}

@media(max-width:860px){
  .elementor .wrap:not(.xhero-in) .access,
  .elementor .wrap:not(.xhero-in) .e-con.access,
  .elementor .wrap:not(.xhero-in) .elementor-element.access,
  .elementor .wrap:not(.xhero-in) .access > .e-con-inner{
    grid-template-columns:1fr!important;
  }
}


/* Correctif final : un .wrap de section normale n'est jamais une rangée.
   Source du bug : Elementor garde .e-con-inner en flex-row, ce qui met le titre à gauche et les cartes à droite.
   On force uniquement l'empilement vertical, sans toucher aux max-width Elementor. */
.elementor .section .wrap:not(.xhero-in) > .e-con-inner,
.elementor .elementor-element:not(.certbar):not(.xcta):not(.xhero):not(.band-paper2):has(> .wrap:not(.xhero-in)) > .wrap > .e-con-inner{
  display:flex!important;
  flex-direction:column!important;
  align-items:stretch!important;
  justify-content:flex-start!important;
}

/* ============================================================
   Correctif final band-paper2 — fond gris réel sans casser les autres sections
   - On force uniquement le fond de la bande grise.
   - Les containers internes restent transparents.
   - Les cartes .lcard gardent leur fond blanc.
   ============================================================ */
:root{ --paper-2:#f5f5f7; }

.elementor .band-paper2,
.elementor .elementor-element.band-paper2,
.elementor section.band-paper2,
.elementor .e-con.band-paper2{
  background:#f5f5f7!important;
  background-color:#f5f5f7!important;
}

.elementor .band-paper2 > .section,
.elementor .band-paper2 > section.section,
.elementor .band-paper2 > .e-con.section,
.elementor .band-paper2 > .elementor-element.section,
.elementor .band-paper2 .section > .wrap,
.elementor .band-paper2 .section > .e-con.wrap,
.elementor .band-paper2 .section > .elementor-element.wrap,
.elementor .band-paper2 .section > .wrap > .e-con-inner,
.elementor .band-paper2 .section > .e-con.wrap > .e-con-inner,
.elementor .band-paper2 .section > .elementor-element.wrap > .e-con-inner{
  background:transparent!important;
  background-color:transparent!important;
}

/* Correctif lcard — radius du design original */
.elementor .lcard,
.elementor .e-con.lcard,
.elementor .elementor-element.lcard{
  border-radius:var(--r-md);
}

/* ============================================================
   FINAL OVERRIDES — MAFATEC 2026 Elementor
   Base : CSS utilisateur conservé.
   Objectif : corriger certbar, xcta, values et lcard sans toucher
   aux largeurs Elementor ni aux sections déjà validées.
   ============================================================ */

/* Valeurs : trait ::before du design original, visible dès le départ */
.elementor .values .value,
.elementor .value,
.elementor .e-con.value,
.elementor .elementor-element.value{
  position:relative !important;
  padding-top:2.4rem;
}
.elementor .values .value::before,
.elementor .value::before,
.elementor .e-con.value::before,
.elementor .elementor-element.value::before{
  content:'' !important;
  position:absolute !important;
  top:0 !important;
  left:0 !important;
  width:48px !important;
  height:2px !important;
  display:block !important;
  background:var(--accent,var(--red-500)) !important;
  transition:width .55s var(--ease-lux) !important;
}
.elementor .values .value:hover::before,
.elementor .value:hover::before,
.elementor .e-con.value:hover::before,
.elementor .elementor-element.value:hover::before{
  width:100% !important;
}

/* lcard : version validée à conserver */
.lcard,
.elementor .lcard,
.elementor .e-con.lcard,
.elementor .elementor-element.lcard{
  background:var(--card) !important;
  border:1px solid var(--line-warm) !important;
  border-radius:var(--r-md) !important;
  padding:2rem 1.9rem !important;
  position:relative !important;
  overflow:hidden !important;
  transition:transform .5s var(--ease-lux),box-shadow .5s var(--ease-lux),border-color .4s var(--ease) !important;
}

/* Titres/lead de section : largeur de lecture validée, sans toucher au wrap Elementor */
.elementor .section .sec-h,
.elementor .section h2.sec-h,
.elementor .section .e-heading-base.sec-h,
.elementor .section .elementor-widget.sec-h .elementor-heading-title{
  max-width:680px !important;
}
.elementor .section .sec-lead,
.elementor .section .elementor-widget.sec-lead,
.elementor .section .elementor-widget.sec-lead .elementor-widget-container,
.elementor .section .elementor-widget.sec-lead p{
  max-width:680px !important;
}

/* Certbar : fond noir réel sous Elementor, même avec wrap/e-con-inner */
.elementor .certbar,
.elementor section.certbar,
.elementor .e-con.certbar,
.elementor .elementor-element.certbar{
  background:#070b16 !important;
  background-color:#070b16 !important;
  min-height:48px !important;
  padding:0 !important;
  border-top:1px solid rgba(255,255,255,.08) !important;
  border-bottom:1px solid rgba(255,255,255,.08) !important;
}
.elementor .certbar > .certbar-in,
.elementor .certbar > .wrap.certbar-in,
.elementor .certbar .certbar-in,
.elementor .certbar .certbar-in > .e-con-inner,
.elementor .certbar .elementor-widget,
.elementor .certbar .elementor-widget-container{
  background:transparent !important;
  background-color:transparent !important;
}
.elementor .certbar .certbar-in,
.elementor .certbar .wrap.certbar-in{
  width:100% !important;
  padding-left:clamp(0.6rem,2vw,1rem);
  padding-right:clamp(0.6rem,2vw,1rem);
}
.elementor .certbar .certbar-in > .e-con-inner{
  min-height:48px !important;
  width:100% !important;
  display:flex !important;
  flex-direction:row !important;
  align-items:center !important;
  justify-content:center !important;
  gap:2rem !important;
  padding:.7rem 0 !important;
}
.elementor .certbar .lbl,
.elementor .certbar .elementor-widget .lbl{
  color:#70778a !important;
  font-size:.64rem !important;
  font-weight:600 !important;
  letter-spacing:.22em !important;
  text-transform:uppercase !important;
  white-space:nowrap !important;
}
.elementor .certbar .certpills,
.elementor .certbar .certpills > .e-con-inner{
  display:flex !important;
  flex-direction:row !important;
  align-items:center !important;
  justify-content:center !important;
  gap:1.7rem !important;
  flex-wrap:wrap !important;
}
.elementor .certbar .certpill{
  display:inline-flex !important;
  align-items:center !important;
  gap:.45rem !important;
  color:var(--red-500) !important;
  font-size:.75rem !important;
  font-weight:600 !important;
  white-space:nowrap !important;
}
.elementor .certbar .certpill svg{
  width:13px !important;
  height:13px !important;
  color:var(--red-500) !important;
  flex:0 0 13px !important;
}

/* CTA final : fond sombre + contenu lisible sous Elementor */
.elementor .xcta,
.elementor section.xcta,
.elementor .e-con.xcta,
.elementor .elementor-element.xcta{
  position:relative !important;
  overflow:hidden !important;
  background:var(--ink-900) !important;
  background-color:var(--ink-900) !important;
  color:var(--on-dark) !important;
  padding:6rem 0 !important;
  min-height:auto !important;
  display:block !important;
}
.elementor .xcta .xcta-bg{
  position:absolute !important;
  inset:0 !important;
  z-index:0 !important;
  pointer-events:none !important;
  background:radial-gradient(ellipse 60% 90% at 50% 120%,rgba(201,59,24,.2) 0%,transparent 60%) !important;
}
.elementor .xcta > .wrap.xcta-in,
.elementor .xcta .wrap.xcta-in,
.elementor .xcta .xcta-in{
  position:relative !important;
  z-index:2 !important;
  width:100% !important;
  margin-left:auto !important;
  margin-right:auto !important;
  background:transparent !important;
  background-color:transparent !important;
  padding-left:clamp(0.6rem,2vw,1rem);
  padding-right:clamp(0.6rem,2vw,1rem);
}
.elementor .xcta .xcta-in > .e-con-inner,
.elementor .xcta .wrap.xcta-in > .e-con-inner{
  width:100% !important;
  max-width:780px !important;
  margin:0 auto !important;
  padding:0 !important;
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  justify-content:center !important;
  text-align:center !important;
  gap:0 !important;
  background:transparent !important;
  background-color:transparent !important;
}
.elementor .xcta h2,
.elementor .xcta .xcta-title,
.elementor .xcta .elementor-heading-title,
.elementor .xcta .e-heading-base{
  display:block !important;
  max-width:780px !important;
  margin:0 0 1.2rem !important;
  padding:0 !important;
  color:var(--on-dark) !important;
  font-family:var(--serif) !important;
  font-size:clamp(2.2rem,4vw,3.4rem) !important;
  line-height:1.05 !important;
  letter-spacing:-.02em !important;
  text-align:center !important;
}
.elementor .xcta h2 em,
.elementor .xcta .xcta-title em,
.elementor .xcta .elementor-heading-title em,
.elementor .xcta .e-heading-base em{
  color:var(--red-400) !important;
  font-style:italic !important;
}
.elementor .xcta p,
.elementor .xcta .xcta-text,
.elementor .xcta .xcta-text p,
.elementor .xcta .elementor-widget-text-editor,
.elementor .xcta .elementor-widget-text-editor p{
  max-width:560px !important;
  margin:0 auto 2.4rem !important;
  color:var(--on-dark-soft) !important;
  font-size:1.05rem !important;
  line-height:1.7 !important;
  text-align:center !important;
}
.elementor .xcta .btn.btn-red,
.elementor .xcta button.btn.btn-red,
.elementor .xcta .btn.btn-red.e-button-base,
.elementor .xcta .elementor-button.btn.btn-red{
  width:auto !important;
  min-width:220px !important;
  max-width:max-content !important;
  margin:0 auto !important;
  white-space:nowrap !important;
  flex:none !important;
}

@media(max-width:860px){
  .elementor .certbar .certbar-in > .e-con-inner{
    flex-direction:column !important;
    gap:.7rem !important;
  }
  .elementor .xcta,
  .elementor section.xcta,
  .elementor .e-con.xcta,
  .elementor .elementor-element.xcta{
    padding:4.5rem 0 !important;
  }
}


/* ============================================================
   Hotfix certbar — ne jamais hériter du padding des sections auto-wrap
   ============================================================ */
.elementor .certbar,
.elementor section.certbar,
.elementor .e-con.certbar,
.elementor .elementor-element.certbar{
  padding:0 !important;
  min-height:48px !important;
  height:auto !important;
  background:#070b16 !important;
  background-color:#070b16 !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
}
.elementor .certbar > .wrap.certbar-in,
.elementor .certbar > .certbar-in,
.elementor .certbar .wrap.certbar-in,
.elementor .certbar .certbar-in{
  padding-top:0 !important;
  padding-bottom:0 !important;
  margin-top:0 !important;
  margin-bottom:0 !important;
  min-height:48px !important;
  width:100% !important;
  background:transparent !important;
}
.elementor .certbar .certbar-in > .e-con-inner{
  min-height:48px !important;
  padding-top:.7rem !important;
  padding-bottom:.7rem !important;
  display:flex !important;
  flex-direction:row !important;
  align-items:center !important;
  justify-content:center !important;
  gap:2rem !important;
  background:transparent !important;
}

/* ============================================================
   FINAL — Univers Professionnel Elementor
   Utilisation : ajouter la classe `universe-pro` sur le conteneur
   parent de la page Professionnel, ou sur chaque section importée.
   Ne touche pas aux largeurs Elementor.
   ============================================================ */
.universe-pro,
.elementor .universe-pro{
  --accent:#2f4aa0;
  --accent-2:#22357a;
  --accent-soft:#8ea4df;
  --ink-icon:#10131f;
}

/* Hero professionnel : dégradé et accent bleu */
.universe-pro .xhero-bg,
.elementor .universe-pro .xhero-bg{
  background:
    radial-gradient(ellipse 55% 70% at 86% 30%,rgba(58,85,176,.26) 0%,transparent 62%),
    radial-gradient(ellipse 60% 60% at 12% 90%,rgba(28,36,96,.55) 0%,transparent 60%) !important;
}
.universe-pro .xhero-badge .dot,
.elementor .universe-pro .xhero-badge .dot{
  background:var(--accent-soft) !important;
}
.universe-pro .xhero.grain .display em,
.universe-pro .xhero.grain h1.display em,
.universe-pro .xhero.grain .e-heading-base.display em,
.universe-pro .xhero h1 em,
.elementor .universe-pro .xhero.grain .display em,
.elementor .universe-pro .xhero.grain h1.display em,
.elementor .universe-pro .xhero.grain .e-heading-base.display em,
.elementor .universe-pro .xhero h1 em{
  color:var(--accent-soft) !important;
}
.universe-pro .xhero-icon::after,
.elementor .universe-pro .xhero-icon::after{
  background:radial-gradient(circle 3.5px at 50% 0,var(--accent-soft) 95%,transparent 100%) !important;
}
.universe-pro .xhero-icon .ring,
.elementor .universe-pro .xhero-icon .ring{
  background:conic-gradient(from -90deg,var(--accent-soft) 0deg,transparent 72deg) !important;
}

/* Boutons professionnels : bleu au lieu du rouge */
.universe-pro button.btn.btn-red,
.universe-pro button.btn.btn-red.e-button-base,
.universe-pro .elementor-widget-button .elementor-button.btn.btn-red,
.universe-pro .elementor-button.btn.btn-red,
.universe-pro .btn.btn-red.e-button-base,
.elementor .universe-pro button.btn.btn-red,
.elementor .universe-pro button.btn.btn-red.e-button-base,
.elementor .universe-pro .elementor-widget-button .elementor-button.btn.btn-red,
.elementor .universe-pro .elementor-button.btn.btn-red,
.elementor .universe-pro .btn.btn-red.e-button-base{
  --bg:var(--accent) !important;
  background:var(--accent) !important;
  background-color:var(--accent) !important;
  color:#fff !important;
}
.universe-pro button.btn.btn-red:hover,
.universe-pro button.btn.btn-red.e-button-base:hover,
.universe-pro .elementor-widget-button .elementor-button.btn.btn-red:hover,
.universe-pro .elementor-button.btn.btn-red:hover,
.universe-pro .btn.btn-red.e-button-base:hover,
.elementor .universe-pro button.btn.btn-red:hover,
.elementor .universe-pro button.btn.btn-red.e-button-base:hover,
.elementor .universe-pro .elementor-widget-button .elementor-button.btn.btn-red:hover,
.elementor .universe-pro .elementor-button.btn.btn-red:hover,
.elementor .universe-pro .btn.btn-red.e-button-base:hover{
  --bg:var(--accent-2) !important;
  background:var(--accent-2) !important;
  background-color:var(--accent-2) !important;
  box-shadow:0 14px 34px rgba(47,74,160,.34) !important;
}

/* Titres, labels, liens, chips et traits en bleu */
.universe-pro .sec-eyebrow,
.elementor .universe-pro .sec-eyebrow{
  color:var(--accent) !important;
}
.universe-pro .sec-eyebrow .mark,
.elementor .universe-pro .sec-eyebrow .mark{
  background:var(--accent) !important;
}
.universe-pro .sec-h em,
.universe-pro h2.sec-h em,
.universe-pro .e-heading-base.sec-h em,
.elementor .universe-pro .sec-h em,
.elementor .universe-pro h2.sec-h em,
.elementor .universe-pro .e-heading-base.sec-h em{
  color:var(--accent) !important;
}
.universe-pro .chip,
.universe-pro .lcard .chip,
.universe-pro .crosslink .k,
.universe-pro .access-link,
.universe-pro .crosslink .go,
.elementor .universe-pro .chip,
.elementor .universe-pro .lcard .chip,
.elementor .universe-pro .crosslink .k,
.elementor .universe-pro .access-link,
.elementor .universe-pro .crosslink .go{
  color:var(--accent) !important;
}
.universe-pro .lcard:hover,
.universe-pro .crosslink:hover,
.universe-pro .access-card:hover,
.elementor .universe-pro .lcard:hover,
.elementor .universe-pro .crosslink:hover,
.elementor .universe-pro .access-card:hover{
  border-color:var(--accent) !important;
}
.universe-pro .lcard::after,
.universe-pro .crosslink::after,
.universe-pro .access-card::before,
.universe-pro .value::before,
.elementor .universe-pro .lcard::after,
.elementor .universe-pro .crosslink::after,
.elementor .universe-pro .access-card::before,
.elementor .universe-pro .value::before{
  background:var(--accent) !important;
}

/* Icônes : noir luxe + points internes bleus */
.universe-pro :is(.vn-ico,.cl-ico,.lc-ico,.access-ic,.pillar .picon) svg [fill="#e0552e"],
.elementor .universe-pro :is(.vn-ico,.cl-ico,.lc-ico,.access-ic,.pillar .picon) svg [fill="#e0552e"]{
  fill:var(--accent) !important;
}
.universe-pro :is(.vn-ico,.cl-ico,.lc-ico,.access-ic,.pillar .picon) svg [stroke="#e0552e"],
.elementor .universe-pro :is(.vn-ico,.cl-ico,.access-ic,.lc-ico,.pillar .picon) svg [stroke="#e0552e"]{
  stroke:var(--accent) !important;
}

/* Bannière certifications en univers pro */
.universe-pro .certpill,
.universe-pro .certpill svg,
.elementor .universe-pro .certpill,
.elementor .universe-pro .certpill svg{
  color:var(--accent-soft) !important;
}

/* CTA final professionnel */
.universe-pro .xcta-bg,
.elementor .universe-pro .xcta-bg{
  background:radial-gradient(ellipse 60% 90% at 50% 120%,rgba(58,85,176,.28) 0%,transparent 60%) !important;
}
.universe-pro .xcta h2 em,
.universe-pro .xcta .xcta-title em,
.universe-pro .xcta .elementor-heading-title em,
.universe-pro .xcta .e-heading-base em,
.elementor .universe-pro .xcta h2 em,
.elementor .universe-pro .xcta .xcta-title em,
.elementor .universe-pro .xcta .elementor-heading-title em,
.elementor .universe-pro .xcta .e-heading-base em{
  color:var(--accent-soft) !important;
}

/* ============================================================
   Espace Pro — section sombre supplémentaire /professionnel
   Utilisation Elementor : band-ink prospace > wrap prospace-in
   ============================================================ */
.prospace,
.elementor .prospace,
.elementor .e-con.prospace,
.elementor section.prospace{
  position:relative !important;
  overflow:hidden !important;
  background:var(--ink-900) !important;
  color:var(--on-dark) !important;
  padding:clamp(5rem,7vw,6rem) 0 !important;
}
.prospace::before,
.elementor .prospace::before{
  content:"" !important;
  position:absolute !important;
  inset:0 !important;
  pointer-events:none !important;
  background:
    radial-gradient(ellipse 58% 70% at 12% 100%,rgba(28,36,96,.42) 0%,transparent 62%),
    radial-gradient(ellipse 55% 65% at 86% 20%,rgba(58,85,176,.16) 0%,transparent 64%) !important;
}
.prospace .prospace-in,
.elementor .prospace .prospace-in,
.elementor .prospace .wrap.prospace-in{
  position:relative !important;
  z-index:2 !important;
  background:transparent !important;
}
.prospace .prospace-in > .e-con-inner,
.elementor .prospace .prospace-in > .e-con-inner,
.elementor .prospace .wrap.prospace-in > .e-con-inner{
  width:100% !important;
  display:grid !important;
  grid-template-columns:.9fr 1.1fr !important;
  align-items:center !important;
  gap:clamp(3rem,6vw,5.5rem) !important;
  margin:0 auto !important;
  padding:0 clamp(.6rem,2vw,1rem) !important;
  background:transparent !important;
}
.prospace .prospace-title,
.elementor .prospace .prospace-title{
  display:flex !important;
  flex-direction:column !important;
  align-items:flex-start !important;
  justify-content:center !important;
  text-align:left !important;
}
.prospace .sec-eyebrow,
.elementor .prospace .sec-eyebrow{
  color:var(--accent-soft) !important;
  margin-bottom:1.4rem !important;
}
.prospace .sec-eyebrow .mark,
.elementor .prospace .sec-eyebrow .mark{
  background:var(--accent-soft) !important;
}
.prospace .sec-h,
.prospace h2.sec-h,
.elementor .prospace .sec-h,
.elementor .prospace h2.sec-h{
  color:var(--on-dark) !important;
  margin:0 !important;
  max-width:560px !important;
}
.prospace .sec-h em,
.prospace h2.sec-h em,
.elementor .prospace .sec-h em,
.elementor .prospace h2.sec-h em{
  color:var(--accent-soft) !important;
}
.prospace-content,
.elementor .prospace-content{
  display:flex !important;
  flex-direction:column !important;
  align-items:flex-start !important;
  justify-content:center !important;
  text-align:left !important;
}
.prospace-lead,
.prospace-lead p,
.elementor .prospace-lead,
.elementor .prospace-lead p{
  color:var(--on-dark-soft) !important;
  font-size:1.05rem !important;
  line-height:1.8 !important;
  max-width:620px !important;
  margin:0 0 2rem !important;
}
.prospace-list,
.elementor .prospace-list{
  display:flex !important;
  flex-direction:column !important;
  align-items:flex-start !important;
  gap:1rem !important;
  margin:0 0 2.2rem !important;
  padding:0 !important;
}
.prospace-item,
.prospace-item p,
.elementor .prospace-item,
.elementor .prospace-item p{
  color:var(--on-dark) !important;
  font-size:.95rem !important;
  font-weight:600 !important;
  line-height:1.55 !important;
  margin:0 !important;
}
.prospace-item::before,
.elementor .prospace-item::before{
  content:"✓" !important;
  display:inline-block !important;
  color:var(--accent) !important;
  margin-right:.8rem !important;
  font-weight:700 !important;
}
.prospace-actions,
.elementor .prospace-actions{
  display:flex !important;
  flex-direction:row !important;
  align-items:center !important;
  justify-content:flex-start !important;
  gap:1rem !important;
  flex-wrap:wrap !important;
}
.btn-blue,
.elementor .btn-blue,
button.btn-blue,
.elementor-button.btn-blue,
.btn.btn-blue.e-button-base{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  background:var(--accent) !important;
  background-color:var(--accent) !important;
  color:#fff !important;
  border:1px solid var(--accent) !important;
  border-radius:var(--r-sm) !important;
  padding:1.1rem 2.1rem !important;
  font-family:var(--sans) !important;
  font-weight:600 !important;
  font-size:.9rem !important;
  line-height:1 !important;
  text-decoration:none !important;
  box-shadow:none !important;
  transition:transform .4s var(--ease-lux),box-shadow .4s var(--ease-lux),background .35s var(--ease) !important;
}
.btn-blue:hover,
.elementor .btn-blue:hover,
button.btn-blue:hover,
.elementor-button.btn-blue:hover,
.btn.btn-blue.e-button-base:hover{
  background:var(--accent-2) !important;
  background-color:var(--accent-2) !important;
  color:#fff !important;
  transform:translateY(-2px) !important;
  box-shadow:0 14px 34px rgba(47,74,160,.34) !important;
}
.prospace .btn-ghost,
.elementor .prospace .btn-ghost,
.prospace button.btn-ghost,
.prospace .elementor-button.btn-ghost,
.prospace .btn.btn-ghost.e-button-base{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  background:transparent !important;
  background-color:transparent !important;
  color:var(--on-dark) !important;
  border:1px solid rgba(255,255,255,.22) !important;
  border-radius:var(--r-sm) !important;
  padding:1.1rem 2.1rem !important;
  font-family:var(--sans) !important;
  font-weight:600 !important;
  font-size:.9rem !important;
  line-height:1 !important;
  text-decoration:none !important;
  box-shadow:none !important;
  transition:transform .4s var(--ease-lux),border-color .35s var(--ease),background .35s var(--ease) !important;
}
.prospace .btn-ghost:hover,
.elementor .prospace .btn-ghost:hover,
.prospace button.btn-ghost:hover,
.prospace .elementor-button.btn-ghost:hover,
.prospace .btn.btn-ghost.e-button-base:hover{
  color:#fff !important;
  border-color:var(--accent-soft) !important;
  background:rgba(255,255,255,.04) !important;
  transform:translateY(-2px) !important;
}
@media(max-width:860px){
  .prospace .prospace-in > .e-con-inner,
  .elementor .prospace .prospace-in > .e-con-inner,
  .elementor .prospace .wrap.prospace-in > .e-con-inner{
    grid-template-columns:1fr !important;
    gap:3rem !important;
  }
}

/* ============================================================
   FINAL FIX — Espace Pro section alignment
   Objectif : reproduire le design source, sans toucher aux autres sections.
   Structure attendue : band-ink prospace > wrap prospace-in > prospace-title + prospace-content
   ============================================================ */
.elementor .prospace,
.elementor .e-con.prospace,
.elementor section.prospace,
.prospace{
  padding:clamp(5rem,7vw,6rem) 0 !important;
}

.elementor .prospace .wrap.prospace-in,
.elementor .prospace .prospace-in,
.prospace .wrap.prospace-in,
.prospace .prospace-in{
  width:100% !important;
  margin-left:auto !important;
  margin-right:auto !important;
  padding-left:0 !important;
  padding-right:0 !important;
  background:transparent !important;
}

.elementor .prospace .wrap.prospace-in > .e-con-inner,
.elementor .prospace .prospace-in > .e-con-inner,
.prospace .wrap.prospace-in > .e-con-inner,
.prospace .prospace-in > .e-con-inner{
  width:100% !important;
  max-width:1200px !important;
  margin-left:auto !important;
  margin-right:auto !important;
  padding-left:clamp(.6rem,2vw,1rem) !important;
  padding-right:clamp(.6rem,2vw,1rem) !important;
  display:grid !important;
  grid-template-columns:520px 520px !important;
  justify-content:space-between !important;
  align-items:center !important;
  gap:100px !important;
  min-height:360px !important;
  background:transparent !important;
}

.elementor .prospace .prospace-title,
.prospace .prospace-title{
  width:100% !important;
  max-width:520px !important;
  justify-self:start !important;
  align-self:center !important;
}

.elementor .prospace .prospace-content,
.prospace .prospace-content{
  width:100% !important;
  max-width:520px !important;
  justify-self:end !important;
  align-self:center !important;
}

.elementor .prospace .sec-h,
.elementor .prospace h2.sec-h,
.prospace .sec-h,
.prospace h2.sec-h{
  max-width:460px !important;
  margin:0 !important;
  color:var(--on-dark) !important;
}

.elementor .universe-pro .prospace .sec-h em,
.elementor .prospace .sec-h em,
.prospace .sec-h em{
  color:var(--accent-soft) !important;
}

.elementor .prospace .prospace-lead,
.elementor .prospace .prospace-lead p,
.prospace .prospace-lead,
.prospace .prospace-lead p{
  max-width:520px !important;
  margin:0 0 2rem !important;
}

@media(max-width:1024px){
  .elementor .prospace .wrap.prospace-in > .e-con-inner,
  .elementor .prospace .prospace-in > .e-con-inner,
  .prospace .wrap.prospace-in > .e-con-inner,
  .prospace .prospace-in > .e-con-inner{
    grid-template-columns:minmax(0,1fr) minmax(0,1fr) !important;
    gap:3rem !important;
  }
}

@media(max-width:860px){
  .elementor .prospace .wrap.prospace-in > .e-con-inner,
  .elementor .prospace .prospace-in > .e-con-inner,
  .prospace .wrap.prospace-in > .e-con-inner,
  .prospace .prospace-in > .e-con-inner{
    grid-template-columns:1fr !important;
    justify-content:start !important;
    min-height:auto !important;
  }
  .elementor .prospace .prospace-title,
  .elementor .prospace .prospace-content,
  .prospace .prospace-title,
  .prospace .prospace-content{
    justify-self:start !important;
    max-width:560px !important;
  }
}

/* ============================================================
   FINAL OVERRIDE — Espace Pro MAFATEC
   Compatible même si le container intérieur n'a pas les classes wrap prospace-in.
   Corrige : espace blanc, centrage vertical, grille 2 colonnes, alignement checks + texte.
   ============================================================ */
.elementor .universe-pro,
.universe-pro{
  gap:0!important;
  row-gap:0!important;
}

.elementor .certbar,
.elementor .certbar.elementor-element,
.elementor section.certbar,
.elementor .e-con.certbar{
  margin:0!important;
  padding:0!important;
  min-height:48px!important;
  background:#070b16!important;
  background-color:#070b16!important;
}

.elementor .prospace,
.elementor .prospace.elementor-element,
.elementor section.prospace,
.elementor .e-con.prospace,
.prospace{
  margin:0!important;
  padding:0!important;
  min-height:520px!important;
  background:var(--ink-900)!important;
  background-color:var(--ink-900)!important;
  color:var(--on-dark)!important;
  display:block!important;
  position:relative!important;
  overflow:hidden!important;
}

/* Le vrai container Elementor peut être :
   - .wrap.prospace-in > .e-con-inner
   - ou simplement le premier .e-con-boxed > .e-con-inner, comme dans ton code actuel. */
.elementor .prospace > .e-con-boxed,
.elementor .prospace > .e-con,
.prospace > .e-con-boxed,
.prospace > .e-con{
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  padding:0!important;
  background:transparent!important;
}

.elementor .prospace > .e-con-boxed > .e-con-inner,
.elementor .prospace > .e-con > .e-con-inner,
.elementor .prospace .wrap.prospace-in > .e-con-inner,
.elementor .prospace .prospace-in > .e-con-inner,
.prospace > .e-con-boxed > .e-con-inner,
.prospace > .e-con > .e-con-inner,
.prospace .wrap.prospace-in > .e-con-inner,
.prospace .prospace-in > .e-con-inner{
  width:100%!important;
  max-width:1200px!important;
  min-height:520px!important;
  margin:0 auto!important;
  padding:0 2.5rem!important;
  display:grid!important;
  grid-template-columns:520px 520px!important;
  justify-content:space-between!important;
  align-items:center!important;
  gap:100px!important;
  background:transparent!important;
}

.elementor .prospace .prospace-title,
.prospace .prospace-title{
  width:100%!important;
  max-width:520px!important;
  margin:0!important;
  padding:0!important;
  display:flex!important;
  flex-direction:column!important;
  justify-content:center!important;
  align-items:flex-start!important;
  align-self:center!important;
  text-align:left!important;
}

.elementor .prospace .prospace-content,
.prospace .prospace-content{
  width:100%!important;
  max-width:520px!important;
  margin:0!important;
  padding:0!important;
  display:flex!important;
  flex-direction:column!important;
  justify-content:center!important;
  align-items:flex-start!important;
  align-self:center!important;
  text-align:left!important;
}

.elementor .prospace .sec-eyebrow,
.prospace .sec-eyebrow{
  margin:0 0 1.6rem!important;
  color:var(--accent-soft)!important;
}
.elementor .prospace .sec-eyebrow .mark,
.prospace .sec-eyebrow .mark{
  background:var(--accent-soft)!important;
}

.elementor .prospace .sec-h,
.elementor .prospace h2.sec-h,
.prospace .sec-h,
.prospace h2.sec-h{
  max-width:460px!important;
  margin:0!important;
  padding:0!important;
  color:var(--on-dark)!important;
  font-family:var(--serif)!important;
  font-size:clamp(2.35rem,3.4vw,3.5rem)!important;
  line-height:1.08!important;
  letter-spacing:-.015em!important;
  text-align:left!important;
}
.elementor .prospace .sec-h em,
.elementor .prospace h2.sec-h em,
.prospace .sec-h em,
.prospace h2.sec-h em{
  color:var(--accent-soft)!important;
  font-style:italic!important;
}

.elementor .prospace .prospace-lead,
.elementor .prospace .prospace-lead p,
.prospace .prospace-lead,
.prospace .prospace-lead p{
  max-width:520px!important;
  margin:0 0 2rem!important;
  color:var(--on-dark-soft)!important;
  font-size:1.05rem!important;
  line-height:1.78!important;
  font-weight:500!important;
}

.elementor .prospace .prospace-list,
.prospace .prospace-list{
  width:100%!important;
  margin:0 0 2.2rem!important;
  padding:0!important;
  display:flex!important;
  flex-direction:column!important;
  gap:1.05rem!important;
}

.elementor .prospace .prospace-item,
.prospace .prospace-item{
  width:100%!important;
  margin:0!important;
  padding:0!important;
  display:flex!important;
  flex-direction:row!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:.85rem!important;
  color:var(--on-dark)!important;
  font-size:.95rem!important;
  font-weight:600!important;
  line-height:1.4!important;
}
.elementor .prospace .prospace-item::before,
.prospace .prospace-item::before{
  content:'✓'!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  flex:0 0 auto!important;
  width:auto!important;
  height:auto!important;
  margin:0!important;
  padding:0!important;
  color:var(--accent)!important;
  font-size:1rem!important;
  line-height:1!important;
  transform:none!important;
}
.elementor .prospace .prospace-item p,
.prospace .prospace-item p{
  margin:0!important;
  padding:0!important;
  color:inherit!important;
  font-size:inherit!important;
  font-weight:inherit!important;
  line-height:inherit!important;
}

.elementor .prospace .prospace-actions,
.prospace .prospace-actions{
  margin:0!important;
  padding:0!important;
  display:flex!important;
  flex-direction:row!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:1rem!important;
}

@media(max-width:900px){
  .elementor .prospace,
  .prospace{
    min-height:auto!important;
    padding:5rem 0!important;
  }
  .elementor .prospace > .e-con-boxed > .e-con-inner,
  .elementor .prospace > .e-con > .e-con-inner,
  .elementor .prospace .wrap.prospace-in > .e-con-inner,
  .elementor .prospace .prospace-in > .e-con-inner,
  .prospace > .e-con-boxed > .e-con-inner,
  .prospace > .e-con > .e-con-inner,
  .prospace .wrap.prospace-in > .e-con-inner,
  .prospace .prospace-in > .e-con-inner{
    min-height:0!important;
    grid-template-columns:1fr!important;
    gap:3rem!important;
    padding:0 1.4rem!important;
  }
  .elementor .prospace .prospace-title,
  .elementor .prospace .prospace-content,
  .prospace .prospace-title,
  .prospace .prospace-content{
    max-width:560px!important;
  }
}

/* ============================================================
   Elementor force — ABOUT / QUI SOMMES-NOUS
   À garder en fin de theme-elementor.css car ce fichier est chargé après pages.css.
   ============================================================ */

body .elementor .xhero.xhero-about,
body .elementor .xhero.grain.xhero-about,
body .elementor .xhero.xhero-about.elementor-element,
body .elementor .xhero.grain.xhero-about.elementor-element{
  background:
    radial-gradient(ellipse 55% 70% at 86% 30%, rgba(201,59,24,.16) 0%, transparent 62%),
    radial-gradient(ellipse 60% 60% at 12% 90%, rgba(42,46,114,.50) 0%, transparent 60%),
    linear-gradient(180deg,#050816 0%,#020617 100%) !important;
}

body .elementor .xhero-about .xhero-bg{display:none !important;}

body .elementor .xhero-about .xhero-about-in{
  width:100% !important;
  max-width:1200px !important;
  margin-left:auto !important;
  margin-right:auto !important;
  padding-left:2.5rem !important;
  padding-right:2.5rem !important;
}

body .elementor .xhero-about .xhero-about-in,
body .elementor .xhero-about .xhero-about-in > .e-con-inner{
  min-height:620px !important;
  display:grid !important;
  grid-template-columns:1.05fr .95fr !important;
  align-items:center !important;
  justify-content:center !important;
  gap:5rem !important;
}

body .elementor .xhero-about .xhero-copy{
  width:100% !important;
  max-width:560px !important;
  justify-content:center !important;
  align-items:flex-start !important;
  text-align:left !important;
}

body .elementor .xhero-about .xhero-visual{
  width:100% !important;
  max-width:520px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
}

body .elementor .section > .wrap.edito > .e-con-inner,
body .elementor .section > .e-con.wrap.edito > .e-con-inner,
body .elementor .section > .elementor-element.wrap.edito > .e-con-inner,
body .elementor .section > .e-con-boxed:has(.edito-body) > .e-con-inner{
  display:grid !important;
  grid-template-columns:.85fr 1.15fr !important;
  gap:5rem !important;
  align-items:start !important;
}

body .elementor .edito .sec-h,
body .elementor .section:has(.edito-body) .sec-h{
  max-width:680px !important;
}

body .elementor .edito-body p{
  color:var(--text-soft) !important;
  font-size:1.02rem !important;
  line-height:1.85 !important;
  margin:0 !important;
}
body .elementor .edito-body p + p{margin-top:1.3rem !important;}

body .elementor .promise ul,
body .elementor ul.promise{
  list-style:none !important;
  margin:2.2rem 0 0 !important;
  padding:0 !important;
  display:flex !important;
  flex-direction:column !important;
  gap:.95rem !important;
}

body .elementor .promise li,
body .elementor ul.promise li{
  position:relative !important;
  display:block !important;
  padding-left:1.8rem !important;
  font-size:.98rem !important;
  color:var(--text) !important;
  line-height:1.5 !important;
}

body .elementor .promise li::before,
body .elementor ul.promise li::before{
  content:'✓' !important;
  position:absolute !important;
  left:0 !important;
  top:0 !important;
  color:var(--red-500) !important;
  font-weight:700 !important;
  line-height:1.5 !important;
}

@media(max-width:980px){
  body .elementor .section > .wrap.edito > .e-con-inner,
  body .elementor .section > .e-con.wrap.edito > .e-con-inner,
  body .elementor .section > .elementor-element.wrap.edito > .e-con-inner,
  body .elementor .section > .e-con-boxed:has(.edito-body) > .e-con-inner{
    grid-template-columns:1fr !important;
    gap:2.2rem !important;
  }
}

@media(max-width:880px){
  body .elementor .xhero-about .xhero-about-in,
  body .elementor .xhero-about .xhero-about-in > .e-con-inner{
    grid-template-columns:1fr !important;
    gap:3rem !important;
    min-height:auto !important;
  }
  body .elementor .xhero-about .xhero-about-in{
    padding-left:1.4rem !important;
    padding-right:1.4rem !important;
  }
}

/* ============================================================
   ABOUT — Certifications / fix Elementor spacing final
   Cible la section page 386 sans impacter les autres sections
============================================================ */
body .elementor.elementor-386 .elementor-element-e938afc.about-certs-section{
  --padding-top:4.5rem !important;
  --padding-bottom:4.5rem !important;
  padding-top:4.5rem !important;
  padding-bottom:4.5rem !important;
}

body .elementor.elementor-386 .elementor-element-c1f46d0.wrap.about-certs,
body .elementor.elementor-386 .elementor-element-c1f46d0.wrap.about-certs > .e-con-inner{
  --row-gap:0 !important;
  --column-gap:0 !important;
  gap:0 !important;
}

body .elementor.elementor-386 .elementor-element-c1f46d0.wrap.about-certs .elementor-widget,
body .elementor.elementor-386 .elementor-element-c1f46d0.wrap.about-certs .elementor-widget-container{
  margin-block-start:0 !important;
  margin-block-end:0 !important;
  margin-top:0 !important;
  margin-bottom:0 !important;
}

body .elementor.elementor-386 .elementor-element-c1f46d0.wrap.about-certs .sec-eyebrow{
  margin-bottom:1.4rem !important;
}

body .elementor.elementor-386 .elementor-element-c1f46d0.wrap.about-certs .sec-h{
  max-width:680px !important;
  margin:0 0 1rem !important;
}

body .elementor.elementor-386 .elementor-element-c1f46d0.wrap.about-certs .sec-lead,
body .elementor.elementor-386 .elementor-element-c1f46d0.wrap.about-certs .sec-lead .elementor-widget-container,
body .elementor.elementor-386 .elementor-element-c1f46d0.wrap.about-certs .sec-lead p{
  max-width:680px !important;
  margin:0 !important;
}

body .elementor.elementor-386 .elementor-element-c1f46d0.wrap.about-certs .sec-lead{
  margin-bottom:2rem !important;
}

body .elementor.elementor-386 .elementor-element-293121d.cards-4,
body .elementor.elementor-386 .elementor-element-836b9ad.cards-4,
body .elementor.elementor-386 .elementor-element-293121d.cards-4 > .e-con-inner,
body .elementor.elementor-386 .elementor-element-836b9ad.cards-4 > .e-con-inner{
  --row-gap:1.2rem !important;
  --column-gap:1.2rem !important;
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  gap:1.2rem !important;
  margin:0 !important;
  padding:0 !important;
}

body .elementor.elementor-386 .elementor-element-836b9ad.cards-4{
  margin-top:1.2rem !important;
}

body .elementor.elementor-386 .elementor-element-c1f46d0.wrap.about-certs .lcard{
  --padding-top:1.6rem !important;
  --padding-right:1.7rem !important;
  --padding-bottom:1.6rem !important;
  --padding-left:1.7rem !important;
  padding:1.6rem 1.7rem !important;
  min-height:0 !important;
}

body .elementor.elementor-386 .elementor-element-c1f46d0.wrap.about-certs .lcard .chip{
  display:inline-block !important;
  margin:0 0 1rem !important;
}

body .elementor.elementor-386 .elementor-element-c1f46d0.wrap.about-certs .lcard h4{
  margin:0 0 .55rem !important;
}

body .elementor.elementor-386 .elementor-element-c1f46d0.wrap.about-certs .lcard p{
  margin:0 !important;
}

@media(max-width:900px){
  body .elementor.elementor-386 .elementor-element-293121d.cards-4,
  body .elementor.elementor-386 .elementor-element-836b9ad.cards-4,
  body .elementor.elementor-386 .elementor-element-293121d.cards-4 > .e-con-inner,
  body .elementor.elementor-386 .elementor-element-836b9ad.cards-4 > .e-con-inner{
    grid-template-columns:1fr !important;
  }
}

/* ============================================================
   ABOUT — ESPACEMENTS UNIQUEMENT (ne touche pas aux animations)
   Correction finale page Qui sommes-nous
   ============================================================ */

/* Certifications : resserrage ciblé sans changer les cartes ni hover */
body .elementor.elementor-386 .section.about-certs-section,
body .elementor.elementor-386 .elementor-element-e938afc.about-certs-section{
  --padding-top:4.5rem !important;
  --padding-bottom:4.5rem !important;
  padding-top:4.5rem !important;
  padding-bottom:4.5rem !important;
}

body .elementor.elementor-386 .wrap.about-certs,
body .elementor.elementor-386 .wrap.about-certs > .e-con-inner{
  --row-gap:0 !important;
  --column-gap:0 !important;
  gap:0 !important;
}

body .elementor.elementor-386 .wrap.about-certs .elementor-widget,
body .elementor.elementor-386 .wrap.about-certs .elementor-widget-container{
  margin-block-start:0 !important;
  margin-block-end:0 !important;
  margin-top:0 !important;
  margin-bottom:0 !important;
}

body .elementor.elementor-386 .wrap.about-certs .sec-eyebrow{
  margin-bottom:1.4rem !important;
}

body .elementor.elementor-386 .wrap.about-certs .sec-h{
  max-width:680px !important;
  margin-top:0 !important;
  margin-right:0 !important;
  margin-bottom:1rem !important;
  margin-left:0 !important;
}

body .elementor.elementor-386 .wrap.about-certs .sec-lead,
body .elementor.elementor-386 .wrap.about-certs .sec-lead p{
  max-width:680px !important;
  margin-top:0 !important;
  margin-right:0 !important;
  margin-bottom:2rem !important;
  margin-left:0 !important;
}

body .elementor.elementor-386 .wrap.about-certs .cards-4{
  --row-gap:1.2rem !important;
  --column-gap:1.2rem !important;
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  gap:1.2rem !important;
  margin:0 !important;
  padding:0 !important;
}

body .elementor.elementor-386 .wrap.about-certs .cards-4 + .cards-4{
  margin-top:1.2rem !important;
}

body .elementor.elementor-386 .wrap.about-certs .lcard{
  --padding-top:1.6rem !important;
  --padding-right:1.7rem !important;
  --padding-bottom:1.6rem !important;
  --padding-left:1.7rem !important;
  padding:1.6rem 1.7rem !important;
  min-height:0 !important;
}

/* Pourquoi choisir MAFATEC : espacement seulement, hover/animations conservés */
body .elementor.elementor-386 .why,
body .elementor.elementor-386 .e-con.why,
body .elementor.elementor-386 .elementor-element.why,
body .elementor.elementor-386 .why > .e-con-inner{
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  gap:0 !important;
  border-top:1px solid var(--line-warm) !important;
}

body .elementor.elementor-386 .why-item,
body .elementor.elementor-386 .e-con.why-item,
body .elementor.elementor-386 .elementor-element.why-item{
  --padding-top:2.4rem !important;
  --padding-right:2rem !important;
  --padding-bottom:2.4rem !important;
  --padding-left:2rem !important;
  display:grid !important;
  grid-template-columns:auto 1fr !important;
  column-gap:1.6rem !important;
  row-gap:.35rem !important;
  align-items:start !important;
  padding:2.4rem 2rem !important;
  border-bottom:1px solid var(--line-warm) !important;
}

body .elementor.elementor-386 .why-item:nth-child(odd),
body .elementor.elementor-386 .e-con.why-item:nth-child(odd),
body .elementor.elementor-386 .elementor-element.why-item:nth-child(odd){
  border-right:1px solid var(--line-warm) !important;
}

body .elementor.elementor-386 .why-num.vn-ico,
body .elementor.elementor-386 .why-item .why-num.vn-ico{
  width:46px !important;
  min-width:46px !important;
  min-height:46px !important;
  margin:0 !important;
}

body .elementor.elementor-386 .why-num.vn-ico svg,
body .elementor.elementor-386 .why-item .why-num.vn-ico svg{
  width:46px !important;
  height:46px !important;
  display:block !important;
}

body .elementor.elementor-386 .why-item h4{
  margin:0 0 .5rem !important;
}

body .elementor.elementor-386 .why-item p{
  margin:0 !important;
  line-height:1.72 !important;
}

@media(max-width:900px){
  body .elementor.elementor-386 .why,
  body .elementor.elementor-386 .e-con.why,
  body .elementor.elementor-386 .elementor-element.why,
  body .elementor.elementor-386 .why > .e-con-inner{
    grid-template-columns:1fr !important;
  }

  body .elementor.elementor-386 .why-item,
  body .elementor.elementor-386 .e-con.why-item,
  body .elementor.elementor-386 .elementor-element.why-item{
    border-right:none !important;
  }
}

/* ============================================================
   SPLIT SCREEN — correction définitive scroll / espace blanc
   Indépendant des classes WordPress et Elementor.
   S'applique uniquement aux pages qui contiennent le composant .split.
   ============================================================ */

:root{
  --maf-header-height:74px;
  --maf-footer-height:48px;
}

html:has(.split),
body:has(.split){
  height:100% !important;
  min-height:100% !important;
  overflow:hidden !important;
}

body:has(.split){
  padding-bottom:0 !important;
}

.site-main:has(.split){
  min-height:auto !important;
  height:calc(100vh - var(--maf-header-height) - var(--maf-footer-height)) !important;
  margin:0 !important;
  padding:0 !important;
  overflow:hidden !important;
}

.site-main:has(.split) .mafatec-fullwidth,
.site-main:has(.split) .entry-content,
.site-main:has(.split) .elementor{
  height:100% !important;
  min-height:0 !important;
  margin:0 !important;
  padding:0 !important;
  overflow:hidden !important;
}

.site-main:has(.split) .split,
.site-main:has(.split) .split.elementor-element,
.site-main:has(.split) .split.e-con,
.site-main:has(.split) .split.e-flexbox-base{
  height:100% !important;
  min-height:100% !important;
  max-height:100% !important;
  margin:0 !important;
  padding:0 !important;
  overflow:hidden !important;
}

.site-main:has(.split) .panel,
.site-main:has(.split) .panel.elementor-element,
.site-main:has(.split) .panel.e-con,
.site-main:has(.split) .panel.e-flexbox-base{
  height:100% !important;
  min-height:100% !important;
  max-height:100% !important;
  margin:0 !important;
}

.site-main:has(.split) + .sfoot,
.site-main:has(.split) ~ .sfoot,
body:has(.split) .mafatec-footer{
  margin-top:0 !important;
}

@media(max-width:860px){
  html:has(.split),
  body:has(.split){
    height:auto !important;
    min-height:100% !important;
    overflow-y:auto !important;
  }

  body:has(.split){
    padding-bottom:96px !important;
  }

  .site-main:has(.split){
    height:auto !important;
    min-height:auto !important;
    overflow:visible !important;
  }

  .site-main:has(.split) .mafatec-fullwidth,
  .site-main:has(.split) .entry-content,
  .site-main:has(.split) .elementor,
  .site-main:has(.split) .split,
  .site-main:has(.split) .panel{
    height:auto !important;
    min-height:auto !important;
    max-height:none !important;
    overflow:visible !important;
  }
}

/* ── Bands ── */
.band-paper2{background:var(--paper-2)}
.band-ink{background:var(--ink-900) !important;color:var(--on-dark) !important;position:relative !important;overflow:hidden}
.band-ink .sec-eyebrow{color:var(--champagne-soft)}
.band-ink .sec-h{color:var(--on-dark)}
.band-ink .sec-lead{color:var(--on-dark-soft)}

/* ── Boutons ── */
.btn{
  --bg:var(--red-500); --fg:#fff;
  display:inline-flex;align-items:center;gap:.65rem;
  font-family:var(--sans);font-weight:600;font-size:.84rem;letter-spacing:.02em;
  padding:.95rem 1.7rem;border-radius:var(--r-sm);
  background:var(--bg);color:var(--fg);
  position:relative;overflow:hidden;
  transition:transform .4s var(--ease-lux), box-shadow .4s var(--ease-lux), background .35s var(--ease);
  white-space:nowrap;
}
.btn svg{width:15px;height:15px;transition:transform .4s var(--ease-lux)}
.btn:hover{transform:translateY(-2px)}
.btn:hover svg{transform:translateX(4px)}
.btn-red{--bg:var(--red-500)}
.btn-red:hover{--bg:var(--red-400);box-shadow:0 14px 34px rgba(201,59,24,.34)}
.btn-ink{--bg:var(--ink-900)}
.btn-ink:hover{--bg:var(--ink-800);box-shadow:0 14px 34px rgba(11,14,29,.28)}
.btn-ghost{
  --bg:transparent !important;--fg:var(--on-dark) !important;
  border:1px solid rgba(243,239,230,.22) !important;
}
.btn-ghost:hover{--bg:rgba(243,239,230,.06) !important;border-color:var(--champagne) !important;}
.btn-outline{
  --bg:transparent;--fg:var(--text);
  border:1px solid var(--line-warm);
}
.btn-outline:hover{--bg:#fff;border-color:var(--champagne);box-shadow:var(--sh-sm)}
.btn-lg{padding:1.1rem 2.1rem;font-size:.9rem}

/* ========================================================================== 
   MAFATEC 2026 — PONT GLOBAL ELEMENTOR
   Les classes de design sont posées sur les widgets Elementor, tandis que
   Elementor génère le vrai h1/h2/p/a à l'intérieur. Ce bloc transpose donc
   systématiquement le style du widget vers l'élément HTML réel.
   ========================================================================== */

/* ---------- 1. Neutralisation des wrappers Elementor ---------- */
.elementor .elementor-widget-heading.display,
.elementor .elementor-widget-heading.sec-h,
.elementor .elementor-widget-text-editor.lead,
.elementor .elementor-widget-text-editor.sec-lead,
.elementor .elementor-widget-text-editor.xhero-lead,
.elementor .elementor-widget-button.btn,
.elementor .elementor-widget-button.cta-lux{
  color:inherit;
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
}
.elementor .elementor-widget-button.btn,
.elementor .elementor-widget-button.cta-lux{
  width:auto!important;
  max-width:max-content!important;
  padding:0!important;
}
.elementor .elementor-widget-button.btn > .elementor-widget-container,
.elementor .elementor-widget-button.cta-lux > .elementor-widget-container{
  width:auto!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
}

/* ---------- 2. Titres DISPLAY : héros et grands titres ---------- */
.elementor .elementor-widget-heading.display .elementor-heading-title{
  font-family:var(--head)!important;
  font-weight:600!important;
  line-height:.98!important;
  letter-spacing:-.01em!important;
  color:inherit;
}
:root[data-head="sans"] .elementor .elementor-widget-heading.display .elementor-heading-title{
  font-family:var(--sans)!important;
  font-weight:800!important;
  line-height:1.02!important;
  letter-spacing:-.04em!important;
}
.elementor .xhero .elementor-widget-heading.display .elementor-heading-title{
  font-size:clamp(2.4rem,4vw,3.9rem)!important;
  line-height:1.06!important;
  letter-spacing:-.012em!important;
  color:var(--on-dark)!important;
  margin:0!important;
  white-space:normal!important;
  word-break:normal!important;
  overflow-wrap:normal!important;
}
.elementor .xhero .elementor-widget-heading.display .elementor-heading-title em{
  font-family:var(--head)!important;
  font-style:italic!important;
  font-weight:600!important;
  color:var(--accent,var(--red-400))!important;
}
:root[data-head="sans"] .elementor .xhero .elementor-widget-heading.display .elementor-heading-title em{
  font-style:normal!important;
}

/* ---------- 3. Titres de section ---------- */
.elementor .elementor-widget-heading.sec-h .elementor-heading-title,
.elementor .sec-h.elementor-widget-heading .elementor-heading-title{
  margin:0!important;
  font-family:var(--head)!important;
  font-size:clamp(2rem,3.6vw,3rem)!important;
  font-weight:600!important;
  line-height:1.05!important;
  letter-spacing:-.015em!important;
  color:var(--text)!important;
}
.elementor .elementor-widget-heading.sec-h .elementor-heading-title em,
.elementor .sec-h.elementor-widget-heading .elementor-heading-title em{
  color:var(--accent,var(--red-500))!important;
  font-style:italic!important;
}
.elementor .band-ink .elementor-widget-heading.sec-h .elementor-heading-title,
.elementor .band-dark .elementor-widget-heading.sec-h .elementor-heading-title{
  color:var(--on-dark)!important;
}

/* ---------- 4. Textes / leads ---------- */
.elementor .elementor-widget-text-editor.xhero-lead,
.elementor .elementor-widget-text-editor.xhero-lead .elementor-widget-container,
.elementor .elementor-widget-text-editor.xhero-lead p{
  font-family:var(--sans)!important;
  font-size:1.1rem!important;
  font-weight:400!important;
  line-height:1.78!important;
  color:var(--on-dark-soft)!important;
}
.elementor .elementor-widget-text-editor.xhero-lead p,
.elementor .elementor-widget-text-editor.sec-lead p,
.elementor .elementor-widget-text-editor.lead p{
  margin:0!important;
}
.elementor .elementor-widget-text-editor.sec-lead,
.elementor .elementor-widget-text-editor.sec-lead .elementor-widget-container,
.elementor .elementor-widget-text-editor.sec-lead p{
  font-family:var(--sans)!important;
  font-size:1.05rem!important;
  font-weight:400!important;
  line-height:1.78!important;
  color:var(--text-soft)!important;
}
.elementor .band-ink .elementor-widget-text-editor.sec-lead,
.elementor .band-ink .elementor-widget-text-editor.sec-lead p,
.elementor .band-dark .elementor-widget-text-editor.sec-lead,
.elementor .band-dark .elementor-widget-text-editor.sec-lead p{
  color:var(--on-dark-soft)!important;
}

/* ---------- 5. Boutons standards .btn ---------- */
.elementor .elementor-widget-button.btn .elementor-button{
  --bg:var(--red-500);
  --fg:#fff;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:.65rem!important;
  width:auto!important;
  min-width:0!important;
  min-height:0!important;
  margin:0!important;
  padding:.95rem 1.7rem!important;
  border:0!important;
  border-radius:var(--r-sm)!important;
  background:var(--bg)!important;
  background-color:var(--bg)!important;
  box-shadow:none!important;
  color:var(--fg)!important;
  font-family:var(--sans)!important;
  font-size:.84rem!important;
  font-weight:600!important;
  line-height:1!important;
  letter-spacing:.02em!important;
  text-transform:none!important;
  text-decoration:none!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  transition:transform .4s var(--ease-lux),box-shadow .4s var(--ease-lux),background .35s var(--ease)!important;
}
.elementor .elementor-widget-button.btn.btn-lg .elementor-button{
  padding:1.1rem 2.1rem!important;
  font-size:.9rem!important;
}
.elementor .elementor-widget-button.btn.btn-red .elementor-button{
  --bg:var(--accent,var(--red-500));
}
.elementor .elementor-widget-button.btn.btn-red .elementor-button:hover{
  --bg:var(--accent-2,var(--red-400));
  transform:translateY(-2px)!important;
  box-shadow:0 14px 34px rgba(201,59,24,.34)!important;
}
.elementor .elementor-widget-button.btn.btn-blue .elementor-button{
  --bg:var(--logo-blue);
}
.elementor .elementor-widget-button.btn.btn-blue .elementor-button:hover{
  --bg:var(--navy-500);
  transform:translateY(-2px)!important;
  box-shadow:0 14px 34px rgba(58,85,176,.30)!important;
}
.elementor .elementor-widget-button.btn.btn-ink .elementor-button{
  --bg:var(--ink-900);
}
.elementor .elementor-widget-button.btn.btn-ink .elementor-button:hover{
  --bg:var(--ink-800);
  transform:translateY(-2px)!important;
  box-shadow:0 14px 34px rgba(11,14,29,.28)!important;
}
.elementor .elementor-widget-button.btn.btn-ghost .elementor-button{
  --bg:transparent;
  --fg:var(--on-dark);
  border:1px solid rgba(243,239,230,.22)!important;
}
.elementor .elementor-widget-button.btn.btn-ghost .elementor-button:hover{
  --bg:rgba(243,239,230,.06);
  border-color:var(--champagne)!important;
  transform:translateY(-2px)!important;
}
.elementor .elementor-widget-button.btn.btn-outline .elementor-button{
  --bg:transparent;
  --fg:var(--text);
  border:1px solid var(--line-warm)!important;
}
.elementor .elementor-widget-button.btn.btn-outline .elementor-button:hover{
  --bg:#fff;
  border-color:var(--champagne)!important;
  box-shadow:var(--sh-sm)!important;
  transform:translateY(-2px)!important;
}
.elementor .elementor-widget-button.btn .elementor-button-content-wrapper{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:.65rem!important;
}
.elementor .elementor-widget-button.btn .elementor-button-icon svg{
  width:15px!important;
  height:15px!important;
  transition:transform .4s var(--ease-lux)!important;
}
.elementor .elementor-widget-button.btn .elementor-button:hover .elementor-button-icon svg{
  transform:translateX(4px)!important;
}

/* Flèche automatique seulement lorsque le widget n'a pas d'icône Elementor */
.elementor .elementor-widget-button.btn:not(:has(.elementor-button-icon)) .elementor-button-text::after{
  content:"→";
  display:inline-block;
  margin-left:.65rem;
  font-size:1em;
  font-weight:400;
  transition:transform .4s var(--ease-lux);
}
.elementor .elementor-widget-button.btn:not(:has(.elementor-button-icon)) .elementor-button:hover .elementor-button-text::after{
  transform:translateX(4px);
}

/* ---------- 6. CTA luxe outline ---------- */
.elementor .elementor-widget-button.cta-lux .elementor-button{
  position:relative!important;
  isolation:isolate!important;
  overflow:hidden!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:.85rem!important;
  width:auto!important;
  min-width:280px!important;
  min-height:56px!important;
  margin:0!important;
  padding:1.05rem 2rem!important;
  border:1px solid rgba(243,239,230,.28)!important;
  border-radius:2px!important;
  background:transparent!important;
  background-color:transparent!important;
  box-shadow:none!important;
  color:var(--on-dark)!important;
  font-family:var(--sans)!important;
  font-size:.82rem!important;
  font-weight:600!important;
  line-height:1!important;
  letter-spacing:.1em!important;
  text-transform:uppercase!important;
  text-decoration:none!important;
  transition:color .5s var(--ease-lux),border-color .5s var(--ease-lux),transform .4s var(--ease-lux)!important;
}
.elementor .elementor-widget-button.cta-lux .elementor-button::before{
  content:""!important;
  position:absolute!important;
  inset:0!important;
  z-index:0!important;
  background:var(--red-500)!important;
  transform:scaleX(0)!important;
  transform-origin:left center!important;
  transition:transform .55s var(--ease-lux)!important;
}
.elementor .elementor-widget-button.cta-lux.cta-lux-blue .elementor-button::before{
  background:var(--logo-blue)!important;
}
.elementor .elementor-widget-button.cta-lux .elementor-button-content-wrapper{
  position:relative!important;
  z-index:1!important;
}
.elementor .elementor-widget-button.cta-lux .elementor-button:hover{
  color:#fff!important;
  border-color:var(--red-500)!important;
  transform:translateY(-2px)!important;
}
.elementor .elementor-widget-button.cta-lux.cta-lux-blue .elementor-button:hover{
  border-color:var(--logo-blue)!important;
}
.elementor .elementor-widget-button.cta-lux .elementor-button:hover::before{
  transform:scaleX(1)!important;
}

/* ---------- 7. Eyebrows et badges ---------- */
.elementor .elementor-widget-heading.eyebrow{
  width:100%;
  text-align:center;
}
.elementor .elementor-widget-heading.eyebrow .elementor-heading-title{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:.6rem!important;
  margin:0 auto!important;
  font-family:var(--sans)!important;
  font-size:.7rem!important;
  font-weight:600!important;
  line-height:1!important;
  letter-spacing:.32em!important;
  text-transform:uppercase!important;
  color:inherit!important;
}
.elementor .elementor-widget-heading.eyebrow .mark{
  display:block!important;
  flex:0 0 26px!important;
  width:26px!important;
  height:1px!important;
  margin:0!important;
  background:var(--champagne)!important;
}
.elementor .xhero-badge{
  display:inline-flex!important;
  align-items:center!important;
  gap:.55rem!important;
  width:auto!important;
  padding:.4rem 1rem!important;
  border:1px solid var(--hair-d)!important;
  border-radius:var(--r-full,999px)!important;
  color:var(--accent-soft,var(--champagne-soft))!important;
  font-family:var(--sans)!important;
  font-size:.66rem!important;
  font-weight:600!important;
  line-height:1!important;
  letter-spacing:.18em!important;
  text-transform:uppercase!important;
}

/* ---------- 8. Cartes Elementor ---------- */
.elementor .lcard.elementor-element{
  position:relative;
  overflow:hidden;
}
.elementor .lcard .elementor-widget-heading h3,
.elementor .lcard .elementor-widget-heading h4,
.elementor .lcard .elementor-heading-title{
  font-family:var(--head)!important;
  font-size:1.3rem!important;
  font-weight:600!important;
  line-height:1.15!important;
  color:var(--text)!important;
}
.elementor .lcard .elementor-widget-text-editor,
.elementor .lcard .elementor-widget-text-editor p{
  font-family:var(--sans)!important;
  font-size:.92rem!important;
  font-weight:400!important;
  line-height:1.72!important;
  color:var(--text-soft)!important;
}

/* ---------- 9. Univers professionnel ---------- */
[data-universe="pro"]{
  --accent:var(--logo-blue);
  --accent-2:var(--navy-500);
  --accent-soft:#8ea4df;
}
[data-universe="part"]{
  --accent:var(--red-500);
  --accent-2:var(--red-400);
  --accent-soft:var(--champagne-soft);
}
[data-universe="pro"] .elementor .xhero .elementor-widget-heading.display .elementor-heading-title em{
  color:var(--accent-soft)!important;
}
[data-universe="pro"] .elementor .xhero-badge .dot{
  background:var(--accent-soft)!important;
}

/* ---------- 10. Responsive ---------- */
@media(max-width:767px){
  .elementor .elementor-widget-button.btn,
  .elementor .elementor-widget-button.btn > .elementor-widget-container{
    max-width:100%!important;
  }
  .elementor .xhero-ctas .elementor-widget-button.btn,
  .elementor .xcta-ctas .elementor-widget-button.btn{
    width:100%!important;
    max-width:100%!important;
  }
  .elementor .xhero-ctas .elementor-widget-button.btn .elementor-button,
  .elementor .xcta-ctas .elementor-widget-button.btn .elementor-button{
    width:100%!important;
  }
}

/* ============================================================
   FOOTER — retour à la ligne réel des éléments du menu
   Le texte d'un lien reste sur une seule ligne ; ce sont les items
   complets qui passent sur la ligne suivante.
   ============================================================ */
.mafatec-footer .sfoot-in{align-items:center}
.mafatec-footer .sfoot-links{min-width:0}
.mafatec-footer .maf-footer-menu{
  width:100%;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:flex-end;
  column-gap:1.3rem;
  row-gap:.85rem;
}
.mafatec-footer .maf-footer-menu > li{flex:0 0 auto;margin:0;padding:0}
.mafatec-footer .maf-footer-menu a{display:block;white-space:nowrap;overflow-wrap:normal;word-break:normal}

@media(max-width:980px){
  .mafatec-footer .sfoot-in{display:grid;grid-template-columns:1fr 1fr;gap:1rem 2rem}
  .mafatec-footer .sfoot-addr{text-align:left}
  .mafatec-footer .sfoot-certs{text-align:right}
  .mafatec-footer .sfoot-links{grid-column:1 / -1;width:100%}
  .mafatec-footer .maf-footer-menu{justify-content:center}
}

@media(max-width:760px){
  .mafatec-footer .sfoot-in{display:flex;flex-direction:column;text-align:center;gap:.9rem}
  .mafatec-footer .sfoot-addr,.mafatec-footer .sfoot-certs{width:100%;text-align:center}
  .mafatec-footer .maf-footer-menu{justify-content:center;column-gap:1.1rem;row-gap:.7rem}
}


/* ============================================================
   HOME SPLIT — CORRECTION FINALE SANS ESPACE AVANT LE FOOTER
   Principe :
   - le footer reste fixe ;
   - le split remplit toute la hauteur sous le header ;
   - le footer recouvre les 48 px du bas au lieu de réserver
     une seconde zone blanche ;
   - aucune autre page n'est concernée.
   ============================================================ */

@supports selector(body:has(.split)){

  :root{
    --maf-home-header-height:74px;
    --maf-home-footer-height:48px;
  }

  html:has(.split),
  body:has(.split){
    min-height:100% !important;
    height:100% !important;
  }

  body:has(.split){
    margin:0 !important;
    padding-bottom:0 !important;
    overflow:hidden !important;
    background:var(--ink-900,#0d0f20) !important;
  }

  body:has(.split) .site-main{
    width:100% !important;
    height:calc(100dvh - var(--maf-home-header-height)) !important;
    min-height:calc(100dvh - var(--maf-home-header-height)) !important;
    margin:0 !important;
    padding:0 !important;
    overflow:hidden !important;
    background:var(--ink-900,#0d0f20) !important;
  }

  body:has(.split) .site-main .mafatec-fullwidth,
  body:has(.split) .site-main .entry-content,
  body:has(.split) .site-main .elementor,
  body:has(.split) .site-main .elementor-section-wrap{
    width:100% !important;
    height:100% !important;
    min-height:100% !important;
    margin:0 !important;
    padding:0 !important;
    overflow:hidden !important;
    background:transparent !important;
  }

  body:has(.split) .site-main .split,
  body:has(.split) .site-main .split.elementor-element,
  body:has(.split) .site-main .split.e-con,
  body:has(.split) .site-main .split.e-flexbox-base,
  body:has(.split) .site-main .split.e-con-boxed > .e-con-inner{
    width:100% !important;
    height:100% !important;
    min-height:100% !important;
    max-height:100% !important;
    margin:0 !important;
    padding:0 !important;
    display:flex !important;
    flex-direction:row !important;
    align-items:stretch !important;
    justify-content:stretch !important;
    gap:0 !important;
    overflow:hidden !important;
  }

  body:has(.split) .site-main .panel,
  body:has(.split) .site-main .panel.elementor-element,
  body:has(.split) .site-main .panel.e-con,
  body:has(.split) .site-main .panel.e-flexbox-base,
  body:has(.split) .site-main .panel.e-con-boxed > .e-con-inner{
    height:100% !important;
    min-height:100% !important;
    max-height:100% !important;
    margin:0 !important;
	padding-bottom: 40px !important;
  }

  body:has(.split) .mafatec-footer,
  body:has(.split) .sfoot.mafatec-footer{
    position:fixed !important;
    left:0 !important;
    right:0 !important;
    bottom:0 !important;
    height:var(--maf-home-footer-height) !important;
    min-height:var(--maf-home-footer-height) !important;
    margin:0 !important;
    z-index:9990 !important;
  }

  body:has(.split) .mafatec-footer .sfoot-in,
  body:has(.split) .sfoot.mafatec-footer .sfoot-in{
    height:var(--maf-home-footer-height) !important;
    min-height:var(--maf-home-footer-height) !important;
  }

  /* Sous l'admin bar WordPress, le header visible est décalé.
     La hauteur du contenu reste néanmoins calculée sur le viewport. */
  body.admin-bar:has(.split) .site-main{
    height:calc(100dvh - var(--maf-home-header-height)) !important;
    min-height:calc(100dvh - var(--maf-home-header-height)) !important;
  }

  @media(max-width:860px){

    html:has(.split),
    body:has(.split){
      height:auto !important;
      min-height:100% !important;
    }

    body:has(.split){
      padding-bottom:96px !important;
      overflow-y:auto !important;
      background:var(--paper,#faf8f2) !important;
    }

    body:has(.split) .site-main{
      height:auto !important;
      min-height:0 !important;
      overflow:visible !important;
      background:transparent !important;
    }

    body:has(.split) .site-main .mafatec-fullwidth,
    body:has(.split) .site-main .entry-content,
    body:has(.split) .site-main .elementor,
    body:has(.split) .site-main .elementor-section-wrap,
    body:has(.split) .site-main .split,
    body:has(.split) .site-main .split.elementor-element,
    body:has(.split) .site-main .split.e-con,
    body:has(.split) .site-main .split.e-flexbox-base,
    body:has(.split) .site-main .split.e-con-boxed > .e-con-inner,
    body:has(.split) .site-main .panel,
    body:has(.split) .site-main .panel.elementor-element,
    body:has(.split) .site-main .panel.e-con,
    body:has(.split) .site-main .panel.e-flexbox-base,
    body:has(.split) .site-main .panel.e-con-boxed > .e-con-inner{
      height:auto !important;
      min-height:0 !important;
      max-height:none !important;
      overflow:visible !important;
    }

    body:has(.split) .site-main .split,
    body:has(.split) .site-main .split.elementor-element,
    body:has(.split) .site-main .split.e-con,
    body:has(.split) .site-main .split.e-flexbox-base,
    body:has(.split) .site-main .split.e-con-boxed > .e-con-inner{
      display:block !important;
    }

    body:has(.split) .mafatec-footer,
    body:has(.split) .sfoot.mafatec-footer{
      height:auto !important;
      min-height:96px !important;
    }

    body:has(.split) .mafatec-footer .sfoot-in,
    body:has(.split) .sfoot.mafatec-footer .sfoot-in{
      height:auto !important;
      min-height:96px !important;
    }
  }
}

body .elementor .universe-pro.e-con-parent,
body .elementor .e-con.universe-pro.e-con-parent,
body .elementor .elementor-element.universe-pro.e-con-parent,
body .elementor .universe-pro[data-element_type="container"]{
  /* Variables internes Elementor */
  --padding-top:0px !important;
  --padding-right:0px !important;
  --padding-bottom:0px !important;
  --padding-left:0px !important;

  --margin-top:0px !important;
  --margin-right:0px !important;
  --margin-bottom:0px !important;
  --margin-left:0px !important;

  --row-gap:0px !important;
  --column-gap:0px !important;
  --gap:0px !important;

  /* Propriétés CSS classiques */
  width:100% !important;
  max-width:none !important;

  margin:0 !important;
  padding:0 !important;

  gap:0 !important;
  row-gap:0 !important;
  column-gap:0 !important;

  border:0 !important;
  border-radius:0 !important;

  background:transparent !important;
  box-shadow:none !important;

  overflow:visible !important;
}


/* Si Elementor génère un .e-con-inner dans le parent principal */
body .elementor .universe-pro.e-con-parent > .e-con-inner,
body .elementor .e-con.universe-pro.e-con-parent > .e-con-inner,
body .elementor .elementor-element.universe-pro.e-con-parent > .e-con-inner{
  width:100% !important;
  max-width:none !important;

  margin:0 !important;
  padding:0 !important;

  gap:0 !important;
  row-gap:0 !important;
  column-gap:0 !important;

  display:flex !important;
  flex-direction:column !important;
  align-items:stretch !important;
}


/* Toutes les grandes sections professionnelles remplissent le parent */
body .elementor .universe-pro.e-con-parent > .xhero,
body .elementor .universe-pro.e-con-parent > .certbar,
body .elementor .universe-pro.e-con-parent > .section,
body .elementor .universe-pro.e-con-parent > .band-paper2,
body .elementor .universe-pro.e-con-parent > .band-ink,
body .elementor .universe-pro.e-con-parent > .prospace,
body .elementor .universe-pro.e-con-parent > .simu,
body .elementor .universe-pro.e-con-parent > .xcta{
  width:100% !important;
  max-width:none !important;

  margin-top:0 !important;
  margin-right:0 !important;
  margin-bottom:0 !important;
  margin-left:0 !important;

  align-self:stretch !important;
}


/* Supprime spécifiquement l’espace entre le header et le hero */
body .elementor .universe-pro.e-con-parent > .xhero:first-child,
body .elementor .universe-pro.e-con-parent > .elementor-element.xhero:first-child{
  margin-top:0 !important;
}


/* Supprime les espaces générés entre les sections directes */
body .elementor .universe-pro.e-con-parent > .elementor-element{
  margin-block-start:0 !important;
  margin-block-end:0 !important;
}


/* Elementor peut ajouter un espace via les widgets du parent */
body .elementor .universe-pro.e-con-parent{
  --widgets-spacing:0px 0px !important;
}


/* Sécurité mobile et tablette */
@media(max-width:1024px){

  body .elementor .universe-pro.e-con-parent,
  body .elementor .e-con.universe-pro.e-con-parent,
  body .elementor .elementor-element.universe-pro.e-con-parent{
    --padding-top:0px !important;
    --padding-right:0px !important;
    --padding-bottom:0px !important;
    --padding-left:0px !important;

    margin:0 !important;
    padding:0 !important;
    gap:0 !important;
  }
}
