/* ============================================================================
   DEAPDATA — feuille de style unique du site
   ----------------------------------------------------------------------------
   Ce fichier remplace les 10 à 19 blocs <style> qui étaient recopiés dans
   chacune des 21 pages. Il a été produit par fusion ordonnée de ces copies :
     - l'ordre relatif des règles de chaque page est conservé à l'identique ;
     - les déclarations redéclarées plus loin par le même sélecteur ont été
       supprimées (la cascade est vérifiée identique, propriété par propriété) ;
     - les pages qui n'avaient reçu qu'une partie des correctifs héritent
       désormais de la même version des composants que les autres.
   Les titres en commentaire ci-dessous sont ceux du code d'origine et
   marquent les couches successives, de la base aux correctifs les plus récents.
   ============================================================================ */

:root{--fd:Georgia,"Times New Roman",serif;--fs:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;--ease:cubic-bezier(.22,.61,.36,1)}
*, *::before, *::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:#fff;color:var(--ink);font-family:var(--fs);font-size:17px;line-height:1.78;font-weight:400;-webkit-font-smoothing:antialiased;font-feature-settings:"liga" 1,"kern" 1}
.wrap{margin:0 auto;padding:0 32px}
img, svg{max-width:100%}
a{color:var(--navy);text-decoration:none;border-bottom:1px solid var(--line-strong);transition:border-color .25s var(--ease),color .25s var(--ease)}
:focus-visible{outline:2px solid var(--orange);outline-offset:4px;border-radius:1px}
h1, h2{font-family:var(--fd);font-weight:400;color:var(--navy);margin:0 0 .42em;line-height:1.1;letter-spacing:-.015em;text-wrap:balance}
h1{font-size:clamp(36px,5.4vw,62px)}
h2{font-size:clamp(27px,3.4vw,40px)}
h3{font-family:var(--fs);font-weight:600;font-size:16.5px;letter-spacing:-.005em;color:var(--navy);margin:0 0 .5em;line-height:1.45}
.compact-section-title{font-family:var(--fs);font-weight:600;font-size:16.5px;letter-spacing:-.005em;color:var(--navy);margin:0 0 .5em;line-height:1.45}
p{margin:0 0 1.2em}
p strong, li strong{font-weight:600;color:var(--ink)}
.lede{font-family:var(--fd);font-size:clamp(19px,2.1vw,23px);font-weight:300}
.eyebrow{display:flex;align-items:center;gap:12px;font-size:11px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--mute);margin:0 0 22px}
.eyebrow::before{content:"";width:26px;height:2px;flex:0 0 auto}

