/* =========================================================
   湖南旭湘冷水空调设备有限公司 · 官网扩展组件样式（v4 定稿）
   内页页头 / 收费公示 / 服务保障 / 案例四段式 / 机型覆盖 / 估价器
   ========================================================= */

/* ---------------- 页脚独立第三方声明 ---------------- */
.footer-note {
  margin-top: 26px;
  padding: 14px 18px;
  border: 1px solid var(--line);
  border-left: 3px solid var(--muted);
  border-radius: 9px;
  background: rgba(107, 129, 153, .05);
  font-size: 12.5px;
  line-height: 1.75;
  color: var(--muted);
}

/* ---------------- 内页页头 ---------------- */
.page-hero {
  position: relative;
  padding: 62px 0 54px;
  background: linear-gradient(135deg, #0b1a2b 0%, #0a3f72 52%, #0e6bb8 100%);
  color: #fff;
  overflow: hidden;
}
.page-hero::after {
  content: ""; position: absolute; inset: 0;
  background:
    radial-gradient(760px 320px at 82% 8%, rgba(30, 154, 214, .34), transparent 62%),
    radial-gradient(520px 260px at 6% 96%, rgba(14, 107, 184, .3), transparent 66%);
  pointer-events: none;
}
.page-hero .container { position: relative; z-index: 2; }
.page-hero .eyebrow { color: rgba(255,255,255,.72); }
.page-hero h1 {
  font-size: clamp(26px, 3.6vw, 40px);
  letter-spacing: -.6px;
  margin: 10px 0 12px;
}
.page-hero p {
  max-width: 780px;
  font-size: clamp(14.5px, 1.55vw, 16.5px);
  line-height: 1.8;
  color: rgba(255, 255, 255, .82);
}
.crumb {
  display: flex; flex-wrap: wrap; align-items: center; gap: 8px;
  font-size: 13px; color: rgba(255,255,255,.6); margin-bottom: 4px;
}
.crumb a:hover { color: #fff; }
.crumb i { font-style: normal; opacity: .5; }

/* 页内锚点导航 */
.anchor-nav {
  position: sticky; top: var(--header-h); z-index: 40;
  background: rgba(255,255,255,.94);
  backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--line-2);
}
.anchor-nav .inner {
  display: flex; gap: 4px; overflow-x: auto; scrollbar-width: none;
  max-width: var(--maxw); margin: 0 auto; padding: 9px 24px;
}
.anchor-nav .inner::-webkit-scrollbar { display: none; }
.anchor-nav a {
  flex: 0 0 auto; padding: 7px 14px; border-radius: 8px;
  font-size: 14px; font-weight: 500; color: var(--ink-2); white-space: nowrap;
  transition: background .18s, color .18s;
}
.anchor-nav a:hover, .anchor-nav a.active { background: var(--brand-soft); color: var(--brand); }

/* ---------------- 收费公示表 ---------------- */
.price-block { margin-bottom: 30px; }
.price-block > h2, .price-block > h3 {
  display: flex; align-items: center; gap: 10px;
  font-size: 18px; margin-bottom: 6px;
}
.price-block > h2 .dot, .price-block > h3 .dot {
  width: 9px; height: 9px; border-radius: 50%; background: var(--brand-2); flex: 0 0 auto;
}
.price-block .bd-note { font-size: 13.5px; color: var(--muted); margin-bottom: 4px; }

.price-table { width: 100%; border-collapse: separate; border-spacing: 0; font-size: 14.5px; }
.price-table th, .price-table td {
  border-bottom: 1px solid var(--line);
  padding: 13px 14px; text-align: left; vertical-align: top;
}
.price-table thead th {
  background: var(--bg-soft);
  font-size: 13px; font-weight: 700; color: var(--ink-2);
  border-bottom: 1px solid var(--line);
}
.price-table thead th:first-child { border-radius: 10px 0 0 0; }
.price-table thead th:last-child { border-radius: 0 10px 0 0; }
.price-table tbody tr:hover { background: #fbfdff; }
.price-table td.item { font-weight: 600; color: var(--ink); white-space: nowrap; }
.price-table td.range { white-space: nowrap; font-variant-numeric: tabular-nums; }
.price-table td.range b { color: var(--brand); font-size: 15.5px; }
.price-table .cond { font-size: 13.4px; color: var(--ink-2); line-height: 1.7; }
.price-table .cond .sub { display: block; color: var(--muted); font-size: 12.6px; margin-top: 3px; }

.price-note {
  margin-top: 18px; padding: 15px 18px;
  border: 1px solid #f3ddbe; border-left: 4px solid #c8862a;
  border-radius: 10px; background: #fffdf6; font-size: 13.6px; line-height: 1.8;
}
.price-note b { color: #a16207; }
.price-note ul { margin: 7px 0 0; padding-left: 20px; list-style: disc; }
.price-note li { margin: 3px 0; }

/* 移动端：表格转卡片 */
@media (max-width: 720px) {
  .price-table, .price-table thead, .price-table tbody, .price-table tr, .price-table td { display: block; width: 100%; }
  .price-table thead { display: none; }
  .price-table tr {
    border: 1px solid var(--line); border-radius: 11px;
    padding: 12px 14px; margin-bottom: 11px; background: #fff;
  }
  .price-table td { border: none; padding: 5px 0; }
  .price-table td.item { font-size: 16px; display: flex; justify-content: space-between; align-items: baseline; gap: 10px; }
  .price-table td.item::before { content: "项目"; display: none; }
  .price-table td.range::before { content: "参考价格  "; font-size: 12.5px; color: var(--muted); }
}

/* ---------------- 服务保障卡 ---------------- */
.guar-grid { display: grid; gap: 16px; grid-template-columns: repeat(3, 1fr); }
@media (max-width: 960px) { .guar-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { .guar-grid { grid-template-columns: 1fr; } }

.guar-card {
  border: 1px solid var(--line); border-radius: 13px; padding: 20px;
  background: #fff; transition: box-shadow .2s, transform .2s, border-color .2s;
}
.guar-card:hover { box-shadow: var(--shadow-sm); border-color: #cfe1f2; transform: translateY(-2px); }
.guar-card .gc-ico {
  width: 40px; height: 40px; border-radius: 11px; display: grid; place-items: center;
  background: var(--brand-soft); color: var(--brand); margin-bottom: 13px;
}
.guar-card .gc-ico svg { width: 21px; height: 21px; }
.guar-card h3 { font-size: 16.5px; margin-bottom: 7px; }
.guar-card p { font-size: 14px; color: var(--ink-2); line-height: 1.75; }
.guar-card .gc-kv {
  margin-top: 12px; padding-top: 11px; border-top: 1px dashed var(--line);
  display: flex; flex-wrap: wrap; gap: 8px 16px; font-size: 13px; color: var(--muted);
}
.guar-card .gc-kv b { color: var(--brand); font-size: 14.5px; font-variant-numeric: tabular-nums; }

/* 时效阶梯 */
.sla-list { display: grid; gap: 10px; }
.sla-row {
  display: grid; grid-template-columns: 92px 1fr auto; gap: 14px; align-items: center;
  border: 1px solid var(--line); border-radius: 11px; padding: 13px 16px; background: #fff;
}
.sla-row .lvl { font-weight: 700; font-size: 14.5px; }
.sla-row .lvl.f1 { color: var(--danger); } .sla-row .lvl.f2 { color: #c8862a; } .sla-row .lvl.f3 { color: var(--ok); }
.sla-row .txt { font-size: 14px; color: var(--ink-2); }
.sla-row .tm { font-weight: 700; color: var(--brand); white-space: nowrap; font-variant-numeric: tabular-nums; }
@media (max-width: 620px) { .sla-row { grid-template-columns: 1fr; gap: 5px; } }

/* ---------------- 案例四段式 ---------------- */
.case4 {
  border: 1px solid var(--line); border-radius: 14px; background: #fff;
  overflow: hidden; margin-bottom: 22px; display: grid; grid-template-columns: 340px 1fr;
}

/* 从首页带参数跳进来时要定格到筛选区 —— 顶部导航是 sticky，得让开它的高度，
   否则「维修服务案例」标题会被压在导航底下。 */
#case-filter { scroll-margin-top: calc(var(--header-h, 72px) + 14px); }
/* 故障代码页 / 技术资料页同理：带 ?q= 进来时定格到搜索区，别落在页面顶部看标题。 */
.fc-search { scroll-margin-top: calc(var(--header-h, 72px) + 14px); }

/* 从首页案例卡跳进来时，目标案例闪一道高亮边 —— 一屏里好几张卡，
   没有这个记号，用户滚到位置也认不出是哪一条。 */
.case4.is-target { border-color: rgba(10, 77, 140, .5); box-shadow: 0 0 0 3px rgba(10, 77, 140, .16), 0 16px 40px rgba(11, 26, 43, .14); }
@keyframes casePulse {
  0%, 100% { box-shadow: 0 0 0 3px rgba(10, 77, 140, .16), 0 16px 40px rgba(11, 26, 43, .14); }
  50% { box-shadow: 0 0 0 8px rgba(10, 77, 140, .05), 0 16px 40px rgba(11, 26, 43, .14); }
}
.case4.is-target { animation: casePulse 1.5s ease-out 2; }
@media (prefers-reduced-motion: reduce) { .case4.is-target { animation: none; } }
@media (max-width: 860px) { .case4 { grid-template-columns: 1fr; } }
.case4-media { position: relative; min-height: 240px; background: var(--bg-soft); }
.case4-media img { width: 100%; height: 100%; object-fit: cover; position: absolute; inset: 0; }
.case4-media .badge {
  position: absolute; top: 13px; left: 13px; z-index: 2;
  background: rgba(11, 26, 43, .82); color: #fff; font-size: 12.5px; font-weight: 600;
  padding: 5px 11px; border-radius: 999px; backdrop-filter: blur(6px);
}
.case4-body { padding: 22px 26px; }
.case4-body h3 { font-size: 18.5px; margin-bottom: 4px; }
.case4-body .c4-meta { font-size: 13.2px; color: var(--muted); margin-bottom: 16px; }
.case4-row { display: grid; grid-template-columns: 76px 1fr; gap: 12px; padding: 10px 0; border-top: 1px dashed var(--line); }
.case4-row:first-of-type { border-top: none; }
.case4-row .lbl {
  font-size: 12.5px; font-weight: 700; color: var(--brand);
  background: var(--brand-soft); border-radius: 6px; height: 22px;
  display: inline-flex; align-items: center; justify-content: center; padding: 0 8px;
}
.case4-row .val { font-size: 14.2px; color: var(--ink-2); line-height: 1.75; }
.case4-row .val em { font-style: normal; font-weight: 700; color: var(--danger); }
@media (max-width: 620px) { .case4-body { padding: 18px 18px; } .case4-row { grid-template-columns: 1fr; gap: 5px; } }

/* ---------------- 机型覆盖 / 品牌墙 ----------------
   布局：8 类机型等宽等高的「两行 × 四列」。
   不再区分大卡/小卡 —— 大小卡混排会把网格撑成参差的马赛克，
   行内留白不均，也和「四大主线业务并列」的语义不符。 */
.model-grid { display: grid; gap: 16px; grid-template-columns: repeat(4, 1fr); align-items: stretch; }
.model-card { grid-column: span 1; display: flex; flex-direction: column; }
.model-card .mc-body { flex: 1 1 auto; }
@media (max-width: 1080px) {
  .model-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 620px) {
  .model-grid { grid-template-columns: 1fr; }
}

.model-card {
  position: relative;
  border: 1px solid var(--line); border-radius: 13px; overflow: hidden; background: #fff;
  transition: box-shadow .2s, transform .2s;
}
.model-card:hover { box-shadow: var(--shadow-sm); transform: translateY(-2px); }
.model-card .mc-media {
  height: 190px; background: #f7fafd; display: grid; place-items: center; padding: 16px;
}
.model-card.major .mc-media { height: 232px; }
.model-card .mc-media img { max-height: 100%; width: auto; max-width: 100%; object-fit: contain; }
.model-card .mc-body { padding: 16px 18px 18px; }
.model-card h3 { font-size: 16.5px; margin-bottom: 5px; }
.model-card.major h3 { font-size: 18.5px; }
.model-card .mc-sub { font-size: 12.8px; color: var(--muted); margin-bottom: 9px; }
.model-card .mc-txt { font-size: 13.6px; color: var(--ink-2); line-height: 1.72; }
.model-card.major .mc-txt { font-size: 14.2px; }
.model-card .mc-credit {
  margin-top: 11px; padding-top: 9px; border-top: 1px dashed var(--line);
  font-size: 11.8px; color: var(--muted);
}
.model-card .mc-links {
  display: flex; flex-wrap: wrap; gap: 6px 14px; margin-top: 8px;
  font-size: 12.2px;
}
.model-card .mc-links a {
  color: var(--brand); font-weight: 600; text-decoration: none;
  border-bottom: 1px solid rgba(10,125,148,.32); padding-bottom: 1px;
  transition: border-color .18s, color .18s;
}
.model-card .mc-links a:hover { color: #0a7d94; border-color: #0a7d94; }
.mc-badge {
  display: inline-block; margin-bottom: 8px; padding: 3px 10px; border-radius: 999px;
  background: var(--brand-soft); color: var(--brand); font-size: 11.6px; font-weight: 600;
  letter-spacing: .2px;
}

.brand-wall { display: flex; flex-wrap: wrap; gap: 9px; }
.brand-chip {
  border: 1px solid var(--line); border-radius: 999px; background: #fff;
  padding: 7px 15px; font-size: 13.5px; color: var(--ink-2); font-weight: 500;
  transition: border-color .18s, color .18s, background .18s;
}
.brand-chip:hover { border-color: #cfe1f2; color: var(--brand); background: var(--brand-soft); }
.brand-chip small { color: var(--muted); font-weight: 400; margin-left: 5px; font-size: 11.8px; }

/* ---------------- 估价器 ---------------- */
.estimator {
  border: 1px solid var(--line); border-radius: 16px; background: #fff; overflow: hidden;
  box-shadow: var(--shadow-sm);
}
.estimator .est-head {
  padding: 20px 26px; background: linear-gradient(120deg, #0b1a2b, #0a4d8c); color: #fff;
}
.estimator .est-head h3 { font-size: 19px; margin-bottom: 4px; }
.estimator .est-head p { font-size: 13.4px; color: rgba(255,255,255,.76); }
.estimator .est-body { padding: 24px 26px 26px; display: grid; gap: 20px; }
.est-step .st-lbl { font-size: 13.5px; font-weight: 700; margin-bottom: 10px; color: var(--ink-2); }
.est-step .st-lbl i { font-style: normal; color: var(--brand); margin-right: 7px; }
.est-opts { display: flex; flex-wrap: wrap; gap: 9px; }
.est-opt {
  border: 1px solid var(--line); border-radius: 9px; background: #fff; cursor: pointer;
  padding: 9px 15px; font-size: 14px; color: var(--ink-2); transition: all .18s;
}
.est-opt:hover { border-color: #bcd8f0; }
.est-opt.on { border-color: var(--brand-2); background: var(--brand-soft); color: var(--brand); font-weight: 600; }
.est-inputs { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
@media (max-width: 620px) { .est-inputs { grid-template-columns: 1fr; } }
.est-inputs label { font-size: 13px; color: var(--muted); display: block; margin-bottom: 5px; }
.est-inputs input, .est-inputs select {
  width: 100%; border: 1px solid var(--line); border-radius: 9px; padding: 10px 12px;
  font-size: 14.5px; background: #fff;
}
.est-inputs input:focus, .est-inputs select:focus { outline: 2px solid var(--brand-soft); border-color: var(--brand-2); }
.est-result {
  border: 1px solid #cfe1f2; border-radius: 12px; background: var(--brand-soft);
  padding: 18px 20px; display: none;
}
.est-result.show { display: block; }
.est-result .rng { font-size: 26px; font-weight: 800; color: var(--brand); font-variant-numeric: tabular-nums; letter-spacing: -.5px; }
.est-result .rng small { font-size: 13.5px; font-weight: 500; color: var(--ink-2); margin-left: 8px; }
.est-result .lst { margin-top: 11px; font-size: 13.4px; color: var(--ink-2); line-height: 1.8; }
/* 大修等特殊口径的补充说明：与常规条目区分开，避免和"设备/项目/台数"混成一列 */
.est-result .lst .est-note {
  display: block; margin-top: 6px; padding: 9px 12px;
  background: #f4f9fd; border-left: 3px solid var(--brand-3); border-radius: 0 6px 6px 0;
  color: var(--ink-2); font-size: 13px; line-height: 1.75;
}
.est-result .lst span { display: block; }
.est-disclaimer { font-size: 12.6px; color: var(--muted); margin-top: 12px; line-height: 1.7; }

/* ---------------- 双入口（首页首屏） ---------------- */
.entry-duo { display: grid; gap: 13px; grid-template-columns: repeat(2, 1fr); max-width: 620px; }
@media (max-width: 560px) { .entry-duo { grid-template-columns: 1fr; } }
.entry-card {
  border: 1px solid rgba(255,255,255,.26); border-radius: 13px; padding: 17px 19px;
  background: rgba(255,255,255,.09); color: #fff; backdrop-filter: blur(8px);
  transition: background .2s, border-color .2s, transform .2s;
}
.entry-card:hover { background: rgba(255,255,255,.16); border-color: rgba(255,255,255,.5); transform: translateY(-2px); }
.entry-card b { display: block; font-size: 16.5px; margin-bottom: 4px; }
.entry-card span { font-size: 13px; color: rgba(255,255,255,.74); line-height: 1.6; }

/* ---------------- 关键指标条 ---------------- */
.kpi-strip { display: grid; gap: 0; grid-template-columns: repeat(4, 1fr); border-radius: 14px; overflow: hidden; border: 1px solid var(--line); background: #fff; }
@media (max-width: 700px) { .kpi-strip { grid-template-columns: repeat(2, 1fr); } }
.kpi-strip .k { padding: 22px 18px; text-align: center; border-right: 1px solid var(--line-2); }
.kpi-strip .k:last-child { border-right: none; }
@media (max-width: 700px) { .kpi-strip .k:nth-child(2n) { border-right: none; } .kpi-strip .k { border-bottom: 1px solid var(--line-2); } }
.kpi-strip .k b { display: block; font-size: 26px; font-weight: 800; color: var(--brand); font-variant-numeric: tabular-nums; letter-spacing: -.6px; line-height: 1.1; }
.kpi-strip .k b i { font-style: normal; font-size: 15px; font-weight: 700; margin-left: 1px; }
.kpi-strip .k span { display: block; font-size: 13px; color: var(--muted); margin-top: 6px; }

/* ---------------- 承诺条 ---------------- */
.pledge-row { display: flex; flex-wrap: wrap; gap: 10px; }
.pledge {
  display: inline-flex; align-items: center; gap: 8px;
  border: 1px solid #d8ead9; background: #f4fbf5; color: #1f6b3f;
  border-radius: 999px; padding: 7px 15px; font-size: 13.4px; font-weight: 500;
}
.pledge svg { width: 15px; height: 15px; }

/* ---------------- 通用小工具 ---------------- */
.mt-s { margin-top: 12px; } .mt-m { margin-top: 22px; } .mt-l { margin-top: 40px; }
.center { text-align: center; }
.two-col { display: grid; gap: 26px; grid-template-columns: repeat(2, 1fr); }
@media (max-width: 780px) { .two-col { grid-template-columns: 1fr; } }
.notice-card {
  border: 1px solid var(--line); border-left: 4px solid var(--brand-2);
  border-radius: 12px; padding: 18px 20px; background: #fbfdff; font-size: 14px; line-height: 1.8;
}
.notice-card b { color: var(--brand); }
.notice-card.warn { border-left-color: #c8862a; background: #fffdf6; }
.notice-card.warn b { color: #a16207; }
.notice-card.ok { border-left-color: var(--ok); background: #f4fbf5; }
.notice-card.ok b { color: #1f6b3f; }

/* ---------------- 首页案例卡：问题 / 效果精简两行 ---------------- */
.cr-rows { display: grid; gap: 9px; margin-top: 4px; }
.cr-row { display: grid; grid-template-columns: 36px 1fr; gap: 9px; align-items: start; }
.cr-row .cr-l {
  font-size: 11.5px; font-weight: 700; color: var(--brand); background: var(--brand-soft);
  border-radius: 5px; height: 19px; display: flex; align-items: center; justify-content: center;
}
.cr-row p { font-size: 13.4px; color: var(--ink-2); line-height: 1.65; margin: 0; }

/* ---------------- 页脚声明字号微调 ---------------- */
.site-footer .footer-note { max-width: 100%; }

/* ---------------- 文章列表 / 详情 ----------------
   排序说明：列表按「置顶推荐 → 分类权重 → 日期」排（源头 article_priority.py）。
   置顶的 8 篇加 .art-item--pick 与「编辑推荐」徽标，视觉上要一眼能认出来，
   否则客户仍会以为这只是「最新的几篇」。 */
.art-list { display: grid; gap: 15px; }
.art-item {
  display: grid; grid-template-columns: 1fr auto; gap: 22px; align-items: center;
  border: 1px solid var(--line); border-radius: 13px; background: #fff;
  padding: 22px 26px; transition: box-shadow .2s, transform .2s, border-color .2s;
}
.art-item:hover { box-shadow: var(--shadow-sm); transform: translateY(-2px); border-color: #cfe1f2; }
.art-item h3 { font-size: 18px; margin: 9px 0 8px; line-height: 1.5; }
.art-item h3 a { color: inherit; }
.art-item h3 a:hover { color: var(--brand); }
.art-item p { font-size: 14.2px; color: var(--ink-2); line-height: 1.78; }

/* 置顶推荐卡：左侧品牌色强调条 + 极浅底色，与普通卡明确分层 */
.art-item--pick {
  position: relative; overflow: hidden;
  border-color: #cfe1f2; background: linear-gradient(180deg, #fbfdff, #fff 62%);
  box-shadow: 0 1px 2px rgba(10, 77, 140, .05), 0 8px 22px rgba(10, 77, 140, .06);
}
.art-item--pick::before {
  content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 3px;
  background: linear-gradient(180deg, var(--brand-2), var(--brand-3));
}
.art-item--pick:hover { border-color: var(--brand-3); box-shadow: 0 2px 6px rgba(10, 77, 140, .07), 0 16px 34px rgba(10, 77, 140, .12); }
.art-item--pick h3 { font-size: 19px; }

.art-meta { display: flex; align-items: center; gap: 11px; font-size: 12.6px; color: var(--muted); flex-wrap: wrap; }
.art-cat {
  display: inline-block; padding: 3px 11px; border-radius: 999px;
  background: var(--brand-soft); color: var(--brand); font-size: 11.6px; font-weight: 600;
}
.art-cat.tech { background: var(--brand-soft); color: var(--brand); }
.art-cat.news { background: #eef3f9; color: #4a6785; }
.art-cat.industry { background: #eaf4ef; color: #2c6b52; }
.art-cat.brand { background: #f6f0e6; color: #8a6524; }

/* 「编辑推荐」徽标：唯一使用近红的位置，用于把置顶文从序列里拎出来 */
.art-pick {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 3px 11px 3px 9px; border-radius: 999px;
  background: linear-gradient(135deg, #c0392b, #d9553f); color: #fff;
  font-size: 11.6px; font-weight: 700; letter-spacing: .2px;
}
.art-pick::before { content: "★"; font-size: 10.5px; line-height: 1; opacity: .95; }

/* 推荐卡的两个徽标之间留白小一点，读起来是一个整体 */
.art-item--pick .art-meta { gap: 9px; }

/* 分类按钮上的条数 */
.filter-chip .chip-n {
  display: inline-block; margin-left: 7px; padding: 0 6px;
  border-radius: 999px; font-style: normal; font-size: 11px; font-weight: 600;
  background: rgba(10, 77, 140, .1); color: inherit; opacity: .78;
}
.filter-chip.active .chip-n { background: rgba(255, 255, 255, .22); opacity: 1; }

/* 文章末尾的资料来源块 */
.art-source {
  margin-top: 34px; padding: 20px 22px;
  border-left: 3px solid var(--line); background: var(--bg-soft);
  border-radius: 0 10px 10px 0; font-size: 13.4px; color: var(--ink-2);
}
.art-source b { display: block; margin-bottom: 10px; color: var(--ink); font-size: 14px; }
.art-source ul { margin: 0 0 10px; padding-left: 18px; }
.art-source li { margin-bottom: 6px; line-height: 1.7; }
.art-source a { color: var(--brand); word-break: break-all; }
.art-source p { margin: 0; font-size: 12.6px; color: var(--muted); line-height: 1.7; }
.art-go { color: var(--brand); font-size: 13.4px; white-space: nowrap; font-weight: 500; }
@media (max-width: 720px) {
  .art-item { grid-template-columns: 1fr; gap: 10px; padding: 18px 18px; }
  .art-item--pick { padding-left: 21px; }
  .art-item--pick h3 { font-size: 17.5px; }
  .art-go { display: none; }
}

.prose { max-width: 47em; }
.prose h2 { font-size: 19.5px; margin: 34px 0 12px; color: var(--ink); }
.prose h2:first-child { margin-top: 0; }
.prose p { margin-bottom: 16px; font-size: 15.8px; line-height: 1.95; color: var(--ink-2); }
.prose ul, .prose ol { margin: 0 0 18px 21px; }
.prose li { font-size: 15.8px; line-height: 1.9; color: var(--ink-2); margin-bottom: 7px; }
.prose .lead {
  padding: 16px 20px; border-left: 4px solid var(--brand-2); border-radius: 10px;
  background: #fbfdff; font-size: 15.4px; line-height: 1.85; color: var(--ink-2); margin-bottom: 26px;
}
.art-head-meta { display: flex; align-items: center; gap: 12px; font-size: 13px; color: var(--muted); margin-top: 14px; flex-wrap: wrap; }

/* ---------------- 视频 / 现场实录 ---------------- */
.video-grid { display: grid; gap: 18px; grid-template-columns: repeat(3, 1fr); }
@media (max-width: 980px) { .video-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 620px) { .video-grid { grid-template-columns: 1fr; } }
.video-card {
  border: 1px solid var(--line); border-radius: 14px; overflow: hidden; background: #fff;
  transition: box-shadow .2s, transform .2s; display: flex; flex-direction: column;
}
.video-card:hover { box-shadow: var(--shadow-sm); transform: translateY(-3px); }
.vc-cover {
  position: relative; aspect-ratio: 16 / 9; background: linear-gradient(135deg, #0b1a2b, #0a4d8c);
  display: grid; place-items: center; color: rgba(255,255,255,.9);
}
.vc-cover img { width: 100%; height: 100%; object-fit: cover; }
.vc-play {
  position: absolute; inset: 0; display: grid; place-items: center;
  background: linear-gradient(180deg, rgba(11,26,43,.15), rgba(11,26,43,.5));
}
.vc-play span {
  width: 52px; height: 52px; border-radius: 50%; background: rgba(255,255,255,.92);
  display: grid; place-items: center; box-shadow: 0 6px 20px rgba(0,0,0,.28);
}
.vc-play svg { width: 22px; height: 22px; color: #0a4d8c; margin-left: 3px; }
.vc-plat {
  position: absolute; left: 12px; top: 12px; padding: 3px 10px; border-radius: 999px;
  background: rgba(11,26,43,.72); color: #fff; font-size: 11.5px; backdrop-filter: blur(4px);
}
.vc-body { padding: 16px 18px 18px; display: flex; flex-direction: column; gap: 8px; flex: 1; }
.vc-body h3 { font-size: 16px; line-height: 1.5; }
.vc-body p { font-size: 13.4px; color: var(--muted); line-height: 1.7; }
.vc-body .vc-act { margin-top: auto; padding-top: 10px; }
.vc-placeholder {
  padding: 40px 22px; border: 1px dashed var(--line); border-radius: 14px;
  background: #fbfdff; text-align: center; color: var(--muted); font-size: 14px; line-height: 1.9;
}

/* ---------------- 全媒体矩阵 ---------------- */
.media-grid { display: grid; gap: 16px; grid-template-columns: repeat(4, 1fr); }
@media (max-width: 980px) { .media-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 720px) { .media-grid { grid-template-columns: repeat(2, 1fr); } }
.media-card {
  border: 1px solid var(--line); border-radius: 13px; background: #fff;
  padding: 20px 16px; text-align: center; transition: box-shadow .2s, transform .2s, border-color .2s;
  display: flex; flex-direction: column; align-items: center; gap: 8px;
}
.media-card:hover { box-shadow: var(--shadow-sm); transform: translateY(-3px); border-color: #cfe1f2; }
.media-card .mi {
  width: 44px; height: 44px; border-radius: 12px; display: grid; place-items: center;
  background: var(--brand-soft); color: var(--brand);
}
.media-card .mi svg { width: 22px; height: 22px; }
.media-card b { font-size: 15px; }
.media-card span { font-size: 12.6px; color: var(--muted); line-height: 1.6; }
.media-card .mc-state {
  margin-top: 2px; font-size: 11.4px; padding: 2px 9px; border-radius: 999px;
  background: #f2f6fa; color: #576c82;   /* 原硬编码 #6b8199 仅 3.70，未跟上 --muted 的加深 */
}
/* 二维码占位：只做明确说明，不画仿真码 */
.qr-box.is-pending { border-style: dashed; background: #fafcfe; padding: 12px; }
.qr-box.is-pending svg { width: 34px; height: 34px; color: #b9cbdd; }
.qr-pending {
  display: grid; place-items: center; gap: 4px; height: 100%; text-align: center;
}
.qr-pending b { font-size: 12.6px; color: var(--ink-2); font-weight: 600; }
.qr-pending i { font-size: 11.4px; color: var(--muted); font-style: normal; }

/* 渠道未开通时的单块说明（替代三张空二维码卡） */
.qr-single {
  display: flex; align-items: flex-start; gap: 20px;
  max-width: 720px; margin: 0 auto;
  padding: 24px 26px; border-radius: var(--radius);
  background: #fff; border: 1px solid var(--line);
}
.qr-single-ico {
  flex: 0 0 auto; width: 52px; height: 52px; border-radius: 12px;
  display: grid; place-items: center;
  color: var(--brand); background: var(--bg-soft, #f4f8fc);
  border: 1px solid var(--line);
}
.qr-single-ico svg { width: 26px; height: 26px; }
.qr-single-body { min-width: 0; }
.qr-single-body h3 { font-size: 16px; color: var(--ink); margin-bottom: 8px; }
/* 渠道状态徽章（2026-10-09）：已开通 / 陆续开通一眼可辨，避免"没内容"的空洞感 */
.qr-tags { display: flex; flex-wrap: wrap; gap: 8px; margin: 2px 0 12px; }
.qr-tag {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 4px 11px; border-radius: 999px;
  font-size: 12.6px; font-weight: 600; line-height: 1.5;
  color: var(--muted); background: var(--bg-soft, #f4f8fc);
  border: 1px solid var(--line);
}
.qr-tag i { font-style: normal; font-size: 11.6px; font-weight: 600; color: var(--muted); opacity: .82; }
.qr-tag.is-on { color: var(--brand); background: var(--brand-soft); border-color: rgba(10,77,140,.18); }
.qr-tag.is-on i { color: #1d7a45; }
.qr-tag.is-on i::before { content: "● "; font-size: 9px; vertical-align: 1px; }
.qr-single-body p { font-size: 13.6px; line-height: 1.85; color: var(--muted); }
.qr-single-body p a { color: var(--brand); font-weight: 600; }
.qr-single-cta { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 14px; }
@media (max-width: 560px) {
  .qr-single { flex-direction: column; gap: 14px; padding: 20px; }
}

/* 页脚「服务机型」独占一行，避免与版权行地址挤在一起 */
.footer-bottom .footer-machines { flex-basis: 100%; }

/* ---------------- 筛选栏（.filter-bar 容器，chips 样式见 site.css） ---------------- */
.filter-bar { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.filter-bar .fb-label { font-size: 13.4px; color: var(--muted); margin-right: 4px; }

/* =========================================================================
   视觉强化层：配色深化 / 首屏光影 / 微交互 / 悬浮转化
   ========================================================================= */
:root {
  --accent: #0fb9d8;
  --accent-2: #4fd8f0;
}

/* ---- 首屏：空间感与光效 ---- */
.home-hero { background: #08131f; }
.home-hero .bg img { opacity: .5; }
.home-hero .bg::after {
  background: linear-gradient(102deg, rgba(6,16,28,.97) 0%, rgba(9,40,74,.87) 46%, rgba(8,24,42,.80) 100%);
}
.home-hero::after {
  content: ""; position: absolute; inset: 0; pointer-events: none; z-index: 1;
  background:
    radial-gradient(900px 430px at 80% 10%, rgba(15,185,216,.26), transparent 60%),
    radial-gradient(700px 400px at 4% 94%, rgba(14,107,184,.30), transparent 64%);
}
.home-hero .container { position: relative; z-index: 2; }
.home-hero .eyebrow { color: var(--accent-2); }
.home-hero .eyebrow::before { background: var(--accent); }
.home-hero h1 { text-shadow: 0 3px 30px rgba(0,0,0,.34); }
.home-hero p { color: rgba(255,255,255,.83); }

/* 首屏承诺条：深色底上改为玻璃质感 */
.home-hero .pledge {
  background: rgba(255,255,255,.1); border-color: rgba(255,255,255,.22);
  color: #eaf6ff; backdrop-filter: blur(6px);
}

/* ---- 卡片统一微交互 ---- */
.model-card, .art-item, .video-card, .media-card, .card, .case4, .guar-card, .feature, .step {
  transition: box-shadow .22s ease, transform .22s ease, border-color .22s ease;
}

/* ---- 关键数字：品牌渐变 ---- */
.kpi-strip .k b {
  background: linear-gradient(96deg, var(--brand), var(--accent));
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent;
}

/* ---- 悬浮转化条（仅桌面端，移动端由底部操作条承担） ---- */
.float-cta {
  position: fixed; right: 22px; bottom: 24px; z-index: 60;
  display: grid; gap: 9px; width: 234px;
  transition: opacity .28s ease, transform .28s ease;
}
/* 接近页面底部时让位（见 site.js renderFloatCta），不遮挡页脚内容 */
.float-cta.is-docked { opacity: 0; transform: translateY(14px); pointer-events: none; }
@media (max-width: 900px) { .float-cta { display: none; } }
@media (prefers-reduced-motion: reduce) { .float-cta { transition: none; } }
.fc-card {
  background: #fff; border: 1px solid var(--line); border-radius: 14px;
  box-shadow: var(--shadow); padding: 13px 15px;
}
.fc-tel { display: flex; align-items: center; gap: 11px; }
.fc-tel:hover .fc-ico { background: var(--brand); color: #fff; }
.fc-ico {
  width: 38px; height: 38px; border-radius: 11px; display: grid; place-items: center;
  background: var(--brand-soft); color: var(--brand); flex: none;
  transition: background .2s, color .2s;
}
.fc-ico svg { width: 19px; height: 19px; }
.fc-tel b { display: block; font-size: 14.6px; line-height: 1.35; }
.fc-tel small { font-size: 12.3px; color: var(--muted); }
.fc-btn { display: block; text-align: center; }
.fc-hint { font-size: 11.8px; color: var(--muted); text-align: center; line-height: 1.5; }
.fc-hint .fc-em { color: var(--brand); font-weight: 600; white-space: nowrap; }
.fc-hint .fc-em:hover { text-decoration: underline; }
.fc-hint .fc-em b { letter-spacing: .2px; }

/* =========================================================================
   细节打磨：章节装饰 / 卡片高光 / 步骤序号
   ========================================================================= */

/* 居中章节标题下的渐变短线 */
.section-head.center .section-title::after {
  content: ""; display: block; width: 46px; height: 3px; border-radius: 3px;
  margin: 16px auto 0; background: linear-gradient(90deg, var(--brand), var(--accent));
}

/* 卡片悬停：边框泛蓝 + 轻微上浮 */
.model-card:hover, .art-item:hover, .video-card:hover, .media-card:hover,
.card:hover, .guar-card:hover, .feature:hover, .step:hover { border-color: #cfe1f2; }
.guar-card:hover, .feature:hover, .step:hover { box-shadow: var(--shadow-sm); transform: translateY(-3px); }

/* 服务流程序号：强调色 + 渐显 */
.step::before {
  background: linear-gradient(96deg, var(--brand), var(--accent));
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent;
}

/* 承诺条（浅色区）：勾选图标对齐 */
.pledge { line-height: 1.5; }

/* 表格 / 长内容在移动端横向滚动，避免撑破布局 */
@media (max-width: 720px) {
  .prose { max-width: 100%; }
  .notice-card { padding: 16px 16px; }
}

/* =========================================================================
   工程履历（团队真实业绩）
   ========================================================================= */
.ref-section {
  position: relative;
  background:
    radial-gradient(900px 460px at 88% -8%, rgba(15,185,216,.09), transparent 62%),
    linear-gradient(180deg, #ffffff 0%, #f6fafd 100%);
  overflow: hidden;
}
.ref-section::before {
  content: ""; position: absolute; inset: 0; pointer-events: none; opacity: .5;
  background-image:
    linear-gradient(rgba(10,77,140,.045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(10,77,140,.045) 1px, transparent 1px);
  background-size: 52px 52px;
  mask-image: linear-gradient(180deg, #000 0%, transparent 78%);
  -webkit-mask-image: linear-gradient(180deg, #000 0%, transparent 78%);
}
.ref-section > .container { position: relative; z-index: 1; }

.ref-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
  margin-top: 36px;
}

.ref-card {
  display: flex; flex-direction: column;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  overflow: hidden;
  box-shadow: 0 1px 2px rgba(15,27,45,.04);
  transition: transform .3s cubic-bezier(.2,.7,.3,1), box-shadow .3s, border-color .3s;
}
.ref-card:hover {
  transform: translateY(-5px);
  border-color: rgba(15,185,216,.5);
  box-shadow: 0 22px 48px rgba(10,77,140,.16);
}

.ref-media { position: relative; aspect-ratio: 16 / 10; background: #0d1c2e; overflow: hidden; }
.ref-media img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .5s cubic-bezier(.2,.7,.3,1); }
.ref-card:hover .ref-media img { transform: scale(1.05); }
.ref-media::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(180deg, rgba(8,19,31,.10) 0%, rgba(8,19,31,0) 42%, rgba(8,19,31,.55) 100%);
}
.ref-type, .ref-year {
  position: absolute; z-index: 2; top: 12px;
  font-size: 11.6px; font-weight: 700; letter-spacing: .4px;
  padding: 4px 10px; border-radius: 999px; backdrop-filter: blur(6px);
}
.ref-type { left: 12px; background: rgba(15,185,216,.9); color: #04222c; }
.ref-year { right: 12px; background: rgba(255,255,255,.82); color: var(--brand); }

/* 工程履历·设备类型视觉卡（无现场照的项目用它，避免用不相干照片冒充） */
.ref-media-icon {
  background:
    radial-gradient(560px 220px at 78% 8%, rgba(15,185,216,.30), transparent 68%),
    radial-gradient(420px 200px at 12% 100%, rgba(10,77,140,.34), transparent 70%),
    linear-gradient(150deg, #10263c 0%, #0b1a2b 62%, #08131f 100%);
  display: flex; align-items: center; justify-content: center;
}
.ref-media-icon::after {
  background:
    repeating-linear-gradient(90deg, rgba(255,255,255,.05) 0 1px, transparent 1px 44px),
    repeating-linear-gradient(0deg, rgba(255,255,255,.05) 0 1px, transparent 1px 44px);
}
.ref-media-icon .ref-ico {
  position: relative; z-index: 2;
  width: 76px; height: 76px; border-radius: 20px;
  display: grid; place-items: center;
  background: rgba(255,255,255,.07);
  border: 1px solid rgba(15,185,216,.42);
  box-shadow: 0 16px 40px rgba(0,0,0,.30), inset 0 1px 0 rgba(255,255,255,.10);
}
.ref-media-icon .ref-ico svg { width: 38px; height: 38px; stroke: #6fd7ee; }
.ref-media-icon .ref-eq {
  position: absolute; z-index: 2; bottom: 14px; left: 0; right: 0;
  text-align: center; font-size: 12.4px; font-weight: 700; letter-spacing: 3px;
  color: rgba(214,238,248,.72);
}
@media (min-width: 981px) {
  .ref-card.major .ref-media-icon { min-height: 268px; }
  .ref-card.major .ref-media-icon .ref-ico { width: 96px; height: 96px; border-radius: 24px; }
  .ref-card.major .ref-media-icon .ref-ico svg { width: 48px; height: 48px; }
}

.ref-body { padding: 20px 20px 22px; display: flex; flex-direction: column; gap: 9px; flex: 1; }
.ref-body h3 { margin: 0; font-size: 17.5px; line-height: 1.4; letter-spacing: -.2px; color: var(--ink); }
.ref-scale {
  font-size: 13.2px; color: var(--brand-2); font-weight: 600;
  display: flex; align-items: flex-start; gap: 6px;
}
.ref-scale::before { content: ""; width: 3px; height: 14px; border-radius: 2px; background: linear-gradient(180deg, var(--brand), var(--accent)); flex: none; margin-top: 3px; }
.ref-sys {
  font-size: 13.2px; color: var(--ink-2); line-height: 1.7;
  background: var(--bg-soft); border: 1px dashed var(--line);
  border-radius: var(--radius-sm); padding: 10px 12px;
}
.ref-sys b { display: block; font-size: 11.4px; letter-spacing: .6px; color: var(--muted); font-weight: 700; margin-bottom: 3px; }
.ref-body p { margin: 0; font-size: 13.2px; line-height: 1.72; color: var(--muted); }

/* 重点项目：整行跨列，图左文右 */
@media (min-width: 981px) {
  .ref-card.major {
    grid-column: span 2;
    display: grid; grid-template-columns: 1.08fr 1fr;
  }
  /* 图左文右。图区给固定 16:9，文字区自适应并垂直居中：
     原height:100% 让图区跟随文字高度，实测被撑成 422x459≈0.92 竖条，
     横图两侧被裁掉约 36%。固定比例后图区恒为横向，主体不会被切；
     align-items:center 让文字在图高之外居中，避免文字少时底部留大片空白。 */
  .ref-card.major {
    grid-column: span 2;
    display: grid; grid-template-columns: 1.08fr 1fr;
    align-items: center;
  }
  .ref-card.major .ref-media {
    aspect-ratio: 16 / 9; height: auto; min-height: 0;
  }
  .ref-card.major .ref-body { padding: 22px 26px; justify-content: center; gap: 11px; }
  .ref-card.major .ref-body { padding: 26px 26px 26px; justify-content: center; gap: 11px; }
  .ref-card.major h3 { font-size: 21px; }
  .ref-card.major .ref-body p { font-size: 13.6px; }
}

.ref-note {
  margin-top: 28px; padding: 18px 22px;
  border: 1px solid var(--line); border-left: 3px solid var(--accent);
  border-radius: 12px; background: #fff;
  box-shadow: 0 1px 2px rgba(15,27,45,.04);
}
.ref-note b { display: block; font-size: 13.6px; color: var(--ink); margin-bottom: 6px; }
.ref-note p { margin: 0; font-size: 12.9px; line-height: 1.8; color: var(--muted); }

@media (max-width: 980px) {
  .ref-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 680px) {
  .ref-grid { grid-template-columns: 1fr; gap: 16px; }
  .ref-body { padding: 17px 17px 19px; }
}

/* =========================================================================
   全站视觉冲击强化 v5：深色区块 / 数据表达 / 强对比 CTA
   ========================================================================= */

/* ---- 章节标题：左侧竖条 + 更紧的层级 ---- */
.section-head .eyebrow {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 12px; font-weight: 800; letter-spacing: 1.5px; text-transform: uppercase;
  color: #0a7d94;   /* 深青：浅底对比度 4.8，兼顾可读性与青色点缀（原 --accent 仅 2.2） */
}
.section-head h2 {
  font-size: clamp(23px, 3vw, 34px);
  letter-spacing: -.7px;
  color: var(--ink);
}
.section-head p { font-size: 15px; line-height: 1.85; color: var(--muted); }

/* ---- 深色区块（首屏下方数据带 / 转化区） ---- */
.band-dark {
  position: relative; color: #fff; overflow: hidden;
  background: linear-gradient(118deg, #071426 0%, #0a2f57 48%, #0b4a80 100%);
}
.band-dark::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background:
    radial-gradient(760px 340px at 84% 6%, rgba(15,185,216,.32), transparent 62%),
    radial-gradient(620px 320px at 2% 96%, rgba(30,154,214,.22), transparent 66%);
}
.band-dark > .container { position: relative; z-index: 2; }
.band-dark .section-head h2 { color: #fff; }
.band-dark .section-head p { color: rgba(255,255,255,.76); }

/* ---- 数据表达：大字号 + 渐变数字 ---- */
.stat-row { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 18px; margin-top: 30px; }
.stat-row .st {
  padding: 22px 20px; border-radius: var(--radius);
  background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.16);
  backdrop-filter: blur(8px);
}
.stat-row .st b {
  display: block; font-size: clamp(28px, 3.6vw, 42px); line-height: 1;
  letter-spacing: -1.2px; font-variant-numeric: tabular-nums;
  background: linear-gradient(96deg, #fff 10%, var(--accent-2));
  -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
}
.stat-row .st b i { font-style: normal; font-size: .5em; margin-left: 3px; }
.stat-row .st span { display: block; margin-top: 9px; font-size: 13px; color: rgba(255,255,255,.72); }
@media (max-width: 860px) { .stat-row { grid-template-columns: repeat(2, minmax(0,1fr)); } }

/* ---- 强对比 CTA 条 ---- */
.cta-band {
  position: relative; border-radius: 18px; overflow: hidden; padding: 44px 42px;
  background: linear-gradient(118deg, #071426, #0a4d8c 58%, #0e7cc4);
  color: #fff;
  display: grid; grid-template-columns: 1.35fr .65fr; gap: 30px; align-items: center;
  box-shadow: 0 26px 60px rgba(8,32,60,.28);
}
.cta-band::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: radial-gradient(560px 280px at 88% 0%, rgba(15,185,216,.4), transparent 62%);
}
.cta-band > * { position: relative; z-index: 2; }
.cta-band h2 { color: #fff; font-size: clamp(21px, 2.6vw, 30px); letter-spacing: -.5px; margin: 0; }
.cta-band p { color: rgba(255,255,255,.8); margin: 12px 0 0; font-size: 15.4px; line-height: 1.8; }
.cta-band .cta-actions { display: grid; gap: 11px; }
/* 皮肤由 site.css 的「CTA 按钮体系」统一提供（.btn-light / .btn-line），此处不再重复定义 */
@media (max-width: 860px) { .cta-band { grid-template-columns: 1fr; padding: 30px 24px; } }

/* ---- 现场实录：图片墙 ---- */
.shot-wall { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 14px; margin-top: 30px; }
.shot {
  position: relative; border-radius: 14px; overflow: hidden; background: #0d1c2e;
  aspect-ratio: 4 / 3;
}
.shot img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .55s cubic-bezier(.2,.7,.3,1); }
.shot:hover img { transform: scale(1.06); }
.shot figcaption {
  position: absolute; left: 0; right: 0; bottom: 0; z-index: 2;
  padding: 26px 14px 12px; font-size: 12.6px; color: #fff; line-height: 1.5;
  background: linear-gradient(180deg, transparent, rgba(6,16,28,.86));
}
.shot.tall { grid-row: span 2; aspect-ratio: 4 / 6.3; }
@media (max-width: 860px) { .shot-wall { grid-template-columns: repeat(2, minmax(0,1fr)); } .shot.tall { grid-row: auto; aspect-ratio: 4/3; } }
@media (max-width: 560px) { .shot-wall { grid-template-columns: 1fr; } }

/* ---- 工艺标准：隐患对照 ---- */
.craft-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 18px; margin-top: 30px; }
.craft-card {
  border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; background: #fff;
}
.craft-card img { width: 100%; display: block; }
.craft-card .cc-body { padding: 16px 18px 18px; }
.craft-card .cc-body b { display: block; font-size: 15px; color: var(--ink); margin-bottom: 6px; }
.craft-card .cc-body p { margin: 0; font-size: 13.2px; line-height: 1.75; color: var(--muted); }
@media (max-width: 760px) { .craft-grid { grid-template-columns: 1fr; } }

/* ---- 机型卡：白底产品图 / 实拍图统一按 4:3 承载，八张卡尺寸一致 ---- */
.model-card .mc-media {
  height: auto;
  aspect-ratio: 4 / 3;
  padding: 8px;
  background: linear-gradient(180deg, #ffffff 0%, #f1f7fd 100%);
}
.model-card .mc-media img { width: 100%; height: 100%; object-fit: contain; }
@media (max-width: 620px) {
  .model-card .mc-media { aspect-ratio: 16 / 10; }
}


/* =========================================================================
   V5 · 视觉冲击升级（首屏海报化 / 深色节奏 / 克制动效 / 高清大图）
   设计依据：工业风为基底（深灰·炭黑 + 单一工业青点缀），
   首屏按"海报"而非"文档"处理；装饰性动效一律包在 prefers-reduced-motion 内。
   ========================================================================= */

:root {
  --deep: #05121f;
  --deep-2: #082036;
  --deep-3: #0d3355;
  --cyan: #12c2e0;
  --cyan-2: #6fe3f7;
}

/* ---------------- 1. 首屏（海报式全出血） ---------------- */
.hero-x {
  position: relative; isolation: isolate; overflow: hidden;
  min-height: min(92vh, 900px);
  display: flex; align-items: center;
  background: var(--deep);
  color: #fff;
}
.hero-x-media { position: absolute; inset: 0; z-index: 0; }
.hero-x-media img {
  width: 100%; height: 100%; object-fit: cover; object-position: 50% 46%;
  transform: scale(1.02);
}
.hero-x-veil {
  position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background:
    linear-gradient(101deg, rgba(4,12,22,.965) 0%, rgba(6,24,43,.90) 34%, rgba(7,30,52,.62) 64%, rgba(6,26,46,.80) 100%),
    linear-gradient(180deg, rgba(4,12,22,.55) 0%, transparent 26%, transparent 66%, rgba(4,12,22,.72) 100%);
}
.hero-x-glow {
  position: absolute; inset: 0; z-index: 2; pointer-events: none;
  background:
    radial-gradient(760px 420px at 82% 6%, rgba(18,194,224,.30), transparent 62%),
    radial-gradient(620px 380px at 2% 100%, rgba(13,51,85,.75), transparent 66%);
}
.hero-x-grid {
  position: absolute; inset: 0; z-index: 2; pointer-events: none; opacity: .55;
  background-image:
    linear-gradient(rgba(130,205,255,.075) 1px, transparent 1px),
    linear-gradient(90deg, rgba(130,205,255,.075) 1px, transparent 1px);
  background-size: 68px 68px;
  -webkit-mask-image: radial-gradient(120% 96% at 22% 34%, #000 0%, rgba(0,0,0,.35) 52%, transparent 78%);
  mask-image: radial-gradient(120% 96% at 22% 34%, #000 0%, rgba(0,0,0,.35) 52%, transparent 78%);
}
.hero-x-noise {
  position: absolute; inset: 0; z-index: 2; pointer-events: none; opacity: .30; mix-blend-mode: overlay;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)' opacity='.5'/%3E%3C/svg%3E");
}
.hero-x-inner { position: relative; z-index: 3; width: 100%; padding: 108px 0 96px; }

.hero-x-badge {
  display: inline-flex; align-items: center; gap: 9px;
  padding: 7px 15px 7px 11px; border-radius: 999px;
  background: rgba(255,255,255,.09); border: 1px solid rgba(255,255,255,.20);
  font-size: 12.6px; letter-spacing: .5px; font-weight: 600; color: #dcf2ff;
  backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
}
.hero-x-badge i {
  width: 7px; height: 7px; border-radius: 50%; background: #4fd18b; flex: none;
  box-shadow: 0 0 0 4px rgba(79,209,139,.22);
}
.hero-x h1 {
  margin: 22px 0 0;
  font-size: clamp(33px, 5.9vw, 74px);
  line-height: 1.05; letter-spacing: -2px; font-weight: 800;
  text-shadow: 0 8px 40px rgba(0,0,0,.45);
  max-width: 15em;
}
.hero-x h1 em {
  font-style: normal;
  background: linear-gradient(96deg, #7fd8ff 0%, var(--cyan-2) 58%, #b6f0ff 100%);
  -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
}
.hero-x h1 .hx-thin { font-weight: 500; opacity: .62; letter-spacing: -.5px; }
.hero-x-lead {
  margin-top: 22px; max-width: 40em;
  font-size: clamp(15px, 1.5vw, 18px); line-height: 1.82; color: rgba(232,244,255,.84);
}
.hero-x-cta { margin-top: 34px; display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.hero-x-cta .btn-primary {
  padding: 15px 28px; font-size: 16px; border-radius: 12px;
  background: linear-gradient(135deg, var(--cyan) 0%, #0a7fb8 100%);
  box-shadow: 0 14px 34px rgba(18,194,224,.32);
}
.hero-x-cta .btn-primary:hover { box-shadow: 0 18px 42px rgba(18,194,224,.42); }
.hero-x-cta .btn-ghost {
  padding: 15px 24px; font-size: 16px; border-radius: 12px;
  background: rgba(255,255,255,.07); border-color: rgba(255,255,255,.30); color: #fff;
  backdrop-filter: blur(8px);
}
.hero-x-cta .btn-ghost:hover { background: rgba(255,255,255,.15); border-color: #fff; }

/* 首屏 KPI（数字滚动） */
.hero-x-kpi {
  margin-top: 54px; padding-top: 30px;
  border-top: 1px solid rgba(255,255,255,.14);
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 26px; max-width: 940px;
}
.hero-x-kpi .k b {
  display: block; font-size: clamp(27px, 3.1vw, 40px); font-weight: 800; line-height: 1.05;
  letter-spacing: -1px; color: #fff; font-variant-numeric: tabular-nums;
}
.hero-x-kpi .k b i { font-style: normal; font-size: .5em; font-weight: 700; color: var(--cyan-2); margin-left: 3px; letter-spacing: 0; }
.hero-x-kpi .k > span { display: block; margin-top: 7px; font-size: 13.2px; color: rgba(226,240,255,.62); }

.hero-x-foot {
  margin-top: 30px; display: flex; flex-wrap: wrap; gap: 8px 10px;
}
.hero-x-foot .pill {
  display: inline-flex; align-items: center; gap: 7px;
  padding: 7px 14px; border-radius: 999px; font-size: 12.8px; font-weight: 600;
  color: #e6f6ff; background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.16); backdrop-filter: blur(6px);
}
.hero-x-foot .pill::before { content: ""; width: 5px; height: 5px; border-radius: 50%; background: var(--cyan); }

/* 入场序列（错峰浮现） */
@media (prefers-reduced-motion: no-preference) {
  .hero-x .hx {
    opacity: 0; transform: translateY(26px);
    animation: hxUp .95s cubic-bezier(.16,.84,.28,1) forwards;
    animation-delay: var(--d, 0ms);
  }
  @keyframes hxUp { to { opacity: 1; transform: none; } }
  .hero-x-media img {
    animation: hxZoom 22s ease-out forwards;
  }
  @keyframes hxZoom { from { transform: scale(1.10); } to { transform: scale(1.02); } }
}
.hero-x-media img { animation-fill-mode: both; }

/* 首屏滚动提示 */
.hero-x-cue {
  position: absolute; left: 50%; bottom: 20px; transform: translateX(-50%); z-index: 3;
  display: flex; flex-direction: column; align-items: center; gap: 6px;
  font-size: 11px; letter-spacing: 2.4px; color: rgba(255,255,255,.42); text-transform: uppercase;
}
.hero-x-cue span {
  width: 1px; height: 34px; background: linear-gradient(rgba(255,255,255,.05), rgba(255,255,255,.5));
}
@media (prefers-reduced-motion: no-preference) {
  .hero-x-cue span { animation: cueMove 2.2s ease-in-out infinite; }
  @keyframes cueMove { 0%,100% { opacity:.35; transform: scaleY(.7); } 50% { opacity:.85; transform: scaleY(1); } }
}
@media (max-width: 900px) { .hero-x-cue { display: none; } }

/* ---------------- 2. 深色区块（视觉节奏） ---------------- */
.section-deep {
  position: relative; isolation: isolate; overflow: hidden;
  background: linear-gradient(168deg, #061524 0%, #082036 46%, #061a2d 100%);
  color: #fff;
}
.section-deep .bg-layer { position: absolute; inset: 0; z-index: 0; pointer-events: none; }
.section-deep .bg-layer img { width: 100%; height: 100%; object-fit: cover; opacity: .16; }
.section-deep .bg-layer::after {
  content: ""; position: absolute; inset: 0;
  background: radial-gradient(900px 460px at 84% 4%, rgba(18,194,224,.16), transparent 62%);
}
.section-deep .bg-grid {
  position: absolute; inset: 0; z-index: 1; pointer-events: none; opacity: .5;
  background-image:
    linear-gradient(rgba(130,205,255,.06) 1px, transparent 1px),
    linear-gradient(90deg, rgba(130,205,255,.06) 1px, transparent 1px);
  background-size: 60px 60px;
  -webkit-mask-image: radial-gradient(100% 80% at 50% 0%, #000, transparent 76%);
  mask-image: radial-gradient(100% 80% at 50% 0%, #000, transparent 76%);
}
.section-deep > .container { position: relative; z-index: 2; }
.section-deep .section-title { color: #fff; }
.section-deep .section-sub { color: rgba(224,239,255,.68); }
.section-deep .eyebrow { color: var(--cyan-2); }
.section-deep .eyebrow::before { background: var(--cyan); }
.section-deep .guar-card {
  background: rgba(255,255,255,.055); border-color: rgba(255,255,255,.13);
  backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px);
}
.section-deep .guar-card:hover { background: rgba(255,255,255,.10); border-color: rgba(111,227,247,.45); }
.section-deep .guar-card h3 { color: #fff; }
.section-deep .guar-card p { color: rgba(220,236,251,.72); }
.section-deep .guar-card p b { color: #fff; }
.section-deep .gc-ico { background: rgba(18,194,224,.16); color: var(--cyan-2); }
.section-deep .btn-ghost {
  background: rgba(255,255,255,.06); border-color: rgba(255,255,255,.28); color: #fff;
}
.section-deep .btn-ghost:hover { background: rgba(255,255,255,.14); border-color: #fff; color: #fff; }
.section-deep .section-head.center .section-title::after { background: linear-gradient(90deg, var(--cyan), #7fd8ff); }
.section-deep .notice-card { background: rgba(255,255,255,.05); border-color: rgba(255,255,255,.14); border-left-color: var(--cyan); color: rgba(224,239,255,.75); }
.section-deep .notice-card b { color: #fff; }

/* ---------------- 3. 大图带（case / 案例图统一处理） ---------------- */
.media-band {
  position: relative; border-radius: 16px; overflow: hidden;
  box-shadow: 0 22px 50px rgba(6,20,36,.16);
  background: #0b1a2b;
}
.media-band img { width: 100%; height: 100%; object-fit: cover; display: block; }
.media-band .cap {
  position: absolute; left: 0; right: 0; bottom: 0; padding: 22px 24px 18px;
  background: linear-gradient(transparent, rgba(4,14,26,.86));
  color: #fff; font-size: 14px; line-height: 1.6;
}
.media-band .cap b { display: block; font-size: 16.5px; margin-bottom: 3px; }

/* ---------------- 4. 机型卡片：媒体区升级 ---------------- */
.model-card .mc-media {
  background:
    radial-gradient(120% 120% at 50% 0%, #ffffff 0%, #eef5fc 62%, #e3eefa 100%);
}
.model-card .mc-media img { transition: transform .45s cubic-bezier(.3,.8,.3,1); }
.model-card:hover .mc-media img { transform: scale(1.045); }
.model-card.major .mc-media { background:
    radial-gradient(120% 120% at 50% 0%, #ffffff 0%, #eaf3fc 58%, #dbe9f8 100%); }

/* ---------------- 5. 卡片图片统一微交互 ---------------- */
.card-media img, .split-media img, .case4 .c4-media img, .art-item .ai-cover img {
  transition: transform .55s cubic-bezier(.3,.8,.3,1);
}
.card:hover .card-media img, .case4:hover .c4-media img { transform: scale(1.05); }
.split-media { position: relative; }
.split-media::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  box-shadow: inset 0 0 0 1px rgba(10,77,140,.10);
  border-radius: inherit;
}

/* ---------------- 6. 数字滚动（进入视口触发） ---------------- */
.count-num { font-variant-numeric: tabular-nums; }

/* ---------------- 7. 章节标题排版加强 ---------------- */
.section-title { letter-spacing: -1.1px; line-height: 1.16; }
.section-head .section-sub { line-height: 1.78; }

/* ---------------- 8. 悬浮转化条修色（此前 fc-card 白底覆盖了按钮底色） ---------------- */
.float-cta .fc-btn,
.float-cta .btn.btn-primary.fc-card {
  background: linear-gradient(135deg, var(--brand-2), var(--brand));
  border: 1px solid transparent; color: #fff;
  box-shadow: 0 10px 26px rgba(10,77,140,.28);
  padding: 13px 15px; border-radius: 14px;
  font-size: 15px; font-weight: 600;
}
.float-cta .fc-btn:hover { box-shadow: 0 14px 32px rgba(10,77,140,.34); color: #fff; }

/* ---------------- 9. 响应式 ---------------- */
@media (max-width: 1080px) {
  .hero-x h1 { letter-spacing: -1.4px; }
}
@media (max-width: 860px) {
  .hero-x { min-height: 0; }
  .hero-x-inner { padding: 62px 0 58px; }
  .hero-x h1 { font-size: clamp(29px, 8.4vw, 42px); letter-spacing: -1px; }
  .hero-x h1 br { display: none; }
  .hero-x-lead { font-size: 15.2px; margin-top: 16px; }
  .hero-x-cta { margin-top: 24px; }
  .hero-x-cta .btn { flex: 1 1 auto; justify-content: center; }
  .hero-x-kpi { grid-template-columns: repeat(2, 1fr); gap: 18px 14px; margin-top: 34px; padding-top: 22px; }
  .hero-x-kpi .k b { font-size: 25px; }
  .hero-x-foot { margin-top: 20px; }
  .hero-x-media img { object-position: 62% 46%; }
}


/* =========================================================================
   V6 · 内页视觉体系（照片页头 / 全出血图带 / 深色节奏收敛 / 纹理统一）
   与 V5 同一套设计语言：炭黑深底 + 单一工业青点缀，装饰动效一律可降级。
   ========================================================================= */

/* ---------------- 1. 内页页头：从"色块"升级为"照片海报" ---------------- */
.page-hero { padding: 86px 0 70px; isolation: isolate; }
.page-hero .bg { z-index: 0; }
.page-hero .bg img { opacity: .46; object-position: 50% 44%; }
.page-hero .bg::after {
  background:
    linear-gradient(100deg, rgba(4,13,24,.96) 0%, rgba(6,25,44,.88) 38%, rgba(7,32,54,.56) 72%, rgba(4,13,24,.84) 100%),
    linear-gradient(180deg, rgba(4,13,24,.46) 0%, transparent 34%, transparent 66%, rgba(4,13,24,.66) 100%);
}
.page-hero::before {
  content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none; opacity: .5;
  background-image:
    linear-gradient(rgba(130,205,255,.07) 1px, transparent 1px),
    linear-gradient(90deg, rgba(130,205,255,.07) 1px, transparent 1px);
  background-size: 64px 64px;
  -webkit-mask-image: radial-gradient(112% 92% at 16% 26%, #000 0%, rgba(0,0,0,.34) 54%, transparent 78%);
  mask-image: radial-gradient(112% 92% at 16% 26%, #000 0%, rgba(0,0,0,.34) 54%, transparent 78%);
}
.page-hero::after {
  z-index: 1;
  background:
    radial-gradient(820px 360px at 86% 2%, rgba(18,194,224,.26), transparent 62%),
    radial-gradient(560px 280px at 2% 100%, rgba(13,51,85,.7), transparent 66%);
}
.page-hero > .container, .page-hero > .container.inner { z-index: 2; }
.page-hero .crumb { margin-bottom: 12px; }
.page-hero .eyebrow { color: var(--cyan-2); }
.page-hero .eyebrow::before { background: var(--cyan); }
.page-hero h1 {
  font-size: clamp(28px, 4.1vw, 46px); font-weight: 800;
  letter-spacing: -1.4px; line-height: 1.1; margin: 12px 0 14px;
  text-shadow: 0 6px 30px rgba(0,0,0,.42);
}
.page-hero p { max-width: 46em; color: rgba(230,243,255,.84); }
.page-hero .pledge {
  background: rgba(255,255,255,.09); border-color: rgba(255,255,255,.2); color: #e8f6ff;
  backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
}
.page-hero .pledge svg { color: var(--cyan-2); }

/* ---------------- 2. 全出血图带（长文页面的视觉呼吸） ---------------- */
.hero-band { position: relative; overflow: hidden; isolation: isolate; background: #061524; }
.hero-band > img {
  display: block; width: 100%;
  height: clamp(230px, 34vw, 470px);
  object-fit: cover; object-position: 50% 50%;
}
.hero-band::after {
  content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background: linear-gradient(180deg, rgba(4,13,24,.42) 0%, rgba(4,13,24,.06) 38%, rgba(4,13,24,.78) 100%);
}
.hero-band .band-cap {
  position: absolute; left: 0; right: 0; bottom: 0; z-index: 2;
  padding-bottom: clamp(20px, 3.4vw, 42px); color: #fff;
}
.hero-band .band-cap .eyebrow { color: var(--cyan-2); }
.hero-band .band-cap .eyebrow::before { background: var(--cyan); }
.hero-band .band-cap h2 {
  font-size: clamp(21px, 2.7vw, 34px); font-weight: 800; letter-spacing: -1px;
  line-height: 1.16; margin: 8px 0 0; color: #fff; max-width: 26em;
  text-shadow: 0 6px 30px rgba(0,0,0,.5);
}
.hero-band .band-cap p { margin-top: 9px; max-width: 44em; font-size: clamp(14px,1.5vw,16px); line-height: 1.75; color: rgba(228,242,255,.82); }
.hero-band .band-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 15px; }
.hero-band .band-tags span {
  font-size: 12.5px; letter-spacing: .3px; padding: 5px 12px; border-radius: 999px;
  color: rgba(232,245,255,.92); background: rgba(255,255,255,.10);
  border: 1px solid rgba(255,255,255,.20);
}

/* ---------------- 3. 深色区块：补齐尚未适配的组件 ---------------- */
.section-deep .kpi-strip { background: rgba(255,255,255,.055); border-color: rgba(255,255,255,.13); }
.section-deep .kpi-strip .k { border-right-color: rgba(255,255,255,.12); border-bottom-color: rgba(255,255,255,.12); }
.section-deep .kpi-strip .k b { color: #fff; }
.section-deep .kpi-strip .k b i { color: var(--cyan-2); }
.section-deep .kpi-strip .k span { color: rgba(220,236,251,.66); }
.section-deep .guar-card .gc-kv { border-top-color: rgba(255,255,255,.13); }
.section-deep .guar-card .gc-kv span { color: rgba(220,236,251,.62); }
.section-deep .guar-card .gc-kv b { color: var(--cyan-2); }
.section-deep .guar-card .gc-ico { background: rgba(18,194,224,.16); color: var(--cyan-2); }
.section-deep .section-head .section-sub { color: rgba(224,239,255,.68); }
.section-deep .two-col .notice-card { color: rgba(224,239,255,.76); }

/* ---------------- 4. 机型卡片：浅底产品图 + 工业青描边 ---------------- */
.model-card .mc-media img { mix-blend-mode: normal; }
.model-card.major { border-color: rgba(10,77,140,.18); }
.mc-credit { color: var(--muted); }

/* ---------------- 5. 案例卡片（履历）图片区增强 ---------------- */
.ref-media img { filter: saturate(1.03) contrast(1.02); }
.ref-media::after {
  background: linear-gradient(180deg, rgba(4,14,26,.30) 0%, transparent 34%, rgba(4,14,26,.72) 100%);
}

/* ---------------- 6. 响应式 ---------------- */
@media (max-width: 860px) {
  .page-hero { padding: 58px 0 48px; }
  .page-hero h1 { font-size: clamp(25px, 7.4vw, 34px); letter-spacing: -.9px; }
  .page-hero .bg img { object-position: 58% 46%; }
  .hero-band > img { height: clamp(190px, 50vw, 300px); }
  .hero-band .band-cap { position: static; padding: 20px 0 24px; }
  .hero-band::after { background: linear-gradient(180deg, rgba(4,13,24,.30) 0%, rgba(4,13,24,.10) 46%, rgba(4,13,24,.5) 100%); }
}
@media (prefers-reduced-motion: no-preference) {
  .hero-band > img { transition: transform 1.2s cubic-bezier(.2,.7,.3,1); }
  .hero-band:hover > img { transform: scale(1.03); }
}

/* ---------------- 7. 深色区块：通用卡片族适配（feature / step / card / split） ---------------- */
.section-deep .feature,
.section-deep .step,
.section-deep .card,
.section-deep .media-card {
  background: rgba(255,255,255,.055); border-color: rgba(255,255,255,.13);
  backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px);
}
.section-deep .feature:hover,
.section-deep .step:hover,
.section-deep .card:hover { background: rgba(255,255,255,.10); border-color: rgba(111,227,247,.42); }
.section-deep .feature h3, .section-deep .step h3, .section-deep .card h3, .section-deep .feature b { color: #fff; }
.section-deep .feature p, .section-deep .step p, .section-deep .card p { color: rgba(220,236,251,.72); }
.section-deep .feature .fi, .section-deep .step .si, .section-deep .step .st-ico { background: rgba(18,194,224,.16); color: var(--cyan-2); }
.section-deep .filter-chip { background: rgba(255,255,255,.06); border-color: rgba(255,255,255,.16); color: rgba(226,240,255,.8); }
.section-deep .filter-chip:hover { border-color: var(--cyan-2); color: #fff; }
.section-deep .filter-chip.active { background: linear-gradient(135deg, var(--cyan), #0a7fb8); border-color: transparent; color: #fff; }
.section-deep .skeleton { background: rgba(255,255,255,.07); }
.section-deep .mt-l, .section-deep .mt-m { }
.section-deep .cta-band { background: rgba(255,255,255,.04); border-color: rgba(255,255,255,.13); }
.section-deep .cta-band h2 { color: #fff; }
.section-deep .cta-band p { color: rgba(224,239,255,.72); }

/* =========================================================================
   V7 · 版式安全区与细节收敛
   1) 页脚底部为右下角悬浮转化条预留安全区，避免遮挡声明与版权行
   2) 页脚声明在深色底上的可读性
   3) 云端数据失败态：区块不塌陷、可一键重试
   ========================================================================= */

/* ---------------- 1. 页脚安全区 ---------------- */
.site-footer { padding-bottom: 34px; }
@media (min-width: 901px) {
  /* 悬浮转化条宽 234px + 右边距 22px，留 268px 的右侧安全区 */
  .site-footer .footer-note,
  .site-footer .footer-legal,
  .site-footer .footer-bottom { padding-right: 268px; }
}
@media (max-width: 900px) {
  .site-footer { padding-bottom: 26px; }
}

/* ---------------- 1.1 页脚合规区：时效免责小字 + 备案占位（备案审查可见） ---------------- */
.site-footer .footer-legal {
  margin-top: 12px;
  padding: 0 2px;
  font-size: 12.5px;
  line-height: 1.78;
  color: rgba(226, 240, 255, .60);
}
.site-footer .footer-legal p { margin: 3px 0; }
.site-footer .footer-legal a {
  color: rgba(226, 240, 255, .84);
  text-decoration: underline;
  text-underline-offset: 2px;
}
@media (max-width: 900px) {
  .site-footer .footer-legal { padding-left: 14px; padding-right: 14px; }
}


/* ---------------- 2. 页脚声明的可读性 ---------------- */
.site-footer .footer-note {
  border-color: rgba(255, 255, 255, .16);
  border-left: 3px solid #12c2e0;
  background: rgba(255, 255, 255, .045);
  color: rgba(226, 240, 255, .74);
  -webkit-backdrop-filter: blur(4px);
  backdrop-filter: blur(4px);
}
@media (max-width: 900px) {
  .site-footer .footer-note { padding-left: 14px; padding-right: 14px; color: rgba(226, 240, 255, .68); }
}

/* ---------------- 3. 云端数据失败态 ---------------- */
.empty {
  min-height: 208px;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 9px; padding: 30px 22px; text-align: center;
  border: 1px dashed var(--line);
  border-radius: var(--radius);
  background: linear-gradient(180deg, rgba(245, 248, 251, .8), rgba(245, 248, 251, .36));
}
.empty svg { width: 40px; height: 40px; opacity: .5; color: var(--muted); }
.empty b { font-size: 15.5px; color: var(--ink-2); font-weight: 600; }
.empty p { margin: 0; font-size: 13.6px; color: var(--muted); max-width: 34em; line-height: 1.7; }
.empty .empty-retry {
  margin-top: 4px; padding: 9px 20px; border-radius: 999px;
  border: 1px solid var(--line); background: #fff; color: var(--brand);
  font: inherit; font-size: 13.6px; font-weight: 600; cursor: pointer;
  transition: border-color .2s, color .2s, box-shadow .2s, transform .2s;
}
.empty .empty-retry:hover { border-color: var(--brand); box-shadow: 0 8px 20px rgba(10, 77, 140, .14); transform: translateY(-1px); }
.section-deep .empty {
  border-color: rgba(255, 255, 255, .18);
  background: rgba(255, 255, 255, .045);
}
.section-deep .empty svg { color: rgba(226, 240, 255, .6); }
.section-deep .empty b { color: #fff; }
.section-deep .empty p { color: rgba(220, 236, 251, .7); }
.section-deep .empty .empty-retry {
  background: rgba(255, 255, 255, .08); border-color: rgba(255, 255, 255, .26); color: #e8f6ff;
}
.section-deep .empty .empty-retry:hover { border-color: #6fe3f7; color: #fff; box-shadow: none; }

/* =========================================================================
   V8 · 视频卡封面上真实照片化
   视频尚未上线时，用实拍工序照作为封面 + "视频筹备中"角标，
   避免整屏深色空块；上线后自动切回播放态。
   ========================================================================= */

.vc-cover {
  position: relative; aspect-ratio: 16 / 9; overflow: hidden;   /* 16:9 贴合视频语义，减少超宽封面被裁掉的部分 */
  background: #0d2438; display: grid; place-items: center; color: #fff;
}
.vc-cover > img {
  position: absolute; inset: 0; width: 100%; height: 100%;
  object-fit: cover; object-position: 50% 52%;
}
.vc-cover::after {
  content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background: linear-gradient(180deg, rgba(6, 18, 31, .34) 0%, rgba(6, 18, 31, .06) 42%, rgba(6, 18, 31, .74) 100%);
}
.vc-cover .vc-plat { z-index: 3; }
.vc-cover .vc-play { z-index: 2; }
.vc-cover.is-soon > img { filter: saturate(.82) brightness(.84); }
.vc-cover.is-soon::after {
  background: linear-gradient(180deg, rgba(6, 18, 31, .46) 0%, rgba(6, 18, 31, .22) 44%, rgba(6, 18, 31, .82) 100%);
}

/* 视频筹备中角标 */
.vc-soon {
  position: relative; z-index: 3;
  display: inline-flex; align-items: center; gap: 7px;
  padding: 7px 15px; border-radius: 999px;
  background: rgba(255, 255, 255, .14);
  border: 1px solid rgba(255, 255, 255, .34);
  color: #eaf6ff; font-size: 12.4px; font-weight: 600; letter-spacing: .2px;
  -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
}
.vc-soon svg { width: 14px; height: 14px; stroke-width: 2; }

/* 未上线时卡片底部的引导操作 */
.vc-body .vc-soon-note {
  display: flex; align-items: center; justify-content: space-between; gap: 10px;
  padding-top: 2px; font-size: 12.6px; color: var(--muted);
}
.vc-body .vc-soon-note a { color: var(--brand); font-weight: 600; white-space: nowrap; }
.vc-body .vc-soon-note a:hover { text-decoration: underline; }

@media (prefers-reduced-motion: no-preference) {
  .vc-cover > img { transition: transform .8s cubic-bezier(.2, .7, .3, 1); }
  .video-card:hover .vc-cover > img { transform: scale(1.045); }
}

/* =========================================================================
   V9 · 二维码未配置时的提示与联系兜底
   ========================================================================= */
.qr-note {
  margin-top: 24px; text-align: center;
  font-size: 13.4px; color: var(--muted); line-height: 1.8;
}
.qr-note a { color: var(--brand); font-weight: 600; }
.qr-note a:hover { text-decoration: underline; }


/* =========================================================================
   V10 · 延伸服务（设备改造 / 旧机回收 / 以旧换新）能力标签
   —— 三张卡片文字较短，加一行标签与相邻区块的视觉密度对齐，也方便扫读。
   ========================================================================= */
.ex-tags { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 14px; }
.ex-tags span {
  display: inline-flex; align-items: center; height: 25px; padding: 0 10px;
  border-radius: 999px; font-size: 12.4px; line-height: 1; white-space: nowrap;
  color: var(--brand); background: var(--brand-soft);
  border: 1px solid rgba(10, 77, 140, .10);
}


/* =========================================================================
   V11 · 服务覆盖城市标签（联系页 · 本地地域信号）
   ========================================================================= */
.city-grid {
  display: flex; flex-wrap: wrap; justify-content: center;
  gap: 10px; max-width: 760px; margin: 0 auto;
}
.city-grid span {
  display: inline-flex; align-items: center; height: 38px; padding: 0 20px;
  border-radius: 999px; font-size: 15px; line-height: 1;
  color: var(--brand); background: var(--brand-soft);
  border: 1px solid rgba(10, 77, 140, .12);
}

/* =========================================================================
   V12 · 首屏双主路径（报修表单 + 拨号）
   依据：暖通/本地服务类站点 60%~70% 的转化来自电话（HVAC CRO 基准数据），
   紧急访客不应被迫填表，也不该"找不到电话＝什么都不能做"。
   原首屏 3 个按钮里有 2 个指向同一页，注意力被稀释，此处收敛为 2 条清晰路径。
   ========================================================================= */
.hero-x-cta .btn-tel {
  padding: 13px 24px; font-size: 16px; border-radius: 12px; gap: 11px;
  background: rgba(255, 255, 255, .10);
  border-color: rgba(255, 255, 255, .42);
  color: #fff; backdrop-filter: blur(8px);
}
.hero-x-cta .btn-tel:hover {
  background: rgba(255, 255, 255, .19);
  border-color: #fff;
  transform: translateY(-1px);
}
.hero-x-cta .btn-tel svg { flex: 0 0 auto; opacity: .92; }
.hero-x-cta .btn-tel .tl {
  display: flex; flex-direction: column; align-items: flex-start; line-height: 1.18;
}
.hero-x-cta .btn-tel .tl small {
  font-size: 11.5px; font-weight: 500; letter-spacing: .02em; opacity: .72;
}
.hero-x-cta .btn-tel .tl b {
  font-size: 17px; font-weight: 700; letter-spacing: .01em; font-variant-numeric: tabular-nums;
}

.hero-x-alt.hero-x-alt { margin-top: 15px; font-size: 14.5px; color: rgba(255, 255, 255, .70); }
.hero-x-alt a {
  color: rgba(255, 255, 255, .88);
  border-bottom: 1px solid rgba(255, 255, 255, .34);
  padding-bottom: 1.5px; transition: color .2s, border-color .2s;
}
.hero-x-alt a:hover { color: #fff; border-color: #fff; }

@media (max-width: 720px) {
  .hero-x-cta .btn-tel { width: 100%; justify-content: center; }
  .hero-x-cta .btn-tel .tl { align-items: flex-start; }
}

/* =========================================================================
   V12.1 · 修复首屏容器在窄屏丢失左右内边距（真实缺陷）
   .hero-x-inner 用 padding 简写写成了 `108px 0 96px`，把 .container 的
   `padding: 0 24px` 横向值一并覆盖为 0。宽屏因 max-width 居中看不出问题，
   但 ≤414px 时 H1 与正文会贴到屏幕左右边缘、视觉上像被裁切。
   ========================================================================= */
.hero-x-inner { padding-left: 24px; padding-right: 24px; }

@media (max-width: 720px) {
  .hero-x-inner { padding-left: 18px; padding-right: 18px; }
  /* 窄屏缩一档字号，避免补回内边距后标题被挤成过多行 */
  .hero-x-inner h1, .hero-x h1 { font-size: clamp(26px, 8.2vw, 34px); }
  .hero-x-inner .hero-x-lead { font-size: 15px; }
}

/* =========================================================================
   V12.2 · 两栏推广面板窄屏折行（全站 8 处 · 修复真实缺陷）
   这些 .panel 原本把 `display:grid;grid-template-columns:1.3fr .7fr` 写在
   行内样式里，媒体查询无法覆盖，于是 ≤375px 时仍是两栏；右栏按钮是
   `white-space:nowrap`，min-content 撑不住就把整个面板顶出容器，
   造成 6~24px 横向溢出（被 body 的 overflow-x:hidden 裁掉，肉眼不易察觉）。
   现统一改为类控制，窄屏折为单栏。
   ========================================================================= */
.panel-split { display: grid; grid-template-columns: 1.3fr .7fr; gap: 30px; align-items: center; }

@media (max-width: 860px) {
  .panel-split { grid-template-columns: 1fr; gap: 22px; }
}
@media (max-width: 720px) {
  .panel-split { padding-left: 20px; padding-right: 20px; }
}

/* =========================================================================
   V13 · 现场实拍视频墙 + 实拍图集（自建播放，素材来自 assets/media/manifest.json）
   -------------------------------------------------------------------------
   为什么自建而不嵌入视频号/抖音：这两个平台的视频无法在站外 iframe 播放，
   只能跳转，用户跳走就不回来了。自建 mp4 能把「现场证据」留在自己页面上，
   对转化的价值远高于导流。
   版式用 CSS 多栏（masonry）而非 grid：机房视频有横屏也有竖屏，
   grid 会把所有卡片拉成同一高度，竖屏片会被裁掉大半画面；多栏能让每张卡
   保持自己的真实比例。
   ========================================================================= */
.vwall { columns: 3; column-gap: 20px; }
.vwall.is-photo { columns: 4; }

/* 首页 / 媒体页「现场实录」：工序视频是手机竖屏拍的（720x1280 / 1200x2134），
   同一面墙里画幅、曝光、色温都不一致 —— 光靠排版压不平，所以做了三件事：
     ① 统一 3:4 卡面 + 主体偏上（多数素材是"人 + 设备"的中景，构图重心在上半部）；
     ② 信息条改成铺满整卡的一层薄纱 —— 顶部压住亮部（阴天/天空拍的那几张）、
        底部再加深，白字在任何画面上都可读，同时把六张的色温差拉平；
     ③ 机型角标统一，六张卡读起来才像"同一套记录"，而不是六张不相干的照片。 */
/* 小卡紧凑墙：竖屏视频 3:4 卡面 + 一行六张（索引页 6 段正好一行，
   媒体页 18 段三行铺满）。卡面缩小后信息条同步精简：
   标题一行截断、副行隐藏、播放键缩号 —— 保画面为主、文字为辅。 */
.vwall.is-video { columns: auto; display: grid; gap: 14px; grid-template-columns: repeat(6, 1fr); }
.vwall.is-video .vcard { margin: 0; border-radius: 10px; background: #16283c; }
.vwall.is-video .vcard img {
  aspect-ratio: 3 / 4; object-fit: cover; object-position: center 42%;
  transition: transform .55s cubic-bezier(.2, .7, .3, 1);
  /* 懒加载未就绪时的骨架底色：避免整墙出现突兀的纯黑块（海报就位后自然覆盖） */
  background: linear-gradient(150deg, #1d3550 0%, #16283c 62%, #101d2c 100%);
}
.vwall.is-video .vcard:hover img { transform: scale(1.05); }

.vwall.is-video .vmeta {
  inset: 0; display: flex; flex-direction: column; justify-content: flex-end;
  padding: 0 10px 10px;
  background: linear-gradient(180deg,
    rgba(7, 24, 43, .30) 0%,
    rgba(7, 24, 43, .06) 32%,
    rgba(7, 24, 43, .30) 64%,
    rgba(7, 24, 43, .88) 100%);
}
.vwall.is-video .vmeta b {
  font-size: 12.8px; line-height: 1.4;
  display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 1;
  overflow: hidden;
}
.vwall.is-video .vmeta > span:not(.vmach):not(.vlinks) { display: none; }
.vwall.is-video .vmach {
  align-self: flex-start; display: inline-block;
  margin: 0 0 5px; padding: 3px 9px; border-radius: 999px;
  font-size: 11.5px; font-weight: 650; letter-spacing: .02em;
  color: #fff; background: rgba(255, 255, 255, .18);
  border: 1px solid rgba(255, 255, 255, .36);
  backdrop-filter: blur(3px);
}
/* 播放键改细描边款：原来那块实心蓝在画面中间太抢，六张连排像六个按钮 */
.vwall.is-video .vplay {
  width: 40px; height: 40px;
  background: rgba(255, 255, 255, .16);
  border: 1.5px solid rgba(255, 255, 255, .88);
  backdrop-filter: blur(4px);
  box-shadow: 0 2px 14px rgba(0, 0, 0, .28);
}
.vwall.is-video .vplay svg { width: 15px; height: 15px; }
.vwall.is-video .vcard:hover .vplay { background: rgba(10, 77, 140, .95); border-color: #fff; }
.vwall.is-video .vtag { left: 8px; top: 8px; padding: 4px 9px; font-size: 11.5px; background: rgba(6, 16, 28, .62); backdrop-filter: blur(3px); }
.vwall.is-video .vtag::before { background: #ff5a4d; }

/* 真实入库数量（项目现场数 / 影像段数），由 page-home.js 填 */
.vw-note { margin-top: 10px; color: #0a7d94; font-size: 13px; font-weight: 600; letter-spacing: .01em; }
.section-head.center .vw-note { text-align: center; }

@media (max-width: 980px) { .vwall.is-video { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 620px) {
  .vwall.is-video { grid-template-columns: repeat(2, 1fr); gap: 12px; }
  .vwall.is-video .vmeta { padding: 0 10px 9px; }
  .vwall.is-video .vmeta b { font-size: 13px; -webkit-line-clamp: 2; }
  .vwall.is-video .vmeta > span:not(.vmach):not(.vlinks) { display: none; }
  .vwall.is-video .vmach { margin-bottom: 5px; padding: 3px 8px; font-size: 11.5px; }
  .vwall.is-video .vplay { width: 42px; height: 42px; }
  .vwall.is-video .vplay svg { width: 16px; height: 16px; }
  .vwall.is-video .vtag { left: 8px; top: 8px; padding: 4px 8px; font-size: 11.5px; }
}

.vcard {
  break-inside: avoid; position: relative; display: block; width: 100%;
  margin: 0 0 20px; padding: 0; border: 0; cursor: pointer;
  border-radius: 14px; overflow: hidden; background: #0b1a2b;
  box-shadow: 0 2px 14px rgba(11, 26, 43, .10);
  transition: transform .25s cubic-bezier(.2, .7, .3, 1), box-shadow .25s;
  text-align: left; font: inherit; color: inherit;
}
.vcard:hover { transform: translateY(-3px); box-shadow: 0 10px 28px rgba(11, 26, 43, .20); }
.vcard:focus-visible { outline: 3px solid #0a4d8c; outline-offset: 3px; }

.vcard img { display: block; width: 100%; height: auto; }

/* 播放键：两个圆环 + 三角，锚在画面中心 */
.vplay {
  position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%);
  width: 56px; height: 56px; border-radius: 50%;
  background: rgba(10, 77, 140, .82);
  border: 2px solid rgba(255, 255, 255, .9);
  display: grid; place-items: center;
  backdrop-filter: blur(3px);
  transition: transform .25s, background .25s;
}
.vcard:hover .vplay { transform: translate(-50%, -50%) scale(1.09); background: rgba(10, 77, 140, .96); }
.vplay svg { width: 20px; height: 20px; margin-left: 3px; fill: #fff; }

/* 卡片底部信息条：压一层渐变，保证白字在任何画面上都可读 */
.vmeta {
  position: absolute; left: 0; right: 0; bottom: 0; padding: 34px 14px 12px;
  background: linear-gradient(to top, rgba(6, 16, 28, .92) 12%, rgba(6, 16, 28, .55) 55%, transparent);
  color: #fff;
}
.vmeta b { display: block; font-size: 14.5px; font-weight: 650; line-height: 1.35; }
.vmeta span { display: block; margin-top: 4px; font-size: 12px; color: rgba(255, 255, 255, .74); }

/* 左上角"现场实拍"标记：与站内原有的"设备形态示意"形成明确区分 */
.vtag {
  position: absolute; left: 12px; top: 12px;
  display: inline-flex; align-items: center; gap: 5px;
  padding: 4px 9px; border-radius: 999px;
  font-size: 11.5px; font-weight: 650; letter-spacing: .02em;
  background: rgba(214, 48, 40, .92); color: #fff;
  box-shadow: 0 2px 8px rgba(0, 0, 0, .28);
}
.vtag.is-photo { background: rgba(10, 77, 140, .92); }
.vtag::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: #fff; }

/* 右下角时长 */
.vdur {
  position: absolute; right: 12px; top: 12px;
  padding: 3px 8px; border-radius: 6px;
  font-size: 11.5px; font-weight: 600; font-variant-numeric: tabular-nums;
  background: rgba(6, 16, 28, .78); color: #fff;
}

/* ---------- 灯箱 ---------- */
.vlight {
  position: fixed; inset: 0; z-index: 200;
  display: none; place-items: center;
  background: rgba(4, 10, 18, .93);
  padding: 24px;
}
.vlight.on { display: grid; }
.vlight-inner { max-width: min(1100px, 94vw); width: 100%; }
.vlight video, .vlight img {
  display: block; width: 100%; max-height: 82vh; object-fit: contain;
  border-radius: 12px; background: #000;
}
.vlight-cap { margin-top: 14px; color: rgba(255, 255, 255, .88); font-size: 14px; line-height: 1.6; }
.vlight-cap b { color: #fff; }
.vlight-close {
  position: absolute; right: 20px; top: 18px;
  width: 42px; height: 42px; border-radius: 50%; border: 1px solid rgba(255, 255, 255, .3);
  background: rgba(255, 255, 255, .1); color: #fff; font-size: 22px; line-height: 1;
  cursor: pointer; display: grid; place-items: center;
}
.vlight-close:hover { background: rgba(255, 255, 255, .2); }

/* ---------- 素材未到位时的说明块（不造假素材，明确写清后续） ---------- */
.vempty {
  border: 1px dashed rgba(11, 26, 43, .22); border-radius: 14px;
  padding: 30px 26px; background: rgba(11, 26, 43, .025);
}
.vempty b { display: block; font-size: 16px; margin-bottom: 8px; }
.vempty p { margin: 0; font-size: 14.5px; color: var(--muted); line-height: 1.75; }

@media (max-width: 980px) {
  .vwall { columns: 2; }
  .vwall.is-photo { columns: 3; }
}
@media (max-width: 620px) {
  .vwall, .vwall.is-photo { columns: 1; }
  .vlight { padding: 12px; }
  .vlight-close { right: 10px; top: 8px; }
}

/* 品牌角标：白底深字，跟红/蓝的"实拍"标区分开。
   只标设备品牌名，不加"授权""合作"等字样 —— 指示性使用。 */
.vbrand {
  position: absolute; left: 12px; top: 44px;
  padding: 3px 8px; border-radius: 6px;
  font-size: 11.5px; font-weight: 650; letter-spacing: .02em;
  background: rgba(255, 255, 255, .93); color: #0b1a2b;
  box-shadow: 0 2px 8px rgba(0, 0, 0, .22);
}

/* 影像卡底部三条出口：完整图文 / 收费公示 / 在线报修。
   压在渐变蒙版最底部，白字半透明底，不抢画面。
   网格为 6 列窄卡（单卡仅 ~180px），三条链必须压在一行内 —— 换行会把
   meta 区撑高到 50px+，标题被挤掉、卡片观感变"贴满标签"。 */
.vwall .vlinks {
  display: flex; flex-wrap: nowrap; align-items: center;
  gap: 0 10px;
  margin-top: 7px; padding-top: 7px;
  border-top: 1px solid rgba(255, 255, 255, .22);
  white-space: nowrap;
}
.vwall .vlinks a {
  flex: 0 0 auto;
  font-size: 11.4px; font-weight: 650;
  color: rgba(255, 255, 255, .93);
  text-decoration: none;
  border-bottom: 1px solid rgba(255, 255, 255, .38);
  padding-bottom: 1px;
  transition: color .15s ease, border-color .15s ease;
}
.vwall .vlinks a:hover {
  color: #fff;
  border-bottom-color: #fff;
}
.vwall .vlinks a:first-child { border-bottom-style: solid; border-bottom-width: 2px; }
/* 竖排视频墙（机型专页）卡更小，出口行再收紧 */
.vwall.is-video .vlinks { gap: 0 8px; margin-top: 6px; padding-top: 6px; }
.vwall.is-video .vlinks a { font-size: 11px; }
/* 超窄屏（480 以下）允许换行，避免链接被裁 */
@media (max-width: 480px) {
  .vwall .vlinks { flex-wrap: wrap; white-space: normal; gap: 4px 10px; }
}

/* =========================================================================
   文章页文末出口带（P2-9）：相关服务 / 同城城市页 / 同类机型案例
   -------------------------------------------------------------------------
   紧凑横向卡，不占整屏 —— 文章正文已经很长，出口带要做到"看一眼就走"。
   ========================================================================= */
.art-exits { margin-top: 36px; }
.art-exits .ae-head {
  margin: 0 0 14px;
  font-size: 16px;
  font-weight: 700;
  color: var(--ink, #16283d);
}
.ae-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 12px;
}
.art-exit {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 13px 16px;
  background: var(--card, #fff);
  border: 1px solid var(--line);
  border-left: 3px solid var(--brand-2);
  border-radius: 0 10px 10px 0;
  text-decoration: none;
  transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease;
}
.art-exit:hover {
  border-color: var(--brand-2);
  box-shadow: 0 6px 18px rgba(11, 26, 43, .07);
  transform: translateY(-1px);
}
.art-exit .ae-t {
  font-size: 14px;
  font-weight: 650;
  line-height: 1.45;
  color: var(--ink, #16283d);
}
.art-exit .ae-g {
  flex: 0 0 auto;
  font-size: 12.4px;
  font-weight: 700;
  color: var(--brand-2);
  white-space: nowrap;
}
.art-exit:hover .ae-g { color: var(--brand); }
@media (max-width: 620px) {
  .ae-grid { grid-template-columns: 1fr; }
  .art-exit { padding: 12px 14px; }
  .art-exit .ae-t { font-size: 13.4px; }
}

/* =========================================================================
   故障代码速查 / 品牌机型维修资料库  共用样式族
   -------------------------------------------------------------------------
   命名前缀：.fc-* 为故障代码页与资料库页共用的检索与表格骨架；
             .tm-* 为资料库页专有的卡片与参数速览样式。
   ========================================================================= */

/* 合规提示块：页面用 <strong> 强调，补齐与 .notice-card b 一致的视觉 */
.notice-card strong { color: var(--brand); }
.notice-card.warn strong { color: #a16207; }
.notice-card.ok strong { color: #1f6b3f; }

/* ------------------------------ 检索工具条 ------------------------------ */
.fc-toolbar {
  display: grid; gap: 10px;
  margin: 26px 0 8px;
}
.fc-search {
  position: relative; display: flex;
  align-items: center; gap: 10px;
  max-width: 620px;
}
.fc-search input {
  flex: 1; min-width: 0;
  height: 46px; padding: 0 46px 0 44px;
  border: 1px solid var(--line);
  border-radius: 11px;
  background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%23576c82' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M20 20l-3.5-3.5'/%3E%3C/svg%3E") no-repeat 16px 50%;
  font-size: 15px; color: var(--ink);
  transition: border-color .18s, box-shadow .18s;
}
.fc-search input:focus {
  outline: none;
  border-color: var(--brand-2);
  box-shadow: 0 0 0 3px rgba(14, 107, 184, .12);
}
.fc-search input::-webkit-search-cancel-button { display: none; }
.fc-clear {
  position: absolute; right: 8px; top: 50%; transform: translateY(-50%);
  height: 30px; padding: 0 12px;
  border: 0; border-radius: 8px;
  background: var(--brand-soft); color: var(--brand);
  font-size: 13px; font-weight: 600; cursor: pointer;
}
.fc-clear:hover { background: #dbe9f7; }
.fc-hit { font-size: 13.5px; color: var(--muted); min-height: 18px; }

/* ------------------------------ 品牌 chip 导航 ------------------------------ */
.fc-nav {
  display: flex; flex-wrap: wrap; gap: 8px;
  margin: 4px 0 22px;
}
.fc-chip {
  display: inline-flex; align-items: center; gap: 7px;
  height: 34px; padding: 0 13px;
  border: 1px solid var(--line); border-radius: 999px;
  background: #fff; color: var(--ink-2);
  font-size: 13.5px; font-weight: 550; cursor: pointer;
  transition: all .16s;
  white-space: nowrap;
}
.fc-chip:hover { border-color: var(--brand-3); color: var(--brand); background: #f7fbff; }
.fc-chip.is-on {
  border-color: var(--brand); background: var(--brand); color: #fff;
  box-shadow: 0 4px 12px rgba(10, 77, 140, .22);
}
.fc-chip-n {
  font-size: 11px; font-weight: 700;
  padding: 1px 6px; border-radius: 999px;
  background: var(--line-2); color: #576c82;   /* 原 var(--muted) 在此浅底上仅 4.49，差一点点达标 */
}
.fc-chip.is-on .fc-chip-n { background: rgba(255, 255, 255, .26); color: #fff; }

/* 体系筛选条（一级）：比品牌条更醒目，两者用分隔线区分层级 */
.fc-nav--grp { margin: 4px 0 10px; }
.fc-nav--grp + .fc-nav {
  margin-top: 0; padding-top: 14px;
  border-top: 1px dashed var(--line);
}
.fc-chip--grp {
  height: 38px; padding: 0 16px;
  font-size: 14.5px; font-weight: 650;
  background: #f2f7fc; border-color: #d5e3f2; color: var(--brand);
}
.fc-chip--grp:hover { background: #e8f1fb; }
.fc-chip--grp.is-on {
  background: linear-gradient(135deg, #0a4d8c, #0f6fb8);
  border-color: #0a4d8c;
}
.tm-nav-empty {
  font-size: 13px; color: var(--muted); padding: 7px 2px;
}

/* ------------------------------ 品牌分表 ------------------------------ */
.fc-list { margin-top: 6px; }
.fc-brand {
  margin-bottom: 26px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: #fff;
  overflow: hidden;
}
.fc-brand-head {
  display: flex; align-items: center; gap: 12px;
  padding: 15px 20px;
  border-bottom: 1px solid var(--line-2);
  background: linear-gradient(180deg, #fafcfe, #fff);
}
.fc-brand-head h3 { margin: 0; font-size: 17px; color: var(--ink); }
.fc-brand-n { font-size: 12.5px; color: var(--muted); }
.fc-src {
  margin: 0; padding: 11px 20px;
  border-top: 1px solid var(--line-2);
  background: #fbfdff;
  font-size: 12px; color: var(--muted); line-height: 1.6;
}

.fc-series { padding: 0 20px; }
.fc-series:not(:last-child) { border-bottom: 1px dashed var(--line); }
.fc-series-head {
  display: flex; align-items: baseline; flex-wrap: wrap; gap: 10px;
  padding: 15px 0 10px;
}
.fc-series-head h4 { margin: 0; font-size: 14.5px; color: var(--brand); font-weight: 650; }
.fc-scope { font-size: 12px; color: var(--muted); }
.fc-count {
  margin-left: auto; font-size: 11.5px; color: #576c82;
  background: var(--line-2); padding: 2px 8px; border-radius: 999px;
}

.fc-table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; padding-bottom: 14px; }
.fc-table { width: 100%; border-collapse: collapse; min-width: 700px; }
.fc-table th {
  text-align: left; font-size: 12px; font-weight: 650;
  color: var(--muted); letter-spacing: .04em;
  padding: 9px 12px; background: #f7fafd;
  border-bottom: 1px solid var(--line);
  white-space: nowrap;
}
.fc-table td {
  padding: 11px 12px; font-size: 13.5px; line-height: 1.62;
  color: var(--ink-2); border-bottom: 1px solid var(--line-2);
  vertical-align: top;
}
.fc-table tbody tr:last-child td { border-bottom: 0; }
.fc-table tbody tr:hover td { background: #fbfdff; }
.fc-table code {
  display: inline-block;
  padding: 2px 8px; border-radius: 6px;
  background: var(--brand-soft); color: var(--brand);
  font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
  font-size: 13px; font-weight: 650; white-space: nowrap;
}
.fc-table td[data-label="代码"] { width: 88px; }
.fc-table td[data-label="级别"] { width: 76px; }

.fc-sev {
  display: inline-block; padding: 2px 9px; border-radius: 999px;
  font-size: 12px; font-weight: 650; white-space: nowrap;
}
.sev-urgent { background: #fdecec; color: #b3261e; }
.sev-high   { background: #fff2e5; color: #a4560a; }
.sev-normal { background: #eef4fb; color: #1f5f96; }
.sev-low    { background: #eef7f0; color: #2b6b44; }

/* 级别图例（V3：五档口径定义，插在搜索区上方） */
.fc-legend {
  display: flex; flex-wrap: wrap; gap: 6px 18px;
  align-items: center;
  margin: 0 0 10px;
  padding: 10px 14px;
  border: 1px solid var(--line);
  border-radius: 11px;
  background: #fafcfe;
  font-size: 13px; color: var(--muted);
}
.fc-legend strong { color: var(--ink); font-size: 13.5px; }
.fc-legend span { display: inline-flex; align-items: center; gap: 6px; }
.fc-legend .fc-sev { flex: none; }
.fc-yk-tip {
  margin: 0 0 8px;
  padding: 8px 12px;
  border-left: 3px solid var(--brand-2);
  background: var(--brand-soft);
  border-radius: 0 8px 8px 0;
  font-size: 13.5px; color: var(--ink);
}

/* ------------------------------ 四步排查 ------------------------------ */
.fc-steps {
  display: grid; gap: 16px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-top: 26px;
}
.fc-step {
  position: relative;
  padding: 24px 20px 20px;
  border: 1px solid var(--line); border-radius: 14px;
  background: #fff;
}
.fc-step-no {
  display: block; margin-bottom: 10px;
  font-size: 24px; font-weight: 800; letter-spacing: -.02em;
  color: var(--brand-2); opacity: .28;
}
.fc-step h4 { margin: 0 0 8px; font-size: 15px; color: var(--ink); }
.fc-step p { margin: 0; font-size: 13.5px; line-height: 1.72; color: var(--muted); }

/* ------------------------------ FAQ 折叠 ------------------------------ */
.faq-list { display: grid; gap: 10px; margin-top: 24px; max-width: 900px; }
.faq-item {
  border: 1px solid var(--line); border-radius: 12px;
  background: #fff; overflow: hidden;
}
.faq-item summary {
  position: relative;
  padding: 15px 46px 15px 18px;
  font-size: 15px; font-weight: 600; color: var(--ink);
  cursor: pointer; list-style: none;
}
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary::after {
  content: ""; position: absolute; right: 18px; top: 50%;
  width: 9px; height: 9px; margin-top: -6px;
  border-right: 2px solid var(--muted); border-bottom: 2px solid var(--muted);
  transform: rotate(45deg); transition: transform .2s;
}
.faq-item[open] summary::after { transform: rotate(-135deg); margin-top: -2px; }
.faq-item[open] summary { color: var(--brand); }
.faq-a {
  padding: 0 18px 17px;
  font-size: 14px; line-height: 1.82; color: var(--ink-2);
}

/* ------------------------------ 资料库卡片 ------------------------------ */
.tm-list { display: grid; gap: 18px; margin-top: 6px; }
.tm-card {
  border: 1px solid var(--line); border-radius: 14px;
  background: #fff; overflow: hidden;
}
.tm-card-head {
  display: flex; align-items: flex-start; gap: 14px;
  padding: 17px 20px 15px;
  border-bottom: 1px solid var(--line-2);
  background: linear-gradient(180deg, #fafcfe, #fff);
}
.tm-card-head h3 { margin: 0; font-size: 17px; color: var(--ink); }
.tm-en { font-size: 12.5px; font-weight: 500; color: var(--muted); letter-spacing: .04em; }
.tm-sub { margin: 5px 0 0; font-size: 13px; color: var(--muted); }
.tm-verified {
  flex: none;
  padding: 3px 10px; border-radius: 999px;
  background: #eef7f0; color: #2b6b44;
  font-size: 11.5px; font-weight: 650; white-space: nowrap;
}

.tm-block { border-bottom: 1px solid var(--line-2); }
.tm-block:last-of-type { border-bottom: 0; }
.tm-block > summary {
  position: relative;
  padding: 13px 46px 13px 20px;
  font-size: 14px; font-weight: 620; color: var(--ink-2);
  cursor: pointer; list-style: none;
}
.tm-block > summary::-webkit-details-marker { display: none; }
.tm-block > summary::before {
  content: ""; position: absolute; left: 0; top: 0; bottom: 0;
  width: 3px; background: transparent; transition: background .2s;
}
.tm-block[open] > summary { color: var(--brand); background: #fafcff; }
.tm-block[open] > summary::before { background: var(--brand-3); }
.tm-block > summary::after {
  content: ""; position: absolute; right: 20px; top: 50%;
  width: 8px; height: 8px; margin-top: -5px;
  border-right: 2px solid var(--muted); border-bottom: 2px solid var(--muted);
  transform: rotate(45deg); transition: transform .2s;
}
.tm-block[open] > summary::after { transform: rotate(-135deg); margin-top: -2px; }

.tm-block-body { padding: 2px 20px 16px; }
.tm-block-body p {
  margin: 0 0 9px;
  font-size: 13.5px; line-height: 1.8; color: var(--ink-2);
}
.tm-block-body p:last-child { margin-bottom: 0; }
.tm-rule .tm-block-body p {
  font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
  font-size: 12.5px; line-height: 1.9;
  background: #f8fbfe; border: 1px solid var(--line-2);
  border-radius: 9px; padding: 12px 14px;
  word-break: break-word;
}
.tm-param .tm-block-body p {
  background: #f6fbf7; border-left: 3px solid #8fcfa8;
  border-radius: 0 8px 8px 0; padding: 10px 14px;
}
.tm-empty-txt { color: var(--muted); font-style: normal; }

/* ---------- 样册式内容块：参数表 / 故障条 / 检修步骤 / 避坑 ---------- */
.tm-card-head { align-items: center; }
.tm-thumb {
  flex: none; width: 110px; height: 80px; border-radius: 9px; overflow: hidden;
  background: #eef4fa; border: 1px solid var(--line-2);
}
.tm-thumb img { display: block; width: 100%; height: 100%; object-fit: cover; }
.tm-head-txt { min-width: 0; }
.tm-head-side { margin-left: auto; flex: none; display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 7px; max-width: 52%; }
.tm-site {
  display: inline-flex; align-items: center; gap: 4px;
  padding: 4px 11px; border-radius: 999px;
  border: 1px solid #b9d5f0; background: #f4f9ff; color: var(--brand);
  font-size: 11.5px; font-weight: 650; white-space: nowrap; text-decoration: none;
  transition: background .18s, border-color .18s, color .18s;
}
.tm-site:hover { background: var(--brand); border-color: var(--brand); color: #fff; }
/* 「该机型服务详情 →」：品牌卡里的主转化出口，用实心强调 */
.tm-site-go { background: var(--brand); border-color: var(--brand); color: #fff; }
.tm-site-go:hover { background: var(--brand-2); border-color: var(--brand-2); }

.tm-param-list {
  margin: 0; padding: 0; list-style: none;
  display: grid; border: 1px solid var(--line-2); border-radius: 9px; overflow: hidden;
}
.tm-param-list li {
  display: flex; align-items: baseline; gap: 12px;
  padding: 9px 13px; font-size: 13.5px; border-bottom: 1px solid var(--line-2);
}
.tm-param-list li:nth-child(odd) { background: #f8fbfe; }
.tm-param-list li:last-child { border-bottom: 0; }
.tm-param-list span { flex: none; min-width: 116px; color: var(--muted); }
.tm-param-list strong { color: var(--ink); font-weight: 620; line-height: 1.6; }
.tm-param-x { color: var(--line) !important; }

.tm-fault-list {
  margin: 0; padding: 0; list-style: none; display: grid;
  grid-template-columns: repeat(auto-fill, minmax(228px, 1fr)); gap: 6px;
}
.tm-fault-list li {
  display: flex; align-items: baseline; gap: 8px;
  padding: 7px 11px; border-radius: 8px;
  background: #f8fbfe; border: 1px solid var(--line-2);
  font-size: 12.8px; line-height: 1.62; color: var(--ink-2);
}
.tm-fault-list b { flex: none; color: #a83c1c; font-weight: 700; letter-spacing: .02em; }
.tm-fault-list .tm-fault-solo { color: var(--ink); }

.tm-step-list {
  margin: 0; padding: 0; list-style: none; counter-reset: tmstep;
  display: grid; gap: 8px;
}
.tm-step-list li {
  position: relative; counter-increment: tmstep;
  padding: 9px 13px 9px 40px; border-radius: 9px;
  background: #f6fbf8; border: 1px solid #dcece2;
  font-size: 13.2px; line-height: 1.75; color: var(--ink-2);
}
.tm-step-list li::before {
  content: counter(tmstep);
  position: absolute; left: 11px; top: 10px;
  width: 20px; height: 20px; border-radius: 50%;
  background: #2b6b44; color: #fff;
  font-size: 11.5px; font-weight: 700; line-height: 20px; text-align: center;
}

.tm-pit-list { margin: 0; padding: 0; list-style: none; display: grid; gap: 8px; }
.tm-pit-list li {
  position: relative; padding: 9px 13px 9px 32px; border-radius: 9px;
  background: #fff8f3; border: 1px solid #f3ddcc;
  font-size: 13.2px; line-height: 1.75; color: var(--ink-2);
}
.tm-pit-list li::before {
  content: "!";
  position: absolute; left: 11px; top: 11px;
  width: 15px; height: 15px; border-radius: 50%;
  background: #d97706; color: #fff;
  font-size: 11px; font-weight: 800; line-height: 15px; text-align: center;
}

.tm-card-foot {
  padding: 11px 20px;
  border-top: 1px solid var(--line-2);
  background: #fbfdff;
  font-size: 12px; color: var(--muted); line-height: 1.6;
}

/* ------------------------------ 参数速览 ------------------------------ */
.tm-std {
  display: grid; gap: 18px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-top: 26px;
}
.tm-std-card {
  border: 1px solid var(--line); border-radius: 14px;
  background: #fff; padding: 22px 22px 16px;
}
/* 速览区内的富内容卡（冷却塔/热泵等四块阅读卡）横跨两列 */
.tm-std .tm-card { grid-column: 1 / -1; }
.tm-std-card h3 { margin: 0 0 16px; font-size: 16px; color: var(--brand); }
.tm-std-list { margin: 0; padding: 0; list-style: none; display: grid; gap: 9px; }
.tm-std-list li {
  display: flex; align-items: baseline; gap: 10px;
  padding-bottom: 9px; border-bottom: 1px dashed var(--line);
  font-size: 13.5px;
}
.tm-std-list li:last-child { border-bottom: 0; padding-bottom: 0; }
.tm-std-list span { flex: none; min-width: 92px; color: var(--muted); }
.tm-std-list strong { color: var(--ink); font-weight: 620; line-height: 1.6; }

/* ------------------------------ 品牌官网直达（页内嵌） ------------------------------ */
.brand-block { margin-top: 24px; }
.brand-block-title {
  margin: 0 0 13px; font-size: 15px; font-weight: 700; color: var(--ink);
  display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap;
}
.brand-block-title span { font-size: 12.5px; font-weight: 500; color: var(--muted); }
.brand-chip-bar { display: flex; flex-wrap: wrap; gap: 9px; }
.brand-chip-bar a {
  display: inline-flex; align-items: center; gap: 5px;
  padding: 7px 14px; border-radius: 999px;
  border: 1px solid var(--line); background: #fff; color: var(--ink-2);
  font-size: 13px; font-weight: 600; text-decoration: none;
  transition: border-color .18s, color .18s, box-shadow .18s, transform .18s;
}
.brand-chip-bar a i { font-style: normal; font-size: 11px; color: var(--brand); }
.brand-chip-bar a:hover {
  border-color: var(--brand); color: var(--brand);
  box-shadow: 0 6px 18px rgba(10,77,140,.13); transform: translateY(-1px);
}
.brand-foot {
  margin-top: 26px; padding: 18px 20px; border-radius: 12px;
  background: #f7fafd; border: 1px solid var(--line-2);
  display: flex; align-items: center; gap: 18px; flex-wrap: wrap; justify-content: space-between;
}
.brand-foot p { margin: 0; font-size: 12.5px; line-height: 1.75; color: var(--muted); max-width: 62em; }

/* ------------------------------ 骨架与空态 ------------------------------ */
.fc-skeleton, .fc-empty { }
.fc-skeleton {
  display: grid; grid-template-columns: 90px 1fr 1fr 90px; gap: 14px;
  padding: 18px 20px; margin-bottom: 12px;
  border: 1px solid var(--line); border-radius: 12px; background: #fff;
}
.fc-skeleton span {
  height: 14px; border-radius: 6px;
  background: linear-gradient(90deg, #eef3f8 25%, #f7fafd 37%, #eef3f8 63%);
  background-size: 400% 100%;
  animation: fcShimmer 1.4s ease infinite;
}
.fc-skeleton span:nth-child(2) { height: 28px; }
.fc-skeleton span:nth-child(3) { height: 28px; }
@keyframes fcShimmer {
  0% { background-position: 100% 50%; }
  100% { background-position: 0 50%; }
}
.fc-empty {
  padding: 44px 24px; text-align: center;
  border: 1px dashed var(--line); border-radius: 14px;
  background: #fbfdff;
}
.fc-empty strong { display: block; margin-bottom: 8px; font-size: 16px; color: var(--ink); }
.fc-empty p { margin: 0; font-size: 14px; color: var(--muted); line-height: 1.7; }

/* ------------------------------ 响应式 ------------------------------ */
@media (max-width: 980px) {
  .fc-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 860px) {
  .tm-std { grid-template-columns: 1fr; }
}
@media (max-width: 620px) {
  .fc-search { max-width: 100%; }
  .fc-steps { grid-template-columns: 1fr; }
  .fc-brand-head { padding: 13px 15px; }
  .fc-series { padding: 0 15px; }
  .fc-src { padding: 10px 15px; }
  .fc-table th, .fc-table td { padding: 9px 10px; font-size: 13px; }
  .fc-step { padding: 20px 16px 16px; }
  .faq-item summary { padding: 14px 42px 14px 15px; font-size: 14.5px; }
  .faq-a { padding: 0 15px 15px; }
  .tm-card-head { padding: 15px; }
  .tm-thumb { width: 76px; height: 60px; }
  .tm-head-side { flex-direction: column; align-items: flex-end; gap: 6px; }
  .tm-param-list span { min-width: 84px; font-size: 12.5px; }
  .tm-fault-list { grid-template-columns: 1fr; }
  .tm-block > summary { padding: 12px 42px 12px 15px; }
  .tm-block-body { padding: 2px 15px 14px; }
  .tm-card-foot { padding: 10px 15px; }
  .tm-std-card { padding: 18px 16px 14px; }
  .tm-std-list span { min-width: 78px; font-size: 12.5px; }
  .fc-skeleton { grid-template-columns: 60px 1fr; }
  .fc-skeleton span:nth-child(3), .fc-skeleton span:nth-child(4) { display: none; }
}

/* ------------------------------ 技术资料入口卡（articles 页） ------------------------------ */
.tool-grid {
  display: grid; gap: 18px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
@media (max-width: 1040px) { .tool-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.tool-card {
  position: relative; display: block;
  padding: 26px 26px 24px;
  border: 1px solid var(--line); border-radius: 16px;
  background: linear-gradient(160deg, #ffffff, #f8fbfe);
  text-decoration: none; color: inherit;
  transition: border-color .18s, box-shadow .18s, transform .18s;
  overflow: hidden;
}
.tool-card::after {
  content: ""; position: absolute; left: 0; right: 0; top: 0;
  height: 3px; background: linear-gradient(90deg, var(--brand-2), var(--brand-3));
  opacity: 0; transition: opacity .2s;
}
.tool-card:hover {
  border-color: var(--brand-3);
  box-shadow: 0 14px 34px rgba(10, 77, 140, .1);
  transform: translateY(-2px);
}
.tool-card:hover::after { opacity: 1; }
.tool-tag {
  display: inline-block; margin-bottom: 12px;
  padding: 3px 10px; border-radius: 999px;
  background: var(--brand-soft); color: var(--brand);
  font-size: 11.5px; font-weight: 650; letter-spacing: .04em;
}
.tool-card h2, .tool-card h3 { margin: 0 0 10px; font-size: 18px; color: var(--ink); }
.tool-card p { margin: 0 0 16px; font-size: 14px; line-height: 1.75; color: var(--muted); }
.tool-go { font-size: 14px; font-weight: 620; color: var(--brand-2); }

@media (max-width: 760px) {
  .tool-grid { grid-template-columns: 1fr; }
  .tool-card { padding: 22px 20px 20px; }
}

/* -------------------------------------------------------------------------
   类名别名补齐
   -------------------------------------------------------------------------
   fault-codes.html 早期版本使用 fc-search-wrap / fc-step-n / fc-result，
   与样式表中的 fc-search / fc-step-no / fc-list 是同一元素的两套命名。
   这里做等价映射，避免为改一个类名去动已上线页面的结构。
   ------------------------------------------------------------------------- */
.fc-search-wrap { position: relative; max-width: 620px; margin-top: 14px; }
.fc-search-wrap input {
  width: 100%; height: 46px; padding: 0 92px 0 16px;
  border: 1px solid var(--line); border-radius: 11px;
  background: #fff; font-size: 15px; color: var(--ink);
  transition: border-color .18s, box-shadow .18s;
}
.fc-search-wrap input:focus {
  outline: none; border-color: var(--brand-2);
  box-shadow: 0 0 0 3px rgba(14, 107, 184, .12);
}
.fc-search-wrap .fc-clear { position: absolute; right: 8px; top: 50%; transform: translateY(-50%); }

.fc-step-n {
  display: block; margin-bottom: 10px;
  font-size: 24px; font-weight: 800; letter-spacing: -.02em;
  color: var(--brand-2); opacity: .28;
}
.fc-step h3 { margin: 0 0 8px; font-size: 15px; color: var(--ink); }

.fc-result { min-height: 60px; }

/* =========================================================
   维修案例 · 现场实拍图集 + 检修视频 + 灯箱
   ========================================================= */

/* 案例清单容器：宽版单列（每张卡片内部左右分栏） */
.case4-list { display: grid; gap: 22px; }

/* 案例卡里的「相关阅读」站内互链 */
.c4-more {
  display: inline-block; margin: 12px 0 2px;
  font-size: 13.4px; font-weight: 600; color: var(--brand-2);
  border-bottom: 1px dashed rgba(10, 77, 140, .35); padding-bottom: 1px;
}
.c4-more:hover { color: var(--brand); border-bottom-color: var(--brand); }

/* 案例分页：底部「加载更多」+ 计数 */
.case-more {
  display: flex; flex-direction: column; align-items: center; gap: 12px;
  margin: 30px 0 8px;
}
.case-more .btn[disabled] { opacity: .5; cursor: default; }
.case-more-count { font-size: 13px; color: var(--muted); }
.case-more-count b { color: var(--ink); font-weight: 700; }


/* 宽版卡片：左栏 = 竖版封面 + 2 张关键工序图，随右栏高度自适应填满，不留空白 */
.case4.case4-wide { grid-template-columns: 380px 1fr; margin-bottom: 0; }
@media (max-width: 980px) { .case4.case4-wide { grid-template-columns: 1fr; } }

.case4.case4-wide .case4-media {
  align-self: stretch; aspect-ratio: auto; min-height: 0;
  display: flex; flex-direction: column; gap: 8px; padding: 8px;
}
.case4.case4-wide .c4m-cover {
  position: relative; width: 100%; aspect-ratio: 3 / 4;
  border-radius: 10px; overflow: hidden; background: var(--bg-soft); flex: 0 0 auto;
}
.case4.case4-wide .c4m-extra {
  /* 随右栏高度伸展填充空白，但封顶：不限高的话，带视频的长卡片会把它拉到
     1:2 以上的窄高比，横图会被裁掉三分之二（实测只剩 34%）。
     封顶后最差保留约 63%，其余留白由面板底色承接，看起来是留白而不是窟窿。 */
  flex: 1 1 auto; min-height: 132px; max-height: 210px;
  display: grid; grid-template-columns: 1fr 1fr; gap: 8px;
}
.case4.case4-wide .c4m-extra .c4-shot {
  aspect-ratio: auto; min-height: 0; border-radius: 10px;
}
.case4.case4-wide .c4m-cover img,
.case4.case4-wide .c4m-extra .c4-shot img {
  position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover;
}
@media (max-width: 980px) {
  .case4.case4-wide .c4m-cover { aspect-ratio: 4 / 3; }
  .case4.case4-wide .c4m-extra { min-height: 120px; }
}

/* 图集区 */
.c4-gallery { margin-top: 18px; border-top: 1px solid var(--line); padding-top: 16px; }
.c4-gallery-cap {
  font-size: 12.6px; color: var(--muted); font-weight: 600;
  margin-bottom: 10px; display: flex; align-items: center; gap: 7px;
}
.c4-gallery-cap::before {
  content: ""; width: 6px; height: 6px; border-radius: 50%;
  background: var(--brand-3); flex: 0 0 auto;
}

/* 图集列数由 cases.html 按实际张数写入 --n（1/2/3/4 张一一对应，5-6→3，7-9→4…）。
   不用固定 6 列：那样 4 张图会各占 1/6 宽（约 113px），又碎又小，
   与左栏 .c4m-extra 的 178px 关键工序图视觉重量也对不上。 */
.c4-shots {
  display: grid; grid-template-columns: repeat(var(--n, 4), minmax(0, 1fr)); gap: 8px;
}
@media (max-width: 1100px) { .c4-shots { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 560px)  { .c4-shots { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

.c4-shot {
  position: relative; display: block; overflow: hidden;
  border-radius: 9px; background: var(--bg-soft);
  aspect-ratio: 3 / 4; border: 1px solid var(--line);
  cursor: zoom-in;
}
.c4-shot img {
  width: 100%; height: 100%; object-fit: cover; display: block;
  transition: transform .5s cubic-bezier(.3,.8,.3,1);
}
.c4-shot:hover img { transform: scale(1.08); }
/* 横版实拍图：3:4 竖框只留中间约 56%，横向构图会被切坏 → 改为完整显示 */
.c4-shot--wide { background: #e9eef5; }
.c4-shot--wide img { object-fit: contain; }
.c4-shot--wide:hover img { transform: none; }
.c4-shot::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  box-shadow: inset 0 0 0 1px rgba(10,77,140,.08); border-radius: 9px;
}
.c4-shot-i {
  position: absolute; left: 6px; bottom: 6px; z-index: 2;
  background: rgba(11,26,43,.72); color: #fff;
  font-size: 11px; font-weight: 700; line-height: 1;
  padding: 3px 6px; border-radius: 5px;
  backdrop-filter: blur(4px);
}

/* 视频
   站内案例视频统一转成 720x1280 竖屏（见 build_case_videos.py / add_case_videos2.py：
   横屏素材用「模糊自身垫底 + 居中前景」处理，绝不裁内容）。
   —— 因此播放器必须是 9:16 竖框：若按 16:9 + object-fit:cover 裁切，
   竖屏画面会被裁得只剩中间一条（实测踩过）。
   版式按「手机墙」处理：一行多列的竖屏小卡，整齐且不把案例卡拉得过长。 */
.c4-videos {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px; margin-top: 14px;
}
@media (max-width: 1180px) { .c4-videos { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 700px) { .c4-videos { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; } }
.c4-video { margin: 0; }
.c4-video video {
  display: block; width: 100%; aspect-ratio: 9 / 16;
  border-radius: 10px; background: #0b1a2b;
  object-fit: contain;
  border: 1px solid var(--line);
}
.c4-video figcaption {
  font-size: 12.2px; color: var(--muted); margin-top: 6px;
  text-align: center; line-height: 1.5;
}

/* ---------------- 灯箱 ---------------- */
.c4-lb {
  position: fixed; inset: 0; z-index: 9999;
  background: rgba(6, 14, 24, .93);
  display: none; align-items: center; justify-content: center;
  padding: 56px 24px 68px;
  opacity: 0; transition: opacity .22s ease;
  backdrop-filter: blur(3px);
}
.c4-lb.on { display: flex; opacity: 1; }
.c4-lb img {
  max-width: min(1500px, 94vw); max-height: calc(100vh - 150px);
  object-fit: contain; border-radius: 8px;
  box-shadow: 0 24px 70px rgba(0,0,0,.6);
  background: #10161f;
}
.c4-lb-cap {
  position: absolute; left: 0; right: 0; bottom: 22px;
  text-align: center; color: #dfe8f2; font-size: 13.5px;
  letter-spacing: .2px;
}
.c4-lb-close, .c4-lb-prev, .c4-lb-next {
  position: absolute; z-index: 2;
  background: rgba(255,255,255,.10); color: #fff;
  border: 1px solid rgba(255,255,255,.22);
  border-radius: 50%; cursor: pointer;
  display: grid; place-items: center; line-height: 1;
  transition: background .2s, transform .2s;
}
.c4-lb-close:hover, .c4-lb-prev:hover, .c4-lb-next:hover {
  background: rgba(255,255,255,.22); transform: scale(1.06);
}
.c4-lb-close { top: 16px; right: 18px; width: 40px; height: 40px; font-size: 24px; }
.c4-lb-prev, .c4-lb-next { top: 50%; margin-top: -24px; width: 48px; height: 48px; font-size: 30px; }
.c4-lb-prev { left: 18px; }
.c4-lb-next { right: 18px; }
@media (max-width: 560px) {
  .c4-lb { padding: 48px 10px 62px; }
  .c4-lb-prev, .c4-lb-next { width: 38px; height: 38px; font-size: 22px; }
  .c4-lb-prev { left: 8px; } .c4-lb-next { right: 8px; }
  .c4-lb-close { top: 10px; right: 10px; width: 34px; height: 34px; font-size: 20px; }
}
body.c4-lb-open { overflow: hidden; }

/* ---------------- 设备类型名称说明 ---------------- */
.equip-naming {
  margin-top: 22px; padding: 18px 22px;
  background: var(--brand-soft); border: 1px solid #d3e6f7; border-radius: 12px;
}
.equip-naming > b { display: block; font-size: 14.5px; color: var(--brand); margin-bottom: 7px; }
.equip-naming p { font-size: 13.6px; color: var(--ink-2); margin: 0 0 10px; line-height: 1.75; }
.equip-naming ul {
  margin: 0; padding: 0; list-style: none;
  display: grid; gap: 7px; grid-template-columns: repeat(2, minmax(0, 1fr));
}
@media (max-width: 720px) { .equip-naming ul { grid-template-columns: 1fr; } }
.equip-naming li {
  font-size: 13.5px; color: var(--ink-2); line-height: 1.6;
  padding-left: 18px; position: relative;
}
.equip-naming li::before {
  content: ""; position: absolute; left: 3px; top: 8px;
  width: 6px; height: 6px; border-radius: 50%; background: var(--brand-3);
}
.equip-naming li b { color: var(--ink); font-weight: 700; }

/* 筛选栏现在的设备名较长，允许换行排布 */
#f-equip { row-gap: 8px; }
#f-equip .brand-chip { white-space: nowrap; }

/* ---------------- 品牌官网直达（brand-links.html） ---------------- */
.bl-toolbar { display:flex; flex-wrap:wrap; gap:10px; align-items:center; margin:0 0 22px; }
.bl-search { flex:1 1 260px; min-width:220px; border:1px solid var(--line); border-radius:10px; padding:11px 14px; font-size:14.5px; }
.bl-search:focus { outline:none; border-color:var(--brand-3); box-shadow:0 0 0 3px rgba(15,185,216,.12); }
.bl-jump { display:flex; flex-wrap:wrap; gap:8px; }
.bl-jump a { font-size:12.8px; text-decoration:none; color:var(--muted); border:1px solid var(--line); border-radius:20px; padding:5px 12px; background:#fff; }
.bl-jump a:hover { color:var(--brand); border-color:#cfe0f5; }
.bl-jump .bl-jump-more {
  color: var(--brand); border-color: #cfe0f5; background: var(--brand-soft); font-weight: 600;
}
.tm-filter-tip {
  color: var(--muted); font-size: 14px; line-height: 1.8;
}
.tm-filter-tip b { color: var(--ink-2); }
.tm-filter-tip a { color: var(--brand); text-decoration: underline; text-underline-offset: 3px; }
.tm-filter-tip a:hover { color: var(--brand-2); }

.bl-group { margin-top:46px; }
.bl-group:first-of-type { margin-top:30px; }
.bl-group-head { display:flex; align-items:baseline; gap:12px; flex-wrap:wrap; margin-bottom:16px; padding-bottom:10px; border-bottom:1px solid var(--line); }
.bl-group-head h2 { font-size:21px; margin:0; }
.bl-group-head .bl-count { font-size:12.6px; color:var(--muted); }

.bl-grid { display:grid; gap:14px; grid-template-columns:repeat(auto-fill,minmax(282px,1fr)); }
.bl-card {
  background:#fff; border:1px solid var(--line); border-radius:13px;
  padding:16px 18px 15px; display:flex; flex-direction:column; gap:9px;
  transition:box-shadow .18s, border-color .18s, transform .18s;
}
.bl-card:hover { box-shadow:0 8px 22px rgba(11,26,43,.09); border-color:#cfe0f5; transform:translateY(-2px); }
.bl-card[hidden] { display:none; }
.bl-top { display:flex; align-items:baseline; gap:8px; flex-wrap:wrap; }
.bl-name { font-weight:700; font-size:16.6px; letter-spacing:.2px; }
.bl-en { font-size:12.2px; color:var(--muted); letter-spacing:.3px; }
.bl-meta { display:flex; flex-wrap:wrap; gap:6px; }
.bl-tag { font-size:11.5px; padding:2px 8px; border-radius:20px; background:#eef4fb; color:#2b5c94; white-space:nowrap; }
.bl-desc { font-size:13.2px; color:var(--muted); line-height:1.62; margin:0; }
.bl-tel { font-size:12.5px; color:#0f7a45; background:#f1faf4; border:1px solid #d5efe0; border-radius:7px; padding:3px 9px; display:inline-block; align-self:flex-start; }
.bl-tel b { font-weight:700; }
.bl-link { margin-top:auto; padding-top:4px; display:flex; flex-direction:column; gap:5px; }
.bl-link a { font-size:13.4px; font-weight:600; color:var(--brand); text-decoration:none; word-break:break-all; display:inline-flex; gap:6px; align-items:center; }
.bl-link a:hover { text-decoration:underline; }
.bl-link a .bl-ext { font-weight:400; opacity:.75; font-size:12px; }
.bl-alt { font-size:12.4px; color:var(--muted); }
.bl-alt a { color:var(--muted); text-decoration:none; border-bottom:1px dotted #c8d3e0; }
.bl-alt a:hover { color:var(--brand); }
.bl-empty { display:none; padding:26px 0; color:var(--muted); font-size:14px; }
.bl-empty.on { display:block; }

@media (max-width:640px) {
  .bl-grid { grid-template-columns:1fr; }
  .bl-group { margin-top:34px; }
}

/* ---------------- 宽幅服务卡：多机型拼接长图（年度维保托管） ----------------
   拼接图是 1600×628 的横向长图，用常规 4:3 封面会被裁掉大部分机型，
   故整行铺开并改用 contain 完整呈现。
   ------------------------------------------------------------------------- */
/* ---------------- 服务项目网格收尾卡：同尺寸补齐末行，避免右侧空格 ---------------- */
.card--note { background: #f8fbff; border-style: dashed; border-color: #cfe3f6; }
.card--note:hover { transform: none; box-shadow: none; border-color: #cfe3f6; }
.card-media--note {
  display: flex; align-items: center; justify-content: center;
  background: linear-gradient(140deg, #eef6fd 0%, #e2effb 100%);
}
.card--note h3 { color: var(--brand); }
.card--note .card-foot { gap: 10px; flex-wrap: wrap; }

.card--wide { grid-column: 1 / -1; }
.card--wide .card-media { aspect-ratio: 1600 / 628; background: #0b1a2b; }
.card--wide .card-media img { object-fit: contain; }
.card--wide:hover .card-media img { transform: none; }
@media (max-width: 720px) {
  .card--wide .card-media { aspect-ratio: 1600 / 900; }
}
@media (max-width: 480px) {
  .card--wide .card-media { aspect-ratio: 4 / 3; }
  .card--wide .card-media img { object-fit: cover; }
}

/* ---------------- 公司简介：业务全景组合图（6 格 3:2） ----------------
   图为 1800×1200 的 3×2 拼贴（四大主力机型 + 冷却塔 + 检修现场），
   按 3:2 呈现可完整显示六格，用默认 4:3 封面会裁掉左右各一格。
   ------------------------------------------------------------------- */
.split-media--wide img { aspect-ratio: 3 / 2; }
.media-note {
  margin-top: 12px; font-size: 12.5px; line-height: 1.72;
  color: var(--muted); text-align: left;
}

/* 发展历程配图：竖构图源图按 3:4 呈现。
   原先用 1920×720 的横图塞进 4:3 容器，只显示中间 50%，
   且高度远小于左侧时间线，图片下方留出大片空白。改用竖图 + 3:4 后，
   高度与左侧时间线基本齐平，画面完整不裁切。 */
.split-media--tall img { aspect-ratio: 3 / 4; }

/* 公司简介：可服务设备类别胶囊带（纯文字，与年度维保卡的口径一致） */
.cap-chips {
  display: flex; flex-wrap: wrap; gap: 7px; margin-top: 13px;
}
.cap-chips span {
  font-size: 12.5px; line-height: 1; padding: 6px 11px; border-radius: 20px;
  background: var(--bg-soft); border: 1px solid var(--line-2); color: var(--ink-2);
  white-space: nowrap;
}


/* 延伸阅读带：把原来占一大版面的互链区压成一条，不打断主线阅读 */
.rel-band {
  display: flex; align-items: center; flex-wrap: wrap; gap: 10px 20px;
  padding: 16px 20px;
  border: 1px solid var(--line-2);
  border-radius: 12px;
  background: #fff;
}
.rel-band-t { font-size: 13.6px; font-weight: 650; color: var(--ink); flex: none; }
.rel-band-links { display: flex; flex-wrap: wrap; gap: 8px 10px; }
.rel-band-links a {
  font-size: 13px; font-weight: 550; color: var(--brand-2);
  padding: 4px 12px; border-radius: 999px;
  background: var(--bg-soft); border: 1px solid var(--line-2);
  transition: background .16s, color .16s, border-color .16s;
}
.rel-band-links a:hover { background: var(--brand); border-color: var(--brand); color: #fff; }
@media (max-width: 640px) {
  .rel-band { padding: 14px 15px; gap: 9px 14px; }
  .rel-band-links a { font-size: 12.4px; padding: 3.5px 10px; }
}

.rel-row {
  display: grid; grid-template-columns: 210px minmax(0, 1fr); gap: 16px; align-items: center;
  padding: 17px 20px; border: 1px solid var(--line-2); border-radius: 12px; background: var(--bg-soft);
}
.rel-row > b { font-size: 15.5px; color: var(--ink); letter-spacing: -.2px; }
.rel-links { display: flex; flex-wrap: wrap; gap: 9px 18px; }
.rel-links a {
  font-size: 14px; color: var(--brand-2); padding-bottom: 1px;
  border-bottom: 1px dashed rgba(10, 77, 140, .32);
}
.rel-links a:hover { color: var(--brand); border-bottom-style: solid; }
@media (max-width: 760px) {
  .rel-row { grid-template-columns: 1fr; gap: 10px; padding: 15px 16px; }
}

/* ---------------- 城市落地页 ---------------- */
.city-proj-list { display:flex; flex-direction:column; gap:13px; list-style:none; padding:0; margin:0; }
.city-proj-list li {
  display:grid; grid-template-columns: 1fr auto; gap:3px 14px;
  padding:13px 16px; background:var(--bg-soft); border-radius:10px; font-size:14px;
}
.city-proj-list li b { font-size:14.5px; color:var(--ink); }
.city-proj-list li span { grid-column:1; font-size:13px; color:var(--muted); line-height:1.7; }
.city-proj-list li i { grid-column:2; grid-row:1 / span 2; align-self:center; font-style:normal;
  font-size:12px; color:var(--brand-2); white-space:nowrap; padding:3px 10px;
  border:1px solid rgba(10,77,140,.22); border-radius:999px; }
@media (max-width: 640px) {
  .city-proj-list li { grid-template-columns: 1fr; }
  .city-proj-list li i { grid-column:1; grid-row:auto; justify-self:start; margin-top:6px; }
}

/* ---------------- 城市互跳导航条 ---------------- */
.city-nav-head { display:flex; align-items:baseline; justify-content:space-between;
  gap:12px; flex-wrap:wrap; margin-bottom:14px; }
.city-nav-title { font-size:17px; margin:0; }
.city-chips { display:flex; flex-wrap:wrap; gap:9px; }
.city-chip { display:inline-block; padding:7px 15px; border-radius:999px;
  border:1px solid var(--line-2, rgba(10,77,140,.18)); font-size:13.5px;
  color:var(--ink-2); background:var(--bg-soft); transition: all .18s; }
a.city-chip:hover { border-color:var(--brand-2); color:var(--brand-2); }
.city-chip.on { background:var(--brand-2); color:#fff; border-color:var(--brand-2); }

/* ---------------- 城市枢纽页 ---------------- */
.city-hub-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(240px, 1fr)); gap:16px; }
.city-hub-card { display:block; padding:20px 22px; background:var(--bg-soft);
  border:1px solid var(--line-2, rgba(10,77,140,.12)); border-radius:14px;
  color:inherit; text-decoration:none; transition:all .2s; }
.city-hub-card:hover { border-color:var(--brand-2); transform:translateY(-2px);
  box-shadow:0 10px 26px rgba(10,30,60,.10); }
.city-hub-name { display:flex; align-items:center; gap:9px; font-size:18px;
  font-weight:700; color:var(--ink); margin-bottom:8px; }
.city-badge { font-style:normal; font-size:11px; font-weight:500; padding:2.5px 9px;
  border-radius:999px; border:1px solid var(--line-2, rgba(10,77,140,.25));
  color:var(--muted); white-space:nowrap; }
.city-badge.real { color:var(--brand-2); border-color:rgba(10,77,140,.35); background:rgba(10,77,140,.06); }
.city-hub-tag { font-size:13px; color:var(--ink-2); margin-bottom:6px; }
.city-hub-eta { font-size:12.5px; color:var(--muted); margin-bottom:12px; }
.city-hub-go { font-size:13px; color:var(--brand-2); }

/* 城市页服务流程三步 */
.city-steps { display:grid; grid-template-columns:repeat(3, 1fr); gap:14px; }
.city-step { display:flex; flex-direction:column; gap:6px; padding:16px 18px;
  background:var(--bg-soft); border-radius:12px; }
.city-step i { font-style:normal; width:26px; height:26px; border-radius:50%;
  display:flex; align-items:center; justify-content:center; font-size:13px;
  background:var(--brand-2); color:#fff; margin-bottom:2px; }
.city-step b { font-size:15px; color:var(--ink); }
.city-step span { font-size:13px; color:var(--muted); line-height:1.75; }
@media (max-width: 760px) { .city-steps { grid-template-columns:1fr; } }

/* ---------------- 资质证书卡片（about.html） ---------------- */
.cert-grid { display:grid; grid-template-columns:repeat(3, 1fr); gap:16px;
  max-width:1040px; margin:0 auto; }
.cert-card { display:flex; flex-direction:column; background:#fff;
  border:1px solid var(--line); border-radius:12px; overflow:hidden;
  color:inherit; text-decoration:none;
  transition:border-color .22s ease, transform .22s ease, box-shadow .22s ease; }
.cert-card:hover { border-color:var(--brand-3); transform:translateY(-3px);
  box-shadow:0 10px 26px rgba(10,30,60,.11); }
/* 媒体区比例贴合证件卡原图（横版 ~1.67），保证图片完整不变形 */
.cert-media { position:relative; aspect-ratio:1.67;
  background:linear-gradient(180deg, #f3f7fb, #e8eff7);
  display:flex; align-items:center; justify-content:center; padding:11px;
  border-bottom:1px solid var(--line-2); }
.cert-media img { width:100%; height:100%; object-fit:contain; border-radius:6px;
  box-shadow:0 1px 2px rgba(15,27,45,.10), 0 7px 18px rgba(15,27,45,.08); }
.cert-flag { position:absolute; top:10px; right:10px; font-size:11px; font-weight:600;
  padding:3px 9px; border-radius:20px; letter-spacing:.2px; }
.cert-flag.ok  { background:rgba(31,138,85,.13);  color:#1a7a4a; border:1px solid rgba(31,138,85,.3); }
.cert-flag.due { background:rgba(190,110,15,.13); color:#a3620c; border:1px solid rgba(190,110,15,.3); }
.cert-flag.gov { background:rgba(10,77,140,.11);  color:var(--brand); border:1px solid rgba(10,77,140,.26); }
.cert-body { padding:13px 15px 14px; display:flex; flex-direction:column; gap:6px; flex:1; }
.cert-body h3 { font-size:14.5px; margin:0; color:var(--ink); letter-spacing:-.1px; }
.cert-body p { font-size:12.5px; color:var(--ink-2); margin:0; line-height:1.55; }
.cert-meta { display:flex; flex-wrap:wrap; gap:6px; margin-top:auto; }
.cert-meta span { font-size:11.5px; color:var(--muted); background:var(--bg-soft);
  border:1px solid var(--line-2); padding:2.5px 9px; border-radius:7px; white-space:nowrap; }
.cert-body i { font-style:normal; font-size:11.8px; font-weight:500;
  color:var(--brand-2); margin-top:3px; }
.cert-note { max-width:1040px; margin:18px auto 0; font-size:12.5px;
  color:var(--muted); line-height:1.8; }
@media (max-width: 900px) { .cert-grid { grid-template-columns:repeat(2, 1fr); } }
@media (max-width: 600px) { .cert-grid { grid-template-columns:1fr; } }

/* ---- 证书折叠：企业执照 + 摘要卡常显，特种作业证默认收起 ---- */
/* 常显行：执照占 1 份、摘要卡占 2 份，保持与下方三列网格同宽 */
.cert-grid-top { grid-template-columns:1fr 2fr; align-items:stretch; margin-bottom:14px; }
.cert-summary { background:#fff; border:1px solid var(--line); border-radius:12px;
  padding:20px 24px; display:flex; flex-direction:column; justify-content:center; gap:9px; }
.cert-summary h3 { font-size:17px; margin:0; color:var(--ink); letter-spacing:-.2px; }
.cert-summary p  { font-size:13px; color:var(--ink-2); margin:0; line-height:1.7; max-width:62ch; }
.cert-summary-tags { display:flex; flex-wrap:wrap; gap:7px; margin-top:2px; }
.cert-summary-tags span { font-size:12px; color:var(--brand); background:rgba(10,77,140,.06);
  border:1px solid rgba(10,77,140,.2); padding:3.5px 11px; border-radius:20px; white-space:nowrap; }

/* 折叠条：整行可点，键盘可达（details/summary 原生） */
.cert-fold { max-width:1040px; margin:0 auto; }
.cert-fold-sum { display:flex; align-items:center; justify-content:space-between; gap:16px;
  flex-wrap:wrap; cursor:pointer; list-style:none; user-select:none;
  background:#fff; border:1px solid var(--line); border-radius:12px;
  padding:15px 22px; transition:border-color .22s ease, background .22s ease; }
.cert-fold-sum::-webkit-details-marker { display:none; }
.cert-fold-sum:hover { border-color:var(--brand-3); background:var(--bg-soft); }
.cert-fold-sum:focus-visible { outline:2px solid var(--brand-2); outline-offset:2px; }
.cert-fold-title { font-size:15px; font-weight:600; color:var(--ink); letter-spacing:-.1px; }
.cert-fold-hint  { font-size:12.5px; color:var(--muted); }
/* 箭头：默认 ▸，展开 ▾ */
.cert-fold-sum::after { content:"▸"; font-size:15px; color:var(--brand-2);
  margin-left:auto; transition:transform .22s ease; }
.cert-fold[open] > .cert-fold-sum::after { transform:rotate(90deg); }
.cert-fold[open] > .cert-fold-sum { border-bottom-left-radius:0; border-bottom-right-radius:0; }
.cert-grid-fold { margin-top:14px; }
.cert-grid-fold .cert-card { opacity:1; transform:none; }

@media (max-width: 900px) {
  .cert-grid-top { grid-template-columns:1fr; }
  .cert-summary { padding:17px 19px; }
  .cert-fold-title { font-size:14.5px; }
  .cert-fold-hint { font-size:12px; }
}
@media (max-width: 600px) {
  .cert-fold-sum { padding:13px 16px; gap:8px; }
  .cert-fold-hint { display:none; }
}

/* ---------------- 案例异地参考标签 ---------------- */
.case-outside-tag { grid-column:1 / -1; font-size:12px; color:var(--muted);
  background:var(--bg-soft); border:1px dashed var(--line-2, rgba(10,77,140,.25));
  padding:6px 12px; border-radius:8px; margin-bottom:2px; }

/* ---------------- 城市页视觉升级 ---------------- */
/* hero 数据条 */
.city-hero-stats { display:grid; grid-template-columns:repeat(4, 1fr); gap:1px;
  margin-top:30px; background:rgba(255,255,255,.14); border:1px solid rgba(255,255,255,.16);
  border-radius:12px; overflow:hidden; max-width:640px; }
.city-hero-stats > div { background:rgba(11,26,43,.55); backdrop-filter:blur(6px);
  padding:13px 10px; text-align:center; }
.city-hero-stats b { display:block; font-size:19px; color:#fff; letter-spacing:.5px; }
.city-hero-stats span { display:block; font-size:11.5px; color:rgba(255,255,255,.62); margin-top:3px; }
@media (max-width: 640px) { .city-hero-stats { grid-template-columns:repeat(2, 1fr); max-width:none; } }

/* 场景编号卡 */
.city-scen { position:relative; padding-top:22px; }
.city-scen-no { position:absolute; top:16px; right:18px; font-size:30px; font-weight:800;
  color:var(--brand-2); opacity:.12; line-height:1; letter-spacing:1px; }
.city-scen::before { content:""; position:absolute; top:0; left:0; right:0; height:3px;
  border-radius:3px 3px 0 0;
  background:linear-gradient(90deg, var(--brand-2), var(--brand-3, #2fa4cf)); }

/* CTA 带 */
.city-cta-band { display:flex; align-items:center; justify-content:space-between;
  gap:22px; flex-wrap:wrap; padding:30px 34px; border-radius:16px; color:#fff;
  background:linear-gradient(115deg, #0b1a2b 0%, #0e3a63 58%, #0a4d8c 100%);
  box-shadow:0 16px 40px rgba(10,40,80,.25); }
.city-cta-band--final { background:linear-gradient(115deg, #0a1e33 0%, #0a4d8c 70%, #1173c4 100%); }
.city-cta-txt h2 { margin:0 0 8px; font-size:clamp(19px, 2.4vw, 24px); color:#fff; }
.city-cta-txt p { margin:0; font-size:14px; color:rgba(255,255,255,.78); max-width:36em; }
.city-cta-btns { display:flex; gap:12px; flex-wrap:wrap; }
.city-cta-band .btn-light { background:#fff; color:#0a4d8c; border-color:#fff; font-weight:700; }
.city-cta-band .btn-light:hover { background:#e8f2fb; }
.city-cta-band .btn-ghost { background: rgba(255,255,255,.08); border-color: rgba(255,255,255,.45); color: #fff; }
.city-cta-band .btn-ghost:hover { background: rgba(255,255,255,.16); border-color: #fff; color: #fff; }

/* 台账统计条 */
.city-rec-stats { display:flex; gap:12px; flex-wrap:wrap; margin-bottom:16px; }
.city-rec-stats span { font-size:12.5px; color:var(--muted);
  background:var(--bg-soft); border-radius:999px; padding:7px 14px; }
.city-rec-stats b { color:var(--brand-2); font-size:13.5px; margin-right:4px; }

/* 枢纽页实绩卡强调 */
.city-hub-card.tier-real { border-left:3px solid var(--brand-2); }
.city-hub-card.tier-real .city-hub-name { color:var(--brand-2); }

/* 枢纽卡增加「里程 + 区县数」地理行 */
.city-hub-eta { margin-bottom:5px; }
.city-hub-km { font-size:12px; font-weight:600; color:var(--brand-2); margin-bottom:12px; }

/* 城市页「服务覆盖范围」地理要素区（真实区县清单 + 到场里程）
   2026-10-09 美化：原 align-items:start 导致左右列高度差 27~67px（美学审计 14 页报「网格不齐」）。
   改为等高拉伸 + 右列卡片化（浅底圆角），两列底边对齐，视觉成组。 */
.city-geo-grid { display:grid; grid-template-columns:1fr 320px; gap:24px; align-items:stretch; }
.city-geo-col { display:flex; flex-direction:column; }
.city-geo-col > h3 { font-size:15.5px; color:var(--ink); margin-bottom:13px; line-height:1.5; }
.city-geo-col:last-child {
  background:var(--bg-soft); border:1px solid var(--line); border-radius:14px;
  padding:18px 20px;
}
.city-geo-chips { display:flex; flex-wrap:wrap; gap:8px; }
.city-geo-chips .geo-chip { display:inline-block; padding:5px 12px; border-radius:999px;
  font-size:13px; line-height:1.5; background:var(--bg-soft); color:var(--ink-2);
  border:1px solid var(--line); transition:border-color .2s, transform .2s; }
.city-geo-chips .geo-chip:hover { border-color:rgba(10,77,140,.35); transform:translateY(-1px); }
.city-geo-chips .geo-chip.is-qu { background:var(--brand-soft); color:var(--brand);
  border-color:rgba(10,77,140,.18); font-weight:600; }
.city-geo-note { font-size:12.4px; color:var(--muted); line-height:1.8; margin-top:14px;
  padding-top:13px; border-top:1px dashed var(--line); }
.city-geo-route { display:flex; flex-direction:column; gap:13px; margin:0; padding:0; list-style:none; flex:1; }
.city-geo-route li { display:flex; gap:10px; font-size:13.2px; color:var(--ink-2); line-height:1.7; }
.city-geo-route li b { flex:0 0 60px; color:var(--brand); font-weight:600; }
.city-geo-route li span { flex:1; min-width:0; }
@media (max-width: 860px) { .city-geo-grid { grid-template-columns:1fr; gap:20px; } }

/* ================= 服务半径三层 · 2026-10-07 =================
   关键：把「湖南 14 市州」的单层表述改成三层半径，明确大型机组全国承接，
   避免省外访客误以为不接外省单。第三层用深底卡强化「全国」这个信息。 */
.scope-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.scope-card { position: relative; padding: 22px 24px; background: var(--bg-soft);
  border: 1px solid var(--line-2, rgba(10,77,140,.12)); border-radius: 16px; }
.scope-tag { display: inline-block; font-size: 11.5px; font-weight: 600; letter-spacing: .4px;
  padding: 3px 10px; border-radius: 999px; margin-bottom: 10px;
  background: rgba(10,77,140,.08); color: var(--brand-2); }
.scope-title { font-size: 19px; font-weight: 700; color: var(--ink); margin-bottom: 5px; }
.scope-eta { font-size: 13px; font-weight: 600; color: var(--brand-2); margin-bottom: 10px; }
.scope-card p { font-size: 13.5px; line-height: 1.72; color: var(--muted); margin: 0; }

.scope-card.is-nationwide { background: linear-gradient(135deg, #0b1a2b, #0a4d8c); border: 0; }
.scope-card.is-nationwide .scope-tag { background: rgba(255,255,255,.16); color: #fff; }
.scope-card.is-nationwide .scope-title { color: #fff; }
.scope-card.is-nationwide .scope-eta { color: #8fd0f0; }
.scope-card.is-nationwide p { color: rgba(255,255,255,.8); }
.scope-card.is-nationwide b { color: #fff; }

/* 全国承接区块 */
.nw-panel { border: 1px solid rgba(10,77,140,.2); border-radius: 16px; overflow: hidden; background: #fff; }
.nw-head { padding: 22px 26px 18px; background: var(--bg-soft); border-bottom: 1px solid var(--line-2, rgba(10,77,140,.12)); }
.nw-head h3 { font-size: 18px; margin-bottom: 6px; }
.nw-head p { font-size: 13.5px; color: var(--muted); margin: 0; line-height: 1.7; }
.nw-body { padding: 22px 26px 26px; }
.nw-label { font-size: 12.5px; font-weight: 700; color: var(--brand-2);
  letter-spacing: .3px; margin: 0 0 10px; }
.nw-label.mt { margin-top: 20px; }
.nw-prov { display: flex; flex-wrap: wrap; gap: 8px; }
.nw-prov-item { display: inline-flex; align-items: baseline; gap: 7px; font-size: 13.5px;
  padding: 7px 13px; border-radius: 10px; background: var(--bg-soft);
  border: 1px solid var(--line-2, rgba(10,77,140,.12)); }
.nw-prov-item b { font-size: 14.5px; color: var(--ink); }
.nw-prov-item span { font-size: 12.5px; color: var(--muted); }
.nw-prov-item.is-real { border-color: rgba(10,77,140,.32); background: rgba(10,77,140,.05); }
.nw-prov-item.is-real b { color: var(--brand-2); }
.nw-note { font-size: 13px; color: var(--muted); line-height: 1.75; margin: 10px 0 0; }
.nw-note b { color: var(--ink-2); }
@media (max-width: 900px) { .scope-grid { grid-template-columns: 1fr; } }

/* ================= 服务保障 · 强化版（2026-10-05） =================
   目标：把"可查、可举证"从一排等大卡片，改成有主次、有对比、有下单入口的版面。
   注意：本区块不重复首屏 KPI 数字（首屏 hero-x-kpi 已有同期数字）。 */
.assure-head {
  display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr);
  gap: 38px; align-items: end; margin-bottom: 34px;
}
.assure-head .section-head { margin-bottom: 0; }
@media (max-width: 940px) { .assure-head { grid-template-columns: 1fr; gap: 22px; } }

.assure-points { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.assure-points li {
  position: relative; padding: 13px 16px 13px 42px;
  border-radius: 12px; font-size: 14px; line-height: 1.72;
  color: rgba(220,236,251,.74);
  background: rgba(255,255,255,.045); border: 1px solid rgba(255,255,255,.11);
}
.assure-points li::before {
  content: ""; position: absolute; left: 15px; top: 17px;
  width: 15px; height: 15px; border-radius: 50%;
  background: radial-gradient(circle at 50% 50%, rgba(18,194,224,.95) 0 38%, rgba(18,194,224,.2) 41% 100%);
  box-shadow: 0 0 0 4px rgba(18,194,224,.1);
}
.assure-points li b { color: #fff; }

.assure-board { display: grid; grid-template-columns: minmax(0, .88fr) minmax(0, 1.5fr); gap: 18px; }
@media (max-width: 940px) { .assure-board { grid-template-columns: 1fr; } }

.assure-hero {
  position: relative; overflow: hidden; border-radius: 18px; padding: 30px 28px 26px;
  background: linear-gradient(158deg, rgba(18,194,224,.20) 0%, rgba(10,77,140,.34) 52%, rgba(6,21,36,.5) 100%);
  border: 1px solid rgba(111,227,247,.34);
  box-shadow: 0 20px 46px rgba(4,16,30,.42), inset 0 1px 0 rgba(255,255,255,.1);
}
.assure-hero::after {
  content: ""; position: absolute; right: -70px; top: -70px; width: 230px; height: 230px;
  border-radius: 50%; background: radial-gradient(circle, rgba(18,194,224,.3), transparent 68%); pointer-events: none;
}
.assure-hero .ah-tag {
  display: inline-block; font-size: 11.5px; letter-spacing: .14em; text-transform: uppercase;
  color: #061524; background: linear-gradient(96deg, #7fd8ff, var(--cyan-2));
  padding: 5px 11px; border-radius: 999px; font-weight: 800; margin-bottom: 16px;
}
.assure-hero h3 { color: #fff; font-size: clamp(21px, 2.3vw, 27px); line-height: 1.42; letter-spacing: -.4px; margin: 0; }
.assure-hero > p { color: rgba(224,239,255,.78); font-size: 14.4px; line-height: 1.85; margin: 14px 0 0; }
.assure-hero .ah-list { list-style: none; margin: 18px 0 0; padding: 0; display: grid; gap: 9px; }
.assure-hero .ah-list li { position: relative; padding-left: 24px; font-size: 13.8px; color: rgba(224,239,255,.8); line-height: 1.6; }
.assure-hero .ah-list li::before {
  content: ""; position: absolute; left: 4px; top: 6px; width: 11px; height: 6px;
  border-left: 2px solid var(--cyan-2); border-bottom: 2px solid var(--cyan-2); transform: rotate(-45deg);
}
.assure-hero .ah-list li b { color: #fff; margin-right: 6px; }
.assure-hero .ah-cta { display: flex; flex-wrap: wrap; gap: 11px; margin-top: 22px; position: relative; z-index: 2; }
.assure-hero .ah-cta .btn { flex: 1 1 auto; justify-content: center; }
.assure-hero .ah-note { margin-top: 14px; font-size: 12.8px; color: rgba(200,224,244,.62); position: relative; z-index: 2; }
/* .btn-light / .btn-line 皮肤见 site.css 的「CTA 按钮体系」，此处不再重复定义 */

.assure-side { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 14px; align-content: start; }
@media (max-width: 620px) { .assure-side { grid-template-columns: 1fr; } }
.assure-side .assure-card:nth-child(1) { grid-column: 1 / -1; }
.assure-card {
  border-radius: 14px; padding: 19px 19px 18px;
  background: rgba(255,255,255,.055); border: 1px solid rgba(255,255,255,.125);
  backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px);
  transition: background .2s, border-color .2s, transform .2s;
}
.assure-card:hover { background: rgba(255,255,255,.1); border-color: rgba(111,227,247,.45); transform: translateY(-3px); }
.assure-card .as-ico {
  width: 34px; height: 34px; border-radius: 10px; display: grid; place-items: center;
  background: rgba(18,194,224,.16); color: var(--cyan-2); margin-bottom: 11px;
}
.assure-card .as-ico svg { width: 18px; height: 18px; }
.assure-card h4 { color: #fff; font-size: 15.4px; margin: 0 0 6px; }
.assure-card p { color: rgba(220,236,251,.72); font-size: 13.6px; line-height: 1.75; margin: 0; }
.assure-card p b { color: #fff; }

.assure-compare {
  margin-top: 26px; border-radius: 16px; padding: 22px 24px;
  background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.11);
}
.assure-compare .ac-head { margin-bottom: 16px; }
.assure-compare .ac-head b { color: #fff; font-size: 16.5px; }
.assure-compare .ac-head span { display: block; color: rgba(200,224,244,.6); font-size: 13.2px; margin-top: 5px; }
.ac-grid { display: grid; gap: 10px; }
.ac-item {
  display: grid; grid-template-columns: 1fr 30px 1.15fr; gap: 10px; align-items: center;
  padding: 12px 15px; border-radius: 11px;
  background: rgba(6,21,36,.42); border: 1px solid rgba(255,255,255,.07);
}
@media (max-width: 720px) {
  .ac-item { grid-template-columns: 1fr; gap: 6px; }
  .ac-item .ac-arrow { transform: rotate(90deg); justify-self: start; }
}
.ac-item .ac-bad { color: rgba(190,210,230,.52); font-size: 13.6px; }
.ac-item .ac-arrow { color: var(--cyan-2); text-align: center; font-size: 15px; }
.ac-item .ac-good { color: #fff; font-size: 13.9px; font-weight: 600; }
.ac-item .ac-good::before { content: "\2713  "; color: var(--cyan-2); font-weight: 800; }

.assure-foot { display: flex; flex-wrap: wrap; gap: 24px; justify-content: center; margin-top: 26px; }
.assure-foot a { color: rgba(224,239,255,.78); font-size: 14.2px; border-bottom: 1px solid rgba(224,239,255,.3); padding-bottom: 2px; }
.assure-foot a:hover { color: #fff; border-color: var(--cyan-2); }
.assure-foot a span { color: var(--cyan-2); }

/* =========================================================================
   首页「公司实力」补充：资质与作业留档
   -------------------------------------------------------------------------
   资质证件沿用 about.html 的原图（已脱敏、已裁成正面卡），这里只做缩略入口，
   点进去看大图；作业实拍取自机房作业、整机吊装、压缩机解体的自有素材。
   ========================================================================= */
.strength-band { margin-top: 46px; display: grid; gap: 32px; }
.sb-head {
  display: flex; align-items: baseline; justify-content: space-between;
  gap: 14px; flex-wrap: wrap; margin-bottom: 15px;
}
.sb-head b { font-size: 17px; }
.sb-head span { font-size: 13.6px; color: var(--muted); }
.sb-head a { font-size: 13.6px; white-space: nowrap; }
.sb-row { display: grid; gap: 14px; grid-template-columns: repeat(4, 1fr); }
.sb-item {
  display: block; border-radius: 12px; overflow: hidden; background: #fff;
  border: 1px solid var(--line); text-decoration: none;
  transition: transform .25s, box-shadow .25s, border-color .25s;
}
.sb-item:hover { transform: translateY(-3px); box-shadow: var(--shadow-sm); border-color: #cfe1f2; }
/* 留档行 16:9：素材里三张是 1920x720 宽幅，4:3 会放大约 1.5 倍裁成局部特写，
   16:9 裁切最少、画面最完整（水系统那张 4:3 竖些，裁上下少量） */
.sb-item img { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
/* 证书是 1.6:1 的正面卡，用 contain 完整显示，不裁掉边角 */
.sb-item.is-cert img { aspect-ratio: 8 / 5; object-fit: contain; background: var(--bg-soft); padding: 6px; }
.sb-item i { display: block; padding: 10px 12px; font-style: normal; font-size: 12.8px; line-height: 1.5; color: var(--ink-2); }
@media (max-width: 980px) { .sb-row { grid-template-columns: repeat(2, 1fr); } .strength-band { margin-top: 36px; } }
@media (max-width: 520px) { .sb-row { grid-template-columns: 1fr; } }

/* =========================================================================
   首页「服务项目」：旗舰卡 + 常规卡
   -------------------------------------------------------------------------
   七类业务按「主机优先」排序：离心 / 螺杆 / 溴化锂，多联机·模块机合一张，
   再水系统 / 年度维保 / 改造回收。首卡横跨整行作旗舰卡（版面的视觉锚点），
   其余 6 张两行三列 —— 7 张正好铺满，不出现孤卡。
   每张卡都带「预约检修 / 查看收费公示 / 对应案例」三个转化入口。
   ========================================================================= */
.sv-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.sv-card {
  display: flex; flex-direction: column; overflow: hidden;
  background: #fff; border: 1px solid var(--line); border-radius: var(--radius);
  transition: transform .25s, box-shadow .25s, border-color .25s;
}
.sv-card:hover { transform: translateY(-4px); box-shadow: var(--shadow); border-color: #cfe1f2; }
.sv-media { position: relative; overflow: hidden; background: var(--bg-soft); }
.sv-media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.sv-card .sv-media { aspect-ratio: 4 / 3; }
.sv-badge {
  position: absolute; left: 12px; top: 12px; z-index: 2;
  padding: 5px 11px; border-radius: 999px;
  font-size: 11.8px; font-weight: 650; letter-spacing: .02em;
  background: rgba(10, 77, 140, .94); color: #fff;
  box-shadow: 0 2px 10px rgba(0, 0, 0, .25);
}
.sv-body { display: flex; flex-direction: column; flex: 1; padding: 20px 22px 22px; }
.sv-body h3 { font-size: 17.5px; margin-bottom: 10px; }
.sv-body p { color: var(--muted); font-size: 14px; line-height: 1.7; }
.sv-cta { display: flex; flex-wrap: wrap; align-items: center; gap: 9px; margin-top: auto; padding-top: 16px; }
.sv-link { font-size: 13.5px; color: var(--brand-2); white-space: nowrap; }
.sv-link:hover { text-decoration: underline; }
/* 旗舰卡：图左文右。高度由图片的 16:9 决定，文字列垂直居中 ——
   媒体框不要写 height:100%，否则会跟着文字高度被撑成竖条。 */
.sv-card.is-hero { grid-column: 1 / -1; display: grid; grid-template-columns: 1.12fr 1fr; align-items: center; }
.sv-card.is-hero .sv-media { aspect-ratio: 16 / 9; }
.sv-card.is-hero .sv-body { padding: 30px 34px; }
.sv-card.is-hero .sv-body h3 { font-size: clamp(20px, 2.3vw, 26px); }
.sv-card.is-hero .sv-body p { font-size: 15px; }
@media (max-width: 980px) {
  .sv-grid { grid-template-columns: repeat(2, 1fr); gap: 18px; }
  .sv-card.is-hero { grid-template-columns: 1fr; }
  .sv-card.is-hero .sv-body { padding: 22px 24px 26px; }
}
@media (max-width: 620px) {
  .sv-grid { grid-template-columns: 1fr; }
  .sv-card .sv-media, .sv-card.is-hero .sv-media { aspect-ratio: 3 / 2; }
}

/* =========================================================================
   V13 · 服务覆盖城市：分档图例 + 可点反馈 + 引导面板
   问题：14 个城市胶囊本身都是链接，但视觉上像静态标签，访客不知道能点；
   下面一行孤立的「查看 14 市州服务详情」与上方覆盖说明脱节，
   看不出它与「覆盖」的关系、点进去能得到什么。
   处理：① 图例把「有实绩 / 服务覆盖」两档讲清；
        ② 胶囊补 hover 反馈 + 整块可点；
        ③ 孤立链接升级为「提问 + 说明 + 按钮」的引导面板。
   ========================================================================= */
.area-legend {
  display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 24px;
  margin: 0 auto 18px; font-size: 12.5px; color: var(--muted);
}
.area-legend > span { display: inline-flex; align-items: center; gap: 7px; }
.al-dot {
  width: 9px; height: 9px; border-radius: 50%; flex: 0 0 auto;
  background: transparent; border: 1.5px solid var(--muted);
}
.al-dot.is-real { background: var(--brand-2); border-color: var(--brand-2); }

.city-grid span {
  position: relative; cursor: pointer;
  transition: background .18s ease, transform .18s ease,
              border-color .18s ease, box-shadow .18s ease;
}
.city-grid span a { color: inherit; }
/* 伪元素铺满胶囊，让整块都成为点击热区（hover 会冒泡回 span 触发悬停态） */
.city-grid span a::after { content: ""; position: absolute; inset: 0; }
.city-grid span.is-real::after {
  content: ""; position: absolute; top: 8px; right: 10px;
  width: 6px; height: 6px; border-radius: 50%; background: var(--brand-2);
}
.city-grid span:hover {
  background: var(--brand); border-color: var(--brand);
  transform: translateY(-2px); box-shadow: 0 8px 16px rgba(10, 77, 140, .18);
}
.city-grid span:hover a { color: #fff; }
.city-grid span.is-real:hover::after { background: #fff; }

.area-more {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between;
  gap: 16px 26px; max-width: 880px; margin: 24px auto 0;
  padding: 18px 24px; border-radius: 14px;
  background: var(--brand-soft); border: 1px solid rgba(10, 77, 140, .14);
}
.area-more-txt b { display: block; margin-bottom: 5px; font-size: 15px; color: var(--ink-2); }
.area-more-txt p { margin: 0; max-width: 560px; font-size: 13px; line-height: 1.72; color: var(--muted); }
.area-more > .btn { flex: 0 0 auto; }

@media (max-width: 620px) {
  .area-more { padding: 16px 18px; }
  .area-more > .btn { width: 100%; justify-content: center; }
}

/* =========================================================================
   V14 · 业务大类详情页（service-centrifugal / service-screw / service-others）
   工业风 B 端版式：故障卡 / 服务项 / 案例小卡 / FAQ 折叠 / 底部 CTA 通栏。
   全部基于站点既有变量，配色与 .city-hub / .svc 体系一致。
   ========================================================================= */
.svc-faults { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.svc-fault {
  background: var(--bg-soft); border: 1px solid rgba(10, 77, 140, .10);
  border-radius: 14px; padding: 20px 22px;
}
.svc-fault h3 { font-size: 16px; margin: 0 0 10px; color: var(--ink-2); line-height: 1.45; }
.svc-fault dl { margin: 0; font-size: 13.2px; line-height: 1.72; color: var(--muted); }
.svc-fault dt { font-weight: 600; color: var(--ink-2); margin-top: 9px; }
.svc-fault dt:first-child { margin-top: 0; }
.svc-fault dd { margin: 2px 0 0; }

.svc-list { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.svc-item {
  display: flex; gap: 14px; background: #fff;
  border: 1px solid rgba(10, 77, 140, .10); border-radius: 14px; padding: 18px 20px;
}
.svc-item i {
  font-style: normal; flex: 0 0 auto; width: 34px; height: 34px; border-radius: 10px;
  background: var(--brand-soft); color: var(--brand); font-weight: 700;
  display: flex; align-items: center; justify-content: center; font-size: 15px;
}
.svc-item h3 { font-size: 15px; margin: 0 0 6px; color: var(--ink-2); }
.svc-item p { font-size: 13px; color: var(--muted); line-height: 1.7; margin: 0 0 8px; }
.svc-item .sc-more { font-size: 12.8px; font-weight: 600; color: var(--brand-2); }

.svc-cases { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.svc-case {
  display: block; background: #fff; border: 1px solid rgba(10, 77, 140, .10);
  border-radius: 14px; overflow: hidden;
  transition: transform .18s ease, box-shadow .18s ease;
}
.svc-case:hover { transform: translateY(-3px); box-shadow: 0 12px 24px rgba(10, 77, 140, .12); }
.svc-case .sc-media { aspect-ratio: 16 / 10; overflow: hidden; }
.svc-case .sc-media img { width: 100%; height: 100%; object-fit: cover; }
.svc-case .sc-body { padding: 16px 18px 18px; }
.svc-case .sc-body h3 { font-size: 14.5px; line-height: 1.55; margin: 0 0 8px; color: var(--ink-2); }
.svc-case .sc-body p { font-size: 12.5px; color: var(--muted); margin: 0 0 10px; }
.svc-case .sc-link { font-size: 13px; font-weight: 600; color: var(--brand-2); }

.svc-faq { max-width: 880px; margin: 0 auto; }
.svc-faq details {
  background: var(--bg-soft); border: 1px solid rgba(10, 77, 140, .10);
  border-radius: 12px; padding: 14px 20px; margin-bottom: 12px;
}
.svc-faq summary { cursor: pointer; font-weight: 600; font-size: 14.5px; color: var(--ink-2); }
.svc-faq details p { margin: 10px 0 0; font-size: 13.2px; line-height: 1.75; color: var(--muted); }

.svc-band {
  background: linear-gradient(135deg, #0b1a2b, #123a5c);
  border-radius: 18px; padding: 38px 30px; text-align: center;
}
.svc-band h2 { color: #fff; font-size: clamp(19px, 2.2vw, 24px); margin: 0 0 10px; }
.svc-band p { color: rgba(255, 255, 255, .78); font-size: 14px; margin: 0 0 20px; }

@media (max-width: 980px) {
  .svc-faults, .svc-list, .svc-cases { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 620px) {
  .svc-faults, .svc-list, .svc-cases { grid-template-columns: 1fr; }
  .svc-band { padding: 30px 18px; }
}


/* =========================================================================
   V15 · 业务大类引导网格
   —— services.html 主入口「按业务大类了解详情」+ 详情页底部「相关业务大类」
   设计要点：不只是列 7 个链接，而是先给「怎么对号入座」的判别引导，
   再按「主机类 / 系统与服务类」分组，每卡写明何时该找我们 + 真实案例数。
   ========================================================================= */
.cat-guide {
  display: flex; gap: 16px; align-items: center;
  padding: 18px 22px; margin-bottom: 26px; border-radius: 16px;
  background: linear-gradient(120deg, rgba(30, 154, 214, .10), rgba(10, 77, 140, .05));
  border: 1px solid rgba(30, 154, 214, .30);
}
.cat-guide-mark {
  flex: 0 0 auto; width: 38px; height: 38px; border-radius: 50%;
  background: var(--brand); color: #fff; font-weight: 700; font-size: 19px;
  display: grid; place-items: center;
}
.cat-guide-txt { flex: 1 1 auto; min-width: 0; }
.cat-guide-txt b { display: block; font-size: 15.5px; color: var(--ink); margin-bottom: 6px; }
.cat-guide-txt p { margin: 0; font-size: 13.6px; line-height: 1.8; color: var(--muted); }
.cat-guide-txt p b { display: inline; font-size: inherit; font-weight: 600; color: var(--brand); }
.cat-guide > .btn { flex: 0 0 auto; }
@media (max-width: 760px) {
  .cat-guide { flex-direction: column; align-items: flex-start; gap: 12px; }
}

.cat-group + .cat-group { margin-top: 32px; }
.cat-group-title {
  display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
  margin: 0 0 15px; font-size: 15.5px; font-weight: 700; color: var(--ink);
}
.cat-group-title i {
  flex: 0 0 auto; width: 24px; height: 24px; border-radius: 8px;
  background: var(--brand-soft); color: var(--brand);
  display: grid; place-items: center; font-style: normal; font-size: 13px; font-weight: 700;
}
.cat-group-title span { font-size: 13px; font-weight: 400; color: var(--muted); }

.cat-grid { display: grid; gap: 16px; }
.cat-grid.cols-3 { grid-template-columns: repeat(3, 1fr); }
.cat-grid.cols-4 { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 1000px) { .cat-grid.cols-4 { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 900px) { .cat-grid.cols-3 { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 620px) { .cat-grid.cols-3, .cat-grid.cols-4 { grid-template-columns: 1fr; } }

.cat-card {
  position: relative; display: flex; flex-direction: column;
  padding: 20px 20px 16px; border-radius: 16px;
  background: var(--bg); border: 1px solid var(--line); box-shadow: var(--shadow-sm);
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.cat-card:hover { transform: translateY(-3px); border-color: #cfe1f2; box-shadow: var(--shadow); }
.cat-card.is-main { border-color: rgba(10, 77, 140, .22); }
.cat-top { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 13px; }
.cat-ico {
  flex: 0 0 auto; width: 42px; height: 42px; border-radius: 12px;
  display: grid; place-items: center; font-size: 19px; font-weight: 700; color: #fff;
  background: linear-gradient(135deg, var(--brand), var(--brand-3));
}
.cat-badge {
  font-size: 11.6px; padding: 4px 10px; border-radius: 999px; white-space: nowrap;
  color: var(--brand); background: var(--brand-soft); border: 1px solid rgba(10, 77, 140, .12);
}
.cat-badge.is-hot { color: #b42318; background: rgba(192, 57, 43, .07); border-color: rgba(192, 57, 43, .22); }
.cat-card h3 { margin: 0 0 8px; font-size: 16.5px; line-height: 1.42; color: var(--ink); }
.cat-card > p { flex: 1 1 auto; margin: 0; font-size: 13.4px; line-height: 1.75; color: var(--ink-2); }
.cat-card .ex-tags { margin-top: 12px; }
.cat-foot {
  margin-top: 14px; padding-top: 12px; border-top: 1px dashed var(--line);
  display: flex; align-items: center; justify-content: space-between; gap: 10px;
}
.cat-stat { font-size: 12.6px; color: var(--muted); }
.cat-go { font-size: 13.2px; font-weight: 600; color: var(--brand); white-space: nowrap; }
.cat-card:hover .cat-go { color: var(--brand-2); }

.cat-foot-note { margin: 26px 0 0; text-align: center; font-size: 13.6px; line-height: 1.8; color: var(--muted); }
.cat-foot-note a { color: var(--brand); font-weight: 600; border-bottom: 1px dashed rgba(10, 77, 140, .35); }
.cat-foot-note a:hover { color: var(--brand-2); }

/* 详情页底部「相关业务大类」：同一套卡片，内容更精简 */
.cat-grid--related .cat-card { padding: 16px 17px 13px; }
.cat-grid--related .cat-ico { width: 34px; height: 34px; border-radius: 10px; font-size: 16px; }
.cat-grid--related .cat-card h3 { font-size: 15px; margin-bottom: 6px; }
.cat-grid--related .cat-card > p { font-size: 12.8px; line-height: 1.7; }
.cat-grid--related .cat-foot { margin-top: 12px; padding-top: 10px; }


/* =========================================================================
   V16 · 冷水空调关键词落地 + 电话号码不折行
   1) .seo-note  首页「冷水空调维修 · 服务范围说明」文字块（低调、信息型）
   2) .footer-seo 页脚服务关键词链（全站单一源头 site.js 输出）
   3) 电话号码在任何容器内保持一整行（联系我们/顶部条/表单提示/页脚）
   ========================================================================= */
.seo-note {
  margin-top: 34px; padding: 22px 26px; border-radius: 16px;
  background: var(--bg); border: 1px solid var(--line);
}
.seo-note-t { margin: 0 0 10px; font-size: 15.5px; font-weight: 700; color: var(--ink); }
.seo-note p { margin: 0; font-size: 13.5px; line-height: 1.95; color: var(--muted); }
.seo-note p b { font-weight: 600; color: var(--ink-2); }
.seo-note-links { margin-top: 10px !important; display: flex; flex-wrap: wrap; gap: 4px 0; align-items: center; }
.seo-note-links a {
  color: var(--brand); font-weight: 600; white-space: nowrap;
}
.seo-note-links a::after { content: "·"; margin: 0 9px; color: var(--line); font-weight: 400; }
.seo-note-links a:last-child::after { content: ""; margin: 0; }

.footer-seo {
  margin-top: 14px; padding-top: 14px; border-top: 1px solid rgba(255, 255, 255, .10);
  font-size: 12.6px; line-height: 1.9; color: rgba(255, 255, 255, .55);
}
.footer-seo a { color: rgba(255, 255, 255, .72); }
.footer-seo a:hover { color: #fff; }

/* —— 电话号码永不折行：联系我们信息块、顶部条、表单红条、页脚 —— */
[data-site="hotline"], [data-site="emergency"] {
  white-space: nowrap; font-variant-numeric: tabular-nums;
}
a[data-site-tel] { white-space: nowrap; }
.info-item span[data-site="hotline"], .info-item span[data-site="emergency"] {
  font-size: 19px; font-weight: 800; letter-spacing: .4px; word-break: keep-all; overflow-wrap: normal;
}
.info-item[data-contact="emergency"] span[data-site="emergency"] { color: var(--danger); }
.info-item[data-contact="hotline"] span[data-site="hotline"] { color: var(--brand); }
.form-hint a[data-site-tel] { font-weight: 700; font-size: 1.06em; padding: 0 2px; }
/* 抢修红条里的值班电话：放大加粗、整行不折，一眼可读可点 */
.intent-tip a[data-site-tel] {
  display: inline-block; white-space: nowrap; font-weight: 800;
  font-size: 17.5px; letter-spacing: .4px; padding: 0 4px; line-height: 1.5;
  font-variant-numeric: tabular-nums;
}
.intent-tip.is-urgent a[data-site-tel] { color: #c62f1b; border-bottom: 2px solid rgba(198, 47, 27, .35); }
.intent-tip.is-quote a[data-site-tel] { color: var(--brand); }


/* =========================================================================
   V17 · 大类卡片整卡可点（stretched link）+ 底部案例/视频直达链接
   背景：cat-card 原为整卡 <a>，底部的案例数/视频数只是文字不可点，
   用户反馈「现场案例 / 现场视频链接位置不对应」。现改为：
   标题 stretched-link 覆盖整卡，底部两个直达链接 z-index 更高可独立点击。
   ========================================================================= */
.cat-card { position: relative; }
.cat-mainlink { color: inherit; text-decoration: none; }
.cat-mainlink::after { content: ""; position: absolute; inset: 0; z-index: 1; border-radius: inherit; }
.cat-card .cat-foot { position: relative; z-index: 2; }
.cat-links { display: flex; flex-wrap: wrap; gap: 2px 12px; font-size: 12.6px; align-items: center; }
.cat-links a { color: var(--muted); white-space: nowrap; font-weight: 500; }
.cat-links a:hover { color: var(--brand); }
.cat-foot .cat-go { font-size: 13.2px; font-weight: 600; color: var(--brand); white-space: nowrap; }


/* =========================================================================
   V18 · 案例卡版面协调化
   ① 视频条 c4-videostrip 提为整卡第三个 grid 子项（grid-column: 1/-1），
      不再挤在右栏把右栏拉长 —— 那会让左栏下方出现大块留白（用户多次反馈）。
   ② 左栏封面 c4m-cover 允许 flex 伸展填满左栏（保底 300px），
      竖版封面随卡片高度自适应，彻底消灭底部留白；≤980px 单列布局不受影响。
   ========================================================================= */
.case4.case4-wide .c4m-cover {
  flex: 1 1 auto;
  min-height: 300px;
  aspect-ratio: 3 / 4;
}
@media (max-width: 980px) {
  .case4.case4-wide .c4m-cover { flex: 0 0 auto; min-height: 0; aspect-ratio: 4 / 3; }
}

.c4-videostrip {
  grid-column: 1 / -1;
  margin: 2px 26px 24px;
  padding-top: 14px;
  border-top: 1px dashed var(--line);
}
.c4-videostrip .c4-gallery-cap { margin-bottom: 12px; }
/* 整卡宽度下不用固定 3 等分（那样 1-2 段视频会被拉到 400px 宽、700px+ 高，
   卡片虚胖且 2 段占 3 列留空位）；改为定宽小卡自动排布，1-4 段都协调 */
.c4-videostrip .c4-videos {
  grid-template-columns: repeat(auto-fill, minmax(200px, 236px));
  justify-content: center;
  margin-top: 0;
}
@media (max-width: 980px) { .c4-videostrip { margin: 0 18px 18px; } }
@media (max-width: 620px) { .c4-videostrip { margin: 0 14px 14px; } }

/* 案例卡底部互链带：品牌维修页 + 机型业务详情页（各 1 条，只在有依据时出现）。
   整卡第四个 grid 子项，横跨两栏，与视频条同宽。 */
.c4-links {
  grid-column: 1 / -1;
  display: flex;
  flex-wrap: wrap;
  gap: 10px 22px;
  margin: 0 26px 22px;
  padding-top: 12px;
  border-top: 1px dashed var(--line);
  font-size: 13.2px;
}
.c4-links .c4-link {
  color: var(--brand);
  font-weight: 600;
  text-decoration: none;
  transition: color .16s ease;
}
.c4-links .c4-link:hover { color: var(--brand-2); text-decoration: underline; }
@media (max-width: 980px) { .c4-links { margin: 0 18px 18px; } }
@media (max-width: 620px) { .c4-links { margin: 0 14px 14px; font-size: 12.8px; gap: 8px 16px; } }

/* 「按机组品牌」chip 里的条数角标 */
.brand-chip .brand-chip-n {
  display: inline-block;
  min-width: 17px;
  margin-left: 6px;
  padding: 0 5px;
  border-radius: 9px;
  background: var(--bg-soft);
  color: var(--muted);
  font-size: 11.4px;
  font-weight: 700;
  line-height: 17px;
  text-align: center;
}
.brand-chip.on .brand-chip-n { background: rgba(255, 255, 255, .9); color: var(--brand); }
#f-brand .brand-chip { white-space: nowrap; }

/* ==========================================================
   V19 · 品牌维修落地页（repair-*.html）+ brand-links 站内入口
   ---------------------------------------------------------- */
/* brand-links 品牌卡底部的「旭湘品牌页」入口行 */
.bl-mine {
  margin-top: 12px;
  padding-top: 10px;
  border-top: 1px dashed var(--line);
  font-size: 13px;
}
.bl-mine a { color: var(--brand); font-weight: 600; }

/* ==========================================================
   服务大类页底部「相关技术文章」（P1-4）
   ---------------------------------------------------------- */
/* 紧凑 chip 式卡片：与 .rel-band 同族的克制版式，
   避免在 FAQ 之上再堆一个整屏大区块把页面拉长。 */
.svc-articles {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 12px;
  margin-top: 26px;
}
.svc-art {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 14px 18px;
  background: var(--card, #fff);
  border: 1px solid var(--line);
  border-left: 3px solid var(--brand);
  border-radius: 0 10px 10px 0;
  text-decoration: none;
  transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease;
}
.svc-art:hover {
  border-color: var(--brand);
  box-shadow: 0 6px 18px rgba(11, 26, 43, .07);
  transform: translateY(-1px);
}
.svc-art .sa-t {
  font-size: 14.2px;
  font-weight: 600;
  line-height: 1.5;
  color: var(--ink, #16283d);
}
.svc-art .sa-m {
  flex: 0 0 auto;
  font-size: 12.6px;
  font-weight: 700;
  color: var(--brand);
  white-space: nowrap;
}
.svc-art:hover .sa-m { color: var(--brand-2); }
@media (max-width: 620px) {
  .svc-articles { grid-template-columns: 1fr; gap: 10px; }
  .svc-art { padding: 12px 14px; }
  .svc-art .sa-t { font-size: 13.6px; }
}
.bl-mine a:hover { text-decoration: underline; }
/* 故障代码库品牌块头部的「品牌维修页」直达链接 */
.fc-brand-link {
  margin-left: auto;
  font-size: 13px;
  font-weight: 600;
  color: var(--brand);
  white-space: nowrap;
}
.fc-brand-link:hover { text-decoration: underline; }
/* 机型表上方的固定操作条：查完代码的下一步出口 */
.fc-actbar {
  display: flex; align-items: center; flex-wrap: wrap; gap: 8px 16px;
  margin: 0 0 12px;
  padding: 10px 14px;
  border: 1px solid var(--line-2);
  border-left: 3px solid var(--brand);
  border-radius: 9px;
  background: linear-gradient(180deg, #fbfdff, #fff);
  font-size: 13px;
}
.fc-actbar-t { color: #4a5c70; font-weight: 650; }
.fc-actbar a { color: var(--brand); font-weight: 600; white-space: nowrap; }
.fc-actbar a:hover { text-decoration: underline; }
.fc-actbar .fc-act-go {
  padding: 5px 13px; border-radius: 999px;
  background: var(--brand); color: #fff !important;
}
.fc-actbar .fc-act-go:hover { text-decoration: none; background: var(--brand-2); }
@media (max-width: 640px) {
  .fc-actbar { gap: 7px 12px; padding: 10px 12px; font-size: 12.4px; }
  .fc-actbar .fc-act-go { padding: 4px 11px; }
}
/* 案例卡「项目档案」条：客户/机型/规模/场景 四字段一行，窄列自动换行 */
.c4-archive {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 10px 22px;
  margin: 14px 0 4px;
  padding: 13px 18px;
  background: rgba(10, 77, 140, .045);
  border: 1px solid var(--line);
  border-radius: 12px;
}
.c4-archive i {
  display: block;
  font-style: normal;
  font-size: 11.5px;
  letter-spacing: 1.5px;
  color: #5b7186;
  margin-bottom: 3px;
}
.c4-archive b { font-size: 13.5px; font-weight: 600; color: inherit; line-height: 1.55; word-break: break-all; }
/* cases 页行业入口卡：点击等价于选行业 chip */
.ind-entry {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  gap: 14px;
}
.ind-card {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 14px 16px;
  text-align: left;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 12px;
  cursor: pointer;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
  font: inherit;
}
.ind-card:hover {
  transform: translateY(-2px);
  border-color: var(--brand);
  box-shadow: 0 10px 22px rgba(10, 77, 140, .12);
}
.ind-card .ind-ico {
  flex: 0 0 auto;
  width: 38px; height: 38px;
  display: grid; place-items: center;
  border-radius: 10px;
  background: rgba(10, 77, 140, .08);
  color: var(--brand);
  font-size: 17px;
  font-weight: 700;
}
.ind-card .ind-txt { display: block; min-width: 0; }
.ind-card .ind-txt b { display: block; font-size: 14.5px; color: var(--ink); }
.ind-card .ind-txt i { display: block; font-style: normal; font-size: 12.5px; line-height: 1.6; color: var(--muted); margin: 4px 0 6px; }
.ind-card .ind-txt em { display: block; font-style: normal; font-size: 12px; font-weight: 600; color: var(--brand); }

/* ==========================================================
   V20 · 业务页 B/G 端客户场景 + 政府采购配套模块
   ---------------------------------------------------------- */
.cl-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 16px;
  margin-bottom: 16px;
}
.cl-card {
  padding: 20px 22px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 14px;
}
.cl-card h3 { font-size: 16px; margin: 0 0 8px; color: var(--ink); }
.cl-card p { margin: 0; font-size: 13.5px; line-height: 1.9; color: var(--muted); }
.cl-card--gov {
  background: linear-gradient(135deg, rgba(10, 77, 140, .05), rgba(10, 77, 140, .10));
  border-color: rgba(10, 77, 140, .25);
}
.gov-panel {
  padding: 22px 26px;
  background: #fff;
  border: 1px solid var(--line);
  border-left: 4px solid var(--brand);
  border-radius: 14px;
}
.gov-panel h3 { font-size: 15.5px; margin: 0 0 12px; color: var(--ink); }
.gov-panel ul { margin: 0; padding: 0; list-style: none; }
.gov-panel li {
  font-size: 13.5px;
  line-height: 1.9;
  color: var(--muted);
  padding: 7px 0 7px 18px;
  position: relative;
}
.gov-panel li + li { border-top: 1px dashed var(--line); }
.gov-panel li::before {
  content: "";
  position: absolute;
  left: 2px; top: 16px;
  width: 6px; height: 6px;
  border-radius: 50%;
  background: var(--brand);
}
.gov-panel li b { color: var(--ink); font-weight: 600; margin-right: 4px; }
/* 品牌页公开资料系列卡的备注行 */
.sc-note {
  display: block;
  margin-top: 8px;
  font-size: 12px;
  color: var(--muted);
  opacity: .85;
}

/* =========================================================================
   V21 · 隐私政策页 / 表单知情同意 / 公开表单收起态
   ========================================================================= */
.policy-wrap { max-width: 840px; margin: 0 auto; }
.policy-wrap .policy-meta {
  font-size: 13px; color: var(--muted); margin: 0 0 22px;
  padding-bottom: 14px; border-bottom: 1px solid var(--line);
}
.policy-wrap h2 { font-size: 18.5px; color: var(--ink); margin: 30px 0 10px; }
.policy-wrap h2:first-of-type { margin-top: 4px; }
.policy-wrap p { font-size: 14.6px; line-height: 1.95; color: var(--ink-2); margin: 0 0 10px; }
.policy-wrap ul { margin: 6px 0 12px; padding-left: 20px; }
.policy-wrap li { font-size: 14.4px; line-height: 1.9; color: var(--ink-2); margin: 5px 0; }
.policy-wrap .policy-box {
  margin: 14px 0 6px; padding: 16px 18px;
  border: 1px solid var(--line); border-left: 3px solid var(--brand);
  border-radius: 9px; background: rgba(30, 154, 214, .05);
  font-size: 14px; line-height: 1.9; color: var(--ink-2);
}
@media (max-width: 700px) {
  .policy-wrap h2 { font-size: 17px; }
  .policy-wrap p, .policy-wrap li { font-size: 14px; }
}

/* 表单知情同意勾选（隐私政策） */
.form-consent {
  display: flex; align-items: flex-start; gap: 9px;
  margin: 2px 0 12px; font-size: 13.2px; line-height: 1.75; color: var(--ink-2);
}
.form-consent input[type="checkbox"] {
  flex: 0 0 auto; width: 16px; height: 16px; margin-top: 3px;
  accent-color: var(--brand); cursor: pointer;
}
.form-consent label { cursor: pointer; }
.form-consent a { color: var(--brand); font-weight: 600; }

/* 公开表单收起态（备案审核期等） */
.form-gate {
  padding: 22px 24px; border: 1px solid var(--line); border-radius: 12px;
  background: rgba(30, 154, 214, .05);
}
.form-gate b { display: block; font-size: 16.5px; color: var(--ink); margin-bottom: 6px; }
.form-gate p { font-size: 14px; line-height: 1.9; color: var(--ink-2); margin: 0 0 14px; }
.form-gate-tel { display: flex; flex-wrap: wrap; gap: 10px; }

/* ---------------- V22 · 首页核心优势条（首屏下方 5 点卖点） ---------------- */
.adv-strip { padding: 30px 0 6px; }
.adv-grid {
  list-style: none; margin: 0; padding: 0;
  display: grid; grid-template-columns: repeat(5, 1fr); gap: 14px;
}
.adv-item {
  padding: 20px 18px 18px;
  border: 1px solid var(--line); border-radius: 14px;
  background: linear-gradient(180deg, #fff, #f7fafd);
  box-shadow: 0 1px 2px rgba(16, 42, 67, .04);
  transition: border-color .25s, box-shadow .25s, transform .25s;
}
.adv-item:hover {
  border-color: rgba(30, 154, 214, .42);
  box-shadow: 0 10px 26px rgba(16, 42, 67, .09);
  transform: translateY(-2px);
}
.adv-ico {
  display: inline-flex; align-items: center; justify-content: center;
  width: 38px; height: 38px; border-radius: 11px; margin-bottom: 12px;
  background: linear-gradient(135deg, rgba(30, 154, 214, .15), rgba(18, 194, 224, .10));
  color: var(--brand);
}
.adv-ico svg { width: 20px; height: 20px; }
.adv-item b { display: block; font-size: 14.8px; color: var(--ink); margin-bottom: 6px; letter-spacing: -.1px; line-height: 1.5; }
.adv-item > span:last-child { display: block; font-size: 13.1px; line-height: 1.75; color: var(--muted); }
@media (max-width: 1080px) {
  .adv-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 720px) {
  .adv-strip { padding: 22px 0 4px; }
  .adv-grid { grid-template-columns: repeat(2, 1fr); gap: 11px; }
  .adv-item { padding: 16px 14px 15px; }
  .adv-item b { font-size: 14.2px; }
  .adv-item > span:last-child { font-size: 12.6px; }
}
@media (max-width: 420px) {
  .adv-grid { grid-template-columns: 1fr; }
}

/* ===== V23 表单蜜罐（反垃圾）=====
   刻意不用 display:none —— 部分爬虫会跳过 display:none 的字段，改用移出可视区。
   真人看不见、读屏器忽略（aria-hidden），机器人按 name 盲填 → 提交时静默丢弃。 */
.hp-field {
  position: absolute !important;
  left: -9999px !important;
  top: auto;
  width: 1px; height: 1px;
  overflow: hidden;
  margin: 0; padding: 0;
  border: 0;
}

/* ===== V24 城市页模块 A 补充（产业机型 / 品牌入口 / 大修 / 本地案例）===== */
/* --- 模块② 产业机型 --- */
.city-ind-lead { text-align:center; font-size:13.8px; color:var(--muted); max-width:62em;
  margin:-4px auto 22px; line-height:1.8; }
/* 热泵口径行：机型段统一说明「与模块机同源 + 参照模块机计价」，避免各城各写一套 */
.city-ind-hp { text-align:center; font-size:13.2px; color:var(--ink-2); max-width:64em;
  margin:-6px auto 24px; line-height:1.85; background:var(--soft,#f2f7fb);
  border:1px solid var(--line,#dfe7ef); border-left:3px solid #1e9ad6;
  border-radius:8px; padding:11px 16px; }
.city-ind-hp a { color:#0a4d8c; text-decoration:none; border-bottom:1px solid rgba(10,77,140,.35); }
.city-ind-hp a:hover { border-bottom-color:#0a4d8c; }
.city-ind { position:relative; padding-top:20px; display:flex; flex-direction:column; }
.city-ind::before { content:""; position:absolute; top:0; left:0; right:0; height:3px;
  border-radius:3px 3px 0 0; background:linear-gradient(90deg, #0e6bb8, #1e9ad6); }
.city-ind-head { display:flex; align-items:center; gap:9px; margin-bottom:11px; }
.city-ind-no { flex:none; width:26px; height:26px; border-radius:8px; display:grid;
  place-items:center; font-size:12.5px; font-weight:800; color:#fff;
  background:linear-gradient(135deg, #0e6bb8, #1e9ad6); }
.city-ind-head h3 { font-size:16px; margin:0; }
.city-ind-scene { font-size:13.6px; color:var(--ink-2); line-height:1.8; margin:0 0 12px; }
.city-ind-fix { background:var(--bg-soft); border-radius:10px; padding:12px 14px; margin-top:auto; }
.city-ind-fix b { display:block; font-size:12.5px; color:var(--brand-2); margin-bottom:5px;
  letter-spacing:.4px; }
.city-ind-fix p { margin:0; font-size:13.3px; color:var(--ink-2); line-height:1.82; }

/* --- 模块③ 品牌入口 --- */
.city-brand-lead { font-size:13.6px; color:var(--muted); line-height:1.8; margin:0 0 16px; }
.city-brand-list { list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:10px; }
.city-brand-li { display:flex; align-items:center; gap:14px; justify-content:space-between;
  padding:13px 16px; background:var(--bg-soft); border-radius:10px; flex-wrap:wrap; }
.city-brand-info { display:flex; align-items:baseline; gap:12px; flex-wrap:wrap; }
.city-brand-info b { font-size:14.5px; color:var(--ink); }
.city-brand-info span { font-size:13px; color:var(--muted); line-height:1.7; }
.city-brand-link { flex:none; font-size:13px; font-weight:600; color:var(--brand-2);
  padding:6px 13px; border:1px solid rgba(10,77,140,.2); border-radius:999px;
  text-decoration:none; white-space:nowrap; transition:all .18s; }
.city-brand-link:hover { background:var(--brand-2); color:#fff; border-color:var(--brand-2); }
@media (max-width: 640px) {
  .city-brand-li { align-items:flex-start; }
  .city-brand-info { flex-direction:column; gap:3px; }
}

/* --- 模块④ 大修 --- */
.city-ov-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-bottom:18px; }
.city-ov-col { background:var(--bg-soft); border-radius:10px; padding:16px 18px; }
.city-ov-col h3 { font-size:14.5px; margin:0 0 9px; color:var(--ink); }
.city-ov-col p { margin:0; font-size:13.4px; color:var(--ink-2); line-height:1.85; }
.city-ov-price { background:linear-gradient(110deg, #0b1a2b, #0e3a63); border-radius:12px;
  padding:18px 20px; color:#fff; margin-bottom:18px; }
.city-ov-price b { display:block; font-size:14.5px; color:#fff; margin-bottom:8px; }
.city-ov-price p { margin:0 0 13px; font-size:13.4px; color:rgba(255,255,255,.8); line-height:1.85; }
.city-ov-price .btn-ghost { background:rgba(255,255,255,.08); border-color:rgba(255,255,255,.42);
  color:#fff; }
.city-ov-price .btn-ghost:hover { background:rgba(255,255,255,.16); border-color:#fff; }
.city-ov-cases h3 { font-size:14.5px; margin:0 0 12px; }
.city-ov-case-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.city-ov-case { display:block; padding:14px 16px; background:var(--bg-soft); border-radius:10px;
  text-decoration:none; color:inherit; border:1px solid transparent; transition:all .18s; }
.city-ov-case:hover { border-color:var(--brand-2); transform:translateY(-2px);
  box-shadow:0 8px 20px rgba(10,30,60,.09); }
.city-ov-case b { display:block; font-size:13.6px; color:var(--ink); margin-bottom:6px; line-height:1.6; }
.city-ov-case span { display:block; font-size:12.6px; color:var(--muted); line-height:1.72; }
.city-ov-case i { display:block; margin-top:9px; font-style:normal; font-size:12.4px;
  color:var(--brand-2); font-weight:600; }
@media (max-width: 720px) { .city-ov-grid, .city-ov-case-grid { grid-template-columns:1fr; } }

/* --- 模块⑤ 本地案例 --- */
.city-lc-lead { text-align:center; font-size:13.8px; color:var(--muted); max-width:62em;
  margin:-4px auto 22px; line-height:1.8; }
.city-lc-grid { margin-top:4px; }
.city-lc-card { display:block; text-decoration:none; color:inherit; background:var(--bg-soft);
  border-radius:12px; padding:18px 20px; border:1px solid transparent; transition:all .2s; }
.city-lc-card:hover { border-color:var(--brand-2); transform:translateY(-2px);
  box-shadow:0 10px 26px rgba(10,30,60,.10); }
.city-lc-badge { display:inline-block; font-size:11.5px; font-weight:700; color:#fff;
  background:linear-gradient(135deg, #1f8a55, #2aa86a); border-radius:999px;
  padding:3px 11px; margin-bottom:10px; letter-spacing:.3px; }
.city-lc-body b { display:block; font-size:14.8px; color:var(--ink); line-height:1.65; margin-bottom:8px; }
.city-lc-body p { margin:0; font-size:13.3px; color:var(--muted); line-height:1.82; }
.city-lc-body i { display:block; margin-top:11px; font-style:normal; font-size:12.6px;
  color:var(--brand-2); font-weight:600; }

/* 省外同工况实绩替代模块 */
.city-oc-note { background:#fff8e8; border:1px solid #f0dfb4; border-radius:10px;
  padding:15px 18px; margin-bottom:18px; }
.city-oc-note > b { display:block; font-size:13.5px; color:#8a6412; margin-bottom:8px; }
.city-oc-note p { margin:0 0 8px; font-size:13.2px; color:var(--ink-2); line-height:1.85; }
.city-oc-note p:last-child { margin-bottom:0; }
.city-oc-eta { border-top:1px dashed #ead9ac; padding-top:9px; }
.city-oc-eta b { color:#8a6412; }
.city-oc-card { display:block; padding:15px 17px; background:var(--bg-soft); border-radius:10px;
  text-decoration:none; color:inherit; border:1px solid transparent; transition:all .18s; }
.city-oc-card:hover { border-color:var(--brand-2); transform:translateY(-2px);
  box-shadow:0 8px 20px rgba(10,30,60,.09); }
.city-oc-card b { display:block; font-size:13.8px; color:var(--ink); margin-bottom:6px; line-height:1.6; }
.city-oc-card span { display:block; font-size:12.7px; color:var(--muted); line-height:1.75; }
.city-oc-card i { display:block; margin-top:9px; font-style:normal; font-size:12.4px;
  color:var(--brand-2); font-weight:600; }

/* 本市技术文章回链模块（文章↔城市页双向互链，2026-10-09 新增） */
.city-art-grid { margin-top:4px; }
.city-art-card { display:block; text-decoration:none; color:inherit; background:var(--bg-soft);
  border-radius:12px; padding:18px 20px; border:1px solid transparent; transition:all .2s; }
.city-art-card:hover { border-color:var(--brand-2); transform:translateY(-2px);
  box-shadow:0 10px 26px rgba(10,30,60,.10); }
.city-art-badge { display:inline-block; font-size:11.5px; font-weight:700; color:var(--brand);
  background:var(--brand-soft); border:1px solid rgba(10,77,140,.18); border-radius:999px;
  padding:3px 11px; margin-bottom:10px; letter-spacing:.3px; }
.city-art-card b { display:block; font-size:14.8px; color:var(--ink); line-height:1.65; margin-bottom:8px; }
.city-art-card p { margin:0; font-size:13.3px; color:var(--muted); line-height:1.82; }
.city-art-card i { display:block; margin-top:11px; font-style:normal; font-size:12.6px;
  color:var(--brand-2); font-weight:600; }

/* ===== V25 品牌入口矩阵（首页 / services / 品牌页实绩）===== */
/* 2026-10-09 美化：原为 4 列竖排大卡（单卡 81px 高、右侧大片留白），16 张占满一屏显得空旷。
   改为紧凑胶囊：品牌名与外文名同行、6 列密排、单卡高度 ~54px，一屏即可扫完全部品牌。
   链接数量与 DOM 结构不变（SEO 不受影响）。 */
.brand-matrix { display:grid; grid-template-columns:repeat(6, 1fr); gap:10px; }
.brand-matrix .brand-chip {
  display:flex; align-items:baseline; gap:7px; min-height:0;
  border:1px solid var(--line); border-radius:10px; background:#fff;
  padding:11px 14px; text-decoration:none;
  transition:border-color .18s, box-shadow .18s, transform .18s, background .18s;
}
.brand-matrix .brand-chip b { font-size:14.6px; color:var(--ink); font-weight:700; letter-spacing:.2px; white-space:nowrap; }
.brand-matrix .brand-chip span {
  font-size:11.2px; color:var(--muted); letter-spacing:.3px; font-weight:500;
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap; min-width:0;
}
.brand-matrix .brand-chip:hover {
  border-color:#cfe1f2; background:var(--brand-soft);
  box-shadow:0 6px 16px rgba(10,30,60,.07); transform:translateY(-1px);
}
.brand-matrix .brand-chip:hover b { color:var(--brand); }

/* 品牌页「湖南本地实绩 / 承接与响应」 */
.city-oc-eta { display:grid; grid-template-columns:repeat(4, 1fr); gap:12px; margin-top:16px; }
.city-oc-eta > div { background:#fff; border:1px solid var(--line); border-radius:11px;
  padding:14px 16px; text-align:center; }
.city-oc-eta b { display:block; font-size:13.6px; color:var(--brand); margin-bottom:5px; font-weight:700; }
.city-oc-eta span { font-size:12.6px; color:var(--muted); line-height:1.7; }

@media (max-width: 980px) {
  .brand-matrix { grid-template-columns:repeat(3, 1fr); }
  .city-oc-eta { grid-template-columns:repeat(2, 1fr); }
}
@media (max-width: 700px) {
  .brand-matrix { grid-template-columns:repeat(2, 1fr); gap:9px; }
}
@media (max-width: 560px) {
  .brand-matrix { grid-template-columns:1fr 1fr; gap:8px; }
  .brand-matrix .brand-chip { padding:9px 11px; gap:6px; }
  .brand-matrix .brand-chip b { font-size:13.6px; }
  .brand-matrix .brand-chip span { font-size:10.8px; }
  .city-oc-eta { grid-template-columns:1fr 1fr; gap:9px; }
}

/* 视觉隐藏但保留给屏幕阅读器与 SEO 结构化标题（用于补齐 h1→h3 之间的层级） */
.sr-only { position:absolute !important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }

/* =========================================================
   V24 · 首页意图分流三卡（Hero 正下方）
   三条通道对应三种来访意图：停机抢修 / 计划性询价 / 拿不准机型。
   第一张深底（.on-dark）承载全站唯一的红色主行动 .btn-danger + .btn-tel，
   按钮皮肤全部沿用 site.css 的 CTA 单一源头，本文件只写版式，不重写按钮。
   ========================================================= */
.intent-split { padding: 74px 0 26px; }
.intent-split .section-head { margin-bottom: 34px; }
.is-grid {
  display: grid; grid-template-columns: repeat(3, 1fr);
  grid-auto-rows: 1fr;            /* 等高：三张卡内容不等长也不塌 */
  gap: 20px; align-items: stretch;
}
.is-card {
  display: flex; flex-direction: column;
  padding: 28px 26px 24px;
  border: 1px solid var(--line); border-radius: 16px;
  background: #fff;
  box-shadow: 0 1px 2px rgba(16, 42, 67, .04), 0 8px 24px rgba(16, 42, 67, .05);
  transition: border-color .25s, box-shadow .25s, transform .25s;
}
.is-card:hover { transform: translateY(-3px); box-shadow: 0 16px 38px rgba(16, 42, 67, .10); }
.is-card:not(.is-urgent):hover { border-color: rgba(30, 154, 214, .40); }

.is-ico {
  display: inline-flex; align-items: center; justify-content: center;
  width: 42px; height: 42px; border-radius: 12px; margin-bottom: 14px;
  background: linear-gradient(135deg, rgba(30, 154, 214, .15), rgba(18, 194, 224, .10));
  color: var(--brand);
}
.is-ico svg { width: 21px; height: 21px; }

.is-tag {
  align-self: flex-start; margin-bottom: 10px;
  padding: 4px 11px; border-radius: 999px;
  font-size: 12.4px; font-weight: 700; letter-spacing: .2px;
  background: var(--brand-soft); color: var(--brand);
}
.is-card h3 { font-size: 20.5px; margin-bottom: 10px; color: var(--ink); }
.is-when { font-size: 14.6px; line-height: 1.85; color: var(--ink-2); }

.is-list { margin: 16px 0 0; display: grid; gap: 9px; }
.is-list li {
  position: relative; padding-left: 20px;
  font-size: 13.8px; line-height: 1.7; color: var(--muted);
}
.is-list li::before {
  content: ""; position: absolute; left: 4px; top: 8px;
  width: 7px; height: 7px; border-radius: 50%;
  background: var(--brand-3);
}
.is-list b { color: var(--ink-2); font-weight: 700; }

.is-cta { margin-top: auto; padding-top: 20px; display: flex; flex-wrap: wrap; gap: 10px; }
.is-cta .btn { flex: 1 1 auto; }
.is-foot {
  margin-top: 13px; padding-top: 13px; border-top: 1px dashed var(--line);
  font-size: 12.9px; line-height: 1.7; color: var(--muted);
}
.is-foot a { color: var(--brand); border-bottom: 1px solid rgba(30, 154, 214, .35); }
.is-foot a:hover { border-color: var(--brand); }

/* ---- 第一张：紧急抢修（深底 + 红色高亮） ---- */
.is-card.is-urgent {
  border-color: rgba(224, 82, 63, .38);
  background:
    radial-gradient(125% 92% at 100% 0%, rgba(224, 82, 63, .30), rgba(224, 82, 63, 0) 62%),
    linear-gradient(160deg, #18222f 0%, #0b1a2b 100%);
  box-shadow: 0 10px 30px rgba(11, 26, 43, .22), 0 2px 0 rgba(224, 82, 63, .55) inset;
}
.is-card.is-urgent:hover {
  border-color: rgba(224, 82, 63, .70);
  box-shadow: 0 18px 44px rgba(11, 26, 43, .30), 0 2px 0 rgba(224, 82, 63, .8) inset;
}
.is-urgent .is-ico {
  background: linear-gradient(135deg, rgba(224, 82, 63, .38), rgba(224, 82, 63, .16));
  color: #ffd9d3;
}
.is-urgent .is-tag { background: rgba(224, 82, 63, .22); color: #ffb9b0; }
.is-urgent h3 { color: #fff; }
.is-urgent .is-when { color: rgba(232, 241, 250, .82); }
.is-urgent .is-list li { color: rgba(232, 241, 250, .70); }
.is-urgent .is-list li::before { background: #ff8f7e; }
.is-urgent .is-list b { color: #fff; }
.is-urgent .is-foot { border-top-color: rgba(255, 255, 255, .16); color: rgba(232, 241, 250, .60); }
.is-urgent .is-foot a { color: #ffb9b0; border-bottom-color: rgba(255, 185, 176, .45); }

@media (max-width: 1080px) {
  .is-grid { grid-template-columns: repeat(2, 1fr); }
  .is-card.is-urgent { grid-column: 1 / -1; }   /* 抢修卡在窄屏独占一行，保持最强入口 */
}
@media (max-width: 720px) {
  .intent-split { padding: 46px 0 14px; }
  .is-grid { grid-template-columns: 1fr; gap: 14px; }
  .is-card { padding: 22px 18px 20px; }
  .is-card h3 { font-size: 18.6px; }
  .is-cta .btn { width: 100%; }
}

/* =========================================================
   V24b · 首页「机型 × 业务」速查矩阵表
   行=8 类机组（equipment 真实值），列=业务五个维度。
   数据口径：案例数取自云库 cases 表（2026-10-09 实测 42 条），
   溴化锂/工业冷水机在故障代码库无命中 → 不放假链接，写「以随机资料为准」。
   ========================================================= */
.mx-wrap {
  background: #fff; border: 1px solid var(--line); border-radius: 16px;
  box-shadow: var(--shadow-sm);
  overflow-x: auto;                 /* 窄屏横向滚动，表格不挤爆 */
  -webkit-overflow-scrolling: touch;
}
.mx-table { width: 100%; border-collapse: collapse; min-width: 860px; font-size: 14.2px; }
.mx-table thead th {
  padding: 15px 18px; text-align: left; white-space: nowrap;
  font-size: 13.2px; font-weight: 700; letter-spacing: .4px;
  color: var(--muted); background: var(--bg-soft);
  border-bottom: 1px solid var(--line);
}
.mx-table tbody th {
  padding: 17px 18px; text-align: left; vertical-align: top;
  border-bottom: 1px solid var(--line-2); width: 220px;
}
.mx-table tbody th b { display: block; font-size: 15.4px; color: var(--ink); letter-spacing: -.1px; }
.mx-table tbody th span { display: block; margin-top: 4px; font-size: 12.4px; color: var(--muted); }
.mx-table tbody td { padding: 17px 16px; border-bottom: 1px solid var(--line-2); vertical-align: top; }
.mx-table tbody tr:last-child th, .mx-table tbody tr:last-child td { border-bottom: 0; }
.mx-table tbody tr { transition: background .2s; }
.mx-table tbody tr:hover { background: #f8fbfe; }
.mx-table td a {
  display: inline-block; line-height: 1.6;
  color: var(--brand-2); font-weight: 500;
  border-bottom: 1px dashed rgba(30, 154, 214, .45);
  transition: color .2s, border-color .2s;
}
.mx-table td a:hover { color: var(--brand); border-bottom-color: var(--brand); }
.mx-table td:nth-child(3) a { font-weight: 700; }
.mx-none { color: #9aa9ba; font-size: 13px; }
.mx-note {
  margin-top: 18px; text-align: center; font-size: 14.2px; color: var(--muted);
}
.mx-note a { color: var(--brand); border-bottom: 1px solid rgba(30, 154, 214, .35); }
.mx-note a:hover { border-color: var(--brand); }

@media (max-width: 720px) {
  .mx-table { min-width: 760px; font-size: 13.4px; }
  .mx-table thead th, .mx-table tbody th, .mx-table tbody td { padding: 12px 12px; }
  .mx-wrap { border-radius: 12px; }
  .mx-wrap::after {
    content: "左右滑动查看 →"; display: block;
    padding: 9px 12px; font-size: 12px; color: var(--muted);
    background: var(--bg-soft); border-top: 1px solid var(--line);
    text-align: center;
  }
}

/* =========================================================
   V24c · 首页「怎么干活的」= 服务流程 + 服务保障 合并版（深底）
   左 5 步时间线（每步一个输出物）+ 右 6 项硬保障。
   取代原「维修过程可查可举证」与「标准服务流程」两个重复板块。
   深底文字全用浅色系；按钮沿用 on-dark 翻转，不另写皮肤。
   ========================================================= */
.pw-grid {
  display: grid; grid-template-columns: 1.08fr .92fr;
  gap: 34px; align-items: start;
}
.pw-steps { list-style: none; margin: 0; padding: 0; position: relative; }
.pw-steps li {
  position: relative; display: flex; gap: 16px;
  padding: 0 0 26px 0;
}
.pw-steps li:last-child { padding-bottom: 0; }
.pw-steps li::before {                 /* 时间线竖线 */
  content: ""; position: absolute; left: 21px; top: 44px; bottom: 2px;
  width: 2px; background: linear-gradient(180deg, rgba(120, 200, 255, .45), rgba(120, 200, 255, .08));
}
.pw-steps li:last-child::before { display: none; }
.pw-no {
  flex: 0 0 auto; width: 44px; height: 44px; border-radius: 13px;
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 14.5px; font-weight: 800; letter-spacing: .5px;
  color: #bfe4ff; background: rgba(120, 200, 255, .13);
  border: 1px solid rgba(120, 200, 255, .30);
}
.pw-steps h3 { font-size: 17.2px; color: #fff; margin-bottom: 5px; }
.pw-steps p { font-size: 13.9px; line-height: 1.8; color: rgba(226, 240, 255, .68); }

.pw-list {
  list-style: none; margin: 0; padding: 0;
  display: grid; grid-template-columns: 1fr 1fr; gap: 12px;
}
.pw-list li {
  padding: 16px 16px 14px; border-radius: 13px;
  background: rgba(255, 255, 255, .055);
  border: 1px solid rgba(255, 255, 255, .12);
  transition: background .25s, border-color .25s;
}
.pw-list li:hover { background: rgba(255, 255, 255, .09); border-color: rgba(255, 255, 255, .22); }
.pw-list b {
  display: block; font-size: 14.8px; color: #fff; margin-bottom: 6px;
}
.pw-list b::before {
  content: "✓"; display: inline-block; margin-right: 7px;
  color: #7fd6a4; font-weight: 800;
}
.pw-list span { display: block; font-size: 12.9px; line-height: 1.7; color: rgba(226, 240, 255, .62); }

.pw-foot {
  margin-top: 34px; padding-top: 24px;
  border-top: 1px solid rgba(255, 255, 255, .13);
  display: flex; flex-wrap: wrap; gap: 12px; align-items: center;
}
.pw-more { margin-left: auto; font-size: 14.4px; color: rgba(226, 240, 255, .78); border-bottom: 1px solid rgba(226, 240, 255, .3); }
.pw-more:hover { color: #fff; border-color: #fff; }

@media (max-width: 1080px) {
  .pw-grid { grid-template-columns: 1fr; gap: 26px; }
}
@media (max-width: 720px) {
  .pw-list { grid-template-columns: 1fr; gap: 9px; }
  .pw-steps li { padding-bottom: 20px; }
  .pw-foot .btn { flex: 1 1 100%; }
  .pw-more { margin-left: 0; }
}

/* =========================================================
   V24d · 首页案例区「按行业找同类案例」芯片条
   直达 cases.html?industry=…（值=云库 cases.industry 真实枚举），
   条数取自 2026-10-09 云库实测（42 条全部有行业标注）。
   ========================================================= */
.ind-chips {
  display: flex; flex-wrap: wrap; align-items: center; gap: 10px;
  margin: -18px 0 30px;
}
.ind-label { font-size: 13.8px; font-weight: 600; color: var(--muted); margin-right: 4px; }
.ind-chip {
  display: inline-flex; align-items: center; gap: 7px;
  padding: 8px 15px; border-radius: 999px;
  background: var(--brand-soft); border: 1px solid rgba(30, 154, 214, .22);
  font-size: 13.8px; font-weight: 600; color: var(--brand);
  transition: background .2s, border-color .2s, transform .2s, box-shadow .2s;
}
.ind-chip b {
  font-size: 11.6px; font-weight: 700; line-height: 1;
  padding: 4px 7px; border-radius: 999px;
  background: rgba(10, 77, 140, .10); color: var(--brand);
}
.ind-chip:hover {
  background: var(--brand); border-color: var(--brand); color: #fff;
  transform: translateY(-1px); box-shadow: 0 8px 18px rgba(10, 77, 140, .22);
}
.ind-chip:hover b { background: rgba(255, 255, 255, .22); color: #fff; }

@media (max-width: 720px) {
  .ind-chips { margin: -8px 0 22px; gap: 8px; }
  .ind-chip { padding: 7px 12px; font-size: 13px; }
}

/* =========================================================
   V24e · 首页 FAQ 折叠 + 14 市州上门时效带
   FAQ 用原生 details/summary（零 JS、可访问、SEO 可抓正文），
   并配同文案的 FAQPage JSON-LD；时效带 14 chip 全部链到对应城市页。
   ========================================================= */
.faq-grid {
  display: grid; grid-template-columns: 1fr 1fr; gap: 13px;
  align-items: start;
}
.faq-item {
  border: 1px solid var(--line); border-radius: 13px;
  background: #fff; overflow: hidden;
  transition: border-color .22s, box-shadow .22s;
}
.faq-item:hover { border-color: rgba(30, 154, 214, .38); box-shadow: 0 8px 22px rgba(16, 42, 67, .07); }
.faq-item summary {
  list-style: none; cursor: pointer;
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  padding: 16px 18px;
  font-size: 15.2px; font-weight: 600; color: var(--ink);
}
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary::after {
  content: "+"; flex: 0 0 auto;
  width: 26px; height: 26px; border-radius: 50%;
  display: inline-flex; align-items: center; justify-content: center;
  background: var(--brand-soft); color: var(--brand);
  font-size: 16px; font-weight: 700; line-height: 1;
  transition: transform .25s, background .25s, color .25s;
}
.faq-item[open] summary::after {
  content: "−"; background: var(--brand); color: #fff; transform: rotate(180deg);
}
.faq-item[open] { border-color: rgba(30, 154, 214, .45); }
.faq-item > p {
  padding: 0 18px 17px; margin: 0;
  font-size: 13.9px; line-height: 1.9; color: var(--ink-2);
}
.faq-item > p a, .faq-item > p b { color: var(--brand); font-weight: 700; }
.faq-item > p a { border-bottom: 1px solid rgba(30, 154, 214, .35); }

/* ---- 14 市州时效带 ---- */
.eta-head {
  display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between;
  gap: 16px; margin-bottom: 26px;
}
.eta-head .section-head { margin-bottom: 0; max-width: 720px; }
.eta-grid {
  display: grid; grid-template-columns: repeat(7, 1fr); gap: 10px;
}
.eta-chip {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 3px; padding: 13px 8px 11px; border-radius: 12px;
  background: #fff; border: 1px solid var(--line);
  font-size: 14.6px; font-weight: 700; color: var(--ink);
  transition: border-color .2s, transform .2s, box-shadow .2s, color .2s;
}
.eta-chip span { font-size: 11.2px; font-weight: 600; color: var(--brand); }
.eta-chip:hover {
  border-color: rgba(30, 154, 214, .5); color: var(--brand);
  transform: translateY(-2px); box-shadow: 0 10px 22px rgba(16, 42, 67, .08);
}
.eta-note { margin-top: 16px; font-size: 13.2px; color: var(--muted); text-align: center; }

@media (max-width: 1080px) {
  .eta-grid { grid-template-columns: repeat(5, 1fr); }
}
@media (max-width: 720px) {
  .faq-grid { grid-template-columns: 1fr; gap: 9px; }
  .faq-item summary { padding: 14px 15px; font-size: 14.4px; }
  .faq-item > p { padding: 0 15px 15px; }
  .eta-grid { grid-template-columns: repeat(3, 1fr); gap: 8px; }
  .eta-chip { padding: 10px 6px 9px; font-size: 13.6px; }
}

/* =========================================================
   V24f · A-6 卡片规范统一（全站）
   1) 截断：标题两行 / 摘要三行，超长省略 —— 同排卡片不再被长文撑乱；
   2) 脚部钉底：链接/按钮行永远贴卡片底，同排底部对齐；
   3) CTA 不新增皮肤：全部沿用 site.css 的 .btn-* 单一源头（新块已用）。
   注：cr-rows 仅首页案例卡使用；mc-txt/sv-body/feature 为全站卡片摘要。
   ========================================================= */
.card-body h3,
.sv-body h3 {
  display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2;
  overflow: hidden;
}
.card-body .cr-rows .cr-row p,
.sv-body > p,
.feature > p,
.model-card .mc-txt {
  display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3;
  overflow: hidden;
}
.card-foot { margin-top: auto; }
.model-card .mc-links { margin-top: auto; padding-top: 10px; }
.model-card .mc-credit { margin-bottom: 8px; }

/* 板块背景交替（白 → bg-soft → 白）：本批新增块已按此落位，
   这里只把「服务范围说明」与 CTA 之间的过渡放宽，避免两段白连成一片。 */
.section-faq + #city-eta { border-top: 1px solid var(--line-2); }

/* 渐入动画：新增块复用全局 .reveal/.in（site.css 单一源头），无新增关键帧。 */


/* =========================================================
   V25 · 第六批 P0-1 文末静态双 CTA（tel: 直拨 + 预填报修）
   写死在 HTML 里，不依赖 JS；按钮皮肤沿用 site.css 的 .btn-* 单一源头。
   ========================================================= */
.pg-cta {
  padding: 30px 32px 26px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: linear-gradient(180deg, #fff, var(--bg-soft));
  box-shadow: 0 1px 2px rgba(16, 42, 67, .04), 0 10px 28px rgba(16, 42, 67, .06);
  text-align: center;
}
.pg-cta-t {
  font-size: clamp(18px, 2.1vw, 23px); font-weight: 700; color: var(--ink);
  letter-spacing: -.2px; margin-bottom: 20px;
}
.pg-cta-b { display: flex; flex-wrap: wrap; justify-content: center; gap: 11px; }
.pg-cta-b .btn { flex: 0 1 auto; min-width: 168px; }
.pg-cta-n { margin-top: 16px; font-size: 13.4px; color: var(--muted); line-height: 1.8; }
.pg-cta-n a { color: var(--brand); font-weight: 700; border-bottom: 1px solid rgba(30, 154, 214, .35); }
.pg-cta-n a:hover { border-color: var(--brand); }
@media (max-width: 720px) {
  .pg-cta { padding: 22px 17px 20px; border-radius: 13px; }
  .pg-cta-b { flex-direction: column; }
  .pg-cta-b .btn { width: 100%; min-width: 0; }
}

/* .pg-cta 是浅底容器，btn-tel 的默认皮肤是深底写法 —— 在本容器内给电话按钮浅底配色 */
.pg-cta .btn-tel { background: var(--brand-soft); border-color: rgba(30, 154, 214, .38); color: var(--brand); }
.pg-cta .btn-tel:hover { background: var(--brand); border-color: var(--brand); color: #fff; }

/* ==========================================================================
   V25 · 三字段在线登记弹层（全站组件）
   只收三样：称呼 / 手机 / 机组状态 —— 现场信息越少越容易提交，
   机组型号、台数、故障现象留到工程师回电时口头核对，转化率更高。
   触发方式：任意元素加 data-callback（可选 data-service 预填机型）。
   ========================================================================== */
.cbk-mask {
  position: fixed; inset: 0; z-index: 1300; display: none;
  align-items: center; justify-content: center; padding: 20px;
  background: rgba(6, 18, 32, .6); backdrop-filter: blur(5px);
}
.cbk-mask.is-open { display: flex; }
.cbk-box {
  position: relative; width: min(520px, 100%); max-height: calc(100vh - 40px); overflow: auto;
  background: #fff; border-radius: 18px; padding: 30px 30px 26px;
  box-shadow: 0 30px 80px rgba(6, 22, 40, .34);
  animation: cbkIn .22s ease-out;
}
@keyframes cbkIn { from { opacity: 0; transform: translateY(14px) scale(.98); } to { opacity: 1; transform: none; } }
.cbk-close {
  position: absolute; top: 13px; right: 13px; width: 40px; height: 40px;
  border: 0; border-radius: 50%; background: var(--bg-soft); color: var(--muted);
  font-size: 21px; line-height: 1; cursor: pointer; transition: background .18s, color .18s;
}
.cbk-close:hover { background: var(--line); color: var(--ink); }
.cbk-head { padding-right: 40px; }
.cbk-eyebrow { display: inline-block; font-size: 12px; font-weight: 700; letter-spacing: .12em;
  color: var(--brand-2); text-transform: uppercase; }
.cbk-title { margin: 8px 0 0; font-size: 21px; font-weight: 800; color: var(--ink); letter-spacing: -.3px; }
.cbk-sub { margin: 9px 0 0; font-size: 13.6px; line-height: 1.7; color: var(--muted); }
.cbk-form { margin-top: 20px; display: grid; gap: 13px; }
.cbk-field { display: grid; gap: 6px; }
.cbk-field > label { font-size: 13px; font-weight: 600; color: var(--ink-2); }
.cbk-field .input, .cbk-field select {
  width: 100%; min-height: 48px; padding: 12px 14px; font-size: 15px; font-family: inherit;
  color: var(--ink); background: #fff; border: 1px solid var(--line); border-radius: var(--radius-sm);
  transition: border-color .18s, box-shadow .18s;
}
.cbk-field select { appearance: none; background-image: none; cursor: pointer; }
.cbk-field .input:focus, .cbk-field select:focus {
  outline: 0; border-color: var(--brand-3); box-shadow: 0 0 0 3px rgba(30, 154, 214, .16);
}
.cbk-field .input::placeholder { color: #9aa9bb; }
.cbk-row { display: grid; grid-template-columns: 1fr 1fr; gap: 13px; }
.cbk-submit {
  margin-top: 6px; width: 100%; min-height: 52px; border: 0; border-radius: 12px; cursor: pointer;
  font-size: 16px; font-weight: 700; color: #fff; font-family: inherit;
  background: linear-gradient(135deg, var(--brand-2) 0%, var(--brand) 100%);
  box-shadow: 0 14px 30px rgba(10, 77, 140, .26);
}
.cbk-submit:hover { box-shadow: 0 18px 38px rgba(10, 77, 140, .34); }
.cbk-submit[disabled] { opacity: .6; cursor: not-allowed; box-shadow: none; }
.cbk-tip { margin: 12px 0 0; font-size: 12.4px; line-height: 1.7; color: var(--muted); text-align: center; }
.cbk-tip a { color: var(--brand-2); font-weight: 600; }
.cbk-alert { margin-top: 12px; padding: 11px 14px; border-radius: var(--radius-sm); font-size: 13.4px;
  line-height: 1.6; display: none; }
.cbk-alert.is-on { display: block; }
.cbk-alert.err { background: #fdeceb; color: #a5342a; }
.cbk-alert.ok { background: #e9f7ef; color: #17704a; }
.cbk-done { text-align: center; padding: 12px 0 4px; }
.cbk-done .cbk-tick { width: 62px; height: 62px; margin: 0 auto 16px; border-radius: 50%;
  display: grid; place-items: center; background: #e9f7ef; color: var(--ok); }
.cbk-done h3 { margin: 0 0 10px; font-size: 19px; color: var(--ink); }
.cbk-done p { margin: 0 0 18px; font-size: 14px; line-height: 1.8; color: var(--muted); }
.cbk-done-cta { display: grid; gap: 10px; }
@media (max-width: 560px) {
  .cbk-box { padding: 26px 20px 22px; border-radius: 16px; }
  .cbk-row { grid-template-columns: 1fr; }
  .cbk-title { font-size: 19px; }
}

/* Hero 瘦身：值班手机与索取方案降为 KPI 条下的小字行，不再占主视觉 */
.hero-x-mini {
  margin-top: 20px; display: flex; flex-wrap: wrap; gap: 8px 20px;
  font-size: 13px; color: rgba(226, 240, 255, .7);
}
.hero-x-mini a { color: #fff; font-weight: 600; border-bottom: 1px solid rgba(255, 255, 255, .34); padding-bottom: 1px; }
.hero-x-mini a:hover { border-bottom-color: #fff; }
.hero-x-mini .mini-tel { color: #fff; font-weight: 700; letter-spacing: .2px; }

/* 移动端触控热区：手指点不准 37px 的小按钮，统一抬到 48px（P2 视觉性能细则） */
@media (max-width: 768px) {
  .btn {
    min-height: 48px; display: inline-flex; align-items: center; justify-content: center;
    padding-top: 12px; padding-bottom: 12px;
  }
  .btn-sm { min-height: 48px; }
  .sv-link, .sc-link, .art-go {
    display: inline-flex; align-items: center; min-height: 44px;
  }
  .cbk-submit, .cbk-field .input, .cbk-field select { min-height: 50px; }
}

/* ==========================================================================
   V26 · 板块尾一键拨号细条（L-4 行动层）
   每块内容看完就给一次「现在就能打」的机会，文案随该板块主题走机型/场景，
   不重复同一句。窄条、不抢主视觉，移动端整行可点。
   ========================================================================== */
.tap-bar {
  margin-top: 26px; display: flex; align-items: center; gap: 14px 18px; flex-wrap: wrap;
  padding: 14px 18px; border-radius: 12px;
  background: var(--brand-soft); border: 1px solid rgba(30, 154, 214, .28);
}
.tap-bar .tb-ico {
  flex: 0 0 auto; width: 38px; height: 38px; border-radius: 50%; display: grid; place-items: center;
  background: #fff; color: var(--brand-2); border: 1px solid rgba(30, 154, 214, .22);
}
.tap-bar .tb-txt { flex: 1 1 260px; min-width: 0; }
.tap-bar .tb-txt b { display: block; font-size: 14.8px; color: var(--ink); letter-spacing: -.1px; }
.tap-bar .tb-txt span { display: block; margin-top: 3px; font-size: 12.8px; color: var(--muted); line-height: 1.55; }
.tap-bar .tb-act { display: flex; gap: 10px; flex-wrap: wrap; }
.tap-bar .tb-act .btn { min-height: 44px; }
@media (max-width: 620px) {
  .tap-bar { padding: 14px; gap: 12px; }
  .tap-bar .tb-act { width: 100%; }
  .tap-bar .tb-act .btn { flex: 1 1 100%; min-height: 48px; }
}

/* 品牌页「同形态工单直达」链接列表（L-2）：不冒充本品牌实绩，只给同类机组参考 */
.oc-cases { margin-top: 16px; padding-top: 14px; border-top: 1px dashed rgba(15, 27, 45, .14); }
.oc-cases-lb { display: block; font-size: 12.4px; color: var(--muted); margin-bottom: 9px; }
.oc-case {
  display: flex; align-items: baseline; gap: 10px; padding: 9px 0;
  border-bottom: 1px solid var(--line-2); text-decoration: none;
}
.oc-case:last-child { border-bottom: 0; }
.oc-case b { flex: 1 1 auto; font-size: 14px; font-weight: 600; color: var(--ink); line-height: 1.55; }
.oc-case span { flex: 0 0 auto; font-size: 12.4px; color: var(--brand-2); }
.oc-case:hover b { color: var(--brand-2); }


/* V27 · 非工作时段表单提示（P2-5）：夜间/凌晨提交时给出口，别让人干等 */
.form-notice {
  display: flex; gap: 12px; align-items: flex-start; margin: 0 0 14px;
  padding: 13px 15px; border-radius: var(--radius-sm);
  background: #fff8e8; border: 1px solid rgba(214, 158, 46, .34); color: #7a5210;
}
.form-notice[hidden] { display: none; }
.form-notice .fn-ico { flex: 0 0 auto; color: #b8860b; line-height: 0; margin-top: 2px; }
.form-notice b { display: block; font-size: 14px; color: #6b4708; }
.form-notice p { margin: 5px 0 0; font-size: 13px; line-height: 1.7; color: #7a5210; }
.form-notice a { font-weight: 700; color: #0a4d8c; white-space: nowrap; }
