/* ============================================================
   首页改版 · 混合版（A 上半 + B 下半）
   仅由 index.html 引用。
   所有规则限定在 body.page-home 内，不新增 :root 变量，
   不改动 styles.css 中的页头 / 内页 / 共用组件。
   ============================================================ */

.page-home {
  /* color */
  --hm-brand: #2e5dd2;
  --hm-deep: #16214a;
  --hm-ink: #1b2233;
  --hm-ink-soft: #4d5668;
  --hm-muted: #5f6673;
  --hm-line: #e4e8f0;
  --hm-line-strong: #d3d9e4;
  --hm-mist: #f5f7fb;
  --hm-paper: #ffffff;

  /* type scale */
  --hm-fs-11: 11px;
  --hm-fs-12: 12px;
  --hm-fs-14: 14px;
  --hm-fs-16: 16px;
  --hm-fs-18: 18px;
  --hm-fs-22: 22px;
  --hm-fs-28: 28px;
  --hm-fs-36: 36px;
  --hm-fs-40: 40px;
  --hm-fs-64: 64px;

  /* 产品矩阵：编号与标题共用同一字号（不再各写近似值） */
  --hm-prod-title: 23px;

  /* spacing 8pt */
  --hm-sp-1: 4px;
  --hm-sp-2: 8px;
  --hm-sp-3: 12px;
  --hm-sp-4: 16px;
  --hm-sp-6: 24px;
  --hm-sp-8: 32px;
  --hm-sp-12: 48px;
  --hm-sp-16: 64px;
  --hm-sp-24: 96px;
  --hm-sp-30: 120px;

  /* 板块间垂直节奏：仅控制 section 上下外留白，不动区块内部间距 */
  --hm-sect-y: 56px;
  --hm-sect-y-dark: 48px;
  --hm-sect-hero: 80px; /* Hero 与 01 之间的呼吸线 */
  --hm-sect-07-y: 56px; /* 07 未来展望上内留白 */
  --hm-sect-07-b: 24px; /* 07 底部内留白：与页脚顶部 96px 合并为 120px，收紧 07→页脚空隙，页脚内部留白不动 */

  /* grid */
  --hm-container: 1200px;
  --hm-gutter: clamp(20px, 4vw, 40px);
  --hm-gap: 24px;

  --hm-font-en: "Inter", "Segoe UI", "Helvetica Neue", Arial, sans-serif;
}

.page-home main,
.page-home .site-footer {
  font-size: var(--hm-fs-16);
  line-height: 1.8;
}

.page-home .home-container {
  width: 100%;
  max-width: var(--hm-container);
  margin: 0 auto;
  padding-left: var(--hm-gutter);
  padding-right: var(--hm-gutter);
}

/* ---------- shared primitives ---------- */
.page-home .kicker {
  display: flex;
  align-items: center;
  gap: var(--hm-sp-3);
  font-family: var(--hm-font-en);
  font-size: var(--hm-fs-11);
  font-weight: 500;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--hm-brand);
}

.page-home .kicker::before {
  content: "";
  width: 22px;
  height: 1px;
  background: currentColor;
}

.page-home .sec-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: var(--hm-sp-8);
  padding-bottom: var(--hm-sp-6);
  border-bottom: 1px solid var(--hm-line);
}

.page-home .sec-head .head-main {
  max-width: 880px;
}

.page-home .sec-title {
  margin-top: var(--hm-sp-4);
  font-family: var(--font-cn);
  font-size: clamp(var(--hm-fs-28), 3vw, var(--hm-fs-36));
  line-height: 1.3;
  font-weight: 600;
  letter-spacing: 0.01em;
  text-wrap: balance;
}

.page-home .sec-lead {
  margin-top: var(--hm-sp-3);
  max-width: 680px;
  font-size: var(--hm-fs-16);
  line-height: 1.8;
  color: var(--hm-ink-soft);
}

.page-home .sec-meta {
  font-family: var(--hm-font-en);
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--hm-muted);
  padding-bottom: var(--hm-sp-3);
  white-space: nowrap;
}

.page-home .on-dark .kicker {
  color: #9db4ee;
}

.page-home .on-dark .sec-head {
  border-bottom-color: rgba(255, 255, 255, 0.18);
}

.page-home .on-dark .sec-title {
  color: #fff;
}

.page-home .on-dark .sec-lead {
  color: rgba(255, 255, 255, 0.72);
}

.page-home .on-dark .sec-meta {
  color: rgba(255, 255, 255, 0.5);
}

.page-home a:focus-visible,
.page-home button:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 3px;
}

.page-home .btn-primary {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  height: 52px;
  padding: 0 28px;
  border-radius: 10px;
  background: #fff;
  color: var(--hm-deep);
  font-size: 15px;
  font-weight: 600;
  letter-spacing: 0.02em;
  transition: background 0.25s ease;
}

.page-home .btn-primary:hover {
  background: #e9eef9;
}

.page-home .link-quiet {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding-bottom: 5px;
  font-size: 15px;
  color: rgba(255, 255, 255, 0.86);
  border-bottom: 1px solid rgba(255, 255, 255, 0.34);
}

.page-home .link-quiet:hover {
  color: #fff;
  border-color: #fff;
}

/* ============================================================
   Hero
   ============================================================ */
.page-home .hero {
  min-height: min(880px, 100svh);
  display: flex;
  align-items: stretch;
  color: #fff;
  overflow: hidden;
}

.page-home .hero-bg {
  position: absolute;
  inset: 0;
  background: url("../assets/hospital.jpg") center 42% / cover no-repeat;
  transform: none;
}

.page-home .hero-overlay {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(14, 25, 58, 0.87) 0%, rgba(14, 25, 58, 0.54) 46%, rgba(14, 25, 58, 0.1) 100%),
    linear-gradient(180deg, rgba(10, 18, 42, 0.3) 0%, rgba(10, 18, 42, 0) 34%, rgba(10, 18, 42, 0.34) 100%);
}

.page-home .hero-content {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  max-width: var(--hm-container);
  margin: 0 auto;
  padding-top: calc(var(--header-h) + 4px);
  padding-bottom: var(--hm-sp-8);
  opacity: 1;
  transform: none;
  transition: none;
}

.page-home .hero-copy {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  max-width: 812px;
  padding: var(--hm-sp-16) 0 var(--hm-sp-12);
}

.page-home .brand-line {
  display: flex;
  align-items: center;
  gap: var(--hm-sp-3);
  font-size: 13px;
  letter-spacing: 0.06em;
  color: rgba(255, 255, 255, 0.76);
}

.page-home .brand-mark {
  width: 30px;
  height: 30px;
  flex: 0 0 auto;
}

