/* Find Your CM · v2
   Signature : la matière irisée de la marque (dégradé pastel + grain) comme fond vivant du hero et du contact,
   typographie Bricolage Grotesque très grande, bandeau de mots en défilement, cartes d'enjeux empilées au scroll,
   sections qui alternent papier / blanc / encre. */
@font-face{font-family:'Bricolage Grotesque';font-style:normal;font-weight:400 800;font-display:swap;src:url(/assets/fonts/bricolagegrotesque-normal.woff2) format('woff2')}
@font-face{font-family:'DM Sans';font-style:normal;font-weight:400 700;font-display:swap;src:url(/assets/fonts/dmsans-normal.woff2) format('woff2')}
@font-face{font-family:'DM Sans';font-style:italic;font-weight:400;font-display:swap;src:url(/assets/fonts/dmsans-italic.woff2) format('woff2')}

:root{
  --ink:#1e1e1e; --ink-2:#2a292e; --ink-3:#34333a; --paper:#f5f4f7; --white:#fff;
  --muted:#5f5c68; --muted-dark:#b9b5c4; --line:#e2dfe8; --line-dark:#3a3940;
  --orange:#f2baa1; --rose:#fab6ba; --bleu:#abe3fb; --violet:#e9cefd;
  --t-orange:#fbe7de; --t-rose:#fde6e7; --t-bleu:#e1f4fd; --t-violet:#f6ebfe;
  --t-grad:linear-gradient(120deg,#fbe7de,#e1f4fd 50%,#f6ebfe);
  --grad:linear-gradient(100deg,var(--orange) 0%,var(--bleu) 40%,var(--violet) 72%,var(--rose) 100%);
  --grad-deep:linear-gradient(100deg,#e08a66 0%,#4fb3e0 40%,#b07ae0 72%,#ee7f86 100%);
  --display:'Bricolage Grotesque',ui-sans-serif,system-ui,sans-serif;
  --body:'DM Sans',ui-sans-serif,system-ui,-apple-system,'Segoe UI',sans-serif;
  --wrap:1240px; --gutter:clamp(16px,4vw,40px);
  --r-sm:10px; --r:18px; --r-lg:28px;
  --step--1:clamp(.84rem,.82rem + .1vw,.9rem);
  --step-0:clamp(1rem,.97rem + .15vw,1.08rem);
  --step-1:clamp(1.15rem,1.08rem + .35vw,1.35rem);
  --step-2:clamp(1.4rem,1.25rem + .75vw,1.9rem);
  --step-3:clamp(1.9rem,1.55rem + 1.7vw,3rem);
  --step-4:clamp(2.5rem,1.8rem + 3.4vw,4.9rem);
  --step-5:clamp(3rem,1.9rem + 5.6vw,7.2rem);
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--body);font-size:var(--step-0);line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:clip}
img,svg{display:block;max-width:100%}
a{color:inherit}
h1,h2,h3,h4{font-family:var(--display);font-weight:700;line-height:1.04;letter-spacing:-.025em;margin:0;text-wrap:balance;font-optical-sizing:auto}
p{margin:0}
[hidden]{display:none!important}
::selection{background:var(--violet)}
:focus-visible{outline:3px solid var(--ink);outline-offset:3px;border-radius:6px}
.dark :focus-visible{outline-color:#fff}
.skip{position:absolute;left:-9999px;top:8px;background:var(--ink);color:#fff;padding:10px 16px;border-radius:99px;z-index:100}
.skip:focus{left:16px}
.wrap{max-width:var(--wrap);margin-inline:auto;padding-inline:var(--gutter)}
section{scroll-margin-top:80px;position:relative}
.bg-paper{background:var(--paper)} .bg-white{background:var(--white)}
.eyebrow{font-family:var(--body);font-size:var(--step--1);font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);display:inline-flex;align-items:center;gap:10px}
.eyebrow::before{content:"";width:26px;height:3px;background:var(--grad);border-radius:3px}
.dark .eyebrow{color:var(--muted-dark)}
.h2{font-size:var(--step-3);max-width:20ch}
.h2.xl{font-size:var(--step-4);font-weight:800;max-width:12ch}
.hl{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;filter:saturate(1.35) brightness(.86)}
.lead{font-size:var(--step-1);line-height:1.5;max-width:58ch}
.muted{color:var(--muted)}
.dark .muted{color:var(--muted-dark)}
.sec{padding-block:clamp(72px,10vw,136px)}
.sec-head{display:grid;gap:18px;margin-bottom:clamp(36px,5vw,60px)}

/* Boutons */
.btn{display:inline-flex;align-items:center;gap:10px;font:600 var(--step-0)/1 var(--body);padding:17px 26px;border-radius:99px;text-decoration:none;border:0;cursor:pointer;transition:transform .2s ease,background-color .2s ease,box-shadow .25s ease,color .2s}
.btn svg{width:18px;height:18px;transition:transform .2s ease}
.btn:hover{transform:translateY(-2px)}
.btn:hover svg{transform:translateX(3px)}
.btn-primary{background:var(--ink);color:#fff}
.btn-primary:hover{box-shadow:0 14px 34px -12px rgba(30,30,30,.55),0 0 0 4px rgba(233,206,253,.6)}
.btn-ghost{background:rgba(255,255,255,.5);color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--ink);backdrop-filter:blur(6px)}
.btn-ghost:hover{background:var(--ink);color:#fff}
.btn-light{background:#fff;color:var(--ink)}
.btn-light:hover{box-shadow:0 0 0 4px rgba(171,227,251,.45)}

/* En-tête */
.site-header{position:sticky;top:env(safe-area-inset-top,0px);z-index:50;background:color-mix(in srgb,var(--paper) 78%,transparent);backdrop-filter:saturate(1.5) blur(16px);-webkit-backdrop-filter:saturate(1.5) blur(16px);border-bottom:1px solid transparent;transition:border-color .2s,background-color .2s}
.site-header.scrolled{border-bottom-color:var(--line);background:color-mix(in srgb,var(--paper) 90%,transparent)}
.nav{display:flex;align-items:center;justify-content:space-between;gap:24px;height:74px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink)}
.brand .picto{width:40px;height:auto}
.brand .word{width:140px;height:auto}
.nav-links{display:flex;align-items:center;gap:clamp(12px,2vw,28px);list-style:none;margin:0;padding:0}
.nav-links a:not(.btn){text-decoration:none;font-weight:500;font-size:.98rem;position:relative;padding-block:6px}
.nav-links a:not(.btn)::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--grad-deep);transform:scaleX(0);transform-origin:left;transition:transform .25s ease}
.nav-links a:not(.btn):hover::after{transform:scaleX(1)}
.nav-links .btn{padding:13px 20px;font-size:.95rem}
.menu-toggle{display:none;background:none;border:0;padding:10px;cursor:pointer;color:var(--ink)}
.menu-toggle svg{width:26px;height:26px}
@media (max-width:980px){
  .menu-toggle{display:block}
  .nav-links{position:fixed;inset:74px 0 auto 0;flex-direction:column;align-items:stretch;gap:0;background:var(--paper);padding:8px var(--gutter) 24px;border-bottom:1px solid var(--line);box-shadow:0 30px 40px -30px rgba(0,0,0,.25)}
  .nav-links[data-open="false"]{display:none}
  .nav-links li a:not(.btn){display:block;padding:14px 0;border-bottom:1px solid var(--line);font-size:1.1rem}
  .nav-links li:last-child{margin-top:16px}
  .nav-links .btn{justify-content:center;width:100%;padding:16px}
}

/* Matière irisée (hero, contact) */
.mesh{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0}
.mesh i{position:absolute;border-radius:50%;filter:blur(70px);opacity:.75;will-change:transform}
.mesh .b1{width:46vw;height:46vw;max-width:720px;max-height:720px;background:var(--bleu);left:48%;top:-18%;animation:drift1 22s ease-in-out infinite}
.mesh .b2{width:36vw;height:36vw;max-width:560px;max-height:560px;background:var(--violet);left:70%;top:30%;animation:drift2 26s ease-in-out infinite}
.mesh .b3{width:34vw;height:34vw;max-width:520px;max-height:520px;background:var(--orange);left:-8%;top:40%;opacity:.55;animation:drift3 30s ease-in-out infinite}
.mesh .b4{width:28vw;height:28vw;max-width:420px;max-height:420px;background:var(--rose);left:30%;top:60%;opacity:.5;animation:drift1 34s ease-in-out infinite reverse}
.mesh.soft i{opacity:.45}
@keyframes drift1{50%{transform:translate(-8%,10%) scale(1.1)}}
@keyframes drift2{50%{transform:translate(-14%,-8%) scale(.92)}}
@keyframes drift3{50%{transform:translate(12%,-10%) scale(1.08)}}
.grain{position:absolute;inset:0;pointer-events:none;z-index:1;opacity:.18;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.5 0 0 0 0 0.5 0 0 0 0 0.5 0 0 0 .6 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}

/* Hero */
.hero{overflow:hidden;padding-block:clamp(40px,6vw,88px) clamp(36px,5vw,64px);isolation:isolate}
.hero .wrap{position:relative;z-index:2}
.hero-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:clamp(24px,4vw,56px);align-items:center}
.hero h1{font-size:var(--step-5);font-weight:800;letter-spacing:-.045em;line-height:.95;max-width:11ch;margin-block:22px 26px}
.hero .sub{font-size:var(--step-1);font-weight:500;max-width:34ch}
.hero .ctas{display:flex;flex-wrap:wrap;gap:12px;margin-top:34px}
.orb-stage{position:relative;aspect-ratio:1;width:100%;max-width:560px;justify-self:center;transform:translate(calc(var(--mx,0)*12px),calc(var(--my,0)*12px));transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.orb{position:absolute;inset:17%;border-radius:50%;background:
  radial-gradient(circle at 50% 50%,#fff 0 14%,transparent 50%),
  conic-gradient(from 210deg,var(--orange),var(--rose),var(--violet),var(--bleu),var(--violet),var(--orange));
  box-shadow:inset 0 0 70px rgba(255,255,255,.9),0 50px 120px -40px rgba(120,160,230,.7);animation:spin 26s linear infinite}
.orb::after{content:"";position:absolute;inset:0;border-radius:50%;background:radial-gradient(circle at 32% 26%,rgba(255,255,255,.95),transparent 42%)}
.orb-picto{position:absolute;inset:0;display:grid;place-items:center;color:var(--ink)}
.orb-picto svg{width:25%;height:auto}
.orbit{position:absolute;inset:3%;animation:spin 60s linear infinite}
.orbit .ring{position:absolute;inset:0;border-radius:50%;border:1.5px dashed rgba(30,30,30,.18)}
.o-ic{position:absolute;left:50%;top:50%;width:48px;height:48px;margin:-24px 0 0 -24px;border-radius:50%;background:#fff;display:grid;place-items:center;box-shadow:0 10px 24px -10px rgba(30,30,30,.35);transform:rotate(var(--a)) translate(min(26vw,262px)) rotate(calc(-1*var(--a)))}
.o-ic img{width:22px;height:22px;animation:spin 60s linear infinite reverse}
.chip{position:absolute;display:inline-flex;align-items:center;gap:8px;background:rgba(255,255,255,.88);backdrop-filter:blur(8px);border-radius:99px;padding:10px 16px;font-size:.9rem;font-weight:600;box-shadow:0 12px 30px -12px rgba(30,30,30,.28);white-space:nowrap;animation:float 7s ease-in-out infinite;z-index:2}
.chip i{width:9px;height:9px;border-radius:50%;background:var(--grad-deep)}
.chip.c1{top:12%;left:4%}
.chip.c2{top:34%;right:-2%;animation-delay:-1.4s}
.chip.c3{bottom:14%;left:0;animation-delay:-2.8s}
.chip.c4{bottom:4%;right:10%;animation-delay:-4.2s}
.chip.c5{top:0;right:18%;animation-delay:-5.6s}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes float{50%{transform:translateY(-9px)}}
.trust{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:clamp(40px,6vw,72px);background:rgba(255,255,255,.62);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.8);border-radius:var(--r-lg)}
.trust>div{padding:26px 28px;display:grid;gap:8px;align-content:start}
.trust>div+div{border-left:1px solid var(--line)}
.trust strong{font-family:var(--display);font-size:var(--step-3);font-weight:800;letter-spacing:-.03em;line-height:1}
.trust .langs-kpi{font-size:var(--step-2);letter-spacing:0;padding-top:.28em}
.trust span{color:var(--muted);max-width:34ch}
@media (max-width:900px){
  .hero-grid{grid-template-columns:1fr}
  .orb-stage{max-width:360px;margin:0 auto}
  .o-ic{transform:rotate(var(--a)) translate(min(38vw,182px)) rotate(calc(-1*var(--a)))}
  .trust{grid-template-columns:1fr}
  .trust>div+div{border-left:0;border-top:1px solid var(--line)}
}
@media (max-width:480px){.chip{font-size:.74rem;padding:7px 11px}.chip.c5,.chip.c4{display:none}.o-ic{width:38px;height:38px;margin:-19px 0 0 -19px}.o-ic img{width:18px;height:18px}}

/* Bandeau de mots */
.band{background:var(--ink);color:#fff;overflow:hidden;padding-block:22px;position:relative;z-index:3}
.band-row{display:flex;width:max-content;animation:scroll 45s linear infinite}
.band ul{display:flex;list-style:none;margin:0;padding:0}
.band li{font-family:var(--display);font-weight:700;font-size:clamp(1.4rem,1rem + 1.8vw,2.6rem);letter-spacing:-.02em;white-space:nowrap;display:flex;align-items:center}
.band li::after{content:"";width:.5em;height:.5em;margin-inline:.8em;border-radius:50%;background:var(--grad)}
.band li:nth-child(even){background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}

/* Clients */
.clients{background:var(--white)}
.clients-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(24px,5vw,72px);align-items:end}
.clients-head p{color:var(--muted)}
.marquee{overflow:hidden;margin-top:clamp(40px,6vw,64px);display:grid;gap:30px;mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.marquee-row{display:flex;width:max-content;animation:scroll 70s linear infinite}
.marquee-row.rev{animation-direction:reverse;animation-duration:80s}
.marquee:hover .marquee-row{animation-play-state:paused}
.marquee ul{display:flex;align-items:center;gap:clamp(40px,5vw,72px);list-style:none;margin:0;padding:0 clamp(20px,2.5vw,36px)}
.marquee li{flex:none;display:grid;place-items:center;height:64px}
.marquee img{height:auto;opacity:.78;transition:opacity .2s,transform .2s}
.marquee li:hover img{opacity:1;transform:scale(1.06)}
@keyframes scroll{to{transform:translateX(-50%)}}
@media (max-width:860px){.clients-head{grid-template-columns:1fr}}

/* Approche */
.approach{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(32px,6vw,96px)}
.approach .body{display:grid;gap:24px;align-content:end}
.approach .statement{font-family:var(--display);font-size:var(--step-2);font-weight:500;line-height:1.3;letter-spacing:-.015em}
.flow{list-style:none;margin:clamp(40px,6vw,72px) 0 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;counter-reset:none}
.flow li{position:relative;background:#fff;border-radius:var(--r);padding:26px 28px;display:grid;gap:6px;align-content:start;border:1px solid var(--line)}
.flow li:not(:last-child)::after{content:"";position:absolute;right:-13px;top:50%;width:12px;height:2px;background:var(--grad-deep);z-index:1}
.flow .f-k{font-family:var(--display);font-weight:800;font-size:var(--step-2);line-height:1;background:var(--grad-deep);-webkit-background-clip:text;background-clip:text;color:transparent}
.flow b{font-family:var(--display);font-size:var(--step-1);font-weight:700;letter-spacing:-.01em;line-height:1.2}
.flow small{color:var(--muted);font-size:.92rem}
@media (max-width:860px){.approach{grid-template-columns:1fr}.flow{grid-template-columns:1fr}.flow li:not(:last-child)::after{right:auto;left:50%;top:auto;bottom:-13px;width:2px;height:12px}}

/* Equipe */
.team{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(32px,6vw,96px);align-items:start}
.team-intro{display:grid;gap:20px;position:sticky;top:110px}
.profiles{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.profiles li{position:relative;display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:10px 28px;padding:22px 24px 22px 30px;border-radius:var(--r);background:var(--paper);align-items:baseline;overflow:hidden;transition:transform .25s ease}
.profiles li::before{content:"";position:absolute;left:0;top:0;bottom:0;width:6px;background:var(--grad-deep)}
.profiles li::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,rgba(242,186,161,.35),rgba(171,227,251,.4) 45%,rgba(233,206,253,.45));opacity:0;transition:opacity .3s;z-index:0}
.profiles li:hover{transform:translateX(6px)}
.profiles li:hover::after{opacity:1}
.profiles li>*{position:relative;z-index:1}
.profiles .sector{font-family:var(--display);font-size:var(--step-1);font-weight:700;letter-spacing:-.01em}
.profiles .who{color:var(--ink-2)}
.lead-card{margin-top:20px;display:grid;grid-template-columns:auto minmax(0,1fr);gap:22px;align-items:start;background:var(--ink);color:#eeedf1;border-radius:var(--r);padding:28px}
.lead-card img{width:72px;height:72px;border-radius:50%;object-fit:cover;box-shadow:0 0 0 3px var(--ink),0 0 0 5px var(--bleu)}
@media (max-width:860px){.team{grid-template-columns:1fr}.team-intro{position:static}.profiles li{grid-template-columns:1fr;gap:4px}}
@media (max-width:480px){.lead-card{grid-template-columns:1fr}}

/* Enjeux : cartes empilées */
.stack{display:grid;gap:18px}
.stack-card{position:sticky;top:calc(96px + var(--i)*16px);background:var(--tint);border-radius:var(--r-lg);padding:clamp(24px,4vw,44px);display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(20px,4vw,56px);box-shadow:0 -10px 40px -24px rgba(30,30,30,.25);border:1px solid rgba(255,255,255,.9);min-height:260px}
.sc-head{display:grid;gap:16px;align-content:start}
.sc-n{font-size:var(--step--1);font-weight:600;letter-spacing:.12em;color:var(--muted)}
.stack-card .ico{width:56px;height:56px;border-radius:16px;display:grid;place-items:center;background:#fff}
.stack-card .ico svg{width:30px;height:30px;stroke:var(--ink);fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.stack-card h3{font-size:var(--step-2);line-height:1.12}
.sc-body{display:grid;gap:20px;align-content:start}
.sc-body .pb{color:var(--ink-2);font-size:var(--step-1);line-height:1.5}
.sc-body .ans{display:grid;grid-template-columns:auto 1fr;gap:14px;background:rgba(255,255,255,.75);border-radius:var(--r);padding:20px 22px}
.sc-body .ans svg{width:20px;height:20px;margin-top:3px;stroke:var(--ink);fill:none;stroke-width:2}
@media (max-width:860px){.stack-card{grid-template-columns:1fr;position:relative;top:auto;min-height:0}}

/* Sections sombres */
.dark{background:var(--ink);color:#fff;overflow:hidden}
.picto-bg{position:absolute;right:-8%;top:-6%;width:min(60vw,760px);color:#fff;opacity:.035;pointer-events:none}
.picto-bg svg{width:100%;height:auto}

/* Services */
.flagship{position:relative;border-radius:var(--r-lg);padding:1.5px;background:var(--grad)}
.flagship-in{border-radius:calc(var(--r-lg) - 1.5px);background:var(--ink-2);padding:clamp(24px,4vw,48px);display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(28px,5vw,64px)}
.flagship .tag{display:inline-flex;gap:8px;align-items:center;font-size:var(--step--1);font-weight:600;letter-spacing:.08em;text-transform:uppercase}
.badge{background:var(--grad);color:var(--ink);border-radius:99px;padding:5px 12px;font-size:.78rem;letter-spacing:.04em;font-weight:700;text-transform:none}
.flagship h3{font-size:var(--step-3);margin-block:16px}
.flagship .intro{color:var(--muted-dark);font-size:var(--step-1);line-height:1.5}
.flagship .note{margin-block:24px 28px;display:table;border:1px solid var(--line-dark);border-radius:var(--r-sm);padding:12px 16px;font-weight:500}
.checks{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:0 28px;align-content:start}
.checks li{padding:14px 0 14px 30px;border-bottom:1px solid var(--line-dark);position:relative}
.checks li::before{content:"";position:absolute;left:0;top:21px;width:14px;height:8px;border-left:2px solid var(--bleu);border-bottom:2px solid var(--bleu);transform:rotate(-45deg)}
.more-title{font-size:var(--step-2);margin-block:clamp(48px,7vw,80px) 24px}
.offers{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.offer{border:1px solid var(--line-dark);border-radius:var(--r);padding:26px;display:flex;flex-direction:column;gap:12px;transition:border-color .25s,background-color .25s,transform .25s;background:rgba(255,255,255,.02)}
.offer:hover{border-color:var(--bleu);transform:translateY(-4px)}
.offer h4{font-size:var(--step-1);line-height:1.2}
.offer p{color:var(--muted-dark);font-size:.97rem}
.offer a{margin-top:auto;padding-top:10px;font-weight:600;text-decoration:none;display:inline-flex;gap:8px;align-items:center}
.offer a svg{width:16px;height:16px;flex:none;transition:transform .2s}
.offer a:hover svg{transform:translateX(3px)}
@media (max-width:1000px){.flagship-in{grid-template-columns:1fr}.offers{grid-template-columns:1fr 1fr}}
@media (max-width:600px){.checks,.offers{grid-template-columns:1fr}}

/* Process */
.steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;counter-reset:s}
.step{position:relative;padding-top:30px;display:grid;gap:10px;align-content:start}
.step::before{counter-increment:s;content:"0" counter(s);font-family:var(--display);font-weight:800;font-size:var(--step-4);line-height:1;background:var(--grad-deep);-webkit-background-clip:text;background-clip:text;color:transparent}
.step::after{content:"";position:absolute;top:0;left:0;right:0;height:3px;border-radius:3px;background:var(--line)}
.step:first-child::after{background:var(--grad-deep)}
.step h3{font-size:var(--step-1);line-height:1.2}
.step p{color:var(--muted);font-size:.98rem}
.process-cta{margin-top:48px}
@media (max-width:900px){.steps{grid-template-columns:1fr 1fr;gap:32px 16px}}
@media (max-width:560px){.steps{grid-template-columns:1fr}}

/* Témoignages : défilement automatique */
.testimonials .sec-head{margin-bottom:clamp(32px,4vw,48px)}
.q-wrap{overflow:hidden;mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent)}
.q-row{display:flex;width:max-content;animation:scroll 110s linear infinite;align-items:stretch}
.q-wrap:hover .q-row,.q-wrap:focus-within .q-row{animation-play-state:paused}
.q-set{display:flex;gap:18px;padding-right:18px;align-items:stretch}
.quote{margin:0;width:clamp(300px,30vw,420px);flex:none;background:var(--ink-2);border-radius:var(--r-lg);padding:32px;display:flex;flex-direction:column;gap:20px;border:1px solid var(--line-dark)}
.qmark{width:56px;height:auto}
.quote blockquote{margin:0;font-size:1.02rem;line-height:1.62;color:#eeedf1}
.quote figcaption{margin-top:auto;display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:14px;align-items:center;padding-top:20px;border-top:1px solid var(--line-dark)}
.av{width:56px;height:56px;border-radius:50%;object-fit:cover;box-shadow:0 0 0 2px var(--ink-2),0 0 0 4px rgba(171,227,251,.7)}
.av-ph{display:grid;place-items:center;background:var(--grad);color:var(--ink);font-family:var(--display);font-weight:800;font-size:1.1rem}
.quote .who{display:grid;gap:2px;min-width:0}
.quote .who b{font-weight:700}
.quote .who span{color:var(--muted-dark);font-size:.9rem}
.quote .li{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;background:rgba(255,255,255,.08);color:#fff;transition:background .2s,color .2s}
.quote .li:hover{background:#fff;color:#0a66c2}
.quote .li svg{width:18px;height:18px}

/* Plateformes */
.platforms{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:clamp(32px,6vw,96px);align-items:center}
.pgrid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.pgrid li{aspect-ratio:1;max-width:100%;background:var(--paper);border-radius:var(--r);display:grid;place-items:center;gap:10px;align-content:center;transition:transform .25s,box-shadow .25s}
.pgrid li:hover{transform:translateY(-4px) rotate(-2deg);box-shadow:0 20px 40px -24px rgba(30,30,30,.35)}
.pl-ic{width:44px;height:44px;background:var(--grad-deep);-webkit-mask:var(--m) center/contain no-repeat;mask:var(--m) center/contain no-repeat}
.pgrid span:last-child{font-size:.82rem;color:var(--muted);font-weight:500}
@media (max-width:860px){.platforms{grid-template-columns:1fr}}
@media (max-width:420px){.pgrid{grid-template-columns:repeat(3,minmax(0,1fr))}.pl-ic{width:36px;height:36px}}

/* Fondatrice */
.founder{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(32px,6vw,88px);align-items:center}
.portrait{position:relative;isolation:isolate}
.portrait img{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;border-radius:var(--r-lg)}
.portrait::before{content:"";position:absolute;inset:-14px 14px 14px -14px;border-radius:var(--r-lg);background:var(--grad);z-index:-1}
.founder-body{display:grid;gap:18px}
.founder-body h2{font-size:var(--step-4);font-weight:800}
.founder-body p{color:var(--ink-2)}
@media (max-width:860px){.founder{grid-template-columns:1fr}.portrait{max-width:420px;margin-left:14px!important}}

/* FAQ */
.faq-grid{display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);gap:clamp(32px,6vw,96px);align-items:start}
.faq-grid .sec-head{position:sticky;top:110px}
.faq details{border-bottom:1px solid var(--line)}
.faq details:first-child{border-top:1px solid var(--ink)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:20px;padding:22px 0;font-family:var(--display);font-size:var(--step-1);font-weight:600;letter-spacing:-.01em;line-height:1.25}
.faq summary::-webkit-details-marker{display:none}
.faq summary .pm{flex:none;width:32px;height:32px;border-radius:50%;border:1.5px solid var(--ink);position:relative;transition:background .2s}
.faq summary .pm::before,.faq summary .pm::after{content:"";position:absolute;left:50%;top:50%;width:12px;height:1.5px;background:var(--ink);transform:translate(-50%,-50%)}
.faq summary .pm::after{transform:translate(-50%,-50%) rotate(90deg);transition:transform .3s}
.faq summary:hover .pm{background:var(--t-violet)}
.faq details[open] summary .pm{background:var(--ink)}
.faq details[open] summary .pm::before,.faq details[open] summary .pm::after{background:#fff}
.faq details[open] summary .pm::after{transform:translate(-50%,-50%) rotate(0)}
.faq .a{padding:0 48px 24px 0;color:var(--muted);max-width:68ch}
@media (max-width:860px){.faq-grid{grid-template-columns:1fr}.faq-grid .sec-head{position:static}.faq .a{padding-right:0}}

/* Contact et formulaires */
.contact{overflow:hidden;background:var(--paper);isolation:isolate}
.contact .wrap{position:relative;z-index:2}
.contact-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(32px,6vw,96px);align-items:start}
.form{background:#fff;border-radius:var(--r-lg);padding:clamp(22px,4vw,40px);display:grid;grid-template-columns:1fr 1fr;gap:18px;box-shadow:0 30px 80px -50px rgba(30,30,30,.45);position:relative}
.field{display:grid;gap:8px;min-width:0;align-content:start}
.field.full{grid-column:1/-1}
.field label{font-weight:600;font-size:.93rem}
.field label small{font-weight:400;color:var(--muted)}
.field input,.field select,.field textarea{font:inherit;font-size:1rem;color:var(--ink);background:var(--paper);border:1.5px solid transparent;border-radius:12px;padding:14px 16px;width:100%;transition:border-color .2s,background-color .2s}
.field textarea{min-height:140px;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--ink);background:#fff}
.field input[type=file]{padding:12px}
.form .consent{grid-column:1/-1;font-size:.85rem;color:var(--muted)}
.form .consent a{color:var(--ink)}
.form .actions{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;gap:16px}
.form .status{font-weight:500}
.form .status.err{color:#b3261e}
.hp{position:absolute;left:-9999px}
.form-done{grid-column:1/-1;display:grid;gap:12px;justify-items:start;padding:24px 0}
.form-done h3{font-size:var(--step-2)}
@media (max-width:860px){.contact-grid{grid-template-columns:1fr}}
@media (max-width:560px){.form{grid-template-columns:1fr}}

/* Pied de page */
.site-footer{background:var(--ink);color:#fff;padding-block:clamp(56px,8vw,96px) 32px}
.foot{display:grid;grid-template-columns:minmax(0,1.4fr) repeat(3,minmax(0,.6fr));gap:32px}
.foot .brand{color:#fff}
.foot .baseline{color:var(--muted-dark);max-width:40ch;margin-top:20px}
.foot h4{font-family:var(--body);font-size:var(--step--1);font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--muted-dark);margin-bottom:14px}
.foot ul{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.foot a{text-decoration:none;opacity:.92}
.foot a:hover{opacity:1;text-decoration:underline;text-underline-offset:4px}
.copy{margin-top:56px;padding-top:24px;border-top:1px solid var(--line-dark);color:var(--muted-dark);font-size:.9rem;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}
@media (max-width:860px){.foot{grid-template-columns:1fr 1fr}.foot>div:first-child{grid-column:1/-1}}

/* Pages annexes */
.page-hero{padding-block:clamp(48px,8vw,104px) clamp(32px,5vw,56px)}
.page-hero h1{font-size:var(--step-4);font-weight:800;max-width:16ch;margin-top:18px}
.prose{max-width:72ch;display:grid;gap:18px}
.prose h2{font-size:var(--step-2);margin-top:24px}
.prose p{color:var(--ink-2)}
.join-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(32px,6vw,88px);align-items:start}
.how{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:14px;counter-reset:h}
.how li{display:grid;grid-template-columns:auto 1fr;gap:16px;background:#fff;border-radius:var(--r);padding:20px}
.how li::before{counter-increment:h;content:counter(h);width:34px;height:34px;border-radius:50%;background:var(--grad);display:grid;place-items:center;font-weight:700;font-family:var(--display)}
@media (max-width:860px){.join-grid{grid-template-columns:1fr}}

/* Apparition au défilement (navigateurs compatibles uniquement, contenu visible sinon) */
@supports (animation-timeline:view()){
  .reveal,.stack-card .sc-body,.steps .step,.offer,.pgrid li,.profiles li{animation:rise linear both;animation-timeline:view();animation-range:entry 0% entry 55%}
  @keyframes rise{from{opacity:.15;transform:translateY(36px)}to{opacity:1;transform:none}}
}


/* ===== v3 : retour à la sobriété v1, animations ciblées ===== */
.hero{padding-block:clamp(40px,7vw,96px) clamp(40px,6vw,80px)}
.hero-grid{grid-template-columns:minmax(0,1.25fr) minmax(0,.9fr);gap:clamp(24px,5vw,72px)}
.hero h1{font-size:var(--step-4);letter-spacing:-.035em;line-height:1.02;max-width:13ch;margin-block:20px 24px}
.hero .txt{color:var(--muted);max-width:56ch;margin-top:14px}
.hero .ctas{margin-top:32px}
.orb-stage{max-width:520px}
.orb{inset:15%;background:radial-gradient(circle at 50% 50%,#fff 0 16%,transparent 52%),conic-gradient(from 210deg,var(--orange),var(--rose),var(--violet),var(--bleu),var(--violet),var(--orange));filter:blur(.5px);box-shadow:inset 0 0 80px rgba(255,255,255,.85),0 40px 120px -40px rgba(171,227,251,.9)}
.orb-picto svg{width:24%;opacity:.92}
.orbit{inset:2%}
.orbit .ring{border:1px solid rgba(30,30,30,.08)}
.orbit::before{content:"";position:absolute;inset:-8%;border-radius:50%;border:1px dashed rgba(30,30,30,.07)}
.o-ic{width:44px;height:44px;margin:-22px 0 0 -22px;box-shadow:0 8px 20px -10px rgba(30,30,30,.25);transform:rotate(var(--a)) translate(min(25vw,250px)) rotate(calc(-1*var(--a)))}
.o-ic i{display:block;width:20px;height:20px;background:#b3b0bb;-webkit-mask:var(--m) center/contain no-repeat;mask:var(--m) center/contain no-repeat;animation:spin 60s linear infinite reverse}
.chip{background:#fff;backdrop-filter:none;font-size:.92rem}
.chip i{background:var(--grad)}
.chip.c1{top:9%;left:-2%}
.chip.c2{top:44%;right:-4%}
.chip.c3{bottom:8%;left:8%}
.trust{background:none;backdrop-filter:none;-webkit-backdrop-filter:none;border:0;border-top:1px solid var(--line);border-radius:0;margin-top:clamp(48px,7vw,88px)}
.trust>div{padding:26px 24px 4px 0}
.trust>div+div{padding-left:24px;border-left:1px solid var(--line)}
.trust .langs-kpi{font-size:var(--step-2);padding-top:.35em}
@media (max-width:900px){
  .hero-grid{grid-template-columns:1fr}
  .orb-stage{max-width:360px;margin:8px auto 0}
  .o-ic{transform:rotate(var(--a)) translate(min(40vw,172px)) rotate(calc(-1*var(--a)))}
  .trust{grid-template-columns:1fr}
  .trust>div,.trust>div+div{padding:20px 0;border-left:0;border-bottom:1px solid var(--line)}
}
@media (max-width:480px){.o-ic{width:36px;height:36px;margin:-18px 0 0 -18px}.o-ic i{width:16px;height:16px}}

.approach .h2.xl{max-width:11ch}
.approach .statement{font-family:var(--body);font-size:var(--step-1);font-weight:400;line-height:1.55;letter-spacing:0}

.profiles li{background:var(--paper)}
.profiles li::before{background:var(--grad)}
.profiles li::after{background:linear-gradient(90deg,rgba(233,206,253,.35),rgba(171,227,251,.25))}
.lead-card{background:var(--paper);color:var(--ink-2)}
.lead-card img{box-shadow:none;border-radius:50%}

.step::before{font-size:var(--step-3);background:var(--grad);-webkit-background-clip:text;background-clip:text;filter:saturate(1.3) brightness(.85)}
.step::after{height:2px}
.step:first-child::after{background:var(--grad)}

/* Témoignages : cartes empilées à faire glisser */
.t-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(32px,6vw,88px);align-items:start}
.t-head{position:sticky;top:110px;margin:0}
.t-ctrl{display:flex;align-items:center;gap:14px;margin-top:10px}
.t-btn{width:52px;height:52px;border-radius:50%;border:1.5px solid var(--ink);background:transparent;color:var(--ink);cursor:pointer;display:grid;place-items:center;transition:background .2s,color .2s}
.t-btn:hover{background:var(--ink);color:#fff}
.t-btn svg{width:20px;height:20px}
.t-count{font-variant-numeric:tabular-nums;color:var(--muted);font-weight:500;min-width:4.5em;text-align:center}
.t-count b{color:var(--ink)}
.deck{display:grid;gap:16px;padding-right:40px}
.quote{width:auto;margin:0;background:#fff;color:var(--ink);border:1px solid var(--line);border-radius:var(--r-lg);padding:clamp(24px,3.5vw,40px);display:flex;flex-direction:column;gap:22px;box-shadow:0 30px 60px -40px rgba(30,30,30,.35)}
.quote .qmark{width:52px}
.quote blockquote{color:var(--ink-2);font-size:var(--step-0);line-height:1.65}
.quote figcaption{border-top:1px solid var(--line);grid-template-columns:auto minmax(0,1fr) auto}
.quote .who span{color:var(--muted)}
.av{box-shadow:0 0 0 2px #fff,0 0 0 4px var(--violet)}
.quote .li{background:var(--paper);color:var(--ink)}
.quote .li:hover{background:#0a66c2;color:#fff}
.js .deck-stage{position:relative;transition:height .45s cubic-bezier(.2,.7,.2,1);touch-action:pan-y;user-select:none}
.js .deck .quote{position:absolute;left:0;right:0;top:0;transition:transform .5s cubic-bezier(.2,.7,.2,1),opacity .4s;will-change:transform}
.js .deck .quote:not(.is-active){bottom:0;pointer-events:none}
.js .deck .quote:not(.is-active)>*{visibility:hidden}
.js .deck .quote[data-pos="0"]{z-index:5;transform:none}
.js .deck .quote[data-pos="1"]{z-index:4;transform:translateX(18px) scale(.965);background:#f1eff5}
.js .deck .quote[data-pos="2"]{z-index:3;transform:translateX(36px) scale(.93);background:#e9e6ef}
.js .deck .quote[data-pos="3"]{z-index:2;transform:translateX(52px) scale(.9);background:#e2dfe8}
.js .deck .quote[data-pos="hide"]{z-index:1;opacity:0;transform:translateX(52px) scale(.9)}
.js .deck .quote.out-l{transform:translateX(-110%) rotate(-4deg)!important;opacity:0;z-index:6}
@media (max-width:860px){.t-grid{grid-template-columns:1fr}.t-head{position:static}.deck{padding-right:30px}}

/* Plateformes : tuiles pastel comme le site actuel */
.pgrid{grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:22px 18px}
.pgrid li{aspect-ratio:auto;background:none;border-radius:0;display:grid;justify-items:center;gap:10px}
.pgrid li:hover{transform:none;box-shadow:none}
.tile{position:relative;width:76px;height:76px;display:grid;place-items:center;isolation:isolate;transition:transform .25s}
.tile::before,.tile::after{content:"";position:absolute;inset:0;border-radius:16px;border:1.5px solid transparent;background:linear-gradient(#fff,#fff) padding-box,var(--grad) border-box}
.tile::after{transform:translate(-9px,9px);z-index:-2;opacity:.7}
.tile::before{z-index:-1;background:linear-gradient(#fbfafc,#fbfafc) padding-box,var(--grad) border-box}
.pgrid li:hover .tile{transform:translate(3px,-3px)}
.pl-ic{width:30px;height:30px;background:var(--grad);filter:saturate(1.6) brightness(.9)}
.pl-n{font-size:.82rem;color:var(--muted);font-weight:500}

.portrait::before{display:none}

.contact{background:#fff;border-top:1px solid var(--line)}
.contact .glow{position:absolute;width:520px;height:520px;border-radius:50%;left:-180px;bottom:-260px;background:conic-gradient(from 90deg,var(--orange),var(--rose),var(--violet),var(--bleu),var(--orange));filter:blur(70px);opacity:.35;pointer-events:none;z-index:0}
.contact .h2.xl{max-width:12ch}

/* ===== v4 : une matière (verre irisé pastel), une forme (le cercle) ===== */
.sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.eyebrow::before{width:11px;height:11px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff 0 18%,transparent 55%),conic-gradient(from 200deg,var(--orange),var(--rose),var(--violet),var(--bleu),var(--orange));box-shadow:0 0 0 3px rgba(233,206,253,.35)}
/* Hero : sphère WebGL */
.orb-stage{transform:none;max-width:540px}
.orb-stage canvas{position:absolute;inset:0;width:100%;height:100%;display:block}
.orb-stage .halo{position:absolute;inset:12%;border-radius:50%;background:conic-gradient(from 120deg,var(--orange),var(--rose),var(--violet),var(--bleu),var(--orange));filter:blur(60px);opacity:.45;animation:spin 30s linear infinite}
.webgl .orb-stage .orb{display:none}
.orb{inset:16%}
/* Halo irisé, signature répétée */
.portrait,.lead-card,.deck,.contact-grid .form,.flagship{isolation:isolate}
.portrait::before,.deck::before,.contact-grid .form::before,.lead-card::before{content:"";display:block;position:absolute;z-index:-1;border-radius:50%;background:conic-gradient(from 90deg,var(--orange),var(--rose),var(--violet),var(--bleu),var(--orange));filter:blur(60px);opacity:.35;pointer-events:none}
.portrait::before{inset:8% -6% -4% 10%}
.deck::before{inset:10% 10% 0 0}
.contact-grid .form::before{inset:10% -4% -6% 20%}
.lead-card::before{width:160px;height:160px;left:-30px;top:-30px;opacity:.3}
.flagship{box-shadow:0 30px 80px -40px rgba(171,227,251,.45)}
/* Equipe : texte en haut, matching en dessous */
.team-top{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(24px,5vw,72px);align-items:end;margin-bottom:clamp(32px,5vw,48px)}
.profiles{gap:10px}
.profiles li{grid-template-columns:minmax(0,.75fr) auto minmax(0,1.5fr);align-items:center;gap:12px 24px}
.match-arrow{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:#fff;box-shadow:0 0 0 1.5px rgba(233,206,253,.9)}
.match-arrow svg{width:18px;height:18px}
.lead-card{margin-top:24px;position:relative}
@media (max-width:860px){.team-top{grid-template-columns:1fr}.profiles li{grid-template-columns:1fr;gap:8px}.match-arrow{transform:rotate(90deg);width:32px;height:32px}}
/* Etudes de cas */
.cases{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.case{position:relative;background:#fff;border-radius:var(--r-lg);padding:30px 28px;display:flex;flex-direction:column;gap:22px;border:1.5px solid transparent;background:linear-gradient(#fff,#fff) padding-box,linear-gradient(var(--line),var(--line)) border-box;transition:background .3s,transform .3s}
.case:hover{background:linear-gradient(#fff,#fff) padding-box,var(--grad) border-box;transform:translateY(-4px)}
.case .fake{align-self:flex-start;font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#a0522d;background:var(--t-orange);border:1px dashed #e0a080;border-radius:99px;padding:4px 10px}
.case h3{font-size:var(--step-2)}
.case h3 small{display:block;font-family:var(--body);font-size:.85rem;font-weight:500;color:var(--muted);letter-spacing:0;margin-top:4px}
.kpis{display:grid;gap:16px;padding-block:6px}
.kpis div{display:grid;gap:2px}
.kpis strong{font-family:var(--display);font-weight:800;font-size:var(--step-3);line-height:1;letter-spacing:-.03em;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;filter:saturate(1.35) brightness(.86)}
.kpis span{color:var(--muted);font-size:.95rem}
.case dl{margin:auto 0 0;padding-top:18px;border-top:1px solid var(--line);display:grid;gap:4px;font-size:.92rem}
.case dt{font-weight:700;font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-top:8px}
.case dt:first-child{margin-top:0}
.case dd{margin:0;color:var(--ink-2)}
@media (max-width:980px){.cases{grid-template-columns:1fr}}
/* Témoignages : flèches sur la carte */
.testimonials{background:#fff}
.deck{position:relative;padding-right:56px}
.t-btn{position:absolute;top:50%;z-index:8;width:52px;height:52px;margin-top:-26px;background:#fff;border:0;box-shadow:0 10px 30px -10px rgba(30,30,30,.35),0 0 0 1.5px rgba(233,206,253,.9);color:var(--ink)}
.t-btn:hover{background:var(--ink);color:#fff}
.t-btn.prev{left:-26px}
.t-btn.next{right:30px}
.deck .t-count{margin-top:16px;text-align:left;padding-left:4px}
.no-js .t-btn{display:none}
@media (max-width:560px){.t-btn.prev{left:-10px}.t-btn.next{right:16px}.t-btn{width:44px;height:44px;margin-top:-22px}}
.quote{background:#fff}
/* Plateformes : logos seuls */
.pgrid{grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:26px 14px}
.pl-ic{width:28px;height:28px}
.pgrid{grid-template-columns:repeat(6,minmax(0,1fr))}
@media (max-width:560px){.pgrid{grid-template-columns:repeat(4,minmax(0,1fr))}}
.founder-sec,.contact,.testimonials{overflow:hidden}
/* v5 : hero dynamique, études de cas compactes */
.orb-stage .float{position:absolute;inset:14%;animation:bob 9s ease-in-out infinite}
.orb-stage .float canvas{position:absolute;inset:0;width:100%;height:100%}
.orb-stage .float .orb{inset:0}
@keyframes bob{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-14px) scale(1.03)}}
.orb-stage .orbit{position:absolute;inset:0;animation:spin 70s linear infinite}
.orb-stage .orbit::before{content:"";position:absolute;inset:4%;border-radius:50%;border:1px dashed rgba(30,30,30,.09)}
.orb-stage .o-ic{width:42px;height:42px;margin:-21px 0 0 -21px;background:#fff;border-radius:50%;display:grid;place-items:center;box-shadow:0 8px 22px -12px rgba(30,30,30,.3);transform:rotate(var(--a)) translate(min(23vw,250px)) rotate(calc(-1*var(--a)))}
.orb-stage .o-ic i{display:block;width:18px;height:18px;background:#bdbac4;-webkit-mask:var(--m) center/contain no-repeat;mask:var(--m) center/contain no-repeat;animation:spin 70s linear infinite reverse}
.orb-stage .halo{inset:20%}
@media (max-width:900px){.orb-stage .o-ic{transform:rotate(var(--a)) translate(min(42vw,168px)) rotate(calc(-1*var(--a)))}}
@media (max-width:480px){.orb-stage .o-ic{width:34px;height:34px;margin:-17px 0 0 -17px}.orb-stage .o-ic i{width:15px;height:15px}}
.testimonials{background:var(--paper)}
.case{padding:24px;gap:16px;background:linear-gradient(var(--paper),var(--paper)) padding-box,linear-gradient(var(--line),var(--line)) border-box}
.case:hover{background:linear-gradient(var(--paper),var(--paper)) padding-box,var(--grad) border-box}
.case h3{font-size:var(--step-1)}
.kpis{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:0}
.kpis strong{font-size:var(--step-2)}
.kpis span{font-size:.82rem;line-height:1.35}
.case details{border-top:1px solid var(--line);padding-top:12px;margin-top:auto}
.case summary{cursor:pointer;font-size:.88rem;font-weight:600;list-style:none;display:flex;justify-content:space-between;align-items:center}
.case summary::-webkit-details-marker{display:none}
.case summary::after{content:"+";font-size:1.2rem;font-weight:400;transition:transform .2s}
.case details[open] summary::after{transform:rotate(45deg)}
.case dl{border-top:0;padding-top:10px;margin:0}
.orb-stage .float{inset:9%}
.kpis{grid-template-columns:1fr;gap:10px}
.kpis div{grid-template-columns:5.6em minmax(0,1fr);align-items:center;gap:12px}
.kpis strong{font-size:1.55rem;white-space:nowrap}
.kpis span{font-size:.88rem}
.cases{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.kpis div{grid-template-columns:1fr;gap:0}
@media (max-width:1100px){.cases{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:600px){.cases{grid-template-columns:1fr}}
.case .fake{white-space:nowrap}
/* v7 */
.sphere-picto{position:absolute;inset:0;display:grid;place-items:center;color:var(--ink);pointer-events:none}
.sphere-picto svg{width:30%;height:auto;opacity:.88;filter:drop-shadow(0 6px 14px rgba(255,255,255,.6))}
.tags{list-style:none;margin:2px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.tags li{font-size:.78rem;font-weight:500;padding:5px 10px;border-radius:99px;border:1px solid var(--line-dark);color:#e6e4ec}
.join-read .prose{max-width:760px}
.join-read .how{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;max-width:none}
.join-read .how li{grid-template-columns:1fr;align-content:start}
.join-read{display:grid;justify-items:start}
.join-form-wrap{max-width:860px}
@media (max-width:860px){.join-read .how{grid-template-columns:1fr}.join-read .how li{grid-template-columns:auto 1fr}}
.join-form-wrap{max-width:var(--wrap)}
.join-form-wrap .form{max-width:820px}
/* v8 : ruban d'ondes, fil rouge au défilement */
.ribbon{position:fixed;inset:0;z-index:1;pointer-events:none;mix-blend-mode:multiply}
.site-header{z-index:60}
/* v9 : le ruban passe sous le contenu */
.hero,.contact{isolation:auto}
main .wrap,.marquee,.q-wrap,.page-hero .wrap{position:relative;z-index:2}

/* ===== v10 : ruban de fils, aération, hero typographique ===== */
:root{--wrap:1440px;--gutter:clamp(18px,7vw,120px)}
.sec{padding-block:clamp(80px,11vw,168px)}
.sec-head{margin-bottom:clamp(40px,6vw,72px)}
/* retraits : sphère, orbite, halos, voile pleine page */
.orb-stage,.ribbon{display:none!important}
.portrait::before,.deck::before,.contact-grid .form::before,.lead-card::before{display:none!important}
/* hero */
.hero{position:relative;overflow:hidden;padding-block:clamp(56px,9vw,136px) clamp(40px,6vw,72px);isolation:auto}
.hero .wrap{position:relative;z-index:2}
.fil-hero{position:absolute;inset:0;width:100%;height:100%;z-index:1;pointer-events:none}
.hero-copy{display:grid;gap:0;max-width:1100px}
.hero h1{font-size:clamp(2.9rem,1.4rem + 5.9vw,6.8rem);font-weight:800;letter-spacing:-.045em;line-height:.97;max-width:12ch;margin-block:26px 30px}
.hero .sub{font-size:var(--step-1);font-weight:500;max-width:40ch}
.hero .txt{color:var(--muted);max-width:56ch;margin-top:14px}
.hero .ctas{margin-top:36px}
.w{display:inline-block}
.js .w{opacity:0;transform:translateY(.35em);filter:blur(6px);transition:opacity .9s ease,transform .9s cubic-bezier(.2,.8,.2,1),filter .9s ease}
.js .w.in{opacity:1;transform:none;filter:none}
.w.hl{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;filter:saturate(1.35) brightness(.86)}
.js .w.hl{filter:blur(6px) saturate(1.35) brightness(.86)}
.js .w.hl.in{filter:saturate(1.35) brightness(.86)}
.fil-m{display:none}
.trust{margin-top:clamp(56px,8vw,104px)}
@media (max-width:760px){
  .fil-hero{display:none}
  .fil-m{display:block;position:relative;height:150px;margin:28px calc(-1*var(--gutter)) 0}
  .fil-m canvas{position:absolute;inset:0;width:100%;height:100%}
  .trust{margin-top:8px}
}
/* transitions */
.fil-band{position:relative;height:clamp(110px,12vw,170px);margin-top:clamp(48px,7vw,96px);margin-bottom:calc(-1*clamp(80px,11vw,168px) + 8px);pointer-events:none}
.fil-band canvas{position:absolute;inset:0;width:100%;height:100%}
/* contact */
.contact{position:relative}
.fil-contact{position:relative;height:clamp(150px,20vw,280px);margin:clamp(24px,4vw,48px) calc(-1*var(--gutter)) 0;pointer-events:none}
.fil-contact canvas{position:absolute;inset:0;width:calc(100% + 8vw);height:100%}
.contact-grid .form{position:relative;z-index:2}
@media (max-width:860px){.fil-contact{height:130px;margin-bottom:8px}}
/* pied de page : picto en filigrane */
.site-footer{position:relative;overflow:hidden}
.site-footer .wrap{position:relative}
.foot-picto{position:absolute;right:calc(-1*var(--gutter)/2);bottom:40px;width:min(42vw,520px);color:#fff;opacity:.03;pointer-events:none}
.foot-picto svg{width:100%;height:auto}
.foot,.copy{position:relative;z-index:1}
/* v11 */
.join-sec{position:relative;overflow:hidden}
.join-main{position:relative;overflow:hidden}.join-main>section{position:relative;z-index:1}
.fil-join{position:absolute;right:0;top:0;width:40%;height:1500px;pointer-events:none;z-index:0}
.join-form-sec{z-index:2}
.join-sec .wrap{position:relative;z-index:1}
@media (max-width:1000px){.fil-join{display:none}}
/* v11 : carte pastel décalée derrière le portrait */
.portrait{position:relative;isolation:isolate;margin:0 34px 34px 0!important}
.portrait img{position:relative;z-index:1}
.portrait::after{content:"";position:absolute;inset:34px -34px -34px 34px;border-radius:32px;background:linear-gradient(140deg,#f7d3c3 0%,#efdcfd 50%,#cfeefc 100%);z-index:0}
@media (max-width:860px){.portrait{margin:0 20px 20px 0!important}.portrait::after{inset:20px -20px -20px 20px;border-radius:24px}}
/* v12 : études de cas */
.cases{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.case{padding:26px;gap:18px;display:flex;flex-direction:column}
.case-h{display:grid;gap:6px}
.case h3{font-size:var(--step-1)}
.case-tag{font-size:.78rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.case-ctx{font-size:.92rem;color:var(--ink-2);margin-top:4px}
.case .kpis{grid-template-columns:1fr;gap:12px;margin-top:auto;padding-top:16px;border-top:1px solid var(--line)}
.case .kpis div{grid-template-columns:1fr;gap:2px}
.case .kpis strong{font-size:1.6rem;white-space:nowrap}
.case-lead{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.5fr);gap:clamp(20px,4vw,56px);align-items:center;padding:clamp(26px,3.5vw,44px)}
.case-lead h3{font-size:var(--step-2)}
.case-lead .case-ctx{font-size:1rem}
.case-lead .kpis{grid-template-columns:repeat(3,minmax(0,1fr));border-top:0;padding-top:0;margin-top:0;gap:24px}
.case-lead .kpis strong{font-size:var(--step-3)}
@media (max-width:1100px){.cases{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:760px){.cases{grid-template-columns:1fr}.case-lead{grid-template-columns:1fr}.case-lead .kpis{grid-template-columns:1fr}}
/* ===== v13 : hero sphère, orbite 3D, vague grise ===== */
.hero-grid{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(0,.98fr);gap:clamp(24px,4vw,64px);align-items:center}
.hero h1{font-size:clamp(2.7rem,1.3rem + 4.6vw,5.8rem);max-width:11ch}
.hero .orb-stage{display:block!important;position:relative;aspect-ratio:1;width:100%;max-width:560px;justify-self:center;transform:none}
.orb-stage .fil-hw{position:absolute;left:-14%;right:-40%;top:22%;height:56%;width:154%;z-index:0;pointer-events:none}
.orb-stage .halo{position:absolute;inset:24%;border-radius:50%;background:conic-gradient(from 120deg,var(--orange),var(--rose),var(--violet),var(--bleu),var(--orange));filter:blur(58px);opacity:.42;z-index:0;animation:spin 34s linear infinite}
.orb-stage .orbit{position:absolute;inset:0;animation:none;z-index:auto}
.orb-stage .orbit::before{content:"";position:absolute;inset:auto;left:3%;right:auto;width:94%;top:34%;bottom:auto;height:32%;margin:0;border-radius:50%;border:1px dashed rgba(30,30,30,.11);transform:rotate(-12.6deg);z-index:1}
.orb-stage .o-ic{position:absolute;left:50%;top:50%;width:44px;height:44px;margin:-22px 0 0 -22px;border-radius:50%;background:#fff;display:grid;place-items:center;box-shadow:0 10px 24px -12px rgba(30,30,30,.3),0 0 0 1px rgba(226,223,232,.9);will-change:transform,opacity;animation:none}
.orb-stage .o-ic i{display:block;width:19px;height:19px;background:#aeabb8;-webkit-mask:var(--m) center/contain no-repeat;mask:var(--m) center/contain no-repeat;animation:none}
.orb-stage .float{position:absolute;inset:19%;z-index:3;animation:bob 9s ease-in-out infinite;transform:translate(calc(var(--mx,0)*6px),calc(var(--my,0)*6px))}
.orb-stage .float canvas{position:absolute;inset:-12%;width:124%;height:124%}
.orb-stage .float .orb{position:absolute;inset:4%}

.orb-stage .sphere-picto{position:absolute;inset:0;display:grid;place-items:center;color:var(--ink);pointer-events:none;z-index:2}
.orb-stage .sphere-picto svg{width:30%;height:auto;opacity:.9;filter:drop-shadow(0 6px 14px rgba(255,255,255,.7))}
@media (max-width:900px){
  .hero-grid{grid-template-columns:1fr}
  .hero .orb-stage{max-width:360px;margin-top:8px}
  .orb-stage .o-ic{width:36px;height:36px;margin:-18px 0 0 -18px}
  .orb-stage .o-ic i{width:16px;height:16px}
  .orb-stage .o-x{display:none!important}
  .orb-stage .fil-hw{left:-20%;width:140%}
}
/* formulaires : astérisque */
.req{color:#b05a3c;margin-left:2px}
.form .legend{grid-column:1/-1;margin:0;font-size:.85rem;color:var(--muted)}
/* ===== v14 : sphère mate et douce ===== */
.orb-stage .float{inset:17%}
.orb-stage .float .orb{position:absolute;inset:0;display:block!important;border-radius:50%;overflow:hidden;background:conic-gradient(from 200deg,#f2baa1,#fab6ba,#e9cefd,#abe3fb,#cfe9fb,#e9cefd,#f2baa1);animation:spin 40s linear infinite,breathe 8s ease-in-out infinite;box-shadow:0 40px 90px -40px rgba(140,150,210,.55)}
.orb-stage .orb .o-glow{position:absolute;inset:-10%;border-radius:50%;background:conic-gradient(from 40deg,transparent,rgba(171,227,251,.85),transparent 35%,rgba(242,186,161,.8) 60%,transparent 75%);filter:blur(28px);animation:spin 26s linear infinite reverse}
.orb-stage .orb .o-core{position:absolute;inset:0;border-radius:50%;background:radial-gradient(circle at 50% 52%,#fff 0 15%,rgba(255,255,255,.7) 28%,rgba(255,255,255,0) 56%)}
.orb-stage .orb::after{content:"";position:absolute;inset:0;border-radius:50%;box-shadow:inset 0 0 60px rgba(255,255,255,.9),inset 0 -20px 50px rgba(233,206,253,.35)}
@keyframes breathe{0%,100%{scale:1}50%{scale:1.035}}
.orb-stage .sphere-picto svg{width:38%;opacity:.92;filter:none}
.orb-stage .halo{inset:16%;opacity:.5;filter:blur(64px)}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .orb-stage{transform:none}
  .marquee,.q-wrap{mask-image:none;-webkit-mask-image:none}
  .marquee-row{width:auto}
  .marquee-row ul{flex-wrap:wrap;justify-content:center;row-gap:24px}
  .marquee-row ul[aria-hidden="true"]{display:none}
  .js .deck .quote{transition:none}
  .q-wrap{overflow-x:auto}
  .band-row{width:auto}
  .band ul{flex-wrap:wrap;justify-content:center;padding-inline:16px}
}

/* v16 : rythme des sections, études de cas sombres, FAQ pastel, plateformes dans Services, enjeux empilés sur mobile */
.bg-paper{background:#efedf3}
.sec+.sec{border-top:1px solid rgba(30,30,30,.07)}
.sec.dark+.sec,.sec+.sec.dark{border-top-color:transparent}
.bg-pastel{background:linear-gradient(120deg,#fdf0ea 0%,#f7eefe 50%,#eaf5fc 100%)}
.bg-pastel .faq details{border-bottom-color:rgba(30,30,30,.12)}
.bg-pastel .faq summary:hover .pm{background:#fff}
.bg-pastel .faq .a{color:var(--ink-2)}
/* Études de cas sur fond noir */
.cases-sec .eyebrow{color:var(--muted-dark)}
.cases-sec .case{background:linear-gradient(#262529,#262529) padding-box,linear-gradient(rgba(255,255,255,.12),rgba(255,255,255,.12)) border-box;color:#fff}
.cases-sec .case:hover{background:linear-gradient(#262529,#262529) padding-box,var(--grad) border-box}
.cases-sec .case h3,.cases-sec .case dd{color:#fff}
.cases-sec .case h3 small,.cases-sec .case p,.cases-sec .case dt,.cases-sec .case dd span{color:#b4b1bf}
.cases-sec .case dl,.cases-sec .case details{border-color:rgba(255,255,255,.12)!important}
.cases-sec .case strong{background:linear-gradient(95deg,#f6c3ad,#ecd3fd 60%,#b5e6fb);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}
/* Lien vers la fondatrice */
.lead-card .to-founder{color:inherit;text-decoration:underline;text-decoration-color:#b07ae0;text-decoration-thickness:2px;text-underline-offset:3px}
.lead-card .to-founder:hover{text-decoration-color:var(--ink)}
.lead-card .more-link{grid-column:2;display:inline-flex;align-items:center;gap:8px;font-weight:600;color:var(--ink);text-decoration:none;margin-top:-6px;justify-self:start}
.lead-card .more-link svg{width:18px;height:18px;transition:transform .2s}
.lead-card .more-link:hover svg{transform:translateX(4px)}
@media (max-width:480px){.lead-card .more-link{grid-column:1}}
/* Plateformes en bas de Services */
.svc-plat{margin-top:clamp(56px,8vw,96px);padding-top:clamp(40px,6vw,64px);border-top:1px solid rgba(255,255,255,.12);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:clamp(32px,6vw,96px);align-items:center}
.svc-plat .eyebrow{color:var(--muted-dark)}
.h3-plat{font-family:var(--display);font-size:var(--step-3);line-height:1.08;letter-spacing:-.02em;margin:12px 0 16px;color:#fff;scroll-margin-top:110px}
.svc-plat .muted{color:#b4b1bf}
.svc-plat .pl-n{color:#b4b1bf}
.svc-plat .tile::before{background:linear-gradient(#fff,#fff) padding-box,var(--grad) border-box}
.svc-plat .tile::after{opacity:.55;background:var(--grad);border-color:transparent}
@media (max-width:860px){.svc-plat{grid-template-columns:1fr}}
/* Enjeux : empilement aussi sur mobile, seulement si la carte tient à l'écran */
@media (max-width:860px){
  .stack-card{padding:22px 20px;gap:14px}
  .stack-card.fits{position:sticky;top:calc(84px + var(--i)*10px)}
  .sc-head{grid-template-columns:auto 1fr;align-items:center;gap:12px 14px}
  .sc-head h3{grid-column:1/-1;font-size:var(--step-1)}
  .stack-card .ico{width:44px;height:44px;border-radius:12px}
  .stack-card .ico svg{width:24px;height:24px}
  .sc-body{gap:14px}
  .sc-body .pb{font-size:1rem;line-height:1.5}
  .sc-body .ans{padding:14px 16px;gap:10px;font-size:.95rem;line-height:1.5}
}
.cases-sec .kpis strong{filter:none;background:linear-gradient(95deg,#f6c3ad,#ecd3fd 60%,#b5e6fb);-webkit-background-clip:text;background-clip:text;color:transparent}
.cases-sec .kpis span{color:#c9c6d3}
.cases-sec .case-tag{color:#a9a6b4}
.cases-sec .case-ctx{color:#dcd9e3}
.cases-sec .case-h{border-color:rgba(255,255,255,.12)}
.cases-sec .kpis{border-color:rgba(255,255,255,.12)}
/* v16b : plateformes sur fond noir, pastilles sombres et icônes pastel, 2 lignes de 5 */
.svc-plat .pgrid{grid-template-columns:repeat(5,minmax(0,72px));gap:18px;justify-content:start}
.svc-plat .pgrid li{width:100%}
.svc-plat .tile{width:68px;height:68px}
.svc-plat .tile::before{background:linear-gradient(#2a292e,#2a292e) padding-box,var(--grad) border-box}
.svc-plat .tile::after{transform:translate(-6px,6px);opacity:.28;background:var(--grad);border-color:transparent}
.svc-plat .pl-ic{width:28px;height:28px;background:var(--grad);filter:none}
@media (max-width:860px){.svc-plat .pgrid{grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;max-width:340px}
  .svc-plat .tile{width:52px;height:52px}.svc-plat .tile::before,.svc-plat .tile::after{border-radius:13px}
  .svc-plat .tile::after{transform:translate(-4px,4px)}.svc-plat .pl-ic{width:22px;height:22px}}
/* Nom de la fondatrice souligné d'un trait pastel */
.lead-card .to-founder{text-decoration:none;background:linear-gradient(90deg,#f2baa1,#fab6ba,#e9cefd,#abe3fb) no-repeat 0 100%/100% 3px;padding-bottom:1px;transition:background-size .25s}
.lead-card .to-founder:hover{background-size:100% 100%;border-radius:3px}
/* Sélecteur de langue */
.lang-switch a{font-size:.8rem;font-weight:700;letter-spacing:.08em;padding:6px 10px;border-radius:99px;border:1.5px solid rgba(30,30,30,.18);text-decoration:none;color:var(--ink)}
.lang-switch a:hover{border-color:var(--ink)}
@media (max-width:920px){.lang-switch a{display:inline-block;margin:8px 0}}
html[lang="en"] .hero h1{max-width:14.5ch}
@media (max-width:920px){.nav-links li.lang-switch a:not(.btn){display:inline-block;padding:6px 14px;margin-top:14px;font-size:.85rem;border:1.5px solid rgba(30,30,30,.18);border-radius:99px}.nav-links li.lang-switch a::after{display:none}}
.lang-switch a::after{display:none}
