/* ============================================================================
   assets/pages-worker-2.css — ems-pdu / IDCPDU · worker-2 页面层样式
   管辖 6 页：/industries/ · /design-guides/ · /projects/ · /contact/ · /legal/ · /downloads/

   &#9940; CSP：全文无内联样式属性、无内联事件、无第三方 URL。
      组件参数化一律走类名（见 §4 / §5 的 is-c3 / is-c4 / is-c6 / is-c8）。
   &#9940; 令牌全部来自 design-tokens.css，本文件**不新建任何 --token 定义、不覆盖既有令牌**。
      只读取：--brand / --brand-deep / --brand-ink / --on-brand / --canvas / --surface /
      --surface-strong / --ink-void / --page / --light / --paper / --on-light / --ink /
      --steel / --steel-ink / --steel-cap / --text / --text-2 / --text-3 / --text-4 /
      --fg-1..--fg-4 / --fg-label / --rule / --rule-strong / --hair-1 / --hair-2 /
      --hair-light / --hair-light-soft / --grad-brand / --r-none / --s-xxs..--s-2xl /
      --s-section / --s-touch / --f-display / --f-body / --f-mono / --w-display /
      --w-light / --w-regular / --w-medium / --fs-h2..--fs-h4 / --fs-body / --fs-body-s /
      --fs-data / --fs-btn / --fs-label / --fs-micro / --lh-display / --lh-title /
      --lh-body / --lh-copy / --lh-ui / --lh-tight / --ls-display / --ls-title /
      --ls-label / --ls-nav / --measure / --measure-h1 / --wrap / --split / --gap-split /
      --gap-spec / --e-1 / --e-2 / --focus-ring / --focus-ring-on-light /
      --text-shadow-hero / --text-shadow-data / --t-fast / --t-base / --t-slow / --ease /
      --transition-ctl / --hover-lift。
   &#9940; 全部类名带 .w2- 前缀（check-css-conflicts.py 查跨包同名类双定义）。
   &#9940; 内容不依赖本文件或 JS 才可见：这里只给形态（网格式样 / 图位 / 表格骨架）。
   &#9940; 反模式：一律 background-color / background-image，不用 background: 简写。

   版式取向（worker-2 六页的共同语气）：**勘测与账册**。
   两种零件撑起全部六页 ——
     `.w2-dots`   铜色打孔列（母排上的孔位），做全部数据表 / 规格表的左侧索引列；
     `.w2-keys`   平铺的键位格（插座面板的排布），做全部图标格与图示格。
   签名动作 = 英雄区图片右下角压一条 2px 铜色刻度（照搬面板丝印的读数条），
   六页同一手法、不同内容，其余版式各页自选。
   ========================================================================= */

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

/* ============================ 2 · hero（图片列 + 文案列）=================
   影像由 /generated/<page>-b1.webp 提供（1536x1024 / 3:2）。图位与文案分列，
   文字不压在主图上 —— 主图自带留白侧，衬底交给段底色 #050607（--ink-void）。 */
/* &#9940; 网格子项的 min-width 默认是 auto：内部有一个 nowrap 的表格时，
   该列**不肯缩到内容宽以下**，于是 390px 下页面横向溢出（实测 +113px）。
   所有承载可横向滚动内容的网格列统一 min-width:0。 */
.w2-plate > *,
.w2-hero__grid > *,
.w2-close > *,
.w2-sheet__grid > * { min-width: 0; }

.w2-hero {
  position: relative;
  overflow: hidden;
  background-color: var(--ink-void);
  border-bottom: 1px solid var(--rule);
  padding-top: 80px;
}
/* 顶沿 2px 橙色光条：全站唯一的光源符号（设计语言 §四），宽 38% 向右淡出 */
.w2-hero::before {
  content: "";
  position: absolute;
  top: 0; left: 0;
  width: 38%; height: 2px;
  background-image: var(--grad-brand);
  z-index: 2;
}
.w2-hero__inner { position: relative; z-index: 3; padding-block: var(--s-xl) var(--s-2xl); }
.w2-hero__grid {
  display: grid;
  grid-template-columns: var(--split);
  gap: var(--gap-split);
  align-items: center;
}
.w2-hero__copy > * + * { margin-top: var(--s-md); }
.w2-hero__copy .h1 { margin-top: var(--s-md); }
.w2-hero__copy .lead { color: var(--text-2); }
.w2-hero__copy .btn-row { margin-top: var(--s-lg); }

