/* ========================================================
   旗舰极致优化版 - 全局样式覆盖层（PRD 规定色值写死，禁止调参）
   主色：商务蓝 #0074CC / 点缀浅金 #C8A878 / 底色 #F9FAFC
   生效范围：全部 7 个页面（本文件在 style.css 之后加载）
   ======================================================== */

/* ========== 一、色彩体系（写死） ========== */
:root {
  --color-primary: #0074CC;
  --color-primary-light-bg: rgba(0, 116, 204, 0.08);
  --color-blue-soft: #E8F2FB;
  --color-gold-sub: #C8A878;
  --color-body-bg: #F9FAFC;
  --color-card-bg: #FFFFFF;
  --color-title-big: #1A1A1A;
  --color-text-normal: #444444;
  --color-text-minor: #666666;
  --color-text-placeholder: #909399;
  --color-footer-bg: #1D2A3A;
  --color-footer-text: #cccccc;
  --color-footer-title: #ffffff;
  --split-line-footer: rgba(255, 255, 255, 0.1);
  /* 布局尺寸常量 */
  --pc-max-width: 1200px;
  --pc-module-margin: 100px;
  --pc-module-padding-y: 60px;
  --mobile-safe-padding: 20px;
  --mobile-module-margin: 52px;
  --mobile-module-padding-y: 32px;
  --card-radius: 8px;
}

/* ========== 二、全局底层 & 空间叙事 ========== */
html { scroll-behavior: smooth; }

/* body 底色 + 极淡商务几何肌理（透明度 8%），禁止纯白 */
body {
  background-color: var(--color-body-bg) !important;
  background-image:
    linear-gradient(0deg, rgba(0, 116, 204, 0.025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(0, 116, 204, 0.025) 1px, transparent 1px),
    radial-gradient(circle at 18% 12%, rgba(0, 116, 204, 0.03) 0%, transparent 45%),
    radial-gradient(circle at 85% 78%, rgba(200, 168, 120, 0.03) 0%, transparent 40%);
  background-size: 44px 44px, 44px 44px, 100% 100%, 100% 100%;
  background-attachment: fixed;
  color: var(--color-text-normal);
  font-family: "Microsoft YaHei", "PingFang SC", "Helvetica Neue", Arial, sans-serif;
}

/* 肌理微弱视差（JS 动态微移 background-position，强度 5） */
body.parallax-active {
  background-attachment: scroll;
}

/* 容器：PC 1200px 居中，左右露出肌理底色 */
.container {
  max-width: var(--pc-max-width);
  margin-left: auto;
  margin-right: auto;
}

/* 模块间距标准化 */
.page-section {
  padding: var(--pc-module-padding-y) 0;
}

/* 模块交替：白 ↔ 浅蓝 */
.white-bg { background: var(--color-card-bg) !important; }
.alt-bg { background: var(--color-blue-soft) !important; }

/* ========== 三、两套全局按钮组件（全站统一） ========== */
.btn,
.btn-primary,
.btn-more,
.view-all,
.contact-form button,
.btn-banner,
.btn-consult,
.btn-workshop {
  display: inline-block;
  padding: 11px 32px;
  border-radius: var(--card-radius);
  font-size: 15px;
  font-weight: 500;
  text-decoration: none;
  cursor: pointer;
  border: none;
  line-height: 1.6;
  transition: background 0.3s ease, color 0.3s ease, box-shadow 0.3s ease, transform 0.3s ease, border-color 0.3s ease;
}

/* 主按钮：主色填充 */
.btn-primary,
.btn-more,
.view-all,
.contact-form button,
.btn-consult,
.btn-workshop {
  background: var(--color-primary);
  color: #ffffff !important;
}
.btn-primary:hover,
.btn-more:hover,
.view-all:hover,
.contact-form button:hover,
.btn-consult:hover,
.btn-workshop:hover {
  background: #005EA8;
  color: #ffffff !important;
  box-shadow: 0 8px 20px rgba(0, 116, 204, 0.28);
  transform: translateY(-2px);
}

/* 次按钮：主色边框白底 */
.btn-outline {
  display: inline-block;
  padding: 11px 32px;
  border-radius: var(--card-radius);
  font-size: 15px;
  font-weight: 500;
  text-decoration: none;
  cursor: pointer;
  border: 1px solid var(--color-primary);
  background: #ffffff;
  color: var(--color-primary) !important;
  line-height: 1.6;
  transition: background 0.3s ease, color 0.3s ease, box-shadow 0.3s ease, transform 0.3s ease;
}
.btn-outline:hover {
  background: var(--color-primary-light-bg);
  box-shadow: 0 6px 16px rgba(0, 116, 204, 0.15);
  transform: translateY(-2px);
}

/* 原有 banner 内按钮（轮播 CTA） */
.btn-banner {
  background: var(--color-primary);
  color: #ffffff !important;
  border: none;
  margin-right: 12px;
}
.btn-banner:hover { background: #005EA8; color: #ffffff !important; transform: translateY(-2px); }
.btn-banner.btn-banner-ghost {
  background: rgba(255, 255, 255, 0.14);
  border: 1px solid rgba(255, 255, 255, 0.75);
  color: #ffffff !important;
  backdrop-filter: blur(4px);
}
.btn-banner.btn-banner-ghost:hover { background: rgba(255, 255, 255, 0.26); }

/* ========== 四、卡片组件旗舰版 ========== */
.product-card,
.feature-card,
.news-card {
  background: var(--color-card-bg) !important;
  border-radius: var(--card-radius) !important;
  box-shadow: 0 2px 14px rgba(0, 0, 0, 0.05) !important;
  border: none !important;
  overflow: hidden;
  transition: transform 0.3s ease, box-shadow 0.3s ease !important;
}
.product-card:hover,
.feature-card:hover,
.news-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.11) !important;
}
.product-card .card-img,
.feature-card .feature-img,
.news-card .news-img {
  overflow: hidden;
  background: #eef2f6;
  position: relative;
}
.product-card .card-img img,
.feature-card .feature-img img,
.news-card .news-img img {
  transition: transform 0.4s ease !important;
}
.product-card:hover .card-img img,
.feature-card:hover .feature-img img,
.news-card:hover .news-img img {
  transform: scale(1.02);
}

