/* =====================================================================
   SOLUTIONS · hero, filterable index with a sticky preview card, CTA band
   (shared pieces .sv-btn / .sv-ghost / .sv-end are reused by solution pages)
   ===================================================================== */
.sv-hero{position:relative;overflow:hidden;padding:calc(var(--nav-h) + clamp(48px,9vh,96px)) 24px clamp(44px,7vh,72px);
  background:radial-gradient(45% 60% at 10% 0%,rgba(124,58,237,.22),transparent 70%),radial-gradient(35% 50% at 95% 30%,rgba(232,121,249,.1),transparent 70%),var(--bg);
  border-bottom:1px solid var(--line)}
.sv-hero .wrap,.sv-index .wrap,.sv-end .wrap{max-width:1200px;margin:0 auto}
.sv-title{margin:18px 0 0;max-width:14ch;font-family:var(--f-d);font-weight:600;font-size:clamp(40px,6.4vw,92px);letter-spacing:-.05em;line-height:1.02;color:var(--ink)}
.sv-title em{font-style:normal;background:linear-gradient(90deg,var(--glow),var(--pink));-webkit-background-clip:text;background-clip:text;color:transparent}
.sv-lead{margin:26px 0 0;max-width:56ch;color:var(--muted);font-size:clamp(16px,1.3vw,19px);line-height:1.7}
.sv-acts{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}
.sv-btn{display:inline-flex;align-items:center;gap:12px;height:52px;padding:0 26px;border-radius:999px;color:#fff;font-size:15.5px;font-weight:600;
  background:linear-gradient(90deg,var(--violet) 0%,var(--purple) 55%,var(--pink) 100%);box-shadow:0 14px 34px -10px rgba(232,121,249,.75);transition:transform .2s ease}
.sv-btn:hover{transform:translateY(-2px)}
.sv-ghost{display:inline-flex;align-items:center;height:52px;padding:0 26px;border-radius:999px;border:1px solid rgba(205,166,255,.3);color:var(--ink);font-size:15.5px;font-weight:500;
  transition:border-color .25s ease,background .25s ease}
.sv-ghost:hover{border-color:rgba(232,121,249,.6);background:rgba(124,58,237,.16)}

/* index */
.sv-index{padding:clamp(40px,6vh,64px) 24px clamp(60px,9vh,96px)}
.sv-bar{display:flex;flex-direction:column;gap:14px;margin-bottom:26px}
.sv-k{font-family:var(--f-m);font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--glow)}
.sv-k b{font-weight:500;color:var(--ink)}
.sv-filters{display:flex;flex-wrap:wrap;gap:8px}
.sv-filters button{height:38px;padding:0 16px;border-radius:10px;border:1px solid rgba(205,166,255,.18);background:rgba(18,8,31,.6);color:var(--muted);
  font-family:var(--f-m);font-size:12.5px;letter-spacing:.06em;cursor:pointer;transition:all .2s ease}
