/* ============================================================
 * ssg.css —— SSG 补充样式
 * 1) 镜像缺失装饰图的配色回退（.top/.nav/.foot/.topadcs）
 * 2) 图片占位 .imgph（CMS 无图时使用）
 * 3) 主导航 hover 下拉面板、轮播文案、表单提示、视频、FAQ 等
 * ============================================================ */

/* ---------- 头部区域：统一 1200 版心，蓝色溢出色块清除，间距统一 ---------- */
.top { background: #fff; height: auto; }
.header { width: auto; height: auto; }
/* 全站统一居中容器（版心） */
.w1200 { max-width: 1200px; margin: 0 auto; padding: 0 20px; box-sizing: border-box; }
.clearfix::after { content: ''; display: block; clear: both; }
.h_top { background: #f5f7fa; height: 36px; line-height: 36px; font-size: 12px; color: #666; padding-top: 0; }
.h_top .fr a { color: #666; text-decoration: none; }
.h_top .fr a:hover { color: #e74100; }
.m_top { background: #fff; height: auto; padding: 24px 0; }
/* logo 旁口号（v2merge：11px、紧靠主 Logo、垂直居中对齐 logo 字块、不限宽） */
.m_top .slogan { font-style: normal; font-size: 11px; font-weight: normal; color: #E53333; margin-left: 6px; line-height: 1.4; padding: 0; margin-top: 9px; }
/* 首页 H1 品牌文字：重置默认外边距/字号，保持与原 logo 文字完全一致 */
.m_top .logo-h1 { margin: 0; padding: 0; border: 0; font-size: 100%; font-weight: normal; display: inline; }
/* 电话只保留一行 */
.m_top .tel p { font-size: 14px; color: #666; line-height: 36px; margin: 0; }
.m_top .tel p i { font-style: normal; font-size: 24px; font-weight: bold; color: #e53333; margin-left: 6px; }
/* ==================== V24 Header：固定高度双板块（左品牌区|竖线|右热线区） ====================
   对齐铁律：左右两大板块同高(72px)垂直居中于 110px 栏高；竖线固定结构；
   文字长短/换图不塌陷——各子块固定高+flex 居中，slogan/热线双行各自 column 居中 */
.m_top.v24 { height: 110px; padding: 0; }
.v24-head { display: flex; align-items: center; justify-content: space-between; height: 110px; gap: 20px; }
.v24-brand { display: flex; align-items: center; height: 72px; min-width: 0; flex: 0 1 auto; }
.v24-logo { flex: 0 0 auto; text-decoration: none; }
/* V44：img Logo 自适应——max-height 约束 + 限宽防挤压右侧 Slogan/热线区，等比缩放不变形 */
.v24-logo img { display: block; height: 64px; width: auto; max-width: 260px; object-fit: contain; }
h1.v24-logo-h1 { margin: 0; padding: 0; border: 0; font-size: 100%; font-weight: normal; display: flex; }
.v24-sep { width: 1px; height: 56px; background: #e3e8ef; margin: 0 18px; flex: 0 0 auto; }
.v24-slogan { display: flex; flex-direction: column; justify-content: center; height: 64px; min-width: 0; }
.v24-sl { margin: 0; padding: 0; text-align: left; line-height: 1.6; white-space: nowrap; }
/* V54（2026-09-21 指令）：两条 Slogan 字号统一，且与右侧热线号码同一级别（视觉平级）。
   字号原 CSS 写死（后台 style 配置只驱动 color/bold/italic/underline，无字号字段），故改 CSS。
   桌面 18/13→22/22（=.v24-num 22px 完全平级）；移动 15/12→17/17（=.v24-num 17px）。
   文字内容/颜色/字重（内联 style）/行高/间距/位置/布局全部不动。 */
.v24-sl1 { font-size: 22px; }
.v24-sl2 { font-size: 22px; }
.v24-hot { display: flex; align-items: center; height: 72px; flex: 0 0 auto; }
.v24-hicon { width: 48px; height: 48px; margin-right: 12px; flex: 0 0 auto; }
.v24-hlines { display: flex; flex-direction: column; justify-content: center; height: 64px; }
.v24-hl { margin: 0; padding: 0; line-height: 1.7; font-size: 13px; display: flex; align-items: baseline; gap: 8px; white-space: nowrap; }
.v24-hlbl { color: #666; flex: 0 0 auto; }
.v24-num { font-size: 22px; text-decoration: none; letter-spacing: .5px; }
.v24-num:hover { opacity: .85; }
@media (max-width: 768px) {
  /* 移动端折叠：栏高自适应，品牌区与热线区上下折行、均左对齐，排版整洁不乱 */
  .m_top.v24 { height: auto; padding: 12px 0; }
  .v24-head { height: auto; flex-wrap: wrap; gap: 10px 14px; }
  .v24-brand { height: auto; flex: 1 1 100%; }
  .v24-logo img { height: 40px; max-width: 180px; }
  .v24-slogan { height: auto; }
  .v24-sl { white-space: normal; }
  .v24-sl1 { font-size: 17px; }
  .v24-sl2 { font-size: 17px; }
  .v24-sep { height: 40px; margin: 0 12px; }
  .v24-sep-mid { display: none; }
  .v24-hot { height: auto; flex: 1 1 100%; }
  .v24-hicon { width: 36px; height: 36px; }
  .v24-hlines { height: auto; }
  .v24-num { font-size: 17px; }
}
/* 热门关键词+搜索条：与导航同一版心，间距收紧 */
.sou { background: #fff; border-bottom: none; height: auto; padding: 12px 0; margin-bottom: 20px; }
.sou .ss { width: auto; max-width: 1200px; height: auto; margin: 0 auto; padding: 0 20px; background: #fff; box-sizing: border-box; display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
/* V8 头部修复：热词行/搜索框/按钮三者垂直居中对齐（浮动改弹性，行高统一 36px） */
.sou .ss_l { float: none; }
.sou .ss_l span { display: inline-block; line-height: 36px; }
.sou .ss_r { float: none; }
.sou .ss_r form { display: flex; align-items: center; margin: 0; }
.sou .ss_r input.inp1 { height: 36px; box-sizing: border-box; }
/* 主导航（西顿式）：白色横条 + 激活红色下划线，二级分类为下方平铺面板，无悬浮下拉
   V8：去掉导航下边框——导航与热词行同属头部，分割线只保留头部与内容区之间的间距逻辑 */
.site-nav { width: 100%; height: 70px; background: #fff; border-bottom: none; position: relative; z-index: 1000; }
.nav-inner { max-width: 1200px; height: 100%; margin: 0 auto; padding: 0 20px; box-sizing: border-box; display: flex; align-items: center; justify-content: flex-start; }
/* V28（2026-09-19 指令）：一级菜单字号增大+整组左对齐——间距统一走 gap（禁零散 padding 补丁），
   nav-inner 与 .w1200/.sou .ss 同容器同内边距（1200/20px），三者左缘天然共线（Logo=导航=热词行） */
.nav-menu { display: flex; align-items: center; list-style: none; height: 100%; gap: 32px; }
.nav-item { height: 100%; }
.nav-link { display: flex; align-items: center; height: 100%; padding: 0; font-size: 17px; color: #333; text-decoration: none; position: relative; transition: color 0.25s ease; white-space: nowrap; }
.nav-link:hover { color: #e62f03; }
/* 激活一级菜单：红色下划线标识 */
.nav-item.on .nav-link { color: #e62f03; font-weight: 600; }
.nav-item.on .nav-link::after { content: ''; position: absolute; bottom: 8px; left: 50%; transform: translateX(-50%); width: 30px; height: 3px; background: #E53333; border-radius: 2px 2px 0 0; }
/* 主导航 hover/点击 弹出子菜单面板：默认收起；悬停一级 TAB 或点击跳转后（li.open）展开；
   面板为所在 li 的子元素，移入面板保持展开，移出整个导航区域自动收回。
   面板尺寸全站统一：固定高度，完整容纳两行图标卡片，不随二级分类数量变化 */
/* V23（2026-09-19 指令）：全部主导航下拉面板背景高度单点变量——产品中心固定 2 行后与其余面板完全同高，
   条目多少只留白不变高；V20「>2 行内联高度按需注入」已移除（generator.js navPanelHtml），此处为唯一高度源 */
.site-nav { --np-h: 236px; }
.navpanel { display: none; position: absolute; top: 100%; left: 0; right: 0; height: var(--np-h); background: #fff; border-top: 2px solid #E53333; box-shadow: 0 14px 30px rgba(0, 0, 0, 0.12); z-index: 999; }
.nav-item:hover > .navpanel, .nav-item.open > .navpanel { display: block; }
/* 二级分类卡片组：6 列均分（v2merge：12 项→6+6 两排；≤6 项由模板注入 repeat(N,1fr) 整行均分）；
   卡片列宽固定 150px，图标/文字/间距不变；分类少时不再靠左留白，分类多时与产品中心面板视觉一致 */
.navpanel-in { max-width: 1200px; height: 100%; margin: 0 auto; padding: 28px 20px; display: grid; grid-template-columns: repeat(6, 1fr); justify-content: center; grid-auto-rows: min-content; align-content: start; gap: 26px 16px; box-sizing: border-box; }
.np-card { display: flex; flex-direction: column; align-items: center; justify-content: center; text-decoration: none; color: #333; border-radius: 6px; padding: 4px 2px; transition: background .2s; }
.np-card:hover { background: #f7f9fc; }
.np-ico { width: 46px; height: 46px; border: 1px solid #e6e6e6; border-radius: 4px; display: flex; align-items: center; justify-content: center; font-size: 22px; background: #fff; transition: all .2s; margin-bottom: 9px; overflow: hidden; }
.np-card:hover .np-ico { border-color: #E53333; }
.np-ico-img { width: 100%; height: 100%; object-fit: cover; display: block; }
.np-txt { font-size: 14px; text-align: center; transition: color .2s; }
.np-card:hover .np-txt { color: #E53333; }
/* 三级分类：卡片内小字链接（保持可抓取，不弹层） */
.np-sub { margin-top: 6px; display: flex; flex-wrap: wrap; justify-content: center; gap: 3px 8px; }
.np-sub a { font-size: 11px; color: #999; text-decoration: none; }
.np-sub a:hover { color: #E53333; }
/* V45：三级菜单飞出面板——二级卡片含三级时 .np-card3 包裹（主链 a.np-card-main + .np-fly3 飞出层，hover 激活） */
.np-card3 { position: relative; display: flex; flex-direction: column; align-items: stretch; }
.np-card3 .np-card-main { display: flex; flex-direction: column; align-items: center; justify-content: center; text-decoration: none; color: #333; border-radius: 6px; padding: 4px 2px; transition: background .2s; }
.np-card3:hover .np-card-main { background: #f7f9fc; }
.np-card3:hover .np-ico { border-color: #E53333; }
.np-card3:hover .np-txt { color: #E53333; }
.np-arrow { position: absolute; top: 2px; right: 2px; font-size: 11px; color: #b6c2d2; line-height: 1; }
.np-fly3 { display: none; position: absolute; left: calc(100% - 8px); top: -6px; min-width: 150px; max-width: 240px; background: #fff; border: 1px solid #edf0f4; border-radius: 6px; box-shadow: 0 10px 26px rgba(20, 40, 80, 0.14); padding: 8px 0; z-index: 1001; }
.np-card3:hover .np-fly3 { display: block; }
.np-fly3 a { display: block; padding: 8px 16px; font-size: 13px; color: #444; text-decoration: none; white-space: nowrap; }
.np-fly3 a:hover { color: #E53333; background: #f7f9fc; }
/* V28：平板 769~1000 字号略收敛（17→16）+间距收紧，左对齐保持（继承 flex-start 与容器内边距） */
@media (min-width: 769px) and (max-width: 1000px) {
  .nav-menu { gap: 24px; }
  .nav-link { font-size: 16px; }
}
@media (max-width: 1023px) {
  .navpanel-in { grid-template-columns: repeat(6, 1fr) !important; gap: 16px 10px; padding: 22px 16px; }
}
/* 汉堡按钮：桌面端隐藏（移动端在下方 @media 768 内显示为 flex） */
.nav-toggle { display: none; }
@media (max-width: 768px) {
  .nav-link { padding: 0 10px; font-size: 13px; }
  /* V20 汉堡折叠：一级菜单收成抽屉，点有子菜单的一级项展开图标卡片面板（替代桌面 hover）
     V28：抽屉左右边距对齐内容容器（nav-inner 作定位祖先，left/right=内边距 20px），
     展开后菜单起点与顶部 Logo 左缘同一垂直线（原 left:0 全出血） */
  .nav-inner { justify-content: flex-start; position: relative; }
  .nav-toggle { display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; margin-left: 4px; padding: 0; font-size: 20px; line-height: 1; background: #fff; border: 1px solid #e6e6e6; border-radius: 4px; color: #333; cursor: pointer; }
  .nav-menu { display: none; position: absolute; top: 100%; left: 20px; right: 20px; height: auto; max-height: 75vh; overflow-y: auto; background: #fff; flex-direction: column; align-items: stretch; gap: 0; border-top: 2px solid #E53333; box-shadow: 0 14px 30px rgba(0, 0, 0, 0.12); }
  .site-nav.nav-open .nav-menu { display: flex; }
  .nav-item { height: auto; }
  .nav-item + .nav-item { border-top: 1px solid #f2f2f2; }
  .nav-item > .nav-link { height: 44px; padding: 0 16px; font-size: 14px; }
  .nav-item.on .nav-link::after { display: none; }
  .navpanel { position: static; display: none; height: auto !important; box-shadow: none; border-top: 1px solid #f2f2f2; }
  .nav-item.open > .navpanel { display: block; }
  .navpanel-in { grid-template-columns: repeat(3, 1fr) !important; height: auto; padding: 16px 12px; gap: 18px 8px; }
  /* V45 移动端：三级不在桌面 hover 飞出，改抽屉内缩进静态展开（可滚动抓取） */
  .np-fly3 { display: block; position: static; min-width: 0; max-width: none; border: none; border-radius: 0; box-shadow: none; padding: 2px 0 2px 12px; margin-top: 2px; border-left: 2px solid #eef1f5; }
  .np-fly3 a { padding: 6px 8px; font-size: 12px; color: #888; }
  .np-arrow { display: none; }
}

/* 文字 logo（头部唯一主品牌「云上照明」，首页由 H1 承载） */
.logo .logotxt { display: inline-block; text-decoration: none; padding: 4px 0; }
.logo .logotxt b { display: block; font-family: "Microsoft YaHei"; font-size: 30px; color: #0b5cad; line-height: 36px; letter-spacing: 2px; }
.logo .logotxt i { display: block; font-style: normal; font-size: 11px; color: #8aa0bd; letter-spacing: 1px; }
.m_top .tel p a.tel-num { text-decoration: none; }
.m_top .tel p a.tel-num:hover i { color: #c22222; }

/* 搜索条输入框（原图为缺失装饰图，改边框样式） */
.ss_r input.inp1 { background: #fff; border: 1px solid #d5dbe3; border-right: none; width: 170px; padding-left: 8px; background-image: none; }
.ss_r input.inp2 { background: #0b5cad; background-image: none; color: #fff; cursor: pointer; font-size: 14px; width: auto; min-width: 62px; height: 36px; line-height: 36px; padding: 0 16px; border: 0; }
.ss_l span a { color: #666; }
.ss_l span a:hover { color: #e74100; }

/* ---------- 轮播 ---------- */
.fullSlide .bd li { display: none; background: linear-gradient(120deg, #0a3468 0%, #0b5cad 60%, #1273d4 100%); }
.fullSlide .bd li.on { display: block; }
.fullSlide .bd li a { display: block; height: 533px; text-decoration: none; }
.slide-txt { width: 1000px; margin: 0 auto; padding-top: 150px; text-align: center; }
.slide-txt h2 { font-family: "Microsoft YaHei"; font-size: 40px; color: #fff; font-weight: bold; text-shadow: 0 2px 8px rgba(0, 0, 0, .35); }
.slide-txt p { font-size: 18px; color: #dbe9f8; margin-top: 18px; }
.slide-txt .slide-btn { display: inline-block; margin-top: 34px; padding: 10px 34px; background: #e74100; color: #fff; font-size: 16px; border-radius: 3px; }

/* ---------- 内页横幅 topadcs（缺失背景图改渐变） ---------- */
.topadcs a.fullad { height: 220px; background: linear-gradient(120deg, #0a3468, #0b5cad 60%, #1273d4); display: flex; align-items: center; justify-content: center; text-decoration: none; }
.topadcs a.fullad span { font-family: "Microsoft YaHei"; font-size: 32px; font-weight: bold; color: #fff; letter-spacing: 4px; text-shadow: 0 2px 8px rgba(0, 0, 0, .3); }

/* ---------- 图片占位 ---------- */
.imgph { display: flex; align-items: center; justify-content: center; background: linear-gradient(135deg, #eef2f7, #dde6f0); color: #7d93b2; font-size: 13px; font-family: "Microsoft YaHei"; text-align: center; padding: 8px; box-sizing: border-box; border: 1px solid #d5dee9; }
.pd_list_dl dt .imgph { width: 210px; height: 160px; margin: 0 auto; }
.pror ul li .imgph { width: 158px; height: 158px; }
.al_c ul li .imgph { width: 222px; height: 185px; }
#carousel ul li .imgph { width: 220px; height: 160px; margin: 0 auto; }
.g-zl .d_tabc p .imgph { width: 420px; height: 240px; margin: 0 auto; }
.new-a .nr > p .imgph, .new-b .nr > p .imgph { width: 265px; height: 150px; }
.g-zj .nr > p .imgph.zj-img { width: 430px; height: 240px; }
.probigshow .imgph.bigshow-ph { width: 380px; height: 380px; margin: 0 auto; }
.ul_prothumb .imgph { width: 60px; height: 60px; }
.t05_list .imgph { width: 196px; height: 130px; }
.case-gallery .imgph { width: 600px; height: 380px; margin: 10px auto; }
.n_info_con .imgph { margin: 10px auto; max-width: 600px; }
.imgph-inline { display: flex; }

/* ---------- 详情页 ---------- */
.attr-list { list-style: none; padding: 0; margin: 10px 0; }
.attr-list li { line-height: 30px; font-size: 14px; border-bottom: 1px dashed #e5e5e5; }
.attr-list li span { display: inline-block; width: 90px; color: #999; }
.attr-list li b { color: #333; font-weight: normal; }
.consult-btn { display: inline-block; padding: 10px 44px; background: #e74100; color: #fff; font-size: 16px; font-family: "Microsoft YaHei"; border-radius: 3px; text-decoration: none; }
.consult-btn:hover { background: #c93700; }
.proinfo-hide { display: none; }
.case-gallery { text-align: center; }
.video-wrap { margin: 15px auto; max-width: 640px; text-align: center; }
.video-wrap video { width: 100%; max-height: 360px; background: #000; }
.online textarea.inp4 { height: 70px; }

/* 相关推荐缩略 */
.t05_list { margin-bottom: 10px; }
.t05_list a { display: block; text-align: center; line-height: 24px; font-size: 13px; color: #333; }

/* ---------- 表单 ---------- */
.form-tip { font-size: 13px; line-height: 22px; padding: 4px 0; color: #999; }
.form-tip.err { color: #e74100; }
.form-tip.ok { color: #1a9e3b; }
.form-tip-li { list-style: none; }
.form-h3 { font-family: "Microsoft YaHei"; font-size: 20px; color: #0b5cad; margin-bottom: 12px; }
.liuy-page { width: 560px; margin: 0 auto; }

/* ---------- 单页 ---------- */
.a_nav li.cur a { background: #0b5cad; color: #fff; }
.about-body p { font-size: 14px; line-height: 2; color: #444; }
.contact-page { display: flex; gap: 30px; }
.contact-info { flex: 1; padding: 10px 0; }
.contact-info h3 { font-family: "Microsoft YaHei"; font-size: 22px; color: #0b5cad; margin-bottom: 16px; }
.contact-info p { line-height: 36px; font-size: 14px; color: #444; }
.contact-info .ci-label { color: #999; }
.contact-info .c-phone { color: #e74100; font-size: 20px; }
.message-page { display: flex; gap: 30px; }
.message-page .liuy-page { margin: 0; }
.msg-side { flex: 1; }
.consult-card { border: 1px solid #e5e5e5; background: #f7fafd; padding: 30px; text-align: center; margin-top: 20px; }
.consult-card p { color: #999; }
.consult-card strong { display: block; font-size: 26px; color: #e74100; margin: 10px 0; }
.consult-card span { color: #999; font-size: 12px; }

/* ---------- FAQ ---------- */
.faq-item { border-bottom: 1px dashed #e5e5e5; padding: 14px 0; }
.faq-item .faq-q { font-size: 15px; color: #0b5cad; font-family: "Microsoft YaHei"; cursor: pointer; margin: 0; }
.faq-item .faq-a { display: none; font-size: 14px; color: #555; line-height: 1.9; padding-top: 8px; }
.faq-item.open .faq-a { display: block; }
.faq-q::before { content: "＋ "; color: #e74100; }
.faq-item.open .faq-q::before { content: "－ "; }

/* ---------- 新闻详情 ---------- */
.article-nav { margin: 20px 0; }
.article-nav a { color: #0b5cad; }

/* ---------- 底部页脚（全新改版：友情链接标题 → 蓝色通栏导航 → 多列信息区 → TOP悬浮按钮） ---------- */
/* .foot 覆盖镜像基础样式（背景图/固定高度/大padding），改为白色信息底 */
.foot { background: #fff; height: auto; padding-bottom: 0; overflow: hidden; width: 100%; box-sizing: border-box; }
/* ① 友情链接标题：蓝色文字 + 短下划线，居中 */
.flinks { padding: 26px 0 18px; }
.flinks-in { max-width: 1200px; margin: 0 auto; padding: 0 20px; box-sizing: border-box; text-align: center; }
.flinks-title { display: inline-flex; align-items: baseline; gap: 10px; }
.flinks-cn { font-size: 20px; font-weight: bold; color: #2b55a8; font-family: "Microsoft YaHei"; }
.flinks-en { font-size: 13px; color: #8fa8d8; letter-spacing: 2px; }
.flinks-line { display: block; width: 44px; height: 3px; background: #2b55a8; margin: 10px auto 0; border-radius: 2px; }
/* ② 蓝色通栏导航条：横向100%铺满，左右无白边，白色文字均匀居中 */
.fnavbar { width: 100%; background: linear-gradient(180deg, #3d6fc8 0%, #2b55a8 100%); }
.fnavbar-in { max-width: 1200px; margin: 0 auto; padding: 0 20px; box-sizing: border-box; display: flex; justify-content: center; align-items: center; flex-wrap: wrap; }
.fnavbar-in a { display: inline-block; padding: 15px 34px; font-size: 15px; color: #fff; text-decoration: none; font-family: "Microsoft YaHei"; }
.fnavbar-in a:hover { background: rgba(255, 255, 255, .12); }
/* ③ V68 四栏信息区：左=Logo品牌(1.2) → 中=版权联系(1.3) → 右3=备案+新媒体(1) → 右4=二维码；四栏顶对齐等间距 */
.finfo { background: #fff; padding: 34px 0 40px; }
.finfo-in { max-width: 1200px; margin: 0 auto; padding: 0 20px; box-sizing: border-box; display: flex; align-items: flex-start; justify-content: space-between; gap: 40px; }
.fcol-l { width: 240px; flex-shrink: 0; min-width: 0; }
.fcol-m { flex: 1.3; min-width: 0; }
/* V68 第3列：复用 fi-row/fi-label/fi-val 类族，字号/行高/颜色与中栏天然一致 */
.fcol-media { flex: 1; min-width: 0; }
.fcol-media .fi-label { width: auto; min-width: 72px; }
/* V69：第3列整体下移一行——padding-top = 一个 fi-row 行高（line-height 1.7×13px=22.1 + margin-bottom 10px ≈ 32px），
   使 ICP 备案号与第2列「公司地址」同行对齐（版权行占第1行）；纯 CSS 不动 HTML；≤768 堆叠时归零 */
.fcol-media { padding-top: 32px; }
.flogo2 { text-decoration: none; display: inline-block; }
.flogo2 b { display: block; font-family: "Microsoft YaHei"; font-size: 28px; color: #2b55a8; }
.flogo2 i { display: block; font-style: normal; font-size: 11px; color: #9aa7bd; letter-spacing: 1px; margin-top: 4px; }
.flogo2-img img { display: block; max-width: 200px; max-height: 64px; }
/* V43：页脚企业名行样式恢复（footer.showCompanyName 开关开启时条件输出，默认关零输出） */
.fcomp { margin: 10px 0 0; }
.fcomp span { font-size: 14px; font-weight: bold; color: #333; font-family: "Microsoft YaHei"; }
/* 中栏：字段名固定宽、间距/行高统一、全部左对齐；空字段行隐藏 */
.fi-row { display: flex; margin: 0 0 10px; line-height: 1.7; }
.fi-row:last-child { margin-bottom: 0; }
.fi-label { flex-shrink: 0; width: 72px; font-size: 13px; color: #999; }
.fi-val { font-size: 13px; color: #555; min-width: 0; word-break: break-all; }
.fi-val a { color: #555; text-decoration: none; }
.fi-val a:hover { color: #2b55a8; }
.fi-copyright .fi-val { font-size: 13px; color: #555; }
/* 右栏：微信码+小程序码等尺寸（120px ≤ 130px）并排、右对齐，未配置整块隐藏 */
.fqr2 { display: flex; gap: 18px; justify-content: flex-end; flex-shrink: 0; }
.fq-item { width: 120px; text-align: center; }
.fq-item img { display: block; width: 120px; height: 120px; object-fit: contain; background: #fff; }
.fq-cap { display: block; font-size: 12px; color: #888; margin-top: 6px; line-height: 1.5; }
.qrph { width: 100px; height: 100px; border: 1px dashed #b9c4d6; color: #8a97ad; font-size: 12px; display: flex; align-items: center; justify-content: center; text-align: center; line-height: 1.8; background: #f8fafd; }
/* ④ 回到顶部 TOP 悬浮按钮：蓝色竖版；v2merge 独立定位——抬高至右侧悬浮留言面板（展开高约345px）之上，零重叠 */
.f-top { position: fixed; right: 16px; bottom: 390px; z-index: 900; width: 46px; height: 64px; border: none; border-radius: 6px; background: linear-gradient(180deg, #3d6fc8 0%, #2b55a8 100%); color: #fff; cursor: pointer; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; box-shadow: 0 3px 10px rgba(30, 60, 130, .35); padding: 0; font-family: "Microsoft YaHei"; }
.f-top:hover { background: linear-gradient(180deg, #4a7ed8 0%, #3462bb 100%); }
.f-top-arrow { font-size: 14px; line-height: 1; }
.f-top-txt { font-size: 11px; letter-spacing: 1px; line-height: 1; }
/* 页脚窄屏适配：V68 平板 768~1000 折行（二维码独占一行）；≤768 四栏纵向堆叠、无横滚 */
@media (max-width: 1000px) and (min-width: 769px) {
  .finfo-in { flex-wrap: wrap; gap: 32px; }
  .fcol-l { width: 280px; }
  .fcol-m { flex: 1 1 320px; }
  .fcol-media { flex: 1 1 280px; }
  .fqr2 { flex-basis: 100%; justify-content: flex-start; }
}
@media (max-width: 768px) {
  .finfo-in { flex-direction: column; gap: 28px; }
  .fcol-l { width: 100%; }
  /* V69：移动端纵向堆叠不需要错位对齐，第3列下移量归零 */
  .fcol-media { width: 100%; flex: none; padding-top: 0; }
  .fcol-media .fi-label { min-width: 72px; }
  .fqr2 { justify-content: flex-start; flex-wrap: wrap; }
  .fnavbar-in a { padding: 13px 18px; font-size: 14px; }
  /* 移动端悬浮留言面板上移 84px，TOP 按钮位于其下方空白区，无需再抬高 */
  .f-top { right: 12px; bottom: 12px; width: 40px; height: 56px; }
}

/* ---------- 首页 misc ---------- */
.pro2-zx { display: inline-block; padding: 8px 28px; background: #e74100; color: #fff; font-size: 15px; border-radius: 3px; text-decoration: none; }
.g-gx .nr em a { text-decoration: none; }

/* ---------- 首页产品区（缺失装饰图配色回退 + 强制 3 列网格） ---------- */
.prol h3 { background: #0b5cad; }
.prol .nr { background: #f2f6fb; height: auto; min-height: 641px; padding-bottom: 20px; }
.prol h4 a { background: #e8f0fa; color: #0058c4; border-radius: 3px; }
.prol li { background: none; border-bottom: 1px dashed #d5dee9; width: 182px; }
.prol li a { color: #333; background: none; }
.prol li a:hover { color: #e74100; }
.pror h2.pro-tit { background: #0b5cad; }
.pror h2.pro-tit a.mo { color: #fff; padding-top: 0; line-height: 58px; }
.pror ul { width: 769px; font-size: 0; }
.pror ul li { width: 242px; padding-right: 8px; }
.pror ul li .imgph { width: 234px; height: 170px; }
.pror li span { width: 234px; }

/* ---------- 首页其余缺失背景图回退 ---------- */
.g-zl { background: #f7fafd; padding-bottom: 30px; }
.g-zl .nr .list li.cur a { background: #0b5cad; color: #fff; }
.yous .y1, .yous .y3 { background: #f2f6fb; }
.yous .y2, .yous .y4 { background: #e8f0fa; }
.anli { background: #fff; }
.g-gx { background: #0b5cad; }
.g-gx .nr li { background: rgba(255, 255, 255, .12); color: #fff; }
.g-gx .nr li a { color: #fff; }
.g-kh { background: #f7fafd; }
.g-zj { background: #fff; }
.g-yy { background: linear-gradient(120deg, #0a3468, #0b5cad); }
.g-yy .xx p, .g-yy .xx span { color: #fff; }
.g-yy .xx em i, .g-yy .xx em b { color: #ffd8b0; }
.g-yy .liuy { background: #fff; border-radius: 6px; padding: 20px 0; }
.g-yy .liuy input, .g-yy .liuy textarea { border: 1px solid #d5dbe3; }
.new { background: #fff; }

/* ---------- 优势选项卡 g-zl（缺失图片回退 + 静态化布局） ---------- */
.g-zl .nr { position: static; margin-top: 30px; padding-bottom: 40px; }
.g-zl .d_tabc p { margin-bottom: 10px; }
.g-zl .nr a.as { position: static; display: inline-block; margin-top: 10px; color: #1a6eda; font-size: 14px; }
.g-zl .nr span { position: static; display: block; width: 765px; height: auto; background: #1a6eda; color: #fff; margin: 25px auto 0; padding: 25px 0 30px; text-align: center; box-sizing: content-box; }
.g-zl .nr span b { padding-top: 0; }
.g-zl .nr em { padding-left: 0; color: #eaf3ff; }
.g-zl .list { position: static; text-align: center; margin-top: 25px; }
.g-zl .list li { display: inline-block; padding: 0 8px 17px; }
.g-zl .list li a { background: #9db8d8; color: #fff; }
.g-zl .list li a i { color: #fff; }
.g-zl .list li.cur a { background: #fc8006; }

/* ---------- 公司实力 yous（缺失大幅背景图，改纵向色带） ---------- */
.yous { height: auto; }
.yous .tit { height: auto; background: #0b5cad; padding: 40px 0 30px; }
.yous .tit p { padding-top: 0; }
.yous .tit span { width: auto; }
.yous .tit span i { padding-left: 0; }
.yous .y1, .yous .y2, .yous .y3, .yous .y4 { height: auto; padding: 45px 0; }
.yous .content { width: 1000px; }
.ys1, .ys2, .ys3, .ys4 { padding-left: 40px !important; padding-top: 0 !important; }
.ys1 h4 { background: none; }
.ys1 em { margin-top: 15px; max-width: 860px; }

/* ---------- 案例区 anli（V13：轮播/旧网格结构退役，改精品案例统一组件 .cshow） ---------- */
.anli { height: auto; padding-bottom: 40px; }
.anli .tit p { background: none; }

/* ---------- 走进云上 g-zj ---------- */
.g-zj { height: auto; padding-bottom: 50px; background: #f7fafd; }
.g-zj .tit { padding-bottom: 30px; }
.g-zj .tit p { padding-left: 0; text-align: center; }
.g-zj .qh li a { background: #0b5cad; color: #fff; border-radius: 3px; }
.g-zj .qh li a i { color: #cfe0f5; }
.g-zj .qh li.cur a, .g-zj .qh li a:hover { background: #e74100; }

/* ---------- 底部咨询/表单区 g-yy ---------- */
.g-yy { height: auto; padding: 40px 0 50px; }
.g-yy .xx { padding-top: 20px; }
.g-yy .liuy { position: static; margin: 20px auto 0; width: 560px; }
.g-yy .liuy li span { color: #333; }
.g-yy .liuy li b { color: #e74100; }
.g-yy .liuy input[type="submit"].b15 { width: 120px; height: 40px; background: #e74100; color: #fff; border: none; cursor: pointer; font-size: 15px; }
#roll { position: fixed; right: 20px; bottom: 40px; z-index: 999; }
#roll_top { width: 46px; height: 46px; background: #0b5cad; color: #fff; cursor: pointer; border-radius: 3px; position: relative; }
#roll_top::after { content: "▲"; position: absolute; left: 0; top: 0; width: 46px; height: 46px; line-height: 46px; text-align: center; font-size: 18px; }

/* ---------- g-zj 形象区强制布局 ---------- */
.g-zj .nr { width: 1000px; margin: 0 auto; overflow: hidden; }
.g-zj .nr div.zj-p { width: 620px; height: 300px; float: left; margin: 0; }
.g-zj .nr div.zj-p .imgph.zj-img { width: 100%; height: 100%; }
.g-zj .nr .qh { float: left; padding-left: 20px; }


/* ============================================================
   悬浮咨询/留言组件（移植自旧版 SideConsult.vue / MessageBox.vue / WeChatCustomer.vue）
   ============================================================ */
/* 左侧在线咨询按钮 */
.side-consult-wrapper { position: fixed; left: 0; top: 50%; transform: translateY(-50%); z-index: 9999; }
.consult-trigger { width: 68px; background: linear-gradient(180deg, #ff5a5a 0%, #e03030 100%); border-radius: 0 10px 10px 0; box-shadow: 3px 3px 12px rgba(0,0,0,.28); cursor: pointer; user-select: none; overflow: hidden; padding: 10px 0 14px; display: flex; flex-direction: column; align-items: center; gap: 6px; transition: all .25s ease; }
.consult-trigger:hover { background: linear-gradient(180deg, #ff6e6e 0%, #f04040 100%); box-shadow: 4px 4px 16px rgba(0,0,0,.35); transform: translateX(2px); }
.consult-avatar { width: 52px; height: 52px; border-radius: 50%; background: rgba(255,255,255,.92); display: flex; align-items: center; justify-content: center; box-shadow: 0 2px 8px rgba(0,0,0,.15); flex-shrink: 0; }
.avatar-img { width: 44px; height: 44px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 30px; line-height: 1; }
.consult-text { color: #fff; font-size: 15px; font-weight: bold; line-height: 1.6; letter-spacing: 3px; writing-mode: vertical-rl; text-orientation: upright; text-shadow: 0 1px 3px rgba(0,0,0,.25); }
/* V35 客服图片 tab：img 满宽铺满，加载失败回退原图形方案 */
.consult-tab-img { width: 100%; height: auto; display: block; }
.consult-fallback { flex-direction: column; align-items: center; gap: 6px; }

/* 客服聊天弹窗 */
.chat-overlay { position: fixed; inset: 0; background: rgba(0,0,0,.35); z-index: 10000; display: none; }
.chat-overlay.show { display: block; }
.chat-window { position: fixed; left: 50%; top: 50%; transform: translate(-50%, -50%); width: 380px; max-width: 92vw; max-height: 86vh; background: #fff; border-radius: 10px; box-shadow: 0 12px 48px rgba(0,0,0,.3); z-index: 10001; display: none; flex-direction: column; overflow: hidden; }
.chat-window.show { display: flex; }
.chat-header { background: linear-gradient(135deg, #f04e4e, #d03030); height: 54px; display: flex; justify-content: space-between; align-items: center; padding: 0 12px; cursor: grab; user-select: none; flex-shrink: 0; }
.chat-header:active { cursor: grabbing; }
.header-left { display: flex; align-items: center; gap: 10px; }
.cs-avatar { position: relative; width: 40px; height: 40px; }
.cs-avatar .avatar-img { width: 40px; height: 40px; border-radius: 50%; object-fit: cover; display: block; }
.header-title { color: #fff; display: flex; flex-direction: column; justify-content: center; line-height: 1.3; }
.header-title b { font-size: 14px; font-weight: 600; }
.cs-status-text { font-size: 11px; opacity: .92; display: inline-flex; align-items: center; gap: 4px; }
.avatar-status { position: absolute; right: -1px; bottom: -1px; width: 12px; height: 12px; border-radius: 50%; border: 2px solid #d03030; background: #b5b5b5; }
.avatar-status.on { background: #3dd168; }
.header-btns { display: flex; gap: 6px; }
.header-btns button { width: 26px; height: 26px; border: none; border-radius: 4px; background: rgba(255,255,255,.2); color: #fff; font-size: 15px; cursor: pointer; line-height: 1; }
.header-btns button:hover { background: rgba(255,255,255,.35); }
.chat-body { flex: 1; overflow-y: auto; padding: 14px; background: #f5f6f7; }
.system-time { text-align: center; font-size: 12px; color: #999; margin-bottom: 12px; }
.offline-bubble { background: #e8f0fe; border: 1px solid #c6d8f5; border-radius: 8px; padding: 12px; margin-bottom: 12px; }
.offline-bubble-title { display: flex; align-items: center; gap: 6px; font-size: 13px; color: #1a56c4; font-weight: 600; margin-bottom: 6px; }
.offline-bubble-desc { font-size: 12px; color: #5b6b85; line-height: 1.7; }
.leave-form textarea, .leave-form input { width: 100%; box-sizing: border-box; border: 1px solid #ddd; border-radius: 6px; padding: 9px 12px; font-size: 13px; margin-bottom: 8px; outline: none; font-family: inherit; resize: none; color: #333; }
.leave-form textarea:focus, .leave-form input:focus { border-color: #e84d4d; }
.form-submit { width: 100%; padding: 10px; background: #e84d4d; color: #fff; border: none; border-radius: 6px; font-size: 14px; cursor: pointer; }
.form-submit:hover { background: #d04040; }

/* 右侧请您留言：默认展开，固定视窗右下角；折叠后仅留横向红色小按钮，同样吸右下角 */
.message-box-wrapper { position: fixed; right: 20px; top: auto; bottom: 20px; z-index: 9998; }
.message-panel { width: 300px; background: #fff; box-shadow: -2px 2px 16px rgba(0,0,0,.18); border-radius: 6px 0 0 6px; overflow: hidden; animation: panelIn .2s ease; }
@keyframes panelIn { from { opacity: 0; transform: translateX(20px); } to { opacity: 1; transform: translateX(0); } }
.msg-header { background: #e84d4d; height: 42px; display: flex; justify-content: space-between; align-items: center; padding: 0 14px; }
.drag-handle { cursor: grab; user-select: none; }
.drag-handle:active { cursor: grabbing; }
.msg-header span { color: #fff; font-size: 15px; font-weight: 500; }
.msg-minimize { width: 24px; height: 24px; background: none; border: none; cursor: pointer; display: flex; align-items: center; justify-content: center; padding: 0; }
.minimize-line { display: block; width: 14px; height: 2px; background: #fff; border-radius: 1px; }
.msg-minimize:hover .minimize-line { background: #ffcccc; }
.msg-body { padding: 16px; }
.msg-tip { font-size: 13px; color: #333; margin-bottom: 14px; line-height: 1.6; }
.message-panel .form-item { margin-bottom: 10px; }
.message-panel .form-item textarea { width: 100%; border: 1px solid #ddd; border-radius: 4px; padding: 10px 12px; font-size: 13px; outline: none; resize: none; box-sizing: border-box; color: #333; font-family: inherit; }
.message-panel .form-item textarea::placeholder { color: #bbb; }
.message-panel .form-item textarea:focus { border-color: #e84d4d; }
.input-with-icon { position: relative; display: flex; align-items: center; }
.input-icon { position: absolute; left: 10px; font-size: 14px; color: #ccc; z-index: 1; }
.input-with-icon input { width: 100%; height: 36px; border: 1px solid #ddd; border-radius: 4px; padding: 0 12px 0 32px; font-size: 13px; outline: none; box-sizing: border-box; color: #333; }
.input-with-icon input::placeholder { color: #bbb; }
.input-with-icon input:focus { border-color: #e84d4d; }
.submit-row { display: flex; justify-content: flex-end; margin-top: 12px; }
.submit-btn { padding: 6px 22px; background: #e84d4d; color: #fff; font-size: 13px; border: none; border-radius: 4px; cursor: pointer; }
.submit-btn:hover { background: #d04040; }
.success-tip { margin-top: 12px; padding: 10px; background: #f0f9f0; border: 1px solid #b8e0b8; border-radius: 4px; text-align: center; }
.success-tip p:first-child { font-size: 13px; color: #2a9d2a; font-weight: bold; }
.success-tip p:last-child { font-size: 11px; color: #5cb85c; margin-top: 4px; }
.msg-trigger { cursor: pointer; user-select: none; }
.trigger-inner { display: flex; align-items: center; gap: 10px; background: linear-gradient(to bottom, #f04e4e, #e03030); border-radius: 6px; box-shadow: -2px 2px 10px rgba(0,0,0,.2); padding: 11px 16px; }
.trigger-inner:hover { background: linear-gradient(to bottom, #ff5e5e, #f04040); }
.trigger-label { color: #fff; font-size: 14px; font-weight: 600; line-height: 1; }
.trigger-box { width: 15px; height: 12px; border: 2px solid #fff; border-radius: 2px; display: inline-block; box-sizing: border-box; }

@media (max-width: 768px) {
  .message-box-wrapper { right: 12px; bottom: 84px; }
  .message-panel { width: 280px; }
  .chat-window { width: 92vw; }
}

/* 副导航一级分类选中高亮：内页镜像 .leib2 .nr h3.cur a 橙色高亮保持；
   V19 首页 proc 改为「加深蓝色高亮」（指令一.3：当前激活分类按钮加深蓝色高亮） */
.prol .nr h4.cur a { background: #0b3d91; color: #fff; text-decoration: none; }

/* ---------- 在线咨询聊天窗：快捷问题/工具栏/输入区/消息气泡 ---------- */
.quick-bar { display: flex; align-items: center; gap: 6px; padding: 8px 10px; border-top: 1px solid #eee; background: #fff; flex-shrink: 0; }
.quick-tags { flex: 1; display: flex; gap: 6px; overflow: hidden; min-width: 0; }
.quick-tag { flex-shrink: 0; padding: 4px 10px; border: 1px solid #d8dce2; border-radius: 20px; background: #f7f8fa; font-size: 12px; color: #444; cursor: pointer; white-space: nowrap; }
.quick-tag:hover { border-color: #e84d4d; color: #e84d4d; background: #fff; }
.quick-nav, .quick-close { width: 22px; height: 22px; border: none; border-radius: 4px; background: #e9ebee; color: #666; font-size: 13px; cursor: pointer; line-height: 1; flex-shrink: 0; }
.quick-nav:hover, .quick-close:hover { background: #dde0e4; color: #333; }
.chat-tools { display: flex; align-items: center; justify-content: flex-end; gap: 4px; padding: 6px 10px; border-top: 1px solid #f0f0f0; background: #fff; position: relative; flex-shrink: 0; }
.tool-btn { width: 30px; height: 26px; border: none; background: transparent; font-size: 16px; cursor: pointer; border-radius: 4px; line-height: 1; }
.tool-btn:hover { background: #f0f1f3; }
/* V34 工具栏独立图标：白底灰线稿 img 渲染 22px；hover 浅蓝高亮；active 按压缩放 */
.tool-btn.tool-ic { display: inline-flex; align-items: center; justify-content: center; background: #fff; padding: 0; transition: background .15s, transform .1s; }
.tool-btn.tool-ic img { width: 22px; height: 22px; display: block; border-radius: 4px; pointer-events: none; }
.tool-btn.tool-ic:hover { background: #e8f4ff; }
.tool-btn.tool-ic:active { transform: scale(.92); }
.emoji-panel { position: absolute; left: 0; bottom: 100%; width: 100%; box-sizing: border-box; background: #fff; border-top: 1px solid #eee; box-shadow: 0 -4px 12px rgba(0,0,0,.08); padding: 8px 10px; display: grid; grid-template-columns: repeat(8, 1fr); gap: 2px; z-index: 5; }
.emoji-panel[hidden] { display: none; }
.emoji-panel button { border: none; background: transparent; font-size: 19px; padding: 4px 0; cursor: pointer; border-radius: 4px; line-height: 1; }
.emoji-panel button:hover { background: #f0f1f3; }
.chat-input-row { display: flex; align-items: center; gap: 8px; padding: 8px 10px; background: #fff; flex-shrink: 0; }
#chatInput { flex: 1; min-width: 0; border: none; background: #f2f3f5; border-radius: 6px; padding: 9px 12px; font-size: 13px; outline: none; color: #333; font-family: inherit; }
#chatInput:focus { background: #eceef1; }
.btn-tel { flex-shrink: 0; padding: 7px 14px; background: #e84d4d; color: #fff; font-size: 12px; border-radius: 6px; text-decoration: none; }
.btn-tel:hover { background: #d04040; }
.chat-send-row { display: flex; justify-content: flex-end; padding: 0 10px 10px; background: #fff; flex-shrink: 0; }
.btn-send { padding: 7px 22px; background: #e84d4d; color: #fff; border: none; border-radius: 6px; font-size: 13px; cursor: pointer; }
.btn-send:hover { background: #d04040; }
/* 消息气泡 */
.msg-item { display: flex; margin-bottom: 12px; }
.msg-item.mine { justify-content: flex-end; }
.msg-avatar { width: 32px; height: 32px; border-radius: 50%; background: #fff; display: flex; align-items: center; justify-content: center; font-size: 19px; flex-shrink: 0; box-shadow: 0 1px 3px rgba(0,0,0,.1); }
.msg-item.mine .msg-avatar { order: 2; margin-left: 8px; }
.msg-item:not(.mine) .msg-avatar { margin-right: 8px; }
.msg-main { max-width: 72%; display: flex; flex-direction: column; }
.msg-bubble { background: #fff; border-radius: 10px; padding: 9px 12px; font-size: 13px; color: #333; line-height: 1.6; word-break: break-all; box-shadow: 0 1px 3px rgba(0,0,0,.06); }
.msg-item.mine .msg-bubble { background: #e84d4d; color: #fff; }
.msg-item.sys { justify-content: center; }
.msg-item.sys .msg-sys-text { font-size: 12px; color: #999; background: #eceef1; border-radius: 10px; padding: 4px 12px; }
.msg-img { max-width: 180px; border-radius: 8px; display: block; }
.msg-file { display: inline-flex; align-items: center; gap: 6px; background: #fff; border: 1px solid #e3e5e8; border-radius: 8px; padding: 8px 12px; font-size: 12px; color: #444; }
.msg-file .file-icon { font-size: 16px; }
/* 窗口抖动 */
@keyframes chatShake {
  0%, 100% { transform: translate(0, 0); }
  20% { transform: translate(-6px, 3px); }
  40% { transform: translate(6px, -3px); }
  60% { transform: translate(-4px, -2px); }
  80% { transform: translate(4px, 2px); }
}
.shake-anim { animation: chatShake .5s ease; }

/* ---------- 语义化重构（HTML5 标签等价规则：视觉零变化） ----------
   原 h2/span/h4 换为 h1 后，由下列规则继承原标签选择器的全部样式；
   resetcommon.css 已统一清零 h1 margin，h1 默认 32px 字号在下方被覆盖。 */
/* 首页 banner 主标语：原 .slide-txt h2 */
.slide-txt h1 { font-family: "Microsoft YaHei"; font-size: 40px; color: #fff; font-weight: bold; text-shadow: 0 2px 8px rgba(0, 0, 0, .35); }
/* 内页横幅主标题：原 .topadcs a.fullad span */
.topadcs a.fullad h1 { font-family: "Microsoft YaHei"; font-size: 32px; font-weight: bold; color: #fff; letter-spacing: 4px; text-shadow: 0 2px 8px rgba(0, 0, 0, .3); }
/* 产品/案例详情主标题：原 .propar h4（含 h4 基准字号 14px） */
.propar h1.corange { color: #10AC30; line-height: 28px; padding: 0 8px; border-bottom: 1px dashed #ccc; font-size: 14px; font-weight: bold; }

/* ---------- 联系页排版优化 ㉓（仅 .page-contact 生效，文字内容零改动） ---------- */
/* 1. 面包屑与选项卡之间间距收窄（面包屑字号不变） */
.page-contact .a_nav { margin-top: 12px; }
/* 2. 选项卡标签：统一宽度、整行居中、补齐首项左边框、文字居中、高度统一 */
.page-contact .a_nav ul { width: 100%; display: flex; justify-content: center; float: none; }
.page-contact .a_nav li { float: none; flex: 0 0 124px; width: 124px; }
.page-contact .a_nav li:first-child { border-left: 1px solid #efefef; }
.page-contact .a_nav li a { display: block; height: 40px; line-height: 40px; text-align: center; }
/* 3. 左右分栏：顶部对齐、栏间距统一 */
.page-contact .contact-page { align-items: flex-start; gap: 50px; }
.page-contact .contact-info { padding: 0; }
/* 4. 左侧公司信息：标题最大；各行统一行高、统一间距、全部左对齐；号码保留红色、字号收敛 */
.page-contact .contact-info h3 { font-size: 22px; margin: 0 0 14px; }
.page-contact .contact-info p { margin: 0; line-height: 42px; font-size: 14px; }
.page-contact .contact-info .c-phone { font-size: 17px; font-weight: bold; }
/* 5. 右侧在线留言表单：标题层级匹配；标签右对齐等宽；输入框统一宽/高；星号紧贴输入框；项间距统一 */
.page-contact .liuy-page { width: 470px; margin: 0; flex: none; }
.page-contact .form-h3 { font-size: 22px; margin: 0 0 14px; }
.page-contact .msg-form li { list-style: none; margin-bottom: 14px; font-size: 0; }
.page-contact .msg-form li span { display: inline-block; width: 72px; text-align: right; margin-right: 8px; font-size: 14px; color: #333; vertical-align: middle; }
.page-contact .msg-form input[type="text"], .page-contact .msg-form textarea { width: 280px; min-height: 32px; padding: 5px 8px; border: 1px solid #d5dbe3; box-sizing: border-box; font-size: 14px; vertical-align: middle; }
.page-contact .msg-form textarea { height: 96px; resize: vertical; }
.page-contact .msg-form li b { color: #e74100; margin-left: 5px; font-size: 14px; vertical-align: middle; }
/* 提交按钮：原模板精灵图 404 导致透明底白字不可见，改为实心橙色按钮（与首页 g-yy 表单按钮一致） */
.page-contact .msg-form input[type="submit"].b15 { width: 120px; height: 40px; background: #e74100; background-image: none; color: #fff; border: none; border-radius: 3px; cursor: pointer; font-size: 15px; }
.page-contact .msg-form input[type="submit"].b15:hover { background: #c93700; }
.page-contact .msg-form .form-tip-li { margin-bottom: 0; }

/* ---------- 在线留言页排版优化 ㉔（仅 .page-message 生效，文字内容零改动） ---------- */
/* 1. 面包屑与选项卡间距收窄；选项卡统一宽度/整行居中/补齐首项左边框/文字居中/高度统一 */
.page-message .a_nav { margin-top: 12px; }
.page-message .a_nav ul { width: 100%; display: flex; justify-content: center; float: none; }
.page-message .a_nav li { float: none; flex: 0 0 124px; width: 124px; }
.page-message .a_nav li:first-child { border-left: 1px solid #efefef; }
.page-message .a_nav li a { display: block; height: 40px; line-height: 40px; text-align: center; }
/* 2. 主体区域撑开最小高度并垂直居中（页脚不再出现在视口中间），左右栏垂直居中对齐、栏距统一 */
.page-message .a_fz { min-height: 560px; display: flex; align-items: center; }
.page-message .a_fz .content { width: 100%; }
.page-message .message-page { align-items: center; gap: 50px; }
/* 3. 左侧留言表单：标签右对齐等宽；输入框统一宽/高；星号紧贴输入框；项间距统一；标题与表单紧凑 */
.page-message .liuy-page { width: 470px; margin: 0; flex: none; }
.page-message .form-h3 { margin: 0 0 16px; }
.page-message .msg-form li { list-style: none; margin-bottom: 14px; font-size: 0; }
.page-message .msg-form li span { display: inline-block; width: 72px; text-align: right; margin-right: 8px; font-size: 14px; color: #333; vertical-align: middle; }
.page-message .msg-form input[type="text"], .page-message .msg-form textarea { width: 280px; min-height: 32px; padding: 5px 8px; border: 1px solid #d5dbe3; box-sizing: border-box; font-size: 14px; vertical-align: middle; }
.page-message .msg-form textarea { height: 96px; resize: vertical; }
.page-message .msg-form li b { color: #e74100; margin-left: 5px; font-size: 14px; vertical-align: middle; }
/* 提交按钮：原模板精灵图 404 导致透明底白字不可见，改为实心橙色按钮（与首页/联系页一致） */
.page-message .msg-form input[type="submit"].b15 { width: 120px; height: 40px; background: #e74100; background-image: none; color: #fff; border: none; border-radius: 3px; cursor: pointer; font-size: 15px; }
.page-message .msg-form input[type="submit"].b15:hover { background: #c93700; }
.page-message .msg-form .form-tip-li { margin-bottom: 0; }
/* 4. 右侧热线卡片：缩小内边距、号码字号收敛、保持浅色背景框、去除多余顶部外边距 */
.page-message .msg-side { flex: 1; }
.page-message .consult-card { padding: 24px 20px; margin-top: 0; }
.page-message .consult-card strong { font-size: 22px; margin: 8px 0; }

/* ---------- 在线咨询弹窗优化 ㉕（功能零删减，仅UI排版与提示） ---------- */
/* 5. 窗口最小宽度，防止挤压变形 */
.chat-window { min-width: 340px; }
/* 1. 右上角最小化/关闭按钮放大 */
.header-btns button { width: 32px; height: 32px; font-size: 17px; border-radius: 6px; }
/* 1. 离线醒目浅提示条 */
.offline-hint { margin: 8px 0 10px; padding: 8px 10px; background: #fff7e6; border: 1px solid #ffd591; border-radius: 6px; font-size: 12px; color: #ad6800; line-height: 1.6; }
/* 2. 留言表单：三个输入框统一高度与内边距 */
.leave-form input { height: 38px; }
.leave-form textarea { height: 58px; }
.leave-form input, .leave-form textarea { padding: 8px 12px; margin-bottom: 10px; }
.leave-form .form-submit { margin-top: 2px; }
/* 5. 表单区域与聊天区分隔：留言卡下方留白加大 + 消息区底部分隔线 */
.offline-bubble { margin-bottom: 16px; }
.chat-body { border-bottom: 2px solid #e8eaed; }
/* 3. 快捷问题栏：箭头放大、按钮间距均匀、关闭叉挪到整行最右侧减少误触 */
.quick-bar { border-top: none; gap: 8px; padding: 10px 12px; }
.quick-tags { gap: 8px; }
.quick-tag { padding: 5px 12px; }
.quick-nav { width: 28px; height: 28px; font-size: 16px; border-radius: 6px; }
.quick-close { width: 28px; height: 28px; font-size: 15px; border-radius: 6px; margin-left: auto; }
/* 4. 底部操作区重排：输入框加边框清晰化；电话联系改白底红边与发送主按钮区分 */
.chat-input-row { padding: 10px 12px; gap: 10px; }
#chatInput { border: 1px solid #e0e2e6; background: #fff; height: 34px; }
#chatInput:focus { border-color: #e84d4d; background: #fff; }
.btn-tel { background: #fff; color: #e84d4d; border: 1px solid #e84d4d; padding: 8px 14px; font-size: 13px; }
.btn-tel:hover { background: #fff2f2; }
.chat-send-row { padding: 0 12px 12px; }
.btn-send { padding: 8px 26px; font-size: 14px; }
/* 4. 电话联系号码弹层 */
.tel-pop { position: fixed; z-index: 10002; background: #fff; border: 1px solid #eee; border-radius: 8px; box-shadow: 0 6px 24px rgba(0,0,0,.25); padding: 12px 20px; text-align: center; }
.tel-pop .tel-num { display: block; font-size: 20px; font-weight: bold; color: #e84d4d; margin: 4px 0 10px; }
.tel-pop .call { display: inline-block; padding: 6px 22px; background: #e84d4d; color: #fff; border-radius: 5px; text-decoration: none; font-size: 13px; }
.tel-pop .call:hover { background: #d04040; }

/* ---------- 走进云上照明板块排版优化 ㉖（仅首页 .g-zj，文字/链接零改动） ---------- */
/* 1. 标题：缩小与下方模块空白；标题保持居中。
   注：标题下装饰线已由 V6 统一标题组件（.g-zj .tit p a::after，56px 橙色短棒）接管，
   ㉖ 时代的 44px 蓝色 p::after 装饰线已删除，避免双线并存 */
.g-zj .tit { padding-bottom: 12px; }
.g-zj .tit p { position: relative; padding-bottom: 14px; }
/* 5. 模块内部留白收紧 */
.g-zj { padding-bottom: 40px; }
/* 2/4. 左右栏改 flex：图片 560、按钮栏 280，两栏顶底完全对齐（同高 300px），视觉重量均衡 */
.g-zj .nr { display: flex; gap: 20px; width: 1000px; }
.g-zj .nr div.zj-p { float: none; flex-shrink: 0; width: 560px; height: 300px; margin: 0; }
.g-zj .nr .qh { float: none; padding-left: 0; flex: 1; height: 300px; }
.g-zj .nr .qh ul { height: 100%; display: flex; flex-direction: column; gap: 12px; }
.g-zj .nr .qh li { float: none; height: auto; flex: 1; margin: 0; }
/* 3. 四个按钮：统一高度（flex 均分）、间距相等、中英文整体垂直居中、圆角、hover 变深反馈 */
.g-zj .qh li a { display: flex; flex-direction: column; align-items: center; justify-content: center; height: 100%; padding: 0; border-radius: 6px; line-height: 1.4; font-size: 15px; transition: background .2s ease; }
.g-zj .qh li a i { padding: 0; margin-top: 4px; font-size: 11px; }
.g-zj .qh li a:hover { background: #084c8c; }
/* 4. 左侧占位框文字加大 */
.g-zj .zj-img { font-size: 15px; }

/* ---------- 首页底部预约banner（g-yy）排版优化 ㉗（仅首页，文字字段零改动） ---------- */
/* 2. 主标语/热线/表单整体水平居中 */
.g-yy .content { display: flex; flex-direction: column; align-items: center; }
.g-yy .xx { padding-top: 0; text-align: center; width: auto; }
.g-yy .xx p { padding-bottom: 8px; }
/* 3. 热线：去掉失效背景图(m3.jpg 404)，号码字号放大、层级清晰 */
.g-yy .xx em { background: none; width: auto; height: auto; margin: 18px auto 0; }
.g-yy .xx em i, .g-yy .xx em b { font-size: 18px; font-weight: bold; line-height: 1.7; }
/* 3→4 统一垂直间距：标语→热线 18px，热线→表单 24px */
.g-yy .liuy { margin: 24px auto 0; padding: 24px 28px; }
/* 4. 预约表单：标签右对齐等宽；输入框统一 300×32（textarea 300×88）；星号紧贴；项间距统一；橙色立即预约按钮保留并居中 */
.g-yy .msg-form li { list-style: none; margin-bottom: 12px; font-size: 0; }
.g-yy .msg-form li span { display: inline-block; width: 72px; text-align: right; margin-right: 8px; font-size: 14px; color: #333; float: none; vertical-align: middle; }
.g-yy .msg-form input[type="text"], .g-yy .msg-form textarea { width: 300px; height: 32px; padding: 5px 8px; border: 1px solid #d5dbe3; box-sizing: border-box; font-size: 14px; float: none; vertical-align: middle; }
.g-yy .msg-form textarea { height: 88px; resize: vertical; }
.g-yy .msg-form li b { color: #e74100; margin-left: 5px; font-size: 14px; vertical-align: middle; }
.g-yy .msg-form input[type="submit"].b15 { display: block; margin: 8px auto 0; }
.g-yy .msg-form .form-tip { text-align: center; }

/* 产品分类独立页：分类导语（SEO 正文区） */
.cat-intro { background:#f5f8fc; border:1px solid #e3ecf5; border-left:4px solid #1a5fb4; padding:14px 18px; margin-bottom:14px; }
.cat-intro h2 { font-size:18px; color:#1a5fb4; margin:0 0 8px; font-family:"Microsoft Yahei","微软雅黑"; }
.cat-intro p { font-size:13px; line-height:1.9; color:#555; margin:0; text-indent:2em; }

/* ============ P1-1 修复：侧栏联系卡（.leftlxs）文字重叠 ============ */
/* 根因1：h3 固定 height:63px，"Contact" 装饰字换行后溢出叠压下方电话 */
.leftlxs h3 { height:auto; line-height:1.5; padding:12px 0 8px; overflow:visible; }
.leftlxs h3 span { display:block; margin-left:0; font-size:12px; line-height:1.4; }
/* 根因2：tel.jpg 图标 404，保留 50px 空 padding 无意义 */
.leftlxs .phone { height:auto; padding-bottom:8px; }
.leftlxs .phone span { background:none; padding-left:0; height:auto; }
.leftlxs .phone span b { margin-top:4px; }
/* 根因3：p 固定 height:22px + 浮动 span，邮箱长地址换行后挤压重叠。
   2026-09-16 回归修复：word-break:break-all 会把邮箱从 @163.co/m 处强制断开，
   改为 white-space:nowrap + 字号 13px，保证邮箱/手机/地址每行完整显示不折行不重叠 */
.leftlxs p { height:auto; min-height:22px; line-height:1.7; margin-bottom:6px; width:auto; padding-left:8px; white-space:nowrap; font-size:13px; word-break:normal; }
.leftlxs p span { float:none; display:inline; }

/* ============ 精品案例区块：分组切换 + 更多/收起（产品中心及分类页） ============ */
/* V13：jpal-rn 区块与右栏案例导航卡已退役（整合进精品案例统一组件 .cshow），相关规则删除 */

/* ============ P1-2 修复：侧栏蓝色分类导航对比度 ============ */
/* 根因1：.leib2 .nr h3 a 深蓝字 #0058c4 on 蓝底 #2578DE，几乎不可读 */
.leib2 .nr h3 a { background:none; color:#ffffff; width:auto; padding-left:16px; }
.leib2 .nr h3 a:hover, .leib2 .nr h3.cur a { color:#f98401; }
/* 根因2：.leib2/.leib 标题背景图 p1.jpg 404，白字悬空白底不可见，补纯色蓝底 */
.leib2 .tit, .leib .tit { background:#1a5fb4; width:auto; height:auto; min-height:59px; line-height:1.4; padding:14px 12px 10px 20px; box-sizing:border-box; }

/* ============ 双栏对齐栅格规范（产品中心/12分类页/案例/新闻列表/产品/案例详情 通用容器） ============ */
/* 规则①：面包屑细线为 .content 通栏基准线（plc 必须是 .content 直接子元素） */
.content > .plc { display:block; width:100%; box-sizing:border-box; }
/* 规则②：左右两栏顶边对齐——plc 带通栏 border-bottom，其 margin 不塌陷，
   两栏均以细线底+10px 为顶边基准；模板中不得再用 mt10 空 div（空div margin 塌陷失效） */
.content > .plc { margin-bottom:10px; }
.content > .v52w > .leftr { margin-top:0; }
.content > .v52w > .rightl { margin-top:0; }
/* 规则③：右栏所有模块宽度严格一致 210px（含边框盒模型），左边线天然对齐 */
.leftr .leib2, .leftr .leib, .leftr .leftlxs { width:210px; box-sizing:border-box; margin-left:0; margin-right:0; }
/* 规则④：底边自然对齐由内容决定，两栏 float 布局保持，禁止填充 */

/* ============ P2-3 侧边菜单两级归组：组名样式（蓝底白字分组标题+分隔线） ============ */
/* v2merge：侧栏已取消归组平铺，以下 .lg-t 组名样式不再被引用，保留无害 */
.leftr .leib2 .lg-t { color:#eaf2fd; font-size:12px; font-weight:bold; letter-spacing:2px; padding:11px 20px 3px; line-height:1.4; }
.leftr .leib2 .lg + .lg .lg-t { border-top:1px solid rgba(255,255,255,.28); margin-top:5px; padding-top:13px; }
.leftr .leib2 .lg:first-child .lg-t { padding-top:8px; }

/* ============ v2merge 侧栏整改 ============ */
/* 案例导航卡标题条加深一档蓝（与无标题条的产品菜单天然区分；仅产品中心侧栏的案例卡生效） */
.content > .leftr .leib-casenav .tit, .content > .v52w > .leftr .leib-casenav .tit { background:#0d3d78; }
/* 右侧栏吸附（sticky）：滚动时侧栏悬浮；float 元素 sticky 在 Chrome 有效。
   V52：sticky 作用域收进 .v52w（两栏 wrapper），父级约束=两栏区块自身，
   滚到底部触达 wrapper 底即停，不再穿透下方热销/精品案例模块（根因=旧父级 .content 过高） */
.content > .v52w > .leftr { position: sticky; top: 14px; z-index: 2; }
/* 侧栏三模块（产品菜单/案例导航卡/联系卡）统一 210px 同宽 + 统一间距 14px */
.content > .leftr > * + *, .content > .v52w > .leftr > * + * { margin-top: 14px; }
/* 联系卡高度自适应：去掉模板固定 420px，地址行以下不留白 */
.content > .leftr .leftlxs, .content > .v52w > .leftr .leftlxs { height: auto; }

/* ============ v2merge RandomNews 推荐版块均分 ============ */
/* 精品案例/热销产品卡片 flex 均分：不足 6 个按实际数量均分整行；超过 6 个的 更多/收起 交互不受影响 */
.content > .RandomNews { margin-top: 24px; }
.RandomNews .news_random { display: flex; flex-wrap: wrap; gap: 14px; }
.RandomNews .pd_list_dl { flex: 1 1 150px; float: none; width: auto; max-width: calc(33.3333% - 10px); padding-left: 0; padding-right: 0; box-sizing: border-box; }
.RandomNews .pd_list_dl dd { width: 100%; }
.RandomNews .pd_list_dl dt img { width: 100%; height: auto; }
.RandomNews .pd_list_dl dt .imgph { width: 100%; }
/* V13：jpal-rn 分组 flex 规则已退役（组件 .cshow 以 grid 实现 3 列×2 行） */

/* ============ v2merge 产品分类侧栏折叠（纯 JS 增强，SSR 结构零变化） ============ */
.leib2 .nr .catmenu-more { display: none; }
.leib2 .nr .catmenu-more.open { display: block; }
.leib2 .nr a.catmenu-toggle { background: none; width: auto; padding-left: 16px; color: #cfe0f5; font-weight: normal; font-size: 13px; }
.leib2 .nr a.catmenu-toggle:hover { color: #f98401; }
/* flex 布局下清除浮动的空 div 不占 flex 槽位 */
.RandomNews .news_random > .clear, .jpal-rn-group > .clear { display: none; }
/* 图片加载失败 JS 兜底块在 dt 内保持与图片一致的占位尺寸（防止 flex 收缩塌陷） */
.pd_list_dl dt .imgph-inline { width: 100%; height: 160px; }


/* ============ V3 首页版块对调（2026-09-16 指令，皮肤原文件不动，全部覆盖实现） ============
   对调：产品中心 .proc 在上、工程案例 .g-zx 在下；两版块内部结构/模块 ID/数据接口零改动。
   基础样式源：skin/default/css/index.css（.g-zx 680px/.proc 750px 固定高等）+
   resetcommonindex.css（.cpbox 440px/.dh_c 273px/.dh_gg 98px/.altil 整行灰底等），此处仅覆盖。 */

/* --- 指令 1/2：固定高度放开为内容自适应 + 节间距统一 50~80px --- */
.proc { height: auto; padding-top: 0; padding-bottom: 50px; } /* 原 750px 固定 + padding-top:80px；对调后上接 banner 保持原 g-zx 的贴合感，下留 50px 标准节间距 */

/* --- 指令 3：两版块侧栏统一为内页同款蓝色条状菜单组件（视觉对齐 .content>.leftr .leib2） --- */
/* 内页基准（ssg.css）：标题条 #1a5fb4 深蓝、链接条 #2578DE 蓝底白字、hover 橙 #f98401 */
/* 产品中心侧栏 .prol */
.proc .prol h3 { background: #1a5fb4; height: 47px; line-height: 47px; }  /* 原 p1.jpg 背景图 59px */
.proc .prol h3 a { width: 100%; padding-left: 0; text-align: center; font-size: 16px; line-height: 47px; }
.proc .prol .nr { height: auto; background: none; padding-bottom: 12px; } /* 原 p3.jpg 背景图 + 641px 固定 */
.proc .prol .nr h4 { padding-top: 0; padding-bottom: 0; }
.proc .prol .nr h4 a { background: #2578DE; width: auto; display: block; margin: 0 8px; padding-left: 20px; color: #fff; height: 38px; line-height: 38px; border-bottom: 1px solid rgba(255,255,255,.25); }
.proc .prol .nr h4 a:hover { color: #f98401; }

/* V11：指令 4（.altil 灰底占位）/指令 6（.dh_gg 热线卡）/指令 2 补充（.nobor 空条）均为
   上方 g-zx 工程案例版块专属规则，版块已整体下线，随删。 */

/* --- 指令 7：proc 区产品占位图统一为全站浅灰 .imgph ---
   根因：index.css:155-156 `.pror li span{background:#777;color:#FFF}` 的 span 选择器直接命中
   imgPh 输出的占位 span（class="imgph"），浅灰占位被覆盖成深灰白字。特异性 0-1-2 < 本规则 0-2-2。 */
.pror li span.imgph { background: linear-gradient(135deg, #eef2f7, #dde6f0); color: #7d93b2; border: 1px solid #d5dee9; font-size: 13px; }
/* 产品名标题条（li 内另一 span，非 imgph）：同步全站产品列表 dd 浅色文字条风格，
   替换 index.css 的 #777 深底白字（特异性相同，源文件在后加载故本规则需置于文件末尾区） */
.pror li span { background: #f5f7fa; color: #4c4c4c; border: 1px solid #e3e9f2; border-top: none; box-sizing: border-box; }
.pror li span a { color: #4c4c4c; }


/* ============ V4 核心优势区块重构（2026-09-16 指令，皮肤原文件不动，全部覆盖实现） ============
   旧 d_tabc 蓝块占位 + list 编号列表两套结构删除，替换为单层：adv-stage 卖点面板 + adv-nav 锚点卡。
   GEO 硬性要求：4 个 panel 全量直出 HTML 源码，CSS 仅控制非激活 panel 不显示（display:none 源码可见）。
   基础样式源：index.css:181-198（.g-zl 886px 固定高/.tit p 42px 等）——以下整体覆盖。 */

/* --- 区块容器：固定高度放开 + 标准节间距 50~80px --- */
.g-zl { height: auto; padding: 60px 0 65px; box-sizing: border-box; }  /* 原 886px 固定（index.css:181）→ 内容自适应 */

/* --- 指令 3：标题单行全宽，禁止品牌名中间断行；视口不足整体缩字号（clamp） --- */
.g-zl .tit { padding-top: 0; text-align: center; font-size: inherit; color: inherit; }
.g-zl .tit .adv-t { white-space: nowrap; font-size: clamp(19px, 2.4vw, 30px); font-weight: bold; color: #0d3d78; line-height: 1.5; margin: 0; }
.g-zl .tit .adv-st { display: block; font-weight: normal; font-size: 15px; color: #666; margin-top: 6px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* --- 指令 1/2：卖点面板（编号+标题+详情+了解详情按钮；非激活 display:none 但源码可见） --- */
.adv-stage { margin-top: 32px; }
.adv-panel { display: none; background: #f5f8fc; border: 1px solid #e2eaf4; border-radius: 8px; padding: 32px 40px; box-sizing: border-box; }
.adv-panel.cur { display: block; }
.adv-panel .adv-no { display: block; font-size: 14px; font-weight: bold; color: #1a5fb4; letter-spacing: 3px; font-family: Arial, sans-serif; }
.adv-panel h3 { margin: 8px 0 12px; font-size: 24px; color: #0d3d78; font-weight: bold; }
.adv-panel p.adv-desc { margin: 0 0 22px; font-size: 15px; line-height: 1.9; color: #444; max-width: 760px; }
.adv-panel .adv-more { display: inline-block; padding: 9px 28px; background: #1a5fb4; color: #fff; border-radius: 4px; font-size: 14px; text-decoration: none; }
.adv-panel .adv-more:hover { background: #f98401; color: #fff; text-decoration: none; }

/* --- 指令 4：导航卡 4 等分通栏（grid），编号+名称完整显示不截断不重叠；激活蓝底白字 --- */
.adv-nav { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 12px; margin-top: 14px; }
.adv-nav a { display: block; min-width: 0; background: #f5f7fa; border: 1px solid #e3e8ef; border-radius: 6px; padding: 14px 16px; box-sizing: border-box; white-space: normal; line-height: 1.5; color: #333; text-decoration: none; }
.adv-nav a b { display: block; font-size: 13px; color: #98a4b5; font-weight: normal; font-family: Arial, sans-serif; letter-spacing: 2px; margin-bottom: 4px; }
.adv-nav a span { display: block; font-size: 15px; font-weight: bold; overflow-wrap: break-word; }
.adv-nav a:hover { border-color: #1a5fb4; text-decoration: none; }
.adv-nav a.cur { background: #1a5fb4; border-color: #1a5fb4; color: #fff; }
.adv-nav a.cur b { color: rgba(255,255,255,.75); }

/* --- 移动端：面板内边距与标题字号收敛 --- */
@media (max-width: 860px) {
  .g-zl { padding: 45px 0 50px; }
  .adv-panel { padding: 22px 18px; }
  .adv-panel h3 { font-size: 20px; }
  .adv-panel p.adv-desc { font-size: 14px; }
}


/* ============ V5 实力保障区块整改（2026-09-16 指令，皮肤原文件不动，全部覆盖实现） ============
   横幅全称化 + 双品牌并列清除（模块数据层）+ 四段固定高度/背景图放开为内容自适应卡片式 +
   服务保障列表规范化（CSS counter 序号）+ 标准节间距。
   基础样式源：index.css:201-227（.yous 2100px/.tit 216px/y1-y4 固定高+照片背景图/ys1-4 大缩进）——以下整体覆盖。 */

/* --- 区块与横幅：固定高度放开，横幅改纯色蓝通栏 --- */
.yous { height: auto; }                                   /* 原 2100px 固定（index.css:201）→ 内容自适应 */
.yous .tit { height: auto; background: #0d3d78; padding: 38px 0 34px; }  /* 原 c1.jpg 图 216px 固定 → 纯色蓝横幅 */
.yous .tit p { padding-top: 0; white-space: nowrap; font-size: clamp(19px, 2.4vw, 30px); }
.yous .tit span { width: auto; margin: 0 auto; }
.yous .tit span i { padding-left: 0; padding-top: 10px; font-size: 15px; font-weight: normal; color: rgba(255,255,255,.85); }

/* --- y1-y4：固定高度+照片背景图放开，重置为统一内容卡片（白/浅灰交替），段间距标准 50~80px --- */
.y1, .y2, .y3, .y4 { height: auto; background: none; padding: 56px 0; }   /* 原 627/399/493/335px 固定 + ys1-4.jpg 背景图 */
.y2, .y4 { background: #f5f8fc; }                          /* 浅灰交替区分层级 */
.yous .content { overflow: hidden; }
.ys1, .ys2, .ys3, .ys4 { padding-left: 0; padding-top: 0; max-width: 860px; }  /* 原配合照片的大缩进（560/577px）归零 */
.ys1 h4 { padding-bottom: 12px; background: none; }
.ys1 h4 p { padding-left: 0; background: none; font-size: 26px; color: #0d3d78; line-height: 1.5; }
.ys1 h4 p span { font-size: 17px; color: #666; margin-top: 6px; }
.ys1 em { padding-left: 0; background: none; margin-top: 18px; font-size: 15px; line-height: 2; color: #444; max-width: 760px; }
.ys1 em i { color: #f95709; }

/* --- 指令 6：服务保障四条列表规范化——去方括号后由 CSS counter 自动编号，统一行距 --- */
.y4 .ys4 { counter-reset: svc; max-width: 860px; }
.y4 .ys4 em { position: relative; display: block; padding-left: 42px; margin-top: 14px; line-height: 1.9; }
.y4 .ys4 em + em { margin-top: 14px; }
.y4 .ys4 em::before {
  counter-increment: svc; content: counter(svc, decimal-leading-zero);
  position: absolute; left: 0; top: 50%; transform: translateY(-50%);
  width: 30px; height: 30px; line-height: 30px; text-align: center;
  background: #1a5fb4; color: #fff; border-radius: 50%;
  font-size: 13px; font-weight: bold; font-family: Arial, sans-serif;
}

/* --- 移动端收敛 --- */
@media (max-width: 860px) {
  .y1, .y2, .y3, .y4 { padding: 40px 0; }
  .ys1 h4 p { font-size: 22px; }
  .yous .content { width: auto; padding-left: 14px; padding-right: 14px; box-sizing: border-box; }
}


/* ============================================================
   V6 首页收尾整改（2026-09-16 指令）
   ============================================================ */
/* --- 指令 1：pro2 孤立热线区块已删（模板层）；y4 服务保障内新增「立即咨询」按钮，沿用 pro2-zx 橙按钮 --- */
.yous-consult { margin-top: 20px; }
/* V5 把 y4 四条列表 em 改为 block 排布，按钮恢复内联块并靠左对齐编号列表 */
a.yous-consult.pro2-zx { display: inline-block; }

/* --- 指令 2：anli 工程案例简介——取消加粗、普通字重、限宽居中、防词组拆断（原 .anli .tit span 为 bold 30px 且整行撑满） --- */
.anli .tit { padding-top: 35px; margin-bottom: 30px; }
.anli .tit span { font-weight: normal; font-size: 14px; color: #666; max-width: 820px; margin: 12px auto 0; line-height: 1.9; word-break: keep-all; }
.anli .tit em { padding-top: 16px; font-style: normal; }
.anli .tit em a { display: inline-block; padding: 9px 30px; background: #0b5cad; color: #fff; font-size: 14px; border-radius: 3px; text-decoration: none; }
.anli .tit em a:hover { background: #0d3d78; }

/* --- 指令 3：区块标题统一组件——居中主标题（统一字号字重）+ 可选副标题（灰）+ 标题下等长装饰横线（56px 橙色短棒）
   适用范围：g-zl 优势 / yous 实力横幅（深底反白）/ anli 案例 / g-zj 走进云上 / new 新闻三栏 / g-gx 服务流程（深底反白）
   侧栏标题条（proc .prol h3、g-zx .dh h2）不在范围；g-zx .tit 为选项卡栏亦不套用 --- */
.g-zl .tit .adv-t, .anli .tit p, .g-zj .tit p a, .g-gx .tit p, .yous .tit p {
  font-size: clamp(22px, 2.4vw, 30px); font-weight: bold; line-height: 1.4; text-align: center; font-style: normal;
}
.anli .tit p, .g-zj .tit p a, .g-zl .tit .adv-t { color: #0d3d78; }
.g-gx .tit p, .yous .tit p { color: #fff; }
.g-zl .tit .adv-t::after, .anli .tit p::after, .g-zj .tit p a::after, .g-gx .tit p::after, .yous .tit p::after {
  content: ""; display: block; width: 56px; height: 3px; background: #fc8006; margin: 12px auto 0; border-radius: 2px;
}
.g-zj .tit p a { display: inline-block; }
/* g-zj 主标题原 padding-left:340px 残留导致偏左，归零居中 */
.g-zj .tit p { padding-left: 0; }
/* 副标题统一灰色（深底区块用反白 85%） */
.g-zl .tit .adv-st { color: #666; font-size: 15px; font-weight: normal; }
.g-gx .tit span { color: rgba(255, 255, 255, .85); font-size: 15px; font-weight: normal; }
.yous .tit span i { color: rgba(255, 255, 255, .85); font-size: 15px; font-weight: normal; }
/* new 新闻三栏栏目标题：统一深蓝字重，底部通栏等长横线（三栏等宽即等长） */
.new-a .tit, .new-c .tit { background: none; border-bottom: 2px solid #e8f0fa; height: auto; }
.new-a .tit span a, .new-c .tit span a { color: #0d3d78; font-size: 18px; font-weight: bold; }

/* --- 指令 4：anli 六案例卡统一浅色——占位图浅灰 .imgph（保持），标题条由蓝块白字改浅蓝灰底深蓝字（根因：本文件早段 .anli .nr li span 刷 #0b5cad） --- */
.anli .nr li span { background: #eef2f7; padding: 10px 8px; text-align: center; }
.anli .nr li span a { color: #0d3d78; font-weight: bold; }
.anli .nr li .imgph { background: linear-gradient(135deg, #eef2f7, #dde6f0); color: #7d93b2; border: 1px solid #d5dee9; }

/* --- 指令 5：间距收敛（50~80px）——pro2 区块删除后 yous y4 底距 45px + anli 标题顶距 35px = 80px；g-gx 流程区上下留白微调 --- */
.g-gx .tit { padding-top: 40px; margin-bottom: 40px; }
.anli .nr { margin-top: 5px; }
.g-zj .tit { padding-top: 36px; padding-bottom: 28px; }


/* ============================================================
   V7 首页三栏区整改（2026-09-16 指令）
   ============================================================ */
/* --- 指令 1/2：.col3-cards 通用三栏卡片栅格（铁线框卡片、grid 等高 stretch、栏高按最长栏），供全站同类多栏区块复用 ---
   根因修复：皮肤 .new{height:502px} 固定高导致栅格溢出与页脚导航条重叠 → 高度放开；皮肤 .new-a li/li a 的 44px 行高与 12px 图标内边距由本块中和 --- */
.new { height: auto; padding-top: 0; }
.col3-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; align-items: stretch; padding: 50px 0 60px; }
.new .content.col3-cards { width: 1000px; }
.col3-card { border: 1px solid #e2e9f2; border-radius: 4px; background: #fff; padding: 16px 20px 18px; box-sizing: border-box; }
/* 中和皮肤 .new-a/.new-c 旧浮动栏样式（319px 定宽/浮动/失效底图） */
.col3-cards .new-a, .col3-cards .new-c { width: auto; padding-right: 0; float: none; }
.col3-cards ul.col3-list { line-height: 1.6; overflow: visible; }
/* 栏头：标题左、MORE+ 右，底部通栏浅蓝横线（V6 组件延续） */
.col3-cards .new-a .tit, .col3-cards .new-c .tit { height: auto; line-height: 26px; margin-bottom: 12px; padding-bottom: 8px; background: none; border-bottom: 2px solid #eef3f9; }
.col3-cards .new-a .tit span a, .col3-cards .new-c .tit span a { color: #0d3d78; font-size: 18px; font-weight: bold; }
.col3-cards .new-a .tit a.fr, .col3-cards .new-c .tit a.fr { line-height: 26px; }
/* 新闻两栏：纯文字列表（标题+日期），无缩略图 */
.col3-list { list-style: none; margin: 0; padding: 0; }
.col3-list li { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; padding: 8px 0; border-bottom: 1px dashed #edf1f7; }
.col3-list li:last-child { border-bottom: none; }
.col3-list li a { flex: 1 1 0; min-width: 0; color: #333; font-size: 14px; line-height: 1.6; padding-left: 0; background: none; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.col3-list li a:hover { color: #e74100; }
.col3-list li time { color: #999; font-size: 12px; line-height: 1.6; font-family: Arial, sans-serif; flex-shrink: 0; }
/* FAQ 栏：问答结构（性质不同，非列表） */
.col3-faq { padding: 7px 0; border-bottom: 1px dashed #edf1f7; }
.col3-faq:last-child { border-bottom: none; }
.col3-q { margin: 0 0 3px; font-size: 14px; font-weight: bold; line-height: 1.6; }
.col3-q a { color: #0d3d78; }
.col3-q a:hover { color: #e74100; }
.col3-a { margin: 0; font-size: 13px; color: #666; line-height: 1.7; }
.col3-a a[href^="tel:"] { color: #0b5cad; text-decoration: none; }
/* 移动端：三栏堆叠单列 */
@media (max-width: 860px) {
  .new .content.col3-cards { width: auto; margin: 0 14px; }
  .col3-cards { grid-template-columns: 1fr; padding: 30px 0 40px; }
}


/* ============================================================
   V9 首页工程案例/产品中心版块排版修复（2026-09-16 指令）
   ============================================================ */
/* --- 修 1【最高优先级】g-zx 热线卡压住标签栏 ---
   根因：皮肤 .al{width:774px;padding-left:20px} 为 content-box，实占 794px；
   V3 把 .dh 从 206 加宽到 210px 后，210 + 794 = 1004 > 容器 1000px，
   右栏 .al 浮动空间不足被挤换行、掉到浮动侧栏正下方，浮动的 .dh（含深色热线卡 .dh_gg）
   遂压住下排的 .altil 分类标签栏（餐饮工程/别墅工程灰标签与 +MORE 被遮挡）。
   修复：.al 改 border-box 770px，与 .dh 并排成两列，热线卡与标签栏各归各列。
   全站排查：dh_gg 全站仅首页 1 处；内页侧栏联系卡 .leftlxs 为 210px 单列纵向堆叠，
   无并列浮动，不存在同类重叠（check_two_col 26/26 双栏对齐基线同步佐证）。
   V11：上方 g-zx 版块已整体下线（首页唯一案例展示位为下方 anli 版块），
   .al/.al_c/.cpbox/.tit 等本块规则随版块删除，仅留档根因说明。 */

/* V11：修 2（g-zx 间距收敛）目标版块已下线，规则随删，仅留档说明。 */

/* --- 修 3：版块容器 ---
   线上实测内页 .content 全站统一 1000px（resetcommon.css:55），并非 1200px；
   两版块容器本就与内页同宽（1000px 居中），用户所见「内容缩在左侧六成宽」实为修 1
   的右栏挤行塌陷。修 1 后内容横铺满容器，本项按「与内页同宽」事实关闭（如需真 1200px 可再调）。 */

/* --- 修 4：侧栏菜单与热线卡间距统一（dh_c 底 12px 与 dh 等宽贴合，无断层）——复核关闭，沿用 V3 值 --- */

/* --- 修 5：轮播分页条归位 ---
   根因：皮肤 .fullSlide .hd{height:10px;line-height:30px}，ul 继承 30px 行高，
   inline-block 圆点（高 8px）按文本基线对齐画在 30px 行盒底部，溢出 banner 下缘 10px，
   漂到 proc 版块顶部（红/蓝/灰三段指示条）。
   处置：banner 实有 3 帧（home.banner items=3）→ 采用方案 A 保留分页并归位；
   行高压零使圆点收缩回 banner 内部底部。 */
.banner .hd { bottom: 16px; }
.banner .hd ul { line-height: 0; font-size: 0; }

/* ==================== V19 首页 proc 产品中心改造（2026-09-18 指令） ====================
   ① 「更多分类」折叠按钮整体下线（原修 8 样式块随删；内页 .leib2 折叠保留不动）；
   ② 左右容器等高对齐：content 改 flex stretch，侧栏与展示区别假浮动；
   ③ 副导航竖向滚动条（条目超出可视高度出现，少时自动隐藏）；
   ④ 右侧标题栏语义 h2（.pro-tit）——皮肤 .pror h4 规则不再命中，盒模型在此完整覆盖；
   ⑤ 卡片 hover：图片轻微放大 + 卡片阴影；⑥ 375 移动端：分类栏在上横向滚动、网格在下。 */
.proc .content { display: flex; align-items: stretch; }
.proc .prol { flex: 0 0 210px; float: none; display: flex; flex-direction: column; }
.proc .pror { flex: 1 1 auto; float: none; width: auto; min-width: 0; }
.proc .content > .clear { display: none; }
/* 侧栏滚动容器：拉伸与右栏同高，溢出出现竖向滚动条（scrollbar-width thin，WebKit 细条），条目少时自动隐藏 */
.proc .prol .nr { flex: 1 1 auto; min-height: 0; max-height: none; overflow-y: auto; overflow-x: hidden; scrollbar-width: thin; scrollbar-color: #9db8d8 #e8f0fa; }
.proc .prol .nr::-webkit-scrollbar { width: 6px; }
.proc .prol .nr::-webkit-scrollbar-thumb { background: #9db8d8; border-radius: 3px; }
.proc .prol .nr::-webkit-scrollbar-track { background: #e8f0fa; }
/* 语义 h2 标题条盒模型（原皮肤 .pror h4 选择器随标签升级失效，此处覆盖：宽/高/行高/背景） */
.pror h2.pro-tit { width: auto; height: 58px; background: #0b5cad; line-height: 58px; margin: 0; font-size: 18px; font-weight: normal; }
.pror h2.pro-tit > a.fl { color: #fff; font-size: 18px; padding-left: 32px; }
/* 产品卡片 hover：图片轻微放大 + 卡片阴影（指令五.3） */
.pror ul li { transition: box-shadow .25s ease; }
.pror ul li:hover { box-shadow: 0 4px 14px rgba(11, 92, 173, .18); }
.pror ul li > a { display: block; overflow: hidden; }
.pror ul li > a img { transition: transform .25s ease; }
.pror ul li > a:hover img { transform: scale(1.05); }
/* 移动端 375：上下布局——分类栏在上横向滚动、网格在下、每页依旧 9 卡、分页保留（指令六） */
@media (max-width: 768px) {
  .proc .content { flex-direction: column; }
  .proc .prol { flex: none; width: 100%; }
  .proc .pror { flex: none; width: 100%; }
  .proc .prol .nr { display: flex; overflow-x: auto; overflow-y: hidden; padding-bottom: 8px; min-height: 0; }
  .proc .prol .nr h4 { flex: 0 0 auto; padding-top: 4px; }
  .proc .prol .nr h4 a { white-space: nowrap; margin: 0 4px; border-bottom: none; border-radius: 4px; height: 34px; line-height: 34px; padding-left: 14px; padding-right: 14px; }
  .pror h2.pro-tit { height: 46px; line-height: 46px; font-size: 15px; }
  .pror h2.pro-tit > a.fl { font-size: 15px; padding-left: 16px; }
  .pror ul { width: 100%; }
  .pror ul li { width: 48.5%; padding-right: 0; margin-right: 3%; }
  .pror ul li:nth-child(2n) { margin-right: 0; }
  .pror ul li .imgph { width: 100%; height: 130px; }
  .pror li span { width: 100%; }
  .pror > ul { min-height: 0; }
}

/* ==================== V10：首页资讯三栏首条对齐修复 ==================== */
/* --- 根因：皮肤 .tit 内 .fl（栏目标题）/.fr（MORE+）为浮动且无清浮动，浮动盒溢出
   .tit 容器侵入下方 ul 区域；首条 li 是 display:flex 容器（新建 BFC），
   块盒避浮动规则使其收窄并让出 72px（.fl 标题宽度），造成「首条缩进、其余顶格」。 --- */
.col3-cards .tit::after { content: ""; display: block; clear: both; }
/* 栏宽均等化：grid item 自动最小尺寸受其 min-width 钳制，置 0 后三条 1fr 轨道
   不再被长标题（white-space:nowrap 的 min-content 向上传播）撑宽，三栏容器严格等宽 */
.col3-cards .col3-card { min-width: 0; }
/* 说明：.fl/.fr 保留浮动（维持左标题右 MORE+ 对齐），仅由上方 clearfix 约束其盒模型
   不溢出 .tit，栏目标题左边线即回到卡片内容左缘，与全部条目同一条垂直线 */

/* ==================== V12 产品中心 9 卡网格 + 静态分页 + 两栏等高 ====================
   A1 上下边界永久对齐：产品中心/分类页 .content 改 flex stretch 等高（右栏 DOM 在前视觉在左，
   侧栏 leftr 210px 在右），右栏 9 卡网格固定 3 行整数倍 min-height；
   后台增删分类/产品后重建仍对齐（stretch 取两栏内容高最大值） */
.content.pcat { display: flex; flex-wrap: wrap; align-items: stretch; }
.content.pcat > .plc { flex: 0 0 100%; box-sizing: border-box; }
.content.pcat > .rightl, .content.pcat > .v52w > .rightl { flex: 1 1 775px; float: none; width: auto; margin-right: 15px; }
.content.pcat > .leftr, .content.pcat > .v52w > .leftr { flex: 0 0 210px; float: none; align-self: flex-start; }
/* V21/V27 列结构覆盖 align-self（更具体）：v21 维持 V12 等高铁律 stretch；v27 顶对齐 */
.content.pcat > .clear, .content.pcat .v52w > .clear { display: none; }
/* V52：两栏 wrapper（.content 直接子级）——sticky 父级约束两栏区块自身，全宽独占一行 */
.content.pcat > .v52w { flex: 0 0 100%; display: flex; flex-wrap: wrap; align-items: stretch; box-sizing: border-box; min-width: 0; }
/* 右栏 9 卡网格：3 列 float 卡（226px/卡，皮肤基准），固定 3 行行高；
   不足 9 卡不拉伸不填充、末行左对齐留白；JS 局部渲染时高度恒定，两栏底边恒对齐 */
.pro_main.pgrid { min-height: 700px; }
.pro_main.pgrid:after { content: ""; display: block; clear: both; }

/* A6 分页条：全站蓝色主题统一（按钮/悬停/禁用态） */
.ppager { clear: both; padding: 18px 0 8px; text-align: center; }
.ppager-btn { display: inline-block; padding: 7px 18px; margin: 0 6px; border: 1px solid #1a5fb4; color: #1a5fb4; background: #fff; border-radius: 4px; font-size: 14px; text-decoration: none; }
.ppager-btn:hover { background: #1a5fb4; color: #fff; text-decoration: none; }
.ppager-btn.off { border-color: #cfd8e3; color: #b3c0cf; background: #f7f9fc; pointer-events: none; }
.ppager-info { display: inline-block; color: #8a97a8; font-size: 13px; margin: 0 10px; vertical-align: middle; }

/* ==================== V21 产品中心内页池布局（.content.pcat.v21，2026-09-18 指令） ====================
   等高铁律：v21 容器内 leftr 改纵向 flex，副导航块 v21nav flex:1 拉伸——
   右副导航容器顶/底与左侧产品展示区顶/底强制对齐（stretch 取两栏最大值） */
.content.pcat.v21 > .leftr { display: flex; flex-direction: column; align-self: stretch; }
/* V52 wrapper 对照（v21 侧栏收进 .v52w，直接子级规则失效）：等高铁律同款（stretch 显式，压过通用 flex-start） */
.content.pcat.v21 > .v52w > .leftr { display: flex; flex-direction: column; align-self: stretch; }
/* 清零遗留规则 .leib2,.leib{margin-bottom:20px}（旧站样式表），否则副导航底部与产品区底差 20px */
.content.pcat.v21 .leib2.v21nav { flex: 1 1 auto; display: flex; flex-direction: column; min-height: 0; margin-bottom: 0; }
/* 副导航条目区：竖向滚动条（条目超可视高度自动出现，少则自动隐藏） */
.content.pcat.v21 .leib2.v21nav .nr { flex: 1 1 auto; overflow-y: auto; min-height: 0; }
/* 联系块并入 v21nav 内部固定底部（不收缩，V21 结构调整），副导航容器底与产品区底对齐 */
.content.pcat.v21 .leib2.v21nav > .leftlxs { flex: 0 0 auto; }
/* 二级/三级子菜单缩进与分隔（全部 <a> 源码可见） */
.content.pcat.v21 .leib2.v21nav .nr ul { list-style: none; margin: 0; padding: 0 0 0 14px; }
.content.pcat.v21 .leib2.v21nav .nr ul li a { font-size: 12px; padding-left: 10px; }
/* 卡片 hover：图片轻微放大 + 卡片阴影（指令三.4） */
.content.pcat.v21 .pgrid-pool .pd_list_dl { transition: box-shadow .2s; border-radius: 4px; }
.content.pcat.v21 .pgrid-pool .pd_list_dl:hover { box-shadow: 0 6px 18px rgba(15, 60, 120, .18); }
.content.pcat.v21 .pgrid-pool .pd_list_dl dt img { transition: transform .25s; }
.content.pcat.v21 .pgrid-pool .pd_list_dl:hover dt img { transform: scale(1.06); }
/* 移动端 375：副导航在上横向可滚动（药丸项），产品网格在下，每页仍 9 卡、分页保留（指令六） */
@media (max-width: 768px) {
  .content.pcat.v21 > .leftr { flex: 0 0 100%; order: -1; position: static; }
  .content.pcat.v21 > .rightl { flex: 1 1 100%; margin-right: 0; }
  .content.pcat.v21 .leib2.v21nav { display: block; }
  .content.pcat.v21 .leib2.v21nav .nr { display: flex; overflow-x: auto; overflow-y: hidden; white-space: nowrap; }
  .content.pcat.v21 .leib2.v21nav .nr > h3 { flex: 0 0 auto; }
  .content.pcat.v21 .leib2.v21nav .nr > h3 a { white-space: nowrap; }
  .content.pcat.v21 .leib2.v21nav .nr ul { display: none; /* 移动端子级收起，主层横滚（子级仍可经分类页到达） */ }
}

/* ==================== V22 产品中心内页三独立区块（.content.pcat.v22，2026-09-18 指令） ====================
   区块1 产品中心（plc+rightl+leftr，V21 成果）→ 区块2 精品案例（section.v22-case-sec）→
   区块3 联系河南云上照明（section.v22-contact-sec，从侧栏摘出独立居中）。
   三区块均 .content 直接子级、独立 BFC（flow-root/flex），彻底隔离浮动穿透——修复滚动时案例模块
   向上窜入产品展示区 BUG；全部规则限 .v22 作用域，首页/工程案例页 cshow 零影响。 */
.content.pcat.v22 { --v22-side-w: 210px; --v22-gap: 15px; }
/* 区块通用：flex 容器内独占整行 + BFC 隔离 + 全站标准节间距（20~30px） */
.content.pcat.v22 > section.v22-sec { flex: 0 0 100%; display: flow-root; clear: both; min-width: 0; }
.content.pcat.v22 > section.v22-case-sec { margin-top: 24px; }
.content.pcat.v22 > section.v22-contact-sec { margin-top: 24px; margin-bottom: 30px; display: flex; justify-content: center; }
/* 区块3 联系卡：独立水平居中（不再挂靠右侧栏），内容/样式沿用 .leftlxs 既有规则与后台数据 */
.content.pcat.v22 .v22-contact-card { float: none; width: 520px; max-width: 100%; margin: 0; box-sizing: border-box; }
/* V52：v22 侧栏静态化规则已随 .v52w wrapper 退役——sticky 作用域收进 wrapper（见 v2merge 段），
   本行删除，wrapper 内统一恢复悬浮且滚底不穿透 */
/* 区块2 对齐强制规范：共享宽度变量——案例白栏宽=产品蓝栏宽（210），案例左区宽=产品左区宽（1000-210-15=775），
   左右边线垂直对齐（两区块同 content 宽同起点）。
   V64（2026-09-26）：右栏改 flex 列——副导航顶对齐/联系模块底对齐（右栏总高=左展示区高，上下基线齐平，
   同 V59/V21 的 flex 填充方案：条目区 flex:1 吸收中段空间并可竖滚，联系卡 flex:0 0 auto + margin-top:auto 贴底） */
.content.pcat.v22 .cshow.cshow-v22 .cshow-body { gap: var(--v22-gap); }
.content.pcat.v22 .cshow.cshow-v22 .cshow-side { flex: 0 0 var(--v22-side-w); display: flex; flex-direction: column; min-height: 0; }
.content.pcat.v22 .cshow.cshow-v22 .cshow-side .leib2.v27nav { flex: 1 1 auto; display: flex; flex-direction: column; min-height: 0; margin-bottom: 0; }
.content.pcat.v22 .cshow.cshow-v22 .cshow-side .leib2.v27nav .nr { flex: 1 1 auto; overflow-y: auto; min-height: 0; }
/* 联系河南云上照明：并入右栏底部（V64），与副导航同宽（栏宽 210 内 100%），底边与左展示区底对齐 */
.content.pcat.v22 .cshow.cshow-v22 .cshow-side .leftlxs.cshow-side-contact { flex: 0 0 auto; width: 100%; margin: auto 0 0; box-sizing: border-box; }
/* 移动端 375：右栏两块上下堆叠——副导航药丸横滚在上、联系卡全宽在下（V58 基线 sw<=cw 不破） */
@media (max-width: 768px) {
  .content.pcat.v22 .cshow.cshow-v22 .cshow-side { display: flex; flex: none; flex-direction: column; width: 100%; overflow: visible; white-space: normal; }
  .content.pcat.v22 .cshow.cshow-v22 .cshow-side .leib2.v27nav { flex: 0 0 auto; }
  .content.pcat.v22 .cshow.cshow-v22 .cshow-side .leib2.v27nav .nr { display: flex; overflow-x: auto; overflow-y: hidden; white-space: nowrap; }
  .content.pcat.v22 .cshow.cshow-v22 .cshow-side .leib2.v27nav .nr > h3 { flex: 0 0 auto; }
  .content.pcat.v22 .cshow.cshow-v22 .cshow-side .leib2.v27nav .nr > h3 a { white-space: nowrap; border-bottom: none; }
  .content.pcat.v22 .cshow.cshow-v22 .cshow-side .leftlxs.cshow-side-contact { width: 100%; margin: 12px 0 0; }
  .content.pcat.v22 .v22-contact-card { width: 100%; }
}

/* B9 首页 banner 轮播与 proc 产品中心版块间距统一 25px（全站标准 20~30px；原 padding-top:0 紧贴） */
.proc { padding-top: 25px; }

/* B10 首页 proc 右侧网格固定 3×3=9 卡行高（不足留白左对齐；>9 由底部分页条承接） */
.pror > ul { min-height: 640px; }

/* ============ V13 精品案例统一组件 cshow（首页 anli / 产品中心 / 工程案例 三页同构复用） ============ */
/* 标题条：标题 + 分割横线；右栏菜单容器固定横线下方（.cshow-body 起点即横线之下） */
.cshow-tit { display: flex; align-items: center; gap: 14px; }
.cshow-tit h4 { margin: 0; font-size: 20px; color: #363636; font-weight: bold; white-space: nowrap; }
.cshow-line { flex: 1 1 auto; height: 1px; background: #e2e2e2; }
/* 主体：flex stretch——左区（案例展示）与右侧菜单容器顶部/底部永久对齐，后台增删菜单/案例仍对齐（禁假内容填充） */
.cshow-body { display: flex; align-items: stretch; gap: 24px; margin-top: 18px; }
.cshow-main { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; }
/* 左区 3 列×2 行：grid 行拉伸铺满主区高度（与右侧菜单容器底边对齐） */
.cshow-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; flex: 1 1 auto; align-content: stretch; grid-auto-rows: 1fr; }
/* 卡片：整块 <a> 可点 */
.cshow-card { display: flex; flex-direction: column; border: 1px solid #e8e8e8; background: #fff; text-decoration: none; overflow: hidden; }
.cshow-card:hover { border-color: #0b5cad; }
.cshow-img { display: block; flex: 1 1 auto; min-height: 0; }
.cshow-img img, .cshow-img .imgph { width: 100%; height: 100%; min-height: 150px; object-fit: cover; display: block; }
.cshow-name { display: block; padding: 9px 10px; font-size: 13px; color: #333; line-height: 1.4; border-top: 1px solid #f0f0f0; background: #fafafa; }
.cshow-card:hover .cshow-name { color: #0b5cad; }
/* 分页条：池 >6 可点 / ≤6 置灰（<span.off>，与产品分页「隐藏」不同） */
.cshow-pager { margin-top: 16px; text-align: center; }
.cpager-btn { display: inline-block; min-width: 96px; margin: 0 6px; padding: 7px 20px; border: 1px solid #0b5cad; color: #0b5cad; font-size: 14px; text-decoration: none; background: #fff; box-sizing: border-box; }
a.cpager-btn:hover { background: #0b5cad; color: #fff; }
.cpager-btn.off { border-color: #ddd; color: #c0c0c0; cursor: default; background: #f7f7f7; }
/* 右侧副导航菜单容器：固定宽度列，stretch 与左区同高 */
.cshow-side { flex: 0 0 210px; border: 1px solid #e8e8e8; background: #f7f9fc; padding: 10px; box-sizing: border-box; }
.cshow-side h3 { margin: 0; font-size: 14px; font-weight: normal; }
.cshow-side h3 a { display: block; padding: 9px 12px; color: #333; text-decoration: none; border-bottom: 1px solid #e8ecf2; }
.cshow-side h3:last-child a { border-bottom: none; }
.cshow-side h3 a:hover { color: #0b5cad; }
.cshow-side h3 a.cur { background: #0b5cad; color: #fff; }
/* 首页 anli 版块内组件上间距（标题区 margin-bottom 33px 已有，组件标题条贴其下） */
.anli .cshow { margin-top: 0; }
/* 移动 375 适配：上下堆叠 + 2 列网格，无横向滚动 */
@media (max-width: 768px) {
  .cshow-body { flex-direction: column; gap: 16px; }
  .cshow-side { flex: none; width: 100%; }
  .cshow-grid { grid-template-columns: repeat(2, 1fr); gap: 12px; }
  .cshow-img img, .cshow-img .imgph { min-height: 110px; }
}

/* ==================== V30 案例分类落地页骨架（.content.pcat-case，仅 /case/{slug}.html[pN]） ====================
   蓝案例中心侧栏菜单退役（noCaseMenu）后左栏仅联系块；flex stretch 两栏顶/底永久对齐；
   全页唯一副导航=组件内白菜单（紧贴精品案例标题横线下方，与卡片区顶/底对齐） */
.content.pcat-case { display: flex; flex-wrap: wrap; align-items: stretch; }
.content.pcat-case > .plc { flex: 0 0 100%; box-sizing: border-box; }
.content.pcat-case > .rightl { flex: 1 1 775px; float: none; width: auto; margin-right: 15px; }
.content.pcat-case > .leftr { flex: 0 0 210px; float: none; }
.content.pcat-case > .clear { display: none; }
.content.pcat-case > .RandomNews { flex: 0 0 100%; }
.content.pcat-case > .leftr .leftlxs { margin-top: 0; }
/* 卡片：图片区填满上部（4:3 定比， object-fit cover，消除 flex 拉伸留白），图文分割沿用 cshow-name 细线+底色 */
.content.pcat-case .cshow-img { flex: 0 0 auto; aspect-ratio: 4 / 3; overflow: hidden; }
.content.pcat-case .cshow-img img, .content.pcat-case .cshow-img .imgph { min-height: 0; height: 100%; }
/* 分页：卡片区正下方居中；禁用态视觉置灰 + 默认光标（≤6 不可点） */
.content.pcat-case .cshow-pager { margin-top: 16px; text-align: center; }
.cpager-btn.off { cursor: default; opacity: .55; }
/* 平板 768~1000：副导航移到上方 + 卡片双列 */
@media (max-width: 1000px) and (min-width: 769px) {
  .content.pcat-case > .rightl { flex: 1 1 100%; margin-right: 0; }
  .content.pcat-case > .leftr { flex: 0 0 100%; }
  .content.pcat-case .cshow-body { flex-wrap: wrap; }
  .content.pcat-case .cshow-side { order: -1; flex: none; width: 100%; }
  .content.pcat-case .cshow-side h3 { display: inline-block; }
  .content.pcat-case .cshow-side h3 a { border-bottom: none; }
  .content.pcat-case .cshow-grid { grid-template-columns: repeat(2, 1fr); }
}
/* 移动 ≤768：副导航上方 + 卡片单列 */
@media (max-width: 768px) {
  .content.pcat-case .cshow-side { order: -1; }
  .content.pcat-case .cshow-grid { grid-template-columns: 1fr; }
  .content.pcat-case > .rightl { flex: 1 1 100%; margin-right: 0; }
  .content.pcat-case > .leftr { flex: 0 0 100%; }
}

/* ==================== V25 在线客服聊天窗：输入区加大 + 可拖拽分隔线 + 离线留言 v2 ==================== */
/* 输入区：默认高≈164px（原单行输入~46px 的 3 倍+，≥1.5 倍要求）；四图标左下、发送右下固定；V34 起 +6px 让拉伸后的 textarea≥69px 且不遮挡工具栏 */
.chat-window.v25 .chat-input-area { display: flex; flex-direction: column; height: 164px; flex: 0 0 auto; background: #fff; position: relative; }
.chat-window.v25 .chat-input-area.drag-on { outline: 2px dashed #e84d4d; outline-offset: -2px; background: #fff7f7; }
.chat-window.v25 .chat-input-row { flex: 1; display: flex; padding: 4px 10px 0; min-height: 0; }
.chat-window.v25 .chat-input-row textarea { flex: 1; min-height: 0; align-self: stretch; border: none; outline: none; resize: none; font-size: 13px; line-height: 1.6; padding: 6px; font-family: inherit; background: transparent; box-sizing: border-box; }
/* V25 覆盖旧 #chatInput{height:34px}（ID 优先级高于类）：输入框恢复 rows 自适应，默认≈74px≥旧46px 的 1.5 倍 */
.chat-window.v25 #chatInput { height: auto; }
/* V25 消息区：默认由窗口 min-height 撑起（≥280px），可收缩下限 120px（与 JS MSG_MIN 一致），
   保证分隔线拖满上限(+160)后消息区仍可读、输入区不被裁剪 */
.chat-window.v25 { min-height: 540px; }
.chat-window.v25 .chat-body { min-height: 120px; }
.chat-window.v25 .chat-send-row { display: flex; justify-content: flex-end; padding: 6px 10px 10px; flex: 0 0 auto; }
.chat-window.v25 .btn-send { padding: 8px 26px; font-size: 14px; }
.chat-window.v25 .btn-send:disabled { background: #d7dade; color: #9aa0a6; cursor: not-allowed; }
.chat-window.v25 .btn-send:disabled:hover { background: #d7dade; }
/* 分隔线：常显浅灰细线，hover/dragging 手型+加深（row-resize） */
.chat-window.v25 .chat-divider { height: 7px; flex: 0 0 7px; background: #eef0f2; border-top: 1px solid #e3e6e9; cursor: row-resize; position: relative; transition: background .15s; }
.chat-window.v25 .chat-divider:hover, .chat-window.v25 .chat-divider.dragging { background: #dfe3e7; }
.chat-window.v25 .chat-divider.dragging { background: #cfd4d9; box-shadow: inset 0 1px 0 #b9bfc6, inset 0 -1px 0 #b9bfc6; }
/* 离线输入提示条：离线且有输入时浮现于输入区顶部 */
.chat-window.v25 .chat-offline-hint { order: -1; display: flex; align-items: center; gap: 6px; padding: 5px 10px; background: #fff8e6; border-top: 1px solid #f5e3b3; font-size: 12px; color: #8a6d1a; flex: 0 0 auto; }
.chat-window.v25 .chat-offline-hint[hidden] { display: none; }
.chat-window.v25 .off-hint-dot { width: 7px; height: 7px; border-radius: 50%; background: #e8a13c; flex: 0 0 auto; }
.chat-window.v25 .off-hint-text { flex: 1; min-width: 0; }
.chat-window.v25 .btn-offline { border: none; background: #e84d4d; color: #fff; border-radius: 5px; padding: 4px 12px; font-size: 12px; cursor: pointer; flex: 0 0 auto; }
.chat-window.v25 .btn-offline:hover { background: #d04040; }
/* 文件消息卡：文件名+大小，可下载 */
.msg-file { display: inline-flex; align-items: center; gap: 8px; background: #fff; border-radius: 10px; padding: 9px 12px; text-decoration: none; color: #333; box-shadow: 0 1px 3px rgba(0,0,0,.06); }
.msg-file .file-icon { font-size: 20px; }
.msg-file .file-meta { display: flex; flex-direction: column; }
.msg-file .file-meta b { font-size: 13px; font-weight: 600; word-break: break-all; }
.msg-file .file-meta i { font-style: normal; font-size: 11px; color: #999; }
.msg-item.mine .msg-file { background: #fdecec; }
/* 离线留言弹窗 v2 */
.offdlg-overlay { position: fixed; inset: 0; background: rgba(0,0,0,.4); z-index: 10002; }
.offdlg { position: fixed; left: 50%; top: 50%; transform: translate(-50%,-50%); width: 380px; max-width: 92vw; max-height: 88vh; overflow-y: auto; background: #fff; border-radius: 10px; box-shadow: 0 12px 48px rgba(0,0,0,.3); z-index: 10003; }
.offdlg[hidden], .offdlg-overlay[hidden] { display: none; }
.offdlg-header { background: linear-gradient(135deg, #f04e4e, #d03030); height: 48px; display: flex; justify-content: space-between; align-items: center; padding: 0 14px; border-radius: 10px 10px 0 0; }
.offdlg-title { color: #fff; font-size: 15px; font-weight: 600; }
.offdlg-close { background: transparent; border: none; color: #fff; font-size: 20px; line-height: 1; cursor: pointer; padding: 4px 6px; border-radius: 4px; }
.offdlg-close:hover { background: rgba(255,255,255,.2); }
.offdlg-tip { background: #e8f0fe; border-bottom: 1px solid #c6d8f5; color: #1a56c4; font-size: 12.5px; line-height: 1.6; padding: 10px 14px; }
.offdlg-body { padding: 14px; }
.offdlg-body form { display: flex; flex-direction: column; gap: 10px; }
.offdlg-body textarea, .offdlg-body input[type=text], .offdlg-body input[type=tel] { border: 1px solid #e0e3e7; border-radius: 6px; padding: 9px 10px; font-size: 13px; font-family: inherit; outline: none; box-sizing: border-box; width: 100%; }
.offdlg-body textarea { resize: vertical; min-height: 84px; }
.offdlg-body textarea:focus, .offdlg-body input:focus { border-color: #e84d4d; }
.offdlg-agree { display: flex; align-items: center; gap: 6px; font-size: 12px; color: #666; cursor: pointer; }
.offdlg-submit { border: none; background: #e84d4d; color: #fff; border-radius: 6px; padding: 10px; font-size: 14px; font-weight: 600; cursor: pointer; }
.offdlg-submit:hover { background: #d04040; }
.offdlg-submit:disabled { background: #d7dade; color: #9aa0a6; cursor: not-allowed; }
.offdlg-call { text-align: center; font-size: 12.5px; }
.offdlg-call a { color: #1a56c4; text-decoration: none; }
.offdlg-call a:hover { text-decoration: underline; }
.offdlg-success { text-align: center; padding: 26px 0 18px; }
.offdlg-success p { margin: 4px 0; font-size: 14px; color: #2ba471; }
.offdlg-success p:last-child { color: #888; font-size: 12.5px; }
.offdlg .form-tip { font-size: 12px; min-height: 16px; }
.offdlg .form-tip.err { color: #f56c6c; }
/* 移动端 375：不提供拖拽（分隔线隐藏），输入区自适应；窗口贴底全宽 */
@media (max-width: 768px) {
  .chat-window.v25 { width: 100vw; max-width: 100vw; left: 0 !important; right: 0; top: auto !important; bottom: 0; transform: none !important; border-radius: 10px 10px 0 0; max-height: 80vh; }
  .chat-window.v25 .chat-divider { display: none; }
  .chat-window.v25 .chat-input-area { height: auto; max-height: 42vh; }
  .chat-window.v25 .chat-input-row textarea { max-height: 24vh; }
  .offdlg { width: 94vw; }
}

/* ==================== V26 产品中心内页（.content.pcat.v26，2026-09-19 指令） ====================
   ① 主体产品区 + 右侧栏目导航同容器顶部对齐、底部允许不同高（废弃 V21 等高铁律，本页内）；
   ② 卡片 3 列等宽、全卡等高（图片区 aspect-ratio 4/3）、名称居中 1~2 行省略号、不足 3 左对齐；
   ③ 默认视图 = 全目录按 sort（B 顺序）9 个/页；分页 = 上一页 + 数字页码 + 下一页居中，当前页高亮；
   ④ 右侧栏目 15 项等高、背景统一、超高竖向滚动。全部规则限 .v26 作用域，首页/分类页零影响。 */

/* ① 废等高：leftr 回退顶部对齐（底部随内容，允许与产品区不同高）；纵向 flex 结构保留（导航块+联系块） */
.content.pcat.v26 > .leftr { align-self: flex-start; }

/* ② 卡片网格：grid 3 列等宽；dl 去浮动去定宽；全卡等高（grid stretch） */
.content.pcat.v26 .pro_main.pgrid { min-height: 0; }
.content.pcat.v26 .pro_main.pgrid-pool { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px 18px; }
.content.pcat.v26 .pgrid-pool > .clear { display: none; /* 防 clear 空 div 占 grid 槽位 */ }
.content.pcat.v26 .pgrid-pool .pd_list_dl { float: none; width: auto; margin: 0; padding-left: 0; padding-right: 0; min-width: 0; height: 100%; box-sizing: border-box; }
/* 图片区统一 4:3，img 铺满裁切、占位块同尺寸（覆盖 .pd_list_dl dt .imgph 210×160 定死） */
.content.pcat.v26 .pgrid-pool .pd_list_dl dt { aspect-ratio: 4 / 3; overflow: hidden; width: 100%; box-sizing: border-box; }
.content.pcat.v26 .pgrid-pool .pd_list_dl dt img { width: 100%; height: 100%; object-fit: cover; display: block; }
.content.pcat.v26 .pgrid-pool .pd_list_dl dt .imgph { width: 100%; height: 100%; margin: 0; }
/* 名称居中、1~2 行省略号 */
.content.pcat.v26 .pgrid-pool .pd_list_dl dd { width: 100%; text-align: center; padding: 10px 6px; box-sizing: border-box; height: auto; min-height: 30px; }/* V56：基础样式 height:30px 定死致行高30px 文字被裁——改自适应高度保最小 30px */
.content.pcat.v26 .pgrid-pool .pd_list_dl dd a { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; text-align: center; line-height: 1.4; }
/* 分页条占满整行；页码数字组居中、当前页高亮；info 文案隐藏（规格 = 上一页+页码+下一页） */
.content.pcat.v26 .pgrid-pool > .ppager { grid-column: 1 / -1; }
.content.pcat.v26 .ppager-pool .ppager-info { display: none; }
.content.pcat.v26 .ppager-nums, .content.pcat.v27 .ppager-nums, .content.pcat.v22 .cshow.v27 .ppager-nums { display: inline-block; margin: 0 8px; vertical-align: middle; }
.content.pcat.v26 .ppager-num, .content.pcat.v27 .ppager-num, .content.pcat.v22 .cshow.v27 .ppager-num { display: inline-block; min-width: 38px; padding: 7px 10px; margin: 0 3px; border: 1px solid #cfd8e3; color: #1a5fb4; background: #fff; border-radius: 4px; font-size: 14px; text-decoration: none; box-sizing: border-box; text-align: center; }
.content.pcat.v26 a.ppager-num:hover, .content.pcat.v27 a.ppager-num:hover, .content.pcat.v22 .cshow.v27 a.ppager-num:hover { background: #1a5fb4; color: #fff; text-decoration: none; }
.content.pcat.v26 .ppager-num.cur, .content.pcat.v27 .ppager-num.cur, .content.pcat.v22 .cshow.v27 .ppager-num.cur { background: #1a5fb4; color: #fff; border-color: #1a5fb4; font-weight: bold; cursor: default; }

/* ④ 右侧栏目导航 15 项等高（固定项高+垂直居中）、背景统一（继承 v21nav 蓝条）、超高竖向滚动（v21 已 overflow-y:auto） */
.content.pcat.v26 .leib2.v21nav .nr > h3 > a,
.content.pcat.v27 .leib2.v21nav .nr > h3 > a,
.content.pcat.v22 .cshow-side.v27side .leib2.v27nav .nr > h3 > a { display: block; padding: 11px 16px; line-height: 1.35; min-height: 41px; box-sizing: border-box; }

/* 平板 769~1000：卡片 2 列 */
@media (min-width: 769px) and (max-width: 1000px) {
  .content.pcat.v26 .pro_main.pgrid-pool { grid-template-columns: repeat(2, 1fr); }
}
/* 移动端 ≤768：1 列；导航在上方横滚（V21 移动规则承接）、条目等高药丸 */
@media (max-width: 768px) {
  .content.pcat.v26 .pro_main.pgrid-pool { grid-template-columns: 1fr; gap: 16px; }
  .content.pcat.v26 .leib2.v21nav .nr > h3 > a,
  .content.pcat.v27 .leib2.v21nav .nr > h3 > a,
  .content.pcat.v22 .cshow-side.v27side .leib2.v27nav .nr > h3 > a { min-height: 0; padding: 9px 14px; }
}

/* ==================== V27 工程案例内页与产品中心内页布局统一（.content.pcat.v27，2026-09-19 指令） ====================
   /cases/index.html 与 /products/index.html 同款：① 骨架同容器顶部基线对齐、底部独立（leftr 顶部对齐，
   不 stretch）；② 卡片与产品卡同款（dl 同构 4:3、grid stretch 等高、名称居中两行省略、hover 图放大+阴影）；
   ③ 右副导航蓝皮 v21nav 同款（定宽 210、项等高、文字左对齐、h3.cur 橙色激活、超高竖滚）；
   ④ 分页【上一页+数字+下一页】居中当前高亮（数字样式与 V26 共享同一组选择器）。
   全部规则限 .v27 作用域（仅 /cases/index.html 挂 v27 类），产品页/首页/案例分类落地页零影响。 */
.content.pcat.v27 { --v27-side-w: 210px; --v27-gap: 15px; }

/* ① 骨架：右栏定宽定隙（同 V26 取值），顶部对齐、底部独立（同 V26 废等高铁律）；
   侧栏不钉视口（与产品页 v22 静态一致） */
.content.pcat.v27 > .rightl { flex: 1 1 775px; margin-right: var(--v27-gap); }
.content.pcat.v27 > .leftr { flex: 0 0 var(--v27-side-w); display: flex; flex-direction: column; align-self: flex-start; position: static; }
/* V52 wrapper 对照（v27 侧栏收进 .v52w）：列宽/纵向 flex 同款；sticky 由 V48 wrapper 规则承接 */
.content.pcat.v27 > .v52w > .leftr { flex: 0 0 var(--v27-side-w); display: flex; flex-direction: column; }
.content.pcat.v27 > .v52w > .leftr > .leftlxs { flex: 0 0 auto; }
.content.pcat.v27 > .leftr > .leftlxs { flex: 0 0 auto; /* 联系卡不收缩（V21 同款语义） */ }

/* ③ 右副导航：纵向 flex + 条目区竖滚（V21 同款结构；条目皮肤继承 .leib2 蓝条，与产品页逐项一致） */
.content.pcat.v27 .leib2.v21nav { flex: 1 1 auto; display: flex; flex-direction: column; min-height: 0; margin-bottom: 0; }
.content.pcat.v27 .leib2.v21nav .nr { flex: 1 1 auto; overflow-y: auto; min-height: 0; }

/* ② 卡片网格：3 列等宽、间距/卡片规则逐项照抄 V26 产品卡（dl 去浮动去定宽、全卡等高、4:3 图区、名居中两行省略）。
   选择器双作用域：.content.pcat.v27（案例页）与 .content.pcat.v22 .cshow.v27（产品页内嵌区块）——同值双写，改动需双处同步 */
.content.pcat.v27 .cshow-grid, .content.pcat.v22 .cshow.v27 .cshow-grid { gap: 22px 18px; }
.content.pcat.v27 .cshow-grid .pd_list_dl, .content.pcat.v22 .cshow.v27 .cshow-grid .pd_list_dl { float: none; width: auto; margin: 0; padding-left: 0; padding-right: 0; min-width: 0; height: 100%; box-sizing: border-box; }
.content.pcat.v27 .cshow-grid .pd_list_dl dt, .content.pcat.v22 .cshow.v27 .cshow-grid .pd_list_dl dt { aspect-ratio: 4 / 3; overflow: hidden; width: 100%; box-sizing: border-box; }
.content.pcat.v27 .cshow-grid .pd_list_dl dt img, .content.pcat.v22 .cshow.v27 .cshow-grid .pd_list_dl dt img { width: 100%; height: 100%; object-fit: cover; display: block; }
.content.pcat.v27 .cshow-grid .pd_list_dl dt .imgph, .content.pcat.v22 .cshow.v27 .cshow-grid .pd_list_dl dt .imgph { width: 100%; height: 100%; margin: 0; }
.content.pcat.v27 .cshow-grid .pd_list_dl dd, .content.pcat.v22 .cshow.v27 .cshow-grid .pd_list_dl dd { width: 100%; text-align: center; padding: 10px 6px; box-sizing: border-box; height: auto; min-height: 30px; }/* V56：同 height:30px 裁切根因修复 */
.content.pcat.v27 .cshow-grid .pd_list_dl dd a, .content.pcat.v22 .cshow.v27 .cshow-grid .pd_list_dl dd a { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; text-align: center; line-height: 1.4; }
/* hover 同款：图片轻微放大 + 卡片阴影（照抄 V21 取值；v21 hover 规则限 .v21 作用域，案例页/内嵌区块不命中，故 v27 重写） */
.content.pcat.v27 .cshow-grid .pd_list_dl, .content.pcat.v22 .cshow.v27 .cshow-grid .pd_list_dl { transition: box-shadow .2s; border-radius: 4px; }
.content.pcat.v27 .cshow-grid .pd_list_dl:hover, .content.pcat.v22 .cshow.v27 .cshow-grid .pd_list_dl:hover { box-shadow: 0 6px 18px rgba(15, 60, 120, .18); }
.content.pcat.v27 .cshow-grid .pd_list_dl dt img, .content.pcat.v22 .cshow.v27 .cshow-grid .pd_list_dl dt img { transition: transform .25s; }
.content.pcat.v27 .cshow-grid .pd_list_dl:hover dt img, .content.pcat.v22 .cshow.v27 .cshow-grid .pd_list_dl:hover dt img { transform: scale(1.06); }

/* ④ 分页：info 文案隐藏（规格 = 上一页+页码+下一页，居中）；数字/按钮样式与 V26 共享选择器（见上方 V26 块） */
.content.pcat.v27 .ppager-case .ppager-info, .content.pcat.v22 .cshow.v27 .ppager-case .ppager-info { display: none; }

/* ⑤ 产品页内嵌精品案例区块（V22 区块2）白导航换蓝皮同款：去白卡皮肤，菜单结构即 .leib2.v21nav（条目皮肤继承蓝条）；
   宽度 210 / 竖滚仍由 V22 规则（.content.pcat.v22 .cshow-side）承接；移动端横滚亦由 V22 移动规则承接 */
.content.pcat.v22 .cshow.cshow-v22 .cshow-side.v27side { border: none; background: none; padding: 0; }
.content.pcat.v22 .cshow.cshow-v22 .cshow-side.v27side h3 a { border-bottom: none; /* 去白栏分隔线，蓝条菜单无此项 */ }
/* 内嵌蓝皮菜单结构：独立类 v27nav（不挂 v21nav，防 V21 作用域规则隐式耦合/全站选择器串栏）；
   纵向 flex + 条目区竖滚（V21 同款语义）；清零旧皮肤 .leib2{margin-bottom:20px}；蓝底继承 .leib2 基础样式 */
.content.pcat.v22 .cshow-side.v27side .leib2.v27nav { display: flex; flex-direction: column; min-height: 0; margin-bottom: 0; }
.content.pcat.v22 .cshow-side.v27side .leib2.v27nav .nr { flex: 1 1 auto; overflow-y: auto; min-height: 0; }

/* 平板 769~1000：卡片 2 列 */
@media (min-width: 769px) and (max-width: 1000px) {
  .content.pcat.v27 .cshow-grid { grid-template-columns: repeat(2, 1fr); }
}
/* 移动端 ≤768：1 列；右栏导航在上横滚（药丸项，V21 移动语义承接）；条目高收紧（规则在 V26 块共享选择器内） */
@media (max-width: 768px) {
  .content.pcat.v27 > .leftr { flex: 0 0 100%; order: -1; }
  .content.pcat.v27 > .rightl { flex: 1 1 100%; margin-right: 0; }
  .content.pcat.v27 .leib2.v21nav { display: block; }
  .content.pcat.v27 .leib2.v21nav .nr { display: flex; overflow-x: auto; overflow-y: hidden; white-space: nowrap; }
  .content.pcat.v27 .leib2.v21nav .nr > h3 { flex: 0 0 auto; }
  .content.pcat.v27 .leib2.v21nav .nr > h3 a { white-space: nowrap; }
  .content.pcat.v27 .cshow-grid { grid-template-columns: 1fr; gap: 16px; }
}

/* V27 补充：产品卡图区在旧皮肤 .pro_main{padding:10px 5px} 内（两侧各 5px），案例网格直铺会宽 10px——
   给案例主区同值水平内边距，保证两页卡片逐像素同款（产品页基准不动） */
.content.pcat.v27 .cshow-main { padding: 0 5px; box-sizing: border-box; }

/* V27 补充：产品页内嵌蓝皮菜单（v22 结构带二级子链 ul）——子项隐藏保证条目等高同款
   （链接仍全量直出源码，SEO/禁 JS 可达；与移动端 V21 语义一致） */
.content.pcat.v22 .cshow-side.v27side .leib2.v27nav .nr ul { display: none; }

/* ==================== V31a 案例分类落地页：联系模块固定悬浮侧边栏 ====================
   仅 /case/{slug}.html[pN]（.content.pcat-case）；JS（generator_app.js V31 段）给 leftr 加 .fx 并量测定位，
   此处只给定位壳与层级；fixed 于原侧栏列（容器右缘 210px 列），rightl 被 :has 规则锁住不伸展故不遮正文；
   滚经热销板块/页脚前 JS 提前收敛 top（不遮热销、不压 footer）；z-index 40 低于导航(1000)/面板(999) */
@media (min-width: 1001px) {
  .content.pcat-case > .leftr.fx { position: fixed; z-index: 40; }
  /* leftr 脱离文档流后阻止 rightl flex 伸展占用其 210px 位（保持 V30 几何 775+15+210=1000） */
  .content.pcat-case:has(> .leftr.fx) > .rightl { flex: 0 0 775px; }
}
/* 769~1000 平板与 ≤768 移动：取消悬浮（JS 同步把联系块移到正文之后、footer 之前），内联样式一并压掉 */
@media (max-width: 1000px) {
  .content.pcat-case > .leftr { position: static !important; top: auto !important; left: auto !important; right: auto !important; width: auto !important; height: auto !important; }
  /* 已移位的联系块（RandomNews 紧邻兄弟）通栏展示 */
  .RandomNews + .leftr { width: 100%; box-sizing: border-box; }
  .RandomNews + .leftr .leftlxs { width: 100%; }
}

/* ==================== V31b 热销产品卡：与案例卡同款 ====================
   图区 4:3 定比填满消留白（占位铁律：无图仍 imgph 文字块，同尺寸填满）、细分隔线+底色过渡；
   作用于全部 .RandomNews 热销板块（案例/新闻/产品页共用），不动列表页 .pd_list_dl 既有规则 */
.RandomNews .pd_list_dl dt { display: block; aspect-ratio: 4 / 3; overflow: hidden; width: 100%; box-sizing: border-box; }
.RandomNews .pd_list_dl dt img { width: 100%; height: 100%; min-height: 0; object-fit: cover; display: block; }
.RandomNews .pd_list_dl dt .imgph { width: 100%; height: 100%; min-height: 0; margin: 0; }
.RandomNews .pd_list_dl dd { border-top: 1px solid #f0f0f0; background: #fafafa; padding: 9px 10px; box-sizing: border-box; height: auto; min-height: 30px; }/* V56：同 height:30px 裁切根因修复（热销产品/案例/新闻共用） */

/* ==================== V38 首页 proc 布局规整（2026-09-19 指令） ====================
   ① 节距统一 40/50（与 g-yy 等同款，原上 25px 偏小）；
   ② 左右容器固定横向间距 flex gap 16px（V19 stretch 骨架保留）；
   ③ 右侧卡片改严格 3 列网格：gap 16px 横纵相等、卡片等宽等高、
      末行单卡保持列宽不拉伸（grid 自然留白）；图片容器统一 170px 高、
      名称条统一 42px 高、文字水平居中；
   ④ 标题栏 h2 改 flex：标题与「更多 >>」同行垂直居中；
   ⑤ 「更多分类」壳层补齐（generator.js 追加）固定菜单最下方（sticky bottom）；
   ⑥ 移动端 ≤768 折 2 列、≤480 折 1 列（V19 上下布局保留）。
   覆盖对象仅限首页 proc .pror > ul；内页产品列表 .pd_list_dl 规则零接触。 */

/* --- ① 节距 --- */
.proc { padding: 40px 0 50px; }

/* --- ② 左右固定间距 --- */
.proc .content { gap: 16px; }

/* --- ③ 右侧卡片严格 3 列网格 --- */
/* font-size:0 是旧 inline-block 消除间隙手法，grid 下必须还原字号 */
.pror > ul { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; width: auto; font-size: 14px; }
.pror > ul > li { width: auto; padding-right: 0; margin-right: 0; display: flex; flex-direction: column; background: #fff; border: 1px solid #e3e9f2; box-sizing: border-box; overflow: hidden; }
/* 图片容器统一高度（img 与 imgph 占位同高），末行单卡因 1fr 列宽+justify 默认保持原位 */
.pror > ul > li > a { flex: 0 0 auto; display: block; height: 170px; background: #f5f7fa; overflow: hidden; }
.pror > ul > li > a img { width: 100%; height: 100%; object-fit: cover; display: block; }
.pror > ul > li > a > .imgph { width: 100%; height: 100%; margin: 0; display: flex; align-items: center; justify-content: center; box-sizing: border-box; }
/* 名称文字条：统一 42px、水平垂直居中、长名省略（li 直接子 span，特异性 0-1-3 压旧 0-1-2） */
.pror > ul > li > span { flex: 0 0 auto; width: auto; height: 42px; display: flex; align-items: center; justify-content: center; text-align: center; border: none; border-top: 1px solid #e3e9f2; padding: 0 8px; }
.pror > ul > li > span a { display: block; width: 100%; color: #4c4c4c; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* --- ④ 标题栏 flex：左标题右「更多 >>」同行垂直居中 --- */
.pror h2.pro-tit { display: flex; align-items: center; justify-content: space-between; padding-right: 28px; }
.pror h2.pro-tit > a.fl { float: none; }
.pror h2.pro-tit > a.mo { float: none; line-height: normal; }

/* --- ⑤ 更多分类固定菜单最下方（nr 为滚动容器，sticky bottom 在滚动时保持可见） --- */
.proc .prol .nr h4.more { position: sticky; bottom: 0; }
.proc .prol .nr h4.more a { background: #0b3d91; }

/* --- ⑥ 移动端 --- */
@media (max-width: 768px) {
  .proc { padding: 30px 0 40px; }
  .pror > ul { grid-template-columns: repeat(2, 1fr); gap: 12px; }
  .pror > ul > li { width: auto; margin-right: 0; }
  .pror > ul > li > a { height: 140px; }
  .pror li span { width: auto; }
}
@media (max-width: 480px) {
  .pror > ul { grid-template-columns: 1fr; }
}

/* ==================== V39 主导航下拉图标体系统一 ====================
   ① 图标视框统一 32×32：内置线性 SVG（.np-ico-svg 28×28 居中）与自定义图片（.np-ico-img
      object-fit:contain 同视框缩放）同尺寸同视框；emoji/字符原样渲染（字号 24）。
   ② 卡片统一：flex 列居中、统一内边距，grid stretch 保证整行等高、1fr 保证整列等宽；
      面板内横纵间距相等（gap 16/16）。V23 的 2 行布局与 --np-h 236px 单点高度一律不动。 */
.navpanel-in { gap: 16px 16px; }
.np-card { display: flex; flex-direction: column; align-items: center; justify-content: center; width: 100%; height: 100%; box-sizing: border-box; padding: 8px 4px; text-decoration: none; color: #333; border-radius: 6px; transition: background .2s; }
.np-card:hover { background: #f2f6fc; }
.np-ico { width: 32px; height: 32px; display: flex; align-items: center; justify-content: center; font-size: 24px; line-height: 1; background: transparent; border: none; margin-bottom: 8px; overflow: hidden; color: #333; }
.np-ico-svg { width: 28px; height: 28px; display: block; }
.np-card:hover .np-ico, .np-card:hover .np-ico-svg { color: #E53333; stroke: #E53333; }
.np-ico-img { width: 28px; height: 28px; object-fit: contain; display: block; }
.np-txt { text-align: center; }
.np-card:hover .np-txt { color: #E53333; }

/* ==================== V48 副导航固定悬浮统一（2026-09-20 指令二） ====================
   覆盖：所有主导航内页左侧副导航（产品中心 v22 / 案例池页 v27 / 案例详情 / 新闻中心及详情 / 产品分类页）。
   ① 桌面 sticky 钉视口（v2merge 默认已有 top:14px），本块补：超高时栏内独立滚动（限高=视口-28px，
      overflow-y:auto）——只滚菜单不影响主页面；sticky 天然不超出父级 content，不遮页脚/其他区块。
   ② v22（产品中心）/v27（案例池页）曾被静态化（V22 窜位 BUG 修复），根因=leftlxs 固定 420px 高+float 穿透，
      现已 height:auto+三区块 BFC 隔离（v2merge/V22 成果），恢复悬浮并补 align-self:flex-start
      （.content.pcat 容器 align-items:stretch，stretch 下 flex item 被拉满、sticky 失效）。
   ③ V30 案例分类页（.pcat-case）JS fixed(.fx) 方案不动：桌面 .fx 优先级高于本块 sticky，≤1000px JS 自取消。
   ④ 移动端 ≤768：一律不固定，恢复文档流上下堆叠（v21 既有 static 规则之外补通用解除）。 */
@media (min-width: 769px) {
  .content > .v52w > .leftr { position: sticky; top: 14px; max-height: calc(100vh - 28px); overflow-y: auto; overflow-x: hidden; scrollbar-width: thin; }
  /* v22/v27 恢复悬浮（sticky 作用域=V52 wrapper）+ 防 stretch 拉满 */
  .content.pcat.v22 > .v52w > .leftr,
  .content.pcat.v27 > .v52w > .leftr { position: sticky; top: 14px; align-self: flex-start; max-height: calc(100vh - 28px); overflow-y: auto; overflow-x: hidden; scrollbar-width: thin; }
}
@media (max-width: 768px) {
  /* 移动端不固定：解除 sticky/限高/栏内滚，副导航回到文档流（v21 既有规则承接，此处补全站默认结构页） */
  .content > .v52w > .leftr,
  .content.pcat.v22 > .v52w > .leftr,
  .content.pcat.v27 > .v52w > .leftr { position: static; max-height: none; overflow: visible; align-self: auto; }
}

/* ==================== V48 补：默认结构页移动端堆叠（2026-09-20 指令二.4） ====================
   默认两栏 float 页（新闻中心/新闻详情/案例详情/产品分类页等非 .pcat 页）≤768px 上下堆叠：
   左右栏解除 float 占满内容宽，侧栏三卡片（菜单/案例卡/联系卡）同步 100%；.pcat 系页（v21/v22/v27/v30）
   已有各自移动规则，此处通用规则对其无害（同值覆盖）。 */
@media (max-width: 768px) {
  /* V52：wrapper 移动态改 flex wrap——v21/v27 移动语义「副导航在上」（order:-1，承接原
     .content.pcat.v21/v27 > .leftr 直接子级规则）；非 pcat 页无 order，保持 DOM 序（右栏在上，V48 语义） */
  .content > .v52w, .content.pcat > .v52w { display: flex; flex-wrap: wrap; }
  .content.pcat.v21 > .v52w > .leftr, .content.pcat.v27 > .v52w > .leftr { order: -1; }
  .content > .v52w > .leftr { flex: 0 0 100%; float: none; width: 100%; box-sizing: border-box; }
  .content > .v52w > .rightl { flex: 1 1 100%; float: none; width: 100%; box-sizing: border-box; }
  .content > .v52w > .leftr .leib2, .content > .v52w > .leftr .leib, .content > .v52w > .leftr .leftlxs { width: 100%; }
}

/* ============ V51 面包屑统一排版（覆盖模板 resetcommon .plc，全站一致） ============ */
/* 根因修复：模板 .plc 带失效图标 background(logo_03.png 404) + padding-left:35px → 文字与下方内容区错位；
   height:30px 固定 + overflow:hidden → 长路径被裁、375 不换行。此处全量覆盖： */
.content > .plc { background: none; height: auto; min-height: 0; padding: 6px 0 8px; line-height: 1.7; overflow: visible; white-space: normal; word-break: break-all; }
/* 整条通长水平线 = .plc 盒底 border（双栏顶边对齐基准线，规则②不动）：显式补色，紧贴文字区域下方 */
.content > .plc { border-bottom: 1px solid #ddd; }
/* 「当前位置：」标签（原 .red_x 蓝粗体样式由 .plc-here 继承，不再依赖模板 .plc .red_x） */
.plc .plc-here { color: #0058C4; font-weight: bold; margin-right: 2px; }
/* 链路列表：ol 语义重置为行内序列 */
.plc .plc-list { display: inline; margin: 0; padding: 0; list-style: none; }
.plc .plc-list > li { display: inline; }
/* 分隔符 > 前后固定间距（模板 .plc a 的 margin:0 5px 一并归一） */
.plc .plc-list .plc-sep { margin: 0 8px; color: var(--crumb-c, #333); }
/* 全项可点击：链接色=自定义色（CSS 变量 --crumb-c，内联于 nav style），字号跟随 nav 内联 font-size，禁模板 14px 硬编码 */
.plc .plc-list a { color: var(--crumb-c, #333); font-size: inherit; margin: 0; text-decoration: none; }
.plc .plc-list a:hover { color: #f98401; }
/* 末项（当前页，aria-current）：加粗区分但不改色（覆盖模板 .plc span 红字硬编码） */
.plc .plc-list li[aria-current] span, .plc .plc-list li[aria-current] a { color: var(--crumb-c, #333); font-weight: bold; }
/* 375 移动端：文字自动换行、下划线随盒宽自适应（盒宽=内容区宽，换行后 border-bottom 自然通长） */
@media (max-width: 480px) {
  .content > .plc { padding: 5px 0 7px; line-height: 1.8; }
  .plc .plc-list .plc-sep { margin: 0 5px; }
}


/* ==================== V55 聊天窗双头像 img 裁切 + 底部输入区改版 ==================== */
/* 头像 img：圆形容器内 object-fit:cover 裁切防拉伸（512² 素材等比显示）；SSR 与我方气泡均输出 img.avatar-img */
.chat-window .cs-avatar img.avatar-img,
.chat-window .msg-avatar img.avatar-img { width: 100%; height: 100%; object-fit: cover; display: block; border-radius: 50%; }
/* 输入区改版（参考清爽风）：去工具栏灰边、图标等高等间距、placeholder 与输入字号统一 */
/* 注意：图标对齐保持 flex-end（V34 验收基线断言 justify-content:flex-end，不随参考图改左） */
.chat-window .chat-tools { border-top: none; gap: 8px; padding: 8px 10px 4px; }
.chat-window .tool-btn { width: 32px; height: 32px; border-radius: 6px; }
.chat-window #chatInput::placeholder { font-size: 13px; color: #999; }


/* ==================== V58（2026-09-21 指令）：①产品页两栏底边对齐 ②375 真响应式版心 ==================== */

/* ① V57 问题1：产品中心页（全站唯一 v21+v22 双类页）两栏底边差 55px 修复。
   根因：V52 桌面 sticky 规则（.content.pcat.v22 > .v52w > .leftr，align-self:flex-start）
   晚于且压过了 V21 等高铁律 stretch（本文件 L1083），V56 卡名条增高后右栏底边超出侧栏 55px。
   修复：v21.v22 双类更高特异性恢复 stretch 并解除 max-height——侧栏底边与右栏对齐；
   等高下 sticky 无行程自然失效（position 计算值仍为 sticky，v52 验收断言兼容）。 */
@media (min-width: 1001px) {
  .content.pcat.v21.v22 > .v52w > .leftr { align-self: stretch; max-height: none; }
}

/* ② V57 问题2：375 真响应式——768 断点下版心及各固定宽容器 width:auto + max-width 封顶。
   PC（≥769px）不受任何影响（本块只存在于 768 媒体查询内）。
   基线变更（2026-09-21）：375 视口 scrollWidth 1000 → 视口宽（375），无横向滚动；
   check_two_col.js 移动断言已同步更新为新基线。 */
@media (max-width: 768px) {
  .content, .footer { width: auto; max-width: 1000px; box-sizing: border-box; }
  .hp_withs { width: auto; max-width: 1000px; box-sizing: border-box; }
  .slide-txt { width: auto; max-width: 1000px; box-sizing: border-box; }
  .g-zj .nr { width: auto; max-width: 1000px; box-sizing: border-box; }
  .yous .content { width: auto; max-width: 1000px; box-sizing: border-box; }
  .new .content.col3-cards { width: auto; max-width: 1000px; box-sizing: border-box; }
  .liuy-page, .g-yy .liuy { width: auto; max-width: 560px; box-sizing: border-box; }
}

/* V58 第二轮（375 逐页收尾）：根因版心修复后暴露的模板固定宽容器针对性覆盖。
   均为 skin 模板 style.css 固定宽，不动源模板，此处 ssg.css 末位覆盖（≤768px 生效）。 */
@media (max-width: 768px) {
  /* 留言/联系页表单容器（模板双类规则固定 470px） */
  .page-message .liuy-page, .page-contact .liuy-page { width: auto; max-width: 100%; }
  /* 产品详情页（products/*.html）：左图右信息两栏固定宽 → 单栏堆叠 */
  .pleft, .mainbox, .proviewbox, .probigshow, .div_prothumb { width: auto; max-width: 100%; float: none; box-sizing: border-box; }
  .maincont, .prodetailsinfo { width: auto; max-width: 100%; box-sizing: border-box; }
  .probigshow .imgph.bigshow-ph { max-width: 100%; height: auto; aspect-ratio: 1 / 1; box-sizing: border-box; }
  a.jqzoom { max-width: 100%; box-sizing: border-box; }
  .ul_prothumb { width: auto; max-width: 100%; overflow-x: auto; }
  textarea.inp4, .inp4 { width: 100%; max-width: 100%; box-sizing: border-box; }
  /* 新闻详情页（news/*.html）：右主栏固定宽 690/668 → 通栏 */
  .left2, .left2_main { width: auto; max-width: 100%; float: none; box-sizing: border-box; }
  /* 新闻列表页：条目摘要固定宽 570 → 自适应 */
  .inf_lc li p { width: auto; max-width: 100%; }
  /* about/faq/service 子导航条固定宽 996 → 自适应换行 */
  .a_nav ul { width: auto; max-width: 100%; }
}

/* V58 第三轮（375 收尾）：产品详情规格/关联块 738px、首页走进云上 560px 图。 */
@media (max-width: 768px) {
  .info_b, .info_b2 { width: auto; max-width: 100%; box-sizing: border-box; }
  ul.p_list_ul li, ul.p_list_ul2 li { width: auto; max-width: 100%; float: none; display: block; white-space: normal; box-sizing: border-box; }
  .g-zj .nr div.zj-p { width: auto; max-width: 100%; flex-shrink: 1; height: auto; aspect-ratio: 560 / 300; }
  .g-zj .nr div.zj-p .imgph.zj-img { max-width: 100%; }
}

/* V58 第四轮（375 收尾）：留言/联系页 flex 行换行——子导航条与左右分栏在 375 下纵向堆叠。 */
@media (max-width: 768px) {
  .page-message .a_nav ul, .page-contact .a_nav ul { flex-wrap: wrap; justify-content: flex-start; }
  .page-message .message-page, .page-contact .contact-page { flex-wrap: wrap; gap: 24px; }
  .page-message .liuy-page, .page-contact .liuy-page { flex: 0 0 100%; max-width: 100%; }
  .page-message .msg-side { max-width: 100%; }
}

/* ==================== V59 首页 proc 产品中心排版修复（2026-09-25 指令） ====================
   ① 去帽子：副导航标题栏(h3,210px) 比菜单条(h4 a, margin 0 8px → 194px) 宽出 8px×2，
      现菜单条 margin 0 + 直角，左右边界与标题栏完全齐平（视觉对齐内页 leib2 满幅蓝条）；
   ② 两基线齐平：content flex stretch（V19 已有）保证左右容器盒模型顶/底对齐，
      现把 nr 改为绝对定位撑满侧栏（top=标题栏高 47px、bottom=0）：
      条目纵 flex 弹性拉伸，首条顶贴标题栏底边、末条底贴分页组件底边，视觉基线完全齐平；
      高度跟随右栏自动伸缩（不死高），右栏变矮（切分类分页消失）时菜单条目同步收缩；
   ③ 栏内滚动真实现：V19 的 flex:1 1 auto + overflow:auto 在容器高 auto 时基於内容高，
      菜单过多会把整节撑高、永不出现滚动条（flex 规范：容器自动高取内容贡献）。
      nr 绝对定位后不参与父级高度计算 → 侧栏高度由右栏决定 → nr 获得确定高度 →
      overflow-y:auto 在条目超 min-height:38 装不下时真实栏内滚动；
   ④ 仅 PC（min-width:769px）生效，375 移动端维持 V19 横滚条布局不破。
   注：.prol/.pror 仅首页 proc 使用（内页产品池为 .leftr/.leib2/.pro_main，零共用），
      内页渲染与 check_two_col/v49/v56 断言不受影响。 */
@media (min-width: 769px) {
  .proc .prol { position: relative; }
  .proc .prol .nr {
    position: absolute; top: 47px; left: 0; right: 0; bottom: 0;
    display: flex; flex-direction: column; padding-bottom: 0;
  }
  .proc .prol .nr h4 { flex: 1 1 auto; display: flex; min-height: 38px; margin: 0; }
  .proc .prol .nr h4 a {
    flex: 1 1 auto; display: flex; align-items: center;
    height: auto; min-height: 38px; line-height: normal;
    margin: 0; border-radius: 0;
  }
}

/* P1-4 未配置模块占位 */
.mod-ph{background:#f5f5f5;border:1px dashed #ccc;color:#999;padding:20px;text-align:center;min-height:40px}
.mod-ph-inline{display:inline-block;padding:2px 8px;min-height:0;font-size:12px}
