/* ============================================================================
   有解 AI · 动效规范（motion.css）   ← 全站动效的唯一来源，最后加载、覆盖前面各层
   ----------------------------------------------------------------------------
   语言来源：首屏 3D 立方体
     · 涟漪（ripple）  —— 一条波按距离错峰传出去 → 同组元素按索引错峰入场
     · 翻面（flip）    —— 离散状态切换（90°）→ UI 里只允许小幅倾斜/翻转，不做连续旋转
     · 呼吸（breathe） —— 极慢、极小的循环位移 → 环境动效（涂鸦、插画、光斑）
     · 发光（glow）    —— 蓝块的自发光 → 注意力态（hover / 主按钮）
     · 连续曲率        —— 圆角没有折点 → 缓动统一用「快起慢收」，不用 ease 默认曲线

   三条硬规则：
     1) 只动 transform / opacity（外加 clip-path 做绘制）——不动 width/height/top/left
     2) 入场只做垂直位移：水平位移会把页面撑宽（历史上出过 106px 横向溢出）
     3) 位移 ≤ 12px、缩放 ≥ 0.99、环境循环幅度 ≤ 3px、单次时长 ≤ 1.1s
   ========================================================================= */

:root {
  /* 时长四档 */
  --m-dur-1: 140ms;    /* 反馈：hover / press / focus */
  --m-dur-2: 260ms;    /* 状态：展开、切换、tab、卡片浮起 */
  --m-dur-3: 520ms;    /* 入场：滚动揭示、区块出现 */
  --m-dur-4: 1100ms;   /* 绘制：线稿生长、数字滚动 */

  /* 涟漪错峰 */
  --m-stagger: 55ms;
  --m-stagger-char: 26ms;

  /* 幅度 */
  --m-rise: 12px;
  --m-scale: 0.992;
  --m-amb: 7200ms;     /* 环境循环周期（与立方体的长周期呼吸同量级） */
  --m-amb-amp: 3px;

  /* 缓动 */
  --m-ease: cubic-bezier(.22, .61, .36, 1);
  --m-ease-out: cubic-bezier(.16, 1, .3, 1);
  --m-ease-loop: cubic-bezier(.45, 0, .55, 1);

  /* 注意力态发光（比按钮原有阴影再收一点） */
  --m-glow: 0 0 0 1px rgba(34, 211, 238, .26), 0 0 26px rgba(34, 211, 238, .13);
}

/* ---------------------------------------------------------------------------
   1. 入场：垂直「涟漪」错峰
   .rv / .a-reveal / .m-panel 走 CSS 过渡；fx.js 的滚动联动也只用垂直位移
   ------------------------------------------------------------------------ */
.rv,
.a-reveal,
.m-panel {
  transform: translate3d(0, var(--m-rise), 0);
  transition-property: opacity, transform;
  transition-duration: var(--m-dur-3);
  transition-timing-function: var(--m-ease-out);
}

.rv.in,
.a-reveal.in,
.a-reveal.is-in {
  transform: none;
}

/* 章节标题的遮罩揭示：比通用入场略慢，但不超过 1.1s */
body.page-home .sec-head h2 {
  transition-property: clip-path;
  transition-duration: var(--m-dur-3);
  transition-timing-function: var(--m-ease-out);
}

body.page-home .sec-head .lede {
  transform: translate3d(0, var(--m-rise), 0);
  transition-property: opacity, transform;
  transition-duration: var(--m-dur-3);
  transition-timing-function: var(--m-ease-out);
  transition-delay: var(--m-stagger);
}

/* 对比行：原先是左右 22px 平移（典型的横向位移），改成垂直 + 涟漪错峰 */
.cmp-row .cmp-a,
.cmp-row .cmp-b {
  transform: translate3d(0, var(--m-rise), 0);
  transition-property: opacity, transform;
  transition-duration: var(--m-dur-3);
  transition-timing-function: var(--m-ease-out);
}

.cmp-row.in .cmp-a,
.cmp-row.in .cmp-b {
  transform: none;
}

.cmp-row .cmp-a { transition-delay: calc(var(--i, 0) * var(--m-stagger)); }
.cmp-row .cmp-b { transition-delay: calc(var(--i, 0) * var(--m-stagger) + 60ms); }

/* 步骤条：进度线原本 1.1s，收到规范内 */
.diag-stepper::before {
  transition-duration: var(--m-dur-3);
  transition-timing-function: var(--m-ease-out);
}

.diag-step.rv {
  transform: translate3d(0, var(--m-rise), 0);
  transition-property: opacity, transform;
  transition-duration: var(--m-dur-3);
  transition-timing-function: var(--m-ease-out);
}

/* html.mo 分支原本用「模糊→清晰 + 上浮 16px + 0.8s」，违反规范（禁 blur、位移 ≤12px、≤520ms） */
html.mo body.page-home .sec-head h2 {
  filter: none !important;
  transform: translate3d(0, var(--m-rise), 0);
  transition-property: opacity, transform;
  transition-duration: var(--m-dur-3);
  transition-timing-function: var(--m-ease-out);
}

html.mo body.page-home .sec-head.in h2 {
  filter: none !important;
  transform: none;
}

/* 逐字揭示：字符错峰走规范值 */
.q-big.in .ch {
  animation-delay: calc(var(--k, 0) * var(--m-stagger-char));
  animation-duration: var(--m-dur-3);
  animation-timing-function: var(--m-ease-out);
}

/* ---------------------------------------------------------------------------
   1b. 首屏「涟漪」入席（首页专用编排，纯 CSS，无需 JS）
   顺序：eyebrow → 标题 → 引文 → CTA → 涂鸦 → 立方体，逐级 +55ms
   animation-fill-mode: both 保证首帧就位，不会先闪一下再消失
   ------------------------------------------------------------------------ */
@keyframes m-in {
  from { opacity: 0; translate: 0 var(--m-rise); }
  to   { opacity: 1; translate: 0 0; }
}

@keyframes m-fade {
  from { opacity: 0; }
  to   { opacity: 1; }
}

.hero-home .eyebrow,
.hero-home .hero-title,
.hero-home .hero-note,
.hero-home .hero-actions,
.hero-home .doodle {
  animation: m-in var(--m-dur-3) var(--m-ease-out) both;
}

.hero-home .eyebrow { animation-delay: 0ms; }
.hero-home .hero-title     { animation-delay: calc(var(--m-stagger) * 1); }
.hero-home .hero-note   { animation-delay: calc(var(--m-stagger) * 2); }
.hero-home .hero-actions{ animation-delay: calc(var(--m-stagger) * 3); }
/* 涂鸦：呼吸动画已占用 translate，入席只补 opacity（两个动画并行，不抢属性）
   注意：delay 必须写在 shorthand 里（shorthand 的 !important 会重置 animation-delay） */
.hero-home .doodle.d1 {
  animation: m-breathe var(--m-amb) var(--m-ease-loop) infinite 0s,
             m-fade var(--m-dur-3) var(--m-ease-out) both calc(var(--m-stagger) * 4) !important;
}
.hero-home .doodle.d2 {
  animation: m-breathe var(--m-amb) var(--m-ease-loop) infinite calc(var(--m-amb) * -0.33),
             m-fade var(--m-dur-3) var(--m-ease-out) both calc(var(--m-stagger) * 5) !important;
}

/* 立方体：等渲染线程起帧后再淡入，避免出现"空画布"一闪 */
.hero-home .cube-canvas {
  animation: m-fade var(--m-dur-3) var(--m-ease-out) both;
  animation-delay: 120ms;
}

/* ---------------------------------------------------------------------------
   2. 绘制类：线稿生长统一到 1.1s 一档
   ------------------------------------------------------------------------ */
.ill-wrap.in .ill-draw { animation-duration: var(--m-dur-4); animation-timing-function: var(--m-ease-out); }
.art-art.in .doodle-art .dw { animation-duration: var(--m-dur-4); animation-timing-function: var(--m-ease-out); }
.hero .hl::after, body.page-home .sec-head h2 .u::after { animation-duration: var(--m-dur-4); animation-timing-function: var(--m-ease-out); }

