/* =========================================================
   Innov Infotech — stylesheet (rewritten clean, single pass)
   ========================================================= */

:root{
  --paper:#FFFFFF;
  --surface:#FFFFFF;
  --surface-2:#F5F6F9;
  --line:#DCDFE7;
  --line-soft:#E9EBF1;
  --text:#101425;
  --muted:#545A6E;
  --faint:#838A9E;
  --red:#C8102E;
  --red-soft:#FBE9EC;
  --blue:#1257A8;
  --blue-soft:#E7EDF8;
  --on-red:#FFFFFF;
  --navy:#0A1730;
  --navy-2:#11305F;
  --dark-bg:#0B1226;
  --dark-fg:#EEF1F8;
  --dark-muted:#9BA4BC;
  --dark-line:#1E2945;
  --shadow:0 1px 2px rgba(16,20,37,.05),0 10px 28px -14px rgba(16,20,37,.22);
  --maxw:1180px;
  --hdr-h:56px;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --paper:#080C18;--surface:#0F1526;--surface-2:#131A2E;
    --line:#242E4A;--line-soft:#1B2338;
    --text:#EEF1F8;--muted:#A3ABC2;--faint:#7F8AA5;
    --red:#F2596B;--red-soft:#2A1219;--blue:#6FAEEA;--blue-soft:#111E38;
    --on-red:#1A0206;
    --dark-bg:#040810;--dark-line:#1E2945;
    --shadow:0 1px 2px rgba(0,0,0,.5),0 12px 32px -16px rgba(0,0,0,.85);
  }
}
:root[data-theme="dark"]{
  --paper:#080C18;--surface:#0F1526;--surface-2:#131A2E;
  --line:#242E4A;--line-soft:#1B2338;
  --text:#EEF1F8;--muted:#A3ABC2;--faint:#7F8AA5;
  --red:#F2596B;--red-soft:#2A1219;--blue:#6FAEEA;--blue-soft:#111E38;
  --on-red:#1A0206;
  --dark-bg:#040810;--dark-line:#1E2945;
  --shadow:0 1px 2px rgba(0,0,0,.5),0 12px 32px -16px rgba(0,0,0,.85);
}

/* ---------- base ---------- */
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;background:var(--paper);color:var(--text);
  font-family:"Source Sans 3",system-ui,-apple-system,"Segoe UI",sans-serif;
  font-size:16.5px;line-height:1.64;-webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4,h5{font-family:Archivo,"Helvetica Neue",Arial,sans-serif;margin:0;line-height:1.14;letter-spacing:-.022em;text-wrap:balance}
p{margin:0}
a{color:inherit}
img{max-width:100%}
ul{margin:0;padding:0;list-style:none}
.wrap{width:100%;max-width:var(--maxw);margin:0 auto;padding-inline:24px}
section{padding-block:84px}
:focus-visible{outline:2px solid var(--blue);outline-offset:3px}
.skip{position:absolute;left:-9999px}
.skip:focus{left:12px;top:12px;background:var(--red);color:#fff;padding:10px 14px;z-index:99}
.arw{display:inline-block;transition:transform .2s ease}

.eyebrow{
  font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:11.5px;letter-spacing:.15em;
  text-transform:uppercase;color:var(--red);display:flex;align-items:center;gap:10px;
}
.eyebrow::before{content:"";width:20px;height:2px;background:var(--red);flex:none}
.eyebrow.b{color:var(--blue)}
.eyebrow.b::before{background:var(--blue)}

.sec-head{display:grid;gap:14px;margin-bottom:46px;max-width:64ch}
.sec-head h2{font-size:clamp(29px,3.4vw,40px);font-weight:600}
.sec-head p{color:var(--muted);font-size:17px}
.sec-head.center{margin-inline:auto;text-align:center;justify-items:center}
.sec-head.center .eyebrow{justify-content:center}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:9px;text-decoration:none;
  font-family:Archivo,sans-serif;font-weight:600;font-size:14.5px;padding:13px 22px;
  border:1px solid transparent;cursor:pointer;
  transition:background .2s ease,transform .18s ease,border-color .2s ease,color .2s ease,box-shadow .2s ease;
}
.btn-red{background:var(--red);color:var(--on-red);box-shadow:0 8px 22px -12px rgba(200,16,46,.9)}
.btn-red:hover{transform:translateY(-2px);box-shadow:0 14px 30px -14px rgba(200,16,46,.95)}
.btn-ghost{border-color:var(--line);color:var(--text);background:var(--paper)}
.btn-ghost:hover{border-color:var(--red);color:var(--red);transform:translateY(-2px)}
.btn:hover .arw{transform:translateX(3px)}