.sv-filters button:hover{color:var(--ink);border-color:rgba(205,166,255,.4)}
.sv-filters button[aria-pressed="true"]{color:#fff;border-color:transparent;background:linear-gradient(135deg,var(--violet),var(--pink))}
.sv-grid{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:clamp(28px,5vw,64px);align-items:start}
.sv-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.sv-list li.hide{display:none}
.sv-row{display:grid;grid-template-columns:52px minmax(0,1fr) 40px;gap:14px;align-items:start;padding:26px 0 28px;border-bottom:1px solid var(--line);
  transition:background .3s ease}
.sv-row .no{padding-top:10px;font-family:var(--f-m);font-size:12px;letter-spacing:.12em;color:var(--dim);transition:color .3s ease}
.sv-row .nm{display:flex;align-items:center;flex-wrap:wrap;gap:12px;font-family:var(--f-d);font-weight:600;font-size:clamp(22px,2.4vw,34px);letter-spacing:-.035em;line-height:1.15;
  color:rgba(240,233,251,.8);transition:color .3s ease}
.sv-row .live{display:inline-flex;align-items:center;gap:6px;padding:4px 9px;border-radius:6px;font-style:normal;font-family:var(--f-m);font-size:10.5px;font-weight:500;letter-spacing:.12em;
  text-transform:uppercase;color:#4ADE80;background:rgba(74,222,128,.1);border:1px solid rgba(74,222,128,.3)}
.sv-row .live::before{content:"";width:6px;height:6px;border-radius:50%;background:#4ADE80;box-shadow:0 0 8px #4ADE80}
.sv-row .ds{display:block;margin-top:10px;max-width:60ch;color:var(--muted);font-size:15.5px;line-height:1.6}
.sv-row .tg{display:block;margin-top:12px;font-family:var(--f-m);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--dim)}
.sv-row .tg i{font-style:normal;margin:0 .4em;opacity:.7}
.sv-row .ar{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;margin-top:2px;border:1px solid rgba(205,166,255,.28);color:var(--ink);
  transition:background .3s ease,border-color .3s ease,transform .3s ease}
.sv-row .ar svg{width:15px;height:15px}
.sv-row:hover .nm,.sv-row.on .nm{color:var(--ink)}
.sv-row.on .no{color:var(--pink)}
.sv-row.on .ar,.sv-row:hover .ar{border-color:transparent;background:linear-gradient(135deg,var(--violet),var(--pink));box-shadow:0 8px 22px -8px rgba(232,121,249,.8)}
.sv-row:hover .ar{transform:rotate(0) scale(1.06)}

/* sticky preview */
.sv-prev{position:sticky;top:calc(var(--nav-h) + 24px);display:grid}
.pv{grid-area:1 / 1;border-radius:24px;overflow:hidden;border:1px solid rgba(205,166,255,.22);background:linear-gradient(180deg,rgba(20,9,36,.96),rgba(10,4,18,.96));
  box-shadow:0 30px 70px -36px rgba(168,85,247,.8);opacity:0;transform:translateY(10px) scale(.98);transition:opacity .45s ease,transform .45s ease;pointer-events:none}
.pv.on{opacity:1;transform:none;pointer-events:auto}
.pv-img{height:220px;overflow:hidden;background:#12081F}
.pv-img img{width:100%;height:100%;object-fit:cover;display:block;transform:scale(1.06);transition:transform 1.1s cubic-bezier(.2,.7,.2,1)}
.pv.on .pv-img img{transform:none}
.pv-bd{padding:20px 20px 20px}
.pv-k{display:block;font-family:var(--f-m);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--pink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pv h3{margin:10px 0 8px;font-family:var(--f-d);font-weight:600;font-size:20px;letter-spacing:-.03em;color:var(--ink)}
.pv p{margin:0;color:var(--muted);font-size:14.5px;line-height:1.6}
.pv small{display:block;margin:12px 0 18px;font-family:var(--f-m);font-size:11px;letter-spacing:.08em;color:var(--dim)}
.pv-btn{display:flex;align-items:center;justify-content:center;gap:10px;height:46px;border-radius:999px;color:#fff;font-size:14.5px;font-weight:600;
  background:linear-gradient(90deg,var(--violet),var(--purple) 55%,var(--pink));box-shadow:0 10px 26px -10px rgba(232,121,249,.7)}

/* CTA band (also used at the end of every solution page) */
.sv-end{padding:clamp(56px,8vh,90px) 24px;border-top:1px solid var(--line);
  background:radial-gradient(50% 120% at 100% 50%,rgba(124,58,237,.18),transparent 70%),var(--bg)}
.sv-end .wrap{display:flex;align-items:flex-end;justify-content:space-between;gap:28px 48px;flex-wrap:wrap}
.sv-end h2{margin:14px 0 12px;font-family:var(--f-d);font-weight:600;font-size:clamp(30px,4vw,56px);letter-spacing:-.045em;line-height:1.06;color:var(--ink)}
.sv-end h2 em{font-style:italic;font-weight:300;color:var(--glow)}
.sv-end p{margin:0;max-width:52ch;color:var(--muted);font-size:16.5px;line-height:1.65}
.sv-end .sv-acts{margin-top:0}

@media (max-width:960px){
  .sv-grid{grid-template-columns:1fr}
  .sv-prev{display:none}
}
@media (max-width:600px){
  .sv-hero{padding:calc(var(--nav-h) + 40px) 16px 36px}
  .sv-index{padding:32px 16px 56px}
  .sv-row{grid-template-columns:34px minmax(0,1fr) 34px;gap:10px;padding:22px 0 24px}
  .sv-row .ar{width:34px;height:34px}
  .sv-row .no{padding-top:6px}
  .sv-end{padding:48px 16px}
  .sv-acts a{flex:1 1 auto;justify-content:center}
}
@media (prefers-reduced-motion:reduce){
  .pv,.pv-img img{transition:none}
}
