/* ============================================================
   SIRIUS Technologies — Design system (site vitrine)
   Police : Sora · Couleurs : bleu nuit / cyan / bleu + accent doré
   ============================================================ */

:root{
  /* Marque (constantes) */
  --navy:        #03003A;
  --navy-900:    #050217;
  --navy-800:    #070433;
  --navy-700:    #0a0a52;
  --blue:        #02A6F0;
  --cyan:        #02C9F0;
  --gold:        #E7B45A;

  /* Accent dynamique (piloté par les Tweaks) */
  --accent:      var(--cyan);
  --accent-2:    var(--blue);
  --accent-rgb:  2, 201, 240;
  --accent-ink:  #0286C7;          /* accent lisible en texte (calculé par les Tweaks) */
  --grad-from:   #0286C7;
  --grad-to:     #02A6F0;

  /* ===== THÈME CLAIR (par défaut) ===== */
  --bg:          #F4F7FC;
  --surface-solid:#FFFFFF;
  --ink:         #0C1024;
  --ink-80:      rgba(12,16,36,.82);
  --ink-62:      rgba(12,16,36,.60);
  --ink-45:      rgba(12,16,36,.46);
  --line:        rgba(12,16,36,.12);
  --line-soft:   rgba(12,16,36,.07);
  --glass:       #FFFFFF;
  --glass-2:     #FFFFFF;
  --hover:       rgba(12,16,36,.06);
  --shadow:      0 26px 60px -30px rgba(12,20,55,.32);
  --card-shadow: 0 1px 2px rgba(12,20,55,.05), 0 12px 30px -20px rgba(12,20,55,.20);

  /* réseau de neurones (canvas) */
  --net-line-rgb: 26,54,110;
  --net-node-rgb: 18,40,92;
  --net-hub-rgb:  2,166,240;

  --r-card:      20px;
  --r-sm:        12px;
  --maxw:        1200px;
  --pad-x:       clamp(20px, 5vw, 64px);
  --ease:        cubic-bezier(.22,.61,.36,1);

  --font: 'Sora', system-ui, -apple-system, sans-serif;
}

/* ===== THÈME SOMBRE ===== */
html.theme-dark{
  --ink:         #ffffff;
  --ink-80:      rgba(255,255,255,.80);
  --ink-62:      rgba(255,255,255,.62);
  --ink-45:      rgba(255,255,255,.45);
  --line:        rgba(255,255,255,.10);
  --line-soft:   rgba(255,255,255,.06);
  --glass:       rgba(255,255,255,.04);
  --glass-2:     rgba(255,255,255,.065);
  --hover:       rgba(255,255,255,.05);
  --bg:          #050217;
  --surface-solid:#070433;
  --shadow:      0 30px 70px -30px rgba(0,0,0,.7);
  --card-shadow: none;
  --net-line-rgb: 140,205,245;
  --net-node-rgb: 205,232,250;
  --net-hub-rgb:  150,228,255;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
html,body{margin:0;padding:0;}
body{
  font-family:var(--font);
  color:var(--ink);
  background:var(--bg);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:clip;
  line-height:1.6;
  transition:background .4s var(--ease), color .4s var(--ease);
}
a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}
button{font-family:inherit;}
::selection{background:rgba(var(--accent-rgb),.30);color:var(--ink);}