/* ---------------------------------------------------------------------------
   3. 环境循环：极慢 + 极小幅度（涂鸦、插画、光斑、漂浮卡片）
   用独立的 `translate` 属性做循环，避免和视差写的 transform 打架
   ------------------------------------------------------------------------ */
@keyframes m-breathe {
  0%, 100% { translate: 0 0; }
  50%      { translate: 0 calc(var(--m-amb-amp) * -1); }
}

.doodle,
.doodle.d1,
.doodle.d2,
.doodle.dd-arrow,
.doodle.dd-spark,
.doodle.dd-swirl,
.art-slot,
.orb-anim,
.x-float,
.x-orb-card,
.art-art.in .doodle-art {
  /* !important：前面各层用 .doodle.d1 这类更高权重 + 不同 keyframes，这里统一收编 */
  animation: m-breathe var(--m-amb) var(--m-ease-loop) infinite !important;
}

/* 不同的循环起点，避免整屏元素同相位起伏（像涟漪的相位差） */
.doodle.d2,
.x-float:nth-child(2n) { animation-delay: calc(var(--m-amb) * -0.33); }
.doodle.dd-spark,
.x-orb-card { animation-delay: calc(var(--m-amb) * -0.61); }

/* 跑马灯：统一 44s 一圈（原来 26s/38s 两种，快得抢戏） */
.mq-track.is-ready { --mq-dur: 44s; }

/* ---------------------------------------------------------------------------
   4. 微交互：hover / 浮起统一 260ms + 规范缓动
   ------------------------------------------------------------------------ */
.engine,
.ind-card,
.content-card,
.case-card,
.diag-step,
.a-item,
.tile,
.cap-inner,
.faq-item,
.btn,
.a-pill,
.nav-link,
.cmp-row,
.scn-tab,
.ind-tabs a {
  transition-duration: var(--m-dur-2);
  transition-timing-function: var(--m-ease);
}

/* 卡片浮起：只抬起 2px（原来 -2px 到 -6px 不等，深浅不一） */
.engine:hover,
.ind-card:hover,
.content-card:hover,
.case-card:hover { transform: translate3d(0, -2px, 0); }

/* 3D 倾斜由 fx.js 写入，幅度上限写在这里做兜底 */
.tilt { transform: perspective(900px) rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg)); transition: transform var(--m-dur-2) var(--m-ease); }

/* 主按钮的注意力态：蓝光呼吸一次（不是循环，只在 hover 时） */
.btn-primary:hover,
.a-pill:hover {
  box-shadow: var(--m-glow);
  transition: box-shadow var(--m-dur-2) var(--m-ease), transform var(--m-dur-2) var(--m-ease);
}

/* ---------------------------------------------------------------------------
   5. 关闭开关：系统「减少动态效果」时全站回到静态
   ------------------------------------------------------------------------ */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation: none !important;
    transition-duration: 1ms !important;
    transition-delay: 0ms !important;
    scroll-behavior: auto !important;
  }
  /* 环境循环那条规则用了 !important 且权重更高（.doodle.d1），这里必须同权重再压一次 */
  .doodle,
  .doodle.d1,
  .doodle.d2,
  .doodle.dd-arrow,
  .doodle.dd-spark,
  .doodle.dd-swirl,
  .art-slot,
  .orb-anim,
  .x-float,
  .x-orb-card,
  .art-art.in .doodle-art,
  .hero-home .doodle.d1,
  .hero-home .doodle.d2 {
    animation: none !important;
  }
  .rv,
  .a-reveal,
  .cmp-row .cmp-a,
  .cmp-row .cmp-b,
  .diag-step.rv,
  .page-home .sec-head .lede,
  .tilt,
  .engine:hover,
  .ind-card:hover,
  .content-card:hover,
  .case-card:hover {
    transform: none !important;
    opacity: 1 !important;
    translate: none !important;
  }
}

/* ---------------------------------------------------------------------------
   6. 首页演示面板：状态切换统一 260ms（原来 300/340/350 各写一套）
   ------------------------------------------------------------------------ */
.pw--auto .pw-think.is-in,
.pw--auto .pw-me.is-in,
.pw--auto .pw-card.is-in,
.pw--auto .pw-acts.is-in,
.pw--auto .pw-ai.is-in,
.pw--auto .pw-receipt:not([hidden]),
.pw--auto .pw-receipt.is-done .pw-tx,
.ind-panel.is-on,
.scn-panel.is-on {
  animation-duration: var(--m-dur-2);
  animation-timing-function: var(--m-ease-out);
}

/* ---------------------------------------------------------------------------
   7. 品牌光效：把「线条与涂鸦」点亮
   立方体的语言里，蓝色是唯一会发光的东西（蓝块自发光 + 照亮邻块）。
   页面上对应的就是这些手绘线与线稿——让它们也带一点自发光，
   这样"发光"就不是 3D 专属，而是全站统一的材质语义。
   只加 filter，不动布局；元素都很小，代价可忽略。
   ------------------------------------------------------------------------ */
:root {
  --m-glow-line: drop-shadow(0 0 2.5px rgba(34, 211, 238, .55))
                 drop-shadow(0 0 10px rgba(34, 211, 238, .30));
  --m-glow-line-soft: drop-shadow(0 0 2px rgba(34, 211, 238, .40))
                      drop-shadow(0 0 8px rgba(34, 211, 238, .20));
}

/* 涂鸦（箭头、十字、漩涡） */
.doodle,
.doodle svg {
  filter: var(--m-glow-line);
}

/* 手写下划线（首屏标题下的那一笔 + 章节标题下划线） */
.hero .hl::after,
body.page-home .sec-head h2 .u::after {
  filter: var(--m-glow-line);
}

/* 短规则线（卡片标题下那根 2px 品牌色小横线、对比表左侧竖条） */
.a-adv-rule,
.cmp-b::before {
  filter: var(--m-glow-line-soft);
}

/* 减少动态效果时保留静态发光（它不是动画），只关掉会动的东西 */
@media (prefers-reduced-motion: reduce) {
  .doodle, .doodle svg, .hero .hl::after, body.page-home .sec-head h2 .u::after,
  .ill, .ill .ill-draw, .ill .flow, .ill .ill-node, .doodle-art {
    filter: var(--m-glow-line-soft);
  }
}

/* ---------------------------------------------------------------------------
   8. 修正：诊断步骤的「四个点」压住了文字
   business.css 里有一句 `.diag-step { padding-top: 0 !important }`（早期的间距归零），
   把 `.diag-stepper .diag-step` 的 30px 顶部留白一起清掉了；
   结果 ::before 那个 9px 圆点（top:1px）正好落在「访谈 / 摸底 / 打分 / 带走」的首字上。
   这里把留白补回来，并顺手让这四个点和线条一样带一点辉光。
   ------------------------------------------------------------------------ */
.diag-stepper .diag-step {
  padding-top: 30px !important;
}

.diag-stepper .diag-step::before {
  filter: drop-shadow(0 0 3px rgba(34, 211, 238, .55)) drop-shadow(0 0 10px rgba(34, 211, 238, .25));
}

@media (max-width: 1000px) {
  .diag-stepper .diag-step { padding-top: 26px !important; }
}

