/* ============================================================
   Section 3 — "Our solutions": layout + looping demo blocks
   Sequencing lives in js/demos.js; this file owns the look.
   Without JS (or with reduced motion) each demo shows its
   finished state. JS adds .is-live to start from "empty".
   ============================================================ */

/* ---------- Layout: 3 × 2, borderless cells, cross dividers ---------- */
.solutions-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
.solution{display:flex;flex-direction:column;padding:8px 36px 52px;border-right:1px solid var(--line)}
.solution:nth-child(3n){border-right:0;padding-right:0}
.solution:nth-child(3n+1){padding-left:0}
.solution:nth-child(-n+3){border-bottom:1px solid var(--line)}
.solution:nth-child(n+4){padding-top:52px;padding-bottom:8px}
.solution .iconbox{width:36px;height:36px;margin-bottom:22px}.iconbox img{display:block;width:100%;height:100%}
.solution h3{margin:0 0 10px}
.solution p{color:#697990;margin:0 0 18px}
.tags{list-style:none;margin:0 0 28px;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.tags li{padding:4px 11px;border:1px solid #d3e0f1;border-radius:999px;background:#fff;color:#2b5ea8;white-space:nowrap}
.inline-cta{margin-top:44px}

/* ---------- Demo shell ---------- */
.demo{--play:paused;position:relative;margin-top:auto;width:100%;max-width:480px;height:268px;padding:14px;border:1px solid #e2e9f1;border-radius:14px;background:linear-gradient(180deg,#f6f9fe 0,#fff 88%);overflow:hidden;font-family:var(--font-body);font-size:12.5px;line-height:1.4;color:var(--ink);text-align:left}
.demo.is-playing{--play:running}
.demo *{animation-play-state:var(--play)}
.demo.is-live [data-s]{opacity:0;transform:translateY(8px);transition:opacity .45s ease,transform .45s ease}
.demo.is-live [data-s].on{opacity:1;transform:none}
.demo .ico{stroke-width:2}
.demo .typing::after{content:'';display:inline-block;width:1.5px;height:1em;margin-left:2px;vertical-align:-.12em;background:var(--blue);animation:d-blink .9s steps(2) infinite}
@keyframes d-blink{50%{opacity:0}}

/* ---------- 1 · AI agents: chat with a tool call and an approval ---------- */
.d-chat{display:flex;flex-direction:column;gap:10px;height:100%}
.bub{max-width:84%;padding:9px 13px;border-radius:15px}
.bub-in{align-self:flex-start;background:#eaf0f8;border-bottom-left-radius:5px}
.bub-out{align-self:flex-end;background:linear-gradient(135deg,#3b82f6,#246bf4);color:#fff;border-bottom-right-radius:5px;min-height:36px}
.d-tool{align-self:flex-start;display:flex;align-items:center;gap:8px;padding:5px 12px;border:1px solid #d3e0f1;border-radius:999px;background:#fff;color:#4c6481;font:600 12px var(--font-head)}
.d-spin{width:11px;height:11px;border:2px solid #bcd3f8;border-top-color:var(--blue);border-radius:50%;animation:d-rot .8s linear infinite}
.d-ok{color:#16a34a;font-size:12px;line-height:1}
.d-tool.done .d-spin,.d-tool:not(.done) .d-ok{display:none}
@keyframes d-rot{to{transform:rotate(360deg)}}
.d-approve{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 10px 9px 13px;border:1px solid #cfe0f7;border-radius:12px;background:#fff;box-shadow:0 6px 16px #0a32600d}
.d-approve-text{display:flex;flex-direction:column}
.d-approve-text b{font:600 12.5px var(--font-body);font-variant-numeric:lining-nums}
.d-approve-text small{color:#7b8ba4;font-size:11px}
.d-btn{display:inline-grid;padding:6px 12px;border-radius:8px;background:var(--blue);color:#fff;font:600 12px var(--font-head);transition:background-color .3s,transform .2s}
.d-btn>span{grid-area:1/1;text-align:center}
.d-btn .b-ok{opacity:0}
.d-approve.press .d-btn{transform:scale(.93)}
.d-approve.ok .d-btn{background:#16a34a}
.d-approve.ok .b-a{opacity:0}
.d-approve.ok .b-ok{opacity:1}

/* ---------- 2 · Process automation: invoice moves through stages ---------- */
.d-pipe{position:relative;display:grid;grid-template-columns:repeat(4,1fr)}
.d-track{position:absolute;left:12.5%;right:12.5%;top:19px;height:2px;background:#d8e4f5}
.d-fill{display:block;height:100%;background:var(--blue);transform-origin:left;transform:scaleX(var(--p,1));transition:transform .9s cubic-bezier(.4,0,.2,1)}
.d-stage{text-align:center}
.d-ico{position:relative;z-index:1;display:grid;place-items:center;width:40px;height:40px;margin:0 auto 6px;border-radius:11px;border:1px solid #cfdcf0;background:#fff;color:#8497b0;transition:background-color .35s,color .35s,border-color .35s}
.d-stage.on .d-ico{background:var(--blue);border-color:var(--blue);color:#fff}
.d-stage em{font:600 12px var(--font-head);font-style:normal;color:#8497b0;transition:color .35s}
.d-stage.on em{color:var(--ink)}
.d-log{list-style:none;margin:14px 0 0;padding:0;display:flex;flex-direction:column;gap:5px}
.d-log li{display:flex;align-items:center;gap:8px;padding:5px 10px;border:1px solid #e2e9f1;border-radius:8px;background:#fff;font-size:12px}
.d-log li::before{content:'✓';flex:none;display:grid;place-items:center;width:15px;height:15px;border-radius:50%;background:#e1f3e8;color:#16a34a;font-size:9px;font-weight:700}

/* ---------- 3 · Internal AI assistants: question → answer with sources ---------- */
.d-search{display:flex;align-items:center;gap:8px;padding:9px 14px;border:1px solid #cfdcf0;border-radius:999px;background:#fff;box-shadow:0 6px 16px #0a32600d;color:#5a7190}
.d-search svg{flex:none;color:var(--blue)}
.d-q{color:var(--ink);font-weight:600;min-height:1.4em}
.d-skel{display:none;margin-top:14px}
.demo.is-live .d-skel{display:block;position:absolute;left:14px;right:14px;top:70px}
.d-skel i{display:block;height:9px;margin-bottom:9px;border-radius:5px;background:linear-gradient(90deg,#e5edf8 25%,#f4f8fd 50%,#e5edf8 75%) 0 0/200% 100%;animation:d-shim 1.1s linear infinite}
.d-skel i:nth-child(2){width:86%}.d-skel i:nth-child(3){width:62%}
@keyframes d-shim{to{background-position:-200% 0}}
.d-answer{margin-top:12px;padding:12px 13px;border:1px solid #dbe6f4;border-radius:12px;background:#fff;box-shadow:0 6px 16px #0a32600d}
.d-ans-text{margin:0 0 10px;min-height:3.9em;line-height:1.5}
.d-sources{display:flex;flex-wrap:wrap;gap:6px}
.d-sources span{display:inline-flex;align-items:center;gap:5px;padding:4px 9px;border-radius:7px;background:#eef4fd;color:#2b5ea8;font:600 11.5px var(--font-head)}
.d-access{display:flex;align-items:center;gap:6px;margin-top:10px;color:#7b8ba4;font-size:11.5px}
.d-access svg{color:#16a34a}

/* ---------- 4 · AI product development: smart search in a browser ---------- */
.d-browser{height:100%;border:1px solid #d3dfef;border-radius:11px;background:#fff;box-shadow:0 8px 20px #0a32600d;overflow:visible}
.d-tabs{display:flex;align-items:flex-end;gap:4px;height:32px;padding:0 8px;border-radius:10px 10px 0 0;background:#e6edf7}
.d-dots{display:flex;align-items:center;gap:5px;align-self:center;margin-right:8px}
.d-dots i{width:8px;height:8px;border-radius:50%;background:#c3d1e4}
.d-tab{display:flex;align-items:center;gap:6px;height:25px;padding:0 12px;border-radius:8px 8px 0 0;color:#6a7f99;font:600 11px var(--font-head)}
.d-tab u{width:9px;height:9px;border-radius:3px;background:#b7c8de}
.d-tab.on{background:#fff;color:var(--ink)}
.d-tab.on u{background:var(--blue)}
.d-newtab{align-self:center;margin-left:2px;color:#7b8ba4;font:500 14px/1 var(--font-body)}
.d-toolbar{position:relative;display:flex;align-items:center;gap:8px;padding:7px 10px;border-bottom:1px solid #e8eef6}
.d-nav{color:#9aaac0;font:400 17px/1 var(--font-body)}
.d-url{flex:1;display:flex;align-items:center;gap:6px;height:26px;padding:0 11px;border-radius:13px;background:#eff4fa;color:#41566f;font-size:11.5px}
.d-url svg{flex:none;color:#7b8ba4}
.d-url.q .d-url-page,.d-url:not(.q) .d-s-text{display:none}
.d-s-text{color:var(--ink)}
.d-s-text.typing::after{height:.95em}
.d-sugg{position:absolute;z-index:3;left:62px;right:10px;top:38px;display:flex;flex-direction:column;border:1px solid #dbe6f4;border-radius:10px;background:#fff;box-shadow:0 12px 26px #0a326024;overflow:hidden}
.demo:not(.is-live) .d-sugg{display:none}
.d-sugg span{padding:7px 14px;font-size:11.5px;color:#41566f}
.d-sugg span:first-child{background:#eef4fd;color:var(--blue);font-weight:600}
.d-page{padding:12px 12px 10px}
.d-rec{display:flex;align-items:center;gap:5px;margin-bottom:9px;color:var(--blue);font:600 12px var(--font-head)}
.d-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.d-card{padding:6px;border:1px solid #e2e9f1;border-radius:9px;background:#fff;transition:border-color .4s,box-shadow .4s,opacity .45s,transform .45s}
.d-card i{display:block;height:72px;margin-bottom:8px;border-radius:6px;background:linear-gradient(135deg,#dbe8fb,#bcd3f8)}
.d-card:nth-child(2) i{background:linear-gradient(135deg,#cfe1fc,#9dbdf5)}
.d-card:nth-child(3) i{background:linear-gradient(135deg,#e3edfb,#c9dbf8)}
.d-card b{display:block;height:6px;margin-bottom:5px;border-radius:3px;background:#dfe8f3}
.d-card b.s{width:55%;margin-bottom:2px}
.d-card.hl{border-color:var(--blue);box-shadow:0 8px 18px #246bf426}

/* ---------- 5 · System integration: hub and four systems ---------- */
.demo-integr{padding:6px;display:flex;justify-content:center;align-items:center}
.d-net{height:100%;width:auto;max-width:100%;aspect-ratio:330/268;overflow:visible}
.d-link{fill:none;stroke:#cfdcf0;stroke-width:1.5;stroke-dasharray:4 4;transition:stroke .3s}
.d-link.on{stroke:var(--blue)}
.d-node rect{fill:#fff;stroke:#cfdcf0;stroke-width:1.2;transition:fill .35s,stroke .35s}
.d-node.on rect{fill:#f1f7ff;stroke:var(--blue)}
.d-node .n1{font:700 12px var(--font-head);fill:var(--ink)}
.d-node .n2{font:400 10.5px var(--font-body);fill:#7b8ba4}
.d-core{fill:var(--blue);filter:drop-shadow(0 6px 14px #246bf455)}
.d-pulse{fill:none;stroke:var(--blue);stroke-width:2;opacity:0;transform-box:fill-box;transform-origin:center}
.d-hub.pulse .d-pulse{animation:d-pulse .9s ease-out}
@keyframes d-pulse{from{opacity:.6;transform:scale(1)}to{opacity:0;transform:scale(1.8)}}
.d-packet{fill:var(--blue);opacity:0;filter:drop-shadow(0 0 5px #246bf4aa)}

/* ---------- 6 · AI engineering teams: sprint board ---------- */
.d-team-head{display:flex;align-items:center}
.d-team-head small{margin-left:auto;color:#7b8ba4;font:600 11.5px var(--font-head)}
.d-av{display:grid;place-items:center;width:28px;height:28px;margin-right:-6px;border:2px solid #fff;border-radius:50%;color:#fff;font:700 10px var(--font-head)}
.d-av.a1{background:#246bf4}
.d-av.a2{background:#2ba3d9}
.d-av.a3{background:#5b7cfa}
.d-av.you{width:auto;padding:0 10px;margin-left:10px;border:1.5px dashed var(--blue);background:#fff;color:var(--blue);border-radius:999px}
.d-board{--w:calc((100% - 16px) / 3);position:relative;height:196px;margin-top:12px}
.d-col{position:absolute;top:0;bottom:0;width:var(--w);border-radius:10px;background:#eef3fa}
.d-col:nth-of-type(1){left:0}
.d-col:nth-of-type(2){left:calc(var(--w) + 8px)}
.d-col:nth-of-type(3){left:calc(2 * (var(--w) + 8px))}
.d-col em{display:block;padding-top:7px;color:#7b8ba4;font:700 10.5px var(--font-head);font-style:normal;text-align:center}
.d-task{position:absolute;z-index:1;display:flex;align-items:center;gap:6px;height:34px;padding:0 11px;border:1px solid #dbe6f4;border-radius:8px;background:#fff;box-shadow:0 3px 8px #0a32600d;font:600 11.5px var(--font-head);white-space:nowrap;left:calc(var(--c) * (var(--w) + 8px) + 6px);width:calc(var(--w) - 12px);top:calc(26px + var(--r) * 40px);transition:left .7s cubic-bezier(.5,0,.2,1),top .6s cubic-bezier(.5,0,.2,1),background-color .4s,color .4s,opacity .45s}
.d-board.no-anim .d-task{transition:none}
.d-task.done{border-color:#9fd9b5;color:#15803d}

/* ---------- Tablet: 2 × 3 ---------- */
@media(min-width:851px) and (max-width:1024px){
  .solutions-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .solutions-grid .solution{padding:48px 32px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
  .solutions-grid .solution:nth-child(odd){padding-left:0}
  .solutions-grid .solution:nth-child(even){padding-right:0;border-right:0}
  .solutions-grid .solution:nth-child(-n+2){padding-top:8px}
  .solutions-grid .solution:nth-child(n+5){padding-bottom:8px;border-bottom:0}
  .demo{max-width:none}
}

/* ---------- Small screens ---------- */
@media(max-width:850px){
  .solutions-grid{grid-template-columns:1fr}
  .solution,.solution:nth-child(3n),.solution:nth-child(3n+1),.solution:nth-child(n+4){padding:40px 0;border-right:0;border-bottom:1px solid var(--line)}
  .solution:first-child{padding-top:8px}
  .solution:last-child{border-bottom:0;padding-bottom:8px}
}

@media(prefers-reduced-motion:reduce){
  .demo *,.demo *::before,.demo *::after{animation:none!important}
}
