section#hero {
  height: 100vh !important;
  min-height: 100vh !important;
  padding-top: 8rem !important;
  padding-bottom: 8rem !important;
  box-sizing: border-box !important;
}
#hero .h-hero{ color:var(--text); font-size:clamp(1.8rem,4.4vw,3.5rem) !important; letter-spacing:-.04em; }
#hero .nz-lead{ color:color-mix(in srgb, var(--text) 66%, transparent) !important; }
 
#nzCanvas{ position:absolute; inset:0; z-index:0; width:100%; height:100%; display:block; }
#hero .nz-vignette{ position:absolute; inset:0; z-index:1; pointer-events:none;
  background:radial-gradient(120% 90% at 50% 42%, transparent 42%, var(--bg) 100%); opacity:.85; }
#hero:after{ content:""; position:absolute; left:0; right:0; bottom:0; height:1px; z-index:2;
  background:linear-gradient(90deg,transparent,#FF8A3D,transparent); opacity:.85;
  box-shadow:0 0 24px 1px rgba(255,138,61,.4); }
 
#hero .nz-tilt{ transform-style:preserve-3d; will-change:transform; transition:transform .25s ease-out; }
 
#hero .nz-status{ display:inline-flex; align-items:center; gap:.55rem; margin-bottom:1.6rem;
  font-family:"JetBrains Mono",monospace; font-size:.6rem; letter-spacing:.24em;
  color:color-mix(in srgb, var(--text) 60%, transparent);
  border:1px solid var(--line); border-radius:99px; padding:.5rem 1rem;
  background:color-mix(in srgb, var(--text) 4%, transparent); backdrop-filter:blur(8px); }
#hero .nz-status .dot{ width:7px; height:7px; border-radius:50%; background:#3BE07E;
  box-shadow:0 0 0 0 rgba(59,224,126,.5); animation:nzDot 2s ease-out infinite; }
@keyframes nzDot{ 70%,100%{ box-shadow:0 0 0 8px rgba(59,224,126,0); } }
#hero .nz-clock{ color:#FF8A3D; letter-spacing:.1em; }
 
#hero .nz-title .g{ color:#FF8A3D; opacity:.75; font-family:"JetBrains Mono",monospace; font-weight:600; }
#hero .nz-title .text-accent{ color:#FF8A3D; }
#hero .nz-title .ch{ display:inline; transition:transform .3s cubic-bezier(.34,1.56,.64,1), color .3s; }
@media (hover:hover){
  #hero .nz-title .ch:hover{ transform:translateY(-6px) rotate(3deg); color:#FF8A3D; }
}
 
@property --nzA{ syntax:"<angle>"; initial-value:0deg; inherits:false; }
#hero .nz-beam{ position:relative; display:inline-flex; border-radius:999px; padding:2px;
  background:conic-gradient(from var(--nzA), transparent 0 82%, #FF8A3D 90%, #FFD9BC 95%, #FF8A3D 98%, transparent 100%);
  animation:nzOrbit 3.2s linear infinite; }
@keyframes nzOrbit{ to{ --nzA:360deg; } }
#hero .nz-beam .in{ display:inline-flex; align-items:center; gap:.8rem; border-radius:999px;
  background:var(--text); padding:.85rem .85rem .85rem 1.6rem; color:var(--bg); transition:opacity .35s; }
#hero .nz-beam .in i{ display:grid; place-items:center; width:36px; height:36px; border-radius:50%;
  background:#FF8A3D; color:#160A02; font-style:normal; transition:transform .45s cubic-bezier(.2,.8,.2,1); }
#hero .nz-beam:hover .in{ opacity:.92; }
#hero .nz-beam:hover .in i{ transform:rotate(45deg); }
#hero .nz-ghost{ position:relative; padding:.95rem .3rem; color:var(--text); }
#hero .nz-ghost:after{ content:""; position:absolute; left:0; right:0; bottom:.6rem; height:1.5px;
  background:#FF8A3D; transform:scaleX(.3); transform-origin:0 50%; transition:transform .45s cubic-bezier(.19,1,.22,1); }
#hero .nz-ghost:hover{ color:#FF8A3D; }
#hero .nz-ghost:hover:after{ transform:scaleX(1); }
 
#hero .nz-tech{ display:flex; gap:.9rem; align-items:center; margin-top:2.4rem;
  font-family:"JetBrains Mono",monospace; font-size:.6rem; letter-spacing:.3em;
  color:color-mix(in srgb, var(--text) 40%, transparent); }
#hero .nz-tech i{ color:#FF8A3D; font-style:normal; }
#hero .nz-tech span{ transition:color .3s; }
#hero .nz-tech span:hover{ color:#FF8A3D; }
 
/* carte de code : remontée pour ne pas coller au filet du bas
   maintenant que la section est plus haute */
#hero .nz-code{ position:absolute; z-index:10; left:clamp(1.2rem,4.5vw,3.8rem); bottom:clamp(4.5rem,12vh,7rem);
  width:min(252px,25vw); border-radius:12px; overflow:hidden; text-align:left;
  background:#101010; border:1px solid rgba(255,255,255,.12);
  box-shadow:0 34px 70px -40px rgba(0,0,0,.55); transform:rotate(-2.5deg);
  animation:nzCodeFloat 7s ease-in-out infinite; }