/* ===========================================================================
   10. 卡片系统（首页统一）   2026-10-29
   ---------------------------------------------------------------------------
   审计发现首页有 37 个"卡片状"元素，散成 7 套样式：
     圆角 10/12/14 三种、底色 4 种（含两种实底 #0A1626）、描边 6 种（青/灰/白/无）、
     内距 5 种、图标 17/36/44/48 四种、标题 14/15/15.5/18/19 五种。
   其中"实底深蓝 + 青色描边"那套（运行引擎卡、网关卡）是形成"仪表盘感"的主因：
   整页到处是青边，卡片又比页面亮一大块，和其余半透明卡完全不是一套语言。
   统一成三级卡片：
     A 大卡（gw-card）        r16 · pad 26–30 · 标题 19–22 · 正文 14
     B 信息卡（run-card / content-card / engine / ind-card / case-card） r14 · pad 18–20 · 标题 16–17 · 正文 13–13.5
     C 小块（perm-level / logo-slot） r10 · pad 14–16 · 标题 14.5
   规则：一律半透明白底 + 1px 中性描边；青色只出现在 hover 与"选中"两种状态。
   ======================================================================== */
:root {
  --card-r-lg: 16px;
  --card-r: 14px;
  --card-r-sm: 10px;
  --card-bg: rgba(255, 255, 255, .022);
  --card-bg-hover: rgba(255, 255, 255, .04);
  --card-line: rgba(255, 255, 255, .075);
  --card-line-hover: rgba(34, 211, 238, .30);
  --card-ico-bg: linear-gradient(150deg, rgba(34, 211, 238, .16), rgba(34, 211, 238, .04));
  --card-ico-line: rgba(34, 211, 238, .16);
  --card-ease: var(--m-dur-2) var(--m-ease);
}

/* ---------- B 级：信息卡 ---------- */
.run-card {
  background: var(--card-bg) !important;
  border: 1px solid var(--card-line) !important;
  border-radius: var(--card-r) !important;
  padding: 20px !important;
  min-height: 200px !important;
  transition: transform var(--card-ease), border-color var(--card-ease), background var(--card-ease);
}

.run-card:hover {
  transform: translateY(-2px);
  border-color: var(--card-line-hover) !important;
  background: var(--card-bg-hover) !important;
}

.run-card .ico {
  width: 34px !important;
  height: 34px !important;
  border-radius: 10px !important;
  margin-bottom: 14px !important;
  background: var(--card-ico-bg) !important;
  border: 1px solid var(--card-ico-line) !important;
  box-shadow: none !important;
}

.run-card .ico svg { width: 17px !important; height: 17px !important; }
.run-card h3 { font-size: 16px !important; font-weight: 600 !important; margin-bottom: 8px !important; }
.run-card p { font-size: 13px !important; line-height: 1.75 !important; }

/* ---------- A 级：大卡 ---------- */
.gw-card {
  background: var(--card-bg) !important;
  border: 1px solid var(--card-line) !important;
  border-radius: var(--card-r-lg) !important;
  padding: 26px 28px 30px !important;
  transition: transform var(--card-ease), border-color var(--card-ease), background var(--card-ease);
}

.gw-card:hover {
  transform: translateY(-2px);
  border-color: var(--card-line-hover) !important;
  background: var(--card-bg-hover) !important;
}

.gw-card .ico {
  width: 42px !important;
  height: 42px !important;
  border-radius: 12px !important;
  margin-bottom: 18px !important;
  background: var(--card-ico-bg) !important;
  border: 1px solid var(--card-ico-line) !important;
}

.gw-card .ico svg { width: 19px !important; height: 19px !important; }
.gw-card h3 { font-size: clamp(19px, 1.6vw, 22px) !important; font-weight: 600 !important; }
.gw-card p { font-size: 14px !important; line-height: 1.8 !important; }

/* ---------- B 级：内容卡（白皮书 / 播客 / 日记） ---------- */
.content-card,
.engine,
.ind-card,
.case-card {
  background: var(--card-bg) !important;
  border: 1px solid var(--card-line) !important;
  border-radius: var(--card-r) !important;
  transition: transform var(--card-ease), border-color var(--card-ease), background var(--card-ease);
}

.content-card:hover,
.engine:hover,
.ind-card:hover,
.case-card:hover {
  transform: translateY(-2px) !important;
  border-color: var(--card-line-hover) !important;
  background: var(--card-bg-hover) !important;
}

/* hover 时的径向光斑收一点，别在卡片上糊一块亮斑 */
.content-card::after,
.engine::after,
.ind-card::after {
  opacity: .55 !important;
  background: radial-gradient(420px circle at 50% 0%, rgba(34, 211, 238, .10), transparent 62%) !important;
}

.content-card .cc-body { padding: 18px 20px 22px !important; }
.content-card h3 { font-size: 17px !important; font-weight: 600 !important; }
.content-card p { font-size: 13.5px !important; line-height: 1.75 !important; }
.content-card .cc-cover { border-bottom: 1px solid var(--card-line) !important; }
.content-card.v-long .cc-cover { filter: none; }
.content-card.v-long:hover .cc-cover { filter: brightness(1.04); }

/* ---------- C 级：小卡 ---------- */
.perm-level,
.logo-slot {
  background: var(--card-bg) !important;
  border-color: var(--card-line) !important;
  border-radius: var(--card-r-sm) !important;
}

.perm-level:last-child {
  border-color: rgba(34, 211, 238, .26) !important;
  background: rgba(34, 211, 238, .04) !important;
}

/* 合作方占位位：保留虚线语义，但线更淡 */
.logo-slot { border-style: dashed !important; }

/* ---------- 选中态：全站唯一允许"青色底 + 青边"的卡片状态 ---------- */
.sc2-item.is-on,
.ind-tab.is-on,
.scn-tab.is-on {
  border-color: rgba(34, 211, 238, .34) !important;
}

/* ---------- 提高权重：business.css 里有 `.content-grid .content-card` 与
   `.content-card.v-long h3/p` 的 !important，必须同权重压过去 ---------- */
.content-grid .content-card,
.content-grid .content-card.v-long,
.content-grid .content-card:not(.v-long) {
  background: var(--card-bg) !important;
  border: 1px solid var(--card-line) !important;
}

.content-grid .content-card h3,
.content-grid .content-card.v-long h3 {
  font-size: 17px !important;
}

.content-grid .content-card p,
.content-grid .content-card.v-long p {
  font-size: 13.5px !important;
  line-height: 1.75 !important;
  margin-bottom: 16px !important;
}

/* ---------- 章节纵向节奏：首页第一屏后的章节曾被两条 !important 规则拉成 155 / 128，
   这里统一成一个区间（110–170），相邻章节间距才一致 ---------- */
body.page-home .section {
  padding-block: clamp(110px, 14vh, 170px) !important;
}

/* ---------- 小标签（kicker）统一：11px / .2em ---------- */
.sub-kicker {
  font-size: 11px !important;
  letter-spacing: .2em !important;
}

/* ---------- 内容卡的"封面"：原来那层斜纹 + 实底深蓝 + 强青晕，是页面显得"花"的另一来源。
   改成和中卡同材质的浅底，只留一点左上角青晕做品牌线索。 ---------- */
.content-grid .content-card.v-long .cc-cover {
  height: 176px !important;          /* 原来 210，封面上方空白过多 */
  padding: 16px 18px !important;
  background:
    radial-gradient(120% 92% at 22% 0%, rgba(34, 211, 238, .12), transparent 62%),
    rgba(255, 255, 255, .028) !important;
  border-bottom: 1px solid var(--card-line) !important;
}

.content-grid .content-card.v-long .cc-ico {
  background: rgba(255, 255, 255, .045) !important;
  border: 1px solid var(--card-line) !important;
}

.content-grid .content-card.v-long .cc-mark {
  color: #DCEBF3 !important;
  font-weight: 700 !important;
}

.content-card.v-long:hover .cc-cover { filter: brightness(1.03) !important; }

/* 三卡等高：封面固定高、正文撑满，CTA 沉底 */
.content-grid { align-items: stretch; }
.content-grid .content-card.v-long {
  display: flex !important;
  flex-direction: column;
  height: 100%;
}
.content-grid .content-card.v-long .cc-body { flex: 1 1 auto; }

/* ===========================================================================
   11. 去掉所有 hover 下划线   +   内容卡封面改成纯占位图（2026-10-29）
   ======================================================================== */

