/* ---- app.css ---- */
@font-face{
 font-family:'General Sans';
 src:url(/assets/GeneralSans-Variable.woff2) format('woff2-variations'),
 url(/assets/GeneralSans-Variable.woff2) format('woff2');
 font-weight:200 700;font-style:normal;font-display:swap
}
:root{
 --ink:#0B0A0C;
 --paper:#FFFFFF;
 --muted:#4A4640;
 --line:rgba(11,10,12,.12);
 --reveal-off:#CFCBC5;
 --accent:#6C3CAA;
 --accent-deep:#4D267D;
 --fw-display:652;
 --fw-title:600;
 --fw-emph:456;
 --fw-body:456;
 --lh-display:1.02;
 --tracking:-.01em;
 --t-fast:150ms;
 --t-normal:320ms;
 --t-slow:520ms;
 --ease-smooth:cubic-bezier(.16,1,.3,1);
 --ease-sharp:cubic-bezier(.4,0,.2,1);
 --t-push:1400ms;
 --d-contact:180ms;
 --ease-push:cubic-bezier(.16,.85,.2,1);
 --nav-h:92px;
 --wrap:1200px;
}
*,*::before,*::after{box-sizing:border-box}
/* Barre d'offre + en-tete fixes : un element cible ou focalise ne doit jamais passer dessous. */
html{-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--nav-h) + var(--promo-h, 0px) + 16px)}
body{
 margin:0;
 overflow-x:clip;
 background:var(--paper);
 color:var(--ink);
 font-family:'General Sans',-apple-system,BlinkMacSystemFont,sans-serif;
 font-weight:var(--fw-body);
 font-optical-sizing:auto;
 -webkit-font-smoothing:antialiased;
 line-height:1.5
}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
.header{
 position:fixed;
 inset:0 0 auto;
 height:var(--nav-h);
 display:flex;
 align-items:center;
 gap:2rem;
 padding:0 clamp(1.5rem,4.5vw,3rem);
 z-index:20;
 border-bottom:1px solid rgba(25,18,31,.07);
 background:rgba(255,255,255,.88);
 box-shadow:0 8px 28px rgba(31,18,43,.045);
 -webkit-backdrop-filter:saturate(140%) blur(16px);
 backdrop-filter:saturate(140%) blur(16px)
}
.header__brand{
 transition:color 150ms ease-out;
 display:flex;
 align-items:center;
 gap:.55rem;
 font-weight:var(--fw-title);
 letter-spacing:var(--tracking);
 text-decoration:none;
 font-size:1.14rem
}
.header__brand img{width:32px;height:32px}
.header__nav{
 margin-left:auto;
 display:flex;
 align-items:center;
 gap:clamp(1.3rem,2.8vw,2.4rem)
}
.header__nav a{
 position:relative;
 font-size:1.02rem;
 font-weight:var(--fw-title);
 text-decoration:none;
 color:var(--ink);
 opacity:.78;
 padding-bottom:3px;
 transition:opacity 180ms ease-out,color 180ms ease-out
}
.header__nav a::after{
 content:"";
 position:absolute;
 left:0;right:0;bottom:0;
 height:2px;
 background:var(--accent);
 border-radius:2px;
 transform:scaleX(0);
 transform-origin:left center;
 transition:transform 220ms cubic-bezier(.16,1,.3,1)
}
.header__nav a:hover{opacity:1;color:var(--accent)}
.header__nav a:hover::after,
.header__nav a:focus-visible::after{transform:scaleX(1)}
.header__nav a:focus-visible,.header__brand:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:2px}
.hero{
 min-height:100dvh;
 display:grid;
 place-items:center;
 padding:calc(var(--nav-h) + clamp(2rem,6vw,4rem)) clamp(1.25rem,5vw,3rem) clamp(3rem,8vw,6rem);
 text-align:center
}
.hero__inner{max-width:min(1040px,92vw)}
.hero h1{
 margin:0;
 font-size:clamp(2.4rem,6.2vw,5rem);
 font-weight:var(--fw-display);
 line-height:var(--lh-display);
 letter-spacing:var(--tracking);
 text-wrap:balance
}
.hero p{
 margin:clamp(1.4rem,2.6vw,2rem) auto 0;
 max-width:52ch;
 font-size:clamp(1.02rem,1.4vw,1.2rem);
 font-weight:var(--fw-emph);
 line-height:1.6;
 color:var(--muted);
 text-wrap:balance
}
.ram{position:relative;display:inline-block;margin-right:.22em}
.ram__txt{visibility:hidden}
.ram__tentacle,.ram__word{
 position:absolute;
 bottom:-1.172em;
 max-width:none;
 height:auto;
 pointer-events:none
}
.ram__tentacle{right:2.23em;width:8.70em}
.ram__word{right:0;width:2.94em;z-index:-1}
@media (min-width:901px){
 .ram{width:2.71em}
 .ram__tentacle,.ram__word{
 animation:convoy calc(var(--t-push) - var(--d-contact))
 var(--ease-push) var(--d-contact) both
 }
 .ram__tentacle{
 animation:convoy calc(var(--t-push) - var(--d-contact))
 var(--ease-push) var(--d-contact) both,
 catchup var(--d-contact) linear both
 }
}
@keyframes convoy{
 from{translate:-5.2em 0}
 to{translate:0 0}
}
@keyframes catchup{
 from{transform:translateX(-2.1em)}
 to{transform:translateX(0)}
}
@media (max-width:900px){
 .ram__tentacle,.ram__word{display:none}
 .ram__txt{visibility:visible;color:var(--accent)}
}
@media (prefers-reduced-motion:reduce){
 .ram__tentacle,.ram__word{animation:none;translate:0 0;transform:none}
}
.hero__actions{
 margin-top:clamp(2rem,3.6vw,2.8rem);
 display:flex;
 flex-wrap:wrap;
 gap:.75rem;
 justify-content:center
}
.btn{
 display:inline-flex;
 align-items:center;
 justify-content:center;
 min-height:48px;
 padding:0 1.5rem;
 border-radius:999px;
 font-size:.97rem;
 font-weight:var(--fw-title);
 letter-spacing:var(--tracking);
 text-decoration:none;
 border:1px solid var(--ink);
 transition:transform 150ms ease-out,background-color 150ms ease-out,color 150ms ease-out,border-color 150ms ease-out
}
.btn--primary{background:var(--accent);color:var(--paper);border-color:var(--accent)}
.btn--primary:hover{background:var(--paper);color:var(--accent);border-color:var(--accent)}
.btn--ghost{background:transparent;color:var(--ink);border-color:var(--line)}
.btn--ghost:hover{background:transparent;color:var(--accent);border-color:var(--accent)}
.btn:active{transform:translateY(1px)}
.btn:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
@media (prefers-reduced-motion:reduce){
 .btn,.header__nav a,.header__nav a::after{transition:none}
 .btn:active{transform:none}
}
.hero h1 em{font-style:normal;color:var(--accent);position:relative}
.hero h1 em::before{
 content:"";
 position:absolute;
 right:calc(100% - .18em);
 top:50%;
 width:6.2em;
 aspect-ratio:911 / 470;
 translate:0 -50%;
 background:url(/assets/hero-tentacule.webp) right center / contain no-repeat;
 pointer-events:none;
 z-index:-1
}
@media (max-width:900px){
 .hero h1 em::before{width:5em;right:calc(100% - .12em)}
}
@media (max-width:560px){
 .hero h1 em::before{display:none}
}
.founder{
 padding:clamp(5rem,11vw,10rem) clamp(1.25rem,5vw,3rem);
 text-align:center
}
.founder__inner{max-width:1000px;margin:0 auto}
.founder__quote{margin:0;padding:0;scroll-margin-top:calc(var(--header-h, 82px) + 2rem)}
.founder__quote p{max-width:31ch}
.founder__brand{color:var(--accent);white-space:nowrap;text-decoration:none;text-decoration-thickness:.08em;text-underline-offset:.12em}
.founder__agency{white-space:nowrap}
.founder__brand:hover{text-decoration-color:currentColor}
.founder__brand:focus-visible{outline:2px solid var(--accent);outline-offset:.14em;border-radius:.08em}
.founder__word{display:inline-block;white-space:nowrap}
@media (prefers-reduced-motion:no-preference){
 .has-founder-reveal .founder__letter{display:inline-block;color:var(--ink);opacity:.11;transform:translateY(.045em);will-change:opacity,transform}
 .has-founder-reveal .founder__brand .founder__letter{color:var(--accent)}
}
.founder__quote p{
 margin:0 auto;
 font-size:clamp(1.55rem,3.25vw,2.8rem);
 font-weight:var(--fw-display);
 line-height:var(--lh-display);
 letter-spacing:var(--tracking);
 text-wrap:balance
}
.founder__avatar{
 width:72px;height:72px;
 margin:clamp(2.2rem,4vw,3rem) auto 0;
 border-radius:50%;
 object-fit:cover
}
.founder__name{
 margin:1.1rem 0 0;
 font-size:1rem;
 font-weight:var(--fw-title);
 letter-spacing:var(--tracking)
}
.founder__role{
 margin:.3rem 0 0;
 font-size:.94rem;
 font-weight:var(--fw-emph);
 color:var(--muted)
}
.founder__role a{color:var(--accent);text-decoration:none}
.founder__role a:hover{text-decoration:underline}
.founder__role a:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}
a:hover{color:var(--accent)}
.header__brand:hover{color:var(--accent)}
@media (max-width:767px){
 :root{--nav-h:74px}
 .header{gap:1rem}
 .header__brand{white-space:nowrap;font-size:1.05rem}
 .header__brand img{width:28px;height:28px}
 .header__nav{gap:1.1rem}
 .header__nav a:not([href$="contact.html"]){display:none}
 .hero{padding-top:calc(var(--nav-h) + 2rem);min-height:auto;padding-bottom:4rem}
 .hero h1{font-size:clamp(2.1rem,8.4vw,2.9rem)}
 .hero p{font-size:1.02rem}
 .hero__actions{flex-direction:column;align-items:stretch;gap:.65rem}
 .hero__actions .btn{width:100%}
 .founder{padding-top:4.5rem;padding-bottom:5rem}
 .founder__quote p{font-size:clamp(1.25rem,5.5vw,1.6rem)}
 .founder__avatar{width:64px;height:64px}
}
.btn,
.booking__external,
.service-card__primary,
.service-card__actions>a,
.service-card__back,
.service-card__services a,
.service-offer-row>a,
.price-card__cta,
.octo__action,
.octo__nudge button,
.octo__teaser-open,
.menu__foot .btn{
 text-align:center;
 line-height:1.15;
 text-wrap:balance;
 overflow-wrap:break-word;
 -webkit-tap-highlight-color:transparent
}
.btn,
.booking__external,
.service-card__primary,
.service-card__actions>a,
.price-card__cta,
.octo__action,
.menu__foot .btn{
 align-items:center;
 justify-content:center
}
@media (max-width:767px){
 .btn,
 .booking__external,
 .service-card__primary,
 .service-card__actions>a,
 .price-card__cta,
 .octo__action,
 .menu__foot .btn{
 width:100%;
 min-height:48px;
 padding-inline:1rem
 }
}
@media (hover:none){
 .header__nav a:hover::after{transform:scaleX(0)}
 .header__nav a:hover{color:var(--ink)}
}
.hero .hero__trust{
 margin:clamp(1.6rem,2.6vw,2.2rem) auto 0;
 font-size:.9rem;
 font-weight:var(--fw-emph);
 line-height:1.5;
 color:var(--muted)
}
@media (max-width:767px){
 .hero .hero__trust{margin-top:1.4rem;font-size:.85rem}
}
:root{
 --accent-soft:color-mix(in srgb,var(--accent) 11%,#fff);
 --accent-hairline:color-mix(in srgb,var(--accent) 20%,transparent);
 --surface:#fff;
 --surface-soft:#fbf9ff;
 --shadow-soft:0 20px 58px rgba(34,18,58,.07);
 --shadow-lift:0 28px 74px rgba(44,20,75,.12);
}
:focus-visible{
 outline:2px solid var(--accent);
 outline-offset:3px;
}
.header{
 height:calc(var(--nav-h) - 10px);
 margin:calc(10px + var(--promo-h, 0px)) clamp(.7rem,2vw,1.25rem) 0;
 inset:0 0 auto;
 border:1px solid rgba(108,60,170,.2);
 border-radius:999px;
 background:rgba(255,255,255,.9);
 box-shadow:0 10px 34px rgba(31,18,43,.065);
}
.header__brand img{filter:drop-shadow(0 1px 3px rgba(11,10,12,.12))}
.header__nav a{opacity:.82}
.header__nav a[aria-current="page"]{color:var(--accent);opacity:1}
.header__nav a[aria-current="page"]::after{transform:scaleX(1)}
.btn,
.booking__external,
.service-card__primary,
.service-card__actions>a,
.article-cta .btn,
.menu__foot .btn{
 min-height:48px;
 border-radius:999px;
 font-weight:700;
 transition:
 transform 420ms cubic-bezier(.32,.72,0,1),
 box-shadow 420ms cubic-bezier(.32,.72,0,1),
 background-color 260ms cubic-bezier(.32,.72,0,1),
 border-color 260ms cubic-bezier(.32,.72,0,1),
 color 260ms cubic-bezier(.32,.72,0,1);
}
.btn--primary,
.article-cta .btn,
.service-card__actions .service-card__primary{
 border-color:var(--accent);
 background:linear-gradient(135deg,var(--accent) 0%,var(--accent-deep) 100%);
 color:#fff;
 box-shadow:0 14px 32px rgba(77,38,125,.18);
}
.btn--primary:hover,
.btn--primary:focus-visible,
.article-cta .btn:hover,
.article-cta .btn:focus-visible,
.service-card__actions .service-card__primary:hover,
.service-card__actions .service-card__primary:focus-visible{
 border-color:var(--accent-deep);
 background:linear-gradient(135deg,var(--accent-deep) 0%,#341456 100%);
 color:#fff;
 transform:translateY(-2px);
 box-shadow:0 20px 44px rgba(77,38,125,.24);
}
.btn--ghost{
 border-color:rgba(11,10,12,.13);
 background:#fff;
 color:var(--ink);
 box-shadow:inset 0 1px 0 rgba(255,255,255,.7);
}
.btn--ghost:hover,
.btn--ghost:focus-visible{
 border-color:var(--accent-hairline);
 background:var(--accent-soft);
 color:var(--accent-deep);
 transform:translateY(-2px);
}
.btn:active,
.booking__external:active,
.service-card__actions>a:active{transform:scale(.985)}
.service-card__actions .service-card__example{
  min-height:44px;
  padding-inline:0;
  border:0;
  background:transparent;
  color:var(--accent-deep);
  text-decoration:underline;
  text-underline-offset:4px;
  box-shadow:none;
}
.service-card__actions .service-card__example:hover,
.service-card__actions .service-card__example:focus-visible{color:var(--accent);background:transparent}
.site-footer{position:relative;padding:clamp(3.5rem,7vw,6rem) clamp(1.25rem,5vw,3rem) 1.4rem;border:none!important;border-top:none!important;background:#ffffff}
.site-footer::before,.site-footer::after{display:none!important;content:none!important;height:0!important;border:none!important}
.site-footer__inner{display:grid;grid-template-columns:1.6fr .7fr .9fr;gap:clamp(2rem,6vw,6rem);max-width:var(--wrap);margin:auto}
.site-footer__brand{display:inline-flex;align-items:center;gap:.65rem;font-size:1.2rem;font-weight:650;text-decoration:none}
.site-footer__brand img{width:32px;height:32px;filter:drop-shadow(0 1px 3px rgba(11,10,12,.12))}
.site-footer p{max-width:34ch;margin:1rem 0 0;color:var(--muted);line-height:1.55}
.site-footer h2{margin:0 0 1rem;font-size:.86rem;letter-spacing:.04em;text-transform:uppercase;color:var(--ink)}
.site-footer nav,.site-footer__inner>div:last-child{display:flex;flex-direction:column;align-items:flex-start;gap:.55rem}
.site-footer a{color:var(--ink);text-decoration-color:#cbbbe8;text-underline-offset:3px;transition:color 180ms var(--ease-smooth),text-decoration-color 180ms var(--ease-smooth)}
.site-footer a:hover{color:var(--accent-deep);text-decoration-color:currentColor}
.site-footer__legal{display:flex;max-width:var(--wrap);margin:clamp(3rem,6vw,5rem) auto 0;padding-top:1.2rem;border-top:1px solid var(--line);gap:.8rem 1.4rem;flex-wrap:wrap;color:var(--muted);font-size:.78rem;line-height:1.45;align-items:center}
.site-footer__legal a{padding:.35rem 0}
.site-footer__legal a:first-of-type{margin-left:auto}
@media(max-width:800px){.site-footer__inner{grid-template-columns:1fr 1fr}.site-footer__inner>div:first-child{grid-column:1/-1}.site-footer__legal a:first-of-type{margin-left:0}.site-footer nav a,.site-footer__inner>div:last-child a{padding:.4rem 0}}
@media(max-width:560px){.site-footer__inner{grid-template-columns:1fr}.site-footer__inner>div:first-child{grid-column:auto}.site-footer__legal{display:grid;grid-template-columns:1fr;gap:.55rem}}
input,
textarea,
button,
select{font:inherit}
input,
textarea{
 transition:
 border-color 220ms var(--ease-smooth),
 box-shadow 220ms var(--ease-smooth),
 background-color 220ms var(--ease-smooth);
}
@media (max-width:767px){
 .header{
 height:calc(var(--nav-h) - 12px);
 margin:calc(8px + var(--promo-h, 0px)) .75rem 0;
 padding-inline:1rem;
 }
 .hero{padding-top:calc(var(--nav-h) + var(--promo-h, 0px) + 2.35rem)}
 .site-footer__legal{
 display:grid;
 grid-template-columns:1fr;
 gap:.55rem;
 }
}
.hero{padding-top:calc(var(--nav-h) + var(--promo-h, 0px) + clamp(2rem,6vw,4rem))}
/* Place de la barre d'offre réservée dès le premier rendu (44 px + 4) : sans ça,
   la barre injectée par js/menu.js poussait toute la page (CLS). menu.js remet 0
   si le visiteur l'a fermée. */
:root{--promo-h:48px;--promo-vis:48px}
.promo-bar{
 position:fixed;
 top:5px;
 left:0;
 right:0;
 z-index:45;
 min-height:44px;
 display:flex;
 align-items:center;
 justify-content:center;
 gap:.55rem .85rem;
 padding:.1rem 3rem .1rem 1rem;
 background:var(--ink);
 color:#FFFFFF;
 font-size:clamp(.75rem,1.02vw,.87rem);
 font-weight:600;
 line-height:1.26;
 text-align:center;
 flex-wrap:wrap
}
.promo-bar__link{color:#FFFFFF;text-decoration:none;display:inline-flex;align-items:center}
.promo-bar__link:hover .promo-bar__text{text-decoration:underline;text-underline-offset:3px}
.promo-bar__text{color:#FFFFFF}
.promo-bar__text strong{font-weight:780;color:#FFFFFF}
.promo-bar :focus-visible{outline:2px solid #fff;outline-offset:2px}
.promo-bar__close{
 position:absolute;
 right:.45rem;
 top:50%;
 transform:translateY(-50%);
 width:44px;
 height:44px;
 border:0;
 border-radius:50%;
 background:transparent;
 color:#FFFFFF;
 font-size:1.45rem;
 line-height:1;
 cursor:pointer;
 display:grid;
 place-items:center;
 transition:background 180ms ease,color 180ms ease
}
.promo-bar__close:hover{background:rgba(255,255,255,.18);color:#FFFFFF}
.promo-bar__short{display:none}
.price-promo-line{display:inline-flex;flex-wrap:wrap;align-items:baseline;gap:.35rem}
.price-old{color:#DC2626!important;font-size:1.06rem;font-weight:750;text-decoration:line-through!important;text-decoration-color:#EF4444!important;text-decoration-thickness:2.4px!important;opacity:1;background:rgba(239,68,68,0.09);padding:.12rem .44rem;border-radius:6px;margin-right:.3rem;display:inline-block;white-space:nowrap}
.promo-pill{display:inline-flex;align-items:center;padding:.18rem .52rem;border-radius:999px;font-size:.68rem;font-style:normal;font-weight:750;font-variant-numeric:tabular-nums;letter-spacing:.03em;line-height:1.2;white-space:nowrap}
.promo-pill--25{background:#FFE4E6;color:#BE123C;border:1px solid rgba(225,29,72,.35);font-weight:800}
.promo-pill--expired{background:rgba(11,10,12,.08);color:var(--muted);border:1px solid rgba(11,10,12,.12)}
.promo-pill--free{background:color-mix(in srgb,var(--accent) 14%,#fff);color:var(--accent-deep);border:1px solid color-mix(in srgb,var(--accent) 32%,transparent)}
/* Mobile : la barre est posée en haut du document (position absolue : elle
   défile avec la page, plus de bandeau collé), sur une seule ligne. Sa place
   reste réservée par --promo-h. L'en-tête fixe se cale sous la partie encore visible
   (--promo-vis, mise à jour au défilement par js/menu.js). */
@media (max-width:767px){
 .promo-bar{position:absolute;top:0;left:0;right:0;flex-wrap:nowrap;gap:0;padding:0 2.9rem 0 .75rem;font-size:.78rem;white-space:nowrap}
 .promo-bar__link{min-width:0;max-width:100%}
 .promo-bar__text{display:block;overflow:hidden;text-overflow:ellipsis}
 .promo-bar__long{display:none}
 .promo-bar__short{display:inline}
 .header{margin-top:calc(8px + var(--promo-vis,0px))}
}
@media (prefers-reduced-motion:reduce){
 .btn,
 .booking__external,
 .service-card__primary,
 .service-card__actions>a,
 .article-cta .btn,
 .menu__foot .btn,
 .site-footer a,
 input,
 textarea{transition:none!important}
}
.scroll-progress{
 position:fixed;
 z-index:60;
 top:0;
 left:0;
 width:100%;
 height:5px;
 pointer-events:none;
 background:rgba(11,10,12,.06);
}
.scroll-progress__bar{
 display:block;
 width:100%;
 height:100%;
 background:var(--accent);
 transform:scaleX(var(--scroll-progress,0));
 transform-origin:left center;
 transition:transform 120ms linear;
}
@media (prefers-reduced-motion:reduce){
 .scroll-progress__bar{transition:none}
}
/* Lien d'evitement (injecte par js/menu.js) : hors ecran tant qu'il n'a pas le focus. */
.skip-link{
 position:fixed;
 z-index:100;
 top:.75rem;
 left:.75rem;
 padding:.7rem 1.1rem;
 border-radius:10px;
 background:var(--ink);
 color:#fff;
 font-weight:var(--fw-title);
 text-decoration:none;
 transform:translateY(-200%)
}
.skip-link:focus,.skip-link:focus-visible{transform:none;outline:2px solid var(--accent);outline-offset:2px}
.skip-link:hover{color:#fff}
main[tabindex="-1"]:focus{outline:none}
/* Utilitaire lecteurs d'ecran : doit etre bloquant (au-dessus de la ligne de
   flottaison, ex. le mot "ramener" du hero). audit.css est charge en differe :
   sans cette regle ici, le texte masque s'affichait en clair au chargement. */
.sr-only{
 position:absolute;width:1px;height:1px;padding:0;margin:-1px;
 overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0
}

/* Note Google (4,8 réelle, sans nombre d'avis) */
.rating{
 display:inline-flex;
 align-items:center;
 gap:.55rem;
 margin-top:clamp(1.6rem,2.6vw,2.2rem);
 text-decoration:none;
 color:var(--ink);
 transition:transform 150ms ease-out
}
.rating:hover{transform:translateY(-1px)}
.rating:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.rating__g{width:17px;height:17px;flex:none}
.stars{position:relative;display:block;width:90px;height:18px;flex:none}
.stars svg{width:90px;height:18px;display:block}
.stars__empty{fill:rgba(11,10,12,.18)}
.stars__fill{
 position:absolute;
 inset:0;
 overflow:hidden;
 width:var(--score,100%);
 fill:#F5A623
}
.stars__fill svg{position:absolute;inset:0}
.rating__score{font-weight:var(--fw-title);font-size:.95rem;letter-spacing:var(--tracking)}
.rating__count{font-weight:var(--fw-emph);font-size:.9rem;color:var(--muted)}
.rating:hover .rating__count{color:var(--accent)}
@media (max-width:767px){
 .rating{margin-top:1.4rem;gap:.45rem}
 .rating__count{font-size:.85rem}
 .stars,.stars svg{width:78px;height:16px}
}
@media (prefers-reduced-motion:reduce){
 .rating{transition:none}
 .rating:hover{transform:none}
}
/* Widget pieuvre : ne masque plus le texte sur mobile */
@media (max-width:600px){
 html .octo-float{right:max(10px,env(safe-area-inset-right,0px));bottom:calc(10px + env(safe-area-inset-bottom,0px))}
 html .octo-float,html .octo-float img{width:48px;height:48px}
 html .octo__teaser{right:12px;bottom:calc(68px + env(safe-area-inset-bottom,0px))}
 .site-footer{padding-bottom:calc(72px + env(safe-area-inset-bottom,0px))}
}
h1,h2,h3{text-wrap:balance}

/* ---- Cibles tactiles mobile (44 px) et pied de page, toutes pages ---- */
@media (max-width:767px){
 .promo-bar__link{min-height:44px}
 .header__brand{min-height:44px;display:inline-flex;align-items:center}
 .menu__nav a,.menu__foot a{min-height:44px;display:flex;align-items:center}
 .site-footer nav a,.site-footer__inner>div:last-child a,.site-footer__legal a,.site-footer .consent-manage,.site-footer__brand{min-height:44px;display:inline-flex;align-items:center}
 .site-footer nav,.site-footer__inner>div:last-child{gap:.2rem}
 .site-footer__legal{gap:0}
}

/* Titres : coupe equilibree ; mots longs (kinesitherapeute...) coupes proprement sur petit ecran. */
h1:not(.hero__title){text-wrap:balance;overflow-wrap:anywhere}
@media(max-width:520px){h1:not(.hero__title){hyphens:auto;-webkit-hyphens:auto}}

/* ---- menu.css ---- */
.burger{
 display:none;
 margin-left:auto;
 width:44px;height:44px;
 padding:0;
 border:0;
 background:transparent;
 color:var(--ink);
 cursor:pointer;
 -webkit-tap-highlight-color:transparent
}
.burger__box{
 display:grid;
 place-content:center;
 gap:6px;
 width:100%;height:100%
}
.burger__bar{
 display:block;
 width:22px;height:2px;
 border-radius:2px;
 background:currentColor;
 transition:transform 320ms cubic-bezier(.16,1,.3,1),
 opacity 160ms ease-out,
 background-color 160ms ease-out
}
.burger[aria-expanded="true"]{color:var(--accent)}
.burger[aria-expanded="true"] .burger__bar:first-child{transform:translateY(4px) rotate(45deg)}
.burger[aria-expanded="true"] .burger__bar:last-child{transform:translateY(-4px) rotate(-45deg)}
.burger:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:8px}
.menu{
 position:fixed;
 inset:0;
 width:100%;max-width:none;
 height:100dvh;max-height:none;
 margin:0;
 padding:1rem clamp(1.25rem,6vw,2.5rem) 2.5rem;
 border:0;
 background:var(--paper);
 color:var(--ink);
 overflow:auto;
 flex-direction:column;
 justify-content:space-between;
 opacity:0;
 translate:0 -8px;
 transition:opacity 240ms ease-out,
 translate 320ms cubic-bezier(.16,1,.3,1),
 overlay 320ms allow-discrete,
 display 320ms allow-discrete
}
.menu:popover-open{display:flex;opacity:1;translate:0 0}
@starting-style{
 .menu:popover-open{opacity:0;translate:0 -8px}
}
.menu::backdrop{background:rgba(11,10,12,.28)}
.menu__nav{display:flex;flex-direction:column;gap:.35rem;margin-top:auto;margin-bottom:auto}
.menu__nav a{
 font-size:clamp(2rem,9vw,2.9rem);
 font-weight:var(--fw-display);
 line-height:1.08;
 letter-spacing:var(--tracking);
 text-decoration:none;
 color:var(--ink);
 padding:.28em 0;
 opacity:0;
 translate:0 14px;
 transition:opacity 260ms ease-out,translate 380ms cubic-bezier(.16,1,.3,1),color 150ms ease-out
}
.menu:popover-open .menu__nav a,
.menu:popover-open .menu__foot{
 opacity:1;
 translate:0 0;
 transition-delay:calc(60ms + var(--i,0) * 45ms)
}
.menu__nav a:active{color:var(--accent)}
.menu__nav a:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:4px}
.menu__foot{
 display:flex;
 flex-direction:column;
 align-items:stretch;
 gap:1rem;
 padding-top:1.5rem;
 border-top:1px solid var(--line);
 opacity:0;
 translate:0 14px;
 transition:opacity 260ms ease-out,translate 380ms cubic-bezier(.16,1,.3,1)
}
.menu__mail{
 text-align:center;
 font-size:.95rem;
 font-weight:var(--fw-emph);
 color:var(--muted);
 text-decoration:none
}
body:has(.menu:popover-open){overflow:hidden}
@media (max-width:767px){
 .burger{display:block}
 .header__nav{display:none}
}
@media (min-width:768px){
 .menu,.menu:popover-open{display:none}
}
@media (prefers-reduced-motion:reduce){
 .burger__bar,.menu,.menu__nav a,.menu__foot{transition-duration:1ms}
 .menu,.menu__nav a,.menu__foot{translate:none}
}
.menu--fallback{display:none}
.menu--fallback.is-open{display:flex;opacity:1;translate:0 0;z-index:100}
.menu--fallback.is-open .menu__nav a,
.menu--fallback.is-open .menu__foot{opacity:1;translate:0 0}
.menu__top{
 display:flex;
 align-items:center;
 justify-content:space-between;
 min-height:44px
}
.menu__brand{
 display:flex;
 align-items:center;
 gap:.55rem;
 font-size:.98rem;
 font-weight:var(--fw-title);
 letter-spacing:var(--tracking);
 white-space:nowrap
}
.menu__brand img{width:24px;height:24px}
.burger--close{display:block;margin:0;color:var(--accent)}
.burger--close .burger__bar:first-child{transform:translateY(4px) rotate(45deg)}
.burger--close .burger__bar:last-child{transform:translateY(-4px) rotate(-45deg)}

/* ---- octomask.css ---- */
.octo-float{
 position:fixed;right:clamp(1rem,3vw,2rem);bottom:clamp(1rem,3vw,2rem);z-index:30;
 display:grid;place-items:center;width:72px;height:72px;border-radius:50%;
 background:transparent;text-decoration:none;filter:drop-shadow(0 10px 18px rgba(11,10,12,.2));
 transition:transform var(--t-normal) var(--ease-smooth),filter var(--t-normal) var(--ease-smooth)
}
.octo-float:hover,.octo-float:focus-visible{transform:translateY(-4px) scale(1.04);filter:drop-shadow(0 14px 24px rgba(11,10,12,.24))}
.octo-float:focus-visible{outline:2px solid var(--accent);outline-offset:5px}
.octo-float img{width:72px;height:72px;object-fit:contain}
@media (max-width:600px){
 .octo-float{right:12px;bottom:calc(12px + env(safe-area-inset-bottom,0px))}
 .octo-float,.octo-float img{width:56px;height:56px}
}
body.octo-near-footer .octo-float,
body.octo-near-footer .octo__teaser{opacity:0;pointer-events:none;transition:opacity var(--t-normal) var(--ease-smooth)}
@media (prefers-reduced-motion:reduce){.octo-float{transition:none}}
button.octo-float{border:0;padding:0;cursor:pointer}
html:has(.octo[open]){overflow:hidden}

/* Fenetre de conversation. Sur ordinateur : panneau flottant. Sur telephone :
   plein ecran, chaque pixel vertical va d'abord au fil de la conversation. */
.octo{
 --octo-violet:#6c04f1;--octo-violet-deep:#5103b4;--octo-muted:#61556e;--octo-line:#eee8f5;--octo-soft:#faf7ff;
 position:fixed;inset:auto 24px 24px auto;margin:0;width:min(450px,calc(100vw - 32px));height:min(730px,calc(100dvh - 48px));
 max-height:none;max-width:none;padding:0;border:2px solid var(--accent,#6c3caa);border-radius:24px;background:#fff;color:var(--ink);
 box-shadow:0 24px 90px #21103830,0 0 0 4px rgba(108,60,170,.08);font:16px/1.5 'General Sans',sans-serif;overflow:hidden
}
.octo[open]{display:flex;flex-direction:column}
.octo::backdrop{background:#170b2426}
.octo button{-webkit-tap-highlight-color:transparent}

.octo__head{display:flex;align-items:center;gap:10px;padding:14px 10px 14px 16px;border-bottom:1px solid var(--octo-line);flex:none;background:var(--octo-soft)}
.octo__head img{flex:none;width:44px;height:44px}
.octo__id{min-width:0;flex:1}
.octo__head h2{font-size:19px;line-height:1.15;margin:0;letter-spacing:-.02em}
.octo__head p{font-size:12px;line-height:1.35;color:var(--octo-muted);margin:2px 0 0}
.octo__progress{display:flex;align-items:center;gap:7px;margin-top:5px;font-size:11px;line-height:1.2;color:var(--octo-violet)}
.octo__steps{display:flex;gap:3px;flex:none}
.octo__steps i{width:14px;height:4px;border-radius:2px;background:#e3d5f2}
.octo__steps i:first-child,
.octo__progress[data-step="2"] .octo__steps i:nth-child(2),
.octo__progress[data-step="3"] .octo__steps i{background:var(--octo-violet)}
.octo__progress-text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.octo__icon{display:grid;place-items:center;flex:none;width:44px;height:44px;padding:0;border:0;border-radius:12px;background:none;color:var(--ink);cursor:pointer}
.octo__icon:hover{background:#efe8f8}
.octo__icon svg{width:20px;height:20px}
.octo__close{font-size:28px;line-height:1}

/* Zone qui defile : messages, cartes et suggestions avancent ensemble. */
.octo__body:focus{outline:none}
.octo__body{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:16px 16px 6px;scrollbar-width:thin;-webkit-overflow-scrolling:touch}
.octo__message{max-width:92%;width:fit-content;padding:11px 14px;margin:0 0 10px;border-radius:18px;font-size:14px;line-height:1.55;white-space:pre-wrap;overflow-wrap:anywhere}
.octo__message--assistant{background:#f5f2f8;border-bottom-left-radius:5px}
.octo__message--user{margin-left:auto;background:var(--octo-violet);color:#fff;border-bottom-right-radius:5px}
.octo__message--user+.octo__message--assistant,.octo__message--assistant+.octo__message--user{margin-top:14px}
.octo__typing{display:flex;gap:4px;width:fit-content;margin:4px 0 10px;padding:13px 15px;border-radius:18px;border-bottom-left-radius:5px;background:#f5f2f8}
.octo__typing[hidden]{display:none}
.octo__typing i{width:7px;height:7px;border-radius:50%;background:#9b86b6;animation:octo-dot 1.1s ease-in-out infinite}
.octo__typing i:nth-child(2){animation-delay:.15s}
.octo__typing i:nth-child(3){animation-delay:.3s}
@keyframes octo-dot{0%,60%,100%{transform:none;opacity:.45}30%{transform:translateY(-3px);opacity:1}}
.octo__suggestions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px;margin:2px 0 8px}
.octo__suggestions:empty{display:none}
.octo__suggestions button{font:inherit;font-size:13px;line-height:1.3;text-align:left;border:1px solid #d9c9ee;border-radius:18px;background:#fff;color:var(--octo-violet-deep);padding:8px 13px;cursor:pointer;min-height:38px}
.octo__suggestions button:hover{background:var(--octo-soft);border-color:var(--octo-violet)}

.octo__status{margin:0 16px 6px;font-size:12px;line-height:1.4;color:var(--octo-muted);flex:none}
/* Vide : sans hauteur mais toujours present, pour que l'annonce soit lue. */
.octo__status:empty{margin:0}
.octo__form{display:flex;align-items:flex-end;gap:8px;margin:6px 14px 0;border:1px solid #d8cce6;border-radius:22px;padding:5px 5px 5px 8px;background:#fff;flex:none}
.octo__form:focus-within{border-color:var(--octo-violet);box-shadow:0 0 0 3px rgba(108,4,241,.14)}
.octo textarea{display:block;border:0;resize:none;min-width:0;flex:1;max-height:132px;padding:8px 6px;font:inherit;font-size:16px;line-height:1.4;outline:none;background:transparent;color:#0b0a0c}
.octo textarea::placeholder{color:#857a90}
.octo__form button{display:grid;place-items:center;width:40px;height:40px;padding:0;border:0;border-radius:50%;background:var(--octo-violet);color:#fff;cursor:pointer;flex:none}
.octo__form button svg{width:20px;height:20px}
.octo button:disabled{opacity:.5;cursor:wait}
.octo button:focus-visible,.octo summary:focus-visible{outline:2px solid var(--octo-violet);outline-offset:3px}

/* Pied compact : une seule ligne pour la mention IA et le contact humain. */
.octo__foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:0 12px;padding:4px 16px 10px;flex:none}
.octo__human{margin-left:auto;border:0;background:none;padding:8px 0;color:var(--octo-violet-deep);font:inherit;font-size:12px;font-weight:600;cursor:pointer;text-decoration:underline;text-underline-offset:3px;white-space:nowrap}
.octo__privacy{font-size:11px;color:#65596f;min-width:0}
.octo__privacy summary{cursor:pointer;padding:8px 0;list-style-position:inside}
.octo__privacy[open]{order:2;flex-basis:100%;max-height:120px;overflow:auto}
.octo__privacy p{margin:0 0 6px;line-height:1.5}

.octo__offer{margin:0 0 10px;border:1px solid #e5d9f4;border-radius:16px;padding:12px 14px;background:#fdfbff}
.octo__offer h3{font-size:15px;line-height:1.3;margin:0}
.octo__offer strong{display:block;margin-top:2px;color:var(--octo-violet-deep);font-size:16px;line-height:1.35}
.octo__offer p{font-size:13px;line-height:1.5;margin:6px 0}
.octo__offer small{font-size:11px;line-height:1.4;color:#65596f;display:block}
.octo__action{width:100%;padding:12px;border:0;border-radius:14px;background:var(--octo-violet);color:#fff;font:inherit;font-size:14px;font-weight:600;cursor:pointer;margin:0 0 12px}
.octo__nudge{display:flex;flex-direction:column;gap:6px;margin:0 0 12px;padding:12px 14px;border:1px solid #e3d5f2;border-radius:16px;background:var(--octo-soft);font-size:12px;line-height:1.45}
.octo__nudge strong{font-size:13px;color:var(--octo-violet-deep)}
.octo__nudge span{color:#51475a}
.octo__nudge button{align-self:flex-start;border:0;border-radius:999px;padding:8px 12px;background:var(--octo-violet);color:#fff;font:inherit;font-size:12px;cursor:pointer}

.octo__teaser{position:fixed;right:24px;bottom:104px;z-index:29;width:min(246px,calc(100vw - 48px));padding:10px 12px;border:1px solid rgba(108,60,170,.38);border-radius:14px;background:#fff;box-shadow:0 12px 32px #21103820;opacity:0;transform:translateY(8px);pointer-events:none;visibility:hidden;transition:opacity .25s ease,transform .25s ease,visibility 0s linear .25s}
.octo__teaser.is-visible{opacity:1;transform:none;pointer-events:auto;visibility:visible;transition-delay:0s}
.octo__teaser p{margin:0 20px 7px 0;font-size:11px;line-height:1.35}
.octo__teaser p strong,.octo__teaser p span{display:block}
.octo__teaser p strong{font-size:12px;color:#211038}
.octo__teaser p span{margin-top:3px;color:#61556e}
.octo__teaser-open{border:0;border-radius:999px;padding:7px 10px;background:var(--accent,#6c3caa);color:#fff;font:inherit;font-size:11px;font-weight:650;cursor:pointer}
.octo__teaser-close{position:absolute;top:8px;right:10px;border:0;background:none;color:#61556e;font-size:18px;cursor:pointer}
@media (pointer:coarse){.octo__teaser-close::before{content:"";position:absolute;inset:-8px}}
.octo__sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}

@media (max-width:600px){
 /* Plein ecran. --octo-vh et --octo-top suivent la zone reellement visible
    (clavier ouvert compris), mises a jour par octomask.js via visualViewport. */
 .octo{inset:var(--octo-top,0px) 0 auto 0;width:100%;height:var(--octo-vh,100dvh);border:0;border-radius:0;box-shadow:none}
 .octo::backdrop{background:#fff}
 .octo__head{gap:8px;padding:8px 4px 8px 12px;padding-top:max(8px,env(safe-area-inset-top,0px))}
 .octo__head img{width:36px;height:36px}
 .octo__head h2{font-size:16px}
 .octo__head p{display:none}
 .octo__progress{margin-top:3px}
 /* Les trois traits disent deja l'etape : le numero reste pour les lecteurs d'ecran. */
 .octo__progress-num{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
 .octo__icon{width:42px;height:42px}
 .octo__body{padding:14px 12px 4px}
 .octo__message{font-size:15px;line-height:1.5;max-width:88%}
 .octo__message--assistant{max-width:94%}
 .octo__suggestions{gap:6px}
 .octo__suggestions button{font-size:14px;min-height:40px}
 .octo__status{margin:0 12px 4px}
 .octo__form{margin:4px 10px 0}
 .octo__foot{padding:0 14px max(6px,env(safe-area-inset-bottom,0px))}
 /* Clavier ouvert : on rend la place au fil, la mention revient a la fermeture. */
 .octo.is-typing .octo__foot{display:none}
 .octo.is-typing .octo__form{margin-bottom:6px}
 .octo__teaser{right:12px;bottom:calc(76px + env(safe-area-inset-bottom,0px));width:min(204px,calc(100vw - 32px));padding:9px 10px}
 .octo__teaser p{margin-bottom:6px}
 .octo__teaser p span{display:none}
 .octo__teaser-open{padding:6px 9px}
}
@media (prefers-reduced-motion:reduce){.octo__teaser{transition:none}.octo__typing i{animation:none;opacity:.7}}

/* ---- hero-video.css ---- */
.hero{position:relative;isolation:isolate;overflow:clip}
.hero__inner{width:100%}
.hero-to-audit{position:relative;display:grid;place-items:center;height:clamp(2.75rem,5.5vw,4.5rem);overflow:hidden}
.hero-to-audit__line{display:block;width:min(42vw,27rem);height:1px;background:color-mix(in srgb,var(--accent) 45%,transparent)}
.hero-to-audit__pulse{position:absolute;width:.5rem;height:.5rem;border-radius:50%;background:var(--accent);box-shadow:0 0 0 .38rem color-mix(in srgb,var(--accent) 10%,transparent)}
@supports (animation-timeline:view()){
 .hero-to-audit__line{opacity:.15;transform:scaleX(.22);transform-origin:left center;animation:hero-bridge-draw linear both;animation-timeline:view();animation-range:entry 10% cover 36%}
 .hero-to-audit__pulse{opacity:0;transform:scale(.45);animation:hero-bridge-pulse linear both;animation-timeline:view();animation-range:entry 18% cover 42%}
}
@keyframes hero-bridge-draw{to{opacity:1;transform:scaleX(1)}}
@keyframes hero-bridge-pulse{to{opacity:1;transform:scale(1)}}
.hero__title{position:relative;z-index:2;isolation:isolate}
.hero h1{font-size:clamp(2.3rem,5.2vw,6.6rem)}
.hero__line{display:block;white-space:nowrap}
.hero__lead{position:relative;left:50%;width:max-content;transform:translateX(-50%)}
.hero__delivery{position:relative;white-space:nowrap}
.hero__consequence{position:relative;margin-top:0}
.hero__exister{position:relative;display:inline-block}
.hero__exister::after{content:"";position:absolute;left:.02em;right:.02em;bottom:-.07em;height:.07em;border-radius:999px;background:var(--accent);transform:scaleX(0);transform-origin:left center;animation:hero-underline-draw .9s cubic-bezier(.22,1,.36,1) .3s forwards}
@keyframes hero-underline-draw{to{transform:scaleX(1)}}
.hero__word{position:relative;display:inline-block;width:3.84em;height:.65em;vertical-align:baseline}
/* Centre avant le premier calcul JS (= etat initial de l'animation) : aucun saut. */
.hero__delivered-clients{position:absolute;top:0;left:50%;translate:-50% 0;font-size:1em;line-height:inherit;white-space:nowrap;will-change:transform}
/* Film source : rendu (pas display:none, que Safari peut refuser de decoder)
   mais invisible, superpose au canvas qui en affiche la version recomposee. */
.hero__source{position:absolute;left:0;top:0;opacity:0;pointer-events:none;z-index:0}
.hero__canvas,.hero__poster{position:absolute;left:0;top:0;display:block;width:44%;aspect-ratio:1280/720;max-width:none;height:auto;pointer-events:none;z-index:1;filter:saturate(1.2) contrast(1.02)}
/* Le film (canvas WebGL, voir js/hero-video.js) n'apparait qu'a sa premiere
   image dessinee. Avant ca, rien : la tentacule arrive hors cadre et apporte
   le mot. Le poster (mot deja depose) ne sert que de repli : reduced-motion,
   economie de donnees, lecture refusee ou film qui ne demarre pas en 4 s. */
.hero__canvas,.hero__poster{visibility:hidden}
.hero--ready .hero__canvas{visibility:visible}
.hero--static .hero__poster{visibility:visible}
.hero__inner>p,.hero__actions,.hero .rating{position:relative;z-index:2}
.hero__motion-toggle{display:block;margin:1rem auto 0;padding:.35rem .6rem;border:0;background:none;color:var(--muted);font:inherit;font-size:.75rem;text-decoration:underline;text-underline-offset:3px;cursor:pointer;position:relative;z-index:2}
/* Place reservee meme masque : son apparition au demarrage du film ne doit
   pas decaler le hero (saut visible, et mot desaligne du texte). */
.hero__motion-toggle[hidden]{display:block;visibility:hidden}
.hero__motion-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}
@media(max-width:767px){
 .hero h1{font-size:clamp(1.4rem,6.6vw,2.55rem)}
 /* Trois lignes de meme taille : meme interligne partout. Le mot incruste
    n'a ni hampe ni jambage (que des minuscules courtes) : il tient dans la
    ligne, aucune marge supplementaire n'est necessaire. */
 .hero__line{line-height:1.12}
 /* Meme mecanique que desktop (video incrustee + texte anime en overlay) :
    seule la largeur reservee pour le mot change, l'echelle video mobile
    (.615 dans measure()) etant plus large en proportion que desktop (.44). */
 .hero__word{width:4.6em}
 /* "sans vous" passe sur la ligne de "épuiser." : la ligne du mot ne porte
    plus que "ramener des clients," et peut etre centree d'un bloc, sans
    rogner le mot ni laisser de trou. Contenu CSS (lu par les lecteurs
    d'ecran) plutot qu'un doublon HTML, pour garder le texte source intact. */
 .hero__tail{display:none}
 .hero__consequence::before{content:"sans vous "}
 .hero__delivered-clients{text-align:left}
 .hero{padding-bottom:2.25rem}
}
@media(min-width:768px) and (max-width:1350px){
 .hero__consequence{font-size:.84em;white-space:nowrap}
}
@media(min-width:768px){
 .hero{--hero-optical-shift:0px}
 /* Interlignes egaux (1,45 x la taille de la ligne du milieu) malgre les
    lignes a .87em : meme hauteur de boite pour les trois, puis la ligne du
    milieu remonte de (ascendante - descendante) / 2 x .13em = .05em
    (General Sans : 1.01 - 0.24), sinon l'ecart du haut serait plus grand. */
 .hero__lead,.hero__consequence{line-height:calc(1.45em / .87)}
 .hero__delivery{line-height:1.45;top:-.05em}
 .hero__lead{left:calc(50% - var(--hero-optical-shift));font-size:.87em}
 .hero__consequence{font-size:.87em;transform:translateX(calc(var(--hero-optical-shift) * -1))}
}
@media(prefers-reduced-motion:reduce){
 .hero__canvas{visibility:hidden!important}
 .hero__poster{visibility:visible!important}
 .hero__motion-toggle,.hero__motion-toggle[hidden]{display:none}
 .hero__exister::after{animation:none;transform:scaleX(1)}
 .hero-to-audit__line{opacity:.7;transform:none;animation:none}
 .hero-to-audit__pulse{opacity:1;transform:none;animation:none}
}

/* ---- site-additions.css ---- */
.solutions{padding:clamp(5.5rem,11vw,9.5rem) clamp(1.25rem,5vw,3rem);background:#faf9fc}.solutions__inner{max-width:var(--wrap);margin:auto}.solutions__intro{max-width:52rem}.section-kicker{margin:0 0 1rem;color:var(--accent);font-size:.8rem;font-weight:650;letter-spacing:.06em;text-transform:uppercase}.solutions h2{margin:0;font-size:clamp(2.25rem,4.8vw,4.45rem);line-height:1.01;letter-spacing:var(--tracking);text-wrap:balance}.solutions__intro>p:last-child{max-width:42rem;margin:1.3rem 0 0;color:var(--muted);font-size:clamp(1rem,1.35vw,1.16rem);line-height:1.55}.solution-picker{display:grid;grid-template-columns:minmax(15rem,.64fr) minmax(0,1.36fr);gap:clamp(1.5rem,4vw,4rem);margin-top:clamp(3rem,6vw,5rem);align-items:start}.solution-picker__choices{display:grid;gap:.25rem}.solution-choice{width:100%;min-height:5.8rem;padding:1.1rem 1.15rem;border:0;border-left:2px solid transparent;background:transparent;color:var(--ink);font:inherit;text-align:left;cursor:pointer;transition:border-color var(--t-normal) var(--ease-smooth),background var(--t-normal) var(--ease-smooth),padding var(--t-normal) var(--ease-smooth)}.solution-choice span,.solution-choice small{display:block}.solution-choice span{font-size:clamp(1rem,1.32vw,1.15rem);font-weight:var(--fw-title);letter-spacing:var(--tracking)}.solution-choice small{margin-top:.34rem;color:var(--muted);font-size:.87rem;line-height:1.35}.solution-choice:hover,.solution-choice.is-selected{border-left-color:var(--accent);background:rgba(108,4,241,.065);padding-left:1.45rem}.solution-choice:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.solution-stage{min-width:0}.solution-panel{min-height:30rem;padding:clamp(1.45rem,3vw,2.6rem);border:1px solid rgba(108,4,241,.2);border-radius:18px;background:#fff;box-shadow:0 22px 55px rgba(33,16,64,.07)}.solution-panel[hidden]{display:none}.solution-panel__copy{max-width:42rem}.solution-panel__eyebrow{margin:0 0 .85rem;color:var(--accent);font-size:.78rem;font-weight:var(--fw-title);letter-spacing:.05em;text-transform:uppercase}.solution-panel h3{max-width:20ch;margin:0;font-size:clamp(1.6rem,3vw,2.55rem);line-height:1.05;letter-spacing:var(--tracking);text-wrap:balance}.solution-panel__copy>p:not(.solution-panel__eyebrow){max-width:48ch;margin:1rem 0 0;color:var(--muted);line-height:1.5}.solution-panel__link{display:inline-flex;gap:.45rem;margin-top:1.25rem;color:var(--ink);font-weight:var(--fw-title);text-decoration-color:var(--accent);text-decoration-thickness:2px;text-underline-offset:5px}.solution-panel__link span{color:var(--accent);transition:transform var(--t-normal) var(--ease-smooth)}.solution-panel__link:hover span{transform:translate(2px,-2px)}.solution-panel__link:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.system-map{display:flex;align-items:center;margin-top:clamp(2.2rem,4vw,3.2rem);padding:1rem 0;overflow:auto}.system-map__node{display:grid;min-width:7.15rem;min-height:4.65rem;place-items:center;padding:.75rem;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--muted);font-size:.87rem;font-weight:var(--fw-title);line-height:1.2;text-align:center}.system-map__node--start,.system-map__node--end{border-color:rgba(108,4,241,.38);background:#f0eaff;color:var(--accent-deep)}.system-map__line{display:block;min-width:clamp(1.6rem,4vw,3.8rem);height:1px;background:linear-gradient(90deg,rgba(108,4,241,.46),rgba(108,4,241,.14));position:relative}.system-map__line::after{content:"";position:absolute;right:0;top:-3px;width:7px;height:7px;border-top:1px solid var(--accent);border-right:1px solid var(--accent);transform:rotate(45deg)}.solution-modules{display:flex;gap:.55rem;flex-wrap:wrap;margin:1.4rem 0 0;padding:0;list-style:none}.solution-modules li{padding:.42rem .65rem;border:1px solid var(--line);border-radius:999px;background:#fbfaff;color:#413a49;font-size:.8rem;line-height:1.3}.solutions__capabilities{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1fr);gap:clamp(1.5rem,5vw,5rem);margin-top:clamp(3.5rem,7vw,6rem);padding-top:1.5rem;border-top:1px solid var(--line)}.solutions__capabilities h3{max-width:19ch;margin:0;font-size:clamp(1.45rem,2.5vw,2.3rem);line-height:1.08;letter-spacing:var(--tracking)}.solutions__capabilities>p{max-width:42rem;margin:0;color:var(--muted);font-size:1.02rem;line-height:1.55}
.whatsapp-float{position:fixed;right:clamp(1rem,3vw,2rem);bottom:calc(clamp(1rem,3vw,2rem) + 82px);z-index:29;display:grid;place-items:center;width:58px;height:58px;border:1px solid #0a8e51;border-radius:50%;background:#12a561;color:#fff;text-decoration:none;box-shadow:0 12px 28px rgba(10,142,81,.24);transition:transform var(--t-normal) var(--ease-smooth),box-shadow var(--t-normal) var(--ease-smooth)}.whatsapp-float__icon{display:block;width:29px;height:29px}.whatsapp-float:hover,.whatsapp-float:focus-visible{transform:translateY(-3px);box-shadow:0 16px 32px rgba(10,142,81,.32)}.whatsapp-float:focus-visible{outline:2px solid var(--accent);outline-offset:4px}
.site-footer{padding:clamp(3.5rem,7vw,6rem) clamp(1.25rem,5vw,3rem) 1.4rem;border:none!important;border-top:none!important;background:#ffffff}.site-footer::before,.site-footer::after{display:none!important;content:none!important;height:0!important;border:none!important}.site-footer__inner{display:grid;grid-template-columns:1.6fr .7fr .9fr;gap:clamp(2rem,6vw,6rem);max-width:var(--wrap);margin:auto}.site-footer__brand{display:inline-flex;align-items:center;gap:.65rem;font-size:1.2rem;font-weight:650;text-decoration:none}.site-footer__brand img{width:32px;height:32px}.site-footer p{max-width:34ch;margin:1rem 0 0;color:var(--muted);line-height:1.55}.site-footer h2{margin:0 0 1rem;font-size:.86rem;letter-spacing:.04em;text-transform:uppercase}.site-footer nav,.site-footer__inner>div:last-child{display:flex;flex-direction:column;align-items:flex-start;gap:.55rem}.site-footer a{color:var(--ink);text-decoration-color:#cbbbe8;text-underline-offset:3px}.site-footer__legal{display:flex;max-width:var(--wrap);margin:clamp(3rem,6vw,5rem) auto 0;padding-top:1.2rem;border-top:1px solid var(--line);gap:.8rem 1.4rem;flex-wrap:wrap;color:var(--muted);font-size:.78rem}.site-footer__legal a{padding:.35rem 0}.site-footer__legal a:first-of-type{margin-left:auto}
@media(max-width:800px){.solution-picker{grid-template-columns:1fr;gap:2rem}.solution-picker__choices{grid-template-columns:1fr 1fr;gap:.55rem}.solution-choice{min-height:6.5rem;border:1px solid var(--line);border-radius:12px;background:#fff}.solution-choice:hover,.solution-choice.is-selected{border-color:var(--accent);padding-left:1.15rem}.solution-panel{min-height:0}.solutions__capabilities{grid-template-columns:1fr}.site-footer__inner{grid-template-columns:1fr 1fr}.site-footer__inner>div:first-child{grid-column:1/-1}.site-footer__legal a:first-of-type{margin-left:0}.whatsapp-float{bottom:82px;width:52px;height:52px}}
@media(max-width:560px){.solution-picker__choices{grid-template-columns:1fr}.solution-choice{min-height:0}.solution-panel{padding:1.35rem}.system-map{margin-top:1.7rem}.system-map__node{min-width:6.1rem;min-height:4.1rem;font-size:.78rem}.system-map__line{min-width:1.25rem}.solution-modules{gap:.42rem}.solution-modules li{font-size:.74rem}.solutions__capabilities{margin-top:3.25rem}.site-footer__inner{grid-template-columns:1fr}.site-footer__inner>div:first-child{grid-column:auto}}
@media(prefers-reduced-motion:reduce){.whatsapp-float,.solution-choice,.solution-panel__link span{transition:none}}
.cookie-note{position:fixed;z-index:35;left:1rem;bottom:1rem;display:flex;align-items:center;gap:.8rem;max-width:460px;padding:.9rem 1rem;border:1px solid #ded2fa;border-radius:14px;background:rgba(255,255,255,.97);box-shadow:0 12px 34px rgba(31,21,50,.13);font-size:.82rem}.cookie-note p{margin:0;line-height:1.4}.cookie-note p strong,.cookie-note p span{display:block}.cookie-note p span{margin-top:.18rem;color:var(--muted)}.cookie-note a{flex:none;color:var(--accent);font-weight:700;white-space:nowrap}.cookie-note button{flex:none;width:28px;height:28px;padding:0;border:0;border-radius:50%;background:#f2edf9;color:var(--ink);font-size:1.25rem;cursor:pointer}@media(max-width:560px){.cookie-note{right:1rem;bottom:1rem;align-items:flex-start}.cookie-note a{white-space:normal}}
.closing-cta{padding:clamp(4rem,9vw,7.5rem) clamp(1.25rem,5vw,3rem);border-top:1px solid var(--line)}.method{border:none!important;border-top:none!important;border-bottom:none!important}
.closing-cta__inner{max-width:var(--wrap);margin:auto;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:1.2rem clamp(2rem,6vw,6rem);align-items:end}
.closing-cta .section-kicker{grid-column:1/-1;margin:0;color:var(--accent);font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.closing-cta h2{margin:0;font-size:clamp(2.1rem,4.6vw,3.9rem);line-height:1;letter-spacing:-.04em;text-wrap:balance}
.closing-cta__inner>p:not(.section-kicker){margin:0;max-width:44ch;color:var(--muted);line-height:1.6;text-wrap:pretty}
.closing-cta__actions{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;gap:1rem 1.6rem;margin-top:1rem}
.closing-cta .text-link{font-weight:650;color:var(--accent);text-underline-offset:4px}
.closing-cta .text-link:hover{color:var(--accent-deep)}
.site-footer__legal a{padding:.35rem 0}
@media(max-width:800px){.closing-cta__inner{grid-template-columns:1fr}.closing-cta__actions .btn{width:100%;justify-content:center}.site-footer nav a,.site-footer__inner>div:last-child a{padding:.4rem 0}}

/* ---- audit.css ---- */
.sr-only{
 position:absolute;width:1px;height:1px;padding:0;margin:-1px;
 overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0
}
.audit{padding:clamp(1rem,2.5vw,2rem) clamp(1.25rem,3vw,2.5rem) clamp(3.5rem,7vw,6rem);overflow-x:clip;position:relative}
.audit__inner{
 position:relative;
 max-width:1520px;
 margin:0 auto;
 text-align:center
}
.audit__stage{
 display:block;
 position:relative
}
.audit-compare{display:none;margin:0;user-select:none;--split:50%}
/* Écran d'ordinateur au centre, un téléphone de chaque côté : avant à gauche, après à droite */
.audit-mock{position:relative;padding:0 7% 13%}
.audit-mock__browser{
 position:relative;overflow:hidden;border-radius:12px;background:#0E0D10;
 outline:1px solid rgba(255,255,255,.08);outline-offset:-1px;
 box-shadow:0 1px 1px rgba(18,14,23,.06),0 26px 50px -26px rgba(18,14,23,.55)
}
.audit-mock__bar{display:flex;align-items:center;gap:4px;height:20px;padding:0 9px;background:#18171B;border-bottom:1px solid rgba(255,255,255,.06)}
.audit-mock__bar i{flex:none;width:6px;height:6px;border-radius:50%;background:#3A383F}
.audit-mock__url{flex:1;height:10px;margin:0 24px 0 8px;border-radius:5px;background:#242328}
.audit-mock__phone{
 position:absolute;bottom:0;z-index:4;width:17%;aspect-ratio:390 / 800;
 padding:2.5px;border-radius:13px;background:#0E0D10;
 box-shadow:0 0 0 1px rgba(255,255,255,.08) inset,0 20px 34px -14px rgba(18,14,23,.6)
}
.audit-mock__phone--before{left:0}
.audit-mock__phone--after{right:0}
.audit-mock__screen{position:relative;width:100%;height:100%;overflow:hidden;border-radius:10.5px;background:#fff;container-type:inline-size}
.audit-mock__label{position:absolute;top:calc(100% + .55rem);display:grid;gap:.05rem;font-size:.7rem;font-weight:500;color:var(--muted);white-space:nowrap;line-height:1.25}
.audit-mock__label b{font-size:.78rem;font-weight:700;color:var(--ink)}
.audit-mock__phone--before .audit-mock__label{left:0;text-align:left}
.audit-mock__phone--after .audit-mock__label{right:0;text-align:right}
.audit-mock__phone--after .audit-mock__label b{color:var(--accent)}
.audit-mock__phone{transition-property:transform,opacity,filter;transition-duration:420ms;transition-timing-function:cubic-bezier(.22,1,.36,1)}
.audit-compare.is-before .audit-mock__phone--after,.audit-compare.is-after .audit-mock__phone--before{filter:grayscale(1) brightness(.9);transform:scale(.95)}
.audit-compare.is-before .audit-mock__phone--before,.audit-compare.is-after .audit-mock__phone--after{transform:translateY(-6px)}
.audit-compare__viewport{position:relative;width:100%;aspect-ratio:16 / 10;overflow:hidden;background:#fff;container-type:inline-size}
.audit-compare__layer{position:absolute;inset:0;pointer-events:none}
.audit-compare__layer--after{clip-path:inset(0 0 0 var(--split))}
.audit-compare__tag{
 position:absolute;top:.45rem;z-index:2;padding:.18rem .45rem;border-radius:6px;
 font-size:.68rem;font-weight:600;pointer-events:none;background:rgba(14,13,16,.84);color:#fff
}
.audit-compare__tag--before{left:.45rem}
.audit-compare__tag--after{right:.45rem}
.audit-compare__line{
 position:absolute;top:0;bottom:0;left:var(--split);z-index:3;width:2px;
 background:#fff;box-shadow:0 0 0 1px rgba(11,10,12,.08),0 0 14px rgba(11,10,12,.35);
 transform:translateX(-50%);pointer-events:none
}
.audit-compare__handle{
 position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
 width:40px;height:40px;border-radius:50%;background:#fff;color:#0B0A0C;
 box-shadow:0 0 0 1px rgba(11,10,12,.06),0 6px 18px rgba(11,10,12,.32);
 display:grid;place-items:center;
 transition-property:transform,background-color,color;transition-duration:220ms;transition-timing-function:cubic-bezier(.22,1,.36,1)
}
.audit-compare:hover .audit-compare__handle,.audit-compare:focus-within .audit-compare__handle{transform:translate(-50%,-50%) scale(1.06);color:var(--accent)}
.audit-compare.is-dragging .audit-compare__handle{background:var(--accent);color:#fff;transform:translate(-50%,-50%) scale(.96)}
.audit-compare__pill{
 position:absolute;top:calc(50% + 28px);left:50%;transform:translateX(-50%);
 padding:.2rem .55rem;border-radius:99px;background:var(--accent);color:#fff;
 font-size:.68rem;font-weight:600;white-space:nowrap;
 box-shadow:0 6px 16px -6px rgba(77,38,125,.6);
 transition-property:opacity,transform;transition-duration:300ms;transition-timing-function:ease-out
}
.audit-compare.is-touched .audit-compare__pill{opacity:0;transform:translateX(-50%) translateY(-4px)}
.audit-compare__range{position:absolute;left:0;right:0;top:20px;bottom:0;z-index:6;width:100%;height:calc(100% - 20px);margin:0;opacity:0;cursor:ew-resize}
.audit-compare:has(.audit-compare__range:focus-visible) .audit-mock__browser{outline:2px solid var(--accent);outline-offset:3px}
.audit-compare__caption{display:grid;grid-template-columns:1fr auto;align-items:center;gap:.15rem .5rem;margin-top:3.4rem;font-size:.85rem;text-align:left}
.audit-compare__caption strong{font-weight:700;color:var(--ink);letter-spacing:-.01em}
.audit-compare__hint{display:none}
.audit-compare__hint-old{display:inline-flex;align-items:center;gap:.3rem;color:var(--muted);font-weight:600;font-size:.75rem}
.audit-compare__hint svg{color:var(--accent)}
.audit-compare__note{grid-column:1 / -1;color:var(--muted);font-size:.72rem}
@media (min-width:1080px){
 .audit__stage{
  display:grid;
  grid-template-columns:minmax(360px,540px) minmax(400px,500px) minmax(360px,540px);
  align-items:start;justify-content:center;gap:clamp(1.5rem,2.6vw,3.2rem)
 }
 .audit-compare{display:block;margin-top:clamp(-15rem,-18vw,-19rem);position:relative;z-index:3}
}
.audit__copy{
 position:relative;
 z-index:2;
 max-width:620px;
 margin:clamp(2rem,4vw,3.5rem) auto 0
}
.audit__title{
 margin:0;
 max-width:18ch;
 margin-inline:auto;
 font-size:clamp(1.9rem,4.4vw,3rem);
 font-weight:var(--fw-display);
 line-height:var(--lh-display);
 letter-spacing:var(--tracking);
 text-wrap:balance
}
.audit__lead{
 margin:1.1rem auto 0;
 max-width:48ch;
 font-size:1.02rem;
 font-weight:var(--fw-emph);
 line-height:1.6;
 color:var(--muted)
}
.audit__form{
 display:flex;
 gap:.6rem;
 margin:clamp(1.65rem,3vw,2.25rem) auto 0;
 max-width:540px
}
.audit__input{
 flex:1 1 auto;
 min-width:0;
 min-height:52px;
 padding:0 1.1rem;
 font-family:inherit;
 font-size:1rem;
 font-weight:var(--fw-emph);
 color:var(--ink);
 background:var(--paper);
 border:1px solid rgba(11,10,12,.22);
 border-radius:999px;
 transition:border-color 150ms ease-out
}
.audit__input::placeholder{color:#8A847D}
.audit__input:hover{border-color:rgba(11,10,12,.4)}
.audit__input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(108,60,170,.16)}
.audit__submit{flex:none;min-height:52px}
.audit__hint{margin:.8rem 0 0;font-size:.86rem;font-weight:var(--fw-emph);color:var(--muted)}
.audit__out{display:block;margin:clamp(1.8rem,3vw,2.6rem) auto 0;max-width:860px;scroll-margin-top:2rem}
.panel{
 text-align:left;
 padding:clamp(1.5rem,3.4vw,2.4rem);
 border:1px solid var(--line);
 border-radius:22px;
 max-width:860px;
 margin:0 auto
}
.panel--msg{text-align:center}
.audit__out.is-done .panel{animation:panel-in 380ms cubic-bezier(.16,1,.3,1) both}
@keyframes panel-in{from{opacity:0;translate:0 10px}to{opacity:1;translate:0 0}}
.ring{position:relative;flex:none;width:104px;height:104px;display:grid;place-items:center}
.ring svg{width:104px;height:104px;transform:rotate(-90deg)}
.ring circle{fill:none;stroke-width:8;stroke-linecap:round}
.ring__track{stroke:rgba(11,10,12,.09)}
.ring__value{
 stroke:currentColor;
 stroke-dasharray:327;
 stroke-dashoffset:327;
 animation:ring-fill 1s cubic-bezier(.16,1,.3,1) forwards
}
@keyframes ring-fill{to{stroke-dashoffset:calc(327 - (327 * var(--pct) / 100))}}
.ring__num{
 position:absolute;
 font-size:1.9rem;
 font-weight:var(--fw-display);
 letter-spacing:var(--tracking);
 color:currentColor
}
.ring--good{color:#0F7A3D}
.ring--warn{color:#A85A00}
.ring--bad{color:#B3200F}
.panel__head{display:flex;align-items:center;gap:1.3rem;flex-wrap:wrap}
.panel__verdict{flex:1 1 260px;min-width:0}
.panel__site{margin:0;font-size:.86rem;font-weight:var(--fw-emph);color:var(--muted);overflow-wrap:anywhere}
.panel__sentence{
 margin:.25rem 0 0;
 font-size:clamp(1.08rem,1.9vw,1.3rem);
 font-weight:var(--fw-title);
 letter-spacing:var(--tracking);
 line-height:1.3
}
.panel__meta{margin:.35rem 0 0;font-size:.88rem;font-weight:var(--fw-emph);color:var(--muted)}
.panel__note{margin:.6rem 0 0;font-size:.95rem;font-weight:var(--fw-emph);color:var(--muted)}
.cards{
 list-style:none;
 margin:clamp(1.5rem,3vw,2rem) 0 0;
 padding:0;
 display:grid;
 gap:.8rem;
 grid-template-columns:repeat(auto-fit,minmax(260px,1fr))
}
.card{
 padding:1.05rem 1.15rem 1.15rem;
 border:1px solid var(--line);
 border-radius:14px;
 border-left-width:3px
}
.card--high{border-left-color:#B3200F;background:rgba(179,32,15,.03)}
.card--mid{border-left-color:#A85A00;background:rgba(168,90,0,.03)}
.card--low{border-left-color:rgba(11,10,12,.28)}
.card--pending{border-left-color:var(--accent);background:rgba(108,60,170,.03)}
.card__sev{
 display:inline-block;
 font-size:.7rem;
 font-weight:var(--fw-title);
 letter-spacing:.09em;
 text-transform:uppercase
}
.card--high .card__sev{color:#B3200F}
.card--mid .card__sev{color:#A85A00}
.card--low .card__sev{color:var(--muted)}
.card--pending .card__sev{color:var(--accent)}
.card__title{
 margin:.4rem 0 0;
 font-size:1rem;
 font-weight:var(--fw-title);
 letter-spacing:var(--tracking);
 line-height:1.25;
 display:flex;
 align-items:center;
 gap:.45rem;
 flex-wrap:wrap
}
.card__text{margin:.35rem 0 0;font-size:.92rem;font-weight:var(--fw-body);line-height:1.55;color:var(--muted)}
.card--new{animation:panel-in 380ms cubic-bezier(.16,1,.3,1) both}
.panel__rest{margin:1.1rem 0 0;font-size:.9rem;font-weight:var(--fw-emph);color:var(--muted)}
.panel__cta{margin-top:1.5rem}
.panel--msg .panel__cta{margin-inline:auto}
.panel--loading{display:flex;align-items:center;gap:1.4rem;flex-wrap:wrap}
.ring--idle{color:var(--accent)}
.ring__spin{
 stroke:currentColor;
 stroke-dasharray:80 247;
 animation:ring-spin 1.1s linear infinite
}
@keyframes ring-spin{to{transform:rotate(360deg);transform-origin:60px 60px}}
.steps{list-style:none;margin:0;padding:0;display:grid;gap:.45rem;flex:1 1 240px}
.step{
 font-size:.95rem;
 font-weight:var(--fw-emph);
 color:rgba(11,10,12,.3);
 transition:color 220ms ease-out
}
.step.is-on{color:var(--ink);font-weight:var(--fw-title)}
.step.is-done{color:var(--muted)}
.step.is-done::before{content:"";display:inline-block;width:12px}
.dots{display:inline-flex;gap:3px;align-items:center}
.dots i{width:4px;height:4px;border-radius:50%;background:var(--accent);animation:dot 1.1s ease-in-out infinite}
.dots i:nth-child(2){animation-delay:.15s}
.dots i:nth-child(3){animation-delay:.3s}
@keyframes dot{0%,100%{opacity:.25;transform:translateY(0)}50%{opacity:1;transform:translateY(-2px)}}
@media (max-width:900px){
 .audit__inner{text-align:center}
}
@media (max-width:600px){
 .audit__form{flex-direction:column}
 .audit__submit{width:100%}
 .panel__head{gap:.9rem}
 .ring,.ring svg{width:84px;height:84px}
 .ring__num{font-size:1.6rem}
 .cards{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){
 .ring__value{animation:none;stroke-dashoffset:calc(327 - (327 * var(--pct) / 100))}
 .ring__spin{animation:none}
 .dots i{animation:none;opacity:.6}
 .audit__out.is-done .panel,.card--new{animation:none}
}

/* ---- audit-sites.css ---- */
/* Mini-sites codés des avant/après de l'accueil.
   Bureau : conçus pour 1280 px de large (1em = 16 px), réduits à la taille de l'écran.
   Mobile (.ms--m) : conçus pour 390 px. L'ancien site garde sa mise en page
   d'ordinateur même sur téléphone : il n'a jamais été adapté au mobile. */
.ms{position:absolute;inset:0;overflow:hidden;font-size:1.25cqw;line-height:1.4;text-align:left;-webkit-font-smoothing:antialiased}
.ms.ms--m{font-size:4.1cqw}
.ms img{display:block;max-width:none}
.ms h3,.ms h4,.ms p{margin:0}

/* --- Ancien site chauffagiste (vers 2011) --- */
.ms-oa{background:#BDBDBD;font-family:Verdana,Tahoma,sans-serif;color:#000;-webkit-font-smoothing:auto}
.oa-page{width:52em;margin:0 auto;min-height:100%;background:#fff;border-left:.15em solid #8a8a8a;border-right:.15em solid #8a8a8a}
.oa-head{display:flex;align-items:center;gap:1.2em;height:6.5em;padding:0 2em;background:linear-gradient(180deg,#9EC3EA,#FFFFFF 85%);border-bottom:.2em solid #2E5E9E}
.oa-head b{font-family:"Comic Sans MS","Comic Sans",cursive;font-size:1.45em;color:#1F3F78;text-shadow:.06em .06em 0 #fff}
.oa-sun{flex:none;width:3.4em;height:3.4em;border-radius:50%;background:radial-gradient(circle,#FFE14D 45%,#F5A623 46% 52%,transparent 53%)}
.oa-nav{display:flex;gap:.25em;padding:.35em;background:#2E5E9E}
.oa-nav span{flex:1;padding:.35em 0;text-align:center;font-size:.7em;font-weight:700;color:#fff;background:linear-gradient(#5B8FD6,#2D5EA6);border:.12em outset #8FB4E8}
.oa-nav span:first-child{background:#F0A030;border-color:#FFD08A}
.oa-promo{padding:.3em;text-align:center;font-size:.8em;font-weight:700;color:#E00000;background:#FFFF99}
.oa-cols{display:flex;gap:1em;padding:1em}
.oa-side{flex:none;width:12em;display:flex;flex-direction:column;gap:.3em;padding:.6em;background:#DCE8F7;border:.1em solid #7FA3D6;font-size:.75em}
.oa-side b{padding:.3em;color:#fff;background:#2E5E9E;text-align:center}
.oa-side span{color:#1F3F78;text-decoration:underline}
.oa-side i{margin-top:1em;font-style:normal;text-align:center}
.oa-side tt{display:inline-block;margin-top:.3em;padding:.1em .3em;font-size:1.2em;color:#0f0;background:#000;letter-spacing:.15em}
.oa-main{flex:1;font-family:"Times New Roman",Times,serif;font-size:.85em;text-align:justify}
.oa-main img{float:right;width:13em;height:13em;object-fit:cover;margin:0 0 .6em .8em;border:.25em ridge #999;filter:saturate(1.5) contrast(1.15)}
.oa-main p{margin-bottom:.6em}
.oa-main h4{margin:.4em 0 .2em;font-family:Arial,sans-serif;font-size:1.05em;color:#E69138;text-decoration:underline}
.oa-main a{color:#0000EE;text-decoration:underline}
.oa-foot{clear:both;padding:1em;text-align:center;font-size:.6em;color:#666}

/* --- Thermiq, refonte --- */
.tq{background:#F4F2ED;color:#16181A;font-family:'General Sans',-apple-system,sans-serif}
.tq-nav{display:flex;align-items:center;gap:2em;padding:1.6em 4em}
.tq-nav b{font-size:1.15em;letter-spacing:.22em;font-weight:700}
.tq-links{display:flex;gap:2em;margin-left:auto;font-size:.85em;color:#5D615F}
.tq-btn{display:inline-flex;align-items:center;padding:.8em 1.4em;border-radius:99em;background:#D9692E;color:#fff;font-size:.85em;font-weight:600;white-space:nowrap}
.tq-btn--ghost{background:#16181A}
.tq-hero{display:grid;grid-template-columns:1.05fr 1fr;gap:3.5em;align-items:center;padding:2em 4em 0}
.tq-copy small{display:block;margin-bottom:1.2em;font-size:.85em;font-weight:600;color:#D9692E}
.tq-copy h3{font-size:4.4em;line-height:1;font-weight:600;letter-spacing:-.035em}
.tq-copy p{max-width:26em;margin-top:1.3em;font-size:1.05em;line-height:1.55;color:#5D615F}
.tq-cta{display:flex;align-items:center;gap:1.4em;margin-top:2em}
.tq-note{font-size:.85em;color:#5D615F}
.tq-note i{font-style:normal;color:#E0A21B;letter-spacing:.05em}
.tq-photo{position:relative;height:30em;border-radius:1.4em;overflow:hidden}
.tq-photo img{width:100%;height:100%;object-fit:cover}
.tq-badge{position:absolute;left:1.2em;bottom:1.2em;padding:.8em 1.1em;border-radius:.9em;background:#fff;font-size:.8em;color:#5D615F;box-shadow:0 .6em 1.6em -.6em rgba(0,0,0,.35)}
.tq-badge b{display:block;font-size:1.6em;line-height:1.1;color:#16181A}
.tq-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:1em;margin:2.2em 4em 0}
.tq-strip span{padding:1.1em 1.3em;border-radius:1em;background:#fff;font-size:.8em;color:#5D615F}
.tq-strip b{display:block;font-size:1.15em;color:#16181A}
.tq.ms--m .tq-nav{padding:1.1em 1.25em}
.tq.ms--m .tq-links{display:none}
.tq.ms--m .tq-nav .tq-btn{margin-left:auto;padding:.55em 1em}
.tq.ms--m .tq-hero{grid-template-columns:1fr;gap:1.4em;padding:0 1.25em}
.tq.ms--m .tq-photo{order:-1;height:15em}
.tq.ms--m .tq-copy small{margin-bottom:.6em}
.tq.ms--m .tq-copy h3{font-size:2.5em}
.tq.ms--m .tq-copy p{margin-top:.8em;font-size:.95em}
.tq.ms--m .tq-cta{flex-direction:column;align-items:stretch;gap:.8em;margin-top:1.3em}
.tq.ms--m .tq-cta .tq-btn{justify-content:center;padding:1em}
.tq.ms--m .tq-strip{display:none}

/* --- Ancienne brasserie --- */
.ms-or{background:radial-gradient(ellipse at center,#F1E3BE 0%,#E2CC97 62%,#B8955A 100%);font-family:"Times New Roman",Times,serif;color:#2B1A0C;-webkit-font-smoothing:auto}
.or-page{width:54em;margin:0 auto;padding:1.4em 0;text-align:center}
.or-title{font-family:"Monotype Corsiva","Apple Chancery","URW Chancery L",cursive;font-size:2.8em;font-weight:400;color:#4A2A10}
.or-page img{width:17em;height:11.3em;margin:1em auto;object-fit:cover;border:.3em solid #fff;outline:.1em solid #6b4a2b;filter:saturate(1.6) contrast(1.2) brightness(.9)}
.or-page a{display:block;margin-bottom:1em;font-family:Arial,sans-serif;font-size:1em;font-weight:700;color:#1010C8;text-decoration:underline}
.or-page table{width:100%;border-collapse:collapse;font-size:.85em;background:rgba(255,255,255,.35)}
.or-page td{padding:.25em .5em;border:.08em solid #000;text-align:left}
.or-page td:first-child{font-weight:700;width:7em}
.or-page td[rowspan]{text-align:center;vertical-align:middle;width:16em}
.or-page p{margin-top:1em;font-size:.85em}

/* --- Table Serein, refonte --- */
.ts{background:#4A1822;color:#F4E9DC;font-family:'General Sans',-apple-system,sans-serif}
.ts-nav{display:flex;align-items:center;gap:2em;padding:1.6em 4em;border-bottom:.06em solid rgba(244,233,220,.14)}
.ts-nav b{font-family:Georgia,"Times New Roman",serif;font-size:1.5em;font-weight:400}
.ts-links{display:flex;gap:2em;margin-left:auto;font-size:.85em;color:rgba(244,233,220,.7)}
.ts-btn{display:inline-flex;justify-content:center;padding:.85em 1.4em;border-radius:.4em;background:#E3B66B;color:#2A0E14;font-size:.85em;font-weight:600;white-space:nowrap}
.ts-btn--ghost{background:transparent;color:#F4E9DC;box-shadow:inset 0 0 0 .07em rgba(244,233,220,.5)}
.ts-hero{display:grid;grid-template-columns:1fr 1.05fr;gap:3.5em;align-items:center;padding:3em 4em 0}
.ts-copy small{display:block;margin-bottom:1.2em;font-size:.85em;color:#E3B66B}
.ts-copy h3{font-family:Georgia,"Times New Roman",serif;font-size:4.6em;line-height:1;font-weight:400;letter-spacing:-.02em}
.ts-book{display:grid;gap:.9em;max-width:24em;margin-top:2.2em;padding:1.3em;border-radius:.9em;background:rgba(244,233,220,.07);box-shadow:inset 0 0 0 .06em rgba(244,233,220,.14)}
.ts-k{font-size:.8em;color:rgba(244,233,220,.7)}
.ts-slots{display:grid;grid-template-columns:repeat(4,1fr);gap:.5em}
.ts-slots i{padding:.55em 0;border-radius:.4em;text-align:center;font-style:normal;font-size:.8em;font-variant-numeric:tabular-nums;box-shadow:inset 0 0 0 .07em rgba(244,233,220,.3)}
.ts-slots i.on{background:#F4E9DC;color:#2A0E14;box-shadow:none;font-weight:600}
.ts-photo{height:32em;border-radius:1.4em;overflow:hidden}
.ts-photo img{width:100%;height:100%;object-fit:cover}
.ts.ms--m .ts-nav{padding:1.1em 1.25em}
.ts.ms--m .ts-links{display:none}
.ts.ms--m .ts-nav .ts-btn{margin-left:auto;padding:.55em 1em}
.ts.ms--m .ts-hero{grid-template-columns:1fr;gap:1.4em;padding:1.25em 1.25em 0}
.ts.ms--m .ts-photo{order:-1;height:14em}
.ts.ms--m .ts-copy small{margin-bottom:.6em}
.ts.ms--m .ts-copy h3{font-size:2.7em}
.ts.ms--m .ts-book{margin-top:1.3em;padding:1em}

/* ---- method.css ---- */
.method{
 --method-bg:#4d267d;
 --method-bg-deep:#32164f;
 --method-ink:#fffaf4;
 --method-muted:rgba(255,250,244,.74);
 --reveal-off:rgba(255,250,244,.24);
 --method-wave-x:0;
 --method-wave-y:0;
 --method-wave-pull:1;
 position:relative;
 overflow:hidden;
 margin-inline:0;
 padding:clamp(6.5rem,10vw,9.5rem) clamp(1.25rem,5vw,3rem);
 border-radius:0;
 border:none!important;
 border-top:none!important;
 border-bottom:none!important;
 background:linear-gradient(135deg,var(--method-bg) 0%,var(--method-bg-deep) 100%);
 box-shadow:none;
 color:var(--method-ink)
}
.method::before,.method::after{
 content:none
}
.method-wave{
 position:absolute;
 left:-7%;
 z-index:1;
 width:114%;
 height:clamp(6rem,10vw,9.2rem);
 pointer-events:none;
 color:#fff;
 overflow:hidden;
 border:none!important;
 outline:none!important
}
.method-wave--top{top:-8px}
.method-wave--bottom{bottom:-8px}
.method-wave svg{
 display:block;
 width:100%;
 height:100%;
 overflow:visible;
 will-change:transform;
 transform:translate3d(calc(var(--method-wave-x) * .52px),0,0) scaleX(calc(1.018 + (var(--method-wave-pull) - 1) * .03));
 transform-origin:center;
 border:none!important;
 outline:none!important
}
.founder{border-bottom:none!important}
.site-footer{border:none!important;border-top:none!important;background:#ffffff!important}
.site-footer::before,.site-footer::after{display:none!important;content:none!important;height:0!important;border:none!important}
.method{border:none!important;border-top:none!important;border-bottom:none!important;margin-top:-2px!important;margin-bottom:-4px!important}
.method-wave--top{top:-2px!important}
.method-wave--bottom{bottom:-4px!important}
.method-wave--bottom svg{
 transform:translate3d(calc(var(--method-wave-x) * -.48px),0,0) scaleX(calc(1.018 + (var(--method-wave-pull) - 1) * .028)) scaleY(1.05);
 transform-origin:bottom center;
}
.method-wave__main{fill:#fff!important;stroke:none!important}
.method-wave__soft{fill:#fff!important;stroke:none!important;opacity:.28}
.method-wave__soft--a{
 transform:translate3d(calc(var(--method-wave-x) * -.46px),0,0);
 transition:transform 900ms cubic-bezier(.22,1,.36,1)
}
.method-wave__soft--b{
 opacity:.18;
 transform:translate3d(calc(var(--method-wave-x) * .34px),0,0);
 transition:transform 1100ms cubic-bezier(.22,1,.36,1)
}
.method.is-wave-active .method-wave svg{transition:none}
.method:not(.is-wave-active) .method-wave svg{transition:transform 900ms cubic-bezier(.22,1,.36,1)}
@media (prefers-reduced-motion:no-preference){
 .method-wave__main{animation:method-water-breathe 14s cubic-bezier(.32,.72,0,1) infinite alternate}
 .method-wave--bottom .method-wave__main{animation-duration:15.5s;animation-direction:alternate-reverse}
}
@keyframes method-water-breathe{
 from{transform:translate3d(-.45%,0,0)}
 to{transform:translate3d(.45%,0,0)}
}
.method__inner{
 position:relative;
 z-index:2;
 max-width:1180px;
 margin:0 auto;
 display:grid;
 grid-template-columns:minmax(0,1fr) minmax(300px,.36fr);
 align-items:center;
 gap:clamp(2.5rem,7vw,7rem)
}
.method__content{max-width:47rem}
.method__kicker{margin:0 0 .85rem;color:rgba(255,250,244,.72);font-size:.8rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase}
.method__actions{display:flex;flex-wrap:wrap;align-items:center;gap:1.1rem 1.65rem;margin-top:clamp(1.65rem,2.8vw,2.4rem)}
.method__actions .method__cta{margin-top:0}
.method__cases-link{display:inline-flex;align-items:center;gap:.4rem;color:rgba(255,250,244,.9);font-size:clamp(.92rem,1.2vw,1.02rem);font-weight:650;text-decoration:underline;text-decoration-color:rgba(255,250,244,.42);text-underline-offset:5px;transition:color 220ms ease,text-decoration-color 220ms ease,transform 220ms ease}
.method__cases-link:hover,.method__cases-link:focus-visible{color:#fff;text-decoration-color:#fff;transform:translateX(2px)}
.reveal{margin:0;font-family:var(--font-head);font-weight:var(--fw-display);letter-spacing:var(--tracking);color:var(--method-ink);text-wrap:balance}
.method__headline{max-width:15ch;font-size:clamp(2.3rem,4.7vw,4.5rem);line-height:1.01}
.reveal.is-split{color:var(--reveal-off)}
.reveal.is-done,.reveal.is-done .reveal__w{color:var(--method-ink)}
.reveal__w{color:var(--reveal-off);--t:calc(var(--i) / var(--count))}
@supports (animation-timeline:view()){
 .reveal.is-native .reveal__w{animation:word-ink steps(1,jump-end) both;animation-timeline:view();animation-range:cover calc(16% + var(--t) * 46%) cover calc(22% + var(--t) * 46%)}
}
@keyframes word-ink{from{color:var(--reveal-off)}to{color:var(--method-ink)}}
.reveal.is-split:not(.is-native) .reveal__w{color:color-mix(in srgb,var(--method-ink) calc(clamp(0,(var(--p,0) * 1.15 - var(--t) * .95) * 40,1) * 100%),var(--reveal-off))}
.method__lead{max-width:40ch;margin:clamp(1.25rem,2.5vw,2rem) 0 0;color:var(--method-muted);font-size:clamp(1rem,1.45vw,1.18rem);line-height:1.52}
.method__cta{display:inline-flex;align-items:center;gap:.9rem;margin-top:clamp(1.65rem,2.8vw,2.4rem);padding:.42rem .48rem .42rem 1.2rem;border:1px solid rgba(255,255,255,.58);border-radius:999px;background:#fff;color:var(--accent-deep);box-shadow:0 18px 44px rgba(22,7,38,.22),inset 0 1px 0 rgba(255,255,255,.75);font-size:clamp(.94rem,1.3vw,1.05rem);font-weight:var(--fw-title);letter-spacing:var(--tracking);text-decoration:none;transition:transform 560ms cubic-bezier(.32,.72,0,1),box-shadow 560ms cubic-bezier(.32,.72,0,1),background-color 560ms cubic-bezier(.32,.72,0,1)}
.method__arrow{display:grid;width:2.15rem;height:2.15rem;flex:none;place-items:center;border-radius:50%;background:var(--accent);color:#fff;transition:transform 560ms cubic-bezier(.32,.72,0,1),background-color 560ms cubic-bezier(.32,.72,0,1)}
.method__arrow svg{width:1.1rem;height:1.1rem}
.method__cta:hover,.method__cta:focus-visible{color:var(--accent-deep);background:#fff;transform:translateY(-2px);box-shadow:0 23px 54px rgba(22,7,38,.28),inset 0 1px 0 rgba(255,255,255,.75)}
.method__cta:hover .method__cta-label,.method__cta:focus-visible .method__cta-label{color:var(--accent-deep)}
.method__cta:hover .method__arrow,.method__cta:focus-visible .method__arrow{transform:translateX(3px) rotate(-4deg)}
.method__cta:active{transform:scale(.98)}
.method__cta:focus-visible{outline:2px solid #fff;outline-offset:5px}
.method__reassurance{margin:.82rem 0 0;color:rgba(255,250,244,.64);font-size:.78rem;font-weight:var(--fw-title);letter-spacing:.01em}
.method__visual{position:relative;min-height:clamp(300px,30vw,390px);display:grid;align-items:center;justify-items:center;justify-self:end;width:min(100%,28rem);isolation:isolate}
.method__visual::before{position:absolute;z-index:-2;width:min(100%,25rem);aspect-ratio:1;right:50%;bottom:50%;border-radius:50%;background:#fff;box-shadow:inset 0 1px 0 rgba(255,255,255,.9),0 30px 70px rgba(22,7,38,.28);content:"";transform:translate(50%,50%)}
.method__visual::after{content:none}
.method__visual-orbit{position:absolute;z-index:-1;width:min(88%,21.5rem);aspect-ratio:1;right:50%;bottom:50%;border:1px solid rgba(255,255,255,.26);border-radius:50%;transform:translate(50%,50%) rotate(14deg) scaleX(1.14)}
.method__shot{width:min(72%,18.4rem);height:auto;justify-self:center;transform:translate(0,0) rotate(-.8deg);filter:contrast(1.04) saturate(1.02) drop-shadow(0 14px 16px rgba(18,6,32,.26));image-rendering:auto;opacity:1}
@media (max-width:860px){
 .method{margin-inline:0;padding-top:5.65rem;padding-bottom:5.65rem;background:linear-gradient(155deg,var(--method-bg) 0%,var(--method-bg-deep) 100%)}
 .method-wave{left:-12%;width:124%;height:5.25rem}
 .method__inner{grid-template-columns:1fr;justify-items:center;gap:2.3rem;text-align:center}
 .method__content{display:flex;max-width:35rem;flex-direction:column;align-items:center;margin-inline:auto}
 .method__actions{justify-content:center}
 .method__headline{max-width:13ch;margin-inline:auto;font-size:clamp(2.15rem,10.4vw,3.45rem);line-height:1.02}
 .method__lead{max-width:33ch;margin-inline:auto;font-size:1rem;color:rgba(255,250,244,.78)}
 .method__visual{justify-self:center;width:min(70%,18rem);min-height:min(56vw,245px)}
 .method__visual::before{left:50%;right:auto;width:min(100%,18rem);transform:translate(-50%,50%)}
 .method__visual-orbit{left:50%;right:auto;width:min(90%,15.5rem);transform:translate(-50%,50%) rotate(14deg) scaleX(1.12)}
 .method__shot{width:min(74%,14.2rem);transform:translateY(0) rotate(-.8deg)}
}
@media (prefers-reduced-motion:reduce){
 .reveal,.reveal__w,.reveal.is-split .reveal__w{color:var(--method-ink);animation:none;transition:none}
 .method::before,.method::after{animation:none}
 .method__arrow,.method__cta{transition:none}
 .method__cta:hover,.method__cta:hover .method__arrow{transform:none}
}

/* ---- service-grid.css ---- */
.solution-picker{display:none}.service-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-top:clamp(3rem,6vw,5rem)}.service-card{position:relative;overflow:hidden;min-height:22rem;border:1px solid #e8e2ee;border-radius:18px;background:#fff;box-shadow:0 18px 44px rgba(33,16,64,.045)}.service-card summary{position:relative;z-index:1;display:flex;min-height:22rem;flex-direction:column;cursor:pointer;padding:clamp(1.4rem,3vw,2.35rem);list-style:none;background:linear-gradient(90deg,#fff 24%,rgba(255,255,255,.86) 54%,rgba(255,255,255,.08))}.service-card summary::-webkit-details-marker{display:none}.service-card summary>span{color:var(--accent);font-size:.78rem;font-weight:700;letter-spacing:.08em}.service-card h3{max-width:13ch;margin:.75rem 0;font-size:clamp(1.6rem,3vw,2.45rem);line-height:1;letter-spacing:var(--tracking)}.service-card summary i{display:grid;width:2.3rem;height:2.3rem;place-items:center;margin-top:auto;border-radius:50%;background:var(--accent);color:#fff;font-size:1.4rem;font-style:normal}.service-card__body{display:grid;gap:.55rem;padding:0 clamp(1.4rem,3vw,2.35rem) 2rem}.service-card__body a{color:var(--ink);font-weight:600;text-decoration-color:#cbbbe8;text-underline-offset:4px}.service-card__cta{margin-top:.7rem;color:var(--accent)!important}@media(max-width:700px){.service-grid{grid-template-columns:1fr}.service-card,.service-card summary{min-height:17rem}}

/* ---- service-experience.css ---- */
.solution-picker,
.solutions__capabilities{display:none!important}
.service-grid{
 width:min(100%,1100px);
 margin:clamp(2.6rem,5vw,4.5rem) auto 0;
 gap:clamp(.8rem,1.6vw,1.15rem)
}
.service-card{
 --scene-accent:#ffbf69;
 isolation:isolate;
 min-height:0;
 border:1px solid color-mix(in srgb,var(--ink) 9%,transparent);
 border-radius:22px;
 background:#fff;
 box-shadow:0 18px 45px rgba(34,18,58,.045);
 transform-origin:center top;
 transition:
  transform 460ms cubic-bezier(.22,1,.36,1),
  opacity 240ms cubic-bezier(.4,0,.2,1),
  border-color 360ms cubic-bezier(.22,1,.36,1),
  box-shadow 460ms cubic-bezier(.22,1,.36,1)
}
.service-card--time{--scene-accent:#84d5b3}
.service-card--tools{--scene-accent:#91b4ff}
.service-card--trust{--scene-accent:#efafd7}
.service-card:hover{transform:translateY(-3px);border-color:color-mix(in srgb,var(--accent) 35%,transparent);box-shadow:0 20px 48px rgba(44,20,75,.08)}
.service-card[open]{transform:none;border-color:color-mix(in srgb,var(--accent) 45%,transparent);box-shadow:0 24px 56px rgba(124,58,237,.12);width:100%}
.service-grid.is-focused{display:flex;flex-direction:column;gap:1.15rem}
.service-grid.is-focused .service-card:not([open]){opacity:.78;border-color:color-mix(in srgb,var(--ink) 12%,transparent);box-shadow:0 8px 24px rgba(34,18,58,.035);transition:opacity .25s ease,transform .25s ease,border-color .25s ease}
.service-grid.is-focused .service-card:not([open]):hover{opacity:1;transform:translateY(-2px);border-color:color-mix(in srgb,var(--accent) 38%,transparent);box-shadow:0 12px 32px rgba(44,20,75,.07)}
.service-grid.is-focused .service-card:not([open]) summary{min-height:clamp(4.8rem,6.5vw,5.6rem);padding:.85rem clamp(1.4rem,2.8vw,2.2rem);flex-direction:row;align-items:center;justify-content:space-between;background:#fff}
.service-grid.is-focused .service-card:not([open]) h3{font-size:clamp(1.15rem,1.7vw,1.4rem);margin:0;max-width:none;line-height:1.2}
.service-grid.is-focused .service-card:not([open]) .service-card__index{display:none}
.service-grid.is-focused .service-card:not([open]) .service-card__visual{display:none}
.service-grid.is-focused .service-card:not([open]) .service-card__cue{margin-top:0;align-self:center}
.service-card summary{
 position:relative;
 display:flex;
 min-height:clamp(20rem,31vw,25rem);
 overflow:hidden;
 flex-direction:column;
 padding:clamp(1.45rem,2.8vw,2.2rem);
 border-radius:inherit;
 background:linear-gradient(135deg,#fff 0 57%,color-mix(in srgb,var(--scene-accent) 12%,#fff) 100%);
 cursor:pointer;
 will-change:transform,min-height;
 transition:
  background 520ms cubic-bezier(.22,1,.36,1),
  transform 260ms cubic-bezier(.22,1,.36,1),
  min-height 480ms cubic-bezier(.22,1,.36,1)
}
.service-card[open] summary{
 min-height:clamp(11.5rem,17vw,14rem);
 border-radius:22px 22px 0 0;
 background:
  radial-gradient(circle at 85% 50%,color-mix(in srgb,var(--scene-accent) 18%,transparent),transparent 15rem),
  linear-gradient(135deg,#fff 0 58%,color-mix(in srgb,var(--scene-accent) 11%,#fff) 100%)
}
.service-card summary:focus-visible{outline:3px solid var(--accent);outline-offset:-5px}
.service-card summary:active{transform:scale(.996)}
.service-card__index{
 position:relative;
 z-index:2;
 color:var(--accent-deep)!important;
 font-size:.75rem!important;
 font-weight:700!important;
 letter-spacing:.075em!important;
 text-transform:uppercase
}
.service-card h3{
 position:relative;
 z-index:2;
 max-width:9ch;
 margin:.75rem 0 0;
 font-size:clamp(2rem,3.45vw,3.15rem);
 line-height:.98;
 letter-spacing:-.048em;
 text-wrap:balance
}
.service-card__visual{
 position:absolute;
 z-index:1;
 right:-4%;
 bottom:7%;
 width:51%;
 pointer-events:none;
 transform-origin:78% 70%;
 transition:transform 560ms cubic-bezier(.22,1,.36,1),right 520ms cubic-bezier(.22,1,.36,1),bottom 520ms cubic-bezier(.22,1,.36,1),width 520ms cubic-bezier(.22,1,.36,1)
}
.service-card__visual svg{display:block;width:100%;height:auto;overflow:visible}
.service-card:hover .service-card__visual,.service-card[open] .service-card__visual{transform:translate3d(-6px,-4px,0) scale(1.022)}
.service-card[open] .service-card__visual{right:2%;bottom:-6%;width:36%}
.service-tentacle{
 fill:none;
 stroke:var(--accent);
 stroke-width:25;
 stroke-linecap:round;
 stroke-linejoin:round;
 stroke-dasharray:1;
 stroke-dashoffset:.09;
 transition:stroke-dashoffset 620ms cubic-bezier(.22,1,.36,1)
}
.service-card:hover .service-tentacle,.service-card[open] .service-tentacle{stroke-dashoffset:0}
.service-tentacle__light{fill:none;stroke:#b98bd1;stroke-width:5;stroke-linecap:round;opacity:.85}
.service-suckers circle{fill:#fff;stroke:var(--accent-deep);stroke-width:2}
.service-people circle,.service-people path{fill:#fff;stroke:var(--ink);stroke-width:3}
.service-people circle:first-child{fill:var(--scene-accent)}
.service-signal{fill:none;stroke:var(--accent);stroke-width:5;stroke-linecap:round;stroke-linejoin:round}
.service-object{fill:color-mix(in srgb,var(--scene-accent) 45%,#fff);stroke:var(--ink);stroke-width:3}
.service-object__line{fill:none;stroke:var(--ink);stroke-width:5;stroke-linecap:round;stroke-linejoin:round}
.service-task rect:first-child{fill:#fff;stroke:var(--ink);stroke-width:2.5}
.service-task path{fill:none;stroke:var(--accent);stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.service-task rect:last-child{fill:var(--ink)}
.service-board rect{fill:#fff;stroke:var(--ink);stroke-width:2.5}
.service-board rect:nth-child(2),.service-board rect:nth-child(3){fill:color-mix(in srgb,var(--scene-accent) 42%,#fff)}
.service-board__line{fill:none;stroke:var(--ink);stroke-width:3;stroke-linecap:round}
.service-shield{fill:color-mix(in srgb,var(--scene-accent) 58%,#fff);stroke:var(--ink);stroke-width:3}
.service-shield__mark{fill:none;stroke:var(--accent);stroke-width:7;stroke-linecap:round;stroke-linejoin:round}
.service-stars{fill:var(--accent)}

/* Bouton + qui glisse et se transforme en X pour revenir */
.service-card__cue{
 position:relative;
 z-index:3;
 display:inline-flex;
 align-items:center;
 gap:.75rem;
 margin-top:auto;
 align-self:flex-start;
 padding:.32rem .36rem .32rem 1.02rem;
 border:1px solid color-mix(in srgb,var(--accent) 22%,var(--line));
 border-radius:999px;
 background:rgba(255,255,255,.92);
 backdrop-filter:blur(10px);
 -webkit-backdrop-filter:blur(10px);
 box-shadow:0 10px 26px rgba(44,20,75,.08);
 overflow:hidden;
 transition:
  background-color 480ms cubic-bezier(.22,1,.36,1),
  border-color 480ms cubic-bezier(.22,1,.36,1),
  box-shadow 480ms cubic-bezier(.22,1,.36,1),
  transform 340ms cubic-bezier(.22,1,.36,1)
}
.service-card summary:hover .service-card__cue{
 border-color:color-mix(in srgb,var(--accent) 48%,var(--line));
 box-shadow:0 14px 32px rgba(44,20,75,.13)
}
.service-card__cue-track{
 display:grid;
 align-items:center;
 will-change:transform;
 transition:transform 540ms cubic-bezier(.22,1.12,.36,1)
}
.service-card__cue b{
 grid-area:1/1;
 font-size:.88rem;
 font-weight:680;
 color:var(--ink);
 white-space:nowrap;
 transition:
  opacity 320ms cubic-bezier(.22,1,.36,1),
  transform 460ms cubic-bezier(.22,1,.36,1),
  color 320ms cubic-bezier(.22,1,.36,1)
}
.service-card__cue-open{
 opacity:1;
 transform:translate3d(0,0,0)
}
.service-card__cue-close{
 opacity:0;
 transform:translate3d(0,10px,0);
 color:var(--accent-deep);
 pointer-events:none
}
.service-card__cue i{
 position:relative;
 z-index:2;
 display:grid!important;
 width:2.45rem!important;
 height:2.45rem!important;
 margin:0!important;
 place-items:center;
 border:1px solid color-mix(in srgb,var(--accent) 24%,transparent);
 border-radius:50%;
 background:var(--accent)!important;
 color:transparent!important;
 font-size:0!important;
 font-style:normal;
 line-height:1;
 flex:none;
 box-shadow:0 8px 20px rgba(108,60,170,.24);
 will-change:transform,background-color;
 transition:
  transform 560ms cubic-bezier(.22,1.16,.36,1),
  background-color 420ms cubic-bezier(.22,1,.36,1),
  border-color 420ms cubic-bezier(.22,1,.36,1),
  box-shadow 420ms cubic-bezier(.22,1,.36,1)
}
.service-card__cue i::before,
.service-card__cue i::after{
 content:"";
 position:absolute;
 width:14px;
 height:2px;
 border-radius:999px;
 background:#fff;
 transition:transform 520ms cubic-bezier(.22,1.18,.36,1),background-color 320ms ease
}
.service-card__cue i::after{
 transform:rotate(90deg)
}
.service-card:not([open]):not(.is-cue-active) summary:hover .service-card__cue i{
 transform:scale(1.07) rotate(90deg)
}
.service-card.is-cue-active .service-card__cue,
.service-card[open]:not(.is-closing) .service-card__cue{
 border-color:color-mix(in srgb,var(--accent) 44%,var(--line));
 background:rgba(255,255,255,.97);
 box-shadow:0 14px 34px rgba(44,20,75,.14)
}
.service-card.is-cue-active .service-card__cue-track,
.service-card[open]:not(.is-closing) .service-card__cue-track{
 transform:translate3d(var(--cue-track-shift,2.35rem),0,0)
}
.service-card.is-cue-active .service-card__cue-open,
.service-card[open]:not(.is-closing) .service-card__cue-open{
 opacity:0;
 transform:translate3d(0,-10px,0);
 pointer-events:none
}
.service-card.is-cue-active .service-card__cue-close,
.service-card[open]:not(.is-closing) .service-card__cue-close{
 opacity:1;
 transform:translate3d(0,0,0)
}
.service-card.is-cue-active .service-card__cue i,
.service-card[open]:not(.is-closing) .service-card__cue i{
 transform:translate3d(calc(-1 * var(--cue-slide, 184px)),0,0) rotate(135deg)!important;
 background:var(--ink)!important;
 border-color:rgba(11,10,12,.22);
 box-shadow:0 8px 22px rgba(11,10,12,.24)
}
.service-card[open]:not(.is-closing) summary:hover .service-card__cue i{
 transform:translate3d(calc(-1 * var(--cue-slide, 184px)),0,0) rotate(225deg) scale(1.06)!important;
 background:var(--accent-deep)!important;
 box-shadow:0 10px 24px rgba(108,60,170,.32)
}

.service-card__body{
 display:grid;
 gap:.85rem;
 padding:clamp(1.05rem,2vw,1.45rem) clamp(1.45rem,2.8vw,2.2rem) clamp(1.25rem,2.4vw,1.75rem);
 border-top:1px solid color-mix(in srgb,var(--ink) 8%,transparent);
 overflow:hidden;
 will-change:height,opacity,transform
}
.service-card:not([open]) > .service-card__body{display:none}
.service-card[open] > .service-card__body{display:grid}
.service-card__body>p{margin:0;color:var(--muted);font-size:.75rem;font-weight:700;letter-spacing:.075em;text-transform:uppercase}
.service-card__back{display:none!important}
.service-card__services{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line)}
.service-card__services a{
 display:flex;
 min-height:4rem;
 align-items:center;
 justify-content:space-between;
 gap:1rem;
 padding:.9rem 1rem .9rem 0;
 border-bottom:1px solid var(--line);
 border-radius:14px;
 color:var(--ink);
 text-decoration:none;
 transition:
  background-color 280ms cubic-bezier(.22,1,.36,1),
  color 260ms cubic-bezier(.22,1,.36,1),
  transform 280ms cubic-bezier(.22,1,.36,1),
  padding 280ms cubic-bezier(.22,1,.36,1)
}
.service-card__services a:nth-child(odd){margin-right:1rem;border-right:1px solid var(--line);padding-right:1.2rem}
.service-card__services a:nth-child(even){padding-left:.2rem}
.service-card__services a:hover,
.service-card__services a:focus-visible{
 background:color-mix(in srgb,var(--accent) 6%,#fff);
 color:var(--accent-deep);
 transform:translateX(4px);
 padding-left:.8rem
}
.service-card__services a:focus-visible{
 outline:3px solid color-mix(in srgb,var(--accent) 42%,transparent);
 outline-offset:2px
}
.service-card__services span{font-size:clamp(.92rem,1.45vw,1.05rem);font-weight:620;line-height:1.25}
.service-card__services small{flex:none;color:var(--accent);font-size:.76rem;font-weight:700;transition:transform 260ms cubic-bezier(.22,1,.36,1)}
.service-card__services a:hover small{transform:translate(2px,-2px)}
.service-card__actions{display:flex;align-items:center;gap:.75rem;margin-top:.25rem}
.service-card__actions>a{
 display:inline-flex;
 min-height:2.75rem;
 align-items:center;
 justify-content:center;
 padding:0 1rem;
 border:1px solid var(--line);
 border-radius:999px;
 color:var(--ink);
 font-size:.88rem;
 font-weight:650;
 text-decoration:none;
 box-shadow:0 10px 26px rgba(44,20,75,.08)
}
.service-card__actions>a:hover{border-color:var(--accent);color:var(--accent)}
.service-card__actions .service-card__primary{border-color:var(--accent);background:var(--accent);color:#fff}
.service-card__actions .service-card__primary:hover{background:var(--accent-deep);color:#fff}
body:has(.service-card[open]) .octo-float,
body:has(.service-card[open]) .whatsapp-float,
body:has(.service-card[open]) .octo__teaser,
body.is-exploring-services .octo-float,
body.is-exploring-services .whatsapp-float,
body.is-exploring-services .octo__teaser{opacity:0;visibility:hidden;pointer-events:none}
.service-card__pricing{
 display:grid;
 gap:1rem;
 margin-top:0;
 padding-top:.35rem;
 border-top:none
}
.service-card__pricing-head{
 display:flex;
 align-items:baseline;
 justify-content:space-between;
 gap:1.5rem;
 padding:.35rem 0 .95rem;
 border-bottom:1px solid color-mix(in srgb,var(--ink) 9%,transparent)
}
.service-card__pricing-head strong{
 color:var(--accent-deep);
 font-size:1.02rem;
 letter-spacing:.04em;
 text-transform:uppercase;
 font-weight:800
}
.service-card__pricing-head span{
 color:color-mix(in srgb,var(--ink) 68%,transparent);
 font-size:.92rem;
 line-height:1.45;
 text-align:right;
 max-width:54ch
}
.service-card__offers{display:grid;gap:.25rem}
.service-offer-row{
 display:grid;
 grid-template-columns:minmax(0,1.35fr) minmax(14.5rem,auto) auto;
 align-items:center;
 gap:clamp(1rem,2vw,1.6rem);
 padding:1.2rem .95rem;
 border-bottom:1px solid color-mix(in srgb,var(--ink) 8%,transparent);
 border-radius:16px;
 background:transparent;
 transition:background-color 220ms ease,padding-inline 220ms ease,border-color 220ms ease,box-shadow 220ms ease
}
.service-offer-row:last-child{border-bottom:none}
.service-offer-row:hover{
 padding-inline:1.2rem;
 background:rgba(124,58,237,.04);
 border-color:rgba(124,58,237,.22);
 box-shadow:0 4px 18px rgba(124,58,237,.06)
}
.service-offer-row__copy{min-width:0}
.service-offer-row__copy>strong{
 display:block;
 font-size:clamp(1.15rem,1.4vw,1.26rem);
 line-height:1.25;
 font-weight:780;
 color:var(--ink);
 letter-spacing:-.015em
}
.service-offer-row__copy p{
 max-width:56ch;
 margin:.38rem 0 0;
 color:color-mix(in srgb,var(--ink) 68%,transparent);
 font-size:clamp(.94rem,1.1vw,1.02rem);
 line-height:1.55
}
.service-offer-row__price{
 display:flex;
 flex-direction:column;
 justify-content:center;
 gap:.32rem;
 min-width:0;
 font-variant-numeric:tabular-nums;
 line-height:1.2
}
.service-offer-row__price .price-setup{
 display:flex;
 align-items:baseline;
 flex-wrap:wrap;
 gap:.45rem
}
.service-offer-row__price .price-old{
 color:#DC2626!important;
 font-size:1.06rem;
 font-weight:750;
 text-decoration:line-through!important;
 text-decoration-color:#EF4444!important;
 text-decoration-thickness:2.4px!important;
 opacity:1;
 background:rgba(239,68,68,0.09);
 padding:.12rem .44rem;
 border-radius:6px;
 line-height:1.1;
 white-space:nowrap
}
.service-offer-row__price .price-current{
 font-size:clamp(1.42rem,1.8vw,1.62rem);
 font-weight:850;
 color:#0F0A19;
 letter-spacing:-.02em;
 line-height:1;
 white-space:nowrap
}
.service-offer-row__price .price-current--free{
 color:var(--accent-deep);
 font-weight:850
}
.service-offer-row__price .promo-pill{
 font-size:.72rem;
 font-weight:800;
 padding:.2rem .55rem;
 border-radius:999px;
 line-height:1.15;
 white-space:nowrap;
 letter-spacing:.02em
}
.service-offer-row__price .promo-pill--25{
 background:#FFE4E6;
 color:#BE123C;
 border:1px solid rgba(225,29,72,.35);
 box-shadow:0 2px 6px rgba(225,29,72,.12)
}
.service-offer-row__price .promo-pill--free{
 background:rgba(124,58,237,.1);
 color:var(--accent-deep);
 border:1px solid rgba(124,58,237,.3);
 font-weight:750
}
.service-offer-row__price .promo-pill--expired{
 background:rgba(11,10,12,.08);
 color:var(--muted);
 border:1px solid rgba(11,10,12,.12)
}
.service-offer-row__price .price-recurring{
 display:flex;
 align-items:baseline;
 flex-wrap:wrap;
 gap:.42rem
}
.service-offer-row__price .price-recurring__amount{
 font-size:1.02rem;
 font-weight:780;
 color:#4C1D95;
 white-space:nowrap
}
.service-offer-row__price .price-recurring__note{
 font-size:.84rem;
 font-weight:600;
 color:color-mix(in srgb,var(--ink) 58%,transparent);
 white-space:nowrap
}
.service-offer-row__price .price-recurring__note--once{
 color:#059669;
 font-weight:650;
 font-size:.85rem
}
.service-offer-row__actions{
 justify-self:end;
 display:inline-flex;
 align-items:center;
 gap:.55rem;
 flex-wrap:wrap
}
.service-offer-row__detail{
 display:inline-flex;
 align-items:center;
 gap:.35rem;
 padding:.58rem 1rem;
 border-radius:999px;
 border:1px solid rgba(124,58,237,.28);
 background:rgba(124,58,237,.06);
 color:var(--accent);
 font-size:.88rem;
 font-weight:650;
 text-decoration:none;
 white-space:nowrap;
 transition:all 200ms cubic-bezier(.22,1,.36,1)
}
.service-offer-row__detail:hover{
 background:rgba(124,58,237,.14);
 border-color:var(--accent);
 transform:translateY(-1px)
}
.service-offer-row__detail span{
 display:inline-block;
 transition:transform 200ms ease
}
.service-offer-row__detail:hover span{
 transform:translateX(3px)
}
.service-offer-row>a,
.service-offer-row__cta{
 justify-self:end;
 display:inline-flex;
 align-items:center;
 gap:.35rem;
 padding:.62rem 1.25rem;
 border-radius:999px;
 border:1px solid rgba(124,58,237,.32);
 background:#fff;
 color:var(--ink);
 font-size:.95rem;
 font-weight:750;
 text-decoration:none;
 white-space:nowrap;
 box-shadow:0 2px 10px rgba(44,20,75,.05);
 transition:all 220ms cubic-bezier(.22,1,.36,1)
}
.service-offer-row>a:hover,
.service-offer-row__cta:hover{
 background:var(--accent);
 color:#fff;
 border-color:var(--accent);
 transform:translateY(-2px);
 box-shadow:0 8px 24px rgba(124,58,237,.28)
}
.service-offer-row>a span,
.service-offer-row__cta span{
 color:var(--accent);
 display:inline-block;
 transition:transform 220ms ease
}
.service-offer-row>a:hover span,
.service-offer-row__cta:hover span{
 color:#fff;
 transform:translate(2px,-2px)
}
.service-pricing-error{margin:0;padding:.8rem 0;color:var(--muted);font-size:.92rem;line-height:1.45}.service-pricing-error a{color:var(--accent-deep);font-weight:650}
.service-pricing-note{margin:.6rem 0 0;padding-top:.85rem;border-top:1px solid color-mix(in srgb,var(--ink) 9%,transparent);color:var(--muted);font-size:.84rem;line-height:1.5}
.solutions__more{margin:clamp(1.6rem,3vw,2.4rem) 0 0;text-align:center}
.solutions__more a{color:var(--accent-deep);font-size:.98rem;font-weight:650;text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--accent) 40%,transparent);text-underline-offset:4px}
.solutions__more a:hover{color:var(--accent);text-decoration-color:currentColor}
.service-card[open] .service-card__services a,
.service-card[open] .service-offer-row{animation:service-row-in .38s cubic-bezier(.22,1,.36,1) both}
.service-card[open] .service-card__services a:nth-child(2),
.service-card[open] .service-offer-row:nth-child(2){animation-delay:.045s}
.service-card[open] .service-card__services a:nth-child(3),
.service-card[open] .service-offer-row:nth-child(3){animation-delay:.09s}
.service-card[open] .service-card__services a:nth-child(4),
.service-card[open] .service-offer-row:nth-child(4){animation-delay:.135s}
.service-card[open] .service-offer-row:nth-child(5){animation-delay:.18s}
@keyframes service-body-in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes service-row-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media(max-width:780px){
 .solutions__intro{margin-inline:auto;text-align:center}
 .solutions__intro>p:last-child{margin-inline:auto}
 .service-grid{grid-template-columns:1fr}
 .service-card[open]{grid-column:auto}
 .service-card summary{min-height:21rem}
 .service-card[open] summary{min-height:13.5rem}
 .service-card__visual{right:-1%;bottom:7%;width:45%;opacity:.94}
 .service-card[open] .service-card__visual{right:-5%;bottom:1%;width:42%}
 .service-card h3{max-width:7.2ch;font-size:clamp(2rem,8.5vw,2.8rem)}
 .service-card--clients h3,.service-card--time h3{max-width:11.5ch}
 .service-card__services{grid-template-columns:1fr}
 .service-card__services a:nth-child(odd){margin-right:0;border-right:0;padding-right:0}
 .service-card__services a:nth-child(even){padding-left:0}
 .service-card__services a:hover,
 .service-card__services a:focus-visible{transform:none;padding-left:.8rem}
 .service-card__body{padding:1.15rem .95rem 1.4rem}
 .service-card__pricing-head{align-items:flex-start;flex-direction:column;gap:.35rem;padding-bottom:.85rem}
 .service-card__pricing-head strong{font-size:1.02rem}
 .service-card__pricing-head span{text-align:left;font-size:.88rem;line-height:1.45}
 .service-offer-row{grid-template-columns:1fr;gap:.85rem;padding:1.15rem .65rem;border-radius:12px}
 .service-offer-row:hover{padding-inline:.65rem}
 .service-offer-row__copy>strong{font-size:1.15rem}
 .service-offer-row__copy p{max-width:100%;font-size:.92rem;margin-top:.28rem}
 .service-offer-row__price{padding-top:.4rem;border-top:1px dashed rgba(124,58,237,.16);gap:.25rem}
 .service-offer-row__price .price-old{font-size:.98rem}
 .service-offer-row__price .price-current{font-size:1.38rem}
 .service-offer-row__price .price-recurring__amount{font-size:.95rem}
 .service-offer-row__price .price-recurring__note{font-size:.8rem}
 .service-offer-row__actions{justify-self:stretch;width:100%;display:flex;flex-direction:column;gap:.5rem}
 .service-offer-row__actions>a,
 .service-offer-row>a{justify-self:stretch;justify-content:center;width:100%;padding:.72rem 1rem;font-size:.94rem;background:rgba(124,58,237,.06);border-color:rgba(124,58,237,.28);color:var(--accent-deep)}
 .service-offer-row__actions>a:hover,
 .service-offer-row>a:hover{background:var(--accent);color:#fff}
}
@media(max-width:440px){
 .solutions__intro>p:last-child{font-size:.98rem}
 .service-card summary{min-height:14.5rem;padding:1.25rem}
 .service-card[open] summary{min-height:11.5rem}
 .service-card h3{max-width:11.5ch;font-size:clamp(1.7rem,8.4vw,2.1rem)}
 .service-card__visual{right:-1%;bottom:6%;width:41%}
 .service-card__cue b{font-size:.8rem}
 .service-card__body{padding:1rem .75rem 1.25rem}
 .service-card__services a{min-height:4rem}
 .service-card__services small{display:none}
 .service-card__actions{align-items:stretch;flex-direction:column}
 .service-card__actions>a{width:100%}
 .service-offer-row{padding:1rem .4rem}
 .service-offer-row__copy>strong{font-size:1.08rem}
 .service-offer-row__copy p{font-size:.88rem}
 .service-offer-row__price .price-current{font-size:1.28rem}
}
@media(prefers-reduced-motion:reduce){
 .service-card,.service-card summary,.service-card__visual,.service-tentacle,.service-card__cue,.service-card__cue-track,.service-card__cue b,.service-card__cue i,.service-card__services a{transition:none!important;transform:none!important}
 .service-grid.is-focused:not(.is-settled) .service-card:not(.is-focused),.service-grid.is-closing .service-card.is-focused,.service-grid.is-restoring .service-card{filter:none;opacity:1}
 .service-card__body,.service-card[open] .service-card__services a,.service-card[open] .service-offer-row{animation:service-body-fade .15s linear both}
}
.service-grid.is-motion-reduced .service-card,.service-grid.is-motion-reduced .service-card summary,.service-grid.is-motion-reduced .service-card__body,.service-grid.is-motion-reduced .service-card__services a,.service-grid.is-motion-reduced .service-offer-row,.service-grid.is-motion-reduced .service-card__cue i,.service-grid.is-motion-reduced .service-card__cue-track{animation:none!important;transition:none!important}
@keyframes service-body-fade{from{opacity:0}to{opacity:1}}

.sector-demos{
 width:min(100%,1100px);
 margin:clamp(3.2rem,6vw,5rem) auto 0;
 padding:clamp(1.6rem,3vw,2.4rem);
 border:1px solid color-mix(in srgb,var(--accent) 18%,var(--line));
 border-radius:24px;
 background:linear-gradient(145deg,rgba(255,255,255,.94),color-mix(in srgb,var(--accent) 5%,#fff));
 box-shadow:0 18px 46px rgba(34,18,58,.055)
}
.sector-demos__head{
 display:flex;
 flex-wrap:wrap;
 align-items:flex-end;
 justify-content:space-between;
 gap:1rem 2rem;
 margin-bottom:clamp(1.25rem,2.4vw,1.8rem)
}
.sector-demos__head h3{
 margin:.35rem 0 0;
 font-family:var(--font-head);
 font-size:clamp(1.4rem,2.5vw,2.05rem);
 font-weight:var(--fw-display);
 line-height:1.08;
 letter-spacing:var(--tracking);
 max-width:28ch;
 text-wrap:balance
}
.sector-demos__all{
 display:inline-flex;
 align-items:center;
 gap:.4rem;
 padding:.55rem 1.05rem;
 border:1px solid color-mix(in srgb,var(--accent) 32%,var(--line));
 border-radius:999px;
 background:#fff;
 color:var(--accent-deep);
 font-size:.86rem;
 font-weight:700;
 text-decoration:none;
 transition:transform 280ms cubic-bezier(.22,1,.36,1),border-color 260ms ease,background-color 260ms ease,box-shadow 280ms cubic-bezier(.22,1,.36,1)
}
.sector-demos__all:hover{
 transform:translateY(-2px);
 border-color:var(--accent);
 background:color-mix(in srgb,var(--accent) 8%,#fff);
 box-shadow:0 10px 24px rgba(44,20,75,.09)
}
.sector-demos__grid{
 display:grid;
 grid-template-columns:repeat(auto-fill,minmax(235px,1fr));
 gap:.75rem
}
.sector-demo-chip{
 display:flex;
 flex-direction:column;
 justify-content:space-between;
 gap:.75rem;
 min-height:108px;
 padding:.95rem 1.05rem;
 border:1px solid color-mix(in srgb,var(--ink) 9%,transparent);
 border-radius:18px;
 background:#fff;
 color:var(--ink);
 text-decoration:none;
 position:relative;
 overflow:hidden;
 transition:
  transform 320ms cubic-bezier(.22,1,.36,1),
  border-color 260ms ease,
  box-shadow 320ms cubic-bezier(.22,1,.36,1),
  background-color 260ms ease
}
.sector-demo-chip__header{
 display:flex;
 align-items:center;
 justify-content:space-between;
 gap:.5rem
}
.sector-demo-chip__icon{
 display:grid;
 place-items:center;
 width:36px;
 height:36px;
 border-radius:10px;
 background:rgba(124,58,237,.06);
 border:1px solid rgba(124,58,237,.12);
 color:#0B0A0C;
 flex:none;
 transition:
  transform 300ms cubic-bezier(.22,1.2,.36,1),
  background-color 260ms ease,
  border-color 260ms ease,
  color 260ms ease,
  box-shadow 300ms cubic-bezier(.22,1,.36,1)
}
.sector-demo-chip__icon svg{
 display:block;
 width:21px;
 height:21px;
 overflow:visible
}
.sector-demo-chip__arrow{
 color:var(--muted);
 font-size:.86rem;
 font-weight:700;
 transition:transform 280ms cubic-bezier(.22,1,.36,1),color 240ms ease
}
.sector-demo-chip__text{
 display:flex;
 flex-direction:column;
 gap:.2rem
}
.sector-demo-chip strong{
 font-size:.92rem;
 font-weight:720;
 line-height:1.22;
 color:var(--ink);
 transition:color 240ms ease
}
.sector-demo-chip span.sector-demo-chip__desc{
 color:var(--muted);
 font-size:.76rem;
 font-weight:550;
 line-height:1.32;
 transition:color 240ms ease
}
.sector-demo-chip:hover,.sector-demo-chip:focus-visible{
 transform:translateY(-3px) scale(1.01);
 border-color:var(--accent);
 background:linear-gradient(145deg,#fff 0%,color-mix(in srgb,var(--accent) 3.5%,#fff) 100%);
 box-shadow:0 16px 36px rgba(44,20,75,.11)
}
.sector-demo-chip:hover .sector-demo-chip__icon{
 background:rgba(124,58,237,.14);
 border-color:rgba(124,58,237,.32);
 transform:scale(1.08) rotate(-2deg);
 box-shadow:0 6px 16px rgba(124,58,237,.18);
 color:var(--accent-deep)
}
.sector-demo-chip:hover .sector-demo-chip__arrow{
 transform:translate(2px,-2px);
 color:var(--accent)
}
.sector-demo-chip:hover strong{
 color:var(--accent-deep)
}
.sector-demo-chip:hover span.sector-demo-chip__desc{
 color:var(--accent-deep)
}
@media(max-width:640px){
 .sector-demos{padding:1.25rem;border-radius:20px}
 .sector-demos__grid{grid-template-columns:1fr 1fr;gap:.55rem}
 .sector-demo-chip{min-height:0;padding:.8rem .85rem;gap:.5rem}
 .sector-demo-chip__icon{width:32px;height:32px}
 .sector-demo-chip__icon svg{width:18px;height:18px}
 .sector-demo-chip strong{font-size:.82rem}
 .sector-demo-chip span.sector-demo-chip__desc{font-size:.69rem}
}
@media(max-width:440px){
 .sector-demos__grid{grid-template-columns:1fr}
}

/* ---- services-bg.css ---- */
/* Fond de la section Services : formes organiques violettes animées par js/services-bg.js. */
.solutions{position:relative;isolation:isolate;overflow:hidden;background:#5d1ec2}
.solutions__bg{position:absolute;inset:0;z-index:-1;overflow:hidden;pointer-events:none;background:#5d1ec2}
.solutions__bg svg{position:absolute;inset:0;display:block;width:100%;height:100%}
.solutions__bg::after{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(36,6,104,.3) 1px,transparent 1.5px),radial-gradient(rgba(36,6,104,.3) 1px,transparent 1.5px);background-size:6px 6px;background-position:0 0,3px 3px}
.solutions .solutions__intro h2{color:#fff}
.solutions .solutions__intro .section-kicker{color:#e3d5ff}
.solutions .solutions__intro>p:last-child{color:rgba(255,255,255,.88)}

/* ---- be-map.css ---- */
/* Carte de la Belgique : générée par scripts/build-be-map.mjs */
.be-map{padding:clamp(1rem,3vw,2.5rem);border-radius:20px;background:radial-gradient(120% 90% at 50% 55%,#FFFFFF 0%,#F6F4F9 100%);outline:1px solid rgba(0,0,0,.06);outline-offset:-1px}
.be-map svg{display:block;width:100%;max-width:760px;height:auto;margin:auto;overflow:visible}
.bm-fla{fill:#ECEAF0}.bm-wal{fill:#E3D7F4}.bm-bxl{fill:#CDBDE6}
.bm-fla,.bm-wal,.bm-bxl{stroke:#fff;stroke-width:2;stroke-linejoin:round}
.bm-inner{fill:none;stroke:#fff;stroke-width:1.2;stroke-linejoin:round;opacity:.9}
.bm-arc{fill:none;stroke:#6C3CAA;stroke-width:1.5;stroke-linecap:round;opacity:.38;stroke-dasharray:1}
.bm-dot{fill:#fff;stroke:rgba(108,60,170,.28);stroke-width:1;filter:drop-shadow(0 2px 4px rgba(44,22,110,.18))}
.bm-dot--hq{stroke:#6C3CAA;stroke-width:2.5;filter:drop-shadow(0 6px 14px rgba(76,38,125,.30))}
.bm-ring{fill:#6C3CAA;opacity:0;transform-box:fill-box;transform-origin:center}
.bm-lb{font:600 14px 'General Sans',sans-serif;fill:#3F3A47;paint-order:stroke;stroke:rgba(255,255,255,.85);stroke-width:4px;stroke-linejoin:round}
.bm-lb--hq{font-size:20px;font-weight:700;fill:#4D267D;text-anchor:middle}
.bm-mid{text-anchor:middle}.bm-end{text-anchor:end}
@media(max-width:640px){.bm-lb{font-size:26px;stroke-width:6px}.bm-lb--hq{font-size:32px}.bm-minor{display:none}.bm-pin:not(.bm-hq) .bm-dot,.bm-pin:not(.bm-hq) image{transform-box:fill-box;transform-origin:center;scale:1.35}}
.vz-armed .bm-pin{opacity:0;transform:translateY(8px) scale(.85);transform-box:fill-box;transform-origin:center}
.vz-armed .bm-arc{stroke-dashoffset:1}
.be-map.is-in .bm-pin{animation:bm-in .5s cubic-bezier(.2,.8,.2,1) forwards}
.be-map.is-in .bm-arc{animation:bm-draw .9s cubic-bezier(.4,0,.2,1) forwards}
.be-map.is-in .bm-d1{animation-delay:320ms}.be-map.is-in .bm-d2{animation-delay:390ms}.be-map.is-in .bm-d3{animation-delay:460ms}.be-map.is-in .bm-d4{animation-delay:530ms}.be-map.is-in .bm-d5{animation-delay:600ms}.be-map.is-in .bm-d6{animation-delay:670ms}.be-map.is-in .bm-d7{animation-delay:740ms}.be-map.is-in .bm-d8{animation-delay:810ms}.be-map.is-in .bm-d9{animation-delay:880ms}.be-map.is-in .bm-d10{animation-delay:950ms}.be-map.is-in .bm-d11{animation-delay:1020ms}.be-map.is-in .bm-d12{animation-delay:1090ms}.be-map.is-in .bm-d13{animation-delay:1160ms}.be-map.is-in .bm-d14{animation-delay:1230ms}.be-map.is-in .bm-d15{animation-delay:1300ms}
.be-map.is-in .bm-ring{animation:bm-pulse 2.8s cubic-bezier(.2,.6,.3,1) 1.2s infinite}
.be-map.is-in .bm-ring2{animation-delay:2.6s}
@keyframes bm-in{to{opacity:1;transform:none}}
@keyframes bm-draw{to{stroke-dashoffset:0}}
@keyframes bm-pulse{0%{opacity:.28;transform:scale(1)}100%{opacity:0;transform:scale(2.6)}}
@media(prefers-reduced-motion:reduce){.bm-pin{opacity:1!important;transform:none!important;animation:none!important}.bm-arc{stroke-dashoffset:0!important;animation:none!important}.bm-ring{animation:none!important;opacity:0}}
.be-map a{cursor:pointer}.be-map a:hover .bm-dot,.be-map a:focus-visible .bm-dot{stroke:#6C3CAA;stroke-width:2}.be-map a:hover .bm-lb,.be-map a:focus-visible .bm-lb{fill:#4D267D;text-decoration:underline}.be-map a:focus-visible{outline:none}

/* ---- home.css ---- */
/* Accueil : passe de finition (rythme, hierarchie, vitrine). Charge en dernier.
   Le carrousel .service-grid n'est pas touche ici. */
:root{
 --home-ink:#120E17;
 --home-ink-2:#1C1624;
 --home-soft:#F6F4F8;
 --home-line:rgba(18,14,23,.1);
 --home-ease:cubic-bezier(.22,1,.36,1);
 --home-gap:clamp(5rem,10vw,8.5rem);
 --fs-h2:clamp(2rem,4.4vw,3.6rem);
 --fs-h3:clamp(1.5rem,2.6vw,2.15rem)
}
html{-moz-osx-font-smoothing:grayscale}

/* Hero : typo plus affirmee, rythme vertical constant */
@media (min-width:901px){.hero h1{font-size:clamp(3.4rem,6.2vw,5.6rem);letter-spacing:-.025em;line-height:.98}}
.hero p{text-wrap:pretty;color:#4A4640}
.hero__actions{gap:.85rem}
.hero__trust{font-variant-numeric:tabular-nums;letter-spacing:.01em}

/* Titres de section : une seule echelle */
.solutions__intro h2,.audit__title{font-size:var(--fs-h2);letter-spacing:-.025em;line-height:1.02;text-wrap:balance}
.audit__lead,.solutions__intro>p:last-child{text-wrap:pretty}

/* #services : le violet devient une scene cadree, plus un aplat bord a bord */
@media (min-width:901px){
 .solutions{margin-inline:clamp(.75rem,1.6vw,1.5rem);border-radius:clamp(24px,2.4vw,36px)}
}

/* Mockup navigateur + telephone, compose en CSS a partir des captures reelles des demos */
.mock{position:relative;display:block;padding:0 13% 9% 0}
.mock__browser{
 display:block;overflow:hidden;border-radius:14px;background:#fff;
 outline:1px solid rgba(18,14,23,.08);outline-offset:-1px;
 box-shadow:0 1px 1px rgba(18,14,23,.04),0 22px 44px -26px rgba(30,14,50,.38);
 transition:transform 600ms var(--home-ease)
}
.mock__bar{display:flex;align-items:center;gap:5px;height:26px;padding:0 10px;background:#F2F0F4;border-bottom:1px solid rgba(18,14,23,.06)}
.mock__bar i{flex:none;width:7px;height:7px;border-radius:50%;background:#D7D2DC}
.mock__url{flex:1;min-width:0;margin-left:10px;margin-right:30px;padding:2px 8px;border-radius:6px;background:#fff;color:#6E6876;font-size:.75rem;line-height:1.3;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mock__screen{display:block;width:100%;height:auto;aspect-ratio:16/10;object-fit:cover;object-position:top}
.mock__phone{
 position:absolute;right:0;bottom:0;width:25%;aspect-ratio:390/790;
 padding:4px;border-radius:clamp(14px,2.2vw,22px);background:#120E17;
 box-shadow:0 22px 40px -18px rgba(18,14,23,.6);
 transition:transform 600ms var(--home-ease)
}
.mock__phone img{display:block;width:100%;height:100%;object-fit:cover;object-position:top;border-radius:clamp(10px,1.8vw,18px)}

/* Preuve visuelle : mur de demos en defilement horizontal natif */
.proof{padding:var(--home-gap) 0 calc(var(--home-gap) * .8);overflow:hidden}
.proof__head{
 display:flex;align-items:flex-end;justify-content:space-between;gap:1.5rem;
 width:min(100% - 2 * clamp(1.25rem,5vw,3rem),var(--wrap));margin:0 auto clamp(1.75rem,3.5vw,2.75rem)
}
.proof__head h2{margin:0;font-size:var(--fs-h2);line-height:1.02;letter-spacing:-.025em;text-wrap:balance;max-width:16ch}
.proof__head .section-kicker{margin-bottom:.9rem}
.proof__nav{display:flex;align-items:center;gap:.6rem;flex:none}
.proof__nav[hidden]{display:none}
/* Flèches bien visibles : pastilles pleines à l'encre, flèche blanche épaisse */
.proof__btn{
 display:grid;place-items:center;width:60px;height:60px;padding:0;border:0;border-radius:50%;
 background:var(--ink);color:#fff;cursor:pointer;
 box-shadow:0 1px 2px rgba(18,14,23,.18),0 12px 26px -12px rgba(18,14,23,.55);
 transition-property:transform,background-color,color,box-shadow;transition-duration:220ms;transition-timing-function:var(--home-ease)
}
.proof__btn svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}
.proof__btn:hover{background:var(--accent);box-shadow:0 1px 2px rgba(18,14,23,.18),0 14px 30px -12px var(--accent)}
.proof__btn:active{transform:scale(.94)}
.proof__btn:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
/* Pause : bouton secondaire, plus discret que les flèches */
.proof__btn--toggle{width:44px;height:44px;margin-right:.35rem;background:transparent;color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--home-line)}
.proof__btn--toggle svg{width:18px;height:18px}
.proof__btn--toggle:hover{background:var(--ink);color:#fff;box-shadow:none}
.proof__btn--toggle[hidden]{display:none}
.proof__ico-play{fill:currentColor!important;stroke:none!important;display:none}
.proof__btn--toggle.is-paused .proof__ico-play{display:block}
.proof__btn--toggle.is-paused .proof__ico-pause{display:none}
.proof__rail{
 --edge:max(clamp(1.25rem,5vw,3rem),(100% - var(--wrap)) / 2);
 display:grid;grid-auto-flow:column;grid-auto-columns:min(82vw,600px);gap:clamp(1rem,2.2vw,1.75rem);
 margin:0;padding:.5rem var(--edge) 1.5rem;list-style:none;
 overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scroll-padding-inline:var(--edge);
 scrollbar-width:none
}
.proof__rail::-webkit-scrollbar{display:none}
/* Défilement automatique : l'aimantation des cartes gênerait le mouvement lent */
.proof__rail.is-auto{scroll-snap-type:none}
.proof-card{scroll-snap-align:start;min-width:0}
.proof-card__link{display:block;color:var(--ink);text-decoration:none;border-radius:18px}
.proof-card__link:focus-visible{outline:2px solid var(--accent);outline-offset:6px}
.proof-card__meta{display:flex;align-items:center;gap:.6rem;margin-top:1.1rem}
.proof-card__meta strong{font-size:1.06rem;font-weight:620;letter-spacing:-.01em}
.proof-card__meta span{color:#6E6876;font-size:.9rem}
.proof-card__meta i{
 display:grid;place-items:center;width:34px;height:34px;margin-left:auto;border:1px solid var(--home-line);border-radius:50%;
 font-style:normal;font-size:.85rem;color:var(--accent-deep);
 transition-property:transform,background-color,color,border-color;transition-duration:300ms;transition-timing-function:var(--home-ease)
}
@media (hover:hover){
 .proof-card__link:hover .mock__browser{transform:translateY(-4px)}
 .proof-card__link:hover .mock__phone{transform:translateY(-10px)}
 .proof-card__link:hover .proof-card__meta i{background:var(--accent);border-color:var(--accent);color:#fff;transform:translate(2px,-2px)}
}
.proof__foot{
 display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.25rem 1.5rem;
 width:min(100% - 2 * clamp(1.25rem,5vw,3rem),var(--wrap));margin:clamp(.5rem,1.5vw,1rem) auto 0;
 color:#6E6876;font-size:.86rem
}
.proof__foot a{display:inline-flex;align-items:center;gap:.4rem;min-height:44px;color:var(--accent-deep);font-weight:620;text-decoration:none}
.proof__foot a:hover{text-decoration:underline;text-underline-offset:4px}
@media (max-width:640px){
 .proof__rail{grid-auto-columns:86vw}
 .proof__head{align-items:flex-start;flex-direction:column;gap:1.1rem}
 .proof__btn{width:52px;height:52px}
 .proof__btn--toggle{width:44px;height:44px}
 .mock__url{margin-right:6px}
}

/* CTA final : frise numerotee + conditions en pastilles (remplace les paragraphes) */
.method-steps{
 position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1rem,2.4vw,1.75rem);
 max-width:40rem;margin:clamp(1.75rem,3.2vw,2.5rem) 0 0;padding:0;list-style:none;counter-reset:none
}
.method-steps::before{content:"";position:absolute;top:22px;left:22px;right:22px;height:1px;background:rgba(255,250,244,.18)}
.method-steps__item{position:relative;display:grid;grid-template-columns:auto;justify-items:start;align-content:start;gap:.7rem;text-align:left}
.method-steps__item svg{
 box-sizing:content-box;width:20px;height:20px;padding:11px;border:1px solid rgba(255,250,244,.22);border-radius:50%;
 background:var(--home-ink);fill:none;stroke:#fff;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round
}
.method-steps__item svg .is-fill{fill:#CDB8F2;stroke:none}
.method-steps__n{position:absolute;top:-.15rem;left:52px;color:#CDB8F2;font-size:.72rem;font-weight:620;letter-spacing:.08em;font-variant-numeric:tabular-nums}
.method-steps__item strong{max-width:15ch;color:#fff;font-size:clamp(.98rem,1.3vw,1.08rem);font-weight:560;line-height:1.3;text-wrap:balance}
.method-perks{display:flex;flex-wrap:wrap;gap:.45rem;margin:1.4rem 0 0;padding:0;list-style:none}
.method-perks li{padding:.42rem .8rem;border:1px solid rgba(255,250,244,.18);border-radius:999px;color:rgba(255,250,244,.8);font-size:.8rem;line-height:1.3;font-variant-numeric:tabular-nums}
.method-perks b{color:#fff;font-weight:650}
@media (max-width:860px){
 .method-steps{grid-template-columns:1fr;gap:1rem;max-width:22rem;margin-inline:auto}
 .method-steps::before{top:22px;bottom:22px;left:22px;right:auto;width:1px;height:auto}
 .method-steps__item{grid-template-columns:auto 1fr;align-items:center;column-gap:1rem}
 .method-steps__n{position:static;grid-column:2;grid-row:1;align-self:end;margin-bottom:-.5rem}
 .method-steps__item svg{grid-row:1/3}
 .method-steps__item strong{grid-column:2;max-width:none}
 .method-perks{justify-content:center}
}

/* Apparition legere (reveal.js pose .has-scroll-reveal puis .is-in), jamais de pin */
.has-scroll-reveal .proof-card,.has-scroll-reveal .method-steps__item{opacity:0;transform:translateY(22px);transition:opacity 700ms var(--home-ease),transform 700ms var(--home-ease)}
.has-scroll-reveal .proof-card.is-in,.has-scroll-reveal .method-steps__item.is-in{opacity:1;transform:none}
.has-scroll-reveal .method-steps__item:nth-child(2){transition-delay:90ms}
.has-scroll-reveal .method-steps__item:nth-child(3){transition-delay:180ms}
/* Parallax leger du telephone pendant le defilement horizontal du mur (thread de composition) */
@supports (animation-timeline:view()){
 @media (prefers-reduced-motion:no-preference){
  .proof .mock__phone{animation:proof-drift linear both;animation-timeline:view(inline)}
  @keyframes proof-drift{from{translate:0 14px}to{translate:0 -14px}}
 }
}
@media (prefers-reduced-motion:reduce){
 .mock__browser,.mock__phone,.proof-card__meta i{transition:none}
 .proof-card__link:hover .mock__browser,.proof-card__link:hover .mock__phone{transform:none}
}


/* Fondateur : split editorial, la personne a gauche, la parole a droite */
.founder{padding:var(--home-gap) clamp(1.25rem,5vw,3rem);text-align:left}
.founder__inner{
 max-width:var(--wrap);
 display:grid;
 grid-template-columns:minmax(0,1fr) minmax(0,3fr);
 grid-template-rows:auto auto 1fr;
 column-gap:clamp(2rem,6vw,6rem);
 align-items:start
}
.founder__quote{grid-column:2;grid-row:1/4}
.founder__quote p{margin:0;max-width:30ch;font-size:clamp(1.6rem,3.3vw,2.9rem);letter-spacing:-.02em;line-height:1.08;text-wrap:pretty}
.founder__avatar{
 grid-column:1;grid-row:1;
 width:clamp(96px,11vw,148px);height:auto;aspect-ratio:1;
 margin:.4rem 0 0;border-radius:24px;
 outline:1px solid rgba(0,0,0,.08);outline-offset:-1px
}
.founder__name{grid-column:1;grid-row:2;margin-top:1.1rem}
.founder__role{grid-column:1;grid-row:3}
@media (max-width:760px){
 .founder__inner{grid-template-columns:auto 1fr;grid-template-rows:auto auto auto;column-gap:1rem;row-gap:0}
 .founder__quote{grid-column:1/-1;grid-row:1;margin-bottom:2rem}
 .founder__avatar{grid-row:2/4;width:64px;margin:0;border-radius:16px}
 .founder__name{grid-column:2;grid-row:2;margin:.55rem 0 0}
 .founder__role{grid-column:2;grid-row:3}
}

/* CTA final : encre profonde, le violet reste l'accent du bouton */
.method{
 --method-bg:var(--home-ink);
 --method-bg-deep:var(--home-ink-2);
 --method-muted:rgba(255,250,244,.78);
 background:var(--home-ink)
}
.method__headline{font-size:clamp(2.3rem,5.4vw,4.6rem)!important;letter-spacing:-.03em!important;line-height:1!important;text-wrap:balance}
.method__lead{text-wrap:pretty}
.method__kicker{color:#CDB8F2}
.method__reassurance{font-variant-numeric:tabular-nums}

/* Pied de page : plus de respiration, hierarchie nette */
.site-footer{background:var(--home-soft)!important;padding-top:clamp(4.5rem,9vw,7.5rem)}
.site-footer__inner{align-items:start}
.site-footer__brand{font-size:clamp(1.5rem,2.6vw,2.1rem);letter-spacing:-.02em}
.site-footer h2{font-size:.78rem;letter-spacing:.08em;color:#5A5560;font-weight:600}
.site-footer nav a,.site-footer__inner>div:last-child a{padding-block:.2rem;text-decoration:none}
.site-footer nav a:hover,.site-footer__inner>div:last-child a:hover{text-decoration:underline}
.site-footer__legal{font-size:.8rem;color:#5A5560;border-top-color:var(--home-line)}


/* CTA unique : libelle plus long, jamais de debordement a 375 px */
@media (max-width:520px){
 .hero__actions{flex-direction:column;align-items:stretch}
 .hero__actions .btn,.menu__foot .btn{width:100%;justify-content:center;text-align:center;white-space:normal}
 .method__cta{max-width:100%}
 .method__cta-label{white-space:normal}
}
.hero__trust{text-wrap:balance}
.site-footer__inner a[href^="/contact.html"]{display:block;font-weight:600;color:var(--accent);margin-bottom:.5rem}
.mock__url::before{content:attr(data-url)}

/* Maillage : villes, metiers, guides */
.home-reach{max-width:1200px;margin:0 auto;padding:clamp(3rem,7vw,5.5rem) 16px}
.home-reach__title{margin:0 0 2rem;font-size:clamp(1.5rem,3vw,2.2rem);line-height:1.1;letter-spacing:-.02em;color:var(--ink)}
.home-reach__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:2rem}
.home-reach__hub{display:inline-block;margin-bottom:.8rem;font-weight:650;color:var(--ink);text-decoration:none;border-bottom:1px solid var(--ink)}
.home-reach ul{margin:0;padding:0;list-style:none;display:grid;gap:.5rem}
.home-reach li a{color:var(--muted);text-decoration:none;font-size:.95rem}
.home-reach a:hover,.home-reach a:focus-visible{color:var(--ink);text-decoration:underline;text-underline-offset:3px}

/* ---- Passe conversion / UX (audit nov. 2026) ---- */

/* Hero : un seul CTA principal, prix dessous, deux liens texte secondaires.
   « ramener » garde sa couleur et son animation ; les trois lignes du titre
   ont enfin la même taille (le mot ne dépasse plus du reste). */
@media (min-width:768px){
 .hero h1{font-size:clamp(2.6rem,4.9vw,4.9rem);text-wrap:balance}
 .hero__lead,.hero__consequence{font-size:1em;line-height:1.45}
 .hero__consequence{transform:none}
}
@media (min-width:768px) and (max-width:1350px){
 .hero__consequence{font-size:1em}
}
.hero__actions{flex-direction:column;align-items:center;gap:.4rem}
.hero__price{margin:0;font-size:.95rem;font-weight:650;color:var(--ink)!important;font-variant-numeric:tabular-nums}
.hero__links{display:flex;flex-wrap:wrap;justify-content:center;gap:0 1.5rem;margin:0}
.hero__links a{display:inline-flex;align-items:center;min-height:44px;padding-inline:.25rem;color:var(--accent-deep);font-weight:620;text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--accent) 45%,transparent);text-underline-offset:4px}
.hero__links a:hover{text-decoration-color:currentColor}
.hero__links a:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}

/* Fondateur remonté juste sous le hero : compact, la promesse reste lisible */
.founder{padding:clamp(2.5rem,6vw,5rem) clamp(1.25rem,5vw,3rem)}

/* Bloc franc près de la preuve */
.proof__launch{
 width:min(100% - 2 * clamp(1.25rem,5vw,3rem),var(--wrap));margin:0 auto clamp(1.25rem,2.5vw,2rem);
 padding:.8rem 1rem;border-left:3px solid var(--accent);background:var(--home-soft);color:var(--ink);
 font-size:.95rem;line-height:1.45;text-wrap:pretty;border-radius:0 10px 10px 0
}
.proof__launch strong{color:var(--accent-deep)}

/* Contrastes AA */
.solutions__more a{color:#fff;text-decoration-color:#fff;text-decoration-thickness:.09em}
.solutions__more a:hover{color:#fff}
.method__kicker{color:#E4D6FA}
.hero__trust{color:#5a5a66!important}

/* Cartes services : la pastille ne déborde plus sur petit écran (structure du carrousel intacte) */
@media (max-width:440px){
 .service-card summary{min-height:16rem}
 .service-card h3{margin-bottom:1rem}
 .service-card__cue{max-width:100%}
 .service-card__cue-track{min-width:0}
 .service-card__cue b{white-space:normal;line-height:1.25;text-wrap:balance}
}

/* Cibles tactiles mobile */
@media (max-width:767px){
 .method__cases-link,.proof__foot a,.home-reach__hub,.solutions__more a,.rating{min-height:44px;display:inline-flex;align-items:center}
 .home-reach__hub{margin-bottom:0}
 .site-footer nav a,.site-footer__inner>div:last-child a{min-height:44px;display:inline-flex;align-items:center;padding-block:0}
 .site-footer nav,.site-footer__inner>div:last-child{gap:.25rem}
 .site-footer__legal a,.site-footer .consent-manage{min-height:44px;display:inline-flex;align-items:center;padding-block:0}
 .site-footer__brand{min-height:44px}
}
.hero .hero__price,.hero .hero__links{margin:0}
.home-reach__photo{margin:0 0 2.4rem}
.home-reach__photo img{display:block;width:100%;height:auto;aspect-ratio:21/9;object-fit:cover;border-radius:18px;outline:1px solid rgba(0,0,0,.08);outline-offset:-1px}
@media (max-width:640px){.home-reach__photo img{aspect-ratio:16/10;border-radius:14px}}
.home-reach__map{margin:0 0 2.4rem}
