/* =========================================================
   同橙AI 集团官网 · 多页扩展样式
   依赖 style.css（全局设计变量与基础组件），本文件只补充
   内页 hero、产品矩阵、分层图、时间线、城市卡、价格表等新组件。
   不可引入新主色 / 暗黑风格，沿用 #ff8500 与浅色基调。
   ========================================================= */

/* ---------- 顶栏：母品牌副标识 ---------- */
.brand-sub {
  font-size: 14px;
  font-weight: 800;
  letter-spacing: 0.12em;
  color: var(--ink-3);
  margin-left: 8px;
  align-self: center;
}

/* ---------- 内页 hero（非首页满屏） ---------- */
.page-hero {
  padding: calc(var(--header-h) + 64px) 0 52px;
  background: transparent;
}
.page-hero .eyebrow { margin-bottom: 4px; }
.page-hero h1 {
  font-size: clamp(30px, 3.8vw, 46px);
  line-height: 1.22;
  letter-spacing: 0.005em;
  margin: 16px 0 18px;
}
.page-hero .lead {
  font-size: 17px;
  line-height: 1.75;
  color: var(--ink-2);
  max-width: 720px;
}
.page-hero .hero-cta { margin-top: 28px; display: flex; flex-wrap: wrap; gap: 14px; }

/* 内页统一首屏右侧留白时，标题区可居中 */
.page-hero.is-center { text-align: center; }
.page-hero.is-center h1,
.page-hero.is-center .lead { margin-inline: auto; }

/* ---------- 五栏入口卡（首页引导） ---------- */
.entry-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 18px;
}
.entry-card {
  display: flex;
  flex-direction: column;
  gap: 8px;
  background: #fff;
  border: 0;
  border-radius: var(--radius-l);
  padding: 24px 22px;
  box-shadow: var(--shadow-l);
  transition: transform 0.25s var(--ease), box-shadow 0.25s var(--ease);
}
.entry-card:hover {
  transform: translateY(-6px);
  box-shadow: var(--shadow-m);
}
.entry-card .ec-no {
  font-size: 13px;
  font-weight: 800;
  color: var(--brand);
  letter-spacing: 0.04em;
}
.entry-card h3 { font-size: 17px; margin: 2px 0 4px; }
.entry-card p { font-size: 13.5px; color: var(--ink-3); }
.entry-card .ec-go {
  margin-top: auto;
  font-size: 13.5px;
  font-weight: 600;
  color: var(--brand-deep);
}
@media (max-width: 1180px) { .entry-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 720px) { .entry-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 480px) { .entry-grid { grid-template-columns: 1fr; } }

/* ---------- 产品矩阵卡 ---------- */
.matrix-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
}
.matrix-card {
  display: flex;
  flex-direction: column;
  gap: 2px;
  background: #fff;
  border: 0;
  border-radius: var(--radius-l);
  box-shadow: var(--shadow-l);
}
.matrix-card .mc-role {
  align-self: flex-start;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: var(--brand-deep);
  background: var(--brand-tint);
  border-radius: 999px;
  padding: 3px 12px;
  margin-bottom: 12px;
}
.matrix-card h3 { font-size: 18px; margin-bottom: 8px; }
.matrix-card .mc-for { font-size: 14.5px; color: var(--ink-2); }
.matrix-card .mc-buy {
  margin-top: 14px;
  font-size: 13.5px;
  color: var(--ink-3);
}
.matrix-card.is-main {
  --accent: var(--brand);
  --accent-soft: rgba(255, 133, 0, 0.45);
  --accent-ink: var(--brand-deep);
  --icon-grad: var(--brand-grad);
  box-shadow: var(--shadow-l);
}
@media (max-width: 1024px) { .matrix-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .matrix-grid { grid-template-columns: 1fr; } }

/* ---------- 分层图：结果层 → 产能层 → 工程层 → 资源层 ---------- */
.layer-diagram { display: grid; gap: 14px; }
.layer {
  position: relative;
  display: grid;
  grid-template-columns: 56px 1fr;
  gap: 20px;
  align-items: center;
  border: 0;
  border-radius: var(--radius-l);
  padding: 22px 26px;
  background: #fff;
  box-shadow: var(--shadow-l);
}
.layer .layer-node {
  width: 52px; height: 52px; border-radius: 15px;
  display: grid; place-items: center;
  font-size: 17px; font-weight: 800; color: #fff;
  background: var(--accent, var(--brand-grad));
  box-shadow: 0 10px 22px rgba(22, 27, 40, 0.16);
}
.layer:nth-child(1) { --accent: var(--c1-grad); }
.layer:nth-child(2) { --accent: var(--c3-grad); }
.layer:nth-child(3) { --accent: var(--c4-grad); }
.layer:nth-child(4) { --accent: var(--c2-grad); }
.layer .layer-name { font-weight: 800; font-size: 18px; }
.layer .layer-name small { display: block; font-size: 12px; font-weight: 600; color: var(--ink-3); letter-spacing: 0.04em; margin-top: 2px; }
.layer p { font-size: 14.5px; color: var(--ink-2); margin: 0; }
@media (max-width: 640px) { .layer { grid-template-columns: 48px 1fr; gap: 14px; padding: 18px; } }