/* logo */
.logo{display:block;height:42px;width:auto}
.lg-navy{fill:var(--navy)}
.lg-or{fill:var(--orange)}
.lg-g1{fill:#9498A8}
.lg-g2{fill:#D3D6DE}
.lg-word{font-family:var(--fs);font-weight:700;font-size:310px}
.lg-tag{font-family:var(--fs);font-weight:600;font-size:62px}

/* en-tête */
.site-header{border-bottom:1px solid var(--line);position:sticky;top:0;z-index:60}
.site-header .wrap{display:flex;align-items:center}
.site-header a.brand{border:0}
.nav{margin-left:auto;display:flex;flex-wrap:wrap;align-items:center}
.nav a{font-size:14px;font-weight:500;letter-spacing:.01em;color:var(--navy);border:0;position:relative;padding:3px 0}
.nav a::after{content:"";position:absolute;left:0;right:100%;bottom:0;height:1px;transition:right .35s var(--ease)}
.nav a:hover::after, .nav a[aria-current="page"]::after{right:0}

/* boutons */
.btn{font-family:var(--fs);border:1px solid var(--navy);transition:all .3s var(--ease)}
.alink{display:inline-flex;align-items:center;gap:9px;font-size:14px;font-weight:600;color:var(--navy);border:0;letter-spacing:.02em}
.alink svg{width:16px;height:16px;transition:transform .3s var(--ease)}
.alink:hover svg{transform:translateX(5px)}
.dark{background:var(--navy);color:#D3D6DE}
.dark h1, .dark h2, .dark h3{color:#fff}
.dark p{color:#D3D6DE}
.dark .eyebrow{color:#9498A8}
.dark a{color:#fff;border-bottom-color:#9498A8}

/* héros */
.hero{padding:120px 0 104px}
.hero .lede{margin-top:26px}
.hero .acts{margin-top:40px;display:flex;gap:14px;flex-wrap:wrap}
.rule{height:1px;background:var(--line);margin:0}

/* grilles */
.grid{display:grid}
.g2{grid-template-columns:repeat(2,1fr)}
.g3{grid-template-columns:repeat(3,1fr)}
.item{padding-top:22px}
.item .n{display:block;font-family:var(--fd);font-size:15px;color:var(--orange);margin-bottom:14px;letter-spacing:.06em}
.item p{font-size:15.5px;margin-bottom:0;line-height:1.7}

/* chiffres */
.stats{display:grid}
.stats>div{padding-top:22px}
.stats .v{font-family:var(--fd);font-weight:300;color:var(--navy);line-height:1;letter-spacing:-.03em;display:block}
.stats .k{font-size:13.5px;color:var(--mute);margin-top:14px;display:block;letter-spacing:.03em;line-height:1.5}

/* carrousel */
.carousel{position:relative}
.cviewport{overflow:hidden}
.ctrack{display:flex;margin:0;padding:0;list-style:none;transition:transform .7s var(--ease)}
.slide{flex:0 0 100%;min-width:100%}
.slide-in{display:grid;grid-template-columns:.85fr 1.15fr;gap:48px;padding-top:34px}
.slide-idx{font-family:var(--fd);font-weight:300;font-size:64px;color:var(--orange);line-height:1;display:block;margin-bottom:18px;letter-spacing:-.02em}
.slide h3{font-family:var(--fd);font-weight:400;font-size:30px;color:var(--navy);line-height:1.2;letter-spacing:-.015em}
.slide p{margin-bottom:1.3em}
.slide .tags{margin-bottom:26px}
.cui{display:flex;align-items:center;gap:22px;margin-top:44px}
.cbtn{border:1px solid var(--line-strong);border-radius:50%;display:grid;place-items:center;cursor:pointer;color:var(--navy);transition:all .3s var(--ease);padding:0}
.cbtn:hover{background:var(--navy);border-color:var(--navy);color:#fff}
.cbtn svg{width:17px;height:17px}
.dots{display:flex;gap:9px;margin-left:6px}
.dot{width:26px;border:0;padding:0;cursor:pointer;transition:background .3s var(--ease)}
.cpos{margin-left:auto;font-family:var(--fd);font-size:15px;color:var(--mute);letter-spacing:.08em}
.cpos b{color:var(--navy);font-weight:400}

/* listes */
ul.clean{list-style:none;padding:0;margin:0 0 1.3em}
ul.clean li{position:relative;padding-left:22px;margin-bottom:11px;color:var(--soft)}
ul.clean li::before{content:"";position:absolute;left:0;top:.78em;width:6px;height:6px}
.dark ul.clean li{color:#D3D6DE}
.tags, .refs, .anchors{display:flex;flex-wrap:wrap;gap:8px;padding:0;margin:0 0 1.3em;list-style:none}
.tags li{font-size:13px;color:var(--soft);border:1px solid var(--line);padding:6px 13px;border-radius:100px;letter-spacing:.02em}
.refs li{font-size:15px;color:var(--navy);border:1px solid var(--line);padding:14px 22px;letter-spacing:.02em;transition:border-color .3s var(--ease)}
.refs li:hover{border-color:var(--line-strong)}
.anchors a{font-size:13px;font-weight:500;color:var(--navy);border:1px solid var(--line);padding:9px 16px;border-radius:100px;letter-spacing:.02em}

/* encadré */
.note{margin:34px 0}
.note p{margin:0;font-family:var(--fd);font-size:19px;line-height:1.6;font-weight:300}
.note .lbl{display:block;font-size:11px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--mute);margin-bottom:12px}
.todo{padding:1px 7px;font-weight:600;font-size:.94em}
.docs{list-style:none;padding:0;margin:26px 0 0}
.docs li{border-bottom:1px solid var(--line);padding:19px 0;display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap;align-items:baseline}
.docs .name{font-family:var(--fd);font-size:19px;color:var(--navy);font-weight:400}
.docs .meta{font-size:14.5px;color:var(--mute)}
.stamp{font-size:11.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--mute)}
.field label{display:block;font-size:12px;font-weight:600;text-transform:uppercase}
.field input, .field textarea, .field select{width:100%;font-family:var(--fs);font-size:16px;color:var(--ink);border-bottom:1px solid var(--line-strong);transition:border-color .3s var(--ease)}
.field input:focus, .field textarea:focus, .field select:focus{outline:none}
.field textarea{resize:vertical}
.hint{font-size:14px;color:var(--mute);max-width:52ch}
.form-required-note{margin:0 0 18px;font-size:14px;color:var(--mute)}
.required-marker{color:var(--orange);font-weight:700;margin-left:3px}

/* appel */
.cta{background:var(--navy);color:#D3D6DE}
.cta .wrap{display:flex;align-items:center;justify-content:space-between;gap:40px;flex-wrap:wrap}
.cta h2{color:#fff;margin-bottom:8px}
.cta p{margin:0;color:#D3D6DE}

/* pied */
.site-footer{padding:76px 0 30px;font-size:15px}
.site-footer .logo{height:38px;margin-bottom:24px}
.site-footer .cols{display:grid;margin-bottom:52px}
.site-footer p{color:#9498A8;font-size:15px}
.site-footer h2{font-family:var(--fs);line-height:1.4;text-wrap:initial;font-size:11px;letter-spacing:.22em;text-transform:uppercase;font-weight:600;margin:0 0 18px}
.site-footer ul{list-style:none;padding:0;margin:0}
.site-footer li{margin-bottom:10px}
.site-footer a{border:0}
.site-footer .legal{border-top:1px solid #9498A8;padding-top:24px;display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;font-size:13px;letter-spacing:.02em}

/* apparition douce */
.rise{opacity:0;transform:translateY(18px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
.rise.seen{opacity:1;transform:none}
@media(max-width:900px){
  .stats{grid-template-columns:repeat(2,1fr)}
  .slide-in{grid-template-columns:1fr;gap:24px}
}
@media(max-width:640px){
  section{padding:64px 0}
  .hero{padding:72px 0 64px}
  .wrap{padding:0 22px}
  .site-header .wrap{min-height:0;padding-top:18px;padding-bottom:18px;gap:16px}
  .nav{margin-left:0;width:100%;gap:20px}
  .grid{gap:36px}
  .logo{height:36px}
  .cpos{display:none}
}
@media(prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
  .rise{opacity:1;transform:none}
  html{scroll-behavior:auto}
}
@media print{
  .site-header, .cta, .btn, .cui{display:none}
  body{font-size:11pt}
  section{padding:14px 0;page-break-inside:avoid}
  .rise{opacity:1;transform:none}
  .slide{min-width:100%}
}
.pagehead{padding:130px 0 0}
.pagehead .eyebrow{margin-bottom:30px}
.ph-grid{display:grid;align-items:end}
.ph-grid h1{margin:0;letter-spacing:-.022em;line-height:1.06}
.ph-side{padding-bottom:8px}
.ph-side .lede{margin:0}
.ph-side .acts{margin-top:30px}
h1 em, h2 em{font-style:italic;font-weight:300;letter-spacing:-.01em}
.ph-foot{display:flex;justify-content:space-between;align-items:baseline;gap:28px;flex-wrap:wrap;border-top:1px solid var(--line);margin-top:62px;padding-top:20px}
.ph-meta{font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--mute)}
.ph-meta b{color:var(--navy);font-weight:600}

/* ================= sommaire de page ================= */
.summary{margin:46px 0 0}
.summary .cap{display:block;font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--mute);margin-bottom:6px}
.index{display:grid;margin:0}
.idx{display:flex;align-items:center;gap:15px;padding:19px 2px 19px 0;border:0;border-top:1px solid var(--line);transition:border-top-color .4s var(--ease)}
.idx-n{font-family:var(--fd);font-size:14px;color:var(--orange);letter-spacing:.08em;flex:0 0 auto;line-height:1}
.idx-t{font-size:14.5px;font-weight:500;color:var(--navy);line-height:1.35;letter-spacing:.005em}
.idx svg{width:15px;height:15px;margin-left:auto;flex:0 0 auto;color:var(--navy);opacity:0;transform:translateX(-7px);transition:opacity .4s var(--ease),transform .4s var(--ease)}
.idx:hover svg{opacity:1;transform:none}

/* ================= boutons affinés ================= */
.btn{font-size:11.5px;font-weight:600;letter-spacing:.17em;text-transform:uppercase}
.acts{display:flex;gap:16px;flex-wrap:wrap;align-items:center}
@media(max-width:900px){
  .index{grid-template-columns:repeat(2,1fr);gap:0 36px}
  .ph-grid{grid-template-columns:1fr;gap:26px}
  .ph-side{padding-bottom:0}
  .ph-side .lede{max-width:56ch}
}
@media(max-width:640px){
  .pagehead{padding-top:74px}
  .index{grid-template-columns:1fr;gap:0}
  .ph-foot{margin-top:40px}
  .btn{padding:16px 28px;letter-spacing:.14em}
}
@media print{
  .summary{display:none}
}
.pagehead + section{padding-top:0}

/* ================= sommaire persistant ================= */
.subnav{position:fixed;left:0;right:0;top:0;z-index:55;border-bottom:1px solid var(--line);transform:translateY(-130%);opacity:0;pointer-events:none;transition:transform .45s var(--ease),opacity .3s var(--ease)}
.subnav.on{transform:none;opacity:1;pointer-events:auto}
.subnav-in{display:flex;align-items:center;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none}
.subnav-in::-webkit-scrollbar{display:none}
.subnav a{display:inline-flex;align-items:baseline;gap:9px;white-space:nowrap;font-weight:500;color:var(--mute);border:0;border-bottom:1px solid transparent;transition:color .3s var(--ease),border-color .3s var(--ease)}
.subnav a:hover{color:var(--navy)}
.subnav .sn-n{font-family:var(--fd);font-size:11.5px;color:var(--orange);letter-spacing:.07em}
.sn-top{margin-left:auto;flex:0 0 auto;border-radius:50%;border:1px solid var(--line-strong);background:transparent;color:var(--navy);display:grid;place-items:center;cursor:pointer;padding:0;transition:background .3s var(--ease),border-color .3s var(--ease),color .3s var(--ease)}
.sn-top:hover{background:var(--navy);border-color:var(--navy);color:#fff}
.sn-top svg{width:15px;height:15px}
[id]{scroll-margin-top:172px}
@media(max-width:640px){
  .subnav-in{height:50px;gap:22px}
  .sn-top{display:none}
  [id]{scroll-margin-top:132px}
}
@media(prefers-reduced-motion:reduce){
  .subnav{transition:none}
}
@media print{
  .subnav{display:none}
}
p{max-width:76ch}
.lede{max-width:64ch}
.ph-side .lede{max-width:52ch}
.ph-grid{grid-template-columns:8fr 4fr;gap:24px 72px}
ul.clean li{max-width:76ch}
.note p{max-width:60ch}
.item p{max-width:none}
.banner img{display:block}
.fig{margin:0 0 56px}
.fig img{display:block;transition:transform 1.4s var(--ease)}
.fig:hover img{transform:scale(1.03)}
.fig figcaption{margin-top:13px;font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--mute)}
@media(max-width:640px){
  .banner img{height:152px}
  .fig{margin-bottom:38px}
}
@media print{
  .banner, .fig{display:none}
}

/* ================= introduction de section : visuel + texte ================= */
.intro{display:grid;grid-template-columns:5fr 7fr;gap:0 48px;align-items:center}
.intro .fig{margin:0}
.intro .head{margin-bottom:0;max-width:none}
.intro .head p{max-width:58ch;margin-bottom:0}
.intro .head p + p{margin-top:1.1em}
@media(max-width:900px){
  .intro{grid-template-columns:1fr;gap:24px;margin-bottom:44px}
  .intro .head p{max-width:none}
}
@media(max-width:640px){
  .intro .fig img{height:170px}
}
.tight-intro{padding:64px 0 0}
.kv{display:grid;gap:26px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:24px 0;margin:0 0 48px}
.kv dt{font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--mute);margin-bottom:8px}
.kv dd{margin:0;font-family:var(--fd);font-size:19px;color:var(--navy);line-height:1.3}
.err h1{font-family:var(--fd);font-weight:300;font-size:clamp(72px,16vw,168px);color:var(--line-strong);line-height:.9;margin-bottom:18px}
.warn{padding:20px 24px;margin:34px 0}
.warn p{margin:0;font-size:16px;max-width:64ch}
.warn .lbl{display:block;font-size:11px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:#182848;margin-bottom:9px}
.res{list-style:none;padding:0;margin:0}
.res li{border-top:1px solid var(--line)}
.res li:last-child{border-bottom:1px solid var(--line)}
.res a{display:grid;grid-template-columns:auto 1fr auto;gap:0 30px;align-items:baseline;padding:32px 0;border:0}
.res a:hover h3{color:var(--navy)}
.res a:hover h2{color:var(--navy)}
.res .r-n{font-family:var(--fd);font-size:15px;color:var(--orange);line-height:1.4}
.res .r-cat{display:block;font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--mute);margin-bottom:11px}
.res h3{margin:0 0 9px;font-family:var(--fd);font-weight:400;font-size:25px;line-height:1.25}
.res h2{margin:0 0 9px;font-family:var(--fd);font-weight:400;font-size:25px;line-height:1.25}
.res p{margin:0;font-size:15.5px;max-width:64ch}
.res svg{width:16px;height:16px;color:var(--navy);opacity:0;transform:translateX(-7px);align-self:center;transition:opacity .4s var(--ease),transform .4s var(--ease)}
.res a:hover svg{opacity:1;transform:none}
code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.88em;padding:2px 6px}
pre{padding:22px 24px;overflow-x:auto;font-size:13.5px;line-height:1.65;margin:0 0 1.4em}
pre code{background:none;padding:0;color:inherit}
@media(max-width:640px){
  .res a{grid-template-columns:1fr;gap:0}
  .res .r-n{display:none}
  .res svg{display:none}
}
@media(max-width:900px){
  .kv{grid-template-columns:repeat(2,1fr)}
  .site-footer .cols{grid-template-columns:1fr 1fr}
}
@media(max-width:640px){
  .kv{grid-template-columns:1fr;gap:18px}
}

/* ================= dimensionnement fluide ================= */
:root{--max:1440px;--gutter:clamp(20px,4.2vw,60px)}
html, body{max-width:100%}
body{overflow-wrap:break-word}
main{overflow-x:clip}
.wrap{padding-left:var(--gutter);padding-right:var(--gutter)}
.narrow{max-width:min(920px,100%)}

/* un .wrap imbriqué ne doit pas rajouter de marge ni de limite */
.wrap .wrap{max-width:none;padding-left:0;padding-right:0}
.wrap .wrap.narrow{max-width:min(920px,100%)}

/* rythme vertical proportionnel à la fenêtre */
section{padding:clamp(46px,6vw,100px) 0}
.pagehead{padding-top:clamp(56px,7.5vw,126px)}
.tight-intro{padding-top:clamp(40px,5vw,64px)}
.cta{padding:clamp(48px,6vw,86px) 0}
.err{padding:clamp(70px,11vw,150px) 0 clamp(60px,9vw,130px)}

/* ================= images : ratio, jamais de hauteur figée ================= */
figure{margin:0}

/* bannières : alignées sur les mêmes marges que le texte */
.banner{max-width:var(--max);margin:0 auto;padding:0 var(--gutter)}
.fig{overflow:hidden;background:var(--tint)}
.fig img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover}
.fig--wide img{aspect-ratio:24/7}

/* ================= grilles réellement adaptatives ================= */
.index{grid-template-columns:repeat(auto-fit,minmax(215px,1fr));gap:0 clamp(24px,3vw,52px)}
.stats{grid-template-columns:repeat(auto-fit,minmax(175px,1fr))}
.kv{grid-template-columns:repeat(auto-fit,minmax(165px,1fr))}
.site-footer .cols{grid-template-columns:repeat(auto-fit,minmax(205px,1fr));gap:clamp(28px,3vw,44px)}
@media(min-width:1200px){
  .g3{grid-template-columns:repeat(3,1fr)}
  .g2{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:1199px) and (min-width:721px){
  .g3, .g2{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:720px){
  .g3, .g2{grid-template-columns:1fr}
  .banner img, .fig--wide img{aspect-ratio:16/7}
  .intro .fig img{aspect-ratio:16/9}
}

/* l'intro image + texte passe en pile plus tôt pour rester lisible */
@media(max-width:980px){
  .intro{grid-template-columns:1fr;gap:clamp(18px,3vw,26px)}
  .ph-grid{grid-template-columns:1fr;gap:24px}
  .ph-side{padding-bottom:0}
  .ph-side .lede{max-width:60ch}
}
@media(min-width:981px){
  .intro{grid-template-columns:minmax(280px,5fr) minmax(0,7fr)}
}

/* symbole seul au-dessus du titre d’accueil */
.ph-title{display:block}
.mark{display:block;width:auto;margin:0 0 clamp(20px,2.4vw,30px)}

/* ========================================================================== PALETTE RESTREINTE — uniquement les quatre couleurs des barres du logo #182848 marine · #9498A8 gris · #D3D6DE gris clair · #F0A020 orange Le blanc reste le fond de page. ====================================================== */
:root{--grey:#9498A8;--grey-light:#D3D6DE;--orange-dark:#F0A020}

/* --- textes : sur fond clair, seul le marine atteint le contraste requis --- */
body, p, li, .lede, .head p, .item p, .res p, .hint, .docs .meta, .stamp, .field .hint, .eyebrow, .ph-meta, .fig figcaption, .summary .cap, .tags li, .refs li, .note .lbl, .warn .lbl, .kv dt{color:var(--navy)}
.ph-meta b, .cpos b{color:var(--navy)}

/* --- l'orange reste réservé au décor et aux repères ordinaux --- */
.eyebrow::before{background:var(--orange)}
ul.clean li::before{background:var(--orange)}
.item .n, .res .r-n, .idx-n, .slide-idx{color:var(--orange)}
.note{border-left-color:var(--orange)}
.dot[aria-selected="true"]{background:var(--orange)}
.subnav a[aria-current="true"]{color:var(--navy);border-bottom-color:var(--orange)}
.nav a::after{background:var(--orange)}
a:hover{border-bottom-color:var(--orange)}
.idx:hover{border-top-color:var(--orange)}
.anchors a:hover{border-color:var(--orange)}
:focus-visible{outline-color:var(--orange)}

/* --- filets et bordures --- */
.rule, .item, .stats>div, .idx, .res li, .docs li, .kv, .ph-foot, .site-header, .tags li, .refs li, .anchors a{border-color:var(--grey-light)}
.field input, .field textarea, .field select{border-bottom-color:var(--grey)}
.field input:focus, .field textarea:focus, .field select:focus{border-bottom-color:var(--orange)}
.cbtn, .sn-top{border-color:var(--grey)}
.dot{background:var(--grey-light)}

/* --- fonds sombres : gris et gris clair y sont parfaitement lisibles --- */
.dark, .cta{background:var(--navy);color:var(--grey-light)}
.dark p, .cta p, .dark ul.clean li{color:var(--grey-light)}
.dark h1, .dark h2, .dark h3, .cta h2{color:#FFFFFF}
.dark .eyebrow, .dark .eyebrow *{color:var(--grey)}
.dark a, .cta a{color:#FFFFFF;border-bottom-color:var(--grey)}
.site-footer{background:var(--navy);color:var(--grey)}
.site-footer p, .site-footer li{color:var(--grey)}
.site-footer h2{color:#FFFFFF}
.site-footer a{color:var(--grey-light)}
.site-footer a:hover{color:var(--orange)}
.site-footer .legal{color:var(--grey);border-top-color:var(--grey)}
.site-footer .lg-navy{fill:#FFFFFF}
.site-footer .lg-g2{fill:var(--grey)}
pre{background:var(--navy);color:var(--grey-light)}
code{background:var(--grey-light);color:var(--navy)}

/* --- boutons --- */
.btn{background:var(--navy);border-color:var(--navy);color:#FFFFFF}
.btn:hover{background:#FFFFFF;color:var(--navy);border-color:var(--navy)}
.btn--out{color:var(--navy);border-color:var(--grey)}
.btn--out:hover{background:var(--navy);color:#FFFFFF;border-color:var(--navy)}
.btn--light{background:#FFFFFF;color:var(--navy);border-color:#FFFFFF}
.btn--light:hover{background:var(--orange);color:var(--navy);border-color:var(--orange)}
.cbtn:hover, .sn-top:hover{background:var(--navy);border-color:var(--navy);color:#FFFFFF}

/* --- encadrés --- */
.todo{background:var(--grey-light);color:var(--navy);border:0;border-bottom:1px dashed var(--orange)}
.warn{background:#FFFFFF;border-left:2px solid var(--orange)}
.warn p, .warn .lbl{color:var(--navy)}
.note p{color:var(--navy)}
.fig, .banner img{background:var(--grey-light)}
::selection{background:var(--navy);color:#FFFFFF}

/* --- symbole d'accueil agrandi --- */
.mark{height:clamp(68px,9vw,112px);margin-bottom:clamp(24px,3vw,36px)}

/* 1. plus aucune transparence : rien ne transparaît sous l'en-tête ni sous le sommaire persistant, quelle que soit la couleur du bloc qui défile dessous */
.site-header{background:#FFFFFF;-webkit-backdrop-filter:none;backdrop-filter:none}
.subnav{background:#FFFFFF;-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:0 1px 0 #D3D6DE}
.subnav.on{border-bottom-color:#D3D6DE}

/* 2. le premier écran ne contient plus que du texte : jamais d'image coupée */
.pagehead{padding-bottom:clamp(40px,4.5vw,64px)}
.pagehead + section, .pagehead + .tight-intro{padding-top:clamp(40px,5vw,68px)}

/* 3. respiration autour des visuels */
.banner{margin-top:clamp(46px,6vw,96px);margin-bottom:clamp(46px,6vw,96px)}
.fig{margin-bottom:0}
.intro{margin-bottom:clamp(34px,4.5vw,60px)}
.intro + .wrap, .intro + div{margin-top:0}
figure + h2, figure + h3, figure + p{margin-top:clamp(28px,3.5vw,44px)}

/* 4. le bandeau d'appel enchaîne proprement après un visuel */
.banner + .cta{margin-top:0}
@media(max-width:720px){
  .banner{margin-top:38px;margin-bottom:38px}
  .banner img{aspect-ratio:16/9}
}

/* ========================================================================== Carrousel d'images ========================================================================== */
.slide--img .fig{margin:0}
.slide--img figcaption{margin-top:16px;display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;align-items:baseline;font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:#182848}
.slide--img figcaption b{font-family:var(--fd);font-size:19px;font-weight:400;letter-spacing:0;text-transform:none;color:#182848}
@media(max-width:720px){
  .slide--img .fig img{aspect-ratio:16/9}
}

/* ========================================================================== Ouvertures alternées et sommaire de page en tête ========================================================================== */
.hero-split--left .hs-media{grid-column:1;grid-row:1}
.hero-split--left .hs-text{grid-column:2;grid-row:1;padding-inline:clamp(28px,4vw,68px) max(var(--gutter),calc((100vw - var(--max))/2 + var(--gutter)))}
.hs-meta{display:flex;gap:clamp(20px,3vw,36px);flex-wrap:wrap;border-top:1px solid #D3D6DE}

/* sommaire de page : bandeau horizontal sous l'en-tête */
.pagenav{border-bottom:1px solid #D3D6DE;background:#FFFFFF}
.pagenav .cap{display:none}
.pagenav .index{display:flex;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none}
.pagenav .index::-webkit-scrollbar{display:none}
.pagenav .idx{border-top:0;border-bottom:2px solid transparent;white-space:nowrap;align-items:center}
.pagenav .idx:hover{border-top-color:transparent;border-bottom-color:#F0A020}
.pagenav .idx svg{display:none}
@media(max-width:900px){
  .hero-split--left .hs-media, .hero-split--left .hs-text{grid-column:auto;grid-row:auto}
  .hero-split--left .hs-text{padding-inline:var(--gutter)}
}

/* ouverture 50/50 — bloc de base */
.hero-split{display:grid;grid-template-columns:1fr 1fr}
.hs-text{display:flex;align-items:center;padding-inline:max(var(--gutter),calc((100vw - var(--max))/2 + var(--gutter))) clamp(28px,4vw,68px)}
.hs-inner{max-width:36rem}
.hs-inner h1{margin:0 0 22px}
.hs-inner .lede{max-width:34rem}
.hs-media{position:relative}
.hs-media img{display:block}
.hs-foot{border-top:1px solid #D3D6DE;padding-top:20px;display:flex;justify-content:space-between;gap:28px;flex-wrap:wrap}
@media(max-width:900px){
  .hero-split{grid-template-columns:1fr}
  .hs-media{order:-1}
  .hs-media img{aspect-ratio:16/9}
  .hs-text{padding-inline:var(--gutter);padding-block:clamp(36px,7vw,56px)}
  .hs-inner{max-width:none}
}

/* ================= Améliorations ergonomiques globales ================= */
:root{--navy:#172744;--navy-deep:#101d34;--orange:#F0A020;--ink:#172744;--soft:#46536b;--mute:#68738a;--line:#dfe3ea;--line-strong:#aeb6c5;--tint:#f5f7fa;--surface:#ffffff;--shadow-sm:0 8px 24px rgba(23,39,68,.08);--shadow-md:0 18px 48px rgba(23,39,68,.14);--radius:10px}
body{overflow-x:hidden;text-rendering:optimizeLegibility}
.wrap{max-width:1180px;padding-inline:clamp(22px,4vw,40px)}
section{padding-block:clamp(72px,8vw,108px)}
p{color:var(--soft)}
.lede{color:#3d4b64;line-height:1.55}
.band{background:var(--tint)}
.head{margin-bottom:clamp(34px,5vw,56px)}
.skip-link{position:fixed;left:20px;top:14px;z-index:9999;padding:11px 16px;background:var(--navy);color:#fff;border:0;border-radius:7px;transform:translateY(-150%);transition:transform .2s var(--ease);font-size:14px;font-weight:700;box-shadow:var(--shadow-sm)}
.skip-link:focus{transform:translateY(0)}
.site-header{box-shadow:0 1px 0 rgba(23,39,68,.04)}
.site-header .wrap{gap:28px;flex-wrap:nowrap}
.site-header .brand{display:flex;align-items:center;flex:0 0 auto}
.nav{gap:clamp(16px,2vw,28px)}
.nav a{min-height:40px;display:inline-flex;align-items:center}
.nav a[href="contact.html"]{padding:9px 16px;border:1px solid var(--navy);border-radius:8px}
.nav a[href="contact.html"]::after{display:none}
.nav a[href="contact.html"]:hover, .nav a[href="contact.html"][aria-current="page"]{background:var(--navy);color:#fff;border-color:var(--navy)}
.nav-toggle{display:none;width:46px;height:46px;border:1px solid var(--line-strong);border-radius:8px;background:#fff;color:var(--navy);align-items:center;justify-content:center;cursor:pointer;padding:0;flex:0 0 auto}
.nav-toggle:hover{border-color:var(--orange)}
.nav-toggle-box{width:20px;height:14px;display:block;position:relative}
.nav-toggle-box::before, .nav-toggle-box::after, .nav-toggle-box span{content:"";position:absolute;left:0;width:20px;height:2px;background:currentColor;transition:transform .25s var(--ease),top .25s var(--ease),opacity .2s var(--ease)}
.nav-toggle-box::before{top:0}
.nav-toggle-box span{top:6px}
.nav-toggle-box::after{top:12px}
.site-header.is-open .nav-toggle-box::before{top:6px;transform:rotate(45deg)}
.site-header.is-open .nav-toggle-box span{opacity:0}
.site-header.is-open .nav-toggle-box::after{top:6px;transform:rotate(-45deg)}
.btn{border-radius:8px;min-height:48px;padding:13px 25px;display:inline-flex;align-items:center;justify-content:center;box-shadow:0 5px 14px rgba(23,39,68,.1)}
.btn:hover{box-shadow:0 9px 22px rgba(23,39,68,.16);transform:translateY(-2px)}
.btn--out{box-shadow:none;background:#fff}
.alink{min-height:42px;padding-block:7px}
.hero, .pagehead{padding-top:clamp(82px,9vw,122px)}
.hs-media::after{content:"";position:absolute;inset:0;box-shadow:inset 0 0 0 1px rgba(23,39,68,.04);pointer-events:none}
.hs-media img{transition:transform .8s var(--ease)}
@media(hover:hover){
  .hero-split:hover .hs-media img{transform:scale(1.015)}
}
.hs-meta{row-gap:12px}
.ph-meta{line-height:1.45}
.grid{gap:clamp(30px,4vw,48px)}
.item{background:var(--surface);border:1px solid var(--line);border-top:3px solid var(--line);padding:24px;border-radius:var(--radius);transition:transform .25s var(--ease), box-shadow .25s var(--ease),border-color .25s var(--ease)}
.item:hover{transform:translateY(-3px);box-shadow:var(--shadow-sm);border-top-color:var(--orange)}
.band .item{background:#fff}
.stats{gap:22px}
.stats>div{border:1px solid var(--line);border-top:3px solid var(--orange);padding:24px;border-radius:var(--radius);background:#fff}
.stats .v{font-size:clamp(42px,5vw,54px)}
.slide-in{border:1px solid var(--line);border-top:3px solid var(--orange);padding:clamp(26px,4vw,38px);border-radius:var(--radius);background:#fff}
.cbtn{width:48px;height:48px;background:#fff}
.dot{height:4px;border-radius:10px}
.tags li, .anchors a{background:#fff}
.refs li{background:#fff;border-radius:8px}
.note{background:#fff;border:1px solid var(--line);border-left:4px solid var(--orange);padding:22px 24px;border-radius:0 var(--radius) var(--radius) 0}
.docs{border:1px solid var(--line);border-radius:var(--radius);padding-inline:22px;background:#fff}
.docs li:last-child{border-bottom:0}
.field{max-width:620px;margin-bottom:20px}
.field label{margin-bottom:8px;color:#47536a;letter-spacing:.08em}
.field input, .field textarea, .field select{padding:13px 14px;border:1px solid var(--line-strong);background:#fff;border-radius:8px;min-height:48px}
.field textarea{min-height:150px;line-height:1.55}
.field input:hover, .field textarea:hover, .field select:hover{border-color:#7c879b}
.field input:focus, .field textarea:focus, .field select:focus{border-color:var(--orange);box-shadow:0 0 0 3px rgba(240,160,32,.18)}
.pagenav{position:sticky;z-index:40;box-shadow:0 5px 16px rgba(23,39,68,.05)}
.pagenav .index{scroll-snap-type:x proximity}
.pagenav .idx{scroll-snap-align:start}
.cta{padding-block:clamp(64px,7vw,88px)}
.cta .wrap{row-gap:24px}
.site-footer{padding-top:clamp(56px,7vw,76px)}
.site-footer a{min-height:30px;display:inline-flex;align-items:center}
.site-footer .legal{line-height:1.8}
.back-to-top{position:fixed;right:22px;bottom:22px;z-index:55;width:46px;height:46px;border:1px solid var(--line-strong);border-radius:50%;background:#fff;color:var(--navy);display:grid;place-items:center;cursor:pointer;transition:opacity .25s var(--ease), transform .25s var(--ease),visibility .25s}
.back-to-top:hover{background:var(--navy);color:#fff;border-color:var(--navy)}
.back-to-top svg{width:18px;height:18px}
@media(max-width:900px){
  .site-header .wrap{position:relative;flex-wrap:wrap;gap:14px}
  html.js .site-header .wrap{flex-wrap:nowrap}
  html.js .nav-toggle{display:inline-flex;margin-left:auto}
  .nav{width:100%;margin:0;display:grid;grid-template-columns:1fr;gap:0;padding-bottom:14px}
  .nav a{padding:12px 4px;border-bottom:1px solid var(--line);min-height:48px}
  .nav a::after{display:none}
  .nav a[href="contact.html"]{margin-top:10px;justify-content:center;padding:11px 16px}
  html.js .nav{position:absolute;left:0;right:0;top:100%;width:auto;background:#fff;padding:8px clamp(22px,4vw,40px) 20px;box-shadow:0 18px 28px rgba(23,39,68,.14);max-height:0;opacity:0;overflow:hidden;pointer-events:none;transform:translateY(-8px);transition:max-height .35s var(--ease),opacity .25s var(--ease),transform .25s var(--ease)}
  html.js .site-header.is-open .nav{max-height:calc(100vh - 72px);opacity:1;overflow:auto;pointer-events:auto;transform:none}
  .g3{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:640px){
  body{font-size:16px;line-height:1.7}
  .wrap{padding-inline:20px}
  section{padding-block:60px}
  .hero-split{display:flex;flex-direction:column;min-height:0}
  .hero-split .hs-media{order:-1}
  .hero-split--left .hs-media{order:-1}
  .hs-inner h1 br{display:none}
  .acts{display:grid!important;grid-template-columns:1fr;gap:12px!important}
  .acts .btn{width:100%}
  .g2, .g3, .stats, .site-footer .cols{grid-template-columns:1fr}
  .item, .stats>div{padding:20px}
  .slide-in{padding:22px}
  .cui{gap:12px;margin-top:28px}
  .dots{gap:6px;overflow:hidden}
  .dot{width:20px}
  .cta .wrap{align-items:flex-start}
  .cta .btn{width:100%}
}
@media(max-width:430px){
  .site-header .logo{max-width:180px}
  .nav-toggle{width:44px;height:44px}
}
@media(prefers-reduced-motion:reduce){
  .hs-media img, .item, .back-to-top{transition:none!important}
  .hero-split:hover .hs-media img{transform:none}
}

/* Logo d'en-tête plus présent */
.site-header .wrap{min-height:96px}
.site-header .logo{height:50px;max-width:310px}
.site-header .brand{min-width:0}

/* Images fluides : préserver au maximum le cadrage original */
img{display:block;max-width:100%;height:auto}
.hs-media{display:flex;align-items:center;justify-content:center;min-width:0}
.hs-media img{background:#f1f3f6}
.slide--img .fig{display:flex;flex-direction:column;align-items:center}
.banner img{background:#f1f3f6}
figure img{object-position:center}

/* Sous-navigation et ancres : tenir compte de l'en-tête agrandi */
html{scroll-padding-top:158px}

/* Le retour en haut reste disponible sur toutes les pages */
.back-to-top{opacity:1;visibility:visible;transform:none;box-shadow:0 10px 26px rgba(23,39,68,.18)}
.back-to-top.is-visible{opacity:1;visibility:visible;transform:none}
@media(max-width:1100px) and (min-width:901px){
  .site-header .logo{height:44px;max-width:265px}
  .site-header .wrap{gap:20px}
  .nav{gap:14px}
  .nav a{font-size:13px}
}
@media(max-width:900px){
  .site-header .wrap{min-height:80px}
  .site-header .logo{height:42px;max-width:245px}
  .pagenav{top:80px}
  html{scroll-padding-top:138px}
  .home-pagenav .index{justify-content:flex-start}
  .hero-split .hs-media img, .hero-split--left .hs-media img{width:100%;max-height:none;aspect-ratio:auto}
}
@media(max-width:640px){
  .site-header .logo{height:38px;max-width:225px}
  .hero-split .hs-media{min-height:0}
  .hero-split .hs-media img{width:100%;height:auto;aspect-ratio:auto;object-fit:contain}
  .slide--img .fig img, .banner img{max-height:none}
  .back-to-top{right:16px;bottom:16px;width:48px;height:48px}
}
@media(max-width:390px){
  .site-header .logo{height:34px;max-width:205px}
  .site-header .wrap{gap:10px}
}
@media(max-width:1050px) and (min-width:901px){
  .site-header .wrap{position:relative;flex-wrap:nowrap;gap:14px}
  html.js .nav-toggle{display:inline-flex;margin-left:auto}
  .nav{width:100%;margin:0;display:grid;grid-template-columns:1fr;gap:0;padding-bottom:14px}
  .nav a{padding:12px 4px;border-bottom:1px solid var(--line);min-height:48px;font-size:14px}
  .nav a::after{display:none}
  .nav a[href="contact.html"]{margin-top:10px;justify-content:center;padding:11px 16px}
  html.js .nav{position:absolute;left:0;right:0;top:100%;width:auto;background:#fff;padding:8px clamp(22px,4vw,40px) 20px;box-shadow:0 18px 28px rgba(23,39,68,.14);max-height:0;opacity:0;overflow:hidden;pointer-events:none;transform:translateY(-8px);transition:max-height .35s var(--ease),opacity .25s var(--ease),transform .25s var(--ease)}
  html.js .site-header.is-open .nav{max-height:calc(100vh - 96px);opacity:1;overflow:auto;pointer-events:auto;transform:none}
}

/* Correction des ancres : éviter le double décalage qui laissait apparaître la section précédente sous le sous-menu persistant. */
main section[id], main article[id]{scroll-margin-top:0!important}
.subnav-target-section > .wrap > .head{margin-bottom:clamp(16px,2.2vh,26px)!important}
.subnav-target-section .cui{margin-top:clamp(14px,2vh,22px)!important}
.subnav-target-section figure img, .subnav-target-section .fig img{width:100%;max-height:min(38vh,360px)!important;object-fit:contain!important;object-position:center!important}
.subnav-target-heading{scroll-margin-top:0!important}

/* Sur les écrans de bureau peu hauts, la section reste dans la zone visible chaque fois que son contenu le permet, sans supprimer d'information. */
@media(max-height:820px) and (min-width:901px){
  .subnav-target-section{padding-block:6px!important}
  .subnav-target-section > .wrap > .head{margin-bottom:12px!important}
  .subnav-target-section .slide-in{padding:14px 18px!important;gap:22px!important}
  .subnav-target-section .cui{margin-top:8px!important}
  .subnav-target-section .slide-idx{font-size:46px!important;margin-bottom:8px!important}
  .subnav-target-section .slide h3{font-size:25px!important}
  .subnav-target-section .slide p{margin-bottom:.7em!important;line-height:1.42!important}
  .subnav-target-section .tags{margin-bottom:12px!important}
  .subnav-target-section ul.clean li{margin-bottom:5px!important;line-height:1.45!important}
  .subnav-target-section .item{padding:17px!important}
  .subnav-target-section figure img, .subnav-target-section .fig img{max-height:min(32vh,250px)!important}
}
@media(max-width:900px){
  .subnav-target-section > .wrap > .head{margin-bottom:18px!important}
  .subnav-target-section .cui{margin-top:18px!important}
  .subnav-target-section figure img, .subnav-target-section .fig img{max-height:min(42svh,360px)!important}
  .subnav-target-section.subnav-target-active > .wrap{max-height:calc(100svh - var(--sticky-stack) - 30px);overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;padding-right:4px}
}

/* ================= Correctifs ergonomiques v6 ================= Une petite sous-section remplit au minimum tout l'écran disponible sous l'en-tête et le sous-menu. Une section longue conserve sa hauteur naturelle. */
.subnav-target-section{min-height:calc(100vh - var(--sticky-stack, 0px))!important;min-height:calc(100svh - var(--sticky-stack, 0px))!important;height:auto!important;padding-block:clamp(16px,2.5vh,30px)!important;display:flex;align-items:flex-start;box-sizing:border-box}
.subnav-target-section > .wrap{width:100%;max-height:none!important;overflow:visible!important;padding-right:clamp(22px,4vw,40px)!important}
.subnav-target-section.subnav-target-active > .wrap{max-height:none!important;overflow:visible!important;overscroll-behavior:auto!important;scrollbar-gutter:auto!important}

/* Les zones visuelles sont entièrement remplies. Les légendes redondantes sous les images d'introduction sont masquées. */
.intro .fig{position:relative;aspect-ratio:4/3;overflow:hidden;background:var(--grey-light)}
.intro .fig img{width:100%!important;height:100%!important;max-height:none!important;aspect-ratio:auto!important;object-fit:cover!important;object-position:center!important}
.intro .fig figcaption{display:none!important}
.banner{overflow:hidden;background:var(--grey-light)}
.banner img{width:100%!important;height:auto!important;max-height:none!important;aspect-ratio:24/7!important;object-fit:cover!important;object-position:center!important}
.slide--img .fig{overflow:hidden;background:var(--grey-light)}
.slide--img .fig img{width:100%!important;height:auto!important;max-height:none!important;aspect-ratio:21/9!important;object-fit:cover!important;object-position:center!important}
.hs-media{overflow:hidden;background:var(--grey-light)}
.hs-media img{width:100%!important;height:100%!important;max-height:none!important;aspect-ratio:auto!important;object-fit:cover!important;object-position:center!important}
img.is-broken{visibility:hidden!important}

/* Logo-symbole de l'accueil : seul, agrandi et centré au-dessus du titre. */
body.home-page .hero-split .hs-inner > .mark{display:block;width:auto;height:clamp(116px,13vw,176px);margin:0 auto clamp(24px,3vw,38px)}
body.home-page .hero-split .hs-inner > .eyebrow{display:none}
@media(max-width:900px){
  .subnav-target-section{min-height:calc(100vh - var(--sticky-stack, 0px))!important;min-height:calc(100svh - var(--sticky-stack, 0px))!important;padding-block:18px!important}
  .intro .fig{aspect-ratio:16/9}
  .banner img, .slide--img .fig img{aspect-ratio:16/9!important}
  .hs-media{aspect-ratio:16/10}
  .hs-media img{height:100%!important;object-fit:cover!important}
  body.home-page .hero-split .hs-inner > .mark{height:clamp(104px,28vw,148px);margin-bottom:24px}
}
@media(max-width:520px){
  .subnav-target-section{padding-block:14px!important}
  .intro .fig, .banner img, .slide--img .fig img{aspect-ratio:4/3!important}
}
.pagenav .idx{min-height:42px!important;padding:7px 0 6px!important;gap:7px!important;line-height:1.15!important}
.home-pagenav .idx{min-height:42px!important}

/* La sous-navigation flottante éventuelle suit la même hauteur compacte. */
.subnav-in{gap:22px!important}
.subnav a{font-size:12px!important}
.hs-text{padding-block:clamp(22px,3.2vw,42px)!important}
.hs-inner .mark{margin-bottom:clamp(10px,1.4vw,16px)!important}
.hs-inner h1{margin-bottom:16px!important}
.hs-inner .lede{margin-top:0!important}
.hs-inner .acts{margin-top:clamp(18px,2vw,26px)!important}
.hs-meta{margin-top:clamp(18px,2vw,26px)!important;padding-top:14px!important}

/* Les visuels d'ouverture remplissent leur zone sans espace résiduel. */
.hero-split .hs-media{min-height:clamp(320px,48vh,520px)!important}
.hero-split .hs-media img, .hero-split--left .hs-media img{width:100%!important;height:100%!important;max-height:none!important;aspect-ratio:auto!important;object-fit:cover!important;object-position:center!important}

/* Les contenus atteints depuis le sous-menu commencent presque immédiatement. */
.subnav-target-section{padding-top:6px!important}
.subnav-target-section > .wrap > .head{margin-top:0!important}
@media(max-width:900px){
  .pagenav .idx{min-height:40px!important;padding:6px 0 5px!important}
  .subnav-in{gap:18px!important}
  .hero-split{min-height:0!important}
  .hero-split .hs-media{min-height:0!important;aspect-ratio:16/9!important}
  .hero-split .hs-media img, .hero-split--left .hs-media img{height:100%!important;object-fit:cover!important}
  .hs-text{padding:24px 20px 32px!important}
  .hs-inner .mark{margin-bottom:10px!important}
  .subnav-target-section{padding-top:4px!important}
}
@media(max-width:640px){
  .pagenav .idx{min-height:38px!important;padding:5px 0 4px!important}
  .hero-split .hs-media{aspect-ratio:16/10!important}
  .hs-text{padding:20px 20px 28px!important}
  .hs-inner h1{margin-bottom:12px!important}
  .hs-meta{margin-top:16px!important;padding-top:12px!important}
}

/* Même compacité pour la sous-navigation flottante secondaire. */
.subnav{padding:0!important}
.subnav .wrap{padding-top:0!important;padding-bottom:0!important}
.subnav-in{height:34px!important;min-height:34px!important}
.subnav a{padding:0!important;line-height:1!important}
.sn-top{width:26px!important;height:26px!important}
@media(max-width:900px){
  .pagenav .index, .pagenav .idx, .home-pagenav .idx{height:30px!important;min-height:30px!important}
  .subnav-in{height:32px!important;min-height:32px!important}
}
@media(max-width:640px){
  .pagenav .index, .pagenav .idx, .home-pagenav .idx{height:29px!important;min-height:29px!important}
}

/* ================= Ajustements ergonomiques v9 ================= Bande de sous-menu très compacte, texte plus lisible et ouverture alignée immédiatement sous la navigation. */
.pagenav{min-height:26px!important;height:26px!important;padding:0!important;margin:0!important}
.pagenav > .wrap{min-height:26px!important;height:26px!important;padding-top:0!important;padding-bottom:0!important}
.pagenav .index{min-height:26px!important;height:26px!important;padding:0!important;margin:0!important;align-items:stretch!important;gap:0 clamp(16px,2vw,30px)!important;justify-content:flex-start!important}
.home-pagenav .index{justify-content:flex-start!important;text-align:left!important}
.pagenav .idx, .home-pagenav .idx{min-height:26px!important;height:26px!important;padding:0!important;margin:0!important;display:inline-flex!important;align-items:center!important;line-height:1!important;gap:7px!important}
.pagenav .idx-t{font-size:13.25px!important;line-height:1!important;font-weight:500!important}
.pagenav .idx-n{font-size:11px!important;line-height:1!important}

/* Le premier contenu n'est plus centré verticalement dans une grande zone. */
.hero-split{align-items:stretch!important;min-height:min(56vh,510px)!important}
.hs-text, .hero-split--left .hs-text{align-items:flex-start!important;padding-top:clamp(10px,1.2vw,16px)!important;padding-bottom:clamp(20px,3vw,34px)!important}
.hs-inner{width:100%!important}
body.home-page .hero-split .hs-inner > .mark{margin-top:0!important;margin-bottom:8px!important}

/* Les premiers visuels commencent directement sous le sous-menu. */
.hero-split .hs-media, .hero-split--left .hs-media{margin-top:0!important;padding-top:0!important}
.hero-split .hs-media img, .hero-split--left .hs-media img{margin-top:0!important}
@media(max-width:900px){
  .pagenav, .pagenav > .wrap, .pagenav .index, .pagenav .idx, .home-pagenav .idx{min-height:27px!important;height:27px!important}
  .pagenav .idx-t{font-size:13px!important}
  .pagenav .idx-n{font-size:10.75px!important}
  .hs-text, .hero-split--left .hs-text{padding-top:10px!important;padding-bottom:24px!important}
}
@media(max-width:640px){
  .pagenav .index{gap:0 16px!important}
  .pagenav .idx-t{font-size:12.75px!important}
  .pagenav .idx-n{font-size:10.5px!important}
  .hs-text, .hero-split--left .hs-text{padding-top:8px!important;padding-bottom:22px!important}
}

/* ================= Correctif balisage et titres v10 ================= Les liens du sous-menu ciblent de vraies sections associées à leur titre. Le positionnement vertical est géré au pixel près par le script v10. */
.subnav-section, .subnav-section-title{scroll-margin-top:0!important}
.subnav-section-title{position:relative;z-index:1}
.pagenav .idx.is-active, .pagenav .idx[aria-current="location"]{border-bottom-color:var(--orange)!important}

/* Pas de décalage concurrent sur les identifiants internes. */
main [id]{scroll-margin-top:0!important}

/* ================= Correctif titres de sous-sections v11 ================= Le sous-menu suit la hauteur réelle de l'en-tête et le bloc de titre complet reste visible après chaque navigation interne. */
:root{--header-live-height:96px;--subnav-title-gap:12px}
.pagenav{top:var(--header-live-height)!important}
.subnav-section-title, .subnav-section .head, .subnav-section > .wrap > .head{scroll-margin-top:0!important}

/* Empêche tout ancêtre animé de rogner le haut du titre ciblé. */
.subnav-target-active .head, .subnav-target-active .subnav-section-title{overflow:visible!important}
@media(max-width:900px){
  :root{--subnav-title-gap:10px}
}

/* ================= Correctif positionnement des sous-sections v12 ================= Le bord de la section est placé sous la navigation persistante. L'espace de lecture est créé à l'intérieur de la section : aucune fin de section précédente ne peut rester visible et le titre n'est jamais collé au sous */
:root{--subnav-content-gap:22px;--subnav-overlap:2px}
.subnav-target-section, .subnav-section{padding-top:var(--subnav-content-gap)!important;min-height:calc(100vh - var(--sticky-stack, 0px) + var(--subnav-overlap))!important;min-height:calc(100svh - var(--sticky-stack, 0px) + var(--subnav-overlap))!important;box-sizing:border-box!important;position:relative;overflow:visible!important}
.subnav-target-section > .wrap, .subnav-section > .wrap{padding-top:0!important;margin-top:0!important}
.subnav-target-section > .wrap > .head, .subnav-section > .wrap > .head, .subnav-section-title{margin-top:0!important;transform:none!important;overflow:visible!important}
.subnav-target-active .rise{opacity:1!important;transform:none!important}
@media(max-width:900px){
  :root{--subnav-content-gap:18px}
}
@media(max-width:520px){
  :root{--subnav-content-gap:16px}
}

/* ================= Ouvertures plein écran Accueil et Cabinet v13 ================= Sur ordinateur, la section d'ouverture commence sans aucun espace après le sous-menu. Le visuel occupe exactement sa moitié de page et toute la hauteur encore visible dans la fenêtre. */
@media (min-width:901px){
  body.home-page .pagenav + main > .hero-split, body:not(.home-page) main > .pagenav + .hero-split{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;align-items:stretch!important;box-sizing:border-box!important;width:100%!important;height:calc(100vh - var(--sticky-stack, 122px))!important;height:calc(100svh - var(--sticky-stack, 122px))!important;min-height:calc(100vh - var(--sticky-stack, 122px))!important;min-height:calc(100svh - var(--sticky-stack, 122px))!important;max-height:calc(100vh - var(--sticky-stack, 122px))!important;max-height:calc(100svh - var(--sticky-stack, 122px))!important;margin:0!important;padding:0!important;overflow:hidden!important}
  body.home-page .pagenav + main > .hero-split > .hs-media, body:not(.home-page) main > .pagenav + .hero-split > .hs-media{width:100%!important;height:100%!important;min-height:0!important;max-height:none!important;margin:0!important;padding:0!important;align-self:stretch!important;overflow:hidden!important;background:var(--grey-light)!important}
  body.home-page .pagenav + main > .hero-split > .hs-media img, body:not(.home-page) main > .pagenav + .hero-split > .hs-media img{display:block!important;width:100%!important;height:100%!important;min-height:100%!important;max-width:none!important;max-height:none!important;margin:0!important;padding:0!important;aspect-ratio:auto!important;object-fit:cover!important;object-position:center!important;flex:1 1 auto!important}
  body.home-page .pagenav + main > .hero-split > .hs-text, body:not(.home-page) main > .pagenav + .hero-split > .hs-text{height:100%!important;min-height:0!important;box-sizing:border-box!important;overflow:auto!important}
}

/* ================= Accueil sans défilement interne v14 ================= Le panneau texte tient dans la hauteur disponible. Aucun scroll interne. */
@media (min-width:901px){
  body.home-page .pagenav + main > .hero-split > .hs-text{overflow:hidden!important;overscroll-behavior:auto!important;scrollbar-width:none!important}
  body.home-page .pagenav + main > .hero-split > .hs-text::-webkit-scrollbar{display:none!important}
  body.home-page .pagenav + main > .hero-split > .hs-text > .hs-inner{max-height:100%!important;overflow:visible!important}
}
@media (min-width:901px) and (max-height:780px){
  body.home-page .hero-split .hs-text{padding-top:10px!important;padding-bottom:10px!important}
  body.home-page .hero-split .hs-inner > .mark{height:clamp(54px,8vh,76px)!important;margin-bottom:6px!important}
  body.home-page .hero-split .hs-inner h1{font-size:clamp(38px,4.5vw,54px)!important;line-height:1.02!important;margin-bottom:10px!important}
  body.home-page .hero-split .hs-inner .lede{font-size:clamp(17px,1.65vw,20px)!important;line-height:1.42!important}
  body.home-page .hero-split .hs-inner .acts{margin-top:14px!important}
  body.home-page .hero-split .hs-inner .btn{min-height:42px!important;padding-top:10px!important;padding-bottom:10px!important}
  body.home-page .hero-split .hs-meta{margin-top:14px!important;padding-top:10px!important;gap:12px 22px!important}
}
@media (min-width:901px) and (max-height:650px){
  body.home-page .hero-split .hs-inner > .mark{height:48px!important;margin-bottom:4px!important}
  body.home-page .hero-split .hs-inner h1{font-size:clamp(34px,4vw,46px)!important;margin-bottom:8px!important}
  body.home-page .hero-split .hs-inner .lede{font-size:16px!important;line-height:1.35!important}
  body.home-page .hero-split .hs-inner .acts{margin-top:10px!important}
  body.home-page .hero-split .hs-meta{margin-top:10px!important;padding-top:8px!important}
}

/* --- Cabinet : introduction consultants en deux colonnes 50/50 --- */
#consultants .consultants-section-inner{max-width:1120px}
.consultants-split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(34px,5vw,72px);align-items:stretch;margin-bottom:clamp(44px,6vw,76px)}
.consultants-copy{align-self:center;min-width:0}
.consultants-copy .subnav-section-title{margin-bottom:24px}
.consultants-media{margin:0;min-width:0;background:var(--grey-light);overflow:hidden}
.consultants-media img{display:block;width:100%;height:100%;min-height:440px;aspect-ratio:3/2;object-fit:cover;object-position:center}
@media(max-width:900px){
  .consultants-split{grid-template-columns:1fr;gap:28px}
  .consultants-media{order:-1}
  .consultants-media img{min-height:0;height:auto;aspect-ratio:16/10}
}

/* --- Alignement des sous-sections v25 --- */
#consultants .consultants-split{align-items:start}
#consultants .consultants-copy{align-self:start;text-align:left;justify-self:stretch}
#consultants .consultants-copy .eyebrow{justify-content:flex-start}
#consultants .consultants-copy .subnav-section-title, #consultants .consultants-copy p, #consultants .consultants-copy ul{text-align:left;margin-left:0;margin-right:0}

/* --- Alignement à gauche des sous-sections Services v25 --- */
main .subnav-section > .wrap:not(.narrow){max-width:1120px}
main .subnav-section .intro{grid-template-columns:minmax(0,7fr) minmax(0,5fr);align-items:start}
main .subnav-section .intro .head{grid-column:1;grid-row:1;align-self:start;justify-self:stretch;text-align:left}
main .subnav-section .intro .fig{grid-column:2;grid-row:1}
main .subnav-section .intro .head .eyebrow{justify-content:flex-start}
main .subnav-section .intro .head .subnav-section-title, main .subnav-section .intro .head p{text-align:left;margin-left:0;margin-right:0}
@media(max-width:900px){
  main .subnav-section .intro{grid-template-columns:1fr}
  main .subnav-section .intro .head, main .subnav-section .intro .fig{grid-column:1}
  main .subnav-section .intro .head{grid-row:1}
  main .subnav-section .intro .fig{grid-row:2}
}

/* ================= Page contact enrichie ================= */
.contact-hero .hs-inner{max-width:720px}
.contact-hero .lede{max-width:58ch}
.contact-hero .hs-meta{display:flex;flex-wrap:wrap;gap:12px 28px;margin-top:28px}
.contact-hero .ph-meta{display:flex;align-items:center;gap:7px}
.contact-hero .ph-meta::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--orange);flex:0 0 auto}
.contact-section{padding-block:clamp(68px,7vw,96px)}
.contact-layout{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(320px,.92fr);gap:clamp(48px,7vw,86px);align-items:start}
.contact-form{padding:clamp(26px,3vw,38px);border:1px solid var(--line);border-top:4px solid var(--orange);border-radius:12px;background:#fff;box-shadow:0 18px 50px rgba(24,40,72,.07)}
.contact-form h2{margin-bottom:10px}
.contact-form .form-intro{font-size:15.5px;margin-bottom:28px;color:#47536a}
.contact-form .field-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.contact-form .field{max-width:none}
.contact-form .field textarea{min-height:170px}
.contact-form .btn{width:100%;margin-top:4px}
.contact-consent{margin-top:15px;font-size:13.5px;line-height:1.55;color:#667085}
.contact-aside{display:grid;gap:22px}
.contact-card{border:1px solid var(--line);border-radius:12px;background:#fff;padding:clamp(24px,3vw,32px)}
.contact-card h2, .contact-card h3{margin-bottom:12px}
.contact-card p:last-child{margin-bottom:0}
.contact-direct{display:grid;gap:14px;margin-top:22px}
.contact-direct a, .contact-direct span{display:flex;align-items:flex-start;gap:12px;border:0;color:var(--navy);font-weight:600}
.contact-direct svg{width:19px;height:19px;flex:0 0 auto;margin-top:3px;color:var(--orange)}
.contact-addresses{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:22px}
.contact-address{padding-top:17px;border-top:1px solid var(--line)}
.contact-address .cap{display:block;font-size:10.5px;font-weight:700;letter-spacing:.17em;text-transform:uppercase;color:#667085;margin-bottom:8px}
.contact-address p{font-size:15px;line-height:1.55;margin:0}
.contact-topics{background:var(--grey-light)}
.contact-topics .head{max-width:760px;margin-bottom:40px}
.contact-topic-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.contact-topic{position:relative;padding:26px 24px 24px;border:1px solid var(--line);border-radius:10px;background:#fff;min-height:230px}
.contact-topic .topic-n{display:block;font-family:var(--fd);font-size:30px;line-height:1;color:var(--orange);margin-bottom:22px}
.contact-topic h3{font-size:17px;margin-bottom:10px}
.contact-topic p{font-size:15px;line-height:1.65;margin:0}
.contact-steps .head{max-width:760px;margin-bottom:42px}
.contact-step-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:34px}
.contact-step{border-top:2px solid var(--navy);padding-top:22px}
.contact-step .step-n{display:block;font-size:11px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--orange);margin-bottom:16px}
.contact-step h3{font-family:var(--fd);font-size:25px;font-weight:400;margin-bottom:10px}
.contact-step p{font-size:15.5px;line-height:1.7;margin:0}
.contact-cta .wrap{align-items:flex-end}
.contact-cta .contact-mail{font-size:clamp(20px,2.5vw,30px);font-family:var(--fd);color:#fff;border-bottom:1px solid var(--orange)}
.contact-cta .contact-mail:hover{color:var(--orange)}
@media(max-width:960px){
  .contact-layout{grid-template-columns:1fr}
  .contact-aside{grid-template-columns:1fr 1fr}
  .contact-topic-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:700px){
  .contact-form{padding:22px 18px}
  .contact-form .field-row, .contact-aside, .contact-addresses, .contact-topic-grid, .contact-step-grid{grid-template-columns:1fr}
  .contact-topic{min-height:0}
  .contact-section{padding-block:58px}
}

/* --- Cas clients : lecture par mission et practices --- */
.case-study{max-width:1120px}
.case-lead{font-size:clamp(18px,2vw,22px);line-height:1.65;max-width:78ch;color:var(--navy);margin-bottom:34px}
.case-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:0 0 42px}
.case-facts dt, .case-facts dd{margin:0;padding:15px 18px;border-right:1px solid var(--line)}
.case-facts dt{font-size:10.5px;letter-spacing:.15em;text-transform:uppercase;color:var(--mute);padding-bottom:2px}
.case-facts dd{font-weight:600;color:var(--navy);padding-top:2px}
.case-facts dt:nth-of-type(4), .case-facts dd:nth-of-type(4){border-right:0}
.case-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,5vw,72px);margin-bottom:40px}
.case-block h3, .case-practices h3{margin-bottom:14px}
.case-practices{padding:28px 30px;background:var(--grey-light);margin-bottom:28px}
.case-note{border-top:1px solid var(--line);padding-top:18px}
@media(max-width:900px){
  .case-facts{grid-template-columns:1fr 1fr}
  .case-facts dt, .case-facts dd{border-right:0}
  .case-grid{grid-template-columns:1fr}
}
@media(max-width:560px){
  .case-facts{grid-template-columns:1fr}
}

/* --- Alignement à gauche des sous-sections Cas clients v25 --- */
main .case-study{text-align:left}
main .case-study > .eyebrow{justify-content:flex-start}
main .case-study > .subnav-section-title, main .case-study > .case-lead, main .case-study .case-block, main .case-study .case-practices, main .case-study .case-note{text-align:left;margin-left:0;margin-right:0}

/* Clause attributive de compétence — présentation très apparente */
.jurisdiction-clause{margin:28px 0 0;padding:22px 24px;border:2px solid var(--navy);background:#fff;color:var(--navy);font-size:15px;line-height:1.65;letter-spacing:.015em}
.jurisdiction-clause strong{color:var(--navy)}
@media(max-width:640px){
  .jurisdiction-clause{padding:18px 16px;font-size:14px}
}
@media print{
  .jurisdiction-clause{border:2px solid #000}
}

/* V31 — fonds de sous-sections harmonisés */
main > section.section-surface--white{background:#fff!important;color:var(--ink)!important}
main > section.section-surface--blue{background:var(--tint)!important;color:var(--ink)!important}
main > section.section-surface--white h1, main > section.section-surface--white h2, main > section.section-surface--white h3, main > section.section-surface--blue h1, main > section.section-surface--blue h2, main > section.section-surface--blue h3{color:var(--navy)!important}
main > section.section-surface--white p, main > section.section-surface--white li, main > section.section-surface--blue p, main > section.section-surface--blue li{color:var(--soft)!important}
main > section.section-surface--white .eyebrow, main > section.section-surface--blue .eyebrow{color:var(--mute)!important}
main > section.section-surface--white a:not(.btn), main > section.section-surface--blue a:not(.btn){color:var(--navy)!important}

/* === Cartouches harmonisées sur le modèle Secteurs — v40 === */
.sector-cards-section .sector-cards-grid, .sector-cards-section .stats.sector-cards-grid, .sector-cards-section .case-grid.sector-cards-grid, .sector-cards-section .practice-details.sector-cards-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:clamp(18px,2.4vw,30px)!important;align-items:stretch!important;margin-top:clamp(24px,3.2vw,42px)!important}
.sector-cards-section .sector-cards-grid > .item, .sector-cards-section .sector-cards-grid > .case-block, .sector-cards-section .sector-cards-grid > .detail-card, .sector-cards-section .sector-cards-grid > .stat-card{position:relative;display:flex;flex-direction:column;justify-content:flex-start;min-width:0;min-height:clamp(205px,25vh,280px);padding:clamp(24px,2.5vw,36px)!important;border:1px solid rgba(23,52,97,.11)!important;border-radius:22px!important;background:#fff!important;box-shadow:0 14px 34px rgba(18,42,76,.075)!important;overflow:hidden}
.section-surface--blue.sector-cards-section .sector-cards-grid > .item, .section-surface--blue.sector-cards-section .sector-cards-grid > .case-block, .section-surface--blue.sector-cards-section .sector-cards-grid > .detail-card, .section-surface--blue.sector-cards-section .sector-cards-grid > .stat-card{background:rgba(255,255,255,.92)!important}
.sector-cards-section .sector-cards-grid .n, .sector-cards-section .sector-cards-grid .card-number{display:inline-flex;align-items:center;justify-content:center;width:max-content;min-width:42px;height:42px;padding:0 13px;margin:0 0 15px;border-radius:999px;background:var(--navy,#173461);color:#fff;font-size:.8rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.sector-cards-section .sector-cards-grid h3, .sector-cards-section .sector-cards-grid .stat-card .v{margin:0 0 12px!important;color:var(--navy,#173461)!important;font-size:clamp(1.08rem,1.55vw,1.34rem)!important;line-height:1.18!important;font-weight:700!important}
.sector-cards-section .sector-cards-grid .stat-card .v{display:block;font-size:clamp(2rem,4vw,3.5rem)!important;letter-spacing:-.04em}
.sector-cards-section .sector-cards-grid .stat-card .k{display:block;color:inherit;font-size:clamp(.98rem,1.08vw,1.05rem);line-height:1.55}
.sector-cards-section .sector-cards-grid p, .sector-cards-section .sector-cards-grid li{font-size:clamp(.95rem,1.03vw,1rem)!important;line-height:1.6!important}
.sector-cards-section .sector-cards-grid p:last-child{margin-bottom:0!important}
.sector-cards-section .sector-cards-grid ul.clean{margin:0;padding-left:1.1rem}
.sector-cards-section .sector-cards-grid ul.clean li+li{margin-top:7px}
.sector-cards-section .sector-cards-grid > .logo-card, .sector-cards-section .sector-cards-grid > .visual-card{align-items:center;justify-content:center;text-align:center}
.sector-cards-section .sector-cards-grid > .logo-card .card-logo{width:min(82%,340px);height:auto;max-height:120px;margin:auto}
.sector-cards-section .sector-cards-grid > .logo-card p{max-width:30ch;margin:18px auto 0!important;color:#55708e}
.sector-cards-section .sector-cards-grid > .visual-card{padding:0!important;background:#edf3fa!important}
.sector-cards-section .sector-cards-grid > .visual-card img{width:100%;height:100%;min-height:clamp(205px,25vh,280px);object-fit:cover;display:block}
.sector-cards-section .sector-cards-grid > .visual-card .visual-caption{position:absolute;inset:auto 18px 18px;padding:9px 13px;border-radius:999px;background:rgba(23,52,97,.9);color:#fff;font-size:.84rem;font-weight:700}
@media(max-width:850px){
  .sector-cards-section .sector-cards-grid, .sector-cards-section .stats.sector-cards-grid, .sector-cards-section .case-grid.sector-cards-grid, .sector-cards-section .practice-details.sector-cards-grid{grid-template-columns:1fr!important}
  .sector-cards-section .sector-cards-grid > .item, .sector-cards-section .sector-cards-grid > .case-block, .sector-cards-section .sector-cards-grid > .detail-card, .sector-cards-section .sector-cards-grid > .stat-card{min-height:auto}
}
#vie-cabinet .life-slide-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);width:100%;height:100%;min-height:0;border-radius:20px;overflow:hidden;background:#fff;border:1px solid rgba(23,52,97,.10)}
#vie-cabinet .life-slide-media{min-width:0;min-height:0;margin:0;overflow:hidden;background:#eaf1f8}
#vie-cabinet .life-slide-media img{width:100%;height:100%;max-height:none!important;object-fit:cover;display:block}
#vie-cabinet .life-slide-copy{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;min-width:0;padding:clamp(24px,3.5vw,54px)}
#vie-cabinet .life-slide-copy h3{margin:0 0 clamp(12px,1.6vh,18px)!important;font-size:clamp(1.45rem,2.4vw,2.35rem)!important;line-height:1.08!important}
#vie-cabinet .life-slide-copy p{max-width:46ch;margin:0 0 clamp(18px,2.6vh,30px)!important;font-size:clamp(.98rem,1.15vw,1.1rem)!important;line-height:1.6!important}
#vie-cabinet .life-slide-copy .alink{margin-top:auto}
@media (max-width:900px){
  #vie-cabinet .life-slide-card{grid-template-columns:1fr;grid-template-rows:minmax(150px,34svh) auto}
  #vie-cabinet .life-slide-copy{justify-content:flex-start;padding:18px 20px 20px}
  
  #vie-cabinet .life-slide-copy h3{font-size:clamp(1.25rem,6vw,1.7rem)!important;margin-bottom:8px!important}
  #vie-cabinet .life-slide-copy p{font-size:.93rem!important;line-height:1.45!important;margin-bottom:14px!important}
}
@media (max-height:760px) and (min-width:901px){
  #vie-cabinet .life-slide-copy{padding:20px 30px}
  #vie-cabinet .life-slide-copy h3{font-size:clamp(1.35rem,2vw,1.85rem)!important}
  #vie-cabinet .life-slide-copy p{font-size:.92rem!important;line-height:1.42!important;margin-bottom:14px!important}
  
}

/* === Implantations en carrousel v41 === */
#implantations.auto-carousel-section .auto-carousel-slide-inner{align-content:center}
#implantations.auto-carousel-section .auto-carousel-slide-inner > .grid{grid-template-columns:1fr!important;height:100%}
#implantations.auto-carousel-section .auto-carousel-slide-inner .item{display:flex;flex-direction:column;justify-content:center;min-height:100%;padding:clamp(26px,3vw,44px)!important}
#implantations.auto-carousel-section .auto-carousel-slide-inner .logo-card{align-items:center;text-align:center}
#implantations.auto-carousel-section .auto-carousel-slide-inner .card-logo{width:min(420px,80%);height:auto;margin:0 auto 20px}
@media (max-width:900px){
  #implantations.auto-carousel-section .auto-carousel-slide-inner .item{padding:20px!important}
  #implantations.auto-carousel-section .auto-carousel-slide-inner .card-logo{width:min(300px,86%)}
}

/* === Sous-sections à quatre cartouches : alignement et tenue écran v43 === */
.four-card-screen-section{height:calc(100vh - var(--sticky-stack,var(--fallback-sticky-stack)))!important;height:calc(100svh - var(--sticky-stack,var(--fallback-sticky-stack)))!important;min-height:calc(100vh - var(--sticky-stack,var(--fallback-sticky-stack)))!important;min-height:calc(100svh - var(--sticky-stack,var(--fallback-sticky-stack)))!important;max-height:calc(100vh - var(--sticky-stack,var(--fallback-sticky-stack)))!important;max-height:calc(100svh - var(--sticky-stack,var(--fallback-sticky-stack)))!important;padding-top:clamp(18px,2.7svh,30px)!important;padding-bottom:clamp(14px,2.1svh,24px)!important;overflow:hidden!important;box-sizing:border-box!important}
.four-card-screen-section > .wrap{width:min(100%,1184px)!important;height:100%!important;min-height:0!important;margin:0 auto!important;padding-inline:32px!important;display:grid!important;grid-template-rows:auto minmax(0,1fr)!important;align-content:stretch!important}
.four-card-screen-section > .wrap > .head, .four-card-screen-section > .wrap > .head.narrow{width:100%!important;max-width:none!important;min-height:0!important;margin:0 0 clamp(10px,1.6svh,18px)!important;padding:0!important;align-self:start!important}
.four-card-screen-section > .wrap > .head .eyebrow{margin-bottom:clamp(7px,1svh,12px)!important}
.four-card-screen-section > .wrap > .head h2{margin:0!important;font-size:clamp(27px,3.4vw,40px)!important;line-height:1.12!important}
.four-card-screen-section > .wrap > .head p{max-width:78ch!important;margin:clamp(6px,.8svh,10px) 0 0!important;font-size:clamp(13px,1.55svh,16px)!important;line-height:1.42!important}
.four-card-screen-section .sector-cards-grid{margin:0!important;display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;grid-template-rows:repeat(2,minmax(0,1fr))!important;gap:clamp(12px,1.7svh,20px)!important}
.four-card-screen-section .sector-cards-grid > .item, .four-card-screen-section .sector-cards-grid > .case-block, .four-card-screen-section .sector-cards-grid > .detail-card, .four-card-screen-section .sector-cards-grid > .stat-card{width:100%!important;height:100%!important;min-height:0!important;max-height:none!important;padding:clamp(15px,2svh,27px)!important;justify-content:center!important;box-sizing:border-box!important;overflow:hidden!important}
.four-card-screen-section .sector-cards-grid .n, .four-card-screen-section .sector-cards-grid .card-number{min-width:36px!important;height:36px!important;margin-bottom:clamp(7px,1svh,12px)!important;padding-inline:10px!important;font-size:clamp(10px,1.25svh,12px)!important;flex:0 0 auto!important}
.four-card-screen-section .sector-cards-grid h3, .four-card-screen-section .sector-cards-grid .stat-card .v{margin-bottom:clamp(6px,.9svh,11px)!important;font-size:clamp(17px,2.15svh,24px)!important;line-height:1.16!important}
.four-card-screen-section .sector-cards-grid .stat-card .v{font-size:clamp(30px,5.2svh,56px)!important}
.four-card-screen-section .sector-cards-grid .stat-card .k, .four-card-screen-section .sector-cards-grid p, .four-card-screen-section .sector-cards-grid li{font-size:clamp(12px,1.52svh,15px)!important;line-height:1.38!important}
.four-card-screen-section .sector-cards-grid ul.clean{margin:0!important}
.four-card-screen-section .sector-cards-grid ul.clean li+li{margin-top:clamp(3px,.55svh,7px)!important}
.four-card-screen-section .sector-cards-grid > .logo-card .card-logo{width:min(72%,290px)!important;max-height:min(10svh,92px)!important}
.four-card-screen-section .sector-cards-grid > .logo-card p{margin-top:clamp(8px,1.2svh,14px)!important}
.four-card-screen-section.four-card-tight .sector-cards-grid{gap:10px!important}
.four-card-screen-section.four-card-tight .sector-cards-grid > .item, .four-card-screen-section.four-card-tight .sector-cards-grid > .case-block, .four-card-screen-section.four-card-tight .sector-cards-grid > .detail-card, .four-card-screen-section.four-card-tight .sector-cards-grid > .stat-card{padding:12px 15px!important}
.four-card-screen-section.four-card-tight .sector-cards-grid h3, .four-card-screen-section.four-card-tight .sector-cards-grid .stat-card .v{margin-bottom:5px!important}
.four-card-screen-section.four-card-tight .sector-cards-grid .stat-card .k, .four-card-screen-section.four-card-tight .sector-cards-grid p, .four-card-screen-section.four-card-tight .sector-cards-grid li{font-size:12px!important;line-height:1.3!important}
.four-card-screen-section.four-card-ultra > .wrap > .head{margin-bottom:7px!important}
.four-card-screen-section.four-card-ultra > .wrap > .head p{display:none!important}
.four-card-screen-section.four-card-ultra .sector-cards-grid{gap:8px!important}
.four-card-screen-section.four-card-ultra .sector-cards-grid > .item, .four-card-screen-section.four-card-ultra .sector-cards-grid > .case-block, .four-card-screen-section.four-card-ultra .sector-cards-grid > .detail-card, .four-card-screen-section.four-card-ultra .sector-cards-grid > .stat-card{padding:10px 12px!important}
.four-card-screen-section.four-card-ultra .sector-cards-grid .n, .four-card-screen-section.four-card-ultra .sector-cards-grid .card-number{height:30px!important;min-width:30px!important;margin-bottom:5px!important}
.four-card-screen-section.four-card-ultra .sector-cards-grid h3{font-size:14px!important;line-height:1.12!important}
.four-card-screen-section.four-card-ultra .sector-cards-grid .stat-card .v{font-size:28px!important}
.four-card-screen-section.four-card-ultra .sector-cards-grid .stat-card .k, .four-card-screen-section.four-card-ultra .sector-cards-grid p, .four-card-screen-section.four-card-ultra .sector-cards-grid li{font-size:10.8px!important;line-height:1.22!important}
@media(max-width:900px){
  .four-card-screen-section{padding-top:clamp(12px,1.8svh,18px)!important;padding-bottom:clamp(10px,1.5svh,16px)!important}
  .four-card-screen-section > .wrap{padding-inline:clamp(14px,4vw,24px)!important}
  .four-card-screen-section > .wrap > .head, .four-card-screen-section > .wrap > .head.narrow{margin-bottom:clamp(8px,1.2svh,12px)!important}
  .four-card-screen-section > .wrap > .head h2{font-size:clamp(22px,6vw,30px)!important}
  .four-card-screen-section > .wrap > .head p{font-size:clamp(11.5px,1.45svh,13px)!important}
  .four-card-screen-section .sector-cards-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;grid-template-rows:repeat(2,minmax(0,1fr))!important;gap:clamp(8px,1.15svh,12px)!important}
  .four-card-screen-section .sector-cards-grid > .item, .four-card-screen-section .sector-cards-grid > .case-block, .four-card-screen-section .sector-cards-grid > .detail-card, .four-card-screen-section .sector-cards-grid > .stat-card{min-height:0!important;padding:clamp(10px,1.7svh,15px)!important}
  .four-card-screen-section .sector-cards-grid h3{font-size:clamp(13px,2.1svh,17px)!important}
  .four-card-screen-section .sector-cards-grid .stat-card .v{font-size:clamp(25px,5svh,38px)!important}
  .four-card-screen-section .sector-cards-grid .stat-card .k, .four-card-screen-section .sector-cards-grid p, .four-card-screen-section .sector-cards-grid li{font-size:clamp(10px,1.38svh,12.5px)!important;line-height:1.27!important}
  .four-card-screen-section .sector-cards-grid > .logo-card .card-logo{width:min(78%,230px)!important;max-height:min(8svh,65px)!important}
}
@media(max-width:520px){
  .four-card-screen-section > .wrap > .head p{display:none!important}
  .four-card-screen-section .sector-cards-grid .n, .four-card-screen-section .sector-cards-grid .card-number{height:28px!important;min-width:28px!important;padding-inline:8px!important;margin-bottom:5px!important;font-size:9px!important}
  .four-card-screen-section .sector-cards-grid h3{font-size:clamp(12px,1.9svh,15px)!important}
  .four-card-screen-section .sector-cards-grid .stat-card .v{font-size:clamp(23px,4.5svh,32px)!important}
  .four-card-screen-section .sector-cards-grid .stat-card .k, .four-card-screen-section .sector-cards-grid p, .four-card-screen-section .sector-cards-grid li{font-size:clamp(9.5px,1.28svh,11px)!important;line-height:1.2!important}
}

/* ================= Mise en page 50/50 cohérente v26 ================= */
@media (min-width:901px){
  #consultants{display:block!important;padding-left:0!important;padding-right:0!important}
  #consultants > .consultants-section-inner{width:100%!important;max-width:none!important;padding-left:0!important;padding-right:0!important;margin:0!important}
  #consultants .consultants-split{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;gap:0!important;width:100%!important;margin:0 0 clamp(52px,6vw,84px)!important;align-items:stretch!important}
  #consultants .consultants-copy{grid-column:1!important;grid-row:1!important;box-sizing:border-box!important;display:flex!important;flex-direction:column!important;align-items:flex-start!important;width:100%!important;min-width:0!important;padding:clamp(48px,5vw,76px) clamp(34px,4.5vw,68px) clamp(48px,5vw,76px) max(clamp(22px,4vw,40px), calc((100vw - 1180px)/2 + 40px))!important;text-align:left!important}
  #consultants .consultants-copy .eyebrow, #consultants .consultants-copy .subnav-section-title, #consultants .consultants-copy p, #consultants .consultants-copy ul{width:100%!important;max-width:560px!important;margin-left:0!important;margin-right:0!important;text-align:left!important}
  #consultants .consultants-media{grid-column:2!important;grid-row:1!important;width:100%!important;min-width:0!important;min-height:clamp(460px,40vw,620px)!important;margin:0!important;overflow:hidden!important;background:var(--grey-light)!important}
  #consultants .consultants-media img{display:block!important;width:100%!important;height:100%!important;min-height:100%!important;max-height:none!important;aspect-ratio:auto!important;object-fit:cover!important;object-position:center!important}
  #consultants .consultants-details{width:min(calc(100% - 80px),1100px)!important;margin:0 auto!important;padding:0!important;text-align:left!important}
  #consultants .consultants-details > h3, #consultants .consultants-details > p, #consultants .consultants-details > ul{margin-left:0!important;margin-right:0!important;text-align:left!important}
}
@media (max-width:900px){
  #consultants > .consultants-section-inner{padding-inline:0!important}
  #consultants .consultants-split{display:flex!important;flex-direction:column!important;gap:0!important}
  #consultants .consultants-copy{order:2;padding:30px 22px!important;text-align:left!important}
  #consultants .consultants-media{order:1;width:100%!important;margin:0!important;aspect-ratio:16/10!important}
  #consultants .consultants-media img{width:100%!important;height:100%!important;object-fit:cover!important}
  #consultants .consultants-details{padding:0 22px!important}
}

/* ================= Services 50/50 et alignements v26 ================= */
main > .subnav-section, main > .subnav-target-section{display:block!important}
@media (min-width:901px){
  main > .subnav-section > .wrap:first-child, main > .subnav-target-section > .wrap:first-child{width:100%!important;max-width:none!important;padding-left:0!important;padding-right:0!important;margin:0!important}
  main > .subnav-section .intro, main > .subnav-target-section .intro{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;gap:0!important;width:100%!important;margin:0 0 clamp(46px,5vw,72px)!important;align-items:stretch!important}
  main > .subnav-section .intro .fig, main > .subnav-target-section .intro .fig{grid-column:1!important;grid-row:1!important;width:100%!important;height:100%!important;min-height:clamp(430px,36vw,580px)!important;margin:0!important;aspect-ratio:auto!important;overflow:hidden!important;background:var(--grey-light)!important}
  main > .subnav-section .intro .fig img, main > .subnav-target-section .intro .fig img{display:block!important;width:100%!important;height:100%!important;min-height:100%!important;max-height:none!important;aspect-ratio:auto!important;object-fit:cover!important;object-position:center!important}
  main > .subnav-section .intro .head, main > .subnav-target-section .intro .head{grid-column:2!important;grid-row:1!important;box-sizing:border-box!important;display:flex!important;flex-direction:column!important;justify-content:center!important;align-items:flex-start!important;width:100%!important;min-width:0!important;padding:clamp(48px,5vw,78px) max(clamp(22px,4vw,40px), calc((100vw - 1180px)/2 + 40px)) clamp(48px,5vw,78px) clamp(38px,5vw,76px)!important;text-align:left!important}
  main > .subnav-section .intro .head .eyebrow, main > .subnav-section .intro .head .subnav-section-title, main > .subnav-section .intro .head p, main > .subnav-target-section .intro .head .eyebrow, main > .subnav-target-section .intro .head .subnav-section-title, main > .subnav-target-section .intro .head p{width:100%!important;max-width:570px!important;margin-left:0!important;margin-right:0!important;text-align:left!important}
  main > .subnav-section > .wrap:first-child > .grid, main > .subnav-target-section > .wrap:first-child > .grid{width:min(calc(100% - 80px),1100px)!important;max-width:1100px!important;margin-left:auto!important;margin-right:auto!important}
  main > .subnav-section > .wrap:first-child > .narrow, main > .subnav-target-section > .wrap:first-child > .narrow, main > .subnav-section > .wrap.narrow, main > .subnav-target-section > .wrap.narrow{width:min(calc(100% - 80px),920px)!important;max-width:920px!important;margin-left:auto!important;margin-right:auto!important;padding-left:0!important;padding-right:0!important;text-align:left!important}
}
@media (max-width:900px){
  main > .subnav-section > .wrap:first-child, main > .subnav-target-section > .wrap:first-child{padding-inline:0!important}
  main > .subnav-section .intro, main > .subnav-target-section .intro{display:flex!important;flex-direction:column!important;gap:0!important;margin-bottom:34px!important}
  main > .subnav-section .intro .fig, main > .subnav-target-section .intro .fig{order:1!important;width:100%!important;min-height:0!important;margin:0!important;aspect-ratio:16/10!important}
  main > .subnav-section .intro .head, main > .subnav-target-section .intro .head{order:2!important;padding:30px 22px 10px!important;text-align:left!important}
  main > .subnav-section > .wrap:first-child > .grid, main > .subnav-target-section > .wrap:first-child > .grid, main > .subnav-section > .wrap:first-child > .narrow, main > .subnav-target-section > .wrap:first-child > .narrow, main > .subnav-section > .wrap.narrow, main > .subnav-target-section > .wrap.narrow{padding-left:22px!important;padding-right:22px!important}
}

/* === Fin sous-sections quatre cartouches v43 === */
.hp-field{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}

/* ================= Visuels d’ouverture 50 % v26 ================= */
@media (min-width:901px){
  main > .hero-split, body.home-page .pagenav + main > .hero-split, body:not(.home-page) main > .pagenav + .hero-split{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;width:100%!important}
}

/* Visuel d’ouverture 50 % v26 */
@media (min-width:901px){
  main > .hero-split{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;width:100%!important}
}

/* ================= Visuels d’ouverture 50 % v26 ================= */
@media (min-width:901px){
  main > .hero-split > .hs-text, main > .hero-split > .hs-media{width:100%!important;min-width:0!important}
  main > .hero-split > .hs-media img{display:block!important;width:100%!important;height:100%!important;max-width:none!important;max-height:none!important;object-fit:cover!important}
}

/* ================= Correctif alignement vertical section 03 v27 ================= */
@media (min-width:901px){
  #consultants .consultants-copy{justify-content:flex-start!important;padding-top:0!important}
}

/* ================= Fin visuels 50 % v26 ================= */
@media (min-width:901px){
  main > .subnav-section .intro .head, main > .subnav-target-section .intro .head{align-self:stretch!important;height:100%!important}
}

/* Les pratiques respirent davantage : introduction 50/50, cartes régulières, puis deux grands panneaux pour les points de vigilance et les livrables. */
main > .subnav-section, main > .subnav-target-section{--practice-max:1180px;--practice-gap:clamp(22px,2.4vw,32px)}
@media (min-width:901px){
  main > .subnav-section .intro, main > .subnav-target-section .intro{margin-bottom:clamp(54px,6vw,84px)!important}
}
main .practice-capabilities{counter-reset:capability;width:min(calc(100% - 64px),var(--practice-max))!important;max-width:var(--practice-max)!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:var(--practice-gap)!important;align-items:stretch}
main .practice-capabilities .capability-card{counter-increment:capability;position:relative;display:flex;flex-direction:column;min-height:205px;padding:30px 30px 32px!important;border:1px solid #d9dde5!important;border-top:1px solid #d9dde5!important;border-radius:12px!important;background:#fff!important;box-shadow:0 8px 24px rgba(24,40,72,.055);overflow:hidden}
main .practice-capabilities .capability-card::before{content:counter(capability, decimal-leading-zero);display:block;margin-bottom:22px;font-family:var(--fd);font-size:14px;line-height:1;letter-spacing:.12em;color:var(--orange)}
main .practice-capabilities .capability-card::after{content:"";position:absolute;left:0;top:0;width:4px;height:100%;background:var(--orange);opacity:.72;transform:scaleY(.22);transform-origin:top;transition:transform .28s var(--ease),opacity .28s var(--ease)}
main .practice-capabilities .capability-card:hover{transform:translateY(-4px);border-color:#c8ced9!important;box-shadow:0 14px 34px rgba(24,40,72,.10)}
main .practice-capabilities .capability-card:hover::after{transform:scaleY(1);opacity:1}
main .practice-capabilities .capability-card h3{margin:0 0 12px;font-size:clamp(20px,1.55vw,24px);line-height:1.2}
main .practice-capabilities .capability-card p{margin:0;font-size:16px;line-height:1.68;max-width:35ch}
main .practice-note{width:min(calc(100% - 64px),var(--practice-max));margin:28px auto 0;padding:20px 24px;border-left:4px solid var(--orange);border-radius:0 10px 10px 0;background:#f6f7f9}
main .practice-note p{margin:0;max-width:none;font-size:16px;line-height:1.65}
main .practice-details{width:min(calc(100% - 64px),var(--practice-max))!important;max-width:var(--practice-max)!important;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr);gap:var(--practice-gap);margin:clamp(44px,5vw,72px) auto 0!important;padding:0!important;align-items:stretch}
main .detail-card{min-width:0;padding:clamp(28px,3vw,40px);border:1px solid #d9dde5;border-radius:12px;background:#fff;box-shadow:0 8px 24px rgba(24,40,72,.045)}
main .detail-card--deliverables{background:#f6f7f9}
main .detail-kicker{display:block;margin-bottom:13px;font-size:11px;line-height:1.2;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--orange)}
main .detail-card h3{margin:0 0 22px;font-size:clamp(22px,2vw,28px);line-height:1.2}
main .detail-card ul.clean{margin:0}
main .detail-card ul.clean li{margin-bottom:15px!important;padding-left:24px;font-size:15.5px;line-height:1.62!important;max-width:none}
main .detail-card ul.clean li:last-child{margin-bottom:0!important}
main .detail-card .tags{display:grid;grid-template-columns:1fr;gap:10px;margin:0}
main .detail-card .tags li{position:relative;padding:11px 14px 11px 34px;border:1px solid #d9dde5;border-radius:8px;background:#fff;font-size:14px;line-height:1.35}
main .detail-card .tags li::before{content:"";position:absolute;left:14px;top:50%;width:7px;height:7px;border-radius:50%;background:var(--orange);transform:translateY(-50%)}

/* Espacement entre pratiques : davantage de respiration sans créer de vide. */
main > .subnav-section, main > .subnav-target-section{padding-bottom:clamp(58px,7vw,94px)!important}
main > .subnav-section + .subnav-section, main > .subnav-target-section + .subnav-target-section, main > .subnav-section + .subnav-target-section, main > .subnav-target-section + .subnav-section{border-top:1px solid #e2e5eb}
@media (max-width:1050px){
  main .practice-capabilities{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  main .practice-details{grid-template-columns:1fr 1fr}
}
@media (max-width:760px){
  main .practice-capabilities, main .practice-note, main .practice-details{width:calc(100% - 40px)!important}
  main .practice-capabilities{grid-template-columns:1fr!important;gap:16px!important}
  main .practice-capabilities .capability-card{min-height:0;padding:24px 24px 26px!important}
  main .practice-capabilities .capability-card::before{margin-bottom:16px}
  main .practice-capabilities .capability-card p{max-width:none}
  main .practice-details{grid-template-columns:1fr;gap:16px;margin-top:34px!important}
  main .detail-card{padding:24px 22px}
  main > .subnav-section, main > .subnav-target-section{padding-bottom:54px!important}
}
@media (prefers-reduced-motion:reduce){
  main .practice-capabilities .capability-card, main .practice-capabilities .capability-card::after{transition:none!important}
}

/* ================= Sous-sections plein écran responsives v32 ================= Chaque sous-section occupe au minimum la hauteur visible sous l’en-tête et le sommaire éventuel. Les contenus longs restent entièrement accessibles. */
:root{--fallback-sticky-stack:96px}
main > section:not(.hero-split):not(.pagehead):not(.cta):not(.err){width:100%!important;min-height:calc(100vh - var(--sticky-stack,var(--fallback-sticky-stack)))!important;min-height:calc(100svh - var(--sticky-stack,var(--fallback-sticky-stack)))!important;height:auto!important;padding-top:clamp(44px,6svh,82px)!important;padding-bottom:clamp(44px,6svh,82px)!important;margin:0!important;box-sizing:border-box!important;display:flex!important;flex-direction:column!important;justify-content:flex-start!important;align-items:stretch!important;overflow:visible!important}
main > section:not(.hero-split):not(.pagehead):not(.cta):not(.err) > *{width:100%;flex:0 0 auto}
main > section:not(.hero-split):not(.pagehead):not(.cta):not(.err) > .wrap{margin-inline:auto}

/* Une section courte respire comme une ouverture de page ; une section longue s’agrandit naturellement au lieu d’introduire un défilement interne. */
main > section:not(.hero-split):not(.pagehead):not(.cta):not(.err) .subnav-target-active, main > section:not(.hero-split):not(.pagehead):not(.cta):not(.err) .subnav-target-section{max-height:none!important;overflow:visible!important}
@media(max-width:900px){
  :root{--fallback-sticky-stack:80px}
  main > section:not(.hero-split):not(.pagehead):not(.cta):not(.err){min-height:calc(100dvh - var(--sticky-stack,var(--fallback-sticky-stack)))!important;min-height:calc(100svh - var(--sticky-stack,var(--fallback-sticky-stack)))!important;padding-top:clamp(34px,5svh,56px)!important;padding-bottom:clamp(34px,5svh,56px)!important}
}
@media(max-width:520px){
  main > section:not(.hero-split):not(.pagehead):not(.cta):not(.err){padding-top:32px!important;padding-bottom:38px!important}
}

/* ================= Correctif carrousel Expertises v33 ================= Les commandes restent dans la zone visible, même sur un écran peu haut. */
@media (min-width:901px){
  #expertises{height:calc(100vh - var(--sticky-stack,var(--fallback-sticky-stack)))!important;height:calc(100svh - var(--sticky-stack,var(--fallback-sticky-stack)))!important;min-height:calc(100vh - var(--sticky-stack,var(--fallback-sticky-stack)))!important;min-height:calc(100svh - var(--sticky-stack,var(--fallback-sticky-stack)))!important;max-height:calc(100vh - var(--sticky-stack,var(--fallback-sticky-stack)))!important;max-height:calc(100svh - var(--sticky-stack,var(--fallback-sticky-stack)))!important;padding-top:clamp(14px,2.1svh,24px)!important;padding-bottom:clamp(12px,1.8svh,20px)!important;overflow:hidden!important}
  #expertises > .wrap{height:100%!important;min-height:0!important;display:grid!important;grid-template-rows:auto minmax(0,1fr)!important;align-content:stretch!important}
  #expertises > .wrap > .head{margin-bottom:clamp(10px,1.6svh,18px)!important}
  #expertises > .wrap > .head p{margin-bottom:0!important;line-height:1.45!important}
  #expertises .carousel{min-height:0!important;height:100%!important;display:grid!important;grid-template-rows:minmax(0,1fr) auto!important;align-content:stretch!important}
  #expertises .cviewport{min-height:0!important;height:100%!important;overflow:hidden!important}
  #expertises .ctrack, #expertises .slide, #expertises .slide-in{height:100%!important;min-height:0!important}
  #expertises .slide-in{padding-top:clamp(16px,2svh,26px)!important}
  #expertises .slide-idx{margin-bottom:clamp(8px,1.2svh,14px)!important}
  #expertises .slide h3{margin-bottom:0!important}
  #expertises .slide p{margin-bottom:clamp(8px,1.25svh,14px)!important}
  #expertises .slide .tags{margin-bottom:clamp(8px,1.15svh,13px)!important}
  #expertises .slide ul.clean{margin-bottom:clamp(7px,1svh,12px)!important}
  #expertises .slide .alink{padding-block:3px!important}
  #expertises .cui{min-height:46px!important;height:46px!important;margin-top:clamp(8px,1.2svh,14px)!important;flex:0 0 46px!important}
  #expertises .cbtn{width:42px!important;height:42px!important}
}
@media (min-width:901px) and (max-height:700px){
  #expertises{padding-top:10px!important;padding-bottom:8px!important}
  #expertises > .wrap > .head{margin-bottom:7px!important}
  #expertises > .wrap > .head .eyebrow{margin-bottom:5px!important}
  #expertises > .wrap > .head h2{font-size:clamp(28px,4.5svh,36px)!important;margin-bottom:6px!important}
  #expertises > .wrap > .head p{font-size:13.5px!important;line-height:1.35!important}
  #expertises .slide-in{padding-top:10px!important;gap:22px!important}
  #expertises .slide-idx{font-size:38px!important;margin-bottom:5px!important}
  #expertises .slide h3{font-size:23px!important}
  #expertises .slide p{font-size:12.8px!important;line-height:1.36!important;margin-bottom:6px!important}
  #expertises .slide .tags{margin-bottom:6px!important}
  #expertises .slide .tags li{font-size:11px!important;padding:3px 8px!important}
  #expertises .slide ul.clean{margin-bottom:5px!important}
  #expertises .slide ul.clean li{font-size:12.2px!important;line-height:1.3!important;margin-bottom:2px!important}
  #expertises .slide .alink{min-height:28px!important;font-size:12.5px!important}
  #expertises .cui{height:38px!important;min-height:38px!important;flex-basis:38px!important;margin-top:5px!important}
  #expertises .cbtn{width:36px!important;height:36px!important}
}
@media (max-width:900px){
  #expertises .cui{margin-top:20px!important;padding-bottom:4px!important}
}

/* ================= Cartouches Expertises harmonisés v34 ================= Toute la hauteur utile du cartouche participe à la composition : titre centré dans sa colonne, contenu réparti avec des respirations régulières. */
@media (min-width:901px){
  #expertises .cviewport{padding:2px!important}
  #expertises .slide-in{height:100%!important;min-height:0!important;box-sizing:border-box!important;grid-template-columns:minmax(220px,.78fr) minmax(0,1.22fr)!important;gap:clamp(32px,4vw,64px)!important;padding:clamp(24px,3.4svh,44px) clamp(28px,3.8vw,54px)!important;align-items:stretch!important;align-content:stretch!important;background:#fff!important;border:1px solid rgba(23,39,68,.13)!important;border-top:1px solid rgba(23,52,97,.10)!important;border-radius:18px!important;box-shadow:0 18px 44px rgba(23,39,68,.10)!important;overflow:hidden!important}
  #expertises .slide-in > div{min-width:0!important;min-height:0!important}
  #expertises .slide-in > div:first-child{display:flex!important;flex-direction:column!important;justify-content:center!important;align-items:flex-start!important;padding-right:clamp(26px,3vw,46px)!important;border-right:1px solid var(--line)!important}
  #expertises .slide-in > div:last-child{display:grid!important;grid-template-rows:auto auto minmax(0,1fr) auto!important;align-content:stretch!important;gap:clamp(14px,2svh,24px)!important}
  #expertises .slide-idx{margin:0 0 clamp(14px,2svh,22px)!important;font-size:clamp(50px,7svh,72px)!important}
  #expertises .slide h3{margin:0!important;max-width:10ch!important;font-size:clamp(28px,3.7svh,34px)!important;line-height:1.12!important}
  #expertises .slide p{margin:0!important;max-width:none!important;font-size:clamp(14px,1.78svh,16px)!important;line-height:1.58!important}
  #expertises .slide .tags{margin:0!important}
  #expertises .slide ul.clean{margin:0!important;align-self:center!important;width:100%!important}
  #expertises .slide ul.clean li{margin-bottom:clamp(7px,1.05svh,12px)!important;max-width:none!important;font-size:clamp(13.5px,1.68svh,15.5px)!important;line-height:1.48!important}
  #expertises .slide ul.clean li:last-child{margin-bottom:0!important}
  #expertises .slide .alink{margin:0!important;min-height:40px!important;padding:7px 0!important;align-self:end!important;justify-self:start!important;font-size:14px!important}
}

/* Écrans de bureau peu hauts : même composition, avec des respirations proportionnellement réduites pour garder les commandes visibles. */
@media (min-width:901px) and (max-height:760px){
  #expertises .slide-in{gap:26px!important;padding:16px 26px!important;border-radius:14px!important}
  #expertises .slide-in > div:first-child{padding-right:24px!important}
  #expertises .slide-in > div:last-child{gap:7px!important}
  #expertises .slide-idx{margin-bottom:7px!important;font-size:38px!important}
  #expertises .slide h3{font-size:23px!important}
  #expertises .slide p{font-size:12.7px!important;line-height:1.35!important}
  #expertises .slide ul.clean li{margin-bottom:2px!important;font-size:12.1px!important;line-height:1.28!important}
  #expertises .slide .alink{min-height:28px!important;padding:2px 0!important;font-size:12.5px!important}
}
@media (max-width:900px){
  #expertises .slide-in{padding:clamp(24px,6vw,34px)!important;border-radius:15px!important;gap:26px!important;box-shadow:0 14px 34px rgba(23,39,68,.09)!important}
  #expertises .slide-in > div:first-child{padding-bottom:22px!important;border-bottom:1px solid var(--line)!important}
  #expertises .slide-in > div:last-child{display:grid!important;gap:18px!important}
  #expertises .slide-idx{margin-bottom:10px!important}
  #expertises .slide p, #expertises .slide .tags, #expertises .slide ul.clean{margin:0!important}
  #expertises .slide .alink{margin-top:2px!important}
}

/* ================= Logos et alignement des tags Expertises v35 ================= */
@media (min-width:901px){
  #expertises .slide .tags{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:10px!important;width:100%!important;align-self:start!important}
  #expertises .slide .tags li{min-height:58px!important;width:100%!important;padding:8px 12px!important;display:flex!important;align-items:center!important;justify-content:center!important;text-align:center!important;border-radius:14px!important;background:linear-gradient(180deg,#ffffff 0%,#f5f8fc 100%)!important;border:1px solid rgba(23,39,68,.12)!important;color:var(--navy)!important;font-size:12.5px!important;line-height:1.2!important;font-weight:600!important;box-shadow:0 6px 16px rgba(23,39,68,.06)!important}
  #expertises .slide .tags li.tag-chip{gap:10px!important;justify-content:center!important}
  #expertises .slide .tags .tag-icon{width:26px!important;height:26px!important;flex:0 0 26px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important}
  #expertises .slide .tags .tag-icon svg{width:100%!important;height:100%!important;display:block!important}
  #expertises .slide .tags .tag-label{display:inline-flex!important;align-items:center!important;justify-content:center!important;text-align:center!important}
}
@media (min-width:901px) and (max-height:760px){
  #expertises .slide .tags{gap:7px!important}
  #expertises .slide .tags li{min-height:46px!important;padding:6px 8px!important;font-size:11px!important;border-radius:12px!important}
  #expertises .slide .tags .tag-icon{width:22px!important;height:22px!important;flex-basis:22px!important}
  #expertises .slide .tags li.tag-chip{gap:7px!important}
}
@media (max-width:900px){
  #expertises .slide .tags{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important;width:100%!important}
  #expertises .slide .tags li{min-height:50px!important;width:100%!important;padding:8px 10px!important;display:flex!important;align-items:center!important;justify-content:center!important;text-align:center!important;border-radius:13px!important;background:linear-gradient(180deg,#ffffff 0%,#f5f8fc 100%)!important;border:1px solid rgba(23,39,68,.12)!important;font-size:11.5px!important;font-weight:600!important;line-height:1.2!important}
  #expertises .slide .tags li.tag-chip{gap:8px!important}
  #expertises .slide .tags .tag-icon{width:24px!important;height:24px!important;flex:0 0 24px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important}
  #expertises .slide .tags .tag-icon svg{width:100%!important;height:100%!important;display:block!important}
}
#expertises .tag-chip--powerbi .tag-icon svg rect:nth-child(1){fill:#f2c811!important}
#expertises .tag-chip--powerbi .tag-icon svg rect:nth-child(2){fill:#e9b800!important}
#expertises .tag-chip--powerbi .tag-icon svg rect:nth-child(3){fill:#d9a400!important}
#expertises .tag-chip--python .py-top{fill:#3776ab!important}
#expertises .tag-chip--python .py-bottom{fill:#ffd43b!important}
#expertises .tag-chip--agile .ag1{fill:#172744!important}
#expertises .tag-chip--agile .ag2{fill:#ff7a00!important}

/* ================= Carrousels adaptatifs des sous-sections v36 ================= Une sous-section n'est paginée que si son contenu naturel dépasse la hauteur réellement disponible sous l'en-tête et le sommaire. */
.auto-carousel-section{height:calc(100vh - var(--sticky-stack,var(--fallback-sticky-stack)))!important;height:calc(100svh - var(--sticky-stack,var(--fallback-sticky-stack)))!important;min-height:calc(100vh - var(--sticky-stack,var(--fallback-sticky-stack)))!important;min-height:calc(100svh - var(--sticky-stack,var(--fallback-sticky-stack)))!important;max-height:calc(100vh - var(--sticky-stack,var(--fallback-sticky-stack)))!important;max-height:calc(100svh - var(--sticky-stack,var(--fallback-sticky-stack)))!important;padding-top:clamp(18px,2.7svh,30px)!important;padding-bottom:clamp(14px,2.1svh,24px)!important;overflow:hidden!important}
.auto-carousel-section > .auto-carousel-frame{width:min(100%,1184px)!important;margin:0 auto!important;padding-inline:32px!important;display:grid!important;grid-template-rows:auto minmax(0,1fr)!important;align-content:stretch!important}
.auto-carousel-header{min-width:0;margin:0 0 clamp(10px,1.6svh,18px)}
.auto-carousel-header .eyebrow{margin-bottom:clamp(7px,1svh,12px)!important}
.auto-carousel-header h2{margin:0!important;font-size:clamp(27px,3.4vw,40px)!important}
.auto-carousel{min-height:0;height:100%;display:grid;grid-template-rows:minmax(0,1fr) auto;align-content:stretch}
.auto-carousel-viewport{min-height:0;height:100%;overflow:hidden;padding:2px}
.auto-carousel-track{display:flex;width:100%;height:100%;margin:0;padding:0;list-style:none;transition:transform .65s var(--ease);will-change:transform}
.auto-carousel-slide{flex:0 0 100%;min-width:100%;height:100%;padding:0;list-style:none}
.auto-carousel-slide-inner{height:100%;min-height:0;overflow:hidden;display:flex;flex-direction:column;justify-content:center;background:#fff;border:1px solid rgba(23,39,68,.13);border-top:4px solid var(--orange);border-radius:18px;box-shadow:0 18px 44px rgba(23,39,68,.09)}
.section-surface--blue .auto-carousel-slide-inner{background:rgba(255,255,255,.94)}
.auto-carousel-slide-inner > *{width:100%;max-width:none!important;margin-top:0!important;margin-bottom:0!important}
.auto-carousel-slide-inner > .grid, .auto-carousel-slide-inner > .stats, .auto-carousel-slide-inner > .case-grid, .auto-carousel-slide-inner > .contact-topic-grid, .auto-carousel-slide-inner > .contact-step-grid, .auto-carousel-slide-inner > .practice-capabilities{width:100%!important}
.auto-carousel-slide-inner .item, .auto-carousel-slide-inner .capability-card, .auto-carousel-slide-inner .detail-card{min-height:0!important}
.auto-carousel-slide-inner .fig, .auto-carousel-slide-inner figure{max-height:min(38svh,360px);overflow:hidden}
.auto-carousel-slide-inner figure img{width:100%;height:100%;max-height:min(38svh,360px);object-fit:cover}
.auto-carousel-slide-inner.auto-slide-scroll{justify-content:flex-start;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent}
.auto-carousel-slide-inner.auto-slide-scroll::after{content:"Faire défiler ce panneau pour voir la suite";position:sticky;bottom:-1px;align-self:center;width:auto;margin-top:12px!important;padding:5px 12px;border-radius:999px;background:rgba(255,255,255,.94);border:1px solid var(--line);color:var(--mute);font-size:11px;letter-spacing:.04em}
.auto-carousel-controls{min-height:46px;height:46px;margin-top:clamp(8px,1.25svh,14px);display:flex;align-items:center;gap:18px}
.auto-carousel-btn{width:42px;height:42px;flex:0 0 42px;border:1px solid var(--line-strong);background:transparent;border-radius:50%;display:grid;place-items:center;cursor:pointer;color:var(--navy);transition:all .3s var(--ease);padding:0}
.auto-carousel-btn:hover{background:var(--navy);border-color:var(--navy);color:#fff}
.auto-carousel-btn svg{width:17px;height:17px}
.auto-carousel-dots{display:flex;align-items:center;gap:8px;min-width:0;overflow-x:auto;padding:5px 2px}
.auto-carousel-dot{width:24px;height:3px;flex:0 0 24px;padding:0;border:0;background:var(--line-strong);cursor:pointer}
.auto-carousel-dot[aria-selected="true"]{background:var(--orange)}
.auto-carousel-pos{font-family:var(--fd);font-size:15px;color:var(--mute);letter-spacing:.08em;white-space:nowrap}
.auto-carousel-pos b{color:var(--navy);font-weight:400}
.auto-content-group{display:flex;flex-direction:column;gap:clamp(10px,1.4svh,17px)}
.auto-content-group > *{margin:0!important;max-width:none!important}
.auto-carousel-section .contact-layout, .auto-carousel-section .consultants-split, .auto-carousel-section .intro{min-height:0!important}
.auto-carousel-section .practice-details{margin-top:0!important}
@media(max-width:900px){
  .auto-carousel-section{height:calc(100dvh - var(--sticky-stack,var(--fallback-sticky-stack)))!important;height:calc(100svh - var(--sticky-stack,var(--fallback-sticky-stack)))!important;min-height:calc(100dvh - var(--sticky-stack,var(--fallback-sticky-stack)))!important;min-height:calc(100svh - var(--sticky-stack,var(--fallback-sticky-stack)))!important;max-height:calc(100dvh - var(--sticky-stack,var(--fallback-sticky-stack)))!important;max-height:calc(100svh - var(--sticky-stack,var(--fallback-sticky-stack)))!important;padding-top:14px!important;padding-bottom:12px!important}
  .auto-carousel-section > .auto-carousel-frame{padding-inline:22px!important}
  .auto-carousel-header{margin-bottom:9px}
  .auto-carousel-header .eyebrow{margin-bottom:5px!important}
  .auto-carousel-header h2{font-size:clamp(24px,7vw,32px)!important}
  .auto-carousel-slide-inner{justify-content:flex-start;gap:16px;padding:22px 20px;border-radius:15px}
  .auto-carousel-slide-inner .g2, .auto-carousel-slide-inner .g3, .auto-carousel-slide-inner .stats, .auto-carousel-slide-inner .case-grid, .auto-carousel-slide-inner .contact-topic-grid, .auto-carousel-slide-inner .contact-step-grid{grid-template-columns:1fr!important}
  .auto-carousel-controls{height:42px;min-height:42px;margin-top:7px;gap:12px}
  .auto-carousel-btn{width:38px;height:38px;flex-basis:38px}
  .auto-carousel-pos{font-size:13px}
}
@media(max-height:700px) and (min-width:901px){
  .auto-carousel-section{padding-top:10px!important;padding-bottom:8px!important}
  .auto-carousel-header{margin-bottom:6px}
  .auto-carousel-header .eyebrow{margin-bottom:4px!important}
  .auto-carousel-header h2{font-size:clamp(25px,4.4svh,34px)!important}
  .auto-carousel-slide-inner{gap:9px;padding:14px 22px;border-radius:14px}
  .auto-carousel-slide-inner p, .auto-carousel-slide-inner li{font-size:12.7px!important;line-height:1.35!important}
  .auto-carousel-slide-inner h3{font-size:15px!important;margin-bottom:2px!important}
  .auto-carousel-controls{height:38px;min-height:38px;margin-top:5px}
  .auto-carousel-btn{width:36px;height:36px;flex-basis:36px}
}
@media print{
  .auto-carousel-section{height:auto!important;max-height:none!important;overflow:visible!important}
  .auto-carousel-section > .auto-carousel-frame{display:block!important;height:auto!important}
  .auto-carousel-track{display:block!important;transform:none!important}
  .auto-carousel-slide{height:auto!important;margin-bottom:14px}
  .auto-carousel-slide-inner{height:auto!important;overflow:visible!important;box-shadow:none!important}
  .auto-carousel-controls{display:none!important}
}

/* ================= Correctif carrousels contenus longs v37 ================= */
.auto-carousel-section{display:grid!important;grid-template-rows:minmax(0,1fr)!important;align-content:stretch!important;justify-content:stretch!important}
.auto-carousel-section > .auto-carousel-frame{height:auto!important;max-height:100%!important;min-height:0!important;overflow:hidden!important;flex:1 1 auto!important;align-self:stretch!important}
.auto-carousel-section .auto-carousel, .auto-carousel-section .auto-carousel-viewport, .auto-carousel-section .auto-carousel-track, .auto-carousel-section .auto-carousel-slide{min-height:0!important;max-height:100%!important}
.auto-carousel-section .auto-carousel-slide-inner{box-sizing:border-box!important;justify-content:flex-start!important;gap:clamp(9px,1.25svh,15px)!important;padding:clamp(15px,2.2svh,25px) clamp(18px,2.7vw,34px)!important}
.auto-carousel-section .auto-carousel-slide-inner p, .auto-carousel-section .auto-carousel-slide-inner li{line-height:1.42!important}
.auto-carousel-section .auto-carousel-slide-inner .fig, .auto-carousel-section .auto-carousel-slide-inner figure{overflow:hidden!important;max-height:min(25svh,230px)!important}
.auto-carousel-section .auto-carousel-slide-inner figure img{width:100%!important;height:100%!important;max-height:min(25svh,230px)!important;object-fit:cover!important}
.auto-carousel-section .auto-carousel-slide-inner .intro, .auto-carousel-section .auto-carousel-slide-inner .consultants-split{min-height:0!important;align-items:stretch!important}
.auto-carousel-section .auto-carousel-slide-inner .intro .fig, .auto-carousel-section .auto-carousel-slide-inner .consultants-media{min-height:0!important;height:min(25svh,230px)!important}
.auto-carousel-section .auto-carousel-slide-inner .intro .fig img, .auto-carousel-section .auto-carousel-slide-inner .consultants-media img{height:100%!important;object-fit:cover!important}
.auto-carousel-section .auto-carousel-slide-inner .capability-card, .auto-carousel-section .auto-carousel-slide-inner .case-block, .auto-carousel-section .auto-carousel-slide-inner .detail-card{padding:clamp(14px,1.8svh,20px)!important}
.auto-carousel-section .auto-carousel-slide-inner .case-lead{max-width:92ch!important}
.auto-carousel-section .auto-carousel-slide-inner .case-facts{margin-block:0!important}
@media(max-width:900px){
  .auto-carousel-section .auto-carousel-slide-inner{gap:10px!important;padding:14px 16px!important}
  .auto-carousel-section .auto-carousel-slide-inner .fig, .auto-carousel-section .auto-carousel-slide-inner figure, .auto-carousel-section .auto-carousel-slide-inner .intro .fig, .auto-carousel-section .auto-carousel-slide-inner .consultants-media{height:min(20svh,150px)!important;max-height:min(20svh,150px)!important}
  .auto-carousel-section .auto-carousel-slide-inner figure img{max-height:min(20svh,150px)!important}
  .auto-carousel-section .auto-carousel-slide-inner p, .auto-carousel-section .auto-carousel-slide-inner li{font-size:13.5px!important;line-height:1.38!important}
}
@media(max-height:720px) and (min-width:901px){
  .auto-carousel-section .auto-carousel-slide-inner .fig, .auto-carousel-section .auto-carousel-slide-inner figure, .auto-carousel-section .auto-carousel-slide-inner .intro .fig, .auto-carousel-section .auto-carousel-slide-inner .consultants-media{height:min(21svh,170px)!important;max-height:min(21svh,170px)!important}
}

/* ================= Ajustements ciblés carrousels v37.1 ================= */
#consultants.auto-carousel-section{display:grid!important;grid-template-rows:minmax(0,1fr)!important;overflow:hidden!important}
#consultants.auto-carousel-section > .auto-carousel-frame{height:auto!important;max-height:100%!important;min-height:0!important}
#consultants.auto-carousel-section .consultants-split{width:100%!important;height:auto!important;min-height:0!important;margin:0!important;gap:clamp(18px,2.5vw,32px)!important;align-items:stretch!important}
#consultants.auto-carousel-section .consultants-copy{padding:clamp(12px,1.8svh,22px)!important;justify-content:flex-start!important}
#consultants.auto-carousel-section .consultants-media{min-height:0!important;height:min(24svh,210px)!important;max-height:min(24svh,210px)!important}
#consultants.auto-carousel-section .consultants-media img{min-height:0!important;height:100%!important;max-height:100%!important}
#consultants.auto-carousel-section .consultants-details{width:100%!important;padding:0!important;margin:0!important}
@media(max-width:900px){
  #consultants.auto-carousel-section .consultants-split{display:flex!important;gap:10px!important}
  #consultants.auto-carousel-section .consultants-copy{padding:12px 14px!important}
  #consultants.auto-carousel-section .consultants-media{height:min(18svh,135px)!important;max-height:min(18svh,135px)!important}
}
@media(min-width:901px) and (max-height:820px){
  .auto-carousel-section .auto-carousel-slide-inner{gap:7px!important;padding:11px 18px!important}
  .auto-carousel-section .auto-carousel-slide-inner .capability-card, .auto-carousel-section .auto-carousel-slide-inner .case-block, .auto-carousel-section .auto-carousel-slide-inner .detail-card{padding:12px 15px!important}
  .auto-carousel-section .auto-carousel-slide-inner p, .auto-carousel-section .auto-carousel-slide-inner li{font-size:13px!important;line-height:1.32!important}
  .auto-carousel-section .auto-carousel-slide-inner h3{font-size:15px!important}
}

/* ================= Correctif largeur mobile carrousels v37.2 ================= */
.auto-carousel-section .auto-carousel-frame, .auto-carousel-section .auto-carousel, .auto-carousel-section .auto-carousel-viewport, .auto-carousel-section .auto-carousel-track, .auto-carousel-section .auto-carousel-slide, .auto-carousel-section .auto-carousel-slide-inner{width:100%!important;max-width:100%!important;min-width:0!important}
.auto-carousel-section .auto-carousel-slide{overflow:hidden!important}
.auto-carousel-section .auto-carousel-slide-inner > *, .auto-carousel-section .auto-carousel-slide-inner .intro, .auto-carousel-section .auto-carousel-slide-inner .intro .fig, .auto-carousel-section .auto-carousel-slide-inner .intro .head, .auto-carousel-section .auto-carousel-slide-inner .consultants-split, .auto-carousel-section .auto-carousel-slide-inner .consultants-copy, .auto-carousel-section .auto-carousel-slide-inner .consultants-media{min-width:0!important;max-width:100%!important}
@media(max-width:900px){
  .auto-carousel-section .auto-carousel-slide-inner .intro{width:100%!important;display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:12px!important;margin:0!important}
  .auto-carousel-section .auto-carousel-slide-inner .intro .fig, .auto-carousel-section .auto-carousel-slide-inner .intro .head{width:100%!important;padding-left:0!important;padding-right:0!important}
  .auto-carousel-section .auto-carousel-slide-inner .intro .fig{order:1!important}
  .auto-carousel-section .auto-carousel-slide-inner .intro .head{order:2!important;padding-top:8px!important;padding-bottom:0!important}
  .auto-carousel-section .auto-carousel-slide-inner .intro .head p{max-width:100%!important}
  .auto-carousel-section .auto-carousel-controls{max-width:100%!important;overflow:hidden!important}
  .auto-carousel-section .auto-carousel-dots{flex:1 1 auto!important}
}

/* ================= Optimisation de l'espace des cartouches v38 ================= */
.auto-carousel-slide-inner{--card-pad-y:clamp(18px,2.45svh,30px);--card-pad-x:clamp(20px,3vw,40px);--card-gap:clamp(12px,1.7svh,20px);padding:var(--card-pad-y) var(--card-pad-x)!important;gap:var(--card-gap)!important;align-items:stretch!important;align-content:stretch!important}
.auto-carousel-slide-inner.carousel-space--single{display:flex!important;flex-direction:column!important;justify-content:stretch!important}
.auto-carousel-slide-inner.carousel-space--single > :only-child{flex:1 1 auto!important;min-height:0!important;width:100%!important}
.auto-carousel-slide-inner.carousel-space--duo.carousel-layout--structured{display:grid!important;grid-template-rows:repeat(2,minmax(0,1fr))!important;align-items:stretch!important}
.auto-carousel-slide-inner.carousel-space--duo:not(.carousel-layout--structured){display:flex!important;flex-direction:column!important;justify-content:space-evenly!important}
.auto-carousel-slide-inner.carousel-space--multi{display:flex!important;flex-direction:column!important;justify-content:space-between!important}
.auto-carousel-slide-inner.carousel-density--sparse:not(.carousel-layout--media){justify-content:center!important}
.auto-carousel-slide-inner.carousel-density--balanced:not(.carousel-layout--media){justify-content:space-evenly!important}
.auto-carousel-slide-inner.carousel-density--dense{justify-content:flex-start!important}
.auto-carousel-slide-inner > .auto-content-group{display:flex!important;flex-direction:column!important;justify-content:center!important;gap:clamp(10px,1.45svh,17px)!important;min-height:0!important}
.auto-carousel-slide-inner.carousel-space--duo.carousel-layout--structured > .auto-content-group, .auto-carousel-slide-inner.carousel-space--duo.carousel-layout--structured > .case-block, .auto-carousel-slide-inner.carousel-space--duo.carousel-layout--structured > .item, .auto-carousel-slide-inner.carousel-space--duo.carousel-layout--structured > .detail-card, .auto-carousel-slide-inner.carousel-space--duo.carousel-layout--structured > .capability-card{height:100%!important}
.auto-carousel-slide-inner.carousel-layout--grid > .grid, .auto-carousel-slide-inner.carousel-layout--grid > .stats, .auto-carousel-slide-inner.carousel-layout--grid > .case-grid, .auto-carousel-slide-inner.carousel-layout--grid > .contact-topic-grid, .auto-carousel-slide-inner.carousel-layout--grid > .contact-step-grid, .auto-carousel-slide-inner.carousel-layout--grid > .practice-capabilities, .auto-carousel-slide-inner.carousel-layout--grid > .practice-details{flex:1 1 auto!important;min-height:0!important;height:100%!important;align-items:stretch!important;align-content:stretch!important;grid-auto-rows:minmax(0,1fr)!important}
.auto-carousel-slide-inner.carousel-layout--grid .item, .auto-carousel-slide-inner.carousel-layout--grid .capability-card, .auto-carousel-slide-inner.carousel-layout--grid .detail-card, .auto-carousel-slide-inner.carousel-layout--grid .case-block{height:100%!important;min-height:0!important;display:flex!important;flex-direction:column!important;justify-content:center!important}
.auto-carousel-slide-inner.carousel-layout--media > .intro, .auto-carousel-slide-inner.carousel-layout--media > .consultants-split, .auto-carousel-slide-inner.carousel-layout--media > .contact-layout{flex:1 1 auto!important;min-height:0!important;height:100%!important;align-items:stretch!important}
.auto-carousel-slide-inner.carousel-layout--media .fig, .auto-carousel-slide-inner.carousel-layout--media figure, .auto-carousel-slide-inner.carousel-layout--media .consultants-media{height:100%!important;max-height:none!important;min-height:0!important}
.auto-carousel-slide-inner.carousel-layout--media .fig img, .auto-carousel-slide-inner.carousel-layout--media figure img, .auto-carousel-slide-inner.carousel-layout--media .consultants-media img{height:100%!important;max-height:none!important;object-fit:cover!important}
.auto-carousel-slide-inner.carousel-layout--text > p, .auto-carousel-slide-inner.carousel-layout--text > ul, .auto-carousel-slide-inner.carousel-layout--text > ol, .auto-carousel-slide-inner.carousel-layout--text > .auto-content-group{max-width:1040px!important;margin-inline:auto!important}
.auto-carousel-slide-inner h3, .auto-carousel-slide-inner h4{text-wrap:balance}
.auto-carousel-slide-inner p, .auto-carousel-slide-inner li{text-wrap:pretty}
.auto-carousel-controls{justify-content:center!important;position:relative}
.auto-carousel-dots{justify-content:center;max-width:min(48vw,520px)}
.auto-carousel-pos{position:absolute;right:0;margin-left:0!important}

/* Le carrousel Expertises utilise toute la hauteur du cartouche. */
#expertises .cviewport, #expertises .ctrack, #expertises .slide{height:100%!important;min-height:0!important}
#expertises .slide-in{height:100%!important;min-height:0!important;align-items:stretch!important;padding:clamp(22px,3svh,36px) clamp(24px,3.5vw,46px)!important;gap:clamp(26px,3.3vw,46px)!important}
#expertises .slide-in > div:first-child{height:100%!important;min-height:0!important;display:flex!important;flex-direction:column!important;justify-content:center!important;align-items:flex-start!important}
#expertises .slide-in > div:last-child{height:100%!important;min-height:0!important;display:grid!important;grid-template-rows:auto auto minmax(0,1fr) auto!important;align-items:center!important;align-content:stretch!important;gap:clamp(12px,1.75svh,20px)!important}
#expertises .slide p, #expertises .slide .tags, #expertises .slide ul.clean, #expertises .slide .alink{margin:0!important}
#expertises .slide .tags{align-self:stretch!important;justify-content:center!important}
#expertises .slide ul.clean{align-self:stretch!important;display:grid!important;align-content:center!important;gap:clamp(8px,1.2svh,14px)!important}
#expertises .slide .alink{align-self:flex-start!important}

/* Le carrousel d'images utilise toute la surface sans écraser la légende. */
#vie-cabinet .cviewport, #vie-cabinet .ctrack, #vie-cabinet .slide{height:100%!important;min-height:0!important}
#vie-cabinet .slide--img .fig{height:100%!important;min-height:0!important;display:grid!important;grid-template-rows:minmax(0,1fr) auto!important;gap:clamp(12px,1.7svh,18px)!important;align-items:stretch!important}
#vie-cabinet .slide--img .fig img{width:100%!important;height:100%!important;max-height:none!important;min-height:0!important;object-fit:cover!important}
#vie-cabinet .slide--img figcaption{margin:0!important;min-height:44px;align-items:center!important}
@media(max-width:900px){
  .auto-carousel-slide-inner{--card-pad-y:clamp(14px,2svh,20px);--card-pad-x:clamp(15px,4.5vw,22px);--card-gap:clamp(9px,1.35svh,14px)}
  .auto-carousel-slide-inner.carousel-space--duo.carousel-layout--structured{grid-template-rows:auto auto!important;align-content:space-evenly!important}
  .auto-carousel-pos{position:static;margin-left:auto!important}
  .auto-carousel-dots{max-width:44vw}
  #expertises .slide-in{height:auto!important;min-height:100%!important;gap:18px!important;padding:20px!important}
  #expertises .slide-in > div:first-child, #expertises .slide-in > div:last-child{height:auto!important}
  #expertises .slide-in > div:last-child{display:flex!important;flex-direction:column!important;align-items:stretch!important}
  #vie-cabinet .slide--img .fig{height:auto!important;min-height:0!important}
  #vie-cabinet .slide--img .fig img{height:auto!important;aspect-ratio:16/9!important}
}
@media(max-height:720px) and (min-width:901px){
  .auto-carousel-slide-inner{--card-pad-y:13px;--card-pad-x:22px;--card-gap:9px}
  #expertises .slide-in{padding:15px 24px!important;gap:28px!important}
  #expertises .slide-in > div:last-child{gap:8px!important}
}

/* ================= Fin optimisation cartouches v38 ================= */
.references-carousel .slide-in{gap:clamp(24px,3vw,40px)}
.references-carousel .slide-in > div:last-child{display:flex;flex-direction:column;justify-content:space-between;gap:clamp(18px,2vw,24px)}
.references-carousel .slide h3{margin-bottom:10px}
.references-carousel .slide p{max-width:64ch}
.client-logo-wall{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:14px;align-items:stretch}
.client-logo{min-height:92px;display:flex;align-items:center;justify-content:center;padding:16px 18px;border-radius:24px;background:linear-gradient(180deg,#ffffff 0%,#f5f8ff 100%);border:1px solid rgba(19,41,80,.10);box-shadow:0 14px 30px rgba(8,18,43,.08);color:#132950;font-weight:800;font-size:clamp(1rem,1.2vw,1.15rem);letter-spacing:.04em;line-height:1.15;text-align:center}
.client-logo--small{font-size:clamp(.95rem,1.1vw,1.05rem)}
.client-logo--wide{letter-spacing:.02em}
@media (max-width:900px){
  .client-logo-wall{grid-template-columns:repeat(2,minmax(0,1fr))}
  .client-logo{min-height:84px;padding:14px 12px}
}
@media (max-width:640px){
  .client-logo-wall{grid-template-columns:1fr 1fr;gap:10px}
  .references-carousel .slide-in{gap:18px}
  .client-logo{min-height:74px;border-radius:18px;font-size:.9rem}
}

/* Logo de remplissage de la section Méthode : visuel sans cartouche */
#methode .method-logo-fill{display:flex;align-items:center;justify-content:center;min-height:0;padding:clamp(18px,2.2vw,30px);background:transparent;border:0;border-radius:0;box-shadow:none}
#methode .method-logo-fill .card-logo{width:min(82%,430px);height:auto;max-height:clamp(92px,16vh,150px);opacity:.96}
@media (max-width:900px){
  #methode .method-logo-fill{min-height:clamp(110px,18vh,150px);padding:14px}
  #methode .method-logo-fill .card-logo{width:min(74%,320px)}
}

/* === Références : carrousel contenu dans la hauteur d'écran v46 === */
#references{overflow:hidden!important}
#references > .wrap{min-height:0!important}
@media (min-width:901px){
  #references{height:calc(100vh - var(--sticky-stack,var(--fallback-sticky-stack)))!important;height:calc(100svh - var(--sticky-stack,var(--fallback-sticky-stack)))!important;min-height:calc(100vh - var(--sticky-stack,var(--fallback-sticky-stack)))!important;min-height:calc(100svh - var(--sticky-stack,var(--fallback-sticky-stack)))!important;max-height:calc(100vh - var(--sticky-stack,var(--fallback-sticky-stack)))!important;max-height:calc(100svh - var(--sticky-stack,var(--fallback-sticky-stack)))!important;padding-top:clamp(10px,1.5svh,18px)!important;padding-bottom:clamp(8px,1.2svh,14px)!important}
  #references > .wrap{height:100%!important;display:grid!important;grid-template-rows:auto minmax(0,1fr)!important;align-content:stretch!important}
  #references > .wrap > .head{margin-bottom:clamp(7px,1svh,12px)!important}
  #references > .wrap > .head .eyebrow{margin-bottom:4px!important}
  #references > .wrap > .head h2{margin-bottom:clamp(5px,.7svh,8px)!important;line-height:1.08!important}
  #references > .wrap > .head p{margin:0!important;max-width:78ch!important;font-size:clamp(13px,1.55svh,15px)!important;line-height:1.38!important}
  #references .carousel{min-height:0!important;height:100%!important;display:grid!important;grid-template-rows:minmax(0,1fr) 42px!important;align-content:stretch!important}
  #references .cviewport, #references .ctrack, #references .slide, #references .slide-in{height:100%!important;min-height:0!important}
  #references .cviewport{overflow:hidden!important}
  #references .slide-in{box-sizing:border-box!important;grid-template-columns:minmax(170px,.58fr) minmax(0,1.42fr)!important;gap:clamp(20px,2.5vw,34px)!important;padding:clamp(12px,1.5svh,18px) clamp(20px,2.4vw,34px)!important;align-content:stretch!important;overflow:hidden!important}
  #references .slide-in > div:first-child{display:flex!important;flex-direction:column!important;justify-content:center!important}
  #references .slide-in > div:last-child{min-height:0!important;display:grid!important;grid-template-rows:auto minmax(0,1fr) auto!important;align-content:stretch!important;gap:clamp(7px,1svh,11px)!important}
  #references .slide-idx{font-size:clamp(40px,5.7svh,56px)!important;margin-bottom:clamp(5px,.8svh,9px)!important}
  #references .slide h3{font-size:clamp(23px,3svh,29px)!important;line-height:1.1!important;margin:0!important}
  #references .slide p{margin:0!important;font-size:clamp(13px,1.55svh,15px)!important;line-height:1.38!important}
  #references .client-logo-wall{min-height:0!important;height:100%!important;align-content:center!important;grid-auto-rows:minmax(54px,1fr)!important;gap:clamp(8px,1.1svh,12px)!important}
  #references .client-logo{min-height:0!important;height:100%!important;padding:clamp(8px,1.1svh,12px) 14px!important;border-radius:18px!important;font-size:clamp(13px,1.65svh,16px)!important;box-shadow:0 8px 20px rgba(8,18,43,.07)!important}
  #references .alink{min-height:30px!important;padding-block:2px!important;font-size:13px!important}
  #references .cui{min-height:42px!important;height:42px!important;margin-top:0!important;gap:12px!important;align-self:end!important}
  #references .cbtn{width:38px!important;height:38px!important}
}
@media (min-width:901px) and (max-height:700px){
  #references{padding-top:6px!important;padding-bottom:5px!important}
  #references > .wrap > .head{margin-bottom:5px!important}
  #references > .wrap > .head p{font-size:12.5px!important;line-height:1.3!important}
  #references .slide-in{padding:9px 20px!important;gap:20px!important}
  #references .slide-idx{font-size:38px!important}
  #references .slide h3{font-size:22px!important}
  #references .slide p{font-size:12.5px!important;line-height:1.3!important}
  #references .client-logo-wall{gap:7px!important;grid-auto-rows:minmax(46px,1fr)!important}
  #references .client-logo{padding:6px 10px!important;border-radius:15px!important;font-size:12.5px!important}
  #references .cui{height:36px!important;min-height:36px!important}
  #references .cbtn{width:34px!important;height:34px!important}
}
@media (max-width:900px){
  #references{height:calc(100svh - var(--sticky-stack,0px))!important;min-height:calc(100svh - var(--sticky-stack,0px))!important;max-height:calc(100svh - var(--sticky-stack,0px))!important;padding-block:10px!important}
  #references > .wrap{height:100%!important;max-height:none!important;overflow:hidden!important;display:grid!important;grid-template-rows:auto minmax(0,1fr)!important}
  #references > .wrap > .head{margin-bottom:8px!important}
  #references > .wrap > .head h2{margin-bottom:5px!important;font-size:clamp(24px,7vw,34px)!important;line-height:1.08!important}
  #references > .wrap > .head p{margin:0!important;font-size:13px!important;line-height:1.34!important}
  #references .carousel{min-height:0!important;height:100%!important;display:grid!important;grid-template-rows:minmax(0,1fr) 40px!important}
  #references .cviewport, #references .ctrack, #references .slide, #references .slide-in{height:100%!important;min-height:0!important}
  #references .slide-in{display:grid!important;grid-template-columns:1fr!important;grid-template-rows:auto minmax(0,1fr)!important;gap:8px!important;padding:10px 12px!important;overflow:hidden!important}
  #references .slide-in > div:first-child{display:grid!important;grid-template-columns:auto 1fr!important;align-items:center!important;gap:12px!important}
  #references .slide-idx{font-size:32px!important;margin:0!important}
  #references .slide h3{font-size:20px!important;margin:0!important}
  #references .slide-in > div:last-child{min-height:0!important;display:grid!important;grid-template-rows:auto minmax(0,1fr) auto!important;gap:7px!important}
  #references .slide p{margin:0!important;font-size:12.5px!important;line-height:1.3!important}
  #references .client-logo-wall{min-height:0!important;height:100%!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;grid-auto-rows:minmax(48px,1fr)!important;gap:8px!important;align-content:stretch!important}
  #references .client-logo{min-height:0!important;height:100%!important;padding:6px 8px!important;border-radius:15px!important;font-size:12px!important}
  #references .alink{min-height:28px!important;font-size:12px!important;padding-block:1px!important}
  #references .cui{height:40px!important;min-height:40px!important;margin-top:0!important;gap:9px!important}
  #references .cbtn{width:36px!important;height:36px!important}
}

/* === Vie du cabinet : image pleine hauteur à gauche v47 === */
#vie-cabinet.auto-carousel-section .auto-carousel-slide-inner{padding:0!important}
#vie-cabinet.auto-carousel-section .life-slide-card{flex:1 1 auto!important;align-self:stretch!important;width:100%!important;height:100%!important;min-height:0!important;border:0!important;border-radius:18px!important}
#vie-cabinet.auto-carousel-section .life-slide-media{width:100%!important;height:100%!important;min-height:0!important;max-height:none!important;align-self:stretch!important}
#vie-cabinet.auto-carousel-section .life-slide-media img{width:100%!important;height:100%!important;min-height:100%!important;max-height:none!important;object-fit:cover!important;object-position:center!important}
#vie-cabinet.auto-carousel-section .life-slide-copy{height:100%!important;min-height:0!important;padding:clamp(26px,3.8vw,58px)!important}
@media (max-width:900px){
  #vie-cabinet.auto-carousel-section .auto-carousel-slide-inner{padding:0!important}
  #vie-cabinet.auto-carousel-section .life-slide-card{grid-template-columns:1fr!important;grid-template-rows:minmax(190px,38svh) minmax(0,1fr)!important}
  #vie-cabinet.auto-carousel-section .life-slide-media{height:100%!important;max-height:none!important}
  #vie-cabinet.auto-carousel-section .life-slide-copy{height:auto!important;padding:18px 20px 22px!important}
}

/* === V48 — Cartouches 2 × 2 pleine hauteur et contenu centré === */
.four-card-screen-section .sector-cards-grid{width:100%!important;height:100%!important;min-height:0!important;align-items:stretch!important;align-content:stretch!important}
.four-card-screen-section .sector-cards-grid > .item:not(.visual-card), .four-card-screen-section .sector-cards-grid > .case-block, .four-card-screen-section .sector-cards-grid > .detail-card, .four-card-screen-section .sector-cards-grid > .stat-card{align-items:center!important;justify-content:center!important;align-content:center!important;text-align:center!important;height:100%!important;min-height:0!important}
.four-card-screen-section .sector-cards-grid > .item:not(.visual-card) > *, .four-card-screen-section .sector-cards-grid > .case-block > *, .four-card-screen-section .sector-cards-grid > .detail-card > *, .four-card-screen-section .sector-cards-grid > .stat-card > *{max-width:100%;margin-left:auto!important;margin-right:auto!important}
.four-card-screen-section .sector-cards-grid .n, .four-card-screen-section .sector-cards-grid .card-number, .four-card-screen-section .sector-cards-grid .detail-kicker, .four-card-screen-section .sector-cards-grid .case-kicker{align-self:center!important}
.four-card-screen-section .sector-cards-grid p, .four-card-screen-section .sector-cards-grid .stat-card .k{max-width:54ch!important;text-align:center!important}
.four-card-screen-section .sector-cards-grid ul.clean, .four-card-screen-section .sector-cards-grid ul.tags{width:max-content!important;max-width:100%!important;margin-left:auto!important;margin-right:auto!important}
.four-card-screen-section .sector-cards-grid ul.clean{padding-left:0!important;list-style-position:inside!important;text-align:center!important}
.four-card-screen-section .sector-cards-grid ul.tags{display:flex!important;flex-wrap:wrap!important;justify-content:center!important;align-items:center!important;padding-left:0!important}
.four-card-screen-section .sector-cards-grid .alink, .four-card-screen-section .sector-cards-grid .btn{align-self:center!important;margin-left:auto!important;margin-right:auto!important}
.four-card-screen-section .sector-cards-grid > .visual-card{height:100%!important;min-height:0!important}
.four-card-screen-section .sector-cards-grid > .visual-card img{width:100%!important;height:100%!important;min-height:0!important;object-fit:cover!important}
.four-card-screen-section .sector-cards-grid > .method-logo-fill, .four-card-screen-section .method-logo-fill{width:100%!important;height:100%!important;min-height:0!important;display:flex!important;align-items:center!important;justify-content:center!important;text-align:center!important;align-self:stretch!important;justify-self:stretch!important}
.four-card-screen-section .method-logo-fill .card-logo{width:min(72%,340px)!important;height:auto!important;max-height:38%!important;margin:auto!important}

/* === Socle technique aéré v49 === */
#socle.tech-carousel-section .auto-carousel-slide-inner{padding:0}
#socle .tech-slide-card{width:100%;height:100%;min-height:0;display:grid;grid-template-columns:minmax(170px,.72fr) minmax(0,1.65fr);align-items:center;gap:clamp(28px,4vw,64px);padding:clamp(28px,4vw,58px);border:1px solid rgba(23,52,97,.10);border-radius:28px;background:linear-gradient(145deg,#ffffff 0%,#f4f8fd 100%);box-shadow:0 18px 42px rgba(18,42,76,.09);overflow:hidden}
#socle .tech-slide-heading{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;min-width:0}
#socle .tech-slide-card h3{margin:0;font-size:clamp(1.35rem,2.3vw,2.15rem);line-height:1.08;max-width:12ch}
#socle .tech-slide-content{display:flex;flex-direction:column;justify-content:center;min-width:0;gap:clamp(14px,1.7vh,22px)}
#socle .tech-slide-content p{margin:0;max-width:66ch;font-size:clamp(.96rem,1.1vw,1.05rem);line-height:1.58}
#socle .tech-slide-content .clean{margin:0;display:grid;gap:10px}
#socle .tech-slide-content .clean li{line-height:1.48}
#socle .tech-slide-content .tags{margin:0}
#socle .tech-note{padding:12px 16px;border-left:3px solid #f0a128;background:rgba(240,161,40,.08);border-radius:0 14px 14px 0;font-size:.94rem;line-height:1.45}
@media (max-width:900px){
  #socle .tech-slide-card{grid-template-columns:1fr;align-content:center;gap:18px;padding:24px}
  #socle .tech-slide-heading{align-items:center;text-align:center}
  #socle .tech-slide-card h3{max-width:none}
  #socle .tech-slide-content{text-align:center}
  #socle .tech-slide-content .clean{text-align:left}
  #socle .tech-slide-content .tags{justify-content:center}
}
@media (max-height:720px) and (min-width:901px){
  #socle .tech-slide-card{padding:24px 34px;gap:30px}
  #socle .tech-slide-content{gap:11px}
  #socle .tech-slide-content p{font-size:.92rem;line-height:1.45}
}

/* === Fusion des trois premières slides Implantations v50 === */
#implantations .implantations-opening-card{display:grid;grid-template-rows:auto minmax(0,1fr);gap:clamp(16px,2.1vh,24px);width:100%;height:100%;min-height:0;padding:clamp(20px,2.4vw,32px);border:1px solid rgba(18,45,82,.10);border-radius:28px;background:linear-gradient(145deg,#ffffff 0%,#f5f8fd 100%);box-shadow:0 18px 42px rgba(17,42,77,.09);overflow:hidden}
#implantations .implantations-opening-lead{display:flex;justify-content:center;text-align:center}
#implantations .implantations-opening-lead p{margin:0;max-width:76ch;font-size:clamp(.95rem,1.05vw,1.04rem);line-height:1.55}
#implantations .implantations-opening-locations{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(16px,2vw,24px);min-height:0}
#implantations .implantation-location-card{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:0;padding:clamp(18px,2vw,28px);text-align:center;border-radius:22px;background:#fff;border:1px solid rgba(18,45,82,.09);box-shadow:0 10px 26px rgba(17,42,77,.07)}
#implantations .implantation-location-card .n{margin-bottom:12px}
#implantations .implantation-location-card h3{margin:0 0 10px}
#implantations .implantation-location-card p{margin:0;max-width:46ch;font-size:clamp(.9rem,1vw,.98rem);line-height:1.5}
@media (max-width:900px){
  #implantations .implantations-opening-card{padding:18px;gap:14px}
  #implantations .implantations-opening-locations{grid-template-columns:1fr;gap:12px}
  #implantations .implantation-location-card{padding:16px}
}
@media (max-height:760px) and (min-width:901px){
  #implantations .implantations-opening-card{padding:18px 22px;gap:12px}
  #implantations .implantations-opening-lead p, #implantations .implantation-location-card p{font-size:.9rem;line-height:1.4}
  #implantations .implantation-location-card{padding:14px 18px}
}

/* ================= Regroupement du carrousel Nos consultants v51 ================= */
#consultants .consultant-topic-card{width:100%;height:100%;min-height:0;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:clamp(10px,1.4svh,17px);padding:clamp(20px,2.4vw,34px);border-radius:26px;background:linear-gradient(180deg,#ffffff 0%,#f6f9fd 100%);border:1px solid rgba(23,52,97,.10);box-shadow:0 15px 36px rgba(18,42,76,.08);text-align:left;overflow:hidden}
#consultants .consultant-topic-card h3{margin:0!important;max-width:28ch;font-size:clamp(1.15rem,1.7vw,1.45rem)!important;line-height:1.18!important}
#consultants .consultant-topic-card p, #consultants .consultant-topic-card ul{width:100%;max-width:76ch;margin:0!important}
#consultants .consultant-topic-card p, #consultants .consultant-topic-card li{font-size:clamp(.9rem,1vw,.98rem)!important;line-height:1.48!important}
#consultants .consultant-topic-card ul.clean{display:grid;gap:7px;padding-left:1.1rem}
#consultants .consultant-topic-note{font-weight:700;color:#173461}
#consultants.auto-carousel-section .auto-carousel-slide-inner:has(> .consultant-topic-card){padding:clamp(10px,1.5svh,18px)!important}
#consultants.auto-carousel-section .auto-carousel-slide-inner > .consultant-topic-card{flex:1 1 auto}
@media(max-width:900px){
  #consultants .consultant-topic-card{padding:18px 17px;gap:9px;border-radius:21px}
  #consultants .consultant-topic-card h3{font-size:1.08rem!important}
  #consultants .consultant-topic-card p, #consultants .consultant-topic-card li{font-size:.88rem!important;line-height:1.4!important}
}
@media(min-width:901px) and (max-height:760px){
  #consultants .consultant-topic-card{padding:16px 22px;gap:7px}
  #consultants .consultant-topic-card h3{font-size:1.08rem!important}
  #consultants .consultant-topic-card p, #consultants .consultant-topic-card li{font-size:.82rem!important;line-height:1.32!important}
}

/* ================= Nos consultants : image pleine hauteur sur la première cartouche v57 ================= */
@media(min-width:901px){
  #consultants.auto-carousel-section .auto-carousel-slide-inner.carousel-layout--media{min-height:0!important;height:100%!important}
  #consultants.auto-carousel-section .auto-carousel-slide-inner.carousel-layout--media > .consultants-split{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;gap:clamp(18px,2.4vw,28px)!important;align-items:stretch!important;height:100%!important;min-height:0!important}
  #consultants.auto-carousel-section .auto-carousel-slide-inner.carousel-layout--media .consultants-copy{height:100%!important;display:flex!important;flex-direction:column!important;justify-content:center!important}
  #consultants.auto-carousel-section .auto-carousel-slide-inner.carousel-layout--media .consultants-media{height:100%!important;max-height:none!important;min-height:0!important;align-self:stretch!important;aspect-ratio:auto!important}
  #consultants.auto-carousel-section .auto-carousel-slide-inner.carousel-layout--media .consultants-media img{width:100%!important;height:100%!important;min-height:100%!important;max-height:none!important;object-fit:cover!important;object-position:center!important}
}

/* === Correction du titre Intégration & transformation v52 === */
#socle .tech-slide-card h3.tech-title-integration{max-width:none;width:100%;padding-right:.12em;font-size:clamp(1.28rem,2.05vw,1.95rem);line-height:1.12;overflow:visible}
#socle .tech-title-integration > span{display:block;white-space:nowrap}
@media (max-width:900px){
  #socle .tech-slide-card h3.tech-title-integration{width:auto;font-size:clamp(1.22rem,5.5vw,1.8rem)}
}
@media (max-width:420px){
  #socle .tech-title-integration > span{white-space:normal}
}

/* === Harmonisation zones image / texte et caption des practices v57 === */
#dataviz.auto-carousel-section .auto-carousel-slide-inner, #datascience.auto-carousel-section .auto-carousel-slide-inner, #dataeng.auto-carousel-section .auto-carousel-slide-inner, #dataproject.auto-carousel-section .auto-carousel-slide-inner, #datagov.auto-carousel-section .auto-carousel-slide-inner{padding:clamp(16px,2vw,24px)!important;gap:clamp(12px,1.6vw,18px)!important}
#dataviz.auto-carousel-section .auto-carousel-slide-inner .detail-card, #datascience.auto-carousel-section .auto-carousel-slide-inner .detail-card, #dataeng.auto-carousel-section .auto-carousel-slide-inner .detail-card, #dataproject.auto-carousel-section .auto-carousel-slide-inner .detail-card, #datagov.auto-carousel-section .auto-carousel-slide-inner .detail-card{padding:clamp(16px,2vw,22px)!important}
#dataviz.auto-carousel-section .auto-carousel-slide-inner .visual-card .visual-caption, #datascience.auto-carousel-section .auto-carousel-slide-inner .visual-card .visual-caption, #dataeng.auto-carousel-section .auto-carousel-slide-inner .visual-card .visual-caption, #dataproject.auto-carousel-section .auto-carousel-slide-inner .visual-card .visual-caption, #datagov.auto-carousel-section .auto-carousel-slide-inner .visual-card .visual-caption{display:inline-flex!important;align-items:center!important;justify-content:center!important;min-height:40px!important;max-width:calc(100% - 36px)!important;white-space:nowrap!important}
@media(max-width:760px){
  #dataviz.auto-carousel-section .auto-carousel-slide-inner, #datascience.auto-carousel-section .auto-carousel-slide-inner, #dataeng.auto-carousel-section .auto-carousel-slide-inner, #dataproject.auto-carousel-section .auto-carousel-slide-inner, #datagov.auto-carousel-section .auto-carousel-slide-inner{padding:14px!important;gap:10px!important}
  #dataviz.auto-carousel-section .auto-carousel-slide-inner .detail-card, #datascience.auto-carousel-section .auto-carousel-slide-inner .detail-card, #dataeng.auto-carousel-section .auto-carousel-slide-inner .detail-card, #dataproject.auto-carousel-section .auto-carousel-slide-inner .detail-card, #datagov.auto-carousel-section .auto-carousel-slide-inner .detail-card{padding:14px!important}
  #dataviz.auto-carousel-section .auto-carousel-slide-inner .visual-card .visual-caption, #datascience.auto-carousel-section .auto-carousel-slide-inner .visual-card .visual-caption, #dataeng.auto-carousel-section .auto-carousel-slide-inner .visual-card .visual-caption, #dataproject.auto-carousel-section .auto-carousel-slide-inner .visual-card .visual-caption, #datagov.auto-carousel-section .auto-carousel-slide-inner .visual-card .visual-caption{max-width:calc(100% - 24px)!important;min-height:36px!important}
}

/* ================= Harmonisation globale de tous les carrousels v58 ================= */
.auto-carousel-slide-inner, .carousel .slide-in, .life-slide-card, .tech-slide-card, .consultant-topic-card, .implantations-opening-card{min-width:0!important}
.auto-carousel-slide-inner > *, .carousel .slide-in > *, .life-slide-card > *, .tech-slide-card > *, .consultant-topic-card > *, .implantations-opening-card > *{min-width:0!important}
.auto-carousel-slide-inner h3, .auto-carousel-slide-inner h4, .carousel .slide-in h3, .life-slide-copy h3, .tech-slide-heading h3, .consultant-topic-card h3, .implantation-location-card h3{width:100%!important;max-width:100%!important;min-width:0!important;min-height:2.35em;display:flex!important;align-items:center!important;justify-content:flex-start!important;margin-top:0!important;padding-right:.16em!important;line-height:1.16!important;text-wrap:balance;overflow:visible!important;overflow-wrap:break-word;word-break:normal;hyphens:auto}
.carousel .slide-in > div:first-child, .tech-slide-heading{min-width:0!important;align-content:center!important}
.carousel .slide-in > div:last-child, .life-slide-copy, .tech-slide-content, .consultants-copy{min-width:0!important}
.auto-carousel-controls, .carousel .cui{flex:0 0 auto!important;position:relative!important;z-index:5!important}
.auto-carousel-dots, .carousel .dots{min-width:0!important}
.auto-carousel-slide-inner figure, .auto-carousel-slide-inner .fig, .auto-carousel-slide-inner .visual-card, .life-slide-media, .consultants-media{min-width:0!important}
.auto-carousel-slide-inner figure img, .auto-carousel-slide-inner .fig img, .auto-carousel-slide-inner .visual-card img, .life-slide-media img, .consultants-media img{display:block!important}
@media(max-width:760px){
  .auto-carousel-slide-inner h3, .auto-carousel-slide-inner h4, .carousel .slide-in h3, .life-slide-copy h3, .tech-slide-heading h3, .consultant-topic-card h3, .implantation-location-card h3{min-height:2.25em;padding-right:.1em!important;line-height:1.14!important}
}
@media(min-width:901px) and (max-height:760px){
  .auto-carousel-slide-inner h3, .auto-carousel-slide-inner h4, .carousel .slide-in h3, .life-slide-copy h3, .tech-slide-heading h3, .consultant-topic-card h3, .implantation-location-card h3{min-height:2.18em;line-height:1.1!important}
}

/* === V62 : carrousel Nos services, images réellement pleine hauteur === */
@media (min-width:901px){
  #expertises .cviewport, #expertises .ctrack, #expertises .slide, #expertises .service-slide-card{height:100%!important;min-height:0!important}
  #expertises .service-slide-card{display:grid!important;grid-template-columns:minmax(0,46%) minmax(0,54%)!important;align-items:stretch!important;align-content:stretch!important;gap:0!important;padding:0!important;overflow:hidden!important;border:1px solid rgba(23,39,68,.13)!important;border-top:4px solid var(--orange)!important;border-radius:18px!important;background:#fff!important;box-shadow:0 18px 44px rgba(23,39,68,.10)!important}
  #expertises .service-slide-media{grid-column:1!important;width:100%!important;height:100%!important;min-height:0!important;max-height:none!important;margin:0!important;padding:0!important;position:relative!important;overflow:hidden!important;align-self:stretch!important;background:#dfe4ec!important;border:0!important}
  #expertises .service-slide-media img{display:block!important;width:100%!important;height:100%!important;min-height:100%!important;max-height:none!important;margin:0!important;padding:0!important;object-fit:cover!important;object-position:center!important}
  #expertises .service-slide-media figcaption{position:absolute!important;left:18px!important;bottom:18px!important;z-index:2!important;margin:0!important;padding:8px 13px!important;border-radius:999px!important;background:rgba(23,52,97,.88)!important;color:#fff!important;font-size:12px!important;line-height:1.2!important}
  #expertises .service-slide-copy{grid-column:2!important;width:100%!important;height:100%!important;min-height:0!important;box-sizing:border-box!important;display:grid!important;grid-template-rows:auto auto auto minmax(0,1fr) auto!important;align-content:stretch!important;gap:clamp(10px,1.45svh,17px)!important;padding:clamp(20px,3svh,34px) clamp(24px,3.2vw,42px)!important;overflow:hidden!important}
  #expertises .service-slide-heading{display:grid!important;grid-template-columns:auto minmax(0,1fr)!important;align-items:center!important;gap:16px!important;min-height:0!important;padding:0!important;border:0!important}
  #expertises .service-slide-heading .slide-idx{margin:0!important;font-size:clamp(38px,5.5svh,58px)!important;line-height:1!important}
  #expertises .service-slide-heading h3{min-height:0!important;max-width:none!important;margin:0!important;padding:0!important;font-size:clamp(24px,3.15svh,31px)!important;line-height:1.08!important}
  #expertises .service-slide-copy p, #expertises .service-slide-copy .tags, #expertises .service-slide-copy ul.clean, #expertises .service-slide-copy .alink{margin:0!important}
  #expertises .service-slide-copy p{font-size:clamp(13px,1.58svh,15px)!important;line-height:1.45!important}
  #expertises .service-slide-copy .tags{justify-content:flex-start!important;align-self:start!important}
  #expertises .service-slide-copy ul.clean{display:grid!important;align-content:center!important;gap:clamp(4px,.75svh,8px)!important}
  #expertises .service-slide-copy ul.clean li{margin:0!important;font-size:clamp(12.5px,1.48svh,14px)!important;line-height:1.34!important}
  #expertises .service-slide-copy .alink{align-self:end!important}
}
@media (max-width:900px){
  #expertises .service-slide-card{display:grid!important;grid-template-columns:1fr!important;grid-template-rows:minmax(190px,36svh) auto!important;gap:0!important;padding:0!important;overflow:hidden!important}
  #expertises .service-slide-media{width:100%!important;height:100%!important;min-height:0!important;max-height:none!important;margin:0!important;position:relative!important;overflow:hidden!important}
  #expertises .service-slide-media img{display:block!important;width:100%!important;height:100%!important;min-height:100%!important;max-height:none!important;object-fit:cover!important}
  #expertises .service-slide-media figcaption{position:absolute!important;left:12px!important;bottom:12px!important;margin:0!important;padding:7px 11px!important;border-radius:999px!important;background:rgba(23,52,97,.88)!important;color:#fff!important;font-size:11px!important}
  #expertises .service-slide-copy{display:grid!important;gap:12px!important;padding:20px!important}
  #expertises .service-slide-heading{display:grid!important;grid-template-columns:auto minmax(0,1fr)!important;align-items:center!important;gap:12px!important}
  #expertises .service-slide-heading .slide-idx, #expertises .service-slide-heading h3{min-height:0!important;margin:0!important;padding:0!important}
}

/* V63 — Nos services : même structure visuelle que Vie du cabinet */
#expertises .carousel, #expertises .cviewport, #expertises .ctrack, #expertises .slide, #expertises .service-slide-card{height:100%!important;min-height:0!important}
#expertises .slide{display:block!important}
#expertises .service-slide-card{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;grid-template-rows:minmax(0,1fr)!important;width:100%!important;padding:0!important;gap:0!important;align-items:stretch!important;align-content:stretch!important;overflow:hidden!important;border:0!important;border-top:0!important;border-radius:20px!important;background:#fff!important;box-sizing:border-box!important}
#expertises .service-slide-media{grid-column:1!important;grid-row:1!important;display:block!important;width:100%!important;height:100%!important;min-width:0!important;min-height:0!important;max-height:none!important;margin:0!important;padding:0!important;overflow:hidden!important;align-self:stretch!important;position:relative!important;background:#eaf1f8!important;border:0!important;border-radius:0!important}
#expertises .service-slide-media img{display:block!important;width:100%!important;height:100%!important;min-width:100%!important;min-height:100%!important;max-width:none!important;max-height:none!important;margin:0!important;padding:0!important;aspect-ratio:auto!important;object-fit:cover!important;object-position:center!important;border-radius:0!important}
#expertises .service-slide-copy{grid-column:2!important;grid-row:1!important;display:flex!important;flex-direction:column!important;justify-content:center!important;align-items:flex-start!important;width:100%!important;height:100%!important;min-width:0!important;min-height:0!important;margin:0!important;padding:clamp(22px,3.2vw,48px)!important;box-sizing:border-box!important;overflow:hidden!important}
#expertises .service-slide-heading{display:flex!important;align-items:center!important;gap:16px!important;width:100%!important;margin:0 0 clamp(10px,1.5vh,16px)!important}
#expertises .service-slide-heading .slide-idx{flex:0 0 auto!important;margin:0!important}
#expertises .service-slide-heading h3{margin:0!important;max-width:none!important}
#expertises .service-slide-copy > p, #expertises .service-slide-copy > .tags, #expertises .service-slide-copy > ul.clean{width:100%!important;margin-top:0!important}
#expertises .service-slide-copy .alink{margin-top:auto!important}
#expertises .service-slide-media figcaption{position:absolute!important;left:18px!important;bottom:18px!important;z-index:2!important;margin:0!important;padding:8px 13px!important;border-radius:999px!important;background:rgba(23,52,97,.88)!important;color:#fff!important;font-size:12px!important;line-height:1.2!important}
@media(max-width:900px){
  #expertises .service-slide-card{grid-template-columns:1fr!important;grid-template-rows:minmax(190px,40svh) minmax(0,1fr)!important}
  #expertises .service-slide-media{grid-column:1!important;grid-row:1!important}
  #expertises .service-slide-copy{grid-column:1!important;grid-row:2!important;height:auto!important;justify-content:flex-start!important;padding:18px 20px 20px!important}
  #expertises .service-slide-media figcaption{left:12px!important;bottom:12px!important}
}

/* === V59 (allégé) : Formation — visuel d'ouverture pleine hauteur hors carrousel === Les règles carrousel de v56/v59/v60 sont désormais regroupées dans le bloc V61. */
#formation .intro{align-items:stretch!important}
#formation .intro .fig{height:100%!important;min-height:clamp(320px, 48vh, 560px)!important;margin:0!important;overflow:hidden!important;position:relative!important;border-radius:14px!important}
#formation .intro .fig img{width:100%!important;height:100%!important;min-height:100%!important;max-height:none!important;aspect-ratio:auto!important;object-fit:cover!important;object-position:center!important;display:block!important}
#formation .intro .fig figcaption{position:absolute!important;left:18px!important;bottom:18px!important;margin:0!important;z-index:2!important;padding:8px 14px!important;border-radius:999px!important;background:rgba(23,52,97,.88)!important;color:#fff!important;font-size:11px!important;font-weight:700!important;letter-spacing:.14em!important}
@media (max-width: 900px){
  #formation .intro .fig{min-height:280px!important}
}

/* 1. La diapositive donne toute sa hauteur disponible à son contenu. */
.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner{justify-content:flex-start!important;align-items:stretch!important}

/* 2. Diapositive « visuel + texte » : deux colonnes, une seule piste pleine hauteur. */
.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner > .intro{flex:1 1 0%!important;width:100%!important;min-height:0!important;height:auto!important;margin:0!important;display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;grid-template-rows:minmax(0,1fr)!important;gap:clamp(14px,2vw,26px)!important;align-items:stretch!important;align-content:stretch!important}

/* 3. Diapositive « visuel seul » : la carte occupe toute la hauteur de la cartouche. */
.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner > .visual-card, .subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner > .fig, .subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner > figure{flex:1 1 0%!important;align-self:stretch!important}

/* 4. Le cadre visuel : étiré par son conteneur, sans plafond de hauteur. */
.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner .fig, .subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner figure, .subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner .visual-card{position:relative!important;display:block!important;box-sizing:border-box!important;width:100%!important;height:auto!important;max-height:none!important;margin:0!important;padding:0!important;min-height:min(34svh,300px)!important;overflow:hidden!important;border-radius:14px!important;background:#edf3fa!important;align-self:stretch!important}

/* 5. L'image épouse les quatre bords du cadre. Aucune hauteur en pourcentage n'est nécessaire : « inset:0 » suffit et ne peut pas échouer. */
.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner .fig > img, .subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner figure > img, .subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner .visual-card > img{position:absolute!important;top:0!important;right:0!important;bottom:0!important;left:0!important;display:block!important;width:100%!important;height:100%!important;min-height:0!important;max-height:none!important;max-width:none!important;aspect-ratio:auto!important;object-fit:cover!important;object-position:center!important;margin:0!important}

/* 6. Légende incrustée en bas du visuel. */
.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner .fig > figcaption, .subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner figure > figcaption, .subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner .visual-card > .visual-caption{position:absolute!important;left:16px!important;right:auto!important;top:auto!important;bottom:16px!important;z-index:2!important;margin:0!important;padding:8px 14px!important;max-width:calc(100% - 32px)!important;border-radius:999px!important;background:rgba(23,52,97,.88)!important;color:#fff!important;font-size:11px!important;font-weight:700!important;letter-spacing:.14em!important;text-transform:uppercase!important;line-height:1.2!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important}

/* 7. Colonne texte en vis-à-vis : centrée, et défilable si le texte est long. */
.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner > .intro > .head{width:100%!important;height:auto!important;min-height:0!important;display:flex!important;flex-direction:column!important;justify-content:center!important;align-items:flex-start!important;gap:clamp(8px,1.4svh,14px)!important;padding:clamp(4px,1.4vw,18px) clamp(2px,1vw,10px)!important;overflow-y:auto!important;overscroll-behavior:contain!important;box-sizing:border-box!important}
.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner > .intro > .head p{max-width:52ch!important;margin:0!important}

/* 8. Empilement mobile : bande visuelle pleine, remplie de la même façon. */
@media(max-width:900px){
  .subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner > .intro{grid-template-columns:minmax(0,1fr)!important;grid-template-rows:auto minmax(0,1fr)!important;gap:12px!important}
  .subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner > .intro > .fig, .subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner > .intro > figure{grid-row:1!important;height:clamp(160px,30svh,240px)!important;min-height:clamp(160px,30svh,240px)!important;max-height:clamp(160px,30svh,240px)!important}
  .subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner > .intro > .head{grid-row:2!important;justify-content:flex-start!important;padding:4px 0 0 0!important}
  .subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner .fig > figcaption, .subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner figure > figcaption, .subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner .visual-card > .visual-caption{left:12px!important;bottom:12px!important;max-width:calc(100% - 24px)!important;padding:7px 12px!important}
}


/* V64 — Nos services : visuel bord à bord dans la cartouche du carrousel.
   Reprend exactement le traitement de la sous-section « Vie du cabinet » de
   l'accueil (#vie-cabinet) : la cartouche ne conserve aucun rembourrage sur
   les diapositives qui portent un visuel, la grille interne n'a pas
   d'espacement, et c'est la colonne de texte qui porte sa propre marge
   intérieure. L'image occupe donc la totalité de la hauteur et de sa moitié
   de la cartouche, jusqu'aux bords arrondis du panneau. */

#dataviz.auto-carousel-section .auto-carousel-slide-inner.carousel-layout--media,
#datascience.auto-carousel-section .auto-carousel-slide-inner.carousel-layout--media,
#dataeng.auto-carousel-section .auto-carousel-slide-inner.carousel-layout--media,
#dataproject.auto-carousel-section .auto-carousel-slide-inner.carousel-layout--media,
#datagov.auto-carousel-section .auto-carousel-slide-inner.carousel-layout--media,
#formation.auto-carousel-section .auto-carousel-slide-inner.carousel-layout--media{
  padding:0!important;
  gap:0!important;
}

#dataviz.auto-carousel-section .auto-carousel-slide-inner > .intro,
#datascience.auto-carousel-section .auto-carousel-slide-inner > .intro,
#dataeng.auto-carousel-section .auto-carousel-slide-inner > .intro,
#dataproject.auto-carousel-section .auto-carousel-slide-inner > .intro,
#datagov.auto-carousel-section .auto-carousel-slide-inner > .intro,
#formation.auto-carousel-section .auto-carousel-slide-inner > .intro{
  gap:0!important;
  height:100%!important;
  align-items:stretch!important;
}

#dataviz.auto-carousel-section .auto-carousel-slide-inner > .intro > .fig,
#datascience.auto-carousel-section .auto-carousel-slide-inner > .intro > .fig,
#dataeng.auto-carousel-section .auto-carousel-slide-inner > .intro > .fig,
#dataproject.auto-carousel-section .auto-carousel-slide-inner > .intro > .fig,
#datagov.auto-carousel-section .auto-carousel-slide-inner > .intro > .fig,
#formation.auto-carousel-section .auto-carousel-slide-inner > .intro > .fig,
#dataviz.auto-carousel-section .auto-carousel-slide-inner > .intro > figure,
#datascience.auto-carousel-section .auto-carousel-slide-inner > .intro > figure,
#dataeng.auto-carousel-section .auto-carousel-slide-inner > .intro > figure,
#dataproject.auto-carousel-section .auto-carousel-slide-inner > .intro > figure,
#datagov.auto-carousel-section .auto-carousel-slide-inner > .intro > figure,
#formation.auto-carousel-section .auto-carousel-slide-inner > .intro > figure{
  border-radius:0!important;
  min-height:0!important;
}

#dataviz.auto-carousel-section .auto-carousel-slide-inner > .intro > .head,
#datascience.auto-carousel-section .auto-carousel-slide-inner > .intro > .head,
#dataeng.auto-carousel-section .auto-carousel-slide-inner > .intro > .head,
#dataproject.auto-carousel-section .auto-carousel-slide-inner > .intro > .head,
#datagov.auto-carousel-section .auto-carousel-slide-inner > .intro > .head,
#formation.auto-carousel-section .auto-carousel-slide-inner > .intro > .head{
  padding:clamp(26px,3.8vw,58px)!important;
}

/* Diapositive ne contenant qu'un visuel : même logique, cartouche sans marge.
   Règle isolée car :has() invalide tout le groupe sur un navigateur ancien. */
#dataviz.auto-carousel-section .auto-carousel-slide-inner:has(> .visual-card),
#datascience.auto-carousel-section .auto-carousel-slide-inner:has(> .visual-card),
#dataeng.auto-carousel-section .auto-carousel-slide-inner:has(> .visual-card),
#dataproject.auto-carousel-section .auto-carousel-slide-inner:has(> .visual-card),
#datagov.auto-carousel-section .auto-carousel-slide-inner:has(> .visual-card),
#formation.auto-carousel-section .auto-carousel-slide-inner:has(> .visual-card){
  padding:0!important;
}

#dataviz.auto-carousel-section .auto-carousel-slide-inner > .visual-card,
#datascience.auto-carousel-section .auto-carousel-slide-inner > .visual-card,
#dataeng.auto-carousel-section .auto-carousel-slide-inner > .visual-card,
#dataproject.auto-carousel-section .auto-carousel-slide-inner > .visual-card,
#datagov.auto-carousel-section .auto-carousel-slide-inner > .visual-card,
#formation.auto-carousel-section .auto-carousel-slide-inner > .visual-card{
  border-radius:0!important;
  min-height:0!important;
}

@media(max-width:900px){
#dataviz.auto-carousel-section .auto-carousel-slide-inner.carousel-layout--media,
#datascience.auto-carousel-section .auto-carousel-slide-inner.carousel-layout--media,
#dataeng.auto-carousel-section .auto-carousel-slide-inner.carousel-layout--media,
#dataproject.auto-carousel-section .auto-carousel-slide-inner.carousel-layout--media,
#datagov.auto-carousel-section .auto-carousel-slide-inner.carousel-layout--media,
#formation.auto-carousel-section .auto-carousel-slide-inner.carousel-layout--media{
    padding:0!important;
  }
#dataviz.auto-carousel-section .auto-carousel-slide-inner > .intro,
#datascience.auto-carousel-section .auto-carousel-slide-inner > .intro,
#dataeng.auto-carousel-section .auto-carousel-slide-inner > .intro,
#dataproject.auto-carousel-section .auto-carousel-slide-inner > .intro,
#datagov.auto-carousel-section .auto-carousel-slide-inner > .intro,
#formation.auto-carousel-section .auto-carousel-slide-inner > .intro{
    grid-template-columns:minmax(0,1fr)!important;
    grid-template-rows:minmax(190px,38svh) minmax(0,1fr)!important;
  }
#dataviz.auto-carousel-section .auto-carousel-slide-inner > .intro > .fig,
#datascience.auto-carousel-section .auto-carousel-slide-inner > .intro > .fig,
#dataeng.auto-carousel-section .auto-carousel-slide-inner > .intro > .fig,
#dataproject.auto-carousel-section .auto-carousel-slide-inner > .intro > .fig,
#datagov.auto-carousel-section .auto-carousel-slide-inner > .intro > .fig,
#formation.auto-carousel-section .auto-carousel-slide-inner > .intro > .fig,
#dataviz.auto-carousel-section .auto-carousel-slide-inner > .intro > figure,
#datascience.auto-carousel-section .auto-carousel-slide-inner > .intro > figure,
#dataeng.auto-carousel-section .auto-carousel-slide-inner > .intro > figure,
#dataproject.auto-carousel-section .auto-carousel-slide-inner > .intro > figure,
#datagov.auto-carousel-section .auto-carousel-slide-inner > .intro > figure,
#formation.auto-carousel-section .auto-carousel-slide-inner > .intro > figure{
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
  }
#dataviz.auto-carousel-section .auto-carousel-slide-inner > .intro > .head,
#datascience.auto-carousel-section .auto-carousel-slide-inner > .intro > .head,
#dataeng.auto-carousel-section .auto-carousel-slide-inner > .intro > .head,
#dataproject.auto-carousel-section .auto-carousel-slide-inner > .intro > .head,
#datagov.auto-carousel-section .auto-carousel-slide-inner > .intro > .head,
#formation.auto-carousel-section .auto-carousel-slide-inner > .intro > .head{
    padding:18px 20px 22px!important;
  }
}

/* V65 — Cabinet / Nos consultants : visuel bord à bord dans la cartouche.
   Même traitement que le bloc V64 des sous-sections « Nos services » et que
   la sous-section « Vie du cabinet » de l'accueil. La première diapositive du
   carrousel (texte + visuel) perd le rembourrage du panneau et l'espacement
   de sa grille ; la marge intérieure passe sur la colonne de texte. Ici le
   visuel est à droite, l'ordre du balisage étant inversé par rapport à
   « Nos services ». Les diapositives suivantes, qui ne portent que du texte
   (.consultant-topic-card), conservent leur rembourrage. */

#consultants.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner.carousel-layout--media{
  padding:0!important;
  gap:0!important;
}

#consultants.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner.carousel-layout--media > .consultants-split{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
  grid-template-rows:minmax(0,1fr)!important;
  gap:0!important;
  width:100%!important;
  height:100%!important;
  min-height:0!important;
  margin:0!important;
  align-items:stretch!important;
  align-content:stretch!important;
}

#consultants.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner.carousel-layout--media .consultants-media{
  position:relative!important;
  display:block!important;
  grid-column:2!important;
  grid-row:1!important;
  width:100%!important;
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
  margin:0!important;
  padding:0!important;
  aspect-ratio:auto!important;
  overflow:hidden!important;
  border-radius:0!important;
  align-self:stretch!important;
  background:#eaf1f8!important;
}

#consultants.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner.carousel-layout--media .consultants-media img{
  position:absolute!important;
  top:0!important;
  right:0!important;
  bottom:0!important;
  left:0!important;
  display:block!important;
  width:100%!important;
  height:100%!important;
  min-height:0!important;
  max-height:none!important;
  max-width:none!important;
  margin:0!important;
  aspect-ratio:auto!important;
  object-fit:cover!important;
  object-position:center!important;
}

#consultants.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner.carousel-layout--media .consultants-copy{
  grid-column:1!important;
  grid-row:1!important;
  display:flex!important;
  flex-direction:column!important;
  justify-content:center!important;
  align-items:flex-start!important;
  width:100%!important;
  height:100%!important;
  min-height:0!important;
  margin:0!important;
  padding:clamp(26px,3.8vw,58px)!important;
  box-sizing:border-box!important;
  overflow-y:auto!important;
  overscroll-behavior:contain!important;
}

@media(max-width:900px){
  #consultants.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner.carousel-layout--media{
    padding:0!important;
  }
  #consultants.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner.carousel-layout--media > .consultants-split{
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    grid-template-rows:minmax(190px,38svh) minmax(0,1fr)!important;
    gap:0!important;
  }
  #consultants.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner.carousel-layout--media .consultants-media{
    grid-column:1!important;
    grid-row:1!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
  }
  #consultants.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner.carousel-layout--media .consultants-copy{
    grid-column:1!important;
    grid-row:2!important;
    height:auto!important;
    justify-content:flex-start!important;
    padding:18px 20px 22px!important;
  }
}


/* V66 — Géométrie commune à tous les carrousels du site.
   Les sous-sections « Expertise » et « Références » de l'accueil utilisent un
   carrousel manuel (.carousel / .cviewport / .ctrack / .slide / .slide-in /
   .cui) tandis que « Vie du cabinet » utilise le carrousel automatique
   (.auto-carousel-*). Les deux mécanismes ont exactement la même structure ;
   ce bloc reporte sur le carrousel manuel les mesures du carrousel
   automatique, prises telles quelles dans les règles .auto-carousel-* :
   hauteur de section, largeur et retrait du cadre, espacement de l'entête,
   dimensions du panneau et barre de contrôles. Seul le contenu interne des
   diapositives reste propre à chaque sous-section. */

/* Section : même hauteur d'écran que .auto-carousel-section */
#expertises.subnav-target-section,
#references.subnav-target-section{
  height:calc(100vh - var(--sticky-stack,var(--fallback-sticky-stack)))!important;
  height:calc(100svh - var(--sticky-stack,var(--fallback-sticky-stack)))!important;
  min-height:0!important;
  max-height:calc(100svh - var(--sticky-stack,var(--fallback-sticky-stack)))!important;
  padding-block:clamp(10px,1.6svh,20px)!important;
  display:grid!important;
  grid-template-rows:minmax(0,1fr)!important;
  align-content:stretch!important;
  justify-content:stretch!important;
  overflow:hidden!important;
}

/* Cadre : mêmes largeur et retrait que .auto-carousel-frame.
   Attention : la déclaration width:min(100%,1184px) de .auto-carousel-frame
   est morte — une règle postérieure (correctif largeur mobile v37.2) remet
   width:100%!important sur tous les niveaux du carrousel automatique. La
   largeur réellement appliquée à « Vie du cabinet » est donc la pleine
   largeur de la section, moins le retrait de 32px. C'est celle-ci qu'on
   reprend, sinon le carrousel manuel paraît plus étroit. */
#expertises.subnav-target-section > .wrap,
#references.subnav-target-section > .wrap{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  margin:0 auto!important;
  padding-inline:32px!important;
  height:auto!important;
  max-height:100%!important;
  min-height:0!important;
  display:grid!important;
  grid-template-rows:auto minmax(0,1fr)!important;
  align-content:stretch!important;
  overflow:hidden!important;
}

/* Entête : même respiration que .auto-carousel-header */
#expertises.subnav-target-section > .wrap > .head,
#references.subnav-target-section > .wrap > .head{
  min-width:0!important;
  margin:0 0 clamp(10px,1.6svh,18px)!important;
}
#expertises.subnav-target-section > .wrap > .head .eyebrow,
#references.subnav-target-section > .wrap > .head .eyebrow{
  margin-bottom:clamp(7px,1svh,12px)!important;
}
#expertises.subnav-target-section > .wrap > .head h2,
#references.subnav-target-section > .wrap > .head h2{
  margin:0 0 clamp(6px,.9svh,10px)!important;
  font-size:clamp(27px,3.4vw,40px)!important;
}

/* Carrousel : mêmes pistes que .auto-carousel */
#expertises.subnav-target-section .carousel,
#references.subnav-target-section .carousel{
  position:relative!important;
  min-height:0!important;
  height:100%!important;
  display:grid!important;
  grid-template-rows:minmax(0,1fr) auto!important;
  align-content:stretch!important;
}
#expertises.subnav-target-section .carousel > .cviewport,
#references.subnav-target-section .carousel > .cviewport{
  min-height:0!important;
  height:100%!important;
  overflow:hidden!important;
  padding:2px!important;
}
#expertises.subnav-target-section .carousel .ctrack,
#references.subnav-target-section .carousel .ctrack{
  display:flex!important;
  width:100%!important;
  height:100%!important;
  margin:0!important;
  padding:0!important;
  align-items:stretch!important;
}
#expertises.subnav-target-section .carousel .slide,
#references.subnav-target-section .carousel .slide{
  flex:0 0 100%!important;
  min-width:100%!important;
  height:100%!important;
  padding:0!important;
}

/* Panneau : mêmes bordure, rayon, ombre et marge intérieure
   que .auto-carousel-slide-inner */
#expertises.subnav-target-section .carousel .slide > .slide-in,
#references.subnav-target-section .carousel .slide > .slide-in{
  --card-pad-y:clamp(18px,2.45svh,30px);
  --card-pad-x:clamp(20px,3vw,40px);
  height:100%!important;
  min-height:0!important;
  box-sizing:border-box!important;
  overflow:hidden!important;
  background:#fff!important;
  border:1px solid rgba(23,39,68,.13)!important;
  border-top:4px solid var(--orange)!important;
  border-radius:18px!important;
  box-shadow:0 18px 44px rgba(23,39,68,.09)!important;
  padding:var(--card-pad-y) var(--card-pad-x)!important;
}

/* Diapositive « visuel + texte » : panneau sans marge, comme sur
   « Vie du cabinet ». Le visuel occupe alors toute sa moitié de cartouche. */
#expertises.subnav-target-section .carousel .slide > .slide-in.service-slide-card{
  padding:0!important;
  gap:0!important;
  border-radius:18px!important;
}
#expertises.subnav-target-section .carousel .slide > .slide-in.service-slide-card > .service-slide-media{
  border-radius:0!important;
}

/* Miroir du correctif largeur v37.2 : tous les niveaux du carrousel
   occupent la pleine largeur du cadre, comme sur le carrousel automatique. */
#expertises.subnav-target-section .carousel,
#expertises.subnav-target-section .carousel > .cviewport,
#expertises.subnav-target-section .carousel .ctrack,
#expertises.subnav-target-section .carousel .slide,
#expertises.subnav-target-section .carousel .slide > .slide-in,
#references.subnav-target-section .carousel,
#references.subnav-target-section .carousel > .cviewport,
#references.subnav-target-section .carousel .ctrack,
#references.subnav-target-section .carousel .slide,
#references.subnav-target-section .carousel .slide > .slide-in{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
}

/* Barre de contrôles : mêmes dimensions que .auto-carousel-controls */
#expertises.subnav-target-section .carousel > .cui,
#references.subnav-target-section .carousel > .cui{
  flex:0 0 auto!important;
  min-height:46px!important;
  height:46px!important;
  margin-top:clamp(8px,1.25svh,14px)!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:18px!important;
  position:relative!important;
  z-index:5!important;
}
#expertises.subnav-target-section .carousel > .cui .cbtn,
#references.subnav-target-section .carousel > .cui .cbtn{
  width:42px!important;
  height:42px!important;
  flex:0 0 42px!important;
}

/* Même disposition des contrôles que .auto-carousel-controls :
   flèche précédente, pastilles centrées, flèche suivante, compteur calé à
   droite. Le balisage manuel place les deux flèches côte à côte, on rétablit
   donc l'ordre visuel sans toucher au HTML. */
#expertises.subnav-target-section .carousel > .cui .cbtn:first-of-type,
#references.subnav-target-section .carousel > .cui .cbtn:first-of-type{ order:1!important; }
#expertises.subnav-target-section .carousel > .cui .dots,
#references.subnav-target-section .carousel > .cui .dots{
  order:2!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:8px!important;
  min-width:0!important;
  max-width:min(48vw,520px)!important;
  overflow-x:auto!important;
  padding:5px 2px!important;
}
#expertises.subnav-target-section .carousel > .cui .dots .dot,
#references.subnav-target-section .carousel > .cui .dots .dot{
  width:24px!important;
  height:3px!important;
  flex:0 0 24px!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
}
#expertises.subnav-target-section .carousel > .cui .cbtn:last-of-type,
#references.subnav-target-section .carousel > .cui .cbtn:last-of-type{ order:3!important; }
#expertises.subnav-target-section .carousel > .cui .cpos,
#references.subnav-target-section .carousel > .cui .cpos{
  order:4!important;
  position:absolute!important;
  right:0!important;
  margin-left:0!important;
  white-space:nowrap!important;
}

@media(max-width:900px){
#expertises.subnav-target-section > .wrap,
#references.subnav-target-section > .wrap{
    padding-inline:22px!important;
  }
#expertises.subnav-target-section > .wrap > .head,
#references.subnav-target-section > .wrap > .head{
    margin-bottom:9px!important;
  }
#expertises.subnav-target-section > .wrap > .head .eyebrow,
#references.subnav-target-section > .wrap > .head .eyebrow{
    margin-bottom:5px!important;
  }
#expertises.subnav-target-section > .wrap > .head h2,
#references.subnav-target-section > .wrap > .head h2{
    font-size:clamp(24px,7vw,32px)!important;
  }
#expertises.subnav-target-section .carousel > .cui,
#references.subnav-target-section .carousel > .cui{
    min-height:40px!important;
    height:40px!important;
    margin-top:8px!important;
    gap:12px!important;
  }
#expertises.subnav-target-section .carousel > .cui .cbtn,
#references.subnav-target-section .carousel > .cui .cbtn{
    width:38px!important;
    height:38px!important;
    flex-basis:38px!important;
  }
#expertises.subnav-target-section .carousel > .cui .cpos,
#references.subnav-target-section .carousel > .cui .cpos{
    position:static!important;
    margin-left:auto!important;
  }
#expertises.subnav-target-section .carousel > .cui .dots,
#references.subnav-target-section .carousel > .cui .dots{
    max-width:44vw!important;
  }
}


/* V67 — Alignement homogène des sous-sections sur tout le site.

   Constat : dans une sous-section sans carrousel, l'entête et le contenu
   avaient deux largeurs maximales différentes, toutes deux centrées —
   920px pour .narrow, 1100px pour .grid. Deux boîtes centrées de largeurs
   différentes ne peuvent pas partager le même bord gauche : le titre
   apparaissait décalé vers l'intérieur par rapport aux cartouches.

   On adopte le modèle des sous-sections à carrousel : le conteneur occupe
   toute la largeur avec le même retrait de 32px, et tout ce qu'il contient
   part du même bord gauche. La longueur de ligne des paragraphes reste
   bornée pour la lisibilité, mais sans recentrage.

   Note de spécificité : les règles annulées ici s'écrivent
   « main > .subnav-target-section > .wrap:first-child > .narrow », soit
   (0,4,1). Le préfixe ci-dessous compose les deux classes que portent
   systématiquement ces sections, ce qui donne (0,5,x) et permet de gagner
   sans dépendre de l'ordre de déclaration. Les retraits sont déclarés à la
   fois en logique et en physique, car des règles antérieures utilisent
   padding-left / padding-right. */

/* 1. Conteneur de sous-section : pleine largeur, retrait identique au cadre
      des carrousels. */
body main > .subnav-section.subnav-target-section > .wrap{
  width:100%!important;
  max-width:none!important;
  margin-inline:auto!important;
  padding-inline:32px!important;
  padding-left:32px!important;
  padding-right:32px!important;
  box-sizing:border-box!important;
}

/* 2. Tout le contenu direct part du même bord gauche et s'étend sur toute
      la largeur disponible. */
body main > .subnav-section.subnav-target-section > .wrap > div,
body main > .subnav-section.subnav-target-section > .wrap > ul,
body main > .subnav-section.subnav-target-section > .wrap > ol,
body main > .subnav-section.subnav-target-section > .wrap > p,
body main > .subnav-section.subnav-target-section > .wrap > h2,
body main > .subnav-section.subnav-target-section > .wrap > h3,
body main > .subnav-section.subnav-target-section > .wrap > h4,
body main > .subnav-section.subnav-target-section > .wrap > figure,
body main > .subnav-section.subnav-target-section > .wrap > article,
body main > .subnav-section.subnav-target-section > .wrap > table,
body main > .subnav-section.subnav-target-section > .wrap > nav,
body main > .subnav-section.subnav-target-section > .wrap > dl,
body main > .subnav-section.subnav-target-section > .wrap:first-child > div,
body main > .subnav-section.subnav-target-section > .wrap:first-child > ul,
body main > .subnav-section.subnav-target-section > .wrap:first-child > ol,
body main > .subnav-section.subnav-target-section > .wrap:first-child > p,
body main > .subnav-section.subnav-target-section > .wrap:first-child > h2,
body main > .subnav-section.subnav-target-section > .wrap:first-child > h3,
body main > .subnav-section.subnav-target-section > .wrap:first-child > h4,
body main > .subnav-section.subnav-target-section > .wrap:first-child > figure,
body main > .subnav-section.subnav-target-section > .wrap:first-child > article,
body main > .subnav-section.subnav-target-section > .wrap:first-child > table,
body main > .subnav-section.subnav-target-section > .wrap:first-child > nav,
body main > .subnav-section.subnav-target-section > .wrap:first-child > dl,
body main > .subnav-section.subnav-target-section > .wrap > .grid,
body main > .subnav-section.subnav-target-section > .wrap:first-child > .grid,
body main > .subnav-section.subnav-target-section > .wrap > .narrow,
body main > .subnav-section.subnav-target-section > .wrap:first-child > .narrow{
  width:100%!important;
  max-width:none!important;
  margin-left:0!important;
  margin-right:0!important;
}

/* 3. Entêtes calées à gauche, sans retrait propre : c'est le conteneur qui
      porte le retrait, donc tous les blocs partagent le même bord. */
body main > .subnav-section.subnav-target-section > .wrap > .head,
body main > .subnav-section.subnav-target-section > .wrap > .narrow,
body main > .subnav-section.subnav-target-section > .wrap:first-child > .head,
body main > .subnav-section.subnav-target-section > .wrap:first-child > .narrow{
  width:100%!important;
  max-width:none!important;
  margin-left:0!important;
  margin-right:0!important;
  padding-inline:0!important;
  padding-left:0!important;
  padding-right:0!important;
  text-align:left!important;
}

/* 3 bis. Cas où le conteneur porte lui-même la classe .narrow : il garde le
   retrait de 32px de la règle 1, seul le recentrage est annulé. */
body main > .subnav-section.subnav-target-section > .wrap.narrow{
  width:100%!important;
  max-width:none!important;
  text-align:left!important;
}

/* 4. Longueur de ligne bornée, mais alignée à gauche et non recentrée. */
body main > .subnav-section.subnav-target-section > .wrap > .head p,
body main > .subnav-section.subnav-target-section > .wrap > .head .lede,
body main > .subnav-section.subnav-target-section > .wrap > .narrow p,
body main > .subnav-section.subnav-target-section > .wrap:first-child > .head p,
body main > .subnav-section.subnav-target-section > .wrap:first-child > .narrow p,
body main > .subnav-section.subnav-target-section > .wrap.narrow > p,
body main > .subnav-section.subnav-target-section > .wrap.narrow > ul,
body main > .subnav-section.subnav-target-section > .wrap.narrow > ol{
  max-width:78ch!important;
  margin-left:0!important;
  margin-right:0!important;
}

@media(max-width:900px){
body main > .subnav-section.subnav-target-section > .wrap{
    padding-inline:22px!important;
    padding-left:22px!important;
    padding-right:22px!important;
  }
body main > .subnav-section.subnav-target-section > .wrap > .head p,
body main > .subnav-section.subnav-target-section > .wrap > .head .lede,
body main > .subnav-section.subnav-target-section > .wrap:first-child > .head p,
body main > .subnav-section.subnav-target-section > .wrap.narrow > p{
    max-width:none!important;
  }
}

/* V67 bis — Le conteneur de « Nos consultants » porte une classe propre
   (.consultants-section-inner) à laquelle une règle d'identifiant impose
   padding-left/right:0. On rétablit le retrait commun de 32px pour que cette
   sous-section s'aligne comme les autres lorsque le carrousel ne prend pas
   la main (écran court, script désactivé). */
#consultants.subnav-section.subnav-target-section > .consultants-section-inner{
  padding-inline:32px!important;
  padding-left:32px!important;
  padding-right:32px!important;
}
@media(max-width:900px){
  #consultants.subnav-section.subnav-target-section > .consultants-section-inner{
    padding-inline:22px!important;
    padding-left:22px!important;
    padding-right:22px!important;
  }
}

/* V68 — Lisibilité des boutons clairs sur fond sombre.

   Le bouton « Prendre contact » du bandeau final était blanc sur blanc :
   .btn--light fournit bien background:#FFFFFF et color:var(--navy), mais la
   règle « .dark a, .cta a{color:#FFFFFF} » est plus spécifique — (0,1,1)
   contre (0,1,0), car le sélecteur de type « a » compte — et reprenait donc
   la couleur du texte. Le libellé ne réapparaissait qu'au survol, où
   « .btn--light:hover » (0,2,0) repasse devant.
   La même règle imposait aussi un filet gris sous le bouton via
   border-bottom-color. On rétablit les deux en qualifiant le sélecteur par
   le contexte, ce qui suffit à passer devant sans recourir à !important. */

.cta a.btn--light,
.dark a.btn--light,
.site-footer a.btn--light{
  color:var(--navy);
  border-color:#FFFFFF;
  border-bottom-color:#FFFFFF;
}

.cta a.btn--light:hover,
.cta a.btn--light:focus-visible,
.dark a.btn--light:hover,
.dark a.btn--light:focus-visible,
.site-footer a.btn--light:hover,
.site-footer a.btn--light:focus-visible{
  background:var(--orange);
  color:var(--navy);
  border-color:var(--orange);
  border-bottom-color:var(--orange);
}

/* V69 — Les sous-sections à quatre cartouches occupent réellement la hauteur
   d'écran.

   Le mécanisme existant (.four-card-screen-section) prévoyait déjà tout :
   section haute d'un écran, conteneur en grille « auto minmax(0,1fr) »,
   grille de cartouches en 2×2 de pistes « minmax(0,1fr) », tailles de texte
   en clamp() indexées sur svh, et un script qui resserre le contenu si une
   cartouche déborde. Il était simplement inopérant, pour deux raisons
   trouvées en calculant la cascade :

     main > section:not(.hero-split):not(.pagehead):not(.cta):not(.err)
       { height:auto!important }        (0,4,2)  bat  .four-card-screen-section
                                                       { height:calc(...)! }  (0,1,0)
     main > section:not(...) > *        { flex:0 0 auto }

   La section retombait donc en hauteur automatique, et son conteneur ne
   pouvait pas grandir : le « height:100% » du conteneur se résolvait contre
   une hauteur auto, donc en auto, et la grille ne s'étirait jamais.

   Plutôt que de surenchérir sur la hauteur de la section — ce qui
   demanderait de battre une spécificité (0,4,2) — on rend le conteneur
   extensible. La section conserve son min-height d'un écran, et
   flex-grow distribue l'espace restant. La déclaration ci-dessous n'a pas
   besoin d'une forte spécificité : la règle concurrente ne porte pas
   « !important ». */

body main > .subnav-section.subnav-target-section > .wrap{
  flex:1 1 auto!important;
  min-height:0!important;
}

/* Les cartouches s'étirent dans leur cellule et centrent leur contenu, pour
   que la place gagnée profite au contenu plutôt qu'au vide. */
body main > .four-card-screen-section .sector-cards-grid > .item,
body main > .four-card-screen-section .sector-cards-grid > .case-block,
body main > .four-card-screen-section .sector-cards-grid > .detail-card,
body main > .four-card-screen-section .sector-cards-grid > .stat-card,
body main > .four-card-screen-section .sector-cards-grid > .method-logo-fill{
  height:100%!important;
  min-height:0!important;
  align-self:stretch!important;
}

/* V70 — Même écart entre la barre de sous-navigation et le titre de section,
   sur toutes les pages et toutes les sous-sections.

   Trois valeurs cohabitaient :
     clamp(44px,6svh,82px)   sur les sections ordinaires
                             (main > section:not(…), spécificité (0,4,2))
     clamp(18px,2.7svh,30px) sur les sections à carrousel automatique
     clamp(10px,1.6svh,20px) sur les deux carrousels manuels de l'accueil
   On retient la valeur du carrousel automatique, qui est la plus répandue et
   celle que montre la maquette de référence.

   La première règle porte trois « :not() » non pour filtrer quoi que ce soit
   — ces classes ne coexistent jamais avec .subnav-section — mais pour porter
   la spécificité à (0,5,2) et passer devant (0,4,2) sans dépendre de l'ordre
   de déclaration. */

body main > .subnav-section.subnav-target-section:not(.hero-split):not(.pagehead):not(.err){
  padding-top:clamp(18px,2.7svh,30px)!important;
  padding-bottom:clamp(14px,2.1svh,24px)!important;
  padding-block:clamp(18px,2.7svh,30px) clamp(14px,2.1svh,24px)!important;
}

/* Les deux carrousels manuels de l'accueil sont ciblés par identifiant dans
   le bloc V66 : il faut donc une règle d'identifiant pour les rejoindre. */
#expertises.subnav-section.subnav-target-section,
#references.subnav-section.subnav-target-section{
  padding-top:clamp(18px,2.7svh,30px)!important;
  padding-bottom:clamp(14px,2.1svh,24px)!important;
  padding-block:clamp(18px,2.7svh,30px) clamp(14px,2.1svh,24px)!important;
}

/* V71 — Les indicateurs occupent la hauteur des cartouches.

   Depuis le bloc V69, les cartouches des sous-sections à quatre cartouches
   remplissent réellement la hauteur d'écran. Les tailles de texte, elles,
   étaient restées calibrées pour des cartouches de 230px environ : le nombre
   plafonnait à 56px et flottait au milieu d'un grand vide.

   Les valeurs ci-dessous sont indexées sur svh, comme le reste du dispositif,
   et calibrées pour que le nombre occupe environ 40 % de la hauteur de sa
   cartouche : à 900px de haut, une cartouche mesure à peu près 330px et le
   nombre 135px. Les deux paliers resserrés déclenchés par le script
   (four-card-tight, puis four-card-ultra) sont réduits dans la même
   proportion.

   Le préfixe « body main > » porte la spécificité à (0,4,2), ce qui suffit à
   passer devant les règles d'origine en (0,4,0), y compris celles placées
   dans des requêtes média — une requête média n'ajoute aucune spécificité. */

body main > .four-card-screen-section .sector-cards-grid .stat-card .v{
  font-size:clamp(48px,15svh,160px)!important;
  line-height:.92!important;
  margin:0 0 clamp(6px,1.1svh,14px)!important;
  letter-spacing:-.035em!important;
}
body main > .four-card-screen-section .sector-cards-grid .stat-card .k{
  font-size:clamp(13px,1.9svh,19px)!important;
  line-height:1.3!important;
}

/* Paliers resserrés, appliqués par le script quand une cartouche déborde. */
body main > .four-card-screen-section.four-card-tight .sector-cards-grid .stat-card .v{
  font-size:clamp(40px,11.5svh,120px)!important;
}
body main > .four-card-screen-section.four-card-ultra .sector-cards-grid .stat-card .v{
  font-size:clamp(32px,8.5svh,84px)!important;
}
body main > .four-card-screen-section.four-card-ultra .sector-cards-grid .stat-card .k{
  font-size:clamp(12px,1.6svh,15px)!important;
}

@media(max-width:900px){
  body main > .four-card-screen-section .sector-cards-grid .stat-card .v{
    font-size:clamp(34px,8.5svh,68px)!important;
  }
  body main > .four-card-screen-section .sector-cards-grid .stat-card .k{
    font-size:clamp(12px,1.6svh,15px)!important;
  }
  body main > .four-card-screen-section.four-card-tight .sector-cards-grid .stat-card .v{
    font-size:clamp(30px,7svh,54px)!important;
  }
  body main > .four-card-screen-section.four-card-ultra .sector-cards-grid .stat-card .v{
    font-size:clamp(26px,6svh,44px)!important;
  }
}
@media(max-width:520px){
  body main > .four-card-screen-section .sector-cards-grid .stat-card .v{
    font-size:clamp(26px,6svh,44px)!important;
  }
}

/* V72 — Le texte des cartouches occupe la hauteur gagnée.

   Même constat que pour les indicateurs (bloc V71) : depuis le bloc V69 les
   cartouches font environ 330px de haut sur un écran de 900px, mais le titre
   plafonnait à 24px et le texte à 15px, laissant les deux tiers de la
   cartouche vides.

   Calibrage : la cartouche la plus chargée du site contient 403 caractères
   (cas-clients, « Pilotage commercial bancaire »). À 21px sur une cartouche
   de 654px de large utile, elle occupe environ six lignes, soit 185px, plus
   50px de titre — 235px pour 278px disponibles. La marge est donc suffisante,
   et les deux paliers resserrés du script prennent le relais au-delà. */

body main > .four-card-screen-section .sector-cards-grid h3{
  font-size:clamp(20px,3.6svh,36px)!important;
  line-height:1.14!important;
  margin-bottom:clamp(8px,1.3svh,16px)!important;
}
body main > .four-card-screen-section .sector-cards-grid p,
body main > .four-card-screen-section .sector-cards-grid li{
  font-size:clamp(14px,2.3svh,22px)!important;
  line-height:1.4!important;
}
body main > .four-card-screen-section .sector-cards-grid ul.clean li+li{
  margin-top:clamp(5px,.9svh,11px)!important;
}

/* Paliers resserrés, déclenchés par le script quand une cartouche déborde. */
body main > .four-card-screen-section.four-card-tight .sector-cards-grid h3{
  font-size:clamp(18px,3svh,28px)!important;
}
body main > .four-card-screen-section.four-card-tight .sector-cards-grid p,
body main > .four-card-screen-section.four-card-tight .sector-cards-grid li{
  font-size:clamp(13px,1.95svh,18px)!important;
}
body main > .four-card-screen-section.four-card-ultra .sector-cards-grid h3{
  font-size:clamp(16px,2.5svh,23px)!important;
}
body main > .four-card-screen-section.four-card-ultra .sector-cards-grid p,
body main > .four-card-screen-section.four-card-ultra .sector-cards-grid li{
  font-size:clamp(12px,1.65svh,16px)!important;
}

/* Le logo qui complète la grille suit la même logique. Pour #methode il faut
   une règle d'identifiant : la règle d'origine en porte un. */
body main > .four-card-screen-section .sector-cards-grid > .logo-card .card-logo{
  width:min(88%,460px)!important;
  max-height:min(24svh,200px)!important;
}
#methode.subnav-target-section .method-logo-fill .card-logo,
body main > .four-card-screen-section .method-logo-fill .card-logo{
  width:min(86%,520px)!important;
  max-height:62%!important;
  height:auto!important;
  margin:auto!important;
}

@media(max-width:900px){
  body main > .four-card-screen-section .sector-cards-grid h3{
    font-size:clamp(15px,2.4svh,20px)!important;
    margin-bottom:clamp(5px,.9svh,9px)!important;
  }
  body main > .four-card-screen-section .sector-cards-grid p,
  body main > .four-card-screen-section .sector-cards-grid li{
    font-size:clamp(12px,1.7svh,15px)!important;
  }
  body main > .four-card-screen-section .sector-cards-grid > .logo-card .card-logo{
    width:min(84%,260px)!important;
    max-height:min(12svh,96px)!important;
  }
  #methode.subnav-target-section .method-logo-fill .card-logo,
  body main > .four-card-screen-section .method-logo-fill .card-logo{
    width:min(80%,300px)!important;
    max-height:58%!important;
  }
}

/* V73 — Section RSE de l'accueil : visuel sur la moitié droite, pleine hauteur.

   La section passe en grille de deux colonnes égales. La colonne de gauche
   porte le texte, avec le retrait de 32px commun à toutes les sous-sections
   (bloc V67) pour que le sur-titre reste aligné sur ceux des sections
   voisines. La colonne de droite est occupée par le visuel, bord à bord :
   le retrait de section est donc remis à zéro et reporté sur la colonne de
   texte.

   L'image est en position absolue « inset:0 » dans son cadre, comme dans les
   blocs V62 et V65 : elle épouse les quatre bords sans dépendre d'une chaîne
   de hauteurs en pourcentage. */

#engagements.subnav-section.subnav-target-section{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
  grid-template-rows:minmax(0,1fr)!important;
  align-items:stretch!important;
  align-content:stretch!important;
  padding:0!important;
  overflow:hidden!important;
}

#engagements.subnav-section.subnav-target-section > .wrap{
  grid-column:1!important;
  grid-row:1!important;
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  padding:clamp(18px,2.7svh,30px) clamp(24px,3vw,48px) clamp(14px,2.1svh,24px) 32px!important;
  display:flex!important;
  flex-direction:column!important;
  /* Le contenu démarre en haut, comme dans toutes les autres sous-sections.
     Il était centré verticalement, ce qui décalait le sur-titre et le titre
     d'environ 200px vers le bas par rapport aux sections voisines. */
  justify-content:flex-start!important;
  align-items:flex-start!important;
  align-self:stretch!important;
  min-height:0!important;
  overflow-y:auto!important;
  overscroll-behavior:contain!important;
  box-sizing:border-box!important;
}

#engagements.subnav-section.subnav-target-section > .rse-media{
  grid-column:2!important;
  grid-row:1!important;
  position:relative!important;
  display:block!important;
  width:100%!important;
  height:100%!important;
  min-height:0!important;
  max-height:none!important;
  margin:0!important;
  padding:0!important;
  overflow:hidden!important;
  background:#e6edf6!important;
  align-self:stretch!important;
}

#engagements.subnav-section.subnav-target-section > .rse-media img{
  position:absolute!important;
  top:0!important;
  right:0!important;
  bottom:0!important;
  left:0!important;
  display:block!important;
  width:100%!important;
  height:100%!important;
  max-width:none!important;
  max-height:none!important;
  margin:0!important;
  aspect-ratio:auto!important;
  object-fit:cover!important;
  object-position:center!important;
}

@media(max-width:900px){
  #engagements.subnav-section.subnav-target-section{
    grid-template-columns:minmax(0,1fr)!important;
    grid-template-rows:minmax(170px,30svh) minmax(0,1fr)!important;
  }
  #engagements.subnav-section.subnav-target-section > .rse-media{
    grid-column:1!important;
    grid-row:1!important;
  }
  #engagements.subnav-section.subnav-target-section > .wrap{
    grid-column:1!important;
    grid-row:2!important;
    justify-content:flex-start!important;
    padding:18px 22px 22px!important;
  }
}

/* V74 — Pas de cadre dans le cadre.

   Quand une carte se retrouve seule dans une diapositive, elle redessine sa
   propre bordure, son fond et son ombre à l'intérieur du panneau du
   carrousel, qui en porte déjà. On obtient une cartouche dans une cartouche.

   Le cas était déjà traité pour .life-slide-card (« Vie du cabinet », qui
   pose border:0), mais pas pour les autres. Sont concernées :

     .tech-slide-card             cabinet.html#socle
     .consultant-topic-card       cabinet.html#consultants
     .implantations-opening-card  cabinet.html#implantations
     .implantation-location-card  cabinet.html#implantations
     .capability-card             services.html, les six practices
     .detail-card                 services.html, les six practices
     .logo-card                   cabinet.html#implantations

   La marge intérieure de la carte est remise à zéro : celle du panneau
   (15 à 25 px en vertical, 18 à 34 px en horizontal) suffit et évite un
   double retrait. .visual-card est exclue : elle porte l'image en fond et a
   besoin de son cadre pour la rogner. */

#socle.auto-carousel-section .auto-carousel-slide-inner > .tech-slide-card,
#consultants.auto-carousel-section .auto-carousel-slide-inner > .consultant-topic-card,
#implantations.auto-carousel-section .auto-carousel-slide-inner > .implantations-opening-card,
#implantations.auto-carousel-section .auto-carousel-slide-inner > .item:only-child,
.auto-carousel-slide-inner > .item:not(.visual-card):only-child,
.auto-carousel-slide-inner .practice-part--detail > .detail-card:only-child,
.auto-carousel-slide-inner > .capability-card:only-child,
.auto-carousel-slide-inner > .grid > .item:not(.visual-card):only-child,
.auto-carousel-slide-inner > .grid > .detail-card:only-child,
.auto-carousel-slide-inner > .grid > .capability-card:only-child{
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
  border-radius:0!important;
  padding:0!important;
}

/* La carte visuelle garde son fond et son rognage — l'image est en fond —
   mais perd la bordure et l'ombre, qui doublaient celles du panneau. */
.auto-carousel-slide-inner > .visual-card,
.auto-carousel-slide-inner > .grid > .visual-card:only-child{
  border:0!important;
  box-shadow:none!important;
}

/* V75 — Références : pastilles clients sur une seule ligne.

   Le mur de logos était une grille dont les pistes étaient étirées sur toute
   la hauteur de la cartouche (grid-auto-rows:minmax(54px,1fr) + height:100%),
   ce qui produisait deux grands rectangles au lieu de pastilles. Il devient
   une ligne unique, chaque pastille dimensionnée par son contenu.

   Spécificité : les règles annulées s'écrivent « #references .client-logo »
   soit (1,1,0), certaines dans des requêtes média. Le sélecteur ci-dessous
   compose deux classes de plus pour l'emporter sans dépendre de l'ordre. */

#references.subnav-section.subnav-target-section .slide-in .client-logo-wall{
  display:flex!important;
  flex-wrap:nowrap!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:clamp(10px,1.4vw,20px)!important;
  width:100%!important;
  height:auto!important;
  min-height:0!important;
  margin:0!important;
  padding:0!important;
  overflow-x:auto!important;
  overflow-y:hidden!important;
  overscroll-behavior-x:contain!important;
}

#references.subnav-section.subnav-target-section .slide-in .client-logo{
  flex:0 0 auto!important;
  height:auto!important;
  min-height:0!important;
  margin:0!important;
  padding:clamp(10px,1.4svh,16px) clamp(16px,1.8vw,26px)!important;
  border-radius:999px!important;
  white-space:nowrap!important;
  font-size:clamp(13px,1.75svh,17px)!important;
  line-height:1.2!important;
}

/* La colonne de droite n'a plus de paragraphe : on centre son contenu. */
#references.subnav-section.subnav-target-section .slide-in > div:last-child{
  align-content:center!important;
  justify-content:center!important;
  gap:clamp(16px,2.4svh,30px)!important;
}

/* Emplacement prêt pour de vrais logos : si une pastille contient une image,
   elle s'affiche à la place du texte, à hauteur constante.
   Markup attendu :
     <li class="client-logo"><img src="assets/clients/kering.svg" alt="Kering"/></li> */
#references.subnav-section.subnav-target-section .slide-in .client-logo img{
  display:block!important;
  width:auto!important;
  max-width:clamp(90px,11vw,150px)!important;
  height:clamp(20px,2.8svh,32px)!important;
  object-fit:contain!important;
  object-position:center!important;
}

@media(max-width:900px){
  #references.subnav-section.subnav-target-section .slide-in .client-logo-wall{
    flex-wrap:wrap!important;
    overflow-x:visible!important;
    gap:8px!important;
  }
  #references.subnav-section.subnav-target-section .slide-in .client-logo{
    padding:8px 14px!important;
    font-size:12.5px!important;
  }
}

/* V76 — Cartouches sectorielles de cas-clients.html.

   Les quatre sections ajoutées présentent un client par cartouche, avec des
   intertitres « Missions réalisées », « Livrables » et « Méthodologie ». Ces
   <h4> n'avaient aucune règle : ils retombaient sur le style par défaut du
   navigateur. Ils reprennent ici l'aspect des étiquettes déjà employées par
   .case-facts dt — petites capitales espacées, ton discret — pour rester
   lisibles sans concurrencer le nom du client porté par le <h3>. */

.case-block h4{
  margin:clamp(14px,1.8svh,20px) 0 clamp(6px,.8svh,10px)!important;
  font-family:inherit!important;
  font-size:clamp(10px,1.25svh,11.5px)!important;
  font-weight:700!important;
  letter-spacing:.15em!important;
  text-transform:uppercase!important;
  color:var(--mute)!important;
  line-height:1.2!important;
}
.case-block h4:first-of-type{
  margin-top:clamp(10px,1.4svh,16px)!important;
}
.case-block > p:first-of-type{
  margin:0 0 clamp(4px,.6svh,8px)!important;
}
.case-block > p:first-of-type strong{
  color:var(--navy)!important;
}

/* Une grille sectorielle qui ne contient qu'un client occupe toute la
   largeur, plutôt que d'ouvrir une seconde colonne vide. */
.case-study .case-grid:has(> .case-block:only-child){
  grid-template-columns:minmax(0,1fr)!important;
}

/* V77 — Pastilles clients : vrais logos.

   Les fichiers fournis ont des proportions très différentes, de 1,4 pour
   Crédit Agricole à 6,25 pour Autodistribution. Une hauteur fixe donnerait
   des largeurs allant de 46 à 175 px, soit un mur très irrégulier. Chaque
   logo est donc inscrit dans une boîte de dimensions identiques, avec
   object-fit:contain : les logos larges remplissent la largeur, les logos
   ramassés remplissent la hauteur, et l'ensemble reste d'aplomb.

   Les fichiers étant des JPEG à fond blanc, la pastille passe en blanc plein
   quand elle contient une image — son dégradé vers #f5f8ff aurait laissé
   voir le rectangle de l'image en bas. */

#references.subnav-section.subnav-target-section .slide-in .client-logo:has(img){
  background:#FFFFFF!important;
  padding:clamp(8px,1.1svh,13px) clamp(14px,1.5vw,22px)!important;
}
#references.subnav-section.subnav-target-section .slide-in .client-logo img{
  display:block!important;
  width:clamp(80px,9vw,120px)!important;
  max-width:none!important;
  height:clamp(24px,3.2svh,38px)!important;
  max-height:none!important;
  margin:0!important;
  object-fit:contain!important;
  object-position:center!important;
}
@media(max-width:900px){
  #references.subnav-section.subnav-target-section .slide-in .client-logo img{
    width:clamp(64px,20vw,96px)!important;
    height:clamp(20px,5vw,28px)!important;
  }
}

/* Une pastille encore en texte garde la largeur d'une pastille à logo, pour
   que la ligne reste régulière. */
#references.subnav-section.subnav-target-section .slide-in .client-logo:not(:has(img)){
  min-width:calc(clamp(80px,9vw,120px) + 2 * clamp(14px,1.5vw,22px))!important;
  justify-content:center!important;
}

/* V78 — Références : pastilles étalées sur la ligne, sous-titre sur une ligne.

   Deux corrections indépendantes.

   1. La colonne de droite de chaque diapositive est une grille à trois pistes
      « auto minmax(0,1fr) auto », dessinée pour [paragraphe][logos][lien].
      Le paragraphe ayant été retiré (bloc V75), les logos tombaient dans la
      piste 1 — dimensionnée sur leur contenu — et le lien dans la piste 2,
      qui absorbait toute la hauteur : d'où des pastilles tassées en haut et
      un lien flottant au milieu. La grille repasse à deux pistes de contenu,
      centrées.

   2. Les pastilles étaient en flex, chacune à la largeur de son contenu.
      Elles passent en grille de colonnes égales : elles occupent alors toute
      la largeur disponible, à taille identique, et le logo grandit d'autant.

   3. Le paragraphe d'entête était borné à 78ch par une règle d'identifiant.
      La borne est levée pour qu'il tienne sur une ligne. */

#references.subnav-section.subnav-target-section .slide .slide-in > div:last-child{
  grid-template-rows:auto auto!important;
  align-content:center!important;
}

#references.subnav-section.subnav-target-section .slide .slide-in .client-logo-wall{
  display:grid!important;
  grid-auto-flow:column!important;
  grid-auto-columns:minmax(0,1fr)!important;
  align-items:stretch!important;
  gap:clamp(12px,1.6vw,24px)!important;
  width:100%!important;
  overflow:visible!important;
}

#references.subnav-section.subnav-target-section .slide .slide-in .client-logo{
  width:100%!important;
  min-width:0!important;
  justify-content:center!important;
  padding:clamp(14px,1.9svh,22px) clamp(10px,1.2vw,18px)!important;
}

#references.subnav-section.subnav-target-section .slide .slide-in .client-logo img{
  width:100%!important;
  max-width:100%!important;
  height:clamp(30px,5svh,58px)!important;
}

#references.subnav-section.subnav-target-section > .wrap > .head p{
  max-width:none!important;
}

@media(max-width:900px){
  #references.subnav-section.subnav-target-section .slide .slide-in .client-logo-wall{
    grid-auto-flow:row!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:8px!important;
  }
  #references.subnav-section.subnav-target-section .slide .slide-in .client-logo{
    padding:10px 12px!important;
  }
  #references.subnav-section.subnav-target-section .slide .slide-in .client-logo img{
    height:clamp(22px,5.5vw,32px)!important;
  }
  #references.subnav-section.subnav-target-section > .wrap > .head p{
    max-width:none!important;
  }
}

