/* ============================================================
   谙声科技官网 — 统一视觉层 / Unified Design Layer
   加载位置：各页内嵌 <style> 之后，因此以同权重覆盖页面内的历史数值。
   作用：把 21 个页面各自散落的颜色、字号、间距收敛成一套令牌，
        并补上移动端导航、窄屏折叠、可读性与可达性基线。
   维护约定：新增视觉数值一律先在此定义令牌，不要写回页面内联样式。
   ============================================================ */

/* ---------- 1. 令牌 ---------- */
:root {
  /* 品牌蓝阶：全站唯一一条 */
  --brand-700: #005A9A;
  --brand-600: #0070C0;
  --brand-500: #1E86D0;
  --brand-100: #E4F1FA;
  --brand-50:  #F3F9FD;

  /* 中性深/浅 */
  --ink-900: #0A1A2F;
  --ink-800: #0F2744;
  --ink-700: #16395C;

  --text-1: #101C2E;
  --text-2: #33415A;
  --text-3: #5A6B80;
  --text-4: #8495A8;

  --line-1: #E2E8F0;
  --line-2: #EDF1F6;
  --surface-0: #FFFFFF;
  --surface-1: #F7F9FC;
  --surface-2: #EEF3F8;

  --amber: #C77D0A;
  --green: #0E8F62;
  --red: #C6303A;

  /* 间距（8 基点，含 4 半档） */
  --s-1: 4px;  --s-2: 8px;  --s-3: 12px; --s-4: 16px;
  --s-5: 24px; --s-6: 32px; --s-7: 48px; --s-8: 64px; --s-9: 88px;

  /* 圆角 / 阴影 */
  --r-xs: 4px; --r-sm: 6px; --r-md: 10px; --r-lg: 12px; --r-xl: 16px;
  --sh-1: 0 1px 2px rgba(10, 26, 47, .05);
  --sh-2: 0 6px 20px rgba(10, 26, 47, .07);
  --sh-3: 0 16px 40px rgba(10, 26, 47, .12);

  /* 版心 */
  --container: 1320px;
  --measure: 860px;                       /* 正文行长上限 ≈ 56 个汉字 */
  --gutter: clamp(18px, 4.2vw, 56px);
  --header-h: 72px;

  /* 字阶 */
  --fs-2xs: 11.5px;
  --fs-xs: 12.5px;
  --fs-sm: 13.5px;
  --fs-base: 14.5px;
  --fs-md: 15.5px;
  --fs-lg: 18px;
  --fs-xl: 21px;
  --fs-2xl: clamp(24px, 2.5vw, 31px);
  --fs-3xl: clamp(28px, 3.3vw, 40px);
  --fs-hero: clamp(32px, 4.2vw, 54px);

  --font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC",
               "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei",
               "Noto Sans SC", "Source Han Sans SC", sans-serif;
  --font-num: "SF Mono", "JetBrains Mono", "Cascadia Mono", Consolas, "Liberation Mono", monospace;

  /* 兼容页面既有变量名，统一指向新令牌 */
  --sky: #0070C0;
  --sky-dark: #005A9A;
  --navy: #0A1A2F;
  --navy-2: #0F2744;
  --navy-3: #16395C;
  --slate-50: #F7F9FC;
  --slate-100: #EEF3F8;
  --slate-200: #E2E8F0;
  --slate-300: #CBD5E1;
  --slate-400: #8495A8;
  --slate-500: #5A6B80;
  --slate-600: #475569;
  --slate-700: #33415A;
  --slate-800: #1E293B;
  --slate-900: #101C2E;
  --font-sans-legacy: var(--font-sans);
  --font-mono: var(--font-num);
  --font-display: var(--font-sans);
  --emerald: #0E8F62;
  --violet: #7C5CD6;
}

/* ---------- 2. 基础 ---------- */
html { -webkit-text-size-adjust: 100%; }

