/* ══════════════════════════════════════════════════════════════════
   ASCENCIEL — design system de la refonte (plugin ascenciel-refonte)
   Source : MAQUETTES/gabarit-01-fiche-programme.html, vue client.
   Toutes les classes sont préfixées asc- et tout est confiné à .asc-page :
   rien ne fuit sur les pages Elementor existantes.
   Contrastes (sur blanc) : --asc-turq-texte #1F7A80 5,06:1 · --asc-encre 13,9:1 ·
   --asc-texte #415674 7,4:1 · --asc-texte-doux #5A6B85 5,3:1. --asc-turq #2A9CA4 = décor seulement.
   Polices : Raleway + Nunito Sans sont déjà chargées par Elementor (kit), on ne les recharge pas.
   ══════════════════════════════════════════════════════════════════ */
.asc-page{
  --asc-turq:#2A9CA4; --asc-turq-texte:#1F7A80; --asc-turq-clair:#78BABE;
  --asc-turq-pale:#F0FEFF; --asc-turq-brume:#DCF2F4;
  --asc-or:#DBCB6E; --asc-or-fonce:#C4B252;
  --asc-encre:#262D3D; --asc-texte:#415674; --asc-texte-doux:#5A6B85; --asc-trait:#E1EFF1; --asc-blanc:#fff;
  --asc-t1:clamp(1.9rem,3.2vw,2.6rem); --asc-t2:clamp(1.45rem,2.4vw,1.9rem);
  --asc-t3:1.15rem; --asc-t4:1rem; --asc-t5:.875rem; --asc-t6:.75rem;
  --asc-e1:4px; --asc-e2:8px; --asc-e3:16px; --asc-e4:24px; --asc-e5:40px; --asc-e6:64px;
  --asc-r1:6px; --asc-r2:10px; --asc-r3:14px;
  --asc-ombre-carte:0 1px 2px rgba(38,45,61,.04), 0 8px 24px -12px rgba(38,45,61,.14);
  --asc-ombre-flottante:0 2px 4px rgba(38,45,61,.05), 0 20px 48px -18px rgba(38,45,61,.3);
  --asc-max:1400px; --asc-haut:24px;
  font-family:"Nunito Sans",sans-serif; font-size:17px; line-height:1.68; color:var(--asc-texte);
  background:var(--asc-blanc); -webkit-font-smoothing:antialiased; text-align:left;
  overflow-wrap:break-word;
}
.asc-page *,.asc-page *::before,.asc-page *::after{box-sizing:border-box}
html:has(.asc-page){scroll-behavior:smooth;scroll-padding-top:100px}

/* ── Neutralisation du kit Elementor (h1 capitalize, h3/h4 blancs, couleurs de liens) ── */
body .asc-page h1,body .asc-page h2,body .asc-page h3,body .asc-page h4{
  font-family:Raleway,sans-serif; color:var(--asc-encre); line-height:1.16; margin:0 0 .55em;
  letter-spacing:-.015em; text-transform:none; text-decoration:none; font-style:normal; padding:0}
body .asc-page h1{font-size:var(--asc-t1); font-weight:800}
body .asc-page h2{font-size:var(--asc-t2); font-weight:800}
body .asc-page h3{font-size:var(--asc-t3); font-weight:700}
body .asc-page h4{font-size:var(--asc-t4); font-weight:700}
body .asc-page h3.asc-libelle{font-size:var(--asc-t6); letter-spacing:.14em; text-transform:uppercase; font-weight:800; color:var(--asc-turq-texte)}
/* Éléments de base à spécificité minimale (:where) : battent le reset Hello (chargé avant),
   mais jamais les classes des composants. */
:where(.asc-page) p{margin:0 0 1.1em}
:where(.asc-page) a{color:var(--asc-turq-texte); text-decoration:underline; text-underline-offset:2px}
:where(.asc-page) a:hover{color:var(--asc-encre)}
:where(.asc-page) strong,:where(.asc-page) b{font-weight:700; color:var(--asc-encre)}
:where(.asc-page) ul,:where(.asc-page) ol{margin:0 0 1em}
:where(.asc-page) dl,:where(.asc-page) dd{margin:0}
:where(.asc-page) img{max-width:100%; height:auto}
.asc-page :focus-visible{outline:2.5px solid var(--asc-turq-texte); outline-offset:3px; border-radius:3px}
main.asc-page:focus{outline:none}
.asc-page .asc-sr{position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap}
.asc-wrap{max-width:var(--asc-max); margin:0 auto; padding:0 var(--asc-e4)}
.asc-wrap--etroit{max-width:1100px}
.asc-contenu p,.asc-contenu ul.asc-liste{max-width:72ch}

/* ── Boutons ── */
body .asc-page a.asc-btn,body .asc-page button.asc-btn{display:inline-block; background:var(--asc-or); color:var(--asc-encre);
  font-family:Raleway,sans-serif; font-weight:800; font-size:var(--asc-t5); letter-spacing:.05em; text-transform:uppercase;
  padding:15px var(--asc-e4); border-radius:var(--asc-r1); text-decoration:none; border:0; transition:background .2s,transform .2s;
  text-align:center; min-height:48px; line-height:1.3; cursor:pointer}
