/*
Theme Name: Hello Child AI — Cabinet Profi
Theme URI:    https://cabinet-profi.fr/
Description:  Thème enfant Hello Elementor. Design system fluide (vw/dvh/clamp).
Author:       Crealab
Template:     hello-elementor
Version:      2.1.7
*/

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

/* === 2. VARIABLES CSS — DESIGN SYSTEM ÉLASTIQUE === */
:root {
  /* Couleurs */
  --color-bg: #0B1628;
  --color-border: #233659;
  --color-text: #F5F1E8;
  --color-accent: #C9A961;
  --color-accent-strong: #B8943D;
  --color-accent-soft: #EBDFB8;
  --color-accent-on: #0B1628;
  --color-warning: #FBBF24;
  /* Variables manquantes (palette complète design system) */
  --color-bg-alt:      #0F1E3A;
  --color-surface:     #17294A;
  --color-text-muted:  #9AA9C2;
  --color-text-inverse: var(--color-bg);
  --color-danger:      #F87171;
  --color-success:     #4ADE80;
  --color-info:        #60A5FA;

  /* Polices */
  --font-sans: "Inter Tight", -apple-system, Roboto, Arial, sans-serif;
  --font-serif: "Playfair Display", serif;

  /* Typographie fluide (entre 320px et 1440px) */
  --fs-2xs: clamp(0.6875rem, 0.625rem + 0.3125vw, 0.8125rem)!important;
  --fs-xs:  clamp(0.75rem, 0.6875rem + 0.3125vw, 0.875rem)!important;
  --fs-sm:  clamp(0.875rem, 0.8rem + 0.375vw, 1rem)!important;
  --fs-base:clamp(1rem, 0.9rem + 0.5vw, 1.125rem)!important;
  --fs-lg:  clamp(1.125rem, 0.95rem + 0.875vw, 1.5rem)!important;
  --fs-xl:  clamp(1.375rem, 1.1rem + 1.375vw, 2rem)!important;
  --fs-2xl: clamp(1.75rem, 1.3rem + 2.25vw, 3rem)!important;
  --fs-3xl: clamp(2.25rem, 1.6rem + 3.25vw, 4rem)!important;
  --fs-4xl: clamp(2.75rem, 1.8rem + 4.75vw, 5.5rem) !important;

  /* Hauteurs de ligne */
  --lh-tight:  1.1;
  --lh-snug:   1.3;
  --lh-normal: 1.6;

  /* Poids et tracking */
  --fw-regular:  400;
  --fw-medium:   500;
  --fw-semibold: 600;
  --fw-bold:     700;
  --tracking-tight:  -0.02em;
  --tracking-wider:   0.1em;

  /* Espacements fluides */
  --sp-2xs: clamp(0.25rem, 0.2rem + 0.25vw, 0.375rem);
  --sp-xs:  clamp(0.5rem, 0.4rem + 0.5vw, 0.75rem);
  --sp-sm:  clamp(0.75rem, 0.6rem + 0.75vw, 1rem);
  --sp-md:  clamp(1rem, 0.8rem + 1vw, 1.5rem);
  --sp-lg:  clamp(1.5rem, 1.2rem + 1.5vw, 2.25rem);
  --sp-xl:  clamp(2rem, 1.5rem + 2.5vw, 3.5rem);
  --sp-2xl: clamp(3rem, 2.2rem + 4vw, 5.5rem);
  --sp-3xl: clamp(4rem, 2.8rem + 6vw, 8rem);

  /* Hauteurs viewport-aware (dynamic viewport height) */
  --vh-sm: clamp(20rem, 40dvh, 28rem);
  --vh-md: clamp(28rem, 60dvh, 42rem);
  --vh-lg: clamp(36rem, 80dvh, 56rem);

  /* Containers et gouttières fluides */
  --gutter:            clamp(1rem, 0.5rem + 2vw, 2.5rem);
  --container-narrow:  min(100% - var(--gutter)*2, 47.5rem);
  --container-default: min(100% - var(--gutter)*2, 72rem);
  --container-wide:    min(100% - var(--gutter)*2, 90rem);

  /* Header (fluide aussi) */
  --header-h:          clamp(4rem, 3rem + 2vw, 5.25rem);
  --header-h-scrolled: clamp(3rem, 2.5rem + 1vw, 4rem);

  /* Radius */
  --radius-sm:   0.25rem;
  --radius-md:   0.5rem;
  --radius-lg:   0.75rem;
  --radius-full: 9999px;

  /* Animation */
  --ease:      cubic-bezier(0.4, 0, 0.2, 1);
  --dur-fast:  150ms;
  --dur-base:  250ms;
  --dur-slow:  400ms;

  /* Z-index */
  --z-header: 300;
  --z-toast:  600;
}

/* === 3. RESET === */
*, *::before, *::after { box-sizing: border-box; }
* { margin: 0; }
html { -webkit-text-size-adjust: 100%; -moz-text-size-adjust: 100%; text-size-adjust: 100%; scroll-behavior: smooth; }
html:focus-within { scroll-behavior: smooth; }
body { min-height: 100dvh; text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; line-height: var(--lh-normal); font-family: var(--font-sans); font-size: var(--fs-base); font-weight: var(--fw-regular); color: var(--color-text); background-color: var(--color-bg); }
img, picture, video, canvas, svg { display: block; max-width: 100%; height: auto; }
input, button, textarea, select { font: inherit; color: inherit; }
p, h1, h2, h3, h4, h5, h6 { overflow-wrap: break-word; }
h1, h2, h3, h4, h5, h6 { font-family: var(--font-sans); font-weight: var(--fw-semibold); line-height: var(--lh-tight); letter-spacing: var(--tracking-tight); color: var(--color-text); }
h1 { font-size: var(--fs-3xl); margin-bottom: var(--sp-md); }
h2 { font-size: var(--fs-2xl); margin-bottom: var(--sp-sm); }
h3 { font-size: var(--fs-xl); margin-bottom: var(--sp-sm); }
h4 { font-size: var(--fs-lg); margin-bottom: var(--sp-xs); }
h5 { font-size: var(--fs-base); font-weight: var(--fw-medium); text-transform: uppercase; letter-spacing: var(--tracking-wider); margin-bottom: var(--sp-xs); }
h6 { font-size: var(--fs-sm); font-weight: var(--fw-medium); text-transform: uppercase; letter-spacing: var(--tracking-wider); margin-bottom: var(--sp-xs); }
p { margin-bottom: var(--sp-sm); }
a { color: var(--color-accent); text-decoration-color: transparent; text-underline-offset: 0.2em; transition: color var(--dur-fast) var(--ease), text-decoration-color var(--dur-fast) var(--ease); }
a:hover { color: var(--color-accent-strong); text-decoration: none; border-bottom: 1px solid color-mix(in srgb, var(--color-accent-soft) 30%, transparent); }
a:focus-visible { outline: 2px solid var(--color-accent); outline-offset: 3px; border-radius: var(--radius-sm); }
ul, ol { padding-left: var(--sp-md); }
ul[role="list"], ol[role="list"] { list-style: none; padding: 0; }
button { cursor: pointer; background: none; border: none; }
::selection { background: var(--color-accent); color: var(--color-accent-on); }
hr { border: 0; border-top: 1px solid var(--color-border); margin: var(--sp-lg) 0; }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; scroll-behavior: auto !important; } }