.page-home .brand-line b {
  font-weight: 600;
  color: #fff;
  letter-spacing: 0.04em;
}

.page-home .brand-line .brand-company {
  /* 15 → 18px（阶梯 11/12/14/16/18，+2 级）；行高按 1.7（30.6px）等比微调，
     与原 30px 品牌行高基本齐平，避免整体位移超出 2px */
  font-size: 18px;
  line-height: 1.7;
}

.page-home .brand-sep {
  width: 1px;
  height: 14px;
  background: rgba(255, 255, 255, 0.34);
}

.page-home .hero h1 {
  margin-top: var(--hm-sp-8);
  font-family: var(--font-cn);
  font-size: clamp(40px, 4.7vw, var(--hm-fs-64));
  line-height: 1.18;
  font-weight: 600;
  letter-spacing: 0.012em;
}

.page-home .hero h1 .h1-line2 {
  display: inline-block;
  margin-left: 2em;
}

.page-home .hero-en {
  margin-top: var(--hm-sp-4);
  display: inline-flex;
  align-items: center;
  gap: var(--hm-sp-3);
  font-family: var(--hm-font-en);
  font-size: var(--hm-fs-11);
  font-weight: 500;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.62);
}

.page-home .hero-en::before {
  content: "";
  width: 26px;
  height: 1px;
  background: rgba(255, 255, 255, 0.4);
}

.page-home .hero-lead {
  margin-top: var(--hm-sp-6);
  /* 22px 下整句实测 783.24px：可用宽度放到 812px（约 3.7% 余量）以保证 1440 单行。
     宽度仍小于 hero 内容宽 1120px，不挤压右侧留白。 */
  max-width: 812px;
  font-size: var(--hm-fs-22);
  line-height: 1.7;
  color: rgba(255, 255, 255, 0.8);
  text-wrap: pretty;
}

.page-home .hero-actions {
  display: flex;
  align-items: center;
  gap: var(--hm-sp-8);
  margin-top: var(--hm-sp-12);
}

.page-home .hero-proof {
  display: flex;
  flex-wrap: wrap;
  margin-top: auto;
  width: 100%;
  border-top: 1px solid rgba(255, 255, 255, 0.2);
  padding-top: var(--hm-sp-6);
}

.page-home .proof-item {
  padding: 0 40px;
  border-left: 1px solid rgba(255, 255, 255, 0.16);
}

.page-home .proof-item:first-child {
  padding-left: 0;
  border-left: 0;
}

.page-home .proof-item .num {
  display: block;
  font-family: var(--hm-font-en);
  font-size: 30px;
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: 0.01em;
  font-variant-numeric: tabular-nums;
}

.page-home .proof-item .num small {
  font-size: 20px;
  font-weight: 500;
  margin-left: 2px;
}

.page-home .proof-item .label {
  display: block;
  margin-top: 4px;
  font-size: var(--hm-fs-12);
  letter-spacing: 0.06em;
  color: rgba(255, 255, 255, 0.66);
}

.page-home .hero-scroll {
  position: absolute;
  right: var(--hm-gutter);
  bottom: 34px;
  z-index: 2;
  display: flex;
  align-items: center;
  gap: 10px;
  font-family: var(--hm-font-en);
  font-size: 10px;
  letter-spacing: 0.22em;
  color: rgba(255, 255, 255, 0.58);
}

.page-home .hero-scroll span {
  display: block;
  width: 1px;
  height: 34px;
  background: rgba(255, 255, 255, 0.4);
  position: relative;
}

.page-home .hero-scroll span::after {
  content: "";
  position: absolute;
  left: -2px;
  top: 0;
  width: 5px;
  height: 12px;
  background: #fff;
  animation: hm-hint 1.9s ease-in-out infinite;
}

@keyframes hm-hint {
  0% {
    transform: translateY(0);
    opacity: 0.9;
  }
  100% {
    transform: translateY(22px);
    opacity: 0;
  }
}

/* 无 JS 也可见；有 JS 时 main.js 的 .is-in 不影响 */
.page-home .hero-copy > * {
  animation: hm-hero-in 0.7s ease both;
}

.page-home .hero-copy > *:nth-child(1) { animation-delay: 0.05s; }
.page-home .hero-copy > *:nth-child(2) { animation-delay: 0.12s; }
.page-home .hero-copy > *:nth-child(3) { animation-delay: 0.18s; }
.page-home .hero-copy > *:nth-child(4) { animation-delay: 0.24s; }
.page-home .hero-copy > *:nth-child(5) { animation-delay: 0.3s; }

@keyframes hm-hero-in {
  from {
    opacity: 0;
    transform: translateY(18px);
  }
}

/* ============================================================
   Products
   ============================================================ */
.page-home .products {
  background-color: #fcfdff;
  background-image:
    linear-gradient(rgba(46, 93, 210, 0.045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(46, 93, 210, 0.045) 1px, transparent 1px),
    radial-gradient(70% 46% at 78% 2%, rgba(46, 93, 210, 0.05), rgba(46, 93, 210, 0) 70%);
  background-size: 32px 32px, 32px 32px, cover;
  background-position: 0 0, 0 0, center;
  background-repeat: repeat, repeat, no-repeat;
  min-height: auto;
  display: block;
  /* 上留白保留 Hero 呼吸线，下沿按统一节奏收紧 */
  padding: var(--hm-sect-hero) 0 var(--hm-sect-y);
}

@media (max-width: 640px) {
  .page-home .products {
    background-size: 28px 28px, 28px 28px, cover;
  }
}

/* 产品区引导句：字号 +2 档（16 → 20px），字重 600，行高 1.55 */
.page-home .products .sec-lead {
  font-size: 20px;
  line-height: 1.55;
  font-weight: 600;
  text-wrap: balance;
}

/* 引导句升为整行：≥961 独占一行（1440/1280 单行），≤960 保持标题→引导→元信息原顺序 */
@media (min-width: 961px) {
  .page-home .products .sec-head {
    flex-wrap: wrap;
    row-gap: 0;
  }

  .page-home .products .sec-lead {
    order: 2;
    flex: 0 0 100%;
    max-width: none;
  }

  .page-home .products .sec-meta {
    order: 1;
  }
}

.page-home .prod-layout {
  display: grid;
  grid-template-columns: 5fr 7fr;
  gap: var(--hm-sp-12);
  /* 引导句→矩阵：原 64px，与上方「标题→引导句」12px 形成上紧下松；
     收到 32px 后，说明文字底→矩阵顶 = 24(padding) + 1(分隔线) + 32 = 57px */
  margin-top: var(--hm-sp-8);
  align-items: start;
}

.page-home .prod-figure {
  position: sticky;
  top: calc(var(--header-h) + 24px);
}

.page-home .stack-panel {
  position: relative;
  overflow: hidden;
  border-radius: 20px;
  aspect-ratio: 4 / 5;
  /* 取首屏 hero 遮罩下的基础深蓝底色（overlay 主色 rgba(14,25,58,.87) 的实色化），
     不放 hero 图片与渐变叠层，避免面板内出现与版式无关的影像细节 */
  background: #0e193a;
  color: #fff;
  padding: var(--hm-sp-8) 30px 30px;
  display: flex;
  flex-direction: column;
}

.page-home .stack-watermark {
  position: absolute;
  top: 8px;
  right: -46px;
  width: 210px;
  height: 210px;
  opacity: 0.16;
  pointer-events: none;
}

.page-home .stack-kicker {
  font-family: var(--hm-font-en);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.52);
}

