/* ============================================================================
   assets/pages-worker-7.css — ems-pdu / IDCPDU · worker-7 页面层样式
   管辖 3 页：/industries/edge-cabinet/ · /industries/telecom/ · /industries/mining/

   规则（任务书 §3.7）：本文件**所有选择器都带 .w7- 前缀**。对 site.css 既有类的
   覆盖一律写成 `.w7-xxx .site-class` 这种**作用域收紧**形式（既提高特异性、
   也避免跨包选择器冲突 —— check-css-conflicts.py 的 FAIL 判据是「选择器字符串相等」）。

   &#9940; CSP：style-src 'self'。本文件无 @import、无第三方 URL、无 data-URI。
   &#9940; 令牌全部来自 design-tokens.css：本文件**不新建 --token、不覆盖既有令牌**。
   &#9940; aspect-ratio 白名单：只用 **3/2**（hero / banner 底图 1536x1024）与
       **1/1**（b2 / b5 / b6 实文件 1024x1024）。不用 4/3、16/10。
   &#9940; **首图 / 大幅图渲染盒高必须 <= 视口高的 101%**（1440x900 与 390x844 两档）。
       本包两条路径守住它：
         · 全幅铺底图（hero / cta）按**宽度**定尺寸 `width:100%;height:auto`，
           再加 `max-height: min(100svh, 84svh)` 收口 —— **不写 `height:100%`**
           （那会让图跟着容器长高，窄屏下渲染到视口高的 115%~129%，实测命中
           check-layout-edges.js 判据①）；
         · 分栏图 / 网格图容器带 `aspect-ratio`，窄屏宽度变小则高度**同比下降**
           （390px 下 1:1 图只有 ~330px = 视口高的 39%）。
   &#9940; 版式取向（本包三页的共同语气）：**在役机柜的现场账册**。
       两个零件撑起三页 ——
         `.w7-rail`  仪表导轨：顶部 2px 橙条 + 左侧 mono 标签列 + 右侧数值列，
                     做 hero 参数栏 / 分屏参数集 / 收口参数集（三页同一手法）；
         `.w7-keys`  键位格：固定列数的图标 / 图示格，做每页的图示位。
       签名动作 = 每个信息板块标题左侧压一条 2px 橙色刻度（`__eyebrow::before`），
       三页同一手法、内容各不相同，其余版式各页自选
       （edge = 铺底影像 + 横铺导轨；telecom = 左文右图 + 立式导轨；
         mining = 暗走道影像带 + 全幅数据导轨）。
   ========================================================================= */

/* ============================ 0 · 页级底座 ============================== */
.w7-main { display: block; }

/* &#9940; 网格子项 min-width 默认 auto：内部有 nowrap 的参数值时该列不肯收缩，
   390px 下页面横向溢出。所有承载表格 / 参数行的网格列统一 min-width:0。 */
.w7-hero__grid > *,
.w7-strip__grid > *,
.w7-split > *,
.w7-spec__grid > *,
.w7-cert > *,
.w7-close > * { min-width: 0; }

/* 板块标题左侧的 2px 橙色刻度（签名动作，三页共用） */
.w7-eyebrow { display: inline-flex; align-items: center; gap: 10px; }
.w7-eyebrow::before {
  content: "";
  width: 18px; height: 2px;
  background-color: var(--brand);
  flex: 0 0 auto;
}

/* 图注（mono 小字，弱化） */
.w7-cap {
  display: block;
  margin-top: var(--s-xs);
  padding-top: 9px;
  border-top: 1px solid var(--rule);
  font-family: var(--f-mono);
  font-size: var(--fs-micro);
  letter-spacing: .05em;
  line-height: var(--lh-body);
  color: var(--fg-label);
}

/* 一行小注 */
.w7-note {
  display: block;
  margin-top: var(--s-md);
  padding-top: 12px;
  border-top: 1px solid var(--hair-1);
  font-family: var(--f-mono);
  font-size: var(--fs-micro);
  letter-spacing: .05em;
  line-height: var(--lh-body);
  color: var(--fg-label);
}

/* ================== 1 · 仪表导轨（hero 参数栏 / 参数集）==================
   edge-cabinet 与 telecom 用**横向**导轨（数据条），mining 用**纵向**列表。
   同一个类名，两种排法各页自选 —— 与 site.css 的 .rail 不同形，
   所以不复用 .rail（避免同名双定义；本包全部自起类名）。 */
