/* ==========================================================
   ITM Solutions — Software (2026)
   Concept: "the product OS" — a live app window + dock in the hero,
   then sticky stacking product cards.
   Builds on home-2026.css primitives and site-chrome.css tokens.
   ========================================================== */

body{background:var(--ink-0)}
.sw{margin-top:-96px} /* run the hero under the floating nav */
.sw{--mono:"Geist Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;--paper:#f3efe7;--accent:var(--blue)}

/* ---------- Hero ---------- */
.sw-hero{position:relative;padding:150px 0 clamp(64px,8vw,110px);overflow:hidden;isolation:isolate}
.sw-hero::before{ /* glow tinted by the active product */
    content:"";position:absolute;inset:0;z-index:-1;transition:background .8s var(--ease);
    background:
        radial-gradient(800px 500px at 75% 45%,color-mix(in srgb,var(--accent) 30%,transparent),transparent 62%),
        radial-gradient(600px 400px at 10% 10%,rgba(255,255,255,.05),transparent 60%);
}
.sw-hero-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(32px,5vw,72px);align-items:center}
.sw-hero h1{font-size:clamp(2.8rem,6.4vw,5.6rem);letter-spacing:-.055em;line-height:.95;margin:22px 0 24px}
.sw-hero .lede{color:var(--muted);font-size:clamp(1rem,1.3vw,1.15rem);max-width:520px;margin-bottom:30px}
.sw-hero .actions{display:flex;flex-wrap:wrap;gap:12px}
@media (max-width:1000px){.sw-hero-grid{grid-template-columns:1fr}}

