/* =====================================================================
   四川微震隔控科技官网 —— 页面级区块 site-ext.css
   在设计基座 site.css 之后加载。分节：
   1 内页骨架（横向二级菜单）/ 2 富文本内容 / 3 产品列表与详情 /
   4 新闻与案例（列表·详情）/ 5 分页 / 6 首页板块 /
   7 服务中心与技术链 / 8 技术咨询表单 / 9 推荐盒与空状态 /
   10 响应式（720 / 1120，每档仅此一处）
   ===================================================================== */

/* ---------- 1. 内页骨架：banner 下横向二级菜单 + 通栏内容 ---------- */
.subnav {
  display: flex;
  gap: 4px;
  align-items: center;
  overflow-x: auto;
  padding-inline: var(--pad-x);
  background: var(--panel);
  border-bottom: 1px solid var(--line);
  scrollbar-width: none;
}

.subnav::-webkit-scrollbar {
  display: none;
}

.subnav a {
  position: relative;
  flex: none;
  padding: 16px 18px;
  color: var(--muted);
  font-size: 15px;
  font-weight: 600;
  white-space: nowrap;
  transition: color 0.15s ease;
}

.subnav a:hover {
  color: var(--brand-ink);
}

.subnav a.is-active {
  color: var(--brand-ink);
  font-weight: 700;
}

.subnav a.is-active::after {
  position: absolute;
  right: 18px;
  bottom: 0;
  left: 18px;
  height: 2px;
  content: "";
  background: var(--brand);
}

.page-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-items: start;
  padding-block: clamp(32px, 4vw, 48px) var(--section-y);
  padding-inline: var(--pad-x);
  background: var(--panel);
}

.page-layout > .page-main {
  min-width: 0;
}

/* 相邻区块之间的呼吸感 */
.page-layout .page-main > * + * {
  margin-top: clamp(28px, 3.5vw, 40px);
}

/* 内层区块吃掉自身留白，节奏统一交给 page-layout */
.page-layout .content-page,
.page-layout .news-article,
.page-layout .product-detail,
.page-layout .section {
  padding: 0;
  background: transparent;
}

/* 联系页：深色技术咨询表单在单栏内变成圆角卡片 */
.page-layout .inquiry-section {
  padding: clamp(30px, 4vw, 44px);
  border-radius: var(--r-lg);
}

/* 联系页：服务中心 2 列 */
.page-layout .office-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-auto-rows: 1fr;
}

/* ---------- 2. 富文本内容 ---------- */
.content-page {
  background: transparent;
}

.content-page .content-body {
  max-width: 920px;
}

.content-body {
  font-size: 17px;
  line-height: 1.85;
}

.content-body h2 {
  margin: 48px 0 16px;
  padding-left: 16px;
  border-left: 4px solid var(--brand);
  font-size: clamp(22px, 2.4vw, 28px);
  font-weight: 800;
  line-height: 1.3;
}

.content-body > h2:first-child {
  margin-top: 0;
}

.content-body h3 {
  margin: 30px 0 10px;
  font-size: 20px;
  font-weight: 700;
  line-height: 1.4;
}

.content-body p {
  margin: 12px 0;
  color: #33454a;
}

.content-body ul,
.content-body ol {
  margin: 12px 0;
  padding-left: 22px;
}

.content-body li {
  margin: 7px 0;
  color: #33454a;
}

.content-body ul li::marker {
  color: var(--brand);
}

.content-body blockquote {
  margin: 22px 0;
  padding: 18px 22px;
  border-left: 4px solid var(--brand);
  border-radius: 0 var(--r-sm) var(--r-sm) 0;
  background: var(--soft);
}

.content-body blockquote p {
  margin: 0;
  color: var(--deep);
  font-size: var(--fs-md);
  font-weight: 700;
}

.content-body table {
  width: 100%;
  margin: 20px 0;
  border-collapse: collapse;
  font-size: 15px;
}

.content-body th,
.content-body td {
  padding: 11px 14px;
  border: 1px solid var(--line);
  text-align: left;
}

.content-body th {
  color: var(--deep);
  background: var(--soft);
  font-weight: 700;
  white-space: nowrap;
}

.content-body img {
  margin: 20px 0;
  border-radius: var(--r-md);
}

.content-body figure {
  margin: 24px 0;
}

.content-body figure img {
  width: 100%;
  margin: 0;
}

.content-body figcaption {
  margin-top: 10px;
  color: var(--muted);
  font-size: var(--fs-sm);
  line-height: 1.6;
}

/* 设备/图片清单：自适应小图网格，统一 4:3 */
.content-body .figure-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(190px, 1fr));
  gap: 18px;
  margin: 26px 0;
}

.content-body .figure-grid figure {
  margin: 0;
}

.content-body .figure-grid img {
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

.content-body .figure-grid figcaption {
  margin-top: 8px;
  font-size: var(--fs-xs);
}

/* 合作伙伴 logo 墙 */
.content-body .logo-wall {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(170px, 1fr));
  gap: 16px;
  margin: 26px 0;
}

.content-body .logo-wall figure {
  display: grid;
  place-items: center;
  min-height: 112px;
  margin: 0;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: var(--r-md);
  background: #fff;
}

.content-body .logo-wall img {
  width: auto;
  max-width: 100%;
  max-height: 72px;
  margin: 0;
}

/* 单页头图 / 文章题图 */
.page-cover,
.article-cover {
  max-width: 920px;
  margin: 0 0 32px;
}

.page-cover img,
.article-cover img {
  display: block;
  width: 100%;
  max-height: 420px;
  object-fit: cover;
  border-radius: var(--r-md);
}

/* 内容页底部 CTA 条 */
.content-cta {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  align-items: center;
  justify-content: space-between;
  max-width: 920px;
  padding: 24px 28px;
  border: 1px solid var(--line);
  border-radius: var(--r-md);
  background: var(--soft);
}

.content-cta p {
  margin: 0;
  color: var(--deep);
  font-size: var(--fs-md);
  font-weight: 700;
}

/* 列表页/联系页里 CTA 单独成节：跟随通栏铺满，
   否则宽屏（容器 1600）下 920 的卡片右侧会空出一大块 */
.page-layout .section .content-cta,
/* 关于微震 / 业务领域图文页：CTA 是 about-page 栅格的通栏子项，与章节同宽 */
.about-page .content-cta {
  max-width: none;
}

/* ---------- 3. 产品列表与详情 ---------- */
/* 4 列（原 3 列）。1600 容器下每列 385px，与首页产品区一致；
   实测 3 列时卡片 520x579（宽高比 0.90）、图文比 2:1，文字区被图压扁。 */
.product-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 20px;
}

.product-card {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: var(--r-md);
  background: #fff;
  box-shadow: var(--shadow-sm);
  transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
}

.product-card:hover {
  border-color: rgba(0, 125, 150, 0.4);
  box-shadow: var(--shadow-md);
  transform: translateY(-3px);
}

.product-card .thumb {
  position: relative;
  display: grid;
  aspect-ratio: 4 / 3;
  place-items: center;
  overflow: hidden;
  background: linear-gradient(150deg, var(--soft), #e4efec);
}

/* contain 而非 cover：与详情页 .main-image 统一裁切规则。
   27 张新图是 1200x900(4:3)，在 4:3 框里 contain 与 cover 结果一致、零回归；
   136 栏 9 张旧图（比例 1.15-3.18）改为完整可见——MYD 719x226 原先只能看到 42% 宽度。 */
.product-card .thumb img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  transition: transform 0.35s ease;
}

.product-card:hover .thumb img {
  transform: scale(1.04);
}

/* 无图兜底：品类名占位 */
.product-card .thumb span {
  color: var(--muted);
  font-size: var(--fs-sm);
  font-weight: 700;
  letter-spacing: 0.1em;
}

.product-card .body {
  display: flex;
  flex: 1;
  flex-direction: column;
  padding: 16px 18px 18px;
}

.product-card h3 {
  margin: 0;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.45;
}

.product-card h3 a:hover {
  color: var(--brand-ink);
}

.product-card .model {
  margin-top: 4px;
  color: var(--muted);
  font-size: var(--fs-xs);
  font-weight: 600;
  letter-spacing: 0.04em;
}