.w7-rail {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0 var(--s-lg);
  margin: 0;
  padding-top: 18px;
  border-top: 1px solid var(--hair-2);
}
.w7-rail > div {
  padding: 12px 0 14px;
  border-bottom: 1px solid var(--hair-1);
}
.w7-rail dt {
  display: flex;
  align-items: center;
  gap: 8px;
  font-family: var(--f-mono);
  font-size: var(--fs-label);
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--fg-4);
}
.w7-rail dt img { width: 16px; height: 16px; flex: 0 0 auto; opacity: .95; }
.w7-rail dd {
  margin: 8px 0 0;
  font-family: var(--f-mono);
  font-size: 15px;
  letter-spacing: .02em;
  color: var(--fg-1);
}
.w7-rail small {
  display: block;
  margin-top: 6px;
  font-family: var(--f-body);
  font-size: var(--fs-micro);
  line-height: var(--lh-ui);
  color: var(--fg-label);
}
/* 纵向导轨（mining 的参数集）：标签左、数值右，与 site.css 的 .rail 同构但独立 */
.w7-rail--stack { grid-template-columns: 1fr; gap: 0; }
.w7-rail--stack > div {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: var(--s-md);
  padding: 11px 0;
}
.w7-rail--stack dt { letter-spacing: .12em; color: var(--fg-label); }
.w7-rail--stack dd { margin: 0; font-size: var(--fs-data); text-align: right; }
.w7-rail--stack small { margin: 0; text-align: right; max-width: 26ch; }

/* ============================ 2 · hero ==================================
   edge-cabinet / mining：全幅影像 + 遮罩（文字压在影像的留白侧）。
   telecom：左文右图分列（`--split`），图框 1:1。
   &#9940; 两种排法都**不留没有用的空白区**：铺底版的留白侧正好是文案列，
   分列版的留白侧在图片内部，文案不进图。 */
.w7-hero {
  position: relative;
  overflow: hidden;
  background-color: var(--ink-void);
  border-bottom: 1px solid var(--rule);
  padding-top: 80px;
}
/* 顶沿 2px 橙色光条（全站唯一的光源符号），宽 38% 向右淡出 */
.w7-hero::before {
  content: "";
  position: absolute;
  top: 0; left: 0;
  width: 38%; height: 2px;
  background-image: var(--grad-brand);
  z-index: 3;
}
/* &#9940; 全幅铺底影像：按宽度定尺寸 + max-height 收口。
   `max-height: min(100svh, 84svh)` = 84svh —— 用 min() 写法把「上限」这件事
   写在声明里，避免随容器长高。超出部分由 object-fit:cover 裁切。 */
.w7-hero__bg { position: absolute; inset: 0; z-index: 0; }
.w7-hero__bg img {
  width: 100%;
  height: auto;
  max-height: min(100svh, 84svh);
  object-fit: cover;
  filter: saturate(.5) brightness(.58) contrast(1.06);
}
.w7-hero__scrim { position: absolute; inset: 0; z-index: 1; background-image: var(--scrim-h), var(--scrim-v); }
.w7-hero__inner { position: relative; z-index: 4; padding-block: var(--s-section) var(--s-xl); }
.w7-hero__grid {
  display: grid;
  grid-template-columns: var(--split);
  gap: var(--gap-split);
  align-items: end;
}
.w7-hero__copy > * + * { margin-top: var(--s-md); }
.w7-hero__copy .h1 { margin-top: var(--s-md); text-shadow: var(--text-shadow-hero); }
.w7-hero__copy .lead { color: var(--text-2); text-shadow: var(--text-shadow-data); }
.w7-hero__copy .btn-row { margin-top: var(--s-lg); }
/* 铺底版：文案列收窄到左 2/3，右侧交给影像的留白（不占满、也不空摆） */
.w7-hero--plate .w7-hero__copy { max-width: 62ch; }
/* 分列版（telecom）：左文右图；`--media-left` 把图表列翻到左侧 */
.w7-hero--split { padding-top: 80px; background-color: var(--page); }
.w7-hero--split .w7-hero__inner { padding-block: var(--s-xl) var(--s-2xl); }
.w7-hero--split .w7-hero__grid { align-items: center; }
.w7-hero--split .w7-hero__copy .h1,
.w7-hero--split .w7-hero__copy .lead { text-shadow: none; }
.w7-hero--split .w7-hero__copy .lead { color: var(--fg-3); }
.w7-hero--media-left .w7-hero__shot { order: 1; }
.w7-hero--media-left .w7-hero__copy { order: 2; }