@keyframes nzCodeFloat{ 0%,100%{ translate:0 0; } 50%{ translate:0 -9px; } }
#hero .nz-code:hover{ animation-play-state:paused; }
#hero .nc-bar{ display:flex; align-items:center; gap:5px; padding:.5rem .7rem; border-bottom:1px solid rgba(255,255,255,.09); }
#hero .nc-bar i{ width:8px; height:8px; border-radius:50%; }
#hero .nc-bar i:nth-child(1){ background:#FF5F57; } #hero .nc-bar i:nth-child(2){ background:#FEBC2E; } #hero .nc-bar i:nth-child(3){ background:#28C840; }
#hero .nc-bar em{ margin-left:.4rem; font-style:normal; font-family:"JetBrains Mono",monospace; font-size:.55rem; color:rgba(232,228,220,.55); letter-spacing:.06em; }
#hero .nc-body{ margin:0; padding:.7rem .8rem; font-family:"JetBrains Mono",monospace; font-size:.62rem; line-height:1.8;
  color:#E8E4DC; min-height:5.6em; white-space:pre-wrap; word-break:break-word; }
#hero .nc-body .t1{ color:#FF8A3D; }
#hero .nc-body .t2{ color:#7EC8A3; }
#hero .nc-body .t3{ color:#8FB8E8; }
#hero .nc-caret{ display:inline-block; width:6px; height:1em; background:#FF8A3D; vertical-align:-.12em;
  animation:ncBlink 1s steps(1) infinite; }
@keyframes ncBlink{ 50%{ opacity:0; } }
#hero .nc-foot{ padding:.45rem .8rem .55rem; font-family:"JetBrains Mono",monospace; font-size:.55rem; color:rgba(232,228,220,.6);
  border-top:1px solid rgba(255,255,255,.09); }
#hero .nc-foot .ok{ color:#7EC8A3; font-weight:700; }
@media (max-width:900px){ #hero .nz-code{ display:none; } }
 
#hero .nz-cue{ color:color-mix(in srgb, var(--text) 55%, transparent); }
#hero .nz-cue .chev{ color:#FF8A3D; }
 
@media (prefers-reduced-motion:reduce){
  #hero .nz-beam{ animation:none !important; background:#FF8A3D; }
  #hero .nz-code,#hero .nc-caret{ animation:none !important; }
  #hero .nz-status .dot{ animation:none !important; }
  #hero .nz-tilt{ transform:none !important; }
}


#approach{ overflow:visible !important; padding-top:clamp(3rem,6vw,4.5rem) !important; padding-bottom:clamp(3rem,6vw,4.5rem) !important; }
#approach .h-sec{ font-size:clamp(1.5rem,3.4vw,2.6rem) !important; }
#approach .ax-head{ margin-bottom:clamp(1.8rem,4vw,2.8rem); }
#approach .ax-head .lead{ font-size:.92rem !important; }
#approach .vp-k{ font-family:"JetBrains Mono",monospace; font-size:.72rem; color:var(--accent); letter-spacing:.1em; }

#approach .ax-grid{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(2rem,5vw,5rem); align-items:start; }

#approach .ax-stage-wrap{ position:sticky; top:104px; }
#approach .ax-stage{ position:relative; border-radius:24px; overflow:hidden;
  background:#12100E; color:#F4F1EB; border:1px solid rgba(255,255,255,.1);
  min-height:clamp(300px,46vh,400px); display:grid;
  box-shadow:0 60px 110px -70px rgba(0,0,0,.75); }
#approach .ax-stage:before{ content:""; position:absolute; width:70%; aspect-ratio:1; border-radius:50%;
  top:-30%; left:var(--gx,15%); filter:blur(70px); pointer-events:none;
  background:radial-gradient(circle, rgba(255,138,61,.3), transparent 65%);
  transition:left 1.1s cubic-bezier(.19,1,.22,1); }

#approach .ax-bar{ position:absolute; top:0; left:0; right:0; z-index:5;
  display:flex; justify-content:space-between; align-items:center; padding:.9rem 1.1rem;
  font-family:"JetBrains Mono",monospace; font-size:.66rem; letter-spacing:.2em; text-transform:uppercase; }
#approach .ax-step{ color:rgba(244,241,235,.55); }
#approach .ax-step b{ color:var(--accent); font-size:.9rem; letter-spacing:.1em; }
#approach .ax-tag{ border:1px solid rgba(244,241,235,.22); border-radius:99px; padding:.4rem .85rem;
  color:rgba(244,241,235,.8); transition:opacity .3s; background:rgba(255,255,255,.04); }

#approach .ax-scene{ grid-area:1/1; display:grid; place-items:center; padding:3.4rem 1.3rem 3rem;
  opacity:0; transform:translateY(34px) scale(.97); pointer-events:none;
  transition:opacity .55s ease, transform .75s cubic-bezier(.19,1,.22,1); }
#approach .ax-scene.on{ opacity:1; transform:none; pointer-events:auto; }
#approach .ax-scene.out{ opacity:0; transform:translateY(-30px) scale(.97); }
#approach .cap{ display:block; margin-top:1rem; font-family:"JetBrains Mono",monospace; font-size:.6rem;
  letter-spacing:.18em; text-transform:uppercase; color:rgba(244,241,235,.5); text-align:center; }

#approach .ax-dots{ position:absolute; bottom:1.1rem; left:50%; transform:translateX(-50%); z-index:5; display:flex; gap:.45rem; }
#approach .ax-dots i{ width:22px; height:3px; border-radius:99px; background:rgba(244,241,235,.2); transition:.45s; }
#approach .ax-dots i.on{ background:var(--accent); width:38px; box-shadow:0 0 12px rgba(255,138,61,.6); }