/* V79 — Sous-titres de section : une seule taille pour tout le site.

   Relevé avant correction, sur les 73 sous-sections :
     - la grande majorité n'avait aucune taille explicite et héritait du
       corps de page, soit 17px ;
     - #references était descendu à clamp(13px,1.55svh,15px) ;
     - les sections à quatre cartouches à clamp(13px,1.55svh,16px) ;
     - les cas clients montaient à clamp(18px,2vw,22px) via .case-lead.

   On retient la valeur héritée, celle que montre la maquette de référence,
   bornée en bas pour les écrans peu hauts : clamp(15px,2svh,17px).

   La largeur maximale passe de 78ch à min(100%,150ch). À 78ch, un sous-titre
   de 142 caractères se coupait forcément en deux lignes ; à 150ch il tient
   sur une ligne dès 1250px de large, tout en gardant une borne pour les
   sous-titres très longs (jusqu'à 462 caractères sur cabinet.html) qui
   deviendraient illisibles étalés d'un bord à l'autre d'un grand écran. */

body main > .subnav-section.subnav-target-section > .wrap > .head p,
body main > .subnav-section.subnav-target-section > .wrap > .head .lede,
body main > .subnav-section.subnav-target-section > .wrap:first-child > .head p,
body main > .subnav-section.subnav-target-section > .wrap > p,
body main > .subnav-section.subnav-target-section > .wrap.narrow > p,
body main > .subnav-section.subnav-target-section > .wrap > .case-lead{
  font-size:clamp(15px,2svh,17px)!important;
  line-height:1.55!important;
  max-width:min(100%,150ch)!important;
}