/* 2 行截断：实测 36 条摘要均在 2 行内，原 3 行是虚设配置、白占纵向空间 */
.product-card p {
  display: -webkit-box;
  overflow: hidden;
  margin: 8px 0 0;
  color: var(--muted);
  font-size: var(--fs-sm);
  line-height: 1.7;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

/* 卡片尾行「查看详情」 */
.product-card .card-more {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: auto;
  padding-top: 14px;
  color: var(--brand-ink);
  font-size: var(--fs-sm);
  font-weight: 700;
}

.product-card .card-more::after {
  content: "\2192";
  transition: transform 0.18s ease;
}

.product-card:hover .card-more::after {
  transform: translateX(4px);
}

/* 列表分组标题：编号 + 名称 + 数量徽标 + 描述换行。
   原版标题与描述同行 baseline 对齐，长描述会挤；且组间 44px 与组内首行 20px
   差距太小，7 个分组容易糊成一片。现改为描述独占一行、组间加顶线拉开层级。 */
.group-heading {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 16px;
  align-items: baseline;
  margin: 0 0 24px;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--line);
}

.group-heading + .product-grid + .group-heading,
.group-heading ~ .group-heading {
  margin-top: clamp(56px, 6vw, 76px);
  padding-top: clamp(20px, 2.4vw, 28px);
  border-top: 1px solid var(--line);
}

.group-heading h2 {
  margin: 0;
  font-size: clamp(20px, 1.9vw, 24px);
  font-weight: 800;
}

/* 数量徽标（如「共 5 款」）：右对齐到行尾 */
.group-heading .group-count {
  margin-left: auto;
  color: var(--brand-ink);
  font-size: var(--fs-sm);
  font-weight: 800;
  letter-spacing: 0.04em;
}

/* 描述独占一行 */
.group-heading p {
  flex-basis: 100%;
  margin: 0;
  color: var(--muted);
  font-size: var(--fs-sm);
}

/* ---- 产品详情 ---- */
.product-detail {
  display: grid;
  grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.08fr);
  gap: 40px;
  align-items: start;
}

.product-gallery .main-image {
  display: grid;
  aspect-ratio: 4 / 3;
  place-items: center;
  overflow: hidden;
  padding: 24px;
  border: 1px solid var(--line);
  border-radius: var(--r-md);
  background: linear-gradient(150deg, var(--soft), #e4efec);
}

.product-gallery .main-image img {
  max-height: 100%;
  object-fit: contain;
}

.product-gallery .thumbs {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 12px;
}

/* 88px（原 72px）：72px 视觉权重过低，4 张相册的第 2-4 张几乎等于废掉；
   同时配合 initGallery 的主图切换，触控目标也更大 */
.product-gallery .thumbs img {
  width: 88px;
  height: 88px;
  padding: 5px;
  object-fit: contain;
  border: 1px solid var(--line);
  border-radius: var(--r-sm);
  background: #fff;
  cursor: pointer;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.product-gallery .thumbs img:hover {
  border-color: var(--brand);
}

.product-gallery .thumbs img:focus-visible {
  outline: 2px solid var(--brand-ink);
  outline-offset: 2px;
}

.gallery-empty {
  color: var(--muted);
  font-size: var(--fs-sm);
}

.product-info .model {
  color: var(--brand-ink);
  font-size: var(--fs-sm);
  font-weight: 800;
  letter-spacing: 0.06em;
}

.product-info h1 {
  margin: 8px 0 14px;
  font-size: clamp(26px, 3vw, 34px);
  font-weight: 800;
  line-height: 1.3;
}

.product-info .summary {
  color: #33454a;
  font-size: var(--fs-md);
  line-height: 1.8;
}

.product-info .facts {
  display: grid;
  gap: 0;
  margin: 22px 0 0;
}

.product-info .facts div {
  display: grid;
  grid-template-columns: 96px 1fr;
  gap: 12px;
  padding: 11px 0;
  border-top: 1px solid var(--line);
  font-size: 15px;
}

.product-info .facts dt {
  color: var(--muted);
  font-weight: 700;
}

.product-info .facts dd {
  margin: 0;
}

.product-info .facts dd a {
  color: var(--brand-ink);
}

.product-info .hero-actions {
  margin-top: 24px;
}

/* 白底上的浅色次级按钮（区别于深色 Hero 里的 .button.secondary） */
.product-info .button.secondary,
.page-hero .button.secondary {
  color: var(--ink);
  border-color: var(--line);
  background: #fff;
  box-shadow: none;
}

.product-info .button.secondary:hover {
  border-color: var(--brand-ink);
  color: var(--brand-ink);
}

/* 详情页右栏：同类产品。
   原右栏仅 213px 高、左栏画廊 622px，右下 409px 纯空白（align-items:start 无吸底）；
   补一格同类产品把右栏撑到与左栏接近，顺带把「看完这个还看哪个」的路径补上。 */
.product-info .siblings {
  margin-top: 26px;
  padding-top: 20px;
  border-top: 1px solid var(--line);
}

.product-info .siblings h4 {
  margin: 0 0 12px;
  color: var(--muted);
  font-size: var(--fs-xs);
  font-weight: 800;
  letter-spacing: 0.1em;
}

.product-info .siblings-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.product-info .siblings-grid a {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 10px;
  border: 1px solid var(--line);
  border-radius: var(--r-sm);
  background: var(--panel);
  transition: border-color 0.18s ease, box-shadow 0.18s ease;
}

.product-info .siblings-grid a:hover {
  border-color: rgba(0, 125, 150, 0.4);
  box-shadow: var(--shadow-sm);
}

.product-info .siblings-grid img {
  width: 100%;
  height: 88px;
  object-fit: contain;
  background: var(--soft);
  border-radius: var(--r-sm);
}

.product-info .siblings-grid span {
  color: var(--ink);
  font-size: var(--fs-xs);
  font-weight: 600;
  line-height: 1.5;
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

/* 相册缩略图激活态（initGallery 切主图时跟随高亮） */
.product-gallery .thumbs img.is-active {
  border-color: var(--brand);
  box-shadow: 0 0 0 1px var(--brand);
}

/* 页头产品计数胶囊（「共 36 款产品」） */
.page-hero .cat-count {
  display: inline-flex;
  align-items: center;
  margin-top: 14px;
  padding: 4px 14px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--panel);
  color: var(--brand-ink);
  font-size: var(--fs-sm);
  font-weight: 800;
  letter-spacing: 0.04em;
}

/* ---------- 4. 新闻与案例 ---------- */
/* 列表行：左图右文（缩略图 4:3） */
.news-list {
  display: grid;
  margin: 0;
  padding: 0;
  list-style: none;
}

.news-list li {
  border-bottom: 1px solid var(--line);
}

.news-list li:first-child {
  border-top: 1px solid var(--line);
}

.news-list a {
  display: flex;
  gap: 22px;
  align-items: center;
  padding: 20px 4px;
}

.news-list .thumb {
  flex: none;
  width: 176px;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border: 1px solid var(--line);
  border-radius: var(--r-sm);
}

.news-list a > span:not(.thumb) {
  flex: 1;
  min-width: 0;
}

.news-list .title {
  color: var(--ink);
  font-size: 17px;
  font-weight: 700;
  line-height: 1.5;
  transition: color 0.15s ease;
}

.news-list a:hover .title {
  color: var(--brand-ink);
}

.news-list .lead {
  display: -webkit-box;
  overflow: hidden;
  margin-top: 6px;
  color: var(--muted);
  font-size: var(--fs-sm);
  line-height: 1.7;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.news-list time {
  flex: none;
  color: var(--muted);
  font-size: var(--fs-sm);
}

/* ---- 详情页正文区 ---- */
.news-article {
  background: transparent;
}

.news-article .article-head {
  max-width: 920px;
  padding-bottom: 20px;
  border-bottom: 1px solid var(--line);
}

.news-article h1 {
  margin: 0 0 12px;
  font-size: clamp(26px, 3vw, 34px);
  font-weight: 800;
  line-height: 1.35;
}

.news-article .summary {
  margin: 0 0 14px;
  color: #33454a;
  font-size: var(--fs-md);
  line-height: 1.8;
}

.news-article .meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 22px;
  color: var(--muted);
  font-size: var(--fs-sm);
}

.news-article .meta a {
  color: var(--brand-ink);
}

.news-article .content-body {
  max-width: 920px;
}

.news-article .scenario-grid {
  margin-top: 28px;
}

.news-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 24px;
  justify-content: space-between;
  max-width: 920px;
  margin-top: 44px;
  padding-top: 22px;
  border-top: 1px solid var(--line);
  color: var(--muted);
  font-size: 15px;
}

.news-nav a {
  color: var(--ink);
  font-weight: 600;
}

.news-nav a:hover {
  color: var(--brand-ink);
}

/* ---------- 5. 分页 ---------- */
.pagination {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  justify-content: center;
  margin: 44px 0 0;
  padding: 0;
  list-style: none;
}

.pagination a,
.pagination span {
  display: grid;
  min-width: 40px;
  height: 40px;
  place-items: center;
  padding: 0 12px;
  color: var(--muted);
  border: 1px solid var(--line);
  border-radius: var(--r-sm);
  background: #fff;
  font-size: 15px;
  font-weight: 700;
  transition: color 0.15s ease, border-color 0.15s ease, background 0.15s ease;
}

.pagination a:hover {
  color: var(--brand-ink);
  border-color: rgba(0, 125, 150, 0.45);
}

.pagination .is-active span,
.pagination .is-active a {
  color: #fff;
  border-color: var(--brand-ink);
  background: var(--brand-ink);
}

.pagination .is-disabled span {
  color: #adbdba;
  background: var(--soft);
}

/* ---------- 6. 首页板块 ---------- */
/* 关于微震：左图右文（无图时 .is-text 退回单列宽文） */
.focus-band {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.12fr);
  gap: clamp(32px, 5vw, 64px);
  align-items: center;
  padding-block: var(--section-y);
  padding-inline: var(--pad-x);
  background: var(--panel);
}