#approach .sc-rep{ text-align:center; }
#approach .sc-rep .big{ font-weight:900; letter-spacing:-.04em; font-size:clamp(2.4rem,4.6vw,3.4rem); line-height:1; }
#approach .sc-rep .big em{ font-style:normal; font-size:.4em; color:rgba(244,241,235,.5); }
#approach .sc-rep .stars{ display:flex; gap:.5rem; justify-content:center; margin-top:1rem; }
#approach .sc-rep .stars i{ width:21px; height:21px;
  clip-path:polygon(50% 0,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%);
  background:rgba(244,241,235,.18); transform:scale(.55); }
#approach .ax-scene.on .sc-rep .stars i{ background:var(--accent); transform:scale(1);
  transition:background .4s,transform .55s cubic-bezier(.34,1.8,.64,1); transition-delay:calc(.25s + var(--i)*.12s); }
#approach .sc-rep .review{ display:inline-flex; align-items:center; gap:.7rem; margin-top:1.3rem;
  border:1px solid rgba(244,241,235,.16); border-radius:14px; padding:.7rem .95rem; background:rgba(255,255,255,.04);
  opacity:0; transform:translateY(12px); }
#approach .ax-scene.on .sc-rep .review{ opacity:1; transform:none; transition:.6s cubic-bezier(.19,1,.22,1) 1s; }
#approach .sc-rep .av{ width:30px; height:30px; border-radius:50%; background:var(--accent); color:#160A02;
  display:grid; place-items:center; font-weight:800; font-size:.8rem; }
#approach .sc-rep .tx{ display:flex; flex-direction:column; gap:5px; }
#approach .sc-rep .tx i{ width:86px; height:5px; border-radius:99px; background:rgba(244,241,235,.25); }
#approach .sc-rep .tx i:last-child{ width:58px; }
#approach .sc-rep .review b{ color:var(--accent); letter-spacing:.12em; font-size:.7rem; }

#approach .sc-brand{ text-align:center; }
#approach .sc-brand svg{ width:88px; height:88px; }
#approach .sc-brand path{ stroke:var(--accent); stroke-width:5; stroke-dasharray:150; stroke-dashoffset:150; }
#approach .ax-scene.on .sc-brand path{ stroke-dashoffset:0; transition:stroke-dashoffset 1.4s cubic-bezier(.5,0,.1,1) .3s; }
#approach .sc-brand .pal{ display:flex; gap:.6rem; justify-content:center; margin-top:1.2rem; }
#approach .sc-brand .pal i{ width:18px; height:18px; border-radius:50%; transform:scale(0); }
#approach .sc-brand .pal i:nth-child(1){ background:var(--accent); }
#approach .sc-brand .pal i:nth-child(2){ background:#FFB27A; }
#approach .sc-brand .pal i:nth-child(3){ background:#F4F1EB; }
#approach .sc-brand .pal i:nth-child(4){ background:rgba(244,241,235,.3); }
#approach .ax-scene.on .sc-brand .pal i{ transform:scale(1);
  transition:transform .55s cubic-bezier(.34,1.8,.64,1); transition-delay:calc(1.1s + var(--i)*.1s); }

#approach .sc-ads{ text-align:center; width:min(320px,80%); }
#approach .sc-ads .roi{ display:flex; align-items:center; justify-content:center; gap:.8rem; font-weight:900; letter-spacing:-.02em; }
#approach .sc-ads .in{ border:1.5px solid rgba(244,241,235,.25); border-radius:99px; padding:.5rem 1rem; font-size:1.05rem; }
#approach .sc-ads .arr{ color:var(--accent); }
#approach .sc-ads .out{ border:1.5px solid var(--accent); color:var(--accent); border-radius:99px; padding:.5rem 1.1rem; font-size:1.5rem; }
#approach .sc-ads .graph{ display:flex; align-items:flex-end; gap:.45rem; height:70px; margin-top:1.2rem; }
#approach .sc-ads .graph i{ flex:1; border-radius:6px 6px 0 0; background:linear-gradient(180deg,var(--accent),rgba(255,138,61,.25));
  height:var(--h); transform:scaleY(0); transform-origin:0 100%; }
#approach .ax-scene.on .sc-ads .graph i{ transform:scaleY(1);
  transition:transform .8s cubic-bezier(.19,1,.22,1); transition-delay:calc(.3s + var(--h)*.003); }

#approach .sc-soc{ text-align:center; position:relative; }
#approach .sc-soc .big{ font-weight:900; letter-spacing:-.04em; font-size:clamp(2.1rem,4.2vw,3rem); line-height:1; }
#approach .sc-soc .sub{ display:block; font-family:"JetBrains Mono",monospace; font-size:.62rem;
  letter-spacing:.2em; text-transform:uppercase; color:rgba(244,241,235,.55); margin-top:.5rem; }
#approach .sc-soc .bub{ position:absolute; bottom:-16px; left:calc(12% + var(--i)*22%); font-size:1.2rem; opacity:0; }
#approach .ax-scene.on .sc-soc .bub{ animation:axBub 3.4s ease-in infinite; animation-delay:calc(var(--i)*.85s); }
@keyframes axBub{ 0%{ transform:translateY(0) scale(.6); opacity:0; }
  15%{ opacity:1; } 100%{ transform:translateY(-120px) scale(1.15) rotate(8deg); opacity:0; } }

#approach .ax-chapters{ display:flex; flex-direction:column; }
#approach .ax-ch{ position:relative; padding:clamp(1.8rem,4.5vh,2.8rem) 0 clamp(1.8rem,4.5vh,2.8rem) 1.7rem;
  border-left:1.5px solid var(--line); min-height:40vh; display:flex; flex-direction:column; justify-content:center; }
