﻿@charset "UTF-8";
/* =============================================================================
   名菱工业 / MOSS · 官网 2026 · 共享设计系统 site.css
   -----------------------------------------------------------------------------
   纯原生 CSS：无 CDN、无 @import、无外部字体、无构建步骤。双击 html 离线即可渲染。
   唯一事实源：content-spec.md「0. 设计语言」
     工业高级感 · 1px 细线 #E4E6EA · 2px 圆角 · 克制朱红 #DA1F26
     中文标题字重 500 · 英文 eyebrow 全大写 11px/.18em · 数字等宽
   页面组可自由使用下列任一、二级类；缺类请找 design-system 补，不要写内联 style。
   目录
     00 tokens / reset / 基础排版
     01 utilities
     02 按钮 .btn / 箭头链接 / 标签 .tag / .badge
     03 顶部导航 .hdr / .nav / 下拉 / .burger / .drawer
     04 首屏 .hero（首页 / --dark / --page / --bare）
     05 区块 .sec / .sec__head / .phead / 网格 .grid-* / .split
     06 卡片 .card / .machine / .stat / .kpi-bar / .quote / .timeline / .accordion / .tabs
     07 组件（.feature .news-card .news-item .brandwall .honor .step .brandlane
        .cta .download .contact-list .map-dots .logo-strip .tile .details）
     08 表单 .form / .field / .input / .textarea / .select / .check / .form__done
     09 表格 .table
     10 页脚 .ftr / .ftr__bar
     11 动效 .reveal / .is-in
     12 断点 1080 / 860 / 640 / 480
     13 打印 / 降级（无 JS / reduced-motion / 高对比）
   ========================================================================== */

/* ============================ 00 tokens ================================== */
:root {
  /* 色板（content-spec 0 节，必须用这套） */
  --ink: #111417;
  --ink-2: #1C2127;
  --text: #17191C;
  --text-2: #5A616B;
  --text-3: #8A919B;
  --line: #E4E6EA;
  --bg: #FFFFFF;
  --bg-2: #F5F6F7;
  --red: #DA1F26;
  --red-deep: #B0161C;
  --green: #0E7A4F;
  --green-soft: #E8F2ED;
  --wave-1: #5FA759;
  --wave-2: #3E8FB8;
  --wave-3: #E2A33C;

  /* 衍生：深色区内的文字与分隔线 */
  --on-ink-2: rgba(255, 255, 255, .64);
  --on-ink-3: rgba(255, 255, 255, .40);
  --line-ink: rgba(255, 255, 255, .12);
  --line-ink-2: rgba(255, 255, 255, .22);

  /* 字体栈（纯系统字体，离线可用） */
  --sans: "Noto Sans SC", "Source Han Sans SC", "PingFang SC", "Microsoft YaHei", "Hiragino Sans GB", sans-serif;
  --mono: ui-monospace, "SF Mono", "JetBrains Mono", Consolas, "Cascadia Mono", monospace;

  /* 圆角 / 阴影 / 节奏 */
  --r: 2px;
  --shadow: 0 1px 2px rgba(17, 20, 23, .04);
  --shadow-2: 0 16px 34px -20px rgba(17, 20, 23, .28);
  --ease: cubic-bezier(.2, .7, .2, 1);
  --hdr-h: 76px;
  --gap: 24px;
}

*,
*::before,
*::after { box-sizing: border-box; }

html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  scroll-behavior: smooth;
  scroll-padding-top: calc(var(--r) * 0 + var(--hdr-h) + 18px);
  background-color: var(--bg);
}

html,
body { margin: 0; padding: 0; }

body {
  min-width: 0;
  overflow-x: hidden;
  font-family: var(--sans);
  font-size: 16px;
  line-height: 1.85;
  font-weight: 400;
  color: var(--text);
  background: var(--bg);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  font-kerning: normal;
}

body.is-locked { overflow: hidden; }

img, svg, video, canvas { max-width: 100%; height: auto; }
img { border: 0; display: block; }
svg { display: block; }

a {
  color: var(--red);
  text-decoration: none;
  text-underline-offset: 3px;
  transition: color .22s var(--ease), border-color .22s var(--ease), background-color .22s var(--ease);
}
a:hover { color: var(--red-deep); }

h1, h2, h3, h4, h5, h6,
p, blockquote, figure, dl, dd, dt, ul, ol, pre { margin: 0; }
ul, ol { padding: 0; list-style: none; }

h1, h2, h3, h4, h5, h6 {
  font-weight: 500;
  line-height: 1.24;
  letter-spacing: 0;
  color: var(--text);
}

button, input, select, textarea { font: inherit; color: inherit; }
button { background: none; border: 0; cursor: pointer; }

hr { border: 0; border-top: 1px solid var(--line); margin: 0; }

::selection { background: rgba(218, 31, 38, .16); color: var(--text); }