/* 图框：1:1（实文件 1024x1024）+ cover 铺满，宽度决定高度 */
.w7-hero__shot { margin: 0; }
.w7-frame {
  display: block;
  overflow: hidden;
  aspect-ratio: 1 / 1;
  border: 1px solid var(--rule);
  background-color: var(--surface);
  box-shadow: var(--e-1);
}
.w7-frame img {
  width: 100%; height: 100%;
  object-fit: cover;
  object-position: 50% 46%;
  filter: saturate(.55) brightness(.78) contrast(1.04);
}
/* 图框右下角的 2px 橙色读数条（面板丝印的读数条，与 hero 顶沿同一符号） */
.w7-frame--tick { position: relative; }
.w7-frame--tick::after {
  content: "";
  position: absolute;
  right: 0; bottom: 0;
  width: 38%; height: 2px;
  background-color: var(--brand);
}
/* 铺底版 hero 的图位条：图不落在框里，读数条改压在图位容器上 */
.w7-hero__tick { position: absolute; right: 0; bottom: 0; z-index: 2; width: 38%; height: 2px; background-color: var(--brand); }

/* 面包屑：mono 小字 + 下划线暗示可点 */
.w7-crumbs { margin: 0; }
.w7-crumbs a {
  color: var(--fg-label);
  border-bottom: 1px solid var(--rule-strong);
  transition: var(--transition-ctl);
}
.w7-crumbs a:hover { color: var(--brand-ink); border-bottom-color: var(--brand-ink); }
.w7-crumbs > span { padding-inline: 6px; color: var(--rule-strong); }

/* ================= 3 · 影像数据带（mining 的 hero 下半 + 全幅带）========
   全幅影像带：`layout=text-right-media-left` 的堆叠版 —— 文字满幅排在图**上方**，
   影像在最下方压一条。图按宽度定尺寸 + max-height 收口。 */
.w7-strip {
  position: relative;
  background-color: var(--surface);
  border-bottom: 1px solid var(--rule);
  padding-block: var(--s-section) 0;
}
.w7-strip__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--gap-split);
  align-items: start;
}
.w7-strip__body > * + * { margin-top: var(--s-md); }
.w7-strip__body .h2 { margin-top: var(--s-xs); }
.w7-strip__shot { margin: 0; }
.w7-strip__shot .w7-frame { aspect-ratio: 3 / 2; }
.w7-strip__band {
  position: relative;
  margin-top: var(--s-xl);
  border-top: 1px solid var(--rule);
  background-color: var(--ink-void);
  overflow: hidden;
}
.w7-strip__band img {
  display: block;
  width: 100%;
  height: auto;
  max-height: min(100svh, 62svh);
  object-fit: cover;
  object-position: 62% 50%;
  filter: saturate(.42) brightness(.52) contrast(1.06);
}
.w7-strip__band figcaption {
  position: absolute;
  left: 0; right: 0; bottom: 0;
  padding: var(--s-md) var(--gutter);
  background-image: var(--scrim-img);
  font-family: var(--f-mono);
  font-size: var(--fs-micro);
  letter-spacing: .05em;
  color: var(--text-2);
}

/* ======================= 4 · 分屏 feature-split =========================
   .w7-split 复用 site.css 的 .split 基础（1.55fr : 1fr / gap 56px），
   只加「网格项拉伸」与「图框 1:1」。左右互换复用 .split.is-image-left /
   .split.is-image-right（site.css 用 CSS order 实现，不用 direction:rtl）。
   &#9940; 用户铁律 1：分屏图文强制同高 —— 图框 height:100% + 图片 cover 铺满列高。 */
