/* =====================================================================
   Arve Concept — thème enfant (netdev-theme-gutenberg-child)
   theme.css — fondation : tokens, reset, base, layout pleine largeur.
   Tokens issus de Figma (MCP get_variable_defs). Sections ajoutées au fil du build.
   ===================================================================== */

/* ---------- Fonts self-hostées (jamais Google Fonts runtime) ---------- */
@font-face { font-family:"DM Sans"; font-weight:300; font-style:normal; font-display:swap; src:url(../fonts/dmsans-300.woff2) format("woff2"); }
@font-face { font-family:"DM Sans"; font-weight:400; font-style:normal; font-display:swap; src:url(../fonts/dmsans-400.woff2) format("woff2"); }
@font-face { font-family:"DM Sans"; font-weight:500; font-style:normal; font-display:swap; src:url(../fonts/dmsans-500.woff2) format("woff2"); }
@font-face { font-family:"DM Sans"; font-weight:600; font-style:normal; font-display:swap; src:url(../fonts/dmsans-600.woff2) format("woff2"); }
@font-face { font-family:"DM Sans"; font-weight:700; font-style:normal; font-display:swap; src:url(../fonts/dmsans-700.woff2) format("woff2"); }
@font-face { font-family:"Space Grotesk"; font-weight:400; font-style:normal; font-display:swap; src:url(../fonts/spacegrotesk-400.woff2) format("woff2"); }
@font-face { font-family:"Space Grotesk"; font-weight:500; font-style:normal; font-display:swap; src:url(../fonts/spacegrotesk-500.woff2) format("woff2"); }
@font-face { font-family:"Space Grotesk"; font-weight:700; font-style:normal; font-display:swap; src:url(../fonts/spacegrotesk-700.woff2) format("woff2"); }
@font-face { font-family:"Space Mono"; font-weight:400; font-style:normal; font-display:swap; src:url(../fonts/spacemono-400.woff2) format("woff2"); }
@font-face { font-family:"Space Mono"; font-weight:700; font-style:normal; font-display:swap; src:url(../fonts/spacemono-700.woff2) format("woff2"); }

/* ---------- Tokens ---------- */
:root{
  /* couleurs */
  --c-primary:#007bc1;
  --c-secondary:#004480;
  --c-tertiary:#07b874;
  --c-navy:#241751;
  --c-sunglow:#ffcd2a;
  --c-gray-light:#f1f1f1;
  --c-white:#ffffff;
  --c-text:#241751;
  --c-search-bg:rgba(20,19,19,.1);

  /* typographie */
  --ff-sans:"DM Sans",ui-sans-serif,system-ui,sans-serif;
  --ff-grotesk:"Space Grotesk",ui-sans-serif,system-ui,sans-serif;
  --ff-mono:"Space Mono",ui-monospace,monospace;
  --fs-h1:48px;  --lh-h1:58px;
  --fs-h2:36px;  --lh-h2:46px;
  --fs-h3:28px;  --lh-h3:38px;
  --fs-callout-big:28px;
  --fs-callout:24px;
  --fs-medium:18px;
  --fs-body:16px; --lh-body:26px;
  --fs-small:14px;

  /* espacement (échelle Figma) */
  --sp-xs:16px; --sp-s:20px; --sp-m:32px; --sp-l:40px; --sp-xl:60px; --sp-xxl:80px; --sp-xxxl:100px;
  --gutter:20px;
  --container:1472px;

  /* rayons */
  --radius:18px;
  --radius-pill:360px;
  --shadow-card:0 4px 24px rgba(36,23,81,.08);
  --shadow-header:0 4px 2px rgba(0,0,0,.15);
}

/* ---------- Reset ---------- */
*,*::before,*::after{box-sizing:border-box;}
/* Override reset parent : le parent force body{overflow:clip} (+ html overflow-x:clip) ce qui crée
   un contexte de clip cassant la capture Puppeteer fullPage (contenu re-peint en bas). On rétablit
   overflow:visible sur body (fullPage OK) et on contient l'axe X sur html. (cf. LEARNINGS) */
html{overflow:visible!important;}
body{overflow:visible!important;}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;}
body{
  margin:0;
  width:100%;
  background:var(--c-white);
  color:var(--c-text);
  font-family:var(--ff-sans);
  font-weight:300;
  font-size:var(--fs-body);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}
img,picture,svg,video{display:block;max-width:100%;height:auto;}
a{color:var(--c-primary);text-decoration:none;transition:color .2s ease,opacity .2s ease,background-color .2s ease;}
a:hover{color:var(--c-secondary);}
button{font-family:inherit;cursor:pointer;}
ul{margin:0;padding:0;list-style:none;}
h1,h2,h3,h4,h5,h6,p{margin:0;}
:focus-visible{outline:2px solid var(--c-primary);outline-offset:2px;}

/* ---------- Typographie ---------- */
h1,.ac-h1{font-family:var(--ff-sans);font-weight:600;font-size:var(--fs-h1);line-height:calc(var(--lh-h1)/var(--fs-h1));color:var(--c-navy);}
h2,.ac-h2{font-family:var(--ff-sans);font-weight:300;font-size:var(--fs-h2);line-height:calc(var(--lh-h2)/var(--fs-h2));color:var(--c-navy);}
h3,.ac-h3{font-family:var(--ff-grotesk);font-weight:400;font-size:var(--fs-h3);line-height:calc(var(--lh-h3)/var(--fs-h3));letter-spacing:.04em;color:var(--c-navy);}
p{font-family:var(--ff-sans);font-weight:300;font-size:var(--fs-body);line-height:1.6;letter-spacing:.02em;}
.ac-callout-big{font-family:var(--ff-mono);font-weight:400;font-size:var(--fs-callout-big);line-height:1.36;}
strong,b{font-weight:600;}
/* Helper police (l'arbitraire Tailwind [font-family:...] avec virgules casse sur le CDN Play). */
.ac-ff-grotesk{font-family:var(--ff-grotesk)!important;}
.ac-ff-sans{font-family:var(--ff-sans)!important;}
.ac-ff-mono{font-family:var(--ff-mono)!important;}

/* La Preflight Tailwind étant retirée par le thème parent, border-style reste 'none' :
   l'utilitaire `border` ne pose alors que la largeur (0 visible). On rétablit le style
   solide pour tout bloc portant la classe `border` (cartes bordées des pages services). */
.wp-block-group[class~="border"]{border-style:solid;}

/* ---------- Layout pleine largeur ---------- */
.ac-section{width:100%;}
.ac-container{width:100%;max-width:calc(var(--container) + 2*var(--gutter));margin-inline:auto;padding-inline:var(--gutter);}
.ac-container--narrow{max-width:calc(1080px + 2*var(--gutter));}

/* ---------- Boutons (pill, Space Grotesk LS 10%) ---------- */
/* Système de boutons — calé sur Figma 2206:360 : Space Grotesk 16 / ls 1.6px, radius 360,
   padding 8/16 (borderless 8/12), icône box 24. */
