/* ============================================================
   恒真彩 style-v2.css —— 现代工业蓝设计系统
   加载顺序：style.css → style-v2.css（v2 覆盖旧样式）
   适用：全站公共部分（头部/导航/页脚/侧栏）+ 栏目页 + 详情页
   首页主体区块仍由 style.css 控制，v2 不冲突
   ============================================================ */

/* ---------- 1. 设计变量 ---------- */
:root {
  --brand: #1c5fc8;
  --brand-600: #1550ab;
  --brand-700: #0f3f8c;
  --brand-50: #eef4fd;
  --brand-100: #d9e6fa;
  --accent: #ea7a1f;
  --accent-dark: #c96311;
  --ink: #1d2733;
  --ink-2: #4e5a68;
  --ink-3: #8a94a2;
  --line: #e3e9f1;
  --bg: #f4f6fa;
  --card: #ffffff;
  --radius: 12px;
  --radius-sm: 8px;
  --shadow-sm: 0 1px 2px rgba(16,35,61,.05), 0 2px 10px rgba(16,35,61,.06);
  --shadow-md: 0 8px 28px rgba(16,35,61,.12);
}

/* ---------- 2. 基础 ---------- */
body.v2 {
  margin: 0;
  background: var(--bg);
  color: var(--ink);
  font-family: "PingFang SC", "Microsoft YaHei", "Helvetica Neue", Arial, sans-serif;
  font-size: 15px;
  line-height: 1.75;
  -webkit-font-smoothing: antialiased;
}
body.v2 a { color: var(--brand); text-decoration: none; transition: color .18s; }
body.v2 a:hover { color: var(--brand-700); }
body.v2 img { max-width: 100%; }
body.v2 ul, body.v2 ol { list-style: none; margin: 0; padding: 0; }
.v2 h1, .v2 h2, .v2 h3, .v2 h4 { margin: 0; font-weight: 600; color: var(--ink); }

.page-wrap {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 20px;
}

/* ---------- 3. 双行经典导航（白底 logo 行 + 通栏蓝条菜单） ---------- */
/* 电话与资质已并入第一行，顶部深色信息条取消，保持两段式结构干净 */
.v2-topbar { display: none; }