.page-home .stack-title {
  margin-top: 20px;
  font-size: 26px;
  font-weight: 600;
  line-height: 1.45;
  letter-spacing: -0.01em;
  text-align: center;
  word-break: keep-all;
}

/* ≤960 面板为内容撑高（aspect-ratio:auto）：
   标题 26px 下在窄屏按全角空格折为两行，min-height 保留两行占位，
   使面板与区块高度不因文案单行/双行切换而变化 */
@media (max-width: 960px) {
  .page-home .stack-title {
    min-height: calc(1.45em * 2);
  }
}

.page-home .stack-layers {
  flex: 1;
  display: flex;
  flex-direction: column;
  margin-top: 20px;
  padding-top: 0;
}

.page-home .stack-layer {
  display: grid;
  flex: 1;
  grid-template-columns: 1fr;
  gap: 0;
  align-items: baseline;
  align-content: center;
/* 主副文按「视觉可辨」档位提升：18→20 / 14→15（主 +2px、副 +1px）；
     内边距由 10.37px 收到 8.15px 以吸收增高（每行 −4.44px），面板总高不变 */
  padding: 10.40px 0 10.40px;
  border-top: 1px solid rgba(255, 255, 255, 0.16);
}

.page-home .stack-layer strong {
  display: block;
  font-size: var(--hm-fs-18);
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: 0.02em;
}

.page-home .stack-layer em {
  display: block;
  margin-top: 4px;
  font-style: normal;
  font-size: 15px;
  line-height: 1.45;
  color: rgba(255, 255, 255, 0.56);
  /* 390 下长文案换行时只在「 / 」处断开，避免末字孤行 */
  word-break: keep-all;
}

/* 底座与 layers 完全同构：仅保留「贴底」的外边距，其余继承 .stack-layer；
   flex 权重 1（layers 为 3）使 4 行等分同一段高度，行高一致 */
.page-home .stack-base {
  margin-top: 20px;
  flex: 1 1 0;
}

/* 第 5 层「托幼托育管理」加入后，≥961 面板高度被 aspect-ratio:4/5 锁定（1440 = 558.31px）。
   第四层副文再增「体检专项管理」后该行由 1 行变 2 行（+21.75px），在该预算内重排六处留白：
   面板顶→Product Stack 20 / →主标题 14 / →首层 border-top 16 / 层间 18（上下各 9）/ 底座→底边 22.6（层内 9 + 底内边距 13.625）。
   底座不单独加 margin，避免把余量堆在「第 4 层→底座」一处。 */
@media (min-width: 961px) {
  .page-home .stack-panel {
    padding-top: 20px;
    padding-bottom: 13.625px;
  }

  .page-home .stack-title {
    margin-top: 14px;
  }

  .page-home .stack-layers {
    margin-top: 16px;
  }

  .page-home .stack-layer {
    padding: 9px 0;
  }

  .page-home .stack-base {
    margin-top: 0;
  }
}

/* 图注：中文标签独占一格并居中，英文副标同格贴右对齐，
   两者互不参与对方的居中计算（flex 的 space-between 会把标签挤到左侧） */
.page-home .prod-figure figcaption {
  display: grid;
  grid-template-columns: 1fr;
  align-items: baseline;
  padding-top: 14px;
  border-top: 1px solid var(--hm-line);
  margin-top: 18px;
}

.page-home .prod-figure figcaption strong {
  grid-area: 1 / 1;
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.02em;
  text-align: center;
}

.page-home .prod-figure figcaption span {
  grid-area: 1 / 1;
  justify-self: end;
  font-family: var(--hm-font-en);
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--hm-muted);
}

/* ≤480 面板宽 350，居中标签右缘与右侧英文副标仅余约 0.5px，收紧字距留出约 12px 空隙 */
@media (max-width: 480px) {
  .page-home .prod-figure figcaption span {
    letter-spacing: 0.12em;
  }
}

.page-home .prod-list {
  border-top: 1px solid var(--hm-line);
}

.page-home .prod-row {
  display: grid;
  grid-template-columns: max-content 1fr 26px;
  gap: 8px;
  align-items: start;
  /* 上下对称 16px（原 24/32 不对称，行间视觉差 57px 偏松）：
     行间视觉间距 = 16 + 1(border) + 16 = 33px，四行等距 */
  padding: var(--hm-sp-4) 0;
  border-bottom: 1px solid var(--hm-line);
  transition: border-color 0.25s ease;
}

.page-home .prod-row:hover {
  border-bottom-color: var(--hm-brand);
}

.page-home .prod-idx {
  font-family: var(--hm-font-en);
  font-size: var(--hm-prod-title);
  font-weight: 500;
  letter-spacing: 0.08em;
  color: var(--hm-muted);
  align-self: start;
  line-height: 1.4;
  padding-top: 0;
  font-variant-numeric: tabular-nums;
}

.page-home .prod-row h3 {
  font-size: var(--hm-prod-title);
  line-height: 1.4;
  font-weight: 600;
  letter-spacing: 0.01em;
  transition: color 0.2s ease;
}

.page-home .prod-row:hover h3 {
  color: var(--hm-brand);
}

.page-home .prod-row .en {
  margin-top: 7px;
  font-family: var(--hm-font-en);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--hm-muted);
}

.page-home .prod-row p {
  margin-top: var(--hm-sp-3);
  max-width: 540px;
  font-size: var(--hm-fs-14);
  line-height: 1.8;
  color: var(--hm-ink-soft);
}

/* 行尾箭头位置与字级：
   1) 左移：1440 基准 −50px（行宽 625.34 的 8%）；窄屏按 3.5vw 线性收缩，
      下限 28px（390 行宽 350 的 8%，与最长标题仍留 22px）。用负外边距而非改列宽，
      避免挤压 1fr 描述列导致折行与行高变化。
   2) 字号：24 → 28（站内阶梯 22/28 的上一档；≤640 原 22 一档到 28）。
   3) 加粗：stroke 由固定 2px 改为 0.0833em，24px 时 2px、28px 时 2.33px，
      相对加粗率（8.33%）不变。
   4) 垂直：行盒随字号 43.2 → 50.4，墨迹中心随之下移 3.9px，
      用 -4px 上外边距抵消，保持原墨迹中心与标题基线关系。 */