/* app window */
.window{
    position:relative;border-radius:22px;overflow:hidden;
    background:rgba(12,16,26,.82);border:1px solid var(--line-2);
    box-shadow:0 50px 120px -40px rgba(0,0,0,.9),0 0 0 1px rgba(255,255,255,.03) inset;
    -webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);
}
.win-bar{display:flex;align-items:center;gap:14px;height:44px;padding:0 16px;border-bottom:1px solid var(--line);background:rgba(255,255,255,.02)}
.win-bar .lights{display:flex;gap:7px}
.win-bar .lights i{width:11px;height:11px;border-radius:50%;background:#ff5f57}
.win-bar .lights i:nth-child(2){background:#febc2e}
.win-bar .lights i:nth-child(3){background:#28c840}
.win-bar .url{
    flex:1;max-width:340px;margin:0 auto;height:26px;border-radius:8px;background:rgba(255,255,255,.05);
    display:flex;align-items:center;justify-content:center;gap:8px;font-family:var(--mono);font-size:12px;color:var(--dim);
}
.win-bar .url i{font-size:10px}
.win-body{display:grid;grid-template-columns:180px 1fr;min-height:400px}
.win-side{border-right:1px solid var(--line);padding:18px 14px;display:flex;flex-direction:column;gap:4px}
.win-side .app{display:flex;align-items:center;gap:10px;margin-bottom:16px}
.win-side .app .ic{
    width:34px;height:34px;border-radius:10px;display:grid;place-items:center;color:#fff;font-size:14px;
    background:var(--accent);transition:background .6s var(--ease);
}
.win-side .app b{font-size:14px;font-weight:600;letter-spacing:-.02em;color:var(--text);line-height:1.2}
.win-side .mod{
    font-size:12.5px;color:var(--muted);padding:7px 10px;border-radius:8px;
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.win-side .mod:first-of-type{background:color-mix(in srgb,var(--accent) 16%,transparent);color:var(--text)}
.win-main{padding:20px;display:flex;flex-direction:column;gap:14px;min-width:0}
.win-main .hello{font-size:13px;color:var(--dim);font-family:var(--mono)}
.win-main h3{font-size:1.35rem;letter-spacing:-.03em;line-height:1.15;min-height:2.3em}
.kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.kpi{border:1px solid var(--line);border-radius:12px;padding:12px;background:rgba(255,255,255,.02)}
.kpi span{display:block;font-size:11.5px;color:var(--dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kpi .spark{display:flex;align-items:flex-end;gap:3px;height:34px;margin-top:10px}
.kpi .spark i{flex:1;border-radius:2px;background:color-mix(in srgb,var(--accent) 70%,transparent);transition:height .7s var(--ease),background .6s}
.chart{flex:1;border:1px solid var(--line);border-radius:12px;padding:14px;display:flex;align-items:flex-end;gap:6px;min-height:120px;position:relative}
.chart::before{
    content:"";position:absolute;inset:14px;pointer-events:none;
    background:repeating-linear-gradient(0deg,var(--line) 0 1px,transparent 1px 25%);
}
.chart i{flex:1;border-radius:4px 4px 0 0;background:linear-gradient(180deg,var(--accent),color-mix(in srgb,var(--accent) 20%,transparent));transition:height .8s var(--ease),background .6s}
.win-bar .win-note{font-family:var(--mono);font-size:10.5px;color:var(--dim);white-space:nowrap}
@media (max-width:640px){.win-bar .win-note{display:none}}
.window.swap .win-main h3,.window.swap .win-side{animation:swapIn .5s var(--ease)}
@keyframes swapIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@media (max-width:640px){
    .win-body{grid-template-columns:1fr}
    .win-side{display:none}
    .kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
    .kpis .kpi:nth-child(3){display:none}
}

/* dock */
.dock{
    display:flex;justify-content:center;gap:10px;flex-wrap:wrap;
    margin:18px auto 0;padding:10px;width:max-content;max-width:100%;
    border-radius:22px;background:rgba(255,255,255,.04);border:1px solid var(--line-2);
    -webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);
}
.dock button{
    position:relative;width:52px;height:52px;border-radius:14px;border:0;cursor:pointer;
    display:grid;place-items:center;color:#fff;font-size:19px;
    background:linear-gradient(160deg,var(--c),color-mix(in srgb,var(--c) 55%,#000));
    transition:transform .3s var(--ease);
}
.dock button:hover,.dock button:focus-visible{transform:translateY(-8px) scale(1.12)}
.dock button[aria-pressed="true"]::after{
    content:"";position:absolute;left:50%;bottom:-7px;width:4px;height:4px;border-radius:50%;background:#fff;transform:translateX(-50%);
}
.dock button .tip{
    position:absolute;bottom:calc(100% + 12px);left:50%;transform:translateX(-50%) translateY(4px);
    padding:5px 10px;border-radius:8px;background:var(--text);color:var(--ink-0);
    font:500 12px var(--sans);white-space:nowrap;opacity:0;pointer-events:none;transition:all .2s var(--ease);
}
.dock button:hover .tip,.dock button:focus-visible .tip{opacity:1;transform:translateX(-50%)}
@media (max-width:520px){.dock button{width:44px;height:44px;font-size:16px;border-radius:12px}}

/* ---------- Flagship logos strip ---------- */
.flagships{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-block:1px solid var(--line);background:var(--ink-1)}
.flagships a{display:grid;place-items:center;padding:34px 20px;border-right:1px solid var(--line);transition:background .3s}
.flagships a:last-child{border-right:0}
.flagships a:hover{background:rgba(255,255,255,.03)}
.flagships img{height:38px;width:auto;opacity:.9;transition:transform .3s var(--ease)}
.flagships a:hover img{transform:scale(1.05)}
@media (max-width:640px){.flagships{grid-template-columns:1fr}.flagships a{border-right:0;border-bottom:1px solid var(--line)}}

/* ---------- Stacking product cards ---------- */
.stack{display:grid;gap:28px}
.pcard{
    --c:var(--blue);
    position:sticky;top:calc(110px + var(--i) * 14px);
    display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(24px,4vw,56px);align-items:center;
    padding:clamp(24px,4vw,48px);border-radius:var(--radius-lg);
    background:
        radial-gradient(700px 360px at 0% 0%,color-mix(in srgb,var(--c) 18%,transparent),transparent 60%),
        var(--ink-2);
    border:1px solid color-mix(in srgb,var(--c) 30%,var(--line));
    box-shadow:0 -30px 60px -40px rgba(0,0,0,.9);
    transform-origin:top center;
}
.pcard .meta{display:flex;align-items:center;gap:12px;margin-bottom:18px;font-family:var(--mono);font-size:12px;color:var(--muted)}
.pcard .meta .ic{
    width:42px;height:42px;border-radius:12px;display:grid;place-items:center;color:#fff;font-size:16px;
    background:linear-gradient(160deg,var(--c),color-mix(in srgb,var(--c) 55%,#000));
}
.pcard .logo{height:40px;width:auto;margin-bottom:14px}
.pcard h2{font-size:clamp(2.2rem,4.6vw,3.8rem);margin-bottom:6px}
.pcard .tagline{font-size:clamp(1.05rem,1.5vw,1.25rem);color:var(--c);margin-bottom:18px;filter:brightness(1.25)}
.pcard .body,.pcard .body p{color:var(--muted)!important;font-size:15.5px;line-height:1.65;margin:0 0 10px}
.pcard .body strong{color:var(--text);font-weight:600}
.pcard .mods{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0 24px;padding:0;list-style:none}
.pcard .mods li{
    font-size:12.5px;padding:6px 12px;border-radius:999px;color:var(--text);
    border:1px solid color-mix(in srgb,var(--c) 40%,transparent);background:color-mix(in srgb,var(--c) 10%,transparent);
}
.pcard .actions{display:flex;flex-wrap:wrap;gap:10px}
.pcard .visual{
    position:relative;border-radius:var(--radius);background:var(--paper);aspect-ratio:4/3;
    display:grid;place-items:center;padding:clamp(18px,3vw,36px);overflow:hidden;
}
.pcard .visual::before{content:"";position:absolute;inset:0;background:radial-gradient(400px 260px at 100% 0%,color-mix(in srgb,var(--c) 30%,transparent),transparent 65%)}
.pcard .visual img{position:relative;max-height:100%;width:auto;object-fit:contain}
.pcard .visual .stamp{position:absolute;left:14px;bottom:12px;font-family:var(--mono);font-size:11px;color:rgba(5,7,12,.5);text-transform:uppercase;letter-spacing:.06em}
@media (max-width:900px){
    .pcard{position:relative;top:auto;grid-template-columns:1fr}
    .pcard .visual{order:-1}
}

/* ---------- Platform band ---------- */
.platform{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.pf{background:var(--ink-1);padding:30px 26px;display:flex;flex-direction:column;gap:12px;transition:background .3s}
.pf:hover{background:var(--ink-2)}
.pf i{font-size:20px;color:var(--blue);width:44px;height:44px;border-radius:12px;display:grid;place-items:center;background:rgba(0,172,237,.1)}
.pf h3{font-size:1.25rem;letter-spacing:-.025em}
.pf p{color:var(--muted);font-size:15px}
@media (max-width:900px){.platform{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.platform{grid-template-columns:1fr}}

@media (prefers-reduced-motion:reduce){
    .window.swap .win-main h3,.window.swap .win-side{animation:none}
    .kpi .spark i,.chart i{transition:none}
}