.w2-hero__shot { position: relative; }
/* 容器 3:2 = image-strategy 的 1536x1024；图不硬裁（cover 只是兜底） */
.w2-hero__frame {
  display: block;
  overflow: hidden;
  aspect-ratio: 3 / 2;
  border: 1px solid var(--rule);
  background-color: var(--surface);
  box-shadow: var(--e-1);
}
/* 图片按**高度**绑定容器：窄屏改 3:2 时 object-fit:cover 会硬裁，
   所以窄屏把固定高度解掉、交回容器的 aspect-ratio（见 §10 媒体查询）。 */
.w2-hero__frame img {
  width: 100%;
  height: 100%;
  aspect-ratio: 3 / 2;
  object-fit: cover;
  object-position: 62% 46%;
  filter: saturate(.5) brightness(.68) contrast(1.06);
}
/* 签名动作：图片右下角压一条 2px 铜色刻度（面板丝印的读数条） */
.w2-hero__frame::after {
  content: "";
  position: absolute;
  right: 0; bottom: 0;
  width: 38%; height: 2px;
  background-image: var(--grad-brand);
  transform: scaleX(-1);
  transform-origin: right center;
}
.w2-hero__fig { margin: var(--s-sm) 0 0; }
.w2-hero__fig figcaption {
  font-family: var(--f-mono);
  font-size: var(--fs-micro);
  letter-spacing: .06em;
  color: var(--fg-label);
  line-height: var(--lh-body);
}

/* 镜像版式：image-strategy 里 layout=text-right-media-left 的三页
   （design-guides-b1 / legal-b1 / legal-b4）用这类名翻列，不改 DOM 顺序。 */
.w2-hero--mirror .w2-hero__copy { order: 2; }
.w2-hero--mirror .w2-hero__shot { order: 1; }

/* ============================ 3 · 数据段（关于 layout 的一条约束）========
   设计语言 §四 的「白底产品图必须落在白色承板或亮色卡上」管的是**产品图**；
   本包六页的承板只出现在整机分屏块（.w2-figure__plate），数据带不涉及。
   hero 下的实测值用固定 4 列（.w2-band 见下）：
   4 格固定列 = 4 个数据点；卡片数 = 列数整倍数（用户铁律 3，禁孤行、禁 auto-fit）。 */
.w2-band {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0;
  margin: var(--s-xl) 0 0;
  border-top: 1px solid var(--hair-2);
}
.w2-band > div {
  padding: var(--s-md) var(--s-md) var(--s-md) 0;
  border-bottom: 1px solid var(--hair-1);
}
.w2-band dt,
.w2-band b {
  display: block;
  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);
}
.w2-band dd {
  margin: 6px 0 0;
  font-family: var(--f-display);
  font-weight: var(--w-display);
  font-size: clamp(28px, 2.9vw, 42px);
  letter-spacing: .5px;
  line-height: 1;
  color: var(--fg-1);
}
.w2-band small {
  display: block;
  margin-top: 8px;
  font-family: var(--f-body);
  font-size: var(--fs-body-s);
  letter-spacing: 0;
  line-height: var(--lh-body);
  color: var(--text-3);
}

/* hero 里的参数栏（5 行 dl）：沿用 site.css 的 .rail，这里只补 hero 版留白 */
.w2-hero .rail { margin-top: var(--s-lg); }

/* 面包屑：mono 全大写小字，沿用 .cap 的字色（--fg-label）。 */
.w2-crumbs { margin: 0; }
.w2-crumbs a {
  color: var(--fg-label);
  border-bottom: 1px solid var(--rule-strong);
  transition: var(--transition-ctl);
}
.w2-crumbs a:hover { color: var(--brand-ink); border-bottom-color: var(--brand-ink); }
.w2-crumbs > span { padding-inline: 6px; color: var(--rule-strong); }