/* ---------- Page ambiance ---------- */
.page-bg{
  position:fixed;inset:0;z-index:-2;pointer-events:none;
  background:
    radial-gradient(120% 90% at 82% -8%, rgba(var(--accent-rgb),.10) 0%, rgba(var(--accent-rgb),0) 46%),
    radial-gradient(90% 80% at 6% 8%, rgba(2,166,240,.07) 0%, rgba(2,166,240,0) 50%),
    linear-gradient(180deg, #F4F7FC 0%, #E9F0FA 45%, #F4F7FC 100%);
}
html.theme-dark .page-bg{
  background:
    radial-gradient(120% 90% at 82% -8%, rgba(var(--accent-rgb),.20) 0%, rgba(var(--accent-rgb),0) 46%),
    radial-gradient(90% 80% at 6% 8%, rgba(2,166,240,.14) 0%, rgba(2,166,240,0) 50%),
    linear-gradient(180deg, var(--navy-900) 0%, #04022a 40%, var(--navy-900) 100%);
}
.page-bg::after{
  content:"";position:absolute;inset:0;opacity:.5;
  background-image:
    linear-gradient(rgba(12,16,36,.045) 1px,transparent 1px),
    linear-gradient(90deg,rgba(12,16,36,.045) 1px,transparent 1px);
  background-size:56px 56px;
  -webkit-mask-image:radial-gradient(120% 80% at 50% 0%, #000 0%, transparent 70%);
          mask-image:radial-gradient(120% 80% at 50% 0%, #000 0%, transparent 70%);
}
html.theme-dark .page-bg::after{
  background-image:
    linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);
}

/* ---------- Layout ---------- */
.container{width:100%;max-width:var(--maxw);margin:0 auto;padding-inline:var(--pad-x);}
.section{position:relative;padding-block:clamp(80px,11vw,150px);}
.section--tight{padding-block:clamp(56px,8vw,96px);}

/* ---------- Typo helpers ---------- */
.eyebrow{
  display:inline-flex;align-items:center;gap:11px;
  font-size:13px;font-weight:600;letter-spacing:.28em;text-transform:uppercase;
  color:var(--ink-80);
  padding:8px 16px 8px 13px;border-radius:999px;
  border:1px solid rgba(var(--accent-rgb),.40);
  background:rgba(var(--accent-rgb),.08);
}
.eyebrow .dot{
  width:7px;height:7px;border-radius:50%;background:var(--accent);
  box-shadow:0 0 0 4px rgba(var(--accent-rgb),.20);
}
.h1{font-size:clamp(38px,6vw,72px);line-height:1.02;font-weight:800;letter-spacing:-.025em;margin:0;text-wrap:balance;}
.h2{font-size:clamp(30px,4.4vw,52px);line-height:1.06;font-weight:700;letter-spacing:-.02em;margin:0;text-wrap:balance;}
.h3{font-size:clamp(21px,2.4vw,27px);line-height:1.18;font-weight:700;letter-spacing:-.01em;margin:0;}
.lead{font-size:clamp(17px,1.5vw,20px);color:var(--ink-80);font-weight:400;}
.muted{color:var(--ink-62);}
.accent{color:var(--accent-ink);}
.grad-text{
  background:linear-gradient(120deg, var(--grad-from) 0%, var(--grad-to) 90%);
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
}
.section-head{max-width:760px;margin:0 auto 56px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:20px;}
.section-head.left{margin-inline:0;text-align:left;align-items:flex-start;}
.section-head p{margin:0;}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;align-items:center;gap:10px;
  font-size:15px;font-weight:600;letter-spacing:.01em;
  padding:14px 24px;border-radius:999px;border:1px solid transparent;
  cursor:pointer;transition:transform .25s var(--ease), box-shadow .25s var(--ease), background .25s, border-color .25s, color .2s;
  white-space:nowrap;
}
.btn svg{width:17px;height:17px;}
.btn--primary{
  color:#021018;
  background:linear-gradient(120deg, var(--accent) 0%, var(--accent-2) 100%);
  box-shadow:0 12px 30px -10px rgba(var(--accent-rgb),.6);
}
.btn--primary:hover{transform:translateY(-2px);box-shadow:0 18px 40px -12px rgba(var(--accent-rgb),.75);}
.btn--ghost{color:var(--ink);border-color:var(--line);background:var(--glass);}
.btn--ghost:hover{border-color:rgba(var(--accent-rgb),.55);background:var(--glass-2);transform:translateY(-2px);}
.btn--lg{padding:17px 30px;font-size:16px;}
.arrow{transition:transform .25s var(--ease);}
.btn:hover .arrow{transform:translateX(4px);}

.link-arrow{
  display:inline-flex;align-items:center;gap:8px;color:var(--accent-ink);font-weight:600;font-size:15px;
}
.link-arrow svg{width:15px;height:15px;transition:transform .25s var(--ease);}
.link-arrow:hover svg{transform:translateX(4px);}

/* ---------- Header / nav ---------- */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:60;
  transition:background .3s, border-color .3s, backdrop-filter .3s;
  border-bottom:1px solid transparent;
}
.nav.scrolled{
  background:rgba(255,255,255,.78);
  backdrop-filter:blur(16px) saturate(140%);
  -webkit-backdrop-filter:blur(16px) saturate(140%);
  border-bottom-color:var(--line);
}
html.theme-dark .nav.scrolled{background:rgba(4,2,28,.72);}
.nav__inner{display:flex;align-items:center;justify-content:space-between;height:78px;}
.nav__logo{display:flex;align-items:center;gap:12px;}
.nav__logo img{height:34px;width:auto;}
/* bascule logo selon le thème */
.logo-light{display:none;}
html.theme-dark .logo-dark{display:none;}
html.theme-dark .logo-light{display:block;}
.nav__links{display:flex;align-items:center;gap:6px;}
.nav__links a{
  padding:9px 16px;border-radius:999px;font-size:14.5px;font-weight:500;color:var(--ink-80);
  transition:color .2s, background .2s;
}
.nav__links a:hover{color:var(--ink);background:var(--hover);}
.nav__links a.active{color:var(--ink);background:var(--hover);}
.nav__cta{display:flex;align-items:center;gap:14px;}
.nav__burger{display:none;width:44px;height:44px;border:1px solid var(--line);border-radius:12px;background:var(--hover);
  align-items:center;justify-content:center;cursor:pointer;flex-direction:column;gap:5px;}
.nav__burger span{width:18px;height:2px;background:var(--ink);border-radius:2px;transition:.3s var(--ease);}
.nav.open .nav__burger span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.nav.open .nav__burger span:nth-child(2){opacity:0;}
.nav.open .nav__burger span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

@media (max-width:900px){
  .nav__links,.nav__cta .btn{display:none;}
  .nav__burger{display:flex;}
  .nav__mobile{
    position:fixed;inset:78px 0 auto 0;z-index:59;
    background:rgba(255,255,255,.97);backdrop-filter:blur(18px);
    border-bottom:1px solid var(--line);
    transform:translateY(-12px);opacity:0;pointer-events:none;transition:.3s var(--ease);
    padding:14px var(--pad-x) 28px;
  }
  html.theme-dark .nav__mobile{background:rgba(4,2,28,.96);}
  .nav.open .nav__mobile{transform:none;opacity:1;pointer-events:auto;}
  .nav__mobile a{display:block;padding:15px 4px;font-size:18px;font-weight:500;border-bottom:1px solid var(--line-soft);}
  .nav__mobile .btn{display:inline-flex;margin-top:20px;width:100%;justify-content:center;}
}
@media (min-width:901px){ .nav__mobile{display:none;} }

/* ---------- Hero ---------- */
.hero{position:relative;min-height:100svh;display:flex;align-items:center;padding-top:96px;overflow:hidden;}
.hero__canvas{position:absolute;inset:0;width:100%;height:100%;z-index:0;}
.hero__scrim{position:absolute;inset:0;z-index:1;
  background:
    radial-gradient(82% 100% at 20% 50%, rgba(244,247,252,.92) 0%, rgba(244,247,252,.5) 40%, rgba(244,247,252,0) 68%),
    linear-gradient(180deg, rgba(244,247,252,.4) 0%, rgba(244,247,252,0) 26%, var(--bg) 100%);}
html.theme-dark .hero__scrim{
  background:
    radial-gradient(90% 100% at 28% 50%, rgba(3,0,40,.78) 0%, rgba(3,0,40,.35) 45%, rgba(3,0,40,0) 75%),
    linear-gradient(180deg, rgba(4,2,28,.5) 0%, rgba(4,2,28,0) 25%, rgba(4,2,28,.55) 100%);}
.hero .container{position:relative;z-index:2;}
.hero__inner{max-width:840px;}
.hero .h1{margin:24px 0 0;}
.hero__sub{margin:26px 0 0;max-width:600px;}
.hero__cta{display:flex;flex-wrap:wrap;gap:14px;margin-top:38px;}
.hero__meta{display:flex;flex-wrap:wrap;gap:28px;margin-top:54px;}
.hero__meta .item{display:flex;flex-direction:column;gap:4px;}
.hero__meta .num{font-size:30px;font-weight:800;letter-spacing:-.02em;}
.hero__meta .lab{font-size:13px;color:var(--ink-62);letter-spacing:.02em;}
.scroll-cue{position:absolute;left:50%;bottom:26px;transform:translateX(-50%);z-index:2;
  display:flex;flex-direction:column;align-items:center;gap:8px;color:var(--ink-45);font-size:11px;letter-spacing:.25em;text-transform:uppercase;}
.scroll-cue .mouse{width:22px;height:34px;border:1.5px solid var(--ink-45);border-radius:12px;position:relative;}
.scroll-cue .mouse::after{content:"";position:absolute;left:50%;top:6px;width:3px;height:6px;border-radius:2px;background:var(--accent);transform:translateX(-50%);animation:scrolldot 1.8s var(--ease) infinite;}
@keyframes scrolldot{0%{opacity:0;transform:translate(-50%,0);}30%{opacity:1;}70%{opacity:1;transform:translate(-50%,9px);}100%{opacity:0;transform:translate(-50%,12px);}}

/* ---------- Cards / glass ---------- */
.card{
  position:relative;background:var(--glass);border:1px solid var(--line);
  border-radius:var(--r-card);padding:34px 30px;box-shadow:var(--card-shadow);
  transition:transform .35s var(--ease), border-color .35s, background .35s, box-shadow .35s;
  overflow:hidden;
}
.card::before{
  content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;pointer-events:none;opacity:0;
  background:linear-gradient(140deg, rgba(var(--accent-rgb),.6), transparent 50%);
  -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;mask-composite:exclude;transition:opacity .35s;
}
.card:hover{transform:translateY(-6px);background:var(--glass-2);border-color:rgba(var(--accent-rgb),.25);box-shadow:var(--shadow);}
.card:hover::before{opacity:1;}

.icon-badge{
  width:54px;height:54px;border-radius:15px;display:grid;place-items:center;margin-bottom:22px;
  background:rgba(var(--accent-rgb),.12);border:1px solid rgba(var(--accent-rgb),.3);
  color:var(--accent-ink);
}
.icon-badge svg{width:26px;height:26px;}

.grid{display:grid;gap:24px;}
.grid-3{grid-template-columns:repeat(3,1fr);}
.grid-2{grid-template-columns:repeat(2,1fr);}
.grid-4{grid-template-columns:repeat(4,1fr);}
@media (max-width:980px){.grid-3,.grid-4{grid-template-columns:repeat(2,1fr);}}
@media (max-width:620px){.grid-3,.grid-4,.grid-2{grid-template-columns:1fr;}}

.feature-list{list-style:none;margin:18px 0 0;padding:0;display:flex;flex-direction:column;gap:11px;}
.feature-list li{display:flex;gap:11px;align-items:flex-start;font-size:15px;color:var(--ink-80);}
.feature-list li::before{content:"";flex:0 0 auto;width:7px;height:7px;border-radius:2px;margin-top:8px;
  background:linear-gradient(135deg,var(--accent),var(--accent-2));}

/* ---------- Split (about) ---------- */
.split{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(36px,6vw,80px);align-items:center;}
.split.rev{grid-template-columns:.95fr 1.05fr;}
@media (max-width:900px){.split,.split.rev{grid-template-columns:1fr;}}

/* striped placeholder image */
.ph{
  position:relative;border-radius:var(--r-card);overflow:hidden;border:1px solid var(--line);
  background:
    repeating-linear-gradient(135deg, rgba(12,16,36,.05) 0 2px, transparent 2px 11px),
    linear-gradient(160deg, #EDF1F9, #E1E9F5);
  display:grid;place-items:center;min-height:300px;
}
html.theme-dark .ph{
  background:
    repeating-linear-gradient(135deg, rgba(255,255,255,.045) 0 2px, transparent 2px 11px),
    linear-gradient(160deg, var(--navy-800), var(--navy-900));
}
.ph__tag{
  font-family:'Sora',monospace;font-size:12px;letter-spacing:.12em;text-transform:uppercase;
  color:var(--ink-45);border:1px dashed var(--ink-45);border-radius:8px;padding:8px 14px;background:rgba(255,255,255,.55);
}
html.theme-dark .ph__tag{background:rgba(0,0,0,.25);}
.ph .const{position:absolute;inset:0;opacity:.5;}

/* image media tile (visuels générés / carte) */
.figure{
  position:relative;border-radius:var(--r-card);overflow:hidden;
  border:1px solid var(--line);box-shadow:var(--card-shadow);
  background:linear-gradient(160deg,#070430,#03010f);
}
.figure img,.figure iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block;}
.figure img{object-fit:cover;object-position:center;}
.figure::after{
  content:"";position:absolute;inset:0;pointer-events:none;border-radius:inherit;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.05);
}
.figure.map iframe{filter:grayscale(.15) contrast(1.02);}

/* ---------- Stats band ---------- */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r-card);overflow:hidden;}
.stats .cell{background:var(--surface-solid);padding:30px 26px;}
.stats .num{font-size:clamp(30px,4vw,44px);font-weight:800;letter-spacing:-.02em;}
.stats .lab{margin-top:6px;color:var(--ink-62);font-size:14px;}
@media (max-width:760px){.stats{grid-template-columns:repeat(2,1fr);}}