.page-home .prod-row .arw {
  font-family: var(--hm-font-en);
  font-size: var(--hm-fs-28);
  font-weight: 700;
  -webkit-text-stroke: 0.0833em currentColor;
  color: var(--hm-muted);
  margin-left: calc(-1 * clamp(28px, 3.5vw, 50px));
  margin-top: -4px;
  padding-top: 2px;
  opacity: 0.4;
  transition: transform 0.25s ease, opacity 0.25s ease, color 0.25s ease;
}

.page-home .prod-row:hover .arw {
  transform: translateX(5px);
  opacity: 1;
  color: var(--hm-brand);
}

/* ≥1200：右侧四行与左侧 Stack 面板上下对齐。
   面板高由 aspect-ratio 4/5 与 5fr 列宽决定，右侧列宽为 7fr，
   故右侧目标高 = (可用宽 − 列间距) × 5/12 × 5/4 = 可用宽 × 25/48；
   用容器查询单位 100cqw 取值，不写死像素，字号/文案变化后仍对齐。
   不用 align-items:stretch 的原因：figure 高 = 面板 + 18px 外边距 + 38.4px 图注，
   stretch 会把右侧列拉到比面板底还低约 56px。
   行高也不写死：flex:1 让四行等分面板高，行高差由行内留白吸收。 */
@media (min-width: 1200px) {
  .page-home .prod-layout {
    container-type: inline-size;
  }

  .page-home .prod-list {
    display: flex;
    flex-direction: column;
    height: calc((100cqw - var(--hm-sp-12)) * 25 / 48);
    min-height: min-content;
  }

  .page-home .prod-row {
    flex: 1 1 0;
    /* 等分后每行 138.3px；最高一行内容 119.6px，8 + 8 内边距后仍有余量，
       取 8px（8pt 步进）保持紧凑 */
    padding: var(--hm-sp-2) 0;
  }
}

.page-home .prod-more {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--hm-sp-6);
  margin-top: var(--hm-sp-8);
  padding-top: 18px;
  border-top: 1px solid var(--hm-line);
}

.page-home .prod-more p {
  font-size: 13px;
  color: var(--hm-muted);
  letter-spacing: 0.02em;
}

.page-home .prod-more a {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  height: 44px;
  padding: 0 28px;
  border-radius: 10px;
  background: var(--hm-brand);
  color: #fff;
  font-size: var(--hm-fs-14);
  font-weight: 600;
  transition: background 0.25s ease;
}

.page-home .prod-more a:hover {
  background: var(--hm-deep);
}

/* ============================================================
   About
   ============================================================ */
.page-home .about {
  position: relative;
  overflow: hidden;
  background: var(--hm-mist);
  min-height: auto;
  padding: var(--hm-sect-y) 0;
}

/* About 背景：站内素材 assets/team.jpg（办公场景 + 数据大屏），
   与首屏同族的深蓝双层遮罩 + 白字层级。
   标题 ≥7:1、正文 ≥4.5:1、统计标签 ≥5:1；
   loading="lazy" decoding="async"，不使用 background-attachment: fixed。 */
.page-home .about-media {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.page-home .about-media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 38%;
}

.page-home .about-media::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(14, 25, 58, 0.88) 0%, rgba(14, 25, 58, 0.68) 52%, rgba(14, 25, 58, 0.5) 100%),
    linear-gradient(180deg, rgba(10, 18, 42, 0.34) 0%, rgba(10, 18, 42, 0.12) 36%, rgba(10, 18, 42, 0.38) 100%);
}

/* 深色同调的文字层级：标题 / 标语 / 数字为白，正文与标签按透明度递减 */
.page-home .about .sec-title,
.page-home .about .about-lead,
.page-home .about .stat-num {
  color: #fff;
}

.page-home .about .kicker {
  color: #9db4ee;
}

.page-home .about .sec-meta {
  color: rgba(255, 255, 255, 0.5);
}

.page-home .about .sec-head {
  border-bottom-color: rgba(255, 255, 255, 0.18);
}

/* 顶部 32px 白 → 透明：与上方白色产品板块衔接，避免明暗硬切 */
.page-home .about::before {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  height: 32px;
  z-index: 2;
  pointer-events: none;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.92), rgba(255, 255, 255, 0));
}

/* 底部 40px → #16214a：与下方深色能力区衔接，消除图片底边硬接缝 */
.page-home .about::after {
  content: "";
  position: absolute;
  inset: auto 0 0;
  height: 40px;
  z-index: 2;
  pointer-events: none;
  background: linear-gradient(0deg, #16214a 0%, rgba(22, 33, 74, 0) 100%);
}

.page-home .about > .home-container {
  position: relative;
  z-index: 1;
}

.page-home .about-grid {
  display: grid;
  grid-template-columns: 1.05fr 1fr;
  gap: var(--hm-sp-16);
  margin-top: var(--hm-sp-12);
  align-items: start;
}

.page-home .about-copy .about-lead {
  margin-top: var(--hm-sp-6);
  font-size: var(--hm-fs-28);
  line-height: 1.5;
  font-weight: 500;
  letter-spacing: 0.015em;
  color: #fff;
}

/* 整句实需宽 536.52px，容器可用宽 540.88px，仅余 4.36px；
   三项各自禁止内部断行，断点只能落在「 + 」两侧，避免末字孤行 */
.page-home .about-copy .about-lead span {
  white-space: nowrap;
}

.page-home .about-copy p.body {
  margin-top: var(--hm-sp-4);
  font-size: var(--hm-fs-16);
  line-height: 1.85;
  color: rgba(255, 255, 255, 0.82);
}

.page-home .about-copy .about-link {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-top: var(--hm-sp-6);
  padding-bottom: 4px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.34);
  font-size: var(--hm-fs-14);
  font-weight: 500;
  color: #fff;
}

.page-home .about-copy .about-link:hover {
  border-color: #fff;
}

.page-home .stats {
  position: relative;
  z-index: 0;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--hm-sp-4) var(--hm-sp-8);
  border-top: 1px solid rgba(255, 255, 255, 0.18);
}

/* 统计区实底：同族深蓝薄片，只做背景层，不改变内部 padding / 字号 / 间距 */
.page-home .stats::before {
  content: "";
  position: absolute;
  inset: -12px -16px -8px;
  z-index: -1;
  border-radius: 12px;
  background: rgba(8, 16, 38, 0.52);
}

