/* ============================================================
   迅睿CMS · 亲子鉴定行业模板「qinzi」
   青绿 DNA 科技风 · 响应式一套模板（PC / 平板 / 手机）
   资源路径：{HOME_THEME_PATH}pc/qinzi/css/style.css
   改色：只改下方 4 个主色变量即可整体换肤
   ============================================================ */

:root {
  --qz-primary: #12a37f;      /* 主色（青绿） */
  --qz-primary-dark: #0e8a6a; /* 悬停深一阶 */
  --qz-primary-deep: #0a2f3f; /* 页脚 / 深色块（墨青） */
  --qz-sky: #3ecfa8;          /* 点缀亮色 */
  --qz-bg: #f5f8fa;
  --qz-bg-soft: #eaf6f2;
  --qz-white: #ffffff;
  --qz-text: #16232b;
  --qz-text-2: #4a5c66;
  --qz-text-3: #8394a0;
  --qz-border: #e4ebef;
  --qz-danger: #e8543f;
  --qz-success: #1fa971;
  --qz-radius: 16px;
  --qz-shadow: 0 10px 30px rgba(11,50,64,.08);
  --qz-shadow-lg: 0 24px 60px rgba(11,50,64,.14);
  --qz-header-h: 76px;
}

* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body.qz-body {
  margin: 0;
  font-family: "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  font-size: 15px;
  line-height: 1.75;
  color: var(--qz-text);
  background: var(--qz-bg);
  -webkit-font-smoothing: antialiased;
}
.qz-body a { color: inherit; text-decoration: none; transition: color .2s; }
.qz-body a:hover { color: var(--qz-primary-dark); }
.qz-body img { max-width: 100%; border: 0; vertical-align: middle; }
.qz-body h1, .qz-body h2, .qz-body h3, .qz-body h4 { margin: 0; font-weight: 700; line-height: 1.35; }
.qz-body p, .qz-body ul, .qz-body ol, .qz-body dl { margin: 0; }
.qz-body ul { list-style: none; padding: 0; }
.qz-body input, .qz-body select, .qz-body textarea, .qz-body button { font: inherit; color: inherit; }
.qz-body em { font-style: normal; }

.qz-container { max-width: 1200px; margin: 0 auto; padding: 0 24px; }

/* ============================================================
   顶部信息条
   ============================================================ */
