/* ═══ COMPONENTS ══════════════════════════════════════════════════════════
   Code window, service pills, project cards, testimonial cards,
   FAQ, CTA banner, marquee, stats, services, process, workflow demo,
   trust, contact, overlays, focus-visible
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── MARQUEE ─────────────────────────────────────────────────────────────── */
.marquee-section{padding:18px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border);background:var(--bg2);overflow:hidden}
.marquee-wrap{overflow:hidden;-webkit-mask:linear-gradient(to right,transparent,black 7%,black 93%,transparent);mask:linear-gradient(to right,transparent,black 7%,black 93%,transparent)}
.marquee-track{display:flex;width:max-content;animation:marquee 42s linear infinite;gap:0}
.marquee-track:hover{animation-play-state:paused}
.mitem{display:inline-flex;align-items:center;gap:10px;padding:8px 22px;font-family:var(--mono);font-size:11.5px;color:var(--text3);letter-spacing:.05em;white-space:nowrap}
.mitem-dot{width:3px;height:3px;border-radius:50%;background:var(--text4);flex-shrink:0}

/* ── STATS ───────────────────────────────────────────────────────────────── */
#stats{padding:64px 0;background:var(--bg2);border-bottom:1px solid var(--border)}
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);background:var(--border);gap:1px;border:1px solid var(--border);border-radius:var(--r);overflow:hidden}
.stat-item{background:var(--bg2);padding:36px 24px;text-align:center}
.stat-num{font-size:clamp(36px,4vw,52px);font-weight:700;color:var(--text);letter-spacing:-.04em;line-height:1;font-family:var(--mono);display:block}
.stat-lbl{font-size:13px;color:var(--text3);margin-top:8px;line-height:1.4}
.stats-note{text-align:center;margin-top:18px;font-family:var(--mono);font-size:11px;color:var(--text4);letter-spacing:.04em}

/* ── SERVICES ────────────────────────────────────────────────────────────── */
#services{background:var(--bg)}
.svc-layout{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:start;margin-bottom:24px}
.svc-list{display:flex;flex-direction:column;gap:0}
.svc-item{display:flex;align-items:flex-start;gap:16px;padding:24px 0;border-bottom:1px solid var(--border);transition:padding-left .2s}
.svc-item:first-child{padding-top:0}
.svc-item:last-child{border-bottom:none;padding-bottom:0}
.svc-item:hover{padding-left:4px}
.svc-icon-wrap{width:40px;height:40px;border-radius:9px;background:var(--bg3);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:2px}
.svc-icon-wrap svg{width:18px;height:18px;color:var(--text3)}
.svc-item-body{}
.svc-item-title{font-size:15px;font-weight:600;margin-bottom:5px;color:var(--text)}
.svc-item-desc{font-size:14px;color:var(--text2);line-height:1.65}