.focus-band.is-text {
  grid-template-columns: minmax(0, 860px);
}

.focus-media {
  position: relative;
  overflow: hidden;
  border-radius: var(--r-lg);
  box-shadow: var(--shadow-md);
}

.focus-media img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  transition: transform 0.5s ease;
}

.focus-media:hover img {
  transform: scale(1.03);
}

/* 图片角标：呼应「研发、制造、服务于一体」 */
.focus-media-label {
  position: absolute;
  right: 16px;
  bottom: 16px;
  padding: 8px 16px;
  color: #fff;
  border: 1px solid rgba(255, 255, 255, 0.28);
  border-radius: var(--r-sm);
  background: rgba(8, 24, 29, 0.72);
  backdrop-filter: blur(8px);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.08em;
}

.focus-copy h2 {
  max-width: none;
  text-wrap: balance;
}

.focus-copy .content-body {
  margin-top: 18px;
}

.focus-copy .focus-more {
  margin-top: 22px;
}

.focus-band .content-body {
  font-size: var(--fs-base);
  line-height: 1.85;
}

.focus-band .content-body p {
  margin: 10px 0;
  color: #33454a;
}

/* 三大业务卡片 */
.sector-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
}

.sector-card {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: var(--r-md);
  background: #fff;
  box-shadow: var(--shadow-sm);
  transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
}

.sector-card:hover {
  box-shadow: var(--shadow-md);
  transform: translateY(-3px);
}

.sector-card.is-featured {
  border-color: rgba(0, 125, 150, 0.45);
}

.sector-card img {
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
}

.sector-card > div {
  display: flex;
  flex: 1;
  flex-direction: column;
  padding: 22px 24px 24px;
}

.sector-card > div > p:first-child {
  color: var(--brand-ink);
  font-size: var(--fs-xs);
  font-weight: 800;
  letter-spacing: 0.1em;
}

.sector-card h3 {
  margin: 10px 0 8px;
  font-size: 20px;
  font-weight: 800;
  line-height: 1.35;
}

.sector-card p {
  margin: 0;
  color: var(--muted);
  font-size: var(--fs-sm);
  line-height: 1.75;
}

.sector-card a {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: auto;
  padding-top: 16px;
  color: var(--brand-ink);
  font-weight: 700;
}

.sector-card a::after {
  content: "\2192";
  transition: transform 0.18s ease;
}

.sector-card a:hover::after {
  transform: translateX(4px);
}

/* 首页产品区：4 列 */
.product-preview .product-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

/* 技术服务 / 公司优势卡片列表 */
.advantage-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.advantage-list.cols-3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

/* 7 张卡时末行仅 1 张：横排成通栏卡（3n+1 才命中，卡片数变化自适应） */
.advantage-list.cols-3 > article:last-child:nth-child(3n + 1) {
  display: flex;
  grid-column: 1 / -1;
  gap: 12px 32px;
  align-items: baseline;
}

.advantage-list.cols-3 > article:last-child:nth-child(3n + 1) h3 {
  flex: none;
  margin: 0;
}

.advantage-list.cols-3 > article:last-child:nth-child(3n + 1) p {
  margin: 0;
}

.advantage-list article {
  padding: 24px 26px;
  border: 1px solid var(--line);
  border-radius: var(--r-md);
  background: #fff;
  box-shadow: var(--shadow-sm);
}

.advantage-list h3 {
  margin: 0 0 8px;
  font-size: 18px;
  font-weight: 800;
}

.advantage-list h3 a:hover {
  color: var(--brand-ink);
}

.advantage-list p {
  margin: 0;
  color: var(--muted);
  font-size: 15px;
  line-height: 1.8;
}

/* 公司优势：左图右列表 */
.advantage-layout {
  display: grid;
  grid-template-columns: minmax(0, 0.78fr) minmax(0, 1.22fr);
  gap: 28px;
  align-items: stretch;
}

.advantage-layout > img {
  width: 100%;
  height: 100%;
  min-height: 440px;
  object-fit: cover;
  border-radius: var(--r-md);
  box-shadow: var(--shadow-md);
}

/* 应用案例卡片（首页 + 列表页 + 案例详情图网格共用） */
.scenario-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
}

.scenario-grid article {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  padding: 0;
  border: 1px solid var(--line);
  border-radius: var(--r-md);
  background: #fff;
  box-shadow: var(--shadow-sm);
  transition: transform 0.18s ease, box-shadow 0.18s ease;
}

.scenario-grid article:hover {
  box-shadow: var(--shadow-md);
  transform: translateY(-3px);
}

.scenario-grid img {
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
}

.scenario-grid h3 {
  margin: 16px 22px 6px;
  font-size: 17px;
  font-weight: 700;
  line-height: 1.5;
}

.scenario-grid h3 a:hover {
  color: var(--brand-ink);
}

.scenario-grid p {
  margin: 0 22px 20px;
  color: var(--muted);
  font-size: var(--fs-sm);
  line-height: 1.7;
}

/* 案例详情：纯图网格（无标题正文）时保持通透 */
.news-article .scenario-grid article {
  border-radius: var(--r-md);
}

.news-article .scenario-grid p:empty {
  display: none;
}

/* ---------- 工程案例图文改版（列表卡片动效 + 详情余图条） ---------- */
/* .scenario-grid 本体被首页「应用案例」板块共用，一律不改；
   列表页卡片挂 .case-card 作作用域钩子，改动只作用于案例列表页 */
.case-card img {
  transition: transform 0.45s ease;
}

.case-card:hover img {
  transform: scale(1.03);
}

/* 卡片入场阶梯：同组卡片依次错开上浮，>6 张（建筑工程 9 条）第 7 张起归零 */
html.has-reveal .case-grid [data-reveal]:nth-child(2) {
  transition-delay: 0.06s;
}

html.has-reveal .case-grid [data-reveal]:nth-child(3) {
  transition-delay: 0.12s;
}

html.has-reveal .case-grid [data-reveal]:nth-child(4) {
  transition-delay: 0.18s;
}

html.has-reveal .case-grid [data-reveal]:nth-child(5) {
  transition-delay: 0.24s;
}

html.has-reveal .case-grid [data-reveal]:nth-child(6) {
  transition-delay: 0.3s;
}

/* 详情页余图条：纯图卡无标题正文，隐藏空段落并保持通透 */
.about-page .scenario-grid article {
  border-radius: var(--r-md);
}

.about-page .scenario-grid p:empty {
  display: none;
}

/* 案例详情正文每章只有 1-2 句话，4:3 配图会把左栏撑高、右下留白过大：
   案例上下文（.case-detail）配图收到 16:9 并限高 300px（object-fit 裁切居中），
   窄屏 16:9 不足 300px 时自动生效、无需另配；关于/业务/服务页不受影响 */
.case-detail .about-media img {
  aspect-ratio: 16 / 9;
  max-height: 300px;
  object-fit: cover;
}

/* ---------- 工程案例「去乱」重排：总览行业入口卡 + 详情连续流 ---------- */
/* 案例列表首屏收紧：默认 hero 上下 64px + 栅格容器上边 48px 会把第一行卡
   压到折叠线以下约 90px（首屏只见半张卡），案例列表页压缩这两段留白 */
.page-hero.is-compact.case-hero {
  padding-block: clamp(28px, 3vw, 36px);
}

.case-layout {
  padding-top: 8px;
}