/* Rattrapage des sections ciblées par identifiant, qui l'emporteraient
   autrement sur la règle générique. */
#references.subnav-section.subnav-target-section > .wrap > .head p,
#expertises.subnav-section.subnav-target-section > .wrap > .head p{
  font-size:clamp(15px,2svh,17px)!important;
  line-height:1.55!important;
  max-width:min(100%,150ch)!important;
}

@media(max-width:900px){
  body main > .subnav-section.subnav-target-section > .wrap > .head p,
  body main > .subnav-section.subnav-target-section > .wrap > .head .lede,
  body main > .subnav-section.subnav-target-section > .wrap > p,
  body main > .subnav-section.subnav-target-section > .wrap.narrow > p,
  body main > .subnav-section.subnav-target-section > .wrap > .case-lead,
  #references.subnav-section.subnav-target-section > .wrap > .head p,
  #expertises.subnav-section.subnav-target-section > .wrap > .head p{
    font-size:15px!important;
    max-width:none!important;
  }
}

/* V79 bis — deux rattrapages relevés au contrôle.

   1. Les accroches de cas clients (.case-lead) restaient en max-width:none :
      la règle 2 du bloc V67 décline un variant « .wrap:first-child » qui vaut
      (0,4,3) et l'emportait. On reprend le même variant, à (0,5,2).

   2. Les sous-titres portés par un bloc .intro — les six practices de
      services.html et #direction sur equipe.html — héritaient de 17px sans
      déclaration. On fixe la même taille qu'ailleurs, mais on laisse leur
      largeur maximale de 570px : ces paragraphes occupent la colonne de texte
      d'une diapositive, pas la largeur de la section. */