/* 全站 hover 下划线统一取消：下划线只用于正文里的真实超链接语义（a.link 等静态样式），
   交互反馈改用颜色/边框/位移——和卡片的克制语言一致 */
a:hover,
a:hover *,
.a-link:hover,
.a-link:hover::after,
.ind-note a:hover,
.link:hover,
.content-card:hover .cc-cta,
.content-card:hover h3 {
  text-decoration: none !important;
  text-decoration-line: none !important;
}

/* 内容卡封面：目前是占位图，不承载文案 —— 保留图像位（16:10 比例、浅底），
   等真图替换时直接换 background 即可 */
.content-grid .content-card.v-long .cc-cover {
  /* 封面里已无子元素：在 flex 列向卡片里会被压成 0 宽（播客 / 落地日记两张就崩了）→ 显式撑满 */
  width: 100% !important;
  flex: 0 0 auto !important;
  align-self: stretch !important;
  height: 168px !important;
  background:
    radial-gradient(120% 92% at 22% 0%, rgba(34, 211, 238, .07), transparent 62%),
    rgba(255, 255, 255, .022) !important;
  border-bottom: 1px solid var(--card-line) !important;
}

/* ---------------------------------------------------------------------------
   12. 行业方案（首页 #solutions）
   左：竖排行业清单（序号 + 名称 + 左指示条，桌面 sticky）
   右：场景一句 + 三列矩阵（做法 / 怎么做 / 验收看什么）
   ------------------------------------------------------------------------ */
.ind-ui {
  display: block;
  margin-top: 36px;
}

.ind-rail {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  gap: 8px;
  position: static;
  margin-bottom: 28px;
}

.ind-ui .ind-tab {
  display: inline-flex;
  align-items: center;
  width: auto;
  padding: 9px 18px;
  border: 1px solid var(--card-line) !important;
  border-radius: 999px !important;
  background: transparent !important;
  color: var(--b-body);
  font: inherit;
  font-size: 14.5px;
  line-height: 1.5;
  cursor: pointer;
  transition: color var(--m-dur-2) var(--m-ease), background var(--m-dur-2) var(--m-ease), border-color var(--m-dur-2) var(--m-ease);
}

.ind-tab .ind-n { display: none; }

.ind-ui .ind-tab:hover { color: var(--b-ink); border-color: rgba(34, 211, 238, .4) !important; }

.ind-ui .ind-tab.is-on {
  border-color: rgba(34, 211, 238, .5) !important;
  background: rgba(34, 211, 238, .14) !important;
  color: #fff !important;
}

.ind-tab.is-on .ind-n { color: var(--b-brand); }

.ind-scene {
  margin: 0 0 26px;
  font-size: 17px;
  line-height: 1.75;
  color: var(--b-ink);
  max-width: 900px;
}

.ind-matrix { border-top: 1px solid var(--card-line); }

/* 五个行业的行数相同、但「验收」列换行数不同（284–317px），切 tab 会小幅跳动；
   给面板一个下限高度消掉跳动 */
.ind-panels { min-height: 288px; }   /* 实测五个行业都是 284px，留 4px 容差 */

.ind-thead,
.ind-row {
  display: grid;
  grid-template-columns: 148px minmax(0, 1fr);
  gap: 28px;
}

.ind-thead {
  padding: 10px 0;
  font-family: var(--font-mono);
  font-size: 10.5px;
  letter-spacing: .16em;
  color: var(--b-muted);
  border-bottom: 1px solid rgba(255, 255, 255, .05);
}

.ind-row {
  padding: 17px 0;
  border-bottom: 1px solid rgba(255, 255, 255, .06);
  align-items: start;
}

.ind-row b {
  font-size: 14.5px;
  font-weight: 600;
  color: var(--b-brand);
  padding-top: 1px;
}

.ind-row p {
  margin: 0;
  font-size: 14px;
  line-height: 1.7;
  color: var(--b-body);
}


@media (max-width: 1000px) {
  .ind-ui { grid-template-columns: 176px minmax(0, 1fr); gap: 32px; }
  .ind-thead, .ind-row { grid-template-columns: 120px minmax(0, 1fr); gap: 20px; }
}

@media (max-width: 760px) {
  .ind-ui { grid-template-columns: 1fr; gap: 20px; margin-top: 28px; }
  .ind-rail {
    position: static;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 8px;
  }
  .ind-ui .ind-tab {
    width: auto;
    padding: 8px 14px !important;
    border: 1px solid var(--card-line) !important;
    border-radius: 999px !important;
    font-size: 14px;
  }
  .ind-ui .ind-tab.is-on {
    border-color: rgba(34, 211, 238, .5) !important;
    background: rgba(34, 211, 238, .12) !important;
  }
  .ind-tab .ind-n { display: none; }
  .ind-scene { font-size: 15.5px; margin-bottom: 20px; }
  .ind-thead { display: none; }
  .ind-matrix { border-top: 0; }
  .ind-row {
    grid-template-columns: 1fr;
    gap: 6px;
    padding: 16px 0;
  }
  .ind-panels { min-height: 410px; }   /* 实测 337–409px */
  .ind-row b { font-size: 13px; letter-spacing: .04em; }
}

/* 面板切换用规范时长（原来是 350ms 写死） */
.ind-panel.is-on {
  animation-duration: var(--m-dur-2);
  animation-timing-function: var(--m-ease-out);
}

/* ===========================================================================
   13. 页面内「切换器」统一（2026-10-29）
   ---------------------------------------------------------------------------
   首页原来有 4 套切换语言：
     ① 行业清单     —— 左侧 2px 指示条 + 淡底（新做的）
     ② 场景演示列表 —— 10px 圆角 + 青色描边（卡片式选中）
     ③ 运行时/网关  —— 进度点 + 圆形箭头（两处按钮 42 / 44px 不一致）
     ④ 右侧章节圆点 —— 7px 圆点，选中变实心青色 + 光晕
   统一成两条规则：
     A. 列表型切换 = 左指示条 + 6% 淡底，不描边、不圆角
     B. 进度型切换 = 7px 中性圆点；当前项变"青色胶囊"（横向 22×7、竖向 7×18）；
        箭头按钮统一 40px 圆形、1px 中性描边、hover 青
   ======================================================================== */

/* ---------- A. 列表型：场景演示（与行业清单同一套选中态） ---------- */
.sc2-item {
  border: 1px solid rgba(255, 255, 255, .07) !important;
  border-radius: 10px !important;
  background: transparent !important;
  transition: color var(--m-dur-2) var(--m-ease), background var(--m-dur-2) var(--m-ease), border-color var(--m-dur-2) var(--m-ease);
}

.sc2-item:hover { background: rgba(255, 255, 255, .025) !important; }

.sc2-item.is-on {
  border-color: rgba(34, 211, 238, .34) !important;
  background: rgba(34, 211, 238, .07) !important;
}

/* ---------- B. 进度点：同一套尺寸与颜色 ---------- */
.run-dot,
.gw-dot,
.x-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: rgba(255, 255, 255, .18);
  box-shadow: none !important;
  transition: background var(--m-dur-2) var(--m-ease),
              width var(--m-dur-2) var(--m-ease),
              height var(--m-dur-2) var(--m-ease);
}

.run-dot.on,
.gw-dot.on {
  width: 22px;
  border-radius: 4px;
  background: var(--b-brand);
}

/* 右侧竖排章节点：当前项做成竖向胶囊 */
.x-dot.on {
  height: 18px;
  border-radius: 4px;
  background: var(--b-brand);
}

.x-dot:hover { background: rgba(34, 211, 238, .6); }

.x-dot.on:hover { background: var(--b-brand); }

/* ---------- B2. 箭头按钮：统一 40px 圆形 ---------- */
.run-btn,
.gw-btn {
  width: 40px !important;
  height: 40px !important;
  border-radius: 50% !important;
  border: 1px solid rgba(255, 255, 255, .12) !important;
  background: transparent !important;
  color: var(--b-ink) !important;
  font-size: 15px !important;
  line-height: 1;
  cursor: pointer;
  transition: border-color var(--m-dur-2) var(--m-ease), background var(--m-dur-2) var(--m-ease), color var(--m-dur-2) var(--m-ease);
}