#approach .ax-ch:before{ content:""; position:absolute; left:-1.5px; top:18%; bottom:18%; width:1.5px;
  background:linear-gradient(var(--accent),#FFB27A); transform:scaleY(0); transform-origin:0 0;
  transition:transform .7s cubic-bezier(.19,1,.22,1); box-shadow:0 0 12px var(--accent); }
#approach .ax-ch.on:before{ transform:scaleY(1); }
#approach .ax-ch .no{ position:absolute; left:-1.05rem; top:calc(18% - .55rem); width:2.1rem; height:2.1rem;
  display:grid; place-items:center; border-radius:50%; background:var(--bg); border:1.5px solid var(--line);
  font-family:"JetBrains Mono",monospace; font-size:.62rem; font-weight:700; color:var(--dim); transition:.45s; }
#approach .ax-ch.on .no{ background:var(--accent); border-color:var(--accent); color:#160A02; transform:scale(1.12); }
#approach .ax-ch h3{ font-weight:800; letter-spacing:-.025em; font-size:clamp(1.2rem,2.2vw,1.6rem); margin-top:.6rem; max-width:20ch;
  opacity:.35; transform:translateX(-6px); transition:.6s cubic-bezier(.19,1,.22,1); }
#approach .ax-ch p{ font-size:.86rem; line-height:1.65; margin-top:.8rem; max-width:52ch;
  opacity:.3; transition:opacity .6s; }
#approach .ax-ch .vp-k{ opacity:.4; transition:opacity .5s; }
#approach .ax-ch.on h3{ opacity:1; transform:none; }
#approach .ax-ch.on p{ opacity:1; }
#approach .ax-ch.on .vp-k{ opacity:1; }

@media (max-width:1023px){
  #approach{ overflow-x:hidden !important; }
  #approach .orb{ display:none !important; }
  #approach .ax-grid{ display:block; }
  #approach .ax-stage-wrap{ display:none; }
  #approach .ax-chapters{ gap:1rem; }
  #approach .ax-ch{
    min-height:0; border-left:0; padding:1.4rem 1.3rem; border-radius:18px;
    background:rgba(255,255,255,.03); border:1px solid var(--line);
    box-shadow:0 20px 40px -32px rgba(0,0,0,.45); display:block;
  }
  #approach .ax-ch h3,
  #approach .ax-ch p,
  #approach .ax-ch .vp-k{ opacity:1 !important; transform:none !important; }
  #approach .ax-ch:before{ display:none; }
  #approach .ax-ch .no{
    position:static; width:2.3rem; height:2.3rem;
    background:var(--accent); border-color:var(--accent); color:#160A02;
    transform:none; margin-bottom:.4rem; font-size:.72rem;
  }
  #approach .ax-ch h3{ margin-top:.5rem; max-width:none; }
  #approach .ax-ch p{ margin-top:.6rem; max-width:none; }
}

@media (prefers-reduced-motion:reduce){
  #approach .ax-scene{ transition:none; }
  #approach .ax-ch h3,#approach .ax-ch p,#approach .ax-ch .vp-k{ opacity:1 !important; transform:none !important; }
  #approach .sc-soc .bub{ animation:none !important; }
  #approach .sc-rep .stars i{ background:var(--accent) !important; transform:scale(1) !important; }
  #approach .sc-rep .review{ opacity:1 !important; transform:none !important; }
  #approach .sc-brand path{ stroke-dashoffset:0 !important; }
  #approach .sc-brand .pal i{ transform:scale(1) !important; }
  #approach .sc-ads .graph i{ transform:scaleY(1) !important; }
}

.mq-card{ position:relative; overflow:hidden; isolation:isolate; }
.mq-card .mq-img{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block;
  z-index:0; opacity:.9; filter:grayscale(1) contrast(1.05); transform:scale(1.02);
  transition:filter .8s cubic-bezier(.19,1,.22,1), opacity .8s, transform 1.1s cubic-bezier(.19,1,.22,1);
}
.mq-card::after{
  content:""; position:absolute; inset:0; z-index:1; pointer-events:none;
  background:linear-gradient(180deg, rgba(0,0,0,.05) 0%, rgba(0,0,0,.30) 45%, rgba(0,0,0,.72) 100%);
  transition:opacity .6s;
}
.mq-card .lbl{ position:relative; z-index:2; }
.mq-card:hover .mq-img{ filter:none; opacity:1; transform:scale(1.07); }
.mq-card:hover::after{ opacity:.75; }

@media (prefers-reduced-motion: reduce){ .mq-card .mq-img{ filter:none; opacity:1; transform:none; transition:none; } }
@media (hover:none){ .mq-card .mq-img{ filter:grayscale(.35); opacity:.95; } }

#stats{
  --st-card:#FFFFFF; --st-card2:#FAF8F4; --st-ink:#0B0B0A; --st-dim:#6E6E73;
  --st-line:rgba(11,11,10,.12); --st-soft:rgba(11,11,10,.05);
  --st-acc:#FF6B1A; --st-acc2:#FF8A3D; --st-ok:#1F8A5B;
  --st-shadow:0 34px 70px -48px rgba(0,0,0,.35);
  position:relative; overflow:hidden; color:var(--st-ink);
}
[data-theme="dark"] #stats{
  --st-card:#191816; --st-card2:#0D0C0B; --st-ink:#F4F1EB; --st-dim:rgba(244,241,235,.55);
  --st-line:rgba(244,241,235,.14); --st-soft:rgba(255,255,255,.05);
  --st-ok:#3BE07E; --st-shadow:0 34px 70px -48px rgba(0,0,0,.9);
}
#stats *{ box-sizing:border-box; }
#stats .t-dim{ color:var(--st-dim); }

