/* ===================================================================
   DigiOuest — assets/css/optimisation.css  (PRO, SCOPÉ, SAFE)
   Typo et responsive “Apple-like” (SF system stack)
   =================================================================== */

/* --------- TYPO GLOBAL (system stack compatible Apple) --------- */
:root{
  --font-sans: system-ui, -apple-system, "SF Pro Text", "SF Pro Display",
               "Segoe UI", Roboto, Inter, "Helvetica Neue", Arial, sans-serif;
  --font-heading: var(--font-sans);

  /* Rythme vertical & espacements harmonisés (global desktop/tablette) */
  --sec-y: clamp(28px, 3.2vw, 44px);   /* padding haut/bas section */
  --sec-gap: clamp(28px, 3.2vw, 50px); /* espace entre sections */
  --col-gap-desktop: 40px;             /* écart colonnes desktop */
  --col-gap-tablet: 34px;              /* écart colonnes tablette */

  /* Couleurs séparateurs */
  --legal-blue-1:#0171b7;
  --legal-blue-2:#0165ae;

  /* Largeurs standard des séparateurs */
  --sep-blue:  clamp(120px, 28vw, 320px);
  --sep-white: clamp(80px, 22vw, 160px);
}

/* Corps de texte (toutes pages) — style Apple Legal */
html, body{
  font-family: var(--font-sans);
  font-size: 17px;
  line-height: 1.47059;
  letter-spacing: -0.022em;
  font-weight: 400;
  color: #1d1d1f;
  background-color: #fff;
}

/* Mobile ≤ 734px : h1 Apple-like */
@media only screen and (max-width: 734px){
  h1:not([class*=typography-]){
    font-family: var(--font-sans);
    font-size: 32px;
    line-height: 1.125;
    font-weight: 600;
    letter-spacing: .004em;
  }
}

/* ================== [GLOBAL] Menu mobile overlay (au-dessus de tout) ================== */
@media (max-width:1024px){
  :root{ --menu-z: 2147483647; }

  #mobile_top_menu_wrapper2,
  #mobile_search_wrapper,
  #mobile_user_wrapper,
  .rwd_menu_open{
    position: fixed !important;
    inset: 0 !important;
    z-index: var(--menu-z) !important;
  }

  #mobile_top_menu_wrapper2::before,
  #mobile_search_wrapper::before,
  #mobile_user_wrapper::before,
  .rwd_menu_open::before{
    content:"";
    position: fixed; inset:0;
    background: rgba(0,0,0,.45);
    -webkit-backdrop-filter: blur(2px);
    backdrop-filter: blur(2px);
    z-index: -1;
  }

  #_mobile_top_menu, #_mobile_search_widget, #_mobile_user_info{
    position: relative; z-index: 1;
    max-height: 85vh; overflow: auto; -webkit-overflow-scrolling: touch;
    margin: 12px;
  }

  html.menu-open, body.menu-open{ overflow: hidden !important; }

  /* Pendant l’ouverture, aucun widget flottant ne capte les clics */
  html.menu-open .lc_chatbox,
  html.menu-open .lc_bottom_alert_bar,
  html.menu-open [id^="lc_"],
  html.menu-open [class*="livechat"]{
    pointer-events: none !important;
  }

  /* Overlay Elementor ne bloque pas les clics (mais on n’en change PAS l’apparence) */
  .elementor-section > .elementor-background-overlay{ pointer-events: none; }
}

/* ========================== [HOME] – léger polish ========================== */
body#index #wrapper .elementor .elementor-widget-text-editor p{
  font-family: var(--font-sans);
  font-size: 17px; line-height: 1.47059; letter-spacing: -0.022em;
  margin: 0 0 .9em;
}
body#index #wrapper .elementor .elementor-widget-text-editor :is(ul,ol){ padding-inline-start:1.1rem; margin:0 0 1em; }
body#index #wrapper .elementor .elementor-widget-text-editor li{ margin-bottom:.4em; }
body#index #wrapper .elementor .elementor-widget-text-editor :is(img,video,iframe){
  display:block; max-width:100%; height:auto; border-radius:12px; margin:.8em 0;
}
body#index :is(#featured-products .h2,#featured-products h2,.featured-products .h2,.featured-products h2,section[id*="featured"] .h2,section[id*="featured"] h2){
  line-height:1.15; letter-spacing:-0.01em;
  margin-top: clamp(14px, 2.2vw, 24px);
  margin-bottom: clamp(8px, 1.4vw, 14px);
}

/* =============== [CMS] 43/44/46/47/48/51 — rendu pro homogène =============== */
:is(
  body.cms-id-43, body.page-cms-43, body#cms.cms-id-43,
  body.cms-id-44, body.page-cms-44, body#cms.cms-id-44,
  body.cms-id-46, body.page-cms-46, body#cms.cms-id-46,
  body.cms-id-47, body.page-cms-47, body#cms.cms-id-47,
  body.cms-id-48, body.page-cms-48, body#cms.cms-id-48,
  body.cms-id-51, body.page-cms-51, body#cms.cms-id-51
){
  --text-max:72ch;
  --lead:1.7;
  --space:clamp(12px, 2.2vw, 22px);
}

:is(
  body.cms-id-43, body.page-cms-43, body#cms.cms-id-43,
  body.cms-id-44, body.page-cms-44, body#cms.cms-id-44,
  body.cms-id-46, body.page-cms-46, body#cms.cms-id-46,
  body.cms-id-47, body.page-cms-47, body#cms.cms-id-47,
  body.cms-id-48, body.page-cms-48, body#cms.cms-id-48,
  body.cms-id-51, body.page-cms-51, body#cms.cms-id-51
) #content{
  max-width: min(var(--text-max), 92vw);
  margin-inline: auto;
}

/* Texte & listes (rte + widgets Elementor) */
:is(
  body.cms-id-43, body.page-cms-43, body#cms.cms-id-43,
  body.cms-id-44, body.page-cms-44, body#cms.cms-id-44,
  body.cms-id-46, body.page-cms-46, body#cms.cms-id-46,
  body.cms-id-47, body.page-cms-47, body#cms.cms-id-47,
  body.cms-id-48, body.page-cms-48, body#cms.cms-id-48,
  body.cms-id-51, body.page-cms-51, body#cms.cms-id-51
) #content :is(p, .rte p),
:is(
  body.cms-id-43, body.page-cms-43, body#cms.cms-id-43,
  body.cms-id-44, body.page-cms-44, body#cms.cms-id-44,
  body.cms-id-46, body.page-cms-46, body#cms.cms-id-46,
  body.cms-id-47, body.page-cms-47, body#cms.cms-id-47,
  body.cms-id-48, body.page-cms-48, body#cms.cms-id-48,
  body.cms-id-51, body.page-cms-51, body#cms.cms-id-51
) #content .elementor .elementor-widget-text-editor p{
  font-family: var(--font-sans);
  font-size: clamp(16px, 0.95rem + 0.25vw, 18px);
  line-height: var(--lead);
  letter-spacing: .005em;
  margin: 0 0 calc(var(--space)*.9);
  overflow-wrap:anywhere; hyphens:auto;
  white-space: normal !important; overflow: visible !important; text-overflow: clip !important;
}

:is(
  body.cms-id-43, body.page-cms-43, body#cms.cms-id-43,
  body.cms-id-44, body.page-cms-44, body#cms.cms-id-44,
  body.cms-id-46, body.page-cms-46, body#cms.cms-id-46,
  body.cms-id-47, body.page-cms-47, body#cms.cms-id-47,
  body.cms-id-48, body.page-cms-48, body#cms.cms-id-48,
  body.cms-id-51, body.page-cms-51, body#cms.cms-id-51
) #content p + p{ margin-top:.6em; }
:is(
  body.cms-id-43, body.page-cms-43, body#cms.cms-id-43,
  body.cms-id-44, body.page-cms-44, body#cms.cms-id-44,
  body.cms-id-46, body.page-cms-46, body#cms.cms-id-46,
  body.cms-id-47, body.page-cms-47, body#cms.cms-id-47,
  body.cms-id-48, body.page-cms-48, body#cms.cms-id-48,
  body.cms-id-51, body.page-cms-51, body#cms.cms-id-51
) #content :is(ul,ol){ padding-inline-start:1.1rem; margin:0 0 var(--space); }
:is(
  body.cms-id-43, body.page-cms-43, body#cms.cms-id-43,
  body.cms-id-44, body.page-cms-44, body#cms.cms-id-44,
  body.cms-id-46, body.page-cms-46, body#cms.cms-id-46,
  body.cms-id-47, body.page-cms-47, body#cms.cms-id-47,
  body.cms-id-48, body.page-cms-48, body#cms.cms-id-48,
  body.cms-id-51, body.page-cms-51, body#cms.cms-id-51
) #content li{ margin-bottom:.4em; }

