@charset "utf-8";
/* ============================================================
   宇智环保咨询 - 公共样式表 (qinghui.css)
   ------------------------------------------------------------
   说明:基于 MasterGo 设计稿提炼的站点通用样式。
        含主题变量、基础重置、通用工具类、头部导航等公共组件。
        其余模板页可直接复用本文件的变量(--qh-*)与工具类,
        无需在每个页面重复定义,保证全站视觉统一。
   ============================================================ */

/* ---------- 主题变量 ---------- */
:root{
  --qh-text:       #111827;                                    /* 主文字色 */
  --qh-theme:      #008C68;                                    /* 主题绿(环保) */
  --qh-bg:         #FFFFFF;                                    /* 主背景 */
  /* --qh-font-serif: 'Source Han Serif SC VF','Source Han Serif CN','思源宋体','SimSun',serif;
  --qh-font-sans:  Arial,'Microsoft YaHei',sans-serif; */
}

/* ---------- 基础重置 ---------- */
*,*::before,*::after{ box-sizing:border-box; }
html{ scrollbar-gutter:stable; }
body{ margin:0; color:var(--qh-text); overflow-x:hidden; overflow-x:clip; }
a{ color:inherit; text-decoration:none; }
a:hover{ color:var(--qh-theme); text-decoration:none; }
img{ max-width:100%; vertical-align:middle; }

/* ---------- 通用工具类 ---------- */
.qh-theme-text{ color:var(--qh-theme); }
.qh-bg-theme{ background:var(--qh-theme); color:#fff; }
.qh-font-serif{ font-family:var(--qh-font-serif); }
/* 统一左右大间距容器(对应设计稿 padding:0 120px) */
.qh-container{ width:100%; margin:0 auto; padding:0 120px; }
@media (min-width:2240px){ .qh-container{ padding-left:320px; padding-right:320px; } }
@media (max-width:1679.98px) and (min-width:940px){ .qh-container{ padding-left:64px; padding-right:64px; } }
@media (max-width:939.98px){ .qh-container{ padding:0 16px; } }

/* ---------- 头部导航 ---------- */
.qh-navbar{ background:var(--qh-bg); height:72px; padding:8px 120px; box-shadow:0 2px 8px rgba(17,24,39,.06); }
.qh-navbar .navbar-brand{ display:flex; align-items:center; gap:8px; }
.qh-navbar .qh-logo{ width:46px; height:46px; flex:none; object-fit:cover; }
.qh-navbar .qh-name{ display:flex; flex-direction:column; justify-content:center; }
.qh-navbar .qh-name .zh{ color:var(--qh-text); font-size:24px; font-family:var(--qh-font-serif); font-weight:900; line-height:34px; }
.qh-navbar .qh-name .en{ color:var(--qh-text); font-size:12px; font-family:var(--qh-font-sans); line-height:13px; }
.qh-navbar .navbar-nav{ align-items:center; gap:40px; }
.qh-navbar .navbar-nav .nav-link{ color:var(--qh-text); font-size:14px; font-family:var(--qh-font-serif); font-weight:600; line-height:72px; padding:0; white-space:nowrap; }
.qh-navbar .navbar-nav .nav-link:hover{ color:var(--qh-theme); }
.qh-navbar .navbar-nav .nav-item.active > .nav-link{ color:var(--qh-theme); }
/* 移动端汉堡按钮:浅色导航条配深色图标 */
.qh-navbar .navbar-toggler{ border-color:rgba(17,24,39,.15); padding:.25rem .5rem; }
.qh-navbar .navbar-toggler-icon{ background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='%23111827' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); }