.w7-split { align-items: stretch; }
.w7-split > * { align-self: stretch; }
.w7-split .w7-frame { height: 100%; }
.w7-split__body > * + * { margin-top: var(--s-md); }
.w7-split__body .h2 { margin-top: var(--s-xs); }
.w7-split__body .btn-row { margin-top: var(--s-lg); }
.w7-split__media { margin: 0; }

/* 分屏里的参数行（窄参数集，2 列） */
.w7-params {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 var(--s-lg);
  margin: 0;
  padding: 0;
  list-style: none;
  border-top: 1px solid var(--hair-2);
}
.w7-params li {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: var(--s-sm);
  padding: 10px 0;
  border-bottom: 1px solid var(--hair-1);
  font-size: var(--fs-body-s);
  color: var(--fg-3);
}
.w7-params li b {
  font-family: var(--f-mono);
  font-size: var(--fs-data);
  color: var(--fg-1);
  font-weight: var(--w-regular);
  white-space: nowrap;
}

/* ======================= 5 · 参数表 spec-band ==========================
   0px 直角参数表（签名动作）。桌面端**不滚动**；窄屏用 site.css 的
   .table-scroll 兜底（它只在媒体查询里给 min-width:560px）。 */
.w7-spec { display: grid; grid-template-columns: var(--spec); gap: var(--gap-spec); align-items: start; }
.w7-spec__side > * + * { margin-top: var(--s-lg); }
.w7-table { width: 100%; border-collapse: collapse; margin-top: var(--s-md); }
.w7-table caption {
  text-align: left;
  padding-bottom: 12px;
  font-family: var(--f-mono);
  font-size: var(--fs-label);
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--fg-label);
}
.w7-table th {
  font-family: var(--f-mono);
  font-size: var(--fs-label);
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--fg-label);
  text-align: left;
  font-weight: var(--w-regular);
  padding: 0 14px 9px 0;
  border-bottom: 1px solid var(--rule-strong);
}
.w7-table td {
  padding: 9px 14px 9px 0;
  border-bottom: 1px solid var(--rule);
  color: var(--fg-2);
  font-size: var(--fs-body-s);
  vertical-align: top;
}
.w7-table td:first-child { color: var(--fg-1); font-weight: var(--w-regular); }
.w7-table td.n {
  font-family: var(--f-mono);
  font-size: var(--fs-data);
  color: var(--fg-1);
  white-space: nowrap;
}
.w7-table tbody tr:hover td { background-color: rgba(255, 255, 255, .022); }

/* ======================= 6 · 读数墙 readout-wall =======================
   register-grid：**6 格固定 6 列**（1080 以下 3 列 / 768 以下 2 列）——
   6 能被 6、3、2 整除，任何断点都不留孤行（用户铁律 3）。
   &#9940; 不用 auto-fit：那会产生孤行。 */
.w7-wall {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 0;
  margin: var(--s-lg) 0 0;
  padding: 0;
  list-style: none;
  border-top: 1px solid var(--hair-2);
}
.w7-wall__cell {
  padding: var(--s-md) 18px var(--s-md) 0;
  border-bottom: 1px solid var(--hair-1);
  transition: var(--transition-ctl);
}
.w7-wall__cell:hover { transform: var(--hover-lift); }
.w7-wall__cell b {
  display: flex;
  align-items: center;
  gap: 8px;
  font-family: var(--f-mono);
  font-size: var(--fs-label);
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--fg-label);
  font-weight: var(--w-regular);
}
.w7-wall__cell strong {
  display: block;
  margin-top: 8px;
  font-family: var(--f-display);
  font-weight: var(--w-display);
  font-size: clamp(26px, 2.8vw, 40px);
  letter-spacing: .5px;
  line-height: 1;
  color: var(--fg-1);
}
.w7-wall__cell span {
  display: block;
  margin-top: 9px;
  font-size: var(--fs-body-s);
  line-height: var(--lh-ui);
  color: var(--fg-3);
}

/* ======================= 7 · 图标 / 图示格 =============================
   每个信息型板块要有图标 / 图示 / 图表之一。这里两种格：
     `.w7-keys`  固定列数的图标键位格（6 / 4 列，卡片数 = 列数整倍数）
     `.w7-xsec`  横断面图示（内联 SVG + 引出标签行）
   &#9940; 只用站点既有的 /assets/icons/*.svg 与页面内联 SVG，
   不引入任何新的内容图（内容图每页唯一，跨页复用会触发复用告警）。 */