#stats .st-bigline{ position:absolute; inset:0; z-index:0; pointer-events:none; }
#stats .st-bigline svg{ width:100%; height:100%; }
#stats .st-bigline .trace{ fill:none; stroke:var(--st-acc); stroke-width:2.5; opacity:.45;
  stroke-dasharray:2400; stroke-dashoffset:2400; }
#stats.in .st-bigline .trace{ stroke-dashoffset:0; transition:stroke-dashoffset 2.6s cubic-bezier(.5,0,.15,1) .2s; }
#stats .st-bigline .glow{ fill:none; stroke:var(--st-acc); stroke-width:10; opacity:0; filter:blur(14px);
  stroke-dasharray:2400; stroke-dashoffset:2400; }
#stats.in .st-bigline .glow{ opacity:.25; stroke-dashoffset:0; transition:stroke-dashoffset 2.6s cubic-bezier(.5,0,.15,1) .2s, opacity 1s .6s; }
#stats .st-bigline .tip{ fill:var(--st-acc); opacity:0; }
#stats.in .st-bigline .tip{ opacity:1; transition:opacity .4s 2.5s; }
#stats > .st-content{ position:relative; z-index:1; }

#stats .st-hero{ text-align:center; }
#stats .st-mega{ font-weight:900; letter-spacing:-.05em; line-height:.9;
  font-size:clamp(3rem,9vw,6.5rem);
  background:linear-gradient(100deg,var(--st-ink) 20%, var(--st-acc) 50%, var(--st-acc2) 65%, var(--st-ink) 85%);
  background-size:220% 100%; -webkit-background-clip:text; background-clip:text; color:transparent;
  animation:stShimmer 5.5s ease-in-out infinite; display:inline-block; }
@keyframes stShimmer{ 0%,100%{ background-position:0% 0; } 50%{ background-position:100% 0; } }
#stats .st-mega small{ font-size:.32em; letter-spacing:-.02em; vertical-align:.5em; }

#stats .st-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-top:26px; perspective:1400px; }
@media(max-width:980px){ #stats .st-grid{ grid-template-columns:1fr; } }

#stats .st-panel{ position:relative; border-radius:18px; background:var(--st-card);
  border:1px solid var(--st-line); padding:16px; transform-style:preserve-3d;
  transform:rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg)) translateY(var(--ty,0));
  transition:box-shadow .5s, border-color .5s; will-change:transform; }
#stats .st-panel.no-tilt{ transition:transform .6s cubic-bezier(.19,1,.22,1), box-shadow .5s, border-color .5s; }
#stats .st-panel:hover{ border-color:rgba(255,107,26,.5); box-shadow:var(--st-shadow); }
#stats .st-panel::before{ content:""; position:absolute; left:16px; top:0; width:38px; height:2.5px; background:var(--st-acc);
  transform:scaleX(0); transform-origin:0 50%; }
#stats .st-panel.in::before{ transform:scaleX(1); transition:transform .8s cubic-bezier(.19,1,.22,1) .35s; }

#stats .st-head{ display:flex; align-items:center; gap:10px; }
#stats .st-logo{ width:34px; height:34px; border-radius:10px; display:grid; place-items:center; font-size:14px; font-weight:800;
  border:1px solid var(--st-line); background:var(--st-soft); flex:0 0 auto; color:var(--st-acc); }
#stats .st-head b{ font-size:.92rem; letter-spacing:-.01em; display:block; }
#stats .st-head small{ display:block; font-family:ui-monospace,Menlo,monospace; font-size:.56rem; letter-spacing:.14em;
  text-transform:uppercase; color:var(--st-dim); margin-top:2px; }

#stats .st-shot{ margin-top:13px; border:1px solid var(--st-line); border-radius:12px; overflow:hidden;
  background:var(--st-card2); cursor:zoom-in; position:relative; display:block; width:100%; padding:0; text-align:left;
  font:inherit; color:inherit; transform:translateZ(22px); box-shadow:0 14px 32px -24px rgba(0,0,0,.4); }
#stats .st-shot .ph{ position:relative; aspect-ratio:16/9; overflow:hidden; }
#stats .st-shot .ph img{ width:100%; height:100%; object-fit:cover; object-position:top left; display:block;
  filter:saturate(.88); transform:scale(1.01); transition:filter .7s, transform .9s cubic-bezier(.19,1,.22,1); }
#stats .st-shot:hover .ph img{ filter:none; transform:scale(1.05); }
#stats .st-shot .zoom{ position:absolute; right:10px; bottom:10px; width:30px; height:30px; border-radius:50%;
  background:rgba(0,0,0,.5); backdrop-filter:blur(4px); border:1px solid rgba(255,255,255,.35);
  display:grid; place-items:center; font-size:.8rem; color:#fff; opacity:0; transform:translateY(6px); transition:.35s; }
#stats .st-shot:hover .zoom{ opacity:1; transform:none; }

#stats .st-nums{ display:flex; gap:24px; margin-top:14px; }
#stats .st-num b{ display:block; font-weight:900; letter-spacing:-.04em; font-size:clamp(1.25rem,2.3vw,1.7rem); line-height:1; }
#stats .st-num span{ font-family:ui-monospace,Menlo,monospace; font-size:.55rem; letter-spacing:.12em; text-transform:uppercase; color:var(--st-dim); }
#stats .st-delta{ font-family:ui-monospace,Menlo,monospace; font-size:.6rem; font-weight:700; color:var(--st-ok); margin-top:2px; }
#stats .st-delta::before{ content:"▲ "; }