/* 键盘可见焦点：统一 2px 朱红描边 + 2px 外扩，深色区改用白色 */
:focus { outline: none; }
:focus-visible {
  outline: 2px solid var(--red);
  outline-offset: 2px;
  border-radius: var(--r);
}
.sec--ink :focus-visible,
.ftr :focus-visible,
.hero :focus-visible,
.drawer :focus-visible { outline-color: #FFFFFF; }

small { font-size: 12px; }

@media (pointer: fine) {
  ::-webkit-scrollbar { width: 10px; height: 10px; }
  ::-webkit-scrollbar-track { background: var(--bg-2); }
  ::-webkit-scrollbar-thumb {}
  ::-webkit-scrollbar-thumb { background: #C9CDD4; border: 2px solid var(--bg-2); border-radius: 6px; }
  ::-webkit-scrollbar-thumb:hover { background: #AEB4BD; }
}

/* ============================ 01 utilities ============================== */
.wrap {
  width: 100%;
  max-width: 1240px;
  max-width: 1240px;
  margin: 0 auto;
  padding: 0 32px;
}
.wrap--narrow { max-width: 900px; }
.wrap--wide { max-width: 1440px; }
.wrap--full { max-width: none; }

.sr-only {
  position: absolute !important;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

[hidden] { display: none !important; }

.u-mt-0 { margin-top: 0 !important; }
.u-mt-8 { margin-top: 8px !important; }
.u-mt-16 { margin-top: 16px !important; }
.u-mt-24 { margin-top: 24px !important; }
.u-mt-32 { margin-top: 32px !important; }
.u-mt-48 { margin-top: 48px !important; }
.u-mt-64 { margin-top: 64px !important; }
.u-mb-0 { margin-bottom: 0 !important; }
.u-mb-8 { margin-bottom: 8px !important; }
.u-mb-16 { margin-bottom: 16px !important; }
.u-mb-24 { margin-bottom: 24px !important; }
.u-mb-32 { margin-bottom: 32px !important; }
.u-mb-48 { margin-bottom: 48px !important; }
.u-mb-64 { margin-bottom: 64px !important; }

.u-center { text-align: center; }
.u-right { text-align: right; }
.u-tight { line-height: 1.65; }
.u-narrow { max-width: 62ch; }
.u-mono { font-family: var(--mono); }
.u-nowrap { white-space: nowrap; }
.u-flex { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.u-between { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; }

/* ============================ 02 按钮 / 标签 ============================= */
.btn {
  --btn-h: 50px;
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  height: var(--btn-h);
  padding: 0 24px;
  border: 1px solid var(--line);
  border-radius: var(--r);
  background: var(--bg);
  color: var(--text);
  font-family: var(--sans);
  font-size: 15px;
  font-weight: 500;
  line-height: 1;
  letter-spacing: .01em;
  white-space: nowrap;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  user-select: none;
  transition: background-color .24s var(--ease), color .24s var(--ease),
              border-color .24s var(--ease), transform .24s var(--ease);
}
.btn:hover { background: var(--bg-2); color: var(--text); border-color: #CFD4DA; }
.btn:active { transform: translateY(1px); }

/* 主按钮：朱红纯色底白字（禁止彩色渐变） */
.btn--red,
.btn--primary {
  background: var(--red);
  border-color: var(--red);
  color: #FFFFFF;
}
.btn--red:hover,
.btn--primary:hover { background: var(--red-deep); border-color: var(--red-deep); color: #FFFFFF; }

/* 透明描边（用于照片/深色背景） */
.btn--ghost {
  background: transparent;
  border-color: rgba(255, 255, 255, .48);
  color: #FFFFFF;
}
.btn--ghost:hover { background: rgba(255, 255, 255, .10); border-color: #FFFFFF; color: #FFFFFF; }

/* 深色实心 */
.btn--dark {
  background: var(--ink);
  border-color: var(--ink);
  color: #FFFFFF;
}
.btn--dark:hover { background: var(--ink-2); border-color: var(--ink-2); color: #FFFFFF; }

/* 浅色描边 */
.btn--line {
  background: transparent;
  border-color: var(--line);
  color: var(--text);
}
.btn--line:hover { border-color: var(--ink); background: transparent; color: var(--ink); }

/* 文字按钮 */
.btn--text {
  height: auto;
  padding: 4px 0;
  border: 0;
  border-radius: 0;
  background: none;
  color: var(--red);
  font-weight: 500;
}
.btn--text:hover { background: none; color: var(--red-deep); }

.btn--sm,
.btn--small { --btn-h: 40px; padding: 0 16px; font-size: 14px; }
.btn--lg { --btn-h: 56px; padding: 0 30px; font-size: 16px; }
.btn--block { display: flex; width: 100%; }
.btn[disabled],
.btn[aria-disabled="true"] { cursor: not-allowed; opacity: .42; pointer-events: none; }

/* 箭头链接 */
.link-arrow,
.arrow-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 14px;
  font-weight: 500;
  color: var(--red);
}
.link-arrow::after,
.arrow-link::after {
  content: "";
  width: 6px; height: 6px;
  border-top: 1px solid currentColor;
  border-right: 1px solid currentColor;
  transform: rotate(45deg);
  transition: transform .24s var(--ease);
}
.link-arrow:hover::after,
.arrow-link:hover::after { transform: translateX(3px) rotate(45deg); }
.sec--ink .link-arrow,
.sec--ink .arrow-link { color: #FFFFFF; }

/* 标签 .tag / 徽标 .badge */
.tag,
.badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 22px;
  padding: 0 8px;
  border: 1px solid;
  border: 1px solid var(--line);
  border-radius: var(--r);
  background: var(--bg);
  color: var(--text-2);
  font-family: var(--mono);
  font-size: 11px;
  font-weight: 400;
  line-height: 1;
  letter-spacing: .08em;
  text-transform: uppercase;
  white-space: nowrap;
}
.tag--red { color: var(--red); border-color: #EFC4C6; background: #FDF4F4; }
.tag--green { color: var(--green); border-color: #C6E0D5; background: var(--green-soft); }
.tag--ink { color: #FFFFFF; border-color: var(--ink); background: var(--ink); }
.tag--solid { color: #FFFFFF; border-color: var(--red); background: var(--red); }
.tag--lg { height: 26px; padding: 0 10px; font-size: 12px; }

.badge {
  min-width: 22px;
  justify-content: center;
  padding: 0 6px;
  border-radius: 999px;
  color: var(--text-3);
  font-size: 10px;
}

/* ============================ 03 顶部导航 =============================== */
.hdr {
  position: fixed;
  inset: 0 0 auto 0;
  z-index: 900;
  height: var(--hdr-h);
  color: #FFFFFF;
  background: transparent;
  border-bottom: 1px solid transparent;
  transition: background-color .34s var(--ease), border-color .34s var(--ease),
              color .34s var(--ease);
}
/* 透明态加深色渐变，保证照片上的白字可读（无彩色） */
.hdr::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  opacity: 1;
  background: linear-gradient(180deg, rgba(10, 12, 14, .55), rgba(10, 12, 14, 0));
  transition: opacity .34s var(--ease);
}
.hdr.is-solid,
.hdr--solid {
  color: var(--text);
  border-bottom-color: var(--line);
  background: rgba(255, 255, 255, .90);
  -webkit-backdrop-filter: saturate(1.5) blur(14px);
  backdrop-filter: saturate(1.5) blur(14px);
}
.hdr.is-solid::before,
.hdr--solid::before { opacity: 0; }

.hdr__in {
  display: flex;
  align-items: center;
  gap: 24px;
  height: var(--hdr-h);
}

.hdr__logo {
  display: inline-flex;
  align-items: center;
  flex: none;
  line-height: 0;
}
.hdr__logo img { display: block; height: 34px; width: auto; }

.hdr__tagline {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-left: 2px;
  padding-left: 18px;
  border-left: 1px solid rgba(255, 255, 255, .22);
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, .70);
  white-space: nowrap;
}
.hdr.is-solid .hdr__tagline,
.hdr--solid .hdr__tagline { border-left-color: var(--line); color: var(--text-3); }

/* 导航主体 */
.nav { display: flex; align-items: center; gap: 0; margin-left: auto; }
.nav a,
.nav__link {
  position: relative;
  display: inline-flex;
  align-items: center;
  height: 40px;
  padding: 0 12px;
  border-radius: var(--r);
  color: inherit;
  font-size: 15px;
  font-weight: 400;
  line-height: 1;
  letter-spacing: .02em;
  white-space: nowrap;
  transition: opacity .2s var(--ease);
}
.nav > a::after,
.nav__link::after {
  content: "";
  position: absolute;
  left: 12px;
  right: 12px;
  bottom: 5px;
  height: 1px;
  background: currentColor;
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform .3s var(--ease), background-color .2s var(--ease);
}
.nav > a:hover::after,
.nav__link:hover::after { transform: scaleX(1); }
.nav > a:hover { color: inherit; opacity: .94; }

.nav a.is-active,
.nav__link.is-active { font-weight: 500; }
.nav a.is-active::after,
.nav__link.is-active::after { transform: scaleX(1); background: var(--red); }
.hdr:not(.is-solid):not(.hdr--solid) .nav a.is-active::after { background: #FFFFFF; }

/* 下拉 */
.nav__drop { position: relative; display: flex; align-items: center; }
.nav__drop > button {
  display: inline-flex;
  align-items: center;
  height: 40px;
  padding: 0 12px;
  color: inherit;
  font-size: 15px;
  letter-spacing: .02em;
  white-space: nowrap;
}
.nav__drop > button::after,
.nav__drop > a::after { content: none; }
.nav__drop > button::before {
  content: "";
  order: 2;
  width: 6px; height: 6px;
  margin-left: 8px;
  margin-top: -4px;
  border-right: 1px solid currentColor;
  border-bottom: 1px solid currentColor;
  transform: rotate(45deg);
  opacity: .65;
  transition: transform .24s var(--ease), margin .24s var(--ease);
}
.nav__drop:hover > button::before,
.nav__drop:focus-within > button::before,
.nav__drop.is-open > button::before { margin-top: 0; transform: rotate(-135deg); }

/* 下拉按钮的底边线（与同级导航一致） */
.nav__drop > button { position: relative; }
.nav__drop > button span { position: relative; }
.nav__drop > button span::after {
  content: "";
  position: absolute;
  left: 0; right: 0; bottom: -6px;
  height: 1px;
  background: currentColor;
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform .3s var(--ease), background-color .2s var(--ease);
}
.nav__drop:hover > button span::after,
.nav__drop:focus-within > button span::after { transform: scaleX(1); }
.nav__drop.is-current > button span::after { transform: scaleX(1); background: var(--red); }
.hdr:not(.is-solid):not(.hdr--solid) .nav__drop.is-current > button span::after { background: #FFFFFF; }

.nav__sub {
  position: absolute;
  top: calc(100% + 10px);
  left: 50%;
  min-width: 210px;
  padding: 8px;
  transform: translate(-50%, 6px);
  border: 1px solid var(--line);
  border-radius: var(--r);
  background: var(--bg);
  box-shadow: 0 22px 44px -26px rgba(17, 20, 23, .36);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity .22s var(--ease), transform .22s var(--ease), visibility .22s;
}
.nav__drop:hover .nav__sub,
.nav__drop:focus-within .nav__sub,
.nav__drop.is-open .nav__sub {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translate(-50%, 0);
}
.nav__sub a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 40px;
  padding: 0 12px;
  border-radius: var(--r);
  color: var(--text);
  font-size: 14px;
  font-weight: 400;
  white-space: nowrap;
}
.nav__sub a::after { content: none; }
.nav__sub a:hover { background: var(--bg-2); color: var(--red); }

.nav__cta {
  display: inline-flex;
  align-items: center;
  height: 38px;
  margin-left: 12px;
  padding: 0 18px;
  border: 1px solid var(--red);
  border-radius: var(--r);
  background: var(--red);
  color: #FFFFFF;
  font-size: 14px;
  font-weight: 500;
  line-height: 1;
  white-space: nowrap;
  transition: background-color .22s var(--ease), border-color .22s var(--ease);
}
.nav__cta::after { content: none; }
.nav__cta:hover { background: var(--red-deep); border-color: var(--red-deep); color: #FFFFFF; }

.nav__lang {
  display: inline-flex;
  align-items: center;
  align-items: center;
  height: 38px;
  margin-left: 4px;
  padding: 0 10px;
  border-left: 1px solid rgba(255, 255, 255, .22);
  color: rgba(255, 255, 255, .72);
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: .16em;
}
.nav__lang::after { content: none; }
.hdr.is-solid .nav__lang,
.hdr--solid .nav__lang { border-left-color: var(--line); color: var(--text-3); }
.nav__lang[aria-disabled="true"] { cursor: default; }

/* 汉堡按钮 */
.burger {
  display: none;
  position: relative;
  flex: none;
  width: 44px;
  height: 44px;
  margin-left: auto;
  padding: 0;
  border: 1px solid currentColor;
  border-radius: var(--r);
  color: inherit;
  opacity: .92;
}
.burger span {
  position: absolute;
  left: 12px;
  width: 20px;
  height: 1px;
  background: currentColor;
  transition: transform .3s var(--ease), opacity .2s var(--ease), top .3s var(--ease);
}
.burger span:nth-child(1) { top: 15px; }
.burger span:nth-child(2) { top: 21px; }
.burger span:nth-child(3) { top: 27px; }
.burger[aria-expanded="true"] span:nth-child(1) { top: 21px; transform: rotate(45deg); }
.burger[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.burger[aria-expanded="true"] span:nth-child(3) { top: 21px; transform: rotate(-45deg); }

/* 移动端全屏抽屉 */
.drawer {
  position: fixed;
  inset: 0;
  z-index: 950;
  display: flex;
  flex-direction: column;
  background: var(--ink);
  color: #FFFFFF;
  opacity: 0;
  visibility: hidden;
  transform: translateY(-6px);
  transition: opacity .3s var(--ease), transform .34s var(--ease), visibility .3s;
  overflow: hidden;
}
.drawer.is-open { opacity: 1; visibility: visible; transform: none; }
.drawer a { color: #FFFFFF; }
.drawer a:hover { color: #FFFFFF; }
.drawer__head {
  position: absolute;
  inset: 0 0 auto 0;
  z-index: 2;
  height: var(--hdr-h);
  border-bottom: 1px solid var(--line-ink);
  background: var(--ink);
}
.drawer__head .hdr__in { justify-content: space-between; }
.drawer__head .burger { display: block; border-color: var(--line-ink-2); }
.drawer .nav { display: none; }
.drawer__in {
  flex: 1 1 auto;
  height: 100%;
  padding: calc(var(--hdr-h) + 18px) 20px 48px;
  overflow-y: auto;
  -webkit-overflow: touch;
  -webkit-overflow-scrolling: touch;
}
.drawer__nav { display: flex; flex-direction: column; }
.drawer__nav a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 15px 2px;
  border-bottom: 1px solid var(--line-ink);
  font-size: 19px;
  font-weight: 400;
  line-height: 1.4;
}
.drawer__nav a::after {
  content: "";
  width: 7px; height: 7px;
  border-top: 1px solid currentColor;
  border-right: 1px solid currentColor;
  transform: rotate(45deg);
  opacity: .42;
}
.drawer__sub { display: flex; flex-wrap: wrap; gap: 8px; padding: 16px 0 4px; }
.drawer__sub a {
  display: inline-flex;
  align-items: center;
  height: 34px;
  padding: 0 12px;
  border: 1px solid var(--line-ink-2);
  border-radius: var(--r);
  color: var(--on-ink-2);
  font-size: 13px;
}
.drawer .btn { display: flex; width: 100%; margin-top: 24px; --btn-h: 52px; }
.drawer .drawer__btn { display: none; }
.drawer__foot {
  margin-top: 28px;
  padding-top: 20px;
  border-top: 1px solid var(--line-ink);
  color: var(--on-ink-3);
  font-family: var(--mono);
  font-size: 12px;
  line-height: 2;
  letter-spacing: .06em;
}
.drawer__foot a { color: var(--on-ink-2); }

/* ============================ 04 首屏 hero ============================== */
.hero {
  position: relative;
  display: flex;
  align-items: flex-end;
  min-height: 88vh;
  min-height: 88svh;
  padding: calc(var(--hdr-h) + 40px) 0 0;
  /* Lead: 移除 isolation:isolate —— isolate 会创建独立层叠上下文，使内部遮罩在部分渲染环境
     下无法正确压住背景图（表现为首屏发白）。这里不需要 isolate，z-index 已足够控制层次。 */
  color: #FFFFFF;
  overflow: hidden;
  background: var(--ink);
}
/* hero 背景图：用装饰性 <img> 叠在 section 底色之上（不依赖负 z-index，避免被隔离层吃掉） */
.hero__media,
.hero__bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  overflow: hidden;
  background: var(--ink);
}
.hero__media img,
.hero__bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 60%;
}
/* 深色遮罩：独立层（DOM 顺序在背景图之后，天然盖住背景图，不依赖负 z-index） */
.hero__veil {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background: linear-gradient(180deg, rgba(10, 12, 14, .72), rgba(10, 12, 14, .45) 45%, rgba(10, 12, 14, .86));
}
/* 内容层必须压在背景图之上 */
.hero > .wrap,
.hero__inner { position: relative; z-index: 2; }
/* 深色遮罩（content-spec 3.1 指定渐变） */
.hero::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -2;
  background: linear-gradient(180deg, rgba(10, 12, 14, .72), rgba(10, 12, 14, .45) 45%, rgba(10, 12, 14, .86));
}
/* 极细浅灰网格 */
.hero__grid {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background-image:
    linear-gradient(90deg, rgba(255, 255, 255, .055) 1px, transparent 0),
    linear-gradient(0deg, rgba(255, 255, 255, .055) 1px, transparent 0);
  background-size: 88px 88px;
  -webkit-mask-image: linear-gradient(180deg, rgba(0, 0, 0, .55), rgba(0, 0, 0, .16) 55%, rgba(0, 0, 0, .5));
  mask-image: linear-gradient(180deg, rgba(0, 0, 0, .55), rgba(0, 0, 0, .16) 55%, rgba(0, 0, 0, .5));
}
.hero__inner {
  position: relative;
  width: 100%;
  padding-top: 5vh;
  padding-bottom: 44px;
}

/* 顶部细条 */
.hero__top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding-bottom: 16px;
  margin-bottom: 34px;
  border-bottom: 1px solid rgba(255, 255, 255, .18);
  color: rgba(255, 255, 255, .82);
  font-family: var(--mono);
  font-size: 11px;
  font-size: 11px;
  line-height: 1.7;
  letter-spacing: .17em;
  text-transform: uppercase;
}
.hero__top span { display: inline-flex; align-items: center; gap: 10px; }

.hero__kicker,
.hero__eyebrow {
  display: block;
  margin-bottom: 20px;
  color: rgba(255, 255, 255, .74);
  font-family: var(--mono);
  font-size: 12px;
  line-height: 1.6;
  letter-spacing: .2em;
  text-transform: uppercase;
}

.hero__title {
  max-width: 18em;
  margin: 0;
  color: #FFFFFF;
  font-size: clamp(40px, 4.8vw, 66px);
  font-weight: 500;
  line-height: 1.16;
  letter-spacing: -.01em;
  text-wrap: balance;
}
.hero__title small,
.hero__title-sm {
  display: block;
  margin-bottom: 14px;
  color: rgba(255, 255, 255, .58);
  font-family: var(--mono);
  font-size: clamp(11px, 1.05vw, 13px);
  font-weight: 400;
  line-height: 1.6;
  letter-spacing: .22em;
  text-transform: uppercase;
}

.hero__sub,
.hero__en {
  display: block;
  margin-top: 20px;
  color: rgba(255, 255, 255, .56);
  font-family: var(--mono);
  font-size: clamp(12px, 1.1vw, 14px);
  line-height: 1.7;
  letter-spacing: .04em;
}
.hero__desc {
  max-width: 48em;
  margin-top: 26px;
  color: rgba(255, 255, 255, .80);
  font-size: 16px;
  line-height: 1.95;
}
.hero__actions,
.hero__cta { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 38px; }
.hero__actions .btn,
.hero__cta .btn { min-width: 166px; }

/* 右侧竖排 */
.hero__side {
  position: absolute;
  top: 50%;
  right: 2px;
  transform: translateY(-50%);
  display: flex;
  align-items: center;
  gap: 18px;
  color: rgba(255, 255, 255, .52);
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: .3em;
  text-transform: uppercase;
  white-space: nowrap;
  writing-mode: vertical-rl;
  text-orientation: mixed;
}
.hero__side::before,
.hero__side::after {
  content: "";
  writing-mode: horizontal-tb;
  width: 1px;
  height: 60px;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0), rgba(255, 255, 255, .42), rgba(255, 255, 255, 0));
}

/* 底部四格数据条（玻璃块） */
.hero__stats {
  position: relative;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1px;
  width: 100%;
  margin-top: clamp(40px, 5.6vh, 68px);
  border: 1px solid rgba(255, 255, 255, .16);
  border-radius: var(--r);
  background: rgba(255, 255, 255, .10);
  /* Lead: 去掉 backdrop-filter —— 它会在部分渲染环境下把整块 hero 提为合成层，
     与 .hero__shade 叠加产生「发白」的合成错误。玻璃块用半透明白色底即可达到同样质感。 */
  overflow: hidden;
}
.hero__stats > * {
  padding: 22px 24px 20px;
  background: rgba(255, 255, 255, .04);
}
.hero__stats .stat {
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  padding: 22px 24px 20px;
}
.hero__stats .stat__num,
.hero__stats .stat__v,
.hero__stats .stat b,
.hero__stats .stat strong {
  color: #FFFFFF;
  font-size: clamp(26px, 2.3vw, 36px);
}
.hero__stats .stat__label,
.hero__stats .stat span,
.hero__stats .stat small { color: rgba(255, 255, 255, .62); }

/* hero--dark：MOSS 式电影感首屏 */
.hero--dark {
  align-items: center;
  min-height: 92vh;
  min-height: 92svh;
  background: #0B0D0F;
}
.hero--dark .hero__veil, .hero--dark .hero__bg::after {
  background: linear-gradient(180deg, rgba(6, 8, 10, .80), rgba(6, 8, 10, .52) 42%, rgba(6, 8, 10, .94));
}
.hero--dark .hero__title {
  font-family: var(--mono);
  font-size: clamp(60px, 9.5vw, 132px);
  font-weight: 400;
  line-height: 1;
  letter-spacing: .14em;
  color: #FFFFFF;
}
.hero--dark .hero__stats { background: rgba(255, 255, 255, .06); }

/* hero--page：内页页头 */
.hero--page {
  align-items: flex-end;
  min-height: 0;
  padding: calc(var(--hdr-h) + clamp(80px, 10vw, 124px)) 0 clamp(52px, 6.6vw, 84px);
}
.hero--page::before {
  background: linear-gradient(180deg, rgba(10, 12, 14, .78), rgba(10, 12, 14, .56) 55%, rgba(10, 12, 14, .86));
}
.hero--page .hero__inner { padding: 0; }
.hero--page .hero__title { font-size: clamp(38px, 4.6vw, 58px); }
.hero--page .hero__desc { margin-top: 20px; }

/* hero--bare：纯深色页头（无照片） */
.hero--bare { background: var(--ink); }

/* 面包屑 */
.crumbs {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin-bottom: 22px;
  color: rgba(255, 255, 255, .48);
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.crumbs a { color: inherit; }
.crumbs a:hover { color: #FFFFFF; }

/* ============================ 05 区块 / 网格 ============================= */
.sec {
  position: relative;
  padding: clamp(80px, 9vw, 140px) 0;
}
.sec--alt { background: var(--bg-2); }
.sec--tight { padding: clamp(48px, 5vw, 76px) 0; }
.sec--flush { padding: 0; }
.sec--line { border-top: 1px solid var(--line); }

/* 深色区块 */
.sec--ink { background: var(--ink); color: rgba(255, 255, 255, .72); }
.sec--ink .h1, .sec--ink .h2, .sec--ink .h3, .sec--ink .h4,
.sec--ink h2, .sec--ink h3, .sec--ink h4 { color: #FFFFFF; }
.sec--ink .lead, .sec--ink p { color: rgba(255, 255, 255, .70); }
.sec--ink .muted { color: rgba(255, 255, 255, .42); }
.sec--ink .eyebrow { color: rgba(255, 255, 255, .48); }
.sec--ink .sec__eyebrow { color: rgba(255, 255, 255, .48); }
.sec--ink .card,
.sec--ink .machine,
.sec--ink .stat {
  border-color: var(--line-ink);
  background: rgba(255, 255, 255, .035);
  box-shadow: none;
}
.sec--ink .tag { border-color: var(--line-ink-2); background: transparent; color: rgba(255, 255, 255, .66); }
.sec--ink .tag--red { border-color: rgba(218, 31, 38, .55); color: #F26A6E; }
.sec--ink .tag--green { border-color: rgba(14, 122, 79, .6); color: #57C795; }
.sec--ink .btn--line { border-color: var(--line-ink-2); color: #FFFFFF; }
.sec--ink .btn--line:hover { border-color: #FFFFFF; }

.sec--paper {
  background-color: var(--bg);
  background-image: none;
  background-image:
    linear-gradient(90deg, rgba(17, 20, 23, .028) 1px, transparent 0),
    linear-gradient(0deg, rgba(17, 20, 23, .028) 1px, transparent 0);
  background-size: 88px 88px;
}

/* 区块头：eyebrow + 标题 / 说明，两栏 */
.sec__head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, .78fr);
  gap: clamp(24px, 4vw, 72px);
  align-items: end;
  margin-bottom: clamp(40px, 5vw, 64px);
  padding-bottom: clamp(20px, 2.4vw, 30px);
  border-bottom: 1px solid var(--line);
}
.sec--ink .sec__head { border-bottom-color: var(--line-ink); }
.sec__head--center {
  grid-template-columns: 1fr;
  justify-items: center;
  text-align: center;
  border-bottom: 0;
  padding-bottom: 0;
  max-width: 780px;
  margin-left: auto;
  margin-right: auto;
}
.sec__head--center .sec__desc,
.sec__head--center .lead { margin-left: auto; margin-right: auto; }
.sec__head--one { grid-template-columns: 1fr; }
.sec__head--tight { margin-bottom: clamp(28px, 3vw, 0px); margin-bottom: clamp(28px, 3vw, 40px); }
.sec__head .h2 { margin-top: 14px; }
.sec__head .sec__desc,
.sec__head .lead { color: var(--text-2); font-size: 16px; line-height: 1.9; }
.sec--ink .sec__head .sec__desc,
.sec--ink .sec__head .lead { color: rgba(255, 255, 255, .62); }

/* 页内标题（非区块头） */
.phead { padding: clamp(52px, 6vw, 84px) 0 clamp(28px, 3vw, 40px); }
.phead--center { text-align: center; }

/* ============================ 排版级 ==================================== */
.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: var(--mono);
  font-size: 11px;
  font-weight: 400;
  line-height: 1.6;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--text-3);
}
.eyebrow::before {
  content: "";
  width: 18px;
  height: 1px;
  background: var(--red);
  flex: none;
}
.eyebrow--plain::before { content: none; }
.eyebrow--red { color: var(--red); }
.eyebrow--light { color: rgba(255, 255, 255, .55); }
.sec__eyebrow { margin-bottom: 14px; }

.h1 {
  margin: 0;
  font-size: clamp(48px, 6vw, 76px);
  font-weight: 500;
  line-height: 1.12;
  letter-spacing: -.01em;
  color: var(--text);
}
.h2 {
  margin: 0;
  font-size: clamp(34px, 3.4vw, 46px);
  font-weight: 500;
  line-height: 1.22;
  letter-spacing: -.005em;
  color: var(--text);
}
.h3 {
  margin: 0;
  font-size: 22px;
  font-weight: 500;
  line-height: 1.42;
  color: var(--text);
}
.h4 {
  margin: 0;
  font-size: 18px;
  font-weight: 500;
  line-height: 1.5;
  color: var(--text);
}
.h5 {
  margin: 0;
  font-size: 15px;
  font-weight: 500;
  line-height: 1.6;
  color: var(--text);
}
.h--en {
  font-family: var(--mono);
  font-weight: 400;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.lead {
  margin: 0;
  font-size: 18px;
  line-height: 1.9;
  color: var(--text-2);
  font-weight: 400;
}
.desc {
  color: var(--text-2);
  font-size: 15px;
  line-height: 1.9;
}
.muted { color: var(--text-3); }
.num,
[data-count] {
  font-family: var(--mono);
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
  letter-spacing: -.01em;
}
.num--red { color: var(--red) !important; }
.num--green { color: var(--green) !important; }
.num--lg { font-size: clamp(34px, 4vw, 56px); line-height: 1; }
.num--xl { font-size: clamp(48px, 6vw, 84px); line-height: 1; }
.u-unit { font-family: var(--sans); font-size: .46em; font-weight: 400; margin-left: 4px; color: var(--text-3); letter-spacing: 0; }

.rich p + p { margin-top: 16px; }
.rich a { text-decoration: underline; }
.text-red { color: var(--red); }
.text-green { color: var(--green); }

/* ============================ 网格 / split ============================== */
.grid {
  display: grid;
  gap: var(--gap);
}
.grid-2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--gap); }
.grid-3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--gap); }
.grid-4 { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--gap); }
.grid-6 { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 16px; }
.grid-auto { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: var(--gap); }
.grid--lg { gap: 40px; }
.grid--sm { gap: 14px; }
.grid--line { gap: 0; border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.grid--line > * { border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }

/* 左文右图（.split__media 放右），.split--rev 镜像 */
.split {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.02fr);
  gap: clamp(32px, 5vw, 80px);
  align-items: center;
}
.split--wide { grid-template-columns: minmax(0, .92fr) minmax(0, 1.18fr); }
.split--wide.split--rev { grid-template-columns: minmax(0, 1.18fr) minmax(0, .92fr); }
.split--top { align-items: start; }
.split--rev > .split__media { order: -1; }
.split__body { min-width: 0; }
.split__body > .eyebrow { margin-bottom: 16px; }
.split__body > .h2 { margin-bottom: 20px; }
.split__body > .lead { margin-bottom: 24px; }
.split__media { position: relative; min-width: 0; }
.split__media img {
  width: 100%;
  height: auto;
  object-fit: cover;
  border-radius: var(--r);
  border: 1px solid var(--line);
}
.split--tall .split__media img { aspect-ratio: 4 / 5; }
.split--4x3 .split__media img { aspect-ratio: 4 / 3; }
.split--16x10 .split__media img { aspect-ratio: 16 / 10; }
.split__body > .btn,
.split__body > .link-arrow,
.split__body > .arrow-link { margin-top: 28px; }

/* ============================ 06 卡片组件 =============================== */
.card {
  position: relative;
  display: flex;
  flex-direction: column;
  padding: 28px;
  border: 1px solid var(--line);
  border-radius: var(--r);
  background: var(--bg);
  box-shadow: var(--shadow);
  transition: transform .34s var(--ease), box-shadow .34s var(--ease), border-color .34s var(--ease);
}
.card:hover {
  transform: translateY(-2px);
  box-shadow: var(--shadow-2);
  border-color: #D7DAE0;
}
.card--flat:hover { transform: none; box-shadow: var(--shadow); border-color: var(--line); }
.card--pad-sm { padding: 22px; }
.card--pad-lg { padding: clamp(28px, 3vw, 44px); }
.card--tight { padding: 20px 22px; }
.card--flush { padding: 0; overflow: hidden; }
.card--row { flex-direction: row; align-items: center; gap: 22px; }
.card--ink { background: var(--ink); border-color: var(--ink); color: rgba(255, 255, 255, .72); }
.card--ink .h3, .card--ink .h4, .card--ink h3, .card--ink h4 { color: #FFFFFF; }
.card--alt { background: var(--bg-2); }
.card--accent { border-top: 2px solid var(--red); }
.card__head { margin-bottom: 14px; }
.card__title { margin: 6px 0 0; font-size: 20px; font-weight: 500; line-height: 1.45; }
.card__text { color: var(--text-2); font-size: 15px; line-height: 1.9; }
.card__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin-bottom: 14px;
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: .12em;
  color: var(--text-3);
}
.card__foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: auto;
  padding-top: 20px;
  border-top: 1px solid var(--line);
  font-size: 14px;
}
.card__foot--plain { border-top: 0; padding-top: 16px; }
.card > * + * { margin-top: 14px; }
.card > .card__title + .card__text { margin-top: 10px; }
.card > .card__foot { margin-top: auto; }

/* 编号卡（技术能力 / 条款） */
.card__num {
  display: block;
  margin-bottom: 18px;
  color: var(--red);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: .16em;
}

/* 机型卡 */
.machine {
  position: relative;
  display: flex;
  flex-direction: column;
  border: 1px solid var(--line);
  border-radius: var(--r);
  background: var(--bg);
  overflow: hidden;
  transition: transform .34s var(--ease), box-shadow .34s var(--ease), border-color .34s var(--ease);
}
.machine:hover { transform: translateY(-2px); box-shadow: var(--shadow-2); border-color: #D7DAE0; }
.machine__img {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  aspect-ratio: 4 / 3;
  padding: 18px;
  background: var(--bg);
  border-bottom: 1px solid var(--line);
  overflow: hidden;
}
.machine__img::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background-image:
    linear-gradient(90deg, rgba(17, 20, 23, .04) 1px, transparent 0),
    linear-gradient(0deg, rgba(17, 20, 23, .04) 1px, transparent 0);
  background-size: 24px 24px;
  -webkit-mask-image: radial-gradient(ellipse at center, rgba(0, 0, 0, .55), transparent 72%);
  mask-image: radial-gradient(ellipse at center, rgba(0, 0, 0, .55), transparent 72%);
  -webkit-mask-image: radial-gradient(ellipse at center, rgba(0, 0, 0, .55), transparent 72%);
}
.machine img,
.machine__img img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
  position: relative;
  z-index: 1;
  transition: transform .5s var(--ease);
}
.machine:hover img { transform: scale(1.025); }
.machine__body {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  padding: 20px 22px 22px;
}
.machine__tags { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 12px; }
.machine__model,
.machine__no {
  display: block;
  color: var(--text);
  font-family: var(--mono);
  font-size: 15px;
  font-weight: 500;
  letter-spacing: .03em;
  line-height: 1.4;
}
.machine__name {
  margin: 4px 0 0;
  color: var(--text-2);
  font-size: 14px;
  font-weight: 400;
  line-height: 1.7;
}
.machine__foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-top: auto;
  padding-top: 16px;
  border-top: 1px solid var(--line);
  font-size: 13px;
  color: var(--text-3);
}
.machine--red .machine__img { background: #FDF7F7; }
.machine--green .machine__img { background: #F6FBF8; }
.machine--muted .machine__img { background: var(--bg-2); }
.machine--sm .machine__body { padding: 16px 18px 18px; }
.machine--sm .machine__model { font-size: 13px; }
.machine--sm .machine__name { font-size: 12.5px; }
.machine--img-only .machine__img { border-bottom: 0; }
/* 机型图占位（js 在 onerror 时写入 .is-placeholder） */
.machine__img.is-placeholder { background: var(--bg-2); }
.machine__img.is-placeholder::before {
  content: attr(data-alt) " · 图片更新中";
  color: var(--text-3);
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: .12em;
  text-transform: uppercase;
  text-align: center;
  padding: 0 16px;
}

/* 数据卡 .stat */
.stat {
  position: relative;
  padding: 24px;
  border: 1px solid var(--line);
  border-radius: var(--r);
  background: var(--bg);
}
.stat__num,
.stat__v {
  display: block;
  color: var(--text);
  font-family: var(--mono);
  font-size: clamp(34px, 3.6vw, 52px);
  font-weight: 400;
  line-height: 1;
  letter-spacing: -.02em;
  font-variant-numeric: tabular-nums;
}
.stat__num small,
.stat__v small { font-size: .42em; letter-spacing: 0; margin-left: 4px; color: var(--text-3); font-family: var(--sans); }
.stat__label,
.stat__l {
  display: block;
  margin-top: 14px;
  color: var(--text-2);
  font-size: 14px;
  line-height: 1.7;
}
.stat__label::before { content: ""; }
.stat--bare { padding: 0; border: 0; background: transparent; }
.stat--line { border-color: var(--line); }
.stat--red .stat__num { color: var(--red); }
.stat--center { text-align: center; }
.stat--row { display: flex; align-items: baseline; gap: 16px; }
.stat--row .stat__label { margin-top: 0; }

/* 行业占比条 .kpi-bar */
.kpi-bar { display: block; }
.kpi-bar__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 10px;
}
.kpi-bar__name { font-size: 15px; color: var(--text); }
.kpi-bar__val {
  color: var(--text);
  font-family: var(--mono);
  font-size: 15px;
  font-variant-numeric: tabular-nums;
}
.kpi-bar__track {
  position: relative;
  height: 3px;
  background: var(--line);
  border-radius: 0;
  overflow: hidden;
}
.kpi-bar__fill {
  display: block;
  width: var(--w, 0%);
  height: 100%;
  background: var(--red);
  transform-origin: left center;
  transition: width .9s var(--ease);
}
.kpi-bar + .kpi-bar { margin-top: 22px; }
.kpi-bar--ink .kpi-bar__name { color: #FFFFFF; }
.kpi-bar--ink .kpi-bar__val { color: #FFFFFF; }
.kpi-bar--ink .kpi-bar__track { background: var(--line-ink-2); }
.sec--ink .kpi-bar__name,
.sec--ink .kpi-bar__val { color: #FFFFFF; }
.sec--ink .kpi-bar__track { background: var(--line-ink-2); }

/* 引用 .quote */
.quote {
  position: relative;
  padding: clamp(28px, 3.4vw, 44px);
  border: 1px solid var(--line);
  border-left: 2px solid var(--red);
  border-radius: var(--r);
  background: var(--bg);
}
.quote__text {
  color: var(--text);
  font-size: clamp(19px, 1.8vw, 24px);
  font-weight: 400;
  line-height: 1.75;
}
.quote__text::before { content: "「"; }
.quote__text::after { content: "」"; }
.quote__cite,
.quote__by {
  display: block;
  margin-top: 18px;
  color: var(--text-3);
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: .16em;
  text-transform: uppercase;
  font-style: normal;
}
.sec--ink .quote { background: transparent; border-color: var(--line-ink); border-left-color: var(--red); }
.sec--ink .quote__text { color: #FFFFFF; }
.quote--plain { border: 0; border-left: 2px solid var(--red); padding-left: 26px; background: transparent; }

/* 时间轴 .timeline */
.timeline {
  position: relative;
  margin: 0;
  padding: 4px 0 4px 34px;
  border-left: 1px solid var(--line);
}
.timeline__item {
  position: relative;
  padding: 0 0 30px 0;
}
.timeline__item:last-child { padding-bottom: 0; }
.timeline__item::before {
  content: "";
  position: absolute;
  top: 10px;
  left: -34px;
  width: 7px;
  height: 7px;
  margin-left: -4px;
  border-radius: 50%;
  background: var(--bg);
  border: 1px solid var(--text-3);
}
.timeline__item:first-child::before,
.timeline__item.is-key::before {
  background: var(--red);
  border-color: var(--red);
}
.timeline__year,
.timeline__date {
  display: block;
  margin-bottom: 6px;
  color: var(--red);
  font-family: var(--mono);
  font-size: 17px;
  font-weight: 400;
  line-height: 1.2;
  letter-spacing: .06em;
  font-variant-numeric: tabular-nums;
}
.timeline__text {
  color: var(--text-2);
  font-size: 15px;
  line-height: 1.85;
}
.timeline__title { color: var(--text); font-size: 16px; font-weight: 500; line-height: 1.6; }
.sec--ink .timeline { border-left-color: var(--line-ink); }
.sec--ink .timeline__item::before { background: var(--ink); border-color: rgba(255, 255, 255, .38); }
.sec--ink .timeline__item:first-child::before { background: var(--red); border-color: var(--red); }
.sec--ink .timeline__text { color: rgba(255, 255, 255, .62); }
.sec--ink .timeline__title { color: #FFFFFF; }
.timeline--2col { columns: 2; column-gap: clamp(28px, 4vw, 56px); }
.timeline--2col .timeline__item { break-inside: avoid; }

/* 手风琴 .accordion */
.accordion { border-top: 1px solid var(--line); }
.accordion__item { border-bottom: 1px solid var(--line); }
.accordion__btn {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  width: 100%;
  padding: 22px 2px;
  color: var(--text);
  font-size: 17px;
  font-weight: 500;
  line-height: 1.5;
  text-align: left;
}
.accordion__btn::after {
  content: "";
  flex: none;
  width: 9px;
  height: 9px;
  margin-right: 2px;
  border-right: 1px solid var(--text-2);
  border-bottom: 1px solid var(--text-2);
  transform: rotate(45deg);
  transition: transform .26s var(--ease);
}
.accordion__btn[aria-expanded="true"]::after { transform: rotate(-135deg); }
.accordion__panel {
  display: none;
  padding: 0 2px 24px;
  color: var(--text-2);
  font-size: 15px;
  line-height: 1.9;
}
.accordion__panel.is-open { display: block; }
.accordion__item.is-open .accordion__panel { display: block; }

/* 筛选 tabs / 分区 tabs */
.tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  padding: 0;
  margin: 0;
}
.tabs__btn,
.tabs button,
.tabs--filter button {
  display: inline-flex;
  align-items: center;
  height: 40px;
  padding: 0 16px;
  border: 1px solid var(--line);
  border-radius: var(--r);
  background: var(--bg);
  color: var(--text-2);
  font-size: 14px;
  font-weight: 400;
  line-height: 1;
  white-space: nowrap;
  transition: color .22s var(--ease), border-color .22s var(--ease), background-color .22s var(--ease);
}
.tabs__btn:hover,
.tabs button:hover,
.tabs--filter button:hover { color: var(--text); border-color: #CFD4DA; background: var(--bg-2); }
.tabs__btn.is-active,
.tabs button.is-active,
.tabs button[aria-pressed="true"],
.tabs__btn[aria-pressed="true"],
.tabs--filter button.is-active {
  color: #FFFFFF;
  background: var(--ink);
  border-color: var(--ink);
}
.tabs--pill .tabs__btn,
.tabs--pill button { border-radius: 999px; }
.tabs__count,
.tabs__val { font-family: var(--mono); font-size: 11px; letter-spacing: .06em; margin-left: 8px; opacity: .62; }
.tabs__bar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 34px;
}
.tabs__result,
.tabs__meta {
  color: var(--text-3);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: .06em;
}
.tabs__result b,
.tabs__meta b { color: var(--text); font-weight: 400; }
.tabs__note { color: var(--text-3); font-size: 13px; }

/* 分区切换（hash 同步）：.tabs--page + .tabpanel */
.tabs--page { border-bottom: 1px solid var(--line); gap: 0; margin-bottom: 40px; }
.tabs--page button {
  height: 52px;
  padding: 0 18px;
  border: 0;
  border-bottom: 1px solid transparent;
  border-radius: 0;
  background: transparent;
  color: var(--text-3);
  font-size: 15px;
}
.tabs--page button:hover { background: transparent; color: var(--text); border-bottom-color: var(--line); }
.tabs--page button.is-active {
  color: var(--text);
  background: transparent;
  border-bottom-color: var(--red);
}
.tabs--page button.is-active:hover { background: transparent; }
.tabpanel[hidden] { display: none !important; }

/* 空态 */
.empty {
  padding: 56px 24px;
  border: 1px dashed var(--line);
  border-radius: var(--r);
  color: var(--text-3);
  font-size: 15px;
  text-align: center;
}

/* ============================ 07 内容组件 =============================== */
/* 能力/特性列表（无边框，细线分隔） */
.feature { display: flex; gap: 18px; align-items: flex-start; }
.feature__num {
  flex: none;
  width: 34px;
  color: var(--red);
  font-family: var(--mono);
  font-size: 12px;
  line-height: 2.2;
  letter-spacing: .12em;
  padding-top: 1px;
}
.feature__body { min-width: 0; }
.feature__title { color: var(--text); font-size: 16px; font-weight: 500; line-height: 1.6; }
.feature__text { margin-top: 6px; color: var(--text-2); font-size: 14px; line-height: 1.85; }
.feature + .feature { margin-top: 24px; padding-top: 24px; border-top: 1px solid var(--line); }
.sec--ink .feature__title { color: #FFFFFF; }
.sec--ink .feature__text { color: rgba(255, 255, 255, .62); }
.sec--ink .feature + .feature { border-top-color: var(--line-ink); }

/* 列表（带朱红短横） */
.list { display: block; }
.list li {
  position: relative;
  padding-left: 20px;
  color: var(--text-2);
  font-size: 15px;
  line-height: 1.9;
}
.list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: .95em;
  width: 8px;
  height: 1px;
  background: var(--red);
}
.list li + li { margin-top: 8px; }
.list--check li::before { content: "—"; border: 0; width: auto; height: auto; background: none; top: 0; color: var(--red); }
.list--inline { display: flex; flex-wrap: wrap; gap: 8px 22px; }
.list--inline li + li { margin-top: 0; }
.sec--ink .list li { color: var(--on-ink-2); }

/* 新闻：首页 3 列 .news-card */
.news-card {
  display: flex;
  flex-direction: column;
  border: 1px solid var(--line);
  border-radius: var(--r);
  background: var(--bg);
  overflow: hidden;
  transition: transform .34s var(--ease), box-shadow .34s var(--ease), border-color .34s var(--ease);
}
.news-card:hover { transform: translateY(-2px); box-shadow: var(--shadow-2); border-color: #D7DAE0; }
.news-card__img,
.news-card > img {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  border-bottom: 1px solid var(--line);
  background: var(--bg-2);
}
.news-card__body { display: flex; flex: 1 1 auto; flex-direction: column; padding: 22px; }
.news-card__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  margin-bottom: 12px;
  color: var(--text-3);
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.news-card__title { color: var(--text); font-size: 17px; font-weight: 500; line-height: 1.55; }
.news-card__text { margin-top: 10px; color: var(--text-2); font-size: 14px; line-height: 1.85; }
.news-card__foot { margin-top: auto; padding-top: 18px; }

/* 新闻：列表行 .news-item */
.news-item {
  display: grid;
  grid-template-columns: 132px minmax(0, 1fr) auto;
  gap: clamp(18px, 3vw, 44px);
  align-items: start;
  padding: 30px 0;
  border-bottom: 1px solid var(--line);
}
.news-item:first-child { border-top: 1px solid var(--line); }
.news-item__date {
  color: var(--text);
  font-family: var(--mono);
  font-size: 15px;
  letter-spacing: .04em;
  font-variant-numeric: tabular-nums;
}
.news-item__src { display: block; margin-top: 6px; color: var(--text-3); font-size: 12px; letter-spacing: .08em; }
.news-item__title { color: var(--text); font-size: 19px; font-weight: 500; line-height: 1.55; }
.news-item__text { margin-top: 8px; color: var(--text-2); font-size: 14.5px; line-height: 1.9; }
.news-item__more { align-self: center; }

/* 合作品牌墙 */
.brandwall {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
  gap: 1px;
  border: 1px solid var(--line);
  border-radius: var(--r);
  background: var(--line);
  overflow: hidden;
}
.brandwall > * {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 84px;
  padding: 16px;
  background: var(--bg);
  color: var(--text-2);
  font-family: var(--mono);
  font-size: 13px;
  letter-spacing: .1em;
  text-transform: uppercase;
  text-align: center;
  transition: background-color .24s var(--ease), color .24s var(--ease);
}
.brandwall > *:hover { background: var(--bg-2); color: var(--text); }
.brandwall img { max-height: 40px; width: auto; object-fit: contain; filter: grayscale(1); opacity: .78; }
.sec--ink .brandwall { border-color: var(--line-ink); background: var(--line-ink); }
.sec--ink .brandwall > * { background: var(--ink); color: var(--on-ink-2); }
.sec--ink .brandwall > *:hover { background: #171B20; color: #FFFFFF; }
.sec--ink .brandwall > * img { filter: grayscale(1) invert(1); opacity: .72; }

/* 荣誉墙（细线矩阵） */
.honor {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 1px;
  border: 1px solid var(--line);
  background: var(--line);
}
.honor > * {
  padding: 22px;
  background: var(--bg);
}
.honor .honor__num {
  color: var(--red);
  font-family: var(--mono);
  font-size: 28px;
  line-height: 1;
  font-variant-numeric: tabular-nums;
}
.honor .honor__t { margin-top: 10px; color: var(--text); font-size: 14px; line-height: 1.7; }
.honor .honor__s { margin-top: 4px; color: var(--text-3); font-size: 12px; }

/* 三步 / 编号步骤 */
.step { position: relative; padding-top: 22px; }
.step::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 34px;
  height: 2px;
  background: var(--red);
}
.step__num {
  display: block;
  margin-top: 14px;
  color: var(--text-3);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: .16em;
}
.step__title { margin-top: 8px; color: var(--text); font-size: 18px; font-weight: 500; line-height: 1.55; }
.step__text { margin-top: 8px; color: var(--text-2); font-size: 14px; line-height: 1.9; }

/* 双品牌并排（首页） */
.brandlane {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 1px minmax(0, 1fr);
  gap: 0;
  align-items: stretch;
}
.brandlane__cell { padding: clamp(24px, 3.4vw, 52px) clamp(20px, 3vw, 56px); }
.brandlane__div { background: var(--line-ink); }
.brandlane__mark {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 18px;
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: .18em;
  text-transform: uppercase;
}
.brandlane__mark::before { content: ""; width: 8px; height: 8px; background: var(--red); }
.brandlane__cell--green .brandlane__mark::before { background: var(--green); }
.brandlane__title { color: #FFFFFF; font-size: clamp(—, 24px, 30px); font-size: clamp(24px, 2.4vw, 30px); line-height: 1.4; }
.brandlane__sub { margin-top: 10px; color: rgba(255, 255, 255, .86); font-size: 18px; }
.brandlane__text { margin-top: 14px; color: rgba(255, 255, 255, .56); font-size: 14px; line-height: 1.9; }
.brandlane__foot {
  grid-column: 1 / -1;
  margin-top: 0;
  padding: 20px 0 0;
  border-top: 1px solid var(--line-ink);
  color: rgba(255, 255, 255, .48);
  font-size: 13px;
  letter-spacing: .04em;
}

/* 联系 CTA（朱红细边） */
.cta {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 32px;
  padding: clamp(30px, 4vw, 52px) clamp(24px, 4vw, 56px);
  border: 1px solid var(--line);
  border-top: 2px solid var(--red);
  border-radius: var(--r);
  background: var(--bg);
}
.cta__body { flex: 1 1 420px; min-width: 0; }
.cta__title { color: var(--text); font-size: clamp(24px, 2.6vw, 34px); line-height: 1.35; }
.cta__text { margin-top: 10px; color: var(--text-2); font-size: 15px; line-height: 1.9; }
.cta__actions { display: flex; flex-wrap: wrap; border: 0; gap: 12px; }
.cta__tel {
  display: inline-flex;
  align-items: baseline;
  gap: 10px;
  color: var(--text);
  font-family: var(--mono);
  font-size: 20px;
  letter-spacing: .02em;
}
.cta--ink { background: var(--ink); border-color: var(--ink); border-top-color: var(--red); }
.cta--ink .cta__title { color: #FFFFFF; }
.cta--ink .cta__text { color: rgba(255, 255, 255, .62); }
.cta--ink .cta__tel { color: #FFFFFF; }

/* 资料下载 */
.download,
.download-list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 1px;
  border: 1px solid var(--line);
  background: var(--line);
}
.download__item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  justify-content: space-between;
  gap: 16px;
  padding: 22px;
  background: var(--bg);
  transition: background-color .24s var(--ease);
}
.download__item:hover { background: var(--bg-2); }
.download__name { color: var(--text); font-size: 15px; font-weight: 500; line-height: 1.6; }
.download__meta { margin-top: 4px; color: var(--text-3); font-family: var(--mono); font-size: 11px; letter-spacing: .1em; }
.download__icon {
  flex: none;
  width: 34px;
  height: 34px;
  border: 1px solid var(--line);
  border-radius: var(--r);
  background:
    linear-gradient(180deg, transparent 0 0) center / 12px 1px no-repeat,
    linear-gradient(90deg, transparent 0 0) center / 1px 12px no-repeat,
    var(--bg);
}
.download__item .btn { flex: none; }

/* 联系信息列表 */
.contact-list { display: block; border-top: 1px solid var(--line); }
.contact-list__row,
.contact-list > li,
.contact-list > div {
  display: grid;
  grid-template-columns: 148px minmax(0, 1fr);
  gap: 20px;
  padding: 16px 0;
  border-bottom: 1px solid var(--line);
  font-size: 14.5px;
  line-height: 1.8;
}
.contact-list dt,
.contact-list__k,
.contact-list > * > strong {
  color: var(--text-3);
  font-family: var(--mono);
  font-size: 11px;
  font-weight: 400;
  letter-spacing: .14em;
  text-transform: uppercase;
  padding-top: 4px;
}
.contact-list dd,
.contact-list__v { margin: 0; color: var(--text); }
.contact-list dd a { color: var(--text); }
.contact-list dd a:hover { color: var(--red); }
.sec--ink .contact-list,
.sec--ink .contact-list__row,
.sec--ink .contact-list > li,
.sec--ink .contact-list > div { border-color: var(--line-ink); }
.sec--ink .contact-list dd,
.sec--ink .contact-list__v { color: #FFFFFF; }

/* 点阵地图容器（SVG 由页面提供，样式在此） */
.map-dots {
  position: relative;
  padding: clamp(16px, 2.4vw, 30px);
  border: 1px solid var(--line);
  border-radius: var(--r);
  background: var(--bg-2);
  overflow: hidden;
}
.map-dots svg { display: block; width: 100%; height: auto; }
.map-dots .dot,
.map-dots circle { fill: var(--text-3); fill-opacity: .22; }
.map-dots .dot--on,
.map-dots .pin { fill: var(--red); fill-opacity: 1; }
.map-dots__legend {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 20px;
  margin-top: 18px;
  padding-top: 16px;
  border-top: 1px solid var(--line);
  color: var(--text-3);
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.sec--ink .map-dots { border-color: var(--line-ink); background: rgba(255, 255, 255, .03); }
.sec--ink .map-dots .dot,
.sec--ink .map-dots circle { fill: #FFFFFF; fill-opacity: .18; }
.sec--ink .map-dots .pin { fill: var(--red); fill-opacity: 1; }

/* logo 条（双 logo 并置） */
.logo-strip {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: clamp(20px, 3vw, 44px);
  padding: 26px 0;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.logo-strip img { max-height: 30px; width: auto; }
.sec--ink .logo-strip { border-color: var(--line-ink); }

/* 图片块 */
.tile { position: relative; overflow: hidden; border-radius: var(--r); border: 1px solid var(--line); }
.tile img { width: 100%; height: 100%; object-fit: cover; display: block; }
.tile__cap {
  position: absolute;
  left: 0; right: 0; bottom: 0;
  padding: 18px 20px;
  background: linear-gradient(180deg, rgba(10, 12, 14, 0), rgba(10, 12, 14, .74));
  color: #FFFFFF;
  font-size: 13px;
  line-height: 1.6;
}
.tile--16x9 img { aspect-ratio: 16 / 9; }
.tile--4x3 img { aspect-ratio: 4 / 3; }
.tile--1x1 img { aspect-ratio: 1; }
.figure-cap { margin-top: 12px; color: var(--text-3); font-size: 12px; line-height: 1.7; }
.photo { border-radius: var(--r); border: 1px solid var(--line); overflow: hidden; }
.photo img { width: 100%; height: auto; display: block; }

/* 数字条（横向并列，细线分隔） */
.statbar {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 0;
  border-top: 1px solid var(--line);
  border-left: 1px solid var(--line);
}
.statbar > * {
  padding: 24px;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

/* 原生 details（新闻「阅读全文」） */
.details,
details.news-details { margin-top: 12px; border-top: 1px solid var(--line); }
.details > summary,
details.news-details > summary {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 12px 0;
  color: var(--red);
  font-size: 14px;
  font-weight: 500;
  line-height: 1;
  cursor: pointer;
  list-style: none;
}
.details > summary::-webkit-details-marker,
details.news-details > summary::-webkit-details-marker { display: none; }
.details > summary::after,
details.news-details > summary::after {
  content: "";
  width: 6px; height: 6px;
  margin-top: -3px;
  border-right: 1px solid currentColor;
  border-bottom: 1px solid currentColor;
  transform: rotate(45deg);
  transition: transform .24s var(--ease);
}
.details[open] > summary::after,
details.news-details[open] > summary::after { transform: rotate(-135deg); margin-top: 2px; }
.details__body,
details.news-details > *:not(summary) {
  padding: 4px 0 18px;
  color: var(--text-2);
  font-size: 14.5px;
  line-height: 1.95;
}

/* ============================ 08 表单 =================================== */
.form { display: grid; gap: 22px; }
.form__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px 20px; }
.form__row { display: block; }
.form__row--full { grid-column: 1 / -1; }
.form__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 16px; margin-top: 4px; }
.form__note { color: var(--text-3); font-size: 12.5px; line-height: 1.7; }

.field { display: block; position: relative; min-width: 0; }
.field__label,
.field label,
.field > label {
  display: block;
  margin-bottom: 8px;
  color: var(--text-2);
  font-size: 13px;
  font-weight: 400;
  line-height: 1.6;
  letter-spacing: .02em;
}
.field__label .req,
.field label .req,
.req { color: var(--red); margin-left: 2px; }
.field__hint { display: block; margin-top: 6px; color: var(--text-3); font-size: 12px; line-height: 1.6; }

.input,
.textarea,
.select {
  display: block;
  width: 100%;
  min-width: 0;
  min-height: 50px;
  padding: 14px 14px;
  border: 1px solid var(--line);
  border-radius: var(--r);
  background: var(--bg);
  color: var(--text);
  font-family: var(--sans);
  font-size: 15px;
  line-height: 1.6;
  transition: border-color .2s var(--ease), box-shadow .2s var(--ease), background-color .2s var(--ease);
  appearance: none;
  -webkit-appearance: none;
}
.input::placeholder,
.textarea::placeholder { color: var(--text-3); opacity: 1; }
.input:hover,
.textarea:hover,
.select:hover { border-color: #CFD4DA; }
.input:focus,
.textarea:focus,
.select:focus {
  outline: 0;
  border-color: var(--red);
  box-shadow: 0 0 0 3px rgba(218, 31, 38, .12);
}
.input:focus-visible,
.textarea:focus-visible,
.select:focus-visible { outline: 2px solid var(--red); outline-offset: 2px; box-shadow: none; }
.textarea { min-height: 146px; resize: vertical; padding-top: 13px; line-height: 1.8; }
.select {
  padding-right: 40px;
  background-image:
    linear-gradient(45deg, transparent 50%, var(--text-2) 50%),
    linear-gradient(135deg, var(--text-2) 50%, transparent 50%);
  background-position: calc(100% - 19px) calc(50% + 1px), calc(100% - 14px) calc(50% + 1px);
  background-size: 5px 5px, 5px 5px;
  background-repeat: no-repeat;
  cursor: pointer;
}
.select:invalid,
.select option[value=""] { color: var(--text-3); }

/* 错误态 */
.field--err .input,
.field--err .textarea,
.field--err .select,
.input.is-err,
.textarea.is-err { border-color: var(--red); background: #FFF7F7; }
.field--err .field__label,
.field__err { color: var(--red); }
.field__err { display: block; margin-top: 6px; font-size: 12px; line-height: 1.6; }
.field--err .field__hint { display: none; }
.field.is-ok .input,
.field.is-ok .select { border-color: #C6E0D5; }

/* 自定义勾选 */
.check {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  color: var(--text-2);
  font-size: 13.5px;
  line-height: 1.75;
  cursor: pointer;
}
.check input[type="checkbox"],
.check input[type="radio"] {
  flex: none;
  width: 16px;
  height: 16px;
  margin: 4px 0 0;
  border: 1px solid var(--text-3);
  border-radius: var(--r);
  background: var(--bg);
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
  transition: background-color .2s var(--ease), border-color .2s var(--ease);
}
.check input[type="checkbox"]:checked,
.check input[type="radio"]:checked { background: var(--red); border-color: var(--red); }
.check input[type="checkbox"]:checked::after {
  content: "";
  display: block;
  width: 4px; height: 8px;
  margin: 1px 0 0 5px;
  border-right: 1.5px solid #FFFFFF;
  border-bottom: 1.5px solid #FFFFFF;
  transform: rotate(42deg);
}
.check input[type="radio"] { border-radius: 50%; }
.check input[type="radio"]:checked::after {
  content: "";
  display: block;
  width: 6px; height: 6px;
  margin: 4px auto 0;
  border-radius: 50%;
  background: . #FFFFFF;
  background: #FFFFFF;
}
.check a { text-decoration: underline; }

/* 提交后成功面板 */
.form__done {
  display: none;
  padding: clamp(—, 32px, 48px);
  padding: clamp(28px, 3vw, 44px);
  border: 1px solid var(--line);
  border-top: 2px solid var(--green);
  border-radius: var(--r);
  background: var(--bg);
  text-align: center;
}
.form__done.is-on,
.form__done[data-on] { display: block; }
.form.is-sent { display: none; }
.form__done h3,
.form__done .h3 { margin-bottom: 12px; color: var(--text); }
.form__done p { color: var(--text-2); font-size: 15px; line-height: 1.9; }
.form__done .btn { margin-top: 20px; }
.form__done-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  margin-bottom: 18px;
  border: 1px solid var(--green);
  border-radius: 50%;
  color: var(--green);
  font-family: var(--mono);
  font-size: 18px;
}

/* ============================ 09 表格 =================================== */
.table {
  width: 100%;
  border-collapse: collapse;
  border-spacing: 0;
  font-size: 14px;
  line-height: 1.75;
  text-align: left;
}
.table caption {
  caption-side: top;
  padding: 0 0 14px;
  color: var(--text-3);
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: .14em;
  text-transform: uppercase;
  text-align: left;
}
.table th,
.table td {
  padding: 13px 16px;
  border: 1px solid var(--line);
  vertical-align: top;
}
.table thead th {
  background: var(--bg-2);
  color: var(--text);
  color: var(--text);
  font-size: 12.5px;
  font-weight: 500;
  letter-spacing: .06em;
  text-transform: uppercase;
  white-space: nowrap;
}
.table tbody th {
  width: 34%;
  background: var(--bg-2);
  color: var(--text);
  font-weight: 500;
  white-space: normal;
}
.table td { color: var(--text-2); }
.table tbody tr:nth-child(even) td { background: #FAFBFC; }
.table tbody tr:hover td { background: #F4F5F7; }
.table .num,
.table td.num { font-family: var(--mono); font-variant-numeric: tabular-nums; white-space: nowrap; }
.table-wrap {
  width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  border-radius: var(--r);
}
.table-wrap .table { min-width: 560px; }
.table-wrap { max-width: 100%; }
html, body { max-width: 100%; }
.table--compact th,
.table--compact td { padding: 10px 12px; font-size: 13.5px; }
.sec--ink .table th,
.sec--ink .table td { border-color: var(--line-ink); }
.sec--ink .table thead th,
.sec--ink .table tbody th { background: rgba(255, 255, 255, .05); color: #FFFFFF; }
.sec--ink .table td { color: var(--on-ink-2); }
.sec--ink .table tbody tr:nth-child(even) td { background: rgba(255, 255, 255, .02); }

/* ============================ 10 页脚 =================================== */
.ftr {
  position: relative;
  background: var(--ink);
  color: rgba(255, 255, 255, .56);
  padding: clamp(56px, 6.4vw, 88px) 0 0;
  font-size: 14px;
  line-height: 1.85;
}
.ftr__in {
  display: grid;
  grid-template-columns: minmax(0, 1.18fr) minmax(0, 2.1fr) minmax(0, 1fr);
  gap: clamp(32px, 5vw, 72px);
  padding-bottom: clamp(40px, 4.6vw, 60px);
}
.ftr__brand { min-width: 0; }
.ftr__logo { display: inline-block; margin-bottom: 22px; }
.ftr__logo img {
  height: 32px;
  width: auto;
  filter: brightness(0) invert(1);
  opacity: .94;
}
.ftr__claim { max-width: 26em; color: rgba(255, 255, 255, .62); font-size: 14px; line-height: 1.9; }
.ftr__qr { display: flex; align-items: center; gap: 14px; margin-top: 26px; }
.ftr__qr img {
  width: 84px;
  height: 84px;
  padding: 6px;
  border-radius: var(--r);
  background: #FFFFFF;
  object-fit: contain;
}
.ftr__qr span { color: rgba(255, 255, 255, .40); font-size: 12px; line-height: 1.7; }

.ftr__map { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px 20px; min-width: 0; }
.ftr__col > h4,
.ftr__col > .ftr__t,
.ftr__t {
  margin-bottom: 14px;
  color: #FFFFFF;
  font-size: 12px;
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: .06em;
}
.ftr__t {
  display: block;
  margin-bottom: 14px;
  color: rgba(255, 255, 255, .38);
  font-family: var(--mono);
  font-size: 11px;
  font-weight: 400;
  letter-spacing: .16em;
  text-transform: uppercase;
}
.ftr a { color: rgba(255, 255, 255, .58); }
.ftr a:hover { color: #FFFFFF; }
.ftr__col li + li { margin-top: 6px; }
.ftr__col a { display: inline-block; font-size: 13.5px; line-height: 1.85; }

.ftr__contact { min-width: 0; }
.ftr__contact p { margin-bottom: 10px; color: rgba(255, 255, 255, .56); font-size: 13.5px; }
.ftr__contact .num { color: #FFFFFF; font-size: 16px; letter-spacing: .02em; }
.ftr__contact strong { display: block; color: #FFFFFF; font-weight: 500; }

.ftr__bar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 12px 24px;
  padding: 20px 0 24px;
  border-top: 1px solid var(--line-ink);
  color: rgba(255, 255, 255, .34);
  font-size: 12.5px;
  line-height: 1.8;
}
.ftr__bar a { color: rgba(255, 255, 255, .42); }
.ftr__bar a:hover { color: #FFFFFF; }
.ftr__bar span { display: inline-block; }
.ftr__bar > * + * { }
.ftr__en {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, .28);
}

/* 页脚细线网格装饰 */
.ftr::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background-image:
    linear-gradient(90deg, rgba(255, 255, 255, .028) 1px, transparent 0),
    linear-gradient(0deg, rgba(255, 255, 255, .028) 1px, transparent 0);
  background-size: 88px 88px;
  -webkit-mask-image: linear-gradient(180deg, rgba(0, 0, 0, .8), transparent 60%);
  mask-image: linear-gradient(180deg, rgba(0, 0, 0, .8), transparent 60%);
}
.ftr .wrap { position: relative; z-index: 1; }

/* ============================ 11 动效 =================================== */
.reveal {
  opacity: 0;
  transform: translateY(10px);
  transition: opacity .7s var(--ease), transform .7s var(--ease);
  will-change: opacity, transform;
}
.reveal.is-in {
  opacity: 1;
  transform: none;
  will-change: auto;
}
.reveal[data-delay="1"] { transition-delay: .06s; }
.reveal[data-delay="2"] { transition-delay: .12s; }
.reveal[data-delay="3"] { transition-delay: .18s; }
.reveal[data-delay="4"] { transition-delay: .24s; }
.reveal[data-delay="5"] { transition-delay: .30s; }
.reveal[data-delay="6"] { transition-delay: .36s; }

/* KPI 条填充宽度收缩动画 */
.js .kpi-bar__fill { transition: width .9s var(--ease); }
.kpi-anim .kpi-bar__fill { width: var(--w, 0%); }
.kpi-bar--anim .kpi-bar__fill { width: var(--w, 0%); }

/* 载入淡出：仅 0.6s，绝不阻塞 1.5s 以上 */
/* Lead: 改为无动画（opacity 动画会产生合成层，影响 hero 遮罩合成） */
.page-fade { animation: none; }
@keyframes page-fade {
  from { opacity: 0; }
  to { opacity: 1; }
}

/* 波纹线绘制（品牌线条，可选） */
.wave-path {
  stroke-dasharray: var(--len, 2400);
  stroke-dashoffset: var(--len, 2400);
  transition: stroke-dashoffset 1.1s var(--ease);
}
.is-in .wave-path,
.wave-path.is-in { stroke-dashoffset: 0; }

/* =============== 11b 兼容别名（页面组已按此命名书写，勿删） ============== */
/* 同一份设计系统的两套命名：结构 A（hdr__in / nav / nav__drop / nav__sub）
   与结构 B（hdr__inner / nav__list / hdr__side / lang / ftr__main）。
   下面把 B 套别名映射到 A 套的实现，保证两类页面视觉完全一致。 */

/* —— 顶部导航 —— */
.hdr__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  height: var(--hdr-h);
}
.nav__list {
  display: flex;
  align-items: center;
  gap: 0;
  min-width: 0;
}
.nav__list > a,
.nav__list > .nav__link {
  position: relative;
  display: inline-flex;
  align-items: center;
  height: 40px;
  padding: 0 12px;
  color: inherit;
  font-size: 15px;
  font-weight: 400;
  line-height: 1;
  letter-spacing: .02em;
  white-space: nowrap;
  transition: opacity .2s var(--ease);
}
.nav__list > a::after {
  content: "";
  position: absolute;
  left: 12px;
  right: 12px;
  bottom: 5px;
  height: 1px;
  background: currentColor;
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform .3s var(--ease), background-color .2s var(--ease);
}
.nav__list > a:hover::after { transform: scaleX(1); }
.nav__list > a:hover { color: inherit; }
.nav__list > a.is-active { font-weight: 500; }
.nav__list > a.is-active::after { transform: scaleX(1); background: var(--red); }
.hdr:not(.is-solid):not(.hdr--solid) .nav__list > a.is-active::after { background: #FFFFFF; }
.nav__list .nav__drop { position: relative; display: flex; align-items: center; }
.nav__list .nav__drop > a { padding-right: 30px; }
.nav__list .nav__drop > a::before {
  content: "";
  position: absolute;
  right: 14px;
  top: 50%;
  width: 6px;
  height: 6px;
  margin-top: -4px;
  border-right: 1px solid currentColor;
  border-bottom: 1px solid currentColor;
  transform: rotate(45deg);
  opacity: .65;
  transition: transform .24s var(--ease), margin .24s var(--ease);
}
.nav__list .nav__drop:hover > a::before,
.nav__list .nav__drop:focus-within > a::before { margin-top: 0; transform: rotate(-135deg); }
.nav__list .nav__sub { left: 0; transform: translate(0, 6px); }
.nav__list .nav__drop:hover .nav__sub,
.nav__list .nav__drop:focus-within .nav__sub,
.nav__list .nav__sub.is-open { transform: translate(0, 0); }

/* 头部右组 + 语言切换 */
.hdr__side { display: flex; align-items: center; gap: 14px; flex: none; }
.lang,
.nav__lang.lang {
  display: inline-flex;
  align-items: center;
  height: 38px;
  padding: 0 4px 0 12px;
  border-left: 1px solid rgba(255, 255, 255, .22);
  color: rgba(255, 255, 255, .72);
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: .16em;
  text-transform: uppercase;
}
.hdr.is-solid .lang,
.hdr--solid .lang,
.hdr.is-solid .nav__lang.lang { border-left-color: var(--line); color: var(--text-3); }
.lang[aria-disabled="true"] { cursor: default; pointer-events: none; opacity: .72; }

/* —— 页脚 —— */
.ftr__main {
  display: grid;
  grid-template-columns: minmax(0, 1.18fr) minmax(0, 2.1fr) minmax(0, 1fr);
  gap: clamp(32px, 5vw, 72px);
  padding-bottom: clamp(40px, 4.6vw, 60px);
}
.ftr__col-title,
.ftr .ftr__col .ftr__col-title {
  display: block;
  margin-bottom: 14px;
  color: rgba(255, 255, 255, .38);
  font-family: var(--mono);
  font-size: 11px;
  font-weight: 400;
  line-height: 1.6;
  letter-spacing: .16em;
  text-transform: uppercase;
}

/* —— 分区切换按钮（a 版） —— */
.tabs__link {
  display: inline-flex;
  align-items: center;
  height: 52px;
  padding: 0 18px;
  border-bottom: 1px solid transparent;
  color: var(--text-3);
  font-size: 15px;
  line-height: 1;
  white-space: nowrap;
  transition: color .22s var(--ease), border-color .22s var(--ease);
}
.tabs__link:hover { color: var(--text); border-bottom-color: var(--line); }
.tabs__link.is-active,
.tabs__link[aria-selected="true"] { color: var(--text); font-weight: 500; border-bottom-color: var(--red); }
.tabs__link[aria-disabled="true"] { pointer-events: none; }

/* —— 数据卡（方框版 / 无框版） —— */
.stat--box { border: 1px solid var(--line); border-radius: var(--r); background: var(--bg); padding: 24px; }
.stat--plain,
.stat--bare { border: 0; background: transparent; padding: 0; }
.sec--ink .stat--box { border-color: var(--line-ink); background: rgba(255, 255, 255, .035); }

/* —— 引用 / 卡片深色变体 —— */
.quote--ink {
  background: var(--ink);
  border-color: var(--ink);
  border-left: 2px solid var(--red);
}
.quote--ink .quote__text { color: #FFFFFF; }
.quote--ink .quote__cite { color: rgba(255, 255, 255, .42); }

/* —— 徽标变体 —— */
.badge--red { color: var(--red); border-color: #EFC4C6; background: #FDF4F4; }
.badge--green { color: var(--green); border-color: #C6E0D5; background: var(--green-soft); }
.badge--ink { color: #FFFFFF; border-color: var(--ink); background: var(--ink); }

/* —— 抽屉结构别名 —— */
.drawer__top {
  position: absolute;
  inset: 0 0 auto 0;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: var(--hdr-h);
  padding: 0 20px;
  border-bottom: 1px solid var(--line-ink);
  background: var(--ink);
}
.drawer__close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border: 1px solid var(--line-ink-2);
  border-radius: var(--r);
  color: #FFFFFF;
  font-size: 20px;
  line-height: 1;
}
.drawer__close:hover { border-color: #FFFFFF; }
.drawer .drawer__nav { display: flex; }
.drawer .drawer__nav a.is-active { color: #FFFFFF; font-weight: 500; }
.drawer .drawer__nav a.is-active::after { opacity: 1; background: var(--red); border: 0; transform: none; width: 7px; height: 1px; }
.drawer__body { padding-top: 6px; }
/* 抽屉里有 .drawer__top 时，内容顶部留出头部高度 */
.drawer__top ~ .drawer__body,
.drawer__top + .drawer__nav { margin-top: var(--hdr-h); }

/* —— 新闻条目（列表版） —— */
.news-item__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  margin-bottom: 8px;
  color: var(--text-3);
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.news-item__sum {
  margin-top: 8px;
  color: var(--text-2);
  font-size: 14.5px;
  line-height: 1.9;
}
.news-item__link { color: var(--red); font-size: 14px; font-weight: 500; }

/* —— 原生 details 别墅名 —— */
.details__sum {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 12px 0;
  color: var(--red);
  font-size: 14px;
  font-weight: 500;
  line-height: 1;
  list-style: none;
  cursor: pointer;
}
.details__sum::-webkit-details-marker { display: none; }
.details__arrow {
  display: inline-block;
  width: 6px;
  height: 6px;
  margin-top: -3px;
  border-right: 1px solid currentColor;
  border-bottom: 1px solid currentColor;
  transform: rotate(45deg);
  transition: transform .24s var(--ease);
}
.details[open] .details__arrow { transform: rotate(-135deg); margin-top: 2px; }

/* —— 杂项 —— */
.hdr__inner .hdr__logo img { height: 34px; }
@media (max-width: 1080px) {
  .nav__list { display: none; }
  .drawer .nav__list { display: flex; flex-direction: column; align-items: stretch; gap: 0; }
  .drawer .nav__list > a,
  .drawer .nav__list .nav__drop > a {
    height: auto;
    padding: 15px 2px;
    font-size: 19px;
    border-bottom: 1px solid var(--line-ink);
  }
  .drawer .nav__list > a::after { content: none; }
  .drawer .nav__list .nav__sub { position: static; display: flex; flex-wrap: wrap; gap: 8px; opacity: 1; visibility: visible; transform: none; box-shadow: none; border: 0; background: transparent; padding: 12px 0; }
  .drawer .nav__list .nav__sub a { height: 34px; padding: 0 12px; border: 1px solid var(--line-ink-2); color: var(--on-ink-2); font-size: 13px; }
  .hdr__side .nav__cta { display: none; }
  .ftr__main { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
}
@media (max-width: 860px) {
  .ftr__main { grid-template-columns: minmax(0, 1fr); gap: 30px; }
}

/* ============================ 12 断点 =================================== */
@media (max-width: 1280px) {
  .nav a, .nav__link, .nav__drop > button { padding: 0 10px; font-size: 14.5px; }
  .nav a::after, .nav__link::after { left: 10px; right: 10px; }
  .hdr__tagline { display: none; }
}

@media (max-width: 1080px) {
  :root { --hdr-h: 68px; }
  .wrap { padding: 0 24px; }

  /* 桌面导航收起 */
  .nav,
  .nav__cta,
  .nav__lang { display: none; }
  .burger { display: block; }
  .drawer .nav { display: none; }
  .drawer .nav__cta { display: inline-flex; width: 100%; justify-content: center; margin: 22px 0 0; height: 50px; }
  .drawer__head .hdr__logo img { height: 30px; }

  .hero__side { display: none; }
  .hero { min-height: 78vh; min-height: 78svh; }
  .hero__title { font-size: clamp(32px, 4.4vw, 50px); }
  .hero--page .hero__title { font-size: clamp(32px, 4.2vw, 46px); }
  .hero--dark .hero__title { font-size: clamp(48px, 8vw, 96px); }

  .grid-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .grid-6 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .split,
  .split--wide,
  .split--wide.split--rev { grid-template-columns: minmax(0, 1fr); gap: 32px; }
  .split--rev > .split__media { order: 0; }
  .sec__head { grid-template-columns: minmax(0, 1fr); align-items: start; gap: 18px; }

  .ftr__in { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .ftr__brand { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 24px 40px; align-items: flex-start; }
  .ftr__claim { max-width: 34em; }
  .ftr__qr { margin-top: 0; }
  .ftr__map { grid-column: 1 / -1; grid-template-columns: repeat(4, minmax(0, 1fr)); }

  .brandlane { grid-template-columns: minmax(0, 1fr); }
  .brandlane__div { display: none; }
  .brandlane__cell + .brandlane__cell { border-top: 1px solid var(--line-ink); }

  .news-item { grid-template-columns: 112px minmax(0, 1fr); }
  .news-item__more { grid-column: 2; justify-self: start; }
}

@media (max-width: 860px) {
  .wrap { padding: 0 20px; }
  .sec { padding: clamp(56px, 8vw, 88px) 0; }

  .h1 { font-size: clamp(34px, 6vw, 48px); }
  .h2 { font-size: clamp(26px, 5vw, 34px); }
  .h3 { font-size: 20px; }
  .lead { font-size: 16.5px; line-height: 1.85; }

  .grid-2, .grid-3, .grid-4, .grid-auto { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .grid-6 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .grid--lg { gap: 20px; }

  .hero { min-height: 72vh; min-height: 72svh; padding-top: calc(var(--hdr-h) + 28px); }
  .hero__media img,
  .hero__bg img { object-position: center 55%; }
  .hero__top { flex-direction: column; align-items: flex-start; gap: 6px; margin-bottom: 26px; font-size: 10px; letter-spacing: .14em; }
  .hero__side { display: none; }
  .hero__title { font-size: clamp(28px, 7.2vw, 40px); line-height: 1.24; }
  .hero__title small { font-size: 10.5px; letter-spacing: .18em; }
  .hero__desc { font-size: 15px; line-height: 1.9; margin-top: 20px; }
  .hero__actions { margin-top: 28px; }
  .hero__actions .btn,
  .hero__cta .btn { min-width: 0; flex: 1 1 auto; }
  .hero__stats { grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 34px; }
  .hero__stats > * { padding: 18px 16px 16px; }
  .hero__stats .stat { padding: 18px 16px 16px; }
  .hero--dark .hero__title { font-size: clamp(38px, 10vw, 64px); }
  .hero--page { padding-top: calc(var(--hdr-h) + 60px); padding-bottom: 46px; }
  .hero--page .hero__title { font-size: clamp(30px, 6.6vw, 40px); }

  .card { padding: 22px; }
  .card--pad-lg { padding: 24px; }
  .card--row { flex-direction: column; align-items: flex-start; }
  .stat { padding: 20px; }

  .timeline { padding-left: 26px; }
  .timeline__item::before { left: -26px; }
  .timeline--2col { columns: 1; }

  .cta { padding: 26px; gap: 20px; }
  .cta__actions { width: 100%; }
  .cta__actions .btn { flex: 1 1 auto; }

  .ftr__map { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ftr { padding-top: 48px; }

  .form__grid { grid-template-columns: minmax(0, 1fr); }
  .form__actions .btn { width: 100%; }
  .form__actions { gap: 12px; }

  .news-item { grid-template-columns: minmax(0, 1fr); gap: 10px; padding: 24px 0; }
  .news-item__more { grid-column: 1; }
  .contact-list__row,
  .contact-list > li,
  .contact-list > div { grid-template-columns: minmax(0, 1fr); gap: 4px; padding: 14px 0; }

  .tabs__bar { margin-bottom: 24px; }
  .tabs--page { margin-bottom: 28px; }
  .tabs--page button { height: 46px; padding: 0 14px; font-size: 14px; }

  .table { font-size: 13px; }
  .table th, .table td { padding: 11px 12px; }
  .table tbody th { width: 40%; }

  .brandwall { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .brandwall > * { min-height: 68px; font-size: 12px; }
  .honor { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .download { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 640px) {
  :root { --gap: 16px; }
  body { font-size: 15.5px; line-height: 1.8; }

  .wrap { padding: 0 18px; }
  .sec { padding: 52px 0; }

  .h1 { font-size: 30px; }
  .h2 { font-size: 24px; line-height: 1.3; }
  .h3 { font-size: 18px; }
  .h4 { font-size: 16px; }
  .lead { font-size: 15.5px; }
  .eyebrow { font-size: 10px; letter-spacing: .16em; }
  .eyebrow::before { width: 14px; }

  .grid-2, .grid-3, .grid-4, .grid-6, .grid-auto { grid-template-columns: minmax(0, 1fr); }

  .sec__head { padding-bottom: 18px; margin-bottom: 26px; }
  .sec__head .sec__desc { font-size: 14.5px; }

  .hdr__logo img { height: 28px; }
  .hdr__in { gap: 12px; }

  .hero { min-height: 0; padding: calc(var(--hdr-h) + 26px) 0 0; }
  .hero__inner { padding-top: 3vh; padding-bottom: 34px; }
  .hero__title { font-size: 27px; line-height: 1.3; }
  .hero__title small { font-size: 9.5px; letter-spacing: .14em; }
  .hero__kicker { font-size: 10.5px; letter-spacing: .14em; }
  .hero__actions { flex-direction: column; align-items: stretch; }
  .hero__actions .btn { width: 100%; }
  .hero__stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hero__stats .stat__num,
  .hero__stats .stat__v { font-size: 24px; }
  .hero__stats .stat__label { font-size: 12px; margin-top: 10px; }
  .hero--page { padding-bottom: 34px; }
  .hero--page .hero__title { font-size: 26px; }
  .hero--dark .hero__title { font-size: 34px; letter-spacing: .1em; }

  .btn { --btn-h: 46px; font-size: 14px; padding: 0 18px; }
  .btn--lg { --btn-h: 50px; font-size: 15px; }

  .card { padding: 18px; }
  .card__title { font-size: 17px; }
  .machine__body { padding: 16px 16px 18px; }
  .stat__num, .stat__v { font-size: 30px; }

  .kpi-bar + .kpi-bar { margin-top: 16px; }
  .kpi-bar__name { font-size: 14px; }

  .feature { gap: 12px; }
  .feature__num { width: 26px; }

  .ftr__in { grid-template-columns: minmax(0, 1fr); gap: 30px; }
  .ftr__map { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 16px; }
  .ftr__bar { flex-direction: column; align-items: flex-start; gap: 8px; font-size: 11.5px; }
  .ftr__qr img { width: 72px; height: 72px; }

  .brandwall { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .honor { grid-template-columns: minmax(0, 1fr); }
  .tabs { gap: 6px; }
  .tabs__btn, .tabs button, .tabs--filter button { height: 36px; padding: 0 12px; font-size: 13px; }
  .tabs--page { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; }
  .tabs--page::-webkit-scrollbar { display: none; }
  .tabs--page button { flex: none; }
  .cta { padding: 20px; }
  .cta__tel { font-size: 17px; }
  .quote { padding: 22px; }
  .quote__text { font-size: 17px; }
  .table-wrap { margin: 0 -18px; padding: 0 18px; }
}

@media (max-width: 400px) {
  .hero__title { font-size: 25px; }
  .hero__stats .stat__num { font-size: 22px; }
  .hero__top { font-size: 9.5px; }
  .h2 { font-size: 22px; }
}

/* ============================ 13 打印 / 降级 ============================ */
@media print {
  html { scroll-behavior: auto; }
  body { background: #FFFFFF; color: #000000; font-size: 11pt; }
  .hdr, .drawer, .burger, .hero__side, .hero__actions, .hero__stats,
  .hero__grid, .ftr::before, .kpi-bar__fill, .btn, .link-arrow, .arrow-link,
  .nav__cta, .tabs, .tabs--page, .tabs__bar { display: none !important; }
  .hero { min-height: 0; padding: 0 0 18pt; background: none !important; color: #000000; }
  .hero::before { display: none; }
  .hero__title, .hero__desc, .hero__kicker, .hero__eyebrow { color: #000000 !important; }
  .hero__media, .hero__bg { display: none; }
  .sec, .sec--ink, .sec--alt, .ftr { background: #FFFFFF !important; color: #000000 !important; padding: 16pt 0; }
  .sec--ink .h2, .sec--ink h2, .sec--ink h3, .sec--ink p, .sec--ink .lead { color: #000000 !important; }
  .reveal { opacity: 1 !important; transform: none !important; transition: none !important; }
  .card, .machine, .stat, .quote, .news-card { box-shadow: none !important; break-inside: avoid; }
  .grid-2, .grid-3, .grid-4 { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  .split { grid-template-columns: minmax(0, 1fr) !important; }
  .ftr__in { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  .ftr__bar { border-top-color: #CCC; }
  a { color: #000000; text-decoration: underline; }
  img { max-width: 100% !important; page-break-inside: avoid; }
}

/* prefers-reduced-motion：全部关闭 */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 2s !important;
    transition-duration: .001ms !important;
    scroll-behavior: auto !important;
  }
  .reveal { opacity: 1 !important; transform: none !important; }
  .kpi-bar__fill { transition: none !important; }
  .wave-path { stroke-dashoffset: 0 !important; }
  .page-fade { animation: none !important; }
  .card:hover, .machine:hover, .news-card:hover { transform: none !important; }
}

/* 无 JS：所有 reveal 直接可见（离线双击也不会出现空白） */
html:not(.js) .reveal { opacity: 1; transform: none; }
html:not(.js) .kpi-bar__fill { width: var(--w, 0%); }

/* Windows 高对比模式 */
@media (forced-colors: active) {
  .btn, .card, .machine, .stat, .input, .textarea, .select, .tag { border: 1px solid ButtonText; }
  .kpi-bar__fill { background: Highlight; }
}
/* ============================ 14 hero 背景图兼容层（Lead 2026-11-10 追加） ==========
   背景图始终用正 z-index；遮罩改用显式 .hero__veil 层，或在页面无 veil 元素时由
   .hero > .wrap 的同级伪层承担。这样在任何浏览器（含无头 Edge 截图）都能正确合成。 */
.hero > .hero__bg,
.hero > .hero__media { z-index: 0; }
.hero > .hero__veil { z-index: 1; }
.hero > .wrap,
.hero > .hero__inner { position: relative; z-index: 2; }
.hero::before{content:none;background:none} /* 禁用负 z-index 遮罩 */
.hero::before { content: none !important; background: none !important; }
/* 若页面没有 .hero__veil：由 .hero__bg::after 提供同样的深色渐变 */
.hero__bg::after { content: none; }
.hero__bg::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(10,12,14,.72), rgba(10,12,14,.45) 45%, rgba(10,12,14,.86));
}
.hero__bg:has(+ .hero__veil)::after { content: none; }
/* 页面头（内页 hero）：背景图 + veil 层的深色遮罩（与首页同款遮罩的不同强度） */
.hero--page > .hero__veil,
.hero--page > .hero__bg::after {
  background: linear-gradient(180deg, rgba(10,12,14,.78), rgba(10,12,14,.58) 55%, rgba(10,12,14,.86));
}
/* ---------- Lead 修正：内页页头（.hero--page）内容位置 + 首页 hero 数据条对比度 ---------- */
.hero--page > .wrap { margin-top: auto; }
.hero--page { display: flex; flex-direction: column; justify-content: flex-end; }
/* 首页 hero 图底部压暗更多，保证白字与数据条可读 */
.hero--home > .hero__veil,
.hero > .hero__veil {
  background:
    linear-gradient(180deg, rgba(10,12,14,.86) 0%, rgba(10,12,14,.62) 22%, rgba(10,12,14,.52) 46%, rgba(10,12,14,.90) 100%);
}
.hero--home > .hero__veil {
  background:
    radial-gradient(120% 80% at 15% 78%, rgba(10,12,14,.92) 0%, rgba(10,12,14,.55) 55%, rgba(10,12,14,.25) 100%),
    linear-gradient(180deg, rgba(10,12,14,.86) 0%, rgba(10,12,14,.55) 30%, rgba(10,12,14,.88) 100%);
}
.hero--home img { object-position: center 42%; }
.hero--page img { object-position: center 45%; }
.hero--page > .hero__veil { background: linear-gradient(180deg, rgba(10,12,14,.72) 0%, rgba(10,12,14,.86) 62%, rgba(10,12,14,.94) 100%); }

/* ============================ 15 Lead 统一修正（2026-11-10） ============================ */
/* Lead: reveal 可见性兜底 —— 任何情况下内容都必须可读；hidden-until-observed 只在 html.js-reveal 下启用 */
.reveal { opacity: 1; transform: none; }
html.js-reveal .reveal { opacity: 0; transform: translateY(10px); transition: opacity .7s var(--ease), transform .7s var(--ease); }
html.js-reveal .reveal.is-in { opacity: 1; transform: none; }
html.js-reveal .reveal[data-delay="1"] { transition-delay: .06s; }
html.js-reveal .reveal[data-delay="2"] { transition-delay: .12s; }
html.js-reveal .reveal[data-delay="3"] { transition-delay: .18s; }
html.js-reveal .reveal[data-delay="4"] { transition-delay: .24s; }
html.js-reveal .reveal[data-delay="5"] { transition-delay: .30s; }
html.js-reveal .reveal[data-delay="6"] { transition-delay: .36s; }

/* 机型卡图片：统一白底、contain、固定比例，任何图片（含白底营销图）都不裁切机器 */
.machine__img { background: #fff; overflow: hidden; }
.machine__img img { width: 100%; height: 100%; object-fit: contain; background: #fff; }

/* hero 首屏整体高度：首页 88vh，其余页头按内容撑开 */
.hero { display: flex; flex-direction: column; }
.hero > .wrap { margin-top: auto; }

/* ============================ 16 Lead hero 合成最终方案（2026-11-10） ============================ */
/* 结构：<div class="hero__media"><img><span class="hero__shade"></span></div>
   —— 背景图与遮罩同一层叠上下文内，遮罩用元素（不用伪元素），任何渲染引擎都不会漏掉。 */
.hero > .hero__media,
.hero > .hero__bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
  pointer-events: none;
  background: var(--ink);
  display: flex;
  align-items: center;
  justify-content: center;
}
.hero > .hero__media img,
.hero > .hero__bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 55%;
  display: block;
}
.hero__shade,
.hero__media .hero__shade {
  position: absolute;
  inset: 0;
  display: block;
  z-index: 2;
  pointer-events: none;
  background:
    linear-gradient(180deg, rgba(9,11,13,.90) 0%, rgba(9,11,13,.62) 26%, rgba(9,11,13,.52) 52%, rgba(9,11,13,.92) 100%),
    linear-gradient(90deg, rgba(9,11,13,.55) 0%, rgba(9,11,13,.08) 46%, rgba(9,11,13,0) 100%);
}
.hero > .hero__veil { z-index: 1; }
.hero > .wrap,
.hero > .hero__inner { position: relative; z-index: 3; }

/* MOSS 电影感深色首屏：更重的遮罩 */
.hero--dark .hero__shade {
  background:
    radial-gradient(120% 90% at 50% 30%, rgba(6,8,10,.72) 0%, rgba(6,8,10,.92) 70%, rgba(6,8,10,.98) 100%);
}
.hero--dark > .hero__media img { filter: brightness(.5) contrast(1.1) saturate(.7); }

/* 内页页头：中等强度 */
.hero--page .hero__shade {
  background: linear-gradient(180deg, rgba(9,11,13,.86) 0%, rgba(9,11,13,.72) 45%, rgba(9,11,13,.94) 100%);
}

/* ============================ 17 Lead 数字滚动最终方案 ============================ */
/* 原因：JS 在每个 [data-count] 元素内部制造 opacity/transform 动画会把祖先 .hero__media 推到独立合成层，
   导致浅色遮罩被重复叠加（画面发白）。改为：不操作元素自身，直接在计数器元素上写值，
   动画只在元素进入视口时用 requestAnimationFrame 改 textContent（无 opacity/transform）。 */


/* ============================ 18 Lead 背景图合成最终修复 ============================ */
/* 现象：在部分 GPU 光栅路径下，绝对定位的 <img> 作为首层会被提升为独立纹理，遮罩层无法覆盖它。
   修复：整条链路都用「绝对定位 + 明确层序」，img 置于自己的 .hero__imgwrap 内，遮罩作为兄弟层后绘制。
   并把遮罩改为单条线性渐变（双层渐变叠加在长尺寸元素上也会触发同类问题）。 */
.hero > .hero__media,
.hero > .hero__bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  display: block;
  overflow: hidden;
  pointer-events: none;
  background: var(--ink);
  transform: translateZ(0); /* 固定合成层，保证遮罩层与其同层叠加 */
}
.hero > .hero__media > .hero__imgwrap,
.hero > .hero__bg > .hero__imgwrap {
  position: absolute;
  inset: 0;
  display: block;
  overflow: hidden;
}
.hero > .hero__media > .hero__imgwrap > img,
.hero > .hero__bg > .hero__imgwrap > img,
.hero > .hero__media > img,
.hero > .hero__bg > img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 55%;
  display: block;
}
.hero__shade {
  position: absolute;
  inset: 0;
  z-index: 3;
  display: block;
  pointer-events: none;
  background: linear-gradient(180deg, rgba(9,11,13,.92) 0%, rgba(9,11,13,.70) 34%, rgba(9,11,13,.62) 58%, rgba(9,11,13,.94) 100%);
}
.hero--dark .hero__shade {
  background: linear-gradient(180deg, rgba(6,8,10,.94) 0%, rgba(6,8,10,.84) 40%, rgba(6,8,10,.96) 100%);
}
.hero--page .hero__shade {
  /* 内页页头：左侧文字区更暗（办公玻璃贴实拍左侧有红底标语牌，容易压住标题） */
  background:
    linear-gradient(90deg, rgba(9,11,13,.94) 0%, rgba(9,11,13,.80) 38%, rgba(9,11,13,.72) 62%, rgba(9,11,13,.92) 100%),
    linear-gradient(180deg, rgba(9,11,13,.55) 0%, rgba(9,11,13,.35) 50%, rgba(9,11,13,.75) 100%);
}

/* ============================ 19 Lead 内页页头遮罩（最终覆盖） ============================ */
/* 办公玻璃贴实拍左侧有红底标语牌，内页标题正好压在其上；用「左深右浅」的横向渐变把文字区压暗。 */
.hero--page > .hero__media > .hero__shade,
.hero--page > .hero__bg > .hero__shade,
.hero--page .hero__shade {
  background:
    linear-gradient(90deg, rgba(9,11,13,.95) 0%, rgba(9,11,13,.88) 34%, rgba(9,11,13,.66) 68%, rgba(9,11,13,.86) 100%),
    linear-gradient(180deg, rgba(9,11,13,.55) 0%, rgba(9,11,13,.40) 55%, rgba(9,11,13,.86) 100%);
}
/* 页头文字区再垫一层柔光，保证白字在任意照片上都够清楚 */
.hero--page .hero__inner { text-shadow: 0 1px 18px rgba(0,0,0,.55); }


/* ============================ 20 Lead 遮罩分级（最终） ============================ */
/* 默认（首页 / 普通内页）：中偏重，保证白字可读 */
.hero > .hero__media > .hero__shade,
.hero > .hero__bg > .hero__shade {
  background: linear-gradient(180deg, rgba(9,11,13,.90) 0%, rgba(9,11,13,.68) 34%, rgba(9,11,13,.60) 58%, rgba(9,11,13,.92) 100%);
}
/* MOSS 深色首屏：保留展厅 LED 墙的层次，只压到可读 */
.hero--dark > .hero__media > .hero__shade,
.hero--dark .hero__shade {
  background: linear-gradient(180deg, rgba(6,8,10,.78) 0%, rgba(6,8,10,.50) 42%, rgba(6,8,10,.86) 100%);
}
.hero--dark > .hero__media img { filter: brightness(.68) contrast(1.06) saturate(.86); }
/* 内页页头：左深右浅（标题在左，办公玻璃贴实拍左侧常有红底标语牌） */
.hero--page > .hero__media > .hero__shade,
.hero--page .hero__shade {
  background:
    linear-gradient(90deg, rgba(9,11,13,.94) 0%, rgba(9,11,13,.86) 36%, rgba(9,11,13,.66) 70%, rgba(9,11,13,.88) 100%),
    linear-gradient(180deg, rgba(9,11,13,.50) 0%, rgba(9,11,13,.34) 52%, rgba(9,11,13,.82) 100%);
}


/* ============================ 21 Lead hero 底图替换（2026-11-10） ============================ */
/* 底图不再使用「刚装修完的办公室」，改为工艺特写 / 机头微距 / 产线现场三类真实生产素材。 */
.hero > .hero__media > .hero__imgwrap > img { object-position: center 52%; }
/* 产品、新闻这类「机构特写」底图偏亮，遮罩再加一档 */
.hero--page > .hero__media > .hero__shade {
  background:
    linear-gradient(90deg, rgba(9,11,13,.95) 0%, rgba(9,11,13,.88) 34%, rgba(9,11,13,.70) 70%, rgba(9,11,13,.90) 100%),
    linear-gradient(180deg, rgba(9,11,13,.55) 0%, rgba(9,11,13,.40) 52%, rgba(9,11,13,.86) 100%);
}


/* ============================ 22 Lead 内页遮罩降档（微距底图专用） ============================ */
.hero--page > .hero__media > .hero__shade,
.hero--page .hero__shade {
  background:
    linear-gradient(90deg, rgba(9,11,13,.88) 0%, rgba(9,11,13,.80) 34%, rgba(9,11,13,.62) 72%, rgba(9,11,13,.86) 100%),
    linear-gradient(180deg, rgba(9,11,13,.42) 0%, rgba(9,11,13,.28) 52%, rgba(9,11,13,.80) 100%);
}


/* ============================ 23 Lead 首页首屏提亮（齿轮特写底图） ============================ */
/* 诉求：整体太暗。改为「左深右浅」——左侧压住字，右侧齿轮保持明亮有金属质感。 */
.hero:not(.hero--page):not(.hero--dark) > .hero__media > .hero__shade {
  background:
    linear-gradient(90deg,
      rgba(9, 11, 13, .82) 0%,
      rgba(9, 11, 13, .66) 22%,
      rgba(9, 11, 13, .40) 52%,
      rgba(9, 11, 13, .14) 78%,
      rgba(9, 11, 13, .10) 100%),
    linear-gradient(180deg,
      rgba(9, 11, 13, .50) 0%,
      rgba(9, 11, 13, .08) 26%,
      rgba(9, 11, 13, .12) 60%,
      rgba(9, 11, 13, .68) 100%);
}
/* 顶部导航在亮图上也要看得清 */
.hero:not(.hero--page):not(.hero--dark) .hdr:not(.is-solid) { color: #FFF; }


/* ============================ 24 Lead 首屏文字投影（亮底图上保字） ============================ */
.hero:not(.hero--page):not(.hero--dark) .hero__inner,
.hero:not(.hero--page):not(.hero--dark) .hero__side,
.hero:not(.hero--page):not(.hero--dark) .hero__top {
  text-shadow: 0 1px 16px rgba(0, 0, 0, .60), 0 0 2px rgba(0, 0, 0, .40);
}


/* ============================ 25 Lead 内页页头整体提亮 ============================ */
/* 反馈「整体太暗」：内页页头原来左 .94 的横向遮罩过重，压掉了机头/机构细节。
   现降到 .82，同时保留左侧文字区足够暗度。 */
.hero--page .hero__shade,
.hero--page > .hero__media > .hero__shade {
  background:
    linear-gradient(90deg, rgba(9,11,13,.84) 0%, rgba(9,11,13,.68) 34%, rgba(9,11,13,.50) 66%, rgba(9,11,13,.78) 100%),
    linear-gradient(180deg, rgba(9,11,13,.42) 0%, rgba(9,11,13,.20) 48%, rgba(9,11,13,.66) 100%);
}


/* ============================ 26 Lead 首页首屏移动端遮罩 ============================ */
/* 手机端横向渐变失效（图被裁成竖条），文字会压在亮齿轮上，改为整体加档。 */
@media (max-width: 760px) {
  .hero:not(.hero--page):not(.hero--dark) > .hero__media > .hero__shade {
    background:
      linear-gradient(180deg,
        rgba(9, 11, 13, .86) 0%,
        rgba(9, 11, 13, .74) 26%,
        rgba(9, 11, 13, .72) 58%,
        rgba(9, 11, 13, .92) 100%);
  }
  /* 手机端把亮齿轮挪到右侧，文字区留在左侧暗部 */
  .hero:not(.hero--page):not(.hero--dark) .hero__imgwrap img {
    object-position: 76% 50% !important;
  }
}


/* ============================ 27 Lead 地址不拆词 ============================ */
/* 「黄金小镇」是园区名，不能跨行拆开。 */
.nobr { white-space: nowrap; }


/* ============================ 28 Lead 导航下拉悬停断档修复 ============================ */
/* 原因：.nav__sub 用了 top: calc(100% + 10px)，触发词与面板之间有 10px 死区，
   鼠标下移穿过死区时 .nav__drop 的 :hover 立刻失效，面板被隐藏。
   修复：给面板加一个覆盖死区的透明「桥」，指针始终落在面板内，:hover 不断。 */
.nav__sub::before {
  content: "";
  position: absolute;
  left: -10px;
  right: -10px;
  top: -16px;
  height: 18px;
  /* 透明但可命中 */
  background: transparent;
}
/* 面板打开时略微上提，减少触发词到底边距离（视觉上也更贴近） */
.nav__drop:hover > .nav__sub,
.nav__drop:focus-within > .nav__sub,
.nav__drop.is-open > .nav__sub {
  transform: translate(-50%, 0);
}


/* ============================ 29 Lead 四窗口两列布局 ============================ */
/* 对接窗口从 5 张减到 4 张后，3 列会剩一张孤卡；桌面端改为 2×2。 */
@media (min-width: 900px) {
  .grid-3--pair { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}


/* ============================ 30 Lead 分支机构标签墙 ============================ */
/* 分支暂不填充联系人后，两列「名称 + 联系方式」会空掉右半边；改为标签墙，信息密度更自然。 */
.branch-cloud { display: flex; flex-wrap: wrap; gap: 10px; }
.branch-cloud .branch {
  display: inline-flex;
  align-items: center;
  height: 42px;
  padding: 0 18px;
  border: 1px solid var(--line);
  border-radius: var(--r);
  background: var(--bg);
  font-size: 14.5px;
  color: var(--text);
  letter-spacing: .01em;
  transition: border-color .2s var(--ease), color .2s var(--ease);
}
.branch-cloud .branch:hover { border-color: var(--red); color: var(--red); }
.branch-cloud .branch--hk,
.branch-cloud .branch--stack {
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  height: auto;
  padding: 12px 18px;
  gap: 3px;
}
.branch-cloud .branch--hk b,
.branch-cloud .branch--stack b { font-weight: 500; }
.branch-cloud .branch--hk small,
.branch-cloud .branch--stack small { color: var(--text-2); font-size: 12.5px; line-height: 1.5; }


/* ============================ 31 Lead 双品牌铭牌（不裁切） ============================ */
/* 原 office-d 拼图右侧两块铭牌被 object-fit 裁掉；改为独立图片、按比例完整显示。 */
.brand-duo {
  display: grid;
  gap: 18px;
  align-content: center;
  min-width: 0;
}
.brand-duo__item {
  margin: 0;
  border: 1px solid var(--line);
  border-radius: var(--r);
  overflow: hidden;
  background: #FFFFFF;
  box-shadow: 0 18px 40px -30px rgba(17, 20, 23, .35);
}
.brand-duo__item img {
  display: block;
  width: 100%;
  height: auto;
}
@media (max-width: 860px) {
  .brand-duo { gap: 14px; }
}


/* ============================ 32 Lead 产品五大系列（总览卡 + 5 列矩阵） ============================ */
.series-cards {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 16px;
  margin: 4px 0 34px;
}
.series-card {
  display: flex;
  flex-direction: column;
  border: 1px solid var(--line);
  border-radius: var(--r);
  background: var(--bg);
  overflow: hidden;
  transition: border-color .22s var(--ease), box-shadow .28s var(--ease), transform .28s var(--ease);
}
.series-card:hover {
  border-color: var(--red);
  transform: translateY(-2px);
  box-shadow: 0 24px 44px -32px rgba(17, 20, 23, .45);
}
.series-card__img {
  background: var(--bg-2);
  aspect-ratio: 4 / 3;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 10px;
}
.series-card__img img {
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
  object-fit: contain;
}
.series-card__body { padding: 14px 14px 16px; }
.series-card__idx {
  display: block;
  font-size: 11px;
  letter-spacing: .14em;
  color: var(--text-3);
  margin-bottom: 6px;
}
.series-card__t { margin: 0 0 6px; font-size: 15.5px; font-weight: 500; line-height: 1.4; }
.series-card__d { margin: 0 0 10px; font-size: 12.5px; line-height: 1.7; color: var(--text-2); }
.series-card__c { font-size: 12px; color: var(--red); font-family: var(--mono); letter-spacing: .06em; }

@media (max-width: 1180px) {
  .series-cards { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  .series-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .series-card__d { display: none; }
}
@media (max-width: 460px) {
  .series-cards { grid-template-columns: 1fr; }
  .series-card__d { display: block; }
}

/* 首页产品矩阵：5 卡 */
@media (min-width: 1100px) {
  .grid-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
}
@media (max-width: 1099px) {
  .grid-5 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}


/* 33 Lead 系列卡细节修正（等高、图片统一框内完整显示） */
.series-card__img { aspect-ratio: 3 / 2; padding: 12px; }
.series-card__img img { width: 100%; height: 100%; object-fit: contain; }
.series-card__body { display: flex; flex-direction: column; flex: 1; }
.series-card__d { flex: 1; }
.series-card__c { margin-top: 10px; }


/* 34 Lead 首页产品矩阵等高 */
.mx-card { display: flex; flex-direction: column; }
.mx-card .h3 { font-size: 17px; line-height: 1.45; min-height: 2.9em; }
.mx-card .card__text { flex: 1; }
.mx-card .link-arrow { margin-top: 10px; }
.mx-card .machine__img { aspect-ratio: 4 / 3; display: flex; align-items: center; justify-content: center; }
.mx-card .machine__img img { width: 100%; height: 100%; object-fit: contain; }