body main > .subnav-section.subnav-target-section > .wrap:first-child > .case-lead,
body main > .subnav-section.subnav-target-section > .wrap:first-child > .head p,
body main > .subnav-section.subnav-target-section > .wrap:first-child > .head .lede{
  font-size:clamp(15px,2svh,17px)!important;
  line-height:1.55!important;
  max-width:min(100%,150ch)!important;
}

body main > .subnav-section.subnav-target-section .intro .head p{
  font-size:clamp(15px,2svh,17px)!important;
  line-height:1.55!important;
}

@media(max-width:900px){
  body main > .subnav-section.subnav-target-section > .wrap:first-child > .case-lead,
  body main > .subnav-section.subnav-target-section > .wrap:first-child > .head p{
    font-size:15px!important;
    max-width:none!important;
  }
  body main > .subnav-section.subnav-target-section .intro .head p{
    font-size:15px!important;
  }
}

/* V80 — Références : pastilles plus hautes, cartouches sans lien sortant.

   Les trois liens « Voir nos cas clients », « Découvrir nos practices » et
   « Parler de votre projet » ont été retirés du balisage : la colonne de
   droite ne contient plus que le mur de logos, qui peut donc occuper la
   hauteur.

   La pastille reçoit une hauteur minimale indexée sur la hauteur d'écran.
   Le logo, lui, ne grandit que modérément : les fichiers fournis font 84 à
   340 px de large et se dégraderaient vite si on les étirait à proportion de
   la pastille. C'est la pastille qui gagne en présence, pas l'image. */