.page-home .stat {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  /* 上下对称 16px：与 justify-content:center 配合，保证数值+标签整体上下余量相等 */
  padding: var(--hm-sp-4) 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.14);
  text-align: center;
  min-height: 112px;
}

.page-home .stat-num {
  display: block;
  font-family: var(--hm-font-en);
  font-size: var(--hm-fs-40);
  line-height: 1.1;
  font-weight: 600;
  letter-spacing: 0.01em;
  font-variant-numeric: tabular-nums;
  color: #fff;
}

.page-home .stat-num small {
  font-size: 16px;
  font-weight: 500;
  margin-left: 2px;
}

.page-home .stat-label {
  display: block;
  margin-top: var(--hm-sp-2);
  font-size: var(--hm-fs-12);
  line-height: 1.5;
  letter-spacing: 0.02em;
  color: rgba(255, 255, 255, 0.72);
}

/* ============================================================
   Strength 1+1+1
   ============================================================ */
.page-home .strength {
  background: var(--hm-deep);
  background-image: none;
  color: #fff;
  padding: var(--hm-sect-y-dark) 0;
}

/* 能力区引导句：字号 +2 档（16 → 20px），字重 600，行高 1.55，浅色字不变 */
.page-home .strength .sec-lead {
  font-size: 20px;
  line-height: 1.55;
  font-weight: 600;
  text-wrap: balance;
}

.page-home .strength-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--hm-sp-8);
  margin-top: var(--hm-sp-16);
}

.page-home .strength-col {
  border-top: 1px solid rgba(255, 255, 255, 0.22);
  padding-top: var(--hm-sp-6);
}

/* 三卡编号已移除：标题直接承接卡顶 24px 内边距 + 8px 上外边距 = 32px（4×8）留白 */
.page-home .strength-col h3 {
  margin-top: var(--hm-sp-2);
  font-size: var(--hm-fs-22);
  line-height: 1.45;
  font-weight: 600;
  letter-spacing: 0.01em;
}

.page-home .strength-col ul {
  margin-top: var(--hm-sp-4);
}

.page-home .strength-col li {
  position: relative;
  padding-left: 14px;
  margin-top: var(--hm-sp-2);
  font-size: var(--hm-fs-14);
  line-height: 1.75;
  color: rgba(255, 255, 255, 0.72);
}

/* 首条曾同时吃到 ul 的 16px 与 li 的 8px，标题到首行为 24px，与行间 8px 断裂 */
.page-home .strength-col li:first-child {
  margin-top: 0;
}

.page-home .strength-col li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.75em;
  width: 5px;
  height: 1px;
  border-radius: 0;
  background: rgba(255, 255, 255, 0.45);
}

.page-home .ai-metrics {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--hm-sp-6);
  margin-top: var(--hm-sp-16);
  padding-top: var(--hm-sp-6);
  border-top: 1px solid rgba(255, 255, 255, 0.22);
  background: none;
}

.page-home .ai-metrics .label {
  grid-column: 1 / -1;
  font-family: var(--hm-font-en);
  font-size: 10px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.5);
  margin-bottom: var(--hm-sp-2);
}

.page-home .ai-item {
  padding: 0;
  text-align: left;
  border: 0;
}

.page-home .ai-item strong {
  display: block;
  font-size: 15px;
  font-weight: 500;
  letter-spacing: 0.02em;
  margin-bottom: 0;
}

.page-home .ai-item span {
  display: block;
  margin-top: 6px;
  font-size: var(--hm-fs-12);
  line-height: 1.6;
  color: rgba(255, 255, 255, 0.6);
}

/* ============================================================
   Cases
   ============================================================ */
.page-home .cases {
  background: var(--hm-paper);
  min-height: auto;
  padding: var(--hm-sect-y) 0;
}

/* 案例引导句：字号 +2 档（16 → 20px），字重 600，行高 1.55 */
.page-home .cases .sec-lead {
  font-size: 20px;
  line-height: 1.55;
  font-weight: 600;
}

.page-home .case-layout {
  display: grid;
  grid-template-columns: 7fr 5fr;
  gap: var(--hm-sp-12);
  margin-top: var(--hm-sp-12);
  align-items: start;
}

.page-home .case-feature {
  /* 底色由 #f5f7fb 加深一档到 #ecf0f8（相对明度 −6.7%），仅此卡；
     与 --hm-mist、--hm-line 同族，不引入新的色相 */
  background: #ecf0f8;
  padding: 36px;
  border-radius: 20px;
  overflow: hidden;
}

.page-home .case-feature h3 {
  margin-top: var(--hm-sp-3);
  font-size: var(--hm-fs-28);
  line-height: 1.4;
  font-weight: 600;
  letter-spacing: 0.01em;
  /* 仅标题居中：父级为 block，h3 宽度已铺满内容区，text-align 即可，
     不动卡片内边距，也不影响标签/正文/指标的左对齐 */
  text-align: center;
}

.page-home .case-feature .case-bg {
  margin-top: var(--hm-sp-3);
  margin-bottom: 0;
  font-size: var(--hm-fs-14);
  line-height: 1.8;
  color: var(--hm-ink-soft);
  max-width: 520px;
  min-height: 0;
}

.page-home .case-metrics {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--hm-sp-4);
  margin-top: var(--hm-sp-8);
  padding-top: var(--hm-sp-4);
  border-top: 1px solid var(--hm-line-strong);
}

.page-home .case-metrics div {
  text-align: left;
}

.page-home .case-metrics strong {
  display: block;
  font-family: var(--hm-font-en);
  font-size: var(--hm-fs-28);
  line-height: 1.2;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  color: var(--hm-ink);
}

.page-home .case-metrics span {
  display: block;
  margin-top: 6px;
  font-size: var(--hm-fs-11);
  line-height: 1.5;
  color: var(--hm-muted);
}

.page-home .case-rows {
  border-top: 1px solid var(--hm-line);
}

.page-home .case-row {
  display: grid;
  grid-template-columns: 34px 1fr;
  gap: var(--hm-sp-4);
  align-items: start;
  padding: var(--hm-sp-6) 0;
  border-bottom: 1px solid var(--hm-line);
}

.page-home .case-row .idx {
  font-family: var(--hm-font-en);
  font-size: 10px;
  letter-spacing: 0.1em;
  color: var(--hm-muted);
  padding-top: 6px;
  font-variant-numeric: tabular-nums;
}

.page-home .case-row h3 {
  font-size: var(--hm-fs-22);
  line-height: 1.45;
  font-weight: 600;
  letter-spacing: 0.01em;
}