.ac-btn,.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  font-family:var(--ff-grotesk);font-weight:400;font-size:16px;letter-spacing:.1em;
  line-height:1;padding:8px 16px;border-radius:var(--radius-pill);
  border:1px solid transparent;cursor:pointer;text-align:center;white-space:nowrap;
  transition:background-color .2s ease,color .2s ease,border-color .2s ease,opacity .2s ease;
}
.ac-btn svg{width:22px;height:22px;flex:none;}
/* Filled (CTA vert) : vert #07b874 + texte/bordure navy ; hover navy plein + texte blanc */
.ac-btn--green{background:var(--c-tertiary);border-color:var(--c-navy);color:var(--c-navy);}
.ac-btn--green:hover{background:var(--c-secondary);border-color:var(--c-primary);color:var(--c-white);}
/* Bezeled (bouton Contact) : fond primary + bordure secondary + texte blanc ; hover quasi-blanc + texte navy */
.ac-btn--primary{background:var(--c-primary);border-color:var(--c-secondary);color:var(--c-white);}
.ac-btn--primary:hover,.btn:hover{background:#f3f2f7;border-color:var(--c-navy);color:var(--c-navy);}
.ac-btn--filled{background:var(--c-secondary);color:var(--c-white);}
.ac-btn--filled:hover{background:var(--c-navy);color:var(--c-white);}
/* Outlined : bordure secondary + texte secondary ; hover bleu clair + texte navy */
.ac-btn--outline{background:transparent;border-color:var(--c-secondary);color:var(--c-secondary);}
.ac-btn--outline:hover{background:#cce6f4;border-color:var(--c-navy);color:var(--c-navy);}
/* Filtre catalogue (« Filtrer ma recherche ») : pastille bleu clair remplie, texte + bordure bleus (maquette). */
.ac-btn--filter{background:#f1f1f1;border-color:var(--c-primary);color:var(--c-secondary);}
.ac-btn--filter:hover{background:var(--c-secondary);border-color:var(--c-secondary);color:var(--c-white);}
/* Outlined light (sur fond sombre) : bordure + texte blancs ; hover blanc plein + texte navy */
.ac-btn--outline-light{background:transparent;border-color:var(--c-white);color:var(--c-white);}
.ac-btn--outline-light:hover{background:var(--c-white);color:var(--c-navy);}
/* Dépannage express : transparent, texte blanc, icône fusée — pas de bordure (Figma 4055:7196) */
/* Dépannage express : toujours blanc, aucun fond au survol (contrairement aux autres boutons). */
.ac-btn--depannage{background:transparent;border-color:transparent;color:var(--c-white);gap:0;}
.ac-btn--depannage:hover,.ac-btn--depannage:focus-visible{background:transparent;color:var(--c-white);}
/* Swap d'icône animé (fusée) : idle = icône à gauche ; hover = icône à droite + rotée -90°
   (maquette 4055:7196 → 4055:7199). Les deux emplacements se croisent en largeur + opacité →
   transition fluide, largeur de bouton stable (même SVG dans les deux emplacements). */
.ac-depannage__ico{display:inline-flex;align-items:center;justify-content:center;overflow:hidden;flex:none;width:24px;opacity:1;transition:width .28s ease,margin .28s ease,opacity .22s ease,transform .28s ease;}
.ac-depannage__ico svg{width:24px;height:24px;display:block;flex:none;}
.ac-depannage__ico--idle{margin-right:10px;}
.ac-depannage__ico--hover{width:0;margin-left:0;opacity:0;transform:rotate(-90deg);}
.ac-btn--depannage:hover .ac-depannage__ico--idle,.ac-btn--depannage:focus-visible .ac-depannage__ico--idle{width:0;margin-right:0;opacity:0;}
.ac-btn--depannage:hover .ac-depannage__ico--hover,.ac-btn--depannage:focus-visible .ac-depannage__ico--hover{width:24px;margin-left:10px;opacity:1;}
@media (prefers-reduced-motion: reduce){ .ac-depannage__ico{transition:none;} }
/* Borderless (ghost / liens menu) : transparent, padding 8/12 ; hover fond noir 10% */
.ac-btn--ghost{background:transparent;color:var(--c-navy);padding:8px 12px;}
.ac-btn--ghost:hover{background:var(--opacity-black-01,rgba(20,19,19,.1));color:var(--c-navy);}
/* white (bouton hero) : fond clair, bordure primary, texte secondary */
.ac-btn--white{background:var(--c-four,#f1f1f1);border-color:var(--c-primary);color:var(--c-secondary);}
.ac-btn--white:hover{background:var(--c-secondary);border-color:var(--c-secondary);color:var(--c-white);}

/* ---------- Scroll-reveal (GSAP + fallback graceful, cf. LEARNINGS) ---------- */
[data-reveal]{opacity:1;}                 /* défaut lisible sans JS */
[data-reveal].is-armed{opacity:0;}        /* armé par JS uniquement */
[data-reveal].is-visible{opacity:1;}

/* ---------- Accessibilité : mouvement réduit (WCAG 2.3.3) ---------- */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.001ms!important;transition-duration:.001ms!important;scroll-behavior:auto!important;}
  [data-reveal]{opacity:1!important;transform:none!important;}
}

/* skip-link a11y */
.skip-link{position:absolute;left:-9999px;top:0;z-index:1000;background:var(--c-navy);color:#fff;padding:10px 16px;}
.skip-link:focus{left:8px;top:8px;}

/* =====================================================================
   HEADER
   ===================================================================== */
/* ============================================================
   HEADER responsive (mobile-first) — barre commerciale + zone blanche + panneau.
   Breakpoints : base <640 · 640 · 768 · 1024 · 1280 · 1512. Hauteur pilotée par le contenu.
   ============================================================ */
:root{--ac-header-h:160px;} /* hauteur réelle du header, tenue à jour par theme.js (fallback ≈ desktop) */
.ac-header{position:sticky;top:0;z-index:50;--ac-hpad:20px;}
/* Hero plein écran : remplit le viewport moins le header réel, en laissant 20px de marge basse
   (fonctionne quelle que soit la hauteur du header, mobile compris). */
.ac-hero-fill{height:calc(100svh - var(--ac-header-h,160px) - 20px);}
/* Carte info (dégradé bleu) du hero : plafonnée à la hauteur du média moins 40px (comme la maquette). */
.ac-hero-card-max{max-height:calc(100svh - var(--ac-header-h,160px) - 60px);}
/* Variante desktop-only (hero 2 colonnes type « Notre équipe » : hauteurs fixes en mobile/tablette,
   remplissage du viewport seulement ≥1024px). !important pour battre le sm:h-[480px] de Tailwind. */
@media (min-width:1024px){ .ac-hero-fill-lg{height:calc(100svh - var(--ac-header-h,160px) - 20px)!important;} }

/* 1. Barre commerciale (empilée < 1024, ligne ≥ 1024) — hauteur libre (message sur 2 lignes possible). */
.ac-topbar{background:var(--c-navy);}
.ac-topbar__inner{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:8px var(--ac-hpad);}
.ac-topbar__msg{color:#fff;font-family:var(--ff-grotesk);font-size:14px;line-height:1.3;letter-spacing:.02em;margin:0;text-align:center;}
.ac-topbar__cta{font-size:14px;padding-top:4px;padding-bottom:4px;}

/* 2. Zone blanche — < 640 : ligne1 [logo | Menu], ligne2 [recherche pleine largeur]. */
.ac-headbar{background:#fff;position:relative;box-shadow:0 4px 4px 0 rgba(0,0,0,.15);}
.ac-header.is-menu-open .ac-headbar{box-shadow:none;}
.ac-headbar__inner{display:flex;flex-wrap:wrap;align-items:center;gap:12px;padding:10px var(--ac-hpad);}
.ac-logo{order:1;flex:none;display:block;}
.ac-logo__img{height:56px;width:auto;display:block;}
.ac-headbar__fn{display:contents;}
.ac-headbar__row{display:flex;align-items:center;gap:12px;}
.ac-headbar__row--nav{order:2;margin-left:auto;justify-content:flex-end;}
.ac-headbar__row--search{order:3;flex:1 0 100%;}

/* Recherche — apparence constante (gris clair, pilule, texte gauche, icône droite). */
.ac-search{display:flex;align-items:center;gap:8px;flex:1;min-width:0;height:40px;background:var(--c-search-bg);border-radius:var(--radius-pill);padding:0 8px 0 18px;}
.ac-search__input{flex:1;min-width:0;border:0;background:transparent;font-family:var(--ff-grotesk);font-size:15px;letter-spacing:.04em;color:var(--c-navy);outline:none;}
.ac-search__input::placeholder{color:#5b5573;opacity:1;}
.ac-search__btn{flex:none;border:0;background:transparent;color:var(--c-navy);display:flex;align-items:center;justify-content:center;padding:4px;border-radius:50%;cursor:pointer;}
.ac-search__btn:hover{color:var(--c-primary);}

.ac-headbar__catalogue{flex:none;font-size:15px;white-space:nowrap;display:none;}
.ac-headbar__contact{flex:none;font-size:16px;display:none;}

/* Bouton Menu / Fermer (vrai <button>, mêmes dimensions/fond/bordure/radius dans les 2 états). */
.ac-menu-toggle{flex:none;display:inline-flex;align-items:center;justify-content:center;gap:8px;height:40px;padding:0 16px;border-radius:var(--radius-pill);background:var(--c-primary);border:1px solid var(--c-secondary);color:#fff;font-family:var(--ff-grotesk);font-size:16px;letter-spacing:.1em;cursor:pointer;transition:background-color .2s ease,color .2s ease,border-color .2s ease;}
.ac-menu-toggle:hover{background:#f3f2f7;border-color:var(--c-navy);color:var(--c-navy);}
.ac-menu-toggle__ico{display:inline-flex;align-items:center;justify-content:center;}
.ac-menu-toggle__ico svg{display:block;width:24px;height:24px;}
.ac-menu-toggle__ico--close{display:none;}
.ac-menu-toggle[aria-expanded="true"] .ac-menu-toggle__ico--open{display:none;}
.ac-menu-toggle[aria-expanded="true"] .ac-menu-toggle__ico--close{display:inline-flex;}
/* Libellé Menu → Fermer via data-attr n'est pas fiable ; on bascule le texte en JS. */

/* Nav horizontale desktop (≥1512 uniquement) */
.ac-nav-desktop{display:none;}
.ac-nav-desktop__list{display:flex;align-items:center;gap:4px;list-style:none;margin:0;padding:0;}
.ac-nav-desktop__link{font-family:var(--ff-grotesk);font-size:16px;letter-spacing:.1em;color:var(--c-navy);padding:8px 12px;border-radius:var(--radius-pill);display:inline-block;text-decoration:none;white-space:nowrap;}
.ac-nav-desktop__link:not(.is-current):hover{background:var(--opacity-black-01,rgba(20,19,19,.1));color:var(--c-navy);}
.ac-nav-desktop__link.is-current{color:var(--c-primary);border-radius:0;border-bottom:1px solid var(--c-primary);cursor:default;}

/* 3. Panneau de navigation dépliant (dégradé de marque) */
.ac-menu-panel{position:fixed;left:0;right:0;top:var(--ac-header-h);bottom:0;z-index:45;overflow-y:auto;-webkit-overflow-scrolling:touch;background:radial-gradient(60% 55% at 50% 45%,var(--c-primary) 0%,#0962a5 30%,#124989 52%,#1b306d 74%,var(--c-navy) 100%);}
.ac-menu-panel[hidden]{display:none;}
.ac-menu-panel__circuit{display:none;position:absolute;top:50%;right:0;transform:translateY(-50%);pointer-events:none;z-index:0;}
.ac-menu-panel__circuit svg{display:block;width:396px;height:auto;}
.ac-menu-panel__inner{position:relative;z-index:1;min-height:100%;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:32px;padding:48px var(--ac-hpad);}
.ac-nav-panel__list{display:flex;flex-direction:column;align-items:flex-start;gap:20px;list-style:none;margin:0;padding:0;}
.ac-nav-panel__link{font-family:var(--ff-grotesk);font-size:26px;line-height:1.1;letter-spacing:.02em;color:#fff;text-transform:capitalize;text-decoration:none;}
.ac-nav-panel__link:hover,.ac-nav-panel__link.is-current{color:#fff;opacity:.75;}
.ac-nav-panel__contact{align-self:flex-start;font-size:16px;}

/* Verrou de scroll pendant l'ouverture du panneau (le header reste épinglé via position:sticky). */
html.ac-menu-open,body.ac-menu-open{overflow:hidden!important;height:100%;}

/* ---- ≥ 640px : zone blanche en 2 colonnes (logo | zone fonctionnelle sur 2 lignes) ---- */
@media (min-width:640px){
  .ac-headbar__inner{flex-wrap:nowrap;align-items:stretch;}
  .ac-logo{order:0;align-self:center;}
  .ac-headbar__fn{display:flex;flex-direction:column;justify-content:center;gap:12px;flex:1;min-width:0;order:0;}
  .ac-headbar__row--search{order:0;flex:0 0 auto;width:100%;}
  .ac-headbar__row--nav{order:0;margin-left:0;}
  .ac-headbar__contact{display:inline-flex;}
}

/* ---- ≥ 768px : Catalogue visible (recherche grow + Catalogue), circuit du panneau visible ---- */
@media (min-width:768px){
  .ac-header{--ac-hpad:40px;}
  .ac-logo__img{height:72px;}
  .ac-headbar__catalogue{display:inline-flex;}
  .ac-menu-panel__circuit{display:block;}
}

/* ---- ≥ 1024px : barre commerciale sur une ligne, panneau centré verticalement ---- */
@media (min-width:1024px){
  .ac-logo__img{height:80px;}
  .ac-topbar__inner{flex-direction:row;justify-content:space-between;gap:var(--sp-xl);}
  .ac-topbar__msg{text-align:left;flex:1;font-size:16px;}
  .ac-topbar__cta{font-size:16px;}
  .ac-menu-panel__inner{justify-content:center;}
  .ac-menu-panel__circuit svg{width:460px;}
}

/* ---- ≥ 1280px : zone fonctionnelle plafonnée (~807px) et alignée à droite ---- */
@media (min-width:1280px){
  .ac-headbar__row--search{max-width:807px;margin-left:auto;}
}

/* ---- ≥ 1512px : nav horizontale complète, plus de bouton Menu ni de panneau ---- */
@media (min-width:1512px){
  .ac-menu-toggle{display:none;}
  .ac-nav-desktop{display:block;}
  .ac-headbar__row--nav{gap:4px;}
  .ac-menu-panel{display:none!important;}
}

/* =====================================================================
   HERO
   ===================================================================== */
.ac-hero{padding-top:20px;}
/* Média hero = vidéo plein cadre, hauteur viewport - header (54 topbar + 106 headbar + 20 padding) */
.ac-hero__media{position:relative;width:100%;height:calc(100svh - 180px);min-height:520px;border-radius:18px;overflow:hidden;background:var(--c-navy);display:flex;flex-direction:column;justify-content:flex-end;padding:20px;}
.ac-hero__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border:0;z-index:0;}
/* Vidéo YouTube en fond « cover » : iframe surdimensionnée + centrée (recadre le chrome YT :
   titre, chaîne, recommandations). pointer-events:none → aucune interaction/UI YouTube. */
.ac-hero__video{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:max(100%,177.78svh);height:max(100%,56.25vw);border:0;z-index:0;pointer-events:none;}
/* Hero pages internes (4079:6011) : image plein cadre, ratio maquette (pas plein viewport) */
.ac-hero--page .ac-hero__media{height:auto;aspect-ratio:1472/741;min-height:0;}
/* Carte bleue translucide (icône + titre + bouton) — pas de dégradé ni overlay sombre */
.ac-hero__card{position:relative;z-index:2;display:flex;flex-direction:column;gap:32px;align-items:flex-start;width:522px;max-width:100%;padding:clamp(32px,5vw,100px);background:rgba(0,123,193,.4);border-radius:18px;}
.ac-hero__icon{display:inline-flex;color:#fff;width:60px;height:24px;align-items:center;}
.ac-hero__icon svg{width:23px;height:60px;transform:rotate(-90deg);}
.ac-hero__title{color:#fff;font-family:var(--ff-sans);font-size:48px;line-height:58px;font-weight:400;margin:0;}
.ac-hero__brand{font-weight:600;display:block;}
.ac-hero__cta{align-self:flex-start;}
/* Placeholder vidéo (tant que l'ID YouTube n'est pas renseigné) */
.ac-hero__placeholder{position:absolute;z-index:1;right:24px;top:24px;max-width:46%;display:flex;align-items:center;gap:12px;background:rgba(36,23,81,.78);color:#fff;border-radius:12px;padding:14px 18px;font-family:var(--ff-grotesk);font-size:14px;line-height:1.4;}
.ac-hero__placeholder code{background:rgba(255,255,255,.18);padding:1px 6px;border-radius:5px;font-size:12px;}
.ac-hero__mute{position:absolute;right:24px;bottom:24px;z-index:3;background:none;border:0;color:#fff;width:38px;height:38px;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;}
.ac-hero__mute svg{width:30px;height:22px;display:block;}
.ac-hero__mute .ac-hero__mute-on{display:none;}
.ac-hero__mute.is-unmuted{background:none;}
.ac-hero__mute.is-unmuted .ac-hero__mute-off{display:none;}
.ac-hero__mute.is-unmuted .ac-hero__mute-on{display:block;}
.ac-hero__intro{position:relative;margin:20px;border-radius:18px;background:radial-gradient(50% 50% at 50% 50%,var(--c-primary) 0%,var(--c-navy) 76.44%);overflow:hidden;}
.ac-hero__intro-inner{position:relative;display:flex;gap:clamp(40px,8vw,140px);align-items:flex-start;padding:84px var(--gutter) 84px clamp(24px,7vw,100px);}
.ac-hero__h1{color:#fff;flex:0 1 460px;margin:0;}
.ac-hero__h1 strong{font-weight:600;}
.ac-hero__intro-text{flex:0 1 400px;}
.ac-hero__intro-text p{color:rgba(255,255,255,.92);font-size:15px;line-height:1.62;}
.ac-hero__deco{position:absolute;right:2%;top:50%;transform:translateY(-50%);width:230px;opacity:.18;pointer-events:none;}
.ac-hero__deco svg{width:100%;height:auto;}
.ac-hero__deco svg path{fill:#6b5ca8;}

/* =====================================================================
   TITRE DE SECTION
   ===================================================================== */
.ac-section-title{padding:46px 0 8px;}
.ac-section-title__h{margin:0;}
.ac-section-title--center{text-align:center;}
.ac-section-title--center .ac-section-title__h{margin-inline:auto;max-width:1100px;}

/* =====================================================================
   CTA PRÉ-FOOTER
   ===================================================================== */
.ac-cta{padding:60px 0 70px;}
.ac-cta__inner{position:relative;background:radial-gradient(50% 50% at 50% 50%,var(--c-primary) 0%,var(--c-navy) 76.44%);border-radius:var(--radius);overflow:hidden;padding:56px clamp(28px,6vw,90px);}
.ac-cta__deco{position:absolute;left:1%;top:50%;transform:translateY(-50%);width:340px;opacity:.4;pointer-events:none;}
.ac-cta__deco svg{width:100%;height:auto;}
.ac-cta__deco svg path{fill:#5a78d8;}
.ac-cta__body{position:relative;z-index:2;max-width:720px;margin-left:auto;text-align:left;}
.ac-cta__title{color:#fff;font-family:var(--ff-sans);font-weight:600;font-size:36px;line-height:1.27;letter-spacing:0;text-transform:none;margin:0 0 14px;}
.ac-cta__text{color:rgba(255,255,255,.9);font-size:15px;line-height:1.6;margin:0 0 22px;}

/* =====================================================================
   FOOTER (bloc bleu ; barre netdev-footer = plugin, exclue)
   ===================================================================== */
.ac-footer{position:relative;overflow:hidden;background:radial-gradient(60% 130% at 50% 50%,var(--c-navy) 0%,#1b306d 25%,#124989 50%,#0962a5 75%,var(--c-primary) 100%);color:#fff;border-radius:18px 18px 0 0;margin-left:20px;margin-right:20px;}
.ac-footer__deco{position:absolute;left:2%;top:50%;transform:translateY(-50%);width:300px;opacity:.22;pointer-events:none;z-index:1;}
.ac-footer__deco svg{width:100%;height:auto;}
.ac-footer__deco svg path{fill:#7e8fe0;}
.ac-footer__inner{position:relative;z-index:2;display:flex;justify-content:space-between;gap:48px;padding:54px var(--gutter);flex-wrap:wrap;}
.ac-footer__brand{max-width:548px;}
.ac-footer__logo{display:inline-block;margin-bottom:24px;}
.ac-footer__logo img{width:270px;height:auto;}
.ac-footer__tagline{font-family:var(--ff-mono);font-weight:400;font-size:28px;line-height:1.36;color:#fff;margin:0;}
.ac-footer__tagline strong{font-weight:700;}
.ac-footer__contacts{display:flex;flex-direction:column;gap:20px;min-width:330px;width:400px;max-width:100%;}
.ac-footer__contact{display:flex;align-items:center;gap:10px;border:1px solid #fff;border-radius:18px;padding:16px;color:#fff;}
.ac-footer__contact:hover{background:rgba(255,255,255,.08);color:#fff;}
.ac-footer__contact-ico{flex:none;display:flex;align-items:center;justify-content:center;}
.ac-footer__contact-ico svg{display:block;width:30px;height:30px;}
.ac-footer__contact-txt{font-family:var(--ff-sans);font-weight:400;font-size:16px;line-height:26px;letter-spacing:0;}
.netdev-footer {margin: 0 20px 20px 20px;border-radius: 0 0 18px 18px;overflow:hidden;font-family:var(--ff-sans);font-weight:400;font-size:16px;line-height:26px;letter-spacing:0;}

/* =====================================================================
   BLOC SERVICE (texte + photo alternés)
   ===================================================================== */
.ac-svc{padding:34px 0 0;}
.ac-accent{color:var(--c-primary);font-weight:700;}
.ac-brands__title .ac-accent{color:var(--c-primary);}
.ac-svc__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px;align-items:stretch;}
.ac-svc--photo-left .ac-svc__media{order:-1;}
.ac-svc__text{display:flex;flex-direction:column;justify-content:flex-start;padding:90px clamp(24px,3vw,60px) 60px;}
.ac-svc--photo-right .ac-svc__text{padding-left:clamp(24px,5vw,100px);}
.ac-svc--photo-left .ac-svc__text{padding-right:clamp(24px,5vw,100px);}
.ac-svc__title{text-transform:uppercase;margin:0 0 18px;}
.ac-svc__intro{color:var(--c-navy);font-size:var(--fs-body);line-height:1.6;margin:0 0 26px;max-width:540px;}
.ac-svc-list{display:flex;gap:20px;margin:0 0 30px;}
.ac-svc-list__col{display:flex;flex-direction:column;gap:12px;flex:1 1 0;min-width:0;}
.ac-svc-list__item{display:flex;align-items:center;gap:10px;}
.ac-svc-list__ico{flex:none;display:flex;}
.ac-svc-list__ico svg{width:50px;height:50px;}
.ac-svc-list__txt{font-family:var(--ff-sans);font-weight:400;font-size:16px;line-height:26px;color:var(--c-secondary);}
@media (max-width:640px){.ac-svc-list{flex-direction:column;gap:12px;}}
.ac-svc__actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:auto;}
.ac-svc__media{position:relative;border-radius:var(--radius);overflow:hidden;min-height:360px;background:var(--c-gray-light);}
/* Pages internes (ac_split) : rythme vertical calé sur les frames Figma (sections plus hautes,
   plus d'air) — corrige l'écart de hauteur WP < maquette qui décalait le diff. */
.ac-split .ac-svc__media{min-height:520px;}
.ac-split .ac-svc__grid{align-items:center;}
.ac-svc__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}

/* =====================================================================
   CATALOGUE TEASER
   ===================================================================== */
.ac-teaser{padding:34px 0 10px;}
.ac-teaser__grid{display:grid;grid-template-columns:minmax(0,520px) minmax(0,1fr);gap:32px;align-items:stretch;}
.ac-teaser__card{background:var(--c-gray-light);border-radius:var(--radius);padding:clamp(28px,4vw,64px) clamp(24px,3vw,56px);display:flex;flex-direction:column;}
.ac-teaser__title{text-transform:uppercase;margin:0 0 18px;}
.ac-teaser__text{color:var(--c-navy);font-size:15px;line-height:1.6;margin:0 0 26px;}
.ac-teaser__features{display:flex;flex-direction:column;gap:14px;margin:0 0 30px;}
.ac-teaser__features li{display:flex;align-items:center;gap:14px;border:1px solid rgba(36,23,81,.18);border-radius:14px;padding:14px 20px;font-family:var(--ff-grotesk);font-size:15px;color:var(--c-navy);background:#fff;}
.ac-teaser__fico{flex:none;display:flex;color:var(--c-secondary);}
.ac-teaser__cta{align-self:flex-start;margin-top:auto;}
.ac-teaser__carousel-wrap{position:relative;min-width:0;max-width:100%;overflow:hidden;}
.ac-teaser__carousel{overflow:hidden;height:100%;width:100%;max-width:100%;}
.ac-teaser__carousel .swiper-slide{width:300px;height:auto;flex-shrink:0;}
.ac-brands__row .swiper-slide{width:auto;}
.ac-tcard{width:300px;height:auto;background:#fff;border:1px solid #ececf1;border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column;box-shadow:var(--shadow-card);}
.ac-tcard__media{display:block;aspect-ratio:300/220;overflow:hidden;background:#0c1430;}
.ac-tcard__media img{width:100%;height:100%;object-fit:cover;}
.ac-tcard__name{font-family:var(--ff-sans);font-weight:600;font-size:24px;color:var(--c-navy);margin:18px 18px 4px;}
.ac-tcard__model{font-size:14px;color:var(--c-navy);margin:0 18px 12px;}
.ac-tcard__stock{align-self:flex-start;margin:0 18px 14px;background:rgba(4,122,74,.12);color:#047a4a;font-family:var(--ff-grotesk);font-size:13px;padding:5px 12px;border-radius:var(--radius-pill);}
.ac-tcard__btn{margin:auto 18px 18px;background:var(--c-navy);color:#fff;justify-content:space-between;}
.ac-tcard__btn:hover{background:var(--c-secondary);color:#fff;}
.ac-teaser__nav{display:flex;gap:14px;justify-content:center;margin-top:22px;}
.ac-teaser__nav button{width:42px;height:42px;border-radius:50%;border:1px solid rgba(36,23,81,.25);background:#fff;color:var(--c-navy);display:flex;align-items:center;justify-content:center;}
.ac-teaser__nav button:hover{background:var(--c-navy);color:#fff;}

/* =====================================================================
   ÉQUIPE
   ===================================================================== */
.ac-team{padding:50px 0;}
.ac-team__band{position:relative;border-radius:18px;overflow:hidden;aspect-ratio:1432/740;display:flex;align-items:center;justify-content:flex-end;}
.ac-team__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;}
.ac-team__box{position:relative;z-index:2;background:rgba(255,255,255,.97);color:var(--c-navy);width:66%;margin:auto 40px 56px auto;padding:clamp(36px,3.2vw,56px) clamp(32px,3.5vw,64px);border-radius:var(--radius);box-shadow:0 20px 50px rgba(36,23,81,.18);}
.ac-team__title{color:var(--c-navy);margin:0 0 18px;}
.ac-team__text{color:#48425f;font-size:15px;line-height:1.62;margin:0 0 24px;}

/* =====================================================================
   LINKEDIN (placeholder feed)
   ===================================================================== */
.ac-linkedin{padding:30px 0 50px;}
.ac-linkedin__feed{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;min-height:430px;background:#6f7480;border-radius:var(--radius);text-decoration:none;}
.ac-linkedin__label{color:#fff;font-family:var(--ff-sans);font-weight:700;font-size:34px;}
.ac-linkedin__icon{width:64px;height:64px;border-radius:50%;background:#0a66c2;display:flex;align-items:center;justify-content:center;}
.ac-linkedin__icon svg{width:40px;height:40px;}

/* =====================================================================
   MARQUES (multi-marques, 3 carrousels)
   ===================================================================== */
.ac-brands{padding:0;margin-block:clamp(24px,3vw,40px);}
/* Section marques : contenue avec padding responsif (Figma 4055:3143, p-100). */
.ac-brands__box{padding:clamp(28px,6vw,100px);display:flex;flex-direction:column;gap:clamp(40px,6vw,100px);}
.ac-brands__head{display:grid;grid-template-columns:1fr 1fr;gap:32px;align-items:center;margin-bottom:0;}
.ac-brands__title{margin:0;color:var(--c-secondary);}
.ac-brands .ac-brands__text{color:var(--c-navy);font-family:var(--ff-sans);font-weight:400;font-size:16px;line-height:26px;letter-spacing:0;margin:0;align-self:center;}
.ac-brands .ac-brands__text strong{font-weight:700;}
.ac-brands__rows{display:flex;flex-direction:column;gap:clamp(32px,5.3vw,80px);}
/* Marquee CSS : track = logos dupliqués ×2, translate -50% = boucle fluide */
.ac-marquee{overflow:hidden;}
.ac-marquee__track{display:flex;align-items:center;gap:clamp(24px,4.2vw,64px);width:max-content;animation:ac-marquee-l 45s linear infinite;}
.ac-brands__row[data-dir="right"] .ac-marquee__track{animation-name:ac-marquee-r;}
.ac-marquee:hover .ac-marquee__track{animation-play-state:paused;}
@keyframes ac-marquee-l{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes ac-marquee-r{from{transform:translateX(-50%)}to{transform:translateX(0)}}
.ac-brands__slide{flex:none;display:flex;align-items:center;justify-content:center;}
.ac-brands__logo{height:54px;width:auto;max-width:180px;object-fit:contain;}

/* textes Figma cachés/placeholders (présents DOM pour l'audit, hors visuel) */
.ac-seo-text{display:none!important;}

/* =====================================================================
   CALIBRATION HAUTEURS (home) — calé sur les hauteurs de frames Figma
   ===================================================================== */
.ac-hero{padding:0;}
.ac-hero__intro-inner{padding:84px var(--gutter) 67px clamp(24px,7vw,100px);}
.ac-section-title{padding:95px 0 40px;}
.ac-svc{padding-top:60px;}                 /* gap inter-blocs ≈ Figma (min-height = hauteur frame) */
.ac-teaser{padding:90px 0 50px;}
.ac-teaser__card{min-height:620px;}
.ac-team{padding:32px 0 0;}
.ac-linkedin{padding:53px 0 60px;}
.ac-linkedin__feed{min-height:420px;}
.ac-brands{margin-block:60px;}
.ac-brands__head{margin-bottom:0;}
.ac-brands__logo{height:64px;}
.ac-brands__slide{padding-block:14px;}
.ac-cta{padding:150px 0 36px;}
.ac-footer__inner{padding:100px clamp(40px,5vw,90px);}
.ac-footer__contact{padding:16px;}
.ac-footer__tagline{font-size:28px;}

/* =====================================================================
   SURCHARGE RESET PARENT — le reset Meyer du parent (h1..h6{font-size:100%})
   bat mes règles d'élément ; on scope sous .ac-main (spécificité supérieure).
   ===================================================================== */
.ac-main h1{font-family:var(--ff-sans);font-weight:600;font-size:var(--fs-h1);line-height:1.2;}
.ac-main h2{font-family:var(--ff-sans);font-weight:300;font-size:var(--fs-h2);line-height:1.28;}
.ac-main h3{font-family:var(--ff-grotesk);font-weight:400;font-size:var(--fs-h3);line-height:1.36;letter-spacing:.04em;}
.ac-main h4{font-family:var(--ff-sans);font-weight:600;font-size:20px;line-height:1.3;}
.ac-main p{font-family:var(--ff-sans);font-weight:300;font-size:var(--fs-body);line-height:1.6;letter-spacing:.02em;}
.ac-main li{font-family:var(--ff-sans);}
.ac-main .ac-hero__title{color:#fff;line-height:1.2;font-weight:400;}
.ac-main .ac-team__text,.ac-main .ac-svc__intro,.ac-main .ac-teaser__text,.ac-main .ac-cta__text,.ac-main .ac-hero__intro-text p{font-size:15px;}
.ac-cta__title,.ac-svc__title,.ac-teaser__title{font-size:var(--fs-h3);}
.ac-section-title__h,.ac-team__title,.ac-brands__title{font-size:var(--fs-h2);}

/* =====================================================================
   HERO PAGE INTERNE (.ac-phero) + SPLIT
   ===================================================================== */
.ac-phero{position:relative;overflow:hidden;background:linear-gradient(100deg,#1d1450 0%,#241751 42%,#0a4f96 100%);color:#fff;}
.ac-phero__media{position:absolute;inset:0 0 0 42%;z-index:0;}
.ac-phero__img{width:100%;height:100%;object-fit:cover;}
.ac-phero::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#241751 30%,rgba(36,23,81,.65) 50%,rgba(36,23,81,.1) 72%,transparent 86%);z-index:1;}
.ac-phero__inner{position:relative;z-index:2;display:flex;align-items:center;gap:48px;min-height:560px;padding:104px clamp(24px,5vw,100px);}
.ac-phero__text{flex:1 1 56%;max-width:680px;}
.ac-phero__title{color:#fff;font-size:44px;line-height:1.2;margin:0 0 22px;}
.ac-phero__intro{color:rgba(255,255,255,.92);font-size:16px;line-height:1.6;max-width:600px;}
.ac-phero__box{flex:0 0 340px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.25);border-radius:var(--radius);padding:32px;backdrop-filter:blur(4px);}
.ac-phero__box-title{font-family:var(--ff-grotesk);font-size:18px;color:#fff;margin:0 0 14px;}
.ac-phero__box-text{color:rgba(255,255,255,.88);font-size:14px;line-height:1.55;margin:0 0 20px;}
.ac-split .ac-svc__intro p{margin:0 0 14px;}
.ac-split .ac-svc__intro p:last-child{margin-bottom:0;}
.ac-split{padding-top:92px;}

/* =====================================================================
   CATALOGUE (filtres + grille produits)
   ===================================================================== */
.ac-catalogue{padding:50px 0 70px;}
.ac-catalogue__h{font-size:24px;color:var(--c-navy);margin:0 0 18px;}
/* Recherche : barre pleine largeur + bouton Rechercher (rangée 1), filtres dessous (rangée 2). */
.ac-catalogue__filters{display:flex;flex-direction:column;gap:16px;margin-bottom:40px;}
.ac-catalogue__searchrow{display:flex;flex-wrap:wrap;gap:12px;align-items:stretch;width:100%;}
.ac-catalogue__search{flex:1 1 280px;display:flex;flex-direction:row-reverse;align-items:center;gap:10px;background:#fff;border:1px solid #241751;border-radius:var(--radius-pill);padding:12px 20px;color:#241751;}
.ac-catalogue__search-ico{display:inline-flex;flex:0 0 auto;}
.ac-catalogue__search-ico svg{display:block;width:24px;height:24px;}
.ac-catalogue__search input{flex:1;border:0;background:transparent;font-family:var(--ff-grotesk);font-size:16px;letter-spacing:.1em;color:#241751;outline:none;}
.ac-catalogue__search input::placeholder{color:rgba(36,23,81,.45);opacity:1;}
.ac-catalogue__searchbtn{flex:0 0 auto;}
.ac-catalogue__filterrow{display:flex;flex-wrap:wrap;gap:12px;align-items:center;}
.ac-catalogue__filters select{font-family:var(--ff-grotesk);font-size:16px;letter-spacing:.1em;line-height:normal;color:#004480;border:1px solid #241751;border-radius:var(--radius-pill);padding:8px 44px 8px 20px;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'%3E%3Cpath d='M1 1.5 6 6.5 11 1.5' stroke='%23004480' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 20px center;background-size:12px 8px;}
.ac-catalogue__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;}
.ac-catalogue__grid .ac-pcard{width:auto;}
.ac-catalogue__empty{grid-column:1/-1;text-align:center;color:#6b6580;padding:40px;}
.ac-catalogue__more-wrap{display:flex;justify-content:center;margin-top:40px;}
/* carte produit */
.ac-pcard{background:#fff;border:1px solid #ececf1;border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column;box-shadow:var(--shadow-card);}
.ac-pcard__media{display:block;aspect-ratio:4/3;overflow:hidden;background:#0c1430;}
.ac-pcard__media img,.ac-pcard__img{width:100%;height:100%;object-fit:cover;}
.ac-pcard__body{padding:20px;display:flex;flex-direction:column;flex:1;}
.ac-pcard__cat{font-family:var(--ff-grotesk);font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--c-primary);margin-bottom:6px;}
.ac-pcard__title{font-size:19px;margin:0 0 6px;}
.ac-pcard__title a{color:var(--c-navy);}
.ac-pcard__model{font-size:14px;color:#5b6b7c;margin:0 0 10px;min-height:1.1em;}
.ac-pcard__stock{align-self:flex-start;font-size:12px;font-weight:600;color:#1a8049;background:rgba(26,128,73,.12);border-radius:20px;padding:3px 12px;margin-bottom:14px;}
.ac-pcard__cta{align-self:flex-start;margin-top:auto;}
.ac-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}

/* =====================================================================
   CONTACT
   ===================================================================== */
.ac-contact{padding:50px 0 70px;}
.ac-contact__grid{display:grid;grid-template-columns:minmax(0,420px) minmax(0,1fr);gap:48px;align-items:start;}
.ac-contact__h{margin:0 0 16px;}
.ac-contact__lead{color:#48425f;font-size:15px;line-height:1.6;margin:0 0 28px;}
.ac-contact__lead2{color:#48425f;font-size:15px;line-height:1.6;margin:0 0 18px;}
/* Popup succès WPForms */
.ac-popup{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:24px;}
.ac-popup[hidden]{display:none;}
.ac-popup__overlay{position:absolute;inset:0;background:rgba(8,28,56,.55);}
.ac-popup__box{position:relative;z-index:1;background:#fff;border-radius:16px;max-width:460px;width:100%;padding:42px 32px 32px;text-align:center;box-shadow:0 24px 60px rgba(0,0,0,.28);animation:ac-popup-in .25s ease;}
.ac-popup__close{position:absolute;top:14px;right:14px;background:none;border:0;color:#6a7686;cursor:pointer;padding:6px;line-height:0;}
.ac-popup__ico{display:inline-flex;color:#1f9d57;margin-bottom:14px;}
.ac-popup__title{margin:0 0 10px;color:var(--c-navy);font-size:24px;}
.ac-popup__text{margin:0 0 24px;color:#48425f;font-size:15px;line-height:1.6;}
@keyframes ac-popup-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
body.ac-popup-open{overflow:hidden;}
.ac-contact__list{display:flex;flex-direction:column;gap:18px;}
.ac-contact__list li{display:flex;align-items:center;gap:14px;}
.ac-contact__list a{color:var(--c-navy);font-family:var(--ff-grotesk);font-size:16px;}
.ac-contact__list a:hover{color:var(--c-primary);}
.ac-contact__ico{flex:none;width:42px;height:42px;border-radius:50%;background:rgba(0,123,193,.1);color:var(--c-secondary);display:flex;align-items:center;justify-content:center;}
.ac-contact__form{background:var(--c-gray-light);border-radius:var(--radius);padding:clamp(28px,3vw,48px);}
.ac-contact__formtitle{margin:0 0 6px;}
.ac-contact__req{font-size:13px;color:#6b6580;margin:0 0 24px;}

/* WPForms — largeurs pleines (cf. LEARNINGS) */
.ac-contact__form .wpforms-field{width:100%!important;padding:0 0 16px;}
.ac-contact__form .wpforms-field-medium,.ac-contact__form .wpforms-field-large,.ac-contact__form .wpforms-field-small{max-width:100%!important;}
.ac-contact__form input[type=text],.ac-contact__form input[type=email],.ac-contact__form input[type=tel],.ac-contact__form textarea{width:100%;border:1px solid rgba(0,123,193,.45);border-radius:10px;padding:12px 16px;font-family:var(--ff-sans);font-size:15px;color:var(--c-navy);background:#fff;}
.ac-contact__form input:focus,.ac-contact__form textarea:focus{outline:none;border-color:var(--c-primary);box-shadow:0 0 0 2px rgba(0,123,193,.15);}
.ac-contact__form label.wpforms-field-label{font-family:var(--ff-sans);font-weight:400;font-size:16px;color:var(--c-navy);margin-bottom:6px;}
/* Bouton d'envoi — vert (maquette Envoyer, cf. is-style-ac-filled) */
.ac-contact__form button.wpforms-submit,.ac-contact__form .wpforms-submit{background:var(--c-tertiary)!important;color:var(--c-navy)!important;border:1px solid var(--c-navy)!important;border-radius:var(--radius-pill)!important;padding:8px 24px!important;font-family:var(--ff-grotesk)!important;font-size:16px!important;letter-spacing:.1em!important;line-height:1.275!important;cursor:pointer;transition:background-color .2s ease,color .2s ease,border-color .2s ease;}
.ac-contact__form button.wpforms-submit:hover,.ac-contact__form .wpforms-submit:hover{background:#043a6a!important;border-color:var(--c-primary)!important;color:#fff!important;}

/* =====================================================================
   FICHE PRODUIT (single product)
   ===================================================================== */
.ac-product{padding:50px 0 0;}
.ac-product__top{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:48px;align-items:start;margin-bottom:60px;}
.ac-product__media{border-radius:var(--radius);overflow:hidden;background:#0c1430;aspect-ratio:1/1;}
.ac-product__img{width:100%;height:100%;object-fit:cover;}
.ac-product__title{margin:0 0 28px;}
.ac-product__specs{width:100%;border-collapse:collapse;margin-bottom:24px;}
.ac-product__specs th,.ac-product__specs td{text-align:left;padding:12px 0;border-bottom:1px solid #ececf1;font-size:15px;}
.ac-product__specs th{font-family:var(--ff-grotesk);color:#6b6580;font-weight:400;width:40%;}
.ac-product__specs td{color:var(--c-navy);}
.ac-product__stock{display:inline-block;background:rgba(7,184,116,.12);color:#05925c;font-family:var(--ff-grotesk);font-size:13px;padding:6px 14px;border-radius:var(--radius-pill);margin-bottom:20px;}
.ac-product__cta{display:block;text-align:center;}
.ac-product__desc{margin-bottom:50px;}
.ac-product__desc h2{margin:0 0 18px;}
.ac-product__desc-body{color:#48425f;font-size:15px;line-height:1.7;max-width:900px;}
.ac-related{padding:40px 0 0;}
.ac-related__title{text-align:center;margin:0 0 40px;}
.ac-related__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;}

/* =====================================================================
   RESPONSIVE — Phase 6 (overrides desktop → tablette → mobile, mobile-first)
   Les titres scalent via --fs-h1/h2/h3 ; grilles 2-col → 1 ; header → hamburger.
   ===================================================================== */
@media (max-width:1024px){
  :root{ --fs-h1:40px; --fs-h2:31px; --fs-h3:24px; }
  .ac-svc__grid{grid-template-columns:1fr;}
  .ac-svc--photo-left .ac-svc__media{order:0;}
  .ac-svc__text,.ac-svc--photo-right .ac-svc__text,.ac-svc--photo-left .ac-svc__text{padding:48px clamp(20px,4vw,48px);}
  .ac-split .ac-svc__media{min-height:340px;}
  .ac-teaser__grid{grid-template-columns:1fr;}
  .ac-hero__intro-inner{flex-direction:column;gap:24px;padding:56px clamp(24px,5vw,60px);}
  .ac-phero__inner{flex-direction:column;align-items:flex-start;min-height:0;gap:32px;padding:64px clamp(24px,5vw,60px);}
  .ac-phero__box{flex:1 1 auto;width:100%;max-width:520px;}
  .ac-catalogue__grid,.ac-related__grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .ac-team__box{width:auto;margin:auto 24px 32px;}
  .ac-brands__head{grid-template-columns:1fr;gap:16px;}
}
/* Mobile : tout en une colonne, typo & paddings réduits */
@media (max-width:768px){
  :root{ --fs-h1:30px; --fs-h2:25px; --fs-h3:21px; --gutter:16px; }
  .ac-hero__card{width:100%;gap:20px;}
  .ac-hero__media{height:auto;min-height:420px;}
  .ac-hero__placeholder{position:static;max-width:100%;margin-bottom:12px;}
  .ac-contact__grid{grid-template-columns:1fr;}
  .ac-catalogue__grid,.ac-related__grid{grid-template-columns:1fr;}
  .ac-footer__inner{flex-direction:column;padding:48px clamp(18px,5vw,40px);}
  .ac-footer__contacts{min-width:0;width:100%;}
  .ac-team__band{min-height:0;}
  .ac-team__box{width:auto;margin:0;}
}
@media (max-width:480px){
  :root{ --fs-h1:26px; }
  .ac-svc__text{padding:32px 16px;}
  .ac-tcard{width:84vw;max-width:320px;}
  .ac-cta__inner{padding:40px 22px;}
}

/* =====================================================================
   PONT BLOCS GUTENBERG NATIFS — pages construites en blocs core/* + Tailwind.
   Le parent (StyleMode "tailwind") retire wp-block-library : on (re)pose ici le
   strict nécessaire pour que les blocs natifs se comportent comme attendu, sans
   réintroduire toute la lib. Le LAYOUT reste piloté par les utilitaires Tailwind
   (px-/py-/grid/gap…) posés en « Additional CSS class » des blocs.
   ===================================================================== */

/* core/image : pas de marge par défaut (Tailwind gère l'espacement) */
.wp-block-image{margin:0;}
/* Remplissage d'image fiable (évite les variantes arbitraires [&>img] fragiles côté CDN Play).
   .ac-photo = photo de contenu à ratio fixe ; .ac-hero-bg = image de fond de hero. */
.ac-photo > img{width:100%;height:100%;object-fit:cover;display:block;}
.ac-hero-bg > img{width:100%;height:100%;object-fit:cover;object-position:center;display:block;}

/* core/group en grille/flex : neutralise la marge de flux entre enfants directs
   (support "layout") pour laisser gap/space Tailwind faire foi. */
.ac-row > *{margin-block:0 !important;}

/* Boutons natifs (core/button) : reprennent le système .ac-btn via un modifier sur
   le wrapper .wp-block-button (ac-green / ac-primary / ac-outline / ac-outline-light). */
.wp-block-button > .wp-block-button__link{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  font-family:var(--ff-grotesk);font-weight:400;font-size:16px;letter-spacing:.1em;line-height:1;
  padding:13px 24px;border-radius:var(--radius-pill);border:1.5px solid transparent;
  text-align:center;white-space:nowrap;cursor:pointer;
  transition:background-color .2s ease,color .2s ease,border-color .2s ease;
}
.wp-block-button.ac-green > .wp-block-button__link{background:var(--c-tertiary);border-color:var(--c-navy);color:var(--c-navy);}
.wp-block-button.ac-green > .wp-block-button__link:hover{background:var(--c-secondary);border-color:var(--c-primary);color:#fff;}
.wp-block-button.ac-primary > .wp-block-button__link{background:var(--c-primary);border-color:var(--c-secondary);color:#fff;}
.wp-block-button.ac-primary > .wp-block-button__link:hover{background:#f3f2f7;border-color:var(--c-navy);color:var(--c-navy);}
.wp-block-button.ac-outline > .wp-block-button__link{background:transparent;border-color:var(--c-secondary);color:var(--c-secondary);}
.wp-block-button.ac-outline > .wp-block-button__link:hover{background:#cce6f4;border-color:var(--c-navy);color:var(--c-navy);}
.wp-block-button.ac-outline-light > .wp-block-button__link{background:transparent;border-color:#fff;color:#fff;}
.wp-block-button.ac-outline-light > .wp-block-button__link:hover{background:#fff;color:var(--c-navy);}

/* === core/button — variants Arve Concept (Filled / Outlined / Bezeled) + icônes ===
   Base commune maquette : Space Grotesk 16 · interlettrage 10% (1.6px) · interlignage 1.275
   · padding 8/16 · bordure 1px · rayon max (360px). */
.wp-block-button.is-style-ac-filled > .wp-block-button__link,
.wp-block-button.is-style-ac-outlined > .wp-block-button__link,
.wp-block-button.is-style-ac-bezeled > .wp-block-button__link,
.wp-block-button.is-style-ac-white > .wp-block-button__link{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  font-family:var(--ff-grotesk);font-weight:400;font-size:16px;letter-spacing:1.6px;line-height:1.275;
  padding:8px 16px;border-radius:360px;border:1px solid transparent;
  text-decoration:none;white-space:nowrap;cursor:pointer;
  transition:background-color .2s ease,color .2s ease,border-color .2s ease;
}
/* Filled (vert) → hover : fond navy assombri, bordure bleue, texte blanc (Figma 2206:310) */
.wp-block-button.is-style-ac-filled > .wp-block-button__link{background:var(--c-tertiary);border-color:var(--c-navy);color:var(--c-navy);}
.wp-block-button.is-style-ac-filled > .wp-block-button__link:hover{background:#043a6a;border-color:var(--c-primary);color:#fff;}
/* Outlined → hover : fond bleu clair, bordure secondaire, texte navy (Figma 2206:316) */
.wp-block-button.is-style-ac-outlined > .wp-block-button__link{background:transparent;border-color:var(--c-secondary);color:var(--c-secondary);}
.wp-block-button.is-style-ac-outlined > .wp-block-button__link:hover{background:#b3d7ec;border-color:var(--c-secondary);color:var(--c-navy);}
/* Bezeled (bleu) → hover : fond quasi-blanc, bordure secondaire, texte+icône navy (Figma 2206:322) */
.wp-block-button.is-style-ac-bezeled > .wp-block-button__link{background:var(--c-primary);border-color:var(--c-secondary);color:#fff;}
.wp-block-button.is-style-ac-bezeled > .wp-block-button__link:hover{background:#e9e8ee;border-color:var(--c-secondary);color:var(--c-navy);}
/* White (clair) → fond #f1f1f1, bordure primary, texte secondary (Figma 4033:3090) ;
   hover : fond secondary, bordure #f1f1f1, texte blanc (Figma 4033:3093). */
.wp-block-button.is-style-ac-white > .wp-block-button__link{background:var(--c-gray-light);border-color:var(--c-primary);color:var(--c-secondary);}
.wp-block-button.is-style-ac-white > .wp-block-button__link:hover{background:var(--c-secondary);border-color:var(--c-gray-light);color:#fff;}
/* Icône optionnelle : mask-image → prend la couleur du texte (currentColor). */
.wp-block-button.has-ac-icon > .wp-block-button__link::after,
.wp-block-button__link.has-ac-icon::after{
  content:"";flex:none;width:24px;height:24px;background-color:currentColor;
  -webkit-mask:var(--ac-btn-icon) center/contain no-repeat;
          mask:var(--ac-btn-icon) center/contain no-repeat;
}
.has-ac-icon-phone{--ac-btn-icon:url(../img/ic-phone.svg);}
.has-ac-icon-menu{--ac-btn-icon:url(../img/ic-menu.svg);}
.has-ac-icon-menu-close{--ac-btn-icon:url(../img/ic-menu-close.svg);}

/* === Slider produits (bloc netdev-child/product-slider) — cartes conformes maquette (4055:3141) === */
.ac-pslider{display:flex;flex-direction:column;justify-content:center;gap:40px;width:100%;min-width:0;}
.ac-pslider__viewport{width:100%;overflow:hidden;}
.ac-pslider .swiper-wrapper{align-items:stretch;box-sizing:border-box;}
.ac-pslider .ac-scard{height:auto;display:flex;flex-direction:column;gap:32px;box-sizing:border-box;border:0;background:none;box-shadow:none;padding:0;}
/* Accueil : largeur fixe (produit partiel visible). Catalogue : largeur pilotée par Swiper (slidesPerView 1/2/3 → 3 cartes pleine largeur, aucune coupée). */
.ac-pslider--home .ac-scard{width:349px;max-width:82vw;}
/* Catalogue : slider limité à 1127px (maquette) et centré ; gap de 40px géré côté Swiper. */
.ac-pslider--catalogue{max-width:1127px;margin-inline:auto;}
.ac-pslider .ac-scard__media{display:block;height:250px;border-radius:18px;overflow:hidden;}
.ac-pslider .ac-scard__media img{width:100%;height:100%;object-fit:cover;display:block;}
.ac-pslider .ac-scard__body{display:flex;flex-direction:column;gap:32px;padding-inline:40px;}
.ac-pslider .ac-scard__titles{display:flex;flex-direction:column;gap:8px;}
.ac-pslider .ac-scard__name{font-family:var(--ff-sans);font-weight:600;font-size:24px;line-height:34px;letter-spacing:0;color:var(--c-navy);margin:0;}
.ac-pslider .ac-scard__model{font-family:var(--ff-sans);font-weight:400;font-size:16px;line-height:26px;letter-spacing:0;color:var(--c-navy);margin:0;}
.ac-pslider .ac-scard__stock{align-self:flex-start;border:1px solid var(--c-secondary);border-radius:360px;padding:4px 8px;font-family:var(--ff-sans);font-weight:300;font-size:16px;line-height:1.2;letter-spacing:.32px;color:var(--c-secondary);}
/* Fond du badge selon la disponibilité (bordure #004480 conservée). */
.ac-scard__stock--stock{background:rgba(7,184,116,.3);}
.ac-scard__stock--commande{background:rgba(255,205,42,.35);}
.ac-scard__stock--rupture{background:rgba(232,22,22,.16);}
.ac-pslider .ac-scard__cta{display:flex;width:100%;border-radius:18px;overflow:hidden;text-decoration:none;margin-top:auto;}
.ac-pslider .ac-scard__cta-label{flex:1;min-width:0;background:var(--c-navy);color:#fff;height:45px;display:flex;align-items:center;padding-inline:16px;font-family:var(--ff-sans);font-weight:400;font-size:18px;line-height:1.2;}
.ac-pslider .ac-scard__cta-arrow{flex:none;width:45px;height:45px;background:var(--c-tertiary);display:flex;align-items:center;justify-content:center;}
.ac-pslider .ac-scard__cta-arrow svg{width:16px;height:16px;display:block;}
.ac-pslider .ac-scard__cta:hover .ac-scard__cta-label{background:var(--c-tertiary);transition:background-color .2s ease;}
.ac-pslider .ac-scard__cta:hover .ac-scard__cta-arrow{background:var(--c-navy);transition:background-color .2s ease;}
.ac-pslider .ac-scard__cta:hover .ac-scard__cta-arrow svg path{fill:#fff;transition:fill .2s ease;}
.ac-pslider .ac-scard--empty{width:min(100%, 555px);margin:auto;display:flex;align-items:center;justify-content:center;min-height:280px;padding:48px 24px;background:#f1f1f1;border:1px solid #241751;border-radius:var(--radius-card,18px);}
.ac-empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:14px;}
.ac-empty__ico{display:inline-flex;align-items:center;justify-content:center;width:72px;height:72px;border-radius:50%;background:var(--c-secondary);}
.ac-empty__ico svg{width:34px;height:34px;}
.ac-empty__title{font-family:var(--ff-grotesk)!important;font-size:20px!important;line-height:28px!important;font-weight:600!important;color:#241751!important;margin:0!important;}
.ac-empty__text{font-family:var(--ff-sans);font-size:16px;line-height:24px;color:rgba(36,23,81,.6);margin:0;}
.ac-pslider__nav{display:flex;gap:16px;align-items:center;justify-content:center;}
/* Boutons de nav identiques (cercle 62px, flèche navy 30px). État actif = fond vert,
   état désactivé (classe Swiper is-disabled) = fond gris. Prev = flèche miroir. */
.ac-pslider__arrow{width:62px;height:62px;flex:none;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;padding:0;border:0;cursor:pointer;background:var(--c-tertiary);transition:background-color .2s ease,opacity .2s ease;}
.ac-pslider__arrow svg{width:30px;height:30px;display:block;}
.ac-pslider__arrow svg path{fill:var(--c-navy);}
.ac-pslider__arrow--prev{transform:scaleX(-1);}
.ac-pslider__arrow:hover{opacity:.85;}
.ac-pslider__arrow.is-disabled{background:var(--c-gray-light);cursor:default;pointer-events:none;}

/* === Fiche produit === */
/* Galerie : une image à la fois, largeur max 768px (maquette), coins arrondis, flèches 42px. */
.ac-fp-gallery{gap:20px;max-width:768px;width:100%;}
.ac-fp-gallery .swiper-slide{border-radius:18px;overflow:hidden;}
.ac-fp-gallery .swiper-slide img{width:100%;aspect-ratio:768/550;object-fit:cover;display:block;border-radius:18px;}
.ac-fp-gallery .ac-pslider__nav{justify-content:center;}
.ac-fp-gallery .ac-pslider__arrow{width:42px;height:42px;}
.ac-fp-gallery .ac-pslider__arrow svg{width:20px;height:20px;}
/* Texte riche Description / Usage. */
.ac-fp-rte p{margin:0 0 12px;font-weight:300;font-size:16px;line-height:1.6;color:var(--c-navy);}
.ac-fp-rte p:last-child{margin-bottom:0;}
.ac-fp-rte ul,.ac-fp-rte ol{margin:0 0 12px;padding-left:20px;list-style:revert;}
.ac-fp-rte strong{font-weight:600;}
/* Bouton blanc (CTA fiche produit) — équivalent PHP de is-style-ac-white. */
.ac-btn--white{background:var(--c-gray-light);border-color:var(--c-primary);color:var(--c-secondary);}
.ac-btn--white:hover{background:var(--c-secondary);border-color:var(--c-gray-light);color:var(--c-white);}
/* Badge disponibilité : bordure #004480 fixe, fond variable selon l'état. */
.ac-fp-badge{align-self:flex-start;border:1px solid var(--c-secondary);color:var(--c-secondary);border-radius:360px;padding:4px 10px;font-family:var(--ff-sans);font-weight:400;font-size:16px;line-height:1.2;}
.ac-fp-badge--stock{background:rgba(7,184,116,.3);}
.ac-fp-badge--commande{background:rgba(255,205,42,.35);}
.ac-fp-badge--rupture{background:rgba(232,22,22,.16);}
/* CTA fiche produit (« Nous écrire » / téléphone) : padding 20px. */
.ac-btn.ac-fp-cta{padding:20px;}

/* Modale « Nous écrire » (maquette 4094:16399) : récap produit (navy) + formulaire (gris clair). */
.ac-fp-modal{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:24px;}
.ac-fp-modal[hidden]{display:none;}
.ac-fp-modal__overlay{position:absolute;inset:0;background:rgba(0,0,0,.8);}
.ac-fp-modal__box{position:relative;z-index:1;display:flex;gap:24px;width:100%;max-width:1040px;max-height:90vh;animation:ac-popup-in .25s ease;}
/* Récap produit : statique, occupe la hauteur de la modale sans défiler avec le formulaire. */
.ac-fp-modal__recap{flex:1 1 0;min-width:0;overflow:hidden;background:radial-gradient(circle, #007BC1 0%, #241751 65%);border-radius:24px;padding:32px;display:flex;flex-direction:column;gap:24px;color:#fff;}
.ac-fp-modal__media{border-radius:16px;overflow:hidden;aspect-ratio:349/247;flex:none;}
.ac-fp-modal__media img{width:100%;height:100%;object-fit:cover;display:block;}
.ac-fp-modal__name{margin:0;font-family:var(--ff-grotesk)!important;font-weight:700!important;font-size:28px!important;line-height:38px!important;letter-spacing:.04em!important;text-transform:uppercase;color:#fff!important;}
.ac-fp-modal__specs{display:grid;grid-template-columns:1fr 1fr;gap:20px;}
.ac-fp-modal__spec{display:flex;flex-direction:column;gap:6px;}
.ac-fp-modal__spec-label{font-family:var(--ff-sans);font-weight:600;font-size:24px;line-height:34px;color:#fff;}
.ac-fp-modal__spec-val{font-family:var(--ff-sans);font-weight:400;font-size:16px;line-height:26px;color:rgba(255,255,255,.7);}
/* Formulaire : colonne à hauteur bornée, seul le contenu (.ac-fp-modal__scroll) défile. */
.ac-fp-modal__form{position:relative;flex:1 1 0;min-width:0;min-height:0;display:flex;flex-direction:column;background:#f1f1f1;border-radius:24px;padding:40px;}
.ac-fp-modal__close{position:absolute;top:36px;right:26px;z-index:2;}
.ac-fp-modal__scroll{min-height:0;overflow-y:auto;padding-right:4px;}
/* Formulaire WPForms de la modale : gap 8px, labels DM Sans light, hauteurs d'inputs, RGPD centré, bouton vert. */
.ac-fp-modal__form form.wpforms-form,
.ac-fp-modal__form .wpforms-field-container{display:flex;flex-direction:column;gap:8px;}
.ac-fp-modal__form .wpforms-field{width:100%!important;padding:0!important;margin:0!important;}
.ac-fp-modal__form label.wpforms-field-label{display:block;margin:0 0 4px;font-family:var(--ff-sans)!important;font-weight:300!important;font-size:16px!important;letter-spacing:.02em!important;color:var(--c-navy);}
.ac-fp-modal__form .wpforms-field-medium,.ac-fp-modal__form .wpforms-field-large,.ac-fp-modal__form .wpforms-field-small{max-width:100%!important;}
.ac-fp-modal__form input[type=text],.ac-fp-modal__form input[type=email],.ac-fp-modal__form input[type=tel],.ac-fp-modal__form textarea{width:100%;box-sizing:border-box;border:1px solid rgba(0,123,193,.45);border-radius:10px;padding:0 16px;font-family:var(--ff-sans);font-size:16px;color:var(--c-navy);background:#fff;}
.ac-fp-modal__form input[type=text],.ac-fp-modal__form input[type=email],.ac-fp-modal__form input[type=tel]{height:39px!important;}
.ac-fp-modal__form textarea{height:80px!important;min-height:80px!important;padding:10px 16px;resize:vertical;}
.ac-fp-modal__form input:focus,.ac-fp-modal__form textarea:focus{outline:none;border-color:var(--c-primary);box-shadow:0 0 0 2px rgba(0,123,193,.15);}
/* Coche RGPD centrée verticalement avec le texte de consentement. */
.ac-fp-modal__form .wpforms-field-gdpr-checkbox ul{list-style:none;margin:0;padding:0;}
.ac-fp-modal__form .wpforms-field-gdpr-checkbox li{display:flex!important;align-items:center!important;gap:10px;}
.ac-fp-modal__form .wpforms-field-gdpr-checkbox input[type=checkbox]{flex:none;margin:0;width:18px;height:18px;}
.ac-fp-modal__form .wpforms-field-gdpr-checkbox label.wpforms-field-label-inline{margin:0;padding:0;font-family:var(--ff-sans);font-weight:300;font-size:14px;line-height:1.45;color:var(--c-navy);}
/* Bouton Envoyer : style vert du site (.ac-btn--green). */
.ac-fp-modal__form button.wpforms-submit,.ac-fp-modal__form .wpforms-submit{display:inline-flex;align-items:center;justify-content:center;align-self:flex-start;background:var(--c-tertiary)!important;color:var(--c-navy)!important;border:1px solid var(--c-navy)!important;border-radius:var(--radius-pill)!important;padding:8px 24px!important;font-family:var(--ff-grotesk)!important;font-weight:400!important;font-size:16px!important;letter-spacing:.1em!important;line-height:1!important;cursor:pointer;transition:background-color .2s ease,color .2s ease,border-color .2s ease;}
.ac-fp-modal__form button.wpforms-submit:hover,.ac-fp-modal__form .wpforms-submit:hover{background:var(--c-secondary)!important;border-color:var(--c-primary)!important;color:var(--c-white)!important;}
@media (max-width:860px){
  .ac-fp-modal{padding:16px;}
  /* En colonne, c'est la modale entière qui défile : le formulaire reprend sa hauteur naturelle
     (sinon flex:1 1 0 + min-height:0 l'effondre, faute de hauteur de conteneur définie → bug mobile). */
  .ac-fp-modal__box{flex-direction:column;max-height:90vh;overflow-y:auto;}
  .ac-fp-modal__recap{display:none;}
  .ac-fp-modal__form{flex:0 0 auto;min-height:auto;padding:24px;padding-top:56px;}
  .ac-fp-modal__scroll{overflow:visible;min-height:auto;}
}

/* Liste « check » (Gutenberg n'a pas de marqueur custom) — réutilise icon-check.svg */
ul.ac-checklist{list-style:none;margin:0;padding:0;display:grid;gap:14px;}
ul.ac-checklist > li{position:relative;padding-left:36px;font-family:var(--ff-sans);font-weight:400;
  font-size:16px;line-height:1.5;color:var(--c-navy);}
ul.ac-checklist > li::before{content:"";position:absolute;left:0;top:1px;width:24px;height:24px;
  background:url(../img/icon-check.svg) center/contain no-repeat;}

/* Bande CTA pré-footer : engrenage décoratif en filigrane (réutilise deco-gear.svg) */
.ac-cta-band{position:relative;overflow:hidden;}
.ac-cta-band::before{content:"";position:absolute;right:-30px;top:50%;transform:translateY(-50%);
  width:240px;height:240px;background:url(../img/deco-gear.svg) center/contain no-repeat;
  opacity:.14;pointer-events:none;}


/* ===============================
   RESET - WORDPRESS
================================= */
:root :where(.is-layout-flow) > *,
:root :where(.is-layout-constrained) > *,
:root :where(.editor-styles-wrapper) :where(.is-layout-constrained) > *
{
  margin-block-start: 0px !important;
  margin-block-end: 0px !important;
}

figure {
    margin-block-start: 0 !important;
    margin-block-end: 0 !important;
    margin-inline-start: 0 !important;
    margin-inline-end: 0 !important;
}


/* ===============================
   WP FORMS
================================= */
.wpforms-container .wpforms-required-label, .wp-core-ui div.wpforms-container .wpforms-required-label {
   display: none;
}

input.wpforms-field-medium {
   max-height: 39px;
}

textarea#wpforms-67-field_5 {
   height: 115px;
}

.wpforms-field-container div:first-child
{
   padding: 0 !important;
}

div.wpforms-container-full input[type=checkbox]:before, div.wpforms-container-full input[type=checkbox]:after, div.wpforms-container-full input[type=radio]:before, div.wpforms-container-full input[type=radio]:after {
   left: 0 !important;
}

div.wpforms-container-full:not(:empty) {
   margin: 0 auto !important;
}

div#wpforms-confirmation-338 {
   background: transparent;
   border: none;
   padding: 0;
   padding-right: 90px;
}

div#wpforms-confirmation-67 {
   background: transparent;
   border: none;
   padding: 0;
}