/* ---------- 时间线（中轴进度线 · 左右参差交替） ---------- */
.timeline-center { position: relative; display: grid; gap: 34px; }
/* 中轴光线：品牌橙 → 科技青 → 未来紫（静态渐变，无动画） */
.timeline-center::before {
  content: ""; position: absolute; left: 50%; top: 6px; bottom: 6px; width: 2px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, var(--brand), var(--tech-cyan, #36c5f0), var(--tech-violet, #7c3aed));
  opacity: 0.4; border-radius: 2px;
}
.timeline-center .tl-item {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 88px minmax(0, 1fr);
  align-items: center;
  padding: 0;
}
.timeline-center .tl-node {
  position: relative;
  grid-column: 2; grid-row: 1;
  justify-self: center; align-self: center;
  left: auto; top: auto;
  width: 48px; height: 48px;
  border-radius: 50%;
  font-size: 15px;
  display: grid; place-items: center;
  color: #fff; font-weight: 800;
  z-index: 1;
  box-shadow: 0 0 0 8px #fff, 0 8px 20px rgba(22, 27, 40, 0.16);
}
/* 奇数项：卡片居左、右对齐；偶数项：卡片居右、左对齐 */
.timeline-center .tl-body { grid-column: 1; grid-row: 1; justify-self: end; text-align: right; width: min(100%, 480px); }
.timeline-center .tl-item:nth-child(even) .tl-body { grid-column: 3; justify-self: start; text-align: left; }
.timeline-center .tl-body::after {
  content: ""; position: absolute; top: 50%; width: 28px; height: 1.5px;
  background: linear-gradient(90deg, var(--brand), rgba(255, 133, 0, 0.15));
}
.timeline-center .tl-item:nth-child(odd) .tl-body::after { right: -44px; }
.timeline-center .tl-item:nth-child(even) .tl-body::after {
  left: -44px; transform: scaleX(-1);
}
.timeline-center .tl-body {
  position: relative;
  background: #fff; border: 1px solid var(--line-soft); border-radius: var(--radius-l);
  padding: 22px 26px; box-shadow: var(--shadow-l);
  transition: transform 0.25s var(--ease), box-shadow 0.25s var(--ease);
}
.timeline-center .tl-body:hover { transform: translateY(-4px); box-shadow: 0 20px 48px rgba(22, 27, 40, 0.14); }
.tl-year { display: inline-block; font-size: 12px; font-weight: 700; color: var(--brand-deep); background: var(--brand-tint); border-radius: 999px; padding: 3px 12px; margin-bottom: 10px; }
.tl-body h3 { font-size: 18px; margin: 0 0 8px; }
.tl-body p { font-size: 14.5px; color: var(--ink-2); margin: 0 0 10px; }
.tl-tag { display: inline-block; font-size: 12px; color: var(--ink-3); background: var(--bg-soft); border-radius: 8px; padding: 4px 10px; }
/* 节点五色渐变 */
.tl-item:nth-child(1) .tl-node { --accent: var(--c1-grad); }
.tl-item:nth-child(2) .tl-node { --accent: var(--c2-grad); }
.tl-item:nth-child(3) .tl-node { --accent: var(--c3-grad); }
.tl-item:nth-child(4) .tl-node { --accent: var(--c4-grad); }
.tl-item:nth-child(5) .tl-node { --accent: var(--c5-grad); }
.tl-node { background: var(--accent, var(--brand-grad)); }
@media (max-width: 900px) {
  .timeline-center::before { left: 23px; transform: none; }
  .timeline-center { gap: 22px; }
  .timeline-center .tl-item { grid-template-columns: 48px minmax(0, 1fr); gap: 16px; }
  .timeline-center .tl-node { grid-column: 1; width: 44px; height: 44px; }
  .timeline-center .tl-body,
  .timeline-center .tl-item:nth-child(even) .tl-body {
    grid-column: 2; justify-self: stretch; text-align: left; width: auto;
  }
  .timeline-center .tl-body::after { display: none; }
}

/* ---------- 城市 / 社区卡（7 城 11 社区） ---------- */
.city-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.city-card {
  position: relative; overflow: hidden;
  background: #fff;
  border: 1px solid var(--line-soft);
  border-radius: var(--radius-l);
  padding: 22px;
  box-shadow: var(--shadow-l);
}
.city-head { display: flex; align-items: center; gap: 10px; margin-bottom: 14px; }
.city-pin { width: 36px; height: 36px; border-radius: 11px; display: grid; place-items: center; background: linear-gradient(135deg, #fff2e0, #ffe2c2); color: var(--brand); flex: none; }
.city-pin svg { width: 18px; height: 18px; }
.city-count { margin-left: auto; font-size: 12px; font-weight: 700; color: var(--brand-deep); background: var(--brand-tint); border-radius: 999px; padding: 3px 10px; white-space: nowrap; }
.city-card h3 { font-size: 18px; }
.city-card ul { display: grid; gap: 8px; }
.city-card li {
  position: relative;
  padding-left: 16px;
  font-size: 14px;
  color: var(--ink-2);
}
.city-card li::before {
  content: "";
  position: absolute; left: 0; top: 0.55em;
  width: 6px; height: 6px; border-radius: 50%;
  background: var(--brand);
}
@media (max-width: 860px) { .city-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .city-grid { grid-template-columns: 1fr; } }

/* ---------- 价格三档卡 ---------- */
.price-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.price-card {
  display: flex;
  flex-direction: column;
  background: #fff;
  border: 0;
  border-radius: var(--radius-l);
  padding: 30px 28px;
  box-shadow: var(--shadow-l);
}
.price-card.is-feature {
  box-shadow: var(--shadow-l);
}
.price-card .pc-tag {
  align-self: flex-start;
  font-size: 12.5px; font-weight: 700;
  color: var(--brand-deep); background: var(--brand-tint);
  border-radius: 999px; padding: 3px 12px; margin-bottom: 14px;
}
.price-card h3 { font-size: 20px; margin-bottom: 6px; }
.price-card .pc-range { font-size: 26px; font-weight: 800; color: var(--brand); font-variant-numeric: tabular-nums; }
.price-card .pc-unit { font-size: 13px; color: var(--ink-3); margin-bottom: 18px; }
.price-card ul { display: grid; gap: 10px; margin-bottom: 22px; }
.price-card li { position: relative; padding-left: 26px; font-size: 14.5px; color: var(--ink-2); }
.price-card li::before {
  content: "";
  position: absolute; left: 0; top: 0.42em;
  width: 16px; height: 16px; border-radius: 50%;
  background: var(--brand-tint) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5' fill='none' stroke='%23f07800' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 10px no-repeat;
}
.price-card .btn { margin-top: auto; }
@media (max-width: 860px) { .price-grid { grid-template-columns: 1fr; } }

/* ---------- 三档价格对照表（HTML 表格，机器可读） ---------- */
.price-table { margin-top: 40px; }
.price-table caption { text-align: left; font-size: 16px; font-weight: 700; padding: 0 0 16px; }

/* ---------- 表单（预约诊断） ---------- */
.form-grid { display: grid; grid-template-columns: 1.1fr 0.9fr; gap: 48px; align-items: start; }
.form-card { background: #fff; border: 0; border-radius: var(--radius-l); padding: 32px; box-shadow: var(--shadow-l); }
.form-card h3 { font-size: 20px; margin-bottom: 6px; }
.form-card .fc-sub { font-size: 14px; color: var(--ink-3); margin-bottom: 22px; }
.form-card .btn { margin-top: 6px; }
@media (max-width: 860px) { .form-grid { grid-template-columns: 1fr; gap: 36px; } }

/* ---------- 内联占位提示 ---------- */
.note-inline {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  color: var(--ink-3);
  background: rgba(255, 255, 255, 0.5);
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
  border: 1px dashed var(--glass-border-brand);
  border-radius: var(--radius-s);
  padding: 8px 14px;
}
.note-inline::before { content: "待补充"; font-weight: 700; color: var(--brand-deep); }

/* ---------- 选购指引三入口 ---------- */
.guide-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.guide-card {
  text-align: center;
  background: #fff;
  border: 0;
  border-radius: var(--radius-l);
  padding: 28px;
  box-shadow: var(--shadow-l);
}
.guide-card .gc-ico {
  width: 54px; height: 54px; margin: 0 auto 14px;
  display: grid; place-items: center; border-radius: 14px;
  background: var(--brand-grad); color: #fff;
}
.guide-card h3 { font-size: 18px; margin-bottom: 8px; }
.guide-card p { font-size: 14.5px; color: var(--ink-2); margin-bottom: 16px; }
@media (max-width: 720px) { .guide-grid { grid-template-columns: 1fr; } }

/* =========================================================
   未来 / 科技感升级（静态：无动画、无粒子、无扫描线、无密集网格）
   ========================================================= */

/* =========================================================
   v2 · 布局系统：Apple 式超大留白 + 大标题 + Bento 栅格
   纯静态：无动画 / 无粒子 / 无网格背景 / 无渐变字体 / 无卡片单边色边框
   沿用品牌橙 #ff8500 与浅色基调
   ========================================================= */

/* ---------- 1. 区块节奏（加大垂直留白） ---------- */
.section { padding: clamp(84px, 8.6vw, 148px) 0; }
.section-tight { padding: clamp(60px, 5.6vw, 96px) 0; }

/* ---------- 2. 字号阶梯 ---------- */
.display-1 {                       /* 首屏巨标题 */
  font-size: clamp(38px, 5.8vw, 74px);
  line-height: 1.06;
  letter-spacing: -0.025em;
  font-weight: 800;
}
.display-2 {                       /* 模块巨标题 */
  font-size: clamp(30px, 4.2vw, 56px);
  line-height: 1.1;
  letter-spacing: -0.02em;
  font-weight: 800;
}
.display-3 {
  font-size: clamp(24px, 2.6vw, 34px);
  line-height: 1.2;
  letter-spacing: -0.01em;
  font-weight: 800;
}
.lead-lg {
  font-size: clamp(16.5px, 1.35vw, 20px);
  line-height: 1.7;
  color: var(--ink-2);
}

/* 首屏 / 内页 Hero：巨标题（v3 微调：参照站标题节奏，避免断行孤字） */
.hero-copy h1,
.hero-copy h2.hero-title {
  font-size: clamp(34px, 4.7vw, 60px);
  line-height: 1.12;
  letter-spacing: -0.02em;
  font-weight: 800;
  margin: 20px 0 22px;
}
.hero-sub { font-size: clamp(16px, 1.25vw, 18.5px); line-height: 1.75; max-width: 600px; }
.page-hero { padding: calc(var(--header-h) + clamp(64px, 7vw, 112px)) 0 clamp(56px, 6vw, 96px); }
.page-hero h1 {
  font-size: clamp(34px, 4.5vw, 58px);
  line-height: 1.12;
  letter-spacing: -0.02em;
  font-weight: 800;
  margin: 18px 0 22px;
  max-width: 16em;
}
.page-hero .lead { font-size: clamp(16.5px, 1.35vw, 20px); line-height: 1.72; max-width: 760px; }

/* ---------- 3. 区块头部 ---------- */
.section-head { max-width: 800px; margin-bottom: clamp(40px, 4.6vw, 76px); }
.section-head h2,
.results-copy h2,
.about-copy h2,
.contact-copy h2,
.contact-lead h2 {
  font-size: clamp(28px, 3.6vw, 46px);
  line-height: 1.16;
  letter-spacing: -0.015em;
  font-weight: 800;
  margin: 16px 0 18px;
}
.section-lead { font-size: clamp(16px, 1.25vw, 19px); line-height: 1.72; color: var(--ink-2); }
.head-center { text-align: center; margin-inline: auto; }
.head-center .eyebrow { justify-content: center; }
.head-center h2 { margin-inline: auto; }
.head-xl .eyebrow { font-size: 13.5px; letter-spacing: 0.1em; }

/* 大陈述段（整屏级金句） */
.statement { text-align: center; max-width: 940px; margin-inline: auto; }
.statement h2 {
  font-size: clamp(30px, 4.4vw, 58px);
  line-height: 1.14;
  letter-spacing: -0.025em;
  font-weight: 800;
  margin: 18px 0 20px;
}
.statement p { font-size: clamp(16.5px, 1.3vw, 19.5px); line-height: 1.75; color: var(--ink-2); }

/* ---------- 4. Bento 栅格（12 栏） ---------- */
.bento {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: clamp(16px, 1.5vw, 24px);
}
.bento > .t-3  { grid-column: span 3; }
.bento > .t-4  { grid-column: span 4; }
.bento > .t-5  { grid-column: span 5; }
.bento > .t-6  { grid-column: span 6; }
.bento > .t-7  { grid-column: span 7; }
.bento > .t-8  { grid-column: span 8; }
.bento > .t-9  { grid-column: span 9; }
.bento > .t-12 { grid-column: span 12; }

/* Bento 卡片底座：纯白 / 无描边 / 柔和阴影（禁止单边色边框） */
.tile {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 10px;
  grid-column: span 4;
  background: #fff;
  border: 0;
  border-radius: 26px;
  padding: clamp(24px, 2.2vw, 38px);
  box-shadow: 0 18px 44px rgba(22, 27, 40, 0.09);
  overflow: hidden;
  transition: transform 0.3s var(--ease), box-shadow 0.3s var(--ease);
}
a.tile:hover,
.tile.is-link:hover {
  transform: translateY(-8px);
  box-shadow: 0 28px 64px rgba(22, 27, 40, 0.14);
}
.tile h3 { font-size: clamp(17px, 1.4vw, 19.5px); font-weight: 700; margin: 0; }
.tile p { font-size: 14.5px; line-height: 1.75; color: var(--ink-2); margin: 0; }
.tile > p + p { margin-top: 2px; }

/* 卡片内部元素 */
.tile-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  align-self: flex-start;
  font-size: 12.5px;
  font-weight: 800;
  letter-spacing: 0.06em;
  color: var(--brand-deep);
  background: var(--brand-tint);
  border-radius: 999px;
  padding: 4px 12px;
  margin-bottom: 4px;
}
.tile-ico {
  width: 56px; height: 56px;
  display: grid; place-items: center;
  border-radius: 17px;
  color: #fff;
  background: var(--brand-grad);
  box-shadow: 0 8px 18px rgba(22, 27, 40, 0.14);
}
.tile-ico svg { width: 26px; height: 26px; }
.tile-go {
  margin-top: auto;
  padding-top: 16px;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-size: 14.5px;
  font-weight: 700;
  color: var(--brand-deep);
}
.tile-go::after { content: "→"; font-weight: 800; }
a.tile:hover .tile-go::after { transform: translateX(3px); }

/* 大卡变体：更大标题与留白（Apple 式主次关系） */
.tile-lg { padding: clamp(28px, 2.8vw, 48px); gap: 14px; }
.tile-lg h3 { font-size: clamp(22px, 2.4vw, 32px); font-weight: 800; letter-spacing: -0.015em; line-height: 1.2; }
.tile-lg p { font-size: clamp(15px, 1.15vw, 17px); line-height: 1.8; }
.tile-lg .tile-ico { width: 64px; height: 64px; border-radius: 20px; }

/* 横幅卡变体：单行铺满，信息左右分布 */
.tile-banner { flex-direction: row; align-items: center; gap: 18px; }
.tile-banner .tile-eyebrow { margin-bottom: 0; flex: none; }
.tile-banner h3 { flex: none; font-size: clamp(18px, 1.6vw, 22px); font-weight: 800; }
.tile-banner p { flex: 1 1 auto; max-width: 560px; }
.tile-banner .tile-go { margin-top: 0; padding-top: 0; margin-left: auto; flex: none; }
@media (max-width: 760px) {
  .tile-banner { flex-direction: column; align-items: flex-start; }
  .tile-banner p { max-width: none; }
}

/* 浅橙底填充变体（整块填色，非描边） */
.tile-tint { background: linear-gradient(180deg, #fff7ef, #fff2e6); }
.tile-mist { background: var(--bg-soft); }

/* 大数字卡 */
.tile-stat { justify-content: center; gap: 6px; }
.tile-stat .big {
  font-size: clamp(38px, 4.4vw, 62px);
  font-weight: 800;
  letter-spacing: -0.03em;
  line-height: 1.05;
  color: var(--brand-deep);
  font-variant-numeric: tabular-nums;
}
.tile-stat .big small { font-size: 0.42em; font-weight: 700; margin-left: 4px; letter-spacing: 0; }
.tile-stat .cap { font-size: 14.5px; color: var(--ink-2); }

/* 引用卡 */
.tile-quote blockquote {
  margin: 0;
  font-size: clamp(16px, 1.4vw, 19px);
  line-height: 1.75;
  color: var(--ink);
}
.tile-quote figcaption { margin-top: auto; padding-top: 18px; display: flex; align-items: center; gap: 12px; }
.tile-quote .avatar {
  width: 44px; height: 44px; flex: none;
  display: grid; place-items: center;
  border-radius: 50%;
  background: var(--brand-tint);
  color: var(--brand-deep);
  font-weight: 800;
}
.tile-quote figcaption i { font-style: normal; display: block; font-size: 13px; color: var(--ink-3); }

/* ---------- 5. 分割式布局（左文右块 / 左块右文） ---------- */
.split {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: clamp(24px, 3vw, 56px);
  align-items: center;
}
.split > .s-copy   { grid-column: span 5; }
.split > .s-media  { grid-column: span 7; }
.split > .s-wide   { grid-column: span 7; }
.split > .s-narrow { grid-column: span 5; }
.split h2 { font-size: clamp(28px, 3.4vw, 44px); line-height: 1.18; letter-spacing: -0.015em; font-weight: 800; }

/* ---------- 6. 数据条数字放大 ---------- */
.stat-num { font-size: clamp(34px, 3.8vw, 54px); letter-spacing: -0.02em; line-height: 1.1; }
.stat-label { font-size: 14.5px; }
.stats-grid { padding: clamp(36px, 4vw, 60px) 0; }

/* ---------- 7. 响应式降级 ---------- */
@media (max-width: 1120px) {
  .bento { grid-template-columns: repeat(6, minmax(0, 1fr)); }
  .bento > .t-3, .bento > .t-4 { grid-column: span 3; }
  .bento > .t-5, .bento > .t-6, .bento > .t-7,
  .bento > .t-8, .bento > .t-9, .bento > .t-12 { grid-column: span 6; }
  .split > .s-copy, .split > .s-media,
  .split > .s-wide, .split > .s-narrow { grid-column: 1 / -1; }
}
@media (max-width: 700px) {
  .bento { grid-template-columns: minmax(0, 1fr); }
  .bento > .t-3, .bento > .t-4, .bento > .t-5, .bento > .t-6,
  .bento > .t-7, .bento > .t-8, .bento > .t-9, .bento > .t-12,
  .bento > .tile { grid-column: 1 / -1; }
}

/* 渐变文字已按需求取消：统一为品牌橙纯色 */
.grad-text { color: var(--brand-deep); }
/* Hero 关键词高亮：同样取消渐变，改品牌橙纯色 */
.hl {
  background: none;
  -webkit-background-clip: initial;
  background-clip: initial;
  color: var(--brand-deep);
}

/* ---------- 页脚：关联平台规整为 2×2 栅格 ---------- */
.footer-group-links { margin-top: 18px; }
.fgl-label {
  display: block; font-size: 12px; font-weight: 700; letter-spacing: 0.08em;
  color: var(--ink-3); margin-bottom: 10px;
}
.fgl-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.fgl-grid a {
  display: flex; align-items: center; gap: 7px;
  font-size: 13px; color: var(--ink-2);
  padding: 9px 11px; border: 1px solid var(--line); border-radius: 10px; background: #fff;
  transition: border-color 0.2s, color 0.2s, transform 0.2s var(--ease);
}
.fgl-grid a::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--brand); flex: none; }
.fgl-grid a:hover { color: var(--brand-deep); border-color: var(--brand-tint-2); transform: translateY(-1px); }

/* =========================================================
   首页 · 业务矩阵（浅色未来感：柔光晕 + 轻装饰环，布局与其他模块一致）
   ========================================================= */
.biz-matrix {
  position: relative; overflow: hidden;
  background:
    radial-gradient(48% 62% at 10% -4%, rgba(255, 138, 61, 0.10), transparent 62%),
    radial-gradient(42% 56% at 94% 16%, rgba(54, 197, 240, 0.10), transparent 62%),
    radial-gradient(40% 54% at 72% 112%, rgba(124, 92, 255, 0.08), transparent 62%),
    var(--bg);
}
/* 装饰元素容器（柔和光环，静态） */
.has-ring { position: relative; overflow: hidden; }
.company-section { position: relative; }

.biz-ring {
  position: absolute; right: -190px; top: 50%; transform: translateY(-50%);
  width: 560px; height: 560px; border-radius: 50%;
  border: 1.5px solid rgba(255, 133, 0, 0.16);
  box-shadow: 0 0 0 70px rgba(255, 133, 0, 0.045), 0 0 0 160px rgba(54, 197, 240, 0.035);
  pointer-events: none;
  z-index: 0;
}
.biz-ring::after {
  content: ""; position: absolute; inset: 100px; border-radius: 50%;
  border: 1.5px solid rgba(54, 197, 240, 0.14);
}
.biz-matrix .container { position: relative; z-index: 2; }
.biz-matrix .section-head { position: relative; z-index: 2; }
/* 入口卡保持全站一致的白色卡片语言，仅加强悬浮与序号细节 */
.biz-matrix .entry-grid { gap: 22px; }
.biz-matrix .entry-card .ec-no { color: var(--brand-deep); }

/* =========================================================
   同橙GEO · 什么是 GEO（居中版式，无示意图）
   ========================================================= */
.geo-define .section-head { text-align: center; margin-inline: auto; }
.geo-define .section-head .eyebrow { justify-content: center; }
.geo-define .geo-define-lead {
  max-width: 860px; margin: 0 auto;
  font-size: 17px; line-height: 1.85; color: var(--ink-2);
  text-align: center;
}
.geo-pillars { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; margin-top: 44px; }
.geo-pillar {
  display: grid; grid-template-columns: 48px 1fr; gap: 16px; align-items: start;
  padding: 26px 24px; border-radius: var(--radius-l);
  background: #fff; border: 0; box-shadow: var(--shadow-l);
  transition: transform 0.25s var(--ease), box-shadow 0.25s var(--ease);
}
.geo-pillar:hover { transform: translateY(-6px); box-shadow: 0 22px 48px rgba(22, 27, 40, 0.14); }
.geo-pillar .gp-ico { width: 48px; height: 48px; border-radius: 13px; display: grid; place-items: center; color: #fff; box-shadow: 0 8px 18px rgba(22, 27, 40, 0.16); }
.geo-pillar:nth-child(1) .gp-ico { background: linear-gradient(135deg, #ffb367, #ff8500); }
.geo-pillar:nth-child(2) .gp-ico { background: linear-gradient(135deg, #22d3ee, #0891b2); }
.geo-pillar:nth-child(3) .gp-ico { background: linear-gradient(135deg, #a78bfa, #7c3aed); }
.geo-pillar h4 { font-size: 16.5px; margin: 0 0 6px; }
.geo-pillar p { font-size: 14px; color: var(--ink-2); margin: 0; line-height: 1.7; }
@media (max-width: 960px) { .geo-pillars { grid-template-columns: 1fr; max-width: 560px; margin-inline: auto; } }

/* =========================================================
   同橙GEO · 客户案例（丰富，无单边色条）
   ========================================================= */
.case-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
.case-card {
  position: relative; overflow: hidden;
  background: #fff; border: 1px solid var(--line-soft); border-radius: var(--radius-l);
  padding: 26px 26px 24px; box-shadow: var(--shadow-l);
}
.case-tag { display: inline-block; font-size: 12px; font-weight: 700; color: var(--brand-deep); background: var(--brand-tint); border-radius: 999px; padding: 4px 12px; margin-bottom: 12px; }
.case-card h3 { font-size: 19px; margin: 0 0 14px; }
.case-result { display: flex; align-items: baseline; gap: 10px; padding: 12px 14px; margin-bottom: 14px; border-radius: var(--radius-s); background: var(--brand-tint); }
.case-result .cr-num { font-size: 26px; font-weight: 800; color: var(--brand-deep); }
.case-result .cr-text { font-size: 13px; color: var(--ink-2); }
.case-card dl { display: grid; gap: 8px; margin: 0; }
.case-card dt { font-size: 12px; font-weight: 700; color: var(--ink-3); letter-spacing: 0.04em; }
.case-card dd { font-size: 14px; color: var(--ink-2); margin: 0; }
@media (max-width: 760px) { .case-grid { grid-template-columns: 1fr; } }

/* =========================================================
   技术底座 · 架构分层（竖向光轴 + 渐变节点）
   ========================================================= */
.layer-diagram { position: relative; display: grid; gap: 18px; padding-left: 6px; }
.layer-diagram::before {
  content: ""; position: absolute; left: 27px; top: 18px; bottom: 18px; width: 2px;
  background: linear-gradient(180deg, var(--brand), var(--tech-cyan, #36c5f0), var(--tech-violet, #7c3aed));
  opacity: 0.55;
}
@media (max-width: 640px) { .layer-diagram::before { left: 23px; } }

/* =========================================================
   同橙GEO · 五步方法（横向流程：渐变流程线 + 五色节点 + 交付/验收标签）
   ========================================================= */
.steps-flow {
  position: relative;
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 18px;
  counter-reset: step;
  padding-top: 6px;
}
/* 贯穿五个节点的渐变流程线（静态） */
.steps-flow::before {
  content: "";
  position: absolute;
  top: 34px; left: calc(10% + 42px); right: calc(10% + 42px);
  height: 2px; border-radius: 2px;
  background: linear-gradient(90deg, var(--brand), var(--tech-cyan, #36c5f0), var(--tech-violet, #7c3aed));
  opacity: 0.35;
}
.steps-flow .flow-step { position: relative; display: flex; flex-direction: column; align-items: center; text-align: center; }
.steps-flow .fs-node {
  position: relative; z-index: 1;
  width: 56px; height: 56px;
  display: grid; place-items: center;
  border-radius: 50%;
  font-size: 17px; font-weight: 800; color: #fff;
  background: var(--accent, var(--brand-grad));
  box-shadow: 0 0 0 7px var(--bg), 0 10px 22px rgba(22, 27, 40, 0.20);
  margin-bottom: 18px;
  font-variant-numeric: tabular-nums;
}
/* 五节点五色渐变（与全站六色光谱一致） */
.steps-flow .flow-step:nth-child(1) { --accent: var(--c1-grad); }
.steps-flow .flow-step:nth-child(2) { --accent: var(--c2-grad); }
.steps-flow .flow-step:nth-child(3) { --accent: var(--c3-grad); }
.steps-flow .flow-step:nth-child(4) { --accent: var(--c4-grad); }
.steps-flow .flow-step:nth-child(5) { --accent: var(--c5-grad); }
.steps-flow .fs-card {
  width: 100%;
  background: #fff;
  border: 1px solid var(--line-soft);
  border-radius: var(--radius-l);
  padding: 22px 18px 20px;
  box-shadow: var(--shadow-l);
  display: flex; flex-direction: column; align-items: center; gap: 10px;
  flex: 1 1 auto;
  transition: transform 0.28s var(--ease), box-shadow 0.28s var(--ease), border-color 0.28s var(--ease);
}
.steps-flow .flow-step:hover .fs-card {
  transform: translateY(-8px);
  border-color: var(--brand-tint-2);
  box-shadow: 0 24px 52px rgba(22, 27, 40, 0.14);
}
.steps-flow .fs-card h3 { font-size: 17px; margin: 0; }
.steps-flow .fs-card > p { font-size: 13.5px; color: var(--ink-2); line-height: 1.7; margin: 0; }
.steps-flow .fs-meta { margin-top: auto; display: grid; gap: 6px; width: 100%; padding-top: 6px; }
.steps-flow .fs-chip {
  display: flex; align-items: baseline; justify-content: center; gap: 6px;
  font-size: 12px; color: var(--ink-2); line-height: 1.5;
  background: var(--bg-soft);
  border-radius: 8px;
  padding: 5px 10px;
}
.steps-flow .fs-chip b {
  flex: none;
  font-size: 11px; font-weight: 700;
  color: var(--brand-deep);
  background: var(--brand-tint);
  border-radius: 5px;
  padding: 1px 6px;
  letter-spacing: 0.04em;
}
@media (max-width: 1080px) {
  .steps-flow { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px 18px; padding-top: 0; }
  .steps-flow::before { display: none; }
  /* 折叠为网格时隐藏第 5 项的悬空感：改为通栏 */
  .steps-flow .flow-step:last-child { grid-column: 1 / -1; max-width: calc(50% - 9px); margin-inline: auto; width: 100%; }
}
@media (max-width: 760px) {
  .steps-flow { grid-template-columns: 1fr; }
  .steps-flow .flow-step:last-child { max-width: none; }
  .steps-flow .fs-card { flex-direction: row; flex-wrap: wrap; text-align: left; align-items: flex-start; }
  .steps-flow .fs-card h3 { flex: 1 1 100%; text-align: center; }
  .steps-flow .fs-meta { width: 100%; }
}

/* =========================================================
   v3 · 摘星参照设计语言（参照 zhaixing.cn）
   深空科技 Hero + 六格玻璃信息条 + 居中箭头模块标题 + 内页深色横幅
   映射：参考站紫蓝 → 同橙夜蓝底 + 品牌橙金光效；纯静态，无动画
   ========================================================= */

/* ---------- 1. 首页 Hero：深空科技风 ---------- */
.hero {
  color: #fff;
  background:
    radial-gradient(2px 2px at 9% 28%, rgba(255,255,255,.5), transparent 100%),
    radial-gradient(1.6px 1.6px at 22% 74%, rgba(255,255,255,.4), transparent 100%),
    radial-gradient(1.8px 1.8px at 38% 18%, rgba(255,255,255,.42), transparent 100%),
    radial-gradient(1.5px 1.5px at 56% 66%, rgba(255,255,255,.35), transparent 100%),
    radial-gradient(2px 2px at 72% 30%, rgba(255,255,255,.45), transparent 100%),
    radial-gradient(1.6px 1.6px at 88% 60%, rgba(255,255,255,.4), transparent 100%),
    radial-gradient(52% 68% at 84% 14%, rgba(255,133,0,.30), transparent 68%),
    radial-gradient(46% 60% at 94% 90%, rgba(124,58,237,.26), transparent 68%),
    radial-gradient(40% 55% at 4% 86%, rgba(54,197,240,.14), transparent 68%),
    linear-gradient(135deg, #0a1230 0%, #12204c 46%, #241a48 100%);
}
.hero .eyebrow { color: rgba(255,255,255,.85); }
.hero .eyebrow .dot { background: var(--brand); }
.hero-copy h1, .hero-copy h2.hero-title { color: #fff; }
.hero .hl {
  background: linear-gradient(100deg, #ffc98c 0%, #ff9d2e 100%);
  -webkit-background-clip: text; background-clip: text; color: transparent;
}
.hero .hero-sub { color: rgba(255,255,255,.74); }
.hero .hero-note { color: rgba(255,255,255,.52); }
.hero .btn-ghost {
  border: 1px solid rgba(255,255,255,.38); color: #fff;
  background: rgba(255,255,255,.08);
  -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
}
.hero .btn-ghost:hover { border-color: rgba(255,255,255,.75); background: rgba(255,255,255,.16); }

/* 深色下的玻璃卡（AI 回答示意 / 产品卡） */
.hero .proof-card, .hero .proj-card {
  background: rgba(255,255,255,.07);
  border-color: rgba(255,255,255,.16);
  box-shadow: 0 30px 70px rgba(0,0,0,.45), inset 0 1px 0 rgba(255,255,255,.12);
}
.hero .proof-head { background: rgba(255,255,255,.05); border-bottom-color: rgba(255,255,255,.12); }
.hero .proof-title { color: rgba(255,255,255,.6); }
.hero .proof-q { color: #fff; }
.hero .proof-a > p, .hero .proof-a li { color: rgba(255,255,255,.75); }
.hero .proof-src { color: rgba(255,255,255,.55); border-top-color: rgba(255,255,255,.18); }
.hero .proof-src em { background: rgba(255,138,61,.22); color: #ffc07a; }
.hero .mention { background: rgba(255,138,61,.26); color: #ffc07a; }
.hero .hero-proof-cap { color: rgba(255,255,255,.5); }
.hero .proj-head strong { color: #fff; }
.hero .proj-head span { color: rgba(255,255,255,.6); }
.hero .proj-list li { color: rgba(255,255,255,.78); }
.hero .proj-foot {
  background: rgba(255,138,61,.16);
  color: #ffc07a;
  border: 1px solid rgba(255,138,61,.3);
}
.hero .engine-strip .es-label { color: rgba(255,255,255,.6); }
.hero .engine-strip li:not(.es-label) {
  background: rgba(255,255,255,.08);
  border-color: rgba(255,255,255,.18);
  color: rgba(255,255,255,.8);
}
.hero .engine-strip li:not(.es-label):hover {
  border-color: rgba(255,176,102,.65); color: #ffc07a;
  background: rgba(255,255,255,.12); box-shadow: none;
}
.hero .hero-arrow {
  border-color: rgba(255,255,255,.3); color: rgba(255,255,255,.85);
  background: rgba(255,255,255,.06);
  -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
}
.hero .hero-arrow:hover { border-color: var(--brand); color: #ffc07a; }

/* ---------- 2. Hero 六格信息条（轮播导航，替代圆点） ---------- */
/* 关键修复：.hero 为 flex 容器，轮播盒作为 flex 项需允许收缩，否则小屏被内容撑破 */
.hero-carousel { width: 100%; min-width: 0; }
.hero-strip {
  display: grid; grid-template-columns: repeat(6, 1fr); gap: 14px;
  width: min(var(--container), calc(100% - 48px));
  margin: 26px auto 0; position: relative; z-index: 2;
}
.hero-strip .hero-dot {
  width: auto; height: auto; border-radius: 16px;
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.16);
  padding: 13px 16px; text-align: left; cursor: pointer;
  display: flex; flex-direction: column; gap: 5px;
  -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
  transition: background 0.25s var(--ease), border-color 0.25s var(--ease), transform 0.25s var(--ease), box-shadow 0.25s var(--ease);
}
.hero-strip .hero-dot:hover { transform: translateY(-3px); border-color: rgba(255,255,255,.42); }
.hero-strip .hero-dot { min-width: 0; }
.hero-strip .strip-t { font-size: 14.5px; font-weight: 700; color: #fff; }
.hero-strip .strip-d { font-size: 12px; line-height: 1.55; color: rgba(255,255,255,.62); }
.hero-strip .hero-dot.is-active {
  background: linear-gradient(135deg, rgba(255,142,54,.95), rgba(255,104,50,.95));
  border-color: rgba(255,255,255,.28);
  box-shadow: 0 14px 34px rgba(255,133,0,.38);
}
.hero-strip .hero-dot.is-active .strip-d { color: rgba(255,255,255,.88); }
@media (max-width: 1080px) { .hero-strip { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 700px) { .hero-strip { grid-template-columns: repeat(2, 1fr); gap: 10px; } .hero-strip .strip-t { font-size: 13px; } }

/* ---------- 3. 模块标题：居中 + ‹ › 箭头装饰（全站统一） ---------- */
.section-head { text-align: center; margin-inline: auto; }
.section-head .eyebrow { justify-content: center; }
.section-head h2 {
  margin-inline: auto;
  display: flex; align-items: center; justify-content: center; gap: 16px; flex-wrap: wrap;
}
.section-head h2::before,
.section-head h2::after {
  content: ""; flex: none; width: 10px; height: 10px;
  border-top: 3px solid var(--brand); border-right: 3px solid var(--brand);
  opacity: 0.9;
}
.section-head h2::before { transform: rotate(-135deg); }
.section-head h2::after { transform: rotate(45deg); }
/* 分栏（左文右块）语境下保持左对齐、去掉箭头 */
.split .section-head { text-align: left; margin-inline: 0; }
.split .section-head .eyebrow { justify-content: flex-start; }
.split .section-head h2 { margin-inline: 0; justify-content: flex-start; }
.split .section-head h2::before, .split .section-head h2::after { display: none; }

/* ---------- 4. 内页 Hero：深空横幅（全站生效） ---------- */
.page-hero {
  color: #fff; text-align: center;
  background:
    radial-gradient(2px 2px at 12% 30%, rgba(255,255,255,.45), transparent 100%),
    radial-gradient(1.6px 1.6px at 30% 70%, rgba(255,255,255,.35), transparent 100%),
    radial-gradient(1.8px 1.8px at 62% 24%, rgba(255,255,255,.4), transparent 100%),
    radial-gradient(1.5px 1.5px at 84% 62%, rgba(255,255,255,.4), transparent 100%),
    radial-gradient(56% 78% at 88% 10%, rgba(255,133,0,.28), transparent 68%),
    radial-gradient(48% 66% at 8% 96%, rgba(124,58,237,.22), transparent 68%),
    linear-gradient(140deg, #0a1230 0%, #12204c 48%, #241a48 100%);
}
.page-hero h1 { color: #fff; margin-inline: auto; }
.page-hero .lead { color: rgba(255,255,255,.74); margin-inline: auto; }
.page-hero .eyebrow { color: rgba(255,255,255,.85); justify-content: center; }
.page-hero .hero-cta { justify-content: center; }
.page-hero .btn-ghost {
  border: 1px solid rgba(255,255,255,.38); color: #fff;
  background: rgba(255,255,255,.08);
}
.page-hero .btn-ghost:hover { border-color: rgba(255,255,255,.75); background: rgba(255,255,255,.16); }
.page-hero .eyebrow .dot { background: var(--brand); }

/* ---------- 5. CTA 波段：浅色三色渐变（参照站底部 CTA） ---------- */
.cta-band {
  background: linear-gradient(115deg, #fff4ea 0%, #f5f0ff 52%, #edf6ff 100%);
}

/* =========================================================
   v8 · 纯白主题（参照 zhaixing.cn 的中文官网版式语言）
   硬规则：
   1) 底色 = 纯白，分区只用中性浅灰，不再有任何暖橙渐变铺底；
   2) 全站唯一强调色 #FF8500，绝不出现比它更深的橙/棕/土色；
   3) 文字层级用中性墨色，橙色只做「点睛」（图标/标签/线条/按钮）；
   4) 静态：无 animation、无渐变字、无卡片单边色条。
   ========================================================= */

/* ---------- 1. 设计令牌 ---------- */
:root {
  /* 品牌橙（唯一强调色，任何地方都不得加深） */
  --brand: #FF8500;
  --brand-hover: #FF9320;            /* hover：更亮的橙 */
  --brand-strong: #FF8500;
  --brand-deep: #FF8500;             /* 文字级橙 = 品牌色本身 */
  --brand-grad: linear-gradient(135deg, #FFA845 0%, #FF8500 100%);
  --brand-tint: #FFF5EC;             /* 淡橙底 */
  --brand-tint-2: #FFE6CE;           /* 橙描边 / 浅块 */
  --brand-line: rgba(255, 133, 0, 0.26);
  --brand-wash: rgba(255, 133, 0, 0.06);

  /* 中性墨阶（主视觉靠留白与墨色层级，不靠彩色） */
  --ink: #171A20;
  --ink-2: #464C58;
  --ink-3: #6E747F;
  --ink-4: #9BA1AC;

  --bg: #FFFFFF;
  --bg-soft: #F7F8FA;                /* 交替区块：中性浅灰 */
  --bg-soft-2: #F2F4F7;
  --line: #E8EBF0;
  --line-soft: #F0F2F5;

  /* 卡片：纯白 + 中性细描边 + 柔和阴影 */
  --card-glass: #FFFFFF;
  --card-line: #E9ECF1;
  --card-shadow: 0 1px 2px rgba(20, 26, 40, 0.04), 0 10px 28px rgba(20, 26, 40, 0.05);
  --card-shadow-hi: 0 2px 6px rgba(20, 26, 40, 0.05), 0 18px 42px rgba(20, 26, 40, 0.09);

  --shadow-s: 0 1px 2px rgba(20, 26, 40, 0.05);
  --shadow-m: 0 6px 18px rgba(20, 26, 40, 0.07);
  --shadow-l: 0 16px 40px rgba(20, 26, 40, 0.10);

  --glass-bg: rgba(255, 255, 255, 0.88);
  --glass-bg-strong: rgba(255, 255, 255, 0.96);
  --glass-border: rgba(20, 26, 40, 0.06);
  --glass-inset: inset 0 1px 0 rgba(255, 255, 255, 0.9);
  --glass-shadow: 0 10px 28px rgba(20, 26, 40, 0.06);

  --title-shade: none;
}

/* ---------- 2. 全站底色：纯白 ---------- */
body {
  color: var(--ink);
  background: #FFFFFF;
  background-attachment: scroll;
}
body::before { background: none; }

/* ---------- 3. 首页 Hero：白底 + 极淡橙光 ---------- */
.hero {
  color: var(--ink);
  background:
    radial-gradient(46% 52% at 86% 0%, rgba(107, 75, 245, 0.09), transparent 64%),
    radial-gradient(42% 48% at 62% 94%, rgba(37, 99, 235, 0.055), transparent 66%),
    radial-gradient(44% 50% at 2% 92%, rgba(255, 133, 0, 0.07), transparent 66%),
    #FFFFFF;
}
.hero .eyebrow { color: var(--brand); }
.hero .eyebrow .dot { background: var(--brand); }
.hero-copy h1, .hero-copy h2.hero-title { color: #12141A; text-shadow: none; }
.hero .hl {
  background: none; background-clip: border-box; -webkit-background-clip: border-box;
  color: var(--brand); -webkit-text-fill-color: var(--brand);
}
.hero .hero-sub { color: var(--ink-2); }
.hero .hero-note { color: var(--ink-3); }
.hero .btn-ghost { background: #fff; border: 1px solid var(--line); color: var(--ink); }
.hero .btn-ghost:hover { border-color: var(--brand); color: var(--brand); }

/* ---------- 4. 内页页头：白底 + 顶部淡橙光 ---------- */
.page-hero {
  color: var(--ink);
  text-align: center;
  background:
    radial-gradient(56% 76% at 50% -14%, rgba(255, 133, 0, 0.07), transparent 70%),
    #FFFFFF;
  border-bottom: 1px solid var(--line-soft);
}
.page-hero h1 { color: #12141A; text-shadow: none; margin-inline: auto; }
.page-hero .lead { color: var(--ink-2); margin-inline: auto; }
.page-hero .eyebrow { color: var(--brand); }
.page-hero .eyebrow .dot { background: var(--brand); }
.page-hero .btn-ghost { background: #fff; border: 1px solid var(--line); color: var(--ink); }
.page-hero .btn-ghost:hover { border-color: var(--brand); color: var(--brand); }

/* ---------- 5. Hero 内部：白素卡 ---------- */
.hero .proof-card,
.hero .proj-card {
  background: #FFFFFF;
  border: 1px solid var(--card-line);
  box-shadow: var(--card-shadow);
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}
.hero .proof-head { background: #FBFBFC; border-bottom: 1px solid var(--line-soft); }
.hero .proof-title { color: var(--ink-3); }
.hero .proof-q { color: #12141A; }
.hero .proof-a > p, .hero .proof-a li { color: var(--ink-2); }
.hero .proof-src { color: var(--ink-3); border-top: 1px solid var(--line-soft); }
.hero .proof-src em { background: var(--brand-tint); color: var(--brand); font-weight: 700; }
.hero .mention { background: var(--brand-tint); color: var(--brand); }
.hero .hero-proof-cap { color: var(--ink-3); }
.hero .proj-head { background: #FBFBFC; }
.hero .proj-head strong { color: #12141A; }
.hero .proj-head span { color: var(--ink-3); }
.hero .proj-list li { color: var(--ink-2); }
.hero .proj-item .pi-price { color: var(--brand); }
.hero .proj-foot { background: #FBFBFC; border-top: 1px solid var(--line-soft); color: var(--ink-3); }
.hero .engine-strip .es-label { color: var(--ink-3); }
.hero .engine-strip li:not(.es-label) {
  background: #fff; border: 1px solid var(--card-line); color: var(--ink-2);
}
.hero .engine-strip li:not(.es-label):hover {
  border-color: var(--brand); color: var(--brand); background: #fff; box-shadow: none;
}
.hero .hero-arrow {
  background: #fff; border: 1px solid var(--card-line); color: var(--ink-2);
  -webkit-backdrop-filter: none; backdrop-filter: none;
  box-shadow: var(--card-shadow);
}
.hero .hero-arrow:hover { border-color: var(--brand); color: var(--brand); }

.hero-strip .hero-dot {
  background: #fff;
  border: 1px solid var(--card-line);
  box-shadow: var(--card-shadow);
  -webkit-backdrop-filter: none; backdrop-filter: none;
}
.hero-strip .hero-dot:hover { transform: translateY(-3px); border-color: var(--brand-line); }
.hero-strip .strip-t { color: #12141A; }
.hero-strip .strip-d { color: var(--ink-3); }
.hero-strip .hero-dot.is-active {
  background: var(--brand-grad);
  border-color: var(--brand);
  box-shadow: 0 14px 30px rgba(255, 133, 0, 0.26);
}
.hero-strip .hero-dot.is-active .strip-t { color: #fff; }
.hero-strip .hero-dot.is-active .strip-d { color: rgba(255, 255, 255, 0.88); }

/* ---------- 6. 卡片：纯白 + 中性细边 ---------- */
.card, .tile, .entry-card, .matrix-card, .city-card, .price-card, .case-card,
.guide-card, .form-card, .geo-pillar, .fs-card, .tl-body, .product-card,
.feature-card, .industry-card, .chart-card, .quote-card, .proof-card, .proj-card,
.result-card, .contact-card, .layer, .group-card {
  background: var(--card-glass);
  border: 1px solid var(--card-line);
  box-shadow: var(--card-shadow);
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
  color: var(--ink);
}
.card:hover, .tile.is-link:hover, .entry-card:hover, .matrix-card:hover,
.city-card:hover, .price-card:hover, .case-card:hover, .guide-card:hover,
.geo-pillar:hover, .product-card:hover, .feature-card:hover, .industry-card:hover,
.quote-card:hover, .group-card:hover {
  border-color: rgba(255, 133, 0, 0.5);
  box-shadow: var(--card-shadow-hi);
}
.tile-tint, .bento .tile-tint {
  background: linear-gradient(160deg, #FFFBF7, #FFF5EC);
  border-color: rgba(255, 133, 0, 0.22);
  color: var(--ink);
}
.tile-mist, .bento .tile-mist { background: var(--bg-soft); }
.tile-stat .big { color: var(--brand); }
.tile-stat .cap { color: var(--ink-2); }
.card-icon {
  background: var(--brand-tint);
  color: var(--brand);
  border: 1px solid rgba(255, 133, 0, 0.20);
}
.entry-card .ec-no { color: var(--brand); }

/* ---------- 7. 标签 / 强调 ---------- */
.eyebrow { color: var(--brand); }
.eyebrow .dot { background: var(--brand); box-shadow: 0 0 0 3px rgba(255, 133, 0, 0.16); }
.grad-text { color: var(--brand); }
.tile-eyebrow, .case-tag { background: var(--brand-tint); color: var(--brand); }
.tile-go { color: var(--brand); }
.case-result,
.case-card .case-result { background: var(--brand-tint); }
.case-result .cr-num { color: var(--brand); }
.mention { background: var(--brand-tint); color: var(--brand); }
.note-inline { background: var(--bg-soft); border-color: var(--line-soft); color: var(--ink-2); }
.note-inline::before { color: var(--brand); }
.tick-list strong { color: #171A20; }
.tick-list li { color: var(--ink-2); }
.matrix-card .mc-role { color: var(--brand); }
.city-count { color: var(--brand); background: var(--brand-tint); }
.city-pin { color: var(--brand); }
.price-card .pc-tag { background: var(--brand); color: #fff; }
.stat-num { color: #12141A; text-shadow: none; }

/* ---------- 8. 区块标题：居中 + 橙色短下线（参照站装饰） ---------- */
.section-head h2 {
  display: block; position: relative; text-align: center;
  padding-bottom: 22px; margin-inline: auto;
  color: #12141A; text-shadow: none;
}
.section-head h2::before { display: none; }
.section-head h2::after {
  content: ""; position: absolute; left: 50%; bottom: 0;
  transform: translateX(-50%);
  width: 56px; height: 3px; border-radius: 3px;
  background: var(--brand-grad);
}
.section-head .section-lead { color: var(--ink-2); }
.section-soft { background: var(--bg-soft); }
.split .section-head h2 { padding-bottom: 18px; }
.split .section-head h2::after { left: 0; transform: none; }
.statement h2 { color: #12141A; }
.statement p { color: var(--ink-2); }

.biz-matrix {
  background:
    radial-gradient(46% 58% at 6% -8%, rgba(255, 133, 0, 0.05), transparent 62%),
    radial-gradient(40% 52% at 96% 12%, rgba(255, 133, 0, 0.035), transparent 62%);
}
.biz-ring { border-color: rgba(255, 133, 0, 0.14); box-shadow: none; }
.biz-ring::after { border-color: rgba(255, 133, 0, 0.10); }

/* 数据条 */
.stats {
  background: var(--bg-soft);
  border-top: 1px solid var(--line-soft);
  border-bottom: 1px solid var(--line-soft);
}
.stat-label { color: var(--ink-2); }
.stat + .stat::before { background: var(--line); }

/* CTA 波段：淡橙 */
.cta-band {
  background: linear-gradient(100deg, #FFFBF6 0%, #FFF6EE 52%, #FFFBF6 100%);
  border-top: 1px solid rgba(255, 133, 0, 0.14);
  border-bottom: 1px solid rgba(255, 133, 0, 0.14);
}
.cta-band::after { background: radial-gradient(circle, rgba(255, 133, 0, 0.07), transparent 66%); }

/* 分隔波浪 */
.wave svg path { fill: #FFFFFF; opacity: 1; }

/* ---------- 9. 表 / FAQ / 表单 ---------- */
.compare table caption,
.compare-note { background: var(--bg-soft); }
.compare th, .compare td { border-bottom-color: var(--line-soft); }
.compare .th-brand { color: var(--brand); }
.compare .td-brand { background: rgba(255, 133, 0, 0.045); }
.faq-item { border-bottom-color: var(--line-soft); }
.faq-item summary { color: var(--ink); }
.faq-item:hover summary { color: var(--brand); }
.faq-item p { color: var(--ink-2); }
.faq-icon { border-color: var(--line); }
.faq-icon::before, .faq-icon::after { background: var(--ink-3); }
.faq-item[open] .faq-icon { background: var(--brand-tint); border-color: var(--brand); }
.faq-item[open] .faq-icon::before,
.faq-item[open] .faq-icon::after { background: var(--brand); }
input, select, textarea,
.form-grid input, .form-grid select, .form-grid textarea,
.form-row input, .form-row select, .form-row textarea {
  background: #fff;
  border: 1px solid var(--line);
  color: var(--ink);
}
input:focus, select:focus, textarea:focus { border-color: var(--brand); }
input::placeholder, textarea::placeholder { color: rgba(23, 26, 32, 0.32); }
.form-grid label, .fgl-grid label, .form-row label { color: var(--ink-2); }
.fgl-grid a { background: var(--bg-soft); border-color: var(--line-soft); color: var(--ink-2); }
.fgl-grid a:hover { color: var(--brand); border-color: rgba(255, 133, 0, 0.5); }
.form-error, .form-row.invalid select { color: #E5484D; border-color: #E5484D; }

/* ---------- 10. 时间线 / 五步 ---------- */
.timeline-center .tl-node {
  color: #171A20;
  box-shadow: 0 0 0 7px #FFFFFF, 0 8px 20px rgba(20, 26, 40, 0.10);
}
.steps-flow .fs-node { color: #171A20; box-shadow: 0 0 0 7px #FFFFFF, 0 10px 22px rgba(20, 26, 40, 0.10); }
.timeline-center .tl-body::after { background: rgba(20, 26, 40, 0.14); }
.tl-year { background: var(--brand-tint); color: var(--brand); }
.tl-tag { background: var(--bg-soft); color: var(--ink-3); }
.layer-diagram::before,
.timeline::before { background: var(--brand-grad); opacity: 0.6; }
.steps-flow::before { background: var(--brand-grad); opacity: 0.45; }
.steps-flow .fs-chip { background: var(--bg-soft); color: var(--ink-2); }
.steps-flow .fs-chip b { color: var(--brand); background: var(--brand-tint); }
.steps-flow .flow-step:hover .fs-card { border-color: rgba(255, 133, 0, 0.5); }

/* 浏览器 mock */
.sys-bar { background: var(--bg-soft); border-bottom: 1px solid var(--line-soft); }
.sys-url { background: #fff; color: var(--ink-3); border: 1px solid var(--line-soft); }

/* ---------- 11. 页脚 ---------- */
.site-footer {
  background: var(--bg-soft);
  border-top: 1px solid var(--line-soft);
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}
.site-footer h4 { color: #12141A; }
.site-footer p, .site-footer li { color: var(--ink-3); }
.site-footer a { color: var(--ink-2); }
.site-footer a:hover { color: var(--brand); }
.footer-group-links a { background: #fff; border-color: var(--line); color: var(--ink-2); }
.footer-group-links a:hover { color: var(--brand); border-color: rgba(255, 133, 0, 0.5); }

/* ---------- 12. 顶栏：常驻白底实色（参照站） ---------- */
.site-header {
  background: #FFFFFF;
  border-bottom: 1px solid var(--line-soft);
  box-shadow: none;
}
.site-header::before { display: none; }
.site-header.scrolled { background: #FFFFFF; box-shadow: 0 6px 20px rgba(20, 26, 40, 0.06); }
.site-header .brand-name,
.site-header .brand-name i { color: #12141A; }
.site-header .brand-sub { color: var(--ink-3); }
.site-header .main-nav a { color: var(--ink-2); }
.site-header .main-nav a:hover { color: var(--brand); }
.site-header .main-nav a[aria-current="page"] { color: var(--brand); }
.nav-toggle { background: #fff; border: 1px solid var(--line); color: var(--ink); }
@media (max-width: 860px) {
  .main-nav { background: #FFFFFF; border-bottom: 1px solid var(--line-soft); box-shadow: var(--shadow-m); }
  .site-header .main-nav a { color: var(--ink); }
  .site-header .main-nav a:last-child { border-bottom: 0; }
}

/* ---------- 13. 按钮 ---------- */
.btn-primary,
.cta-band .btn-primary {
  background: var(--brand);
  color: #fff;
  border: 1px solid var(--brand);
  box-shadow: 0 8px 20px rgba(255, 133, 0, 0.24);
}
.btn-primary:hover,
.cta-band .btn-primary:hover {
  background: var(--brand-hover);
  color: #fff;
  border-color: var(--brand-hover);
  box-shadow: 0 12px 26px rgba(255, 133, 0, 0.28);
}
.btn-brand,
.site-header .btn-brand {
  background: var(--brand);
  color: #fff;
  border: 1px solid var(--brand);
  box-shadow: 0 6px 16px rgba(255, 133, 0, 0.22);
}
.btn-brand:hover,
.site-header .btn-brand:hover {
  background: var(--brand-hover);
  color: #fff;
  border-color: var(--brand-hover);
}
.btn-ghost { background: #fff; color: var(--ink); border: 1px solid var(--line); box-shadow: none; }
.btn-ghost:hover {
  background: #fff; color: var(--brand); border-color: var(--brand);
  box-shadow: 0 8px 18px rgba(20, 26, 40, 0.06);
}

/* ---------- 14. 高优先级组件覆盖 ---------- */
.timeline-center .tl-body,
.steps-flow .fs-card,
.geo-define .geo-pillar,
.results-grid .chart-card {
  background: var(--card-glass);
  border: 1px solid var(--card-line);
  box-shadow: var(--card-shadow);
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
  color: var(--ink);
}
.compare,
.sys-shot,
.step {
  background: var(--card-glass);
  border: 1px solid var(--card-line);
  box-shadow: var(--card-shadow);
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
  color: var(--ink);
}
.compare thead th { color: var(--ink-3); }
.compare tbody th { color: var(--ink); }
.sys-shot { box-shadow: 0 18px 44px rgba(20, 26, 40, 0.10); }
.geo-pillar:nth-child(1) .gp-ico { background: linear-gradient(135deg, #FFC182, #FF9726); }
.geo-pillar:nth-child(2) .gp-ico { background: linear-gradient(135deg, #FFCE9C, #FFA845); }
.geo-pillar:nth-child(3) .gp-ico { background: linear-gradient(135deg, #FF9F3A, #FF8500); }
.geo-pillar .gp-ico { color: #171A20; }

/* ---------- 15. 唯一橙的明度阶梯（全部 ≥ #FF8500 的明度） ---------- */
:root {
  --c1: #FF8500; --c1-soft: rgba(255, 133, 0, 0.22);   --c1-ink: #FF8500; --c1-grad: linear-gradient(135deg, #FFB367, #FF8500);
  --c2: #FF9726; --c2-soft: rgba(255, 151, 38, 0.22);  --c2-ink: #FF8500; --c2-grad: linear-gradient(135deg, #FFC482, #FF9726);
  --c3: #FFA845; --c3-soft: rgba(255, 168, 69, 0.22);  --c3-ink: #FF8500; --c3-grad: linear-gradient(135deg, #FFD09B, #FFA845);
  --c4: #FFB463; --c4-soft: rgba(255, 180, 99, 0.22);  --c4-ink: #FF8500; --c4-grad: linear-gradient(135deg, #FFDAB2, #FFB463);
  --c5: #FFC07F; --c5-soft: rgba(255, 192, 127, 0.22); --c5-ink: #FF8500; --c5-grad: linear-gradient(135deg, #FFE2C6, #FFC07F);
  --c6: #FFCB99; --c6-soft: rgba(255, 203, 153, 0.22); --c6-ink: #FF8500; --c6-grad: linear-gradient(135deg, #FFEADB, #FFCB99);
  --tech-cyan: #FF9726;
  --tech-blue: #FFB463;
  --tech-violet: #FFCB99;
  --tech-aurora-1: rgba(255, 133, 0, 0.18);
  --tech-aurora-2: rgba(255, 168, 69, 0.16);
  --tech-aurora-3: rgba(255, 196, 127, 0.14);
}

/* =========================================================
   v8.1 · 圆角收紧（科技感）+ 首页轮播指示器去框线 + 数据条移除
   ---------------------------------------------------------
   1) 全站卡片圆角由 16/26px 收敛到 8px 级；标签/胶囊 → 4px；按钮 → 6px
   2) 首页轮播六格：非 active 无边框、无阴影、透明底，格间以竖线分隔
   3) 首页数据条（.stats）已在 index.html 中移除
   ========================================================= */

/* ---------- 1. 圆角令牌：整体收紧 ---------- */
:root {
  --radius-s: 4px;
  --radius-m: 6px;
  --radius-l: 8px;
  --radius-xl: 10px;
}

/* ---------- 2. 卡片统一 8px 小圆角 ---------- */
.card, .tile, .entry-card, .matrix-card, .city-card, .price-card, .case-card,
.guide-card, .form-card, .geo-pillar, .fs-card, .tl-body, .product-card,
.feature-card, .industry-card, .chart-card, .quote-card, .proof-card, .proj-card,
.result-card, .contact-card, .layer, .group-card,
.compare, .sys-shot, .step, .note-inline, .tile-tint, .tile-mist, .tile-banner {
  border-radius: 8px;
}

/* 卡片内的图标块 / 小容器 */
.tile-ico { border-radius: 8px; }
.tile-lg .tile-ico { border-radius: 10px; }
.card-icon { border-radius: 8px; }
.geo-pillar .gp-ico { border-radius: 8px; }
.guide-card .gc-ico { border-radius: 8px; }
.layer .layer-node { border-radius: 8px; }
.city-pin { border-radius: 6px; }
.sys-url { border-radius: 4px; }
.case-result { border-radius: 6px; }
.fgl-grid a { border-radius: 6px; }
.note-inline { border-radius: 6px; }

/* 标签 / 徽标：胶囊 → 极小圆角 */
.tile-eyebrow, .case-tag, .pc-tag, .tl-year, .city-count, .ec-no,
.hero .proof-src em, .mention, .tl-tag, .fs-chip { border-radius: 4px; }
.fs-chip b { border-radius: 3px; }

/* 按钮：胶囊 → 6px 小圆角 */
.btn,
.site-header .btn-brand,
.hero-arrow { border-radius: 6px; }

/* ---------- 3. 首页轮播指示器：无边框 / 无阴影 / 竖线分隔 ---------- */
.hero-strip { gap: 0; }
.hero-strip .hero-dot {
  position: relative;
  background: transparent;
  border: 0;
  box-shadow: none;
  border-radius: 8px;
  padding: 14px 18px;
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}
.hero-strip .hero-dot:hover {
  transform: none;
  background: var(--bg-soft);
  border: 0;
  box-shadow: none;
}
/* 格间竖线 */
.hero-strip .hero-dot + .hero-dot::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 1px;
  height: 62%;
  background: var(--line);
}
/* active：保持橙色实心卡片，左右竖线隐藏 */
.hero-strip .hero-dot.is-active {
  background: var(--brand-grad);
  border: 0;
  border-radius: 8px;
  box-shadow: 0 14px 30px rgba(255, 133, 0, 0.26);
  z-index: 1;
}
.hero-strip .hero-dot.is-active:hover { background: var(--brand-grad); }
.hero-strip .hero-dot.is-active::before,
.hero-strip .hero-dot.is-active + .hero-dot::before { display: none; }

/* 轮播指示器：窄屏折行时按行首断线，避免行首出现悬空竖线 */
@media (max-width: 1080px) {
  .hero-strip { row-gap: 4px; }
  .hero-strip .hero-dot:nth-child(3n + 1):not(.is-active)::before { display: none; }
}
@media (max-width: 700px) {
  .hero-strip .hero-dot { padding: 12px 14px; }
  .hero-strip .hero-dot:nth-child(3n + 1):not(.is-active)::before { display: block; }
  .hero-strip .hero-dot:nth-child(2n + 1):not(.is-active)::before { display: none; }
}

/* =========================================================
   v9 · 首页重构（云厂商官网信息架构）
   产品网格 / 解决方案场景 / 四层架构 / 五步流程 / 案例 / 洞察
   约束：纯白底、唯一橙 #FF8500、8px 小圆角、无动画、无单边色条
   ========================================================= */

/* ---------- 1. 产品与服务 ---------- */
.prod-group { margin-top: clamp(36px, 3.6vw, 56px); }
.prod-group:first-of-type { margin-top: 0; }
.prod-group-head {
  display: flex;
  align-items: baseline;
  gap: 14px;
  flex-wrap: wrap;
  padding-bottom: 14px;
  margin-bottom: 22px;
  border-bottom: 1px solid var(--line-soft);
}
.prod-group-head h3 { font-size: 17px; font-weight: 800; color: #12141A; margin: 0; }
.prod-group-head p { font-size: 13.5px; color: var(--ink-3); margin: 0; }

.prod-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}
.prod-card {
  display: flex;
  flex-direction: column;
  gap: 10px;
  background: #fff;
  border: 1px solid var(--card-line);
  border-radius: 8px;
  padding: 24px;
  color: var(--ink);
  text-decoration: none;
  transition: border-color .2s var(--ease), box-shadow .2s var(--ease), transform .2s var(--ease);
}
a.prod-card:hover {
  border-color: rgba(255, 133, 0, .55);
  box-shadow: 0 10px 26px rgba(255, 133, 0, .10);
  transform: translateY(-2px);
}
.prod-ico {
  width: 40px; height: 40px;
  display: grid; place-items: center;
  border-radius: 8px;
  background: var(--brand-tint);
  border: 1px solid rgba(255, 133, 0, .18);
  color: var(--brand);
  flex: none;
}
.prod-ico svg { width: 22px; height: 22px; }
.prod-card h4 {
  display: flex; align-items: center; gap: 8px;
  font-size: 17px; font-weight: 800; color: #12141A; margin: 2px 0 0;
}
.prod-badge {
  font-size: 11px; font-weight: 700; letter-spacing: .04em;
  color: var(--brand); background: var(--brand-tint);
  border-radius: 4px; padding: 2px 6px;
}
.prod-card > p {
  font-size: 14px; line-height: 1.72; color: var(--ink-2); margin: 0;
  flex: 1 1 auto;
}
.prod-meta {
  font-size: 12px; line-height: 1.6; color: var(--ink-3);
  padding-top: 12px; border-top: 1px solid var(--line-soft);
}
.prod-go {
  font-size: 13px; font-weight: 700; color: var(--brand);
  display: inline-flex; align-items: center; gap: 5px;
}
.prod-go::after { content: "→"; }
a.prod-card:hover .prod-go::after { transform: translateX(3px); }
.prod-go::after { transition: transform .2s var(--ease); }
.prod-card.is-cta { background: linear-gradient(160deg, #FFFBF6, #FFF5EC); border-color: rgba(255,133,0,.22); }
.prod-btn { margin-top: 4px; align-self: flex-start; }
@media (max-width: 1080px) { .prod-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 700px) { .prod-grid { grid-template-columns: 1fr; } .prod-card { padding: 20px; } }

/* ---------- 2. 解决方案 ---------- */
.sol-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}
.sol-card {
  display: flex;
  flex-direction: column;
  gap: 10px;
  background: #fff;
  border: 1px solid var(--card-line);
  border-radius: 8px;
  padding: 28px;
  transition: border-color .2s var(--ease), box-shadow .2s var(--ease);
}
.sol-card:hover { border-color: rgba(255,133,0,.5); box-shadow: 0 12px 30px rgba(20,26,40,.07); }
.sol-for {
  font-size: 12px; font-weight: 700; letter-spacing: .06em;
  color: var(--brand); margin: 0;
}
.sol-card h3 { font-size: 20px; font-weight: 800; color: #12141A; margin: 0; line-height: 1.35; }
.sol-desc { font-size: 14px; line-height: 1.72; color: var(--ink-2); margin: 0; }
.sol-list {
  display: grid; gap: 8px;
  margin: 6px 0 0; padding: 14px 0 0;
  border-top: 1px solid var(--line-soft);
}
.sol-list dt { font-size: 11.5px; font-weight: 700; color: var(--ink-3); letter-spacing: .04em; }
.sol-list dd { font-size: 13.5px; color: var(--ink); margin: 0 0 4px; line-height: 1.6; }
.sol-go {
  margin-top: auto; padding-top: 14px;
  font-size: 13px; font-weight: 700; color: var(--brand);
  display: inline-flex; align-items: center; gap: 5px;
}
.sol-go::after { content: "→"; }
@media (max-width: 980px) { .sol-grid { grid-template-columns: 1fr; } }

/* ---------- 3. 平台架构 ---------- */
.arch-grid {
  display: grid;
  grid-template-columns: 1.05fr .95fr;
  gap: clamp(24px, 3.4vw, 52px);
  align-items: start;
}
.arch-stack { display: grid; gap: 8px; }
.arch-layer {
  display: flex; align-items: center; gap: 16px;
  padding: 20px 22px;
  background: #fff;
  border: 1px solid var(--card-line);
  border-radius: 8px;
}
.arch-layer:first-child {
  background: linear-gradient(160deg, #FFFBF6, #FFF5EC);
  border-color: rgba(255,133,0,.24);
}
.arch-no {
  font-size: 11.5px; font-weight: 800; letter-spacing: .06em;
  color: var(--ink-4); flex: none;
  width: 26px;
}
.arch-layer:first-child .arch-no { color: var(--brand); }
.arch-layer strong { display: block; font-size: 15.5px; font-weight: 800; color: #12141A; }
.arch-layer span:not(.arch-no) { display: block; font-size: 13px; color: var(--ink-3); margin-top: 3px; line-height: 1.6; }
.arch-notes { display: grid; gap: 12px; }
.arch-note { padding: 18px 20px; background: var(--bg-soft); border-radius: 8px; border: 1px solid var(--line-soft); }
.arch-note h4 { font-size: 14.5px; font-weight: 800; color: #12141A; margin: 0 0 5px; }
.arch-note p { font-size: 13px; line-height: 1.7; color: var(--ink-2); margin: 0; }
@media (max-width: 900px) { .arch-grid { grid-template-columns: 1fr; } }

/* ---------- 4. 五步流程（横向轻量） ---------- */
.flow-h {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 0;
  list-style: none;
  margin: 0; padding: 0;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.flow-h > li {
  position: relative;
  padding: 26px 22px 24px;
  display: flex; flex-direction: column; gap: 6px;
}
.flow-h > li + li::before {
  content: ""; position: absolute; left: 0; top: 22px; bottom: 22px;
  width: 1px; background: var(--line);
}
.fh-no {
  font-size: 12px; font-weight: 800; letter-spacing: .08em;
  color: var(--brand);
}
.flow-h h4 { font-size: 16px; font-weight: 800; color: #12141A; margin: 0; }
.flow-h p { font-size: 13px; line-height: 1.7; color: var(--ink-2); margin: 0; flex: 1 1 auto; }
.fh-out {
  font-size: 12px; color: var(--ink-3);
  padding-top: 8px;
  border-top: 1px dashed var(--line);
}
.flow-note {
  margin: 22px 0 0; font-size: 13.5px; color: var(--ink-3); text-align: center;
}
.flow-note a { color: var(--brand); font-weight: 700; }
.flow-note a:hover { text-decoration: underline; }
@media (max-width: 980px) {
  .flow-h { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .flow-h > li + li::before { display: none; }
  .flow-h > li { border-top: 1px solid var(--line-soft); }
  .flow-h > li:nth-child(1), .flow-h > li:nth-child(2) { border-top: 0; }
}
@media (max-width: 640px) {
  .flow-h { grid-template-columns: 1fr; }
  .flow-h > li { border-top: 1px solid var(--line-soft); }
  .flow-h > li:first-child { border-top: 0; }
}

/* ---------- 5. 案例三列 ---------- */
.case-grid.is-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 1080px) { .case-grid.is-3 { grid-template-columns: 1fr; } }

/* ---------- 6. 资源与洞察 ---------- */
.news-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}
.news-item {
  display: flex; flex-direction: column; gap: 8px;
  background: #fff;
  border: 1px solid var(--card-line);
  border-radius: 8px;
  padding: 24px;
  text-decoration: none;
  transition: border-color .2s var(--ease), box-shadow .2s var(--ease);
}
.news-item:hover { border-color: rgba(255,133,0,.5); box-shadow: 0 10px 26px rgba(20,26,40,.06); }
.news-cat {
  align-self: flex-start;
  font-size: 11.5px; font-weight: 700; letter-spacing: .04em;
  color: var(--brand); background: var(--brand-tint);
  border-radius: 4px; padding: 3px 8px;
}
.news-item h3 { font-size: 16.5px; font-weight: 800; color: #12141A; margin: 2px 0 0; line-height: 1.45; }
.news-item p { font-size: 13.5px; line-height: 1.7; color: var(--ink-2); margin: 0; flex: 1 1 auto; }
.news-go { font-size: 13px; font-weight: 700; color: var(--brand); }
.news-go::after { content: " →"; }
@media (max-width: 900px) { .news-grid { grid-template-columns: 1fr; } }

/* ---------- v9 补丁：卡片从白底浮起 + 架构强调 ---------- */
.prod-card, .sol-card, .news-item, .arch-layer, .arch-note {
  box-shadow: 0 1px 2px rgba(20, 26, 40, .04), 0 8px 22px rgba(20, 26, 40, .045);
}
.prod-card.is-cta { box-shadow: 0 1px 2px rgba(255, 133, 0, .06), 0 10px 26px rgba(255, 133, 0, .07); }
.arch-layer:first-child { background: linear-gradient(160deg, #FFF8F1, #FFF1E4); }
.prod-card > p { min-height: 0; }
.sol-card h3 { min-height: 0; }

/* 标题断行更均衡（支持的浏览器生效） */
.section-head h2,
.section-head .section-lead,
.sol-card h3,
.news-item h3 { text-wrap: balance; }

/* =========================================================
   v10 · 内页统一版式（与首页 v9 同一套「云厂商官网」语言）
   ---------------------------------------------------------
   1) 内页页头：左侧文案 + 右侧关键事实清单（产品页式头图）
   2) 新增内页组件：spec-card（能力/交付物/联系人）、voice-card（评价）
   3) 表格 / 价格 / FAQ / 城市 / 时间线 / 表单 全部对齐首页：
      白底 + 中性细描边 + 8px 圆角 + 唯一橙 #FF8500
   约束：静态、无动画、无渐变字、无单边色条
   ========================================================= */

/* ---------- 1. 内页页头 ---------- */
.page-hero {
  padding: calc(var(--header-h) + 68px) 0 58px;
  background: linear-gradient(180deg, #FFFCF8 0%, #FFFFFF 82%);
}
.page-hero .ph-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(288px, 348px);
  gap: clamp(32px, 5vw, 76px);
  align-items: end;
}
.page-hero .ph-main { min-width: 0; }
.page-hero h1 {
  font-size: clamp(30px, 3.4vw, 44px);
  line-height: 1.24;
  letter-spacing: -0.012em;
  margin: 14px 0 18px;
}
.page-hero .lead { max-width: 660px; font-size: 16.5px; line-height: 1.78; }
.page-hero .hero-cta { margin-top: 30px; }

.ph-facts { display: grid; border-top: 1px solid var(--line); margin: 0; }
.ph-facts > div {
  display: flex; align-items: baseline; justify-content: space-between;
  gap: 18px; padding: 13px 0;
  border-bottom: 1px solid var(--line-soft);
}
.ph-facts dt {
  flex: none; margin: 0;
  font-size: 12.5px; color: var(--ink-3); letter-spacing: .02em;
}
.ph-facts dd {
  margin: 0; text-align: right;
  font-size: 14.5px; font-weight: 800; color: #12141A;
  font-variant-numeric: tabular-nums; line-height: 1.5;
}
.ph-facts dd em { font-style: normal; color: var(--brand); }

@media (max-width: 980px) {
  .page-hero { padding: calc(var(--header-h) + 44px) 0 42px; }
  .page-hero .ph-grid { grid-template-columns: 1fr; gap: 30px; align-items: start; }
  .ph-facts { max-width: 520px; }
}

/* ---------- 2. 通用内容卡（能力 / 交付物 / 联系人） ---------- */
.spec-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.spec-grid.is-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.spec-grid.is-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.spec-card {
  display: flex; flex-direction: column; gap: 10px;
  background: #fff;
  border: 1px solid var(--card-line);
  border-radius: 8px;
  padding: 26px;
  box-shadow: 0 1px 2px rgba(20, 26, 40, .04), 0 8px 22px rgba(20, 26, 40, .045);
}
.spec-card.is-tint {
  background: linear-gradient(160deg, #FFFBF6, #FFF5EC);
  border-color: rgba(255, 133, 0, .22);
}
.spec-ico {
  width: 40px; height: 40px; flex: none;
  display: grid; place-items: center;
  border-radius: 8px;
  background: var(--brand-tint);
  border: 1px solid rgba(255, 133, 0, .18);
  color: var(--brand);
}
.spec-ico svg { width: 22px; height: 22px; }
.spec-no { font-size: 12px; font-weight: 800; letter-spacing: .08em; color: var(--brand); }
.spec-card h3 {
  font-size: 17px; font-weight: 800; line-height: 1.4;
  color: #12141A; margin: 0;
}
.spec-card > p { font-size: 14px; line-height: 1.72; color: var(--ink-2); margin: 0; }
.spec-card a { color: var(--brand); font-weight: 700; }
.spec-list {
  display: grid; gap: 8px; list-style: none;
  margin: 4px 0 0; padding: 14px 0 0;
  border-top: 1px solid var(--line-soft);
}
.spec-list li {
  position: relative; padding-left: 18px;
  font-size: 13.5px; line-height: 1.62; color: var(--ink-2);
}
.spec-list li::before {
  content: ""; position: absolute; left: 0; top: .62em;
  width: 6px; height: 6px; border-radius: 2px; background: var(--brand);
}
.spec-foot {
  margin-top: auto; padding-top: 12px;
  border-top: 1px solid var(--line-soft);
  font-size: 12.5px; line-height: 1.6; color: var(--ink-3);
}
.spec-go { font-size: 13px; font-weight: 700; color: var(--brand); }
.spec-go::after { content: " →"; }

@media (max-width: 1080px) { .spec-grid, .spec-grid.is-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 700px) {
  .spec-grid, .spec-grid.is-2 { grid-template-columns: 1fr; }
  .spec-card { padding: 20px; }
}

/* ---------- 3. 对照表：白卡 + 浅灰表头 ---------- */
.compare { overflow: hidden; }
.compare table { width: 100%; border-collapse: collapse; }
.compare thead th {
  background: var(--bg-soft);
  font-size: 12.5px; font-weight: 700; letter-spacing: .03em;
  color: var(--ink-3) !important;
  padding: 14px 20px;
}
.compare tbody th { padding: 16px 20px; font-size: 14px; font-weight: 800; color: #12141A; }
.compare tbody td { padding: 16px 20px; font-size: 14px; line-height: 1.66; color: var(--ink-2); }
.compare tbody tr:last-child th, .compare tbody tr:last-child td { border-bottom: 0; }
.compare .td-brand { color: #12141A; font-weight: 600; }
.compare .th-brand { color: var(--brand) !important; font-weight: 800; }

/* ---------- 4. 价格三档 ---------- */
.price-grid { gap: 16px; }
.price-card {
  border: 1px solid var(--card-line);
  border-radius: 8px;
  padding: 28px;
  box-shadow: 0 1px 2px rgba(20, 26, 40, .04), 0 8px 22px rgba(20, 26, 40, .045);
}
.price-card.is-feature {
  border-color: rgba(255, 133, 0, .45);
  box-shadow: 0 2px 6px rgba(255, 133, 0, .07), 0 14px 34px rgba(255, 133, 0, .10);
}
.price-card .pc-tag {
  font-size: 11.5px; font-weight: 700; letter-spacing: .04em;
  border-radius: 4px; padding: 3px 8px;
}
.price-card h3 { font-size: 18px; font-weight: 800; color: #12141A; }
.price-card .pc-range { font-size: 28px; letter-spacing: -0.01em; }
.price-card li { font-size: 14px; }

/* ---------- 5. FAQ ---------- */
.faq-list { border-top: 1px solid var(--line); max-width: 920px; margin-inline: auto; }
.faq-item { border-bottom: 1px solid var(--line-soft); }
.faq-item summary { padding: 20px 0; font-size: 16px; font-weight: 700; }
.faq-body p { font-size: 14.5px; line-height: 1.8; max-width: 780px; padding-bottom: 20px; }

/* ---------- 6. 城市与社区 ---------- */
.city-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.city-card {
  border: 1px solid var(--card-line);
  border-radius: 8px;
  padding: 22px;
  box-shadow: 0 1px 2px rgba(20, 26, 40, .04), 0 8px 22px rgba(20, 26, 40, .045);
}
.city-head { gap: 10px; margin-bottom: 14px; }
.city-pin {
  width: 32px; height: 32px; border-radius: 6px;
  background: var(--brand-tint);
  border: 1px solid rgba(255, 133, 0, .18);
}
.city-pin svg { width: 16px; height: 16px; }
.city-card h3 { font-size: 17px; font-weight: 800; color: #12141A; }
.city-count { border-radius: 4px; padding: 2px 7px; font-size: 11.5px; }
.city-card li { font-size: 13.5px; }
.city-card li::before { width: 6px; height: 6px; border-radius: 2px; }
@media (max-width: 1100px) { .city-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 860px) { .city-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .city-grid { grid-template-columns: 1fr; } }

/* ---------- 7. 时间线：左侧年份轨道 ---------- */
.tl-rail { display: grid; }
.tl-rail .tl-row {
  display: grid;
  grid-template-columns: 148px minmax(0, 1fr);
  gap: 32px;
  padding: 28px 0;
  border-top: 1px solid var(--line-soft);
}
.tl-rail .tl-row:last-child { border-bottom: 1px solid var(--line-soft); }
.tl-rail .tl-y {
  font-size: 22px; font-weight: 800; line-height: 1.1;
  color: var(--brand); font-variant-numeric: tabular-nums;
}
.tl-rail .tl-y small {
  display: block; margin-top: 6px;
  font-size: 11.5px; font-weight: 700; letter-spacing: .08em;
  color: var(--ink-4);
}
.tl-rail h3 { font-size: 18px; font-weight: 800; color: #12141A; margin: 0 0 6px; }
.tl-rail p { font-size: 14.5px; line-height: 1.72; color: var(--ink-2); margin: 0; max-width: 760px; }
.tl-rail .tl-tag {
  display: inline-block; margin-top: 10px;
  font-size: 12px; font-weight: 700; color: var(--brand);
  background: var(--brand-tint); border-radius: 4px; padding: 3px 8px;
}
@media (max-width: 720px) {
  .tl-rail .tl-row { grid-template-columns: 1fr; gap: 10px; padding: 22px 0; }
}

/* ---------- 8. 表单 + 侧栏 ---------- */
.form-card {
  border: 1px solid var(--card-line);
  border-radius: 8px;
  padding: 32px;
  box-shadow: 0 1px 2px rgba(20, 26, 40, .04), 0 10px 30px rgba(20, 26, 40, .06);
}
.form-card h3 { font-size: 20px; font-weight: 800; color: #12141A; }
.form-aside { display: grid; gap: 16px; align-content: start; }
.fa-panel {
  background: #fff;
  border: 1px solid var(--card-line);
  border-radius: 8px;
  padding: 24px;
  box-shadow: 0 1px 2px rgba(20, 26, 40, .04), 0 8px 22px rgba(20, 26, 40, .045);
}
.fa-panel h3 { font-size: 16px; font-weight: 800; color: #12141A; margin: 0 0 14px; }
.fa-panel ul, .fa-panel ol { display: grid; gap: 10px; list-style: none; margin: 0; padding: 0; }
.fa-panel li {
  position: relative; padding-left: 20px;
  font-size: 13.5px; line-height: 1.66; color: var(--ink-2);
}
.fa-panel ul li::before {
  content: ""; position: absolute; left: 0; top: .62em;
  width: 6px; height: 6px; border-radius: 2px; background: var(--brand);
}
.fa-steps { counter-reset: fast; }
.fa-steps li { padding-left: 34px; counter-increment: fast; }
.fa-steps li::before {
  content: counter(fast, decimal-leading-zero);
  position: absolute; left: 0; top: 0;
  width: 24px; height: 24px; border-radius: 4px;
  background: var(--brand-tint); color: var(--brand);
  font-size: 11.5px; font-weight: 800;
  display: grid; place-items: center;
}

/* ---------- 9. 客户评价 ---------- */
.voice-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.voice-card {
  display: flex; flex-direction: column; gap: 16px;
  background: #fff;
  border: 1px solid var(--card-line);
  border-radius: 8px;
  padding: 26px;
  box-shadow: 0 1px 2px rgba(20, 26, 40, .04), 0 8px 22px rgba(20, 26, 40, .045);
}
.voice-card blockquote {
  margin: 0; font-size: 14.5px; line-height: 1.82; color: #12141A;
}
.voice-card blockquote::before {
  content: "“"; color: var(--brand); font-size: 30px;
  line-height: 0; vertical-align: -6px; margin-right: 2px;
}
.voice-who {
  display: flex; align-items: center; gap: 10px;
  margin-top: auto; padding-top: 16px;
  border-top: 1px solid var(--line-soft);
}
.voice-who .avatar {
  width: 32px; height: 32px; flex: none; border-radius: 50%;
  display: grid; place-items: center;
  background: var(--brand-tint); color: var(--brand);
  font-weight: 800; font-size: 13px;
}
.voice-who strong { display: block; font-size: 13.5px; color: #12141A; }
.voice-who i { font-style: normal; font-size: 12.5px; color: var(--ink-3); }
@media (max-width: 980px) { .voice-grid { grid-template-columns: 1fr; } }

/* ---------- 10. 案例卡（内页版） ---------- */
.case-grid { gap: 16px; }
.case-card {
  border: 1px solid var(--card-line);
  border-radius: 8px;
  padding: 26px;
  box-shadow: 0 1px 2px rgba(20, 26, 40, .04), 0 8px 22px rgba(20, 26, 40, .045);
}
.case-card h3 { font-size: 17px; font-weight: 800; color: #12141A; margin: 2px 0 12px; }
.case-card .case-tag { border-radius: 4px; }
.case-card dl { padding-top: 14px; border-top: 1px solid var(--line-soft); gap: 8px; }
.case-card dt { font-size: 11.5px; }
.case-card dd { font-size: 13.5px; line-height: 1.7; }

/* ---------- 11. 内页小节标题：略小一号 ---------- */
.page-hero + .section { padding-top: clamp(56px, 6vw, 84px); }
.section-soft + .section { border-top: 1px solid var(--line-soft); }

/* ---------- v10 补丁：内页页头改左对齐（覆盖历史居中规则） ---------- */
.page-hero { text-align: left; }
.page-hero h1,
.page-hero .lead { margin-inline: 0; }
.page-hero .eyebrow { justify-content: flex-start; }
.page-hero .hero-cta { justify-content: flex-start; }

/* =========================================================
   v10.1 · 内页子导航（云厂商式锚点条）+ 锚点偏移
   ========================================================= */
.subnav {
  position: sticky;
  top: var(--header-h);
  z-index: 40;
  background: rgba(255, 255, 255, 0.94);
  border-top: 1px solid var(--line-soft);
  border-bottom: 1px solid var(--line);
  -webkit-backdrop-filter: saturate(180%) blur(10px);
  backdrop-filter: saturate(180%) blur(10px);
}
.subnav-inner {
  display: flex;
  align-items: center;
  gap: 30px;
  height: 54px;
  overflow-x: auto;
  scrollbar-width: none;
}
.subnav-inner::-webkit-scrollbar { display: none; }
.subnav a {
  position: relative;
  flex: none;
  padding: 17px 0;
  font-size: 13.5px;
  font-weight: 600;
  color: var(--ink-2);
  text-decoration: none;
  white-space: nowrap;
}
.subnav a:hover { color: var(--brand); }
.subnav a.is-on { color: #12141A; font-weight: 800; }
.subnav a.is-on::after {
  content: "";
  position: absolute;
  left: 0; right: 0; bottom: -1px;
  height: 2px;
  background: var(--brand);
}
.subnav .subnav-cta { margin-left: auto; color: var(--brand); font-weight: 800; }
.subnav .subnav-cta::after { content: " →"; }
@media (max-width: 760px) {
  .subnav-inner { gap: 22px; height: 50px; }
  .subnav a { padding: 15px 0; font-size: 13px; }
  .subnav .subnav-cta { display: none; }
}
/* 有子导航时，锚点要避开「顶栏 + 子导航」 */
main .section { scroll-margin-top: calc(var(--header-h) + 58px); }

/* 让 sticky 子导航生效：overflow-x:hidden 会创建滚动容器，改用 clip */
html, body { overflow-x: clip; }
@supports not (overflow: clip) { html, body { overflow-x: hidden; } }

/* ---------- v10.2 内页细节 ---------- */
/* 卡片级锚点（/platform/#compute 等）避开顶栏 + 子导航 */
.spec-card[id], .arch-note[id], .prod-card[id] { scroll-margin-top: calc(var(--header-h) + 76px); }

/* 子导航：窄屏更紧凑，尽量多露出一项 */
@media (max-width: 760px) {
  .subnav-inner { gap: 18px; }
  .subnav a { font-size: 12.5px; }
}

/* 页头事实列：窄屏行距收紧 */
@media (max-width: 560px) {
  .ph-facts > div { padding: 11px 0; }
  .ph-facts dd { font-size: 13.5px; }
}

/* 表格在窄屏可横向滚动，不挤压文字 */
@media (max-width: 760px) {
  .compare { overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .compare table { min-width: 560px; }
  .compare tbody th, .compare tbody td, .compare thead th { padding: 13px 16px; }
}

/* 城市网格：上海（3 社区）占两列，7 张卡正好铺满 4 列两行 */
.city-card.is-wide { grid-column: span 2; }
@media (max-width: 1100px) and (min-width: 861px) { .city-card.is-wide { grid-column: auto; } }
@media (max-width: 560px) { .city-card.is-wide { grid-column: auto; } }
/* 上海占两列时，社区名单排双列，避免右侧留大片空白 */
.city-card.is-wide ul { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 22px; }
@media (max-width: 560px) { .city-card.is-wide ul { grid-template-columns: 1fr; } }
/* 上海占两列时，社区名单排双列，避免右侧留大片空白 */
.city-card.is-wide ul { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 22px; }
@media (max-width: 560px) { .city-card.is-wide ul { grid-template-columns: 1fr; } }

/* 窄屏表格：不横向截断，改为紧凑排版 + 自动换行 */
@media (max-width: 760px) {
  .compare { overflow-x: visible; }
  .compare table { min-width: 0; table-layout: fixed; }
  .compare thead th, .compare tbody th, .compare tbody td {
    padding: 12px 10px; font-size: 12.5px; line-height: 1.55;
    white-space: normal; overflow-wrap: anywhere;
  }
  .compare thead th { font-size: 12px; }
  .compare tbody th { width: 22%; }
  .compare caption { font-size: 13px; }
}

/* 窄屏表格：不横向截断，改为紧凑排版 + 自动换行 */
@media (max-width: 760px) {
  .compare { overflow-x: visible; }
  .compare table { min-width: 0; table-layout: fixed; }
  .compare thead th, .compare tbody th, .compare tbody td {
    padding: 12px 10px; font-size: 12.5px; line-height: 1.55;
    white-space: normal; overflow-wrap: anywhere;
  }
  .compare thead th { font-size: 12px; }
  .compare tbody th { width: 22%; }
  .compare caption { font-size: 13px; }
}

/* =========================================================
   v11 · 彩色点缀 / 主题渐变按钮 / 底部 CTA 重设计
   ---------------------------------------------------------
   1) 辅助色板：蓝 / 紫 / 青 / 天蓝，只做「小面积点缀」，
      与品牌橙 #FF8500 形成冷暖对比，不改变白底主调；
   2) 按钮统一为主题色渐变（浅橙 → 品牌橙），hover 只变亮；
   3) 底部 CTA 由「淡黄色带」改为「冷调浅底 + 白色卡片面板」，
      面板内用四色短线做识别符号。
   ========================================================= */

/* ---------- 1. 辅助色板 ---------- */
:root {
  --c-blue: #2563EB;
  --c-blue-t: #E8EFFE;
  --c-blue-l: rgba(37, 99, 235, 0.16);

  --c-violet: #6B4BF5;
  --c-violet-t: #EFEAFF;
  --c-violet-l: rgba(107, 75, 245, 0.16);

  --c-teal: #0E9C8F;
  --c-teal-t: #E3F6F3;
  --c-teal-l: rgba(14, 156, 143, 0.16);

  --c-sky: #0B8FC7;
  --c-sky-t: #E2F3FB;
  --c-sky-l: rgba(11, 143, 199, 0.16);

  /* 主题渐变：浅橙 → 品牌橙 → 回亮，绝不比 #FF8500 更深 */
  --brand-grad-btn: linear-gradient(135deg, #FFCB90 0%, #FFA03C 42%, #FF8500 100%);
  --brand-grad-btn-hi: linear-gradient(135deg, #FFD2A0 0%, #FFA238 42%, #FF8E10 100%);
  /* 四色短线（识别符号） */
  --thread-4: linear-gradient(90deg,
      #FF8500 0 25%, #6B4BF5 25% 50%, #2563EB 50% 75%, #0E9C8F 75% 100%);
}

/* ---------- 2. 底色微调：交替区块改用极淡冷灰 ---------- */
.section-soft { background: #F7F9FC; }

/* 内页页头：白底 + 橙 / 紫 / 蓝三向淡光晕（替换原来的暖白渐变） */
.page-hero {
  background:
    radial-gradient(46% 68% at 90% 2%, rgba(37, 99, 235, 0.10), transparent 64%),
    radial-gradient(38% 60% at 70% 96%, rgba(107, 75, 245, 0.085), transparent 66%),
    radial-gradient(50% 70% at 2% 92%, rgba(255, 133, 0, 0.09), transparent 64%),
    #FFFFFF;
}

/* ---------- 3. 按钮：主题色渐变 ---------- */
.btn-primary,
.btn-brand,
.site-header .btn-brand,
.cta-band .btn-primary,
.cta-inner .btn-primary {
  background-color: #FF8500;
  background-image: var(--brand-grad-btn);
  color: #fff;
  border: 1px solid rgba(255, 255, 255, 0.32);
  text-shadow: 0 1px 1px rgba(140, 62, 0, 0.16);
  box-shadow: 0 10px 24px rgba(255, 133, 0, 0.26), inset 0 1px 0 rgba(255, 255, 255, 0.38);
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
  transition: transform 0.2s var(--ease), box-shadow 0.2s var(--ease);
}
.btn-primary:hover,
.btn-brand:hover,
.site-header .btn-brand:hover,
.cta-band .btn-primary:hover,
.cta-inner .btn-primary:hover {
  background-color: #FF9320;
  background-image: var(--brand-grad-btn-hi);
  color: #fff;
  border-color: rgba(255, 255, 255, 0.46);
  box-shadow: 0 14px 30px rgba(255, 133, 0, 0.32), inset 0 1px 0 rgba(255, 255, 255, 0.46);
  transform: translateY(-2px);
}
.btn-primary:active,
.btn-brand:active,
.site-header .btn-brand:active,
.cta-band .btn-primary:active,
.cta-inner .btn-primary:active {
  transform: translateY(0);
  box-shadow: 0 6px 16px rgba(255, 133, 0, 0.24), inset 0 1px 0 rgba(255, 255, 255, 0.3);
}
/* 幽灵按钮：hover 时描边带一点冷色，和渐变主按钮呼应 */
.btn-ghost:hover {
  border-color: rgba(107, 75, 245, 0.45);
  color: var(--c-violet);
}

/* ---------- 4. 首页轮播：图标与窗口点着色 ---------- */
.proof-dots i:nth-child(1) { background: rgba(255, 133, 0, 0.62); }
.proof-dots i:nth-child(2) { background: rgba(107, 75, 245, 0.45); }
.proof-dots i:nth-child(3) { background: rgba(37, 99, 235, 0.42); }

.hero-slide:nth-child(2) .proj-ico { background: linear-gradient(135deg, #5B8DEF, #2563EB); }
.hero-slide:nth-child(3) .proj-ico { background: linear-gradient(135deg, #8E74FF, #6B4BF5); }
.hero-slide:nth-child(4) .proj-ico { background: linear-gradient(135deg, #2EBBAA, #0E9C8F); }
.hero-slide:nth-child(5) .proj-ico { background: linear-gradient(135deg, #35A6D6, #0B8FC7); }
.hero-slide:nth-child(6) .proj-ico { background: linear-gradient(135deg, #FFB65F, #FF8500); }

/* ---------- 5. 产品卡：三组三色 ---------- */
.prod-group { --ac: var(--brand); --ac-t: var(--brand-tint); --ac-l: rgba(255, 133, 0, 0.20); }
.prod-group + .prod-group { --ac: var(--c-blue); --ac-t: var(--c-blue-t); --ac-l: var(--c-blue-l); }
.prod-group + .prod-group + .prod-group { --ac: var(--c-violet); --ac-t: var(--c-violet-t); --ac-l: var(--c-violet-l); }

.prod-group .prod-ico {
  background: var(--ac-t, var(--brand-tint));
  border-color: var(--ac-l, rgba(255, 133, 0, 0.20));
  color: var(--ac, var(--brand));
}
.prod-group .prod-badge { background: var(--ac-t, var(--brand-tint)); color: var(--ac, var(--brand)); }
.prod-group-head h3::before {
  content: "";
  display: inline-block;
  width: 8px; height: 8px;
  border-radius: 2px;
  margin-right: 9px;
  vertical-align: 2px;
  background: var(--ac, var(--brand));
}
.prod-group .prod-go { color: var(--ac, var(--brand)); }

/* ---------- 6. 能力卡（spec）：四色轮转 ---------- */
.spec-grid > .spec-card:nth-child(4n + 1) { --ac: var(--brand); --ac-t: var(--brand-tint); --ac-l: rgba(255, 133, 0, 0.20); }
.spec-grid > .spec-card:nth-child(4n + 2) { --ac: var(--c-blue); --ac-t: var(--c-blue-t); --ac-l: var(--c-blue-l); }
.spec-grid > .spec-card:nth-child(4n + 3) { --ac: var(--c-violet); --ac-t: var(--c-violet-t); --ac-l: var(--c-violet-l); }
.spec-grid > .spec-card:nth-child(4n + 4) { --ac: var(--c-teal); --ac-t: var(--c-teal-t); --ac-l: var(--c-teal-l); }

.spec-grid .spec-card .spec-ico {
  background: var(--ac-t, var(--brand-tint));
  border-color: var(--ac-l, rgba(255, 133, 0, 0.20));
  color: var(--ac, var(--brand));
}
.spec-grid .spec-card .spec-no { color: var(--ac, var(--brand)); }
.spec-grid .spec-card .spec-go { color: var(--ac, var(--brand)); }
.spec-grid .spec-card .spec-list li::before { background: var(--ac, var(--brand)); }

/* 高亮卡：去掉奶油底，改白底 + 淡色洗染 */
.spec-card.is-tint {
  background: #FFFFFF;
  border-color: rgba(255, 133, 0, 0.30);
  box-shadow: 0 1px 2px rgba(255, 133, 0, 0.06), 0 12px 30px rgba(255, 133, 0, 0.09);
}
.prod-card.is-cta {
  background: #FFFFFF;
  border-color: rgba(255, 133, 0, 0.30);
  box-shadow: 0 1px 2px rgba(255, 133, 0, 0.06), 0 12px 30px rgba(255, 133, 0, 0.09);
}

/* ---------- 7. 架构四层：四色分层 ---------- */
.arch-stack > .arch-layer:nth-child(1) { --ac: var(--brand); --ac-t: #FFF7F0; --ac-l: rgba(255, 133, 0, 0.26); }
.arch-stack > .arch-layer:nth-child(2) { --ac: var(--c-violet); --ac-t: #F7F4FF; --ac-l: var(--c-violet-l); }
.arch-stack > .arch-layer:nth-child(3) { --ac: var(--c-blue); --ac-t: #F3F7FF; --ac-l: var(--c-blue-l); }
.arch-stack > .arch-layer:nth-child(4) { --ac: var(--c-teal); --ac-t: #F0FAF8; --ac-l: var(--c-teal-l); }

.arch-stack > .arch-layer {
  background: var(--ac-t, #fff);
  border-color: var(--ac-l, var(--card-line));
}
.arch-layer .arch-no {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: auto;
  min-width: 30px;
  height: 22px;
  padding: 0 6px;
  border-radius: 4px;
  background: #fff;
  border: 1px solid var(--ac-l, var(--line));
  color: var(--ac, var(--ink-4));
}
.arch-layer:first-child .arch-no { color: var(--ac, var(--brand)); }

/* ---------- 8. 解决方案与案例：小色点 / 彩色标签 ---------- */
.sol-grid > .sol-card:nth-child(3n + 1) { --ac: var(--brand); --ac-t: var(--brand-tint); }
.sol-grid > .sol-card:nth-child(3n + 2) { --ac: var(--c-blue); --ac-t: var(--c-blue-t); }
.sol-grid > .sol-card:nth-child(3n + 3) { --ac: var(--c-violet); --ac-t: var(--c-violet-t); }
.sol-grid .sol-for { color: var(--ac, var(--brand)); }
.sol-grid .sol-for::before {
  content: "";
  display: inline-block;
  width: 6px; height: 6px;
  border-radius: 2px;
  margin-right: 7px;
  vertical-align: 1px;
  background: var(--ac, var(--brand));
}
.sol-grid .sol-go { color: var(--ac, var(--brand)); }

.case-grid .case-card:nth-child(4n + 1) { --ac: var(--brand); --ac-t: var(--brand-tint); }
.case-grid .case-card:nth-child(4n + 2) { --ac: var(--c-blue); --ac-t: var(--c-blue-t); }
.case-grid .case-card:nth-child(4n + 3) { --ac: var(--c-violet); --ac-t: var(--c-violet-t); }
.case-grid .case-card:nth-child(4n + 4) { --ac: var(--c-teal); --ac-t: var(--c-teal-t); }
.case-grid .case-card .case-tag { background: var(--ac-t, var(--brand-tint)); color: var(--ac, var(--brand)); }
.case-grid .case-card .case-result .cr-num { color: var(--ac, var(--brand)); }

/* 资源与洞察：三色分类标签 */
.news-grid > .news-item:nth-child(3n + 1) { --ac: var(--brand); --ac-t: var(--brand-tint); }
.news-grid > .news-item:nth-child(3n + 2) { --ac: var(--c-blue); --ac-t: var(--c-blue-t); }
.news-grid > .news-item:nth-child(3n + 3) { --ac: var(--c-violet); --ac-t: var(--c-violet-t); }
.news-item .news-cat { background: var(--ac-t, var(--brand-tint)); color: var(--ac, var(--brand)); }
.news-item .news-go { color: var(--ac, var(--brand)); }

/* ---------- 9. 流程五步：编号渐变走色 ---------- */
.flow-h > li:nth-child(1) { --ac: #FF8500; }
.flow-h > li:nth-child(2) { --ac: var(--c-violet); }
.flow-h > li:nth-child(3) { --ac: var(--c-blue); }
.flow-h > li:nth-child(4) { --ac: var(--c-teal); }
.flow-h > li:nth-child(5) { --ac: var(--c-sky); }
.flow-h .fh-no { color: var(--ac, var(--brand)); }
.flow-h > li h4::before {
  content: "";
  display: inline-block;
  width: 6px; height: 6px;
  border-radius: 2px;
  margin-right: 8px;
  vertical-align: 3px;
  background: var(--ac, var(--brand));
}

/* ---------- 10. 城市 / 时间线 / 评价 ---------- */
.city-pin {
  background: var(--c-teal-t);
  border-color: var(--c-teal-l);
  color: var(--c-teal);
}
.city-card .city-count { color: var(--c-teal); background: var(--c-teal-t); }
.city-card li::before { background: rgba(14, 156, 143, 0.55); }

.tl-rail .tl-row:nth-child(4n + 1) { --ac: var(--brand); --ac-t: var(--brand-tint); --ac-l: rgba(255, 133, 0, 0.20); }
.tl-rail .tl-row:nth-child(4n + 2) { --ac: var(--c-blue); --ac-t: var(--c-blue-t); --ac-l: var(--c-blue-l); }
.tl-rail .tl-row:nth-child(4n + 3) { --ac: var(--c-violet); --ac-t: var(--c-violet-t); --ac-l: var(--c-violet-l); }
.tl-rail .tl-row:nth-child(4n + 4) { --ac: var(--c-teal); --ac-t: var(--c-teal-t); --ac-l: var(--c-teal-l); }
.tl-rail .tl-y {
  color: var(--ac, var(--brand));
  background: var(--ac-t, var(--brand-tint));
  border-color: var(--ac-l, rgba(255, 133, 0, 0.20));
}
.tl-rail .tl-tag { color: var(--ac, var(--brand)); }

.voice-grid .voice-card:nth-child(3n + 1) { --ac: linear-gradient(135deg, #FFB65F, #FF8500); }
.voice-grid .voice-card:nth-child(3n + 2) { --ac: linear-gradient(135deg, #5B8DEF, #2563EB); }
.voice-grid .voice-card:nth-child(3n + 3) { --ac: linear-gradient(135deg, #8E74FF, #6B4BF5); }
.voice-grid .voice-card .avatar {
  background: var(--ac, var(--brand));
  color: #FFFFFF;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.22);
}
.voice-grid .voice-card blockquote::before { color: var(--c-violet); }

/* ---------- 11. 底部 CTA：冷调浅底 + 白色面板 ---------- */
.cta-band {
  position: relative;
  overflow: hidden;
  background: linear-gradient(112deg, #E9EFFA 0%, #F0ECFD 52%, #E4F0F9 100%);
  border-top: 1px solid #E3E9F5;
  border-bottom: 1px solid #E3E9F5;
  box-shadow: none;
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}
.cta-band::before {
  content: "";
  position: absolute;
  left: -150px; bottom: -260px;
  width: 480px; height: 480px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(37, 99, 235, 0.14), transparent 64%);
  pointer-events: none;
}
.cta-band::after {
  content: "";
  position: absolute;
  right: -170px; top: -280px;
  width: 540px; height: 540px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(107, 75, 245, 0.24), transparent 64%);
  pointer-events: none;
}
.cta-band .cta-inner {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 40px;
  margin: 62px auto;
  padding: 46px 48px;
  background: #FFFFFF;
  border: 1px solid rgba(20, 26, 40, 0.07);
  border-radius: 10px;
  box-shadow: 0 22px 54px rgba(20, 26, 40, 0.08), 0 1px 2px rgba(20, 26, 40, 0.04);
  overflow: hidden;
}
/* 面板内的双色洗染，让白卡不死板 */
.cta-inner::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  pointer-events: none;
  background:
    radial-gradient(120% 150% at 100% 0%, rgba(107, 75, 245, 0.08), transparent 58%),
    radial-gradient(120% 150% at 0% 100%, rgba(255, 133, 0, 0.05), transparent 60%);
}
.cta-inner > * { position: relative; z-index: 1; }
.cta-inner h2 {
  color: #12141A;
  font-size: clamp(22px, 2.4vw, 30px);
  line-height: 1.4;
  max-width: 780px;
}
/* 四色短线 = 全站 CTA 的识别符号 */
.cta-inner h2::before {
  content: "";
  display: block;
  width: 46px; height: 4px;
  border-radius: 2px;
  margin-bottom: 18px;
  background: var(--thread-4);
}
.cta-inner p { color: var(--ink-3); font-size: 15px; margin-top: 10px; }
.cta-inner .btn { flex: none; }

/* ---------- 12. 响应式 ---------- */
@media (max-width: 980px) {
  .cta-band .cta-inner { gap: 26px; padding: 36px 32px; margin: 48px auto; }
}
@media (max-width: 760px) {
  .cta-band .cta-inner {
    flex-direction: column;
    align-items: flex-start;
    gap: 22px;
    padding: 30px 22px;
    margin: 36px auto;
  }
  .cta-inner h2::before { margin-bottom: 14px; }
  .cta-inner .btn { width: 100%; }
  .arch-layer .arch-no { min-width: 26px; height: 20px; }
}

/* ---------- 13. 卡片 hover 跟随所属色 ---------- */
.prod-group .prod-card:hover {
  border-color: var(--ac, rgba(255, 133, 0, .55));
  box-shadow: 0 10px 26px rgba(20, 26, 40, .08);
}
.spec-grid .spec-card:hover {
  border-color: var(--ac-l, rgba(255, 133, 0, .3));
  box-shadow: 0 12px 30px rgba(20, 26, 40, .07);
}

/* ---------- 14. 页脚列标题的小色点 ---------- */
nav.footer-col:nth-of-type(1) { --ac: var(--brand); }
nav.footer-col:nth-of-type(2) { --ac: var(--c-blue); }
nav.footer-col:nth-of-type(3) { --ac: var(--c-violet); }
.footer-col h3::before {
  content: "";
  display: inline-block;
  width: 6px; height: 6px;
  border-radius: 2px;
  margin-right: 8px;
  vertical-align: 2px;
  background: var(--ac, var(--brand));
}

/* CTA 类产品卡：图标与链接回归品牌橙，与橙色描边一致 */
.prod-card.is-cta .prod-ico {
  background: var(--brand-tint);
  border-color: rgba(255, 133, 0, 0.20);
  color: var(--brand);
}
.prod-card.is-cta .prod-go { color: var(--brand); }

/* =========================================================
   v12 · 按钮渐变反向 / 首页架构与交付流程重排 /
         表格与 FAQ 细节 / 发展历程补全
   ---------------------------------------------------------
   1) 主按钮渐变反向：品牌橙 → 浅橙，hover 整体提亮；
   2) 首页「平台架构」改为全宽四层横带（层级 | 能力 | 模块）；
   3) 首页「交付流程」改为带编号轨道的五步卡片，先看到顺序；
   4) 技术底座「架构分层」改为横向四段流水线 + 层间箭头；
   5) 对照表：字号加大、去掉橙色底、改用橙色字；
   6) FAQ 图标：闭合为橙底白十字，展开为白底橙边橙减号；
   7) 发展历程补第三列「关键动作」，右侧不再留空。
   ========================================================= */

/* ---------- 1. 主按钮：渐变反向（品牌橙 → 浅橙） ---------- */
:root {
  --brand-grad-btn: linear-gradient(135deg, #FF8500 0%, #FF9C34 52%, #FFBE79 100%);
  --brand-grad-btn-hi: linear-gradient(135deg, #FF8E10 0%, #FFA63F 52%, #FFCB90 100%);
}

/* ---------- 2. FAQ 图标 ---------- */
.faq-icon {
  width: 28px;
  height: 28px;
  background: var(--brand);
  border: 1px solid var(--brand);
  box-shadow: 0 4px 10px rgba(255, 133, 0, 0.22);
}
.faq-icon::before,
.faq-icon::after {
  width: 12px;
  height: 2px;
  background: #fff;
}
.faq-item[open] .faq-icon {
  background: #fff;
  border-color: var(--brand);
  box-shadow: none;
}
.faq-item[open] .faq-icon::before,
.faq-item[open] .faq-icon::after {
  background: var(--brand);
}

/* ---------- 3. 首页平台架构：全宽四层横带 ---------- */
.arch-deck {
  margin-top: 8px;
  background: #fff;
  border: 1px solid var(--card-line);
  border-radius: 10px;
  box-shadow: 0 1px 2px rgba(20, 26, 40, 0.04), 0 16px 42px rgba(20, 26, 40, 0.055);
  overflow: hidden;
}
.deck-head {
  display: grid;
  grid-template-columns: 92px minmax(0, 1fr);
  gap: clamp(20px, 3vw, 46px);
  padding: 14px clamp(20px, 2.6vw, 36px);
  background: #F8FAFD;
  border-bottom: 1px solid var(--line-soft);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.14em;
  color: var(--ink-4);
}
.arch-band {
  display: grid;
  grid-template-columns: 92px minmax(0, 1fr) auto;
  align-items: center;
  column-gap: clamp(20px, 3vw, 46px);
  padding: 24px clamp(20px, 2.6vw, 36px) 25px;
  transition: background 0.22s var(--ease);
}
.arch-band + .arch-band { border-top: 1px solid var(--line-soft); }
.arch-band:hover { background: #FBFCFE; }
.arch-band:nth-child(2) { --ac: var(--brand); --ac-t: var(--brand-tint); --ac-l: rgba(255, 133, 0, 0.26); }
.arch-band:nth-child(3) { --ac: var(--c-violet); --ac-t: var(--c-violet-t); --ac-l: var(--c-violet-l); }
.arch-band:nth-child(4) { --ac: var(--c-blue); --ac-t: var(--c-blue-t); --ac-l: var(--c-blue-l); }
.arch-band:nth-child(5) { --ac: var(--c-teal); --ac-t: var(--c-teal-t); --ac-l: var(--c-teal-l); }
.ab-no {
  display: grid;
  place-items: center;
  width: 52px;
  height: 52px;
  border-radius: 8px;
  background: var(--ac-t, var(--brand-tint));
  border: 1px solid var(--ac-l, rgba(255, 133, 0, 0.2));
  color: var(--ac, var(--brand));
  font-size: 14px;
  font-weight: 800;
  letter-spacing: 0.04em;
  font-variant-numeric: tabular-nums;
}
.ab-main h3 {
  display: flex;
  align-items: baseline;
  gap: 10px;
  margin: 0;
  font-size: 19px;
  font-weight: 800;
  color: #12141A;
}
.ab-main h3 em {
  font-style: normal;
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--ink-4);
}
.ab-main p {
  margin: 8px 0 0;
  max-width: 62ch;
  font-size: 14px;
  line-height: 1.75;
  text-wrap: balance;
  color: var(--ink-2);
}
.ab-chips {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px;
  width: 362px;
  list-style: none;
  margin: 0;
  padding: 0;
}
.ab-chips li {
  padding: 7px 12px;
  border-radius: 4px;
  background: #F7F9FC;
  border: 1px solid var(--line-soft);
  font-size: 13px;
  font-weight: 600;
  color: var(--ink);
}
.deck-facts {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
  margin-top: 18px;
}
.deck-facts .arch-note {
  background: #F8FAFD;
  border-color: transparent;
  padding: 20px 22px;
}
.deck-facts .arch-note h4 { font-size: 15px; }
.deck-facts .arch-note p { font-size: 13.5px; line-height: 1.72; }
.deck-facts .arch-note:nth-child(1) h4::before,
.deck-facts .arch-note:nth-child(2) h4::before,
.deck-facts .arch-note:nth-child(3) h4::before,
.deck-facts .arch-note:nth-child(4) h4::before {
  content: "";
  display: inline-block;
  width: 6px;
  height: 6px;
  border-radius: 2px;
  margin-right: 8px;
  vertical-align: 2px;
}
.deck-facts .arch-note:nth-child(1) h4::before { background: var(--brand); }
.deck-facts .arch-note:nth-child(2) h4::before { background: var(--c-violet); }
.deck-facts .arch-note:nth-child(3) h4::before { background: var(--c-blue); }
.deck-facts .arch-note:nth-child(4) h4::before { background: var(--c-teal); }

@media (max-width: 1080px) {
  .deck-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
/* 平板：模块标签缩小一号，保证一行排完，不出现孤字换行 */
@media (max-width: 1180px) {
  .ab-chips { width: 330px; }
  .ab-chips li { padding: 6px 10px; font-size: 12.5px; }
}
@media (max-width: 860px) {
  .deck-head { display: none; }
  .arch-band {
    grid-template-columns: 46px minmax(0, 1fr);
    align-items: start;
    column-gap: 15px;
    row-gap: 12px;
    padding: 22px 20px;
  }
  .ab-no { width: 46px; height: 46px; font-size: 13px; }
  .ab-main { grid-column: 2; }
  .ab-main h3 { flex-wrap: wrap; gap: 4px 10px; font-size: 17.5px; }
  .ab-chips { grid-column: 2; width: auto; justify-content: flex-start; }
}
@media (max-width: 620px) {
  .deck-facts { grid-template-columns: 1fr; }
}

/* ---------- 4. 首页交付流程：编号轨道 + 五步卡片 ---------- */
.flow-steps {
  position: relative;
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 18px;
  list-style: none;
  margin: 8px 0 0;
  padding: 0;
}
.flow-steps::before {
  content: "";
  position: absolute;
  top: 21px;
  left: calc((100% - 72px) / 10);
  right: calc((100% - 72px) / 10);
  height: 2px;
  border-radius: 2px;
  background: linear-gradient(90deg,
      rgba(255, 133, 0, 0.5) 0%,
      rgba(107, 75, 245, 0.42) 25%,
      rgba(37, 99, 235, 0.42) 50%,
      rgba(14, 156, 143, 0.42) 75%,
      rgba(11, 143, 199, 0.42) 100%);
  pointer-events: none;
}
.flow-steps > li {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 18px;
}
.flow-steps > li:nth-child(1) { --ac: var(--brand); --ac-t: var(--brand-tint); --ac-l: rgba(255, 133, 0, 0.26); }
.flow-steps > li:nth-child(2) { --ac: var(--c-violet); --ac-t: var(--c-violet-t); --ac-l: var(--c-violet-l); }
.flow-steps > li:nth-child(3) { --ac: var(--c-blue); --ac-t: var(--c-blue-t); --ac-l: var(--c-blue-l); }
.flow-steps > li:nth-child(4) { --ac: var(--c-teal); --ac-t: var(--c-teal-t); --ac-l: var(--c-teal-l); }
.flow-steps > li:nth-child(5) { --ac: var(--c-sky); --ac-t: var(--c-sky-t); --ac-l: var(--c-sky-l); }
/* 圆点与卡片之间的短连接线，强调步骤顺序 */
.flow-steps > li::after {
  content: "";
  position: absolute;
  top: 44px;
  width: 1px;
  height: 18px;
  background: var(--line);
}
.step-dot {
  position: relative;
  z-index: 1;
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: #fff;
  border: 2px solid var(--ac, var(--brand));
  color: var(--ac, var(--brand));
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 0.04em;
  font-variant-numeric: tabular-nums;
  box-shadow: 0 4px 12px rgba(20, 26, 40, 0.08);
}
.step-card {
  display: flex;
  flex-direction: column;
  gap: 10px;
  width: 100%;
  flex: 1 1 auto;
  padding: 22px 20px;
  background: #fff;
  border: 1px solid var(--card-line);
  border-radius: 8px;
  box-shadow: 0 1px 2px rgba(20, 26, 40, 0.04), 0 8px 22px rgba(20, 26, 40, 0.05);
  transition: transform 0.22s var(--ease), box-shadow 0.22s var(--ease), border-color 0.22s var(--ease);
}
.flow-steps > li:hover .step-card {
  transform: translateY(-3px);
  border-color: var(--ac-l, rgba(255, 133, 0, 0.3));
  box-shadow: 0 14px 32px rgba(20, 26, 40, 0.1);
}
.step-card h3 { margin: 0; font-size: 17px; font-weight: 800; color: #12141A; }
.step-card p { margin: 0; font-size: 13.5px; line-height: 1.72; color: var(--ink-2); }
.step-card .step-out {
  margin-top: auto;
  padding-top: 12px;
  border-top: 1px dashed var(--line);
  font-size: 12.5px;
  font-weight: 600;
  color: var(--ink-3);
}
.step-out em {
  display: inline-block;
  margin-right: 6px;
  padding: 2px 6px;
  border-radius: 3px;
  background: var(--ac-t, var(--brand-tint));
  font-style: normal;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.06em;
  color: var(--ac, var(--brand));
}
@media (max-width: 980px) {
  .flow-steps { grid-template-columns: 1fr; gap: 0; }
  /* 竖向轨道：逐项连接，最后一项的圆点之后不再延伸 */
  .flow-steps::before { display: none; }
  .flow-steps > li { flex-direction: row; align-items: flex-start; gap: 18px; padding: 0 0 22px; }
  .flow-steps > li:not(:last-child)::before {
    content: "";
    position: absolute;
    left: 21px;
    top: 44px;
    bottom: 0;
    width: 2px;
    border-radius: 2px;
    background: linear-gradient(180deg,
        rgba(255, 133, 0, 0.38),
        rgba(107, 75, 245, 0.3) 40%,
        rgba(37, 99, 235, 0.3) 70%,
        rgba(14, 156, 143, 0.3));
  }
  .flow-steps > li:last-child { padding-bottom: 0; }
  .flow-steps > li::after { display: none; }
  .step-dot { flex: none; }
}

/* ---------- 5. 技术底座：横向四段流水线 ---------- */
.lay-flow {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
  margin-top: 8px;
}
.lay-card {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 24px 22px 20px;
  background: #fff;
  border: 1px solid var(--card-line);
  border-radius: 8px;
  box-shadow: 0 1px 2px rgba(20, 26, 40, 0.04), 0 10px 26px rgba(20, 26, 40, 0.05);
  transition: transform 0.22s var(--ease), box-shadow 0.22s var(--ease), border-color 0.22s var(--ease);
}
.lay-card:nth-child(1) { --ac: var(--brand); --ac-t: var(--brand-tint); --ac-l: rgba(255, 133, 0, 0.26); }
.lay-card:nth-child(2) { --ac: var(--c-violet); --ac-t: var(--c-violet-t); --ac-l: var(--c-violet-l); }
.lay-card:nth-child(3) { --ac: var(--c-blue); --ac-t: var(--c-blue-t); --ac-l: var(--c-blue-l); }
.lay-card:nth-child(4) { --ac: var(--c-teal); --ac-t: var(--c-teal-t); --ac-l: var(--c-teal-l); }
.lay-card:hover {
  transform: translateY(-3px);
  border-color: var(--ac-l, rgba(255, 133, 0, 0.3));
  box-shadow: 0 16px 34px rgba(20, 26, 40, 0.1);
}
/* 层间箭头 */
.lay-card + .lay-card::before {
  content: "";
  position: absolute;
  left: -17px;
  top: 37px;
  width: 13px;
  height: 1px;
  background: rgba(20, 26, 40, 0.16);
}
.lay-card + .lay-card::after {
  content: "";
  position: absolute;
  left: -7px;
  top: 34px;
  width: 6px;
  height: 6px;
  border-top: 1px solid rgba(20, 26, 40, 0.28);
  border-right: 1px solid rgba(20, 26, 40, 0.28);
  transform: rotate(45deg);
}
.lay-top { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.lay-no {
  font-size: 26px;
  font-weight: 800;
  line-height: 1;
  letter-spacing: -0.01em;
  color: var(--ac, var(--brand));
  font-variant-numeric: tabular-nums;
}
.lay-tag {
  padding: 4px 8px;
  border-radius: 4px;
  background: var(--ac-t, var(--brand-tint));
  border: 1px solid var(--ac-l, rgba(255, 133, 0, 0.2));
  font-size: 11.5px;
  font-weight: 800;
  letter-spacing: 0.04em;
  color: var(--ac, var(--brand));
}
.lay-card h3 { margin: 0; font-size: 18px; font-weight: 800; color: #12141A; }
.lay-card p { margin: 0; font-size: 13.5px; line-height: 1.74; color: var(--ink-2); }
.lay-card .lay-foot {
  margin-top: auto;
  padding-top: 14px;
  border-top: 1px dashed var(--line);
  font-size: 12px;
  font-weight: 700;
  color: var(--ink-4);
}
.lay-notes {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  margin-top: 18px;
}
.lay-notes .arch-note { background: #fff; border-color: var(--card-line); }
@media (max-width: 980px) {
  .lay-flow { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .lay-card + .lay-card::before,
  .lay-card + .lay-card::after { display: none; }
  .lay-notes { grid-template-columns: 1fr; }
}
@media (max-width: 620px) {
  .lay-flow { grid-template-columns: 1fr; gap: 12px; }
}

/* ---------- 6. 对照表：字号加大 + 橙字无底 ---------- */
@media (min-width: 761px) {
  .compare { background: #fff; border-color: var(--card-line); box-shadow: 0 1px 2px rgba(20, 26, 40, 0.04), 0 12px 30px rgba(20, 26, 40, 0.05); }
  .compare th,
  .compare td { padding: 20px 26px; }
  .compare table caption { padding: 18px 26px; font-size: 15px; }
  .compare thead th { padding: 15px 26px; font-size: 12.5px; letter-spacing: 0.06em; }
  .compare tbody th { font-size: 16.5px; font-weight: 800; color: #12141A; width: 150px; }
  .compare tbody td { font-size: 15.5px; line-height: 1.78; }
  .compare .td-brand { background: transparent; color: var(--brand); font-weight: 600; }
  .compare .th-brand { color: var(--brand) !important; }
  .compare thead th.th-brand,
  .compare tbody td.td-brand { border-left: 1px solid var(--line-soft); }
  .compare tbody tr.is-front th,
  .compare tbody tr.is-front td { color: var(--brand); }
  .compare tbody tr.is-front th { font-weight: 800; }
  .compare-note { padding: 18px 26px; font-size: 14px; }
}
/* 移动端：去掉橙底，仅保留橙字，避免小字压缩 */
.compare .td-brand { background: transparent; color: var(--brand); }

/* ---------- 7. 发展历程：补右侧关键动作列 ---------- */
.tl-rail .tl-row {
  grid-template-columns: 132px minmax(0, 1.04fr) minmax(0, 0.82fr);
  gap: clamp(22px, 3vw, 44px);
  align-items: start;
  padding: 26px 0;
}
.tl-rail .tl-body {
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  padding: 0;
}
.tl-rail .tl-body p { max-width: none; }
.tl-rail .tl-y {
  justify-self: start;
  display: inline-block;
  padding: 9px 13px 10px;
  border-radius: 6px;
  border: 1px solid var(--ac-l, rgba(255, 133, 0, 0.2));
  background: var(--ac-t, var(--brand-tint));
  font-size: 21px;
  line-height: 1.05;
}
.tl-rail .tl-y small {
  margin-top: 5px;
  font-size: 11px;
  letter-spacing: 0.1em;
  color: var(--ink-3);
}
.tl-points {
  padding: 14px 18px 15px;
  background: #FAFBFD;
  border: 1px solid var(--line-soft);
  border-radius: 6px;
}
.tl-points .tp-k {
  display: block;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.12em;
  color: var(--ink-4);
}
.tl-points ul { list-style: none; display: grid; gap: 7px; margin: 9px 0 0; padding: 0; }
.tl-points li {
  position: relative;
  padding-left: 13px;
  font-size: 13px;
  line-height: 1.6;
  color: var(--ink-2);
}
.tl-points li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.58em;
  width: 5px;
  height: 5px;
  border-radius: 1px;
  background: var(--ac, var(--brand));
}
@media (max-width: 1000px) {
  .tl-rail .tl-row { grid-template-columns: 112px minmax(0, 1fr); }
  .tl-rail .tl-points { grid-column: 2; }
}
@media (max-width: 720px) {
  .tl-rail .tl-row { grid-template-columns: 1fr; gap: 12px; }
  .tl-rail .tl-points { grid-column: auto; }
}

/* =====================================================================
   v13 · 等距线框插图（P0/P1）
   四张 SVG：GEO 回答对照 / 城市网络 / 集团三源 / 诊断报告样例
   规则：白底或极淡冷灰底、1px 卡片边、8px 圆角，插图为纯矢量不缩放失真
   ===================================================================== */
.illus-figure,
.illus-wide,
.illus-aside {
  margin: 0;
  min-width: 0;
}
/* 分栏里的插图限宽：平板竖排时字不会被放大到失真 */
.illus-figure {
  max-width: 800px;
  margin-inline: auto;
}
.illus-frame {
  background: #fff;
  border: 1px solid var(--card-line);
  border-radius: 8px;
  padding: clamp(12px, 1.7vw, 24px) clamp(10px, 1.5vw, 22px);
}
.illus-frame.is-noline {
  background: #FBFCFE;
  border-color: transparent;
}
.illus-frame.is-tint {
  background: #F3F6FB;
  border-color: rgba(23, 26, 32, 0.07);
  padding: clamp(10px, 1.4vw, 18px);
}
.illus {
  display: block;
  width: 100%;
  height: auto;
}
.illus-scroll {
  overflow-x: auto;
  overscroll-behavior-x: contain;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
}
.illus-figure figcaption,
.illus-wide figcaption,
.illus-aside figcaption {
  margin-top: 12px;
  font-size: 12.5px;
  line-height: 1.62;
  color: var(--ink-3);
}
/* 城市网络：通栏插图与下方卡片之间留一口气 */
.illus-wide {
  margin: 30px 0 26px;
}
.illus-wide .illus-frame {
  padding: clamp(14px, 1.8vw, 26px) 0 clamp(6px, 0.8vw, 12px);
}
/* 诊断页侧栏：插图上紧下松，和面板形成同一列节奏 */
.illus-aside figcaption {
  margin: 10px 2px 2px;
}
.illus-frame picture,
.illus-aside picture { display: block; }
@media (max-width: 820px) {
  .illus-wide { margin: 22px 0 20px; }
  /* 对照图与三联图必须整张同屏，否则看不出对比关系：按容器宽度等比缩小 */
  .illus-figure .illus { min-width: 0; }
  /* 桌面横版图表信息密度高，保底宽度允许横向滑动，避免文字被压扁 */
  .illus-wide .illus { min-width: 720px; }
}
@media (max-width: 620px) {
  /* 620 以下换成竖版插图，不再需要横滑 */
  .illus-wide .illus { min-width: 0; }
  /* 窄屏收掉卡片内边距，把宽度让给图本身 */
  .illus-figure .illus-frame { padding: 10px 8px; }
  .illus-frame.is-tint { padding: 8px; }
}

/* =====================================================================
   v14 · ① CTA 渐变横线统一；②「一路走来」轨道式历程
   ===================================================================== */

/* ---------- 1. 黄→紫 双色渐变（取自同橙GEO 页头底色走向） ---------- */
:root {
  --grad-amber-violet: linear-gradient(90deg,
      #FFDCA8 0%, #FFB25E 30%, #BE9CFF 68%, #8B62F0 100%);
}
.cta-inner h2::before {
  width: 56px;
  background: var(--grad-amber-violet);
}

/* ---------- 2. 历程：左侧年份 + 连续竖轨 + 卡片 ---------- */
.tl2 {
  list-style: none;
  margin: 46px 0 0;
  padding: 0;
}
.tl2-row {
  display: grid;
  grid-template-columns: 88px 24px minmax(0, 1fr);
  column-gap: 20px;
  padding-bottom: 16px;
}
.tl2-row:nth-child(4n + 1) { --ac: var(--brand);   --ac-t: var(--brand-tint);   --ac-l: rgba(255, 133, 0, 0.26); }
.tl2-row:nth-child(4n + 2) { --ac: var(--c-blue);  --ac-t: var(--c-blue-t);     --ac-l: var(--c-blue-l); }
.tl2-row:nth-child(4n + 3) { --ac: var(--c-violet);--ac-t: var(--c-violet-t);   --ac-l: var(--c-violet-l); }
.tl2-row:nth-child(4n + 4) { --ac: var(--c-teal);  --ac-t: var(--c-teal-t);     --ac-l: var(--c-teal-l); }

/* 年份 */
.tl2-year {
  padding-top: 20px;
  text-align: right;
}
.tl2-year strong {
  display: block;
  font-size: 25px;
  line-height: 1;
  font-weight: 800;
  letter-spacing: -0.02em;
  font-variant-numeric: tabular-nums;
  color: var(--ac, var(--brand));
}
.tl2-year span {
  display: block;
  margin-top: 9px;
  font-size: 11px;
  letter-spacing: 0.16em;
  color: var(--ink-4);
}

/* 竖轨与节点：首行从节点起、末行到节点止 */
.tl2-rail { position: relative; }
.tl2-rail::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 0;
  bottom: -16px;
  width: 1px;
  margin-left: -0.5px;
  background: #DDE3EE;
}
.tl2-row:first-child .tl2-rail::before { top: 36px; }
.tl2-row:last-child .tl2-rail::before { bottom: calc(100% - 36px); }
.tl2-rail i {
  position: absolute;
  left: 50%;
  top: 30px;
  width: 12px;
  height: 12px;
  margin-left: -6px;
  border-radius: 50%;
  background: #fff;
  border: 2px solid var(--ac, var(--brand));
  box-shadow: 0 0 0 4px rgba(255, 255, 255, 0.9);
}

/* 卡片 */
.tl2-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 296px;
  background: #fff;
  border: 1px solid var(--card-line);
  border-radius: 8px;
  box-shadow: 0 1px 2px rgba(20, 26, 40, 0.04), 0 12px 28px rgba(20, 26, 40, 0.045);
  transition: border-color 0.2s var(--ease), box-shadow 0.2s var(--ease), transform 0.2s var(--ease);
}
.tl2-row:hover .tl2-card {
  transform: translateY(-2px);
  border-color: var(--ac-l, rgba(255, 133, 0, 0.3));
  box-shadow: 0 2px 6px rgba(20, 26, 40, 0.05), 0 18px 38px rgba(20, 26, 40, 0.08);
}
.tl2-main { padding: 23px 28px 25px; min-width: 0; }
.tl2-top {
  display: flex;
  align-items: center;
  gap: 12px;
}
.tl2-top h3 {
  margin: 0;
  font-size: 17.5px;
  font-weight: 800;
  line-height: 1.35;
  color: #12141A;
}
.tl2-tag {
  flex: none;
  padding: 4px 9px;
  border-radius: 4px;
  border: 1px solid var(--ac-l, rgba(255, 133, 0, 0.26));
  background: var(--ac-t, var(--brand-tint));
  font-size: 11.5px;
  font-weight: 700;
  line-height: 1.4;
  color: var(--ac, var(--brand));
}
.tl2-main p {
  margin: 9px 0 0;
  font-size: 13.5px;
  line-height: 1.75;
  color: var(--ink-3);
}

/* 关键动作列 */
.tl2-acts {
  padding: 21px 24px 22px;
  border-left: 1px solid var(--line-soft);
  background: #FBFCFE;
  border-radius: 0 8px 8px 0;
}
.tl2-k {
  display: block;
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.16em;
  color: var(--ink-4);
}
.tl2-acts ul {
  list-style: none;
  margin: 11px 0 0;
  padding: 0;
  display: grid;
  gap: 9px;
}
.tl2-acts li {
  position: relative;
  padding-left: 27px;
  font-size: 12.5px;
  line-height: 1.62;
  color: var(--ink-2);
}
.tl2-acts li em {
  position: absolute;
  left: 0;
  top: 1px;
  font-style: normal;
  font-size: 10.5px;
  font-weight: 800;
  font-variant-numeric: tabular-nums;
  color: var(--ac, var(--brand));
}

@media (max-width: 1080px) {
  .tl2-card { grid-template-columns: minmax(0, 1fr) 248px; }
  .tl2-main { padding: 21px 22px 23px; }
  .tl2-acts { padding: 19px 20px 20px; }
}
@media (max-width: 900px) {
  .tl2-row { grid-template-columns: 76px 20px minmax(0, 1fr); column-gap: 16px; }
  .tl2-card { grid-template-columns: 1fr; }
  .tl2-acts {
    border-left: 0;
    border-top: 1px solid var(--line-soft);
    border-radius: 0 0 8px 8px;
  }
  .tl2-acts ul { gap: 8px; }
}
@media (max-width: 620px) {
  .tl2 { margin-top: 32px; }
  .tl2-row { grid-template-columns: 58px 16px minmax(0, 1fr); column-gap: 12px; padding-bottom: 12px; }
  .tl2-rail::before { bottom: -12px; }
  .tl2-year { padding-top: 18px; }
  .tl2-year strong { font-size: 19px; }
  .tl2-year span { margin-top: 7px; font-size: 10px; letter-spacing: 0.1em; }
  .tl2-rail i { top: 26px; width: 10px; height: 10px; margin-left: -5px; }
  .tl2-row:first-child .tl2-rail::before { top: 31px; }
  .tl2-row:last-child .tl2-rail::before { bottom: calc(100% - 31px); }
  .tl2-main { padding: 18px 18px 19px; }
  .tl2-top { flex-wrap: wrap; gap: 8px; }
  .tl2-top h3 { font-size: 16px; }
  .tl2-tag { margin-left: 0; }
  .tl2-acts { padding: 16px 18px 18px; }
}

/* =========================================================
   v15 · 页脚关联平台：去卡片框、去小标题，纯橙点 + 名称，两行两列
   ========================================================= */
.footer-group-links { margin-top: 20px; }
.footer-group-links .fgl-label { display: none; }
.fgl-grid {
  display: grid;
  width: 100%;
  grid-template-columns: repeat(2, max-content);
  justify-content: start;
  gap: 12px 36px;
}
.fgl-grid a {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 0;
  border: 0;
  background: none;
  border-radius: 0;
  font-size: 13px;
  line-height: 1.4;
  color: var(--ink-2);
  transform: none;
  transition: color 0.18s;
}
.fgl-grid a::before {
  content: "";
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--brand);
  flex: none;
}
.fgl-grid a:hover {
  color: var(--brand-deep);
  border: 0;
  background: none;
  transform: none;
}
@media (max-width: 620px) {
  .footer-group-links { margin-top: 16px; }
  .fgl-grid { gap: 11px 16px; }
}

/* =========================================================
   v17 · 首页首屏轮播：撑满一屏 + 指示器与内容拉开 + 首屏内容量与其余页对齐
   ========================================================= */
/* 1) 视口高度：优先 svh（移动端地址栏收起时不跳动），回退 vh */
.hero-screen { min-height: 100vh; min-height: 100svh; }
/* 2) 收紧首屏上下留白，把空间让给内容与指示器之间的呼吸区 */
.hero { padding: calc(var(--header-h) + clamp(26px, 3.6vh, 42px)) 0 clamp(18px, 2.6vh, 30px); }
/* 3) 轮播盒纵向撑满 hero 内容区：上为幻灯片，下为指示器 */
.hero-carousel {
  --strip-h: 72px;
  --strip-gap: clamp(38px, 5vh, 58px);
  align-self: stretch;
  display: flex;
  flex-direction: column;
  padding: 0;
}
.hero-viewport {
  flex: 1 1 auto;
  display: flex;
  align-items: center;
}
.hero-slide { display: flex; align-items: center; }
/* 4) 指示器：贴底，并与幻灯片内容拉开（gap + viewport 内剩余留白） */
.hero-strip {
  flex: none;
  margin: var(--strip-gap) auto 0;
}
/* 5) 左右箭头：垂直居中于幻灯片区域（不含指示器），窄屏隐藏避免压到文案 */
.hero-arrow {
  top: 0;
  bottom: calc(var(--strip-h) + var(--strip-gap));
  height: 44px;
  margin-block: auto;
  transform: none;
}
.hero-arrow:hover { transform: scale(1.06); }
@media (max-width: 1439px) {
  .hero-arrow { display: none; }
}
/* 6) 标题字号：1280 两栏时不再被挤成三行（原 4.4vw 命中 52px 上限） */
.hero-copy h1,
.hero-copy h2.hero-title { font-size: clamp(30px, 3.6vw, 50px); }
/* 7) 首页第一张的引擎条与说明：压缩为一行轻量标签，与其他五张的信息量对齐 */
.hero .engine-strip { margin-top: 16px; gap: 6px; }
.hero .engine-strip .es-label,
.hero .engine-strip li:not(.es-label) { font-size: 12px; }
.hero .engine-strip li:not(.es-label) { padding: 4px 10px; }
.hero .hero-proof-cap { margin-top: 12px; font-size: 12px; line-height: 1.5; }

@media (max-width: 1024px) {
  /* 单栏后内容自然高于一屏，取消纵向拉伸，避免窄屏出现刻意的大留白 */
  .hero-carousel { align-self: auto; }
  .hero-viewport { flex: 0 0 auto; }
  .hero-slide { display: block; }
}

/* v17.1 · 首屏内容饱满度与单栏统一 */
/* 桌面：标题/正文/卡片密度略增，让首屏内容更撑得住一屏高度 */
.hero-copy h1,
.hero-copy h2.hero-title { font-size: clamp(32px, 3.9vw, 54px); }
.hero .hero-sub { font-size: clamp(16.5px, 1.2vw, 17.5px); line-height: 1.8; margin-bottom: 32px; }
.hero .hero-note { font-size: 14px; }
.hero .proof-head { padding: 14px 22px; }
.hero .proof-q { padding: 18px 22px 4px; }
.hero .proof-a { padding: 4px 22px 22px; }
.hero .proj-head { padding: 20px 22px; }
.hero .proj-list { padding: 18px 22px 4px; gap: 12px; }
.hero .proj-foot { margin: 14px 22px 22px; }

/* 单栏（≤1024）：第一张的说明文字隐藏、引擎条强制单行，使六张高度接近 */
@media (max-width: 1024px) {
  .hero .hero-proof-cap { display: none; }
  .hero .engine-strip { flex-wrap: nowrap; overflow: hidden; justify-content: center; }
}
@media (max-width: 560px) {
  .hero .engine-strip li:nth-child(n + 6) { display: none; }
}

/* v17.2 · 修正：viewport 变为 flex 容器后，track 需显式占满宽度，
   否则 slide 的 flex-basis:100% 会以 track 的收缩宽度为基准，导致幻灯片被撑宽、窄屏内容被裁 */
.hero-track { width: 100%; }
@media (max-width: 1024px) {
  .hero-viewport { display: block; }
}

/* v17.3 · 视觉平衡：内容在首屏内略微下移（补偿底部指示器的视觉重量），底部留出呼吸 */
.hero { padding-bottom: clamp(26px, 3.6vh, 40px); }
.hero-viewport { padding-top: calc(var(--strip-h) * 0.6); }
@media (max-width: 1024px) {
  .hero-viewport { padding-top: 0; }
}
@media (max-width: 700px) {
  /* 手机：引擎条信息密度过高，隐藏以让第一张与其余五张高度一致 */
  .hero .engine-strip { display: none; }
}

/* v17.4 · 第一张右栏轻量化：引擎信息改为一行浅灰文本，不再是一组胶囊（与其余五张的信息重量对齐） */
.hero-engines {
  margin-top: 16px;
  text-align: center;
  font-size: 12px;
  line-height: 1.7;
  color: var(--ink-3);
}
.hero-engines span { font-weight: 600; margin-right: 6px; }
.hero-proof-cap { margin-top: 6px; }
@media (max-width: 700px) {
  .hero-engines { display: none; }
}

/* =========================================================
   v18 · 首屏纵向呼吸对称：指示器不再贴底，
        指示器底→页面底 的间距 = 顶部 title→滚动内容 的间距
   做法：整块（内容 + 间隔 + 指示器）在 header 下方的内容区里居中，
        hero 上下 padding 取同一值，两端的留白由居中剩余量自动对等。
   ========================================================= */
@media (min-width: 1025px) {
  .hero {
    padding-top: calc(var(--header-h) + clamp(28px, 3.4vh, 40px));
    padding-bottom: clamp(28px, 3.4vh, 40px);
  }
  .hero-carousel {
    /* 高度回到内容本身，交给 .hero 的 align-items:center 居中；
       间隔放大，让指示器与幻灯片之间比两端留白更松，层次更清楚 */
    --strip-gap: clamp(112px, 16vh, 160px);
    align-self: auto;
    justify-content: flex-start;
  }
  /* 视口不再吸收剩余高度（那会把剩余量全塞到内容下方，导致底部贴边） */
  .hero-viewport { flex: 0 0 auto; padding-top: 0; }
  .hero-strip { margin: var(--strip-gap) auto 0; }
  .hero-arrow { bottom: calc(var(--strip-h) + var(--strip-gap)); }
}

/* =========================================================
   v19 · 首屏指示器重做：四张近正方形卡片，三行结构
        ①线性图标 ②标题（大）+ 5–6 字后缀 ③描述（大）
        同时移除「拟态智能体」「内容中台」两项（幻灯片同步删除）
   ========================================================= */
.hero-carousel { --strip-gap: clamp(40px, 5vh, 56px); }

.hero-strip {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
  width: min(900px, calc(100% - 48px));
  row-gap: 18px;
  margin: var(--strip-gap) auto 0;
}

/* 卡片：参考站内白卡（白底 + 1px 中性边 + 10 圆角），比例近正方形 */
.hero-strip .hero-dot {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0;
  padding: 22px 20px 20px;
  aspect-ratio: 1 / 0.92;
  background: #fff;
  border: 1px solid var(--card-line);
  border-radius: 10px;
  box-shadow: none;
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
  text-align: left;
  transform: none;
  transition: border-color 0.2s var(--ease), box-shadow 0.2s var(--ease), background 0.2s var(--ease);
}
/* 清掉旧版格间竖线与悬停位移 */
.hero-strip .hero-dot::before,
.hero-strip .hero-dot + .hero-dot::before { display: none; }
.hero-strip .hero-dot:hover {
  transform: none;
  background: #fff;
  border-color: var(--brand-line);
  box-shadow: 0 10px 24px rgba(18, 20, 26, 0.06);
}

/* 第一行：线性图标 */
.hero-strip .dot-ico {
  display: block;
  width: 26px;
  height: 26px;
  color: var(--ink-3);
  margin-bottom: auto;              /* 图标贴顶，文字块沉到底部，撑满正方形 */
  transition: color 0.2s var(--ease);
}
.hero-strip .dot-ico svg { width: 100%; height: 100%; display: block; }

/* 第二行：标题（大）+ 后缀，同一行随宽度自然折行 */
.hero-strip .dot-t {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 5px;
  font-size: 17px;
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: -0.01em;
  color: #12141A;
}
.hero-strip .dot-t i {
  font-style: normal;
  font-size: 11.5px;
  font-weight: 500;
  line-height: 1.3;
  letter-spacing: 0.01em;
  color: var(--ink-3);
}

/* 第三行：描述 */
.hero-strip .dot-d {
  display: block;
  margin-top: 9px;
  font-size: 13.5px;
  line-height: 1.6;
  color: var(--ink-3);
}

/* 选中态：白底 + 橙边 + 极淡橙底，图标与后缀转橙，不加位移 */
.hero-strip .hero-dot.is-active {
  background: #FFF9F2;
  border-color: var(--brand);
  box-shadow: 0 12px 26px rgba(255, 133, 0, 0.13);
}
.hero-strip .hero-dot.is-active .dot-ico,
.hero-strip .hero-dot.is-active .dot-t i { color: var(--brand); }
.hero-strip .hero-dot.is-active .dot-d { color: var(--ink-2); }

@media (min-width: 1025px) {
  .hero-carousel { --strip-gap: clamp(56px, 8vh, 96px); }
}
/* 窄屏：卡片不再锁正方形，两列自适应高度 */
@media (max-width: 860px) {
  .hero-strip {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    width: calc(100% - 40px);
  }
  .hero-strip .hero-dot { aspect-ratio: auto; padding: 16px 16px 15px; }
  .hero-strip .dot-ico { width: 22px; height: 22px; margin-bottom: 12px; }
  .hero-strip .dot-t { font-size: 16px; }
  .hero-strip .dot-d { margin-top: 6px; font-size: 12.5px; line-height: 1.55; }
}
@media (max-width: 620px) {
  .hero-strip { gap: 10px; width: calc(100% - 32px); }
  .hero-strip .hero-dot { padding: 14px 14px 13px; }
  .hero-strip .dot-t { font-size: 15px; }
  .hero-strip .dot-t i { font-size: 11px; }
  .hero-strip .dot-d { font-size: 12px; }
}

/* v19.1 · 指示器精修：三行均匀分布、字号与图标加重、断点修正 */
.hero-strip .hero-dot {
  justify-content: space-between;
  padding: 24px 22px 22px;
}
.hero-strip .dot-ico {
  width: 30px;
  height: 30px;
  margin-bottom: 0;
  color: var(--ink-2);
}
.hero-strip .dot-t { font-size: 18px; }
.hero-strip .dot-t i { font-size: 12px; }
.hero-strip .dot-d {
  margin-top: 0;
  font-size: 14px;
  line-height: 1.6;
  min-height: 3.2em;      /* 统一按两行占位，四张卡描述行数不同也保持基线一致 */
}
/* 2 列只在真正窄的屏出现；1024 这类平板横屏仍保持 4 张一行，避免卡片被拉成横条 */
@media (max-width: 860px) {
  .hero-strip {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    width: calc(100% - 40px);
  }
  .hero-strip .hero-dot { aspect-ratio: auto; padding: 16px 16px 15px; }
  .hero-strip .dot-ico { width: 24px; height: 24px; margin-bottom: 12px; }
  .hero-strip .dot-t { font-size: 16px; }
  .hero-strip .dot-t i { font-size: 11.5px; }
  .hero-strip .dot-d { margin-top: 6px; font-size: 13px; line-height: 1.55; min-height: 0; }
}

/* v19.2 · 卡片内部改为「图标—标题—描述」紧凑成组、整体垂直居中，避免大块空白 */
.hero-strip .hero-dot { justify-content: center; }
.hero-strip .dot-ico { margin-bottom: 18px; }
.hero-strip .dot-d { margin-top: 8px; }
@media (max-width: 860px) {
  .hero-strip .dot-ico { margin-bottom: 12px; }
  .hero-strip .dot-d { margin-top: 6px; }
}

/* v19.3 · 卡片内容加重：图标 34、标题 19、描述 14.5，让近正方形卡片填得更满 */
.hero-strip .dot-ico { width: 34px; height: 34px; margin-bottom: 20px; }
.hero-strip .dot-t { font-size: 19px; }
.hero-strip .dot-t i { font-size: 12.5px; }
.hero-strip .dot-d { font-size: 14.5px; line-height: 1.6; min-height: 3.24em; }
@media (max-width: 860px) {
  .hero-strip .dot-ico { width: 26px; height: 26px; margin-bottom: 12px; }
  .hero-strip .dot-t { font-size: 16.5px; }
  .hero-strip .dot-t i { font-size: 11.5px; }
  .hero-strip .dot-d { font-size: 13px; min-height: 0; }
}

/* v19.4 · 统一描述占位：窄屏也按两行占位，避免四张卡高度参差 */
@media (max-width: 860px) {
  .hero-strip .dot-d { min-height: 2.6em; }
}

/* v19.5 · 标题+后缀单行不换行：卡片加宽到 940、内边距收窄、标题 18/后缀 11.5 */
.hero-strip {
  width: min(940px, calc(100% - 48px));
  gap: 18px;
}
.hero-strip .hero-dot {
  padding: 24px 20px 22px;
  aspect-ratio: 1 / 0.88;
}
.hero-strip .dot-t { font-size: 18px; gap: 4px; }
.hero-strip .dot-t i { font-size: 11.5px; }
@media (min-width: 1025px) {
  .hero-carousel { --strip-gap: clamp(48px, 7vh, 80px); }
}
@media (max-width: 860px) {
  .hero-strip { width: calc(100% - 40px); gap: 12px; }
  .hero-strip .hero-dot { padding: 16px 16px 15px; aspect-ratio: auto; }
  .hero-strip .dot-t { font-size: 16.5px; gap: 5px; }
  .hero-strip .dot-t i { font-size: 11.5px; }
}

/* v19.6 · 描述两行均分断行，避免末行只剩一个字；窄屏后缀独占一行，四张卡高度一致 */
.hero-strip .dot-d { text-wrap: balance; }
@media (max-width: 860px) {
  .hero-strip .dot-t { display: block; }
  .hero-strip .dot-t i { display: block; margin-top: 3px; }
}

/* v19.7 · 收尾：后缀 12.5、卡片内节奏与选中态加强 */
.hero-strip .dot-t i { font-size: 12.5px; }
.hero-strip .dot-ico { margin-bottom: 22px; }
.hero-strip .dot-d { margin-top: 10px; }
.hero-strip .hero-dot.is-active { background: #FFF6EC; }
@media (max-width: 860px) {
  .hero-strip .dot-ico { margin-bottom: 12px; }
  .hero-strip .dot-d { margin-top: 8px; }
  .hero-strip .dot-t i { font-size: 12px; }
}

/* v19.8 · 窄屏描述占位按「两行」实际高度（13px × 1.55 × 2 ≈ 3.1em），四张卡恢复等高 */
@media (max-width: 860px) {
  .hero-strip .dot-d { min-height: 3.1em; }
}

/* v19.9 · 861–990 区间四列偏窄：字号与比例微调，避免「OPC Store + 后缀」换行把卡片撑高 */
@media (min-width: 861px) and (max-width: 990px) {
  .hero-strip .hero-dot { aspect-ratio: 1 / 0.94; }
  .hero-strip .dot-t { font-size: 16px; }
  .hero-strip .dot-t i { font-size: 11px; }
}

/* =========================================================
   v20 · 首屏指示器：无边框长方形 + 细竖线分隔 + 选中项橙白渐变玻璃
        标题后缀与标题同字号，仅颜色更淡
   ========================================================= */
.hero-strip {
  --div-gap: 40px;
  --div-line: rgba(18, 20, 26, 0.09);
  grid-template-columns: repeat(4, minmax(0, 1fr));
  column-gap: var(--div-gap);
  row-gap: 0;
  align-items: stretch;
  /* 与内容容器同宽，再用 16px 负边距让首卡文字对齐容器左边界 */
  width: min(calc(var(--container) + 32px), calc(100% - 16px));
  margin: var(--strip-gap) auto 0;
}

/* 卡片：透明底、无边框、无圆角外框，宽高随内容（长方形） */
.hero-strip .hero-dot {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-start;
  gap: 0;
  width: auto;
  height: auto;
  aspect-ratio: auto;
  padding: 16px 16px 18px;
  background: none;
  border: 0;
  border-radius: 12px;
  box-shadow: none;
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
  text-align: left;
  transform: none;
  transition: background 0.22s var(--ease), box-shadow 0.22s var(--ease);
}
/* 卡片之间的淡竖线：落在两列间隙正中 */
.hero-strip .hero-dot + .hero-dot::before {
  content: "";
  display: block;
  position: absolute;
  left: calc(var(--div-gap) / -2 - 0.5px);
  top: 20px;
  bottom: 22px;
  width: 1px;
  height: auto;
  transform: none;
  background: var(--div-line);
}
.hero-strip .hero-dot:first-child::before { display: none; }

/* 悬停：只给极淡底，不位移、不加边 */
.hero-strip .hero-dot:hover {
  background: rgba(18, 20, 26, 0.022);
  border: 0;
  box-shadow: none;
  transform: none;
}

/* 第一行：线性图标 */
.hero-strip .dot-ico {
  width: 30px;
  height: 30px;
  margin: 0 0 14px;
  color: var(--ink-3);
  transition: color 0.22s var(--ease);
}

/* 第二行：标题 + 后缀（同字号，后缀仅颜色更淡） */
.hero-strip .dot-t {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 6px;
  font-size: clamp(16.5px, 1.2vw, 18px);
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: -0.01em;
  color: #12141A;
}
.hero-strip .dot-t i {
  display: inline;
  margin: 0;
  font-size: inherit;
  font-weight: 400;
  line-height: inherit;
  letter-spacing: 0;
  color: var(--ink-3);
}

/* 第三行：描述 */
.hero-strip .dot-d {
  margin-top: 6px;
  font-size: 14px;
  line-height: 1.6;
  min-height: 0;
  color: var(--ink-3);
  text-wrap: pretty;
}

/* 选中项：橙白渐变玻璃 */
.hero-strip .hero-dot.is-active,
.hero-strip .hero-dot.is-active:hover {
  background:
    radial-gradient(140% 120% at 0% 100%, rgba(255, 133, 0, 0.34) 0%, rgba(255, 133, 0, 0.09) 46%, rgba(255, 255, 255, 0) 72%),
    radial-gradient(120% 100% at 10% 0%, rgba(255, 255, 255, 0.98) 0%, rgba(255, 255, 255, 0) 60%),
    linear-gradient(135deg, #FFF6EC 0%, #FFFAF3 46%, #FFFFFF 100%);
  border: 0;
  -webkit-backdrop-filter: blur(18px) saturate(1.2);
  backdrop-filter: blur(18px) saturate(1.2);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.95),
    0 16px 32px -14px rgba(255, 133, 0, 0.32),
    0 2px 8px rgba(120, 80, 20, 0.05);
}
.hero-strip .hero-dot.is-active .dot-ico { color: var(--brand); }
.hero-strip .hero-dot.is-active .dot-t i { color: rgba(255, 133, 0, 0.78); }
.hero-strip .hero-dot.is-active .dot-d { color: var(--ink-2); }

/* 竖线占据的高度随新卡片高度收窄 */
.hero-carousel { --strip-h: 132px; }

/* ≤1024：单栏，改为纵向列表，横线分隔 + 图标在左，玻璃选中态同样适用 */
@media (max-width: 1024px) {
  .hero-strip {
    grid-template-columns: 1fr;
    column-gap: 0;
    row-gap: 0;
    width: min(calc(var(--container) + 32px), calc(100% - 16px));
    margin: var(--strip-gap) auto 0;
  }
  .hero-strip .hero-dot {
    display: grid;
    grid-template-columns: 30px minmax(0, 1fr);
    column-gap: 14px;
    align-items: start;
    padding: 15px 16px;
  }
  .hero-strip .dot-ico {
    grid-column: 1;
    grid-row: 1 / span 2;
    width: 26px;
    height: 26px;
    margin: 2px 0 0;
  }
  .hero-strip .dot-t {
    grid-column: 2;
    display: flex;
    font-size: 16.5px;
    gap: 7px;
  }
  .hero-strip .dot-t i { display: inline; margin: 0; font-size: inherit; }
  .hero-strip .dot-d {
    grid-column: 2;
    margin-top: 5px;
    font-size: 13.5px;
    min-height: 0;
  }
  /* 横线：位于上下两行之间 */
  .hero-strip .hero-dot + .hero-dot::before {
    left: 16px;
    right: 16px;
    top: -0.5px;
    bottom: auto;
    width: auto;
    height: 1px;
  }
}

@media (max-width: 620px) {
  .hero-strip .hero-dot { padding: 13px 14px; grid-template-columns: 26px minmax(0, 1fr); column-gap: 12px; }
  .hero-strip .dot-ico { width: 24px; height: 24px; }
  .hero-strip .dot-t { font-size: 15.5px; }
  .hero-strip .dot-d { font-size: 13px; }
  .hero-strip .hero-dot + .hero-dot::before { left: 14px; right: 14px; }
}


/* v20.1 · 解除旧版「窄屏按行首隐藏竖线」规则（v8 的三列/两列布局遗留），
   并让分隔线在两种布局下都完整显示 */
@media (max-width: 1080px) {
  .hero-strip .hero-dot:nth-child(3n + 1):not(.is-active)::before { display: block; }
}
@media (max-width: 700px) {
  .hero-strip .hero-dot:nth-child(2n + 1):not(.is-active)::before { display: block; }
}
/* 描述略放大，与放大的标题保持比例 */
.hero-strip .dot-d { font-size: 14.5px; }
@media (max-width: 1024px) {
  .hero-strip .dot-d { font-size: 13.5px; }
}

/* v20.2 · 旧版「选中项左右竖线隐藏 / 行首隐藏」规则特异度更高，
   这里按同特异度后置覆盖，保证分隔线在任何一张被选中时都完整存在 */
.hero-strip .hero-dot.is-active::before,
.hero-strip .hero-dot.is-active + .hero-dot::before { display: block; }
.hero-strip .hero-dot:first-child::before { display: none; }

/* v20.3 · 悬停更克制：只留极淡底色 + 图标转深，不与选中态抢视觉 */
.hero-strip .hero-dot:hover { background: rgba(18, 20, 26, 0.016); }
.hero-strip .hero-dot:hover .dot-ico { color: var(--ink-2); }
.hero-strip .hero-dot.is-active:hover { background:
  radial-gradient(140% 120% at 0% 100%, rgba(255, 133, 0, 0.34) 0%, rgba(255, 133, 0, 0.09) 46%, rgba(255, 255, 255, 0) 72%),
  radial-gradient(120% 100% at 10% 0%, rgba(255, 255, 255, 0.98) 0%, rgba(255, 255, 255, 0) 60%),
  linear-gradient(135deg, #FFF6EC 0%, #FFFAF3 46%, #FFFFFF 100%); }

/* =========================================================
   v21 · 首屏指示器选中态：改为站内按钮的橙白渐变 + 白字
        参考 --brand-grad-btn（内容区「预约诊断」等按钮）
   ========================================================= */
.hero-strip .hero-dot.is-active,
.hero-strip .hero-dot.is-active:hover {
  background-color: #FF8500;
  background-image: var(--brand-grad-btn);
  border: 0;
  border-radius: 10px;
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
  box-shadow:
    0 12px 26px -10px rgba(255, 133, 0, 0.5),
    0 2px 8px rgba(120, 80, 20, 0.06),
    inset 0 1px 0 rgba(255, 255, 255, 0.4);
}
/* 三行文字全部转白，后缀仅降低不透明度 */
.hero-strip .hero-dot.is-active .dot-ico { color: #fff; }
.hero-strip .hero-dot.is-active .dot-t {
  color: #fff;
  text-shadow: 0 1px 1px rgba(140, 62, 0, 0.16);
}
.hero-strip .hero-dot.is-active .dot-t i {
  color: rgba(255, 255, 255, 0.8);
  text-shadow: none;
}
.hero-strip .hero-dot.is-active .dot-d {
  color: rgba(255, 255, 255, 0.88);
  text-shadow: 0 1px 1px rgba(140, 62, 0, 0.1);
}
/* 选中卡的竖线交给卡片自身圆角隔开，避免橙块边缘出现多余细线 */
.hero-strip .hero-dot.is-active::before { opacity: 0.5; }

/* =========================================================
   v22 · 首屏三段呼吸间距统一（仅桌面 ≥1025）
        内容上留白 = 内容→指示器 = 指示器→页面底
        做法：carousel 撑满首屏内容区，三个 auto margin 均分剩余空间
   ========================================================= */
@media (min-width: 1025px) {
  .hero {
    padding-top: var(--header-h);
    padding-bottom: 0;
  }
  .hero-carousel {
    --strip-gap: 0px;
    flex: 0 0 auto;
    align-self: stretch;
    justify-content: flex-start;
  }
  /* 只保留一个相邻 auto margin 形成一段间距，避免两段合并变大 */
  .hero-viewport {
    flex: 0 0 auto;
    margin-top: auto;
    margin-bottom: 0;
  }
  .hero-strip {
    flex: none;
    /* 四边 auto：上/下各占一段剩余空间，左右维持居中 */
    margin: auto;
  }
  /* 箭头仍与幻灯片内容垂直居中：底边 = 指示器高 + 一段间距 */
  .hero-arrow {
    --content-h: 372px;
    top: 0;
    bottom: calc(var(--strip-h) + (100% - var(--content-h) - var(--strip-h)) / 3);
    height: 44px;
    margin-block: auto;
    transform: none;
  }
  .hero-arrow:hover { transform: scale(1.06); }
}

/* v22.1 · 单栏（≤1024）：指示器上间距与 hero 下内边距取同一值，
   使「内容→指示器」与「指示器→页面底」在窄屏也保持一致 */
@media (max-width: 1024px) {
  .hero-strip { margin-top: clamp(26px, 3.6vh, 40px); }
}

/* =========================================================
   v23 · 首页轮播 2–4 张：右侧改为抽象渐变卡片背景图
        （去掉原拟物「项目卡」截图风格，第一张 AI 回答卡保留）
   ========================================================= */
.hero-art {
  margin: 0;
  width: 100%;
  position: relative;
}
.hero-art img {
  display: block;
  width: 100%;
  height: auto;
}
/* 单栏：图在文案下方居中，限制最大宽度避免半屏高 */
@media (max-width: 1024px) {
  .hero-art {
    width: min(100%, 620px);
    margin: 4px auto 2px;
  }
}
@media (max-width: 560px) {
  .hero-art { width: 100%; }
}

/* =========================================================
   v24 · 首页轮播右侧：四张背景图（替换原有插画/拟物卡）
        16:9 盒 + cover 裁切，白底图与页面自然衔接
   ========================================================= */
.hero-art {
  margin: 0;
  width: 100%;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: #fff;
}
.hero-art img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 88% 50%;
}

/* v24.1 · 图片四边柔化，去掉白块矩形边界；第 2 张留白偏多，整体放大取右 */
.hero-art {
  -webkit-mask-image: radial-gradient(122% 118% at 52% 50%, #000 62%, rgba(0, 0, 0, 0) 94%);
  mask-image: radial-gradient(122% 118% at 52% 50%, #000 62%, rgba(0, 0, 0, 0) 94%);
}
.hero-slide:nth-child(2) .hero-art img {
  transform: scale(1.14);
  transform-origin: 100% 48%;
}
.hero-slide:nth-child(4) .hero-art img {
  transform: scale(1.05);
  transform-origin: 50% 52%;
}

/* v24.2 · 白底图用正片叠底融入页面（白 → 透明，浅色渐变只轻微加深），
   取消 v24.1 的 radial 遮罩（半径过大未起作用的写法） */
.hero-art {
  -webkit-mask-image: none;
  mask-image: none;
  background: transparent;
  mix-blend-mode: multiply;
}

/* v24.3 · 用径向遮罩让图片四边渐隐（页面右侧有淡紫/淡橙光斑，
   纯白图直贴会显出一个更亮的矩形），mix-blend-mode 因轮播层叠上下文无效，改回 normal */
.hero-art {
  mix-blend-mode: normal;
  -webkit-mask-image: radial-gradient(70% 70% at 50% 50%, #000 40%, rgba(0, 0, 0, 0) 100%);
  mask-image: radial-gradient(70% 70% at 50% 50%, #000 40%, rgba(0, 0, 0, 0) 100%);
}
/* 第 3 张的弧形玻璃带本就铺满右侧，保留完整不羽化 */
.hero-slide:nth-child(3) .hero-art {
  -webkit-mask-image: none;
  mask-image: none;
}

/* v24.4 · 单栏（≤1024）恢复宽度上限（v24 的 width:100% 覆盖了 v23 的 520px 限制） */
@media (max-width: 1024px) {
  .hero-art {
    width: min(100%, 620px);
    margin: 4px auto 2px;
  }
}

/* =========================================================
   v25 · 轮播右侧图「出血」到视口右缘：不再露出图片右边框
        bleed = 容器两侧留白 = (视口 - 网格宽) / 2
        高度改为跟随左栏内容（不再按 16:9 撑高），避免出血后把首屏拉长
   ========================================================= */
@media (min-width: 1025px) {
  .hero-grid {
    --bleed: calc((100vw - min(var(--container), 100vw - 48px)) / 2);
  }
  .hero-art {
    aspect-ratio: auto;
    height: 100%;
    align-self: stretch;
    width: calc(100% + var(--bleed));
    margin: 0 calc(-1 * var(--bleed)) 0 0;
    /* 左侧与上下渐隐，右侧出画不再需要遮罩 */
    -webkit-mask-image:
      linear-gradient(90deg, transparent 0, #000 16%, #000 100%),
      linear-gradient(180deg, transparent 0, #000 8%, #000 92%, transparent 100%);
    -webkit-mask-composite: source-in;
    mask-image:
      linear-gradient(90deg, transparent 0, #000 16%, #000 100%),
      linear-gradient(180deg, transparent 0, #000 8%, #000 92%, transparent 100%);
    mask-composite: intersect;
  }
  /* 第 3 张之前单独取消了遮罩，这里恢复统一的边缘渐隐 */
  .hero-slide:nth-child(3) .hero-art {
    -webkit-mask-image:
      linear-gradient(90deg, transparent 0, #000 16%, #000 100%),
      linear-gradient(180deg, transparent 0, #000 8%, #000 92%, transparent 100%);
    mask-image:
      linear-gradient(90deg, transparent 0, #000 16%, #000 100%),
      linear-gradient(180deg, transparent 0, #000 8%, #000 92%, transparent 100%);
  }
  /* 出血后图片更宽更高，缩小原先的放大倍数 */
  .hero-slide:nth-child(2) .hero-art img { transform: scale(1.02); transform-origin: 100% 48%; }
  .hero-slide:nth-child(4) .hero-art img { transform: none; }
}

/* v25.1 · 高度基准修正：figure 在 .hero-visual 内，需先把 grid item 拉到行高，
   否则 height:100% 相对 auto 高度失效，图会按自身比例缩成 310 高 */
@media (min-width: 1025px) {
  .hero-grid { align-items: stretch; }
  .hero-visual { height: 100%; align-self: stretch; }
  .hero-art { height: 100%; }
}

/* v25.2 · 图改为绝对定位铺满右栏并向右出血：
   避免 height:100% 参与网格固有高度计算把 slide 撑到 406（三段间距被带偏） */
@media (min-width: 1025px) {
  .hero-visual {
    position: relative;
    height: auto;
  }
  .hero-art {
    position: absolute;
    inset: 0 calc(-1 * var(--bleed)) 0 0;
    width: auto;
    height: auto;
    margin: 0;
    aspect-ratio: auto;
  }
}

/* v25.3 · 左侧渐隐加深，避免图片左端裁切线在文案右侧形成硬边 */
@media (min-width: 1025px) {
  .hero-art,
  .hero-slide:nth-child(3) .hero-art {
    -webkit-mask-image:
      linear-gradient(90deg, transparent 0, rgba(0, 0, 0, 0.55) 8%, #000 24%, #000 100%),
      linear-gradient(180deg, transparent 0, #000 7%, #000 93%, transparent 100%);
    -webkit-mask-composite: source-in;
    mask-image:
      linear-gradient(90deg, transparent 0, rgba(0, 0, 0, 0.55) 8%, #000 24%, #000 100%),
      linear-gradient(180deg, transparent 0, #000 7%, #000 93%, transparent 100%);
    mask-composite: intersect;
  }
  .hero-slide:nth-child(2) .hero-art img { transform: none; }
}

/* =========================================================
   v26 · 交付网络：社区卡（原「城市 + 社区列表」改为社区卡）
        每张卡 = 一个社区，按城市顺序排列；3 列 → 2 列 → 1 列
   ========================================================= */
.cm-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}
.cm-card {
  display: flex;
  flex-direction: column;
  gap: 9px;
  padding: 20px 22px 22px;
  background: #fff;
  border: 1px solid var(--card-line);
  border-radius: 10px;
  transition: border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
}
.cm-card:hover {
  border-color: rgba(255, 133, 0, 0.26);
  box-shadow: 0 16px 32px -20px rgba(23, 26, 32, 0.3);
  transform: translateY(-2px);
}
.cm-top {
  display: flex;
  align-items: center;
  gap: 8px;
}
.cm-city {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 12px;
  font-weight: 700;
  color: #6e747f;
  letter-spacing: 0.02em;
}
.cm-city svg {
  width: 13px;
  height: 13px;
  color: var(--brand);
  flex: none;
}
.cm-hub {
  margin-left: auto;
  font-size: 10.5px;
  font-weight: 700;
  line-height: 1;
  color: var(--brand);
  background: var(--brand-tint);
  border-radius: 4px;
  padding: 4px 7px;
  letter-spacing: 0.04em;
}
.cm-card h3 {
  font-size: 17px;
  font-weight: 800;
  line-height: 1.4;
  color: #12141a;
  letter-spacing: -0.01em;
}
.cm-card h3 i {
  display: block;
  margin-top: 2px;
  font-style: normal;
  font-size: 11.5px;
  font-weight: 600;
  color: #9ba1ac;
  letter-spacing: 0.03em;
}
.cm-card p {
  font-size: 13.5px;
  line-height: 1.78;
  color: #5a616d;
}
@media (max-width: 1100px) {
  .cm-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
  .cm-grid { grid-template-columns: 1fr; gap: 12px; }
  .cm-card { padding: 18px 18px 18px; }
}

/* v26.1 · 社区网格底部说明（原来的 .note-inline 会带「待补充」前缀，名单已确认不再适用） */
.cm-note {
  margin-top: 20px;
  font-size: 12.5px;
  line-height: 1.7;
  color: #9ba1ac;
  letter-spacing: 0.01em;
}

/* v29.1 · 「可运行 / 可计量 / 可复算」只作模块大标题，卡片保持原样，无额外样式 */

/* =========================================================
   v30 · 「其他地区正在筹办」占位卡（社区卡网格末位）
        虚线边框 + 灰底徽标，与真实社区卡同一网格、同一行高，
        视觉上明确是"待补位"，不抢真实社区的信息量。
   ========================================================= */
.cm-card.is-soon {
  background: #fbfbfc;
  border-style: dashed;
  border-color: rgba(23, 26, 32, 0.14);
}
.cm-card.is-soon:hover {
  border-color: rgba(255, 133, 0, 0.3);
  box-shadow: none;
  transform: none;
}
.cm-soon {
  margin-left: auto;
  font-size: 10.5px;
  font-weight: 700;
  line-height: 1;
  color: #7c828d;
  background: #eef0f4;
  border-radius: 4px;
  padding: 4px 7px;
  letter-spacing: 0.04em;
}
.cm-card.is-soon .cm-city {
  color: #7c828d;
}
.cm-card.is-soon .cm-city svg {
  color: #b6bbc4;
}

/* v30.1 · 两列布局下，筹备卡独占整行（否则 9 张会留下一格空白） */
@media (max-width: 1100px) and (min-width: 641px) {
  .cm-card.is-soon {
    grid-column: 1 / -1;
  }
}

/* =========================================================
   v31 · 显示动画统一（入场节奏 / 轮播切页 / 内页首屏 / 无障碍）
        原则：只做透明度 + 极小位移，不做缩放与特效；
        所有动画都能被 prefers-reduced-motion 一键关闭。
   ========================================================= */

/* 1) 两个基础关键帧：内容上浮 12px 入场、纯淡入（用于带遮罩的图片） */
@keyframes fx-rise {
  from { opacity: 0; transform: translateY(12px); }
  to   { opacity: 1; transform: none; }
}
@keyframes fx-fade {
  from { opacity: 0; }
  to   { opacity: 1; }
}

/* 2) 首页轮播：当前这张的文案逐行上浮、右图淡入
      is-active 由 main.js 维护，每次切页重新触发；
      首个 slide 在 HTML 里就带 is-active，页面打开即播，不等 JS */
.hero-slide.is-active .hero-copy > * {
  animation: fx-rise 0.58s var(--ease) both;
}
.hero-slide.is-active .hero-copy > *:nth-child(2) { animation-delay: 0.05s; }
.hero-slide.is-active .hero-copy > *:nth-child(3) { animation-delay: 0.1s; }
.hero-slide.is-active .hero-copy > *:nth-child(4) { animation-delay: 0.15s; }
/* 右图带 mask 出血，只用透明度，避免 transform 触发遮罩重算 */
.hero-slide.is-active .hero-visual {
  animation: fx-fade 0.72s var(--ease) both;
  animation-delay: 0.06s;
}
/* 指示器与箭头只在首次载入时淡入一次（不在每次切页重播） */
.hero-screen .hero-strip {
  animation: fx-rise 0.7s var(--ease) both;
  animation-delay: 0.16s;
}
.hero-screen .hero-arrow {
  animation: fx-fade 0.6s var(--ease) both;
  animation-delay: 0.22s;
}

/* 3) 内页首屏：标题区逐行上浮，右侧数据条稍后跟上
      纯 CSS，不依赖 JS，避免"先整块出现再重播"的闪烁 */
.page-hero .ph-main > * {
  animation: fx-rise 0.6s var(--ease) both;
}
.page-hero .ph-main > *:nth-child(2) { animation-delay: 0.05s; }
.page-hero .ph-main > *:nth-child(3) { animation-delay: 0.1s; }
.page-hero .ph-main > *:nth-child(4) { animation-delay: 0.15s; }
.page-hero .ph-facts {
  animation: fx-rise 0.62s var(--ease) both;
  animation-delay: 0.12s;
}

/* 4) 数字滚动时宽度不抖：等宽数字 */
.stat-num { font-variant-numeric: tabular-nums; }

/* 5) 降低动效偏好：入场延迟清零、上述入场全部关闭 */
@media (prefers-reduced-motion: reduce) {
  .reveal,
  .reveal.in-view { transition-delay: 0s !important; }
  .hero-slide.is-active .hero-copy > *,
  .hero-slide.is-active .hero-visual,
  .hero-screen .hero-strip,
  .hero-screen .hero-arrow,
  .page-hero .ph-main > *,
  .page-hero .ph-facts {
    animation: none !important;
  }
}

/* v31.1 · 切页时旧图的出血部分会拖进视口（图比 slide 宽），
   非激活 slide 的右图直接收掉，滑动过程只剩新页淡入，不再有拖尾 */
.hero-slide:not(.is-active) .hero-visual {
  opacity: 0;
}

/* v31.2 · 入场改由 animation 驱动
   卡片自己的 `transition: border-color …` 简写会覆盖 .reveal 的
   opacity/transform 过渡（.cm-card、.spec-card 等因此是"瞬间出现"）。
   animation 不受 transition 简写影响，且 `backwards` 结束后不保持终态，
   hover 的位移与阴影仍走卡片原本的 transition。 */
.reveal.in-view {
  animation: fx-rise 0.62s var(--ease) backwards;
  animation-delay: var(--rd, 0s);
}
@media (prefers-reduced-motion: reduce) {
  .reveal,
  .reveal.in-view {
    animation: none !important;
    transition: none !important;
    opacity: 1 !important;
    transform: none !important;
  }
}

/* v31.3 · 指示器切页时文字颜色平滑过渡（原来 background 有 0.25s、color 是瞬跳，
   橙底刚铺开时白字已经"啪"地出现，观感上像闪一下） */
.hero-strip .hero-dot .dot-ico,
.hero-strip .hero-dot .dot-t,
.hero-strip .hero-dot .dot-t i,
.hero-strip .hero-dot .dot-d {
  transition: color 0.25s var(--ease), opacity 0.25s var(--ease);
}

/* =========================================================
   v32 · 无报价版合作方式（原「三档价格」改造）
        价格数字全部撤下，改用「适合谁 + 交付内容」表达，
        .pc-for 替代原 .pc-range/.pc-unit 的位置，视觉权重降一级。
   ========================================================= */
.price-card .pc-for {
  font-size: 13.5px;
  line-height: 1.7;
  color: var(--ink-3);
  margin-bottom: 18px;
  min-height: 46px;
}
@media (max-width: 860px) {
  .price-card .pc-for { min-height: 0; }
}
.plan-note {
  margin-top: 28px;
  padding: 16px 20px;
  font-size: 13.5px;
  line-height: 1.75;
  color: var(--ink-3);
  background: var(--bg-soft);
  border-left: 3px solid rgba(255, 133, 0, 0.55);
  border-radius: 0 10px 10px 0;
}
@media (max-width: 620px) {
  .plan-note { padding: 14px 16px; font-size: 13px; }
}

/* =========================================================
   v32.1 · 移动端适配校正
        1) 三列对照表在手机上不再挤成「每行 4–6 字」，改为行卡片
        2) 子导航横向滚动加渐隐提示，并压紧间距，露出更多项
        3) 窄屏（≤360）标题字号下调，避免「说准」被挤成孤字
        4) 页脚与卡内链接点按区域补到 34px 以上
   ========================================================= */

/* 1) 对照表 → 行卡片（td 的 data-label 由 HTML 提供，桌面端不显示） */
@media (max-width: 660px) {
  .compare { margin-top: 32px; overflow-x: visible; }
  .compare table { display: block; min-width: 0; table-layout: auto; }
  .compare tbody,
  .compare tr,
  .compare th,
  .compare td { display: block; width: auto; }
  .compare caption { display: block; padding: 16px 18px; font-size: 14.5px; line-height: 1.5; }
  .compare thead { display: none; }
  .compare tbody tr { padding: 14px 18px 10px; border-bottom: 1px solid var(--line-soft); }
  .compare tbody tr:last-child { border-bottom: 0; }
  .compare tbody th {
    width: 100%;
    max-width: none;
    padding: 0 0 10px;
    border-bottom: 0;
    font-size: 15.5px;
    font-weight: 800;
    line-height: 1.4;
    color: #12141A;
    overflow-wrap: normal;
  }
  .compare tbody td {
    display: grid;
    grid-template-columns: 62px minmax(0, 1fr);
    gap: 10px;
    padding: 7px 0;
    border-bottom: 0;
    font-size: 13.5px;
    line-height: 1.7;
  }
  .compare tbody td::before {
    content: attr(data-label);
    font-size: 11.5px;
    font-weight: 600;
    line-height: 2;
    color: var(--ink-3);
  }
  .compare tbody td.td-brand {
    background: rgba(255, 133, 0, 0.05);
    border-radius: 8px;
    padding: 8px 10px;
    margin-top: 2px;
  }
  .compare tbody td.td-brand::before { color: var(--brand); }
  .compare-note { padding: 14px 18px; font-size: 12.5px; line-height: 1.75; }
}

/* 2) 子导航：可横滑，右侧渐隐提示「还有内容」 */
@media (max-width: 760px) {
  .subnav-inner {
    gap: 18px;
    padding-right: 26px;
    scroll-snap-type: x proximity;
    -webkit-overflow-scrolling: touch;
    -webkit-mask-image: linear-gradient(90deg, #000 0, #000 calc(100% - 24px), transparent 100%);
    mask-image: linear-gradient(90deg, #000 0, #000 calc(100% - 24px), transparent 100%);
  }
  .subnav a { scroll-snap-align: start; }
}

/* 3) 窄屏标题：保持既有换行点成立，不出孤字 */
@media (max-width: 360px) {
  .page-hero h1 { font-size: 27px; letter-spacing: -0.01em; }
  .hero-copy h1,
  .hero-copy h2.hero-title { font-size: 26px; }
  .section-head h2,
  .results-copy h2,
  .contact-lead h2 { font-size: 25px; }
}

/* 4) 点按区域：页脚与卡内文字链接补足高度 */
@media (max-width: 760px) {
  .footer-col { gap: 6px; }
  .footer-col a { padding: 6px 0; }
  .footer-group-links { gap: 8px 10px; }
  .footer-group-links a {
    display: inline-flex;
    align-items: center;
    min-height: 34px;
    padding: 7px 12px;
  }
  .spec-go { display: inline-block; padding: 5px 0; }
  .cm-hub, .cm-soon { font-size: 11px; }
}

/* 5) 「待补充」这类行内备注：标签不参与换行，正文正常折行 */
.note-inline { align-items: flex-start; }
.note-inline::before { flex: none; white-space: nowrap; line-height: 1.6; }
@media (max-width: 400px) {
  .note-inline { font-size: 12.5px; padding: 7px 11px; gap: 6px; }
}

/* =========================================================
   v32 · 页脚移动端：品牌通栏 + 业务 / 资源 / 公司 三列并排
   原来 ≤560 每列独占一行（右侧大片空白、页脚近千像素高），
   ≤860 两列时「公司」掉到第二行左侧、右侧同样空着。
   ========================================================= */
@media (max-width: 860px) {
  .footer-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 22px 16px;
    padding: 34px 0 26px;
    align-items: start;
  }
  .footer-brand { grid-column: 1 / -1; }
  .footer-brand p {
    margin: 10px 0 14px;
    max-width: none;
    font-size: 13.5px;
    line-height: 1.65;
  }
  .footer-group-links { gap: 8px; }
  .footer-group-links a { padding: 0 11px; }
  .footer-col { gap: 2px; }
  .footer-col h3 { margin-bottom: 6px; font-size: 13px; letter-spacing: 0.04em; }
  .footer-col a { font-size: 13.5px; padding: 7px 0; }
}

@media (max-width: 400px) {
  .footer-grid { gap: 20px 10px; }
  .footer-col h3 { font-size: 12.5px; }
  .footer-col a { font-size: 13px; }
}

@media (max-width: 560px) {
  .footer-bottom { padding: 14px 0 16px; gap: 4px; font-size: 12.5px; }
}

/* v32.1 · 页脚版权 / 备案行：移动端居中
   ≤560 由 style.css 转成两行竖排，这里只负责居中；
   561–860 仍是一行，整组居中即可，不让页脚白长一截。 */
@media (max-width: 860px) {
  .footer-bottom {
    align-items: center;
    justify-content: center;
    text-align: center;
    gap: 4px;
  }
}

/* =========================================================
   v33 · 首页第 4 张（AI 学院）构图重心偏低，整体上移并轻微放大，
        与其余三张的视觉重心对齐
   ========================================================= */
.hero-slide:nth-child(4) .hero-art img {
  transform: translateY(-14%) scale(1.16);
  transform-origin: 50% 50%;
}

/* =========================================================
   v34 · 顶栏：首屏透明，随滚动转白底
        （原来常驻白底实色；--hdr-p 由 main.js 按 0~160px 写入，
         .scrolled 在 y > 8 时加上）
   ========================================================= */
.site-header {
  background: transparent;
  border-bottom-color: transparent;
  box-shadow: none;
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
  transition: background-color 0.28s var(--ease), border-color 0.28s var(--ease),
    box-shadow 0.28s var(--ease);
}
.site-header.scrolled {
  background: #ffffff;
  border-bottom-color: var(--line-soft);
  box-shadow: 0 6px 20px rgba(20, 26, 40, 0.06);
}
/* 移动端菜单展开时顶栏也必须是白底，否则菜单从透明条下掉出来 */
.site-header:has(#navToggle[aria-expanded="true"]) {
  background: #ffffff;
  border-bottom-color: var(--line-soft);
}
@media (prefers-reduced-motion: reduce) {
  .site-header { transition: none; }
}

/* =========================================================
   v35 · 账号模块：顶栏入口 + 登录 / 注册页
   ========================================================= */
/* ---------- 顶栏账号入口 ---------- */
.header-auth {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  font-size: 15px;
  line-height: 1;
  white-space: nowrap;
}
.header-auth a { color: var(--ink-2); transition: color 0.2s var(--ease); }
.header-auth a:hover { color: var(--brand); }
.hdr-user {
  max-width: 7.5em;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-weight: 600;
  color: var(--ink);
}
.hdr-logout {
  border: 0;
  background: none;
  padding: 0;
  font: inherit;
  font-size: 14px;
  color: var(--ink-3);
  cursor: pointer;
}
.hdr-logout:hover { color: var(--brand); }

/* 移动端菜单里的账号项（桌面不显示） */
.main-nav .nav-auth { display: none; }

@media (max-width: 1180px) {
  .hdr-reg { display: none; }
}
@media (max-width: 860px) {
  .header-auth { display: none; }
  .main-nav .nav-auth {
    display: block;
    margin-top: 6px;
    padding-top: 14px;
    border-top: 1px solid var(--line-soft);
    font-weight: 700;
    color: var(--brand);
  }
}

/* ---------- 登录 / 注册页 ---------- */
.auth-page {
  position: relative;
  padding: calc(var(--header-h) + 48px) 0 76px;
  overflow: hidden;
}
.auth-page::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    radial-gradient(52% 46% at 12% 4%, rgba(255, 138, 61, 0.10), transparent 66%),
    radial-gradient(46% 44% at 92% 12%, rgba(124, 92, 255, 0.08), transparent 68%),
    radial-gradient(60% 50% at 60% 108%, rgba(54, 197, 240, 0.07), transparent 70%);
}
.auth-shell {
  position: relative;
  display: grid;
  grid-template-columns: 1.02fr 0.98fr;
  gap: 56px;
  align-items: center;
  max-width: 1000px;
  margin: 0 auto;
}
.auth-aside h1 {
  font-size: clamp(27px, 3.2vw, 38px);
  line-height: 1.26;
  letter-spacing: -0.01em;
  color: var(--ink);
  margin-top: 14px;
}
.auth-lead {
  margin-top: 14px;
  font-size: 15.5px;
  line-height: 1.8;
  color: var(--ink-2);
  max-width: 42ch;
}
.auth-points {
  margin-top: 24px;
  display: grid;
  gap: 11px;
  list-style: none;
  padding: 0;
}
.auth-points li {
  position: relative;
  padding-left: 18px;
  font-size: 14.5px;
  line-height: 1.65;
  color: var(--ink-2);
}
.auth-points li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 9px;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--brand);
}

.auth-card {
  background: #fff;
  border: 1px solid var(--line-soft);
  border-radius: 20px;
  padding: 30px 30px 24px;
  box-shadow: 0 22px 54px rgba(20, 26, 40, 0.09);
}
.auth-card h2 {
  font-size: 21px;
  font-weight: 800;
  color: var(--ink);
  margin-bottom: 4px;
}
.auth-sub {
  font-size: 13.5px;
  color: var(--ink-3);
  margin-bottom: 20px;
  line-height: 1.6;
}
.auth-tabs {
  display: flex;
  gap: 6px;
  padding: 5px;
  margin-bottom: 20px;
  background: var(--bg-soft);
  border-radius: 12px;
}
.auth-tabs button {
  flex: 1 1 0;
  height: 38px;
  border: 0;
  border-radius: 9px;
  background: transparent;
  font: inherit;
  font-size: 14.5px;
  color: var(--ink-2);
  cursor: pointer;
  transition: background 0.2s var(--ease), color 0.2s var(--ease), box-shadow 0.2s var(--ease);
}
.auth-tabs button[aria-selected="true"] {
  background: #fff;
  color: var(--ink);
  font-weight: 700;
  box-shadow: 0 2px 8px rgba(20, 26, 40, 0.09);
}

.auth-card .form-row { margin-bottom: 14px; }
.auth-card .form-row input {
  height: 46px;
  padding: 0 14px;
  border-radius: 10px;
  font-size: 15px;
}
.auth-card .form-row input:focus { outline: none; }
.code-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
}
.code-row .btn {
  height: 46px;
  margin: 0;
  padding: 0 14px;
  font-size: 13.5px;
  white-space: nowrap;
  border-radius: 10px;
}
.code-row .btn[disabled] {
  opacity: 0.55;
  cursor: not-allowed;
}
.auth-card .btn-block { margin-top: 6px; height: 48px; }
.auth-card .btn.is-busy { opacity: 0.75; pointer-events: none; }
.auth-msg {
  margin: 0 0 14px;
  padding: 10px 12px;
  border-radius: 10px;
  font-size: 13.5px;
  line-height: 1.55;
}
.auth-msg[hidden] { display: none; }
.auth-msg.is-err {
  background: #fff3f2;
  border: 1px solid #ffd9d5;
  color: #c8342f;
}
.auth-msg.is-ok {
  background: #fff7ee;
  border: 1px solid rgba(255, 133, 0, 0.28);
  color: var(--brand-deep);
}
.auth-alt {
  margin-top: 16px;
  font-size: 13.5px;
  color: var(--ink-3);
  text-align: center;
}
.auth-alt a { color: var(--brand); font-weight: 600; }
.auth-alt a:hover { color: var(--brand-deep); }
.auth-alt span { color: var(--line); margin: 0 6px; }
.auth-note {
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid var(--line-soft);
  font-size: 12.5px;
  line-height: 1.7;
  color: var(--ink-4);
  text-align: center;
}

@media (max-width: 900px) {
  .auth-page { padding: calc(var(--header-h) + 32px) 0 56px; }
  .auth-shell {
    grid-template-columns: 1fr;
    gap: 26px;
    max-width: 520px;
  }
  .auth-aside h1 { font-size: 27px; }
  .auth-lead { font-size: 14.5px; }
  .auth-points { margin-top: 16px; gap: 8px; }
  .auth-card { padding: 24px 20px 20px; border-radius: 16px; }
}
@media (max-width: 400px) {
  .auth-card { padding: 20px 16px 18px; }
  .code-row .btn { padding: 0 10px; font-size: 12.5px; }
}

/* v35.1 · 修正：.form-row 的 display:grid 会盖掉 [hidden]，密码行默认藏不住 */
.auth-card [hidden] { display: none !important; }

/* v35.2 · 两栏改为顶部对齐，左栏文字与卡片标题同一条基线起排 */
.auth-shell { align-items: start; }
.auth-aside { padding-top: 18px; }
@media (max-width: 900px) {
  .auth-aside { padding-top: 0; }
}

/* v35.3 · 移动端菜单账号项：压过 .site-header .main-nav a 的常规色 */
.site-header .main-nav .nav-auth {
  color: var(--brand);
  font-weight: 700;
}
.site-header .main-nav .nav-auth:hover { color: var(--brand-deep); }

/* v35.3 · 移动端菜单账号项：压过 .site-header .main-nav a 的常规色 */
.site-header .main-nav .nav-auth {
  color: var(--brand);
  font-weight: 700;
}
.site-header .main-nav .nav-auth:hover { color: var(--brand-deep); }

/* ===== v36 · 预约诊断：登录门禁 / 双列表单 / 结果态 ===== */
.form-card .req { color: var(--brand); font-weight: 700; }
.form-card form[hidden],
.bk-gate[hidden],
.bk-done[hidden],
.bk-msg[hidden] { display: none !important; }

.bk-grid { display: grid; grid-template-columns: 1fr 1fr; column-gap: 16px; }
.bk-grid .bk-span2 { grid-column: 1 / -1; }
.bk-grid .form-row { margin-bottom: 14px; }

.bk-tip { margin-top: 12px; font-size: 12.5px; line-height: 1.6; color: var(--ink-4); text-align: center; }

/* 登录门禁与提交结果：同一套卡片骨架 */
.bk-gate,
.bk-done {
  display: grid;
  justify-items: center;
  text-align: center;
  gap: 8px;
  padding: 30px 22px 26px;
  border-radius: var(--radius-m);
  background: linear-gradient(180deg, #fff8ef 0%, #fffdfa 100%);
  border: 1px solid var(--brand-tint-2);
}
.bk-gate-icon,
.bk-done-icon {
  display: grid;
  place-items: center;
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background: #fff;
  border: 1px solid var(--brand-tint-2);
  color: var(--brand);
  margin-bottom: 2px;
}
.bk-gate-icon svg,
.bk-done-icon svg { width: 26px; height: 26px; }
.bk-done-icon { background: var(--brand); border-color: var(--brand); color: #fff; }
.bk-gate h4,
.bk-done h4 { font-size: 18px; font-weight: 800; color: #12141A; margin: 0; }
.bk-gate p,
.bk-done p { font-size: 14px; line-height: 1.7; color: var(--ink-2); margin: 0; max-width: 34em; }
.bk-actions { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; margin-top: 8px; }
.bk-actions .btn { min-width: 132px; }

/* 行内提示 */
.bk-msg { margin: 2px 0 12px; padding: 10px 14px; border-radius: var(--radius-s); font-size: 13.5px; line-height: 1.6; }
.bk-msg.is-err { color: #a32328; background: #fdeced; border: 1px solid #f6ccce; }
.bk-msg.is-ok { color: #16794a; background: #eaf8f0; border: 1px solid #c4ecd7; }

.form-card .btn.is-busy { opacity: .75; cursor: progress; }

@media (max-width: 620px) {
  .bk-grid { grid-template-columns: 1fr; }
  .bk-gate,
  .bk-done { padding: 24px 16px 22px; }
  .bk-actions { width: 100%; }
  .bk-actions .btn { flex: 1 1 100%; }
}

/* v36.1 · 补充说明：标题右对齐字数提示（0 / 200） */
.bk-field-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
}
.bk-count {
  font-size: 12px;
  line-height: 1;
  color: var(--ink-3);
  font-variant-numeric: tabular-nums;
  transition: color 0.2s;
}
.bk-count.is-near { color: var(--brand); }
.bk-count.is-full { color: #e5484d; font-weight: 700; }

/* ===== v37 · 关于同橙：园区实景横幅（关于我们）/ 愿景 ===== */
.about-band {
  position: relative;
  overflow: hidden;
  border-radius: var(--radius-l);
  background: #fff;
  box-shadow: var(--shadow-l);
}
.about-band-img {
  display: block;
  width: 100%;
  height: clamp(340px, 38vw, 460px);
  object-fit: cover;
  object-position: 50% 52%;
}
.about-band-txt {
  position: absolute;
  inset: 0;
  max-width: min(720px, 66%);
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 12px;
  padding: clamp(24px, 4vw, 56px);
  background: linear-gradient(
    90deg,
    rgba(255, 255, 255, 0.99) 0%,
    rgba(255, 255, 255, 0.97) 54%,
    rgba(255, 255, 255, 0.86) 72%,
    rgba(255, 255, 255, 0.34) 88%,
    rgba(255, 255, 255, 0) 100%
  );
}
.about-band-txt .eyebrow { margin: 0; }
.about-band-txt h2 {
  font-size: clamp(22px, 2.5vw, 32px);
  line-height: 1.32;
  margin: 0;
}
.about-p {
  font-size: 14.5px;
  line-height: 1.78;
  color: var(--ink-2);
  margin: 0;
  max-width: 33em;
}
.about-ticks { margin: 4px 0 0; }
.about-ticks li { font-size: 13.5px; }
.about-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 4px; }
.about-tags span {
  font-size: 12px;
  font-weight: 700;
  color: var(--brand-deep);
  background: var(--brand-tint);
  border: 1px solid var(--brand-tint-2);
  border-radius: 999px;
  padding: 4px 12px;
}

@media (max-width: 860px) {
  .about-band-img { height: 210px; }
  .about-band-txt {
    position: static;
    max-width: none;
    background: #fff;
    padding: 22px 18px 24px;
  }
  .about-p { font-size: 14px; }
}

/* 愿景 */
.vision-band {
  max-width: 880px;
  margin: 0 auto;
  text-align: center;
  background: #fff;
  border-radius: var(--radius-l);
  padding: clamp(30px, 4.4vw, 56px) clamp(22px, 4vw, 52px);
  box-shadow: var(--shadow-l);
}
.vision-band .eyebrow { justify-content: center; }
.vision-band h2 {
  font-size: clamp(23px, 2.9vw, 36px);
  line-height: 1.35;
  margin: 14px 0 16px;
}
.vision-lead {
  font-size: 15.5px;
  line-height: 1.8;
  color: var(--ink-2);
  margin: 0 auto;
  max-width: 46em;
}
.vision-points {
  list-style: none;
  margin: 26px 0 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  text-align: left;
}
.vision-points li {
  font-size: 13.5px;
  line-height: 1.65;
  color: var(--ink-2);
  background: var(--brand-tint);
  border: 1px solid var(--brand-tint-2);
  border-radius: var(--radius-m);
  padding: 12px 14px;
}
.vision-points strong {
  display: block;
  font-size: 14px;
  color: var(--ink);
  margin-bottom: 2px;
}
@media (max-width: 700px) {
  .vision-points { grid-template-columns: 1fr; }
}

/* ===== v38 · 关于我们：全宽园区实景 + 黑蒙版压白字 ===== */
.about-full {
  position: relative;
  isolation: isolate;
  display: flex;
  align-items: center;
  overflow: hidden;
  background: #0b0d11;
  padding: clamp(62px, 8.6vw, 124px) 0;
  scroll-margin-top: calc(var(--header-h) + 58px);
}
.about-full-bg { position: absolute; inset: 0; z-index: -1; }
.about-full-bg img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 54%;
}
.about-full-bg::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(9, 11, 14, 0.93) 0%, rgba(9, 11, 14, 0.86) 40%, rgba(9, 11, 14, 0.6) 76%, rgba(9, 11, 14, 0.48) 100%),
    linear-gradient(180deg, rgba(9, 11, 14, 0.34) 0%, rgba(9, 11, 14, 0) 32%, rgba(9, 11, 14, 0.3) 100%);
}
.about-full-inner {
  width: min(var(--container), calc(100% - 48px));
  margin-inline: auto;
}
.about-full-txt { max-width: 740px; }

.about-full-txt .eyebrow { color: #ffa94d; }
.about-full-txt .eyebrow .dot {
  background: #ff8a1e;
  box-shadow: 0 0 0 3px rgba(255, 138, 30, 0.2);
}
.about-full-txt h2 {
  margin: 14px 0 0;
  color: #fff;
  font-size: clamp(25px, 3.7vw, 48px);
  line-height: 1.26;
  letter-spacing: -0.01em;
  font-weight: 800;
}
.about-full-txt h2 .w { white-space: nowrap; }
.about-full-txt h2 .sep {
  color: #ff8a1e;
  font-weight: 400;
  margin: 0 7px;
}
.about-full-txt .about-p {
  margin: 18px 0 0;
  max-width: 39em;
  font-size: clamp(14px, 1.05vw, 15.5px);
  line-height: 1.86;
  color: rgba(255, 255, 255, 0.76);
}
.about-points {
  list-style: none;
  margin: 26px 0 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px 24px;
  max-width: 660px;
}
.about-points li {
  padding-top: 10px;
  border-top: 1px solid rgba(255, 255, 255, 0.18);
  font-size: 13px;
  line-height: 1.62;
  color: rgba(255, 255, 255, 0.7);
}
.about-points strong {
  display: block;
  margin-bottom: 3px;
  font-size: 14.5px;
  font-weight: 800;
  color: #ff9a3c;
}
.about-full-txt .about-tags { margin-top: 24px; }
.about-full-txt .about-tags span {
  color: #ffb067;
  background: rgba(255, 138, 30, 0.1);
  border: 1px solid rgba(255, 138, 30, 0.34);
}

@media (max-width: 860px) {
  /* 窄屏改成「顶部一条实景横幅 + 下方纯深色文字区」，避免大图被裁成树影 */
  .about-full { display: block; padding: 0 0 46px; }
  .about-full-bg {
    position: relative;
    inset: auto;
    height: 196px;
    z-index: 0;
  }
  .about-full-bg img { object-position: 50% 58%; }
  .about-full-bg::after {
    background: linear-gradient(
      180deg,
      rgba(9, 11, 14, 0.12) 0%,
      rgba(9, 11, 14, 0.5) 58%,
      rgba(9, 11, 14, 0.9) 88%,
      #0b0d11 100%
    );
  }
  .about-full-inner { position: relative; z-index: 1; margin-top: 24px; }
  .about-full-txt { max-width: none; }
  .about-full-txt .about-tags { margin-top: 20px; }
}
@media (max-width: 640px) {
  .about-points { grid-template-columns: 1fr; gap: 12px; max-width: none; }
}
@media (max-width: 400px) {
  .about-full-txt h2 { font-size: 23px; }
  .about-full-txt h2 .sep { margin: 0 4px; }
  .vision-title { font-size: 26px; letter-spacing: -0.02em; }
  .vision-lead { font-size: 14px; }
}
@media (max-width: 360px) {
  .vision-title { font-size: 22px; }
}

/* ===== v38.1 · 愿景：宽幅版面 + 三栏承诺 ===== */
.vision-sec {
  position: relative;
  overflow: hidden;
  padding: clamp(70px, 9.4vw, 130px) 0;
  background: #fffaf4;
  border-top: 1px solid rgba(255, 133, 0, 0.1);
  scroll-margin-top: calc(var(--header-h) + 58px);
}
.vision-sec::before {
  content: "";
  position: absolute;
  top: -32%;
  right: -12%;
  width: 46vw;
  height: 46vw;
  max-width: 620px;
  max-height: 620px;
  border-radius: 50%;
  background: radial-gradient(circle at 50% 50%, rgba(255, 133, 0, 0.14) 0%, rgba(255, 133, 0, 0) 70%);
  pointer-events: none;
}
.vision-sec .container { position: relative; z-index: 1; }

.vision-title {
  margin: 20px 0 0;
  max-width: 15.5em;
  font-size: clamp(28px, 4.7vw, 56px);
  line-height: 1.2;
  letter-spacing: -0.025em;
  font-weight: 800;
  color: #12141a;
  text-wrap: balance;
}
.vision-title .nb { white-space: nowrap; }
.vision-title em { font-style: normal; color: var(--brand); white-space: nowrap; }
.vision-lead {
  margin: 24px 0 0;
  max-width: 44em;
  font-size: clamp(14.5px, 1.15vw, 17px);
  line-height: 1.84;
  color: var(--ink-2);
}

.vision-cols {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: clamp(36px, 5vw, 62px);
  border-top: 1px solid rgba(20, 26, 40, 0.1);
}
.vision-col {
  padding: 28px 32px 0 0;
  border-right: 1px solid rgba(20, 26, 40, 0.08);
}
.vision-col + .vision-col { padding-left: 34px; }
.vision-col:nth-child(3n) { padding-right: 0; border-right: 0; }
.vision-no {
  display: inline-block;
  padding-bottom: 5px;
  border-bottom: 2px solid rgba(255, 133, 0, 0.32);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.12em;
  color: var(--brand);
}
.vision-col h3 {
  margin: 12px 0 8px;
  font-size: clamp(17px, 1.5vw, 20px);
  font-weight: 800;
  color: #12141a;
}
.vision-col p {
  margin: 0;
  font-size: 14px;
  line-height: 1.76;
  color: var(--ink-2);
}

@media (max-width: 780px) {
  .vision-cols { grid-template-columns: 1fr; border-top: 0; margin-top: 32px; }
  .vision-col {
    padding: 20px 0 0;
    margin-top: 20px;
    border-top: 1px solid rgba(20, 26, 40, 0.09);
    border-right: 0;
  }
  .vision-col + .vision-col { padding-left: 0; }
  .vision-col:first-child { margin-top: 0; padding-top: 0; border-top: 0; }
  .vision-sec::before { width: 78vw; height: 78vw; top: -14%; right: -26%; }
}

/* v38.2 · 修正：愿景标题的窄屏字号必须写在本块之后才不被 clamp 覆盖 */
@media (max-width: 400px) {
  .vision-sec .vision-title { font-size: 26px; letter-spacing: -0.02em; }
  .vision-sec .vision-lead { font-size: 14px; }
}
@media (max-width: 360px) {
  .vision-sec .vision-title { font-size: 22px; }
}

/* v38.2 · 修正：愿景标题的窄屏字号必须写在本块之后才不被 clamp 覆盖 */
@media (max-width: 400px) {
  .vision-sec .vision-title { font-size: 26px; letter-spacing: -0.02em; }
  .vision-sec .vision-lead { font-size: 14px; }
}
@media (max-width: 360px) {
  .vision-sec .vision-title { font-size: 22px; }
}

/* ===== v39 · 子导航当前项 =====
   .subnav-inner 为了横向滚动设了 overflow-x:auto，overflow-y 随之变 auto，
   原来 bottom:-1px 的 2px 下划线有一半被裁掉，视觉上几乎看不见；
   改成贴底 3px 圆角，滚动容器里也能完整显示。 */
.subnav a.is-on::after {
  bottom: 0;
  height: 3px;
  border-radius: 2px 2px 0 0;
}

/* ===== v39 · 子导航当前项 =====
   .subnav-inner 为了横向滚动设了 overflow-x:auto，overflow-y 随之变 auto，
   原来 bottom:-1px 的 2px 下划线有一半被裁掉，视觉上几乎看不见；
   改成贴底 3px 圆角，滚动容器里也能完整显示。 */
.subnav a.is-on::after {
  bottom: 0;
  height: 3px;
  border-radius: 2px 2px 0 0;
}

/* v39.1 · 让当前项的 3px 下划线严丝合缝贴住子导航底边（原来 a 比容器矮 2px，线浮在中间） */
.subnav-inner { align-items: stretch; }
.subnav a { display: flex; align-items: center; padding: 0; }

/* v39.1 · 让当前项的 3px 下划线严丝合缝贴住子导航底边（原来 a 比容器矮 2px，线浮在中间） */
.subnav-inner { align-items: stretch; }
.subnav a { display: flex; align-items: center; padding: 0; }

/* =========================================================
   v41 · 页脚「联系」列（全站）
   原先是横贯一行的联系方式条，自成一派；现改成与业务 / 资源 / 公司
   完全一致的 footer-col 列表：同样的红点标题、同样的行距字号，
   电话与邮箱照旧 tel: / mailto:，地址纯文本、不参与 hover。
   断点：>1180 五栏（品牌 + 四列）；1000–1180 仍是四列，但地址拆两行；
   ≤1000 转两列、品牌通栏（四列挤到 150px 以下地址会拆成三行）。
   ========================================================= */
.footer-grid { grid-template-columns: 1.32fr repeat(4, minmax(0, 1fr)); gap: 36px; }
nav.footer-col:nth-of-type(4) { --ac: var(--c-teal); }
.footer-col .fc-line { font-size: 14px; line-height: 1.6; color: var(--ink-2); }

/* 窄于 1180 时单行放不下「江苏省南京市鼓楼区古平岗4号」（196px），
   手动断在区/街道之间，避免折成「…古平岗」/「4 号」 */
@media (max-width: 1180px) {
  .footer-col .fc-b2 { display: block; }
}

@media (max-width: 1000px) {
  .footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 26px 24px; }
  .footer-brand { grid-column: 1 / -1; }
}

@media (max-width: 860px) {
  .footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .footer-col .fc-line { font-size: 13.5px; padding: 7px 0; }
}

@media (max-width: 400px) {
  .footer-col .fc-line { font-size: 13px; }
}

/* v41.2 · 顺带修掉 880–920 这一小段顶栏品牌名被挤成两行（「同橙」/「AI」）
   的原因：.brand-name 允许折行，导航一挤就断在中间。加 nowrap 后
   实测 900 下文档无横向溢出。 */
.header-inner .brand-name { white-space: nowrap; }

/* =========================================================
   v42 · 顶栏「GEO系统」入口（新窗口打开 tougeo.com/qiye/）
   实测顶栏 861–1080 这段本来就只剩十几像素余量，再塞一个按钮或第七个
   菜单项都会把「预约诊断」顶出容器（900 下顶出约 100px）。所以：
     · >1080：按钮放 header-actions，与「预约诊断」并排；
     · 861–1080：导航收进汉堡菜单（顶栏原本就挤，顺带解决），按钮保留；
     · ≤860：按钮藏起来，项落在汉堡菜单里（顶栏只留 CTA 与菜单键）。
   ========================================================= */
.hdr-geo { white-space: nowrap; }
.main-nav .nav-geo { display: none; }
.main-nav .nav-geo { align-items: center; gap: 5px; }
.main-nav .nav-geo .ext-go { font-size: 12px; color: var(--ink-3); }

@media (max-width: 1080px) {
  /* 这一段原本套用桌面样式，导航与两个按钮挤在一行 */
  .main-nav {
    position: fixed;
    top: var(--header-h);
    left: 0;
    right: 0;
    flex: none;
    flex-direction: column;
    justify-content: flex-start;
    gap: 4px;
    background: rgba(255, 255, 255, 0.94);
    -webkit-backdrop-filter: blur(16px) saturate(160%);
    backdrop-filter: blur(16px) saturate(160%);
    border-bottom: 1px solid var(--glass-border);
    padding: 12px 24px 20px;
    margin: 0;
    box-shadow: var(--shadow-m);
    transform: translateY(-8px);
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.25s, transform 0.25s var(--ease);
  }
  .main-nav.open { transform: none; opacity: 1; pointer-events: auto; }
  .main-nav a {
    flex: none;
    padding: 11px 4px;
    font-size: 15.5px;
    border-bottom: 1px solid var(--line-soft);
  }
  .main-nav a:last-child { border-bottom: 0; }
  .nav-toggle { display: block; }
  .header-auth { display: none; }
  .main-nav .nav-auth {
    display: block;
    margin-top: 6px;
    padding-top: 14px;
    border-top: 1px solid var(--line-soft);
    font-weight: 700;
    color: var(--brand);
  }
}

@media (max-width: 860px) {
  /* 手机宽度顶栏放不下「GEO系统」按钮，交给菜单 */
  .hdr-geo { display: none; }
  .main-nav .nav-geo { display: flex; }
}