.v2-site-nav {
  position: sticky; top: 0; z-index: 999;
  background: #fff;
  box-shadow: 0 2px 12px rgba(16,35,61,.09);
  transition: box-shadow .35s ease;
}
.v2-site-nav .nav-inner {
  max-width: 1400px; margin: 0 auto; padding: 0 24px;
  height: 86px; display: flex; align-items: center; gap: 20px;
}
.v2-logo { display: flex; align-items: center; gap: 12px; flex-shrink: 0; }
.v2-logo img { height: 48px; display: block; transition: all .3s ease; }
.v2-slogan { border-left: 1px solid var(--line); padding-left: 12px; transition: border-color .3s ease; }
.v2-slogan b { display: block; font-size: 15px; color: var(--ink); letter-spacing: .5px; transition: color .3s ease; }
.v2-slogan span { font-size: 11px; color: var(--ink-3); letter-spacing: 1.6px; text-transform: uppercase; transition: color .3s ease; }
/* 第一行中部：服务承诺标签 */
.nav-svc { display: flex; align-items: center; gap: 22px; margin-left: auto; }
.nav-svc li { display: flex; align-items: center; gap: 7px; font-size: 14px; color: var(--ink-2); white-space: nowrap; }
.nav-svc li i {
  width: 17px; height: 17px; border-radius: 50%; flex-shrink: 0;
  background: var(--brand-50); color: var(--brand); font-style: normal;
  font-size: 11px; line-height: 17px; text-align: center; font-weight: 700;
}
.v2-head-right {
  flex-shrink: 0; text-align: right;
  background: linear-gradient(135deg, #2f7ae0, #1c5fc8);
  border-radius: 10px; padding: 8px 18px;
  box-shadow: 0 6px 18px rgba(28,95,200,.26);
}
.v2-head-right .tel-label { font-size: 11.5px; color: rgba(255,255,255,.78); display: block; }
.v2-head-right .tel-num {
  font-size: 19px; font-weight: 700; color: #fff;
  font-family: "DIN Alternate", Arial, sans-serif; letter-spacing: .5px; line-height: 1.3;
}

/* 第二行：通栏蓝条菜单 */
.nav-menu { background: linear-gradient(90deg, #16509e 0%, #1c5fc8 52%, #2f7ae0 100%); }
.nav-menu-inner { max-width: 1400px; margin: 0 auto; padding: 0 24px; display: flex; justify-content: center; }
.nav-item { display: flex; align-items: center; }
.nav-menu .nav-item .nav-link {
  display: flex; align-items: center; gap: 5px; height: 54px; padding: 0 24px;
  font-size: 16px; font-weight: 500; color: #fff; white-space: nowrap;
  position: relative;
  transition: background .25s ease, color .25s ease;
}
.nav-link .chev {
  width: 9px; height: 9px; margin-top: -1px; opacity: .7;
  transition: transform .3s ease;
}
.nav-link .chev path { stroke: currentColor; }
.nav-item:hover .nav-link, .nav-item.cur .nav-link {
  color: #fff; background: rgba(8,26,56,.26); font-weight: 600;
}
.nav-item.cur .nav-link::after {
  content: ""; position: absolute; left: 22px; right: 22px; bottom: 0;
  height: 3px; background: #ffb54d; border-radius: 3px 3px 0 0;
}
.nav-item:hover .nav-link .chev { transform: rotate(180deg); opacity: 1; }

/* Mega Menu：挂在导航条下方，全宽面板（左分类列 + 右图文卡） */
.mega-menu {
  position: absolute; left: 0; right: 0; top: 100%;
  background: #fff; border-radius: 0 0 var(--radius) var(--radius);
  box-shadow: 0 18px 48px rgba(16,35,61,.16);
  opacity: 0; visibility: hidden; transform: translateY(-8px);
  transition: opacity .28s ease, transform .28s ease, visibility .28s;
  z-index: 998; overflow: hidden;
}
.nav-item:hover .mega-menu, .mega-menu:hover {
  opacity: 1; visibility: visible; transform: translateY(0);
}
.mega-inner { max-width: 1200px; margin: 0 auto; display: flex; padding: 28px 20px 26px; }
.mega-cats {
  min-width: 216px; border-right: 1px solid var(--line);
  padding-right: 20px; margin-right: 26px;
}
.mega-cat {
  display: flex; align-items: center; gap: 8px;
  padding: 10px 14px; border-radius: var(--radius-sm);
  color: #333; font-size: 14.5px; margin-bottom: 3px; transition: all .22s ease;
}
.mega-cat .marr { width: 7px; height: 7px; opacity: .35; flex-shrink: 0; }
.mega-cat:hover, .mega-cat.active { background: #eef5ff; color: var(--brand); font-weight: 700; }
.mega-cat .marr { width: 7px; height: 7px; opacity: .35; flex-shrink: 0; }
.mega-cat .marr path { stroke: currentColor; }
.mega-cat:hover .marr { opacity: 1; }
.mega-more { margin-top: 10px; padding-top: 12px; border-top: 1px dashed var(--line); }
.mega-more a {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: 13.5px; color: var(--brand); font-weight: 500; white-space: nowrap;
}
.mega-more a:hover { color: var(--brand-700); }
.mega-image { flex: 1; min-width: 0; display: flex; gap: 22px; align-items: center; }
.mega-figure { width: 300px; flex-shrink: 0; }
.mega-figure .mf-img {
  width: 100%; height: 172px; object-fit: cover; display: block;
  border-radius: var(--radius-sm); background: #eef5ff;
}
.mega-caption {
  margin-top: 12px; font-size: 13px; color: var(--ink-3); line-height: 1.85;
}
.mega-caption strong { color: var(--ink); font-weight: 600; }
.mega-points { flex: 1; min-width: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 8px 18px; }
.mega-points a {
  display: flex; align-items: center; gap: 8px;
  font-size: 13.5px; color: var(--ink-2); padding: 7px 0;
  border-bottom: 1px dashed transparent; transition: all .2s;
}
.mega-points a:hover { color: var(--brand); border-bottom-color: var(--brand-100); }
.mega-points a i {
  width: 5px; height: 5px; border-radius: 50%; background: #c4cfdd; flex-shrink: 0; transition: background .2s;
}
.mega-points a:hover i { background: var(--brand); }
.mega-desc { flex: 1; min-width: 0; }
.mega-desc h4 {
  font-size: 17px; color: var(--ink); font-weight: 700; margin-bottom: 11px;
  position: relative; padding-left: 13px; line-height: 1.4;
}
.mega-desc h4::before {
  content: ""; position: absolute; left: 0; top: 5px; bottom: 5px;
  width: 3px; background: var(--brand); border-radius: 2px;
}
.mega-desc p { margin: 0; font-size: 13.5px; color: var(--ink-2); line-height: 1.92; }
.mega-tags { margin-top: 15px; display: flex; flex-wrap: wrap; gap: 8px; }
.mega-tags span {
  font-size: 12.5px; color: var(--brand); background: var(--brand-50);
  border: 1px solid var(--brand-100); border-radius: 20px; padding: 4px 13px; white-space: nowrap;
}

/* ---------- 3b. 首页导航（方案C：白底两行，不做透明覆盖） ---------- */
body.home-page .v2-site-nav { margin-bottom: 0; }

/* ---------- 4. 栏目横幅（品牌蓝渐变 + 工业斜纹 + 热线卡 + 英文水印） ---------- */
.v2-banner {
  background:
    radial-gradient(640px 320px at 86% 10%, rgba(47,122,224,.40), transparent 62%),
    radial-gradient(520px 280px at 98% 118%, rgba(255,181,77,.16), transparent 60%),
    repeating-linear-gradient(135deg, rgba(255,255,255,.035) 0 2px, transparent 2px 16px),
    linear-gradient(115deg, #0b2450 0%, #10306b 55%, #16509e 100%);
  color: #fff; position: relative; overflow: hidden;
}
.v2-banner::before, .v2-banner::after {
  content: ""; position: absolute; border-radius: 50%;
  border: 1px solid rgba(255,255,255,.14);
}
.v2-banner::before { width: 320px; height: 320px; right: -60px; top: -140px; }
.v2-banner::after  { width: 210px; height: 210px; right: 320px; bottom: -130px; }
.v2-banner-img {
  position: absolute; inset: 0; z-index: 0;
  background-size: cover; background-position: center right;
}
.v2-banner-veil {
  position: absolute; inset: 0; z-index: 0;
  background: linear-gradient(100deg, rgba(11,36,80,.97) 0%, rgba(11,36,80,.90) 36%, rgba(13,42,94,.72) 62%, rgba(16,60,130,.48) 100%);
}
.v2-banner-flex {
  display: flex; align-items: center; justify-content: space-between; gap: 32px;
  padding: 44px 0 42px; position: relative; z-index: 2;
}
.v2-banner h1 {
  color: #fff; font-size: 30px; letter-spacing: 1px; line-height: 1.3;
  display: flex; align-items: center; gap: 14px;
}
.v2-banner h1::before {
  content: ""; width: 6px; height: 30px; border-radius: 3px; background: #ffb54d; flex-shrink: 0;
}
.v2-banner .en { color: #9cc3f5; font-size: 12.5px; letter-spacing: 3px; text-transform: uppercase; margin-top: 6px; padding-left: 20px; }
.v2-banner .crumb { margin-top: 14px; font-size: 13px; color: rgba(255,255,255,.78); padding-left: 20px; }
.v2-banner .crumb a { color: rgba(255,255,255,.92); }
.v2-banner .crumb a:hover { color: #fff; }
/* 右侧热线/服务标签卡 */
.v2-banner-aside {
  flex-shrink: 0; text-align: left;
  background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.18);
  border-radius: 12px; padding: 16px 22px; backdrop-filter: blur(4px);
}
.v2-banner-aside .vb-hotline span {
  display: block; font-size: 12px; color: rgba(255,255,255,.65); letter-spacing: 2px; margin-bottom: 4px;
}
.v2-banner-aside .vb-hotline a {
  display: block; color: #ffd9a8; font-size: 24px; font-weight: 700; letter-spacing: 1px;
  text-decoration: none; font-family: "DIN Alternate", "Arial", sans-serif;
}
.v2-banner-aside .vb-tags { margin-top: 10px; display: flex; gap: 8px; }
.v2-banner-aside .vb-tags span {
  font-size: 12px; color: rgba(255,255,255,.85); background: rgba(255,255,255,.10);
  border: 1px solid rgba(255,255,255,.16); border-radius: 20px; padding: 3px 10px; white-space: nowrap;
}
/* 底部大号英文水印（aria-hidden，仅装饰） */
.v2-banner-wm {
  position: absolute; right: 26px; bottom: -14px; z-index: 1;
  font-size: 88px; font-weight: 800; letter-spacing: 2px; white-space: nowrap; line-height: 1;
  color: transparent; -webkit-text-stroke: 1px rgba(255,255,255,.10);
  pointer-events: none; user-select: none;
}
@media (max-width: 1080px) {
  .v2-banner-wm { font-size: 56px; bottom: -8px; }
  .v2-banner-aside .vb-hotline a { font-size: 20px; }
}
/* 后台已上传自定义 banner 图（如 1920×400）时：按 400 高完整显示，不做纵向裁切 */
.v2-banner.has-img { height: 400px; }
.v2-banner.has-img .v2-banner-flex { height: 100%; }
.v2-banner.has-img .v2-banner-img { background-size: cover; background-position: center center; }
/* 自定义 banner：大幅减淡遮罩，保证图内文字清晰，仅左侧留轻渐变承托白色标题 */
.v2-banner.has-img .v2-banner-veil {
  background: linear-gradient(90deg, rgba(11,36,80,.42) 0%, rgba(11,36,80,.16) 34%, rgba(11,36,80,0) 62%);
}
/* 移动端：banner 高度自适应内容，热线卡完整显示不被裁切 */
@media (max-width: 992px) { .v2-banner.has-img { height: auto; min-height: 220px; } }
@media (max-width: 768px) {
  .v2-banner.has-img { height: auto; min-height: 200px; }
  .v2-banner-flex { flex-direction: column; align-items: flex-start; gap: 16px; padding: 30px 0 28px; }
  .v2-banner h1 { font-size: 24px; }
  .v2-banner .en, .v2-banner .crumb { padding-left: 17px; }
  .v2-banner-aside { width: 100%; padding: 12px 16px; }
  .v2-banner-aside .vb-tags { flex-wrap: wrap; gap: 6px; }
  .v2-banner-wm { display: none; }
}

/* ---------- 5. 双栏布局 ---------- */
.v2-layout { display: flex; gap: 24px; align-items: flex-start; padding: 26px 0 50px; }
.v2-side { width: 250px; flex-shrink: 0; position: sticky; top: 70px; }
.v2-main { flex: 1; min-width: 0; }

/* ---------- 6. 侧栏 ---------- */
.side-box { background: var(--card); border-radius: var(--radius); box-shadow: var(--shadow-sm); overflow: hidden; }
.side-box + .side-box { margin-top: 18px; }
.side-title {
  background: linear-gradient(120deg, var(--brand-700), var(--brand));
  color: #fff; font-size: 16px; padding: 14px 20px; position: relative;
}
.side-title::after { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; background: rgba(255,255,255,.35); }
.side-list a {
  display: flex; align-items: center; justify-content: space-between;
  padding: 12px 18px; color: var(--ink-2); font-size: 14.5px;
  border-bottom: 1px dashed var(--line); position: relative; padding-left: 30px;
}
.side-list a::before {
  content: ""; position: absolute; left: 18px; top: 50%; margin-top: -4px;
  width: 6px; height: 6px; border-radius: 2px; background: #c4cfdd; transition: all .18s;
}
.side-list a:last-child { border-bottom: none; }
.side-list a:hover, .side-list a.active {
  color: var(--brand); background: var(--brand-50); font-weight: 500;
}
.side-list a:hover::before, .side-list a.active::before { background: var(--brand); }
.side-list a.active::after {
  content: ""; position: absolute; right: 16px; top: 50%; margin-top: -5px;
  width: 8px; height: 8px; border-top: 2px solid var(--brand); border-right: 2px solid var(--brand);
  transform: rotate(45deg);
}

.side-contact { padding: 18px 20px; }
.side-contact .tel-big {
  display: flex; align-items: center; gap: 10px;
  background: var(--brand-50); border: 1px solid var(--brand-100);
  border-radius: var(--radius-sm); padding: 12px 14px; margin-bottom: 14px;
}
.side-contact .tel-big em { font-style: normal; font-size: 20px; font-weight: 700; color: var(--brand); }
.side-contact .tel-big span { font-size: 12px; color: var(--ink-3); display: block; }
.side-contact p { margin: 5px 0; font-size: 13.5px; color: var(--ink-2); }
.side-contact p b { color: var(--ink); font-weight: 500; }

/* ---------- 7. 面包屑条（内容区顶部） ---------- */
.crumb-bar {
  background: var(--card); border-radius: var(--radius);
  box-shadow: var(--shadow-sm); padding: 13px 20px; margin-bottom: 18px;
  font-size: 13.5px; color: var(--ink-3); display: flex; align-items: center; justify-content: space-between;
}
.crumb-bar a { color: var(--ink-2); }
.crumb-bar a:hover { color: var(--brand); }

/* ---------- 8. 栏目简介卡 ---------- */
.cat-intro {
  background: linear-gradient(180deg, var(--brand-50), #fff 70%);
  border: 1px solid var(--brand-100); border-radius: var(--radius);
  padding: 22px 24px 18px; margin-bottom: 20px; position: relative;
}
.cat-intro::before {
  content: ""; position: absolute; left: 0; top: 14px; bottom: 14px;
  width: 4px; background: var(--brand); border-radius: 0 4px 4px 0;
}
.cat-intro h2 { font-size: 17px; margin-bottom: 8px; color: var(--brand-700); }
.cat-intro p { margin: 0; color: var(--ink-2); font-size: 14.5px; line-height: 1.9; }

/* ---------- 9. 产品/图片网格卡 ---------- */
.pro-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.pro-card {
  background: var(--card); border-radius: var(--radius); overflow: hidden;
  box-shadow: var(--shadow-sm); border: 1px solid transparent;
  display: flex; flex-direction: column; transition: all .22s;
}
.pro-card:hover {
  transform: translateY(-4px); box-shadow: var(--shadow-md);
  border-color: var(--brand-100);
}
.pro-thumb { aspect-ratio: 4 / 3; overflow: hidden; background: #edf1f7; position: relative; }
.pro-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .4s; }
.pro-card:hover .pro-thumb img { transform: scale(1.05); }
.pro-body { padding: 16px 18px 18px; flex: 1; display: flex; flex-direction: column; }
.pro-body h3 { font-size: 15.5px; line-height: 1.5; color: var(--ink); }
.pro-card:hover .pro-body h3 { color: var(--brand); }
/* 卡片描述仅一行，超出省略——列表页保持简洁 */
.pro-body p {
  margin: 7px 0 0; font-size: 13px; color: var(--ink-3); line-height: 1.7;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.pro-body .more {
  margin-top: auto; padding-top: 12px; font-size: 12.5px; color: var(--ink-3); font-weight: 400;
}
.pro-card:hover .pro-body .more { color: var(--brand); }

/* ---------- 10.5 单页工厂实景画廊（关于我们/工厂概貌） ---------- */
.factory-gallery {
  display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin: 24px 0 10px;
}
.factory-gallery figure { margin: 0; overflow: hidden; border-radius: 10px; background: #eef2f7; }
.factory-gallery .fg-hero { grid-column: 1 / -1; }
.factory-gallery img {
  width: 100%; height: auto; display: block;
  transition: transform .4s ease;
}
.factory-gallery figure:hover img { transform: scale(1.04); }
@media (max-width: 640px) {
  .factory-gallery { grid-template-columns: 1fr; gap: 12px; }
}

/* ---------- 10. 文章列表卡 ---------- */
.art-list { display: flex; flex-direction: column; gap: 14px; }
.art-item {
  background: var(--card); border-radius: var(--radius); box-shadow: var(--shadow-sm);
  display: flex; gap: 18px; padding: 16px; transition: all .2s; border: 1px solid transparent;
}
.art-item:hover { transform: translateY(-2px); box-shadow: var(--shadow-md); border-color: var(--brand-100); }
.art-thumb { width: 168px; flex-shrink: 0; aspect-ratio: 16 / 10; border-radius: var(--radius-sm); overflow: hidden; background: #edf1f7; }
.art-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.art-item.noimg .art-thumb { display: flex; align-items: center; justify-content: center; color: #b8c3d2; font-size: 12px; letter-spacing: 2px; }
.art-info { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.art-info h3 {
  font-size: 14px; line-height: 1.7; font-weight: 600; letter-spacing: .2px;
  color: var(--ink); margin: 1px 0 0;
}
.art-info h3 a { color: inherit; }
.art-item:hover .art-info h3 { color: var(--brand); }
.art-info .meta {
  display: flex; align-items: center; flex-wrap: wrap;
  font-size: 12.5px; color: var(--ink-3); margin-top: 7px; letter-spacing: .2px;
}
.art-info .meta span { display: inline-flex; align-items: center; margin-right: 16px; line-height: 1; }
.art-info .meta span + span { margin-right: 0; }
.art-info .meta span::before {
  content: ""; display: inline-block; width: 13px; height: 13px; margin-right: 5px;
  background-color: currentColor; flex: none;
  -webkit-mask: center / contain no-repeat; mask: center / contain no-repeat;
}
.art-info .meta span:first-child::before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2'/%3E%3Cpath d='M16 2v4M8 2v4M3 10h18'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2'/%3E%3Cpath d='M16 2v4M8 2v4M3 10h18'/%3E%3C/svg%3E");
}
.art-info .meta span:last-child::before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='12' cy='7' r='4'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='12' cy='7' r='4'/%3E%3C/svg%3E");
}
.art-info p {
  margin: 9px 0 0; font-size: 14px; color: #66727f; line-height: 1.85; letter-spacing: .2px;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}

/* ---------- 11. 分页 ---------- */
.v2-pages { margin-top: 26px; display: flex; justify-content: center; flex-wrap: wrap; gap: 6px; }
.v2-pages a, .v2-pages span {
  min-width: 36px; height: 36px; padding: 0 12px; display: inline-flex; align-items: center; justify-content: center;
  background: var(--card); border: 1px solid var(--line); border-radius: var(--radius-sm);
  color: var(--ink-2); font-size: 13.5px; transition: all .18s;
}
.v2-pages a:hover { border-color: var(--brand); color: var(--brand); }
.v2-pages span.active { background: var(--brand); border-color: var(--brand); color: #fff; font-weight: 600; }

/* ---------- 12. 富文本排版（解决"一大堆文字"的核心） ---------- */
.rich-text { background: var(--card); border-radius: var(--radius); box-shadow: var(--shadow-sm); padding: 34px 38px; }
.rich-text h1 { font-size: 26px; line-height: 1.45; margin-bottom: 6px; }
.rich-text h2 { font-size: 21px; margin: 34px 0 14px; padding-left: 12px; border-left: 4px solid var(--brand); line-height: 1.4; }
.rich-text h3 { font-size: 17.5px; margin: 26px 0 10px; color: var(--brand-700); }
.rich-text p { margin: 0 0 14px; color: #333c48; line-height: 1.95; font-size: 15px; }
.rich-text strong, .rich-text b { color: var(--ink); }
.rich-text img { border-radius: var(--radius-sm); height: auto !important; display: block; margin: 18px auto; box-shadow: var(--shadow-sm); }
.rich-text table {
  width: 100%; border-collapse: collapse; margin: 20px 0; font-size: 14px;
  border-radius: var(--radius-sm); overflow: hidden; box-shadow: 0 0 0 1px var(--line);
}
.rich-text th {
  background: linear-gradient(120deg, var(--brand-700), var(--brand));
  color: #fff; font-weight: 500; padding: 11px 14px; text-align: left; white-space: nowrap;
}
.rich-text td { padding: 10px 14px; border-top: 1px solid var(--line); color: var(--ink-2); }
.rich-text tr:nth-child(even) td { background: #f8fafd; }
.rich-text ul, .rich-text ol { margin: 0 0 14px; padding-left: 4px; }
.rich-text ul li, .rich-text ol li {
  position: relative; padding-left: 20px; margin: 7px 0; color: #333c48; line-height: 1.9; list-style: none;
}
.rich-text ul li::before {
  content: ""; position: absolute; left: 2px; top: 13px; width: 7px; height: 7px;
  border-radius: 2px; background: var(--brand);
}
.rich-text ol { counter-reset: v2ol; }
.rich-text ol li::before {
  counter-increment: v2ol; content: counter(v2ol) ".";
  position: absolute; left: 0; top: 0; color: var(--brand); font-weight: 600;
}
.rich-text blockquote {
  margin: 18px 0; padding: 14px 18px; background: var(--brand-50);
  border-left: 4px solid var(--brand); border-radius: 0 var(--radius-sm) var(--radius-sm) 0; color: var(--ink-2);
}

/* ---------- 13. 详情页 ---------- */
.detail-head { border-bottom: 1px solid var(--line); padding-bottom: 18px; margin-bottom: 24px; }
.detail-head h1 { font-size: 25px; line-height: 1.5; }
.detail-meta { margin-top: 12px; font-size: 13px; color: var(--ink-3); display: flex; flex-wrap: wrap; gap: 8px 22px; }
.detail-meta em { font-style: normal; color: var(--ink-2); }

.author-card {
  margin-top: 30px; background: var(--brand-50); border: 1px solid var(--brand-100);
  border-radius: var(--radius); padding: 18px 22px; font-size: 13.5px; line-height: 1.9; color: var(--ink-2);
}
.author-card .name { font-size: 15px; color: var(--ink); font-weight: 600; margin-bottom: 4px; }
.author-card .name span { font-weight: 400; color: var(--ink-3); font-size: 12.5px; margin-left: 8px; }

.prev-next { display: flex; gap: 14px; margin-top: 24px; }
.prev-next a {
  flex: 1; background: var(--card); border: 1px solid var(--line); border-radius: var(--radius);
  padding: 13px 16px; font-size: 13.5px; color: var(--ink-2); overflow: hidden;
  white-space: nowrap; text-overflow: ellipsis; transition: all .18s;
}
.prev-next a:hover { border-color: var(--brand); color: var(--brand); }
.prev-next a b { display: block; font-size: 12px; color: var(--ink-3); font-weight: 400; margin-bottom: 2px; }

/* 产品详情主图 */
.detail-cover { border-radius: var(--radius); overflow: hidden; background: #fff; box-shadow: var(--shadow-sm); margin-bottom: 22px; }
.detail-cover img { width: 100%; display: block; max-height: 460px; object-fit: cover; }

/* ---------- 14. 页脚 ---------- */
.site-footer { background: #16202c; color: rgba(255,255,255,.62); margin-top: 40px; }
.site-footer .foot-top {
  max-width: 1200px; margin: 0 auto; padding: 44px 20px 34px;
  display: grid; grid-template-columns: 1.4fr 1fr 1fr 1.2fr; gap: 36px;
}
.site-footer h4 { color: #fff; font-size: 15px; margin-bottom: 14px; font-weight: 500; }
.site-footer .foot-brand img { height: 64px; display: block; margin-bottom: 14px; }
.site-footer .foot-brand p { font-size: 13px; line-height: 1.9; margin: 0; }
.site-footer ul li { margin: 8px 0; font-size: 13.5px; }
.site-footer ul a { color: rgba(255,255,255,.62); }
.site-footer ul a:hover { color: #fff; padding-left: 4px; }
.site-footer .foot-contact li { color: rgba(255,255,255,.62); }
.site-footer .foot-contact b { color: #fff; font-weight: 500; }
.site-footer .foot-contact li.foot-tel { font-size: 32px; color: #ffb54d; font-weight: 700; letter-spacing: 1.5px; }
.site-footer .foot-tel a { color: #ffb54d; }
/* 联系方式可点击：电话 tel: / 邮箱 mailto:，样式与原文字一致 */
.site-footer .foot-contact a { color: inherit; text-decoration: none; }
.site-footer .foot-contact a b { color: #fff; }
.site-footer .foot-contact a:hover { color: #fff; text-decoration: underline; }
.site-footer .foot-contact li.foot-tel a, .site-footer .foot-contact li.foot-tel a:hover { color: #ffb54d; text-decoration: none; }
.site-footer .foot-bottom {
  border-top: 1px solid rgba(255,255,255,.09); padding: 16px 20px; text-align: center;
  font-size: 12.5px; color: rgba(255,255,255,.4); max-width: 1200px; margin: 0 auto;
}
.site-footer .foot-bottom a { color: rgba(255,255,255,.55); }

/* ---------- 14b. 首页产品展示（参考站同构：居中标题 + Tab 切换 + 卡片网格） ---------- */
.home-products { padding: 84px 0 76px; background: #fff; }
.sec-head { text-align: center; margin-bottom: 34px; }
.sec-title {
  font-size: 31px; font-weight: 700; color: var(--ink); letter-spacing: .5px;
  position: relative; display: inline-block; padding-bottom: 16px;
}
.sec-title::after {
  content: ""; position: absolute; left: 50%; bottom: 0; margin-left: -26px;
  width: 52px; height: 3px; background: var(--brand); border-radius: 3px;
}
.sec-sub { margin: 14px 0 0; font-size: 14.5px; color: var(--ink-3); letter-spacing: .3px; }

.ptabs-nav {
  display: flex; align-items: center; justify-content: center;
  border-bottom: 2px solid #eef1f5; overflow-x: auto; scrollbar-width: none;
  position: relative;
}
.ptabs-nav::-webkit-scrollbar { display: none; }
.ptab-item {
  flex-shrink: 0; padding: 15px 24px; font-size: 15.5px; font-weight: 500;
  color: var(--ink-3); cursor: pointer; border-bottom: 3px solid transparent;
  margin-bottom: -2px; transition: all .22s ease; white-space: nowrap;
}
.ptab-item:hover { color: var(--brand); }
.ptab-item.active { color: var(--brand); font-weight: 700; border-bottom-color: var(--brand); }

.ptabs-body { margin-top: 36px; }
.ptab-pane { display: none; }
.ptab-pane.active { display: block; }
/* JS 未执行时的兜底：至少展示第一个工艺分类 */
.ptabs-body:not(.inited) .ptab-pane:first-child { display: block; }
.ptabs-nav:not(.inited) .ptab-item:first-child { color: var(--brand); font-weight: 700; border-bottom-color: var(--brand); }
.pgrid { display: flex; flex-wrap: wrap; justify-content: center; gap: 24px; }

.pcard {
  width: calc((100% - 48px) / 3); box-sizing: border-box;
  display: flex; flex-direction: column; background: #fff;
  border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow-sm);
  transition: transform .35s cubic-bezier(.4,0,.2,1), box-shadow .35s cubic-bezier(.4,0,.2,1);
}
.pcard:hover { transform: translateY(-5px); box-shadow: var(--shadow-md); }
.pthumb { position: relative; aspect-ratio: 4 / 3; overflow: hidden; background: #eef4fd; }
.pthumb img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .45s ease; }
.pcard:hover .pthumb img { transform: scale(1.06); }
.poverlay {
  position: absolute; inset: 0; background: rgba(20,72,160,.78);
  display: flex; align-items: center; justify-content: center;
  opacity: 0; transition: opacity .35s ease;
}
.pcard:hover .poverlay { opacity: 1; }
.poverlay span {
  color: #fff; font-size: 14.5px; font-weight: 600; letter-spacing: .06em;
  border: 1px solid rgba(255,255,255,.72); padding: 9px 24px; border-radius: 30px;
}
.pbody { padding: 17px 18px 19px; text-align: center; flex: 1; display: flex; flex-direction: column; }
.pname {
  font-size: 15.5px; font-weight: 700; color: var(--ink); line-height: 1.5;
  display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient: vertical; overflow: hidden;
}
.pcard:hover .pname { color: var(--brand); }
.pmeta {
  margin: 8px 0 0; font-size: 12.5px; color: var(--ink-3); line-height: 1.7;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.pcat-more { text-align: center; margin-top: 34px; }
.pcat-more a {
  display: inline-block; padding: 11px 34px; border: 1px solid var(--brand);
  border-radius: 30px; color: var(--brand); font-size: 14.5px; font-weight: 500;
  transition: all .22s ease;
}
.pcat-more a:hover { background: var(--brand); color: #fff; box-shadow: 0 8px 20px rgba(28,95,200,.28); }
/* 无文章时的兜底提示 */
.pempty {
  grid-column: 1 / -1; text-align: center; padding: 46px 0; color: var(--ink-3);
  font-size: 14px; background: #f8fafd; border-radius: var(--radius);
}

/* ---------- 15. 响应式 ---------- */
@media (max-width: 1200px) {
  .nav-menu .nav-item .nav-link { padding: 0 18px; font-size: 15.5px; }
  .v2-slogan { display: none; }
  .nav-svc { gap: 15px; }
  .nav-svc li { font-size: 13.5px; }
}
@media (max-width: 992px) {
  .v2-site-nav .nav-inner { height: 74px; padding: 0 18px; gap: 14px; }
  .nav-menu .nav-item .nav-link { height: 48px; padding: 0 15px; font-size: 15px; }
  .nav-svc { display: none; }
  .v2-logo img { height: 42px; }
  .v2-head-right { padding: 6px 13px; }
  .v2-head-right .tel-num { font-size: 16px; }
  .v2-head-right .tel-label { display: none; }
  .mega-inner { padding: 20px 18px; }
  .mega-cats { min-width: 180px; padding-right: 16px; margin-right: 18px; }
  .mega-figure { width: 220px; }
  .mega-figure .mf-img { height: 132px; }
  .mega-points { grid-template-columns: 1fr; }
  .v2-layout { flex-direction: column; }
  /* 移动端隐藏左侧两个侧栏模块（栏目导航 + 联系我们），banner 里已有热线与标签 */
  body.v2 .v2-side { display: none; }
  .v2-side { width: 100%; position: static; }
  .pro-grid { grid-template-columns: repeat(2, 1fr); }
  .site-footer .foot-top { grid-template-columns: 1fr 1fr; }
  .rich-text { padding: 24px 20px; }
}
@media (max-width: 768px) {
  .pgrid { gap: 16px; }
  .pcard { width: calc((100% - 16px) / 2); }
  .home-products { padding: 56px 0 50px; }
  .sec-title { font-size: 24px; }
  .ptabs-nav { justify-content: center; }
  .ptab-item { padding: 13px 16px; font-size: 14.5px; }
}
@media (max-width: 640px) {
  .v2-banner h1 { font-size: 22px; }
  .pro-grid { grid-template-columns: 1fr; }
  .pcard { width: 100%; }
  .art-item { flex-direction: column; }
  .art-thumb { width: 100%; }
  /* 移动端：导航折行，菜单平铺，隐藏 Mega 面板（触屏无 hover） */
  .v2-site-nav .nav-inner { height: auto; flex-wrap: wrap; padding: 10px 14px; gap: 8px; }
  .nav-svc { display: none; }
  .nav-menu-inner { flex-wrap: wrap; justify-content: flex-start; padding: 0 10px; }
  .nav-menu .nav-item .nav-link { height: 40px; padding: 0 12px; font-size: 14.5px; }
  .v2-head-right { margin-left: auto; }
  .mega-menu { display: none; }
  .site-footer .foot-top { grid-template-columns: 1fr; gap: 24px; }
  .prev-next { flex-direction: column; }
}

/* ---------- 16. （已撤销：ys_bg1 区块按用户要求恢复原版背景图排版） ---------- */

/* ============================================================
   17. 产品详情页版式 v3（pd-*）
   结构：hero 首屏 → 锚点导航 → 正文分节卡片
   作用域限定 .pd-page，不影响其他页面
   ============================================================ */

/* ---------- 17.1 Hero 首屏 ---------- */
.pd-page { background: var(--bg); }
.pd-hero {
  position: relative; overflow: hidden; color: #fff;
  background: linear-gradient(118deg, #0b2450 0%, #114e9e 58%, #1c5fc8 100%);
}
.pd-hero::before {
  content: ""; position: absolute; right: -120px; top: -170px; width: 460px; height: 460px;
  border-radius: 50%; border: 64px solid rgba(255,255,255,.05);
}
.pd-hero::after {
  content: ""; position: absolute; right: 190px; bottom: -200px; width: 340px; height: 340px;
  border-radius: 50%; background: rgba(255,255,255,.04);
}
.pd-hero-inner {
  position: relative; z-index: 1; max-width: 1200px; margin: 0 auto;
  padding: 40px 20px 86px; display: flex; gap: 46px; align-items: center;
}
.pd-hero-l { flex: 1.15; min-width: 0; }
.pd-crumb { font-size: 12.5px; color: rgba(255,255,255,.62); margin-bottom: 15px; }
.pd-crumb a, .pd-crumb span { color: rgba(255,255,255,.62); }
.pd-crumb a:hover { color: #fff; }
.pd-hero h1 { font-size: 31px; line-height: 1.32; color: #fff; letter-spacing: .5px; }
.pd-hero .pd-en {
  margin-top: 9px; font-size: 12px; letter-spacing: 3.4px;
  color: rgba(255,255,255,.5); text-transform: uppercase;
}
.pd-hero .pd-lead {
  margin-top: 15px; max-width: 580px; font-size: 15.5px; line-height: 1.85;
  color: rgba(255,255,255,.87);
}
.pd-hero .pd-lead:empty { display: none; }
.pd-cta { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 26px; }
.pd-btn {
  display: inline-flex; align-items: center; gap: 8px; padding: 11px 26px;
  border-radius: 9px; font-size: 15px; font-weight: 600; transition: .2s;
}
.pd-btn-acc {
  color: #fff !important; background: linear-gradient(135deg, #ff9d3c, #ea7a1f);
  box-shadow: 0 8px 20px rgba(234,122,31,.35);
}
.pd-btn-acc:hover { color: #fff !important; transform: translateY(-2px); }
.pd-btn-ghost { color: #fff !important; border: 1px solid rgba(255,255,255,.42); }
.pd-btn-ghost:hover { color: #fff !important; background: rgba(255,255,255,.12); }
.pd-hero-r { flex: .85; position: relative; }
.pd-fig {
  overflow: hidden; border-radius: 14px; border: 1px solid rgba(255,255,255,.18);
  background: #fff; box-shadow: 0 24px 60px rgba(3,15,35,.45);
}
.pd-fig img { width: 100%; height: 316px; object-fit: cover; display: block; }

/* ---------- 17.2 锚点导航（hero 下方留白后置） ---------- */
.pd-anchor { position: relative; z-index: 3; margin-top: 26px; }
.pd-anchor-inner { max-width: 1200px; margin: 0 auto; padding: 0 20px; }
.pd-anchor-nav {
  display: none; gap: 4px; padding: 13px 10px;
  background: #fff; border-radius: 12px; box-shadow: var(--shadow-md);
  overflow-x: auto;
}
.pd-anchor-nav.on { display: flex; }
.pd-anchor-nav a {
  flex-shrink: 0; padding: 7px 16px; border-radius: 7px;
  font-size: 13.5px; color: var(--ink-2); white-space: nowrap;
}
.pd-anchor-nav a:hover { color: var(--brand); background: var(--brand-50); }

/* ---------- 17.3 正文容器 ---------- */
.pd-body { max-width: 1200px; margin: 0 auto; padding: 34px 20px 0; }
.pd-article {
  background: #fff; border-radius: var(--radius); box-shadow: var(--shadow-sm);
  padding: 6px 40px 40px;
}

/* ---------- 17.4 分节标题（自动编号） ---------- */
.pd-cpd { counter-reset: pdsec; }
.pd-cpd > h1:first-child { display: none; }
.pd-sec { counter-increment: pdsec; }
.pd-sec + .pd-sec, .pd-sec + p, .pd-sec + script { margin-top: 36px; }
.pd-sec + .pd-sec { border-top: 1px solid var(--line); padding-top: 36px; }
.pd-sec > h2 {
  position: relative; padding-left: 60px; min-height: 40px;
  font-size: 21px; line-height: 40px; margin-bottom: 18px;
}
.pd-sec > h2::before {
  content: counter(pdsec, decimal-leading-zero); position: absolute; left: 0; top: 0;
  font-family: "DIN Alternate", Arial, sans-serif; font-size: 30px; font-weight: 800;
  color: var(--brand-100); line-height: 40px; letter-spacing: -.5px;
}
.pd-sec > h2::after {
  content: ""; position: absolute; left: 60px; bottom: -6px; width: 32px; height: 3px;
  border-radius: 2px; background: linear-gradient(90deg, var(--brand), var(--accent));
}

/* ---------- 17.5 正文基础排版 ---------- */
.pd-cpd > p, .pd-sec > p { color: var(--ink-2); margin-bottom: 13px; }
.pd-cpd > p strong, .pd-sec > p strong { color: var(--ink); }
.pd-cpd a { color: var(--brand); }
.pd-cpd a:hover { color: var(--brand-700); }
.pd-cpd h3 { font-size: 16.5px; margin: 20px 0 10px; }
.pd-cpd ul { margin: 0 0 14px; }
.pd-cpd ul li {
  position: relative; padding-left: 20px; margin-bottom: 7px;
  color: var(--ink-2); font-size: 14.5px;
}
.pd-cpd ul li::before {
  content: ""; position: absolute; left: 4px; top: 11px; width: 5px; height: 5px;
  border-radius: 50%; background: var(--brand);
}

/* ---------- 17.6 表格 ---------- */
.pd-cpd table {
  width: 100%; border-collapse: collapse; font-size: 14px; margin: 8px 0 4px;
  box-shadow: var(--shadow-sm); border-radius: var(--radius-sm); overflow: hidden;
}
.pd-cpd table th {
  background: linear-gradient(135deg, #f2f7fe, #e9f1fc); color: var(--brand-700);
  font-weight: 600; text-align: left; padding: 12px 18px; border: 1px solid var(--line);
}
.pd-cpd table td { padding: 11px 18px; border: 1px solid var(--line); color: var(--ink-2); }
.pd-cpd table tbody tr:nth-child(even) { background: #fafcfe; }
.pd-cpd table td:first-child { color: var(--ink); font-weight: 500; }
.pd-cpd table b, .pd-cpd table strong { color: var(--brand-700); }

/* ---------- 17.7 要点卡（简介右侧） ---------- */
.pd-keybox {
  background: var(--brand-50); border-radius: var(--radius-sm);
  padding: 22px 26px; margin: 18px 0 4px;
}
.pd-keybox h3 {
  font-size: 15px; color: var(--brand-700); margin: 0 0 12px;
  padding-bottom: 10px; border-bottom: 1px dashed var(--brand-100);
}
.pd-keybox ul { margin: 0; }
.pd-keybox li {
  position: relative; padding-left: 22px; margin-bottom: 9px;
  font-size: 13.5px; color: var(--ink-2);
}
.pd-keybox li::before {
  content: "\2713"; position: absolute; left: 0; top: 0;
  color: var(--brand); font-weight: 700;
}
.pd-keybox li b { color: var(--ink); }

/* ---------- 17.8 应用场景卡 ---------- */
.pd-scenes { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.pd-scene {
  background: #fff; border: 1px solid var(--line); border-top: 3px solid var(--brand);
  border-radius: 12px; padding: 22px 20px; box-shadow: var(--shadow-sm); transition: .25s;
}
.pd-scene:hover {
  transform: translateY(-5px); box-shadow: var(--shadow-md); border-top-color: var(--accent);
}
.pd-scene h3 { font-size: 16px; margin: 0 0 8px; color: var(--ink); }
.pd-scene p { font-size: 13px; line-height: 1.7; color: var(--ink-2); margin: 0; }
.pd-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 12px; }
.pd-tags span {
  font-size: 11.5px; color: var(--brand); background: var(--brand-50);
  border-radius: 5px; padding: 2px 8px;
}

/* ---------- 17.9 三难题对照卡 ---------- */
.pd-trio { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.pd-trio-item {
  background: #fff; border: 1px solid var(--line); border-radius: 12px;
  overflow: hidden; box-shadow: var(--shadow-sm);
}
.pd-trio-item header {
  display: flex; align-items: center; gap: 10px; padding: 14px 20px;
  background: linear-gradient(135deg, #fdf3e9, #fbe9d8);
}
.pd-trio-item header .n {
  flex-shrink: 0; width: 26px; height: 26px; border-radius: 50%;
  background: var(--accent); color: #fff; font-size: 13px; font-weight: 700;
  display: flex; align-items: center; justify-content: center;
}
.pd-trio-item header h3 { margin: 0; font-size: 15.5px; color: var(--accent-dark); }
.pd-trio-item .bd { padding: 16px 20px; font-size: 13.5px; color: var(--ink-2); }
.pd-trio-item .bd b { display: block; font-size: 12px; margin-bottom: 3px; }
.pd-trio-item .bd .r { color: #c0392b; }
.pd-trio-item .bd .s { color: #1e8e5a; }
.pd-trio-item .bd p { margin: 0 0 12px; line-height: 1.68; }
.pd-trio-item .bd p:last-child { margin-bottom: 0; }

/* ---------- 17.10 质量流程时间轴 ---------- */
.pd-flow { display: flex; }
.pd-step { flex: 1; text-align: center; position: relative; }
.pd-step:not(:last-child)::after {
  content: ""; position: absolute; right: calc(-50% + 22px); top: 21px;
  width: calc(100% - 44px); height: 2px;
  background: repeating-linear-gradient(90deg, var(--brand-100) 0 8px);
}
.pd-step .dot {
  position: relative; z-index: 1; width: 44px; height: 44px; margin: 0 auto 12px;
  border-radius: 50%; background: var(--brand-50); border: 2px solid var(--brand);
  color: var(--brand); font-size: 16px; font-weight: 700;
  display: flex; align-items: center; justify-content: center; transition: .2s;
}
.pd-step:hover .dot { background: var(--brand); color: #fff; }
.pd-step h4 { font-size: 14.5px; margin-bottom: 5px; }
.pd-step p { font-size: 12px; color: var(--ink-3); line-height: 1.6; padding: 0 6px; margin: 0; }

/* ---------- 17.11 客户案例引用卡 ---------- */
.pd-case {
  position: relative; background: #fff; border: 1px solid var(--line);
  border-radius: 12px; padding: 28px 34px; box-shadow: var(--shadow-sm);
}
.pd-case::before {
  content: "\201C"; position: absolute; left: 20px; top: -4px;
  font: 80px/1 Georgia, serif; color: var(--brand-100);
}
.pd-case p {
  position: relative; padding-left: 44px; margin: 0;
  font-size: 15px; color: var(--ink-2); line-height: 1.85;
}
.pd-case-meta { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 16px; padding-left: 44px; }
.pd-case-meta span {
  font-size: 12.5px; background: var(--brand-50); color: var(--brand-700);
  border-radius: 6px; padding: 4px 12px;
}

/* ---------- 17.12 FAQ 手风琴 ---------- */
.pd-faq details {
  background: #fff; border: 1px solid var(--line); border-radius: var(--radius-sm);
  box-shadow: var(--shadow-sm); margin-bottom: 12px; overflow: hidden;
}
.pd-faq summary {
  list-style: none; cursor: pointer; position: relative;
  padding: 17px 52px 17px 22px; font-size: 15px; font-weight: 600; color: var(--ink);
}
.pd-faq summary::-webkit-details-marker { display: none; }
.pd-faq summary::after {
  content: "+"; position: absolute; right: 18px; top: 50%; transform: translateY(-50%);
  width: 24px; height: 24px; border-radius: 50%; background: var(--brand-50);
  color: var(--brand); font-weight: 700; font-size: 15px;
  display: flex; align-items: center; justify-content: center; transition: .25s;
}
.pd-faq details[open] summary::after { content: "\2212"; background: var(--brand); color: #fff; }
.pd-faq details > p, .pd-faq details > div { padding: 0 22px 18px; color: var(--ink-2); font-size: 14px; }

/* ---------- 17.13 相关工艺内链卡 ---------- */
.pd-rel { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.pd-rel a {
  display: block; background: #fff; border: 1px solid var(--line); border-radius: 12px;
  padding: 22px; box-shadow: var(--shadow-sm); transition: .25s;
}
.pd-rel a:hover { transform: translateY(-4px); box-shadow: var(--shadow-md); border-color: var(--brand-100); }
.pd-rel h3 { display: flex; align-items: center; gap: 8px; font-size: 15.5px; margin: 0; }
.pd-rel h3::before { content: "\2192"; color: var(--accent); font-weight: 700; }
.pd-rel p { font-size: 12.5px; color: var(--ink-3); line-height: 1.65; margin: 8px 0 0; }

/* ---------- 17.14 底部 CTA 条 ---------- */
.pd-ctabar {
  position: relative; overflow: hidden; margin-top: 42px; padding: 32px 42px;
  border-radius: 16px; display: flex; align-items: center; gap: 30px; color: #fff;
  background: linear-gradient(118deg, #0b2450, #1550ab 60%, #1c5fc8);
}
.pd-ctabar::after {
  content: ""; position: absolute; right: -60px; top: -70px; width: 240px; height: 240px;
  border-radius: 50%; border: 40px solid rgba(255,255,255,.06);
}
.pd-ctabar h3 { font-size: 21px; color: #fff; margin: 0; }
.pd-ctabar p { font-size: 13.5px; color: rgba(255,255,255,.75); margin: 5px 0 0; }
.pd-ctabar .pd-cta { margin: 0 0 0 auto; position: relative; z-index: 1; }

/* ---------- 17.15 响应式 ---------- */
@media (max-width: 1080px) {
  .pd-hero-inner { flex-direction: column; align-items: stretch; padding-bottom: 74px; }
  .pd-hero h1 { font-size: 25px; }
  .pd-fig img { height: 240px; }
  .pd-scenes, .pd-rel { grid-template-columns: repeat(2, 1fr); }
  .pd-trio { grid-template-columns: 1fr; }
  .pd-flow { flex-wrap: wrap; }
  .pd-step { flex: 1 1 33%; margin-bottom: 20px; }
  .pd-article { padding: 4px 20px 26px; }
  .pd-sec > h2 { font-size: 18px; padding-left: 50px; }
  .pd-sec > h2::before { font-size: 25px; }
  .pd-sec > h2::after { left: 50px; }
  .pd-ctabar { flex-direction: column; align-items: flex-start; padding: 26px 26px; }
  .pd-ctabar .pd-cta { margin-left: 0; }
}

/* ============================================================
   18. 顶部导航（旧版三段式回归）+ 简洁下拉菜单
   旧结构样式在 style.css（.topNav/.logoWrap/#navWrap），
   此处只补充下拉与悬浮交互
   ============================================================ */
/* 头部修复：topbg.jpg 只有 35px 高且仅横向平铺，#topWrap 其余区域透明，
   原 body 为白色无碍；v2 body 改浅灰蓝后从透明区透出，导致头部发灰、白底 LOGO 像补丁。
   给 #topWrap 补白底（蓝线由图片顶部 2px 提供，仍保留） */
body.v2 #topWrap { background-color: #fff; }
body.v2 .logoWrap { background: #fff; }

#topWrap, #navWrap { position: relative; z-index: 900; }
/* 修正：body.v2 a 与 .nav li a 同特异性且 v2 后加载，会盖掉菜单白字 */
#navWrap .nav > li > a, #navWrap .nav > li > a:hover, #navWrap .nav li.cur > a { color: #fff; }
#topWrap .topNav span a { color: #666; }
#topWrap .topNav span a:hover { color: #246cd7; }
#navWrap .nav { position: relative; }
#navWrap .nav li { position: relative; }
/* 有子栏目的项加小箭头 */
#navWrap .nav li.has-sub > a::after {
  content: ""; display: inline-block; margin-left: 5px; vertical-align: 2px;
  border: 4px solid transparent; border-top-color: currentColor; opacity: .65;
  transition: transform .2s;
}
#navWrap .nav li.has-sub:hover > a::after { transform: rotate(180deg); }
/* 下拉面板 */
#navWrap .nav li .nav-sub {
  position: absolute; top: 100%; left: 50%;
  min-width: 190px; margin: 0; padding: 8px 0;
  background: #fff; border-radius: 0 0 8px 8px;
  box-shadow: 0 14px 34px rgba(16,35,61,.18);
  border-top: 3px solid var(--accent);
  opacity: 0; visibility: hidden;
  transform: translate(-50%, 10px);
  transition: opacity .22s ease, transform .22s ease, visibility .22s;
  z-index: 950; list-style: none;
}
#navWrap .nav li.has-sub:hover .nav-sub,
#navWrap .nav li.has-sub:focus-within .nav-sub {
  opacity: 1; visibility: visible; transform: translate(-50%, 0);
}
#navWrap .nav li .nav-sub li { width: 100%; height: auto; float: none; line-height: 1.5; margin: 0; text-align: left; }
#navWrap .nav li .nav-sub a {
  display: block; padding: 9px 20px; font-size: 13.5px;
  color: var(--ink-2) !important; white-space: nowrap; transition: .15s;
}
#navWrap .nav li .nav-sub a:hover {
  color: var(--brand) !important; background: var(--brand-50);
}

/* ============================================================
   19. 首页旧区块重排（原为 1762px 背景图绝对定位排版，
   背景图移除后内容散落重叠，改为流式网格）
   ============================================================ */

/* ---------- 19.1 三大环节·三重品质防线（深蓝 3 列卡） ---------- */
body.v2 .threeWrap {
  height: auto; padding: 62px 0 70px;
  background: linear-gradient(118deg, #0b2450 0%, #114e9e 60%, #1c5fc8 100%);
}
body.v2 .three { width: auto; max-width: 1200px; margin: 0 auto; padding: 0 20px; }
body.v2 .tr_tit { font-size: 28px; color: #fff; margin-bottom: 38px; }
body.v2 .tr_tit b { font-size: 40px; color: #ffd9a8; }
body.v2 .tr_tit strong { margin-right: 22px; }
body.v2 .tr_tit em { color: rgba(255,255,255,.45); margin-top: 8px; }
body.v2 .tr_tit span { color: rgba(255,255,255,.75); font-size: 15px; margin: 12px 0 0; }
body.v2 .tr_list { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
body.v2 .tr_list li {
  float: none; width: auto; margin: 0; padding: 26px 24px;
  background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.16);
  border-radius: 12px; transition: .25s;
}
body.v2 .tr_list li:hover { background: rgba(255,255,255,.12); transform: translateY(-4px); }
body.v2 .tr_list img { width: 96px; height: auto; margin: 0 0 14px; }
body.v2 .tr_list b { text-align: left; color: #fff; font-size: 17px; margin: 0 0 12px; }
body.v2 .tr_list span {
  background: none; padding: 0 0 0 18px; margin-bottom: 8px;
  color: rgba(255,255,255,.78); font-size: 13.5px; position: relative; line-height: 1.7;
}
body.v2 .tr_list span:not(.qc-ico)::before {
  content: "\2713"; position: absolute; left: 0; top: 0; color: #7fd0ff; font-weight: 700;
}

/* ---------- 19.2 （已撤销：为什么选择恒真彩区块按用户要求恢复原版背景图+绝对定位排版，
   GEO 要点：正文文字全部保留在 HTML 的 dl/dt/dd 语义标签中，未烧死在背景图里，爬虫可完整抓取） ---------- */
/* 仅微调第 4 条宽度：v2 字体度量下 458px 会让标题"我们只为"折行出孤字"为" */
body.v2 .ys_part .y_dl4 { width: 512px; }

/* ---------- 19.3 产品卡描述两行截断 ---------- */
body.v2 .pcard .pmeta {
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
  overflow: hidden; line-height: 1.65;
}

/* ---------- 19.4 页脚精简（导航两列 + 收紧留白） ---------- */
body.v2 .site-footer .foot-top { padding: 38px 20px 28px; gap: 32px; }
body.v2 .site-footer .foot-top ul:not(.foot-contact) {
  column-count: 2; column-gap: 30px;
}
body.v2 .site-footer .foot-top ul:not(.foot-contact) li { margin: 0 0 9px; break-inside: avoid; }
body.v2 .site-footer .foot-brand p { font-size: 12.5px; }

@media (max-width: 1080px) {
  body.v2 .tr_list { grid-template-columns: 1fr; }
  /* 移动端页脚导航保持两列，避免列表过长 */
  body.v2 .site-footer .foot-top ul:not(.foot-contact) { column-count: 2; column-gap: 22px; }
}

/* ---------- 20. 移动/窄屏专项（banner 空白 / 页脚收紧） ----------
   注意：断点取 1080——部分手机浏览器 CSS 视口宽约 788px，之前 768 断点盖不住 */
@media (max-width: 1080px) {
  /* style.css 移动断点给 banner 加了 top:112px，头部下方形成大段空白 */
  body.v2 .main-banner-swiper { top: 0; aspect-ratio: 16 / 9; }
  body.v2 .main-banner-swiper .swiper-slide img { object-position: 30% center; }

  body.v2 .site-footer { margin-top: 28px; }
  body.v2 .site-footer .foot-top { grid-template-columns: 1fr 1fr; gap: 20px 24px; padding: 28px 18px 22px; }
  body.v2 .site-footer .foot-brand { grid-column: 1 / -1; }
  body.v2 .site-footer .foot-brand img { height: 50px; margin-bottom: 8px; }
  /* 品牌简介窄屏视觉截断为 3 行（HTML 文本保留完整，不影响抓取） */
  body.v2 .site-footer .foot-brand p {
    font-size: 12px; line-height: 1.75;
    display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
  }
  body.v2 .site-footer h4 { font-size: 14.5px; margin-bottom: 8px; }
  body.v2 .site-footer ul li { margin: 5px 0; font-size: 13px; }
  body.v2 .site-footer .foot-top ul:not(.foot-contact) { column-gap: 16px; }
  /* 联系我们：二维码浮到右侧，与联系信息并排，省一整行高度 */
  body.v2 .site-footer .foot-contact { position: relative; padding-right: 100px; }
  body.v2 .site-footer .foot-contact li[style] {
    position: absolute; right: 0; top: 2px; margin: 0 !important;
  }
  body.v2 .site-footer .foot-contact li[style] img { width: 84px; height: 84px; }
  body.v2 .site-footer .foot-contact .foot-tel { font-size: 28px; margin: 2px 0 6px; }
  body.v2 .site-footer .foot-bottom { padding: 12px 16px; font-size: 11.5px; line-height: 1.7; }
}

@media (max-width: 640px) {
  /* 手机：快速导航与页头菜单重复，直接隐藏；产品工艺改三列 */
  body.v2 .site-footer .foot-top { grid-template-columns: 1fr; }
  body.v2 .site-footer .foot-top > div:nth-child(2) { display: none; }
  body.v2 .site-footer .foot-top ul:not(.foot-contact) { column-count: 3; }
}

/* ---------- 21. 产品详情首屏 v4（左图集轮换+放大 / 右参数卡，浅色） ---------- */
.pd-top { background: #fff; }
.pd-top-inner {
  max-width: 1200px; margin: 0 auto; padding: 34px 20px 32px;
  display: grid; grid-template-columns: 540px 1fr; gap: 44px; align-items: start;
}
.pd-gal-main {
  position: relative; overflow: hidden; border-radius: 12px;
  background: #f4f7fb; border: 1px solid var(--line);
  aspect-ratio: 4 / 3; cursor: zoom-in;
}
.pd-gal-main img {
  width: 100%; height: 100%; object-fit: cover; display: block;
  transition: transform .2s ease; transform-origin: center center; will-change: transform;
}
.pd-gal-btn {
  position: absolute; top: 50%; transform: translateY(-50%);
  width: 38px; height: 56px; border: none; border-radius: 8px;
  background: rgba(255,255,255,.88); color: var(--brand-700);
  font-size: 26px; line-height: 1; cursor: pointer; box-shadow: var(--shadow-sm);
  display: flex; align-items: center; justify-content: center; z-index: 2;
}
.pd-gal-btn:hover { background: #fff; }
.pd-gal-prev { left: 12px; }
.pd-gal-next { right: 12px; }
.pd-gal-thumbs { display: flex; gap: 10px; margin-top: 12px; flex-wrap: wrap; }
.pd-thumb {
  width: 84px; height: 63px; border-radius: 8px; overflow: hidden;
  border: 2px solid transparent; cursor: pointer; background: #f4f7fb; flex-shrink: 0;
  padding: 0;
}
.pd-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.pd-thumb.on { border-color: var(--brand); }
.pd-cat-chip {
  display: inline-block; background: var(--brand-50); color: var(--brand-700);
  font-size: 13px; font-weight: 600; border-radius: 20px; padding: 5px 14px; margin-bottom: 12px;
  text-decoration: none; transition: background .2s, color .2s;
}
a.pd-cat-chip:hover, .pd-cat-chip:hover { background: var(--brand); color: #fff; }
.pd-title { font-size: 26px; line-height: 1.35; color: var(--ink); margin: 0 0 12px; }
.pd-top .pd-lead { font-size: 14.5px; line-height: 1.85; color: var(--ink-2); margin: 0 0 18px; }
.pd-specs { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 0 0 18px; }
.pd-spec {
  background: #f7f9fc; border: 1px solid var(--line); border-left: 3px solid var(--brand);
  border-radius: 8px; padding: 10px 14px;
}
.pd-spec span { display: block; font-size: 12.5px; color: var(--ink-3); margin-bottom: 3px; }
.pd-spec b { font-size: 16px; color: var(--brand-700); font-weight: 700; }
.pd-scenes { margin-bottom: 20px; display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.pd-scene-title { font-size: 13.5px; color: var(--ink-2); }
.pd-scene {
  font-size: 13px; color: var(--brand-700); background: var(--brand-50);
  border: 1px solid var(--brand-100); border-radius: 6px; padding: 5px 10px;
  transition: background .2s ease, border-color .2s ease;
}
.pd-scene:hover { background: #e6effe; border-color: #bcd4f7; }
.pd-scene-src { display: none; }
.pd-trust {
  display: flex; flex-wrap: wrap; gap: 6px 18px;
  margin-top: 12px; font-size: 12.5px; color: var(--ink-3); line-height: 1.6;
}
.pd-trust span { position: relative; padding-left: 15px; }
.pd-trust span::before {
  content: ""; position: absolute; left: 0; top: 50%;
  width: 10px; height: 6px; margin-top: -4px;
  border-left: 1.8px solid #3aa76d; border-bottom: 1.8px solid #3aa76d;
  transform: rotate(-45deg);
}
.pd-top .pd-cta { display: flex; gap: 12px; }
.pd-top .pd-btn-ghost { border-color: var(--brand) !important; color: var(--brand) !important; background: #fff !important; }
.pd-top .pd-btn-ghost:hover { background: var(--brand-50) !important; color: var(--brand-700) !important; }
@media (max-width: 1080px) {
  .pd-top-inner { grid-template-columns: 1fr; gap: 24px; padding: 24px 16px 26px; }
  .pd-title { font-size: 21px; }
}

/* ============================================================
   22. 首页两区块协调优化（产品展示 + 3重品质防线）
   目标：与全站品牌蓝/浅色卡面体系一致，仅作用于这两个区块
   ============================================================ */

/* ---------- 22.1 产品展示：浅蓝灰底衬白卡 + 胶囊 Tab + 网格左对齐 ---------- */
body.v2 .home-products {
  background: linear-gradient(180deg, #f4f8fd 0%, #eef4fb 100%);
}
/* 卡片加描边，浅底上轮廓更清晰 */
body.v2 .pcard { border: 1px solid var(--line); }
/* 不足一行的卡片左对齐，避免"半行居中"失衡 */
body.v2 .pgrid { justify-content: flex-start; }
/* Tab 由下划线改为胶囊芯片，与"查看全部"胶囊按钮呼应 */
body.v2 .ptabs-nav {
  border-bottom: none; gap: 10px; flex-wrap: wrap;
  padding-bottom: 4px;
}
body.v2 .ptab-item {
  padding: 9px 22px; font-size: 14.5px; line-height: 1.4;
  border: 1px solid var(--line); border-bottom: 1px solid var(--line);
  border-radius: 30px; background: #fff; margin-bottom: 0;
  color: var(--ink-2); transition: all .22s ease;
}
body.v2 .ptab-item:hover { border-color: var(--brand-100); color: var(--brand); background: var(--brand-50); }
body.v2 .ptab-item.active,
body.v2 .ptabs-nav:not(.inited) .ptab-item:first-child {
  background: linear-gradient(118deg, var(--brand) 0%, #2f7ae0 100%);
  border-color: transparent; color: #fff; font-weight: 600;
  box-shadow: 0 6px 14px rgba(28,95,200,.24);
}
body.v2 .ptabs-body { margin-top: 30px; }

/* ---------- 22.2 三重品质防线：品牌蓝渐变统一 + 图标徽章替代圆形照片 ---------- */
body.v2 .threeWrap {
  background:
    radial-gradient(720px 300px at 88% -10%, rgba(64,140,235,.38) 0%, rgba(64,140,235,0) 70%),
    linear-gradient(118deg, #0d2f66 0%, #1550ab 58%, #1c5fc8 100%);
}
body.v2 .tr_list .qc-ico {
  width: 58px; height: 58px; border-radius: 14px; margin: 2px 0 16px;
  display: flex; align-items: center; justify-content: center;
  background: linear-gradient(135deg, rgba(255,255,255,.18), rgba(255,255,255,.05));
  border: 1px solid rgba(255,255,255,.24);
  color: #8fd2ff; box-shadow: inset 0 1px 0 rgba(255,255,255,.18);
}
body.v2 .tr_list .qc-ico svg { width: 30px; height: 30px; display: block; }
body.v2 .tr_list li:hover .qc-ico { color: #ffd9a8; border-color: rgba(255,217,168,.4); }

/* ============================================================
   23. 首页"为什么选择恒真彩"第4段对齐修正 + 关于我们/新闻/FAQ 排版美化
   （仅调整排版与字体，布局结构不变）
   ============================================================ */

/* ---------- 23.1 第四段文字下移，与背景图世界地图/客户 LOGO 区垂直对齐 ---------- */
body.v2 .ys_part .y_dl4 { width: 512px; top: 1196px; }
/* 第四段标题行高收紧，避免两行标题间距过大显得松散 */
body.v2 .ys_part .y_dl4 dt { line-height: 1.45; }

/* ---------- 23.2 关于我们（ABOUT US）：白卡 + 图文双栏 ---------- */
body.v2 #aboutUs {
  box-sizing: border-box; margin: 26px auto;
  background: #fff; border-radius: 16px; padding: 30px 38px 34px;
  box-shadow: var(--shadow-sm);
}
body.v2 .aboutUsTitle { padding-bottom: 14px; }
body.v2 .aboutUsTitle h3 {
  border-left: 4px solid var(--brand); padding-left: 14px;
  font-size: 13px; font-weight: 600; letter-spacing: .16em;
  color: var(--ink-3); text-transform: uppercase; line-height: 1.4;
}
body.v2 .aboutUsTitle h3 em {
  display: block; font-style: normal; letter-spacing: 1px;
  font-size: 23px; font-weight: 700; color: var(--ink); margin-top: 3px;
}
body.v2 .aboutUsTitle span a, body.v2 .infoRightTitle span a,
body.v2 .infoLeftNav span a {
  color: var(--ink-3); font-size: 13px; transition: color .18s;
}
body.v2 .aboutUsTitle span a:hover, body.v2 .infoRightTitle span a:hover,
body.v2 .infoLeftNav span a:hover { color: var(--brand); }
/* 图文双栏：图片不再被文字环绕 */
body.v2 .aboutUsCon {
  display: flex; align-items: flex-start; gap: 30px;
  padding: 26px 0 6px; margin: 0;
  font-size: 15px; line-height: 2.05;
  color: var(--ink-2); text-align: justify;
}
body.v2 .aboutUsCon img {
  width: 40%; max-width: 460px; min-width: 260px; height: auto;
  margin: 0; float: none; flex: none;
  border-radius: 12px; box-shadow: var(--shadow-md);
}
body.v2 .aboutUsCon .aboutTxt { flex: 1; min-width: 0; }
body.v2 .aboutUsCon .aboutTxt::after {
  content: ""; display: block; clear: both;
}
body.v2 a.moreBtn {
  display: inline-block; margin-top: 10px; padding: 9px 30px;
  background: var(--brand); border-radius: 30px; color: #fff;
  font-size: 14px; letter-spacing: 1px;
  box-shadow: 0 4px 12px rgba(28,95,200,.25); transition: all .22s ease;
}
body.v2 a.moreBtn:hover { background: var(--brand-700); color: #fff; box-shadow: 0 6px 16px rgba(28,95,200,.32); }
@media (max-width: 1080px) {
  body.v2 #aboutUs { width: auto; margin: 16px 14px; padding: 22px 20px 26px; }
}
@media (max-width: 768px) {
  body.v2 .aboutUsCon { flex-direction: column; gap: 18px; }
  body.v2 .aboutUsCon img { width: 100%; max-width: none; min-width: 0; }
}
@media (max-width: 1080px) {
  body.v2 .aboutUsCon { flex-direction: column; gap: 18px; }
  body.v2 .aboutUsCon img { width: 100%; max-width: none; min-width: 0; }
}

/* ---------- 23.3 公司新闻/行业资讯：Tab 与列表精修 ---------- */
body.v2 .infoLeftNav { border-bottom: 2px solid var(--line); }
body.v2 .infoLeftNav li { width: auto; padding: 0 6px; }
body.v2 .infoLeftNav li a {
  border-bottom: none; font-size: 17px; font-weight: 600;
  color: var(--ink-2); line-height: 42px;
}
body.v2 .infoLeftNav li.curr { border-bottom: 3px solid var(--brand); }
body.v2 .infoLeftNav li.curr a,
body.v2 .infoLeftNav li a:hover { color: var(--brand); border-bottom: none; }
body.v2 .infoLeftCon dl dt {
  border-radius: 10px; overflow: hidden; box-shadow: var(--shadow-sm);
}
body.v2 .infoLeftCon dl dt img { display: block; width: 220px; height: 156px; object-fit: cover; }
body.v2 .infoLeftCon dl dd {
  background: none; padding-left: 18px; position: relative;
  border-bottom: 1px solid var(--line); line-height: 45px;
}
body.v2 .infoLeftCon dl dd::before {
  content: ""; position: absolute; left: 0; top: 50%; margin-top: -3px;
  width: 6px; height: 6px; border-radius: 50%; background: var(--brand-100);
  transition: background .18s;
}
body.v2 .infoLeftCon dl dd:hover::before { background: var(--brand); }
body.v2 .infoLeftCon dl dd a {
  display: inline-block; vertical-align: middle; max-width: 72%;
  overflow: hidden; white-space: nowrap; text-overflow: ellipsis;
  color: var(--ink-2); font-size: 14.5px;
}
body.v2 .infoLeftCon dl dd a:hover { color: var(--brand); }
body.v2 .infoLeftCon dl dd span { color: var(--ink-3); font-size: 13px; }

/* ---------- 23.4 常见问题 FAQ：问答行距与字色精修 ---------- */
body.v2 .infoRightTitle {
  border-bottom: 2px solid var(--line); font-size: 17px;
  font-weight: 700; color: var(--ink); line-height: 42px;
}
body.v2 .infoRightCon { height: auto; }
body.v2 .infoRightCon li { padding: 9px 0 7px; border-bottom: 1px dashed var(--line); }
body.v2 .infoRightCon li h3 a { color: var(--ink); font-size: 15px; font-weight: 600; }
body.v2 .infoRightCon li h3 a:hover { color: var(--brand); text-decoration: none; }
body.v2 .infoRightCon li p { color: var(--ink-3); font-size: 13.5px; line-height: 1.9; margin: 7px 0; }

/* ---------- 22.3 客户见证 LOGO 卡（/customer/ 列表） ---------- */
.pro-grid .logo-card {
  background: #fff; border: 1px solid var(--line); border-radius: var(--radius);
  padding: 28px 20px 20px; display: flex; flex-direction: column; align-items: center;
  text-align: center; transition: all .22s ease; box-shadow: var(--shadow-sm);
}
.pro-grid .logo-card:hover {
  transform: translateY(-4px); box-shadow: var(--shadow-md); border-color: var(--brand-100);
}
.pro-grid .logo-box {
  width: 100%; height: 120px; display: flex; align-items: center; justify-content: center;
  background: #fff;
}
.pro-grid .logo-box img {
  max-width: 82%; max-height: 100%; width: auto; height: auto; object-fit: contain; display: block;
}
.pro-grid .logo-card h3 {
  margin: 16px 0 0; font-size: 15px; font-weight: 600; color: var(--ink); line-height: 1.5;
}
.pro-grid .logo-card:hover h3 { color: var(--brand); }
.pro-grid .logo-card .logo-more {
  margin-top: 8px; font-size: 12.5px; color: var(--ink-3); transition: color .18s;
}
.pro-grid .logo-card:hover .logo-more { color: var(--brand); }
@media (max-width: 640px) {
  .pro-grid .logo-box { height: 92px; }
}


/* ---------- 24. 产品详情页「相关产品」区块 ---------- */
body.v2 .pd-related {
  background: #fff; border-top: 1px solid var(--line);
  padding: 52px 0 60px;
}
body.v2 .pd-related-inner { max-width: 1200px; margin: 0 auto; padding: 0 20px; }
body.v2 .pd-related-tit {
  margin: 0 0 34px; text-align: center;
  font-size: 28px; font-weight: 700; color: #1a2740; letter-spacing: 2px;
  line-height: 1.2;
}
body.v2 .pd-related-tit::after {
  content: ""; display: block; width: 46px; height: 4px; border-radius: 2px;
  background: linear-gradient(90deg, var(--brand), #4a8cf0);
  margin: 13px auto 0;
}
body.v2 .pd-rel-grid {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px;
}
body.v2 .pd-rel-card {
  display: flex; flex-direction: column; align-items: center;
  background: #fff; border: 1px solid #eef2f9; border-radius: 14px;
  overflow: hidden; box-shadow: 0 2px 10px rgba(16,35,61,.05);
  transition: transform .24s ease, box-shadow .24s ease, border-color .24s ease;
  text-align: center;
}
body.v2 .pd-rel-card:hover {
  transform: translateY(-6px); border-color: var(--brand-100);
  box-shadow: 0 14px 32px rgba(16,35,61,.13);
}
body.v2 .pd-rel-fig {
  width: 100%; height: 200px; padding: 0;
  box-sizing: border-box;
  display: flex; align-items: center; justify-content: center;
  overflow: hidden;
  background: linear-gradient(180deg, #eef4ff 0%, #dfe9fb 100%);
}
body.v2 .pd-rel-fig img {
  width: 100%; height: 100%;
  object-fit: cover; display: block;
  transition: transform .28s ease;
}
body.v2 .pd-rel-card:hover .pd-rel-fig img { transform: scale(1.05); }
body.v2 .pd-rel-card h3 {
  margin: 16px 0 0; padding: 0 16px; font-size: 15px; font-weight: 600;
  color: #2b3648; line-height: 1.5; max-width: 100%;
  overflow: hidden; white-space: nowrap; text-overflow: ellipsis;
}
body.v2 .pd-rel-card:hover h3 { color: var(--brand); }
body.v2 .pd-rel-more {
  margin: 8px 0 20px; font-size: 13px; color: var(--brand);
  letter-spacing: .3px; transition: transform .2s ease, color .2s ease;
}
body.v2 .pd-rel-card:hover .pd-rel-more { transform: translateX(3px); color: var(--brand-700); }

@media (max-width: 1080px) {
  body.v2 .pd-related { padding: 38px 0 44px; }
  body.v2 .pd-related-tit { font-size: 22px; margin-bottom: 24px; }
  body.v2 .pd-rel-grid { grid-template-columns: repeat(2, 1fr); gap: 14px; }
  body.v2 .pd-rel-fig { height: 168px; padding: 0; }
  body.v2 .pd-rel-card h3 { font-size: 14px; margin-top: 12px; padding: 0 12px; }
  body.v2 .pd-rel-more { margin-bottom: 15px; }
}
@media (max-width: 640px) {
  body.v2 .pd-rel-fig { height: 132px; padding: 0; }
}

/* ---------- 25. 关于我们「车间设备」区块（一行三个） ---------- */
body.v2 .eq-section {
  margin-top: 40px; padding-top: 34px; border-top: 1px solid #eef2f9;
}
body.v2 .eq-head {
  display: flex; align-items: flex-end; justify-content: space-between;
  gap: 20px; margin-bottom: 24px;
}
body.v2 .eq-kicker {
  display: block; font-size: 11px; font-weight: 600; letter-spacing: 2.4px;
  color: var(--brand); text-transform: uppercase; margin-bottom: 6px;
}
body.v2 .eq-head h2 {
  font-size: 21px; line-height: 1.35; margin: 0 0 9px; padding-left: 12px;
  border-left: 4px solid var(--brand); color: #1a2740;
}
body.v2 .eq-head p {
  margin: 0; font-size: 13.5px; line-height: 1.85; color: var(--ink-3);
  max-width: 640px;
}
body.v2 .eq-more {
  flex: none; font-size: 13px; color: var(--brand); white-space: nowrap;
  padding: 8px 16px; border-radius: 999px; background: var(--brand-50);
  border: 1px solid rgba(36, 92, 215, .16); transition: all .22s ease;
  margin-bottom: 4px;
}
body.v2 .eq-more em { font-style: normal; transition: transform .22s ease; display: inline-block; }
body.v2 .eq-more:hover { background: var(--brand); color: #fff; border-color: var(--brand); }
body.v2 .eq-more:hover em { transform: translateX(4px); }

body.v2 .eq-grid {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px;
}
body.v2 .eq-card {
  margin: 0; background: #fff; border: 1px solid #eef2f9; border-radius: 12px;
  overflow: hidden; box-shadow: 0 2px 9px rgba(16, 35, 61, .05);
  transition: transform .26s ease, box-shadow .26s ease, border-color .26s ease;
}
body.v2 .eq-card:hover {
  transform: translateY(-4px); border-color: var(--brand-100);
  box-shadow: 0 14px 30px rgba(16, 35, 61, .14);
}
body.v2 .eq-fig {
  position: relative; aspect-ratio: 4 / 3; overflow: hidden; background: #eef2f7;
}
body.v2 .eq-fig img {
  width: 100%; height: 100% !important; object-fit: cover; display: block;
  margin: 0 !important; border-radius: 0; box-shadow: none; max-width: none;
  transition: transform .55s ease;
}
body.v2 .eq-card:hover .eq-fig img { transform: scale(1.06); }
body.v2 .eq-no {
  position: absolute; left: 10px; top: 10px; z-index: 2;
  font-size: 11px; font-weight: 600; letter-spacing: 1px; color: #fff;
  padding: 3px 8px; border-radius: 6px; line-height: 1.4;
  background: rgba(16, 35, 61, .52); backdrop-filter: blur(4px);
}
body.v2 .eq-cap {
  display: flex; align-items: center; justify-content: space-between; gap: 10px;
  padding: 11px 13px 12px;
}
body.v2 .eq-cap h3 {
  margin: 0; font-size: 14px; font-weight: 600; line-height: 1.5; color: #2b3648;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  transition: color .2s ease;
}
body.v2 .eq-card:hover .eq-cap h3 { color: var(--brand); }
body.v2 .eq-tag {
  flex: none; font-size: 11px; line-height: 1.5; color: var(--brand);
  background: var(--brand-50); padding: 2px 7px; border-radius: 4px;
}

@media (max-width: 1080px) {
  body.v2 .eq-section { margin-top: 30px; padding-top: 26px; }
  body.v2 .eq-head { flex-wrap: wrap; align-items: flex-start; gap: 12px; margin-bottom: 18px; }
  body.v2 .eq-head h2 { font-size: 19px; }
  body.v2 .eq-more { margin-bottom: 0; }
  body.v2 .eq-grid { gap: 13px; }
  body.v2 .eq-cap { padding: 9px 11px 10px; }
  body.v2 .eq-cap h3 { font-size: 13px; }
  body.v2 .eq-tag { display: none; }
}
@media (max-width: 768px) {
  body.v2 .eq-grid { grid-template-columns: repeat(2, 1fr); }
}

/* ---------- 26. 回到顶部按钮 ---------- */
body.v2 .back-top {
  position: fixed; right: 30px; bottom: 34px; z-index: 9000;
  width: 50px; height: 50px; padding: 0; border: 0; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  cursor: pointer; overflow: visible;
  background: linear-gradient(150deg, #2f78e6 0%, var(--brand) 52%, #123f8f 100%);
  box-shadow: 0 8px 20px rgba(18, 63, 143, .26), 0 2px 6px rgba(18, 63, 143, .18),
              inset 0 1px 0 rgba(255, 255, 255, .32);
  opacity: 0; visibility: hidden; pointer-events: none;
  transform: translateY(16px) scale(.9);
  transition: opacity .3s ease, transform .34s cubic-bezier(.34, 1.4, .64, 1),
              box-shadow .28s ease, visibility .3s;
}
body.v2 .back-top.is-on {
  opacity: 1; visibility: visible; pointer-events: auto;
  transform: translateY(0) scale(1);
}
body.v2 .back-top svg {
  width: 21px; height: 21px; display: block;
  stroke: #fff; stroke-width: 2.4; fill: none;
  stroke-linecap: round; stroke-linejoin: round;
  transition: transform .3s ease;
}
body.v2 .back-top::after {
  content: ""; position: absolute; inset: -5px; border-radius: 50%;
  border: 1px solid rgba(28, 95, 200, .28);
  opacity: 0; transform: scale(.86);
  transition: opacity .3s ease, transform .32s ease;
}
body.v2 .back-top:hover {
  box-shadow: 0 14px 30px rgba(18, 63, 143, .34), 0 3px 8px rgba(18, 63, 143, .2),
              inset 0 1px 0 rgba(255, 255, 255, .38);
  transform: translateY(-4px) scale(1.04);
}
body.v2 .back-top:hover::after { opacity: 1; transform: scale(1); }
body.v2 .back-top:hover svg { transform: translateY(-2px); }
body.v2 .back-top:active { transform: translateY(-1px) scale(.97); }
body.v2 .back-top:focus-visible { outline: 3px solid rgba(28, 95, 200, .38); outline-offset: 3px; }
/* 悬停时左侧提示 */
body.v2 .back-top-tip {
  position: absolute; right: calc(100% + 12px); top: 50%;
  transform: translateY(-50%) translateX(6px);
  padding: 5px 11px; border-radius: 6px; white-space: nowrap;
  font-size: 12px; line-height: 1.4; letter-spacing: .4px;
  color: #fff; background: rgba(23, 37, 58, .9);
  box-shadow: 0 4px 12px rgba(16, 35, 61, .18);
  opacity: 0; visibility: hidden; pointer-events: none;
  transition: opacity .24s ease, transform .24s ease, visibility .24s;
}
body.v2 .back-top-tip::after {
  content: ""; position: absolute; left: 100%; top: 50%; margin-top: -4px;
  border: 4px solid transparent; border-left-color: rgba(23, 37, 58, .9);
}
body.v2 .back-top:hover .back-top-tip { opacity: 1; visibility: visible; transform: translateY(-50%) translateX(0); }
@media (max-width: 1080px) {
  body.v2 .back-top { right: 18px; bottom: calc(22px + env(safe-area-inset-bottom, 0px)); width: 44px; height: 44px; }
  body.v2 .back-top svg { width: 19px; height: 19px; }
  body.v2 .back-top-tip { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  body.v2 .back-top { transition: opacity .2s ease, visibility .2s; transform: none; }
  body.v2 .back-top.is-on { transform: none; }
  body.v2 .back-top:hover { transform: none; }
  body.v2 .back-top svg, body.v2 .back-top::after { transition: none; }
}

/* ---------- 27. 移动端折叠菜单美化 ---------- */
@media (max-width: 768px) {
  /* 顶栏 SEO 文案已清空：隐藏空横条，头部收窄为一行 LOGO */
  body.v2 .topNav { display: none; }
  /* 汉堡按钮与 LOGO 垂直居中 */
  body.v2 .wapMenu { top: 28px; }
  /* 白底卡片式下拉面板，替代旧版黑底半透明 */
  body.v2 #navWrap {
    position: fixed; top: 80px; left: 0; right: 0; bottom: auto;
    height: auto; max-height: calc(100vh - 80px);
    overflow-y: auto; -webkit-overflow-scrolling: touch;
    background: #fff; border-top: 1px solid var(--line);
    box-shadow: 0 18px 40px rgba(16, 35, 61, .16);
    z-index: 899;
  }
  /* 菜单项通栏排列 */
  body.v2 #navWrap .nav { width: 100%; }
  body.v2 #navWrap .nav li {
    width: 100%; height: auto; float: none; line-height: 1.5; margin: 0 !important;
    border-bottom: 1px solid #eef2f9; text-align: left;
  }
  body.v2 #navWrap .nav li:nth-child(9) { display: none; }
  body.v2 #navWrap .nav li a {
    display: flex; align-items: center;
    padding: 13px 20px; font-size: 15.5px; line-height: 1.5;
    color: var(--ink) !important; letter-spacing: .3px;
  }
  body.v2 #navWrap .nav li a:hover { background: var(--brand-50); }
  body.v2 #navWrap .nav li.cur > a {
    color: var(--brand) !important; background: var(--brand-50);
    box-shadow: inset 3px 0 0 var(--brand); font-weight: 600;
  }
  /* 子栏目已默认展开，去掉误导性小箭头 */
  body.v2 #navWrap .nav li.has-sub > a::after { display: none; }
  body.v2 #navWrap .nav li.has-sub:hover > a::after { transform: none; }
  /* 子菜单改为静态浅灰缩进区 */
  body.v2 #navWrap .nav li .nav-sub {
    position: static; opacity: 1; visibility: visible; transform: none;
    min-width: 0; margin: 0; padding: 4px 0 8px;
    background: #f6f9fd; border-top: none; border-radius: 0;
    box-shadow: none; transition: none;
  }
  body.v2 #navWrap .nav li .nav-sub li { width: 100%; border-bottom: none; }
  body.v2 #navWrap .nav li .nav-sub a {
    padding: 8px 20px 8px 36px; font-size: 14px;
    color: var(--ink-2) !important; display: block;
  }
  body.v2 #navWrap .nav li .nav-sub a::before {
    content: ""; display: inline-block; width: 4px; height: 4px;
    border-radius: 50%; background: var(--brand); opacity: .55;
    margin-right: 9px; vertical-align: 3px;
  }
}

/* ---------- 28. 新闻详情页：相关产品/相关文章横向轮换 ---------- */
body.v2 .rel-sec { max-width: 1200px; margin: 44px auto 6px; }
body.v2 .rel-sec + .rel-sec { margin-top: 30px; }
body.v2 .rel-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 16px; }
body.v2 .rel-head h3 {
  margin: 0; padding-left: 12px; border-left: 4px solid var(--brand);
  font-size: 20px; font-weight: 700; color: #1a2740; line-height: 1.3;
}
body.v2 .rel-head .rel-more { font-size: 13px; color: var(--ink-3); transition: color .18s; }
body.v2 .rel-head .rel-more:hover { color: var(--brand); }
body.v2 .rel-carousel { position: relative; }
body.v2 .rel-track {
  display: flex; gap: 16px;
  overflow-x: auto; scroll-snap-type: x mandatory;
  padding: 4px 2px 12px; scrollbar-width: none;
}
body.v2 .rel-track::-webkit-scrollbar { display: none; }
body.v2 .rel-card {
  flex: 0 0 calc((100% - 48px) / 4); scroll-snap-align: start;
  display: block; background: #fff; border: 1px solid #eef2f9; border-radius: 12px;
  overflow: hidden; box-shadow: 0 2px 10px rgba(16,35,61,.05);
  transition: transform .22s ease, box-shadow .22s ease;
}
body.v2 .rel-card:hover { transform: translateY(-4px); box-shadow: 0 12px 26px rgba(16,35,61,.12); }
body.v2 .rel-fig {
  height: 150px; margin: 8px 8px 0; border-radius: 8px;
  overflow: hidden; background: linear-gradient(180deg, #eef4ff, #dfe9fb);
}
body.v2 .rel-fig img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .28s ease; }
body.v2 .rel-card:hover .rel-fig img { transform: scale(1.05); }
body.v2 .rel-card h4 {
  margin: 0; padding: 11px 14px 4px; font-size: 14px; font-weight: 600; color: #2b3648; line-height: 1.55;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
body.v2 .rel-card:hover h4 { color: var(--brand); }
body.v2 .rel-card .rel-date { padding: 0 14px 12px; font-size: 12px; color: var(--ink-3); }
body.v2 .rel-nav {
  position: absolute; top: 42%; transform: translateY(-50%); z-index: 5;
  width: 42px; height: 42px; border: none; border-radius: 50%;
  background: #fff; color: #1a2740; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 6px 18px rgba(16,35,61,.18); transition: all .2s ease;
}
body.v2 .rel-nav:hover { color: var(--brand); box-shadow: 0 8px 24px rgba(16,35,61,.26); }
body.v2 .rel-nav:active { transform: translateY(-50%) scale(.94); }
body.v2 .rel-nav svg { width: 20px; height: 20px; stroke: currentColor; stroke-width: 2.4; fill: none; stroke-linecap: round; stroke-linejoin: round; }
body.v2 .rel-prev { left: -15px; }
body.v2 .rel-next { right: -15px; }
body.v2 .rel-nav.off { opacity: 0; pointer-events: none; }
@media (max-width: 1080px) {
  body.v2 .rel-sec { margin: 30px 14px 6px; }
  body.v2 .rel-sec + .rel-sec { margin-top: 22px; }
  body.v2 .rel-card { flex-basis: calc((100% - 16px) / 2); }
  body.v2 .rel-fig { height: 128px; }
  /* 触屏滑动浏览，隐藏箭头 */
  body.v2 .rel-nav { display: none; }
}

/* ---------- 29. 新闻列表：置顶要闻大卡 ---------- */
body.v2 .feat-card {
  display: flex; gap: 26px; align-items: stretch;
  background: #fff; border-radius: 14px; box-shadow: var(--shadow-sm);
  padding: 18px; margin-bottom: 20px;
}
body.v2 .feat-thumb { flex: none; width: 46%; border-radius: 10px; overflow: hidden; background: #edf1f7; }
body.v2 .feat-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .3s ease; }
body.v2 .feat-card:hover .feat-thumb img { transform: scale(1.04); }
body.v2 .feat-info {
  flex: 1; min-width: 0; display: flex; flex-direction: column; align-items: flex-start;
  padding: 8px 6px 4px 0;
}
body.v2 .feat-badge {
  display: inline-flex; align-items: center; gap: 5px;
  font-size: 12px; font-weight: 600; letter-spacing: 1px;
  color: #b26a00; background: #fff4e3; border: 1px solid #ffe0ad;
  padding: 3px 13px; border-radius: 999px;
}
body.v2 .feat-badge::before { content: "★"; font-size: 11px; }
body.v2 .feat-info h2 {
  margin: 15px 0 10px; font-size: 14px; line-height: 1.7; font-weight: 700; color: var(--ink);
}
body.v2 .feat-info h2 a { color: inherit; }
body.v2 .feat-info h2 a:hover { color: var(--brand); }
body.v2 .feat-info p {
  margin: 0; font-size: 14.5px; color: #66727f; line-height: 1.9; text-align: justify;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
body.v2 .feat-meta { margin-top: auto; padding-top: 14px; font-size: 13px; color: var(--ink-3); }
body.v2 .feat-btn {
  display: inline-flex; align-items: center; gap: 7px; margin-top: 12px;
  padding: 9px 26px; border: 1px solid var(--brand-100); border-radius: 30px;
  background: var(--brand-50); color: var(--brand);
  font-size: 13.5px; letter-spacing: .5px; transition: all .22s ease;
}
body.v2 .feat-btn:hover { background: var(--brand); border-color: var(--brand); color: #fff; box-shadow: 0 6px 16px rgba(28,95,200,.28); }
@media (max-width: 768px) {
  body.v2 .feat-card { flex-direction: column; gap: 14px; padding: 14px; }
  body.v2 .feat-thumb { width: 100%; aspect-ratio: 16 / 9; }
  body.v2 .feat-info { padding: 0; }
  body.v2 .feat-info h2 { font-size: 14px; margin-top: 12px; }
}

/* ---------- 30. 产品卖点区块 ---------- */
body.v2 .pd-sell .sell-list {
  list-style: none; counter-reset: sell; margin: 0; padding: 0;
  display: grid; gap: 10px;
}
body.v2 .pd-sell .sell-list li {
  counter-increment: sell; position: relative;
  padding: 11px 16px 11px 48px;
  background: linear-gradient(135deg, #f3f7fd 0%, #eef4fb 100%);
  border: 1px solid var(--brand-100); border-radius: 10px;
  color: var(--ink-2); font-size: 14.5px; line-height: 1.85;
}
body.v2 .pd-sell .sell-list li::before {
  content: counter(sell); position: absolute; left: 14px; top: 50%;
  transform: translateY(-50%);
  width: 21px; height: 21px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  background: linear-gradient(135deg, var(--brand), #2f7ae0);
  color: #fff; font-size: 11.5px; font-weight: 700;
  box-shadow: 0 3px 8px rgba(28, 95, 200, .3);
}
body.v2 .pd-sell .sell-list li { text-align: justify; }
@media (max-width: 640px) {
  body.v2 .pd-sell .sell-list li { padding: 10px 12px 10px 42px; font-size: 14px; }
}

/* ---------- 32. 单页正文首标题统一（工厂概貌/关于我们/联系我们等） ---------- */
body.v2 .rich-text > h1:first-child {
  position: relative;
  font-size: 22px; font-weight: 700; line-height: 1.4;
  color: #1a2740; letter-spacing: .3px;
  margin: 0 0 24px; padding: 2px 0 16px 16px;
  border-bottom: 1px solid #eef2f9;
}
body.v2 .rich-text > h1:first-child::before {
  content: ""; position: absolute; left: 0; top: 3px; bottom: 17px;
  width: 4px; border-radius: 2px;
  background: linear-gradient(180deg, var(--brand), #2f7ae0);
  box-shadow: 0 2px 6px rgba(28, 95, 200, .3);
}
/* 首标题后紧跟的强调整段略微弱化颜色，与标题拉开层级 */
body.v2 .rich-text > h1:first-child + p strong { color: var(--brand-700); }

/* ===== 33. GEO：H1 唯一化后保留原视觉（降级元素样式映射） ===== */
/* logo 区品牌标语（原 h1，重排版） */
.description .dtitle {
  font-size: 19px; font-weight: 700; color: #1a2740; letter-spacing: .5px;
  line-height: 1.25; white-space: nowrap;
}
.description .dtitle em {
  font-style: normal; font-size: 27px; font-weight: 800; color: var(--brand);
  margin-right: 9px; letter-spacing: 0;
}
.description i {
  display: block; margin-top: 7px; font-style: normal;
  font-size: 12.5px; font-weight: 400; color: #7a8aa0; letter-spacing: 1.2px;
  white-space: nowrap;
}
/* 内页 banner 标题（原 h1，新闻详情页等） */
.v2-banner .v2-banner-title {
  color: #fff; font-size: 30px; letter-spacing: 1px; line-height: 1.3;
  display: flex; align-items: center; gap: 14px;
}
.v2-banner .v2-banner-title::before {
  content: ""; width: 6px; height: 30px; border-radius: 3px; background: #ffb54d; flex-shrink: 0;
}
/* 单页正文标题（原 h1，工厂概貌等） */
body.v2 .rich-text > .rt-title {
  position: relative; font-size: 22px; font-weight: 700; line-height: 1.4;
  color: #1a2740; margin: 0 0 24px; padding: 2px 0 16px 16px;
  border-bottom: 1px solid #eef2f9;
}
body.v2 .rich-text > .rt-title::before {
  content: ""; position: absolute; left: 0; top: 3px; bottom: 17px;
  width: 4px; border-radius: 2px;
  background: linear-gradient(180deg, var(--brand), #2f7ae0);
}
/* 首页视觉隐藏 H1 */
.home-seo-h1 {
  position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}
/* 页脚服务区域行 */
.site-footer .foot-area {
  margin-top: 8px; font-size: 12.5px; color: rgba(255,255,255,.55);
  letter-spacing: .3px; line-height: 1.7;
}

/* ---------- 34. 联系我们页面（卡片 + 地图） ---------- */
body.v2 .ct-intro { background:#fff; border-radius:14px; padding:26px 28px; border:1px solid #eef2f9; box-shadow:0 6px 24px rgba(16,40,80,.06); }
body.v2 .ct-intro h2 { font-size:23px; color:#1a2740; margin:0 0 6px; letter-spacing:.5px; font-weight:700; }
body.v2 .ct-intro .ct-en { font-size:12.5px; letter-spacing:1.6px; color:#8794a8; text-transform:uppercase; margin:0 0 14px; }
body.v2 .ct-intro .ct-lead { font-size:15px; line-height:1.9; color:#4a5a70; margin:0; }
body.v2 .ct-cards { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin:18px 0; }
body.v2 .ct-card { display:flex; flex-direction:column; gap:5px; padding:20px; border-radius:14px;
  background:linear-gradient(160deg,#fff 0%,#f7faff 100%); border:1px solid #e8eef8;
  box-shadow:0 4px 16px rgba(16,40,80,.05); transition:.25s; text-decoration:none; }
body.v2 .ct-card:hover { transform:translateY(-3px); box-shadow:0 12px 28px rgba(16,40,80,.12); border-color:#c9dbf5; }
body.v2 .ct-card .ct-ico { font-size:20px; color:#2f7ae0; line-height:1; }
body.v2 .ct-card .ct-label { font-size:12.5px; color:#8794a8; letter-spacing:1px; }
body.v2 .ct-card .ct-value { font-size:16.5px; font-weight:700; color:#16233a; line-height:1.5; word-break:break-all; }
body.v2 .ct-card .ct-sub { font-size:12.5px; color:#8a97ab; line-height:1.6; }
body.v2 .ct-split { display:grid; grid-template-columns:1fr 250px; gap:18px; align-items:start; }
body.v2 .ct-info { background:#fff; border-radius:14px; border:1px solid #eef2f9; padding:24px 26px; box-shadow:0 6px 24px rgba(16,40,80,.05); }
body.v2 .ct-info h3 { font-size:16px; color:#1a2740; margin:22px 0 12px; padding-left:11px; position:relative; font-weight:700; }
body.v2 .ct-info h3:first-child { margin-top:0; }
body.v2 .ct-info h3::before { content:""; position:absolute; left:0; top:2px; bottom:2px; width:4px; border-radius:2px; background:#2f7ae0; }
body.v2 .ct-list { list-style:none; margin:0; padding:0; }
body.v2 .ct-list li { display:flex; gap:14px; padding:9px 0; border-bottom:1px dashed #eef2f9; font-size:14.5px; }
body.v2 .ct-list li:last-child { border-bottom:0; }
body.v2 .ct-list li span { width:76px; flex-shrink:0; color:#8794a8; }
body.v2 .ct-list li b { font-weight:500; color:#243349; line-height:1.7; }
body.v2 .ct-list li a { color:#2f7ae0; text-decoration:none; }
body.v2 .ct-list li a:hover { text-decoration:underline; }
body.v2 .ct-area { font-size:14px; line-height:1.95; color:#4a5a70; margin:0; }
body.v2 .ct-qr { background:#fff; border-radius:14px; border:1px solid #eef2f9; padding:22px 18px; text-align:center; box-shadow:0 6px 24px rgba(16,40,80,.05); }
body.v2 .ct-qr img { width:100%; max-width:200px; height:auto; border-radius:8px; display:block; margin:0 auto 14px; }
body.v2 .ct-qr .ct-qr-t { font-size:16px; font-weight:700; color:#1a2740; margin:0 0 6px; }
body.v2 .ct-qr .ct-qr-s { font-size:12.5px; color:#8794a8; line-height:1.7; margin:0; }
body.v2 .ct-map-sec { margin-top:22px; }
body.v2 .ct-map-head h2 { font-size:19px; color:#1a2740; margin:0 0 6px; padding-left:12px; position:relative; font-weight:700; }
body.v2 .ct-map-head h2::before { content:""; position:absolute; left:0; top:3px; bottom:3px; width:4px; border-radius:2px; background:#ffb54d; }
body.v2 .ct-map-head p { font-size:13.5px; color:#8794a8; margin:0 0 14px; line-height:1.7; }
body.v2 .ct-map-box { position:relative; border-radius:14px; overflow:hidden; border:1px solid #e8eef8; box-shadow:0 6px 24px rgba(16,40,80,.06); background:#eef3fa; }
body.v2 .hzc-map { width:100%; height:380px; }
body.v2 .ct-map-fallback { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; text-align:center; padding:20px;
  background:
    radial-gradient(600px 300px at 50% 40%, rgba(47,122,224,.10), transparent 70%),
    repeating-linear-gradient(0deg, rgba(47,122,224,.06) 0 1px, transparent 1px 36px),
    repeating-linear-gradient(90deg, rgba(47,122,224,.06) 0 1px, transparent 1px 36px),
    #f4f8ff; }
body.v2 .ct-mf-inner b { display:block; font-size:16px; color:#1a2740; margin:8px 0 6px; }
body.v2 .ct-mf-inner p { font-size:13px; color:#8794a8; margin:0; }
body.v2 .ct-mf-ico { font-size:26px; color:#2f7ae0; }
body.v2 .ct-nav-row { display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin-top:14px; }
body.v2 .ct-nav-btn { display:inline-block; padding:11px 22px; border-radius:999px; background:#2f7ae0; color:#fff; font-size:14.5px; font-weight:600; text-decoration:none; transition:.2s; }
body.v2 .ct-nav-btn:hover { background:#1e63c4; }
body.v2 .ct-nav-btn.ghost { background:#fff; color:#2f7ae0; border:1px solid #c9dbf5; }
body.v2 .ct-nav-btn.ghost:hover { background:#f2f7fe; }
body.v2 .ct-nav-tip { font-size:12.5px; color:#a3aebf; }
@media (max-width:900px) {
  body.v2 .ct-cards { grid-template-columns:1fr; }
  body.v2 .ct-split { grid-template-columns:1fr; }
  body.v2 .hzc-map { height:300px; }
  body.v2 .ct-intro { padding:20px; }
}
/* 联系页清单禁用正文圆点标记 */
body.v2 .ct-page .ct-list { padding-left: 0; }
body.v2 .ct-page .ct-list li { padding-left: 0; }
body.v2 .ct-page .ct-list li::before { display: none; }

/* ---------- 35. 首页主 Banner 轮播（Swiper） ---------- */
.main-banner-swiper {
  width: 100%;
  /* 完美比例缩放，杜绝图片左右被裁剪 */
  aspect-ratio: 1920 / 750;
  max-height: 750px;
  margin: 0 auto;
  position: relative;
  background-color: #f5f5f5; /* 加载底色 */
  overflow: hidden;
}
.main-banner-swiper .swiper-wrapper { width: 100%; height: 100%; }
.main-banner-swiper .swiper-slide {
  width: 100%;
  height: 100%;
  display: block;
}
.main-banner-swiper .swiper-slide a {
  display: block;
  width: 100%;
  height: 100%;
}
.main-banner-swiper .swiper-slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}
/* 按钮层级提高，防止点不到 */
.main-banner-swiper .swiper-button-prev,
.main-banner-swiper .swiper-button-next {
  background-color: rgba(0, 0, 0, 0.4);
  width: 50px;
  height: 80px;
  margin-top: -40px;
  border-radius: 5px;
  transition: all 0.3s ease;
  opacity: 0;
  z-index: 99 !important;
}
.main-banner-swiper:hover .swiper-button-prev,
.main-banner-swiper:hover .swiper-button-next { opacity: 1; }
.main-banner-swiper .swiper-button-prev:hover,
.main-banner-swiper .swiper-button-next:hover { background-color: rgba(0, 0, 0, 0.8); }
.main-banner-swiper .swiper-button-prev { background-size: 20px 30px; left: 20px; }
.main-banner-swiper .swiper-button-next { background-size: 20px 30px; right: 20px; }
.main-banner-swiper .swiper-pagination { z-index: 99 !important; }
.main-banner-swiper .swiper-pagination-bullet {
  width: 12px; height: 12px; background: #fff; opacity: 0.5; margin: 0 6px !important;
}
.main-banner-swiper .swiper-pagination-bullet-active { opacity: 1; background: #246cd7; transform: scale(1.2); }
@media only screen and (max-width: 767px) {
  .main-banner-swiper .swiper-button-prev,
  .main-banner-swiper .swiper-button-next { display: none; }
}

/* ---------- 36. 规范修正：主导航 ul 重置 + GEO 优势导读可见 ---------- */
#navWrap ul.nav { list-style: none; padding: 0; margin: 0 auto; }
body.v2 .ai-summary {
  background: #f4f8ff; border: 1px solid #dbe8fb; border-left: 4px solid var(--brand);
  border-radius: 10px; padding: 16px 20px; margin: 0 0 20px;
  font-size: 14.5px; line-height: 1.95; color: #3a4a60;
}
@media (max-width: 640px) { body.v2 .ai-summary { padding: 14px 16px; font-size: 14px; } }

/* 关于我们摘要正文字号（调小一号更透气） */
body.v2 .aboutUsCon .aboutTxt {
  font-size: 14px; line-height: 1.95; color: #4a5a70;
}
body.v2 .aboutUsCon .aboutTxt p { margin: 0 0 4px; }

/* ---------- 37. 移动端详情页（新闻/案例/FAQ）排版修复 ----------
   原因：.v2-layout 在 column 方向仍保留 align-items:flex-start，
   子项按 max-content 撑开（正文图 naturalWidth 把 .v2-main 拉到 1200px+），
   导致整页横向溢出。改为 stretch + 强制全宽即可根治。 */
@media (max-width: 992px) {
  body.v2 .v2-layout { align-items: stretch; }
  body.v2 .v2-layout > .v2-main { width: 100%; max-width: 100%; flex: 0 0 auto; min-width: 0; }
}
@media (max-width: 768px) {
  body.v2 .v2-main { width: 100%; max-width: 100%; }
  body.v2 .detail-head,
  body.v2 .detail-meta,
  body.v2 .rich-text,
  body.v2 .rich-text > * { max-width: 100%; }
  body.v2 .rich-text { padding: 20px 16px; overflow-wrap: break-word; word-wrap: break-word; }
  body.v2 .rich-text img { max-width: 100%; height: auto; display: block; }
  body.v2 .rich-text table { display: block; width: 100%; overflow-x: auto; }
  body.v2 .detail-head h1 { font-size: 21px; line-height: 1.45; }
  body.v2 .detail-meta { font-size: 12px; gap: 6px 14px; }
  /* 相关产品/相关文章：每屏 2 卡，缩略图按比例自适应 */
  body.v2 .rel-track { width: 100%; max-width: 100%; gap: 10px; padding: 4px 0 10px; }
  body.v2 .rel-card { flex: 0 0 calc(50% - 5px); }
  body.v2 .rel-fig { height: auto; aspect-ratio: 4 / 3; }
  body.v2 .rel-fig img { width: 100%; height: 100%; object-fit: cover; }
  body.v2 .rel-card h4 { font-size: 13px; padding: 9px 10px 3px; }
  body.v2 .rel-card .rel-date { padding: 0 10px 10px; }
  body.v2 .rel-nav { display: none; }
  /* banner 右侧热线卡：手机端改为整宽堆叠，避免溢出 */
  .v2-banner-aside { box-sizing: border-box; max-width: 100%; }
  .v2-banner-aside .vb-tags span { white-space: normal; }
  /* 顶部旧版 logo 行：手机端取消固定 900px */
  .logoWrapLeft { width: 100%; float: none; }
  .logo { box-sizing: border-box; max-width: 100%; }
}

/* ---------- 38. 首页公司新闻/行业资讯：图左 + 图右推荐3条 + 图下标题（整4行）+ 滚动 ----------
   结构：dl 内 dt（左浮图片）→ dd.nl-top（图片右侧推荐位，与图片等高）→ dd（整行标题，可滚动）。 */
body.v2 .infoLeftCon .nl-pane { width: 100%; }
body.v2 .infoLeftCon .nl-pane + .nl-pane { display: none; } /* 默认只显示第一个 tab，py.js 悬停切换 */
body.v2 .infoLeftCon .nl-pane::after { content: ""; display: block; clear: both; }
body.v2 .infoLeftCon dl {
  display: block;
  max-height: 350px; /* 158(图区) + 4×48(整行)：图下显示整 4 行，多出滚动 */
  overflow-y: auto; overflow-x: hidden;
  padding-right: 10px;
  scrollbar-width: thin;
  scrollbar-color: #246cd7 #eaf1fb;
}
body.v2 .infoLeftCon dl::-webkit-scrollbar { width: 6px; }
body.v2 .infoLeftCon dl::-webkit-scrollbar-track { background: #eaf1fb; border-radius: 4px; }
body.v2 .infoLeftCon dl::-webkit-scrollbar-thumb { background: #246cd7; border-radius: 4px; }
body.v2 .infoLeftCon dl::-webkit-scrollbar-thumb:hover { background: #1e5cc0; }
body.v2 .infoLeftCon dl dt { float: left; width: 240px; margin: 0 20px 2px 0; }
body.v2 .infoLeftCon dl dt img { display: block; width: 100%; height: 158px; object-fit: cover; border-radius: 4px; }
/* 图片右侧推荐位：3 条均分图片高度 */
body.v2 .infoLeftCon dl dd.nl-top {
  float: none; width: auto; height: 156px; overflow: hidden;
  margin: 0 0 2px 260px; padding: 0; border-bottom: none; line-height: 1;
  display: flex; flex-direction: column;
}
body.v2 .infoLeftCon dl dd.nl-top::before { display: none; }
/* 覆盖 dd a / dd span 的旧规则（inline-block + float:right） */
body.v2 .infoLeftCon dl dd.nl-top a {
  display: flex; align-items: center; flex: 1 1 0; min-height: 50px; max-width: none;
  padding: 0 2px; border-bottom: 1px dashed var(--line);
  font-size: 15px; color: var(--ink-2); transition: color .18s;
}
body.v2 .infoLeftCon dl dd.nl-top a:last-child { border-bottom: none; }
body.v2 .infoLeftCon dl dd.nl-top a i {
  flex: none; font-style: normal; font-size: 11px; line-height: 1; color: #fff;
  background: var(--brand); border-radius: 3px; padding: 2px 5px; margin-right: 9px;
}
body.v2 .infoLeftCon dl dd.nl-top a .t {
  float: none; flex: 1; min-width: 0; max-width: none; display: block;
  overflow: hidden; white-space: nowrap; text-overflow: ellipsis;
}
body.v2 .infoLeftCon dl dd.nl-top a .d { float: none; flex: none; color: var(--ink-3); font-size: 12.5px; margin-left: 12px; }
body.v2 .infoLeftCon dl dd.nl-top a:hover { color: var(--brand); }
body.v2 .infoLeftCon dl dd.nl-top a:hover .d { color: var(--brand); }
body.v2 .infoLeftCon dl dd { width: 100%; box-sizing: border-box; }
@media (max-width: 768px) {
  body.v2 .infoLeftCon dl { max-height: 326px; padding-right: 8px; }
  body.v2 .infoLeftCon dl dt { float: none; width: 100%; margin: 0 0 10px; }
  body.v2 .infoLeftCon dl dd.nl-top { height: auto; margin-left: 0; }
  body.v2 .infoLeftCon dl dd.nl-top a { flex: 0 0 auto; min-height: 44px; }
}

/* ---------- 39. 手机端：菜单子栏目默认折叠 + 底部快捷联系条 ---------- */
@media (max-width: 768px) {
  /* 子栏目默认折叠（覆盖上方"默认展开"规则），点父项右侧箭头展开，点文字直接跳转 */
  body.v2 #navWrap .nav li.has-sub > a { padding-right: 58px; }
  body.v2 #navWrap .nav li .nav-sub { display: none; }
  body.v2 #navWrap .nav li.sub-open .nav-sub { display: block; }
  /* 展开箭头按钮（占父项右侧 52px 命中区） */
  body.v2 #navWrap .nav li .sub-toggle {
    position: absolute; right: 0; top: 0; width: 52px; height: 100%;
    display: flex; align-items: center; justify-content: center;
    cursor: pointer; -webkit-tap-highlight-color: transparent;
  }
  body.v2 #navWrap .nav li .sub-toggle i {
    display: block; width: 10px; height: 10px;
    border-right: 2.5px solid #5b7cae; border-bottom: 2.5px solid #5b7cae;
    transform: rotate(45deg); transition: transform .2s;
  }
  body.v2 #navWrap .nav li.sub-open .sub-toggle i { transform: rotate(-135deg); }
  /* 底部固定快捷联系条：不打开菜单也能一键拨打 / 进联系我们 */
  .m-quick-bar {
    position: fixed; left: 0; right: 0; bottom: 0; z-index: 890;
    display: flex; box-shadow: 0 -6px 18px rgba(16,35,61,.12);
    padding-bottom: env(safe-area-inset-bottom, 0px);
  }
  .m-quick-bar a {
    flex: 1; display: flex; align-items: center; justify-content: center; gap: 8px;
    height: 50px; font-size: 15.5px; font-weight: 600; color: #fff; text-decoration: none;
  }
  .m-quick-bar svg { width: 19px; height: 19px; fill: #fff; }
  .mqb-tel { background: linear-gradient(135deg, #2f78e6, #1e5cc0); }
  .mqb-contact { background: #ff8f1f; }
  /* 给页面底部留出快捷条高度；回到顶部按钮上移避让 */
  body.v2 { padding-bottom: 50px; }
  body.v2 .back-top { bottom: calc(64px + env(safe-area-inset-bottom, 0px)); }
}
@media (min-width: 769px) {
  .m-quick-bar { display: none; }
  body.v2 #navWrap .nav li .sub-toggle { display: none; }
}

/* ---------- 40. 修复：旧样式 A:link/A:visited/A:hover/A:active 写死 font-size:12px ----------
   导致全站所有链接（标题内链接、页脚电话/邮箱等）都被压成 12px，
   无论父级 h2/h3/li 设多大都无效。统一改为继承父级字号。 */
body.v2 a:link, body.v2 a:visited, body.v2 a:hover, body.v2 a:active { font-size: inherit; }
body.v2 h1 a, body.v2 h2 a, body.v2 h3 a, body.v2 h4 a, body.v2 h5 a, body.v2 h6 a { font-size: inherit; }
body.v2 .site-footer .foot-contact a { font-size: inherit; }
body.v2 .rel-card h4 a, body.v2 .v2-banner h1 a { font-size: inherit; }
/* 页脚正文类文字统一 13px（品牌简介/快速导航/产品工艺/联系我们，热线除外） */
body.v2 .site-footer .foot-brand p,
body.v2 .site-footer .foot-top ul li,
body.v2 .site-footer .foot-contact li:not(.foot-tel) { font-size: 13px; }
/* 热线号保持 32px（须在 13px 规则之后声明以胜出同优先级） */
body.v2 .site-footer .foot-contact li.foot-tel { font-size: 32px; }
/* 品牌简介两段单独 12px（在 13px 规则之后声明以胜出） */
body.v2 .site-footer .foot-brand p { font-size: 12px; }
/* 自定义 banner 图自带设计文字时，隐藏右上角描边水印，避免与图中文字重叠 */
.v2-banner.has-img .v2-banner-wm { display: none; }
/* 联系我们栏目 banner：按用户上传图比例定高 392px（桌面端） */
.v2-banner.has-img.ct-banner { height: 392px; }
@media (max-width: 768px) {
  .v2-banner.has-img.ct-banner { height: auto; min-height: 220px; }
}