body .asc-page a.asc-btn:hover,body .asc-page button.asc-btn:hover{background:var(--asc-or-fonce); color:var(--asc-encre); transform:translateY(-1px)}
body .asc-page a.asc-btn--2{background:#fff; color:var(--asc-turq-texte); border:1.5px solid var(--asc-turq-texte)}
body .asc-page a.asc-btn--2:hover{background:var(--asc-turq-pale); color:var(--asc-turq-texte)}
body .asc-page a.asc-btn--petit{padding:12px var(--asc-e3); font-size:var(--asc-t6); min-height:44px}

/* ── Zone haute + grille ── */
.asc-zone{background:
  radial-gradient(1200px 520px at 78% 0, rgba(120,186,190,.22), transparent 62%),
  linear-gradient(180deg,#fff 0, var(--asc-turq-pale) 300px, var(--asc-turq-pale) 470px, #fff 720px)}
.asc-ariane{font-size:var(--asc-t5); color:var(--asc-texte-doux); padding:var(--asc-e4) 0 var(--asc-e3)}
.asc-ariane ol{list-style:none; display:flex; flex-wrap:wrap; gap:var(--asc-e2); margin:0; padding:0}
.asc-ariane li{margin:0}
.asc-ariane li:not(:last-child)::after{content:"›"; margin-left:var(--asc-e2); opacity:.55}
body .asc-page .asc-ariane a{color:var(--asc-texte-doux)}
.asc-principal{display:grid; grid-template-columns:170px minmax(0,1fr) 330px; column-gap:36px; align-items:start; padding-bottom:var(--asc-e5)}
.asc-principal > .asc-ariane{grid-column:2; grid-row:1}
.asc-principal > .asc-entete{grid-column:2; grid-row:2}
.asc-principal > .asc-contenu{grid-column:2; grid-row:3; padding-top:var(--asc-e5)}
.asc-principal > .asc-sommaire{grid-column:1; grid-row:3; position:sticky; top:calc(var(--asc-haut) + var(--asc-e3)); padding-top:var(--asc-e5)}
.asc-principal > .asc-rail{grid-column:3; grid-row:1 / span 3; position:sticky; top:calc(var(--asc-haut) + var(--asc-e3));
  max-height:calc(100vh - var(--asc-haut) - var(--asc-e5)); overflow-y:auto; overscroll-behavior:contain; padding:0 4px 8px}
/* page sans rail ni sommaire (pages éditoriales, hubs) */
.asc-simple .asc-ariane{padding-top:var(--asc-e4)}
.asc-simple .asc-entete{padding-bottom:var(--asc-e5)}

.asc-etiquette{display:inline-block; background:var(--asc-turq-texte); color:#fff; font-family:Raleway,sans-serif; font-weight:800;
  font-size:var(--asc-t6); letter-spacing:.12em; text-transform:uppercase; padding:var(--asc-e2) var(--asc-e3);
  border-radius:var(--asc-r1); margin-bottom:var(--asc-e3); line-height:1.4}
body .asc-page a.asc-etiquette{color:#fff; text-decoration:none}
body .asc-page .asc-accroche{font-size:var(--asc-t3); line-height:1.6; margin-top:.7em; max-width:60ch; color:var(--asc-encre)}
.asc-sous-accroche{max-width:68ch}
.asc-faits{display:grid; grid-template-columns:repeat(auto-fit,minmax(225px,1fr)); gap:1px; margin-top:var(--asc-e5);
  background:var(--asc-trait); border:1px solid var(--asc-trait); border-radius:var(--asc-r3); overflow:hidden}
.asc-faits > div{background:rgba(255,255,255,.94); padding:var(--asc-e3) 18px}
.asc-faits dt{font-family:Raleway,sans-serif; font-weight:800; font-size:var(--asc-t6); letter-spacing:.11em;
  text-transform:uppercase; color:var(--asc-turq-texte); margin-bottom:var(--asc-e1)}
.asc-faits dd{font-weight:700; color:var(--asc-encre); font-size:var(--asc-t4); line-height:1.35}

/* 4 items : 2 × 2 dans la colonne de la fiche, 4 colonnes sur les pages larges, 1 colonne en mobile (jamais d'orphelin) */
.asc-reassurance{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--asc-e3) var(--asc-e4); align-items:center;
  margin-top:var(--asc-e4); padding:var(--asc-e3) 20px; background:#fff; border:1px solid var(--asc-trait); border-radius:var(--asc-r3)}
.asc-reassurance > div{display:flex; align-items:center; gap:10px; font-size:var(--asc-t5); line-height:1.4}
@media (min-width:1024px){ .asc-simple .asc-reassurance{grid-template-columns:repeat(4,minmax(0,1fr))} }
.asc-reassurance b{font-family:Raleway,sans-serif; color:var(--asc-encre); font-size:var(--asc-t4); display:block; line-height:1.2}
.asc-sceau{width:38px; height:38px; border-radius:50%; background:var(--asc-turq-pale); color:var(--asc-turq-texte);
  display:grid; place-items:center; font-weight:800; font-family:Raleway,sans-serif; font-size:var(--asc-t5); flex:none}

/* ── Sommaire ── */
.asc-sommaire p{font-family:Raleway,sans-serif; font-weight:800; font-size:var(--asc-t6); letter-spacing:.14em;
  text-transform:uppercase; color:var(--asc-texte-doux); margin-bottom:12px}
body .asc-page .asc-sommaire a{display:block; font-size:var(--asc-t5); padding:9px 0 9px var(--asc-e3); text-decoration:none;
  color:var(--asc-texte); border-left:2px solid var(--asc-trait); line-height:1.35}
body .asc-page .asc-sommaire a:hover{color:var(--asc-turq-texte); border-left-color:var(--asc-turq-clair)}
body .asc-page .asc-sommaire a[aria-current]{color:var(--asc-turq-texte); border-left-color:var(--asc-turq-texte); font-weight:700}
.asc-sommaire-mobile{display:none; border:1px solid var(--asc-trait); border-radius:var(--asc-r3); margin-bottom:var(--asc-e4); background:#fff}
.asc-sommaire-mobile summary{padding:var(--asc-e3); font-family:Raleway,sans-serif; font-weight:800; cursor:pointer; min-height:48px; color:var(--asc-encre)}
body .asc-page .asc-sommaire-mobile a{display:block; padding:10px var(--asc-e3); text-decoration:none; color:var(--asc-texte); border-top:1px solid var(--asc-trait)}

/* ── Rail devis ── */
.asc-devis{background:#fff; border-radius:var(--asc-r3); box-shadow:var(--asc-ombre-flottante); margin-top:var(--asc-e3); border:1px solid var(--asc-trait)}
.asc-prix{padding:var(--asc-e4) var(--asc-e4) 20px}
.asc-tarif-lib{font-family:Raleway,sans-serif; font-weight:800; font-size:var(--asc-t6); letter-spacing:.12em; text-transform:uppercase; color:var(--asc-texte-doux)}
.asc-tarif{font-family:Raleway,sans-serif; font-weight:900; font-size:2rem; color:var(--asc-encre); line-height:1.1; margin:var(--asc-e2) 0 2px}
.asc-tarif small{font-size:1rem; font-weight:800}
body .asc-page .asc-tarif-note{font-size:var(--asc-t5); line-height:1.5; margin:var(--asc-e3) 0 0; color:var(--asc-texte)}
.asc-compris{margin:var(--asc-e3) 0 0; font-size:var(--asc-t5); border-top:1px solid var(--asc-trait); padding-top:var(--asc-e3)}
.asc-compris summary{font-family:Raleway,sans-serif; font-weight:800; font-size:var(--asc-t6); letter-spacing:.1em; text-transform:uppercase;
  color:var(--asc-turq-texte); cursor:pointer; list-style:none; min-height:32px; display:flex; align-items:center; gap:var(--asc-e2)}
.asc-compris summary::-webkit-details-marker{display:none}
.asc-compris summary::after{content:""; width:7px; height:7px; border-right:2px solid currentColor; border-bottom:2px solid currentColor; transform:rotate(45deg); transition:transform .2s}
.asc-compris[open] summary::after{transform:rotate(-135deg)}
.asc-compris ul{list-style:none; padding:0; margin:var(--asc-e2) 0 0}
.asc-compris li{padding-left:22px; position:relative; margin-bottom:var(--asc-e1); line-height:1.45}
.asc-compris li::before{content:"✓"; position:absolute; left:0; color:var(--asc-turq-texte); font-weight:700}
.asc-actions{padding:20px var(--asc-e4); border-top:1px solid var(--asc-trait); display:grid; gap:10px}
body .asc-page .asc-actions .asc-btn{display:block; width:100%}
body .asc-page .asc-gage{font-size:var(--asc-t5); color:var(--asc-texte-doux); text-align:center; margin:var(--asc-e1) 0 0}
.asc-contact{border-top:1px solid var(--asc-trait); padding:var(--asc-e3) var(--asc-e4); background:var(--asc-turq-pale);
  font-size:var(--asc-t5); line-height:1.45; border-radius:0 0 var(--asc-r3) var(--asc-r3)}
.asc-contact b{display:block; font-family:Raleway,sans-serif}
.asc-contact p{margin:0}

/* ── Sections ── */
.asc-bloc{padding:var(--asc-e5) 0; border-top:1px solid var(--asc-trait); scroll-margin-top:100px}
.asc-contenu > .asc-bloc:first-of-type,.asc-contenu > .asc-sommaire-mobile + .asc-bloc{border-top:0; padding-top:0}
/* pages simples : le 1er bloc suit la zone d'en-tête teintée, il lui faut un espace (la fiche, elle, a son padding de grille) */
.asc-contenu-page > .asc-bloc:first-of-type{padding-top:var(--asc-e5)}
.asc-bloc--doux{background:var(--asc-turq-pale); border-radius:var(--asc-r3); padding:var(--asc-e5) 34px; border-top:0; margin:var(--asc-e5) 0}
.asc-intro{max-width:72ch}
ul.asc-liste{list-style:none; padding:0; margin:0 0 1em}
ul.asc-liste li{position:relative; padding-left:30px; margin-bottom:11px}
ul.asc-liste li::before{content:""; position:absolute; left:2px; top:.58em; width:11px; height:11px;
  border-top:2px solid var(--asc-turq-texte); border-right:2px solid var(--asc-turq-texte); transform:rotate(45deg)}
ol.asc-objectifs{list-style:none; padding:0; margin:0 0 1em; counter-reset:asc-obj; display:grid; gap:12px}
ol.asc-objectifs li{counter-increment:asc-obj; position:relative; padding:14px 18px 14px 58px; background:#fff;
  border:1px solid var(--asc-trait); border-radius:var(--asc-r2); color:var(--asc-encre); font-weight:600; max-width:72ch}
ol.asc-objectifs li::before{content:counter(asc-obj); position:absolute; left:16px; top:12px; width:28px; height:28px; border-radius:50%;
  background:var(--asc-turq-texte); color:#fff; font-family:Raleway,sans-serif; font-weight:800; font-size:var(--asc-t5); display:grid; place-items:center}
.asc-paire{display:grid; grid-template-columns:1fr 1fr; gap:20px; align-items:stretch}
.asc-grille3{display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:18px}
.asc-grille2{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px}
.asc-carte{background:#fff; border:1px solid var(--asc-trait); border-radius:var(--asc-r3); padding:var(--asc-e4); box-shadow:var(--asc-ombre-carte)}
.asc-carte > :last-child{margin-bottom:0}
.asc-carte ul.asc-liste li{margin-bottom:8px}
.asc-carte--accent{border-top:3px solid var(--asc-turq-texte)}
.asc-marge-haut{margin-top:22px}
.asc-petit{font-size:var(--asc-t5); color:var(--asc-texte-doux)}

.asc-etapes{display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:18px; margin-top:var(--asc-e2); padding:0; list-style:none}
.asc-etape{background:#fff; border:1px solid var(--asc-trait); border-radius:var(--asc-r3); padding:22px; margin:0}
.asc-etape .asc-n{font-family:Raleway,sans-serif; font-weight:800; font-size:15px; font-variant-numeric:lining-nums tabular-nums;
  line-height:1; color:#fff; background:var(--asc-turq-texte); width:32px; height:32px; border-radius:50%; display:grid; place-items:center; margin-bottom:12px}
body .asc-page .asc-etape h3{font-size:var(--asc-t4); margin-bottom:.4em}
body .asc-page .asc-etape p{font-size:var(--asc-t5); margin:0}
.asc-etape .asc-quand{display:block; margin-bottom:8px; font-size:var(--asc-t6); font-weight:800; letter-spacing:.08em; text-transform:uppercase; color:var(--asc-turq-texte)}

.asc-module{border:1px solid var(--asc-trait); border-radius:var(--asc-r3); margin-bottom:12px; background:#fff}
.asc-module summary{cursor:pointer; list-style:none; padding:16px var(--asc-e4); display:flex; align-items:center; gap:var(--asc-e3);
  font-family:Raleway,sans-serif; font-weight:800; color:var(--asc-encre); font-size:var(--asc-t4); min-height:48px; border-radius:var(--asc-r3); line-height:1.35}
.asc-module summary::-webkit-details-marker{display:none}
.asc-module summary::after{content:""; margin-left:auto; width:9px; height:9px; flex:none; border-right:2.5px solid var(--asc-turq-texte);
  border-bottom:2.5px solid var(--asc-turq-texte); transform:rotate(45deg); transition:transform .25s}
.asc-module[open] summary::after{transform:rotate(-135deg)}
.asc-module summary:hover{background:var(--asc-turq-pale)}
.asc-module summary:focus-visible{outline-offset:-3px}
.asc-idx{font-size:var(--asc-t6); letter-spacing:.08em; color:var(--asc-turq-texte); flex:none; font-weight:800;
  border:1.5px solid var(--asc-turq-brume); border-radius:var(--asc-r1); padding:5px 9px; white-space:nowrap}
.asc-tag{font-family:"Nunito Sans",sans-serif; font-size:var(--asc-t6); font-weight:700; color:var(--asc-texte-doux);
  background:var(--asc-turq-pale); border-radius:20px; padding:3px 10px; white-space:nowrap}
.asc-module__titre{flex:1 1 auto; min-width:0}
.asc-dedans{padding:2px var(--asc-e4) 18px}
.asc-outils-modules{display:flex; gap:12px; justify-content:flex-end; margin:-6px 0 12px}
body .asc-page button.asc-lien-btn{background:none; border:0; padding:4px 0; color:var(--asc-turq-texte); font:700 var(--asc-t5) "Nunito Sans",sans-serif;
  text-decoration:underline; text-underline-offset:2px; cursor:pointer; min-height:32px; text-transform:none; letter-spacing:0; line-height:1.3}
body .asc-page button.asc-lien-btn:hover{color:var(--asc-encre); background:none}

.asc-modalites{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1px; background:var(--asc-trait); border:1px solid var(--asc-trait);
  border-radius:var(--asc-r3); overflow:hidden}
.asc-modalites > div{background:#fff; padding:14px 18px}
.asc-modalites > div:last-child:nth-child(odd){grid-column:1 / -1}
.asc-modalites dt{font-family:Raleway,sans-serif; font-weight:800; font-size:var(--asc-t6); letter-spacing:.11em; text-transform:uppercase; color:var(--asc-turq-texte); margin-bottom:2px}
.asc-modalites dd{color:var(--asc-encre); line-height:1.5}

.asc-encart{background:#fff; border:1px solid var(--asc-trait); border-left:3px solid var(--asc-or); border-radius:0 var(--asc-r3) var(--asc-r3) 0; padding:var(--asc-e4)}
.asc-encart > :last-child{margin-bottom:0}
.asc-relance{background:var(--asc-encre); border-radius:var(--asc-r3); padding:26px 32px; display:flex; gap:var(--asc-e4);
  align-items:center; justify-content:space-between; flex-wrap:wrap; margin:var(--asc-e2) 0 var(--asc-e4)}
body .asc-page .asc-relance p{color:#fff; font-family:Raleway,sans-serif; font-weight:700; font-size:var(--asc-t3); margin:0; max-width:44ch; line-height:1.4}
.asc-relance small{display:block; color:#C2CEDD; font-family:"Nunito Sans",sans-serif; font-weight:400; font-size:var(--asc-t5); margin-top:var(--asc-e1)}

/* experts */
.asc-experts{display:grid; gap:var(--asc-e4)}
.asc-experts--grille{grid-template-columns:repeat(auto-fill,minmax(min(100%,440px),1fr))}
.asc-expert{display:grid; grid-template-columns:96px minmax(0,1fr); gap:22px; align-items:start}
.asc-experts--seul .asc-expert{grid-template-columns:128px minmax(0,1fr); gap:28px}
.asc-experts--court.asc-experts--grille{grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr))}
.asc-experts--court .asc-expert{align-items:center}
/* cartes placées dans un bloc texte (accueil, « La direction du cabinet ») : espace avant le texte qui suit */
body .asc-page .asc-experts + p{margin-top:var(--asc-e4)}
body .asc-page .asc-experts--court .asc-expert__role{margin-bottom:0}
.asc-experts--grille .asc-expert{background:#fff; border:1px solid var(--asc-trait); border-radius:var(--asc-r3); padding:var(--asc-e4); box-shadow:var(--asc-ombre-carte)}
.asc-portrait{width:96px; height:96px; border-radius:50%; object-fit:cover; background:var(--asc-turq-brume); display:grid; place-items:center;
  font-family:Raleway,sans-serif; font-weight:800; font-size:1.6rem; color:var(--asc-turq-texte); flex:none}
.asc-experts--seul .asc-portrait{width:128px; height:128px; font-size:2rem}
body .asc-page .asc-expert__nom{font-size:var(--asc-t3); margin-bottom:.2em}
body .asc-page .asc-expert__role{font-size:var(--asc-t5); color:var(--asc-turq-texte); font-weight:700; margin-bottom:.8em}
body .asc-page .asc-expert__bio{font-size:var(--asc-t5); line-height:1.6}
body .asc-page .asc-expert__bio p{margin-bottom:.7em}

/* témoignages */
.asc-temoignages{display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr)); gap:20px}
.asc-temoignages figure{margin:0; display:flex; flex-direction:column; background:#fff; border:1px solid var(--asc-trait); border-left:3px solid var(--asc-turq-texte);
  border-radius:0 var(--asc-r3) var(--asc-r3) 0; padding:var(--asc-e4); box-shadow:var(--asc-ombre-carte)}
.asc-temoignages blockquote{margin:0 0 12px; padding:0; border:0; font-size:var(--asc-t4); line-height:1.65; color:var(--asc-encre); font-style:normal}
.asc-temoignages blockquote p{margin:0}
.asc-temoignages figcaption{margin-top:auto; font-size:var(--asc-t5); font-weight:700; color:var(--asc-turq-texte); font-family:Raleway,sans-serif}
.asc-temoignages__nom{color:var(--asc-encre)}
.asc-temoignages__ent{display:block; margin-top:2px; font-weight:400; color:var(--asc-turq-texte)}

/* FAQ */
.asc-faq details{border-bottom:1px solid var(--asc-trait)}
.asc-faq summary{cursor:pointer; list-style:none; padding:18px 40px 18px 0; font-family:Raleway,sans-serif; font-weight:700;
  color:var(--asc-encre); position:relative; font-size:var(--asc-t4); min-height:48px; line-height:1.4}
.asc-faq summary::-webkit-details-marker{display:none}
.asc-faq summary::after{content:""; position:absolute; right:10px; top:24px; width:9px; height:9px;
  border-right:2.5px solid var(--asc-turq-texte); border-bottom:2.5px solid var(--asc-turq-texte); transform:rotate(45deg); transition:transform .25s}
.asc-faq details[open] summary::after{transform:rotate(-135deg)}
.asc-faq .asc-rep{padding:0 40px 18px 0; max-width:72ch}
.asc-faq .asc-rep > :last-child{margin-bottom:0}

/* bloc final + après */
.asc-final{padding:var(--asc-e6) 0; text-align:center;
  background:radial-gradient(720px 320px at 50% 0, rgba(120,186,190,.28), transparent 66%), var(--asc-encre)}
body .asc-page .asc-final h2{color:#fff}
body .asc-page .asc-final p{max-width:58ch; margin:0 auto var(--asc-e4); color:#C2CEDD}
.asc-final__actions{display:flex; gap:12px; justify-content:center; flex-wrap:wrap}
body .asc-page .asc-final a.asc-btn--2{background:transparent; color:#fff; border-color:#fff}
body .asc-page .asc-final a.asc-btn--2:hover{background:rgba(255,255,255,.1); color:#fff}
.asc-apres{padding-top:var(--asc-e6); padding-bottom:var(--asc-e6)}
/* .asc-wrap.x : sinon le « padding:0 … » de .asc-wrap en mobile annule l'espacement vertical */
.asc-wrap.asc-apres{max-width:1258px; padding-top:var(--asc-e6); padding-bottom:var(--asc-e6)}

/* cartes de liens (liens éditoriaux) */
.asc-liees{display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:18px; padding:0; margin:0; list-style:none}
/* 2 ou 4 cartes : pas de carte orpheline (4 colonnes en large, 2 en moyen, 1 en mobile) */
.asc-liees--n2,.asc-liees--n4{grid-template-columns:repeat(2,minmax(0,1fr))}
@media (min-width:1024px){ .asc-liees--n4{grid-template-columns:repeat(4,minmax(0,1fr))} }
.asc-liees li{margin:0}
body .asc-page .asc-liees a{display:block; height:100%; text-decoration:none; background:#fff; border:1px solid var(--asc-trait);
  border-radius:var(--asc-r3); padding:22px; box-shadow:var(--asc-ombre-carte); transition:transform .2s,border-color .2s}
body .asc-page .asc-liees a:hover{transform:translateY(-3px); border-color:var(--asc-turq-clair)}
.asc-liees b{display:block; font-family:Raleway,sans-serif; font-weight:800; color:var(--asc-encre); margin-bottom:var(--asc-e2); font-size:var(--asc-t4)}
.asc-liees span{display:block; font-size:var(--asc-t5); color:var(--asc-texte-doux)}

/* grille de cartes fiches (shortcodes asc_fiches / asc_fiches_toutes) */
.asc-fiches{display:grid; grid-template-columns:repeat(auto-fill,minmax(min(100%,240px),1fr)); gap:18px; padding:0; margin:0 0 var(--asc-e4); list-style:none}
.asc-fiches > li{margin:0}
.asc-fiche-carte{position:relative; height:100%; display:flex; flex-direction:column; gap:8px; background:#fff; border:1px solid var(--asc-trait);
  border-radius:var(--asc-r3); padding:22px; box-shadow:var(--asc-ombre-carte); transition:transform .2s,border-color .2s}
.asc-fiche-carte:hover{transform:translateY(-3px); border-color:var(--asc-turq-clair)}
.asc-fiche-carte:focus-within{border-color:var(--asc-turq-texte)}
body .asc-page .asc-fiche-carte h3{font-size:var(--asc-t4); margin:0; line-height:1.3}
body .asc-page .asc-fiche-carte h3 a{color:var(--asc-encre); text-decoration:none}
body .asc-page .asc-fiche-carte h3 a::after{content:""; position:absolute; inset:0; border-radius:var(--asc-r3)}
body .asc-page .asc-fiche-carte h3 a:focus-visible{outline:none}
.asc-fiche-carte:has(a:focus-visible){outline:2.5px solid var(--asc-turq-texte); outline-offset:3px}
body .asc-page .asc-fiche-carte p{font-size:var(--asc-t5); margin:0; color:var(--asc-texte)}
.asc-fiche-carte__meta{margin-top:auto; padding-top:6px; font-size:var(--asc-t6); font-weight:800; letter-spacing:.06em; text-transform:uppercase; color:var(--asc-turq-texte)}
.asc-catalogue__filtres{display:flex; flex-wrap:wrap; gap:8px; margin:0 0 var(--asc-e4); padding:0; list-style:none}
.asc-catalogue__filtres li{max-width:100%; margin:0}
/* white-space:normal : le style bouton du kit impose nowrap, le libellé le plus long débordait à 375 px */
body .asc-page button.asc-filtre{font:700 var(--asc-t5) "Nunito Sans",sans-serif; background:#fff; color:var(--asc-texte); border:1.5px solid var(--asc-trait);
  border-radius:22px; padding:8px 16px; min-height:44px; cursor:pointer; text-transform:none; letter-spacing:0; line-height:1.2;
  white-space:normal; max-width:100%; text-align:left; overflow-wrap:anywhere}
body .asc-page button.asc-filtre:hover{border-color:var(--asc-turq-texte); color:var(--asc-turq-texte); background:#fff}
body .asc-page button.asc-filtre[aria-pressed="true"]{background:var(--asc-turq-texte); border-color:var(--asc-turq-texte); color:#fff}
.asc-catalogue__groupe[hidden]{display:none}
.asc-catalogue__groupe{margin-bottom:var(--asc-e5)}
.asc-catalogue__tete{display:flex; align-items:baseline; justify-content:space-between; gap:var(--asc-e3); flex-wrap:wrap; margin-bottom:var(--asc-e3)}
body .asc-page .asc-catalogue__tete h2{margin:0}

/* chiffres */
.asc-chiffres{display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:1px; background:var(--asc-trait); border:1px solid var(--asc-trait);
  border-radius:var(--asc-r3); overflow:hidden; margin:0}
.asc-chiffres > div{background:#fff; padding:var(--asc-e4) 20px; text-align:center}
.asc-chiffres dt{font-family:Raleway,sans-serif; font-weight:900; font-size:var(--asc-t2); color:var(--asc-encre); line-height:1.1}
.asc-chiffres dd{font-size:var(--asc-t5); color:var(--asc-texte); margin-top:6px}
.asc-chiffres__source{font-size:var(--asc-t6); color:var(--asc-texte-doux); margin-top:8px}

/* barre mobile */
.asc-barre-mobile{display:none; position:fixed; left:0; right:0; bottom:0; z-index:9990; background:#fff;
  border-top:1px solid var(--asc-trait); box-shadow:0 -6px 24px -10px rgba(38,45,61,.3);
  padding:10px var(--asc-e3) calc(10px + env(safe-area-inset-bottom,0px)); gap:12px; align-items:center}
body .asc-page .asc-barre-mobile p{font-size:var(--asc-t5); line-height:1.3; flex:1; margin:0}
.asc-barre-mobile p b{display:block; font-family:Raleway,sans-serif; color:var(--asc-encre); font-size:var(--asc-t4)}
body .asc-page a.asc-tel{width:48px; height:48px; flex:none; border:1.5px solid var(--asc-turq-texte); border-radius:var(--asc-r1);
  display:grid; place-items:center; color:var(--asc-turq-texte); text-decoration:none}
.asc-tel svg{width:22px; height:22px}

/* surtitre, notes, cartes de modules à la carte */
body .asc-page .asc-surtitre{font-family:Raleway,sans-serif; font-weight:800; font-size:var(--asc-t6); letter-spacing:.14em;
  text-transform:uppercase; color:var(--asc-turq-texte); margin:0 0 8px; line-height:1.4}
.asc-note{margin-top:var(--asc-e3); padding:12px 16px; background:var(--asc-turq-pale); border-radius:var(--asc-r2);
  font-size:var(--asc-t5); line-height:1.55; color:var(--asc-texte); max-width:72ch}
.asc-note > :last-child{margin-bottom:0}
.asc-entete .asc-note{background:rgba(255,255,255,.85); border:1px solid var(--asc-trait)}
.asc-bloc--doux .asc-note{background:#fff}
body .asc-page .asc-carte__meta{display:inline-block; font-size:var(--asc-t6); font-weight:800; letter-spacing:.06em; text-transform:uppercase;
  color:var(--asc-turq-texte); background:var(--asc-turq-pale); border-radius:20px; padding:3px 10px; margin:0 0 10px}
body .asc-page .asc-carte--module h3{font-size:var(--asc-t4); margin-bottom:.4em}
body .asc-page .asc-carte--module h3 a{color:var(--asc-encre)}
body .asc-page .asc-carte--module p{font-size:var(--asc-t5)}
.asc-carte--module ul.asc-liste li{font-size:var(--asc-t5); margin-bottom:6px}
ul.asc-liste--2col{columns:2 260px; column-gap:32px}
ul.asc-liste--2col li{break-inside:avoid}

/* en-tête illustré (hero) : image de fond sous voile clair (contraste AA garanti par le voile, pas par l'image) */
.asc-hero{position:relative; overflow:hidden}
.asc-hero--image{background:var(--asc-turq-pale)}
.asc-hero__fond{position:absolute; inset:0; z-index:0}
.asc-hero__fond img,.asc-hero__fond video{width:100%; height:100%; object-fit:cover; display:block}
/* voile dégradé : ≥ 0,85 de blanc derrière la colonne texte (bornée à 640 px), qui s'efface vers la droite pour laisser
   voir l'image. Fond sombre au pire sous 0,6 de blanc : contraste encre ≥ 5:1 (AA). Plus fort sous 1180 px. */
.asc-hero__fond::after{content:""; position:absolute; inset:0;
  background:linear-gradient(90deg,rgba(255,255,255,.93) 0%,rgba(255,255,255,.88) 48%,rgba(255,255,255,.6) 62%,rgba(255,255,255,.25) 80%,rgba(255,255,255,.15) 100%)}
.asc-hero > .asc-wrap{position:relative; z-index:1}
.asc-hero__grille{display:grid; grid-template-columns:minmax(0,1fr); gap:var(--asc-e5); align-items:center}
.asc-wrap.asc-hero__grille{padding-bottom:var(--asc-e5)}
.asc-hero--image .asc-wrap.asc-hero__grille{min-height:520px; padding-top:var(--asc-e5); padding-bottom:var(--asc-e6)}
.asc-hero--image .asc-hero__texte{max-width:640px}
.asc-hero--illu .asc-hero__grille{grid-template-columns:minmax(0,1.35fr) minmax(0,.65fr)}
.asc-simple .asc-hero__texte .asc-entete{padding-bottom:0}
.asc-hero__illu img{display:block; width:auto; max-width:100%; height:auto; max-height:420px; margin-left:auto; border-radius:var(--asc-r3)}
.asc-hero__actions{display:flex; flex-wrap:wrap; gap:12px; margin-top:var(--asc-e4)}

/* mosaïque du hero d'accueil (demande cliente : les « cinq images » de l'ancienne page) : l'illustration en pilule +
   4 photos décoratives sur 3 colonnes ; sous 920 px, seule l'illustration reste (voir Responsive) */
.asc-hero--collage .asc-hero__grille{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.asc-collage{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); grid-template-rows:repeat(8,44px); gap:12px; width:100%; max-width:560px; margin-left:auto}
.asc-collage__img{position:relative; overflow:hidden; border-radius:var(--asc-r3); box-shadow:0 14px 30px -14px rgba(38,45,61,.35)}
.asc-collage__img img{display:block; width:100%; height:100%; max-height:none; object-fit:cover; margin:0; border-radius:0; transition:transform .8s cubic-bezier(.2,.7,.2,1)}
.asc-collage__img--0{grid-column:1; grid-row:2 / 8; border-radius:999px; box-shadow:none}
.asc-collage__img--1{grid-column:2; grid-row:1 / 5}
.asc-collage__img--2{grid-column:2; grid-row:5 / 9}
.asc-collage__img--3{grid-column:3; grid-row:2 / 5; border-radius:999px}
.asc-collage__img--4{grid-column:3; grid-row:5 / 8}
.asc-collage__img--5{display:none}
.asc-collage__img:hover img{transform:scale(1.06)}

/* en-tête « panneau » (Qui sommes-nous : photo Sainte-Victoire + panneau ASCENCIEL, 2560 × 529) : la photo s'affiche en
   bandeau entier au-dessus du texte, sans voile ni recadrage (sous un texte, le panneau était coupé ou recouvert) ;
   sous 920 px, bandeau 16/9 cadré sur le panneau */
.asc-hero--panneau .asc-hero__fond{position:relative; inset:auto}
.asc-hero--panneau .asc-hero__fond img{height:auto; max-height:420px; object-position:80% 50%}
.asc-hero--panneau .asc-hero__fond::after{display:none}
.asc-hero--panneau .asc-wrap.asc-hero__grille{min-height:0; padding-top:var(--asc-e4); padding-bottom:var(--asc-e5)}
.asc-hero--panneau .asc-hero__texte{max-width:none}

/* logos clients */
/* 20 logos : 4 colonnes (5 rangées), 2 en mobile : aucune ligne incomplète ; logos agrandis (demande cliente) */
.asc-logos{display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; list-style:none; padding:0; margin:0}
.asc-logos li{display:grid; place-items:center; background:#fff; border:1px solid var(--asc-trait); border-radius:var(--asc-r2); padding:18px; min-height:156px; margin:0}
.asc-logos img{max-width:88%; max-height:112px; width:auto; height:auto; object-fit:contain}

/* avis */
.asc-avis{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; list-style:none; padding:0; margin:0}
.asc-avis li{margin:0}
.asc-avis__carte{margin:0; height:100%; background:#fff; border:1px solid var(--asc-trait); border-radius:var(--asc-r3); padding:var(--asc-e4); box-shadow:var(--asc-ombre-carte); display:flex; flex-direction:column; gap:10px}
.asc-etoiles{color:#8A6D00; letter-spacing:2px; font-size:1.05rem; line-height:1}
.asc-avis__carte blockquote{margin:0; padding:0; border:0; font-style:normal; font-size:var(--asc-t5); line-height:1.6; color:var(--asc-texte)}
.asc-avis__carte blockquote p{margin:0}
.asc-avis__carte figcaption{margin-top:auto; font-family:Raleway,sans-serif; font-weight:700; font-size:var(--asc-t5); color:var(--asc-encre)}
body .asc-page .asc-avis__source{margin-top:12px}

/* cartes de liens illustrées */
body .asc-page .asc-liees a.asc-liees--img{padding:0 0 22px; overflow:hidden}
.asc-liees--img > b,.asc-liees--img > span:not(.asc-liees__media){padding:0 22px}
.asc-liees__media{display:block; margin-bottom:14px}
.asc-liees__media img{display:block; width:100%; aspect-ratio:16/9; height:auto; object-fit:cover}

/* texte + image */
.asc-texte-image{display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr); gap:var(--asc-e5); align-items:start}
.asc-texte-image--gauche .asc-texte-image__media{order:-1}
.asc-texte-image--gauche{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr)}
.asc-texte-image__media img{display:block; width:100%; aspect-ratio:4/3; height:auto; max-height:460px; object-fit:cover; border-radius:var(--asc-r3)}
.asc-texte-image__texte > :last-child{margin-bottom:0}

/* page de repli (fiches non encore migrées) */
.asc-wrap.asc-repli-contenu{padding-top:var(--asc-e5); padding-bottom:var(--asc-e6)}
.asc-repli-contenu .elementor{max-width:none}

/* ── Animations (désactivées par « mouvement réduit », voir plus bas) ──
   Entrée du hero en CSS pur, dès le premier affichage. Les blocs plus bas apparaissent au défilement : asc.js leur
   pose data-asc-anim (jamais sur ce qui est déjà à l'écran au chargement), puis .asc-vu quand ils entrent dans la
   fenêtre, et retire les deux à la fin de la transition. Sans JS, rien n'est masqué. */
@keyframes asc-entree-bas{from{opacity:0; transform:translateY(18px)}}
@keyframes asc-entree-droite{from{transform:translateX(36px)}}   /* transform seul : l'illustration (candidat LCP) est peinte tout de suite */
@media (prefers-reduced-motion:no-preference){
  .asc-hero__texte .asc-entete > *,.asc-hero__actions{animation:asc-entree-bas .8s cubic-bezier(.2,.7,.2,1) both}
  .asc-hero__texte .asc-entete > :nth-child(2){animation-delay:.12s}
  .asc-hero__texte .asc-entete > :nth-child(n+3){animation-delay:.24s}
  .asc-hero__actions{animation-delay:.36s}
  .asc-hero__illu{animation:asc-entree-droite 1s cubic-bezier(.2,.7,.2,1) both}
  /* mosaïque : la pilule (LCP) glisse sans fondu ; les photos apparaissent l'une après l'autre, puis la photo ronde
     et celle du bas flottent lentement */
  .asc-hero__illu.asc-collage{animation:none}
  .asc-collage__img--0{animation:asc-entree-droite 1s cubic-bezier(.2,.7,.2,1) both}
  .asc-collage__img--1,.asc-collage__img--2,.asc-collage__img--3,.asc-collage__img--4{animation:asc-entree-bas .9s cubic-bezier(.2,.7,.2,1) both}
  .asc-collage__img--1{animation-delay:.25s}
  .asc-collage__img--2{animation-delay:.45s}
  .asc-collage__img--3{animation:asc-entree-bas .9s cubic-bezier(.2,.7,.2,1) .65s both,asc-flotte 7s ease-in-out 1.6s 6 alternate}
  .asc-collage__img--4{animation:asc-entree-bas .9s cubic-bezier(.2,.7,.2,1) .85s both,asc-flotte 8s ease-in-out 2.6s 6 alternate}
}
@keyframes asc-flotte{to{transform:translateY(-10px)}}
/* .asc-page devant : doit l'emporter sur les transitions propres des cartes (.asc-logos li…) pendant l'apparition */
.asc-page [data-asc-anim]{opacity:0; transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1); transition-delay:var(--asc-delai,0s)}
.asc-page [data-asc-anim="haut"]{transform:translateY(-16px)}
.asc-page [data-asc-anim="bas"]{transform:translateY(26px)}
.asc-page [data-asc-anim="gauche"]{transform:translateX(-36px)}
.asc-page [data-asc-anim="droite"]{transform:translateX(36px)}
.asc-page [data-asc-anim].asc-vu{opacity:1; transform:none}
/* le glissement latéral ne doit pas créer de défilement horizontal ; clip limité à l'animation (il rognerait l'anneau de focus) */
.asc-texte-image:has([data-asc-anim]){overflow-x:clip}
.asc-chiffres dt{font-variant-numeric:lining-nums tabular-nums}

/* cartes de liens : zoom de l'image, voile turquoise, flèche qui glisse au survol */
.asc-liees__media{position:relative; overflow:hidden}
.asc-liees__media img{transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.asc-liees__media::after{content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(42,156,164,0) 35%,rgba(31,122,128,.38) 100%);
  opacity:0; transition:opacity .4s}
/* inline + espace insécable en tête : la flèche ne passe jamais seule à la ligne ; décalage par left (relative), pas transform */
.asc-liees b::after{content:"\00a0→"; display:inline; position:relative; left:-8px; color:var(--asc-turq-texte); opacity:0;
  transition:opacity .3s,left .3s}
body .asc-page .asc-liees a:hover,body .asc-page .asc-liees a:focus-visible{box-shadow:var(--asc-ombre-flottante)}
.asc-liees a:hover .asc-liees__media img,.asc-liees a:focus-visible .asc-liees__media img{transform:scale(1.07)}
.asc-liees a:hover .asc-liees__media::after,.asc-liees a:focus-visible .asc-liees__media::after{opacity:1}
.asc-liees a:hover b,.asc-liees a:focus-visible b{color:var(--asc-turq-texte)}
.asc-liees a:hover b::after,.asc-liees a:focus-visible b::after{opacity:1; left:0}

/* code couleur des 6 domaines (palette de l'ancien site, reprise dans le méga-menu) : liseré + voile coloré sur l'image
   des cartes qui mènent à un domaine, bandeau haut des pages de domaine, groupes et filtres du catalogue. Le texte reste
   en encre sur blanc (le jaune et le rose n'offrent pas de contraste suffisant pour du texte). */
.asc-page [href*="/domaines-dinterventions/management-ressources-humaines/"],.asc-p-hub-management-ressources-humaines,[data-domaine="management-ressources-humaines"]{--asc-dom:#78BABE}
.asc-page [href*="/domaines-dinterventions/developpement-des-competences-humaines/"],.asc-p-hub-developpement-des-competences-humaines,[data-domaine="developpement-des-competences-humaines"]{--asc-dom:#DB5CAD}
.asc-page [href*="/domaines-dinterventions/strategie-performance/"],.asc-p-hub-strategie-performance,[data-domaine="strategie-performance"]{--asc-dom:#87657B}
.asc-page [href*="/domaines-dinterventions/integrer-lintelligence-artificielle/"],.asc-p-hub-integrer-lintelligence-artificielle,[data-domaine="integrer-lintelligence-artificielle"]{--asc-dom:#2A9CA4}
.asc-page [href*="/domaines-dinterventions/qualite-securite-environnement/"],.asc-p-hub-qualite-securite-environnement,[data-domaine="qualite-securite-environnement"]{--asc-dom:#DBCB6E}
.asc-page [href*="/domaines-dinterventions/specificites-of/"],.asc-p-hub-specificites-of,[data-domaine="specificites-of"]{--asc-dom:#FFAAE0}
body .asc-page .asc-liees a[href*="/domaines-dinterventions/"]{border-top:5px solid var(--asc-dom)}
.asc-liees a[href*="/domaines-dinterventions/"] .asc-liees__media::before{content:""; position:absolute; inset:0; z-index:1; background:var(--asc-dom);
  opacity:.55; mix-blend-mode:multiply; transition:opacity .5s}
.asc-liees a[href*="/domaines-dinterventions/"]:hover .asc-liees__media::before,
.asc-liees a[href*="/domaines-dinterventions/"]:focus-visible .asc-liees__media::before{opacity:.12}
.asc-page[class*="asc-p-hub-"] > .asc-zone:first-child{border-top:6px solid var(--asc-dom)}
.asc-catalogue__groupe[data-domaine] .asc-catalogue__tete > h2{border-left:6px solid var(--asc-dom); padding-left:14px}
.asc-filtre[data-domaine]:not([data-domaine=""])::before{content:""; display:inline-block; width:10px; height:10px; border-radius:50%;
  background:var(--asc-dom); margin-right:8px; vertical-align:baseline}

/* logos et étapes : léger soulèvement au survol */
.asc-logos li,.asc-etape{transition:transform .25s,box-shadow .25s,border-color .25s}
.asc-logos li:hover,.asc-etape:hover{transform:translateY(-3px); box-shadow:var(--asc-ombre-carte); border-color:var(--asc-turq-clair)}

/* carrousel d'avis (monté par asc.js à partir de 4 avis ; sans JS, la grille reste) */
.asc-carrousel{position:relative}
.asc-page ul.asc-avis--carrousel{grid-template-columns:none; grid-auto-flow:column; grid-auto-columns:calc((100% - 36px) / 3);
  overflow-x:auto; overscroll-behavior-x:contain; scroll-snap-type:x mandatory; scrollbar-width:none; padding:4px 2px 10px; margin:0 -2px}
.asc-avis--carrousel::-webkit-scrollbar{display:none}
.asc-avis--carrousel > li{scroll-snap-align:start}
.asc-avis--carrousel:focus-visible{outline:2px solid var(--asc-turq-texte); outline-offset:4px; border-radius:var(--asc-r3)}
.asc-carrousel__nav{display:flex; justify-content:flex-end; gap:10px; margin-top:12px}
/* body .asc-page button… : passe devant le style des boutons du kit Elementor (fond or, rectangle) */
body .asc-page button.asc-carrousel__btn{width:44px; height:44px; min-width:0; min-height:0; border-radius:50%; border:1px solid var(--asc-trait);
  background:#fff; color:var(--asc-turq-texte); box-shadow:var(--asc-ombre-carte); display:grid; place-items:center; cursor:pointer;
  padding:0; margin:0; line-height:1; transition:background .2s,color .2s,border-color .2s}
body .asc-page button.asc-carrousel__btn:focus-visible{background:var(--asc-turq-texte); border-color:var(--asc-turq-texte); color:#fff}
/* survol réservé aux pointeurs qui survolent : sur écran tactile, l'état « survol » restait collé après le tap */
@media (hover:hover){
  body .asc-page button.asc-carrousel__btn:hover{background:var(--asc-turq-texte); border-color:var(--asc-turq-texte); color:#fff}
}
body .asc-page button.asc-carrousel__btn:focus-visible{outline:2px solid var(--asc-turq-texte); outline-offset:3px}
.asc-carrousel__btn svg{width:18px; height:18px; display:block}
@media (max-width:920px){ .asc-page ul.asc-avis--carrousel{grid-auto-columns:calc((100% - 18px) / 2)} }
@media (max-width:640px){ .asc-page ul.asc-avis--carrousel{grid-auto-columns:88%} }

/* ── Responsive ── */
@media (max-width:1180px){
  .asc-hero__fond::after{background:linear-gradient(90deg,rgba(255,255,255,.93) 0%,rgba(255,255,255,.88) 65%,rgba(255,255,255,.45) 100%)}
  .asc-principal{grid-template-columns:minmax(0,1fr) 320px; column-gap:var(--asc-e5)}
  .asc-principal > .asc-ariane,.asc-principal > .asc-entete,.asc-principal > .asc-contenu{grid-column:1}
  .asc-principal > .asc-rail{grid-column:2; grid-row:1 / span 3}
  .asc-principal > .asc-sommaire{display:none}
  .asc-sommaire-mobile{display:block}
}
@media (max-width:920px){
  .asc-principal{grid-template-columns:minmax(0,1fr)}
  .asc-principal > .asc-ariane{grid-row:1}
  .asc-principal > .asc-entete{grid-row:2}
  .asc-principal > .asc-rail{grid-column:1; grid-row:3; position:static; max-height:none; overflow:visible; padding:0}
  .asc-principal > .asc-contenu{grid-row:4; padding-top:var(--asc-e4)}
  .asc-barre-mobile{display:flex}
  /* la barre fixe recouvrirait le pied de page Elementor (hors .asc-page) : la réserve est posée sur body */
  body:has(.asc-barre-mobile){padding-bottom:calc(76px + env(safe-area-inset-bottom,0px))}
  .asc-logos{grid-template-columns:repeat(4,minmax(0,1fr))}
  .asc-paire{grid-template-columns:1fr}
  .asc-hero--illu .asc-hero__grille{grid-template-columns:minmax(0,1fr)}
  .asc-hero__illu{max-width:360px}
  .asc-hero__fond::after{background:rgba(255,255,255,.92)}
  .asc-hero--image .asc-wrap.asc-hero__grille{min-height:0; padding-top:0; padding-bottom:var(--asc-e5)}
  .asc-avis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .asc-texte-image,.asc-texte-image--gauche{grid-template-columns:minmax(0,1fr); gap:var(--asc-e4)}
  .asc-texte-image--gauche .asc-texte-image__media{order:0}
  /* mosaïque : seule l'illustration reste, dans le gabarit du hero illustré */
  .asc-hero--collage .asc-hero__grille{grid-template-columns:minmax(0,1fr)}
  .asc-collage{display:block; max-width:360px; margin-left:0}
  .asc-collage__img:not(.asc-collage__img--0){display:none}
  .asc-collage__img--0{border-radius:var(--asc-r3)}
  .asc-collage__img--0 img{height:auto; max-height:420px; object-fit:contain}
  /* panneau : bandeau 16/9 cadré sur le panneau */
  .asc-hero--panneau .asc-hero__fond img{aspect-ratio:16/9; max-height:none; object-position:92% 50%}
  .asc-hero--panneau .asc-wrap.asc-hero__grille{padding-top:var(--asc-e4)}
}
/* hero sans fil d'Ariane (accueil) : le H1 touchait l'en-tête compact sous 1025 px */
@media (max-width:1024px){
  .asc-hero__texte > .asc-entete:first-child{padding-top:var(--asc-e4)}
}
@media (max-width:640px){
  .asc-page{font-size:16px}
  .asc-wrap{padding:0 var(--asc-e3)}
  .asc-modalites{grid-template-columns:1fr}
  .asc-etapes,.asc-temoignages,.asc-grille2,.asc-avis,.asc-liees--n2,.asc-liees--n4{grid-template-columns:1fr}
  .asc-hero__illu{display:none}
  .asc-logos{grid-template-columns:repeat(2,minmax(0,1fr))}
  .asc-reassurance{grid-template-columns:minmax(0,1fr)}
  .asc-expert,.asc-experts--seul .asc-expert{grid-template-columns:1fr; gap:14px}
  .asc-bloc--doux{padding:var(--asc-e4) 18px}
  .asc-contenu-page > .asc-bloc:first-of-type{padding-top:var(--asc-e4)}
  .asc-relance{padding:22px 20px}
  .asc-faits{grid-template-columns:1fr 1fr}
  .asc-faits > div{padding:12px 14px}
  .asc-module summary{padding:14px 16px; flex-wrap:wrap; gap:8px 12px}
  .asc-module summary::after{order:3}
  .asc-tag{order:4}
  .asc-dedans{padding:2px 16px 16px}
  ol.asc-objectifs li{padding-left:52px}
  .asc-faq summary{padding-right:32px}
  .asc-faq .asc-rep{padding-right:0}
}
@media (max-width:400px){
  .asc-faits{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){
  html:has(.asc-page){scroll-behavior:auto}
  .asc-page *,.asc-page *::before,.asc-page *::after{transition:none!important; animation:none!important}
  body .asc-page a.asc-btn:hover,.asc-fiche-carte:hover,body .asc-page .asc-liees a:hover,.asc-logos li:hover,.asc-etape:hover,
  .asc-liees a:hover .asc-liees__media img,.asc-liees a:focus-visible .asc-liees__media img,.asc-collage__img:hover img{transform:none}
  [data-asc-anim]{opacity:1!important; transform:none!important}
}
@media print{
  .asc-sommaire,.asc-sommaire-mobile,.asc-barre-mobile,.asc-final,.asc-relance,.asc-outils-modules{display:none!important}
  [data-asc-anim]{opacity:1!important; transform:none!important}
  .asc-carrousel__nav{display:none!important}
  .asc-page ul.asc-avis--carrousel{grid-auto-flow:row; grid-template-columns:repeat(2,minmax(0,1fr)); overflow:visible}
  .asc-page{font-size:11pt; padding:0!important}
  .asc-zone{background:none}
  .asc-principal{display:block}
  .asc-principal > .asc-rail{position:static; max-height:none; overflow:visible}
  .asc-devis{box-shadow:none; border:1px solid #999}
  .asc-module,.asc-faq details{break-inside:avoid}
}