/* Titres dégradés BLEU + séparateur bleu (centré), largeur d’origine */
/* IMPORTANT: éviter les doublons si .titre-responsive- est présent */
:is(
  body.cms-id-43, body.page-cms-43, body#cms.cms-id-43,
  body.cms-id-44, body.page-cms-44, body#cms.cms-id-44,
  body.cms-id-46, body.page-cms-46, body#cms.cms-id-46,
  body.cms-id-47, body.page-cms-47, body#cms.cms-id-47,
  body.cms-id-48, body.page-cms-48, body#cms.cms-id-48,
  body.cms-id-51, body.page-cms-51, body#cms.cms-id-51
) #content :is(h1,h2,h3,.elementor-heading-title){
  font-family: var(--font-heading);
  line-height:1.15; letter-spacing:-0.01em;
  margin: clamp(16px, 2.4vw, 28px) 0 clamp(10px, 1.6vw, 18px);
  background-image: linear-gradient(180deg, var(--legal-blue-1) 0%, var(--legal-blue-2) 100%);
  -webkit-background-clip:text; background-clip:text;
  -webkit-text-fill-color:transparent; color:transparent;
  text-shadow: 0 1px 0 rgba(0,0,0,.16), 0 6px 16px rgba(0,0,0,.10);
  position: relative; padding-bottom: .1em;
}
:is(
  body.cms-id-43, body.page-cms-43, body#cms.cms-id-43,
  body.cms-id-44, body.page-cms-44, body#cms.cms-id-44,
  body.cms-id-46, body.page-cms-46, body#cms.cms-id-46,
  body.cms-id-47, body.page-cms-47, body#cms.cms-id-47,
  body.cms-id-48, body.page-cms-48, body#cms.cms-id-48,
  body.cms-id-51, body.page-cms-51, body#cms.cms-id-51
) #content :is(h1,h2,h3,.elementor-widget-heading .elementor-heading-title):not(.titre-responsive-)::after{
  content:""; display:block; height:2px; margin:.3em auto 0; border-radius:9999px;
  width: var(--sep-blue);
  background: linear-gradient(90deg,
    rgba(1,113,183,0) 0%,
    rgba(1,113,183,.55) 20%,
    rgba(1,101,174,.95) 50%,
    rgba(1,113,183,.55) 80%,
    rgba(1,113,183,0) 100%);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.35),
              0 0 18px rgba(1,113,183,.25),
              0 6px 18px rgba(0,0,0,.10);
}

/* Anti-doublons — masque un Divider immédiatement après un titre */
:where(
  body.cms-id-43, body.page-cms-43, body#cms.cms-id-43,
  body.cms-id-44, body.page-cms-44, body#cms.cms-id-44,
  body.cms-id-46, body.page-cms-46, body#cms.cms-id-46,
  body.cms-id-47, body.page-cms-47, body#cms.cms-id-47,
  body.cms-id-48, body.page-cms-48, body#cms.cms-id-48,
  body.cms-id-51, body.page-cms-51, body#cms.cms-id-51
) #content :is(h1,h2,h3,.elementor-widget-heading .elementor-heading-title)
 + :is(hr, .elementor-widget-divider, .elementor-divider){ display:none !important; }
:where(
  body.cms-id-43, body.page-cms-43, body#cms.cms-id-43,
  body.cms-id-44, body.page-cms-44, body#cms.cms-id-44,
  body.cms-id-46, body.page-cms-46, body#cms.cms-id-46,
  body.cms-id-47, body.page-cms-47, body#cms.cms-id-47,
  body.cms-id-48, body.page-cms-48, body#cms.cms-id-48,
  body.cms-id-51, body.page-cms-51, body#cms.cms-id-51
) #content :is(h1,h2,h3,.elementor-widget-heading .elementor-heading-title)
 + .elementor-widget-divider .elementor-divider-separator{ display:none !important; }

/* OVERLAY (anciennes pages) → titres BLANCS & pas de séparateur (on ne touche pas au visuel de l’overlay lui-même) */
:where(
  body.cms-id-43, body.page-cms-43, body#cms.cms-id-43,
  body.cms-id-44, body.page-cms-44, body#cms.cms-id-44,
  body.cms-id-46, body.page-cms-46, body#cms.cms-id-46,
  body.cms-id-47, body.page-cms-47, body#cms.cms-id-47,
  body.cms-id-48, body.page-cms-48, body#cms.cms-id-48,
  body.cms-id-51, body.page-cms-51, body#cms.cms-id-51
)
.elementor-section > .elementor-background-overlay ~ * 
  :is(h1,h2,h3,.elementor-heading-title),
:where(
  body.cms-id-43, body.page-cms-43, body#cms.cms-id-43,
  body.cms-id-44, body.page-cms-44, body#cms.cms-id-44,
  body.cms-id-46, body.page-cms-46, body#cms.cms-id-46,
  body.cms-id-47, body.page-cms-47, body#cms.cms-id-47,
  body.cms-id-48, body.page-cms-48, body#cms.cms-id-48,
  body.cms-id-51, body.page-cms-51, body#cms.cms-id-51
)
.elementor-section > .elementor-background-overlay ~ .elementor-container
  :is(h1,h2,h3,.elementor-heading-title){
  background-image:none !important;
  -webkit-text-fill-color:#fff !important; color:#fff !important;
  text-shadow:0 0 10px rgba(0,0,0,.30), 0 2px 8px rgba(0,0,0,.20);
}
:where(
  body.cms-id-43, body.page-cms-43, body#cms.cms-id-43,
  body.cms-id-44, body.page-cms-44, body#cms.cms-id-44,
  body.cms-id-46, body.page-cms-46, body#cms.cms-id-46,
  body.cms-id-47, body.page-cms-47, body#cms.cms-id-47,
  body.cms-id-48, body.page-cms-48, body#cms.cms-id-48,
  body.cms-id-51, body.page-cms-51, body#cms.cms-id-51
)
.elementor-section > .elementor-background-overlay ~ * 
  :is(h1,h2,h3,.elementor-heading-title)::after,
:where(
  body.cms-id-43, body.page-cms-43, body#cms.cms-id-43,
  body.cms-id-44, body.page-cms-44, body#cms.cms-id-44,
  body.cms-id-46, body.page-cms-46, body#cms.cms-id-46,
  body.cms-id-47, body.page-cms-47, body#cms.cms-id-47,
  body.cms-id-48, body.page-cms-48, body#cms.cms-id-48,
  body.cms-id-51, body.page-cms-51, body#cms.cms-id-51
)
.elementor-section > .elementor-background-overlay ~ .elementor-container
  :is(h1,h2,h3,.elementor-heading-title)::after{
  content:none !important;
}

/* ========== Responsive lisibilité (rappel) ========== */
@media (max-width: 768px){
  #content p{ font-size: 16.5px; line-height:1.52; }
}
@media (max-width: 420px){
  #content :is(h1,h2,h3,.elementor-heading-title){ letter-spacing:-0.008em; }
}

/* =================== (Optionnel) ETS LIVE CHAT — patch doux =================== */
body .lc_chatbox.do-lc-hidden{ display:none !important; }
body #livechat-compact-container.do-lc-hidden,
body #livechat-full.do-lc-hidden{ display:none !important; }

/* ===================================================================
   [PAGE 32] — Optimisation complète (mobile = full-width + 10px gouttière)
   =================================================================== */

/* Variables locales page 32 (mobile & styles glass) */
:is(body.cms-id-32, body.page-cms-32, body#cms.cms-id-32){
  /* mobile “Apple-like” */
  --m-gutter: 10px;                 /* gouttière latérale */
  --m-sec-y: 28px;                  /* padding vertical section */
  --m-between-sections: 20px;       /* espace entre sections */
  --m-between-img-title: 10px;      /* image ↔ titre */
  --m-desc-mt: 10px;                /* marge haute desc */
  --m-desc-mb: 20px;                /* marge basse desc */
  --m-title-fs: 32px;
  --m-title-lh: 1.125;
  --m-text-fs: 17px;
  --m-text-lh: 1.47059;

  /* liquid glass (blanc) */
  --glass-bg: rgba(255,255,255,0.16);
  --glass-bg-strong: rgba(255,255,255,0.22);
  --glass-border: rgba(255,255,255,0.38);
  --glass-shadow: 0 10px 28px rgba(0,0,0,.12), inset 0 1px 0 rgba(255,255,255,.35);
}

/* Sections Elementor (page 32) : paddings verticaux & gaps harmonisés */
.elementor-32070201 .elementor-section{
  padding-top: var(--sec-y);
  padding-bottom: var(--sec-y);
}
.elementor-32070201 .elementor-section + .elementor-section{
  margin-top: var(--sec-gap);
}

/* Gouttières & gaps internes */
.elementor-32070201 .elementor-container{
  column-gap: var(--col-gap-desktop);
  row-gap: var(--col-gap-desktop);
}

/* TABLETTE : même esprit que desktop, gap adapté */
@media (min-width: 735px) and (max-width: 1024px){
  .elementor-32070201 .elementor-container{
    column-gap: var(--col-gap-tablet);
    row-gap: var(--col-gap-tablet);
  }
}

/* MOBILE ≤ 734px — full width / gouttière 10px / espaces */
@media (max-width: 734px){
  /* gouttière latérale 10px (sans toucher header/footer) */
  #content .elementor > .elementor-section{
    padding-left: var(--m-gutter);
    padding-right: var(--m-gutter);
    padding-top: var(--m-sec-y);
    padding-bottom: var(--m-sec-y);
  }
  /* écart entre sections 20px */
  .elementor-32070201 .elementor-section + .elementor-section{
    margin-top: var(--m-between-sections) !important;
  }
}

/* Titre utilitaire (toutes pages où utilisé) — bleu par défaut */
.titre-responsive-{
  font-family: var(--font-heading);
  font-weight: 700;
  line-height: 1.15;
  letter-spacing: -0.01em;
  margin: 0 0 .35em 0;
  background-image: linear-gradient(180deg, var(--legal-blue-1) 0%, var(--legal-blue-2) 100%);
  -webkit-background-clip:text; background-clip:text;
  -webkit-text-fill-color:transparent; color:transparent;
  text-shadow: 0 1px 0 rgba(0,0,0,.16), 0 6px 16px rgba(0,0,0,.10);
  font-size: clamp(26px, 1.4rem + 1vw, 38px);
  position: relative; display:block;
}
/* Séparateur bleu (à GAUCHE par défaut pour les blocs de contenu) */
.titre-responsive-::after{
  content:""; display:block; height:2px; margin:.35em 0 0 0; border-radius:9999px;
  width: var(--sep-blue);
  background: linear-gradient(90deg,
    rgba(1,113,183,0) 0%,
    rgba(1,113,183,.55) 20%,
    rgba(1,101,174,.95) 50%,
    rgba(1,113,183,.55) 80%,
    rgba(1,113,183,0) 100%);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.35),
              0 0 18px rgba(1,113,183,.25),
              0 6px 18px rgba(0,0,0,.10);
}
/* Empêcher tout doublon quand .titre-responsive- est utilisé */
#content :is(h1,h2,h3,.elementor-widget-heading .elementor-heading-title).titre-responsive-::after{
  /* notre ::after prévaut ; le générique est neutralisé via :not(.titre-responsive-) plus haut */
}