#stats .st-ticker{ margin-top:22px; border-top:1.5px solid var(--st-ink); border-bottom:1.5px solid var(--st-ink);
  overflow:hidden; padding:12px 0; }
#stats .st-tape{ display:flex; width:max-content; animation:stTape 24s linear infinite; }
#stats .st-tape:hover{ animation-play-state:paused; }
@keyframes stTape{ to{ transform:translateX(-50%); } }
#stats .st-tape > div{ display:flex; align-items:center; }
#stats .st-tk{ display:inline-flex; align-items:baseline; gap:8px; padding:0 26px; white-space:nowrap; }
#stats .st-tk b{ font-weight:900; letter-spacing:-.03em; font-size:1.25rem; }
#stats .st-tk b em{ font-style:normal; color:var(--st-acc); }
#stats .st-tk span{ font-family:ui-monospace,Menlo,monospace; font-size:.58rem; letter-spacing:.12em; text-transform:uppercase; color:var(--st-dim); }
#stats .st-tk .up{ font-family:ui-monospace,Menlo,monospace; font-size:.62rem; font-weight:800; color:var(--st-ok); }
#stats .st-sepdot{ width:5px; height:5px; border-radius:50%; background:var(--st-acc); flex:0 0 auto; }

#stats .st-note{ margin-top:12px; font-family:ui-monospace,Menlo,monospace; font-size:.6rem; color:var(--st-dim); text-align:center; }

#stLb{ --lb-bg:rgba(24,22,20,.55); --lb-card:#FFFFFF; --lb-line:rgba(11,11,10,.15); --lb-txt:rgba(11,11,10,.65);
  position:fixed; inset:0; z-index:200; display:none; align-items:center; justify-content:center;
  background:var(--lb-bg); backdrop-filter:blur(10px); padding:4vmin; cursor:zoom-out; }
[data-theme="dark"] #stLb{ --lb-bg:rgba(8,7,6,.9); --lb-card:#0D0C0B; --lb-line:rgba(244,241,235,.15); --lb-txt:rgba(244,241,235,.65); }
#stLb.open{ display:flex; animation:stLbIn .35s cubic-bezier(.19,1,.22,1); }
@keyframes stLbIn{ from{ opacity:0; } }
#stLb figure{ margin:0; max-width:min(1200px,94vw); width:100%; }
#stLb .frame{ border:1px solid var(--lb-line); border-radius:14px; overflow:hidden; background:var(--lb-card);
  box-shadow:0 60px 120px -60px rgba(0,0,0,.9); animation:stLbPop .45s cubic-bezier(.34,1.4,.64,1); }
@keyframes stLbPop{ from{ transform:scale(.92) translateY(16px); opacity:0; } }
#stLb .frame .bar{ display:flex; align-items:center; gap:5px; padding:9px 12px; border-bottom:1px solid var(--lb-line); }
#stLb .frame .bar i{ width:9px; height:9px; border-radius:50%; }
#stLb .frame .bar i:nth-child(1){ background:#FF5F57; } #stLb .frame .bar i:nth-child(2){ background:#FEBC2E; } #stLb .frame .bar i:nth-child(3){ background:#28C840; }
#stLb .frame .bar span{ margin-left:6px; font-family:ui-monospace,Menlo,monospace; font-size:.62rem; color:var(--lb-txt); }
#stLb img{ width:100%; height:auto; max-height:78vh; object-fit:contain; display:block; background:var(--lb-card); }
#stLb figcaption{ text-align:center; margin-top:12px; font-family:ui-monospace,Menlo,monospace; font-size:.64rem; color:#fff; text-shadow:0 1px 8px rgba(0,0,0,.5); }
#stLb .close{ position:absolute; top:18px; right:22px; width:40px; height:40px; border-radius:50%; border:1px solid rgba(255,255,255,.45);
  background:rgba(0,0,0,.35); color:#fff; font-size:1rem; cursor:pointer; display:grid; place-items:center; transition:.3s; }
#stLb .close:hover{ background:#FF6B1A; border-color:#FF6B1A; color:#0B0B0A; transform:rotate(90deg); }

@media(prefers-reduced-motion:reduce){
  #stats .st-mega{ animation:none; }
  #stats .st-tape{ animation:none; flex-wrap:wrap; width:100%; }
  #stats .st-bigline .trace,#stats .st-bigline .glow{ stroke-dashoffset:0 !important; }
  #stats .st-bigline .tip{ opacity:1 !important; }
  #stats .st-panel{ transform:none !important; }
  #stats .st-panel::before{ transform:scaleX(1) !important; }
  #stats .st-shot .ph img{ transform:none !important; }
  #stLb.open,#stLb .frame{ animation:none; }
}

#solutions{
  --so-card:#FFFFFF; --so-ink:#0B0B0A; --so-dim:#6E6E73;
  --so-line:rgba(11,11,10,.12); --so-soft:rgba(11,11,10,.04);
  --so-acc:#FF6B1A; --so-acc2:#FF8A3D;
  color:var(--so-ink);
}
[data-theme="dark"] #solutions{
  --so-card:#191816; --so-ink:#F4F1EB; --so-dim:rgba(244,241,235,.55);
  --so-line:rgba(244,241,235,.14); --so-soft:rgba(255,255,255,.05);
}
#solutions *{ box-sizing:border-box; }
#solutions .t-dim{ color:var(--so-dim); }

