/* ArchiMind visual alignment — editorial, organic and intentionally restrained. */
:root{
  --shell:min(1380px,calc(100% - clamp(2rem,7vw,7rem)));
  --brand-ink:#505355;
  --brand-terra:#cf8f75;
  --brand-terra-deep:#505355;
  --brand-gold:#cfb250;
  --brand-cream:#f6f0e8;
  --brand-paper:#fcfaf7;
  --brand-sage:#dce0d4;
  --brand-peach:#ecd4c6;
  --brand-line:rgb(112 72 61 / 18%);
}

html{scroll-padding-top:7rem}
body{background:var(--brand-paper);color:var(--brand-ink)}
main{overflow:clip}
.shell{width:var(--shell)}
h1,h2,h3{color:var(--brand-ink);letter-spacing:-.025em;text-wrap:balance;overflow-wrap:normal;word-break:normal;-webkit-hyphens:none;hyphens:none}
h1{font-size:clamp(3rem,5.2vw,6.3rem);line-height:.98}
h2{font-size:clamp(2.15rem,3.6vw,4.5rem);line-height:1.05}
h3{line-height:1.18}
p,li,dd{line-height:1.72}
.eyebrow{color:var(--brand-terra-deep);letter-spacing:.16em}

.site-header{min-height:96px;border-bottom:1px solid rgb(255 255 255 / 22%);background:rgb(207 143 117 / 97%);backdrop-filter:blur(16px)}
.site-header__inner{min-height:96px}
.brand{display:flex;gap:.75rem;align-items:center;color:#fff;text-decoration:none}.brand img{width:54px;height:54px;object-fit:contain;filter:brightness(0) invert(1)}.brand span{display:grid}.brand strong{font-family:"Libre Baskerville",serif;font-size:clamp(1rem,1.4vw,1.35rem);letter-spacing:.12em}.brand small{margin-top:.15rem;font-size:.63rem;letter-spacing:.08em;text-transform:uppercase;opacity:.82}
.main-menu>.nav-item>a,.main-menu>.nav-item>.submenu-toggle,.main-menu>.academy-link{position:relative;color:#f8f5f2}
.main-menu>.nav-item>.submenu a{color:var(--brand-ink)}
.site-nav>ul>li>a::after{position:absolute;right:1rem;bottom:.55rem;left:1rem;height:1px;background:var(--brand-gold);content:"";opacity:0;transform:scaleX(.25);transition:.2s ease}
.site-nav>ul>li>a:hover::after,.site-nav>ul>li>a[aria-current="page"]::after{opacity:1;transform:scaleX(1)}
.site-nav .academy-link{border:0;border-radius:999px;background:var(--brand-terra);color:#f8f5f2}
.site-nav .academy-link::after{display:none}

.button,.button-secondary{min-height:48px;border-radius:999px;letter-spacing:.015em;box-shadow:none;transition:transform .2s ease,background .2s ease,color .2s ease}
.button{border-color:var(--brand-terra);background:var(--brand-terra)}
.button:hover,.button:focus-visible{background:var(--button-hover-gradient);transform:translateY(-2px)}
.button-secondary{border-color:var(--brand-terra-deep);color:var(--brand-terra-deep)}
.button-secondary:hover,.button-secondary:focus-visible{background:var(--button-hover-gradient);color:#2b2d2f;transform:translateY(-2px)}
.text-link{color:var(--brand-terra-deep);text-underline-offset:.28em}

/* Shared editorial rhythm: more breathing room and fewer generic boxes. */
.home-section,.formations-section,.training-section,.sessions-section,.services-section,.analysis-section,.bespoke-section,.final-section{padding-block:clamp(5rem,9vw,9rem)}
.final-section--paper{background:var(--brand-paper)}
.final-section--cream{background:var(--brand-cream)}
.final-section--dark{background:var(--brand-terra-deep)}
.final-grid,.final-exclusions{border-color:var(--brand-line)}
.final-grid article{border-color:var(--brand-line);background:transparent}
.final-grid article:nth-child(4n+2),.final-grid article:nth-child(4n+3){background:rgb(236 212 198 / 24%)}
.final-grid h3{color:var(--brand-terra-deep)}
.final-cta{position:relative;overflow:hidden;background:var(--brand-peach)}
.final-cta::before{position:absolute;top:-14rem;left:-7rem;width:30rem;height:30rem;border:1px solid rgb(179 151 82 / 55%);border-radius:50%;content:""}

/* Homepage — recognizable ArchiMind portrait, orbit and editorial storytelling. */
.home-hero{min-height:min(820px,calc(100vh - 96px));background:linear-gradient(115deg,var(--brand-cream) 0 62%,#efe1d6 62%)}
.home-hero__grid{gap:clamp(2rem,7vw,8rem);align-items:center}
.home-hero h1{max-width:10.5ch}
.home-hero__visual{position:relative;isolation:isolate;max-width:650px;margin-inline:auto}
.home-hero__visual::before{position:absolute;z-index:-1;border:1px solid var(--brand-gold);content:"";inset:-1.1rem 1rem 1rem -1.1rem}
.home-hero__visual::after{display:none}
.home-hero__visual img{aspect-ratio:4/5;border-radius:2px;object-fit:cover;object-position:50% 35%;filter:saturate(.82) contrast(.98)}
.home-hero .button{color:#fff}
.pathway-card,.formation-feature,.audience-grid article,.service-home-card{border-color:var(--brand-line);border-radius:0;box-shadow:none}
.pathway-card:first-child{background:var(--brand-cream)}
.pathway-card:last-child{background:var(--brand-peach)}
.formation-feature{overflow:hidden;background:var(--brand-paper)}
.formation-feature img{aspect-ratio:16/10;object-fit:cover}
.home-about{background:var(--brand-terra-deep);color:#fff}
.home-about h2,.home-about h3,.home-about .eyebrow{color:#fff}
.home-about figure{position:relative;z-index:0}
.home-about figure::after{position:absolute;z-index:-1;border:1px solid var(--brand-gold);content:"";inset:-1.2rem 1rem 1rem -1.2rem}
.home-about figure img{aspect-ratio:4/5;border-radius:2px;object-fit:cover;object-position:50% 35%}

/* Programme and service pillar heroes retain their own visual personality. */
.formations-hero{background:linear-gradient(125deg,var(--brand-cream),#f1e3d8)}
.formations-hero__visual{position:relative}
.formations-hero__visual::before{position:absolute;border:1px solid var(--brand-gold);border-radius:48% 52% 46% 54%;content:"";inset:-1.2rem 1rem 1rem -1.2rem}
.formations-hero__visual img{border-radius:48% 48% 8px 8px;filter:saturate(.78)}
.formation-card,.service-card{border-color:var(--brand-line);border-radius:0;background:transparent;box-shadow:none}
.formation-card:nth-child(2){background:var(--brand-cream)}
.formation-card:nth-child(3){background:rgb(220 224 212 / 55%)}
.services-hero,.analysis-hero,.bespoke-hero{position:relative;overflow:hidden}
.services-hero{background:linear-gradient(125deg,#efe4dc,var(--brand-cream))}
.services-hero::after,.analysis-hero::after,.bespoke-hero::after{position:absolute;top:10%;right:5%;bottom:10%;width:min(39vw,570px);border-radius:50% 50% 8px 8px;background-position:center;background-size:cover;box-shadow:0 28px 70px rgb(68 53 47 / 12%);content:"";filter:saturate(.76)}
.services-hero::after{background-image:url('/public/assets/media/brand/services-editorial.webp')}
.services-hero__inner,.analysis-hero__inner,.bespoke-hero__inner{position:relative;z-index:1;padding-right:min(44vw,630px)}
.services-guide__list a{border-color:var(--brand-line)}
.service-card:nth-child(2n){background:var(--brand-cream)}

/* Each discipline uses a distinct, calm palette. */
.neuro-hero{background:linear-gradient(115deg,#eee6dd 0 64%,#ded5ca 64%)}
.housing-hero{background:linear-gradient(115deg,#edf0e8 0 64%,var(--brand-sage) 64%)}
.color-hero{background:linear-gradient(115deg,#f7e9df 0 64%,var(--brand-peach) 64%)}
.neuro-hero__visual img,.housing-hero__visual img,.color-hero__visual img{border-radius:48% 48% 12px 12px;filter:saturate(.82)}
.neuro-trainer figure,.housing-trainer figure,.color-trainer figure{position:relative;z-index:0}
.neuro-trainer figure::after,.housing-trainer figure::after,.color-trainer figure::after{position:absolute;z-index:-1;border:1px solid var(--brand-gold);content:"";inset:-1rem 1rem 1rem -1rem}
.neuro-trainer figure img,.housing-trainer figure img,.color-trainer figure img{aspect-ratio:4/5;border-radius:2px;object-fit:cover;object-position:50% 35%}
.sessions-hero{background:linear-gradient(130deg,var(--brand-cream),#e8d5c7)}
.analysis-hero{background:linear-gradient(120deg,#efe7df,#ddddd0)}
.analysis-hero::after{background-image:url('/public/assets/media/brand/analysis-editorial.webp')}
.bespoke-hero{background:linear-gradient(120deg,#f7eee8,#e8d4c8)}
.bespoke-hero::after{background-image:url('/public/assets/media/brand/bespoke-editorial.webp')}

/* Finalised pages: unique hero compositions without duplicating page markup. */
.final-hero{min-height:620px;padding-block:clamp(6rem,10vw,10rem);background:var(--brand-cream)}
.final-hero::before{position:absolute;top:8%;right:5%;bottom:8%;width:min(38vw,560px);border-radius:52% 48% 8px 8px;background-position:center;background-size:cover;box-shadow:0 28px 70px rgb(68 53 47 / 14%);content:"";filter:saturate(.78)}
.final-hero::after{right:2%;bottom:-12%;width:min(43vw,640px);height:min(43vw,640px);border-color:var(--brand-gold)}
.final-hero>.shell{padding-right:min(43vw,610px)}
.final-hero h1{max-width:11ch}
.page-conception-realisation .final-hero::before{background-image:url('/public/assets/media/brand/conception-editorial.webp')}
.page-conferences .final-hero{background:#eee1d9}
.page-conferences .final-hero::before{border-radius:0;background-image:url('/public/assets/media/brand/services-editorial.webp');background-size:contain;box-shadow:none;filter:none}
.page-resources .final-hero::before,.page-blog .final-hero::before{background-image:url('/public/assets/media/brand/moodboard-editorial.webp')}
.page-contact .final-hero::before{background-image:url('/public/assets/media/brand/mathilde-white-shirt-crossed-arms.png');background-position:50% 32%}
.page-academy .final-hero{background:linear-gradient(125deg,#e8e8e0,#d4d8cd)}
.page-academy .final-hero::before{background-image:url('/public/assets/media/brand/neuro-architecture-editorial.webp')}
.page-faq .final-hero::before{border:1px solid var(--brand-gold);border-radius:50%;background:radial-gradient(circle at center,transparent 0 29%,rgb(179 151 82 / 24%) 29% 29.5%,transparent 30% 48%,rgb(166 94 73 / 18%) 48% 48.5%,transparent 49%);box-shadow:none;filter:none}
.page-presentation .final-hero{background:linear-gradient(118deg,var(--brand-cream),#ead8ca)}
.page-presentation .final-hero::before{display:none}
.page-presentation .final-hero>.shell{padding-right:0}
.final-profile figure{position:relative}
.final-profile figure::before{position:absolute;z-index:-1;border:1px solid var(--brand-gold);content:"";inset:-1rem 1rem 1rem -1rem}
.final-profile figure::after{display:none}
.final-profile img{aspect-ratio:4/5;border-radius:2px;object-position:50% 35%;filter:saturate(.82)}
.page-legal .final-hero,.final-hero--compact{min-height:auto}
.page-legal .final-hero::before,.final-hero--compact::before{display:none}
.page-legal .final-hero>.shell,.final-hero--compact>.shell{padding-right:0}

.contact-layout{position:relative}
.contact-layout::before{position:absolute;z-index:-1;top:-2rem;right:-4rem;width:18rem;height:18rem;border:1px solid var(--brand-gold);border-radius:50%;content:""}
input,select,textarea{border-color:var(--brand-line);border-radius:0;background:#fff}
input:focus,select:focus,textarea:focus{outline:3px solid rgb(166 94 73 / 24%);outline-offset:2px}
details summary:focus-visible,a:focus-visible,button:focus-visible{outline:3px solid rgb(166 94 73 / 34%);outline-offset:4px}

.site-footer{position:relative;overflow:hidden;padding-top:clamp(5rem,8vw,8rem);background:var(--brand-terra-deep);color:#f8f1e9}
.site-footer::before{position:absolute;top:-20rem;right:-10rem;width:38rem;height:38rem;border:1px solid rgb(179 151 82 / 40%);border-radius:50%;content:""}
.site-footer h2,.site-footer h3,.site-footer a{color:#fff}

@media(max-width:980px){
  .services-hero::after,.analysis-hero::after,.bespoke-hero::after{top:auto;right:5%;bottom:7%;width:34vw;opacity:.28}
  .services-hero__inner,.analysis-hero__inner,.bespoke-hero__inner{padding-right:29vw}
  .final-hero{min-height:auto;padding-bottom:4rem}
  .final-hero::before{position:relative;top:auto;right:auto;bottom:auto;display:block;width:var(--shell);height:min(62vw,540px);margin:3rem auto 0;background-position:center}
  .final-hero::after{right:-12rem;bottom:-16rem}
  .final-hero>.shell{padding-right:0}
  .final-hero--profile::before,.page-legal .final-hero::before,.final-hero--compact::before{display:none}
  .home-hero{min-height:auto;background:var(--brand-cream)}
}

@media(max-width:700px){
  :root{--shell:min(100% - 2rem,1380px)}
  h1{font-size:clamp(2.65rem,13vw,4.15rem);line-height:1.02}
  h2{font-size:clamp(2rem,10vw,3.15rem)}
  .site-header,.site-header__inner{min-height:76px}
  .brand img{width:44px;height:44px}.brand small{display:none}.brand strong{font-size:.92rem}
  .home-hero{padding-block:3.7rem 5rem}
  .home-hero__visual{width:85%;margin-top:2rem}
  .home-hero__actions,.formations-actions,.training-actions,.services-actions,.analysis-actions,.bespoke-actions{align-items:stretch}
  .home-hero__actions a,.formations-actions a,.training-actions a,.services-actions a,.analysis-actions a,.bespoke-actions a{width:100%}
  .services-hero::after,.analysis-hero::after,.bespoke-hero::after{display:none}
  .services-hero__inner,.analysis-hero__inner,.bespoke-hero__inner{padding-right:0}
  .final-hero{padding-block:4.5rem 3rem}
  .final-hero::before{height:82vw;margin-top:2.5rem}
  .final-hero::after{display:none}
  .home-section,.formations-section,.training-section,.sessions-section,.services-section,.analysis-section,.bespoke-section,.final-section{padding-block:4.75rem}
  .final-grid article:nth-child(n){background:transparent}
  .final-grid article:nth-child(2n){background:rgb(236 212 198 / 22%)}
  .site-footer{padding-top:4.5rem}
}

/* Desktop submenus open deliberately by button or keyboard, never by an accidental pointer pass. */
@media(min-width:851px){.nav-item:hover .submenu{opacity:0;visibility:hidden;transform:translateY(-6px)}.submenu-toggle[aria-expanded=true]+.submenu,.nav-item:focus-within .submenu{opacity:1;visibility:visible;transform:translateY(0)}}
@media(max-width:850px){.site-header .menu-button,.site-header .menu-button span{color:#f8f5f2}.site-header .menu-button span{background:#f8f5f2}.main-menu{background:#cf8f75}.main-menu>.nav-item>.submenu{background:#f8f5f2}.main-menu>.nav-item>.submenu a{color:#505355}}

@media(prefers-reduced-motion:reduce){.button,.button-secondary{transition:none}}

/* Fidelity layer measured from the rendered WordPress reference. */
:root{--shell:min(1080px,calc(100% - 2rem))}
.site-header{min-height:64px;background:#f0d1c1;border:0;backdrop-filter:none}.header-inner{min-height:64px;justify-content:center}.brand{display:none}.main-menu{gap:clamp(1rem,2.4vw,2.15rem)}.main-menu>.nav-item>a,.main-menu>.nav-item>.submenu-toggle,.main-menu>.academy-link{color:#505355;font-size:.9rem;font-weight:400;letter-spacing:.28em}.main-menu>.academy-link{padding:0;border:0;border-radius:0;background:none}.main-menu>.nav-item>a[aria-current=page],.main-menu>.academy-link[aria-current=page]{color:#f8f5f2}.page-home .site-header{background:#cfb250}.submenu{top:calc(100% + .65rem);border-radius:0;box-shadow:0 10px 24px rgb(207 143 117 / 12%)}
.site-footer{padding:4rem 0 0;background:#f8f5f2;color:#505355}.site-footer::before{display:none}.site-footer a{color:#505355}.footer-brand{display:flex;align-items:center;gap:1.5rem;margin-bottom:3rem}.footer-brand>img{width:170px;height:125px;filter:none;object-fit:contain}.footer-brand strong{background:linear-gradient(110deg,#cfb250,#cfb250 45%,#f6e7b6 65%,#cfb250);background-clip:text;color:transparent;font:700 clamp(2rem,4vw,3.4rem) Assistant,sans-serif;letter-spacing:.28em}.footer-brand p{margin:.5rem 0 0;color:#a35839;font-family:"Libre Baskerville",serif;font-size:1.25rem}.footer-grid{grid-template-columns:1fr 1.2fr 1.2fr 1.2fr;gap:2rem}.footer-grid>div:first-child{grid-column:auto}.footer-grid img{filter:none;margin:0}.site-footer .footer-grid h2{color:#a35839;font-family:"Libre Baskerville",serif;text-transform:none;letter-spacing:0}.footer-legal{display:flex;justify-content:space-between;margin-top:3rem;padding:1.2rem 0;border-color:#a0ada8}
@media(max-width:1100px) and (min-width:851px){.main-menu{gap:.8rem}.main-menu>.nav-item>a,.main-menu>.nav-item>.submenu-toggle,.main-menu>.academy-link{font-size:.77rem;letter-spacing:.12em}}
@media(max-width:850px){.site-header{min-height:74px}.header-inner{min-height:74px;justify-content:space-between}.brand{display:block;color:#f8f5f2;font-family:Assistant,sans-serif;font-weight:700;letter-spacing:.18em}.main-menu{top:74px;background:#f0d1c1}.main-menu>.nav-item>a,.main-menu>.nav-item>.submenu-toggle,.main-menu>.academy-link{color:#505355;letter-spacing:.12em}.footer-grid{grid-template-columns:1fr 1fr}.footer-brand strong{letter-spacing:.12em}.footer-legal{display:grid;gap:.5rem}}
@media(max-width:600px){.footer-brand{align-items:flex-start}.footer-brand>img{width:90px;height:auto}.footer-brand strong{font-size:1.5rem}.footer-brand p{font-size:.9rem}.footer-grid{grid-template-columns:1fr}}

/* Effets réellement observés dans la référence Divi : flux doré, shimmer et fade-bottom. */
.footer-brand strong,.historical-home__masthead p{background-size:240% 100%;animation:archi-gold-flow 8s ease-in-out infinite}
.has-reveal-effects .historical-reveal{opacity:0;transform:translateY(10%)}
.has-reveal-effects .historical-reveal.is-revealed{opacity:1;transform:translateY(0);transition:opacity .7s ease var(--reveal-delay,0ms),transform .7s ease var(--reveal-delay,0ms)}
@keyframes archi-gold-flow{0%,100%{background-position:0 50%}50%{background-position:100% 50%}}
@keyframes archi-shimmer{to{left:140%}}
@media(prefers-reduced-motion:reduce){.footer-brand strong,.historical-home__masthead p{animation:none}.has-reveal-effects .historical-reveal{opacity:1;transform:none}}

.page-formations .formations-hero{padding-block:5rem;background:#fff}.page-formations .formations-hero::after{display:none}.page-formations .formations-hero__grid{grid-template-columns:1fr 1fr;grid-template-areas:"visual copy";gap:4rem}.page-formations .formations-hero__copy{grid-area:copy}.page-formations .formations-hero__visual{grid-area:visual;padding:0;border:0}.page-formations .formations-hero__visual::before{display:none}.page-formations .formations-hero__visual img{aspect-ratio:1;object-position:50% 28%}.page-formations .formations-hero h1{max-width:10ch;color:#e5bca8;font-family:Assistant,sans-serif;font-size:clamp(3rem,5vw,5rem);font-weight:400;line-height:1.05}.page-formations .formations-hero__copy p{color:#6b6966;font-size:1.15rem;letter-spacing:.08em}.page-formations .formations-hero__visual figcaption{position:absolute;right:-90%;bottom:-7rem;width:190%;color:#565654;font-size:clamp(1.5rem,3vw,2.7rem);font-weight:600;text-align:center}
@media(max-width:850px){.page-formations .formations-hero__grid{grid-template-columns:1fr;grid-template-areas:"visual" "copy";gap:2rem}.page-formations .formations-hero__visual figcaption{position:static;width:auto;margin:1rem 0}.page-formations .formations-hero h1{font-size:3rem}}
.page-presentation .final-hero::after{display:none}.page-presentation .final-profile figure::before{border-radius:0}

/* Passe de finition n°1 — intro et en-têtes, strictement isolés. */
.intro-is-open{overflow:hidden}.historical-intro{position:fixed;z-index:999999;inset:0;display:block;background:#000;opacity:1;transition:opacity .8s ease}.historical-intro video{display:block;width:100%;height:100%;object-fit:cover;background:#000}.historical-intro button{position:absolute;z-index:2;top:clamp(1rem,3vw,2.5rem);right:clamp(1rem,3vw,2.5rem);padding:.7rem 1rem;border:1px solid rgb(255 255 255 / 70%);background:rgb(0 0 0 / 28%);color:#fff;font:600 .75rem/1 Assistant,sans-serif;letter-spacing:.2em;cursor:pointer;transition:background .2s ease}.historical-intro button:hover,.historical-intro button:focus-visible{background:rgb(0 0 0 / 65%)}.historical-intro.is-hidden{opacity:0;pointer-events:none;visibility:hidden;transition:opacity .8s ease,visibility 0s linear .8s}

.site-header{min-height:76px;box-shadow:0 2px 10px rgb(207 143 117 / 7%);transition:box-shadow .25s ease}.header-inner{min-height:76px;justify-content:space-between;gap:2rem}.brand{display:flex;flex:0 0 auto;align-items:center;gap:.55rem;color:#cfb250;font-family:Assistant,sans-serif;font-size:.78rem;font-weight:700;letter-spacing:.16em}.brand img{display:block;width:38px;height:38px;object-fit:contain}.main-menu{gap:clamp(.75rem,1.55vw,1.5rem)}.main-menu>.nav-item>a,.main-menu>.nav-item>.submenu-toggle,.main-menu>.academy-link{font-size:.76rem;letter-spacing:.16em;transition:color .2s ease,opacity .2s ease,transform .2s ease}.main-menu>.nav-item>a:hover{transform:translateY(-1px)}.main-menu>.academy-link{padding:.62rem .9rem;border:1px solid #cfb250;color:#505355;font-weight:600;letter-spacing:.1em}.main-menu>.academy-link:hover{background:#a0ada8;color:#f8f5f2}.submenu{transform:translateY(-10px);transition:opacity .25s ease,transform .25s ease,visibility .25s}

.page-presentation .final-hero,.page-resources .final-hero,.page-blog .final-hero,.page-contact .final-hero,.page-boutique .commerce-hero{min-height:520px;padding-block:4.5rem;background:#fff}.page-presentation .final-profile{grid-template-columns:1fr 1.05fr;gap:4rem}.page-presentation .final-profile figure::before{display:none}.page-presentation .final-profile img{width:100%;aspect-ratio:2500/1981;border-radius:0;object-fit:contain;filter:none;box-shadow:none}.page-formations .formations-hero__visual img{aspect-ratio:2500/1744;border-radius:0;object-fit:contain;filter:none}.page-prestations .services-hero{min-height:520px;padding-block:4.5rem;background:#fff}.page-prestations .services-hero::after{top:3rem;right:5%;bottom:3rem;width:min(46vw,625px);border-radius:0;background-image:url('/public/assets/media/site/header-prestations.webp');background-size:contain;background-repeat:no-repeat;box-shadow:none;filter:none}.page-resources .final-hero::before,.page-blog .final-hero::before{top:3rem;right:7%;bottom:3rem;width:min(38vw,430px);border-radius:50%;background-image:url('/public/assets/media/site/header-blog.png');background-size:contain;background-repeat:no-repeat;box-shadow:none;filter:none}.page-contact .final-hero::before{top:3rem;right:4%;bottom:3rem;width:min(48vw,610px);border-radius:0;background-image:url('/public/assets/media/site/header-contact.webp');background-size:contain;background-repeat:no-repeat;box-shadow:none;filter:none}.page-boutique .commerce-hero{position:relative;overflow:hidden;padding-right:min(43vw,610px)}.page-boutique .commerce-hero::after{position:absolute;top:3rem;right:6%;bottom:3rem;width:min(38vw,480px);border-radius:50% 50% 0 0;background:url('/public/assets/media/brand/moodboard-editorial.webp') center/cover no-repeat;content:""}.page-boutique .commerce-hero>.shell{position:relative;z-index:1}
@media(max-width:850px){.header-inner{min-height:74px}.brand img{width:132px}.page-presentation .final-profile{grid-template-columns:1fr}.page-presentation .final-profile figure{order:-1}.page-prestations .services-hero::after,.page-resources .final-hero::before,.page-blog .final-hero::before,.page-contact .final-hero::before,.page-boutique .commerce-hero::after{position:relative;top:auto;right:auto;bottom:auto;display:block;width:calc(100% - 2rem);height:62vw;max-height:480px;margin:2rem auto 0;background-position:center}.page-prestations .services-hero__inner{padding-right:0}.page-boutique .commerce-hero{padding-right:0}}
@media(max-width:520px){.historical-intro video{object-position:center}.page-presentation .final-hero,.page-resources .final-hero,.page-blog .final-hero,.page-contact .final-hero,.page-boutique .commerce-hero,.page-prestations .services-hero{min-height:auto;padding-block:3rem}.page-formations .formations-hero{padding-block:3rem}.page-prestations .services-hero::after,.page-resources .final-hero::before,.page-blog .final-hero::before,.page-contact .final-hero::before,.page-boutique .commerce-hero::after{height:78vw}}
.historical-intro{border-radius:0}.historical-intro video{opacity:0;pointer-events:none}.historical-intro video.is-playing{opacity:1}.historical-intro video::-webkit-media-controls{display:none!important}.page-formations .formations-hero__visual figcaption{position:static;width:auto;margin:1.25rem 0 0;text-align:center}

/* Passe ciblée n°2 : Academy, macaron et vignettes Blog uniquement. */
.main-menu>.academy-link{border-color:#cfb250;border-radius:13px;background:rgb(248 245 242 / 18%);color:#505355;transition:border-color .2s ease,background-color .2s ease,color .2s ease,box-shadow .2s ease}.main-menu>.academy-link:hover{border-color:#cfb250;background:#a0ada8;color:#505355}.main-menu>.academy-link:active{background:#cf8f75}.main-menu>.academy-link:focus-visible{outline:3px solid #cfb250;outline-offset:3px;box-shadow:0 0 0 3px rgb(248 245 242 / 62%)}
.page-blog .resource-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem}.page-blog .resource-grid article{padding:0;border:0;border-radius:22px;background:#fff;box-shadow:0 10px 28px rgb(68 53 47 / 8%);overflow:hidden;transition:transform .25s ease,box-shadow .25s ease}.page-blog .resource-card__link{display:flex;height:100%;flex-direction:column;color:var(--brand-ink);text-decoration:none}.page-blog .resource-card__body{display:flex;flex:1;flex-direction:column;gap:.7rem;padding:1.35rem}.page-blog .resource-card__body>strong{font-family:"Libre Baskerville",serif;font-size:1.22rem;line-height:1.28}.page-blog .resource-card__body>.text-link{margin-top:auto}.page-blog .resource-grid article:hover,.page-blog .resource-grid article.capture-hover{box-shadow:0 16px 36px rgb(68 53 47 / 14%);transform:translateY(-4px)}.page-blog .resource-card__link:focus-visible{outline:3px solid var(--focus);outline-offset:-4px}
@media(max-width:900px){.page-blog .resource-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.page-blog .resource-grid{grid-template-columns:1fr}.main-menu>.academy-link{border-radius:12px}}
@media(prefers-reduced-motion:reduce){.fixed-brand-mark,.page-blog .resource-grid article{transition:none}}

/* Macaron Qualiopi : reconstruit à l'identique du macaron flottant du site historique
   (bloc bas-gauche sans encadré, image 173px, texte doré animé, brillance au survol,
   texte légal sous l'image, apparition au scroll et fondu près du footer via site.js). */
.fixed-brand-mark{position:fixed;z-index:40;left:36px;bottom:24px;display:flex;flex-direction:column;align-items:center;gap:8px;width:173px;text-align:center;text-decoration:none;opacity:0;transform:translateY(10px);filter:blur(10px);pointer-events:none;transition:opacity .35s ease,transform .35s ease,filter .35s ease}
.fixed-brand-mark.is-visible{opacity:1;transform:translateY(0);filter:blur(0);pointer-events:auto}
.fixed-brand-mark__head{line-height:1.05}
.fixed-brand-mark__head strong{display:block;max-width:100%;overflow:hidden;white-space:nowrap;font:900 clamp(18px,2vw,24px) Assistant,sans-serif;letter-spacing:.08em;text-transform:uppercase;background:linear-gradient(110deg,#cfb250 0%,#cfb250 22%,#f6e7b6 45%,#cfb250 68%,#cfb250 100%);background-size:240% 100%;background-position:0 50%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:archi-gold-flow 8s ease-in-out infinite}
.fixed-brand-mark__legal strong{font-weight:700}
.fixed-brand-mark__head span{display:block;margin-top:1px;font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:#cfb250;opacity:.75}
.fixed-brand-mark__imgwrap{position:relative;display:block;width:100%;transition:transform .25s ease}
.fixed-brand-mark__imgwrap img{display:block;width:100%;height:auto;border-radius:14px;background:#fff;box-shadow:0 14px 34px rgb(0 0 0 / 22%);transition:transform .25s ease,box-shadow .25s ease}
.fixed-brand-mark__imgwrap::after{content:"";position:absolute;inset:0;border-radius:14px;pointer-events:none;background:linear-gradient(120deg,rgb(255 255 255 / 55%) 0%,rgb(255 255 255 / 22%) 22%,rgb(255 255 255 / 8%) 45%,rgb(255 255 255 / 0%) 62%);opacity:.18;transform:translateX(-28%);transition:opacity .35s ease,transform .55s ease}
.fixed-brand-mark:hover .fixed-brand-mark__imgwrap{transform:translateY(-6px)}
.fixed-brand-mark:hover .fixed-brand-mark__imgwrap img{transform:scale(1.06);box-shadow:0 18px 46px rgb(0 0 0 / 28%)}
.fixed-brand-mark:hover .fixed-brand-mark__imgwrap::after{opacity:.42;transform:translateX(0)}
.fixed-brand-mark__legal{max-width:200px;font-size:9px;line-height:1.25;color:#666;opacity:.75}
.fixed-brand-mark.is-near-footer{opacity:0;pointer-events:none;transform:translateY(10px);filter:blur(6px)}
/* Même effacement quand le macaron se pose sur une commande — bouton, champ, lien. Voir
   site.js : il recouvrait plus de la moitié du bouton d’envoi du formulaire de contact. */
.fixed-brand-mark.is-over-control{opacity:0;pointer-events:none;transform:translateY(10px);filter:blur(6px)}
@media(max-width:767px){.fixed-brand-mark{left:18px;bottom:14px;width:135px}}
@media(prefers-reduced-motion:reduce){.fixed-brand-mark{transition:none;filter:none}.fixed-brand-mark__head strong{animation:none}.fixed-brand-mark__imgwrap,.fixed-brand-mark__imgwrap img,.fixed-brand-mark__imgwrap::after{transition:none}}

/* Passe ciblée n°3 : navigation adaptative et en-têtes intérieurs communs. */
.historical-home__masthead{border-radius:0 0 30px 30px}
.site-header[data-theme]{transition:background-color .32s ease,color .32s ease,box-shadow .25s ease}
.site-header[data-theme=light]{background:rgb(246 240 232 / 96%)}
.site-header[data-theme=gold]{background:rgb(207 178 80 / 96%)}
.site-header[data-theme=terra]{background:rgb(166 94 73 / 97%)}
.site-header[data-theme=dark]{background:rgb(160 173 168 / 97%)}
.site-header[data-theme=light] .brand img,.site-header[data-theme=gold] .brand img{filter:none}
.site-header[data-theme=terra] .brand img,.site-header[data-theme=dark] .brand img{filter:brightness(0) invert(1)}
.site-header[data-theme=light] .brand,.site-header[data-theme=gold] .brand,.site-header[data-theme=light] .main-menu>.nav-item>a,.site-header[data-theme=light] .main-menu>.nav-item>.submenu-toggle,.site-header[data-theme=gold] .main-menu>.nav-item>a,.site-header[data-theme=gold] .main-menu>.nav-item>.submenu-toggle{color:#505355}
.site-header[data-theme=terra] .brand,.site-header[data-theme=dark] .brand,.site-header[data-theme=terra] .main-menu>.nav-item>a,.site-header[data-theme=terra] .main-menu>.nav-item>.submenu-toggle,.site-header[data-theme=dark] .main-menu>.nav-item>a,.site-header[data-theme=dark] .main-menu>.nav-item>.submenu-toggle{color:#f8f5f2}
.site-header[data-theme] .main-menu>.nav-item>a:hover,.site-header[data-theme] .main-menu>.nav-item>a[aria-current=page]{color:#f8f5f2}

/* ── « LE RÉSEAU » SE DÉTACHE, SANS CHANGER D'ÉCRITURE ─────────────────────
   Léon, le 28 août 2026 : la même police que les autres entrées, « légèrement
   en gras », en terracotta — et « quand le fond sera terracotta, il faudra du
   coup qu'il apparaisse en doré ».

   LA GRAISSE EST LE SEUL SIGNAL QUI TIENT PARTOUT. L'en-tête prend quatre fonds
   au fil du défilement, et aucune couleur ne les traverse tous. Mesuré :
   le terracotta de la charte donne 4,62 sur le fond crème, mais 2,53 sur le
   doré, 2,25 sur le gris-vert et 1,08 sur le terracotta — invisible.
   Le 600 est donc porté sur les quatre thèmes ; la couleur ne s'ajoute que là
   où elle se lit.

   Sur le fond terracotta, c'est le doré clair du nom de marque qui prend le
   relais : 3,94, contre 1,08 pour le terracotta. Sur les fonds doré et
   gris-vert, aucune teinte de la charte ne fait mieux que l'encre du menu —
   le mot y reste dans sa couleur, et seule la graisse le distingue. Mettre une
   couleur illisible pour tenir une règle serait un pas en arrière. */
/* ── LA PAGE OÙ L'ON SE TROUVE ÉTAIT INVISIBLE ─────────────────────────────
   La règle qui marque la page courante la peint en crème #f8f5f2. Elle avait
   été écrite pour les fonds foncés — terracotta, gris-vert — mais elle
   s'appliquait aussi au fond clair, qui est celui de presque toutes les pages :
   sur /formations/, l'entrée « Formations » était du crème sur du crème.
   Contraste mesuré : 1,04. Le menu n'indiquait donc jamais où l'on était.

   Sur fond clair, la page courante et le survol prennent l'encre profonde
   (12,21). L'accent, lui, garde sa famille de couleur en plus sombre (5,96) :
   il reste reconnaissable même quand on est sur sa page.

   Sur l'accueil, le fond de l'en-tête est doré en permanence — une règle de
   page, pas un thème — et aucune teinte de la charte n'y tient : le mot y
   garde la couleur du menu, et seule sa graisse le distingue. */

.site-header[data-theme=light] .main-menu>.nav-item>a:hover,.site-header[data-theme=light] .main-menu>.nav-item>a[aria-current=page]{color:#a35839}
.site-header[data-theme=gold] .main-menu>.nav-item>a:hover,.site-header[data-theme=gold] .main-menu>.nav-item>a[aria-current=page]{color:#a35839}
.site-header[data-theme] .academy-link{border-color:currentColor;background:rgb(255 255 255 / 14%);color:inherit}
.site-header[data-theme=light] .academy-link{border-color:#cfb250;background:rgb(207 178 80 / 9%);color:#505355}
.site-header[data-theme=gold] .academy-link{border-color:#505355;background:rgb(248 245 242 / 22%);color:#505355}
.site-header[data-theme=terra] .academy-link,.site-header[data-theme=dark] .academy-link{border-color:#cfb250;color:#f8f5f2}
.site-header[data-theme] .academy-link:hover,.site-header[data-theme] .academy-link.capture-hover{border-color:#cfb250;background:#a0ada8;color:#2b2d2f}
.site-header[data-theme] .academy-link:active{background:#cf8f75;color:#2b2d2f}
.site-header[data-theme] .academy-link:focus-visible{outline:3px solid #cfb250;outline-offset:3px;box-shadow:0 0 0 3px rgb(255 255 255 / 74%)}

.interior-hero{isolation:isolate;min-height:520px;padding-block:clamp(3.5rem,7vw,5.5rem);background:#fff}
.interior-hero h1{max-width:12ch}
.commerce-hero--product{position:relative;overflow:hidden;padding-block:clamp(4rem,8vw,7.5rem);background:linear-gradient(125deg,#fbf8f3,#f0e5dc 65%,#e5ddd0)}
.commerce-hero--product::after{position:absolute;right:-12rem;bottom:-18rem;width:36rem;height:36rem;border:1px solid rgb(195 165 87 / 38%);border-radius:50%;content:""}
.commerce-hero__grid{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1.08fr) minmax(280px,.92fr);align-items:center;gap:clamp(3rem,8vw,6rem)}
.commerce-hero__grid--no-visual{grid-template-columns:1fr;max-width:760px}
.commerce-hero--product h1{max-width:20ch;font-size:clamp(2.1rem,3.4vw,3.3rem);line-height:1.15}
.commerce-hero__grid>div:first-child>p:not(.eyebrow){max-width:56ch;color:var(--terra-dark);font-size:var(--step-1);font-weight:600}
.commerce-hero__visual{position:relative;margin:0;padding:.75rem;border:1px solid rgb(168 95 73 / 48%)}
.commerce-hero__visual::before{position:absolute;inset:-1rem 1.3rem 1.3rem -1rem;z-index:-1;border:1px solid var(--gold);content:""}
.commerce-hero__visual img{display:block;width:100%;aspect-ratio:1.43;object-fit:cover}
@media(max-width:850px){.commerce-hero__grid{grid-template-columns:1fr;grid-template-areas:"visual" "copy"}.commerce-hero__visual{grid-area:visual;width:min(92%,620px);margin-inline:auto}.commerce-hero__grid>div:first-child{grid-area:copy}}
.interior-hero :is(.formations-hero__visual,.neuro-hero__visual,.housing-hero__visual,.color-hero__visual) img{border-radius:0;filter:saturate(.84)}
.interior-hero :is(.formations-hero__visual,.neuro-hero__visual,.housing-hero__visual,.color-hero__visual)::before{border-radius:0}
.interior-hero:is(.services-hero,.analysis-hero,.bespoke-hero)::after,.interior-hero.final-hero::before{border-radius:0}
.page-sessions-formation .sessions-hero{position:relative;overflow:hidden}
.page-sessions-formation .sessions-hero::after{position:absolute;top:3rem;right:5%;bottom:3rem;width:min(42vw,560px);border-radius:0;background:url('/public/assets/media/site/formation-neuro-480.webp') center/contain no-repeat;content:"";filter:saturate(.82)}
.page-sessions-formation .sessions-hero__inner{position:relative;z-index:1;padding-right:min(47vw,620px)}
.page-formations .interior-hero,.page-prestations .interior-hero,.page-presentation .interior-hero,.page-blog .interior-hero{background:#fff}
.page-presentation .final-profile img{aspect-ratio:1;object-fit:contain;object-position:center}
.page-blog .final-hero::before{border:0;border-radius:0;background-image:url('/public/assets/media/brand/moodboard-editorial.webp');background-size:cover}
.page-faq .final-hero::before{border-radius:0;background-image:url('/public/assets/media/brand/neuro-architecture-editorial.webp');background-position:center;background-size:cover;box-shadow:none;filter:saturate(.78)}

.page-blog .resource-grid article{min-height:280px}
.page-blog .resource-card__body{padding:clamp(1.25rem,2vw,1.5rem)}
.page-blog .resource-card__body>strong{font-size:clamp(1.18rem,1.6vw,1.38rem)}

.page-formations .formations-grid{display:grid;grid-template-columns:1fr;gap:clamp(2rem,5vw,4rem)}
.page-formations .formation-card{display:grid;grid-template-columns:minmax(240px,.72fr) minmax(0,1.28fr);grid-template-rows:auto auto auto 1fr auto;column-gap:clamp(2rem,6vw,5rem);padding:clamp(1.5rem,4vw,3.5rem);border:1px solid var(--brand-line);border-radius:34px 8px 34px 8px;background:var(--brand-paper)}
.page-formations .formation-card__image{grid-row:1/-1;width:100%;height:100%;min-height:430px;object-fit:cover;border-radius:28px 6px 28px 6px}
.page-formations .formation-card:nth-child(even) .formation-card__image{grid-column:1}.page-formations .formation-card:nth-child(even)>:not(.formation-card__image):not(.formation-card__number){grid-column:2}
.page-formations .formation-card:nth-child(2),.page-formations .formation-card:nth-child(3),.page-formations .formation-card:nth-child(4){background:#fff}

.page-prestations .services-grid{gap:clamp(1.5rem,4vw,3rem)}
.page-prestations .service-card{border:1px solid var(--brand-line);border-radius:34px 8px 34px 8px;background:var(--brand-paper)}
.page-prestations .service-card:nth-child(even){border-radius:8px 34px 8px 34px;background:var(--brand-cream);transform:translateY(2rem)}

.page-presentation .final-section--paper .final-grid--three{gap:clamp(1rem,3vw,2rem);border:0}
.page-presentation .final-section--paper .final-grid--three article{border:1px solid var(--brand-line);border-radius:32px 8px 32px 8px;background:#fff;box-shadow:0 12px 30px rgb(68 53 47 / 7%)}
.page-presentation .final-section--paper .final-grid--three article:nth-child(2){border-radius:8px 32px 8px 32px;background:var(--brand-cream);transform:translateY(1.5rem)}
.site-footer .footer-grid a{line-height:1.45}

@media(max-width:850px){
  .site-header[data-theme=light] .menu-button span,.site-header[data-theme=gold] .menu-button span{background:#505355}
  .site-header[data-theme=terra] .menu-button span,.site-header[data-theme=dark] .menu-button span{background:#f8f5f2}
  .site-header[data-theme=light] .main-menu{background:#f8f5f2}.site-header[data-theme=gold] .main-menu{background:#cfb250}.site-header[data-theme=terra] .main-menu{background:#cf8f75}.site-header[data-theme=dark] .main-menu{background:#a0ada8}
  .page-formations .formation-card{grid-template-columns:1fr}.page-formations .formation-card__image,.page-formations .formation-card:nth-child(even) .formation-card__image,.page-formations .formation-card:nth-child(even)>:not(.formation-card__image){grid-column:1}.page-formations .formation-card__image{grid-row:auto;min-height:0;aspect-ratio:4/3;margin-bottom:1.5rem}
  .page-prestations .service-card:nth-child(even),.page-presentation .final-section--paper .final-grid--three article:nth-child(2){transform:none}
  .page-sessions-formation .sessions-hero::after{position:relative;top:auto;right:auto;bottom:auto;display:block;width:var(--shell);height:62vw;max-height:480px;margin:2rem auto 0}.page-sessions-formation .sessions-hero__inner{padding-right:0}
}
@media(max-width:600px){.interior-hero{min-height:auto;padding-block:3rem}.page-blog .resource-grid article{min-height:0}.page-formations .formation-card{padding:1.25rem;border-radius:24px 6px 24px 6px}}
@media(prefers-reduced-motion:reduce){.site-header[data-theme]{transition:none}}

/* Passe ciblée n°4 : palette historique et pages éditoriales explicitement concernées. */
:root{--historic-ink:#505355;--historic-terra:#cf8f75;--historic-sage:#a0ada8;--historic-gold:#cfb250;--historic-cream:#f8f5f2;--historic-peach:#f0d1c1;--button-hover-gradient:linear-gradient(90deg,#8b978f,#c3cec8);--button-base-gradient:linear-gradient(90deg,#cf8f75,#f0d1c1)}
.site-header[data-theme=light]{background:rgb(248 245 242 / 97%)}
.site-header[data-theme=gold]{background:rgb(207 178 80 / 97%)}
.site-header[data-theme=terra]{background:rgb(207 143 117 / 97%)}
.site-header[data-theme=dark]{background:rgb(80 83 85 / 97%)}
.site-header[data-theme=light] .brand,.site-header[data-theme=gold] .brand,.site-header[data-theme=light] .main-menu>.nav-item>a,.site-header[data-theme=light] .main-menu>.nav-item>.submenu-toggle,.site-header[data-theme=gold] .main-menu>.nav-item>a,.site-header[data-theme=gold] .main-menu>.nav-item>.submenu-toggle{color:var(--historic-ink)}
.site-header[data-theme=light] .academy-link{border-color:var(--historic-gold);background:rgb(207 178 80 / 10%);color:var(--historic-ink)}
.site-header[data-theme=gold] .academy-link{border-color:var(--historic-ink);color:var(--historic-ink)}
.site-header[data-theme=terra] .academy-link,.site-header[data-theme=dark] .academy-link{border-color:var(--historic-cream);color:var(--historic-cream)}
.site-header[data-theme] .academy-link:hover,.site-header[data-theme] .academy-link.capture-hover{border-color:var(--historic-sage);background:var(--historic-sage);color:#2b2d2f}
.site-header[data-theme] .academy-link:active{background:var(--historic-terra);color:#2b2d2f}
.site-header[data-theme] .academy-link:focus-visible{outline-color:var(--historic-gold)}

.page-presentation .final-profile img{width:min(430px,100%);margin-inline:auto;aspect-ratio:1;border-radius:50%;object-fit:cover;object-position:50% 27%}
.page-presentation .final-profile figure{display:grid;place-items:center}
.page-presentation .final-hero :is(.button,.button-secondary){border:0;background:var(--button-base-gradient);color:#2b2d2f;box-shadow:0 15px 25px rgb(80 83 85 / 12%)}.page-presentation .final-hero :is(.button,.button-secondary):hover,.page-presentation .final-hero :is(.button,.button-secondary):focus-visible{border-color:transparent;background:var(--button-hover-gradient);color:#2b2d2f}

:is(.page-formations,.page-prestations,.page-blog,.page-boutique,.page-contact) .interior-hero{min-height:540px;padding-block:clamp(3.5rem,7vw,5.5rem);background:#fff}
:is(.page-formations,.page-prestations,.page-blog,.page-boutique,.page-contact) .interior-hero h1{color:var(--historic-ink)}
.page-blog .interior-hero::before{border-radius:32px 12px 32px 12px;background-image:url('/public/assets/media/site/header-blog.png');background-size:contain;background-repeat:no-repeat}
:is(.page-formations,.page-prestations,.page-blog,.page-boutique,.page-contact) .interior-hero :is(.button,.button-secondary),:is(.page-formations,.page-prestations,.page-blog,.page-boutique,.page-contact) main :is(.button,.button-secondary){border:0;background:var(--button-base-gradient);color:#2b2d2f;box-shadow:0 15px 25px rgb(80 83 85 / 12%)}
:is(.page-formations,.page-prestations,.page-blog,.page-boutique,.page-contact) main :is(.button,.button-secondary):hover,:is(.page-formations,.page-prestations,.page-blog,.page-boutique,.page-contact) main :is(.button,.button-secondary):focus-visible{border-color:transparent;background:var(--button-hover-gradient);color:#2b2d2f}
.page-formations .formations-hero h1{color:var(--terra-text)}

.page-formations .formations-catalogue{background:var(--historic-cream)}
.page-formations .formations-grid{gap:clamp(1.5rem,4vw,3rem)}
.page-formations .formation-card{grid-template-columns:minmax(0,58%) minmax(300px,42%);column-gap:0;height:573px;margin:0;padding:.55rem;overflow:hidden;border:0;border-radius:38px 12px 38px 12px;background:#fff;box-shadow:0 16px 38px rgb(80 83 85 / 8%);isolation:isolate;transition:transform .25s ease,box-shadow .25s ease}
.page-formations .formation-card:nth-child(even){grid-template-columns:minmax(300px,42%) minmax(0,58%)}
.page-formations .formation-card:hover{box-shadow:0 20px 46px rgb(80 83 85 / 12%);transform:translateY(-3px)}
.page-formations .formation-card:nth-child(2),.page-formations .formation-card:nth-child(3),.page-formations .formation-card:nth-child(4){background:#fff}
.page-formations .formation-card__image{grid-column:2;grid-row:1;min-height:0;max-height:none;width:100%;height:100%;border-radius:26px 8px 26px 8px;object-fit:cover;filter:none}
.page-formations .formation-card__content{grid-column:1;grid-row:1;position:relative;z-index:1;display:flex;min-width:0;flex-direction:column;padding:2rem 2.25rem 1.75rem}
.page-formations .formation-card__actions{display:flex;align-items:center;width:100%;margin-top:auto;padding-top:1.25rem;border-top:1px solid var(--line)}
.page-formations .formation-card__actions>.button{align-self:flex-start}
.page-formations .formation-card__actions--split{gap:1rem}
.page-formations .formation-card__actions--split>.button,.page-formations .formation-card__actions--split>.button-secondary{flex:1 1 0;justify-content:center;align-self:stretch}

/* LES DEUX BOUTONS D'UNE VIGNETTE DE PRESTATION FONT LA MÊME LARGEUR.
   « Décrire ce besoin » et « Découvrir la Conception » n'ont pas la même
   longueur, et deux boutons de tailles différentes côte à côte se lisent comme
   deux niveaux d'importance. Ils partagent la ligne à parts égales : la
   hiérarchie se dit par la couleur — terracotta pour le geste principal, gris
   pour le second — jamais par la taille. C'est la règle déjà en vigueur sur
   les vignettes de formation, juste au-dessus.
   Le gris est celui du contact : le même sur tout le site, une seule fois. */
:is(.services-actions,.sessions-actions){display:flex;gap:.85rem;flex-wrap:wrap;align-items:stretch}
/* LE SECOND GESTE EST GRIS — PARTOUT, ET ÉCRIT UNE SEULE FOIS.
   Il était un lien terracotta souligné avec une flèche, posé à côté d'un bouton
   plein : il se lisait comme une note de bas de page alors que c'est souvent le
   chemin que les gens prennent — on veut voir avant d'écrire. Il devient un
   bouton, de même taille que son voisin ; la hiérarchie se dit par la couleur,
   jamais par la taille.
   Le gris est celui qui existait déjà sur la page contact : un seul gris sur le
   site, comme il n'y a qu'un seul rouge. La règle vaut pour les trois familles
   de barres d'action, donc pour toutes les vignettes qui les utilisent. */
:is(.services-actions,.sessions-actions,.formation-card__actions)>.button-secondary{border-color:#505355;background:#505355;color:#f8f5f2}
:is(.services-actions,.sessions-actions,.formation-card__actions)>.button-secondary:is(:hover,:focus-visible){border-color:#a0ada8;background:#505355;color:#f8f5f2}
/* Deux gestes côte à côte partagent la ligne à parts égales, quel que soit le
   texte : c'est ce qui rend le gabarit des vignettes identique d'une page à
   l'autre. Sur téléphone ils passent l'un sous l'autre, pleine largeur. */
:is(.services-actions,.sessions-actions)>:is(.button,.button-secondary){flex:1 1 0;min-width:11rem;justify-content:center;text-align:center;align-self:stretch}
/* LE BOUTON D'UNE VIGNETTE FAIT LA LARGEUR DE SA VIGNETTE.
   Dans une grille, les vignettes ont toutes la même largeur mais leurs boutons
   prenaient celle de leur texte : 185, 192, 203 px côte à côte, dans des cadres
   identiques. Trois tailles pour un même geste, ce qui se lit comme trois
   niveaux d'importance. Ils tombent maintenant tous au même gabarit, quel que
   soit le libellé — c'est ce qui rend la grille régulière.
   On ne vise que le bouton posé DIRECTEMENT dans la vignette : les barres
   d'action de fin de section gardent leur largeur naturelle, elles ne sont pas
   des vignettes. */
article>:is(.button,.button-secondary){width:100%;justify-content:center;text-align:center}

.page-formations .formation-card h3{color:var(--historic-ink);font-size:clamp(1.7rem,2.4vw,2.3rem)}
.page-formations .formation-card__content>p{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.page-formations .formation-card dl div{padding:.6rem 0}
.page-formations .formation-card dd{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.page-formations .formation-card__scope,.page-formations .formation-card>.text-link{color:var(--terra-text)}
.page-formations .formation-card dl{margin:1.25rem 0 0;border-top:1px solid var(--line)}
.page-formations .formation-card dl div{padding:.9rem 0;border-bottom:1px solid var(--line)}
.page-formations .formation-card dt{font-size:.9rem}
.page-formations .formation-card dd{font-size:1rem;line-height:1.5;min-height:3rem}

.page-prestations .services-catalogue{background:var(--historic-cream)}
.page-prestations .services-grid{grid-template-columns:1fr;gap:clamp(1.5rem,4vw,3rem);border:0}
.page-prestations .service-card{position:relative;display:grid;grid-template-columns:minmax(0,1.28fr) minmax(230px,.72fr);min-height:460px;column-gap:clamp(2rem,6vw,5rem);padding:clamp(1.5rem,3.5vw,2.75rem);border:0;border-radius:38px 12px 38px 12px;background:#fff;box-shadow:0 16px 38px rgb(80 83 85 / 8%);overflow:hidden;transform:none;transition:transform .25s ease,box-shadow .25s ease}
.page-prestations .service-card:hover{box-shadow:0 20px 46px rgb(80 83 85 / 12%);transform:translateY(-3px)}
.page-prestations .service-card:nth-child(even){border-radius:38px 12px 38px 12px;background:#fff;transform:none}
.page-prestations .service-card:is(#analyse,#a-la-carte)::before{display:none}
.page-prestations .service-card::after{grid-column:2;grid-row:1/-1;width:100%;height:100%;min-height:0;border-radius:26px 8px 26px 8px;background-position:center;background-size:cover;content:""}
.page-prestations .service-card#analyse::after{background-image:url('/public/assets/media/brand/analysis-editorial.webp')}
.page-prestations .service-card#a-la-carte::after{background-image:url('/public/assets/media/brand/bespoke-editorial.webp')}
.page-prestations .service-card#conception::after{background-image:url('/public/assets/media/brand/conception-editorial.webp')}
.page-prestations .service-card#conferences::after{background-image:url('/public/assets/media/brand/services-editorial.webp')}
.page-prestations .service-card>:not(:after){grid-column:1}
.page-prestations .service-card h3{color:var(--historic-ink);font-size:clamp(1.6rem,2.3vw,2.2rem)}
.page-prestations .service-card__level,.page-prestations .service-card .text-link{color:var(--terra-text)}

.page-faq .faq-sections{gap:clamp(2rem,5vw,4rem)}
.page-faq .faq-sections>section{padding:clamp(1.4rem,4vw,3rem);border-radius:36px 12px 36px 12px;background:#fff;box-shadow:0 12px 32px rgb(80 83 85 / 7%)}
.page-faq .faq-sections details{border-color:rgb(80 83 85 / 18%)}
.page-faq .faq-sections summary::after{color:var(--terra-text)}
.page-faq main :is(.button,.button-secondary){border:0;background:var(--button-base-gradient);color:#2b2d2f;box-shadow:0 15px 25px rgb(80 83 85 / 12%)}.page-faq main :is(.button,.button-secondary):hover,.page-faq main :is(.button,.button-secondary):focus-visible{border-color:transparent;background:var(--button-hover-gradient);color:#2b2d2f}

.page-contact .breadcrumb{display:none}
.page-contact .contact-section{background:var(--historic-cream)}
.page-contact .contact-layout{gap:clamp(2rem,6vw,5rem)}
.page-contact .contact-layout>aside,.page-contact .contact-card{padding:clamp(1.4rem,4vw,3rem);border:0;border-radius:36px 12px 36px 12px;background:#fff;box-shadow:0 14px 36px rgb(80 83 85 / 8%)}
.page-contact .contact-layout::before{display:none}
.page-contact .contact-form{gap:1.2rem}
.page-contact :is(input,select,textarea){border:1px solid rgb(80 83 85 / 22%);border-radius:14px;background:#faf9f7}
.page-contact :is(input,select,textarea):focus{border-color:var(--historic-terra);outline:3px solid rgb(207 143 117 / 24%)}
.page-contact .contact-help{display:grid;gap:1rem;justify-items:start;margin-top:2rem}.page-contact .contact-help .button-secondary{background:transparent;color:var(--terra-text)}.page-contact .contact-help .button-secondary:hover,.page-contact .contact-help .button-secondary:focus-visible{background:var(--button-hover-gradient);color:#2b2d2f}

.site-footer{background:#f1eeea;color:var(--historic-ink)}
.site-footer .footer-layout{display:grid;grid-template-columns:minmax(240px,.75fr) minmax(0,2.25fr);gap:clamp(3rem,7vw,7rem);align-items:start}
.site-footer .footer-identity{display:grid;justify-items:start}.site-footer .footer-brand{width:100%;margin:0 0 1.5rem}.site-footer .footer-brand>img{width:78px;height:62px}.site-footer .footer-brand strong{font-size:clamp(1.5rem,2.6vw,2.4rem)}.site-footer .footer-brand p{font-size:1rem}
.site-footer .footer-portrait{width:132px;height:132px;margin:0 0 1.25rem;border-radius:50%;object-fit:cover;object-position:50% 27%}
.site-footer .footer-identity>p{max-width:34ch;color:#666;font-size:.93rem}
.site-footer .footer-certification{width:150px;height:auto;margin-top:.5rem;filter:none}
.site-footer .footer-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1.5rem,4vw,3rem)}
.site-footer .footer-links h2{min-height:3.2em;color:var(--terra-text);font-family:"Libre Baskerville",serif;font-size:1.05rem;line-height:1.4;text-transform:none}
.site-footer .footer-links a{display:block;margin:.55rem 0;color:#666;font-size:.9rem;text-decoration:none}.site-footer .footer-links a:hover{color:var(--terra-text)}
.site-footer .footer-legal{border-color:rgb(80 83 85 / 18%)}

@media(max-width:900px){.site-footer .footer-layout{grid-template-columns:1fr}.site-footer .footer-identity{grid-template-columns:auto 1fr;column-gap:1.5rem}.site-footer .footer-brand{grid-column:1/-1}.site-footer .footer-identity>p{align-self:center}.site-footer .footer-certification{grid-column:1/-1}.site-footer .footer-links{grid-template-columns:repeat(2,1fr)}.page-prestations .service-card{grid-template-columns:1fr}.page-prestations .service-card::after{grid-column:1;grid-row:auto;min-height:300px;margin-top:1.5rem}}
@media(max-width:760px){.page-formations .formation-card,.page-formations .formation-card:nth-child(even){grid-template-columns:1fr;grid-template-rows:auto auto;height:auto;min-height:0;overflow:visible}.page-formations .formation-card__image,.page-formations .formation-card:nth-child(even) .formation-card__image,.page-formations .formation-card>:not(.formation-card__image),.page-formations .formation-card:nth-child(even)>:not(.formation-card__image):not(.formation-card__number){grid-column:1}.page-formations .formation-card__image,.page-formations .formation-card__content{grid-row:auto}.page-formations .formation-card__image{aspect-ratio:4/3;margin-bottom:1.5rem}.page-formations .formation-card__number{top:1.5rem}.page-formations .formation-card__content>p,.page-formations .formation-card dd{-webkit-line-clamp:unset;overflow:visible}.page-contact .contact-layout{grid-template-columns:1fr}.site-footer .footer-links{grid-template-columns:1fr}.site-footer .footer-links h2{min-height:0;margin-top:1.4rem}}
@media(max-width:520px){.page-presentation .final-profile img{width:min(330px,88vw)}.page-formations .formation-card,.page-prestations .service-card,.page-faq .faq-sections>section,.page-contact .contact-layout>aside,.page-contact .contact-card{border-radius:26px 9px 26px 9px}.site-footer .footer-identity{grid-template-columns:1fr}.site-footer .footer-portrait{width:112px;height:112px}}
@media(prefers-reduced-motion:reduce){.page-formations .formation-card{transition:none}}

/* Passe ciblée n°5 : menu historique, heroes calés sur Présentation et footer compact. */
.site-header{background:rgb(248 245 242 / 97%);box-shadow:0 2px 10px rgb(207 143 117 / 12%)}
.site-header .brand{color:var(--historic-ink)}
.site-header[data-theme=light]{background:rgb(248 245 242 / 97%)}
.site-header[data-theme=gold]{background:rgb(207 178 80 / 97%)}
.site-header[data-theme=terra]{background:rgb(207 143 117 / 97%)}
.site-header[data-theme=dark]{background:rgb(160 173 168 / 97%)}
.site-header[data-theme] .brand img{filter:none}
.site-header[data-theme=light] :is(.brand,.main-menu>.nav-item>a,.main-menu>.nav-item>.submenu-toggle),
.site-header[data-theme=gold] :is(.brand,.main-menu>.nav-item>a,.main-menu>.nav-item>.submenu-toggle){color:var(--historic-ink)}
.site-header[data-theme=terra] :is(.brand,.main-menu>.nav-item>a,.main-menu>.nav-item>.submenu-toggle),
.site-header[data-theme=dark] :is(.brand,.main-menu>.nav-item>a,.main-menu>.nav-item>.submenu-toggle){color:var(--historic-cream)}
.site-header[data-theme=light] .main-menu>.nav-item>a:is(:hover,[aria-current=page]),
.site-header[data-theme=gold] .main-menu>.nav-item>a:is(:hover,[aria-current=page]),
.site-header[data-theme=dark] .main-menu>.nav-item>a:is(:hover,[aria-current=page]){color:var(--terra-text)}
.site-header[data-theme=terra] .main-menu>.nav-item>a:is(:hover,[aria-current=page]){color:var(--historic-cream)}
.site-header .main-menu>.nav-item>.submenu{border-color:rgb(207 178 80 / 45%);background:var(--historic-cream);box-shadow:0 10px 24px rgb(207 143 117 / 16%)}
.site-header .submenu a{color:var(--historic-ink)}
.site-header .submenu a:is(:hover,:focus-visible){background:var(--historic-peach);color:var(--historic-ink)}
.site-header[data-theme] .academy-link{border-color:var(--historic-gold);background:var(--historic-cream);color:var(--historic-ink)}
.site-header[data-theme=terra] .academy-link{border-color:var(--historic-cream);background:var(--historic-peach);color:var(--historic-ink)}
.site-header[data-theme] .academy-link:is(:hover,.capture-hover){border-color:var(--historic-sage);background:var(--historic-sage);color:var(--historic-ink)}
.site-header[data-theme] .academy-link:active{border-color:var(--historic-terra);background:var(--historic-terra);color:var(--historic-cream)}
.site-header[data-theme] .academy-link:focus-visible{outline-color:var(--historic-gold);box-shadow:0 0 0 3px rgb(248 245 242 / 78%)}
.main-menu>.nav-item>a,.main-menu>.nav-item>.submenu-toggle{font-size:.82rem;letter-spacing:.13em}
.main-menu>.academy-link{font-size:1rem}

.editorial-hero{min-height:520px;padding-block:4.5rem;background:#fff}
.page-formations .editorial-hero::before,.page-formations .editorial-hero::after,.page-prestations .editorial-hero::before,.page-prestations .editorial-hero::after,.page-blog .editorial-hero::before,.page-blog .editorial-hero::after,.page-boutique .editorial-hero::before,.page-boutique .editorial-hero::after,.page-contact .editorial-hero::before,.page-contact .editorial-hero::after{display:none}
.editorial-hero>.shell{padding-right:0}
.editorial-hero .final-profile{grid-template-columns:1fr 1.05fr;gap:4rem}
.editorial-hero .final-profile figure{display:grid;place-items:center}
.editorial-hero .final-profile figure::before{display:none}
.editorial-hero .final-profile img{display:block;width:min(430px,100%);height:auto;margin-inline:auto;aspect-ratio:1;border-radius:14px;object-fit:contain;object-position:center;background:#f8f5f2;box-shadow:none;filter:none}
.editorial-hero h1{max-width:11ch}

.site-footer{padding-top:0;background:var(--historic-cream);color:var(--historic-ink)}
.site-footer .footer-compact{display:grid;grid-template-columns:minmax(210px,.72fr) minmax(0,2.28fr);gap:clamp(2rem,5vw,5rem);align-items:start;padding-block:clamp(2rem,4vw,3.25rem)}
.site-footer .footer-identity{display:block}
.site-footer .footer-signature{display:flex;align-items:center;gap:.8rem;margin-bottom:.7rem}
.site-footer .footer-logo{width:52px;height:42px;object-fit:contain}
.site-footer .footer-portrait{width:72px;height:72px;margin:0;border-radius:50%;object-fit:cover;object-position:50% 27%}
.site-footer .footer-identity>strong{display:block;font-size:1rem;letter-spacing:.14em}
.site-footer .footer-identity>p{max-width:31ch;margin:.35rem 0 .75rem;color:var(--historic-ink);font-size:.82rem;line-height:1.45}
.site-footer .footer-certification{width:92px;height:auto;margin:0;filter:none}
.site-footer /* CINQ COLONNES ÉGALES, une par groupe. Il y en avait quatre pour cinq blocs :
   « Accès » retombait seul sur une deuxième rangée avec trois cases vides à sa
   droite. Et les largeurs suivaient le contenu — 195, 195, 136, 119 px — donc
   « Le réseau » et « Ressources » se retrouvaient comprimées sans raison.
   Léon, le 29 août 2026. */
.footer-links{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:clamp(.9rem,2vw,1.8rem)}
.site-footer .footer-links h2{min-height:0;margin:0 0 .65rem;color:var(--terra-text);font-family:"Assistant",sans-serif;font-size:.82rem;font-weight:700;letter-spacing:.1em;line-height:1.3;text-transform:uppercase}
.site-footer .footer-links a{display:block;margin:.28rem 0;color:var(--historic-ink);font-size:.78rem;line-height:1.35;text-decoration:none}
.site-footer .footer-links a:is(:hover,:focus-visible){color:var(--terra-text)}
.site-footer .footer-legal{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:0;padding-block:.8rem;border-color:rgb(207 178 80 / 40%);color:var(--historic-ink);font-size:.72rem}
.site-footer .footer-legal>span:last-child{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.35rem 1rem}
.site-footer .footer-legal a{color:var(--historic-ink);text-decoration:none}

@media(max-width:850px){
  .site-header[data-theme=light] .menu-button span,.site-header[data-theme=gold] .menu-button span,.site-header[data-theme=dark] .menu-button span{background:var(--historic-ink)}
  .site-header[data-theme=terra] .menu-button span{background:var(--historic-cream)}
  .site-header[data-theme=light] .main-menu{background:var(--historic-cream)}.site-header[data-theme=gold] .main-menu{background:var(--historic-gold)}.site-header[data-theme=terra] .main-menu{background:var(--historic-terra)}.site-header[data-theme=dark] .main-menu{background:var(--historic-sage)}
  .editorial-hero .final-profile{grid-template-columns:1fr}.editorial-hero .final-profile figure{order:-1}
  .site-footer .footer-compact{grid-template-columns:1fr;gap:1.8rem}.site-footer .footer-identity{display:grid;grid-template-columns:auto 1fr auto;column-gap:1rem;align-items:center}.site-footer .footer-signature{margin:0}.site-footer .footer-identity>strong,.site-footer .footer-identity>p{grid-column:2}.site-footer .footer-certification{grid-column:3;grid-row:1/3}.site-footer .footer-links{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:1.4rem}
}
@media(max-width:520px){
  .editorial-hero{min-height:auto;padding-block:3rem}.editorial-hero .final-profile img{width:min(330px,88vw)}
  .site-footer .footer-compact{padding-block:1.8rem}.site-footer .footer-identity{grid-template-columns:1fr auto}.site-footer .footer-signature{grid-column:1}.site-footer .footer-logo{width:44px;height:36px}.site-footer .footer-portrait{width:56px;height:56px}.site-footer .footer-identity>strong,.site-footer .footer-identity>p{grid-column:1/-1}.site-footer .footer-certification{grid-column:2;grid-row:1;width:78px}.site-footer .footer-links{gap:1.2rem}.site-footer .footer-links h2{margin-bottom:.45rem}.site-footer .footer-links a{margin:.22rem 0;font-size:.75rem}.site-footer .footer-legal{display:grid}.site-footer .footer-legal>span:last-child{justify-content:flex-start;gap:.3rem .8rem}
}

/* Finalisation qualité : palette historique et contrastes WCAG mesurables. */
:root{--brand-ink:#505355;--brand-terra:#cf8f75;--brand-terra-deep:#505355}
:is(a,button,summary,input,textarea,select):focus-visible{outline:3px solid #505355;outline-offset:4px;box-shadow:0 0 0 2px #f8f5f2}
.button,.historical-pill{background:linear-gradient(90deg,#cf8f75,#f0d1c1);color:#2b2d2f;text-shadow:none;box-shadow:0 15px 25px rgb(80 83 85 / 12%);transition:transform .2s ease,box-shadow .2s ease}
.button:is(:hover,:focus-visible),.historical-pill:is(:hover,:focus-visible){background:var(--button-hover-gradient);color:#2b2d2f;transform:translateY(-2px);box-shadow:0 20px 34px rgb(80 83 85 / 16%)}
.button-secondary{border-color:#505355;color:#505355}
.button-secondary:is(:hover,:focus-visible){background:var(--button-hover-gradient);color:#2b2d2f}
.site-header[data-theme=terra] :is(.brand,.main-menu>.nav-item>a,.main-menu>.nav-item>.submenu-toggle){color:#f8f5f2}
.site-header[data-theme=terra] .main-menu>.nav-item>a:is(:hover,[aria-current=page]){color:#f8f5f2;text-decoration:underline;text-decoration-thickness:2px}
.site-header[data-theme] .academy-link:active{border-color:#505355;background:#cf8f75;color:#505355}
.eyebrow,p.eyebrow{color:#505355}
.neuro-quality,.housing-quality,.training-limits,.services-guide,.services-limits,.final-section--dark{background:#a0ada8;color:#2b2d2f}
.neuro-quality :is(h2,h3,p,.eyebrow),.housing-quality :is(h2,h3,p,.eyebrow),.training-limits :is(h2,h3,p,.eyebrow),.services-guide :is(h2,h3,p,.eyebrow),.services-limits :is(h2,h3,p,.eyebrow),.final-section--dark :is(h2,h3,p,.eyebrow){color:#2b2d2f}
.final-hero h1,.bespoke-hero h1,.editorial-hero h1,.analysis-hero h1,.commerce-hero h1,.formations-hero h1,.neuro-hero h1,.services-hero h1,.housing-hero h1,.color-hero h1,.sessions-hero h1{overflow-wrap:normal;word-break:normal;-webkit-hyphens:none;hyphens:none}
.site-footer .footer-links a{display:flex;align-items:center;min-height:24px;margin:.15rem 0;font-size:.82rem;line-height:1.45}
.historical-contact{display:flex;flex-wrap:wrap;justify-content:center;gap:1rem}
.historical-pill--secondary{border:1px solid #505355;background:#f8f5f2;color:#505355}
@media(max-width:850px){.site-header[data-theme=terra] .menu-button span{background:#505355}.site-header[data-theme] .menu-button b{color:#2b2d2f}.main-menu>.nav-item>a,.main-menu>.nav-item>.submenu-toggle{color:#505355!important}}
@media(prefers-reduced-motion:reduce){.historical-intro{display:none}.historical-intro video{display:none}}
.historical-intro[hidden]{display:none!important}
.footer-newsletter{display:grid;grid-template-columns:minmax(220px,.7fr) minmax(0,1.3fr);gap:clamp(2rem,6vw,6rem);padding-block:2rem;border-top:1px solid rgb(207 178 80 / 40%)}
.footer-newsletter h2{margin:.25rem 0 .6rem;font-size:clamp(1.4rem,2.5vw,2rem)}.footer-newsletter form{display:grid;gap:.8rem}.footer-newsletter fieldset{display:flex;flex-wrap:wrap;gap:.45rem 1rem;border:0;padding:0}.footer-newsletter legend{width:100%;font-weight:700}.footer-newsletter label{color:#505355;font-size:.86rem}.footer-newsletter>form>label:first-of-type{display:grid;gap:.3rem}.footer-newsletter input[type=email]{min-height:44px;padding:.65rem;border:1px solid #505355;border-radius:8px;background:#fff}.newsletter-honeypot{position:absolute!important;left:-10000px!important}.footer-newsletter .button{justify-self:start}
/* Anthracite et non blanc : sur le dégradé terracotta, le blanc tombait à 1,44 de contraste. */
body[class] .historical-pill{color:#2b2d2f}
@media(max-width:760px){.footer-newsletter{grid-template-columns:1fr}.footer-newsletter fieldset{display:grid}.footer-newsletter .button{width:100%}}
@media(max-width:520px){.editorial-hero h1{max-width:none;font-size:clamp(2.25rem,11vw,2.8rem);line-height:1.12}}
.newsletter-popup{width:min(560px,calc(100% - 2rem));padding:clamp(1.5rem,5vw,2.5rem);border:1px solid #cfb250;border-radius:24px;background:#f8f5f2;color:#505355;box-shadow:0 24px 80px rgb(80 83 85 / 22%)}.newsletter-popup::backdrop{background:rgb(80 83 85 / 38%)}.newsletter-popup h2{margin:.35rem 2rem .8rem 0;font-size:clamp(1.5rem,5vw,2.2rem)}.newsletter-popup form{display:grid;gap:.8rem}.newsletter-popup form>label:not(.consent){display:grid;gap:.3rem}.newsletter-popup input[type=email]{min-height:44px;padding:.65rem;border:1px solid #505355;border-radius:8px}.newsletter-popup fieldset{display:grid;gap:.4rem;border:0;padding:0}.newsletter-popup__close{position:absolute;top:1rem;right:1rem;width:44px;height:44px;border:0;border-radius:50%;background:#f0d1c1;color:#505355;font-size:1.6rem;cursor:pointer}.newsletter-popup .button{justify-self:start}

/* Réparation ciblée : newsletter indépendante, valeurs, contact et catalogue. */
.newsletter-section{padding-block:clamp(2.5rem,5vw,4.5rem);background:#f8f5f2;color:#505355}
.newsletter-panel{display:grid;grid-template-columns:minmax(0,.85fr) minmax(360px,1.15fr);gap:clamp(2rem,6vw,5.5rem);align-items:center;padding:clamp(1.6rem,4vw,3.5rem);border-radius:42px 14px 42px 14px;background:#f0d1c1}
.newsletter-editorial{max-width:42rem}.newsletter-editorial h2{max-width:16ch;margin:.35rem 0 .8rem;color:#505355;font-size:clamp(1.8rem,3.4vw,3rem);line-height:1.12}.newsletter-editorial p{color:#505355}
.newsletter-form{display:grid;grid-template-columns:1fr auto;gap:.8rem 1rem;padding:clamp(1.2rem,3vw,2rem);border-radius:26px 10px 26px 10px;background:#f8f5f2}.newsletter-form .newsletter-email,.newsletter-popup .newsletter-email{display:grid;gap:.35rem;font-weight:700}.newsletter-form .newsletter-email{grid-column:1/-1}.newsletter-form input[type=email],.newsletter-popup input[type=email],.newsletter-form input[type=text],.newsletter-popup input[type=text]{width:100%;min-height:48px;padding:.7rem .85rem;border:1px solid #a0ada8;border-radius:12px;background:#f8f5f2;color:#505355;font:inherit}
.newsletter-identity{display:grid;grid-column:1/-1;grid-template-columns:1fr 1fr;gap:.8rem}
.newsletter-form .newsletter-identity label,.newsletter-popup .newsletter-identity label{display:grid;gap:.35rem;font-weight:700}.newsletter-form fieldset,.newsletter-popup fieldset{grid-column:1/-1;padding:0;border:0}.newsletter-form legend,.newsletter-popup legend{margin-bottom:.55rem;font-weight:700}.newsletter-interests{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem 1rem}.newsletter-interests label{display:flex;align-items:flex-start;gap:.5rem;color:#505355;font-size:.88rem}.newsletter-interests input,.newsletter-form .consent input,.newsletter-popup .consent input{flex:0 0 auto;width:1.1rem;height:1.1rem;margin-top:.12rem;accent-color:#cf8f75}.newsletter-form .consent,.newsletter-popup .consent{display:grid;grid-template-columns:auto 1fr;grid-column:1/-1;gap:.55rem;color:#505355;font-size:.8rem;line-height:1.4}.newsletter-form .button{grid-column:1/-1;justify-self:start;align-self:start}.newsletter-form .newsletter-notice,.newsletter-form .form-error{grid-column:1/-1;margin:0;color:#505355;font-weight:700}.newsletter-honeypot{position:absolute!important;left:-10000px!important}
.newsletter-popup{width:min(720px,calc(100% - 2rem));max-height:calc(100dvh - 2rem);padding:clamp(1.3rem,3vw,2.2rem);overflow:auto;border:1px solid #cfb250;border-radius:32px 12px 32px 12px;background:#f8f5f2;color:#505355;box-shadow:0 24px 80px rgb(80 83 85 / 24%)}.newsletter-popup::backdrop{background:rgb(80 83 85 / 42%)}.newsletter-popup__editorial{padding-right:3rem}.newsletter-popup h2{max-width:20ch;margin:.3rem 0 .55rem;color:#505355;font-size:clamp(1.45rem,3.6vw,2.25rem);line-height:1.14}.newsletter-popup__editorial>p:last-child{max-width:58ch;margin-bottom:1rem}.newsletter-popup form{display:grid;grid-template-columns:1fr auto;gap:.7rem 1rem;padding-top:1rem;border-top:1px solid rgb(207 178 80 / 45%)}.newsletter-popup .newsletter-email{grid-column:1/-1}.newsletter-popup .button,.newsletter-popup .newsletter-notice,.newsletter-popup .form-error{grid-column:1/-1;justify-self:start}.newsletter-popup .newsletter-notice,.newsletter-popup .form-error{margin:0;color:#505355;font-weight:700}.newsletter-popup__close{position:absolute;top:1rem;right:1rem;display:grid;place-items:center;width:44px;height:44px;padding:0;border:1px solid #cfb250;border-radius:50%;background:#f0d1c1;color:#505355;font-size:1.55rem;line-height:1;cursor:pointer}.newsletter-popup__close:is(:hover,:focus-visible){background:#a0ada8;color:#505355}.newsletter-popup__close:focus-visible{outline:2px solid #505355;outline-offset:2px;box-shadow:none}
.presentation-values{background:#f8f5f2}.values-orbit{display:grid;grid-template-columns:1.15fr .85fr;gap:1rem;align-items:stretch}.values-orbit article{position:relative;padding:clamp(1.5rem,3vw,2.6rem);border-radius:36px 12px 36px 12px;background:#f0d1c1}.values-orbit article:nth-child(2),.values-orbit article:nth-child(3){border-radius:12px 36px 12px 36px;background:#f8f5f2;box-shadow:inset 0 0 0 1px rgb(160 173 168 / 60%)}.values-orbit article:nth-child(3){grid-column:1}.values-orbit article:nth-child(4){grid-column:2;grid-row:2;background:#a0ada8}.values-orbit article>span{color:#505355;font-size:.75rem;font-weight:700;letter-spacing:.14em}.values-orbit h3{margin:1.2rem 0 .6rem;color:#505355}.values-orbit p{max-width:55ch;margin:0;color:#505355}
.page-contact .contact-layout{grid-template-columns:minmax(0,1.45fr) minmax(280px,.55fr);gap:clamp(1.5rem,4vw,3rem)}.page-contact .contact-form-panel{min-width:0}.page-contact .contact-card{padding:clamp(1.5rem,4vw,3rem);border-radius:36px 12px 36px 12px}.page-contact .contact-card>div:first-child{display:block}.page-contact .contact-card>div:first-child p:last-child{display:none}.page-contact .contact-layout>aside{position:sticky;top:100px;padding:clamp(1.3rem,3vw,2rem);border-radius:28px 10px 28px 10px;background:#f0d1c1}.page-contact .contact-layout>aside h2{margin:.35rem 0 .7rem;font-size:clamp(1.5rem,2.5vw,2rem)}.contact-precautions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;padding:0;margin:1.25rem 0;list-style:none}.contact-precautions li{padding:.8rem;border-radius:14px;background:#f8f5f2;color:#505355;font-size:.82rem;line-height:1.35}.contact-precautions li::before{margin-right:.35rem;color:#846e24;content:"◆"}.page-contact .contact-form textarea{min-height:132px}
.site-header[data-theme] .academy-link{border-color:#cfb250;background:#f8f5f2;color:#505355}.site-header[data-theme] .academy-link:is(:hover,.capture-hover){border-color:#a0ada8;background:#505355;color:#f8f5f2}.site-header[data-theme] .academy-link:active{border-color:#cf8f75;background:#505355;color:#f8f5f2}
:is(.newsletter-form,.newsletter-popup) input[type=email]{border-color:#505355}:is(.newsletter-form,.newsletter-popup) .button{border:0;background:linear-gradient(90deg,#505355,#6b6f6c);box-shadow:0 15px 25px rgb(80 83 85 / 12%);transition:transform .2s ease,box-shadow .2s ease}:is(.newsletter-form,.newsletter-popup) .button:is(:hover,:focus-visible){background:var(--button-hover-gradient);transform:translateY(-2px);box-shadow:0 20px 34px rgb(80 83 85 / 16%)}.site-footer .footer-links h2{color:#505355}body[class] :is(.newsletter-form,.newsletter-popup) .button{color:#f8f5f2}
.page-contact main .button-secondary{border-color:#505355;background:#505355;color:#f8f5f2}.page-contact main .button-secondary:is(:hover,:focus-visible){border-color:#a0ada8;background:#505355;color:#f8f5f2}.page-contact main .interior-hero .button-secondary{border-color:#505355;background:#505355;color:#f8f5f2}.page-contact main .button,.page-boutique main .button{border:0;background:linear-gradient(90deg,#2f3234,#6b6f6c);color:#f8f5f2;box-shadow:0 15px 25px rgb(80 83 85 / 12%);transition:transform .2s ease,box-shadow .2s ease}.page-contact main .button:is(:hover,:focus-visible),.page-boutique main .button:is(:hover,:focus-visible){background:var(--button-hover-gradient);color:#2b2d2f;transform:translateY(-2px);box-shadow:0 20px 34px rgb(80 83 85 / 16%)}
:is(.page-formations,.page-prestations,.page-blog,.page-boutique,.page-contact) .editorial-hero h1{max-width:15ch;font-size:clamp(2.5rem,5vw,4.5rem);line-height:1.08}
.page-boutique .product-grid{gap:clamp(1.25rem,3vw,2.2rem)}.page-boutique .product-card{border-radius:28px 10px 28px 10px}.page-boutique .product-card__body{padding:clamp(1.25rem,3vw,2rem)}.page-boutique .product-card h2{font-size:clamp(1.4rem,2.4vw,2rem)}.product-card__facts{display:grid;gap:.4rem;margin:1.3rem 0}.product-card__facts div{display:grid;grid-template-columns:5rem 1fr;gap:.75rem;padding-top:.4rem;border-top:1px solid rgb(160 173 168 / 38%)}.product-card__facts dt{font-weight:700}.product-card__facts dd{margin:0}.page-boutique .product-card__foot{margin-top:1.2rem}.page-boutique .product-card__foot>span{font-size:.82rem;font-weight:700}
@media(max-width:900px){.newsletter-panel{grid-template-columns:1fr}.page-contact .contact-layout{grid-template-columns:1fr}.page-contact .contact-layout>aside{position:static}.values-orbit{grid-template-columns:1fr 1fr}.values-orbit article:nth-child(3),.values-orbit article:nth-child(4){grid-column:auto;grid-row:auto}}
@media(max-width:600px){.newsletter-panel{padding:1.2rem;border-radius:28px 10px 28px 10px}.newsletter-form,.newsletter-popup form{grid-template-columns:1fr}.newsletter-form .button,.newsletter-popup .button{width:100%}.newsletter-interests{grid-template-columns:1fr}.newsletter-identity{grid-template-columns:1fr}.newsletter-popup{width:min(100% - 1rem,720px);padding:1.15rem;border-radius:24px 8px 24px 8px}.newsletter-popup__editorial{padding-right:2.8rem}.values-orbit{grid-template-columns:1fr}.contact-precautions{grid-template-columns:1fr}.page-contact .contact-card,.page-contact .contact-layout>aside{border-radius:24px 8px 24px 8px}.page-boutique .product-card__foot{align-items:stretch}.page-boutique .product-card__foot .button{width:100%}}

/* Passe ciblée 6 : CTA éditoriaux et zones photographiées uniquement. */
.button--primary,.button--secondary,.button--outline,.button--compact{font-family:var(--font-body);font-weight:700}
.button--primary{border:0;background:linear-gradient(90deg,#cf8f75,#f0d1c1);color:#2b2d2f;box-shadow:0 15px 25px rgb(80 83 85 / 12%)}
.button--secondary{border:1px solid #cfb250;background:#f8f5f2;color:#505355}
.button--outline{border:1px solid #505355;background:transparent;color:#505355}
.button--compact{min-height:42px;padding:.66rem 1rem;font-size:.9rem}
.button--primary:is(:hover,:focus-visible){border-color:transparent;background:var(--button-hover-gradient);color:#2b2d2f;transform:translateY(-2px)}
:is(.button--secondary,.button--outline):is(:hover,:focus-visible){border-color:#505355;background:#f8f5f2;color:#505355;transform:translateY(-2px)}

.page-contact .contact-form{align-items:start}.page-contact .contact-form [hidden]{display:none!important}.page-contact .contact-form fieldset{min-width:0}.contact-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem 1rem;padding:1.1rem;border:1px solid #a0ada8;border-radius:18px}.contact-choices legend{padding-inline:.35rem;font-weight:700}.contact-choices legend small{font-weight:400}.contact-choices label{display:flex;grid-template-columns:none;align-items:flex-start;gap:.55rem;font-weight:400}.contact-choices input{flex:0 0 auto;width:1.1rem;height:1.1rem;margin-top:.25rem;padding:0;accent-color:#cf8f75}.page-contact .contact-layout>aside .button{width:100%;margin-top:.25rem}

.page-prestations .services-guide .services-heading>p:not(.eyebrow){color:#2b2d2f}.page-prestations .services-guide__list a{padding:1.15rem 0}.page-prestations .services-guide__list span{color:#2b2d2f}.page-prestations .services-guide__list strong.button--compact{display:inline-flex;align-items:center;justify-content:center;width:10rem;white-space:nowrap;border:1px solid #505355;border-radius:999px;background:#f8f5f2;color:#2b2d2f;text-decoration:none;transition:transform .2s ease,background .2s ease}.page-prestations .services-guide__list a:is(:hover,:focus-visible) strong{border-color:#cfb250;background:#f8f5f2;color:#2b2d2f;text-decoration:none;transform:translateY(-2px)}
.page-prestations .services-audiences ul{grid-template-columns:repeat(6,minmax(0,1fr));gap:1rem;border:0}.page-prestations .services-audiences li{grid-column:span 2;min-height:160px;padding:1.5rem;border:0;border-radius:28px 10px 28px 10px;background:#f8f5f2;box-shadow:0 10px 28px rgb(80 83 85 / 6%)}.page-prestations .services-audiences li:nth-child(4){grid-column:2/span 2}.page-prestations .services-audiences li:nth-child(5){grid-column:4/span 2}.page-prestations .services-audiences li::before{margin-bottom:1.2rem}.page-prestations .services-method__grid{grid-template-columns:minmax(260px,.7fr) minmax(0,1.3fr)}.page-prestations .services-method ol{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;border:0}.page-prestations .services-method li{display:grid;grid-template-columns:1fr;align-content:start;gap:.55rem;min-height:190px;padding:clamp(1.3rem,3vw,2rem);border:0;border-radius:30px 10px 30px 10px;background:#f8f5f2}.page-prestations .services-method li:nth-child(even){border-radius:10px 30px 10px 30px;background:#f0d1c1}.page-prestations .services-method li strong{font-family:var(--font-title);font-size:var(--step-1);line-height:1.35}.page-prestations .services-method li strong::before{display:block;margin:0 0 1rem;color:#505355;font-family:var(--font-body);font-size:.78rem;letter-spacing:.12em}.page-prestations .services-method li span{color:#505355}

/* La vignette de neuro-architecture n'a plus de règle à elle : elle suit celle
   des trois autres. Celle qui vivait ici — aspect-ratio 480/378, overflow
   hidden, hauteur automatique — servait à masquer le HAUT de l'ancien
   fichier, qui n'était pas une photo mais une carte entière avec titre et
   texte marketing incrustés dedans. Le fichier est désormais une vraie image,
   reprise de la source 1600x1116 ; recadrer par le CSS n'a plus d'objet, et
   c'était ce recadrage qui l'étirait et la rendait floue. */
.page-formations .formation-card--neuro>.button{align-self:end;justify-self:start;margin-top:auto}

@media(max-width:900px){.page-prestations .services-audiences ul{grid-template-columns:repeat(2,minmax(0,1fr))}.page-prestations .services-audiences li,.page-prestations .services-audiences li:nth-child(4),.page-prestations .services-audiences li:nth-child(5){grid-column:auto}.page-prestations .services-audiences li:last-child{grid-column:1/-1}.page-prestations .services-method__grid{grid-template-columns:1fr}}
@media(max-width:600px){.contact-choices,.page-prestations .services-audiences ul,.page-prestations .services-method ol{grid-template-columns:1fr}.page-prestations .services-audiences li:last-child{grid-column:auto}.page-prestations .services-guide__list strong.button--compact{justify-self:start}.page-formations .formation-card--neuro>.button{width:100%}}
.historical-contact .historical-pill{width:auto;min-width:0;min-height:0;margin:11px 0 -21px;padding:.9rem 1.4rem;border:0;background:linear-gradient(90deg,#cf8f75,#f0d1c1);color:#2b2d2f!important;box-shadow:0 15px 25px rgb(80 83 85 / 12%)}/* Le !important sur le fond a saute le 29 aout : il empechait la regle des paires
   (transparent a gauche, terracotta a droite) de s appliquer a ces deux boutons.
   Il etait redondant — la meme regle sans forcage suffit partout ailleurs. */.historical-contact .historical-pill--secondary{border-color:#505355;background:#f8f5f2;color:#505355!important}.historical-contact .historical-pill:is(:hover,:focus-visible){border:0;background:var(--button-hover-gradient)!important;color:#2b2d2f!important;transform:translateY(-2px)}

/* Badge Qualiopi : réduit à une pastille jusqu'à la tablette (2026-08-08, borne portée à
   1024 px le 2026-08-10).
   En pleine taille il occupait 135 px de large sur 168 de haut, en position fixe au-dessus du
   contenu, et se posait sur le bloc de prix des fiches produit : « 90 € » passait derrière son
   texte légal, et « Inscription en ligne » était amputé. Un prix illisible sur le geste d'achat.
   La certification reste accessible — le lien vers le certificat est conservé, et le libellé
   pour les lecteurs d'écran vit sur le lien lui-même, pas sur le texte masqué.

   La borne était d'abord à 767 px, ce qui laissait le badge en taille pleine sur tablette. Mesuré
   à 768 px sur /contact/, défilement 1320 : le badge (173 × 177 px, fixé en bas à gauche)
   recouvrait 56 % du bouton « Envoyer la demande d'information », et un clic sur la moitié gauche
   du bouton ouvrait le certificat PDF au lieu d'envoyer le formulaire. Un formulaire de contact
   inutilisable, sans le moindre signe visible. */
@media(max-width:1024px){
  .fixed-brand-mark{width:auto;padding:6px 10px;gap:0;background:#fff;border:1px solid #e6dcd2;border-radius:999px;box-shadow:0 4px 14px rgba(120,96,80,.16)}
  .fixed-brand-mark__head,.fixed-brand-mark__legal{display:none}
  .fixed-brand-mark__imgwrap{display:block;line-height:0}
  .fixed-brand-mark__imgwrap img{width:56px;height:auto}
}

/* En-tête sur téléphone (2026-08-08).
   Une règle à max-width:850px portait le logo à 132 px de large — plus de trois fois sa taille
   sur ordinateur. Additionné au mot « ARCHI MIND » (146 px) et au bouton de menu (74 px), l'en-tête
   réclamait 392 px pour 343 disponibles : le bouton sortait de l'écran de 33 px et TOUTE la page
   défilait latéralement, sur chaque page du site.
   Mesuré : en masquant le seul bouton de menu, la largeur de défilement retombait de 408 à 375. */
@media(max-width:767px){
  .brand img{width:44px;height:44px}
  .brand{flex:0 1 auto;min-width:0}
  .header-inner{gap:1rem}

}

/* Zone tactile du bouton de menu (2026-08-08, corrigé le 2026-08-10).
   Elle ne faisait que 74 × 20 px, moins de la moitié des 44 px recommandés, sur le contrôle de
   navigation le plus utilisé du site. Le remplissage agrandit la surface cliquable sans toucher
   à l'apparence — l'icône et le mot « Menu » gardent leur taille ; la marge négative compense
   pour ne pas déplacer l'en-tête.

   La borne est à 850 px et non 767 : c'est jusque-là que le menu déroulant est masqué et que ce
   bouton devient l'UNIQUE accès à la navigation. Une première version s'arrêtait à 767 px et
   laissait toute la plage tablette avec une cible de 20 px. */
@media(max-width:850px){
  .menu-button{padding:13px 8px;margin:-13px -8px}
}

/* Lisibilité du libellé des boutons (2026-08-10, choix de Mathilde : option 1).
   Le fond est un dégradé terracotta → rose pâle, et le texte était blanc : le contraste tombait
   de 2,68 à gauche à 1,44 à droite, pour un seuil de 4,5. Sur « Ajouter au panier », le mot
   « panier » s'effaçait — et le défaut touchait toute la couche de décision du site : ajouter au
   panier, passer commande, connexion, voir la formation, une trentaine de commandes.

   Le dégradé n'a pas bougé : seul le libellé passe en anthracite #2b2d2f, ce qui porte le pire
   contraste à 4,53. Un texte foncé sur fond clair est aussi ce qui se lit le mieux en plein jour,
   là où ces boutons servent le plus.

   Le survol suit la même règle. Il change le fond pour un dégradé sauge #8b978f → #c3cec8, sur
   lequel le blanc ne valait que 1,62 : le libellé disparaissait au moment précis où le curseur
   le désigne. La même encre y tient 4,56. Elle a été calculée pour passer le seuil sur les
   quatre bouts de dégradé à la fois, d'où #2b2d2f plutôt que #343638 — neuf points plus foncé,
   invisible à l'œil, mais qui évite d'avoir deux encres à maintenir. */
   Ce garde-fou est volontairement peu spécifique (0,2,0) : il doit battre le « color:white »
   générique de global.css, mais céder à toute règle de page qui donne au bouton un fond
   différent — les boutons ardoise de /contact/ et /boutique/, par exemple, gardent leur libellé
   crème, qui y est le bon. Le monter plus haut leur imposait de l'anthracite sur du gris foncé,
   soit 1,78 : le remède devenait pire que le mal. */
:is(.button,.button--primary,.button--compact,.historical-pill):not(.historical-pill--secondary){color:#2b2d2f}

/* Deux familles de sections, et une confusion qui traînait entre les deux (2026-08-10).

   Les feuilles de page ont été écrites pour des sections à fond SOMBRE : titres blancs,
   paragraphes en pastel, chiffres en doré clair. Puis cette feuille a repeint six de ces sections
   en sauge #a0ada8 — un fond clair — sans toucher aux couleurs de texte. Résultat : un paragraphe
   entier à 1,59 de contraste, des titres blancs sur sauge, des chiffres dorés à 1,12.

   Ci-dessous, chaque famille reçoit ce qui lui convient, et rien d'autre. */

/* Sections restées sombres : elles gardent le terracotta et le doré clairs, qui y sont lisibles.
   Sans cette ligne, les jetons « lisibles sur fond clair » les rendraient illisibles ici. */
:is(.bespoke-supports,.bespoke-boundaries,.analysis-observations,.analysis-collaboration,
    .choice-guide,.sessions-callout,.neuro-objectives,.housing-objectives,.housing-boundaries,
    .color-objectives,.color-boundaries,.sessions-quality,.site-footer){
  --terra-text:var(--terra);
  --gold-text:var(--gold);
}

/* Sections repeintes en sauge : tout le texte passe à l'encre foncée, 5,95 de contraste. */
:is(.neuro-quality,.housing-quality,.training-limits,.services-guide,.services-limits,.final-section--dark){
  --terra-text:#603321;
  --gold-text:#4b3e15;
  color:#2b2d2f;
}
:is(.neuro-quality,.housing-quality,.training-limits,.services-guide,.services-limits,.final-section--dark)
  :is(h2,h3,h4,p,li,dt,dd,strong,em,small,figcaption,.eyebrow){
  color:#2b2d2f;
}

/* Fenêtre newsletter sur écran court (2026-08-10).

   Le contenu mesure 843 px pour 778 px disponibles sur un téléphone de 812 px de haut : le bouton
   « Demander mon inscription » se retrouvait sous la ligne de flottaison de la fenêtre, visible à
   8 %. On pouvait faire défiler l'intérieur de la fenêtre, mais rien ne l'indiquait — et une
   fenêtre qui s'ouvre d'elle-même n'a pas droit à une deuxième chance.

   Les champs défilent maintenant dans leur propre zone, et la ligne du bouton reste posée en bas,
   hors du défilement. La règle vaut aussi sur un grand écran dont la fenêtre est courte, d'où le
   critère de hauteur en plus de celui de largeur. */
@media (max-width:720px),(max-height:820px){
  /* Le sélecteur porte [open]. Sans lui, ce display:flex l'emporte sur le
     display:none que le navigateur applique à un <dialog> fermé : la fenêtre
     restait peinte à l'écran après qu'on l'ait fermée — sous 720 px seulement,
     donc invisible quand on contrôle sur grand écran. */
  .newsletter-popup[open]{display:flex;flex-direction:column;overflow:hidden}
  .newsletter-popup__editorial{flex:0 0 auto}
  .newsletter-popup form{display:flex;flex-direction:column;min-height:0;flex:1 1 auto;gap:.7rem}
  .newsletter-popup__fields{display:grid;gap:.7rem;flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding-right:.35rem}
  .newsletter-popup__actions{flex:0 0 auto;padding-top:.7rem;border-top:1px solid rgb(207 178 80 / 45%)}
  .newsletter-popup__actions .button{width:100%}
}

/* ── L'en-tête doré, rendu lisible ──────────────────────────────────────────
   Le thème « gold » s'applique dès l'arrivée sur l'accueil, avant tout
   défilement : c'est le premier bandeau que voit un visiteur. Ses couleurs
   étaient celles pensées pour les thèmes sombres, et sur un fond doré clair
   elles ne tenaient pas — la navigation à 3,74, le lien de la page courante à
   2,53, tous deux sous le seuil de 4,5.

   Le doré est un fond clair : il lui faut du texte foncé, comme le thème light.
   ────────────────────────────────────────────────────────────────────────── */
.site-header[data-theme=gold] .brand,
.site-header[data-theme=gold] .main-menu>.nav-item>a,
.site-header[data-theme=gold] .main-menu>.nav-item>.submenu-toggle { color:#2f3234 }   /* 6,23 sur le doré */
.site-header[data-theme=gold] .main-menu>.nav-item>a:hover,
.site-header[data-theme=gold] .main-menu>.nav-item>a[aria-current=page] { color:#643c28 }  /* 4,57 — le terracotta le plus clair qui tienne */
.site-header[data-theme=gold] .academy-link { border-color:#2f3234; background:rgb(255 255 255 / 34%); color:#2f3234 }


/* ── Le doré ne porte plus de texte ─────────────────────────────────────────
   #cfb250 est superbe en aplat et illisible en texte : 2,07 de contraste sur
   blanc là où il en faut 4,5. La charte déclare déjà sa variante lisible,
   --gold-text (#846e24, 4,96). Le dégradé du logo reste inchangé : sur du grand
   texte il tient 3,50 au point le plus sombre, au-dessus du seuil.
   ────────────────────────────────────────────────────────────────────────── */
.fixed-brand-mark .brand-mark-note,
.brand-mark-note,
.fixed-brand-mark small { color: var(--gold-text, #846e24) }

/* ═══ LE MENU : LA PAGE COURANTE, ET L'ACCENT DU RÉSEAU ═══════════════════
   EN DERNIÈRE POSITION, ET C'EST DÉLIBÉRÉ. Le menu est traité à sept endroits
   de ce fichier — lignes 249, 288, 293, 498, 559, 757 — et chaque nouvelle
   règle posée au milieu se faisait écraser par une plus lointaine. Mesuré :
   la page courante restait en crème #f8f5f2 sur un fond crème, contraste 1,04.
   L'entrée de la page où l'on se trouvait était invisible, sur toutes les pages
   sauf l'accueil. Ici, plus rien ne passe après.

   LA PAGE COURANTE. Sur fond clair, elle prend l'encre profonde (12,21) ; le
   crème est réservé aux fonds foncés, pour lesquels la règle d'origine avait
   été écrite.

   L'ACCENT DU RÉSEAU. Léon, le 28 août 2026 : la même police que les autres
   entrées, « légèrement en gras », en terracotta — et « quand le fond sera
   terracotta, il faudra du coup qu'il apparaisse en doré ».
   La graisse 600 est portée sur les quatre fonds : c'est le seul signal qui les
   traverse tous. La couleur ne s'ajoute que là où elle se lit. Mesures du
   terracotta #a35839 : 4,62 sur le fond crème, 2,53 sur le doré, 2,25 sur le
   gris-vert, 1,08 sur le terracotta. Sur ce dernier c'est donc le doré clair
   du nom de marque qui prend le relais (3,94) ; sur les fonds doré et
   gris-vert, aucune teinte de la charte ne fait mieux que l'encre du menu, et
   le mot y garde sa couleur. Mettre une couleur illisible pour tenir une règle
   serait un pas en arrière. */


.site-header[data-theme=light] .main-menu>.nav-item>a:is(:hover,[aria-current=page]){color:#2b2d2f}


/* L'accueil garde un en-tête doré en permanence — une règle de page, pas un
   thème : la couleur du mot y reste celle du menu, seule la graisse le tient. */
/* SUR L'ACCUEIL AUSSI, LE MOT PORTE SA COULEUR.
   Je l'en avais privé : sur le fond doré, le terracotta de la charte ne donne
   que 2,53 de contraste, et j'avais préféré le gras seul. Mais l'accueil est
   justement la page qu'on regarde, et Léon y voyait un mot comme les autres —
   sa demande semblait passée à la trappe alors qu'elle était appliquée
   partout ailleurs.
   #643c28 est le terracotta le plus clair qui tienne sur ce doré : 4,57. Il se
   distingue franchement de l'encre des voisines (#2b2d2f) tout en restant de
   la même famille que le #a35839 des autres pages. La couleur est donc partout,
   simplement plus sombre là où le fond l'exige. */

/* ═══ SUR TÉLÉPHONE, DEUX GESTES NE PARTAGENT PAS UNE LIGNE ════════════════
   Les paires d'actions se partagent la largeur à parts égales — c'est ce qui
   rend le gabarit régulier sur un écran large. À 375 px, chaque bouton n'a plus
   que 150 px : « Découvrir la formation » y passait sur deux lignes et le
   bouton doublait de hauteur, juste à côté d'un voisin resté sur une ligne.
   Mesuré sur /formations/, sur les deux vignettes qui portent une paire.

   Sous 620 px ils s'empilent donc, pleine largeur. Le gabarit reste régulier —
   simplement, la régularité se lit verticalement. */
@media (max-width:620px){
  :is(.page-formations .formation-card__actions--split,.services-actions,.sessions-actions){flex-direction:column;align-items:stretch}
  :is(.page-formations .formation-card__actions--split,.services-actions,.sessions-actions)>:is(.button,.button-secondary){flex:0 0 auto;width:100%;min-width:0;min-height:52px}
  /* Empilés, les deux boutons ne s'égalisent plus par le stretch — qui agit
     sur la largeur, pas la hauteur. Le secondaire, qui porte une bordure et
     un rembourrage un peu différent, faisait 7 px de plus que son voisin. */
}

/* ═══ ACCESSIBILITÉ — MESURÉ, PUIS CORRIGÉ ════════════════════════════════
   Premier relevé d'accessibilité du site, 28 août 2026. Quatre défauts, tous
   systémiques ; les corrections ci-dessous ne changent rien à ce qu'on voit —
   elles agissent sur des teintes illisibles et sur des zones invisibles.

   ── 1. LE MENU SUR LE FOND DORÉ DE L'ACCUEIL
   L'en-tête de l'accueil est doré en permanence. Le menu y était écrit dans
   l'encre claire du site : « Accueil », l'entrée courante, tombait à 1,91 de
   contraste — illisible au sens strict — et ses voisines à 3,74, sous le seuil
   de 4,5. Quatorze textes en dessous du seuil sur cette seule page.
   L'encre profonde donne 6,67 sur ce doré. C'est la même encre que le reste du
   site ; seule sa nuance change, là où le fond l'exige. */
.page-home .site-header .main-menu>.nav-item>a,
.page-home .site-header .main-menu>.nav-item>.submenu-toggle,
.page-home .site-header .main-menu>.nav-item>a:is(:hover,[aria-current=page]){color:#2b2d2f}

/* ── 2. LES ENTRÉES DE MENU FAISAIENT 22 PX DE HAUT
   Sous les 24 px que demande le critère de taille de cible, et loin des 44 px
   confortables au pouce. Le rembourrage n'a pas d'apparence : le mot ne bouge
   pas, c'est la zone qui l'entoure qui grandit. */
.main-menu>.nav-item>a,.main-menu>.nav-item>.submenu-toggle{padding-block:.7rem}

/* ── 3. LES SEPT LIENS LÉGAUX DU PIED
   Mentions légales, Confidentialité, Cookies, CGV, CGU, Accessibilité et la
   signature : 16 à 20 px de haut. Ce sont les liens qu'on cherche quand on a
   une raison sérieuse de les chercher. */
.site-footer .footer-legal a,.site-footer .footer-auteur a{display:inline-block;padding-block:.35rem}

/* ── 4. LES CASES À COCHER DE LA LETTRE
   18 × 18 px. Elles passent à 22, et leur étiquette reste cliquable : c'est
   elle qui porte la vraie zone de clic. */
.newsletter-interests input[type=checkbox]{width:24px;height:24px}
.newsletter-interests label{display:flex;align-items:center;gap:.5rem;min-height:34px;cursor:pointer}

/* ── 5. L'ENTRÉE DE LA PAGE COURANTE, ENFIN LISIBLE
   Elle était peinte en crème sur un fond crème : contraste 1,0, mesuré sur
   /formations/ comme sur /contact/. Le menu n'a jamais indiqué où l'on se
   trouve.
   J'avais corrigé sous [data-theme=light] — sans effet, et voici pourquoi :
   le thème est posé par le script APRÈS le rendu. Au chargement, l'en-tête n'a
   pas d'attribut du tout, et seule la règle sans condition s'applique. C'est
   donc une règle sans condition qu'il fallait écrire.
   Le crème reste réservé aux deux fonds foncés, qui le demandent. */
.main-menu>.nav-item>a[aria-current=page]{color:#2b2d2f}
.site-header[data-theme=terra] .main-menu>.nav-item>a[aria-current=page],
.site-header[data-theme=dark] .main-menu>.nav-item>a[aria-current=page]{color:#f8f5f2}
.page-home .site-header .main-menu>.nav-item>a[aria-current=page]{color:#2b2d2f}

/* ── 6. « CERTIFIÉ », DANS LE CARTOUCHE DE MARQUE
   Dix pixels de doré #cfb250 sur un fond crème : 1,99. Le mot est décoratif,
   mais il se lit — ou plutôt il ne se lisait pas. L'or sombre de la charte,
   celui prévu pour le texte, donne 4,38 à cette taille. */
.fixed-brand-mark__head span,.fixed-brand-mark__head small{color:#846e24}

/* ── 7. LES CASES À COCHER DU FORMULAIRE DE CONTACT
   Neuf cases à 18 × 18. Les mêmes 22 px que celles de la lettre. */
form input[type=checkbox],form input[type=radio],input[type=checkbox],input[type=radio]{width:24px;height:24px}

/* ── 8. LE SÉLECTEUR DE LANGUE
   « EN » faisait 17 px de large : la cible la plus petite du site, et celle qui
   fait basculer toute la lecture. */
.main-menu>.lang-toggle{min-width:44px;justify-content:center}

/* ── 9. LES DERNIÈRES CIBLES SOUS 24 PX
   Le fil d'Ariane (18 px de haut) et les liens posés au fil d'un paragraphe
   (23 px). Vingt-quatre pixels est le plancher du critère de taille de cible ;
   le rembourrage ne déplace pas le texte, il élargit ce qu'on peut viser.
   Les liens du pied comme « CGV » restent étroits en largeur — c'est la
   longueur du mot, et le critère l'admet dès lors qu'ils sont assez espacés
   les uns des autres, ce qui est le cas. */
.breadcrumb a,.breadcrumb li{display:inline-flex;align-items:center;min-height:24px}
main p>a,main li>a,main dd>a{padding-block:.15rem}

/* ═══ « LE RÉSEAU » : SA COULEUR PASSE APRÈS TOUT LE RESTE ═════════════════
   Cette règle est la dernière du fichier, et il le faut : les corrections
   d'accessibilité qui précèdent repeignent tout le menu, accent compris, et
   la couleur du mot s'y perdait. Sur l'accueil il redevenait gris comme ses
   voisines — Léon voyait sa demande passée à la trappe alors qu'elle était
   appliquée sur les autres pages.

   Une couleur par fond, choisie pour se lire :
     fond crème      → #a35839, le terracotta de la charte (4,62)
     fond doré       → #643c28, le plus clair qui tienne dessus (4,57)
     fond terracotta → #f6e7b6, le doré du nom de marque (3,94)
     fond gris-vert  → #5a3423 (5,20)
   Et la graisse 600 partout : c'est le seul signal qui traverse les quatre. */
/* EN MAJUSCULES, ET RIEN D'AUTRE. Léon, le 28 août 2026 : « il faut qu'il soit
   écrit en majuscule. Pour l'instant, ni plus gros ni plus gras, juste en
   majuscule. » Le gras de 600 est donc retiré : le mot reprend la graisse et
   la taille de ses voisines, et ne se distingue plus que par sa casse et sa
   couleur.
   La casse est posée par le style, pas dans le texte : « Le réseau » reste
   écrit ainsi dans le code, donc lu ainsi par une synthèse vocale, qui
   épellerait volontiers un mot tout en capitales. */
/* LES CARACTÈRES D'ACADEMY, EN MAJUSCULES ET EN GRAS.
   Léon, le 28 août 2026 : « la même police, la même taille, tout pareil comme
   Academy, sauf que tu mets en gras » — et en majuscules. Relevé sur le bouton
   Academy : Assistant, 14,72 px, interlettrage 1,472 px. Sa graisse est 600 ;
   le mot passe à 700.
   Ce sont les caractères d'Academy, pas son cadre : le mot reste une entrée de
   menu, pas un second bouton. */
/* .site-header en tête : sans lui, la taille se faisait reprendre par une
   règle de même poids déclarée ailleurs, et le mot restait à 13,12 px au
   lieu des 14,72 d'Academy. */
.site-header .main-menu>.nav-item--accent>a{font-size:.92rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}
/* UNE COULEUR PAR FOND, ET TOUJOURS DIFFÉRENTE DE CELLE DES VOISINES.
   C'est la règle que Léon a posée : « il faut toujours qu'il y ait une
   différence pour qu'il soit mis en valeur ». La couleur suit donc ce que font
   les entrées d'à côté, pas une teinte fixe.
     fond crème   → voisines en encre  → terracotta #a35839 (4,62)
     fond doré    → voisines en encre  → terracotta sombre #643c28 (4,57 ;
                                          le plus clair qui tienne sur ce doré)
     fond terra   → voisines en crème  → doré clair #f6e7b6 (3,94)
     fond sombre  → voisines en crème  → terracotta profond #5a3423 (5,20) */
/* .site-header EN TÊTE, ET C'EST TOUT LE POINT.
   Sans lui, cette règle pèse trois classes ; celle de la ligne 484 —
   .site-header[data-theme=light] :is(…) — en pèse quatre et repeignait le mot
   dans l'encre du menu. La taille et les majuscules, elles, passaient : leur
   règle porte déjà .site-header. D'où un mot en capitales et en gras, mais
   resté gris — exactement ce que Léon voyait, trois fois de suite.
   Les règles par fond, plus bas, portent toutes .site-header ou .page-home :
   elles pesaient déjà assez lourd. */
/* POURQUOI !important ICI, ET NULLE PART AILLEURS DANS LE MENU.
   Le mot est resté gris quatre fois de suite, et mes trois premières
   explications étaient fausses. La vraie : ligne 484,
   « .site-header[data-theme=light] :is(.brand,.main-menu>.nav-item>a,
     .main-menu>.nav-item>.submenu-toggle) ».
   :is() n'emprunte pas la spécificité de l'argument qui correspond, mais celle
   de son argument LE PLUS FORT — ici .main-menu>.nav-item>.submenu-toggle, qui
   pèse trois classes. Cette règle pèse donc cinq classes, quand le sélecteur
   du mot en pèse au mieux quatre : aucune écriture honnête ne la dépasse.
   La taille et les majuscules passaient, elles, parce que rien ne les
   redéclare — d'où un mot en capitales et en gras, mais gris.
   D'où !important, posé sur ces seules quatre lignes. Entre elles, c'est la
   spécificité qui tranche, dans l'ordre où elles sont écrites : le fond le
   plus précis gagne. */
.site-header .main-menu>.nav-item--accent>a{color:#a35839!important}
/* LE TERRACOTTA NE S'ASSOMBRIT PAS SUR SA PROPRE PAGE.
   Il passait en #8a4a34 pour marquer l'état « page courante » — et en petites
   capitales, ce terracotta sombre se lit comme un brun : sur la page du
   réseau, le mot n'avait plus l'air terracotta du tout. Or sa couleur sert à
   le distinguer des autres entrées, pas à dire où l'on est : ça, la page
   entière le dit déjà. Il garde donc son #a35839 partout. */
.site-header .main-menu>.nav-item--accent>a[aria-current=page]{color:#a35839!important}
/* SUR LE DORÉ, LE MÊME TERRACOTTA, EN PLUS SOMBRE — ET PAS UN BRUN.
   Le #a35839 de la charte n'y donne que 2,53 : le mot y serait presque effacé.
   J'avais pris #643c28, qui tient (4,57) mais tire vers le brun-gris — en
   petites capitales, il ne se lisait plus comme du terracotta, et c'est ce que
   Léon voyait. #722f19 garde la teinte rouge-orangée et monte à 4,75 : c'est
   le terracotta le plus franc que ce fond doré accepte. */
.page-home .site-header .main-menu>.nav-item--accent>a,
.page-home .site-header .main-menu>.nav-item--accent>a[aria-current=page],
.site-header[data-theme=gold] .main-menu>.nav-item--accent>a{color:#722f19!important}

/* SUR LE TERRACOTTA, ÉVIDEMMENT PAS DU TERRACOTTA.
   Les entrées voisines y sont déjà en crème : un mot en blanc ne se
   distinguerait de rien. Le doré clair du nom de marque, lui, se détache des
   deux — c'est la seule teinte de la charte qui le fasse sur ce fond. */
.site-header[data-theme=terra] .main-menu>.nav-item--accent>a{color:#f6e7b6!important}
.site-header[data-theme=dark] .main-menu>.nav-item--accent>a{color:#5a3423!important}


/* LE PANNEAU DES SOUS-MENUS, SANS SON CADRE.
   Il portait un liseré doré sur ses quatre côtés, un fond crème identique à
   celui de la barre, et des lignes en pastilles arrondies : trois façons de
   dessiner une boîte posée sur une boîte, juste sous une autre boîte. Le
   panneau ne s'encadre plus, il pend du menu — un seul trait doré en haut, du
   blanc dessous, des lignes pleine largeur séparées par des filets. L'ombre
   fait le reste du décollement, et elle est grise, pas rose : une ombre
   colorée sous du blanc se lit comme une salissure. */
@media(min-width:851px){
  .site-header .main-menu>.nav-item>.submenu{
    left:-1.15rem;min-width:264px;padding:0;
    border:0;border-top:2px solid var(--historic-gold);border-radius:0;
    background:#fff;
    box-shadow:0 14px 34px rgb(80 83 85 / 10%),0 2px 6px rgb(80 83 85 / 5%);
  }
  .site-header .main-menu .submenu a{
    padding:.72rem 1.15rem;border-top:1px solid rgb(207 178 80 / 22%);border-radius:0;
    color:var(--historic-ink);font-size:.86rem;font-weight:600;letter-spacing:.01em;
  }
  /* LA PREMIÈRE LIGNE EST LA PAGE DU MOT.
     Depuis que le mot ouvre le panneau au lieu d'y mener, c'est cette ligne
     qui donne accès à la page — « Toutes les formations », « Articles ». Elle
     se voit donc un peu plus que les autres : pas de filet au-dessus, l'encre
     franche, et le gras. */
  .site-header .main-menu .submenu a:first-child{border-top:0;color:#2b2d2f;font-weight:700}
  .site-header .main-menu .submenu a:is(:hover,:focus-visible){
    background:#faf6f1;color:var(--terra-text);
  }
}

/* ─────────────────────────────────── Le menu débordait de la page

   À 1280 px, largeur de portable des plus courantes, la page défilait
   latéralement de 14 px : le menu français mesure 970 px et sortait à 1294
   quand la fenêtre s'arrête à 1280. L'anglais tenait, ses libellés étant plus
   courts — le défaut ne se voyait donc qu'en français.

   Une bande de resserrement existait pour 851-1100 px. Elle était morte : la
   règle `.main-menu{gap:clamp(.75rem,1.55vw,1.5rem)}` plus bas dans cette même
   feuille la recouvrait, à spécificité égale et donc par simple position. À
   1100 px la page débordait de 85 px sans que rien ne la retienne.

   Les deux bandes sont donc réaffirmées ICI, en fin de feuille, là où elles
   gagnent. On ne touche qu'à la gouttière au-dessus de 1100 px : la taille des
   caractères du menu reste celle de la charte. */
@media(max-width:1100px) and (min-width:851px){
  .main-menu{gap:.7rem}
  .main-menu>.nav-item>a,.main-menu>.nav-item>.submenu-toggle,.main-menu>.academy-link{font-size:.77rem;letter-spacing:.1em}
}
@media(min-width:1101px) and (max-width:1400px){.main-menu{gap:.95rem}}

/* La phrase de marque du pied ne se justifie pas.

   Elle vit dans 200 px — vingt-huit signes par ligne. La justification y creuse
   des blancs entre les mots et la césure automatique coupe « accompagne-ment »
   en deux. Alignée à gauche, sans césure, elle se lit d'un trait. */
.footer-identity > p { text-align: left; hyphens: manual; -webkit-hyphens: manual; }

/* ───────────────── Le pied : la devise en tête, la signature dessous

   La phrase de marque était une légende de 13 px dans une colonne de 200,
   coupée en « accompagne-ment ». Léon, le 29 août 2026 : « il faut que ça soit
   beaucoup plus gros, espèce de titre ». Elle passe en tête, seule sur sa
   ligne, avec la coquille entière — et elle a été raccourcie de 84 à 75 signes
   pour tenir d'un trait.

   Le M et le nom se suivent maintenant, la photo vient après : le portrait les
   séparait, ce qui coupait la signature en deux morceaux.

   Deux classes dans les sélecteurs, pas une : les règles d'origine s'écrivent
   « .site-footer .footer-… » et l'emportaient sinon, quelle que soit la
   position dans le fichier. */
.site-footer .footer-compact { display: block; padding-block: clamp(2rem, 4vw, 3.25rem); }
.site-footer .footer-devise {
  max-width: none;
  margin: 0 0 clamp(1.3rem, 2.6vw, 2rem);
  padding-bottom: clamp(1.2rem, 2.4vw, 1.7rem);
  border-bottom: 1px solid var(--line);
  color: var(--ink);
  font-family: "Libre Baskerville", Georgia, serif;
  /* 1.7rem et non 1.78 : mesuré sur la page, la phrase demande 1099 px pour
     tenir d'un trait dans les 1080 de la coquille. À 27,2 px elle en occupe
     1049, soit trente et un pixels de marge. */
  font-size: clamp(1.15rem, 2.05vw, 1.7rem);
  font-weight: 400;
  line-height: 1.34;
  text-align: left;
  text-wrap: balance;
  hyphens: manual;
  -webkit-hyphens: manual;
}
.site-footer .footer-identity {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: clamp(1rem, 2.5vw, 2rem);
  margin-bottom: clamp(1.6rem, 3vw, 2.4rem);
}
.site-footer .footer-signature { display: flex; align-items: center; gap: .9rem; }
.site-footer .footer-identity .brand-wordmark { margin: 0; white-space: nowrap; }
.site-footer .footer-identity > .footer-certification { margin: 0; }

/* Les étiquettes de colonnes gardent l'allure des anciens titres : seule leur
   balise change, pour libérer la hiérarchie de la page. */
.site-footer .footer-links__titre {
  min-height: 0;
  margin: 0 0 .8rem;
  color: var(--terra-text);
  font-family: "Libre Baskerville", Georgia, serif;
  font-size: 1.05rem;
  line-height: 1.4;
}

@media (max-width: 720px) {
  .site-footer .footer-identity { flex-direction: column; align-items: flex-start; }
}

/* ───────────────── Le portrait au centre du pied — 29 août 2026

   MESURE AVANT : la signature s'arrêtait à 538 px, le bloc Qualiopi commençait
   à 1 168. Six cent trente pixels de vide au milieu de la ligne. Léon : « on
   pourrait la centrer dans le footer, ça occupera un petit peu l'espace ».

   1fr auto 1fr, ET NON space-between : le portrait se pose sur l'axe de la
   coquille, quoi qu'il arrive à sa gauche et à sa droite. Avec un simple
   espace-entre il aurait flotté à mi-chemin de deux blocs de largeurs
   inégales — et se serait déplacé en passant à l'anglais, où « ARCHI MIND » et
   la légende Qualiopi ne mesurent pas la même chose.

   88 px et non 96 : Léon a dit « légèrement ». À 96, le portrait devenait le
   plus gros objet de la ligne, devant le logo de la marque — ce n'est pas la
   hiérarchie voulue. */
.site-footer .footer-identity {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 1.5rem;
}
.site-footer .footer-identity > .footer-signature { justify-self: start; margin-bottom: 0; }
.site-footer .footer-identity > .footer-portrait { justify-self: center; width: 88px; height: 88px; }
.site-footer .footer-identity > .footer-certification { justify-self: end; }

/* Sur un téléphone, la ligne s'empile : trois colonnes n'y laisseraient à
   chacune qu'une centaine de pixels. */
@media (max-width: 900px) {
  .site-footer .footer-identity { grid-template-columns: 1fr; justify-items: center; gap: 1.1rem; }

  /* ANNULER LES PLACEMENTS DE L'ANCIEN PIED, sans quoi rien ne s'empile.
     Trois règles antérieures posent encore `grid-column: 3` (à 850 px) et
     `grid-column: 2` (à 520 px) sur le bloc Qualiopi. Placer un élément en
     colonne 3 dans une grille qui n'en déclare qu'une oblige le navigateur à
     FABRIQUER les colonnes 2 et 3 : la ligne restait à trois colonnes alors
     que le gabarit en demandait une. Ce n'était pas le gabarit qui perdait,
     c'était le placement qui le contournait. */
  .site-footer .footer-identity > .footer-signature,
  .site-footer .footer-identity > .footer-portrait,
  .site-footer .footer-identity > .footer-certification {
    grid-column: auto;
    grid-row: auto;
    justify-self: center;
  }
  /* L'ancien pied réduisait le portrait à 56 px sous 520 : il garde ses 88. */
  .site-footer .footer-identity > .footer-portrait { width: 88px; height: 88px; }
}

/* ───────────────── Le chevron des sous-menus, au doigt — 29 août 2026

   Mesuré à 26 × 26 px, c'est le plus petit contrôle du site — et il ouvre les
   sous-menus du menu téléphone, donc il est sur les 84 pages. Il tient le
   minimum WCAG 2.2 AA (24 px), mais de deux pixels.

   LE DESSIN NE BOUGE PAS. Le chevron garde son cercle de 1,65 rem ; c'est un
   pseudo-élément qui étale la zone sensible autour de lui. Sans cela, il
   faudrait agrandir le bouton — et pousser les libellés du menu de 18 px.

   `pointer: coarse` vise le doigt, pas la largeur : une tablette se touche
   aussi, un petit portable non. */
@media (pointer: coarse) {
  .submenu-toggle { position: relative; }
  .submenu-toggle::after {
    content: "";
    position: absolute;
    top: 50%; left: 50%;
    width: 44px; height: 44px;
    transform: translate(-50%, -50%);
  }
}

/* ─────────── Le fer à gauche, et pourquoi il n'y a plus d'exception

   Il y avait ici une exception : les cartes d'avis, seules, revenaient au fer
   à gauche parce que leurs 284 px creusaient des trous de 11,5 fois l'espace
   normale.

   La mesure complète du 1er septembre a montré que le cas n'était pas isolé :
   sur les 25 pages, 21 dérapaient à 1440 px et LES 25 à 360 px — 72 % des
   paragraphes du site sur téléphone, avec des pointes à 32,5× dans les grilles
   à quatre colonnes des pages de formation.

   Léon a vu les phrases, blancs surlignés, et a choisi le fer à gauche partout.
   Le justifié est donc retiré de `global.css`, où une seule règle le portait.

   L'exception n'a plus d'objet : tout le monde est au fer à gauche. Elle est
   retirée plutôt que laissée en place — une règle qui ne fait plus rien finit
   par faire croire à celui qui la lit que le reste est justifié. */

/* ─────────── La frontière de registre

   Une même page peut s'adresser à deux publics. L'annuaire et la fiche d'une
   praticienne le font toutes les deux : en haut le particulier qui cherche,
   qu'on vouvoie ; en bas l'architecte qui voudrait y figurer, qu'on tutoie.

   Le changement de fond marque le passage, mais il ne le NOMME pas. Quelqu'un
   qui arrive par un lien direct, ou qui fait défiler vite, lirait « Tu exerces
   déjà » sans savoir que la phrase ne lui est pas adressée — et le tutoiement
   lui paraîtrait alors une familiarité déplacée.

   Cette règle vivait dans la feuille de l'annuaire. Elle sert maintenant deux
   pages : elle passe ici, en un seul endroit, plutôt que d'être recopiée. */
.ann-frontiere {
  position: relative;
  max-width: var(--shell);
  margin: clamp(3rem, 7vw, 5.5rem) auto clamp(1.5rem, 3vw, 2.5rem);
  text-align: center;
}
/* ELLE SIGNALE, ELLE NE CRIE PAS.
   Le libelle etait en gras dore majuscule, sur un filet dore de 2 px : trois
   accents pour une phrase dont le role est de laisser passer. Leon, le
   2 septembre 2026 : « en gris comme les autres textes ». Le trait suit le
   texte — un filet dore sous un texte gris ne serait plus un ensemble, juste
   un reste de l'etat d'avant. */
.ann-frontiere::before {
  content: "";
  position: absolute;
  inset: 50% 0 auto;
  height: 1px;
  background: var(--line);
}
.ann-frontiere span {
  position: relative;
  padding: 0 clamp(.9rem, 3vw, 1.8rem);
  background: var(--paper);
  color: var(--muted);
  font: 600 var(--step--1)/1.3 var(--font-body);
  letter-spacing: .06em;
}
@media (max-width: 650px) {
  /* Sur un téléphone, le libellé dépasse la largeur utile et le filet le coupe.
     Il passe au-dessus du trait plutôt que dedans. */
  .ann-frontiere::before { inset: auto 0 0; }
  .ann-frontiere span { display: block; padding: 0 0 .7rem; background: none; }
}

/* ═══════════════════════════════════════════════════════════════
   LE DÉPLIANT DE LANGUE.

   Il remplace deux codes nus posés dans la barre — « EN » « ES » — qui ne
   disaient jamais dans quelle langue on se trouvait, que rien ne groupait, et
   qui, sans bordure ni fond à côté d'une pastille très dessinee, se lisaient
   comme un reste.

   IL RESSEMBLE AU BOUTON ACADEMY, SANS LUI FAIRE CONCURRENCE : meme forme,
   meme hauteur, mais le trait est celui du texte et non l'or de la marque.
   Changer de langue n'est pas l'action que la page attend de vous.

   Le panneau s'ouvre a DROITE (right:0) et non a gauche comme les autres
   sous-menus : c'est la derniere entree de la barre, et un panneau de 280 px
   ancre a gauche sortirait de l'ecran. */
.lang-picker { position: relative; }

.lang-picker__bouton {
  display: inline-flex;
  align-items: center;
  gap: .28rem;
  width: auto;
  height: auto;
  padding: .55rem .78rem;
  border: 1px solid currentColor;
  border-radius: 13px;
  border-radius: 999px;
  background: transparent;
  font: 600 .82rem/1 var(--font-body, inherit);
  letter-spacing: .12em;
  cursor: pointer;
}
/* SEUL LE CHEVRON PIVOTE, ET CHAQUE MORCEAU PORTE SON NOM.
   global.css fait tourner de 180° TOUS les `span[aria-hidden=true]` d'un
   `.submenu-toggle` ouvert — ce qui convient a un bouton qui ne contient qu'un
   chevron. Le notre en contient deux : le code de langue s'affichait a l'envers,
   « FR » retourne, des qu'on ouvrait le panneau.

   Premiere tentative : annuler pour tous les spans, puis rendre la rotation au
   chevron. Les deux selecteurs pesaient pareil, l'annulation gagnait quand meme,
   et le chevron ne bougeait plus. On nomme donc les deux morceaux : ils ne se
   disputent plus rien, et la regle se lit sans compter les points. */
.lang-picker__code { transform: none !important; }
.lang-picker__chevron { font-size: .9em; line-height: 1; transition: transform .2s ease; }
.lang-picker__bouton[aria-expanded="true"] .lang-picker__chevron { transform: rotate(180deg); }
.lang-picker__bouton:hover { background: rgb(255 255 255 / 16%); }

/* L'ANCRAGE A DROITE, ET POURQUOI IL PORTE UN !important.

   `.submenu` pose `left:-1rem` : les autres sous-menus s'ouvrent sous leur
   entree, vers la droite. Celui-ci est la DERNIERE entree de la barre — un
   panneau ancre a gauche sortait de 158 px hors de l'ecran, mesure a 1440.

   J'ai d'abord qualifie le selecteur — `.lang-picker .submenu.lang-picker__liste`,
   trois classes contre une, et plus loin dans la feuille. En theorie il gagne.
   MESURE AU RENDU : il ne gagne pas, `left` restait a -1rem. Je n'ai pas trouve
   pourquoi, et je le dis plutot que de laisser croire a une elegance qui n'existe
   pas. Le !important porte sur UNE declaration, d'un composant qui n'a pas de
   variante : rien n'aura a le surencherir. */
/* Pas de !important : « .lang-picker .submenu.lang-picker__liste » pèse (0,3,0)
   contre (0,1,0) pour « .submenu{left:-1rem} » — la cascade suffit. Le forçage
   avait été posé le 1er septembre contre ce que je croyais être un problème de
   spécificité ; c'était en réalité le cache de quatre heures du CDN sur une
   feuille sans numéro de version. Retiré le 2 septembre. */
.lang-picker .submenu.lang-picker__liste { left: auto; right: 0; min-width: 190px; }
/* La langue ou l'on se trouve deja n'est pas une destination : elle se montre,
   elle ne s'offre pas. */
.lang-picker__liste a[aria-current="true"] { font-weight: 700; color: var(--terra-text, #a35839); }
.lang-picker__liste a[aria-current="true"]::after { content: " ✓"; }

@media (max-width: 850px) {
  /* Dans le menu replie, le dépliant redevient une simple liste, comme les
     autres sous-menus : pas de panneau flottant sur un ecran de telephone. */
  .lang-picker { width: 100%; }
  /* DANS LE MENU REPLIE, LE BOUTON DOIT TRAVERSER LES DEUX COLONNES.
     `.nav-item` devient une grille « 1fr auto » sur telephone, et
     `.submenu-toggle` est envoye en colonne 2 — c'est ce qu'il faut pour un
     chevron a cote d'un lien, mais notre bouton EST l'entree : il se retrouvait
     ecrase a droite, large de 63 px, le « FR » comprime. Il reprend donc les
     deux colonnes, et ressemble au bouton Academy juste au-dessus. */
  .lang-picker__bouton {
    grid-column: 1 / -1;
    grid-row: auto;
    width: 100%;
    justify-content: space-between;
    padding: .8rem 1rem;
  }
  .lang-picker .submenu.lang-picker__liste { right: auto; left: auto; min-width: 0; }
}

/* La demande d’inscription se pose sous les centres d’intérêt, plus en tête à droite (2026-09-02). */
.newsletter-popup__actions{grid-column:1/-1;display:flex;justify-content:flex-end}

/* LES DEUX PROCHAINES SESSIONS, À TITRE D'INFORMATION. Léon, le 2 septembre 2026 :
   « ce n'est pas des cases, c'est vraiment informatif ». On annonce, on ne fait pas choisir. */
.newsletter-sessions{margin:1.15rem 0 0;padding:.85rem 1rem;border:1px solid rgb(207 178 80 / 45%);border-radius:18px 6px 18px 6px;background:#f8f5f2}
.newsletter-sessions__oeil{margin:0 0 .5rem;color:#505355;font-size:.72rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase}
.newsletter-sessions ul{display:grid;gap:.32rem;margin:0;padding:0;list-style:none}
.newsletter-sessions li{color:#505355;font-size:.95rem;line-height:1.35}
.newsletter-sessions strong{font-weight:700}
.newsletter-sessions b{font-weight:600;color:#a35839}

/* LE BOUTON DE SON, EN BAS À DROITE. La règle générale « .historical-intro button »
   pose tous les boutons de l'intro en haut à droite, là où vit « Passer » : on la
   défait explicitement ici plutôt que de compter sur l'ordre des feuilles.
   44 px : la cible tactile minimale. */
.historical-intro [data-intro-son]{position:absolute;z-index:3;top:auto;left:auto;right:clamp(1rem,3vw,2.5rem);bottom:clamp(1rem,3vw,2.5rem);display:grid;place-items:center;width:44px;height:44px;padding:0;border:1px solid rgb(255 255 255 / 70%);border-radius:50%;background:rgb(0 0 0 / 28%);color:#fff;cursor:pointer;opacity:0;pointer-events:none;transition:opacity .35s ease,background .2s ease}
.historical-intro video.is-playing ~ [data-intro-son]{opacity:1;pointer-events:auto}
.historical-intro [data-intro-son]:is(:hover,:focus-visible){background:rgb(0 0 0 / 65%)}
.historical-intro [data-intro-son] svg{display:block}
.historical-intro [data-intro-son] svg[hidden]{display:none}