/* 总览页 6 栅格：前 2 张跨 3 列、后 3 张跨 2 列 → 2+3 两行满铺，无孤行空洞
   （旧版按行业分组平铺 21 卡，4/4/2/9/2 对 3 列有 4 组收尾不齐） */
.industry-grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 24px;
}

.industry-card {
  grid-column: span 3;
}

.industry-card:nth-child(n + 3) {
  grid-column: span 2;
}

.industry-card > a {
  display: flex;
  flex-direction: column;
  height: 100%;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: var(--r-md);
  background: #fff;
  box-shadow: var(--shadow-sm);
  transition: transform 0.18s ease, box-shadow 0.18s ease;
}

.industry-card > a:hover {
  box-shadow: var(--shadow-md);
  transform: translateY(-3px);
}

.industry-card figure {
  margin: 0;
  overflow: hidden;
}

.industry-card img {
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  transition: transform 0.45s ease;
}

.industry-card > a:hover img {
  transform: scale(1.03);
}

.industry-body {
  display: flex;
  flex: 1;
  flex-direction: column;
  gap: 10px;
  padding: 20px 24px 22px;
}

.industry-head {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 12px;
}

.industry-head h2 {
  font-size: 20px;
}

.industry-body p {
  flex: 1;
  margin: 0;
  color: var(--muted);
  font-size: var(--fs-sm);
  line-height: 1.75;
}

.industry-more {
  color: var(--brand-ink);
  font-size: 15px;
  font-weight: 700;
}

.industry-card > a:hover .industry-more {
  text-decoration: underline;
}

/* 行业卡入场阶梯 */
html.has-reveal .industry-grid [data-reveal]:nth-child(2) {
  transition-delay: 0.06s;
}

html.has-reveal .industry-grid [data-reveal]:nth-child(3) {
  transition-delay: 0.12s;
}

html.has-reveal .industry-grid [data-reveal]:nth-child(4) {
  transition-delay: 0.18s;
}

html.has-reveal .industry-grid [data-reveal]:nth-child(5) {
  transition-delay: 0.24s;
}

/* 详情连续流：860 限宽，章间距收紧到 40px（旧版 is-text 碎节间隙 97px），
   章内配图为流内插图；行高 1.85 比默认 2.0 紧凑，缓解正文薄的稀薄感 */
.case-flow {
  max-width: var(--about-measure);
}

.case-chapter + .case-chapter {
  margin-top: 40px;
}

.case-flow .about-media {
  margin: 6px 0 16px;
}

.case-detail .content-body {
  line-height: 1.85;
}

/* 子页卡片描述统一截 2 行，卡片底边对齐 */
.case-grid .case-card p {
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

/* 新闻板块：头条图文 + 列表 两列 */
.news-feature {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
  gap: clamp(28px, 4vw, 48px);
  align-items: start;
}

.news-lead {
  display: grid;
  gap: 16px;
}

.news-lead .pic {
  display: block;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: var(--r-md);
}

.news-lead .pic img {
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  transition: transform 0.4s ease;
}

.news-lead:hover .pic img {
  transform: scale(1.03);
}

.news-lead .title {
  display: block;
  color: var(--ink);
  font-size: 21px;
  font-weight: 800;
  line-height: 1.45;
  transition: color 0.15s ease;
}

.news-lead:hover .title {
  color: var(--brand-ink);
}

.news-lead .lead {
  display: -webkit-box;
  overflow: hidden;
  margin-top: 8px;
  color: var(--muted);
  font-size: 15px;
  line-height: 1.75;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.news-lead time {
  display: block;
  margin-top: 10px;
  color: var(--muted);
  font-size: var(--fs-xs);
}

.news-feature .news-list li:first-child {
  border-top: 0;
}

.news-feature .news-list a {
  padding: 14px 4px;
}

/* 首页底部联系板块（深色） */
.contact-section {
  display: grid;
  grid-template-columns: minmax(0, 0.95fr) minmax(320px, 0.72fr);
  gap: clamp(32px, 4vw, 48px);
  padding-block: var(--section-y);
  padding-inline: var(--pad-x);
  color: #fff;
  background: linear-gradient(135deg, rgba(8, 24, 29, 0.99), rgba(13, 40, 48, 0.97)), var(--deep);
}

.contact-section .eyebrow {
  color: var(--brand);
}

.contact-section p {
  max-width: 720px;
  margin-top: 14px;
  color: rgba(255, 255, 255, 0.72);
  line-height: 1.8;
}

.contact-details {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin-top: 28px;
}

.contact-details a {
  display: grid;
  min-height: 88px;
  align-content: center;
  gap: 4px;
  padding: 16px 18px;
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: var(--r-md);
  background: rgba(255, 255, 255, 0.06);
  transition: background 0.18s ease, border-color 0.18s ease;
}

.contact-details a:hover {
  border-color: rgba(0, 162, 189, 0.55);
  background: rgba(255, 255, 255, 0.1);
}

.contact-details span {
  color: rgba(255, 255, 255, 0.55);
  font-size: var(--fs-xs);
  font-weight: 700;
  letter-spacing: 0.06em;
}

.contact-details strong {
  color: #fff;
  font-weight: 700;
  overflow-wrap: break-word;
  word-break: break-word;
}

.contact-section .hero-actions {
  margin-top: 30px;
}

/* 深底上的服务中心卡：半透明暗卡，不再用白卡破坏调性 */
.contact-section .office-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-auto-rows: 1fr;
  gap: 14px;
}

.contact-section .office-card {
  padding: 22px 24px;
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: var(--r-md);
  background: rgba(255, 255, 255, 0.06);
  box-shadow: none;
}

.contact-section .office-card .city strong {
  color: #fff;
}

.contact-section .office-card .city span {
  color: var(--brand);
}

.contact-section .office-card p {
  margin: 6px 0;
  color: rgba(255, 255, 255, 0.66);
  font-size: var(--fs-sm);
}

.contact-section .office-card a {
  color: #fff;
  font-weight: 700;
}

/* ---------- 7. 服务中心与技术链 ---------- */
.office-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
}

.office-card {
  padding: 24px;
  border: 1px solid var(--line);
  border-radius: var(--r-md);
  background: #fff;
  box-shadow: var(--shadow-sm);
}

.office-card .city {
  display: flex;
  gap: 10px;
  align-items: baseline;
  margin-bottom: 12px;
}

.office-card .city strong {
  font-size: 21px;
  font-weight: 800;
}

.office-card .city span {
  color: var(--green-ink);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.06em;
}

.office-card p {
  margin: 6px 0;
  color: var(--muted);
  font-size: 15px;
  line-height: 1.7;
}

.office-card a {
  color: var(--brand-ink);
  font-weight: 700;
}

/* ---------- 技术服务链：深色面板 + 编号步骤 ---------- */
.tech-chain {
  position: relative;
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: clamp(20px, 2.6vw, 36px);
  margin: 0 0 clamp(32px, 4vw, 48px);
  padding: clamp(28px, 3.4vw, 40px) clamp(24px, 3vw, 44px);
  list-style: none;
  border-radius: var(--r-lg);
  background:
    radial-gradient(circle at 82% 18%, rgba(0, 162, 189, 0.16), transparent 36%),
    linear-gradient(135deg, var(--deep) 0%, var(--deep-2) 100%);
  box-shadow: var(--shadow-md);
  overflow: hidden;
}

/* 步骤间渐变连接线：从本步骤徽标右侧延伸到下一个徽标左侧 */
.chain-step {
  position: relative;
  min-width: 0;
}

.chain-step:not(:last-child)::after {
  position: absolute;
  top: 17px;
  left: 42px;
  right: calc(-1 * clamp(20px, 2.6vw, 36px) - 2px);
  height: 1px;
  content: "";
  background: linear-gradient(
    90deg,
    rgba(0, 162, 189, 0.85),
    rgba(0, 162, 189, 0.45) 60%,
    rgba(255, 255, 255, 0.18)
  );
}

.step-no {
  position: relative;
  z-index: 1;
  display: grid;
  width: 34px;
  height: 34px;
  place-items: center;
  margin-bottom: 16px;
  color: var(--deep);
  border-radius: 50%;
  background: var(--brand);
  box-shadow: 0 0 0 5px rgba(8, 24, 29, 0.92);
  font-size: 13px;
  font-weight: 800;
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.04em;
}

.step-name {
  margin: 0 0 8px;
  color: #fff;
  font-size: var(--fs-base);
  font-weight: 700;
}

.step-desc {
  margin: 0;
  color: rgba(255, 255, 255, 0.62);
  font-size: var(--fs-sm);
  line-height: 1.7;
}