/* ---------- Sectors ---------- */
.sector{
  display:flex;align-items:center;gap:16px;padding:22px;border:1px solid var(--line);border-radius:var(--r-sm);
  background:var(--glass);transition:transform .3s var(--ease),border-color .3s,background .3s;
}
.sector:hover{transform:translateY(-4px);border-color:rgba(var(--accent-rgb),.3);background:var(--glass-2);}
.sector .ic{flex:0 0 auto;width:46px;height:46px;border-radius:12px;display:grid;place-items:center;color:var(--accent-ink);
  background:rgba(var(--accent-rgb),.1);border:1px solid rgba(var(--accent-rgb),.22);}
.sector .ic svg{width:24px;height:24px;}
.sector b{display:block;font-size:16px;font-weight:600;}
.sector span{font-size:13.5px;color:var(--ink-62);}

/* ---------- Process timeline ---------- */
.steps{position:relative;display:grid;grid-template-columns:repeat(5,1fr);gap:24px;}
.steps::before{content:"";position:absolute;left:0;right:0;top:27px;height:1px;
  background:linear-gradient(90deg,transparent,rgba(var(--accent-rgb),.4),transparent);}
.step{position:relative;}
.step .num{
  width:54px;height:54px;border-radius:14px;display:grid;place-items:center;font-weight:800;font-size:18px;
  background:var(--surface-solid);border:1px solid rgba(var(--accent-rgb),.35);color:var(--accent-ink);position:relative;z-index:1;margin-bottom:18px;
}
.step h4{margin:0 0 8px;font-size:17px;font-weight:700;}
.step p{margin:0;font-size:14px;color:var(--ink-62);}
@media (max-width:900px){
  .steps{grid-template-columns:1fr;gap:0;}
  .steps::before{left:27px;right:auto;top:0;bottom:0;width:1px;height:auto;}
  .step{display:grid;grid-template-columns:54px 1fr;gap:20px;padding-bottom:30px;}
  .step .num{margin-bottom:0;}
}