#references.subnav-section.subnav-target-section .slide .slide-in > div:last-child{
  grid-template-rows:minmax(0,1fr)!important;
  align-content:center!important;
}

#references.subnav-section.subnav-target-section .slide .slide-in .client-logo-wall{
  height:100%!important;
  max-height:clamp(96px,20svh,170px)!important;
  align-self:center!important;
}

#references.subnav-section.subnav-target-section .slide .slide-in .client-logo{
  height:100%!important;
  min-height:clamp(84px,17svh,150px)!important;
  padding:clamp(14px,2svh,26px) clamp(10px,1.2vw,18px)!important;
  border-radius:clamp(22px,3svh,34px)!important;
}

#references.subnav-section.subnav-target-section .slide .slide-in .client-logo img{
  height:clamp(32px,5.4svh,64px)!important;
}

@media(max-width:900px){
  #references.subnav-section.subnav-target-section .slide .slide-in .client-logo-wall{
    max-height:none!important;
  }
  #references.subnav-section.subnav-target-section .slide .slide-in .client-logo{
    min-height:56px!important;
    padding:10px 12px!important;
    border-radius:18px!important;
  }
}

/* V81 — Cabinet / Notre approche : contenu réparti sur trois cartouches.

   Le balisage regroupe désormais le contenu en trois blocs porteurs de
   data-auto-standalone, que le script transforme en trois diapositives :
     1. le récit (les quatre paragraphes) ;
     2. « Le déroulé d'une mission » et sa liste ;
     3. « Notre principe de travail ».

   Le troisième bloc ne contient que deux phrases : laissé en flux normal, il
   flotterait en haut d'une cartouche pleine hauteur. Il est donc centré et
   son texte agrandi, en registre de citation. Son encadré perd sa bordure et
   son fond — le panneau du carrousel en porte déjà, cf. bloc V74 — mais garde
   son filet orange, qui est sa signature. */