/* ---------- 8. 技术咨询表单 ---------- */
.inquiry-section {
  padding-block: var(--section-y);
  padding-inline: var(--pad-x);
  color: #fff;
  background: linear-gradient(135deg, rgba(8, 24, 29, 0.99), rgba(13, 40, 48, 0.97)), var(--deep);
}

.inquiry-head {
  max-width: 860px;
  margin-bottom: 30px;
}

.inquiry-head .eyebrow {
  color: var(--brand);
}

.inquiry-head h2 {
  margin: 0;
  font-size: clamp(28px, 3.4vw, 38px);
  font-weight: 800;
  line-height: 1.2;
}

.inquiry-head p {
  margin: 14px 0 0;
  color: rgba(255, 255, 255, 0.72);
  font-size: var(--fs-base);
  line-height: 1.8;
}

.inquiry-head .req {
  color: var(--amber);
}

.inquiry-form {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  padding: 28px;
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: var(--r-md);
  background: rgba(255, 255, 255, 0.06);
}

.inquiry-form .field {
  display: grid;
  gap: 7px;
}

.inquiry-form .field.is-wide {
  grid-column: span 3;
}

.inquiry-form label {
  color: rgba(255, 255, 255, 0.78);
  font-size: var(--fs-xs);
  font-weight: 700;
  letter-spacing: 0.04em;
}

.inquiry-form label .req {
  color: var(--amber);
}

.inquiry-form input,
.inquiry-form textarea {
  width: 100%;
  min-height: 44px;
  padding: 11px 13px;
  color: #fff;
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: var(--r-sm);
  background: rgba(0, 0, 0, 0.24);
  font: inherit;
  font-size: 15px;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.inquiry-form input[type="file"] {
  min-height: 0;
  padding: 10px 12px;
  color: rgba(255, 255, 255, 0.7);
}

.inquiry-form input:focus,
.inquiry-form textarea:focus {
  outline: none;
  border-color: var(--brand);
  box-shadow: 0 0 0 3px rgba(0, 162, 189, 0.25);
}

.inquiry-form input::placeholder,
.inquiry-form textarea::placeholder {
  color: rgba(255, 255, 255, 0.38);
}

.inquiry-form textarea {
  min-height: 120px;
  resize: vertical;
}

.inquiry-form .field-note {
  color: rgba(255, 255, 255, 0.5);
  font-size: 12px;
}

.inquiry-actions {
  display: flex;
  flex-wrap: wrap;
  grid-column: span 3;
  gap: 16px;
  align-items: center;
}

.inquiry-actions .button {
  min-height: 48px;
  padding: 0 28px;
}

.inquiry-actions .form-result {
  font-size: 15px;
  font-weight: 700;
}

.inquiry-actions .form-result.is-ok {
  color: #6fdcae;
}

.inquiry-actions .form-result.is-err {
  color: #ff9b96;
}

.photo-preview {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  grid-column: span 3;
}

.photo-preview img {
  width: 84px;
  height: 84px;
  object-fit: cover;
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: var(--r-sm);
}

/* ---------- 8b. 技术咨询弹窗（页头按钮唤起，全站唯一入口） ----------
   面板本身不滚动（overflow:hidden），滚动交给 __body，
   关闭按钮才能用 absolute 钉在面板右上角不随内容滚走。 */
.inquiry-modal[hidden] {
  display: none;
}

.inquiry-modal {
  position: fixed;
  inset: 0;
  z-index: 60;
  display: grid;
  place-items: center;
  padding: clamp(12px, 3vw, 32px);
}

.inquiry-modal__mask {
  position: absolute;
  inset: 0;
  background: rgba(8, 24, 29, 0.72);
  backdrop-filter: blur(3px);
}

.inquiry-modal__panel {
  position: relative;
  display: grid;
  grid-template-rows: minmax(0, 1fr);
  width: min(1040px, 100%);
  max-height: min(88vh, 920px);
  overflow: hidden;
  border-radius: var(--r-lg);
  background: var(--deep);
  box-shadow: var(--shadow-lg);
}

.inquiry-modal__body {
  overflow-y: auto;
  overscroll-behavior: contain;
}

.inquiry-modal__close {
  position: absolute;
  top: 14px;
  right: 14px;
  z-index: 2;
  display: grid;
  width: 40px;
  height: 40px;
  place-items: center;
  padding: 0;
  color: #fff;
  border: 1px solid rgba(255, 255, 255, 0.28);
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.08);
  font-size: 24px;
  line-height: 1;
  cursor: pointer;
  transition: background 0.18s ease, border-color 0.18s ease;
}

.inquiry-modal__close:hover {
  border-color: rgba(255, 255, 255, 0.5);
  background: rgba(255, 255, 255, 0.16);
}

/* 弹窗内沿用 .inquiry-section 深底版式，但把整页级的上下留白收到面板尺度，
   标题右侧预留关闭按钮的位置 */
.inquiry-modal .inquiry-section {
  padding: clamp(26px, 3.6vw, 44px);
}

.inquiry-modal .inquiry-head {
  padding-right: 56px;
}

/* 弹窗打开时锁住底层滚动 */
body.is-modal-open {
  overflow: hidden;
}

/* 浅色版（联系页「在线留言」，白底区块） */
.inquiry-form.is-light {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  border-color: var(--line);
  background: #fff;
}

.inquiry-form.is-light label {
  color: var(--muted);
}

.inquiry-form.is-light input,
.inquiry-form.is-light textarea {
  color: var(--ink);
  border-color: var(--line);
  background: var(--bg);
}

.inquiry-form.is-light input:focus,
.inquiry-form.is-light textarea:focus {
  border-color: var(--brand-ink);
  box-shadow: 0 0 0 3px rgba(0, 125, 150, 0.16);
}

.inquiry-form.is-light input::placeholder,
.inquiry-form.is-light textarea::placeholder {
  color: #97a8a6;
}

.inquiry-form.is-light .field-note {
  color: var(--muted);
}

.inquiry-form.is-light .form-result {
  color: var(--muted);
}

.inquiry-form.is-light .form-result.is-ok {
  color: var(--green-ink);
}

.inquiry-form.is-light .form-result.is-err {
  color: var(--red);
}

.inquiry-form.is-light .field.is-wide,
.inquiry-form.is-light .inquiry-actions,
.inquiry-form.is-light .photo-preview {
  grid-column: span 2;
}

/* ---------- 9. 推荐盒与空状态 ---------- */
.recommend-box {
  padding: 26px 30px;
  border: 1px solid var(--line);
  border-radius: var(--r-md);
  background: var(--soft);
}

.recommend-head {
  position: relative;
  margin-bottom: 18px;
  padding-left: 14px;
  color: var(--deep);
  font-size: 19px;
  font-weight: 800;
}

.recommend-head::before {
  position: absolute;
  top: 4px;
  bottom: 4px;
  left: 0;
  width: 4px;
  content: "";
  background: var(--brand);
}

.recommend-grid {
  display: grid;
  gap: 30px;
  grid-template-columns: minmax(0, 1fr);
}