/* ---------- Testimonials ---------- */
.quote{display:flex;flex-direction:column;gap:24px;}
.quote p{font-size:18px;line-height:1.55;margin:0;color:var(--ink);font-weight:400;}
.quote .who{display:flex;align-items:center;gap:14px;}
.quote .ava{width:48px;height:48px;border-radius:50%;flex:0 0 auto;overflow:hidden;
  background:linear-gradient(135deg,var(--accent),var(--accent-2));
  border:1px solid rgba(var(--accent-rgb),.4);display:grid;place-items:center;
  font-size:16px;font-weight:700;letter-spacing:.02em;color:#04101a;}
html.theme-dark .quote .ava{color:#04101a;}
.quote .who b{display:block;font-size:15px;margin-bottom:2px;}
.quote .who span{font-size:13px;color:var(--ink-62);}
.qumark{font-size:48px;line-height:.6;color:var(--accent-ink);opacity:.5;font-weight:800;}

/* ---------- CTA band ---------- */
.cta-band{
  position:relative;border-radius:28px;overflow:hidden;text-align:center;
  padding:clamp(48px,7vw,86px) clamp(24px,5vw,64px);
  border:1px solid rgba(var(--accent-rgb),.30);
  background:
    radial-gradient(80% 130% at 50% -20%, rgba(var(--accent-rgb),.16), transparent 60%),
    linear-gradient(160deg, #FFFFFF, #EAF1FB);
}
html.theme-dark .cta-band{
  background:
    radial-gradient(80% 130% at 50% -20%, rgba(var(--accent-rgb),.22), transparent 60%),
    linear-gradient(160deg, var(--navy-700), var(--navy-900));
}
.cta-band .h2{margin-bottom:18px;}
.cta-band .row{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-top:34px;}

/* ---------- Footer ---------- */
.footer{border-top:1px solid var(--line);background:#ECF1F9;margin-top:20px;}
html.theme-dark .footer{background:rgba(2,1,15,.6);}
.footer__top{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:40px;padding-block:64px;}
.footer__brand img{height:32px;margin-bottom:18px;}
.footer__brand p{color:var(--ink-62);font-size:14.5px;max-width:300px;margin:0 0 20px;}
.footer h5{font-size:13px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-45);margin:0 0 18px;font-weight:600;}
.footer ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px;}
.footer ul a,.footer ul li{color:var(--ink-80);font-size:14.5px;}
.footer ul a:hover{color:var(--accent-ink);}
.socials{display:flex;gap:10px;}
.socials a{width:40px;height:40px;border-radius:11px;border:1px solid var(--line);background:var(--glass);display:grid;place-items:center;color:var(--ink-80);transition:.25s var(--ease);}
.socials a:hover{color:var(--accent-ink);border-color:rgba(var(--accent-rgb),.4);transform:translateY(-2px);}
.socials svg{width:18px;height:18px;}
.footer__bottom{border-top:1px solid var(--line-soft);padding-block:24px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;color:var(--ink-45);font-size:13px;}
.footer__bottom a{color:var(--ink-45);}
.footer__bottom a:hover{color:var(--ink-80);}
@media (max-width:860px){.footer__top{grid-template-columns:1fr 1fr;gap:36px;}}
@media (max-width:520px){.footer__top{grid-template-columns:1fr;}}

/* ---------- Contact ---------- */
.contact-grid{display:grid;grid-template-columns:1fr 1.15fr;gap:clamp(32px,5vw,64px);align-items:start;}
@media (max-width:880px){.contact-grid{grid-template-columns:1fr;}}
.info-row{display:flex;gap:16px;padding:20px 0;border-bottom:1px solid var(--line-soft);}
.info-row .ic{width:46px;height:46px;flex:0 0 auto;border-radius:12px;display:grid;place-items:center;color:var(--accent-ink);
  background:rgba(var(--accent-rgb),.1);border:1px solid rgba(var(--accent-rgb),.22);}
.info-row .ic svg{width:22px;height:22px;}
.info-row b{display:block;font-size:13px;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-45);margin-bottom:5px;font-weight:600;}
.info-row .v{font-size:16.5px;color:var(--ink);}
.form{background:var(--glass);border:1px solid var(--line);border-radius:var(--r-card);padding:clamp(26px,4vw,40px);}
.field{margin-bottom:20px;}
.field label{display:block;font-size:13.5px;font-weight:600;margin-bottom:9px;color:var(--ink-80);}
.field input,.field select,.field textarea{
  width:100%;padding:14px 16px;border-radius:12px;border:1px solid var(--line);
  background:#FBFCFE;color:var(--ink);font-family:inherit;font-size:15px;transition:border-color .2s, background .2s;
}
html.theme-dark .field input,html.theme-dark .field select,html.theme-dark .field textarea{background:rgba(0,0,0,.25);}
.field textarea{resize:vertical;min-height:130px;}
.field input::placeholder,.field textarea::placeholder{color:var(--ink-45);}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:rgba(var(--accent-rgb),.6);background:#FFFFFF;}
html.theme-dark .field input:focus,html.theme-dark .field select:focus,html.theme-dark .field textarea:focus{background:rgba(0,0,0,.4);}
.field select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%230C1024' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 16px center;}
html.theme-dark .field select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23ffffff80' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");}
.form-note{font-size:13px;color:var(--ink-45);margin-top:6px;}

/* ---------- Page hero (interior pages) ---------- */
.page-hero{position:relative;padding-top:160px;padding-bottom:40px;overflow:hidden;}
.page-hero .eyebrow{margin-bottom:22px;}
.page-hero .lead{margin-top:22px;max-width:640px;}
.crumb{font-size:13px;color:var(--ink-45);letter-spacing:.04em;margin-bottom:26px;}
.crumb a:hover{color:var(--accent-ink);}

/* ---------- Reveal on scroll ----------
   Resting state is VISIBLE so content always shows (print, PDF, frozen timelines).
   The fade-in is layered on only once JS confirms a live, ticking timeline. */
.reveal{opacity:1;transform:none;}
html.anim-ok .reveal:not(.in){opacity:0;transform:translateY(26px);}
html.anim-ok .reveal{transition:opacity .7s var(--ease), transform .7s var(--ease);}
html.anim-ok .reveal[data-d="1"]{transition-delay:.08s;}
html.anim-ok .reveal[data-d="2"]{transition-delay:.16s;}
html.anim-ok .reveal[data-d="3"]{transition-delay:.24s;}
html.anim-ok .reveal[data-d="4"]{transition-delay:.32s;}
@media (prefers-reduced-motion: reduce){
  html.anim-ok .reveal:not(.in){opacity:1;transform:none;}
  html{scroll-behavior:auto;}
}

/* ---------- Fenêtre d'application (maquette) ---------- */
.appwin{
  position:relative;border-radius:22px;overflow:hidden;
  background:linear-gradient(162deg,#0c1226 0%,#070b18 100%);
  border:1px solid rgba(255,255,255,.09);
  box-shadow:0 45px 95px -45px rgba(4,8,30,.7), 0 0 0 1px rgba(255,255,255,.02) inset;
  padding:24px;min-height:430px;
  --kpi:var(--accent);
}
.appwin::after{content:"";position:absolute;inset:0;pointer-events:none;border-radius:inherit;
  background:radial-gradient(120% 70% at 80% -10%, rgba(var(--accent-rgb),.10), transparent 55%);}
.appwin__bar{display:flex;align-items:center;gap:13px;margin-bottom:26px;}
.appwin__dots{display:flex;gap:7px;}
.appwin__dots i{width:11px;height:11px;border-radius:50%;display:block;}
.appwin__dots i:nth-child(1){background:#ff5f57;}
.appwin__dots i:nth-child(2){background:#febc2e;}
.appwin__dots i:nth-child(3){background:#28c840;}
.appwin__url{font-family:ui-monospace,'SFMono-Regular',Menlo,monospace;font-size:13px;color:rgba(255,255,255,.42);letter-spacing:.01em;}
.appwin__glyph{font-size:62px;line-height:1;margin:4px 0 26px;filter:drop-shadow(0 10px 22px rgba(0,0,0,.45));}
.appwin__bars{display:flex;flex-direction:column;gap:12px;}
.appwin__bars span{height:12px;border-radius:7px;background:rgba(255,255,255,.07);width:100%;}
.appwin__bars span.lead{background:var(--kpi);width:34%;box-shadow:0 0 18px -2px var(--kpi);}
.appwin__kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:26px 0;}
.appwin__kpi{background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.07);border-radius:15px;padding:18px 16px;}
.appwin__kpi .u{width:38px;height:5px;border-radius:3px;background:var(--kpi);margin-bottom:16px;opacity:.9;}
.appwin__kpi .n{font-size:clamp(26px,3vw,34px);font-weight:800;color:var(--kpi);letter-spacing:-.02em;line-height:1;}
@media (prefers-reduced-motion: no-preference){
  html.anim-ok .appwin{animation:winFloat 7s var(--ease) infinite;}
}
@keyframes winFloat{0%,100%{transform:translateY(0);}50%{transform:translateY(-10px);}}

/* ---------- Solutions : onglets + panneaux ---------- */
.sol-tabs{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin-bottom:clamp(40px,5vw,58px);}
.sol-tab{
  display:inline-flex;align-items:center;gap:9px;padding:13px 22px;border-radius:999px;
  font-family:inherit;font-weight:600;font-size:15px;color:var(--ink);cursor:pointer;
  background:var(--glass);border:1px solid var(--line);box-shadow:var(--card-shadow);
  transition:transform .25s var(--ease), border-color .25s, background .25s, color .25s, box-shadow .25s;
}
.sol-tab .em{font-size:18px;line-height:1;}
.sol-tab:hover{transform:translateY(-2px);border-color:rgba(var(--accent-rgb),.45);}
.sol-tab.active{background:var(--navy);color:#fff;border-color:rgba(var(--accent-rgb),.65);box-shadow:0 0 0 4px rgba(var(--accent-rgb),.18);}
html.theme-dark .sol-tab.active{background:#0b0b34;}
@media (max-width:640px){
  .sol-tabs{flex-wrap:nowrap;overflow-x:auto;justify-content:flex-start;padding-bottom:8px;-webkit-overflow-scrolling:touch;scrollbar-width:none;}
  .sol-tabs::-webkit-scrollbar{display:none;}
  .sol-tab{flex:0 0 auto;}
}
.sol-panel{position:relative;}
.sol-pane{display:none;}
.sol-pane.active{display:block;}
html.anim-ok .sol-pane.active{animation:solFade .55s var(--ease);}
@keyframes solFade{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:none;}}
.sol-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(34px,5vw,72px);align-items:center;}
@media (max-width:920px){.sol-grid{grid-template-columns:1fr;gap:40px;}}
.sol-badge{display:inline-block;padding:7px 17px;border-radius:999px;font-size:13px;font-weight:700;color:#08111e;margin-bottom:22px;letter-spacing:.01em;}
.sol-name{font-size:clamp(34px,4.6vw,52px);font-weight:800;letter-spacing:-.025em;margin:0;line-height:1;}
.sol-tagline{font-style:italic;color:var(--accent-ink);font-size:clamp(18px,2vw,23px);font-weight:500;margin:18px 0 0;text-wrap:balance;}
.sol-desc{margin:18px 0 0;max-width:480px;}
.sol-feats{list-style:none;margin:26px 0 0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:14px 24px;}
@media (max-width:520px){.sol-feats{grid-template-columns:1fr;}}
.sol-feats li{display:flex;align-items:flex-start;gap:10px;font-size:15px;color:var(--ink-80);}
.sol-feats svg{flex:0 0 auto;width:18px;height:18px;margin-top:1px;color:var(--accent-ink);}
.sol-cta{display:flex;flex-wrap:wrap;gap:14px;margin-top:32px;}

/* ---------- Services : sections ---------- */
.svc{position:relative;}
.svc + .svc{margin-top:clamp(64px,9vw,120px);}
.svc__grid{display:grid;grid-template-columns:1.02fr .98fr;gap:clamp(36px,6vw,80px);align-items:center;}
.svc__grid.rev .svc__copy{order:2;}
@media (max-width:920px){.svc__grid,.svc__grid.rev{grid-template-columns:1fr;gap:40px;}.svc__grid.rev .svc__copy{order:0;}}
.svc__num{font-size:14px;font-weight:700;letter-spacing:.26em;color:var(--accent-ink);text-transform:uppercase;margin-bottom:14px;display:block;}
.svc__chips{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px;}
.svc__chip{display:inline-flex;align-items:center;gap:8px;padding:10px 16px;border-radius:999px;font-size:14px;font-weight:500;
  background:var(--glass);border:1px solid var(--line);box-shadow:var(--card-shadow);color:var(--ink);}
.svc__chip::before{content:"";width:6px;height:6px;border-radius:2px;background:linear-gradient(135deg,var(--accent),var(--accent-2));flex:0 0 auto;}

/* ---------- Tweaks mount ---------- */
#root-tweaks{position:fixed;inset:0;pointer-events:none;z-index:90;}
#root-tweaks > *{pointer-events:auto;}