#solutions .so-grid{ display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(24px,4vw,56px); align-items:start; }
@media(max-width:920px){ #solutions .so-grid{ grid-template-columns:1fr; } }

#solutions h2{ font-weight:900; letter-spacing:-.035em; line-height:1.05; font-size:clamp(1.6rem,3.4vw,2.4rem); }
#solutions h2 em{ font-style:normal; color:var(--so-acc); }
#solutions .so-intro{ margin-top:12px; font-size:.92rem; line-height:1.65; color:var(--so-dim); max-width:56ch; }
#solutions .so-intro b{ color:var(--so-ink); font-weight:700; }

#solutions .so-list{ margin-top:22px; display:flex; flex-direction:column; gap:10px; }
#solutions .so-item{ border:1px solid var(--so-line); border-radius:14px; background:var(--so-card); overflow:hidden;
  transition:border-color .4s, box-shadow .4s, transform .4s cubic-bezier(.19,1,.22,1); }
#solutions .so-item:hover{ border-color:rgba(255,107,26,.45); transform:translateX(4px); }
#solutions .so-item.open{ border-color:rgba(255,107,26,.6); box-shadow:0 22px 44px -36px rgba(0,0,0,.4); }

#solutions .so-btn{ display:flex; align-items:center; gap:14px; width:100%; padding:15px 16px; background:none; border:0;
  font:inherit; color:inherit; cursor:pointer; text-align:left; }
#solutions .so-ic{ width:38px; height:38px; border-radius:10px; flex:0 0 auto; display:grid; place-items:center;
  border:1px solid var(--so-line); background:var(--so-soft); font-size:1rem; transition:.4s; }
#solutions .so-item.open .so-ic, #solutions .so-item:hover .so-ic{
  background:var(--so-acc); border-color:var(--so-acc); color:#0B0B0A; }
#solutions .so-btn b{ font-size:.95rem; letter-spacing:-.01em; font-weight:700; flex:1; }
#solutions .so-plus{ width:26px; height:26px; flex:0 0 auto; position:relative; }
#solutions .so-plus::before,#solutions .so-plus::after{ content:""; position:absolute; left:50%; top:50%; background:var(--so-ink);
  transition:transform .45s cubic-bezier(.19,1,.22,1), background .3s; }
#solutions .so-plus::before{ width:14px; height:2px; transform:translate(-50%,-50%); }
#solutions .so-plus::after{ width:2px; height:14px; transform:translate(-50%,-50%); }
#solutions .so-item.open .so-plus::after{ transform:translate(-50%,-50%) rotate(90deg); }
#solutions .so-item.open .so-plus::before{ background:var(--so-acc); }
#solutions .so-item.open .so-plus::after{ background:var(--so-acc); }

#solutions .so-body{ max-height:0; overflow:hidden; transition:max-height .5s cubic-bezier(.5,0,.1,1); }
#solutions .so-body > div{ padding:0 16px 15px 68px; font-size:.85rem; line-height:1.6; color:var(--so-dim); }
#solutions .so-body a{ color:var(--so-acc); font-weight:700; text-decoration:none; }
#solutions .so-body a:hover{ text-decoration:underline; }

#solutions .so-visual{ position:sticky; top:90px; }
@media(max-width:920px){ #solutions .so-visual{ position:static; margin-top:8px; } }
#solutions .so-frame{ border-radius:22px; overflow:hidden; border:1px solid var(--so-line);
  box-shadow:0 40px 80px -55px rgba(0,0,0,.5); position:relative; }
#solutions .so-frame img{ width:100%; height:auto; display:block; }
#solutions .so-frame::after{ content:""; position:absolute; top:-30%; bottom:-30%; width:30%; left:-55%;
  background:linear-gradient(105deg,transparent,rgba(255,255,255,.28),transparent); transform:skewX(-16deg); transition:left .9s ease; }
#solutions .so-frame:hover::after{ left:130%; }

#solutions .so-stats{ display:grid; grid-template-columns:1fr 1fr; gap:18px 24px; margin-top:22px; }
#solutions .so-stat small{ display:block; font-family:ui-monospace,Menlo,monospace; font-size:.6rem; font-weight:700;
  letter-spacing:.16em; text-transform:uppercase; color:var(--so-acc); }
#solutions .so-stat b{ display:block; font-weight:900; letter-spacing:-.045em; line-height:1;
  font-size:clamp(2.2rem,4.5vw,3.2rem); margin-top:4px; }
#solutions .so-stat i{ display:block; width:34px; height:3px; border-radius:99px; background:var(--so-acc);
  margin-top:8px; transform:scaleX(0); transform-origin:0 50%; }
#solutions .so-stat.in i{ transform:scaleX(1); transition:transform .8s cubic-bezier(.19,1,.22,1) var(--d,.3s); }

#solutions .so-cta{ display:flex; justify-content:center; margin-top:clamp(26px,4vw,42px); }
#solutions .so-cta a{ display:inline-flex; align-items:center; gap:10px; height:52px; padding:0 26px; border-radius:12px;
  background:var(--so-acc); color:#0B0B0A; font-weight:800; font-size:.9rem; letter-spacing:-.01em; text-decoration:none;
  position:relative; overflow:hidden; transition:transform .35s cubic-bezier(.19,1,.22,1), background .35s; }
#solutions .so-cta a:hover{ background:var(--so-acc2); transform:translateY(-3px); }
#solutions .so-cta a::after{ content:""; position:absolute; top:-40%; bottom:-40%; width:26%; left:-50%;
  background:linear-gradient(105deg,transparent,rgba(255,255,255,.45),transparent); transform:skewX(-18deg); }
#solutions .so-cta a:hover::after{ left:130%; transition:left .7s ease; }