/* Les trois blocs sont étirés sur la hauteur de la cartouche par la règle
   « carousel-space--single > :only-child{flex:1 1 auto} » ; sans instruction
   de leur côté, leur contenu restait calé en haut et laissait un vide en bas.
   On les centre verticalement.

   « safe center » est déclaré après « center » : si le contenu venait à
   dépasser la hauteur de la cartouche, le mot-clé safe fait retomber
   l'alignement sur le haut, ce qui évite de rendre le début du texte
   inatteignable dans une zone défilante. Les navigateurs qui ne le
   connaissent pas ignorent la seconde déclaration et gardent la première. */
.auto-carousel-slide-inner > .approche-part{
  width:100%!important;
  height:100%!important;
  min-height:0!important;
  display:flex!important;
  flex-direction:column!important;
  justify-content:center!important;
  justify-content:safe center!important;
}

.auto-carousel-slide-inner > .approche-part--principe .note{
  margin:0!important;
  background:transparent!important;
  border:0!important;
  border-left:4px solid var(--orange)!important;
  border-radius:0!important;
  padding:clamp(8px,1.4svh,16px) 0 clamp(8px,1.4svh,16px) clamp(18px,2.2vw,32px)!important;
  max-width:min(100%,80ch)!important;
}

.auto-carousel-slide-inner > .approche-part--principe .note .lbl{
  font-size:clamp(11px,1.5svh,13px)!important;
  margin-bottom:clamp(10px,1.6svh,18px)!important;
}

.auto-carousel-slide-inner > .approche-part--principe .note p{
  margin:0!important;
  font-size:clamp(17px,2.6svh,26px)!important;
  line-height:1.5!important;
}

/* V82 — Cabinet / Direction : visuel sur la moitié droite, pleine hauteur.

   Même dispositif que la section RSE de l'accueil (bloc V73) : la section
   passe en grille de deux colonnes égales, la colonne de gauche porte le
   texte avec le retrait de 32px commun à toutes les sous-sections, la
   colonne de droite le visuel bord à bord. Le retrait de section est donc
   remis à zéro et reporté sur la colonne de texte.

   La section reçoit data-no-auto-carousel : sans cela, le texte réduit à une
   demi-largeur devient plus haut que l'écran et le script le transformerait
   en carrousel, ce qui reconstruirait le balisage et ferait disparaître la
   mise en page en deux colonnes. */

#direction.subnav-section.subnav-target-section{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
  grid-template-rows:minmax(0,1fr)!important;
  align-items:stretch!important;
  align-content:stretch!important;
  padding:0!important;
  overflow:hidden!important;
}

#direction.subnav-section.subnav-target-section > .wrap{
  grid-column:1!important;
  grid-row:1!important;
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  padding:clamp(18px,2.7svh,30px) clamp(24px,3vw,48px) clamp(14px,2.1svh,24px) 32px!important;
  display:flex!important;
  flex-direction:column!important;
  justify-content:flex-start!important;
  align-items:flex-start!important;
  align-self:stretch!important;
  min-height:0!important;
  overflow-y:auto!important;
  overscroll-behavior:contain!important;
  box-sizing:border-box!important;
}

#direction.subnav-section.subnav-target-section > .direction-media{
  grid-column:2!important;
  grid-row:1!important;
  position:relative!important;
  display:block!important;
  width:100%!important;
  height:100%!important;
  min-height:0!important;
  max-height:none!important;
  margin:0!important;
  padding:0!important;
  overflow:hidden!important;
  background:#e6edf6!important;
  align-self:stretch!important;
}

#direction.subnav-section.subnav-target-section > .direction-media img{
  position:absolute!important;
  top:0!important;
  right:0!important;
  bottom:0!important;
  left:0!important;
  display:block!important;
  width:100%!important;
  height:100%!important;
  max-width:none!important;
  max-height:none!important;
  margin:0!important;
  aspect-ratio:auto!important;
  object-fit:cover!important;
  object-position:center!important;
}

@media(max-width:900px){
  #direction.subnav-section.subnav-target-section{
    grid-template-columns:minmax(0,1fr)!important;
    grid-template-rows:minmax(170px,30svh) minmax(0,1fr)!important;
  }
  #direction.subnav-section.subnav-target-section > .direction-media{
    grid-column:1!important;
    grid-row:1!important;
  }
  #direction.subnav-section.subnav-target-section > .wrap{
    grid-column:1!important;
    grid-row:2!important;
    padding:18px 22px 22px!important;
  }
}

/* V83 — Cabinet / Nos consultants : le texte occupe la cartouche.

   Les pastilles numérotées ont été retirées du balisage, et les trois règles
   qui les mettaient en forme supprimées, devenues mortes.

   Le texte n'occupait qu'un peu plus du tiers de la largeur : le titre était
   borné à 28ch et les paragraphes à 76ch, soit environ 610 px sur une
   cartouche qui en fait 1360. Les bornes sont entièrement levées — le titre
   et le corps occupent la largeur du panneau — et les corps agrandis en
   conséquence : à 24px, une ligne pleine largeur fait environ 113 caractères.
   Les valeurs sont indexées sur la hauteur d'écran, si bien qu'elles se
   resserrent d'elles-mêmes sur un écran peu haut, où la troisième carte, la
   plus chargée, sert de contrainte. La carte reste centrée verticalement et
   alignée à gauche. */

#consultants.subnav-section.subnav-target-section .consultant-topic-card{
  gap:clamp(12px,1.8svh,22px)!important;
}
#consultants.subnav-section.subnav-target-section .consultant-topic-card h3{
  max-width:none!important;
  width:100%!important;
  font-size:clamp(22px,4.4svh,42px)!important;
  line-height:1.12!important;
}
#consultants.subnav-section.subnav-target-section .consultant-topic-card p,
#consultants.subnav-section.subnav-target-section .consultant-topic-card ul,
#consultants.subnav-section.subnav-target-section .consultant-topic-card li{
  max-width:none!important;
  width:100%!important;
}
#consultants.subnav-section.subnav-target-section .consultant-topic-card p,
#consultants.subnav-section.subnav-target-section .consultant-topic-card li{
  font-size:clamp(16px,2.6svh,24px)!important;
  line-height:1.5!important;
}
#consultants.subnav-section.subnav-target-section .consultant-topic-card ul.clean{
  gap:clamp(6px,1svh,11px)!important;
}

@media(max-width:900px){
  #consultants.subnav-section.subnav-target-section .consultant-topic-card h3{
    font-size:clamp(17px,5vw,21px)!important;
  }
  #consultants.subnav-section.subnav-target-section .consultant-topic-card p,
  #consultants.subnav-section.subnav-target-section .consultant-topic-card li{
    font-size:15px!important;
    max-width:none!important;
  }
}

/* V84 — Cabinet / Socle technique : le contenu occupe la cartouche.

   Les pastilles numérotées ont été retirées du balisage et leurs règles
   supprimées, devenues mortes.

   Le titre de carte était borné à 12ch, ce qui le cassait en trois ou quatre
   lignes dans une colonne déjà étroite ; le corps l'était à 66ch. Les deux
   bornes sont relevées, les corps agrandis et indexés sur la hauteur
   d'écran, et les étiquettes du bas passent à une taille cohérente avec le
   reste — elles étaient restées à 13px, réglage hérité des listes de tags
   d'une page courante, sans rapport avec une cartouche pleine hauteur. */

#socle.subnav-section.subnav-target-section .tech-slide-card{
  grid-template-columns:minmax(200px,.8fr) minmax(0,1.7fr)!important;
  gap:clamp(26px,3.4vw,56px)!important;
}

#socle.subnav-section.subnav-target-section .tech-slide-card h3{
  max-width:min(100%,16ch)!important;
  font-size:clamp(22px,4svh,40px)!important;
  line-height:1.08!important;
}

#socle.subnav-section.subnav-target-section .tech-slide-content{
  gap:clamp(14px,2.1svh,26px)!important;
}

#socle.subnav-section.subnav-target-section .tech-slide-content p{
  max-width:min(100%,88ch)!important;
  font-size:clamp(16px,2.3svh,22px)!important;
  line-height:1.5!important;
}

#socle.subnav-section.subnav-target-section .tech-slide-content .clean{
  gap:clamp(8px,1.3svh,15px)!important;
}

#socle.subnav-section.subnav-target-section .tech-slide-content .clean li{
  font-size:clamp(16px,2.3svh,22px)!important;
  line-height:1.45!important;
}

#socle.subnav-section.subnav-target-section .tech-slide-content .tags{
  display:flex!important;
  flex-wrap:wrap!important;
  gap:clamp(8px,1.2svh,14px)!important;
}

#socle.subnav-section.subnav-target-section .tech-slide-content .tags li{
  font-size:clamp(13px,1.7svh,17px)!important;
  padding:clamp(8px,1.2svh,14px) clamp(14px,1.5vw,24px)!important;
  line-height:1.2!important;
}

@media(max-width:900px){
  #socle.subnav-section.subnav-target-section .tech-slide-card h3{
    max-width:none!important;
    font-size:clamp(20px,6vw,26px)!important;
  }
  #socle.subnav-section.subnav-target-section .tech-slide-content p,
  #socle.subnav-section.subnav-target-section .tech-slide-content .clean li{
    font-size:15px!important;
    max-width:none!important;
  }
  #socle.subnav-section.subnav-target-section .tech-slide-content .tags li{
    font-size:12.5px!important;
    padding:6px 12px!important;
  }
}

/* Le titre le plus long de la série — « Intégration & transformation »,
   27 caractères dont un mot de 14 — garde un corps un peu plus mesuré et une
   borne un peu plus large, pour ne pas déborder de sa colonne. */
#socle.subnav-section.subnav-target-section .tech-slide-card h3.tech-title-integration{
  max-width:min(100%,17ch)!important;
  font-size:clamp(20px,3.6svh,35px)!important;
}

/* V85 — Cabinet / Implantations : mention d'accueil sortie des cartes,
   et regroupement des deux dernières cartouches.

   1. « Accueil sur rendez-vous… » était la troisième phrase du paragraphe de
      la carte Paris. Elle concerne les deux adresses : elle est désormais un
      paragraphe autonome, placé sous les deux cartes, en registre discret.

   2. Les blocs « Zone d'intervention » et « Comment nous travaillons depuis
      ces deux points » formaient deux diapositives. Ils sont réunis dans un
      conteneur porteur de data-auto-standalone, que le script traite comme
      une unité — un conteneur générique de moins de six enfants n'est pas
      redécoupé.

   3. La grille de ce conteneur perd sa seconde colonne : la carte logo qui
      l'occupait est supprimée par le script, la carte restante prendrait
      sinon la moitié de la largeur. Elle perd aussi son cadre, qui n'a plus
      lieu d'être face au texte libre qui la suit. */

#implantations.subnav-section.subnav-target-section .implantations-opening-note{
  width:100%!important;
  max-width:min(100%,110ch)!important;
  margin:clamp(14px,2svh,24px) auto 0!important;
  font-size:clamp(14px,1.9svh,17px)!important;
  line-height:1.5!important;
  color:var(--mute)!important;
  text-align:center!important;
}

/* 4. Les deux cartouches occupent toute leur largeur. Trois bornes s'y
      opposaient : 76ch sur le paragraphe d'ouverture, 46ch sur le texte des
      cartes de lieu — soit environ 330 px dans une carte qui en fait 670 —
      et 100ch sur la seconde cartouche. Les corps sont relevés en
      conséquence, sur la même échelle que les autres carrousels du site. */

#implantations.subnav-section.subnav-target-section .implantations-opening-lead p{
  max-width:none!important;
  width:100%!important;
  font-size:clamp(16px,2.4svh,22px)!important;
  line-height:1.55!important;
}

#implantations.subnav-section.subnav-target-section .implantation-location-card h3{
  max-width:none!important;
  font-size:clamp(18px,2.8svh,26px)!important;
  line-height:1.16!important;
}

#implantations.subnav-section.subnav-target-section .implantation-location-card p{
  max-width:none!important;
  width:100%!important;
  font-size:clamp(15px,2.2svh,20px)!important;
  line-height:1.5!important;
}

#implantations.subnav-section.subnav-target-section .implantations-part{
  width:100%!important;
  display:flex!important;
  flex-direction:column!important;
  gap:clamp(14px,2.2svh,26px)!important;
}

#implantations.subnav-section.subnav-target-section .implantations-part > .grid{
  grid-template-columns:minmax(0,1fr)!important;
  gap:clamp(12px,1.8svh,20px)!important;
  margin:0!important;
}

#implantations.subnav-section.subnav-target-section .implantations-part > .grid > .item{
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
  border-radius:0!important;
  padding:0!important;
}

#implantations.subnav-section.subnav-target-section .implantations-part h3{
  margin:0!important;
  font-size:clamp(18px,2.8svh,28px)!important;
  line-height:1.14!important;
}

#implantations.subnav-section.subnav-target-section .implantations-part p,
#implantations.subnav-section.subnav-target-section .implantations-part li{
  font-size:clamp(16px,2.4svh,22px)!important;
  line-height:1.5!important;
  max-width:none!important;
  width:100%!important;
}

@media(max-width:900px){
  #implantations.subnav-section.subnav-target-section .implantations-part h3{
    font-size:clamp(17px,5vw,21px)!important;
  }
  #implantations.subnav-section.subnav-target-section .implantations-part p,
  #implantations.subnav-section.subnav-target-section .implantations-part li,
  #implantations.subnav-section.subnav-target-section .implantations-opening-note{
    font-size:15px!important;
    max-width:none!important;
  }
}

/* V86 — Cabinet / Notre approche : le texte occupe toute la largeur.

   Le bridage venait de la règle de base « p{max-width:76ch} », soit environ
   620 px à 17px — la moitié d'une cartouche qui en fait 1360. La borne est
   levée sur les trois blocs du carrousel.

   Le corps est relevé en conséquence : à 17px, une ligne pleine largeur
   ferait environ 160 caractères, bien au-delà de ce qui se lit
   confortablement. À 22px elle en fait environ 124, ce qui reste long mais
   tenable pour des paragraphes courts. Si la mesure paraît encore trop
   large, c'est la seule déclaration max-width à réintroduire. */

.auto-carousel-slide-inner > .approche-part p,
.auto-carousel-slide-inner > .approche-part li,
.auto-carousel-slide-inner > .approche-part ul{
  max-width:none!important;
  width:100%!important;
}

.auto-carousel-slide-inner > .approche-part p,
.auto-carousel-slide-inner > .approche-part li{
  font-size:clamp(16px,2.4svh,22px)!important;
  line-height:1.55!important;
}

.auto-carousel-slide-inner > .approche-part--deroule h3{
  max-width:none!important;
  font-size:clamp(19px,3svh,30px)!important;
  line-height:1.14!important;
  margin:0 0 clamp(10px,1.6svh,20px)!important;
}

.auto-carousel-slide-inner > .approche-part--deroule ul.clean{
  display:grid!important;
  gap:clamp(10px,1.6svh,20px)!important;
}

.auto-carousel-slide-inner > .approche-part--principe .note{
  max-width:none!important;
  width:100%!important;
}

@media(max-width:900px){
  .auto-carousel-slide-inner > .approche-part p,
  .auto-carousel-slide-inner > .approche-part li{
    font-size:15px!important;
  }
  .auto-carousel-slide-inner > .approche-part--deroule h3{
    font-size:clamp(17px,5vw,21px)!important;
  }
}

/* V87 — Nos services : moins de diapositives par practice.

   Chaque practice produisait dix diapositives : l'ouverture illustrée, six
   capacités découpées une par une, deux fiches de détail et le visuel. Pour
   480 caractères de capacités au total, le découpage était disproportionné.

   Le balisage regroupe désormais les capacités dans un conteneur unique et
   les deux fiches de détail dans un autre, tous deux porteurs de
   data-auto-standalone. On passe de dix à quatre diapositives :
   ouverture, capacités, détails, visuel.

   Les grilles internes occupent la hauteur du panneau et les corps sont
   calibrés pour la cellule obtenue — trois colonnes sur deux rangées pour
   les capacités, deux colonnes pour les détails. */

.auto-carousel-slide-inner > .practice-part{
  width:100%!important;
  height:100%!important;
  min-height:0!important;
}

.auto-carousel-slide-inner > .practice-part--capabilities > .grid{
  height:100%!important;
  min-height:0!important;
  margin:0!important;
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  grid-template-rows:repeat(2,minmax(0,1fr))!important;
  gap:clamp(12px,1.8svh,22px)!important;
  align-content:stretch!important;
}

.auto-carousel-slide-inner > .practice-part--capabilities .capability-card{
  height:100%!important;
  min-height:0!important;
  align-self:stretch!important;
  justify-content:center!important;
  padding:clamp(14px,2svh,26px) clamp(14px,1.5vw,26px)!important;
}

.auto-carousel-slide-inner > .practice-part--capabilities .capability-card h3{
  max-width:none!important;
  margin:0 0 clamp(6px,1svh,12px)!important;
  font-size:clamp(16px,2.4svh,23px)!important;
  line-height:1.16!important;
}

.auto-carousel-slide-inner > .practice-part--capabilities .capability-card p{
  max-width:none!important;
  margin:0!important;
  font-size:clamp(14px,1.95svh,18px)!important;
  line-height:1.45!important;
}





@media(max-width:900px){
  .auto-carousel-slide-inner > .practice-part--capabilities > .grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    grid-template-rows:repeat(3,minmax(0,1fr))!important;
    gap:8px!important;
  }
  .auto-carousel-slide-inner > .practice-part--capabilities .capability-card h3{
    font-size:14px!important;
  }
  .auto-carousel-slide-inner > .practice-part--capabilities .capability-card p{
    font-size:12.5px!important;
  }
}

/* V88 — Nos services / Formation : visuel pleine hauteur, texte aligné
   comme les autres sous-sections.

   La section restait un bloc .intro classique : le visuel prenait sa hauteur
   naturelle, avec du vide au-dessus et en dessous, et le sur-titre était
   centré verticalement dans sa colonne au lieu de démarrer en haut.

   Elle reprend le dispositif des blocs V73 (RSE) et V82 (Direction) : deux
   colonnes égales sur toute la hauteur, texte à gauche avec le retrait de
   32px commun à toutes les sous-sections, visuel à droite bord à bord.
   Le balisage plaçait la figure avant le texte ; les colonnes sont donc
   assignées explicitement plutôt que laissées à l'ordre du document.

   La section reçoit data-no-auto-carousel : le texte réduit à une
   demi-largeur pourrait dépasser la hauteur d'écran, et le script le
   transformerait en carrousel, ce qui reconstruirait le balisage. */

#formation.subnav-section.subnav-target-section{
  display:grid!important;
  grid-template-rows:minmax(0,1fr)!important;
  align-content:stretch!important;
  padding:0!important;
  overflow:hidden!important;
}

#formation.subnav-section.subnav-target-section > .wrap{
  width:100%!important;
  max-width:none!important;
  height:100%!important;
  min-height:0!important;
  margin:0!important;
  padding:0!important;
  display:grid!important;
  grid-template-rows:minmax(0,1fr)!important;
}

#formation.subnav-section.subnav-target-section > .wrap > .intro{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
  grid-template-rows:minmax(0,1fr)!important;
  gap:0!important;
  width:100%!important;
  height:100%!important;
  min-height:0!important;
  margin:0!important;
  align-items:stretch!important;
}

#formation.subnav-section.subnav-target-section > .wrap > .intro > .head{
  grid-column:1!important;
  grid-row:1!important;
  width:100%!important;
  max-width:none!important;
  min-height:0!important;
  margin:0!important;
  padding:clamp(18px,2.7svh,30px) clamp(24px,3vw,48px) clamp(14px,2.1svh,24px) 32px!important;
  display:flex!important;
  flex-direction:column!important;
  justify-content:flex-start!important;
  align-items:flex-start!important;
  overflow-y:auto!important;
  overscroll-behavior:contain!important;
  box-sizing:border-box!important;
}

#formation.subnav-section.subnav-target-section > .wrap > .intro > .head p{
  max-width:min(100%,70ch)!important;
  font-size:clamp(15px,2svh,17px)!important;
}

#formation.subnav-section.subnav-target-section > .wrap > .intro > .fig{
  grid-column:2!important;
  grid-row:1!important;
  position:relative!important;
  display:block!important;
  width:100%!important;
  height:100%!important;
  min-height:0!important;
  max-height:none!important;
  margin:0!important;
  padding:0!important;
  border-radius:0!important;
  overflow:hidden!important;
  background:#e6edf6!important;
  align-self:stretch!important;
}

#formation.subnav-section.subnav-target-section > .wrap > .intro > .fig img{
  position:absolute!important;
  top:0!important;
  right:0!important;
  bottom:0!important;
  left:0!important;
  display:block!important;
  width:100%!important;
  height:100%!important;
  max-width:none!important;
  max-height:none!important;
  margin:0!important;
  aspect-ratio:auto!important;
  object-fit:cover!important;
  object-position:center!important;
}

@media(max-width:900px){
  #formation.subnav-section.subnav-target-section > .wrap > .intro{
    grid-template-columns:minmax(0,1fr)!important;
    grid-template-rows:minmax(170px,30svh) minmax(0,1fr)!important;
  }
  #formation.subnav-section.subnav-target-section > .wrap > .intro > .fig{
    grid-column:1!important;
    grid-row:1!important;
  }
  #formation.subnav-section.subnav-target-section > .wrap > .intro > .head{
    grid-column:1!important;
    grid-row:2!important;
    padding:18px 22px 22px!important;
  }
}