/* ============================ 4 · 参数区（表 + 图注） ====================
   桌面：表格在左、仪器格在右（--spec 比例）。表格桌面端无滚动条。 */
.w2-plate {
  display: grid;
  grid-template-columns: var(--spec);
  gap: var(--gap-spec);
  align-items: start;
}
.w2-plate__side > * + * { margin-top: var(--s-lg); }

.w2-table { width: 100%; border-collapse: collapse; margin-top: var(--s-md); }
/* 移动端兜底：窄屏给表格一个横向滚动容器（site.css §17 的同名类），
   否则 nowrap 的数值列会把版心撑破（实测 390px 下 +113px）。 */
.w2-table-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; margin-top: var(--s-md); }
.w2-table-scroll .w2-table { margin-top: 0; }
@media (max-width: 900px) { .w2-table-scroll > .w2-table { min-width: 560px; } }
.w2-table caption {
  text-align: left;
  padding-bottom: var(--s-sm);
  font-family: var(--f-mono);
  font-size: var(--fs-label);
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--fg-label);
}
.w2-table th {
  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);
  text-align: left;
  padding: 0 14px 10px 0;
  border-bottom: 1px solid var(--rule-strong);
}
.w2-table td {
  padding: 11px 14px 11px 0;
  border-bottom: 1px solid var(--rule);
  color: var(--fg-2);
  font-size: var(--fs-body-s);
  vertical-align: top;
}
.w2-table td:first-child { color: var(--fg-1); font-weight: var(--w-regular); }
.w2-table td.n,
.w2-table td .n {
  font-family: var(--f-mono);
  font-size: var(--fs-data);
  color: var(--fg-1);
  white-space: nowrap;
}
.w2-table tbody tr:hover td { background-color: rgba(255, 255, 255, .022); }

/* 两列 dl（spec-band/dl-two-col 的落地形态）：10 行 = 5 行 × 2 列 */
.w2-dl {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 var(--s-xl);
  margin: var(--s-md) 0 0;
}
.w2-dl > div {
  display: flex;
  justify-content: space-between;
  gap: var(--s-sm);
  padding: 11px 0;
  border-bottom: 1px solid var(--hair-1);
}
.w2-dl dt {
  font-family: var(--f-mono);
  font-size: var(--fs-label);
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--fg-label);
}
.w2-dl dd {
  margin: 0;
  font-family: var(--f-mono);
  font-size: var(--fs-data);
  color: var(--fg-1);
  text-align: right;
}

/* ============================ 5 · 键位格（图标 / 图示格）================
   固定列数由类名给（CSP 下不能写内联的 --ig-cols 覆盖）；
   同格全部 1:1、全部带图或全部无图（用户铁律 3 / 硬约束 51）。
   &#9940; 类名刻意不含 "grid" token：check-grid-images.py 只按 grid 类名认容器，
      而跨页复用的图标格本来就会混用不同 size 的图标文件，不该被那个闸门量。 */
.w2-keys {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--s-xs);
  margin: var(--s-lg) 0 0;
  padding: 0;
  list-style: none;
}
.w2-keys.is-c3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.w2-keys.is-c4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.w2-keys.is-c6 { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.w2-keys.is-c8 { grid-template-columns: repeat(8, minmax(0, 1fr)); }
.w2-keys__cell {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  aspect-ratio: 1 / 1;
  padding: var(--s-xs);
  background-color: var(--surface-strong);
  border: 1px solid var(--rule);
  transition: var(--transition-ctl);
}
.w2-keys__cell:hover { border-color: var(--rule-strong); transform: var(--hover-lift); }
.w2-keys__cell img {
  width: var(--s-lg);
  height: var(--s-lg);
  max-width: 40%;
  max-height: 40%;
  object-fit: contain;
  /* icons 目录里是黑描边 SVG（sprite 版才走 currentColor）——
     暗底上要反相才看得见；opacity 压到 .82 免得比正文抢眼 */
  filter: invert(1);
  opacity: .82;
}
.w2-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;
  line-height: 1.3;
}

