/* ============================================================
   能耀科技官网原型 · 设计系统
   依据《官网诊断与优化方案 V0.4》
   ============================================================ */

:root{
  --ink:#0A1B2E;
  --ink2:#2C4258;
  --muted:#65798E;
  --line:#DEE7F1;
  --line2:#EDF2F8;
  --bg:#FFFFFF;
  --soft:#F4F8FD;
  --soft2:#E9F0FA;

  --navy:#04182C;
  --navy2:#062239;
  --navy3:#0A2E4C;

  /* 品牌色取自 logo：#1761B7 蓝 / #FE2C5B 红（红仅作极少量点缀） */
  --brand:#1761B7;
  --brand-d:#0F4A8F;
  --brand-l:#E7F0FB;
  --red:#FE2C5B;

  --blue:#1761B7;
  --blue-d:#0F4A8F;
  --blue-l:#E7F0FB;
  --cyan:#31C6E8;
  --cyan-d:#12A8CF;
  --teal:#0E9E86;
  --teal-l:#E4F5F1;
  --amber:#C47A17;
  --amber-l:#FBF1E1;

  --r:12px;
  --r-s:8px;
  --wrap:1200px;
  --sh:0 1px 2px rgba(10,27,46,.04), 0 8px 24px rgba(10,27,46,.05);
  --sh-l:0 2px 6px rgba(10,27,46,.05), 0 18px 48px rgba(10,27,46,.09);

  --sans:"PingFang SC","HarmonyOS Sans SC","Source Han Sans SC","Noto Sans SC","Microsoft YaHei",system-ui,-apple-system,sans-serif;
  --num:"Bahnschrift","DIN Alternate","SF Pro Display","Segoe UI",var(--sans);
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  margin:0;background:var(--bg);color:var(--ink);
  font-family:var(--sans);font-size:16px;line-height:1.75;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
}
img,svg{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
h1,h2,h3,h4,p,ul,ol,figure{margin:0}
ul,ol{padding:0;list-style:none}

.wrap{width:100%;max-width:var(--wrap);margin:0 auto;padding:0 28px}
.num{font-family:var(--num);font-variant-numeric:tabular-nums;letter-spacing:-.01em}
.mono{font-family:"Cascadia Mono","Consolas",ui-monospace,monospace}

/* ---------- 顶部导航 ---------- */
.hd{
  position:sticky;top:0;z-index:90;
  background:rgba(255,255,255,.88);
  backdrop-filter:blur(14px) saturate(1.4);
  border-bottom:1px solid var(--line2);
}
.hd-in{display:flex;align-items:center;gap:34px;height:72px}
.logo{display:flex;align-items:center;gap:14px;flex:none}
.logo-img{height:37px;width:auto}
.logo-div{width:1px;height:26px;background:var(--line);flex:none}
.logo-slogan{font-size:13px;letter-spacing:.08em;color:var(--ink2);white-space:nowrap;line-height:1.4;font-weight:500}

.nav{display:flex;align-items:center;gap:2px;margin-left:2px}
.nav > li{position:relative}
.nav > li > a{
  display:flex;align-items:center;gap:4px;height:72px;padding:0 13px;
  font-size:14.5px;color:var(--ink2);white-space:nowrap;
  border-bottom:2px solid transparent;transition:color .16s,border-color .16s;
}
.nav > li > a:hover,.nav > li.on > a{color:var(--ink);border-bottom-color:var(--blue)}
.nav .car{width:7px;height:7px;border-right:1.4px solid currentColor;border-bottom:1.4px solid currentColor;
  transform:rotate(45deg) translateY(-2px);opacity:.5;transition:transform .2s}
.nav > li.has-d:hover .car{transform:rotate(225deg) translateY(-2px)}

.dd{
  position:absolute;top:100%;left:0;min-width:300px;padding:8px;
  background:#fff;border:1px solid var(--line);border-radius:var(--r);
  box-shadow:var(--sh-l);opacity:0;visibility:hidden;transform:translateY(-6px);
  transition:opacity .16s,transform .16s,visibility .16s;
}
.nav > li.has-d:hover .dd,.nav > li.has-d:focus-within .dd{opacity:1;visibility:visible;transform:none}
.dd a{display:block;padding:9px 12px;border-radius:var(--r-s);transition:background .14s}
.dd a:hover{background:var(--soft)}
.dd b{display:block;font-size:14px;font-weight:500}
.dd span{display:block;font-size:12px;color:var(--muted);margin-top:1px;line-height:1.5}
.dd-hd{font-size:11px;color:var(--muted);letter-spacing:.12em;padding:8px 12px 5px}
.dd-col{display:grid;grid-template-columns:1fr 1fr;gap:2px}
.dd-col a{padding:8px 10px}
.dd-col b{font-size:13.4px}

.hd-act{display:flex;align-items:center;gap:16px;margin-left:auto;flex:none}
.tels{display:flex;align-items:center;gap:8px}
.tels .tel-ico{width:15px;height:15px;flex:none;opacity:.5;color:var(--ink2)}
.tel-nums{display:flex;flex-direction:column;align-items:flex-start;gap:0}
.tel{
  display:block;font-family:var(--num);font-size:14px;line-height:1.32;
  color:var(--ink2);letter-spacing:.01em;font-variant-numeric:tabular-nums;
  transition:color .2s;
}
.tel:hover{color:var(--blue)}
.burger{display:none;width:38px;height:38px;border:1px solid var(--line);border-radius:var(--r-s);place-items:center}
.burger i{display:block;width:15px;height:1.5px;background:var(--ink);position:relative}
.burger i::before,.burger i::after{content:"";position:absolute;left:0;width:15px;height:1.5px;background:var(--ink)}
.burger i::before{top:-5px}.burger i::after{top:5px}

/* ---------- 按钮 ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  height:44px;padding:0 22px;border-radius:var(--r-s);
  font-size:14.5px;font-weight:500;letter-spacing:.01em;
  transition:transform .14s,box-shadow .18s,background .18s,border-color .18s;
  white-space:nowrap;
}
.btn-p{background:var(--blue);color:#fff;box-shadow:0 1px 2px rgba(23,97,183,.22),0 8px 20px rgba(23,97,183,.18)}
.btn-p:hover{background:var(--blue-d);transform:translateY(-1px);box-shadow:0 10px 26px rgba(23,97,183,.28)}
.btn-g{border:1px solid rgba(255,255,255,.28);color:#fff}
.btn-g:hover{background:rgba(255,255,255,.09);border-color:rgba(255,255,255,.5)}
.btn-o{border:1px solid var(--line);color:var(--ink);background:#fff}
.btn-o:hover{border-color:var(--ink2);box-shadow:var(--sh)}
.btn-s{height:36px;padding:0 15px;font-size:13.5px}
.btn-tx{color:var(--blue);font-size:14.5px;display:inline-flex;align-items:center;gap:6px}
.btn-tx:hover{gap:10px}
.btn-tx i{width:6px;height:6px;border-top:1.4px solid currentColor;border-right:1.4px solid currentColor;transform:rotate(45deg)}

/* ---------- 首屏 ---------- */
.hero{
  position:relative;overflow:hidden;color:#fff;isolation:isolate;
  background:
    radial-gradient(1060px 560px at 78% -16%, rgba(26,108,203,.68), transparent 64%),
    radial-gradient(820px 460px at 0% 118%, rgba(49,198,232,.18), transparent 62%),
    linear-gradient(168deg,#051A31 0%,#07243E 44%,#0A2F51 100%);
}
/* 风 · 光 · 储 · 电网 线稿场景 + 地平线光带 */
.hero::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:340px;z-index:0;
  background-image:url(img/energy-line.svg),
    linear-gradient(90deg,transparent,rgba(49,198,232,.42) 22%,rgba(120,196,244,.55) 50%,
      rgba(49,198,232,.42) 78%,transparent);
  background-position:center bottom,center bottom;
  background-size:cover,100% 1px;
  background-repeat:no-repeat,no-repeat;
  opacity:.62;pointer-events:none;
  -webkit-mask-image:linear-gradient(180deg,transparent 2%,rgba(0,0,0,.28) 42%,#000 82%);
  mask-image:linear-gradient(180deg,transparent 2%,rgba(0,0,0,.28) 42%,#000 82%);
}
.hero::before{
  content:"";position:absolute;inset:0;z-index:0;
  background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);
  background-size:72px 72px;
  mask-image:radial-gradient(80% 70% at 50% 30%,#000 20%,transparent 78%);
  -webkit-mask-image:radial-gradient(80% 70% at 50% 30%,#000 20%,transparent 78%);
}
.hero-in{position:relative;z-index:1;display:grid;grid-template-columns:1.06fr .94fr;gap:56px;
  align-items:center;padding-top:78px;padding-bottom:54px}
.eyebrow{
  display:inline-flex;align-items:center;gap:8px;font-size:12.5px;letter-spacing:.1em;
  color:rgba(255,255,255,.72);border:1px solid rgba(255,255,255,.18);
  padding:5px 12px;border-radius:999px;margin-bottom:22px;
}
.eyebrow i{width:5px;height:5px;border-radius:50%;background:var(--cyan);box-shadow:0 0 0 3px rgba(49,198,232,.22)}
.hero h1{
  font-size:44px;line-height:1.28;font-weight:600;letter-spacing:-.015em;margin-bottom:20px;
}
.hero h1 em{font-style:normal;color:#8CC6F2}
.hero-sub{font-size:16.5px;line-height:1.85;color:rgba(255,255,255,.76);max-width:520px}
.hero-btns{display:flex;gap:14px;margin-top:34px;flex-wrap:wrap}
.hero-note{margin-top:26px;font-size:13px;color:rgba(255,255,255,.52);display:flex;flex-wrap:wrap;gap:18px}
.hero-note span{display:flex;align-items:center;gap:6px}
.hero-note span::before{content:"";width:4px;height:4px;border-radius:50%;background:rgba(255,255,255,.4)}

/* 首屏底部：风 · 光 · 储 · 氢 能源元素条 */
.hero-rail{position:relative;z-index:1;border-top:1px solid rgba(255,255,255,.1);
  background:linear-gradient(180deg,rgba(4,24,44,0),rgba(4,24,44,.62))}
.hero-rail-in{display:grid;grid-template-columns:repeat(4,1fr)}
.hero-rail .it{display:flex;align-items:center;gap:13px;padding:18px 26px 22px;
  border-right:1px solid rgba(255,255,255,.07)}
.hero-rail .it:first-child{padding-left:0}
.hero-rail .it:last-child{border-right:0}
.hero-rail .ic{width:34px;height:34px;flex:none;display:grid;place-items:center;border-radius:9px;
  border:1px solid rgba(255,255,255,.13);background:rgba(255,255,255,.05)}
.hero-rail .ic svg{width:20px;height:20px;color:#7FB8EA}
.hero-rail b{display:block;font-size:14px;font-weight:500;letter-spacing:.03em;line-height:1.4}
.hero-rail b em{font-style:normal;font-family:var(--num);font-size:11.5px;
  color:rgba(255,255,255,.42);margin-left:6px;letter-spacing:.04em}
.hero-rail span{display:block;font-size:11.5px;color:rgba(255,255,255,.44);margin-top:2px;line-height:1.5}

/* 首屏右侧：测算结果卡 */
.calc{
  background:linear-gradient(170deg,rgba(255,255,255,.11),rgba(255,255,255,.045));
  border:1px solid rgba(255,255,255,.16);border-radius:14px;
  padding:22px 24px 20px;backdrop-filter:blur(6px);
  box-shadow:0 24px 60px rgba(0,0,0,.28),inset 0 1px 0 rgba(255,255,255,.12);
  position:relative;
}
.calc::after{
  content:"";position:absolute;inset:-1px;border-radius:15px;pointer-events:none;
  background:linear-gradient(150deg,rgba(255,255,255,.3),transparent 40%);
  -webkit-mask:linear-gradient(#000,#000) content-box,linear-gradient(#000,#000);
  -webkit-mask-composite:xor;mask-composite:exclude;padding:1px;opacity:.5;
}
.calc-hd{display:flex;justify-content:space-between;align-items:flex-start;
  padding-bottom:14px;border-bottom:1px solid rgba(255,255,255,.12)}
.calc-hd b{font-size:14px;font-weight:500;letter-spacing:.01em}
.calc-hd span{font-size:11.5px;color:rgba(255,255,255,.5);font-family:var(--num);letter-spacing:.04em}
.calc-tag{font-size:11px;color:#8FE3D2;background:rgba(14,158,134,.16);
  border:1px solid rgba(14,158,134,.3);padding:2px 8px;border-radius:999px;white-space:nowrap}
.calc-rows{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin:16px 0 4px;
  background:rgba(255,255,255,.1);border-radius:8px;overflow:hidden}
.calc-rows div{background:rgba(9,32,52,.55);padding:10px 12px}
.calc-rows dt{font-size:11.5px;color:rgba(255,255,255,.55);margin-bottom:3px}
.calc-rows dd{margin:0;font-size:15px;font-family:var(--num);letter-spacing:.01em}
.calc-kpi{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:18px}
.calc-kpi div{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);
  border-radius:9px;padding:12px 14px}
.calc-kpi dt{font-size:11.5px;color:rgba(255,255,255,.55);margin-bottom:2px}
.calc-kpi dd{margin:0;font-size:27px;line-height:1.2;font-family:var(--num);letter-spacing:-.02em}
.calc-kpi dd small{font-size:13px;opacity:.65;margin-left:2px;font-weight:400}
.calc-ft{margin-top:16px;padding-top:13px;border-top:1px solid rgba(255,255,255,.12);
  font-size:11.5px;color:rgba(255,255,255,.48);line-height:1.65;display:flex;
  justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.calc-ft a{color:#93C4F0;border-bottom:1px solid rgba(157,199,255,.35);padding-bottom:1px}

/* ---------- 事实条 ---------- */
.facts{border-bottom:1px solid var(--line2);background:#fff}
.facts-in{display:grid;grid-template-columns:repeat(5,1fr);gap:0}
.facts-in div{padding:24px 20px;border-right:1px solid var(--line2)}
.facts-in div:first-child{padding-left:0}
.facts-in div:last-child{border-right:0}
.facts-in b{display:block;font-family:var(--num);font-size:24px;line-height:1.25;
  letter-spacing:-.02em;color:var(--ink)}
.facts-in b em{font-style:normal;font-size:13px;color:var(--muted);margin-left:3px;font-family:var(--sans)}
.facts-in span{display:block;font-size:12.5px;color:var(--muted);margin-top:4px}

/* ---------- 区块 ---------- */
.sec{padding:84px 0}
.sec-s{padding:60px 0}
.sec-soft{background:var(--soft)}
.sec-hd{display:flex;align-items:flex-end;justify-content:space-between;gap:40px;margin-bottom:38px}
/* 只有一行小标（无 H2）的区块头：竖向居中，下边距收紧 */
.sec-hd.tight{align-items:center;margin-bottom:22px}
.sec-hd.tight .kicker{margin-bottom:0}
.sec-hd > div{max-width:720px}
.kicker{font-size:12px;letter-spacing:.16em;color:var(--blue);font-weight:500;margin-bottom:12px;
  display:flex;align-items:center;gap:9px}
.kicker::before{content:"";width:18px;height:1.5px;background:var(--blue);border-radius:2px}
h2.t{font-size:31px;line-height:1.42;font-weight:600;letter-spacing:-.012em}
.lead{font-size:15.5px;line-height:1.85;color:var(--ink2);margin-top:14px}
h3.t3{font-size:19px;font-weight:600;letter-spacing:-.005em;margin-bottom:8px}

/* ---------- 四条路径 ---------- */
.paths{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.path{
  display:flex;flex-direction:column;gap:6px;padding:22px 20px 20px;
  background:#fff;border:1px solid var(--line);border-radius:var(--r);
  transition:border-color .18s,box-shadow .2s,transform .18s;position:relative;overflow:hidden;
}
.path:hover{border-color:#C7D6E8;box-shadow:var(--sh);transform:translateY(-2px)}
.path::before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;
  background:var(--blue);opacity:0;transition:opacity .2s}
.path:hover::before{opacity:1}
.path .q{font-size:12px;color:var(--muted);letter-spacing:.02em}
.path b{font-size:16.5px;font-weight:600;margin-top:2px}
.path p{font-size:13px;color:var(--muted);line-height:1.7;margin-top:4px}
.path .go{margin-top:14px;display:flex;flex-wrap:wrap;gap:6px}
.chip{font-size:11.5px;font-family:var(--num);letter-spacing:.02em;color:var(--blue);
  background:var(--blue-l);padding:2px 7px;border-radius:5px;border:1px solid rgba(23,97,183,.1)}

/* ---------- 产品卡 ---------- */
.prods{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.prod{
  background:#fff;border:1px solid var(--line);border-radius:var(--r);
  padding:26px 26px 22px;display:flex;flex-direction:column;
  transition:border-color .18s,box-shadow .2s,transform .18s;position:relative;
}
.prod:hover{border-color:#C7D6E8;box-shadow:var(--sh-l);transform:translateY(-2px)}
.prod-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}
.prod-id{font-family:var(--num);font-size:12px;color:var(--muted);letter-spacing:.06em}
.badge{font-size:11px;padding:2px 8px;border-radius:999px;letter-spacing:.02em;white-space:nowrap}
.badge.b1{color:var(--blue);background:var(--blue-l)}
.badge.b2{color:var(--teal);background:var(--teal-l)}
.badge.b3{color:var(--amber);background:var(--amber-l)}
.badge.b4{color:var(--ink2);background:var(--soft2)}
.prod h3{font-size:21px;font-weight:600;letter-spacing:-.01em;display:flex;align-items:baseline;gap:9px}
.prod h3 span{font-family:var(--num);font-size:12.5px;color:var(--muted);font-weight:400;letter-spacing:.04em}
.prod .desc{font-size:14px;color:var(--ink2);line-height:1.8;margin-top:10px;flex:1}
.prod .kv{display:flex;flex-wrap:wrap;gap:7px;margin-top:16px}
.kv span{font-size:12px;color:var(--ink2);background:var(--soft);border:1px solid var(--line2);
  padding:3px 9px;border-radius:6px}
.prod .ft{display:flex;align-items:center;justify-content:space-between;
  margin-top:18px;padding-top:14px;border-top:1px solid var(--line2)}
.mini-links{display:flex;gap:22px;margin-top:20px;flex-wrap:wrap;font-size:14px}
.mini-links a{color:var(--ink2);display:inline-flex;align-items:center;gap:6px}
.mini-links a:hover{color:var(--blue)}
.mini-links a b{font-weight:500}
.mini-links a span{font-family:var(--num);font-size:11.5px;color:var(--muted)}

/* ---------- 场景格 ---------- */
.scenes{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.scene{
  position:relative;padding:24px 22px;border-radius:var(--r);overflow:hidden;
  background:#fff;border:1px solid var(--line);
  display:flex;flex-direction:column;min-height:172px;
  transition:border-color .18s,box-shadow .2s,transform .18s;
}
.scene:hover{border-color:#C7D6E8;box-shadow:var(--sh);transform:translateY(-2px)}
.scene .n{font-family:var(--num);font-size:11.5px;color:var(--muted);letter-spacing:.08em}
.scene h3{font-size:17.5px;font-weight:600;margin:7px 0 6px;letter-spacing:-.005em}
.scene p{font-size:13px;color:var(--muted);line-height:1.75;flex:1}
.scene .go{font-size:12.5px;color:var(--blue);margin-top:12px;display:flex;align-items:center;gap:5px}
.scene:hover .go{gap:9px}
.scene .go i{width:5px;height:5px;border-top:1.3px solid currentColor;border-right:1.3px solid currentColor;transform:rotate(45deg)}
.scene::after{content:"";position:absolute;right:-24px;top:-24px;width:96px;height:96px;
  border-radius:50%;background:radial-gradient(circle,rgba(23,97,183,.07),transparent 68%)}
.scene-more{font-size:13px;color:var(--muted);margin-top:20px;display:flex;flex-wrap:wrap;
  align-items:center;gap:6px 14px}
.scene-more a{color:var(--blue);border-bottom:1px solid rgba(23,97,183,.22);padding-bottom:1px}
.scene-more a:hover{border-bottom-color:var(--blue)}

/* ---------- 样例测算卡 ---------- */
.cases{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.case{background:#fff;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;
  transition:border-color .18s,box-shadow .2s,transform .18s;display:flex;flex-direction:column}
.case:hover{border-color:#C7D6E8;box-shadow:var(--sh-l);transform:translateY(-2px)}
.case-hd{padding:18px 20px 14px;border-bottom:1px solid var(--line2);
  display:flex;justify-content:space-between;align-items:center;gap:10px}
.case-hd b{font-size:14.5px;font-weight:600}
.case-hd span{font-family:var(--num);font-size:11px;color:var(--muted);letter-spacing:.05em}
.case-bd{padding:18px 20px 20px;flex:1;display:flex;flex-direction:column}
.case-param{font-size:12.5px;color:var(--muted);line-height:1.9;font-family:var(--num);letter-spacing:.01em}
.case-kpi{display:flex;align-items:baseline;gap:8px;margin:14px 0 4px}
.case-kpi b{font-family:var(--num);font-size:30px;line-height:1;letter-spacing:-.02em;color:var(--ink)}
.case-kpi span{font-size:12px;color:var(--muted)}
.case-note{font-size:12px;color:var(--muted);margin-top:auto;padding-top:14px;line-height:1.7;
  border-top:1px dashed var(--line);margin-top:16px}
.case-note em{font-style:normal;color:var(--ink2)}

/* ---------- 伙伴墙（等格网格：12 家 = 4 列 × 3 行，行行齐、无空位） ---------- */
.pwall{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;list-style:none;margin:0;padding:0}
.pwall li{
  position:relative;display:flex;align-items:center;justify-content:center;
  height:80px;padding:0 20px;background:#fff;border:1px solid var(--line);border-radius:10px;
  font-size:13.5px;color:var(--ink2);
  transition:border-color .16s,box-shadow .18s;
}
.pwall li:hover{border-color:#C7D6E8;box-shadow:var(--sh);color:var(--ink)}
/* .pwall li.txt / .pmini：原给「只有两字牌、暂无矢量标识」的单位占格用，
   2026-10-21 首页只留 12 家有真标识的单位后不再使用，规则留作备用（名录页用的是 .pitem / .plogo） */
/* .pwall li.txt{flex-direction:row;gap:10px;text-align:left}
.pwall li.txt b{font-size:11.5px;font-weight:500;line-height:1.35;color:var(--ink2);max-width:100%}
.pwall li.txt .pmini{width:38px;height:38px;border-radius:9px;font-size:12.5px}
.pmini{width:34px;height:34px;flex:none;border-radius:8px;display:grid;place-items:center;
  background:linear-gradient(158deg,#F2F7FD,#E4EEFA);border:1px solid #DBE6F4;
  color:#1761B7;font-size:11.5px;font-weight:600;line-height:1;letter-spacing:0} */
.pmini-img{max-height:40px;max-width:100%;width:auto;height:auto;display:block;object-fit:contain}
/* about.html 的「六类角色」：是标签不是标识，仍按内容宽度折行，不用等格 */
.pwall.cats{display:flex;flex-wrap:wrap;gap:10px}
.pwall.cats li{height:auto;padding:11px 20px;font-size:13.5px;color:var(--ink2);border-radius:8px}

/* ---------- 企业文化（愿景 / 使命） ---------- */
.culture{position:relative;overflow:hidden;color:#fff;isolation:isolate;
  background:radial-gradient(880px 460px at 84% 6%,rgba(23,97,183,.5),transparent 62%),
             linear-gradient(160deg,#04182C,#062239 52%,#0A2E4C)}
.culture::after{content:"";position:absolute;left:0;right:0;bottom:0;height:210px;z-index:0;
  background:url(img/energy-line.svg) center bottom/cover no-repeat;opacity:.22;pointer-events:none}
.culture-in{position:relative;z-index:1;display:grid;grid-template-columns:290px minmax(0,1fr);
  gap:64px;align-items:center;padding-top:58px;padding-bottom:58px}
.culture-lg{display:flex;flex-direction:column;gap:16px}
.culture-logo{height:62px;width:auto}
.culture-lg span{font-size:11.5px;letter-spacing:.18em;color:rgba(255,255,255,.42)}
.culture-tx{display:flex;flex-direction:column}
.cul-row{display:grid;grid-template-columns:92px minmax(0,1fr);gap:26px;align-items:baseline;
  padding:20px 0;border-top:1px solid rgba(255,255,255,.1)}
.cul-row:last-child{border-bottom:1px solid rgba(255,255,255,.1)}
.cul-k{font-size:11.5px;letter-spacing:.3em;color:rgba(255,255,255,.42)}
.cul-v{margin:0;font-size:25px;line-height:1.5;font-weight:500;letter-spacing:.01em}
.cul-v em{font-style:normal;color:#7FD3F0}
.cul-v small{display:block;font-size:12.5px;font-weight:400;color:rgba(255,255,255,.4);
  margin-top:7px;letter-spacing:.02em;line-height:1.7}

/* ---------- CTA ---------- */
.cta{position:relative;overflow:hidden;color:#fff;border-top:1px solid rgba(255,255,255,.07);
  background:linear-gradient(150deg,#062239,#04182C 58%,#0A2E4C)}
.cta::before{content:"";position:absolute;inset:0;
  background:radial-gradient(620px 320px at 88% 10%,rgba(23,97,183,.42),transparent 62%),
             radial-gradient(520px 300px at 2% 98%,rgba(49,198,232,.14),transparent 60%)}
.cta-in{position:relative;display:flex;align-items:center;justify-content:space-between;
  gap:48px;padding-top:54px;padding-bottom:54px}
.cta h2{font-size:28px;font-weight:600;letter-spacing:-.012em;line-height:1.4}
.cta p{font-size:14.5px;color:rgba(255,255,255,.7);margin-top:10px;max-width:560px}
.cta-btns{display:flex;gap:12px;flex:none}

/* ---------- 页脚 ---------- */
footer.ft{background:#03121F;border-top:1px solid rgba(255,255,255,.07);padding:56px 0 26px;
  color:rgba(255,255,255,.58)}
.ft-top{display:grid;grid-template-columns:1.5fr repeat(4,1fr);gap:36px;padding-bottom:38px;
  border-bottom:1px solid rgba(255,255,255,.08)}
.ft-brand .logo-img{height:42px;width:auto}
.ft-brand p{font-size:13px;color:rgba(255,255,255,.45);line-height:1.85;margin-top:16px;max-width:290px}
.ft-brand .ft-mission{font-size:12.5px;color:rgba(255,255,255,.62);margin-top:14px;
  padding-left:12px;border-left:2px solid rgba(23,97,183,.9);line-height:1.75;max-width:290px}
.ft-col h4{font-size:12.5px;font-weight:600;letter-spacing:.06em;color:#fff;margin-bottom:12px}
.ft-col a{display:block;font-size:13px;color:rgba(255,255,255,.5);padding:4px 0;transition:color .14s}
.ft-col a:hover{color:#fff}
.ft-bot{display:flex;justify-content:space-between;align-items:center;gap:20px;
  padding-top:20px;font-size:12px;color:rgba(255,255,255,.34);flex-wrap:wrap}
.ft-bot span{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.ft-bot a:hover{color:rgba(255,255,255,.75)}

/* ---------- 内页头部 ---------- */
.ph{padding:58px 0 46px;border-bottom:1px solid var(--line2);position:relative;overflow:hidden;
  background:linear-gradient(180deg,#F6FAFE,#fff)}
.ph::after{content:"";position:absolute;right:-40px;top:-90px;width:460px;height:300px;
  background:radial-gradient(closest-side,rgba(23,97,183,.10),transparent);
  pointer-events:none}
.ph > .wrap{position:relative;z-index:1}
.ph-dark{padding:64px 0 56px;color:#fff;position:relative;overflow:hidden;isolation:isolate;
  background:radial-gradient(760px 380px at 86% -20%,rgba(23,97,183,.55),transparent 64%),
             linear-gradient(160deg,#04182C,#062239 52%,#0A2E4C)}
.ph-dark::before{content:"";position:absolute;inset:0;z-index:0;
  background-image:linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px);
  background-size:64px 64px;
  mask-image:radial-gradient(70% 90% at 40% 20%,#000,transparent 76%);
  -webkit-mask-image:radial-gradient(70% 90% at 40% 20%,#000,transparent 76%)}
.ph-dark::after{content:"";position:absolute;left:0;right:0;bottom:0;height:188px;z-index:0;
  background:url(img/energy-line.svg) center bottom/cover no-repeat;opacity:.42;pointer-events:none;
  -webkit-mask-image:linear-gradient(180deg,transparent 4%,rgba(0,0,0,.4) 55%,#000 100%);
  mask-image:linear-gradient(180deg,transparent 4%,rgba(0,0,0,.4) 55%,#000 100%)}
.ph-dark .wrap{position:relative;z-index:1}
.crumb{font-size:12.5px;color:var(--muted);display:flex;gap:8px;align-items:center;margin-bottom:18px}
.crumb a:hover{color:var(--blue)}
.crumb i{opacity:.5;font-style:normal}
.ph-dark .crumb{color:rgba(255,255,255,.55)}
.ph h1,.ph-dark h1{font-size:36px;line-height:1.34;font-weight:600;letter-spacing:-.015em;max-width:860px}
.ph .lead{max-width:760px}
.ph-dark .lead{color:rgba(255,255,255,.72);max-width:740px}
.ph-meta{display:flex;gap:26px;margin-top:22px;flex-wrap:wrap;font-size:13px;color:var(--muted)}
.ph-meta b{font-family:var(--num);color:var(--ink);font-weight:500}
.ph-dark .ph-meta{color:rgba(255,255,255,.55)}
.ph-dark .ph-meta b{color:#fff}

/* ---------- 三栏文档布局 ---------- */
.doc{display:grid;grid-template-columns:196px minmax(0,1fr) 268px;gap:56px;
  padding-top:56px;padding-bottom:80px;align-items:start}
/* 只有「目录 + 正文」两栏时（faq、privacy）。用类而不是行内 style——
   行内 style 会压过下面 860 断点里的单列规则，正文会被挤成一条窄缝 */
.doc.cols-2{grid-template-columns:196px minmax(0,1fr)}
.toc{position:sticky;top:88px}
.toc h5{font-size:11.5px;letter-spacing:.12em;color:var(--muted);font-weight:500;margin-bottom:12px}
.toc ol{counter-reset:s;border-left:1px solid var(--line)}
.toc li{counter-increment:s}
.toc a{display:block;font-size:13px;color:var(--muted);padding:6px 0 6px 14px;margin-left:-1px;
  border-left:2px solid transparent;line-height:1.5;transition:color .14s,border-color .14s}
.toc a::before{content:counter(s) ". ";font-family:var(--num);opacity:.6}
.toc a:hover{color:var(--ink2)}
.toc a.on{color:var(--blue);border-left-color:var(--blue);font-weight:500}
.doc-bd{min-width:0}
.doc-aside{position:sticky;top:88px;display:flex;flex-direction:column;gap:16px}

.blk{margin-bottom:52px;scroll-margin-top:88px}
.blk > h2{font-size:24px;font-weight:600;letter-spacing:-.01em;margin-bottom:18px;  padding-bottom:14px;border-bottom:1px solid var(--line2);display:flex;align-items:baseline;gap:12px}
.blk > h2 .idx{font-family:var(--num);font-size:14px;color:var(--blue);letter-spacing:.04em;flex:none}
.blk h3{font-size:17px;font-weight:600;margin:26px 0 10px;letter-spacing:-.005em}
.blk p{font-size:15px;line-height:1.9;color:var(--ink2);margin-bottom:14px}
.blk p strong{color:var(--ink);font-weight:600}
.blk ul.dot{margin:0 0 16px}
.blk ul.dot li{position:relative;padding-left:18px;font-size:15px;line-height:1.9;color:var(--ink2);
  margin-bottom:6px}
.blk ul.dot li::before{content:"";position:absolute;left:4px;top:12px;width:5px;height:5px;
  border-radius:50%;background:#B7C6D8}
.blk ol.n{margin:0 0 16px;counter-reset:n}
.blk ol.n li{counter-increment:n;position:relative;padding-left:30px;font-size:15px;
  line-height:1.9;color:var(--ink2);margin-bottom:11px}
.blk ol.n li::before{content:counter(n,decimal-leading-zero);position:absolute;left:0;top:1px;
  font-family:var(--num);font-size:12.5px;color:var(--blue);letter-spacing:.02em}

/* 提示块 */
.callout{border-radius:var(--r);padding:20px 22px;margin:20px 0;border:1px solid var(--line);
  background:var(--soft);display:flex;gap:14px}
.callout .ic{width:20px;height:20px;flex:none;margin-top:2px;border-radius:50%;
  background:var(--blue-l);color:var(--blue);display:grid;place-items:center;
  font-size:11px;font-family:var(--num);font-weight:600}
.callout b{display:block;font-size:13.5px;margin-bottom:4px}
.callout p{font-size:14px;line-height:1.85;margin:0;color:var(--ink2)}
.callout.warn{background:#FEF8EE;border-color:#F3E1C4}
.callout.warn .ic{background:#F8E8CC;color:var(--amber)}
.callout.bad{background:#FDF2F2;border-color:#F5D9D9}
.callout.bad .ic{background:#F7E0E0;color:#B4453C}
.callout.ok{background:#F1FAF7;border-color:#CFEBE3}
.callout.ok .ic{background:#DCF2EC;color:var(--teal)}

/* 边界清单 */
.bound{display:grid;grid-template-columns:1fr 1fr;gap:2px;background:var(--line);
  border:1px solid var(--line);border-radius:var(--r);overflow:hidden;margin:18px 0}
.bound > div{background:#fff;padding:18px 20px}
.bound-h{font-size:12.5px;letter-spacing:.04em;margin-bottom:10px;display:flex;align-items:center;gap:7px}
.bound-h i{width:16px;height:16px;border-radius:50%;display:grid;place-items:center;
  font-size:10px;font-style:normal;font-family:var(--num)}
.bound-h.yes{color:var(--teal)}.bound-h.yes i{background:var(--teal-l);color:var(--teal)}
.bound-h.no{color:#B4453C}.bound-h.no i{background:#F7E0E0;color:#B4453C}
.bound ul li{font-size:13.5px;line-height:1.8;color:var(--ink2);padding-left:14px;position:relative;
  margin-bottom:5px}
.bound ul li::before{content:"";position:absolute;left:0;top:10px;width:4px;height:4px;
  border-radius:50%;background:#C3D0E0}
.bound.no-side ul li::before{background:#E2B9B5}

/* 步骤 */
.steps{border-left:1px solid var(--line);margin:20px 0 8px;padding-left:0}
.steps li{position:relative;padding:0 0 24px 26px}
.steps li::before{content:"";position:absolute;left:-4.5px;top:7px;width:8px;height:8px;
  border-radius:50%;background:#fff;border:1.6px solid var(--blue)}
.steps li:last-child{padding-bottom:0}
.steps b{display:block;font-size:15px;font-weight:600;margin-bottom:3px}
.steps span{font-size:13.5px;color:var(--muted);line-height:1.8;display:block}
.steps code{font-family:var(--num);font-size:12.5px;background:var(--soft);padding:1px 6px;
  border-radius:4px;color:var(--ink2);border:1px solid var(--line2)}

/* 规格表 */
.tbl{width:100%;border-collapse:collapse;margin:18px 0;font-size:13.5px}
.tbl th{text-align:left;font-weight:500;font-size:12px;letter-spacing:.04em;color:var(--muted);
  padding:10px 14px;background:var(--soft);border-bottom:1px solid var(--line);white-space:nowrap}
.tbl td{padding:11px 14px;border-bottom:1px solid var(--line2);color:var(--ink2);vertical-align:top;
  line-height:1.75}
.tbl tr:last-child td{border-bottom:0}
.tbl td:first-child{color:var(--ink);font-weight:500}
.tbl .num{font-family:var(--num)}
.tbl-wrap{border:1px solid var(--line);border-radius:var(--r);overflow:auto;
  -webkit-overflow-scrolling:touch;margin:18px 0}
.tbl-wrap .tbl{margin:0}

/* 资质表：三列，首末列在窄屏按内容收缩，避免「软件著作权」被拆成两行 */
.tbl-cert th:nth-child(1){width:20%}
.tbl-cert th:nth-child(2){width:56%}
.tbl-cert th:nth-child(3){width:24%}

/* 指标卡 */
.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:18px 0}
.metrics div{border:1px solid var(--line);border-radius:var(--r-s);padding:14px 16px;background:#fff}
.metrics dt{font-size:12px;color:var(--muted);margin-bottom:4px}
.metrics dd{margin:0;font-family:var(--num);font-size:22px;letter-spacing:-.01em}
.metrics dd small{font-size:12px;color:var(--muted);margin-left:2px;font-family:var(--sans)}

/* 侧栏卡 */
.aside-card{border:1px solid var(--line);border-radius:var(--r);padding:20px;background:#fff}
.aside-card h5{font-size:13px;font-weight:600;margin-bottom:12px;letter-spacing:.01em}
.aside-card .row{display:flex;justify-content:space-between;gap:10px;font-size:13px;
  padding:7px 0;border-bottom:1px solid var(--line2);color:var(--ink2)}
.aside-card .row:last-of-type{border-bottom:0}
.aside-card .row b{font-family:var(--num);font-weight:500;color:var(--ink)}
.aside-card .btn{width:100%;margin-top:14px}
.aside-dark{background:var(--navy2);border-color:transparent;color:#fff}
.aside-dark h5{color:#fff}
.aside-dark p{font-size:13px;color:rgba(255,255,255,.7);line-height:1.8}
.aside-dark .btn-p{background:#fff;color:var(--navy);box-shadow:none;margin-top:14px}
.aside-dark .btn-p:hover{background:#EAF2FF}

/* 样例块 */
.sample{border:1px solid var(--line);border-radius:var(--r);overflow:hidden;margin:20px 0}
.sample-hd{background:var(--soft);padding:13px 20px;border-bottom:1px solid var(--line);
  display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;align-items:center}
.sample-hd b{font-size:13.5px;font-weight:600}
.sample-hd span{font-family:var(--num);font-size:11.5px;color:var(--muted);letter-spacing:.05em}
.sample-bd{padding:20px}
.sample-bd dl{display:grid;grid-template-columns:88px 1fr;gap:8px 16px;margin:0 0 16px;font-size:13.5px}
.sample-bd dt{color:var(--muted)}
.sample-bd dd{margin:0;font-family:var(--num);color:var(--ink2);line-height:1.75}
.sample-res{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);
  border:1px solid var(--line);border-radius:var(--r-s);overflow:hidden}
.sample-res div{background:#fff;padding:12px 14px}
.sample-res dt{font-size:11.5px;color:var(--muted);margin-bottom:2px}
.sample-res dd{margin:0;font-family:var(--num);font-size:19px}
.sample-ft{padding:12px 20px;border-top:1px solid var(--line2);font-size:12px;color:var(--muted);
  line-height:1.7;background:#FCFDFE}

/* 折叠 */
.acc{border-top:1px solid var(--line)}
.acc details{border-bottom:1px solid var(--line);padding:0}
.acc summary{list-style:none;cursor:pointer;padding:20px 40px 20px 0;position:relative;
  font-size:16px;font-weight:500;line-height:1.6;display:flex;gap:14px;align-items:baseline}
.acc summary::-webkit-details-marker{display:none}
.acc summary:hover{color:var(--blue)}
.acc summary .q{font-family:var(--num);font-size:12.5px;color:var(--muted);flex:none;width:22px}
.acc summary::after{content:"";position:absolute;right:8px;top:50%;width:8px;height:8px;
  border-right:1.5px solid var(--muted);border-bottom:1.5px solid var(--muted);
  transform:translateY(-70%) rotate(45deg);transition:transform .2s}
.acc details[open] summary::after{transform:translateY(-30%) rotate(225deg)}
.acc .ans{padding:0 40px 22px 36px;font-size:14.5px;line-height:1.9;color:var(--ink2)}
.acc .ans p{margin-bottom:10px}
.acc .ans p:last-child{margin-bottom:0}
.acc .ans .fc{font-family:var(--num);font-size:11.5px;color:var(--muted);margin-top:10px;
  display:inline-flex;gap:6px;align-items:center;padding:2px 8px;background:var(--soft);
  border-radius:4px;border:1px solid var(--line2)}

/* 分组标签页 */
.tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:26px;border-bottom:1px solid var(--line);
  padding-bottom:0}
.tabs button{font-size:13.5px;padding:9px 14px;color:var(--muted);border-bottom:2px solid transparent;
  transition:color .15s,border-color .15s}
.tabs button.on{color:var(--blue);border-bottom-color:var(--blue);font-weight:500}
.tabs button:hover{color:var(--ink2)}
.pane{display:none}
.pane.on{display:block}

/* 伙伴网格：标识在上、名称在下；标识区等高，宽度随图自适应 */
.pgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.pitem{border:1px solid var(--line);border-radius:var(--r-s);padding:16px 16px 14px;background:#fff;
  display:flex;flex-direction:column;align-items:stretch;gap:11px;min-height:118px;
  transition:border-color .16s,box-shadow .18s}
.pitem:hover{border-color:#C7D6E8;box-shadow:var(--sh)}
.plg{height:46px;flex:none;display:flex;align-items:center;justify-content:flex-start;overflow:hidden}
.plg img{max-height:46px;max-width:100%;width:auto;height:auto;display:block}
.plg.plate{align-items:center}
.plogo{width:44px;height:44px;flex:none;border-radius:9px;display:grid;place-items:center;
  background:linear-gradient(158deg,#F2F7FD,#E4EEFA);border:1px solid #DBE6F4;
  color:#1761B7;font-size:12.5px;font-weight:600;letter-spacing:0;line-height:1;
  font-family:var(--sans);text-align:center}
.plogo.s3{font-size:10px;letter-spacing:0}
.ptx{min-width:0}
.pitem b{display:block;font-size:13.5px;font-weight:500;line-height:1.5}
.pitem .ptx span{display:block;font-size:10.5px;color:var(--muted);font-family:var(--num);
  letter-spacing:.06em;margin-top:3px}
/* .pitem.short：原用于「图内为简称、全称待补」的弱化标注，2026-10-21 全称补齐后不再使用 */

.grp-hd{display:flex;align-items:baseline;gap:12px;margin:36px 0 14px}
.grp-hd h3{font-size:16px;font-weight:600}
.grp-hd span{font-family:var(--num);font-size:12px;color:var(--muted)}
.grp-hd::after{content:"";flex:1;height:1px;background:var(--line2)}

/* 卡片小工具类 */
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:24px}
.card h3{font-size:16.5px;font-weight:600;margin-bottom:8px}
.card p{font-size:13.5px;color:var(--ink2);line-height:1.85}
.card .tagline{font-family:var(--num);font-size:11.5px;color:var(--blue);letter-spacing:.06em;
  margin-bottom:8px;display:block}

.stat-row{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);
  border:1px solid var(--line);border-radius:var(--r);overflow:hidden;margin:22px 0}
.stat-row div{background:#fff;padding:20px}
.stat-row dt{font-size:12.5px;color:var(--muted);margin-bottom:5px}
.stat-row dd{margin:0;font-family:var(--num);font-size:26px;letter-spacing:-.015em}
.stat-row dd small{font-size:12px;color:var(--muted);margin-left:3px;font-family:var(--sans)}

/* ---------- 产品详情块 ---------- */
.pcard{background:#fff;border:1px solid var(--line);border-radius:var(--r);
  padding:28px 28px 22px;scroll-margin-top:88px;transition:border-color .18s,box-shadow .2s}
.pcard:hover{border-color:#D3DFEC;box-shadow:var(--sh)}
.pcard-hd{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:12px}
.pcard-hd h3{font-size:22px;font-weight:600;letter-spacing:-.012em;display:flex;align-items:baseline;
  gap:10px;flex-wrap:wrap}
.pcard-hd h3 span{font-size:13.5px;font-weight:400;color:var(--muted);letter-spacing:0}
.pcard > .desc{font-size:14.5px;line-height:1.85;color:var(--ink2);margin-bottom:14px}
.pcard-cols{display:grid;grid-template-columns:1.15fr .85fr;gap:28px;margin-top:18px;
  padding-top:18px;border-top:1px solid var(--line2)}
.pcard-cols h5{font-size:11.5px;letter-spacing:.1em;color:var(--muted);font-weight:500;margin-bottom:8px}
.pcard-cols ul.dot li{position:relative;padding-left:15px;font-size:13.5px;line-height:1.8;
  color:var(--ink2);margin-bottom:5px}
.pcard-cols ul.dot li::before{content:"";position:absolute;left:0;top:9px;width:4px;height:4px;
  border-radius:50%;background:#C3D0E0}
.pcard-cols ul.dot.no li::before{background:#E2B9B5}
.pcard-ft{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-top:16px;
  padding-top:14px;border-top:1px solid var(--line2);font-size:12px;color:var(--muted)}
/* 单机版下载条 */
.dlbox{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:16px;
  margin-top:16px;padding:15px 18px;border:1px solid var(--line);border-radius:var(--r-s);
  background:linear-gradient(180deg,#FAFCFE,#F5F9FE)}
.dl-ic{width:38px;height:38px;border-radius:9px;background:var(--blue-l);color:var(--blue-d);
  display:grid;place-items:center;flex:none}
.dl-ic svg{width:17px;height:17px;display:block}
.dl-tx b{display:block;font-size:14px;font-weight:500;color:var(--ink);margin-bottom:3px}
.dl-tx span{display:block;font-size:12px;color:var(--muted);line-height:1.65}
.anchor-nav{display:flex;gap:8px;flex-wrap:wrap;padding:16px 0;border-bottom:1px solid var(--line2)}
.anchor-nav a{font-size:13px;color:var(--ink2);padding:5px 12px;border:1px solid var(--line);
  border-radius:999px;transition:.15s}
.anchor-nav a:hover{border-color:var(--blue);color:var(--blue);background:var(--blue-l)}

/* ---------- 条形对照 ---------- */
.bars{display:flex;flex-direction:column;gap:14px;margin:20px 0 6px}
.bar-row{display:grid;grid-template-columns:56px 1fr 96px;gap:14px;align-items:center;font-size:13px}
.bar-row .lb{color:var(--ink2);font-weight:500}
.bar-track{display:block;height:9px;background:var(--soft2);border-radius:999px;overflow:hidden;position:relative}
.bar-fill{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#2C7BEA,#1668DC);
  transition:width .8s cubic-bezier(.2,.7,.3,1)}
.bar-fill.low{background:linear-gradient(90deg,#E9B872,#C47A17)}
.bar-row .vl{font-family:var(--num);text-align:right;color:var(--ink);letter-spacing:-.01em}
.bar-row .vl small{color:var(--muted);font-size:11.5px;margin-left:4px}

/* 场景筛选 */
.filters{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 20px}
.filters button{font-size:12.5px;padding:5px 12px;border:1px solid var(--line);border-radius:999px;
  color:var(--ink2);transition:.15s}
.filters button.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.filters button.on b{opacity:.75}
.filters button b{font-family:var(--num);font-weight:500;margin-left:2px;opacity:.6}
.filters button:hover:not(.on){border-color:#C7D6E8}

.form-done{margin-top:14px;padding:12px 14px;background:var(--teal-l);
  border:1px solid #CFEBE3;border-radius:8px;font-size:13px;color:#0B6B5B;line-height:1.7}

/* 表单 */
.form{border:1px solid var(--line);border-radius:var(--r);padding:28px;background:#fff}
.fld{margin-bottom:16px}
.fld label{display:block;font-size:13px;color:var(--ink2);margin-bottom:6px}
.fld label em{color:#C0392B;font-style:normal;margin-left:3px}
.fld input,.fld select,.fld textarea{
  width:100%;border:1px solid var(--line);border-radius:var(--r-s);padding:11px 13px;
  font-family:inherit;font-size:14px;color:var(--ink);background:#fff;transition:border-color .15s,box-shadow .15s;
}
.fld input:focus,.fld select:focus,.fld textarea:focus{
  outline:0;border-color:var(--blue);box-shadow:0 0 0 3px rgba(23,97,183,.1)}
.fld textarea{min-height:96px;resize:vertical}
.fld .hint{font-size:11.5px;color:var(--muted);margin-top:5px}
.f-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}

/* 蜜罐字段：人看不见，爬虫会填。用绝对定位移出视口而不是 display:none，
   display:none 的字段部分脚本会跳过不填 */
.f-hp{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}
/* 提交状态条：ok / err / info 三态 */
.form-msg{margin-top:14px;padding:12px 14px;border-radius:8px;font-size:13px;line-height:1.75;
  border:1px solid transparent}
.form-msg b{display:block;font-weight:600;margin-bottom:2px}
.form-msg a{color:inherit;text-decoration:underline;text-underline-offset:2px}
.form-msg.ok{background:var(--teal-l);border-color:#CFEBE3;color:#0B6B5B}
.form-msg.err{background:#FDF1F0;border-color:#F3D3CF;color:#96271B}
.form-msg.info{background:#F4F8FD;border-color:#DCE8F6;color:#2A5A8C}
.form-msg[hidden]{display:none}

/* 标注系统 */
body.show-anno [data-note]{position:relative;outline:1px dashed rgba(196,122,23,.55);
  outline-offset:3px;border-radius:2px}
body.show-anno [data-note]::after{
  content:attr(data-note);position:absolute;z-index:60;left:0;top:100%;margin-top:8px;
  background:var(--amber);color:#fff;font-size:11.5px;line-height:1.55;font-weight:400;
  padding:6px 10px;border-radius:6px;max-width:340px;white-space:normal;
  box-shadow:0 6px 18px rgba(0,0,0,.18);letter-spacing:0;text-align:left;
  font-family:var(--sans);pointer-events:none;
}
body.show-anno [data-note]:nth-child(even)::after{left:auto;right:0}
/* 首屏与 CTA 有 overflow:hidden，标注改为向上弹出，避免被裁；
   同时重置 .calc::after 的描边遮罩，否则气泡会被挖空成边框 */
body.show-anno .hero [data-note]::after,
body.show-anno .cta [data-note]::after{
  top:auto;bottom:calc(100% + 8px);margin-top:0;left:auto;right:0;
  background:var(--amber);opacity:1;padding:6px 10px;inset:auto auto calc(100% + 8px) auto;
  -webkit-mask:none;mask:none;box-shadow:0 6px 18px rgba(0,0,0,.22);
}
/* 右下角「原型标注」开关：交付版已去掉按钮，规则留档。
   内部评审仍可用 URL 加 ?anno=1 打开标注（见 app.js），只是不再有浮动按钮。 */
/* .anno-tg{
  position:fixed;right:22px;bottom:22px;z-index:120;display:flex;align-items:center;gap:7px;
  height:38px;padding:0 15px;border-radius:999px;font-size:12.5px;
  background:var(--navy);color:#fff;box-shadow:0 8px 24px rgba(7,30,51,.3);
  transition:transform .16s,background .16s;
}
.anno-tg:hover{transform:translateY(-1px)}
.anno-tg i{width:6px;height:6px;border-radius:50%;background:var(--amber)}
body.show-anno .anno-tg{background:var(--amber)} */

/* ---------- 通用圆点列表（不在 .blk 内的场景页等） ---------- */
ul.dot{margin:0 0 14px;padding:0;list-style:none}
ul.dot li{position:relative;padding-left:17px;font-size:14.5px;line-height:1.95;color:var(--ink2);
  margin-bottom:4px}
ul.dot li::before{content:"";position:absolute;left:2px;top:11px;width:5px;height:5px;
  border-radius:50%;background:#B7C6D8}
ul.dot.no li::before{background:#E2B9B5}
ol.n{margin:0 0 16px;padding:0;list-style:none;counter-reset:n}
ol.n li{counter-increment:n;position:relative;padding-left:30px;font-size:15px;line-height:1.9;
  color:var(--ink2);margin-bottom:8px}
ol.n li::before{content:counter(n,decimal-leading-zero);position:absolute;left:0;top:2px;
  font-family:var(--num);font-size:12.5px;color:var(--blue);letter-spacing:.04em}

/* ---------- 顶部登录入口 ---------- */
.login-link{font-size:14px;color:var(--ink2);display:inline-flex;align-items:center;gap:6px;
  white-space:nowrap;transition:color .16s}
.login-link:hover{color:var(--blue)}
.login-link svg{width:14px;height:14px;opacity:.5}

/* ---------- 首页：产品之外的两类服务 ---------- */
.svc-top{display:grid;grid-template-columns:auto repeat(3,1fr);align-items:stretch;
  border:1px solid var(--line);border-radius:var(--r-s);background:#fff;overflow:hidden}
.svc-top .st-lb{display:flex;align-items:center;padding:0 22px;font-size:11.5px;letter-spacing:.14em;
  color:var(--muted);background:var(--soft);border-right:1px solid var(--line2);white-space:nowrap}
.svc-top a{padding:15px 22px;border-right:1px solid var(--line2);transition:background .16s}
.svc-top a:last-child{border-right:0}
.svc-top a:hover{background:var(--soft)}
.svc-top b{display:block;font-size:13.5px;font-weight:500;color:var(--ink);margin-bottom:2px}
.svc-top span{display:block;font-size:11.5px;color:var(--muted);line-height:1.5}
.svc-top a:hover b{color:var(--blue)}
.svc{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.svc-i{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:26px 28px 24px;
  position:relative;overflow:hidden}
.svc-i::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--blue)}
.svc-i:nth-child(2)::before{background:var(--teal)}
.svc-hd{display:flex;align-items:baseline;gap:10px;margin-bottom:10px}
.svc-n{font-family:var(--num);font-size:11.5px;color:var(--muted);letter-spacing:.1em}
.svc-i h3{font-size:19px;font-weight:600;letter-spacing:-.005em}
.svc-i > p{font-size:13.5px;color:var(--ink2);line-height:1.85}
.svc-i ul{margin-top:14px;padding-top:14px;border-top:1px solid var(--line2)}
.svc-i li{position:relative;padding-left:16px;font-size:13px;color:var(--muted);line-height:1.95}
.svc-i li::before{content:"";position:absolute;left:2px;top:9px;width:5px;height:5px;border-radius:50%;
  background:var(--blue);opacity:.45}
.svc-i:nth-child(2) li::before{background:var(--teal)}

/* ---------- 登录卡（数字能源云） ---------- */
.lcards{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.lcard{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:28px 30px;
  position:relative;overflow:hidden;transition:border-color .18s,box-shadow .2s}
.lcard::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--blue)}
.lcard:nth-child(2)::before{background:var(--blue-d)}
.lcard:hover{border-color:#C7D6E8;box-shadow:var(--sh)}
.lcard .sys{font-family:var(--num);font-size:11px;letter-spacing:.12em;color:var(--muted)}
.lcard h3{font-size:18.5px;font-weight:600;margin:9px 0 8px;line-height:1.45}
.lcard p{font-size:13.5px;color:var(--ink2);line-height:1.85}
.lcard .lrow{display:flex;align-items:center;gap:14px;margin-top:20px;flex-wrap:wrap}
.lcard .lmeta{font-size:11.5px;color:var(--muted);margin-top:12px;line-height:1.7}

/* ---------- 平台分层 ---------- */
.layer{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.layer-i{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:24px}
.layer-i .n{font-family:var(--num);font-size:11px;letter-spacing:.1em;color:var(--blue);display:block;
  margin-bottom:8px}
.layer-i h3{font-size:16px;font-weight:600;margin-bottom:8px}
.layer-i p{font-size:13px;color:var(--ink2);line-height:1.85}

/* ---------- 场景分组标题 ---------- */
.scn-grp{display:flex;align-items:baseline;gap:12px;margin:0 0 18px}
.scn-grp h2{font-size:19px;font-weight:600}
.scn-grp span{font-family:var(--num);font-size:12px;color:var(--muted)}
.scn-grp::after{content:"";flex:1;height:1px;background:var(--line2)}

/* ---------- 动画：默认可见，避免任何情况下内容不可见 ---------- */
.rv{opacity:1;transform:none}
.rv.in{animation:rvIn .5s cubic-bezier(.2,.7,.3,1) both}
@keyframes rvIn{from{opacity:.001;transform:translateY(10px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){
  .rv.in{animation:none}
  html{scroll-behavior:auto}
}

/* ---------- 响应式 ---------- */
@media (max-width:1100px){
  .logo-slogan,.logo-div{display:none}
  .tel,.tels{display:none}
  .nav > li > a{padding:0 11px;font-size:14px}
  .pgrid{grid-template-columns:repeat(2,1fr)}
  .layer{grid-template-columns:1fr 1fr}
  .hero-in{grid-template-columns:1fr;gap:44px;padding-top:60px;padding-bottom:48px}
  .hero h1{font-size:37px}
  .hero::after{height:290px}
  .hero-rail-in{grid-template-columns:1fr 1fr}
  .hero-rail .it{padding:15px 20px 18px}
  .hero-rail .it:nth-child(2n){border-right:0}
  .hero-rail .it:nth-child(1),.hero-rail .it:nth-child(2){
    border-bottom:1px solid rgba(255,255,255,.07)}
  .hero-rail .it:nth-child(3){padding-left:0}
  .culture-in{grid-template-columns:1fr;gap:34px}
  .culture-lg{flex-direction:row;align-items:center;gap:20px}
  .doc,.doc.cols-2{grid-template-columns:1fr;gap:0}
  .toc,.doc-aside{display:none}
  .prods{gap:14px}
  .facts-in{grid-template-columns:repeat(3,1fr)}
  .facts-in div{border-bottom:1px solid var(--line2)}
  .facts-in div:nth-child(3n){border-right:0}
  .paths{grid-template-columns:1fr 1fr}
  .metrics{grid-template-columns:repeat(2,1fr)}
  .stat-row{grid-template-columns:1fr 1fr}
  .pwall{gap:10px}
  .pwall li{height:74px;padding:0 16px}
  .pmini-img{max-height:36px}
}
@media (max-width:860px){
  .wrap{padding:0 20px}
  .hd-in{height:64px;gap:14px}
  .logo-img{height:29px}
  .nav,.tel,.tels{display:none}
  .burger{display:grid}
  .sec{padding:56px 0}
  .sec-hd{flex-direction:column;align-items:flex-start;gap:16px}
  .sec-hd.tight{align-items:flex-start;gap:10px;margin-bottom:18px}
  h2.t{font-size:25px}
  .hero h1{font-size:clamp(22px,6.3vw,30px);line-height:1.36;letter-spacing:0}
  .hero-sub{font-size:15px}
  .hero-in{padding-top:40px;padding-bottom:38px}
  .hero::after{height:210px;opacity:.34}
  .hero-rail .it{padding:12px 14px 15px;gap:10px}
  .hero-rail .ic{width:30px;height:30px}
  .hero-rail .ic svg{width:17px;height:17px}
  .hero-rail b{font-size:13px}
  .hero-rail b em{display:none}
  .hero-rail span{font-size:11px}
  .culture-in{padding-top:40px;padding-bottom:40px}
  .culture-lg{flex-direction:column;align-items:flex-start;gap:12px}
  .culture-logo{height:44px}
  .culture-lg span{font-size:10.5px;letter-spacing:.14em;line-height:1.6}
  .cul-row{grid-template-columns:1fr;gap:8px;padding:16px 0}
  .cul-v{font-size:19px}
  .facts-in{grid-template-columns:1fr 1fr}
  .facts-in div{padding:18px 14px}
  .facts-in b{font-size:20px}
  .prods,.scenes,.cases,.grid-2,.grid-3,.paths,.bound,.pgrid{grid-template-columns:1fr}
  .svc,.lcards,.layer{grid-template-columns:1fr}
  .svc-i{padding:22px 20px}
  .lcard{padding:22px 20px}
  .lcard h3{font-size:17px}
  .svc-top{grid-template-columns:1fr 1fr}
  .svc-top .st-lb{grid-column:1/-1;border-right:0;border-bottom:1px solid var(--line2);padding:10px 18px}
  .svc-top a{padding:12px 18px;border-bottom:1px solid var(--line2)}
  .svc-top a:nth-child(3){border-right:0}
  .svc-top a:nth-child(4){grid-column:1/-1;border-right:0;border-bottom:0}
  .pitem{padding:13px 14px 12px;min-height:104px;gap:9px}
  .plg{height:38px}
  .plg img{max-height:38px}
  .plogo{width:38px;height:38px;font-size:11.5px}
  .scn-grp{margin-bottom:14px}
  .scn-grp h2{font-size:17px}
  .cta-in{flex-direction:column;align-items:flex-start;gap:26px;padding-top:44px;padding-bottom:44px}
  .cta h2{font-size:23px}
  .ft-top{grid-template-columns:1fr 1fr;gap:28px}
  .ft-brand{grid-column:1/-1}
  .ph h1,.ph-dark h1{font-size:clamp(21px,6vw,27px);letter-spacing:0}
  .ph-dark::after{height:130px;opacity:.26}
  .sample-bd dl{grid-template-columns:1fr;gap:2px}
  .sample-bd dd{margin-bottom:8px}
  .sample-res{grid-template-columns:1fr 1fr}
  .metrics{grid-template-columns:1fr 1fr}
  .calc-rows{grid-template-columns:1fr 1fr}
  .form{padding:20px}
  .dlbox{grid-template-columns:auto 1fr;gap:10px 13px}
  .dlbox .btn{grid-column:1/-1;width:100%}
  .pcard-cols{grid-template-columns:1fr;gap:16px}
  .dl-tx span{font-size:11.5px}
  .f-row{grid-template-columns:1fr}
  .blk > h2{font-size:20px}
  .acc summary{font-size:15px;padding-right:30px}
  .acc .ans{padding-left:36px;padding-right:16px}
  .body-m{display:block}
  .mnav{inset:64px 0 0}
  .pwall{gap:9px}
  .pwall li{height:66px;padding:0 12px;border-radius:9px}
  .pmini-img{max-height:30px}
}
@media (max-width:600px){
  .tbl-cert th,.tbl-cert td{padding:10px 11px}
  .tbl-cert th:nth-child(1),.tbl-cert td:nth-child(1){width:1%;white-space:nowrap}
  .tbl-cert th:nth-child(3),.tbl-cert td:nth-child(3){width:1%;white-space:nowrap}
  .pwall{grid-template-columns:repeat(2,1fr);gap:8px}
  .pwall li{height:70px;padding:0 12px}
  .pmini-img{max-height:32px}
  .pwall.cats{gap:8px}
  .pwall.cats li{padding:9px 15px;font-size:13px}
}
/* 移动菜单 */
.mnav{display:none;position:fixed;inset:60px 0 0;z-index:88;background:#fff;
  border-top:1px solid var(--line);overflow-y:auto;padding:14px 20px 40px}
.mnav.on{display:block}
.mnav h4{font-size:11.5px;letter-spacing:.12em;color:var(--muted);margin:18px 0 8px;font-weight:500}
.mnav a{display:block;padding:11px 0;font-size:15px;border-bottom:1px solid var(--line2);color:var(--ink2)}
.mnav .btn{width:100%;margin-top:20px}
