/* Typographie de la marque : Alliance No.2 (fichiers dans assets/fonts) */
@font-face{font-family:'Alliance No.2';src:url(assets/fonts/AllianceNo2-Light.woff2) format('woff2');font-weight:300;font-style:normal;font-display:swap}
@font-face{font-family:'Alliance No.2';src:url(assets/fonts/AllianceNo2-Regular.woff2) format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Alliance No.2';src:url(assets/fonts/AllianceNo2-RegularItalic.woff2) format('woff2');font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:'Alliance No.2';src:url(assets/fonts/AllianceNo2-Medium.woff2) format('woff2');font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:'Alliance No.2';src:url(assets/fonts/AllianceNo2-MediumItalic.woff2) format('woff2');font-weight:500;font-style:italic;font-display:swap}
@font-face{font-family:'Alliance No.2';src:url(assets/fonts/AllianceNo2-SemiBold.woff2) format('woff2');font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:'Alliance No.2';src:url(assets/fonts/AllianceNo2-Bold.woff2) format('woff2');font-weight:700;font-style:normal;font-display:swap}
  :root{
    --bg:#ffffff;
    --bg-soft:#f7f7f7;
    --bg-dark:#0d0d0d;
    --ink:#0d0d0d;
    --ink-2:#5c5c5c;
    --ink-3:#8a8a8a;
    --line:#e6e6e6;
    --line-2:#d4d4d4;
    --accent:#0d0d0d;
    --nav-bg:rgba(255,255,255,0.88);
    --card-bg:#ffffff;
    --logo-invert:0;
  }
  html[data-theme="dark"]{
    --bg:#0a0a0a;
    --bg-soft:#141414;
    --bg-dark:#0d0d0d;
    --ink:#f5f5f5;
    --ink-2:#a0a0a0;
    --ink-3:#6a6a6a;
    --line:#222222;
    --line-2:#2e2e2e;
    --accent:#ffffff;
    --nav-bg:rgba(10,10,10,0.88);
    --card-bg:#141414;
    --logo-invert:1;
  }
  html[data-theme="dark"] .brand img{filter:invert(1)}
  html[data-theme="dark"] .btn-dark{background:#fff;color:#0a0a0a}
  html[data-theme="dark"] .btn-dark:hover{background:#ddd}
  html[data-theme="dark"] .btn-light{background:#fff;color:#0a0a0a}
  html[data-theme="dark"] .btn-outline{border-color:var(--line-2);color:var(--ink)}
  html[data-theme="dark"] .btn-outline:hover{border-color:var(--ink)}
  html[data-theme="dark"] .stat{background:#0a0a0a}
  html[data-theme="dark"] .cap{background:var(--bg)}
  html[data-theme="dark"] .cap:hover{background:var(--bg-soft)}
  html[data-theme="dark"] .feat-card{background:var(--bg-soft);border-color:var(--line)}
  html[data-theme="dark"] .feat-card.dark{background:#0a0a0a}
  html[data-theme="dark"] .dropdown{background:#161616;border-color:var(--line-2);box-shadow:0 20px 60px -20px rgba(0,0,0,0.6)}
  html[data-theme="dark"] .drop-item:hover{background:rgba(255,255,255,0.05)}
  html[data-theme="dark"] .cta-block{background:var(--bg-soft);border:1px solid var(--line)}
  *{box-sizing:border-box;margin:0;padding:0}
  html,body{background:var(--bg);color:var(--ink);font-family:'Alliance No.2','Inter',system-ui,-apple-system,'Helvetica Neue',Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;font-feature-settings:"ss01";overflow-x:clip}
  a{color:inherit;text-decoration:none}
  .container{max-width:1320px;margin:0 auto;padding:0 24px}
  button{font:inherit}

  /* Top nav */
  nav.top{position:sticky;top:0;z-index:80;background:var(--nav-bg);backdrop-filter:saturate(180%) blur(14px);-webkit-backdrop-filter:saturate(180%) blur(14px);border-bottom:1px solid transparent;transition:border-color .2s,background .2s}
  nav.top.scrolled{border-bottom-color:var(--line)}
  .nav-in{display:flex;align-items:center;justify-content:space-between;height:64px;padding:0 24px;max-width:1320px;margin:0 auto}
  .brand{display:inline-flex;align-items:center;font-weight:500;letter-spacing:-0.01em;font-size:15px}
  .brand img{height:64px;width:auto;display:block}
  .foot-brand .brand img{height:80px}
  .nav-center{display:flex;gap:4px;font-size:14px;color:var(--ink);font-weight:450}
  .nav-item{position:relative}
  .nav-item > a, .nav-item > .trigger{display:inline-flex;align-items:center;gap:4px;padding:8px 14px;border-radius:999px;cursor:pointer;transition:background .2s}
  .nav-item > a:hover, .nav-item > .trigger:hover{background:var(--bg-soft)}
  .nav-item .caret{font-size:9px;opacity:.6;transition:transform .2s}
  .nav-item:hover .caret{transform:rotate(180deg)}
  .dropdown{position:absolute;top:calc(100% + 6px);left:50%;transform:translateX(-50%) translateY(-4px);min-width:340px;padding:8px;background:#fff;border:1px solid var(--line);border-radius:16px;opacity:0;pointer-events:none;transition:opacity .18s,transform .18s;box-shadow:0 20px 60px -20px rgba(0,0,0,0.12),0 4px 12px -4px rgba(0,0,0,0.06);z-index:90}
  .dropdown.wide{min-width:620px;padding:20px;display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .dropdown.wide .drop-col-title{grid-column:1/-1;font-size:11px;letter-spacing:0.18em;text-transform:uppercase;color:var(--ink-3);padding:6px 14px 4px}
  .dropdown.wide .drop-col-title:not(:first-child){margin-top:8px;border-top:1px solid var(--line);padding-top:16px}
  .nav-item:hover .dropdown{opacity:1;pointer-events:auto;transform:translateX(-50%) translateY(0)}
  .drop-item{display:flex;gap:14px;padding:12px 14px;border-radius:10px;transition:background .15s;align-items:flex-start}
  .drop-item:hover{background:var(--bg-soft)}
  .drop-icon{width:38px;height:38px;border-radius:10px;background:linear-gradient(135deg,#111,#333);display:grid;place-items:center;color:#fff;font-weight:600;font-size:14px;flex-shrink:0;letter-spacing:-0.02em}
  .drop-title{font-size:14px;font-weight:500}
  .drop-desc{font-size:12.5px;color:var(--ink-2);margin-top:3px;line-height:1.4}
  .nav-right{display:flex;gap:8px;align-items:center}
  .btn{display:inline-flex;align-items:center;gap:6px;padding:9px 18px;border-radius:999px;font-size:14px;font-weight:500;transition:all .2s;cursor:pointer;border:1px solid transparent;font-family:inherit;white-space:nowrap}
  .btn-dark{background:var(--ink);color:#fff}
  .btn-dark:hover{background:#272727}
  .btn-outline{background:transparent;color:var(--ink);border-color:var(--line-2)}
  .btn-outline:hover{background:var(--bg-soft);border-color:var(--ink)}
  .btn-ghost{background:transparent;color:var(--ink);padding:8px 14px}
  .btn-ghost:hover{background:var(--bg-soft)}
  .theme-btn{width:36px;height:36px;border-radius:999px;border:1px solid var(--line-2);background:transparent;color:var(--ink);display:grid;place-items:center;cursor:pointer;transition:background .2s,border-color .2s;font-family:inherit}
  .theme-btn:hover{background:var(--bg-soft);border-color:var(--ink)}
  .theme-btn .moon{display:none}
  html[data-theme="dark"] .theme-btn .sun{display:none}
  html[data-theme="dark"] .theme-btn .moon{display:block}

  /* Hero */
  .hero{padding:100px 0 60px}
  .hero-grid{display:grid;grid-template-columns:1fr;gap:56px;align-items:end}
  .hero-eyebrow{font-size:14px;color:var(--ink-2);margin-bottom:20px;display:inline-flex;align-items:center;gap:10px}
  .hero-eyebrow::before{content:"";width:20px;height:1px;background:var(--ink-2)}
  h1.display{font-size:clamp(44px,6.2vw,92px);line-height:1.02;letter-spacing:-0.04em;font-weight:500;max-width:18ch;text-wrap:balance}
  h1.display em{font-style:normal;color:var(--ink-3)}
  .hero-sub{margin-top:28px;font-size:clamp(18px,1.6vw,22px);color:var(--ink-2);line-height:1.4;max-width:40ch;font-weight:400}
  .hero-cta{margin-top:40px;display:flex;gap:10px;flex-wrap:wrap}

  /* Featured card (like OpenAI hero card) */
  .featured{margin-top:72px;display:grid;grid-template-columns:1.3fr 1fr;gap:28px}
  .feat-main{position:relative;background:var(--bg-dark);border-radius:24px;overflow:hidden;min-height:520px;color:#fff;padding:40px}
  .feat-main #particles{position:absolute;inset:0;width:100%;height:100%;z-index:1}
  .feat-main .feat-content{position:relative;z-index:2;display:flex;flex-direction:column;justify-content:space-between;height:100%;min-height:440px;pointer-events:none}
  .feat-main .feat-content > *{pointer-events:auto}
  .feat-tag{display:inline-flex;align-items:center;gap:8px;padding:5px 12px;border:1px solid rgba(255,255,255,0.25);border-radius:999px;font-size:12px;color:rgba(255,255,255,0.8);background:rgba(255,255,255,0.04);width:fit-content}
  .feat-tag .dot{width:5px;height:5px;background:#22c55e;border-radius:50%;box-shadow:0 0 10px #22c55e}
  .feat-headline{font-size:clamp(26px,2.8vw,40px);letter-spacing:-0.03em;line-height:1.05;font-weight:500;max-width:16ch}
  .feat-meta{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;flex-wrap:wrap}
  .feat-meta small{font-size:12px;color:rgba(255,255,255,0.6);letter-spacing:0.1em;text-transform:uppercase}
  .feat-side{display:grid;grid-template-rows:1fr 1fr;gap:28px}
  .feat-card{position:relative;border-radius:24px;overflow:hidden;padding:32px;background:var(--bg-soft);border:1px solid var(--line);display:flex;flex-direction:column;justify-content:space-between;min-height:246px;transition:transform .3s,box-shadow .3s;cursor:pointer}
  .feat-card:hover{transform:translateY(-3px);box-shadow:0 18px 40px -20px rgba(0,0,0,0.12)}
  .feat-card small{font-size:11px;letter-spacing:0.16em;text-transform:uppercase;color:var(--ink-3)}
  .feat-card h3{font-size:22px;letter-spacing:-0.02em;font-weight:450;line-height:1.15;max-width:18ch;margin-top:12px}
  .feat-card .read{font-size:13px;color:var(--ink);font-weight:500;display:inline-flex;align-items:center;gap:6px;margin-top:auto}
  .feat-card .read::after{content:"→";transition:transform .2s}
  .feat-card:hover .read::after{transform:translateX(3px)}
  .feat-card.dark{background:#161616;color:#fff;border-color:#222}
  .feat-card.dark small{color:rgba(255,255,255,0.6)}
  .feat-card.dark .read{color:#fff}

  /* Section base */
  section{padding:96px 0}
  .sec-head{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;margin-bottom:44px;flex-wrap:wrap}
  .sec-head h2{font-size:clamp(32px,4.2vw,52px);letter-spacing:-0.03em;font-weight:500;line-height:1.02;max-width:20ch}
  .sec-head .sec-nav{display:flex;gap:10px;font-size:14px}

  /* Editorial grid (like OpenAI stories) */
  .grid-stories{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
  .story{display:flex;flex-direction:column;gap:16px;cursor:pointer;transition:transform .3s}
  .story:hover{transform:translateY(-4px)}
  .story-img{aspect-ratio:4/3;border-radius:16px;overflow:hidden;background:var(--bg-soft);position:relative;border:1px solid var(--line)}
  .story-img::before{content:"";position:absolute;inset:0;background-position:center;background-size:cover}
  .story-img.g1::before{background:radial-gradient(800px 400px at 20% 20%,#ffd1a8,transparent 60%),radial-gradient(700px 500px at 80% 80%,#c4b9ff,transparent 60%),linear-gradient(135deg,#f0d6ff,#ffe9d1)}
  .story-img.g2::before{background:radial-gradient(600px 400px at 70% 30%,#b3e5ff,transparent 60%),linear-gradient(135deg,#cfe8ff,#e8f5ff)}
  .story-img.g3::before{background:radial-gradient(600px 400px at 30% 70%,#d4ffb3,transparent 60%),linear-gradient(135deg,#e8ffdb,#fff8cc)}
  .story-img.g4::before{background:radial-gradient(500px 400px at 50% 50%,#ffc6c6,transparent 60%),linear-gradient(135deg,#ffe3e3,#ffd1e6)}
  .story-img.g5::before{background:radial-gradient(600px 400px at 30% 30%,#c9c9c9,transparent 60%),linear-gradient(135deg,#222,#4a4a4a);}
  .story-img.g6::before{background:radial-gradient(600px 400px at 70% 70%,#a0a0ff,transparent 60%),linear-gradient(135deg,#ddd9ff,#e8e8ff)}
  .story .meta{font-size:12px;color:var(--ink-3);letter-spacing:0.12em;text-transform:uppercase}
  .story h3{font-size:20px;letter-spacing:-0.015em;font-weight:500;line-height:1.2}
  .story p{font-size:14px;color:var(--ink-2);line-height:1.5}

  /* Business strip */
  .biz{background:var(--bg-soft);border-radius:28px;padding:72px 56px;display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
  .biz h2{font-size:clamp(32px,4vw,52px);letter-spacing:-0.03em;font-weight:450;line-height:1.05;max-width:16ch}
  .biz p{color:var(--ink-2);font-size:17px;line-height:1.5;margin-top:18px;max-width:40ch}
  .biz-stats{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:36px}
  .stat{padding:24px;border-radius:16px;background:#fff;border:1px solid var(--line)}
  .stat-big{font-size:44px;letter-spacing:-0.03em;font-weight:450;line-height:1}
  .stat-label{color:var(--ink-2);font-size:14px;margin-top:6px}
  .biz-visual{aspect-ratio:1/1;border-radius:20px;background:radial-gradient(600px 500px at 30% 30%,#ffeab0,transparent 60%),radial-gradient(500px 400px at 80% 80%,#c4b9ff,transparent 60%),linear-gradient(135deg,#ffe0f0,#d9e9ff);border:1px solid var(--line);position:relative;overflow:hidden}

  /* Platform capabilities row */
  .caps{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:20px;overflow:hidden}
  .cap{background:#fff;padding:32px;min-height:220px;display:flex;flex-direction:column;gap:14px;transition:background .2s}
  .cap:hover{background:var(--bg-soft)}
  .cap .icon{width:34px;height:34px;border-radius:10px;background:var(--bg-soft);display:grid;place-items:center;border:1px solid var(--line);font-size:15px}
  .cap h4{font-size:18px;letter-spacing:-0.015em;font-weight:500;margin-top:auto}
  .cap p{font-size:14px;color:var(--ink-2);line-height:1.5}

  /* Quote */
  .quote-block{text-align:center;max-width:560px;margin:0 auto}
  .quote{font-size:clamp(28px,3.4vw,44px);letter-spacing:-0.02em;line-height:1.2;font-weight:450}
  .quote-author{margin-top:28px;color:var(--ink-2);font-size:15px}
  .quote-author strong{color:var(--ink);font-weight:500}

  /* CTA block */
  .cta-block{background:var(--bg-dark);color:#fff;border-radius:28px;padding:88px 56px;text-align:center;position:relative;overflow:hidden}
  .cta-block h2{font-size:clamp(36px,5vw,72px);letter-spacing:-0.035em;font-weight:450;line-height:1;margin:0 auto;max-width:18ch}
  .cta-block p{color:rgba(255,255,255,0.7);max-width:48ch;margin:22px auto 36px;font-size:17px;line-height:1.5}
  .btn-light{background:#fff;color:var(--ink)}
  .btn-light:hover{background:#eee}

  /* Footer */
  footer{border-top:1px solid var(--line);padding:72px 0 32px;margin-top:80px}
  .foot-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr 1fr;gap:40px;margin-bottom:56px}
  .foot-brand{max-width:280px}
  .foot-brand p{color:var(--ink-2);font-size:14px;line-height:1.55;margin-top:16px}
  .foot-col h5{font-size:13px;font-weight:500;margin-bottom:16px}
  .foot-col a{display:block;padding:6px 0;font-size:14px;color:var(--ink-2);transition:color .15s}
  .foot-col a:hover{color:var(--ink)}
  .foot-bottom{display:flex;justify-content:space-between;align-items:center;padding-top:24px;border-top:1px solid var(--line);color:var(--ink-3);font-size:13px;flex-wrap:wrap;gap:16px}

  @media (max-width:1000px){
    .featured{grid-template-columns:1fr}
    .biz{grid-template-columns:1fr;padding:48px 32px}
    .grid-stories,.caps{grid-template-columns:repeat(2,1fr)}
    .foot-grid{grid-template-columns:repeat(3,1fr)}
    .nav-center{display:none}
  }
  @media (max-width:640px){
    .grid-stories,.caps{grid-template-columns:1fr}
    .foot-grid{grid-template-columns:repeat(2,1fr)}
    .biz-stats{grid-template-columns:1fr}
    .feat-main{padding:28px;min-height:420px}
    section{padding:64px 0}
    .hero{padding:56px 0 32px}
    .cta-block{padding:56px 28px}
  }

/* Language selector */
.lang-wrap{position:relative}
.lang-menu{position:absolute;top:calc(100% + 8px);right:0;min-width:200px;padding:6px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 20px 50px -20px rgba(0,0,0,0.18);opacity:0;pointer-events:none;transform:translateY(-4px);transition:opacity .18s,transform .18s;z-index:100}
.lang-menu.open{opacity:1;pointer-events:auto;transform:translateY(0)}
html[data-theme="dark"] .lang-menu{background:#161616;border-color:var(--line-2);box-shadow:0 20px 60px -20px rgba(0,0,0,0.6)}
.lang-menu button{display:flex;align-items:center;gap:10px;width:100%;text-align:left;padding:9px 12px;border-radius:8px;border:none;background:transparent;color:var(--ink);font:inherit;font-size:13.5px;cursor:pointer;transition:background .15s}
.lang-menu button:hover{background:var(--bg-soft)}
html[data-theme="dark"] .lang-menu button:hover{background:rgba(255,255,255,0.05)}

/* Hide Google Translate banner/frame when active */
.skiptranslate,.goog-te-banner-frame,#goog-gt-tt,.goog-tooltip,.goog-tooltip:hover{display:none!important}
body{top:0!important}
font[style]{background:transparent!important;box-shadow:none!important}

/* ============ MEGA MENU v2 ============ */
.nav-item.mega{position:static}
.nav-item.mega > .trigger{display:inline-flex;align-items:center;gap:4px;padding:8px 14px;border-radius:999px;cursor:pointer;transition:background .2s}
.nav-item.mega > .trigger:hover{background:var(--bg-soft)}
.mega-menu{position:absolute;left:50%;top:calc(100% + 2px);transform:translateX(-50%) translateY(-6px);width:min(960px,calc(100vw - 48px));padding:28px;background:#fff;border:1px solid var(--line);border-radius:20px;display:grid;grid-template-columns:1.1fr 1.1fr 1.3fr;gap:28px;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;box-shadow:0 30px 80px -30px rgba(0,0,0,0.18),0 6px 16px -6px rgba(0,0,0,0.06);z-index:100}
.mega-menu.compact{width:min(800px,calc(100vw - 48px));grid-template-columns:1fr 1fr 1.2fr}
.nav-item.mega:hover .mega-menu{opacity:1;pointer-events:auto;transform:translateX(-50%) translateY(0)}
html[data-theme="dark"] .mega-menu{background:#161616;border-color:var(--line-2);box-shadow:0 30px 80px -30px rgba(0,0,0,0.7)}

.mega-col{display:flex;flex-direction:column;gap:4px}
.col-head{font-size:11px;letter-spacing:0.18em;text-transform:uppercase;color:var(--ink-3);font-weight:500;padding:4px 10px 10px;font-family:'Alliance No.2',system-ui,sans-serif}

.mega-item{display:flex;gap:12px;padding:10px 12px;border-radius:10px;transition:background .15s;align-items:flex-start;color:var(--ink)}
.mega-item:hover{background:var(--bg-soft)}
html[data-theme="dark"] .mega-item:hover{background:rgba(255,255,255,0.05)}
.mi-icon{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;color:#fff;font-weight:600;font-size:14px;flex-shrink:0;letter-spacing:-0.02em}
.mi-body{display:flex;flex-direction:column;gap:3px;min-width:0}
.mi-title{font-size:14px;font-weight:500;letter-spacing:-0.01em;display:inline-flex;align-items:center;gap:8px}
.mi-desc{font-size:12.5px;color:var(--ink-2);line-height:1.45}
.new-pill{font-size:10px;padding:2px 7px;border-radius:999px;background:#22c55e;color:#052e13;font-weight:600;letter-spacing:0.04em;text-transform:uppercase}
.dot-green{width:6px;height:6px;border-radius:50%;background:#22c55e;box-shadow:0 0 8px #22c55e}

.mega-sub{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:8px;color:var(--ink-2);font-size:13.5px;transition:all .15s}
.mega-sub:hover{background:var(--bg-soft);color:var(--ink);padding-left:16px}
html[data-theme="dark"] .mega-sub:hover{background:rgba(255,255,255,0.05)}
.mega-sub span{width:22px;text-align:center;color:var(--ink-3)}

.mega-feat{padding:24px;border-radius:16px;display:flex;flex-direction:column;gap:10px;justify-content:space-between;min-height:200px;color:#0d0d0d;overflow:hidden;position:relative}
.mega-feat small{font-size:11px;letter-spacing:0.2em;text-transform:uppercase;color:rgba(0,0,0,0.55);font-weight:500}
.mega-feat h4{font-size:20px;letter-spacing:-0.02em;line-height:1.15;font-weight:500}
.mega-feat p{font-size:13px;color:rgba(0,0,0,0.7);line-height:1.45}
.btn-arrow{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:500;color:#0d0d0d;margin-top:auto;width:fit-content;padding:8px 14px;background:rgba(0,0,0,0.08);border-radius:999px;transition:all .15s}
.btn-arrow:hover{background:#0d0d0d;color:#fff}

/* Gradient backgrounds */
.grad-1{background:linear-gradient(135deg,#0d0d0d,#3a3a3a)}
.grad-2{background:linear-gradient(135deg,#2ec07c,#0a6e4a)}
.grad-3{background:linear-gradient(135deg,#5aa0ff,#1e3a8a)}
.grad-4{background:linear-gradient(135deg,#ffb070,#ff6a6a)}
.grad-5{background:linear-gradient(135deg,#ffd86b,#ff8e3a)}
.grad-6{background:linear-gradient(135deg,#d4b9ff,#7c5cff)}
.grad-7{background:linear-gradient(135deg,#b3e5ff,#5aa0ff)}
.grad-8{background:linear-gradient(135deg,#ffd1a8,#ff8e3a)}
.grad-9{background:linear-gradient(135deg,#c4b9ff,#5aa0ff)}
.grad-0{background:linear-gradient(135deg,#0d0d0d,#4a4a4a)}
.grad-hero{background:radial-gradient(400px 300px at 80% 20%,#c4b9ff,transparent 60%),radial-gradient(300px 300px at 20% 80%,#ffd1a8,transparent 60%),linear-gradient(135deg,#eee7ff,#ffe9d1)}
.grad-warm{background:radial-gradient(500px 300px at 20% 20%,#ffc6c6,transparent 60%),linear-gradient(135deg,#ffe3e3,#ffd1e6)}
.grad-cool{background:radial-gradient(400px 300px at 80% 80%,#b3e5ff,transparent 60%),linear-gradient(135deg,#cfe8ff,#eee7ff)}

/* Search button */
.nav-search{display:inline-flex;align-items:center;gap:8px;padding:7px 12px;border:1px solid var(--line-2);border-radius:8px;background:var(--bg-soft);color:var(--ink-2);font-size:13px;cursor:pointer;transition:all .2s;font-family:inherit}
.nav-search:hover{border-color:var(--ink);color:var(--ink)}
.nav-search kbd{font-family:'Alliance No.2',system-ui,sans-serif;font-size:11px;padding:1px 5px;border:1px solid var(--line);border-radius:4px;color:var(--ink-3);background:var(--bg)}
html[data-theme="dark"] .nav-search kbd{background:rgba(255,255,255,0.03)}

@media (max-width:1100px){.nav-search{display:none}}
@media (max-width:1000px){.mega-menu{display:none!important}}

/* ============ AI STARTUP NAV v3 ============ */
/* Announcement bar */
.announce{position:relative;background:linear-gradient(90deg,#0d0d0d,#1a1a1a,#0d0d0d);color:#fff;font-size:13px;padding:0;z-index:90}
html[data-theme="dark"] .announce{background:linear-gradient(90deg,#1a1a1a,#2a2a2a,#1a1a1a);border-bottom:1px solid var(--line)}
.announce-in{display:flex;align-items:center;justify-content:center;gap:10px;padding:9px 48px 9px 24px;min-height:36px}
.announce-in:hover .announce-cta{transform:translateX(3px)}
.announce-pill{display:inline-flex;align-items:center;padding:2px 9px;background:#22c55e;color:#052e13;font-size:10px;font-weight:700;letter-spacing:0.08em;text-transform:uppercase;border-radius:999px}
.announce-text{color:rgba(255,255,255,0.85)}
.announce-text strong{color:#fff;font-weight:500}
.announce-cta{color:#fff;font-weight:500;transition:transform .2s;font-size:13px}
.announce .announce-close{position:absolute;right:12px;top:50%;transform:translateY(-50%);width:36px!important;height:36px!important;border-radius:50%;background:rgba(255,255,255,0.08);color:#fff;border:none;cursor:pointer;font-size:18px;line-height:1;transition:background .2s;display:grid;place-items:center}
.announce-close:hover{background:rgba(255,255,255,0.15)}
@media (max-width:720px){.announce-in{font-size:12px;flex-wrap:wrap}.announce-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:60vw}}

/* Status indicator */
.status-pill{display:none!important;align-items:center;align-items:center;gap:7px;padding:6px 11px;border-radius:999px;background:var(--bg-soft);border:1px solid var(--line);font-size:12px;color:var(--ink-2);transition:all .2s;font-family:'Alliance No.2',system-ui,sans-serif;letter-spacing:-0.01em}
.status-pill:hover{border-color:var(--ink);color:var(--ink)}
.status-dot{width:7px;height:7px;border-radius:50%;background:#22c55e;position:relative}
.status-dot::after{content:"";position:absolute;inset:-2px;border-radius:50%;background:#22c55e;opacity:0.35;animation:statusPulse 2s infinite}
@keyframes statusPulse{0%{transform:scale(1);opacity:0.35}100%{transform:scale(2.4);opacity:0}}
@media (max-width:1100px){.status-pill{display:none}}

/* Version pill */
.ver-pill{font-family:'Alliance No.2',system-ui,sans-serif;font-size:10px;padding:2px 6px;border-radius:5px;background:var(--bg-soft);border:1px solid var(--line);color:var(--ink-2);font-weight:500;letter-spacing:0;text-transform:none}
html[data-theme="dark"] .ver-pill{background:rgba(255,255,255,0.05)}

/* Mono utility */
.mono{font-family:'Alliance No.2',system-ui,sans-serif;font-size:12px;letter-spacing:-0.01em}

/* New gradient extras for dev panel */
.grad-a{background:linear-gradient(135deg,#0d0d0d,#2a2a2a);font-family:'Alliance No.2',system-ui,sans-serif;font-size:13px}
.grad-b{background:linear-gradient(135deg,#5aa0ff,#2563eb);font-family:'Alliance No.2',system-ui,sans-serif;font-size:11px;letter-spacing:0.02em}
.grad-c{background:linear-gradient(135deg,#2ec07c,#0a6e4a)}

/* Code mini block in developers dropdown */
.grad-code{background:#0d0d0d;color:#e5e5e5;border:1px solid #222}
.grad-code small{color:rgba(255,255,255,0.5)}
.grad-code h4{color:#fff}
.grad-code p{color:rgba(255,255,255,0.6)}
.grad-code .btn-arrow{background:rgba(255,255,255,0.08);color:#fff}
.grad-code .btn-arrow:hover{background:#fff;color:#0d0d0d}
.code-mini{font-family:'Alliance No.2',system-ui,sans-serif;font-size:12px;line-height:1.8;padding:14px 16px;background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.08);border-radius:8px;margin:6px 0}
.code-mini .c-k{color:#888}
.code-mini .c-v{color:#c4b9ff}

/* Nav center spacing tweak for AI startup feel */
.nav-center{display:flex;gap:2px;font-size:14px;color:var(--ink);font-weight:450;align-items:center}
.nav-item > a, .nav-item > .trigger{font-weight:450}

/* Language button (enhanced) */
.lang-btn{display:inline-flex;align-items:center;gap:7px;padding:6px 11px;border:1px solid var(--line-2);border-radius:999px;background:var(--bg-soft);color:var(--ink);cursor:pointer;font-family:inherit;transition:all .2s}
.lang-btn:hover{border-color:var(--ink);background:var(--bg)}
.lang-flag{font-size:15px;line-height:1}
.lang-code{font-family:'Alliance No.2',system-ui,sans-serif;font-size:12px;font-weight:500;letter-spacing:0.04em}
.lang-btn svg{opacity:0.5;transition:transform .2s}
.lang-wrap:hover .lang-btn svg,.lang-menu.open + .lang-btn svg{transform:rotate(180deg)}

/* Make lang button more discoverable */
.lang-btn{order:0;position:relative;background:var(--bg);border-color:var(--ink-2)}
.lang-btn::before{content:"";position:absolute;top:-2px;right:-2px;width:8px;height:8px;background:#22c55e;border:2px solid var(--bg);border-radius:50%;pointer-events:none}
.lang-btn:hover{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.lang-btn:hover .lang-flag{filter:none}

/* ============ NAV v4 — polish layer ============ */
/* Active nav item */
.nav-item.active > a, .nav-item.active > .trigger{background:var(--bg-soft);color:var(--ink)}
.nav-item.active > a::after{content:"";position:absolute;left:14px;right:14px;bottom:2px;height:2px;background:var(--ink);border-radius:2px}

/* Smoother dropdown open */
.mega-menu{transform:translateX(-50%) translateY(-6px) scale(0.98);transition:opacity .22s cubic-bezier(0.16,1,0.3,1),transform .22s cubic-bezier(0.16,1,0.3,1)}
.nav-item.mega:hover .mega-menu,.nav-item.mega:focus-within .mega-menu{transform:translateX(-50%) translateY(0) scale(1)}

/* Dropdown CTA footer */
.mega-foot{grid-column:1/-1;margin-top:8px;padding:16px 12px 4px;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:20px;font-size:13px;color:var(--ink-2)}
.mega-foot .mf-text{flex:1}
.mega-foot .mf-text strong{color:var(--ink);font-weight:500}
.mega-foot-link{display:inline-flex;align-items:center;gap:6px;font-weight:500;color:var(--ink);padding:8px 14px;border:1px solid var(--line-2);border-radius:999px;transition:all .2s;white-space:nowrap}
.mega-foot-link:hover{background:var(--ink);color:var(--bg);border-color:var(--ink)}

/* Better trigger hover */
.nav-item > .trigger:hover,.nav-item.mega:hover > .trigger{background:var(--bg-soft)}
.nav-item.mega:hover > .trigger{color:var(--ink)}

/* ============ Mobile menu ============ */
.mobile-toggle{display:none;width:40px;height:40px;border:1px solid var(--line-2);border-radius:10px;background:var(--bg-soft);cursor:pointer;padding:0;position:relative;color:var(--ink)}
.mobile-toggle span{display:block;position:absolute;left:10px;right:10px;height:2px;background:currentColor;border-radius:2px;transition:transform .25s,opacity .2s}
.mobile-toggle span:nth-child(1){top:13px}
.mobile-toggle span:nth-child(2){top:19px}
.mobile-toggle span:nth-child(3){top:25px}
body.mobile-open .mobile-toggle span:nth-child(1){transform:translateY(6px) rotate(45deg)}
body.mobile-open .mobile-toggle span:nth-child(2){opacity:0}
body.mobile-open .mobile-toggle span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}

.mobile-panel{position:fixed;inset:0;top:64px;background:var(--bg);z-index:70;overflow-y:auto;padding:24px;transform:translateX(100%);transition:transform .3s cubic-bezier(0.16,1,0.3,1);visibility:hidden}
body.mobile-open .mobile-panel{transform:translateX(0);visibility:visible}
.mobile-panel details{border-bottom:1px solid var(--line);padding:18px 0}
.mobile-panel summary{font-size:18px;font-weight:500;letter-spacing:-0.015em;list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center}
.mobile-panel summary::after{content:"+";font-size:22px;color:var(--ink-3);transition:transform .2s;font-weight:400}
.mobile-panel details[open] summary::after{transform:rotate(45deg)}
.mobile-panel details a{display:block;padding:10px 0 10px 16px;font-size:15px;color:var(--ink-2);transition:color .15s}
.mobile-panel details a:hover{color:var(--ink)}
.mobile-panel details > div{margin-top:14px}
.mobile-panel .mob-cta{display:flex;flex-direction:column;gap:10px;margin-top:32px}
.mobile-panel .mob-cta .btn{padding:14px 20px;justify-content:center;font-size:15px}

@media (max-width:1000px){
  .mobile-toggle{display:block}
  .nav-center{display:none}
  .nav-right .btn-ghost,.nav-right .status-pill{display:none}
  .nav-right .btn-dark{padding:9px 14px;font-size:13px}
}
@media (min-width:1001px){
  .mobile-panel{display:none}
}

/* Hide pricing + security links on medium screens (keep dropdowns) */
@media (max-width:1180px){
  .nav-item.direct-hideable{display:none}
}

/* ================================================================
   APPLE / GLASSMORPHISM LAYER
   Translucent surfaces, SF Pro, larger radii, ambient gradient background.
   ================================================================ */

/* Typography — Inter as primary (loaded from Google Fonts in <head>) */
html,body{
  font-family:'Alliance No.2','Inter','Inter var',-apple-system,BlinkMacSystemFont,'Helvetica Neue',sans-serif;
  letter-spacing:-0.015em;
  font-feature-settings:"ss01","cv11";
}

/* Ambient gradient mesh background */
body::before{
  content:"";
  position:fixed;inset:0;z-index:-2;pointer-events:none;
  background:
    radial-gradient(1000px 700px at 80% -5%,rgba(180,140,255,0.18),transparent 55%),
    radial-gradient(900px 700px at 5% 20%,rgba(90,160,255,0.15),transparent 55%),
    radial-gradient(800px 600px at 80% 90%,rgba(255,180,200,0.12),transparent 55%),
    radial-gradient(700px 500px at 20% 90%,rgba(255,220,150,0.10),transparent 55%);
}
html[data-theme="dark"] body::before{
  background:
    radial-gradient(1000px 700px at 80% -5%,rgba(120,80,255,0.28),transparent 55%),
    radial-gradient(900px 700px at 5% 20%,rgba(40,120,255,0.25),transparent 55%),
    radial-gradient(800px 600px at 80% 90%,rgba(255,80,150,0.18),transparent 55%),
    radial-gradient(700px 500px at 20% 90%,rgba(255,200,100,0.12),transparent 55%);
}
/* Noise / grain overlay for Apple-like depth */
body::after{
  content:"";
  position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:0.5;
  background-image:
    linear-gradient(rgba(255,255,255,0.015) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,0.015) 1px,transparent 1px);
  background-size:64px 64px;
  mask-image:radial-gradient(ellipse at center,black 30%,transparent 80%);
}

/* Glass nav */
nav.top{
  background:rgba(255,255,255,0.62)!important;
  backdrop-filter:saturate(200%) blur(30px)!important;
  -webkit-backdrop-filter:saturate(200%) blur(30px)!important;
  border-bottom:0.5px solid rgba(0,0,0,0.06)!important;
}
html[data-theme="dark"] nav.top{
  background:rgba(10,10,10,0.55)!important;
  border-bottom-color:rgba(255,255,255,0.06)!important;
}

/* Glass announcement */
.announce{background:linear-gradient(90deg,rgba(13,13,13,0.9),rgba(26,26,26,0.9));backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}

/* Bigger radii on everything */
.btn{border-radius:14px;padding:11px 20px;font-weight:500}
.btn-dark{background:var(--ink);box-shadow:0 6px 20px -6px rgba(0,0,0,0.25),inset 0 1px 0 rgba(255,255,255,0.08)}
.btn-outline{
  background:rgba(255,255,255,0.55);
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  border:0.5px solid rgba(0,0,0,0.12);
  box-shadow:0 2px 8px -2px rgba(0,0,0,0.04),inset 0 1px 0 rgba(255,255,255,0.6);
}
html[data-theme="dark"] .btn-outline{
  background:rgba(255,255,255,0.06);
  border-color:rgba(255,255,255,0.12);
  box-shadow:0 2px 8px -2px rgba(0,0,0,0.4),inset 0 1px 0 rgba(255,255,255,0.06);
}
.btn-ghost{border-radius:12px}

/* Mega menu glass */
.mega-menu{
  background:rgba(255,255,255,0.75)!important;
  backdrop-filter:saturate(200%) blur(40px)!important;
  -webkit-backdrop-filter:saturate(200%) blur(40px)!important;
  border:0.5px solid rgba(0,0,0,0.08)!important;
  border-radius:24px!important;
  box-shadow:0 30px 80px -20px rgba(0,0,0,0.18),0 10px 30px -10px rgba(0,0,0,0.08),inset 0 1px 0 rgba(255,255,255,0.7)!important;
}
html[data-theme="dark"] .mega-menu{
  background:rgba(22,22,22,0.75)!important;
  border-color:rgba(255,255,255,0.08)!important;
  box-shadow:0 30px 80px -20px rgba(0,0,0,0.7),0 10px 30px -10px rgba(0,0,0,0.4),inset 0 1px 0 rgba(255,255,255,0.05)!important;
}
.mega-item{border-radius:14px}
.mega-item:hover{background:rgba(0,0,0,0.04)}
html[data-theme="dark"] .mega-item:hover{background:rgba(255,255,255,0.06)}
.mi-icon{border-radius:12px;box-shadow:0 4px 12px -4px rgba(0,0,0,0.2),inset 0 1px 0 rgba(255,255,255,0.15)}
.mega-feat{border-radius:18px;box-shadow:inset 0 1px 0 rgba(255,255,255,0.5)}

/* Status & lang & theme pills (glass) */
.status-pill,.lang-btn,.theme-btn{
  background:rgba(255,255,255,0.5)!important;
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  border:0.5px solid rgba(0,0,0,0.08)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.5);
}
html[data-theme="dark"] .status-pill,html[data-theme="dark"] .lang-btn,html[data-theme="dark"] .theme-btn{
  background:rgba(255,255,255,0.05)!important;
  border-color:rgba(255,255,255,0.1)!important;
}

/* Cards — universal glass treatment */
.feat-card,.cap,.story-img,.biz,.pillar,.value,.feature,.stat,
.case,.sec-card,.comp-card,.cta-block,.metric,.t-card,.side-card,.side-stat,
.swatch,.type-card,.rule,.plan,.compare,.step-h,.offer,.res-card,.fr-side .res-card,
.hv-card,.orgchart,.timeline,.budget,.thread,.testi,.gov,.step,.oc-node,.oc-node.root{
  border-radius:18px;
}
.feat-card,.cap,.pillar,.sec-card,.metric,.t-card,.side-card,.stat,.rule,.plan,.step-h,.offer,.res-card,.comp-card,.testi,.gov,.side-stat{
  background:rgba(255,255,255,0.55)!important;
  backdrop-filter:saturate(180%) blur(20px);
  -webkit-backdrop-filter:saturate(180%) blur(20px);
  border:0.5px solid rgba(0,0,0,0.08)!important;
  box-shadow:0 2px 8px -2px rgba(0,0,0,0.04),inset 0 1px 0 rgba(255,255,255,0.7);
}
html[data-theme="dark"] .feat-card,html[data-theme="dark"] .cap,html[data-theme="dark"] .pillar,html[data-theme="dark"] .sec-card,html[data-theme="dark"] .metric,html[data-theme="dark"] .t-card,html[data-theme="dark"] .side-card,html[data-theme="dark"] .stat,html[data-theme="dark"] .rule,html[data-theme="dark"] .plan,html[data-theme="dark"] .step-h,html[data-theme="dark"] .offer,html[data-theme="dark"] .res-card,html[data-theme="dark"] .comp-card,html[data-theme="dark"] .testi,html[data-theme="dark"] .gov,html[data-theme="dark"] .side-stat{
  background:rgba(22,22,22,0.55)!important;
  border-color:rgba(255,255,255,0.08)!important;
  box-shadow:0 4px 12px -4px rgba(0,0,0,0.4),inset 0 1px 0 rgba(255,255,255,0.04);
}

/* CTA block — big glass */
.cta-block{
  background:rgba(13,13,13,0.88)!important;
  backdrop-filter:saturate(180%) blur(30px);
  -webkit-backdrop-filter:saturate(180%) blur(30px);
  border:0.5px solid rgba(255,255,255,0.1)!important;
  border-radius:32px!important;
  box-shadow:0 30px 80px -20px rgba(0,0,0,0.35),inset 0 1px 0 rgba(255,255,255,0.08)!important;
}

/* FlowOS feature cards get extra glass */
.feat-main{border-radius:32px;box-shadow:0 30px 80px -20px rgba(0,0,0,0.35),inset 0 1px 0 rgba(255,255,255,0.1)}
.fos-hero h1,h1.display{letter-spacing:-0.045em}

/* FlowOS logo wrapper — crop the empty padding around icon-only PNG */
.flowos-mark{
  display:inline-block;width:180px;height:180px;overflow:hidden;
  border-radius:44px;
  background:rgba(255,255,255,0.5);
  backdrop-filter:saturate(180%) blur(20px);
  -webkit-backdrop-filter:saturate(180%) blur(20px);
  border:0.5px solid rgba(0,0,0,0.08);
  box-shadow:0 20px 50px -20px rgba(0,0,0,0.2),inset 0 1px 0 rgba(255,255,255,0.7);
  margin-bottom:40px;
  position:relative;
}
.flowos-mark img.flowos-logo{
  position:absolute;height:400px;width:auto;
  left:50%;top:50%;transform:translate(-60%,-50%);
}
html[data-theme="dark"] .flowos-mark{
  background:rgba(22,22,22,0.55);
  border-color:rgba(255,255,255,0.1);
}
html[data-theme="dark"] .flowos-mark img.flowos-logo{filter:invert(1)}

/* Section head headings — heavier weight like Apple marketing */
h1.display,h1.demo-title,.fos-hero h1{font-weight:500;letter-spacing:-0.05em}
.sec-head h2,.fos-sec h2{font-weight:500;letter-spacing:-0.04em}

/* Hero display polish */
.hero{padding-top:80px}
h1.display em,.demo-title em{color:var(--ink-3);font-style:normal}

/* Inputs glass */
input,select,textarea{
  background:rgba(255,255,255,0.6)!important;
  backdrop-filter:blur(14px);
  border:0.5px solid rgba(0,0,0,0.1)!important;
  border-radius:12px!important;
}
html[data-theme="dark"] input,html[data-theme="dark"] select,html[data-theme="dark"] textarea{
  background:rgba(255,255,255,0.04)!important;
  border-color:rgba(255,255,255,0.1)!important;
}

/* Scrollbar subtle */
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-thumb{background:rgba(0,0,0,0.15);border-radius:6px;border:2px solid transparent;background-clip:padding-box}
::-webkit-scrollbar-thumb:hover{background:rgba(0,0,0,0.25);background-clip:padding-box}
html[data-theme="dark"] ::-webkit-scrollbar-thumb{background:rgba(255,255,255,0.15);background-clip:padding-box}

/* Footer glass bottom bar with FR/EN toggle */
.lang-footer{
  position:fixed;bottom:20px;left:50%;transform:translateX(-50%);
  z-index:70;
  display:inline-flex;align-items:center;padding:5px;
  background:rgba(255,255,255,0.7);
  backdrop-filter:saturate(200%) blur(30px);
  -webkit-backdrop-filter:saturate(200%) blur(30px);
  border:0.5px solid rgba(0,0,0,0.08);
  border-radius:999px;
  box-shadow:0 10px 30px -10px rgba(0,0,0,0.15),0 2px 8px -2px rgba(0,0,0,0.06),inset 0 1px 0 rgba(255,255,255,0.8);
}
html[data-theme="dark"] .lang-footer{
  background:rgba(22,22,22,0.7);
  border-color:rgba(255,255,255,0.1);
  box-shadow:0 10px 30px -10px rgba(0,0,0,0.5),inset 0 1px 0 rgba(255,255,255,0.08);
}
.lang-footer button{
  display:inline-flex;align-items:center;gap:7px;
  padding:7px 14px;border:none;border-radius:999px;
  background:transparent;color:var(--ink-2);cursor:pointer;
  font:inherit;font-size:13px;font-weight:500;transition:all .2s;
}
.lang-footer button.active{background:var(--ink);color:var(--bg);box-shadow:0 4px 12px -4px rgba(0,0,0,0.2)}
.lang-footer button:not(.active):hover{color:var(--ink)}
.lang-footer .flag{font-size:15px;line-height:1}

/* Reduce visual weight of borders globally for Apple feel */
:root{--line:rgba(0,0,0,0.08);--line-2:rgba(0,0,0,0.12)}
html[data-theme="dark"]{--line:rgba(255,255,255,0.08);--line-2:rgba(255,255,255,0.12)}


/* FlowOS lockup — icon + wordmark side by side */
.flowos-lockup{display:inline-flex;align-items:center;gap:24px;margin-bottom:40px}
.flowos-wordmark{height:180px;display:grid;place-items:center;overflow:hidden;border-radius:44px;padding:0 40px;background:rgba(255,255,255,0.5);backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);border:0.5px solid rgba(0,0,0,0.08);box-shadow:0 20px 50px -20px rgba(0,0,0,0.2),inset 0 1px 0 rgba(255,255,255,0.7)}
.flowos-wordmark img{height:160px;width:auto;display:block}
html[data-theme="dark"] .flowos-wordmark{background:rgba(22,22,22,0.55);border-color:rgba(255,255,255,0.1)}
html[data-theme="dark"] .flowos-wordmark img{filter:invert(1)}
@media (max-width:720px){
  .flowos-lockup{flex-direction:column;align-items:flex-start;gap:16px}
  .flowos-wordmark{height:120px;padding:0 24px}
  .flowos-wordmark img{height:100px}
  .flowos-mark{width:120px!important;height:120px!important}
}

/* ============================================================
   AUTO LOGO COLOR — adapts to surrounding background
   Black logos → stay black on light backgrounds
                 → turn white in dark mode AND on always-dark containers
   ============================================================ */

/* 1. Always-dark containers — invert any logo inside them, regardless of theme */
.cta-block img,
.feat-main img,
.feat-card.dark img,
.announce img,
.live img,
.path.feat img,
.offer.highlight img,
[data-bg="dark"] img,
.logo-card.dark img{
  filter:invert(1)!important;
}

/* 2. Dark mode — invert the main brand + FlowOS logos everywhere */
html[data-theme="dark"] .brand img,
html[data-theme="dark"] .flowos-logo,
html[data-theme="dark"] .flowos-wordmark img,
html[data-theme="dark"] .logo-card:not(.dark) img{
  filter:invert(1);
}

/* 3. Inside already-dark containers in dark mode — DON'T double-invert */
html[data-theme="dark"] .cta-block img,
html[data-theme="dark"] .feat-main img,
html[data-theme="dark"] .feat-card.dark img,
html[data-theme="dark"] .announce img,
html[data-theme="dark"] .live img,
html[data-theme="dark"] .path.feat img,
html[data-theme="dark"] .offer.highlight img,
html[data-theme="dark"] [data-bg="dark"] img,
html[data-theme="dark"] .logo-card.dark img{
  filter:none!important;
}

/* 4. Favicon-style icons keep original color (logotp_.png uses grey on transparent) */

/* ================================================================
   DROPDOWN HOVER BRIDGE — prevents menu from closing while
   moving the cursor from trigger to submenu.
   ================================================================ */

/* Invisible bridge above each dropdown — covers the visual gap */
.mega-menu::before,
.dropdown::before,
.lang-menu::before{
  content:"";
  position:absolute;
  left:0;right:0;
  top:-14px;
  height:14px;
  pointer-events:auto;
}

/* Nav-item is the hover target — make sure it has padding-bottom
   so the hover area extends slightly below the trigger text */
.nav-item.mega > .trigger,
.nav-item > a{
  padding-top:10px;
  padding-bottom:10px;
}

/* Grace delay before closing — give user time to reach submenu */
.nav-item.mega .mega-menu{
  transition-delay:0s;
}
.nav-item.mega:not(:hover):not(:focus-within) .mega-menu{
  transition-delay:.15s;
}

/* Same for simple dropdowns and the language menu */
.nav-item .dropdown{transition-delay:0s}
.nav-item:not(:hover):not(:focus-within) .dropdown{transition-delay:.12s}

/* Ensure dropdown itself can receive hover (fixes pointer-events edge cases) */
.mega-menu:hover,
.dropdown:hover{
  opacity:1!important;
  pointer-events:auto!important;
  transform:translateX(-50%) translateY(0)!important;
}
/* Le menu des langues est aligné à droite de son bouton : jamais de translateX */
.lang-menu.open,.lang-menu.open:hover{opacity:1!important;pointer-events:auto!important;transform:translateY(0)!important}

/* ================================================================
   STRONGER GLASS — make dropdowns visibly blurred (not opaque)
   ================================================================ */
.mega-menu,
.dropdown,
.lang-menu,
.mobile-panel{
  background:rgba(255,255,255,0.55)!important;
  backdrop-filter:saturate(220%) blur(50px)!important;
  -webkit-backdrop-filter:saturate(220%) blur(50px)!important;
  border:0.5px solid rgba(0,0,0,0.06)!important;
  box-shadow:
    0 30px 80px -20px rgba(0,0,0,0.18),
    0 8px 30px -8px rgba(0,0,0,0.08),
    inset 0 1px 0 rgba(255,255,255,0.75)!important;
}

html[data-theme="dark"] .mega-menu,
html[data-theme="dark"] .dropdown,
html[data-theme="dark"] .lang-menu,
html[data-theme="dark"] .mobile-panel{
  background:rgba(28,28,30,0.55)!important;
  border:0.5px solid rgba(255,255,255,0.08)!important;
  box-shadow:
    0 30px 80px -20px rgba(0,0,0,0.75),
    0 8px 30px -8px rgba(0,0,0,0.4),
    inset 0 1px 0 rgba(255,255,255,0.06)!important;
}

/* Featured cards inside menu keep their gradient but soften */
.mega-feat{
  backdrop-filter:none;
}

/* Inner items should be translucent too — let bg bleed through */
.mega-item:hover,
.drop-item:hover{
  background:rgba(255,255,255,0.5)!important;
}
html[data-theme="dark"] .mega-item:hover,
html[data-theme="dark"] .drop-item:hover{
  background:rgba(255,255,255,0.08)!important;
}

/* Ensure blur actually renders — remove any accidental opacity stacking */
.mega-menu,.dropdown,.lang-menu{
  isolation:isolate;
}

/* Force WebKit to render backdrop-filter even in tricky z-index contexts */
.mega-menu,.dropdown,.lang-menu{
  will-change:backdrop-filter;
}

/* ================================================================
   SOLID BLACK MENU BACKGROUND (overrides glass)
   ================================================================ */
.mega-menu,
.dropdown,
.lang-menu,
.mobile-panel{
  background:#0d0d0d!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
  border:0.5px solid rgba(255,255,255,0.08)!important;
  box-shadow:
    0 30px 80px -20px rgba(0,0,0,0.5),
    0 8px 30px -8px rgba(0,0,0,0.3),
    inset 0 1px 0 rgba(255,255,255,0.05)!important;
  color:#f5f5f5;
}

/* Text colors inside black menu */
.mega-menu *,
.dropdown *,
.lang-menu *{
  color:inherit;
}
.mega-menu .col-head,
.dropdown .drop-col-title{color:rgba(255,255,255,0.5)!important}
.mega-menu .mi-title,
.dropdown .drop-title{color:#fff!important}
.mega-menu .mi-desc,
.dropdown .drop-desc{color:rgba(255,255,255,0.6)!important}
.mega-sub{color:rgba(255,255,255,0.7)!important}
.mega-sub:hover{color:#fff!important;background:rgba(255,255,255,0.08)!important}

/* Hover states on black menu */
.mega-item:hover,
.drop-item:hover,
.lang-menu button:hover{
  background:rgba(255,255,255,0.06)!important;
}

/* Featured card keeps its gradient, but adapt inner text */
.mega-feat{border:0.5px solid rgba(255,255,255,0.1)}

/* Menu footer separator & text */
.mega-foot{border-top-color:rgba(255,255,255,0.08)!important;color:rgba(255,255,255,0.6)!important}
.mega-foot strong{color:#fff!important}
.mega-foot-link{border-color:rgba(255,255,255,0.15)!important;color:#fff!important}
.mega-foot-link:hover{background:#fff!important;color:#0d0d0d!important}

/* Version pill on dark */
.ver-pill{background:rgba(255,255,255,0.08)!important;color:rgba(255,255,255,0.7)!important;border-color:rgba(255,255,255,0.1)!important}

/* Lang menu buttons on black */
.lang-menu button{color:#f5f5f5!important}

/* ================================================================
   HERO SPHERE — morpho.org-style big interactive particle globe
   ================================================================ */
.hero-sphere-wrap{padding-bottom:0!important}
.hero-sphere{
  position:relative;
  width:100%;
  max-width:560px;
  aspect-ratio:5/3;
  margin:24px auto 0;
  pointer-events:auto;
}
.hero-sphere canvas{
  position:absolute;inset:0;width:100%;height:100%;
  display:block;
}
.hero-sphere-logo{
  position:absolute;
  left:50%;top:50%;
  transform:translate(-50%,-50%);
  width:64px;height:64px;
  pointer-events:none;
  z-index:2;
  filter:drop-shadow(0 0 30px rgba(255,255,255,0.2));
}
.hero-sphere-logo img{
  width:100%;height:100%;object-fit:cover;object-position:left center;
  display:block;
}
html[data-theme="dark"] .hero-sphere-logo img{filter:invert(1)}

@media (max-width:700px){
  .hero-sphere{max-width:420px}
  .hero-sphere-logo{width:48px;height:48px}
}

/* ================================================================
   ░░░  DESIGN SYSTEM v2 — premium redesign overlay  ░░░
   Additive layer. Brings: signature accent, animated aurora,
   reveal-on-scroll, bento grid, premium buttons, gradient text,
   trust strip, FAQ, refined hover states. Loads everywhere.
   ================================================================ */

:root{
  --accent-1:#7c5cff;      /* electric violet  */
  --accent-2:#5aa0ff;      /* signal blue      */
  --accent-3:#ff7ad9;      /* magenta accent   */
  --accent-glow:rgba(124,92,255,0.45);
  --grad-brand:linear-gradient(110deg,#7c5cff 0%,#5aa0ff 55%,#22d3ee 100%);
  --grad-warm-2:linear-gradient(110deg,#ff7ad9 0%,#ff9c6b 100%);
  --grad-cool-2:linear-gradient(135deg,#0d1326 0%,#1a1f3a 50%,#2d1f4a 100%);
  --ring:0 0 0 1px rgba(0,0,0,0.06);
  --ring-2:0 0 0 1px rgba(0,0,0,0.10);
  --shadow-soft:0 10px 30px -12px rgba(20,12,60,0.10),0 2px 8px -2px rgba(20,12,60,0.06);
  --shadow-pop:0 30px 80px -30px rgba(20,12,60,0.30),0 10px 30px -10px rgba(20,12,60,0.12);
}
html[data-theme="dark"]{
  --accent-glow:rgba(124,92,255,0.55);
  --ring:0 0 0 1px rgba(255,255,255,0.08);
  --ring-2:0 0 0 1px rgba(255,255,255,0.14);
  --shadow-soft:0 10px 30px -12px rgba(0,0,0,0.5),0 2px 8px -2px rgba(0,0,0,0.3);
  --shadow-pop:0 30px 80px -30px rgba(0,0,0,0.7),0 10px 30px -10px rgba(0,0,0,0.4);
}

/* ─── Animated aurora backdrop (overrides static mesh) ─── */
body::before{
  background:
    radial-gradient(800px 600px at var(--bx1,80%) var(--by1,-5%),rgba(124,92,255,0.22),transparent 55%),
    radial-gradient(900px 700px at var(--bx2,5%) var(--by2,20%),rgba(90,160,255,0.18),transparent 55%),
    radial-gradient(700px 500px at var(--bx3,80%) var(--by3,90%),rgba(255,122,217,0.16),transparent 55%),
    radial-gradient(600px 500px at var(--bx4,20%) var(--by4,90%),rgba(34,211,238,0.12),transparent 55%);
  animation:auroraDrift 28s ease-in-out infinite alternate;
}
html[data-theme="dark"] body::before{
  background:
    radial-gradient(900px 700px at var(--bx1,80%) var(--by1,-5%),rgba(120,80,255,0.32),transparent 55%),
    radial-gradient(900px 700px at var(--bx2,5%) var(--by2,20%),rgba(40,120,255,0.26),transparent 55%),
    radial-gradient(800px 600px at var(--bx3,80%) var(--by3,90%),rgba(255,80,180,0.20),transparent 55%),
    radial-gradient(700px 500px at var(--bx4,20%) var(--by4,90%),rgba(34,211,238,0.14),transparent 55%);
}
@keyframes auroraDrift{
  0%  {--bx1:80%;--by1:-5%;--bx2:5%;--by2:20%;--bx3:80%;--by3:90%;--bx4:20%;--by4:90%}
  50% {--bx1:60%;--by1:10%;--bx2:25%;--by2:40%;--bx3:65%;--by3:75%;--bx4:35%;--by4:70%}
  100%{--bx1:90%;--by1:5%; --bx2:0%; --by2:30%;--bx3:90%;--by3:80%;--bx4:10%;--by4:95%}
}
@media (prefers-reduced-motion:reduce){body::before{animation:none}}

/* ─── Section eyebrow chip ─── */
.eyebrow{
  display:inline-flex;align-items:center;gap:8px;
  padding:6px 12px;
  font-family:'Alliance No.2',system-ui,sans-serif;
  font-size:11px;letter-spacing:0.14em;text-transform:uppercase;
  color:var(--ink-2);
  background:rgba(255,255,255,0.6);
  backdrop-filter:saturate(180%) blur(14px);-webkit-backdrop-filter:saturate(180%) blur(14px);
  border:0.5px solid rgba(0,0,0,0.08);
  border-radius:999px;
  margin-bottom:18px;
}
.eyebrow::before{
  content:"";width:6px;height:6px;border-radius:50%;
  background:var(--accent-1);
  box-shadow:0 0 12px var(--accent-glow);
}
html[data-theme="dark"] .eyebrow{
  background:rgba(255,255,255,0.04);border-color:rgba(255,255,255,0.10);color:var(--ink-2);
}

/* ─── Gradient text utility ─── */
.gradient-text,.hero-display em,.feat-headline em,.fos-hero em{
  background:var(--grad-brand);
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;
}
.gradient-text-warm{
  background:var(--grad-warm-2);
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;
}

/* When dark theme + the original em color was --ink-3, make it a gradient.
   IMPORTANT: when .split-words wraps inner text in inline-block .word spans,
   the gradient must be re-applied to those spans because background-clip:text
   does not propagate across inline-block descendants reliably. */
h1.display em,
h1.display em .word,
.feat-headline em,
.feat-headline em .word,
.manifesto-h em,
.manifesto-h em .word,
.manifesto-tagline em,
.manifesto-tagline em .word,
.fos-hero em,
.fos-hero em .word{
  background:var(--grad-brand);
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;
}

/* ─── Premium primary button (gradient ring + shine) ─── */
.btn-dark{
  position:relative;
  background:#0d0d0d;color:#fff;
  border:1px solid transparent;
  box-shadow:
    0 10px 30px -10px rgba(124,92,255,0.45),
    0 2px 6px -2px rgba(0,0,0,0.25),
    inset 0 1px 0 rgba(255,255,255,0.10);
  overflow:hidden;
  isolation:isolate;
}
.btn-dark::before{
  content:"";position:absolute;inset:-1px;border-radius:inherit;
  background:var(--grad-brand);
  z-index:-1;opacity:0;transition:opacity .3s;
  filter:blur(6px);
}
.btn-dark::after{
  content:"";position:absolute;inset:0;border-radius:inherit;
  background:linear-gradient(115deg,transparent 0%,transparent 40%,rgba(255,255,255,0.18) 50%,transparent 60%,transparent 100%);
  transform:translateX(-100%);transition:transform .65s cubic-bezier(0.16,1,0.3,1);
  pointer-events:none;
}
.btn-dark:hover{transform:translateY(-1px);box-shadow:0 18px 40px -12px rgba(124,92,255,0.55),0 4px 10px -4px rgba(0,0,0,0.30),inset 0 1px 0 rgba(255,255,255,0.14)}
.btn-dark:hover::before{opacity:0.6}
.btn-dark:hover::after{transform:translateX(100%)}
.btn{transition:transform .25s cubic-bezier(0.16,1,0.3,1),box-shadow .25s,background .2s,color .2s,border-color .2s}

/* Light buttons get a subtle accent ring on hover */
.btn-outline:hover{border-color:var(--accent-1);color:var(--accent-1);box-shadow:0 0 0 4px rgba(124,92,255,0.10)}
html[data-theme="dark"] .btn-outline:hover{color:#fff;border-color:var(--accent-1)}
.btn-light:hover{box-shadow:0 10px 30px -10px rgba(124,92,255,0.45)}

/* ─── Reveal-on-scroll (used by shared.js IntersectionObserver) ─── */
/* Hide only when JS is enabled — fallback ensures content is visible
   if JS is disabled, slow, or for SEO bots / accessibility tools. */
@media (scripting: enabled){
  .reveal{opacity:0;transform:translateY(28px) scale(0.985);transition:opacity .9s cubic-bezier(0.16,1,0.3,1),transform .9s cubic-bezier(0.16,1,0.3,1)}
  .reveal-stagger > *{opacity:0;transform:translateY(24px);transition:opacity .8s cubic-bezier(0.16,1,0.3,1),transform .8s cubic-bezier(0.16,1,0.3,1);transition-delay:calc(var(--i,0) * 90ms)}
}
.reveal.in{opacity:1;transform:translateY(0) scale(1)}
.reveal-stagger.in > *{opacity:1;transform:translateY(0)}
@media (prefers-reduced-motion:reduce){.reveal,.reveal-stagger > *{opacity:1;transform:none;transition:none}}

/* ─── Bento grid (modern feature layout) ─── */
.bento{
  display:grid;
  grid-template-columns:repeat(6,1fr);
  grid-auto-rows:minmax(200px,auto);
  gap:18px;
  margin-top:28px;
}
.bento-card{
  grid-column:span 3;grid-row:span 1;
  position:relative;
  padding:28px;
  border-radius:22px;
  background:rgba(255,255,255,0.55);
  backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);
  border:0.5px solid rgba(0,0,0,0.08);
  box-shadow:var(--shadow-soft),inset 0 1px 0 rgba(255,255,255,0.7);
  overflow:hidden;
  isolation:isolate;
  transition:transform .35s cubic-bezier(0.16,1,0.3,1),box-shadow .35s;
}
html[data-theme="dark"] .bento-card{
  background:rgba(22,22,22,0.55);border-color:rgba(255,255,255,0.08);
  box-shadow:var(--shadow-soft),inset 0 1px 0 rgba(255,255,255,0.04);
}
.bento-card::before{
  content:"";position:absolute;inset:-1px;border-radius:inherit;z-index:-1;
  background:linear-gradient(135deg,rgba(124,92,255,0.0),rgba(124,92,255,0.0));
  transition:background .35s;
}
.bento-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-pop),inset 0 1px 0 rgba(255,255,255,0.8)}
.bento-card:hover::before{background:linear-gradient(135deg,rgba(124,92,255,0.18),rgba(90,160,255,0.10) 50%,rgba(255,122,217,0.10))}
.bento-card.span-2{grid-column:span 4}
.bento-card.span-3{grid-column:span 6}
.bento-card.tall{grid-row:span 2}
.bento-card.dark{background:linear-gradient(135deg,#0d1326 0%,#1a1f3a 60%,#2d1f4a 100%);color:#fff;border-color:rgba(255,255,255,0.10)}
.bento-card.dark .b-eyebrow{color:rgba(255,255,255,0.6)}
.bento-card.dark .b-body{color:rgba(255,255,255,0.75)}
.bento-card .b-eyebrow{
  font-family:'Alliance No.2',system-ui,sans-serif;
  font-size:11px;letter-spacing:0.14em;text-transform:uppercase;color:var(--ink-3);
  margin-bottom:14px;
}
.bento-card .b-title{font-size:24px;letter-spacing:-0.025em;font-weight:500;line-height:1.15;margin-bottom:10px}
.bento-card .b-body{font-size:14.5px;line-height:1.55;color:var(--ink-2);max-width:42ch}
.bento-card .b-visual{position:absolute;right:-30px;bottom:-30px;width:200px;height:200px;border-radius:50%;opacity:0.7;filter:blur(2px);pointer-events:none}
.bento-card .b-visual.g1{background:radial-gradient(circle,rgba(124,92,255,0.55),transparent 70%)}
.bento-card .b-visual.g2{background:radial-gradient(circle,rgba(90,160,255,0.55),transparent 70%)}
.bento-card .b-visual.g3{background:radial-gradient(circle,rgba(255,122,217,0.55),transparent 70%)}
.bento-card .b-visual.g4{background:radial-gradient(circle,rgba(34,211,238,0.55),transparent 70%)}

@media (max-width:900px){
  .bento{grid-template-columns:repeat(2,1fr)}
  .bento-card,.bento-card.span-2,.bento-card.span-3{grid-column:span 2}
  .bento-card.tall{grid-row:auto}
}

/* ─── Trust strip (logo marquee) ─── */
.trust{padding:48px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-top:64px}
.trust-label{display:block;text-align:center;font-family:'Alliance No.2',system-ui,sans-serif;font-size:11px;letter-spacing:0.22em;text-transform:uppercase;color:var(--ink-3);margin-bottom:28px}
.trust-row{display:flex;align-items:center;justify-content:center;gap:64px;flex-wrap:wrap;opacity:0.7;filter:grayscale(1);transition:opacity .3s,filter .3s}
.trust-row:hover{opacity:1;filter:grayscale(0)}
.trust-logo{font-family:'Alliance No.2',system-ui,sans-serif;font-size:18px;font-weight:500;letter-spacing:-0.02em;color:var(--ink);display:inline-flex;align-items:center;gap:8px;transition:transform .3s}
.trust-logo:hover{transform:translateY(-2px)}
.trust-logo .glyph{width:22px;height:22px;border-radius:6px;display:grid;place-items:center;font-size:13px;background:var(--ink);color:var(--bg)}

/* ─── Feature row (alternating image/text — premium SaaS pattern) ─── */
.feature-row{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center;padding:80px 0}
.feature-row.reverse{direction:rtl}
.feature-row.reverse > *{direction:ltr}
.feature-row .fr-text h3{font-size:clamp(28px,3vw,40px);letter-spacing:-0.03em;line-height:1.05;font-weight:500;margin:14px 0 20px}
.feature-row .fr-text p{font-size:17px;line-height:1.55;color:var(--ink-2);max-width:46ch}
.feature-row .fr-bullets{margin-top:24px;display:flex;flex-direction:column;gap:14px}
.feature-row .fr-bullets li{list-style:none;display:flex;gap:12px;align-items:flex-start;font-size:15px;color:var(--ink-2);line-height:1.5}
.feature-row .fr-bullets li::before{content:"";width:22px;height:22px;flex-shrink:0;border-radius:6px;background:var(--grad-brand);box-shadow:0 4px 12px -4px var(--accent-glow);background-image:var(--grad-brand),url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none' stroke='white' stroke-width='2.2'><path d='M2 6l3 3 5-6'/></svg>");background-blend-mode:normal;background-size:cover;display:grid;place-items:center}
.feature-row .fr-visual{
  aspect-ratio:5/4;border-radius:24px;overflow:hidden;
  background:var(--grad-cool-2);
  border:0.5px solid rgba(0,0,0,0.08);
  box-shadow:var(--shadow-pop);
  position:relative;
}
.feature-row .fr-visual::before{
  content:"";position:absolute;inset:0;
  background:
    radial-gradient(500px 400px at 20% 20%,rgba(124,92,255,0.6),transparent 55%),
    radial-gradient(400px 300px at 80% 80%,rgba(90,160,255,0.5),transparent 55%),
    radial-gradient(300px 300px at 80% 20%,rgba(255,122,217,0.4),transparent 55%);
  mix-blend-mode:screen;
}
.feature-row .fr-visual::after{
  content:"";position:absolute;inset:0;
  background-image:linear-gradient(rgba(255,255,255,0.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,0.04) 1px,transparent 1px);
  background-size:32px 32px;
  mask-image:radial-gradient(ellipse at center,black 50%,transparent 100%);
}
@media (max-width:900px){
  .feature-row{grid-template-columns:1fr;gap:32px;padding:48px 0}
  .feature-row.reverse{direction:ltr}
}

/* ─── Faq accordion ─── */
.faq{display:grid;grid-template-columns:1fr;gap:8px;max-width:820px;margin:0 auto}
.faq details{
  border-radius:16px;padding:0;
  background:rgba(255,255,255,0.55);
  backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);
  border:0.5px solid rgba(0,0,0,0.08);
  transition:background .2s,border-color .2s,box-shadow .2s;
  overflow:hidden;
}
html[data-theme="dark"] .faq details{background:rgba(22,22,22,0.55);border-color:rgba(255,255,255,0.08)}
.faq details[open]{background:rgba(255,255,255,0.75);box-shadow:var(--shadow-soft)}
html[data-theme="dark"] .faq details[open]{background:rgba(28,28,30,0.75)}
.faq summary{
  list-style:none;cursor:pointer;
  padding:22px 24px;
  display:flex;justify-content:space-between;align-items:center;gap:24px;
  font-size:17px;letter-spacing:-0.01em;font-weight:500;color:var(--ink);
}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{
  content:"+";width:28px;height:28px;border-radius:50%;
  background:var(--bg-soft);color:var(--ink-2);
  display:grid;place-items:center;font-weight:300;font-size:18px;
  transition:transform .25s cubic-bezier(0.16,1,0.3,1),background .2s,color .2s;
  flex-shrink:0;
}
.faq details[open] summary::after{transform:rotate(45deg);background:var(--ink);color:var(--bg)}
.faq .faq-body{padding:0 24px 22px;color:var(--ink-2);font-size:15.5px;line-height:1.6;max-width:64ch}
.faq .faq-body p + p{margin-top:12px}

/* ─── Spotlight cursor effect on cards ─── */
.spotlight{position:relative;overflow:hidden}
.spotlight::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(450px circle at var(--mx,50%) var(--my,50%),rgba(124,92,255,0.18),transparent 40%);
  opacity:0;transition:opacity .3s;
}
.spotlight:hover::before{opacity:1}

/* ─── Floating gradient orbs (decorative) ─── */
.orb{position:absolute;border-radius:50%;filter:blur(60px);pointer-events:none;opacity:0.5;z-index:0}
.orb.violet{background:radial-gradient(circle,var(--accent-1),transparent 70%)}
.orb.blue{background:radial-gradient(circle,var(--accent-2),transparent 70%)}
.orb.magenta{background:radial-gradient(circle,var(--accent-3),transparent 70%)}
@keyframes orbFloat{0%,100%{transform:translate(0,0)}50%{transform:translate(20px,-30px)}}
.orb{animation:orbFloat 14s ease-in-out infinite}

/* ─── Stat counter (large) ─── */
.kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin-top:40px}
.kpi{padding:32px 28px;border-radius:20px;background:rgba(255,255,255,0.55);backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);border:0.5px solid rgba(0,0,0,0.08);box-shadow:var(--shadow-soft);position:relative;overflow:hidden;isolation:isolate}
html[data-theme="dark"] .kpi{background:rgba(22,22,22,0.55);border-color:rgba(255,255,255,0.08)}
.kpi::before{content:"";position:absolute;inset:0;background:var(--grad-brand);opacity:0;transition:opacity .3s;z-index:-1}
.kpi:hover::before{opacity:0.08}
.kpi-value{font-size:clamp(36px,4.2vw,56px);letter-spacing:-0.04em;line-height:1;font-weight:500;background:var(--grad-brand);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.kpi-label{margin-top:8px;font-size:13.5px;letter-spacing:0.02em;color:var(--ink-2);font-weight:450}
.kpi-suffix{font-size:0.55em;color:var(--ink-3);margin-left:2px;-webkit-text-fill-color:initial;background:none}

@media (max-width:900px){.kpi-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:520px){.kpi-grid{grid-template-columns:1fr}}

/* ─── Hero refinement v2 ─── */
.hero{position:relative;isolation:isolate}
.hero .orb{position:absolute}
h1.display{font-weight:500;letter-spacing:-0.05em}

/* Hero pill above headline */
.hero-pill{
  display:inline-flex;align-items:center;gap:10px;
  padding:6px 6px 6px 14px;
  border-radius:999px;
  background:rgba(255,255,255,0.6);
  backdrop-filter:saturate(180%) blur(14px);-webkit-backdrop-filter:saturate(180%) blur(14px);
  border:0.5px solid rgba(0,0,0,0.08);
  font-size:13px;color:var(--ink-2);font-weight:450;
  margin-bottom:24px;
  box-shadow:var(--shadow-soft);
}
html[data-theme="dark"] .hero-pill{background:rgba(255,255,255,0.05);border-color:rgba(255,255,255,0.10);color:var(--ink-2)}
.hero-pill strong{color:var(--ink);font-weight:500}
.hero-pill .new-chip{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;font-family:'Alliance No.2',system-ui,sans-serif;font-size:10px;letter-spacing:0.1em;text-transform:uppercase;background:var(--grad-brand);color:#fff;border-radius:999px;font-weight:600}

/* ─── Section dividers (subtle gradient line) ─── */
.section-divider{
  height:1px;border:none;
  background:linear-gradient(90deg,transparent,rgba(124,92,255,0.30),transparent);
  margin:0;
}

/* ─── Refined card hover (universal lift+ring) ─── */
.feat-card,.story-img,.story,.cap,.bento-card{transition:transform .35s cubic-bezier(0.16,1,0.3,1),box-shadow .35s,border-color .25s}
.story:hover .story-img{box-shadow:var(--shadow-pop),inset 0 1px 0 rgba(255,255,255,0.5)}
.feat-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-pop),inset 0 1px 0 rgba(255,255,255,0.7)}
.cap:hover{background:rgba(124,92,255,0.04)}
html[data-theme="dark"] .cap:hover{background:rgba(124,92,255,0.08)}

/* ─── Improved cap icons (use accent gradient) ─── */
.cap .icon{
  background:var(--grad-brand);
  color:#fff;font-weight:600;
  border:none;
  box-shadow:0 6px 18px -6px var(--accent-glow),inset 0 1px 0 rgba(255,255,255,0.2);
}

/* ─── Section spacing — tightened from 112px to 88px ─── */
section{padding:88px 0}
@media (max-width:1000px){section{padding:64px 0}}
@media (max-width:640px){section{padding:48px 0}}

/* ─── Footer refinement ─── */
footer{margin-top:120px}
footer .container{position:relative}
.foot-grid{padding-top:24px}

/* ─── Anchor scroll offset for sticky nav ─── */
section[id],div[id]{scroll-margin-top:96px}

/* ─── Cursor focus ring (a11y polish) ─── */
:focus-visible{outline:2px solid var(--accent-1);outline-offset:3px;border-radius:6px}

/* ─── Nav: subtle accent under brand on scroll ─── */
nav.top.scrolled{box-shadow:0 1px 0 rgba(0,0,0,0.04),0 10px 30px -20px rgba(124,92,255,0.20)}
html[data-theme="dark"] nav.top.scrolled{box-shadow:0 1px 0 rgba(255,255,255,0.04),0 10px 30px -20px rgba(124,92,255,0.30)}

/* ─── Quote block: large quote glyph + better breathing ─── */
.quote-block{max-width:760px;position:relative}
.quote-block::before{
  content:"\201C";
  position:absolute;left:50%;top:-32px;transform:translateX(-50%);
  font-family:'Georgia',serif;font-size:120px;line-height:0.6;
  background:var(--grad-brand);
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;
  opacity:0.5;
}
.quote{font-weight:450;letter-spacing:-0.02em}

/* ─── CTA block — gradient outline glow ─── */
.cta-block{position:relative;isolation:isolate}
.cta-block::before{
  content:"";position:absolute;inset:-1px;border-radius:inherit;z-index:-1;
  background:var(--grad-brand);opacity:0.5;filter:blur(20px);
}
.cta-block .btn-light{box-shadow:0 10px 30px -10px rgba(0,0,0,0.4)}

/* ─── Section heading: optional gradient accent on first word ─── */
.sec-head h2 .accent,.nx-head h2 .accent{
  background:var(--grad-brand);
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;
}

/* ─── Featured card improvement: gradient outline on hover ─── */
.feat-main{position:relative;isolation:isolate}
.feat-main::before{
  content:"";position:absolute;inset:-2px;border-radius:inherit;z-index:-1;
  background:linear-gradient(135deg,rgba(124,92,255,0.5),rgba(90,160,255,0.3),rgba(255,122,217,0.3));
  opacity:0;transition:opacity .4s;filter:blur(12px);
}
.feat-main:hover::before{opacity:0.7}

/* ─── Biz block — accent border bottom ─── */
.biz{position:relative;overflow:hidden;isolation:isolate}
.biz::before{
  content:"";position:absolute;left:0;right:0;bottom:0;height:3px;
  background:var(--grad-brand);opacity:0.9;
}
.biz-visual{
  background:
    radial-gradient(500px 400px at 30% 30%,rgba(124,92,255,0.55),transparent 55%),
    radial-gradient(400px 300px at 80% 80%,rgba(90,160,255,0.45),transparent 55%),
    radial-gradient(300px 300px at 80% 20%,rgba(255,122,217,0.40),transparent 55%),
    linear-gradient(135deg,#0d0f1e,#1a1f3a);
  position:relative;overflow:hidden;
}
.biz-visual::after{
  content:"";position:absolute;inset:0;
  background-image:linear-gradient(rgba(255,255,255,0.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,0.04) 1px,transparent 1px);
  background-size:48px 48px;
  mask-image:radial-gradient(ellipse at center,black 40%,transparent 100%);
}

/* ─── KPI value uses tabular numerals ─── */
.kpi-value,.stat-big{font-variant-numeric:tabular-nums}

/* ─── Mobile tweaks ─── */
@media (max-width:640px){
  .eyebrow{font-size:10px;padding:5px 10px}
  .hero-pill{font-size:12px}
  .trust-row{gap:32px}
}

/* ─── Booking / Cal.com inline ─── */
.cal-wrap{
  margin:24px 0 56px;
  border-radius:24px;overflow:hidden;
  background:rgba(255,255,255,0.55);
  backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);
  border:0.5px solid rgba(0,0,0,0.08);
  box-shadow:var(--shadow-soft),inset 0 1px 0 rgba(255,255,255,0.7);
  min-height:480px;position:relative;isolation:isolate;
}
html[data-theme="dark"] .cal-wrap{background:rgba(22,22,22,0.55);border-color:rgba(255,255,255,0.08)}
.cal-placeholder{padding:56px 36px;text-align:center;max-width:680px;margin:0 auto;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:420px}
.cal-placeholder .ico{
  width:64px;height:64px;border-radius:18px;display:grid;place-items:center;
  background:var(--grad-brand);color:#fff;font-size:28px;
  box-shadow:0 10px 30px -10px var(--accent-glow),inset 0 1px 0 rgba(255,255,255,0.2);
  margin-bottom:20px;
}
.cal-placeholder h3{font-size:24px;letter-spacing:-0.02em;font-weight:500;margin-bottom:10px}
.cal-placeholder p{font-size:15px;line-height:1.6;color:var(--ink-2);max-width:52ch}
.cal-placeholder p + p{margin-top:14px}
.cal-placeholder code{font-family:'Alliance No.2',system-ui,sans-serif;font-size:12.5px;padding:2px 7px;background:var(--bg-soft);border:0.5px solid rgba(0,0,0,0.08);border-radius:6px;color:var(--ink)}
html[data-theme="dark"] .cal-placeholder code{background:rgba(255,255,255,0.05);border-color:rgba(255,255,255,0.1)}

/* Form success state */
.form-ok{
  padding:48px 36px;text-align:center;
  border-radius:22px;
  background:linear-gradient(135deg,rgba(124,92,255,0.10),rgba(90,160,255,0.06));
  border:0.5px solid rgba(124,92,255,0.25);
  box-shadow:var(--shadow-soft);
}
.form-ok .ok-ico{
  width:56px;height:56px;border-radius:50%;margin:0 auto 16px;
  display:grid;place-items:center;font-size:24px;color:#fff;
  background:var(--grad-brand);
  box-shadow:0 10px 30px -10px var(--accent-glow);
}
.form-ok h3{font-size:22px;letter-spacing:-0.02em;font-weight:500;margin-bottom:10px}
.form-ok p{font-size:15px;line-height:1.6;color:var(--ink-2);max-width:48ch;margin:0 auto}

/* ================================================================
   ░░░  NAV POLISH v3 — fix proportions, contrast, alignment  ░░░
   ================================================================ */

/* Slim the nav: more breathing room, smaller logo proportional to bar */
.nav-in{height:68px;padding:0 28px;gap:24px}
.brand img{height:36px;width:auto}
.foot-brand .brand img{height:56px}

/* Restore pill buttons in the nav (v2 cascade made them rounded rects)
   Min-height 40px to keep touch targets usable on mobile. */
nav.top .btn,nav.top .lang-btn,nav.top .theme-btn{border-radius:999px}
nav.top .btn{padding:11px 20px;font-size:13.5px;min-height:40px}
nav.top .btn-dark{padding:11px 20px;min-height:40px}
nav.top .btn-ghost{padding:10px 16px;min-height:40px}

/* Tighter right cluster + consistent pill heights */
.nav-right{gap:6px}
.theme-btn{width:36px;height:36px}
.lang-btn{height:36px;padding:0 12px}

/* Remove the notification dot on the lang button (visually noisy in a clean nav) */
.lang-btn::before{display:none}

/* Smaller, calmer caret in nav-item triggers */
.nav-item .caret{font-size:8px;margin-left:2px;opacity:0.55}
.nav-item:hover .caret,.nav-item:focus-within .caret{opacity:1}

/* Center-nav: tighten item padding, slightly larger touch target */
.nav-center{gap:2px}
.nav-item > a,.nav-item > .trigger{padding:9px 14px;font-size:14px;font-weight:450}
.nav-item > a:hover,.nav-item > .trigger:hover,.nav-item.mega:hover > .trigger{background:rgba(0,0,0,0.05)}
html[data-theme="dark"] .nav-item > a:hover,
html[data-theme="dark"] .nav-item > .trigger:hover,
html[data-theme="dark"] .nav-item.mega:hover > .trigger{background:rgba(255,255,255,0.06)}

/* Active nav item: stronger accent (uses brand gradient under text) */
.nav-item.active > a,.nav-item.active > .trigger{
  background:rgba(124,92,255,0.10);
  color:var(--ink);
}
html[data-theme="dark"] .nav-item.active > a,
html[data-theme="dark"] .nav-item.active > .trigger{
  background:rgba(124,92,255,0.18);
}
.nav-item.active > a::after{
  content:"";position:absolute;left:14px;right:14px;bottom:1px;height:2px;
  background:var(--grad-brand);border-radius:2px;
}

/* Mega-menu: keep solid black (already set globally) but refine internal contrast */
.mega-menu{padding:24px!important;border-radius:20px!important;width:min(960px,calc(100vw - 48px))}
.mega-menu.compact{width:min(780px,calc(100vw - 48px))}
.mega-item{padding:13px 12px;border-radius:12px;min-height:44px}
.mi-icon{width:34px;height:34px;border-radius:10px;font-size:13px}
.mi-title{font-size:13.5px}
.mi-desc{font-size:12px;line-height:1.4;color:rgba(255,255,255,0.55)!important}
.col-head{padding:2px 12px 10px;font-size:10.5px;letter-spacing:0.2em}
.mega-sub{padding:9px 12px;font-size:13px}
.mega-feat{padding:20px;border-radius:14px}
.mega-feat h4{font-size:18px}
.mega-feat p{font-size:12.5px}
.mega-foot{padding:14px 4px 0;font-size:12.5px}
.mega-foot-link{padding:7px 14px;font-size:12.5px}

/* CTA button in nav: tighter gradient ring (the .btn-dark::before glow is too heavy at small size) */
nav.top .btn-dark{
  box-shadow:0 6px 16px -6px rgba(124,92,255,0.40),inset 0 1px 0 rgba(255,255,255,0.10);
}
nav.top .btn-dark::before{filter:blur(4px);inset:-1px}

/* Announce bar — calmer typography, room for content */
.announce-in{padding:9px 56px 9px 24px;font-size:12.5px;gap:12px}
.announce-pill{font-size:9.5px;padding:2px 8px;letter-spacing:0.10em}
.announce-text{font-size:12.5px}

/* Mobile button — match the cleaner aesthetic */
.mobile-toggle{width:38px;height:38px;border-radius:12px}

/* Responsive: when nav-center is hidden, justify-content moves the brand+right tighter */
@media (max-width:1000px){
  .nav-in{padding:0 20px;height:64px}
  .brand img{height:32px}
  .nav-right .btn-dark{padding:8px 14px;font-size:13px}
  .nav-right .lang-btn,.nav-right .theme-btn{width:36px;height:36px;padding:0}
  .nav-right .lang-btn .lang-code{display:none}
}
@media (max-width:560px){
  .nav-right .btn-dark{padding:8px 12px;font-size:12.5px}
  .nav-right .lang-btn{display:none}
  .nav-right{gap:4px}
}

/* Mobile panel: better typography + tap targets */
.mobile-panel{padding:24px 22px 32px}
.mobile-panel summary{padding:18px 4px;font-size:17px}
.mobile-panel details a{padding:11px 0 11px 16px;font-size:14.5px}
.mobile-panel .mob-cta{margin-top:28px}

/* Nav on scroll: subtle bottom blur line (already had rule, refining) */
nav.top.scrolled{
  background:rgba(255,255,255,0.78)!important;
  border-bottom:0.5px solid rgba(0,0,0,0.08)!important;
}
html[data-theme="dark"] nav.top.scrolled{
  background:rgba(10,10,10,0.72)!important;
  border-bottom-color:rgba(255,255,255,0.08)!important;
}

/* ─── Print niceties (keep stable) ─── */
@media print{body::before,body::after,.orb{display:none}}

/* ================================================================
   ░░░  TEXT ANIMATIONS — word-by-word + scroll-linked  ░░░
   ================================================================ */

/* Split-words: each word reveals with a stagger.
   Apply .split-words to an element; shared.js wraps each word in <span class="word">.
   We only hide if JS is enabled, to avoid permanently hiding text if JS fails. */
@media (scripting: enabled){
  .split-words:not([data-split="done"]){visibility:hidden}
}
.split-words .word{
  display:inline-block;
  opacity:0;
  transform:translateY(0.45em);
  transition:opacity .95s cubic-bezier(0.16,1,0.3,1),transform .95s cubic-bezier(0.16,1,0.3,1);
  transition-delay:calc(var(--wi,0) * 55ms);
  will-change:transform,opacity;
}
.split-words.in .word{opacity:1;transform:translateY(0)}

/* Variant: slower, deeper rise — for big hero headlines */
.split-words.dramatic .word{
  transform:translateY(0.7em) rotate(2deg);
  transition-duration:1.1s;
  transition-delay:calc(var(--wi,0) * 75ms);
}
.split-words.dramatic.in .word{transform:translateY(0) rotate(0)}

/* Variant: from blur — premium feel */
.split-words.blur .word{
  filter:blur(8px);
  transition-property:opacity,transform,filter;
}
.split-words.blur.in .word{filter:blur(0)}

@media (prefers-reduced-motion:reduce){
  .split-words{visibility:visible}
  .split-words .word{opacity:1;transform:none;filter:none;transition:none}
}

/* Scroll-linked color reveal: text fades from dim → full as it crosses viewport.
   Uses --p custom prop set by IntersectionObserver progress in shared.js. */
.scroll-color{
  background-image:linear-gradient(
    100deg,
    var(--ink) 0%,
    var(--ink) calc(var(--p,0) * 100%),
    var(--ink-3) calc(var(--p,0) * 100% + 8%),
    var(--ink-3) 100%
  );
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;
  transition:background-image .15s linear;
}
@media (prefers-reduced-motion:reduce){.scroll-color{background-image:none;color:var(--ink);-webkit-text-fill-color:initial}}

/* Underline sweep — for inline emphasis */
.underline-sweep{
  position:relative;display:inline-block;
}
.underline-sweep::after{
  content:"";position:absolute;left:0;right:0;bottom:-4px;height:2px;
  background:var(--grad-brand);
  transform:scaleX(0);transform-origin:left;
  transition:transform .9s cubic-bezier(0.16,1,0.3,1);
}
.split-words.in .underline-sweep::after,.reveal.in .underline-sweep::after{transform:scaleX(1);transition-delay:.6s}

/* ================================================================
   ░░░  MANIFESTO SECTION  ░░░
   ================================================================ */

.manifesto{position:relative;padding:96px 0;isolation:isolate;overflow:hidden}
.manifesto::before{
  content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:
    radial-gradient(700px 500px at 20% 0%,rgba(124,92,255,0.10),transparent 60%),
    radial-gradient(600px 500px at 90% 100%,rgba(90,160,255,0.08),transparent 60%);
}
.manifesto-intro{max-width:820px;margin-bottom:56px}
.manifesto-intro .lead-large{
  font-size:clamp(22px,2.2vw,32px);
  line-height:1.4;color:var(--ink-2);font-weight:400;
  letter-spacing:-0.01em;
  margin-top:18px;
}
.manifesto-h{
  font-size:clamp(40px,5.6vw,84px);
  letter-spacing:-0.04em;line-height:1.02;font-weight:500;
  max-width:18ch;margin-bottom:72px;
}
.manifesto-h em{
  font-style:normal;
  background:var(--grad-brand);
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;
}

.manifesto-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:18px;
  margin-bottom:88px;
}
.manifesto-card{
  position:relative;padding:36px 32px;border-radius:24px;
  background:rgba(255,255,255,0.55);
  backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);
  border:0.5px solid rgba(0,0,0,0.08);
  box-shadow:var(--shadow-soft),inset 0 1px 0 rgba(255,255,255,0.7);
  min-height:300px;
  display:flex;flex-direction:column;gap:10px;
  transition:transform .35s cubic-bezier(0.16,1,0.3,1),box-shadow .35s,border-color .25s;
  overflow:hidden;isolation:isolate;
}
html[data-theme="dark"] .manifesto-card{
  background:rgba(22,22,22,0.55);border-color:rgba(255,255,255,0.08);
  box-shadow:var(--shadow-soft),inset 0 1px 0 rgba(255,255,255,0.04);
}
.manifesto-card::before{
  content:"";position:absolute;inset:-1px;border-radius:inherit;z-index:-1;
  background:var(--grad-brand);opacity:0;transition:opacity .35s;
}
.manifesto-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-pop),inset 0 1px 0 rgba(255,255,255,0.8)}
.manifesto-card:hover::before{opacity:0.12}
.manifesto-card .m-num{
  font-family:'Alliance No.2',system-ui,sans-serif;
  font-size:12px;letter-spacing:0.18em;text-transform:uppercase;color:var(--ink-3);
  margin-bottom:20px;
  display:inline-flex;align-items:center;gap:10px;
}
.manifesto-card .m-num::before{
  content:"";width:28px;height:2px;border-radius:1px;
  background:var(--grad-brand);
}
.manifesto-card h3{
  font-size:23px;letter-spacing:-0.025em;font-weight:500;line-height:1.18;
  margin-bottom:8px;color:var(--ink);
}
.manifesto-card p{
  font-size:15px;line-height:1.6;color:var(--ink-2);
}
.manifesto-card .m-glow{
  position:absolute;right:-50px;bottom:-50px;width:200px;height:200px;border-radius:50%;
  background:radial-gradient(circle,var(--accent-1),transparent 70%);
  opacity:0.15;pointer-events:none;filter:blur(20px);
  transition:opacity .35s,transform .5s cubic-bezier(0.16,1,0.3,1);
}
.manifesto-card:hover .m-glow{opacity:0.35;transform:translate(-20px,-20px)}
.manifesto-card .m-glow.g2{background:radial-gradient(circle,var(--accent-2),transparent 70%)}
.manifesto-card .m-glow.g3{background:radial-gradient(circle,var(--accent-3),transparent 70%)}

.manifesto-tagline{
  font-size:clamp(28px,3.6vw,48px);
  letter-spacing:-0.03em;line-height:1.15;font-weight:500;
  text-align:center;max-width:24ch;margin:0 auto;color:var(--ink);
}
.manifesto-tagline em{
  font-style:normal;
  background:var(--grad-brand);
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;
}

@media (max-width:900px){
  .manifesto{padding:80px 0}
  .manifesto-grid{grid-template-columns:1fr;gap:14px;margin-bottom:56px}
  .manifesto-card{min-height:auto;padding:28px}
  .manifesto-h{margin-bottom:48px}
}


/* ─── flowOS : marque dans la nav et le pied de page ─── */
.brand-flowos img{height:34px;width:auto}
.foot-brand .brand-flowos img{height:40px}
.foot-editor{display:flex;flex-direction:column;gap:6px;margin-top:18px}
.foot-editor span{font-family:'Alliance No.2',system-ui,sans-serif;font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3)}
.foot-editor img{height:22px;width:auto;align-self:flex-start}
html[data-theme="dark"] .foot-editor img{filter:invert(1)}

.brand-tp img{height:26px;width:auto}
.foot-brand .brand-tp img{height:30px}

/* ================================================================
   MENUS BLANCS (thème clair) — remplace le fond noir
   ================================================================ */
html:not([data-theme="dark"]) .mega-menu,
html:not([data-theme="dark"]) .dropdown,
html:not([data-theme="dark"]) .lang-menu,
html:not([data-theme="dark"]) .mobile-panel{
  background:#ffffff!important;
  border:1px solid rgba(15,15,30,0.08)!important;
  box-shadow:0 30px 80px -24px rgba(20,12,60,0.22),0 8px 24px -10px rgba(20,12,60,0.10)!important;
  color:#14151f;
}
html:not([data-theme="dark"]) .mega-menu .col-head,
html:not([data-theme="dark"]) .dropdown .drop-col-title{color:#8a8fa3!important}
html:not([data-theme="dark"]) .mega-menu .mi-title,
html:not([data-theme="dark"]) .dropdown .drop-title{color:#14151f!important}
html:not([data-theme="dark"]) .mega-menu .mi-desc,
html:not([data-theme="dark"]) .dropdown .drop-desc{color:#5d6174!important}
html:not([data-theme="dark"]) .mega-sub{color:#3c3f50!important}
html:not([data-theme="dark"]) .mega-sub span{color:#8a8fa3!important}
html:not([data-theme="dark"]) .mega-sub:hover{color:#14151f!important;background:#f4f4f8!important}
html:not([data-theme="dark"]) .mega-item:hover,
html:not([data-theme="dark"]) .drop-item:hover,
html:not([data-theme="dark"]) .lang-menu button:hover{background:#f4f4f8!important}
html:not([data-theme="dark"]) .mega-feat{border:1px solid rgba(15,15,30,0.06)}
html:not([data-theme="dark"]) .mega-feat h4,html:not([data-theme="dark"]) .mega-feat p{color:#14151f!important}
html:not([data-theme="dark"]) .mega-feat small{color:rgba(20,21,31,0.55)!important}
html:not([data-theme="dark"]) .mega-feat .btn-arrow{color:#14151f!important}
html:not([data-theme="dark"]) .mega-foot{border-top-color:rgba(15,15,30,0.08)!important;color:#5d6174!important}
html:not([data-theme="dark"]) .mega-foot strong{color:#14151f!important}
html:not([data-theme="dark"]) .mega-foot-link{border-color:rgba(15,15,30,0.14)!important;color:#14151f!important}
html:not([data-theme="dark"]) .mega-foot-link:hover{background:#14151f!important;color:#fff!important}
html:not([data-theme="dark"]) .ver-pill{background:#f1f0f7!important;color:#5d6174!important;border-color:rgba(15,15,30,0.08)!important}
html:not([data-theme="dark"]) .mobile-panel a,html:not([data-theme="dark"]) .mobile-panel summary{color:#14151f!important}
html:not([data-theme="dark"]) .lang-menu button{color:#14151f!important}

/* Menu « Nos produits » */
.prod-list{display:flex;flex-direction:column;gap:4px}
.prod-status{font-family:'Alliance No.2',system-ui,sans-serif;font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;padding:3px 7px;border-radius:999px;font-weight:500}
.prod-status.live{background:#e6f7ee;color:#12784a}
.prod-status.soon{background:#fdf2c8;color:#8a6200}
html[data-theme="dark"] .prod-status.live{background:rgba(34,197,94,.15);color:#6ee7a0}
html[data-theme="dark"] .prod-status.soon{background:rgba(234,179,8,.15);color:#fcd34d}
.mega-item.soon{opacity:.85}
.prod-list .mi-title{flex-direction:column;align-items:flex-start;gap:5px}.prod-list .prod-status{white-space:nowrap}
.mega-menu .mi-icon{color:#fff!important}.mi-icon.app{background:none!important;box-shadow:none!important;padding:0;overflow:hidden}.mi-icon.app img{width:36px;height:36px;border-radius:10px;display:block}

/* ================================================================
   SOUS-MENUS SOBRES (corporate)
   ================================================================ */
.mega-menu .mi-icon:not(.app){display:none!important}
.mega-menu .mi-icon.app img{width:28px;height:28px;border-radius:8px}
.mega-menu .mega-item{padding:9px 12px!important;gap:10px;border-radius:8px!important}
.mega-menu .mi-title{font-size:14px!important;font-weight:500!important;letter-spacing:-0.005em}
.mega-menu .mi-desc,.mega-menu .mi-desc.mono{font-family:'Alliance No.2','Inter',system-ui,sans-serif!important;font-size:12.5px!important;letter-spacing:0!important;line-height:1.45!important;margin-top:2px}
.mega-menu .col-head{font-family:'Alliance No.2','Inter',system-ui,sans-serif!important;font-size:11px!important;letter-spacing:.08em!important;font-weight:600!important;padding:4px 12px 8px!important}
.mega-menu .mega-col + .mega-col{border-left:1px solid rgba(15,15,30,0.06);padding-left:12px}
.mega-menu .mega-sub span{display:none!important}
.mega-menu .mega-sub{padding:7px 12px!important;font-size:14px!important}
.mega-menu .mega-sub:hover{padding-left:12px!important}
.mega-menu .ver-pill{font-family:'Alliance No.2','Inter',system-ui,sans-serif!important;font-size:10.5px!important}
.mega-menu .prod-status{font-family:'Alliance No.2','Inter',system-ui,sans-serif!important;letter-spacing:.04em!important;text-transform:none!important;font-size:10.5px!important}
.mega-menu .mega-feat{background:#f6f6f9!important;border:1px solid rgba(15,15,30,0.06)!important;box-shadow:none!important;min-height:0!important}
.mega-menu .mega-feat::before,.mega-menu .mega-feat::after{display:none!important}
.mega-menu .mega-feat small{font-family:'Alliance No.2','Inter',system-ui,sans-serif!important;letter-spacing:.08em!important;font-weight:600}
.mega-menu .mega-feat h4{font-size:17px!important}
.mega-menu .mega-feat .btn-arrow{background:none!important;padding:0!important;font-weight:500;text-decoration:underline;text-underline-offset:3px}
.mega-menu .mega-foot{font-size:13px}
html[data-theme="dark"] .mega-menu .mega-col + .mega-col{border-left-color:rgba(255,255,255,0.08)}
html[data-theme="dark"] .mega-menu .mega-feat{background:rgba(255,255,255,0.04)!important;border-color:rgba(255,255,255,0.08)!important}

/* Bandeau cookies */
.tp-cookies{position:fixed;left:24px;bottom:24px;z-index:200;max-width:440px;padding:20px;border-radius:18px;background:var(--bg);border:1px solid var(--line-2);box-shadow:0 24px 60px -20px rgba(20,12,60,.35);display:flex;flex-direction:column;gap:14px}
.tp-cookies p{font-size:13.5px;line-height:1.55;color:var(--ink-2)}
.tp-cookies a{text-decoration:underline;color:var(--ink)}
.tp-cookies div{display:flex;gap:8px;justify-content:flex-end}
.tp-cookies .btn{padding:8px 16px;font-size:13px}
@media (max-width:560px){.tp-cookies{left:12px;right:12px;bottom:12px;max-width:none}}
/* Formulaires : champ piège invisible et fenêtre de repli quand l'envoi échoue */
.tp-hp{position:absolute!important;left:-10000px!important;top:auto;width:1px;height:1px;overflow:hidden}
.tp-fb{position:fixed;inset:0;z-index:400;display:flex;align-items:center;justify-content:center;padding:16px;background:rgba(10,8,30,.45);backdrop-filter:blur(4px)}
.tp-fb-box{width:min(520px,100%);max-height:calc(100vh - 32px);overflow:auto;padding:26px;border-radius:20px;background:var(--bg);color:var(--ink);border:1px solid var(--line-2);box-shadow:0 30px 80px -24px rgba(20,12,60,.45);display:flex;flex-direction:column;gap:14px;text-align:left}
.tp-fb-box h3{font-size:20px;font-weight:500;letter-spacing:-0.02em}
.tp-fb-box p{font-size:14.5px;line-height:1.55;color:var(--ink-2)}
.tp-fb-mail{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:12px 14px;border-radius:12px;background:var(--bg-soft);border:1px solid var(--line)}
.tp-fb-mail a{font-weight:500;color:var(--ink);text-decoration:underline;word-break:break-all}
.tp-fb-box textarea{width:100%;min-height:110px;resize:vertical;padding:10px 12px;border-radius:12px;border:1px solid var(--line-2);background:var(--bg);color:var(--ink);font:inherit;font-size:13px;line-height:1.5}
.tp-fb-act{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.tp-fb .btn{padding:9px 16px;font-size:13.5px}
.tp-fb-st{min-height:1.2em;font-size:13px!important}
@media (max-width:560px){.tp-fb-act .btn{flex:1 1 100%;justify-content:center}}
html[data-theme="dark"] .tp-cookies{background:#161616}

/* Logo animé (menu du haut) */
.brand-anim{gap:9px;color:#111}
html[data-theme="dark"] .brand-anim{color:#fff}
.brand-anim .ba-mark{width:26px;height:26px;flex-shrink:0;overflow:visible;transition:transform .9s cubic-bezier(.3,1.4,.4,1)}
.brand-anim .ba-mark circle{transform-box:fill-box;transform-origin:center;transform:scale(0);
  animation:baIn .55s cubic-bezier(.3,1.6,.5,1) forwards, baWave 7s ease-in-out infinite;
  animation-delay:calc(var(--d)*.45s + .1s), calc(var(--d)*.5s + 2.2s)}
.brand-tp.brand-anim .ba-word{height:26px;width:auto;opacity:0;transform:translateX(-6px);animation:baWord .6s ease .55s forwards}
.brand-anim:hover .ba-mark{transform:rotate(180deg)}
.brand-anim:hover .ba-mark circle{fill:url(#bag)}
@keyframes baIn{0%{transform:scale(0)}70%{transform:scale(1.18)}100%{transform:scale(1)}}
@keyframes baWave{0%,100%{transform:scale(1);opacity:1}5%{transform:scale(.55);opacity:.55}10%,99%{transform:scale(1);opacity:1}}
@keyframes baWord{to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.brand-anim .ba-mark circle{animation:none;transform:none}.brand-tp.brand-anim .ba-word{animation:none;opacity:1;transform:none}}

/* Sous-menus pilotés par JS (shared.js : TP_megaMenus) */
html.mega-js .nav-item.mega:hover .mega-menu{opacity:0;pointer-events:none;transform:translateX(-50%) translateY(-6px) scale(0.98)}
html.mega-js .nav-item.mega.open .mega-menu{opacity:1;pointer-events:auto;transform:translateX(-50%) translateY(0) scale(1)}
html.mega-js .nav-item.mega.open > .trigger{background:rgba(0,0,0,0.05);color:var(--ink)}
html[data-theme="dark"].mega-js .nav-item.mega.open > .trigger{background:rgba(255,255,255,0.06)}
html.mega-js .nav-item.mega:hover .caret{transform:none}
html.mega-js .nav-item.mega.open .caret{transform:rotate(180deg);opacity:1}
.mega-menu::before,.dropdown::before,.lang-menu::before{pointer-events:none!important}
.mega-menu::before{top:-22px!important;height:22px!important}
html.mega-js .nav-item.mega.open .mega-menu::before,
html:not(.mega-js) .nav-item.mega:hover .mega-menu::before,
.nav-item:hover > .dropdown::before,.lang-menu.open::before,.lang:hover .lang-menu::before{pointer-events:auto!important}

html.mega-js .nav-item.mega .mega-menu{transition-delay:0s!important}

/* ─── SI, outils, modèles, équipe ─── */
.sec-side{max-width:46ch;color:var(--ink-2);font-size:16px;line-height:1.55}
.stack{border:1px solid var(--line);border-radius:20px;overflow:hidden;background:var(--bg)}
.stack-row{display:grid;grid-template-columns:220px 1fr;gap:20px;align-items:baseline;padding:16px 24px;border-bottom:1px solid var(--line)}
.stack-row:last-child{border-bottom:0}
.stack-cat{font-family:'Alliance No.2',system-ui,sans-serif;font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3)}
.stack-tools{display:flex;flex-wrap:wrap;gap:8px}
.stack-tools span{padding:6px 12px;border:1px solid var(--line-2);border-radius:999px;font-size:14px;color:var(--ink);background:var(--bg-soft)}
.stack-more{margin-top:16px;color:var(--ink-2);font-size:15px}
.fx-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;margin-top:28px}
.fx{padding:28px;border:1px solid var(--line);border-radius:20px;background:var(--bg-soft);display:flex;flex-direction:column;gap:10px}
.fx small{font-family:'Alliance No.2',system-ui,sans-serif;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3)}
.fx h3{font-size:22px;font-weight:500;letter-spacing:-.01em}
.fx p{color:var(--ink-2);font-size:16px;line-height:1.55;max-width:58ch}
.fx .stack-tools{margin-top:4px}
@media (max-width:760px){.stack-row{grid-template-columns:1fr;gap:10px;padding:16px 18px}.fx-grid{grid-template-columns:1fr}}

/* Catalogue des outils : logos qui défilent, une bande par catégorie */
.stack{position:relative}
.stack-tools span{display:inline-flex;align-items:center;gap:8px;white-space:nowrap}
.stack-tools span img{width:18px;height:18px;object-fit:contain;border-radius:4px;flex:none}
html[data-theme="dark"] .stack-tools span img{background:#fff;padding:1px}
.stack.anim::before{content:"";position:absolute;left:0;top:0;height:2px;width:100%;background:linear-gradient(90deg,#7902FE,#8758FE,#6451EE,#1C2AD0,#0284FE);transform:scaleX(0);transform-origin:left;z-index:2}
.stack.anim.in::before{transform:scaleX(1);transition:transform 1.4s cubic-bezier(.4,0,.2,1)}
.stack.anim .stack-row{opacity:0;transform:translateX(-10px)}
.stack.anim.in .stack-row{opacity:1;transform:none;transition:opacity .5s ease-out var(--rd),transform .5s cubic-bezier(.16,1,.3,1) var(--rd)}
.stack-tools.mq{display:block;overflow:hidden;min-width:0;-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.mq-track{display:flex;gap:8px;width:max-content;animation:tp-mq var(--dur,30s) linear infinite}
.stack-row:nth-child(even) .mq-track{animation-direction:reverse}
.stack-row:hover .mq-track{animation-play-state:paused}
.mq-track span{transition:border-color .2s,transform .2s}
.mq-track span:hover{border-color:var(--ink);transform:translateY(-1px)}
@keyframes tp-mq{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.stack.anim .stack-row{opacity:1;transform:none}}
.fx-grid > .fx:only-child{grid-column:1/-1}

/* Recherche du header */
.search-btn{flex:none}
.srch-lock{overflow:hidden}
.srch-ov{position:fixed;inset:0;z-index:10050;background:rgba(10,12,20,.42);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);display:flex;justify-content:center;align-items:flex-start;padding:12vh 16px 16px;opacity:0;transition:opacity .16s ease-out}
.srch-ov.in{opacity:1}
.srch-box{width:100%;max-width:640px;background:var(--bg);color:var(--ink);border:1px solid var(--line);border-radius:18px;box-shadow:0 30px 80px -24px rgba(10,12,30,.45);overflow:hidden;transform:translateY(-6px) scale(.985);transition:transform .2s cubic-bezier(.16,1,.3,1)}
.srch-ov.in .srch-box{transform:none}
.srch-in{display:flex;align-items:center;gap:12px;padding:16px 18px;border-bottom:1px solid var(--line);color:var(--ink-3)}
.srch-in input{flex:1;border:0;outline:0;background:transparent;color:var(--ink);font:inherit;font-size:17px;min-width:0}
.srch-in input::-webkit-search-cancel-button{display:none}
.srch-in kbd{font-family:'Alliance No.2',system-ui,sans-serif;font-size:11px;padding:3px 7px;border:1px solid var(--line-2);border-radius:6px;color:var(--ink-3)}
.srch-res{max-height:min(56vh,460px);overflow-y:auto;padding:8px}
.srch-lbl{font-family:'Alliance No.2',system-ui,sans-serif;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);padding:8px 12px 6px}
.srch-it{display:flex;flex-direction:column;gap:4px;padding:11px 12px;border-radius:10px;color:var(--ink);text-decoration:none}
.srch-it b{font-weight:500;font-size:15px}
.srch-it span{font-size:13.5px;line-height:1.45;color:var(--ink-2);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.srch-it mark{background:rgba(135,88,254,.18);color:inherit;border-radius:3px;padding:0 1px}
.srch-it.on{background:var(--bg-soft)}
.srch-empty{padding:28px 12px;text-align:center;color:var(--ink-2);font-size:15px}
.srch-hint{padding:10px 18px;border-top:1px solid var(--line);font-size:12px;color:var(--ink-3)}
html[data-theme="dark"] .srch-box{background:#121318;border-color:rgba(255,255,255,.1)}
html[data-theme="dark"] .srch-it.on{background:rgba(255,255,255,.06)}
@media (max-width:640px){.srch-ov{padding-top:64px}.srch-hint{display:none}}

/* Écran d'accueil : logo Thinking Platforms au centre pendant le chargement */
html.tp-splash::before{content:"";position:fixed;inset:0;z-index:2147483646;background:#fff;animation:tp-splash-auto .4s ease 2.6s forwards}
html.tp-splash::after{content:"";position:fixed;left:50%;top:50%;width:76px;height:76px;margin:-38px 0 0 -38px;z-index:2147483647;background:url(assets/brand/symbol-black.png) center/contain no-repeat;opacity:0;transform:scale(.94);transition:opacity .45s cubic-bezier(.16,1,.3,1),transform .45s cubic-bezier(.16,1,.3,1);animation:tp-splash-auto .4s ease 2.6s forwards}
html.tp-splash.tp-splash-ready::after{opacity:1;transform:none}
html.tp-splash[data-theme="dark"]::before{background:#0a0a0a}
html.tp-splash[data-theme="dark"]::after{background-image:url(assets/brand/symbol-white.png)}
html.tp-splash.tp-splash-out::after{opacity:0;transform:scale(.92);transition:opacity .28s ease-in,transform .28s ease-in}
html.tp-splash.tp-splash-out::before{opacity:0;transition:opacity .4s ease-out .12s}
@keyframes tp-splash-auto{to{opacity:0;visibility:hidden}}
@media (prefers-reduced-motion:reduce){html.tp-splash::after{transition:none}}
.stack-tools span .mono{width:18px;height:18px;border-radius:5px;background:var(--c);color:#fff;font:700 8.5px/18px 'Alliance No.2',system-ui,sans-serif;text-align:center;font-style:normal;flex:none;letter-spacing:0}

/* Logo FlowOS dessiné : carré en dégradé de la marque, symbole blanc, reflet et ombre douce */
.fo-mark{position:relative;display:inline-grid;place-items:center;flex:none;width:52px;height:52px;border-radius:15px;
  background:radial-gradient(120% 90% at 30% 0%,rgba(255,255,255,.28),transparent 55%),linear-gradient(145deg,#7902FE 0%,#6451EE 48%,#1C2AD0 78%,#0284FE 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.35),inset 0 -1px 0 rgba(0,0,0,.18),0 12px 26px -12px rgba(100,81,238,.75)}
.fo-mark img{width:72%;height:72%;object-fit:contain;filter:drop-shadow(0 1px 1px rgba(0,0,0,.18))}
.fo-mark.sm{width:40px;height:40px;border-radius:12px}
.fo-mark.lg{width:64px;height:64px;border-radius:18px}

/* Modèles Thinking Platforms : puces TP5 */
.tp-models{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.tp-chip{position:relative;aspect-ratio:1/1;border-radius:18px;overflow:hidden;box-shadow:0 30px 60px -30px rgba(20,25,80,.55),inset 0 0 0 1px rgba(255,255,255,.08);transition:transform .45s cubic-bezier(.16,1,.3,1),box-shadow .45s}
.tp-chip::before{content:"";position:absolute;inset:0;border-radius:inherit;box-shadow:inset 0 1px 0 rgba(255,255,255,.18),inset 0 -24px 40px -30px rgba(255,255,255,.35);pointer-events:none}
.tp-chip::after{content:"";position:absolute;inset:7%;border-radius:12px;border:1px solid rgba(255,255,255,.06);pointer-events:none}
.tp-model:hover .tp-chip{transform:translateY(-6px);box-shadow:0 40px 70px -30px rgba(40,30,140,.6),inset 0 0 0 1px rgba(255,255,255,.1)}
.tp-chip-in{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2%;color:#fff}
.tp-chip-row{display:flex;align-items:center;gap:.18em;font-size:clamp(44px,5.6vw,84px);font-weight:600;letter-spacing:-.03em;line-height:1}
.tp-chip-row img{width:.82em;height:.82em;object-fit:contain;filter:drop-shadow(0 2px 6px rgba(0,0,0,.35))}
.tp-chip-sub{font-size:clamp(22px,2.6vw,38px);font-weight:600;letter-spacing:.02em;line-height:1;margin-left:.9em;opacity:.95}
.tp-model-t{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-top:20px}
.tp-model-t b{font-size:20px;font-weight:600;letter-spacing:-.02em}
.tp-model-t small{font-size:13px;color:var(--ink-3)}
.tp-model p{margin-top:8px;color:var(--ink-2);font-size:15.5px;line-height:1.55}
@media (max-width:900px){.tp-models{grid-template-columns:1fr;max-width:420px;margin:0 auto}}

/* Lab de recherche */
.lab-panel{position:relative;overflow:hidden;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:56px;padding:56px;border-radius:28px;color:#fff;
  background:radial-gradient(70% 90% at 0% 100%,rgba(121,2,254,.45),transparent 60%),radial-gradient(60% 80% at 100% 0%,rgba(2,132,254,.35),transparent 60%),#0a0b14;
  box-shadow:0 40px 80px -40px rgba(20,20,70,.6)}
.lab-panel h2{font-size:clamp(30px,3.4vw,46px);font-weight:500;letter-spacing:-.03em;line-height:1.05;max-width:18ch}
.lab-panel h2 .accent{background:linear-gradient(110deg,#b9a7ff,#7cc4ff);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}
.lab-txt > p{margin-top:18px;color:rgba(255,255,255,.75);font-size:16.5px;line-height:1.6;max-width:52ch}
.lab-axes{display:flex;flex-wrap:wrap;gap:8px;margin-top:24px}
.lab-axes span{padding:7px 13px;border-radius:999px;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.05);font-size:13.5px;color:rgba(255,255,255,.88)}
.lab-cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}
.btn-ghost-light{color:#fff;border:1px solid rgba(255,255,255,.35);background:transparent}
.btn-ghost-light:hover{background:rgba(255,255,255,.08)}
.lab-steps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;align-self:center}
.lab-steps li{display:flex;gap:18px;padding:18px 20px;border-radius:16px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);position:relative}
.lab-steps li:not(:last-child)::after{content:"";position:absolute;left:39px;bottom:-7px;width:1px;height:8px;background:rgba(255,255,255,.25)}
.lab-n{flex:none;width:38px;height:38px;border-radius:12px;display:grid;place-items:center;font-weight:600;font-size:14px;background:linear-gradient(145deg,#7902FE,#1C2AD0 70%,#0284FE);box-shadow:inset 0 1px 0 rgba(255,255,255,.3)}
.lab-steps b{font-size:16.5px;font-weight:600}
.lab-steps p{margin-top:4px;color:rgba(255,255,255,.7);font-size:14.5px;line-height:1.5}
@media (max-width:900px){.lab-panel{grid-template-columns:1fr;gap:32px;padding:32px 24px}}

/* Puces TP5 : carré noir, liseré lumineux, coin inférieur gauche irisé, texte argenté */
.tp-chip{border-radius:5px;box-shadow:0 0 0 1px rgba(170,200,255,.55),0 0 22px rgba(110,150,255,.32),0 40px 70px -35px rgba(10,10,40,.7)}
.tp-chip::before{border-radius:inherit;box-shadow:inset 0 0 0 1px rgba(200,220,255,.35),inset 0 0 18px rgba(120,160,255,.18)}
.tp-chip::after{display:none}
.tp-model:hover .tp-chip{transform:translateY(-6px);box-shadow:0 0 0 1px rgba(190,215,255,.7),0 0 30px rgba(120,160,255,.45),0 46px 80px -35px rgba(10,10,40,.75)}
.tp-chip-in{color:#b9cadb}
.tp-chip-row{font-weight:500;text-shadow:0 1px 0 rgba(255,255,255,.08)}
.tp-chip-row img{opacity:.8;filter:none}
.tp-chip-sub{font-weight:500;color:#b9cadb}
/* Puces TP5 plus petites */
.tp-models{grid-template-columns:repeat(3,minmax(0,1fr));gap:40px;max-width:1040px;margin:0 auto}
.tp-model{display:flex;flex-direction:column;align-items:flex-start;max-width:240px;margin:0 auto;width:100%}
.tp-chip{width:100%;max-width:240px}
.tp-chip-row{font-size:58px}
.tp-chip-sub{font-size:26px}
.tp-model-t{width:100%;margin-top:18px}
@media (max-width:900px){.tp-models{grid-template-columns:1fr;gap:44px}}
/* Effet de matière sur les puces TP5 : grain, reflet satiné, texte métal brossé */
.tp-chip::after{display:block;content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:1;
  background:
    linear-gradient(115deg,transparent 0%,transparent 38%,rgba(255,255,255,.09) 46%,rgba(255,255,255,.02) 52%,transparent 60%) 0 0/250% 100% no-repeat,
    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='.9' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .55 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  mix-blend-mode:overlay;opacity:.55;transition:background-position 1.1s cubic-bezier(.16,1,.3,1)}
.tp-model:hover .tp-chip::after{background-position:100% 0,0 0}
.tp-chip-in{z-index:2}
.tp-chip-row span,.tp-chip-sub{
  background:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='1.4' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .55 0 0 0 0 .62 0 0 0 0 .7 0 0 0 .5 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)'/%3E%3C/svg%3E"),
    linear-gradient(180deg,#e2ebf5 0%,#b9cadb 45%,#93a8bd 100%);
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}
.tp-chip-row img{filter:drop-shadow(0 1px 0 rgba(255,255,255,.06)) contrast(.92)}
/* Menu Secteurs sur deux colonnes */
.mega-sectors{display:grid;grid-template-columns:max-content max-content;column-gap:12px}
.mega-menu .mega-sectors .mega-sub{white-space:nowrap;padding:6px 8px!important;font-size:13.5px!important}
/* Bouton démo dans le header */
.nav-demo{display:inline-flex;align-items:center;height:38px;padding:0 16px;margin-left:4px;border-radius:999px;background:var(--ink);color:var(--bg);font-size:14px;font-weight:500;white-space:nowrap;transition:opacity .15s,transform .15s}
.nav-demo:hover{opacity:.88}
.nav-demo:active{transform:scale(.97)}
.nav-demo:focus-visible{outline:2px solid #7c5cff;outline-offset:2px}
@media (max-width:640px){.nav-demo{display:none}}

/* Menu Plateforme */
.app-ic{position:relative;display:grid;place-items:center;border-radius:28%;flex:none;overflow:hidden;background:var(--b)}
.app-ic::before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,var(--a) 0 50%,transparent 50%);opacity:.9}
.app-ic svg{position:relative;width:48%;height:48%;fill:none;stroke:#fff;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.apps-menu-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px 8px}
.apps-menu .app-ic{border-radius:10px}
/* Bloc « Prêt à passer au niveau supérieur ? » */
.nx-next{padding:112px 0 120px}
.nx-head{text-align:center;max-width:820px;margin:0 auto}
.nx-head h2{font-size:clamp(34px,4.4vw,56px);letter-spacing:-.035em;line-height:1.08;font-weight:500}
.nx-head p{margin-top:16px;font-size:18px;line-height:1.55;color:var(--ink-2)}
.nx-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;max-width:1080px;margin:56px auto 0}
.nx-card{position:relative;overflow:hidden;border:1px solid var(--line);border-radius:24px;background:var(--bg-soft);padding:40px;display:flex;flex-direction:column;align-items:flex-start;min-height:320px;transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}
.nx-card::after{content:"";position:absolute;width:340px;height:340px;right:-120px;top:-140px;border-radius:50%;opacity:.55;pointer-events:none;filter:blur(10px)}
.nx-card.a::after{background:radial-gradient(circle,rgba(121,2,254,.18),transparent 65%)}
.nx-card.b::after{background:radial-gradient(circle,rgba(2,132,254,.18),transparent 65%)}
.nx-card:hover{transform:translateY(-3px);border-color:var(--line-2);box-shadow:0 30px 60px -36px rgba(20,20,60,.3)}
.nx-ic{width:52px;height:52px;border-radius:28%;display:grid;place-items:center;position:relative;z-index:1;box-shadow:inset 0 1px 0 rgba(255,255,255,.45),0 12px 24px -12px rgba(58,46,224,.6)}
.nx-card.a .nx-ic{background:linear-gradient(160deg,#b388ff,#7029e6)}
.nx-card.b .nx-ic{background:linear-gradient(160deg,#5aa8ff,#2059e8)}
.nx-ic svg{width:24px;height:24px;fill:none;stroke:#fff;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.nx-card h3{position:relative;z-index:1;margin-top:28px;font-size:26px;font-weight:500;letter-spacing:-.025em;line-height:1.2}
.nx-card p{position:relative;z-index:1;margin-top:10px;font-size:16.5px;line-height:1.6;color:var(--ink-2);max-width:42ch}
.nx-card .btn{position:relative;z-index:1;margin-top:auto}
.nx-card p + .btn{margin-top:28px}
@media (max-width:800px){.nx-next{padding:72px 0 80px}.nx-grid{grid-template-columns:1fr;gap:16px;margin-top:36px}.nx-card{padding:28px;min-height:0}}

.metier-link{color:inherit;text-decoration:none;background:linear-gradient(currentColor,currentColor) 0 100%/0 1px no-repeat;transition:background-size .2s}
.metier-link:hover{background-size:100% 1px}
.metier-link::after{content:" →";opacity:.5}

.fx.fx-wide{grid-column:1/-1;background:linear-gradient(135deg,rgba(121,2,254,.07),rgba(2,132,254,.07));border-color:rgba(100,81,238,.25)}
.mega-menu .mega-subhead{font-family:'Alliance No.2','Inter',system-ui,sans-serif;font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;font-weight:600;color:var(--ink-3);padding:14px 12px 6px;margin-top:8px;border-top:1px solid rgba(15,15,30,0.06)}
html[data-theme="dark"] .mega-menu .mega-subhead{border-top-color:rgba(255,255,255,0.08)}
.mega-menu .mega-sub .ver-pill{margin-left:auto;font-weight:500}

/* Sélecteur de langue du pied de page (7 langues) */
.foot-lang{position:relative}
.foot-lang-btn{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border:1px solid var(--line-2);border-radius:10px;background:transparent;color:var(--ink-2);font:inherit;font-size:13.5px;cursor:pointer;transition:border-color .15s,color .15s}
.foot-lang-btn:hover,.foot-lang-btn[aria-expanded="true"]{color:var(--ink);border-color:var(--ink-3)}
.foot-lang-menu{position:absolute;right:0;bottom:calc(100% + 8px);min-width:190px;padding:6px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 20px 50px -20px rgba(0,0,0,.22);opacity:0;pointer-events:none;transform:translateY(4px);transition:opacity .18s,transform .18s;z-index:60}
.foot-lang-menu.open{opacity:1;pointer-events:auto;transform:none}
.foot-lang-menu button{display:block;width:100%;text-align:left;padding:9px 12px;border:0;border-radius:8px;background:transparent;color:var(--ink);font:inherit;font-size:14px;cursor:pointer}
.foot-lang-menu button:hover{background:var(--bg-soft)}
.foot-lang-menu button.active{font-weight:600}
html[data-theme="dark"] .foot-lang-menu{background:#161616;border-color:var(--line-2)}
html[data-theme="dark"] .foot-lang-menu button:hover{background:rgba(255,255,255,.06)}
.lang-btn .lang-globe{flex:none}
/* Langues aux libellés longs (de, es, it…) : menu sur une ligne */
.nav-center .trigger,.nav-center a{white-space:nowrap}
@media (max-width:1360px){html:is([lang="de"],[lang="es"],[lang="it"]) .nav-center{font-size:13px}html:is([lang="de"],[lang="es"],[lang="it"]) .nav-center .trigger,html:is([lang="de"],[lang="es"],[lang="it"]) .nav-center>a{padding-left:8px;padding-right:8px}}
/* Méga-menu « Nos produits » : colonnes qui tiennent dans le panneau */
.mega-menu .mega-col{min-width:0}
.mega-menu .mi-body{min-width:0}
.mega-menu .mi-desc{white-space:normal}
.mega-menu .mega-sub{white-space:normal;line-height:1.35}
.mega-menu .mega-sectors{grid-template-columns:repeat(2,minmax(0,1fr))!important}
.mega-menu .mega-sectors .mega-sub{white-space:normal!important}
@media (max-width:1280px){.mega-menu{padding-left:18px!important;padding-right:18px!important}.mega-menu .mega-item,.mega-menu .mega-sub{padding-left:9px!important;padding-right:9px!important}.mega-menu .mi-title{font-size:13.5px!important}.mega-menu .mega-sub{font-size:13px!important}.mega-menu .mega-sectors{column-gap:6px}}

/* Place réservée au bandeau et au menu injectés par shared.js : la page ne se décale plus à leur arrivée (CLS). Hauteurs mesurées par langue et largeur. */
#nav-mount{display:block;min-height:128px}
@media (max-width:359px){#nav-mount{min-height:155px}}
@media (min-width:600px){#nav-mount{min-height:101px}}
@media (min-width:768px){#nav-mount{min-height:115px}}
@media (min-width:900px){#nav-mount{min-height:101px}}
@media (min-width:1024px){#nav-mount{min-height:105px}}
html[lang="fr"] #nav-mount{min-height:155px}
@media (min-width:430px){html[lang="fr"] #nav-mount{min-height:128px}}
@media (min-width:768px){html[lang="fr"] #nav-mount{min-height:115px}}
@media (min-width:1024px){html[lang="fr"] #nav-mount{min-height:105px}}

/* Pied de page (refonte) */
footer .foot-grid{grid-template-columns:minmax(0,1.5fr) repeat(4,minmax(0,1fr));gap:40px 32px}
footer .foot-brand{max-width:300px}
footer .foot-brand p{font-size:14px;line-height:1.6;color:var(--ink-2);margin-top:18px}
footer .foot-cta{display:inline-flex;align-items:center;gap:8px;margin-top:20px;padding:9px 16px;border-radius:999px;background:var(--ink);color:var(--bg);font-size:13.5px;font-weight:500;transition:transform .15s,opacity .15s}
footer .foot-cta:hover{opacity:.9;transform:translateY(-1px)}
footer .foot-mail{display:block;margin-top:14px;font-size:13.5px;color:var(--ink-2)}
footer .foot-mail:hover{color:var(--ink)}
footer .foot-col h5{font-size:11.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);margin-bottom:14px}
footer .foot-col a{padding:5px 0;font-size:14px;line-height:1.35;color:var(--ink-2)}
footer .foot-col a:hover{color:var(--ink)}
footer .foot-copy{color:var(--ink-3)}
footer .foot-sig{color:var(--ink-3)}
@media (max-width:1000px){footer .foot-grid{grid-template-columns:repeat(4,minmax(0,1fr))}footer .foot-brand{grid-column:1/-1;max-width:520px}}
@media (max-width:640px){footer .foot-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 20px}}