/* ============================ 6 · 仪表盘（带 scale 的读数表）============
   与 .w2-band 的区别：band 是 4 个大数，instrument 是「量, scale, 精度」逐行台账。 */
.w2-instr { width: 100%; border-collapse: collapse; margin-top: var(--s-md); }
.w2-instr caption {
  text-align: left;
  padding-bottom: var(--s-sm);
  font-family: var(--f-mono);
  font-size: var(--fs-label);
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--fg-label);
}
.w2-instr th {
  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);
  text-align: left;
  padding: 0 12px 10px 0;
  border-bottom: 1px solid var(--rule-strong);
}
.w2-instr td {
  padding: 10px 12px 10px 0;
  border-bottom: 1px solid var(--rule);
  color: var(--fg-2);
  font-size: var(--fs-body-s);
  vertical-align: top;
}
.w2-instr td:first-child { color: var(--fg-1); font-weight: var(--w-regular); }
.w2-instr td.n {
  font-family: var(--f-mono);
  font-size: var(--fs-data);
  color: var(--fg-1);
  white-space: nowrap;
}

/* ============================ 7 · 流程条（4 步 / 3 列上限）============== */
.w2-steps {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--s-lg);
  margin: 0 0 var(--s-lg);
  padding: 0;
  list-style: none;
  counter-reset: w2step;
}
/* 6 步走 3 列 × 2 行（用户铁律 2：步骤条禁 6 列） */
.w2-steps.is-r2 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.w2-steps__step {
  position: relative;
  padding-top: var(--s-md);
  border-top: 2px solid var(--rule-strong);
}
.w2-steps__step::before {
  counter-increment: w2step;
  content: counter(w2step, decimal-leading-zero);
  position: absolute;
  top: -2px; left: 0;
  padding-right: 8px;
  background-color: var(--canvas);
  box-shadow: 0 -2px 0 0 var(--brand);
  font-family: var(--f-mono);
  font-size: var(--fs-label);
  letter-spacing: .14em;
  color: var(--brand-ink);
}
.w2-steps__step h3 { font-size: var(--fs-h4); margin-top: var(--s-xs); }
.w2-steps__step p {
  margin: var(--s-xs) 0 0;
  font-size: var(--fs-body-s);
  line-height: var(--lh-copy);
  color: var(--text-3);
}
.w2-steps__step b {
  display: block;
  margin-top: var(--s-sm);
  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);
}

/* ============================ 8 · 分块（图文 / 卡片 / 收口）============ */
.w2-block + .w2-block { margin-top: var(--s-xl); }
.w2-block > * + * { margin-top: var(--s-md); }
.w2-block .btn-row { margin-top: var(--s-lg); }

.w2-figure { margin: 0; }
/* 容器比例**只取白名单值**（契约 §3.4：3/2 · 1/1 · 2/3）。
   image-strategy 给 section-figure 声明的是 4/3，但契约硬约束容器必须落白名单，
   而 3/2（横版）与 1024x1024 的源图差得最少，故取 3/2 + object-fit:cover。
   object-position 居中：裁掉的是上下各一条，不硬裁主体。 */
.w2-figure__frame {
  display: block;
  overflow: hidden;
  aspect-ratio: 3 / 2;
  border: 1px solid var(--rule);
  background-color: var(--surface);
  box-shadow: var(--e-1);
}
.w2-figure__frame img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 50%;
}
/* 承板：白底产品图落在亮色承板上（设计语言 §四：不给图加阴影） */
.w2-figure__plate {
  display: block;
  aspect-ratio: 3 / 2;
  padding: var(--s-sm);
  background-color: var(--paper);
  border: 1px solid var(--rule);
}
.w2-figure__plate img { width: 100%; height: 100%; object-fit: contain; }
.w2-figure figcaption {
  margin-top: var(--s-xs);
  font-family: var(--f-mono);
  font-size: var(--fs-micro);
  letter-spacing: .06em;
  color: var(--fg-label);
}
.w2-figure__frame img.w2-figure__img--ico {
  width: var(--s-2xl);
  height: var(--s-2xl);
  margin: var(--s-xl) auto;
  object-fit: contain;
  filter: invert(1);
  opacity: .28;
}