.w7-keys {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: var(--s-xs);
  margin: var(--s-lg) 0 0;
  padding: 0;
  list-style: none;
}
.w7-keys--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.w7-keys__cell {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  padding: 13px 6px;
  border: 1px solid var(--rule);
  background-color: var(--surface);
  transition: var(--transition-ctl);
}
.w7-keys__cell:hover { border-color: var(--rule-strong); transform: var(--hover-lift); }
.w7-keys__cell img { width: 24px; height: 24px; object-fit: contain; opacity: .95; }
.w7-keys__cell b {
  font-family: var(--f-mono);
  font-size: var(--fs-micro);
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--fg-label);
  font-weight: var(--w-regular);
  text-align: center;
}
.w7-keys__cell span {
  font-family: var(--f-mono);
  font-size: var(--fs-micro);
  color: var(--fg-2);
  text-align: center;
}

/* 横断面图示：左 = 内联 SVG 剖面，右 = 引出标签行 */
.w7-xsec {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: var(--gap-split);
  align-items: center;
  margin-top: var(--s-lg);
  padding: var(--s-md);
  border: 1px solid var(--rule);
  background-color: var(--surface);
}
.w7-xsec svg { display: block; width: 100%; height: auto; color: var(--fg-label); }
.w7-xsec__legend { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--hair-2); }
.w7-xsec__legend li {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: var(--s-md);
  padding: 9px 0;
  border-bottom: 1px solid var(--hair-1);
  font-size: var(--fs-body-s);
  color: var(--fg-3);
}
.w7-xsec__legend b { font-family: var(--f-mono); font-size: var(--fs-data); color: var(--fg-1); font-weight: var(--w-regular); white-space: nowrap; }

/* ======================= 8 · 认证账册 cert-wall =======================
   is-ledger：只写证名 + 持证主体 + 口径，**编号不落文字**。
   左栏 = 影像（b5，1:1）+ 底部徽章卡（badge 占位，无扫描件时用），右栏 = 账册。 */
.w7-cert {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
  gap: var(--gap-split);
  align-items: start;
  margin-top: var(--s-lg);
}
.w7-cert__media { margin: 0; }
.w7-cert__stack { display: grid; gap: var(--s-sm); }
.w7-ledger {
  margin: 0;
  padding: 0;
  list-style: none;
  border-top: 1px solid var(--rule-strong);
}
.w7-ledger > li {
  display: grid;
  grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr);
  gap: var(--s-sm);
  align-items: baseline;
  padding: 11px 0;
  border-bottom: 1px solid var(--rule);
}
.w7-ledger b { display: block; font-size: var(--fs-body-s); color: var(--fg-1); font-weight: var(--w-regular); }
.w7-ledger span {
  display: block;
  font-family: var(--f-mono);
  font-size: var(--fs-micro);
  letter-spacing: .05em;
  color: var(--fg-label);
}
/* 亮段（is-light）下的账册颜色由 site.css 的 .is-light 组统一接管：
   .w7-ledger 用的是 .prose 之外的自己一套，所以这里显式补亮段值。 */
.is-light .w7-ledger { border-top-color: var(--hair-light); }
.is-light .w7-ledger > li { border-bottom-color: var(--hair-light-soft); }
.is-light .w7-ledger b { color: var(--on-light); }
.is-light .w7-ledger span { color: var(--steel-cap); }
.is-light .w7-cap { border-top-color: var(--hair-light); color: var(--steel-cap); }
.is-light .w7-rail { border-top-color: var(--hair-light); }
.is-light .w7-rail > div { border-bottom-color: var(--hair-light-soft); }
.is-light .w7-rail dt { color: var(--steel-cap); }
.is-light .w7-rail dd { color: var(--on-light); }
.is-light .w7-rail small { color: var(--steel-ink); }
.is-light .w7-eyebrow::before { background-color: var(--brand); }

