/* ==========================================================================
   沐程重工 — 「热锻 · 精密」 v309
   一、钢黑 / 米纸 / 热橙 三段式色板（去掉原棕黑与锈橙的土味）
   二、字体四角分工：中文宋体做体量 · 拉丁窄体做铭牌 · 等宽体做数据
   三、材质：机加工倒角 + 工程图纸细线 + 熔融渐变分割线
   骨架几何、类名、媒体查询架构与 v308 完全一致，本版只换表层视觉语言。
   ========================================================================== */

:root {
  /* ---------- 底：钢黑（中性偏冷，不再是棕黑） ---------- */
  --bg:            #111010;   /* 主背景 */
  --bg-2:          #181716;   /* 抬升面 / 卡片 */
  --bg-3:          #222120;   /* hover / 表头 */
  --bg-4:          #2B2A28;   /* 高亮面 */
  --bg-deep:       #0C0B0B;   /* 深压区 */
  --steel:         #3A3835;   /* 钢板边框 */

  /* ---------- 纸：米纸（浅色板块） ---------- */
  --paper:         #EFEAE1;
  --paper-2:       #E7E1D7;
  --paper-3:       #DAD3C7;
  --ink-paper:     #191613;                     /* 米纸上的墨 */
  --ink-paper-mid: rgba(25, 22, 19, .70);
  --ink-paper-soft:rgba(25, 22, 19, .48);
  --line-paper:    rgba(25, 22, 19, .12);
  --line-paper-soft:rgba(25, 22, 19, .07);

  /* ---------- 字色（深底） ---------- */
  --cream:         #F4F0E8;
  --ink:           #F4F0E8;
  --ink-soft:      rgba(244, 240, 232, .62);
  --ink-faint:     rgba(244, 240, 232, .36);
  --line:          rgba(244, 240, 232, .13);
  --line-soft:     rgba(244, 240, 232, .07);

  /* ---------- 品牌：热橙（唯一的彩色，只做信号不做装饰） ---------- */
  --accent:        #FF6A1A;   /* 高温橙 — 深底上的主信号 */
  --accent-bright: var(--accent);   /* v323：原 #FF8A3D 偏黄亮橙 → 用户要求「和『全场景精密锻造』同色的全部改常规橙」。
                                       该变量全站被 39 处引用（含荣誉引号、参数表首列、各类悬停/focus 环），
                                       统一指回 #FF6A1A 后全站橙色只剩一个值。原色保留在 --accent-hot #FF9A5C 与
                                       --heat/--heat-bg 渐变里（渐变是用户明确喜欢保留的）。 */
  --accent-hot:    #FF9A5C;   /* 峰值高光 */
  --accent-deep:   var(--accent);   /* v321：原 #B23E12 深锻橙 → 用户要求全站统一为常规橙 #FF6A1A */
  --accent-mid:    #D9541A;
  --accent-dim:    rgba(255, 106, 26, .14);
  --accent-glow:   rgba(255, 106, 26, .34);

  /* 熔融渐变（横向 / 纵向）—— 分割线、读条、进度、条带 */
  --heat:   linear-gradient(90deg, #8E2F0C 0%, #D9541A 38%, #FF6A1A 74%, #FF9A4D 100%);
  --heat-r: linear-gradient(270deg, #FF9A4D 0%, #FF6A1A 26%, #B23E12 62%, #8E2F0C 100%);
  --heat-bg:linear-gradient(135deg, #FF6A1A 0%, #FF8A3D 100%);  /* v311：撤掉深色端 #B23E12，橙色更明亮统一 */

  /* ---------- 字体：四角分工 ---------- */
  /* 中文大标题 —— 宋体的"刻度感"就是精密的视觉来源（本地思源优先，网络回退 Noto Serif SC） */
  --font-serif:   'Source Han Serif SC', 'Source Han Serif CN', 'Noto Serif SC', 'Songti SC', 'STZhongsong', serif;
  /* 拉丁标题 / 导航 / 大数字 / 英文小标 —— 窄体工业铭牌感（含西里尔，俄文版不掉字） */
  --font-display: 'Oswald', 'Noto Sans SC', 'PingFang SC', 'Microsoft YaHei', 'Arial Narrow', sans-serif;
  /* 正文 —— 技术感人文等宽同源 */
  --font-sans:    'IBM Plex Sans', 'Noto Sans SC', 'PingFang SC', 'Microsoft YaHei', sans-serif;
  /* 技术标签 / 参数 / 编号 */
  --font-mono:    'JetBrains Mono', 'SFMono-Regular', 'Consolas', monospace;
  /* v318：hero 文字组合（用户排版稿指定）——英文副标题 / 公司名 / 宣言段用阿里巴巴普惠体。
     普惠体可商用；本机已装 Regular(Light/Medium/...)，未装时回退系统无衬线（PingFang / 雅黑）。 */
  --font-puhui:   'Alibaba PuHuiTi', 'Alibaba PuHuiTi 3.0', 'Alibaba PuHuiTi 2.0', 'PingFang SC', 'Microsoft YaHei', sans-serif;

  /* ---------- 材质与形状 ---------- */
  --r-0:  0px;        /* 全站直角 —— 只留胶囊按钮的 999px */
  --r-pill: 999px;
  --hair:        1px solid var(--line);
  --hair-paper:  1px solid var(--line-paper);
  /* 机加工倒角：顶部高光 + 底部暗线，替代通用投影 */
  --bevel:        inset 0 1px 0 rgba(255, 255, 255, .07), inset 0 -1px 0 rgba(0, 0, 0, .45);
  --bevel-paper:  inset 0 1px 0 rgba(255, 255, 255, .85), inset 0 -1px 0 rgba(25, 22, 19, .07);
  /* 钢板：极淡的斜向钢纹 + 抬升底 */
  --plate: linear-gradient(158deg, #242322 0%, #1A1918 46%, #161515 100%);
  --plate-paper: linear-gradient(158deg, #FFFFFF 0%, #F4F0E9 52%, #EFEAE1 100%);
  --ring: 0 0 0 1px rgba(255, 255, 255, .06), 0 18px 44px -22px rgba(0, 0, 0, .85);
  --ring-paper: 0 0 0 1px rgba(25, 22, 19, .08), 0 16px 38px -24px rgba(25, 22, 19, .38);

  /* ---------- 节奏 ---------- */
  /* v50：上限 72px → 2.3cm（≈87px）。LOGO（.nav）与 hero 文字同用此变量，故二者左缘天然对齐，且 1920/2560 下距左边界 = 2.3cm */
  --pad-x: clamp(20px, 4.5vw, 2.3cm);
  /* v45：主容器宽度流体化 —— 限制在 1200~1400px，避免超大屏上行长过长导致阅读困难 */
  --max-w: clamp(1200px, 82vw, 1400px);
  /* v45：区段垂直内边距 —— 用 vh 让上下留白随屏高成比例（不再撞固定 max 上限） */
  --pad-y: clamp(88px, 9.5vh, 190px);
  --ease:         cubic-bezier(.16, 1, .3, 1);      /* expo-out */
  --spring:       cubic-bezier(.34, 1.56, .64, 1);  /* 过冲弹性（由小变大+回弹） */
  --spring-soft:  cubic-bezier(.22, 1.32, .36, 1);  /* 柔和弹性跳跃 */
}

* { margin: 0; padding: 0; box-sizing: border-box; }

/* v45：流体根字号 —— 整套排版的地基。
   以 1920px(24寸) 为基准 1rem=16px；向下 1366px(14寸) 收到 14px，向上 2560px(27寸) 放大到 19.2px。
   所有用 rem 声明的字号/间距都会自动跟着屏幕缩放，不再出现"大屏文字偏小"。 */
html {
  scroll-behavior: smooth;
  font-size: clamp(14px, 0.5vw + 6.4px, 20px);
}

body {
  background: var(--bg);
  color: var(--ink);
  font-family: var(--font-sans);
  font-size: 1rem;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
body.is-loading { overflow: hidden; }

img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
ul { list-style: none; }

.mono { font-family: var(--font-mono); }

::selection { background: var(--accent); color: var(--cream); }

/* ===================== 通用：等宽小标签 ===================== */
.mono-tag {
  display: flex; align-items: center; gap: 0.625rem;
  font-family: var(--font-mono);
  font-size: 0.6875rem; font-weight: 500;
  letter-spacing: .18em; text-transform: uppercase;
  color: var(--ink-soft);
  margin-bottom: 1.625rem;
}
.mono-tag__sq { width: 9px; height: 9px; background: var(--accent); flex: none; }
.mono-tag--accent { color: var(--accent-bright); }
.mono-tag--light  { color: rgba(255, 248, 239, .75); }
.mono-tag--light .mono-tag__sq { background: var(--accent); }

/* ===================== 通用：按钮（奶油胶囊为主行动） ===================== */
.btn {
  display: inline-flex; align-items: center; gap: 0.75rem;
  padding: 0.9375rem 1.875rem;
  border-radius: 999px;
  font-family: var(--font-sans);
  font-size: 0.875rem; font-weight: 600; letter-spacing: .02em;
  transition: transform .5s var(--spring-soft), color .35s ease;
  position: relative; overflow: hidden;
}
.btn svg { transition: transform .5s var(--ease); }
.btn:hover svg { transform: translateX(5px); }

.btn--cream { background: var(--cream); color: #111010; }
.btn--cream::before {
  content: ''; position: absolute; inset: 0;
  background: var(--accent);
  transform: translateY(-101%);
  transition: transform .55s var(--ease);
  border-radius: inherit;
}
.btn--cream:hover::before { transform: translateY(0); }
.btn--cream:hover { color: #FFF8EF; }
.btn--cream > * { position: relative; z-index: 1; }
.btn--cream:hover { transform: translateY(-3px); }

/* ===================== 通用：入场动效（弹性跳跃） ===================== */
.reveal {
  opacity: 0; transform: translateY(48px);
  transition: opacity .7s ease, transform .95s var(--spring-soft);
  transition-delay: var(--d, 0s);
}
.reveal-left {
  opacity: 0; transform: translateX(-56px) scale(.965);
  transition: opacity .7s ease, transform 1s var(--spring-soft);
  transition-delay: var(--d, 0s);
}
.reveal-right {
  opacity: 0; transform: translateX(56px) scale(.965);
  transition: opacity .7s ease, transform 1s var(--spring-soft);
  transition-delay: var(--d, 0s);
}

.zoom-in {
  opacity: 0; transform: scale(.8);
  transition: opacity .75s ease, transform 1.1s var(--spring);
  transition-delay: var(--d, 0s);
}

.is-in.reveal, .is-in.reveal-left, .is-in.reveal-right,
.is-in.zoom-in { opacity: 1; transform: none; }

/* 行级掩码（标题逐行滑入，expo-out 平滑） */
.lm { display: block; overflow: hidden; padding-bottom: .08em; margin-bottom: -.08em; }
.lm > span { display: block; transform: translateY(118%); transition: transform 1.15s var(--ease); }
.is-in .lm > span { transform: none; }
.hero__title .lm:nth-child(2) > span { transition-delay: .12s; }
.step__title .lm:nth-child(2) > span,
.interlude__title .lm:nth-child(2) > span,
.contact__title .lm:nth-child(2) > span { transition-delay: .1s; }

/* ==========================================================================
   加载动画（深色版 loader）
   ========================================================================== */
.loader {
  position: fixed; inset: 0; z-index: 999;
  background: var(--bg);
  display: flex; flex-direction: column;
  align-items: center; justify-content: center;
  transition: transform 1s var(--ease);
}
.loader.is-done {
  transform: translateY(-100%);
  pointer-events: none;
}
.loader__mark { text-align: center; margin-bottom: 2.5rem; }
/* 品牌名 + 定位语 并排 */
.loader__brand-row {
  display: flex; align-items: baseline; justify-content: center;
  gap: 1.5rem; flex-wrap: wrap;
}
.loader__brand {
  font-family: var(--font-sans);
  font-size: 1.9rem; font-weight: 700;  /* v46：缓存页文字统一放大 1.5 倍（1.2656→1.9） */
  letter-spacing: .06em;
  color: var(--ink);                     /* 白色（三语通用：沐程重工 / MuCheng / МуЧэн） */
}
.loader__sub {
  font-size: 0.84375rem; letter-spacing: .34em;  /* v46：×1.5（0.5625→0.84375） */
  color: var(--ink-faint); margin-top: 10px;
}
/* 定位语：与品牌名同步放大 1.5 倍（橙色无衬线细黑，与 Hero eyebrow 风格一致） */
.loader__tag {
  font-family: var(--font-sans);
  font-size: 1.9rem;                     /* v46：×1.5（1.2656→1.9） */
  font-weight: 300;
  line-height: 1.4;
  letter-spacing: .18em;
  color: var(--accent-bright);
}
.loader__progress {
  position: relative;
  /* 宽度 = SVG viewBox 宽度（431），保证 1 用户单位 = 1px，圆柱不会被拉伸变形 */
  width: min(431px, 60vw);
  margin-top: 2.125rem;
}
/* 读条数字：圆柱体上方右端，等宽数字避免跳动；v46：字号 ×1.5，top 同步加深避免与新字号重叠 */
.loader__pct {
  position: absolute; right: 0; top: -2.4375rem;
  font-size: 1.125rem; font-weight: 500;
  letter-spacing: .18em;
  color: var(--ink-soft);
  font-variant-numeric: tabular-nums;
  transition: opacity .18s ease;
}
/* 3D 圆柱线稿读条（SVG） */
.loader__cyl { display: block; width: 100%; height: auto; overflow: visible; }

/* ==========================================================================
   导航（深色玻璃）
   ========================================================================== */
.nav {
  position: fixed; top: 0; left: 0; right: 0; z-index: 100;
  display: flex; align-items: center; justify-content: space-between;
  padding: 22px var(--pad-x);
  background: rgba(17, 16, 16, .35);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-bottom: 0.0625rem solid transparent;
  /* v29：落下态用柔和微过冲曲线（自然落地）；收起态覆盖为慢起快收；入场延迟改由 JS 控制 */
  transition:
    background .5s ease, padding .5s ease, border-color .5s ease, backdrop-filter .5s ease,
    transform .6s cubic-bezier(.22, 1.08, .32, 1), opacity .4s ease;
  transform: translateY(-24px);
  opacity: 0;
}
/* 导航在开场球动画结束后才淡入（is-entered 由 JS 延迟 0.3s 添加，仅首次生效） */
body.is-loaded.is-entered .nav { transform: none; opacity: 1; }
/* v30：滚动过程中位移由 JS 内联驱动（即时跟随速度），无过渡；停止后移除该类交由过渡落地 */
.nav.is-scrubbing { transition: none !important; }
/* 向下滚动收起：is-hidden 态用"慢起快收"曲线，像被卷上去 */
body.is-loaded.is-entered .nav.is-hidden {
  transform: translateY(-100%); opacity: 0;
  transition:
    background .5s ease, padding .5s ease, border-color .5s ease, backdrop-filter .5s ease,
    transform .5s cubic-bezier(.5, 0, .75, .25), opacity .3s ease;
}
.nav.is-scrolled {
  background: rgba(17, 16, 16, .88);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border-bottom-color: rgba(244, 240, 232, .10);
  padding: 16px var(--pad-x);
}
/* v55：去掉图片图标 + gap，纯文字 LOGO 容器（baseline 对齐让 MUCHEN 与 沐程重工 同基线） */
.nav__logo {
  display: inline-flex;
  align-items: center;
  text-decoration: none;
  line-height: 1;
}
.nav__logo-img {
  height: clamp(34px, 2.3vw, 42px);
  width: auto;
  display: block;
  object-fit: contain;
}
.nav__logo-img--zh {
  display: block;
}
.nav__logo-img--en {
  display: none;
}
body.lang-en .nav__logo-img--zh,
body.lang-ru .nav__logo-img--zh {
  display: none;
}
body.lang-en .nav__logo-img--en,
body.lang-ru .nav__logo-img--en {
  display: block;
}
@media (max-width: 768px) {
  .nav__logo-img {
    height: 30px;
  }
}
/* v43：导航菜单 × 1.4（13→18px）；v45：px → rem */
.nav__menu {
  display: flex; gap: clamp(1.375rem, 2.4vw, 3rem);
  font-family: var(--font-sans);
  /* v89：字体细一点（500→400），默认色改纯白 */
  font-size: 1.125rem; font-weight: 400; letter-spacing: .08em;
}
.nav__menu a {
  color: #FFFFFF; padding: 0.5rem 0.1875rem;
  position: relative; transition: color .3s ease;
}
.nav__menu a::after {
  content: ''; position: absolute; left: 0; right: 100%; bottom: 0;
  height: 1px; background: var(--accent);
  transition: right .45s var(--ease);
}
/* v89：高亮态也统一纯白（当前页用橙色下划线区分），悬停同理 */
.nav__menu a:hover, .nav__menu a.is-active { color: #FFFFFF; }
.nav__menu a:hover::after, .nav__menu a.is-active::after { right: 0; }

.nav__tools { display: flex; align-items: center; gap: 1.125rem; }

.search { position: relative; display: flex; align-items: center; }
/* v43：搜索按钮 × 1.4（30→42）；v45：px → rem */
.search__btn {
  background: none; border: none; cursor: pointer; color: var(--ink-faint);
  display: flex; align-items: center; justify-content: center;
  width: 2.625rem; height: 2.625rem; border-radius: 999px;
  transition: color .3s ease, background .3s ease;
}
.search__btn:hover, .search.is-open .search__btn { color: var(--cream); background: rgba(244, 240, 232, .1); }
.search__input {
  width: 0; opacity: 0; padding: 0; margin: 0;
  border: none; outline: none; background: transparent;
  font-family: var(--font-mono); font-size: 0.9375rem; letter-spacing: .08em; color: var(--cream);
  border-bottom: 0.0625rem solid rgba(244, 240, 232, .28);
  transition: width .4s var(--ease), opacity .3s ease, padding .4s var(--ease);
}
.search.is-open .search__input { width: 12.5rem; opacity: 1; padding: 0.5rem 0.1875rem; margin-right: 0.1875rem; }
.search__input::placeholder { color: var(--ink-faint); }
.search__panel {
  position: absolute; top: calc(100% + 16px); right: 0; width: 320px; max-height: 340px;
  overflow-y: auto; background: rgba(18, 16, 13, .97);
  backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px);
  border: 1px solid rgba(244, 240, 232, .14); border-radius: 12px;
  padding: 0.5rem; display: none; z-index: 80;
}
.search.is-open .search__panel.is-visible { display: block; }
.search__item {
  display: flex; flex-direction: column; gap: 3px; width: 100%; text-align: left;
  background: none; border: none; cursor: pointer; padding: 0.625rem 0.75rem; border-radius: 8px;
  font-family: var(--font-sans); color: var(--ink-soft);
  transition: background .2s ease, color .2s ease;
}
.search__item:hover { background: rgba(244, 240, 232, .08); color: var(--cream); }
.search__item b { font-size: 0.8125rem; font-weight: 600; }
.search__item span { font-family: var(--font-mono); font-size: 0.625rem; letter-spacing: .14em; color: var(--ink-faint); text-transform: uppercase; }
.search__empty { padding: 12px; font-family: var(--font-sans); font-size: 0.75rem; color: var(--ink-faint); }
.lang { display: flex; gap: 0.1875rem; }
/* v43：语言按钮 × 1.4（10→14 / padding 6/9→8/13）；v45：px → rem */
.lang button {
  background: none; border: 1px solid transparent; cursor: pointer;
  font-family: var(--font-mono); font-size: 0.875rem; letter-spacing: .1em;
  color: var(--ink-faint); padding: 0.5rem 0.8125rem;
  border-radius: 999px;
  transition: color .3s ease, background .3s ease, border-color .3s ease, box-shadow .3s ease;
}
/* v32：选中语言强化为橙色发光阴影 + 橙色描边 */
.lang button.is-active {
  color: var(--cream);
  background: rgba(255, 106, 26, .16);
  border-color: rgba(255, 106, 26, .6);
  box-shadow: 0 0 18px rgba(255, 106, 26, .5), inset 0 0 10px rgba(255, 106, 26, .2);
}
.lang button:hover { color: var(--cream); }

/* v32：已移除 .nav__cta（导航右上角「获取锻造方案」按钮） */

/* ==========================================================================
   HERO
   ========================================================================== */
/* v45：hero 垂直定位流体化 —— 不再用固定 translateY 上移
   改为 flex-start + vh 顶内边距：内容组顶边始终落在视口固定比例处。
   v46：9vh → 15vh —— 用户反馈提得太高，下降到只保留此前提升量的 3/5（900 视口下 88→135px） */
.hero {
  position: relative;
  min-height: 100vh;
  display: flex; flex-direction: column; justify-content: flex-start;
  /* v47: 内容组整体下移 4cm；v48: 叠加 --hero-extra-drop（eyebrow→主标题中点，JS 测）
     v51: 基础上移 1cm（-37.8）——用户「再上移一厘米」 */
  padding: calc(clamp(223.2px, 15vh + 113.4px, 363.2px) + var(--hero-extra-drop, 0px)) var(--pad-x) clamp(70px, 9vh, 120px);
  overflow: hidden;
}
.hero__bg {
  position: absolute; inset: 0;
  z-index: 0;
  background-image: url('../assets/img/hero_factory_floor.png');
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
  filter: grayscale(.62) contrast(1.06) brightness(.58);
  transform: scale(1.03);
  /* v39：下 2/5（60%→100%）透明度渐变到全透，让 hero 自然融到黑色里 */
  -webkit-mask-image: linear-gradient(to bottom, #000 0%, #000 60%, transparent 100%);
  mask-image: linear-gradient(to bottom, #000 0%, #000 60%, transparent 100%);
}
/* v57：拉丝斜纹改「银灰 + 中心渐变」——135° 银灰细斜线（主丝 6px/.12 + 衬丝 13px/.05）
   mask 改放射状：中心（约 35% 高、可覆盖标题后方）最亮，向四周（含 hero 底）自然渐隐，
   像一束聚光打在拉丝金属板上；不再用 v55/v56 的线性底部 mask */
.hero__bg::before {
  content: ''; position: absolute; inset: 0;
  z-index: 1;
  background:
    repeating-linear-gradient(135deg,
      rgba(152, 172, 194, .12) 0,
      rgba(152, 172, 194, .12) 1px,
      transparent 1px,
      transparent 6px),
    repeating-linear-gradient(135deg,
      rgba(148, 166, 186, .05) 0,
      rgba(148, 166, 186, .05) 1px,
      transparent 1px,
      transparent 13px);
  pointer-events: none;
  -webkit-mask-image: radial-gradient(ellipse 110% 90% at 50% 35%,
    #000 6%, rgba(0, 0, 0, .92) 22%, rgba(0, 0, 0, .50) 45%, transparent 68%);
  mask-image: radial-gradient(ellipse 110% 90% at 50% 35%,
    #000 6%, rgba(0, 0, 0, .92) 22%, rgba(0, 0, 0, .50) 45%, transparent 68%);
}
/* v57：双侧柔橙晕保留作环境光（撤掉 v56 的 118° 反光带——新方向是银色中心渐变+入场银光） */
.hero__bg::after {
  content: ''; position: absolute; inset: 0;
  z-index: 2;
  background:
    radial-gradient(ellipse 45% 52% at 15% 28%, rgba(255, 106, 26, .22) 0%, rgba(255, 106, 26, 0) 60%),
    radial-gradient(ellipse 55% 62% at 88% 62%, rgba(255, 106, 26, .18) 0%, rgba(255, 106, 26, 0) 62%);
  mix-blend-mode: screen;
  -webkit-mask-image: linear-gradient(to bottom, #000 0%, #000 60%, transparent 100%);
  mask-image: linear-gradient(to bottom, #000 0%, #000 60%, transparent 100%);
}
.hero__canvas {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  z-index: 1;
  opacity: .55;
}
.hero__tint {
  position: absolute; inset: 0;
  z-index: 2;
  background:
    linear-gradient(180deg, rgba(17, 16, 16, .72) 0%, rgba(17, 16, 16, .18) 34%, rgba(17, 16, 16, .78) 100%),
    linear-gradient(95deg, rgba(17, 16, 16, .88) 0%, rgba(17, 16, 16, .22) 58%);
  pointer-events: none;
}
/* v57：入场「银光一闪」——圆形银色中心渐变盖在 hero 上；body.is-loaded（loader 幕布淡出的同一刻）
   触发 1s 透明渐隐，让银光退去、背景图与银灰拉丝自然显现 */
.hero__shine {
  position: absolute; inset: 0;
  z-index: 2;
  background: radial-gradient(ellipse 72% 64% at 50% 38%,
    rgba(236, 242, 249, .92) 0%,
    rgba(226, 234, 243, .52) 32%,
    rgba(212, 222, 232, .18) 54%,
    rgba(212, 222, 232, 0) 74%);
  mix-blend-mode: screen;
  opacity: 0;
  pointer-events: none;
}
body.is-loaded .hero__shine {
  animation: heroShine 1s ease-out .32s both;
}
@keyframes heroShine {
  0%   { opacity: 0; }
  8%   { opacity: .9; }
  100% { opacity: 0; }
}

/* v59：核心优势四宫格 — 图左文右 + 45° 斜向点阵底纹
   形式参考旧版：深色底 + 浅点阵（点 1.5px、间距 20px、旋转 45° 呈菱形排列） */
.advantages {
  position: relative;
  /* v110：advantages 改米色——为 products chip 提供米色↔黑色衔接处 */
  background: #EFEAE1;
  /* v73：底图高度缩减 1/2 —— 压缩上下内边距（原 clamp(64px,7vh,96px)/clamp(74px,8vh,110px)），
     文字区不变（经测算放得下，无需缩字号）
     v111：padding-top 与 padding-bottom 对称（原 clamp(14px,1.6vh,24px)）——
     三段文字上下居中均分在米色条上（实测原来列中心偏上 23px） */
  padding: clamp(60px, 6vh, 80px) var(--pad-x);
  z-index: 1;
  border-top: 1px solid rgba(25, 22, 19, .08);
  overflow: visible;             /* v110：允许 chip 跨边界溢出到此板块 */
}
.advantages::before {
  content: '';
  position: absolute;
  /* v70 问题①：画布向四周大幅扩展（负 inset）再旋转 45°——原 scale(1.4) 的细长条
     覆盖不到宽区块左右两端的中部，两侧边缘没有原点；改用大画布后全区域覆盖，
     点距/点大小不变（半径 1.1→1.4px 补偿原 scale 的放大）
     v110：米色底配深色点阵 + 降低不透明度（米色底白点会过亮） */
  inset: -500% -50%;
  background-image: radial-gradient(circle, rgba(25, 22, 19, .05) 1.2px, transparent 1.7px);
  background-size: 20px 20px;
  transform: rotate(45deg);
  transform-origin: center;
  pointer-events: none;
  z-index: 0;
}
.advantages__inner {
  position: relative;
  max-width: var(--max-w);
  margin: 0 auto;
  z-index: 1;
}
.advantages__grid {
  /* v60：固定 3 列等宽（repeat(3,1fr)），三项间距天然一致 */
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(32px, 4vw, 72px);
  align-items: start;
}
.advantage {
  display: flex;
  align-items: flex-start;
  gap: 1.1rem;
  text-align: left;
}
.advantage__icon {
  flex: none;
  color: var(--accent);        /* 裸描边：直接染色，无圆底 */
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: 2px;             /* 视觉对齐第一行 baseline */
}
.advantage__icon svg {
  display: block;
  width: 26px;
  height: 26px;
}
.advantage__text {
  display: flex;
  flex-direction: column;
  gap: .4rem;
  min-width: 0;                /* 防止 grid 列中子项溢出 */
}
.advantage__title {
  /* v74：字号缩小一点（×0.9）
     v110：米色底——文字从 cream 改为深色 */
  font-size: clamp(0.9rem, 0.95vw, 1.05rem);
  font-weight: 700;
  color: #191613;
  letter-spacing: .04em;
  line-height: 1.3;
}
.advantage__desc {
  /* v60：每项 2 句 —— 两句各占一行，三列文字行数一致
     v110：米色底——文字改深色半透明 */
  display: flex;
  flex-direction: column;
  gap: .25rem;
  /* v74：字号缩小一点 */
  font-size: 0.8125rem;
  line-height: 1.65;
  color: rgba(25, 22, 19, .72);
  letter-spacing: .02em;
}
.advantage__desc span { display: block; }
@media (max-width: 860px) {
  .advantages__grid { grid-template-columns: 1fr; gap: 32px; }
}


/* v45：不再用固定 translateY 上移（重心会随屏高漂移）。
   位置改由 .hero 的 flex-start + vh 顶内边距控制；容器宽度也随视口流体化。 */
.hero__inner {
  position: relative; z-index: 3;
  max-width: clamp(600px, 42vw, 860px);
  text-align: left;
  transform: none;
}

/* 第 1 行：玻璃胶囊 slogan —— v318：整组挪到标题组合最下方（用户排版稿顺序），
   样式 = 橙字 + 橙描边 + 22% 橙填充（用户描述的两层做法：①橙描边空填充 ②橙填充橙描边 22% 透明）。
   宽度按文字自然宽（不再拉到标题宽度），左对齐。字距 / 内边距见 v318 层。 */
.hero__eyebrow { margin: 0; }
.hero__eyebrow span {
  display: inline-block;
  font-family: var(--font-puhui);
  font-weight: 300;          /* v319：用户反馈「字形太粗」→ Regular(400) 改 Light(300) */
  line-height: 1;
  color: var(--accent);
  border: 1px solid var(--accent);
  border-radius: 999px;
  background: rgba(255, 106, 26, .22);
  white-space: nowrap;
}

/* 第 2 行：主标题 —— v45：改用 rem clamp；v49 ×1.4；v50 ×5/6；v51 ×0.8
   v55：吸收旧版标题观感（粗壮厚白字 + 字距紧），字号比旧版稍小、字距比旧版稍宽
   v318：用户排版稿 = 思源宋体 + 字距 200（0.2em），字号仍是这套流体 clamp */
.hero__title {
  font-family: var(--font-sans);
  font-weight: 800;
  font-size: clamp(3.2rem, 5.3vw, 6.3rem);
  line-height: 1.04;
  letter-spacing: 0.04em;
  color: #FFF8EF;
  margin-top: 0;
  margin-bottom: 0;
}

/* v73：主标题中文（专注精密锻造）换粗宋体（思源宋体 Bold）；v318：字距 200。
   注意 JS fitHeroTitle 会给该 span 写 inline letter-spacing（同为 0.2em），此处是脚本未跑时的兜底。 */
.hero__title > span[data-i18n]:not(.hero__title-en) { font-family: var(--font-serif); font-weight: 700; letter-spacing: .2em; }

/* 用户指示：英文和俄文大标题统一换为现代无衬线字（Sans-Serif），呈现纯正现代工业硬核力量感 */
body.lang-en .hero__title > span[data-i18n]:not(.hero__title-en),
body.lang-ru .hero__title > span[data-i18n]:not(.hero__title-en) {
  font-family: var(--font-sans);
  font-weight: 700;
  letter-spacing: 0.01em;
}

/* 英文副标题行：DEDICATED TO PRECISION RADIAL FORGING
   用户要求：字号再缩小一些，不能长出一个字母G，总长度和“专注精密锻造”视觉边缘严格左右对齐。
   静态基准：字号约 13.5px 雅致梯级，字距充分舒展，像素级严格对齐由 JS fitHeroTitleEn 驱动。 */
.hero__title .hero__title-en {
  display: block;
  font-family: var(--font-sans);
  font-weight: 500;
  font-size: clamp(11.5px, 1.0vw, 13.6px);
  line-height: 1.35;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: #FBF7F0;
  margin-top: clamp(6px, 0.8vh, 10px);
  max-width: 100%;
  white-space: nowrap;
  opacity: 0.92;
}
.hero__title .hero__title-en:empty { display: none; }

/* v318：橙块公司名（.hero__title em）整组退役 —— 公司名改为标题组合里的普通白字行（见 .hero__company）。 */

/* 第 4 行：公司名 + 宣言段 —— v318：改为文档流内的普通文字块（原先描述段 + 绝对定位橙条的结构退役）
   字号统一由 .hero__inner 上的 --hero-meta 驱动（= 用户稿的 14px @1053 画布）。 */
.hero__sub {
  position: static;
  max-width: none;
  margin: 0;
  top: auto;
}
.hero__company,
.hero__manifesto { display: block; font-family: var(--font-puhui); }
.hero__company {
  font-weight: 300;                      /* v319：用户反馈「字形太粗」→ Regular(400) 改 Light(300) */
  color: #FBF7F0;
}
.hero__manifesto {
  font-weight: 300;                      /* 用户稿：普惠体 Light 14 / 字距 60 / 行距 24（v319 字号改 12） */
  color: rgba(246, 241, 233, .82);
}

/* v318：橙色横条 —— 从「正文段内绝对定位」改为文档流元素（用户稿顺序：英文副标题之下、公司名之上），
   比例固定 80 : 8，混合模式差值（吃进背景照片的斑驳）。尺寸/间距见 v318 层。 */
.hero__bar {
  position: static; left: auto; top: auto;
  display: block;
  background: var(--accent);
  mix-blend-mode: difference;
}

/* 右下角：行动按钮 —— v46：向左（5vw→8vw）+ 向下（JS 对齐偏移 +7vh），相对单位随视口等比 */
.hero__scroll {
  position: absolute;
  /* v54：v51 的 +3cm 撤销 → 整体（含竖线）右移 3cm 回来；保留 pad-x + 8vw 流体
     v75：位置改由 JS 精确计算（竖线右侧 0.7cm），此值仅作 JS 生效前兜底 */
  right: calc(var(--pad-x) + 1.25rem + 8vw);
  bottom: auto;
  display: flex; flex-direction: column; align-items: flex-end;
  z-index: 4;
  /* v54：下滑/上滑时按钮做小弹跳（JS 切 data-bounce，CSS transition 带 overshoot 弹回） */
  transition: transform .45s cubic-bezier(.34, 1.56, .64, 1);
  will-change: transform;
}
.hero__scroll[data-bounce="down"] { transform: translate3d(0, 16px, 0); }
.hero__scroll[data-bounce="up"]   { transform: translate3d(0, -16px, 0); }
/* v74：按钮缩小一点（padding 与字号 ×0.9） */
.hero__cta { flex: none; padding: 0.75rem 1.65rem; font-size: clamp(0.855rem, 0.945vw, 1.125rem); }
.hero__cta.reveal { transform: none; }
.hero__cta:hover svg { transform: translateY(5px); }

/* v28：已移除 .hero__hint（SCROLL 文字） */

/* v39/v52：全屏 fixed 竖线；v53：宽减半 2.5px、暗灰调、取消固定对称渐变——
   改为细灰底 + 子元素 .hero__rail-band（长渐变光带，top 由 JS 随滚动移动，下滑时光带下移） */
.hero__rail {
  position: fixed;
  right: calc(var(--pad-x) + 3cm);   /* v54：v52 的 +6cm 改 +3cm → 竖线/皮球右移 3cm */
  top: 0; bottom: 0;
  width: 2.5px;
  background: linear-gradient(180deg,
    rgba(140,148,156,.05) 0%,
    rgba(140,148,156,.17) 50%,
    rgba(140,148,156,.07) 100%);
  z-index: 60;
  overflow: visible;
  pointer-events: none;
  /* v222：JS 定位稳定前隐藏（rail-ready 由 alignRailLine 在字体就绪后的首次定位时添加），
     消除刷新时竖线先出现再位移的观感——用户要求「位置锁定在位移后的位置」 */
  opacity: 0;
  transition: opacity .3s ease .1s;
}
.hero__rail.rail-ready { opacity: 1; }
/* v53：随滚动移动的长渐变光带（高度 55vh、两端长过渡；滚动到页面 0%→100% 时顶部走 0→45vh） */
.hero__rail-band {
  position: absolute;
  left: 0; right: 0;
  top: var(--rail-band-pos, 0px);
  height: 55vh;
  background: linear-gradient(180deg,
    rgba(140,148,156,0) 0%,
    rgba(140,148,156,.13) 28%,
    rgba(196,202,208,.42) 50%,
    rgba(150,158,166,.10) 78%,
    rgba(140,148,156,0) 100%);
  pointer-events: none;
}
.hero__rail-dot {
  /* v39：浮动状态 · 始终与页面中部保持水平（top:50%），滚动方向触发弹跳 */
  position: absolute;
  left: 50%;
  top: 50%;
  width: 14px;   /* v54：缩小一半（28→14px） */
  height: 14px;
  margin-left: -7px;
  margin-top: -7px;
  border-radius: 50%;
  background: var(--accent);
  box-shadow:
    0 0 10px rgba(255, 106, 26, .55),
    0 0 22px rgba(255, 106, 26, .35),
    0 0 36px rgba(255, 106, 26, .18);
  /* 弹跳用 transition；基础居中无 transform。v52：40vh 长程滑动用平滑 ease 曲线（回落动画走 WAAPI） */
  transform: translate3d(0, 0, 0);
  transition: transform .7s cubic-bezier(.5, 0, .25, 1);
  will-change: transform;
}
/* v52：方向跟随改为「长程滑动」——下滑球被拖到视口 90% 高度（50%→90% = +40vh），
   上滑到视口 10%（-40vh）；停止后的回弹（超 10% → 回 5% → 复位）由 JS WAAPI 播放 */
.hero__rail-dot[data-bounce="down"] { transform: translate3d(0, 40vh, 0); }
.hero__rail-dot[data-bounce="up"]   { transform: translate3d(0, -40vh, 0); }
/* 移除原 railDrop 动画（v39：圆球不再滑落，改为浮动+弹跳） */

/* ==========================================================================
   品牌宣言（区块已按客户要求移除，样式保留备用）
   ========================================================================== */
.statement { display: none; padding: clamp(110px, 14vh, 180px) var(--pad-x); }
.statement__inner { max-width: 980px; margin: 0 auto; }
/* WHY MUCHENG 标签：放大 5 个字号 + 居中 */
.statement .mono-tag {
  justify-content: center;
  font-size: clamp(18px, 2vw, 24px);
  font-weight: 600;
  letter-spacing: .12em;
  margin-bottom: 2.125rem;
}
.statement .mono-tag .mono-tag__sq { width: 13px; height: 13px; }
/* 宣言正文：字号缩小 1/2 + 增加字间距 */
.statement__text {
  font-family: var(--font-sans);
  font-size: clamp(11px, 1.2vw, 17px);
  font-weight: 400; line-height: 1.9;
  letter-spacing: 0.06em;
  color: var(--ink-soft);
  max-width: 720px;
}

/* ==========================================================================
   STEP 左右两栏章节
   ========================================================================== */
.step {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(56px, 7vw, 120px);
  padding: var(--pad-y) var(--pad-x);
  /* v39：去掉与 hero 之间的 border-top，让首页→产品体系无缝衔接 */
  border-top: 0.0625rem solid transparent;
  max-width: var(--max-w);
  margin: 0 auto;
  align-items: start;
}
.step--reverse .step__media { order: -1; }

.step__title {
  font-family: var(--font-sans);
  font-weight: 700;
  font-size: clamp(32px, 3.6vw, 54px);
  line-height: 1.08;
  letter-spacing: -0.026em;
  margin-bottom: 2rem;
  color: var(--cream);
}
.step__title em {
  font-style: normal;
  font-weight: 500;
  letter-spacing: -0.018em;
  color: var(--accent-bright);
}

.step__lead {
  font-size: 0.9375rem; line-height: 1.85;
  color: var(--ink-soft);
  max-width: 540px;
  margin-bottom: 2.5rem;
}

.step__note {
  font-size: 0.8125rem; line-height: 1.85;
  color: var(--ink-faint);
  border-left: 2px solid var(--accent);
  padding-left: 1.125rem;
  margin-bottom: 2.375rem;
  max-width: 540px;
}

/* 特征列表 */
.step__list { display: flex; flex-direction: column; margin-bottom: 2.75rem; }
.step__list li {
  display: flex; gap: 1.25rem;
  padding: 1.375rem 0;
  border-top: 1px solid var(--line-soft);
}
.step__list li:last-child { border-bottom: 1px solid var(--line-soft); }
.step__list-idx {
  font-family: var(--font-mono); font-size: 0.6875rem; font-weight: 700;
  color: var(--accent-bright);
  padding-top: 0.375rem; flex: none;
  letter-spacing: .08em;
}
.step__list-name {
  font-family: var(--font-sans);
  font-size: 1rem; font-weight: 600;
  letter-spacing: -0.005em;
  margin-bottom: 0.375rem;
  color: var(--cream);
}
.step__list-desc { font-size: 0.8125rem; line-height: 1.75; color: var(--ink-soft); }
.step__list--compact li { padding: 1rem 0; }
.step__list--compact .step__list-name { font-size: 0.9375rem; }

/* 右侧大图（滚动视差 + hover 阴影） */
.step__media { position: relative; }
.step__img {
  border-radius: 20px;
  overflow: hidden;
  background: var(--bg-3);
  box-shadow: 0 30px 70px rgba(0, 0, 0, .5);
  aspect-ratio: 5 / 4;
  transition: box-shadow .6s ease;
  border: 1px solid var(--line-soft);
}
.step__img--tall { aspect-ratio: 4 / 4.6; }
.step__img img {
  width: 100%; height: 100%; object-fit: cover;
  will-change: transform;
  transform: scale(1.1);
}
.step__media:hover .step__img { box-shadow: 0 38px 90px rgba(0, 0, 0, .62); }
.step__img-note {
  margin-top: 0.875rem;
  font-family: var(--font-mono); font-size: 0.6562rem;
  letter-spacing: .14em; text-transform: uppercase;
  color: var(--ink-faint);
}

/* 产品系列：3 个独立版面 */
.products {
  /* v75：「产品体系 PRODUCT SYSTEM」上方空间增加 4cm（仅顶 padding，左右/底不变） */
  padding: calc(var(--pad-y) + 4cm) var(--pad-x) var(--pad-y);
  border-top: 0.0625rem solid transparent;
  max-width: var(--max-w);
  margin: 0 auto;
}

/* v61：章节标题居中 — 橙色竖条 + 产品体系 / PRODUCT SYSTEM
   v80：标题整体左移 1CM（用 transform 平移而非 margin-left，避免 width:auto 让右缘吃回一半）
   v83：再左移 1CM（累计 -2cm）
   用 !important 是因为 .products__section-header 上有 .reveal 类，
   .is-in.reveal { transform: none } 特异性 (0,2,0) 高于本条 (0,1,0)，会盖掉平移 */
/* v110：标题样式统一——text-align:center 让 section-chip 水平居中
   （v109 是 right，但用户 v110 要求 chip 居中到竖线左侧可用宽度中心，不跨竖线） */
.products__section-header {
  text-align: center;
  /* v70 问题②：标题下方留空 5CM 再出现内容 */
  margin: 0 0 5cm 0;
  transform: translateX(-2cm) !important;
}
.products__label {
  display: inline-flex;
  align-items: flex-start;
  gap: clamp(12px, 1vw, 18px);
}
.products__label-bar {
  width: 6px;
  flex: none;
  align-self: stretch;
  min-height: 44px;
  background: var(--accent);
  border-radius: 2px;
  box-shadow: 0 0 14px rgba(255, 106, 26, .55);
}
.products__label-texts {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.25rem;
  text-align: left;
}
.products__label-main {
  /* v73：粗宋体 Bold + ×1.25
     v80：字号 ×0.9（缩 10%）
     v81：再缩到约 40px，使 4 字总宽 ≈ "PRODUCT SYSTEM" 宽度（实测 1920 下 en=166 → zh=165） */
  font-family: var(--font-sans);
  font-size: clamp(24px, 2.9vw, 40px);
  font-weight: 700;
  letter-spacing: .04em;
  line-height: 1.1;
  color: var(--cream);
}
.products__label-sub:empty { display: none; }
.products__label-sub {
  font-family: var(--font-mono);
  font-size: clamp(11px, 1vw, 13.5px);
  font-weight: 600;
  letter-spacing: .28em;
  text-transform: uppercase;
  color: var(--accent-bright);
}

/* v61：首屏左右分栏；v68：右列加宽放大配图 */
.products__intro {
  display: grid;
  grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr);
  gap: clamp(40px, 5vw, 80px);
  align-items: start;
}
.products__head {
  display: flex;
  flex-direction: column;
  gap: clamp(20px, 2.2vh, 30px);
  /* v69：左栏文字块左缘与顶部 LOGO 左缘（--pad-x）对齐。
     产品区是居中容器（max-width:--max-w + margin:auto），内容盒左缘 = 居中缩进 + --pad-x，
     需负 margin 抵消居中缩进 max(0px,(100vw - --max-w)/2)；JS 在 alignRailLine 里精确复算。
     v68 批注①的 padding-left:2cm 右移由本条取代（以用户最新指示为准）。 */
  margin-left: calc(-1 * max(0px, (100vw - var(--max-w)) / 2));
}
.products__title {
  font-family: var(--font-sans);
  /* v73：细一点的黑体（Bold→Regular / Medium→Light），字号不变 */
  font-weight: 400;
  font-size: clamp(32px, 3.6vw, 54px);
  line-height: 1.08;
  letter-spacing: -0.026em;
  color: var(--cream);
}
.products__title span { color: var(--cream); }
.products__title em { font-style: normal; font-weight: 300; color: var(--accent-bright); }
.products__lead { font-size: 0.9375rem; line-height: 1.85; color: var(--ink-soft); max-width: 520px; }
.products__head .products__cta { align-self: flex-start; margin-top: 0.25rem; }

/* 右侧视觉区：系列标题 + 对比图 + 图注 */
.products__visual {
  display: flex;
  flex-direction: column;
  gap: clamp(18px, 2vh, 28px);
}
/* v68 批注①：标题块移动至竖线（rail）右侧——左缘锚在竖线上，内部左对齐；
   --line-shift 由 JS 计算（竖线 x − 视觉列左缘），切语言/改窗口后重算 */
.products__series-head {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.4rem;
  text-align: left;
  width: max-content;
  max-width: 100%;
  /* v75：标题块移至竖线右侧 0.7cm + 三组元素竖直中心同轴——JS 精确计算，此为兜底 */
  margin-left: var(--line-shift, 0px);
}
.products__series-title {
  font-family: var(--font-sans);
  /* v73：中文小一字号（×0.85）+ 字形细一个号（700→500） */
  /* v93：恢复中文版原字号（用户确认 zh 无需改动）；en/ru 紧凑规则见下方 html[lang] 块 */
  font-size: clamp(18.7px, 2.04vw, 28.9px);
  font-weight: 500;
  letter-spacing: .04em;
  color: var(--cream);
}
/* v68 批注②：英文放大 + 双行排列（max-width 断行）+ 与中文左对齐
   v73：换瘦长字形黑体（相同字号）+ 字间距收紧（.18em→.08em）
   v93：恢复中文版原字号（zh 模式下此行也是英文副标且无贴边问题）；en/ru 紧凑规则见下方 */
/* v247：产品区小字与 CONTACT US 等小字统一规格（mono 12.5px 橙色），
   断句由字典 <br> 固定（MAIN MACHINE / COMPARISON），等宽仍由 JS 三档适配 */
.products__series-sub {
  font-family: var(--font-mono);
  font-size: clamp(10px, 0.85vw, 12.5px);
  font-weight: 600;
  letter-spacing: .22em;
  line-height: 1.6;
  text-transform: uppercase;
  color: var(--accent-bright);
}

/* v93：英/俄文长词适配（仅 en/ru 生效，中文版保持原样）——
   标题缩一档 + 限宽断行 2~3 行（上下行同字体字号）；橙色小字在 v92 基础上回调大一档，
   保证不贴边（JS 钳制余量 28px）且不影响阅读 */
html[lang="en"] .products__series-title,
html[lang="ru"] .products__series-title {
  font-size: clamp(17px, 1.85vw, 26px);
  max-width: 10em;
}
html[lang="en"] .products__series-sub,
html[lang="ru"] .products__series-sub {
  font-size: clamp(12px, 1.05vw, 14.5px);
  letter-spacing: .03em;
  max-width: 12.5em;
}

/* 对比图（v68 批注）：两图米色、不要紧挨着（各自独立橙描边 + 真实间距）、放大；
   图对向右延展至竖线附近（留 40px 呼吸位），--visual-extend 由 JS 写入 */
.products__compare {
  display: grid;
  /* v71 问题②：尺寸/位置改由 JS 精确计算（放大 + 左右各距元素 3CM + 顶对齐引导文），
     v70 的 translateX(-4cm) 废弃；单列占满，右缘由 JS 定 */
  grid-template-columns: 1fr;
  gap: clamp(24px, 2.6vw, 48px);
}
/* v71/v72 问题②：用户 PNG 本身透明背景（alpha=0），去掉米色衬底与图片内边距原样显示；
   v72：按用户要求去掉最外层橙色描边框 */
.products__compare .products__card { background: transparent; border: none; }
.products__compare .products__card-media {
  aspect-ratio: 1090 / 604;   /* 贴合原图 1090×604 比例 */
  background: transparent;
}
.products__compare .products__card-media img { padding: 0; }
.products__card {
  margin: 0;
  background: #F2EDE4;
  border: 1px solid rgba(255, 106, 26, .42);
}
.products__card-media {
  position: relative;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: #F2EDE4;
}
.products__card-media img {
  display: block;
  width: 100%; height: 100%;
  object-fit: contain;
  padding: clamp(12px, 1.4vw, 20px);
}
/* v68 批注①②：主机对比图标题块同样移动至竖线右侧 + 英文放大双行左对齐 */
.products__compare-foot {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.35rem;
  text-align: left;
  width: max-content;
  max-width: 100%;
  /* v73：统一右移 0.5cm */
  margin-left: calc(var(--line-shift, 0px) + 0.5cm);
}
.products__compare-foot span:first-child {
  font-family: var(--font-sans);
  /* v73：中文小一字号（×0.85）+ 字形细一个号（700→500） */
  font-size: clamp(17px, 1.87vw, 25.5px);
  font-weight: 500;
  letter-spacing: .02em;
  color: var(--cream);
}
.products__compare-foot span:last-child:empty { display: none; }
.products__compare-foot span:last-child {
  /* v73：瘦长字形黑体（相同字号）+ 字间距收紧 */
  font-family: 'Arial Narrow', 'Bahnschrift', 'Roboto Condensed', Arial, sans-serif;
  font-stretch: condensed;
  font-size: clamp(12.5px, 1.2vw, 16px);
  font-weight: 600;
  letter-spacing: .08em;
  line-height: 1.5;
  text-transform: uppercase;
  color: var(--accent-bright);
  max-width: 14.5em;
}

/* step2 响应式 —— 窄屏单列堆叠 */
@media (max-width: 900px) {
  .products__intro { grid-template-columns: 1fr; gap: 48px; }
  .products__head { margin-left: 0; }
  .products__series-head,
  .products__compare-foot { margin-left: 0; align-items: flex-start; text-align: left; }
}

/* ===================== MCF 详情区（v76 参考图#2）：浅色底 · 视频 ===================== */
.mcf-detail {
  position: relative;
  background: #EFEAE1;
  color: #191613;
  padding: clamp(96px, 12vh, 160px) var(--pad-x);
}
.mcf-detail__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: clamp(40px, 5vw, 90px);
  align-items: center;
  max-width: var(--max-w);
  margin: 0 auto;
}
.mcf-detail__title {
  /* v81：细黑无衬线 + 字号微缩（从 800 降到 300，clamp 上限 64→54）
     v82：再缩 1/4（54 → 40.5、3.8vw → 2.85vw、32 → 24） */
  font-family: var(--font-sans);
  font-size: clamp(24px, 2.85vw, 40.5px);
  font-weight: 300;
  line-height: 1.16;
  letter-spacing: -0.01em;
  color: #131211;
  margin: 0 0 clamp(20px, 3vh, 34px);
}
.mcf-detail__lead {
  font-size: clamp(12.5px, 0.78vw, 14px);
  line-height: 2;
  color: #3A3835;
  max-width: 46em;
  margin: 0 0 clamp(22px, 3vh, 36px);
}
.mcf-detail__specs { list-style: none; margin: 0 0 clamp(22px, 3vh, 34px); padding: 0; max-width: 46em; }
.mcf-detail__specs li {
  display: flex; align-items: center; gap: 14px;
  padding: 13px 0;
  border-top: 1px solid rgba(17, 16, 16, .28);
  font-size: clamp(12.5px, 0.82vw, 14.5px);
  color: #222120;
}
/* v82：最后一条下方再加一条 1px 黑线（按"输入功率 300-3000"下方加线的需求） */
.mcf-detail__specs li:last-child {
  border-bottom: 1px solid rgba(17, 16, 16, .28);
}
/* v82：名称左 / 参数右 / 参数加粗（image#1 风格） */
.mcf-detail__spec-name { flex: 1 1 auto; }
.mcf-detail__spec-value { flex: 0 0 auto; font-weight: 700; color: #131211; }
.mcf-detail__ico { width: 15px; height: 15px; flex: none; color: #2B2A28; }
.mcf-detail__btn {
  display: inline-block;
  background: var(--accent);
  color: #141312;
  font-weight: 700;
  font-size: clamp(12px, 0.75vw, 13.5px);
  padding: 11px 20px;
  border-radius: 4px;
  text-decoration: none;
}
.mcf-detail__media {
  background: #0D0C0C;
  border-radius: 14px;
  overflow: hidden;
  justify-self: end;   /* v78：右对齐轨道，横向位置由 JS translateX 精确调到竖线左 2cm */
  box-shadow: 0 24px 60px -24px rgba(17, 16, 16, .45);
}
.mcf-detail__video { display: block; width: 100%; aspect-ratio: 1 / 1; object-fit: cover; }  /* v77：裁掉两侧，改为正方形 */
/* 右侧竖排标签：JS 定位（竖线右 0.7cm + 与视频竖直中心对齐），CSS 兜底靠右 */
.mcf-detail__label {
  position: absolute;
  right: var(--pad-x);
  top: 50%;
  display: flex; flex-direction: column; gap: 0.45rem;
  text-align: left;
  width: max-content; max-width: 30vw;
}
.mcf-detail__label-zh {
  font-family: var(--font-sans);
  /* v93：恢复中文版原字号；en/ru 紧凑规则见下方 html[lang] 块 */
  font-size: clamp(20px, 1.9vw, 30px);
  font-weight: 800;
  line-height: 1.2;
  color: #131211;
}
.mcf-detail__label-en {
  /* v247：与 CONTACT US 等小字统一规格（mono 12.5px 橙色）；换行维持 JS 折行两行不变 */
  font-family: var(--font-mono);
  font-size: clamp(10px, 0.85vw, 12.5px);
  font-weight: 600;
  letter-spacing: .22em;
  line-height: 1.6;
  text-transform: uppercase;
  color: var(--accent-bright);
}
/* v93：en/ru 专属——标题限宽断行（ru КОВОЧНАЯ МАШИНА 断 2 行、en FORGING MACHINE 断 2 行，
   上下行同字体字号）；橙色小字比 v92 大一档且仍不贴边 */
html[lang="en"] .mcf-detail__label-zh,
html[lang="ru"] .mcf-detail__label-zh {
  font-size: clamp(18px, 1.7vw, 27px);
  max-width: 7em;
}
html[lang="en"] .mcf-detail__label-en,
html[lang="ru"] .mcf-detail__label-en {
  font-size: clamp(12px, 1vw, 14px);
  letter-spacing: .03em;
  max-width: 10em;
}
@media (max-width: 900px) {
  .mcf-detail__grid { grid-template-columns: 1fr; gap: 40px; }
  .mcf-detail__label { position: static; margin-top: 28px; max-width: 100%; }
}

/* ==========================================================================
   v84：MCX 详情区（图左文右，镜像 MCF 版式）——标题/引导文/规格/按钮直接复用
   .mcf-detail__* 类（均未限定父级），此处只补布局差异
   ========================================================================== */
.mcx-detail {
  position: relative;
  background: #EFEAE1;
  color: #191613;
  padding: clamp(96px, 12vh, 160px) var(--pad-x);
}
.mcx-detail__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: clamp(40px, 5vw, 90px);
  align-items: start;   /* 标题顶到引导文顶（mock：左标题与右引导文近顶对齐） */
  max-width: var(--max-w);
  margin: 0 auto;
}
/* v86：右列（引导文 + 规格横线表格）整体下移，底部与图片底对齐（用户需求）；
   规格表原有的 margin-bottom 是给下方按钮的空隙，MCX 列里按钮已移至黑带，置 0 让最后一条横线贴齐图片底 */
.mcx-detail__text { align-self: end; padding-top: 0; }
.mcx-detail__text .mcf-detail__specs { margin-bottom: 0; }
.mcx-detail__media {
  margin: 0;
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 24px 60px -24px rgba(17, 16, 16, .35);
}
.mcx-detail__media img { display: block; width: 100%; height: auto; aspect-ratio: 1597 / 901; object-fit: cover; }  /* v91：锁定宽高比——lazy 未加载时高度不再为 0，标签垂直居中不跑偏 */
/* v86：右列对齐规则已并入上方 .mcx-detail__text（align-self:end） */
@media (max-width: 900px) {
  .mcx-detail__grid { grid-template-columns: 1fr; gap: 40px; }
}

/* ==========================================================================
   v88：MCK 详情区（文左图右，同 MCF 版式）——文字元素复用 .mcf-detail__* 类，
   此处只补布局差异；第二行标题按 mock 用橙色（.mck-detail__title-accent）
   ========================================================================== */
.mck-detail {
  position: relative;
  background-color: #EFEAE1;
  color: #191613;
  padding: clamp(96px, 12vh, 160px) var(--pad-x);
}
.mck-detail__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: clamp(40px, 5vw, 90px);
  align-items: center;   /* mock：图片竖直居中于文字块（同 MCF） */
  max-width: var(--max-w);
  margin: 0 auto;
}
.mck-detail__media {
  margin: 0;
  border-radius: 14px;
  overflow: hidden;
  justify-self: end;     /* 右对齐轨道，右缘由 JS translateX 钉到竖线左 2cm（同 MCF 媒体卡） */
  align-self: end;       /* v89：配图下沉，底边与规格划线底对齐（同 v87 MCX 右列底对齐逻辑） */
  box-shadow: 0 24px 60px -24px rgba(17, 16, 16, .35);
}
.mck-detail__media img { display: block; width: 100%; height: auto; aspect-ratio: 3640 / 2518; object-fit: cover; }  /* v91：同上，锁定宽高比 */
.mck-detail__title-accent { color: var(--accent); }
/* v89：MCK 列内规格表无按钮，margin-bottom 置 0 让最后一条横线成为列底（图片底与其对齐） */
.mck-detail__text .mcf-detail__specs { margin-bottom: 0; }
@media (max-width: 900px) {
  .mck-detail__grid { grid-template-columns: 1fr; gap: 40px; }
}

/* ==========================================================================
   v84：系列参数抽屉——挂在各介绍下方（页面深色底），单向展开不收回。
   折叠动画期间 overflow:hidden 裁剪；展开到位后 JS 加 .is-settled 放开裁剪，
   修复 v81 遗留问题：表格负 margin 左延到 --pad-x 时左缘被抽屉 overflow 裁掉
   ========================================================================== */
.series-drawer {
  position: relative;   /* 内部 .params__series-head 绝对定位参照 */
  overflow: hidden;
  max-height: 0;
  transition: max-height 0.7s cubic-bezier(.4, 0, .2, 1);
}
.series-drawer.is-open {
  max-height: 3000px;
  transition: max-height 0.9s cubic-bezier(.4, 0, .2, 1);
}
.series-drawer.is-settled { overflow: visible; }
.series-drawer__inner {
  max-width: var(--max-w);
  margin: 0 auto;
  padding: clamp(48px, 7vh, 84px) var(--pad-x);
}

.product {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: clamp(48px, 6vw, 110px);
  align-items: center;
  padding: clamp(56px, 8vh, 100px) 0;
  border-top: 1px solid var(--line-soft);
}
.product:first-of-type { border-top: none; }
.product--reverse .product__media { order: 2; }
.product__media { position: relative; }
.product__media img {
  width: 100%; aspect-ratio: 4 / 3.2; object-fit: cover;
  border-radius: 20px; background: var(--bg-3);
  border: 1px solid var(--line-soft);
  box-shadow: 0 30px 70px rgba(0, 0, 0, .5);
}
.product__note {
  margin-top: 0.875rem;
  font-family: var(--font-mono); font-size: 0.6562rem;
  letter-spacing: .12em; text-transform: uppercase;
  color: var(--ink-faint);
}
.product__badge {
  display: inline-block; font-family: var(--font-mono); font-size: 1rem; font-weight: 700;
  letter-spacing: .06em; color: #FFF8EF; background: var(--accent);
  border-radius: 10px; padding: 0.5625rem 0.875rem 0.5rem; margin-bottom: 1.25rem; line-height: 1;
}
.product__name {
  font-family: var(--font-sans); font-weight: 700;
  font-size: clamp(26px, 2.8vw, 40px); letter-spacing: -0.02em;
  line-height: 1.1; margin-bottom: 18px; color: var(--cream);
}
.product__desc { font-size: 0.9062rem; line-height: 1.8; color: var(--ink-soft); max-width: 480px; margin-bottom: 28px; }
.product__specs { display: flex; flex-wrap: wrap; gap: 1.125rem 2.625rem; margin-bottom: 2rem; }
.pspec { display: flex; flex-direction: column; gap: 0.25rem; }
.pspec__k { font-family: var(--font-mono); font-size: 0.625rem; letter-spacing: .14em; text-transform: uppercase; color: var(--ink-faint); }
.pspec__v { font-family: var(--font-sans); font-size: 1.1875rem; font-weight: 700; letter-spacing: -0.01em; color: var(--accent-bright); }

/* ==========================================================================
   参数表
   ========================================================================== */
.params {
  position: relative;   /* v80：内部 .params__series-head 绝对定位的参照 */
  padding: var(--pad-y) var(--pad-x);
  border-top: 1px solid var(--line);
  max-width: var(--max-w);
  margin: 0 auto;
}
.params__head { margin-bottom: 4.375rem; scroll-margin-top: 5.625rem; }
.params__head + .params__head { margin-top: 5rem; }

/* v81：参数表整体左缘从居中容器左缘拉到 --pad-x（与上方 mcf-detail 等左对齐元素同起点），
   公式 -(100vw - max-w)/2 在居中状态下为负、把内容向左拉；窄视口下 100vw<max-w 时钳到 0 不溢出 */
.params__head,
.param-table__scroll {
  margin-left: calc(min(0px, var(--max-w) - 100vw) / 2);
  max-width: calc(100vw - 2 * var(--pad-x));
}

/* v95：设备板块（MCK 抽屉后）——两张图并排 + 图下设备名称 */
.equip {
  background: #EFEAE1;
  color: #191613;
  padding: clamp(96px, 12vh, 160px) var(--pad-x);
}
.equip__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: clamp(24px, 3vw, 48px);
  max-width: var(--max-w);
  margin: 0 auto;
}
.equip__item { margin: 0; }
.equip__media {
  background: #0D0C0C;
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 24px 60px -24px rgba(17, 16, 16, .45);
}
.equip__media img {
  display: block;
  width: 100%;
  aspect-ratio: 1448 / 1086;  /* 原图即 4:3，防懒加载 0 高（v91 教训） */
  object-fit: cover;
}
.equip__name {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 18px;
  font-family: var(--font-sans);
  font-weight: 600;
  font-size: clamp(14px, 1.05vw, 18px);
  letter-spacing: .02em;
  color: #191613;
}
.equip__sq {
  width: 8px;
  height: 8px;
  background: var(--accent);
  flex: none;
}

/* v81：抽拉抽屉——max-height 0/6000px + overflow hidden 实现展开/折叠过渡 */
.params__toggle-bar {
  text-align: center;
  padding: clamp(36px, 5vh, 64px) 0;
  background: var(--bg);
}
/* v94：按钮改胶囊描边样式（参考图：透明底+橙描边+右侧橙色实心圆内白色下箭头） */
.params__toggle-btn {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  background: transparent;
  color: var(--accent);
  border: 1px solid var(--accent);
  border-radius: 999px;
  font-family: inherit;
  font-weight: 600;
  font-size: clamp(13px, 0.85vw, 15px);
  letter-spacing: .04em;
  padding: 9px 11px 9px 26px;
  cursor: pointer;
  transition: background-color .2s ease, color .2s ease, transform .2s ease, box-shadow .2s ease;
}
.params__toggle-btn:hover { background: rgba(255, 106, 26, .14); }
.params__toggle-ico {
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: var(--accent);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: none;
  transition: transform 150ms ease, background-color .2s ease;
}
.params__toggle-btn:hover .params__toggle-ico { transform: translateY(2px); }

/* ===================== v231：参数按钮「点击暗示」三件套 =====================
   病根：静态描边幽灵——不呼吸不发光，滚动余光里与装饰图标无异，用户直接划走。
   处方（全部只动 transform/opacity/box-shadow；prefers-reduced-motion 全停）：
   ① 光泽扫过 4.5s 循环——余光可感知的注意钩子，触屏用户也有效
   ② 悬停实心反转——描边变实心橙+文字反色+上浮，可点击感质变 */
.params__toggle-btn {
  position: relative;
  overflow: hidden;             /* 裁剪扫光 */
}
/* ② 光泽扫过：transform-only 斜向光带，4.5s 一个周期，58% 时间隐藏 */
.params__toggle-btn::after {
  content: '';
  position: absolute;
  top: -4px; bottom: -4px;
  left: 0;
  width: 34%;
  background: linear-gradient(105deg, transparent 0%, rgba(255,255,255,.30) 50%, transparent 100%);
  transform: translateX(-130%) skewX(-18deg);
  animation: paramsSheen 4.5s ease-in-out infinite;
  pointer-events: none;
}
@keyframes paramsSheen {
  0%, 58%   { transform: translateX(-130%) skewX(-18deg); }
  82%, 100% { transform: translateX(340%)  skewX(-18deg); }
}
/* ③ 悬停实心反转 + 轻微上浮 + 品牌色投影 */
.params__toggle-btn:hover,
.params__toggle-btn:focus-visible {
  background: var(--accent);
  color: #141312;
  transform: translateY(-1px);
  box-shadow: 0 10px 24px -10px rgba(255, 106, 26, .6);
}
.params__toggle-btn:hover::after { animation-play-state: paused; opacity: 0; }
.params__toggle-btn:active { transform: translateY(0) scale(.97); }
/* a11y：键盘焦点环 + 动效降级 */
.params__toggle-btn:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 3px;
}

/* ===================== v232：圆圈立体按键化 + 自动演示点击 =====================
   把橙色圆圈做成实体键帽：橙面渐变 + 底部深色棱边（挤出 3px）+ 落影。
   周期性自动「按下→回弹」演示点击；悬停 = 被按下的实体感状态。
   只动 transform/box-shadow（合成层友好）。 */
.params__toggle-ico {
  background: linear-gradient(180deg, #FF9A5C 0%, #FF6A1A 55%, #E2551A 100%);
  box-shadow:
    0 3px 0 #B23E12,
    0 6px 12px -3px rgba(0, 0, 0, .5);
  animation: paramsClickDemo 2.6s ease-in-out infinite;
}
/* 自动演示点击：58% 时间静止 → 按下（棱边压扁）→ 微回弹 → 归位 */
@keyframes paramsClickDemo {
  0%, 56%  {
    transform: translateY(0);
    box-shadow: 0 3px 0 #B23E12, 0 6px 12px -3px rgba(0, 0, 0, .5);
  }
  66%      {
    transform: translateY(2.5px);
    box-shadow: 0 .5px 0 #B23E12, 0 1px 3px rgba(0, 0, 0, .4);
  }
  74%      {
    transform: translateY(1px);
    box-shadow: 0 2px 0 #B23E12, 0 3px 7px -2px rgba(0, 0, 0, .45);
  }
  84%, 100%{
    transform: translateY(0);
    box-shadow: 0 3px 0 #B23E12, 0 6px 12px -3px rgba(0, 0, 0, .5);
  }
}
/* 悬停/键盘聚焦 = 按下实体键：压到底、棱边贴平（forward 保持按压态） */
.params__toggle-btn:hover .params__toggle-ico,
.params__toggle-btn:focus-visible .params__toggle-ico {
  animation: paramsPressed .16s ease-out forwards;
}
@keyframes paramsPressed {
  from { transform: translateY(0);
         box-shadow: 0 3px 0 #B23E12, 0 6px 12px -3px rgba(0, 0, 0, .5); }
  to   { transform: translateY(2.5px);
         box-shadow: 0 .5px 0 #B23E12, 0 1px 3px rgba(0, 0, 0, .4); }
}
/* 胶囊也加一层微立体：顶部内高光 + 底部落影 */
.params__toggle-btn {
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, .10),
    0 2px 8px -2px rgba(0, 0, 0, .35);
}
@media (prefers-reduced-motion: reduce) {
  .params__toggle-btn::after { animation: none; opacity: 0; }
  .params__toggle-ico { animation: none; }
  .params__toggle-btn:hover .params__toggle-ico,
  .params__toggle-btn:focus-visible .params__toggle-ico {
    animation: none;
    transform: translateY(2.5px);
    box-shadow: 0 .5px 0 #B23E12, 0 1px 3px rgba(0, 0, 0, .4);
  }
}
.params__drawer {
  overflow: hidden;
  max-height: 0;
  transition: max-height 0.7s cubic-bezier(.4, 0, .2, 1);
}
.params__drawer.is-open {
  max-height: 6000px;
  transition: max-height 1.0s cubic-bezier(.4, 0, .2, 1);
}

/* v80：MCX 参数表右竖线竖排标签（与上方「主机对比图/MAIN MACHINE COMPARISON」同款，
   水平位置由 JS 精确定到竖线右 0.7cm，竖直位置居中对齐 MCX 表格） */
.params__series-head {
  position: absolute;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.4rem;
  text-align: left;
  width: max-content;
  max-width: 100%;
  margin-left: 0;
  z-index: 2;
}
/* ≤900px 单列布局时改回文档流（不浮在右侧） */
@media (max-width: 900px) {
  .params__series-head { position: static; margin-top: 24px; }
}
/* v252：俄文版参数标签（Параметры MCX + ТЕХНИЧЕСКИЕ ХАРАКТЕРИСТИКИ）字母多，
   标签宽 232px 导致右缘距页面边仅 28px——主字降一档 + 轻度负字距、小字压字距，右缘退到约 60px+ */
html[lang="ru"] .params__series-head .products__series-title { font-size: 22px; letter-spacing: -0.02em; }
html[lang="ru"] .params__series-head .products__series-sub { font-size: 12.5px; letter-spacing: 0; }
.params__title {
  font-family: var(--font-sans);
  font-size: clamp(22px, 2.4vw, 32px); font-weight: 600;
  letter-spacing: -0.022em;
  margin-bottom: 0.75rem;
  color: var(--cream);
}
.params__sub {
  font-family: var(--font-mono); font-size: 0.6875rem;
  letter-spacing: .14em; text-transform: uppercase;
  color: var(--ink-faint);
  margin-bottom: 2rem;
}
.param-table__scroll {
  border: 1px solid var(--line);
  border-radius: 16px;
  background: var(--bg-2);
  overflow-x: auto;
}
.param-table {
  width: 100%; border-collapse: collapse;
  min-width: 720px;
}
.param-table th {
  /* v81：换无衬线 + 缩小一档（1.3125rem→1rem），对应 padding 同步收紧 */
  font-family: var(--font-sans);
  font-size: 1rem; font-weight: 600;
  letter-spacing: .12em; text-transform: uppercase;
  color: var(--ink-soft);
  text-align: left;
  padding: 1.125rem 1.25rem;
  border-bottom: 1px solid var(--line);
  background: var(--bg-3);
}
.param-table td {
  /* v81：换无衬线 + 缩小一档（1.1719rem→0.875rem） */
  font-family: var(--font-sans);
  font-size: 0.875rem;
  padding: 0.875rem 1.25rem;
  border-bottom: 1px solid var(--line-soft);
  color: var(--ink-soft);
}
.param-table td:first-child { font-weight: 700; color: var(--cream); }
.param-table tbody tr { transition: background .25s ease; }
.param-table tbody tr:hover { background: rgba(255, 106, 26, .1); }
.param-table tbody tr:last-child td { border-bottom: none; }

/* ==========================================================================
   深色照片间歇段
   ========================================================================== */
.interlude {
  position: relative;
  min-height: 92vh;
  /* v98：上下节奏与第二章 .products 完全一致（顶 = --pad-y+4cm，底 = --pad-y），
     取消 flex 垂直居中，内容从顶部按文档流排列 → 标题组垂直位置与产品体系标题对齐 */
  padding: calc(var(--pad-y) + 4cm) var(--pad-x) var(--pad-y);
  overflow: hidden;
}
.interlude__bg {
  position: absolute; inset: -10% 0;
  /* v97：解决方案板块底图换新（桌面「解决方案底图」3679×2760） */
  background-image: url('../assets/img/real/solutions_bg.jpg');
  background-size: cover; background-position: center;
  filter: brightness(.42) saturate(.9) sepia(.08);
  will-change: transform;
  transform: scale(1.12);
}
.interlude__bg::after {
  content: ''; position: absolute; inset: 0;
  /* v97：黑色叠加加深（右侧要放视频卡片，整体压暗保文字可读） */
  background: linear-gradient(90deg, rgba(10, 8, 5, .82) 0%, rgba(10, 8, 5, .48) 70%, rgba(10, 8, 5, .6) 100%);
}
/* v97：inner 由单列 900px 放宽为双栏容器 */
/* v99：补 margin auto（v97 放宽时遗留缺失，内容此前整体贴左）——与 .gallery__inner 同构居中 */
.interlude__inner { position: relative; z-index: 2; max-width: var(--max-w); width: 100%; margin: 0 auto; }
/* v97：章节标题复用第二板块 products__label（橙竖条+衬线主标+mono英文副标）
   v98：间距对齐第二章——删除本处的 margin 覆盖，直接沿用共享类 .products__section-header
   的 margin 0 0 5cm 0（与产品体系标题下方间距一致）；translateX(-2cm) 亦继承共享类 */
.interlude__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: clamp(40px, 5vw, 90px);
  align-items: center;
}
.interlude__copy { max-width: 560px; }
/* v107：紧凑化——文字右移 2cm（与视频卡左移对称），中间留白缩短约 4cm；
   与 v106 的 +2cm 叠加 = 共 +4cm（移动端在 @media 清掉）
   视频卡的左移 2cm 在 js/main.js v101 块实现（inline transform 会覆盖 CSS） */
/* v212：文字+视频整体左移 1.5cm（4cm→2.5cm）；视频左移在 JS v211 块 vmaxR 减 56.7px 实现 */
.interlude__copy { transform: translateX(2.5cm); }
/* v97：右侧视频播放卡片（深色圆角卡语言与 MCF/MCX/MCK 图卡一致） */
.interlude__video {
  position: relative;
  border-radius: 14px;
  overflow: hidden;
  background: #0D0C0C;
  aspect-ratio: 16 / 9;
  box-shadow: 0 24px 60px -24px rgba(0, 0, 0, .65);
}
.interlude__video video {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.interlude__play {
  position: absolute;
  inset: 0;
  margin: auto;
  width: 72px;
  height: 72px;
  border-radius: 50%;
  border: none;
  background: var(--accent);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  box-shadow: 0 10px 30px -8px rgba(255, 106, 26, .7);
  transition: transform 150ms ease, opacity 150ms ease;
}
.interlude__play svg { margin-left: 4px; }  /* 播放三角光学居中 */
.interlude__play:hover { transform: scale(1.07); }
.interlude__play.is-hidden { opacity: 0; pointer-events: none; }
/* v97：≤900px 单列回退（文字在上、视频在下）；v106 加清 copy 整组右移 */
@media (max-width: 900px) {
  .interlude__grid { grid-template-columns: 1fr; }
  .interlude__copy { max-width: none; transform: none; }
  .interlude__header { transform: translateX(0) !important; }
}
.interlude__title {
  font-family: var(--font-sans);
  font-weight: 700;
  font-size: clamp(30px, 3.8vw, 56px);
  line-height: 1.1;
  letter-spacing: -0.026em;
  color: #FFF8EF;
  margin-bottom: 2rem;
}
.interlude__title em {
  font-style: normal;
  font-weight: 500;
  color: var(--accent-bright);
}
.interlude__sub {
  max-width: 540px;
  font-size: 0.9062rem; line-height: 1.85;
  color: rgba(246, 241, 233, .8);
}

/* v99：解决方案标题组右移 2.5cm（共享类 -2cm → 净 +0.5cm）
   v106：再右移 2cm（净 +2.5cm），与 copy 整组同步；!important 压过 .is-in.reveal
   v107：紧凑化——再右移 2cm（净 +4.5cm），与 copy/video 对称向中线靠拢
   v110：标题 chip 居中——撤销 v107 的 translateX(4.5cm)，让 chip 水平居中到竖线左侧可用宽度中心
   （copy 仍 +4cm，video 仍 -2cm，两者紧凑化不变；header 单独恢复 0 位移） */
.interlude__header {
  transform: none !important;
  text-align: center;
}

/* ==========================================================================
   实拍图库
   ========================================================================== */
.gallery {
  /* v116：padding-bottom +2cm——照片组与翻页键（absolute 定位随 carousel）整体上移，
     拉开与板块下沿的距离（用户反馈"太靠近下方边缘"）
     v117：再 +1cm（用户要求"再往上一点"），累计 +3cm */
  padding: clamp(80px, 11vh, 140px) var(--pad-x) calc(clamp(80px, 11vh, 140px) + 3cm);
  border-top: 1px solid var(--line);
  /* v102：本页底色为米色（与介绍区一致） */
  background: #EFEAE1;
}
/* v102：内容壳与 .interlude__inner 同构（max-w var(--max-w) + margin auto），
   使「MACHINES ON SITE 装备现场·实拍」标题与左侧「每一次锻打」文案左缘对齐 */
.gallery__inner { max-width: var(--max-w); margin: 0 auto; }
/* v110：标题 chip 居中——flex column 让 h3 靠左、chip 居中到竖线左侧可用宽度中心
   v112：「项目案例」chip 已删除（用户要求），gallery__head 只剩标题 */
.gallery__head {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}
/* v115：英文小字（原版「装备现场 · 实拍」上方的小字英文，i18n key ch3.gallery.sub）。
   样式仿站内同款 .products__series-sub（橙色 condensed 大写小字）；
   margin-bottom 2CM——用户要求照片组整体上移后距英文小字 2CM */
.gallery__sub {
  font-family: 'Arial Narrow', 'Bahnschrift', 'Roboto Condensed', Arial, sans-serif;
  font-stretch: condensed;
  font-size: clamp(13px, 1.25vw, 17px);
  font-weight: 600;
  letter-spacing: .08em;
  line-height: 1.5;
  text-transform: uppercase;
  color: var(--accent-bright);
  /* v115：2CM + 16px——16px 补偿 .case-viewport 的负 margin（v104 裁剪余量），
     使照片组卡片「视觉顶」距英文小字精确 2CM */
  margin: 0 0 calc(2cm + 16px) 0;
  /* v337：遵循中心对齐原则，移除 translate X 偏置，仅保留 translateY 下移 */
  transform: translateY(1cm);
}
/* v115：中文标题「装备现场 · 实拍」已删除（用户要求），.gallery__title 样式保留备用 */
.gallery__title {
  font-family: var(--font-sans);
  font-size: clamp(22px, 2.4vw, 34px); font-weight: 600;
  letter-spacing: -0.022em;
  margin-bottom: 2.625rem;
  color: #191613;   /* v102：米色底改深色 */
}
.gallery__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.375rem;
}
.gallery__item { position: relative; }
.gallery__item img {
  width: 100%; aspect-ratio: 1 / 1; object-fit: cover;
  border-radius: 14px;
  background: var(--bg-3);
  border: 1px solid var(--line-soft);
  transition: transform .9s var(--spring-soft), box-shadow .5s ease;
}
.gallery__item:hover img {
  transform: scale(1.035);
  box-shadow: 0 22px 54px rgba(0, 0, 0, .5);
}
.gallery__item figcaption {
  margin-top: 0.625rem;
  font-family: var(--font-mono); font-size: 0.625rem;
  letter-spacing: .14em; text-transform: uppercase;
  color: var(--ink-faint);
}

/* v99：项目案例轮播（参考图版式：大图带内嵌说明 + 小图 + 三图带图注）
   v115：margin-top 归零——照片组距上方英文小字（.gallery__sub margin-bottom）精确 2CM */
.case-carousel { position: relative; margin: 0; }
/* v104：裁剪视口——只显示当前组，下一组被遮住；负 margin+padding 给 hover 上浮/放大留裁剪余量 */
.case-viewport { overflow: hidden; margin: -16px -20px; padding: 16px 20px; }
.case-track {
  display: flex;
  align-items: flex-start;
  transition: transform .55s cubic-bezier(.4, 0, .2, 1);
}
/* v100：竖排标题移出滑块；滑块只剩照片组 */
.case-slide {
  flex: 0 0 100%;
  min-width: 0;
  margin-right: 60px;   /* v338：组间间隔增大至60px，彻底消除视口padding区残影 */
  display: flex;
  align-items: flex-start;  /* v340：统一所有 slide 顶端对齐，顶线完全一致，彻底消除下沉与顶部空格 */
  justify-content: center;
}
/* v338：10 组案例高级响应式版式系统 */
.case-slide__photos {
  width: 100%;
  display: grid;
  gap: clamp(12px, 1.2vw, 20px);
}

/* 通用案例文字卡片：阿里巴巴普惠体、年份与简述单行横向流排版、米灰底色、立体阴影 */
.case-card {
  background: #EAE4DA;
  border-radius: 14px;
  padding: clamp(12px, 1.1vw, 16px) clamp(16px, 1.4vw, 22px);
  display: flex;
  flex-direction: row;
  align-items: center;
  flex-wrap: wrap;
  column-gap: 14px;
  row-gap: 6px;
  box-shadow:
    0 8px 16px -4px rgba(0, 0, 0, .18),
    0 16px 28px -8px rgba(0, 0, 0, .12);
  transition: transform .3s ease, box-shadow .3s ease;
}
.case-card:hover {
  transform: translateY(-4px) scale(1.01);
  box-shadow:
    0 12px 22px -6px rgba(0, 0, 0, .28),
    0 24px 38px -10px rgba(0, 0, 0, .18);
}
.case-card__tag {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
  font-family: "Alibaba PuHuiTi 3.0", "Alibaba PuHuiTi 2.0", "Alibaba PuHuiTi", "PingFang SC", "Microsoft YaHei", sans-serif;
  font-size: clamp(13px, 0.95vw, 14.5px);
  font-weight: 700;
  color: var(--accent);
  letter-spacing: .02em;
  margin-bottom: 0;
  white-space: nowrap;
}
.case-card__dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--accent);
  display: inline-block;
  flex-shrink: 0;
}
.case-card__desc {
  margin: 0;
  flex: 1 1 auto;
  font-family: "Alibaba PuHuiTi 3.0", "Alibaba PuHuiTi 2.0", "Alibaba PuHuiTi", "PingFang SC", "Microsoft YaHei", sans-serif;
  font-size: clamp(13px, 0.95vw, 14.5px);
  line-height: 1.65;
  color: #191613;
  font-weight: 500;
}

/* 版式 1: case01 (3图) 左大图(宽幅拉长，展现完整横向机身) + 右上下双图 + 下方跨列文字卡 */
.case-layout--hero-dual {
  grid-template-columns: 1.8fr 1fr;
  grid-template-rows: repeat(2, clamp(135px, 11vw, 205px)) auto;
}
.case-layout--hero-dual .case-item--hero {
  grid-column: 1;
  grid-row: 1 / span 2;
}
.case-layout--hero-dual .case-item--hero .case-item__frame {
  height: 100%;
}
.case-card--span2 {
  grid-column: 1 / span 2;
}

/* 版式 2 & 3: case02, case03 (双竖图) 双竖图等高 + 下方文字卡 */
.case-layout--dual-portrait {
  grid-template-columns: 1fr 1fr;
  grid-template-rows: clamp(230px, 19vw, 340px) auto;
}
.case-item__frame--portrait img {
  object-position: center 25%;
}
.case-card--wide {
  grid-column: 1 / span 2;
}

/* 版式 4: case04 (6图大戏)
   Row 1: 左Hero大图(左上) + 右上中图1 + 右上中图2
   Row 2: 左Hero大图(左下) + 右下跨列文字卡片
   Row 3: 底部3张精密小图一字排开 (col 1, col 2, col 3) */
.case-layout--hero-grid5 {
  grid-template-columns: 1.35fr 1fr 1fr;
  grid-template-rows: clamp(110px, 9vw, 155px) clamp(110px, 9vw, 155px) clamp(90px, 7.5vw, 125px);
  gap: clamp(12px, 1.2vw, 18px);
}
.case-layout--hero-grid5 .case-item--hero {
  grid-column: 1;
  grid-row: 1 / span 2;
}
.case-layout--hero-grid5 .case-card {
  grid-column: 2 / span 2;
  grid-row: 2;
}

/* 版式 5: case05 钨合金SKK14大修 (双竖图垂直放大无裁切 + 文字放在右侧) */
.case-layout--side-text {
  display: grid;
  grid-template-columns: 1.65fr 1fr;
  gap: clamp(16px, 1.5vw, 24px);
  align-items: center;
}
.case-side-photos {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(12px, 1.2vw, 16px);
}
.case-side-photos .case-item__frame {
  aspect-ratio: 3 / 4;
  height: clamp(270px, 23vw, 370px);
}
.case-card--side {
  height: auto;
  margin: 0;
  align-self: center;
}

/* 版式 6: case06 新能源电机轴SKK10维修维护
   左侧：精锻机核心部件裁切横图(4:3)展示，适度放大尺寸 + 下方紧凑文字卡
   右侧：立式整机照片(3:4)放大 1.25 倍（高度 345px），左右横竖互衬、大气平衡 */
.case-layout--grid-213 {
  display: flex;
  gap: clamp(20px, 2vw, 32px);
  align-items: flex-start;
  justify-content: center;
}
.case-grid213-left {
  display: flex;
  flex-direction: column;
  gap: 12px;
  width: clamp(330px, 28vw, 410px);
  flex-shrink: 0;
}
.case-grid213-left .case-item {
  width: 100%;
}
.case-grid213-left .case-item__frame {
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
}
.case-grid213-left .case-item__frame img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.case-grid213-left .case-card {
  width: 100%;
  margin: 0;
  padding: 10px 14px;
}
.case-grid213-right {
  width: auto;
  flex-shrink: 0;
}
.case-grid213-right .case-item__frame {
  height: clamp(275px, 23vw, 345px);
  aspect-ratio: 3 / 4;
  width: auto;
}

/* 版式 7 专属: case07 (RF35径向锻机大修)
   左侧：大修主设备照片按 4:3 比例整体等比缩小完整呈现（无裁切） + 下方紧凑文字卡
   右侧：立式整机照片放大 1.25 倍（高度增至 400px），顶部严格对齐 */
.case-layout--rf35-split {
  display: flex;
  gap: clamp(20px, 2vw, 32px);
  align-items: flex-start;
  justify-content: center;
}
.case-rf-left-col {
  display: flex;
  flex-direction: column;
  gap: 12px;
  width: clamp(300px, 25vw, 380px);
  flex-shrink: 0;
}
.case-rf-left-col .case-item {
  width: 100%;
}
.case-rf-left-col .case-item__frame {
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
}
.case-rf-left-col .case-item__frame img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.case-rf-left-col .case-card {
  width: 100%;
  margin: 0;
  padding: 10px 14px;
}
.case-item--rf-right {
  width: auto;
  flex-shrink: 0;
}
.case-item--rf-right .case-item__frame {
  height: clamp(312px, 26vw, 400px);
  aspect-ratio: 3 / 4;
  width: auto;
}

/* 版式 8: case08 (3图) 三图等宽横向一行排开 + 下方跨列文字卡，整体向下微调 1.8cm */
.case-layout--triple {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-template-rows: clamp(165px, 13.5vw, 225px) auto;
  gap: clamp(12px, 1.2vw, 18px);
  width: 100%;
  margin-top: 1.8cm;
}
.case-layout--triple .case-item__frame {
  height: 100%;
}
.case-card--span3 {
  grid-column: 1 / span 3;
}

/* 版式 7 & 9 通用: case09 (2图等宽) 双图并排 + 下方文字卡 */
.case-layout--dual-equal {
  grid-template-columns: 1fr 1fr;
  grid-template-rows: clamp(210px, 17.5vw, 310px) auto;
}

/* 版式 8: case08 (单图精品) 宽幅单图 + 右侧并排文字卡 */
.case-layout--single-showcase {
  grid-template-columns: 1.4fr 1fr;
  grid-template-rows: clamp(230px, 19vw, 330px);
  align-items: stretch;
}
.case-card--single {
  height: 100%;
  box-sizing: border-box;
}

/* 版式 10: case10 (5图压轴) 左大图 + 右4格网格 + 跨列文字卡 */
.case-layout--hero-grid4 {
  grid-template-columns: 1.4fr 1fr 1fr;
  grid-template-rows: repeat(2, clamp(115px, 9.5vw, 170px)) auto;
}
.case-layout--hero-grid4 .case-item--hero {
  grid-column: 1;
  grid-row: 1 / span 2;
}
.case-layout--hero-grid4 .case-card--span2 {
  grid-column: 1 / span 3;
}

/* 版式 13: case13 (2大图单独一页) 锻造箱焊接中 + 加工成品
   两列并排，严格按自然比例展现，切记不拉变形，每图下方带独立专属图注文案 */
.case-layout--box-duo {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(16px, 1.5vw, 24px);
  align-items: stretch;
}
.case-box-duo-col {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.case-box-duo-col .case-item__frame {
  height: clamp(240px, 20vw, 320px);
}
.case-box-duo-col .case-item__frame img {
  object-fit: cover;
  object-position: center center;
}
.case-card--box-sub {
  width: 100%;
  background: #EAE4DA;
  border-radius: 14px;
  border: none;
  padding: 11px 16px;
  box-shadow:
    0 1px 2px rgba(0, 0, 0, 0.04),
    0 4px 12px rgba(25, 22, 19, 0.06);
  box-sizing: border-box;
  text-align: center;
  justify-content: center;
}
.case-card--box-sub .case-card__desc {
  margin: 0;
  font-size: clamp(13px, 0.95vw, 14.5px);
  line-height: 1.4;
  color: #191613;
  font-weight: 500;
  text-align: center;
}

/* 版式 14: case14 (5张工艺细节小图单独一页)
   上排2张横向工艺图 + 下排3张立式工艺细节图 + 下方跨列说明卡片 */
.case-layout--box-craft5 {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  grid-template-rows: clamp(140px, 12vw, 185px) clamp(120px, 10vw, 155px) auto;
  gap: clamp(12px, 1.2vw, 16px);
}
.case-craft-top1 { grid-column: 1 / span 3; grid-row: 1; }
.case-craft-top2 { grid-column: 4 / span 3; grid-row: 1; }
.case-craft-bot1 { grid-column: 1 / span 2; grid-row: 2; }
.case-craft-bot2 { grid-column: 3 / span 2; grid-row: 2; }
.case-craft-bot3 { grid-column: 5 / span 2; grid-row: 2; }
.case-craft-card { grid-column: 1 / span 6; grid-row: 3; }
.case-layout--box-craft5 .case-item__frame {
  height: 100%;
}


.case-item { margin: 0; min-width: 0; }
.case-item--hero { grid-column: span 2; }
/* v109：照片/卡片阴影重做——
   双层叠加（近距离实阴影 + 远距离虚阴影），不再"内缩"造成像内容延伸；
   hover 时 transform translateY + scale + 阴影同步放大
   v214：去掉第二层大虚影（多卡虚影跨过 22px 缝隙连成一片，视觉像"固定的灰色底纹"），
   只保留近距离实阴影 = 卡片自身阴影 */
.case-item__frame {
  position: relative;
  height: 100%;
  border-radius: 14px;
  overflow: hidden;
  background: var(--bg-3);
  box-shadow: 0 10px 22px -6px rgba(0, 0, 0, .42);
  transition: transform .3s ease, box-shadow .3s ease;
}
.case-item__frame:hover {
  transform: translateY(-6px) scale(1.03);
  box-shadow: 0 18px 32px -8px rgba(0, 0, 0, .5);
}
.case-item__frame img {
  width: 100%; height: 100%; object-fit: cover; display: block;
  transition: transform .5s ease;
}
/* v102：hover 悬浮——卡片上浮+轻微放大（不动图框内照片）+ 阴影加深 */
.case-item:hover .case-item__frame {
  transform: translateY(-6px) scale(1.03);
  box-shadow: 0 30px 60px -18px rgba(17, 16, 16, .5);
}
.case-item__overlay {
  position: absolute; left: 0; right: 0; bottom: 0;
  padding: 44px 16px 13px;
  display: flex; flex-direction: column; gap: 3px;
  background: linear-gradient(180deg, rgba(0, 0, 0, 0), rgba(0, 0, 0, .74));
  color: #F6F1E9;
  font-size: clamp(12px, 0.95vw, 14.5px);
  line-height: 1.55;
}
/* v102：单行图注（中下/右下两图，设计图同款内嵌照片底部） */
.case-item__overlay--single { padding: 34px 14px 11px; }
.case-item__cap {
  margin-top: 10px;
  text-align: center;
  font-size: clamp(12px, 0.95vw, 14.5px);
  color: var(--ink-faint);
}
/* v102：竖排标题回到竖线右侧（JS 定位 cx+0.7cm + 照片组垂直中心）；
   设计图中分隔线是站点竖线本体，标题不加边框；米色底用深色字 */
.case-side {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  right: clamp(10px, 2vw, 40px);   /* CSS 兜底，JS 接管 */
  display: flex; flex-direction: column; align-items: flex-start;
  gap: 5px;
}
.case-side__main {
  font-family: var(--font-serif);
  font-size: clamp(22px, 1.9vw, 34px);
  font-weight: 700;
  letter-spacing: .06em;
  white-space: nowrap;
  color: #191613;
}
.case-side__sub {
  font-family: var(--font-mono);
  font-size: clamp(10px, 0.85vw, 12.5px);
  font-weight: 600;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--accent-bright);
}
/* v210：rail-side 标题变体——发展历程（深底白字）/ 服务项目（米色底深字，沿用默认） */
.about-history__side, .aftersale__side { z-index: 4; transform: none; }   /* 覆写 .case-side 的 translateY(-50%)：本块用 top 精确定位，无需 transform 居中 */
.about-history .case-side__main { color: var(--cream); }   /* 发展历程在深底上，主标题用奶油白 */
/* v212：分享交流 rail-side 标题（articles 米色底，沿用默认深字） */
.articles__side { z-index: 4; transform: none; }
@media (max-width: 1100px) {
  .articles__side {
    position: static; transform: none;
    align-items: center; text-align: center;
    margin: 2rem auto 0;
  }
}
@media (max-width: 1100px) {
  .about-history__side,
  .aftersale__side {
    position: static;
    left: auto;
    top: auto;
    right: auto;
    align-items: center;
    text-align: center;
    margin-top: clamp(28px, 4vh, 48px);
  }
}
.case-nav { pointer-events: none; }
.case-nav__btn {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 72px; height: 72px;     /* v120：48 × 1.5（用户要求翻页键放大 1.5 倍） */
  border-radius: 50%;
  border: 1px solid var(--accent);
  background: transparent;      /* v102：设计图款——透明底橙描边 */
  color: var(--accent);
  display: inline-flex; align-items: center; justify-content: center;
  cursor: pointer;
  font-family: inherit;
  pointer-events: auto;
  transition: background 150ms ease, color 150ms ease, opacity 150ms ease;
}
.case-nav__btn:hover { background: var(--accent); color: #F6F1E9; }
.case-nav__btn.is-disabled { opacity: .32; pointer-events: none; }
.case-nav__btn svg { width: 22px; height: 22px; }   /* v120：随按钮 ×1.5（原 15） */
@media (max-width: 900px) {
  .case-slide { flex: 0 0 100%; }
  .case-slide__photos { grid-auto-rows: clamp(140px, 24vw, 200px); }
  #casePrevBtn { left: 8px; }
  #caseNextBtn { right: 8px; }
}

/* ==========================================================================
   v109：技术服务板块（重做）——黑底 · 右上橙块标题（紧贴上一板块下沿）· 衬线巨字 · 引导文 · 3图网格
   标题样式 .tech-service__chip 与 .section-chip 通用（同 C 任务统一样式）
   ========================================================================== */
.tech-service {
  background: #111010;
  /* padding-top: 0 → 紧贴上一板块（gallery）下沿；下方留白给下一个板块 */
  padding: 0 var(--pad-x) clamp(80px, 11vh, 140px);
  color: var(--cream);
  position: relative;
  /* v110：text-align:center 让 chip 水平居中到竖线左侧可用宽度中心（v109 是 right） */
  text-align: center;
}
.tech-service__chip,
/* v109：通用章节标题 chip（橙色圆角块 + 汉字 + 英文，英文左右对齐汉字）
   v110：跨边界——margin-top 负值让 chip 上移半个高度到上一板块（米色↔黑色衔接处）
   v113：高度 ×0.8（80→64，定高+flex 居中）；字色黑（站点暖黑 #191613）
   v114：宽度统一为「解决方案」标准的 200px；zh line-height 1.45 修复文字贴顶
   （衬线字体 ink 超出行盒 ~9px，1.1 行高 + justify-content:center 视觉偏上 11px、汉字顶溢出 5px） */
.section-chip {
  display: inline-flex;
  flex-direction: column;
  align-items: stretch;
  justify-content: center;       /* v113：定高后内容垂直居中 */
  background: var(--accent);
  color: #191613;                /* v113：白 → 黑（站点暖黑） */
  padding: 5.5px 32px 0;         /* v113：上下 padding 归零，高度由 height 控制；v114：top 5.5px 修正视觉居中（zh/en ink 底部余量不对称，实测偏上 5.6px） */
  height: 64px;                  /* v113：80 × 0.8 */
  width: 200px;                  /* v114：统一 =「解决方案 SOLUTIONS」宽度 */
  border-radius: 0 0 14px 14px;
  margin-top: -45px;             /* v110：chip 上移到上一板块底部 */
  text-align: center;
}
.tech-service__chip-zh,
.section-chip__zh {
  font-family: var(--font-sans);
  font-size: 26.4px;             /* v113：22 × 1.2 */
  line-height: 1.45;             /* v114：容纳衬线 ink 高度（38px），修复文字贴顶/溢出 */
  font-weight: 700;
  letter-spacing: 0.15em;
  text-align: center;
  margin-bottom: 6px;
}
.tech-service__chip-en,
.section-chip__en {
  font-family: var(--font-mono);
  font-size: 13.2px;             /* v113：11 × 1.2 */
  line-height: 1.1;              /* v113：压缩行高适配 64px 定高 */
  font-weight: 500;
  letter-spacing: 0.45em;
  /* v109：让英文左右对齐汉字——width:100% 让英文盒宽 = 汉字盒宽 */
  display: block;
  width: 100%;
  text-align: center;
  /* 补偿 letter-spacing 让视觉对齐 */
  padding-left: 0.45em;
  opacity: .92;
}
/* v114：宽度统一 200px（内容区 136px）后，长英文按字符数缩小字距避免换行
   —— PRODUCT SYSTEM 14 字符：0.14em（14×7.92+13×1.85 ≈ 135 ≤ 136）
      TECH SERVICE 12 字符：0.26em（12×7.92+11×3.43 ≈ 132 ≤ 136）
      SOLUTIONS 8 字符：0.45em 保持不变 */
.products__section-header:not(.interlude__header) .section-chip__en {
  letter-spacing: 0.12em;
  padding-left: 0.12em;
}
.tech-service__chip-en {
  letter-spacing: 0.24em;
  padding-left: 0.24em;
}
.tech-service__body {
  /* v119：grid 改 3 等分（与下方 .tech-service__gallery 同构）——
     slogan 落列1 与图1 左对齐、desc 落列2-4 与图2 左对齐（用户要求）；
     整体左移 2.5CM（margin-left 在居中位置基础上 -2.5cm，max(0px,...) 防窄屏溢出）
     v120：列宽/gap 公式化 ×0.8——图缩 0.8 倍、左右位置不变、间距均分增加（与 gallery 严格同构保对齐） */
  --tg: clamp(20px, 2vw, 36px);
  display: grid;
  gap: calc(10% + 0.8 * var(--tg));
  grid-template-columns: repeat(3, calc((80% - 1.6 * var(--tg)) / 3));
  padding: clamp(60px, 9vh, 120px) 0;
  max-width: var(--max-w);
  margin: 0 auto 0 max(0px, calc((100% - var(--max-w)) / 2 - 2.5cm));
  align-items: start;
}
.tech-service__slogan {
  grid-column: 1;                /* v119：列1 = 图1 左对齐 */
  /* v120：字体字号与 interlude__title（"每一次锻打…"）保持一致（用户要求） */
  font-family: var(--font-sans);
  font-weight: 700;
  font-size: clamp(30px, 3.8vw, 56px);
  line-height: 1.1;
  letter-spacing: -0.026em;
  color: var(--cream);
  margin: 0 0 0 2.5cm;            /* v210：右移 1CM；v212：再右移 1.5cm（共 2.5cm） */
  text-align: left;
}
.tech-service__slogan span {
  display: block;
}
.tech-service__slogan-accent {
  color: var(--accent-bright);
}
.tech-service__desc {
  grid-column: 2 / 4;            /* v119：列2-4 = 图2 左对齐 */
  /* v120：字体字号与 interlude__sub 保持一致（用户要求）；文字左对齐
     v121：左移 3CM + 与 slogan 底对齐 + 按用户断点 3 行（字典 \n + pre-line） */
  font-size: 0.9062rem;
  line-height: 1.85;
  color: rgba(246, 241, 233, .8);
  margin: 0 0 0 -3cm;
  text-align: left;
  align-self: end;               /* v121：底对齐 slogan（列内最高元素） */
  white-space: pre-line;         /* v121：字典里的 \n 生效为手动换行 */
  max-width: 560px;              /* v121：行1/2 约 30 字 ×14.5px ≈ 440px，留余量防自动再断行 */
}
.tech-service__gallery {
  /* v120：图 ×0.8、左右位置不变、省出宽度均分给 2 个间距——
     列宽 = (80%W - 1.6g)/3、gap = 10%W + 0.8g（W=容器宽，g=原 gap），与 body 严格同构 */
  --tg: clamp(20px, 2vw, 36px);
  display: grid;
  gap: calc(10% + 0.8 * var(--tg));
  grid-template-columns: repeat(3, calc((80% - 1.6 * var(--tg)) / 3));
  max-width: var(--max-w);
  /* v119：与 body 同步左移 2.5CM（同一公式，保证图1 与 slogan、图2 与 desc 左缘对齐） */
  margin: 0 auto 0 max(0px, calc((100% - var(--max-w)) / 2 - 2.5cm));
}
.tech-service__img {
  margin: 0;
  aspect-ratio: 1 / 1;           /* v118：4/5 → 1/1 正方形（用户要求"以原本的正方形出现"） */
  border-radius: 12px;           /* v119：5px → 12px（用户要求 12 度圆角） */
  overflow: hidden;
  background: var(--bg-3);
  /* v109：继承新阴影规则 */
  box-shadow:
    0 10px 22px -6px rgba(0, 0, 0, .42),
    0 22px 44px -12px rgba(0, 0, 0, .28);
  transition: transform .3s ease, box-shadow .3s ease;
}
.tech-service__img:hover {
  transform: translateY(-6px) scale(1.03);
  box-shadow:
    0 18px 32px -8px rgba(0, 0, 0, .5),
    0 32px 60px -16px rgba(0, 0, 0, .38);
}
/* v210：三张照片向中心靠拢 1.5CM（原 v121 为 0.5CM）——首图右移、末图左移（中图不动）；
   hover 态需复合 translateX，否则被覆盖 */
/* v212：图1 右移 0.7cm（1.5→2.2）、图3 左移 0.7cm（-1.5→-2.2） */
.tech-service__img:first-child { transform: translateX(2.2cm); }
.tech-service__img:last-child { transform: translateX(-2.2cm); }
.tech-service__img:first-child:hover { transform: translateX(2.2cm) translateY(-6px) scale(1.03); }
.tech-service__img:last-child:hover { transform: translateX(-2.2cm) translateY(-6px) scale(1.03); }
.tech-service__img img {
  /* v119：向内裁切 2MM——img 四边各外扩 2mm 再负 margin 拉回，边缘 2mm 内容被裁掉
     （max-width:none 豁免全局 img{max-width:100%} 的钳制，否则外扩失效） */
  width: calc(100% + 4mm); height: calc(100% + 4mm);
  max-width: none; max-height: none;
  margin: -2mm;
  object-fit: cover;
  display: block;
}

/* ==========================================================================
   v120：售后服务板块（恢复旧版 + 新参考图：米色底 · 橙色 lead 两行 · 2×2 图文项 · 图带橙色衬底）
   ========================================================================== */
.aftersale {
  background: #EFEAE1;
  padding: clamp(80px, 11vh, 140px) var(--pad-x);
  position: relative;              /* v210：服务项目 rail-side 标题的定位上下文 */
}
.aftersale__inner { max-width: var(--max-w); margin: 0 auto; }
.aftersale__lead {
  color: var(--accent);
  font-size: clamp(17px, 1.5vw, 21px);
  font-weight: 400;                                /* v212：改细字体（原 700） */
  line-height: 1.75;
  margin: 0 0 clamp(48px, 6vh, 80px) .5cm;         /* v212：右移 0.5cm */
  /* v122：字典 \n 断行（行2 = "用工匠精神…"） */
  white-space: pre-line;
}
.aftersale__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  /* v122：图放大 2.5 倍后压缩列间距给文字留宽 */
  gap: clamp(48px, 6vh, 80px) clamp(24px, 2.5vw, 48px);
}
.aftersale__item {
  display: flex;
  gap: clamp(16px, 1.4vw, 24px);
  align-items: flex-start;       /* v124：回退 v123 居中，改回顶部对齐 */
  min-width: 0;                  /* v122：grid item 允许收缩（否则内容 min-content 撑破列宽溢出竖线） */
}
.aftersale__pic {
  position: relative;
  flex: none;
  /* v122：图放大 2.5 倍（原 clamp(96,8.5vw,128)）+ 统一正方形裁切 */
  width: clamp(220px, 16.7vw, 320px);
}
.aftersale__pic img {
  width: 100%;
  aspect-ratio: 1 / 1;           /* v122：统一大小正方形 */
  object-fit: cover;
  display: block;
}
.aftersale__txt {
  flex: 1;
  min-width: 0;                  /* v122：允许收缩——图 ×2.5 后保证 item 不溢出竖线（硬约束） */
  margin-top: 1.5cm;             /* v127：四段文案一起下降 1.5CM */
}
.aftersale__txt h4 {
  font-size: clamp(19px, 1.7vw, 24px);
  font-weight: 700;
  color: #191613;
  margin: 0 0 4px;
}
.aftersale__en {
  display: block;
  color: var(--accent);
  font-family: var(--font-sans);
  font-weight: 700;
  font-size: clamp(14px, 1.25vw, 17px);
  line-height: 1.3;
  margin-bottom: 10px;
  overflow-wrap: break-word;     /* v122：长英文副题可断行 */
}
.aftersale__txt p {
  font-size: clamp(13.5px, 1.1vw, 15.5px);
  line-height: 1.8;
  color: rgba(25, 22, 19, .82);
  margin: 0;
  max-width: 15em;               /* v122：单行约 15 字换行（用户要求） */
}

/* ==========================================================================
   数据与荣誉
   ========================================================================== */
.honors {
  padding: var(--pad-y) var(--pad-x);
  /* v210：去除专业团队与资质证书之间的横线（原 border-top 已删） */
  max-width: var(--max-w);
  margin: 0 auto;
}
.honors__title {
  font-family: var(--font-sans);
  font-size: clamp(20px, 2.2vw, 30px); font-weight: 500;
  letter-spacing: -0.018em;
  line-height: 1.4;
  max-width: 820px;
  margin-bottom: 4.375rem;
  color: var(--cream);
}
.honors__quote {
  color: var(--accent-bright);
  font-family: var(--font-sans);
  font-weight: 800;
  font-style: italic;
  font-size: 1.35em;
  line-height: 0;
  vertical-align: -0.18em;
  margin: 0 0.18em 0 0;
  letter-spacing: -0.02em;
  display: inline-block;
  transform: translateY(-0.05em);
}
/* ============================================================
   v181 资质证书翻动轮播（米色画布 + 仿 team 标题块贴竖线右侧）
   ============================================================ */
.honors__case {
  position: relative;
  background: #EFEAE1;
  color: #191613;            /* v181 fix：米色画布 + 深色字（honors 黑色板块默认 cream 字必须改）*/
  margin-left: calc(50% - 50vw);   /* v181 fix：突破 .honors max-width:1400，让米色画布贯通 viewport 全宽 */
  margin-right: calc(50% - 50vw);
  margin-bottom: clamp(80px, 10vh, 120px);
  padding: clamp(64px, 8vh, 110px) var(--pad-x) clamp(64px, 8vh, 110px);
  border-top: none;                                 /* v207：去掉引言上方黑线（画布顶 border-top） */
  border-bottom: 1px solid rgba(25, 22, 19, .12);
  overflow: hidden;
}
.honors__carousel {
  position: relative;
  width: 100%;
  height: 420px;          /* v182：整体缩小 (480→420) */
  perspective: 1200px;
  isolation: isolate;
}
.honors__track {
  position: absolute;
  inset: 0;
}
.hcard {
  position: absolute;
  top: 8px; left: 50%;
  width: 240px;           /* v182：缩小 (280→240) */
  height: 360px;          /* v182：缩小 (420→360) */
  margin-left: -120px;
  background: #fff;
  border-radius: 14px;
  overflow: hidden;
  box-shadow:
    0 18px 40px rgba(25, 22, 19, .14),
    0 4px 12px rgba(25, 22, 19, .08);
  transition:
    transform .55s cubic-bezier(.34, 1.2, .64, 1),
    opacity .45s ease,
    box-shadow .45s ease,
    filter .35s ease;
  will-change: transform, opacity;
}
.hcard img {
  width: 100%; height: 100%;
  object-fit: contain;            /* v182：cover→contain（让横版 A3 完整显示） */
  object-position: center center;
  display: block;
  padding: 10px;                 /* v182：contain 模式下给图片留 padding 让 letterbox 居中好看 */
  background: linear-gradient(180deg, #F4F0E8 0%, #E3DCD0 100%);
  transition: transform .45s ease, filter .35s ease;   /* v182：hover 放大动效承载在 img */
}
.hcard__caption {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  padding: 18px 22px 16px;       /* v182：缩小卡后 caption padding 略减 */
  background: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,.78) 78%);
  color: #fff;
}
.hcard__name {
  font-size: 13.5px;
  font-weight: 500;
  letter-spacing: .02em;
  margin-bottom: 5px;
}
.hcard__no {
  font-size: 11px;
  opacity: .72;
  letter-spacing: .04em;
}
/* 5 张位置（中心 + 左右各 2）—— 按 240 宽调整偏移 */
.hcard[data-pos="0"]  { transform: translateX(0)      scale(1);   opacity: 1;    z-index: 3; box-shadow: 0 26px 60px rgba(25,22,19,.22), 0 6px 14px rgba(25,22,19,.12); }
.hcard[data-pos="-1"] { transform: translateX(-100%)  scale(.86); opacity: .65;  z-index: 2; }
.hcard[data-pos="1"]  { transform: translateX(100%)   scale(.86); opacity: .65;  z-index: 2; }
.hcard[data-pos="-2"] { transform: translateX(-200%)  scale(.72); opacity: .32;  z-index: 1; }
.hcard[data-pos="2"]  { transform: translateX(200%)   scale(.72); opacity: .32;  z-index: 1; }
.hcard[data-pos="3"], .hcard[data-pos="-3"],
.hcard[data-pos="4"], .hcard[data-pos="-4"] {
  transform: translateX(0) scale(.5);
  opacity: 0;
  pointer-events: none;
}
/* v182：hover 放大动效（图片放大 + drop-shadow，不破坏 hcard 自身的 translate 位置） */
.hcard { cursor: pointer; }
.hcard:hover { filter: drop-shadow(0 22px 48px rgba(25,22,19,.32)); z-index: 5; }
.hcard:hover img { transform: scale(1.08); filter: brightness(1.05) saturate(1.06); }
/* v182：横版图（如 A3 证书 680×491）—— 让图片完整显示上下 letterbox 居中 */
.hcard--landscape { background: linear-gradient(180deg, #F4F0E8 0%, #E3DCD0 100%); }
.hcard--landscape img {
  padding: 8px;
  object-position: center 52%;          /* 偏上让证书标题区不被 caption 遮挡 */
}
/* 左右翻页按钮 */
.honors__nav {
  position: absolute;
  top: 50%; transform: translateY(-50%);
  width: 48px; height: 48px;           /* v182：略缩小 (52→48) */
  border-radius: 50%;
  border: none;
  background: rgba(25, 22, 19, .72);
  backdrop-filter: blur(10px);
  color: #fff;
  font-size: 22px;
  line-height: 1;
  cursor: pointer;
  z-index: 6;
  display: flex; align-items: center; justify-content: center;
  transition: background .25s ease, transform .25s ease;
}
.honors__nav:hover { background: rgba(25, 22, 19, .94); transform: translateY(-50%) scale(1.08); }
.honors__nav:active { transform: translateY(-50%) scale(.95); }
.honors__nav:focus-visible { outline: 2px solid var(--accent-bright); outline-offset: 3px; }
/* v182：翻页按钮左移（用户反馈"右边的翻页键碰到线了"）*/
.honors__nav--prev { left: 9%; }       /* 4%→9% */
.honors__nav--next { right: 14%; }     /* 4%→14% 远离 rail */
/* 标题块（贴竖线右侧） */
.honors__case-zh {
  font-family: var(--font-serif);
  font-size: clamp(26px, 2.8vw, 36px);
  font-weight: 700;
  color: #191613;
  letter-spacing: -.01em;
  line-height: 1.1;
}
.honors__case-en {
  display: inline-block;
  margin-top: 14px;
  font-family: var(--font-mono);
  font-size: 13.2px;
  letter-spacing: .18em;
  color: var(--accent-bright);
}
/* v207：honors 资质证书英文去横线 + 与汉字中心对齐（aside 改 center，en 居中于 zh 中心） */
.honors__case-side {
  position: absolute;
  display: flex; flex-direction: column;
  align-items: center;                              /* v207：与汉字中心对齐 */
  text-align: center;                                /* v207：zh 文字居中于 aside */
  white-space: nowrap;
  z-index: 5;
}
/* 窄屏：标题块回文档流 */
@media (max-width: 1100px) {
  .honors__case-side {
    position: static;
    align-items: center;
    text-align: center;
    margin-top: 32px;
    padding-top: 24px;
    border-top: 1px solid rgba(25, 22, 19, .15);
  }
  /* v207：窄屏 honors 资质证书（英文横线已并入基础规则去除） */
  .honors__nav--prev { left: 2%; }
  .honors__nav--next { right: 2%; }
}
.stats {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 0;
  border-top: 1px solid var(--line);
  margin-bottom: 5.625rem;
}
.stat { padding: 32px 26px 28px 0; border-right: 1px solid var(--line-soft); padding-left: 26px; }
.stat:first-child { padding-left: 0; }
.stat:last-child { border-right: none; }
.stat__num {
  font-family: var(--font-sans);
  font-size: clamp(40px, 3.8vw, 60px); font-weight: 700;
  letter-spacing: -0.028em;
  line-height: 1;
  margin-bottom: 0.875rem;
  color: var(--cream);
}
.stat__suffix { color: var(--accent-bright); font-size: .55em; vertical-align: .45em; }
.stat__label { font-size: 0.625rem; letter-spacing: .16em; text-transform: uppercase; color: var(--ink-faint); }

/* ============================================================
   v192：引言 + 数据 + 证书墙合并米色画布排版
   ============================================================ */
.honors { padding-top: 0; padding-bottom: 0; }        /* 引言/数据已入画布，去掉上下暗色空带 */
.honors__case { margin-bottom: 0; }                   /* 画布直接衔接下方 contact 暗色板块 */
.honors__case .honors__head {
  text-align: center;
  padding-top: clamp(56px, 7vh, 88px);
}
/* v199：引言+数据 同行（引言 3 行左对齐 + 5 组数字右对齐），右缘由 JS 限宽 ≤ railLeft 不压线 */
.honors__case .honors__intro {
  display: flex;
  align-items: center;
  gap: clamp(32px, 4vw, 64px);
  padding-top: clamp(56px, 7vh, 88px);
  margin-bottom: 4rem;
}
.honors__case .honors__title {
  flex: 0 0 auto;
  text-align: left;                                 /* v199：左对齐（v207 维持） */
  max-width: 420px;
  color: #191613;
  font-size: clamp(13px, 1.27vw, 18px);   /* v212：字号缩小 1/3（原 clamp(19,1.9vw,27)） */
  line-height: 1.5;
  margin: 0;
  text-indent: -0.5em;                              /* v207：首行悬挂缩进 0.5 字符 */
}
/* v207：米色画布内引号改为超粗黑体（sans 900 非斜体）；v214：team 标题引号同款 */
.honors__case .honors__quote,
.team__heading .honors__quote {
  font-family: var(--font-sans);
  font-weight: 900;
  font-style: normal;
  color: var(--accent-bright);
  font-size: 1.35em;
  line-height: 0;
  vertical-align: -0.18em;
  margin: 0 0.18em 0 0;
  letter-spacing: -0.02em;
  display: inline-block;
  transform: translateY(-0.05em);
}
.honors__case .stats {
  flex: 1;
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  border-top: none;                                 /* v199：去掉数字上下的横线（border-top/bottom） */
  border-bottom: none;
  margin-bottom: 0;
}
.honors__case .stat { border-right-color: rgba(25, 22, 19, .14); }
.honors__case .stat__num { color: #191613; }
.honors__case .stat__suffix { color: var(--accent); }
.honors__case .stat__label { color: rgba(25, 22, 19, .58); }

.cert-grid {
  display: grid;
  grid-template-columns: 1fr 1fr 1.2fr;
  gap: 1.375rem;
}
.cert-grid--3 { grid-template-columns: repeat(3, 1fr); }
.cert-grid--4 { grid-template-columns: repeat(4, 1fr); }
.cert {
  background: var(--bg-2);
  border: 1px solid var(--line);
  border-radius: 16px;
  padding: 1.5rem;
  display: flex; flex-direction: column; gap: 0.5rem;
}
.cert img {
  width: 100%; height: 240px; object-fit: contain;
  border-radius: 8px;
  background: var(--bg-3);
}
.cert__name { font-size: 0.6875rem; letter-spacing: .12em; text-transform: uppercase; color: var(--ink-soft); }
.cert__no { font-size: 0.625rem; color: var(--ink-faint); }
.cert--text { justify-content: center; }
.cert__tags { display: flex; flex-wrap: wrap; gap: 0.75rem; align-content: center; }
.cert__tags span {
  font-family: var(--font-sans); font-size: 0.875rem; font-weight: 600;
  border: 1px solid var(--line);
  border-radius: 999px;
  padding: 0.625rem 1.125rem;
  color: var(--ink-soft);
  transition: border-color .3s ease, color .3s ease;
}
.cert__tags span:hover { border-color: var(--accent); color: var(--accent-bright); }

/* 荣誉证书轮播（v186：去文字说明 + 放大 + 自动循环 + 圆点翻页） */
.cert-rail {
  display: flex;
  overflow: hidden;            /* v186：滚动条 → 隐藏溢出，由轨道平移翻页 */
  padding: 28px 12px;          /* v189：上下留弹起空间，防 hover 放大被裁切 */
}
.cert-track {
  display: flex;
  gap: 1.5rem;
  flex: 0 0 auto;
  align-items: center;
  animation: cert-marquee linear infinite;   /* v191：匀速线性整体慢移（速度由 JS 按组宽换算） */
  animation-duration: 70s;
  will-change: transform;
}
@keyframes cert-marquee {
  from { transform: translateX(0); }
  to   { transform: translateX(calc(-1 * var(--marquee-w, 4126px))); }
}
.cert-track.is-paused { animation-play-state: paused; }
/* v189：统一尺寸——竖版 A3 为基准 200 宽、照片高 270（微调比例后一致），
   横版高新技术企业 = 2 倍宽（414≈200×2+gap14 视觉），高度相同 */
.cert-thumb {
  flex: 0 0 auto;
  width: 200px;
  background: #fff;
  border: none;
  border-radius: 20px;
  padding: 10px;
  box-shadow: 0 10px 28px rgba(25, 22, 19, .10);
  transition: transform .4s cubic-bezier(.34, 1.56, .64, 1), box-shadow .4s ease;
}
.cert-thumb:hover {
  transform: translateY(-14px) scale(1.07);   /* v189：弹起放大更强烈 */
  box-shadow:
    0 34px 64px rgba(25, 22, 19, .30),
    0 10px 24px rgba(25, 22, 19, .14);        /* v189：投影随动效加深变远 */
  z-index: 5;
  position: relative;
}
.cert-thumb img {
  width: 100%;
  height: 270px;               /* v189：统一高度（横版=竖版高度），object-fit 微调比例 */
  object-fit: fill;
  display: block;
  border-radius: 12px;
  background: transparent;
}
/* 横版高新技术企业证书 = 竖版 2 倍宽，高度相同 */
.cert-thumb--wide { width: 414px; }
/* v189：逐张无缝循环轮播（圆点翻页已移除） */

/* ============================================================
   v190：证书点击放大 lightbox（约 3 倍，max-width/max-height 封顶不超屏）
   ============================================================ */
.cert-lightbox {
  position: fixed;
  inset: 0;
  z-index: 999;
  background: rgba(20, 16, 12, .78);
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  pointer-events: none;
  cursor: zoom-out;
  transition: opacity .3s ease;
}
.cert-lightbox.is-open {
  opacity: 1;
  pointer-events: auto;
}
.cert-lightbox__card {
  margin: 0;
  background: #fff;
  border-radius: 24px;
  padding: 24px;
  box-shadow: 0 40px 90px rgba(0, 0, 0, .42);
  transform: scale(.92);
  transition: transform .32s cubic-bezier(.34, 1.56, .64, 1);
}
.cert-lightbox.is-open .cert-lightbox__card { transform: scale(1); }
.cert-lightbox__card img {
  display: block;
  width: auto;
  height: auto;
  max-width: 648px;    /* 竖版 3 倍（216×3） */
  max-height: 80vh;    /* 横版由高度封顶，保证不超屏 */
}

/* 荣誉区块二级标题 */
.cert-section { margin-top: 0; }
.cert-section__head {
  display: flex; align-items: center; gap: 0.625rem;
  margin-bottom: 1.375rem;
}

/* ============================================================
   v184：cert-rail 移入米色画布（.honors__case）—— 浅底深字适配
   ============================================================ */
.honors__case .cert-section__head .mono-tag {
  color: rgba(25, 22, 19, .72);            /* 米色画布内 mono-tag 用深色 */
}
/* v189：卡片投影已并入基础 .cert-thumb 规则（避免覆盖 hover 投影） */

/* 专利列表 */
.patent-list {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.125rem;
}
.patent-item {
  display: flex; align-items: flex-start; gap: 1.125rem;
  background: var(--bg-2);
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 1.375rem 1.625rem;
}
.patent-item__no {
  font-family: var(--font-mono); font-size: 0.8125rem; font-weight: 700;
  color: var(--accent-bright);
  padding-top: 0.1875rem; flex: none;
  letter-spacing: .08em;
}
.patent-item__name {
  font-family: var(--font-sans); font-size: 1rem; font-weight: 600;
  letter-spacing: -0.006em;
  line-height: 1.4;
  color: var(--cream);
  margin-bottom: 0.375rem;
}
.patent-item__status {
  font-family: var(--font-mono); font-size: 0.6875rem;
  letter-spacing: .08em;
  color: var(--ink-faint);
}

/* ==========================================================================
   新闻资讯：全宽视频横幅 · 4 等分单元格（v129 按用户示意图）
   ========================================================================== */
.news { border-top: 1px solid var(--line); }
.news__stage {
  position: relative;
  width: 100%;
  aspect-ratio: 2 / 1;
  max-height: 78vh;
  overflow: hidden;
}
.news__video {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
}
.news__shade {
  position: absolute; inset: 0;
  background: rgba(0, 0, 0, .3);   /* 黑色叠加 30% */
}
.news__cells {
  position: absolute; inset: 0;
  display: grid;
  grid-template-columns: repeat(6, 1fr);   /* v152：4 → 6 块 */
}
.news__cell {
  position: relative;
  display: block;
  text-decoration: none;
  transition: background-color .35s ease, box-shadow .25s ease;   /* v154：hover 联动橙块平滑过渡 */
}
.news__cell--line { border-left: 1px solid rgba(244, 240, 232, .55); }   /* v155：线再细一点（2px→1px）、颜色灰一点（白→浅灰） */
.news__cell--accent { background: rgba(255, 106, 26, .6); }              /* v156：默认 accent 类已不在 HTML 中使用，保留以兼容其它样式 */
.news__cell.is-hovered { background: rgba(255, 106, 26, .6); }   /* v156：去掉 box-shadow inset 白线，hover 只加橙底不附带白线 */
.news.is-hovering .news__cell--line:not(.is-hovered) { border-left-color: transparent; }   /* v154：hover 时静态白线临时降透明防双线重叠 */
.news__no {
  position: absolute; top: clamp(18px, 2.2vw, 34px); right: clamp(18px, 2.2vw, 34px);
  font-family: var(--font-sans);
  font-size: clamp(20px, 2vw, 40px); font-weight: 300;   /* v134：细无衬线 + 缩小 */
  letter-spacing: .04em;
  line-height: 1;
  color: #fff;
}
.news__txt {
  position: absolute; left: clamp(18px, 2vw, 34px); bottom: clamp(28px, 3.6vw, 58px);
  right: clamp(12px, 1.4vw, 24px);   /* v152：6 块下加右边距避免长俄/英词溢出撞隔壁 */
  display: flex; flex-direction: column; gap: .4rem;
  color: #fff;
}
.news__name {
  font-family: var(--font-sans);                         /* v134：细无衬线 */
  font-size: clamp(17px, 1.9vw, 34px); font-weight: 300; /* v152：4→6 块后缩小避免换行 */
  letter-spacing: .04em;
  line-height: 1.2;
}
.news__sub {
  font-family: var(--font-sans);                         /* v134：细无衬线 */
  font-size: clamp(11px, 1.1vw, 20px); font-weight: 300;  /* v152：缩小 */
  letter-spacing: .04em;
  color: rgba(255, 255, 255, .85);
}
@media (max-width: 900px) {
  .news__cells { grid-template-columns: repeat(2, 1fr); }
  .news__cell { min-height: 230px; }
  .news__cell--line { border-left: none; border-top: 1px solid rgba(244, 240, 232, .55); }   /* v155：统一灰细 */
  .news__cell--accent { border-top: 1px solid rgba(244, 240, 232, .55); }   /* v155：第 4 块 accent 窄屏也用灰细顶线区分 */
}

/* ==========================================================================
   文章列表（米色板块）v145：5 行 · 6 条线 · 弹出米色 modal
   ========================================================================== */
.articles { background: #EFEAE1; padding: clamp(60px, 8vh, 120px) 0; color: #191613; position: relative; }   /* v212：relative 供 rail-side 标题定位 */
.articles__inner { max-width: var(--max-w); margin: 0 auto; padding: 0 var(--pad-x); transform: translateX(-2cm); }   /* v148：整体左移 2cm（transform 不影响布局测量，JS 可正确锁右缘 1.5cm） */
.articles__head { margin-bottom: 2.5rem; }
.articles__title { font-family: var(--font-sans); font-size: clamp(22px, 2.4vw, 34px); font-weight: 600; letter-spacing: -0.018em; line-height: 1.3; margin: 1rem 0 .75rem; color: #191613; }
.articles__lead { font-size: clamp(14px, 1.1vw, 16px); line-height: 1.7; color: rgba(25, 22, 19, .72); margin: 0; max-width: 720px; }
.articles__list { display: flex; flex-direction: column; }
.article-row {
  display: flex; align-items: center; gap: clamp(20px, 1.8vw, 32px);
  padding: clamp(24px, 2.6vw, 40px) 0;
  border-top: 1px solid rgba(25, 22, 19, .18);
}
.article-row:last-child { border-bottom: 1px solid rgba(25, 22, 19, .18); }   /* 6 条线（5 行首尾都有） */
.article-row__pic {
  flex: 0 0 auto;
  width: clamp(180px, 16vw, 240px);
  aspect-ratio: 16 / 9;   /* v147：横长比例 */
  background:
    radial-gradient(120% 120% at 80% 20%, rgba(217, 84, 26, .15), transparent 60%),
    linear-gradient(160deg, #DAD3C7, #B8B0A2);
  border: 1px solid rgba(25, 22, 19, .12);
  border-radius: 8px;
  display: flex; align-items: flex-end; justify-content: flex-start;
  padding: 10px;
  text-decoration: none;
}
.article-row__ph { font-family: var(--font-mono); font-size: .65rem; letter-spacing: .16em; color: rgba(25, 22, 19, .5); }
/* v219：列表缩略图换真实封面（480×270 16:9 裁切版）；底部渐变保证 INSIGHT 标签可读 */
.article-row__pic { position: relative; overflow: hidden; }
.article-row__pic img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.article-row__pic::after { content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 42%; background: linear-gradient(transparent, rgba(0, 0, 0, .38)); pointer-events: none; }
.article-row__pic .article-row__ph { position: relative; z-index: 2; color: rgba(255, 255, 255, .88); }
/* v250：正文配图缩半 + 居中（原通栏 100% 过大） */
.articles-modal__body img { display: block; width: 50%; height: auto; border-radius: 8px; margin: 24px auto; }
.article-row__body { flex: 1; min-width: 0; }
.article-row__meta { display: flex; align-items: center; gap: .75rem; margin-bottom: .5rem; flex-wrap: wrap; }
.article-row__date { font-family: var(--font-mono); font-size: .72rem; letter-spacing: .1em; color: rgba(25, 22, 19, .55); }
.article-row__tag { font-family: var(--font-sans); font-size: .7rem; font-weight: 600; letter-spacing: .06em; color: #D9541A; border: 1px solid rgba(25, 22, 19, .15); border-radius: 999px; padding: .2rem .65rem; background: rgba(255, 255, 255, .4); }
.article-row__title { font-family: var(--font-sans); font-size: clamp(17px, 1.5vw, 22px); font-weight: 600; line-height: 1.4; letter-spacing: -0.01em; color: #191613; margin: 0 0 .5rem; cursor: pointer; transition: color .2s ease; }   /* v148：标题可点 */
.article-row__title:hover { color: #D9541A; }
.article-row__desc { font-size: clamp(13px, 1.05vw, 15px); line-height: 1.75; color: rgba(25, 22, 19, .7); margin: 0; max-width: 720px; cursor: pointer; transition: color .2s ease; }   /* v148：正文可点 */
.article-row__desc:hover { color: #191613; }
.article-row__more {
  flex: 0 0 auto;
  width: 50px; height: 50px;   /* v147：略缩，更紧凑 */
  display: flex; align-items: center; justify-content: center;
  background: #fff;
  border: 1px solid rgba(25, 22, 19, .12);
  border-radius: 8px;
  color: #191613;
  cursor: pointer;
  transition: background .2s ease, color .2s ease, transform .2s ease, border-color .2s ease;
}
.article-row__more:hover { background: #191613; color: #fff; border-color: #191613; transform: translateX(-3px); }
.article-row__more svg { display: block; }

/* 文章 modal */
.articles-modal {
  position: fixed; inset: 0;
  z-index: 1000;
  display: flex; align-items: stretch; justify-content: stretch;
}
.articles-modal[hidden] { display: none; }
.articles-modal__shade { position: absolute; inset: 0; background: rgba(0, 0, 0, .45); }
.articles-modal__panel {
  position: relative;
  margin: 4vh 4vw;
  background: #EFEAE1;
  border-radius: 12px;
  box-shadow: 0 30px 80px rgba(0, 0, 0, .35);
  overflow: auto;
  color: #191613;
  padding: clamp(40px, 6vh, 80px) clamp(40px, 5vw, 96px) clamp(60px, 8vh, 100px);
}
.articles-modal__close {
  position: sticky; top: 0; float: right;
  width: 44px; height: 44px;
  display: flex; align-items: center; justify-content: center;
  background: #fff; border: 1px solid rgba(25, 22, 19, .12); border-radius: 999px;
  color: #191613; cursor: pointer; margin-left: auto;
  z-index: 1;
}
.articles-modal__close:hover { background: #191613; color: #fff; }
.articles-modal__body { max-width: 820px; margin: 0 auto; clear: both; }
.article-full__meta { display: flex; gap: .75rem; margin-bottom: 1.5rem; color: rgba(25, 22, 19, .55); font-family: var(--font-mono); font-size: .78rem; letter-spacing: .12em; text-transform: uppercase; }
.article-full__tag { color: #D9541A; }
.article-full__title { font-family: var(--font-sans); font-size: clamp(24px, 3vw, 40px); font-weight: 700; line-height: 1.3; margin: 0 0 2rem; color: #191613; }
.article-full__content { font-size: clamp(15px, 1.1vw, 17px); line-height: 1.9; color: #191613; }
.article-full__content p { margin: 0 0 1em; }
/* v250：正文段落阅读优化——body 全部以 h4 包段落，抵消 UA 标题样式（粗黑大字），
   恢复常规正文字重，并按中文文章惯例首行缩进两字 */
.article-full__content h4 {
  font-size: inherit;
  font-weight: 400;
  font-family: inherit;
  line-height: inherit;
  color: inherit;
  margin: 0 0 1em;
  text-indent: 2em;
}
.article-full__content > p { text-indent: 2em; }
.article-full__content h2, .article-full__content h3 { font-family: var(--font-sans); font-weight: 600; margin: 2em 0 .8em; color: #191613; }

/* ==========================================================================
   联系
   ========================================================================== */
/* v131：售后板块在 ≤1366 全部单列——WorkBuddy 预览面板/小屏不再被挤成"竖排" */
@media (max-width: 1366px) {
  .aftersale__grid { grid-template-columns: 1fr; gap: 48px; }
}
/* ============================================================
   v195：contact 板块完全重排——三列布局（左标题+按钮 / 中联系行 / 右大标题+二维码）+ 底部橙色条带
   ============================================================ */
.contact {
  display: grid;
  grid-template-columns: 0.74fr 1fr;    /* v206：两列（QR 列改绝对定位不再占 grid）——标题 10 字 430 ≤ col1 494、信息文字 27px×15.5em=419+图标 57 ≤ col2 668 全单行 */
  grid-template-rows: auto auto auto 1fr;       /* v203：前 3 行紧凑、末行吸收剩余空间（QR 列跨 1/-1 仍贴板块底跨边界） */
  gap: 0 clamp(32px, 4vw, 64px);
  padding: clamp(56px, 7vh, 96px) var(--pad-x) 0;   /* v202：恢复正常顶部留白（v200 的 80-100 为负 margin 服务已撤） */
  border-top: 1px solid var(--line);
  max-width: var(--max-w);
  margin: 0 auto;
  position: relative;
  min-height: clamp(500px, 62vh, 700px);
  z-index: 2;
}
.contact__col { display: flex; flex-direction: column; }
/* v202：col--info 仍用 display:contents 让 company/address/phone/email 直接进 grid；
   col--hero 恢复普通块（标题+按钮纵排，参考图布局） */
.contact__col--info {
  grid-column: 2; grid-row: 1 / -1;             /* v209：改普通块占 col2（弃 contents），便于 JS 限宽横线不超 rail */
  display: flex; flex-direction: column;
}
.contact__col--hero {
  grid-column: 1;
  grid-row: 1 / -1;
  padding-top: .7cm;                 /* v212：标题+按钮整体下移 0.7cm */
}
.contact__col--side {
  position: absolute;                          /* v206：QR 改绝对定位贴板块底（不再占 grid 列），img 中心仍精确落在黑/橙交界 */
  right: var(--pad-x);
  bottom: 0;
  align-items: center;
}

/* 左列：标题 + 按钮（v202 参考图：按钮紧随标题下方 ~30px） */
.contact__title {
  font-family: var(--font-sans);
  font-weight: 500;
  font-size: clamp(24px, 2.2vw, 43px);       /* v205：字号放大（32 → 43，+1/3） */
  line-height: 1.28;                           /* v202：参考图行距紧凑（原 1.45） */
  letter-spacing: -0.01em;
  color: var(--cream);
  margin: 0;
}
.contact__title em {
  font-style: normal;
  color: var(--accent);                         /* v195：下半句橙色 */
}
.contact__btn {
  align-self: flex-start;
  margin-top: clamp(22px, 2.8vw, 54px);        /* v202：标题→按钮间距 ~30px@1080 比例 */
  display: inline-flex; align-items: center; gap: 8px;   /* v205：整体放大 1/3 */
  padding: clamp(9px, 0.63vw, 12px) clamp(16px, 1.13vw, 21px);
  background: #fff;
  color: #191613;
  border-radius: 999px;
  font-family: var(--font-sans);
  font-size: clamp(14px, 0.9vw, 17px); font-weight: 500;   /* v205：17px（原 13）→ 按钮 1920 实测 ≈135×52 */
  text-decoration: none;
  transition: transform .35s var(--spring-soft), background .25s ease;
}
.contact__btn:hover { transform: translateY(-2px); background: #EFEAE1; }
.contact__btn svg { width: 14px; height: 14px; transition: transform .35s var(--spring-soft); }  /* v205：箭头随按钮放大 1/3 */
.contact__btn:hover svg { transform: translateX(4px); }

/* 中列：联系信息（图标 + 文本）——v202 按参考图：公司名大字距、信息行缩小、圆形描边图标 */
.contact-info__company {
  text-align: left;
  font-family: var(--font-sans);
  font-size: clamp(13px, 1.04vw, 20px);             /* v205：公司名缩小 1/3（30 → 20） */
  font-weight: 500;
  color: var(--cream);
  letter-spacing: .1em;                            /* v202：参考图公司名有明显字间距 */
  padding: clamp(8px, 0.8vw, 15px) 0;                  /* v203：行距收紧（原 12-26）；v212 左 padding 由 JS 对齐「陕」字 */
  align-self: stretch;                                 /* v209：横线统一撑满 info 列宽（右缘由 JS 限 ≤ railLeft-24） */
  position: relative;                                  /* v212：横线改 ::after 绘制（缩短 1/3） */
  border-bottom: none;
}
/* v212：横线缩短 1/3（用 ::after 画线，文字宽度不变） */
.contact-info__company::after,
.contact-info__row::after {
  content: '';
  position: absolute;
  left: 0; bottom: 0;
  width: 66.7%; height: 1px;
  background: var(--line-soft);
}
.contact-info__row {
  display: flex; align-items: center; gap: clamp(10px, 0.75vw, 14px);  /* v212：图标与文字垂直居中对齐（原 flex-start） */
  padding: clamp(9px, 0.9vw, 17px) 0;                  /* v203：行距收紧（原 14-33） */
  align-self: stretch;                                 /* v209：同上，横线统一宽度 */
  position: relative;                                  /* v212：横线 ::after 定位 */
  border-bottom: none;                                 /* v212：改 ::after 画线 */
  font-size: clamp(14px, 0.95vw, 18px);               /* v209：信息文字统一缩小（原 22-27 过大），中文地址与拉丁电话/邮箱视觉更协调 */
  line-height: 1.6;
  color: var(--cream);
}
.contact-info__row--address { align-items: flex-start; }   /* v212：地址两行保持顶部对齐 */
.contact-info__icon {
  flex: 0 0 auto;
  width: 2.1em; height: 2.1em;                       /* v202：圆形描边图标（参考图） */
  padding: .5em;
  box-sizing: border-box;
  border: 1px solid rgba(255, 248, 239, .38);
  border-radius: 50%;
  margin-top: 0;                                     /* v212：居中对齐后不需要顶部偏移 */
  color: rgba(255, 248, 239, .85);
}
.contact-info__row--address .contact-info__icon { margin-top: .2em; }   /* v212：地址行（顶部对齐）保留图标微降 */
.contact-info__text { color: var(--cream); }
.contact-info__link {
  color: var(--cream);
  text-decoration: none;
  transition: color .25s ease;
}
.contact-info__link:hover { color: var(--accent-bright); }

/* 右列：大标题 + 二维码 */
.contact__side-zh {
  font-family: var(--font-sans);
  font-size: clamp(24px, 2.2vw, 32px);
  font-weight: 500;
  color: var(--cream);
  letter-spacing: .02em;
}
.contact__side-en {
  display: block;
  margin-top: 10px;
  font-size: 0.7rem;
  letter-spacing: .18em;
  color: var(--accent);
}
.contact__qrs {
  display: flex;
  gap: 12px;
  margin-top: auto;                              /* v195：二维码贴右列底部 */
  padding-top: 1.5rem;
}

/* v195 沿用：无白底二维码 */
.contact-qr { background: transparent; padding: 0; display: flex; flex-direction: column; align-items: center; gap: 8px; }
.contact-qr img { width: 88px; height: 88px; object-fit: contain; }
.contact-qr figcaption { font-size: 0.5625rem; letter-spacing: .14em; text-transform: uppercase; color: rgba(255, 248, 239, .75); }

/* ============================================================
   v197：rail-side 标题「联系我们」（绝对定位贴 .hero__rail 右侧）
   仿 .honors__case-side / .team__title-side 范式：left/top 由 JS 写，
   字号对齐资质证书标题（clamp 28-36，weight 700），深底上用 cream 色
   ============================================================ */
.contact__rail-title {
  position: absolute;
  display: flex; flex-direction: column;
  align-items: flex-start;
  text-align: left;
  white-space: nowrap;
  z-index: 5;
}
.contact__rail-title-zh {
  font-family: var(--font-serif);
  font-size: clamp(28px, 2.8vw, 36px);
  font-weight: 700;
  color: var(--cream);
  letter-spacing: -.01em;
  line-height: 1.1;
}
.contact__rail-title-en {
  display: inline-block;
  margin-top: 14px;
  padding-left: 2px;
  font-family: var(--font-mono);
  font-size: 13.2px;
  letter-spacing: .18em;
  color: var(--accent-bright);
}
/* v207：contact 英文去掉前置 24px 橙横线（与其他 rail-title 统一去横线） */

/* v197：col--side 现承载 2 个二维码（从底部 strip 移入） */
.contact__side-qrs {
  display: flex;
  gap: 18px;
  margin-top: auto;                              /* 贴右列底部（呼应旧 .contact__qrs 范式） */
  padding-top: 1.5rem;
  position: relative;                            /* v198：建立独立层级，跨边界时浮于 .contact__strip 之上 */
  z-index: 10;
  transform: translateY(71px);                   /* v248：标签移到码下方后 img 上移了标签高+gap≈26px，45+26=71 维持 img 中心=黑/橙交界（QR 90px） */
}
.side-qr {
  /* v248：column-reverse→column——标签移到二维码下方（DOM 仍 img 在前）；
     img 不再贴容器底（下方多出标签高+gap≈26px），由下方 translateY 补偿重对齐 */
  display: flex; flex-direction: column; align-items: center;
  gap: 6px;
  background: transparent;
  padding: 0;
  margin: 0;
}
.side-qr img {
  width: 90px; height: 90px;                          /* v199：QR 放大 70→90px（仍 < 2cm 视觉） */
  object-fit: contain;
  background: transparent;
  padding: 0;
  border-radius: 0;
  display: block;
  /* v203：恢复完整二维码（v200 的 clip-path 裁切已撤销） */
}
.side-qr figcaption {
  font-size: 0.8rem;                                  /* v199：放大 0.5625→0.8rem */
  font-family: var(--font-sans);                      /* v199：改用黑体（sans）替代 mono */
  font-weight: 500;
  letter-spacing: .12em;
  color: rgba(255, 248, 239, .85);
  text-transform: none;                               /* v199：去掉大写，保留中文/英文混排自然 */
}

/* v196：页面最底部贯通全宽的橙色条带——文字居中 + 右侧两个跨黑/橙边界二维码 */
.contact__strip {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--accent);
  color: #FFF8EF;
  text-align: center;
  padding: 27px var(--pad-x);                    /* v204：条带再加高 5px（v201 基础上 24.5→27，上下各 +2.5px） */
  font-size: 0.75rem;
  letter-spacing: .22em;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  margin-top: -1px;                                  /* 紧贴页脚（无暗色缝隙） */
  z-index: 1;                                        /* v198：低于 .contact(z-index:2)，让跨边界 QR 浮于条带之上 */
}
.contact__strip-text { white-space: nowrap; }
.contact__strip-qrs {
  position: absolute;
  right: clamp(24px, 4vw, 80px);
  top: 0;
  transform: translateY(-50%);                       /* v196：QR 垂直居中于黑/橙分界线 */
  display: flex;
  gap: 18px;
}
.strip-qr {
  display: flex; flex-direction: column; align-items: center;
  gap: 6px;
  background: transparent;
  padding: 0;
  margin: 0;
}
.strip-qr img {
  width: 70px; height: 70px;                        /* v196：< 2cm（2cm ≈ 76px） */
  object-fit: contain;
  background: transparent;
  padding: 0;
  border-radius: 0;
  display: block;
}
.strip-qr figcaption {
  font-size: 0.5625rem;
  letter-spacing: .14em;
  color: #FFF8EF;
  font-family: var(--font-mono);
  text-transform: uppercase;
}

/* ============================================================
   v193：contact 二维码并排（无白底卡片，直接置于深色背景上）
   ============================================================ */
.contact-qr-row {
  display: flex;
  gap: 2rem;
  margin-top: 8px;
}
.contact-qr {
  background: transparent;
  border-radius: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
}
.contact-qr img {
  width: 104px;
  height: 104px;
  object-fit: contain;
}
.contact-qr figcaption {
  font-size: 0.625rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: rgba(255, 248, 239, .75);
}

/* ==========================================================================
   页脚：整版锻造橙 + 沙丘波浪
   ========================================================================== */
.footer {
  position: relative;
  background: var(--accent);
  color: #FFF8EF;
  margin-top: -1px;
}
/* v196：删除页脚顶部异形橙色波浪 */
/*
.footer__wave {
  position: absolute; top: -89px; left: 0; right: 0;
  height: 90px;
  color: var(--bg);
  pointer-events: none;
}
.footer__wave svg { width: 100%; height: 100%; display: block; }
*/

.footer__inner {
  max-width: var(--max-w);
  margin: 0 auto;
  padding: 46px var(--pad-x) 22px;                       /* v193：压缩橙色底高度（约 4-5cm） */
  display: flex;
  align-items: center;
  gap: clamp(1.5rem, 3vw, 3rem);
}
.footer__logo { width: 40px; height: 40px; object-fit: contain; }
.footer__col--brand { display: flex; align-items: center; gap: 12px; }
.footer__brand-wrap { display: flex; flex-direction: column; gap: 4px; }
.footer__brand {
  font-family: var(--font-sans);
  font-size: clamp(20px, 1.8vw, 26px); font-weight: 700;
  letter-spacing: -0.018em;
  line-height: 1;
}
.footer__brand-sub {
  font-size: 0.5625rem; letter-spacing: .22em;
  color: rgba(255, 248, 239, .7);
}
.footer__col--links {
  display: flex; flex-direction: row;                     /* v193：导航横向排列，与沐程重工同一行 */
  flex-wrap: wrap;
  gap: clamp(1rem, 2.2vw, 2.25rem);
  align-items: center;
}
.footer__col--links a {
  font-family: var(--font-mono); font-size: 0.75rem;
  letter-spacing: .12em; text-transform: uppercase;
  color: #FFF8EF;
  transition: opacity .3s ease, transform .45s var(--spring-soft);
}
.footer__col--links a:hover { transform: translateY(-2px); opacity: .8; }
.footer__col--power { margin-left: auto; display: flex; justify-content: flex-end; align-items: center; }
.footer__power {
  font-family: 'STXingkai', 'Xingkai SC', 'KaiTi', '楷体', 'STKaiti', 'Ma Shan Zheng', cursive;   /* v193：手写体 */
  font-style: italic;
  font-size: clamp(20px, 2vw, 30px); font-weight: 400;
  letter-spacing: .02em;
  line-height: 1.1;
  color: #FFF8EF;
}
.footer__bottom {
  max-width: var(--max-w);
  margin: 0 auto;
  padding: 16px var(--pad-x) 20px;
  border-top: 0.0625rem solid rgba(255, 248, 239, .25);
  display: flex; justify-content: space-between; flex-wrap: wrap; gap: 0.625rem;
  font-size: 0.625rem; letter-spacing: .1em;
  color: rgba(255, 248, 239, .75);
}

/* ==========================================================================
   全站橙色鼠标跟随球（跟随鼠标移动，速度反馈大小）
   ========================================================================== */
.scroll-ball {
  position: fixed;
  left: 0;
  top: 0;
  z-index: 90;
  pointer-events: none;
  will-change: transform;
  transform: translate(-100px, -100px);
  /* v65：不再用 is-visible 门控 opacity —— 小球位置完全由 JS 控制，
     只要被 landAt 放到屏幕上就一定可见，避免任何环境漏看下坠球 */
  opacity: 1;
  transition: opacity .5s ease;
}
.scroll-ball.is-visible { opacity: 1; }
.scroll-ball__dot {
  width: 18px;
  height: 18px;
  margin: -9px 0 0 -9px;
  border-radius: 50%;
  background: var(--accent);
  box-shadow: 0 0 14px rgba(255, 106, 26, .6), 0 0 30px rgba(255, 106, 26, .28);
  will-change: transform;
  transform: scale(1);
}
.scroll-ball__dot.is-bounce {
  animation: ballBounce .7s var(--spring);
}
@keyframes ballBounce {
  0%   { transform: scale(1); }
  25%  { transform: scale(1.8); }
  55%  { transform: scale(.82); }
  100% { transform: scale(1); }
}

/* ==========================================================================
   响应式
   ========================================================================== */
/* v202：中屏（≤1500px）QR 列变窄——QR 缩至 74px，跨边界位移同步改半高 37px */
@media (max-width: 1500px) {
  .side-qr img { width: 74px; height: 74px; }
  .contact__side-qrs { gap: 12px; transform: translateY(63px); }  /* v248：37+26 标签下方补偿 */
}

@media (max-width: 1100px) {
  .step { grid-template-columns: 1fr; gap: 2.75rem; }
  .step--reverse .step__media { order: 0; }
  .stats { grid-template-columns: repeat(2, 1fr); }
  .stat { border-right: none; border-bottom: 1px solid var(--line-soft); padding-left: 0; }
  .gallery__grid { grid-template-columns: repeat(2, 1fr); }
  .cert-grid, .cert-grid--3, .cert-grid--4 { grid-template-columns: 1fr; }
  .product { grid-template-columns: 1fr; gap: 1.875rem; }
  .product--reverse .product__media { order: 0; }
  .patent-list { grid-template-columns: 1fr; }
  .contact { grid-template-columns: 1fr; grid-template-rows: auto; }   /* v199：窄屏单列、auto 行 */
  .contact { padding: clamp(48px, 7vh, 96px) var(--pad-x) 0; }          /* v200：窄屏恢复原 padding-top */
  .contact__col--hero { grid-column: 1; grid-row: auto; }               /* v202：窄屏回文档流 */
  .contact__col--info { grid-column: 1; grid-row: auto; }               /* v209：窄屏 info 列回单列 */
  .contact__col--side { grid-column: 1; grid-row: auto; }            /* v199：QRs 不再跨边界 */
  .contact__col--hero .contact__btn { margin-top: clamp(20px, 3vh, 32px); }  /* v202：窄屏按钮间距收紧 */
  .contact__title { font-size: clamp(20px, 3.6vw, 28px); }               /* v202：窄屏标题缩放（v203 同步 -1/3） */
  .contact-info__company { font-size: clamp(16px, 3vw, 24px); }        /* v202：窄屏公司名缩放 */
  .contact-info__row { font-size: clamp(13px, 2.2vw, 17px); }          /* v202：窄屏信息行缩放 */
  .contact__col--side { position: static; grid-column: 1; grid-row: auto; }  /* v206：窄屏 QR 恢复文档流 */
  .contact__col--side .contact__side-qrs { transform: none; }          /* v199：窄屏取消 35px 跨边界位移 */
  /* v197：窄屏 — rail-title 回到文档流居中 */
  .contact__rail-title {
    position: static;
    align-items: center;
    text-align: center;
    margin-top: clamp(24px, 3vh, 40px);
    padding-top: clamp(20px, 2.5vh, 32px);
    border-top: 1px solid rgba(255, 248, 239, .15);
  }
  /* v207：窄屏 — rail-title 回到文档流居中（contact 英文横线已并入基础规则去除） */
  .footer__inner { flex-direction: column; align-items: flex-start; gap: 1.25rem; }
  .footer__col--power { margin-left: 0; justify-content: flex-start; }
  .nav__menu { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
}

/* ==========================================================================
   关于我们（v157）· 4 子分类：发展历程 / 专业团队 / 资质荣誉 / 联系我们
   - 顶部居中橙色"关于我们 About Us"标签
   - 发展历程段：左 intro+图片占位 / 右时间轴
   - 时间轴：通过 .hero__rail 全屏 fixed 渐变灰带充当；每条 .about__time 节点对齐到 railLeft
   - 入场动效：IntersectionObserver + stagger，从竖线向外 translateX(20px→0) 滑入 + opacity 0→1
   ========================================================================== */
.about { padding: clamp(80px, 10vh, 160px) 0 clamp(80px, 10vh, 160px); color: #fff; position: relative; }

/* v163：about-history 板块壳层 —— padding-top:0 让 chip 紧贴上一板块（news 米色底）下沿；
   chip 用 align-self:center 水平居中（不影响 intro/时间轴的左对齐文字） */
.about-history {
  padding: 0 var(--pad-x) clamp(80px, 10vh, 160px);
  color: #fff;
  position: relative;
}
.about-history .section-chip { align-self: center; margin-top: 0; }  /* v164：覆写全站 chip 的 -45px 悬挂 → chip 顶边平齐米色下沿 */

/* v165：about-history 双列布局 —— 左列 intro（文字+缩小图片位）/ 右列时间轴；
   chip 跨全行居中。#about（3 个占位段）不受影响，仍用 .about__inner 的 flex column */
.about-history .about__inner {
  display: grid;
  grid-template-columns: minmax(340px, 5fr) minmax(0, 6fr);
  column-gap: clamp(40px, 5vw, 90px);
  row-gap: clamp(50px, 6vh, 90px);
  align-items: start;
}
.about-history .section-chip { grid-column: 1 / -1; }

.about__inner {
  max-width: var(--max-w); margin: 0 auto; padding: 0 var(--pad-x);
  display: flex; flex-direction: column; gap: clamp(60px, 8vh, 120px);
  position: relative; z-index: 2;
}

.about__panel { display: grid; grid-template-columns: minmax(0, 1fr); gap: clamp(20px, 2.5vw, 36px); }
.about__panel-head { display: flex; align-items: baseline; gap: clamp(16px, 2vw, 32px); padding-bottom: clamp(20px, 2.5vh, 36px); border-bottom: 1px solid rgba(255,255,255,.08); }
.about__title {
  margin: 0; font-family: var(--font-sans);
  font-size: clamp(36px, 4vw, 64px); font-weight: 700; color: #fff; letter-spacing: -.01em; line-height: 1.05;
}
.about__title-en {
  font-family: var(--font-sans); font-size: clamp(10px, .9vw, 13px);
  color: rgba(255,255,255,.4); letter-spacing: .35em; text-transform: uppercase;
}

.about__intro { display: flex; flex-direction: column; gap: clamp(16px, 2vh, 28px); }
.about__intro-text {
  color: rgba(255,255,255,.7); font-size: clamp(13px, 1.05vw, 15.5px); line-height: 1.85;
  margin: 0;
}
.about__photo {
  width: 100%; aspect-ratio: 16 / 9;
  background:
    linear-gradient(135deg, rgba(255,106,26,.06) 0%, rgba(255,255,255,.02) 100%),
    linear-gradient(120deg, #1c1c1c 0%, #2a2a2a 100%);
  border: 1px solid rgba(255,255,255,.08);
  position: relative; overflow: hidden;
  display: grid; place-items: center;
  color: rgba(255,255,255,.22); font-family: var(--font-sans); letter-spacing: .4em; font-size: clamp(11px, .9vw, 13px);
}
/* v175：图片放大 1.5 倍（320→480px）；v175 左列加宽至 5fr 以容纳更大图片 */
/* v217：图片放大 480→540（上沿/左沿锚定，高度随 aspect-ratio 向下生长）；
   文字 max-width 与图片统一为 540 → 两者左右边缘严格对齐（flex column 同列同 max-width）；
   intro 定宽 540 溢出 grid 列约束（列仅 ~517/458px），列宽/时间轴/chip 均不受影响 */
.about-history .about__intro { width: 540px; }
.about-history .about__photo { max-width: 540px; aspect-ratio: 4 / 3; }
/* v217：图片上沿锚定改由 JS alignAboutPhoto 动态补偿（文字行数随视口/三语变化，CSS 分段无法覆盖） */
/* v216：占位 div 替换为真实图片（assets/img/about/PANA2064.jpg，1200px/85q 优化版） */
.about__photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
/* v175：intro 整体下移到时间轴第 3 条（2018）平行线；文字排成 3 行半 */
.about-history .about__intro { margin-top: 254.4px; }  /* v210：上移 2cm（原 330px - 75.6px） */
/* v217：文字拉宽至与图片同宽（540，窄视口取列宽），两端对齐、末行左对齐（justify 默认行为） */
.about-history .about__intro-text { max-width: 540px; text-align: justify; }
/* v212：文字上移 2cm（负 margin，不与 .reveal transform 冲突）；v213：文字再上移 1cm（共 -3cm）
   v215：图片负 margin 删除——flex 流中它会收掉文字↔图片间距导致重叠（间距=gap−56.7 为负），
   图片随文字在文档流中整体上移，间距恢复设计 gap（16-28px） */
.about-history .about__intro-text { margin-top: -3cm; }

/* 发展历程时间轴（v165 · 主轴 = .hero__rail 全屏右侧竖线；Z 字交错保留但改为单侧深浅）
   - 不再画中央轴（::before 隐藏），hero__rail 本身就是主轴
   - timeline 容器右缘由 JS 平移贴到 railLeft-5（alignAboutTimeline，见 main.js）
   - 每条 li 是 2 列 grid [内容 1fr] [dot 40px]，dot 落在容器右缘 = rail 上
   - about__time--right：content 紧贴 dot（贴 rail 侧），年份/文字右对齐
   - about__time--left ：content 靠 timeline 左缘（远离 rail），年份/文字左对齐
   - 入场动效：IntersectionObserver + stagger，从 rail 向外 translateX(20px→0) 滑入 */
.about-history .about__timeline { position: relative; width: 100%; padding: clamp(8px, 1.5vh, 24px) 0; will-change: transform; }
.about__times {
  position: relative;
  list-style: none; padding: 0; margin: 0;
  display: flex; flex-direction: column;
  gap: clamp(48px, 6vh, 96px);
  width: 100%;
}
.about__times::before { content: none; }   /* v165：中央轴弃用，主轴 = hero__rail */

.about__time {
  position: relative;
  display: block;
  width: 100%;
  /* v170：li 只做淡入；滑入位移移到 .about__content 上 —— dot 不随入场位移，
     任何时刻 dot 中心 = 容器右缘，JS 闭环测量永不被入场动画污染 */
  opacity: 0;
  transition: opacity .55s ease;
}
.about__time.is-in { opacity: 1; }
.about__content {
  display: flex; flex-direction: column;
  gap: clamp(8px, 1vh, 14px);
  max-width: clamp(260px, 20vw, 384px);   /* v167：加宽消孤字（@1920=384px ≈ 21 字/行，最长段 20 字可单行） */
  /* v173：更强弹出 —— 从下方上移 + 放大 + 回弹曲线；stagger 改由滚动驱动逐条触发，无需固定 delay */
  transform: translateY(36px) scale(.92);
  transition: transform .65s cubic-bezier(.34, 1.56, .64, 1);
}
.about__time.is-in .about__content { transform: translateY(0) scale(1); }

/* 内容盒：竖排（年份 大橙字 / 描述 白小字）
   v166：六条全部贴 rail 右对齐（用户确认 2015/2019/2022 也在竖线右侧）；
   宽度不够自然折行（max-width 收窄） */
.about__content {
  display: flex; flex-direction: column;
  gap: clamp(8px, 1vh, 14px);
  max-width: clamp(260px, 20vw, 384px);   /* v167：加宽消孤字（@1920=384px ≈ 21 字/行，最长段 20 字可单行） */
}
.about__time--right .about__content,
.about__time--left  .about__content {
  margin-left: auto;               /* content 紧贴 li 右缘 = rail 侧 */
  padding-right: clamp(26px, 2.6vw, 48px);  /* v169：整体左移、与线上的圆点拉开距离 */
  align-items: flex-end;
  text-align: right;
}

/* 橙色小圆点：绝对定位伸出容器右缘 -6px → dot 中心恰在容器右缘上；
   JS 平移后容器右缘 = railLeft → dot 中心正落在 hero__rail 上 */
/* 白色描边空心圆（v169）：16px 大圆套在竖线上，主轴线从圆心穿过；
   文案 padding-right 加大 → 年代+文案整体左移、离线更远 */
.about__dot {
  position: absolute;
  right: -8px;
  top: clamp(9px, 1.3vw, 20px);
  width: 16px; height: 16px;
  border-radius: 50%;
  background: transparent;
  border: 2px solid rgba(255, 255, 255, .92);
  box-shadow: none;
  z-index: 1;
}

/* 年份：橙色大号字（贴 rail 侧右对齐 / 靠左侧左对齐）· v200 缩小 1/3（原 clamp 28-52 → clamp 19-35） */
.about__year {
  font-family: var(--font-sans); font-weight: 700;
  font-size: clamp(19px, 2.3vw, 35px);
  color: rgba(255, 106, 26, 1);
  letter-spacing: -.02em; line-height: 1;
}
/* v173 原本：2009 的"00"/ 2022 的"22"使整体偏宽，单独缩小字号让六条年份视觉等宽；
   v200 同步等比缩小 */
.about__time[data-year="2009"] .about__year {
  font-size: calc(clamp(19px, 2.3vw, 35px) * 0.9);
}
.about__time[data-year="2022"] .about__year {
  font-size: calc(clamp(19px, 2.3vw, 35px) * 0.92);
}
.about__time--right .about__year,
.about__time--left  .about__year { text-align: right; }

/* v207：发展历程 2021/2022 两条描述字号微缩（v221：删除 white-space:nowrap / max-width:24em
   —— 俄语长句 nowrap 无法折行、向右溢出压到竖线上；恢复自然折行 = 用户要求的「折行增加一行」，
   中文段落长度仍在单行范围内，版面不变） */
.about__time[data-year="2021"] .about__desc,
.about__time[data-year="2022"] .about__desc {
  font-size: clamp(11px, 0.82vw, 13px);
  line-height: 1.55;
  overflow: visible;
}

/* 描述：白小字（与年份同一侧对齐） */
.about__desc {
  color: rgba(255, 255, 255, .82);
  font-size: clamp(13px, 1.05vw, 16px);
  line-height: 1.65;
}
.about__time--right .about__desc,
.about__time--left  .about__desc { text-align: right; }

/* 占位子分类（专业团队 / 资质荣誉 / 联系我们） */
.about__panel--placeholder .about__panel-body { padding: clamp(24px, 3vh, 48px) 0; }
.about__placeholder {
  color: rgba(255,255,255,.32); font-style: normal; letter-spacing: .25em;
  font-family: var(--font-sans);
}

/* 轻动效 reveal */
.reveal { opacity: 0; transform: translateY(16px); transition: opacity .7s ease, transform .7s cubic-bezier(.22,.8,.2,1); }
.reveal.is-in { opacity: 1; transform: none; }

/* 窄屏：发展历程双列改单列；timeline 紧凑 */
@media (max-width: 900px) {
  .about-history .about__inner { grid-template-columns: 1fr; }   /* v165：intro / timeline 上下堆叠 */
  .about-history .about__intro { width: auto; max-width: 100%; }  /* v217：撤销桌面端 540 定宽，防窄屏溢出 */
  .about__photo { aspect-ratio: 4 / 3; }
  .about__times { gap: clamp(28px, 4vh, 56px); }
  .about__time--right .about__content,
  .about__time--left  .about__content { margin-left: auto; margin-right: clamp(20px, 4vw, 40px); align-items: flex-end; text-align: right; }
  .about__dot { right: -4px; }
}

/* ==========================================================================
   专业团队 · 米色底板块（紧跟发展历程）+ 5 张圆角卡片 + 右侧标题贴 rail
   v180：板块独立为 .team（米色 #EFEAE1），标题/文字改深色，bio 末行左对齐，整体左移 2cm
   ========================================================================== */
.team {
  background: #EFEAE1;
  /* v212：整体下移 1.5cm（标题+5 人卡片，顶部 padding 增加） */
  padding: calc(clamp(80px, 10vh, 140px) + 1.5cm) 0 clamp(80px, 10vh, 140px);
  color: #191613;
  position: relative;
}
.team__inner {
  max-width: var(--max-w);
  margin: 0 auto;
  padding: 0 var(--pad-x);
}

.about__panel--team {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  /* 标题「专业团队」绝对定位到竖线右侧（左缘锚在竖线中心线上），
     由 JS alignTeamTitle() 校准 left/top，保证响应式正确 */
}

/* v180/v332：内容区在竖分割线左侧居中布局 */
.team__content { width: 100%; }
.team__content.reveal { transform: translateY(16px); }
.team__content.reveal.is-in { transform: none; }

/* 顶部标语：严格在竖分割线左侧内容区居中对齐，加大下方间距以使 logo 这一行下移 */
.team__heading {
  margin: 0 auto clamp(36px, 4.5vh, 56px);
  color: #191613;
  font-size: clamp(13px, 1.27vw, 18px);
  font-weight: 500;
  letter-spacing: normal;
  text-transform: none;
  line-height: 1.5;
  text-indent: 0;
  text-align: center;
  width: 100%;
}

/* ==========================================================================
   合作伙伴 LOGO 墙（单行无缝平滑无限滚动跑马灯 · 从右往左）
   视觉字号拉平 · 左右渐变羽化 · 悬停暂停
   ========================================================================== */
.clients-marquee {
  width: 100%;
  max-width: 100%;
  overflow: hidden;
  position: relative;
  padding: 16px 0;
  -webkit-mask-image: linear-gradient(to right, transparent 0%, black 5%, black 95%, transparent 100%);
  mask-image: linear-gradient(to right, transparent 0%, black 5%, black 95%, transparent 100%);
}

.clients-marquee__track {
  display: flex;
  align-items: center;
  width: max-content;
  animation: marqueeScrollLeft 32s linear infinite;
  will-change: transform;
}

.clients-marquee:hover .clients-marquee__track {
  animation-play-state: paused;
}

.clients-marquee__group {
  display: flex;
  align-items: center;
  flex-shrink: 0;
}

@keyframes marqueeScrollLeft {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(-50%);
  }
}

/* 无底框单体 LOGO 容器 */
.client-logo-unit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 6px clamp(18px, 2.2vw, 32px);
  background: transparent;
  border: none;
  border-radius: 8px;
  cursor: pointer;
  position: relative;
  flex-shrink: 0;
  transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1), filter 0.3s ease;
  user-select: none;
}

.client-logo-unit img {
  display: block;
  width: auto;
  object-fit: contain;
  transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1), filter 0.3s ease;
  filter: contrast(1.02);
}

/* 悬停微动效：LOGO 微微上浮并泛出专属动力橙温润柔光 */
.client-logo-unit:hover {
  transform: translateY(-3px);
}

.client-logo-unit:hover img {
  transform: scale(1.06);
  filter: drop-shadow(0 6px 14px rgba(255, 106, 26, 0.22)) drop-shadow(0 2px 5px rgba(0, 0, 0, 0.10));
}

/* 核心：按用户指令差异化调整 LOGO 尺寸
   - 保持不变：双环传动 (28px)、西北有色金属 (40px)、MAGNA (32px)
   - 放大：中国兵器装备 (38px)、金堆城钼业 (38px)
   - 尤其更大：中色东方 (56px)、中国兵器工业 (44px)、宝钛集团 (58px)、STAND (58px) */
/* 1. 麦格纳（保持不变）：高度 32px */
.unit-magna img {
  height: 32px;
  max-width: 160px;
}

/* 2. 中国兵器工业（尤其更大）：高度 44px */
.unit-xibei img {
  height: 44px;
  max-width: 340px;
}

/* 3. 宝钛集团（尤其更大）：高度 58px */
.unit-baotai img {
  height: 58px;
  max-width: 145px;
}

/* 4. 中国兵器装备（放大）：高度 38px */
.unit-jianshe img {
  height: 38px;
  max-width: 360px;
}

/* 5. 斯坦特生物 STAND（尤其更大）：高度 58px */
.unit-stand img {
  height: 58px;
  max-width: 65px;
}

/* 6. 金堆城钼业（放大）：高度 38px */
.unit-jinmu img {
  height: 38px;
  max-width: 300px;
}

/* 7. 双环传动（保持不变）：高度 28px */
.unit-shuanghuan img {
  height: 28px;
  max-width: 155px;
}

/* 8. 西北有色金属研究院（保持不变）：高度 40px */
.unit-nin img {
  height: 40px;
  max-width: 280px;
}

/* 9. 中色东方 / 金色东方（尤其更大）：高度 56px */
.unit-cnmc img {
  height: 56px;
  max-width: 235px;
}

/* 找相似按钮 */
.team__similar {
  display: none;
}

.team__title-side {
  position: absolute;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  text-align: left;
  white-space: nowrap;
}
/* v200：专业团队标题 · 字号/字重/位置对齐 .honors__case-zh / .contact__rail-title-zh（clamp 28-36 / weight 700） */
.team__title-zh {
  margin: 0;
  font-family: var(--font-serif);
  font-size: clamp(28px, 2.8vw, 36px);
  font-weight: 700;
  color: #191613;
  letter-spacing: -.01em;
  line-height: 1.1;
}
.team__title-en {
  display: inline-block;
  margin-top: 14px;
  padding-left: 2px;
  font-family: var(--font-mono);
  font-size: 13.2px;
  letter-spacing: .18em;
  color: var(--accent-bright);
  text-transform: none;                            /* v200：去掉大写以与其他标题 en 一致（实际文案已全大写无需 text-transform） */
  font-weight: 500;
}
/* v207：team 英文去掉前置 24px 橙横线（与 contact / honors 资质证书统一） */
/* 原 .team__title-en::before 规则已删除 */

/* 窄屏：标题下移到卡片下方居中；取消左移 2cm（窄屏空间不足） */
@media (max-width: 1100px) {
  .about__panel--team { margin-right: 0; grid-template-columns: 1fr; }
  .team__content,
  .team__content.reveal,
  .team__content.reveal.is-in { transform: none; }
  .team__title-side {
    position: static;
    left: auto;
    top: auto;
    align-items: center;
    text-align: center;
    margin-top: clamp(28px, 4vh, 48px);
    white-space: normal;
  }
  .team__cards { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
  .client-logo-unit {
    padding: 4px clamp(12px, 3vw, 18px);
  }
  .unit-magna img { height: 18px; }
  .unit-xibei img { height: 26px; }
  .unit-baotai img { height: 28px; }
  .unit-jianshe img { height: 24px; }
  .unit-stand img { height: 28px; }
  .unit-jinmu img { height: 24px; }
  .unit-shuanghuan img { height: 22px; }
  .unit-nin img { height: 25px; }
  .unit-cnmc img { height: 26px; }
}

/* ==========================================================================
   v220：竖线右侧标题统一规范（用户规则）
   - 字体/字号/距线距离全部一致（railRight + 24，JS fitRailSideText 统一适配）
   - 黑色背景用白色字，白色/米色背景用黑色字
   - 长单词先缩字母间距，仍超长再缩字号；多词断行分行
   ========================================================================== */
.team__title-zh, .honors__case-zh, .contact__rail-title-zh {
  font-family: var(--font-serif);
  font-size: clamp(22px, 1.9vw, 34px);
  font-weight: 700;
  letter-spacing: .06em;
}
/* gallery 深底（#111010）→ PROJECT CASE 主标题用奶油白 */
/* v221：分享交流画廊底为米色 #EFEAE1，标题恢复默认深字（原 cream 覆盖删除——米色底上白字看不清） */

/* ===================== v221：chip 拉丁标题适配 ===================== */
/* 拉丁大字单独占 chip 时：左右 padding 收窄（32→20px）给长标题让位；
   小字英文由 JS 隐藏；zh 的 margin-bottom 归零保持垂直居中 */
.chip--latin { padding-left: 20px; padding-right: 20px; }
.chip--latin .section-chip__zh,
.chip--latin .tech-service__chip-zh { margin-bottom: 0; }

/* ===================== v222 ===================== */
/* 产品体系主机对比图——与 .tech-service__img 等板块图片统一：投影 + 悬停浮起
   （只动卡片 frame，图内照片不单独缩放，遵守 v102 铁律） */
.products__compare .products__card,
.products__compare .products__card-media { border-radius: 12px; }
.products__compare .products__card {
  box-shadow:
    0 10px 22px -6px rgba(0, 0, 0, .42),
    0 22px 44px -12px rgba(0, 0, 0, .28);
  transition: transform .3s ease, box-shadow .3s ease;
}
.products__compare .products__card:hover {
  transform: translateY(-6px) scale(1.03);
  box-shadow:
    0 18px 32px -8px rgba(0, 0, 0, .5),
    0 32px 60px -16px rgba(0, 0, 0, .38);
}
/* v222.2：chip 拉丁单行模式顶部对齐 + JS 精确 paddingTop（垂直居中） */
.chip--latin { justify-content: flex-start; }

/* ===================== v229：MCX/MCK 主机图悬浮动效 =====================
   与主机对比图（v222）/tech-service 图片统一：投影加深 + 上浮放大。
   只动 figure frame，img 不单独变换（v102 铁律）。
   MCF 动图是 <video>（mcf_principle.mp4），用户要求排除，不加。
   注意：用独立属性 translate/scale（与 transform 叠加组合）而非 transform——
   MCK 图有 JS 写入的 inline translateX 对齐位移，:hover 的 transform 会被
   inline 样式压制不生效；就算生效也会顶掉对齐位移造成水平跳动。 */
.mcx-detail__media,
.mck-detail__media {
  transition: translate .3s ease, scale .3s ease, box-shadow .3s ease;
}
.mcx-detail__media:hover,
.mck-detail__media:hover {
  translate: 0 -6px;
  scale: 1.03;
  box-shadow:
    0 18px 32px -8px rgba(0, 0, 0, .5),
    0 32px 60px -16px rgba(0, 0, 0, .38);
}

/* ===================== v230：设备板块两图缩小 + 悬浮动效 =====================
   缩小：.equip__media 收窄到 90% 格内居中——不动 .equip__grid 几何
   （v95 的 JS 把网格右缘钉在竖线左 2cm，动网格会破坏对齐）。
   悬浮：同 v229 规格，用独立 translate/scale（叠加组合，不碰 transform）。
   .reveal 在外层 .equip__item 上，内层 media 无冲突。 */
.equip__media {
  width: 90%;
  margin: 0 auto;
  transition: translate .3s ease, scale .3s ease, box-shadow .3s ease;
}
.equip__media:hover {
  translate: 0 -6px;
  scale: 1.03;
  box-shadow:
    0 18px 32px -8px rgba(0, 0, 0, .5),
    0 32px 60px -16px rgba(0, 0, 0, .38);
}

/* ===================== v223：rail-side 标题修复 ===================== */
/* 这些容器贴竖线定位（left ≈ 容器右缘），CSS 收缩适配可用宽≈0 → 中文被压成一字一行；
   width:max-content 让容器按内容取宽，恢复单行 */
.case-side, .honors__case-side, .team__title-side, .contact__rail-title { width: max-content; }
/* 英文小字统一 = CONTACT US 规格（mono 13.2px / .18em / 橙色），宽度由 JS 对齐主字 */
.team__title-en, .honors__case-en {
  display: inline-block;
  margin-top: 14px;
  padding-left: 2px;
  font-family: var(--font-mono);
  font-size: 13.2px;
  letter-spacing: .18em;
  color: var(--accent-bright);
}
/* v225：英文小字新规格（mono 13.2px/.18em）仅 EN/RU 生效——中文版还原 v220 原值 */
.case-side__sub { font-size: clamp(10px, 0.85vw, 12.5px); letter-spacing: .22em; }
body.lang-en .case-side__sub, body.lang-ru .case-side__sub { font-size: 13.2px; letter-spacing: .18em; }
/* v225：中文版恢复标题下英文小字（i18n 总规则：中文标题=中文大字+下方英文小字；EN/RU 全篇无中文） */
/* v225：SHARING & EXCHANGE 字母间距缩小（仅中文版可见，en/ru 字典为空） */
.articles__side .case-side__sub { letter-spacing: .12em; }
/* v226：英文版隐藏标题下橙色小字——标题本身已是英文，小字完全重复（仅 EN，RU 不动） */
body.lang-en .team__title-en,
body.lang-en .honors__case-en,
body.lang-en .contact__rail-title-en,
body.lang-en .case-side__sub { display: none; }
/* v227：禁用浏览器滚动锚定补偿——底部图片晚加载/对齐链晚写布局时，
   Chrome 会自动调 scrollY 保锚点，用户看到"滚到底突然回弹"；本站自管布局，锚定只会帮倒忙。
   A/B 实测：开启时 EN 触底 100% 回弹 209px，关闭后完全稳定 */
html { overflow-anchor: none; }
@media (max-width: 1100px) {
  .articles__side, .case-side { width: auto; }
}
@media (max-width: 900px) {
  .contact__rail-title { width: auto; }
}


/* ===================== v242：竖线右侧系列标题统一宋体 + 去中文版橙色英文小字 =====================
   用户：主机对比图 / MCF / MCX / MCK 参数标题原为黑体（Inter/Noto Sans），与「关于我们/
   项目案例」等宋体标题不统一——统一改为同款思源宋体；
   下方橙色英文小字（MAIN MACHINE COMPARISON 等）仅中文版隐藏 */
.products__series-title,
.mcf-detail__label-zh {
  font-family: "Source Han Serif SC", "Source Han Serif CN", "Noto Serif SC", STZhongsong, SimSun, serif;
}
body.lang-zh .products__series-sub,
body.lang-zh .mcf-detail__label-en { display: none; }

/* ===================== v243：竖线右侧标题下橙色英文小字全部删除 =====================
   用户：项目案例/服务项目/分享交流/发展历程/专业团队/资质证书/联系我们
   7 个标题下的橙色英文小字（PROJECT CASE、OUR TEAM、CERTIFICATES 等）全部删掉。
   EN 已在 v226 隐藏，此处补齐 ZH/RU → 全语言清除（后置规则覆盖基础 display） */
.case-side__sub,
.team__title-en,
.honors__case-en,
.contact__rail-title-en { display: none; }

/* ===================== v245：竖线右侧 11 标题统一规格 + 中文版橙色英文小字回归 =====================
   用户要求：①去横线（v244 已删）②11 个标题统一字体（宋体 30px/700）
   ③中文版恢复橙色英文小字，宽度智能匹配汉字（JS fitRailTitleEn）：
   短→拉字距补齐；略长→缩字距压缩（下限 -2.5px/字符）；过长→限宽折行。
   EN/RU 不加小字（v243 隐藏继续生效）。 */
.products__series-title,
.mcf-detail__label-zh,
.case-side__main,
.team__title-zh,
.honors__case-zh,
.contact__rail-title-zh {
  font-family: "Source Han Serif SC", "Source Han Serif CN", "Noto Serif SC", STZhongsong, SimSun, serif;
  font-size: clamp(24px, 1.56vw, 30px);
  font-weight: 700;
  letter-spacing: .02em;
}
/* 中文版恢复英文小字（覆盖 v242/v243 的隐藏；EN/RU 保持隐藏） */
body.lang-zh .case-side__sub,
body.lang-zh .team__title-en,
body.lang-zh .honors__case-en,
body.lang-zh .contact__rail-title-en { display: inline-block; }
body.lang-zh .products__series-sub,
body.lang-zh .mcf-detail__label-en { display: block; }

/* ===================== v253：equip 标题与图片垂直中心对齐 =====================
   v230 把配图收窄到 90% 居中后，figcaption 仍贴 figure 左缘，视觉上偏在图片左下。
   让标题同宽 90% 居中 + 内容水平居中，移到图片正下方、与图片垂直中心线重合。 */
.equip__name { width: 90%; margin: 18px auto 0; justify-content: center; }

/* ==========================================================================
   v309 · 视觉重构层「热锻 · 精密」
   --------------------------------------------------------------------------
   只覆盖视觉：颜色 / 字体 / 材质 / 形状 / 动效。
   不触碰任何布局尺寸 —— 几何仍由上方 v1–v308 规则与 js/main.js 决定。
   位置：桌面规则之后、移动端媒体查询之前，故不影响 ≤900/≤768 既调优。
   ========================================================================== */

/* --------------------------------------------------------------------------
   1 · 全站基底：钢黑 + 米纸 + 行内文本缝合
   -------------------------------------------------------------------------- */
body {
  font-family: var(--font-sans);
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}
.mono, .mono-tag, .loader__sub, .stat__label, .article-row__date { font-family: var(--font-mono); }

/* 拉丁窄体「铭牌」族：凡是拉丁字母/数字担当主角的地方，一律换窄体 */
/* v322：.btn / .params__toggle-btn / .mcf-detail__btn / .contact__btn 移出本组 ——
   前两者是中文按钮文案（窄体对 CJK 无效，属无效声明），后两者按用户要求回退 v308 字体
   （v308 无 --font-display，全部用 --font-sans / inherit）。 */
.nav__menu, .nav__logo-text b, .nav__logo-text span,
.stat__num, .about__year, .news__no,
.products__series-sub, .mcf-detail__label-en,
.products__compare-foot span:last-child, .gallery__sub,
.article-row__tag, .article-row__more,
.section-chip__en, .tech-service__chip-en {
  font-family: var(--font-display);
}

/* 中文陈述句（大标题 / 引文 / 卡片标题）
   v321：用户要求「除竖线右侧标题与首页『专注精密锻造』外，其余宋体全换黑体」→ serif 改 sans。
   注意：本组是这些选择器**最后**一次声明字体，改这里才真正生效（前面的同名声明会被它覆盖）。 */
.products__title, .interlude__title, .tech-service__slogan,
.articles__title, .honors__title, .contact__title,
.mcf-detail__title, .aftersale__lead, .aftersale__txt h4,
.article-row__title, .team__name, .team__heading, .news__name {
  font-family: var(--font-sans);
}

/* --------------------------------------------------------------------------
   2 · 板块接缝：一条熔融热痕，替代原来的硬切
   -------------------------------------------------------------------------- */
.advantages, .equip, .interlude, .gallery, .aftersale, .news, .articles,
.about-history, .team, .contact, .tech-service,
.mcf-detail, .mcx-detail, .mck-detail {
  background-image: var(--heat);
  background-size: 100% 1px;
  background-position: 0 0;
  background-repeat: no-repeat;
}
.advantages { background-position: 0 100%; }
.products { border-top-color: transparent; }

/* --------------------------------------------------------------------------
   3 · 导航
   -------------------------------------------------------------------------- */
.nav__logo-text b {
  font-weight: 600;
  letter-spacing: .1em;
  color: var(--cream);
}
.nav__logo-text span {
  /* v316：用户要求「沐程重工」改粗黑体、视觉字高与 MUCHEN 一致（原 v309 是宋体细字，视觉高只有其约 6 成）。
     MUCHEN 为 Oswald 大写：cap-height ≈ 0.73em，fs 1.75rem(24.5px) → 视觉高 ≈ 17.9px；
     汉字字面 ≈ 0.92em → 所需 fs ≈ 17.9 / 0.92 ≈ 19.4px ≈ 1.39rem。 */
  font-family: var(--font-sans);
  font-size: 1.39rem;
  font-weight: 700;
  letter-spacing: .04em;
  color: var(--ink-soft);
}
.nav__menu { font-weight: 400; letter-spacing: .07em; }
.nav__menu a {
  color: rgba(244, 240, 232, .72);
  transition: color .3s ease;
}
.nav__menu a:hover, .nav__menu a.is-active { color: var(--cream); }
/* v310：菜单下划线恢复原样（1px 纯橙），保留原先自右向左展开的过渡动效 */
.nav__menu a::after {
  background-image: none;
  background-color: var(--accent);
  height: 1px;
}
/* v317：三语切换按钮恢复 v308 版式/动效（用户要求）——
   v309 在这里加的「方角 + 缩小字号 + 实底橙选中」整组覆盖删除，
   回落到基础规则（366 行起）：mono 胶囊 + is-active 橙色发光阴影 + 橙描边。 */
.search__btn { border-radius: 0; }
.search__btn:hover, .search.is-open .search__btn { background: rgba(255, 106, 26, .16); color: var(--accent-bright); }

/* --------------------------------------------------------------------------
   4 · Hero：热光 + 工程网格（保留原有实拍素材）
   -------------------------------------------------------------------------- */
.hero__bg {
  /* v317b：用户反馈「背景照片图怎么没有」——根因是 v309 把实拍压得比 v308 更暗
     （brightness .58→.50、grayscale .62→.74），叠加 .hero__tint 两层深色渐变后
     实测照片区亮度只有 ~34/255（v308 也仅 38），肉眼几乎读不出是照片。
     现在把照片层提亮（brightness .50→1.15、grayscale .74→.66、contrast 1.12→1.02），
     由 .hero__tint 负责压暗氛围（见下），实测照片区 ~82/255、纹理 std 8→13，照片清晰可读。 */
  filter: grayscale(.66) contrast(1.02) brightness(1.15);
}
/* 拉丝银光 → 工程图纸网格（1px 主格 96px + 细格 24px），中心放射渐隐
   v317：用户反馈「方格网纹太隐约」→ 线描边整体提亮约 1.7 倍（.13→.22 / .055→.105）
   v317b：配合照片提亮，网格再提一档（.22→.30 / .105→.15），保证压在照片上仍然清晰。 */
.hero__bg::before {
  background-image:
    linear-gradient(90deg, rgba(152, 172, 194, .30) 0, rgba(152, 172, 194, .30) 1px, transparent 1px),
    linear-gradient(180deg, rgba(152, 172, 194, .30) 0, rgba(152, 172, 194, .30) 1px, transparent 1px),
    linear-gradient(90deg, rgba(152, 172, 194, .15) 0, rgba(152, 172, 194, .15) 1px, transparent 1px),
    linear-gradient(180deg, rgba(152, 172, 194, .15) 0, rgba(152, 172, 194, .15) 1px, transparent 1px);
  background-size: 96px 96px, 96px 96px, 24px 24px, 24px 24px;
}
/* 热光晕：左侧炉口光 + 右下环境反光 */
.hero__bg::after {
  background-image:
    radial-gradient(ellipse 42% 50% at 13% 26%, rgba(255, 106, 26, .30) 0%, rgba(255, 106, 26, 0) 62%),
    radial-gradient(ellipse 58% 66% at 90% 64%, rgba(217, 84, 26, .24) 0%, rgba(217, 84, 26, 0) 64%),
    radial-gradient(ellipse 90% 34% at 30% 96%, rgba(255, 106, 26, .18) 0%, rgba(255, 106, 26, 0) 70%);
}
/* 入场闪光由"银"改"热" —— 炉门开启的瞬间 */
.hero__shine {
  background-image: radial-gradient(ellipse 72% 64% at 50% 38%,
    rgba(255, 240, 224, .90) 0%,
    rgba(255, 186, 122, .46) 30%,
    rgba(255, 106, 26, .16) 52%,
    rgba(255, 106, 26, 0) 74%);
}
.hero__tint {
  /* v317b：配合照片层提亮，压暗职责完全交到这里——
     顶部 .74→.66（保持导航与标题区压暗）、中部 .10→.06、底部 .82→.76；
     95° 横向渐变 .90→.80 / .18→.12（右半照片区放开，左侧仍保持深色托白字）。
     实测照片区亮度 ~82/255、标题区背景仍 ≤70，白字对比 >7:1。 */
  background-image:
    linear-gradient(180deg, rgba(17, 16, 16, .66) 0%, rgba(17, 16, 16, .06) 34%, rgba(17, 16, 16, .76) 100%),
    linear-gradient(95deg, rgba(17, 16, 16, .80) 0%, rgba(17, 16, 16, .12) 58%);
}
.hero__title span { font-weight: 700; color: #FBF7F0; }
/* v315：这里原来有一条「公司名改黑体 + 浅米色」的 .hero__title em 规则。
   em 现在承载 slogan 橙块（全局规则 = 橙底 + 深字），这条残留会把文字色覆盖回浅米色，
   变成「橙底浅字」、对比度崩掉，故整条移除。 */
.hero__sub { color: rgba(244, 240, 232, .78); }

/* --------------------------------------------------------------------------
   v318 · Hero 文字组合（按用户自己的排版稿 1053×516 逐项落规格）
   稿子给的是绝对尺寸，此时画布宽 1053 → 主标题 clamp(…, 5.3vw, …) ≈ 55.8px，于是：
     · 大标题   思源宋体 / 字距 200 → .2em（见上方基础规则）
     · 英文副标题 普惠体 Regular 17 / 字距 400 → 17 ÷ 55.8 = .305em、字距 .4em
     · 橙条     80 : 8（= 10 : 1）+ 混合模式差值
     · 公司名   普惠体 Regular 15.5 / 字距 60 / 行距 24
     · 宣言段   普惠体 Light 14 / 字距 60 / 行距 24
     · 胶囊     橙字 14 / 字距 120 / 橙描边 + 22% 橙填充
   为了让整套随视口一起缩放，把「14px @1053」抽象成一个驱动变量 --hero-meta
   （= 主标题字号 × 14/55.8 = .2509），其余按比例换算：
     公司名 15.5/14 = 1.107 · 英文副标题 17/14 = 1.214 · 橙条 80/14 × 8/14
   垂直间距取稿子实测（画布 1053）：英文副标题下缘→橙条 15px、橙条→公司名 20px、
   宣言末行→胶囊 33px。
   -------------------------------------------------------------------------- */
.hero__inner { --hero-meta: calc(clamp(3.2rem, 5.3vw, 6.3rem) * .2509); }
/* 橙条：80:8 + 差值混合（基础规则已改为文档流 + mix-blend-mode: difference）
   尺寸取用户稿实测：画布 1053 上橙条 81×9、主标题≈55.8px →
   相对 --hero-meta(=主标题×.2509=14) = 81/14=5.79em × 9/14=.643em（比例 9:1）
   上下边距同样按稿子实测（英文副标题墨迹下缘→橙条 15、橙条→公司名墨迹上缘 20）反推。 */
.hero__bar {
  font-size: var(--hero-meta);
  width: 5.79em;
  height: .579em;      /* 严格按用户口述的 80 : 8（= 10 : 1）；稿子实测 81×9 与此相差 1px 内 */
  margin: .95em 0 1.09em;
}
.hero__sub { font-size: var(--hero-meta); }
/* v319：公司名 15.5→14.5（小一号）＝ 14.5/14 = 1.0357；宣言 14→12（缩 2 号）＝ 12/14 = .857。
   行距保持用户稿的绝对值 24（= --hero-meta × 24/14 = 1.714），不随字号一起缩。 */
.hero__company {
  font-size: calc(var(--hero-meta) * 1.0357);
  letter-spacing: .06em;
  line-height: calc(var(--hero-meta) * 1.714);
}
.hero__manifesto {
  font-size: calc(var(--hero-meta) * .857);
  letter-spacing: .06em;
  line-height: calc(var(--hero-meta) * 1.714);
}
/* 胶囊：宣言末行之下「间距 2 行」→ 2 × 宣言行高(1.714em) = 3.43em
   （注意：必须用 var(--hero-meta) 计算，不能写 3.43em —— 该 em 会落到 .hero__eyebrow
    自身继承的 16px 上，而不是 hero-meta，间距会偏小） */
.hero__eyebrow { margin-top: calc(var(--hero-meta) * 3.43); }
.hero__eyebrow span {
  /* v320：用户要求「胶囊和它的外框统一缩小」→ 字号 ×.85。
     内边距(.54em/.72em)、字距(.12em) 都是 em 单位 → 跟着字号等比缩，
     外框(圆角 999px 自行贴合高度)随之整体缩小 15%。 */
  font-size: calc(var(--hero-meta) * .85);
  letter-spacing: .12em;
  padding: .54em .72em;
}
/* v318：中文胶囊保持单行（对应用户稿）；en/ru 的标语明显更长（俄语 834px > 容器 605px），
   允许折行，否则会溢出 hero。折行后 border-radius:999px 会把左右端收成半圆，仍是胶囊观感。 */
body:not(.lang-zh) .hero__eyebrow span { white-space: normal; }
/* v324：俄文标语折行 + 两端对齐（用户：「折成 2 行并且左右对齐，不要让这个条太长」）
   原状：inline-block 被容器挤到全宽 605，断成 564 + 53（第二行只剩 ковки 一个孤儿词）→ 横条太长。
   处方：
     ① max-width 用 em（= 胶囊自身字号 = --hero-meta × .85）→ 随视口等比缩放，
        断点在任何视口都稳定落在 «решений | в» 之间，同时避免俄语介词 в 悬在第一行行尾；
        21.84em ≈ 内容宽 330px @1440（box-sizing:border-box，含左右各 11.72 padding + 1px 描边）。
        330 必须落在 [321, 337.7) 区间：≥321 才容得下第一行「Поставщик комплексных решений」，
        <337.7 才不会把 «в» 吸上第一行。
     ② text-align: justify 两行都摊满；text-align-last: justify 让**最后一行**也两端对齐
        （默认最后一行会回落到左对齐）。 */
body.lang-ru .hero__eyebrow span {
  max-width: 21.84em;
  text-align: justify;
  text-align-last: justify;
}
/* 全站竖线：中性钢线；滑动光带改成"热痕" */
.hero__rail {
  background-image: linear-gradient(180deg,
    rgba(244, 240, 232, .018) 0%,
    rgba(244, 240, 232, .075) 50%,
    rgba(244, 240, 232, .022) 100%);
}
.hero__rail-band {
  background-image: linear-gradient(180deg,
    rgba(255, 106, 26, 0) 0%,
    rgba(255, 106, 26, .14) 26%,
    rgba(255, 138, 61, .62) 50%,
    rgba(255, 106, 26, .12) 78%,
    rgba(255, 106, 26, 0) 100%);
}
.hero__rail-dot {
  background: var(--accent);
  box-shadow: 0 0 0 1px rgba(255, 138, 61, .55), 0 0 12px rgba(255, 106, 26, .65), 0 0 30px rgba(255, 106, 26, .32);
}

/* --------------------------------------------------------------------------
   5 · 按钮：橙 = 可行动。全站只有按钮吃热橙渐变
   -------------------------------------------------------------------------- */
.btn {
  font-weight: 500;
  letter-spacing: .12em;
  text-transform: uppercase;
  border-radius: var(--r-pill);
}
/* v317：「探索沐程」按钮恢复 v308 颜色/样式/动效（用户要求）——
   v309 在这里加的「热橙渐变实底 + 位移扫光 hover」整组覆盖删除，
   回落到基础规则（142 行起）：奶油白胶囊，hover 时橙底 ::before 上拉 + 整体上浮 3px；
   hero 场景的箭头 hover 下移由 .hero__cta:hover svg（基础区）负责。 */
.btn:focus-visible { outline: 2px solid var(--accent-bright); outline-offset: 3px; }

/* --------------------------------------------------------------------------
   6 · 核心优势（米纸窄带）
   -------------------------------------------------------------------------- */
.advantages { border-top: none; }
.advantages::before {
  background-image: radial-gradient(circle, rgba(25, 22, 19, .07) 1px, transparent 1.4px);
  background-size: 22px 22px;
}
.advantage__icon { position: relative; color: var(--accent-deep); }
/* v321：用户要求去掉「经验丰富 / 技术支持 / 覆盖全国」标题前小图标的外框。
   原规则 = 图标外包一圈 1px 工程细框（.advantage__icon::before，inset -7px / 38×38，
   border 1px solid var(--line-paper)），整条删除。图标本体（26×26 SVG）不动。 */
.advantage__title {
  font-family: var(--font-sans);
  font-weight: 700;
  color: var(--ink-paper);
  letter-spacing: .02em;
}
.advantage__desc { color: var(--ink-paper-mid); }

/* --------------------------------------------------------------------------
   7 · 章节挂旗：恢复 v308 原样 —— 纯橙实底 + 下方圆角（上平下圆的"旗"）
   v310：撤销上一版"压平成方角 + 渐变 + 烫印高光"的改动（用户要求换回原来的下方圆角与观感）
   -------------------------------------------------------------------------- */
.section-chip, .tech-service__chip {
  border-radius: 0 0 14px 14px;
  background-image: none;
  background-color: var(--accent);
  box-shadow: none;
}
.section-chip__zh, .tech-service__chip-zh { color: #14100E; }
.section-chip__en, .tech-service__chip-en { color: rgba(20, 16, 14, .70); }

/* --------------------------------------------------------------------------
   8 · 图板：恢复照片本来的圆角与原生投影
   v310：撤销上一版加在照片上的「直角 + 白描边 + 四角工程标」
   （用户明确不接受照片外那圈正方形描边）；只保留深色钢板底，
   以免白底 CAD 图 / 原理视频在暗色页面上"裸奔"
   -------------------------------------------------------------------------- */
.products__card, .products__compare .products__card {
  background-image: var(--plate);
  background-color: transparent;
  border: none;
  box-shadow: none;
}
.products__card { padding: clamp(10px, 1vw, 18px); }
.products__compare .products__card:hover {
  box-shadow: 0 0 0 1px rgba(255, 106, 26, .5), 0 26px 54px -24px rgba(0, 0, 0, .9);
}
.products__card-media { background: #F2EDE4; }

/* 照片本体：恢复各自的原始圆角与阴影（贴回 v308 观感） */
.mcf-detail__media { background: #0C0C0E; border-radius: 14px; box-shadow: 0 24px 60px -24px rgba(23, 19, 14, .45); }
.mcx-detail__media, .mck-detail__media { border-radius: 14px; box-shadow: 0 24px 60px -24px rgba(23, 19, 14, .45); }
.interlude__video { background: #0C0C0E; border-radius: 14px; box-shadow: 0 24px 60px -24px rgba(0, 0, 0, .65); }
.equip__media { background: #0C0C0E; border-radius: 14px; box-shadow: 0 24px 60px -24px rgba(23, 19, 14, .45); }
.gallery__item img { border-radius: 14px; border: 1px solid var(--line-soft); }
.tech-service__img { border-radius: 12px; box-shadow: 0 10px 22px -6px rgba(0, 0, 0, .42), 0 22px 44px -12px rgba(0, 0, 0, .28); }
.case-item__frame { border: none; border-radius: 14px; box-shadow: 0 10px 22px -6px rgba(0, 0, 0, .42); }
.aftersale__pic { border: none; }
.about__photo { border: none; }   /* v322：原为与 case-item__frame / aftersale__pic 同组的例外，撤掉描边与全站照片对齐 */

/* 工程角标：整组撤销 */
.products__card-media::after,
.mcf-detail__media::after,
.mcx-detail__media::after,
.mck-detail__media::after,
.interlude__video::after,
.equip__media::after { content: none; }
.products__card-media, .mcf-detail__media, .mcx-detail__media,
.mck-detail__media, .interlude__video, .equip__media { position: relative; }
.interlude__video video { display: block; }

/* --------------------------------------------------------------------------
   9 · 三系列详情：规格表变成"数据表"（虚线引导 + 等宽数字）
   -------------------------------------------------------------------------- */
.mcf-detail, .mcx-detail, .mck-detail { background-color: #EFEAE1; }
.mcf-detail__title { font-weight: 700; letter-spacing: -.005em; color: var(--ink-paper); }
.mcf-detail__lead { color: rgba(25, 22, 19, .74); }
.mcf-detail__specs li {
  border-top: 1px solid var(--line-paper);
  color: var(--ink-paper);
}
.mcf-detail__specs li:last-child { border-bottom: 1px solid var(--line-paper); }
.mcf-detail__spec-name { color: var(--ink-paper-mid); letter-spacing: .04em; }
.mcf-detail__spec-value {
  font-family: var(--font-mono);
  font-weight: 500;
  font-variant-numeric: tabular-nums;
  letter-spacing: .02em;
  color: var(--accent-deep);
}
.mcf-detail__ico { color: var(--accent-deep); }
.mcf-detail__label-zh { font-weight: 700; color: var(--ink-paper); }
.mcf-detail__label-en { color: var(--accent-deep); letter-spacing: .2em; }
.mck-detail__title-accent { color: var(--accent-deep); }

/* --------------------------------------------------------------------------
   10 · 参数抽屉：黑色横带 + 数据表
   -------------------------------------------------------------------------- */
.params__toggle-bar { background: var(--bg-deep); border-top: 1px solid var(--line-soft); border-bottom: 1px solid var(--line-soft); }
/* --------------------------------------------------------------------------
   v322：按钮回退 v308 —— 用户点名「如图此类型的按钮还换回 V308 的版本」
   （图1 = 「查看详细参数」实心熔融橙胶囊 / 图2 = 「联系我们」实心橙胶囊）
   撤掉的三条 v3xx 覆盖：
     ① .mcf-detail__btn,.params__toggle-btn { border-radius: var(--r-pill) }
     ② .mcf-detail__btn { background-image: var(--heat-bg) … letter-spacing .14em; uppercase }
     ③ .params__toggle-btn { letter-spacing: .14em; text-transform: uppercase }
   撤掉后两者自动落回各自的 base 声明：
     · 查看详细参数 → v94/v231/v232 的「透明底 + 1px 橙描边 + 橙字 + 橙色实体圆」
       幽灵胶囊（光泽扫过 paramsSheen、悬停实心反转、圆球 paramsClickDemo 全部保留）
     · font-family 同步从 --font-display 回到 inherit（= --font-sans），与 v308 一致
   -------------------------------------------------------------------------- */
.series-drawer { background: var(--bg); }

.param-table__scroll { border-radius: 0; background: var(--bg-2); border: 1px solid var(--line); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .05); }
.param-table th {
  font-family: var(--font-mono);
  font-size: .65625rem;
  font-weight: 500;
  letter-spacing: .16em;
  color: var(--ink-soft);
  background: var(--bg-3);
  border-bottom: 1px solid var(--line);
}
.param-table td {
  font-family: var(--font-mono);
  font-size: .8125rem;
  font-variant-numeric: tabular-nums;
  letter-spacing: .02em;
  border-bottom: 1px solid var(--line-soft);
  color: var(--ink-soft);
}
.param-table td:first-child { color: var(--accent-bright); font-weight: 500; }
.param-table tbody tr { transition: background .25s ease; }
.param-table tbody tr:hover { background: rgba(255, 106, 26, .08); }
.mono-tag { letter-spacing: .2em; }
.mono-tag__sq { width: 7px; height: 7px; }

/* --------------------------------------------------------------------------
   11 · 设备 / 案例 / 技术服务 图板
   v310：案例照片框与米色说明卡恢复原始圆角与投影，去掉描边；
         案例三/四图组的上下排拼接圆角恢复 v308 原状
   -------------------------------------------------------------------------- */
.equip__sq { background: var(--accent); }
.equip__name { color: var(--ink-paper); font-family: var(--font-sans); font-weight: 700; }
.case-item__frame { background: var(--bg-3); border: none; border-radius: 14px; box-shadow: 0 10px 22px -6px rgba(0, 0, 0, .42); }
.case-item__frame:hover { transform: translateY(-6px) scale(1.03); box-shadow: 0 18px 32px -8px rgba(0, 0, 0, .5); }
.case-item__desc-card {
  border-radius: 14px;
  background: #F0EDE5;
  border: none;
  box-shadow: 0 8px 16px -4px rgba(0, 0, 0, .22);
  color: #211D18;
}
.case-item__desc-card--four {
  border-top-left-radius: 0;
  border-top-right-radius: 0;
  border-bottom-left-radius: 14px;
  border-bottom-right-radius: 14px;
}
.case-slide__photos--four .case-item--top .case-item__frame {
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
}
.case-slide__photos--four .case-item--bot .case-item__frame {
  border-top-left-radius: 0;
  border-top-right-radius: 0;
}
.case-item__overlay { background-image: linear-gradient(180deg, rgba(11, 10, 10, 0), rgba(11, 10, 10, .82)); }
.case-nav__btn { border-radius: 0; }
.case-nav__btn:hover { background: var(--accent); color: #14100E; }
.tech-service__slogan { font-weight: 700; color: var(--cream); }
.tech-service__slogan-accent { color: var(--accent-bright); }
.tech-service__desc { color: rgba(244, 240, 232, .76); }

/* --------------------------------------------------------------------------
   12 · 售后服务
   -------------------------------------------------------------------------- */
.aftersale__lead { font-weight: 700; color: var(--ink-paper); letter-spacing: -.005em; }
/* v323：售后服务 lead —— 用户「字色变成黑色」→ 米纸墨 #191613（本板块底色是 #EFEAE1 米纸）；
   「加上和下面版块文字一样的橙色双引号」→ 复用 .team__heading / .honors__title 那套
   .honors__quote（sans 900 非斜体 / 1.35em / line-height:0 不撑行高 / 下沉 .18em）。
   注意：引号 span 必须写在 [data-i18n] 元素**外面**（setLanguage 用 innerHTML 覆盖 i18n 元素，
   写在里面会被切语言冲掉），且标签之间**不能有换行/空格**——本元素 white-space: pre-line，
   空白会被渲染成真的折行。 */
.aftersale__lead .honors__quote {
  font-family: var(--font-sans);
  font-weight: 900;
  font-style: normal;
  color: var(--accent);
  font-size: 1.35em;
  line-height: 0;
  vertical-align: -0.18em;
}
.aftersale__pic { border: none; }
.aftersale__txt h4 { font-weight: 700; color: var(--ink-paper); }
.aftersale__en {
  font-family: var(--font-display);
  font-weight: 400;
  font-size: clamp(11px, .95vw, 13px);
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--accent-deep);
}
.aftersale__txt p { color: rgba(25, 22, 19, .78); }
/* v315：服务项目配图补上 hover 动效（原先整套图板里只有它没有）。
   语言与「技术服务三图 / 案例图板」一致：图上浮 6px + 放大 3%；
   阴影用 drop-shadow 而非 box-shadow——配图是带透明边的 PNG，
   box-shadow 会在米色底上画出一个方形投影块，drop-shadow 才贴合橙块轮廓。
   v315 同时把 4 张 PNG 归一化到同一画布（见 assets/img/real），
   所以这里只做整体位移，不需要再逐图补偿尺寸。 */
.aftersale__pic img { transition: filter .45s ease, transform .45s var(--spring-soft); }
.aftersale__pic:hover img { transform: translateY(-6px) scale(1.03); filter: drop-shadow(0 18px 26px rgba(25, 22, 19, .28)); }

/* --------------------------------------------------------------------------
   13 · 新闻横幅
   -------------------------------------------------------------------------- */
.news { border-top: none; }
.news__shade { background-image: linear-gradient(180deg, rgba(11, 10, 10, .44) 0%, rgba(11, 10, 10, .18) 46%, rgba(11, 10, 10, .62) 100%); }
.news__cell--line { border-left: 1px solid rgba(244, 240, 232, .26); }
.news__no {
  font-weight: 600;
  letter-spacing: .06em;
  color: var(--accent);
}
.news__name { font-weight: 700; color: #FFF8EF; letter-spacing: .02em; }
.news__sub { font-family: var(--font-mono); font-size: .65625rem; font-weight: 400; letter-spacing: .16em; text-transform: uppercase; color: rgba(255, 248, 239, .62); }
.news__cell.is-hovered, .news__cell--accent {
  background-image: linear-gradient(180deg, rgba(255, 106, 26, .12) 0%, rgba(255, 106, 26, .72) 100%);
  background-color: transparent;
}

/* --------------------------------------------------------------------------
   14 · 分享文章
   -------------------------------------------------------------------------- */
.articles__title { font-weight: 700; color: var(--ink-paper); letter-spacing: -.005em; }
.articles__lead { color: var(--ink-paper-mid); }
.article-row { border-top: 1px solid var(--line-paper); }
.article-row:last-child { border-bottom: 1px solid var(--line-paper); }
.article-row__pic {
  border-radius: 8px;
  border: 1px solid rgba(25, 22, 19, .12);
  background-color: transparent;
}
.article-row__title { font-weight: 700; color: var(--ink-paper); }
.article-row__desc { color: var(--ink-paper-mid); }
.article-row__tag {
  border-radius: 0;
  border: 1px solid var(--line-paper);
  background: transparent;
  color: var(--accent-deep);
  font-size: .6875rem;
  font-weight: 400;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.article-row__date { color: var(--ink-paper-soft); letter-spacing: .12em; }
.article-row__more {
  border-radius: 0;
  background: transparent;
  border: 1px solid var(--line-paper);
  color: var(--ink-paper);
}
.article-row__more:hover { background: var(--accent); border-color: var(--accent); color: #14100E; }
/* v315：技术分享（文章列表）缩略图补上 hover 动效——图在框内缓推放大 + 描边提亮。
   框本身不动（列表行有分隔线，整行上浮会顶乱节奏），zoom-in-frame 更稳。 */
.article-row__pic { transition: border-color .35s ease; }
.article-row__pic img { transition: transform .6s var(--spring-soft); }
.article-row__pic:hover { border-color: var(--accent); }
.article-row__pic:hover img { transform: scale(1.07); }
.articles-modal__panel { border-radius: 0; border: 1px solid var(--line); }

/* --------------------------------------------------------------------------
   15 · 发展历程 / 关于我们
   -------------------------------------------------------------------------- */
.about__intro-text { color: rgba(244, 240, 232, .74); }
/* v322：发展历程插图 —— 用户要求「和别的图片一样增加鼠标滑过浮动放大的效果」。
   ① 补 14px 圆角 + 撤掉 1px 白描边（base 与 v319 两次都给它画了四四方方的工程细框，
      全站其它照片（技术服务 12px / 相册 14px / 案例 14px / 媒体卡 14px）都没有这种方框，
      这是漏网的一处）；
   ② hover 用与技术服务三图 / 案例图板同一套语言：translateY(-6px) scale(1.03) + 双层投影。
   .about__photo 只有 JS 写的 marginTop（alignAboutPhoto），不写 transform，故 hover 安全。 */
.about__photo {
  border: none;
  border-radius: 14px;
  background-image: none;              /* 保持 v3xx 的纯色底板：图未加载时不出现渐变 */
  background-color: var(--bg-2);
  transition: transform .45s var(--spring-soft), box-shadow .45s ease;
}
.about__photo:hover {
  transform: translateY(-6px) scale(1.03);
  box-shadow:
    0 18px 32px -8px rgba(0, 0, 0, .5),
    0 32px 60px -16px rgba(0, 0, 0, .38);
}
.about__year {
  font-weight: 600;
  color: var(--accent);
  letter-spacing: .01em;
  font-variant-numeric: tabular-nums;
}
.about__dot {
  background: var(--accent);
  border: 2px solid var(--bg);
  box-shadow: 0 0 0 1px var(--accent), 0 0 14px rgba(255, 106, 26, .65);
}
.about__desc { color: rgba(244, 240, 232, .8); }

/* --------------------------------------------------------------------------
   16 · 专业团队
   -------------------------------------------------------------------------- */
.team__heading { font-family: var(--font-sans); font-weight: 700; color: var(--ink-paper); }
.team__card {
  background: #fff;
  border: none;
  border-radius: 16px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, .12), 0 4px 10px rgba(0, 0, 0, .08);
}
.team__card:hover { box-shadow: 0 22px 50px rgba(0, 0, 0, .22), 0 8px 18px rgba(0, 0, 0, .12); }
.team__avatar {
  border-radius: 50%;
  background: #eee;
  border: none;
  box-shadow: 0 4px 14px rgba(0, 0, 0, .10);
}
.team__name { font-weight: 700; color: var(--ink-paper); }
.team__role {
  font-family: var(--font-mono);
  font-size: clamp(10px, .78vw, 12px);
  font-weight: 500;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--accent-deep);
}
.team__bio { color: var(--ink-paper-mid); }
.team__title-zh { color: var(--ink-paper); }
.team__title-en { color: var(--accent-deep); }

/* --------------------------------------------------------------------------
   17 · 数据与荣誉 / 证书墙
   -------------------------------------------------------------------------- */
.honors__title { font-weight: 700; color: var(--ink-paper); }
.honors__quote { color: var(--accent-deep); }
.stat__num {
  font-weight: 600;
  color: var(--ink-paper);
  letter-spacing: 0;
  font-variant-numeric: tabular-nums;
}
.stat__suffix { color: var(--accent-deep); font-weight: 500; }
.stat__label { color: var(--ink-paper-soft); }
.stat { border-top: 1px solid var(--line-paper); }
.cert-thumb {
  border-radius: 20px;
  background: #fff;
  border: none;
  box-shadow: 0 10px 28px rgba(33, 29, 24, .10);
}
.cert-thumb img { border-radius: 12px; }
.cert-thumb:hover {
  transform: translateY(-14px) scale(1.07);
  box-shadow: 0 34px 64px rgba(33, 29, 24, .30), 0 10px 24px rgba(33, 29, 24, .14);
  z-index: 5;
  position: relative;
}
.honors__case-zh { color: var(--ink-paper); }
.honors__case-en { color: var(--accent-deep); }

/* --------------------------------------------------------------------------
   18 · 联系我们 + 页脚热橙条带
   -------------------------------------------------------------------------- */
.contact { border-top: 1px solid var(--line-soft); }
.contact__title { font-weight: 700; color: var(--cream); }
.contact__title em { color: var(--accent); }
/* v322：用户要求「联系我们」按钮换回 v308 —— 撤掉 v3xx 的熔融橙底 + 0.14em 大写字距 +
   橙色投影，落回 base 的 v308 白底胶囊（#fff / 深墨字 / 箭头右移 4px / hover 微浮）。 */
.contact-info__company { font-family: var(--font-sans); font-weight: 700; color: var(--cream); }
.contact-info__company::after { background: var(--line); }
.contact-info__row::after { background: var(--line-soft); }
.contact-info__icon { color: var(--accent); }
.contact-info__text { color: rgba(244, 240, 232, .76); }
.contact-info__link { color: rgba(244, 240, 232, .76); transition: color .3s ease; }
.contact-info__link:hover { color: var(--accent-bright); }
/* v315：原 v309 给 .side-qr 加的「深色方框 + 边框 + 内边距」移除——
   --bg-2 是 #181716，连同 7px padding/1px 边框套在每个二维码外面，把本来「裸」在背景上的码变成了被框住的方块。
   用户希望 contact 区底部这两个码与 v308 原版保持一致（无背景框），故整条 .side-qr 规则撤销。
   figcaption 这条（mono 小字）保留：它属于 v309 排印语言的一部分，与「黑色底图」无直接关系。 */
.contact__rail-title-zh { color: var(--cream); }
.contact__rail-title-en { color: var(--accent-bright); }
.contact__strip {
  background-image: var(--heat);
  background-color: transparent;
  color: #14100E;
  font-family: var(--font-display);
  font-weight: 500;
  letter-spacing: .3em;
}
.contact__strip-text { color: rgba(20, 16, 14, .82); }

/* --------------------------------------------------------------------------
   19 · 加载动画
   -------------------------------------------------------------------------- */
.loader__brand { font-family: var(--font-sans); font-weight: 700; letter-spacing: .1em; color: var(--cream); }
.loader__tag {
  font-family: var(--font-display);
  font-weight: 300;
  letter-spacing: .24em;
  color: var(--accent-bright);
}
.loader__pct { font-family: var(--font-mono); color: var(--ink-soft); }

/* --------------------------------------------------------------------------
   20 · 滚动圆球 / 细调
   -------------------------------------------------------------------------- */
.scroll-ball__dot { box-shadow: 0 0 0 1px rgba(255, 138, 61, .5), 0 0 16px rgba(255, 106, 26, .7), 0 0 34px rgba(255, 106, 26, .3); }
::selection { background: var(--accent); color: #14100E; }
.cert-lightbox__card { border-radius: 0; border: 1px solid var(--line); }
/* 参数表横向滚动条 */
.param-table__scroll::-webkit-scrollbar { height: 8px; }
.param-table__scroll::-webkit-scrollbar-track { background: var(--bg); }
.param-table__scroll::-webkit-scrollbar-thumb { background: var(--bg-4); }
.param-table__scroll::-webkit-scrollbar-thumb:hover { background: var(--accent); }

/* --------------------------------------------------------------------------
   21 · 无障碍：尊重减弱动效
   -------------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
  .reveal, .reveal-left, .reveal-right, .zoom-in { opacity: 1 !important; transform: none !important; transition: none !important; }
  .loader { display: none !important; }
  body.is-loading { overflow: auto; }
  * { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; }
}

/* ===================== v255：移动端基础自适应（≤900 手机/小平板） =====================
   根因：--max-w 下限 1200px 使 390px 视口下容器按 1200+ 渲染（scrollWidth 1921）。
   思路：容器 100% + 竖线体系（rail/挂点/rail-side JS 定位标签）在窄屏回文档流，
   JS 写入的 inline left/top 对 static 元素无效，天然免疫；inline transform/maxWidth 需显式覆写。 */
@media (max-width: 900px) {
  :root { --max-w: 100%; --pad-y: clamp(64px, 10vh, 120px); }
  html, body { overflow-x: hidden; }
  /* 竖线与挂点窄屏无意义 */
  .hero__rail, .hero__rail-dot { display: none !important; }
  .hero__scroll { position: static; margin: 40px var(--pad-x) 0; align-items: flex-start; }
  /* rail-side / 系列标签：JS 定位元素回文档流 */
  .products__series-head, .params__series-head {
    position: static; width: auto !important; max-width: 100%;
    margin: 24px var(--pad-x) 0; transform: none !important;
  }
  .case-side, .articles__side, .team__title-side, .honors__case-side, .contact__rail-title,
  .mcf-detail__label {
    position: static !important; width: auto !important; max-width: 100%;
    margin: 24px var(--pad-x) 0; transform: none !important; left: auto !important; top: auto !important;
  }
  /* chip 悬挂收平 */
  .section-chip { margin-top: 0 !important; }
  /* 抽屉内参数表横向滚动 */
  .param-table__scroll { overflow-x: auto; }
  .param-table { min-width: 640px; }
  /* v255b：桌面平移/负边距在窄屏全部复位（否则内容被推到屏外） */
  .articles__inner { transform: none; }
  .products__section-header { transform: none !important; margin-bottom: clamp(48px, 12vw, 96px); }
  /* v258：服务板块——图片靠拢平移与描述负边距复位（窄屏会推出屏外被裁） */
  .tech-service__img:first-child, .tech-service__img:last-child { transform: none; }
  .tech-service__img:first-child:hover, .tech-service__img:last-child:hover { transform: translateY(-6px) scale(1.03); }
  .tech-service__desc { margin-left: 0; max-width: 100%; }
  /* v258：发展历程时间轴——窄屏改单列左对齐（左右交替布局在 390px 会移出屏外） */
  .about-history .about__timeline { transform: none !important; padding-left: 18px; border-left: 2px solid rgba(255, 255, 255, .28); }
  .about__time--right .about__content, .about__time--left .about__content {
    margin-left: 0; padding-right: 0; align-items: flex-start; text-align: left;
  }
  .about__time--right .about__year, .about__time--left .about__year,
  .about__time--right .about__desc, .about__time--left .about__desc { text-align: left; }
  .about__dot { display: none; }
  /* v258：证书跑马灯窄屏缩略图缩小一档（200px 在 390px 屏过大） */
  .cert-thumb { width: 150px; }
  .cert-thumb img { height: 202px; }
  .tech-service__slogan { margin-left: 0; font-size: clamp(26px, 7.5vw, 40px); }
  .tech-service__body { grid-template-columns: 1fr; gap: 40px; margin-left: 0; }
  .tech-service__desc { grid-column: auto; }
  .tech-service__gallery { grid-template-columns: 1fr; gap: 24px; }
  .about-history .about__intro-text { margin-top: 0; }
  /* 分享列表：窄屏图上文下叠放 */
  .article-row { flex-direction: column; align-items: flex-start; gap: 14px; }
  .article-row__pic { width: 100%; max-width: 360px; }
  .article-row__body { width: 100%; }
  /* 大标题字号在窄屏用视口比例兜底 */
  .hero__title { font-size: clamp(34px, 10vw, 64px); }
}

/* ==========================================================================
   v260：手机端深度适配（≤768px）——桌面端（>768px）零影响
   ① 参数表卡片化（每行一卡、表头变字段标签）
   ② 发展历程时间轴居中重建（线连贯、圆点/年份/内容对齐）
   ③ 图文区堆叠（售后服务 图上文下 / 设备区 单列）
   ④ 汉堡菜单
   ⑤ 图片自适应兜底
   ========================================================================== */
.nav__burger { display: none; }

@media (max-width: 768px) {
  /* v262：导航——汉堡移至最左，沐程重工与 MUCHEN 同高 */
  .nav { justify-content: flex-start; gap: 12px; }
  .nav__burger { order: -1; }
  .nav__tools { margin-left: auto; gap: 6px; }
  .nav__logo-text span { font-size: 1.25rem; white-space: nowrap; }

  /* v262：hero 宣言——字号 ×2、上移 1.5cm、左右固定 20px 间距、行数自然撑开
     v264：字号回调至 1.28rem（用户反馈 ×2 略大）
     v265：很细的无衬线字体 + 纯白色 + 再上移 0.7cm + 左对齐 */
  .hero__sub {
    max-width: none;
    width: 100%;
    margin-left: 0; margin-right: 0;        /* v266：与标题组左缘对齐（均贴 inner padding 20px） */
    margin-top: calc(1.8cm - 4px);          /* 原 4cm 基础上移 1.5cm；v265 再上移 0.7cm */
    font-size: 1.15rem;                     /* 原手机端 0.7467rem ×1.54（v267 缩小一字号） */
    line-height: 1.75;
    font-family: var(--font-sans);
    font-weight: 200;                       /* 很细的无衬线 */
    color: #FFFFFF;
    text-align: left;
  }
  /* v265：标题组整体左对齐兜底 */
  .hero__inner { text-align: left; }
  /* v315：原「v267 eyebrow 橙字下移」的 .hero__eyebrow 规则已删（元素本身已不存在）。 */
  /* v264：探索沐程文字放大一档（按钮随内容自然加宽，保持内边距不贴边） */
  .hero__cta { font-size: 1.05rem; padding: 0.8rem 1.7rem; }

  /* ⑤ 图片自适应兜底：不溢出、不变形（object-fit 控制裁切的图不受影响） */
  img { max-width: 100%; }

  /* v269：产品体系——
     ① 「产品体系」挂旗放米色底图（advantages）下沿：板块顶 padding 归零 + 挂旗上移一半高度悬挂在交界线
     ② 标题/引文/按钮整体上移（消除 4cm 桌面预留留白）
     ③ 「主机对比图 MAIN MACHINE COMPARISON」水平居中
     ④ 对比图左右出血到全屏宽，尽量放大 */
  .products { padding-top: 0; position: relative; z-index: 2; }   /* v272：advantages 有 z-index:1，板块整体提层挂旗才不被挡 */
  /* v272：全部章节挂旗统一——层级提上来（防被上一板块 absolute 背景遮挡）+ 一半悬挂在上一板块下沿 */
  .products .section-chip, .interlude .section-chip, .tech-service__chip {
    position: relative; z-index: 5;
  }
  .interlude { padding-top: 0; position: relative; z-index: 2; }
  /* v275：全部章节挂旗统一「贴沿顶对齐」——挂旗顶边与黑色区顶边齐平（= 米色板块下沿），
     不再半悬挂在两个底色之间（用户明确：挂旗「卡在两个底色之间」是错的）。
     实测自然 gap 恒定：products +45px（含 header margin-top 44）、interlude +44px、tech +0，
     320–768 全宽度一致，故 translateY 定值即可精确归零。 */
  .products .section-chip, .interlude .section-chip {
    margin-top: 0 !important; transform: translateY(-45px);
  }
  .tech-service__chip { margin-top: 0 !important; transform: none; }   /* 基础 -45px margin 归零后自然位置已贴沿（gap=0） */
  .products__section-header { margin-top: 44px; margin-bottom: 40px; }
  .products__series-head {
    margin-left: auto; margin-right: auto;
    align-items: center; text-align: center;
  }
  .products__compare { margin-left: -20px; margin-right: -20px; }
  .products__card-media img { padding: 8px; }

  /* ① 参数表 → 卡片 */
  .param-table__scroll { overflow: visible; }
  .param-table { min-width: 0; display: block; }
  .param-table thead { display: none; }
  .param-table tbody { display: block; }
  .param-table tr {
    display: block;
    background: var(--bg-3);
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 4px 16px 8px;
    margin: 0 0 14px;
  }
  .param-table tr:last-child { margin-bottom: 0; }
  .param-table td {
    display: flex; justify-content: space-between; align-items: baseline; gap: 18px;
    padding: 8px 0;
    border-bottom: 1px dashed var(--line-soft);
    font-size: 0.875rem;
  }
  .param-table td:last-child { border-bottom: none; }
  .param-table td::before {
    content: attr(data-label);
    flex: none;
    font-size: 0.72rem; letter-spacing: 0.06em;
    color: var(--ink-soft); opacity: .62;
  }
  /* 型号（首列）升级为卡片标题 */
  .param-table td:first-child {
    display: block;
    font-weight: 700; font-size: 1.0625rem; color: var(--accent);
    border-bottom: 1px solid var(--line);
    margin: 0 -16px 6px; padding: 12px 16px 9px;
  }
  .param-table td:first-child::before { content: none; }

  /* ② 发展历程时间轴：居中重建 */
  .about-history .about__timeline { border-left: none; padding-left: 0; }
  .about-history .about__timeline::before {
    content: ''; position: absolute; left: 50%; top: 0; bottom: 0;
    width: 2px; background: rgba(255, 255, 255, .30);
    transform: translateX(-50%);
  }
  .about__time { padding: 38px 0 20px; }
  .about__time--right .about__content, .about__time--left .about__content {
    margin: 0 auto; padding: 0; align-items: center;
    max-width: min(78%, 320px);
  }
  .about__time--right .about__year, .about__time--left .about__year { text-align: center; }
  .about__time--right .about__desc, .about__time--left .about__desc { text-align: center; }
  .about__dot {
    display: block; right: auto; left: 50%; margin-left: -7px;
    top: 14px; width: 14px; height: 14px; z-index: 2;
  }

  /* ③ 图文堆叠 */
  .aftersale__item { flex-direction: column; gap: 14px; }
  .aftersale__pic { width: min(72%, 280px); }
  .equip__grid { grid-template-columns: 1fr; gap: 36px; }

  /* ④ 汉堡菜单 */
  .nav__logo-text span { white-space: nowrap; font-size: 1.25rem; }   /* v262：放大至与 MUCHEN 同高 */
  .nav__logo-text b { font-size: 1.25rem; }
  .lang { gap: 2px; }
  .lang button { white-space: nowrap; padding: 6px 7px; font-size: 0.75rem; }
  .nav { padding-top: 14px; padding-bottom: 14px; }
  .nav__burger {
    display: inline-flex; flex-direction: column; align-items: center; justify-content: center;
    gap: 4px; width: 42px; height: 42px; padding: 0; flex: none;
    background: transparent; border: 1px solid rgba(244, 240, 232, .28);
    border-radius: 10px; color: var(--cream); cursor: pointer;
    transition: border-color .3s ease;
  }
  .nav__burger:hover { border-color: rgba(244, 240, 232, .55); }
  .nav__burger span {
    display: block; width: 18px; height: 2px; background: currentColor; border-radius: 2px;
    transition: transform .3s ease, opacity .25s ease;
  }
  .nav.is-open .nav__burger span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
  .nav.is-open .nav__burger span:nth-child(2) { opacity: 0; }
  .nav.is-open .nav__burger span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }
  .search { display: none; }
  .nav__menu {
    display: block;
    position: absolute; top: 100%; left: 0; right: 0;
    background: rgba(17, 16, 16, .96);
    backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px);
    border-bottom: 1px solid rgba(244, 240, 232, .12);
    max-height: 0; overflow: hidden;
    transition: max-height .45s cubic-bezier(.4, 0, .2, 1);
  }
  .nav.is-open .nav__menu { max-height: 72vh; overflow-y: auto; }
  .nav__menu a {
    display: block; padding: 15px var(--pad-x);
    border-top: 1px solid rgba(244, 240, 232, .08);
    font-size: 1rem;
  }
  .nav__menu a::after { display: none; }
}

/* ============================== v274：769–900px 挂旗死区修复 ==============================
   病灶：v255 老移动块(max-width:900px) 的 `.section-chip { margin-top:0 !important }` 悬挂收平，
   而桌面端的挂旗贴沿靠 JS(alignRailLine v111/v112) 完成、JS 在 ≤900 直接返回；v272 的悬挂规则
   又写在 768 块里。三头不接 → 769–900px 宽度下「产品体系/解决方案」挂旗脱开米色下沿 ~242px。
   修法：本块仅在 769–900 生效，把挂旗恢复成桌面同款几何（顶边贴米色板块下沿）。
   注意 chip 必须同时转 display:block（桌面由 JS v110 转换；此处 inline-flex 的垂直 margin
   不参与布局，只转 margin 不转 display 实测只生效 18px）。实测 769/800/850/900 四档 gap=0。 */
@media (min-width: 769px) and (max-width: 900px) {
  .products .section-chip, .interlude .section-chip {
    display: block;
    width: fit-content;
    margin-left: auto !important;
    margin-right: auto !important;
    margin-top: -236.6px !important;   /* v277：挂旗缩小后自然位 242.2→236.6，同步更新 */
    transform: none;
  }
  .products .section-chip, .interlude .section-chip { position: relative; z-index: 5; }
  /* v275：tech 挂旗同规贴沿——基础 -45px margin 在死区同样残留（实测 -18.4px），归零即 gap=0 */
  .tech-service__chip { margin-top: 0 !important; }
}

/* ============================== v277：全站挂旗缩小 1/3（≤900，桌面端冻结不动） ==============================
   用户要求：挂旗（产品体系/解决方案/技术服务/关于我们）整体缩小 1/3 → 线性 2/3：
   200×64 → 133.3×42.7，zh 26.4→17.6，en 13.2→8.8，padding/radius 同比。
   letter-spacing 均为 em 基，随字号自动缩放，无需另调。
   同块补：「关于我们」挂旗贴沿（实测距上一米色板块下沿恒定 16px，390/850 一致）。 */
@media (max-width: 900px) {
  .section-chip, .tech-service__chip {
    width: 133.3px; height: 42.7px;
    padding: 3.7px 21.3px 0;
    border-radius: 0 0 9.3px 9.3px;
  }
  .section-chip__zh, .tech-service__chip-zh { font-size: 17.6px; margin-bottom: 4px; }
  .section-chip__en, .tech-service__chip-en { font-size: 8.8px; }
  /* about（关于我们）挂旗：实测本就贴沿（secGap=0，早前 +16 是 reveal 动画未完成的假数据），无需处理 */
}

/* ============================== v278：案例区头部重排 + 技术服务三图减半（≤900） ==============================
   用户要求：① 左右翻页钮移到「项目案例 PROJECT CASE」标题右侧；
   ② 「项目案例 PROJECT CASE」一行排布（中文+英文同行，不再上下两行）；
   ③ 技术服务长句下方三张图缩小 1/2（宽 50%，aspect-ratio 1/1 自动保方形）。
   做法：.case-carousel 转 flex-wrap——viewport 独占第一行，case-side（转 row：中文+英文同行）
   与 case-nav（转 static flex）同处第二行，钮紧贴标题右侧。
   桌面端 72px 钮在 390px 放不下（20+93+98+2×72+间距 > 390），移动端缩至 48px（≥44 触控标准）。 */
@media (max-width: 900px) {
  .case-carousel { display: flex; flex-wrap: wrap; align-items: center; margin-left: 0; }   /* v278b：桌面 1cm 右移在 390 会挤掉标题行宽度（实测 326>312 放不下），归零 */
  .case-viewport { width: 100%; }
  .case-side {
    flex-direction: row; align-items: baseline; gap: 10px;
    width: auto; margin: 20px 0 14px var(--pad-x);   /* v278b：右距归零——20+206+20+120=366>350 会把翻页钮挤到下一行 */
  }
  .case-side__sub {
    white-space: nowrap !important;    /* v278b：JS fitRailTitleEn 写内联 width/whiteSpace 限宽折行，须 !important 覆内联 */
    max-width: none !important; width: auto !important;
    flex: none;
  }
  .case-nav {
    position: static; display: flex; gap: 10px; pointer-events: auto;
    margin-left: 14px;
  }
  .case-nav__btn { position: static; transform: none; width: 48px; height: 48px; pointer-events: auto; }
  /* 技术服务三图：单列下宽减半（正方形随 aspect-ratio 自动缩小） */
  .tech-service__img { width: 50%; }
}

/* ============================== v279：售后/新闻/关于我们 手机端精修（≤900） ==============================
   用户指令：① 技术服务三图居中摆放；② ch4.lead 第二句换行（JS 字典 \n→<br>，见 main.js）；
   ③ 售后 4 个服务项目 2 个一排、图片/文字各自平行、明显间距；④ 删除「服务项目」「分享交流」两个侧标题；
   ⑤ 新闻区动态视频背景及文字缩小；⑥ 「关于我们」挂旗水平居中。 */
@media (max-width: 900px) {
  /* ① 技术服务三图：50% 宽在单列内水平居中 */
  .tech-service__img { margin: 0 auto; }
  /* ② 两个 rail-side 侧标题移动端删除 */
  .aftersale__side, .articles__side { display: none !important; }
  /* ③ 售后 4 项目 2×2（覆盖上方 ≤1200 块的单列规则），行列双间距 */
  .aftersale__grid { grid-template-columns: repeat(2, 1fr); gap: 32px 20px; }
  /* ⑤ 新闻视频横幅：2/1 → 3/1 压扁 + 叠加文字缩小 */
  .news__stage { aspect-ratio: 3 / 1; max-height: 44vw; }
  .news__no { font-size: 14px; }
  .news__name { font-size: 13px; }
  /* ⑥ 关于我们挂旗水平居中（grid 内 justify-self） */
  .about-history .section-chip { justify-self: center; }
}

/* ============================== v280：核心优势三项在页面内居中（≤900） ==============================
   用户要求：图标与文字保持现有对齐方式不变，整组在页面里居中。
   做法：grid 项 justify-self:center —— 每项收缩为内容宽并水平居中，内部 flex（图标左/文字右）不动。 */
@media (max-width: 900px) {
  .advantage { justify-self: center; }
}

/* ============================== v281：8 个小标题移到本节顶部并水平居中（≤900） ==============================
   用户要求：桌面端贴竖线右侧的小标题，手机端原先后落到板块底部 → 全部移到本节最上方、水平居中，
   排版/字体/字号保持不变。清单：MCF参数/MCX系列/MCK系列（mcf-detail__label×3）、项目案例 PROJECT CASE
   （case-side+翻页钮）、发展历程 MILESTONES（JS 挪到时间轴正上方）、专业团队 OUR TEAM、
   资质证书 CERTIFICATES、联系我们 CONTACT US。 */
@media (max-width: 900px) {
  /* 1-3：MCF/MCX/MCK 参数小标题 → 各参数板块顶部（三个独立 section） */
  .mcf-detail, .mcx-detail, .mck-detail { display: flex; flex-direction: column; }
  .mcf-detail__label {
    order: -1;
    display: flex; flex-direction: column; align-items: center; text-align: center;
    margin: 14px 0 12px;
  }
  /* 4：项目案例 PROJECT CASE（含翻页钮）→ 轮播上方，整组居中 */
  .case-carousel { justify-content: center; }
  .case-side {
    order: -2; margin: 20px 0 14px;
    align-items: center; text-align: center;
  }
  .case-nav { order: -1; margin-left: 14px; }
  /* 6：专业团队 OUR TEAM */
  .team__inner { display: flex; flex-direction: column; }
  .team__title-side {
    order: -1;
    display: flex; flex-direction: column; align-items: center; text-align: center;
    margin: 16px 0 12px;
  }
  /* 7：资质证书 CERTIFICATES（aside 父级是 .honors__case，含 intro/cert-rail） */
  .honors__case { display: flex; flex-direction: column; }
  .honors__case-side {
    order: -1;
    display: flex; flex-direction: column; align-items: center; text-align: center;
    margin: 16px 0 12px;
  }
  /* 8：联系我们 CONTACT US */
  .contact { display: flex; flex-direction: column; }
  .contact__rail-title {
    order: -1;
    display: flex; flex-direction: column; align-items: center; text-align: center;
    margin: 16px 0 12px;
  }
}

/* ============================== v282：Hero 手机端精修 + 核心优势平行三列（≤768） ==============================
   v315：② ③ 两条随 hero 结构重排退役 —— 那时 em 是「西安沐程重工科技有限公司」副标题、eyebrow 才是 slogan，
   两者要靠 JS 撑宽才跟标题左右对齐；现在 em 直接就是 slogan 橙块（data-i18n 换成 hero.eyebrow）、
   公司名落进正文上方的 .hero__company，全部由全局规则处理，手机端不需要单独伺候。
   保留 ①（宣言段字号）与 ④（核心优势三列）。 */
@media (max-width: 768px) {
  /* ① 宣言段：1.15rem − 2 个字号（v267 单字号=0.13rem）= 0.89rem */
  .hero__sub { font-size: 0.89rem; }

  /* ④ 核心优势：三项横向平行三列（≤860 单列规则的源码顺序在本块之前，此处覆盖生效）；
     每列改为纵向排布（图标/标题/描述自上而下左对齐），文字自然多行 */
  .advantages__grid { grid-template-columns: repeat(3, 1fr); gap: 14px; }
  .advantage {
    justify-self: stretch;                 /* 覆盖 v280 的 justify-self:center */
    display: flex; flex-direction: column; align-items: flex-start; gap: 8px;
  }
  .advantage__icon { margin-top: 0; }
}

/* ============================== v283：正文「桌面定制断行」在手机端取消（≤768） ==============================
   现象（用户反馈）：技术服务描述、售后宣言这两段正文里带着桌面窄栏专用的硬断行——
   静态 HTML 里的 <br> + 字典里的 \n（靠 `white-space: pre-line` 生效）。
   桌面窄栏下它们刚好切出整齐的三行；手机全宽时同一断点会把句子切成「半行 + 半行」，
   末行只剩「司。」「之忧。」这类孤字，很难看。
   做法：移动端把 white-space 由 pre-line 改回 normal（关掉字典 \n 断行）+ 隐藏 <br>（关掉静态断行），
   整段文字自然回流成完整行；两段再各往上提一点，收掉合并后多出的那点空白。
   桌面（>768px）与其断点断行完全不受影响。 */
@media (max-width: 768px) {
  .tech-service__desc, .aftersale__lead { white-space: normal; }
  .tech-service__desc br, .aftersale__lead br { display: none; }
  .tech-service__desc { margin-top: -12px; }   /* 合并后上提，紧跟上方的「技术为基/服务为本」 */
  .aftersale__lead { margin-top: -16px; }      /* 合并后上提，紧跟上方的引导圆点 */
}

/* ============================== v284：六项手机端精修 ==============================
   用户指令（全部针对手机版）：
   ① 缓存页（loader）定位语「全系列精密锻造方案供应商」被折成两行 → 缩小字号；
   ② 「西安沐程重工科技有限公司」移到橙色横线下方 + 缩小字体；
   ③ 核心优势里每项的两句（各占一块）合并成一段连续文字；
   ④ 「MCF参数 精锻机」并成一行；「FORGING MACHINE」下方段后距 +1.5cm（MCX/MCK 同样）；
   ⑤ 删除「MACHINES ON SITE」（装备现场英文小字）；
   ⑥ 项目案例左右翻页钮移到图片正下方。 */

/* ⑥ 案例区（≤900，与 v278/v281 的案例区规则同档）：翻页钮 order 2 → 视图之后、整行居中 */
@media (max-width: 900px) {
  .case-nav { order: 2; width: 100%; margin: 14px 0 0; justify-content: center; }
}

@media (max-width: 768px) {
  /* ① loader 定位语：1.9rem（26.6px×12 字 ≈377px）在 360–390 已贴边、更窄就折行
     → 1.35rem（18.9px，实测约 268px），320 极窄屏也稳单行。
     注意：字号缩小后「品牌名 + 定位语」总和 113+21+254=388px 在 390 屏不再折行，
     两者会挤成一行贴边（实测左缘被切、右缘贴到 389）——故显式让品牌名占满整行，
     保持「品牌在上、定位语在下」的两行结构。 */
  .loader__brand-row { flex-wrap: wrap; }
  .loader__brand { flex: 0 0 100%; text-align: center; }
  .loader__tag { font-size: 1.35rem; letter-spacing: .12em; white-space: nowrap; }

  /* v315：② 随 hero 重排退役 —— em 不再被 JS 搬进 .hero__sub（placeHeroEm284 已删除），
     它作为 slogan 橙块留在 h1 内、与桌面共用同一套全局规则；.hero__sub 的第一行现在由
     .hero__company 承担。因此 h1 里原有的 <br> 必须保留（否则橙块会挤到标题同一行），
     也不再有 .hero__sub em 这回事。 */
  /* 橙色横线兜底：JS alignHeroBar 正常时会写入 inline top（= em 底 + 0.5cm，桌面手机同一公式）；
     这条只在脚本未生效时兜底，避免基础值 -7.9em 把横线甩到标题区。 */
  .hero__bar { top: -16px; }

  /* ③ 核心优势：两句合并成一段连续文字。
     注意：.advantage__desc 基础样式是 flex column——flex 子项会被强制 blockify，
     只写 span{display:inline} 无效（实测 computed 仍为 block）；必须先把父级改回块级。 */
  .advantage__desc { display: block; }
  .advantage__desc span { display: inline; }

  /* ④ 参数标签：中文标题并成一行（隐藏断行 + 两词之间补间距）；英文小字下方留 1.5cm 段后距
     v307：这三条必须收窄到 body.lang-zh——「MCF系列 精锻机」并成一行是中文版的设计意图，
        但同一条规则套到 en/ru 就是灾难：en「MCF SERIES」+「FORGING MACHINE」= 307px、
        ru「КОВОЧНАЯ МАШИНА」+「СЕРИИ MCF」= 335px，而 .mcf-detail__label-zh 在 en/ru 下
        带 max-width: 7em = 126px，nowrap 直接顶出屏幕（实测 en 右缘 439、ru 右缘 467，视口 390）。
        en/ru 的处置见文末 v307 块（居中 + 允许分行 + 放开限宽）。 */
  body.lang-zh .mcf-detail__label-zh { white-space: nowrap; }
  body.lang-zh .mcf-detail__label-zh br { display: none; }
  body.lang-zh .mcf-detail__label-zh span + span { margin-left: .5em; }
  .mcf-detail__label-en { margin-bottom: 1.5cm; }

  /* ⑤ 装备现场的英文小字「MACHINES ON SITE」手机端删除（桌面保留） */
  .gallery__sub { display: none !important; }
}

/* ============================== v285：缓存页品牌「沐程重工」宋体 + 下移（≤768） ==============================
   用户指令：缓存页的「沐程重工」改用宋体，并向下移动一些。
   字体与站内标题一致（思源宋体系）；下移 24px——品牌是 flex 整行项，会带着下方定位语一起下移。 */
@media (max-width: 768px) {
  .loader__brand {
    font-family: "Source Han Serif SC", "Source Han Serif CN", "Noto Serif SC", STZhongsong, SimSun, serif;
    margin-top: 24px;
  }
}

/* ============================== v286：hero 宣言组上移 0.7cm + 公司名改白色（≤768） ==============================
   用户指令：橙色横线、「西安沐程重工科技有限公司」、宣言段三者一起向上移动 0.7cm；
   公司名改成白色字体。
   三者都锚在 .hero__sub 上（横线为其绝对定位子元素、公司名与正文是其内容），
   故只需把 .hero__sub 的 margin-top 从 calc(1.8cm - 4px) 减 0.7cm，整组一起上移；
   公司名颜色由暖白半透明改为纯白。桌面（>768）不受影响。 */
@media (max-width: 768px) {
  .hero__sub { margin-top: calc(1.1cm - 4px); }
  /* v315：原 .hero__sub em { color: #FFFFFF } 已删 —— em 不再位于 .hero__sub 内
     （公司名现在是 .hero__company，全局纯白）。 */
}

/* ============================== v287：挂旗标题英文上移收紧（≤900） ==============================
   用户指令：挂旗里的英文（PRODUCT SYSTEM / SOLUTIONS / TECH SERVICE / About Us 等）
   向上移动 0.4cm。
   实测几何：挂旗高 42.7px，中文行盒 25.5px + 下边距 6px → 英文原本超出挂旗下沿 2.7px
   （这就是「英文太靠下」观感的来源）。但 0.4cm(15px) 全量上移会压进中文笔画（已实测重叠），
   故收到不重叠的极限 -3px：英文上移 9px、完全收进旗内、距中文笔画约 2px。
   四个挂旗（产品体系/解决方案/技术服务/关于我们）共用同一组类名，一条规则全生效。 */
@media (max-width: 900px) {
  .section-chip__zh, .tech-service__chip-zh { margin-bottom: -3px; }
}

/* ==========================================================================
   v288：手机版去掉鼠标跟随圆球
   全站橙色弹球（.scroll-ball / #scrollBall）是开场动画链的一环
   （loader 收尾 → landAt → dropToLand → startAnimations），不能从 JS 里
   拆掉初始化，否则 startAnimations 不触发、首页入场动画会卡死。
   因此手机端纯 CSS 隐藏：开场下坠在画面外"隐形"完成，链路照常走完；
   桌面端（>768px）完全不受影响，球照常跟随鼠标。
   ========================================================================== */
@media (max-width: 768px) {
  .scroll-ball { display: none !important; }
}

/* ============================== v289：挂旗标题中文上移 0.2cm（≤900） ==============================
   用户指令：挂旗里的英文（PRODUCT SYSTEM / SOLUTIONS / TECH SERVICE / About Us 等）
   上方的四字中文向上移动 0.2cm（≈7.56px）。
   做法：position:relative + top 负值只挪中文的视觉位置——不改动布局流，
   英文位置保持 v287 收紧后的状态不动（不再被拖动），桌面（>900）零影响。 */
@media (max-width: 900px) {
  .section-chip__zh, .tech-service__chip-zh { position: relative; top: -0.2cm; }
}

/* ============================== v290：技术服务三图并列（≤768） ==============================
   用户指令：技术服务长句下方三张图并列摆放。
   现状：≤900 时 gallery 是单列（v258），每张图 50% 宽居中（v278/v279）→ 纵向堆叠。
   改法：三等分列 + 图宽 100%，覆盖单列与 50% 宽两条老规则（本块在文件末尾，同权重后者胜）；
   桌面（>768）三列大间距布局零影响。 */
@media (max-width: 768px) {
  .tech-service__gallery { grid-template-columns: repeat(3, 1fr); gap: 8px; }
  .tech-service__img { width: 100%; margin: 0; }
}

/* ============================== v291：核心优势居中 + 正文两端对齐（≤768） ==============================
   用户指令：核心优势三项（经验丰富/技术支持/覆盖全国）的图标、标题、段落文字
   水平中心对齐；内文左右平齐（两端对齐）、末行左对齐。
   做法：.advantage 由 align-items:flex-start 改 center（图标随之水平居中），
   文本容器 text-align:center；desc 用 text-align:justify + text-align-last:left
   实现两端对齐且末行不拉伸。桌面（>768）左对齐布局零影响。 */
@media (max-width: 768px) {
  .advantage { align-items: center; text-align: center; }
  .advantage__title { text-align: center; }
  .advantage__desc { text-align: justify; text-align-last: left; }
}

/* ============================== v292：核心优势正文字距收紧（≤768） ==============================
   用户反馈：两端对齐后内文字间距偏大。
   实测：desc 基础字距 0.02em（约 0.23px/字）+ justify 拉伸共同造成。
   收紧：基础字距归零；justify 保持 v291 要求的两端对齐与末行左对齐不变。
   附实测结论：三个标题字号/字重/字距/盒子尺寸完全一致（12.6px / 700 / 0.504px / 107.3×16.4），
   「覆盖全国显得大」为视觉错觉（其正文行拉伸更松，衬得标题突出），未做改动。
   桌面（>768）零影响。 */
@media (max-width: 768px) {
  .advantage__desc { letter-spacing: 0; }
}

/* ============================== v293：挂旗中文回落 1mm + 参数标题移到表上方（≤768） ==============================
   用户指令：① 挂旗四字中文在 v289 基础上向下移动 1毫米；
   ② 详细参数抽屉底部的系列标题（MCF/MCX/MCK 技术参数 Technical Specifications）
      移动到参数表最上方。
   ① 做法：v289 的 top:-0.2cm 回收 1mm → top:-0.1cm。
   ② 做法：≤900 时该标签本就是文档流（JS 清内联），抽屉 HTML 里标签在表格之后——
      抽屉改 flex 纵向 + 标签 order:-1 移到最前，抽屉内 padding-top 收小让标题贴近表格。
      桌面（>900）仍由 JS 绝对定位在表格右侧居中，零影响。 */
@media (max-width: 768px) {
  .section-chip__zh, .tech-service__chip-zh { top: -0.1cm; }

  .series-drawer { display: flex; flex-direction: column; }
  .series-drawer .params__series-head { order: -1; }
  .series-drawer__inner { padding-top: 20px; }
}

/* ============================== v294：参数区三要素左对齐 5mm 边距 + 英文上移（≤768） ==============================
   用户指令：① "MCF技术参数/Technical Specifications"、"MUCHENG MCF SERIES — TECHNICAL
   SPECIFICATIONS"、参数表三者左对齐，且距左右边距各留 5mm 以上，不贴边；三个产品都执行。
   ② 中文标题下的英文（Technical Specifications）向上移动 0.2cm。
   附带修复 v293 副作用：抽屉 flex 后 inner 的 margin:0 auto 不再拉伸而是收缩到内容宽，
   致 base 规则的负 margin 把 mono-tag/参数表拉到贴死左边缘（left=0）。
   修法：inner 两侧 auto margin 归零（flex 拉伸恢复全宽）；tag/scroll 负 margin 复位为 0、
   max-width:100% —— 三者统一对齐 --pad-x（390 宽 = 20px ≥ 5mm=18.9px）；
   英文上移 = flex gap 6.4px→0 + relative top:-2px ≈ 7.6px ≈ 0.2cm。桌面（>768）零影响。 */
@media (max-width: 768px) {
  .series-drawer .series-drawer__inner { margin-left: 0; margin-right: 0; }
  .series-drawer .params__head,
  .series-drawer .param-table__scroll { margin-left: 0; margin-right: 0; max-width: 100%; }
  .series-drawer .params__series-head { gap: 0; }
  .series-drawer .params__series-head .products__series-sub { position: relative; top: -2px; }
}

/* ============================== v295：售后宣言改黑缩小 + 「服务项目」标题上置（≤768） ==============================
   用户指令：① "高效的售后专家团队…"变黑色、字号缩到与技术服务段（国内唯一参与…）一致；
   ② 在其上方加标题"服务项目 OUR SERVICES"，格式与"项目案例 PROJECT CASE"一致。
   ① lead：橙色 → 站点暖黑 #191613（米色底同款黑）、字号 0.9062rem / 行高 1.85（= .tech-service__desc）、
     去掉 0.5cm 右移与标题左缘对齐。
   ② .aftersale__side 本就存在（v210 桌面 rail 标题，同 .case-side 组件），手机端被 v279 隐藏——
     恢复显示：section 改 flex 纵向 + order:-1 移到最上（lead 之上）；
     "项目案例 PROJECT CASE" 的同行格式来自 ≤900 的 .case-side 行排规则，同组件自动一致。
     桌面（>1100）仍由 JS 定位贴竖线，零影响。 */
@media (max-width: 768px) {
  .aftersale__lead {
    color: #191613;
    font-size: 0.9062rem;
    line-height: 1.85;
    margin-left: 0;
  }
  .aftersale { display: flex; flex-direction: column; }
  .aftersale__side { display: flex !important; order: -1; margin: 0 0 20px; }
}

/* ============================== v296：案例第二组文字裁切修复 + 翻页钮下移（≤768） ==============================
   用户反馈：第二组照片高度大于第一组，文字卡显示不完整；要求扩大显示框、翻页钮下移一点。
   实测 390：组2 内容 = 照片140 + 间距14 + 文字卡195 ≈ 349px，再叠加 v213 的整体下移 1cm
   （37.8px）= 387px，超出 slide 定高 342px（clamp 最小值）→ 文字卡底部被裁 ~30px。
   修法：① 手机端撤掉 v213 的 1cm 下移（桌面专属微调，手机上是裁切元凶）；
         ② slide 定高改自适应（min-height:0，flex stretch 使各组等高于最高组）——
            文字卡在 320-430 任意宽度换行变化都不会再裁；
         ③ 翻页钮 margin-top 14px → 28px 下移。桌面（>768）零影响。 */
@media (max-width: 768px) {
  /* flex stretch 的行高会卡在固定 grid 组（组3/组4=334px），改顶端对齐：
     各 slide 按自身内容撑高，track/viewport 高度 = 最高组（随宽度自适应，永不裁切） */
  .case-track { align-items: flex-start; }
  .case-slide { min-height: 0; }
  .case-slide:nth-child(2) .case-slide__photos--two { transform: none; }
  /* 组4 行高 clamp 定高同样会裁文字卡 → 放开为最小 160px 可增长；卡片高度随内容 */
  .case-slide__photos--four { grid-template-rows: minmax(160px, auto) minmax(160px, auto); }
  .case-slide__photos--four .case-item__desc-card--four { height: auto; min-height: 100%; margin-top: 0; }
  .case-nav { margin-top: 28px; }
}

/* ============================== v297：售后四宫格统一精修（≤768） ==============================
   用户反馈：图片大小不一、标题不对齐、副题有的两行、内文不对齐、图字间距太大。
   实测 390：四图已统一 118.8px（观感差异来自裁切）；真正的病灶：
   ① txt 残留桌面 v127 的 margin-top 1.5cm → 图文间隙 70px；
   ② 英文副题衬线 14px 在 165px 窄列换行不一（2 个两行、2 个单行）→ 内文起始错位。
   修法：txt 上边距归零（间隙回落到 item gap 14px）；h4 19→16、副题 14→10.5px
   压到全部单行 → 标题/副题/内文三行全部横向对齐。桌面（>768）零影响。 */
@media (max-width: 768px) {
  .aftersale__txt { margin-top: 0; }
  .aftersale__txt h4 { font-size: 16px; }
  .aftersale__en { font-size: 9.5px; line-height: 1.35; letter-spacing: -0.02em; }
}


/* ===== v298 手机端：售后四宫格图片主体占比统一 =====
   v298 起因：service_1(325x283 横图)/3/4 经 object-fit:cover 后主体显示占比 83%/87%/82%，
   service_2(258x286) 满幅 92% → 备件服务与升级改造一大一小。
   v315：根因在「4 张 PNG 画布尺寸不一」，已在源文件层把四张统一裁到同一画布
        （282×282，橙块居中，四图偏移完全一致），占比天然拉齐，
        故原先逐图 scale 的补偿全部撤掉——留着反而会让 1/3/4 比 2 大。
        桌面(>768)与手机端现在共用同一套「原图即等比」的行为。 */
@media (max-width: 768px) {
  .aftersale__pic { overflow: hidden; }
}


/* ===== v299 手机端：售后内文顶对齐 + 关于我们板块重排（≤768） =====
   ① 售后四项内文顶部对齐：桌面实测 p 顶完全一致，不对齐只出现在手机实机——
      「Maintenance & Periodic Inspection」在手机字体下折成两行把内文顶下去一行。
      en 副题统一固定两行高，内文顶部不再随副题行数漂移（四项全部对齐）。
   ② 发展历程 MILESTONES 移到简介段落上方：JS(v281) 已把 side 移入 .about__inner(flex column)，
      只需 order 重排：chip -2 → side -1 → intro/timeline 0。
   ③ 挂旗「关于我们 About Us」贴上方米色背景的下沿：chip 成为 inner 首元素后自动贴
      section 顶（section padding-top:0，与桌面 v164 贴沿设计同构）；
      并清掉手机端仍生效的 intro margin-top:254.4px（桌面残留）。
   桌面(>768)零影响。 */
@media (max-width: 768px) {
  .aftersale__en { min-height: 25.7px; }
  .about-history .section-chip { order: -2; }
  .about-history .about-history__side { order: -1; margin-top: 0; margin-bottom: 0; }
  .about-history .about__intro { margin-top: 0; }
}


/* ===== v300 手机端：发展历程时间轴右置 + 案例翻页键下方空白减半（≤768） =====
   ① 时间轴：竖线由中央移到右侧（right:24px），年代+内容整体靠左、占白点左侧空间；
      白点（空心圆）落在右侧竖线上（dot 中心 = 线中心 325px）。
      覆盖 4000-4025 块的「居中重建」规则（同特异性，源码顺序在本块之后生效）。
   ② 项目案例：左右翻页键下方空白缩短一半 —— v116/v117 累加的 +3cm 底距整体折半。 */
@media (max-width: 768px) {
  /* ① 时间轴右置 */
  .about-history .about__timeline { position: relative; }
  .about-history .about__timeline::before { left: auto; right: 24px; transform: none; }
  .about__time { padding: 28px 0 16px; }
  .about__time--right .about__content,
  .about__time--left .about__content {
    margin: 0; padding: 0; max-width: calc(100% - 52px);
    align-items: flex-start; text-align: left;
  }
  .about__time--right .about__year, .about__time--left .about__year,
  .about__time--right .about__desc, .about__time--left .about__desc { text-align: left; }
  .about__dot { left: auto; right: 18px; margin-left: 0; top: 14px; display: block; }

  /* ② 翻页键下方空白减半 */
  .gallery { padding-bottom: calc((clamp(80px, 11vh, 140px) + 3cm) / 2); }
}


/* ===== v301 手机端：售后同排图片内容顶边对齐 + 发展历程标题移到时间轴上方（≤768） =====
   ① v301 起因：售后 4 图顶边不齐——4 张素材画布/留白不同，cover 裁切后可见内容顶边相差 5~6px，
      做法是逐图 translateY 上移补偿。
      v315：源文件已把 4 张 PNG 归一化到同一画布（橙块居中、偏移一致），顶边天然对齐，
        逐图 translateY 补偿全部撤掉（留着会把图 1/3 顶上去，重新制造错位）。
   ② 发展历程 MILESTONES：撤销 v299 的 order:-1（曾放简介上方），改回 DOM 顺序
      （JS ≤768 已把该节点插在 .about__timeline 之前）→ 挂旗 → 简介 → 工厂照片 → 发展历程 → 时间轴。
   桌面(>768)零影响。 */
@media (max-width: 768px) {
  .about-history .about-history__side { order: 0; }
}


/* ===== v302 手机端：时间轴年份对齐白点 + 团队/证书/联系板块精修（≤768） =====
   ① 时间轴：年份（橙色大字）垂直中心对齐右侧白色圆圈（未调前 year 中心 36.5px vs dot 中心 21px，
      差 15.5px）；年份与内文组本身已左对齐（v301）。
   ② 专业团队：标题「专业团队 OUR TEAM」与内容间距缩小一半（保留 -16px 抵消）；
      整个板块上移 1cm（v212 的 +1.5cm → +0.5cm）。
   ③ 资质证书：标题↔内容间距缩短（12→6px）；画布内容整体下移 1cm；
      引言上移一行（19.5px）；引言与数字组改竖排 → 5 组数字铺满整宽完整显示
      （原先 stats 被推到 left 334、宽 266，右边界 600 溢出屏外 → 用户无法完整显示）；
      数字列内边距收紧（26px→8px）避免窄列标签挤成单字。
   ④ 联系我们：删上方灰线（border-top）；顶部留白缩短；去掉「联系我们」按钮；
      二维码缩小（74→62px）并左对齐信息列左缘；删二维码下方「企业微信/客服微信」文字；
      板块底部加 1cm 黑色空白。 */
@media (max-width: 768px) {
  /* ① 时间轴年份对齐白圈 */
  .about__year { position: relative; top: -15.5px; }

  /* ② 专业团队 */
  .team { padding-top: calc(clamp(80px, 10vh, 140px) + 0.5cm); }
  .team__title-side { margin-bottom: -4px; }

  /* ③ 资质证书 */
  .honors__case { padding-top: calc(clamp(64px, 8vh, 110px) + 1cm); }
  .honors__case-side { margin-bottom: 6px; }
  .honors__case .honors__intro { flex-direction: column; align-items: stretch; gap: 0; }
  .honors__case .honors__title { margin-top: -19.5px; max-width: 100%; }
  .honors__case .stats { width: 100%; }
  .honors__case .stat { padding: 18px 8px 16px 0; }

  /* ④ 联系我们 */
  .contact { border-top: none; padding-top: 40px; padding-bottom: 38px; }
  .contact__rail-title { margin-bottom: 6px; }
  .contact__btn { display: none; }
  .contact__col--side { align-items: flex-start; }
  .contact__side-qrs { justify-content: flex-start; }
  .side-qr figcaption { display: none; }
  .side-qr img { width: 62px; height: 62px; }
}


/* ===== v303 手机端补丁：删除「联系我们 CONTACT US」标题自带的灰线（≤768） =====
   用户要求删除其上方的灰线——定位：该线不在 .contact 板块上（v302 已删 border-top），
   而是 .contact__rail-title 元素自身的 border-top: 1px rgba(255, 248, 239,.15)（元素截图 y=56 处实测）。
   桌面保留（桌面该标题为 rail 侧标题，灰线是设计的一部分）。 */
@media (max-width: 768px) {
  .contact__rail-title { border-top: none; }
}


/* ===== v305 手机端批量精修（≤768，桌面 >768 零影响） =========================================
   用户一次提了 5 个板块（由下往上看）：
   ① 联系我们：公司名字号缩小 + 与地址文案左对齐 +「联系我们 CONTACT US」中英间距缩短
   ② 资质荣誉：删 5 组数字 +「资质证书 CERTIFICATES」中英间距缩短 1/2 + 删上方灰线
   ③ 发展历程：年份↔文案距离缩短 0.5cm + 文字与年份右对齐
   ④ 技术分享：四篇文章图片缩小、移到标题下方左侧，右侧放文案
   ⑤ 服务项目：四宫格文案上移靠近英文副标题 + 图片整体下移、与标题间距 0.4cm
   ------------------------------------------------------------------------------------------- */

/* ① 联系我们 ------------------------------------------------------------------------------
   公司名 16px（clamp(16px,3vw,24px) 在 390 命中下限）→ 14px；
   左对齐地址行「陕」字：由 JS 写内联 padding-left（窄屏分支 v305 新增），CSS 中和不掉；
   中英标题间距：.contact__rail-title-en 的 margin-top 14 → 7（折半，与桌面同源规则）。 */
@media (max-width: 768px) {
  .contact .contact-info__company { font-size: 14px; }
  .contact .contact__rail-title-en { margin-top: 7px; }
}

/* ② 资质荣誉 ------------------------------------------------------------------------------
   - 删 5 组数字（15+ 年精锻机技术沉淀 / 18 款自研精锻机型号 / 11 项授权专利 / 9 项发明专利 /
     14+ 首台·首套业绩）：直接隐藏整套 .stats。counter 数字动画只依赖 IntersectionObserver，
     无布局依赖（js 内无 stats 定位逻辑），隐藏安全。
   - 「资质证书 CERTIFICATES」中英间距 14 → 7px（折半）。
   - 删上方灰线：与 v303「联系我们」同款坑 —— 线不在板块上，而是 .honors__case-side 自身
     在 ≤1100 自带的 border-top: 1px rgba(25,22,19,.15)（配 padding-top 24px）。 */
@media (max-width: 768px) {
  .honors .honors__case .stats { display: none; }
  .honors .honors__case .honors__case-en { margin-top: 7px; }
  .honors .honors__case-side { border-top: none; }
}

/* ③ 发展历程时间轴 -------------------------------------------------------------------------
   - 年份↔文案间距缩短 0.5cm：实测 rect 间距 24px（= flex gap 8.44px + desc 行高外溢），
     用负 margin 抵消 18.9px（0.5cm @96dpi）→ 5.1px。沿用 v302 的「负边距抵消、不碰具体构成」手法。
   - 年份与文案右对齐：桌面本来就是 text-align:right（3449/3468 行），v258/v300 在窄屏改成 left；
     这里改回桌面语义。内容块右缘 298px、白点左缘 318px，仍留 20px 不压圆点。 */
@media (max-width: 768px) {
  .about-history .about__time--right .about__content,
  .about-history .about__time--left .about__content { align-items: flex-end; text-align: right; }
  .about-history .about__time--right .about__year,
  .about-history .about__time--left .about__year,
  .about-history .about__time--right .about__desc,
  .about-history .about__time--left .about__desc { text-align: right; }
  .about-history .about__desc { margin-top: -18.9px; }
}

/* ④ 技术分享（技术文章列表）-----------------------------------------------------------------
   现状：通栏大图（350×197）在上、meta/标题/正文在下。用户要：图缩小、移到标题下方左侧、右侧放文案。
   不动 HTML（桌面结构冻结）：用 display:contents 去掉 .article-row__body 的框，
   让 meta / 标题 / 图 / 文案 成为同一层 flex 项，再用 order 重排：
     0 meta → 1 标题 → 2 图(40%) + 3 文案(自适应剩余) → 4 阅读键
   注意必须显式覆盖 ≤900 块的 flex-direction:column，否则方向是竖的、图文无法并排。
   宽度用「图 40% 定宽 + 文案 flex:1 1 calc(60% - 12px)」，两者合计正好占满整行，
   阅读键（50px）自然换到下一行。
   两个坑（都实测踩过）：
   ① 文案的 flex-basis 不能写 auto —— 换行判定用的是段落 max-content 基准宽（远超整行），
      长段落会被直接挤到下一行，图文永远并不到一起；basis 必须显式给值。
   ② basis 也不能给 0 —— 那样阅读键会一起挤上同一行，文案被压成 136px 窄柱（250px 高），
      比不改还难看。给 calc(60% - 12px) 才能：图文同行 + 阅读键换行 + 文案占满右侧。 */
@media (max-width: 768px) {
  .articles .article-row {
    flex-direction: row; flex-wrap: wrap; align-items: flex-start;
    column-gap: 12px; row-gap: 10px;
  }
  .articles .article-row__body { display: contents; }
  .articles .article-row__meta { order: 0; width: 100%; margin-bottom: 0; }
  .articles .article-row__title { order: 1; width: 100%; margin-bottom: 0; }
  .articles .article-row__pic {
    order: 2; flex: 0 0 auto; width: 40%; max-width: none;
    aspect-ratio: 4 / 3;   /* 16:9 缩到 140px 宽后过扁，改 4:3 更像个缩略图 */
    padding: 8px;
  }
  .articles .article-row__desc { order: 3; flex: 1 1 calc(60% - 12px); min-width: 0; max-width: none; }
  .articles .article-row__more { order: 4; }
}

/* ⑤ 服务项目（售后服务四宫格）--------------------------------------------------------------
   - 文案（p）向上靠近英文副标题：.aftersale__en 的 margin-bottom 10 → 5px（折半）。
   - 图片整体下移 + 与中文标题间距 0.4cm：item 的 flex gap 14px → 0.4cm，
     并给 .aftersale__pic 加 0.4cm 上边距（图片整体下移 0.4cm，item 行距不变）。
     0.4cm 直接写 cm 单位，与站内其它 cm 标尺一致（1cm = 37.8px @96dpi → 0.4cm = 15.1px）。 */
@media (max-width: 768px) {
  .aftersale__item { gap: 0.4cm; }
  .aftersale__pic { margin-top: 0.4cm; }
  .aftersale__en { margin-bottom: 5px; }
}


/* ===== v306 手机端精修（≤768，桌面 >768 零影响）===============================================
   ① 联系我们：「开启合作，让我们一同锻造未来。」整句移到两个二维码右侧
   ② 技术分享：四篇文章的三角阅读键上移，填进照片下方的空档
   （③ 内置预览不能点击属 mobile-preview.html 的问题，不在本文件） */

/* ① 联系我们 · 标题移到二维码右侧 -----------------------------------------------------------
   改前实测（390）：板块 flex column，顺序 rail(联系我们/CONTACT US) → hero(h2) → info(公司名+
   地址/电话/邮箱) → side(2×62px 二维码)；h2 独占一整行，二维码孤零零贴在板块最底部。
   用户要：h2 挪到二维码右边。做法：≤768 把 .contact 由 flex 换成 grid，
   三行显式定位 —— row1 rail(通栏) / row2 info(通栏) / row3 [col1 side 二维码 | col2 hero h2]。
   必须显式覆盖桌面 grid 定位（2850/2854 行把 info 放 col2 跨全高、hero 放 col1 跨全高），
   否则 info 会跑到右边去。h2 垂直居中于二维码块（QR 83px 高、h2 51px 高）。
   hero 的 padding-top: .7cm（2857 行桌面用来整体下移）在这个并排场景里必须清零，
   否则 h2 相对二维码下坠 26px。
   ⚠ 两个必踩的坑（都是实测出来的）：
   ① 必须写 align-content: start。≤1100 块（3252 行）把行模板改成了 grid-template-rows: auto，
      而 .contact 带 min-height: clamp(500px,62vh,700px)。grid 默认 align-content: stretch 会把
      剩余空间【均摊给每一条 auto 行】→ 三行各被撑高 25px（rail 76→101、info 189→214、side 83→108），
      连带 .contact__side-qrs 的 margin-top: auto（3012 行）吃到 24.9px 空白，二维码整体下坠。
   ② min-height 在并排后已无意义：h2 原来独占一行（78px）撑出的高度现在省了，若保留 min-height
      会在板块底部留下 ~80px 死白（深色底上就是一块无意义空档）。窄屏改 auto，让高度随内容收。 */
@media (max-width: 768px) {
  .contact {
    display: grid;
    align-content: start;                          /* 坑① 剩余空间不许分给行 */
    min-height: auto;                              /* 坑② 高度随内容收，不留底部死白 */
    grid-template-columns: auto minmax(0, 1fr);   /* col1 = 二维码实际宽(136px)，col2 吃掉剩余 */
    column-gap: 14px;
    row-gap: 0;
  }
  .contact__rail-title { grid-column: 1 / -1; grid-row: 1; }
  .contact__col--info   { grid-column: 1 / -1; grid-row: 2; }
  /* align-self: start 必写：.contact__side-qrs 带 margin-top: auto（3012 行，桌面用来把二维码顶到列底）。
     行高由同排更矮的一方决定时它无感，但 en/ru 下 h2 变 4 行（RU 实测 102px）会撑高整行，
     auto 外边距就把二维码按到底部、和居中/顶部的标题错开。钉成 start 后二维码永远贴行顶。 */
  .contact__col--side   { grid-column: 1; grid-row: 3; align-self: start; }
  .contact__col--hero   { grid-column: 2; grid-row: 3; padding-top: 0; align-self: center; }
}

/* ② 技术分享 · 三角阅读键上移填进照片下方空档 ------------------------------------------------
   改前实测（390，第一篇）：图片 140×105 在左、文案 198×182 在右，两者并排；
   于是照片下方留下 140×77 的空档，而阅读键（50×50）被 flex 折到文案下方另起一行。
   做法：把 v305 的 flex+order 换成本地 grid（列宽同为 40% / 剩余，视觉不变），
   用显式网格区把阅读键钉在图片正下方（第 4 行第 1 列）：
     row1 meta(通栏) → row2 标题(通栏) → row3 [图片 | 文案起] → row4 [阅读键 | 文案续]
   文案跨 row3+row4（3/2 → 5/3），所以行高自动按文案高度分配：
   图 105 撑起 row3，剩余高度落到 row4，正好 ≥ 阅读键 50px → 阅读键紧贴照片下沿 10px（= row-gap）。
   注意：v305 给图写的 width: 40% 必须改回 100%（否则 40% 的 40%），desc 的 flex 简写在 grid 下自动失效。 */
@media (max-width: 768px) {
  .articles .article-row {
    display: grid;
    grid-template-columns: 40% minmax(0, 1fr);
    column-gap: 12px;
    row-gap: 10px;
    align-items: start;
  }
  .articles .article-row__meta  { grid-area: 1 / 1 / 2 / 3; }
  .articles .article-row__title { grid-area: 2 / 1 / 3 / 3; }
  .articles .article-row__pic   { grid-area: 3 / 1 / 4 / 2; width: 100%; }
  .articles .article-row__more  { grid-area: 4 / 1 / 5 / 2; justify-self: start; }
  .articles .article-row__desc  { grid-area: 3 / 2 / 5 / 3; }
}


/* ===== v307 手机端 + en/ru 排版精修（中文桌面 >768 零影响）====================================
   用户六条（一句话里提的）：
     ① 联系我们「开启合作…」字号放小 + 上下与二维码平齐
     ② 首屏「探索沐程」按钮下移 0.5cm
     ③ en 版「Rich Experience…」内文左对齐（行内空隙太大）
     ④ 产品系列标题（MCF/MCX/MCK …）超出画面 → 整体居中 + 超宽分行（en/ru 都要）
     ⑤ 专业团队人员介绍（en/ru）遵循排版规则但行内空隙不要太大
     ⑥ ru 版 about 简介同款处理，实在不行左对齐
   统一病因：③⑤⑥ 都是 text-align: justify 在窄列里的「词间大空洞」；④ 是 nowrap + 7em 限宽。
   ------------------------------------------------------------------------------------------- */

/* ① 联系我们：标题缩小 + 上下与二维码平齐 ----------------------------------------------------
   改前（390 实测）：h2 20px/2 行 = 51px 高（375 宽时 3 行 77px），二维码图 62px 高，
   两者顶/底都不齐。用户要「字号放小 + 上下平齐」。
   做法：字号降到 clamp(15px,4.5vw,18px)（360–430 实测「让我们一同锻造未来。」都还能单行，
   2 行合计正好压到 62px）；行高写死 31px → 2 行 = 62px = 二维码图高，顶底同时对齐。
   竖直方向用 align-self:start + margin-top:1.5rem（= .contact__side-qrs 的 padding-top，
   二维码图正是从这里开始），这样标题上沿 = 二维码图上沿（此前 align-self:center 会错开 ~10px）。 */
@media (max-width: 768px) {
  .contact__col--hero { align-self: start; margin-top: 1.5rem; }
  .contact__title { font-size: clamp(15px, 4.5vw, 18px); line-height: 31px; }
}

/* ② 首屏「探索沐程」按钮下移 0.5cm ----------------------------------------------------------
   ≤900 块给 .hero__scroll 的静态定位 margin-top: 40px，这里 +0.5cm（18.9px）= 58.9px。
   （JS alignRailLine 会写 left/top 内联值，但窄屏 .hero__scroll 是 position:static，不受影响。） */
@media (max-width: 768px) {
  .hero__scroll { margin-top: calc(40px + 0.5cm); }
}

/* ③⑤⑥ en/ru 正文改左对齐（中文保留两端对齐）--------------------------------------------------
   justify 在英文里靠拉伸词间距填满行宽，窄列（手机端 350px 上下）必然出现「行内很多空」，
   这是英文排版的经典忌口；中文两端对齐则是正确做法，故只对 en/ru 生效。
   三处：核心优势正文（.advantage__desc，v291 明确要的两端对齐——那个需求针对中文版）、
        专业团队人员介绍（.team__bio）、发展历程简介（.about-history .about__intro-text）。
   顺带把 .advantage__desc 的 letter-spacing:0（v292 为压 justify 空洞而收紧）保持不变即可。 */
@media (max-width: 768px) {
  body.lang-en .advantage__desc,
  body.lang-ru .advantage__desc,
  body.lang-en .team__bio,
  body.lang-ru .team__bio,
  body.lang-en .about-history .about__intro-text,
  body.lang-ru .about-history .about__intro-text { text-align: left; }
}

/* ④ 产品系列标题：居中 + 允许分行（en/ru）-----------------------------------------------------
   改前实测（390）：.mcf-detail__label-zh 在 en 下 white-space:nowrap + max-width:7em(126px)，
   内容「MCF SERIES」+「FORGING MACHINE」= 307px 直接顶出屏幕右缘 439；
   ru「КОВОЧНАЯ МАШИНА」+「СЕРИИ MCF」= 335px → 右缘 467。MCF/MCX/MCK 三段全中招。
   做法：放开 7em 限宽（max-width:100%）→ 350px 内「FORGING MACHINE」(191px)、
   「КОВОЧНАЯ МАШИНА」(217px) 各自单行放得下；white-space:normal 让超长时自然折行（用户要求「还超出就分行」）；
   text-align:center 让它整体居中（父级 .mcf-detail__label 在 ≤900 已是 static + text-align:center，
   子元素宽度撑满后每行居中）。中文版由 4298 行的 body.lang-zh 规则保持「并成一行」不变。 */
@media (max-width: 768px) {
  body.lang-en .mcf-detail__label-zh,
  body.lang-ru .mcf-detail__label-zh {
    white-space: normal;
    max-width: 100%;
    text-align: center;
  }
  /* 橙色小字同样放开 10em 限宽，整体居中（en「SERIES PRECISION FORGING MACHINE」由 3 行收到 1 行） */
  body.lang-en .mcf-detail__label-en,
  body.lang-ru .mcf-detail__label-en { max-width: 100%; text-align: center; }
}

/* ⑦ 附带修复（同属「标题超出画面」）----------------------------------------------------------
   首屏主标题 ru「Прецизионная ковка」实测右缘 427 > 视口 390（溢出 37px）。
   根因：≤768 块给 .hero__title 加了 width: fit-content（为中文版 justify 副标题服务），
   于是 fitHeroTitle() 里的 container = title.clientWidth 变成了「文本自身宽度」，
   「自然宽 > 容器」永远不成立 → 不再缩字号，标题想多宽就多宽。
   en/ru 不需要 fit-content（那是中文副标题 justify 的前提），改回 width:auto 后
   container 恢复为列宽 → JS 自动把字号压到单行可容纳，且不碰正在播放的 .lm 掩码。 */
@media (max-width: 768px) {
  body.lang-en .hero__title,
  body.lang-ru .hero__title { width: auto; }
}

/* ============================== v308：新闻资讯（技术分享）横幅 —— 版块与文字随底图等比缩放（≤900） ==============================
   用户反馈：手机版只能看到 2 个板块而且没有文字。
   实测根因（390 宽）：v279 ⑤ 把 .news__stage 压成 aspect-ratio:3/1 + max-height:44vw → 舞台只有 130px 高，
   而 ≤900 块（2712 行）给 .news__cell 的 min-height:230px 与 ≤768 的固定字号（no 14 / name 13 / sub 11）
   完全没有跟着缩。于是 6 个 230px 高的格子塞进 130px 的舞台 → 被 overflow:hidden 裁掉，只露出第一排 2 个；
   .news__txt 用 bottom:clamp(28px,3.6vw,58px) 定位在 230px 格子的底部 → 整块文字落在横幅外，肉眼全不可见。
   做法（让版块划分与文字跟横幅同比例缩放）：
     ① 舞台高度改由网格撑开：.news__cells 从 absolute 回到文档流 → 舞台高度 = 2 列 × 3 行网格高度；
        视频仍 absolute inset:0 铺满，视觉上依旧是「视频底图 + 版块划分」。
     ② 行高用 clamp(86px, 23vw, 124px) 跟随视口 → 3 行总高在 258px（320 屏）～372px（900 屏）间平滑过渡。
     ③ 数字 / 标题 / 副标题全部改成 vw 驱动的 clamp，与横幅同比例缩放，不再出现「底图缩了字没缩」。
     ④ 分隔线改为「第 2、3 排画顶线 + 右列画左线」，顶排与最左列不画线（与桌面版观感一致）；
        用 :nth-child 选择器（0,2,0）压过 2715 行 .news__cell--line 的 border-left:none。 */
@media (max-width: 900px) {
  .news__stage { aspect-ratio: auto; max-height: none; }
  .news__cells {
    position: relative; inset: auto;                 /* 回文档流 → 由 2×3 网格撑起横幅高度 */
    grid-template-columns: repeat(2, 1fr);
    grid-auto-rows: minmax(clamp(86px, 23vw, 124px), auto);
  }
  .news__cell { min-height: 0; border: 0; }          /* 清掉 ≤900 的 min-height:230px 与旧边线 */
  .news__cell:nth-child(n + 3) { border-top: 1px solid rgba(244, 240, 232, .55); }   /* 第 2、3 排顶线 */
  .news__cell:nth-child(2n) { border-left: 1px solid rgba(244, 240, 232, .55); }     /* 右列竖线 */

  .news__no {
    top: clamp(8px, 2vw, 16px); right: clamp(8px, 2vw, 16px);
    font-size: clamp(15px, 4.2vw, 24px);
  }
  .news__txt {
    left: clamp(9px, 2.2vw, 18px); right: clamp(6px, 1.6vw, 12px);
    bottom: clamp(9px, 2.2vw, 16px);
    gap: .18rem;
  }
  .news__name { font-size: clamp(14px, 4vw, 22px); }
  .news__sub  { font-size: clamp(10px, 2.9vw, 15px); }
}

/* ==============================================================================================
   v325 · 手机端首屏排版五改（≤768 专属；桌面 >768 与定稿 V2 零影响）
   用户五条（都针对手机版）：
     ① 宣言「从追赶者到领跑者…」被桌面版的硬断行切成两段 → 手机端去掉 <br>，回流成一段
     ② 宣言字号 = 公司名字号
     ③ 胶囊「全系列精密锻造方案供应商」→ v325b 用户改口：手机端**整条删除**
     ④ 「探索沐程」与「专注精密锻造」左对齐
     ⑤ 公司名「西安沐程重工科技有限公司」放大一个字号
   —— 关于「一个字号」的取值：≤768 时 html font-size = clamp(14px, 0.5vw+6.4px, 20px) 取到下限 14px，
      于是 --hero-meta 里的 clamp(3.2rem, 5.3vw, 6.3rem) 恒取 3.2rem = 44.8px
      （5.3vw 在 ≤768 最多 40.7px，永远够不着），→ --hero-meta 恒 = 44.8 × .2509 = 11.2403px，
      与机型宽度无关（360 / 390 / 430 实测完全一致）。故手机端「一个字号」= 2px。
   ============================================================================================== */
@media (max-width: 768px) {
  /* ① 宣言回流成一段：做法与 v283 对 .tech-service__desc / .aftersale__lead 一致 ——
     桌面版为窄栏定制的 <br> 在手机全宽下会把一句话从中间切开，读起来像两段。 */
  .hero__manifesto br { display: none; }

  /* ②⑤ 公司名 +1 号（11.6416 → 13.6416px）；宣言与公司名同号（原 9.6330px）。
     行高不动（两者都是 --hero-meta × 1.714，本来就相等），只放字号。 */
  .hero__company,
  .hero__manifesto { font-size: calc(var(--hero-meta) + 2px); }

  /* ③ v325b：胶囊「全系列精密锻造方案供应商」手机端整条删除（三语同步）。
     它本来就已经是 position:absolute（不占文档流），所以 display:none 之后
     标题与「探索沐程」的位置都不会再动一下。
     ⚠ 开屏（缓存页）的定位语 .loader__tag 用的是同一个 i18n 键，但那是另一处元素，没动。 */
  .hero__eyebrow { display: none; }

  /* ④ 「探索沐程」左对齐到「专注精密锻造」：≤900 给 .hero__scroll 的
     margin: 40px var(--pad-x) 0 会在 .hero 自身的 padding-left 之外再叠一层 --pad-x(20px)，
     按钮因此比标题右移 20px（实测 cta.x=40 / 标题文字 x=20）。左边距归零 → 两者同为 x=20。 */
  .hero__scroll { margin-left: 0; }
}

/* ==============================================================================================
   v325 · 技术分享 4 篇摘要（en / ru）缩短 —— 文案改在 js/main.js 的 en/ru 字典里，
   这里只留「为什么是这个长度」的标定依据，方便下次再调：
     ≤768 每行是 grid：图 40%（390 屏 = 140×105）+ 12px 列间距 + 文案列 198px，
     左列视觉总高 = 图 105 + 行距 10 + 阅读键 50 = 165px ≈ 文案 7 行（行高 22.75px → 159.3px）。
     改前/改后实测行数（390 屏）：
       第1篇 418ch/15行 → 211ch/7行   第2篇 396ch/14行 → 199ch/7行
       第3篇 304ch/11行 → 195ch/7行   第4篇 416ch/14行 → 194ch/7行
       （ru）403/17→162/7 · 350/14→165/7 · 347/15→133/7 · 452/18→161/7
     缩短一律收在句号处，不从半句截断。
   ============================================================================================== */


/* ==============================================================================================
   v326 · 手机端发展历程：2018 / 2019 两条的第 2 个汉字不再单独掉到下一行（仅 ≤375 生效）

   ── 症状（用户截图）：2018「…国产 / 化」、2019「…及制 / 造」的**最后一个字单独一行**。

   ── 实测归因（`_tools/probe_about_desc2.py`，逐字 Range 量右缘）：
      .about__desc 在 ≤768 的可用宽 = `.about__content` 的 max-width `calc(100% - 52px)`
      （52 = 右侧留给白点 18px + 白点 16px + 间隙），再减去 <br> 前的首段文字宽度。
        360 屏：容器 229.5px，「国产」排到 x=229.5 → 末字「化」需 242.6 → **差 13.1px（恰好一个字）** ✗
        390 屏：容器 259.2px，同段 240.9px，富余 18px  ✗ 不折
        430 屏：容器 300.0px，富余 59px              ✗ 不折
      → **只在 ≤~375px 的窄屏触发**，临界值就是「差一个字」。

   ── 做法：只给这两条（data-year 2018 / 2019）在窄屏单独放宽可用宽度，留出「最后一个字」的余量。
      · 放宽量取 padding-right 减半 —— 这两条文字本身就是**左对齐**（≤768 的
        `.about__time--right/--left .about__desc { text-align: left }`），右端本来就是空白，
        所以放宽后文字右缘不会碰到白点，视觉上零变化。
      · `max-width` 必须压在 `.about__content` 上（宽度约束在那里，不是 desc 上）。
      · 用 `calc(100% - 40px)`：52 → 40，多出 12px，360 屏 229.5 → 241.5 > 242.6-13.1 ✓
      · 只动 2018/2019：2015 两条本来折得整齐、2021/2022 字号更小（11px）且折行正常，不碰。
      · ⚠ 桌面（>768）完全不进这个分支，定稿 V2/V3 桌面零回归（`_tools/regress_v326.py` 已对拍）。
   ============================================================================================== */
@media (max-width: 375px) {
  .about__time[data-year="2018"] .about__content,
  .about__time[data-year="2019"] .about__content {
    max-width: calc(100% - 40px);
  }
}

/* ==============================================================================================
   v327 · 行业解决方案子版块（#industry-solutions，位于解决方案与项目案例之间）
   ① 首页 4 卡 2×2（≤768 一列）：图 16:10 圆角 14px（沿用 .case-item__frame 语言）+ zh 标题 + mono 英文 + 幽灵胶囊
   ② 全屏弹层详情（#indsolModal，骨架同 articles-modal）：深面板 + 纸色技术图卡
   红线自查：橙色只用 var(--accent) 系；照片无描边；中文标点全角；未改动任何既有选择器。
   ============================================================================================== */

/* ---------- ① 首页版块 ---------- */
.indsol {
  position: relative;
  background: var(--bg);
  border-top: 1px solid var(--line);
  padding: var(--pad-y) var(--pad-x);
}
.indsol__inner { max-width: var(--max-w); width: 100%; margin: 0 auto; }
.indsol__title {
  font-family: var(--font-sans);
  font-weight: 700;
  font-size: clamp(26px, 2.6vw, 40px);
  letter-spacing: .02em;
  color: var(--cream);
  margin: 0 0 clamp(36px, 5.5vh, 64px);
}
.indsol__grid { display: grid; grid-template-columns: 1fr; gap: 44px 24px; }
.indsol__frame {
  aspect-ratio: 16 / 10;
  border-radius: 14px;
  overflow: hidden;
  background: var(--bg-3);
  box-shadow: 0 10px 22px -6px rgba(0, 0, 0, .42);
  transition: transform .45s var(--spring-soft), box-shadow .45s ease;
}
.indsol__frame img { width: 100%; height: 100%; object-fit: cover; display: block; }
.indsol__card:hover .indsol__frame { transform: translateY(-6px) scale(1.03); box-shadow: 0 18px 32px -8px rgba(0, 0, 0, .5); }
.indsol__meta { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-top: 18px; flex-wrap: wrap; }
.indsol__name { display: flex; align-items: baseline; gap: 10px; margin: 0; font-family: var(--font-sans); font-weight: 700; font-size: 24px; color: var(--cream); }
.indsol__name-en { font-family: var(--font-mono); font-weight: 500; font-size: 11px; letter-spacing: .18em; color: var(--ink-faint); }
/* 幽灵胶囊：数值照搬 .params__toggle-btn（透明底 + 1px 橙描边 + 橙字 + 橙色实体圆点） */
.indsol__btn {
  display: inline-flex; align-items: center; gap: 12px;
  background: transparent; color: var(--accent);
  border: 1px solid var(--accent); border-radius: 999px;
  font-family: inherit; font-weight: 600; font-size: 14px; letter-spacing: .04em;
  padding: 8px 9px 8px 22px; cursor: pointer;
  transition: background-color .2s ease, transform .2s ease;
}
.indsol__btn:hover { background: rgba(255, 106, 26, .14); }
.indsol__btn:active { transform: scale(.97); }
.indsol__btn-dot { width: 24px; height: 24px; border-radius: 50%; background: var(--accent); flex: none; position: relative; }
.indsol__btn-dot::after { content: ""; position: absolute; inset: 0; margin: auto; width: 8px; height: 8px; border-radius: 50%; background: #141312; opacity: 0; transition: opacity .2s ease; }
.indsol__btn:hover .indsol__btn-dot::after { opacity: .8; }

/* ---------- ② 详情弹层（骨架同 .articles-modal，z-index 同级 1000） ---------- */
.indsol-modal {
  position: fixed; inset: 0; z-index: 1000;
  display: flex; align-items: center; justify-content: center;
}
@media (min-width: 769px) {
  .indsol-modal { padding: 3vh 4vw; }
}
.indsol-modal[hidden] { display: none; }
.indsol-modal__shade {
  position: absolute; inset: 0;
  background: rgba(0, 0, 0, .45); /* 对标技术分享：背景通透可见，不压抑 */
}
.indsol-modal__panel {
  position: relative;
  width: 100%;
  max-width: 1020px;
  max-height: 90vh;
  margin: auto;
  background: #141312;
  border-radius: 14px;
  border: 1px solid rgba(255, 255, 255, .12);
  box-shadow: 0 30px 80px rgba(0, 0, 0, .45);
  color: var(--cream);
  overflow-y: auto;
  overflow-x: hidden;
  padding: clamp(36px, 5vh, 60px) clamp(28px, 4.5vw, 64px);
  animation: indsolIn .35s cubic-bezier(.22, .61, .36, 1);
  scrollbar-width: thin;
  scrollbar-color: rgba(255, 255, 255, .22) transparent;
}
@keyframes indsolIn { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .indsol-modal__panel { animation: none; } }

/* 精致化上下滑块 */
.indsol-modal__panel::-webkit-scrollbar { width: 5px; }
.indsol-modal__panel::-webkit-scrollbar-track { background: transparent; }
.indsol-modal__panel::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, .22);
  border-radius: 999px;
  transition: background .2s ease;
}
.indsol-modal__panel::-webkit-scrollbar-thumb:hover { background: var(--accent); }

.indsol-modal__close {
  position: sticky; top: 0; float: right;
  width: 42px; height: 42px; margin-left: auto;
  display: flex; align-items: center; justify-content: center;
  background: rgba(255, 255, 255, .08);
  border: 1px solid rgba(255, 255, 255, .14);
  border-radius: 999px;
  color: var(--cream); cursor: pointer; z-index: 10;
  transition: background-color .2s ease, transform .2s ease;
}
.indsol-modal__close:hover {
  background: rgba(255, 255, 255, .16);
  transform: scale(1.05);
}

/* 弹层内页版式 */
.indsol-page { max-width: 980px; margin: 0 auto; }
.indsol-page__head { margin-bottom: clamp(28px, 4vh, 44px); }
.indsol-page__title { font-family: var(--font-sans); font-weight: 700; font-size: clamp(24px, 2.4vw, 36px); color: var(--cream); margin: 0 0 16px; }
.indsol-page__lead { font-size: 15px; line-height: 1.9; color: var(--ink-soft); max-width: 62ch; margin: 0; text-wrap: pretty; }
.indsol-page__hero { margin: 0 0 clamp(28px, 4vh, 44px); }
.indsol-page__heroimg { aspect-ratio: 21 / 9; border-radius: 14px; overflow: hidden; background: var(--bg-3); }
.indsol-page__heroimg img { width: 100%; height: 100%; object-fit: cover; display: block; }
.indsol-page__hero figcaption, .indsol-page__row figcaption { font-family: var(--font-mono); font-size: 11px; letter-spacing: .14em; color: var(--ink-faint); }
.indsol-page__hero figcaption { display: block; margin-top: 12px; }
.indsol-page__cols { display: grid; grid-template-columns: 1fr; gap: 24px; margin-bottom: clamp(28px, 4vh, 44px); }
.indsol-page__col h4 { display: flex; align-items: center; gap: 8px; font-family: var(--font-sans); font-size: 14px; font-weight: 700; letter-spacing: .06em; color: var(--cream); margin: 0 0 10px; }
.indsol-page__col h4::before { content: ""; width: 7px; height: 7px; background: var(--accent); flex: none; }
.indsol-page__col p { font-size: 14.5px; line-height: 1.9; color: var(--ink-soft); margin: 0; text-wrap: pretty; }
.indsol-page__rows { display: grid; gap: clamp(28px, 4vh, 44px); margin-bottom: clamp(28px, 4vh, 44px); }
.indsol-page__row { display: grid; grid-template-columns: 1fr; gap: 18px; margin: 0; align-items: center; }
.indsol-page__media { aspect-ratio: 4 / 3; border-radius: 14px; overflow: hidden; background: var(--bg-3); }
.indsol-page__media--narrow { aspect-ratio: 4 / 5; }
.indsol-page__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.indsol-page__cap-t { display: block; font-family: var(--font-sans); font-weight: 700; font-size: 17px; color: var(--cream); margin-bottom: 8px; letter-spacing: .02em; }
.indsol-page__cap-d { display: block; font-family: var(--font-sans); font-size: 14px; line-height: 1.85; color: var(--ink-soft); letter-spacing: 0; text-wrap: pretty; }

/* 技术图卡：米纸底（呼应客户参考的 Bars/Shafts 图版式） */
.indsol-tech { background: var(--paper); color: var(--ink-paper); border-radius: 14px; padding: clamp(24px, 3vw, 44px); }
.indsol-tech__head { display: flex; align-items: center; gap: 10px; font-family: var(--font-mono); font-size: 11px; font-weight: 500; letter-spacing: .2em; text-transform: uppercase; color: rgba(25, 22, 19, .55); margin-bottom: 20px; }
.indsol-tech__head::before { content: ""; width: 7px; height: 7px; background: var(--accent); flex: none; }
.indsol-tech__grid { display: grid; grid-template-columns: 1fr; gap: 28px; }
.indsol-tech__fig { margin: 0; }
.indsol-tech__fig img { display: block; width: 100%; height: auto; border-radius: 8px; background: #fff; }
.indsol-tech__fig figcaption { margin-top: 10px; font-family: var(--font-sans); font-size: 13px; line-height: 1.7; color: rgba(25, 22, 19, .72); }
.indsol-tech__cap-t { display: inline-block; font-weight: 700; color: #191613; margin-right: 8px; }

/* 弹层底部 CTA：白底胶囊（同「联系我们」按钮语言） */
.indsol-modal__foot { display: flex; justify-content: center; margin-top: clamp(32px, 5vh, 56px); }
.indsol-cta {
  background: var(--cream); color: #191613;
  border: none; border-radius: 999px;
  font-family: inherit; font-weight: 600; font-size: 15px; letter-spacing: .04em;
  padding: 13px 36px; cursor: pointer;
  transition: transform .2s ease, box-shadow .2s ease;
}
.indsol-cta:hover { transform: translateY(-2px); box-shadow: 0 10px 24px -8px rgba(255, 106, 26, .45); }
.indsol-cta:active { transform: translateY(0) scale(.98); }

/* ---------- 桌面增强（>768，手机零回归） ---------- */
@media (min-width: 769px) {
  .indsol__grid { grid-template-columns: 1fr 1fr; }
  .indsol__name { font-size: 26px; }
  .indsol-page__cols { grid-template-columns: 1fr 1fr; gap: 48px; }
  .indsol-page__row { grid-template-columns: 1.2fr 1fr; gap: 40px; }
  .indsol-page__row--rev .indsol-page__media { order: 2; }
  .indsol-page__row--rev figcaption { order: 1; }
  .indsol-page__media--narrow { justify-self: center; width: 78%; }
  .indsol-tech__grid { grid-template-columns: 1fr 1fr; }
}

/* ---------- 移动端（≤768：弹层全屏接管、行堆叠） ---------- */
@media (max-width: 768px) {
  .indsol-modal { padding: 0; }
  .indsol-modal__panel {
    margin: 0;
    width: 100vw;
    max-width: 100vw;
    max-height: 100vh;
    border-radius: 0;
    border: none;
  }
  .indsol-page__row { gap: 14px; }
  .indsol-page__media--narrow { aspect-ratio: 4 / 3; }
  .indsol__meta { margin-top: 14px; }
}

/* ===== v327b：行业解决方案 信息层级补强（导语 / mono 序号 / 卡片行业定语） ===== */
.indsol__lead { margin: 16px 0 0; max-width: 640px; font-size: 15px; line-height: 1.8; color: var(--ink-soft); }
.indsol__text { flex: 1 1 auto; min-width: 0; }
.indsol__idx { font-family: var(--font-mono); font-weight: 500; font-size: 12px; letter-spacing: .12em; color: var(--accent); margin-right: 2px; }
.indsol__desc { margin: 8px 0 0; font-size: 13.5px; line-height: 1.7; color: var(--ink-soft); max-width: 44ch; }
@media (max-width: 768px) {
  .indsol__lead { font-size: 14px; line-height: 1.75; }
  .indsol__desc { font-size: 13px; max-width: none; }
}

/* ===== v327c：行业解决方案 —— 浅米色底并入项目案例 + 弹层重排（规格行→统一图墙→技术图解） ===== */
:root { --paper-fresh: #F5F1E9; }

/* ① 版块底色：比 #EFEAE1 更浅的新米色，indsol 与 gallery 同刷、去分隔线连成一片 */
.indsol { background: var(--paper-fresh); }
.gallery { background: var(--paper-fresh); border-top: none; }

/* ② 纸底配色翻转（深色文字体系；mono-tag 深色先例见 .honors__case L2694） */
.indsol .mono-tag--light { color: rgba(25, 22, 19, .72); }
.indsol__title { color: #141312; }
.indsol__lead { color: rgba(20, 19, 18, .66); }
.indsol__name { color: #141312; }
.indsol__name-en { color: rgba(20, 19, 18, .45); }
.indsol__desc { color: rgba(20, 19, 18, .66); }
.indsol__frame { background: rgba(20, 19, 18, .07); box-shadow: 0 12px 26px -10px rgba(20, 19, 18, .22); }
.indsol__card:hover .indsol__frame { box-shadow: 0 20px 36px -12px rgba(20, 19, 18, .3); }

/* ③ 弹层规格行：思路先行（发丝线分区，h4 样式不变） */
.indsol-page__cols { margin-bottom: clamp(32px, 5vh, 52px); }
.indsol-page__col { border-top: 1px solid rgba(244, 240, 232, .14); padding-top: 18px; }

/* ④ 弹层统一图墙：全部 3:2 圆角卡 + 图注，桌面三列（身管 --2 两列），手机一列 */
.indsol-page__grid { display: grid; grid-template-columns: 1fr; gap: 28px 24px; margin: 0 0 clamp(28px, 4vh, 44px); }
.indsol-page__cell { margin: 0; }
.indsol-page__cell .indsol-page__media { aspect-ratio: 3 / 2; }
.indsol-page__cell figcaption { margin-top: 12px; }
.indsol-page__cell .indsol-page__cap-t { font-size: 15px; margin-bottom: 5px; }
.indsol-page__cell .indsol-page__cap-d { font-size: 13px; line-height: 1.75; }
@media (min-width: 769px) {
  .indsol-page__grid { grid-template-columns: repeat(3, 1fr); }
  .indsol-page__grid--2 { grid-template-columns: repeat(2, 1fr); }
}

/* v327c-2：head 间距修正——导语加进来后，标题的下间距转移到 head 容器 */
.indsol__title { margin-bottom: 0; }
.indsol__head { margin-bottom: clamp(36px, 5.5vh, 64px); }

/* ===== v328b：产业解决方案 排版规格对齐分享交流 + 卡片纯净极简化 ===== */
/* ① 标题与小字导语规格：完全对标下方「分享交流」以技术见深度标题与「聚焦」小字 */
.indsol .mono-tag { margin-bottom: 14px; }
.indsol__title {
  font-family: var(--font-sans);
  font-size: clamp(22px, 2.4vw, 34px);
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: -0.018em;
  color: #191613;
  margin-top: 14px;
  margin-bottom: 10.5px;
}
.indsol__lead {
  font-family: var(--font-sans);
  font-size: clamp(14px, 1.1vw, 15.84px);
  font-weight: 400;
  line-height: 1.7;
  color: rgba(25, 22, 19, 0.7);
  letter-spacing: normal;
  margin-top: 0;
  margin-bottom: 0;
  max-width: 820px;
}
@media (max-width: 768px) {
  .indsol__title { margin-top: 8px; margin-bottom: 8px; }
  .indsol__lead { font-size: 14px; line-height: 1.65; }
}

/* ② 版块头部与卡片网格间距 */
.indsol__head { margin-bottom: clamp(32px, 4.5vh, 48px); }

/* ③ 版块网格：图片向下移动 1 厘米，右列（特钢与身管）向右移动 1.5 厘米，两列间距拉大 */
.indsol__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 36px;
  margin-top: 1cm;
}
@media (min-width: 769px) {
  .indsol__grid {
    grid-template-columns: 1fr 1fr;
    max-width: clamp(960px, 73vw, 1060px);
    gap: clamp(40px, 4.5vh, 52px) clamp(90px, 8vw, calc(84px + 1.5cm));
    margin-left: auto;
    margin-right: auto;
  }
  .indsol__head {
    max-width: clamp(960px, 73vw, 1060px);
    margin-left: auto;
    margin-right: auto;
  }
}

/* ④ 卡片样式与白底图背景优化：整卡手型交互 */
.indsol__card {
  cursor: pointer;
  outline: none;
  border-radius: 16px;
  transition: transform .25s ease;
}
.indsol__card:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 4px;
}
.indsol__frame {
  background: #FFFFFF;
  box-shadow: 0 10px 24px -10px rgba(20, 19, 18, .18);
}
.indsol__card:hover .indsol__frame {
  transform: translateY(-5px);
  box-shadow: 0 18px 36px -10px rgba(20, 19, 18, .28);
}
/* 标题居中对齐：与卡片图片水平居中 */
.indsol__meta {
  margin-top: 16px;
  display: flex;
  justify-content: center;
  text-align: center;
}

/* ⑤ 双字标题增加两个空格字间距；字体浅灰优雅；特钢与身管垂直严格对齐 */
.indsol__name {
  display: inline-flex;
  justify-content: center;
  align-items: baseline;
  gap: 0;
  font-size: 24px;
  font-weight: 700;
  color: #46423E;
  transition: color .2s ease;
  position: relative;
}
.indsol__card:hover .indsol__name {
  color: var(--accent);
}
.indsol__name--spaced > span:not(.indsol__name-en) {
  letter-spacing: 0.8em;
  margin-right: 0.4em;
}
body.lang-en .indsol__name--spaced > span:not(.indsol__name-en),
body.lang-ru .indsol__name--spaced > span:not(.indsol__name-en) {
  letter-spacing: normal;
  margin-right: 0;
}
.indsol__name--four > span:not(.indsol__name-en) {
  letter-spacing: 0.16em;
  margin-right: 0.38em;
}
body.lang-en .indsol__name--four > span:not(.indsol__name-en),
body.lang-ru .indsol__name--four > span:not(.indsol__name-en) {
  letter-spacing: normal;
  margin-right: 0;
}
.indsol__name-en {
  font-family: var(--font-mono);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: .12em;
  color: var(--accent);
  margin-left: 8px;
}
@media (min-width: 769px) {
  /* 桌面端：应用场景四大标题上下两排严格左对齐，整体向右移动1.28cm（净偏移0.58cm） */
  .indsol__meta {
    justify-content: flex-start;
    text-align: left;
    transform: translateX(0.58cm);
  }
  .indsol__name {
    position: relative;
    display: inline-flex;
    align-items: baseline;
    justify-content: flex-start;
  }
  .indsol__name-en {
    position: static;
    transform: none;
    margin-left: 12px;
    white-space: nowrap;
  }
  body.lang-en .indsol__name-en,
  body.lang-ru .indsol__name-en {
    position: static;
    transform: none;
    margin-left: 8px;
  }
  .indsol__name--spaced > span:not(.indsol__name-en),
  .indsol__name--four > span:not(.indsol__name-en) {
    letter-spacing: normal;
    margin-right: 0;
  }
}

/* ⑥ 分割线右侧应用展示标题（同全站 .case-side 风格） */
.indsol__side {
  z-index: 2;
}
.indsol__side .case-side__main {
  color: #191613;
}
.indsol__side .case-side__sub {
  color: var(--accent);
}
@media (max-width: 1100px) {
  .indsol__side { display: none; }
}

/* ===== v329：汽车解决方案详情弹层（按未标题-1.svg精准排版重构） ===== */
.indsol-page--auto {
  max-width: 980px;
  margin: 0 auto;
}

/* 汽车、特钢、特种材料、深管四大板块显示时：弹层全面切换为温润米色雅致工业体系，隐藏外部默认多余的公共大按钮 */
.indsol-modal[data-active-page="auto"] .indsol-modal__foot,
.indsol-modal[data-active-page="steel"] .indsol-modal__foot,
.indsol-modal[data-active-page="special"] .indsol-modal__foot,
.indsol-modal[data-active-page="barrel"] .indsol-modal__foot,
.indsol-modal:has(.indsol-page[data-page="auto"]:not([hidden])) .indsol-modal__foot,
.indsol-modal:has(.indsol-page[data-page="steel"]:not([hidden])) .indsol-modal__foot,
.indsol-modal:has(.indsol-page[data-page="special"]:not([hidden])) .indsol-modal__foot,
.indsol-modal:has(.indsol-page[data-page="barrel"]:not([hidden])) .indsol-modal__foot {
  display: none !important;
}
.indsol-modal[data-active-page="auto"] .indsol-modal__panel,
.indsol-modal[data-active-page="steel"] .indsol-modal__panel,
.indsol-modal[data-active-page="special"] .indsol-modal__panel,
.indsol-modal[data-active-page="barrel"] .indsol-modal__panel,
.indsol-modal:has(.indsol-page[data-page="auto"]:not([hidden])) .indsol-modal__panel,
.indsol-modal:has(.indsol-page[data-page="steel"]:not([hidden])) .indsol-modal__panel,
.indsol-modal:has(.indsol-page[data-page="special"]:not([hidden])) .indsol-modal__panel,
.indsol-modal:has(.indsol-page[data-page="barrel"]:not([hidden])) .indsol-modal__panel {
  background: #EFEAE1 !important;
  border: 1px solid rgba(25, 22, 19, 0.12);
  box-shadow: 0 30px 80px rgba(0, 0, 0, 0.28);
  color: #191613;
  scrollbar-color: rgba(25, 22, 19, 0.25) transparent;
}
.indsol-modal[data-active-page="auto"] .indsol-modal__panel::-webkit-scrollbar-thumb,
.indsol-modal[data-active-page="steel"] .indsol-modal__panel::-webkit-scrollbar-thumb,
.indsol-modal[data-active-page="special"] .indsol-modal__panel::-webkit-scrollbar-thumb,
.indsol-modal[data-active-page="barrel"] .indsol-modal__panel::-webkit-scrollbar-thumb,
.indsol-modal:has(.indsol-page[data-page="auto"]:not([hidden])) .indsol-modal__panel::-webkit-scrollbar-thumb,
.indsol-modal:has(.indsol-page[data-page="steel"]:not([hidden])) .indsol-modal__panel::-webkit-scrollbar-thumb,
.indsol-modal:has(.indsol-page[data-page="special"]:not([hidden])) .indsol-modal__panel::-webkit-scrollbar-thumb,
.indsol-modal:has(.indsol-page[data-page="barrel"]:not([hidden])) .indsol-modal__panel::-webkit-scrollbar-thumb {
  background: rgba(25, 22, 19, 0.22);
}
.indsol-modal[data-active-page="auto"] .indsol-modal__panel::-webkit-scrollbar-thumb:hover,
.indsol-modal[data-active-page="steel"] .indsol-modal__panel::-webkit-scrollbar-thumb:hover,
.indsol-modal[data-active-page="special"] .indsol-modal__panel::-webkit-scrollbar-thumb:hover,
.indsol-modal[data-active-page="barrel"] .indsol-modal__panel::-webkit-scrollbar-thumb:hover,
.indsol-modal:has(.indsol-page[data-page="auto"]:not([hidden])) .indsol-modal__panel::-webkit-scrollbar-thumb:hover,
.indsol-modal:has(.indsol-page[data-page="steel"]:not([hidden])) .indsol-modal__panel::-webkit-scrollbar-thumb:hover,
.indsol-modal:has(.indsol-page[data-page="special"]:not([hidden])) .indsol-modal__panel::-webkit-scrollbar-thumb:hover,
.indsol-modal:has(.indsol-page[data-page="barrel"]:not([hidden])) .indsol-modal__panel::-webkit-scrollbar-thumb:hover {
  background: var(--accent);
}
.indsol-modal[data-active-page="auto"] .indsol-modal__close,
.indsol-modal[data-active-page="steel"] .indsol-modal__close,
.indsol-modal[data-active-page="special"] .indsol-modal__close,
.indsol-modal[data-active-page="barrel"] .indsol-modal__close,
.indsol-modal:has(.indsol-page[data-page="auto"]:not([hidden])) .indsol-modal__close,
.indsol-modal:has(.indsol-page[data-page="steel"]:not([hidden])) .indsol-modal__close,
.indsol-modal:has(.indsol-page[data-page="special"]:not([hidden])) .indsol-modal__close,
.indsol-modal:has(.indsol-page[data-page="barrel"]:not([hidden])) .indsol-modal__close {
  background: rgba(25, 22, 19, 0.06);
  border: 1px solid rgba(25, 22, 19, 0.12);
  color: #191613;
}
.indsol-modal[data-active-page="auto"] .indsol-modal__close:hover,
.indsol-modal[data-active-page="steel"] .indsol-modal__close:hover,
.indsol-modal[data-active-page="special"] .indsol-modal__close:hover,
.indsol-modal[data-active-page="barrel"] .indsol-modal__close:hover,
.indsol-modal:has(.indsol-page[data-page="auto"]:not([hidden])) .indsol-modal__close:hover,
.indsol-modal:has(.indsol-page[data-page="steel"]:not([hidden])) .indsol-modal__close:hover,
.indsol-modal:has(.indsol-page[data-page="special"]:not([hidden])) .indsol-modal__close:hover,
.indsol-modal:has(.indsol-page[data-page="barrel"]:not([hidden])) .indsol-modal__close:hover {
  background: rgba(25, 22, 19, 0.12);
  color: #000000;
}

/* ① 头部规范：标题与导语米色底适配 */
.indsol-auto__head {
  margin-bottom: clamp(28px, 4vh, 42px);
}
.indsol-auto__tag {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 12px;
  color: rgba(25, 22, 19, 0.65);
  font-family: var(--font-mono);
  font-size: 13.5px;
  font-weight: 500;
  letter-spacing: .18em;
}
.indsol-auto__tag .mono-tag__sq {
  width: 12px;
  height: 12px;
  background: var(--accent);
  display: inline-block;
  flex-shrink: 0;
}
.indsol-auto__title {
  font-family: var(--font-sans);
  font-size: clamp(30px, 3.4vw, 46px);
  font-weight: 700;
  letter-spacing: .05em;
  color: #191613;
  margin: 0 0 16px;
  line-height: 1.25;
}
.indsol-auto__lead {
  font-family: var(--font-sans);
  font-size: 15px;
  line-height: 1.85;
  font-weight: 400;
  color: rgba(25, 22, 19, 0.78);
  max-width: 860px;
  margin: 0;
  text-wrap: pretty;
}

/* ② 通用区块头（橙色小方块 + 标题） */
.indsol-auto__sec {
  margin-top: clamp(36px, 5vh, 56px);
}
.indsol-auto__sec-head {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 22px;
}
.indsol-auto__sec-sq {
  width: 12px;
  height: 12px;
  background: var(--accent);
  flex-shrink: 0;
}
.indsol-auto__sec-title {
  font-family: var(--font-sans);
  font-size: 18px;
  font-weight: 600;
  letter-spacing: .18em;
  color: #191613;
  margin: 0;
}

/* ③ 模块一：技术优势（橙色3D图适当缩小、文字换思源宋体加粗微放大） */
.indsol-auto__tech-cols {
  display: grid;
  grid-template-columns: 1fr;
  gap: 28px;
  align-items: center;
}
@media (min-width: 769px) {
  .indsol-auto__tech-cols {
    grid-template-columns: 0.88fr 1.12fr;
    gap: 36px;
  }
}
.indsol-auto__tech-media {
  background: transparent;
  max-width: 84%;
  margin: 0 auto;
}
.indsol-auto__tech-media img {
  width: 100%;
  height: auto;
  display: block;
}
.indsol-auto__tech-text {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
}
.indsol-auto__tech-p {
  font-family: 'Source Han Serif SC', 'Source Han Serif CN', 'Noto Serif CJK SC', 'Songti SC', SimSun, serif;
  font-size: clamp(16.5px, 1.3vw, 18.5px);
  line-height: 1.85;
  letter-spacing: .03em;
  color: #191613;
  margin: 0 0 20px;
  font-weight: 600;
  text-align: left;
}
.indsol-auto__tech-mandrel {
  width: 100%;
  max-width: 330px;
  margin: 0;
  text-align: left;
}
.indsol-auto__tech-mandrel img {
  width: 100%;
  height: auto;
  max-height: 52px;
  object-fit: contain;
  display: block;
}

/* ④ 模块二：成品展示（第一排三张图高度统一，下排半轴与双轴严格等高） */
.indsol-auto__prods-wall {
  display: flex;
  flex-direction: column;
  gap: 28px;
}
.indsol-auto__prods-row1 {
  display: grid;
  grid-template-columns: 1fr;
  gap: 24px;
  align-items: start;
}
@media (min-width: 600px) {
  .indsol-auto__prods-row1 {
    grid-template-columns: repeat(3, 1fr);
  }
}
.indsol-auto__prods-row2 {
  display: grid;
  grid-template-columns: 1fr;
  gap: 24px;
  align-items: start;
}
@media (min-width: 769px) {
  .indsol-auto__prods-row2 {
    grid-template-columns: 1fr 1.6fr;
    align-items: stretch;
  }
}

.indsol-auto__card {
  display: flex;
  flex-direction: column;
  align-items: stretch;
}
/* 第一排三张图：统一 800/700 aspect-ratio，彻底除尽白边后等高且文字底对齐 */
.indsol-auto__prods-row1 .indsol-auto__card-frame {
  aspect-ratio: 800 / 700;
  width: 100%;
  background: transparent;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 6px;
  overflow: hidden;
}
.indsol-auto__prods-row1 .indsol-auto__card-frame img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  border-radius: 6px;
}

/* 下排两组卡片：半轴高度与双轴总高度拉伸等高 */
.indsol-auto__card--half {
  display: flex;
  flex-direction: column;
}
.indsol-auto__card--half .indsol-auto__card-frame {
  background: transparent;
  border-radius: 6px;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}
.indsol-auto__card--half .indsol-auto__card-frame img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  border-radius: 6px;
}
@media (min-width: 769px) {
  .indsol-auto__card--half,
  .indsol-auto__card--double {
    height: 100%;
  }
  .indsol-auto__card--half .indsol-auto__card-frame {
    flex: 1 1 auto;
    min-height: 0;
    height: 100%;
  }
  .indsol-auto__card--double .indsol-auto__card-frame--double {
    flex: 1 1 auto;
    min-height: 0;
    justify-content: center;
  }
}
.indsol-auto__card-frame--double {
  display: flex;
  flex-direction: column;
  gap: 14px;
  justify-content: center;
}
.indsol-auto__cut-shaft,
.indsol-auto__step-shaft {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 6px;
}

.indsol-auto__card-label {
  font-family: var(--font-sans);
  font-size: 15px;
  font-weight: 500;
  letter-spacing: .18em;
  color: #191613;
  margin-top: 14px;
  text-align: center;
}

/* ⑤ 模块三：核心实力 */
.indsol-auto__strength-p {
  font-family: var(--font-sans);
  font-size: 14.5px;
  line-height: 2.1;
  font-weight: 400;
  color: rgba(25, 22, 19, 0.82);
  margin: 0;
  text-wrap: pretty;
}

/* ⑥ 模块四：底部金句与联系我们（贴细线收尾） */
.indsol-auto__footer {
  margin-top: clamp(36px, 5vh, 52px);
}
.indsol-auto__divider {
  width: 100%;
  height: 1px;
  background: rgba(25, 22, 19, 0.15);
  margin-bottom: 18px;
}
.indsol-auto__quote-row {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  flex-wrap: wrap;
  margin: 0;
}
.indsol-auto__quote {
  font-family: var(--font-sans);
  font-size: 13.5px;
  font-weight: 400;
  letter-spacing: .06em;
  color: rgba(25, 22, 19, 0.72);
  line-height: 1;
  margin: 0;
}
.indsol-auto__cta {
  background: #191613;
  color: #FAF7F0;
  border: none;
  border-radius: 999px;
  font-family: inherit;
  font-size: 12.5px;
  font-weight: 600;
  letter-spacing: .04em;
  padding: 6px 18px;
  cursor: pointer;
  transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
}
.indsol-auto__cta:hover {
  transform: translateY(-1px);
  box-shadow: 0 4px 14px rgba(255, 106, 26, 0.35);
  background: var(--accent);
  color: #FFFFFF;
}

/* ===== v331：特钢解决方案详情弹层（按未标题-27.svg精准排版重构，同汽车米色体系规范） ===== */
.indsol-page--steel {
  max-width: 980px;
  margin: 0 auto;
}

/* ① 头部规范：标题与导语 */
.indsol-steel__head {
  margin-bottom: clamp(28px, 4vh, 42px);
}
.indsol-steel__tag {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 12px;
  color: rgba(25, 22, 19, 0.65);
  font-family: var(--font-mono);
  font-size: 13.5px;
  font-weight: 500;
  letter-spacing: .18em;
}
.indsol-steel__tag .mono-tag__sq {
  width: 12px;
  height: 12px;
  background: var(--accent);
  display: inline-block;
  flex-shrink: 0;
}
.indsol-steel__title {
  font-family: var(--font-sans);
  font-size: clamp(30px, 3.4vw, 46px);
  font-weight: 700;
  letter-spacing: .05em;
  color: #191613;
  margin: 0 0 16px;
  line-height: 1.25;
}
.indsol-steel__lead {
  font-family: var(--font-sans);
  font-size: 15px;
  line-height: 1.85;
  font-weight: 400;
  color: rgba(25, 22, 19, 0.78);
  max-width: 860px;
  margin: 0;
  text-wrap: pretty;
}

/* ② 通用区块头（橙色小方块 + 标题） */
.indsol-steel__sec {
  margin-top: clamp(36px, 5vh, 56px);
}
.indsol-steel__sec-head {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 22px;
}
.indsol-steel__sec-sq {
  width: 12px;
  height: 12px;
  background: var(--accent);
  flex-shrink: 0;
}
.indsol-steel__sec-title {
  font-family: var(--font-sans);
  font-size: 18px;
  font-weight: 600;
  letter-spacing: .18em;
  color: #191613;
  margin: 0;
}

/* ③ 模块一：技术优势（左侧热态锻打特写，右侧思源宋体文字与 4 个 3D 模型图解） */
.indsol-steel__tech-cols {
  display: grid;
  grid-template-columns: 1fr;
  gap: 28px;
  align-items: center;
}
@media (min-width: 769px) {
  .indsol-steel__tech-cols {
    grid-template-columns: 0.9fr 1.1fr;
    gap: 36px;
  }
}
.indsol-steel__tech-media {
  background: transparent;
  border-radius: 8px;
  overflow: hidden;
}
.indsol-steel__tech-media img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 8px;
}
.indsol-steel__tech-text {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
}
.indsol-steel__tech-p {
  font-family: 'Source Han Serif SC', 'Source Han Serif CN', 'Noto Serif CJK SC', 'Songti SC', SimSun, serif;
  font-size: clamp(15.5px, 1.2vw, 17px);
  line-height: 1.85;
  letter-spacing: .03em;
  color: #191613;
  margin: 0 0 22px;
  font-weight: 600;
  text-align: left;
}
.indsol-steel__tech-models {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
  width: 100%;
  align-items: end;
}
.indsol-steel__model-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
}
.indsol-steel__model-img {
  width: 100%;
  aspect-ratio: 4 / 3;
  display: flex;
  align-items: center;
  justify-content: center;
}
.indsol-steel__model-img img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  display: block;
}
.indsol-steel__model-label {
  font-family: var(--font-sans);
  font-size: 13px;
  font-weight: 500;
  letter-spacing: .08em;
  color: #191613;
  text-align: center;
}

/* ④ 模块二：加工展示（上排全宽车间整机大图，下排精密阶梯轴双图等高等宽并排） */
.indsol-steel__prods-wall {
  display: flex;
  flex-direction: column;
  gap: 24px;
}
.indsol-steel__prod-hero {
  width: 100%;
}
.indsol-steel__card-frame--hero {
  aspect-ratio: 26 / 15;
  width: 100%;
  border-radius: 8px;
  overflow: hidden;
}
.indsol-steel__card-frame--hero img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  border-radius: 8px;
}
.indsol-steel__prods-row2 {
  display: grid;
  grid-template-columns: 1fr;
  gap: 24px;
}
@media (min-width: 600px) {
  .indsol-steel__prods-row2 {
    grid-template-columns: 1fr 1fr;
  }
}
.indsol-steel__prods-row2 .indsol-steel__card-frame {
  aspect-ratio: 4 / 3;
  width: 100%;
  border-radius: 8px;
  overflow: hidden;
}
.indsol-steel__prods-row2 .indsol-steel__card-frame img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  border-radius: 8px;
}

/* ⑤ 模块三：核心实力 */
.indsol-steel__strength-p {
  font-family: var(--font-sans);
  font-size: 14.5px;
  line-height: 2.1;
  font-weight: 400;
  color: rgba(25, 22, 19, 0.82);
  margin: 0;
  text-wrap: pretty;
}

/* ⑥ 模块四：底部金句与联系我们（贴细线收尾） */
.indsol-steel__footer {
  margin-top: clamp(36px, 5vh, 52px);
}
.indsol-steel__divider {
  width: 100%;
  height: 1px;
  background: rgba(25, 22, 19, 0.15);
  margin-bottom: 18px;
}
.indsol-steel__quote-row {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  flex-wrap: wrap;
  margin: 0;
}
.indsol-steel__quote {
  font-family: var(--font-sans);
  font-size: 13.5px;
  font-weight: 400;
  letter-spacing: .06em;
  color: rgba(25, 22, 19, 0.72);
  line-height: 1;
  margin: 0;
}
.indsol-steel__cta {
  background: #191613;
  color: #FAF7F0;
  border: none;
  border-radius: 999px;
  font-family: inherit;
  font-size: 12.5px;
  font-weight: 600;
  letter-spacing: .04em;
  padding: 6px 18px;
  cursor: pointer;
  transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
}
.indsol-steel__cta:hover {
  transform: translateY(-1px);
  box-shadow: 0 4px 14px rgba(255, 106, 26, 0.35);
  background: var(--accent);
  color: #FFFFFF;
}

/* ==========================================================================
   v333 & v334：第三板块「特种材料」详情弹层（同汽车与特钢米色体系规范，3标题+字号+间距完全统一）
   ========================================================================== */
.indsol-page--special {
  max-width: 980px;
  margin: 0 auto;
  padding: 0 clamp(16px, 2.5vw, 36px);
  color: #191613;
}

.indsol-special__head {
  text-align: left;
  margin-bottom: clamp(24px, 3.5vh, 40px);
}
.indsol-special__tag {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 12px;
  color: rgba(25, 22, 19, 0.65);
  font-family: var(--font-mono);
  font-size: 13.5px;
  font-weight: 500;
  letter-spacing: .18em;
}
.indsol-special__tag .mono-tag__sq {
  width: 12px;
  height: 12px;
  background: var(--accent);
  display: inline-block;
  flex-shrink: 0;
}
.indsol-special__title {
  font-family: var(--font-sans);
  font-size: clamp(30px, 3.4vw, 46px);
  font-weight: 700;
  letter-spacing: .05em;
  color: #191613;
  margin: 0 0 16px;
  line-height: 1.25;
}
.indsol-special__lead {
  font-family: var(--font-sans);
  font-size: 15px;
  line-height: 1.85;
  font-weight: 400;
  color: rgba(25, 22, 19, 0.78);
  max-width: 860px;
  margin: 0;
  text-wrap: pretty;
}

/* 通用区块头（橙色小方块 + 标题）与技术优势向下挪移 */
.indsol-special__sec {
  margin-top: clamp(36px, 5vh, 56px);
}
.indsol-special__sec:first-of-type {
  margin-top: clamp(48px, 6.5vh, 72px);
}
.indsol-special__sec-head {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 22px;
}
.indsol-special__sec-sq {
  width: 12px;
  height: 12px;
  background: var(--accent);
  flex-shrink: 0;
}
.indsol-special__sec-title {
  font-family: var(--font-sans);
  font-size: 18px;
  font-weight: 600;
  letter-spacing: .18em;
  color: #191613;
  margin: 0;
}

/* 模块一：技术优势（左侧图片1热态锻打大图，右侧思源宋体加粗文字） */
.indsol-special__tech-cols {
  display: grid;
  grid-template-columns: 1fr;
  gap: 28px;
  align-items: center;
}
@media (min-width: 769px) {
  .indsol-special__tech-cols {
    grid-template-columns: 0.95fr 1.05fr;
    gap: 36px;
  }
}
.indsol-special__tech-media {
  background: transparent;
  border-radius: 8px;
  overflow: hidden;
}
.indsol-special__tech-media img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 8px;
}
.indsol-special__tech-text {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
}
.indsol-special__tech-p {
  font-family: 'Source Han Serif SC', 'Source Han Serif CN', 'Noto Serif CJK SC', 'Songti SC', SimSun, serif;
  font-size: clamp(16px, 1.25vw, 18px);
  line-height: 1.95;
  letter-spacing: .03em;
  color: #191613;
  margin: 0;
  font-weight: 600;
  text-align: left;
}

/* 模块二：成品展示（上排全宽图片2水雾大图，下排3张卡片并排附文字注释） */
.indsol-special__prods-wall {
  display: flex;
  flex-direction: column;
  gap: 24px;
}
.indsol-special__prod-hero {
  width: 100%;
}
.indsol-special__card-frame--hero {
  aspect-ratio: 26 / 15;
  width: 100%;
  border-radius: 8px;
  overflow: hidden;
}
.indsol-special__card-frame--hero img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  border-radius: 8px;
}
.indsol-special__prods-row2 {
  display: grid;
  grid-template-columns: 1fr;
  gap: 24px;
}
@media (min-width: 600px) {
  .indsol-special__prods-row2 {
    grid-template-columns: 1fr 1fr;
  }
  .indsol-special__prods-row2--three {
    grid-template-columns: repeat(3, 1fr);
  }
}
.indsol-special__prods-row2 .indsol-special__card-frame {
  aspect-ratio: 4 / 3;
  width: 100%;
  border-radius: 8px;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}
.indsol-special__prods-row2 .indsol-special__card-frame img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  border-radius: 8px;
}
.indsol-special__prods-row2 .indsol-special__card-frame--model {
  background: transparent;
  padding: 12px;
}
.indsol-special__prods-row2 .indsol-special__card-frame--model img {
  width: auto;
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  border-radius: 0;
}
.indsol-special__card-label {
  margin-top: 10px;
  font-family: var(--font-sans);
  font-size: 13.5px;
  font-weight: 500;
  letter-spacing: .08em;
  color: rgba(25, 22, 19, 0.72);
  text-align: center;
}

/* 模块三：核心实力 */
.indsol-special__strength-p {
  font-family: var(--font-sans);
  font-size: 14.5px;
  line-height: 2.1;
  font-weight: 400;
  color: rgba(25, 22, 19, 0.82);
  margin: 0;
  text-wrap: pretty;
}

/* 模块四：底部金句与联系我们（贴细线收尾） */
.indsol-special__footer {
  margin-top: clamp(36px, 5vh, 52px);
}
.indsol-special__divider {
  width: 100%;
  height: 1px;
  background: rgba(25, 22, 19, 0.15);
  margin-bottom: 18px;
}
.indsol-special__quote-row {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  flex-wrap: wrap;
  margin: 0;
}
.indsol-special__quote {
  font-family: var(--font-sans);
  font-size: 13.5px;
  font-weight: 400;
  letter-spacing: .06em;
  color: rgba(25, 22, 19, 0.72);
  line-height: 1;
  margin: 0;
}
.indsol-special__cta {
  background: #191613;
  color: #FAF7F0;
  border: none;
  border-radius: 999px;
  font-family: inherit;
  font-size: 12.5px;
  font-weight: 600;
  letter-spacing: .04em;
  padding: 6px 18px;
  cursor: pointer;
  transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
}
.indsol-special__cta:hover {
  transform: translateY(-1px);
  box-shadow: 0 4px 14px rgba(255, 106, 26, 0.35);
  background: var(--accent);
  color: #FFFFFF;
}

/* ==========================================================================
   v334：第四板块「深管」详情弹层（同汽车、特钢、特种材料米色体系规范，4大模块对齐）
   ========================================================================== */
.indsol-page--barrel {
  max-width: 980px;
  margin: 0 auto;
  padding: 0 clamp(16px, 2.5vw, 36px);
  color: #191613;
}

.indsol-barrel__head {
  text-align: left;
  margin-bottom: clamp(24px, 3.5vh, 40px);
}
.indsol-barrel__tag {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 12px;
  color: rgba(25, 22, 19, 0.65);
  font-family: var(--font-mono);
  font-size: 13.5px;
  font-weight: 500;
  letter-spacing: .18em;
}
.indsol-barrel__tag .mono-tag__sq {
  width: 12px;
  height: 12px;
  background: var(--accent);
  display: inline-block;
  flex-shrink: 0;
}
.indsol-barrel__title {
  font-family: var(--font-sans);
  font-size: clamp(30px, 3.4vw, 46px);
  font-weight: 700;
  letter-spacing: .05em;
  color: #191613;
  margin: 0 0 16px;
  line-height: 1.25;
}
.indsol-barrel__lead {
  font-family: var(--font-sans);
  font-size: 15px;
  line-height: 1.85;
  font-weight: 400;
  color: rgba(25, 22, 19, 0.78);
  max-width: 860px;
  margin: 0;
  text-wrap: pretty;
}

/* 通用区块头（橙色小方块 + 标题）与技术优势向下挪移 */
.indsol-barrel__sec {
  margin-top: clamp(36px, 5vh, 56px);
}
.indsol-barrel__sec:first-of-type {
  margin-top: clamp(48px, 6.5vh, 72px);
}
.indsol-barrel__sec-head {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 22px;
}
.indsol-barrel__sec-sq {
  width: 12px;
  height: 12px;
  background: var(--accent);
  flex-shrink: 0;
}
.indsol-barrel__sec-title {
  font-family: var(--font-sans);
  font-size: 18px;
  font-weight: 600;
  letter-spacing: .18em;
  color: #191613;
  margin: 0;
}

/* 模块一：技术优势（左侧图2原理三维图，右侧思源宋体文字） */
.indsol-barrel__tech-cols {
  display: grid;
  grid-template-columns: 1fr;
  gap: 28px;
  align-items: center;
}
@media (min-width: 769px) {
  .indsol-barrel__tech-cols {
    grid-template-columns: 1.08fr 0.92fr;
    gap: 36px;
  }
}
.indsol-barrel__tech-media {
  background: transparent;
  border-radius: 8px;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}
.indsol-barrel__tech-media img {
  width: 100%;
  height: auto;
  max-height: 350px;
  object-fit: contain;
  display: block;
}
.indsol-barrel__tech-text {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
}
.indsol-barrel__tech-p {
  font-family: 'Source Han Serif SC', 'Source Han Serif CN', 'Noto Serif CJK SC', 'Songti SC', SimSun, serif;
  font-size: clamp(16px, 1.25vw, 18px);
  line-height: 1.95;
  letter-spacing: .03em;
  color: #191613;
  margin: 0;
  font-weight: 600;
  text-align: left;
}

/* 模块二：成品展示（三张图并列放成一行三个，4:3统一规格） */
.indsol-barrel__prods-wall {
  width: 100%;
}
.indsol-barrel__prods-row {
  display: grid;
  grid-template-columns: 1fr;
  gap: 24px;
}
@media (min-width: 600px) {
  .indsol-barrel__prods-row {
    grid-template-columns: repeat(3, 1fr);
  }
}
.indsol-barrel__prods-row .indsol-barrel__card-frame {
  aspect-ratio: 4 / 3;
  width: 100%;
  border-radius: 8px;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  background: transparent;
}
.indsol-barrel__prods-row .indsol-barrel__card-frame img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  border-radius: 8px;
}

/* 模块三：核心实力 */
.indsol-barrel__strength-p {
  font-family: var(--font-sans);
  font-size: 14.5px;
  line-height: 2.1;
  font-weight: 400;
  color: rgba(25, 22, 19, 0.82);
  margin: 0;
  text-wrap: pretty;
}

/* 模块四：底部金句与联系我们（贴细线收尾） */
.indsol-barrel__footer {
  margin-top: clamp(36px, 5vh, 52px);
}
.indsol-barrel__divider {
  width: 100%;
  height: 1px;
  background: rgba(25, 22, 19, 0.15);
  margin-bottom: 18px;
}
.indsol-barrel__quote-row {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  flex-wrap: wrap;
  margin: 0;
}
.indsol-barrel__quote {
  font-family: var(--font-sans);
  font-size: 13.5px;
  font-weight: 400;
  letter-spacing: .06em;
  color: rgba(25, 22, 19, 0.72);
  line-height: 1;
  margin: 0;
}
.indsol-barrel__cta {
  background: #191613;
  color: #FAF7F0;
  border: none;
  border-radius: 999px;
  font-family: inherit;
  font-size: 12.5px;
  font-weight: 600;
  letter-spacing: .04em;
  padding: 6px 18px;
  cursor: pointer;
  transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
}
.indsol-barrel__cta:hover {
  transform: translateY(-1px);
  box-shadow: 0 4px 14px rgba(255, 106, 26, 0.35);
  background: var(--accent);
  color: #FFFFFF;
}





@media (max-width: 768px) {
    /* v339：移动端纯粹单列流式自适应，彻底消除网格重叠 */
  .case-slide__photos {
    display: flex !important;
    flex-direction: column !important;
    gap: 12px !important;
  }
  .case-slide__photos > * {
    width: 100% !important;
    grid-column: auto !important;
    grid-row: auto !important;
  }
  .case-slide {
    height: auto !important;
    min-height: auto !important;
  }
  .case-item__frame {
    width: 100% !important;
    height: auto !important;
    aspect-ratio: 16 / 10 !important;
    min-height: auto !important;
    max-height: none !important;
  }
  .case-card,
  .case-card--span2,
  .case-card--span3,
  .case-card--wide,
  .case-card--single,
  .case-card--box-cap,
  .case-card--side,
  .case-card--box-sub,
  .case-craft-card {
    width: 100% !important;
    height: auto !important;
  }
  .case-side-photos,
  .case-rf-left-col,
  .case-box-duo-col,
  .case-box-group,
  .case-grid213-left,
  .case-grid213-right {
    display: flex !important;
    flex-direction: column !important;
    width: 100% !important;
  }
  .case-box-thumbs {
    width: 100% !important;
  }
    box-sizing: border-box !important;
    margin-top: 6px !important;
    padding: 14px 16px !important;
  }
}