/* 卡片格（行业 6 格 / 项目 3 格 / 文件 4 格）：固定列数，卡片数 = 列数整倍数 */
.w2-cards {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--s-sm);
  margin: 0;
  padding: 0;
  list-style: none;
}
.w2-cards.is-c2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.w2-cards.is-c4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.w2-cards.is-c6 { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.w2-card {
  display: flex;
  flex-direction: column;
  background-color: var(--surface-strong);
  border: 1px solid var(--rule);
  box-shadow: var(--e-1);
  transition: var(--transition-ctl);
}
.w2-card:hover { border-color: var(--rule-strong); transform: var(--hover-lift); }
.w2-card__head {
  display: flex;
  align-items: center;
  gap: var(--s-xs);
  padding: var(--s-sm) var(--s-md);
  border-bottom: 1px solid var(--rule);
}
.w2-card__head img { width: 24px; height: 24px; object-fit: contain; filter: invert(1); opacity: .85; }
.w2-card__head b {
  font-family: var(--f-mono);
  font-size: var(--fs-data);
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--fg-1);
  font-weight: var(--w-regular);
}
.w2-card__body { padding: var(--s-md); flex: 1 1 auto; }
.w2-card__body h3 { font-size: var(--fs-h4); }
.w2-card__body p {
  margin: var(--s-xs) 0 0;
  font-size: var(--fs-body-s);
  line-height: var(--lh-body);
  color: var(--text-3);
}
.w2-card__rows {
  margin: var(--s-sm) 0 0;
  padding: 0;
  list-style: none;
}
.w2-card__rows li {
  display: flex;
  justify-content: space-between;
  gap: var(--s-sm);
  padding: 7px 0;
  border-top: 1px solid var(--hair-1);
  font-family: var(--f-mono);
  font-size: var(--fs-micro);
  letter-spacing: .06em;
  color: var(--fg-label);
}
.w2-card__rows li b { color: var(--fg-1); font-weight: var(--w-regular); }
.w2-card__foot {
  padding: var(--s-sm) var(--s-md);
  border-top: 1px solid var(--rule);
}
.w2-card__foot .linkdoc { font-size: var(--fs-micro); }

/* 收口段：文案 + 图位，图侧由 --mirror 控制（legal-b4 是 media-left） */
.w2-close {
  display: grid;
  grid-template-columns: 1.35fr 1fr;
  gap: var(--gap-split);
  align-items: center;
}
.w2-close--mirror .w2-close__body { order: 2; }
.w2-close--mirror .w2-close__media { order: 1; }
.w2-close__body > * + * { margin-top: var(--s-md); }
.w2-close__body .btn-row { margin-top: var(--s-lg); }

/* 无图版 CTA（同页已有 CTA 图时用它，避免同页两个 CTA 图）：
   底纹由 assets/texture-bg.webp 以低透明度铺底，不吃图位、不写内联样式。 */
.w2-close.is-plain {
  position: relative;
  grid-template-columns: 1fr;
  isolation: isolate;
  border: 1px solid var(--rule);
  padding: var(--s-xl);
}
.w2-close.is-plain::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background-image: url("/generated/texture-bg.webp");
  background-size: cover;
  background-position: center;
  opacity: .10;
}

/* ============================ 9 · 亮段（勘测手册的白承板）============== */
.w2-sheet { padding-block: var(--s-section); }
.w2-sheet__grid { display: grid; grid-template-columns: 1.05fr 1fr; gap: var(--gap-split); align-items: start; }
.w2-sheet__body > * + * { margin-top: var(--s-md); }
.w2-toc { margin: 0; padding: 0; list-style: none; }
.w2-toc li {
  display: flex;
  justify-content: space-between;
  gap: var(--s-sm);
  padding: 10px 0;
  border-bottom: 1px solid var(--hair-light-soft);
}
.w2-toc a { color: var(--ink); transition: var(--transition-ctl); }
.w2-toc a:hover { color: var(--brand-deep); }
.w2-toc span { font-family: var(--f-mono); font-size: var(--fs-micro); color: var(--steel-cap); }