.run-btn:hover,
.gw-btn:hover {
  border-color: rgba(34, 211, 238, .45) !important;
  background: rgba(34, 211, 238, .08) !important;
}

.run-btn[disabled],
.gw-btn[disabled] {
  opacity: .28;
  cursor: default;
  background: transparent !important;
}

/* 键盘可达：所有切换控件共用同一焦点环 */
.ind-tab:focus-visible,
.sc2-item:focus-visible,
.run-btn:focus-visible,
.gw-btn:focus-visible,
.x-dot:focus-visible,
.scn-tab:focus-visible {
  outline: 2px solid rgba(34, 211, 238, .55);
  outline-offset: 2px;
}

.scn-tab.is-on {
  border-color: rgba(34, 211, 238, .5) !important;
  background: rgba(34, 211, 238, .12) !important;
  color: var(--b-ink) !important;
  font-weight: 500;
}

/* ===========================================================================
   14. 章节「标题区 → 正文」间距标准化（2026-10-29）
   ---------------------------------------------------------------------------
   实测首页 9 个章节的标题区底部到正文首块顶部的间距：12 / 60 / 36 / 0 / 44 / 24 / 36 / 36 / 24 px
   —— 九章九个数，这才是"排版乱"的根因，不是每个区块各自的设计。
   统一为两个 token：
     --gap-head  章节标题区 → 正文      52px（≤760px：32px）
     --gap-sub   二级小节标题 → 其内容   32px（≤760px：24px）
   实现方式：标题区自身 margin-bottom 归零，用「相邻兄弟」统一控制间距——
   这样不依赖每个正文块各自的 margin-top，新增区块自动继承同一节奏。
   ======================================================================== */
:root {
  --gap-head: 52px;
  --gap-sub: 32px;
}

body.page-home .sec-head {
  margin-bottom: 0 !important;
}

body.page-home .sec-head + * {
  margin-top: var(--gap-head) !important;
}

.sub-head + *,
.scn-head + * {
  margin-top: var(--gap-sub) !important;
}

@media (max-width: 760px) {
  :root {
    --gap-head: 32px;
    --gap-sub: 24px;
  }
}

/* ===========================================================================
   15. 版面节奏审计修复（2026-10-29）
   ---------------------------------------------------------------------------
   审计发现（1440 宽）：
     ① 章节上下 padding：assets 139px，其它九章 115px —— 首章多 24px
     ② 「块与块」的上间距没有 token，各自为政：88 / 64 / 48 / 34 / 22 / 12
     ③ kicker 字号 11.5 与 11 两套
   统一：
     --gap-block  块与块之间（如 运行时→场景小节、行业→合作伙伴、诊断步骤→CTA） 72px
     --gap-sub    二级小节标题 → 其内容 32px（已有）
     kicker 全部 11px
   ======================================================================== */
:root {
  --gap-block: 72px;
}

/* ① 首章不再单独放大 */
#assets.section {
  padding-top: clamp(110px, 14vh, 170px) !important;
}

/* ② 块与块：统一 72px */
.run-slider + .sc2-head,
.ind-ui + .logo-block,
.diag-grid + .diag-cta,
.cmp + .cmp,
.sc2 + .logo-block {
  margin-top: var(--gap-block) !important;
}

/* 二级小节内的紧邻对：小节标题→内容 32，说明行→主体 16 */
.sc2-head + .sc2 {
  margin-top: var(--gap-sub) !important;
}

.cmp-legend + div.cmp {
  margin-top: 20px !important;
}

/* 引文块：q-big 自带 margin-bottom 22，与 q-sub 的 20 折叠成 22 → 先把下边距归零 */
#quote .q-big {
  margin-bottom: 0 !important;
}

#quote .q-big + .q-sub {
  margin-top: 20px !important;
}

@media (max-width: 760px) {
  :root {
    --gap-block: 48px;
  }
}

/* 大标题尺寸收成两级：首屏 62 / 内容标题 54（引文原为 56，收到与章节标题一致） */
#quote .q-big {
  font-size: clamp(32px, 4vw, 54px) !important;
  line-height: 1.18 !important;
  letter-spacing: -.03em !important;
}

/* 移动端不单独设置：与章节标题共用同一 clamp，窄屏都落在 32px */

/* ===========================================================================
   16. 全站统一：按首页规范收敛内页（2026-10-29）
   ---------------------------------------------------------------------------
   审计内页（12 个）与首页的偏差：
     · 页面主标题 h1：50 / 62 / 64 三个值（首页 62）
     · 章节标题 h2：24 / 27 / 32 / 36 / 54 / 56（首页 54）
     · 小节标题 h3：17 / 19 / 21
     · 区块上下 padding：56 / 96 / 100 / 104 / 112（首页章节 115）
     · 卡片：bg 5% + 边 10%，首页是 2.4% + 7.5%
     · 标签（.eyebrow 等）字号字距与首页 kicker 不一致
   统一到首页的两级标题 + 三档间距 + 一套卡片材质：
     --fs-h1  clamp(36px, 4.4vw, 62px)   页面主标题
     --fs-h2  clamp(30px, 3.9vw, 54px)   营销页章节标题
     --fs-h2s clamp(22px, 2.4vw, 34px)   内容/工具页章节标签
     --fs-h3  clamp(16px, 1.5vw, 19px)   小节标题
     section 115 / section-tight 72 / cta-band 115
   ======================================================================== */
:root {
  /* 迁移第一步（2026-10-29）：本层的取值全部改为「首页实测值」，
     模板组件（hero / section / sec-head / btn / eyebrow）从此以首页为唯一基准。
     首页 .a-h1  = clamp(38px, 4.8vw, 62px)
     首页 .chapter-title = clamp(32px, 4vw, 54px)
     首页 .cap-subtitle = 30px / .sub-title = 34px（H3）
     首页 .chapter 上下内距 = clamp(110px, 14vh, 170px)，1440×900 下 126
  */
  --fs-h1: clamp(38px, 4.8vw, 62px);
  --fs-h2: clamp(32px, 4vw, 54px);
  --fs-h2s: clamp(32px, 4vw, 54px);   /* 内容页不再单独降档 */
  --fs-h3: clamp(19px, 2.1vw, 30px);
  --sec-pad: clamp(110px, 14vh, 170px);
}

/* ---------- 页面主标题 ---------- */
.hero-title,
.hero-title.xl,
main > .hero h1,
main .hero h1 {
  font-size: var(--fs-h1) !important;
  line-height: 1.12 !important;
  letter-spacing: -.03em !important;
  font-weight: 700 !important;
}

/* ---------- 章节标题：全站统一 54（不再按页面族分成 54 / 34 两档） ---------- */
main h2:not(.fr-title) {
  font-size: var(--fs-h2) !important;
  line-height: 1.2 !important;
  letter-spacing: -.02em !important;
  font-weight: 800 !important;
}

/* ---------- 小节标题：撤掉历史上那条 `main h3 {19px}` 的粗暴规则 ----------
   它会同时压卡片标题和首页的 30/34 小节标题。层级由各组件自己的规则决定：
   首页 .cap-subtitle 30 / .sub-title 34；内页卡片 h3 17–19；章节副标用 .fr-title 34。 */

/* ---------- 区块纵向节奏 ---------- */
main > .section,
main .section {
  padding-top: var(--sec-pad) !important;
  padding-bottom: var(--sec-pad) !important;
}

main > .section-tight,
main .section-tight {
  padding-top: calc(var(--sec-pad) * .62) !important;
  padding-bottom: calc(var(--sec-pad) * .62) !important;
}

main .cta-band {
  padding-top: var(--sec-pad) !important;
  padding-bottom: var(--sec-pad) !important;
}