.page-home .case-row .meta {
  margin-top: 6px;
  font-family: var(--hm-font-en);
  font-size: 10px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--hm-muted);
}

.page-home .case-row p {
  margin-top: var(--hm-sp-2);
  font-size: var(--hm-fs-14);
  line-height: 1.7;
  color: var(--hm-ink-soft);
}

/* ============================================================
   Partners
   Icons: Lucide (ISC License) — see assets/icons/lucide-LICENSE.txt
   ============================================================ */
.page-home .partners {
  position: relative;
  overflow: hidden;
  background-color: #16214a;
  background-image:
    linear-gradient(rgba(255, 255, 255, 0.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.05) 1px, transparent 1px),
    repeating-radial-gradient(circle at 78% 16%, rgba(150, 178, 238, 0) 0 46px, rgba(150, 178, 238, 0.08) 46px 47px),
    linear-gradient(180deg, #182451 0%, #16214a 55%, #131c42 100%);
  background-size: 32px 32px, 32px 32px, 640px 640px, cover;
  background-position: 0 0, 0 0, 78% 16%, center;
  background-repeat: repeat, repeat, no-repeat, no-repeat;
  color: #fff;
  min-height: auto;
  padding: var(--hm-sect-y) 0;
}

/* 深色同调：区块标题与分组小标题用白字，辅助信息按透明度递减 */
.page-home .partners .sec-title,
.page-home .partners .list-title {
  color: #fff;
}

.page-home .partners .kicker {
  color: #9db4ee;
}

.page-home .partners .sec-meta {
  color: rgba(255, 255, 255, 0.5);
}

.page-home .partners .sec-head {
  border-bottom-color: rgba(255, 255, 255, 0.18);
}

/* 深底 + 白卡：投影负责层叠感；卡内白底与文字色保持原样 */
.page-home .partners .partner-item,
.page-home .partners .qual-item {
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.3), 0 18px 34px -18px rgba(0, 0, 0, 0.62);
}

/* 上邻 cases（白）→ 深色 partners 的 32px 过渡 */
.page-home .partners::before {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  height: 32px;
  pointer-events: none;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.94), rgba(255, 255, 255, 0));
}

/* 深色 partners → 下邻 timeline（白）的 32px 过渡 */
.page-home .partners::after {
  content: "";
  position: absolute;
  inset: auto 0 0;
  height: 32px;
  pointer-events: none;
  background: linear-gradient(0deg, rgba(255, 255, 255, 0.94), rgba(255, 255, 255, 0));
}

@media (max-width: 640px) {
  .page-home .partners {
    background-size: 28px 28px, 28px 28px, 560px 560px, cover;
  }
}

.page-home .partner-layout {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--hm-sp-12);
  margin-top: var(--hm-sp-12);
  align-items: start;
}

.page-home .partner-block {
  display: block;
}

.page-home .list-title {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: var(--hm-sp-4);
  font-size: 26px;
  font-weight: 600;
  /* 大字下把原 0.12em（1.8px）的字距折算为等值绝对字距，避免越放越散 */
  letter-spacing: 0.07em;
  line-height: 1.25;
  color: var(--hm-ink);
}

.page-home .list-title::before {
  content: "";
  width: 3px;
  height: 26px;
  border-radius: 2px;
  background: var(--hm-brand);
}

.page-home .lt-ic {
  width: 26px;
  height: 26px;
  flex: 0 0 auto;
  color: var(--hm-brand);
  opacity: 0.9;
}

.page-home .partner-grid,
.page-home .qual-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--hm-sp-3);
}

/* 单行横排：图标 36 → 10px 间距 → 名称，整体垂直居中；无编号 */
.page-home .partner-item {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 76px;
  padding: 0 12px;
  background: var(--hm-paper);
  border: 0;
  border-radius: 12px;
  font-weight: 700;
  line-height: 1.2;
  color: var(--hm-ink);
}

/* 名称单行：15px 起步；邵逸夫 14 字超列，按 14.5px + -0.01em 压缩（实测余量见回传） */
.page-home .partner-item .name {
  flex: 0 0 auto;
  font-family: var(--font-cn);
  font-size: 14.5px;
  letter-spacing: -0.01em;
  white-space: nowrap;
}

/* 36×36 图标：无底、无边框、无阴影 */
.page-home .org-img,
.page-home .org-photo {
  flex: 0 0 36px;
  display: block;
  width: 36px;
  height: 36px;
  padding: 0;
  border: 0;
  border-radius: 6px;
  background: none;
  box-shadow: none;
}

.page-home .org-img {
  object-fit: contain;
}

.page-home .org-photo {
  object-fit: cover;
}

/* 资质卡：与机构卡同规格（76 高 / 12 圆角 / 0 12 内边距），左对齐不居中 */
.page-home .qual-item {
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 76px;
  padding: 0 12px;
  background: var(--hm-paper);
  border: 0;
  border-radius: 12px;
}

/* 44×44 图标槽：极浅蓝底 + 1px 淡蓝描边，内绘 26×26 线性图标 */
.page-home .qual-ic {
  flex: 0 0 44px;
  width: 44px;
  height: 44px;
  box-sizing: border-box;
  border: 1px solid #e4ecfb;
  border-radius: 10px;
  background: #f2f6ff;
  color: var(--hm-brand);
}

.page-home .qual-gold .qual-ic {
  color: #b8862f;
}

.page-home .qual-blue .qual-ic {
  color: #2e5dd2;
}

.page-home .qual-teal .qual-ic {
  color: #0f8a8a;
}

.page-home .qual-purple .qual-ic {
  color: #6b4fbb;
}

/* 文字列撑满剩余宽度（271 − 12 − 44 − 12 = 191），主副标共用同一条竖直中心线 */
.page-home .qual-item > div {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.page-home .qual-item strong {
  display: block;
  text-align: center;
  font-family: var(--font-cn);
  font-size: 15px;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0.01em;
  color: #0f1b33;
  white-space: nowrap;
}

.page-home .qual-item > div > span {
  display: block;
  margin-top: 4px;
  font-family: var(--hm-font-en);
  font-size: 12px;
  font-weight: 400;
  line-height: 1.2;
  letter-spacing: 0;
  color: #6b7280;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
  text-align: center;
}

.page-home .partner-item .latin,
.page-home .qual-item .latin {
  font-family: var(--hm-font-en);
  font-size: 0.93em;
  font-weight: 600;
  line-height: inherit;
  letter-spacing: 0.01em;
  font-variant-numeric: tabular-nums;
  vertical-align: baseline;
}

/* ============================================================
   Timeline
   ============================================================ */
.page-home .timeline {
  display: block;
  background: var(--hm-paper);
  padding: var(--hm-sect-y) 0;
}

/* 时间轴引导句：字号 +2 档（16 → 20px），字重 600，行高按 1.55 重算 */
.page-home .timeline .sec-lead {
  font-size: 20px;
  line-height: 1.55;
  font-weight: 600;
  text-wrap: balance;
}

.page-home .tl-track {
  position: relative;
  margin-top: var(--hm-sp-16);
}

.page-home .tl-track::before {
  content: "";
  position: absolute;
  top: 56px;
  left: 0;
  right: 0;
  height: 1px;
  /* 1px 横向渐变（桌面端连线为横向）：两端淡入淡出，中段主蓝 .55，
     替代原 1px 实色 --hm-line-strong，避免深/浅底上发灰 */
  background: linear-gradient(90deg,
    rgba(46, 93, 210, 0.12) 0%,
    rgba(46, 93, 210, 0.55) 12%,
    rgba(46, 93, 210, 0.55) 88%,
    rgba(46, 93, 210, 0.12) 100%);
}

.page-home .tl-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--hm-gap);
}