/* ── CODE WINDOW ─────────────────────────────────────────────────────────── */
.code-window{background:var(--card);border:1px solid var(--border);border-radius:var(--r);overflow:hidden;position:sticky;top:84px}
.code-chrome{background:var(--bg3);border-bottom:1px solid var(--border);padding:10px 14px;display:flex;align-items:center;gap:8px}
.code-dots{display:flex;gap:5px}
.code-dots span{width:10px;height:10px;border-radius:50%}
.code-dots span:nth-child(1){background:#ff5f56}
.code-dots span:nth-child(2){background:#ffbd2e}
.code-dots span:nth-child(3){background:#27c93f}
.code-file{font-family:var(--mono);font-size:11px;color:var(--text3);margin-left:6px;letter-spacing:.02em}
.code-body{padding:20px 22px;overflow-x:auto}
.code-body pre{font-family:var(--mono);font-size:12.5px;line-height:1.75;margin:0}
.tok-key{color:var(--text2)}
.tok-str{color:var(--accent)}
.tok-num{color:var(--green)}
.tok-bracket{color:var(--text4)}
.tok-colon{color:var(--text4)}

/* ── SERVICE PILLS ───────────────────────────────────────────────────────── */
.svc-pills{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}
.svc-pill{display:flex;align-items:center;gap:10px;padding:14px 18px;background:var(--card);border:1px solid var(--border);border-radius:var(--r);flex:1;min-width:200px;transition:border-color .25s,background .25s;cursor:default}
.svc-pill:hover{border-color:var(--border-hover);background:var(--card2)}
.svc-pill-icon{width:32px;height:32px;border-radius:7px;background:var(--bg3);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.svc-pill-icon svg{width:15px;height:15px;color:var(--text3)}
.svc-pill-live{background:var(--accent);border-color:transparent;cursor:pointer}
.svc-pill-live .svc-pill-icon{background:rgba(10,10,16,.3);border-color:transparent}
.svc-pill-live .svc-pill-icon svg{color:#0a0a10}
.svc-pill-live .svc-pill-text .svc-pill-title{color:#0a0a10}
.svc-pill-live .svc-pill-text .svc-pill-sub{color:rgba(10,10,16,.65)}
.svc-pill-title{font-size:13px;font-weight:600;color:var(--text);line-height:1.2}
.svc-pill-sub{font-size:11px;color:var(--text3);font-family:var(--mono);margin-top:1px}

/* ── PROCESS ─────────────────────────────────────────────────────────────── */
#process{background:var(--bg2)}
.process-row{display:grid;grid-template-columns:repeat(5,1fr);gap:0;position:relative;margin-top:16px}
.process-row::before{content:'';position:absolute;top:27px;left:calc(10% + 10px);right:calc(10% + 10px);height:1px;background:linear-gradient(to right,transparent,var(--border) 15%,var(--border) 85%,transparent);z-index:0}
.p-step{display:flex;flex-direction:column;align-items:center;text-align:center;padding:0 8px;position:relative;z-index:1}
.p-num{width:54px;height:54px;border-radius:50%;border:1px solid var(--border);background:var(--bg2);display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:13px;font-weight:600;color:var(--text3);margin-bottom:16px;transition:border-color .3s,color .3s,background .3s}
.p-step:hover .p-num{border-color:rgba(124,147,195,.4);color:var(--accent);background:var(--accent-glow)}
.p-title{font-size:14px;font-weight:600;margin-bottom:6px;color:var(--text)}
.p-desc{font-size:13px;color:var(--text2);line-height:1.65;margin-bottom:10px}
.p-meta{font-family:var(--mono);font-size:10px;color:var(--text4);letter-spacing:.04em}

/* ── PROJECTS ────────────────────────────────────────────────────────────── */
#projects{background:var(--bg)}
.proj-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:14px}
.proj-card{background:var(--card);border:1px solid var(--border);border-radius:14px;overflow:hidden;cursor:pointer;transition:border-color .3s,transform .3s,box-shadow .3s;position:relative}
.proj-card:hover{border-color:var(--border-hover);transform:translateY(-3px);box-shadow:0 20px 48px rgba(0,0,0,.35)}
.proj-img-ph{aspect-ratio:16/9;min-height:180px;background:var(--bg3);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;border-bottom:1px solid var(--border)}
.proj-img-ph svg{width:24px;height:24px;color:var(--text4);opacity:.5}
.proj-img-ph-lbl{font-family:var(--mono);font-size:10px;color:var(--text4);letter-spacing:.05em}
.proj-featured-badge{position:absolute;top:12px;right:12px;font-family:var(--mono);font-size:10px;letter-spacing:.06em;padding:4px 10px;border-radius:6px;background:rgba(124,147,195,.15);color:var(--accent);border:1px solid rgba(124,147,195,.3);z-index:2;font-weight:600}
.proj-body{padding:20px}
.proj-metric-num{font-family:var(--mono);font-size:28px;font-weight:700;color:var(--text);letter-spacing:-.03em;line-height:1;display:block;margin-bottom:2px}
.proj-metric-lbl{font-family:var(--mono);font-size:10px;color:var(--text3);display:block;margin-bottom:12px}
.proj-title{font-size:16px;font-weight:600;margin-bottom:8px;color:var(--text)}
.proj-desc{font-size:13px;color:var(--text2);line-height:1.6;margin-bottom:14px}
.proj-footer{display:flex;align-items:center;justify-content:space-between}
.proj-link{font-family:var(--mono);font-size:11px;color:var(--accent);transition:gap .2s;display:flex;align-items:center;gap:5px}
.proj-card:hover .proj-link{gap:9px}

/* ── WORKFLOW DEMO ───────────────────────────────────────────────────────── */
#workflow{background:var(--bg2)}
.wf-wrap{background:var(--card);border:1px solid var(--border);border-radius:16px;overflow:hidden;box-shadow:0 24px 64px rgba(0,0,0,.4)}
.wf-chrome{padding:12px 16px;background:var(--bg3);border-bottom:1px solid var(--border);display:flex;align-items:center;gap:10px}
.wf-dots{display:flex;gap:5px}
.wf-dots span{width:10px;height:10px;border-radius:50%}
.wf-dots span:nth-child(1){background:#ff5f56}
.wf-dots span:nth-child(2){background:#ffbd2e}
.wf-dots span:nth-child(3){background:#27c93f}
.wf-clbl{font-family:var(--mono);font-size:11px;color:var(--text3);letter-spacing:.03em}
.wf-body{padding:32px 28px}
.wf-sub{font-size:14px;color:var(--text2);margin-bottom:26px}
.wf-diagram{display:flex;align-items:flex-start;overflow-x:auto;padding:4px 0 16px;scrollbar-width:none}
.wf-diagram::-webkit-scrollbar{display:none}
.wf-node{display:flex;flex-direction:column;align-items:center;gap:8px;flex-shrink:0}
.wf-box{width:74px;height:60px;border-radius:10px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;border:1px solid var(--border);transition:transform .3s;cursor:default}
.wf-box:hover{transform:translateY(-3px)}
.wf-box.t-wh{background:rgba(232,132,95,.08);border-color:rgba(232,132,95,.25)}
.wf-box.t-fi{background:rgba(107,138,219,.08);border-color:rgba(107,138,219,.25)}
.wf-box.t-ai{background:rgba(155,122,237,.08);border-color:rgba(155,122,237,.25)}
.wf-box.t-em{background:rgba(91,185,139,.08);border-color:rgba(91,185,139,.25)}
.wf-box.t-db{background:rgba(91,168,181,.08);border-color:rgba(91,168,181,.25)}
.wf-ico-txt{font-size:16px;line-height:1}
.wf-nm{font-family:var(--mono);font-size:8px;letter-spacing:.04em;text-align:center}
.wf-box.t-wh .wf-nm{color:var(--orange)}
.wf-box.t-fi .wf-nm{color:var(--blue-node)}
.wf-box.t-ai .wf-nm{color:var(--purple)}
.wf-box.t-em .wf-nm{color:var(--green)}
.wf-box.t-db .wf-nm{color:var(--teal)}
.wf-lbl{font-size:11px;color:var(--text2);font-weight:500;text-align:center;max-width:80px;line-height:1.3}
.wf-conn-d{flex:1;min-width:24px;max-width:56px;align-self:flex-start;margin-top:29px;height:2px;position:relative}
.wf-conn-d svg{position:absolute;top:50%;transform:translateY(-50%);width:100%;height:18px;overflow:visible}
.wf-line{stroke:rgba(124,147,195,.2);stroke-width:1.5;fill:none;stroke-dasharray:5 4;animation:dash-f 1.6s linear infinite}
.wf-arr{fill:rgba(124,147,195,.35);stroke:none}
.wf-ph{margin-top:22px}

/* ── TRUST ───────────────────────────────────────────────────────────────── */
#trust{background:var(--bg)}
.tools-grid{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:52px}
.tool-badge{display:inline-flex;align-items:center;gap:8px;padding:9px 15px;background:var(--card);border:1px solid var(--border);border-radius:8px;font-size:13px;font-weight:500;color:var(--text2);transition:border-color .2s,color .2s;cursor:default}
.tool-badge:hover{border-color:var(--border-hover);color:var(--text)}
.tool-badge svg{width:14px;height:14px;opacity:.6;flex-shrink:0}
.testi-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.testi-card{background:var(--card);border:1px solid var(--border);border-radius:var(--r);padding:28px;position:relative;overflow:hidden}
.q-mark{position:absolute;top:8px;right:16px;font-size:80px;line-height:1;color:var(--text);opacity:.04;font-family:Georgia,serif;font-weight:700;pointer-events:none;user-select:none}
.testi-text{color:var(--text2);font-size:15px;line-height:1.72;margin-bottom:22px;font-style:italic}
.testi-author{display:flex;align-items:center;gap:12px}
.testi-av{width:38px;height:38px;border-radius:50%;background:var(--bg3);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;color:var(--text3);font-size:11px;font-family:var(--mono);font-weight:600;flex-shrink:0;letter-spacing:.04em}
.testi-name{font-weight:600;font-size:14px;color:var(--text)}
.testi-role{font-size:12px;color:var(--text3);font-family:var(--mono)}

/* ── FAQ ─────────────────────────────────────────────────────────────────── */
#faq{background:var(--bg2)}
.faq-wrap{max-width:760px;margin:0 auto}
.faq-item{border-bottom:1px solid var(--border)}
.faq-q{width:100%;display:flex;align-items:center;justify-content:space-between;padding:22px 0;font-size:16px;font-weight:500;text-align:left;color:var(--text);gap:16px;transition:color .2s;background:none;border:none;cursor:pointer;font-family:var(--ff)}
.faq-q:hover{color:var(--accent)}
.faq-ico{font-size:20px;color:var(--text3);transition:transform .3s,color .3s;flex-shrink:0;font-family:var(--mono);line-height:1}
.faq-item.open .faq-ico{transform:rotate(45deg);color:var(--accent)}
.faq-a{max-height:0;overflow:hidden;transition:max-height .38s ease}
.faq-item.open .faq-a{max-height:320px}
.faq-a-inner{padding-bottom:22px;color:var(--text2);font-size:15px;line-height:1.72}

/* ── CTA BANNER ──────────────────────────────────────────────────────────── */
#cta-banner{padding:112px 0;background:var(--bg)}
.cta-card{background:var(--card2);border:1px solid var(--border);border-radius:20px;padding:60px 48px;text-align:center;position:relative;overflow:hidden}
.cta-card::before{content:'';position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:600px;height:400px;background:radial-gradient(ellipse,rgba(124,147,195,.05) 0%,transparent 65%);pointer-events:none}
.cta-title{font-size:clamp(28px,4vw,46px);font-weight:700;letter-spacing:-.025em;margin-bottom:14px;position:relative;z-index:1;color:var(--text)}
.cta-sub{color:var(--text2);font-size:17px;line-height:1.65;max-width:500px;margin:0 auto 36px;position:relative;z-index:1}
.cta-btns{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;position:relative;z-index:1}
.cta-note{font-family:var(--mono);font-size:11px;color:var(--text4);margin-top:20px;letter-spacing:.04em;position:relative;z-index:1}

/* ── CONTACT ─────────────────────────────────────────────────────────────── */
#contact{background:var(--bg2);padding:96px 0}
.contact-inner{max-width:540px;margin:0 auto;text-align:center}
.contact-links{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:28px}
.clink{display:flex;align-items:center;gap:8px;padding:12px 20px;background:var(--card);border:1px solid var(--border);border-radius:10px;font-size:14px;font-weight:500;transition:border-color .2s,color .2s;color:var(--text2)}
.clink:hover{border-color:var(--border-hover);color:var(--text)}
.clink svg{width:16px;height:16px;flex-shrink:0}

/* ── OVERLAYS ────────────────────────────────────────────────────────────── */
.ov-bg{position:fixed;inset:0;background:rgba(10,10,16,.88);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);z-index:300;opacity:0;pointer-events:none;transition:opacity .3s;display:flex;align-items:center;justify-content:center;padding:16px}
.ov-bg.open{opacity:1;pointer-events:all}
.ov-panel{width:min(680px,100%);max-height:88vh;background:var(--card2);border:1px solid var(--border);border-radius:16px;overflow-y:auto;position:relative;transform:translateY(18px) scale(.98);opacity:0;transition:all .35s cubic-bezier(.34,1.3,.64,1)}
.ov-bg.open .ov-panel{transform:translateY(0) scale(1);opacity:1}
.ov-x{position:absolute;top:14px;right:14px;width:30px;height:30px;border-radius:50%;background:var(--bg2);border:1px solid var(--border);color:var(--text3);font-size:18px;display:flex;align-items:center;justify-content:center;z-index:2;transition:color .2s,background .2s;cursor:pointer;font-family:var(--mono);line-height:1}
.ov-x:hover{background:var(--border);color:var(--text)}
.ov-inner{padding:30px}
.ov-ph{margin-bottom:20px}
.ov-title{font-size:22px;font-weight:700;margin:10px 0;letter-spacing:-.02em;color:var(--text)}
.ov-desc{color:var(--text2);font-size:15px;line-height:1.72;margin-bottom:22px}
.ov-feats h4{font-size:11px;font-weight:700;color:var(--text3);text-transform:uppercase;letter-spacing:.12em;margin-bottom:10px;font-family:var(--mono)}
.feat-list{display:flex;flex-direction:column;gap:8px;margin-bottom:22px}
.feat-list li{display:flex;align-items:flex-start;gap:10px;font-size:14px;color:var(--text2)}
.feat-list li::before{content:'\2192';color:var(--accent);font-family:var(--mono);flex-shrink:0}
.ov-result{background:rgba(124,147,195,.05);border:1px solid rgba(124,147,195,.15);border-radius:10px;padding:16px 20px;font-size:14px;line-height:1.65;color:var(--text2)}
.ov-result strong{color:var(--text)}

/* ═══ TOOL CATEGORIES ═══ */
.tool-categories{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.tool-cat-label{font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--text4);margin-bottom:12px;padding-left:2px}
.tool-cat-items{display:flex;flex-direction:column;gap:6px}
.tool-cat-item{display:flex;align-items:center;gap:10px;padding:10px 14px;background:rgba(255,255,255,.02);border:1px solid var(--border);border-radius:8px;font-size:13px;color:var(--text2);transition:border-color .2s,color .2s,background .2s}
.tool-cat-item:hover{border-color:var(--border-hover);color:var(--text);background:rgba(255,255,255,.03)}
.tool-cat-icon{width:28px;height:28px;border-radius:7px;display:flex;align-items:center;justify-content:center;font-size:14px;flex-shrink:0}
.tool-cat-name{font-weight:500}

/* ═══ TESTIMONIAL STARS ═══ */
.testi-stars{display:flex;gap:2px;margin-bottom:14px}
.testi-star{color:#ffbd2e;font-size:14px}

/* ── FOCUS VISIBLE ───────────────────────────────────────────────────────── */
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}
button:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:6px}
a:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}
input:focus-visible{outline:2px solid var(--accent);outline-offset:0;border-radius:9px}
