.elementor-267 .elementor-element.elementor-element-96cb1a1{--display:flex;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:center;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--overlay-opacity:0.5;border-style:solid;--border-style:solid;border-width:4px 0px 0px 0px;--border-top-width:4px;--border-right-width:0px;--border-bottom-width:0px;--border-left-width:0px;border-color:#FF5A5F;--border-color:#FF5A5F;--border-radius:0px 0px 0px 0px;}.elementor-267 .elementor-element.elementor-element-96cb1a1:not(.elementor-motion-effects-element-type-background), .elementor-267 .elementor-element.elementor-element-96cb1a1 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#0A4F76;}.elementor-267 .elementor-element.elementor-element-96cb1a1::before, .elementor-267 .elementor-element.elementor-element-96cb1a1 > .elementor-background-video-container::before, .elementor-267 .elementor-element.elementor-element-96cb1a1 > .e-con-inner > .elementor-background-video-container::before, .elementor-267 .elementor-element.elementor-element-96cb1a1 > .elementor-background-slideshow::before, .elementor-267 .elementor-element.elementor-element-96cb1a1 > .e-con-inner > .elementor-background-slideshow::before, .elementor-267 .elementor-element.elementor-element-96cb1a1 > .elementor-motion-effects-container > .elementor-motion-effects-layer::before{--background-overlay:'';}.elementor-theme-builder-content-area{height:400px;}.elementor-location-header:before, .elementor-location-footer:before{content:"";display:table;clear:both;}/* Start custom CSS for container, class: .elementor-element-96cb1a1 *//* =========================================================
   NG – Footer PROPRE (Elementor) — FOND FULL WIDTH
   Cible : conteneur Elementor qui contient le widget HTML
   Classe à mettre sur ce conteneur : ng-footer-wrap
   ========================================================= */

/* 1) Breakout 100vw SUR LE CONTENEUR ELEMENTOR */
.ng-footer-wrap{
  position: relative !important;
  width: 100vw !important;
  max-width: 100vw !important;
  left: 50% !important;
  right: 50% !important;
  margin-left: -50vw !important;
  margin-right: -50vw !important;

  background: linear-gradient(180deg, #0B5674, #083E55) !important;
  overflow-x: clip !important;
}

/* Texture douce (option) */
.ng-footer-wrap::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(1000px 320px at 18% 0%, rgba(255,255,255,.06), transparent 62%),
    radial-gradient(850px 300px at 82% 10%, rgba(255,255,255,.035), transparent 64%);
  pointer-events:none;
  z-index:0;
}

/* Le contenu du conteneur au-dessus du fond */
.ng-footer-wrap > *{
  position: relative;
  z-index: 1;
}

/* Supprime tous overlays Elementor qui peuvent créer un bloc */
.ng-footer-wrap .elementor-background-overlay,
.ng-footer-wrap .elementor-background-slideshow{
  display: none !important;
}

/* 2) Footer interne : transparent (le fond est sur ng-footer-wrap) */
.ng-footer{
  --ng-ink:#EAF2F7;
  --ng-muted:rgba(234,242,247,.78);
  --ng-line:rgba(234,242,247,.14);
  --ng-soft:rgba(255,255,255,.07);
  --ng-radius:18px;

  color: var(--ng-ink);
  background: transparent !important;
  padding: clamp(26px, 4vw, 54px) 0 0;
}

/* Anti styles globaux (email lettre par lettre) */
.ng-footer, .ng-footer a, .ng-footer span, .ng-footer p, .ng-footer li{
  word-break: normal !important;
  overflow-wrap: normal !important;
  hyphens: none !important;
}

.ng-footer, .ng-footer *{ box-sizing: border-box; }

/* 3) Layout */
.ng-footer__container{
  width: min(1180px, 92vw);
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1.25fr .85fr 1.1fr;
  gap: clamp(18px, 3vw, 44px);
  padding-bottom: clamp(18px, 3vw, 30px);
  border-bottom: 1px solid var(--ng-line);
  align-items: start;
}
.ng-footer__col{ min-width: 0; }

.ng-footer__logo{ display:inline-flex; text-decoration:none; margin-bottom:10px; }
.ng-footer__logo img{ width:92px; height:auto; display:block; filter: drop-shadow(0 10px 18px rgba(0,0,0,.20)); }

.ng-footer__brand{ margin:0; font-weight:900; letter-spacing:-0.02em; font-size:1.08rem; }
.ng-footer__subtitle{ margin:6px 0 0; font-weight:700; color: var(--ng-muted); }

.ng-footer__badge{
  margin:14px 0 0;
  padding:14px;
  background: var(--ng-soft);
  border: 1px solid var(--ng-line);
  border-radius: var(--ng-radius);
  color: var(--ng-muted);
  line-height: 1.6;
  max-width: 52ch;
}

.ng-footer__title{ margin:0 0 12px; font-weight:900; letter-spacing:-0.01em; font-size:1rem; }
.ng-footer__list{ margin:0; padding:0; list-style:none; display:grid; gap:9px; }

.ng-footer__item{
  display:grid;
  grid-template-columns: 18px 1fr;
  gap:10px;
  align-items:center;
  color: var(--ng-muted);
  line-height: 1.45;
}
.ng-footer__ico{ width:18px; height:18px; display:inline-flex; align-items:center; justify-content:center; opacity:.95; }

.ng-footer__link{
  color: var(--ng-ink);
  text-decoration:none;
  font-weight:750;
  opacity:.92;
  display:inline-flex;
  align-items:center;
  transition: transform .16s ease, opacity .16s ease, color .16s ease;
}
.ng-footer__link:hover{ opacity:1; color:#fff; transform: translateX(2px); }

.ng-footer__link[href^="tel:"]{ white-space: nowrap; }
.ng-footer__mail{ white-space: normal; overflow-wrap: anywhere; }

.ng-footer__cta{
  margin-top:14px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:12px 14px;
  border-radius:999px;
  background: rgba(255,255,255,.10);
  border: 1px solid rgba(255,255,255,.18);
  color:#fff;
  text-decoration:none;
  font-weight:900;
  letter-spacing:-.01em;
  transition: transform .16s ease, background .16s ease, border-color .16s ease;
}
.ng-footer__cta:hover{ transform: translateY(-1px); background: rgba(255,255,255,.14); border-color: rgba(255,255,255,.26); }

.ng-footer__social{ margin-top:12px; display:flex; gap:10px; }
.ng-footer__socialLink{
  width:40px; height:40px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.16);
  color:#fff;
  text-decoration:none;
  font-weight:900;
  transition: transform .16s ease, background .16s ease;
}
.ng-footer__socialLink:hover{ transform: translateY(-1px); background: rgba(255,255,255,.12); }

.ng-footer__bar{ padding: 12px 0; }
.ng-footer__barInner{
  width: min(1180px, 92vw);
  margin: 0 auto;
  display:flex;
  gap:12px;
  align-items:center;
  justify-content: space-between;
  flex-wrap: wrap;
}
.ng-footer__copy{ margin:0; color: rgba(234,242,247,.72); font-size:.95rem; }
.ng-footer__legal{ display:inline-flex; gap:10px; align-items:center; flex-wrap:wrap; }
.ng-footer__legalLink{ color: rgba(234,242,247,.82); text-decoration:none; font-weight:750; }
.ng-footer__legalLink:hover{ color:#fff; }
.ng-footer__sep{ opacity:.55; }

@media (max-width: 920px){
  .ng-footer__container{ grid-template-columns: 1fr; }
}
/* ==============================
   FIX double scroll (100vw footer)
   ============================== */

/* 1) Empêche le débordement horizontal global (cause #1 des doubles scrollbars) */
html, body{
  overflow-x: hidden !important;
}

/* 2) Sécurise le conteneur footer full width */
.ng-footer-wrap{
  overflow-x: clip !important; /* mieux que hidden si supporté */
}

/* Fallback si clip n'est pas pris en charge */
@supports not (overflow: clip){
  .ng-footer-wrap{ overflow-x: hidden !important; }
}

/* 3) Empêche des éléments internes (boutons/liens) de pousser la largeur */
.ng-footer-wrap *{
  max-width: 100%;
}

/* 4) Si Elementor/Theme ajoute des marges qui débordent */
.ng-footer-wrap .e-con,
.ng-footer-wrap .elementor-container,
.ng-footer-wrap .elementor-widget-wrap{
  margin-left: 0 !important;
  margin-right: 0 !important;
}
/* ==========================================
   FIX 2 barres de défilement (double scroll)
   Objectif : 1 seul scroller (html/body)
   ========================================== */

/* 1) Le scroll doit être sur html/body uniquement */
html{
  height: auto !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
}

body{
  height: auto !important;
  min-height: 100% !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
}

/* 2) Neutralise les wrappers qui prennent le scroll (cause fréquente) */
#page,
.site,
.site-content,
.content-area,
.elementor,
.elementor-page,
.elementor-site,
.elementor-location-footer,
.dialog-widget-content{
  height: auto !important;
  max-height: none !important;
  overflow: visible !important;
}

/* 3) Si ton footer full width utilise un breakout, on évite tout débordement */
.ng-footer-wrap{
  overflow: visible !important; /* pas de scroll interne */
}

/* 4) Sécurité : rien ne doit forcer un scroll interne sur un conteneur Elementor */
.e-con,
.e-con-inner,
.elementor-section,
.elementor-container,
.elementor-column,
.elementor-widget-wrap{
  overflow: visible !important;
}
/* ==========================================
   NG – Footer : optimisation MOBILE (compact)
   Scope : .ng-footer uniquement
   ========================================== */

@media (max-width: 920px){

  /* Air + rythme : plus compact */
  .ng-footer{
    padding: 28px 0 0 !important;
  }

  .ng-footer__container{
    width: min(680px, 92vw) !important;
    grid-template-columns: 1fr !important;
    gap: 18px !important;
    padding-bottom: 18px !important;
  }

  /* Marque : alignement horizontal logo + texte */
  .ng-footer__col--brand{
    display: grid;
    grid-template-columns: 86px 1fr;
    column-gap: 14px;
    align-items: center;
  }

  .ng-footer__logo{
    margin: 0 !important;
    grid-row: 1 / span 2;
  }

  .ng-footer__logo img{
    width: 78px !important;
  }

  .ng-footer__brand{
    margin: 0 !important;
    font-size: 1.05rem !important;
    line-height: 1.2 !important;
  }

  .ng-footer__subtitle{
    margin: 4px 0 0 !important;
    font-size: .95rem !important;
  }

  /* Badge : plus fin + full width */
  .ng-footer__badge{
    grid-column: 1 / -1;
    margin: 12px 0 0 !important;
    padding: 12px 12px !important;
    max-width: none !important;
    border-radius: 16px !important;
  }

  /* Navigation : en 2 colonnes (réduit la hauteur) */
  .ng-footer__col--nav .ng-footer__list{
    display: grid !important;
    grid-template-columns: 1fr 1fr;
    gap: 10px 14px !important;
  }

  .ng-footer__col--nav .ng-footer__link{
    transform: none !important; /* pas d'effet "déplacement" sur mobile */
  }

  /* Contact : CTA plein large + social aligné */
  .ng-footer__col--contact{
    margin-top: 2px;
  }

  .ng-footer__cta{
    width: 100% !important;
    justify-content: center !important;
    padding: 12px 14px !important;
  }

  .ng-footer__social{
    margin-top: 10px !important;
    justify-content: flex-start !important;
  }

  /* Sous-footer : empilé, lisible */
  .ng-footer__bar{
    padding: 12px 0 16px !important;
  }

  .ng-footer__barInner{
    width: min(680px, 92vw) !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 8px !important;
  }

  .ng-footer__legal{
    gap: 8px 10px !important;
  }

  .ng-footer__legalLink{
    font-size: .95rem !important;
  }
}

/* Très petit mobile : navigation en 1 colonne */
@media (max-width: 420px){
  .ng-footer__col--nav .ng-footer__list{
    grid-template-columns: 1fr !important;
  }
}/* End custom CSS */