.page-home .tl-node {
  position: relative;
  padding-right: var(--hm-sp-8);
}

.page-home .tl-node .year {
  display: block;
  font-family: var(--hm-font-en);
  font-size: var(--hm-fs-28);
  line-height: 1.2;
  font-weight: 600;
  letter-spacing: 0.01em;
  font-variant-numeric: tabular-nums;
  height: 34px;
  color: var(--hm-ink);
  margin-bottom: 0;
}

.page-home .tl-node .dot {
  /* 9 → 14px；边缘 margin 18/22 → 15.5/19.5，块高仍为 49px，节点与区块高度不变；
     14px 圆心 = 年框底 +15.5+7 = 与原 9px 圆心完全一致，仍压在 1px 连线中心上 */
  width: 14px;
  height: 14px;
  margin: 15.5px 0 19.5px;
  border: 2px solid var(--hm-brand);
  border-radius: 50%;
  background: var(--hm-paper);
  box-shadow: 0 0 0 3px rgba(46, 93, 210, 0.22);
  position: relative;
  z-index: 1;
}

/* 当前节点（第一个）：实心主蓝 + 更亮光环 */
.page-home .tl-node:first-child .dot {
  background: var(--hm-brand);
  box-shadow: 0 0 0 3px rgba(46, 93, 210, 0.34);
}

/* 未来节点：主蓝浅填充，仍属未到达状态 */
.page-home .tl-node.is-future .dot {
  background: rgba(46, 93, 210, 0.16);
}

.page-home .tl-node.is-future .year {
  color: var(--hm-brand);
}

.page-home .tl-node h3 {
  font-size: var(--hm-fs-22);
  line-height: 1.45;
  font-weight: 600;
  letter-spacing: 0.01em;
  margin-bottom: 0;
}

.page-home .tl-node p {
  margin-top: var(--hm-sp-2);
  font-size: var(--hm-fs-14);
  line-height: 1.8;
  color: var(--hm-ink-soft);
  max-width: 340px;
}

/* ============================================================
   Future
   ============================================================ */
.page-home .future {
  position: relative;
  overflow: hidden;
  color: #fff;
  min-height: auto;
  padding: var(--hm-sect-07-y) 0 var(--hm-sect-07-b);
}

.page-home .future-bg {
  position: absolute;
  inset: 0;
  background: url("../assets/team.jpg") center center / cover no-repeat;
}

.page-home .future-veil {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(13, 23, 52, 0.94) 0%, rgba(13, 23, 52, 0.82) 55%, rgba(13, 23, 52, 0.7) 100%);
}

.page-home .future .home-container {
  position: relative;
  z-index: 2;
}

.page-home .future .sec-title {
  font-size: clamp(var(--hm-fs-28), 3.4vw, 42px);
}

.page-home .future-slogan {
  margin-top: var(--hm-sp-12);
  max-width: 900px;
  font-size: clamp(var(--hm-fs-22), 2.4vw, var(--hm-fs-36));
  line-height: 1.45;
  font-weight: 500;
  letter-spacing: 0.01em;
  color: rgba(255, 255, 255, 0.92);
}

.page-home .phases {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--hm-sp-8);
  margin-top: var(--hm-sp-12);
  text-align: left;
}

.page-home .phase {
  background: none;
  border: 0;
  border-top: 1px solid rgba(255, 255, 255, 0.24);
  padding: var(--hm-sp-4) 0 0;
  transition: none;
}

.page-home .phase:hover {
  background: none;
  transform: none;
}

.page-home .phase-label {
  display: block;
  font-family: var(--hm-font-cn);
  font-size: var(--hm-fs-18);
  letter-spacing: 0.02em;
  color: rgba(255, 255, 255, 0.92);
  border: 0;
  padding: 0;
  margin-bottom: 0;
  font-weight: 700;
  white-space: nowrap;
}

.page-home .phase p {
  margin-top: var(--hm-sp-3);
  font-size: var(--hm-fs-14);
  line-height: 1.8;
  color: rgba(255, 255, 255, 0.74);
}

/* ============================================================
   Header on scroll (home only): dark frosted instead of white
   ============================================================ */
.page-home .site-header {
  transition: background-color 0.2s ease, box-shadow 0.2s ease;
}

.page-home .site-header.is-solid {
  background: rgba(18, 26, 40, 0.82);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  box-shadow: inset 0 -1px 0 rgba(255, 255, 255, 0.08);
}

.page-home .site-header.is-solid .logo-img-on-dark {
  display: block;
}

.page-home .site-header.is-solid .logo-img-on-light {
  display: none;
}

.page-home .site-header.is-solid .header-tabs a {
  color: rgba(255, 255, 255, 0.92);
}

.page-home .site-header.is-solid .header-tabs a:hover,
.page-home .site-header.is-solid .header-tabs a.is-active {
  color: #fff;
  border-bottom-color: #fff;
}

@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  .page-home .site-header.is-solid {
    background: rgba(18, 26, 40, 0.96);
  }
}

/* 首页页头 logo 右移 30px（仅桌面；移动端保持原位，避免挤压汉堡） */
@media (min-width: 721px) {
  .page-home .site-header .logo {
    transform: translateX(30px);
  }
}

/* ============================================================
   Footer
   ============================================================ */
/* 页脚规格已下沉到 styles.css 的通用 .site-footer / .footer-*，此处不再重复 */



/* ============================================================
   Responsive
   ============================================================ */