/* 图片骨架屏占位（加载中 shimmer，加载完成后自然覆盖） */
.card-img::before,
.feature-img::before,
.news-img::before,
.img-item::before,
.media-item::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(100deg, #eef2f6 40%, #f7fafc 50%, #eef2f6 60%);
  background-size: 200% 100%;
  animation: flag-shimmer 1.6s infinite linear;
  z-index: 0;
}
@keyframes flag-shimmer {
  from { background-position: 200% 0; }
  to { background-position: -200% 0; }
}
.card-img img,
.feature-img img,
.news-img img,
.img-item img,
.media-item img {
  position: relative;
  z-index: 1;
}

/* 产品卡片标签角标（新品/热销/定制款，后台 tag 字段输出） */
.product-card { position: relative; }
.product-card .card-tag {
  position: absolute;
  top: 12px;
  left: 12px;
  z-index: 2;
  padding: 3px 10px;
  font-size: 12px;
  line-height: 1.5;
  color: #ffffff;
  background: var(--color-primary);
  border-radius: 3px;
  letter-spacing: 1px;
}
.product-card .card-tag.tag-gold { background: var(--color-gold-sub); }
.product-card .card-tag.tag-primary { background: var(--color-primary); }
.product-card .card-tag.tag-red { background: #d64541; }
.product-card .card-body { padding: 16px 18px 18px; }
.product-card .card-title {
  font-size: 16px;
  color: var(--color-title-big);
  font-weight: 600;
  line-height: 1.5;
}
.product-card .card-text {
  color: var(--color-text-minor);
  font-size: 13px;
  line-height: 1.7;
  margin-top: 6px;
}

/* 三栏亮点卡片：右下角三角装饰弱化 + 留白加大 + 标题下细金线 */
.feature-card { position: relative; }
.feature-card .feature-body { padding: 26px 24px 32px; position: relative; }
.feature-card h3 {
  color: var(--color-title-big);
  font-size: 18px;
  position: relative;
  padding-bottom: 14px;
  margin-bottom: 12px;
}
.feature-card h3 span { color: var(--color-gold-sub); font-size: 12px; text-transform: uppercase; letter-spacing: 2px; margin-left: 8px; }
.feature-card h3::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: 0;
  width: 34px;
  height: 2px;
  background: var(--color-gold-sub);
  border-radius: 1px;
}
.feature-card .corner {
  position: absolute;
  right: 0;
  bottom: 0;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 0 0 34px 34px;
  border-color: transparent transparent rgba(0, 116, 204, 0.06) transparent;
  transition: border-color 0.3s ease;
}
.feature-card:hover .corner { border-color: transparent transparent rgba(0, 116, 204, 0.12) transparent; }

/* 新闻卡片：日期轻量化标签 */
.news-card { display: flex; background: var(--color-card-bg) !important; }
.news-card .news-body { padding: 20px 22px; flex: 1; }
.news-card .news-date {
  display: inline-block;
  font-size: 12px;
  color: var(--color-primary);
  background: var(--color-primary-light-bg);
  border-radius: 3px;
  padding: 2px 10px;
  margin-bottom: 10px;
  letter-spacing: 1px;
}
.news-card h3 { color: var(--color-title-big); font-size: 17px; margin-bottom: 8px; }
.news-card p { color: var(--color-text-minor); font-size: 13px; line-height: 1.7; }