/* ---------- header ---------- */
header{
  position:sticky;top:0;z-index:60;
  background:linear-gradient(135deg,var(--navy),var(--navy-2) 52%,#14243F);
  border-bottom:1px solid rgba(255,255,255,.1);
  transition:box-shadow .3s ease;
}
header.stuck{box-shadow:0 10px 30px -18px rgba(0,0,0,.85)}
.bar{
  display:grid;grid-template-columns:minmax(0,auto) minmax(0,1fr) minmax(0,auto);
  align-items:center;gap:18px;padding-block:7px;
}
.logo{display:grid;gap:1px;justify-items:start;text-decoration:none}
.logo img{height:34px;width:auto;display:block}
.logo .tagline{
  font-family:"IBM Plex Mono",monospace;font-size:8.5px;letter-spacing:.16em;
  text-transform:uppercase;color:#7FB6FF;white-space:nowrap;
}
.headright{display:contents}

nav.main{grid-column:2;justify-self:center;display:flex;align-items:center;gap:6px}
nav.main > a{
  font-size:14px;font-weight:600;color:rgba(255,255,255,.86);text-decoration:none;
  padding:7px 14px;border-radius:5px;white-space:nowrap;
  transition:background .2s ease,color .2s ease;
}
nav.main > a:hover{color:#fff;background:rgba(255,255,255,.1)}
nav.main > a.on{color:#FF8A9C;background:rgba(224,36,62,.18)}

.hcontact{grid-column:3;justify-self:end;display:flex;align-items:center;gap:10px}
.hcontact .phone{
  display:inline-flex;align-items:center;gap:7px;text-decoration:none;
  font-size:12.5px;color:#DCE5F4;white-space:nowrap;transition:color .2s ease;
}
.hcontact .phone:hover{color:#fff}
.hcontact .phone svg{width:12px;height:12px;color:#7FB6FF;flex:none;transition:color .2s ease}
.hcontact .phone:hover svg{color:#FF8A9C}
.hcontact .ib{
  width:30px;height:30px;border-radius:50%;display:grid;place-items:center;flex:none;
  color:#fff;text-decoration:none;transition:background .2s ease,transform .2s ease;
}
.hcontact .ib svg{width:14px;height:14px}
.hcontact .ib.mail{background:#C8102E}
.hcontact .ib.mail:hover{background:#E0243E;transform:translateY(-1px)}
.hcontact .ib.li{background:#1B6FC0}
.hcontact .ib.li:hover{background:#2C8AE0;transform:translateY(-1px)}

.menu-toggle{
  display:none;grid-column:3;justify-self:end;background:none;
  border:1px solid rgba(255,255,255,.3);color:#fff;padding:9px 13px;
  font-family:"IBM Plex Mono",monospace;font-size:12px;cursor:pointer;
}

/* ---------- services mega menu ---------- */
.dd{position:relative;display:inline-flex}
.dd > button{
  font-family:inherit;font-size:14px;font-weight:600;color:rgba(255,255,255,.86);
  background:none;border:0;cursor:pointer;display:inline-flex;align-items:center;gap:7px;
  padding:7px 14px;border-radius:5px;white-space:nowrap;
  transition:background .2s ease,color .2s ease;
}
.dd > button:hover,.dd.open > button{color:#fff;background:rgba(255,255,255,.1)}
.chev{font-size:9px;opacity:.75;display:inline-block;transition:transform .25s ease}
.dd.open .chev{transform:rotate(180deg)}
.dd-panel{
  position:fixed;top:var(--hdr-h);left:50%;transform:translate(-50%,-10px);
  width:min(1040px,calc(100vw - 32px));
  background:#0C1D3C;border:1px solid rgba(255,255,255,.1);border-top:0;
  border-radius:0 0 12px 12px;box-shadow:0 40px 80px -36px rgba(0,0,0,.8);
  opacity:0;visibility:hidden;pointer-events:none;overflow:hidden;
  transition:opacity .22s ease,transform .26s cubic-bezier(.2,.75,.3,1),visibility .26s;
}
.dd.open .dd-panel{opacity:1;visibility:visible;pointer-events:auto;transform:translate(-50%,0)}
.dd-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:2px;padding:18px 18px 14px}
.dd-panel a{
  display:grid;gap:9px;align-content:start;padding:16px 15px;border-radius:9px;
  text-decoration:none;border:1px solid transparent;
  transition:background .2s ease,border-color .2s ease;
}
.dd-panel a:hover{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.12)}
.dd-panel .di{
  width:36px;height:36px;border-radius:9px;display:grid;place-items:center;
  background:rgba(240,89,107,.15);color:#FF8A9C;
  transition:transform .25s cubic-bezier(.2,.75,.3,1),background .2s ease;
}
.dd-panel a.b .di{background:rgba(124,182,255,.15);color:#8CC0FF}
.dd-panel a:hover .di{transform:translateY(-2px);background:rgba(240,89,107,.26)}
.dd-panel a.b:hover .di{background:rgba(124,182,255,.26)}
.dd-panel .di svg{width:18px;height:18px}
.dd-panel .dt{display:grid;gap:4px;min-width:0}
.dd-panel strong{font-family:Archivo,sans-serif;font-size:14.5px;font-weight:600;color:#fff;line-height:1.25}
.dd-panel .dt span{font-size:12px;color:#8FA2C0;line-height:1.4}
.dd-foot{
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 20px;
  padding:13px 22px;background:rgba(0,0,0,.24);border-top:1px solid rgba(255,255,255,.08);
}
.dd-foot span{font-size:12.5px;color:#8FA2C0}
.dd-foot a{
  display:inline-flex;align-items:center;gap:8px;text-decoration:none;
  font-family:Archivo,sans-serif;font-weight:600;font-size:13.5px;color:#FF8A9C;
}
.dd-foot a:hover{color:#fff}
.dd-foot a:hover .arw{transform:translateX(4px)}

/* ---------- hero ---------- */
.hero{position:relative;overflow:hidden;background:linear-gradient(135deg,var(--navy),var(--navy-2) 46%,#14243F)}
.hero::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:
    radial-gradient(48% 55% at 16% 14%,rgba(200,16,46,.3),transparent 68%),
    radial-gradient(52% 58% at 86% 84%,rgba(30,120,220,.3),transparent 68%);
}
#flow{position:absolute;inset:0;width:100%;height:100%;opacity:.3}
.hero .wrap{position:relative;display:grid;gap:22px;padding-block:96px 88px}
.hero.center .wrap{justify-items:center;text-align:center}
.hero.center .eyebrow{justify-content:center}
.hero .eyebrow{color:#FF8A9C}
.hero .eyebrow::before{background:#FF8A9C}
h1{font-size:clamp(36px,5.2vw,58px);font-weight:700;max-width:20ch;color:#fff}
h1 .grad{
  background:linear-gradient(100deg,#FF6B7F,#FF8A9C 34%,#7FB6FF 72%,#A8CCFF);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.lede{font-size:clamp(17px,1.6vw,19.5px);color:#C3CFE4;max-width:56ch}
.hero.center .lede{margin-inline:auto}
.hero-cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:6px}
.hero.center .hero-cta{justify-content:center}
.hero .btn-red{background:#E0243E;color:#fff}
.hero .btn-red:hover{background:#F0304B}
.hero .btn-ghost{background:transparent;border-color:rgba(255,255,255,.34);color:#fff}
.hero .btn-ghost:hover{background:rgba(255,255,255,.1);border-color:#fff;color:#fff}

@keyframes rise{from{opacity:.001;transform:translateY(14px)}to{opacity:1;transform:none}}
.hero .eyebrow{animation:rise .55s cubic-bezier(.2,.7,.3,1) both}
.hero h1{animation:rise .6s .06s cubic-bezier(.2,.7,.3,1) both}
.hero .lede{animation:rise .6s .12s cubic-bezier(.2,.7,.3,1) both}
.hero-cta{animation:rise .6s .18s cubic-bezier(.2,.7,.3,1) both}

/* ---------- page heads (inner pages) ---------- */
.phead{background:linear-gradient(140deg,var(--red-soft),var(--surface-2) 45%,var(--blue-soft));border-bottom:1px solid var(--line)}
.phead .wrap{display:grid;gap:16px;padding-block:64px 56px}
.phead h1{font-size:clamp(32px,4.4vw,50px);color:var(--text)}
.phead .lede{color:var(--muted)}
.crumbs{font-family:"IBM Plex Mono",monospace;font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--faint)}
.crumbs a{text-decoration:none}
.crumbs a:hover{color:var(--red)}

/* ---------- partner marquee ---------- */
.partners{padding-block:42px;border-bottom:1px solid var(--line-soft)}
.partners .lab{
  font-family:"IBM Plex Mono",monospace;font-size:12px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--faint);margin-bottom:22px;
}
.marquee{
  overflow:hidden;position:relative;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);
}
.mtrack{display:flex;gap:20px;width:max-content;animation:mscroll 44s linear infinite}
.marquee:hover .mtrack,.marquee:focus-within .mtrack{animation-play-state:paused}
.mgroup{display:flex;gap:20px}
@keyframes mscroll{from{transform:translateX(0)}to{transform:translateX(calc(-50% - 10px))}}
.chip{
  display:inline-flex;align-items:center;gap:16px;min-width:260px;padding:22px 30px;
  border:1px solid var(--line);background:var(--surface);white-space:nowrap;
  transition:border-color .22s ease,transform .22s ease,box-shadow .22s ease;
}
.chip:hover{border-color:var(--blue);transform:translateY(-3px);box-shadow:var(--shadow)}
.chip .mk{height:46px;max-width:56px;width:auto;object-fit:contain;flex:none}
.chip.nologo .mk{display:none}
.chip b{font-family:Archivo,sans-serif;font-size:20px;font-weight:600;color:var(--text);letter-spacing:-.02em}

/* ---------- service cards ---------- */
.sgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.scard{
  position:relative;text-decoration:none;background:var(--surface);border:1px solid var(--line);
  padding:30px 26px 26px;display:grid;gap:12px;align-content:start;
  transition:transform .28s cubic-bezier(.2,.7,.3,1),box-shadow .28s ease,border-color .28s ease;
}
.scard::before{
  content:"";position:absolute;inset:0 0 auto 0;height:3px;background:var(--red);
  transform:scaleX(0);transform-origin:left;transition:transform .32s cubic-bezier(.2,.7,.3,1);
}
.scard.b::before{background:var(--blue)}
.scard:hover{transform:translateY(-6px);box-shadow:0 22px 44px -26px rgba(16,20,37,.5);border-color:transparent}
.scard:hover::before{transform:scaleX(1)}
.scard .ico{
  width:54px;height:54px;display:grid;place-items:center;
  background:var(--red-soft);color:var(--red);transition:transform .3s cubic-bezier(.2,.7,.3,1);
}
.scard.b .ico{background:var(--blue-soft);color:var(--blue)}
.scard .ico svg{width:26px;height:26px}
.scard:hover .ico{transform:translateY(-2px) scale(1.07)}
.scard h4{font-size:18px;font-weight:600;line-height:1.25}
.scard p{font-size:14.5px;color:var(--muted)}
.scard .more{
  margin-top:6px;font-family:"IBM Plex Mono",monospace;font-size:11.5px;letter-spacing:.11em;
  text-transform:uppercase;color:var(--red);display:inline-flex;gap:7px;align-items:center;
  transition:letter-spacing .25s ease;
}
.scard.b .more{color:var(--blue)}
.scard:hover .more{letter-spacing:.16em}
.scard:hover .arw{transform:translateX(4px)}

/* ---------- process ---------- */
.svc{background:linear-gradient(180deg,var(--blue-soft),var(--surface-2) 70%);border-block:1px solid var(--line-soft)}
.steps{display:grid;grid-template-columns:repeat(4,1fr);border-top:2px solid var(--blue)}
.step{padding:26px 24px 0;border-right:1px solid var(--line);transition:background .25s ease}
.step:last-child{border-right:none}
.step:hover{background:rgba(18,87,168,.05)}
.step .n{font-family:"IBM Plex Mono",monospace;font-size:12px;color:var(--red);letter-spacing:.12em}
.step h4{font-size:19.5px;font-weight:600;margin:9px 0 8px}
.step p{font-size:15px;color:var(--muted)}

/* ---------- dark band ---------- */
.why{background:linear-gradient(150deg,var(--dark-bg),#12203f);color:var(--dark-fg);border-block:1px solid var(--dark-line)}
.why .sec-head h2{color:var(--dark-fg)}
.why .sec-head p{color:var(--dark-muted)}
.why4{display:grid;grid-template-columns:repeat(4,1fr);gap:28px}
.wit{display:grid;gap:9px;padding-top:20px;border-top:1px solid var(--dark-line);transition:border-color .3s ease}
.wit:hover{border-top-color:var(--red)}
.wit h4{font-size:18.5px;font-weight:600;color:var(--dark-fg)}
.wit p{font-size:15px;color:var(--dark-muted)}
.wit .ic{width:26px;height:26px;color:#FF8A9C;transition:transform .3s cubic-bezier(.2,.7,.3,1)}
.wit:nth-child(even) .ic{color:#7FB6FF}
.wit:hover .ic{transform:translateY(-3px) scale(1.06)}

/* ---------- inner page blocks ---------- */
.split{display:grid;grid-template-columns:1.15fr .85fr;gap:56px;align-items:start}
.split h3{font-size:clamp(22px,2.6vw,29px);font-weight:600;margin-bottom:14px}
.split p{color:var(--muted)}
.split p + p{margin-top:14px}
.aside{border:1px solid var(--line);background:linear-gradient(160deg,var(--blue-soft),var(--surface-2));padding:26px}
.aside h4{font-size:16px;font-weight:600;margin-bottom:14px}
.ticks{display:grid;gap:10px}
.ticks li{display:flex;gap:11px;font-size:15.5px;align-items:baseline}
.ticks li::before{content:"";width:6px;height:6px;flex:none;background:var(--red);transform:translateY(-2px)}
.ticks.b li::before{background:var(--blue)}
.stack{display:flex;flex-wrap:wrap;gap:8px}
.stack span{
  font-family:"IBM Plex Mono",monospace;font-size:11.5px;color:var(--muted);
  background:var(--surface-2);border:1px solid var(--line-soft);padding:5px 9px;
  transition:border-color .2s ease,color .2s ease;
}
.stack span:hover{border-color:var(--blue);color:var(--blue)}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
.card{background:var(--paper);padding:28px 26px;display:grid;gap:9px;align-content:start;transition:background .2s ease}
.card:hover{background:var(--surface-2)}
.card h4{font-size:17.5px;font-weight:600}
.card p{font-size:15px;color:var(--muted)}
.models{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.model{border:1px solid var(--line);background:var(--surface);padding:26px;display:grid;gap:10px;align-content:start}
.model .t{font-family:"IBM Plex Mono",monospace;font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--blue)}
.model h4{font-size:19px;font-weight:600}
.model p{font-size:15px;color:var(--muted)}
.faq{border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line);padding:18px 0}
.faq summary{font-family:Archivo,sans-serif;font-weight:600;font-size:17.5px;cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:16px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";color:var(--red);font-family:"IBM Plex Mono",monospace}
.faq details[open] summary::after{content:"\2212"}
.faq p{color:var(--muted);margin-top:12px;max-width:70ch}
.roles{display:grid;gap:1px;background:var(--line);border:1px solid var(--line)}
.role{background:var(--paper);padding:22px 24px;display:flex;flex-wrap:wrap;gap:12px 20px;align-items:center;justify-content:space-between}
.role h4{font-size:17.5px;font-weight:600}
.role .meta{font-family:"IBM Plex Mono",monospace;font-size:12px;color:var(--faint);letter-spacing:.06em}

/* ---------- contact ---------- */
.cta .wrap{display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:start}
.cta h2{font-size:clamp(28px,3.4vw,40px);font-weight:600}
.cta .sub{color:var(--muted);margin-top:14px;max-width:46ch}
.contact-list{margin-top:26px;display:grid;gap:14px}
.ci{display:flex;gap:12px;align-items:flex-start;font-size:15.5px}
.ci .k{font-family:"IBM Plex Mono",monospace;font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--faint);width:80px;flex:none;padding-top:4px}
.ci a{text-decoration:none}
.ci a:hover{color:var(--red)}
form{display:grid;gap:13px;background:var(--surface-2);border:1px solid var(--line);padding:26px}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:13px}
label{font-family:"IBM Plex Mono",monospace;font-size:11.5px;letter-spacing:.11em;text-transform:uppercase;color:var(--faint);display:grid;gap:6px}
input,textarea,select{
  font-family:inherit;font-size:15px;padding:12px 13px;background:var(--paper);color:var(--text);
  border:1px solid var(--line);width:100%;border-radius:0;
}
input:focus,textarea:focus,select:focus{border-color:var(--blue);outline:none}
textarea{resize:vertical;min-height:92px}
.form-note{font-size:13.5px;color:var(--muted)}

/* ---------- footer ---------- */
footer{background:linear-gradient(150deg,var(--dark-bg),#101c36);color:var(--dark-fg);padding-block:56px 26px;border-top:1px solid var(--dark-line)}
.fgrid{display:grid;grid-template-columns:1.5fr 1fr 1.1fr 1.1fr;gap:38px}
.fcol h5{font-family:"IBM Plex Mono",monospace;font-size:11.5px;letter-spacing:.13em;text-transform:uppercase;color:#FF8A9C;margin:0 0 15px;font-weight:500}
.fcol:nth-child(3) h5{color:#7FB6FF}
.fcol ul{display:grid;gap:10px}
.fcol a{text-decoration:none;font-size:14.5px;color:var(--dark-muted)}
.fcol a:hover{color:#fff}
.fbrand .logo .tagline{color:#7FB6FF}
.fbrand .logo img{height:44px}
.fbrand p{color:var(--dark-muted);font-size:14.5px;margin-top:14px;max-width:38ch}
.social{display:flex;gap:10px;margin-top:18px}
.social a{width:34px;height:34px;border:1px solid var(--dark-line);display:grid;place-items:center;color:var(--dark-muted)}
.social a:hover{border-color:var(--red);color:#FF8A9C}
.fbot{
  margin-top:42px;padding-top:20px;border-top:1px solid var(--dark-line);
  display:flex;flex-wrap:wrap;gap:10px 22px;justify-content:space-between;
  font-size:13px;color:var(--dark-muted);font-family:"IBM Plex Mono",monospace;
}
.fbot a{text-decoration:none}
.fbot a:hover{color:#fff}

/* ---------- reveal ---------- */
.reveal.armed{opacity:.001;transform:translateY(20px)}
.reveal.shown{opacity:1;transform:none;transition:opacity .6s cubic-bezier(.2,.7,.3,1),transform .6s cubic-bezier(.2,.7,.3,1)}

/* ---------- responsive ---------- */
@media (max-width:1180px){
  .hcontact .phone{
    font-size:0;gap:0;width:30px;height:30px;border-radius:50%;
    justify-content:center;background:rgba(255,255,255,.14);
  }
  .hcontact .phone svg{width:14px;height:14px;color:#fff}
}
@media (max-width:1080px){
  .dd-grid{grid-template-columns:repeat(2,1fr)}
  .sgrid{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:980px){
  .bar{grid-template-columns:auto 1fr;position:relative;padding-block:9px}
  .menu-toggle{display:block;grid-column:2;justify-self:end}
  .hcontact{position:absolute;right:82px;top:50%;transform:translateY(-50%);gap:8px}
  nav.main{
    display:none;grid-column:1/-1;position:absolute;top:100%;left:0;right:0;
    flex-direction:column;align-items:stretch;gap:0;
    background:#0E2244;border-bottom:1px solid rgba(255,255,255,.12);
    padding:14px 24px 20px;max-height:74vh;overflow:auto;
  }
  nav.main.open{display:flex}
  nav.main > a{padding:12px 0;border-radius:0;border-bottom:1px solid rgba(255,255,255,.12)}
  .dd{display:block;width:100%}
  .dd > button{width:100%;justify-content:space-between;padding:12px 0;border-radius:0;border-bottom:1px solid rgba(255,255,255,.12)}
  .dd-panel{
    position:static;width:auto;transform:none;opacity:1;visibility:visible;pointer-events:auto;
    background:transparent;border:0;box-shadow:none;border-radius:0;display:none;
  }
  .dd.open .dd-panel{display:block;transform:none}
  .dd-grid{grid-template-columns:1fr;gap:0;padding:6px 0 10px}
  .dd-panel a{grid-template-columns:36px 1fr;align-items:center;gap:12px;padding:11px 4px;border-radius:0}
  .dd-foot{background:transparent;padding:12px 4px}
  .why4,.cta .wrap,.fgrid,.split,.models,.grid3{grid-template-columns:1fr}
  .steps{grid-template-columns:1fr 1fr}
  .step{border-bottom:1px solid var(--line);padding-bottom:22px}
  .step:nth-child(2){border-right:none}
}
@media (max-width:620px){
  .sgrid{grid-template-columns:1fr}
  .steps{grid-template-columns:1fr}
  .step{border-right:none}
  .row2{grid-template-columns:1fr}
  .hero .wrap{padding-block:62px 56px}
  section{padding-block:58px}
  form{padding:20px}
  .role{flex-direction:column;align-items:flex-start}
  .chip{min-width:210px;padding:16px 22px;gap:12px}
  .chip .mk{height:34px;max-width:42px}
  .chip b{font-size:17px}
  .logo img{height:30px}
}
@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
  html{scroll-behavior:auto}
  .mtrack{flex-wrap:wrap}
  .reveal.armed{opacity:1!important;transform:none!important}
}

/* =========================================================
   LIGHT / CLEAN THEME — white grounds, colour only as accent
   ========================================================= */
:root{
  --ink-900:#12131A;   /* neutral near-black for dark bands */
  --ink-800:#1B1D26;
}

/* header: white, bordered, dark text */
header{
  background:var(--paper);
  border-bottom:1px solid var(--line);
}
header.stuck{box-shadow:0 1px 0 var(--line),0 10px 26px -20px rgba(16,20,37,.4)}
.logo .tagline{color:var(--faint)}
nav.main > a{color:var(--muted)}
nav.main > a:hover{color:var(--text);background:var(--surface-2)}
nav.main > a.on{color:var(--red);background:var(--red-soft)}
.dd > button{color:var(--muted)}
.dd > button:hover,.dd.open > button{color:var(--text);background:var(--surface-2)}
.hcontact .phone{color:var(--muted)}
.hcontact .phone:hover{color:var(--text)}
.hcontact .phone svg{color:var(--blue)}
.hcontact .phone:hover svg{color:var(--red)}
.menu-toggle{color:var(--text);border-color:var(--line)}

/* mega menu: white card */
.dd-panel{
  background:var(--surface);
  border:1px solid var(--line);border-top:0;
  box-shadow:0 30px 64px -34px rgba(16,20,37,.4);
}
.dd-panel a:hover{background:var(--surface-2);border-color:var(--line-soft)}
.dd-panel .di{background:var(--red-soft);color:var(--red)}
.dd-panel a.b .di{background:var(--blue-soft);color:var(--blue)}
.dd-panel a:hover .di{background:var(--red-soft)}
.dd-panel a.b:hover .di{background:var(--blue-soft)}
.dd-panel strong{color:var(--text)}
.dd-panel .dt span{color:var(--faint)}
.dd-foot{background:var(--surface-2);border-top:1px solid var(--line)}
.dd-foot span{color:var(--muted)}
.dd-foot a{color:var(--red)}
.dd-foot a:hover{color:var(--text)}

/* hero: white ground, dark type, red accent */
.hero{background:var(--paper);border-bottom:1px solid var(--line)}
.hero::before{background:none}
#flow{opacity:.5}
.hero .eyebrow{color:var(--red)}
.hero .eyebrow::before{background:var(--red)}
.hero h1{color:var(--text)}
h1 .grad{
  background:none;-webkit-background-clip:border-box;background-clip:border-box;
  color:var(--red);
}
.hero .lede{color:var(--muted)}
.hero .btn-red{background:var(--red);color:#fff}
.hero .btn-red:hover{background:#E0243E}
.hero .btn-ghost{background:var(--paper);border-color:var(--line);color:var(--text)}
.hero .btn-ghost:hover{background:var(--surface-2);border-color:var(--red);color:var(--red)}

/* page heads: plain light ground */
.phead{background:var(--surface-2);border-bottom:1px solid var(--line)}

/* section bands: neutral grey, no blue wash */
.svc{background:var(--surface-2);border-block:1px solid var(--line)}
.aside{background:var(--surface-2);border:1px solid var(--line)}
.steps{border-top:2px solid var(--text)}
.step:hover{background:var(--surface-2)}

/* dark bands: neutral charcoal instead of navy blue */
.why{
  background:var(--ink-900);
  border-block:1px solid var(--ink-800);
  --dark-line:#2A2C36;
}
.wit{border-top-color:#2A2C36}
.wit .ic{color:var(--red)}
.wit:nth-child(even) .ic{color:#7FA8E0}
footer{background:var(--ink-900);border-top:1px solid var(--ink-800)}
.fcol h5{color:var(--red)}
.fcol:nth-child(3) h5{color:#7FA8E0}
.social a{border-color:#2A2C36}
.fbot{border-top-color:#2A2C36}
.fbrand .logo .tagline{color:var(--dark-muted)}

/* marquee chips sit on white */
.chip{background:var(--paper);border-color:var(--line)}

/* =========================================================
   PLATFORMS — "Tools we work in" highlighted tiles
   ========================================================= */
.stack.big{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(168px,1fr));
  gap:14px;
  max-width:980px;
  margin-inline:auto;
}
.stack.big span{
  position:relative;
  display:flex;align-items:center;gap:12px;
  font-family:Archivo,sans-serif;font-size:15.5px;font-weight:600;letter-spacing:-.01em;
  color:var(--text);background:var(--surface);
  border:1px solid var(--line);border-radius:8px;
  padding:16px 18px 16px 17px;
  box-shadow:0 1px 2px rgba(16,20,37,.04);
  transition:transform .24s cubic-bezier(.2,.7,.3,1),box-shadow .24s ease,border-color .24s ease;
}
/* small brand dot, alternating red / blue down the grid */
.stack.big span::before{
  content:"";width:9px;height:9px;border-radius:50%;flex:none;
  background:var(--red);
  box-shadow:0 0 0 4px var(--red-soft);
  transition:transform .24s cubic-bezier(.2,.7,.3,1);
}
.stack.big span:nth-child(even)::before{
  background:var(--blue);
  box-shadow:0 0 0 4px var(--blue-soft);
}
.stack.big span:hover{
  transform:translateY(-3px);
  border-color:var(--red);
  box-shadow:0 14px 30px -18px rgba(16,20,37,.45);
  color:var(--text);
}
.stack.big span:nth-child(even):hover{border-color:var(--blue)}
.stack.big span:hover::before{transform:scale(1.25)}

@media (max-width:620px){
  .stack.big{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px}
  .stack.big span{font-size:14px;padding:13px 14px;gap:10px}
}

/* platform tiles: real product marks where we have them */
.stack.big span.tool{
  display:flex;align-items:center;gap:12px;
}
.stack.big span.tool::before{display:none}
.stack.big .tk{
  width:24px;height:24px;object-fit:contain;flex:none;
  transition:transform .24s cubic-bezier(.2,.7,.3,1);
}
.stack.big span.tool:hover .tk{transform:scale(1.14)}
/* tiles without a mark keep the brand dot */
.stack.big span.tool.nolg::before{
  display:block;content:"";width:9px;height:9px;border-radius:50%;flex:none;
  background:var(--red);box-shadow:0 0 0 4px var(--red-soft);
  transition:transform .24s cubic-bezier(.2,.7,.3,1);
}
.stack.big span.tool.nolg:nth-child(even)::before{
  background:var(--blue);box-shadow:0 0 0 4px var(--blue-soft);
}
.stack.big span.tool.nolg:hover::before{transform:scale(1.25)}
@media (max-width:620px){.stack.big .tk{width:20px;height:20px}}

/* external-link arrow on the Careers nav item */
nav.main > a .ext{width:11px;height:11px;opacity:.6;margin-left:-2px}
nav.main > a:hover .ext{opacity:1}

/* ---------- legal pages ---------- */
.legal{max-width:76ch}
.legal .updated{
  font-family:"IBM Plex Mono",monospace;font-size:12px;letter-spacing:.06em;
  text-transform:uppercase;color:var(--faint);
  padding-bottom:18px;border-bottom:1px solid var(--line);margin-bottom:8px;
}
.legal-sec{padding-block:26px;border-bottom:1px solid var(--line-soft)}
.legal-sec:last-child{border-bottom:0}
.legal-sec h2{font-size:21px;font-weight:600;margin-bottom:12px}
.legal-sec p{color:var(--muted);font-size:16px}
.legal-sec p + p{margin-top:12px}
.legal-sec a{color:var(--red);text-decoration:underline;text-underline-offset:2px}
.legal-sec a:hover{color:var(--text)}

/* =========================================================
   HOMEPAGE — stats band, value row, about split, creds,
   industries, quote, partner cards, final CTA
   ========================================================= */

/* commitments band (replaces the stats band) */
.statband{background:var(--surface-2);border-bottom:1px solid var(--line);padding-block:56px}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.promise{
  background:var(--paper);border:1px solid var(--line);padding:28px 26px;
  display:grid;gap:12px;align-content:start;border-top:3px solid var(--red);
  transition:transform .26s cubic-bezier(.2,.7,.3,1),box-shadow .26s ease;
}
.promise:nth-child(2){border-top-color:var(--blue)}
.promise:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.promise .pic{
  width:44px;height:44px;display:grid;place-items:center;border-radius:50%;
  background:var(--red-soft);color:var(--red);transition:transform .25s cubic-bezier(.2,.7,.3,1);
}
.promise:nth-child(2) .pic{background:var(--blue-soft);color:var(--blue)}
.promise:hover .pic{transform:scale(1.08)}
.promise .pic svg{width:21px;height:21px}
.promise h3{font-size:19px;font-weight:600;line-height:1.28}
.promise p{font-size:15px;color:var(--muted)}

/* value row */
.vrow{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
.vitem{
  background:var(--paper);padding:30px 26px;display:flex;align-items:center;gap:16px;
  transition:background .2s ease;
}
.vitem:hover{background:var(--surface-2)}
.vitem .vic{
  width:46px;height:46px;flex:none;display:grid;place-items:center;border-radius:50%;
  background:var(--red-soft);color:var(--red);transition:transform .25s cubic-bezier(.2,.7,.3,1);
}
.vitem:nth-child(even) .vic{background:var(--blue-soft);color:var(--blue)}
.vitem .vic svg{width:22px;height:22px}
.vitem:hover .vic{transform:scale(1.08)}
.vitem h4{font-size:16.5px;font-weight:600;line-height:1.3}

/* about split */
.absplit{display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center}
.abtext h2{font-size:clamp(27px,3.2vw,38px);font-weight:600;margin:14px 0 18px;max-width:22ch}
.abtext p{color:var(--muted);margin-bottom:14px}
.abtext .btn{margin-top:10px}
.abpanel{border:1px solid var(--line);background:var(--surface-2);padding:18px}
.abgrid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.abcell{
  aspect-ratio:1/1;display:grid;place-items:center;border-radius:10px;
  font-family:Archivo,sans-serif;font-weight:700;letter-spacing:-.02em;
  font-size:clamp(17px,2vw,24px);color:#fff;
  transition:transform .3s cubic-bezier(.2,.7,.3,1);
}
.abcell.r{background:linear-gradient(140deg,var(--red),#8d0b20)}
.abcell.b{background:linear-gradient(140deg,var(--blue),#0a3467)}
.abcell:hover{transform:translateY(-4px)}

/* credentials */
.credband{background:var(--surface-2);border-block:1px solid var(--line)}
.creds{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.cred{
  background:var(--paper);border:1px solid var(--line);padding:28px 26px;display:grid;gap:10px;
  border-top:3px solid var(--blue);
}
.cred:nth-child(2){border-top-color:var(--red)}
.cred h4{font-size:18.5px;font-weight:600}
.cred p{font-size:15px;color:var(--muted)}

/* industries */
.indrow{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.ind{
  display:flex;align-items:center;justify-content:space-between;gap:14px;
  background:var(--paper);border:1px solid var(--line);padding:20px 22px;
  font-family:Archivo,sans-serif;font-weight:600;font-size:16.5px;text-decoration:none;
  transition:border-color .22s ease,transform .22s ease,box-shadow .22s ease,color .22s ease;
}
.ind .arw{color:var(--red)}
.ind:hover{border-color:var(--red);color:var(--red);transform:translateY(-3px);box-shadow:var(--shadow)}
.ind:hover .arw{transform:translateX(4px)}

/* partner cards */
.pcards{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.pcard{
  background:var(--paper);border:1px solid var(--line);padding:34px 32px;display:grid;gap:12px;
  align-content:start;text-decoration:none;position:relative;overflow:hidden;
  transition:transform .26s cubic-bezier(.2,.7,.3,1),box-shadow .26s ease,border-color .26s ease;
}
.pcard::before{content:"";position:absolute;inset:0 0 auto 0;height:4px;background:var(--red);
  transform:scaleX(0);transform-origin:left;transition:transform .32s cubic-bezier(.2,.7,.3,1)}
.pcard.b::before{background:var(--blue)}
.pcard:hover{transform:translateY(-5px);box-shadow:0 22px 44px -26px rgba(16,20,37,.5)}
.pcard:hover::before{transform:scaleX(1)}
.pcard h3{font-size:clamp(21px,2.4vw,27px);font-weight:600}
.pcard p{color:var(--muted);font-size:15.5px}
.pcard .more{
  margin-top:6px;font-family:"IBM Plex Mono",monospace;font-size:11.5px;letter-spacing:.11em;
  text-transform:uppercase;color:var(--red);display:inline-flex;gap:7px;align-items:center;
}
.pcard.b .more{color:var(--blue)}
.pcard:hover .arw{transform:translateX(4px)}

/* final CTA */
.finalcta .wrap{display:grid;gap:18px;justify-items:center;text-align:center}
.finalcta h2{font-size:clamp(30px,4vw,46px);font-weight:600;color:var(--dark-fg);max-width:18ch}
.finalcta p{color:var(--dark-muted);max-width:50ch}
.finalcta .eyebrow{justify-content:center}
.fcta-btns{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin-top:8px}
.fcta-ghost{border-color:rgba(255,255,255,.28);color:var(--dark-fg);background:transparent}
.fcta-ghost:hover{background:rgba(255,255,255,.08);border-color:#fff;color:#fff;transform:translateY(-2px)}

@media (max-width:980px){
  .stats,.vrow,.creds,.indrow,.pcards{grid-template-columns:1fr}
  .vrow{grid-template-columns:1fr 1fr}
  .absplit{grid-template-columns:1fr;gap:34px}
}
@media (max-width:620px){
  .vrow{grid-template-columns:1fr}
  .statband{padding-block:40px}
  .stats{gap:26px}
}

/* quiet hero — no animated background */
#flow{display:none}
.hero{background:var(--paper)}
.hero::before{
  background:linear-gradient(180deg,var(--surface-2),transparent 62%);
}

/* =========================================================
   Header: nav only + CTA  ·  softer, roomier corporate look
   ========================================================= */
.hcontact{display:none !important}
.bar{grid-template-columns:auto 1fr;padding-block:10px}
nav.main{grid-column:2;justify-self:end;gap:4px}
.navcta{
  margin-left:14px;background:var(--red);color:#fff !important;
  padding:10px 20px !important;border-radius:6px;
  font-family:Archivo,sans-serif;font-weight:600;font-size:14px;text-decoration:none;
  box-shadow:0 6px 18px -10px rgba(200,16,46,.9);
  transition:background .2s ease,transform .18s ease,box-shadow .2s ease;
}
.navcta:hover{background:#E0243E;transform:translateY(-2px);box-shadow:0 12px 26px -12px rgba(200,16,46,.95)}
.logo img{height:38px}
.menu-toggle{grid-column:2}

/* roomier sections, larger headings — closer to the reference */
section{padding-block:96px}
.sec-head{margin-bottom:52px;gap:16px}
.sec-head h2{font-size:clamp(31px,3.8vw,45px);letter-spacing:-.028em}
.sec-head p{font-size:17.5px}
.hero.center .wrap{padding-block:112px 100px}
h1{font-size:clamp(40px,5.8vw,64px);letter-spacing:-.03em}
.lede{font-size:clamp(17.5px,1.7vw,20.5px)}

/* rounded, lifted cards */
.scard,.promise,.cred,.pcard,.ind,.model,.card,.chip,.aside,form,.abpanel{border-radius:10px}
.scard,.promise,.cred,.pcard{box-shadow:0 1px 2px rgba(16,20,37,.04)}
.grid3{gap:20px;background:transparent;border:0}
.grid3 .card{border:1px solid var(--line);border-radius:10px}
.vrow{gap:20px;background:transparent;border:0}
.vitem{border:1px solid var(--line);border-radius:10px}
.roles{gap:14px;background:transparent;border:0}
.role{border:1px solid var(--line);border-radius:10px}
.steps{border-top:0;gap:20px;display:grid;grid-template-columns:repeat(4,1fr)}
.step{
  border:1px solid var(--line);border-radius:10px;padding:26px 24px;
  border-top:3px solid var(--blue);background:var(--paper);
}
.step:nth-child(odd){border-top-color:var(--red)}
.step:last-child{border-right:1px solid var(--line)}
.btn{border-radius:6px}

/* =========================================================
   DENSER LAYOUT + NEW TYPE
   headings: Plus Jakarta Sans · body: Inter
   ========================================================= */
:root{--maxw:1280px}

body{
  font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;
  font-size:16px;line-height:1.55;letter-spacing:-.005em;
}
h1,h2,h3,h4,h5,.btn,.navcta,.logotype b,.chip b,.stack.big span,.ind,.quote blockquote{
  font-family:"Plus Jakarta Sans",Inter,system-ui,sans-serif;
}

/* tighter vertical rhythm */
section{padding-block:64px}
.sec-head{margin-bottom:38px;gap:11px;max-width:70ch}
.sec-head h2{font-size:clamp(28px,3.2vw,38px);font-weight:700;letter-spacing:-.03em;line-height:1.1}
.sec-head p{font-size:16.5px}
.hero.center .wrap{padding-block:74px 64px;gap:16px}
h1{font-size:clamp(36px,5vw,58px);font-weight:800;letter-spacing:-.035em;line-height:1.05;max-width:22ch}
.lede{font-size:clamp(16.5px,1.5vw,19px);line-height:1.5;max-width:62ch}
.hero-cta{margin-top:4px}
.statband{padding-block:40px}
.partners{padding-block:30px}
.partners .lab{margin-bottom:16px}
.phead .wrap{padding-block:48px 42px;gap:12px}
.phead h1{font-size:clamp(30px,4vw,46px)}

/* denser cards */
.sgrid,.creds,.pcards,.models,.grid3,.vrow,.steps,.indrow{gap:14px}
.stats{gap:14px}
.scard{padding:22px 20px 20px;gap:9px}
.scard .ico{width:44px;height:44px}
.scard .ico svg{width:22px;height:22px}
.scard h4{font-size:17px;font-weight:700;letter-spacing:-.015em}
.scard p{font-size:14px;line-height:1.5}
.promise{padding:22px 20px;gap:9px}
.promise .pic{width:38px;height:38px}
.promise .pic svg{width:18px;height:18px}
.promise h3{font-size:17.5px;font-weight:700}
.promise p{font-size:14.5px;line-height:1.5}
.vitem{padding:20px 18px;gap:13px}
.vitem .vic{width:40px;height:40px}
.vitem h4{font-size:15.5px;font-weight:600}
.cred{padding:22px 20px;gap:8px}
.cred h4{font-size:17px;font-weight:700}
.cred p{font-size:14.5px}
.step{padding:20px 18px}
.step h4{font-size:17.5px;font-weight:700;margin:7px 0 6px}
.step p{font-size:14.5px;line-height:1.5}
.ind{padding:16px 18px;font-size:15.5px;font-weight:600}
.pcard{padding:26px 24px;gap:9px}
.pcard h3{font-size:22px;font-weight:700}
.pcard p{font-size:15px}
.card{padding:22px 20px;gap:7px}
.card h4{font-size:16.5px;font-weight:700}
.card p{font-size:14.5px}
.model{padding:22px 20px;gap:8px}
.aside{padding:22px 20px}
.split{gap:42px}
.absplit{gap:44px}
.abtext h2{font-size:clamp(25px,3vw,34px);font-weight:700;margin:11px 0 14px}
.abtext p{margin-bottom:11px;font-size:15.5px}
.chip{padding:16px 22px;gap:13px;min-width:230px}
.chip b{font-size:18px;font-weight:700}
.chip .mk{height:38px;max-width:48px}
.stack.big{gap:10px;grid-template-columns:repeat(auto-fit,minmax(152px,1fr))}
.stack.big span{padding:13px 15px;font-size:14.5px;font-weight:600}
.ticks li{font-size:15px}
.faq details{padding:15px 0}
.faq summary{font-size:16.5px;font-weight:700}
.faq p{font-size:15px;margin-top:9px}
.legal-sec{padding-block:20px}
.legal-sec h2{font-size:19px;font-weight:700;margin-bottom:9px}
.legal-sec p{font-size:15.5px}

/* footer + CTA tightened */
footer{padding-block:44px 22px}
.fgrid{gap:30px}
.fcol ul{gap:8px}
.fcol a{font-size:14px}
.fbot{margin-top:30px;padding-top:16px;font-size:12.5px}
.finalcta .wrap{gap:13px}
.finalcta h2{font-size:clamp(28px,3.6vw,42px);font-weight:700}
.cta .wrap{gap:42px}
.contact-list{margin-top:20px;gap:11px}
form{padding:22px;gap:11px}

/* nav in the new face */
nav.main > a,.dd > button{font-size:14.5px;font-weight:600;font-family:Inter,sans-serif}
.navcta{font-size:14px;font-weight:700}
.dd-panel strong{font-family:"Plus Jakarta Sans",sans-serif;font-weight:700}

@media (max-width:620px){
  section{padding-block:46px}
  .hero.center .wrap{padding-block:50px 44px}
}

/* =========================================================
   PAGE GROUND — soft tinted background, white cards on top
   ========================================================= */
:root{
  --paper:#EEF2F7;     /* page ground — cool light grey-blue */
  --surface:#FFFFFF;   /* cards sit white on top */
  --surface-2:#E4EAF2; /* alternating bands */
  --line:#D3DBE6;
  --line-soft:#E1E7EF;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --paper:#0A0E17;--surface:#121826;--surface-2:#161D2D;
    --line:#242C3D;--line-soft:#1B2231;
  }
}
:root[data-theme="dark"]{
  --paper:#0A0E17;--surface:#121826;--surface-2:#161D2D;
  --line:#242C3D;--line-soft:#1B2231;
}

body{background:var(--paper)}

/* header stays crisp white above the tinted page */
header{background:#fff;border-bottom:1px solid var(--line)}
:root[data-theme="dark"] header,
:root:not([data-theme="light"]) header{background:var(--surface)}

/* hero: white panel so the headline sits on clean ground */
.hero{background:#fff;border-bottom:1px solid var(--line)}
.hero::before{background:linear-gradient(180deg,var(--surface-2),transparent 58%)}
:root[data-theme="dark"] .hero,
:root:not([data-theme="light"]) .hero{background:var(--surface)}

/* bands alternate tint / white instead of white / grey */
.statband{background:var(--paper);border-bottom:1px solid var(--line)}
.svc{background:var(--surface-2);border-block:1px solid var(--line)}
.credband{background:var(--surface-2);border-block:1px solid var(--line)}
.partners{background:#fff;border-bottom:1px solid var(--line)}
.phead{background:linear-gradient(140deg,var(--red-soft),var(--surface-2) 48%,var(--blue-soft));border-bottom:1px solid var(--line)}

/* anything card-like lifts off the tint in white */
.scard,.promise,.cred,.pcard,.ind,.model,.card,.chip,.step,.vitem,.role,.mgroup .chip{
  background:#fff;
}
:root[data-theme="dark"] .scard,:root[data-theme="dark"] .promise,:root[data-theme="dark"] .cred,
:root[data-theme="dark"] .pcard,:root[data-theme="dark"] .ind,:root[data-theme="dark"] .model,
:root[data-theme="dark"] .card,:root[data-theme="dark"] .chip,:root[data-theme="dark"] .step,
:root[data-theme="dark"] .vitem,:root[data-theme="dark"] .role,
:root:not([data-theme="light"]) .scard,:root:not([data-theme="light"]) .promise,
:root:not([data-theme="light"]) .cred,:root:not([data-theme="light"]) .pcard,
:root:not([data-theme="light"]) .ind,:root:not([data-theme="light"]) .model,
:root:not([data-theme="light"]) .card,:root:not([data-theme="light"]) .chip,
:root:not([data-theme="light"]) .step,:root:not([data-theme="light"]) .vitem,
:root:not([data-theme="light"]) .role{background:var(--surface)}

.aside{background:#fff;border:1px solid var(--line)}
form{background:#fff;border:1px solid var(--line)}
input,textarea,select{background:#fff}
.btn-ghost{background:#fff}
.stack.big span{background:#fff}
.stack span{background:#fff}

/* =========================================================
   Nav centred on the page
   ========================================================= */
.bar{grid-template-columns:1fr auto 1fr;align-items:center}
.logo{grid-column:1;justify-self:start}
.headright{display:contents}
nav.main{grid-column:2;justify-self:center;gap:6px}
.menu-toggle{grid-column:3;justify-self:end}
@media (max-width:980px){
  .bar{grid-template-columns:1fr auto}
  .logo{grid-column:1}
  .menu-toggle{grid-column:2;justify-self:end}
  nav.main{grid-column:1/-1;justify-self:stretch}
}

/* =========================================================
   Closing CTA + footer blend into one continuous dark block
   ========================================================= */
.finalcta{
  background:linear-gradient(180deg,#171923 0%,#14161F 100%);
  border-block:0;
  padding-block:72px 60px;
}
.finalcta + footer,
footer{
  background:linear-gradient(180deg,#14161F 0%,#0F1118 100%);
  border-top:0;
  padding-block:48px 24px;
}
/* a soft brand glow behind the CTA so it still reads as the action */
.finalcta{position:relative;overflow:hidden}
.finalcta::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:
    radial-gradient(52% 78% at 50% 0%,rgba(200,16,46,.20),transparent 68%),
    radial-gradient(46% 70% at 84% 100%,rgba(18,87,168,.18),transparent 70%);
}
.finalcta .wrap{position:relative}
/* hairline only between the two, kept faint */
footer{box-shadow:inset 0 1px 0 rgba(255,255,255,.05)}

/* =========================================================
   Products / licensing page
   ========================================================= */
.vendgrid{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;
}
.vend{
  background:#fff;border:1px solid var(--line);border-radius:10px;
  padding:22px 18px;display:flex;flex-direction:column;align-items:center;gap:12px;
  transition:transform .24s cubic-bezier(.2,.7,.3,1),box-shadow .24s ease,border-color .24s ease;
}
.vend:hover{transform:translateY(-3px);box-shadow:var(--shadow);border-color:var(--blue)}
.vend img{height:40px;max-width:110px;width:auto;object-fit:contain}
.vend b{
  font-family:"Plus Jakarta Sans",sans-serif;font-size:14.5px;font-weight:600;
  color:var(--muted);letter-spacing:-.01em;
}
.vend.nologo b{font-size:17px;color:var(--text);font-weight:700}
:root[data-theme="dark"] .vend,:root:not([data-theme="light"]) .vend{background:var(--surface)}

.bsteps{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.bstep{
  background:#fff;border:1px solid var(--line);border-radius:10px;padding:24px 22px;
  display:grid;gap:9px;align-content:start;position:relative;
  border-top:3px solid var(--red);
}
.bstep:nth-child(2){border-top-color:var(--blue)}
.bstep .bn{
  font-family:"IBM Plex Mono",monospace;font-size:12px;letter-spacing:.14em;color:var(--red);
}
.bstep:nth-child(2) .bn{color:var(--blue)}
.bstep h4{font-size:18px;font-weight:700}
.bstep p{font-size:14.5px;color:var(--muted);line-height:1.5}
:root[data-theme="dark"] .bstep,:root:not([data-theme="light"]) .bstep{background:var(--surface)}

@media (max-width:820px){
  .bsteps{grid-template-columns:1fr}
}


/* eyebrow labels: no decorative dash (reads as generated) */
.eyebrow::before{display:none !important}
.eyebrow{gap:0;letter-spacing:.14em}

/* contact form: status banner + honeypot */
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.fstatus{
  padding:13px 16px;border-radius:8px;font-size:15px;line-height:1.45;
  border:1px solid transparent;
}
.fstatus.sent{background:#E6F5EC;border-color:#B7E2C8;color:#0A5B2C}
.fstatus.err{background:var(--red-soft);border-color:#F3C6CE;color:#8E0C21}
:root[data-theme="dark"] .fstatus.sent,
:root:not([data-theme="light"]) .fstatus.sent{background:#0E2B1B;border-color:#1D4A31;color:#8FE0AE}

/* =========================================================
   Menus: light, to match the white header
   (the dark panels were left over from the dark-header era)
   ========================================================= */
.dd-panel{
  background:#fff;
  border:1px solid var(--line);border-top:0;
  box-shadow:0 26px 60px -30px rgba(16,20,37,.38);
}
.dd-panel a{border:1px solid transparent}
.dd-panel a:hover{background:var(--surface-2);border-color:var(--line-soft)}
.dd-panel .di{background:var(--red-soft);color:var(--red)}
.dd-panel a.b .di{background:var(--blue-soft);color:var(--blue)}
.dd-panel a:hover .di{background:var(--red-soft)}
.dd-panel a.b:hover .di{background:var(--blue-soft)}
.dd-panel strong{color:var(--text)}
.dd-panel .dt span{color:var(--muted)}
.dd-foot{
  background:var(--surface-2);
  border-top:1px solid var(--line);
}
.dd-foot span{color:var(--muted)}
.dd-foot a{color:var(--red)}
.dd-foot a:hover{color:var(--text)}

/* mobile menu panel */
@media (max-width:980px){
  nav.main{
    background:#fff;
    border-bottom:1px solid var(--line);
    box-shadow:0 22px 44px -26px rgba(16,20,37,.35);
    padding:10px 24px 18px;
  }
  nav.main > a{
    color:var(--text);padding:14px 2px;border-radius:0;
    border-bottom:1px solid var(--line-soft);font-size:16px;
  }
  nav.main > a:hover,nav.main > a.on{background:transparent;color:var(--red)}
  .dd > button{
    color:var(--text);padding:14px 2px;border-radius:0;
    border-bottom:1px solid var(--line-soft);font-size:16px;background:none;
  }
  .dd.open > button{background:none;color:var(--red)}
  .dd-panel{border:0;box-shadow:none;background:transparent;padding:0}
  .dd-grid{padding:4px 0 8px;gap:2px}
  .dd-panel a{padding:12px 6px;border-radius:8px}
  .dd-panel a:hover{background:var(--surface-2)}
  .dd-foot{
    background:transparent;border-top:1px solid var(--line-soft);
    padding:12px 6px;margin-bottom:4px;
  }
  .menu-toggle{
    border-color:var(--line);color:var(--text);
    border-radius:6px;padding:10px 14px;letter-spacing:.08em;
  }
  .menu-toggle:hover{border-color:var(--red);color:var(--red)}
}
:root[data-theme="dark"] .dd-panel,
:root:not([data-theme="light"]) .dd-panel{background:var(--surface);border-color:var(--line)}
:root[data-theme="dark"] .dd-foot,
:root:not([data-theme="light"]) .dd-foot{background:var(--surface-2);border-top-color:var(--line)}
@media (max-width:980px){
  :root[data-theme="dark"] nav.main,
  :root:not([data-theme="light"]) nav.main{background:var(--surface);border-bottom-color:var(--line)}
}