body {
  font-family: var(--font-sans);
  font-size: var(--fs-base);
  line-height: 1.68;
  color: var(--text-1);
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

img, svg, video { max-width: 100%; }
img { height: auto; }

a, button { -webkit-tap-highlight-color: transparent; }

/* 键盘焦点：全站统一可见 */
:focus-visible {
  outline: 2px solid var(--brand-500);
  outline-offset: 2px;
  border-radius: var(--r-xs);
}

/* 跳到主内容 */
.skip-link {
  position: absolute;
  left: 12px;
  top: -60px;
  z-index: 400;
  padding: 10px 18px;
  background: #fff;
  color: var(--brand-700);
  font-size: var(--fs-sm);
  font-weight: 600;
  border-radius: var(--r-sm);
  box-shadow: var(--sh-2);
  transition: top .18s;
}
.skip-link:focus { top: 12px; }

/* 长文可读性 */
p, li { text-wrap: pretty; }
h1, h2, h3, h4 { text-wrap: balance; }

/* ---------- 3. 版心与节奏 ---------- */.header-inner,
.hero-inner,
.section-inner,
.breadcrumb-inner,
.main,
.main-content,
.page-wrap,
.title-section,
.footer-top,
.footer-bottom,
.footer-divider,
.tool-page {
  max-width: var(--container);
}

.header-inner,
.breadcrumb-inner,
.hero-inner,
.main,
.main-content,
.page-wrap,
.title-section {
  padding-left: var(--gutter);
  padding-right: var(--gutter);
}

body > .section {
  padding: clamp(52px, 6.2vw, 92px) var(--gutter);
}

body > .cta-section {
  padding: clamp(46px, 5.4vw, 76px) var(--gutter);
}

/* 内容页（about/company/cases/news/resources/rnd/support/方案详情）的正文区 */
.main {
  padding-top: clamp(24px, 3vw, 42px);
  padding-bottom: clamp(44px, 5vw, 72px);
}

.main > .section { margin-bottom: clamp(32px, 4vw, 52px); }
.main > .section:last-child { margin-bottom: 0; }

/* ---------- 4. 页头 ---------- */
.header { box-shadow: 0 1px 0 rgba(255, 255, 255, .04); }
.header.is-stuck { box-shadow: 0 8px 24px rgba(6, 16, 30, .28); }

.header-inner { height: var(--header-h); gap: var(--s-5); }
.logo-img, .header-left img { height: 34px !important; width: auto !important; display: block; }
.footer-logo-img { height: 28px !important; width: auto !important; display: block; }

.header-nav { gap: clamp(16px, 2vw, 30px); flex: 0 1 auto !important; margin: 0 auto; }
.header-inner { justify-content: space-between; }
.header-nav a,
.nav-dropdown-toggle {
  position: relative;
  font-size: var(--fs-base);
  color: #A9BACC;
  letter-spacing: .01em;
  padding: 6px 0;
  transition: color .18s;
}
.header-nav a:hover,
.nav-dropdown-toggle:hover,
.nav-dropdown:hover .nav-dropdown-toggle { color: #fff; }

.header-nav a.active,
.nav-dropdown.on .nav-dropdown-toggle { color: #fff; font-weight: 600; }

.header-nav a.active::after,
.nav-dropdown.on .nav-dropdown-toggle::after {
  content: "";
  position: absolute;
  left: 0; right: 0; bottom: -2px;
  height: 2px;
  border-radius: 2px;
  background: var(--brand-500);
}
.nav-dropdown-toggle::after { display: none; }
.nav-dropdown.on .nav-dropdown-toggle::after { display: block; }

.header-cta {
  display: inline-flex;
  align-items: center;
  height: 38px;
  padding: 0 20px;
  border-radius: var(--r-sm);
  font-size: var(--fs-sm);
  font-weight: 600;
  letter-spacing: .01em;
  background: var(--brand-600);
  color: #fff;
  transition: background .18s, transform .18s;
}
.header-cta:hover { background: var(--brand-700); }

/* 下拉菜单 */
.nav-dropdown-menu {
  min-width: 148px;
  padding: 6px;
  border-radius: var(--r-md);
  border-color: var(--line-1);
  box-shadow: var(--sh-3);
}
.nav-dropdown-menu li a {
  padding: 9px 12px;
  border-radius: var(--r-sm);
  font-size: var(--fs-sm);
  color: var(--text-2);
}
.nav-dropdown-menu li a:hover { background: var(--brand-50); color: var(--brand-700); }
.nav-dropdown:focus-within .nav-dropdown-menu {
  opacity: 1; visibility: visible; transform: translateX(-50%) translateY(0);
}

/* 移动端开关（默认不存在，仅窄屏显示） */
.nav-toggle {
  display: none;
  width: 40px; height: 40px;
  margin-left: auto;
  border: 1px solid rgba(255, 255, 255, .18);
  border-radius: var(--r-sm);
  background: rgba(255, 255, 255, .04);
  cursor: pointer;
  position: relative;
}
.nav-toggle span {
  position: absolute;
  left: 11px; right: 11px;
  height: 1.6px;
  background: #fff;
  border-radius: 2px;
  transition: transform .22s, opacity .16s, top .22s;
}
.nav-toggle span:nth-child(1) { top: 14px; }
.nav-toggle span:nth-child(2) { top: 19.2px; }
.nav-toggle span:nth-child(3) { top: 24.4px; }
body.nav-open .nav-toggle span:nth-child(1) { top: 19.2px; transform: rotate(45deg); }
body.nav-open .nav-toggle span:nth-child(2) { opacity: 0; }
body.nav-open .nav-toggle span:nth-child(3) { top: 19.2px; transform: rotate(-45deg); }

/* ---------- 5. 移动抽屉 ---------- */
.drawer-scrim {
  position: fixed;
  inset: 0;
  z-index: 190;
  background: rgba(6, 16, 30, .55);
  opacity: 0;
  transition: opacity .22s;
}
body.nav-open .drawer-scrim { opacity: 1; }

.site-drawer {
  position: fixed;
  top: 0; right: 0; bottom: 0;
  z-index: 200;
  width: min(84vw, 340px);
  display: flex;
  flex-direction: column;
  background: var(--ink-900);
  border-left: 1px solid rgba(255, 255, 255, .08);
  transform: translateX(101%);
  transition: transform .26s cubic-bezier(.32, .72, 0, 1);
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: 18px 0 24px;
}
body.nav-open .site-drawer { transform: none; }

.drawer-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 20px 16px;
  border-bottom: 1px solid rgba(255, 255, 255, .08);
}
.drawer-head img { height: 26px; width: auto; }
.drawer-close {
  width: 34px; height: 34px;
  border: none;
  border-radius: var(--r-sm);
  background: rgba(255, 255, 255, .07);
  color: #fff;
  font-size: 20px;
  line-height: 1;
  cursor: pointer;
}

.drawer-nav { display: flex; flex-direction: column; padding: 8px 12px 0; }
.drawer-nav a {
  display: block;
  padding: 12px 10px;
  font-size: 15px;
  color: #C6D3E1;
  border-radius: var(--r-sm);
}
.drawer-nav a:hover,
.drawer-nav a.active { background: rgba(255, 255, 255, .06); color: #fff; }

.drawer-nav .nav-dropdown { display: block; }
.drawer-nav .nav-dropdown-toggle { display: flex; align-items: center; justify-content: space-between; padding: 12px 10px; font-size: 15px; color: #C6D3E1; }
.drawer-nav .nav-dropdown-toggle::after { display: none; }
.drawer-nav .caret { border-top-color: currentColor; }
.drawer-nav .nav-dropdown-menu {
  position: static;
  transform: none;
  opacity: 1;
  visibility: visible;
  display: none;
  background: rgba(255, 255, 255, .03);
  border: none;
  box-shadow: none;
  padding: 4px 0 6px 10px;
  margin: 2px 0 6px;
  border-radius: var(--r-sm);
}
.drawer-nav .nav-dropdown.open .nav-dropdown-menu { display: block; }
.drawer-nav .nav-dropdown.open .caret { transform: rotate(180deg); }
.drawer-nav .nav-dropdown-menu li a { color: #A9BACC; font-size: var(--fs-sm); padding: 9px 12px; }
.drawer-nav .nav-dropdown-menu li a:hover { background: rgba(255, 255, 255, .06); color: #fff; }

.drawer-foot {
  margin-top: auto;
  padding: 18px 22px 0;
  border-top: 1px solid rgba(255, 255, 255, .08);
  display: grid;
  gap: 10px;
}
.drawer-foot a {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: var(--fs-sm);
  color: #C6D3E1;
}
.drawer-foot .k {
  font-size: var(--fs-2xs);
  color: #7C8FA5;
  letter-spacing: .06em;
  display: block;
}
.drawer-foot .v { color: #fff; font-weight: 600; font-family: var(--font-num); }

/* ---------- 6. Hero ---------- */
.hero-inner {
  padding-top: clamp(40px, 4.6vw, 78px);
  padding-bottom: clamp(44px, 5vw, 88px);
  gap: clamp(28px, 4vw, 64px);
}

.hero-title { font-size: var(--fs-hero); line-height: 1.14; letter-spacing: -.022em; }
.hero-sub { font-size: var(--fs-md); line-height: 1.78; color: #AFC3D6; max-width: 44em; }
.hero-badge, .hero-tag {
  font-size: var(--fs-xs);
  letter-spacing: .04em;
  padding: 6px 14px;
  border-radius: 999px;
}

.hero-right { flex: 0 0 min(520px, 42%); }
.spectrum { border-radius: var(--r-lg); }

.hero-trust { gap: clamp(20px, 3.4vw, 40px); }
.trust-item .num { font-size: clamp(22px, 2.2vw, 26px); }

/* 详情页顶部指标：数值与单位同基线，避免三行堆叠 */
.page-hero-stats, .hero-stats, .page-stats { gap: clamp(24px, 4vw, 52px); }
.page-stat .num, .hero-stat .num {
  display: inline;
  font-family: var(--font-num);
  font-size: clamp(26px, 2.6vw, 32px);
  font-weight: 700;
  color: #fff;
  letter-spacing: -.01em;
}
.page-stat .unit, .hero-stat .unit {
  display: inline;
  margin-left: 3px;
  font-size: var(--fs-xs);
  font-weight: 600;
  color: var(--brand-500);
  letter-spacing: 0;
}
.page-stat .lb, .hero-stat .lb {
  margin-top: 6px;
  font-size: var(--fs-xs);
  color: #8FA6BC;
}

/* ---------- 7. 区块标题 ---------- */
.section-head { margin-bottom: clamp(26px, 3.2vw, 44px); }

.section-tag {
  font-size: var(--fs-2xs);
  font-weight: 700;
  letter-spacing: .18em;
  color: var(--brand-600);
  margin-bottom: 10px;
}

.section-title { font-size: var(--fs-2xl); line-height: 1.28; letter-spacing: -.012em; }
.section-sub { font-size: var(--fs-md); line-height: 1.75; color: var(--text-3); max-width: 40em; }
.bg-dark .section-sub { color: #9FB4C8; }

/* 内容页小标题：把装饰圆点换成规整的竖标 */
.sec-h { gap: 12px; margin-bottom: 14px; align-items: baseline; scroll-margin-top: calc(var(--header-h) + 20px); }
.sec-h .dot {
  width: 3px !important;
  height: 15px !important;
  border-radius: 2px;
  background: var(--brand-600) !important;
  flex: 0 0 auto;
  transform: translateY(1px);
}
.sec-h h2 { font-size: clamp(19px, 1.7vw, 22px); line-height: 1.35; letter-spacing: -.008em; }

.sec-body {
  max-width: var(--measure);
  font-size: var(--fs-base);
  line-height: 1.85;
  color: var(--text-2);
}
.sec-body p + p { margin-top: 10px; }

/* 正文里的列表：去掉默认缩进，用细横线分隔，与工程文档的语气一致 */
.plain-list { list-style: none; display: flex; flex-direction: column; gap: 2px; }
.plain-list li {
  position: relative;
  padding: 9px 0 9px 16px;
  border-bottom: 1px solid var(--line-2);
  line-height: 1.8;
}
.plain-list li:last-child { border-bottom: none; }
.plain-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 20px;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--brand-600);
}
.plain-list b { color: var(--text-1); font-weight: 600; }

.sub-h {
  margin: 24px 0 10px;
  padding-left: 11px;
  border-left: 3px solid var(--brand-600);
  font-size: var(--fs-md);
  color: var(--ink-700);
}

.sec-desc, .sec-meta { font-size: var(--fs-xs); color: var(--text-4); letter-spacing: .02em; }

/* ---------- 8. 按钮 ---------- */
.btn-primary, .btn-secondary, .btn-quote, .btn-outline, .cta .btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  height: 44px;
  padding: 0 26px;
  border-radius: var(--r-sm);
  font-size: var(--fs-sm);
  font-weight: 600;
  letter-spacing: .01em;
  transition: background .18s, border-color .18s, color .18s, transform .18s;
}
.btn-primary { background: var(--brand-600); }
.btn-primary:hover { background: var(--brand-700); transform: translateY(-1px); }
.btn-secondary { border-color: rgba(255, 255, 255, .26); }
.btn-secondary:hover { border-color: var(--brand-500); color: #fff; background: rgba(0, 112, 192, .12); }
.cta .btn { background: var(--brand-600); }
.cta .btn:hover { background: var(--brand-700); }

/* ---------- 9. 卡片统一 ---------- */
.cap-card, .prod-card, .sol-card, .stat-card, .info-card, .point-card,
.std-card, .sol-item, .tool-card, .faq-item, .news-item {
  border-radius: var(--r-lg);
  border-color: var(--line-1);
  box-shadow: var(--sh-1);
}

.cap-card:hover, .prod-card:hover, .sol-card:hover, .sol-item:hover, .info-card:hover {
  border-color: rgba(0, 112, 192, .45);
  box-shadow: var(--sh-2);
  transform: translateY(-2px);
}

.cap-card { padding: 26px 22px; }
.cap-icon {
  width: 42px; height: 42px;
  border-radius: var(--r-md);
  margin-bottom: 16px;
  background: linear-gradient(140deg, var(--brand-600), var(--brand-700));
}
.cap-card h3 { font-size: var(--fs-lg); margin-bottom: 8px; }
.cap-card p { font-size: var(--fs-sm); line-height: 1.75; color: var(--text-3); }
.cap-metric { font-family: var(--font-num); font-size: var(--fs-lg); letter-spacing: -.01em; }

.prod-body { padding: 20px; }
.prod-body h3 { font-size: var(--fs-md); }
.prod-body p { font-size: var(--fs-sm); line-height: 1.72; color: var(--text-3); }

/* 有实拍图的产品卡：让照片干净呈现，型号交给卡片标题，不在图上压白字 */
.prod-img.has-photo,
.card-image:has(.card-photo) { background: #fff; }
.prod-img.has-photo .prod-overlay,
.card-image .card-overlay { display: none !important; }
.prod-img.has-photo { border-bottom: 1px solid var(--line-2); }
.prod-img .prod-photo { padding: 16px; }

.sol-card { padding: 26px; }
.sol-card h3 { font-size: var(--fs-md); }
.sol-card p { font-size: var(--fs-sm); line-height: 1.75; color: var(--text-3); }
.sol-num {
  font-family: var(--font-num);
  font-size: var(--fs-2xs);
  padding: 2px 7px;
  border-radius: var(--r-xs);
  background: var(--brand-50);
  color: var(--brand-700);
}
.sol-tag { font-size: var(--fs-2xs); padding: 3px 9px; border-radius: 999px; border-color: var(--line-1); color: var(--text-3); }

.stat-card { padding: 28px 18px; }
.stat-card .num { font-family: var(--font-num); font-size: clamp(30px, 3vw, 38px); }

.logo-wall { gap: clamp(24px, 4vw, 52px); }
.logo-item { font-size: var(--fs-md); color: #7C8FA5; letter-spacing: .08em; }
.logo-item:hover { color: var(--text-2); }

/* ---------- 10. 表格 ---------- */
.table-wrap {
  position: relative;
  border-radius: var(--r-md);
  -webkit-overflow-scrolling: touch;
}
table { font-size: var(--fs-sm); }
th, td { padding: 12px 14px; }
th { background: var(--surface-1); font-weight: 600; color: var(--text-2); }
tbody tr:nth-child(even) td { background: #FBFCFE; }
tr:last-child td { border-bottom: none; }

/* 可横向滚动的表格：右侧渐隐提示还有内容 */
.table-wrap::after {
  content: "";
  position: absolute;
  top: 0; right: 0; bottom: 0;
  width: 26px;
  pointer-events: none;
  background: linear-gradient(90deg, rgba(255, 255, 255, 0), #fff);
  opacity: 0;
  transition: opacity .2s;
}
.table-wrap.is-scrollable::after { opacity: 1; }

/* ---------- 11. 页脚 ---------- */
.footer { padding: clamp(36px, 4.4vw, 56px) var(--gutter) clamp(24px, 3vw, 32px); }
.footer-top {
  display: grid;
  grid-template-columns: 1.6fr .9fr .9fr 1.5fr;
  gap: clamp(24px, 4vw, 64px);
}
.footer-col, .footer-col-1 { width: auto; display: flex; flex-direction: column; gap: 9px; }
.footer-logo-img { height: 30px; }
.footer-desc { font-size: var(--fs-xs); line-height: 1.75; color: #93A6B9; max-width: 30em; }
.footer-col-title {
  font-size: var(--fs-sm);
  font-weight: 600;
  color: #fff;
  letter-spacing: .02em;
  margin-bottom: 4px;
}
.footer-col a {
  font-size: var(--fs-xs);
  line-height: 1.6;
  color: #93A6B9;
  transition: color .15s;
}
.footer-col a:hover { color: #fff; }
.footer-col a[href^="tel:"], .footer-col a[href^="mailto:"] { font-family: var(--font-num); font-size: var(--fs-xs); }
.footer-divider { background: rgba(255, 255, 255, .09); margin: 30px auto 18px; }
.footer-bottom p { font-size: var(--fs-2xs); color: #7A8DA2; letter-spacing: .01em; }

/* ---------- 12. 备注条 / 提示 ---------- */
.note {
  max-width: 100%;
  padding: 13px 16px;
  border-radius: var(--r-md);
  background: var(--brand-50);
  border: 1px solid rgba(0, 112, 192, .16);
  font-size: var(--fs-sm);
  line-height: 1.75;
  color: var(--text-2);
}

/* ---------- 13. 窄屏折叠面板 ---------- */
.panel-toggle {
  display: none;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  height: 44px;
  padding: 0 14px;
  margin-bottom: 12px;
  border: 1px solid var(--line-1);
  border-radius: var(--r-sm);
  background: var(--surface-1);
  font-size: var(--fs-sm);
  font-weight: 600;
  color: var(--text-2);
  cursor: pointer;
}
.panel-toggle .chev {
  width: 8px; height: 8px;
  border-right: 1.8px solid currentColor;
  border-bottom: 1.8px solid currentColor;
  transform: rotate(45deg) translateY(-2px);
  transition: transform .2s;
}
.panel-toggle[aria-expanded="true"] .chev { transform: rotate(225deg) translateY(-2px); }

/* ---------- 14. 响应式 ---------- */
@media (max-width: 1200px) {
  .hero-right { flex: 0 0 min(440px, 40%); }
  .cap-grid, .prod-grid, .sol-grid { gap: 18px; }
}

@media (max-width: 1024px) {
  .hero-inner { flex-direction: column; }
  .hero-left { max-width: none; }
  .hero-right { flex: 1 1 auto; width: 100%; max-width: 560px; }
  .hero-title { font-size: clamp(30px, 5vw, 42px); }
  .footer-top { grid-template-columns: 1.4fr 1fr 1fr; }
  .footer-col-1 { grid-column: 1 / -1; }
}

@media (max-width: 900px) {
  :root { --header-h: 64px; }

  .header-nav { display: none !important; }
  .nav-toggle { display: block; }
  .header-inner { gap: 12px; }
  .header-right { margin-left: 0; }
  .header-cta { height: 36px; padding: 0 14px; font-size: var(--fs-xs); }

  /* 侧栏在窄屏折叠为面板 */
  .panel-toggle { display: flex; }

  /* 详情页指标：两列，不再挤成一行 */
  .page-hero-stats, .hero-stats {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px 20px;
  }
  .page-stat .num, .hero-stat .num { font-size: 26px; }

  /* 首页 hero 指标同样两列 */
  .hero-trust {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px 18px;
    padding-top: 22px;
  }

  .section-title { font-size: clamp(23px, 5.4vw, 28px); }
  .cta-section h2 { font-size: clamp(23px, 5.4vw, 28px); }
  .cta h3 { font-size: var(--fs-lg); }

  .footer-top { grid-template-columns: 1fr 1fr; gap: 22px; }
  .footer-col-1 { grid-column: 1 / -1; }

  .kv { grid-template-columns: 108px 1fr; }
  .kv > div { font-size: var(--fs-sm); padding: 11px 12px; }

  .spectrum-foot span:nth-child(n+5) { display: none; }
}

@media (max-width: 640px) {
  .prod-grid, .cap-grid, .sol-grid, .stat-grid, .tool-grid { grid-template-columns: 1fr !important; }
  .product-grid { grid-template-columns: 1fr !important; }
  .product-grid.list-view .card-image { width: 132px; min-height: 132px; }
  .card-grid, .std-grid, .point-grid { grid-template-columns: 1fr !important; }

  .footer-top { grid-template-columns: 1fr; }
  .footer-col-1 { grid-column: auto; }

  .news-item { flex-direction: column; gap: 6px; }
  .news-date { width: auto; }

  .hero-title { font-size: clamp(28px, 8vw, 36px); }
  .hero-sub { font-size: var(--fs-base); }

  th, td { padding: 10px 11px; font-size: var(--fs-xs); }
  .table-wrap { margin-left: calc(var(--gutter) * -1); margin-right: calc(var(--gutter) * -1); border-radius: 0; border-left: none; border-right: none; }
  .table-wrap table { min-width: 560px; }

  /* 文档信息栏保持卡片形态，不跟随表格全宽铺开 */
  .doc-meta {
    margin-left: 0;
    margin-right: 0;
    border-radius: var(--r-md);
    border-left: 1px solid var(--line-1);
    border-right: 1px solid var(--line-1);
  }
  .doc-meta table { min-width: 0; }
  .doc-meta td:first-child { width: 86px; }
  .doc-meta td { padding: 8px 11px; }
}

@media (max-width: 420px) {
  .hero-badge, .hero-tag { font-size: 11px; }
}

/* ---------- 15. 动效（一次编排的入场，尊重 reduced-motion） ---------- */
.js-reveal {
  opacity: 0;
  transform: translateY(10px);
  transition: opacity .5s ease, transform .5s cubic-bezier(.22, .68, 0, 1);
}
.js-reveal.is-in { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .001ms !important;
    scroll-behavior: auto !important;
  }
  .js-reveal { opacity: 1; transform: none; }
}

/* ---------- 16. 抽屉可见性与折叠面板状态 ---------- */
.site-drawer { visibility: hidden; transition: transform .26s cubic-bezier(.32, .72, 0, 1), visibility .26s; }
body.nav-open .site-drawer { visibility: visible; }

.header-right { gap: 12px; }

/* 折叠面板：只在窄屏生效，宽屏始终展开 */
@media (max-width: 900px) {
  .panel-collapsed:not(.panel-open) { display: none; }
}

/* ---------- 17. 组件级修正 ---------- */

/* 工具中心侧栏：标签不再被挤成竖排，两行标题不压到标签 */
.tool-nav-item {
  height: auto;
  min-height: 40px;
  padding-top: 6px;
  padding-bottom: 6px;
  line-height: 1.45;
  gap: 9px;
}
.tool-nav-item .tag {
  flex: 0 0 auto;
  white-space: nowrap;
  font-size: 11px;
  padding: 2px 7px;
  line-height: 1.5;
}
.tool-nav-group h4 { font-size: 10.5px; letter-spacing: .1em; }
.tool-nav-title { font-size: 15px; }
.badge-perm, .tool-head .badge-perm { font-size: 11px; white-space: nowrap; }
.an-legacy { font-size: 11px; padding: 2px 7px; line-height: 1.5; white-space: nowrap; }

/* 卡片组：auto-fill 会留下空轨道，改为按卡片数量分配的等分列（由 site-shell.js 计算 --cols） */
.card-grid, .std-grid, .point-grid, .sol-grid {
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
}
.case-grid { grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); }

@media (min-width: 1025px) {
  .card-grid[data-cols], .std-grid[data-cols], .point-grid[data-cols], .contact-grid[data-cols] {
    grid-template-columns: repeat(var(--cols, 3), minmax(0, 1fr));
  }
}

/* 无统计数字的内容页 hero：收紧上下留白，避免大片空深蓝 */
.hero-inner:not(:has(.page-hero-stats, .hero-stats, .tier-row)) {
  padding-top: clamp(28px, 2.6vw, 40px);
  padding-bottom: clamp(28px, 2.8vw, 44px);
}
.hero-inner:not(:has(.page-hero-stats, .hero-stats, .tier-row)) .hero-sub { margin-bottom: 0; }

/* 标题区右侧说明（权限说明等）：从散落的文字变成一枚规整的胶囊组 */
.title-right { display: flex; align-items: center; justify-content: flex-end; gap: 12px; flex-wrap: wrap; }
.tool-legend {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 6px 12px;
  border: 1px solid var(--line-1);
  border-radius: 999px;
  background: var(--surface-1);
}
.tool-legend .t { font-size: var(--fs-xs); color: var(--text-4); letter-spacing: .02em; }
.badge-pill { font-size: 11.5px; padding: 2px 9px; border-radius: 999px; white-space: nowrap; }

/* 本页目录（长内容页自动生成） */
.page-toc {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
  margin-bottom: clamp(22px, 2.6vw, 32px);
  padding-bottom: 14px;
  border-bottom: 1px solid var(--line-1);
}
.page-toc .toc-label {
  font-size: var(--fs-2xs);
  font-weight: 700;
  letter-spacing: .12em;
  color: var(--text-4);
  margin-right: 6px;
}
.page-toc a {
  font-size: var(--fs-xs);
  color: var(--text-3);
  padding: 5px 11px;
  border-radius: 999px;
  background: var(--surface-1);
  border: 1px solid var(--line-2);
  transition: background .16s, color .16s, border-color .16s;
}
.page-toc a:hover {
  background: var(--brand-50);
  border-color: rgba(0, 112, 192, .3);
  color: var(--brand-700);
}

@media (max-width: 900px) {
  .page-toc {
    flex-wrap: nowrap;
    overflow-x: auto;
    scrollbar-width: none;
    padding-bottom: 12px;
    margin-left: calc(var(--gutter) * -1);
    margin-right: calc(var(--gutter) * -1);
    padding-left: var(--gutter);
    padding-right: var(--gutter);
  }
  .page-toc::-webkit-scrollbar { display: none; }
  .page-toc a { flex: 0 0 auto; }
  .page-toc .toc-label { flex: 0 0 auto; }
}

/* 文档型方案页的封面表：从整页大表压成一条文档信息栏 */
.doc-meta {
  margin-bottom: clamp(18px, 2.2vw, 26px);
  border: 1px solid var(--line-1);
  border-radius: var(--r-md);
  background: #fff;
  overflow: hidden;
  max-width: 100%;
}
.doc-meta table { font-size: var(--fs-xs); }
.doc-meta td { padding: 9px 14px; border-bottom: 1px solid var(--line-2); }
.doc-meta tr:last-child td { border-bottom: none; }
.doc-meta td:first-child {
  width: 104px;
  background: var(--surface-1);
  color: var(--text-4);
  font-weight: 600;
  white-space: nowrap;
}
.doc-meta td:last-child { color: var(--text-2); font-size: var(--fs-sm); font-variant-numeric: tabular-nums; }

/* 联系方式模块 */.contact-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 16px;
  max-width: 100%;
}
.contact-card {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 20px;
  border: 1px solid var(--line-1);
  border-radius: var(--r-lg);
  background: #fff;
  transition: border-color .18s, box-shadow .18s;
}
.contact-card:hover { border-color: rgba(0, 112, 192, .4); box-shadow: var(--sh-2); }
.contact-card .k {
  font-size: var(--fs-2xs);
  font-weight: 700;
  letter-spacing: .12em;
  color: var(--text-4);
}
.contact-card .v {
  font-size: var(--fs-lg);
  font-weight: 700;
  color: var(--ink-900);
  letter-spacing: -.01em;
}
.contact-card .v.num { font-family: var(--font-num); }
.contact-card .n { font-size: var(--fs-xs); color: var(--text-3); line-height: 1.6; }
.contact-card.wide { grid-column: span 2; }
@media (max-width: 640px) { .contact-card.wide { grid-column: auto; } }

/* ---------- 18. 打印 ---------- */
@media print {
  .header, .footer, .site-drawer, .drawer-scrim, .nav-toggle, .cta, .cta-section { display: none !important; }
  body { color: #000; }
  .main, .section { padding: 0 !important; max-width: none; }
  a { text-decoration: underline; }
}
