/* 辨证云官网重构 v1 · 深色青瓷绿 · 2026-09-04 */
:root{
  --bg:#0e1614; --bg-alt:#121c19; --card:#16221f; --card-2:#1b2a26;
  --line:rgba(129,180,167,.14); --line-strong:rgba(129,180,167,.28);
  --ink:#e9f1ed; --sub:#9db3ab; --faint:#6f857d;
  --brand:#318c80; --brand-2:#51d9b5; --leaf:#a6e582; --gold:#f2cf61; --red:#d95b5b;
  --grad:linear-gradient(135deg,#318c80,#51d9b5);
  --maxw:1180px; --r:14px;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;font-size:16px;line-height:1.75;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 28px}

/* ---------- 顶栏 ---------- */
.top{position:sticky;top:0;z-index:100;background:rgba(10,16,14,.92);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.top-in{display:flex;align-items:center;gap:22px;height:66px}
.logo{display:flex;align-items:baseline;gap:8px;white-space:nowrap}
.logo .cn{font-size:24px;font-weight:800;letter-spacing:2px;color:#fff}
.logo .cn sup{font-size:11px;color:var(--brand-2)}
.logo .en{font-size:10px;color:var(--faint);letter-spacing:.5px}
nav.main{display:flex;gap:0;flex:1;min-width:0}
nav.main>div{position:relative}
/* 主导航字号 14 → 16：横向 padding 同步 11 → 13，否则字号变大后各项会挤在一起。
   实测 7 项总宽 566（< nav 可用 710），不会换行。 */
nav.main>a,nav.main>div>a,nav.main>div>span{display:inline-block;padding:20px 13px;font-size:16px;line-height:1.5;color:var(--sub);cursor:pointer;transition:color .2s;white-space:nowrap}
nav.main a:hover,nav.main .has-sub:hover>span{color:var(--brand-2)}
nav.main .on>a,nav.main .on>span{color:var(--brand-2);font-weight:600}
.drop{position:absolute;top:100%;left:50%;transform:translateX(-50%) translateY(8px);background:#14201d;border:1px solid var(--line-strong);border-radius:12px;padding:14px 0;min-width:270px;opacity:0;visibility:hidden;transition:.22s;box-shadow:0 18px 48px rgba(0,0,0,.5)}
.has-sub:hover .drop{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}
.drop a{display:flex;justify-content:space-between;gap:24px;padding:9px 22px;font-size:15px;color:var(--sub);white-space:nowrap}
.drop a:hover{background:rgba(49,140,128,.14);color:var(--brand-2)}
.drop a small{color:var(--faint);font-size:12.5px;padding-left:18px}
.drop .col-h{padding:6px 22px 4px;font-size:12px;color:var(--brand-2);letter-spacing:1px}
.top-cta{display:flex;gap:12px;align-items:center;white-space:nowrap}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:11px 26px;border-radius:10px;font-size:15px;font-weight:600;cursor:pointer;border:1px solid transparent;transition:.2s}
.btn-grad{background:var(--grad);color:#06231c}
.btn-grad:hover{filter:brightness(1.1)}
.btn-ghost{border-color:var(--line-strong);color:var(--ink);background:transparent}
.btn-ghost:hover{border-color:var(--brand-2);color:var(--brand-2)}
.btn-sm{padding:8px 18px;font-size:14px}
/* 只提 header 里的按钮，跟着导航字号走；.btn-sm 在 products/index 正文里也有 5 处，不能全局改 */
.top-cta .btn-sm{font-size:14.5px;padding:9px 19px}
.burger{display:none;font-size:22px;color:var(--sub);background:none;border:none;cursor:pointer}

/* ---------- Hero ---------- */
.hero{position:relative;overflow:hidden;background:radial-gradient(1000px 500px at 78% 10%,rgba(49,140,128,.16),transparent 60%),radial-gradient(700px 420px at 10% 90%,rgba(81,217,181,.07),transparent 60%),var(--bg)}
.hero-in{display:grid;grid-template-columns:1.05fr .95fr;gap:40px;align-items:center;padding:60px 0 64px}
.pill{display:inline-flex;align-items:center;gap:8px;padding:7px 16px;border:1px solid rgba(81,217,181,.4);border-radius:999px;font-size:13px;color:var(--brand-2);background:rgba(49,140,128,.1);margin-bottom:26px}
.pill i{width:7px;height:7px;border-radius:50%;background:var(--gold);flex:none}
.hero h1{font-size:46px;line-height:1.28;font-weight:800;letter-spacing:1px;margin-bottom:20px}
.hero h1 em{font-style:normal;color:#fff}
.hero .sub{font-size:17px;color:var(--sub);margin-bottom:10px}
.hero .sub b{color:var(--ink);font-weight:600}
.hero .acts{display:flex;gap:14px;margin-top:34px;flex-wrap:wrap}
.hero-note{margin-top:26px;font-size:13px;color:var(--faint)}
.hero-note b{color:var(--sub);font-weight:500}

/* 神经网络可视化 */
.net{position:relative;border:1px solid var(--line);border-radius:18px;background:linear-gradient(160deg,#13201c,#0d1513);padding:26px 22px 18px}
.net .cap{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}
.net .cap span{font-size:12px;color:var(--faint)}
.net svg{width:100%;height:auto;display:block}

/* ---------- 数据条 ---------- */
.stats{border-block:1px solid var(--line);background:var(--bg-alt)}
.stats-in{display:grid;grid-template-columns:repeat(4,1fr)}
.stat{padding:34px 20px;text-align:center;border-left:1px solid var(--line)}
.stat:first-child{border-left:none}
.stat b{display:block;font-size:38px;font-weight:800;letter-spacing:-.5px;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.stat > span{font-size:13.5px;color:var(--sub)}
.stat b span{font-size:inherit;color:inherit;letter-spacing:inherit}
.stat small{display:block;font-size:12px;color:var(--faint);margin-top:2px}

/* ---------- 区块 ---------- */
section{padding:64px 0}
section.alt{background:var(--bg-alt)}
.sec-head{max-width:760px;margin:0 auto 40px;text-align:center}
.sec-head .kicker{font-size:13px;letter-spacing:3px;color:var(--brand-2);margin-bottom:14px;display:block}
.sec-head h2{font-size:34px;font-weight:800;letter-spacing:.5px;line-height:1.4}
.sec-head p{color:var(--sub);margin-top:14px;font-size:16px}
.sec-head.left{text-align:left;margin:0 0 44px}
/* 长标题单行版：容器放宽到 880，正文仍按 760 居中，避免副文案跟着变宽 */
.sec-head.wide{max-width:880px}
.sec-head.wide h2{white-space:nowrap}
.sec-head.wide p{max-width:760px;margin-inline:auto}
@media(max-width:900px){.sec-head.wide{max-width:100%}.sec-head.wide h2{white-space:normal}.sec-head.wide p{max-width:none}}

/* 能力网格 */
.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:28px 26px;transition:.25s}
.card:hover{transform:translateY(-4px);border-color:rgba(81,217,181,.45);background:var(--card-2)}
.card .ic{width:46px;height:46px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:22px;margin-bottom:18px;background:rgba(49,140,128,.16);border:1px solid rgba(81,217,181,.25)}
.card h3{font-size:17.5px;font-weight:700;margin-bottom:10px}
.card p{font-size:14px;color:var(--sub);line-height:1.8}
.card .more{display:inline-block;margin-top:16px;font-size:13.5px;color:var(--brand-2)}
.card .more:hover{text-decoration:underline}

/* 产品线 */
.prod{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;align-items:stretch}
.prod .wide .grid-3{grid-template-columns:1fr;gap:12px}
.prod .wide .grid-3 .card{padding:16px 18px}
.prod .wide .grid-3 .card h3{font-size:15px}
.prod .wide .grid-3 .card p{font-size:12.5px;margin-bottom:0}
.prod .pcard .nums{gap:12px}
.prod .pcard .nums div b{font-size:19px}
.pcard{position:relative;overflow:hidden;background:linear-gradient(150deg,#16221f,#101a17);border:1px solid var(--line);border-radius:var(--r);padding:34px 32px 30px;transition:.25s;display:flex;flex-direction:column}
.pcard:hover{border-color:rgba(81,217,181,.45);transform:translateY(-4px)}
.pcard .tag{position:absolute;top:0;right:0;font-size:12px;padding:6px 14px;border-radius:0 0 0 12px;background:rgba(49,140,128,.2);color:var(--brand-2);border-left:1px solid var(--line);border-bottom:1px solid var(--line)}
.pcard h3{font-size:21px;font-weight:800;margin-bottom:6px}
.pcard .en{font-size:12px;color:var(--faint);margin-bottom:16px;letter-spacing:.5px}
.pcard p{font-size:14.5px;color:var(--sub);margin-bottom:18px}
.pcard ul{list-style:none;margin-bottom:22px}
.pcard li{font-size:13.5px;color:var(--sub);padding:5px 0 5px 22px;position:relative}
.pcard li::before{content:"";position:absolute;left:0;top:12px;width:12px;height:12px;border-radius:4px;background:rgba(81,217,181,.18);border:1px solid rgba(81,217,181,.5)}
.pcard li b{color:var(--ink);font-weight:600}
.pcard .nums{display:flex;gap:16px;flex-wrap:wrap;padding:16px 0;border-top:1px dashed var(--line);margin-bottom:22px}
.pcard .nums div b{display:block;font-size:22px;font-weight:800;color:var(--brand-2)}
.pcard .nums div span{font-size:12px;color:var(--faint)}
.pcard .acts{display:flex;gap:12px;flex-wrap:wrap;margin-top:auto}

/* 六经专区 */
.liujing{background:radial-gradient(900px 480px at 85% 20%,rgba(81,217,181,.1),transparent 60%),var(--bg);border-block:1px solid var(--line)}
.lj-grid{display:grid;grid-template-columns:1fr 1fr;gap:44px;align-items:start}
.lj-def{font-size:16px;color:var(--sub);line-height:2}
.lj-def b{color:var(--ink)}
.defbox{background:rgba(49,140,128,.1);border:1px solid rgba(81,217,181,.3);border-left:4px solid var(--brand-2);border-radius:10px;padding:20px 24px;margin-bottom:22px}
.defbox p{font-size:15px;color:var(--ink);line-height:1.9}
.six{display:grid;grid-template-columns:repeat(6,1fr);gap:12px;margin-top:26px}
.six div{text-align:center;padding:16px 8px;border:1px solid var(--line);border-radius:10px;background:var(--card)}
.six b{display:block;font-size:17px;color:var(--brand-2)}
.six span{font-size:12px;color:var(--faint)}

/* 方案 Tab */
.tabs{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:34px}
.tab{padding:10px 22px;border-radius:999px;border:1px solid var(--line-strong);font-size:14px;color:var(--sub);cursor:pointer;transition:.2s;background:transparent}
.tab:hover{color:var(--brand-2);border-color:var(--brand-2)}
.tab.on{background:var(--grad);color:#06231c;border-color:transparent;font-weight:600}
.pane{display:none}
.pane.on{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}

/* 案例 */
.case-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.case{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:26px;transition:.25s}
.case:hover{border-color:rgba(81,217,181,.45);transform:translateY(-4px)}
.case .cat{display:inline-block;font-size:12px;color:var(--gold);border:1px solid rgba(242,207,97,.35);border-radius:999px;padding:3px 12px;margin-bottom:14px}
.case h3{font-size:17px;font-weight:700;margin-bottom:10px}
.case p{font-size:13.5px;color:var(--sub)}
.case .quote{margin-top:14px;padding:12px 16px;background:rgba(49,140,128,.08);border-left:3px solid var(--brand);border-radius:0 8px 8px 0;font-size:13px;color:var(--sub)}
.case .quote i{color:var(--brand-2);font-style:normal}

/* 传承 */
.master{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.mcard{background:linear-gradient(170deg,#16221f,#111b18);border:1px solid var(--line);border-radius:var(--r);padding:30px 28px}
.mcard .avatar{width:64px;height:64px;border-radius:50%;background:var(--grad);display:flex;align-items:center;justify-content:center;font-size:26px;font-weight:800;color:#06231c;margin-bottom:18px}
.mcard h3{font-size:19px;font-weight:800}
.mcard .role{font-size:12.5px;color:var(--gold);margin:4px 0 14px}
.mcard p{font-size:13.5px;color:var(--sub)}
.mcard .st{display:inline-block;margin-top:16px;font-size:12px;color:var(--leaf);border:1px solid rgba(166,229,130,.35);border-radius:999px;padding:4px 12px}

/* 时间轴 */
.tl{position:relative;max-width:920px;margin:0 auto;padding-left:26px}
.tl::before{content:"";position:absolute;left:0;top:8px;bottom:8px;width:2px;background:linear-gradient(180deg,var(--brand),rgba(81,217,181,.1))}
.tl-item{position:relative;padding:0 0 30px 26px}
.tl-item::before{content:"";position:absolute;left:-33px;top:7px;width:14px;height:14px;border-radius:50%;background:var(--bg);border:3px solid var(--brand-2)}
.tl-item b{display:block;font-size:19px;color:var(--brand-2);font-weight:800;margin-bottom:6px}
.tl-item h4{font-size:16px;font-weight:700;margin-bottom:6px}
.tl-item p{font-size:14px;color:var(--sub)}
/* 横向时间轴（story 四幕）：四列并排，顶部一条贯穿横线 + 节点圆点 */
@media(min-width:901px){
  .tl.h{display:grid;grid-template-columns:repeat(4,1fr);gap:34px;padding-left:0;max-width:none}
  .tl.h::before{display:none}
  .tl.h .tl-item{padding:50px 0 0}
  .tl.h .tl-item::before{left:0;top:9px}
  .tl.h .tl-item::after{content:"";position:absolute;left:22px;right:-34px;top:15px;height:2px;background:linear-gradient(90deg,rgba(81,217,181,.55),rgba(81,217,181,.28))}
  .tl.h .tl-item:last-child::after{display:none}
}
.tl-cols{display:grid;grid-template-columns:1fr 1fr;gap:60px}

/* FAQ */
.faq details{border:1px solid var(--line);border-radius:12px;background:var(--card);margin-bottom:12px;overflow:hidden}
.faq summary{padding:18px 24px;font-size:15.5px;font-weight:600;cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center}
.faq summary::after{content:"+";font-size:20px;color:var(--brand-2);font-weight:400}
.faq details[open] summary::after{content:"–"}
.faq .a{padding:0 24px 20px;font-size:14.5px;color:var(--sub);line-height:1.9}
.faq .a b{color:var(--ink)}

/* CTA */
.cta-band{background:linear-gradient(135deg,rgba(49,140,128,.22),rgba(81,217,181,.08)),var(--bg-alt);border-block:1px solid var(--line)}
.cta-in{display:flex;align-items:center;justify-content:space-between;gap:30px;padding:60px 0;flex-wrap:wrap}
.cta-in h2{font-size:28px;font-weight:800}
.cta-in p{color:var(--sub);margin-top:8px}
.cta-in .acts{display:flex;gap:14px;flex-wrap:wrap}

/* 页脚 */
footer{background:#101614;border-top:1px solid var(--line);padding:64px 0 0;font-size:14px}
.f-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr 1fr;gap:36px;padding-bottom:44px}
.f-brand .logo .cn{font-size:22px}
.f-brand p{color:var(--faint);font-size:13px;margin-top:14px;line-height:1.9}
.f-col h4{font-size:14px;color:var(--ink);margin-bottom:16px;font-weight:700}
.f-col a{display:block;color:var(--faint);font-size:13.5px;padding:5px 0}
.f-col a:hover{color:var(--brand-2)}
.f-bar{border-top:1px solid var(--line);padding:20px 0;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;color:var(--faint);font-size:12.5px}
.f-bar a{color:var(--faint)}
.f-bar a:hover{color:var(--brand-2)}
.f-bar .ghs{display:inline-block;width:15px;height:15px;vertical-align:-2px;margin-right:4px;opacity:.85}
@media(min-width:901px){.f-bar{flex-direction:column;gap:8px}.f-bar span{white-space:nowrap}}

/* 内页 hero */
.page-hero{background:radial-gradient(800px 400px at 75% 0%,rgba(49,140,128,.15),transparent 60%),var(--bg);border-bottom:1px solid var(--line);padding:70px 0 58px}
.crumb{font-size:13px;color:var(--faint);margin-bottom:18px}
.crumb a{color:var(--faint)}
.crumb a:hover{color:var(--brand-2)}
.crumb i{font-style:normal;margin:0 8px;color:var(--line-strong)}
.page-hero h1{font-size:38px;font-weight:800;margin-bottom:14px}
.page-hero .lead{font-size:16.5px;color:var(--sub);max-width:780px}

/* 双栏图文 */
.split{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:start}
.split.rev .s-txt{order:2}
.s-visual{border:1px solid var(--line);border-radius:16px;background:linear-gradient(160deg,#13201c,#0d1513);padding:28px}
/* 语言障碍表：整块与左侧文字上下齐平 + 字号加大 */
.split.even{align-items:stretch}
.split.even .s-visual{display:flex;flex-direction:column}
.split.even .s-visual .vp{flex:1;align-items:center;font-size:15px;padding:12px 16px}
.split.even .s-visual .vp b{font-size:15px}
@media(max-width:620px){.split.even .s-visual .vp,.split.even .s-visual .vp b{font-size:13.5px}}
.s-visual .vp{display:flex;justify-content:space-between;padding:12px 16px;border-bottom:1px dashed var(--line);font-size:13.5px;color:var(--sub)}
.s-visual .vp:last-child{border-bottom:none}
.s-visual .vp b{color:var(--brand-2);font-weight:600}

/* ---------- 紧凑版 vp 表（platform 的 MoE 闭环区）：收紧行距 + 四周留白对齐 ---------- */
/* 硬约束：vp 的左右 padding 必须归零，左右留白统一交给容器管 ——
   两个层级各管一段就永远差 16px，怎么调都对不齐。 */
.s-visual.tight{padding:20px 28px}
.s-visual.tight .vp{padding:8px 0}
@media(max-width:620px){
  /* 窄屏容器 18 的左右留白，上边距取 10 让「10+8=18」与左右对齐 */
  .s-visual.tight{padding:10px 18px}
}
.klist{list-style:none;margin-top:22px}
.klist li{padding:10px 0 10px 30px;position:relative;font-size:14.5px;color:var(--sub);border-bottom:1px dashed var(--line)}
.klist li:last-child{border-bottom:none}
.klist li::before{content:"✓";position:absolute;left:2px;top:10px;color:var(--brand-2);font-weight:700}
.klist li b{color:var(--ink);font-weight:600}
.step-io{display:inline-block;margin-top:6px;font-size:13px;line-height:1.75;color:var(--faint);background:rgba(49,140,128,.08);border-left:2px solid var(--brand);padding:5px 10px;border-radius:0 5px 5px 0}
.step-io::before{content:"↳ ";color:var(--brand-2);font-weight:700}
.shot.tall{max-width:560px;margin-left:auto;margin-right:auto}
.shot.tall .zoom{display:block}
.shot.tall img{aspect-ratio:auto;object-fit:contain;width:auto;max-width:100%;max-height:620px;margin:0 auto;background:#0a100f;padding:0;border:1px solid var(--line);border-radius:8px;cursor:zoom-in}
.shot.tall figcaption{text-align:center}

/* 表格 */
.tbl{width:100%;border-collapse:collapse;font-size:14px;margin:20px 0}
.tbl th{background:rgba(49,140,128,.14);color:var(--brand-2);text-align:left;padding:13px 16px;border:1px solid var(--line);font-weight:700;white-space:nowrap}
.tbl td{padding:14px 16px;border:1px solid var(--line);color:var(--sub);vertical-align:top;line-height:1.75}
.tbl td b{color:var(--ink);font-weight:600}
.tbl tbody tr:nth-child(even) td{background:rgba(255,255,255,.02)}
.tbl td:first-child{white-space:nowrap;color:var(--sub)}
.tbl td:first-child b{color:var(--faint);font-weight:600}

/* ---------- 移动端抽屉导航 ---------- */
.mnav-mask{position:fixed;inset:0;background:rgba(0,0,0,.62);backdrop-filter:blur(2px);z-index:198;opacity:0;visibility:hidden;transition:.25s}
.mnav-mask.on{opacity:1;visibility:visible}
.mnav{position:fixed;top:0;right:0;bottom:0;width:min(86vw,368px);z-index:199;background:#0f1815;border-left:1px solid var(--line-strong);transform:translateX(101%);transition:transform .28s cubic-bezier(.4,0,.2,1);overflow-y:auto;-webkit-overflow-scrolling:touch;display:flex;flex-direction:column;box-shadow:-20px 0 60px rgba(0,0,0,.5)}
.mnav.on{transform:none}
.mnav-hd{display:flex;align-items:center;justify-content:space-between;padding:0 18px;height:56px;border-bottom:1px solid var(--line);position:sticky;top:0;background:#0f1815;z-index:2;flex:none}
.mnav-hd b{font-size:16px;letter-spacing:1px}
.mnav-close{background:none;border:1px solid var(--line-strong);color:var(--sub);width:34px;height:34px;border-radius:9px;font-size:17px;line-height:1;cursor:pointer}
.mnav-body{flex:1;padding-bottom:8px}
.mnav .mi{border-bottom:1px solid var(--line)}
.mnav .mi>a,.mnav .mi>span{display:flex;justify-content:space-between;align-items:center;padding:15px 18px;font-size:15.5px;color:var(--ink);cursor:pointer}
.mnav .mi.on>a,.mnav .mi.on>span{color:var(--brand-2);font-weight:600}
.mnav .mi.has-sub>span::after{content:"+";font-size:19px;color:var(--brand-2);font-weight:400;flex:none;padding-left:12px}
.mnav .mi.has-sub.open>span::after{content:"–"}
.mnav .mi.has-sub.open>span{color:var(--brand-2)}
.mnav .drop{display:none;position:static;transform:none;opacity:1;visibility:visible;min-width:0;background:rgba(49,140,128,.07);border:none;border-radius:0;box-shadow:none;padding:6px 0}
.mnav .mi.open>.drop{display:block}
.mnav .drop .col-h{padding:10px 18px 4px;color:var(--brand-2);font-size:12px;letter-spacing:1px}
.mnav .drop a{display:block;padding:11px 18px 11px 30px;font-size:14px;color:var(--sub);white-space:normal;gap:0;justify-content:flex-start;border-bottom:none}
.mnav .drop a:hover,.mnav .drop a:active{background:rgba(49,140,128,.16)}
.mnav .drop a small{display:block;padding:2px 0 0;color:var(--faint);font-size:12px;line-height:1.5}
.mnav-cta{flex:none;padding:18px;border-top:1px solid var(--line);display:grid;gap:10px}
.mnav-cta .btn{width:100%}
body.locked{overflow:hidden}
.burger{width:38px;height:38px;border-radius:9px;border:1px solid var(--line-strong);display:none;align-items:center;justify-content:center;font-size:17px;line-height:1;color:var(--sub);background:none;cursor:pointer}

/* ---------- 表格横向滚动 ---------- */
.tbl-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;width:100%}

/* ---------- 响应式 ---------- */
section[id],.page-hero[id]{scroll-margin-top:64px}
@media(max-width:1024px){
  .grid-4{grid-template-columns:repeat(2,1fr)}
  .grid-3,.pane.on,.case-grid,.master{grid-template-columns:repeat(2,1fr)}
  .hero-in,.lj-grid,.split{grid-template-columns:1fr;gap:34px}
  .split.rev .s-txt{order:0}
  .tl-cols{grid-template-columns:1fr;gap:0}
  .stats-in{grid-template-columns:repeat(2,1fr)}
  .stat:nth-child(3){border-left:none}
  .f-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:1024px){
  .top-in{gap:14px}
  .top-cta .btn-sm{padding:8px 14px;font-size:13px}
}
/* ---------- 平板 / 手机：切换为抽屉导航 ---------- */
@media(max-width:900px){
  nav.main{display:none!important}
  .burger{display:flex;margin-left:auto}
  .top-in{height:56px;gap:12px}
  .top-cta{gap:8px}
  .top-cta .btn-ghost{display:none}
  .logo .cn{font-size:20px;letter-spacing:1px}
  .logo .en{display:none}
  nav.main .drop{display:none}
}

/* ---------- 手机 ---------- */
@media(max-width:720px){
  body{font-size:15.5px;-webkit-text-size-adjust:100%}
  .wrap{padding:0 18px}
  .hero-in{padding:40px 0 48px;gap:28px}
  .hero h1{font-size:29px;letter-spacing:0;margin-bottom:16px}
  .hero .sub{font-size:15px}
  .hero .acts{margin-top:26px;gap:10px}
  .hero .acts .btn{flex:1 1 140px;padding:12px 18px;font-size:14.5px}
  .hero-note{margin-top:20px;font-size:12.5px}
  .pill{margin-bottom:18px;font-size:12px;padding:6px 13px}
  .net{padding:16px 13px 12px;border-radius:14px}
  .net .cap{font-size:11px}

  section{padding:56px 0}
  .sec-head{margin-bottom:34px}
  .sec-head h2{font-size:24px;line-height:1.45}
  .sec-head p{font-size:14.5px}
  .sec-head.left{margin-bottom:30px}

  .grid-4,.grid-3,.grid-2,.pane.on,.case-grid,.master,.prod{grid-template-columns:1fr;gap:14px}
  .six{grid-template-columns:repeat(2,1fr);gap:10px}
  .six div{padding:13px 6px}
  .six b{font-size:15.5px}
  .card{padding:22px 20px}
  .card h3{font-size:16.5px}
  .card .ic{width:42px;height:42px;font-size:20px;margin-bottom:14px}
  .pcard{padding:26px 20px 24px}
  .pcard h3{font-size:19px}
  .pcard .nums{gap:18px}
  .pcard .nums div b{font-size:20px}
  .pcard .acts .btn{flex:1 1 130px}

  .stats-in{grid-template-columns:repeat(2,1fr)}
  .stat{padding:22px 12px}
  .stat b{font-size:27px}
  .stat > span{font-size:12.5px}
  .stat small{font-size:11px}

  .lj-grid,.split{gap:26px}
  .lj-def{font-size:15px;line-height:1.95}
  .defbox{padding:16px 18px;border-left-width:3px}
  .defbox p{font-size:14.5px;line-height:1.85}
  .s-visual{padding:18px 15px;border-radius:13px}
  .s-visual .vp{font-size:13px;padding:10px 0}
  .klist li{font-size:14px;padding-left:26px}

  .tabs{gap:8px;margin-bottom:24px;overflow-x:auto;flex-wrap:nowrap;padding-bottom:4px;-webkit-overflow-scrolling:touch}
  .tab{padding:8px 16px;font-size:13.5px;white-space:nowrap;flex:none}

  .case{padding:22px 20px}
  .case h3{font-size:16.5px}
  .mcard{padding:24px 20px}
  .mcard .avatar{width:54px;height:54px;font-size:22px}

  .tl{padding-left:20px}
  .tl-item{padding:0 0 24px 20px}
  .tl-item::before{left:-27px;width:12px;height:12px;border-width:2px}
  .tl-item b{font-size:17px}

  .faq summary{padding:15px 17px;font-size:14.8px;line-height:1.6}
  .faq .a{padding:0 17px 16px;font-size:14px}
  .tbl{min-width:560px}
  .tbl th,.tbl td{padding:10px 12px;font-size:13px}

  .page-hero{padding:40px 0 34px}
  .page-hero h1{font-size:26px;margin-bottom:12px}
  .page-hero .lead{font-size:15px}
  .crumb{font-size:12px;margin-bottom:12px}

  .cta-in{padding:40px 0;gap:20px;flex-direction:column;align-items:flex-start}
  .cta-in h2{font-size:22px}
  .cta-in p{font-size:14.5px}
  .cta-in .acts{width:100%;gap:10px}
  .cta-in .acts .btn{flex:1}

  footer{padding:44px 0 0}
  .f-grid{grid-template-columns:1fr 1fr;gap:26px 20px;padding-bottom:30px}
  .f-brand{grid-column:1/-1}
  .f-col h4{font-size:13.5px;margin-bottom:10px}
  .f-bar{justify-content:flex-start;gap:8px;font-size:12px}
}

/* ---------- 故事价值轮播 Banner (v1.5) ---------- */
.vban{position:relative;overflow:hidden;padding:0;border-bottom:1px solid var(--line);
  background:linear-gradient(100deg,rgba(49,140,128,.17),rgba(81,217,181,.05) 46%,transparent 78%),var(--bg-alt)}
.vban:after{content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(620px 170px at 88% 130%,rgba(166,229,130,.10),transparent 72%)}
.vban-in{position:relative;z-index:1;display:grid;grid-template-columns:1fr auto;gap:30px;align-items:center;padding:28px 28px 26px}
.vban-track{display:grid;min-width:0}
/* 所有帧叠在同一网格单元，容器高度 = 最高帧，切换时不抖动 */
.vslide{grid-area:1/1;opacity:0;pointer-events:none;transform:translateY(12px);
  transition:opacity .55s ease,transform .55s ease}
.vslide.on{opacity:1;pointer-events:auto;transform:none}
.v-tag{display:inline-flex;align-items:center;gap:7px;padding:4px 13px;border-radius:999px;
  border:1px solid rgba(81,217,181,.34);background:rgba(49,140,128,.12);
  font-size:12px;color:var(--brand-2);letter-spacing:.6px;white-space:nowrap}
.v-tag i{width:5px;height:5px;border-radius:50%;background:var(--gold);flex:none}
.v-line{margin-top:13px;font-size:26px;line-height:1.42;font-weight:800;letter-spacing:.5px;color:#fff}
.v-line em{font-style:normal;color:#fff}
.v-sub{margin-top:9px;font-size:14.5px;line-height:1.7;color:var(--sub);max-width:780px}
.v-sub b{color:var(--ink);font-weight:600}
.v-sub .num{color:var(--brand-2);font-weight:700}

/* 控制区 */
.vban-ctl{display:flex;align-items:center;gap:16px;flex:none}
.v-go{display:inline-flex;align-items:center;gap:6px;font-size:14px;font-weight:600;color:var(--brand-2);
  white-space:nowrap;transition:gap .2s}
.v-go:hover{gap:11px}
.v-arrow{width:34px;height:34px;flex:none;border-radius:50%;border:1px solid var(--line-strong);
  background:rgba(14,22,20,.55);color:var(--sub);font-size:17px;line-height:1;cursor:pointer;
  display:flex;align-items:center;justify-content:center;transition:.2s}
.v-arrow:hover{border-color:var(--brand-2);color:var(--brand-2)}
.v-dots{display:flex;align-items:center;gap:7px}
.v-dot{width:7px;height:7px;padding:0;border:none;border-radius:999px;background:rgba(129,180,167,.3);cursor:pointer;transition:.28s}
.v-dot.on{width:24px;background:var(--brand-2)}

/* 自动播放进度条 */
.vbar{position:absolute;left:0;bottom:0;height:2px;width:100%;background:rgba(129,180,167,.12);z-index:2}
.vbar i{display:block;height:100%;width:0;background:var(--grad)}
.vbar i.run{animation:vbar 5200ms linear forwards}
@keyframes vbar{from{width:0}to{width:100%}}

@media(max-width:900px){
  .vban-in{grid-template-columns:1fr;gap:20px;padding:28px 28px 26px}
  .vban-ctl{justify-content:space-between}
  .v-line{font-size:23px}
  .v-sub{font-size:14px}
}
@media(max-width:720px){
  .vban-in{padding:24px 20px 22px}
  .v-line{font-size:20px;margin-top:12px}
  .v-sub{font-size:13.5px}
  .v-go{font-size:13.5px}
  .v-arrow{width:30px;height:30px;font-size:15px}
  .v-dots{gap:6px}
}
@media(max-width:420px){
  .vban-in{padding:22px 15px 20px;gap:16px}
  .v-line{font-size:18.5px}
  .v-sub{font-size:13px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
  .v-dot{width:6px;height:6px}
  .v-dot.on{width:18px}
}
@media(prefers-reduced-motion:reduce){
  .vslide{transition:none;transform:none}
  .vbar i.run{animation:none;width:100%}
}

/* ---------- 小屏手机 ---------- */
@media(max-width:420px){
  .wrap{padding:0 15px}
  .hero h1{font-size:25px}
  .hero .acts .btn{flex:1 1 100%}
  .sec-head h2{font-size:21px}
  .page-hero h1{font-size:23px}
  .stat b{font-size:24px}
  .f-grid{grid-template-columns:1fr;gap:22px}
  .cta-in .acts{flex-direction:column}
  .cta-in .acts .btn{width:100%}
  .six{grid-template-columns:repeat(2,1fr)}
}

/* =========================================================
   需求登记表单 · v1.6
   ========================================================= */
.lead-grid{display:grid;grid-template-columns:1.35fr .65fr;gap:26px;align-items:start}

/* ---------- 表单卡片 ---------- */
.form-card{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:34px 34px 30px}
.form-hd{margin-bottom:26px;padding-bottom:20px;border-bottom:1px solid var(--line)}
.form-hd h2{font-size:22px;font-weight:800;letter-spacing:.5px;margin-bottom:8px}
.form-hd p{font-size:14px;color:var(--sub)}
.req{color:var(--brand-2);font-weight:400}

.fld{margin-bottom:20px}
.fld>label,.fld-2 label{display:block;font-size:14.5px;font-weight:600;color:var(--ink);margin-bottom:9px}
.fld-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}

.inp{width:100%;background:#0f1815;border:1px solid var(--line-strong);border-radius:11px;
  padding:13px 15px;font-size:15px;font-family:inherit;color:var(--ink);line-height:1.6;
  transition:border-color .18s,box-shadow .18s,background .18s}
.inp::placeholder{color:var(--faint)}
.inp:hover{border-color:rgba(129,180,167,.4)}
.inp:focus{outline:none;border-color:var(--brand-2);background:#0c1512;
  box-shadow:0 0 0 3px rgba(81,217,181,.13)}
.sel{appearance:none;-webkit-appearance:none;cursor:pointer;
  background-image:linear-gradient(45deg,transparent 50%,var(--sub) 50%),linear-gradient(135deg,var(--sub) 50%,transparent 50%);
  background-position:calc(100% - 20px) 50%,calc(100% - 14px) 50%;
  background-size:6px 6px,6px 6px;background-repeat:no-repeat;padding-right:40px}
.sel option{background:#14201d;color:var(--ink)}
.ta{resize:vertical;min-height:132px}

.ta-foot{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;margin-top:7px}
.counter{font-size:12.5px;color:var(--faint);flex:none;padding-top:2px}
.counter b{color:var(--sub);font-weight:600}
.counter b.warn{color:var(--gold)}

/* ---------- 需求类型多选 ---------- */
.chips{display:flex;flex-wrap:wrap;gap:9px}
.chip{position:relative;cursor:pointer;margin:0}
.chip input{position:absolute;opacity:0;width:0;height:0}
.chip span{display:inline-block;padding:9px 16px;border:1px solid var(--line-strong);border-radius:999px;
  font-size:14px;font-weight:500;color:var(--sub);background:#0f1815;transition:.18s;user-select:none}
.chip:hover span{border-color:rgba(81,217,181,.5);color:var(--ink)}
.chip input:checked+span{border-color:var(--brand-2);color:#06231c;font-weight:600;
  background:linear-gradient(135deg,#318c80,#51d9b5)}
.chip input:focus-visible+span{box-shadow:0 0 0 3px rgba(81,217,181,.25)}

/* ---------- 同意勾选 ---------- */
.agree{display:flex;gap:11px;align-items:flex-start;cursor:pointer;font-size:13.5px;font-weight:400;color:var(--sub);line-height:1.7}
.agree input{appearance:none;-webkit-appearance:none;flex:none;width:18px;height:18px;margin-top:2px;
  border:1px solid var(--line-strong);border-radius:5px;background:#0f1815;cursor:pointer;transition:.16s;position:relative}
.agree input:checked{background:var(--grad);border-color:var(--brand-2)}
.agree input:checked::after{content:"✓";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  font-size:12px;font-weight:800;color:#06231c}
.agree input:focus-visible{box-shadow:0 0 0 3px rgba(81,217,181,.25)}

/* ---------- 错误提示 ---------- */
.err{font-size:13px;color:var(--red);margin-top:7px;min-height:0;display:none}
.err.show{display:block}
.inp.bad{border-color:var(--red);background:rgba(217,91,91,.06)}
.inp.bad:focus{box-shadow:0 0 0 3px rgba(217,91,91,.14)}
.agree.bad span{color:var(--red)}

/* ---------- 蜜罐（真人不可见） ---------- */
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;opacity:0;pointer-events:none}

/* ---------- 提交区 ---------- */
.form-act{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:26px;
  padding-top:24px;border-top:1px solid var(--line)}
.form-act .btn{padding:13px 34px;font-size:15.5px}
.act-note{font-size:13px;color:var(--faint)}
.form-state{font-size:13.5px;margin-top:14px;display:none;line-height:1.7}
.form-state.show{display:block}
.form-state.ok{color:var(--brand-2)}
.form-state.warn{color:var(--gold)}
.form-state.bad{color:var(--red)}
#f-submit[disabled]{opacity:.6;cursor:not-allowed}

/* ---------- 成功态 ---------- */
.form-done{text-align:center;padding:22px 6px 8px}
.done-ic{width:62px;height:62px;margin:0 auto 20px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  font-size:30px;font-weight:800;color:#06231c;background:var(--grad);box-shadow:0 0 0 8px rgba(81,217,181,.1)}
.form-done h2{font-size:24px;font-weight:800;margin-bottom:12px}
.form-done>p{font-size:15px;color:var(--sub);max-width:520px;margin:0 auto}
.done-box{margin:26px 0 6px;text-align:left;background:#0f1815;border:1px solid var(--line);border-radius:12px;
  padding:18px 20px;font-size:13.5px;line-height:2;color:var(--sub)}
.done-box div{display:flex;gap:10px}
.done-box b{flex:none;width:74px;color:var(--faint);font-weight:500}
.done-box span{color:var(--ink);word-break:break-all}
.done-acts{display:flex;gap:12px;justify-content:center;margin-top:24px;flex-wrap:wrap}

/* ---------- 右侧信息栏 ---------- */
.lead-side{display:grid;gap:18px;position:sticky;top:86px}
.side-card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:24px 24px 22px}
.side-card.alt{background:linear-gradient(160deg,#16221f,#111c19)}
.side-card.plain{background:transparent;border-style:dashed}
.side-card h3{font-size:16px;font-weight:700;margin-bottom:14px;color:var(--ink)}
.side-list{list-style:none;display:grid;gap:13px}
.side-list li{position:relative;padding-left:16px;font-size:13.5px;color:var(--sub);line-height:1.85}
.side-list li::before{content:"";position:absolute;left:0;top:10px;width:6px;height:6px;border-radius:50%;background:var(--brand-2)}
.side-list b{color:var(--ink);font-weight:600}

.side-steps{list-style:none;display:grid;gap:14px;counter-reset:s}
.side-steps li{display:flex;gap:12px;align-items:flex-start}
.side-steps span{flex:none;width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  font-size:12.5px;font-weight:700;color:#06231c;background:var(--grad)}
.side-steps div{font-size:13.5px;line-height:1.65}
.side-steps b{display:block;color:var(--ink);font-weight:600}
.side-steps i{display:block;font-style:normal;color:var(--faint);font-size:13px;margin-top:2px}
.side-card.plain p{font-size:13.5px;color:var(--sub);line-height:1.85}

/* ---------- 复制兜底按钮 ---------- */
.copy-act{margin-top:16px}
.copy-act .btn{padding:10px 22px;font-size:14px}

@media(max-width:1024px){
  .lead-grid{grid-template-columns:1fr}
  .lead-side{position:static;grid-template-columns:1fr 1fr}
  .side-card.plain{grid-column:1/-1}
}
@media(max-width:860px){
  .lead-side{grid-template-columns:1fr}
  .side-card.plain{grid-column:auto}
}
@media(max-width:720px){
  .form-card{padding:26px 20px 24px;border-radius:15px}
  .fld-2{grid-template-columns:1fr;gap:0}
  .lead-side{grid-template-columns:1fr}
  .form-act{flex-direction:column;align-items:stretch}
  .form-act .btn{width:100%}
  .act-note{text-align:center}
  .done-acts .btn{flex:1 1 100%}
}
@media(max-width:420px){
  .form-card{padding:22px 15px 20px}
  .chip span{padding:8px 13px;font-size:13px}
  .form-hd h2{font-size:19px}
  .done-box b{width:62px}
}

/* ---------- 商标图 ---------- */
.logo .logo-img{height:36px;width:auto;display:block}
.foot .logo .logo-img,.foot-logo .logo-img{height:40px}
@media(max-width:720px){.logo .logo-img{height:30px}}

/* ---------- 实拍图片与产品演示视频 ---------- */
.shot{position:relative;margin:0;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#0c1311;padding:12px}
.shot img,.shot video{display:block;width:100%;height:auto;background:#0c1311;border-radius:8px}
.shot figcaption{padding:9px 4px 0;font-size:12.5px;line-height:1.65;color:var(--faint)}
.shot figcaption b{color:var(--sub);font-weight:600}
.media-2 .shot,.media-3 .shot,.media-4 .shot{display:flex;flex-direction:column}
.media-2 .shot figcaption,.media-3 .shot figcaption,.media-4 .shot figcaption{margin-top:auto}
.media-1{display:block;margin-top:30px;max-width:720px;margin-left:auto;margin-right:auto}
.media-2{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:30px}
.media-3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:30px}
.media-4{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:30px}
/* 四图一行（`.media-4.even`）：四张素材比例不一（本站实拍混有 4:3 与 16:9），
   不统一图区的话每张图高度都不同，一行里图脚不齐、说明文字也跟着错位。
   做法沿用站内既定的 .shot.frame 模式：锁定 4:3 图区 + object-fit:contain，
   比例不符的那张左右撑满、上下留深色边（图不裁切、内容不丢），四格图区高度一致。 */
.media-4.even .shot img{aspect-ratio:4/3;object-fit:contain}
.media-lead{margin-top:26px}
.gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(215px,1fr));gap:14px;margin-top:30px}
.gallery .shot img{aspect-ratio:4/3;object-fit:contain;background:#0c1311;padding:5px}
.gallery-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px;margin-top:30px}
.vshot::after{content:"▷ 产品实录";position:absolute;top:20px;right:20px;font-size:11px;font-weight:700;color:#06231c;background:var(--brand-2);padding:3px 10px;border-radius:999px;letter-spacing:.3px}
.vshot.playing::after{content:"● 播放中"}
.mcard .photo{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:center 18%;border-radius:10px;margin-bottom:15px;border:1px solid var(--line)}
.media-note{margin-top:14px;font-size:12.5px;color:var(--faint);line-height:1.7}
@media(max-width:1024px){.media-4{grid-template-columns:repeat(2,1fr)}}
@media(max-width:860px){
  .media-3{grid-template-columns:1fr 1fr}
  .media-2{grid-template-columns:1fr}
}
@media(max-width:600px){
  .step-io{font-size:12.5px;padding:4px 8px;display:block;margin-top:5px}
  .media-2,.media-3,.media-4{grid-template-columns:1fr}
  .gallery{grid-template-columns:1fr 1fr;gap:10px}
  .media-note{font-size:12px}
}

/* ---------- 视觉与版面细节修正 ---------- */
/* 五同五不同：左卡片右大图，卡片文字收紧，图谱放大 */
.five-split{display:grid;grid-template-columns:1fr 1fr;gap:26px;align-items:stretch;margin-top:34px}
.five-cards{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-content:start}
.five-cards .card{padding:18px 20px}
.five-cards .card h3{font-size:16px}
.five-cards .card p{font-size:13px;line-height:1.75}
.five-split>.shot{display:flex;flex-direction:column;height:100%}
.five-split>.shot .zoom{display:block;flex:1;min-height:0}
.five-split>.shot img{width:100%;height:100%;max-height:640px;object-fit:contain;background:#0a100f;border:1px solid var(--line);border-radius:8px;cursor:zoom-in}
.five-split>.shot figcaption{text-align:center}
@media(max-width:960px){
  .five-split{grid-template-columns:1fr}
  .five-split>.shot{height:auto}
  .five-split>.shot img{height:auto;max-height:none;aspect-ratio:900/858}
}
@media(max-width:600px){
  .five-cards{grid-template-columns:1fr}
}
/* 横竖视频混排：横版占宽列，竖版手机限宽居中，不再出现半屏空白 */
.media-2.mix{grid-template-columns:3fr 2fr;align-items:center}
.shot.phone{max-width:320px;margin-left:auto;margin-right:auto;width:100%}
@media(max-width:860px){
  .media-2.mix{grid-template-columns:1fr}
  .shot.phone{max-width:300px}
}
/* 横竖照片混排：统一 4:3 装裱框，竖版完整保留、横版不再像没加载完 */
.shot.frame{display:flex;flex-direction:column}
.shot.frame img,.shot.frame video{aspect-ratio:4/3;object-fit:contain;background:#0a100f;width:100%}
/* 集成深度：左两卡+按钮，右视频 */
.deploy-split{display:grid;grid-template-columns:1fr 1fr;gap:26px;margin-top:26px;align-items:start}
.deploy-side{display:grid;gap:18px;align-content:start}
@media(max-width:860px){.deploy-split{grid-template-columns:1fr}}

/* MoE 右列文字自适应撑满左列高度 + 多端交付图文对应面板 */
#moe .split{align-items:stretch}
#moe .s-txt{display:flex;flex-direction:column}
#moe .klist{flex:1;display:flex;flex-direction:column;justify-content:space-between;margin-top:18px}
#moe .klist li{padding:14px 0 14px 30px}
#moe .klist li::before{top:14px}
.dlv-split{display:grid;grid-template-columns:3fr 2fr;gap:26px;align-items:stretch;margin-top:34px}
.dlv-panel{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:24px;display:flex;flex-direction:column}
.dlv-tag{display:inline-block;font-size:12.5px;color:var(--brand-2);border:1px solid rgba(81,217,181,.4);border-radius:999px;padding:5px 14px;margin-bottom:16px;letter-spacing:.5px;align-self:flex-start}
.dlv-cards{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:18px;flex:1}
.dlv-cards.one{grid-template-columns:1fr}
@media(max-width:960px){.dlv-split{grid-template-columns:1fr}.dlv-cards{grid-template-columns:1fr}}

/* masters 七件套+学术图谱左右排 */
.ms-split{display:grid;grid-template-columns:3fr 2fr;gap:26px;align-items:stretch;margin-top:34px}
.ms-split .grid-2{gap:16px;margin-top:0}
.ms-split>.shot.fit img{width:100%;height:100%;max-height:none;object-fit:contain;background:#0a100f}
@media(max-width:960px){.ms-split{grid-template-columns:1fr}.ms-split>.shot.fit img{height:auto;aspect-ratio:969/1200}}
/* 双引擎右列图谱：限高完整显示 */
.shot.fit{display:flex;flex-direction:column}
.shot.fit img{width:100%;max-height:680px;object-fit:contain;background:#0a100f;cursor:zoom-in}
/* 双引擎区：图高匹配左列（609 含表），底部整体对齐 */
.split.fill .shot.fit img{max-height:550px}

/* ---------- 案例分类快速导航 ---------- */
.case-nav{background:var(--card);border-bottom:1px solid var(--line);position:sticky;top:56px;z-index:40}
.case-nav .wrap{display:flex;gap:10px;padding:14px 0;overflow-x:auto;scrollbar-width:none}
.case-nav .wrap::-webkit-scrollbar{display:none}
.cn-pill{display:inline-flex;align-items:center;gap:6px;padding:8px 18px;border-radius:999px;font-size:13.5px;font-weight:600;color:var(--sub);border:1px solid var(--line);white-space:nowrap;text-decoration:none;transition:all .2s}
.cn-pill:hover,.cn-pill:focus-visible{color:var(--brand-2);border-color:var(--brand-2);background:rgba(49,140,128,.08)}
.cn-pill.on{color:#06231c;background:var(--brand-2);border-color:var(--brand-2)}


/* ---------- 资质证书页 ---------- */
.cert-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:26px}
.cert-card{display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;text-decoration:none;transition:.25s}
.cert-card:hover{border-color:rgba(81,217,181,.45);transform:translateY(-4px)}
.cert-card .thumb{height:250px;background:#0a100f;display:flex;align-items:center;justify-content:center;border-bottom:1px solid var(--line);overflow:hidden}
.cert-card .thumb img{width:100%;height:100%;object-fit:contain}
.cert-card .bd{padding:18px 20px 20px;display:flex;flex-direction:column;flex:1}
.cert-card .ct-badge{align-self:flex-start;font-size:11.5px;letter-spacing:.5px;color:var(--brand-2);border:1px solid rgba(81,217,181,.35);border-radius:999px;padding:3px 11px;margin-bottom:11px}
.cert-card h3{font-size:15px;font-weight:700;line-height:1.55;margin-bottom:9px;color:var(--ink)}
.cert-card .meta{font-size:12.5px;color:var(--faint);line-height:1.85;margin:0 0 14px}
.cert-card .meta b{color:var(--sub);font-weight:600}
.cert-card .more{margin-top:auto;font-size:13.5px;color:var(--brand-2)}
@media(max-width:960px){.cert-grid{grid-template-columns:1fr 1fr;gap:14px}.cert-card .thumb{height:200px}}
@media(max-width:620px){.cert-grid{grid-template-columns:1fr}}


/* ---------- page-hero 副标题放宽（单行长句） ---------- */
/* 用法：<p class="lead wide">。仅放宽容器，不缩字号；窄屏靠 wrap 自然换行。
   实测单行需求：county 876px / hospital 1075px；.wrap 可用 1180px → 上限取 1120px（余量约 4%） */
.page-hero .lead.wide{max-width:1120px}
@media(max-width:960px){.page-hero .lead.wide{max-width:100%}}


/* ---------- 七件套区块：卡片满宽排布 + 图独立居中展示 ---------- */
/* 注意：.ms-split 是 masters 与 liujing 两页共用的类，liujing 是「3 卡竖排 + 右列图谱」，
   不能一起改成单列，故本区块一律用 .seven-split 专属类承载。 */
.seven-row{display:grid;gap:16px}
@media(min-width:961px){
  /* margin-top 归零：前一条 .seven-outcome 已带 30 的下边距，.ms-split 基类还有 34，会叠成 64 */
  .seven-split{grid-template-columns:1fr;gap:16px;margin-top:0}
  /* 七件是质数，2 列/3 列都会留空位 —— 拆成上排 4 张、下排 3 张各自撑满，是唯一零空缺且不拉扁的解法。 */
  .seven-row.r4{grid-template-columns:repeat(4,1fr)}
  .seven-row.r3{grid-template-columns:repeat(3,1fr)}
}

/* ---------- 综合价值结论条：紧跟 sec-head 副标题 ---------- */
/* 层级：标题 → 结论 → 七件。结论不放进条目网格（同级会被误读成第八件），宽度取 760 与 .sec-head 对齐。 */
.seven-outcome{max-width:760px;margin:0 auto 30px;display:flex;flex-wrap:wrap;align-items:baseline;
  justify-content:center;gap:6px 14px;font-size:15px;line-height:1.8;color:var(--sub);
  background:linear-gradient(150deg,rgba(49,140,128,.2),rgba(81,217,181,.06));
  border:1px solid rgba(81,217,181,.4);border-radius:12px;padding:14px 24px}
.seven-outcome .sov-tag{display:inline-block;font-size:11.5px;letter-spacing:.5px;color:var(--brand-2);
  border:1px solid rgba(81,217,181,.35);border-radius:999px;padding:3px 11px}
.seven-outcome b{color:var(--brand-2);font-weight:700;font-size:15.5px}
.seven-outcome .so-txt{color:var(--sub)}
@media(max-width:620px){.seven-outcome{flex-direction:column;align-items:center;text-align:center;gap:8px;padding:13px 18px}}

/* ---------- banner 右侧配图（名医页：专病建模图） ---------- */
/* .page-hero 是全站 16 页共用的类，只加修饰类 .hero-split，不动基类。
   右列取 320：图 969×1200 是竖图，只能完整显示（不裁切），320 宽 → 396 高；
   左列剩 1180-320-40=820 ≥ lead 的 780 上限，文案排布完全不受影响。
   代价：banner 从 366 高变成 524 高（竖图的天然约束，横图才不会撑高）。 */
@media(min-width:961px){
  /* 右列宽度要卡着 .lead 的 780 上限反推：wrap 可用是 1124（不是 1180），
     1124 - 300 - 32 = 792 ≥ 780 → lead 仍是 2 行。图给 320 时左列只剩 772，lead 会掉成 3 行。 */
  .page-hero.hero-split .wrap{display:grid;grid-template-columns:1fr 300px;gap:32px;align-items:center}
  .page-hero.hero-split .hero-fig{margin:0}
}
.page-hero.hero-split .hero-fig img{width:100%;height:auto;display:block;border-radius:var(--r);
  border:1px solid var(--line);background:#0a100f;cursor:zoom-in}
@media(max-width:960px){
  .page-hero.hero-split .hero-fig{margin:22px 0 0;max-width:320px}
}

/* ---------- banner 内权威背书条 ---------- */
/* 用法：<p class="hero-note">放在 .page-hero 的 .lead 之后。宽度与 .lead 对齐(780)保持竖向整齐 */
.page-hero .hero-note{margin-top:16px;max-width:780px;font-size:14.5px;line-height:1.9;color:var(--sub);background:rgba(49,140,128,.10);border:1px solid rgba(81,217,181,.25);border-left:3px solid var(--brand-2);border-radius:10px;padding:13px 18px}
.page-hero .hero-note b{color:var(--brand-2);font-weight:700}
@media(max-width:900px){.page-hero .hero-note{font-size:13.5px;padding:11px 14px}}


/* ---------- 章节标题区放宽（仅容器，不改文案对齐） ---------- */
/* 与 .sec-head.wide 的区别：.wide 会强制 h2 nowrap 并把 p 居中，只适合居中版式。
   .wider 只放宽容器，适合 .sec-head.left（左对齐）区块。 */
.sec-head.wider{max-width:880px}
@media(max-width:900px){.sec-head.wider{max-width:100%}}


/* ---------- 四步流程（inheritance 传承机制区） ---------- */
/* 独立用 <ol class="steps">，不复用 .klist —— 后者是全站 9 页共用的类，改它会连带 8 页。
   原问题：4 步挤在一个 ul 里，"谁参与/产出"压成一行灰字跟着长段落，整列读起来是一坨。
   改法：序号做成圆标、周期抽成右侧 chip、「谁参与/产出」拆成两行对齐的 label-value。 */
.steps{list-style:none;margin-top:20px}
.steps>li{border-top:1px solid var(--line);padding:16px 0 15px}
.steps>li:first-child{border-top:none;padding-top:2px}
.st-hd{display:flex;align-items:center;gap:11px}
.st-n{flex:0 0 auto;width:25px;height:25px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  font-size:12.5px;font-weight:700;color:var(--brand-2);background:rgba(49,140,128,.2);border:1px solid rgba(81,217,181,.45)}
.st-hd h3{flex:1;margin:0;font-size:15.5px;font-weight:700;color:var(--ink);line-height:1.4}
.st-dur{flex:0 0 auto;font-size:12px;font-weight:600;color:var(--brand-2);white-space:nowrap;
  background:rgba(81,217,181,.08);border:1px solid rgba(81,217,181,.4);border-radius:999px;padding:4px 11px}
.st-p{margin:9px 0 11px;font-size:14px;line-height:1.85;color:var(--sub)}
.st-meta{display:grid;grid-template-columns:auto 1fr;gap:5px 12px;font-size:13px;line-height:1.7}
.st-k{color:var(--brand-2);font-weight:600;white-space:nowrap}
.st-v{color:var(--faint)}

/* 节奏说明：弱化成一行小字，用细分隔线与步骤区断开 */
.st-note{margin-top:18px;padding-top:16px;border-top:1px solid var(--line);font-size:13.5px;line-height:1.9;color:var(--faint)}
.st-note b{color:var(--sub);font-weight:600;margin-right:8px}

/* 「零代码」≠「零工作量」：从两栏里移出来做成横贯收尾条。
   移出的原因：左列加了步骤结构后到 ~970，右列(vp 表+视频)只有 997，
   若把这块留在左列，左列会撑到 1120+，右列底部就要空 180（正是"右侧下方太空"的老毛病）。
   现在左列 967 / 右列 997 基本配平，这块横跨整行，层级也更像"总结声明"。 */
.st-callout{margin-top:28px;display:grid;grid-template-columns:236px 1fr;gap:10px 30px;align-items:start;
  background:rgba(49,140,128,.09);border:1px solid rgba(81,217,181,.28);
  border-left:3px solid var(--brand-2);border-radius:10px;padding:18px 22px}
.st-c-hd{font-size:15px;font-weight:700;color:var(--ink);line-height:1.6}
.st-c-bd p{margin:0;font-size:13.5px;line-height:1.9;color:var(--sub)}
.st-tags{display:flex;flex-wrap:wrap;gap:7px;margin-top:12px}
.st-tags span{font-size:12px;color:var(--brand-2);background:rgba(81,217,181,.10);
  border:1px solid rgba(81,217,181,.32);border-radius:999px;padding:4px 12px}

@media(max-width:620px){
  .steps>li{padding:14px 0 13px}
  .st-hd{flex-wrap:wrap;gap:8px}
  .st-hd h3{flex:1 1 auto;font-size:15px}
  .st-dur{order:3;margin-left:36px}
  .st-p{font-size:13.5px}
  .st-meta{font-size:12.5px;gap:4px 10px}
  .st-callout{grid-template-columns:1fr;gap:8px;padding:14px 15px}
  .st-c-hd{font-size:14.5px}
}


/* ---------- 案例卡：顶部通栏封面图 ---------- */
/* 用法：<div class="card cov"><img class="cov-img" …><div class="bd">…</div></div>
   比例取 4/3：站内实拍图多为 4:3（旌德 1200×900、讯飞 1000×750），
   用 16:9 会裁掉上下 25%，人物照有切头风险。选图前先 sips -g pixelWidth 查原图比例。 */
.card.cov{padding:0;overflow:hidden;display:flex;flex-direction:column}
.card.cov .cov-img{width:100%;aspect-ratio:4/3;object-fit:cover;object-position:center;display:block;background:#0a100f;border-bottom:1px solid var(--line)}
.card.cov .bd{padding:24px 26px 26px;display:flex;flex-direction:column;flex:1}
.card.cov .bd .more{margin-top:auto;padding-top:16px;align-self:flex-start}
@media(max-width:620px){
  .card.cov .cov-img{aspect-ratio:4/3}
  .card.cov .bd{padding:18px 20px 20px}
}

/* ---------- 标杆客户和合作伙伴（logo 轮播墙） ---------- */
/* 用法：.pt-view > .pt-marquee > 两份 .pt-grid（第二份 aria-hidden，仅做无缝衔接）
   ⚠ 类名别用 .pcard —— 站内 .pcard 是产品卡（index 238/257/275、products 页），
     重名会把产品卡压成 1/6 宽（实测高被撑到 2924）。统一 .pt- 前缀。
   卡片白底是被 logo 颜色决定的，不是被主题决定的：11 个 logo 实心平均亮度 55—150
   （联通 55 最暗），深色页面上直接铺会糊成一片 → 白底承托 + 深色字 #14211f，
   不能沿用 --faint 那套浅色变量（白底上看不见）。
   纯 CSS 动画、不靠 JS：爬虫拿到的静态 HTML 就含全部 11 个名称的真实文本节点。 */
.pt-view{--pt-gap:16px;--pt-fade:140px;position:relative;overflow:hidden;
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 var(--pt-fade),#000 calc(100% - var(--pt-fade)),transparent 100%);
          mask-image:linear-gradient(90deg,transparent 0,#000 var(--pt-fade),#000 calc(100% - var(--pt-fade)),transparent 100%)}
.pt-marquee{display:flex;gap:var(--pt-gap);width:max-content;animation:pt-scroll 48s linear infinite}
.pt-marquee:hover{animation-play-state:paused}
/* 位移量 = 一份列表宽 + 一个 gap。两份等宽并列时 -50% 是"一份 + 半个 gap"，
   再补半个 gap 才严丝合缝，否则每圈会跳 8px。改 --pt-gap 时这条自动跟着走。 */
@keyframes pt-scroll{to{transform:translateX(calc(-50% - var(--pt-gap)/2))}}
.pt-grid{list-style:none;display:flex;gap:var(--pt-gap);flex:0 0 auto}
.pt-card{width:174px;display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:12px;background:#fff;border-radius:12px;padding:18px 12px 15px;text-align:center;
  box-shadow:0 2px 10px rgba(0,0,0,.22);transition:transform .2s,box-shadow .2s}
.pt-card:hover{transform:translateY(-3px);box-shadow:0 12px 26px rgba(0,0,0,.4)}
.pt-logo{flex:0 0 auto;width:100%;height:56px;display:flex;align-items:center;justify-content:center}
.pt-logo img{max-width:100%;max-height:56px;width:auto;height:auto;object-fit:contain;display:block}
/* 名称区锁 2 行高（2 × 1.45em）：4 字 vs 13 字差一倍，不锁的话卡片高度不一致。 */
.pt-card b{font-size:13px;font-weight:600;color:#14211f;line-height:1.45;
  min-height:2.9em;display:flex;align-items:center;justify-content:center}
@media(max-width:700px){
  .pt-view{--pt-gap:12px;--pt-fade:64px}
  .pt-card{width:140px;padding:14px 8px 12px;gap:9px}
  .pt-logo{height:44px}
  .pt-logo img{max-height:44px}
  .pt-card b{font-size:11.5px}
}
/* 关动效的用户：不滚，但允许手动横滑，否则后 5 家永远看不到 */
@media(prefers-reduced-motion:reduce){
  .pt-marquee{animation:none}
  .pt-view{overflow-x:auto}
}

/* ===== 医院案例双卡：左图跨两行，右列两个案例上下排列（左右等宽 / 上下齐平） ===== */
.grid-2.case-duo .card.cov{grid-row:span 2}
.grid-2.case-duo .card.cov .cov-img{aspect-ratio:auto;flex:1;min-height:0;object-fit:contain;border-bottom:0}
@media(max-width:720px){
  .grid-2.case-duo .card.cov{grid-row:auto}
  .grid-2.case-duo .card.cov .cov-img{aspect-ratio:4/3;flex:none;object-fit:cover}
}