.recommend-grid.two {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.rec-col h4 {
  margin: 0 0 10px;
  color: var(--muted);
  font-size: var(--fs-sm);
  font-weight: 700;
  letter-spacing: 0.1em;
}

.recommend-list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.recommend-list li {
  border-bottom: 1px dashed var(--line);
}

.recommend-list li:last-child {
  border-bottom: 0;
}

.recommend-list a {
  display: flex;
  gap: 16px;
  justify-content: space-between;
  padding: 10px 2px;
  font-size: 15px;
  transition: color 0.15s ease;
}

.recommend-list a:hover {
  color: var(--brand-ink);
}

.recommend-list time {
  flex: none;
  color: var(--muted);
  font-size: var(--fs-xs);
}

.empty-state {
  padding: 56px 24px;
  color: var(--muted);
  border: 1px dashed var(--line);
  border-radius: var(--r-md);
  background: var(--bg);
  text-align: center;
}

/* ---------- 9.5 关于微震内页（图文章节 + 动效） ---------- */
/* 首屏入场编排：仅 .is-entrance（about 模板）一次性播放 */
@keyframes about-fade-up {
  from {
    opacity: 0;
    transform: translateY(18px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}

.page-hero.is-entrance > div > * {
  animation: about-fade-up 0.55s cubic-bezier(0.22, 0.61, 0.36, 1) both;
}

.page-hero.is-entrance > div > *:nth-child(1) {
  animation-delay: 0.05s;
}

.page-hero.is-entrance > div > *:nth-child(2) {
  animation-delay: 0.13s;
}

.page-hero.is-entrance > div > *:nth-child(3) {
  animation-delay: 0.21s;
}

/* 滚动淡入：渐进增强 —— 仅当 JS 挂上 html.has-reveal 才预隐藏，
   无 JS / 无 IntersectionObserver 时内容直接可见 */
html.has-reveal [data-reveal] {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 0.6s ease, transform 0.6s cubic-bezier(0.22, 0.61, 0.36, 1);
}

html.has-reveal [data-reveal].is-visible {
  opacity: 1;
  transform: none;
}

.about-page {
  /* 全站统一正文行宽：无图章节、通栏章节的散文都收敛到这个 measure */
  --about-measure: 860px;
  display: grid;
  gap: clamp(36px, 5vw, 64px);
  padding-block: clamp(32px, 4vw, 56px) var(--section-y);
  padding-inline: var(--pad-x);
  background: var(--panel);
}

/* 封面：溢出裁切容器给视差留余量（JS 移动 img 的 translateY） */
.about-cover {
  overflow: hidden;
  margin: 0;
  border-radius: var(--r-lg);
  box-shadow: var(--shadow-md);
}

.about-cover img {
  width: 100%;
  /* 560px 上限对应 1440 视口下约 1360×560 = 2.44:1，生图按 2048×840 出图贴合；
     scale(1.08) 的视差余量在 560px 高下单侧 22.4px > initParallax 最大偏移约 16px，不会露白 */
  height: clamp(320px, 46vw, 560px);
  object-fit: cover;
  transform: scale(1.08);
  will-change: transform;
}

/* 数据条 */
.about-stats {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
  margin: 0;
  padding: clamp(22px, 3vw, 32px);
  list-style: none;
  border: 1px solid var(--line);
  border-radius: var(--r-lg);
  background: linear-gradient(135deg, var(--soft), #f7fbfa);
}

.about-stats li {
  display: grid;
  gap: 6px;
  padding-left: 18px;
  border-left: 2px solid var(--brand);
}

.about-stats strong {
  color: var(--deep);
  font-size: clamp(26px, 3vw, 34px);
  font-weight: 800;
  line-height: 1.15;
  font-variant-numeric: tabular-nums;
}

.about-stats span {
  color: var(--muted);
  font-size: var(--fs-sm);
  font-weight: 600;
}

/* 章节图文流：对称双栏（列宽恒定，换边不改变图文尺寸），
   偶数节图在右；:nth-of-type 只数 section 元素，不受 figure/ul 影响 */
.about-section {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(32px, 4vw, 56px);
  align-items: start;
}

.about-section:nth-of-type(even) .about-media {
  grid-column: 2;
  grid-row: 1;
}

/* 含表格章节：通栏版式（横幅图 + 全宽正文，表格不再挤窄栏） */
.about-section.is-wide {
  grid-template-columns: minmax(0, 1fr);
}

.about-section.is-wide .about-media {
  grid-column: 1;
  grid-row: auto;
}

.about-section.is-wide .about-media img {
  aspect-ratio: 16 / 6;
}

/* 通栏节的散文限行宽（table / figure-grid / logo-wall 保持全宽） */
.about-section.is-wide .about-head,
.about-section.is-wide .about-copy > p,
.about-section.is-wide .about-copy > ul,
.about-section.is-wide .about-copy > ol,
.about-section.is-wide .about-copy > h3,
.about-section.is-wide .about-copy > blockquote {
  max-width: var(--about-measure);
}

.about-section.is-text {
  grid-template-columns: minmax(0, var(--about-measure));
}

.about-media {
  overflow: hidden;
  margin: 0;
  border-radius: var(--r-lg);
  box-shadow: var(--shadow-md);
}

/* 右列满宽正文行尾会钻进右侧固定悬浮条（.float-bar right:16px 宽 46px，
   721~1720px 视口下与内容区右缘重叠约 20px，字被按钮压住）；
   正文右侧留 24px 让行尾提前断行。悬浮条压在图片上是正常设计，不受影响 */
.about-copy {
  padding-right: 24px;
}

.about-media img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  transition: transform 0.5s ease;
}

.about-media:hover img {
  transform: scale(1.03);
}

/* 章节头：编号锚点 + 标题（编号给长页提供定位节奏） */
.about-head {
  display: flex;
  align-items: baseline;
  gap: 14px;
}

.chapter-no {
  flex: none;
  color: var(--brand-ink);
  font-size: var(--fs-sm);
  font-weight: 800;
  letter-spacing: 0.1em;
  font-variant-numeric: tabular-nums;
}

.chapter-no::after {
  content: "";
  display: inline-block;
  width: 22px;
  height: 2px;
  margin-left: 10px;
  vertical-align: middle;
  background: var(--brand);
}

.about-copy .about-head h2 {
  margin: 0;
  padding-left: 0;
  border-left: 0;
}

.about-copy h2 {
  margin-top: 0;
}

/* 首章无标题（导语段）时不留空标题距 */
.about-copy > h2:first-child {
  margin-top: 0;
}

/* 章节分隔线：分隔线两侧严格等距（margin 抵消栅格 gap，padding 定半距），
   总节奏 = 2 × --div ≈ 64-96px，与 gap 值解耦 */
.about-section + .about-section {
  --div: clamp(32px, 4vw, 48px);
  margin-top: calc(var(--div) - clamp(36px, 5vw, 64px));
  padding-top: var(--div);
  border-top: 1px solid var(--line);
}

/* 大引用样式（正文 blockquote：隔振至微，控动于静） */
.about-copy blockquote {
  position: relative;
  margin: 28px 0;
  padding: 26px 28px 26px 64px;
  border: 0;
  border-radius: var(--r-md);
  background: linear-gradient(135deg, var(--deep), var(--deep-2));
}

.about-copy blockquote::before {
  position: absolute;
  top: 6px;
  left: 22px;
  content: "\201C";
  color: var(--brand);
  font-size: 56px;
  font-weight: 800;
  line-height: 1;
}

.about-copy blockquote p {
  margin: 0;
  color: #fff;
  font-size: var(--fs-lg);
  font-weight: 700;
  letter-spacing: 0.04em;
}

/* ---------- 9b. 联系我们页（图文改版） ---------- */

/* 正文章节流复用 .about-section 版式，但容器不是 .about-page，
   阅读行宽变量在本地补齐（通栏节散文与 is-text 节都依赖它） */
.contact-flow {
  --about-measure: 860px;
  display: grid;
  gap: clamp(36px, 5vw, 64px);
}

/* 快捷联系带：4 张图标卡 */
.quick-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
}

.qc-card {
  display: flex;
  gap: 14px;
  align-items: flex-start;
  min-width: 0;
  padding: 20px 22px;
  border: 1px solid var(--line);
  border-radius: var(--r-md);
  background: #fff;
  box-shadow: var(--shadow-sm);
  color: inherit;
  text-decoration: none;
  transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
}

.qc-card:hover {
  transform: translateY(-3px);
  border-color: rgba(0, 162, 189, 0.45);
  box-shadow: var(--shadow-md);
}

.qc-icon {
  flex: none;
  display: grid;
  width: 44px;
  height: 44px;
  place-items: center;
  border-radius: 12px;
  background: linear-gradient(135deg, rgba(0, 162, 189, 0.14), rgba(47, 186, 120, 0.14));
  color: var(--brand-ink);
}

.qc-icon svg {
  width: 22px;
  height: 22px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.qc-body {
  display: grid;
  gap: 4px;
  min-width: 0;
}

.qc-label {
  color: var(--muted);
  font-size: var(--fs-xs);
  font-weight: 700;
  letter-spacing: 0.04em;
}

.qc-value {
  color: var(--deep);
  font-size: var(--fs-md);
  font-weight: 800;
  line-height: 1.4;
  overflow-wrap: anywhere;
}

.qc-hint {
  color: var(--brand-ink);
  font-size: 13px;
  font-weight: 700;
}

.qc-hint::after {
  content: " \2192";
}

.qc-qr {
  flex: none;
  width: 60px;
  height: 60px;
  padding: 3px;
  border: 1px solid var(--line);
  border-radius: var(--r-sm);
  background: #fff;
  transition: transform 0.25s ease;
}

.qc-card.is-qr {
  cursor: pointer;
}

.qc-card.is-qr:hover .qc-qr {
  transform: scale(1.18);
}

.qc-card.is-qr .qc-hint::after {
  content: none;
}

/* 服务网络：深色面板 + SVG 示意图 */
.net-panel {
  padding: clamp(30px, 4vw, 48px);
  border-radius: var(--r-lg);
  color: #fff;
  background: linear-gradient(135deg, rgba(8, 24, 29, 0.99), rgba(13, 40, 48, 0.97)), var(--deep);
}

.net-head {
  max-width: 860px;
  margin-bottom: clamp(24px, 3vw, 36px);
}

.net-head .eyebrow {
  color: var(--brand);
}

.net-head h2 {
  margin: 0;
  font-size: clamp(26px, 3vw, 36px);
  font-weight: 800;
  line-height: 1.26;
}

.net-head p:not(.eyebrow) {
  margin: 14px 0 0;
  color: rgba(255, 255, 255, 0.72);
  font-size: var(--fs-base);
  line-height: 1.8;
}

.net-body {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(320px, 0.8fr);
  gap: clamp(24px, 3vw, 40px);
  align-items: center;
}

.net-map {
  min-width: 0;
}

.net-svg {
  display: block;
  width: 100%;
  height: auto;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: var(--r-md);
  background: rgba(255, 255, 255, 0.03);
  font-family: inherit;
}

.net-label {
  fill: #fff;
  font-size: 18px;
  font-weight: 800;
  /* 深色描边光晕：手机端文字放大后与光点/脉冲环相叠时仍可读 */
  paint-order: stroke fill;
  stroke: rgba(8, 24, 29, 0.8);
  stroke-width: 3px;
  stroke-linejoin: round;
}

.net-sub {
  fill: rgba(255, 255, 255, 0.55);
  font-size: 13px;
  font-weight: 600;
  paint-order: stroke fill;
  stroke: rgba(8, 24, 29, 0.8);
  stroke-width: 3px;
  stroke-linejoin: round;
}

/* 连线：pathLength=100 归一化，滚动进入视口后依次描绘 */
.net-link {
  fill: none;
  stroke: rgba(0, 169, 200, 0.85);
  stroke-width: 2;
  stroke-linecap: round;
  stroke-dasharray: 100;
  stroke-dashoffset: 0;
}

html.has-reveal .net-map:not(.is-visible) .net-link {
  stroke-dashoffset: 100;
}

html.has-reveal .net-map.is-visible .net-link {
  animation: net-draw 1s cubic-bezier(0.22, 0.61, 0.36, 1) both;
}

html.has-reveal .net-map.is-visible .net-link:nth-child(2) {
  animation-delay: 0.18s;
}

html.has-reveal .net-map.is-visible .net-link:nth-child(3) {
  animation-delay: 0.36s;
}

html.has-reveal .net-map.is-visible .net-link:nth-child(4) {
  animation-delay: 0.54s;
}

@keyframes net-draw {
  from {
    stroke-dashoffset: 100;
  }
  to {
    stroke-dashoffset: 0;
  }
}

/* 节点：核心圆 + 脉冲扩散环（fill-box 原点，避免 transform 默认按 viewBox 计算） */
.net-core {
  fill: var(--green);
}

.net-node.is-base .net-core {
  fill: var(--amber);
}

.net-ring {
  fill: none;
  stroke: var(--amber);
  stroke-width: 1.5;
  opacity: 0.6;
}

.net-pulse {
  fill: none;
  stroke: var(--green);
  stroke-width: 2;
  transform-box: fill-box;
  transform-origin: center;
  animation: net-pulse 2.4s ease-out infinite;
}

.net-node.is-base .net-pulse {
  stroke: var(--amber);
}

.net-pulse.is-delay {
  animation-delay: 1.2s;
}

@keyframes net-pulse {
  0% {
    transform: scale(0.6);
    opacity: 0.8;
  }
  70% {
    opacity: 0;
  }
  100% {
    transform: scale(2.6);
    opacity: 0;
  }
}

.net-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 20px;
  align-items: center;
  margin-top: 14px;
  color: rgba(255, 255, 255, 0.6);
  font-size: var(--fs-sm);
}

.net-legend span {
  display: inline-flex;
  gap: 7px;
  align-items: center;
}

.net-legend i {
  display: inline-block;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--green);
}

.net-legend i.is-base {
  background: var(--amber);
}

.net-note {
  color: rgba(255, 255, 255, 0.38);
}

/* 深底上的服务中心卡（白卡会破坏面板调性，沿用首页 contact-section 暗卡样式） */
.net-panel .office-grid {
  grid-template-columns: minmax(0, 1fr);
  grid-auto-rows: 1fr;
  gap: 14px;
}

.net-panel .office-card {
  padding: 20px 22px;
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: var(--r-md);
  background: rgba(255, 255, 255, 0.06);
  box-shadow: none;
}

.net-panel .office-card .city strong {
  color: #fff;
}

.net-panel .office-card .city span {
  color: var(--brand);
}

.net-panel .office-card p {
  margin: 6px 0;
  color: rgba(255, 255, 255, 0.66);
  font-size: var(--fs-sm);
}

.net-panel .office-card a {
  color: #fff;
  font-weight: 700;
}

/* 技术咨询：左图文（准备清单），右表单 */
.inquiry-split {
  display: grid;
  grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr);
  gap: clamp(24px, 3vw, 40px);
  align-items: start;
}