/* V89 — Nos services : les deux fiches de détail, seules dans leur cartouche.

   Regroupées en deux colonnes (état précédent), elles débordaient toutes les
   deux et affichaient une barre de défilement : 556 caractères de liste pour
   la première, dans une demi-largeur. Elles redeviennent deux diapositives,
   chacune occupant toute la cartouche.

   Le visuel qui les suivait a été retiré du balisage : il reprenait
   exactement l'image de la diapositive d'ouverture, dans les cinq practices.

   La liste des livrables passe en colonnes : une seule colonne de pastilles
   sur 1360 px donnerait des blocs démesurés pour trois mots. */

.auto-carousel-slide-inner .practice-part--detail > .detail-card{
  width:100%!important;
  height:100%!important;
  min-height:0!important;
  display:flex!important;
  flex-direction:column!important;
  justify-content:center!important;
  justify-content:safe center!important;
}

.auto-carousel-slide-inner .practice-part--detail > .detail-card .detail-kicker{
  font-size:clamp(11px,1.5svh,13px)!important;
}

.auto-carousel-slide-inner .practice-part--detail > .detail-card h3{
  max-width:none!important;
  margin:0 0 clamp(12px,2svh,22px)!important;
  font-size:clamp(20px,3.2svh,34px)!important;
  line-height:1.14!important;
}

.auto-carousel-slide-inner .practice-part--detail > .detail-card ul.clean{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:clamp(10px,1.6svh,20px) clamp(20px,2.4vw,40px)!important;
  margin:0!important;
}

.auto-carousel-slide-inner .practice-part--detail > .detail-card ul.clean li{
  max-width:none!important;
  font-size:clamp(15px,2.1svh,20px)!important;
  line-height:1.5!important;
}

.auto-carousel-slide-inner .practice-part--detail > .detail-card ul.tags{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:clamp(10px,1.5svh,18px)!important;
  margin:0!important;
}

.auto-carousel-slide-inner .practice-part--detail > .detail-card ul.tags li{
  font-size:clamp(14px,1.95svh,18px)!important;
  padding:clamp(12px,1.8svh,20px) clamp(14px,1.4vw,22px) clamp(12px,1.8svh,20px) clamp(30px,2.4vw,40px)!important;
}

@media(max-width:900px){
  .auto-carousel-slide-inner .practice-part--detail > .detail-card ul.clean,
  .auto-carousel-slide-inner .practice-part--detail > .detail-card ul.tags{
    grid-template-columns:minmax(0,1fr)!important;
    gap:8px!important;
  }
  .auto-carousel-slide-inner .practice-part--detail > .detail-card h3{
    font-size:clamp(18px,5.5vw,23px)!important;
  }
  .auto-carousel-slide-inner .practice-part--detail > .detail-card ul.clean li{
    font-size:14.5px!important;
  }
}

/* La diapositive des capacités peut porter une note en pied — c'est le cas
   de data science. La grille occupe alors la hauteur restante. */
.auto-carousel-slide-inner > .practice-part--capabilities{
  display:flex!important;
  flex-direction:column!important;
  gap:clamp(12px,1.8svh,22px)!important;
}
.auto-carousel-slide-inner > .practice-part--capabilities > .grid{
  flex:1 1 auto!important;
}
.auto-carousel-slide-inner > .practice-part--capabilities > .practice-note{
  flex:0 0 auto!important;
  margin:0!important;
}
.auto-carousel-slide-inner > .practice-part--capabilities > .practice-note p{
  margin:0!important;
  max-width:none!important;
  font-size:clamp(14px,1.9svh,17px)!important;
  line-height:1.5!important;
}

/* Enveloppée pour échapper au redécoupage, la fiche de détail n'est plus
   enfant direct du panneau : la règle du bloc V74 ne la voyait plus et son
   cadre réapparaissait à l'intérieur de celui du carrousel. */
.auto-carousel-slide-inner > .practice-part--detail{
  width:100%!important;
  height:100%!important;
  min-height:0!important;
}
.auto-carousel-slide-inner > .practice-part--detail > .detail-card{
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
  border-radius:0!important;
  padding:0!important;
}

/* V90 — Cas clients : découpage par secteur.

   La page mêlait deux logiques : quatre sections portaient un identifiant de
   secteur mais présentaient un cas d'un autre secteur — #distribution
   contenait un cas d'assurance, #services un cas bancaire — et quatre autres
   regroupaient des cas courts par secteur, avec des libellés qui entraient en
   collision avec les premiers.

   Cinq sections sectorielles les remplacent, chaque cas occupant une
   cartouche : .case-card. Cette classe ne correspond à aucun sélecteur du
   script, et chaque carte compte moins de six enfants directs — les deux
   conditions pour qu'une diapositive ne soit pas redécoupée. */

.auto-carousel-slide-inner > .case-card{
  width:100%!important;
  height:100%!important;
  min-height:0!important;
  display:flex!important;
  flex-direction:column!important;
  justify-content:center!important;
  justify-content:safe center!important;
  gap:clamp(10px,1.6svh,20px)!important;
}

.auto-carousel-slide-inner > .case-card > h3{
  max-width:none!important;
  margin:0!important;
  font-size:clamp(19px,3svh,32px)!important;
  line-height:1.14!important;
}

.auto-carousel-slide-inner > .case-card .case-lead,
.auto-carousel-slide-inner > .case-card > p{
  max-width:none!important;
  margin:0!important;
  font-size:clamp(15px,2.1svh,20px)!important;
  line-height:1.5!important;
}

/* Les repères de mission tiennent sur une ligne. */
.auto-carousel-slide-inner > .case-card .case-facts{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:0!important;
  margin:0!important;
  border:1px solid var(--line)!important;
  border-radius:10px!important;
  overflow:hidden!important;
}
.auto-carousel-slide-inner > .case-card .case-facts dt,
.auto-carousel-slide-inner > .case-card .case-facts dd{
  padding:clamp(8px,1.2svh,14px) clamp(10px,1vw,16px)!important;
}
.auto-carousel-slide-inner > .case-card .case-facts dt{
  grid-row:1!important;
  font-size:clamp(9.5px,1.15svh,11px)!important;
  padding-bottom:0!important;
}
.auto-carousel-slide-inner > .case-card .case-facts dd{
  grid-row:2!important;
  font-size:clamp(13px,1.8svh,16px)!important;
  padding-top:2px!important;
}

/* Les trois volets d'un cas détaillé, côte à côte. */
.auto-carousel-slide-inner > .case-card .case-card-grid{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:clamp(12px,1.6vw,26px)!important;
  margin:0!important;
  min-height:0!important;
}
.auto-carousel-slide-inner > .case-card .case-card-grid > .case-block{
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
  padding:0!important;
  min-height:0!important;
}
.auto-carousel-slide-inner > .case-card .case-card-grid h3{
  margin:0 0 clamp(5px,.8svh,9px)!important;
  font-size:clamp(14px,1.9svh,17px)!important;
  line-height:1.2!important;
}
.auto-carousel-slide-inner > .case-card .case-card-grid p,
.auto-carousel-slide-inner > .case-card .case-card-grid li{
  max-width:none!important;
  font-size:clamp(13px,1.75svh,16px)!important;
  line-height:1.45!important;
}

/* Corps des cas courts : missions, livrables, méthodologie. */
.auto-carousel-slide-inner > .case-card .case-card-body{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:clamp(10px,1.5svh,20px) clamp(20px,2.4vw,44px)!important;
  align-items:start!important;
}
.auto-carousel-slide-inner > .case-card .case-card-body > p:first-child{
  grid-column:1 / -1!important;
}
.auto-carousel-slide-inner > .case-card .case-card-body h4{
  margin:0 0 clamp(4px,.7svh,8px)!important;
}
.auto-carousel-slide-inner > .case-card .case-card-body ul{
  margin:0!important;
}
.auto-carousel-slide-inner > .case-card .case-card-body p,
.auto-carousel-slide-inner > .case-card .case-card-body li{
  max-width:none!important;
  font-size:clamp(14px,1.95svh,18px)!important;
  line-height:1.5!important;
}

@media(max-width:900px){
  .auto-carousel-slide-inner > .case-card .case-facts,
  .auto-carousel-slide-inner > .case-card .case-card-grid,
  .auto-carousel-slide-inner > .case-card .case-card-body{
    grid-template-columns:minmax(0,1fr)!important;
  }
  .auto-carousel-slide-inner > .case-card .case-facts dt,
  .auto-carousel-slide-inner > .case-card .case-facts dd{
    grid-row:auto!important;
  }
  .auto-carousel-slide-inner > .case-card > h3{
    font-size:clamp(18px,5.5vw,23px)!important;
  }
}


/* V91 — Démarche RSE : contenu centré en hauteur, pleine largeur.

   Les six sections de rse.html partagent la même structure : une suite de
   blocs libres — paragraphes, listes, encadrés — que le script répartit en
   diapositives. Ils étaient calés en haut à gauche, avec une longueur de
   ligne bornée à 78ch, ce qui laissait un vide en bas et à droite.

   Les sélecteurs sont en descendance et non en enfant direct : quand une
   liste dépasse deux éléments, le script la découpe et enveloppe chaque
   morceau dans un conteneur. Le contenu se retrouve alors un niveau plus
   bas, et une règle en « > » ne l'atteint plus.

   Le corps est relevé pour accompagner la pleine largeur : à 17px une ligne
   ferait environ 165 caractères, à 22px elle en fait environ 124.

   « safe center » double « center » : si un contenu dépassait la hauteur du
   panneau, l'alignement retombe en haut plutôt que de rendre son début
   inatteignable dans la zone défilante. */

#donnees.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner,
#social.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner,
#environnement.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner,
#achats.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner,
#gouvernance.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner,
#documents.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner{
  justify-content:center!important;
  justify-content:safe center!important;
  align-items:stretch!important;
}

#donnees.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner > *,
#social.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner > *,
#environnement.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner > *,
#achats.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner > *,
#gouvernance.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner > *,
#documents.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner > *{
  width:100%!important;
  max-width:none!important;
  margin-inline:0!important;
}

#donnees.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner p,
#social.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner p,
#environnement.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner p,
#achats.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner p,
#gouvernance.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner p,
#documents.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner p,
#donnees.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner ul,
#social.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner ul,
#environnement.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner ul,
#achats.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner ul,
#gouvernance.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner ul,
#documents.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner ul,
#donnees.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner ol,
#social.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner ol,
#environnement.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner ol,
#achats.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner ol,
#gouvernance.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner ol,
#documents.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner ol,
#donnees.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner li,
#social.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner li,
#environnement.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner li,
#achats.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner li,
#gouvernance.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner li,
#documents.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner li,
#donnees.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner .note,
#social.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner .note,
#environnement.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner .note,
#achats.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner .note,
#gouvernance.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner .note,
#documents.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner .note,
#donnees.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner .auto-content-group,
#social.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner .auto-content-group,
#environnement.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner .auto-content-group,
#achats.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner .auto-content-group,
#gouvernance.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner .auto-content-group,
#documents.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner .auto-content-group{
  max-width:none!important;
  width:100%!important;
  margin-inline:0!important;
}

#donnees.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner p,
#social.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner p,
#environnement.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner p,
#achats.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner p,
#gouvernance.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner p,
#documents.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner p,
#donnees.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner li,
#social.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner li,
#environnement.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner li,
#achats.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner li,
#gouvernance.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner li,
#documents.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner li{
  font-size:clamp(16px,2.4svh,22px)!important;
  line-height:1.55!important;
}

#donnees.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner h3,
#social.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner h3,
#environnement.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner h3,
#achats.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner h3,
#gouvernance.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner h3,
#documents.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner h3,
#donnees.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner h4,
#social.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner h4,
#environnement.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner h4,
#achats.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner h4,
#gouvernance.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner h4,
#documents.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner h4{
  max-width:none!important;
  font-size:clamp(18px,2.8svh,28px)!important;
  line-height:1.16!important;
}

#donnees.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner ul.clean,
#social.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner ul.clean,
#environnement.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner ul.clean,
#achats.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner ul.clean,
#gouvernance.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner ul.clean,
#documents.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner ul.clean{
  display:grid!important;
  gap:clamp(10px,1.6svh,20px)!important;
}

#donnees.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner .rse-group,
#social.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner .rse-group,
#environnement.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner .rse-group,
#achats.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner .rse-group,
#gouvernance.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner .rse-group,
#documents.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner .rse-group{
  display:flex!important;
  flex-direction:column!important;
  gap:clamp(8px,1.3svh,16px)!important;
  width:100%!important;
  max-width:none!important;
}

#donnees.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner .rse-group + .rse-group,
#social.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner .rse-group + .rse-group,
#environnement.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner .rse-group + .rse-group,
#achats.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner .rse-group + .rse-group,
#gouvernance.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner .rse-group + .rse-group,
#documents.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner .rse-group + .rse-group{
  margin-top:clamp(14px,2.2svh,28px)!important;
}

@media(max-width:900px){
#donnees.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner p,
#social.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner p,
#environnement.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner p,
#achats.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner p,
#gouvernance.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner p,
#documents.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner p,
#donnees.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner li,
#social.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner li,
#environnement.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner li,
#achats.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner li,
#gouvernance.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner li,
#documents.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner li{
    font-size:15px!important;
  }
#donnees.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner h3,
#social.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner h3,
#environnement.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner h3,
#achats.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner h3,
#gouvernance.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner h3,
#documents.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner h3,
#donnees.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner h4,
#social.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner h4,
#environnement.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner h4,
#achats.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner h4,
#gouvernance.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner h4,
#documents.subnav-section.subnav-target-section.auto-carousel-section .auto-carousel-slide-inner h4{
    font-size:clamp(17px,5vw,21px)!important;
  }
}

/* V92 — Empêcher le chevauchement des textes dans les cartouches.

   Les enfants d'une cartouche sont des éléments flex sans valeur de
   flex-shrink déclarée : ils héritent donc de la valeur par défaut, 1. Quand
   le contenu d'une diapositive dépasse la hauteur du panneau, chaque bloc est
   comprimé sous sa hauteur naturelle — mais le texte, lui, ne se comprime
   pas : il déborde de son bloc et se superpose au suivant.

   C'est ce qu'on observait sur rse.html#environnement, où trois blocs se
   chevauchaient. Le correctif interdit la compression : les blocs gardent
   leur hauteur de contenu et le dépassement est traité comme un
   dépassement, non comme une superposition.

   Filet de sécurité complémentaire : la cartouche devient défilante
   verticalement. Le script ne pose sa classe auto-slide-scroll que sur les
   diapositives à contenu unique ; celles qui empilent plusieurs blocs
   restaient sans échappatoire. */

.auto-carousel-section .auto-carousel-slide-inner > *{
  flex-shrink:0!important;
}

.auto-carousel-section .auto-carousel-slide-inner{
  overflow-y:auto!important;
  overscroll-behavior-y:contain!important;
}


/* V93 — Démarche RSE : les trois dernières sections restent en affichage plat.

   Elles n'ont pas assez de contenu pour justifier un carrousel. Elles portent
   donc data-no-auto-carousel plutôt que le forçage : sans cet attribut, le
   script les transformerait dès qu'un écran peu haut ferait déborder leur
   contenu, et leur rendu changerait d'un visiteur à l'autre.

   Conséquence à traiter : les règles du bloc V91 sont portées par
   .auto-carousel-section, classe posée par le script. Hors carrousel, elles
   ne s'appliquent pas et les listes retombaient à leur borne de 76ch. Les
   mêmes mesures sont donc reprises ici pour l'état plat. */

#achats.subnav-section.subnav-target-section > .wrap p,
#gouvernance.subnav-section.subnav-target-section > .wrap p,
#documents.subnav-section.subnav-target-section > .wrap p,
#achats.subnav-section.subnav-target-section > .wrap ul,
#gouvernance.subnav-section.subnav-target-section > .wrap ul,
#documents.subnav-section.subnav-target-section > .wrap ul,
#achats.subnav-section.subnav-target-section > .wrap ol,
#gouvernance.subnav-section.subnav-target-section > .wrap ol,
#documents.subnav-section.subnav-target-section > .wrap ol,
#achats.subnav-section.subnav-target-section > .wrap li,
#gouvernance.subnav-section.subnav-target-section > .wrap li,
#documents.subnav-section.subnav-target-section > .wrap li,
#achats.subnav-section.subnav-target-section > .wrap .note,
#gouvernance.subnav-section.subnav-target-section > .wrap .note,
#documents.subnav-section.subnav-target-section > .wrap .note,
#achats.subnav-section.subnav-target-section > .wrap .rse-group,
#gouvernance.subnav-section.subnav-target-section > .wrap .rse-group,
#documents.subnav-section.subnav-target-section > .wrap .rse-group{
  max-width:none!important;
  width:100%!important;
  margin-inline:0!important;
}

#achats.subnav-section.subnav-target-section > .wrap p,
#gouvernance.subnav-section.subnav-target-section > .wrap p,
#documents.subnav-section.subnav-target-section > .wrap p,
#achats.subnav-section.subnav-target-section > .wrap li,
#gouvernance.subnav-section.subnav-target-section > .wrap li,
#documents.subnav-section.subnav-target-section > .wrap li{
  font-size:clamp(16px,2.4svh,22px)!important;
  line-height:1.55!important;
}

#achats.subnav-section.subnav-target-section > .wrap h3,
#gouvernance.subnav-section.subnav-target-section > .wrap h3,
#documents.subnav-section.subnav-target-section > .wrap h3,
#achats.subnav-section.subnav-target-section > .wrap h4,
#gouvernance.subnav-section.subnav-target-section > .wrap h4,
#documents.subnav-section.subnav-target-section > .wrap h4{
  max-width:none!important;
  font-size:clamp(18px,2.8svh,28px)!important;
  line-height:1.16!important;
}

#achats.subnav-section.subnav-target-section > .wrap ul.clean,
#gouvernance.subnav-section.subnav-target-section > .wrap ul.clean,
#documents.subnav-section.subnav-target-section > .wrap ul.clean{
  display:grid!important;
  gap:clamp(10px,1.6svh,20px)!important;
}

#achats.subnav-section.subnav-target-section > .wrap .rse-group,
#gouvernance.subnav-section.subnav-target-section > .wrap .rse-group,
#documents.subnav-section.subnav-target-section > .wrap .rse-group{
  display:flex!important;
  flex-direction:column!important;
  gap:clamp(8px,1.3svh,16px)!important;
}

/* Le tampon de mise à jour garde sa discrétion. */
#achats.subnav-section.subnav-target-section > .wrap .stamp,
#gouvernance.subnav-section.subnav-target-section > .wrap .stamp,
#documents.subnav-section.subnav-target-section > .wrap .stamp{
  font-size:clamp(11px,1.5svh,13px)!important;
}

@media(max-width:900px){
#achats.subnav-section.subnav-target-section > .wrap p,
#gouvernance.subnav-section.subnav-target-section > .wrap p,
#documents.subnav-section.subnav-target-section > .wrap p,
#achats.subnav-section.subnav-target-section > .wrap li,
#gouvernance.subnav-section.subnav-target-section > .wrap li,
#documents.subnav-section.subnav-target-section > .wrap li{
    font-size:15px!important;
  }
#achats.subnav-section.subnav-target-section > .wrap h3,
#gouvernance.subnav-section.subnav-target-section > .wrap h3,
#documents.subnav-section.subnav-target-section > .wrap h3,
#achats.subnav-section.subnav-target-section > .wrap h4,
#gouvernance.subnav-section.subnav-target-section > .wrap h4,
#documents.subnav-section.subnav-target-section > .wrap h4{
    font-size:clamp(17px,5vw,21px)!important;
  }
}

/* V94 — Bandeaux d'ouverture : visuel sur toute la hauteur d'écran.

   Le bandeau était borné à min(56vh,510px) et entouré d'un retrait vertical
   de 46 à 100px, si bien que le visuel flottait au milieu de la page avec du
   blanc au-dessus et en dessous.

   Il occupe désormais la hauteur d'écran restante sous l'entête, et le visuel
   la remplit bord à bord, en position absolue avec object-fit:cover — la même
   mécanique que les blocs V73, V82 et V88. Le texte est centré verticalement
   en face.

   Traité sur le composant et non sur une page : les dix bandeaux du site
   partagent ce balisage et leur texte tient entre 94 et 368 caractères, donc
   aucun ne déborde. Le mot-clé safe fait retomber l'alignement en haut si un
   texte venait à dépasser. */

.hero-split{
  min-height:calc(100vh - var(--sticky-stack,var(--fallback-sticky-stack)))!important;
  min-height:calc(100svh - var(--sticky-stack,var(--fallback-sticky-stack)))!important;
  padding-block:0!important;
  align-items:stretch!important;
  align-content:stretch!important;
  overflow:hidden!important;
}

.hero-split > .hs-media{
  position:relative!important;
  display:block!important;
  width:100%!important;
  height:100%!important;
  min-height:0!important;
  max-height:none!important;
  margin:0!important;
  padding:0!important;
  overflow:hidden!important;
  align-self:stretch!important;
}

.hero-split > .hs-media img{
  position:absolute!important;
  top:0!important;
  right:0!important;
  bottom:0!important;
  left:0!important;
  display:block!important;
  width:100%!important;
  height:100%!important;
  max-width:none!important;
  max-height:none!important;
  margin:0!important;
  aspect-ratio:auto!important;
  object-fit:cover!important;
  object-position:center!important;
}

.hero-split > .hs-text{
  display:flex!important;
  flex-direction:column!important;
  justify-content:center!important;
  justify-content:safe center!important;
  min-height:0!important;
  padding-block:clamp(24px,4svh,64px)!important;
  overflow-y:auto!important;
  overscroll-behavior-y:contain!important;
}

@media(max-width:900px){
  .hero-split{
    min-height:0!important;
    padding-block:0!important;
  }
  .hero-split > .hs-media{
    height:clamp(200px,34svh,320px)!important;
    min-height:clamp(200px,34svh,320px)!important;
  }
  .hero-split > .hs-media img{
    height:100%!important;
    object-fit:cover!important;
  }
  .hero-split > .hs-text{
    justify-content:flex-start!important;
    padding-block:clamp(20px,4vw,32px)!important;
    overflow-y:visible!important;
  }
}

/* V95 — Ancres de sommaire posées sur un titre d'article.

   La règle « main [id]{scroll-margin-top:0} » annule tout décalage de
   défilement, parce que le positionnement est normalement pris en charge par
   le script de navigation précise. Ce script ne s'active que sur un clic dans
   le sommaire ou la barre : une arrivée directe par URL, un rechargement ou
   un lien externe passent par le défilement natif du navigateur, et le titre
   se retrouve alors caché sous l'entête et la barre.

   On rétablit donc une marge de défilement sur ces ancres, calculée sur la
   hauteur réelle de l'empilement collant mesurée par le script. */
main h2[id]{
  scroll-margin-top:calc(var(--sticky-stack,var(--fallback-sticky-stack)) + 12px)!important;
}

/* V96 — Cabinet / Implantations : plus de défilement interne dans le panneau.

   Le point 2 du bloc V85 réunissait « Zone d'intervention » et « Comment nous
   travaillons depuis ces deux points » dans un même conteneur porteur de
   data-auto-standalone. Le script traite ce conteneur comme une unité
   indivisible : il en faisait une seule diapositive, dont le contenu dépassait
   la hauteur du panneau. La cartouche basculait alors sur le filet de sécurité
   défini plus haut — barre de défilement interne et pastille « Faire défiler
   ce panneau pour voir la suite » — et la fin du texte restait hors champ.

   Le regroupement est défait : les deux blocs redeviennent deux diapositives,
   chacune porteuse de data-auto-standalone. La section passe de deux à trois
   pages et chaque page tient dans la hauteur d'écran, sans défilement.

   Les règles typographiques du bloc V85 visent .implantations-part par
   descendance : elles continuent de s'appliquer aux deux conteneurs, qui
   gardent cette classe. Seul l'écart vertical entre eux est à rétablir pour
   l'affichage plat (mobile et impression), où ils se suivent dans le flux au
   lieu d'occuper deux pages du carrousel. */

#implantations.subnav-section.subnav-target-section .implantations-part + .implantations-part{
  margin-top:clamp(14px,2.2svh,26px)!important;
}

/* V97 — Cabinet / Implantations : diapositives « Zone d'intervention » et
   « Comment nous travaillons depuis ces deux points ».

   La hauteur d'une cartouche de carrousel est celle de la plus haute des
   diapositives — ici la première, qui empile un chapeau, deux cartes d'adresse
   et une note. Les deux diapositives suivantes, bien plus courtes, héritaient
   de cette hauteur alors que la règle générale des cartouches les colle en
   haut (justify-content:flex-start, bloc V49). D'où la moitié basse vide.

   On centre le contenu dans la cartouche, puis on répartit ses blocs sur toute
   la hauteur disponible plutôt que de les tasser. Les plafonds typographiques
   sont relevés en conséquence : le terme en svh des clamp continue de protéger
   les écrans courts, seul le maximum change, donc l'effet ne se produit que
   là où il y a effectivement de la place.

   Portée : uniquement quand le script a posé .auto-carousel-section. En
   affichage plat — mobile et impression — les blocs se suivent dans le flux
   et ces règles ne s'appliquent pas. */

#implantations.auto-carousel-section .auto-carousel-slide-inner:has(> .implantations-part){
  justify-content:center!important;
}

#implantations.auto-carousel-section .auto-carousel-slide-inner > .implantations-part{
  height:100%!important;
  justify-content:space-evenly!important;
  gap:clamp(16px,2.6svh,30px)!important;
}

/* « Zone d'intervention » : la grille et son unique item occupent la hauteur,
   les trois entrées de la liste se répartissent au lieu de s'empiler en haut. */
#implantations.auto-carousel-section .implantations-part--zone > .grid,
#implantations.auto-carousel-section .implantations-part--zone > .grid > .item{
  height:100%!important;
  min-height:0!important;
}
#implantations.auto-carousel-section .implantations-part--zone > .grid > .item{
  display:flex!important;
  flex-direction:column!important;
  justify-content:space-evenly!important;
  gap:clamp(14px,2.2svh,24px)!important;
}
#implantations.auto-carousel-section .implantations-part--zone ul.clean{
  display:flex!important;
  flex-direction:column!important;
  justify-content:space-evenly!important;
  flex:1 1 auto!important;
  min-height:0!important;
  margin:0!important;
}
#implantations.auto-carousel-section .implantations-part--zone ul.clean > li{
  margin:0!important;
}

#implantations.auto-carousel-section .implantations-part h3{
  font-size:clamp(18px,3.1svh,32px)!important;
}
#implantations.auto-carousel-section .implantations-part p,
#implantations.auto-carousel-section .implantations-part li{
  font-size:clamp(16px,2.6svh,25px)!important;
}

/* V98 — Contact / Formulaire : la section tient dans un écran.

   #formulaire porte data-no-auto-carousel : un formulaire ne peut pas être
   découpé en diapositives sans casser la saisie. Il gardait donc sa hauteur
   naturelle et débordait largement sous la ligne de flottaison — champs,
   bouton d'envoi et mention RGPD hors champ à l'ouverture.

   On verrouille la section à la hauteur d'écran disponible, sur le modèle de
   .four-card-screen-section, puis on comprime la typographie et les espacements
   en clamp indexés sur svh. Les deux colonnes deviennent des zones de
   défilement indépendantes : sur un écran normal rien ne défile, sur un écran
   court seule la colonne concernée défile, la section reste d'un écran.

   Portée : au-delà de 900 px de large uniquement. En dessous, la mise en page
   passe sur une colonne et le formulaire doit pouvoir s'étendre librement. */

@media(min-width:901px){

  #formulaire.contact-section{
    height:calc(100vh - var(--sticky-stack,var(--fallback-sticky-stack)))!important;
    height:calc(100svh - var(--sticky-stack,var(--fallback-sticky-stack)))!important;
    min-height:0!important;
    max-height:calc(100svh - var(--sticky-stack,var(--fallback-sticky-stack)))!important;
    padding-block:clamp(12px,2svh,24px)!important;
    overflow:hidden!important;
    box-sizing:border-box!important;
    align-items:stretch!important;
  }
  #formulaire.contact-section > .wrap{
    height:100%!important;min-height:0!important;overflow:visible!important;
    display:flex!important;flex-direction:column!important;
  }
  #formulaire .contact-layout{
    height:100%!important;min-height:0!important;
    align-items:stretch!important;
    gap:clamp(20px,2.6vw,48px)!important;
  }

  /* colonne gauche : le formulaire */
  #formulaire .contact-form{
    display:flex!important;flex-direction:column!important;
    min-height:0!important;overflow-y:auto!important;overscroll-behavior:contain;
    scrollbar-width:thin;scrollbar-gutter:stable;
    padding:clamp(14px,2.2svh,30px) clamp(16px,1.8vw,32px)!important;
  }
  #formulaire .contact-form h2{
    font-size:clamp(20px,3.4svh,32px)!important;line-height:1.1!important;
    margin-bottom:clamp(4px,.8svh,10px)!important;
  }
  #formulaire .contact-form .form-intro{
    font-size:clamp(12px,1.7svh,15px)!important;line-height:1.4!important;
    margin-bottom:clamp(6px,1.1svh,14px)!important;
  }
  #formulaire .form-required-note{
    font-size:clamp(11px,1.5svh,13px)!important;
    margin-bottom:clamp(6px,1.1svh,14px)!important;
  }
  #formulaire form{
    display:flex!important;flex-direction:column!important;min-height:0!important;flex:1 1 auto!important;
  }
  #formulaire .field{margin-bottom:clamp(6px,1.3svh,16px)!important}
  #formulaire .field-row{gap:clamp(10px,1.4vw,18px)!important}
  #formulaire .field label{
    font-size:clamp(10px,1.3svh,12px)!important;
    margin-bottom:clamp(2px,.5svh,7px)!important;
  }
  #formulaire .field input,
  #formulaire .field select,
  #formulaire .field textarea{
    font-size:clamp(13px,1.9svh,16px)!important;
    padding:clamp(6px,1.1svh,13px) clamp(9px,1vw,14px)!important;
    min-height:clamp(32px,5svh,48px)!important;
  }
  /* la zone de texte absorbe la hauteur restante au lieu d'une valeur fixe */
  #formulaire .field:has(> textarea){
    flex:1 1 auto!important;min-height:0!important;display:flex!important;flex-direction:column!important;
  }
  #formulaire .contact-form .field textarea{
    flex:1 1 auto!important;min-height:clamp(56px,9svh,150px)!important;height:auto!important;resize:none!important;
  }
  #formulaire .contact-form .btn{
    margin-top:clamp(4px,.8svh,10px)!important;
    padding-block:clamp(8px,1.4svh,15px)!important;
    font-size:clamp(13px,1.8svh,15px)!important;
  }
  /* mention RGPD de premier niveau : deux lignes, plus de boîte défilante.
     Le détail — base légale, destinataires, transferts — vit désormais dans
     la politique de confidentialité, vers laquelle la mention renvoie. */
  #formulaire .contact-consent{
    font-size:clamp(10.5px,1.45svh,13px)!important;line-height:1.45!important;
    margin-top:clamp(6px,1.1svh,14px)!important;margin-bottom:0!important;
  }

  /* colonne droite : les deux cartes */
  #formulaire .contact-aside{
    display:flex!important;flex-direction:column!important;
    gap:clamp(12px,1.8svh,24px)!important;
    min-height:0!important;overflow-y:auto!important;overscroll-behavior:contain;
    scrollbar-width:thin;scrollbar-gutter:stable;
  }
  #formulaire .contact-card{padding:clamp(14px,2.2svh,30px) clamp(16px,1.6vw,30px)!important}
  #formulaire .contact-card h2{font-size:clamp(18px,3svh,29px)!important;line-height:1.12!important}
  #formulaire .contact-card h3{font-size:clamp(14px,2.2svh,19px)!important}
  #formulaire .contact-card p,
  #formulaire .contact-card li,
  #formulaire .contact-card a{font-size:clamp(12px,1.75svh,16px)!important;line-height:1.4!important}
  #formulaire .contact-card h2,
  #formulaire .contact-card h3{margin-bottom:clamp(5px,.9svh,12px)!important}
  #formulaire .contact-card li{margin-bottom:clamp(3px,.7svh,9px)!important}
  #formulaire .contact-addresses{gap:clamp(10px,1.4vw,22px)!important}
}

/* V99 — Filet de sécurité sur les blocs à apparition.

   Un élément .rise part à opacity:0 et n'apparaît qu'en recevant .seen par le
   script. Toute défaillance de ce mécanisme — script non chargé, erreur JS
   en amont, noeud recréé et non ré-observé — rend le contenu définitivement
   invisible. C'est exactement ce qui est arrivé à la section RSE de l'accueil.

   Cette animation force l'affichage au bout de cinq secondes, quoi qu'il
   arrive. Elle est annulée dès que .seen arrive, donc l'apparition normale
   reste inchangée. Le texte du site ne peut plus rester invisible. */

@keyframes rise-filet{to{opacity:1;transform:none}}
.rise{animation:rise-filet 1ms linear 5s forwards}
.rise.seen{animation:none}

/* V100 — Mouvement lent sur les grands visuels.

   Le bandeau d'accueil est un SVG animé de l'intérieur. Les autres grands
   visuels sont des photographies : on ne peut pas animer leur contenu, mais
   on peut animer le cadrage. C'est le procédé dit « Ken Burns » — une lente
   dérive combinant agrandissement et translation, qui donne de la vie à une
   image fixe sans distraire de la lecture.

   Portée : les bandeaux de haut de page (.hs-media) et le visuel de la
   section RSE de l'accueil (.rse-media). Les deux conteneurs sont déjà en
   overflow:hidden, le débordement est donc rogné proprement.

   Le bandeau d'accueil est exclu : son SVG s'anime déjà tout seul, cumuler
   les deux mouvements donnerait le tournis.

   La translation n'intervient qu'à l'état agrandi. À l'échelle 1,075 la
   marge de débordement est de 3,75 % de chaque côté ; une translation de
   1,2 % reste largement dans cette marge, aucun bord ne peut apparaître.

   Durées longues et volontairement différentes d'un visuel à l'autre, pour
   que le mouvement ne se synchronise pas d'une page à l'autre. */

@keyframes deap-derive{
  from{transform:scale(1.02) translate3d(2%,1.4%,0)}
  to{transform:scale(1.14) translate3d(-2.4%,-1.8%,0)}
}
@keyframes deap-derive-inverse{
  from{transform:scale(1.14) translate3d(2.4%,-1.8%,0)}
  to{transform:scale(1.02) translate3d(-2%,1.4%,0)}
}

.hs-media img:not([src$=".svg"]),
.rse-media img{
  animation:deap-derive 18s ease-in-out infinite alternate;
  will-change:transform;
  backface-visibility:hidden;
}
.rse-media img{
  animation-name:deap-derive-inverse;
  animation-duration:22s;
}

@media(prefers-reduced-motion:reduce){
  .hs-media img,
  .rse-media img{animation:none!important;will-change:auto!important}
}