/* 首屏：与首页一致「上 84 / 下 120」，首屏与第一区块之间由区块自身 126 内距承担 */
main .hero {
  padding-top: 84px !important;
  padding-bottom: 120px !important;
}

/* ---------- 卡片材质 ---------- */
.card,
.card-static,
.card-mini,
.quiz-q,
.callout,
.doc-card,
.job-card {
  background: var(--card-bg) !important;
  border: 1px solid var(--card-line) !important;
  border-radius: var(--card-r) !important;
}

.card h3,
.card-static h3,
.quiz-q h3,
.callout h3 {
  font-size: 17px !important;
}

/* ---------- 标签统一到首页两套规格 ----------
   首屏 eyebrow = 首页 .a-eyebrow：13px / 无衬线 / 600 / .08em
   章节 kicker  = 首页 .a-kicker：mono / 11.5px / .2em / 大写 */
.eyebrow {
  font-family: inherit !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  letter-spacing: .08em !important;
  text-transform: none !important;
  color: var(--b-brand) !important;
}

.card-meta,
.ch-meta {
  font-size: 12.5px !important;
  color: var(--b-muted) !important;
}

/* ---------- 内页「标题区 → 正文」与块间距也统一到首页 token ---------- */
.sec-head {
  margin-bottom: 0 !important;              /* 原来自带 margin-bottom 64，与下一块的 margin 折叠成 64 */
  border-top: 0 !important;                 /* 首页章节标题上方没有分割线 */
  padding-top: 0 !important;
}

.sec-head + * {
  margin-top: var(--gap-head) !important;   /* 52px，和 `.chapter-head + *` 一致 */
}

.sec-head h2 + .lede,
.sec-head h2 + p,
.sec-head h2 + p.lede {
  margin-top: 20px !important;               /* 与首页 chapter-title → chapter-sub 一致 */
}

/* 内容/工具页：一级块间距统一 32（原来 22 / 26 / 32 / 34） */
body:has(.hero.has-orbs):not(:has(.hero-marketing)) main .section > .wrap > * + * {
  margin-top: var(--gap-sub) !important;
}

/* 首屏：标题 → 说明 20px，说明 → 按钮 28px */
.hero-inner h1 + .lede,
.hero-inner .hero-title + .hero-lede {
  margin-top: 20px !important;
}

.hero-inner .hero-lede + .hero-actions,
.hero-inner .lede + .hero-actions {
  margin-top: 28px !important;
}

/* ===========================================================================
   17. 去掉「首页没有的元素」（2026-10-29）
   ---------------------------------------------------------------------------
   用户指出：内页有很多首页不存在的东西——区块之间的分割线、玻璃面板、
   18px 圆角的 tile、4px 小圆角的引用块、灰色 sec-tag 标签、尺寸不一的按钮。
   统一原则：首页只有「半透明卡片 + 细线 + mono 青色小标签 + 白色胶囊按钮」，
   内页不再引入第二种语言。
   ======================================================================== */

/* ① 区块分割线全去（首页章节之间没有线） */
main > section,
main .section,
main .section-dark,
main .section-tight,
main .cta-band,
main > .hero {
  border-top: 0 !important;
  border-bottom: 0 !important;
}

/* ② 玻璃面板 → 首页卡片材质（去掉毛玻璃） */
.glass {
  background: var(--card-bg) !important;
  border: 1px solid var(--card-line) !important;
  border-radius: var(--card-r) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  box-shadow: none !important;
}

/* ③ 18px 圆角的 tile → 14px 卡片 */
.tile {
  background: var(--card-bg) !important;
  border: 1px solid var(--card-line) !important;
  border-radius: var(--card-r) !important;
  box-shadow: none !important;
}

/* ④ 灰色 sec-tag → 首页 kicker（mono 青色小标签） */
.sec-tag {
  background: none !important;
  border: 0 !important;
  padding: 0 !important;
  border-radius: 0 !important;
  font-family: var(--font-mono) !important;
  font-size: 11px !important;
  letter-spacing: .2em !important;
  text-transform: uppercase;
  color: var(--b-brand) !important;
}

/* ⑤ 引用块：去掉 4px 圆角 + 5% 底 + 描边，改成首页的「左侧细线 + 正文」 */
.scenario {
  background: none !important;
  border: 0 !important;
  border-left: 2px solid rgba(34, 211, 238, .45) !important;
  border-radius: 0 !important;
  padding: 2px 0 2px 16px !important;
  font-size: 15.5px !important;
  line-height: 1.8 !important;
  color: var(--b-body) !important;
}

/* ⑥ 序号：对齐首页 ind-do 的 mono 规格 */
.idx {
  font-size: 11px !important;
  letter-spacing: .12em !important;
}

/* ⑦ 正文主按钮 = 首页 .a-pill：青底 / 8px 圆角 / 46 高 / 13.5 字 / 无图标
   注意：premium.css 用 `.btn.btn-primary`（0,2,0）写死白底 !important，
   这里的特异性必须压过它，所以写成 `main .btn.btn-primary`（0,2,1）。 */