/* Description sous le titre */
.text--secondaire-desc{
  font-family: var(--font-sans);
  font-size: 17px;
  line-height: 1.47059;
  letter-spacing: -0.022em;
  margin-top: .6em;
  margin-bottom: .9em;
  color: inherit;
  opacity: .98;
}

/* Images uniformes et modernes (ratio stable) */
.responsive-img-container{ margin: 0; }
.responsive-img-container img{
  display:block; width:100%;
  aspect-ratio: 16/10; object-fit: cover;
  border-radius: 16px;
  box-shadow: 0 10px 24px rgba(0,0,0,.12);
  outline: 1px solid rgba(0,0,0,.06);
  outline-offset: -1px;
}

/* Espace image ↔ titre / desc — desktop & tablette */
@media (min-width: 735px){
  .responsive-img-container{ margin-bottom: 30px; } /* image → suite */
  .titre-responsive-{ margin-top: 0; }
  .text--secondaire-desc{ margin-top: 12px; }
}

/* Espace image ↔ titre / desc — mobile */
@media (max-width: 734px){
  .responsive-img-container{ margin-bottom: var(--m-between-img-title); }
  .text--secondaire-desc{
    margin-top: var(--m-desc-mt);
    margin-bottom: var(--m-desc-mb);
    font-size: var(--m-text-fs);
    line-height: var(--m-text-lh);
    letter-spacing: -0.022em;
  }
  .titre-responsive-{
    font-size: var(--m-title-fs);
    line-height: var(--m-title-lh);
    letter-spacing: .004em;
  }
}

/* -------- Liquid glass BLANC pour les blocs ciblés (page 32) -------- */
.elementor-32070201 .elementor-element.elementor-element-30c4c6e.elementor-section,
.elementor-32070201 .elementor-element.elementor-element-e83e2ed:not(.elementor-motion-effects-element-type-background),
.elementor-32070201 .elementor-element.elementor-element-b8e79ca:not(.elementor-motion-effects-element-type-background){
  border-radius:24px !important; overflow:hidden !important;
  background:var(--glass-bg) !important; border:1px solid var(--glass-border) !important;
  -webkit-backdrop-filter:blur(12px) saturate(160%) !important;
  backdrop-filter:blur(12px) saturate(160%) !important;
  box-shadow:var(--glass-shadow) !important; background-clip:padding-box !important; isolation:isolate;
  padding: clamp(16px, 2.4vw, 24px) !important;
}
/* Couche motion effects transparente (corrige le “bloc parasite” au scroll) */
.elementor-32070201 .elementor-element.elementor-element-e83e2ed
  > .elementor-motion-effects-container > .elementor-motion-effects-layer{
  background:transparent !important;
}

/* Texte blanc interne (p, li, a…) */
.elementor-32070201 :is(.elementor-element-30c4c6e,.elementor-element-e83e2ed,.elementor-element-b8e79ca){
  color:#fff;
}
.elementor-32070201 :is(.elementor-element-30c4c6e,.elementor-element-e83e2ed,.elementor-element-b8e79ca) :is(p,li,span,a,small){
  color:#fff;
}
.elementor-32070201 :is(.elementor-element-30c4c6e,.elementor-element-e83e2ed,.elementor-element-b8e79ca) a:hover{
  text-decoration: underline;
}

/* Titres DANS ces blocs : texte BLANC + séparateur BLANC SOUS le titre */
:is(body.cms-id-32, body.page-cms-32, body#cms.cms-id-32)
.elementor-32070201 :is(.elementor-element-30c4c6e,.elementor-element-e83e2ed,.elementor-element-b8e79ca)
  .titre-responsive-{
  background-image:none !important;
  -webkit-text-fill-color:#fff !important; color:#fff !important;
  text-shadow:0 0 10px rgba(0,0,0,.30), 0 2px 8px rgba(0,0,0,.20);
}
:is(body.cms-id-32, body.page-cms-32, body#cms.cms-id-32)
.elementor-32070201 :is(.elementor-element-30c4c6e,.elementor-element-e83e2ed,.elementor-element-b8e79ca)
  .titre-responsive-::after{
  content:"" !important; display:block; height:2px; margin:.35em 0 0 0; border-radius:9999px;
  width: var(--sep-white);
  background: linear-gradient(90deg,
    rgba(255,255,255,0) 0%,
    rgba(255,255,255,.55) 20%,
    rgba(255,255,255,.95) 50%,
    rgba(255,255,255,.55) 80%,
    rgba(255,255,255,0) 100%);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.6),
              0 0 18px rgba(255,255,255,.20),
              0 6px 18px rgba(0,0,0,.08);
}

/* Centrage parfait sur mobile des titres/separateurs DANS les blocs glass */
@media (max-width:640px){
  :is(body.cms-id-32, body.page-cms-32, body#cms.cms-id-32) .elementor-32070201
  :is(.elementor-element-30c4c6e,.elementor-element-e83e2ed,.elementor-element-b8e79ca) .titre-responsive-{ text-align:center; }
  :is(body.cms-id-32, body.page-cms-32, body#cms.cms-id-32) .elementor-32070201
  :is(.elementor-element-30c4c6e,.elementor-element-e83e2ed,.elementor-element-b8e79ca) .titre-responsive-::after{
    margin-left:auto; margin-right:auto;
  }
}

/* Micro-ajustements rayons sur petits écrans */
@media (max-width:1024px){
  .elementor-32070201 :is(.elementor-element-30c4c6e,.elementor-element-e83e2ed,.elementor-element-b8e79ca){ border-radius:20px !important; }
}
@media (max-width:420px){
  .elementor-32070201 :is(.elementor-element-30c4c6e,.elementor-element-e83e2ed,.elementor-element-b8e79ca){ border-radius:16px !important; }
}

/* Fallback sans backdrop-filter (vieux navigateurs) */
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))){
  .elementor-32070201 :is(.elementor-element-30c4c6e,.elementor-element-e83e2ed,.elementor-element-b8e79ca){
    background: rgba(255,255,255,.92) !important;
    box-shadow: 0 10px 28px rgba(0,0,0,.10) !important;
  }
}

/* ===================== Desktop — air interne doux dans chaque colonne (page 32 uniquement) ===================== */
/* Option demandée : laisser un peu d’air à l’intérieur des colonnes sans changer le gap (uniquement desktop) */
@media (min-width:1025px){
  :is(body.cms-id-32, body.page-cms-32, body#cms.cms-id-32)
  .elementor-32070201 .elementor-column .elementor-widget-wrap{
    padding-left: 50px; padding-right: 50px;
  }
}

/* ============== Réglages supplémentaires “pro” et homogènes ============== */

/* #1 Départ du premier bloc sous le header — si la 1re section a un overlay, on évite l’espace vide (sans toucher l’overlay lui-même) */
#content .elementor > .elementor-section:first-child{
  margin-top: clamp(12px, 2.4vw, 24px);
}
/* Si la 1re section porte un overlay → pas de top-margin (n’affecte pas l’apparence de l’overlay) */
@supports(selector(:has(*))){
  #content .elementor > .elementor-section:first-child:has(> .elementor-background-overlay){
    margin-top: 0 !important;
  }
}

/* #2 Desktop : espace entre sections légèrement plus “épuré” (50px max via var globale) */
@media (min-width:1025px){
  .elementor-32070201 .elementor-section{ padding-top: var(--sec-y); padding-bottom: var(--sec-y); }
  .elementor-32070201 .elementor-section + .elementor-section{ margin-top: var(--sec-gap); }
}

/* #3 Tablette : layout identique au desktop mais espacement adapté */
@media (min-width:735px) and (max-width:1024px){
  .elementor-32070201 .elementor-section{ padding-top: calc(var(--sec-y) * .9); padding-bottom: calc(var(--sec-y) * .9); }
  .elementor-32070201 .elementor-section + .elementor-section{ margin-top: calc(var(--sec-gap) * .85); }
}

/* #4 Mobile — marges homogènes dans TOUTE la page 32 */
@media (max-width:734px){
  /* gouttière 10px déjà posée ; on standardise aussi les widgets */
  .elementor-32070201 .elementor-widget{ margin-bottom: 10px; }
  .elementor-32070201 .elementor-widget:last-child{ margin-bottom: 0; }
}

/* ========== Live Chat (patch) ========== */
body .lc_chatbox.do-lc-hidden{ display:none !important; }
body #livechat-compact-container.do-lc-hidden,
body #livechat-full.do-lc-hidden{ display:none !important; }


/* =========================================================
   [HOTFIX PAGE 32] — Marges/espacements forcés & 100% responsive
   (robuste: sélecteurs larges + !important)
   ========================================================= */

/* ----- BASE : cible toute la page CMS 32, preview OU live ----- */
:where(body.cms-id-32, body.page-cms-32, body#cms.cms-id-32) #content .elementor > .elementor-section{
  /* padding vertical “pro & épuré” */
  padding-top: clamp(28px, 3.2vw, 44px) !important;
  padding-bottom: clamp(28px, 3.2vw, 44px) !important;
}