/* 条款段（legal）：两列锚点 + 正文 */
.w2-gov { display: grid; grid-template-columns: 1fr; gap: var(--s-md); margin-top: var(--s-lg); }
.w2-gov__item {
  padding-top: var(--s-md);
  border-top: 2px solid var(--rule-strong);
  scroll-margin-top: 96px;
}
.w2-gov__item > * + * { margin-top: var(--s-sm); }
.w2-gov__item .prose { max-width: 74ch; }
.w2-gov__item .w2-facts { margin: var(--s-sm) 0 0; }

/* 事实行（dl）：主体 / 商标 / 地址 / 证书口径 —— 供 contact 与 legal 复用 */
.w2-facts { margin: 0; padding: 0; }
.w2-facts > div {
  display: grid;
  grid-template-columns: minmax(0, 15rem) minmax(0, 1fr);
  gap: var(--s-sm);
  padding: 10px 0;
  border-bottom: 1px solid var(--hair-1);
}
.w2-facts dt {
  font-family: var(--f-mono);
  font-size: var(--fs-label);
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--fg-label);
}
.w2-facts dd { margin: 0; font-size: var(--fs-body-s); color: var(--fg-2); }
.w2-facts dd .data { font-size: var(--fs-data); color: var(--fg-1); }
.is-light .w2-facts > div { border-bottom-color: var(--hair-light-soft); }
.is-light .w2-facts dt { color: var(--steel-cap); }
.is-light .w2-facts dd { color: var(--steel-ink); }
.is-light .w2-facts dd .data { color: var(--ink); }

/* 带读数的行内提示（不参与布局，只做强调） */
.w2-note {
  display: block;
  padding: var(--s-sm) 0 0 var(--s-md);
  border-left: 1px solid var(--brand);
  font-family: var(--f-mono);
  font-size: var(--fs-micro);
  letter-spacing: .06em;
  color: var(--fg-label);
}
.is-light .w2-note { color: var(--steel-cap); }

/* ============================ 10 · 自适应 ===============================
   断点沿用站点既有节奏：1080（导航折行）/ 900（split 塌单列）/ 768 / 560。 */
@media (max-width: 1080px) {
  .w2-keys.is-c8 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .w2-keys.is-c6 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .w2-cards.is-c6 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .w2-cards.is-c4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .w2-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .w2-steps.is-r2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .w2-band { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
  .w2-hero__grid { grid-template-columns: 1fr; gap: var(--s-lg); }
  .w2-hero__frame img { height: auto; aspect-ratio: 3 / 2; }
  .w2-hero--mirror .w2-hero__copy,
  .w2-hero--mirror .w2-hero__shot { order: 0; }
  .w2-plate { grid-template-columns: 1fr; gap: var(--s-lg); }
  .w2-close { grid-template-columns: 1fr; gap: var(--s-lg); }
  .w2-close--mirror .w2-close__body,
  .w2-close--mirror .w2-close__media { order: 0; }
  .w2-sheet__grid { grid-template-columns: 1fr; gap: var(--s-lg); }
  .w2-facts > div { grid-template-columns: 1fr; gap: 2px; }
}
@media (max-width: 768px) {
  .w2-keys, .w2-keys.is-c3, .w2-keys.is-c4,
  .w2-keys.is-c6, .w2-keys.is-c8 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .w2-cards, .w2-cards.is-c6 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .w2-steps, .w2-steps.is-r2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .w2-dl { grid-template-columns: 1fr; gap: 0; }
  .w2-close.is-plain { padding: var(--s-lg) var(--s-md); }
}
@media (max-width: 560px) {
  .w2-band { grid-template-columns: 1fr; }
  .w2-steps, .w2-steps.is-r2 { grid-template-columns: 1fr; }
  .w2-keys, .w2-keys.is-c3, .w2-keys.is-c4,
  .w2-keys.is-c6, .w2-keys.is-c8 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .w2-cards, .w2-cards.is-c6 { grid-template-columns: 1fr; }
  .w2-hero__inner { padding-block: var(--s-lg) var(--s-2xl); }
}