.inquiry-aside {
  display: grid;
  gap: 18px;
  align-content: start;
}

.aside-media {
  overflow: hidden;
  margin: 0;
  border-radius: var(--r-lg);
  box-shadow: var(--shadow-md);
}

.aside-media img {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  transition: transform 0.5s ease;
}

.aside-media:hover img {
  transform: scale(1.03);
}

.aside-box {
  padding: 24px 26px;
  border: 1px solid var(--line);
  border-radius: var(--r-md);
  background: var(--soft);
}

.aside-box h3 {
  margin: 0 0 14px;
  color: var(--deep);
  font-size: var(--fs-md);
  font-weight: 800;
}

.aside-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.aside-chips li {
  padding: 6px 13px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #fff;
  color: var(--muted);
  font-size: 13px;
  font-weight: 700;
}

.aside-note {
  margin: 14px 0 0;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.8;
}

.aside-direct {
  padding: 16px 20px;
  border-radius: var(--r-md);
  background: linear-gradient(135deg, var(--deep), var(--deep-2));
  color: rgba(255, 255, 255, 0.82);
  font-size: 15px;
  line-height: 1.7;
}

.aside-direct a {
  color: #fff;
  font-weight: 800;
}

/* 分栏内表单收窄为 2 列（3 列在半宽栏里单列仅 ~180px，输入框过挤） */
.inquiry-split .inquiry-form {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.inquiry-split .inquiry-form .field.is-wide,
.inquiry-split .inquiry-actions,
.inquiry-split .photo-preview {
  grid-column: span 2;
}

/* 入场阶梯：快捷卡与服务卡依次错开 */
html.has-reveal .quick-grid [data-reveal]:nth-child(2) {
  transition-delay: 0.06s;
}

html.has-reveal .quick-grid [data-reveal]:nth-child(3) {
  transition-delay: 0.12s;
}

html.has-reveal .quick-grid [data-reveal]:nth-child(4) {
  transition-delay: 0.18s;
}

html.has-reveal .net-panel .office-grid [data-reveal]:nth-child(2) {
  transition-delay: 0.06s;
}

html.has-reveal .net-panel .office-grid [data-reveal]:nth-child(3) {
  transition-delay: 0.12s;
}

html.has-reveal .net-panel .office-grid [data-reveal]:nth-child(4) {
  transition-delay: 0.18s;
}

@media (prefers-reduced-motion: reduce) {
  .page-hero.is-entrance > div > *,
  html.has-reveal [data-reveal] {
    animation: none;
    opacity: 1;
    transform: none;
    transition: none;
  }

  .about-cover img {
    transform: none;
    will-change: auto;
  }

  .case-card img,
  .case-card:hover img,
  .industry-card img,
  .industry-card > a:hover img {
    transition: none;
    transform: none;
  }

  /* 联系页：地图连线直接完整显示、脉冲环静止、卡片与图片 hover 位移关闭 */
  html.has-reveal .net-map .net-link {
    animation: none;
    stroke-dashoffset: 0;
  }

  .net-pulse {
    animation: none;
    opacity: 0.35;
    transform: none;
  }

  .qc-card,
  .qc-card:hover,
  .qc-qr,
  .qc-card.is-qr:hover .qc-qr,
  .aside-media img,
  .aside-media:hover img {
    transition: none;
    transform: none;
  }
}

/* ---------- 10. 响应式（720 / 1120，每档仅此一处） ---------- */
@media (max-width: 1120px) {
  .page-layout {
    padding-block: 26px 64px;
  }

  /* 关于微震内页：章节降为图上文下，数据条 2 列 */
  .about-section,
  .about-section:nth-of-type(even) {
    grid-template-columns: minmax(0, 1fr);
    gap: 20px;
  }

  .about-section:nth-of-type(even) .about-media {
    grid-column: 1;
    grid-row: auto;
  }

  .about-section.is-text,
  .about-section.is-text:nth-of-type(even) {
    margin-left: 0;
  }

  .about-stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .subnav a {
    padding: 14px 14px;
    font-size: 14px;
  }

  .subnav a.is-active::after {
    right: 14px;
    left: 14px;
  }

  .page-layout .inquiry-section {
    padding: 34px 24px;
  }

  /* 联系页：快捷卡 2 列；地图与表单分栏降单列 */
  .quick-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .net-body {
    grid-template-columns: minmax(0, 1fr);
  }

  .inquiry-split {
    grid-template-columns: minmax(0, 1fr);
  }

  /* 技术服务链：≤1120 改竖排时间线（横排 5 列在此宽度下每步仅 130px，说明文字拥挤） */
  .tech-chain {
    grid-template-columns: minmax(0, 1fr);
    gap: 0;
    padding: 26px 26px;
  }

  .chain-step {
    display: grid;
    grid-template-columns: 34px minmax(0, 1fr);
    grid-template-rows: auto auto;
    column-gap: 16px;
    padding: 12px 0;
  }

  .chain-step:not(:last-child)::after {
    top: auto;
    right: auto;
    bottom: -12px;
    left: 16px;
    width: 1px;
    height: calc(100% - 26px);
    background: linear-gradient(
      180deg,
      rgba(0, 162, 189, 0.85),
      rgba(0, 162, 189, 0.45) 60%,
      rgba(255, 255, 255, 0.18)
    );
  }

  .step-no {
    grid-row: 1 / span 2;
    grid-column: 1;
    margin-bottom: 0;
  }

  .step-name {
    grid-row: 1;
    grid-column: 2;
    margin-bottom: 4px;
  }

  .step-desc {
    grid-row: 2;
    grid-column: 2;
    font-size: var(--fs-sm);
  }

  .page-layout .office-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  /* 面板通栏后服务卡改 2 列（单列 4 张过长）；置于 .page-layout 同权重规则之后 */
  .net-panel .office-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .product-grid,
  .product-preview .product-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  /* 案例总览行业卡：两列，末卡跨两行宽补满（避免孤卡半行） */
  .industry-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .industry-card,
  .industry-card:nth-child(n + 3) {
    grid-column: span 1;
  }

  .industry-card:last-child {
    grid-column: span 2;
  }

  /* 同类产品 3 列 → 2 列 */
  .product-info .siblings-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .focus-band,
  .contact-section {
    grid-template-columns: 1fr;
  }

  .sector-grid,
  .scenario-grid,
  .advantage-list.cols-3 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .advantage-layout {
    grid-template-columns: 1fr;
  }

  .advantage-layout > img {
    min-height: 300px;
  }

  .news-feature {
    grid-template-columns: minmax(0, 1fr);
    gap: 24px;
  }

  .product-detail {
    grid-template-columns: 1fr;
    gap: 28px;
  }

  .office-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .inquiry-form {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .inquiry-form .field.is-wide,
  .inquiry-actions,
  .photo-preview {
    grid-column: span 2;
  }

  .site-footer {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 720px) {
  .page-layout {
    gap: 20px;
    padding-block: 20px 56px;
  }

  .page-layout .page-main > * + * {
    margin-top: 26px;
  }

  .page-hero.is-compact {
    padding-block: 40px;
  }

  .content-body {
    font-size: 16px;
  }

  .content-body h2 {
    font-size: 22px;
  }

  .content-body h3 {
    font-size: 18px;
  }

  .content-body table {
    display: block;
    overflow-x: auto;
    white-space: nowrap;
  }

  .content-body .figure-grid,
  .content-body .logo-wall {
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
  }

  /* 产品/案例卡：单列全宽 */
  .product-grid,
  .product-preview .product-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  /* 手机上缩略图收窄，同行放得下更多张 */
  .product-gallery .thumbs img {
    width: 64px;
    height: 64px;
  }

  /* 同类产品在手机上回到 3 列（卡片小，不换行更紧凑） */
  .product-info .siblings-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .sector-grid,
  .scenario-grid,
  .advantage-list,
  .advantage-list.cols-3,
  .office-grid,
  .contact-details,
  .contact-section .office-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  /* 联系页：快捷卡单列；服务卡单列（覆盖 1120 档的 2 列）；
     SVG 文字随 viewBox 缩放，手机上 18/13px 会缩到 ~9px，放大补偿；
     描边加粗保证叠在光点/网格上仍可读 */
  .quick-grid,
  .net-panel .office-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .net-label {
    font-size: 26px;
    stroke-width: 4px;
  }

  /* 手机上隐藏城市类型副标签：小屏标签与光点间距不足，
     且城市+类型信息在下方地址卡片里已完整呈现，地图只留城市名 */
  .net-sub {
    display: none;
  }

  /* 总部标签上移，避免大字号下沿贴到光点 */
  .net-node.is-hq .net-label {
    transform: translateY(-8px);
  }

  .net-legend {
    font-size: 13px;
  }

  .aside-chips li {
    font-size: 12px;
  }

  .product-info h1,
  .news-article h1 {
    font-size: 26px;
  }

  /* 新闻列表：缩略图降到 96px，标题保持可读 */
  .news-list a {
    gap: 14px;
    padding: 16px 2px;
  }

  .news-list .thumb {
    width: 96px;
  }

  .news-list .title {
    font-size: 16px;
  }

  .news-list .lead {
    -webkit-line-clamp: 1;
  }

  .news-list time {
    font-size: 12px;
  }

  .news-lead .title {
    font-size: 18px;
  }

  .inquiry-form,
  .inquiry-form.is-light {
    grid-template-columns: minmax(0, 1fr);
    padding: 18px;
  }

  /* 分栏容器内表单同样降单列（基础层 .inquiry-split .inquiry-form 权重更高，需显式覆盖；
     span 2 在单列网格里会撑出隐式第二列，一并收回 span 1） */
  .inquiry-split .inquiry-form {
    grid-template-columns: minmax(0, 1fr);
  }

  .inquiry-split .inquiry-form .field.is-wide,
  .inquiry-split .inquiry-actions,
  .inquiry-split .photo-preview {
    grid-column: span 1;
  }

  .inquiry-form .field.is-wide,
  .inquiry-form.is-light .field.is-wide,
  .inquiry-actions,
  .inquiry-form.is-light .inquiry-actions,
  .photo-preview,
  .inquiry-form.is-light .photo-preview {
    grid-column: span 1;
  }

  .inquiry-actions .button {
    width: 100%;
  }

  .recommend-box {
    padding: 22px 18px;
  }

  .recommend-grid.two {
    grid-template-columns: minmax(0, 1fr);
  }

  .content-cta {
    flex-direction: column;
    align-items: flex-start;
  }

  .content-cta .button {
    width: 100%;
  }

  /* 通栏孤卡恢复纵向 */
  .advantage-list.cols-3 > article:last-child:nth-child(3n + 1) {
    display: block;
  }

  .advantage-list.cols-3 > article:last-child:nth-child(3n + 1) h3 {
    margin-bottom: 8px;
  }

  /* 关于微震内页：数据条 2 列、封面降高、引用收紧 */
  .about-cover img {
    height: 280px;
  }

  .about-stats {
    gap: 12px;
    padding: 18px;
  }

  .about-stats li {
    padding-left: 12px;
  }

  .about-copy blockquote {
    padding: 20px 20px 20px 52px;
  }

  .about-copy blockquote::before {
    left: 16px;
    font-size: 46px;
  }

  .about-copy blockquote p {
    font-size: var(--fs-md);
  }

  /* 手机上通栏节横幅图 16:6 过扁，回到 16:9 */
  .about-section.is-wide .about-media img {
    aspect-ratio: 16 / 9;
  }

  .group-heading h2 {
    font-size: 21px;
  }

  /* 案例总览行业卡：手机单列，末卡不再跨行 */
  .industry-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .industry-card:last-child {
    grid-column: span 1;
  }

  /* 案例卡阶梯延迟归零：手机单列逐张入场会拖慢阅读节奏 */
  html.has-reveal .case-grid [data-reveal]:nth-child(n),
  html.has-reveal .industry-grid [data-reveal]:nth-child(n) {
    transition-delay: 0s;
  }
}
