
:root{
  --bg:#07080F; --bg2:#0B0D1A;
  --cyan:#37C8F0; --blue:#4D7CFE; --pink:#FF3D8A; --magenta:#E84393; --violet:#8B5CF6;
  --emerald:#34E0A1; --gold:#F4B860;
  --text:#F4F5FA; --soft:#DDE0EC; --muted:#8A93B5; --dim:#5B6385;
  --g-brand:linear-gradient(120deg,#37C8F0,#8B5CF6 55%,#FF3D8A);
  --g-cta:linear-gradient(90deg,#37C8F0,#8B5CF6 45%,#FF3D8A);
  --g-cyan:linear-gradient(120deg,#37C8F0,#4D7CFE);
  --g-pink:linear-gradient(120deg,#FF3D8A,#8B5CF6);
  --g-violet:linear-gradient(120deg,#8B5CF6,#4D7CFE);
  --g-health:linear-gradient(120deg,#34E0A1,#22D3EE);
  --g-property:linear-gradient(120deg,#8B5CF6,#4D7CFE 55%,#37C8F0);
  --g-security:linear-gradient(120deg,#FF3D8A,#F4B860);
  --font:'Poppins',system-ui,-apple-system,'Segoe UI',sans-serif;
  --font-ar:'Tajawal','Poppins',sans-serif;
  --spring:cubic-bezier(.34,1.56,.64,1);
  --ease:cubic-bezier(.22,1,.36,1);
}
*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{height:100%}
body{background:radial-gradient(110vmax 80vmax at 50% 115%,var(--bg2),var(--bg) 60%) var(--bg);
  color:var(--text);font-family:var(--font);overflow:hidden;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
html[dir="rtl"] body{font-family:var(--font-ar)}
#plexus{position:fixed;inset:0;width:100%;height:100%;z-index:0;pointer-events:none;opacity:.42;transition:opacity 1s}
body.flat #plexus{opacity:.12}

/* ===== Chrome ===== */
.lang{position:fixed;top:max(16px,env(safe-area-inset-top));inset-inline-end:max(18px,env(safe-area-inset-right));z-index:70;
  display:flex;gap:4px;padding:4px;border-radius:99px;border:1px solid rgba(138,147,181,.22);
  background:rgba(10,12,24,.62);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  opacity:0;animation:fadeIn .8s .9s forwards;transition:opacity .5s}
.lang button{height:30px;min-width:38px;padding:0 10px;border:none;border-radius:99px;background:transparent;
  color:var(--muted);font-family:inherit;font-size:.78rem;font-weight:600;cursor:pointer;transition:.25s}
.lang button.on{background:var(--g-brand);color:#fff}
.lang button:not(.on):hover{color:var(--text)}
#skipBtn{position:fixed;bottom:max(20px,env(safe-area-inset-bottom));inset-inline-end:max(20px,env(safe-area-inset-right));z-index:70;
  display:inline-flex;align-items:center;gap:8px;height:38px;padding:0 18px;border-radius:99px;cursor:pointer;
  border:1px solid rgba(138,147,181,.25);background:rgba(10,12,24,.62);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  color:var(--muted);font-family:inherit;font-size:.8rem;font-weight:600;
  opacity:0;animation:fadeIn .8s 1.5s forwards;transition:color .25s,border-color .25s,opacity .5s}
#skipBtn:hover{color:var(--text);border-color:rgba(138,147,181,.5)}
html[dir="rtl"] #skipBtn svg{transform:scaleX(-1)}
body.cta #skipBtn,body.fin #skipBtn,body.fin .lang{opacity:0 !important;pointer-events:none}
#replayBtn{position:fixed;bottom:max(20px,env(safe-area-inset-bottom));inset-inline-end:max(20px,env(safe-area-inset-right));z-index:70;
  display:inline-flex;align-items:center;gap:8px;height:38px;padding:0 18px;border-radius:99px;cursor:pointer;
  border:1px solid rgba(138,147,181,.25);background:rgba(10,12,24,.62);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  color:var(--muted);font-family:inherit;font-size:.8rem;font-weight:600;
  opacity:0;pointer-events:none;transition:color .25s,border-color .25s,opacity .5s}
#replayBtn:hover{color:var(--text);border-color:rgba(138,147,181,.5)}
body.cta #replayBtn,body.fin #replayBtn{opacity:1;pointer-events:auto}
@keyframes fadeIn{to{opacity:1}}

/* ===== Story segments (progress) ===== */
.segs{position:fixed;top:max(12px,env(safe-area-inset-top));left:50%;transform:translateX(-50%);z-index:65;
  display:flex;gap:5px;width:min(420px,62vw);opacity:0;transition:opacity .5s}
body.intro .segs{opacity:1}
.segs i{flex:1;height:3px;border-radius:99px;background:rgba(138,147,181,.25);overflow:hidden;position:relative}
.segs i::after{content:"";position:absolute;inset:0;width:0;border-radius:99px;background:#fff}
.segs i.done::after{width:100%}
.segs i.run::after{width:100%;transition:width var(--segdur,3s) linear}

.phase{position:fixed;inset:0;z-index:10;display:grid;place-items:center;padding:6vmin;
  opacity:0;visibility:hidden;transition:opacity .6s ease,visibility .6s}
.phase.on{opacity:1;visibility:visible}

/* ============================================================
   ACTE 1 — LOGO : particules qui s'assemblent en S
   ============================================================ */
#phSplash{z-index:14}
.splash-stage{display:flex;flex-direction:column;align-items:center;gap:clamp(12px,2.6vmin,24px)}
.s-draw{position:relative;width:clamp(168px,33vmin,320px);aspect-ratio:587/655}
.s-draw canvas{position:absolute;inset:-18%;width:136%;height:136%}
.s-draw img{position:absolute;inset:0;z-index:2;width:100%;height:100%;object-fit:cover;border-radius:8%;
  mix-blend-mode:screen;opacity:0;transform:scale(1.015);user-select:none;-webkit-user-drag:none;
  transition:opacity 1.1s ease,transform 1.1s ease}
.s-draw.reveal img{opacity:1;transform:scale(1)}
.s-draw.reveal canvas{transition:opacity 1.2s ease;opacity:0}
.halo{position:absolute;inset:-24%;border-radius:50%;z-index:-1;
  background:conic-gradient(from 0deg,rgba(55,200,240,.4),rgba(139,92,246,.38),rgba(255,61,138,.4),rgba(77,124,254,.36),rgba(55,200,240,.4));
  filter:blur(48px);opacity:0;transition:opacity 1.4s;animation:haloSpin 18s linear infinite}
.s-draw.reveal .halo{opacity:.5}
.shine{position:absolute;inset:0;z-index:3;overflow:hidden;border-radius:8%;pointer-events:none;opacity:0}
.s-draw.reveal .shine{opacity:1}
.shine::before{content:"";position:absolute;top:-40%;bottom:-40%;width:36%;left:-70%;rotate:20deg;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.38),transparent);
  filter:blur(7px);animation:shineBig 1.25s ease-in-out .25s forwards}
@keyframes shineBig{to{left:155%}}
.shine::after{content:"";position:absolute;top:-40%;bottom:-40%;width:26%;left:-60%;rotate:20deg;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);
  filter:blur(8px);animation:shineLoop 4.2s ease-in-out 2.2s infinite}
@keyframes shineLoop{0%{left:-60%}55%,100%{left:150%}}
.cta-logo-wrap{position:relative;display:inline-block}
.cta-logo-wrap .shine{opacity:1;border-radius:10%}
.cta-logo-wrap .shine::before{display:none}
.cta-logo-wrap .shine::after{animation-delay:1.6s}
@keyframes haloSpin{to{rotate:360deg}}
.wordmark{font-weight:800;font-size:clamp(30px,7vmin,58px);letter-spacing:.05em;line-height:1;
  display:inline-block;clip-path:inset(0 100% 0 0)}
.splash-stage.txt .wordmark{animation:wipe 1s var(--ease) forwards}
html[dir="rtl"] .wordmark{clip-path:inset(0 0 0 100%)}
@keyframes wipe{to{clip-path:inset(0 0 0 0)}}
.wordmark .ai{background:var(--g-pink);-webkit-background-clip:text;background-clip:text;color:transparent}
.wordmark .dash{color:var(--dim)}
.splash-sub{font-size:clamp(10px,1.9vmin,15px);font-weight:600;letter-spacing:.8em;text-indent:.8em;
  color:transparent;background:var(--g-violet);-webkit-background-clip:text;background-clip:text;
  opacity:0;transition:opacity .9s .5s}
.splash-stage.txt .splash-sub{opacity:.95}
.intro3{margin-top:clamp(8px,2vmin,18px);text-align:center;font-weight:700;
  font-size:clamp(15px,3vmin,22px);line-height:1.75}
.intro3 span{display:block;opacity:0;transform:translateY(14px);filter:blur(6px)}
.splash-stage.lines .intro3 span{animation:lineIn .7s var(--ease) forwards}
.splash-stage.lines .intro3 span:nth-child(1){animation-delay:.05s}
.splash-stage.lines .intro3 span:nth-child(2){animation-delay:.4s}
.splash-stage.lines .intro3 span:nth-child(3){animation-delay:.75s}
.intro3 .gm{background:var(--g-pink);-webkit-background-clip:text;background-clip:text;color:transparent}
@keyframes lineIn{to{opacity:1;transform:none;filter:blur(0)}}

/* ============================================================
   ACTE 2 — MANIFESTE (scènes)
   ============================================================ */
#phMsg{z-index:13;cursor:pointer}
.msg-box{width:min(820px,90vw);display:flex;flex-direction:column;gap:clamp(12px,2.4vmin,22px)}
.msg-box.c{align-items:center;text-align:center}
.msg-box.s{align-items:flex-start;text-align:start}
.kick{font-size:clamp(10px,1.8vmin,13px);font-weight:700;letter-spacing:.5em;text-indent:.5em;text-transform:uppercase;color:var(--dim)}
html[dir="rtl"] .kick{letter-spacing:.18em;text-indent:.18em}
.big{font-weight:700;color:var(--soft);font-size:clamp(30px,6.8vmin,62px);line-height:1.24;text-wrap:balance}
.mid{font-weight:700;color:var(--soft);font-size:clamp(22px,4.6vmin,40px);line-height:1.45;text-wrap:balance;max-width:24ch}
.msg-box.c .mid{max-width:26ch}
.gc{background:var(--g-cyan);-webkit-background-clip:text;background-clip:text;color:transparent}
.gp{background:var(--g-pink);-webkit-background-clip:text;background-clip:text;color:transparent}
.gv{background:var(--g-violet);-webkit-background-clip:text;background-clip:text;color:transparent}
.big s,.mid s{text-decoration:none;position:relative;color:var(--dim);white-space:nowrap}
.big s::after{content:"";position:absolute;left:-2%;right:102%;top:52%;height:.085em;border-radius:99px;
  background:linear-gradient(90deg,var(--pink),var(--violet));animation:strike .55s var(--ease) .85s forwards}
@keyframes strike{to{right:-2%}}
html[dir="rtl"] .big s::after{left:102%;right:-2%;animation-name:strikeR}
@keyframes strikeR{to{left:-2%}}
.msg-box.in>*{animation:msgIn .75s var(--ease) both}
.msg-box.in>*:nth-child(2){animation-delay:.08s}
.msg-box.out>*{animation:msgOut .3s ease both}
@keyframes msgIn{from{opacity:0;transform:translateY(26px);filter:blur(10px)}to{opacity:1;transform:none;filter:blur(0)}}
@keyframes msgOut{to{opacity:0;transform:translateY(-18px);filter:blur(8px)}}
.sparkle{display:inline-block;margin-inline-start:.06em;color:#fff;
  animation:spark 2.2s ease-in-out .8s infinite}
@keyframes spark{0%,100%{opacity:.5;transform:scale(.85) rotate(0deg)}50%{opacity:1;transform:scale(1.12) rotate(18deg)}}
/* mot rotatif */
.kw{position:relative;display:inline-block;font-weight:800;letter-spacing:.02em;white-space:nowrap}
.kw .layer{display:inline-block;white-space:nowrap}
.kw .layer.old{position:absolute;inset-inline-start:0;top:0}
.kw .ch{display:inline-block;opacity:0;transform:translateY(.5em)}
.kw .ch.in{animation:chIn .42s var(--ease) forwards}
.kw .ch.out{opacity:1;transform:none;animation:chOut .34s ease forwards}
@keyframes chIn{to{opacity:1;transform:none}}
@keyframes chOut{to{opacity:0;transform:translateY(-.45em)}}

/* quarts d'orbes (coins) */
.qorb{position:fixed;z-index:5;width:56vmin;height:56vmin;border-radius:50%;pointer-events:none;
  opacity:0;transition:transform 1.1s var(--ease),opacity .9s}
.qorb.q1{top:-28vmin;right:-28vmin;background:radial-gradient(circle at 30% 70%,#37C8F0,#4D7CFE 55%,transparent 72%)}
.qorb.q2{bottom:-28vmin;left:-28vmin;background:radial-gradient(circle at 70% 30%,#8B5CF6,#4D7CFE 58%,transparent 74%)}
body.orbsOn .qorb{opacity:.85}
body.flip .qorb.q1{transform:translate(-8vmin,10vmin) rotate(18deg)}
body.flip .qorb.q2{transform:translate(9vmin,-9vmin) rotate(-14deg)}

/* ============================================================
   ACTE 3 — CTA FINAL
   ============================================================ */
#phCta{z-index:18}
.cta-bg{position:absolute;inset:0;pointer-events:none;
  background:
   radial-gradient(70vmax 46vmax at 50% -8%,rgba(139,92,246,.32),transparent 62%),
   radial-gradient(48vmax 34vmax at 80% 8%,rgba(255,61,138,.15),transparent 60%),
   radial-gradient(44vmax 30vmax at 18% 12%,rgba(55,200,240,.14),transparent 60%)}
.cta-stage{position:relative;width:min(560px,92vw);display:flex;flex-direction:column;align-items:center;
  text-align:center;gap:clamp(14px,2.8vmin,24px)}
.cta-logo{width:clamp(88px,17vmin,136px);aspect-ratio:587/655;mix-blend-mode:normal;
  opacity:0;transform:scale(.7);filter:drop-shadow(0 0 28px rgba(139,92,246,.5))}
#phCta.on .cta-logo{animation:popIn .8s var(--spring) .1s forwards}
@keyframes popIn{to{opacity:1;transform:scale(1)}}
.cta-h{font-weight:800;font-size:clamp(24px,5vmin,38px);line-height:1.25;color:#fff;text-wrap:balance;
  opacity:0;transform:translateY(14px)}
.cta-h .gm{background:var(--g-pink);-webkit-background-clip:text;background-clip:text;color:transparent}
#phCta.on .cta-h{animation:upIn .7s var(--ease) .5s forwards}
@keyframes upIn{to{opacity:1;transform:none}}
.cta-btn{width:100%;max-width:420px;height:clamp(50px,8.4vmin,58px);border:none;border-radius:99px;cursor:pointer;
  font-family:inherit;font-weight:800;font-size:clamp(13px,2.4vmin,15.5px);letter-spacing:.12em;color:#fff;
  background:var(--g-cta);background-size:160% 100%;
  box-shadow:0 14px 38px rgba(139,92,246,.4),0 4px 14px rgba(255,61,138,.3);
  opacity:0;transform:scale(.72);transition:background-position .5s,box-shadow .3s,transform .25s}
#phCta.on .cta-btn{animation:ctaSpring .85s var(--spring) .85s forwards}
@keyframes ctaSpring{0%{opacity:0;transform:scale(.72)}100%{opacity:1;transform:scale(1)}}
.cta-btn:hover{background-position:100% 0;box-shadow:0 18px 48px rgba(139,92,246,.55),0 6px 18px rgba(255,61,138,.4)}
.cta-btn:active{transform:scale(.97) !important}
.cta-2nd{width:100%;max-width:420px;height:clamp(46px,7.6vmin,52px);border:none;border-radius:99px;cursor:pointer;
  display:flex;align-items:center;justify-content:center;text-decoration:none;
  font-family:inherit;font-weight:700;font-size:clamp(12.5px,2.3vmin,15px);color:#101018;background:#F2F3F7;
  opacity:0;transform:translateY(12px);transition:transform .25s,background .25s}
#phCta.on .cta-2nd{animation:upIn .6s var(--ease) 1.1s forwards}
.cta-2nd:hover{background:#fff;transform:translateY(-1px)}

/* ============================================================
   ACTE 4 — SOLUTIONS (uniquement les noms)
   ============================================================ */
#phSol{z-index:20}
.fin-stage{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:clamp(28px,6vmin,52px);text-align:center;padding:0 6vw}
.fin-h{font-weight:800;font-size:clamp(28px,5.4vw,60px);line-height:1.05;letter-spacing:-.02em;text-wrap:balance;max-width:16ch;
  background:var(--g-brand);-webkit-background-clip:text;background-clip:text;color:transparent}
.sols{display:flex;flex-direction:column;align-items:center;gap:clamp(30px,7.5vmin,72px)}
.sol{position:relative;display:inline-block;border:none;background:none;cursor:pointer;text-decoration:none;
  font-family:inherit;font-weight:700;color:var(--text);line-height:1.15;
  font-size:clamp(30px,7.4vmin,68px);letter-spacing:.01em;
  opacity:0;transform:translateY(34px);filter:blur(12px);
  transition:transform .35s var(--ease)}
body.fin .sol{animation:solIn .9s var(--ease) forwards}
body.fin .sol:nth-child(1){animation-delay:.15s}
body.fin .sol:nth-child(2){animation-delay:.33s}
body.fin .sol:nth-child(3){animation-delay:.51s}
@keyframes solIn{to{opacity:1;transform:none;filter:blur(0)}}
.sol b{font-weight:800;-webkit-background-clip:text;background-clip:text;color:transparent}
.sol.health b{background-image:var(--g-cyan)}
.sol.property b{background-image:var(--g-violet)}
.sol.security b{background-image:var(--g-pink)}
.sol::after{content:"";position:absolute;left:50%;bottom:-.22em;height:3px;width:0;border-radius:99px;
  transform:translateX(-50%);transition:width .45s var(--ease);opacity:.9}
.sol.health::after{background:var(--g-cyan);box-shadow:0 0 18px rgba(55,200,240,.7)}
.sol.property::after{background:var(--g-violet);box-shadow:0 0 18px rgba(139,92,246,.7)}
.sol.security::after{background:var(--g-pink);box-shadow:0 0 18px rgba(255,61,138,.7)}
@media(hover:hover){
  .sol:hover{transform:scale(1.045)}
  .sol:hover::after{width:78%}
  .sol.health:hover{text-shadow:0 0 38px rgba(55,200,240,.35)}
  .sol.property:hover{text-shadow:0 0 38px rgba(139,92,246,.35)}
  .sol.security:hover{text-shadow:0 0 38px rgba(255,61,138,.35)}
}
.sol:active{transform:scale(.985)}
.sol:focus-visible{outline:2px solid var(--cyan);outline-offset:10px;border-radius:8px}

.toast{position:fixed;bottom:max(28px,calc(env(safe-area-inset-bottom) + 12px));left:50%;transform:translate(-50%,16px);
  z-index:90;padding:11px 22px;border-radius:99px;font-size:.86rem;font-weight:600;color:var(--text);
  background:rgba(14,16,30,.94);border:1px solid rgba(139,92,246,.45);backdrop-filter:blur(12px);
  box-shadow:0 14px 40px rgba(0,0,0,.5);opacity:0;pointer-events:none;transition:.4s var(--ease)}
.toast.show{opacity:1;transform:translate(-50%,0)}
.warp{position:fixed;inset:0;z-index:95;pointer-events:none;opacity:0;
  background:radial-gradient(60vmax 60vmax at 50% 50%,rgba(55,200,240,.35),rgba(6,7,13,.97) 70%);
  transition:opacity .45s ease}
.warp.go{opacity:1}

@media(prefers-reduced-motion:reduce){
  *{animation-duration:.001s !important;animation-delay:0s !important;transition-duration:.15s !important}
}
@media(max-width:560px){
  .big{font-size:clamp(27px,8.4vw,38px)}
  .mid{font-size:clamp(20px,6.2vw,28px)}
  .sol{font-size:clamp(30px,9.6vw,44px)}
}
@media(orientation:landscape) and (max-height:520px){
  .splash-stage{flex-direction:row;gap:5vmin}
  .intro3{text-align:start}
  .cta-stage{gap:10px}
  .cta-logo{width:13vmin}
}

/* ============================================================
   SITE SCROLLABLE INSTITUTIONNEL — révélé après l'acte Solutions
   ============================================================ */
body.site{overflow:auto;overflow-x:hidden}
body.site #plexus{opacity:.16}
#site{position:relative;z-index:30;display:none;opacity:0;transition:opacity 1s var(--ease)}
body.site #site{display:block;opacity:1}
body.site .phase,body.site .qorb,body.site .segs,
body.site #skipBtn,body.site #replayBtn,body.site .lang{display:none !important}
#site .wrap{width:min(1180px,92vw);margin-inline:auto}
#site .eyebrow{display:inline-flex;align-items:center;gap:12px;
  font-size:clamp(10px,1.5vmin,12px);font-weight:700;letter-spacing:.42em;
  text-transform:uppercase;color:var(--cyan);margin-bottom:20px}
html[dir="rtl"] #site .eyebrow{letter-spacing:.12em}
#site .eyebrow::before{content:"";width:30px;height:1.5px;border-radius:2px;
  background:linear-gradient(90deg,var(--cyan),transparent)}
#site h2.sec-h{font-weight:800;font-size:clamp(28px,4.4vw,52px);line-height:1.08;
  letter-spacing:-.02em;text-wrap:balance}
#site .lead{color:var(--muted);font-size:clamp(15px,1.9vmin,18px);line-height:1.7;
  max-width:62ch;margin-top:18px}
#site .gc{background:var(--g-cyan);-webkit-background-clip:text;background-clip:text;color:transparent}
#site .gp{background:var(--g-pink);-webkit-background-clip:text;background-clip:text;color:transparent}
#site .gv{background:var(--g-violet);-webkit-background-clip:text;background-clip:text;color:transparent}
#site .gm{background:var(--g-brand);-webkit-background-clip:text;background-clip:text;color:transparent}

/* reveal on scroll */
.rv{opacity:0;transform:translateY(30px);filter:blur(8px);
  transition:opacity .9s var(--ease),transform .9s var(--ease),filter .9s var(--ease)}
.rv.in{opacity:1;transform:none;filter:blur(0)}
.rv.d1{transition-delay:.08s}.rv.d2{transition-delay:.18s}
.rv.d3{transition-delay:.28s}.rv.d4{transition-delay:.38s}

/* nav */
#siteNav{position:sticky;top:0;z-index:40;display:flex;align-items:center;
  justify-content:space-between;gap:16px;padding:14px clamp(18px,4vw,44px);
  background:rgba(7,8,15,.72);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
  border-bottom:1px solid rgba(138,147,181,.14)}
#siteNav .brand{display:flex;align-items:center;gap:11px;font-weight:800;font-size:18px;letter-spacing:.02em}
#siteNav .brand img{width:32px;height:auto;mix-blend-mode:normal}
#siteNav .brand .ai{background:var(--g-pink);-webkit-background-clip:text;background-clip:text;color:transparent}
#siteNav .brand .dash{color:var(--dim)}
#siteNav .nav-mid{display:flex;gap:4px}
#siteNav .nav-mid a{font-size:13.5px;font-weight:600;color:var(--muted);text-decoration:none;
  padding:8px 13px;border-radius:9px;transition:.22s}
#siteNav .nav-mid a:hover{color:var(--text);background:rgba(255,255,255,.05)}
#siteNav .nav-right{display:flex;align-items:center;gap:12px}
.lang-mini{display:flex;gap:3px;padding:3px;border-radius:99px;
  border:1px solid rgba(138,147,181,.22);background:rgba(255,255,255,.03)}
.lang-mini button{height:28px;min-width:34px;padding:0 9px;border:none;border-radius:99px;background:transparent;
  color:var(--muted);font-family:inherit;font-size:12.5px;font-weight:700;cursor:pointer;transition:.22s}
.lang-mini button.on{background:var(--g-brand);color:#fff}
.lang-mini button:not(.on):hover{color:var(--text)}
#siteNav .nav-cta{display:inline-flex;align-items:center;height:40px;padding:0 18px;border-radius:99px;
  font-weight:700;font-size:13.5px;color:#fff;text-decoration:none;background:var(--g-cta);background-size:160% 100%;
  box-shadow:0 8px 24px rgba(139,92,246,.32);transition:background-position .4s,transform .2s}
#siteNav .nav-cta:hover{background-position:100% 0;transform:translateY(-1px)}
@media(max-width:860px){#siteNav .nav-mid{display:none}}
@media(max-width:560px){#siteNav .nav-cta{display:none}}

/* HERO */
.s-hero{padding:clamp(70px,12vh,140px) 0 clamp(50px,8vh,90px)}
.s-hero .wrap{display:grid;gap:28px;text-align:center;place-items:center}
.s-hero h1{font-weight:800;font-size:clamp(34px,6.2vw,78px);line-height:1.02;letter-spacing:-.03em;
  text-wrap:balance;max-width:17ch}
.s-hero .sub{color:var(--soft);font-size:clamp(16px,2.2vmin,21px);line-height:1.6;max-width:60ch}
.s-hero .cta-row{display:flex;gap:14px;flex-wrap:wrap;justify-content:center;margin-top:6px}
.btn-primary{display:inline-flex;align-items:center;gap:9px;height:54px;padding:0 28px;border:none;border-radius:99px;
  cursor:pointer;font-family:inherit;font-weight:700;font-size:15px;color:#fff;text-decoration:none;
  background:var(--g-cta);background-size:160% 100%;box-shadow:0 14px 38px rgba(139,92,246,.36);
  transition:background-position .45s,transform .2s,box-shadow .3s}
.btn-primary:hover{background-position:100% 0;transform:translateY(-2px);box-shadow:0 18px 48px rgba(139,92,246,.5)}
.btn-ghost{display:inline-flex;align-items:center;gap:9px;height:54px;padding:0 26px;border-radius:99px;cursor:pointer;
  font-family:inherit;font-weight:700;font-size:15px;color:var(--text);text-decoration:none;
  border:1px solid rgba(138,147,181,.3);background:rgba(255,255,255,.03);transition:.25s}
.btn-ghost:hover{border-color:rgba(138,147,181,.6);background:rgba(255,255,255,.06)}
.hero-stats{display:flex;gap:clamp(22px,4vw,56px);flex-wrap:wrap;justify-content:center;margin-top:24px}
.hero-stats .st .n{font-weight:800;font-size:clamp(26px,3.4vw,40px);line-height:1;
  background:var(--g-brand);-webkit-background-clip:text;background-clip:text;color:transparent}
.hero-stats .st .l{color:var(--muted);font-size:12.5px;margin-top:7px;letter-spacing:.02em}

/* section shell */
.s-block{padding:clamp(56px,9vh,110px) 0}
.s-block .head{max-width:780px;margin-bottom:clamp(34px,5vh,58px)}
.s-block .head.center{margin-inline:auto;text-align:center}

/* ===== ÉCOSYSTÈME "ONE" — bande convergence ===== */
.one-band{position:relative;border-radius:26px;overflow:hidden;
  padding:clamp(30px,5vw,56px);
  background:linear-gradient(150deg,rgba(20,26,48,.6),rgba(11,13,26,.55));
  backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
  border:1px solid rgba(138,147,181,.16)}
.one-band::after{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background:radial-gradient(60% 80% at 50% -10%,rgba(139,92,246,.16),transparent 70%)}
.one-band>*{position:relative;z-index:1}
.one-band .pill{display:inline-flex;align-items:center;gap:8px;padding:7px 15px;border-radius:99px;
  border:1px solid rgba(138,147,181,.25);background:rgba(255,255,255,.03);
  font-size:12.5px;font-weight:600;color:var(--soft);margin-bottom:20px}
.one-band .pill b{color:#fff;background:var(--g-violet);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.one-flow{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:clamp(14px,3vw,34px);
  margin-top:38px}
@media(max-width:760px){.one-flow{grid-template-columns:1fr;gap:18px}}
.frag-col{display:grid;gap:10px}
.frag{display:flex;align-items:center;gap:10px;padding:12px 15px;border-radius:13px;
  font-size:13.5px;font-weight:600;color:var(--muted);
  background:rgba(255,255,255,.02);border:1px dashed rgba(138,147,181,.28)}
.frag svg{width:16px;height:16px;flex-shrink:0;opacity:.7}
.one-core{display:grid;place-items:center;gap:10px;padding:clamp(20px,3vw,30px);min-width:180px;border-radius:22px;text-align:center;
  background:rgba(14,18,34,.72);border:1px solid rgba(139,92,246,.42);
  box-shadow:0 0 0 1px rgba(255,255,255,.04),0 18px 50px rgba(0,0,0,.5),inset 0 0 34px rgba(139,92,246,.16)}
.one-core .ic{width:54px;height:54px;border-radius:16px;display:grid;place-items:center;
  background:var(--g-cta);box-shadow:0 10px 26px rgba(139,92,246,.4)}
.one-core .ic svg{width:28px;height:28px;color:#fff}
.one-core .nm{font-weight:800;font-size:clamp(17px,2.4vw,22px);line-height:1.1}
.one-core .nm b{background:var(--g-violet);-webkit-background-clip:text;background-clip:text;color:transparent}
.one-core .tg{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--dim)}
.flow-arrow{display:grid;place-items:center;color:var(--violet)}
.flow-arrow svg{width:34px;height:34px}
@media(max-width:760px){.flow-arrow svg{transform:rotate(90deg)}}
.one-list{margin-top:30px;display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
@media(max-width:760px){.one-list{grid-template-columns:1fr}}
.one-li{display:flex;gap:12px;align-items:flex-start;color:var(--soft);font-size:14.5px;line-height:1.55}
.one-li svg{flex-shrink:0;margin-top:2px;color:var(--emerald);width:18px;height:18px}
html[dir="rtl"] .one-li{flex-direction:row-reverse;text-align:right}

/* ===== DÉMO INTERACTIVE — Orchestrateur SERI OneEstate guidé ===== */
.demo-wrap{margin-top:clamp(34px,5vh,58px)}
.demo-head{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:8px}
.demo-badge{display:inline-flex;align-items:center;gap:8px;padding:6px 13px;border-radius:99px;
  font-size:11.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;
  color:#bff0fb;background:rgba(55,200,240,.1);border:1px solid rgba(55,200,240,.32)}
.demo-badge .ld{width:7px;height:7px;border-radius:50%;background:var(--cyan);
  box-shadow:0 0 0 0 rgba(55,200,240,.6);animation:pulse 2s infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(55,200,240,.5)}70%{box-shadow:0 0 0 8px rgba(55,200,240,0)}100%{box-shadow:0 0 0 0 rgba(55,200,240,0)}}
.demo-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(26px,4vw,52px);align-items:center;margin-top:22px}
@media(max-width:900px){.demo-grid{grid-template-columns:1fr;gap:32px}}
.demo-copy h3{font-weight:800;font-size:clamp(20px,2.7vw,28px);line-height:1.15}
.demo-copy h3 b{background:var(--g-violet);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}
.demo-copy h3 b.hea{background:var(--g-health);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}
.demo-copy .demo-lead{color:var(--muted);font-size:15px;line-height:1.65;margin-top:12px}
/* guide pas-à-pas */
.demo-guide{margin-top:22px;display:grid;gap:10px}
.guide-step{display:flex;align-items:center;gap:13px;padding:12px 15px;border-radius:14px;
  border:1px solid rgba(138,147,181,.18);background:rgba(255,255,255,.02);
  transition:border-color .35s,background .35s,transform .35s}
.guide-step .gnum{flex-shrink:0;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;
  font-size:13px;font-weight:800;color:var(--muted);
  border:1px solid rgba(138,147,181,.3);background:rgba(255,255,255,.03);transition:.35s}
.guide-step .gtx{font-size:13.5px;font-weight:600;color:var(--soft)}
.guide-step.done{border-color:rgba(52,224,161,.4);background:rgba(52,224,161,.06)}
.guide-step.done .gnum{color:#fff;border-color:transparent;background:linear-gradient(135deg,#34E0A1,#37C8F0)}
html[dir="rtl"] .guide-step{flex-direction:row-reverse;text-align:right}
.guide-prog{margin-top:6px;display:flex;align-items:center;gap:12px}
.guide-bar{flex:1;height:6px;border-radius:99px;background:rgba(138,147,181,.16);overflow:hidden}
.guide-bar i{display:block;height:100%;width:0;border-radius:99px;background:var(--g-cta);transition:width .5s var(--ease)}
.guide-prog .gpc{font-size:12px;font-weight:700;color:var(--muted);white-space:nowrap}
.guide-done-msg{margin-top:4px;font-size:13px;font-weight:700;color:#7ef0c4;opacity:0;height:0;overflow:hidden;transition:opacity .4s}
.guide-done-msg.on{opacity:1;height:auto}

/* orchestrateur visuel */
.orch{position:relative;aspect-ratio:1/1;width:100%;max-width:440px;margin-inline:auto;display:grid;place-items:center}
.orch-ring{position:absolute;inset:8%;border-radius:50%;border:1px dashed rgba(139,92,246,.28);animation:ringSpin 26s linear infinite}
.orch-ring.r2{inset:20%;border-color:rgba(55,200,240,.22);animation-duration:34s;animation-direction:reverse}
@keyframes ringSpin{to{transform:rotate(360deg)}}
.orch svg.links{position:absolute;inset:0;width:100%;height:100%;z-index:1;pointer-events:none;overflow:visible}
.orch svg.links line{stroke-width:1.4;stroke-dasharray:4 5;opacity:.32;transition:opacity .3s,stroke-width .3s}
.orch-core{position:relative;z-index:3;width:44%;aspect-ratio:1;border-radius:24px;display:grid;place-items:center;text-align:center;padding:14px;
  background:rgba(14,18,34,.74);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  border:1px solid rgba(139,92,246,.42);
  box-shadow:0 0 0 1px rgba(255,255,255,.04),0 18px 50px rgba(0,0,0,.5),inset 0 0 30px rgba(139,92,246,.14)}
.orch-core .lab{font-size:10px;letter-spacing:.34em;text-transform:uppercase;color:var(--dim)}
.orch-core .nm{font-weight:800;font-size:clamp(16px,2.3vw,21px);line-height:1.1;margin-top:4px}
.orch-core .nm b{background:var(--g-violet);-webkit-background-clip:text;background-clip:text;color:transparent}
.orch-core .ds{font-size:10.5px;color:var(--muted);margin-top:8px;line-height:1.4;min-height:3.4em;transition:.3s}
.node{position:absolute;z-index:2;display:flex;flex-direction:column;align-items:center;gap:7px;width:30%;transform:translate(-50%,-50%);cursor:pointer;
  background:none;border:none;font-family:inherit;padding:0}
.node .dot{width:62px;height:62px;border-radius:18px;display:grid;place-items:center;position:relative;
  background:rgba(14,18,34,.72);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  border:1px solid rgba(138,147,181,.28);transition:transform .3s var(--spring),border-color .3s,box-shadow .3s}
.node .dot svg{width:26px;height:26px}
.node .cap{font-size:12.5px;font-weight:700;color:var(--soft);transition:color .3s}
.node[data-k="tenant"]{top:16%;left:50%}
.node[data-k="agent"]{top:80%;left:20%}
.node[data-k="services"]{top:80%;left:80%}
.node[data-k="tenant"] .dot svg{color:var(--cyan)}
.node[data-k="agent"] .dot svg{color:var(--violet)}
.node[data-k="services"] .dot svg{color:var(--pink)}
.node:hover .dot,.node.on .dot{transform:scale(1.12)}
.node[data-k="tenant"].on .dot,.node[data-k="tenant"]:hover .dot{border-color:var(--cyan);box-shadow:0 0 26px rgba(55,200,240,.45)}
.node[data-k="agent"].on .dot,.node[data-k="agent"]:hover .dot{border-color:var(--violet);box-shadow:0 0 26px rgba(139,92,246,.45)}
.node[data-k="services"].on .dot,.node[data-k="services"]:hover .dot{border-color:var(--pink);box-shadow:0 0 26px rgba(255,61,138,.45)}
.node.on .cap{color:#fff}
.node.seen .dot::after{content:"";position:absolute;top:-4px;right:-4px;width:15px;height:15px;border-radius:50%;
  background:linear-gradient(135deg,#34E0A1,#37C8F0);border:2px solid var(--bg2);
  background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="white" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>');
  background-size:11px;background-repeat:no-repeat;background-position:center}
/* pastille "guide" qui invite à cliquer le 1er nœud */
.node .hint{position:absolute;top:-12px;left:50%;transform:translateX(-50%);white-space:nowrap;
  font-size:10.5px;font-weight:700;color:#06121f;padding:4px 9px;border-radius:99px;
  background:linear-gradient(135deg,#37C8F0,#4D7CFE);box-shadow:0 6px 16px rgba(55,200,240,.45);
  opacity:0;pointer-events:none;transition:opacity .3s}
.node .hint::after{content:"";position:absolute;bottom:-4px;left:50%;transform:translateX(-50%) rotate(45deg);
  width:8px;height:8px;background:#4D7CFE}
.orch.guide .node[data-k="tenant"] .hint{opacity:1;animation:hintBob 1.4s ease-in-out infinite}
@keyframes hintBob{0%,100%{transform:translateX(-50%) translateY(0)}50%{transform:translateX(-50%) translateY(-4px)}}
@media(max-width:560px){.node .dot{width:54px;height:54px}.node .dot svg{width:23px;height:23px}}
@media(prefers-reduced-motion:reduce){.orch-ring,.node .hint,.demo-badge .ld{animation:none}}

/* ===== Sélecteur de démo (OneEstate / OneHealth) ===== */
.demo-switch{display:inline-flex;gap:6px;padding:5px;border-radius:14px;margin:6px 0 22px;
  background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08)}
.demo-tab{display:inline-flex;align-items:center;gap:9px;padding:9px 16px;border-radius:10px;cursor:pointer;
  background:transparent;border:1px solid transparent;color:var(--muted);font-family:inherit;font-size:13.5px;font-weight:600;transition:.22s}
.demo-tab svg{width:17px;height:17px;flex:none;opacity:.85}
.demo-tab .seri-s{color:#fff;font-weight:800;letter-spacing:.02em}
.demo-tab b{font-weight:800}
.demo-tab .est{background:var(--g-violet);-webkit-background-clip:text;background-clip:text;color:transparent}
.demo-tab .hea{background:var(--g-health,linear-gradient(120deg,#37C8F0,#34E0A1));-webkit-background-clip:text;background-clip:text;color:transparent}
.demo-tab:hover{color:#fff;background:rgba(255,255,255,.04)}
.demo-tab.on{background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.14);color:#fff}
.demo-tab.on[data-demo="estate"]{box-shadow:0 0 0 1px rgba(139,92,246,.35),0 8px 24px -12px rgba(139,92,246,.5)}
.demo-tab.on[data-demo="health"]{box-shadow:0 0 0 1px rgba(52,224,161,.35),0 8px 24px -12px rgba(52,224,161,.5)}
html[dir="rtl"] .demo-tab{flex-direction:row-reverse}
.demo-panel{animation:demoFade .4s ease both}
.demo-panel[hidden]{display:none}
@keyframes demoFade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}

/* ===== Pipeline SERI OneHealth ===== */
.pipe{position:relative;width:100%;max-width:460px;margin-inline:auto;display:flex;flex-direction:column;gap:20px;justify-content:center}
.pipe-flow{display:flex;align-items:center;justify-content:center;gap:4px;flex-wrap:nowrap}
.pstep{position:relative;display:flex;flex-direction:column;align-items:center;gap:8px;padding:6px 4px;background:transparent;border:none;cursor:pointer;font-family:inherit;flex:1;min-width:0}
.pdot{width:clamp(46px,12vw,60px);aspect-ratio:1;border-radius:16px;display:grid;place-items:center;
  background:rgba(255,255,255,.04);border:1.5px solid rgba(255,255,255,.12);transition:.25s}
.pdot svg{width:46%;height:46%;color:var(--muted);transition:.25s}
.pcap{font-size:11.5px;font-weight:700;color:var(--muted);text-align:center;line-height:1.2;transition:.25s}
.pstep .hint{position:absolute;top:-26px;left:50%;transform:translateX(-50%);white-space:nowrap;
  font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#34E0A1;opacity:0;transition:.3s}
.pipe.guide .pstep[data-k="extract"] .hint{opacity:1;animation:hintBob 1.4s ease-in-out infinite}
.pstep[data-k="extract"] .pdot svg{color:#37C8F0}
.pstep[data-k="map"] .pdot svg{color:#4D7CFE}
.pstep[data-k="rules"] .pdot svg{color:#8B5CF6}
.pstep[data-k="visualize"] .pdot svg{color:#34E0A1}
.pstep.on .pdot,.pstep:hover .pdot{transform:translateY(-3px)}
.pstep[data-k="extract"].on .pdot,.pstep[data-k="extract"]:hover .pdot{border-color:#37C8F0;box-shadow:0 0 24px rgba(55,200,240,.4)}
.pstep[data-k="map"].on .pdot,.pstep[data-k="map"]:hover .pdot{border-color:#4D7CFE;box-shadow:0 0 24px rgba(77,124,254,.4)}
.pstep[data-k="rules"].on .pdot,.pstep[data-k="rules"]:hover .pdot{border-color:#8B5CF6;box-shadow:0 0 24px rgba(139,92,246,.4)}
.pstep[data-k="visualize"].on .pdot,.pstep[data-k="visualize"]:hover .pdot{border-color:#34E0A1;box-shadow:0 0 24px rgba(52,224,161,.4)}
.pstep.on .pcap,.pstep:hover .pcap{color:#fff}
.pstep.on .pdot svg,.pstep:hover .pdot svg{color:#fff}
.parrow{flex:none;display:grid;place-items:center;color:rgba(255,255,255,.22)}
.parrow svg{width:16px;height:16px}
html[dir="rtl"] .pipe-flow{flex-direction:row-reverse}
html[dir="rtl"] .parrow svg{transform:scaleX(-1)}
.pipe-core{position:relative;border-radius:20px;padding:18px 18px 16px;text-align:center;
  background:linear-gradient(150deg,rgba(55,200,240,.07),rgba(52,224,161,.05));
  border:1px solid rgba(52,224,161,.18)}
.pipe-core .lab{font-size:10px;letter-spacing:.28em;text-transform:uppercase;color:var(--dim)}
.pipe-core .ds{font-size:12px;color:var(--muted);margin-top:8px;line-height:1.5;min-height:3em;transition:.3s}
.pipe-ai{margin-top:14px;padding-top:14px;border-top:1px solid rgba(255,255,255,.08);text-align:left;animation:demoFade .4s ease both}
html[dir="rtl"] .pipe-ai{text-align:right}
.pipe-ai .ai-q{display:flex;align-items:center;gap:8px;font-size:12.5px;color:#eaf6ff;font-weight:600}
html[dir="rtl"] .pipe-ai .ai-q{flex-direction:row-reverse}
.pipe-ai .ai-ic{flex:none;width:24px;height:24px;border-radius:7px;display:grid;place-items:center;font-size:9.5px;font-weight:800;
  color:#04121a;background:linear-gradient(120deg,#37C8F0,#34E0A1)}
.pipe-ai .ai-a{font-size:11.5px;color:var(--muted);margin-top:7px;line-height:1.5}
.guide-bar.hea i{background:linear-gradient(90deg,#37C8F0,#34E0A1)}
@media(prefers-reduced-motion:reduce){.pstep .hint{animation:none}}


/* ===== SOLUTIONS — 3 cartes à parité ===== */
.sol-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,2vw,22px)}
@media(max-width:880px){.sol-grid{grid-template-columns:1fr}}
.sol-card{position:relative;display:flex;flex-direction:column;border-radius:22px;padding:30px 26px;overflow:hidden;isolation:isolate;
  background:linear-gradient(160deg,rgba(20,26,48,.62),rgba(11,13,26,.6));
  backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
  border:1px solid rgba(138,147,181,.16);text-decoration:none;
  transition:transform .4s var(--ease),border-color .4s,box-shadow .4s}
.sol-card::before{content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;z-index:-1;
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;mask-composite:exclude;opacity:0;transition:opacity .45s}
.sol-card::after{content:"";position:absolute;width:260px;height:260px;border-radius:50%;
  top:-30%;left:50%;transform:translate(-50%,-50%);z-index:-1;
  background:radial-gradient(circle,var(--glow),transparent 68%);opacity:0;filter:blur(22px);transition:opacity .45s}
.sol-card:hover{transform:translateY(-6px)}
.sol-card:hover::before,.sol-card:hover::after{opacity:1}
.sol-ic{width:54px;height:54px;border-radius:16px;display:grid;place-items:center;margin-bottom:20px;
  border:1px solid rgba(255,255,255,.1)}
.sol-ic svg{width:27px;height:27px;color:#fff}
.sol-card h3{font-weight:800;font-size:clamp(21px,2.5vw,26px);line-height:1.12}
.sol-card h3 .seri{font:inherit;font-weight:800;color:#fff;
  text-shadow:0 0 1px rgba(255,255,255,.5),0 0 12px rgba(255,255,255,.45),0 0 26px rgba(255,255,255,.25)}
.sol-card h3 b{font-weight:800;-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:none}
.sol-card .desc{color:var(--soft);font-size:14px;line-height:1.62;margin-top:12px}
.sol-feats{margin-top:18px;display:grid;gap:9px}
.sol-feats li{display:flex;gap:10px;align-items:flex-start;color:var(--muted);font-size:13px;line-height:1.5;list-style:none}
.sol-feats li svg{width:15px;height:15px;flex-shrink:0;margin-top:2px}
html[dir="rtl"] .sol-feats li{flex-direction:row-reverse;text-align:right}
.sol-foot{margin-top:auto;padding-top:20px}
.sol-link{display:inline-flex;align-items:center;gap:7px;font-size:13.5px;font-weight:700}
.sol-link svg{width:15px;height:15px;transition:transform .25s}
.sol-card:hover .sol-link svg{transform:translateX(3px)}
html[dir="rtl"] .sol-card:hover .sol-link svg{transform:translateX(-3px)}
.sol-note{font-size:12px;color:var(--dim);font-weight:600}
/* couleurs par solution */
.sol-card.c-cyan{--glow:rgba(55,200,240,.4)}
.sol-card.c-cyan::before{background:linear-gradient(140deg,rgba(55,200,240,.7),rgba(77,124,254,.3),transparent)}
.sol-card.c-cyan:hover{border-color:rgba(55,200,240,.5);box-shadow:0 20px 50px rgba(55,200,240,.16)}
.sol-card.c-cyan .sol-ic{background:linear-gradient(135deg,#37C8F0,#4D7CFE)}
.sol-card.c-cyan h3 b{background-image:var(--g-health)}
.sol-card.c-cyan .sol-link,.sol-card.c-cyan .sol-feats li svg{color:var(--cyan)}
.sol-card.c-violet{--glow:rgba(139,92,246,.4)}
.sol-card.c-violet::before{background:linear-gradient(140deg,rgba(139,92,246,.7),rgba(77,124,254,.3),transparent)}
.sol-card.c-violet:hover{border-color:rgba(139,92,246,.5);box-shadow:0 20px 50px rgba(139,92,246,.16)}
.sol-card.c-violet .sol-ic{background:linear-gradient(135deg,#8B5CF6,#4D7CFE)}
.sol-card.c-violet h3 b{background-image:var(--g-property)}
.sol-card.c-violet .sol-link,.sol-card.c-violet .sol-feats li svg{color:var(--violet)}
.sol-card.c-pink{--glow:rgba(255,61,138,.4)}
.sol-card.c-pink::before{background:linear-gradient(140deg,rgba(255,61,138,.7),rgba(139,92,246,.3),transparent)}
.sol-card.c-pink:hover{border-color:rgba(255,61,138,.5);box-shadow:0 20px 50px rgba(255,61,138,.16)}
.sol-card.c-pink .sol-ic{background:linear-gradient(135deg,#8B5CF6,#4D7CFE)}
.sol-card.c-pink h3 b{background-image:var(--g-security)}
.sol-card.c-pink .sol-link,.sol-card.c-pink .sol-feats li svg{color:var(--pink)}

/* ===== NOTRE ADN — cartes experts ===== */
.dna-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(16px,2vw,22px)}
@media(max-width:760px){.dna-grid{grid-template-columns:1fr}}
.card-expert{position:relative;border-radius:22px;padding:26px 24px;overflow:hidden;isolation:isolate;
  background:linear-gradient(160deg,rgba(20,26,48,.66),rgba(11,13,26,.62));
  backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
  border:1px solid rgba(138,147,181,.16);transition:transform .4s var(--ease),box-shadow .4s}
.card-expert::before{content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;z-index:-1;
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;mask-composite:exclude;opacity:0;transition:opacity .45s}
.card-expert::after{content:"";position:absolute;width:240px;height:240px;border-radius:50%;
  top:-30%;left:50%;transform:translate(-50%,-50%);z-index:-1;
  background:radial-gradient(circle,var(--glow,rgba(139,92,246,.4)),transparent 68%);
  opacity:0;filter:blur(20px);transition:opacity .45s}
.card-expert:hover{transform:translateY(-5px)}
.card-expert:hover::before,.card-expert:hover::after{opacity:1}
.card-expert.c-cyan{--glow:rgba(55,200,240,.4)}
.card-expert.c-cyan::before{background:linear-gradient(140deg,rgba(55,200,240,.7),rgba(77,124,254,.35),transparent)}
.card-expert.c-violet{--glow:rgba(139,92,246,.4)}
.card-expert.c-violet::before{background:linear-gradient(140deg,rgba(139,92,246,.7),rgba(77,124,254,.35),transparent)}
.card-expert.c-pink{--glow:rgba(255,61,138,.4)}
.card-expert.c-pink::before{background:linear-gradient(140deg,rgba(255,61,138,.7),rgba(139,92,246,.35),transparent)}
.card-expert.c-gold{--glow:rgba(244,184,96,.4)}
.card-expert.c-gold::before{background:linear-gradient(140deg,rgba(244,184,96,.7),rgba(255,61,138,.3),transparent)}
.ce-top{display:flex;align-items:center;gap:15px;margin-bottom:16px}
.ce-av{width:56px;height:56px;border-radius:16px;flex-shrink:0;display:grid;place-items:center;
  font-weight:800;font-size:19px;color:#fff;letter-spacing:.02em;border:1px solid rgba(255,255,255,.12)}
.c-cyan .ce-av{background:linear-gradient(135deg,#37C8F0,#4D7CFE)}
.c-violet .ce-av{background:linear-gradient(135deg,#8B5CF6,#4D7CFE)}
.c-pink .ce-av{background:linear-gradient(135deg,#8B5CF6,#4D7CFE)}
.c-gold .ce-av{background:linear-gradient(135deg,#F4B860,#8B5CF6)}
.ce-role{font-weight:800;font-size:17px;line-height:1.2}
.ce-tag{font-size:11.5px;font-weight:600;letter-spacing:.04em;color:var(--muted);margin-top:3px}
html[dir="rtl"] .ce-top{flex-direction:row-reverse;text-align:right}
.ce-body{color:var(--soft);font-size:14px;line-height:1.62}
.ce-guard{display:inline-flex;align-items:center;gap:7px;margin-top:14px;padding:6px 12px;border-radius:99px;
  font-size:11.5px;font-weight:700;letter-spacing:.02em;
  background:rgba(255,255,255,.04);border:1px solid rgba(138,147,181,.2)}
.ce-guard .gc,.ce-guard .gp,.ce-guard .gv,.ce-guard .gm{font-weight:800}
.ce-foot{display:flex;align-items:center;gap:8px;margin-top:16px;
  font-size:12px;font-weight:600;color:var(--muted);
  padding-top:14px;border-top:1px solid rgba(138,147,181,.14)}
.ce-foot svg{width:14px;height:14px;flex-shrink:0;opacity:.8}
html[dir="rtl"] .ce-foot{flex-direction:row-reverse;text-align:right}

/* ===== FOOTER ===== */
.s-foot{border-top:1px solid rgba(138,147,181,.14);padding:clamp(50px,8vh,84px) 0 36px;
  background:linear-gradient(180deg,transparent,rgba(11,13,26,.5))}
.foot-grid{display:grid;grid-template-columns:1fr;gap:clamp(34px,6vw,80px);align-items:start;max-width:680px}
.foot-tag-c{display:block;text-align:center;max-width:640px;margin:clamp(10px,1.8vw,18px) auto;padding:0 1rem;color:var(--muted);font-size:clamp(.8rem,1.1vw,.93rem);line-height:1.6}
@media(max-width:760px){.foot-grid{grid-template-columns:1fr;gap:40px}}
.foot-brand .logo-row{display:flex;align-items:center;gap:12px;font-weight:800;font-size:22px;letter-spacing:.02em}
.foot-brand .logo-row img{width:36px;mix-blend-mode:normal}
.foot-brand .logo-row .ai{background:var(--g-pink);-webkit-background-clip:text;background-clip:text;color:transparent}
.foot-brand .logo-row .dash{color:var(--dim)}
.foot-brand .tag{color:var(--muted);font-size:14px;line-height:1.6;margin-top:16px;max-width:44ch}
.foot-hq{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}
.hq-chip{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:99px;
  font-size:12.5px;font-weight:600;color:var(--soft);
  background:rgba(255,255,255,.03);border:1px solid rgba(138,147,181,.2)}
.hq-chip svg{width:14px;height:14px;color:var(--cyan)}
.hq-chip.main{border-color:rgba(55,200,240,.4);background:rgba(55,200,240,.08)}
.foot-contact h4{font-weight:800;font-size:16px;margin-bottom:6px}
.foot-contact p{color:var(--muted);font-size:13.5px;line-height:1.6;margin-bottom:18px}
.contact-form{display:flex;gap:10px;flex-wrap:wrap}
.contact-form input{flex:1;min-width:180px;height:50px;padding:0 16px;border-radius:12px;
  font-family:inherit;font-size:14px;color:var(--text);
  background:rgba(255,255,255,.04);border:1px solid rgba(138,147,181,.22);transition:.25s}
.contact-form input::placeholder{color:var(--dim)}
.contact-form input:focus{outline:none;border-color:var(--cyan);background:rgba(55,200,240,.06)}
.contact-form button{height:50px;padding:0 22px;border:none;border-radius:12px;cursor:pointer;
  font-family:inherit;font-weight:700;font-size:14px;color:#fff;background:var(--g-cta);background-size:160% 100%;
  transition:background-position .4s,transform .2s}
.contact-form button:hover{background-position:100% 0;transform:translateY(-1px)}
.foot-note{color:var(--dim);font-size:12px;margin-top:14px}
.foot-bottom{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:14px;
  margin-top:clamp(40px,6vh,64px);padding-top:24px;border-top:1px solid rgba(138,147,181,.12);
  color:var(--dim);font-size:12.5px}
.foot-bottom .links{display:flex;gap:18px}
.foot-bottom a{color:var(--muted);text-decoration:none;transition:.2s}
.foot-bottom a:hover{color:var(--text)}