@media(prefers-reduced-motion:reduce){
  #solutions .so-item{ transform:none !important; }
  #solutions .so-body{ transition:none; }
  #solutions .so-stat i{ transform:scaleX(1) !important; }
  #solutions .so-frame::after,#solutions .so-cta a::after{ display:none; }
}

/* ===== FIX MOBILE — affichage des images sans dépendre de la classe .in ===== */
@media (max-width:900px){
  #stats,
  #stats .st-panel,
  #stats [data-st],
  #stats .st-shot,
  #stats .st-shot .ph,
  #stats .st-shot .ph img,
  #stats .st-hero,
  #stats .st-nums,
  #stats .st-ticker{
    opacity:1 !important; visibility:visible !important; transform:none !important;
    clip-path:none !important; filter:none !important;
  }
  #stats .st-shot{ display:block !important; width:100%; padding:0; border:0; background:none; }
  #stats .st-shot .ph{
    display:block !important; position:relative; width:100%;
    aspect-ratio:16/11; overflow:hidden; border-radius:14px;
    background:rgba(127,127,127,.08);
  }
  #stats .st-shot .ph img{
    position:absolute; inset:0; width:100% !important; height:100% !important;
    object-fit:cover; object-position:top center; display:block !important;
  }
  #stats .st-panel{ transform:none !important; }
}

/* =========================================================
   EN-TÊTES DE SECTION — le même bloc pour toute la page
   Numéro · sur-titre · titre · phrase d'introduction.
   C'est ce qui transforme une suite de blocs en un sommaire.
   ========================================================= */
.sec-head{ width:min(1500px,100%); margin:0 auto clamp(1.6rem,3.5vw,2.6rem);   padding:clamp(2.4rem,5vw,4rem) 1.25rem 0; }
.sec-head .sh-top{ display:flex; align-items:center; gap:.7rem; }
.sec-head .sh-no{ font-family:"JetBrains Mono",monospace; font-size:.62rem; font-weight:700;
  letter-spacing:.16em; color:#FF8A3D; }
.sec-head .sh-rule{ flex:1; height:1px; background:var(--line,rgba(127,127,127,.22)); max-width:60px; }
.sec-head .sh-kicker{ font-family:"JetBrains Mono",monospace; font-size:.6rem; font-weight:600;
  letter-spacing:.24em; text-transform:uppercase; opacity:.55; }
.sec-head h2{ margin:.85rem 0 0; font-weight:850; letter-spacing:-.03em; line-height:1.1;
  font-size:clamp(1.35rem,2.8vw,2.1rem); max-width:22ch; }
.sec-head h2 em{ font-style:normal; color:#FF8A3D; }
.sec-head p{ margin:.7rem 0 0; font-size:.86rem; line-height:1.75; opacity:.7; max-width:56ch; }

/* en-tête sur fond sombre : on remonte le contraste */
.panel-dark .sec-head p{ opacity:.75; color:rgba(244,241,235,.8); }

/* la section qui suit un en-tête n'a plus besoin de son padding haut */
.sec-head + section,
.sec-head + div > section:first-child{ padding-top:.5rem !important; }

/* =========================================================
   ACCUEIL — ÉCHELLE TYPOGRAPHIQUE ET RYTHME
   Ce bloc arrive en dernier : il prime sur tout ce qui précède.
   ========================================================= */

:root{ --h-gap:clamp(3rem,6vw,5rem); }

#hero .h-hero{ font-size:clamp(1.6rem,3.6vw,2.9rem) !important; line-height:1.06; }
#hero .nz-lead{ font-size:.88rem !important; line-height:1.75; }

body .h-sec,
#approach .h-sec,
#solutions h2,
#reviews .h-sec{ font-size:clamp(1.35rem,2.8vw,2.1rem) !important; line-height:1.1; letter-spacing:-.03em; }

body .lead,
#approach .ax-head .lead,
#solutions .so-intro{ font-size:.88rem !important; line-height:1.75; max-width:56ch; }

#approach .ax-ch p,
#reviews .tq p,
#solutions .so-body > div{ font-size:.82rem !important; line-height:1.65; }

body .kicker,
body .eyebrow,
#approach .vp-k{ font-size:.6rem !important; letter-spacing:.24em !important; }

#stats .st-mega{ font-size:clamp(2.4rem,6.5vw,4.6rem) !important; }
#stats .st-num b{ font-size:clamp(1.1rem,1.9vw,1.45rem) !important; }
#solutions .so-stat b{ font-size:clamp(1.8rem,3.4vw,2.5rem) !important; }
#approach .sc-rep .big,
#approach .sc-soc .big{ font-size:clamp(1.9rem,3.6vw,2.6rem) !important; }
#audit .audit2 h2{ font-size:clamp(1.45rem,3.2vw,2.2rem) !important; }

#hero{ min-height:78vh !important; }

body > section,
#approach,
#stats,
#solutions,
#reviews{
  padding-top:var(--h-gap) !important;
  padding-bottom:var(--h-gap) !important;
}

#approach .ax-head,
#solutions .so-intro{ margin-bottom:clamp(1.6rem,3vw,2.4rem) !important; }

/* filet de séparation entre les blocs clairs */
.sec-wrap + .sec-wrap{ border-top:1px solid var(--line,rgba(127,127,127,.16)); }

@media(max-width:640px){
  :root{ --h-gap:2.4rem; }
  #hero .h-hero{ font-size:clamp(1.5rem,7vw,2rem) !important; }
  body .h-sec,
  .sec-head h2{ font-size:clamp(1.25rem,5.4vw,1.6rem) !important; }
  #stats .st-mega{ font-size:clamp(2.1rem,11vw,3rem) !important; }
  .sec-head{ padding:0 1.25rem; }
}