/* 1024 档：标题列与引导句同宽（660px）；排不下时由浏览器在逗号处自然折行 */
@media (max-width: 1024px) {
  .page-home .sec-head .head-main {
    max-width: 660px;
  }

  /* 标题 26px 在 1024 档临界，左右各收 2px 内边距保证单行；
     上下收到 20px，给 3 层 + 底座留出与 20px 节奏一致的收口空间 */
  .page-home .stack-panel {
    padding: 20px 28px;
  }

  .page-home .partner-grid,
  .page-home .qual-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 960px) {
  .page-home .hero-copy {
    padding: var(--hm-sp-8) 0 var(--hm-sp-12);
  }

  .page-home .hero h1 {
    font-size: clamp(38px, 8vw, 52px);
  }

  .page-home .hero-actions {
    flex-wrap: wrap;
    gap: var(--hm-sp-6);
  }

  .page-home .proof-item {
    padding: 0 var(--hm-sp-6);
  }

  .page-home .proof-item .num {
    font-size: 26px;
  }

  .page-home .hero-scroll {
    display: none;
  }

  .page-home .prod-layout {
    grid-template-columns: 1fr;
    gap: var(--hm-sp-8);
  }

  .page-home .prod-figure {
    position: static;
  }

  .page-home .stack-panel {
    aspect-ratio: auto;
    padding: var(--hm-sp-6);
    /* 底座不再单独加 20px 间距；底内边距 24 → 14，
       使「底座→面板底边」= 24.4 与顶部 24 对齐，六处留白同一节奏 */
    padding-bottom: 14px;
  }

  .page-home .stack-base {
    margin-top: 0;
  }

  .page-home .about-grid {
    grid-template-columns: 1fr;
    gap: var(--hm-sp-12);
  }

  .page-home .strength-grid {
    grid-template-columns: 1fr;
    gap: var(--hm-sp-8);
  }

  .page-home .ai-metrics {
    grid-template-columns: 1fr 1fr;
  }

  .page-home .case-layout {
    grid-template-columns: 1fr;
    gap: var(--hm-sp-12);
  }

  .page-home .case-feature {
    padding: var(--hm-sp-6);
    border-radius: 16px;
  }

  .page-home .case-metrics {
    grid-template-columns: 1fr 1fr;
    gap: var(--hm-sp-6) var(--hm-sp-4);
  }

  .page-home .partner-layout {
    grid-template-columns: 1fr;
    gap: var(--hm-sp-12);
  }

  .page-home .tl-track::before {
    display: none;
  }

  .page-home .tl-grid {
    grid-template-columns: 1fr;
    gap: 0;
  }

  .page-home .tl-node {
    /* ≤960：竖排，用 1px 竖向渐变线替代 border-left（渐变边框无法实现），
       padding 26 → 27 补偿去掉的 1px 边框，文本左边界不变 */
    padding: 0 0 var(--hm-sp-8) 27px;
    border-left: 0;
    margin-left: 4px;
    background-image: linear-gradient(180deg,
      rgba(46, 93, 210, 0.12) 0%,
      rgba(46, 93, 210, 0.55) 50%,
      rgba(46, 93, 210, 0.12) 100%);
    background-size: 1px 100%;
    background-position: left top;
    background-repeat: no-repeat;
  }

  .page-home .tl-node .year {
    height: auto;
  }

  .page-home .tl-node .dot {
    /* 14px 圆点：left -6.5 使圆心落在 1px 竖线中心（x 24.5）；
       top 43.5（原 34+margin 12）保持圆心 y 不变 */
    margin: 0;
    position: absolute;
    left: -6.5px;
    top: 43.5px;
  }

  .page-home .tl-node p {
    max-width: none;
  }

  .page-home .phases {
    grid-template-columns: 1fr;
    gap: var(--hm-sp-6);
  }

}

@media (max-width: 640px) {
  /* 板块垂直节奏：移动端按比例收紧，仅改变 section 外间距 */
  .page-home {
    --hm-sect-hero: 40px;
    --hm-sect-y: 32px;
    --hm-sect-y-dark: 24px;
    --hm-sect-07-y: 32px;
    --hm-sect-07-b: 24px;
    --hm-prod-title: 20px;
  }

  .page-home .hero .brand-line {
    /* 品牌行公司名 18px 后，390 下按 12px gap 会因亚像素溢出导致折行；
       收到 8px（省 12px）恢复单行，仅移动端生效 */
    gap: 8px;
  }

  .page-home .phase-label {
    font-size: var(--hm-fs-16);
  }

  .page-home .about-copy .about-lead {
    font-size: 24px;
  }

  /* 移动端：遮罩加深一档，保证白字在亮部仍然可读；不产生横向滚动 */
  .page-home .about-media::after {
    background: linear-gradient(
      180deg,
      rgba(13, 24, 56, 0.9) 0%,
      rgba(13, 24, 56, 0.8) 55%,
      rgba(13, 24, 56, 0.86) 100%
    );
  }


  .page-home .sec-head {
    display: block;
  }

  .page-home .sec-meta {
    display: block;
    margin-top: var(--hm-sp-3);
    padding-bottom: 0;
  }

  .page-home .hero-lead {
    font-size: 20px;
  }

  .page-home .hero-proof {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--hm-sp-4) 0;
  }

  .page-home .proof-item {
    padding: 0;
    border-left: 0;
  }

  .page-home .proof-item:nth-child(2n) {
    padding-left: var(--hm-sp-4);
    border-left: 1px solid rgba(255, 255, 255, 0.16);
  }

  .page-home .proof-item .label {
    font-size: 11px;
  }

  .page-home .prod-row {
    grid-template-columns: max-content 1fr 20px;
    gap: 8px;
  }

  .page-home .stack-panel {
    border-radius: 16px;
  }

  /* ≤640：字号并入统一的 28px（阶梯 22 → 28 一档）；
     22 → 28 行盒 +6.6px，墨迹中心需再上提，抵消为 -6px */
  .page-home .prod-row .arw {
    margin-top: -6px;
  }

  .page-home .prod-row p {
    font-size: 13px;
  }

  .page-home .prod-more {
    display: block;
  }

  .page-home .prod-more a {
    margin-top: var(--hm-sp-3);
  }

  .page-home .stat {
    min-height: 96px;
  }

  .page-home .stat-num {
    font-size: var(--hm-fs-28);
  }

  .page-home .stat-label {
    font-size: 11px;
  }

  .page-home .strength-col h3 {
    font-size: var(--hm-fs-18);
  }

  .page-home .ai-metrics {
    grid-template-columns: 1fr;
  }

  .page-home .case-feature h3 {
    font-size: var(--hm-fs-22);
  }

  .page-home .case-metrics strong {
    font-size: var(--hm-fs-22);
  }

  .page-home .case-row h3 {
    font-size: var(--hm-fs-18);
  }

  .page-home .partner-grid,
  .page-home .qual-grid {
    grid-template-columns: 1fr;
  }

}
