/* ============================================================
   慧博智能官网 V3 - 全局样式「深空科技商务风」
   设计语言（对标主流企业科技站：华为企业业务/海康/腾讯云）：
   - 深空蓝黑主视觉 #04070F~#0F1E38 + 电光蓝青辉光渐变
   - 科技网格纹理 + 径向光斑 + 毛玻璃质感
   - 深色吸顶导航（全站统一置于深色区之上）
   - 浅色商务内容区，卡片描边悬停辉光
   - 渐变主按钮带光晕，滚动渐入动画
   ============================================================ */
:root {
  /* 深空色板 */
  --ink-0: #04070F;
  --ink-1: #060D1A;
  --ink-2: #0A1526;
  --ink-3: #0F1E38;

  /* 电光主色 */
  --primary: #0A5CFF;              /* V6.03 品牌主色「深空科技蓝」，白底 5.25:1 AA 达标（原 #0A5CFF 4.19） */
  --primary-2: #0847C6;            /* hover 深蓝；白字 7.7:1（原 #0847C6） */
  /* V6.03 主色合并：#0A5CFF 白底 5.25:1，文字/背景/描边统一用一个主色（原双令牌 #0A5CFF/#0847C6 退役） */
  --primary-text: #0A5CFF;     /* 白底 5.25 / bg-soft 4.93（对齐品牌色板，仍 AA） */
  --cyan: #00D0FF;
  --cyan-deep: #0891B2;
  --grad: linear-gradient(135deg, #0A5CFF 0%, #00C8FF 100%);
  /* V6.03 点缀色「活力橙」：仅用于 CTA 按钮（橙底必须配深字，白字 2.6:1 不达 AA）与数据高亮 */
  --cta: #FF7A1A;
  --cta-hover: #E96A0C;
  --cta-ink: #1A1A1A;
  --grad-soft: linear-gradient(135deg, rgba(10,92,255,.12), rgba(0,200,255,.12));

  /* 浅色内容区 */
  --text: #1A1A1A;                 /* V6.03 对齐色板中性阶「正文」 */
  --text-body: #3E5170;
  --text-muted: #4A5E7E;       /* WCAG AA：白底 6.57:1 / 浅底(--bg-soft) 6.1:1（V5.31 压深：原 #5C7193 4.95:1 擦线过、无余量；再前 #7C8FAD 3.29 不合格） */
  --bg: #ffffff;
  --bg-soft: #F5F7FA;              /* V6.03 对齐色板蓝灰一阶 */
  --border: #E5EAF0;               /* V6.03 对齐色板蓝灰二阶 */
  --border-dark: rgba(255,255,255,.08);

  /* 旧语义变量兼容 */
  --primary-dark: var(--primary-2);
  --primary-light: #D6E4FF;
  --primary-soft: #EEF4FF;
  --slate-100: #F1F5F9; --slate-200: #E2E8F0; --slate-300: #CBD5E1;
  --slate-400: #94A3B8; --slate-500: #64748B; --slate-600: #475569;
  --slate-700: #334155; --slate-800: #1E293B; --slate-900: #0F172A;
  --green-600: #16A34A; --red-600: #DC2626;

  /* 悬空变量修复（2026-10-25）：以下 7 个此前被引用但从未定义，全部走 fallback 或
     回退初始值，造成真实视觉缺陷——尤其 --bg-card 令 13 处卡片背景透明、
     --shadow-sm 令阴影消失、--accent 令 landing-item strong 白底仅 2.14:1。
     此处统一挂到语义层，禁再新增未定义变量。 */
  --accent: var(--primary);        /* 白底 4.50:1（原 fallback #38bdf8 为深底色，白底 2.14:1） */
  --bg-card: var(--bg-1);          /* 卡片白底，依赖 --border 描边分隔 */
  --font-en: Inter, ui-sans-serif, system-ui;
  --shadow-sm: var(--shadow-1);
  --text-main: var(--text-body);
  --text-primary: var(--text);
  --text-secondary: var(--text-body);

  --radius: 10px;
  --radius-lg: 14px;   /* 2026-10-24 补：此前被 3 处引用但未定义，导致圆角回退为 0 */
  --radius-xl: 12px;
  --radius-2xl: 14px;
  --shadow-md: 0 6px 16px -4px rgb(10 30 80 / .08);
  --shadow-lg: 0 12px 28px -8px rgb(10 30 80 / .12);
  --shadow-xl: 0 18px 44px -12px rgb(10 30 80 / .16);
  --shadow-glow: 0 8px 26px rgb(10 92 255 / .38);


  /* ===== 设计令牌层 v1.0（2026-10-24 UI 设计师）=====
     三层：基础值 → 语义值 → 组件局部；组件类只许用语义层 */
  /* 间距 4px 基准 */
  --space-1: 4px; --space-2: 8px; --space-3: 12px; --space-4: 16px;
  --space-5: 20px; --space-6: 24px; --space-8: 32px; --space-10: 40px;
  --space-12: 48px; --space-16: 64px;
  /* 字号 9 档 + 固定行高（禁半像素） */
  --fs-xs: 12px; --lh-xs: 1.6;
  --fs-sm: 13px; --lh-sm: 1.7;
  --fs-base: 15px; --lh-base: 1.85;
  --fs-md: 16px; --lh-md: 1.75;
  --fs-lg: 18px; --lh-lg: 1.6;
  --fs-xl: 20px; --lh-xl: 1.5;
  --fs-2xl: 24px; --lh-2xl: 1.4;
  --fs-3xl: 28px; --lh-3xl: 1.35;
  --fs-4xl: 36px; --lh-4xl: 1.25;
  /* 展示级字号（2026-10-27 直连行动卡）：超出正文梯度，仅用于单点焦点 */
  --fs-label: 14px;  --lh-label: 1.5;
  --fs-hero: 52px;   --lh-hero: 1.1;    /* 核心电话号码 */
  --fs-hero-sm: 36px; --lh-hero-sm: 1.15; /* 移动端号码 */
  /* 圆角 4 档 */
  --r-xs: 6px; --r-sm: 10px; --r-md: 14px; --r-full: 999px;
  /* 阴影 3 档 + 品牌发光 */
  --shadow-1: 0 2px 8px -2px rgb(10 30 80 / .06);
  --shadow-2: 0 8px 24px -8px rgb(10 30 80 / .12);
  --shadow-3: 0 16px 40px -12px rgb(10 30 80 / .18);
  /* 悬浮大卡（2026-10-27 直连行动卡）：柔和立体感 + hover 抬升加深 */
  --shadow-float: 0 8px 32px rgb(10 30 80 / .10);
  --shadow-float-lg: 0 16px 44px rgb(10 30 80 / .20);

  /* ===== 深色科技风 · 内页 Banner 底色系统（2026-10-27 定稿 · 方案一 6 色）=====
     仅用于一级导航内页 Banner 的背景色定义，不涉及首页轮播图。
     质感参照 chinawebber.com 内页 Banner：135° 线性渐变 + 5% 噪点纹理。

     6 色系统（对比度已按 WCAG 逐项实测校准）：
       背景主色 --banner-bg      #0d1b2a  非纯黑，深空蓝
       辅色     --banner-surface #1b2e4b  面板/描边/分割线，不承载小字
       标题     --banner-title   #ffffff  压主色 17.39:1 / 压亮端 13.65:1
       次级信息 --banner-sub     #a0b4c8  压主色 8.16:1 / 压亮端 7.13:1
       CTA      --banner-cta     #ff6b35  橙色（非蓝色系）；作填充块 + 深底大字 6.13:1
       数据高亮 --banner-accent  #4cc9f0  压主色 9.05:1 / 压亮端 7.10:1

     渐变亮端 --banner-bg-end 取 #152640 而非辅色 #1b2e4b：辅色亮度 L=.02695 时
     次级文字仅 6.40:1 跌破 7:1，收到 #152640（L=.01916）为 7.13:1，且仍保留
     1.85× 亮度差的可见渐变深度；辅色 #1b2e4b 转作面板/描边用途。
     禁纯黑背景、禁蓝色系 CTA、禁非销售导向色彩（本方案无促销暖黄）。 */
  --banner-bg: #0d1b2a;
  --banner-bg-end: #152640;
  --banner-surface: #1b2e4b;
  --banner-title: #ffffff;
  --banner-sub: #a0b4c8;
  --banner-cta: #ff6b35;
  --banner-accent: #4cc9f0;
  /* 噪点纹理单源（程序化 feTurbulence，非图库素材）：直连行动卡与深色 Banner 共用 */
  --tex-noise: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E");
  /* 文字 / 背景 / 描边 语义 */
  --text-1: var(--text); --text-2: var(--text-body); --text-3: var(--text-muted);
  --bg-1: #FFFFFF; --bg-2: var(--bg-soft); --bg-3: #EDF2FA;
  --border-1: var(--border); --border-2: #CFDCEA;
  --on-dark: #FFFFFF;
  /* 深色底文字 3 档（2026-10-25）：对比度按「半透明导航在最不利情形（叠白正文）」核算 */
  --on-dark-2: #9FB4D6;                  /* 次级文字/链接（面包屑）4.94:1 */
  --on-dark-3: rgba(255,255,255,.45);    /* 分隔符/极弱元素 3.51:1（原 .30 仅 2.38:1 不可辨） */
  --on-dark-brand: #8FB6FF;              /* 深底上的品牌色文字 8.56:1（品牌蓝 #0A5CFF 在深底仅 3.94:1，不可作文字） */
  --radius-3xl: 20px;                   /* 2026-10-27 大浮层卡片圆角（直连行动卡，用户指定 16-24px） */
  /* 状态色 */
  --success: #16A34A; --success-bg: #EAF7EE;
  --warning: #D97706; --warning-bg: #FDF3E3;
  --info: #0891B2; --info-bg: #E6F6FA;
  --danger: #DC2626; --danger-bg: #FDECEC;

  /* 2026-10-29 红线01：导航桌面定高 100px（参考视口 1920），移动 ≤768 维持 60px；
     面包屑移出导航栏成为独立浅色条（吸顶于导航下方，top = --nav-h），移动端整条隐藏。
     --header-h 仍 = 导航 + 面包屑（吸顶占位合计，供 scroll-margin / 二级导航锚定）。 */
  --nav-h: 155px;            /* V6.03 红线01 调整（用户拍板）：两层导航总高 155 = 上区100(logo/定位/电话/搜索) + 下区55(一级导航)；移动 ≤768 仍 60px 单层 */
  --crumb-h: 40px;           /* 面包屑条高度（独立浅条，桌面 40） */
  --header-h: calc(var(--nav-h) + var(--crumb-h)); /* 吸顶合计（导航 + 面包屑条） */

  /* 全站容器：锁 max-width 1300px，左右 padding 一律 0（V1.24 用户定：
     任何屏幕按 1300 设计、内容满宽无缩进）。≥1300 时容器 1300 居中(两侧留白自动)，
     <1300 时容器满宽(=屏幕宽)。单源落本文件 .container，任何区域不得另设左右内边距。 */
  --pad-xl: 0px;             /* ≥1440px（基准 1920）：内容满宽 1300 */
  --pad-lg: 0px;             /* 1280–1439px：同上，无缩进 */
  --pad-md: 0px;             /* 1024–1279px：同上 */
  --pad-sm: 0px;             /* 768–1023px：同上 */
  --pad-xs: 0px;             /* ≤767px：同上（移动端亦无缩进，V1.24 推翻 V1.20 xs=20 定稿） */
  /* 按钮高度 3 档（2026-10-25）：此前实测散落 37/40/45/46/50 五种，
     由 padding+font-size+line-height 各自算出，无法统一控制。
     改为显式 min-height 锁档：小 36 / 中 44 / 大 48。 */
  --btn-h-sm: 36px;
  --btn-h-md: 44px;
  --btn-h-lg: 48px;
}

* { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, "PingFang SC", "Microsoft YaHei", "Segoe UI", sans-serif;
  color: var(--text-body);
  background: var(--bg);
  font-size: 15px;
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
}
a { color: inherit; text-decoration: none; transition: color .2s; }
img { max-width: 100%; display: block; }
ul, ol { list-style: none; }
button { font-family: inherit; cursor: pointer; }
input, select, textarea { font-family: inherit; font-size: 14px; }
h1, h2, h3, h4 { color: var(--text); line-height: 1.35; letter-spacing: .2px; }

/* 全站内容容器（2026-10-28 设计01）：max-width 1300px 锁定 + 五档留白阶梯。
   阶梯只在此处定义（单源）——导航/面包屑/Banner/H1/速览/正文全部经 .container 继承，
   任何区域不得另写左右 padding（防止左缘错位）。 */
.container { max-width: 1300px; margin: 0 auto; padding: 0 var(--pad-xl); }
@media (max-width: 1439px) { .container { padding: 0 var(--pad-lg); } }
@media (max-width: 1279px) { .container { padding: 0 var(--pad-md); } }
@media (max-width: 1023px) { .container { padding: 0 var(--pad-sm); } }
@media (max-width: 767px)  { .container { padding: 0 var(--pad-xs); } }

/* ============================================================
   顶部导航：深空毛玻璃吸顶（全站页面顶部均为深色区）
   ============================================================ */
.site-header {
  position: sticky; top: 0; z-index: 100;
  /* 2026-10-27：由半透明改不透明。原 rgba(5,10,20,.78) 是建立在「全站页面顶部均为
     深色区」这一前提上的（顶部铺深色大图 banner）；大图 banner 取消、Page Header 改
     浅色渐变后，半透明深底压在近白底上被冲成浑浊灰（实测 rgb(60,64,68)），既失去深空
     质感也显得"透明"。故首屏态也取不透明深空底。
     2026-10-30 V1.32：首页 light-top 透明态退役——全站导航统一不透明深空 #0B1F3A，
     消除「首页白色导航 / 内页深色导航」的不一致与滚动切换跳变。 */
  background: #0B1F3A;
  box-shadow: inset 0 -1px 0 var(--border-dark); /* V6.03-fix：底边改内描边，不占高度，导航总高精确 155px */
  transition: box-shadow .25s ease, border-color .25s ease;
}
/* 滚动后进入「悬浮」态：抬升阴影 + 电光下边框，明确漂浮于内容之上，
   长页面任意位置浏览时导航始终清晰可辨、可一键跳转（政企客户体验优化） */
.site-header.scrolled {
  background: #0B1F3A;
  box-shadow: 0 12px 34px rgb(0 0 0 / .5), inset 0 -1px 0 var(--border-dark);
}
/* V6.03 两层头部（红线01 调整，用户拍板）：上区 100px（logo/定位语/电话/搜索）+ 下区 55px（一级导航）= 155px；
   ≤768 隐藏上区，维持 60px 单层（移动红线不变）。下拉面板锚定 .header-inner 不受影响。 */
.header-top { background: #0B1F3A; box-shadow: inset 0 -1px 0 var(--border-dark); } /* V6.05：上区与下区统一品牌深蓝 #0B1F3A（原 #0B1526 略深，与 .site-header 对齐） */
.header-top-inner { display: flex; align-items: center; gap: 18px; height: 100px; }
.header-top .logo { flex-direction: row; align-items: center; gap: 12px; }
.header-top .logo-mark { height: 56px; } /* V6.04 借鉴 V2：放大 logo 方块增强品牌冲击（资产本就是 64 圆角蓝方块） */
.header-top .ht-brand { display: flex; flex-direction: column; justify-content: center; gap: 10px; line-height: 1.1; }
.header-top .logo-text { display: flex; align-items: baseline; gap: 3px; margin: 0; }
.header-top .brand-hb { font-size: 30px; font-weight: 800; letter-spacing: 1px; color: #fff; } /* V6.05：汉字「慧博」作大字标 */
.header-top .brand-zn { font-size: 30px; font-weight: 800; letter-spacing: 1px; color: #fff; }
.header-top .ht-tagline { font-size: 12px; color: #85B7EB; letter-spacing: .4px; white-space: nowrap; } /* V6.05：一句话介绍置于品牌名下方（竖向堆叠） */
.ht-tools { margin-left: auto; display: flex; align-items: center; gap: 28px; }
.ht-phone-wrap { display: flex; flex-direction: column; align-items: flex-end; line-height: 1.25; white-space: nowrap; }
.ht-phone-label { font-size: 12px; color: #85B7EB; letter-spacing: .4px; }
.ht-phone { font-size: 30px; font-weight: 800; color: #fff; text-decoration: none; letter-spacing: .5px; }
.ht-phone:hover { color: var(--primary-light); }
/* V6.05：半透明玻璃搜索框（单段式，非白底蓝钮两段式），深蓝上区更融、更 modern */
.ht-search { position: relative; display: flex; align-items: center; background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.28); border-radius: 22px; height: 40px; overflow: hidden; transition: background .2s ease, border-color .2s ease, box-shadow .2s ease; }
/* 悬停/聚焦：玻璃提亮 + 科技蓝外发光（主色单令牌 #0A5CFF） */
.ht-search:hover, .ht-search:focus-within { background: rgba(255,255,255,.18); border-color: rgba(255,255,255,.45); box-shadow: 0 0 0 4px rgba(10,92,255,.22); }
.ht-search-input { flex: 1; width: 230px; height: 100%; padding: 0 16px; font-size: 14px; color: #fff; background: transparent; border: 0; border-radius: 0; outline: none; transition: width .25s ease; }
.ht-search-input::placeholder { color: rgba(255,255,255,.7); }
.ht-search-input:focus { width: 290px; box-shadow: inset 0 0 0 2px rgba(10,92,255,.3); }
.ht-search-btn { position: static; flex-shrink: 0; width: auto; height: 100%; padding: 0 16px; display: flex; align-items: center; justify-content: center; background: transparent; border: 0; color: rgba(255,255,255,.85); cursor: pointer; }
.ht-search-btn:hover { color: #fff; }
.ht-search-btn svg { width: 16px; height: 16px; display: block; transition: transform .2s ease; }
/* 悬停/聚焦时放大镜向右轻移，呼应“展开”动作（丝滑微交互） */
.ht-search:hover .ht-search-btn svg { transform: translateX(2px); }
.ht-search:focus-within .ht-search-btn svg { transform: translateX(3px); }
.search-drop { position: absolute; top: 48px; right: 0; width: 360px; max-height: 400px; overflow: auto; background: #fff; border: 1px solid var(--border); border-radius: var(--radius-lg); box-shadow: 0 18px 40px rgba(15,40,90,.18); z-index: 300; padding: 6px; }
.sd-item { display: block; padding: 8px 10px; border-radius: 8px; text-decoration: none; }
.sd-item:hover { background: var(--primary-soft); }
.sd-t { display: block; font-size: 13px; font-weight: 600; color: var(--text); line-height: 1.4; }
.sd-u { display: block; font-size: 12px; color: var(--text-muted); margin-top: 2px; }
.sd-empty { padding: 12px 10px; font-size: 13px; color: var(--text-muted); }
@media (max-width: 1180px) { .header-top .brand-hb { font-size: 24px; } .header-top .brand-zn { font-size: 24px; } .header-top .ht-phone { font-size: 24px; } }
@media (max-width: 1024px) { .ht-search-input { width: 170px; } .ht-phone-label { display: none; } .header-top .ht-tagline { display: none; } }
@media (max-width: 768px) { .header-top { display: none; } }
.header-inner { display: flex; align-items: center; justify-content: space-between; height: 55px; gap: 24px; position: relative; } /* V6.03 下区 55px（总高 100+55=155） */

/* Logo：慧博智能标识 + 中文名 作为整体视觉重心（上图下文、垂直居中）
   图形高度取导航栏 72px 的 ~2/3 = 48px（2026-10-28 设计01：导航 100→72 降档同步缩标） */
.logo { display: flex; flex-direction: column; align-items: center; gap: 0; flex-shrink: 0; }
.logo-mark {
  width: auto; height: 48px; border-radius: 10px;
  background: var(--grad);
  display: flex; align-items: center; justify-content: center;
  color: #fff; font-size: 28px; font-weight: 800; overflow: hidden;
  box-shadow: 0 0 0 1px rgba(255,255,255,.14) inset, 0 6px 18px rgb(10 92 255 / .45);
}
.logo-mark img { width: auto; height: 100%; max-width: 240px; object-fit: contain; }
.logo-mark.has-img { background: #fff; box-shadow: none; }
.logo-text {
  font-size: 13px; font-weight: 700; color: #fff;
  letter-spacing: 5px; text-align: center; line-height: 1; margin-top: 12px;
}

/* .nav 保持 static：三大 mega 下拉(li:has>.wide 时 li 也 static)以此为通道，
   锚定到 .header-inner（内容区全宽），left:50% 即内容区中心——四个下拉与页面栅格对齐 */
.nav { position: static; }
/* 三个宽面板(产品/方案/案例)的 li 改 static，使其 .dropdown 跳过 li 直接锚定 .header-inner；
   关于我们(288px 窄面板)的 li 保持 relative，仍以触发词居中。
   :has() 不支持时自动回退为旧行为(以触发词居中)，安全降级 */
.nav-list > li:has(> .dropdown.wide),
.nav-list > li:has(> .dropdown.case-mega) { position: static; }
.nav-list { display: flex; align-items: center; gap: 4px; list-style: none; margin: 0; padding: 0; }
.nav-list > li { position: relative; list-style: none; margin: 0; padding: 0; }
.nav .nav-link {
  display: flex; align-items: center; gap: 5px;
  padding: 9px 15px; border-radius: 10px;
  font-size: 15px; font-weight: 500; color: #C6D6EF;
  transition: all .2s; cursor: pointer;
}
.nav .nav-link:hover { color: #fff; background: rgba(10,92,255,.16); }
/* V6.04 借鉴 V2：当前导航项加 3px 橙下划线（inset 不占高度，守住 55px 红线）+ 微亮底，把点缀橙引入导航 */
.nav .nav-link.active { color: #fff; background: rgba(255,255,255,.08); box-shadow: inset 0 -3px 0 var(--cta); font-weight: 600; }
.nav .nav-link .caret { font-size: 10px; color: #6E88B0; transition: transform .2s; }
.nav-list > li:hover .caret { transform: rotate(180deg); }
/* 顶级「产品中心」改为不可导航的纯展开触发器（button），重置 UA 按钮样式 */
.nav button.nav-link { background: none; border: none; font-family: inherit; -webkit-appearance: none; appearance: none; }

/* 导航右侧 CTA（V6.03 换橙底深字，与全站 CTA 一致） */
.nav-cta {
  margin-left: 12px; padding: 9px 24px !important;
  background: var(--cta); color: var(--cta-ink) !important; font-weight: 600;
  border-radius: 10px !important; box-shadow: 0 6px 18px rgb(255 122 26 / .4);
  transition: all .25s !important;
  position: relative; z-index: 2;
}
.nav-cta:hover { transform: translateY(-1px); box-shadow: 0 10px 26px rgb(255 122 26 / .55) !important; background: var(--cta-hover); color: var(--cta-ink) !important; }

/* 下拉菜单：白底简洁面板（关于我们单列；产品/解决方案/案例由 mega 变体扩展） */
.dropdown {
  position: absolute; top: calc(100% + 16px); left: 50%;
  transform: translateX(-50%) translateY(10px);
  background: #fff;
  border: 1px solid var(--border); border-radius: 14px;
  box-shadow: var(--shadow-3); padding: 12px; min-width: 240px;
  opacity: 0; visibility: hidden; transition: opacity .25s, visibility .25s, transform .25s;
  display: grid; grid-template-columns: minmax(0, 1fr); gap: 2px;
  z-index: 200;
}
/* hover 桥接：盖住导航栏与下拉框之间的 16px 间隙，防止鼠标滑过时下拉断触消失 */
.dropdown::before { content: ''; position: absolute; top: -17px; left: -20px; right: -20px; height: 17px; }
.dropdown.wide {
  min-width: 480px; max-width: 560px;
  background: #fff; border: 1px solid var(--border); border-radius: 14px;
  box-shadow: var(--shadow-3); padding: 16px;
  display: grid; grid-template-columns: 1fr 1fr; gap: 8px;
  left: 50%; transform: translateX(-50%) translateY(10px);
}
.nav-list > li:hover .dropdown,
.nav-list > li:focus-within .dropdown { opacity: 1; visibility: visible; transform: translateX(-50%) translateY(0); }
/* 点击展开态（2026-10-13：产品中心为 <button> 触发器，补点击/触屏路径，与 hover 等价） */
.nav-list > li.open .dropdown { opacity: 1; visibility: visible; transform: translateX(-50%) translateY(0); }
.nav-list > li.open .caret { transform: rotate(180deg); }
.dropdown a {
  display: block; padding: 9px 12px; border-radius: 10px;
  font-size: 14px; color: #4B5A70; transition: all .15s; white-space: nowrap;
}
.dropdown a:hover { background: var(--bg-soft); color: var(--primary-text); }

/* 产品中心：4 列 mega 下拉（列头=大类可点击链接直跳 Hub，列项=品类清单；复用 .dropdown 居中悬停机制）
   注意：选择器必须带 .dropdown.wide 前缀（0,3,0），否则被 .dropdown.wide 的
   grid 2 列 / min-width:480px / max-width:560px（0,2,0）压住 */
.dropdown.wide.prod-mega {
  width: min(1248px, calc(100vw - 52px)); min-width: 0; max-width: none;
  grid-template-columns: repeat(4, 1fr); gap: 12px 24px;
  padding: 24px 24px 24px; align-items: start;
}
.dropdown.wide.prod-mega > li { list-style: none; margin: 0; padding: 0; min-width: 0; }
/* 列头为大类 <a>：hover 展开面板不变，点击直跳大类 Hub；保留下划线式标题观感，不随 .dropdown a:hover 出背景 */
.dropdown.wide.prod-mega .pm-head {
  display: flex; align-items: center; gap: 8px; padding: 4px 8px 12px; margin-bottom: 8px;
  font-size: 15px; font-weight: 700; color: var(--text); text-decoration: none;
  border-bottom: 2px solid var(--border); white-space: nowrap;
  transition: color .2s, border-color .2s;
}
.pm-head .pm-ico { width: 20px; height: 20px; flex: none; color: var(--primary-text); }
.pm-head .pm-ico svg { width: 100%; height: 100%; display: block; }
.dropdown.wide.prod-mega .pm-head:hover { color: var(--primary-text); border-bottom-color: var(--primary-text); background: transparent; }
.dropdown.wide.prod-mega .pm-col ul { list-style: none; margin: 0; padding: 0; }
.dropdown.wide.prod-mega .pm-col ul li a {
  display: block; padding: 12px 8px; font-size: 13px; color: #5A6B80;
  white-space: nowrap; list-style: none; border-radius: 6px; transition: color .2s, background .2s;
}
.dropdown.wide.prod-mega .pm-col ul li a:hover { color: var(--primary-text); background: var(--bg-soft); }
/* V2.10：下拉无链接子项（display 品牌树布局），视觉对齐链接项、无手型与 hover 变色 */
.dropdown.wide.prod-mega .pm-col ul li .pm-plain {
  display: block; padding: 12px 8px; font-size: 13px; color: #5A6B80;
  white-space: nowrap; list-style: none; cursor: default;
}

/* 案例展示下拉：16 行业 4×4（图标 + 文字，与解决方案下拉风格一致；hover 浅蓝底 + 品牌蓝字） */
.dropdown.case-mega {
  width: min(1248px, calc(100vw - 52px)); min-width: 0; max-width: none;
  grid-template-columns: repeat(4, 1fr); gap: 8px 12px;
  padding: 20px 24px; align-content: start;
  background: #fff; border: 1px solid var(--border); border-radius: 14px;
  box-shadow: var(--shadow-3);
}
.case-mega > li.ci-item { margin: 0; padding: 0; min-width: 0; }
.case-mega > li.ci-item > a {
  display: flex; align-items: center; gap: 12px;
  padding: 12px 12px; border-radius: 10px; background: transparent;
  font-size: 14px; font-weight: 500; color: #4B5A70; white-space: nowrap;
  transition: background .15s, color .15s;
}
.case-mega > li.ci-item > a:hover { background: #F3F7FF; color: var(--primary-text); }
.ci-ico { width: 24px; height: 24px; flex: none; color: var(--primary-text); transition: color .2s; }
.ci-ico svg { width: 100%; height: 100%; display: block; }

/* 解决方案下拉：12 系统 4×3（图标+文字，hover 同变品牌蓝） */
.dropdown.case-mega.sol-mega {
  width: min(1248px, calc(100vw - 52px)); min-width: 0; max-width: none;
  grid-template-columns: repeat(4, 1fr);
  gap: 8px 12px;
}
.sol-mega > li > a {
  display: flex; align-items: center; gap: 12px;
  padding: 12px 12px; border-radius: 10px; background: transparent;
}
.sol-mega > li > a:hover { background: #F3F7FF; }
.sol-ico { width: 24px; height: 24px; flex: none; color: var(--primary-text); transition: color .2s; }
.sol-ico svg { width: 100%; height: 100%; display: block; }
.sol-mega > li > a:hover { color: var(--primary-text); }
.sol-mega > li > a:hover .sol-ico { color: var(--primary-text); }

/* 关于我们下拉：定宽 280px 左图标右文横排卡片 */
.dropdown.about-drop { min-width: 280px; width: 288px; padding: 8px 0; gap: 0; }
.about-drop > li + li { border-top: 1px solid var(--border); }
.about-drop .ab-item {
  display: flex; align-items: center; gap: 12px;
  padding: 12px 20px; border-radius: 0; background: transparent;
  transition: background .2s;
}
.ab-ico {
  width: 36px; height: 36px; flex: none; border-radius: 10px;
  background: #F3F7FF; color: var(--primary-text);
  display: flex; align-items: center; justify-content: center;
  transition: background .2s;
}
.ab-ico svg { width: 20px; height: 20px; display: block; }
.ab-txt { display: flex; flex-direction: column; min-width: 0; }
.ab-txt strong { font-size: 14px; font-weight: 600; color: var(--text); transition: color .2s; }
.ab-txt small { font-size: 12px; color: #52678A; margin-top: 2px; min-width: 0; max-width: 100%; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.about-drop .ab-item:hover { background: #F8FAFF; }
.about-drop .ab-item:hover strong { color: var(--primary-text); }

/* 案例二级页（/case/）：TAB 筛选 + 静态卡片 + 行业索引 */
.case-tabs { display: flex; flex-wrap: wrap; gap: 12px; margin: 0 0 28px; padding: 0; list-style: none; }
.case-tabs .ctab {
  display: inline-block; padding: 8px 20px; border-radius: 999px; text-decoration: none;
  font-size: 14px; color: var(--text-body); background: var(--bg-soft);
  border: 1px solid var(--border); cursor: pointer; user-select: none;
}
.case-tabs .ctab:hover { color: var(--primary-text); border-color: var(--primary-text); }
.case-tabs .ctab.on { background: var(--primary); border-color: var(--primary-text); color: #fff; }
/* 案例页居中搜索 + 16 行业标签矩阵（8×2，2026-10-03 需求书落地） */
.case-search { position: relative; max-width: 720px; margin: 0 auto 24px; }
.case-search svg {
  position: absolute; left: 18px; top: 50%; transform: translateY(-50%);
  width: 20px; height: 20px; color: var(--text-muted); pointer-events: none;
}
.case-search input {
  width: 100%; padding: 16px 20px 16px 48px; border-radius: 999px;
  border: 1px solid var(--border); background: #fff; font-size: 15px; color: var(--text);
  font-family: inherit; transition: border-color .2s, box-shadow .2s;
}
.case-search input::placeholder { color: var(--text-muted); }
.case-search input:focus { outline: none; border-color: var(--primary-text); box-shadow: 0 0 0 4px rgba(10,92,255,.10); }
.case-search input::-webkit-search-cancel-button { cursor: pointer; }
.case-tags { display: grid; grid-template-columns: repeat(8, 1fr); gap: 12px; margin: 0 0 28px; padding: 0; list-style: none; }
.case-tags .industry-tag {
  display: flex; align-items: center; justify-content: center;
  padding: 12px 8px; border-radius: 999px; border: 1px solid var(--border);
  background: #fff; font-size: 13px; color: var(--text-body); text-decoration: none;
  white-space: nowrap; transition: border-color .2s, color .2s, background .2s, transform .2s;
}
.case-tags .industry-tag:hover { border-color: var(--primary-text); color: var(--primary-text); background: #F3F7FF; transform: translateY(-2px); }
.case-empty {
  text-align: center; padding: 52px 20px; margin: 0 0 8px;
  background: var(--bg-soft); border: 1px dashed var(--border); border-radius: 14px;
}
.case-empty h3 { font-size: 18px; margin: 0 0 8px; color: var(--text); }
.case-empty p { color: var(--text-muted); font-size: 14px; margin: 0 0 20px; }
@media (max-width: 1024px) { .case-tags { grid-template-columns: repeat(4, 1fr); } }
@media (max-width: 768px) {
  .case-tags { grid-template-columns: repeat(2, 1fr); }
  .case-search input { font-size: 14px; padding: 12px 16px 12px 44px; }
}
.case-cards { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; margin: 0; padding: 0; list-style: none; }
.case-card-empty {
  grid-column: 1 / -1; text-align: center; padding: 48px 20px;
  background: var(--bg-soft); border: 1px dashed var(--border); border-radius: 14px;
}
.case-ind-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin: 0; padding: 0; list-style: none; }
.case-ind-grid .ci-item { margin: 0; }
.case-ind-grid a {
  display: flex; align-items: center; gap: 12px;
  padding: 16px 20px; border: 1px solid var(--border); border-radius: 10px;
  background: #fff; box-shadow: 0 2px 10px rgba(20,40,80,.05);
  text-decoration: none; color: var(--text); position: relative; overflow: hidden;
  transition: border-color .2s, box-shadow .2s, transform .2s, background .2s;
}
.case-ind-grid a:hover {
  border-color: var(--primary-text); box-shadow: 0 10px 24px rgba(10,92,255,.14);
  transform: translateY(-3px);
  background: linear-gradient(135deg, rgba(10,92,255,.12), rgba(0,200,255,.12));
}
.case-ind-grid .ci-ico {
  flex: 0 0 auto; width: 40px; height: 40px; border-radius: 10px;
  background: rgba(19,194,194,.12); color: #13C2C2;
  display: flex; align-items: center; justify-content: center;
  transition: transform .2s, background .2s;
}
.case-ind-grid a:hover .ci-ico { transform: scale(1.14); background: rgba(19,194,194,.22); }
.case-ind-grid .ci-ico svg { width: 22px; height: 22px; display: block; }
.case-ind-grid .ci-text { flex: 1 1 auto; min-width: 0; }
.case-ind-grid .ci-text h3 { margin: 0; font-size: 16px; font-weight: 700; line-height: 1.25; color: var(--text); }
.case-ind-grid .ci-hover-label {
  display: block; margin-top: 3px; font-size: 12px; color: var(--text-muted);
  max-height: 0; opacity: 0; overflow: hidden; transition: max-height .2s, opacity .2s;
}
.case-ind-grid a:hover .ci-hover-label { max-height: 20px; opacity: 1; }
.case-ind-grid .ci-badge {
  flex: 0 0 auto; font-size: 12px; color: var(--text-muted); font-weight: 600;
  white-space: nowrap; transition: color .2s;
}
.case-ind-grid .ci-badge.has { color: #13C2C2; background: rgba(19,194,194,.12); padding: 3px 9px; border-radius: 999px; }
.case-ind-grid .ci-item.has-case a { background: linear-gradient(135deg, rgba(19,194,194,.08), rgba(0,200,255,.07)); }
.sr-only { position: absolute!important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

/* 案例三级页（/case/<slug>.html）：轻量列表页 = H1 + 副标 + 卡片网格 */
.cl-intro { margin: 0 0 28px; }
.cl-intro p { color: var(--text-muted); font-size: 15px; line-height: 1.85; margin: 0 0 12px; }
.cl-link { color: var(--primary-text); font-weight: 600; text-decoration: none; }
.cl-link:hover { text-decoration: underline; }

.cl-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; margin: 0; padding: 0; list-style: none; }
.cl-card {
  display: flex; flex-direction: column; overflow: hidden;
  background: #fff; border: 1px solid var(--border); border-radius: 14px;
  transition: border-color .2s, box-shadow .2s, transform .2s;
}
.cl-card:hover { border-color: var(--primary-text); box-shadow: 0 12px 30px rgba(10,92,255,.12); transform: translateY(-4px); }
.cl-cover {
  min-height: 92px; padding: 20px 20px; display: flex; align-items: flex-end;
  background: linear-gradient(135deg, rgba(10,92,255,.10), rgba(0,200,255,.10));
  color: #1c3f8f; font-size: 15px; font-weight: 700; letter-spacing: .3px;
}
/* 有配图的封面：整幅缩略图（场景示意图 SVG，object-fit 适配卡片宽高比） */
.cl-cover:has(img) { padding: 0; align-items: stretch; background: #0A1526; }
.cl-cover img { width: 100%; height: 148px; object-fit: cover; display: block; }
.cl-body { padding: 20px 20px 20px; display: flex; flex-direction: column; flex: 1 1 auto; }
.cl-tag {
  align-self: flex-start; margin-bottom: 12px; padding: 3px 12px; border-radius: 999px;
  background: rgba(19,194,194,.12); color: #13C2C2; font-size: 12px; font-weight: 600;
}
.cl-tag.loc { background: var(--bg-soft); color: var(--text-body); }
.cl-body h3 { margin: 0 0 8px; font-size: 16px; font-weight: 700; line-height: 1.4; }
.cl-body h3 a { color: var(--text); text-decoration: none; }
.cl-body h3 a:hover { color: var(--primary-text); }
.cl-body p { margin: 0 0 16px; color: var(--text-muted); font-size: 13px; line-height: 1.7; flex: 1 1 auto; }
.cl-more { font-size: 13px; font-weight: 600; color: var(--primary-text); text-decoration: none; }
.cl-more:hover { text-decoration: underline; }
.cl-empty { margin-top: 4px; }
.cl-empty h3 { font-size: 18px; margin: 0 0 12px; color: var(--text); }
.cl-empty p { color: var(--text-muted); font-size: 14px; margin: 0 0 12px; }
.cl-empty .cl-link { display: inline-block; }

/* 网格列数响应式（2026-10-25 重排）。级联铁律：同一选择器命中多个断点时，
   断点值更小（更小屏）的块必须排在文件更后方，否则被大屏规则覆盖。
   顺序：1024 → 768 → 540（与断点降序一致） */
@media (max-width: 1024px) {
  /* 案例列表网格：1024 起 2 列。此前同一断点存在 3 列与 2 列两条同选择器规则，
     后者覆盖前者，等于 3 列从未生效 */
  .cl-grid { grid-template-columns: repeat(2, 1fr); }
  /* 行业网格自适应（溢出修复）：16 行业卡含图标+标题+「N 个参考案例」徽章，
     最小内容宽约 211px；769–1024 区间原为 4 列（每列约 200px）→ 横向溢出 17px */
  .case-ind-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 768px) {
  .case-cards, .case-ind-grid { grid-template-columns: 1fr 1fr; }
}
/* 窄屏单列：390/360px 两列每列仅约 150px，远小于卡片最小内容宽 211px，必溢出 */
@media (max-width: 540px) {
  .cl-grid { grid-template-columns: 1fr; }
  .case-ind-grid { grid-template-columns: 1fr; }
}

/* 移动端 */
.nav-toggle { display: none; background: none; border: 0; font-size: 22px; color: #E4EDFB; padding: 8px; }
.nav-toggle svg { width: 22px; height: 22px; display: block; }
.mobile-menu {
  display: none; border-top: 1px solid var(--border-dark);
  background: rgba(5, 10, 20, .98);
  padding: 8px 20px 20px; max-height: 0; overflow: hidden; transition: max-height .3s;
}
.mobile-menu.open {
  display: block;
  /* 覆盖抽屉：锚定在吸顶头部下方铺满视口，任意浏览位置点击汉堡即可唤出全站导航。
     注意：父级 .site-header 含 backdrop-filter 会形成包含块，故用 absolute（相对头部）
     而非 fixed，避免抽屉高度塌缩 */
  position: absolute; left: 0; right: 0; top: 100%;
  height: calc(100vh - var(--header-h)); overflow-y: auto;
  background: rgba(5, 10, 20, .98);
  backdrop-filter: blur(18px); -webkit-backdrop-filter: blur(18px);
  border-top: 1px solid var(--border-dark);
}
.mobile-menu a {
  display: block; padding: 12px 8px; font-size: 15px; color: #C6D6EF;
  border-bottom: 1px solid rgba(255,255,255,.05);
}
.mobile-menu a:last-child { border-bottom: 0; }
.mobile-menu a.active { color: #fff; font-weight: 600; }
/* 移动抽屉内次级链接（单列缩进，点击汉堡展开后可见） */
.mobile-menu a.mm-group { display: block; padding: 13px 8px 9px; margin-top: 6px; font-size: 15px; font-weight: 700; color: #E8F0FB; background: rgba(255,255,255,.05); border-top: 1px solid rgba(255,255,255,.12); }
.mobile-menu a.mm-group:first-of-type { margin-top: 0; border-top: 0; }
.mobile-menu a.mm-group.active { color: #fff; }
.mobile-menu a.mm-sub { padding: 9px 8px 9px 24px; font-size: 14px; color: #9FB3D1; border-bottom: 1px solid rgba(255,255,255,.04); }
/* 移动抽屉内父级标签（如「关于我们」：纯展开触发/分组标题，点击不跳转） */
.mobile-menu .mm-parent { display: block; padding: 12px 8px; font-size: 15px; color: #C6D6EF; border-bottom: 1px solid rgba(255,255,255,.05); cursor: default; font-weight: 600; }
.mobile-menu .mm-parent.active { color: #fff; }

/* ============================================================
   深空背景工具（网格纹理 + 径向辉光）
   ============================================================ */
.bg-grid {
  position: absolute; inset: 0; pointer-events: none;
  background-image:
    linear-gradient(rgba(140,180,255,.06) 1px, transparent 1px),
    linear-gradient(90deg, rgba(140,180,255,.06) 1px, transparent 1px);
  background-size: 46px 46px;
  -webkit-mask-image: radial-gradient(ellipse 90% 100% at 50% 0%, #000 40%, transparent 100%);
  mask-image: radial-gradient(ellipse 90% 100% at 50% 0%, #000 40%, transparent 100%);
}

/* ============================================================
   内页五区结构（2026-10-28 设计01 全档案定稿）：
   ① 一级导航栏 → ② 面包屑路径区 → ③ Banner 背景区域 → ④ 页面 H1 → ⑤ 速览区
   桌面/移动 DOM=视觉严格一致；两条红线：H1 不直接压真实图片层（压可控渐变遮罩允许）、
   面包屑吸顶（桌面）；移动端面包屑视觉隐藏、JSON-LD 照常输出。
   ============================================================ */

/* ---------- ② 面包屑路径区：浅色独立条，吸顶于导航栏下方 ---------- */
.inner-breadcrumb {
  position: sticky; top: var(--nav-h); z-index: 90;
  background: #f4f7fa;
  border-bottom: 1px solid rgba(13, 27, 42, .07);
  animation: ibFade .3s ease both; /* 入场：仅淡入 0.3s */
  /* 面包屑背景带：全宽铺满显示器（同导航栏整条贯通，x=0→视口宽）；
     文字由 .breadcrumb ol.container 的 margin:0 auto 居中在 1300 列内（与 H1/正文对齐）。
     V1.23 修正：撤销 V1.21 误将整条收 1300 的做法。 */
}
/* 移动端（<769px）：整条视觉隐藏。用户三条返回路（浏览器返回/系统手势/主导航）
   + 深层页 Banner 左上角 ← 返回钮兜底；JSON-LD BreadcrumbList 不随隐藏删除。 */
@media (max-width: 768px) {
  /* V5.23 移动端面包屑精简版（用户 2026-11-06 拍板）：保留「首页 › 直接父级 › 当前页」，
     隐藏中间层级（如"大屏幕显示"）；末级超长省略号。DOM 与 JSON-LD BreadcrumbList 完全不变（SEO 不受影响）。 */
  .inner-breadcrumb { display: block; --crumb-h: 32px; font-size: 12px; }
  .inner-breadcrumb .breadcrumb ol.container { flex-wrap: nowrap; gap: 4px; overflow: hidden; }
  .inner-breadcrumb .breadcrumb li:nth-child(n+3):not(:last-child) { display: none; }
  /* 前序层级不参与压缩（否则"产品中心"被挤断行）；末级可压缩并省略 */
  .inner-breadcrumb .breadcrumb li { flex: none; }
  .inner-breadcrumb .breadcrumb li:last-child { flex: 1 1 auto; min-width: 0; }
  .inner-breadcrumb .breadcrumb li:last-child span { display: block; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
}

/* V5.23 询价上下文回显条（联系页）：客户从产品页点「获取方案报价」跳来时，
   先让他看到"我咨询的是哪个产品/型号"，再往下走联系方式，减少重述与流失。 */
.ct-echo {
  display: flex; align-items: center; gap: 14px; flex-wrap: wrap;
  margin: 0 0 28px; padding: 16px 20px;
  background: var(--primary-soft); border: 1px solid var(--primary-light); border-radius: 12px;
}
.ct-echo-label { font-size: 13px; color: var(--primary-text); font-weight: 600; flex: none; }
.ct-echo-val { font-size: 15px; color: var(--text); font-weight: 600; }
.ct-echo-back { margin-left: auto; font-size: 14px; color: var(--primary-text); font-weight: 600; text-decoration: none; }
.ct-echo-back:hover { text-decoration: underline; }
@media (max-width: 768px) { .ct-echo { padding: 14px 16px; gap: 8px; } .ct-echo-back { margin-left: 0; } .ct-echo-copy { margin-left: 0; } }
.ct-echo-copy {
  margin-left: 4px; padding: 0 14px; font-size: 14px; font-weight: 700;
  color: #fff; background: var(--primary-dark); border: 1px solid var(--primary-dark);
  border-radius: 8px; cursor: pointer; min-height: 40px; line-height: 1;
}
.ct-echo-copy:hover { background: var(--primary); border-color: var(--primary); }
.ct-noscript { margin: 0 0 24px; padding: 14px 18px; font-size: 14px; line-height: 1.7;
  color: var(--text); background: var(--primary-soft); border: 1px solid var(--primary-light); border-radius: 12px; }
/* 产品页「服务与保障」全站统一块（V5.27，公司级承诺，从 data.js 读取） */
.pd-service-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; margin: 0 0 18px; }
.pd-service-item { background: var(--bg-soft, #f6f8fc); border: 1px solid var(--border, #e6ecf5); border-radius: 12px; padding: 18px 20px; }
.pd-service-item h3 { font-size: 16px; font-weight: 700; color: var(--primary-text); margin: 0 0 8px; }
.pd-service-item p { font-size: 14px; line-height: 1.7; color: var(--text); margin: 0; }
.pd-service-area { font-size: 14px; line-height: 1.7; color: var(--text); margin: 0; padding: 14px 18px;
  background: var(--primary-soft); border: 1px solid var(--primary-light); border-radius: 12px; }
@media (max-width: 768px) { .pd-service-grid { grid-template-columns: 1fr; } }

/* ---------- ③ Banner 背景区域 + ④ H1（压渐变遮罩层，不压真实图片层） ---------- */
.inner-banner {
  position: relative; overflow: hidden;
  height: 200px;                         /* 红线02 用户定稿：桌面 200（参考视口 1920），移动端另见 240px */
  margin-bottom: 40px;                   /* 与速览区间距 40px */
  background: var(--ib-primary);         /* 渐变层不可用时兜底 */
  color: #fff;
  animation: ibFade .45s ease both;
}
/* 配色分组（设计01 定稿）：产品/关于 一组；新闻/解决方案/场景 一组
   （ib-cases 已随 V1.31 案例 L3 空 banner 退役删除） */
.inner-banner.ib-products, .inner-banner.ib-about,
.inner-banner.ib-contact, .inner-banner.ib-doc { --ib-primary: #0d1b2a; --ib-secondary: #1b2e4b; }
.inner-banner.ib-news, .inner-banner.ib-solutions, .inner-banner.ib-scenes { --ib-primary: #0a1628; --ib-secondary: #162a45; }
/* ① 渐变底（z0）：135° 双色 */
.inner-banner .inner-banner-bg {
  position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background: linear-gradient(135deg, var(--ib-primary), var(--ib-secondary));
}
/* 5% 程序化噪点（单源 --tex-noise，与 hub-banner 同技法） */
.inner-banner::before {
  content: ''; position: absolute; inset: 0; z-index: 0; pointer-events: none;
  opacity: .05; background: var(--tex-noise); background-size: 160px 160px;
}
/* ② 图片氛围层（z1，可选增强）：缺素材不输出本元素；有素材时 .has-banner-image 点亮。
   红线：H1 压的是渐变遮罩层，不直接压图片；图片 aria-hidden + pointer-events:none。 */
.inner-banner .inner-banner-image {
  position: absolute; right: 0; bottom: 0; z-index: 1;
  width: 50%; height: 100%;
  background-position: right bottom; background-repeat: no-repeat; background-size: contain;
  opacity: 0; transition: opacity .35s ease;
  pointer-events: none;
}
.inner-banner.has-banner-image .inner-banner-image { opacity: .25; }
/* ③ 视觉内容层（z2）：banner 纯视觉（红线04 清字后仅剩 mb-back 返回钮） */
.inner-banner .inner-banner-inner {
  position: relative; z-index: 2; height: 100%;
  display: flex; flex-direction: column; align-items: flex-start;
}

/* 移动端兜底返回钮（B1 定稿）：仅层级≥3 页输出，≤768 显示，44×44 热区 */
.mb-back {
  position: absolute; top: 12px; left: 16px; z-index: 3;
  display: none; align-items: center; justify-content: center;
  width: 44px; height: 44px;
  color: rgba(255,255,255,.85); font-size: 20px; line-height: 1;
  background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.18); border-radius: 10px;
}
.mb-back:hover, .mb-back:focus-visible { color: #fff; background: rgba(255,255,255,.14); }
@media (max-width: 768px) { .mb-back { display: inline-flex; } }
/* hero-clean 自有 Banner 页的返回钮：同一组件，父级须 position:relative */
.hero-clean .mb-back { color: rgba(255,255,255,.85); }
/* V1.28：产品详情页返回钮迁至白卡左上角（无 banner），浅色变体 */
.pd-intro-card { position: relative; }
.pd-intro-card .mb-back { color: var(--text-muted); background: var(--bg-soft); border-color: var(--border); top: 10px; left: 10px; }
/* V1.30：案例 L2 返回钮迁至标题块（无 banner），随流布局置于 H1 之上、浅色变体 */
.page-title-block .mb-back {
  position: static; margin: 0 0 6px;
  color: var(--text-muted); background: var(--bg-soft); border-color: var(--border);
}

/* ---------- 入场动画（一次性分级淡入，纯 CSS 零 JS；禁轮播/自动切换/持续动效） ---------- */
@keyframes ibFade { from { opacity: 0; } to { opacity: 1; } }
@keyframes ibUp { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }
/* 速览卡：上移淡入 0.4s 延迟 0.2s */
.ai-gist { animation: ibUp .4s ease-out .2s both; }

/* ---------- 系统级减少动效：全部关闭 ---------- */
@media (prefers-reduced-motion: reduce) {
  .inner-breadcrumb, .inner-banner, .ai-gist { animation: none; }
  .inner-banner .inner-banner-image { transition: none; }
  .hub-banner { animation: none; }
  .hub-banner .hb-gear { transition: none; }
  .hub-banner:hover .hb-gear,
  .hub-banner:focus-within .hb-gear { transform: none; }
}

/* ---------- 正文头部（仅副标题；H1 已上移进 Banner） ---------- */
.inner-head { padding: 24px 0 4px; }
.inner-head .page-sub {
  font-size: 15px; color: var(--text-body); line-height: 1.85;
  margin: 0; /* 摘要通栏：继承 .container 阶梯内容宽（1300 - 双侧 padding） */
  text-wrap: pretty;
}
@media (max-width: 768px) {
  .inner-head { padding: 18px 0 2px; }
  .inner-head .page-sub { font-size: 14px; }
}

/* ---------- Banner 移动端（设计01 定稿）：240px 单色降级，H1 28px，只留淡入 ---------- */
@media (max-width: 768px) {
  .inner-banner { height: 240px; margin-bottom: 24px; background: var(--ib-primary); }
  .inner-banner .inner-banner-bg { background: none; }
  .inner-banner::before { display: none; }            /* 噪点取消（单色降级） */
  .inner-banner .inner-banner-image { display: none; } /* 图片层隐藏（用户定稿二选一取隐藏） */
  .ai-gist { animation-name: ibFade; }
}

/* ---------- 红线03：全层级 H1 统一移至 banner 下方内容区顶部 ---------- */
/* inner-banner 原 40px margin 收回，间距由 .page-title-block 接管 */
.inner-banner { margin-bottom: 0; }
/* H1 下移容器：保留 .container 横向 padding 阶梯，仅覆写上下 */
.page-title-block { padding-top: 30px; padding-bottom: 4px; }
/* V1.39：H1 副题（产品中心等 hub 页标题区一行说明，替代已删的 pc-intro 说明段） */
.page-title-block .page-sub {
  font-size: 16px; font-weight: 400; color: var(--text-muted);
  margin: 10px 0 0; letter-spacing: .3px;
}
/* 下移后的 H1：深字（用 h1. 提升特异性压过 .case-hero/.hub-banner 深底白字规则） */
.page-title-block h1.page-h1,
.page-title-block h1.pd-name,
.page-title-block h1.hb-h1 {
  color: var(--text); font-size: 34px; font-weight: 600; line-height: 1.25;
  margin: 0; letter-spacing: .5px; text-wrap: pretty;
}
@media (max-width: 768px) {
  .page-title-block { padding-top: 22px; padding-bottom: 2px; }
  .page-title-block h1.page-h1,
  .page-title-block h1.pd-name,
  .page-title-block h1.hb-h1 { font-size: 24px; }
}

/* ---------- 信号链路图（装饰图形 aria-hidden + 可见文字标签） ---------- */
.sig-flow { display: flex; flex-wrap: wrap; align-items: stretch; gap: 0 10px; margin-top: 8px; }
.sig-node {
  flex: 1 1 160px; min-width: 150px;
  display: flex; flex-direction: column; gap: 6px;
  padding: 18px 16px;
  background: var(--bg-card); border: 1px solid var(--border); border-radius: 14px;
}
.sig-idx {
  font-size: 13px; font-weight: 700; color: var(--primary-text);
  width: 26px; height: 26px; line-height: 26px; text-align: center;
  background: var(--bg-soft); border-radius: 8px;
}
.sig-name { font-size: 16px; font-weight: 700; color: var(--text); }
.sig-note { font-size: 13px; color: var(--text-muted); line-height: 1.7; }
.sig-arrow { align-self: center; font-size: 22px; color: var(--text-muted); flex: 0 0 auto; }
@media (max-width: 768px) {
  .sig-arrow { display: none; }
  .sig-node { flex: 1 1 100%; }
}

/* ---------- 选型指引表 ---------- */
.sg-wrap { margin-top: 8px; overflow-x: auto; }
.sg-table { width: 100%; border-collapse: collapse; font-size: 14px; min-width: 640px; }
.sg-table th, .sg-table td {
  padding: 13px 14px; text-align: left; border-bottom: 1px solid var(--border); vertical-align: top;
}
.sg-table thead th { background: var(--bg-soft); color: var(--text); font-weight: 700; white-space: nowrap; }
.sg-table tbody tr:hover { background: var(--bg-soft); }
.sg-table td:first-child { font-weight: 600; color: var(--text); }

/* ---------- 配套产品与系统（交叉链接 · GEO 内链） ---------- */
.rel-h { font-size: 16px; font-weight: 700; color: var(--text); margin: 22px 0 12px; }
.rel-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.rel-card {
  display: flex; flex-direction: column; gap: 8px;
  padding: 18px 18px;
  background: var(--bg-card); border: 1px solid var(--border); border-radius: 14px;
  text-decoration: none; transition: border-color .2s, transform .2s, box-shadow .2s;
}
.rel-card:hover {
  border-color: var(--primary-text); transform: translateY(-3px);
  box-shadow: 0 8px 24px rgba(10,92,255,.10);
}
.rel-name { font-size: 16px; font-weight: 700; color: var(--text); }
.rel-tag { font-size: 12px; color: var(--text-muted); }
@media (max-width: 768px) { .rel-grid { grid-template-columns: 1fr 1fr; } }

/* ============================================================
   深色科技风 · 内页 Banner（2026-10-27 定稿 · 方案一 6 色）
   适用范围：一级导航内页 Banner 的背景色定义。
   不涉及首页轮播图（首页轮播 .hero 走自有浅色体系，两套互不干扰）。
   质感：135° 线性渐变 + 5% 程序化噪点纹理；所有文字收进 1200×300 安全区。
   对比度（实测）：标题 13.65–17.39:1、次级 7.13–8.16:1、数据高亮 7.10–9.05:1，
   CTA 作填充块 + 深底大字 6.13:1（WCAG AA 大字门槛 3:1 达标）。
   ============================================================ */
.banner-dark {
  position: relative; overflow: hidden;
  background: linear-gradient(135deg, var(--banner-bg) 0%, var(--banner-bg-end) 100%);
  color: var(--banner-title);
}
/* 5% 噪点纹理：让大面积深色不发闷（非图库素材，程序化生成） */
.banner-dark::before {
  content: ''; position: absolute; inset: 0; pointer-events: none;
  opacity: .05; background-image: var(--tex-noise);
}
.banner-dark > * { position: relative; z-index: 1; }

/* 1200×300 安全区：文字与交互全部收进这一块，两侧留白由 .banner-dark 背景填满 */
.banner-dark .bn-safe {
  width: 100%; max-width: 1200px; margin: 0 auto;
  min-height: 300px; padding: 40px 24px;
  display: flex; flex-direction: column; align-items: flex-start; justify-content: center;
}
.bn-kicker {
  font-size: var(--fs-sm); font-weight: 600; letter-spacing: 2px;
  color: var(--banner-accent); margin: 0 0 var(--space-3);
}
.bn-title {
  font-size: var(--fs-4xl); font-weight: 700; line-height: 1.25;
  color: var(--banner-title); margin: 0 0 var(--space-3); letter-spacing: .5px; text-wrap: pretty;
}
.bn-sub {
  font-size: var(--fs-md); line-height: 1.8; color: var(--banner-sub);
  margin: 0; max-width: 720px;
}
.bn-data { color: var(--banner-accent); font-weight: 700; white-space: nowrap; } /* 高亮短语禁止跨行拆词 */
/* CTA：橙色填充块 + 深底大字（白字仅 2.84:1，禁用） */
.bn-cta {
  display: inline-flex; align-items: center; gap: 10px;
  margin-top: var(--space-6); min-height: 48px; padding: 0 28px;
  background: var(--banner-cta); color: var(--banner-bg);
  font-size: var(--fs-lg); font-weight: 700; border-radius: var(--r-md);
  text-decoration: none; transition: filter .2s ease, transform .2s ease;
}
.bn-cta:hover { filter: brightness(1.06); transform: translateY(-1px); }
.bn-cta:focus-visible { outline: 3px solid var(--banner-accent); outline-offset: 3px; }

/* 移动端降级：单色底 + 取消渐变与噪点纹理（弱屏渲染压力与视觉噪声都减半） */
@media (max-width: 768px) {
  .banner-dark { background: var(--banner-bg); }
  .banner-dark::before { display: none; }
  .banner-dark .bn-safe { min-height: 0; padding: 28px 20px; }
  .bn-kicker { font-size: var(--fs-xs); letter-spacing: 1.5px; margin-bottom: var(--space-2); }
  .bn-title { font-size: var(--fs-2xl); margin-bottom: var(--space-2); }
  .bn-sub { font-size: var(--fs-base); }
  .bn-cta { margin-top: var(--space-4); min-height: 44px; padding: 0 22px; font-size: var(--fs-base); }
}

/* ============================================================
   Hub Banner —— 一级导航栏目页深色 Banner（2026-10-27 用户规范定稿）
   ------------------------------------------------------------
   适用范围：仅 5 个一级导航 hub 页（products/news/case/solutions/about），
   严禁用于首页与其他内页（其余内页用 inner-banner / hero-clean 浅色体系；
   产品 L3 自 V1.28 起无 banner）。
   深色锚点纪律：本 Banner 即所在页唯一深色锚点，页内不得再有深色块。
   文字纪律（2026-10-29 红线04）：Banner 纯视觉零文字，H1 落下方 .page-title-block。

   避坑对照（用户规范清单逐条落实）：
   · 渐变断裂坑 → 渐变层用 transform: rotate(135deg)+scale(1.5) 包裹
     水平 linear-gradient 实现，禁直接写 background: linear-gradient(135deg,…)
   · 噪点 → 单源 --tex-noise（feTurbulence data-URI，零外部请求）
   · 文字可读性坑 → 标题 text-shadow 0 2px 8px rgba(0,0,0,.6)；
     面包屑 hover 仅变色 var(--banner-accent)，禁下划线/加粗
   · 缓存与主题切换坑 → 色值全部 CSS 变量，零硬编码散落；
     预留 prefers-color-scheme: light 覆盖接口（空置块，见文件底部）
   · SEO/无障碍坑 → section[aria-label="…横幅"]，H1 真实 DOM，
     面包屑 nav[aria-label="面包屑导航"] + 有序列表 ol/li
   ============================================================ */
.hub-banner {
  /* 双色对（规范表格：主→辅），按 data-variant 切换；文字全压暗端，亮端区不放文字 */
  --hb-bg-primary: var(--banner-bg);        /* #0d1b2a */
  --hb-bg-secondary: var(--banner-surface); /* #1b2e4b */
  --hb-title: var(--banner-title);          /* #ffffff  压主色 17.39:1 */
  --hb-sub: var(--banner-sub);              /* #a0b4c8  压主色 8.16:1 */
  --hb-accent: var(--banner-accent);        /* #4cc9f0  压主色 9.05:1 */
  position: relative; overflow: hidden;
  display: flex; flex-direction: column; /* 纵向：装饰层（绝对定位）+ hb-body 内容区 */
  height: 200px; margin-bottom: 0; /* 红线02/04（2026-10-30 用户定稿）：L1 hub 高度与内页统一 200px；紧贴面包屑，下方间距由 .page-title-block 承担 */
  background: var(--hb-bg-primary); /* 渐变层不可用时的兜底底色 */
  color: var(--hb-title);
  animation: hbFade .5s ease both; /* 关于页「仅基础淡入」，全变体共有 */
}
/* 新闻 / 解决方案：第二组色对（规范表格 #0a1628 → #162a45） */
.hub-banner[data-variant="news"],
.hub-banner[data-variant="solutions"] {
  --hb-bg-primary: #0a1628;
  --hb-bg-secondary: #162a45;
}
@keyframes hbFade { from { opacity: 0; } to { opacity: 1; } }

/* 渐变层：水平渐变经 rotate(135deg)+scale(1.5) 铺满容器（父级 overflow:hidden 裁切），
   任意分辨率/任意宽高比下渐变方向恒定，规避 135deg 角度在高瘦容器上的视觉漂移 */
.hub-banner .hb-grad {
  position: absolute; top: 50%; left: 50%;
  width: 100%; height: 100%;
  transform: translate(-50%, -50%) rotate(135deg) scale(1.5);
  background: linear-gradient(90deg, var(--hb-bg-primary) 0%, var(--hb-bg-secondary) 100%);
}
/* 5% 噪点纹理（程序化 SVG，无外部请求） */
.hub-banner .hb-noise {
  position: absolute; inset: 0; pointer-events: none;
  opacity: .05; background: var(--tex-noise); background-size: 160px 160px;
}
/* ---------- L1 Hub Banner 实景图层（2026-10-30 用户拍板） ----------
   CSS 背景图 = 纯装饰：不进 DOM 语义、GEO/爬虫不可识别、不影响每页唯一 H1。
   叠在渐变之上、噪点之下；opacity .6 让深空渐变透出统一色调。
   图内烧字为用户明示豁免（L1 页豁免红线04 的 banner 零文字约束）。 */
.hub-banner .hb-photo {
  position: absolute; inset: 0; pointer-events: none;
  background-size: cover; background-position: center;
  opacity: .6;
}
.hub-banner[data-variant="products"]  .hb-photo { background-image: url("../images/banner/products.jpg"); }
.hub-banner[data-variant="news"]      .hb-photo { background-image: url("../images/banner/news.jpg"); }
.hub-banner[data-variant="case"]      .hb-photo { background-image: url("../images/banner/cases.jpg"); }
.hub-banner[data-variant="solutions"] .hb-photo { background-image: url("../images/banner/solutions.jpg"); }
.hub-banner[data-variant="about"]     .hb-photo { background-image: url("../images/banner/about.jpg"); }

/* 内容层（2026-10-28 设计01 四次定稿）：面包屑收边条退役——面包屑升格为 Banner 上方
   的全站统一浅色独立条（.inner-breadcrumb）。Banner 内只剩标题区。 */
.hub-banner .hb-body {
  position: relative; z-index: 1; flex: 1; min-height: 0;
  width: 100%; /* 抵消 .container 的 margin:auto——在 flex 纵向里 auto 边距会吞掉交叉轴拉伸，令标题区收缩居中 */
  display: flex; flex-direction: column; justify-content: center;
}

/* ---------- 专属标识元素（按变体） ---------- */

/* 产品中心：右下角低透明度齿轮线稿，悬停顺时针 15° */
.hub-banner .hb-gear {
  position: absolute; right: 3%; bottom: -22%; z-index: 0;
  width: 168px; height: 168px;
  color: var(--hb-title); opacity: .09; pointer-events: none;
  transition: transform .45s ease;
}
.hub-banner:hover .hb-gear,
.hub-banner:focus-within .hb-gear { transform: rotate(15deg); }

/* 2026-10-28 用户修正：Banner 内「白色边框 + 独立卡片」全部移除——
   新闻页时间轴竖线（发白渐变线）与案例页字标带（白线边框+独立条带）已删，
   Banner 收敛为纯「标题 + 面包屑」两层文字，无边框无线条无卡片。 */

/* 解决方案：右上角静态光斑（纯 CSS 径向渐变，常驻；无 JS 无动画） */
.hub-banner .hb-glow {
  position: absolute; right: 6%; top: -36%; z-index: 0;
  width: 260px; height: 260px; border-radius: 50%; pointer-events: none;
  background: radial-gradient(closest-side, rgba(76, 201, 240, .16), transparent 72%);
}

/* ---------- 动效纪律（2026-10-28 AI-first 十条：Banner 禁轮播/自动切换/复杂动效） ----------
   粒子 canvas（js/hub-banner.js）已整体移除：Banner 零 JS。
   仅保留 0.5s 一次性 CSS 淡入（非轮播非持续），reduced-motion 关闭规则见五区结构段。 */
/* 移动端（移动端适配坑）：取消所有动效、背景降级单色、安全区 320×160、标题 36→24px */
@media (max-width: 768px) {
  .hub-banner { height: 160px; }
  .hub-banner .hb-grad { background: var(--hb-bg-primary); transform: none; } /* 降级单色 */
  .hub-banner .hb-noise { display: none; }
  .hub-banner .hb-photo { display: none; } /* 移动端随降级策略隐藏实景图 */
  .hub-banner .hb-gear { display: none; }
}

/* 浅色模式预留接口（缓存与主题切换坑）：当前站点锁定深色主题，此块空置；
   若日后启用浅色模式，在此覆盖 --hb-bg-primary/--hb-bg-secondary/--hb-title/--hb-sub，
   并同步处理 .hb-glow 的 alpha 白线——当前深色模式下禁用任何亮色变量引用。 */
@media (prefers-color-scheme: light) {
  /* reserved */
}

/* ---------- 产品详情页首屏 Hero（1920×200 基准：左图右文） ----------
   （p-hero/ph-*/eco-integration 旧版式已于 2026-10-29 删除：全站零 HTML 引用，
     .pd-hero 亦于 V1.28 退役，产品 L3 现行为 .pd-intro-card 白卡两栏） */
/* ---------- 面包屑（2026-10-28 设计01 定稿：浅色独立条 .inner-breadcrumb 内，
   吸顶于导航栏下方；末级 span[aria-current=page] 非链接；分隔符 CSS li+li::before） ---------- */
.breadcrumb {
  background: transparent;
  padding: 0; font-size: 14px;
}
.breadcrumb ol.container { display: flex; align-items: center; flex-wrap: wrap; gap: var(--space-2); min-height: var(--crumb-h); margin: 0 auto; list-style: none; }
.breadcrumb li { display: inline-flex; align-items: center; gap: var(--space-2); }
.breadcrumb li + li::before { content: '>'; color: rgba(0,0,0,.35); font-size: 12px; }
/* 链接撑满 crumb 行高（触控区 = 行高 40px）；悬停深色强调 #0d1b2a（浅底对比 14:1，
   设计01 定稿：亮青 #4cc9f0 只留在深色导航，浅底不用） */
.breadcrumb a { display: inline-flex; align-items: center; min-height: var(--crumb-h); color: rgba(0,0,0,.60); text-decoration: none; transition: color .2s; }
.breadcrumb a:hover,
.breadcrumb a:focus-visible { color: #0d1b2a; text-decoration: none; }
/* 末级当前页：不可点、无悬停变色（<span aria-current="page">，设计01 用户定稿） */
.breadcrumb [aria-current="page"] { color: rgba(0,0,0,.85); }


/* ============================================================
   按钮：渐变主按钮带光晕 / 玻璃幽灵按钮
   ============================================================ */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  min-height: var(--btn-h-lg); padding: 0 28px; border-radius: 10px; border: 1px solid transparent;
  font-size: 15px; font-weight: 600; transition: all .25s; line-height: 1.4;
}
.btn-primary {
  background: var(--cta); color: var(--cta-ink); /* V6.03 全部 CTA 换橙底深字（用户拍板）；白字压橙 2.6:1 不达标故用 #1A1A1A */
  box-shadow: 0 8px 22px rgb(255 122 26 / .35);
}
.btn-primary:hover { transform: translateY(-2px); box-shadow: 0 14px 32px rgb(255 122 26 / .5); background: var(--cta-hover); }
.btn-outline { background: transparent; border-color: #C9D6EC; color: var(--text-body); }
.btn-outline:hover { border-color: var(--primary-text); color: var(--primary-text); background: rgba(10,92,255,.05); }
/* 轻量 ghost 按钮：无边框/无底色，弱化为从属文字操作（用于 CTA 旁的次要入口） */
.btn-ghost { background: transparent; border-color: transparent; color: var(--text-muted); padding: 11px 16px; }
.btn-ghost:hover { color: var(--primary-text); background: rgba(10,92,255,.05); }
/* CTA 区电话/工作时间语义拆分（保持可见文案不变，便于 AI 抽取） */
.hb-tel { color: inherit; text-decoration: none; }
.hb-tel:hover { text-decoration: underline; }
.btn-white { background: #fff; color: #1A1A1A; box-shadow: 0 8px 24px rgb(0 0 0 / .25); }
.btn-white:hover { transform: translateY(-2px); box-shadow: 0 14px 34px rgb(0 0 0 / .35); }
.btn-ghost-white {
  background: rgba(255,255,255,.07); border-color: rgba(255,255,255,.35); color: #fff;
  backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px);
}
.btn-ghost-white:hover { background: rgba(255,255,255,.15); border-color: rgba(255,255,255,.6); transform: translateY(-2px); }
.btn-sm { min-height: var(--btn-h-sm); padding: 0 16px; font-size: 13px; border-radius: 10px; }
.btn-lg { min-height: 52px; padding: 0 36px; font-size: 16px; }
.btn-block { width: 100%; }
.btn:disabled { opacity: .5; cursor: not-allowed; }

/* ============================================================
   区块标题：电光眉标 + 大黑体标题
   ============================================================ */
.section { padding: 80px 0; }
.section.soft { background: var(--bg-soft); }
/* 首页「我们能提供」：区别于「独立系统能力」的浅灰蓝，用淡蓝渐变底色独立成块 */
.section.cap-sec { background: var(--bg-soft); } /* V6.01：浅蓝渐变 #F8FAFF→#EAF1FF 收敛为统一浅灰底（配色收敛拍板） */
.section-title { text-align: center; margin-bottom: 52px; }
.section-title h2 { font-size: 32px; font-weight: 700; margin-bottom: 16px; color: var(--text); }
.section-title p { color: var(--text-muted); font-size: 15px; max-width: 580px; margin: 0 auto; }
.section-title .cap-scene-lead { margin-top: 16px; max-width: 760px; color: var(--text-secondary, #37415A); font-size: 15px; line-height: 1.95; }

/* ============================================================
   卡片：白底描边 + 悬停渐变顶线与辉光
   ============================================================ */
.card {
  background: #fff; border: 1px solid var(--border); border-radius: var(--radius-2xl);
  box-shadow: var(--shadow-1); transition: all .35s; overflow: hidden;
  position: relative;
}
.card::before {
  content: ""; position: absolute; top: 0; left: 0; right: 0; height: 3px;
  background: var(--grad); opacity: 0; transition: opacity .35s; z-index: 2;
}
.card:hover { transform: translateY(-6px); border-color: rgba(10,92,255,.4); box-shadow: var(--shadow-xl); }
.card:hover::before { opacity: 1; }

/* ---------- 徽章 ---------- */
.badge {
  display: inline-flex; align-items: center; gap: 4px;
  padding: 3px 12px; border-radius: 999px; font-size: 12px; font-weight: 600;
  background: rgba(10,92,255,.09); color: var(--primary-text);
}
.badge.gray { background: var(--bg-soft); color: var(--text-body); }
.badge.green { background: #DCFCE7; color: var(--green-600); }
.badge.orange { background: #FFEDD5; color: #EA580C; }

/* ============================================================
   首页 Hero：深空 + 辉光光斑 + 网格
   ============================================================ */
/* 首屏 Banner：设计基准 1920×400；背景铺满全屏(Cover)，文字/交互收进 1300px 安全区，上下留白≥60px */
.hero { position: relative; height: 400px; overflow: hidden; background: var(--ink-1); }
.hero-slide {
  position: absolute; inset: 0; display: flex; align-items: center;
  padding: 60px 0; box-sizing: border-box;
  opacity: 0; transition: opacity .9s ease; pointer-events: none;
}
.hero-slide.active { opacity: 1; pointer-events: auto; }
.hero-slide .slide-bg {
  position: absolute; inset: 0;
  background:
    radial-gradient(1100px 420px at 80% -10%, rgba(10,92,255,.42), transparent 60%),
    radial-gradient(800px 380px at 8% 115%, rgba(0,208,255,.22), transparent 62%),
    linear-gradient(180deg, #050B16 0%, #0A1526 100%);
}
/* 背景图横向延展构图：cover 铺满 + center 定位，确保 400px 高度下主体不被裁切 */
.hero-slide .slide-bg.has-image { background-size: cover; background-position: center; background-repeat: no-repeat; }
.hero-slide .slide-bg.has-image::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(5,11,22,.72), rgba(5,11,22,.45));
}
.hero-slide .slide-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(6,13,26,.25) 0%, rgba(10,21,38,.15) 100%);
}
.hero-slide .slide-grid {
  position: absolute; inset: 0; pointer-events: none;
  background-image:
    linear-gradient(rgba(140,180,255,.06) 1px, transparent 1px),
    linear-gradient(90deg, rgba(140,180,255,.06) 1px, transparent 1px);
  background-size: 48px 48px;
  -webkit-mask-image: radial-gradient(ellipse 80% 90% at 50% 20%, #000 30%, transparent 95%);
  mask-image: radial-gradient(ellipse 80% 90% at 50% 20%, #000 30%, transparent 95%);
}
/* 辉光光斑 */
.hero-slide .deco { position: absolute; border-radius: 50%; filter: blur(70px); opacity: .4; pointer-events: none; }
.hero-slide .deco.d1 { width: 420px; height: 420px; right: -80px; top: -120px; background: #0A5CFF; }
.hero-slide .deco.d2 { width: 340px; height: 340px; left: -100px; bottom: -140px; background: #0090C8; }
.hero-slide .container { position: relative; z-index: 2; }
/* Banner 整图可点：覆盖全图的链接层，文字区放行点击（仅按钮可点），其余任意位置点击跳转对应产品页 */
.hero-slide .hero-link { position: absolute; inset: 0; z-index: 1; display: block; }
.hero-slide .hero-link:hover + .container h2 { text-shadow: 0 4px 30px rgba(0,0,0,.4), 0 0 24px rgba(10,92,255,.35); }
.hero-slide .container { pointer-events: none; }
.hero-slide .container a { pointer-events: auto; }
.hero-slide h2 {
  color: #fff; font-size: 48px; font-weight: 700; margin-bottom: 20px; line-height: 1.22;
  letter-spacing: .5px; text-shadow: 0 4px 30px rgba(0,0,0,.4);
}
.hero-slide p { color: #AEC8EE; font-size: 18px; margin-bottom: 32px; max-width: 580px; }
.hero-slide .actions { display: flex; gap: 16px; }
.hero-nav {
  position: absolute; top: 50%; transform: translateY(-50%); z-index: 5;
  width: 46px; height: 46px; border-radius: 50%;
  background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.25);
  color: #fff; font-size: 19px; display: flex; align-items: center; justify-content: center;
  transition: all .25s; backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
}
.hero-nav:hover { background: rgba(10,92,255,.45); border-color: rgba(255,255,255,.5); }
.hero-nav.prev { left: 22px; } .hero-nav.next { right: 22px; }
.hero-dots { position: absolute; bottom: 30px; left: 50%; transform: translateX(-50%); z-index: 5; display: flex; gap: 8px; }
.hero-dots button { width: 28px; height: 5px; border-radius: 3px; border: 0; background: rgba(255,255,255,.3); transition: all .3s; }
.hero-dots button.active { background: var(--grad); width: 44px; }

/* ============================================================
   首页优势：深空图标容器
   ============================================================ */
.adv-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
.adv-card { text-align: center; padding: 40px 24px; }
.adv-card .icon {
  width: 66px; height: 66px; margin: 0 auto 20px; border-radius: 14px;
  background: linear-gradient(145deg, #0B1830 0%, #0E2246 100%);
  border: 1px solid rgba(111,195,255,.28);
  box-shadow: 0 10px 26px rgba(14,34,70,.28), inset 0 1px 0 rgba(255,255,255,.08);
  display: flex; align-items: center; justify-content: center;
  color: #6FC3FF; font-size: 26px; transition: all .35s;
}
.adv-card:hover .icon {
  transform: translateY(-4px);
  border-color: rgba(111,195,255,.6);
  box-shadow: 0 16px 36px rgba(14,34,70,.4), 0 0 24px rgba(10,92,255,.25);
}
.adv-card:hover .icon svg { stroke: #00D0FF; }
.adv-card .icon svg { width: 28px; height: 28px; }
.adv-card h3 { font-size: 18px; margin-bottom: 9px; font-weight: 700; }
.adv-card p { font-size: 13px; color: var(--text-muted); }

/* ============================================================
   网格
   ============================================================ */
.grid { display: grid; gap: 24px; }
.grid-2 { grid-template-columns: repeat(2, 1fr); }
.grid-3 { grid-template-columns: repeat(3, 1fr); }
.grid-4 { grid-template-columns: repeat(4, 1fr); }

.product-card .pc-img { aspect-ratio: 4/3; overflow: hidden; position: relative; }
.product-card .pc-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.product-card:hover .pc-img img { transform: scale(1.07); }
.product-card .pc-body { padding: 20px 24px; }
.product-card .pc-body h3 { font-size: 18px; margin-bottom: 8px; }
.product-card .pc-body .cat { font-size: 12px; color: var(--primary-text); font-weight: 700; letter-spacing: 1px; }
.product-card .pc-body p { font-size: 13px; color: var(--text-muted); margin: 8px 0 16px; }

/* ---------- 解决方案卡片 ---------- */
.solution-card .sc-img { height: 200px; overflow: hidden; position: relative; }
.solution-card .sc-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.solution-card:hover .sc-img img { transform: scale(1.07); }
.solution-card .sc-body { padding: 24px; }
.solution-card .sc-body h3 { font-size: 18px; margin-bottom: 8px; }
.solution-card .sc-body p { font-size: 13px; color: var(--text-muted); margin-bottom: 12px; }
.solution-card .sc-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 16px; }
.solution-card .sc-tags span {
  font-size: 12px; padding: 3px 12px; border-radius: 999px;
  background: rgba(10,92,255,.07); color: var(--text-body); border: 1px solid rgba(10,92,255,.14);
}

/* ============================================================
   筛选与搜索
   ============================================================ */
.filter-bar {
  display: flex; flex-wrap: wrap; align-items: flex-end; gap: 16px;
  background: #fff; border: 1px solid var(--border); border-radius: var(--radius-2xl);
  padding: 20px 24px; box-shadow: var(--shadow-md); margin-bottom: 32px;
}
.filter-group { display: flex; flex-direction: column; gap: 8px; }
.filter-group label { font-size: 13px; font-weight: 600; color: var(--text-body); }
.filter-group select {
  height: 42px; padding: 0 32px 0 12px; border: 1px solid var(--border);
  border-radius: 10px; background: #fff; color: var(--text); min-width: 160px;
  appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%2364748b' stroke-width='1.6' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 12px center;
}
.search-box { position: relative; flex: 1; min-width: 240px; margin-left: auto; }
.search-box input {
  width: 100%; height: 42px; padding: 0 40px 0 40px; border: 1px solid var(--border);
  border-radius: 10px; font-size: 14px; color: var(--text); transition: border .2s, box-shadow .2s;
}
.search-box input:focus { outline: none; border-color: var(--primary-text); box-shadow: 0 0 0 4px rgba(10,92,255,.14); }
.search-box .s-icon {
  position: absolute; left: 13px; top: 50%; transform: translateY(-50%);
  color: var(--text-muted); font-size: 14px; pointer-events: none;
}
.search-box .clear-btn {
  position: absolute; right: 8px; top: 50%; transform: translateY(-50%);
  width: 24px; height: 24px; border-radius: 50%; border: 0;
  background: var(--bg-soft); color: var(--text-muted); font-size: 13px;
  display: none; align-items: center; justify-content: center; transition: all .2s;
}
.search-box .clear-btn:hover { background: #E0E7F2; color: var(--text); }
.search-box.has-value .clear-btn { display: flex; }

/* ---------- 标签页 ---------- */
.tabs { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.tab-btn {
  padding: 8px 20px; border-radius: 999px; border: 1px solid var(--border);
  background: #fff; color: var(--text-body); font-size: 14px; font-weight: 500; transition: all .2s;
}
.tab-btn:hover { border-color: var(--primary-text); color: var(--primary-text); }
.tab-btn.active {
  background: var(--grad); border-color: transparent; color: #fff;
  box-shadow: var(--shadow-glow);
}

/* ---------- 新闻中心：关键词搜索框 ---------- */
.news-search { position: relative; display: flex; align-items: center; }
.news-search .ns-icon { position: absolute; left: 14px; font-size: 15px; opacity: .55; pointer-events: none; }
.news-search-input {
  width: 280px; max-width: 100%; height: 40px; padding: 0 16px 0 40px;
  border: 1px solid var(--border); border-radius: 999px; font-size: 14px;
  color: var(--text-body); background: #fff; font-family: inherit;
  transition: border-color .2s, box-shadow .2s;
}
.news-search-input:focus { outline: none; border-color: var(--primary-text); box-shadow: 0 0 0 3px rgba(10,92,255,.15); }
.news-search-input::placeholder { color: var(--text-muted); }
.news-count { margin: 0 0 20px; font-size: 13px; color: var(--text-muted); min-height: 1em; }
.news-empty {
  text-align: center; padding: 48px 20px; color: var(--text-muted);
  background: #FAFCFF; border: 1px solid var(--border); border-radius: var(--radius-2xl);
}
@media (max-width: 768px) {
  .news-search { width: 100%; }
  .news-search-input { width: 100%; }
}

/* ---------- 新闻中心：分页导航 ---------- */
.news-pager { display: flex; align-items: center; gap: 12px; justify-content: center; margin-top: 24px; flex-wrap: wrap; }
.news-pager a, .news-pager .pg-cur {
  min-width: 36px; height: 36px; padding: 0 12px; display: inline-flex; align-items: center; justify-content: center;
  border-radius: 10px; border: 1px solid var(--border); font-size: 14px; color: var(--text-body); background: #fff;
}
.news-pager a:hover { border-color: var(--primary-text); color: var(--primary-text); }
.news-pager .pg-cur { background: var(--grad); border-color: transparent; color: #fff; font-weight: 600; }
.news-pager .pg-sep { color: var(--text-muted); }

/* ---------- 新闻中心：栏目列表双模板 ---------- */
/* 模板 A：资讯流竖排横卡（company/industry）——原 #newsList inline style 行为固化 */
.news-list-col { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 24px; }
.news-list-col .list-row { flex-direction: column; }
.news-list-col .list-row .lr-img { width: 100%; aspect-ratio: 360 / 203; }
.news-list-col .list-row .lr-body { padding: 20px 22px; }
/* 模板 B：问答清单（faq）—— V5.41 全套精化：
   ① 浅底卡 + 左侧蓝条替代「白卡+顶部悬停渐变条」；② 圆点 Q 徽章改 01/02 编号
   （CSS 计数器，HTML 内的 "Q" 由 font-size:0 隐藏，零 HTML 改动）；③ 答案取消两行截断
   （截断句显廉价且折扣 GEO 可见内容），14px 完整展示；④ 奇数条目末卡通栏，消灭孤儿卡。
   新闻栏目页复用 .faq-item 的链接卡（带 .faq-meta 日期）保留摘要截断，见下方 :has 覆盖。 */
.faq-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; align-items: start; counter-reset: faq; }
.faq-list > .faq-item:last-child:nth-child(odd) { grid-column: 1 / -1; }
.faq-item {
  display: flex; align-items: flex-start; gap: 14px; position: relative; overflow: hidden;
  background: var(--bg-soft); border: 1px solid transparent; border-radius: 14px;
  padding: 22px 24px; transition: all .3s;
}
.faq-item::before {
  content: ""; position: absolute; top: 0; bottom: 0; left: 0; width: 3px;
  background: var(--grad);
}
.faq-item:hover { background: #fff; border-color: var(--border); box-shadow: var(--shadow-xl); transform: translateY(-3px); }
.faq-item .faq-q {
  flex-shrink: 0; margin-top: 1px; width: 34px; height: 26px; border-radius: 8px;
  background: var(--primary-soft); color: var(--primary-text);
  font-size: 0; font-weight: 700;
  display: inline-flex; align-items: center; justify-content: center;
}
.faq-item .faq-q::before { content: counter(faq, decimal-leading-zero); counter-increment: faq; font-size: 13px; }
.faq-item .faq-body { flex: 1; min-width: 0; }
.faq-item .faq-body h3 { font-size: 16px; line-height: 1.55; margin: 0 0 8px; color: var(--text); transition: color .2s; }
.faq-item:hover .faq-body h3 { color: var(--primary-text); }
.faq-item .faq-body p {
  font-size: 14px; line-height: 1.75; color: var(--text-muted); margin: 0;
}
/* 新闻栏目页的问答链接卡（带日期 meta）：答案为摘要，保留两行截断与原字号 */
.faq-item:has(.faq-meta) .faq-body p {
  font-size: 13px; line-height: 1.7;
  display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden;
}
.faq-item .faq-meta { flex-shrink: 0; margin-top: 3px; font-size: 12px; color: var(--text-muted); white-space: nowrap; }
.faq-item .faq-meta svg { width: 12px; height: 12px; vertical-align: -2px; margin-right: 4px; }
@media (max-width: 1024px) { .faq-list { grid-template-columns: 1fr; } }
@media (max-width: 768px) {
  /* 窄屏：日期从右侧挪到第二行，避免挤压问句 */
  .faq-item { flex-wrap: wrap; padding: 18px 18px; }
  .faq-item .faq-meta { order: 3; width: 100%; margin-top: 8px; }
}

/* ---------- 新闻中心：hub 栏目分区（每栏目最新 6 条 + 查看更多） ---------- */
.news-sec-head {
  display: flex; align-items: baseline; justify-content: space-between;
  gap: 16px; margin-bottom: 20px; flex-wrap: wrap;
}
.news-sec-head h2 { font-size: 22px; margin: 0; }
.news-sec-more {
  font-size: 14px; color: var(--primary-text); font-weight: 600; white-space: nowrap;
}
.news-sec-more:hover { text-decoration: underline; }
.news-sec-list { display: flex; flex-direction: column; gap: 20px; }

/* 新闻中心 HUB：三栏并排「内容地图」，消除各独立 section 的 80px 节间距 */
/* 新闻 HUB：三栏并排内容地图，宽度与全站 .container 对齐（1300px） */
.news-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; align-items: start; max-width: 1300px; margin: 0 auto 56px; padding: 0 24px; }
.news-grid .news-section { padding: 0; }
.news-grid .container { padding: 0; } /* 去掉各栏内部重复 26px，栏间距仅由 grid gap 控制 */
.news-grid .news-sec-list { gap: 16px; }
/* 网格内卡片统一纵向：配图在上、正文在下，随栏宽等比缩放 */
.news-grid .list-row { flex-direction: column; }
.news-grid .list-row .lr-img { width: 100%; aspect-ratio: 360 / 203; } /* 图片随栏宽等比缩放 */
.news-grid .list-row .lr-body { padding: 20px 20px; }
/* 栏头 H2 已声明栏目名，卡内 badge 在三栏语境属视觉冗余 → 仅隐藏显示（DOM 保留，AI/爬虫可读；二级列表页仍显示） */
.news-grid .list-row .badge { display: none; }
/* 卡片等高：标题限 2 行占位 + 摘要限 2 行截断（完整文本仍在 DOM 与详情页，AI 不受影响） */
.news-grid .list-row .lr-body h3 {
  display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2;
  overflow: hidden; min-height: calc(2 * 1.5em); line-height: 1.5;
}
.news-grid .list-row .lr-body p {
  display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2;
  overflow: hidden; line-height: 1.75;
}
/* 平板 / 小笔记本：3 列 → 2 列，避免栏宽过窄 */
@media (max-width: 1024px) {
  .news-grid { grid-template-columns: repeat(2, 1fr); }
}
/* 手机 / 小平板：→ 1 列，恢复段落间距 */
@media (max-width: 768px) {
  .news-grid { grid-template-columns: 1fr; }
  .news-grid .news-section { padding: 32px 0; }
  .news-grid .container { padding: 0 var(--pad-xs); } /* 单栏时补回左右内边距（阶梯 xs 档），避免贴边 */
}

/* ---------- 新闻中心：杂志式重排（V3.33 hub featured + latest 栅格 / 子页卡片栅格） ---------- */
.news-mag { padding-top: 8px; padding-bottom: 56px; }
.news-featured {
  display: grid; grid-template-columns: 56% 1fr; gap: 0;
  background: #fff; border: 1px solid var(--border); border-radius: var(--radius-2xl);
  overflow: hidden; box-shadow: var(--shadow-2); position: relative; margin-bottom: 40px;
}
.news-featured::before {
  content: ""; position: absolute; top: 0; left: 0; right: 0; height: 3px;
  background: var(--grad); opacity: 0; transition: opacity .35s; z-index: 2;
}
.news-featured:hover { transform: translateY(-4px); box-shadow: var(--shadow-xl); border-color: rgba(10,92,255,.4); }
.news-featured:hover::before { opacity: 1; }
.news-featured .featured-media { position: relative; overflow: hidden; aspect-ratio: 16 / 10; }
.news-featured .featured-media img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .5s; }
.news-featured:hover .featured-media img { transform: scale(1.04); }
.news-featured .featured-body { padding: 36px 36px; display: flex; flex-direction: column; justify-content: center; }
.nf-meta { display: flex; gap: 12px; align-items: center; margin-bottom: 16px; font-size: 13px; color: var(--text-muted); }
.nf-meta svg { width: 13px; height: 13px; vertical-align: -2px; margin-right: 3px; }
.nf-title { font-size: 26px; line-height: 1.4; margin: 0 0 14px; font-weight: 700; }
.nf-title a { color: var(--text); text-decoration: none; transition: color .2s; }
.news-featured:hover .nf-title a { color: var(--primary-text); }
.nf-excerpt { font-size: 15px; line-height: 1.85; color: var(--text-body); margin: 0 0 22px;
  display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden; }
.nf-more { margin-top: auto; align-self: flex-start; color: var(--primary-text); font-weight: 600; font-size: 14px; text-decoration: none; }
.nf-more:hover { text-decoration: underline; }

.latest-head { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; margin-bottom: 22px; }
.latest-head h2 { font-size: 22px; margin: 0; }
.latest-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 24px; align-items: start; }
.news-card {
  display: flex; flex-direction: column; background: #fff; border: 1px solid var(--border);
  border-radius: var(--radius-2xl); overflow: hidden; box-shadow: var(--shadow-1);
  transition: all .35s; position: relative; text-decoration: none; color: inherit;
}
.news-card::before {
  content: ""; position: absolute; top: 0; left: 0; right: 0; height: 3px;
  background: var(--grad); opacity: 0; transition: opacity .35s; z-index: 2;
}
.news-card:hover { transform: translateY(-6px); border-color: rgba(10,92,255,.4); box-shadow: var(--shadow-xl); }
.news-card:hover::before { opacity: 1; }
.news-card .nc-media { position: relative; overflow: hidden; aspect-ratio: 360 / 203; }
.news-card .nc-media img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .5s; }
.news-card:hover .nc-media img { transform: scale(1.04); }
.news-card .nc-body { padding: 20px 22px; flex: 1; display: flex; flex-direction: column; }
.nc-meta { display: flex; gap: 12px; align-items: center; margin-bottom: 12px; font-size: 13px; color: var(--text-muted); }
.nc-meta svg { width: 13px; height: 13px; vertical-align: -2px; margin-right: 3px; }
.news-card h3 { font-size: 17px; line-height: 1.55; margin: 0 0 10px; color: var(--text); transition: color .2s;
  display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; min-height: calc(2 * 1.55em); }
.news-card:hover h3 { color: var(--primary-text); }
.news-card p { font-size: 13px; line-height: 1.7; color: var(--text-muted); margin: 0;
  display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; }

@media (max-width: 900px) {
  .news-featured { grid-template-columns: 1fr; }
  .news-featured .featured-media { aspect-ratio: 16 / 9; }
  .news-featured .featured-body { padding: 26px 24px; }
  .nf-title { font-size: 22px; }
}
@media (max-width: 768px) {
  .latest-grid { grid-template-columns: 1fr; }
}

/* ---------- 新闻中心：搜索表单（GET 跳转 /news/search/?q=，无 JS 过滤） ---------- */
.news-search-form {
  display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
}
.news-search-form .news-search-input { padding-left: 16px; }
.ns-btn {
  height: 40px; padding: 0 20px; border: none; border-radius: 999px; cursor: pointer;
  background: var(--grad); color: #fff; font-size: 14px; font-weight: 600; font-family: inherit;
  box-shadow: var(--shadow-glow); transition: filter .2s;
}
.ns-btn:hover { filter: brightness(1.08); }
.sn-again { max-width: 560px; margin: 0 0 20px; }
.sn-again .news-search-input { flex: 1; }
.sn-results { display: flex; flex-direction: column; gap: 16px; }
.sn-item {
  display: block; padding: 20px 20px; border: 1px solid var(--border); border-radius: var(--radius-2xl);
  background: #fff; color: var(--text-body); transition: border-color .2s, box-shadow .2s;
}
.sn-item:hover { border-color: var(--primary-text); box-shadow: var(--shadow-2); }
.sn-item h3 { margin: 8px 0; font-size: 16px; }
.sn-item p { margin: 0; color: var(--text-muted); font-size: 14px; }

/* ---------- 新闻中心：相关推荐阅读（产品/方案/案例 内链卡片） ---------- */
.fusion-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.fusion-card {
  display: block; padding: 20px; border: 1px solid var(--border); border-radius: var(--radius-2xl);
  background: #fff; color: var(--text-body); transition: border-color .2s, box-shadow .2s, transform .2s;
}
.fusion-card:hover { border-color: var(--primary-text); box-shadow: var(--shadow-2); transform: translateY(-2px); }
.fusion-card .fc-tag {
  display: inline-block; padding: 2px 12px; border-radius: 999px; font-size: 12px; font-weight: 600;
  background: rgba(10,92,255,.09); color: var(--primary-text); margin-bottom: 12px;
}
.fusion-card b { display: block; font-size: 16px; margin-bottom: 8px; }
.fusion-card p { font-size: 13px; color: var(--text-muted); line-height: 1.7; margin: 0; }
.related-solutions .rel-note { color: var(--text-muted); font-size: 14px; line-height: 1.7; margin: -8px 0 20px; }
@media (max-width: 1024px) { .fusion-cards { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 768px) { .fusion-cards { grid-template-columns: 1fr; } }

/* ---------- 高亮 ---------- */
mark.hl { background: #CFF3FF; color: #075985; border-radius: 3px; padding: 0 2px; }

/* ---------- 空状态 ---------- */
.empty-state {
  text-align: center; padding: 74px 20px; color: var(--text-muted);
  border: 2px dashed #C9D6EC; border-radius: var(--radius-2xl); background: #FAFCFF;
}
.empty-state .e-icon { font-size: 46px; margin-bottom: 12px; }
.empty-state h3 { font-size: 18px; margin-bottom: 8px; color: var(--text-body); }
.empty-state p { font-size: 14px; margin-bottom: 20px; }

/* ============================================================
   页脚：深空 + 顶部辉光渐变线
   ============================================================ */
/* ============================================================
   首页板块：精选案例 / 新闻中心
   ============================================================ */
.home-sec-head {
  display: flex; justify-content: space-between; align-items: flex-end;
  gap: 16px; flex-wrap: wrap; margin-bottom: 8px;
}
/* 首页板块：标题/副标题左对齐（与下方卡片网格左边缘对齐），去掉居中留白 */
.home-sec-head .section-title { text-align: left; margin-bottom: 32px; }
.home-sec-head .section-title p { margin: 0; }
/* 首页板块间距：比内页更紧凑（2026-10-14 用户反馈整体节奏收紧） */
.section.ai-gist-sec { padding: 40px 0 0; }
.home-sec { padding: 44px 0; }
#systems.section.soft { padding: 44px 0; }
#capability.section.cap-sec { padding: 44px 0; }
/* V1.36 首页「关于慧博智能」定制区（apply-hub-faq home 分支）：
   简介带 + 事实徽章 + 轻排版 FAQ（去 Q 徽章/卡片感，思必驰式减法） */
.about-home .about-lead {
  margin: 0 0 14px; max-width: 980px;
  font-size: 15px; line-height: 1.9; color: var(--text-body);
}
.about-home .about-facts { display: flex; flex-wrap: wrap; gap: 10px; margin: 0 0 30px; }
.about-home .about-fact {
  font-size: 13px; font-weight: 600; color: var(--primary-text);
  background: var(--primary-soft); border-radius: 999px; padding: 7px 16px;
}
.about-home .faq-list { gap: 0 56px; }
.about-home .faq-item {
  background: transparent; border: none; box-shadow: none;
  padding: 16px 0 14px; border-bottom: 1px solid var(--border);
}
.about-home .faq-item::before { display: none; }
.about-home .faq-item:hover { transform: none; box-shadow: none; }
.about-home .faq-item .faq-body h3 { font-size: 15px; margin-bottom: 6px; }
.about-home .faq-item .faq-body p { font-size: 13px; }

/* V1.33 区块头出口按钮：文字箭头 → 胶囊（思必驰式，四区块统一） */
.home-more-link {
  font-size: 14px; color: var(--primary-text); font-weight: 600;
  white-space: nowrap;
  border: 1px solid var(--border); border-radius: 999px;
  padding: 7px 18px; transition: border-color .2s ease, background .2s ease;
}
.home-more-link:hover { border-color: var(--primary-text); background: var(--primary-soft); }

/* 精选案例：2行×3列，图片+底部文字栏，统一高度 */
.fc-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
.fc-card {
  display: flex; flex-direction: column; height: auto;
  background: #fff; border: 1px solid var(--border); border-radius: var(--radius-lg); overflow: hidden; /* V6.01 14px 硬编码收编 token */
  text-decoration: none;
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.fc-card:hover { transform: translateY(-4px); box-shadow: 0 16px 34px rgba(15,40,90,.12); border-color: rgba(10,92,255,.35); } /* V6.01 -6→-4 阴影与场景/系统卡统一一档 */
/* 卡内主链（图片+文字），整卡点击跳行业案例页 */
.fc-link { display: flex; flex-direction: column; flex: 1; text-decoration: none; color: inherit; }
/* 图片区统一 360:203（≈16:9，全站缩略图统一比例）；等宽网格下所有卡片高度自然一致 */
.fc-img { aspect-ratio: 16 / 9; height: auto; overflow: hidden; flex-shrink: 0; background: #F1F5FB; } /* V6.01 360/198→标准 16:9（拍板） */
.fc-img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .45s ease; }
.fc-card:hover .fc-img img { transform: scale(1.06); }
/* 文字信息栏三行结构：①标签 ②项目名称(1行加粗，禁止压缩) ③成果介绍(最多2行，超出隐藏) */
.fc-body { height: 114px; padding: 12px 15px 12px; display: flex; flex-direction: column; gap: 8px; overflow: hidden; }
.fc-tags { display: flex; gap: 8px; flex-shrink: 0; }
.fc-tags span {
  font-size: 12px; line-height: 1; color: var(--primary-text);
  background: rgba(10,92,255,.08); padding: 4px 9px; border-radius: 99px; white-space: nowrap;
}
.fc-tags span.fc-ind { color: #0e7490; background: rgba(14,116,144,.08); }
.fc-body h3 {
  margin: 0; font-size: 16px; line-height: 1.4; font-weight: 700; color: #0F1F3A;
  flex-shrink: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.fc-body p {
  margin: 0; font-size: 13px; color: #64748B; line-height: 1.6;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}

/* 案例卡底部：相关系统真实内链（GEO 实体簇：案例→系统→方案；与 .sc-hot 同语言） */
.fc-systems { display: flex; flex-wrap: wrap; align-items: center; gap: 5px; padding: 9px 13px 11px; border-top: 1px dashed var(--border); }
.fc-systems .fcs-label { font-size: 12px; font-weight: 600; color: var(--text-muted); flex-shrink: 0; }
.fc-systems a { font-size: 12px; line-height: 1; padding: 4px 8px; border-radius: 999px; background: var(--bg-soft); color: var(--text-body); transition: color .2s ease, background .2s ease; }
.fc-systems a:hover { color: var(--primary-text); background: #eef6ff; }
/* 新闻中心：3卡横排，16:9 缩略图，底部对齐 */
/* V1.33 思必驰式纯图+文堆叠（去边框/底色/阴影/badge/箭头 CTA） */
.nc2-card {
  display: flex; flex-direction: column; height: 100%;
  text-decoration: none;
}
.nc2-img { aspect-ratio: 360 / 203; overflow: hidden; flex-shrink: 0; background: #F1F5FB; border-radius: 12px; }
.nc2-img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .45s ease; }
.nc2-card:hover .nc2-img img { transform: scale(1.06); }
.nc2-body { flex: 1; display: flex; flex-direction: column; gap: 7px; padding: 14px 2px 0; }
.nc2-date { font-size: 12px; color: var(--text-muted); }   /* 2026-10-25：原 #94A3B8 白底仅 2.56:1 */
.nc2-body h3 {
  margin: 0; font-size: 16px; font-weight: 600; color: #0F1F3A; line-height: 1.5;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.nc2-body p {
  margin: 0; font-size: 13px; color: #55637A; line-height: 1.65;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
@media (max-width: 1024px) {
  .fc-grid { grid-template-columns: 1fr; }
  .fc-card { height: auto; }
}

/* 选择器修复（2026-10-25）：生成产出的 footer 标签形如 <footer id="site-footer">
   —— 只有 id、没有 class，而这里原本写的是类选择器 .site-footer，导致以下三条规则
   在 160 个页面上全部失配：①深空渐变背景丢失 → 页脚浅色字压在浅色 body 底上
   （对比度 1.1:1 几乎不可读）；②padding 丢失；③「移动端隐藏页脚」这条既定需求从未生效。
   改为 id 选择器以确保命中（legal/privacy 两页同时带 class，同样被命中）。 */
#site-footer {
  background:
    radial-gradient(700px 260px at 90% 0%, rgba(10,92,255,.16), transparent 60%),
    #04070F;
  color: #8296B4; padding: 64px 0 0; position: relative;
}
#site-footer::before {
  content: ""; position: absolute; top: 0; left: 0; right: 0; height: 1px;
  background: linear-gradient(90deg, transparent, rgba(0,208,255,.55), rgba(10,92,255,.55), transparent);
}
.footer-grid { display: grid; grid-template-columns: 1.5fr 1.2fr 1fr 1.3fr; gap: 40px; padding-bottom: 48px; }
.footer-grid .f-title { color: #E4EDFB; font-size: 16px; font-weight: 600; margin: 0 0 20px; }
.footer-grid .f-desc { font-size: 13px; line-height: 2; margin-top: 16px; }
.footer-grid ul li { margin-bottom: 11px; font-size: 14px; }
.footer-grid ul li a:hover { color: #fff; }
.footer-grid .f-contact { font-style: normal; }
.footer-grid .f-contact p { display: flex; gap: 8px; align-items: baseline; font-size: 14px; margin: 0 0 11px; line-height: 1.6; }
.footer-grid .f-contact .fc-label { color: #6FC3FF; flex-shrink: 0; }
.footer-grid .f-contact .f-delivery-link,
.footer-grid .f-contact .f-material-link { margin-top: 4px; }
.footer-grid .f-contact .f-delivery-link a,
.footer-grid .f-contact .f-material-link a { color: #6FC3FF; text-decoration: none; }
.footer-grid .f-contact .f-delivery-link a:hover,
.footer-grid .f-contact .f-material-link a:hover { text-decoration: underline; }

/* V5.36 资料索取说明块（仅 contact.html#material）：静态可见，无在线表单、无下载入口 */
.ct-material h2 { font-size: 24px; font-weight: 700; margin: 0 0 16px; color: var(--primary-text); }
.ct-material p { font-size: 15px; line-height: 1.9; color: #33415C; margin: 0 0 12px; }
.ct-material .ct-material-cta { display: flex; flex-wrap: wrap; gap: 12px; margin: 20px 0 0; }
.ct-material-cta a {
  display: inline-block; min-height: 44px; line-height: 44px; padding: 0 22px;
  border-radius: 10px; background: var(--primary-text); color: #fff;
  text-decoration: none; font-weight: 600; font-size: 14px;
}
.ct-material-cta a:hover { text-decoration: underline; }
@media (max-width: 768px) {
  .ct-material h2 { font-size: 21px; }
  .ct-material-cta a { padding: 0 18px; }
}

/* ---------- 解决方案栏：PC 2 列 + 纯 CSS 折叠（无 JS） ----------
   DOM 源码完整保留全部 12 条 <a>（爬虫/llms.txt 直读，绝不 JS 动态加载）；
   这里只做「展示层」：默认展开 2 列，点击标题（label→checkbox）可收起。 */
.footer-grid .f-col-sol { position: relative; }
.footer-grid .f-sol-tgl { position: absolute; opacity: 0; width: 1px; height: 1px; margin: 0; pointer-events: none; }
.footer-grid .f-sol-label { display: flex; align-items: center; justify-content: space-between; cursor: pointer; user-select: none; }
.footer-grid .f-caret { display: inline-block; flex: 0 0 auto; border: solid currentColor; border-width: 0 2px 2px 0; padding: 3px; margin-left: 12px; transform: rotate(-135deg); transition: transform .2s ease; }
.footer-grid ul.f-sol-list { column-count: 2; column-gap: 20px; }
.footer-grid ul.f-sol-list li { break-inside: avoid; font-size: 13px; }
.footer-grid .f-sol-tgl:checked ~ nav ul.f-sol-list { display: none; }        /* 收起 */
.footer-grid .f-sol-tgl:checked ~ p .f-caret { transform: rotate(45deg); }   /* 箭头朝下 */
.footer-grid .f-sol-tgl:focus-visible ~ p .f-sol-label { outline: 2px solid #6FC3FF; outline-offset: 4px; border-radius: 2px; }

/* 移动端：隐藏整页脚（用户要求；DOM 完整保留，NAP 由静态 LocalBusiness JSON-LD 提供，AI 可见） */
@media (max-width: 768px) { #site-footer { display: none; } }

/* 合规资质列（营业执照公示 / 备案 / 监管平台）：缩小调暗，弱于业务信息 */
/* 页脚底部双行：版权+政策链接 / 免责声明+备案，参考公信官网底部 */
.fl-sep { color: rgba(255,255,255,.15); }

.footer-bottom {
  border-top: 1px solid rgba(255,255,255,.07);
  margin-top: 16px; padding: 16px 0 20px;
  font-size: 13px; color: #999999;
}
.footer-bottom a { color: #999999; text-decoration: none; }
.footer-bottom a:hover { color: #C6D2E4; }

.footer-bottom .fb-row {
  display: flex; justify-content: space-between; align-items: center;
  gap: 12px 24px; flex-wrap: wrap;
  line-height: 1.7;
}
.footer-bottom .fb-row + .fb-row {
  margin-top: 8px;
  padding-top: 8px;
  border-top: 1px solid rgba(255,255,255,.05);
}
.footer-bottom .fb-row-copy { font-size: 13px; }
.footer-bottom .fb-row-icp { font-size: 12px; color: #8896AA; }

.footer-bottom .fb-copyright { margin: 0; }
.footer-bottom .fb-policies { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin: 0; }
.footer-bottom .fb-policies a { padding: 0 4px; }
.footer-bottom .fb-policies a:first-child { padding-left: 0; }
.footer-bottom .fb-disclaimer { margin: 0; }
.footer-bottom .fb-beian { margin: 0; }

/* 营业执照公示弹窗（工商亮照） */
.hb-modal-mask {
  position: fixed; inset: 0; z-index: 200; display: none;
  align-items: center; justify-content: center; padding: 20px;
  background: rgba(2,6,14,.72);
  backdrop-filter: blur(4px); -webkit-backdrop-filter: blur(4px);
}
.hb-modal-mask.open { display: flex; }
.hb-modal {
  position: relative; width: min(560px, 94vw); max-height: 90vh; overflow: auto;
  background: #0B1322; border: 1px solid rgba(110,150,220,.22); border-radius: 14px;
  box-shadow: 0 30px 80px rgba(0,0,0,.55);
}
.hb-modal-close {
  position: absolute; top: 10px; right: 12px; z-index: 2;
  width: 34px; height: 34px; border: none; border-radius: 50%;
  background: rgba(255,255,255,.08); color: #fff; font-size: 22px; line-height: 1; cursor: pointer;
}
.hb-modal-close:hover { background: rgba(255,255,255,.18); }
.hb-modal-body { padding: 24px 24px 24px; }
.hb-modal-title { color: #E4EDFB; font-size: 18px; margin-bottom: 16px; text-align: center; }
.hb-license-img { background: #fff; border-radius: 10px; padding: 12px; text-align: center; }
.hb-license-img img { max-width: 100%; height: auto; border-radius: 6px; }
.hb-license-info { margin: 16px 0 0; display: grid; grid-template-columns: auto 1fr; gap: 8px 16px; font-size: 13px; }
.hb-license-info dt { color: #8296B4; }
.hb-license-info dd { margin: 0; color: #E4EDFB; }
.hb-license-tip { margin: 16px 0 0; font-size: 12px; line-height: 1.7; color: #7E93B2; }

/* ============================================================
   通用工具
   ============================================================ */
.mb-8 { margin-bottom: 8px; } .mb-16 { margin-bottom: 16px; } .mb-24 { margin-bottom: 24px; }
.mb-32 { margin-bottom: 32px; } .mb-48 { margin-bottom: 48px; }
.mt-16 { margin-top: 16px; } .mt-24 { margin-top: 24px; } .mt-32 { margin-top: 32px; }
.mt-48 { margin-top: 48px; }
.text-center { text-align: center; }
.flex-between { display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; }
.hidden { display: none !important; }
.fade-in { animation: fadeIn .5s ease; }
@keyframes fadeIn { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }

/* 滚动渐入动画 */
.reveal { opacity: 0; transform: translateY(26px); transition: opacity .7s ease, transform .7s cubic-bezier(.16,.84,.44,1); }
.reveal.in { opacity: 1; transform: none; }
.reveal:nth-child(2) { transition-delay: .08s; }
.reveal:nth-child(3) { transition-delay: .16s; }
.reveal:nth-child(4) { transition-delay: .24s; }
.no-reveal .reveal { opacity: 1; transform: none; transition: none; }

/* 深空 CTA 卡 */
.cta-card {
  background:
    radial-gradient(600px 220px at 85% 0%, rgba(10,92,255,.32), transparent 62%),
    radial-gradient(500px 220px at 8% 110%, rgba(0,208,255,.18), transparent 60%),
    linear-gradient(180deg, #060D1A, #0A1526);
  color: #fff;
  border: 1px solid rgba(110,150,220,.18);
  border-radius: 14px; padding: 60px 40px;
  text-align: center; position: relative; overflow: hidden;
}
.cta-card::before {
  content: ""; position: absolute; inset: 0;
  background-image:
    linear-gradient(rgba(140,180,255,.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(140,180,255,.05) 1px, transparent 1px);
  background-size: 44px 44px;
  -webkit-mask-image: radial-gradient(ellipse 80% 120% at 50% 0%, #000 25%, transparent 95%);
  mask-image: radial-gradient(ellipse 80% 120% at 50% 0%, #000 25%, transparent 95%);
}
.cta-card h2 { color: #fff; font-weight: 700; margin-bottom: 16px; position: relative; z-index: 1; }   /* 字号见文件末尾统一覆盖 28px（H1 让位），此处不再重复定义 */
.cta-card p { color: #9FBBE4; font-size: 15px; margin-bottom: 28px; position: relative; z-index: 1; }

/* ============================================================
   产品详情
   ============================================================ */
.product-detail-grid { display: grid; grid-template-columns: 1.1fr 1fr; gap: 44px; margin-bottom: 60px; }
.carousel { position: relative; border-radius: var(--radius-2xl); overflow: hidden; background: #EDF2FA; box-shadow: var(--shadow-lg); border: 1px solid var(--border); }
.carousel .c-viewport { aspect-ratio: 4/3; position: relative; overflow: hidden; }
.carousel .c-track { display: flex; height: 100%; transition: transform .5s ease; }
.carousel .c-slide { flex: 0 0 100%; height: 100%; }
.carousel .c-slide img { width: 100%; height: 100%; object-fit: cover; }
.carousel .c-arrow {
  position: absolute; top: 50%; transform: translateY(-50%); z-index: 5;
  width: 40px; height: 40px; border-radius: 50%; border: 1px solid rgba(255,255,255,.5);
  background: rgba(8,15,30,.55); color: #fff; font-size: 16px;
  backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px);
  transition: all .2s; display: flex; align-items: center; justify-content: center;
}
.carousel .c-arrow:hover { background: rgba(10,92,255,.75); transform: translateY(-50%) scale(1.08); }
.carousel .c-arrow.prev { left: 12px; } .carousel .c-arrow.next { right: 12px; }
.carousel .c-dots { position: absolute; bottom: 12px; left: 50%; transform: translateX(-50%); display: flex; gap: 8px; z-index: 5; }
.carousel .c-dots button { width: 8px; height: 8px; border-radius: 50%; border: 0; background: rgba(255,255,255,.6); transition: all .25s; }
.carousel .c-dots button.active { background: #fff; width: 22px; border-radius: 6px; }
.carousel .c-thumbs { display: flex; gap: 12px; padding: 12px; background: #fff; border-top: 1px solid var(--border); }
.carousel .c-thumbs button { flex: 1; aspect-ratio: 4/3; border-radius: 10px; overflow: hidden; border: 2px solid transparent; padding: 0; background: none; transition: all .2s; }
.carousel .c-thumbs button img { width: 100%; height: 100%; object-fit: cover; }
.carousel .c-thumbs button.active { border-color: var(--primary-text); }
.carousel .c-count {
  position: absolute; right: 12px; bottom: 12px; z-index: 6;
  background: rgba(4,8,16,.6); color: #fff; font-size: 12px; padding: 3px 12px; border-radius: 14px;
  backdrop-filter: blur(4px); -webkit-backdrop-filter: blur(4px);
}

.product-info h1 { font-size: 30px; font-weight: 700; margin: 12px 0 16px; }
.product-info .pi-desc { font-size: 16px; color: var(--text-body); line-height: 1.9; margin-bottom: 24px; }
.product-info .pi-actions { display: flex; gap: 16px; margin-bottom: 28px; }
.product-info .pi-features { border-top: 1px solid var(--border); padding-top: 24px; }
.product-info .pi-features li { display: flex; gap: 12px; margin-bottom: 12px; font-size: 14px; }
.product-info .pi-features .f-icon { color: var(--primary-text); flex-shrink: 0; font-weight: 700; }

/* 规格占位（企业未填写时） */
.spec-placeholder {
  border: 2px dashed #C2D2EA; border-radius: var(--radius-2xl); padding: 48px 20px;
  text-align: center; color: var(--text-muted); background: #FAFCFF;
}
.spec-placeholder .sp-icon { font-size: 40px; margin-bottom: 12px; }
.spec-placeholder h3 { font-size: 16px; color: var(--text-body); margin-bottom: 8px; }

/* 富文本内容 */
.rich-content { line-height: 1.9; color: var(--text-body); }
.rich-content h2 { font-size: 22px; margin: 24px 0 12px; }
.rich-content h3 { font-size: 18px; margin: 20px 0 12px; }
.rich-content h4 { font-size: 16px; margin: 16px 0 8px; }
.rich-content p { margin-bottom: 12px; }
.rich-content ul, .rich-content ol { margin: 12px 0 16px; padding-left: 24px; }
.rich-content ul { list-style: disc; } .rich-content ol { list-style: decimal; }
.rich-content li { margin-bottom: 8px; }
.rich-content img { border-radius: 10px; margin: 16px 0; }
.rich-content table { width: 100%; border-collapse: collapse; margin: 16px 0; font-size: 14px; }
.rich-content th, .rich-content td { border: 1px solid var(--border); padding: 12px 16px; text-align: left; }
.rich-content th { background: var(--bg-soft); font-weight: 600; color: var(--text); }
.rich-content blockquote { border-left: 4px solid; border-image: var(--grad) 1; background: var(--primary-soft); padding: 12px 16px; margin: 16px 0; border-radius: 0 10px 10px 0; }

/* ============================================================
   案例/资讯 列表卡片
   ============================================================ */
.news-card, .case-card { display: flex; flex-direction: column; }
.news-card .nc-img { aspect-ratio: 360 / 203; height: auto; overflow: hidden; position: relative; }
.news-card .nc-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.news-card:hover .nc-img img { transform: scale(1.06); }
.news-card .nc-body { padding: 20px; flex: 1; display: flex; flex-direction: column; }
.news-card .nc-body .nc-meta { display: flex; gap: 12px; align-items: center; margin-bottom: 12px; font-size: 13px; color: var(--text-muted); }
.news-card .nc-body h3 { font-size: 16px; margin-bottom: 8px; transition: color .2s; }
.news-card:hover .nc-body h3 { color: var(--primary-text); }
.news-card .nc-body p { font-size: 13px; color: var(--text-muted); margin-bottom: 16px; flex: 1; }

.case-card .cc-img { aspect-ratio: 360 / 203; height: auto; overflow: hidden; position: relative; }
.case-card .cc-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.case-card:hover .cc-img img { transform: scale(1.06); }
.case-card .cc-body { padding: 20px; }
.case-card .cc-body h3 { font-size: 16px; margin-bottom: 8px; }
.case-card .cc-body .cc-info { display: flex; gap: 8px; flex-wrap: wrap; font-size: 13px; color: var(--text-muted); margin-bottom: 12px; }
.case-card .cc-body .cc-info span { display: inline-flex; align-items: center; gap: 4px; }
.case-card .cc-body p { font-size: 13px; color: var(--text-muted); }

/* 案例卡片：青绿清新图标（贴合站点渐变次色 #00C8FF，统一品牌语言） */
.case-card { padding: 24px; }
.case-card .cc-top { display: flex; align-items: center; gap: 12px; margin-bottom: 16px; }
.case-card .cc-top .cc-badges { margin-bottom: 0; }
.case-card .cc-icon {
  flex: 0 0 auto; width: 46px; height: 46px; border-radius: 12px;
  display: inline-flex; align-items: center; justify-content: center;
  background: rgba(19,194,194,.10); color: #13C2C2; transition: background .25s, color .25s;
}
.case-card:hover .cc-icon { background: rgba(19,194,194,.16); }
.case-card .cc-icon svg { width: 24px; height: 24px; display: block; }
.case-card .cc-info { display: flex; align-items: center; gap: 8px; font-size: 13px; color: var(--text-muted); margin-bottom: 8px; }
.case-card .cc-info svg.cci { flex: 0 0 auto; width: 15px; height: 15px; color: #36CFC9; }
.case-card .cc-info span { display: inline-flex; align-items: center; gap: 4px; }

/* ---------- 列表横向布局（资讯大卡片） ---------- */
.list-row {
  display: flex; background: #fff; border: 1px solid var(--border); border-radius: var(--radius-2xl);
  overflow: hidden; transition: all .35s; box-shadow: var(--shadow-1);
  position: relative;
}
.list-row::before {
  content: ""; position: absolute; top: 0; left: 0; right: 0; height: 3px;
  background: var(--grad); opacity: 0; transition: opacity .35s; z-index: 2;
}
.list-row:hover { box-shadow: var(--shadow-xl); transform: translateY(-4px); border-color: rgba(10,92,255,.4); }
.list-row:hover::before { opacity: 1; }
.list-row .lr-img { width: 360px; flex-shrink: 0; position: relative; overflow: hidden; aspect-ratio: 360 / 203; }
.list-row .lr-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.list-row .lr-body { padding: 24px 28px; flex: 1; }
.list-row .lr-body h3 { font-size: 18px; margin-bottom: 12px; transition: color .2s; }
.list-row:hover .lr-body h3 { color: var(--primary-text); }
.list-row .lr-body p { font-size: 14px; color: var(--text-muted); }
.list-row .lr-body .lr-meta { display: flex; gap: 12px; align-items: center; margin-bottom: 12px; font-size: 13px; color: var(--text-muted); }
/* 日期前日历图标（替换原 emoji 占位）：线性 SVG 随文字色，装饰性 aria-hidden */
.lr-meta svg { width: 13px; height: 13px; vertical-align: -2px; margin-right: 3px; }
@media (max-width: 768px) { .list-row { flex-direction: column; } .list-row .lr-img { width: 100%; aspect-ratio: 360 / 203; } }

/* ---------- 分页 ---------- */
.pagination { display: flex; justify-content: center; gap: 8px; margin-top: 44px; }
.pagination button {
  min-width: 40px; height: 40px; padding: 0 12px; border-radius: 10px; border: 1px solid var(--border);
  background: #fff; color: var(--text-body); font-size: 14px; transition: all .2s;
}
.pagination button:hover { border-color: var(--primary-text); color: var(--primary-text); }
.pagination button.active { background: var(--grad); border-color: transparent; color: #fff; box-shadow: var(--shadow-glow); }
.pagination button:disabled { opacity: .4; cursor: not-allowed; }

/* ============================================================
   联系页
   ============================================================ */
/* 右列自 2026-10-27 起是「直连行动卡」（原在线咨询表单已移除），
   两列等宽，卡片与左侧信息块上下对齐（grid 默认 stretch + 卡片内部 space-between） */
.contact-grid { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-12); align-items: stretch; }
.contact-info { display: flex; flex-direction: column; }
.contact-info .ci-item { display: flex; gap: 16px; padding: var(--space-6) 0; border-bottom: 1px solid var(--border); flex: 1; align-items: center; }
.contact-info .ci-item:last-child { border-bottom: none; }
.contact-info .ci-item .ci-icon {
  width: 48px; height: 48px; border-radius: 14px; flex-shrink: 0;
  background: linear-gradient(145deg, #0B1830, #0E2246);
  border: 1px solid rgba(111,195,255,.28);
  color: #6FC3FF; display: flex; align-items: center; justify-content: center; font-size: 19px;
  box-shadow: 0 8px 20px rgba(14,34,70,.25);
}
.contact-info .ci-item .ci-icon svg { width: 22px; height: 22px; display: block; }
.contact-info .ci-item h4 { font-size: 15px; margin-bottom: 4px; }
.contact-info .ci-item p { font-size: 14px; color: var(--text-muted); }
/* 电话/邮箱可点（tel:/mailto:）：继承文字色，hover 转品牌蓝，不加下划线破坏卡片质感 */
.contact-info .ci-item p a { color: inherit; text-decoration: none; transition: color .15s; }
.contact-info .ci-item p a:hover { color: var(--primary-text); text-decoration: underline; }

/* ============================================================
   直连行动卡（2026-10-27）—— 电话直连动线的唯一焦点位
   · 深色是稀缺资源：联系页全页仅此一处深色锚点（页头为浅色、页脚为全局深色）
   · 深底 + 细噪点 + 柔和悬浮阴影；号码为唯一高对比元素
   · 无表单、无地图、无图库素材（用户明确禁止项）
   ============================================================ */
.direct-card {
  position: relative; overflow: hidden;
  display: flex; flex-direction: column; align-items: flex-start;
  padding: var(--space-10) var(--space-8);
  border-radius: var(--radius-3xl);
  background: linear-gradient(150deg, #0B1830 0%, #0E2246 58%, #0B1E3A 100%);
  border: 1px solid rgba(111, 195, 255, .22);
  box-shadow: var(--shadow-float);
  /* opacity 一并纳入：.reveal 渐入与悬停抬升共用同一条 transition，否则渐入会因 transition 被覆盖而失去淡入 */
  transition: transform .28s ease, box-shadow .28s ease, border-color .28s ease, opacity .6s ease;
}
/* 细腻噪点：程序化生成，避免大面积纯色发闷（非图库素材）；纹理源见 --tex-noise */
.direct-card::before {
  content: ''; position: absolute; inset: 0; pointer-events: none;
  border-radius: inherit; opacity: .05;
  background-image: var(--tex-noise);
}
.direct-card > * { position: relative; z-index: 1; }
.direct-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-float-lg);
  border-color: rgba(111, 195, 255, .42);
}
/* 1) 引导标签 */
.dc-label {
  font-size: var(--fs-label); line-height: var(--lh-label);
  font-weight: 600; letter-spacing: .06em; color: var(--on-dark-brand);
}
/* 2) 核心号码 + 电话图标（整块可点） */
.dc-phone {
  position: relative; display: inline-flex; flex-direction: column; align-items: flex-start;
  gap: var(--space-2); margin-top: var(--space-4); text-decoration: none;
}
.dc-num {
  display: inline-block; position: relative;
  font-family: var(--font-en);
  font-size: var(--fs-hero); line-height: var(--lh-hero); font-weight: 800;
  letter-spacing: .01em; color: var(--on-dark);
  transition: text-shadow .25s ease, color .25s ease;
}
.dc-ico { display: inline-flex; color: #6FC3FF; }
.dc-ico svg { width: 24px; height: 24px; display: block; }
/* 呼吸灯：号码区的柔光脉冲，hover 时增强 */
.dc-phone::after {
  content: ''; position: absolute; left: -14px; top: -2px;
  width: calc(100% + 28px); height: 96px; border-radius: 18px;
  pointer-events: none; z-index: 0; transform-origin: left center;
  background: radial-gradient(ellipse at 26% 46%, rgba(46, 107, 255, .55), rgba(46, 107, 255, 0) 70%);
  opacity: 0; animation: dc-breathe 3.2s ease-in-out infinite;
}
.dc-phone > * { position: relative; z-index: 1; }
@keyframes dc-breathe {
  0%, 100% { opacity: 0; transform: scale(.97); }
  50% { opacity: .34; transform: scale(1); }
}
.direct-card:hover .dc-num { text-shadow: 0 0 28px rgba(143, 182, 255, .55); }
.direct-card:hover .dc-phone::after { animation-duration: 1.8s; }
/* 3) 信任短句 */
.dc-trust {
  margin: var(--space-3) 0 0; font-size: var(--fs-md); line-height: var(--lh-md);
  font-weight: 400; color: var(--on-dark-2);
}
/* 4) 备选入口：企微二维码（V5.40 启用：自 #wx 独立区块并入，主入口之一，96px 保证扫码余量） */
.dc-alt { margin-top: auto; padding-top: var(--space-6); display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-2); }
.dc-qr {
  /* 96px 是二维码本体尺寸；内边距与描边另计（content-box），object-fit 保证不变形、可扫 */
  display: block; width: 96px; height: 96px; box-sizing: content-box;
  object-fit: contain; border-radius: var(--r-sm); background: #fff; padding: 4px;
  border: 1px solid rgba(111, 195, 255, .28);
}
.dc-alt-tip { font-size: var(--fs-xs); line-height: var(--lh-xs); color: var(--on-dark-3); }

@media (prefers-reduced-motion: reduce) {
  .dc-phone::after { animation: none; opacity: .2; }
  .direct-card { transition: none; }
  .direct-card:hover { transform: none; }
}

/* 移动端（≤540px）：直连行动卡压缩为单列紧凑版
   用户指定：卡片高度压至 120px 内、电话号码缩至 36px、二维码隐藏或折叠
   → 同步收起 24px 电话图标，保证「首屏优先展示号码与信任短句」
   V5.40 覆盖说明：二维码已自 #wx 独立区块并入本卡（用户拍板），独立区块不存在了，
   小屏隐藏 .dc-alt 会让手机端失去微信入口 → 放开隐藏；「压高度/缩号码/收图标」保留。 */
@media (max-width: 540px) {
  .direct-card { padding: 14px 18px; }
  .dc-label { font-size: var(--fs-sm); line-height: 1.5; }
  .dc-phone { margin-top: var(--space-1); gap: 0; }
  .dc-num { font-size: var(--fs-hero-sm); line-height: var(--lh-hero-sm); }
  .dc-ico { display: none; }
  .dc-trust { margin-top: var(--space-1); font-size: var(--fs-sm); line-height: 1.5; }
  .dc-alt { padding-top: var(--space-4); }
}

/* V5.40：原 #wx 独立微信卡（V5.28 建）的 .wx-card/.wx-qr 等样式已随区块删除清理；
   二维码现由 .direct-card 内的 .dc-qr 承载（见上方 dc-alt 段）。 */

/* Toast */
.toast {
  position: fixed; top: 20px; left: 50%; transform: translateX(-50%) translateY(-20px);
  background: rgba(8,15,30,.94); color: #fff; padding: 12px 24px; border-radius: 12px; font-size: 14px;
  border: 1px solid rgba(255,255,255,.1);
  opacity: 0; visibility: hidden; transition: all .3s; z-index: 999; box-shadow: 0 16px 40px rgba(0,0,0,.4);
  backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
}
.toast.show { opacity: 1; visibility: visible; transform: translateX(-50%) translateY(0); }
.toast.success { background: rgba(11,80,45,.95); }
.toast.error { background: rgba(140,26,26,.95); }

/* ============================================================
   产品列表 - 凯视达风格左图右文卡片
   ============================================================ */
.product-row-card {
  display: flex; align-items: center; gap: 0;
  background: #fff; border: 1px solid rgba(0,0,0,.06);
  border-radius: 14px; overflow: hidden;
  transition: all .28s; cursor: pointer; text-decoration: none;
  box-shadow: 0 1px 2px rgba(0,0,0,.04);
}
.product-row-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 18px 40px rgba(10,92,255,.14), 0 0 0 1px rgba(10,92,255,.08);
  border-color: rgba(10,92,255,.18);
}
.product-row-card .prc-img {
  width: 42%; min-height: 170px; background: #f4f6f8;
  display: flex; align-items: center; justify-content: center;
  padding: 20px; flex-shrink: 0;
}
.product-row-card .prc-img img {
  max-width: 100%; max-height: 150px; object-fit: contain;
  transition: transform .35s;
}
.product-row-card:hover .prc-img img { transform: scale(1.06); }
.product-row-card .prc-body {
  padding: 24px 24px; flex: 1; display: flex; flex-direction: column; justify-content: center;
}
.product-row-card .prc-body h3 {
  font-size: 17px; font-weight: 700; color: var(--text);
  margin-bottom: 12px; line-height: 1.35;
}
.product-row-card .prc-models {
  font-size: 13px; color: var(--text-muted); line-height: 1.6;
}

/* ============================================================
   产品详情 - 单页多区块（SEO 友好：DOM 一次性渲染 + 锚点滚动）
   ============================================================ */
.p-secnav-wrap {
  /* 默认正常流，不 sticky；由 JS 在滚动过原始位置后添加 .stuck 改为 fixed 吸顶 */
  z-index: 45;
  background: rgba(255,255,255,.92);
  backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px);
  border-bottom: 1px solid rgba(0,0,0,.07);
}
/* 滚动过原始位置后：fixed 锚定在全局导航下方 */
.p-secnav-wrap.stuck {
  position: fixed; left: 0; right: 0; top: var(--header-h, 72px);
}
/* 占位元素：防止 fixed 启用时下方内容上移塌陷 */
.p-secnav-placeholder { display: none; height: 0; }
.p-secnav-placeholder.show { display: block; }
.p-secnav { display: flex; gap: 2px; overflow-x: auto; }
.p-secnav-item {
  padding: 15px 24px; font-size: 15px; font-weight: 500;
  color: var(--text-muted); border-bottom: 3px solid transparent;
  white-space: nowrap; transition: color .2s;
}
.p-secnav-item:hover { color: var(--primary-text); }
.p-secnav-item.active { color: var(--primary-text); border-bottom-color: var(--primary-text); font-weight: 700; }

/* 区块 */
.p-sec {
  padding-top: 56px; padding-bottom: 64px;
  /* scroll-margin-top = 全局导航(100px) + 区块导航(~56px) + 余量 ≈ 162px，
     确保 scrollIntoView(block:'start') 后标题不被吸顶栏遮挡 */
  scroll-margin-top: 134px;
}
.p-sec-alt { background: #f4f6f8; border-top: 1px solid rgba(0,0,0,.05); }
.sec-head {
  display: flex; align-items: baseline; gap: 12px;
  margin-bottom: 32px; padding-bottom: 12px; border-bottom: 2px solid var(--text);
}
.sec-head h2 { font-size: 24px; font-weight: 700; margin: 0; }
.sec-sub { font-size: 12px; letter-spacing: 3px; color: var(--text-muted); font-weight: 700; }
.sec-note { margin-top: 16px; font-size: 12px; color: var(--text-muted); }

/* 关于我们 HUB：正文段落横向铺满容器（对齐项目实力页满宽处理；about-intro 仅本页使用） */
.about-intro { max-width: none; }
.about-intro p { font-size: 15px; line-height: 2.1; color: var(--text-main, #33415E); margin: 0 0 16px; }
.about-intro strong { color: #0F1F3A; }

/* 产品简介 - 左文右图（首屏文本优先） */
/* 简介区：单栏全宽（轮播已移除，主图由首屏 Hero 承担） */
.intro-text { font-size: 15px; line-height: 2; color: var(--text-body); }
.intro-text p { margin-bottom: 16px; }
.intro-text .lead { font-size: 16px; color: var(--text); font-weight: 500; }
.intro-block { margin: 24px 0; }
.intro-block h4 {
  display: flex; align-items: center; gap: 9px;
  font-size: 16px; font-weight: 700; color: var(--text); margin-bottom: 12px;
}
.intro-block h4::before {
  content: ''; width: 4px; height: 16px; border-radius: 2px;
  background: var(--grad);
}
.pain-list { list-style: none; padding: 0; margin: 0; }
.pain-list li {
  padding: 9px 0 9px 24px; position: relative; color: var(--text-body);
  border-bottom: 1px dashed rgba(0,0,0,.07);
}
.pain-list li::before {
  content: ''; position: absolute; left: 5px; top: 18px;
  width: 7px; height: 7px; border-radius: 50%; background: var(--grad);
}
.hl-list { list-style: none; padding: 0; margin: 0; }
.hl-list li { padding: 8px 0; display: flex; align-items: flex-start; gap: 12px; }
.hl-dot { flex-shrink: 0; width: 6px; height: 6px; border-radius: 50%; background: var(--primary); margin-top: 11px; }
.scene-tags { display: flex; flex-wrap: wrap; gap: 12px; }
.scene-tags span {
  background: var(--primary-soft); color: var(--primary-text);
  border: 1px solid rgba(10,92,255,.18); padding: 8px 15px;
  border-radius: 999px; font-size: 13px; font-weight: 500;
}
.intro-cta { display: flex; gap: 12px; margin-top: 24px; flex-wrap: wrap; }

/* 应用案例 - 图文组合 */
.case-mini {
  display: flex; gap: 20px; background: #fff;
  border-radius: 14px; padding: 20px; box-shadow: var(--shadow-sm);
  transition: transform .25s, box-shadow .25s;
}
.case-mini:hover { transform: translateY(-3px); box-shadow: var(--shadow-md); }
.case-mini .cm-img { flex-shrink: 0; }
.case-mini .cm-img img {
  width: 168px; height: 116px; object-fit: cover;
  border-radius: 10px; display: block;
}
.cm-body { flex: 1; min-width: 0; }
.cm-tags { display: flex; align-items: center; gap: 12px; margin-bottom: 8px; }
.cm-loc { font-size: 12px; color: var(--text-muted); }
.cm-body h4 { font-size: 16px; font-weight: 700; margin-bottom: 8px; line-height: 1.4; }
.cm-body h4 a { color: var(--text); }
.cm-body h4 a:hover { color: var(--primary-text); }
.cm-desc {
  font-size: 13px; color: var(--text-muted); line-height: 1.8;
  margin-bottom: 8px; display: -webkit-box; -webkit-line-clamp: 2;
  -webkit-box-orient: vertical; overflow: hidden;
}
.cm-link { font-size: 13px; font-weight: 600; color: var(--primary-text); }

/* 相关下载 */
.dl-item {
  display: flex; align-items: center; gap: 20px;
  background: #fff; border-radius: 14px; padding: 20px 24px;
  margin-bottom: 16px; box-shadow: var(--shadow-sm);
  transition: transform .25s, box-shadow .25s;
}
.dl-item:hover { transform: translateY(-2px); box-shadow: var(--shadow-md); }
.dl-icon {
  width: 52px; height: 52px; border-radius: 12px; flex-shrink: 0;
  background: linear-gradient(135deg, #ef4444, #f97316);
  color: #fff; font-size: 13px; font-weight: 800; letter-spacing: 1px;
  display: flex; align-items: center; justify-content: center;
}
.dl-main { flex: 1; min-width: 0; }
.dl-name { font-size: 15px; font-weight: 600; color: var(--text); }
.dl-desc { font-size: 13px; color: var(--text-muted); margin-top: 3px; line-height: 1.6; }
.dl-type {
  flex-shrink: 0; font-size: 12px; padding: 3px 12px; border-radius: 999px;
  background: var(--bg-soft); color: var(--text-muted); font-weight: 500;
}
.dl-btn { flex-shrink: 0; }

@media (max-width: 1024px) {
  .case-mini { flex-direction: column; }
  .case-mini .cm-img img { width: 100%; height: auto; max-height: 200px; }
}

/* ============================================================
   产品详情 - 标签栏
   ============================================================ */
.product-tabs {
  display: flex; gap: 12px; flex-wrap: wrap;
  border-bottom: 1px solid rgba(0,0,0,.08); padding-bottom: 0;
}
.tab-btn {
  padding: 12px 28px; border: 1px solid rgba(0,0,0,.1);
  background: #fff; color: var(--text-muted); font-size: 14px;
  border-radius: 10px 8px 0 0; cursor: pointer; font-weight: 500;
  transition: all .2s; margin-bottom: -1px; position: relative;
  font-family: inherit;
}
.tab-btn:hover {
  color: var(--primary-text); border-color: rgba(10,92,255,.3);
  background: rgba(10,92,255,.04);
}
.tab-btn.active {
  background: var(--primary); color: #fff; border-color: var(--primary-text);
  font-weight: 600; box-shadow: 0 4px 14px rgba(10,92,255,.35);
}

/* 标签内容区 */
.tab-content-section {
  background: #f4f6f8; padding: 40px 0 64px;
  border-top: 1px solid rgba(0,0,0,.06);
}
.tab-panel { display: none; }
.tab-panel.active { display: block; animation: fadeIn .35s ease; }
@keyframes fadeIn { from { opacity:0; transform: translateY(8px); } to { opacity:1; transform: none; } }

/* ============================================================
   产品详情 - 大号序号功能亮点（凯视达风格）
   ============================================================ */
.feature-grid {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px;
}
.feature-item {
  background: #fff; border-radius: 14px; padding: 32px 28px;
  border: 1px solid rgba(0,0,0,.06);
  box-shadow: 0 1px 3px rgba(0,0,0,.04);
  position: relative; overflow: hidden;
  transition: all .28s;
}
.feature-item:hover {
  transform: translateY(-3px);
  box-shadow: 0 14px 34px rgba(10,92,255,.1);
  border-color: rgba(10,92,255,.15);
}
.feature-num {
  font-size: 64px; font-weight: 800; line-height: 1;
  color: rgba(10,92,255,.08); position: absolute; top: 14px; right: 18px;
  font-family: var(--font-en), ui-monospace, monospace;
  pointer-events: none; user-select: none;
}
.feature-body { position: relative; z-index: 1; }
.feature-body h3 {
  font-size: 18px; font-weight: 700; color: var(--text);
  margin-bottom: 12px;
}
.red-line {
  width: 36px; height: 3px; background: #e11d48;
  border-radius: 2px; margin-bottom: 16px;
}
.feature-body p {
  font-size: 14px; color: var(--text-muted); line-height: 1.75;
}

/* ============================================================
   响应式
   ============================================================ */
@media (max-width: 1024px) {
  .nav { display: none; }
  .nav-toggle { display: block; }
  .grid-4 { grid-template-columns: repeat(2, 1fr); }
  .grid-3 { grid-template-columns: repeat(2, 1fr); }
  .adv-grid { grid-template-columns: repeat(2, 1fr); }
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .product-detail-grid { grid-template-columns: 1fr; }
  .contact-grid { grid-template-columns: 1fr; }
  .hero { height: 360px; }
  .hero-slide h2 { font-size: 32px; }
  .feature-grid { grid-template-columns: repeat(2, 1fr); }
  .product-row-card .prc-img { width: 38%; min-height: 140px; }
}
@media (max-width: 768px) {
  .grid-4, .grid-3, .grid-2 { grid-template-columns: 1fr; }
  .footer-grid { grid-template-columns: 1fr; gap: 32px; }
  .adv-grid { grid-template-columns: 1fr 1fr; gap: 16px; }
  .adv-card { padding: 24px 16px; }
  .section { padding: 52px 0; }
  .section-title h2 { font-size: 24px; }
  .hero { height: 300px; }
  .hero-slide { padding: 40px 0; }
  .hero-slide h2 { font-size: 26px; }
  .feature-grid { grid-template-columns: 1fr; }
  .product-row-card { flex-direction: column; }
  .product-row-card .prc-img { width: 100%; min-height: 160px; }
  .product-row-card .prc-body { padding: 20px 20px; }
  .tab-btn { padding: 8px 16px; font-size: 13px; }
}

/* 尊重减弱动效偏好 */
@media (prefers-reduced-motion: reduce) {
  .reveal { opacity: 1; transform: none; transition: none; }
  html { scroll-behavior: auto; }
}

/* ============================================================
   产品中心：分类导航 + 动态内容区（products.html）
   设计要点：所有系列卡片在加载时一次性渲染进 DOM（SEO/GEO 友好），
   仅用 CSS display 切换可见性；URL hash 联动产品线。
   ============================================================ */
.pline-nav {
  display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin-bottom: 32px;
}
.pline-btn {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 12px 20px; border: 1px solid var(--border);
  background: #fff; color: var(--text-body);
  border-radius: 999px; font-size: 15px; line-height: 1; cursor: pointer;
  transition: color .25s, border-color .25s, background .25s, box-shadow .25s;
}
.pline-btn .pline-ico { font-size: 17px; line-height: 1; }
.pline-btn:hover {
  border-color: var(--primary-text); color: var(--primary-text);
  box-shadow: 0 4px 14px rgba(10,92,255,.12);
  text-decoration: underline; text-underline-offset: 4px;
}
.pline-btn.is-active {
  background: var(--primary); border-color: var(--primary-text);
  color: #fff; font-weight: 600; box-shadow: 0 6px 18px rgba(10,92,255,.28);
}
.pline-btn.is-active:hover { text-decoration: none; }

.pline-panel { display: none; }
.pline-panel.is-active { display: block; animation: plineFade .35s ease; }
@keyframes plineFade { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
.pline-head { display: flex; align-items: baseline; gap: 12px; margin: 0 0 20px; }
.pline-head h2 { font-size: 22px; font-weight: 700; color: var(--text); margin: 0; }
.pline-empty { color: var(--text-muted); padding: 32px 0; }

.pgrid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
@media (max-width: 1024px) { .pgrid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 768px) { .pgrid { grid-template-columns: 1fr; } }

.pcard {
  background: #fff; border: 1px solid var(--border); border-radius: 14px;
  overflow: hidden; display: flex; flex-direction: column;
  transition: transform .25s, box-shadow .25s, border-color .25s;
}
.pcard:hover { transform: translateY(-5px); box-shadow: 0 16px 38px rgba(20,40,80,.14); border-color: var(--primary-text); }
.pc-img {
  display: block; width: 360px; max-width: 100%; height: 203px;
  margin: 20px auto 0; border-radius: 10px; overflow: hidden; background: #eef2f8;
}
.pc-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
/* 卡片正文容器。注意：必须排除 body —— 页面级外壳类名也叫 pc-body
   （<body class="pc-body">，见下方 body.pc-body），若不排除会让整页被内缩 16/18px，
   表现为"内容被装在固定宽度的盒子里、四周出现白边"。（2026-10-03 修复） */
.pc-body:not(body) { padding: 16px 20px 20px; display: flex; flex-direction: column; flex: 1; }
.pc-name { font-size: 18px; font-weight: 700; margin: 0 0 8px; color: var(--text); }
.pc-name a { color: inherit; }
.pc-name a:hover { color: var(--primary-text); }
.pc-sell {
  font-size: 14px; color: var(--text-muted); margin: 0 0 16px;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
/* V5.35：此处原有 `.pc-cta { margin-top:auto; display:flex; gap:12px }` 是产品卡旧按钮行样式，
   但配套的 .btn-quote/.btn-detail 在全站 HTML 与生成器中已 0 引用（死代码）。
   它与下方「底部咨询入口」的 .pc-cta 同名，导致蓝色咨询卡被 flex 横排成三列。
   删除该冲突规则；.btn-quote/.btn-detail 定义暂留（另有 .cat-cases 派生规则），不牵动其它页面。 */
.btn-quote, .btn-detail {
  flex: 1; display: flex; align-items: center; justify-content: center;
  padding: 9px 0; border-radius: 10px; font-size: 14px; font-weight: 600;
  transition: all .2s; text-decoration: none;
}
.btn-quote { background: var(--primary); color: #fff; }
.btn-quote:hover { background: var(--primary-2, var(--primary-2)); }
.btn-detail { background: #fff; color: #5a6678; border: 1px solid var(--border); }
.btn-detail:hover { border-color: var(--primary-text); color: var(--primary-text); }

/* ============================================================
   产品中心 V2：Tab 分类 + 整体解决方案 + 核心单品与生态优选
   ============================================================ */

.prod-center { background: #F8FAFD; }
.prod-center .section { background: transparent; }

/* ① 分类 Tab */
.prod-tabs {
  display: flex; justify-content: center; flex-wrap: wrap;
  gap: 0; margin-bottom: 44px;
  border-bottom: 1px solid var(--border);
}
.prod-tab {
  padding: 16px 28px; background: none; border: none;
  font-size: 15px; font-weight: 600; color: var(--text-muted);
  border-bottom: 3px solid transparent; cursor: pointer;
  transition: color .2s, border-color .2s;
}
.prod-tab:hover { color: var(--primary-text); }
.prod-tab.is-active { color: var(--primary-text); border-bottom-color: var(--primary-text); }

/* 产品中心：锚点导航条 + 全类目平铺区块（静态直出，gen-products.js） */
.prod-anchorbar {
  display: flex; justify-content: center; flex-wrap: wrap; gap: 0;
  margin-bottom: 56px; border-bottom: 1px solid var(--border);
}
.prod-anchorbar a {
  padding: 16px 28px; font-size: 15px; font-weight: 600;
  color: var(--text-muted); text-decoration: none;
  border-bottom: 3px solid transparent;
  transition: color .2s, border-color .2s;
}
.prod-anchorbar a:hover { color: var(--primary-text); border-bottom-color: var(--primary-text); }
.prod-cat { margin-bottom: 76px; scroll-margin-top: 120px; }
.prod-cat:last-of-type { margin-bottom: 32px; }
.prod-cat .tab-banner { margin-bottom: 32px; }
.prod-sub-block { margin-bottom: 32px; }
.prod-sub-block:last-child { margin-bottom: 0; }

/* ② 区块标题 */
.prod-block { margin-bottom: 56px; }
.prod-sec-title {
  display: flex; align-items: center; gap: 12px;
  font-size: 20px; font-weight: 700; color: var(--text); margin: 0 0 24px;
}
.prod-sec-title::before {
  content: ''; width: 4px; height: 20px;
  background: var(--primary); border-radius: 2px;
}

/* ③ 整体解决方案（左图右文） */
.os-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px; }
.os-card {
  display: flex; background: #fff; border: 1px solid var(--border);
  border-radius: var(--radius-xl); overflow: hidden;
  transition: transform .25s, box-shadow .25s, border-color .25s;
}
.os-card:hover {
  transform: translateY(-4px); border-color: var(--primary-text);
  box-shadow: 0 14px 34px rgba(20,40,80,.10);
}
.os-media {
  flex: 0 0 280px; min-height: 220px;
  background:
    radial-gradient(420px 160px at 80% -20%, rgba(10,92,255,.28), transparent 62%),
    radial-gradient(320px 140px at 10% 130%, rgba(0,208,255,.14), transparent 60%),
    linear-gradient(180deg, #0A1526 0%, #0F1E38 100%);
  display: flex; align-items: center; justify-content: center;
  color: #8FA9CF; font-size: 14px; text-align: center; padding: 20px;
}
.os-body {
  flex: 1; padding: 28px; display: flex; flex-direction: column; min-width: 0;
}
.os-name { font-size: 18px; font-weight: 700; color: var(--text); margin: 0 0 12px; }
.os-desc { font-size: 14px; color: var(--text-body); line-height: 1.7; flex: 1; }
.os-btn {
  align-self: flex-start; margin-top: 20px;
  padding: 9px 24px; background: var(--primary); color: #fff;
  border-radius: 6px; font-size: 14px; font-weight: 600;
  transition: background .2s;
}
.os-btn:hover { background: var(--primary-2, var(--primary-2)); }

/* ④ 核心单品与生态优选 */
.cp-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.cp-card {
  background: #fff; border: 1px solid var(--border);
  border-radius: var(--radius-xl); overflow: hidden;
  display: flex; flex-direction: column;
  transition: transform .25s, box-shadow .25s, border-color .25s;
}
.cp-card:hover {
  transform: translateY(-4px); border-color: var(--primary-text);
  box-shadow: 0 14px 34px rgba(20,40,80,.10);
}
.cp-tag {
  align-self: flex-start; margin: 16px 16px 0;
  padding: 4px 12px; border-radius: 14px;
  font-size: 12px; font-weight: 600;
}
.cp-tag.core { background: #EEF4FF; color: var(--primary-text); }
.cp-tag.eco { background: #F0FDF4; color: #16A34A; }
.cp-thumb {
  height: 160px; margin: 16px 16px 0;
  background: #F5F7FA;
  display: flex; align-items: center; justify-content: center;
  color: var(--text-muted); font-size: 13px; border-radius: var(--radius);
  overflow: hidden;
}
/* ul+li 产品列表（/products/ 静态直出）与卡片配图 */
ul.os-grid, ul.cp-grid { list-style: none; margin: 0; padding: 0; }
.cp-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.cp-body { padding: 16px 16px 20px; text-align: center; flex: 1; }
.cp-name { font-size: 16px; font-weight: 700; color: var(--text); margin: 0 0 8px; }
.cp-name a { color: inherit; }
.cp-name a:hover { color: var(--primary-text); }
.cp-desc { font-size: 13px; color: var(--text-muted); line-height: 1.6; }

/* 专题 Banner（每个 Tab 顶部动态渲染分类标题 + 描述，左对齐蓝竖线，与下方区块标题成层级） */
.tab-banner { margin-bottom: 40px; }
.tab-banner .tb-title {
  display: flex; align-items: center; gap: 12px;
  font-size: 26px; font-weight: 700; color: var(--text); margin: 0 0 12px; line-height: 1.3;
}
.tab-banner .tb-title::before {
  content: ''; width: 5px; height: 24px; background: var(--primary); border-radius: 2px;
}
.tab-banner .tb-desc { font-size: 15px; color: var(--text-body); line-height: 1.85; max-width: 900px; margin: 0; }

/* 单品型号规格行 */
.cp-spec {
  font-size: 12px; color: var(--text-body); background: #F5F7FA;
  border-radius: 6px; padding: 5px 12px; margin: 0 0 8px; display: inline-block;
}
/* 缩略图内图片适配 */
.cp-thumb img { width: 100%; height: 100%; object-fit: contain; }
/* 热门角标 */
.cp-hot {
  position: absolute; top: 12px; right: 12px; z-index: 2;
  background: var(--danger); color: #fff; font-size: 12px; font-weight: 600;
  padding: 3px 9px; border-radius: 14px; letter-spacing: .5px;
}
.cp-card { position: relative; }

/* 全部产品归档页：筛选工具条 */
.prod-all { padding-top: 48px; }
.pa-sub { margin: 12px 0 0; font-size: 15px; color: var(--text-muted); }
/* 枢纽页 Banner 内「全部产品档案」入口 */
.banner-link {
  display: inline-block; margin-top: 16px; padding: 9px 20px;
  background: rgba(255,255,255,.16); border: 1px solid rgba(255,255,255,.34);
  color: #fff; border-radius: 14px; font-size: 14px; transition: all .2s;
}
.banner-link:hover { background: #fff; color: var(--primary-text); border-color: #fff; }
.pa-toolbar {
  display: flex; flex-wrap: wrap; gap: 16px 24px; align-items: center;
  margin-bottom: 32px; padding: 16px 20px;
  background: #fff; border: 1px solid var(--border); border-radius: var(--radius-xl);
}
.pa-search { flex: 1 1 240px; min-width: 200px; }
.pa-search input {
  width: 100%; padding: 12px 16px; font-size: 14px;
  border: 1px solid var(--border); border-radius: 10px; outline: none;
}
.pa-search input:focus { border-color: var(--primary-text); }
.pa-group { display: flex; align-items: center; gap: 8px; }
.pa-group > label { font-size: 13px; color: var(--text-muted); }
.pa-btn {
  padding: 8px 16px; border: 1px solid var(--border); background: #fff;
  border-radius: 14px; font-size: 13px; color: var(--text-body); cursor: pointer;
  transition: all .2s;
}
.pa-btn:hover { border-color: var(--primary-text); color: var(--primary-text); }
.pa-btn.is-active { background: var(--primary); border-color: var(--primary-text); color: #fff; }
.pa-cat select {
  padding: 9px 12px; font-size: 13px; border: 1px solid var(--border);
  border-radius: 10px; outline: none; background: #fff; cursor: pointer;
}
.pa-cat select:focus { border-color: var(--primary-text); }
.pa-count { font-size: 13px; color: var(--text-muted); margin-left: auto; }
.pa-empty { grid-column: 1 / -1; text-align: center; padding: 60px 20px; color: var(--text-muted); }


/* 分类内容完善中占位 */
.prod-empty {
  grid-column: 1 / -1;
  text-align: center; padding: 64px 24px;
  color: var(--text-muted); font-size: 15px; letter-spacing: .5px;
  background: #fff; border: 1px dashed var(--border);
  border-radius: var(--radius-xl);
}

/* ---------- 产品子页（product-sub.html 专题落地页） ---------- */
.cat-page { padding-top: 56px; }
.cat-intro { margin-bottom: 44px; }
.cat-intro-title {
  font-size: 24px; font-weight: 700; color: var(--text);
  margin: 0 0 16px; line-height: 1.35;
}
.cat-lead {
  font-size: 15px; color: var(--text-body); line-height: 1.9;
  max-width: 900px; margin: 0;
}

/* 枢纽 → 子页 入口 */
.prod-more-wrap { margin: 24px 0 8px; text-align: center; }
.prod-more {
  display: inline-block; padding: 13px 28px; border-radius: 999px;
  background: #fff; color: var(--primary-text);
  border: 1px solid rgba(26, 92, 255, .35);
  font-size: 14px; font-weight: 600; text-decoration: none;
  transition: all .2s ease;
}
.prod-more:hover { background: var(--primary, var(--primary)); color: #fff; box-shadow: 0 8px 20px rgb(26 92 255 / .22); }

/* 选型指南 */
.cat-guide { list-style: none; padding: 0; margin: 0; display: grid; gap: 16px; }
.cat-guide li {
  position: relative; padding: 16px 20px 16px 48px;
  background: #fff; border: 1px solid var(--border);
  border-radius: var(--radius-lg); font-size: 14px; color: var(--text-body);
  line-height: 1.7;
}
.cat-guide li::before {
  content: ''; position: absolute; left: 18px; top: 20px;
  width: 14px; height: 14px; border-radius: 6px;
  background: var(--primary, var(--primary));
  box-shadow: 0 0 0 4px rgb(26 92 255 / .12);
}

/* FAQ（原生 details） */
.faq-list { display: grid; gap: 12px; }
.faq-item {
  background: #fff; border: 1px solid var(--border);
  border-radius: var(--radius-lg); overflow: hidden;
  transition: border-color .2s ease, box-shadow .2s ease;
}
.faq-item[open] { border-color: rgba(26, 92, 255, .4); box-shadow: 0 6px 18px rgb(26 92 255 / .08); }
.faq-item summary {
  list-style: none; cursor: pointer; padding: 17px 48px 17px 20px;
  font-size: 15px; font-weight: 600; color: var(--text);
  position: relative; user-select: none;
}
.faq-item summary::-webkit-details-marker { display: none; }
.faq-ico {
  position: absolute; right: 20px; top: 50%; width: 14px; height: 14px;
  transform: translateY(-50%);
}
.faq-ico::before, .faq-ico::after {
  content: ''; position: absolute; background: var(--primary, var(--primary));
  border-radius: 2px; transition: transform .2s ease;
}
.faq-ico::before { left: 6px; top: 0; width: 2px; height: 14px; }
.faq-ico::after { left: 0; top: 6px; width: 14px; height: 2px; }
.faq-item[open] .faq-ico::before { transform: scaleY(0); }
.faq-a { padding: 0 20px 20px; font-size: 14px; color: var(--text-body); line-height: 1.85; }

/* 相关案例 + 转化 CTA */
.cat-cases {
  margin: 48px 0 0; background: linear-gradient(120deg, #0e2a6b, var(--primary));
  border-radius: var(--radius-xl); padding: 32px 32px; color: #fff;
}
.cat-cases .cc-inner { display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap; }
.cat-cases h3 { margin: 0 0 8px; font-size: 18px; }
.cat-cases p { margin: 0; color: #d4e0ff; font-size: 14px; }
.cat-cases .btn-quote { background: #fff; color: var(--primary-text); border: none; }
.cat-cases .btn-quote:hover { background: #eaf0ff; }
.cat-cta {
  margin: 24px 0 8px; text-align: center; padding: 40px 24px;
  background: #f4f7fc; border: 1px solid var(--border); border-radius: var(--radius-xl);
}
.cat-cta h3 { margin: 0 0 8px; font-size: 20px; color: var(--text); }
.cat-cta p { margin: 0 0 20px; color: var(--text-muted); font-size: 14px; }

/* 产品子页响应式 */
@media (max-width: 768px) {
  .cat-cases { padding: 24px; }
  .cat-cases .cc-inner { flex-direction: column; align-items: flex-start; }
  .cat-cases .btn-quote { width: 100%; text-align: center; }
}

/* 产品中心 V2 响应式 */
@media (max-width: 1024px) {
  .os-media { flex: 0 0 220px; }
}
@media (max-width: 1024px) {
  .os-grid { grid-template-columns: 1fr; }
  .cp-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 768px) {
  .prod-tab { padding: 12px 20px; font-size: 14px; }
  .os-card { flex-direction: column; }
  .os-media { flex: none; width: 100%; min-height: 160px; }
  .os-body { padding: 24px; }
  .cp-grid { grid-template-columns: 1fr; }
}

/* ============================================================
   首页「简洁大气」版：浅色大留白首屏 + 无图核心产品网格
   对标 talkweb：单一蓝 + 白 + 灰，首屏一句话定位，大留白
   ============================================================ */

/* 首屏：浅色大留白，居中一句话定位 */
.hero-clean {
  position: relative;
  height: 480px;
  display: flex;
  align-items: center;
  text-align: left;
  overflow: hidden;
  background:
    /* V6.01：白柔光整体加重（0.96/0.92/0.86 → 1/0.95/0.88），压背景图案噪点，标题对比更强 */
    radial-gradient(125% 120% at 28% 18%, rgba(255,255,255,1) 0%, rgba(241,247,253,.95) 46%, rgba(224,236,250,.88) 100%),
    url(../images/hero-bg.svg) center/cover no-repeat;
}
.hero-clean .container { position: relative; z-index: 2; width: 100%; } /* width:100% 抵消 flex item 内容收缩（2026-10-30 容器统一 1300） */
.hero-clean-inner { max-width: 1300px; margin: 0 auto; } /* 2026-10-30 用户定稿：文案区与全站容器统一 1300（原 880） */
.hc-eyebrow {
  display: inline-block; font-size: 14px; font-weight: 600; letter-spacing: 3px;
  color: var(--primary-text); margin-bottom: 12px;
}
.hc-title {
  font-size: clamp(34px, 5vw, 56px); font-weight: 700; color: var(--text);
  line-height: 1.15; letter-spacing: .5px; margin-bottom: 22px; /* V6.01 16→22 标题与轮播层级拉开 */
}
.hc-actions { display: flex; gap: 16px; justify-content: flex-start; flex-wrap: wrap; margin-bottom: 18px; }
.hc-trust { font-size: 12px; color: var(--text-muted); letter-spacing: 1px; text-align: left; } /* V6.01 14→12 弱化信任行，降首屏密度 */
/* 首屏左右分栏 + 场景轮播（V2.03：H1 恒定，仅轮换场景副文案与右栏线稿） */
.hero-grid { display: flex; align-items: center; gap: 48px; }
.hero-left { flex: 1 1 62%; max-width: 760px; }
.hero-right { flex: 0 0 33%; position: relative; height: 320px; display: flex; align-items: center; justify-content: center; }
.hero-rotator { position: relative; min-height: 92px; margin-bottom: 22px; }
.hrs-slide { position: absolute; inset: 0; opacity: 0; transform: translateY(8px); transition: opacity .5s ease, transform .5s ease; pointer-events: none; }
.hrs-slide.active { position: relative; opacity: 1; transform: none; pointer-events: auto; }
.hrs-scene { font-size: clamp(18px, 2.2vw, 24px); font-weight: 700; color: var(--primary-text); margin-bottom: 8px; }
.hrs-desc { font-size: clamp(14px, 1.5vw, 17px); color: var(--text-body); line-height: 1.8; max-width: 620px; }
.hero-right .hrs-visual { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; opacity: 0; transition: opacity .5s ease; }
.hero-right .hrs-visual.active { opacity: 1; }
.hero-right svg { width: 100%; max-width: 340px; height: auto; color: #5b7da8; opacity: .12; }
.hero-dots { display: flex; gap: 10px; margin-top: 6px; }
.hero-dots .hdot { width: 30px; height: 5px; padding: 0; border: 0; border-radius: 3px; background: rgba(10,92,255,.22); cursor: pointer; transition: background .25s ease; }
.hero-dots .hdot.active { background: var(--primary); }
.hero-dots .hdot:hover { background: rgba(10,92,255,.5); }

/* 首页右侧圆点锚点导航 + 板块淡入（不劫持滚动，仅引导 + 当前区高亮） */
.home-dots {
  position: fixed; right: 22px; top: 50%; transform: translateY(-50%);
  z-index: 90; display: flex; flex-direction: column; align-items: flex-end; gap: 16px;
}
.hd-dot {
  position: relative; width: 10px; height: 10px; border-radius: 999px;
  background: rgba(10,92,255,.25); transition: background .25s ease, width .25s ease;
}
.hd-dot:hover { background: rgba(10,92,255,.55); }
.hd-dot.active { background: var(--primary); width: 30px; }
.hd-tip {
  position: absolute; right: 22px; top: 50%; transform: translateY(-50%);
  white-space: nowrap; font-size: 12px; line-height: 1; color: var(--text);
  background: #fff; padding: 5px 12px; border-radius: 6px;
  box-shadow: 0 6px 18px rgba(15,40,90,.14); opacity: 0; pointer-events: none;
  transition: opacity .2s ease;
}
.hd-dot:hover .hd-tip, .hd-dot.active .hd-tip { opacity: 1; }
/* 首屏收敛（2026-10-25）：圆点导航改为滚动超过首屏才浮现——首屏只保留
   header 导航 + hero 两个主 CTA，7 个圆点不再与主 CTA 争夺注意力；
   与悬浮分享/电话组同一规则（滚动 300px 后加 .show）。
   无 JS 时不受影响：.js-reveal 由 home-dots.js 添加，无 JS 圆点常驻可见。 */
.js-reveal .home-dots { opacity: 0; visibility: hidden; transform: translateY(-50%) translateX(14px); transition: opacity .25s ease, transform .25s ease, visibility .25s; }
.js-reveal .home-dots.show { opacity: 1; visibility: visible; transform: translateY(-50%); }
/* 锚点定位留出吸顶导航空间，避免被遮挡 */
main > section { scroll-margin-top: var(--nav-h); }
/* 板块淡入：仅 JS 就绪后隐藏，无 JS / 减弱动效时内容正常显示（不影响 SEO/爬虫） */
.js-reveal .reveal { opacity: 0; transform: translateY(26px); transition: opacity .6s ease, transform .6s ease; }
.js-reveal .reveal.in-view { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  .js-reveal .reveal { opacity: 1; transform: none; transition: none; }
}
@media (max-width: 768px) {
  .home-dots { display: none; }
}

/* 核心产品：无图干净网格，细线分隔，大留白 */
.home-core { background: var(--bg); }
.core-grid {
  display: grid; grid-template-columns: repeat(4, 1fr);
  border: 1px solid var(--border); border-radius: var(--radius-xl); overflow: hidden;
  background: var(--bg);
}
.core-card {
  display: flex; flex-direction: column; padding: 40px 32px;
  border-right: 1px solid var(--border); transition: background .22s ease;
}
.core-card:last-child { border-right: none; }
.core-card h3 { font-size: 18px; font-weight: 700; color: var(--text); margin-bottom: 12px; transition: color .2s; }
.core-card p { color: var(--text-muted); font-size: 14px; line-height: 1.7; margin-bottom: 16px; }
.core-more { margin-top: auto; font-size: 13px; font-weight: 600; color: var(--primary-text); }
.core-card:hover { background: var(--bg-soft); }
.core-card:hover h3 { color: var(--primary-text); }

/* 首页简洁版响应式 */
@media (max-width: 1024px) {
  .core-grid { grid-template-columns: repeat(2, 1fr); }
  .core-card:nth-child(2n) { border-right: none; }
  .core-card:nth-child(1), .core-card:nth-child(2) { border-bottom: 1px solid var(--border); }
}
@media (max-width: 768px) {
  .hero-clean { height: auto; min-height: 460px; padding: 120px 0 70px; display: block; text-align: center; }
  .hero-grid { flex-direction: column; gap: 24px; }
  .hero-left { max-width: 100%; flex: 1 1 auto; }
  .hero-right { display: none; }
  .hero-rotator { min-height: 80px; margin-bottom: 18px; }
  .hc-actions { justify-content: center; }
  .hc-trust { text-align: center; }
  .hero-dots { justify-content: center; }
  /* 案例二级移动端收敛规则已删（V1.30：L2 顶部空 banner 退役） */
  .core-grid { grid-template-columns: 1fr; }
  .core-card { border-right: none; border-bottom: 1px solid var(--border); }
  .core-card:last-child { border-bottom: none; }
}

/* ============================================================
   场景驱动型（客户视角）——首页场景入口 / 能力清单 / 案例行业筛选 / 场景方案详情
   ============================================================ */

/* ---------- 首页：场景方案入口卡片 ---------- */
.scenario-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
.scenario-card {
  display: flex; flex-direction: column; padding: 18px 18px; /* V6.01 16→18 三类卡内边距统一 */
  border: 1px solid var(--border); border-radius: var(--radius-lg); background: var(--bg);
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.scenario-card:hover {
  transform: translateY(-4px); border-color: var(--primary-text);
  box-shadow: 0 18px 40px rgba(15,40,90,.10);
}
.sc-head { display: flex; align-items: center; gap: 12px; margin-bottom: 9px; }
.sc-icon {
  width: 44px; height: 44px; flex: 0 0 auto; border-radius: 10px;
  background: #F3F7FF; color: var(--primary-text);
  display: flex; align-items: center; justify-content: center;
  transition: background .2s, color .2s, transform .2s;
}
.sc-icon svg { width: 24px; height: 24px; display: block; }
.scenario-card:hover .sc-icon { background: var(--primary); color: #fff; transform: scale(1.04); }
.scenario-card h3 { font-size: 16px; font-weight: 700; color: var(--text); margin: 0; }
.sc-sub { font-size: 13px; color: var(--text-muted); margin-bottom: 12px; }
.sc-fusion {
  font-size: 12px; color: var(--text-body); line-height: 1.65;
  background: var(--bg-soft); border-radius: 10px; padding: 9px 11px; margin: 0;
}
/* 场景卡 v2：主链 + 常搜系统小字链 */
a.sc-main { display: block; text-decoration: none; color: inherit; }
.sc-hot {
  display: flex; flex-wrap: wrap; gap: 5px;
  margin-top: auto; padding-top: 9px; border-top: 1px dashed var(--border);
}
.sc-hot a {
  font-size: 12px; line-height: 1; padding: 4px 8px; border-radius: 999px;
  background: var(--bg-soft); color: var(--text-body);
  transition: color .2s ease, background .2s ease;
}
.sc-hot a:hover { color: var(--primary-text); background: #eef6ff; }

/* ---------- 首页：独立系统能力（精致竖版 tile） ---------- */
.sys-strip { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
.sys-item {
  display: flex; flex-direction: column; gap: 9px; padding: 18px 18px; /* V6.01 20→18 与场景卡统一 */
  border: 1px solid var(--border); border-radius: var(--radius-lg); background: var(--bg);
  text-decoration: none; color: inherit; position: relative; overflow: hidden;
  transition: transform .25s ease, border-color .25s ease, box-shadow .25s ease, background .25s ease;
}
.sys-item::after {
  content: ''; position: absolute; left: 0; top: 0; width: 100%; height: 3px;
  background: var(--primary); /* V6.01：双色渐变 var(--primary)→#5a8bff 收敛为纯主色 */
  transform: scaleX(0); transform-origin: left; transition: transform .25s ease;
}
.sys-item:hover {
  transform: translateY(-4px); border-color: rgba(10,92,255,.45);
  box-shadow: 0 16px 34px rgba(15,40,90,.12); background: linear-gradient(180deg,#fbfdff,#fff);
}
.sys-item:hover::after { transform: scaleX(1); }
.sys-head { display: flex; align-items: center; gap: 12px; }
.sys-ico {
  width: 46px; height: 46px; flex: 0 0 auto; border-radius: 12px;
  background: #F3F7FF; color: var(--primary-text);
  display: flex; align-items: center; justify-content: center;
  transition: background .25s, color .25s, transform .25s;
}
.sys-ico svg { width: 24px; height: 24px; display: block; }
.sys-item:hover .sys-ico { background: var(--primary); color: #fff; transform: scale(1.06); }
.sys-name { font-size: 15px; font-weight: 700; color: var(--text); line-height: 1.3; }
.sys-desc { font-size: 12px; color: var(--text-muted); line-height: 1.5; margin-top: 1px; }
.sys-go {
  margin-top: 5px; font-size: 12px; font-weight: 600; color: var(--primary-text);
  opacity: 0; transform: translateX(-6px);
  transition: opacity .25s ease, transform .25s ease;
}
.sys-item:hover .sys-go { opacity: 1; transform: none; }

/* ---------- 首页：我们能提供（能力清单 · 信任锚点） ---------- */
.cap-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
.cap-col {
  background: var(--bg); border: 1px solid var(--border); border-radius: var(--radius-lg);
  padding: 20px 20px 16px;
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.cap-col:hover { transform: translateY(-2px); box-shadow: var(--shadow-lg); border-color: var(--primary-text); }
.cap-col h3 {
  font-size: 16px; font-weight: 700; color: var(--text);
  margin-bottom: 16px; padding-bottom: 12px; border-bottom: 2px solid var(--primary); display: inline-block;
}
.cap-col ul { list-style: none; padding: 0; margin: 0; }
.cap-col li { font-size: 13px; color: var(--text-body); padding: 8px 0 8px 20px; position: relative; }
.cap-col li::before {
  content: ''; position: absolute; left: 0; top: 15px;
  width: 6px; height: 6px; border-radius: 50%; background: var(--primary); opacity: .5;
}

/* ---------- 首页：案例行业筛选 chips ---------- */
.case-filter { display: flex; gap: 12px; flex-wrap: wrap; margin-bottom: 28px; }
.filter-chip {
  padding: 8px 20px; border: 1px solid var(--border); border-radius: 999px;
  background: var(--bg); color: var(--text-body); font-size: 14px; cursor: pointer;
  font-family: inherit; transition: all .2s ease;
}
.filter-chip:hover { border-color: var(--primary-text); color: var(--primary-text); }
.filter-chip.active { background: var(--primary); border-color: var(--primary-text); color: #fff; }

/* 场景详情：融合组成 → 可点能力类别 */
.sol-cats { margin-top: 20px; display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
.sol-cats-label { font-size: 13px; color: var(--text-muted); margin-right: 2px; }
.cat-link { display: inline-block; padding: 8px 16px; border: 1px solid var(--border); border-radius: 999px; font-size: 13px; color: var(--primary-text); text-decoration: none; transition: all .15s; }
.cat-link:hover { background: var(--primary); color: #fff; border-color: var(--primary-text); }

/* 案例卡片：成效标签 + 客户证言（证言为可选字段，有则显示） */
.cc-sub { font-size: 13px; color: var(--primary-text); font-weight: 500; margin: 2px 0 12px; }
.case-quote { margin: 12px 0 0; padding: 12px 16px; border-left: 3px solid var(--primary); background: var(--bg-soft); border-radius: 0 8px 8px 0; font-size: 13px; color: var(--text-secondary); font-style: normal; }

/* 关于我们：信任状重构 */
.about-lead { margin-top: 16px; padding: 16px 20px; background: var(--bg-soft); border-left: 3px solid var(--primary); border-radius: 0 10px 10px 0; color: var(--text-secondary); }
.ind-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.ind-card { padding: 24px 20px; background: var(--bg-card); border: 1px solid var(--border); border-radius: 12px; }
.ind-card h3, .ind-card h4 { font-size: 16px; margin-bottom: 8px; color: var(--text-primary); }
.ind-card p { font-size: 13px; color: var(--text-muted); line-height: 1.6; }
.cap-link { display: block; padding: 24px 20px; background: var(--bg-card); border: 1px solid var(--border); border-radius: 12px; text-decoration: none; transition: all .15s; }
.cap-link:hover { border-color: var(--primary-text); transform: translateY(-2px); }
.cap-link h3, .cap-link h4 { font-size: 16px; color: var(--text-primary); margin-bottom: 8px; }
.cap-link p { font-size: 13px; color: var(--text-muted); margin-bottom: 12px; }
.cap-more { font-size: 13px; color: var(--primary-text); font-weight: 500; }
.trust-box { display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap; padding: 32px; background: var(--bg-card); border: 1px solid var(--border); border-radius: 14px; }
.trust-box h3 { font-size: 18px; margin-bottom: 8px; }
.trust-box p { color: var(--text-muted); font-size: 14px; }
.trust-actions { display: flex; gap: 12px; flex-wrap: wrap; }
@media (max-width: 768px) { .ind-grid { grid-template-columns: repeat(2, 1fr); } .trust-box { flex-direction: column; align-items: flex-start; }
#contactForm select { width: 100%; height: 46px; padding: 0 16px; border: 1px solid var(--border); border-radius: 10px; background: var(--bg-card); color: var(--text-primary); font-size: 14px; appearance: none; } }

/* ---------- 产品中心：场景速选（甲方默认视图） ---------- */
.prod-sec-sub { font-size: 15px; color: var(--text-muted); max-width: 780px; margin: -4px 0 24px; line-height: 1.7; }
.prod-sub-title { font-size: 18px; font-weight: 700; color: var(--text); margin: 0 0 20px; }

/* 场景卡内的轻量「能力类别」映射标签（客户视角：这个场景用到哪几类） */
a.scenario-card { text-decoration: none; color: inherit; }
.sc-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 16px; }
.sc-tag {
  font-size: 12px; line-height: 1; padding: 4px 12px; border-radius: 999px;
  border: 1px solid var(--border); background: var(--bg-soft); color: var(--text-body);
}
.sc-tag.is-display  { color: #1d6fe0; border-color: #cfe2fb; background: #eef6ff; }
.sc-tag.is-meeting  { color: #1a9d5a; border-color: #cdeeda; background: #effaf3; }
.sc-tag.is-broadcast{ color: #c47d12; border-color: #f6e3c0; background: #fdf6ea; }
.sc-tag.is-iot      { color: #7b54c9; border-color: #e3d8f6; background: #f5f0fc; }

/* 全系单品：型号 / 规格 折叠（默认收起，点开看参数） */
.cp-fold-btn {
  margin-top: 12px; display: inline-block; font-size: 12px; font-family: inherit;
  color: var(--primary-text); background: none; border: 1px solid var(--border);
  border-radius: 10px; padding: 8px 12px; cursor: pointer; transition: border-color .2s;
}
.cp-fold-btn:hover { border-color: var(--primary-text); }
.cp-models {
  display: none; margin-top: 12px; padding-top: 12px; border-top: 1px dashed var(--border);
  font-size: 13px; color: var(--text-body); line-height: 1.7;
}
.cp-models.open { display: block; }
.cp-models b { color: var(--text); }

/* ---------- 场景方案详情页 ---------- */
.scene-chips { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 24px; }
.landing-list { display: flex; flex-direction: column; border: 1px solid var(--border, rgba(140,180,255,0.14)); border-radius: 12px; overflow: hidden; }
.landing-item { display: flex; gap: 16px; padding: 16px 20px; border-bottom: 1px solid var(--border, rgba(140,180,255,0.12)); }
.landing-item:last-child { border-bottom: none; }
.landing-item strong { flex: 0 0 148px; color: var(--primary-text); font-weight: 500; }
.landing-item span { color: var(--text-secondary); line-height: 1.6; }
@media (max-width: 768px) {
  .landing-item { flex-direction: column; gap: 4px; }
  .landing-item strong { flex: none; }
}
.scene-chip {
  font-size: 12px; padding: 8px 16px; border-radius: 999px;
  background: var(--primary-soft); color: var(--primary-text); font-weight: 600;
}
/* 图文卡片图（2026-10-25）：新闻导语图 / about 场景图共用——
   速览或导语下方一张主题示意图，替代原「内联样式 img」，样式收拢到类 */
.fig-card {
  margin: 24px 0 0; border: 1px solid var(--border); border-radius: var(--radius-lg);
  overflow: hidden; background: var(--bg-soft);
}
.fig-card img { display: block; width: 100%; height: auto; }
.fig-card figcaption {
  padding: 12px 16px; font-size: var(--fs-sm); line-height: var(--lh-sm);
  color: var(--text-muted); text-align: center;
}
/* about 场景卡网格（2026-10-25）：服务能力页原 10 个文字 chip 升级为图文卡，
   链到对应场景方案页（内链入口 +10）；图用 solutions/scene-*.svg 自制场景示意图 */
.scene-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 16px; margin-top: 24px; }
.scene-card {
  display: block; border: 1px solid var(--border); border-radius: var(--radius-lg);
  overflow: hidden; background: var(--bg); text-decoration: none;
  transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}
.scene-card:hover { border-color: var(--primary-text); box-shadow: var(--shadow-1); transform: translateY(-2px); }
.scene-card:focus-visible { outline: 2px solid var(--primary); outline-offset: 1px; }
.scene-card img { display: block; width: 100%; height: auto; }
.scene-card-nm {
  display: block; padding: 12px 8px 11px; text-align: center;
  font-size: var(--fs-sm); font-weight: 600; color: var(--text);
}
@media (max-width: 1024px) {
  .scene-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 540px) {
  .scene-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.sol-detail-block { margin-bottom: 52px; }
.sol-detail-h { font-size: 26px; font-weight: 700; color: var(--text); margin-bottom: 12px; }
.sol-detail-lead { font-size: 15px; color: var(--text-muted); margin-bottom: 24px; line-height: 1.8; }
.fusion-list { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; }
.fusion-list li {
  display: flex; gap: 12px; align-items: flex-start; padding: 16px 20px;
  border: 1px solid var(--border); border-radius: 12px; background: var(--bg);
  font-size: 14px; color: var(--text-body);
}
.fdot { color: var(--primary-text); font-size: 12px; line-height: 1.9; }
.adv-card h4 { font-size: 16px; font-weight: 700; color: var(--text); margin-bottom: 8px; }
.step-list { display: grid; gap: 16px; }
.step-item {
  display: flex; gap: 16px; align-items: flex-start; padding: 20px 24px;
  border: 1px solid var(--border); border-radius: 14px; background: var(--bg);
}
.step-no {
  flex: none; width: 34px; height: 34px; border-radius: 50%; background: var(--primary);
  color: #fff; font-weight: 700; font-size: 15px;
  display: flex; align-items: center; justify-content: center;
}
.step-item strong { display: block; font-size: 15px; color: var(--text); margin-bottom: 4px; }
.step-item p { font-size: 13px; color: var(--text-muted); }
.sol-cta {
  background: linear-gradient(135deg, #0F2A5C, #1E4FA8);
  border-radius: var(--radius-xl); padding: 44px 40px; color: #fff;
}
.sol-cta h3 { font-size: 24px; font-weight: 700; margin-bottom: 12px; }
.sol-cta p { color: #9FBBE4; font-size: 15px; margin-bottom: 24px; }

/* ---------- 响应式 ---------- */
@media (max-width: 1024px) {
  .scenario-grid { grid-template-columns: repeat(3, 1fr); }
  .cap-grid { grid-template-columns: repeat(2, 1fr); gap: 24px; }
  .sys-strip { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 768px) {
  .scenario-grid { grid-template-columns: repeat(2, 1fr); }
  .fusion-list { grid-template-columns: 1fr; }
  .sol-detail-h { font-size: 22px; }
  .sys-strip { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 768px) {
  .scenario-grid { grid-template-columns: 1fr; }
  .cap-grid { grid-template-columns: 1fr; }
  .sys-strip { grid-template-columns: 1fr; }
  .sol-cta { padding: 32px 24px; }
  .sol-cta h3 { font-size: 20px; }
  .sol-detail-block { margin-bottom: 40px; }
}

/* ============ 案例行业页（/cases/<slug>/） ============ */
.ci-count { font-size: 13px; color: var(--text-muted); margin-bottom: 16px; }
.ci-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; list-style: none; margin: 0 0 12px; padding: 0; }
.cc-badges { display: flex; gap: 8px; margin-bottom: 12px; flex-wrap: wrap; }
.es-actions { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }
@media (max-width: 1024px) { .ci-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 768px) {
  .ci-grid { grid-template-columns: 1fr; }
}

/* ============ 案例详情页（真实案例，如 /case/zzu-smart-classroom.html） ============ */
.case-detail .page-sub { color: var(--text-muted); font-size: 16px; margin: 8px 0 0; }
.case-meta { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px 24px; margin: 0 0 28px; padding: 20px 24px; background: var(--bg-soft); border: 1px solid var(--border); border-radius: 14px; }
.case-meta div { margin: 0; }
.case-meta dt { font-size: 12px; color: var(--text-muted); margin-bottom: 4px; }
.case-meta dd { margin: 0; font-weight: 700; color: var(--text); }
.case-sec { margin: 0 0 16px; }
.case-sec h2 { font-size: 22px; font-weight: 700; color: var(--text); margin: 36px 0 16px; padding-left: 12px; border-left: 4px solid var(--primary); }
.case-sec p { color: var(--text-body); line-height: 1.9; margin: 0 0 12px; }
.case-note-muted { font-size: 13px; color: var(--text-muted); }
.sys-table { width: 100%; border-collapse: collapse; margin: 0 0 8px; }
.sys-table th, .sys-table td { text-align: left; padding: 12px 16px; border-bottom: 1px solid var(--border); font-size: 14px; }
.sys-table th { background: var(--bg-soft); color: var(--text-muted); font-weight: 700; }
.sys-table td a { color: var(--primary-text); }
.case-topo { margin: 16px 0 8px; padding: 20px; background: var(--bg-soft); border: 1px solid var(--border); border-radius: 14px; text-align: center; }
.case-topo svg { max-width: 100%; height: auto; }
.case-topo figcaption { margin-top: 12px; font-size: 12px; color: var(--text-muted); }
/* 案例详情页场景示意图（ honest 标注：非实拍，真实照片到位后更新） */
.case-hero { margin: 0 0 28px; border: 1px solid var(--border); border-radius: 14px; overflow: hidden; background: var(--bg-soft); }
.case-hero img { display: block; width: 100%; height: auto; }
.case-hero figcaption { padding: 12px 16px; font-size: 12px; color: var(--text-muted); }
.faq-list { margin: 0; padding: 0; list-style: none; }
.faq-list li { padding: 16px 20px; border: 1px solid var(--border); border-radius: 12px; margin-bottom: 12px; }
.faq-list .q { font-weight: 700; color: var(--text); margin-bottom: 8px; }
.faq-list .a { color: var(--text-body); line-height: 1.8; }
.rel-cases { display: flex; gap: 16px; flex-wrap: wrap; }
.rel-cases a { padding: 12px 16px; border: 1px solid var(--border); border-radius: 999px; color: var(--primary-text); text-decoration: none; font-size: 14px; }
.rel-cases a:hover { border-color: var(--primary-text); }

/* ============ 案例详情页正文组件（2026-10-17 参考范本重构：摘要/目录/需求/配置卡/数据卡/清单/内链） ============ */
/* 项目摘要框：左蓝条 + 浅蓝底（与 ai-gist 同视觉语言，GEO 首屏一句话结论） */
.case-gist { border-left: 4px solid var(--primary); border-radius: 0 14px 14px 0; background: var(--grad-soft, #EEF4FF); padding: 20px 24px; margin: 0 0 24px; }
.case-gist strong { display: block; font-size: 14px; color: var(--primary-text); margin-bottom: 8px; letter-spacing: .02em; }
.case-gist p { margin: 0; color: var(--text-body); font-size: 15px; line-height: 1.85; }
/* 页面目录：锚点导航（AI 抓取 + 用户跳转双收益，纯静态 a href="#id"） */
.case-toc { border: 1px solid var(--border); border-radius: 14px; background: var(--bg-soft); padding: 16px 20px; margin: 0 0 28px; }
.case-toc-title { font-size: 14px; font-weight: 700; color: var(--text); margin: 0 0 8px; }
.case-toc ol { margin: 0; padding: 0; list-style: none; display: flex; flex-wrap: wrap; gap: 8px 24px; }
.case-toc a { color: var(--primary-text); text-decoration: none; font-size: 14px; }
/* V5.24：目录项原高 18px（手指难命中）。用 padding 撑出 40px 点击区 + 负 margin 抵消，
   视觉间距与换行不变，但手指可点。 */
.case-toc a { display: inline-block; padding: 11px 0; margin: -11px 0; }
.case-toc a:hover { text-decoration: underline; }
/* 客户核心需求清单（编号圆点，非表格） */
.case-need { margin: 0 0 12px; padding: 0; list-style: none; }
.case-need li { position: relative; padding: 8px 0 8px 32px; color: var(--text-body); line-height: 1.85; border-bottom: 1px dashed var(--border); }
.case-need li:last-child { border-bottom: none; }
.case-need li::before { content: counter(needno, decimal-leading-zero); counter-increment: needno; position: absolute; left: 0; top: 9px; width: 22px; height: 22px; border-radius: 50%; background: var(--grad-soft, #EEF4FF); color: var(--primary-text); font-size: 12px; font-weight: 800; display: flex; align-items: center; justify-content: center; }
.case-need { counter-reset: needno; }
/* 方案构成分级小标题（H3，紧贴 H2 之下） */
.case-sec h3 { font-size: 16px; font-weight: 700; color: var(--text); margin: 24px 0 8px; padding-left: 12px; border-left: 3px solid rgba(10,92,255,.45); }
/* 核心设备配置卡网格（替代 sys-table：卡片化、移动端友好、语义分组不变） */
.case-spec-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin: 0 0 12px; }
.case-spec { border: 1px solid var(--border); border-radius: 12px; background: var(--bg-soft); padding: 16px 16px; }
.case-spec strong { display: block; font-size: 12px; color: var(--text-muted); margin-bottom: 5px; letter-spacing: .02em; }
.case-spec span { font-size: 14px; font-weight: 700; color: var(--text); line-height: 1.6; }
.case-spec a { color: var(--primary-text); text-decoration: none; }
/* V5.24：规格区设备链接原高 18px。用 inline-block + padding 撑出 40px 点击区，
   负 margin 抵消以保持行高与段落流不变。 */
.case-spec a { display: inline-block; padding: 11px 0; margin: -11px 0; }
.case-spec a:hover { text-decoration: underline; }
/* 建设成效数据卡（仅真实可陈述数字，禁编造） */
.case-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin: 0 0 16px; }
.case-stat { text-align: center; border: 1px solid var(--border); border-radius: 12px; background: var(--bg-soft); padding: 16px 12px; }
.case-stat b { display: block; font-size: 24px; font-weight: 800; color: var(--primary-text); line-height: 1.25; }
.case-stat span { display: block; font-size: 12px; color: var(--text-muted); margin-top: 5px; }
/* 成效 ✓ 清单（客户收益导向） */
.case-check { margin: 0 0 12px; padding: 0; list-style: none; }
.case-check li { position: relative; padding: 8px 0 8px 28px; color: var(--text-body); line-height: 1.85; }
.case-check li::before { content: '✓'; position: absolute; left: 0; top: 7px; color: var(--primary-text); font-weight: 800; }
/* 相关案例/方案卡片（替代纯文字 pill：卡片带一句说明，信息量更高） */
.case-rel-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin: 0 0 16px; }
.case-rel-card { display: block; border: 1px solid var(--border); border-radius: 12px; padding: 15px 20px; text-decoration: none; transition: border-color .2s ease, box-shadow .2s ease; }
.case-rel-card:hover { border-color: var(--primary-text); box-shadow: 0 8px 20px rgba(20,40,80,.08); }
.case-rel-card b { display: block; font-size: 15px; color: var(--primary-text); margin-bottom: 4px; }
.case-rel-card span { font-size: 13px; color: var(--text-muted); line-height: 1.7; }
/* 底部延伸内链簇 */
.case-links { border: 1px solid var(--border); border-radius: 12px; background: var(--bg-soft); padding: 16px 20px; }
.case-links-title { font-size: 13px; font-weight: 700; color: var(--text); margin: 0 0 8px; }
.case-links ul { margin: 0; padding: 0; list-style: none; display: flex; flex-wrap: wrap; gap: 8px 20px; }
.case-links a { color: var(--primary-text); text-decoration: none; font-size: 14px; }
.case-links a:hover { text-decoration: underline; }
@media (max-width: 768px) { .case-meta { grid-template-columns: 1fr 1fr; } }
@media (max-width: 768px) { .case-spec-grid { grid-template-columns: 1fr 1fr; } .case-stats { grid-template-columns: 1fr; } .case-rel-grid { grid-template-columns: 1fr; } }
@media (max-width: 540px) { .case-spec-grid { grid-template-columns: 1fr; } }

/* ============ 案例分Hub（行业能力归集页，如 /case/emergency.html，2026-10-19 模板） ============ */
/* 能力归集摘要框：H1 下首屏一句能力结论（与 case-gist 同视觉语言，不承诺具名交付） */
.cl-gist { border-left: 4px solid var(--primary); border-radius: 0 14px 14px 0; background: var(--grad-soft, #EEF4FF); padding: 20px 24px; margin: 0 0 32px; }
.cl-gist p { margin: 0; color: var(--text-body); font-size: 15px; line-height: 1.9; }
.cl-gist strong { color: var(--primary-text); }
/* 核心交付能力：三列标签组（实战场景 / 硬件配置 / 交付价值） */
.cl-capgrid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin: 0 0 16px; }
.cl-cap { border: 1px solid var(--border); border-radius: 14px; background: var(--bg-soft); padding: 20px 20px 16px; }
.cl-cap h3 { font-size: 16px; font-weight: 700; color: var(--text); margin: 0 0 12px; padding-left: 11px; border-left: 3px solid var(--primary); }
.cl-cap ul { margin: 0; padding: 0; list-style: none; }
.cl-cap li { position: relative; padding: 8px 0 8px 20px; font-size: 14px; color: var(--text-body); line-height: 1.75; border-bottom: 1px dashed var(--border); }
.cl-cap li:last-child { border-bottom: none; }
.cl-cap li::before { content: ''; position: absolute; left: 2px; top: 13px; width: 6px; height: 6px; border-radius: 50%; background: var(--primary); }
.cl-cap a { color: var(--primary-text); text-decoration: none; }
.cl-cap a:hover { text-decoration: underline; }
/* 典型项目方向（可承接，非具名交付——红线：不写"为X市应急管理局交付"） */
.cl-dirnote { color: var(--text-muted); font-size: 14px; margin: -8px 0 20px; }
.cl-dirgrid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin: 0 0 12px; }
.cl-dircard { display: block; text-decoration: none; border: 1px solid var(--border); border-radius: 14px; padding: 20px 20px; background: #fff; transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease; }
.cl-dircard:hover { border-color: var(--primary-text); box-shadow: 0 10px 24px rgba(20,40,80,.08); transform: translateY(-2px); }
.cl-dircard h3 { margin: 0 0 8px; font-size: 16px; color: var(--text); }
.cl-dircard p { margin: 0; font-size: 13px; color: var(--text-body); line-height: 1.8; }
@media (max-width: 768px) { .cl-capgrid { grid-template-columns: 1fr; } .cl-dirgrid { grid-template-columns: 1fr; } }

/* 典型参考案例卡片（L2 行业页：可点击进入 L3 详情，带场景缩略图） */
.cl-casegrid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; margin: 4px 0 8px; }
.cl-casecard { display: flex; flex-direction: column; text-decoration: none; border: 1px solid var(--border); border-radius: 14px; overflow: hidden; background: #fff; transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease; }
.cl-casecard:hover { border-color: var(--primary-text); box-shadow: 0 12px 28px rgba(20,40,80,.10); transform: translateY(-2px); }
.cl-casecard .cc-thumb { display: block; width: 100%; aspect-ratio: 16 / 10; background: #0A1526; }
.cl-casecard .cc-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.cl-casecard .cc-body { padding: 16px 20px 20px; }
.cl-casecard .cc-tag { display: inline-block; font-size: 12px; color: var(--primary-text); background: var(--grad-soft, #EEF4FF); border-radius: 999px; padding: 3px 12px; margin-bottom: 8px; }
.cl-casecard h3 { margin: 0 0 8px; font-size: 16px; color: var(--text); line-height: 1.5; }
.cl-casecard p { margin: 0 0 12px; font-size: 13px; color: var(--text-body); line-height: 1.8; }
.cl-casecard .cc-more { font-size: 13px; color: var(--primary-text); font-weight: 600; }
.cl-casecard .cc-more:hover { text-decoration: underline; }
@media (max-width: 1024px) { .cl-casegrid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 768px) { .cl-casegrid { grid-template-columns: 1fr; } }

/* ---------- 案例 Hub（L2）区块标题 / 实体图标 / 案例角标 / FAQ ---------- */
.l2-head { margin: 48px 0 16px; scroll-margin-top: 156px; }
.l2-eyebrow { display: inline-block; font-size: 13px; font-weight: 700; letter-spacing: 2px; color: var(--primary-text); margin-bottom: 8px; }
.l2-title { font-size: 22px; font-weight: 700; color: var(--text); margin: 0; padding-left: 12px; border-left: 4px solid var(--primary); line-height: 1.4; }
.cl-cap-ico { width: 42px; height: 42px; border-radius: 10px; background: var(--grad-soft, #EEF4FF); color: var(--primary-text); display: flex; align-items: center; justify-content: center; margin-bottom: 12px; }
.cl-cap-ico svg { width: 23px; height: 23px; }
.cl-casecard .cc-thumb { position: relative; }
.cc-badge { position: absolute; left: 10px; bottom: 10px; background: rgba(10,21,38,.72); color: #fff; font-size: 12px; font-weight: 600; padding: 3px 12px; border-radius: 999px; }
.faq-list.l2-faq .faq-item .faq-body p { -webkit-line-clamp: initial; display: block; white-space: normal; }
@media (max-width: 768px) { .l2-title { font-size: 19px; } }

/* ============ 结构合规辅助 ============ */
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.ci-head { display: flex; align-items: baseline; gap: 12px; margin-bottom: 16px; }
.ci-head .ci-title { font-size: 20px; margin: 0; color: var(--text-body); }
.ci-head .ci-count { font-size: 13px; color: var(--text-muted); }
.empty-state h2.ci-title { font-size: 22px; margin-bottom: 8px; color: var(--text-body); }   /* 2026-10-25：原 17px 不在字号档 */

/* ============================================================
   产品详情页 v2（2026-09-25 全新改版）
   骨架：面包屑 → Hero 左图右文 → 四个静态 CSS Tab → Tab 外底部相关产品推荐
   说明：Tab 内容全部静态直出，仅靠 .pd-pane / .pd-pane.on 做 CSS 显隐，
        不使用任何 JS 懒加载；图片容器均设固定比例占位，避免 CLS 抖动。
   ============================================================ */

/* ---------- 页面基底：浅灰底 + 白色圆角卡片容器（仿参考稿） ---------- */
.pd-body { background: var(--bg-soft); }
/* pd-body 正文容器宽度统一 1300（2026-10-30 用户定稿，原 1160 备案偏差作废） */
.pd-body main { padding-bottom: 52px; }
/* 面包屑已纳入深色导航栏（site-header 内），pd 正文页不再单独铺白底，沿用 .breadcrumb 深色拉链样式 */

/* ---------- V1.28：产品 L3 无 banner（用户拍板，空带零信息量零 GEO 价值）——
   顶部顺序 = 导航→面包屑→V4 白卡两栏。案例/方案等其他详情页不受影响。 ---------- */
.pd-main {
  aspect-ratio: 16 / 9; flex: 1 1 auto; min-height: 0; border-radius: 12px; overflow: hidden;
  background: var(--bg-soft); border: none;
  display: flex; align-items: center; justify-content: center;
}
.pd-main img { width: 100%; height: 100%; object-fit: cover; display: block; }
.pd-thumbs { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 16px; }
.pd-thumb {
  width: 108px; height: 62px; padding: 0; cursor: pointer;
  border: 1px solid var(--border); border-radius: 10px; overflow: hidden;
  background: #fff; transition: border-color .18s, box-shadow .18s;
}
.pd-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.pd-thumb:hover, .pd-thumb.on { border-color: var(--primary-text); box-shadow: 0 0 0 2px rgba(10,92,255,.15); }
/* pd-info/pd-sub/pd-checks/pd-actions 已随 2026-10-29 Banner 清字红线删除（DOM 零引用）；
   pd-name 在 page-title-block；pd-model/pd-aka 在 V4 右列 .pd-intro-info 使用，保留 */
.pd-name {
  font-size: 26px; font-weight: 700; color: var(--text);
  line-height: 1.35; letter-spacing: .2px; margin: 0 0 12px;
}
.pd-model { font-size: 13px; color: var(--text-muted); margin-bottom: 12px; }
/* 又称行（产品别名，GEO 同义词出口①：与 JSON-LD alternateName 同源） */
.pd-aka { font-size: 13px; color: var(--text-body); margin-bottom: 12px; }

/* ---------- V4 首屏两栏白卡（2026-10-30 用户定稿参考图）：
   面包屑之下、Tab 区之上，一张白卡左右两栏；
   左=大图+缩略图，右=H1+型号/又称+描述+亮点胶囊+✓清单+按钮组 ---------- */
.pd-intro-card {
  background: #fff; border: 1px solid var(--border); border-radius: 14px;
  box-shadow: var(--shadow-1); padding: 28px 36px; margin-top: 16px;
}
.pd-intro-grid { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 40px; align-items: start; }
.pd-intro-media { min-width: 0; }
.pd-intro-info { min-width: 0; }
.pd-intro-info .pd-name { font-size: 24px; margin: 0 0 8px; }
.pd-meta-line { font-size: 13px; color: var(--text-muted); margin: 0 0 12px; }
.pd-intro-info .pd-lead { font-size: 15px; color: var(--text-body); line-height: 1.8; margin: 0 0 16px; }
.pd-highlights { list-style: none; padding: 0; margin: 0 0 18px; display: flex; flex-wrap: wrap; gap: 8px; }
.pd-highlights li { background: var(--primary-soft); color: var(--primary-text); border-radius: 6px; padding: 6px 14px; font-size: 13px; font-weight: 500; }
.pd-checklist { list-style: none; padding: 0; margin: 0 0 6px; }
.pd-checklist li { position: relative; padding: 10px 0 10px 28px; font-size: 14px; line-height: 1.7; color: var(--text-body); }
.pd-checklist li + li { border-top: 1px solid var(--border); }
.pd-checklist li::before { content: "✓"; position: absolute; left: 2px; top: 10px; font-weight: 700; color: var(--primary-text); }
.pd-intro-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 18px; }
/* V5.12 系列聚合页首屏信息卡：仅配了 modelOptions 的产品加 .pd-info-series 作用域，
   其余 29 个产品页样式零影响。原 .pd-intro-info .pd-name 是 24px，此处按用户要求放大。 */
/* 红线 V5.17（右列，与左列 V5.16 同属第 7 条红线，以 VCSII / LUS Plus 为标准范本）：
   - H1(.pd-name) 字号 32px（@≤1024→28 / @≤768→23），右列首行，禁改字号破坏层级
   - 副标题(.pd-card-sub) 限 ≤50 字 / 约 2 行短句，禁写整段描述（content 红线，CSS 已锁字号/行高/边距不撑版）
   - 首屏标签(.pd-highlights li) 最多 6 个（cardTags 优先且生成器 .slice(0,6) 兜底；否则 features 前 5），禁超 6
   - 底部 CTA(.pd-actions-row) 两按钮强制并排等高、主:次=3:2、min-height 50(桌面)/48(移动)、禁折行禁上下排列 */
.pd-info-series .pd-name { font-size: 32px; font-weight: 700; color: var(--text); line-height: 1.3; margin: 0 0 12px; }
.pd-card-sub { font-size: 15px; line-height: 1.85; color: var(--text-muted); margin: 0 0 20px; }
.pd-model-block { margin: 0 0 20px; }
.pd-model-chips { display: flex; flex-wrap: nowrap; gap: 6px; }
.pd-model-chip {
  flex: 1 1 0; min-width: 0; padding: 8px 6px; border: 1px solid var(--border); border-radius: 8px;
  background: #fff; color: var(--text-body); font-size: 13px; font-weight: 600; cursor: pointer;
  white-space: nowrap; text-align: center;
  transition: background .22s, border-color .22s, color .22s, box-shadow .22s, transform .22s;
}
.pd-model-chip:hover { border-color: var(--primary); color: var(--primary-text); transform: translateY(-1px); }
.pd-model-chip.on { background: var(--primary); border-color: var(--primary); color: #fff; box-shadow: 0 4px 14px rgba(10,92,255,.28); }
.pd-model-chip.on:hover { background: var(--primary-2); border-color: var(--primary-2); color: #fff; }
.pd-model-chip:focus-visible { outline: 2px solid var(--primary); outline-offset: 2px; }
.pd-model-current { font-size: 13px; line-height: 1.7; color: var(--text-body); margin: 10px 0 0; }
.pd-model-current strong { color: var(--primary-text); font-weight: 700; }
.pd-model-block .pd-aka { font-size: 12px; line-height: 1.7; color: var(--text-muted); margin: 6px 0 0; }
/* V5.12 B 方案：底部两枚按钮并排等高，主 CTA 占 6 成、次按钮占 4 成，移动端仍保持一行。 */
.pd-actions-row { display: flex; flex-wrap: nowrap; gap: 12px; margin-top: 20px; }
/* basis 必须为 0：若写成 60%+40%，叠加 gap 就会超过 100% 被上层 flex-wrap:wrap 折行 */
.pd-actions-row .pd-cta-main { flex: 3 1 0; min-width: 0; min-height: 50px; display: flex; align-items: center; justify-content: center; font-size: 16px; font-weight: 600; }
.pd-actions-row .pd-cta-secondary { flex: 2 1 0; min-width: 0; min-height: 50px; display: flex; align-items: center; justify-content: center; font-size: 15px; font-weight: 600; text-decoration: none; }
@media (max-width: 1024px) { .pd-info-series .pd-name { font-size: 28px; } }
@media (max-width: 768px) {
  .pd-info-series .pd-name { font-size: 23px; margin-bottom: 10px; }
  .pd-card-sub { font-size: 14px; margin-bottom: 16px; }
  .pd-model-chips { flex-wrap: wrap; gap: 8px; }
  .pd-model-chip { flex: 1 1 calc(50% - 5px); min-width: 0; padding: 10px 8px; font-size: 14px; }
  .pd-actions-row .pd-cta-main, .pd-actions-row .pd-cta-secondary { min-height: 48px; font-size: 14px; }
}
.pd-body .btn-primary { background: var(--cta); color: var(--cta-ink); box-shadow: 0 4px 12px rgba(255,122,26,.25); } /* V6.03 全站 CTA 统一橙底深字（原特判蓝底压过令牌致 3.3:1 违规） */
.pd-body .btn-primary:hover { background: var(--cta-hover); transform: none; filter: none; }
.pd-body .btn-outline { background: #fff; border-color: var(--primary-text); color: var(--primary-text); }
.pd-body .btn-outline:hover { background: var(--primary-soft); }

/* 红线 V5.16：产品首屏「左图右文」左列 = 主图(.pd-main, aspect-ratio:16/9) + 缩略图条(.pd-gallery-strip 紧贴主图正下方, margin-top:14px)。
   单张缩略图固定像素高度 108×62(桌面)/88×52(≤768)，高度禁改、禁 flex 拉伸、禁挪出主图下方；gap:12px。仅 images.length>1 才渲染该条 */
.pd-gallery-strip { display: flex; flex-wrap: wrap; gap: 12px; margin: 14px 0 0; }
.pd-gallery-strip .pd-thumb { width: 108px; height: 62px; padding: 0; cursor: pointer; border: 1px solid var(--border); border-radius: 10px; overflow: hidden; background: #fff; transition: border-color .18s, box-shadow .18s; }
.pd-gallery-strip .pd-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.pd-gallery-strip .pd-thumb:hover, .pd-gallery-strip .pd-thumb.on { border-color: var(--primary-text); box-shadow: 0 0 0 2px rgba(10,92,255,.15); }

/* ---------- Tab 区：Tab 栏与内容面板连成一张白卡（Tab 即卡片顶边） ---------- */
.pd-shell {
  margin-top: 16px; padding: 0;
  background: #fff; border: 1px solid var(--border); border-radius: 14px;
  box-shadow: var(--shadow-1);
}
.pd-tabs-wrap {
  position: sticky; top: var(--header-h, 100px); z-index: 45;
  background: #fff;
  scroll-margin-top: var(--header-h, 100px);
}
.pd-tabs {
  display: grid; grid-template-columns: repeat(4, minmax(0, 1fr));
  border-bottom: 1px solid var(--border);
  scrollbar-width: none; -ms-overflow-style: none; /* 极窄屏兜底：隐藏滚动条 */
}
.pd-tabs::-webkit-scrollbar { display: none; }
.pd-tab {
  text-align: center; white-space: nowrap; cursor: pointer;
  padding: 16px 8px; font-size: 15px; font-weight: 500; color: var(--text-muted);
  border-bottom: 3px solid transparent; margin-bottom: -1px;
  transition: color .2s, border-color .2s;
}
.pd-tab:hover { color: var(--primary-text); }
.pd-tab.on { color: var(--primary-text); border-bottom-color: var(--primary-text); font-weight: 700; }

/* ---------- Tab 面板（纯 CSS 显隐，与 Tab 栏同属一张卡片） ---------- */
.pd-pane-body { padding: 32px 36px; }
.pd-pane { display: none; }
.pd-pane.on { display: block; animation: pdFade .26s ease; }
@keyframes pdFade { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
.pd-pane > h2 {
  font-size: 22px; font-weight: 700; color: var(--text);   /* 2026-10-25：原 20px 与 H3 18 级差仅 2px，收进 H2 主档 */
  margin: 0 0 20px; padding-left: 12px; border-left: 4px solid var(--primary);
  line-height: 1.4;
}
.pd-pane > h2:not(:first-child) { margin-top: 40px; }
.pd-pane > h2 + * { margin-top: 16px; }
.pd-pane h3 { font-size: 18px; font-weight: 700; color: var(--text); margin: 28px 0 12px; }
.pd-lead { font-size: 16px; line-height: 1.95; color: var(--text); }
.pd-text { font-size: 15px; line-height: 1.95; color: var(--text-body); }
.pd-text a { color: var(--primary-text); font-weight: 600; }
.pd-note { font-size: 12px; color: var(--text-muted); margin-top: 12px; line-height: 1.8; }

/* 痛点 / 优势 双色卡片 */
.pd-card { border-radius: var(--radius-2xl); padding: 20px 24px; margin: 20px 0; }
.pd-card h3 { margin: 0 0 12px; }
.pd-card-warn { background: #FFF7F4; border: 1px solid var(--warning-bg); }
.pd-card-good { background: #F3FBF6; border: 1px solid var(--success-bg); }
.pd-list { list-style: none; display: grid; gap: 12px; }
.pd-list li { position: relative; padding-left: 20px; font-size: 14px; line-height: 1.8; color: var(--text-body); }
.pd-list li b { color: var(--text); }
.pd-list-warn li::before { content: ""; position: absolute; left: 0; top: 10px; width: 7px; height: 7px; border-radius: 50%; background: #F2704A; }
.pd-list-good li::before { content: ""; position: absolute; left: 0; top: 10px; width: 7px; height: 7px; border-radius: 50%; background: #22B573; }

.pd-scenes { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; }
.pd-scenes li { background: var(--bg-soft); border: 1px solid var(--border); border-radius: 10px; padding: 8px 16px; font-size: 13px; color: var(--text-body); }
.pd-cta { display: flex; flex-wrap: wrap; gap: 12px; margin: 24px 0 32px; }

/* 你能得到（轻量收益清单，置于引导上方；真实卖点，无绝对词） */
.pd-gains { margin: 32px 0 8px; }
.pd-gains-title { font-size: 22px; font-weight: 700; color: var(--text); margin: 0 0 16px; }   /* 2026-10-25：原 18px 与 H3 同档，抬到 H2 主档 */
.pd-gains-list { list-style: none; display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin: 0; padding: 0; }
.pd-gains-list li { display: flex; gap: 12px; align-items: flex-start; background: var(--bg-soft); border: 1px solid var(--border); border-radius: var(--radius-2xl); padding: 16px; }
.pd-gains-list li b { display: block; font-size: 14px; color: var(--text); margin-bottom: 4px; }
.pd-gains-list li p { font-size: 13px; line-height: 1.7; color: var(--text-body); margin: 0; }
.pd-gains-ico { flex: 0 0 auto; width: 22px; height: 22px; border-radius: 50%; background: var(--primary); position: relative; margin-top: 1px; }
.pd-gains-ico::after { content: ""; position: absolute; left: 7px; top: 4px; width: 6px; height: 11px; border: solid #fff; border-width: 0 2px 2px 0; transform: rotate(45deg); }
@media (max-width: 768px) { .pd-gains-list { grid-template-columns: 1fr; } }

/* FAQ（默认激活 Tab 内，LLM 抓取效果最好） */
.pd-faq { margin-top: 4px; }
.pd-faq dt { font-size: 15px; font-weight: 700; color: var(--text); padding: 16px 0 8px; border-top: 1px solid var(--border); }
.pd-faq dt:first-child { border-top: none; padding-top: 0; }
.pd-faq dd { font-size: 14px; line-height: 1.9; color: var(--text-body); padding-bottom: 16px; }
/* FAQ 区块 h3/p 结构（新闻详情页生成器输出；此前只有 dt/dd 规则、选择器零命中导致裸排） */
.pd-faq h3 {
  font-size: 16px; font-weight: 700; color: var(--text);
  padding: 16px 0 8px; border-top: 1px solid var(--border);
  display: flex; align-items: center; gap: 12px;
}
.pd-faq h3:first-child { border-top: none; padding-top: 0; }
.pd-faq h3::before {
  content: "Q"; flex-shrink: 0;
  width: 22px; height: 22px; border-radius: 50%;
  background: var(--grad); color: #fff;
  font-size: 12px; font-weight: 800;
  display: inline-flex; align-items: center; justify-content: center;
  box-shadow: 0 0 0 3px #fff, 0 4px 10px rgba(10,92,255,.25);
}
.pd-faq p { font-size: 14px; line-height: 1.9; color: var(--text-body); padding: 0 0 16px 32px; }
/* FAQ 锚点定位补偿（sticky header 100px 遮挡） */
.pd-faq h3[id] { scroll-margin-top: 116px; }
/* FAQ 问题目录（≥6 组渲染）：引用粒度从页细化到问，深链可定位具体问答 */
.faq-toc {
  margin: 0 0 20px; padding: 16px 20px;
  background: var(--bg-soft); border: 1px solid var(--border); border-radius: 14px;
}
.faq-toc-title { display: block; font-size: 13px; font-weight: 700; color: var(--text); margin-bottom: 8px; letter-spacing: .02em; }
.faq-toc-list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 4px 24px; }
.faq-toc-list a { display: flex; align-items: baseline; gap: 8px; padding: 5px 8px; border-radius: 10px; color: var(--text-body); text-decoration: none; }
.faq-toc-list a:hover { background: rgba(10,92,255,.08); color: var(--primary-text); }
.faq-toc-list .ft-q { flex-shrink: 0; font-size: 12px; font-weight: 800; color: var(--primary-text); }
.faq-toc-list .ft-t { font-size: 13px; line-height: 1.55; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient: vertical; }
@media (max-width: 1024px) { .faq-toc-list { grid-template-columns: 1fr; } }

/* 标签行（知识图谱实体关联：帮 AI 把文章挂到正确实体节点；锚文本即实体词） */
.pd-tags { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.pd-tags-label { font-size: 12px; font-weight: 700; color: var(--text-muted); margin-right: 2px; }
.pd-tag {
  display: inline-flex; align-items: center;
  font-size: 13px; font-weight: 600; color: #1c3f8f;
  background: linear-gradient(135deg, rgba(10,92,255,.10), rgba(0,200,255,.10));
  border: 1px solid rgba(10,92,255,.22); border-radius: 999px;
  padding: 5px 16px; text-decoration: none;
  transition: transform .2s, box-shadow .2s, border-color .2s;
}
.pd-tag:hover { transform: translateY(-1px); border-color: rgba(10,92,255,.45); box-shadow: 0 6px 14px rgba(10,92,255,.15); }

/* 空态（参数 / FAQ 未核实时的结构化占位） */
.pd-empty {
  border: 1px dashed var(--border); border-radius: var(--radius-2xl);
  background: var(--bg-soft); padding: 28px 24px; text-align: center;
}
.pd-empty p { max-width: 640px; margin: 0 auto 16px; font-size: 14px; line-height: 1.9; color: var(--text-muted); }

/* 技术参数表（原生 <table>，LLM 可直接解析；禁止图片表格/canvas） */
.pd-specwrap { border: 1px solid var(--border); border-radius: var(--radius-2xl); padding: 8px; background: #fff; }
.pd-specwrap table { width: 100%; border-collapse: collapse; margin: 0; font-size: 13px; }
.pd-specwrap th, .pd-specwrap td { border: 1px solid var(--border); padding: 12px 16px; text-align: left; vertical-align: top; line-height: 1.7; }
.pd-specwrap th { background: var(--bg-soft); font-weight: 600; color: var(--text); width: 30%; }
.pd-specwrap tbody tr:nth-child(even) td { background: #FAFCFF; }
.pd-topo { margin: 16px 0 0; border: 1px solid var(--border); border-radius: var(--radius-2xl); overflow: hidden; background: var(--bg-soft); }
.pd-topo img { display: block; width: 100%; height: auto; }
.pd-topo-svg { display: block; width: 100%; height: auto; }

/* 技术参数段落式（禁用表格：短标签起头 + 整句原样，便于 AI 抓取与对比） */
.pd-spec-para { margin: 8px 0 0; }
.pd-spec-line {
  font-size: 14px; line-height: 1.9; color: var(--text-body);
  padding: 12px 0; border-top: 1px solid var(--border);
}
.pd-spec-line:first-child { border-top: none; }
.pd-spec-line .spec-label {
  display: inline-block; min-width: 92px; margin-right: 12px;
  font-weight: 700; color: var(--primary-text); font-size: 14px;
}
.pd-note { font-size: 12px; color: var(--text-muted); margin-top: 12px; line-height: 1.8; }

/* 核心优势网格 */
.pd-adv-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin-top: 8px; }
.pd-adv {
  background: var(--bg-soft); border: 1px solid var(--border); border-radius: 12px;
  padding: 20px 20px;
}
.pd-adv h3 { font-size: 16px; font-weight: 700; color: var(--text); margin: 0 0 8px; }
.pd-adv p { font-size: 14px; line-height: 1.8; color: var(--text-body); margin: 0; }

/* 选型建议双列 */
.pd-sel { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-top: 8px; }
.pd-sel-col {
  background: var(--bg-soft); border: 1px solid var(--border); border-radius: 12px; padding: 16px 20px;
}
.pd-sel-col h4 { font-size: 15px; font-weight: 700; color: var(--text); margin: 0 0 12px; }
.pd-sel-col .pd-list { margin: 0; }
.pd-sel-col .pd-list li { font-size: 14px; line-height: 1.85; }

/* 底带副标题 */
.pd-block-sub { font-size: 13px; color: var(--text-muted); margin: 8px 0 0; line-height: 1.7; }

@media (max-width: 1024px) {
  .pd-adv-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 768px) {
  .pd-adv-grid { grid-template-columns: 1fr; }
  .pd-sel { grid-template-columns: 1fr; }
}

/* 案例卡：桌面 4 列并排，平板/手机 2×2（紧凑款） */
.pd-case-grid { list-style: none; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.pd-case {
  display: flex; flex-direction: column; border: 1px solid var(--border);
  border-radius: 12px; overflow: hidden; background: #fff;
  transition: transform .2s, border-color .2s, box-shadow .2s;
}
.pd-case:hover { transform: translateY(-3px); border-color: rgba(10,92,255,.4); box-shadow: var(--shadow-lg); }
.pd-case-media { display: block; aspect-ratio: 16 / 10; background: var(--bg-soft); }
.pd-case-media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.pd-case-body { padding: 12px 16px 16px; }
.pd-case-badges { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 8px; }
.pd-case-body h3 { font-size: 16px; line-height: 1.5; margin: 0 0 8px; }
.pd-case-body h3 a { color: var(--text); }
.pd-case-body h3 a:hover { color: var(--primary-text); }
.pd-case-body p {
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
  font-size: 13px; line-height: 1.7; color: var(--text-body); margin-bottom: 12px;
}
.pd-case .pd-more { font-size: 12px; }
.pd-more { color: var(--primary-text); font-weight: 700; font-size: 13px; }
.pd-more:hover { text-decoration: underline; }

/* ---------- Tab 之外：页面最底部相关模块（白色圆角卡片 + 蓝色竖条标题，仿参考稿） ---------- */
.pd-block { padding: 16px 0 0; background: transparent; }
.pd-block .container {
  background: #fff; border: 1px solid var(--border); border-radius: 14px;
  padding: 32px 36px; box-shadow: var(--shadow-1);
}
.pd-block-alt { background: transparent; border-top: none; padding: 16px 0 0; margin-top: 0; }
.pd-block-head {
  display: flex; align-items: center; margin-bottom: 20px;
  padding-left: 12px; border-left: 4px solid var(--primary);
}
.pd-block-head h2 { font-size: 22px; font-weight: 700; color: var(--text); margin: 0; line-height: 1.4; }   /* 2026-10-25：原 20px 与 H3(18) 仅差 2px 致层级塌陷，收进 H2 主档 22 */
.pd-rel-grid { list-style: none; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; margin-top: 0; }
.pd-rel-card {
  display: flex; flex-direction: column; background: #fff;
  border: 1px solid var(--border); border-radius: 12px; overflow: hidden;
  transition: transform .2s, border-color .2s, box-shadow .2s;
}
.pd-rel-card:hover { transform: translateY(-4px); border-color: rgba(10,92,255,.4); box-shadow: var(--shadow-lg); }
.pd-rel-media { display: block; aspect-ratio: 16 / 9; background: var(--bg-soft); }
.pd-rel-media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.pd-rel-body { display: flex; flex-direction: column; flex: 1; padding: 16px 16px 16px; }
.pd-rel-body h3 { font-size: 16px; font-weight: 700; margin: 0 0 8px; }
.pd-rel-body h3 a { color: var(--text); }
.pd-rel-body h3 a:hover { color: var(--primary-text); }
.pd-rel-body p { flex: 1; font-size: 13px; line-height: 1.75; color: var(--text-muted); margin-bottom: 12px; }

/* ---------- 响应式 ---------- */
@media (max-width: 1024px) {
  .pd-rel-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pd-case-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 1024px) {
  .pd-name { font-size: 22px; }
  .pd-pane-body { padding: 24px 24px; }
  .pd-block .container { padding: 24px 24px; }
}
@media (max-width: 768px) {
  .pd-tabs-wrap { position: static; }
  .pd-tab { padding: 13px 4px; font-size: 13px; }
  /* V4 首屏两栏移动端堆叠（图在上、信息在下），白卡收紧 */
  .pd-intro-card { padding: 20px 16px; }
  .pd-intro-grid { grid-template-columns: 1fr; gap: 20px; }
  .pd-rel-grid { grid-template-columns: 1fr; }
  .pd-gallery-strip .pd-thumb { width: 88px; height: 52px; }
  .pd-body main { padding-bottom: 36px; }
  .pd-case-grid { gap: 12px; }
  .pd-case-media { aspect-ratio: 16 / 9; }
  .pd-case-body { padding: 12px 11px 12px; }
  .pd-case-body h3 { font-size: 16px; }   /* 2026-10-25：原 13px 低于移动端正文，层级倒挂 */
  .pd-case-body p { font-size: 12px; }
}

/* ============================================================
   产品中心 v2（Hub 页：Banner + 分类卡 + 热门产品 + 咨询入口）
   ============================================================ */
body.pc-body { background: var(--bg-soft); }
/* pc-banner 旧深蓝 Banner 已删（2026-10-29，零 HTML 引用）：产品 hub 页现用 .hub-banner */
/* 面包屑已纳入深色导航栏（site-header 内），pc 正文页不再单独铺白底 */
.pc-body main { padding-bottom: 56px; }
/* V1.39：pc-intro 说明段已删（与速览框 summary 重复，开场三连重复） */
.pc-section { margin-top: 32px; }
/* V1.39 节奏带：pc-body 全页灰底，白带区制造深浅交替（hot/FAQ） */
.pc-section.soft { background: #fff; padding: 44px 0 52px; border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); }
.pc-title {
  font-size: 28px; font-weight: 700; color: var(--text);
  margin: 0 0 24px; padding-left: 12px; border-left: 4px solid var(--primary); line-height: 1.4;
}
/* 分类横带（V2.09）：4 条左右交替横带替代 2×2 等宽卡，侧栏挂真实代表产品图 */
.pc-bands { display: flex; flex-direction: column; gap: 24px; }
.pc-band {
  display: grid; grid-template-columns: minmax(0, 58fr) minmax(0, 42fr);
  gap: 0 40px; align-items: center;
  background: #fff; border: 1px solid var(--border); border-radius: 14px;
  padding: 30px 36px; box-shadow: var(--shadow-1);
  scroll-margin-top: calc(var(--header-h, 100px) + 16px); /* 导航下拉锚点定位留出吸顶 header */
}
.pc-band.flip { grid-template-columns: minmax(0, 42fr) minmax(0, 58fr); }
.pc-band.flip .pc-band-body { order: 2; }
.pc-band.flip .pc-band-media { order: 1; }
.pc-band-no {
  display: block; font-size: 13px; font-weight: 800; letter-spacing: 2px;
  color: var(--primary); margin: 0 0 6px;
}
.pc-band h3 { font-size: 22px; font-weight: 700; margin: 0 0 10px; color: var(--text); }
.pc-band .pc-band-body > p { font-size: 14px; line-height: 1.8; color: var(--text-muted); margin: 0 0 16px; }
.pc-cat-links { list-style: none; display: flex; flex-wrap: wrap; gap: 8px; padding: 0; margin: 0; }
.pc-cat-links a {
  display: inline-block; font-size: 13px; color: var(--text-body);
  background: var(--bg-soft); border: 1px solid var(--border); border-radius: 999px;
  padding: 5px 12px; text-decoration: none; transition: color .18s, background .18s, border-color .18s;
}
.pc-cat-links a:hover { color: #fff; background: var(--primary); border-color: var(--primary-text); }
.pc-band-more {
  display: inline-block; margin-top: 18px; font-size: 14px; font-weight: 600;
  color: var(--primary); text-decoration: none;
}
.pc-band-more:hover { text-decoration: underline; }
.pc-band-media { margin: 0; }
.pc-band-media img {
  display: block; width: 100%; height: 230px; object-fit: cover;
  border-radius: 10px; border: 1px solid var(--border); background: var(--bg-soft);
}
/* 热门产品 */
.pc-hot-grid { list-style: none; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; padding: 0; margin: 0; }
.pc-hot-card {
  background: #fff; border: 1px solid var(--border); border-radius: 14px; overflow: hidden;
  display: flex; flex-direction: column; transition: transform .2s, box-shadow .2s;
}
.pc-hot-card:hover { transform: translateY(-3px); box-shadow: 0 10px 24px rgba(10,26,51,.10); }
.pc-hot-media { display: block; aspect-ratio: 16 / 10; background: var(--bg-soft); }
.pc-hot-media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.pc-hot-body { padding: 16px 16px 16px; display: flex; flex-direction: column; flex: 1; }
.pc-hot-tag { font-size: 12px; color: var(--primary-text); font-weight: 600; margin-bottom: 8px; }
.pc-hot-body h3 { font-size: 16px; font-weight: 700; margin: 0 0 8px; line-height: 1.5; }
.pc-hot-body h3 a { color: var(--text); }
.pc-hot-body h3 a:hover { color: var(--primary-text); }
.pc-hot-body p { font-size: 13px; line-height: 1.7; color: var(--text-muted); margin: 0 0 12px; flex: 1; }
.pc-hot-more { font-size: 13px; color: var(--primary-text); font-weight: 600; text-decoration: none; }
.pc-hot-more:hover { text-decoration: underline; }
/* V5.23 移动端可点性（审计：71 页存在手指点不准的小目标）：
   卡片"了解详情/阅读全文"命中区提到 ≥44px 高；轮播指示点保持 5px 视觉、用透明伪元素把命中区扩到 44×44。 */
@media (max-width: 768px) {
  .pc-hot-more, .nf-more { display: inline-flex; align-items: center; min-height: 44px; }
  .hero-dots .hdot { position: relative; }
  /* 命中区只扩垂直方向：横向扩到 44 会与相邻指示点重叠，导致靠左点击命中后一个点 */
  .hero-dots .hdot::before { content: ""; position: absolute; top: 50%; left: 0; right: 0; height: 44px; transform: translateY(-50%); }
}
/* 底部咨询入口 */
.pc-cta-wrap { margin-top: 40px; }
.pc-cta {
  /* V5.35：显式 block，防止被同名旧规则污染成 flex 横排三列 */
  display: block;
  background: linear-gradient(135deg, #0B1F3A 0%, #0847C6 55%, #0A5CFF 100%);
  border-radius: 14px; color: #fff; text-align: center; padding: 44px 32px;
}
/* V5.35：h2(products)/h3(solutions·scenes·专题·delivery) 原本继承全局深色 #1A1A1A，
   压在深蓝渐变上几乎不可读；显式置白（渐变浅端 #0A5CFF 上纯白约 4.5:1，深端更高）。
   只补颜色，不动各自原有字号，避免把视觉改动扩到排版。 */
.pc-cta h2 { font-size: 24px; font-weight: 700; margin: 0 0 12px; }
.pc-cta h2, .pc-cta h3 { color: #fff; }
.pc-cta p { font-size: 14px; opacity: .92; margin: 0 0 24px; }
.pc-cta-btn {
  display: inline-block; background: #fff; color: var(--primary-text); font-weight: 700; font-size: 15px;
  border-radius: 999px; padding: 12px 32px; text-decoration: none;
  transition: transform .18s, box-shadow .18s;
}
.pc-cta-btn:hover { transform: translateY(-2px); box-shadow: 0 8px 20px rgba(0,0,0,.18); }
@media (max-width: 1024px) {
  .pc-hot-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 1024px) {
  .pc-band, .pc-band.flip { grid-template-columns: 1fr; padding: 22px 24px; gap: 16px; }
  .pc-band.flip .pc-band-body { order: 1; }   /* 移动端统一「文上图下」，取消交替 */
  .pc-band.flip .pc-band-media { order: 2; }
  .pc-band-media img { height: 180px; }
  .pc-cta { padding: 32px 24px; }
}
@media (max-width: 768px) {
  .pc-hot-grid { grid-template-columns: 1fr; }
}

/* ============================================================
   产品大类专题页（/products/<tab>/）
   ============================================================ */
.pt-body main { padding-bottom: 56px; }
.pt-group { margin-top: 40px; scroll-margin-top: calc(var(--header-h, 100px) + 16px); }
/* 大类页 AI 摘要块已迁移为统一 .ai-gist 组件（见下方「AI 速览摘要框」样式），此处不再单独设样式 */

/* 大类局部搜索框（2026-10-13 用户定稿：辅助组件，置于 AI 摘要下方子类 chips 行右侧；
   搜本大类产品的品牌/型号/系列名；type-ahead 客户端过滤；组件走设计系统 token，无内联样式） */
.pt-chips-flex { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.pt-chips-flex .pt-chip-row { flex: 1 1 auto; justify-content: flex-start; }
.pt-chips-flex .pt-search-box { flex: 0 0 300px; max-width: 300px; }
.pt-search-box { position: relative; }
.pt-search-ico {
  position: absolute; left: 15px; top: 50%; transform: translateY(-50%);
  width: 18px; height: 18px; color: var(--text-muted, #8A97A8); pointer-events: none;
  transition: color .2s;
}
.pt-search-input {
  width: 100%; height: 48px; box-sizing: border-box;
  padding: 0 16px 0 44px; font-size: 15px; color: var(--text);
  background: #fff; border: 1px solid var(--border); border-radius: 12px;
  transition: border-color .2s, box-shadow .2s;
}
.pt-search-input::placeholder { color: var(--text-muted, #8A97A8); }
.pt-search-input:focus {
  outline: none; border-color: var(--primary-text);
  box-shadow: 0 0 0 3px rgba(46, 107, 255, .12);
}
.pt-search-box:focus-within .pt-search-ico { color: var(--primary-text); }
.pt-search-panel {
  position: absolute; top: calc(100% + 8px); left: 0; right: 0; z-index: 80;
  background: #fff; border: 1px solid var(--border); border-radius: 12px;
  box-shadow: 0 16px 48px rgba(10, 30, 80, .14);
  max-height: 344px; overflow-y: auto; padding: 8px;
}
.pt-search-item {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  padding: 12px 12px; border-radius: 10px; text-decoration: none;
  font-size: 14px; color: var(--text); transition: background .15s, color .15s;
}
.pt-search-item:hover, .pt-search-item.is-active { background: var(--bg-soft); color: var(--primary-text); }
.pt-search-name { font-weight: 600; }
.pt-search-cat {
  flex: none; font-size: 12px; color: var(--text-muted, #8A97A8);
  background: #F2F5FA; border-radius: 6px; padding: 2px 8px;
}
.pt-search-item:hover .pt-search-cat, .pt-search-item.is-active .pt-search-cat { color: var(--primary-text); }
.pt-search-empty {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  padding: 13px 12px; font-size: 13px; color: var(--text-muted, #8A97A8);
}
.pt-search-ask { font-size: 13px; font-weight: 600; color: var(--primary-text); text-decoration: none; white-space: nowrap; }
.pt-search-ask:hover { text-decoration: underline; }
@media (max-width: 768px) {
  .pt-chips-flex { flex-direction: column; align-items: stretch; }
  .pt-chips-flex .pt-search-box { flex: none; max-width: none; }
  .pt-search-input { font-size: 16px; height: 46px; }
  .pt-search-panel { max-height: 60vh; }
}

/* AI 速览摘要框（全站统一 GEO 组件：首页 / 产品中心 / 关于我们 hub / 方案·场景页复用）
   —— 浅蓝渐变卡 + 左主色强调边 + 徽标 + 摘要正文 + 事实键值对 */
.ai-gist {
  background: linear-gradient(135deg, #EEF4FF 0%, #F8FBFF 100%);
  border: 1px solid rgba(10,92,255,.20);
  border-left: 4px solid var(--primary);
  border-radius: 14px;
  padding: 20px 24px;
  margin: 0 0 8px;
  box-shadow: var(--shadow-1);
}
.aig-head { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; margin-bottom: 12px; }
.aig-badge {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 12px; font-weight: 700; letter-spacing: .03em;
  color: #fff; background: var(--primary);
  padding: 4px 11px; border-radius: 999px;
}
.aig-badge svg { width: 13px; height: 13px; }
.aig-title { font-size: 14px; font-weight: 700; color: var(--text); }
.aig-summary { margin: 0; font-size: 15px; line-height: 1.8; color: var(--text-body); }
/* 要点列表（TL;DR 形态，GEO 核心区：问答型 AI 优先摘取的结构化要点） */
.aig-points { list-style: none; margin: 12px 0 0; padding: 0; display: grid; gap: 8px; }
.aig-point { position: relative; padding-left: 24px; font-size: 14px; line-height: 1.7; color: var(--text-body); }
.aig-point::before {
  content: ''; position: absolute; left: 2px; top: .62em;
  width: 8px; height: 8px; border-radius: 50%;
  background: var(--grad, linear-gradient(135deg, #0A5CFF, #00C8FF));
}
.aig-meta { margin: 16px 0 0; font-size: 12px; color: var(--text-muted); }
.aig-facts { display: flex; flex-wrap: wrap; gap: 8px 24px; margin-top: 16px; }
.aig-fact { display: inline-flex; align-items: baseline; gap: 8px; font-size: 13px; line-height: 1.5; }
.aig-k { color: var(--text-muted); font-weight: 600; }
.aig-k::after { content: '：'; }
.aig-v { color: var(--text); font-weight: 600; }
@media (max-width: 768px) {
  .ai-gist { padding: 16px; }
  .aig-summary { font-size: 14px; }
  .aig-points { gap: 8px; }
  .aig-point { font-size: 13px; }
  .aig-facts { gap: 8px 16px; }
}
/* 栏目页常见问题（apply-hub-faq 注入）：V5.41 区头统一——废除「居中大字」第二套标题语言，
   与 pc 族/全站区块头一致：左对齐 + 蓝竖条（28px）。
   V1.38：首页关于区块（.about-home）的 h2 包在 .section-title 里，走 .section-title h2，不受影响 */
.hub-faq > .container > h2 {
  font-size: 28px; font-weight: 700; line-height: 1.4;
  text-align: left; margin: 0 0 24px; color: var(--text);
  /* V5.42：FAQ 区头蓝条收敛 4→2px（用户拍板：仅收 FAQ，接受与其它区头 4px 并存） */
  padding-left: 12px; border-left: 2px solid var(--primary);
}
@media (max-width: 768px) { .hub-faq > .container > h2 { font-size: var(--fs-xl); margin-bottom: 24px; } }
/* V1.39：pc 族（产品中心/方案 hub）FAQ 标题融入页面自身标题体系（pc-title 同款），
   废除居中大字第二套标题语言；FAQ 区垫白带与热门产品区形成深浅交替 */
.pc-body .hub-faq > .container > h2 {
  font-size: 28px; font-weight: 700; line-height: 1.4;
  text-align: left; margin: 0 0 24px; color: var(--text);
  /* V5.42：与上条同步收敛 4→2px */
  padding-left: 12px; border-left: 2px solid var(--primary);
}
.pc-body main > .hub-faq { background: #fff; border-top: 1px solid var(--border); padding-bottom: 64px; }
@media (max-width: 768px) { .pc-body .hub-faq > .container > h2 { font-size: 24px; } }

/* 速览带：栏目/聚合页（标题头之后）共用
   —— GEO 落点统一：读者先看到主视觉与标题，再拿到可直接引用的结论与事实键值对 */
/* 2026-10-28：速览区与 Banner 的间距改由 .hub-banner 的 margin-bottom 40px 统一承担 */
.hub-gist-sec { padding: 0; }
@media (max-width: 768px) {
  .hub-gist-sec { padding: 0; } /* 2026-10-28：与 Banner 的间距统一由 .hub-banner margin-bottom 40px 承担 */
}

/* 表格 caption：给 AI 一个机器可读的表意标题，同时对人可见（GEO + 无障碍双重收益） */
.pd-model-table caption {
  caption-side: top;
  text-align: left;
  font-size: var(--fs-sm);
  font-weight: 700;
  color: var(--text-muted);
  padding: 0 0 10px;
}

/* 子分类锚点 chips（静态锚点跳转，无 JS 筛选） */
.pt-chips { margin-top: 20px; }
/* V2.10 专题页品牌树布局（display 试做）：左 details 折叠树 + 右品牌块；动画克制（仅箭头旋转 .24s） */
.pt-layout {
  display: grid; grid-template-columns: 248px minmax(0, 1fr);
  gap: 0 32px; align-items: start; margin-top: 28px;
}
.pt-tree {
  position: sticky; top: calc(var(--header-h, 100px) + 16px);
  background: #fff; border: 1px solid var(--border); border-radius: 12px;
  padding: 8px; box-shadow: var(--shadow-1);
}
.pt-tree-item + .pt-tree-item { border-top: 1px solid var(--border); }
.pt-tree-item summary {
  display: flex; align-items: center; gap: 8px;
  padding: 10px 10px; cursor: pointer; list-style: none;
  font-size: 14px; font-weight: 600; color: var(--text); border-radius: 8px;
}
.pt-tree-item summary::-webkit-details-marker { display: none; }
.pt-tree-item summary:hover { background: var(--bg-soft); }
.pt-tree-name { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pt-tree-cnt {
  margin-left: auto; flex: none;
  font-size: 12px; font-weight: 500; color: var(--text-muted);
  background: var(--bg-soft); border-radius: 999px; padding: 1px 8px;
}
.pt-tree-tw { width: 14px; height: 14px; flex: none; color: var(--text-muted); transition: transform .24s ease; }
.pt-tree-item[open] .pt-tree-tw { transform: rotate(90deg); }
.pt-tree-sub { list-style: none; margin: 0; padding: 2px 0 8px; }
.pt-tree-sub a {
  display: block; padding: 6px 10px 6px 22px;
  font-size: 13px; color: var(--text-body); text-decoration: none;
  border-radius: 6px; line-height: 1.5;
}
.pt-tree-sub a:hover { color: var(--primary); background: var(--bg-soft); }
.pt-brand-group { margin-top: 0; margin-bottom: 36px; }
.pt-brand-group .pc-title { margin-bottom: 16px; }
.pt-main .pc-hot-card { scroll-margin-top: calc(var(--header-h, 100px) + 16px); }
.pt-main .pt-empty { margin-bottom: 36px; }
/* V3.01 品牌块 GEO 正文：品牌定性短文 + 授权合作声明（红线06 慧博保持品牌，不单列自有方案） */
.brand-intro {
  margin: 0 0 14px; font-size: 14px; line-height: 1.85; color: var(--text-body);
  max-width: 920px;
}
.brand-auth {
  display: flex; align-items: flex-start; gap: 10px;
  margin: 0 0 18px; padding: 12px 14px;
  font-size: 13.5px; line-height: 1.7; color: var(--text-body);
  background: #f3f8f4; border: 1px solid #d6e8dc; border-radius: 10px;
  max-width: 920px;
}
.brand-auth-tag {
  flex: none; align-self: center;
  font-size: 12px; font-weight: 600; color: #1f7a3d;
  background: #e3f3e8; border-radius: 999px; padding: 2px 10px; white-space: nowrap;
}
/* 左树空品类占位（无产品时不渲染品牌链接，给出完善提示） */
.pt-tree-empty {
  padding: 6px 10px 6px 22px; font-size: 13px; color: var(--text-muted);
  list-style: none;
}
@media (max-width: 1024px) {
  .pt-layout { grid-template-columns: 1fr; gap: 20px; }
  .pt-tree { position: static; }
}
.pt-chip-row { display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; }
.pt-chip {
  display: inline-block; font-size: 14px; font-weight: 600; color: var(--text-body);
  background: #fff; border: 1px solid var(--border); border-radius: 999px;
  padding: 8px 20px; text-decoration: none; transition: all .18s;
  scroll-margin-top: calc(var(--header-h, 100px) + 16px);
}
.pt-chip:hover { color: #fff; background: var(--primary); border-color: var(--primary-text); }
/* 子分类产品区网格：大屏 4 列 / 中屏 3 列 / 平板 2 列 / 手机 1 列
   （与 pc-hot-grid 双类共存于同一 ul 时，本类定义靠后生效，故以本类为准） */
.pt-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
/* 4 列紧凑布局下的卡片图标呈现：内缩留白 + 完整不裁切，呈产品图标感（仅作用大类页，不动首页 Hub） */
.pt-grid .pc-hot-media { aspect-ratio: 4 / 3; padding: 16px; box-sizing: border-box; }
.pt-grid .pc-hot-media img { object-fit: contain; }
.pt-grid .pc-hot-body { padding: 13px 15px 15px; }
.pt-grid .pc-hot-body h3 { font-size: 16px; }
/* 空子分类占位区块（无产品时渲染，保持锚点不断链，引导联系咨询） */
.pt-empty {
  display: flex; flex-direction: column; align-items: flex-start; gap: 12px;
  padding: 32px 24px; background: #f7f9fc; border: 1px dashed var(--border);
  border-radius: 12px; color: var(--text-body); font-size: 14px; line-height: 1.8;
}
.pt-empty p { margin: 0; }
.pt-empty .pc-hot-more { align-self: flex-start; }
/* 选型指南 */
.pt-guide { max-width: 880px; margin: 0; padding-left: 24px; }
.pt-guide li { font-size: 14px; line-height: 1.9; color: var(--text-body); margin-bottom: 12px; }
.pt-guide li::marker { color: var(--primary-text); font-weight: 700; }
/* 解决方案体系：节内导语 + 小节标题 */
.pt-lead { font-size: 14px; line-height: 1.9; color: var(--text-body); max-width: 880px; margin: 0 0 20px; }
.pt-h3 { font-size: 18px; font-weight: 700; color: var(--text); margin: 0 0 16px; }
/* （V2.09）旧 .pc-cat-more 规则已随分类卡改版删除，入口样式由 .pc-band-more 承接 */
@media (max-width: 1024px) {
  .pt-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 1024px) {
  .pt-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 768px) {
  .pt-grid { grid-template-columns: 1fr; }
  .pt-chip-row { justify-content: flex-start; }
}

/* ---------- 新闻详情：推荐阅读 ---------- */
.article-title{font-size:30px;line-height:1.4;margin: 0 0 16px;color:var(--text);font-weight:700}
.article-meta{display:flex;gap: 16px;align-items:center;font-size:13.5px;color:var(--text-muted);flex-wrap:wrap}
.rec-title{font-size:20px;font-weight:700;margin: 0 0 20px;padding-left: 12px;border-left:4px solid var(--primary);color:var(--text)}
.rec-grid{display:grid;grid-template-columns:repeat(3,1fr);gap: 20px}
.rec-card{display:block;background:#fff;border:1px solid var(--border);border-radius:10px;overflow:hidden;text-decoration:none;color:inherit}
.rec-card:hover{border-color:var(--primary-text)}
.rec-card .rec-img{aspect-ratio:16/9;overflow:hidden;background:#eef2f7}
.rec-card .rec-img img{width:100%;height:100%;object-fit:cover;display:block}
.rec-card .rec-body{padding: 12px 16px}
.rec-card .rec-cat{font-size:12px;color:var(--primary-text);margin-bottom: 8px}
.rec-card h3{font-size:16px;line-height:1.5;margin: 0 0 8px;font-weight:600;color:var(--text)}
.rec-card .rec-date{font-size:12.5px;color:var(--text-muted)}
@media (max-width: 768px){.rec-grid{grid-template-columns:1fr}}

/* ============ 关于我们二级页 v3（2026-09-27 按 9.26 参考稿重做）：正文编辑型 + 深蓝网格 CTA ============ */

/* 正文排版 */
.ab-h1 { font-size: 30px; font-weight: 700; color: var(--text-primary); margin: 0 0 16px; }
.ab-h1-sub { font-size: 16px; color: var(--text-muted); margin: 0 0 20px; }
.ab-summary { font-size: 17px; color: var(--text-secondary, #37415A); line-height: 1.9; border-left: 4px solid var(--primary); padding-left: 16px; margin: 0 0 36px; max-width: 900px; }
.ab-prose p { font-size: 15px; line-height: 2.05; color: var(--text-secondary, #37415A); margin: 0 0 16px; max-width: 900px; }
.ab-prose strong { color: var(--text-primary); }
.ab-prose ul { padding-left: 20px; color: var(--text-secondary, #37415A); line-height: 2.1; margin: 0 0 16px; max-width: 900px; }
.ab-prose ul li a, .ab-links li a { color: var(--primary-text); text-decoration: none; }
.ab-prose ul li a:hover, .ab-links li a:hover { text-decoration: underline; }

/* 投递方式区（join）：电话/邮箱可点击，邮箱为主题色视觉重心 */
#apply .ab-prose a { color: var(--primary-text); font-weight: 600; text-decoration: none; }
#apply .ab-prose a:hover { text-decoration: underline; }
#apply .apply-mail { font-size: 22px; letter-spacing: .3px; }
.ab-links { padding-left: 20px; color: var(--text-secondary, #37415A); line-height: 2.1; margin: 0; }

/* 工商信息：左营业执照（横版）+ 右档案卡片（2列多行，经营范围跨两列，与图区等高） */
.ab-facts-wrap { display: grid; grid-template-columns: minmax(0, 1.05fr) 1fr; gap: 28px; align-items: stretch; margin-top: 8px; }
.ab-license { background: var(--bg-card); border: 1px solid var(--border); border-radius: 14px; padding: 20px; display: flex; flex-direction: column; justify-content: center; }
.ab-license-img { border-radius: 10px; overflow: hidden; background: #fff; border: 1px solid var(--border); }
.ab-license-img img { width: 100%; height: auto; display: block; }
.ab-license-cap { margin: 16px 2px 0; font-size: 12px; color: var(--text-muted); line-height: 1.6; text-align: center; }
.ab-facts-card { background: var(--bg-soft); border: 1px solid var(--border); border-radius: 14px; padding: 24px 28px; display: flex; align-items: center; }
.ab-facts { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px 32px; margin: 0; width: 100%; align-content: center; }
.ab-fact { padding: 0; border: none; align-self: center; }
.ab-fact-wide { grid-column: 1 / -1; }
.ab-fact dt { font-size: 12px; color: var(--text-muted); margin: 0 0 8px; }
.ab-fact dd { margin: 0; font-size: 14px; font-weight: 700; color: var(--text); line-height: 1.5; word-break: break-all; }
.ab-facts-note { font-size: 14px; color: var(--text-secondary, #37415A); margin: 8px 0 0; }
.ab-facts-note a { color: var(--primary-text); font-weight: 600; text-decoration: none; border-bottom: 1px solid rgba(10,92,255,.4); }
.ab-facts-note a:hover { border-bottom-color: var(--primary-text); }

/* 数字看慧博 · 量化权威信号（GEO：可引用硬指标） */
.ab-metrics { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin-top: 8px; }
.ab-metric { background: #fff; border: 1px solid var(--border); border-radius: var(--radius-2xl); padding: 28px 24px; text-align: center; transition: border-color .2s, box-shadow .2s, transform .2s; }
.ab-metric:hover { border-color: var(--primary-text); box-shadow: 0 12px 30px rgba(10,92,255,.12); transform: translateY(-3px); }
.ab-m-num { display: block; font-size: 40px; font-weight: 900; line-height: 1; color: var(--primary-text); letter-spacing: -1px; }
.ab-m-plus { font-size: 28px; vertical-align: 6px; }
.ab-m-label { display: block; margin-top: 12px; font-size: 14px; color: var(--text-body); line-height: 1.6; }
.ab-metric-note { margin: 24px auto 0; max-width: 880px; text-align: center; font-size: 14px; color: var(--text-body); line-height: 1.8; background: var(--bg-soft); border: 1px solid var(--border); border-radius: 12px; padding: 16px 20px; }
.ab-metric-note a { color: var(--primary-text); font-weight: 600; text-decoration: none; }
.ab-metric-note a:hover { text-decoration: underline; }
/* 4 列变体（案例数据看板等） */
.ab-metrics.m4 { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 1024px) { .ab-metrics.m4 { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 768px) { .ab-metrics.m4 { grid-template-columns: 1fr; } }
/* V5.23 移动端溢出修复（审计：/about.html 横向溢出 33px）：3 列指标卡在 390px 下被内容撑破视口 */
@media (max-width: 768px) { .ab-metrics { grid-template-columns: 1fr; gap: 12px; } .ab-metric { padding: 20px 16px; } }

/* 招聘卡片 */
.ab-job-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-bottom: 8px; }
.job-card { background: var(--bg-card); border: 1px solid var(--border); border-radius: 14px; padding: 24px 28px; display: flex; flex-direction: column; }
.job-head { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px; margin-bottom: 12px; }
.job-card h3 { font-size: 18px; color: var(--text-primary); margin: 0; }
.job-tags { display: flex; flex-wrap: wrap; gap: 8px; }
.job-card .tag { display: inline-block; font-size: 12px; line-height: 1; padding: 8px 12px; border-radius: 999px; background: rgba(10,92,255,.10); color: var(--primary-text); border: 1px solid rgba(10,92,255,.25); white-space: nowrap; }
.job-meta { font-size: 14px; color: var(--text-secondary, #4B5563); margin: 0 0 16px; }
.job-meta .jm-label { color: var(--text-primary); font-weight: 600; }
.job-body { flex: 1 1 auto; }
.job-card h4 { font-size: 15px; color: var(--text-primary); margin: 16px 0 8px; }
.job-card ul { margin: 0; padding-left: 20px; }
.job-card li { font-size: 14px; color: var(--text-secondary, #4B5563); line-height: 1.9; margin: 5px 0; }
.job-apply { margin-top: 20px; padding-top: 16px; border-top: 1px solid var(--border); display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.job-apply .ja-note { font-size: 13px; color: var(--text-muted); }

/* 证书图占位（图片上传前灰底占位，不编造） */
/* 品牌合作伙伴 logo 墙（替换原证书占位卡；占位文字待真实 logo 图替换） */
.ab-partners { display: grid; grid-template-columns: repeat(6, 1fr); gap: 16px; align-items: stretch; }
.ab-logo { background: var(--bg-card); border: 1px solid var(--border); border-radius: 14px; padding: 18px 14px; text-align: center; transition: border-color .2s, box-shadow .2s, transform .2s; display: flex; flex-direction: column; }
.ab-logo:hover { border-color: var(--primary); box-shadow: 0 6px 18px rgba(13,27,42,.08); transform: translateY(-3px); }
.ab-logo-box { height: 96px; display: flex; flex-direction: column; align-items: center; justify-content: center; background: var(--bg-soft); border: 1px solid var(--border); border-radius: 10px; margin-bottom: 12px; overflow: hidden; }
.ab-logo-box img { width: 100%; height: 100%; object-fit: contain; object-position: center; display: block; filter: grayscale(1); transition: filter .2s; }
.ab-logo:hover .ab-logo-box img { filter: grayscale(0); }
.ab-logo-word { font-size: 16px; font-weight: 700; letter-spacing: .3px; color: var(--text); line-height: 1.3; }
.ab-logo-word .en { display: block; font-size: 12px; font-weight: 600; color: var(--text-muted); letter-spacing: .5px; margin-top: 3px; }
.ab-logo-name { font-size: 13px; color: var(--text-muted); margin-top: auto; }
.ab-logo-more .ab-logo-box { color: var(--text-muted); justify-content: center; }
.ab-logo-plus { font-size: 30px; font-weight: 300; line-height: 1; }
/* 关于页 h3 子板块标题 + 描述文本（资质荣誉 v2 等） */
.ab-h3 { font-size: 18px; color: var(--text-primary); margin: 24px 0 12px; }
.section-desc { font-size: 15px; color: var(--text-secondary, #37415A); line-height: 2.05; max-width: 900px; margin: 0 0 20px; }
/* 项目实力页：文字段落横向铺满容器（与加入我们页主内容观感一致；仅此页三个板块生效） */
#quals .ab-summary { max-width: none; }
#strength .section-desc, #auth .section-desc { max-width: none; }
/* 服务能力页：正文段落横向铺满容器（与项目实力/加入我们页观感一致；仅本页生效） */
#service .ab-summary,
#scenes .ab-prose p,
#systems .ab-prose p { max-width: none; }
/* 公司简介页：同服务能力页，正文段落横向铺满容器（仅本页 intro 板块生效） */
#intro .ab-summary,
#intro .ab-prose p { max-width: none; }
/* 公司简介页：企业理念——三段式卡片（H3 关键词 + 线性图标，客户友好 + AI 友好） */
.ab-values-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-top: 28px; max-width: none; }
.ab-value { background: var(--bg-card); border: 1px solid var(--border); border-radius: 14px; padding: 32px 28px; text-align: left; transition: all .18s; }
.ab-value:hover { border-color: var(--primary-text); box-shadow: 0 8px 22px rgba(10,92,255,.10); transform: translateY(-3px); }
.ab-value-ico { width: 52px; height: 52px; border-radius: 14px; background: var(--primary-soft); color: var(--primary-text); display: flex; align-items: center; justify-content: center; margin-bottom: 20px; }
.ab-value-ico svg { width: 26px; height: 26px; display: block; }
.ab-value h3 { font-size: 18px; font-weight: 700; color: var(--text-primary); margin: 0 0 12px; }
.ab-value-desc { font-size: 14px; color: var(--text-secondary, #37415A); line-height: 1.95; margin: 0; }
@media (max-width: 1024px) {
  .ab-values-grid { grid-template-columns: 1fr; }
}
/* 公司简介页：核心要点结构化列表（AI 优先识别 ul>li + 加粗；内层以标签云呈现，仍是合法 ul>li） */
.ab-prose .ab-keypoints { list-style: none; margin: 12px 0 0; padding: 0; max-width: none; }
.ab-prose .ab-keypoints > li { padding: 20px 0; border-bottom: 1px solid var(--border); }
.ab-prose .ab-keypoints > li:last-child { border-bottom: none; padding-bottom: 0; }
.ab-prose .ab-keypoints .kp-label { font-weight: 800; font-size: 16px; color: var(--primary-text); margin-right: 8px; }
.ab-prose .ab-keypoints .kp-desc { font-size: 15px; color: var(--text-secondary, #37415A); }
.ab-prose .ab-keypoints .kp-list { list-style: none; display: flex; flex-wrap: wrap; gap: 9px; margin: 12px 0 0; padding: 0; max-width: none; }
.ab-prose .ab-keypoints .kp-list li { font-size: 13px; padding: 8px 13px; border-radius: 999px; background: var(--primary-soft); color: var(--primary-text); font-weight: 600; }
.ab-prose .ab-keypoints .kp-note { font-size: 14px; color: var(--text-secondary, #37415A); line-height: 1.95; margin: 12px 0 0; }

/* 服务能力页：技术支持与售后运维——横向时间轴（编号步骤块 + 蓝色线性图标，呼应"全生命周期"） */
.cap-tl { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; margin: 32px 0 8px; position: relative; }
.cap-tl::before { content: ""; position: absolute; top: 23px; left: 12.5%; right: 12.5%; height: 2px; background: linear-gradient(90deg, var(--primary), #9AB6FF); z-index: 0; }
.cap-tl-item { position: relative; z-index: 1; display: flex; flex-direction: column; align-items: center; text-align: center; }
.cap-tl-badge { width: 46px; height: 46px; border-radius: 50%; background: #fff; border: 2px solid var(--primary); color: var(--primary-text); display: flex; align-items: center; justify-content: center; font-weight: 800; font-size: 18px; margin-bottom: 16px; box-shadow: 0 4px 12px rgba(10,92,255,.15); flex: none; }
.cap-tl-card { width: 100%; background: var(--bg-card); border: 1px solid var(--border); border-radius: 14px; padding: 20px 16px; transition: all .18s; }
.cap-tl-card:hover { border-color: var(--primary-text); box-shadow: var(--shadow-2); transform: translateY(-2px); }
.cap-tl-ic { width: 38px; height: 38px; border-radius: 10px; background: #EAF0FF; color: var(--primary-text); display: inline-flex; align-items: center; justify-content: center; margin-bottom: 12px; }
.cap-tl-ic svg { width: 21px; height: 21px; }
.cap-tl-card h3 { font-size: 16px; font-weight: 700; margin: 0 0 8px; color: var(--text-primary); }
.cap-tl-card p { font-size: 13px; line-height: 1.7; color: var(--text-secondary, #37415A); margin: 0; }
@media (max-width: 768px) {
  .cap-tl { grid-template-columns: 1fr; gap: 0; }
  .cap-tl::before { top: 23px; bottom: 23px; left: 22px; right: auto; width: 2px; height: auto; background: linear-gradient(180deg, var(--primary), #9AB6FF); }
  .cap-tl-item { flex-direction: row; align-items: flex-start; text-align: left; gap: 16px; padding-bottom: 20px; }
  .cap-tl-badge { margin-bottom: 0; }
  .cap-tl-card { padding: 16px 16px; }
}

/* 服务能力页：章节锚点导航（复用 pt-chip 视觉，静态锚点，AI 安全；左对齐） */
.cap-anchors { margin: 24px 0 4px; }
.cap-anchors .pt-chip-row { justify-content: flex-start; }

/* 服务能力页：全流程四步卡片 */
.cap-steps { display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px; margin: 24px 0 4px; }
.cap-step { position: relative; border: 1px solid var(--border); border-radius: 14px; padding: 20px 24px; background: var(--bg-card); }
.cap-step .num { display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 30px; border-radius: 10px; background: var(--primary); color: #fff; font-weight: 800; font-size: 15px; margin-bottom: 12px; }
.cap-step h3 { font-size: 18px; color: var(--text-primary); margin: 0 0 8px; font-weight: 700; }
.cap-step p { font-size: 14px; line-height: 1.9; color: var(--text-secondary, #37415A); margin: 0; }
.cap-tag { position: absolute; top: 16px; right: 18px; background: #EAF0FF; color: var(--primary-text); font-size: 12px; font-weight: 700; letter-spacing: 2px; line-height: 1; padding: 5px 11px; border-radius: 999px; }
.cap-industry-strip { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; margin: 24px 0 0; }
.cap-industry-label { color: var(--text-primary); font-weight: 800; font-size: 15px; letter-spacing: 1px; flex: none; }
.cap-industry-row { display: flex; flex-wrap: wrap; gap: 12px; }
.cap-industry { display: inline-flex; align-items: center; gap: 8px; background: #EEF3FE; color: #2E5BD0; font-weight: 600; font-size: 13px; padding: 8px 16px; border-radius: 999px; border: 1px solid var(--primary-light); }
@media (max-width: 768px) { .cap-steps { grid-template-columns: 1fr; } }

/* 服务能力页：核心子系统能力卡片（链接到解决方案，强化内链） */
.cap-sys-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin: 24px 0 4px; }
.cap-sys { display: block; border: 1px solid var(--border); border-radius: 12px; padding: 16px 20px; background: var(--bg-card); color: var(--text-primary); text-decoration: none; transition: all .18s; }
.cap-sys:hover { border-color: var(--primary-text); box-shadow: var(--shadow-2); transform: translateY(-2px); }
.cap-sys .nm { font-size: 15px; font-weight: 700; display: flex; align-items: center; gap: 9px; }
.cap-sys .cap-ico { width: 20px; height: 20px; flex: 0 0 20px; color: var(--primary-text); transition: color .18s; }
.cap-sys:hover .cap-ico { color: var(--primary-text); }
.cap-sys .lk { font-size: 12px; color: var(--primary-text); margin-top: 8px; transition: color .18s; }
.cap-sys:hover .lk { color: #1438B0; font-weight: 700; }
@media (max-width: 1024px) { .cap-sys-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 768px) { .cap-sys-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 768px) { .cap-sys-grid { grid-template-columns: 1fr; } }

/* 深蓝网格大 CTA（全站统一选型咨询区块，对标 9.26 参考稿） */
.ab-cta {
  background: linear-gradient(135deg, #0f1729, #142442);
  border-radius: 14px; padding: 56px 24px; position: relative; overflow: hidden;
}
.ab-cta::before {
  content: ""; position: absolute; inset: 0; opacity: .6;
  background-image:
    linear-gradient(rgba(70,90,130,.18) 1px, transparent 1px),
    linear-gradient(90deg, rgba(70,90,130,.18) 1px, transparent 1px);
  background-size: 32px 32px;
}
.ab-cta-inner { position: relative; z-index: 2; text-align: center; }
.ab-cta h2 { color: #fff; font-size: 28px; font-weight: 700; margin: 0 0 16px; }
.ab-cta-desc { color: #B8C6E2; font-size: 18px; margin: 0 0 32px; }
.ab-cta-btns { display: flex; gap: 20px; flex-wrap: wrap; justify-content: center; }
.ab-cta-primary {
  background: linear-gradient(90deg, #1976ff, #00b8ff); color: #fff; padding: 16px 40px;
  border-radius: 12px; text-decoration: none; display: inline-block; font-size: 19px; font-weight: 700;
  box-shadow: 0 0 20px rgba(0,160,255,.35);
}
.ab-cta-outline {
  border: 1px solid rgba(255,255,255,.25); color: #fff; padding: 16px 40px;
  border-radius: 12px; text-decoration: none; display: inline-block; font-size: 19px;
  background: rgba(255,255,255,.08);
}
.ab-cta-primary:hover { filter: brightness(1.08); }
.ab-cta-outline:hover { background: rgba(255,255,255,.16); }

@media (max-width: 1024px) {
  .ab-cta h2 { font-size: 28px; }
  .ab-cta-desc { font-size: 15px; }
  .ab-cta-btns { flex-direction: column; align-items: stretch; }
  .ab-cta-primary, .ab-cta-outline { text-align: center; padding: 16px 20px; font-size: 16px; }
  .ab-job-grid { grid-template-columns: 1fr; }
  .ab-partners { grid-template-columns: repeat(3, 1fr); gap: 12px; }
  .ab-facts-wrap { grid-template-columns: 1fr; }
  .ab-facts { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 480px) {
  .ab-partners { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 768px) {
  .ab-h1 { font-size: 25px; }
  .ab-facts { grid-template-columns: 1fr; grid-template-rows: auto; gap: 16px 0; }
}

/* 关于我们 HUB：六段信任链（企业优势卡片 + 代表案例列表） */
.adv-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; margin: 8px 0 0; }
.adv-card { background: var(--bg-card); border: 1px solid var(--border); border-radius: 14px; padding: 24px 20px; transition: border-color .2s, transform .2s, box-shadow .2s; }
.adv-card:hover { border-color: var(--primary-text); transform: translateY(-3px); box-shadow: 0 8px 24px rgba(10,92,255,.10); }
.adv-card h3 { margin: 0 0 12px; font-size: 18px; color: var(--text); }
.adv-card p { margin: 0; font-size: 13px; color: var(--text-muted); line-height: 1.75; }
.hb-case-list { margin: 20px 0 0; }
.hb-case-item { padding: 16px 0; border-top: 1px solid var(--border); }
.hb-case-item:first-child { border-top: none; padding-top: 4px; }
.hb-case-item h3 { margin: 0 0 8px; font-size: 16px; }
.hb-case-item h3 a { color: var(--primary-text); text-decoration: none; }
.hb-case-item h3 a:hover { text-decoration: underline; }
.hb-case-item p { margin: 0; font-size: 13px; color: var(--text-muted); line-height: 1.65; }
@media (max-width: 1024px) { .adv-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 768px) { .adv-grid { grid-template-columns: 1fr; } }

/* 解决方案/场景：两种找法双栏卡（差异化导引） */
.dual-browse { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin: 8px 0 0; }
.db-card { background: var(--bg-card); border: 1px solid var(--border); border-radius: 14px; padding: 24px 24px; display: flex; flex-direction: column; gap: 12px; transition: border-color .2s, box-shadow .2s, transform .2s; }
.db-card:hover { border-color: var(--primary-text); box-shadow: 0 10px 30px rgba(10,92,255,.10); transform: translateY(-3px); }
.db-tag { display: inline-block; align-self: flex-start; font-size: 12px; font-weight: 600; color: var(--primary-text); background: rgba(10,92,255,.08); border-radius: 999px; padding: 4px 12px; }
.db-card h3 { margin: 2px 0 0; font-size: 20px; color: var(--text); }
.db-card p { margin: 0; font-size: 14px; color: var(--text-muted); line-height: 1.8; }
.db-more { align-self: flex-start; margin-top: 4px; font-size: 14px; font-weight: 600; color: var(--primary-text); text-decoration: none; }
.db-more:hover { text-decoration: underline; }
@media (max-width: 768px) { .dual-browse { grid-template-columns: 1fr; } }

/* ============================================================
   官网优化增强组件（2026-10-16 第一版：时间轴/分享/反向互链/FAQ/矩阵/NOT X BUT Y）
   运行时注入，对应 app.js：initTimeline/initFloatingDock/initSceneExtras/initNotXbutY/initSceneMatrix
   ============================================================ */
.hb-sec-title { font-size: 22px; font-weight: 700; color: var(--text); margin: 0 0 8px; padding-left: 12px; border-left: 4px solid var(--primary); line-height: 1.4; }

/* 点9 实施流程时间轴 */
/* 项目交付流程时间轴：8 步全流程（2026-10-17 静态化进方案/场景页；
   app.js initTimeline 仍向 关于/案例 页注入同款，两类上下文共用下列类；
   2026-10-17 分组美化：两组 × 4 步 + 阶段标签 + 组内连接线 + 两位编号） */
.hb-timeline { padding: 8px 0 0; background: transparent; }
/* 容器宽度：不覆盖，继承 .container 标准 1300px（2026-10-22 用户拍板统一；
   旧值 1100px 曾导致注入版与 solutions 嵌入版（pt-group 内 max-width:none）两种宽度） */
/* 静态嵌入 pt-group 板块内时：不再自带外边距与限宽，沿用板块容器 */
.pt-group .hb-timeline { padding: 0; }
.pt-group .hb-timeline .container { max-width: none; }
/* 阶段分组 = 白卡 + 左侧色条：表达「流程分段」语义（同时服务静态版与 app.js 注入版） */
.hb-tl-group { position: relative; background: #fff; border: 1px solid var(--border); border-left: 3px solid var(--primary); border-radius: 14px; padding: 22px 24px 20px; }
.hb-tl-group + .hb-tl-group { margin-top: 40px; }
/* 跨阶段接续标识：填充「方案与供货 → 施工与交付」之间的语义断点 */
.hb-tl-group + .hb-tl-group::before { content: '↓ 接续至阶段二'; position: absolute; top: -19px; left: 50%; transform: translateX(-50%); z-index: 2; background: #fff; border: 1px solid var(--border); border-radius: 999px; padding: 3px 14px; font-size: 12px; font-weight: 700; letter-spacing: .03em; color: var(--primary); white-space: nowrap; box-shadow: 0 2px 8px rgba(20,40,80,.08); }
/* 阶段标签（卡内小标题）：渐变竖条 + 右向渐隐细线 */
.hb-tl-phase { display: flex; align-items: center; gap: 9px; font-size: 13px; font-weight: 700; letter-spacing: .06em; color: #1b2a4a; margin: 0 0 18px; }
.hb-tl-phase::before { content: ''; flex: none; width: 3px; height: 14px; border-radius: 2px; background: linear-gradient(180deg, var(--primary), #00C8FF); }
.hb-tl-phase::after { content: ''; flex: 1; height: 1px; background: linear-gradient(90deg, var(--border), transparent); }
/* runtime 注入版引导语（静态版的 pt-lead 由 H2SEC 外层承担） */
.hb-tl-lead { font-size: 14px; line-height: 1.7; color: var(--text-muted); margin: 0 0 20px; }
/* P2-11：时间轴末「查看标准交付流程完整说明 →」链回权威页 */
.hb-tl-more { margin: 18px 0 0; text-align: right; }
.hb-tl-more a { color: var(--primary-text); font-weight: 700; text-decoration: none; font-size: 14px; }
.hb-tl-more a:hover { text-decoration: underline; }
/* 节点网格（每阶段 4 步） */
.hb-tl-list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; position: relative; }
/* 贯穿脊线：连接阶段内各步骤节点（圆中线高度 ≈ 18px；4 列均分 → 端点落在首末列中心） */
.hb-tl-list::before { content: ''; position: absolute; top: 17px; left: 12.5%; right: 12.5%; height: 2px; border-radius: 2px; background: linear-gradient(90deg, rgba(10,92,255,.55), rgba(0,200,255,.5)); z-index: 0; }
/* 步骤项：无独立卡片，作为列内居中内容块 */
.hb-tl-item { position: relative; z-index: 1; text-align: center; padding: 0 8px; }
/* 序号节点：坐于脊线上（白色环切出脊线，呈现「节点串成线」的时间轴语义）；徽章瘦身、不浮出卡外 */
.hb-tl-no { display: flex; align-items: center; justify-content: center; width: 36px; height: 36px; margin: 0 auto 12px; border-radius: 50%; background: linear-gradient(145deg, #0A5CFF, #00C8FF); color: #fff; font-weight: 800; font-size: 14px; letter-spacing: .02em; box-shadow: 0 0 0 4px #fff, 0 4px 12px rgba(10,92,255,.28); }
.hb-tl-body b { display: block; font-size: 15px; color: var(--text); margin: 0 0 6px; line-height: 1.5; }
.hb-tl-body p { font-size: 13px; line-height: 1.7; color: var(--text-body); margin: 0; }
/* 换行即失效（脊线跨列无意义）→ ≤1024 隐藏脊线；移动端单列堆叠 */
@media (max-width: 1024px) { .hb-tl-list { grid-template-columns: repeat(2, minmax(0, 1fr)); } .hb-tl-list::before { display: none; } }
@media (max-width: 768px) { .hb-tl-list { grid-template-columns: 1fr; } }

/* 点5b/5d 场景增强区块（hb-rel 反向互链段已删：类全站零引用，hub 页改版退役；
   宽度偏差 1100 随之作废） */
.hb-faq { margin-top: 4px; }
.hb-faq dt { font-size: 15px; font-weight: 700; color: var(--text); padding: 16px 0 8px; border-top: 1px solid var(--border); }
.hb-faq dt:first-child { border-top: none; padding-top: 0; }
.hb-faq dd { font-size: 14px; line-height: 1.9; color: var(--text-body); padding-bottom: 16px; margin: 0; }

/* 点6 NOT X BUT Y 对比文案 */
.hb-nxby { background: linear-gradient(135deg, #EEF4FF 0%, #F8FBFF 100%); border: 1px solid rgba(10,92,255,.20); border-left: 4px solid var(--primary); border-radius: 14px; padding: 20px 20px; margin: 0 0 24px; box-shadow: var(--shadow-1); }
.hb-nxby-tag { display: inline-block; font-size: 12px; font-weight: 700; letter-spacing: .03em; color: #fff; background: var(--primary); padding: 4px 11px; border-radius: 999px; margin-bottom: 12px; }
.hb-nxby-rows { display: grid; gap: 12px; }
.hb-nxby-line { display: flex; align-items: baseline; gap: 12px; margin: 0; font-size: 14px; line-height: 1.8; color: var(--text-body); }
.hb-nxby-no, .hb-nxby-yes { flex: 0 0 auto; font-weight: 800; font-size: 13px; border-radius: 6px; padding: 2px 12px; }
.hb-nxby-no { color: #9C4526; background: #FBEDE6; }   /* 2026-10-25：原 #B4573B 仅 4.20:1 → 压深至 5.58:1 */
.hb-nxby-yes { color: #fff; background: #137A4B; }   /* 2026-10-25：原 #22B573 白字仅 2.65:1 → 压深至 5.37:1 */

/* 点5c 行业×空间 矩阵（hb-matrix 段已删：类全站零引用，hub 页改版退役；
   宽度偏差 1180 随之作废） */

/* ============================================================
   右侧竖排悬浮按钮组（2026-10-17：取代底部 sticky 条 + 独立分享/回顶）
   按页面类型配置（app.js dockConfig）：
   产品/案例/方案/新闻/场景 → 分享 + 电话 + 回顶部
   关于我们（含子页）        → 电话 + 回顶部
   首页                      → 仅回顶部
   contact / 法律等其他       → 不挂
   滚动超过一屏（300px）整组浮现；分享=二维码开关（点开/再点关，任何浏览器可扫）；
   电话点击向左滑出号码标签（标签可点击拨打）
   ⚠️ [hidden] 必须显式覆盖 display（flex/grid 会击败浏览器默认 [hidden]{display:none}）
   ============================================================ */
.hb-dock-phone-tag[hidden], .hb-dock-qr-mask[hidden] { display: none !important; }
.hb-dock { position: fixed; right: 24px; bottom: 84px; z-index: 940; display: flex; flex-direction: column; gap: 12px; opacity: 0; visibility: hidden; transform: translateY(12px); transition: opacity .25s ease, transform .25s ease, visibility .25s; }
.hb-dock.show { opacity: 1; visibility: visible; transform: none; }
.hb-dock-btn { width: 46px; height: 46px; border-radius: 12px; background: var(--primary); color: #fff; border: none; box-shadow: 0 10px 26px rgba(10,92,255,.42); cursor: pointer; display: flex; align-items: center; justify-content: center; transition: transform .2s, box-shadow .2s, background .2s; text-decoration: none; padding: 0; font-family: inherit; }
.hb-dock-btn:hover { transform: translateY(-2px); box-shadow: 0 14px 30px rgba(10,92,255,.55); }
.hb-dock-btn:focus-visible { outline: 3px solid rgba(10,92,255,.5); outline-offset: 2px; }
.hb-dock-btn svg { width: 21px; height: 21px; display: block; }
/* 回到顶部：独立常驻固定按钮（2026-10-24）。
   悬浮组用 opacity 控显隐，opacity 与子元素复合、无法单独放行，
   故回顶从悬浮组拆出为独立节点：任何页面、任何滚动位置都能一键回顶。
   位置在右下角，悬浮组整体上移 56px 避让，两者不重叠。 */
.hb-top-fab { position: fixed; right: 24px; bottom: 28px; z-index: 941; width: 46px; height: 46px; border-radius: 12px; background: #22304F; color: #fff; border: none; box-shadow: 0 10px 26px rgba(20,30,60,.38); cursor: pointer; display: flex; align-items: center; justify-content: center; transition: transform .2s, box-shadow .2s, background .2s; padding: 0; font-family: inherit; }
.hb-top-fab:hover { transform: translateY(-2px); background: #1A2440; box-shadow: 0 14px 30px rgba(20,30,60,.48); }
.hb-top-fab:focus-visible { outline: 3px solid rgba(10,92,255,.5); outline-offset: 2px; }
.hb-top-fab svg { width: 21px; height: 21px; display: block; }
/* 电话：点击图标向左滑出号码标签（可点击拨打），再点/Esc/外点收回 */
.hb-dock-phone-wrap { position: relative; }
.hb-dock-phone-tag { position: absolute; right: 56px; bottom: 0; display: flex; align-items: center; gap: 8px; height: 46px; padding: 0 16px 0 13px; background: #fff; border: 1px solid var(--border); border-radius: 12px; box-shadow: 0 12px 32px rgba(10,30,80,.18); text-decoration: none; white-space: nowrap; opacity: 0; transform: translateX(14px); transition: opacity .25s ease, transform .25s ease; }
.hb-dock-phone-tag.open { opacity: 1; transform: none; }
.hb-dock-phone-tag svg { width: 16px; height: 16px; color: var(--primary-text); flex: 0 0 auto; }
.hb-dock-phone-tag b { font-size: 16px; font-weight: 800; color: var(--text); letter-spacing: .02em; font-family: 'DIN Alternate', 'Segoe UI', system-ui, sans-serif; }
.hb-dock-phone-tag i { font-style: normal; font-size: 12px; color: var(--text-body); background: var(--bg-soft); border-radius: 6px; padding: 2px 8px; }
.hb-dock-phone-tag:hover { border-color: var(--primary-text); }
/* 二维码弹层：手机扫码（微信/钉钉/飞书均可）打开后走各 App 原生分享 */
.hb-dock-qr-mask { position: fixed; inset: 0; z-index: 960; background: rgba(15,23,42,.55); display: flex; align-items: center; justify-content: center; padding: 20px; }
.hb-dock-qr-box { position: relative; background: #fff; border-radius: 14px; box-shadow: 0 24px 64px rgba(10,20,50,.28); padding: 24px 28px 20px; text-align: center; max-width: 300px; }
.hb-dock-qr-close { position: absolute; top: 10px; right: 10px; width: 32px; height: 32px; border: none; background: var(--bg-soft); color: var(--text-body); border-radius: 10px; cursor: pointer; display: flex; align-items: center; justify-content: center; }
.hb-dock-qr-close:hover { background: #EEF1F6; color: var(--text); }
.hb-dock-qr-close:focus-visible { outline: 2px solid var(--primary); outline-offset: 1px; }
.hb-dock-qr-title { font-size: 16px; font-weight: 700; color: var(--text); margin-bottom: 4px; }
.hb-dock-qr-sub { font-size: 12px; color: var(--primary-text); font-weight: 600; margin-bottom: 16px; }
.hb-dock-qr-img { display: flex; align-items: center; justify-content: center; min-height: 176px; }
.hb-dock-qr-img img, .hb-dock-qr-img canvas { display: block; }
.hb-dock-qr-tip { margin-top: 16px; font-size: 12px; line-height: 1.7; color: var(--text-body); }
.hb-dock-qr-copy { display: inline-flex; align-items: center; justify-content: center; gap: 8px; margin-top: 16px; padding: 8px 20px; font-size: 13px; font-weight: 600; color: var(--text-body); background: var(--bg-soft); border: none; border-radius: 10px; cursor: pointer; font-family: inherit; transition: background .15s, color .15s; }
.hb-dock-qr-copy svg { width: 15px; height: 15px; display: block; }
.hb-dock-qr-copy:hover { background: #E4EAF5; color: var(--primary-text); }
.hb-dock-qr-copy:focus-visible { outline: 2px solid var(--primary); outline-offset: 1px; }
@media (max-width: 768px) {
  .hb-dock { right: 12px; bottom: 66px; gap: 8px; }
  .hb-top-fab { right: 12px; bottom: 16px; width: 40px; height: 40px; border-radius: 10px; }
  .hb-top-fab svg { width: 18px; height: 18px; }
  .hb-dock-btn { width: 40px; height: 40px; border-radius: 10px; }
  .hb-dock-btn svg { width: 18px; height: 18px; }
  .hb-dock-phone-tag { right: 48px; height: 40px; padding: 0 12px 0 12px; }
  .hb-dock-phone-tag b { font-size: 14px; }
  .hb-dock-phone-tag i { display: none; }

}

/* 产品详情页：型号与配置对照表（data.js modelTable 驱动，型号变体同页对照） */
.pd-model-table { overflow-x: auto; -webkit-overflow-scrolling: touch; margin-top: 16px; border: 1px solid var(--border); border-radius: 12px; }
.pd-model-table table { border-collapse: collapse; width: 100%; min-width: 340px; font-size: 14px; background: #fff; }
.pd-model-table thead th { background: var(--bg-soft); color: var(--text); font-weight: 700; text-align: left; padding: 11px 16px; border-bottom: 1px solid var(--border); }
.pd-model-table tbody td { padding: 11px 16px; border-bottom: 1px solid var(--border); color: var(--text-body); vertical-align: middle; }
.pd-model-table tbody td:first-child { font-weight: 600; color: var(--text); white-space: nowrap; }
.pd-model-table tbody td:last-child { font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace; color: var(--primary-text); font-weight: 700; letter-spacing: .01em; }
.pd-model-table tbody tr:last-child td { border-bottom: none; }
@media (max-width: 768px) { .pd-model-table table { min-width: 300px; font-size: 13px; } .pd-model-table thead th, .pd-model-table tbody td { padding: 9px 12px; } }

/* ===== 404 页专用（2026-10-22，品牌版+轻量引导） ===== */
.nf-hero { padding: 88px 0 80px; text-align: center; }
.nf-code { font-size: 128px; font-weight: 800; line-height: 1; letter-spacing: .02em; margin: 0 0 12px; background: var(--grad); -webkit-background-clip: text; background-clip: text; color: transparent; }
.nf-title { font-size: 28px; font-weight: 700; color: var(--text); margin: 0 0 16px; }
.nf-desc { max-width: 680px; margin: 0 auto 32px; font-size: 15px; line-height: 1.9; color: var(--text-body); }
.nf-cta { display: flex; gap: 16px; justify-content: center; flex-wrap: wrap; margin-bottom: 24px; }
.nf-contact { font-size: 14px; color: var(--text-muted); margin: 0 0 64px; }
.nf-contact a { color: var(--primary-text); text-decoration: none; }
.nf-contact a:hover { text-decoration: underline; }
.nf-contact .nf-sep { margin: 0 12px; color: var(--border); }
.nf-links-title { font-size: 17px; font-weight: 700; color: var(--text); margin: 0 0 20px; }
.nf-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; max-width: 1020px; margin: 0 auto; }
.nf-card { display: block; padding: 20px 20px; background: var(--bg); border: 1px solid var(--border); border-radius: 12px; text-align: left; transition: border-color .2s, box-shadow .2s, transform .2s; }
.nf-card:hover { border-color: var(--primary-text); box-shadow: 0 12px 28px rgba(46, 107, 255, .12); transform: translateY(-2px); }
.nf-card-t { display: block; font-size: 15px; font-weight: 600; color: var(--text); margin-bottom: 5px; }
.nf-card-d { display: block; font-size: 13px; line-height: 1.7; color: var(--text-muted); }
@media (max-width: 1024px) { .nf-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 540px) { .nf-grid { grid-template-columns: 1fr; } .nf-code { font-size: 88px; } .nf-hero { padding: 56px 0; } }


/* ============================================================
   首页精雕 2026-10-24（UI 设计师产出）
   —— 深空速览带仅作用于首页 .ai-gist-sec，其余 36 个内页保持浅色阅读面
   ============================================================ */
.ai-gist-sec .ai-gist {
  background: linear-gradient(135deg, #0A1526 0%, #101E38 100%);
  border-color: rgba(255,255,255,.14);
  border-left-color: var(--primary-text);
  box-shadow: 0 18px 44px -18px rgba(10,21,38,.55);
}
.ai-gist-sec .aig-title { color: #E8F0FF; }
.ai-gist-sec .aig-summary { color: #C6D5EC; }
.ai-gist-sec .aig-point { color: #A9BDD8; }
.ai-gist-sec .aig-meta { color: #8FA6C6; font-size: 13px; }
.ai-gist-sec .aig-k { color: #8FA6C6; }
.ai-gist-sec .aig-v { color: #E8F0FF; }
.ai-gist-sec .ai-gist a { color: #7FA8FF; }
.ai-gist-sec .ai-gist a:hover { color: #9FC0FF; }

/* 移动端点击区：文字链补到 44px，胶囊标签补到 32px（视觉不破坏，仅可点面积变大） */
@media (max-width: 768px) {
  .f-sol-list li a,
  .cap-col li a,
  .footer-grid nav ul li a,
  .fb-policies a,
  .fb-beian a,
  .home-more-link {
    display: inline-flex; align-items: center; min-height: 44px;
  }
  .sc-hot a,
  .fc-systems a {
    display: inline-flex; align-items: center; min-height: 36px; padding: 4px 12px;
  }
  /* 移动端导航下拉二级项：原 18px，点不准 */
  .pm-col ul li a,
  .dropdown ul li a,
  .dropdown > li > a,
  .pm-col > a.pm-head {
    display: inline-flex; align-items: center; min-height: 44px;
  }
}

/* ============================================================
   内页深空化 · 修正版（2026-10-24 UI 设计师 · 品牌记忆补齐）
   背景：内页深色面积此前仅 4-5%，访客多从百度/AI 落到内页，
   深空风只存在于首页第一屏 → 品牌记忆断档。
   初版做法：速览块也一并深空化（全站 37 页）→ 用户反馈「所有
   速览区颜色都这么深，真的好看吗？」→ 复看发现两个问题：
     ① 案例 L2：case-hero 深 + cl-gist 深 = 顶部连续 ~650px 深色块，
        与已被否掉的 inner-head 深空化同病（比例失衡、视觉过重）；
     ② 方案/新闻页：深色 gist 是浅色阅读流中的孤岛，把本应最轻的
        信息组件做成了页面最重的元素，且与全站浅色卡片语言断裂。
   修正原则：深色是稀缺资源，「一页一个深色锚点」为上限——
   深色只留在三处大视觉位：首页速览带 / 产品详情 hero / 案例 hero；
   速览块全部退回浅色（基础定义早已存在，见 3186/2673/3571 行），
   只改背景与文字色，不动结构、文案、内链（AI 第一 / GEO 第一）。
   ============================================================ */

/* A. 内页通用标题带（110 页：新闻/方案/场景/产品品类/about/legal/privacy）
   2026-10-24 修正：标题带原本做成深空渐变，与上方「图幅 banner」连成
   367px 一整块深色，比例失衡且与图内文字重复（用户反馈"真难看"）→
   退回浅底深字：图 banner 负责视觉与栏目身份，标题带只负责标题文字。 */
.inner-head { padding: 40px 0 36px; }
.inner-head .page-h1 { color: var(--text); }
.inner-head .page-sub { color: var(--text-body); }

/* B. 产品详情页顶部深空带（.pd-hero）已随 V1.28 整段退役：产品 L3 无 banner，
   首屏 = 面包屑 → .pd-intro-card 白卡两栏。案例/方案等其他详情页不受影响。 */

/* C. 速览带深空化已撤回（2026-10-24 用户反馈「所有速览区颜色都这么深，
   真的好看吗？」）——深色只保留首页 .ai-gist-sec 作用域（见上方首页精雕节），
   内页 37 个 .ai-gist 退回浅色基础定义（本文件 3186 行起），维持浅色阅读面。 */

/* 移动端：内页标题带与深空 hero 的留白收紧（浅色速览块 padding 见 3220 行基础规则） */
@media (max-width: 768px) {
  .inner-head { padding: 24px 0 24px; }
  .inner-head .page-h1 { font-size: 21px; }
  .inner-head .page-sub { font-size: 14px; }
  /* V1.28：.pd-hero 移动端规则随 banner 退役删除 */
  .ai-gist { padding: 16px; }
}

/* V1.28：PC 端 .pd-hero 定高规则随 banner 退役删除。 */

/* C2. 原「为什么选慧博」块深空化已撤回（与 C 同因）；且 .hb-nxby 当前 0 页使用，
   深空覆盖属死代码，直接删除——浅色基础定义保留在 3571 行，生成器将来复用不受影响。 */

/* ============================================================
   标题刻度收口（2026-10-24 UI 设计师）
   —— 研判清单 P0-2（标题层级失序）
   ============================================================ */

/* hc-* 深色适配子规则已删（2026-10-29 红线04 清字 + V1.30 案例 L2 空 banner 退役：
   .hc-* 基础规则现仅服务首页 hero-clean 文案；正文 figure.case-hero 用 2979 行浅色规则） */

/* B. 标题 5 档刻度：T1 页面主标题 / T2 板块 / T3 分区 / T4 卡片
   —— 内页 H1 30→34，与板块标题 32 拉开级差，消除「板块标题比页面标题大」倒挂 */
.inner-head .page-h1 { font-size: 34px; }
.pd-name { font-size: 30px; }          /* 产品详情页主标题（白卡内） */
.cta-card h2 { font-size: 28px; }       /* CTA 行动号召标题让位给 H1 */
/* 兜底：无 class 的 h2 之前完全由浏览器默认样式接管（h2 = 1.5em = 22.5px，
   字号/字重/颜色均不受控）→ 统一收进 T3 档 22px。
   用 :where() 把特异性降为 0，避免覆盖 .section-title h2（32px）等既有规则 */
main :where(h2:not([class]), h2.sr-only) { font-size: 22px; font-weight: 700; line-height: 1.4; color: var(--text); }
/* h3 兜底（2026-10-25 补）：CTA 块内无 class 的 h3 同样无规则命中，继承父级
   15px × 浏览器默认 1.17em = 17.55px 半像素（实测 5 类页面 8 处）→ 归整
   --fs-lg 18px；.sr-only 读屏标题一并收编，禁半像素不留死角。 */
main :where(h3:not([class]), h3.sr-only) { font-size: var(--fs-lg); font-weight: 700; line-height: var(--lh-lg); color: var(--text); }
/* about 子页主标题统一到 T1 档 34px（与 about.html 及内页一致） */
.ab-h1 { font-size: 34px; }

@media (max-width: 768px) {
  .inner-head .page-h1 { font-size: 21px; }
  .pd-name { font-size: 24px; }
  .cta-card h2 { font-size: 24px; }
  main :where(h2:not([class]), h2.sr-only) { font-size: 20px; }
  main :where(h3:not([class]), h3.sr-only) { font-size: var(--fs-md); }
  .ab-h1 { font-size: 24px; }
}

/* C3. 案例 L2 速览块深空化已撤回（V1.30 起 L2 无顶部深色 banner，
   .cl-gist 维持浅色基础定义（本文件 2673 行起）；案例 L2 现无深色锚点） */


/* ============================================================
   触控可达性（2026-10-25 UI 审计 P0）
   ≤768px（2026-10-28 设计01 修订）：导航降档 60px；面包屑条整体隐藏（移动端
   三条返回路：浏览器返回/系统手势/主导航 + 深层页 ← 返回钮），--header-h 随之
   只剩导航高，供 scroll-margin / 二级导航锚定重算。
   ============================================================ */
@media (max-width: 768px) {
  :root { --nav-h: 60px; --header-h: var(--nav-h); }

  /* 触控区 ≥44×44（WCAG 2.5.5 / Apple HIG；实测原值：导航键 34×34、
     回顶 40×40、正文 CTA 15px 高、场景系统链接 36px 高、胶囊 42px 高） */
  .nav-toggle {
    display: inline-flex; align-items: center; justify-content: center;
    min-width: 44px; min-height: 44px; padding: 11px;
  }
  .hb-top-fab { width: 44px; height: 44px; }
  /* 面包屑移动端不吸顶：省 33px 常驻，仅导航 60px 吸顶（B 吸顶减薄） */
  .inner-breadcrumb { position: static; }
  /* 移动端隐藏网页分享浮钮：手机有系统级分享，减一个浮钮降误触（C 浮钮治理） */
  .hb-dock-share { display: none; }
  /* 面包屑：高度已在基础规则达标，此处补足水平点击区（中文双字仅 26px 宽） */
  .breadcrumb a { min-width: 44px; justify-content: center; }
  /* 正文 / 卡片内的文字型 CTA 与胶囊标签：撑到 44px 高，文字垂直居中
     （V5.39 增补 .hb-case-item h3 a：about 案例条目标题链接移动端实测仅 20px 高，<44px 门禁） */
  .pd-more, .pd-tag, .pt-chip, .sc-hot a, .cl-more, .cap-more, .core-more,
  .cm-link, .cc-more, .db-more, .lk, .case-links a, .rel-cases a,
  .fc-systems a, .cat-link, .pd-case-body h3 a, .hb-case-item h3 a {
    display: inline-flex; align-items: center; min-height: 44px;
  }
}