main .btn,
main .btn-primary,
main .btn.btn-primary {
  height: 46px !important;
  padding: 0 26px !important;
  font-size: 13.5px !important;
  border-radius: 8px !important;
  background: var(--b-brand) !important;
  border: 1px solid var(--b-brand) !important;
  color: #04121A !important;
  box-shadow: none !important;
  font-weight: 700 !important;
  letter-spacing: .02em !important;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

main .btn-primary:hover,
main .btn.btn-primary:hover,
main .btn:hover {
  background: #5EE0F0 !important;
  border-color: #5EE0F0 !important;
  color: #04121A !important;
  filter: none !important;
  transform: none !important;
  box-shadow: none !important;
}

/* 首页主按钮没有箭头图标 */
main .btn-primary .icon,
main .btn-primary svg {
  display: none !important;
}

main .btn-ghost,
main .btn.btn-ghost {
  height: 46px !important;
  padding: 0 26px !important;
  font-size: 13.5px !important;
  border-radius: 8px !important;
  border: 1px solid rgba(255, 255, 255, .18) !important;
  background: transparent !important;
  color: var(--b-body) !important;
  box-shadow: none !important;
}

main .btn-ghost:hover,
main .btn.btn-ghost:hover {
  border-color: rgba(34, 211, 238, .45) !important;
  background: rgba(34, 211, 238, .06) !important;
  color: var(--b-ink) !important;
}

/* 导航栏等紧凑按钮：恢复小尺寸（原 34 高 / 13.5 字） */
.btn-sm,
.btn.btn-sm {
  height: 34px !important;
  padding: 0 14px !important;
  font-size: 13.5px !important;
}

/* ⑧ 脚注：统一到 12.5 muted */
.footnote {
  font-size: 12.5px !important;
  color: var(--b-muted) !important;
}

/* ⑨ 特性行标题 27 → 34（回到首页 sub-title 这一档，27 是孤立值） */
.fr-title {
  font-size: clamp(24px, 2.4vw, 34px) !important;
  line-height: 1.3 !important;
  letter-spacing: -.01em !important;
  font-weight: 700 !important;
}

/* ⑩ 填充式小胶囊 .chip → 首页的描边小标签（透明底 + 1px 细边） */
.chip {
  background: transparent !important;
  border: 1px solid rgba(255, 255, 255, .10) !important;
  border-radius: 999px !important;
  font-size: 12.5px !important;
  color: var(--b-body) !important;
  padding: 5px 12px !important;
}

/* ⑪ 填充小药丸（场景标签 / 状态 badge）→ 首页的「描边标签 + mono 文本」语言 */
.scenario-tag {
  background: none !important;
  border: 0 !important;
  padding: 0 !important;
  border-radius: 0 !important;
  font-family: var(--font-mono) !important;
  font-size: 11px !important;
  letter-spacing: .16em !important;
  text-transform: uppercase;
  color: var(--b-brand) !important;
}

.badge {
  background: transparent !important;
  border: 1px solid rgba(255, 255, 255, .14) !important;
  border-radius: 999px !important;
  padding: 3px 10px !important;
  font-size: 11.5px !important;
  font-weight: 500 !important;
}

.badge-ok {
  border-color: rgba(52, 211, 153, .38) !important;
  color: #6EE7B7 !important;
}

.badge-warn {
  border-color: rgba(251, 191, 36, .38) !important;
  color: #FCD34D !important;
}

.badge-neutral {
  border-color: rgba(255, 255, 255, .14) !important;
  color: var(--b-muted) !important;
}

/* ⑫ 表格：只保留横向细线（首页 ind-matrix 的做法），去掉竖线 */
main table {
  border-collapse: collapse !important;
}

main table th,
main table td {
  border-left: 0 !important;
  border-right: 0 !important;
  border-top: 0 !important;
  border-bottom: 1px solid rgba(255, 255, 255, .06) !important;
}

/* ⑬ 首屏之后的第一节与其它章节同节奏（首页首屏→首章 300px，靠 hero 下 120 + 章节上 126） */
main > .hero + section,
main > .hero + .section,
main > .hero + .section-tight {
  padding-top: var(--sec-pad) !important;
}

/* ⑭ 空的 hero-actions 会占 40px 上边距（隐私页这类没有按钮的首屏），去掉 */
.hero-actions:empty,
.hero-actions:not(:has(*)) {
  display: none !important;
}

/* 内页内容容器的首块不再自带上边距，间距统一由区块 padding 控制 */
.pad > :first-child {
  margin-top: 0 !important;
}

/* ===========================================================================
   18. 迁移第一步：模板层取值 = 首页基准（2026-10-29）
   ---------------------------------------------------------------------------
   目标：让「模板组件」（.wrap / .hero / .section / .sec-head / .btn / .eyebrow）
   表达出首页的实测值，之后把首页标记迁进同一套模板时视觉不变。
   本节只改取值、不改结构；首页（body.page-home）不受影响。
   ======================================================================== */

/* ① 内容宽：首页 1020；内页 .wrap 1120 → 1020，首屏 .hero-inner 980 与
   正文 .sec-inner 900 一并取消（这两层是「标题与正文对不齐」的根因） */
main .wrap,
.site-header .wrap,
.site-footer .wrap {
  width: min(1020px, 100% - 48px) !important;
  max-width: none !important;
}

.hero-inner,
.sec-inner {
  max-width: none !important;   /* 取消 980 / 900 的二次收窄，宽度由 .wrap 决定 */
}

/* ② 首页没有「分节编号」：关掉 CSS 计数器（隐私/联系页的 02、03） */
main .sec-inner h2::before,
main .section h2::before {
  content: none !important;
}

/* ③ 正文色 = 首页 .a-lead / p：16.5 / #A9B6C8；首屏引文 18 */
:root {
  --text-2: #A9B6C8;
}

body:not(.page-home) main p,
body:not(.page-home) main li,
body:not(.page-home) main .lede,
body:not(.page-home) main .hero-note {
  color: var(--b-body) !important;
}

body:not(.page-home) main .hero-note,
body:not(.page-home) main .lede {
  font-size: 18px !important;
  line-height: 1.75 !important;
}

/* ④ 首页章节没有交替底色：去掉 .section-dark 的深色底 */
main .section-dark {
  background: transparent !important;
}

/* ⑤ 首屏大标题：与首页同一条渐变（白 → #A9B6C8） */
body:not(.page-home) main .hero h1,
body:not(.page-home) main .hero-title {
  background: linear-gradient(180deg, #FFFFFF 40%, #A9B6C8 100%) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  color: transparent !important;
}

/* ⑥ 首页没有 18px 圆角卡：.ch-card 收到 14，去掉 60px 投影 */
.ch-card {
  border-radius: var(--card-r) !important;
  box-shadow: none !important;
}


/* ===== 统一沉浸式顶栏（2026-10-29）=====
   所有页面在顶部时不铺底色，让页面自身背景/光晕透上来；
   滚动 24px 后（body.x-scrolled）再给半透明底 + 模糊，保证可读性。 */
body.page-home { background-color: #070B14 !important; }
.site-header,
body.page-home .site-header {
  background: transparent !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  border-bottom: 0 !important;
  box-shadow: none !important;
}
body.x-scrolled .site-header,
body.x-scrolled.page-home .site-header {
  background: rgba(7, 11, 20, .72) !important;
  backdrop-filter: saturate(180%) blur(14px) !important;
  -webkit-backdrop-filter: saturate(180%) blur(14px) !important;
}


/* ===== 表单提交按钮统一（2026-10-29）=====
   三个表单（联系我们 / 诊断申请 / 白皮书）的提交按钮统一为：整行全宽、42 高（与输入框同高）、15 字。 */
main .form-actions [type="submit"].btn,
main .form-actions [type="submit"].btn.btn-primary {
  width: 100% !important;
  height: 42px !important;
  padding: 0 18px !important;
  font-size: 15px !important;
  justify-content: center !important;
}
main .form-actions [type="submit"].btn .icon { width: 15px; height: 15px; }
main .form-actions { gap: 10px !important; }


/* ===== 全站隐藏滚动条（保留滚动能力） ===== */
html, body { scrollbar-width: none; -ms-overflow-style: none; }
html::-webkit-scrollbar, body::-webkit-scrollbar { width: 0; height: 0; display: none; }
* { scrollbar-width: none; }
*::-webkit-scrollbar { width: 0; height: 0; display: none; }


/* ---------- 移动端章节节奏：原 110–170px 的上下留白在手机上过大，收到 64px ---------- */
@media (max-width: 640px) {
  main > .section,
  main .section,
  body.page-home .section,
  body.page-home main .section {
    padding-top: 64px !important;
    padding-bottom: 64px !important;
  }
  main > .section-tight,
  main .section-tight {
    padding-top: 44px !important;
    padding-bottom: 44px !important;
  }
  main .cta-band {
    padding-top: 56px !important;
    padding-bottom: 56px !important;
  }
  main .hero {
    padding-top: 64px !important;
    padding-bottom: 72px !important;
  }
  main .hero.hero-home {
    padding-top: 56px !important;
    padding-bottom: 68px !important;
  }
  main .hero.hero-marketing {
    padding-top: 44px !important;
    padding-bottom: 28px !important;
  }
  main > .hero + .section {
    padding-top: 44px !important;
  }
  main > .hero + .section.section-industries,
  main > .hero.hero-industries + .section.section-industries {
    padding-top: 16px !important;
  }
}


/* ---------- Tab 顶部驻留：滚动到章节内容时，tab 栏吸在顶栏下 ---------- */
.ind-rail,
.p-tabs {
  position: sticky !important;
  top: 60px !important;
  z-index: 45;
  background: rgba(7, 11, 20, .9);
  -webkit-backdrop-filter: blur(16px) saturate(140%);
  backdrop-filter: blur(16px) saturate(140%);
}
.ind-rail {
  padding: 10px 0 !important;
  margin: -10px 0 22px !important;
}
.p-tabs {
  padding-top: 6px !important;
  margin-top: 36px !important;
}
.anchor { scroll-margin-top: 140px !important; }

@media (max-width: 640px) {
  .ind-rail {
    flex-wrap: nowrap !important;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    padding: 10px 0 !important;
    margin: -10px 0 18px !important;
  }
  .ind-ui .ind-tab { flex: 0 0 auto; white-space: nowrap; }
  .p-tabs { margin-top: 22px !important; }
  .p-tab { padding: 10px 16px !important; font-size: 14px !important; }
}


@media (max-width: 640px) {
  body.page-home main > .hero + .section { padding-top: 40px !important; }
}


@media (max-width: 640px) {
  body.page-home main > .hero + .mq + .section { padding-top: 40px !important; }
}


@media (max-width: 640px) {
  body.page-home #assets.section { padding-top: 40px !important; }
}


/* ---------- 移动端「业务场景」：左列改横滑胶囊，吸在顶栏下 ---------- */
@media (max-width: 1000px) {
  .sc2 { gap: 18px; margin-top: 24px; }
  .sc2-left { display: block !important; }
  .sc2-list {
    position: sticky !important;
    top: 60px !important;
    z-index: 42;
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    justify-content: flex-start !important;
    gap: 8px;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    margin: 0 -16px 14px !important;
    padding: 10px 16px;
    background: rgba(7, 11, 20, .92);
    -webkit-backdrop-filter: blur(16px) saturate(140%);
    backdrop-filter: blur(16px) saturate(140%);
    scrollbar-width: none;
  }
  .sc2-list::-webkit-scrollbar { display: none; }
  .sc2-item {
    flex: 0 0 auto;
    padding: 8px 14px !important;
    border-radius: 999px !important;
    border: 1px solid var(--card-line) !important;
    background: transparent !important;
  }
  .sc2-item.is-on {
    background: rgba(34, 211, 238, .14) !important;
    border-color: rgba(34, 211, 238, .55) !important;
  }
  .sc2-k { display: none !important; }
  .sc2-item b { margin: 0 !important; font-size: 14px !important; white-space: nowrap; }
}


@media (max-width: 1000px) {
  .sc2-k {
    display: inline !important;
    font-family: inherit !important;
    font-size: 14px !important;
    letter-spacing: 0 !important;
    color: var(--b-body) !important;
    white-space: nowrap;
  }
  .sc2-item.is-on .sc2-k { color: #fff !important; }
  .sc2-item b { display: none !important; }
}


@media (max-width: 1000px) {
  /* 让胶囊条的包含块变成整段场景区，才能真正吸住 */
  .sc2 { display: flex !important; flex-direction: column; gap: 18px; }
  .sc2-left { display: contents !important; }
}


@media (max-width: 1000px) {
  .sc2 { align-items: stretch !important; }
  .sc2-list { width: auto !important; max-width: none !important; }
}


/* 移动端：架构图等比缩到容器宽；导航菜单贴住顶栏下沿 */
@media (max-width: 980px) {
  .diag-scroll { overflow-x: hidden !important; }
  .diag-scroll svg { width: 100% !important; max-width: 100% !important; height: auto !important; }
  .main .diag { padding: 10px 8px; }
  .site-header.open .site-nav { top: 100% !important; }
}


/* 驻留条背景与滚动后的导航栏同一档：半透明 + 模糊 */
.ind-rail,
.p-tabs,
.sc2-list {
  background: rgba(7, 11, 20, .72) !important;
  -webkit-backdrop-filter: saturate(180%) blur(14px) !important;
  backdrop-filter: saturate(180%) blur(14px) !important;
}


/* 移动端导航菜单：与滚动后导航栏同款半透明玻璃，展开/收起带淡入下滑 */
@media (max-width: 980px) {
  .site-header .site-nav {
    display: flex !important;
    flex-direction: column;
    align-items: stretch;
    position: absolute;
    left: 0;
    right: 0;
    top: 100%;
    margin: 0 !important;
    padding: 10px 16px 16px;
    background: rgba(7, 11, 20, .72) !important;
    -webkit-backdrop-filter: saturate(180%) blur(14px) !important;
    backdrop-filter: saturate(180%) blur(14px) !important;
    border-bottom: 1px solid rgba(255, 255, 255, .10);
    box-shadow: 0 24px 60px rgba(0, 0, 0, .45);
    z-index: 100;
    opacity: 0;
    visibility: hidden;
    margin-top: -6px;
    pointer-events: none;
    transition: opacity .18s ease, margin-top .18s ease, visibility 0s linear .18s;
  }
  .site-header.open .site-nav {
    opacity: 1;
    visibility: visible;
    margin-top: 0;
    pointer-events: auto;
    transition: opacity .18s ease, margin-top .18s ease;
  }
  .site-header .nav-toggle svg { transition: transform .2s ease; }
  .site-header.open .nav-toggle svg { transform: rotate(90deg); }
}


/* 驻留条：玻璃底铺满整屏宽（和导航栏同宽），避免内容宽度造成的"半截"割裂 */
.ind-rail,
.p-tabs,
.sc2-list {
  background: transparent !important;
}
.ind-rail::before,
.p-tabs::before,
.sc2-list::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 50%;
  width: 100vw;
  transform: translateX(-50%);
  background: rgba(7, 11, 20, .72);
  -webkit-backdrop-filter: saturate(180%) blur(14px);
  backdrop-filter: saturate(180%) blur(14px);
  z-index: -1;
  pointer-events: none;
}
.p-tabs { border-bottom: 0 !important; }
@media (max-width: 1000px) {
  .sc2-list { margin: 0 0 14px !important; padding: 10px 0; }
}


/* 桌面：驻留条不要 overflow 裁掉整屏宽玻璃底 */
@media (min-width: 1001px) {
  .ind-rail,
  .p-tabs { overflow: visible !important; }
}

/* 移动端：驻留条自身拉满屏宽，玻璃底铺到边，内容仍按 24px 内边距对齐 */
@media (max-width: 1000px) {
  .ind-rail,
  .p-tabs,
  .sc2-list {
    width: 100vw !important;
    margin-left: calc(50% - 50vw) !important;
    margin-right: calc(50% - 50vw) !important;
    padding-left: 24px !important;
    padding-right: 24px !important;
    background: rgba(7, 11, 20, .72) !important;
    -webkit-backdrop-filter: saturate(180%) blur(14px) !important;
    backdrop-filter: saturate(180%) blur(14px) !important;
  }
  .ind-rail::before,
  .p-tabs::before,
  .sc2-list::before { display: none !important; }
}


/* 首页 H1 的高亮段（装进你的公司）自己也要有渐变+裁切：
   Safari 里父级 h1 的 background-clip:text 不会作用到 inline-block 子元素，文字会透明失踪 */
.hero-home .hero-title .hl,
body.page-home .hero-title .hl {
  background: linear-gradient(180deg, #FFFFFF 40%, #A9B6C8 100%) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  color: transparent !important;
}


/* 移动端首页 H1 兜底：不用渐变裁切，直接实色，保证任何浏览器都看得见 */
@media (max-width: 980px) {
  .hero-home .hero-title,
  .hero-home .hero-title .hl,
  body.page-home .hero-title,
  body.page-home .hero-title .hl {
    background: none !important;
    -webkit-background-clip: border-box !important;
    background-clip: border-box !important;
    -webkit-text-fill-color: #E6EDF7 !important;
    color: #E6EDF7 !important;
  }
}



/* 驻留条吸附时：顶栏自身的玻璃让位给那块统一玻璃层（必须放最后压过 body.x-scrolled 规则） */
body.stuck-bar .site-header,
body.stuck-bar.page-home .site-header {
  background: transparent !important;
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
}


/* 驻留条吸附时向上延伸并接管顶栏那块玻璃：
   top 从 60 改成 0，加 60px 上内边距把内容留在原位；流内高度用负 margin 抵消。
   这样只有一层 backdrop-filter，覆盖顶栏+驻留条，接缝消失。 */
.ind-rail.is-stuck,
.p-tabs.is-stuck,
.sc2-list.is-stuck {
  top: 0 !important;
  padding-top: 60px !important;
  margin-bottom: -60px !important;
  background: rgba(7, 11, 20, .72) !important;
  -webkit-backdrop-filter: saturate(180%) blur(14px) !important;
  backdrop-filter: saturate(180%) blur(14px) !important;
  box-shadow: none !important;
}
.ind-rail.is-stuck::before,
.p-tabs.is-stuck::before,
.sc2-list.is-stuck::before { display: none !important; }
.hdr-glass { display: none !important; }
body.stuck-bar .site-header,
body.stuck-bar.page-home .site-header {
  background: transparent !important;
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
}