/* === 4. DEV TOOLS (actif si body.dev-mode) === */
body.dev-mode::before { content: "DEV " attr(data-viewport); position: fixed; top: 0; left: 0; z-index: var(--z-toast); padding: var(--sp-2xs) var(--sp-xs); font-family: monospace; font-size: var(--fs-2xs); font-weight: var(--fw-bold); color: #000; background: var(--color-warning); border-bottom-right-radius: var(--radius-sm); pointer-events: none; }
body.dev-mode.dev-grid main::before { content: ""; position: fixed; inset: 0; z-index: var(--z-toast); background: linear-gradient(to right, rgba(201,169,97,0.08) 1px, transparent 1px); background-size: calc((100vw - 2 * var(--gutter)) / 12) 100%; background-position: var(--gutter) 0; pointer-events: none; }
body.dev-mode .debug-outline * { outline: 1px solid rgba(201,169,97,0.3); }
@media (min-width: 480px)  { body.dev-mode { --dev-vp: "XS 480+"; } }
@media (min-width: 640px)  { body.dev-mode { --dev-vp: "SM 640+"; } }
@media (min-width: 768px)  { body.dev-mode { --dev-vp: "MD 768+"; } }
@media (min-width: 1024px) { body.dev-mode { --dev-vp: "LG 1024+"; } }
@media (min-width: 1280px) { body.dev-mode { --dev-vp: "XL 1280+"; } }
@media (min-width: 1536px) { body.dev-mode { --dev-vp: "2XL 1536+"; } }

/* === 5. COMPOSANTS UI === */

/* Liste horaires */
.horaires-list { list-style: none; padding: 0; margin: 0; color: rgba(255,255,255,0.8); font-family: var(--font-sans); font-weight: var(--fw-regular); font-size: var(--fs-base); }
.horaires-list li { display: flex; justify-content: space-between; padding: var(--sp-xs) 0; border-bottom: 1px solid rgba(255,255,255,0.05); transition: color var(--dur-base) var(--ease); }
.horaires-list li.is-today { color: var(--color-accent-soft); font-weight: var(--fw-semibold); border-bottom: 1px solid color-mix(in srgb, var(--color-accent-soft) 30%, transparent); }

/* Slider d'avis */
.profi-avis-container { display: grid; grid-template-columns: 1fr; width: 100%; max-width: var(--container-narrow); margin: 0 auto; padding: 0; text-align: center; place-items: flex-start; }
.profi-avis-slide { grid-column: 1; grid-row: 1; opacity: 0; visibility: hidden; pointer-events: none; transition: opacity var(--dur-slow) var(--ease), visibility var(--dur-slow) var(--ease); }
.profi-avis-slide.active { opacity: 1; visibility: visible; pointer-events: auto; }
.profi-avis-stars { color: var(--color-accent); font-size: var(--fs-lg); margin-bottom: var(--sp-md); letter-spacing: 0.1875rem; }
.profi-avis-texte { font-family: var(--font-serif); font-size: var(--fs-base); line-height: var(--lh-snug); color: var(--color-text); font-weight: var(--fw-regular); font-style: italic; margin-bottom: var(--sp-md); padding: 0 var(--sp-md); }
.profi-avis-texte p:first-child::before { content: '"'; margin-right: 0.4rem; color: var(--color-accent); font-size: 3em; vertical-align: -0.4em; line-height: 0; }
.profi-avis-texte p:last-child::after { content: '"'; margin-left: 0.4rem; color: var(--color-accent); font-size: 3em; vertical-align: -0.4em; line-height: 0; }
.profi-avis-meta { font-family: var(--font-sans); font-size: var(--fs-sm); text-transform: uppercase; letter-spacing: 0.0625rem; color: rgba(255,255,255,0.5); }
.profi-avis-meta strong { color: var(--color-accent); font-weight: var(--fw-semibold); }

/* Reset Elementor pour icônes */
.elementor-icon-wrapper { line-height: 1 !important; }

/* === 6. HEADER STICKY + ÉTAT SCROLL === */
header.elementor-location-header { position: sticky; top: 0; z-index: var(--z-header); min-height: var(--header-h); transition: min-height var(--dur-base) var(--ease), background-color var(--dur-base) var(--ease); backdrop-filter:blur(10px); background-color: color-mix(in srgb, var(--color-bg) 60%, transparent); }

#badgeGoogle{width: clamp(18rem, 5vw, 30rem) !important; font-size: var(--fs-base) !important; margin-left:calc(-1 * var(--sp-lg)); align-items:center; justify-content:center; vertical-align:center; padding: var(--sp-xs);  }
#badgeGoogle > div{line-height: 1}
#badgeGoogle .rating-stars{font-size:var(--fs-sm) !important; }
.soft{color: var(--e-global-color-primary);}
button.bouton{width: max-content !important}

.itemTemps:before{content: ''; height: 0.7rem; width: 0.7rem; background-color: var(--e-global-color-primary); display: block; position: absolute; margin-left: -1.4rem; margin-top: 0.2rem; border-radius: 10rem;}
.itemTemps.hold:before{background-color:#767a83 }
.etiquette ul li{ background-color:#c4a47c40; padding:0.3rem 1rem !important; border-radius:100rem; border:solid 1px #c4a47c60; font-size:1rem !important }
.etiquette ul li span{font-size:1rem !important}

.tag-partenariat .etiquette ul li:nth-child(1){display: flex !important;}
.tag-temoignage .etiquette ul li:nth-child(2){display: flex !important;}
.tag-viedelexperte .etiquette ul li:nth-child(3){display: flex !important;}

/* Étiquette forcée par loop (page création 68) : un post multi-tags affiche sinon ses 3 chips.
   On scope par l'ID du loop-grid → une seule étiquette pertinente par loop.
   (1)=Partenariat · (2)=Témoignage · (3)=La vie de l'experte. */
#postsPartenaires .etiquette ul li { display: none !important; }
#postsPartenaires .etiquette ul li:nth-child(1) { display: flex !important; }
#postsVieDeLexperte .etiquette ul li { display: none !important; }
#postsVieDeLexperte .etiquette ul li:nth-child(3) { display: flex !important; }

/* === Dual CTA === */
.cta-dual { display: flex; flex-direction: column; align-items: flex-start; gap: var(--sp-sm, 0.875rem); margin: var(--sp-lg, 2rem) 0; }
.cta-dual__primary { display: inline-flex; align-items: center; gap: 0.5rem; padding: 0.875rem 1.75rem; background: var(--e-global-color-accent, #C9A961); color: var(--e-global-color-secondary, #0B1628); font-family: var(--e-global-typography-text-font-family, "Inter Tight"), sans-serif; font-weight: 600; font-size: var(--fs-base, 1rem); border-radius: 0.25rem; text-decoration: none; transition: transform 200ms ease, background-color 200ms ease; }
.cta-dual__primary:hover { background: #fff; transform: translateY(-1px); color: var(--e-global-color-secondary, #0B1628); }
.cta-dual__primary svg { transition: transform 200ms ease; }
.cta-dual__primary:hover svg { transform: translateX(3px); }
.cta-dual__secondary { display: inline-flex; align-items: center; padding: 0.25rem 0; color: var(--e-global-color-accent, #C9A961); font-family: var(--e-global-typography-text-font-family, "Inter Tight"), sans-serif; font-weight: 500; font-size: var(--fs-sm, 0.875rem); text-decoration: none; border-bottom: 1px solid color-mix(in srgb, var(--e-global-color-accent, #C9A961) 30%, transparent); transition: border-color 200ms ease, color 200ms ease; }
.cta-dual__secondary:hover { color: #fff; border-bottom-color: #fff; }
@media (min-width: 640px) {
    .cta-dual { flex-direction: row; align-items: center; gap: var(--sp-lg, 2rem); }
}
.cpc-whatsapp-float{background-color: var(--soft) !important;}
.cpc-whatsapp-float:hover{box-shadow: 0 6px 20px rgba(0, 0, 0, 0.3), 0 4px 10px #9a81497d !important;}

.grecaptcha-badge{display: none !important;}

/* === 7. WPFORMS — TUNNEL DE QUALIFICATION === */
/* Spécificité boostée via .wpforms-container.form-tunnel-qualification pour dépasser
   les règles natives WPForms render-modern qui surchargent sinon. */

/* 7.1 Scope, fonts, base + OVERRIDE des CSS vars natives WPForms render-modern */
.wpforms-container.form-tunnel-qualification { background: transparent; padding: 0; --wpforms-button-background-color: var(--color-accent); --wpforms-button-background-color-alt: var(--color-text); --wpforms-button-text-color: var(--color-accent-on); --wpforms-button-text-color-alt: var(--color-bg); --wpforms-button-border-color: var(--color-accent); --wpforms-button-border-color-alt: var(--color-text); --wpforms-page-break-color: var(--color-accent); --wpforms-page-break-color-alt: var(--color-accent-strong); --wpforms-field-text-color: var(--color-text); --wpforms-field-border-color: var(--color-border); --wpforms-field-border-color-spare: var(--color-border); --wpforms-field-background-color: rgba(255,255,255,0.04); --wpforms-label-color: var(--color-text); --wpforms-label-error-color: var(--color-danger); --wpforms-label-sublabel-color: var(--color-text-muted); --wpforms-container-border-color: transparent; }
.wpforms-container.form-tunnel-qualification .wpforms-form { font-family: var(--font-sans); font-size: var(--fs-base); color: var(--color-text); }

/* 7.2 Progress bar */
.wpforms-container.form-tunnel-qualification .wpforms-page-indicator { margin-bottom: var(--sp-lg); }
.wpforms-container.form-tunnel-qualification .wpforms-page-indicator-page-progress { background: rgba(255,255,255,0.06); border-radius: var(--radius-full); height: 6px; margin-bottom: var(--sp-sm); overflow: hidden; }
.wpforms-container.form-tunnel-qualification .wpforms-page-indicator-page-progress { background: var(--color-accent) !important; height: 100%; border-radius: var(--radius-full); transition: width 400ms var(--ease); }
.wpforms-container.form-tunnel-qualification .wpforms-page-indicator-page-title { color: var(--color-text-muted) !important; font-size: var(--fs-2xs); font-weight: var(--fw-semibold); text-transform: uppercase; letter-spacing: var(--tracking-wider); margin: 0; }

/* 7.3 Titres de pages + intro (sans direct child, le H4 est dans un wrapper Lead Form) */
.wpforms-container.form-tunnel-qualification .wpforms-page h4 { font-family: var(--font-serif) !important; font-style: italic; font-size: var(--fs-xl); font-weight: var(--fw-medium); color: var(--color-text) !important; margin: 0 0 var(--sp-xs); line-height: var(--lh-tight); letter-spacing: 0; }
.wpforms-container.form-tunnel-qualification .wpforms-page p { color: var(--color-text-muted) !important; font-size: var(--fs-base); margin-bottom: var(--sp-lg); }

/* 7.4 Field wrappers, labels & descriptions */
.wpforms-container.form-tunnel-qualification .wpforms-field { padding: 0 0 var(--sp-md); margin: 0; }
.wpforms-container.form-tunnel-qualification .wpforms-field-label { color: var(--color-text); font-family: var(--font-sans); font-weight: var(--fw-semibold); font-size: var(--fs-base); margin: 0 0 var(--sp-xs); display: block; line-height: var(--lh-snug); }
.wpforms-container.form-tunnel-qualification .wpforms-required-label { color: var(--color-accent); margin-left: 0.25em; font-weight: var(--fw-bold); }
.wpforms-container.form-tunnel-qualification .wpforms-field-description { color: var(--color-text-muted); font-size: var(--fs-sm); font-style: italic; margin-top: var(--sp-2xs); line-height: var(--lh-snug); }
.wpforms-container.form-tunnel-qualification .wpforms-field-sublabel { color: var(--color-text-muted); font-size: var(--fs-xs); margin-top: 0.25rem; font-weight: var(--fw-regular); }

/* 7.5 Inputs text, email, tel, number, url, textarea, select */
.wpforms-container.form-tunnel-qualification input[type="text"], .wpforms-container.form-tunnel-qualification input[type="email"], .wpforms-container.form-tunnel-qualification input[type="tel"], .wpforms-container.form-tunnel-qualification input[type="number"], .wpforms-container.form-tunnel-qualification input[type="url"], .wpforms-container.form-tunnel-qualification textarea, .wpforms-container.form-tunnel-qualification select { background: rgba(255,255,255,0.04); color: var(--color-text); border: 1px solid var(--color-border); border-radius: var(--radius-md); padding: 0.75rem 1rem; font-family: var(--font-sans); font-size: var(--fs-base); width: 100%; line-height: var(--lh-snug); transition: border-color var(--dur-fast) var(--ease), background-color var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease); -webkit-appearance: none; appearance: none; }
.wpforms-container.form-tunnel-qualification input::placeholder, .wpforms-container.form-tunnel-qualification textarea::placeholder { color: rgba(245,241,232,0.35); }
.wpforms-container.form-tunnel-qualification textarea { min-height: 6rem; resize: vertical; line-height: var(--lh-normal); }
.wpforms-container.form-tunnel-qualification input:hover, .wpforms-container.form-tunnel-qualification textarea:hover, .wpforms-container.form-tunnel-qualification select:hover { border-color: color-mix(in srgb, var(--color-accent) 50%, transparent); }
.wpforms-container.form-tunnel-qualification input:focus, .wpforms-container.form-tunnel-qualification textarea:focus, .wpforms-container.form-tunnel-qualification select:focus { background: rgba(255,255,255,0.06); border-color: var(--color-accent); outline: none; box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-accent) 20%, transparent); }

/* 7.6 Radios & checkboxes — transformés en cards cliquables */
.wpforms-container.form-tunnel-qualification .wpforms-field-radio ul, .wpforms-container.form-tunnel-qualification .wpforms-field-checkbox ul, .wpforms-container.form-tunnel-qualification .wpforms-field-gdpr-checkbox ul { list-style: none; padding: 0; margin: 0; display: grid !important; grid-template-columns: 1fr !important; width: 100% !important; gap: var(--sp-xs); }
.wpforms-container.form-tunnel-qualification .wpforms-field-radio li, .wpforms-container.form-tunnel-qualification .wpforms-field-checkbox li, .wpforms-container.form-tunnel-qualification .wpforms-field-gdpr-checkbox li { position: relative; width: 100% !important; }
.wpforms-container.form-tunnel-qualification .wpforms-field-radio input[type="radio"], .wpforms-container.form-tunnel-qualification .wpforms-field-checkbox input[type="checkbox"] { position: absolute; opacity: 0; pointer-events: none; }
.wpforms-container.form-tunnel-qualification .wpforms-field-radio label, .wpforms-container.form-tunnel-qualification .wpforms-field-checkbox label, .wpforms-container.form-tunnel-qualification .wpforms-field-gdpr-checkbox label { display: flex; align-items: center; gap: var(--sp-sm); background: rgba(255,255,255,0.03); border: 1px solid var(--color-border); border-radius: var(--radius-md); padding: 0.75rem 1rem; cursor: pointer; transition: background-color var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease); font-weight: var(--fw-regular); margin: 0; font-size: var(--fs-base); line-height: var(--lh-snug); color: var(--color-text); width: 100% !important; box-sizing: border-box; }
.wpforms-container.form-tunnel-qualification .wpforms-field-radio label::before, .wpforms-container.form-tunnel-qualification .wpforms-field-checkbox label::before, .wpforms-container.form-tunnel-qualification .wpforms-field-gdpr-checkbox label::before { content: ""; flex-shrink: 0; width: 1.125rem; height: 1.125rem; border: 1px solid #556a92; transition: border-color var(--dur-fast) var(--ease), background-color var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease); }
.wpforms-container.form-tunnel-qualification .wpforms-field-radio label::before { border-radius: 50%; }
.wpforms-container.form-tunnel-qualification .wpforms-field-checkbox label::before, .wpforms-container.form-tunnel-qualification .wpforms-field-gdpr-checkbox label::before { border-radius: var(--radius-sm); }
.wpforms-container.form-tunnel-qualification .wpforms-field-radio label:hover, .wpforms-container.form-tunnel-qualification .wpforms-field-checkbox label:hover, .wpforms-container.form-tunnel-qualification .wpforms-field-gdpr-checkbox label:hover { background: rgba(255,255,255,0.05); border-color: color-mix(in srgb, var(--color-accent) 50%, transparent); }
.wpforms-container.form-tunnel-qualification .wpforms-field-radio input:checked + label, .wpforms-container.form-tunnel-qualification .wpforms-field-checkbox input:checked + label, .wpforms-container.form-tunnel-qualification .wpforms-field-gdpr-checkbox input:checked + label { background: color-mix(in srgb, var(--color-accent) 10%, transparent); border-color: var(--color-accent); }
.wpforms-container.form-tunnel-qualification .wpforms-field-radio input:checked + label::before { background: var(--color-accent); border-color: var(--color-accent); box-shadow: inset 0 0 0 3px var(--color-bg-alt); }
.wpforms-container.form-tunnel-qualification .wpforms-field-checkbox input:checked + label::before, .wpforms-container.form-tunnel-qualification .wpforms-field-gdpr-checkbox input:checked + label::before { background: var(--color-accent); border-color: var(--color-accent); }
.wpforms-container.form-tunnel-qualification .wpforms-field-radio input:focus-visible + label, .wpforms-container.form-tunnel-qualification .wpforms-field-checkbox input:focus-visible + label, .wpforms-container.form-tunnel-qualification .wpforms-field-gdpr-checkbox input:focus-visible + label { box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-accent) 25%, transparent); }

/* 7.7 Radio inline (silo_projet) → reste en 1 colonne sur mobile, 1 sur desktop aussi pour lisibilité 5 items */
.wpforms-container.form-tunnel-qualification .wpforms-list-inline ul { grid-template-columns: 1fr; }

/* 7.8 Radio 2 colonnes (delai_souhaite, statut_juridique) — uniquement desktop */
@media (min-width: 640px) {
    .wpforms-container.form-tunnel-qualification .wpforms-list-2-columns ul { grid-template-columns: 1fr 1fr !important; }
}

/* 7.9 GDPR — encadré subtil pour le distinguer */
.wpforms-container.form-tunnel-qualification .wpforms-field-gdpr-checkbox label { background: rgba(201,169,97,0.05); border-color: color-mix(in srgb, var(--color-accent) 30%, transparent); }
.wpforms-container.form-tunnel-qualification .wpforms-field-gdpr-checkbox .wpforms-field-description { color: var(--color-text-muted); font-size: var(--fs-sm); padding: 0; margin: var(--sp-xs) 0 var(--sp-sm); font-style: normal; }
.wpforms-container.form-tunnel-qualification .wpforms-field-gdpr-checkbox .wpforms-field-description a { color: var(--color-accent); text-decoration: underline; text-underline-offset: 0.2em; }
.wpforms-container.form-tunnel-qualification .wpforms-field-gdpr-checkbox .wpforms-field-description a:hover { color: var(--color-accent-strong); }

/* 7.10 Sous-champs (Name prénom/nom, Email + confirmation) — grille responsive + placement
   explicite. render-modern force `.wpforms-field-row{display:flex}` + `space-between` → escalier
   et ordre inversé. On impose la grille en !important : 1 colonne empilée en mobile, 2 colonnes
   ≥480px avec 1er sous-champ (prénom/email) à GAUCHE, 2e (nom/confirmation) à DROITE. */
.wpforms-container.form-tunnel-qualification .wpforms-field-row:has(.wpforms-field-row-block) { display: grid !important; grid-template-columns: 1fr; gap: var(--sp-sm); margin: 0; justify-content: stretch; }
.wpforms-container.form-tunnel-qualification .wpforms-field-row:has(.wpforms-field-row-block) > * { width: 100% !important; float: none !important; margin: 0 !important; padding: 0 !important; }
.wpforms-container.form-tunnel-qualification .wpforms-field-row:has(.wpforms-field-row-block) input { width: 100% !important; }
@media (min-width: 480px) {
    .wpforms-container.form-tunnel-qualification .wpforms-field-row:has(.wpforms-field-row-block) { grid-template-columns: 1fr 1fr; }
    .wpforms-container.form-tunnel-qualification .wpforms-field-row:has(.wpforms-field-row-block) .wpforms-first { grid-column: 1 !important; grid-row: 1 !important; }
    .wpforms-container.form-tunnel-qualification .wpforms-field-row:has(.wpforms-field-row-block) > *:not(.wpforms-first) { grid-column: 2 !important; grid-row: 1 !important; }
}
/* Champ Contenu faussement classé .wpforms-field-row (sans sous-blocs, ex. field_34 « Parlons
   concret ») → affichage bloc normal (titre + paragraphe empilés), sinon ma grille les superpose. */
.wpforms-container.form-tunnel-qualification .wpforms-field-row:not(:has(.wpforms-field-row-block)) { display: block !important; }
.wpforms-container.form-tunnel-qualification .wpforms-field-row-block { padding: 0; margin: 0; }

/* 7.11 Boutons Next / Previous / Submit */
.wpforms-container.form-tunnel-qualification .wpforms-page-button, .wpforms-container.form-tunnel-qualification button[type="submit"].wpforms-submit { font-family: var(--font-sans); font-weight: var(--fw-semibold); font-size: var(--fs-base); padding: 0.875rem 1.75rem; border-radius: var(--radius-sm); border: 1px solid var(--color-accent); cursor: pointer; transition: background-color var(--dur-base) var(--ease), color var(--dur-base) var(--ease), transform var(--dur-fast) var(--ease), border-color var(--dur-base) var(--ease); letter-spacing: 0.01em; line-height: 1; display: inline-flex; align-items: center; justify-content: center; min-width: 8rem; }
.wpforms-container.form-tunnel-qualification button[type="submit"].wpforms-submit, .wpforms-container.form-tunnel-qualification .wpforms-page-button.wpforms-page-next { background: var(--color-accent); color: var(--color-accent-on); }
.wpforms-container.form-tunnel-qualification button[type="submit"].wpforms-submit:hover, .wpforms-container.form-tunnel-qualification .wpforms-page-button.wpforms-page-next:hover { background: var(--color-text); color: var(--color-bg); border-color: var(--color-text); transform: translateY(-1px); }
.wpforms-container.form-tunnel-qualification .wpforms-page-button.wpforms-page-prev { background: transparent; color: var(--color-accent); }
.wpforms-container.form-tunnel-qualification .wpforms-page-button.wpforms-page-prev:hover { background: rgba(201,169,97,0.08); color: var(--color-text); border-color: var(--color-text); }
.wpforms-container.form-tunnel-qualification .wpforms-submit-container { margin-top: var(--sp-md); padding: 0; text-align: center; background: transparent; }
.wpforms-container.form-tunnel-qualification .wpforms-pagebreak-bottom { display: flex; gap: var(--sp-sm); flex-wrap: wrap; margin-top: var(--sp-md); justify-content: flex-end; }
.wpforms-container.form-tunnel-qualification .wpforms-submit-spinner { margin-left: 0.5rem; }

/* 7.11b Navigation de page (Précédent | Suivant) sur une même ligne. render-modern imbrique le
   bouton « Précédent » ET le groupe contenant « Suivant » dans .wpforms-pagebreak-left → on en
   fait une ligne flex : Précédent à gauche, Suivant poussé à droite (margin-auto). Marche aussi
   à l'étape 1 (sans Précédent) : le groupe seul part à droite. */
.wpforms-container.form-tunnel-qualification .wpforms-pagebreak-left { display: flex !important; align-items: center; gap: 0; width: 100%; }
.wpforms-container.form-tunnel-qualification .wpforms-pagebreak-left .wpforms-page-button-group { margin-left: auto !important; width: auto !important; }
/* marges natives des boutons retirées → Précédent collé à gauche, Suivant collé à droite */
.wpforms-container.form-tunnel-qualification .wpforms-pagebreak-left .wpforms-page-button { margin: 0 !important; }

/* 7.12 Erreurs */
.wpforms-container.form-tunnel-qualification input.wpforms-error, .wpforms-container.form-tunnel-qualification textarea.wpforms-error, .wpforms-container.form-tunnel-qualification select.wpforms-error { border-color: var(--color-danger, #F87171); background: color-mix(in srgb, var(--color-danger, #F87171) 5%, transparent); }
.wpforms-container.form-tunnel-qualification label.wpforms-error, .wpforms-container.form-tunnel-qualification em.wpforms-error { color: var(--color-danger, #F87171); font-size: var(--fs-sm); font-style: normal; font-weight: var(--fw-medium); margin-top: 0.375rem; display: block; }
.wpforms-container.form-tunnel-qualification .wpforms-field-radio.wpforms-error label, .wpforms-container.form-tunnel-qualification .wpforms-field-checkbox.wpforms-error label { border-color: var(--color-danger, #F87171); }

/* 7.13 Hidden fields (sécurité visuelle — au cas où) */
.wpforms-container.form-tunnel-qualification .wpforms-field-hidden, .wpforms-container.form-tunnel-qualification .wpforms-hidden { display: none !important; }

/* 7.14 Confirmation message (si tu bascules un jour le type en "message") */
.wpforms-confirmation-container-full.form-tunnel-qualification, .wpforms-container.form-tunnel-qualification + .wpforms-confirmation-container-full { background: color-mix(in srgb, var(--color-accent) 8%, var(--color-bg)); border: 1px solid color-mix(in srgb, var(--color-accent) 30%, transparent); color: var(--color-text); padding: var(--sp-lg); border-radius: var(--radius-md); }

/* 7.15 reCAPTCHA badge — au-dessus du WhatsApp flottant */
.grecaptcha-badge { z-index: var(--z-toast) !important; }
.elementor-popup-modal .dialog-close-button svg{fill: #fff !important}

/* === 8. MENU OFF-CANVAS (mobile) — sommaire éditorial === */
/* SVG burger + close : fichiers sans attribut fill (→ noir par défaut) → pilotés par `color` du widget */
.e-fcefd42-7879d25, .e-e53aabf-e911540 { color: #fff !important; }
.e-fcefd42-7879d25 svg, .e-e53aabf-e911540 svg { fill: currentColor !important; }

/* Neutralise le pointeur Elementor (traits or) + uniformise la couleur des entrées */
#off-canvas-008cb60 .elementor-item::after { display: none !important; }
#off-canvas-008cb60 .elementor-item,
#off-canvas-008cb60 .elementor-item-active { color: var(--color-text) !important; background: transparent !important; }

/* Kicker « Naviguer » au-dessus du menu */
#off-canvas-008cb60 .sm-vertical { counter-reset: ocnav; list-style: none; margin: 0; padding: 0; }
#off-canvas-008cb60 .sm-vertical::before {
  content: "Naviguer"; display: block;
  font-size: var(--fs-2xs); font-weight: var(--fw-semibold); letter-spacing: .24em; text-transform: uppercase;
  color: var(--color-accent); margin-bottom: var(--sp-sm);
}

/* Entrées : numéro 01→06 + grande étiquette + filet de séparation (ciblé sur le seul menu vertical) */
#off-canvas-008cb60 .sm-vertical > li { counter-increment: ocnav; display: flex; align-items: baseline; gap: 1rem; border-bottom: 1px solid rgba(201,169,97,.16); }
#off-canvas-008cb60 .sm-vertical > li::before {
  content: counter(ocnav, decimal-leading-zero);
  font-family: var(--font-serif); font-style: italic; color: var(--color-accent);
  font-size: 1.1rem; flex: none; width: 1.5rem; align-self: center;
}
#off-canvas-008cb60 .sm-vertical > li > .elementor-item {
  flex: 1; padding: var(--sp-sm) 0;
  font-size: clamp(1.6rem, 6vw, 2.2rem) !important; font-weight: var(--fw-medium); letter-spacing: var(--tracking-tight);
}

/* Stagger d'entrée — déclenché à l'ouverture (aria-hidden=false), sans JS */
#off-canvas-008cb60 .sm-vertical > li { opacity: 0; transform: translateY(18px); transition: opacity .55s var(--ease), transform .55s var(--ease); }
#off-canvas-008cb60[aria-hidden="false"] .sm-vertical > li { opacity: 1; transform: none; }
#off-canvas-008cb60[aria-hidden="false"] .sm-vertical > li:nth-child(1) { transition-delay: .15s; }
#off-canvas-008cb60[aria-hidden="false"] .sm-vertical > li:nth-child(2) { transition-delay: .22s; }
#off-canvas-008cb60[aria-hidden="false"] .sm-vertical > li:nth-child(3) { transition-delay: .29s; }
#off-canvas-008cb60[aria-hidden="false"] .sm-vertical > li:nth-child(4) { transition-delay: .36s; }
#off-canvas-008cb60[aria-hidden="false"] .sm-vertical > li:nth-child(5) { transition-delay: .43s; }
#off-canvas-008cb60[aria-hidden="false"] .sm-vertical > li:nth-child(6) { transition-delay: .50s; }

/* === 9. DOCK MOBILE — barre d'actions rapides (shortcode [dock]) === */
#dock { display: none !important; }
@media (max-width: 1024px) {
  #dock {
    display: flex !important; position: fixed; left: 0; right: 0; bottom: 0; z-index: 45;
    justify-content: center; align-items: center;
    padding: .5rem .5rem calc(.5rem + env(safe-area-inset-bottom));
    background: color-mix(in srgb, var(--color-bg) 90%, transparent);
    backdrop-filter: blur(14px); border-top: 1px solid var(--color-border);
  }
  #dock .dock-nav { display: flex; justify-content: center; align-items: center; gap: 1rem; width: 100%; }
  #dock .dock-ico { display: grid; place-items: center; height: 3.25rem; width: 3.25rem; color: var(--color-accent); transition: color .15s; text-decoration: none; }
  #dock .dock-ico:hover, #dock .dock-ico:active { color: var(--color-accent-soft); border: 0; }
  #dock .dock-ico i { font-size: 2rem; line-height: 1; }
  /* dégage le bas de page pour ne pas masquer le contenu */
  body { padding-bottom: calc(3.75rem + env(safe-area-inset-bottom)); }
  /* masque le WhatsApp flottant (doublon avec l'icône WA du dock) */
  .cpc-whatsapp-float { display: none !important; }
}


@media screen and (max-width: 767px) {
 /* Header mobile : reste sticky → le bandeau principal se fige en haut */
  header.elementor-location-header { position: sticky; top: 0; }
  /* Au scroll : la topbar (#topbar) se replie, seul le « a stiker » (#stiker) reste collé */
  #topbar { overflow: hidden; max-height: 2.5rem; transition: max-height var(--dur-base) var(--ease), opacity var(--dur-base) var(--ease), padding var(--dur-base) var(--ease); }
  body.scroll header.elementor-location-header { min-height: var(--header-h-scrolled); }
  body.scroll #topbar { max-height: 0; opacity: 0; padding-top: 0; padding-bottom: 0; border: 0; }
}

/* === 10. CORPS HOME MOBILE — couche de finition (CSS-only) ===
   Structure mobile (largeurs / empilements / ordre / paddings / masquages) = variants
   atomiques V4 posés par Jocelyn dans l'éditeur. Ici : uniquement ce qui passe mal en éditeur.
   Accroches = CSS ID sémantiques des 8 sections (#home-hero … #home-cta). */

/* 10.0 Garde-fou anti-débordement horizontal (slides Swiper partenaires qui fuitaient ~12px) */
html, body { overflow-x: clip; }

@media screen and (max-width: 767px) {
  /* 10.1 HERO — réserve au moins tout l'écran ; svh = pas de saut quand la barre
     du navigateur mobile apparaît/disparaît ; le contenu défile s'il dépasse. */
  #home-hero { min-height: 100svh; }

  /* 10.2 PARTENAIRES — clip du carrousel (les .swiper-slide débordaient à droite) */
  #home-partners { overflow: hidden; }
}

/* === 11. CABINET-EXPERTISE (page 18) MOBILE — desktop-first SANS variants V4 ===
   Desktop servi par local-18-frontend-desktop.css (.elementor .e-{hash}) : width:65%,
   row-reverse, padding-inline:20rem… On neutralise via le thème enfant.
   Accroches = classes auto .elementor-element-{id}. */
@media screen and (max-width: 767px) {
  /* 11.0 Sections : pleine largeur + on tue le padding-inline géant (20rem desktop) */
  .elementor-element-7ce389d,
  .elementor-element-1ca440d,
  .elementor-element-34b2627,
  .elementor-element-fb27a61 {
    width: 100% !important; max-width: 100% !important; padding-inline: 1.25rem !important;
  }
  /* 11.0b Hero : réduit l'énorme marge haute (6rem desktop) à l'arrivée */
  .elementor-element-7ce389d { margin-block: 1.5rem 2rem !important; }

  /* 11.1 Conteneurs multi-colonnes → empilés en colonne */
  .elementor-element-7ce389d,   /* hero (row-reverse desktop) */
  .elementor-element-1ca440d,   /* Parcours | Diplômes */
  .elementor-element-610d0a0 {  /* 3 cartes écosystème */
    flex-direction: column !important;
  }
  /* 11.2 Enfants directs → pleine largeur */
  .elementor-element-7ce389d > *,
  .elementor-element-1ca440d > *,
  .elementor-element-34b2627 > *,
  .elementor-element-610d0a0 > * { width: 100% !important; max-width: 100% !important; }
  .elementor-element-610d0a0 { width: 100% !important; gap: 1rem !important; }

  /* 11.3 Toutes les cartes → padding 1rem uniforme */
  .elementor-element-6ddb575, .elementor-element-4b7840b,                              /* parcours */
  .elementor-element-bc08b63, .elementor-element-de962a3, .elementor-element-04f33dc,  /* diplômes */
  .elementor-element-df44813, .elementor-element-7b0d9ee, .elementor-element-ae49917   /* écosystème */
  { padding: 1rem !important; }

  /* 11.4 Cartes écosystème → TOUT à gauche (icône, titre, kicker, description) */
  .elementor-element-df44813, .elementor-element-7b0d9ee, .elementor-element-ae49917 {
    align-items: flex-start !important; text-align: left !important;
  }
  .elementor-element-df44813 > *, .elementor-element-7b0d9ee > *, .elementor-element-ae49917 > * {
    align-self: flex-start !important;
  }
  .elementor-element-df44813 *, .elementor-element-7b0d9ee *, .elementor-element-ae49917 * {
    text-align: left !important;
  }

  /* 11.5 Badge date ORIAS (absolu top-right) → remis dans le flux, plus de chevauchement */
  .elementor-element-9edac8c {
    position: static !important; align-self: flex-start; margin-top: .5rem; inset: auto !important;
  }
}

/* === 12. CRÉATION-D'ENTREPRISE (page 68) MOBILE — desktop-first SANS variants V4 ===
   Sections déjà en colonne ; tueur = padding-inline géant (jusqu'à 15rem) + width fixe.
   Accroches = classes auto .elementor-element-{id}. */
@media screen and (max-width: 767px) {
  /* 12.0 Sections : pleine largeur + padding-inline ramené à 1.25rem */
  .elementor-element-7aba30c,
  .elementor-element-1887204,
  .elementor-element-88a0618,
  .elementor-element-ebcdef3,
  .elementor-element-09110ff,
  .elementor-element-5d42ccb {
    width: 100% !important; max-width: 100% !important; padding-inline: 1.25rem !important;
  }

  /* 12.1 SECTION « Quel est votre projet ? » — 4 cartes en ligne → empilées, padding 1rem */
  .elementor-element-ed76fed { padding-inline: 0 !important; width: 100% !important; }
  .elementor-element-414dd60 { flex-direction: column !important; width: 100% !important; gap: 1rem !important; }
  .elementor-element-414dd60 > * { width: 100% !important; padding: 1rem !important; }

  /* 12.2 LOOP-GRID — item article (template 659, PARTAGÉ avec le blog home) : image|texte → empilé */
  .elementor-element-0bfefdf { flex-direction: column !important; }
  .elementor-element-0bfefdf > * { width: 100% !important; }
  .elementor-element-251e06e { width: 100% !important; }
  .elementor-element-f7f195a { margin-inline: 0 !important; padding-inline: 1rem !important; }

  /* 12.3 TÉMOIGNAGES — slider [avis_experts] (widget shortcode 4d553f6)
     - le bloc hérite d'une largeur 61% du desktop → on le repasse pleine largeur
       (supprime les grands espaces gauche/droite, le texte n'est plus étriqué)
     - le padding latéral interne du texte d'avis est retiré (le gutter section 1.25rem suffit)
     - les 5 avis sont empilés dans une seule cellule grid → la hauteur se cale sur l'avis
       LE PLUS LONG ; on centre l'avis actif verticalement pour répartir le vide au lieu de
       le laisser entièrement sous les avis courts (la « grande marge en dessous »). */
  .elementor-element-4d553f6 { width: 100% !important; max-width: 100% !important; }
  .elementor-element-4d553f6 .profi-avis-texte { padding-inline: 0 !important; }
  .elementor-element-4d553f6 .profi-avis-container { align-items: center !important; }
}

/* === 13. BESOIN-TRÉSORERIE (page 74) MOBILE — desktop-first SANS variants V4 ===
   Même schéma que §11/§12 : tueur = padding-inline géant (jusqu'à 640px) + lignes
   multi-colonnes non empilées. Accroches = classes auto .elementor-element-{id}. */
@media screen and (max-width: 767px) {
  /* 13.0 Sections : pleine largeur + padding-inline ramené à 1.25rem */
  .elementor-element-c278dcc,   /* hero */
  .elementor-element-d738a07,   /* partenaires */
  .elementor-element-4dcd41c,   /* citation */
  .elementor-element-fa41ee9,   /* « Les leviers » */
  .elementor-element-c13d2a4,   /* « Réactivité maximale » */
  .elementor-element-54ca8b9,   /* étapes / process */
  .elementor-element-9fa2112,   /* bloc bas */
  .elementor-element-7e191ca {  /* CTA */
    width: 100% !important; max-width: 100% !important; padding-inline: 1.25rem !important;
  }

  /* 13.1 Conteneurs multi-colonnes → empilés ; enfants directs pleine largeur */
  .elementor-element-c278dcc,   /* hero : contenu | image */
  .elementor-element-e3dfd1f,   /* « Les leviers » : 3 cartes */
  .elementor-element-142e80b,   /* « Réactivité » : 2 colonnes */
  .elementor-element-77c1bb9 {  /* 3 items (l'icône+texte interne reste en ligne) */
    flex-direction: column !important;
  }
  .elementor-element-c278dcc > *,
  .elementor-element-e3dfd1f > *,
  .elementor-element-142e80b > *,
  .elementor-element-77c1bb9 > * { width: 100% !important; max-width: 100% !important; }

  /* 13.2 Cartes → padding 1rem uniforme */
  .elementor-element-9593325, .elementor-element-6d7b680, .elementor-element-3e2d682,  /* leviers */
  .elementor-element-e70d508 { padding: 1rem !important; }

  /* 13.2b « Réactivité maximale » : bloc 2-col empilé qui garde 80px de padding latéral
     (contenu rétréci/décalé) → on annule le padding-inline, le gutter section suffit. */
  .elementor-element-142e80b { padding-inline: 0 !important; }

  /* 13.3 TÉMOIGNAGES — même slider [avis_experts] que la page 68 (widget a65d982), hérité
     à 61 % du desktop → pleine largeur + padding latéral du texte retiré + avis actif centré
     verticalement (grille empilée calée sur l'avis le plus long). Cf. §12.3. */
  .elementor-element-a65d982 { width: 100% !important; max-width: 100% !important; }
  .elementor-element-a65d982 .profi-avis-texte { padding-inline: 0 !important; }
  .elementor-element-a65d982 .profi-avis-container { align-items: center !important; }
}

/* === 14. FINANCEMENT-INVESTISSEMENT (page 71) MOBILE — desktop-first SANS variants V4 ===
   Miroir exact de la page 74 (§13) : même gabarit silo, mêmes tueurs (padding-inline géant
   + lignes multi-colonnes). Accroches = classes auto .elementor-element-{id}. */
@media screen and (max-width: 767px) {
  /* 14.0 Sections : pleine largeur + padding-inline ramené à 1.25rem */
  .elementor-element-7086c46,   /* hero */
  .elementor-element-14b2438,   /* partenaires */
  .elementor-element-9ced506,   /* citation */
  .elementor-element-1107b55,   /* « Les leviers » */
  .elementor-element-7d63559,   /* « Réactivité maximale » */
  .elementor-element-0d94c66,   /* étapes / process */
  .elementor-element-77e4a96,   /* témoignages (ILS TÉMOIGNENT) */
  .elementor-element-dfafe0c {  /* CTA */
    width: 100% !important; max-width: 100% !important; padding-inline: 1.25rem !important;
  }

  /* 14.1 Conteneurs multi-colonnes → empilés ; enfants directs pleine largeur */
  .elementor-element-7086c46,   /* hero : contenu | image */
  .elementor-element-54af566,   /* « Les leviers » : 3 cartes */
  .elementor-element-103cc5b,   /* « Réactivité » : 2 colonnes */
  .elementor-element-25915c5 {  /* 3 items (l'icône+texte interne reste en ligne) */
    flex-direction: column !important;
  }
  .elementor-element-7086c46 > *,
  .elementor-element-54af566 > *,
  .elementor-element-103cc5b > *,
  .elementor-element-25915c5 > * { width: 100% !important; max-width: 100% !important; }

  /* 14.2 Cartes → padding 1rem uniforme */
  .elementor-element-ba023b2, .elementor-element-15f9063, .elementor-element-b108c92,  /* leviers */
  .elementor-element-c72b0ca { padding: 1rem !important; }

  /* 14.2b « Réactivité maximale » : bloc 2-col empilé qui garde 80px de padding latéral → annulé. */
  .elementor-element-103cc5b { padding-inline: 0 !important; }

  /* 14.3 TÉMOIGNAGES — slider [avis_experts] (widget 24c6357), hérité à 61 % → pleine largeur
     + padding latéral du texte retiré + avis actif centré verticalement. Cf. §12.3 / §13.3. */
  .elementor-element-24c6357 { width: 100% !important; max-width: 100% !important; }
  .elementor-element-24c6357 .profi-avis-texte { padding-inline: 0 !important; }
  .elementor-element-24c6357 .profi-avis-container { align-items: center !important; }
}

/* === 15. CONTACT-LOCALISATION (page 76) MOBILE — desktop-first SANS variants V4 ===
   2 sections : hero contact + bloc « formulaire | adresse + horaires ». Tueur = padding-inline
   géant (jusqu'à 240px) + la rangée non empilée. (Pas de carte Google Maps sur cette page.) */
@media screen and (max-width: 767px) {
  /* 15.0 Sections : pleine largeur + padding-inline 1.25rem */
  .elementor-element-0050e4e,   /* hero contact */
  .elementor-element-a86b0e3 {  /* formulaire | adresse+carte */
    width: 100% !important; max-width: 100% !important; padding-inline: 1.25rem !important;
  }

  /* 15.1 Rangée formulaire | adresse+carte → empilée, colonnes pleine largeur */
  .elementor-element-a86b0e3 { flex-direction: column !important; }
  .elementor-element-a86b0e3 > * { width: 100% !important; max-width: 100% !important; }

  /* 15.2 Colonne formulaire : padding interne 48px → 1rem */
  .elementor-element-a9db491 { padding: 1rem !important; }
}