/* 合作伙伴 logo：默认灰度，hover 恢复彩色 */
.partner-list img {
  filter: grayscale(1);
  opacity: 0.75;
  transition: filter 0.4s ease, opacity 0.4s ease, transform 0.3s ease;
}
.partner-list a:hover img,
.partner-list img:hover {
  filter: grayscale(0);
  opacity: 1;
  transform: scale(1.04);
}
/* 合作伙伴条目：Logo + 名称 + 随机唯一编号；留空链接用 span 容器点击无动作 */
.partner-item { display: flex; flex-direction: column; align-items: center; gap: 6px; text-decoration: none; }
.partner-item .partner-name { font-size: 13px; color: var(--color-text-minor, #666); }
.partner-item .partner-code { font-size: 11px; color: #9aa3af; letter-spacing: .5px; }
span.partner-item{cursor:default}
/* 产品分类封面卡片（检索框 + 封面/名称/描述/标签关键词） */
.cat-search{margin-bottom:12px}
.cat-search input{width:300px;max-width:100%;padding:8px 12px;border:1px solid var(--border-base,#dcdfe6);border-radius:6px;font-size:13px;outline:none}
.cat-search input:focus{border-color:var(--primary-blue,#1a5cb0)}
.cat-cards{display:flex;flex-wrap:wrap;gap:12px}
.cat-card{display:flex;flex-direction:column;width:172px;padding:10px;border:1px solid var(--border-base,#dcdfe6);border-radius:10px;cursor:pointer;background:#fff;transition:var(--transition-base,all .2s)}
.cat-card:hover{border-color:var(--primary-blue,#1a5cb0);box-shadow:0 4px 12px rgba(0,0,0,.08)}
.cat-card.active{border-color:var(--primary-dark,#123c6b);box-shadow:0 0 0 2px rgba(18,60,107,.15)}
.cat-card img,.cat-card .cat-cover-ph{width:100%;height:96px;object-fit:cover;border-radius:6px;background:linear-gradient(135deg,#e8eef7,#f7f9fc)}
.cat-card .cat-name{margin-top:8px;font-size:14px;font-weight:600;color:var(--color-text-main,#222)}
.cat-card .cat-desc{margin-top:4px;font-size:12px;color:var(--color-text-minor,#666);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.cat-card .cat-kws{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}
.cat-card .cat-kws i{font-style:normal;font-size:11px;color:var(--primary-blue,#1a5cb0);background:rgba(26,92,176,.08);border-radius:4px;padding:1px 6px}

/* ========== 五、首页轮播 Banner 旗舰版 ========== */
/* 修复：slide 必须绝对定位重叠；原 position:relative 会使多张轮播纵向堆叠、切换后被 overflow 截断 */
.home-banner { position: relative; overflow: hidden; height: 560px; }
.home-banner .slides { position: relative; height: 100%; }
.home-banner .slide { position: absolute; inset: 0; height: 100%; }
.home-banner .slide-bg { position: absolute; inset: 0; background-size: cover; background-position: center; }

/* 径向弱暗蒙版：只压暗四边，保护中间主体亮度 */
.home-banner .slide-overlay {
  background: radial-gradient(ellipse at 50% 42%, rgba(0, 0, 0, 0.06) 0%, rgba(0, 0, 0, 0.34) 72%, rgba(0, 0, 0, 0.46) 100%) !important;
}

/* 文案层级：主标题 → 副标题 → 描述 → CTA 按钮组 */
.home-banner .slide-inner h2 {
  color: #ffffff;
  font-size: 40px;
  font-weight: 700;
  letter-spacing: 2px;
  text-shadow: 0 2px 12px rgba(0, 0, 0, 0.25);
}
.home-banner .slide-inner p {
  color: rgba(255, 255, 255, 0.94);
  font-size: 17px;
  margin-top: 14px;
  letter-spacing: 1px;
}
.home-banner .slide-inner .slide-desc {
  color: rgba(255, 255, 255, 0.86);
  font-size: 14px;
  margin-top: 8px;
  max-width: 640px;
  line-height: 1.8;
}
.home-banner .slide-inner .btn-group { margin-top: 26px; }

/* 箭头：默认隐藏，hover banner 显示 */
.home-banner .arrow {
  opacity: 0;
  transition: opacity 0.3s ease, background 0.3s ease;
  background: rgba(0, 0, 0, 0.24);
  color: #ffffff;
  border: none;
  border-radius: 50%;
  width: 46px;
  height: 46px;
  font-size: 22px;
  cursor: pointer;
}
.home-banner:hover .arrow { opacity: 1; }
.home-banner .arrow:hover { background: var(--color-primary); }

/* 圆点指示器：激活主色实心 */
.home-banner .dots .dot {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.5);
  transition: background 0.3s ease, transform 0.3s ease;
}
.home-banner .dots .dot.active {
  background: var(--color-primary);
  transform: scale(1.25);
}

/* 轮播切换过渡 0.6s */
.home-banner .slide { transition: opacity 0.6s ease; }

/* 轮播多端响应式高度：大屏收敛、平板逐级降低，杜绝截断与过高留白 */
@media (max-width: 1200px) { .home-banner { height: 480px; } }
@media (max-width: 992px)  { .home-banner { height: 420px; } }

/* ========== 六、内页 Banner 统一（6 个内页全部生效） ========== */
.page-banner {
  height: 320px;
  display: flex;
  align-items: center;
  position: relative;
  background-size: cover;
  background-position: center;
}
.page-banner .overlay {
  background: radial-gradient(ellipse at 50% 45%, rgba(0, 0, 0, 0.10) 0%, rgba(0, 0, 0, 0.42) 78%) !important;
}
.page-banner .banner-content { position: relative; z-index: 2; width: 100%; }
.page-banner .banner-content h1 {
  color: #ffffff;
  font-size: 34px;
  font-weight: 700;
  letter-spacing: 3px;
  margin-bottom: 12px;
  text-shadow: 0 2px 10px rgba(0, 0, 0, 0.28);
}
.page-banner .banner-content .banner-sub {
  color: rgba(255, 255, 255, 0.92);
  font-size: 16px;
  letter-spacing: 2px;
}
.page-banner .banner-content .banner-desc {
  color: rgba(255, 255, 255, 0.82);
  font-size: 14px;
  margin-top: 10px;
  line-height: 1.8;
  max-width: 720px;
}
/* 可选浅金细装饰分割线 */
.page-banner .banner-line {
  width: 52px;
  height: 2px;
  background: var(--color-gold-sub);
  border-radius: 1px;
  margin-top: 16px;
}

/* 关于我们页底部联系区（cta-section）统一主色按钮 */
.cta-section {
  background: var(--color-blue-soft);
  text-align: center;
  padding: var(--pc-module-padding-y) 0;
}
.cta-section h2 {
  font-size: 26px;
  color: var(--color-title-big);
  font-weight: 700;
  margin-bottom: 12px;
}
.cta-section p {
  color: var(--color-text-minor);
  font-size: 15px;
  margin-bottom: 26px;
}

/* ========== 七、首页实力通栏（视觉断点，无白色卡片） ========== */
.strength-band {
  background: var(--color-blue-soft);
  padding: var(--pc-module-padding-y) 0;
  margin: 0;
}
.strength-band .strength-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  margin-top: 36px;
}
.strength-band .strength-item {
  border-radius: var(--card-radius);
  overflow: hidden;
  background: var(--color-card-bg);
  box-shadow: 0 2px 14px rgba(0, 0, 0, 0.05);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.strength-band .strength-item:hover {
  transform: translateY(-4px);
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.11);
}
.strength-band .strength-item .si-img { height: 220px; overflow: hidden; position: relative; background: #eef2f6; }
.strength-band .strength-item .si-img img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.5s ease; position: relative; z-index: 1; }
.strength-band .strength-item:hover .si-img img { transform: scale(1.05); }
.strength-band .strength-item .si-text { padding: 20px 22px 24px; }
.strength-band .strength-item .si-text h3 { font-size: 16px; color: var(--color-title-big); margin-bottom: 8px; position: relative; padding-bottom: 10px; }
.strength-band .strength-item .si-text h3::after {
  content: '';
  position: absolute;
  left: 0; bottom: 0;
  width: 26px; height: 2px;
  background: var(--color-gold-sub);
}
.strength-band .strength-item .si-text p { font-size: 13px; color: var(--color-text-minor); line-height: 1.8; }

/* 原有 cta-workshop 通栏：改为浅蓝实业风格，保持业务入口 */
.cta-workshop {
  background: linear-gradient(115deg, #0E2A47 0%, #1D3A5F 55%, #24406E 100%) !important;
  color: #ffffff;
  padding: 60px 0 !important;
  position: relative;
  overflow: hidden;
}
.cta-workshop::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 82% 50%, rgba(0, 116, 204, 0.35) 0%, transparent 55%);
}
.cta-workshop-inner { position: relative; z-index: 2; }
.cta-workshop-text h2 { color: #ffffff; font-size: 28px; letter-spacing: 1px; position: relative; padding-bottom: 14px; margin-bottom: 12px; }
.cta-workshop-text h2::after {
  content: '';
  position: absolute;
  left: 0; bottom: 0;
  width: 44px; height: 2px;
  background: var(--color-gold-sub);
}
.cta-workshop-text p { color: rgba(255, 255, 255, 0.82); font-size: 15px; }
.btn-workshop { background: var(--color-gold-sub) !important; color: #1A1A1A !important; }
.btn-workshop:hover { background: #D6B98C !important; color: #1A1A1A !important; }

/* ========== 八、页脚新版 ========== */
.footer {
  background: var(--color-footer-bg) !important;
  color: var(--color-footer-text);
  padding-top: 56px;
}
.footer .footer-top,
.footer .footer-grid {
  display: grid;
  grid-template-columns: 1fr 1.2fr 1fr;
  gap: 48px;
  padding-bottom: 44px;
  border-bottom: 1px solid var(--split-line-footer);
}
.footer-block h3,
.footer-col h3 {
  color: var(--color-footer-title);
  font-size: 17px;
  margin-bottom: 20px;
  position: relative;
  padding-bottom: 12px;
}
.footer-block h3::after,
.footer-col h3::after {
  content: '';
  position: absolute;
  left: 0; bottom: 0;
  width: 30px; height: 2px;
  background: var(--color-primary);
  border-radius: 1px;
}
.footer a { color: var(--color-footer-text); transition: color 0.3s ease; }
.footer a:hover { color: #ffffff; }
.footer-links li, .contact-list li { margin-bottom: 10px; line-height: 1.7; }
.footer .qr-row { display: flex; gap: 24px; }
.footer .qr-item { text-align: center; }
.footer .qr-item img {
  width: 108px;
  height: 108px;
  object-fit: contain;
  border-radius: 6px;
  background: #ffffff;
  padding: 6px;
}
.footer .qr-item span { display: block; margin-top: 8px; font-size: 12px; color: rgba(255, 255, 255, 0.7); }
.footer .footer-bottom {
  border-top: 1px solid var(--split-line-footer);
  padding: 20px 0;
  text-align: center;
  font-size: 13px;
  color: rgba(255, 255, 255, 0.55);
}

/* ========== 九、全局回到顶部按钮 ========== */
.back-to-top {
  position: fixed;
  right: 26px;
  bottom: 60px;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: var(--color-primary);
  color: #ffffff;
  border: none;
  font-size: 20px;
  cursor: pointer;
  z-index: 999;
  opacity: 0;
  visibility: hidden;
  transform: translateY(12px);
  transition: opacity 0.3s ease, transform 0.3s ease, visibility 0.3s, background 0.3s ease;
  box-shadow: 0 6px 18px rgba(0, 116, 204, 0.3);
  display: flex;
  align-items: center;
  justify-content: center;
}
.back-to-top.show {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
.back-to-top:hover { background: #005EA8; }

/* ========== 十、模块滚动入场动画（克制商务） ========== */
.reveal {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.5s ease-out, transform 0.5s ease-out;
}
.reveal.visible {
  opacity: 1;
  transform: translateY(0);
}

/* ========== 十一、空状态友好占位 ========== */
.empty-tip {
  text-align: center;
  color: var(--color-text-placeholder);
  font-size: 15px;
  padding: 56px 20px;
  background: var(--color-card-bg);
  border-radius: var(--card-radius);
  box-shadow: 0 2px 14px rgba(0, 0, 0, 0.04);
}
.empty-tip::before {
  content: '📦';
  display: block;
  font-size: 34px;
  margin-bottom: 10px;
  opacity: 0.6;
}

/* ========== 十二、产品详情页旗舰版 ========== */
.product-detail-layout {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 44px;
}
/* 主图 + 缩略图 */
.pd-gallery { min-width: 0; }
.pd-main {
  position: relative;
  border-radius: var(--card-radius);
  overflow: hidden;
  background: #eef2f6;
  aspect-ratio: 1 / 1;
  cursor: zoom-in;
  box-shadow: 0 2px 14px rgba(0, 0, 0, 0.05);
}
.pd-main img { width: 100%; height: 100%; object-fit: cover; display: block; }
.pd-main .pd-zoom-hint {
  position: absolute;
  right: 14px; bottom: 14px;
  background: rgba(0, 0, 0, 0.45);
  color: #ffffff;
  font-size: 12px;
  padding: 4px 10px;
  border-radius: 4px;
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.3s ease;
}
.pd-main:hover .pd-zoom-hint { opacity: 1; }
.pd-thumbs {
  display: flex;
  gap: 10px;
  margin-top: 14px;
  flex-wrap: wrap;
}
.pd-thumbs .thumb {
  width: 76px;
  height: 76px;
  border-radius: 6px;
  overflow: hidden;
  cursor: pointer;
  border: 2px solid transparent;
  background: #eef2f6;
  transition: border-color 0.3s ease, transform 0.3s ease;
}
.pd-thumbs .thumb img { width: 100%; height: 100%; object-fit: cover; }
.pd-thumbs .thumb.active { border-color: var(--color-primary); }
.pd-thumbs .thumb:hover { transform: translateY(-2px); }

/* 放大预览（lightbox） */
.pd-lightbox {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.82);
  z-index: 9999;
  display: none;
  align-items: center;
  justify-content: center;
  cursor: zoom-out;
  padding: 40px;
}
.pd-lightbox.open { display: flex; }
.pd-lightbox img {
  max-width: 92vw;
  max-height: 88vh;
  object-fit: contain;
  border-radius: 6px;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.5);
}

/* 产品信息卡片化 */
.product-info { min-width: 0; }
.product-info h1 {
  font-size: 26px;
  color: var(--color-title-big);
  font-weight: 700;
  padding-bottom: 16px;
  margin-bottom: 18px;
  border-bottom: 2px solid var(--color-blue-soft);
  position: relative;
}
.product-info h1::after {
  content: '';
  position: absolute;
  left: 0; bottom: -2px;
  width: 56px; height: 2px;
  background: var(--color-primary);
}
.product-info .desc {
  color: var(--color-text-normal);
  font-size: 15px;
  line-height: 1.8;
  margin-bottom: 22px;
}
.pd-params {
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
  margin-bottom: 24px;
}
.pd-param-row {
  display: flex;
  border-radius: 6px;
  background: var(--color-blue-soft);
  overflow: hidden;
  transition: background 0.3s ease;
}
.pd-param-row:hover { background: #dbeaf8; }

/* 产品图集（后台素材库多图 + 随机唯一编号 caption） */
.pd-gallery { margin: 28px 0; }
.pd-gallery-title { font-size: 20px; font-weight: 700; margin-bottom: 14px; color: var(--color-text, #222); }
.pd-gallery-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 14px; }
.pd-gallery-grid figure { margin: 0; background: #fff; border: 1px solid #e5e9f0; border-radius: 8px; overflow: hidden; }
.pd-gallery-grid img { width: 100%; height: 150px; object-fit: cover; display: block; }
.pd-gallery-grid figcaption { padding: 6px 10px; font-size: 12px; color: #667; }
.pd-param-label {
  width: 108px;
  flex-shrink: 0;
  padding: 12px 16px;
  font-size: 13px;
  color: var(--color-text-minor);
  background: rgba(0, 116, 204, 0.10);
  font-weight: 500;
}
.pd-param-value {
  padding: 12px 16px;
  font-size: 14px;
  color: var(--color-title-big);
}
.pd-tags { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 24px; }
.pd-tags .pd-tag {
  padding: 4px 12px;
  font-size: 12px;
  border-radius: 3px;
  background: var(--color-primary-light-bg);
  color: var(--color-primary);
}

/* 详情富文本：行高 1.7，图片圆角 */
.product-detail-content,
.news-detail-content,
.about-content-text {
  line-height: 1.7 !important;
  color: var(--color-text-normal);
  font-size: 15px;
}
.product-detail-content img,
.news-detail-content img,
.about-content-text img {
  border-radius: var(--card-radius);
  max-width: 100%;
  height: auto;
}

/* 相关推荐：浅蓝通栏 */
.related-products {
  background: var(--color-blue-soft);
  border-radius: var(--card-radius);
  padding: 40px 32px;
  margin-top: 44px;
}
.related-news {
  background: var(--color-blue-soft);
  border-radius: var(--card-radius);
  padding: 40px 32px;
  margin-top: 44px;
}

/* ========== 十三、咨询引导 CTA 通栏（产品列表/详情底部） ========== */
.consult-cta {
  background: var(--color-blue-soft);
  text-align: center;
  padding: var(--pc-module-padding-y) 0;
  margin-top: 0;
}
.consult-cta h2 {
  font-size: 26px;
  color: var(--color-title-big);
  font-weight: 700;
  margin-bottom: 10px;
}
.consult-cta p {
  color: var(--color-text-minor);
  font-size: 15px;
  margin-bottom: 26px;
}

/* ========== 十四、表单旗舰优化 ========== */
.contact-form input,
.contact-form textarea,
.search-box input,
#product-search-input {
  border-radius: var(--card-radius);
  border: 1px solid #DDE4EC;
  transition: border-color 0.3s ease, box-shadow 0.3s ease, background 0.3s ease;
}
.contact-form input:focus,
.contact-form textarea:focus,
.search-box input:focus,
#product-search-input:focus {
  border-color: var(--color-primary);
  background: var(--color-primary-light-bg);
  box-shadow: 0 0 0 3px rgba(0, 116, 204, 0.10);
  outline: none;
}
.contact-form input,
.contact-form textarea {
  width: 100%;
  padding: 12px 14px;
  font-size: 14px;
  color: var(--color-text-normal);
}
.contact-form textarea { resize: vertical; min-height: 120px; }
.contact-form label { font-size: 14px; color: var(--color-title-big); margin-bottom: 8px; display: block; }

/* 联系信息分组卡片 */
.contact-info { border-radius: var(--card-radius); }
/* 在线留言表单标题（与 .contact-info h3 视觉对齐） */
.contact-form h3 {
  font-size: 20px;
  color: var(--color-title-big);
  font-weight: 700;
  margin-bottom: 24px;
  padding-bottom: 12px;
  border-bottom: 2px solid var(--color-gold-sub);
  display: inline-block;
}
.contact-info .info-item {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 18px;
  border-radius: 6px;
  background: var(--color-blue-soft);
  margin-bottom: 12px;
  transition: background 0.3s ease, transform 0.3s ease;
}
.contact-info .info-item:hover { background: #dbeaf8; transform: translateX(4px); }
.contact-info .info-icon {
  width: 42px;
  height: 42px;
  border-radius: 8px;
  background: var(--color-primary);
  color: #ffffff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
  flex-shrink: 0;
}
.contact-info .info-label { font-size: 13px; color: var(--color-text-minor); margin-bottom: 4px; }
.contact-info .info-value { font-size: 15px; color: var(--color-title-big); font-weight: 500; }

/* 地图容器圆角 */
.map-container iframe { border-radius: var(--card-radius); }

/* ========== 十五、筛选 & 分页 ========== */
.filter-tag {
  padding: 6px 16px;
  border-radius: 18px;
  font-size: 13px;
  border: 1px solid #DDE4EC;
  color: var(--color-text-minor);
  background: #ffffff;
  cursor: pointer;
  transition: all 0.3s ease;
}
.filter-tag:hover { background: var(--color-primary-light-bg); border-color: var(--color-primary); color: var(--color-primary); }
.filter-tag.active { background: var(--color-primary); color: #ffffff; border-color: var(--color-primary); }

.pagination button,
.pagination .active {
  border-radius: 6px;
  border: 1px solid #DDE4EC;
  background: #ffffff;
  color: var(--color-text-normal);
  padding: 7px 14px;
  font-size: 13px;
  cursor: pointer;
  transition: all 0.3s ease;
}
.pagination button:hover { border-color: var(--color-primary); color: var(--color-primary); }
.pagination .active { background: var(--color-primary); color: #ffffff; border-color: var(--color-primary); }

/* ========== 十六、发展历程时间线（关于我们） ========== */
.timeline { border-left: 2px solid var(--color-primary); }
.timeline .timeline-dot { background: var(--color-gold-sub); border: 2px solid var(--color-primary); }

/* 富文本段落间距 */
.news-detail-content p,
.about-content-text p,
.product-detail-content p { margin-bottom: 18px; }

/* ========== 十七、移动端适配（≤768px） ========== */
@media (max-width: 768px) {
  body {
    background-size: 30px 30px, 30px 30px, 100% 100%, 100% 100%;
  }
  .container { padding: 0 var(--mobile-safe-padding); }
  .page-section { padding: var(--mobile-module-padding-y) 0; }

  /* Banner 高度统一 */
  .page-banner { height: 220px; }
  .page-banner .banner-content h1 { font-size: 26px; letter-spacing: 2px; }

  /* 首页轮播高度与文案（≤768px 响应式，避免截断） */
  .home-banner { height: 340px; }
  .home-banner .slide-inner h2 { font-size: 26px; }
  .home-banner .slide-inner p { font-size: 15px; }
  .home-banner .slide-inner .slide-desc { display: none; }

  /* 多栏转单列 */
  .strength-band .strength-grid,
  .footer .footer-top,
  .footer .footer-grid,
  .product-detail-layout {
    grid-template-columns: 1fr;
    gap: 20px;
  }
  .footer .footer-top,
  .footer .footer-grid { gap: 32px; }
  .footer { padding-top: 44px; }

  /* 产品详情参数 */
  .pd-thumbs .thumb { width: 64px; height: 64px; }
  .pd-main { aspect-ratio: 4 / 3; }

  /* 相关区块内边距收窄 */
  .related-products,
  .related-news { padding: 28px 20px; }

  /* 回到顶部位置 */
  .back-to-top { right: 16px; bottom: 44px; width: 40px; height: 40px; font-size: 18px; }
}

/* ========== 十八、迁移收口补充组件（简介图文 / 时间线 / 详情封面 / 分类居中 / toast） ========== */
/* 企业简介：图文两栏 */
.about-intro-grid {
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  gap: 40px;
  align-items: center;
}
.about-content-text { color: var(--color-text-normal); font-size: 15px; }
.about-content-text p { margin-bottom: 16px; }
.about-intro-img {
  width: 100%;
  height: 340px;
  border-radius: var(--card-radius);
  background-color: #eef2f6;
  background-size: cover;
  background-position: center;
  box-shadow: 0 2px 14px rgba(0, 0, 0, 0.05);
}

/* 发展历程时间线：完整布局（承接前文 .timeline 基础描边） */
.timeline { position: relative; padding-left: 30px; margin-top: 8px; }
.timeline .timeline-item { position: relative; padding-bottom: 26px; }
.timeline .timeline-item:last-child { padding-bottom: 0; }
.timeline .timeline-item p { font-size: 14px; color: var(--color-text-normal); line-height: 1.8; }
.timeline .timeline-dot {
  position: absolute;
  left: -36px;
  top: 4px;
  width: 12px;
  height: 12px;
  border-radius: 50%;
}

/* 新闻详情：标题头 + 封面 */
.news-detail-head { text-align: center; margin-bottom: 24px; }
.news-detail-head h2 { font-size: 26px; color: var(--color-title-big); font-weight: 700; margin-bottom: 12px; line-height: 1.4; }
.news-detail-head .meta { color: var(--color-text-placeholder); font-size: 14px; }
.news-detail-cover {
  display: none;
  width: 100%;
  height: 380px;
  border-radius: var(--card-radius);
  margin: 22px 0;
  background-color: #eef2f6;
  background-size: cover;
  background-position: center;
}

/* 产品分类筛选居中 + 与列表间距 */
.category-filter { text-align: center; }
.category-filter + .product-grid { margin-top: 36px; }

/* 全局 toast 提示（common.js 调用，替代 alert） */
.ysy-toast {
  position: fixed;
  left: 50%;
  top: 24px;
  transform: translate(-50%, -16px);
  z-index: 10000;
  min-width: 220px;
  max-width: 80vw;
  padding: 12px 22px;
  border-radius: var(--card-radius);
  background: rgba(29, 42, 58, 0.94);
  color: #ffffff;
  font-size: 14px;
  text-align: center;
  box-shadow: 0 8px 26px rgba(0, 0, 0, 0.22);
  opacity: 0;
  transition: opacity 0.3s ease, transform 0.3s ease;
  pointer-events: none;
}
.ysy-toast.show { opacity: 1; transform: translate(-50%, 0); }
.ysy-toast-success { background: rgba(22, 140, 90, 0.96); }
.ysy-toast-error { background: rgba(200, 60, 55, 0.96); }

/* 超小屏轮播高度进一步收敛（置于末尾，确保层叠优先） */
@media (max-width: 480px) { .home-banner { height: 260px; } }

@media (max-width: 768px) {
  .about-intro-grid { grid-template-columns: 1fr; gap: 24px; }
  .about-intro-img { height: 220px; }
  .news-detail-cover { height: 220px; }
  .news-detail-head h2 { font-size: 21px; }
  .timeline { padding-left: 24px; }
  .timeline .timeline-dot { left: -30px; }
}

/* ============ 企业实力七栏目（接口化图文渲染：封面+富文本+图集网格） ============ */
.ent-section { padding: 56px 0; }
.ent-cover { max-width: 960px; margin: 0 auto 24px; }
.ent-cover img { display: block; width: 100%; height: auto; max-height: 420px; object-fit: cover; border-radius: 8px; }
.ent-rich { max-width: 960px; margin: 0 auto; color: var(--color-text-normal); font-size: 15px; line-height: 1.9; word-break: break-word; }
.ent-rich p { margin-bottom: 12px; }
.ent-rich img { max-width: 100%; height: auto; border-radius: 6px; margin: 10px 0; }
.ent-rich h3 { font-size: 18px; font-weight: 600; margin: 18px 0 8px; color: inherit; }
.ent-rich blockquote { margin: 12px 0; padding: 10px 16px; border-left: 3px solid var(--color-primary); background: rgba(0, 0, 0, 0.03); }
.ent-rich ul, .ent-rich ol { padding-left: 24px; margin-bottom: 12px; }
.ent-gallery { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; max-width: 960px; margin: 24px auto 0; }
.ent-gallery-item { margin: 0; }
.ent-gallery-item img { display: block; width: 100%; height: 200px; object-fit: cover; border-radius: 6px; }

@media (max-width: 768px) {
  .ent-section { padding: 36px 0; }
  .ent-gallery { grid-template-columns: repeat(2, 1fr); gap: 10px; }
  .ent-gallery-item img { height: 140px; }
  .ent-cover img { max-height: 260px; }
}

/* ============ 首页专项 v=20260905p：资讯卡片摘要截断 + 高度统一 ============ */
/* 摘要固定两行截断，标题同行数约束，卡片排版整齐不再参差 */
.news-card h3 {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  line-height: 1.5;
  min-height: 51px;
}
.news-card p {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}
/* 产品卡描述同步两行截断，首页网格行高对齐 */
.product-card .card-text {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}

/* ============ 首页专项 v=20260905p：轮播触摸优化 + 移动端布局增强 ============ */
/* 纵向滚动不劫持：仅水平手势交给轮播滑动逻辑 */
.home-banner .slides { touch-action: pan-y; }

@media (max-width: 768px) {
  /* 小屏隐藏箭头：触摸滑动为主，避免箭头误触与遮挡文案 */
  .home-banner .arrow { display: none; }
  .home-banner .slide-inner h2 { font-size: 24px; letter-spacing: 1px; }
  .home-banner .slide-inner p { font-size: 14px; margin-top: 10px; }
  .home-banner .slide-inner .btn-group { margin-top: 16px; }
  .home-banner .btn-banner { padding: 10px 20px; font-size: 14px; }
  /* 资讯卡改纵向堆叠：左图右文在窄屏挤压变形 */
  .news-card { flex-direction: column; }
  .news-card .news-img { width: 100%; height: 180px; }
  .news-card .news-body { padding: 16px 18px; }
  /* 首页产品网格两列：单列过长、四列过挤 */
  .product-grid { grid-template-columns: repeat(2, 1fr); gap: 14px; }
  .feature-grid { grid-template-columns: 1fr; gap: 16px; }
  .partner-list { gap: 14px; }
  .consult-cta { padding: 40px 0; }
  .consult-cta h2 { font-size: 22px; }
}

@media (max-width: 480px) {
  .product-grid { grid-template-columns: 1fr; }
  .home-banner .slide-inner h2 { font-size: 21px; }
}

/* ============ 关于我们页专项 v=20260905q：移动端排版增强 ============ */
/* 平板：富文本字号/行高/间距收紧，避免小屏文字拥挤、边距错乱 */
@media (max-width: 768px) {
  .ent-rich { font-size: 14px; line-height: 1.85; }
  .ent-rich p { margin-bottom: 10px; }
  .ent-rich h3 { font-size: 16px; margin: 14px 0 6px; }
  .ent-cover { margin-bottom: 16px; }
  .ent-gallery { margin-top: 16px; }
}
/* 手机：栏目内边距/图集单列/Banner 高度进一步收缩，适配窄屏 */
@media (max-width: 480px) {
  .ent-section { padding: 28px 0; }
  .ent-rich { font-size: 13.5px; }
  .ent-gallery { grid-template-columns: 1fr; gap: 12px; }
  .ent-gallery-item img { height: 190px; }
  .page-banner { height: 200px; }
  .page-banner .banner-content h1 { font-size: 22px; letter-spacing: 1px; }
}

/* ============ 产品中心页专项 v=20260905r：分页器 + 分类移动端横滑 ============ */
/* 分页器：居中flexwrap，页码窗口按钮统一尺寸 */
.product-pager { display: flex; align-items: center; justify-content: center; gap: 6px; flex-wrap: wrap; margin-top: 28px; }
.pager-btn {
  min-width: 34px; height: 34px; padding: 0 10px;
  border: 1px solid var(--border-base, #dcdfe6); background: #fff; border-radius: 6px;
  font-size: 13px; color: var(--color-text-main, #222); cursor: pointer;
  transition: var(--transition-base, all .2s);
}
.pager-btn:hover:not(:disabled) { border-color: var(--primary-blue, #1a5cb0); color: var(--primary-blue, #1a5cb0); }
.pager-btn.active { background: var(--primary-blue, #1a5cb0); border-color: var(--primary-blue, #1a5cb0); color: #fff; }
.pager-btn:disabled { opacity: .45; cursor: not-allowed; }
.pager-info { font-size: 12px; color: var(--color-text-minor, #666); margin-right: 8px; }
.pager-ellipsis { color: #9aa3af; padding: 0 2px; }
/* 新闻资讯页分页器（模块17 v=20260905u）：与产品中心分页器同构居中，复用 .pager-btn 按钮样式 */
.news-pager { display: flex; align-items: center; justify-content: center; gap: 6px; flex-wrap: wrap; margin-top: 28px; }
/* ============ 新闻资讯页专项 v=20260905u：卡片等高峰列 + 封面16:9比例化，规避条目少时大片留白/缩放错乱 ============ */
#news-list-container { align-items: stretch; }
#news-list-container .news-card { display: flex; flex-direction: column; }
#news-list-container .news-card .news-img { aspect-ratio: 16 / 9; width: 100%; overflow: hidden; position: relative; background: #f3f6fa; }
#news-list-container .news-card .news-img img { width: 100%; height: 100%; object-fit: cover; }
#news-list-container .news-card .news-body { flex: 1 1 auto; display: flex; flex-direction: column; }
#news-list-container .news-card .news-body p { flex: 1 1 auto; min-height: 0; }

/* 平板：分类卡片横向滚动不挤压溢出 + 检索框满宽 */
@media (max-width: 768px) {
  .cat-cards {
    flex-wrap: nowrap; overflow-x: auto; -webkit-overflow-scrolling: touch;
    padding-bottom: 10px; scroll-snap-type: x proximity;
  }
  .cat-card { flex: 0 0 150px; width: 150px; scroll-snap-align: start; }
  .cat-search input { width: 100%; }
  .category-filter + .product-grid { margin-top: 20px; }
  .product-pager { margin-top: 22px; }
}
/* 手机：分类卡片再收窄 + 分页器紧凑 */
@media (max-width: 480px) {
  .cat-card { flex: 0 0 132px; width: 132px; }
  .cat-card img, .cat-card .cat-cover-ph { height: 76px; }
  .cat-card .cat-name { font-size: 13px; }
  .product-pager { gap: 4px; margin-top: 18px; }
  .pager-btn { min-width: 30px; height: 30px; padding: 0 8px; font-size: 12px; }
  .pager-info { width: 100%; text-align: center; margin: 0 0 4px; }
}

/* ============ 新闻资讯页专项 v=20260905t：新闻卡片三端布局归一 ============ */
/* 根治：.news-img 原无宽度约束，横排卡片图列宽度未定义（图破损时塌缩为 alt 文本条、
   图正常时按固有尺寸挤压文字列）；桌面左图定宽 220px 且纵向拉伸满卡高，三列网格间距归一 */
.news-card .news-img { flex: 0 0 220px; width: 220px; height: auto; }
.news-list { gap: 20px; }
/* 平板：两列网格 + 图列收窄，杜绝三列横排卡片挤压 */
@media (max-width: 1024px) {
  .news-list { grid-template-columns: repeat(2, 1fr); gap: 18px; }
  .news-card .news-img { flex: 0 0 180px; width: 180px; }
}
/* 手机：纵向堆叠卡，图列重置满宽定高（覆盖横排卡 flex-basis） */
@media (max-width: 768px) {
  .news-card .news-img { flex: 0 0 auto; width: 100%; height: 180px; }
  .news-list { gap: 16px; }
}

/* ============ 联系我们页专项 v=20260905t：三端布局归一 ============ */
/* 平板：两栏间距收紧，避免表单与信息卡片挤压 */
@media (max-width: 1024px) {
  .contact-layout { gap: 28px; }
}
/* 手机：上下堆叠（继承 grid 单列），表单/信息卡间距归一 + 提交按钮满宽易点；输入框宽度继承 100% 自适应 */
@media (max-width: 768px) {
  .contact-layout { gap: 28px; }
  .contact-info .info-item { margin-bottom: 14px; }
  .contact-form .form-group { margin-bottom: 16px; }
  .contact-form button { width: 100%; }
}