/* ---------- 头部大屏横幅(qh-banner) · 多端 2560/1920/1440/440 ---------- */
/* 2560/1920/1440 三端内容一致(标题40/副标题20),仅左右内边距随断点变化;440 缩小字号 */
.qh-banner{ display:flex; align-items:center; justify-content:center; height:302px; padding:72px 120px; background-color:#e9ecef; background-size:cover; background-position:center; background-repeat:no-repeat; }
.qh-banner-inner{ display:flex; flex-direction:column; align-items:center; justify-content:center; gap:24px; max-width:100%; text-align:center; }
.qh-banner-title{ display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:24px; color:#000; font-family:var(--qh-font-serif); font-weight:700; font-size:40px; line-height:57px; }
.qh-banner-div{ flex:none; width:2px; height:24px; background:#000; }
.qh-banner-sub{ margin:0; color:#000; font-family:var(--qh-font-serif); font-weight:700; font-size:20px; line-height:29px; }
/* —— 2560(≥2240):左右内边距 320px —— */
@media (min-width:2240px){
  .qh-banner{ padding-left:320px; padding-right:320px; }
}
/* —— 1440(940–1679):左右内边距 64px —— */
@media (min-width:940px) and (max-width:1679.98px){
  .qh-banner{ padding-left:64px; padding-right:64px; }
}
/* —— 440(<940):缩小字号 + 收紧内边距 —— */
@media (max-width:939.98px){
  .qh-banner{ height:290px; padding:48px 16px; }
  .qh-banner-title{ font-size:32px; line-height:46px; }
  .qh-banner-sub{ font-size:16px; line-height:23px; }
}

/* ---------- 底部标语条(qh-slogan / comm/bottom.html) · 多端 ---------- */
/* 全宽背景图 + 居中品牌标语,置于正文与页脚之间。基础按 1920 写,断点仅改左右内边距 */
.qh-slogan{ padding:24px 120px; background:url('../images/slogan-bg.jpg') center/cover no-repeat; }
.qh-slogan-text{ margin:0; text-align:center; color:#000; font-size:18px; font-family:var(--qh-font-serif); font-weight:600; line-height:26px; }
@media (min-width:2240px){ .qh-slogan{ padding-left:320px; padding-right:320px; } }
@media (min-width:940px) and (max-width:1679.98px){ .qh-slogan{ padding-left:64px; padding-right:64px; } }
@media (max-width:939.98px){ .qh-slogan{ padding:20px 16px; } .qh-slogan-text{ font-size:14px; line-height:22px; } }

/* ---------- 优势特色条(幻灯片下) ---------- */
.qh-features{ display:flex; flex-wrap:wrap; gap:24px; padding:40px 120px; }
.qh-feature{ flex:1 1 0; min-width:0; height:136px; display:flex; flex-direction:column; justify-content:center; gap:8px; padding:10px 32px; overflow:hidden; color:var(--qh-text); background-color:#E5E5E5; background-image:url('../images/feature-bg-light.png'); background-size:cover; background-position:center; transition:background-color .3s, color .3s; }
.qh-feature-title{ display:block; font-size:24px; font-family:var(--qh-font-serif); font-weight:900; line-height:34px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.qh-feature-desc{ display:block; font-size:16px; font-family:var(--qh-font-serif); font-weight:600; line-height:23px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; opacity:.85; }
.qh-feature:hover{ color:#fff; background-color:#008C68; background-image:url('../images/feature-bg-green.png'), linear-gradient(106deg,#32C59F 0%,#008C68 100%); }
.qh-feature:nth-child(1){ animation-delay:.10s; }
.qh-feature:nth-child(2){ animation-delay:.20s; }
.qh-feature:nth-child(3){ animation-delay:.30s; }
.qh-feature:nth-child(4){ animation-delay:.40s; }
/* 优势特色条 · 多尺寸适配(2560 / 1920 / 1440 / 移动) */
@media (min-width:2560px){ .qh-features{ padding-left:320px; padding-right:320px; } }
@media (max-width:1919.98px) and (min-width:1024px){ .qh-features{ padding-left:64px; padding-right:64px; } }
@media (max-width:1023.98px){
  .qh-features{ padding:24px 16px; gap:16px; }
  .qh-feature{ flex:1 1 calc(50% - 8px); padding:10px 16px; }
  .qh-feature-title{ font-size:20px; line-height:29px; }
  .qh-feature-desc{ font-size:14px; line-height:20px; white-space:normal; display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; overflow:hidden; }
}

/* ---------- 关于我们 ---------- */
.qh-about{ padding:80px 120px 40px; }
/* 关于我们 · 多端适配(2560/1920/1440/移动) */
@media (min-width:2240px){ .qh-about{ padding-left:320px; padding-right:320px; } }
@media (max-width:1679.98px) and (min-width:940px){ .qh-about{ padding-left:64px; padding-right:64px; } }
@media (max-width:939.98px){
  .qh-about{ padding:32px 16px; }
  .qh-about-top{ flex-direction:column; }
  .qh-about-title{ text-align:center; }
  .qh-about-top .qh-about-media{ display:none; }
  .qh-about-intro .qh-about-more{ display:none; }
  .qh-about-stats{ flex-direction:row; flex-wrap:wrap; gap:8px; padding-top:24px; }
  .qh-about-stats .qh-stat{ flex:1 1 calc(50% - 8px); min-width:0; gap:8px; }
  .qh-about-stats .qh-stat-num{ font-size:28px; line-height:36px; }
  .qh-about-stats .qh-stat-num i{ font-size:16px; }
  .qh-about-stats .qh-stat-label{ font-size:14px; line-height:20px; }
}
.qh-about-top{ display:flex; flex-wrap:wrap; gap:24px; align-items:stretch; }
.qh-about-intro{ flex:1 1 380px; display:flex; flex-direction:column; gap:16px; }
.qh-about-title{ margin:0; font-size:32px; font-family:var(--qh-font-serif); font-weight:700; line-height:46px; color:#191A19; }
.qh-about-slogan{ margin:0; font-size:16px; font-family:var(--qh-font-serif); font-weight:500; line-height:23px; color:#191A19; }
.qh-about-text{ margin:0; font-size:16px; font-family:var(--qh-font-serif); font-weight:500; line-height:1.9; color:#191A19; }
.qh-about-more{ align-self:flex-start; margin-top:8px; display:inline-flex; align-items:center; border:1px solid var(--qh-theme); border-radius:999px; padding:11px 24px; font-size:16px; font-family:var(--qh-font-serif); color:var(--qh-theme); transition:all .2s; }
.qh-about-more:hover{ background:var(--qh-theme); color:#fff; }
.qh-about-media{ flex:1 1 380px; display:flex; align-items:center; justify-content:center; }
.qh-about-media img{ width:100%; max-width:420px; aspect-ratio:1/1; object-fit:cover; }
.qh-about-stats{ display:flex; flex-wrap:wrap; gap:24px; padding-top:40px; }
.qh-stat{ flex:1 1 200px; display:flex; align-items:center; gap:20px; }
.qh-stat::before{ content:''; width:2px; align-self:stretch; background:var(--qh-theme); }
.qh-stat-num{ color:#008C68; font-size:40px; font-family:var(--qh-font-serif); font-weight:900; line-height:57px; }
.qh-stat-num i{ font-style:normal; font-size:24px; font-weight:900; }
.qh-stat-label{ display:block; color:#000; font-size:16px; font-family:var(--qh-font-serif); font-weight:600; line-height:23px; }

/* ---------- 宇智视角(新闻资讯) ---------- */
.qh-view{ height:840px; background: url('../images/view-bg.jpg') center/cover no-repeat; }
.qh-view-head{ text-align:center; padding-top:80px; }
.qh-view-title{ margin:0; font-size:32px; font-family:var(--qh-font-serif); font-weight:700; line-height:46px; color:#000; }
.qh-view-sub{ margin:10px 0 0; font-size:18px; font-family:var(--qh-font-serif); font-weight:600; line-height:26px; color:#000; }
.qh-view-body{ display:flex; flex-wrap:wrap; gap:64px; padding:40px 0 80px; align-items:flex-start; }
.qh-view-feature{ flex:0 0 720px; max-width:100%; }
.qh-view-feature-card{ display:block; }
.qh-view-feature-img{ width:100%; aspect-ratio:16/9; overflow:hidden; background-color:#e9ecef; }
.qh-view-feature-img img{ width:100%; height:100%; object-fit:cover; display:block; }
.qh-view-feature-title{ margin:16px 0 0; font-size:20px; font-family:var(--qh-font-serif); font-weight:700; line-height:29px; color:#000; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.qh-view-feature-meta{ display:flex; align-items:center; justify-content:space-between; gap:16px; margin-top:16px; }
.qh-view-date-text{ font-size:14px; font-family:var(--qh-font-serif); font-weight:500; color:#000; }
.qh-view-line{ width:80px; height:2px; background:#000; }
.qh-view-list{ flex:1 1 320px; min-width:0; display:flex; flex-direction:column; }
.qh-view-item{ display:flex; gap:24px; padding-bottom:24px; margin-bottom:24px; border-bottom:1px solid #D8D8D8; }
.qh-view-date{ flex:none; width:80px; height:80px; display:flex; flex-direction:column; align-items:center; justify-content:center; background:#008C68; color:#fff; }
.qh-view-date-day{ font-size:32px; font-family:var(--qh-font-serif); font-weight:700; line-height:1; }
.qh-view-date-ym{ font-size:13px; font-family:var(--qh-font-serif); font-weight:700; line-height:1; margin-top:2px; }
.qh-view-item-body{ flex:1; min-width:0; }
.qh-view-item-title{ margin:0; font-size:20px; font-family:var(--qh-font-serif); font-weight:700; line-height:29px; color:#000; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.qh-view-item-desc{ margin:8px 0 0; font-size:14px; font-family:var(--qh-font-serif); line-height:20px; color:#000; display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; overflow:hidden; }
/* 第一条默认不再特殊着色,悬浮统一用亮绿 #19B97C */
.qh-view-more{ align-self:flex-end; margin-top:8px; display:inline-flex; align-items:center; border:1px solid #000; border-radius:999px; padding:11px 24px; font-size:16px; font-family:var(--qh-font-serif); color:#000; transition:all .2s; }
.qh-view-more:hover{ background:#000; color:#fff; }
/* 文章卡片:小手指针;悬浮时标题文字与日期块变主题绿 */
.qh-view-item, .qh-view-feature-card{ cursor:pointer; }
.qh-view-item-title, .qh-view-feature-title, .qh-view-date{ transition:color .2s ease, background .2s ease; }
.qh-view-item:hover .qh-view-item-title{ color:#19B97C; }
.qh-view-item:hover .qh-view-date{ background:#19B97C; }
.qh-view-feature-card:hover .qh-view-feature-title{ color:#19B97C; }
/* 宇智视角 · 多端(2560/1920 同默认;1440 档头条640 间距40;<940 纵排) */
@media (max-width:1679.98px) and (min-width:940px){
  .qh-view-body{ gap:40px; }
  .qh-view-feature{ flex:0 0 640px; }
}
@media (max-width:939.98px){
  /* 移动端:隐藏服务分类、关于我们、宇智视角 */
  section.qh-service, section.qh-about, section.qh-view{ display:none; }
  .qh-view-head{ padding-top:32px; }
  .qh-view-title{ font-size:24px; line-height:34px; }
  .qh-view-sub{ font-size:15px; line-height:22px; }
  .qh-view-body{ flex-direction:column; align-items:stretch; gap:24px; padding:24px 0 32px; }
  .qh-view-feature{ flex:0 0 auto; }
  .qh-view-item{ gap:12px; padding-bottom:16px; margin-bottom:16px; }
  .qh-view-date{ width:56px; height:56px; }
  .qh-view-date-day{ font-size:22px; }
  .qh-view-date-ym{ font-size:11px; }
  .qh-view-item-title{ font-size:16px; line-height:23px; white-space:normal; display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; line-clamp:2; overflow:hidden; }
  .qh-view-item-desc{ font-size:13px; line-height:18px; }
  .qh-view-more{ display:none; }
}

/* ---------- 新闻资讯列表(qh-newslist) · 多端 2560/1920/1440/440 ---------- */
/* 基础按 1920 写:左右内边距 120px、2列、左图右文 */
.qh-newslist{ padding:80px 120px; }
.qh-newslist-head{ display:flex; flex-direction:column; margin-bottom:40px; }
.qh-newslist-en{ color:rgba(156,163,175,.5); font-size:24px; font-family:var(--qh-font-sans); line-height:34px; }
.qh-newslist-title{ margin:0; color:#191A19; font-size:48px; font-family:var(--qh-font-serif); font-weight:700; line-height:69px; }
.qh-newslist-grid{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(2,1fr); column-gap:64px; row-gap:40px; }
.qh-newslist-card{ margin:0; min-width:0; }
/* 新闻卡片进场错峰(配合 wow fadeInUp,右列延迟) */
.qh-newslist-card:nth-child(2n){ animation-delay:.1s; }
.qh-newslist-card-link{ display:flex; align-items:stretch; gap:40px; color:inherit; text-decoration:none; }
.qh-newslist-thumb{ flex:none; width:284px; height:160px; background-color:#e9ecef; overflow:hidden; }
.qh-newslist-thumb img{ width:100%; height:100%; object-fit:cover; display:block; }
.qh-newslist-body{ flex:1; min-width:0; display:flex; flex-direction:column; justify-content:space-between; }
.qh-newslist-card-title{ margin:0; color:#191A19; font-size:16px; font-family:var(--qh-font-serif); font-weight:700; line-height:23px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.qh-newslist-card-title .badge{ font-size:12px; font-weight:600; margin-right:6px; vertical-align:baseline; }
.qh-newslist-card-desc{ margin:0; color:#191A19; font-size:14px; font-family:var(--qh-font-serif); line-height:20px; text-align:justify; display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:3; overflow:hidden; }
.qh-newslist-card-foot{ display:flex; align-items:flex-end; gap:16px; }
.qh-newslist-date{ flex:1; min-width:0; color:#000; font-size:14px; font-family:var(--qh-font-serif); font-weight:500; line-height:20px; }
.qh-newslist-line{ flex:none; width:80px; height:2px; background:#000; }
.qh-newslist-card-title,.qh-newslist-line{ transition:color .2s ease,background .2s ease; }
.qh-newslist-card-link:hover .qh-newslist-card-title{ color:var(--qh-theme); }
.qh-newslist-card-link:hover .qh-newslist-line{ background:var(--qh-theme); }
/* 分页主题色(悬浮亮绿) */
/* newslist 分页沿用全局 .pagination 样式 */
/* —— 2560(≥2240):仅放大左右内边距 —— */
@media (min-width:2240px){
  .qh-newslist{ padding-left:320px; padding-right:320px; }
}
/* —— 1440(940–1679):左右内边距 64px + 单列 —— */
@media (min-width:940px) and (max-width:1679.98px){
  .qh-newslist{ padding-left:64px; padding-right:64px; }
  .qh-newslist-grid{ grid-template-columns:1fr; }
}
/* —— 440(<940):内边距 16px、单列、卡片上图下文、标题缩小 —— */
@media (max-width:939.98px){
  .qh-newslist{ padding:40px 16px; }
  .qh-newslist-head{ margin-bottom:24px; }
  .qh-newslist-en{ font-size:18px; line-height:25px; }
  .qh-newslist-title{ font-size:32px; line-height:46px; }
  .qh-newslist-grid{ grid-template-columns:1fr; row-gap:16px; }
  .qh-newslist-card-link{ flex-direction:column; gap:16px; }
  .qh-newslist-thumb{ width:100%; height:auto; aspect-ratio:16/9; }
  .qh-newslist-body{ justify-content:flex-start; gap:16px; }
}

/* ---------- 新闻详情(qh-news) · 多端 2560/1920/1440/440 ---------- */
.qh-news{ display:flex; gap:64px; background:#fff; border-top-left-radius:80px; border-top-right-radius:80px; padding:80px 120px; }
.qh-news-main{ flex:1; min-width:0; display:flex; flex-direction:column; gap:40px; }
.qh-news-head{ display:flex; flex-direction:column; align-items:flex-start; gap:24px; padding-bottom:40px; border-bottom:1px solid rgba(109,110,113,.2); }
.qh-news-title{ margin:0; color:#000; font-size:24px; font-family:var(--qh-font-serif); font-weight:700; line-height:34px; }
.qh-news-meta{ display:flex; flex-wrap:wrap; gap:40px; color:#000; font-size:14px; font-family:var(--qh-font-serif); line-height:20px; }
.qh-news-content{ color:#000; font-size:14px; font-family:var(--qh-font-serif); line-height:20px; }
.qh-news-content p{ margin:0 0 16px; }
.qh-news-content img{ display:block; max-width:848px; width:100%; height:auto; margin:8px 0; }
.qh-news-content h2,.qh-news-content h3,.qh-news-content strong{ color:#000; font-size:16px; font-family:var(--qh-font-serif); font-weight:700; line-height:23px; margin:16px 0; }
.qh-news-turn{ display:flex; flex-wrap:wrap; justify-content:space-between; gap:24px; color:var(--qh-text); font-size:14px; font-family:var(--qh-font-serif); line-height:20px; }
.qh-news-turn p{ margin:0; }
.qh-news-turn a{ color:var(--qh-theme); }
/* 推荐栏 */
.qh-news-aside{ flex:none; width:540px; align-self:flex-start; position:sticky; top:80px; display:flex; flex-direction:column; gap:40px; }
.qh-news-aside-title{ margin:0; color:#191A19; font-size:24px; font-family:var(--qh-font-serif); font-weight:700; line-height:34px; }
.qh-news-rec{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:24px; }
.qh-news-rec li{ margin:0; }
.qh-news-rec-link{ display:flex; gap:24px; color:inherit; text-decoration:none; }
.qh-news-rec-thumb{ flex:none; width:170.67px; height:96px; overflow:hidden; background:#e9ecef; }
.qh-news-rec-thumb img{ width:100%; height:100%; object-fit:cover; display:block; }
.qh-news-rec-body{ flex:1; min-width:0; display:flex; flex-direction:column; justify-content:space-between; }
.qh-news-rec-title{ color:#191A19; font-size:16px; font-family:var(--qh-font-serif); font-weight:700; line-height:23px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.qh-news-rec-desc{ color:#191A19; font-size:14px; font-family:var(--qh-font-serif); line-height:20px; text-align:justify; display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; overflow:hidden; }
.qh-news-rec-foot{ display:flex; align-items:flex-end; gap:16px; }
.qh-news-rec-date{ flex:1; color:#000; font-size:14px; font-family:var(--qh-font-serif); font-weight:500; line-height:20px; }
.qh-news-rec-line{ flex:none; width:80px; height:2px; background:#000; }
.qh-news-rec-link:hover .qh-news-rec-title{ color:var(--qh-theme); }
.qh-news-rec-link:hover .qh-news-rec-line{ background:var(--qh-theme); }
/* 四端 */
@media (min-width:2240px){ .qh-news{ padding-left:320px; padding-right:320px; } }
@media (min-width:940px) and (max-width:1679.98px){ .qh-news{ padding-left:64px; padding-right:64px; } .qh-news-aside{ width:400px; } }
@media (max-width:939.98px){
  .qh-news{ flex-direction:column; padding:40px 16px; border-top-left-radius:40px; border-top-right-radius:40px; }
  .qh-news-aside{ display:none; }
  .qh-news-content img{ max-width:100%; }
  .qh-news-meta{ gap:24px; }
}

/* ---------- 案例详情(qh-casedetail)· 复用新闻详情排版,样式独立便于分化 · 多端 2560/1920/1440/440 ---------- */
.qh-casedetail{ display:flex; gap:64px; background:#fff; border-top-left-radius:80px; border-top-right-radius:80px; padding:80px 120px; }
.qh-casedetail-main{ flex:1; min-width:0; display:flex; flex-direction:column; gap:40px; }
.qh-casedetail-head{ display:flex; flex-direction:column; align-items:flex-start; gap:24px; padding-bottom:40px; border-bottom:1px solid rgba(109,110,113,.2); }
.qh-casedetail-title{ margin:0; color:#000; font-size:24px; font-family:var(--qh-font-serif); font-weight:700; line-height:34px; }
.qh-casedetail-meta{ display:flex; flex-wrap:wrap; gap:40px; color:#000; font-size:14px; font-family:var(--qh-font-serif); line-height:20px; }
.qh-casedetail-content{ color:#000; font-size:14px; font-family:var(--qh-font-serif); line-height:20px; }
.qh-casedetail-cert{ width:100%; max-width:600px; margin:0 0 32px; padding:24px; background:#f5f5f7; border:1px solid #e6e8eb; border-radius:8px; box-shadow:0 2px 8px rgba(0,0,0,.04); box-sizing:border-box; }
.qh-casedetail-cert img{ width:100%; height:auto; display:block; }
.qh-casedetail-content p{ margin:0 0 16px; }
.qh-casedetail-content img{ display:block; max-width:848px; width:100%; height:auto; margin:8px 0; }
.qh-casedetail-content h2,.qh-casedetail-content h3,.qh-casedetail-content strong{ color:#000; font-size:16px; font-family:var(--qh-font-serif); font-weight:700; line-height:23px; margin:16px 0; }
.qh-casedetail-turn{ display:flex; flex-wrap:wrap; justify-content:space-between; gap:24px; color:var(--qh-text); font-size:14px; font-family:var(--qh-font-serif); line-height:20px; }
.qh-casedetail-turn p{ margin:0; }
.qh-casedetail-turn a{ color:var(--qh-theme); }
.qh-casedetail-aside{ flex:none; width:540px; align-self:flex-start; position:sticky; top:80px; display:flex; flex-direction:column; gap:40px; }
.qh-casedetail-aside-title{ margin:0; color:#191A19; font-size:24px; font-family:var(--qh-font-serif); font-weight:700; line-height:34px; }
.qh-casedetail-rec{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:24px; }
.qh-casedetail-rec li{ margin:0; }
.qh-casedetail-rec-link{ display:flex; gap:24px; color:inherit; text-decoration:none; }
.qh-casedetail-rec-thumb{ flex:none; width:170.67px; height:96px; overflow:hidden; background:#e9ecef; }
.qh-casedetail-rec-thumb img{ width:100%; height:100%; object-fit:cover; display:block; }
.qh-casedetail-rec-body{ flex:1; min-width:0; display:flex; flex-direction:column; justify-content:space-between; }
.qh-casedetail-rec-title{ color:#191A19; font-size:16px; font-family:var(--qh-font-serif); font-weight:700; line-height:23px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.qh-casedetail-rec-desc{ color:#191A19; font-size:14px; font-family:var(--qh-font-serif); line-height:20px; text-align:justify; display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; overflow:hidden; }
.qh-casedetail-rec-foot{ display:flex; align-items:flex-end; gap:16px; }
.qh-casedetail-rec-date{ flex:1; color:#000; font-size:14px; font-family:var(--qh-font-serif); font-weight:500; line-height:20px; }
.qh-casedetail-rec-line{ flex:none; width:80px; height:2px; background:#000; }
.qh-casedetail-rec-link:hover .qh-casedetail-rec-title{ color:var(--qh-theme); }
.qh-casedetail-rec-link:hover .qh-casedetail-rec-line{ background:var(--qh-theme); }
@media (min-width:2240px){ .qh-casedetail{ padding-left:320px; padding-right:320px; } }
@media (min-width:940px) and (max-width:1679.98px){ .qh-casedetail{ padding-left:64px; padding-right:64px; } .qh-casedetail-aside{ width:400px; } }
@media (max-width:939.98px){
  .qh-casedetail{ flex-direction:column; padding:40px 16px; border-top-left-radius:40px; border-top-right-radius:40px; }
  .qh-casedetail-aside{ display:none; }
  .qh-casedetail-content img{ max-width:100%; }
  .qh-casedetail-meta{ gap:24px; }
}

/* ---------- 图文列表/工程案例(qh-caselist) · 多端 2560/1920/1440/440 ---------- */
/* 基础按 1920 写:padding 120px、3列、卡片高 405、整图背景+右上日期+底部渐变标题条 */
.qh-caselist{ padding:80px 120px; }
.qh-caselist-head{ display:flex; flex-direction:column; margin-bottom:40px; }
.qh-caselist-en{ color:rgba(156,163,175,.5); font-size:24px; font-family:var(--qh-font-sans); line-height:34px; }
.qh-caselist-title{ margin:0; color:#191A19; font-size:48px; font-family:var(--qh-font-serif); font-weight:700; line-height:69px; }
.qh-caselist-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:40px; }
.qh-case-card{ position:relative; display:flex; flex-direction:column; justify-content:space-between; height:405px; overflow:hidden; color:#fff; text-decoration:none; background-color:#e9ecef; }
/* 案例卡片进场错峰(配合 wow fadeInUp,按列延迟) */
.qh-case-card:nth-child(3n+2){ animation-delay:.1s; }
.qh-case-card:nth-child(3n){ animation-delay:.2s; }
.qh-case-card-img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0; transition:transform .4s ease; }
.qh-case-card:hover .qh-case-card-img{ transform:scale(1.05); }
.qh-case-card-date{ position:relative; z-index:2; align-self:stretch; display:flex; flex-direction:column; align-items:flex-end; padding:40px; }
.qh-case-card-ym{ color:#fff; font-size:24px; font-family:var(--qh-font-serif); font-weight:700; line-height:34px; }
.qh-case-card-day{ color:#fff; font-size:32px; font-family:var(--qh-font-serif); font-weight:700; line-height:46px; }
.qh-case-card-bar{ position:relative; z-index:2; height:80px; display:flex; flex-direction:column; justify-content:center; padding:10px 40px; background:linear-gradient(180deg,rgba(0,0,0,.2) 0%,rgba(0,0,0,.5) 100%); }
.qh-case-card-title{ margin:0; color:#fff; font-size:16px; font-family:var(--qh-font-serif); font-weight:700; line-height:23px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
/* 公共分页(comm/page.html)· 页码垂直居中 + 统一样式,覆盖 PbootCMS {page:numbar} 输出的裸 a */
.pagination{ display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:6px; }
.pagination > a,
.pagination > span{ display:inline-flex; align-items:center; justify-content:center; min-width:36px; height:36px; padding:0 12px; border:1px solid #DCDFE6; border-radius:4px; color:var(--qh-text); font-size:14px; font-family:var(--qh-font-sans); line-height:1; text-decoration:none; background:#fff; cursor:pointer; transition:background .2s ease,border-color .2s ease,color .2s ease; }
.pagination > a:hover,
.pagination > span:hover{ background:var(--qh-theme); border-color:var(--qh-theme); color:#fff; text-decoration:none; }
.pagination > a.active,
.pagination > span.active,
.pagination > span.current,
.pagination > a[aria-current="page"]{ background:var(--qh-theme); border-color:var(--qh-theme); color:#fff; pointer-events:none; }
/* —— 2560(≥2240):左右内边距 320px —— */
@media (min-width:2240px){
  .qh-caselist{ padding-left:320px; padding-right:320px; }
}
/* —— 1440(940–1679):左右内边距 64px + 2列 —— */
@media (min-width:940px) and (max-width:1679.98px){
  .qh-caselist{ padding-left:64px; padding-right:64px; }
  .qh-caselist-grid{ grid-template-columns:repeat(2,1fr); }
}
/* —— 440(<940):内边距 16px、单列、标题缩小、卡片自适应高 —— */
@media (max-width:939.98px){
  .qh-caselist{ padding:40px 16px; }
  .qh-caselist-head{ margin-bottom:24px; }
  .qh-caselist-en{ font-size:18px; line-height:25px; }
  .qh-caselist-title{ font-size:32px; line-height:46px; }
  .qh-caselist-grid{ grid-template-columns:1fr; gap:16px; }
  .qh-case-card{ height:auto; min-height:200px; }
  .qh-case-card-date{ padding:24px 16px; }
  .qh-case-card-bar{ padding:10px 16px; }
}

/* ---------- 联系我们(qh-contact) · 多端 2560/1920/1440/440 ---------- */
/* 基础按 1920 写:padding 120px、4列等宽、白卡 + 72px 绿圆图标 + 浅蓝绿渐变底 */
.qh-contact{ padding:0 120px 80px; background:linear-gradient(280deg,#F7FCFD 0%,#F9FAFD 100%); }
.qh-contact-grid{ display:flex; gap:24px; }
.qh-contact-card{ flex:1 1 0; min-width:0; display:flex; flex-direction:column; align-items:center; gap:24px; padding:40px 24px; background:#fff; box-shadow:0 0 10px rgba(196,226,226,.35); text-align:center; text-decoration:none; color:#000; transition:transform .25s ease, box-shadow .25s ease; }
.qh-contact-card:hover{ transform:translateY(-4px); box-shadow:0 8px 24px rgba(196,226,226,.5); }
/* 联系卡片进场错峰(配合 wow fadeInUp,从左到右) */
.qh-contact-card:nth-child(2){ animation-delay:.1s; }
.qh-contact-card:nth-child(3){ animation-delay:.2s; }
.qh-contact-card:nth-child(4){ animation-delay:.3s; }
.qh-contact-icon{ width:72px; height:72px; flex:none; display:flex; align-items:center; justify-content:center; background:#008C68; border-radius:50%; color:#fff; font-size:32px; }
.qh-contact-body{ display:flex; flex-direction:column; align-items:center; gap:16px; }
.qh-contact-headtext{ display:flex; flex-direction:column; align-items:center; gap:8px; }
.qh-contact-title{ color:#000; font-size:24px; font-family:var(--qh-font-serif); font-weight:700; line-height:34px; }
.qh-contact-sub{ color:#000; font-size:16px; font-family:var(--qh-font-serif); font-weight:500; line-height:23px; }
.qh-contact-value{ display:flex; align-items:center; justify-content:center; gap:8px; color:#008C68; font-size:16px; font-family:var(--qh-font-serif); font-weight:700; line-height:23px; }
/* —— 2560(≥2240):左右内边距 320px —— */
@media (min-width:2240px){
  .qh-contact{ padding-left:320px; padding-right:320px; }
}
/* —— 1440(940–1679):左右内边距 64px —— */
@media (min-width:940px) and (max-width:1679.98px){
  .qh-contact{ padding-left:64px; padding-right:64px; }
}
/* —— 440(<940):内边距 16px、2列、卡片缩小、标题18/副14 —— */
@media (max-width:939.98px){
  .qh-contact{ padding:0 16px 40px; }
  .qh-contact-grid{ flex-wrap:wrap; gap:16px; }
  .qh-contact-card{ flex:1 1 calc(50% - 8px); padding:24px 16px; gap:16px; }
  .qh-contact-title{ font-size:18px; line-height:26px; }
  .qh-contact-sub{ font-size:14px; line-height:20px; }
}

/* ---------- 联系地址(qh-address) · 多端 2560/1920/1440/440 ---------- */
/* 基础按 1920 写:padding 120px、装饰背景图、左地图(400)右白信息卡 */
.qh-address{ padding:80px 120px; background:url('../images/contact-bg.png') center/cover no-repeat; }
.qh-address-row{ display:flex; gap:24px; }
.qh-address-map{ flex:1 1 0; min-width:0; height:400px; background:#e9ecef; }
/* 百度地图信息窗口:去掉投射阴影(iws*.png),保留信息内容 */
#qhAddressMap img[src*="iws"]{ display:none !important; }
.qh-address-info{ flex:1 1 0; min-width:0; height:400px; display:flex; flex-direction:column; justify-content:center; gap:24px; padding:40px; background:#fff; }
.qh-address-title{ margin:0; color:#191A19; font-size:32px; font-family:var(--qh-font-serif); font-weight:700; line-height:46px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.qh-address-div{ height:0; border:0; border-bottom:1px solid #D8D8D8; }
.qh-address-line{ margin:0; color:#191A19; font-size:18px; font-family:var(--qh-font-serif); line-height:26px; }
/* —— 2560(≥2240):左右内边距 320px —— */
@media (min-width:2240px){
  .qh-address{ padding-left:320px; padding-right:320px; }
}
/* —— 1440(940–1679):左右内边距 64px —— */
@media (min-width:940px) and (max-width:1679.98px){
  .qh-address{ padding-left:64px; padding-right:64px; }
}
/* —— 440(<940):上图下信息纵排、地图 232、标题18/信息14 —— */
@media (max-width:939.98px){
  .qh-address{ padding:40px 16px; }
  .qh-address-row{ flex-direction:column; gap:24px; }
  .qh-address-map{ flex:none; width:100%; height:232px; }
  .qh-address-info{ height:auto; padding:24px 16px; gap:16px; }
  .qh-address-title{ font-size:18px; line-height:26px; }
  .qh-address-line{ font-size:14px; line-height:20px; }
}

/* ---------- 荣誉资质 ---------- */
.qh-honor{ padding:48px 0 0; background:#fff; }
.qh-honor-head{ text-align:center; display:flex; flex-direction:column; align-items:center; gap:10px; }
.qh-honor-title{ margin:0; font-size:32px; font-family:var(--qh-font-serif); font-weight:700; line-height:46px; color:#000; }
.qh-honor-sub{ margin:0; max-width:900px; font-size:18px; font-family:var(--qh-font-serif); font-weight:600; line-height:26px; color:#000; }
.qh-honor-body{ background:url('../images/honor-bg-new.jpg') center/cover no-repeat #fff; padding:0 0 40px; margin-top:40px; }
/* 幻灯片底部圆点分页 */
.banner-pagination{ position:absolute; bottom:28px; left:0; right:0; z-index:10; text-align:center; }
.banner-pagination .swiper-pagination-bullet{ width:10px; height:10px; margin:0 5px; background:rgba(255,255,255,.55); opacity:1; border-radius:50%; transition:width .25s ease, background .25s ease; }
.banner-pagination .swiper-pagination-bullet-active{ width:28px; border-radius:5px; background:#fff; }
/* 幻灯片内文字容器撑满整宽(覆盖 Bootstrap .container 的 max-width 断点限制,仅限幻灯片) */
.swiper-container .container{ width:100%; max-width:100%; }
.qh-honor-body .qh-container{ display:flex; flex-direction:column; gap:24px; }
.qh-honor-row{ display:flex; flex-wrap:wrap; gap:20px; justify-content:center; align-items:flex-start; }
.qh-honor-item{ overflow:hidden; background:#eef0f2; }
.qh-honor-item img{ width:auto; height:100%; object-fit:contain; object-position:center; display:block; }
.qh-honor-big{ display:none; }
.qh-honor-big .qh-honor-item{ display:flex; align-items:center; justify-content:center; flex:0 0 auto; height:362px; box-shadow:0 4px 10px rgba(0,0,0,.2); }
.qh-honor-small{ overflow:hidden; }
.qh-honor-swiper{ overflow:hidden; }
.qh-honor-swiper .swiper-slide{ width:auto; margin-right:16px; }
/* 连续滚动:纯 CSS 无缝滚动(wrapper 内容由 JS 复制一份,-50% 处无缝衔接),匀速 + 悬停暂停 */
.qh-honor-swiper .swiper-wrapper{
  display:flex; flex-wrap:nowrap; width:max-content; transition:none;
  animation:qh-honor-scroll 38s linear infinite;
}
.qh-honor-swiper:hover .swiper-wrapper{ animation-play-state:paused; }
@keyframes qh-honor-scroll{
  from{ transform:translate3d(0,0,0); }
  to{ transform:translate3d(-50%,0,0); }
}
.qh-honor-small .qh-honor-item{ height:320px; flex:0 0 auto; border-radius:4px; border:2px solid #fff; box-shadow:0 2px 8px rgba(0,0,0,.12); }
.qh-honor-small .qh-honor-item img{ width:auto; height:100%; object-fit:cover; }
.qh-honor-more-wrap{ text-align:center; margin-top:8px; }
.qh-honor-more{ display:inline-flex; align-items:center; border-radius:999px; padding:11px 24px; font-size:16px; font-family:var(--qh-font-serif); line-height:23px; color:#000; transition:all .2s; }
.qh-honor-more:hover{ background:#000; color:#fff; }
/* PC 端:轮播上方留出内边距(移动端贴顶不变) */
@media (min-width:940px){
  .qh-honor-body{ padding-top:40px; }
}
/* 荣誉资质 · 多端适配(2560/1920/1440/440) */
@media (min-width:2240px){ .qh-honor-body .qh-container{ padding-left:320px; padding-right:320px; } }
@media (min-width:940px) and (max-width:1679.98px){ .qh-honor-body .qh-container{ padding-left:64px; padding-right:64px; } }
@media (max-width:939.98px){
  .qh-honor{ padding-top:32px; }
  .qh-honor-body{ padding:0 0 32px; margin-top:24px; }
  .qh-honor-body .qh-container{ display:block; padding:0; }
  .qh-honor-big{ display:none; }
  .qh-honor-small .qh-honor-item{ height:200px; }
  .qh-honor-more-wrap{ display:none; }
}
@keyframes qh-honorfade{
  0%,30%{ opacity:1; }
  40%,100%{ opacity:0; }
}

/* ---------- 通用底部 ---------- */
.qh-footer{ background:#111827; color:#fff; padding-top:80px; }
.qh-footer-top{ display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:24px; padding-bottom:40px; border-bottom:1px solid rgba(255,255,255,.2); }
.qh-footer-brand{ display:flex; align-items:center; gap:16px; }
.qh-footer-logo{ width:40px; height:40px; flex:none; }
.qh-footer-cname{ margin:0; font-size:24px; font-family:var(--qh-font-serif); font-weight:900; line-height:34px; }
.qh-footer-ename{ margin:0; font-size:13px; font-family:var(--qh-font-sans); line-height:14px; opacity:.8; }
.qh-footer-nav{ display:flex; flex-wrap:wrap; gap:40px; }
.qh-footer-nav a{ color:#fff; font-size:14px; font-family:var(--qh-font-serif); font-weight:600; }
.qh-footer-nav a:hover{ opacity:.7; }
.qh-footer-main{ display:flex; flex-wrap:wrap; justify-content:space-between; align-items:flex-end; gap:24px; padding:40px 0; }
.qh-footer-info{ flex:1 1 180px; }
.qh-footer-info-title{ margin:0 0 16px; font-size:20px; font-family:var(--qh-font-serif); font-weight:700; }
.qh-footer-info p{ margin:0 0 10px; font-size:14px; font-family:var(--qh-font-serif); font-weight:600; display:flex; align-items:center; gap:16px; }
.qh-footer-info p i{ width:16px; text-align:center; flex:none; }
.qh-footer-links{ display:block; }
.qh-footer-links a{ display:inline-block; color:inherit; text-decoration:none; padding-right:12px; margin-right:12px; border-right:1px solid; transition:color .2s ease; }
.qh-footer-links a:last-child{ padding-right:0; margin-right:0; border-right:none; }
.qh-footer-links a:hover{ color:var(--qh-theme); }
.qh-footer-qrcodes{ display:flex; flex-wrap:wrap; gap:36px; }
.qh-footer-qr{ text-align:center; }
.qh-footer-qr img{ width:160px; height:160px; object-fit:cover; }
.qh-footer-qr p{ margin:16px 0 0; font-size:14px; font-family:var(--qh-font-serif); font-weight:600; }
.qh-footer-copyright{ padding:16px 0; border-top:1px solid rgba(255,255,255,.1); }
.qh-footer-copyright .qh-container{ display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:16px 40px; }
.qh-footer-copy-left{ display:flex; flex-wrap:wrap; gap:40px; }
.qh-footer-copyright span{ color:#fff; font-size:12px; font-family:var(--qh-font-serif); line-height:17px; opacity:.6; }
/* 底部 · 移动端 */
@media (max-width:939.98px){
  .qh-footer{ padding-top:40px; }
  .qh-footer-top{ padding-bottom:24px; }
  .qh-footer-nav{ display:none; }
  .qh-footer-logo{ width:32px; height:32px; }
  .qh-footer-cname{ font-size:14px; line-height:20px; }
  .qh-footer-ename{ font-size:6px; line-height:8px; }
  .qh-footer-main{ flex-direction:column; align-items:stretch; padding:24px 0; }
  .qh-footer-qr{ flex:1 1 0; min-width:0; }
  .qh-footer-qr img{ width:100%; max-width:120px; height:auto; aspect-ratio:1/1; }
  .qh-footer-qrcodes{ justify-content:space-between; gap:16px; }
  .qh-footer-copyright .qh-container{ flex-direction:column; align-items:flex-start; }
  .qh-footer-copy-left{ flex-direction:column; gap:16px; }
}

/* ---------- 精选合作案例 ---------- */
.qh-case{ padding:80px 0; }
.qh-case-head{ text-align:center; display:flex; flex-direction:column; align-items:center; gap:10px; margin-bottom:40px; }
.qh-case-title{ margin:0; font-size:32px; font-family:var(--qh-font-serif); font-weight:700; line-height:46px; color:#000; }
.qh-case-sub{ margin:0; font-size:18px; font-family:var(--qh-font-serif); font-weight:600; line-height:26px; color:#000; }
.qh-case-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.qh-case-item{ position:relative; height:320px; min-height:200px; overflow:hidden; transition:box-shadow .35s ease; }
.qh-case-bg{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0; }
.qh-case-mask{ position:absolute; inset:0; background:transparent; z-index:1; transition:background .35s ease; }
.qh-case-info{ position:absolute; left:0; right:0; bottom:0; z-index:2; padding:16px 24px; display:flex; flex-direction:column; justify-content:flex-end; background:rgba(0,0,0,.3); transition:top .35s ease, background .35s ease; }
/* detail(图标+摘要+线)默认收起,悬浮展开——还原设计稿"第一条"的完整态 */
.qh-case-detail{ max-height:0; opacity:0; overflow:hidden; transition:max-height .35s ease, opacity .35s ease; }
.qh-case-icon{ display:block; width:28px; height:28px; max-height:0; opacity:0; margin:0; overflow:hidden; transition:max-height .35s ease, opacity .35s ease, margin .35s ease; }
.qh-case-desc{ margin:0 0 10px; color:#fff; font-size:12px; font-family:var(--qh-font-serif); font-weight:600; line-height:17px; text-align:justify; display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; overflow:hidden; }
.qh-case-line{ display:block; width:0; height:2px; background:#fff; margin:0; opacity:0; transition:width .35s ease, opacity .35s ease, margin .35s ease; }
.qh-case-name{ margin:0; color:#fff; font-size:16px; font-family:var(--qh-font-serif); font-weight:600; line-height:23px; text-shadow:0 1px 4px rgba(0,0,0,.55); transition:font-size .25s ease, font-weight .25s ease; }
/* 悬浮:浮起阴影 + 蒙层加深渐变 + 展开图标/摘要/线 + 标题放大(触屏设备无 hover 时保持只显示标题) */
.qh-case-item:hover{ box-shadow:0 10px 24px rgba(0,0,0,.18); z-index:1; }
.qh-case-item:hover .qh-case-mask{ background:transparent; }
.qh-case-item:hover .qh-case-icon{ max-height:28px; opacity:1; margin-bottom:10px; }
.qh-case-item:hover .qh-case-line{ width:80px; opacity:1; margin:10px 0 12px; }
.qh-case-item:hover .qh-case-detail{ max-height:160px; opacity:1; }
.qh-case-item:hover .qh-case-name{ font-size:18px; font-weight:700; line-height:26px; }
.qh-case-item:hover .qh-case-info{ top:0; }
/* 案例 · 多端(2560/1920 卡片 320;1440 档 240;<940 横滑2卡) */
@media (max-width:1679.98px) and (min-width:940px){
  .qh-case-item{ height:240px; min-height:0; }
}
@media (max-width:939.98px){
  .qh-case{ padding:40px 0; }
  .qh-case-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:16px; }
  .qh-case-item{ height:240px; min-height:0; }
  .qh-case-grid::-webkit-scrollbar{ display:none; }
}

/* 移动端独立案例区(按设计稿;PC 用上方 .qh-case,互不共用,避免相互干扰) */
.qh-case-m{ display:none; }
@media (max-width:939.98px){
  body{ overflow-x:hidden; }
  .qh-case{ display:none; }
  .qh-case-m{ display:block; padding:40px 0; }
  .qh-case-m-head{ display:flex; flex-direction:column; align-items:center; gap:10px; padding:0 16px; text-align:center; }
  .qh-case-m-title{ margin:0; font-size:24px; font-family:var(--qh-font-serif); font-weight:700; line-height:34px; color:#000; }
  .qh-case-m-sub{ margin:0; font-size:15px; font-family:var(--qh-font-serif); font-weight:600; line-height:22px; color:#000; }
  .qh-case-m-swiper{ overflow:hidden; margin-top:24px; }
  .qh-case-m-track{ display:flex; flex-wrap:nowrap; gap:16px; overflow-x:auto; scrollbar-width:none; padding:0 16px; min-width:0; -webkit-overflow-scrolling:touch; }
  .qh-case-m-track::-webkit-scrollbar{ display:none; }
  .qh-case-m-card{ position:relative; flex:0 0 calc(100% - 32px); min-width:0; height:240px; overflow:hidden; background:#111; text-decoration:none; }
  .qh-case-m-bg{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; }
  .qh-case-m-info{ position:absolute; left:0; right:0; bottom:0; z-index:1; padding:12px 16px; background:rgba(0,0,0,.35); display:flex; flex-direction:column; gap:8px; }
  .qh-case-m-card.is-active .qh-case-m-info{ padding:16px; background:linear-gradient(0deg,rgba(0,0,0,.75) 0%,rgba(0,0,0,0) 100%); gap:10px; }
  .qh-case-m-icon{ display:none; width:24px; height:24px; }
  .qh-case-m-name{ margin:0; color:#fff; font-size:16px; font-family:var(--qh-font-serif); font-weight:600; line-height:23px; }
  .qh-case-m-card.is-active .qh-case-m-name{ font-size:18px; font-weight:700; line-height:26px; }
  .qh-case-m-line{ display:none; width:80px; height:2px; background:#fff; }
  .qh-case-m-desc{ display:none; margin:0; color:#fff; font-size:12px; font-family:var(--qh-font-serif); font-weight:600; line-height:17px; text-align:justify; }
  .qh-case-m-card.is-active .qh-case-m-icon,
  .qh-case-m-card.is-active .qh-case-m-line{ display:block; }
  .qh-case-m-card.is-active .qh-case-m-desc{ display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; overflow:hidden; }
  .qh-case-m-toolbar{ display:flex; justify-content:space-between; align-items:center; padding:18px 16px 0; }
  .qh-case-m-pager{ display:flex; align-items:baseline; gap:10px; color:#000; font-family:var(--qh-font-serif); }
  .qh-case-m-cur{ font-size:24px; font-weight:900; line-height:34px; }
  .qh-case-m-sep{ font-size:14px; color:#9CA3AF; }
  .qh-case-m-total{ font-size:16px; font-weight:600; line-height:23px; }
  .qh-case-m-arrows{ display:flex; gap:16px; }
  .qh-case-m-arrow{ width:36px; height:36px; display:flex; align-items:center; justify-content:center; background:transparent; border:0; color:#000; font-size:26px; cursor:pointer; padding:0; }
  .qh-case-m-arrow[disabled]{ color:#9CA3AF; opacity:.4; cursor:default; }
}

/* ---------- 服务分类(手风琴式) ---------- */
.qh-service{ position:relative; display:flex; min-height:600px; background:linear-gradient(180deg,rgba(0,0,0,.32) 0%,rgba(0,0,0,0) 55%), url('../images/service-bg.png') center/cover no-repeat #111; }
.qh-service-head{ position:absolute; top:0; left:0; right:0; z-index:3; padding-top:56px; text-align:center; pointer-events:none; }
.qh-service-title{ margin:0; font-size:32px; font-family:var(--qh-font-serif); font-weight:700; line-height:46px; color:#fff; }
.qh-service-sub{ margin:10px 0 0; font-size:18px; font-family:var(--qh-font-serif); font-weight:600; line-height:26px; color:#fff; }
.qh-service-swiper{ position:relative; flex:1 1 auto; align-self:stretch; overflow:hidden; padding:0 24px; }
.qh-service-list{ position:relative; z-index:1; width:100%; min-height:100%; align-items:stretch; }
.qh-service-item{ position:relative; min-width:0; height:718px; display:flex; flex-direction:column; justify-content:flex-end; align-items:center; gap:10px; padding:0 12px 56px; color:#fff; text-align:center; box-sizing:border-box; cursor:pointer; transition:padding .3s ease; }
/* 背景层:默认透明,悬浮/选中时显示(无黑色蒙版、无淡入,直接切换) */
.qh-service-item::before{ content:''; position:absolute; inset:0; z-index:0; background:var(--svc-bg, url('../images/service-active.jpg')) center/cover no-repeat; opacity:0; }
.qh-service-detail, .qh-service-more{ position:relative; z-index:1; }
.qh-service-num{ font-size:24px; font-family:var(--qh-font-serif); font-weight:700; line-height:34px; color:#fff; }
.qh-service-name{ font-size:24px; font-family:var(--qh-font-serif); font-weight:700; line-height:34px; color:#fff; white-space:nowrap; }
.qh-service-item--active{ background:url('../images/service-active.jpg') center/cover no-repeat; align-items:flex-start; text-align:left; padding:0 32px 56px; }
.qh-service-item--active .qh-service-num{ font-size:40px; line-height:57px; }
.qh-service-item--active .qh-service-name{ font-size:32px; line-height:46px; }
/* detail 默认显示(简版:仅编号+名称,居中贴底) */
.qh-service-detail{ display:flex; flex-direction:column; gap:10px; align-items:center; transition:margin-bottom .35s ease, gap .35s ease; }
.qh-service-item--active .qh-service-detail{ display:flex; flex-direction:column; gap:16px; margin-bottom:40px; }
.qh-service-line{ width:80px; height:2px; background:#fff; }
.qh-service-desc{ margin:0; font-size:16px; font-family:var(--qh-font-serif); font-weight:700; line-height:23px; color:#fff; }
.qh-service-more{ font-size:16px; font-family:var(--qh-font-serif); line-height:23px; color:#fff; }
/* 展开区(line/desc/more):grid 0fr→1fr 按实际高度平滑撑开,杜绝 max-height 与换行高度不匹配的跳动 */
.qh-service-extra{ display:grid; grid-template-rows:0fr; opacity:0; transform:translateY(16px); transition:grid-template-rows .35s ease, opacity .3s ease, transform .35s ease; }
.qh-service-extra-inner{ overflow:hidden; min-height:0; display:flex; flex-direction:column; gap:12px; align-items:flex-start; }
.qh-service-num, .qh-service-name{ transition:font-size .3s ease, line-height .3s ease; }
/* 选中态(--on):PC 鼠标悬浮与移动端当前 slide 共用,所有设备无条件生效 */
.qh-service-item--on::before{ opacity:1; }
.qh-service-item--on{ align-items:flex-start; text-align:left; padding:0 32px 56px; }
.qh-service-item--on .qh-service-detail{ align-items:flex-start; gap:16px; margin-bottom:40px; }
.qh-service-item--on .qh-service-num{ font-size:40px; line-height:57px; }
.qh-service-item--on .qh-service-name{ font-size:32px; line-height:46px; }
.qh-service-item--on .qh-service-extra{ grid-template-rows:1fr; opacity:1; transform:translateY(0); }
/* PC 鼠标悬浮复用同一套展开样式(触屏设备无 hover,自动跳过) */
@media (hover:hover){
  .qh-service-item:hover::before{ opacity:1; }
  .qh-service-item:hover{ align-items:flex-start; text-align:left; padding:0 32px 56px; }
  .qh-service-item:hover .qh-service-detail{ align-items:flex-start; gap:16px; margin-bottom:40px; }
  .qh-service-item:hover .qh-service-num{ font-size:40px; line-height:57px; }
  .qh-service-item:hover .qh-service-name{ font-size:32px; line-height:46px; }
  .qh-service-item:hover .qh-service-extra{ grid-template-rows:1fr; opacity:1; transform:translateY(0); }
}
/* 左右切换按钮(项数不超过一屏时自动隐藏) */
.qh-service-arrow{ position:absolute; top:50%; transform:translateY(-50%); z-index:5; width:48px; height:48px; border-radius:50%; display:flex; align-items:center; justify-content:center; background:rgba(255,255,255,.18); color:#fff; cursor:pointer; font-size:30px; -webkit-tap-highlight-color:transparent; transition:background .25s ease, opacity .25s ease; }
.qh-service-arrow:hover{ background:rgba(255,255,255,.4); }
.qh-service-prev{ left:24px; }
.qh-service-next{ right:24px; }
.qh-service-arrow.swiper-button-disabled{ opacity:0; pointer-events:none; }
/* 服务分类 · 多端适配(2560/1920/1440/440) */
@media (min-width:2240px){ .qh-service-swiper{ padding-left:320px; padding-right:320px; } .qh-service{ min-height:718px; } }
@media (max-width:1679.98px) and (min-width:940px){ .qh-service-swiper{ padding-left:64px; padding-right:64px; } .qh-service-item{ height:718px; } }
@media (max-width:939.98px){
  .qh-service{ min-height:0; }
  .qh-service-head{ position:static; padding:40px 16px 24px; }
  .qh-service-swiper{ padding:0 16px; }
  .qh-service-item{ height:460px; }
  .qh-service-head{ display:none; }
  .qh-service-arrow{ width:40px; height:40px; font-size:24px; }
  .qh-service-prev{ left:8px; }
  .qh-service-next{ right:8px; }
  /* 文字相应缩小 */
  .qh-service-num{ font-size:20px; line-height:28px; }
  .qh-service-name{ font-size:20px; line-height:28px; }
  .qh-service-item--on .qh-service-num{ font-size:30px; line-height:42px; }
  .qh-service-item--on .qh-service-name{ font-size:24px; line-height:34px; }
  .qh-service-desc{ font-size:14px; line-height:20px; }
  .qh-service-more{ font-size:14px; line-height:20px; }
  .qh-service-item--on .qh-service-detail{ gap:12px; margin-bottom:28px; }
}

/* ---------- 服务客户(qh-clients) · 多端 2560/1920/1440/440 ---------- */
.qh-clients{ padding:0 120px; background:url('../images/clients-bg.png') center/cover no-repeat; }
.qh-clients-head{ display:flex; flex-direction:column; align-items:center; gap:10px; padding-top:80px; }
.qh-clients-title{ margin:0; color:#000; font-size:32px; font-family:var(--qh-font-serif); font-weight:700; line-height:46px; }
.qh-clients-sub{ margin:0; color:#000; font-size:18px; font-family:var(--qh-font-serif); font-weight:600; line-height:26px; }
.qh-clients-grid{ display:grid; grid-template-columns:repeat(8,1fr); gap:16px; padding:40px 0 80px; min-height:544px; }
.qh-clients-logo{ height:94px; display:flex; align-items:center; justify-content:center; padding:16px; background:#fff; border-radius:8px; box-shadow:0 0 10px rgba(0,0,0,.1); transition:box-shadow .3s ease; }
.qh-clients-logo img{ height:70px; width:auto; max-width:100%; object-fit:contain; display:block; }
.qh-clients-logo:hover{ box-shadow:0 8px 24px rgba(0,0,0,.1); }
/* 2560(≥2240):左右内边距 320 */
@media (min-width:2240px){ .qh-clients{ padding-left:320px; padding-right:320px; } }
/* 1440(940–1679):左右内边距 64 */
@media (min-width:940px) and (max-width:1679.98px){ .qh-clients{ padding-left:64px; padding-right:64px; } }
/* 440(<940):左右 16、标题 padding-top 40、logo 2 列 */
@media (max-width:939.98px){
  .qh-clients{ padding:0 16px 24px; }
  .qh-clients-head{ padding-top:24px; }
  .qh-clients-grid{ grid-template-rows:repeat(4,auto); grid-auto-flow:column; gap:16px; padding:24px 0; overflow-x:auto; }
  .qh-clients-logo{ width:190px; }
}
/* 版块标题/副标题:移动端统一缩小(置于各模块基础字号之后以确保覆盖) */
@media (max-width:939.98px){
  .qh-honor-title, .qh-case-title, .qh-clients-title, .qh-about-title{ font-size:24px; line-height:34px; }
  .qh-honor-sub, .qh-case-sub, .qh-clients-sub{ font-size:15px; line-height:22px; }
  .qh-about-slogan{ font-size:14px; line-height:20px; }
}

/* ---------- 响应式 ---------- */
@media (max-width:991.98px){
  .qh-navbar{ height:auto; padding:8px 16px; }
  .qh-navbar .navbar-collapse{ padding-top:10px; padding-bottom:64px; max-height:calc(100vh - 72px); overflow-y:auto; }
  .qh-navbar .navbar-nav{ gap:8px; flex-direction:column; align-items:flex-start; width:100%; }
  .qh-navbar .navbar-nav .nav-link{ line-height:44px; }
  .qh-stat{ flex:1 1 calc(50% - 8px); }
}
@media (max-width:575.98px){
  .qh-stat{ flex:1 1 100%; }
}

/* ---------- 幻灯片高度(≥1920 为 628px,其余为 628px;均减去导航栏 72px) ---------- */
@media (min-width:1920px){
  .swiper-container .slideshow{ height:628px;object-fit: cover; }
}
@media (max-width:1919.98px){
  .swiper-container .slideshow{ height:628px;object-fit: cover; }
}
/* 移动端(<940):幻灯片降到 240px */
@media (max-width:939.98px){
  .swiper-container .slideshow{ height:240px; object-fit: cover; }
}

/* ---------- 幻灯片高级感(fade 淡入 + 文字分步入场 + 横线分页器) ---------- */
.swiper-slide .slide-title,
.swiper-slide .slide-sub{ opacity:0; transform:translateY(40px); transition:opacity .9s ease, transform .9s cubic-bezier(.22,1,.36,1); }
.swiper-slide-active .slide-title{ opacity:1; transform:none; transition-delay:.45s; }
.swiper-slide-active .slide-sub{ opacity:1; transform:none; transition-delay:.7s; }
/* 幻灯片文字层(container 内,随 slide 同步) */
.swiper-slide{ position:relative; }
.swiper-slide > .container{ position:absolute; inset:0; z-index:2; pointer-events:none; }
.slide-text{ position:absolute; top:30%; left:0; right:0; color:#fff; text-align:center; padding:0 15px; }
.slide-text .slide-title{ font-family:var(--qh-font-serif); font-weight:700; font-size:64px; line-height:1.2; }
.slide-text .slide-sub{ font-family:var(--qh-font-serif); font-weight:600; font-size:28px; line-height:1.5; margin-top:24px; }
/* 移动端(<940):幻灯片文字对应 240px 高度缩小(须置于上两条全局字号之后,否则被同特异性规则覆盖) */
@media (max-width:939.98px){
  .slide-text .slide-title{ font-size:28px; line-height:1.3; }
  .slide-text .slide-sub{ font-size:14px; line-height:1.5; margin-top:10px; }
}
.slide-img{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center; }
.slide-img img{ height:100%; width:auto; max-width:100%; object-fit:contain; opacity:0; transform:translateY(40px); transition:opacity 1s ease, transform 1s cubic-bezier(.22,1,.36,1); }
.swiper-slide-active .slide-img img{ opacity:1; transform:none; transition-delay:.3s; }

/* ============ 导航多级菜单(二级下拉 / 三级侧拉) ============ */
.qh-navbar .nav-item{ position:relative; }

/* 一级:有子菜单时,链接末尾加下拉箭头(纯 CSS :has 判断,后台无子级则不显示) */
.qh-navbar .nav-item:has(.qh-submenu li) > .nav-link::after{
  content:'\f107';
  display:inline-block;
  font:normal normal 900 12px/1 'FontAwesome';
  margin-left:6px; opacity:.5;
  transition:transform .25s ease;
}
.qh-navbar .nav-item:has(.qh-submenu li):hover > .nav-link::after{ transform:rotate(180deg); }

/* 二级菜单容器 */
.qh-submenu{
  position:absolute; top:100%; left:50%;
  transform:translate(-50%,12px);
  min-width:210px; margin:0; padding:8px 0;
  list-style:none; background:#fff; border-radius:8px;
  box-shadow:0 12px 32px rgba(17,24,39,.14);
  border:1px solid rgba(17,24,39,.06);
  opacity:0; visibility:hidden;
  transition:opacity .25s ease, transform .25s ease, visibility .25s;
  z-index:1000;
}
.qh-submenu li{ position:relative; }
.qh-submenu > li > a{
  display:block; padding:10px 24px;
  font-family:var(--qh-font-serif); font-size:14px; font-weight:600;
  color:var(--qh-text); white-space:nowrap;
  transition:color .2s ease, background .2s ease, padding-left .2s ease;
}
.qh-submenu > li > a:hover,
.qh-submenu > li.active > a{ color:var(--qh-theme); background:#eef8f1; padding-left:28px; }

/* 二级:有三级时,右侧加右箭头 */
.qh-submenu > li:has(.qh-submenu-3 li) > a::after{
  content:'\f105';
  float:right;
  font:normal normal 900 14px/1 'FontAwesome';
  margin-left:16px; opacity:.5;
}

/* 三级菜单容器(侧拉) */
.qh-submenu-3{
  position:absolute; top:-9px; left:100%;
  transform:translateX(16px);
  min-width:180px; margin:0; padding:8px 0;
  list-style:none; background:#fff; border-radius:8px;
  box-shadow:0 12px 32px rgba(17,24,39,.14);
  border:1px solid rgba(17,24,39,.06);
  opacity:0; visibility:hidden;
  transition:opacity .25s ease, transform .25s ease, visibility .25s;
  z-index:1001;
}
.qh-submenu-3 > li > a{
  display:block; padding:10px 24px;
  font-family:var(--qh-font-serif); font-size:14px; font-weight:600;
  color:var(--qh-text); white-space:nowrap;
  transition:color .2s ease, background .2s ease, padding-left .2s ease;
}
.qh-submenu-3 > li > a:hover,
.qh-submenu-3 > li.active > a{ color:var(--qh-theme); background:#eef8f1; padding-left:28px; }

/* PC 端 hover 触发 + 鼠标穿越缓冲区(避免移出即隐藏) */
@media (min-width:992px){
  .qh-navbar .nav-item:has(.qh-submenu li)::after{
    content:''; position:absolute; top:100%; left:0; right:0; height:14px;
  }
  .qh-navbar .nav-item:has(.qh-submenu li):hover > .qh-submenu{
    opacity:1; visibility:visible; transform:translate(-50%,4px);
  }
  .qh-submenu > li:has(.qh-submenu-3 li):hover > .qh-submenu-3{
    opacity:1; visibility:visible; transform:translateX(4px);
  }
  /* 二级到三级 hover 缓冲区:覆盖新增 8px 间隙,避免鼠标穿越时三级菜单隐藏 */
  .qh-submenu > li:has(.qh-submenu-3 li)::after{
    content:''; position:absolute; top:0; bottom:0; left:100%; width:14px;
  }
}

/* 移动端:子菜单平铺展开(随汉堡菜单一起显示,不依赖 hover) */
@media (max-width:991.98px){
  .qh-navbar .nav-item{ position:static; }
  .qh-submenu,
  .qh-submenu-3{
    position:static; transform:none;
    opacity:1; visibility:visible;
    min-width:0; padding:2px 0 6px 16px; margin:4px 0 0;
    background:transparent; border:0; border-radius:0; box-shadow:none;
  }
  .qh-submenu > li > a,
  .qh-submenu-3 > li > a{ padding:8px 6px; font-size:14px; }
  .qh-submenu > li > a:hover,
  .qh-submenu-3 > li > a:hover,
  .qh-submenu > li.active > a,
  .qh-submenu-3 > li.active > a{ background:transparent; padding-left:6px; }
  .qh-navbar .nav-item:has(.qh-submenu li) > .nav-link::after,
  .qh-submenu > li:has(.qh-submenu-3 li) > a::after{ display:none; }
}

/* ---------- 关于我们详情页(qh-corp) · 多端 2560/1920/1440/440 ---------- */
/* 与首页 .qh-about 区分,避免重名覆盖。基础按 1920 写 */
.qh-corp{ width:100%; background:url('../images/contact-bg.png') center top/100% auto no-repeat; }
.qh-corp-intro{ display:flex; align-items:flex-start; gap:40px; padding:80px 120px 0; overflow:hidden; }
.qh-corp-head{ width:640px; flex:none; display:flex; flex-direction:column; gap:8px; }
/* GEO:板块标题由 span 语义化为 h2,统一清零浏览器默认 margin,避免与设计稿间距产生偏移 */
.qh-corp-title,.qh-certs-title,.qh-industry-title,.qh-team-title{ margin:0; }
.qh-corp-title{ color:#191A19; font-size:48px; font-family:var(--qh-font-serif); font-weight:700; line-height:69px; }
.qh-corp-en{ color:#191A19; font-size:16px; font-family:var(--qh-font-sans); line-height:22px; }
.qh-corp-text{ flex:1; min-width:0; display:flex; flex-direction:column; gap:16px; }
.qh-corp-text p{ margin:0; color:#191A19; font-size:16px; font-family:var(--qh-font-serif); font-weight:500; line-height:23px; text-align:justify; }
.qh-corp-text strong{ font-weight:700; }
.qh-corp-gallery{ display:flex; flex-direction:column; gap:16px; padding:0 120px 80px; }
.qh-corp-cover{ width:100%; }
.qh-corp-cover img{ width:100%; height:auto; display:block; }
.qh-corp-thumb img{ width:100%; height:100%; object-fit:contain; display:block; }
.qh-corp-thumbs{ display:flex; gap:16px; }
.qh-corp-thumb{ flex:1; min-width:0; height:254px; overflow:hidden; background:#f5f5f5; }
/* —— 2560(≥2240):左右内边距 320、大图 580、小图 291 —— */
@media (min-width:2240px){
  .qh-corp-intro{ padding-left:320px; padding-right:320px; }
  .qh-corp-gallery{ padding-left:320px; padding-right:320px; }
  .qh-corp-thumb{ height:291px; }
}
/* —— 1440(940–1679):左右内边距 64、标题块 500、intro 自适应高、大图 400、小图 197 —— */
@media (min-width:940px) and (max-width:1679.98px){
  .qh-corp-intro{ padding-left:64px; padding-right:64px; min-height:0; }
  .qh-corp-head{ width:500px; }
  .qh-corp-gallery{ padding-left:64px; padding-right:64px; }
  .qh-corp-thumb{ height:197px; }
}
/* —— 440(<940):intro 纵列居中、标题 32/英文 14、gallery 16、大图 188、小图纵列 188 —— */
@media (max-width:939.98px){
  .qh-corp-intro{ flex-direction:column; align-items:center; min-height:0; padding:24px 16px; }
  .qh-corp-head{ width:auto; align-items:center; }
  .qh-corp-title{ font-size:28px; line-height:40px; }
  .qh-corp-en{ font-size:14px; line-height:20px; }
  .qh-corp-text{ width:100%; }
  .qh-corp-gallery{ padding-left:16px; padding-right:16px; padding-bottom:24px; }
  .qh-corp-thumbs{ flex-direction:column; }
  .qh-corp-thumb{ height:188px; }
}

/* ---------- 资质荣誉证书轮播(qh-certs) · 多端 2560/1920/1440/440 ---------- */
/* 与首页 .qh-honor 区分,避免 class 重名覆盖。基础按 1920 写 */
.qh-certs{ padding:80px 120px; background:url('../images/certs-honor-bg.jpg') center/cover no-repeat, linear-gradient(180deg, rgba(221,233,247,0) 0%, #DDE9F7 100%); overflow:hidden; }
.qh-certs-inner{ display:flex; flex-direction:column; align-items:center; gap:40px; }
.qh-certs-head{ display:flex; flex-direction:column; align-items:center; gap:8px; }
.qh-certs-title{ color:#191A19; font-size:48px; font-family:var(--qh-font-serif); font-weight:700; line-height:69px; }
.qh-certs-en{ color:#191A19; font-size:16px; font-family:var(--qh-font-sans); line-height:22px; }
.qh-certs-desc{ margin:0; max-width:900px; color:#191A19; font-size:16px; font-family:var(--qh-font-serif); font-weight:500; line-height:23px; text-align:center; }
.qh-certs-stage{ position:relative; width:100%; display:flex; flex-direction:column; gap:0px; }
.qh-certs-row{ position:relative; width:100%; }
.qh-certs-swiper{ width:100%; overflow:visible; }
.qh-certs-clip{ width:calc(100% - 144px); margin:0 72px; padding:60px 0 0; overflow:hidden; }
.qh-certs-swiper .swiper-wrapper{ align-items:center; }
.qh-certs-swiper .swiper-slide{ width:auto; display:flex; align-items:center; justify-content:center; transition:transform .35s ease; }
.qh-certs-cert{ width:234px; height:180px; background:#fff; box-shadow:0 4px 16px rgba(170,198,232,.3); overflow:hidden; }
.qh-certs-swiper--bottom .qh-certs-cert{ width:149px; height:200px; }
.qh-certs-cert img{ width:100%; height:100%; object-fit:cover; display:block; }
.qh-certs-swiper .swiper-slide-active{ transform:scale(1.25); transform-origin:bottom center; z-index:2; }
.qh-certs-swiper .swiper-slide-active .qh-certs-cert{ box-shadow:0 8px 24px rgba(170,198,232,.55); }
.qh-certs-arrow{ position:absolute; top:50%; transform:translateY(-50%); width:24px; height:24px; border:2px solid #fff; border-radius:50%; background:transparent; display:flex; align-items:center; justify-content:center; cursor:pointer; font-size:14px; color:#fff; z-index:10; transition:background .2s ease, color .2s ease; }
.qh-certs-arrow:hover{ background:#fff; color:var(--qh-theme); }
.qh-certs-arrow[class*="prev"]{ left:0; }
.qh-certs-arrow[class*="next"]{ right:0; }
/* 展台底座:衬托轮播证书,营造"台上展示"效果(透明底 PNG,居中略宽,上移贴近证书底部) */
.qh-certs-podium{ display:block; width:100%; max-width:none; margin-top:-10px; pointer-events:none; -webkit-user-select:none; user-select:none; }
/* —— 2560(≥2240):左右内边距 320 —— */
@media (min-width:2240px){
  .qh-certs{ padding-left:320px; padding-right:320px; }
}
/* —— 1440(940–1679):左右内边距 64 —— */
@media (min-width:940px) and (max-width:1679.98px){
  .qh-certs{ padding-left:64px; padding-right:64px; }
}
/* —— 440(<940):padding 16、标题 32/英文 14、证书与箭头缩小 —— */
@media (max-width:939.98px){
  .qh-certs{ padding:24px 16px; }
  .qh-certs-title{ font-size:28px; line-height:40px; }
  .qh-certs-en{ font-size:14px; line-height:20px; }
  .qh-certs-stage{ padding:0; gap:24px; }
  .qh-certs-clip{ width:100%; margin:0; padding:14px 0; }
  .qh-certs-cert{ width:140px; height:108px; }
  .qh-certs-swiper--bottom .qh-certs-cert{ width:90px; height:120px; }
  .qh-certs-swiper .swiper-slide-active{ transform:scale(1.2); }
  .qh-certs-arrow{ width:18px; height:18px; font-size:11px; }
}

/* ---------- 资质证书列表(qh-certlist) · 参照 qh-caselist 网格,证书图 contain 完整展示 · 多端 2560/1920/1440/440 ---------- */
.qh-certlist{ padding:80px 120px; }
.qh-certlist-head{ display:flex; flex-direction:column; gap:8px; margin-bottom:40px; }
.qh-certlist-en{ color:rgba(156,163,175,.5); font-size:24px; font-family:var(--qh-font-sans); line-height:34px; }
.qh-certlist-title{ margin:0; color:#191A19; font-size:48px; font-family:var(--qh-font-serif); font-weight:700; line-height:69px; }
.qh-certlist-desc{ margin:0; max-width:900px; color:#191A19; font-size:16px; font-family:var(--qh-font-serif); font-weight:500; line-height:23px; }
.qh-certlist-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:40px; }
.qh-certlist-card{ display:flex; flex-direction:column; text-decoration:none; color:#191A19; }
.qh-certlist-card:nth-child(3n+2){ animation-delay:.1s; }
.qh-certlist-card:nth-child(3n){ animation-delay:.2s; }
.qh-certlist-cert{ width:100%; height:300px; padding:16px; background:#f5f5f7; border:1px solid #eceef0; border-radius:8px; box-sizing:border-box; overflow:hidden; transition:box-shadow .3s ease; }
.qh-certlist-cert img{ width:100%; height:100%; object-fit:contain; display:block; transition:transform .4s ease; }
.qh-certlist-card:hover .qh-certlist-cert{ box-shadow:0 8px 24px rgba(170,198,232,.35); }
.qh-certlist-card:hover .qh-certlist-cert img{ transform:scale(1.04); }
.qh-certlist-card-title{ margin:16px 0 0; color:#191A19; font-size:16px; font-family:var(--qh-font-serif); font-weight:700; line-height:23px; text-align:center; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
/* —— 2560(≥2240):左右内边距 320 —— */
@media (min-width:2240px){ .qh-certlist{ padding-left:320px; padding-right:320px; } }
/* —— 1440(940–1679):左右内边距 64 + 2列 —— */
@media (min-width:940px) and (max-width:1679.98px){
  .qh-certlist{ padding-left:64px; padding-right:64px; }
  .qh-certlist-grid{ grid-template-columns:repeat(2,1fr); }
}
/* —— 440(<940):内边距 16、单列、标题缩小、图区降高 —— */
@media (max-width:939.98px){
  .qh-certlist{ padding:40px 16px; }
  .qh-certlist-head{ margin-bottom:24px; }
  .qh-certlist-en{ font-size:18px; line-height:25px; }
  .qh-certlist-title{ font-size:32px; line-height:46px; }
  .qh-certlist-grid{ grid-template-columns:1fr; gap:16px; }
  .qh-certlist-cert{ height:220px; }
}

/* ---------- 专业团队标题(qh-team) · 多端 2560/1920/1440/440 ---------- */
/* 基础按 1920 写:居中 标题+英文+副标题 */
.qh-team{ padding:40px 120px; }
.qh-team-inner{ display:flex; flex-direction:column; align-items:center; gap:10px; }
.qh-team-head{ display:flex; flex-direction:column; align-items:center; gap:8px; }
.qh-team-title{ color:#191A19; font-size:48px; font-family:var(--qh-font-serif); font-weight:700; line-height:69px; }
.qh-team-en{ color:#191A19; font-size:16px; font-family:var(--qh-font-sans); line-height:22px; }
.qh-team-sub{ margin:0; color:#000; font-size:18px; font-family:var(--qh-font-serif); font-weight:600; line-height:26px; text-align:center; }
/* —— 2560(≥2240):左右内边距 320 —— */
@media (min-width:2240px){
  .qh-team{ padding-left:320px; padding-right:320px; }
}
/* —— 1440(940–1679):左右内边距 64、标题↔副标题 gap 32 —— */
@media (min-width:940px) and (max-width:1679.98px){
  .qh-team{ padding-left:64px; padding-right:64px; }
  .qh-team-inner{ gap:32px; }
}
/* —— 440(<940):padding 16、标题 32/英文 14、副标题 14、gap 16 —— */
@media (max-width:939.98px){
  .qh-team{ padding:24px 16px; }
  .qh-team-inner{ gap:16px; }
  .qh-team-title{ font-size:28px; line-height:40px; }
  .qh-team-en{ font-size:14px; line-height:20px; }
  .qh-team-sub{ font-size:14px; line-height:20px; }
}

/* ---------- 专业团队内容(qh-team-content) · 多端 2560/1920/1440/440 ---------- */
/* 基础按 1920 写:左图右文、图高 600 */
.qh-team-content{ padding:0 120px 80px; }
.qh-team-content-row{ display:flex; align-items:stretch; }
.qh-team-content-photo{ flex:1; min-width:0; height:600px; overflow:hidden; }
.qh-team-content-photo img{ width:100%; height:100%; object-fit:cover; display:block; }
.qh-team-content-text{ flex:1; min-width:0; display:flex; flex-direction:column; justify-content:center; gap:40px; padding-left:40px; }
.qh-team-content-head{ display:flex; flex-direction:column; gap:24px; }
.qh-team-content-slogan{ margin:0; color:#000; font-size:24px; font-family:var(--qh-font-serif); font-weight:600; line-height:34px; }
.qh-team-content-line{ width:100%; height:0; margin:0; border:0; border-top:1px solid #000; }
.qh-team-content-body{ display:flex; flex-direction:column; gap:24px; }
.qh-team-content-body p{ margin:0; color:#000; font-size:14px; font-family:var(--qh-font-serif); line-height:20px; text-align:justify; }
/* —— 2560(≥2240):左右内边距 320 —— */
@media (min-width:2240px){
  .qh-team-content{ padding-left:320px; padding-right:320px; }
}
/* —— 1440(940–1679):左右内边距 64、图高 504 —— */
@media (min-width:940px) and (max-width:1679.98px){
  .qh-team-content{ padding-left:64px; padding-right:64px; }
  .qh-team-content-photo{ height:504px; }
}
/* —— 440(<940):上图下文、图高 360、小标题居中 —— */
@media (max-width:939.98px){
  .qh-team-content{ padding:0 16px; }
  .qh-team-content-row{ flex-direction:column; }
  .qh-team-content-photo{ height:360px; }
  .qh-team-content-text{ padding:40px 0; }
  .qh-team-content-head{ align-items:center; }
  .qh-team-content-slogan{ text-align:center; }
}

/* ---------- 宇智产业链(qh-industry) · 多端 2560/1920/1440(440 纵向兼容) ---------- */
/* 基础按 1920 写:三栏 640 高、第1栏大图标题、2/3 栏上下蒙版块 */
.qh-industry{ display:flex; height:640px; background:url('../images/honor-bg.png') center/cover no-repeat, linear-gradient(180deg, rgba(221,233,247,0) 0%, #DDE9F7 100%); overflow:hidden; }
.qh-industry-col{ flex:1 1 0; min-width:0; display:flex; flex-direction:column; }
.qh-industry-col--main{ background:url('../images/industry-col1.jpg') center/cover no-repeat; padding:80px 16px 80px 160px; align-items:center; justify-content:flex-start; }
.qh-industry-head{ display:flex; flex-direction:column; align-items:center; gap:16px; }
.qh-industry-title{ color:#fff; font-size:48px; font-family:var(--qh-font-serif); font-weight:700; line-height:69px; }
.qh-industry-en,.qh-industry-sub{ color:#fff; font-size:16px; font-family:var(--qh-font-sans); line-height:22px; text-align:center; }
.qh-industry-cell{ flex:1 1 0; min-height:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:16px; padding:16px; }
.qh-industry-cell--qh{ background:linear-gradient(0deg, rgba(0,140,104,.95), rgba(0,140,104,.95)), url('../images/industry-col2-top.jpg') center/cover no-repeat; }
.qh-industry-cell--qy{ background:linear-gradient(0deg, rgba(0,140,104,.85), rgba(0,140,104,.85)), url('../images/industry-col2-bot.jpg') center/cover no-repeat; }
.qh-industry-cell--qhj{ background:linear-gradient(0deg, rgba(156,163,175,.4), rgba(156,163,175,.4)), url('../images/industry-col3-top.jpg') center/cover no-repeat; }
.qh-industry-name{ color:#fff; font-size:40px; font-family:var(--qh-font-serif); font-weight:700; line-height:57px; }
.qh-industry-desc{ color:#fff; font-size:16px; font-family:var(--qh-font-sans); line-height:22px; text-align:center; }
/* 第3栏下块:灰白底 + 两子公司左右分置 */
.qh-industry-cell--dual{ flex-direction:row; align-items:stretch; justify-content:space-between; gap:0; padding:0; background:url('../images/industry-col3-bot.jpg') center/cover no-repeat; }
.qh-industry-dual-l{ flex:1; min-width:0; display:flex; flex-direction:column; justify-content:flex-end; gap:0; padding:0 16px 40px 64px; background:rgba(255,255,255,0.85); }
.qh-industry-dual-r{ flex:1; min-width:0; display:flex; flex-direction:column; align-items:flex-end; justify-content:flex-start; gap:0; padding:40px 64px 0 16px; background:rgba(255,255,255,.4); }
.qh-industry-dual-l img,.qh-industry-dual-r img{ width:40px; height:40px; object-fit:contain; }
.qh-industry-dual-name{ color:#000; font-size:32px; font-family:var(--qh-font-serif); font-weight:700; line-height:46px; }
.qh-industry-dual-desc{ color:#000; font-size:14px; font-family:var(--qh-font-sans); line-height:20px; }
/* —— 1440(940–1679):右下块两侧内边距收窄,防云慧/景清文字溢出 —— */
@media (min-width:940px) and (max-width:1679.98px){
  .qh-industry-dual-l{ padding-left:12px; }
  .qh-industry-dual-r{ padding-right:12px; }
}
/* —— 440(<940,无稿):三栏纵向堆叠、高度自适应 —— */
@media (max-width:939.98px){
  .qh-industry{ flex-direction:column; height:auto; }
  .qh-industry-col{ flex:none; }
  .qh-industry-col--main{ padding:48px 16px; }
  .qh-industry-title{ font-size:28px; line-height:40px; }
  .qh-industry-cell{ min-height:220px; }
  .qh-industry-name{ font-size:30px; line-height:43px; }
}

/* ---------- 客户列表(qh-customerlist) · 参照新闻列表左图右文,logo contain 美观 · 多端 2560/1920/1440/440 ---------- */
.qh-customerlist{ padding:80px 120px; }
.qh-customerlist-head{ display:flex; flex-direction:column; margin-bottom:40px; }
.qh-customerlist-en{ color:rgba(156,163,175,.5); font-size:24px; font-family:var(--qh-font-sans); line-height:34px; }
.qh-customerlist-title{ margin:0; color:#191A19; font-size:48px; font-family:var(--qh-font-serif); font-weight:700; line-height:69px; }
.qh-customerlist-grid{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(2,1fr); column-gap:64px; row-gap:40px; }
.qh-customerlist-card{ margin:0; min-width:0; }
.qh-customerlist-card:nth-child(2n){ animation-delay:.1s; }
.qh-customerlist-card-link{ display:flex; align-items:stretch; gap:40px; color:inherit; text-decoration:none; }
.qh-customerlist-thumb{ flex:none; width:284px; height:160px; display:flex; align-items:center; justify-content:center; background-color:#f5f5f5; overflow:hidden; }
.qh-customerlist-thumb img{ max-width:100%; max-height:100%; width:auto; height:auto; object-fit:contain; display:block; }
.qh-customerlist-body{ flex:1; min-width:0; display:flex; flex-direction:column; justify-content:space-between; }
.qh-customerlist-name{ margin:0; color:#191A19; font-size:16px; font-family:var(--qh-font-serif); font-weight:700; line-height:23px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.qh-customerlist-desc{ margin:0; color:#191A19; font-size:14px; font-family:var(--qh-font-serif); line-height:20px; text-align:justify; display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:3; overflow:hidden; }
.qh-customerlist-foot{ display:flex; align-items:flex-end; gap:16px; }
.qh-customerlist-date{ flex:1; min-width:0; color:#000; font-size:14px; font-family:var(--qh-font-serif); font-weight:500; line-height:20px; }
.qh-customerlist-line{ flex:none; width:80px; height:2px; background:#000; }
.qh-customerlist-name,.qh-customerlist-line{ transition:color .2s ease,background .2s ease; }
.qh-customerlist-card-link:hover .qh-customerlist-name{ color:var(--qh-theme); }
.qh-customerlist-card-link:hover .qh-customerlist-line{ background:var(--qh-theme); }
/* customerlist 分页沿用全局 .pagination 样式 */
@media (min-width:2240px){ .qh-customerlist{ padding-left:320px; padding-right:320px; } }
@media (min-width:940px) and (max-width:1679.98px){ .qh-customerlist{ padding-left:64px; padding-right:64px; } .qh-customerlist-grid{ grid-template-columns:1fr; } }
@media (max-width:939.98px){ .qh-customerlist{ padding:40px 16px; } .qh-customerlist-head{ margin-bottom:24px; } .qh-customerlist-en{ font-size:18px; line-height:25px; } .qh-customerlist-title{ font-size:32px; line-height:46px; } .qh-customerlist-grid{ grid-template-columns:1fr; row-gap:16px; } .qh-customerlist-card-link{ flex-direction:column; gap:16px; } .qh-customerlist-thumb{ width:100%; height:auto; aspect-ratio:16/9; } .qh-customerlist-body{ justify-content:flex-start; gap:16px; } }

/* ---------- 服务-头部大图(qh-service-top) ---------- */
.qh-service-top{ display:block; width:100%; height:328px; object-fit:cover; }

/* ---------- 服务-栏目介绍(qh-service-intro) · 多端 2560/1920/1440/440 ---------- */
.qh-service-intro{ position:relative; z-index:2; margin-top:-120px; background:#fff; border-top-left-radius:40px; border-top-right-radius:40px; display:flex; gap:80px; padding:80px 120px; }
.qh-service-intro-main{ flex:1; min-width:0; display:flex; flex-direction:column; gap:40px; }
.qh-service-intro-head{ display:flex; flex-direction:column; gap:8px; }
.qh-service-intro-en{ color:rgba(156,163,175,.5); font-size:18px; font-family:var(--qh-font-sans); line-height:25px; }
.qh-service-intro-title{ margin:0; color:#191A19; font-size:32px; font-family:var(--qh-font-serif); font-weight:700; line-height:46px; }
.qh-service-intro-sub{ margin:0; color:#191A19; font-size:16px; font-family:var(--qh-font-serif); font-weight:600; line-height:23px; }
.qh-service-intro-body{ display:flex; flex-direction:column; gap:16px; color:#000; font-size:14px; font-family:var(--qh-font-serif); font-weight:500; line-height:20px; text-align:justify; white-space:pre-line; }
.qh-service-intro-body p{ margin:0; }
.qh-service-intro-line{ display:block; width:100%; height:1px; margin:0; border:0; background:#000; }
.qh-service-intro-photo{ flex:1; min-width:0; height:458px; overflow:hidden; background:#f5f5f5; }
.qh-service-intro-photo img{ width:100%; height:100%; object-fit:cover; display:block; }
@media (min-width:2240px){ .qh-service-intro{ padding-left:320px; padding-right:320px; } }
@media (min-width:940px) and (max-width:1679.98px){ .qh-service-intro{ padding-left:64px; padding-right:64px; border-top-left-radius:32px; border-top-right-radius:32px; } }
@media (max-width:939.98px){
  .qh-service-intro{ flex-direction:column; gap:24px; padding:40px 16px; border-top-left-radius:20px; border-top-right-radius:20px; }
  .qh-service-intro-head{ align-items:center; }
  .qh-service-intro-en{ font-size:16px; line-height:22px; text-align:center; }
  .qh-service-intro-title{ text-align:center; }
  .qh-service-intro-sub{ text-align:center; }
  .qh-service-intro-photo{ width:100%; height:auto; aspect-ratio:4/3; }
}

/* ---------- 服务-富文本内容(qh-service-content) · 多端 2560/1920/1440/440 ---------- */
.qh-service-content{ padding:80px 120px; color:#000; font-size:14px; font-family:var(--qh-font-serif); font-weight:500; line-height:24px; }
.qh-service-content p{ margin:0 0 16px; }
.qh-service-content img{ max-width:100%; height:auto; display:block; margin:16px 0; }
.qh-service-content h2,.qh-service-content h3,.qh-service-content strong{ color:#000; font-size:18px; font-family:var(--qh-font-serif); font-weight:700; line-height:26px; margin:20px 0 12px; }
.qh-service-content ul,.qh-service-content ol{ margin:0 0 16px; padding-left:24px; }
.qh-service-content li{ margin:0 0 8px; }
.qh-service-content a{ color:var(--qh-theme); }
@media (min-width:2240px){ .qh-service-content{ padding-left:320px; padding-right:320px; } }
@media (min-width:940px) and (max-width:1679.98px){ .qh-service-content{ padding-left:64px; padding-right:64px; } }
@media (max-width:939.98px){ .qh-service-content{ padding:40px 16px; } }

/* ---------- 在线客服悬浮(.online,4 按钮工具栏) ---------- */
.online{ position:fixed; right:0; top:50%; transform:translateY(-50%); z-index:1000; display:flex; flex-direction:column; }
.online-btn{ position:relative; width:64px; height:64px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px; background:#008C68; color:#fff; border-bottom:1px solid rgba(255,255,255,.5); padding:8px 1px; text-decoration:none; }
.online-btn i{ font-size:20px; }
.online-btn span{ font-size:12px; line-height:17px; font-family:var(--qh-font-serif); font-weight:500; text-align:center; }
.online-btn:last-child{ border-bottom:0; }
.online-btn:hover{ background:#00C191; color:#fff; }
.online-btn-panel{ position:absolute; right:calc(100% + 8px); top:50%; transform:translateY(-50%); display:none; background:#fff; box-shadow:0 4px 10px rgba(0,0,0,.3); padding:16px; }
.online-btn:hover .online-btn-panel{ display:block; }
.online-panel-title{ color:#000504; font-size:14px; font-family:var(--qh-font-serif); font-weight:600; line-height:20px; padding-bottom:8px; border-bottom:1px solid #000; white-space:nowrap; }
.online-panel-row{ display:flex; align-items:center; gap:8px; margin-top:8px; color:#000; font-size:14px; font-family:var(--qh-font-serif); font-weight:500; line-height:20px; white-space:nowrap; }
.online-panel-row i{ font-size:16px; color:#000; }
.online-btn-panel--weixin img{ width:140px; height:140px; max-width:none; display:block; }
.online-btn-panel--weixin p{ margin:8px 0 0; color:#000504; font-size:14px; font-family:var(--qh-font-sans); line-height:20px; text-align:center; }