/* 徽章卡（资质占位规格：品牌色边框 + 证名 + 一行口径 + 待替换标记） */
.w7-badges {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--s-xs);
  margin: var(--s-sm) 0 0;
  padding: 0;
  list-style: none;
}
.w7-badge {
  padding: var(--s-md) var(--s-md) var(--s-md);
  border: 1px solid var(--brand);
  background-color: var(--surface);
}
.w7-badge b {
  display: block;
  font-family: var(--f-display);
  font-size: 20px;
  letter-spacing: var(--ls-title);
  text-transform: uppercase;
  color: var(--fg-1);
}
.w7-badge span {
  display: block;
  margin-top: 6px;
  font-family: var(--f-mono);
  font-size: var(--fs-micro);
  letter-spacing: .05em;
  line-height: var(--lh-body);
  color: var(--fg-label);
}

/* ======================= 9 · 收口段 cta-band =========================
   全幅 cta-bg 铺底（合法共享组件）+ 一侧 b6 影像位。
   &#9940; 同页唯一转化动作：只有这一段的实心按钮带 data-modal-open。 */
.w7-close {
  position: relative;
  overflow: hidden;
  background-color: var(--ink-void);
  color: var(--fg-3);
  border-bottom: 1px solid var(--rule);
  padding-block: var(--s-section);
}
.w7-close__bg { position: absolute; inset: 0; z-index: 0; }
.w7-close__bg img {
  width: 100%; height: auto;
  max-height: min(100svh, 84svh);
  object-fit: cover;
  object-position: 62% 46%;
  filter: saturate(.34) brightness(.34) contrast(1.04);
}
.w7-close__scrim { position: absolute; inset: 0; z-index: 1; background-image: var(--scrim-h), var(--scrim-v); }
.w7-close__inner { position: relative; z-index: 2; }
.w7-close__grid {
  display: grid;
  grid-template-columns: var(--split);
  gap: var(--gap-split);
  align-items: stretch;
}
.w7-close__body > * + * { margin-top: var(--s-md); }
.w7-close__body .btn-row { margin-top: var(--s-lg); }
.w7-close__body .lead { color: var(--text-2); text-shadow: var(--text-shadow-data); }
.w7-close__body .h2 { text-shadow: var(--text-shadow-hero); }
.w7-close__body .w7-rail { border-top-color: var(--hair-2); }
.w7-close__media { margin: 0; }

/* ======================= 10 · 断点 ==================================== */
@media (max-width: 1080px) {
  .w7-hero__grid,
  .w7-strip__grid,
  .w7-spec,
  .w7-close__grid { grid-template-columns: 1fr; gap: var(--s-lg); }
  .w7-hero--media-left .w7-hero__shot,
  .w7-hero--media-left .w7-hero__copy { order: 0; }
  .w7-rail { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .w7-rail--stack { grid-template-columns: 1fr; }
  .w7-wall { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .w7-keys { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .w7-keys--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .w7-cert { grid-template-columns: 1fr; }
  .w7-xsec { grid-template-columns: 1fr; }
}

@media (max-width: 900px) {
  .w7-split { align-items: start; }
  .w7-split .w7-frame { height: auto; aspect-ratio: 1 / 1; }
}

@media (max-width: 768px) {
  .w7-wall { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .w7-params { grid-template-columns: 1fr; }
  .w7-keys--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .w7-ledger > li { grid-template-columns: 1fr; gap: 4px; }
  .w7-badges { grid-template-columns: 1fr; }
}

@media (max-width: 560px) {
  .w7-rail { grid-template-columns: 1fr; }
  .w7-rail > div { padding: 10px 0 12px; }
  .w7-keys { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .w7-hero__inner { padding-block: var(--s-xl) var(--s-lg); }
  .w7-strip__band figcaption { padding-inline: var(--s-md); }
}

/* ==========================================================================
   协调者修正（layout gate，2026-09-26）
   闸门实测两处命中，均为「空白/高度」类，不动内容与设计：
     1. /industries/telecom/  内容贴下边线 2.3px（需 >=8） 线=w7-rail
        to .w7-rail 原为 margin:0，顶部分隔线与上方 hero 网格只剩 2.3px
     2. /industries/mining/   大图[solo] 渲染 558px = 视口高的 62%（限 55%）
        to solo 图缺少视口高度上限
   ========================================================================== */
.w7-rail { margin-top: 12px; }

.w7-frame img,
.w7-strip__band img,
.w7-hero__shot img { max-height: 52svh; object-fit: cover; }