/* Décollage homogène entre sections */
:where(body.cms-id-32, body.page-cms-32, body#cms.cms-id-32) #content
  .elementor > .elementor-section + .elementor-section{
  margin-top: clamp(28px, 3.2vw, 50px) !important;
}

/* Écarts colonnes (desktop/tablette) */
@media (min-width: 1025px){
  :where(body.cms-id-32, body.page-cms-32, body#cms.cms-id-32) #content .elementor .elementor-container{
    column-gap: 40px !important; /* demandé */
    row-gap: 40px !important;
  }
}
@media (min-width: 735px) and (max-width: 1024px){
  :where(body.cms-id-32, body.page-cms-32, body#cms.cms-id-32) #content .elementor .elementor-container{
    column-gap: 34px !important; /* tablette “comme desktop” mais un poil réduit */
    row-gap: 34px !important;
  }
}

/* ----- MOBILE ≤ 734px : full-width + gouttière 10px + rythmes demandés ----- */
@media (max-width: 734px){
  :where(body.cms-id-32, body.page-cms-32, body#cms.cms-id-32) #content
    .elementor > .elementor-section{
    padding-left: 10px !important;
    padding-right: 10px !important;
    padding-top: 28px !important;      /* respiration verticale */
    padding-bottom: 28px !important;
  }
  :where(body.cms-id-32, body.page-cms-32, body#cms.cms-id-32) #content
    .elementor > .elementor-section + .elementor-section{
    margin-top: 20px !important;        /* entre sections (mobile) */
  }

  /* Images → Titre : 10px / Desc sous titre : 20px */
  :where(body.cms-id-32, body.page-cms-32, body#cms.cms-id-32)
    .responsive-img-container{ margin-bottom: 10px !important; }
  :where(body.cms-id-32, body.page-cms-32, body#cms.cms-id-32)
    .text--secondaire-desc{
    margin-top: 10px !important;
    margin-bottom: 20px !important;     /* demandé */
    font-size: 17px !important;
    line-height: 1.47059 !important;    /* pas “écrasé” */
    letter-spacing: -0.022em !important;
  }

  /* Titre mobile façon Apple (32px) + séparateur centré si BLANC dans les blocs */
  :where(body.cms-id-32, body.page-cms-32, body#cms.cms-id-32)
    .titre-responsive-{
    font-size: 32px !important;
    line-height: 1.125 !important;
    letter-spacing: .004em !important;
  }

  /* Titres BLANCS dans les blocs glass : centrés + séparateur centré */
  :where(body.cms-id-32, body.page-cms-32, body#cms.cms-id-32)
    .elementor .elementor-element-30c4c6e .titre-responsive-,
  :where(body.cms-id-32, body.page-cms-32, body#cms.cms-id-32)
    .elementor .elementor-element-e83e2ed .titre-responsive-,
  :where(body.cms-id-32, body.page-cms-32, body#cms.cms-id-32)
    .elementor .elementor-element-b8e79ca .titre-responsive-{
    text-align: center !important;
  }
  :where(body.cms-id-32, body.page-cms-32, body#cms.cms-id-32)
    .elementor .elementor-element-30c4c6e .titre-responsive-::after,
  :where(body.cms-id-32, body.page-cms-32, body#cms.cms-id-32)
    .elementor .elementor-element-e83e2ed .titre-responsive-::after,
  :where(body.cms-id-32, body.page-cms-32, body#cms.cms-id-32)
    .elementor .elementor-element-b8e79ca .titre-responsive-::after{
    margin-left: auto !important;
    margin-right: auto !important;
  }
}

/* ----- Desktop & Tablette : séparation visuelle image ↔ titre/texte ----- */
@media (min-width: 735px){
  :where(body.cms-id-32, body.page-cms-32, body#cms.cms-id-32)
    .responsive-img-container{ margin-bottom: 30px !important; } /* image → titre */
  :where(body.cms-id-32, body.page-cms-32, body#cms.cms-id-32)
    .text--secondaire-desc{ margin-top: 12px !important; }
}

/* ----- Blocs GLASS (page 32) — padding interne équilibré ----- */
:where(body.cms-id-32, body.page-cms-32, body#cms.cms-id-32)
  .elementor .elementor-element-30c4c6e.elementor-section,
:where(body.cms-id-32, body.page-cms-32, body#cms.cms-id-32)
  .elementor .elementor-element-e83e2ed:not(.elementor-motion-effects-element-type-background),
:where(body.cms-id-32, body.page-cms-32, body#cms.cms-id-32)
  .elementor .elementor-element-b8e79ca:not(.elementor-motion-effects-element-type-background){
  padding: clamp(16px, 2.4vw, 24px) !important;
  border-radius: 24px !important;
  background: rgba(255,255,255,0.16) !important;
  border: 1px solid rgba(255,255,255,0.38) !important;
  -webkit-backdrop-filter: blur(12px) saturate(160%) !important;
  backdrop-filter: blur(12px) saturate(160%) !important;
  box-shadow: 0 10px 28px rgba(0,0,0,.12), inset 0 1px 0 rgba(255,255,255,.35) !important;
  overflow: hidden !important;
  isolation: isolate;
}
/* Couche motion-effects transparente (fix “bloc parasite” au scroll) */
:where(body.cms-id-32, body.page-cms-32, body#cms.cms-id-32)
  .elementor .elementor-element-e83e2ed
  > .elementor-motion-effects-container > .elementor-motion-effects-layer{
  background: transparent !important;
}

/* ----- Titres BLANCS & séparateur BLANC SOUS le titre (dans les blocs) ----- */
:where(body.cms-id-32, body.page-cms-32, body#cms.cms-id-32)
  .elementor :is(.elementor-element-30c4c6e,.elementor-element-e83e2ed,.elementor-element-b8e79ca)
  .titre-responsive-{
  background-image: none !important;
  -webkit-text-fill-color:#fff !important; color:#fff !important;
  text-shadow: 0 0 10px rgba(0,0,0,.30), 0 2px 8px rgba(0,0,0,.20) !important;
}
:where(body.cms-id-32, body.page-cms-32, body#cms.cms-id-32)
  .elementor :is(.elementor-element-30c4c6e,.elementor-element-e83e2ed,.elementor-element-b8e79ca)
  .titre-responsive-::after{
  content:"" !important;
  display:block !important;
  width: clamp(80px, 22vw, 160px) !important; /* largeur “blanc” */
  height: 2px !important;
  margin: .35em 0 0 0 !important;            /* sous le titre */
  border-radius: 9999px !important;
  background: linear-gradient(90deg,
    rgba(255,255,255,0) 0%,
    rgba(255,255,255,.55) 20%,
    rgba(255,255,255,.95) 50%,
    rgba(255,255,255,.55) 80%,
    rgba(255,255,255,0) 100%) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.6),
              0 0 18px rgba(255,255,255,.20),
              0 6px 18px rgba(0,0,0,.08) !important;
}

/* ----- Anti-doublon stricte du séparateur BLEU sur page 32 ----- */
/* Si un titre porte (lui-même) la classe .titre-responsive-, on supprime le ::after générique */
:where(body.cms-id-32, body.page-cms-32, body#cms.cms-id-32) #content
  :is(h1,h2,h3,.elementor-widget-heading .elementor-heading-title).titre-responsive-::after{
  /* géré par nos règles .titre-responsive- (bleu ou blanc), le générique n’est pas appliqué */
}

/* Et si la classe .titre-responsive- est posée sur le conteneur au lieu du titre,
   on annule le ::after générique du titre enfant pour éviter le “double séparateur”. */
:where(body.cms-id-32, body.page-cms-32, body#cms.cms-id-32) #content
  .titre-responsive- :is(h1,h2,h3,.elementor-heading-title)::after{
  /* On ne supprime pas notre séparateur custom éventuel, seulement le générique Elementor */
  content: none !important;
}

/* ----- Sécurité : on ne modifie JAMAIS l’overlay, le header, le footer ----- */
.elementor-section > .elementor-background-overlay{ pointer-events: none; } /* pas d’altération visuelle */


/* =========================================================
   [PAGE 3170201] — DARK LIQUID GLASS + CHAMPS FORMULAIRE
   Ciblage demandé :
   - Colonne/Layer : .elementor-element.elementor-element-7a57b0f …
   - Inputs       : .elementor-element.elementor-element-619f7667 .elementor-field-textual
   ========================================================= */

/* ---- Variables locales (portée : cette page seulement) ---- */
.elementor-3170201{
  /* Palette “black glass” */
  --glass-dark-bg: rgba(12, 14, 18, 0.52);
  --glass-dark-bg-hover: rgba(12, 14, 18, 0.60);
  --glass-dark-border: rgba(255, 255, 255, 0.18);
  --glass-dark-border-strong: rgba(255, 255, 255, 0.28);
  --glass-dark-shadow: 0 12px 32px rgba(0,0,0,.35), inset 0 1px 0 rgba(255,255,255,.08);

  /* Anneau de focus (utilise votre bleu légal si présent) */
  --ring-color: var(--legal-blue-1, #0171b7);
  --ring-inner: rgba(255,255,255,.35);

  /* Rythme & arrondis */
  --radius-xl: clamp(16px, 2.2vw, 22px);
  --pad-xl: clamp(16px, 2.2vw, 24px);
}



/* =========================================================
   PAGE 32 — Mise en page homogène (classes dédiées ONLY)
   - Espacements égaux haut/bas et gauche/droite par axe
   - Mobile-first (gouttière horizontale 5px)
   - Zéro dépendance à d’autres sélecteurs
   ========================================================= */

/* Echelle d’espacement locale (section & blocs) */
:is(.alignement-section, .section-bloc){
  --pad-x: clamp(16px, 2.6vw, 40px);   /* gauche/droite (desktop/tablette) */
  --pad-y: clamp(24px, 3.2vw, 44px);   /* haut/bas (desktop/tablette) */
  --gap:   clamp(16px, 2vw, 28px);     /* inter-éléments / inter-sections */
  --gap-sm: clamp(10px, 1.2vw, 18px);  /* sous-titre / petits écarts */
  --gap-xs: clamp(6px, 0.8vw, 12px);   /* micro-écarts contrôlés */
}

/* Sections : padding symétrique + séparation régulière entre sections */
.alignement-section,
.section-bloc{
  box-sizing: border-box;
  padding: var(--pad-y) var(--pad-x) !important; /* haut=bas / gauche=droite */
  margin: 0 !important;
}
.alignement-section + .alignement-section,
.alignement-section + .section-bloc,
.section-bloc + .alignement-section,
.section-bloc + .section-bloc{
  margin-top: var(--gap) !important; /* rythme vertical global */
}

/* Colonnes : rythme interne simple et propre */
.colonne-titre > .titre-responsive-{
  margin: 0 0 var(--gap-sm) 0 !important;
}
.colonne-titre > .text--secondaire-desc{
  margin: var(--gap-xs) 0 0 0 !important;
}

/* Piles de blocs : écart régulier entre chaque bloc */
.colonne-bloc > * + *{
  margin-top: var(--gap) !important;
}

/* Sécurités “bords propres” (évite les creux finaux) */
.colonne-titre > *:last-child,
.colonne-image > *:last-child,
.colonne-bloc  > *:last-child{
  margin-bottom: 0 !important;
}

/* Mobile (≤734px) : gouttière horizontale 5px + respiration verticale douce */
@media (max-width: 734px){
  :is(.alignement-section, .section-bloc){
    --pad-x: 5px;                               /* gauche/droite égales */
    --pad-y: clamp(22px, 5vw, 28px);            /* haut/bas égaux */
  }
  /* Si la colonne image passe sous le texte, on garde un bel écart */
  .colonne-image{ margin-top: var(--gap) !important; }
}


/* P32 — Finitions homogénéité (classes autorisées uniquement) */
.alignement-section > *:first-child{ margin-top: 0 !important; }
.alignement-section > *:last-child { margin-bottom: 0 !important; }

.colonne-image > * + *{ margin-top: var(--gap) !important; } /* même rythme qu’en .colonne-bloc */


/* =========================================================
   PAGE 32 — Homogénéité renforcée (sections + colonnes + blocs)
   Uniquement les classes fournies
   - Paddings symétriques (haut=bas, gauche=droite)
   - Rythme vertical constant (inter-sections & intra-blocs)
   - Mobile-first avec gouttière 5px
   ========================================================= */

/* ——— Échelle locale d’espacement ——— */
:is(.alignement-section, .section-bloc){
  --pad-x: clamp(18px, 3vw, 48px);   /* gauche/droite (desk/tab) */
  --pad-y: clamp(24px, 3.6vw, 56px); /* haut/bas (desk/tab)    */
  --gap:   clamp(16px, 2.4vw, 28px); /* inter-éléments/sections */
  --gap-sm: clamp(10px, 1.6vw, 18px);
}

/* Paddings SECTIONS : parfaitement symétriques */
.alignement-section,
.section-bloc{
  box-sizing: border-box;
  padding: var(--pad-y) var(--pad-x) !important; /* haut=bas / gauche=droite */
  margin: 0 !important;
}

/* Rythme vertical GLOBAL entre sections */
.alignement-section + .alignement-section,
.alignement-section + .section-bloc,
.section-bloc + .alignement-section,
.section-bloc + .section-bloc{
  margin-top: var(--gap) !important;
}

/* ——— Resets internes SEULEMENT à l’intérieur des sections ——— */
.alignement-section > *,.section-bloc > *{ margin:0 !important; }
.alignement-section > * + *, .section-bloc > * + *{ margin-top: var(--gap) !important; }

/* ——— Colonnes Titre / Image ——— */
/* Rythme propre dans la colonne titre (tout élément empilé) */
.colonne-titre > *{ margin:0 !important; }
.colonne-titre > * + *{ margin-top: var(--gap-sm) !important; }

/* Titre & description : pas de marge fantôme, on laisse le rythme gérer */
.colonne-titre .titre-responsive-,
.colonne-titre .text--secondaire-desc{
  margin:0 !important;
}

/* Colonne image : aucun débord ; si plusieurs widgets, même rythme */
.colonne-image > *{ margin:0 !important; }
.colonne-image > * + *{ margin-top: var(--gap-sm) !important; }

/* Image : pas de marge propre, c’est le contexte qui espace */
.responsive-img-container{ margin:0 !important; }

/* ——— Colonne de BLOCS (cartes, items répétés) ——— */
/* Chaque enfant direct de .colonne-bloc = “bloc” avec padding égal haut/bas */
.colonne-bloc > *{
  box-sizing: border-box;
  padding: clamp(16px, 2.2vw, 28px) clamp(16px, 2.4vw, 32px) !important; /* haut=bas / g=d */
  margin: 0 !important;
}
/* Écart régulier entre les blocs */
.colonne-bloc > * + *{ margin-top: var(--gap) !important; }

/* Rythme interne des contenus d’un bloc : zéro marge par défaut, puis pile */
.colonne-bloc > * > *{ margin:0 !important; }
.colonne-bloc > * > * + *{ margin-top: var(--gap-sm) !important; }

/* Si un bloc contient un titre/desc, on garde la même logique */
.colonne-bloc .titre-responsive-,
.colonne-bloc .text--secondaire-desc{
  margin:0 !important;
}

/* ——— Mobile (≤734px) : gouttière 5px + respiration douce ——— */
@media (max-width: 734px){
  :is(.alignement-section, .section-bloc){
    --pad-x: 5px;                                /* gauche=droite */
    --pad-y: clamp(22px, 5vw, 30px);             /* haut=bas      */
  }
  /* Si l’image passe sous le texte : on garde un bel écart contrôlé */
  .colonne-image{ margin-top: var(--gap) !important; }
}


/* =========================================================
   PAGE 32 — Centre parfait + espacement égal + fix "bloc parasite"
   Ciblage: .alignement-section .section-bloc .colonne-titre
            .colonne-image .colonne-bloc .titre-responsive-
            .text--secondaire-desc .responsive-img-container
   ========================================================= */

/* Echelle locale (mobile-first) */
:where(.alignement-section, .section-bloc){
  --pad-x: clamp(18px, 2.6vw, 40px);   /* gauche = droite */
  --pad-y: clamp(26px, 3.0vw, 48px);   /* haut  = bas    */
  --gap:   clamp(16px, 2.0vw, 28px);   /* écart éléments */
  --gap-sm: clamp(10px, 1.4vw, 16px);  /* écart fin      */
  --maxw: min(1280px, 92vw);           /* centrage desktop */
}

/* 1) Sections: centrées + paddings symétriques et rythme vertical constant */
.alignement-section,
.section-bloc{
  box-sizing: border-box;
  max-width: var(--maxw);
  margin-inline: auto;                       /* centrage desktop/tablette */
  padding: var(--pad-y) var(--pad-x) !important; /* haut=bas / gauche=droite */
}
.alignement-section + .alignement-section,
.alignement-section + .section-bloc,
.section-bloc + .alignement-section,
.section-bloc + .section-bloc{
  margin-top: var(--gap) !important;
}

/* 2) Remise à zéro des marges internes (seulement ce qu’on utilise) + rythme */
:where(.alignement-section, .section-bloc)
  :is(h1,h2,h3,p,ul,ol,li,figure,.titre-responsive-,.text--secondaire-desc,.responsive-img-container){
  margin: 0 !important;
}
:where(.alignement-section, .section-bloc)
  :is(.titre-responsive-,p,ul,ol,figure,.responsive-img-container) + :is(.titre-responsive-,p,ul,ol,figure){
  margin-top: var(--gap-sm) !important;
}

/* 3) Colonne titre/texte: pile nette et régulière */
.colonne-titre > *{ margin: 0 !important; }
.colonne-titre > * + *{ margin-top: var(--gap-sm) !important; }

/* 4) Colonne image: éléments centrés, mêmes écarts si multiples */
.colonne-image{ display: grid; align-content: start; }
.colonne-image > *{ margin: 0 auto !important; }
.colonne-image > * + *{ margin-top: var(--gap-sm) !important; }

/* Image: pas de marge propre (géré par le contexte) */
.responsive-img-container{ margin: 0 !important; }

/* 5) Colonne de blocs: chaque bloc respire pareil (haut=bas / g=d) */
.colonne-bloc > *{
  box-sizing: border-box;
  padding: clamp(16px, 2.0vw, 28px) clamp(16px, 2.2vw, 32px) !important;
  margin: 0 !important;
}
.colonne-bloc > * + *{ margin-top: var(--gap) !important; }
.colonne-bloc > * > *{ margin: 0 !important; }
.colonne-bloc > * > * + *{ margin-top: var(--gap-sm) !important; }

/* 6) Finitions: pas de creux début/fin */
:where(.alignement-section, .section-bloc) > *:first-child{ margin-top: 0 !important; }
:where(.alignement-section, .section-bloc) > *:last-child { margin-bottom: 0 !important; }

/* 7) Fix du “bloc parasite transparent” au scroll (calque d’effets)
      → On neutralise UNIQUEMENT à l’intérieur de tes sections */
.alignement-section [class*="motion-effects-layer"],
.section-bloc      [class*="motion-effects-layer"]{
  background: transparent !important;
  pointer-events: none !important;
}
.alignement-section [class*="background-overlay"],
.section-bloc      [class*="background-overlay"]{
  pointer-events: none !important; /* ne bloque pas les clics */
}

/* 8) Mobile ≤734px: gouttière tendue 5px, même centrage, respiration douce */
@media (max-width: 734px){
  :where(.alignement-section, .section-bloc){
    --pad-x: 5px;
    --pad-y: clamp(22px, 5vw, 30px);
    --maxw: 100%;
  }
  /* Si la colonne image passe sous le texte, on garde un bel écart */
  .colonne-image{ margin-top: var(--gap) !important; }
}


/* =========================================================
   PAGE /connexion — ELEMENTOR 3170201
   Liquid Glass BLANC (bloc 7a57b0f) + Inputs + Button black-glass
   ========================================================= */

/* ---------- Variables locales page (rayon, padding, couleurs utilitaires) */
.elementor-3170201{
  --radius-xl: clamp(14px, 2.2vw, 24px);
  --pad-xl: clamp(16px, 2.6vw, 28px);

  /* Anneau d’accessibilité (fallback si non défini plus haut) */
  --ring-color: #0066af;
  --ring-inner: rgba(255,255,255,.9);

  /* Palette texte pour fond clair */
  --ink-900: #0b1220;        /* texte principal */
  --ink-700: #1b2537;        /* secondaire */
  --ink-500: #64748b;        /* muted */
  --brand-link: #004068;     /* DigiOuest */
  --brand-link-hover: #0066af;

  /* Liquid glass BLANC */
  --glass-light-bg:
    linear-gradient( to bottom right,
      rgba(255,255,255,.68),
      rgba(255,255,255,.50)
    );
  --glass-light-bg-hover:
    linear-gradient( to bottom right,
      rgba(255,255,255,.76),
      rgba(255,255,255,.58)
    );
  --glass-light-border: rgba(255,255,255,.85);
  --glass-light-border-strong: rgba(255,255,255,.95);
  --glass-light-shadow:
    0 10px 32px rgba(2,6,23,.08),
    inset 0 1px 0 rgba(255,255,255,.65);

  /* Liquid glass NOIR (pour le bouton) */
  --glass-dark-bg:
    linear-gradient( to bottom right,
      rgba(12,14,20,.75),
      rgba(6,8,12,.70)
    );
  --glass-dark-bg-hover:
    linear-gradient( to bottom right,
      rgba(16,18,26,.82),
      rgba(8,10,14,.78)
    );
  --glass-dark-border: rgba(255,255,255,.18);
  --glass-dark-border-strong: rgba(255,255,255,.24);
  --glass-dark-shadow:
    0 14px 36px rgba(0,0,0,.28),
    inset 0 1px 0 rgba(255,255,255,.10);
}

/* ---------------------------------------------------------
   1) LIQUID GLASS BLANC — bloc cible 7a57b0f
   --------------------------------------------------------- */
/* Vieux DOM Elementor (column-wrap) */
.elementor-3170201 .elementor-element.elementor-element-7a57b0f:not(.elementor-motion-effects-element-type-background) > .elementor-column-wrap,
.elementor-3170201 .elementor-element.elementor-element-7a57b0f > .elementor-column-wrap > .elementor-motion-effects-container > .elementor-motion-effects-layer,
/* DOM récent Elementor (widget-wrap/elementor-element-populated) */
.elementor-3170201 .elementor-element.elementor-element-7a57b0f > .elementor-widget-wrap,
.elementor-3170201 .elementor-element.elementor-element-7a57b0f > .elementor-element-populated{
  position: relative;
  border-radius: var(--radius-xl) !important;
  overflow: hidden !important;

  /* effet glass BLANC */
  background: var(--glass-light-bg) !important;
  border: 1px solid var(--glass-light-border);
  -webkit-backdrop-filter: blur(12px) saturate(160%);
  backdrop-filter: blur(12px) saturate(160%);
  box-shadow: var(--glass-light-shadow);
  background-clip: padding-box;
  isolation: isolate;

  /* respiration interne */
  padding: var(--pad-xl) !important;
}

/* couche motion-effects → toujours transparente */
.elementor-3170201 .elementor-element.elementor-element-7a57b0f > .elementor-column-wrap > .elementor-motion-effects-container > .elementor-motion-effects-layer,
.elementor-3170201 .elementor-element.elementor-element-7a57b0f > .elementor-widget-wrap > .elementor-motion-effects-container > .elementor-motion-effects-layer{
  background: transparent !important;
}

/* Hover doux (renforce l’effet verre clair) */
.elementor-3170201 .elementor-element.elementor-element-7a57b0f:hover > .elementor-widget-wrap,
.elementor-3170201 .elementor-element.elementor-element-7a57b0f:hover > .elementor-element-populated,
.elementor-3170201 .elementor-element.elementor-element-7a57b0f:hover > .elementor-column-wrap{
  background: var(--glass-light-bg-hover) !important;
  border-color: var(--glass-light-border-strong);
  box-shadow:
    0 16px 40px rgba(2,6,23,.10),
    inset 0 1px 0 rgba(255,255,255,.75);
}

/* Fallback quand backdrop-filter n’est pas supporté */
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))){
  .elementor-3170201 .elementor-element.elementor-element-7a57b0f:not(.elementor-motion-effects-element-type-background) > .elementor-column-wrap,
  .elementor-3170201 .elementor-element.elementor-element-7a57b0f > .elementor-column-wrap > .elementor-motion-effects-container > .elementor-motion-effects-layer,
  .elementor-3170201 .elementor-element.elementor-element-7a57b0f > .elementor-widget-wrap,
  .elementor-3170201 .elementor-element.elementor-element-7a57b0f > .elementor-element-populated{
    background: #ffffff !important; /* aplat lisible */
    border: 1px solid #e8eef5;
    box-shadow: 0 10px 28px rgba(2,6,23,.10), inset 0 1px 0 #ffffff;
  }
}

/* ---------------------------------------------------------
   2) TYPO & liens lisibles sur verre blanc (dans le bloc)
   --------------------------------------------------------- */
.elementor-3170201 .elementor-element.elementor-element-7a57b0f :is(p, li, small, span, label){
  color: var(--ink-900);
}
.elementor-3170201 .elementor-element.elementor-element-7a57b0f a{
  color: var(--brand-link);
}
.elementor-3170201 .elementor-element.elementor-element-7a57b0f a:hover{
  color: var(--brand-link-hover);
  text-decoration: underline;
}

/* ---------------------------------------------------------
   3) INPUTS “LIQUID GLASS BLANC” (dans le bloc/form)
   --------------------------------------------------------- */
.elementor-3170201 .elementor-element.elementor-element-7a57b0f .elementor-field.elementor-field-textual.elementor-size-lg{
  display: block; width: 100%;
  color: var(--ink-900);
  font: inherit; line-height: 1.47; letter-spacing: -.01em;

  background:
    linear-gradient(to bottom, rgba(255,255,255,.70), rgba(255,255,255,.54));
  border: 1px solid rgba(255,255,255,.85);
  -webkit-backdrop-filter: blur(8px) saturate(140%);
  backdrop-filter: blur(8px) saturate(140%);

  border-radius: 14px;
  padding: 12px 14px;
  outline: none;
  box-shadow:
    0 1px 2px rgba(2,6,23,.06),
    inset 0 1px 0 rgba(255,255,255,.65);
  transition:
    box-shadow .2s ease, border-color .2s ease, background-color .2s ease, transform .06s ease;
  -webkit-appearance: none; appearance: none;
}

.elementor-3170201 .elementor-element.elementor-element-7a57b0f .elementor-field.elementor-field-textual.elementor-size-lg::placeholder{
  color: color-mix(in sRGB, var(--ink-900) 55%, transparent);
}

@media (hover:hover){
  .elementor-3170201 .elementor-element.elementor-element-7a57b0f .elementor-field.elementor-field-textual.elementor-size-lg:hover{
    background: linear-gradient(to bottom, rgba(255,255,255,.78), rgba(255,255,255,.60));
    border-color: #fff;
  }
}

.elementor-3170201 .elementor-element.elementor-element-7a57b0f .elementor-field.elementor-field-textual.elementor-size-lg:focus-visible{
  border-color: var(--ring-color);
  box-shadow:
    0 0 0 2px color-mix(in sRGB, var(--ring-color) 40%, transparent),
    0 0 0 1px var(--ring-inner) inset,
    0 10px 24px rgba(2,6,23,.12);
}

.elementor-3170201 .elementor-element.elementor-element-7a57b0f .elementor-field-group.elementor-field-error .elementor-field-textual{
  border-color: #ff5a5f !important;
  box-shadow: 0 0 0 2px color-mix(in sRGB, #ff5a5f 35%, transparent) !important;
}

@media (max-width: 480px){
  .elementor-3170201 .elementor-element.elementor-element-7a57b0f .elementor-field.elementor-field-textual.elementor-size-lg{
    border-radius: 12px; padding: 12px 12px;
  }
}

/* Fallback inputs (sans backdrop-filter) */
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))){
  .elementor-3170201 .elementor-element.elementor-element-7a57b0f .elementor-field.elementor-field-textual.elementor-size-lg{
    background: #ffffff;
    border: 1px solid #e8eef5;
    box-shadow: 0 1px 2px rgba(2,6,23,.06), inset 0 1px 0 #ffffff;
  }
}

/* ---------------------------------------------------------
   4) BOUTON Elementor (elementor-button elementor-size-md)
      en LIQUID GLASS NOIR — dans le bloc
   --------------------------------------------------------- */
.elementor-3170201 .elementor-element.elementor-element-7a57b0f .elementor-button.elementor-size-md{
  display: inline-flex; align-items: center; justify-content: center;
  gap: .55rem;
  color: #fff;
  font-weight: 600;
  text-decoration: none;

  background: var(--glass-dark-bg);
  border: 1px solid var(--glass-dark-border);
  -webkit-backdrop-filter: blur(8px) saturate(160%);
  backdrop-filter: blur(8px) saturate(160%);
  box-shadow: var(--glass-dark-shadow);
  border-radius: 40px;
  padding: 12px 22px;
  transition: transform .06s ease, box-shadow .2s ease, background-color .2s ease, border-color .2s ease;
}

.elementor-3170201 .elementor-element.elementor-element-7a57b0f .elementor-button.elementor-size-md:hover{
  background: var(--glass-dark-bg-hover);
  border-color: var(--glass-dark-border-strong);
  box-shadow:
    0 18px 42px rgba(0,0,0,.30),
    inset 0 1px 0 rgba(255,255,255,.12);
  transform: translateY(-1px);
}

.elementor-3170201 .elementor-element.elementor-element-7a57b0f .elementor-button.elementor-size-md:active{
  transform: translateY(0);
}

.elementor-3170201 .elementor-element.elementor-element-7a57b0f .elementor-button.elementor-size-md:disabled,
.elementor-3170201 .elementor-element.elementor-element-7a57b0f .elementor-button.elementor-size-md[disabled]{
  opacity: .65; cursor: not-allowed;
}

/* Fallback bouton (sans backdrop-filter) */
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))){
  .elementor-3170201 .elementor-element.elementor-element-7a57b0f .elementor-button.elementor-size-md{
    background: #0f172a;
    border: 1px solid rgba(255,255,255,.14);
    box-shadow: 0 14px 36px rgba(0,0,0,.24), inset 0 1px 0 rgba(255,255,255,.10);
  }
}

/* ---------------------------------------------------------
   5) Compat mobile : pas de blocage overlay global
   --------------------------------------------------------- */
.elementor-3170201 .elementor-section > .elementor-background-overlay{
  pointer-events: none;
}

/* =========================================================
   /connexion — ELEMENTOR 3170201
   Liquid Glass NOIR (carte + inputs) + Bouton Liquid Glass BLANC
   Bloc cible: 7a57b0f — contours premium + focus-within
   ========================================================= */

/* ---------- Variables locales */
.elementor-3170201{
  --brand-1:#004068; --brand-2:#0066af;
  --ink-100:#f4f7fb; --ink-300:#d8e1ee; --ink-500:#9aa8bd;

  --radius-xl:clamp(16px,2.2vw,26px);
  --pad-xl:clamp(16px,2.6vw,28px);

  /* Verre NOIR (fond) */
  --glass-dark-bg:linear-gradient(135deg, rgba(14,16,22,.72), rgba(6,8,12,.66));
  --glass-dark-bg-hover:linear-gradient(135deg, rgba(18,20,28,.80), rgba(8,10,14,.74));
  --glass-dark-shadow:0 20px 52px rgba(0,0,0,.34), inset 0 1px 0 rgba(255,255,255,.08);

  /* Contour dégradé (bord externe, subtil brand) */
  --rim-a:rgba(255,255,255,.18);
  --rim-b:rgba(0,102,175,.25);
  --rim-c:rgba(255,255,255,.10);

  /* Liseré interne glossy (bord interne) */
  --inner-a:rgba(255,255,255,.20);
  --inner-b:rgba(255,255,255,.08);

  /* Verre BLANC (pour le bouton) */
  --glass-light-bg:linear-gradient(135deg, rgba(255,255,255,.88), rgba(255,255,255,.70));
  --glass-light-bg-hover:linear-gradient(135deg, rgba(255,255,255,.96), rgba(255,255,255,.80));
  --glass-light-shadow:0 14px 36px rgba(2,6,23,.12), inset 0 1px 0 rgba(255,255,255,.75);
}

/* ---------- Carte “verre noir” + contour premium */
.elementor-3170201 :is(
  .elementor-element.elementor-element-7a57b0f:not(.elementor-motion-effects-element-type-background) > .elementor-column-wrap,
  .elementor-element.elementor-element-7a57b0f > .elementor-widget-wrap,
  .elementor-element.elementor-element-7a57b0f > .elementor-element-populated
){
  position:relative; border-radius:var(--radius-xl) !important; overflow:hidden !important;
  background:
    var(--glass-dark-bg) padding-box,
    linear-gradient(135deg, var(--rim-a), var(--rim-b) 42%, var(--rim-c) 78%) border-box !important;
  border:1.25px solid transparent; /* on laisse voir le border-box */
  -webkit-backdrop-filter:blur(14px) saturate(170%); backdrop-filter:blur(14px) saturate(170%);
  box-shadow:var(--glass-dark-shadow);
  background-clip:padding-box, border-box;
  isolation:isolate;
  padding:var(--pad-xl) !important;
  margin-inline:clamp(5px,4vw,20px); /* 5px mobile */
  transform-style:preserve-3d;
}

/* Motion effects layer toujours transparent */
.elementor-3170201 .elementor-element.elementor-element-7a57b0f
  > .elementor-column-wrap > .elementor-motion-effects-container > .elementor-motion-effects-layer,
.elementor-3170201 .elementor-element.elementor-element-7a57b0f
  > .elementor-widget-wrap > .elementor-motion-effects-container > .elementor-motion-effects-layer{ background:transparent !important; }

/* Liseré interne glossy fin */
.elementor-3170201 :is(
  .elementor-element.elementor-element-7a57b0f:not(.elementor-motion-effects-element-type-background) > .elementor-column-wrap,
  .elementor-element.elementor-element-7a57b0f > .elementor-widget-wrap,
  .elementor-element.elementor-element-7a57b0f > .elementor-element-populated
)::after{
  content:""; position:absolute; inset:0; padding:1px; border-radius:inherit; z-index:1; pointer-events:none;
  background:
    radial-gradient(80% 120% at 50% -20%, var(--inner-a), transparent 60%),
    linear-gradient(to bottom, var(--inner-a), var(--inner-b));
  -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite:xor; mask-composite:exclude;
  opacity:.9; mix-blend-mode:screen;
}

/* Halo “aurora” subtil pour la profondeur */
.elementor-3170201 :is(
  .elementor-element.elementor-element-7a57b0f:not(.elementor-motion-effects-element-type-background) > .elementor-column-wrap,
  .elementor-element.elementor-element-7a57b0f > .elementor-widget-wrap,
  .elementor-element.elementor-element-7a57b0f > .elementor-element-populated
)::before{
  content:""; position:absolute; inset:-1px; border-radius:inherit; pointer-events:none; z-index:0;
  background:
    radial-gradient(90% 140% at 12% -12%, rgba(0,102,175,.20), transparent 50%),
    radial-gradient(80% 120% at 100% 0%, rgba(0,64,104,.16), transparent 42%);
}

/* Hover & focus-within : contour plus incisif + glossy */
@media (hover:hover){
  .elementor-3170201 :is(
    .elementor-element.elementor-element-7a57b0f:not(.elementor-motion-effects-element-type-background) > .elementor-column-wrap,
    .elementor-element.elementor-element-7a57b0f > .elementor-widget-wrap,
    .elementor-element.elementor-element-7a57b0f > .elementor-element-populated
  ):hover{
    background:
      var(--glass-dark-bg-hover) padding-box,
      linear-gradient(135deg, #fff2, color-mix(in sRGB, var(--brand-2) 40%, transparent) 45%, #fff1) border-box !important;
    box-shadow:0 26px 60px rgba(0,0,0,.40), inset 0 1px 0 rgba(255,255,255,.10);
    transform:translateY(-1px);
  }
}
.elementor-3170201 :is(
  .elementor-element.elementor-element-7a57b0f:not(.elementor-motion-effects-element-type-background) > .elementor-column-wrap,
  .elementor-element.elementor-element-7a57b0f > .elementor-widget-wrap,
  .elementor-element.elementor-element-7a57b0f > .elementor-element-populated
):focus-within{
  box-shadow:
    0 0 0 2px color-mix(in sRGB, var(--brand-2) 46%, transparent),
    0 24px 64px rgba(0,0,0,.42),
    inset 0 1px 0 rgba(255,255,255,.12);
}

/* Fallback sans backdrop-filter */
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))){
  .elementor-3170201 :is(
    .elementor-element.elementor-element-7a57b0f:not(.elementor-motion-effects-element-type-background) > .elementor-column-wrap,
    .elementor-element.elementor-element-7a57b0f > .elementor-widget-wrap,
    .elementor-element.elementor-element-7a57b0f > .elementor-element-populated
  ){
    background:#0f172a !important;
    border:1px solid #263042;
    box-shadow:0 16px 44px rgba(0,0,0,.38), inset 0 1px 0 rgba(255,255,255,.06);
  }
}

/* ---------- Typo & liens sur fond sombre */
.elementor-3170201 .elementor-element.elementor-element-7a57b0f :is(p,li,small,span,label){ color:var(--ink-300); }
.elementor-3170201 .elementor-element.elementor-element-7a57b0f a{ color:var(--brand-2); }
.elementor-3170201 .elementor-element.elementor-element-7a57b0f a:hover{ color:var(--brand-1); text-decoration:underline; }

/* ---------- Inputs “verre noir” harmonisés */
.elementor-3170201 .elementor-element.elementor-element-7a57b0f :is(
  .elementor-field.elementor-field-textual,
  input[type="email"], input[type="password"], input[type="text"]
){
  width:100%; color:var(--ink-100);
  background:linear-gradient(180deg, rgba(21,24,33,.78), rgba(10,12,18,.68));
  border:1px solid transparent;
  background-clip:padding-box, border-box;
  -webkit-backdrop-filter:blur(10px) saturate(160%); backdrop-filter:blur(10px) saturate(160%);
  border-radius:14px; padding:12px 14px; outline:none;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08), 0 1px 2px rgba(0,0,0,.30);
  transition:box-shadow .2s ease, border-color .2s ease, background-color .2s ease, transform .06s ease;
}
.elementor-3170201 .elementor-element.elementor-element-7a57b0f .elementor-field.elementor-field-textual::placeholder{
  color:color-mix(in sRGB, var(--ink-300) 60%, transparent);
}
@media (hover:hover){
  .elementor-3170201 .elementor-element.elementor-element-7a57b0f :is(.elementor-field.elementor-field-textual, input[type="email"], input[type="password"], input[type="text"]):hover{
    background:linear-gradient(180deg, rgba(24,27,38,.84), rgba(12,14,20,.74));
    box-shadow:inset 0 1px 0 rgba(255,255,255,.10), 0 6px 18px rgba(0,0,0,.28);
  }
}
.elementor-3170201 .elementor-element.elementor-element-7a57b0f :is(.elementor-field.elementor-field-textual, input[type="email"], input[type="password"], input[type="text"]):focus-visible{
  box-shadow:
    0 0 0 2px color-mix(in sRGB, var(--brand-2) 46%, transparent),
    0 0 0 1px rgba(255,255,255,.10) inset,
    0 12px 28px rgba(0,0,0,.36);
}

/* Erreur (Elementor ajoute .elementor-field-error) */
.elementor-3170201 .elementor-element.elementor-element-7a57b0f .elementor-field-group.elementor-field-error .elementor-field-textual{
  border-color:#ff5a5f !important;
  box-shadow:0 0 0 2px color-mix(in sRGB, #ff5a5f 35%, transparent) !important;
}

/* Mobile: rayons légèrement réduits */
@media (max-width:480px){
  .elementor-3170201 .elementor-element.elementor-element-7a57b0f :is(.elementor-field.elementor-field-textual, input[type="email"], input[type="password"], input[type="text"]){
    border-radius:12px; padding:12px 12px;
  }
}

/* Fallback inputs (sans backdrop) */
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))){
  .elementor-3170201 .elementor-element.elementor-element-7a57b0f :is(.elementor-field.elementor-field-textual, input[type="email"], input[type="password"], input[type="text"]){
    background:#141824; border:1px solid #2a3446; box-shadow:inset 0 1px 0 rgba(255,255,255,.06);
  }
}

/* ---------- Bouton CTA : Liquid Glass BLANC propre */
.elementor-3170201 .elementor-element.elementor-element-7a57b0f .elementor-button.elementor-size-md{
  display:inline-flex; align-items:center; justify-content:center; gap:.55rem;
  color:#0b1220; font-weight:700; letter-spacing:.01em;
  background:var(--glass-light-bg);
  border:1px solid transparent;
  background-clip:padding-box, border-box;
  -webkit-backdrop-filter:blur(10px) saturate(160%); backdrop-filter:blur(10px) saturate(160%);
  box-shadow:var(--glass-light-shadow);
  border-radius:42px; padding:12px 24px;
  transition:transform .06s ease, box-shadow .2s ease, background-color .2s ease, border-color .2s ease;
}
.elementor-3170201 .elementor-element.elementor-element-7a57b0f .elementor-button.elementor-size-md:hover{
  background:var(--glass-light-bg-hover);
  box-shadow:0 24px 56px rgba(2,6,23,.18), inset 0 1px 0 rgba(255,255,255,.85);
  transform:translateY(-1px);
}
.elementor-3170201 .elementor-element.elementor-element-7a57b0f .elementor-button.elementor-size-md:focus-visible{
  outline:none;
  box-shadow:0 0 0 3px color-mix(in sRGB, var(--brand-2) 50%, transparent),
             0 0 0 1px rgba(255,255,255,.20) inset,
             0 18px 44px rgba(2,6,23,.18);
}
.elementor-3170201 .elementor-element.elementor-element-7a57b0f .elementor-button.elementor-size-md:disabled{ opacity:.65; cursor:not-allowed; }

/* Fallback bouton */
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))){
  .elementor-3170201 .elementor-element.elementor-element-7a57b0f .elementor-button.elementor-size-md{
    background:#ffffff; border:1px solid #e8eef5; box-shadow:0 14px 36px rgba(2,6,23,.12), inset 0 1px 0 #ffffff;
  }
}

/* ---------- Sécurité / overlays */
.elementor-3170201 .elementor-section > .elementor-background-overlay{ pointer-events:none; }
.elementor-3170201 .g-recaptcha, .elementor-3170201 .grecaptcha-badge{ filter:none !important; opacity:1 !important; z-index:3; position:relative; }

/* ---------- Motion-safe */
@media (prefers-reduced-motion:reduce){
  .elementor-3170201 *{ transition:none !important; }
}


/* /connexion — CTA seul : Liquid Glass BLANC, texte noir
   Effets bornés au bouton (overflow:hidden), aucun effet extérieur */
.elementor-3170201 .elementor-element.elementor-element-7a57b0f .elementor-button.elementor-size-md{
  position: relative;
  overflow: hidden;                 /* ✨ clippe tous les effets à l’intérieur du bouton */
  isolation: isolate;               /* évite les interactions de blend avec l’extérieur */
  contain: paint;                   /* limite le paint au bouton */
  display: inline-flex; align-items: center; justify-content: center; gap: .55rem;

  min-height: 44px;
  padding: 12px 24px;
  border-radius: 42px;
  border: 1px solid transparent;

  /* Texte NOIR */
  color: #000 !important;
  font-weight: 700; letter-spacing: .01em; text-decoration: none;

  /* Liquid glass BLANC + contour dégradé contenu au bouton */
  background:
    linear-gradient(135deg, rgba(255,255,255,.96), rgba(255,255,255,.85)) padding-box,
    linear-gradient(135deg, #ffffff, rgba(0,102,175,.30) 45%, rgba(255,255,255,.65)) border-box;
  background-clip: padding-box, border-box;
  -webkit-backdrop-filter: blur(8px) saturate(160%);
  backdrop-filter: blur(8px) saturate(160%);

  box-shadow:
    0 14px 34px rgba(2,6,23,.16),  /* ombre douce sous le bouton */
    inset 0 1px 0 rgba(255,255,255,.90);

  transition: transform .06s ease, box-shadow .25s ease, background-color .25s ease;
}

/* Assure noir aussi pour icône/texte interne */
.elementor-3170201 .elementor-element.elementor-element-7a57b0f .elementor-button.elementor-size-md *{
  color: #000 !important; fill: #000 !important; stroke: #000 !important;
}

/* Reflet “sheen” discret — reste DEDANS grâce à overflow:hidden */
.elementor-3170201 .elementor-element.elementor-element-7a57b0f .elementor-button.elementor-size-md::after{
  content: "";
  position: absolute; inset: -1px;           /* suit exactement le rayon du bouton */
  border-radius: inherit; pointer-events: none; z-index: 0;
  background: linear-gradient(100deg, transparent 45%, rgba(255,255,255,.55) 50%, transparent 55%);
  transform: translateX(-120%) skewX(-12deg);
  transition: transform .9s cubic-bezier(.22,.61,.36,1);
}

@media (hover:hover){
  .elementor-3170201 .elementor-element.elementor-element-7a57b0f .elementor-button.elementor-size-md:hover{
    background:
      linear-gradient(135deg, rgba(255,255,255,.98), rgba(255,255,255,.90)) padding-box,
      linear-gradient(135deg, #ffffff, rgba(0,102,175,.36) 45%, #ffffff) border-box;
    box-shadow: 0 22px 56px rgba(2,6,23,.20), inset 0 1px 0 rgba(255,255,255,.95);
    transform: translateY(-1px);
  }
  .elementor-3170201 .elementor-element.elementor-element-7a57b0f .elementor-button.elementor-size-md:hover::after{
    transform: translateX(120%) skewX(-12deg); /* balayage interne uniquement */
  }
}

/* Focus accessible (AA) sans débordement extérieur */
.elementor-3170201 .elementor-element.elementor-element-7a57b0f .elementor-button.elementor-size-md:focus-visible{
  outline: none;
  box-shadow:
    0 0 0 3px color-mix(in sRGB, #0066af 52%, transparent),
    0 0 0 1px rgba(255,255,255,.22) inset,
    0 20px 48px rgba(2,6,23,.18);
}

/* État actif / désactivé */
.elementor-3170201 .elementor-element.elementor-element-7a57b0f .elementor-button.elementor-size-md:active{
  transform: translateY(0);
  box-shadow: 0 12px 28px rgba(2,6,23,.16), inset 0 1px 0 rgba(255,255,255,.88);
}
.elementor-3170201 .elementor-element.elementor-element-7a57b0f .elementor-button.elementor-size-md:disabled{
  opacity: .65; cursor: not-allowed;
}

/* Fallback sans backdrop-filter (toujours contenu au bouton) */
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))){
  .elementor-3170201 .elementor-element.elementor-element-7a57b0f .elementor-button.elementor-size-md{
    background: #ffffff;
    border: 1px solid #e8eef5;
    box-shadow: 0 14px 34px rgba(2,6,23,.14), inset 0 1px 0 #ffffff;
  }
}


/* reCAPTCHA v2 — centrage + marges (login) */
#dgio-recaptcha-container{
  display:flex !important;
  justify-content:center !important;
  align-items:center !important;
  width:100% !important;
  margin:20px 0 !important;
}

/* Si le widget est injecté sans #dgio-recaptcha-container */
#login-form .g-recaptcha,
form[data-link-action="form-login"] .g-recaptcha,
form.ce-login-form.elementor-form .g-recaptcha{
  display:block !important;
  margin:20px auto !important;   /* 10px haut/bas + centrage */
}

/* Elementor/Creative Elements, champ recaptcha */
form.elementor-form .elementor-field-type-recaptcha_v2 .elementor-field{
  display:flex !important;
  justify-content:center !important;
  width:100% !important;
}