.qz-topbar { background: var(--qz-primary-deep); color: rgba(255,255,255,.82); font-size: 12.5px; }
.qz-topbar-inner { display: flex; align-items: center; justify-content: space-between; height: 38px; }
.qz-topbar-l { display: flex; align-items: center; gap: 20px; }
.qz-topbar-l span { display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; }
.qz-topbar-l svg { width: 14px; height: 14px; fill: none; stroke: var(--qz-sky); stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.qz-topbar-r { display: flex; align-items: center; gap: 18px; }
.qz-topbar-r a { color: #fff; white-space: nowrap; }
.qz-topbar-r a:hover { color: var(--qz-sky); }
.qz-topbar-tel { display: inline-flex; align-items: center; gap: 6px; font-weight: 700; font-size: 14px; }
.qz-topbar-tel svg { width: 14px; height: 14px; fill: var(--qz-sky); }
.qz-topbar-wx { display: inline-flex; align-items: center; gap: 6px; cursor: pointer; }
.qz-topbar-wx svg { width: 15px; height: 15px; fill: var(--qz-sky); }

/* ============================================================
   头部导航
   ============================================================ */
.qz-header {
  position: sticky; top: 0; z-index: 900;
  /* 修复：移除 backdrop-filter。
     它会创建包含块，使内部 position:fixed 的手机抽屉不再相对视口定位，
     而是相对 65px 高的 header，导致抽屉被压成 104px、菜单项全部溢出到屏幕外
     （点击汉堡按钮后错位）。改用不透明背景，视觉几乎一致。 */
  background: #fff;
  border-bottom: 1px solid var(--qz-border);
  transition: box-shadow .25s;
}
.qz-header.is-stuck { box-shadow: 0 6px 24px rgba(11,50,64,.10); }
.qz-header-inner { display: flex; align-items: center; height: var(--qz-header-h); gap: 28px; }
.qz-logo { display: flex; align-items: center; gap: 12px; flex: 0 0 auto; }
.qz-logo img { max-height: 46px; width: auto; }
/* 后台上传的 logo：统一限制高度，避免撑高头部 */
.qz-logo-img { max-height: 44px; width: auto; max-width: 180px; object-fit: contain; }
.qz-logo img.qz-logo-default { width: 44px; height: 44px; border-radius: 12px; }
.qz-logo-text { font-size: 21px; font-weight: 800; color: var(--qz-primary-deep); letter-spacing: 1px; line-height: 1.2; }
.qz-logo-text small { display: block; font-size: 11px; font-weight: 400; color: var(--qz-text-3); letter-spacing: 3px; }

.qz-nav { flex: 1; display: flex; justify-content: flex-end; }
.qz-nav > ul { display: flex; align-items: center; gap: 2px; }
.qz-nav > ul > li { position: relative; }
.qz-nav > ul > li > a {
  display: block; padding: 0 15px; line-height: var(--qz-header-h);
  font-size: 15.5px; font-weight: 500; color: var(--qz-text);
}
.qz-nav > ul > li > a:hover,
.qz-nav > ul > li.is-active > a { color: var(--qz-primary-dark); }
.qz-nav > ul > li.is-active > a::after {
  content: ""; position: absolute; left: 15px; right: 15px; bottom: 14px;
  height: 3px; border-radius: 2px; background: var(--qz-primary);
}
.qz-submenu {
  position: absolute; top: 100%; left: 50%; transform: translateX(-50%) translateY(8px);
  min-width: 168px; padding: 8px;
  background: var(--qz-white); border-radius: 12px; border: 1px solid var(--qz-border);
  box-shadow: var(--qz-shadow-lg);
  opacity: 0; visibility: hidden; transition: all .22s;
}
.qz-nav > ul > li:hover > .qz-submenu { opacity: 1; visibility: visible; transform: translateX(-50%) translateY(0); }
.qz-submenu a { display: block; padding: 9px 14px; border-radius: 8px; font-size: 14px; white-space: nowrap; color: var(--qz-text-2); }
.qz-submenu a:hover, .qz-submenu li.is-active > a { color: var(--qz-primary-dark); background: var(--qz-bg-soft); }

/* 抽屉头部（品牌 + 电话）：桌面端隐藏，仅 ≤1024px 抽屉内显示 */
.qz-drawer-head { display: none; }
.qz-drawer-foot { display: none; }

.qz-header-actions { display: flex; align-items: center; gap: 12px; flex: 0 0 auto; }
.qz-header-tel { display: flex; align-items: center; gap: 9px; color: var(--qz-primary-dark); }
.qz-header-tel svg { width: 21px; height: 21px; fill: var(--qz-primary); flex: none; }
.qz-header-tel b { font-size: 19px; letter-spacing: .5px; display: block; line-height: 1.2; }
.qz-header-tel span { display: block; font-size: 11px; color: var(--qz-text-3); line-height: 1.2; }
.qz-nav-toggle {
  display: none; width: 42px; height: 42px; border: 1px solid var(--qz-border); border-radius: 10px;
  background: transparent; cursor: pointer;
  flex-direction: column; align-items: center; justify-content: center; gap: 5px;
}
.qz-nav-toggle i { display: block; width: 20px; height: 2px; border-radius: 2px; background: var(--qz-text); transition: .25s; }
.qz-nav-open .qz-nav-toggle i:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.qz-nav-open .qz-nav-toggle i:nth-child(2) { opacity: 0; }
.qz-nav-open .qz-nav-toggle i:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
.qz-nav-mask { display: none; position: fixed; inset: 0; z-index: 880; background: rgba(10,47,63,.45); }
.qz-nav-open .qz-nav-mask { display: block; }

/* ============================================================
   按钮
   ============================================================ */
.qz-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  height: 48px; padding: 0 28px; border: 0; border-radius: 999px; cursor: pointer;
  font-size: 15px; font-weight: 600; letter-spacing: .5px; white-space: nowrap;
  transition: transform .18s, box-shadow .18s, background .18s, color .18s;
}
.qz-btn:active { transform: translateY(1px); }
/* 按钮：一律加 .qz-body 前缀提升特异性，
   避免被 .qz-body a { color: inherit } 覆盖导致白底按钮文字变白看不见 */
body.qz-body .qz-btn { color: var(--qz-text); }
/* 修复：.qz-btn-primary 原先只定义了白色文字、没有背景，
   导致白底卡片里"白字+透明底"完全隐形（如 Hero 卡片的"咨询检测排期"按钮）。
   补上主色渐变背景。 */
body.qz-body .qz-btn-primary,
body.qz-body .qz-btn-primary:hover {
  color: #fff;
  background: linear-gradient(135deg, var(--qz-primary), var(--qz-primary-dark));
  box-shadow: 0 8px 22px rgba(18,163,127,.32);
}
body.qz-body .qz-btn-primary:hover { box-shadow: 0 10px 26px rgba(18,163,127,.42); transform: translateY(-1px); }
body.qz-body .qz-btn-white { background: #fff; color: #0a2f3f; box-shadow: 0 8px 22px rgba(0,0,0,.12); }
body.qz-body .qz-btn-white:hover { color: #0e8a6a; }
body.qz-body .qz-btn-ghost { background: #fff; color: #0e8a6a; border: 1px solid var(--qz-primary); height: 46px; }
body.qz-body .qz-btn-ghost:hover { background: var(--qz-primary); color: #fff; }
.qz-btn-sm { height: 38px; padding: 0 20px; font-size: 13.5px; }

/* ============================================================
   Hero 首屏
   ============================================================ */
.qz-hero {
  position: relative; overflow: hidden;
  background:
    radial-gradient(900px 420px at 82% 12%, rgba(62,207,168,.28), transparent 62%),
    radial-gradient(700px 380px at 10% 90%, rgba(55,164,245,.18), transparent 60%),
    linear-gradient(160deg, var(--qz-primary-deep) 0%, #0d4a56 55%, var(--qz-primary-deep) 100%);
  color: #fff;
}
.qz-hero::after {
  content: ""; position: absolute; right: -90px; top: -90px; width: 420px; height: 420px;
  border-radius: 50%; border: 1px solid rgba(255,255,255,.10); pointer-events: none;
}
.qz-hero-inner {
  position: relative; z-index: 2;
  display: grid; grid-template-columns: 1.12fr .88fr; gap: 56px; align-items: center;
  padding: 64px 24px 76px;
}
.qz-hero-badge {
  display: inline-flex; align-items: center; gap: 8px; padding: 7px 16px; border-radius: 999px;
  background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.18);
  font-size: 12.5px; letter-spacing: 1px; color: #eafaf4;
}
.qz-hero-badge::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--qz-sky); box-shadow: 0 0 0 4px rgba(62,207,168,.25); }
.qz-hero h1 { margin: 20px 0 18px; font-size: 44px; line-height: 1.22; letter-spacing: 1px; }
.qz-hero h1 em {
  font-style: normal; position: relative; padding: 0 4px;
  background: linear-gradient(180deg, transparent 62%, rgba(62,207,168,.35) 62%);
}
.qz-hero-sub { max-width: 580px; color: rgba(255,255,255,.80); font-size: 16px; }
.qz-hero-chips { display: flex; flex-wrap: wrap; gap: 10px; margin: 24px 0 30px; }
.qz-hero-chips span {
  padding: 6px 14px; border-radius: 999px; font-size: 13px;
  background: rgba(255,255,255,.10); border: 1px solid rgba(255,255,255,.16); color: #eafaf4;
}
.qz-hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 20px; }
.qz-hero-card {
  background: #fff; color: var(--qz-text); border-radius: 20px; padding: 34px 32px;
  box-shadow: var(--qz-shadow-lg);
}
.qz-hero-card-badge {
  display: inline-flex; align-items: center; gap: 7px; padding: 6px 14px; border-radius: 999px;
  background: var(--qz-bg-soft); color: var(--qz-primary-dark);
  font-size: 12px; font-weight: 600; letter-spacing: .5px;
}
.qz-hero-card-badge i { width: 6px; height: 6px; border-radius: 50%; background: var(--qz-primary); }
.qz-hero-card h3 { font-size: 22px; margin: 16px 0 12px; }
.qz-hero-card > p { color: var(--qz-text-2); font-size: 13.8px; line-height: 1.9; }
.qz-hero-card-list { display: grid; gap: 16px; margin: 24px 0 26px; padding-top: 22px; border-top: 1px dashed var(--qz-border); }
.qz-hero-card-list li { display: flex; align-items: baseline; gap: 10px; font-size: 13.5px; line-height: 1.85; color: var(--qz-text-2); }
.qz-hero-card-list li::before { content: "✓"; color: var(--qz-primary); font-weight: 700; flex: none; }
.qz-hero-card-foot { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; margin-top: 4px; }
.qz-hero-card-foot { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.qz-hero-card-foot span { font-size: 12px; color: var(--qz-text-3); }

/* ============================================================
   通用 Section / 标题
   ============================================================ */
.qz-section { padding: 72px 0; }
.qz-section.alt { background: var(--qz-white); border-top: 1px solid var(--qz-border); border-bottom: 1px solid var(--qz-border); }
.qz-sec-head { text-align: center; max-width: 780px; margin: 0 auto 44px; }
.qz-sec-head .qz-kicker {
  display: inline-block; padding: 5px 15px; border-radius: 999px; margin-bottom: 14px;
  background: var(--qz-bg-soft); color: var(--qz-primary-dark);
  font-size: 12.5px; font-weight: 600; letter-spacing: 2px;
}
.qz-sec-head h2 { font-size: 32px; letter-spacing: 1px; }
.qz-sec-head h2 em { color: var(--qz-primary); }
.qz-sec-head h2::after {
  content: ""; display: block; width: 54px; height: 4px; margin: 16px auto 0;
  border-radius: 2px; background: linear-gradient(90deg, var(--qz-primary), var(--qz-sky));
}
.qz-sec-head p { margin-top: 14px; color: var(--qz-text-3); font-size: 15px; }

/* ============================================================
   业务卡片
   ============================================================ */
.qz-biz-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
.qz-biz-card {
  position: relative; padding: 30px 24px 26px; border-radius: var(--qz-radius);
  background: var(--qz-white); border: 1px solid var(--qz-border); overflow: hidden;
  transition: transform .25s, box-shadow .25s, border-color .25s;
}
/* 顶部渐变条已移除（原 hover 时展开的装饰条，按需求去掉） */
.qz-biz-card:hover { transform: translateY(-6px); box-shadow: var(--qz-shadow); border-color: rgba(18,163,127,.35); }
/* 卡片图标已移除（按需求去掉左上角图标，卡片改为纯文字排版） */
.qz-biz-card h3 { font-size: 18.5px; margin-bottom: 10px; }
.qz-biz-card h3 a:hover { color: var(--qz-primary-dark); }
.qz-biz-card p { font-size: 13.8px; color: var(--qz-text-2); }
/* 服务卡片描述：最多 6 行，超出省略。
   内容取自后台「栏目内容」富文本，保留 p/br 分段格式。
   line-clamp 作用在容器上：内部段落换行累计不超过 6 行。 */
.qz-biz-card .qz-biz-desc {
  display: -webkit-box;
  -webkit-line-clamp: 6;
  line-clamp: 6;
  -webkit-box-orient: vertical;
  overflow: hidden;
  line-height: 1.75;
  margin-bottom: 14px;
  font-size: 13.8px;
  color: var(--qz-text-2);
}
.qz-biz-card .qz-biz-desc p { margin: 0 0 6px; }
.qz-biz-card .qz-biz-desc p:last-child { margin-bottom: 0; }
.qz-biz-tags { display: flex; flex-wrap: wrap; gap: 6px; margin: 14px 0 16px; }
.qz-biz-tags span { font-size: 11.5px; color: var(--qz-primary-dark); background: var(--qz-bg-soft); border-radius: 6px; padding: 3px 9px; }
.qz-biz-link { display: inline-flex; align-items: center; gap: 5px; font-size: 13.5px; color: var(--qz-primary-dark); font-weight: 600; }
.qz-biz-link::after { content: "→"; transition: transform .2s; }
.qz-biz-link:hover::after { transform: translateX(4px); }

/* ============================================================
   实验室实力
   ============================================================ */
.qz-lab-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.qz-lab-card {
  position: relative; padding: 26px 24px; border-radius: var(--qz-radius); overflow: hidden;
  background: var(--qz-white); border: 1px solid var(--qz-border);
  transition: transform .25s, box-shadow .25s, border-color .25s;
}
.qz-lab-card::before {
  content: ""; position: absolute; right: -40px; top: -40px; width: 130px; height: 130px; border-radius: 50%;
  background: radial-gradient(circle, rgba(18,163,127,.10), transparent 70%);
}
.qz-lab-card:hover { transform: translateY(-6px); box-shadow: var(--qz-shadow); border-color: rgba(18,163,127,.35); }
.qz-lab-head { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 14px; }
.qz-lab-city { display: inline-flex; align-items: center; gap: 6px; font-size: 18px; font-weight: 700; }
.qz-lab-city svg { width: 18px; height: 18px; fill: none; stroke: var(--qz-primary); stroke-width: 1.8; }
.qz-lab-badge { font-size: 11.5px; color: var(--qz-primary-dark); background: var(--qz-bg-soft); border-radius: 6px; padding: 3px 9px; }
.qz-lab-card > p { font-size: 13.8px; color: var(--qz-text-2); }
.qz-lab-tags { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 16px; }
.qz-lab-tags li { font-size: 11.5px; color: var(--qz-text-2); background: var(--qz-bg); border: 1px solid var(--qz-border); border-radius: 6px; padding: 3px 9px; }
.qz-lab-list { display: grid; gap: 10px; margin-top: 4px; }
.qz-lab-list li { display: flex; gap: 9px; font-size: 13.8px; color: var(--qz-text-2); }
.qz-lab-list li::before { content: "●"; color: var(--qz-primary); font-size: 9px; line-height: 2.2; }
.qz-lab-strip {
  display: grid; grid-template-columns: repeat(4, 1fr); margin-top: 26px;
  background: linear-gradient(150deg, var(--qz-primary-deep), #0d4f5c);
  border-radius: var(--qz-radius); overflow: hidden;
}
.qz-lab-strip-item {
  display: flex; align-items: center; gap: 13px; padding: 22px 20px; color: #fff;
  border-right: 1px solid rgba(255,255,255,.12);
}
.qz-lab-strip-item:last-child { border-right: 0; }
.qz-lab-strip-item svg { width: 26px; height: 26px; flex: none; fill: none; stroke: var(--qz-sky); stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.qz-lab-strip-item b { display: block; font-size: 15px; }
.qz-lab-strip-item span { font-size: 12px; color: rgba(255,255,255,.68); }

/* ============================================================
   资质实力
   ============================================================ */
.qz-trust-layout { display: grid; grid-template-columns: 1.05fr 1fr; gap: 52px; align-items: center; }
.qz-trust-points { display: grid; gap: 16px; }
.qz-trust-point {
  display: flex; gap: 16px; padding: 20px; border-radius: 14px;
  background: var(--qz-white); border: 1px solid var(--qz-border); transition: .25s;
}
.qz-trust-point:hover { box-shadow: var(--qz-shadow); transform: translateX(4px); }
.qz-trust-point .qz-num {
  flex: none; width: 44px; height: 44px; border-radius: 12px; display: flex; align-items: center; justify-content: center;
  background: linear-gradient(135deg, var(--qz-primary), var(--qz-sky)); color: #fff; font-weight: 700; font-size: 15px;
}
.qz-trust-point h3 { font-size: 16.5px; }
.qz-trust-point p { font-size: 13.5px; color: var(--qz-text-2); margin-top: 5px; }
.qz-trust-panel {
  position: relative; border-radius: 20px; padding: 32px 28px; color: #fff; overflow: hidden;
  background: linear-gradient(150deg, var(--qz-primary-deep), #0d4f5c);
  box-shadow: var(--qz-shadow-lg);
}
.qz-trust-panel h3 { font-size: 20px; }
.qz-trust-panel > p { color: rgba(255,255,255,.78); font-size: 13.8px; margin: 8px 0 22px; }
.qz-cert-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.qz-cert { padding: 14px; border-radius: 12px; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.14); }
.qz-cert b { display: block; font-size: 13.5px; color: #fff; }
.qz-cert span { font-size: 11.5px; color: rgba(255,255,255,.62); }
.qz-trust-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin-top: 24px; padding-top: 22px; border-top: 1px dashed rgba(255,255,255,.22); }
.qz-trust-stats b { display: block; font-size: 24px; color: var(--qz-sky); letter-spacing: .5px; }
.qz-trust-stats span { font-size: 11.5px; color: rgba(255,255,255,.7); }

/* ============================================================
   办理流程
   ============================================================ */
.qz-steps { display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; position: relative; }
.qz-steps::before {
  content: ""; position: absolute; left: 8%; right: 8%; top: 34px; height: 2px;
  background: repeating-linear-gradient(90deg, var(--qz-border) 0 10px, transparent 10px 18px);
}
.qz-step { position: relative; text-align: center; padding: 0 6px; }
.qz-step .qz-step-no {
  position: relative; z-index: 2; width: 68px; height: 68px; margin: 0 auto 18px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  background: linear-gradient(135deg, var(--qz-primary), var(--qz-sky));
  color: #fff; font-size: 20px; font-weight: 700;
  box-shadow: 0 8px 20px rgba(11,50,64,.08);
}
.qz-step h3 { font-size: 17px; }
.qz-step p { margin-top: 9px; font-size: 13.5px; color: var(--qz-text-2); }
.qz-step .qz-step-tip { display: inline-block; margin-top: 10px; font-size: 11.5px; color: var(--qz-text-3); }

/* ============================================================
   费用参考
   ============================================================ */
.qz-fee-layout { display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; }
.qz-fee-card {
  position: relative; background: var(--qz-white); border: 1px solid var(--qz-border);
  border-radius: var(--qz-radius); padding: 26px 22px; transition: .25s;
}
.qz-fee-card:hover { box-shadow: var(--qz-shadow); transform: translateY(-5px); }
.qz-fee-card.is-hot { border-color: var(--qz-primary); box-shadow: 0 14px 34px rgba(18,163,127,.14); }
.qz-fee-flag {
  position: absolute; right: 0; top: 0; padding: 5px 12px; border-radius: 0 var(--qz-radius) 0 12px;
  background: linear-gradient(135deg, var(--qz-primary), var(--qz-sky)); color: #fff; font-size: 11.5px; letter-spacing: 1px;
}
.qz-fee-card h3 { font-size: 18px; }
.qz-fee-card .qz-fee-sub { font-size: 12.5px; color: var(--qz-text-3); margin-top: 4px; }
.qz-fee-price { margin: 16px 0 14px; }
.qz-fee-price b { font-size: 32px; color: var(--qz-primary-dark); letter-spacing: -.5px; }
.qz-fee-price b i { font-style: normal; font-size: 15px; margin-right: 2px; }
.qz-fee-price s { font-size: 13px; color: var(--qz-text-3); margin-left: 8px; }
.qz-fee-card ul { display: grid; gap: 9px; padding-top: 14px; border-top: 1px dashed var(--qz-border); }
.qz-fee-card li { display: flex; gap: 8px; font-size: 13px; color: var(--qz-text-2); }
.qz-fee-card li::before { content: "✓"; color: var(--qz-primary); font-weight: 700; }
/* 同 .qz-contact-note：需 .qz-body 前缀压过全局 reset 的 margin:0 */
body.qz-body p.qz-fee-note { margin-top: 24px; text-align: center; font-size: 12.5px; color: var(--qz-text-3); }

/* ============================================================
   资讯动态
   ============================================================ */
.qz-news-layout { display: grid; grid-template-columns: 1fr 340px; gap: 36px; align-items: start; }
.qz-news-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; }
.qz-news-item {
  display: flex; gap: 14px; padding: 16px; border-radius: 14px;
  background: var(--qz-white); border: 1px solid var(--qz-border); transition: .25s;
}
.qz-news-item:hover { box-shadow: var(--qz-shadow); transform: translateY(-4px); border-color: rgba(18,163,127,.3); }
.qz-news-thumb {
  flex: none; width: 118px; height: 88px; border-radius: 10px; overflow: hidden;
  background: linear-gradient(135deg, var(--qz-primary), var(--qz-sky));
  display: flex; align-items: center; justify-content: center; color: #fff; font-size: 13px; font-weight: 700; letter-spacing: 2px;
}
.qz-news-thumb img { width: 100%; height: 100%; object-fit: cover; }
.qz-news-body { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.qz-news-body h3 { font-size: 15.5px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.qz-news-item:hover .qz-news-body h3 { color: var(--qz-primary-dark); }
.qz-news-body p {
  margin: 6px 0 8px; font-size: 13px; color: var(--qz-text-2); flex: 1;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.qz-news-meta { display: flex; gap: 14px; font-size: 12px; color: var(--qz-text-3); }
.qz-more-wrap { text-align: center; margin-top: 28px; }

.qz-side-card { padding: 22px 24px; margin-bottom: 22px; border-radius: var(--qz-radius); background: var(--qz-white); border: 1px solid var(--qz-border); }
.qz-side-title { display: flex; align-items: center; justify-content: space-between; font-size: 16.5px; margin-bottom: 14px; padding-bottom: 12px; border-bottom: 1px solid var(--qz-border); }
.qz-side-title a { font-size: 12.5px; font-weight: 400; color: var(--qz-text-3); }
.qz-rank-list li { display: flex; gap: 11px; align-items: flex-start; padding: 11px 0; border-bottom: 1px dashed var(--qz-border); }
.qz-rank-list li:last-child { border-bottom: 0; }
.qz-rank-num {
  flex: none; width: 20px; height: 20px; border-radius: 6px; display: flex; align-items: center; justify-content: center;
  background: var(--qz-border); color: var(--qz-text-2); font-size: 12px; font-weight: 700;
}
.qz-rank-list li:nth-child(-n+3) .qz-rank-num { background: linear-gradient(135deg, var(--qz-primary), var(--qz-sky)); color: #fff; }
.qz-rank-list a { flex: 1; font-size: 13.5px; color: var(--qz-text-2); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.qz-rank-list a:hover { color: var(--qz-primary-dark); }
.qz-side-cta { padding: 26px 24px; border-radius: var(--qz-radius); color: #fff; background: linear-gradient(150deg, var(--qz-primary-deep), #0d4f5c); }
.qz-side-cta h3 { font-size: 18px; }
.qz-side-cta p { margin: 10px 0 18px; font-size: 13.5px; color: rgba(255,255,255,.78); }
.qz-side-cta .qz-btn { width: 100%; }
.qz-side-tel { font-size: 22px; font-weight: 800; color: var(--qz-primary); margin: 6px 0 4px; }
.qz-side-tip { font-size: 12.5px; color: var(--qz-text-3); text-align: center; }
.qz-side-qr { width: 140px; height: 140px; display: block; margin: 8px auto 0; border-radius: 10px; }

/* ============================================================
   FAQ
   ============================================================ */
/* 修复：align-items 改 stretch 让左右两栏底部对齐（原 start 时侧栏与面板底参差 31px）；
   加上下 padding 让内容区与页头/页脚衔接自然 */
.qz-faq-layout { display: grid; grid-template-columns: 250px 1fr; gap: 34px; align-items: stretch; padding: 24px 0 40px; }
.qz-faq-cat {
  background: var(--qz-white); border: 1px solid var(--qz-border); border-radius: var(--qz-radius);
  padding: 10px; position: sticky; top: calc(var(--qz-header-h) + 20px);
}
.qz-faq-cat h4 { padding: 12px 14px 8px; font-size: 13px; color: var(--qz-text-3); letter-spacing: 1px; }
.qz-faq-cat > a {
  display: flex; align-items: center; justify-content: space-between; padding: 12px 14px; border-radius: 10px;
  font-size: 14px; color: var(--qz-text-2); transition: .2s;
}
.qz-faq-cat > a:hover { background: var(--qz-bg-soft); color: var(--qz-primary-dark); }
.qz-faq-cat > a.on { background: linear-gradient(135deg, var(--qz-primary), var(--qz-sky)); color: #fff; font-weight: 600; }
.qz-faq-cat > a i { font-style: normal; font-size: 11.5px; opacity: .75; }
.qz-faq-cat-list li { padding: 5px 0; }
.qz-faq-cat-list a { display: block; padding: 9px 14px; border-radius: 8px; font-size: 14px; color: var(--qz-text-2); }
.qz-faq-cat-list a:hover, .qz-faq-cat-list a.on { background: var(--qz-bg-soft); color: var(--qz-primary-dark); }

.qz-faq-list { display: grid; gap: 14px; }
/* 修复：栏目页(faq/category.html)的问答项直接放在 .qz-panel 里，不在 .qz-faq-list 内，
   享受不到上面的 grid gap，卡片完全紧贴（间距 0）。补上与首页一致的 14px 间距。 */
.qz-panel > .qz-faq-item { margin-bottom: 14px; }
.qz-panel > .qz-faq-item:last-of-type { margin-bottom: 0; }
.qz-faq-item {
  background: var(--qz-white); border: 1px solid var(--qz-border); border-radius: 14px; overflow: hidden;
  transition: box-shadow .25s, border-color .25s;
}
.qz-faq-item[open] { border-color: rgba(18,163,127,.4); box-shadow: var(--qz-shadow); }
.qz-faq-item summary {
  display: flex; align-items: flex-start; gap: 12px; padding: 18px 20px; cursor: pointer; list-style: none;
  font-size: 15.5px; font-weight: 600;
}
.qz-faq-item summary::-webkit-details-marker { display: none; }
.qz-faq-item summary .qz-q {
  flex: none; width: 26px; height: 26px; border-radius: 8px; display: flex; align-items: center; justify-content: center;
  background: var(--qz-bg-soft); color: var(--qz-primary-dark); font-size: 13px; font-weight: 700;
}
.qz-faq-item[open] summary .qz-q { background: linear-gradient(135deg, var(--qz-primary), var(--qz-sky)); color: #fff; }
/* "答"标识：与"问"对称，定位在答案区左侧缩进处 */
.qz-faq-a {
  position: relative;
  padding: 16px 20px 20px 58px; font-size: 14px; color: var(--qz-text-2); line-height: 1.85;
  border-top: 1px dashed var(--qz-border);
}
.qz-faq-a .qz-a {
  position: absolute; left: 20px; top: 16px;
  width: 26px; height: 26px; border-radius: 8px;
  display: flex; align-items: center; justify-content: center;
  background: var(--qz-bg-soft); color: var(--qz-text-3);
  font-size: 13px; font-weight: 700;
}
.qz-faq-a p { margin-bottom: 10px; }
.qz-faq-a p:last-child { margin-bottom: 0; }
.qz-faq-detail { color: var(--qz-text-2); }
/* 查看完整解答：独立成块、右对齐，两侧留出与卡片边框的间距。
   使用 details 直接子选择器提升权重，避免被缓存旧规则覆盖。 */
details.qz-faq-item > a.qz-faq-more-link {
  display: block !important;
  margin: 12px 20px 14px !important;
  text-align: right !important;
  font-size: 13px !important;
  color: var(--qz-primary-dark) !important;
  font-weight: 600 !important;
}
details.qz-faq-item > a.qz-faq-more-link:hover { text-decoration: underline; }
/* 折叠标题整体可点击跳转详情页。
   summary 是 flex 容器，a 必须同为 flex 且 flex:1 占满，
   否则「问」徽章后的标题会被压成窄列，造成错位。 */
.qz-faq-item > summary { cursor: pointer; }
.qz-faq-item > summary > a {
  display: flex; align-items: center; gap: 12px; flex: 1; min-width: 0;
  color: inherit; text-decoration: none;
}
.qz-faq-item > summary > a:hover { color: var(--qz-primary-dark); }
.qz-faq-item > summary > a .qz-q { pointer-events: none; }
.qz-faq-more { text-align: center; margin-top: 30px; }
.qz-faq-more .qz-btn { border-radius: 999px; }
.qz-faq-lead { font-size: 16px; font-weight: 600; color: var(--qz-text); background: var(--qz-bg-soft); padding: 14px 18px; border-radius: 10px; }
.qz-faq-ref {
  display: flex; gap: 12px; align-items: flex-start; margin: 18px 0; padding: 14px 16px;
  border-left: 3px solid var(--qz-primary); background: var(--qz-bg-soft); border-radius: 0 10px 10px 0;
}
.qz-faq-ref svg { width: 20px; height: 20px; flex: none; margin-top: 3px; fill: none; stroke: var(--qz-primary-dark); stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.qz-faq-ref b { display: block; font-size: 13.5px; color: var(--qz-primary-dark); }
.qz-faq-ref span { font-size: 13px; color: var(--qz-text-2); }

/* ============================================================
   客户评价
   ============================================================ */
.qz-case-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.qz-case-card {
  background: var(--qz-white); border: 1px solid var(--qz-border); border-radius: var(--qz-radius);
  padding: 26px 24px; display: flex; flex-direction: column; gap: 14px; transition: .25s;
}
.qz-case-card:hover { box-shadow: var(--qz-shadow); transform: translateY(-5px); }
.qz-case-top { display: flex; align-items: center; gap: 12px; }
.qz-case-avatar {
  width: 46px; height: 46px; border-radius: 50%; display: flex; align-items: center; justify-content: center; flex: none;
  background: linear-gradient(135deg, var(--qz-bg-soft), #d9f2e9);
  color: var(--qz-primary-dark); font-weight: 700; font-size: 15px;
}
.qz-case-top b { display: block; font-size: 15px; }
.qz-case-top span { font-size: 12px; color: var(--qz-text-3); }
.qz-case-tag { margin-left: auto; font-size: 11.5px; color: var(--qz-primary-dark); background: var(--qz-bg-soft); border-radius: 6px; padding: 3px 9px; flex: none; }
.qz-case-card p { font-size: 13.8px; color: var(--qz-text-2); }
/* margin-top:auto 需 .qz-body 前缀压过全局 reset 的 margin:0 */
body.qz-body .qz-case-foot { display: flex; align-items: center; gap: 6px; font-size: 12px; color: var(--qz-text-3); margin-top: auto; padding-top: 6px; }
.qz-case-foot svg { width: 14px; height: 14px; fill: var(--qz-primary); }

/* ============================================================
   底部咨询引导区
   ============================================================ */
.qz-section.qz-booking {
  background: linear-gradient(160deg, var(--qz-primary-deep), #0d4f5c);
  color: #fff;
}
.qz-section.qz-booking .qz-kicker { background: rgba(255,255,255,.14); color: #fff; }
.qz-section.qz-booking .qz-sec-head p { color: rgba(255,255,255,.75); }
.qz-contact-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; }
.qz-contact-card {
  position: relative; display: flex; flex-direction: column; align-items: flex-start; gap: 6px;
  background: var(--qz-white); border: 1px solid var(--qz-border); border-radius: var(--qz-radius);
  padding: 28px 24px; color: var(--qz-text);
  transition: transform .25s, box-shadow .25s, border-color .25s;
}
.qz-contact-card:hover { transform: translateY(-6px); box-shadow: var(--qz-shadow-lg); border-color: rgba(18,163,127,.4); }
.qz-contact-icon {
  width: 52px; height: 52px; border-radius: 14px; display: flex; align-items: center; justify-content: center; margin-bottom: 10px;
  background: linear-gradient(135deg, var(--qz-bg-soft), #d9f2e9);
}
.qz-contact-icon svg { width: 26px; height: 26px; fill: none; stroke: var(--qz-primary-dark); stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
/* 联系卡：文字颜色一律显式指定，不依赖继承（<a> 标签会被 .qz-body a 的 inherit 影响） */
body.qz-body a.qz-contact-card, body.qz-body a.qz-contact-card:hover { color: var(--qz-text); }
.qz-contact-card b { color: var(--qz-text); font-size: 19px; letter-spacing: .5px; }
.qz-contact-card > span { font-size: 13px; color: var(--qz-text-2); }
.qz-contact-card > i { font-style: normal; font-size: 12px; color: var(--qz-text-3); }
.qz-contact-card[data-qz-copy-wx] { cursor: pointer; }
/* 底部说明文字：与上方卡片组保持明显间距，避免贴得太近
   注意：必须用 .qz-body 前缀提升特异性，否则会被全局 reset
   `.qz-body p { margin: 0 }` (0,1,1) 覆盖掉 (0,1,0) 的 margin-top */
body.qz-body .qz-contact-note, body.qz-body p.qz-contact-note {
  margin-top: 44px; padding-top: 26px; text-align: center; font-size: 13px; line-height: 1.9;
  color: rgba(255,255,255,.62); max-width: 760px; margin-left: auto; margin-right: auto;
  border-top: 1px solid rgba(255,255,255,.12);
}

/* ============================================================
   页脚
   ============================================================ */
.qz-footer { background: var(--qz-primary-deep); color: rgba(255,255,255,.72); font-size: 14px; }
.qz-footer a:hover { color: var(--qz-sky); }
.qz-footer-main { display: grid; grid-template-columns: 1.5fr 1fr 1fr 1.2fr; gap: 40px; padding: 56px 0 40px; }
.qz-footer h4 { color: #fff; font-size: 15px; margin-bottom: 18px; }
.qz-footer-about p { font-size: 13px; line-height: 1.9; margin-bottom: 14px; }
.qz-footer-brand { color: #fff; font-size: 21px; font-weight: 800; margin-bottom: 12px; letter-spacing: 1px; }
.qz-footer-links li { padding: 6px 0; }
.qz-footer-contact li { display: flex; gap: 8px; padding: 6px 0; font-size: 13px; }
.qz-footer-contact svg { width: 15px; height: 15px; flex: none; margin-top: 5px; fill: none; stroke: var(--qz-sky); stroke-width: 1.7; }
/* 电话号码与"鉴定咨询热线"说明分行显示：号码一行、说明换行 */
.qz-footer-contact li > div { flex: 1; }
.qz-footer-contact b { display: block; color: #fff; font-size: 17px; line-height: 1.5; }
.qz-footer-contact span { display: block; }

/* 页脚微信：二维码与文字横排，嵌在「联系我们」列内，不单独占一行 */
.qz-footer-wx {
  display: flex; align-items: center; gap: 14px;
  margin-top: 18px; padding-top: 18px; border-top: 1px solid rgba(255,255,255,.12);
}
.qz-footer-wx img {
  width: 84px; height: 84px; flex: none;
  border-radius: 10px; background: #fff; padding: 5px;
}
.qz-footer-wx-txt { min-width: 0; }
.qz-footer-wx-txt b { display: block; color: #fff; font-size: 14px; margin-bottom: 4px; }
.qz-footer-wx-txt p { font-size: 12px; line-height: 1.7; color: rgba(255,255,255,.68); word-break: break-all; }
.qz-footer-wx-txt p.qz-copy-wx { cursor: pointer; transition: color .2s; }
.qz-footer-wx-txt p.qz-copy-wx:hover { color: var(--qz-sky); text-decoration: underline; }

/* 修复：底部文字透明度过低（0.5/0.45/0.6）在深青底上几乎看不见，统一提高到可读范围 */
.qz-footer-bottom { border-top: 1px solid rgba(255,255,255,.12); padding: 18px 0; font-size: 12.5px; color: rgba(255,255,255,.78); }
.qz-footer-bottom .qz-container { display: flex; flex-wrap: wrap; gap: 8px 24px; justify-content: space-between; align-items: center; }
.qz-footer-bottom a { color: rgba(255,255,255,.78); }
.qz-footer-bottom a:hover { color: var(--qz-sky); }
.qz-footer-disclaimer { padding: 0 0 18px; font-size: 12px; color: rgba(255,255,255,.75); }

/* ============================================================
   内页横幅 / 面包屑
   ============================================================ */
.qz-page-banner {
  background:
    radial-gradient(600px 240px at 90% -20%, rgba(62,207,168,.30), transparent 60%),
    linear-gradient(120deg, var(--qz-primary-deep), #0d4f5c 70%, #10665c);
  color: #fff;
  /* 修复：padding 44px 时 banner 高达 186px，与内容区几乎 1:1 头重脚轻，上下留白衔接生硬。收窄到 30px。 */
  padding: 30px 0;
}
.qz-page-banner h1 { font-size: 24px; margin-bottom: 4px; }
.qz-page-banner p { font-size: 13.5px; opacity: .8; margin-bottom: 10px; }
.qz-breadcrumb { font-size: 13px; color: rgba(255,255,255,.7); margin-top: 8px; }
.qz-breadcrumb a { color: rgba(255,255,255,.9); }
.qz-breadcrumb a:hover { color: #fff; }
.qz-bc-sep { margin: 0 8px; opacity: .6; }

.qz-layout { display: grid; grid-template-columns: 1fr 340px; gap: 30px; align-items: start; padding: 40px 0 64px; }
.qz-layout.single { grid-template-columns: 1fr; }
.qz-panel { padding: 28px 30px; border-radius: var(--qz-radius); background: var(--qz-white); border: 1px solid var(--qz-border); }

/* ============================================================
   列表页 / 子栏目
   ============================================================ */
.qz-list-item { display: flex; gap: 20px; padding: 22px 0; border-bottom: 1px dashed var(--qz-border); }
.qz-list-item:first-child { padding-top: 4px; }
.qz-list-item:last-of-type { border-bottom: 0; }
.qz-list-thumb { flex: none; width: 200px; height: 132px; border-radius: 10px; overflow: hidden; background: var(--qz-bg-soft); }
.qz-list-thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.qz-list-item:hover .qz-list-thumb img { transform: scale(1.05); }
.qz-list-body { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.qz-list-body h2 { font-size: 18px; margin-bottom: 8px; }
.qz-list-body h2 a:hover { color: var(--qz-primary-dark); }
.qz-list-body p { font-size: 13.5px; color: var(--qz-text-2); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.qz-list-meta { display: flex; flex-wrap: wrap; gap: 16px; margin-top: auto; padding-top: 10px; font-size: 12.5px; color: var(--qz-text-3); }

.qz-child-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px; margin-bottom: 34px; }
.qz-child-card { padding: 22px 24px; border-radius: var(--qz-radius); background: var(--qz-white); border: 1px solid var(--qz-border); transition: .25s; }
.qz-child-card:hover { box-shadow: var(--qz-shadow); border-color: rgba(18,163,127,.3); transform: translateY(-3px); }
.qz-child-card h3 { font-size: 17px; margin-bottom: 6px; }
.qz-child-card h3 a:hover { color: var(--qz-primary-dark); }
.qz-child-card > p { font-size: 13px; color: var(--qz-text-2); margin-bottom: 12px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.qz-child-card ul li { padding: 5px 0; font-size: 13.5px; display: flex; gap: 8px; }
.qz-child-card ul li::before { content: "·"; color: var(--qz-primary); font-weight: 800; }
.qz-child-card ul li a { flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.qz-child-card ul li time { color: var(--qz-text-3); font-size: 12px; }

/* ============================================================
   分页
   ============================================================ */
/* 迅睿 CMS 输出的是 <div class="xrpagination"><ul class="pagination"><li><a>共2条</a></li>
   <li class="active"><a>1</a></li></ul></div>：
   1) 中间的 ul 是 display:block，导致 li 全部竖排成一列，必须显式改成 flex 行布局；
   2) 「共N条」是 li 里的纯文本 a，不是分页按钮，会被 .xrpagination a 的按钮样式
      画成白底描边方块，和页码按钮并排显得不协调，需单独弱化为普通文字；
   3) 当前页样式原先挂在 li.active 上，而 li 的背景会被内部 a 的白底完全盖住，
      所以必须把高亮样式写到 li.active > a 上。 */
.xrpagination { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 8px; margin-top: 34px; font-size: 14px; }
.xrpagination ul,
.xrpagination .pagination { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 6px; margin: 0; padding: 0; list-style: none; }
.xrpagination li { display: flex; align-items: center; }
.xrpagination li > a, .xrpagination li > span {
  min-width: 38px; height: 38px; padding: 0 12px; border-radius: 8px;
  display: inline-flex; align-items: center; justify-content: center;
  background: var(--qz-white); border: 1px solid var(--qz-border); color: var(--qz-text-2);
  transition: border-color .2s, color .2s, background .2s;
}
.xrpagination li > a:hover { border-color: var(--qz-primary); color: var(--qz-primary); }
.xrpagination .xrcurrent, .xrpagination .current, .xrpagination .active { background: transparent; border-color: transparent; color: inherit; }
.xrpagination li.active > a, .xrpagination li.xrcurrent > a, .xrpagination li.current > a,
.xrpagination .active > a, .xrpagination .xrcurrent > a, .xrpagination .current > a {
  background: linear-gradient(135deg, var(--qz-primary), var(--qz-sky)); border-color: transparent; color: #fff;
  font-weight: 600; cursor: default;
}
/* 「共N条」统计文字：退化为普通文本，与页码按钮拉开间距 */
.xrpagination li:first-child > a:only-child { min-width: 0; height: auto; padding: 0 4px; background: none; border: 0; color: var(--qz-text-3); font-size: 13px; cursor: default; }
.xrpagination .disabled, .xrpagination .page-disabled { opacity: .5; }

/* ============================================================
   详情页
   ============================================================ */
.qz-article-title { font-size: 26px; line-height: 1.45; margin-bottom: 14px; }
.qz-article-meta {
  display: flex; flex-wrap: wrap; gap: 16px; padding-bottom: 18px;
  border-bottom: 1px solid var(--qz-border); font-size: 13px; color: var(--qz-text-3);
}
.qz-article-meta .qz-meta-author { color: var(--qz-primary-dark); }
.qz-article-body { padding: 24px 0 8px; font-size: 15.5px; line-height: 2; color: #33445e; word-wrap: break-word; }
.qz-article-body img { height: auto !important; border-radius: 8px; margin: 10px 0; }
.qz-article-body h2, .qz-article-body h3 { margin: 26px 0 12px; font-size: 19px; color: var(--qz-text); }
.qz-article-body p { margin-bottom: 14px; }
.qz-article-body ul, .qz-article-body ol { padding-left: 22px; margin-bottom: 14px; list-style: disc; }
.qz-article-body blockquote { margin: 16px 0; padding: 12px 18px; border-left: 4px solid var(--qz-primary); background: var(--qz-bg-soft); border-radius: 0 8px 8px 0; color: var(--qz-text-2); }
.qz-article-body table { width: 100%; border-collapse: collapse; margin: 16px 0; font-size: 14px; }
.qz-article-body table td, .qz-article-body table th { border: 1px solid var(--qz-border); padding: 8px 12px; }
.qz-tags { display: flex; flex-wrap: wrap; gap: 8px; padding: 18px 0; border-top: 1px dashed var(--qz-border); margin-top: 18px; }
.qz-tags a { font-size: 12.5px; padding: 3px 12px; border-radius: 999px; background: var(--qz-bg-soft); color: var(--qz-primary-dark); }
.qz-tags a:hover { background: var(--qz-primary); color: #fff; }
.qz-prevnext { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; padding-top: 18px; border-top: 1px dashed var(--qz-border); font-size: 14px; }
.qz-prevnext a { display: flex; flex-direction: column; gap: 2px; padding: 12px 16px; border-radius: 10px; background: var(--qz-bg); }
.qz-prevnext a em { font-style: normal; font-size: 12px; color: var(--qz-text-3); }
.qz-prevnext a span { color: var(--qz-text); }
.qz-prevnext a:hover span { color: var(--qz-primary-dark); }
.qz-prevnext .qz-pn-next { text-align: right; }
.qz-related { margin-top: 30px; }
.qz-related h3 { font-size: 17px; margin-bottom: 14px; padding-left: 10px; border-left: 4px solid var(--qz-primary); }
.qz-related-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.qz-related-grid a { display: block; padding: 12px 14px; font-size: 13.5px; border-radius: 8px; background: var(--qz-bg); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.qz-related-grid a:hover { background: var(--qz-bg-soft); color: var(--qz-primary-dark); }
.qz-page-title { font-size: 24px; margin-bottom: 20px; padding-bottom: 16px; border-bottom: 1px solid var(--qz-border); }

/* ============================================================
   搜索页
   ============================================================ */
.qz-search-bar { display: flex; gap: 10px; max-width: 640px; margin-bottom: 22px; }
.qz-search-bar input { flex: 1; height: 46px; padding: 0 16px; border: 1px solid var(--qz-border); border-radius: 8px; outline: none; background: var(--qz-bg); }
.qz-search-bar input:focus { border-color: var(--qz-primary); background: #fff; }
.qz-order-tabs { display: flex; gap: 8px; margin-bottom: 12px; }
.qz-order-tabs a { padding: 5px 16px; font-size: 13px; border-radius: 999px; background: var(--qz-bg-soft); color: var(--qz-text-2); }
.qz-order-tabs a.is-active, .qz-order-tabs a:hover { background: var(--qz-primary); color: #fff; }
.qz-search-count { font-size: 13px; color: var(--qz-text-3); margin-bottom: 10px; }
.qz-empty { padding: 60px 0; text-align: center; color: var(--qz-text-3); }
.qz-empty svg { width: 64px; height: 64px; margin-bottom: 14px; stroke: #c3d5d0; fill: none; stroke-width: 1.5; stroke-linecap: round; }
.qz-empty .qz-btn { margin-top: 18px; }

/* ============================================================
   右侧悬浮窗
   ============================================================ */
.qz-float {
  position: fixed; right: 18px; top: 50%; transform: translateY(-50%); z-index: 950;
  display: flex; flex-direction: column; gap: 2px;
  border-radius: 14px; overflow: hidden; box-shadow: var(--qz-shadow-lg);
  background: var(--qz-white); border: 1px solid var(--qz-border);
}
.qz-float-item {
  position: relative; width: 58px; height: 60px; border: 0; background: transparent; cursor: pointer;
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px;
  color: var(--qz-text-2); font-size: 11px;
}
.qz-float-item + .qz-float-item { border-top: 1px solid var(--qz-border); }
.qz-float-item svg { width: 21px; height: 21px; fill: var(--qz-primary); }
.qz-float-item:hover { background: var(--qz-bg-soft); color: var(--qz-primary-dark); }
.qz-float-pop {
  position: absolute; right: calc(100% + 12px); top: 50%; transform: translateY(-50%) translateX(6px);
  opacity: 0; visibility: hidden; transition: all .22s; pointer-events: none;
  background: var(--qz-white); border-radius: 12px; box-shadow: var(--qz-shadow-lg);
  border: 1px solid var(--qz-border); padding: 10px; white-space: nowrap;
}
.qz-float-item:hover .qz-float-pop { opacity: 1; visibility: visible; transform: translateY(-50%) translateX(0); }
.qz-float-pop img { width: 132px; height: 132px; display: block; }
.qz-float-tel-pop { padding: 12px 18px !important; text-align: center; }
.qz-float-tel-pop b { display: block; font-size: 18px; color: var(--qz-primary-dark); }
.qz-float-tel-pop span { font-size: 12px; color: var(--qz-text-3); }
.qz-float-qr-cap { display: block; font-size: 12px; color: var(--qz-text-2); text-align: center; margin-top: 6px; }
.qz-float-top { display: none; }
.qz-float-top.is-show { display: flex; }

/* 移动端底部操作条 */
.qz-mobar {
  display: none; position: fixed; left: 0; right: 0; bottom: 0; z-index: 960;
  background: rgba(255,255,255,.96); backdrop-filter: blur(12px);
  box-shadow: 0 -4px 18px rgba(11,63,146,.12);
  padding: 7px 12px calc(7px + env(safe-area-inset-bottom));
  gap: 8px;
}
.qz-mobar a {
  flex: 1; height: 44px; border-radius: 999px; font-size: 14px; font-weight: 600;
  display: flex; align-items: center; justify-content: center; gap: 6px;
}
.qz-mobar svg { width: 17px; height: 17px; }
.qz-mobar-tel { background: var(--qz-bg-soft); color: var(--qz-primary-dark); }
.qz-mobar-tel svg { fill: var(--qz-primary); }
.qz-mobar-book { background: linear-gradient(135deg, var(--qz-primary), var(--qz-sky)); color: #fff; }
.qz-mobar-book svg { fill: #fff; }

/* ============================================================
   Toast
   ============================================================ */
.qz-toast {
  position: fixed; left: 50%; top: 24px; transform: translateX(-50%) translateY(-16px);
  z-index: 1200; padding: 12px 22px; border-radius: 10px; font-size: 14px; color: #fff;
  background: rgba(22,35,43,.92); box-shadow: var(--qz-shadow-lg);
  opacity: 0; visibility: hidden; transition: all .25s; max-width: 86vw; text-align: center;
}
.qz-toast.is-show { opacity: 1; visibility: visible; transform: translateX(-50%) translateY(0); }
.qz-toast.qz-toast-ok { background: rgba(18,163,127,.95); }
.qz-toast.qz-toast-err { background: rgba(232,84,63,.95); }

/* ============================================================
   消息页 / 404
   ============================================================ */
.qz-msg-page {
  min-height: 100vh; margin: 0; display: flex; align-items: center; justify-content: center;
  font-family: "PingFang SC", "Microsoft YaHei", sans-serif;
  background:
    radial-gradient(700px 320px at 85% -10%, rgba(62,207,168,.22), transparent 60%),
    linear-gradient(150deg, #eef7f5, #ddf0ea);
  color: var(--qz-text); padding: 20px;
}
.qz-msg-card {
  width: 100%; max-width: 460px; text-align: center;
  padding: 48px 40px; border-radius: 20px; background: #fff;
  box-shadow: 0 24px 60px rgba(11,50,64,.14);
}
.qz-msg-icon {
  width: 74px; height: 74px; margin: 0 auto 20px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  background: var(--qz-bg-soft);
}
.qz-msg-icon svg { width: 36px; height: 36px; stroke: var(--qz-primary-dark); fill: none; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.qz-msg-card h1 { font-size: 22px; margin-bottom: 10px; }
.qz-msg-card .qz-msg-code { font-size: 13px; color: var(--qz-text-3); margin-bottom: 14px; }
.qz-msg-card p { font-size: 14px; color: var(--qz-text-2); margin-bottom: 8px; }
.qz-msg-card .qz-msg-time { font-size: 13px; color: var(--qz-text-3); margin-bottom: 24px; }
.qz-msg-card .qz-msg-time b { color: var(--qz-primary-dark); }
.qz-msg-actions { display: flex; gap: 10px; justify-content: center; }
.qz-msg-actions a { height: 40px; padding: 0 22px; border-radius: 999px; font-size: 14px; display: inline-flex; align-items: center; }

/* ============================================================
   出场动画
   ============================================================ */
.qz-reveal { opacity: 0; transform: translateY(24px); transition: opacity .6s ease, transform .6s ease; }
.qz-reveal.is-in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  .qz-reveal { opacity: 1; transform: none; transition: none; }
}

/* ============================================================
   响应式
   ============================================================ */
@media (max-width: 1180px) {
  .qz-hero-inner { grid-template-columns: 1fr; gap: 36px; padding: 48px 24px 60px; }
  .qz-hero h1 { font-size: 38px; }
  .qz-biz-grid { grid-template-columns: repeat(2, 1fr); }
  .qz-fee-layout { grid-template-columns: repeat(2, 1fr); }
  .qz-lab-grid { grid-template-columns: 1fr; }
  .qz-lab-strip { grid-template-columns: repeat(2, 1fr); }
  .qz-lab-strip-item:nth-child(2) { border-right: 0; }
  .qz-lab-strip-item:nth-child(-n+2) { border-bottom: 1px solid rgba(255,255,255,.12); }
  .qz-contact-grid { grid-template-columns: repeat(2, 1fr); }
  .qz-news-layout { grid-template-columns: 1fr; }
  .qz-news-side { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; align-items: start; }
  .qz-news-side .qz-side-card { margin-bottom: 0; }
  .qz-trust-layout { grid-template-columns: 1fr; gap: 36px; }
  .qz-footer-main { grid-template-columns: 1fr 1fr; gap: 32px; }
}

@media (max-width: 1024px) {
  :root { --qz-header-h: 64px; }
  .qz-nav, .qz-header-tel { display: none; }
  /* 修复：汉堡按钮要贴最右侧。按钮外层是 .qz-header-actions 容器，
     仅给 .qz-nav-toggle 设 margin-left:auto 只在容器内部生效，
     .qz-nav 隐藏后 actions 停在中间，右侧留 178px 空隙。
     把 auto 推到 actions 容器上，按钮即贴右缘（实测 gapToEdge 178 -> 0）。 */
  .qz-nav-toggle { display: flex; }
  .qz-header-actions { margin-left: auto; }
  /* 手机端抽屉导航 */
  .qz-nav.qz-open {
    display: flex; position: fixed; top: 0; right: 0; bottom: 0; width: min(78vw, 320px);
    flex-direction: column; align-items: stretch; gap: 2px; padding: 20px 18px 24px;
    /* 修复：justify-content 必须显式改为 flex-start。PC 的 .qz-nav 是 flex-end，
       抽屉全屏后继承它会把全部内容推到底部，顶部留出大片空白（约 60px），
       机型越矮内容越被挤出屏幕。同时 padding-top 从 80px 减到 20px——
       抽屉 z-index 提到 910（高于 header 的 900）后不再需要给头部让位。 */
    justify-content: flex-start;
    background: #fff; box-shadow: -10px 0 40px rgba(11,50,64,.18); overflow-y: auto; z-index: 910;
  }
  /* 抽屉头部：品牌 Logo + 一键拨号，让手机菜单有明确引导 */
  .qz-nav.qz-open .qz-drawer-head {
    display: block; padding: 4px 2px 16px; margin-bottom: 8px;
    border-bottom: 1px solid var(--qz-border);
  }
  .qz-drawer-brand { display: flex; align-items: center; gap: 10px; }
  .qz-drawer-brand img { width: 38px; height: 38px; border-radius: 10px; flex: none; }
  .qz-drawer-brand b { display: block; font-size: 15px; color: var(--qz-text); line-height: 1.3; }
  .qz-drawer-brand span { display: block; font-size: 11px; color: var(--qz-text-3); }
  .qz-drawer-tel {
    display: flex; align-items: center; gap: 9px; margin-top: 14px; padding: 11px 14px;
    border-radius: 12px; background: var(--qz-bg-soft); color: var(--qz-primary-dark);
  }
  .qz-drawer-tel svg { width: 20px; height: 20px; flex: none; fill: var(--qz-primary); }
  .qz-drawer-tel b { display: block; font-size: 16px; letter-spacing: .5px; line-height: 1.3; }
  .qz-drawer-tel span span { display: block; font-size: 11px; color: var(--qz-text-3); }
  .qz-nav.qz-open > ul { flex-direction: column; align-items: stretch; width: 100%; gap: 0; }
  .qz-nav.qz-open > ul > li > a {
    line-height: 52px; padding: 0 14px; border-bottom: 1px solid var(--qz-border);
    font-size: 16px; font-weight: 500; color: var(--qz-text);
    display: flex; align-items: center; justify-content: space-between;
  }
  .qz-nav.qz-open > ul > li > a:hover { color: var(--qz-primary-dark); }
  .qz-nav.qz-open > ul > li.is-active > a { color: var(--qz-primary-dark); font-weight: 700; }
  .qz-nav.qz-open > ul > li.is-active > a::after { display: none; }
  /* 有子菜单的项：显示展开箭头，明确告知可点击 */
  .qz-nav.qz-open > ul > li.qz-has-child > a::after {
    content: ""; width: 8px; height: 8px; flex: none;
    border-right: 2px solid var(--qz-text-3); border-bottom: 2px solid var(--qz-text-3);
    transform: rotate(45deg); transition: transform .22s;
  }
  .qz-nav.qz-open > ul > li.qz-has-child.qz-nav-expanded > a::after { transform: rotate(-135deg); }
  /* 抽屉底部：常用入口 + 微信（手机端） */
  .qz-nav.qz-open > ul > li.qz-drawer-foot {
    display: block; margin-top: 20px; padding-top: 18px; border-top: 1px solid var(--qz-border);
  }
  .qz-drawer-links { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 12px; }
  .qz-drawer-links a {
    flex: 1 1 auto; text-align: center; padding: 9px 10px; border-radius: 8px;
    font-size: 13px; color: var(--qz-primary-dark); background: var(--qz-bg-soft);
  }
  .qz-drawer-links a:hover { background: var(--qz-primary); color: #fff; }
  /* 修复：微信项是 li 下的 <a>，会被上方 .qz-nav.qz-open > ul > li > a
     （line-height:52px / padding:0 14px）覆盖，两行文字把盒子撑爆、底部裁切。
     必须用更高优先级选择器重置行高与内边距。实测盒子 105px -> 64px。 */
  .qz-nav.qz-open > ul > li > a.qz-drawer-wx,
  .qz-drawer-wx {
    display: flex; align-items: flex-start; gap: 9px; padding: 12px 14px;
    border-radius: 10px; background: var(--qz-primary-deep); color: #fff;
    font-size: 13.5px; line-height: 1.45; height: auto; min-height: 0;
  }
  .qz-nav.qz-open > ul > li > a.qz-drawer-wx span,
  .qz-drawer-wx span { display: block; }
  .qz-drawer-wx svg { width: 20px; height: 20px; flex: none; fill: var(--qz-sky); margin-top: 1px; }
  .qz-drawer-wx:hover { color: #fff; }
  /* 抽屉内的子菜单：必须用 > li:hover > 同等优先级覆盖 PC 端悬浮规则，
     否则鼠标掠过父项时子菜单会以绝对定位飘到抽屉外 */
  .qz-nav.qz-open > ul > li > .qz-submenu,
  .qz-nav.qz-open > ul > li:hover > .qz-submenu {
    position: static; left: auto; top: auto; transform: none;
    opacity: 1; visibility: visible; box-shadow: none;
    display: none; padding: 0 0 6px 14px; border: 0; min-width: 0; background: var(--qz-bg);
  }
  .qz-nav.qz-open > ul > li.qz-nav-expanded > .qz-submenu { display: block; }
  .qz-nav.qz-open .qz-submenu a { padding: 10px 14px; border-bottom: 1px dashed var(--qz-border); }
  .qz-dock, .qz-float { display: none; }
  .qz-mobar { display: flex; }
  body.qz-body { padding-bottom: 68px; }
  .qz-section { padding: 56px 0; }
  .qz-steps { grid-template-columns: repeat(2, 1fr); row-gap: 34px; }
  .qz-steps::before { display: none; }
  .qz-case-grid { grid-template-columns: 1fr; }
  .qz-faq-layout { grid-template-columns: 1fr; }
  /* 修复：手机端 FAQ 分类改为 2 列等宽网格。
     原先是单行横向滚动（第 4 项被挤出屏外）；改 wrap 换行后 3+1 参差不齐。
     网格布局下 4 项等宽等高 2×2 对称，全部可见且美观。 */
  .qz-faq-cat { position: static; display: grid; grid-template-columns: 1fr 1fr; gap: 10px; padding: 4px 0 0; overflow-x: visible; border: 0; background: transparent; }
  .qz-faq-cat h4 { display: none; }
  .qz-faq-cat > a { display: flex; align-items: center; justify-content: center; width: 100%; box-sizing: border-box; padding: 11px 8px; font-size: 14px; text-align: center; border: 1px solid var(--qz-border); border-radius: 10px; background: #fff; }
  .qz-faq-cat > a i { display: none; }
  /* 修复：grid 子项默认 min-width:auto，内部卡片最小宽度 435px 无法收缩，
     会把 main 撑到 435px，在 390px 视口下横向溢出 45px（82 个元素越界）。
     改用 minmax(0,1fr) + min-width:0 让栅格可收缩。
     验证：mainW 435 -> 350，溢出元素 82 -> 0。 */
  .qz-layout { grid-template-columns: minmax(0, 1fr); }
  .qz-layout > * { min-width: 0; }
  .qz-child-grid { grid-template-columns: minmax(0, 1fr); }
  .qz-child-card { min-width: 0; }
  body { overflow-x: hidden; }
  .qz-footer-bottom .qz-container { justify-content: center; text-align: center; }
}

@media (max-width: 768px) {
  .qz-container { padding: 0 18px; }
  .qz-topbar-l { display: none; }
  .qz-topbar-inner { justify-content: center; }
  .qz-hero h1 { font-size: 31px; }
  .qz-hero-card { padding: 24px 20px; }
  .qz-sec-head h2 { font-size: 25px; }
  .qz-biz-grid, .qz-fee-layout, .qz-news-grid, .qz-news-side { grid-template-columns: 1fr; }
  .qz-cert-grid { grid-template-columns: 1fr; }
  .qz-trust-stats { grid-template-columns: repeat(3, 1fr); gap: 8px; }
  .qz-trust-stats b { font-size: 19px; }
  .qz-footer-main { grid-template-columns: 1fr; gap: 28px; padding: 40px 0 28px; }
  .qz-footer-wx img { width: 96px; height: 96px; }
  /* 修复：手机端页脚排版优化
     站点名 21px 占两行突兀 -> 弱化小标题；四区块加分隔线分组；
     二维码缩小；底部版权/友链分行。
     验证：品牌名 74px -> 45px，二维码 96 -> 78px。 */
  .qz-footer-brand { font-size: 15px; font-weight: 600; line-height: 1.5; margin-bottom: 10px; }
  .qz-footer-main { gap: 0; }
  .qz-footer-main > * { padding: 18px; border-bottom: 1px solid rgba(255,255,255,.10); }
  .qz-footer-main > *:last-child { border-bottom: 0; }
  .qz-footer-main h4 { font-size: 15px; margin: 0 0 10px; color: #fff; }
  .qz-footer-links li { padding: 5px 0; }
  .qz-footer-contact li { padding: 6px 0; gap: 10px; }
  .qz-footer-contact b { font-size: 17px; }
  .qz-footer-wx { margin-top: 12px; gap: 12px; }
  .qz-footer-wx img { width: 78px; height: 78px; }
  /* 修复：手机端 opacity .75 叠加在已很淡的 .45 上会低至 0.34，彻底看不见。去掉 opacity 叠加。 */
  .qz-footer-disclaimer { padding: 14px 18px; font-size: 12px; line-height: 1.7; }
  .qz-footer-bottom { padding: 16px 18px; font-size: 12px; line-height: 1.8; }
  .qz-footer-bottom a { display: inline-block; margin-right: 10px; }
  .qz-list-item { flex-direction: column; gap: 12px; }
  .qz-list-thumb { flex: none; width: 100%; height: 180px; }
  .qz-article-title { font-size: 21px; }
  .qz-panel { padding: 20px 18px; }
  /* 修复：保留左侧 58px 缩进，否则绝对定位的「答」徽章会覆盖答案文字 */
  .qz-faq-a { padding: 14px 18px 18px 58px; }
  .qz-faq-item summary { padding: 15px 16px; font-size: 14.5px; }
  .qz-related-grid { grid-template-columns: 1fr 1fr; }
  .qz-prevnext { grid-template-columns: 1fr; }
  .qz-page-banner { padding: 30px 0; }
  .qz-page-banner h1 { font-size: 22px; }
}

@media (max-width: 480px) {
  .qz-hero-actions { gap: 12px; }
  .qz-hero-actions .qz-btn { width: 100%; }
  .qz-step .qz-step-no { width: 58px; height: 58px; font-size: 18px; }
  .qz-news-thumb { width: 96px; height: 76px; }
  .qz-lab-strip { grid-template-columns: 1fr; }
  .qz-lab-strip-item { border-right: 0; border-bottom: 1px solid rgba(255,255,255,.12); }
  .qz-contact-grid { grid-template-columns: 1fr; }
  .qz-related-grid { grid-template-columns: 1fr; }
}
