/* =========================================================
 * conversion.css — 获客转化补充样式
 *
 * 单独成文件的原因：apple.css 已有 130KB 且内含 base64 资源，
 * 把转化相关的样式独立出来便于单独维护、单独缓存与回滚。
 * 依赖 apple.css 中已定义的设计令牌：
 *   --primary --primary-dark --accent-hover --bg-light
 *   --text --text-medium --text-light --border --success
 *   --radius --radius-sm --max-width --ease --duration
 * ========================================================= */

/* =========================================================
 * 1. 转化收尾区（Closing CTA Band）
 *    加在页脚之前，全站出现（联系页除外，该页本身已有表单）。
 *    作用：访客读完内容后必须有明确的下一步，而不是页面直接结束。
 * ========================================================= */
.jl-cta {
  background: linear-gradient(135deg, #0A2540 0%, #0B3A6F 52%, #0058B8 100%);
  color: #fff;
  padding: 72px 0;
  position: relative;
  overflow: hidden;
}
.jl-cta::after {
  content: "";
  position: absolute;
  inset: -40% -10% auto auto;
  width: 640px;
  height: 640px;
  background: radial-gradient(circle, rgba(0, 113, 227, .45) 0%, rgba(0, 113, 227, 0) 68%);
  pointer-events: none;
}
.jl-cta-inner {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 1.15fr 1fr;
  gap: 56px;
  align-items: center;
}
.jl-cta-eyebrow {
  display: inline-block;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: #7FC1FF;
  margin-bottom: 16px;
}
.jl-cta h2 {
  font-size: clamp(26px, 3.4vw, 38px);
  font-weight: 600;
  letter-spacing: -0.028em;
  line-height: 1.16;
  margin: 0 0 18px;
  color: #fff;
}
.jl-cta-desc {
  font-size: 16px;
  line-height: 1.68;
  color: rgba(255, 255, 255, .82);
  margin: 0 0 26px;
  max-width: 46em;
}
.jl-cta-points {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 12px;
}
.jl-cta-points li {
  position: relative;
  padding-left: 28px;
  font-size: 14.5px;
  line-height: 1.6;
  color: rgba(255, 255, 255, .9);
}
.jl-cta-points li::before {
  content: "";
  position: absolute;
  left: 0;
  top: .42em;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: rgba(127, 193, 255, .18);
  box-shadow: inset 0 0 0 1.5px #7FC1FF;
}
.jl-cta-points li::after {
  content: "";
  position: absolute;
  left: 4.5px;
  top: calc(.42em + 5px);
  width: 6px;
  height: 3px;
  border-left: 1.6px solid #7FC1FF;
  border-bottom: 1.6px solid #7FC1FF;
  transform: rotate(-45deg);
}

/* --- 按钮组：电话优先（中小微企业主更习惯直接打电话/加微信） --- */
.jl-cta-actions {
  display: grid;
  gap: 12px;
  align-content: center;
}
.jl-cta-btn {
  display: flex;
  flex-direction: column;
  gap: 3px;
  padding: 15px 22px;
  border-radius: 16px;
  text-align: left;
  text-decoration: none;
  font: inherit;
  cursor: pointer;
  border: 1px solid transparent;
  transition: transform var(--duration) var(--ease), background var(--duration) var(--ease), border-color var(--duration) var(--ease);
}
.jl-cta-btn:hover { transform: translateY(-2px); }
.jl-cta-btn-t {
  font-size: 16.5px;
  font-weight: 600;
  letter-spacing: -0.01em;
  display: flex;
  align-items: center;
  gap: 8px;
}
.jl-cta-btn-s {
  font-size: 12.5px;
  opacity: .72;
  letter-spacing: 0;
}
.jl-cta-btn--primary {
  background: #fff;
  color: #0A2540;
  box-shadow: 0 10px 28px rgba(0, 0, 0, .22);
}
.jl-cta-btn--primary:hover { background: #F5F5F7; color: #0A2540; }
.jl-cta-btn--primary .jl-cta-btn-s { opacity: .62; }
.jl-cta-btn--ghost {
  background: rgba(255, 255, 255, .08);
  border-color: rgba(255, 255, 255, .28);
  color: #fff;
}
.jl-cta-btn--ghost:hover { background: rgba(255, 255, 255, .16); border-color: rgba(255, 255, 255, .5); }
.jl-cta-note {
  margin: 6px 0 0;
  font-size: 12.5px;
  color: rgba(255, 255, 255, .6);
  text-align: center;
}
.jl-cta-copied {
  background: var(--success) !important;
  border-color: var(--success) !important;
  color: #fff !important;
}

@media (max-width: 900px) {
  .jl-cta { padding: 52px 0; }
  .jl-cta-inner { grid-template-columns: 1fr; gap: 32px; }
  .jl-cta-desc { font-size: 15px; }
  .jl-cta-btn { padding: 14px 18px; }
}

/* =========================================================
 * 2. 首页客户案例板块
 *    复用 apple.css 的 .cases-grid / .case-card，
 *    这里只补板块容器与「查看全部」入口。
 * ========================================================= */
.jl-cases {
  background: var(--bg-light);
}
.jl-cases .cases-grid { margin-bottom: 0; }
.jl-cases-more {
  text-align: center;
  margin-top: 44px;
}
.jl-cases-more a {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 13px 30px;
  border-radius: 980px;
  background: var(--primary);
  color: #fff;
  font-size: 15.5px;
  font-weight: 500;
  text-decoration: none;
  transition: background var(--duration) var(--ease);
}
.jl-cases-more a:hover { background: var(--accent-hover); color: #fff; }

/* 案例卡片缺图时的占位表现（原实现有 4 张卡共用同一张兜底图）。
   ⚠️ 2026-09-30 修：这里一度写成 `height: auto; aspect-ratio: 800 / 509;`，
   而 .case-img 是 position:absolute（apple.css:1375），父级 .case-image 固定 180px 高。
   卡片宽 1152px 时图片按宽高比算出 731.68px 高 → 溢出图槽，且绝对定位优先绘制，
   把 .case-body 的标题/摘要/日期整个盖住；卡片又 overflow:hidden，
   于是行业资讯的文章卡渲染成「一张横幅、没有任何文字」（首篇文章上线即暴露）。
   必须保持 height:100% 填满 180px 图槽。 */
.case-card .case-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  background: var(--bg-gray, #E8E8ED);
}

/* =========================================================
 * 2.1 行业资讯文章列表（.blog-grid）
 *     原网格用的是 repeat(auto-fit, …)：只有 1~2 篇文章时，
 *     空轨道会被折叠，那张卡被拉到整行 1152px 宽，看起来像横幅而不是文章卡。
 *     改成 auto-fill（保留空轨道）→ 单篇也维持 1/3 宽的常规卡片。
 *     只加在文章列表上，不影响首页/客户案例页的卡片墙。
 * ========================================================= */
.blog-grid {
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
}

/* =========================================================
 * 3. 空状态（行业资讯暂无文章时）
 *    避免出现「点进来一片空白」的页面。
 * ========================================================= */
.jl-empty {
  max-width: 620px;
  margin: 0 auto;
  text-align: center;
  padding: 8px 0 4px;
}
.jl-empty h3 {
  font-size: 21px;
  font-weight: 600;
  letter-spacing: -0.02em;
  color: var(--text);
  margin: 0 0 12px;
}
.jl-empty p {
  font-size: 15.5px;
  line-height: 1.7;
  color: var(--text-medium);
  margin: 0 0 26px;
}
.jl-empty-actions {
  display: flex;
  gap: 12px;
  justify-content: center;
  flex-wrap: wrap;
}

/* =========================================================
 * 4. 表单微文案
 * ========================================================= */
.jl-form-note {
  margin: 14px 0 0;
  font-size: 13px;
  line-height: 1.65;
  color: var(--text-light);
  display: flex;
  align-items: flex-start;
  gap: 8px;
}
.jl-form-note svg { flex: 0 0 auto; margin-top: 2px; }

/* =========================================================
 * 5. 正文内咨询区（各服务页价格表之后 / FAQ 之前）
 *
 * 背景：8 个服务页每篇 1.7–2.2 万字，是搜索与广告的主要落地页，
 * 但页内 tel: 链接与「在线预约」出现次数实测均为 0 ——
 * 客户从头读到尾，没有任何可点的下一步。这是全站 ROI 最高的修复点。
 *
 * 按钮优先级：微信 > 电话 > 表单。
 * 财税咨询要传执照、报表、预警通知，微信能承载文件与长期沟通；
 * 直接跳表单页等于多一次流失。
 * ========================================================= */
.jl-cta-slot { padding: 0 0 12px; }
.jl-inline-cta {
  display: grid;
  grid-template-columns: 1.25fr 1fr;
  gap: 32px;
  align-items: center;
  margin: 8px 0 56px;
  padding: 32px 34px;
  border-radius: var(--radius);
  background: linear-gradient(135deg, #F0F6FF 0%, #EAF3FF 100%);
  border: 1px solid #CFE2FA;
}
.jl-inline-cta h3 {
  font-size: clamp(19px, 2.4vw, 24px);
  font-weight: 600;
  letter-spacing: -0.02em;
  color: var(--text);
  margin: 0 0 10px;
  line-height: 1.3;
}
.jl-inline-cta p {
  font-size: 15px;
  line-height: 1.7;
  color: var(--text-medium);
  margin: 0;
}
.jl-inline-cta-actions {
  display: grid;
  gap: 10px;
}
.jl-inline-btn {
  display: flex;
  flex-direction: column;
  gap: 3px;
  padding: 13px 20px;
  border-radius: 14px;
  text-decoration: none;
  font: inherit;
  text-align: left;
  cursor: pointer;
  border: 1px solid transparent;
  transition: transform var(--duration) var(--ease), background var(--duration) var(--ease);
}
.jl-inline-btn:hover { transform: translateY(-2px); }
.jl-inline-btn-t {
  font-size: 15.5px;
  font-weight: 600;
  color: inherit;
  letter-spacing: -0.01em;
}
.jl-inline-btn-s { font-size: 12.5px; opacity: .72; }
.jl-inline-btn--wx {
  background: var(--success);
  color: #fff;
  box-shadow: 0 6px 18px rgba(29, 154, 80, .22);
}
.jl-inline-btn--wx:hover { background: #178A46; color: #fff; }
.jl-inline-btn--tel {
  background: #fff;
  color: var(--primary);
  border-color: #CFE2FA;
}
.jl-inline-btn--tel:hover { background: #fff; border-color: var(--primary); color: var(--primary); }

@media (max-width: 900px) {
  .jl-inline-cta { grid-template-columns: 1fr; gap: 22px; padding: 26px 22px; margin-bottom: 44px; }
}

/* =========================================================
 * 6. 服务边界说明（用于「金融助贷」这类敏感服务）
 *
 * 背景：营业执照经营范围里没有「融资/贷款/助贷」对应项，
 * 而页面原文含「提高通过率」「1 周获批」「放款跟进」等
 * 结果承诺与撮合暗示。此处把服务边界写清楚：
 * 我们做=评估与材料准备；我们不做=资金撮合与获批承诺。
 * ========================================================= */
.jl-scope {
  max-width: 940px;
  margin: 0 auto;
  text-align: center;
}
.jl-scope > h2 { margin-bottom: 14px; }
.jl-scope-cols {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  margin: 28px 0 24px;
  text-align: left;
}
.jl-scope-col {
  padding: 24px 26px;
  border-radius: var(--radius-sm);
  border: 1px solid var(--border);
  background: #fff;
}
.jl-scope-col h3 {
  font-size: 16px;
  font-weight: 600;
  letter-spacing: -0.01em;
  margin: 0 0 14px;
  display: flex;
  align-items: center;
  gap: 8px;
}
.jl-scope-col ul { margin: 0; padding: 0; list-style: none; }
.jl-scope-col li {
  position: relative;
  padding-left: 24px;
  font-size: 14.5px;
  line-height: 1.62;
  color: var(--text-medium);
  margin-bottom: 10px;
}
.jl-scope-col li:last-child { margin-bottom: 0; }
.jl-scope-col li::before {
  position: absolute;
  left: 0;
  top: 0;
  font-weight: 700;
  font-size: 14px;
}

.jl-scope-yes { border-color: #BFE3CC; background: #F3FBF6; }
.jl-scope-yes h3 { color: var(--success); }
.jl-scope-yes h3::before { content: "✓"; }
.jl-scope-yes li::before { content: "✓"; color: var(--success); }

.jl-scope-no { border-color: #F0D6D6; background: #FDF6F5; }
.jl-scope-no h3 { color: #B3261E; }
.jl-scope-no h3::before { content: "✕"; }
.jl-scope-no li::before { content: "✕"; color: #B3261E; }

.jl-scope-foot {
  font-size: 15px;
  line-height: 1.7;
  color: var(--text-medium);
  padding: 16px 20px;
  border-radius: var(--radius-sm);
  background: var(--bg-light);
  text-align: left;
}

@media (max-width: 760px) {
  .jl-scope-cols { grid-template-columns: 1fr; gap: 14px; }
  .jl-scope-col { padding: 20px; }
}

/* =========================================================
 * 7. 移除右侧配图后，让单列布局自动占满整行
 *
 * About 页首屏（.sp-hero-grid）与公司简介（.about-inner）原本都是
 * 左文右图两栏。撤下 AI 生成图后右栏变空，文字会被挤在左半边。
 * 用 :only-child 让仅剩的文字列跨满整行。
 * ========================================================= */
.sp-hero-grid > :only-child,
.about-inner > :only-child {
  grid-column: 1 / -1;
  max-width: 900px;
}

/* =========================================================
 * 8. 资质证照核验模块
 *
 * 背景：营业执照与代理记账许可证书原件都在公司，
 * 但网站上只有一句「欢迎到店核对」——把最硬的信任凭证
 * 锁在了一个大多数客户不会执行的动作后面。
 * 本模块把三份凭证连编号一起放到线上，并教客户自己核验。
 * 编号一律来自证件原件，逐字符核对过。
 *
 * 客户要求「营业执照 / 代理记账许可 / 涉税信用码」一行排列，
 * 因此用三列网格。难点：前两份是横版扫描件，信用码是竖版
 * 二维码，等比并排会让行高差一大截。这里给图片区固定高度、
 * 图片按 contain 居中，三张卡的首屏比例就齐了。
 * ========================================================= */
.jl-cred-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
  margin-top: 32px;
}
.jl-cred-card {
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: #fff;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
.jl-cred-thumb {
  display: block;
  position: relative;
  background: #F0F0F3;
  border: 0;
  padding: 0;
  cursor: zoom-in;
  line-height: 0;
  overflow: hidden;
  /* 固定图片区高度，让横版证件与竖版二维码在首屏对齐 */
  height: 300px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.jl-cred-thumb img {
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
  object-fit: contain;
  display: block;
  transition: transform .4s var(--ease);
}
.jl-cred-thumb:hover img { transform: scale(1.02); }
.jl-cred-zoom {
  position: absolute;
  right: 12px;
  bottom: 12px;
  background: rgba(0, 0, 0, .62);
  color: #fff;
  font-size: 12px;
  padding: 6px 12px;
  border-radius: 980px;
  line-height: 1.4;
  letter-spacing: 0;
}
.jl-cred-body { padding: 22px 24px 24px; }
.jl-cred-body h3 {
  font-size: 17px;
  font-weight: 600;
  letter-spacing: -0.01em;
  color: var(--text);
  margin: 0 0 14px;
  display: flex;
  align-items: center;
  gap: 8px;
}
.jl-cred-body h3::before {
  content: "";
  width: 18px;
  height: 18px;
  flex: 0 0 auto;
  border-radius: 50%;
  background: rgba(29, 154, 80, .14);
  box-shadow: inset 0 0 0 1.5px var(--success);
}
.jl-cred-facts { margin: 0; }
/* 每条凭证信息现在是一个独立的「段落块」，客户可以在后台逐条点开修改。
   原先用 dl/dt/dd 表达，古腾堡没有对应的原生区块，因此改为
   带两个 span 的段落：.jl-cred-fact-k 是标签，.jl-cred-fact-v 是内容。
   旧的 .jl-cred-facts div/dt/dd 规则保留兼容，但对新结构不再生效。 */
.jl-cred-fact {
  display: flex;
  gap: 12px;
  padding: 8px 0;
  margin: 0;
  border-bottom: 1px dashed var(--border);
  font-size: 14px;
  line-height: 1.55;
}
.jl-cred-fact:last-child { border-bottom: 0; }
.jl-cred-fact-k {
  flex: 0 0 84px;
  color: var(--text-light);
}
.jl-cred-fact-v {
  color: var(--text);
  word-break: break-all;
}
.jl-cred-facts div {
  display: flex;
  gap: 12px;
  padding: 8px 0;
  border-bottom: 1px dashed var(--border);
  font-size: 14px;
  line-height: 1.55;
}
.jl-cred-facts div:last-child { border-bottom: 0; }
.jl-cred-facts dt {
  flex: 0 0 84px;
  color: var(--text-light);
  margin: 0;
}
.jl-cred-facts dd {
  margin: 0;
  color: var(--text);
  word-break: break-all;
}
.jl-cred-no {
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 13.5px;
  letter-spacing: .01em;
  background: var(--bg-light);
  padding: 1px 6px;
  border-radius: 5px;
}

/* 三列在窄屏会挤成一团，按宽度依次降为两列、一列。
   图片区高度同步降低，避免卡片出现大片空白。 */
@media (max-width: 1024px) {
  .jl-cred-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 700px) {
  .jl-cred-grid { grid-template-columns: 1fr; gap: 18px; }
  .jl-cred-thumb { height: 260px; }
}

/* --- 自助核验渠道 --- */
.jl-verify {
  margin-top: 28px;
  padding: 26px 28px;
  border-radius: var(--radius);
  background: linear-gradient(135deg, #F0F6FF 0%, #EAF3FF 100%);
  border: 1px solid #CFE2FA;
}
.jl-verify h3 {
  font-size: 17px;
  font-weight: 600;
  color: var(--text);
  margin: 0 0 8px;
}
.jl-verify > p { font-size: 14.5px; line-height: 1.7; color: var(--text-medium); margin: 0 0 18px; }
.jl-verify ol { margin: 0 0 18px; padding-left: 22px; }
.jl-verify ol li {
  font-size: 14.5px;
  line-height: 1.7;
  color: var(--text-medium);
  margin-bottom: 8px;
}
.jl-verify ol li a { color: var(--primary); word-break: break-all; }
.jl-verify-tip {
  font-size: 13.5px;
  line-height: 1.7;
  color: var(--text-medium);
  padding-top: 16px;
  border-top: 1px solid #CFE2FA;
  margin: 0;
}

/* --- 图片放大灯箱 --- */
.jl-lightbox {
  position: fixed;
  inset: 0;
  z-index: 10050;
  background: rgba(0, 0, 0, .86);
  display: none;
  align-items: center;
  justify-content: center;
  padding: 24px;
  cursor: zoom-out;
}
.jl-lightbox.open { display: flex; }
.jl-lightbox img {
  max-width: 100%;
  max-height: 100%;
  border-radius: 8px;
  box-shadow: 0 24px 70px rgba(0, 0, 0, .5);
}
.jl-lightbox-close {
  position: absolute;
  top: 18px;
  right: 22px;
  width: 42px;
  height: 42px;
  border: 0;
  border-radius: 50%;
  background: rgba(255, 255, 255, .16);
  color: #fff;
  font-size: 22px;
  line-height: 1;
  cursor: pointer;
}
.jl-lightbox-close:hover { background: rgba(255, 255, 255, .3); }

/* =========================================================
 * 9. 首页首屏信任条（资质一句话，紧跟主标题）
 * ========================================================= */.jl-trustbar {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  margin: 0 0 22px;
  padding: 9px 16px;
  border-radius: 980px;
  background: rgba(29, 154, 80, .09);
  border: 1px solid rgba(29, 154, 80, .28);
  font-size: 13.5px;
  line-height: 1.5;
  color: #14663A;
}
.jl-trustbar b { font-weight: 600; }
.jl-trustbar code {
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 12.5px;
  background: rgba(255, 255, 255, .7);
  padding: 1px 6px;
  border-radius: 4px;
}

/* =========================================================
 * 10. 「我们的服务交付标准」板块撤掉 2 项后的排版修正
 *
 * 该板块原本有 4 项交付标准，与首屏保障条共用 .guarantee-bar。
 * 客户要求撤掉「1 个工作日出方案」「人员变动必交接」后只剩 2 项，
 * 而 .guarantee-bar 用的是 repeat(auto-fit, minmax(200px,1fr))：
 * 2 项会各占一半宽度（约 590px），比首屏那 4 项扁得多、比例失调。
 * 这里限制宽度并居中，让 2 项看起来是有意为之。
 *
 * 选择器只作用于 .section 内的保障条 —— 首屏那条在
 * .jl-guarantee-band 容器里（不是 .section），因此不受影响。
 * ========================================================= */
.section .guarantee-bar {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  max-width: 880px;
  margin-left: auto;
  margin-right: auto;
}

@media (max-width: 560px) {
  .section .guarantee-bar { grid-template-columns: 1fr; }
}

/* =========================================================
 * 11. 涉税专业服务机构信用码 —— 已并入第 8 节的三列网格
 *
 * 原先它是一块独立的横向区块（左二维码 + 右文字），
 * 客户要求「营业执照 / 代理记账许可 / 涉税信用码」一行排列，
 * 因此改成了 .jl-cred-grid 里的第三张卡，本节样式随之作废。
 *
 * 二维码的关键约束依然生效，写在 .jl-cred-thumb 里：
 * 用无损 PNG 原图、不走 WP 缩放副本、不做缩放动效 ——
 * 任何重采样或重编码都可能导致扫码失败。
 * ========================================================= */

/* =========================================================
 * 12. 索引卡改为原生区块后的「整卡链接」叠加层
 *
 * 原来每张索引卡是一个 <a>，里面包着 h3 + p —— 客户在后台
 * 完全改不了文字。改成原生区块后，卡片变成容器 div、标题和摘要
 * 变成可编辑的标题块/段落块，但原生区块没法放进 <a>，
 * 所以把整卡链接改成绝对定位的透明叠加层，点击行为与原来一致。
 *
 * 与站内案例卡用的是同一套做法（.case-card-link）。
 * ========================================================= */
.sd-index-card { position: relative; }
.sd-index-card-link {
  position: absolute;
  inset: 0;
  z-index: 2;
  border-radius: var(--radius);
}
/* 叠加层之下仍要让「查看详情」看起来可点，这里只做颜色提示 */
.sd-index-card .sic-more { position: relative; z-index: 3; pointer-events: none; }

/* =========================================================
 * 13. 八大业务板块改用价格卡（.price-grid / .price-item）样式
 *
 * 需求：About 页的八个业务板块换成价格页的卡片样式，
 * 并且点卡片能跳到对应服务页。
 *
 * 以下几点务必注意：
 * 1) 价格页自己的 .pi-cta 是「签代账套餐免费 →」这种真链接，
 *    所以这里的 pointer-events:none 绝对不能全局加，
 *    必须限定在 .jl-sectors 容器内，否则价格页的按钮会全部点不动。
 * 2) 8 张卡用 price-grid 默认的 minmax(210px,1fr) 会排成 5+3，
 *    第二行右边缺一块，所以这里单独规定 4 列 → 4+4 对齐。
 * 3) 整卡可点靠 .pi-overlay-link 透明叠加层（原生区块不能包 <a>），
 *    与站内 .sd-index-card-link / .case-card-link 是同一套做法。
 * ========================================================= */
.jl-sectors { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.jl-sectors .price-item { position: relative; }
.jl-sectors .pi-overlay-link {
  position: absolute;
  inset: 0;
  z-index: 2;
  border-radius: var(--radius);
}
/* 叠加层只负责点击，链接文字本身不再接收鼠标事件，避免盖住整卡 */
.jl-sectors .price-item .pi-cta { position: relative; z-index: 3; pointer-events: none; }

@media (max-width: 1024px) {
  .jl-sectors { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 520px) {
  .jl-sectors { grid-template-columns: 1fr; }
}

/* =========================================================
 * 14. 玖隆联盟页「合作常见问题」沿用「合作保障」的卡片版式
 *
 * 版式直接复用 .al-types / .al-card.al-guard / .al-row，
 * 但按要求「文字颜色不要更换」：
 *   - 合作保障标题是 var(--text) 深色；常见问题问句原本是
 *     var(--primary) 品牌蓝，这里锁回蓝色。
 *   - 答案两边都是 var(--text-medium)，颜色本就一致，覆盖只是留痕。
 * 作用域限定在 .al-faq，不波及「合作保障」「四类合作方式」。
 * ========================================================= */
.al-faq .al-card.al-guard h3 { color: var(--primary); }
.al-faq .al-row { color: var(--text-medium); }

/* =========================================================
 * 15. 服务页「指导价」沿用价格页的卡片样式（.price-item / .pi-*）
 *
 * 网格按首页「业务板块」那套：**页面宽度内一行四个**。
 * 注意不能直接复用 .jl-sectors —— 那里面还有一条
 *   .jl-sectors .price-item .pi-cta { pointer-events: none; }
 * 是给首页那种「整卡叠加链接」用的；服务页的按钮是真链接，
 * 套上去会让「立即咨询」点不动，所以这里单独写网格规则。
 *
 * 卡片不足 4 张时分两档处理（页面里实际有 4/4/2/1/1/1/1/2 张）：
 *   1 张 → 撑满整行；2 张 → 各占半行（避免右侧留空档）
 * ========================================================= */
.sp-plans {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
/* 只有 1 张卡时占满整行 */
.sp-plans > .price-item:only-child { grid-column: 1 / -1; }
/* 只有 2 张（或 3 张）时并排撑满，仅在桌面 4 列布局下需要 */
@media (min-width: 1025px) {
  .sp-plans > .price-item:first-child:nth-last-child(2),
  .sp-plans > .price-item:first-child:nth-last-child(2) ~ .price-item { grid-column: span 2; }
  .sp-plans > .price-item:first-child:nth-last-child(3),
  .sp-plans > .price-item:first-child:nth-last-child(3) ~ .price-item { grid-column: span 2; }
  .sp-plans > .price-item:first-child:nth-last-child(3) ~ .price-item:last-child { grid-column: 1 / -1; }
}
@media (max-width: 1024px) {
  .sp-plans { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 520px) {
  .sp-plans { grid-template-columns: 1fr; }
}

/* =========================================================
 * 16. 服务页「服务边界」模块改用联盟页「资源合作」的卡片样式
 *
 * 网格与卡片直接复用 .al-types / .al-card / .al-row，
 * 但本模块外层还有 .jl-scope —— 它带 text-align:center（这是该模块
 * 本身「居中声明」的版心处理，不属于被参照的卡片样式），
 * 居中会穿透到卡片里，所以这里把网格内的文字拉回左对齐。
 * 顺带把 .al-types 默认的 margin-top:36px 收成原来的 28px 间距。
 * 作用域限定在 .jl-scope 内，不影响联盟页的「资源合作」。
 * ========================================================= */
.jl-scope .al-types {
  text-align: left;
  margin: 28px 0 24px;
}

/* =========================================================
 * 17. 服务页「服务边界」模块铺满页面幅宽
 *
 * 原来 .jl-scope 带 940px 居中版心（见第 6 节），比同一页
 * 「指导价」网格（.sp-plans，占满 .container 的 1152px）窄一截，
 * 两段模块左右边缘对不齐。这里取消版心限制，让它与指导价网格同宽，
 * 模块内两张卡片随之各占半行（.al-types 是 auto-fit，2 张就只有 2 列）。
 *
 * 作用域安全：.jl-scope 只出现在 8 个服务页（每页 1 处），
 * 首页 / About / 联盟页都没有用它，改不到别处。
 * ========================================================= */
.jl-scope { max-width: none; }

/* =========================================================
 * 18. 联系我们页「高德 / 百度地图导航」按钮：修掉悬停时蓝底蓝字看不见的问题
 *
 * 问题现象：鼠标移到两个地图按钮上，底色变蓝、文字也是蓝的，字就消失了。
 *
 * 原因（层叠关系，不是随便调颜色）：
 *   1) style.css 第 322 行给 `.wp-block-group.contact .contact-item .ci-text a`
 *      加了 `color: var(--primary) !important`（用来压旧的 inline 白字，白卡上白字会隐形）。
 *      带 !important 的声明会连 :hover 状态一起压住，所以悬停时字色仍是品牌蓝。
 *   2) style.css 第 340 行 `.map-btn:hover { background: var(--primary); }`
 *      把底色改成同一个品牌蓝 → 蓝底 + 蓝字 = 看不出字。
 *
 * 处理：按需求参照首页「电话：19974717371」按钮（.btn-secondary）的观感统一为
 *      「描边胶囊 → 悬停实心蓝」：底色透明 + 品牌蓝描边 + 品牌蓝字；悬停填实心蓝、字转白。
 *      这里的权重高于上面那条 !important（0,4,1 → 0,6,1），并且同样带 !important，
 *      才能把悬停字色真正改回白色。
 * ========================================================= */
.wp-block-group.contact .contact-item .ci-text a.map-btn {
  background: transparent;
  border: 1px solid var(--primary);
  color: var(--primary) !important;
}

.wp-block-group.contact .contact-item .ci-text a.map-btn:hover {
  background: var(--primary);
  border-color: var(--primary);
  color: #fff !important;
}

/* =========================================================
 * 19. 首页首屏口号胶囊（.hero-badge）
 *
 * 背景：apple.css 里 .hero-badge（权重 0,1,0）定义了小胶囊样式，
 *      但首页首屏的 <p> 同时命中 .hero p（权重 0,1,1），
 *      而 0,1,1 > 0,1,0 —— 字号会被抬到 clamp(17px,2.2vw,21px)、
 *      下边距变 36px、max-width 被限成 620px，胶囊会明显变大变形。
 *
 * 处理：用 p.hero-badge（0,2,1）把胶囊的观感拿回来，只作用于首屏这一个 <p>，
 *      不影响 .jl-trustbar / .hero-actions 等其它 .hero p 规则。
 * ========================================================= */
.hero p.hero-badge {
  display: inline-block;
  font-size: 13px;
  line-height: 1.45;
  letter-spacing: 0;
  max-width: none;
  padding: 6px 16px;
  margin: 0 0 24px;
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 980px;
  color: var(--text-medium);
}

@media (max-width: 768px) {
  .hero p.hero-badge { font-size: 12px; padding: 5px 14px; margin-bottom: 18px; }
}

/* =========================================================
 * 20. 价格卡在「白底区块」上是隐形的 —— 给默认边框一个真实颜色
 *
 * 现象（像素实测）：8 个服务页的「指导价」区块是 .section（无背景 = 继承 body #FAFBFC），
 *   而 apple.css 的 .price-item 是 `background:#fff; border:1px solid transparent`。
 *   白卡 + 透明边框压在 #FAFBFC 上，两者亮度只差 1.6%，卡片边界完全看不出来，
 *   4 档价格像散落的文字，价格卡组件等于失效。全页扫描 #D2D2D7 边框像素，
 *   指导价所在的 y 区间一条边框线都没有（只在 FAQ 卡片区才有）。
 *
 * 处理：把 transparent 换成真实的分割线色。灰底区块上同样成立（白卡+细边更好读），
 *      于是「业务板块 / 指导价」这类价格网格不再依赖灰底才看得清。
 * ========================================================= */
.price-item { border-color: var(--border); }

/* 悬停时边框再深一档，与原有的浮起阴影配合 */
.price-item:hover { border-color: var(--border-dark); }

/* =========================================================
 * 21. 服务页首屏右列：关键信息卡（替掉原来的空图位）
 *
 * 背景：首屏 .sp-hero-img 里原本是一个空的 .jl-imgslot —— 实测是一个 536×360 的
 *      纯 #F5F5F7 灰框，比左侧文字列还矮 270px，是「网站没做完」最刺眼的信号。
 *      没有实拍照片时，同一位置最该放的是「客户此刻最想确认的 5 件事」。
 * 事实来源：起价取自本页价格卡；适用取自本页「谁适合这项服务」第 1 条；
 *         其余三行是站内既有的统一口径，未新增任何承诺。
 * ========================================================= */
.jl-keyfacts {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: 26px 28px 24px;
  box-shadow: 0 10px 34px rgba(0, 0, 0, .06);
}
.jl-keyfacts .kf-title {
  font-size: 15px;
  font-weight: 600;
  color: var(--text);
  margin: 0 0 14px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--border);
}
.jl-keyfacts .kf-row {
  display: grid;
  grid-template-columns: 52px 1fr;
  gap: 12px;
  padding: 9px 0;
  border-bottom: 1px dashed var(--border);
  align-items: start;
}
.jl-keyfacts .kf-row:last-of-type { border-bottom: 0; }
.jl-keyfacts .kf-k { font-size: 13px; color: var(--text-light); letter-spacing: .05em; }
.jl-keyfacts .kf-v { font-size: 14px; color: var(--text); line-height: 1.55; }
/* 复用 .hero-actions 的按钮样式，只补这块地方需要的间距与分隔线 */
.jl-keyfacts .kf-cta {
  margin-top: 18px;
  padding-top: 18px;
  border-top: 1px solid var(--border);
}
.jl-keyfacts .kf-cta .btn-primary,
.jl-keyfacts .kf-cta .btn-secondary { font-size: 14px; padding: 9px 18px; }

@media (max-width: 860px) {
  .jl-keyfacts { padding: 22px 20px 20px; }
  .jl-keyfacts .kf-row { grid-template-columns: 46px 1fr; gap: 10px; }
}

/* =========================================================
 * 22. 首页：首屏 hero 与「服务保障」4 张卡合并为一个整块
 *
 * 原来两者是两个独立区块（.hero + .jl-guarantee-band），中间有一条
 * 灰白硬接缝。合并后 4 张卡进入 .hero > .container，与数据条同处一张
 * 背景照片之上 —— 首页最上方从「两块」变成「一块」。
 *
 * 顺带处理两个遗留问题：
 *   1) 4 张卡里各有一个空的 .gi-icon（48px 白色圆点，在白卡上本来就看不见），
 *      白占 62px 高度 —— 已在内容里删除，不再输出；
 *   2) 卡片原来靠 .jl-guarantee-band 的灰底 + 白卡形成对比，落在照片上没有边界
 *      → 改为白色卡片 + 真实边框 + 淡阴影，亮部与暗部都能立住（与第 20 节同理）。
 *
 * 注意：必须带 .hero 前缀。.hero p（0,1,1）会盖住 .guarantee-item p（0,1,1）之前的
 *      同权重规则，用 .hero .guarantee-item p（0,2,1）才能拿回卡片里的字号与行高。
 *
 * 分隔线：初版在保障条上方加过一条 rgba(0,0,0,.08) 的 border-top，客户要求去掉
 *      —— 已删除（连同为它留的 padding-top），现在数据条与保障卡之间只有 40px 间距。
 * ========================================================= */
.hero .guarantee-bar {
  margin-top: 40px;
}
.hero .guarantee-item {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 22px 22px 24px;
  text-align: left;
  box-shadow: 0 8px 24px rgba(0, 0, 0, .07);
}
.hero .guarantee-item h4 {
  font-size: 15px;
  font-weight: 600;
  margin-bottom: 8px;
  letter-spacing: -.015em;
}
.hero .guarantee-item p {
  font-size: 13px;
  color: var(--text-medium);
  line-height: 1.6;
  max-width: none;
  margin-bottom: 0;
  letter-spacing: 0;
}

@media (max-width: 860px) {
  .hero .guarantee-bar {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin-top: 32px;
  }
  .hero .guarantee-item { padding: 18px 18px 20px; }
}
@media (max-width: 520px) {
  .hero .guarantee-bar { grid-template-columns: 1fr; }
}

/* =========================================================
 * 23. 代理记账页「服务保障」4 卡（由首页首屏移入）
 *
 * 位置：放在「代理记账指导价」区块内、4 档价格与免费体检入口之后 ——
 *      客户刚看完价格，紧接着回答「出了事谁负责」，是决策点上最合适的地方。
 *
 * 两个必须显式覆盖的点（否则样式会走偏）：
 *   1) 第 10 节的 `.section .guarantee-bar`（同为 0,2,0 权重）会把区块内的保障条
 *      强制成 2 列并把宽度限成 880px 居中 —— 那是给只有 2 项的交付标准板块写的。
 *      本规则在文件更后面，同权重后者胜，因此要把它三个属性一起改回来。
 *   2) 所在区块是白底 .section，卡片不能靠灰底衬托，必须靠边框 + 淡阴影立住，
 *      与页面其它卡片（.price-item / .who-item）保持一致。
 *   3) 版式按客户要求改为居中：图标 margin:0 auto + 卡片 text-align:center
 *      （第 22 节给首页写的是左对齐，这里必须显式改回居中）。
 *
 * 另：第 22 节的 `.hero .guarantee-*` 规则保留不动 —— 现在首页已无保障条，
 *    属于备用规则；万一编辑器把旧版首页内容覆盖回来，那张卡仍会被正确渲染。
 * ========================================================= */
.jl-guard-band { margin-top: 44px; }
.jl-guard-band > h3.wp-block-heading {
  font-size: 20px;
  font-weight: 600;
  letter-spacing: -.015em;
  margin: 0 0 20px;
}
.jl-guard-band .guarantee-bar {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  max-width: none;
  margin: 0;
}
.jl-guard-band .guarantee-item {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 22px 22px 24px;
  text-align: center;
  box-shadow: 0 6px 20px rgba(0, 0, 0, .05);
}
.jl-guard-band .guarantee-item h4 {
  font-size: 15px;
  font-weight: 600;
  margin-bottom: 8px;
  letter-spacing: -.015em;
}
.jl-guard-band .guarantee-item p {
  font-size: 13px;
  color: var(--text-medium);
  line-height: 1.6;
  max-width: none;
  margin-bottom: 0;
}
/* 图标：40px 圆角方块，水平居中于卡片（margin:0 auto），与文字居中对齐。
   apple.css 的 .guarantee-item .gi-icon 是 48px 圆形，这里改成 40px 圆角方块。
   底色不用 --primary-bg —— 该令牌实际是浅灰 #F5F5F7（名字有误导），
   这里显式用主题蓝 10% 的淡蓝底（≈#E5F1FC）+ 主题蓝图标，
   让这组「保障」在一整屏白底里能被看见；这也是苹果风图标底板的做法。 */
.jl-guard-band .guarantee-item .gi-icon {
  width: 40px;
  height: 40px;
  margin: 0 auto 14px;
  border-radius: 12px;
  background: rgba(0, 113, 227, .10);
  color: var(--primary);
  display: flex;
  align-items: center;
  justify-content: center;
}
.jl-guard-band .guarantee-item .gi-icon svg { display: block; }

@media (max-width: 860px) {
  .jl-guard-band { margin-top: 34px; }
  .jl-guard-band .guarantee-bar { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .jl-guard-band .guarantee-item { padding: 18px 18px 20px; }
}
@media (max-width: 520px) {
  .jl-guard-band .guarantee-bar { grid-template-columns: 1fr; }
}

/* =========================================================
 * 24. 首页首屏数据条：加大 4 项之间的间隔
 *
 * 现状（像素实测，1440px 视口）：4 项数字分别落在 x 170 / 311 / 453 / 576，
 *   视觉间距 56 / 65 / 75 px —— 项与项靠得太近，4 个数据挤成一块。
 * 间隔来源：.hero-stats 是 flex + gap:0，项间距完全由 .hero-stat 的
 *   padding-right:44px 撑出来（apple.css L296）。
 * 处理：把 padding-right 加倍到 88px，并把 ≤768 断点从 36px 提到 48px。
 *   数据条是块级元素、max-width:980px 固定宽，所以右边距加大只是让 4 项
 *   在条内散开，不会撑破版面（实测总宽 706px < 条内可用 916px）。
 * 范围：.hero-stat 全站只有首页 post 160 用到，且这里带 .hero 前缀再限定一次。
 * 竖向排列（≤480px）时不需要右侧留白，归零。
 * ========================================================= */
.hero .hero-stat { padding-right: 88px; }

/* 数据条加宽到首屏实际可用宽度（1152 版心 − 首屏左右各 24 内边距 = 1104）。
 * 起因：客户把第 5 项改成「持证经营 + 财政局核发DLJZ43040820240037」，
 *   该项宽约 186px，5 项墨迹合计约 642px，加 4×88px 间距 = 994px，
 *   超过原来的条内可用 916px → 第 5 项折到第二行。
 * 加宽后条内可用 1040px（1104 − 左 24 − 右 40），994px 放得下。
 * 只放宽不改字号、不收间距，视觉密度与之前一致。 */
.hero .hero-stats { max-width: 1104px; }

@media (max-width: 768px) {
  .hero .hero-stat { padding-right: 48px; }
}
@media (max-width: 480px) {
  .hero .hero-stat { padding-right: 0; }
}

/* =========================================================
 * 25. 首页首屏数据条：每项的数字与说明文字上下对调
 *
 * 原样：800+            →  对调后：服务企业
 *       服务企业                  立足湖南服务全国
 *       立足湖南服务全国           800+
 *
 * 用 flex-direction: column-reverse 实现，不动任何内容（也就不用改文章，
 * 避开编辑器覆盖的风险），想撤回只删这一行。
 * .hero-stat 本身是 flex/column/gap:4px（apple.css L296），反转后间距仍由
 * gap 控制，所以把 gap 从 4px 加到 6px，让「数字落到下面」这一步有呼吸。
 * ========================================================= */
.hero .hero-stat {
  flex-direction: column-reverse;
  gap: 6px;
}

/* =========================================================
 * 26. 首页首屏数据条：4 项 → 5 项后的排版
 *
 * 数据条内可用宽 916px（max-width:980 减去左右 padding 24/40）。
 * 5 项的墨迹宽合计约 529px，加 4×88px 间距 = 881px ✓ 放得下；
 * 但 flex 换行判定会把「最后一项的 padding-right」也算进行宽（529+5×88=969），
 * 所以第 5 项被挤到了第二行（实测第一行 4 项、第二行 1 项）。
 * 处理：最后一项的右侧留白归零 —— 它后面本来就不需要间距。
 *
 * 窄屏兜底：单行阈值约 1040px（再窄数据条本身会被容器压小），
 * 低于它改成 3 列网格（3+2），避免出现「4+1」这种难看的一行孤项。
 * 768 → 2 列；480 → 单列（竖排）。
 * 注意：本节点在文件里位于第 24、25 节之后，同权重下后者胜，
 * 所以 ≤768 时这里给的 20px 会覆盖第 24 节的 48px。
 * ========================================================= */
.hero .hero-stat:last-child { padding-right: 0; }

@media (max-width: 1040px) {
  .hero .hero-stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    row-gap: 22px;
  }
  .hero .hero-stat { padding-right: 20px; }
}
@media (max-width: 768px) {
  .hero .hero-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 480px) {
  .hero .hero-stats { grid-template-columns: 1fr; }
  .hero .hero-stat { padding-right: 0; }
}

/* =========================================================
 * 27. 客户案例页「按业务板块找案例」—— 导航改为卡片墙
 *
 * 原来 [jl_case_nav] 输出的是 <ul class="jl-scope-list"> 一行一个链接，
 * 8 个板块排成一列纯文字，看不出各自有多少案例、也不吸引点击。
 *
 * 现在：8 张卡片，每张 = 板块名 + 实时案例数（小胶囊）+ 该板块说明 + 跳转链接。
 *   卡片直接复用 .al-card（白卡 + 1px var(--border) 真实边框 + 悬停浮起），
 *   所以这里只管网格与胶囊、链接两处样式。
 *   列数自适应：repeat(auto-fit, minmax(280px, 1fr)) —— 与行业资讯页 .blog-grid 同构。
 *   3 张卡平铺满 3 栏（1440 容器 1154px ⇒ 3 条轨道、各约 373px）；
 *   auto-fit 会收掉空轨道 ⇒ 卡片数不足整排时不再留空栏（2026-10-02 实测）。
 *   ≤560 单列保留为兜底（实测 auto-fit 在该宽度本身也已退到 1 列）。
 *   说明：.al-card 自带 display:flex/column，链接用 margin-top:auto 压到底部，
 *   卡片高度不齐时按钮仍对齐。
 * ========================================================= */
.jl-case-nav {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 18px;
  margin-top: 32px;
}
.jl-case-nav-card { padding: 22px; }
.jl-case-nav-card h3 { align-items: center; }
.jl-case-nav-num {
  font-size: 12.5px;
  font-weight: 600;
  color: var(--text-light);
  background: var(--primary-bg);
  border-radius: 999px;
  padding: 2px 10px;
  letter-spacing: 0;
  white-space: nowrap;
}
.jl-case-nav-card .al-row { font-size: 13.5px; }
.jl-case-nav-more {
  margin-top: auto;
  font-size: 13.5px;
  font-weight: 600;
  color: var(--primary);
  text-decoration: none;
}
.jl-case-nav-more:hover { color: var(--primary-dark); }

@media (max-width: 560px) {
  .jl-case-nav { grid-template-columns: 1fr; }
}

/* =========================================================
 * 28. 恰好 4 张卡的 .al-types 排成一行 4 个
 *
 * 背景：.al-types 默认 repeat(auto-fit, minmax(300px,1fr))，1152px 版心下
 *   只能放 3 列 —— 玖隆联盟页「资源合作」正好是 4 张卡，于是排成「3 + 1」，
 *   第 4 张孤零零占一行。
 *
 * 处理：用 :has() 精确判断「这个 al-types 里正好有 4 个 al-card」，
 *   命中才改成 4 列，其它 al-types（FAQ 12 张、服务边界 2 张、三种做法 3 张）
 *   完全不受影响。
 *   为什么不用改文章加 class：内容层改动会被编辑器覆盖（本站已发生过多次），
 *   纯 CSS 判断没有这个风险；旧浏览器不认 :has() 时退回默认 3 列，不会坏版。
 *   列宽用 minmax(0,1fr)（不是 300px）：4 列时每列约 274px，写死 300 会撑破。
 * ========================================================= */
.al-types:has(> .al-card:nth-child(4):last-child):not(.jl-stage-groups) {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
@media (max-width: 1040px) {
  .al-types:has(> .al-card:nth-child(4):last-child):not(.jl-stage-groups) {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 560px) {
  .al-types:has(> .al-card:nth-child(4):last-child):not(.jl-stage-groups) {
    grid-template-columns: 1fr;
  }
}

/* =========================================================
 * 29. 首页阶段区块（4 张组卡）排 2×2
 *
 * 这一块现在有 4 张组卡（注册与起步 / 日常账税 / 增长与资金 / 风险与异常），
 * 每张里面是 3–6 条「阶段 + 描述 + 建议」。
 * 若不管它，会先命中第 28 节「正好 4 张卡排 4 列」的规则 → 4 张挤成一行
 * （每张仅约 274px，条目要折很多行）。组卡是纵向条目列表，2 列更合适。
 *
 * 选择器与第 28 节同为 (0,2,0)，靠本节点更靠后来胜出；容器上的
 * .jl-stage-groups 是内容里加的专属类（注释与 div 同步改过）。
 * ========================================================= */
.al-types.jl-stage-groups {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
@media (max-width: 860px) {
  .al-types.jl-stage-groups {
    grid-template-columns: 1fr;
  }
}

/* =========================================================
 * 30. 服务页「办理流程」＝方案 A 的卡片 + 方案 B 的连接线
 *
 * 旧样式（apple.css L931–995）与全站语言不一致：
 *   ① 圆点蓝黑交替（nth-child(2)(4) 是纯黑 #1D1D1F）；
 *   ② 连接符是 1.5px 边框拼的小箭头；
 *   ③ 说明文字 11px（全站最小）；
 *   ④ 步骤固定 110px 窄列，文字挤成 3–4 行；
 *   ⑤ .flow-diagram 有 min-height:320px，撑出大片空白。
 *
 * 现在改成：四张白色圆角卡（与首页组卡 / 服务页卡片同一套），
 *   序号用浅蓝方片，说明 13.5px；卡片之间保留一段细灰线表示先后顺序
 *   （取代原来的箭头）。只改样式，不动任何文章内容。
 *
 * 连接线定位：卡片纵向正中（top:50% + translateY(-50%)，按需改为穿过序号方块中线的话
 *   用 top:39px 即可）；线宽 = 网格 gap（16px），从卡片右侧 -16px 起画，刚好搭到下一张卡。
 *
 * apple.css 在 ≤768px 下有 .flow-step{flex-direction:row} 等规则，
 *   但本节点选择器权重更高（0,3,0 > 0,1,0/0,2,0），不会被它们覆盖。
 * ========================================================= */
.flow-diagram.sp-flow {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
  align-items: stretch;
  background: transparent;
  border: 0;
  border-radius: 0;
  padding: 0;
  margin: 30px 0 0;
  min-height: 0;
}
.flow-diagram.sp-flow .flow-step {
  position: relative;
  display: block;
  width: auto;
  text-align: center;
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: 24px 22px;
}
/* 卡片之间的连接线（方案 B） */
.flow-diagram.sp-flow .flow-step:not(:last-child)::after {
  content: "";
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  right: -16px;
  width: 16px;
  height: 1px;
  background: var(--border);
}
/* 卡片内的序号方块（1/2/3/4）：按客户要求隐藏。
 * 想恢复：删掉下面这一行 display:none 即可（其余样式都还在）。
 * 只作用在 .flow-diagram.sp-flow 里的 .step-circle，不影响站内其它同名元素。 */
.flow-diagram.sp-flow .step-circle {
  display: none;
  width: 30px;
  height: 30px;
  border-radius: 9px;
  background: rgba(0, 113, 227, .10);
  color: var(--primary);
  font-size: 14px;
  font-weight: 700;
  margin: 0 auto 14px;
  box-shadow: none;
  position: static;
}
.flow-diagram.sp-flow .step-circle::after { display: none; }   /* 去掉旧箭头 */
.flow-diagram.sp-flow .step-label {
  font-size: 15px;
  font-weight: 600;
  color: var(--text);
  margin: 0 0 7px;
  line-height: 1.45;
}
.flow-diagram.sp-flow .step-desc {
  font-size: 13.5px;
  color: var(--text-medium);
  margin: 0;
  line-height: 1.62;
}
/* 两列时，第 2 张卡右边是下一行，不能画连接线 */
@media (max-width: 1040px) {
  .flow-diagram.sp-flow { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .flow-diagram.sp-flow .flow-step:nth-child(2)::after { display: none; }
}
/* 单列时全部不画 */
@media (max-width: 620px) {
  .flow-diagram.sp-flow { grid-template-columns: 1fr; }
  .flow-diagram.sp-flow .flow-step::after { display: none; }
}

/* =========================================================
 * 31. 首页首屏数据条：4 个数据「1 行 4 个」等分，第 5 项单独一行居中
 *
 * 起因：客户把 4 个数值都改长了（8大业务 / 800家 / 明码标价 / 6年经营），
 *   第 5 项「持证经营 + 财政局核发DLJZ43040820240037」又被挤到第二行左侧，
 *   看着像排版坏了。
 *
 * 处理：数据条改成 4 等分网格（每项占 1/4 列宽，间距交给 column-gap），
 *   第 5 项不再参与数据行 —— 它本来也不是数据，是资质凭证：
 *   整行居中、字号降到 17px、与上面 4 个数据分开 26px。
 *   纯 CSS，不动任何文字；原来第 24 节的 88px 右留白与第 26 节的
 *   3 列兜底都被这里（文件更靠后、同权重）接管，所以断点在本节重写。
 * ========================================================= */
.hero .hero-stats {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  column-gap: 24px;
  row-gap: 0;
  align-items: start;
  max-width: 1104px;
}
.hero .hero-stat { padding-right: 0; }

/* 第 5 项：资质凭证，整行居中、小一号 */
.hero .hero-stat:nth-child(5) {
  grid-column: 1 / -1;
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: center;
  gap: 8px 12px;
  margin-top: 26px;
}
.hero .hero-stat:nth-child(5) .num {
  font-size: 17px;
  font-weight: 600;
  letter-spacing: 0;
}
.hero .hero-stat:nth-child(5) .label { font-size: 13.5px; }

@media (max-width: 1040px) {
  .hero .hero-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 22px; }
}
@media (max-width: 620px) {
  .hero .hero-stats { grid-template-columns: 1fr; row-gap: 18px; }
}

/* =========================================================
 * 32. 服务页「其他服务」：7 张卡改成「一行 4 个」
 *
 * 现状：.sd-index-grid 是 apple.css L1066 的
 *   repeat(auto-fit, minmax(300px,1fr)) —— 1152 版心下只能放 3 列，
 *   而「其他服务」正好 7 张卡（其余 7 个服务各一张），于是排成 3 + 3 + 1，
 *   第 7 张孤零零占一行。
 *
 * 处理：改成 4 列 → 7 张卡排成 4 + 3。
 *   作用范围安全：全站扫描确认 .sd-index-grid 只在 8 个服务页的
 *   「其他服务」这一处使用（每页 7 张 sd-index-card），没有别的地方会受影响。
 *   列宽用 minmax(0,1fr)：4 列时每列约 264px（原来写死 300 会撑破）。
 * ========================================================= */
.sd-index-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 1040px) {
  .sd-index-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
  .sd-index-grid { grid-template-columns: 1fr; }
}

/* =========================================================
 * 33. 首页首屏两段正文不折行：放开 .hero p 的 620px 宽度上限
 *
 * 现象：apple.css 第 273 行 .hero p{max-width:620px} 本是给「左侧文字列」定宽的，
 *      但首屏第二段「税务合规 · 财务外包 · 项目申报 · 融资助贷 · 股权咨询 ·
 *      信用修复，我们服务覆盖企业经营全周期。」在 21px 下**单行需要 916.9px**，
 *      被 620px 卡住 → 折成两行，且断点落在词中间（「信用修 / 复」），很难看。
 * 处理：只放开首屏这两段正文的宽度上限。注意 max-width 只限制「上限」，
 *      不会把文字拉宽 —— 放开后文字仍按自身固有宽度渲染（374px / 845px），
 *      并不会真的铺满 1152px。
 * 排除：.hero-badge 与 .hero-actions 由 :not() 排除，观感不变
 *      （.hero-badge 另有 max-width:none 的覆盖，见第 20 节）。
 * 实测：1440 / 1280 / 1024 视口 → 1 行；≤860px 容器本身就放不下，仍折行（物理限制）。
 * 影响面：.hero 只有首页（ID 160）使用，全站其它页面不受影响。
 * ========================================================= */
.hero > .container > p:not(.hero-badge):not(.hero-actions) {
  max-width: 100%;
}

/* =========================================================
 * 34. 208 页「按行业找解决方案」的 8 张行业入口卡（原生区块）
 *
 * 背景：这块的卡片墙原本由 [jl_case_nav] 短代码渲染，但那个短代码块
 *   早已从页面正文里消失，只剩 <h2> + <p class="jl-desc">。
 *   2026-09-30 改为**正文里的原生 Gutenberg 区块**（用户要求不用短码），
 *   卡片视觉沿用站内案例卡 .case-card 家族，布局沿用第 27 节的 .jl-case-nav 网格。
 *
 * 这里只补三件事（卡片外观一条都没重复定义）：
 *   ① .jl-desc 自带 margin-bottom:64px，第 27 节的网格又带 margin-top:32px。
 *      **实测（几何探针）相邻兄弟 margin 会折叠** ⇒ 当前间距恒为 max(64,32)=64px，
 *      所以这条归零**单看是视觉空操作**，留着是为了让间距只由 .jl-desc 决定：
 *      将来若把 .jl-desc 的下边距改小，间距会跟着走，不会被 32px 顶住。
 *      （别再写「不归零会变成 96px」—— 那是想当然，被实测否掉了。）
 *   ② .case-card 是块级，8 张卡的说明长短不一（35–49 字）→ 卡身改 flex 纵向，
 *      否则底部「查看这 N 个案例」在不同卡片里高高低低；
 *   ③ .jl-case-nav-more 已有 margin-top:auto（27 节），这里给它一个能生效的父级，
 *      让链接统一压到卡片底部（实测 3 行 / 2 行 / 8 行下逐行落差均为 0px）。
 * 作用域：只在 .jl-case-nav 里生效，站内其它 .case-card（首页精选 / 8 个板块案例区）不受影响。
 * ========================================================= */
.wp-block-group.container > .wp-block-group.jl-case-nav {
  margin-top: 0;
}
.jl-case-nav .case-card {
  display: flex;
  flex-direction: column;
}
.jl-case-nav .case-card .case-body {
  display: flex;
  flex-direction: column;
  flex: 1;
}
.jl-case-nav .case-card .case-meta {
  margin-top: auto;
}

/* =========================================================
 * 35. 行业资讯文章卡改纯文字卡（2026-10-02）
 *     背景：原文章卡有 180px 图槽，没特色图时退到同一张兜底图
 *     （assets/img/case-default.webp），3 篇文章共用一张与财税无关的
 *     「仓储货架」图，且三张完全一样。按需求去掉整个图槽，改纯文字卡。
 *     范围：文章卡来自 home.php，不带 .case-card-link、也不进 .jl-case-nav，
 *     所以这里用 .blog-grid + .case-card--text 双限定，绝不影响别处的案例卡。
 *     三条规则与第 34 节同构：卡片纵向 flex → 内容区撑满 → 底部信息行贴底，
 *     使同一行内长短不一的文章卡底部对齐，而不是内容浮在中间。
 * ========================================================= */
.blog-grid .case-card--text {
  display: flex;
  flex-direction: column;
}
.blog-grid .case-card--text .case-body {
  display: flex;
  flex-direction: column;
  flex: 1;
}
.blog-grid .case-card--text .case-meta {
  margin-top: auto;
}

/* =========================================================
 * 36. 208 页行业方案卡改「纯文字卡 + 行内蓝色角标」（2026-10-02）
 *
 * 需求原文：「行业方案区块卡片，参考行业资讯页面中卡片样式
 *           （保留行业方案区块卡片蓝色标题样式）」。
 *
 * 浏览器实测（计算样式）显示，两张卡真正的差别只有三点：
 *   ① 行业资讯卡（home.php）是**纯文字卡**，完全没有顶部图槽；
 *      方案卡有一条 64px 的 .case-image-flat；
 *   ② 行业资讯卡标题是深色 rgb(25,42,61)（home.php 给链接写了 style="color:inherit"）；
 *      方案卡标题是链接蓝 rgb(0,113,227)；
 *   ③ 方案卡多一个蓝色角标胶囊（原来绝对定位在 .case-image 里）。
 * ⇒「参考行业资讯卡样式」= 去掉图槽；「保留蓝色标题」= 标题继续走全站链接蓝，
 *   即卡片渲染函数里**不加** style="color:inherit"。
 *
 * 本节 2 条规则里，只有第 1 条是「必须的」：
 *   ① .case-tag 的原样式是 `.case-image .case-tag`（apple.css:599）。
 *      图槽整块去掉后角标不再位于 .case-image 内 ⇒ 那条规则**完全不再命中**，
 *      角标会掉成一行普通黑字。这里照原样重建（蓝底白字胶囊，尺寸字重与原来一致），
 *      并改成行内块。
 *      ⚠️ 必须**显式**给 align-self —— 父级 .case-body 在第 34 节被改成 column flex，
 *      默认 align-items:stretch 会把胶囊拉成整行宽的蓝条。
 *      1.3.28 用 flex-start（贴左）；1.3.29 字号 12px → 14px（用户要求「字体再大一点」），
 *      同时**误**把本行改成 center。1.3.30 恢复 flex-start（贴左）—— 用户澄清：
 *      他说的「卡片标题」= 胶囊**下方**那个 <h4> 标题，**不是**这个行业标签胶囊。
 *      ⚠️ 口径：本项目的「卡片标题」一律指 <h4>，行业标签胶囊叫「胶囊 / 角标」。别混。
 *      1.3.31 用户**点名**要求「蓝底胶囊改为居中」⇒ 本行由 flex-start 改回 center。
 *      ⚠️ 本行已是第 4 次变动：贴左(1.3.28) → 居中(1.3.29，误读所致) → 贴左(1.3.30) → 居中(1.3.31)。
 *      再改之前先看这段沿革 —— 别把「为什么现在是 center」当成 bug 修回去。
 *   ② 标题的蓝色当前由全站 a{color:var(--primary)} 提供，实测已是 rgb(0,113,227)。
 *      这里**显式钉住**：不是空操作 —— 它把卡片标题色与全站链接色解耦，
 *      将来调整全站链接色时，卡片标题不会跟着漂。
 *   ③ 1.3.30 新增：**卡片标题（h4）水平居中** —— 用户要求「下面的标题改为位于卡片居中」。
 *      只给 h4 加 text-align:center，<a> 是行内元素、跟着居中；说明段与 .case-meta 保持左对齐。
 *   ④ 1.3.31 起**胶囊与标题同时居中**（胶囊 align-self:center + h4 text-align:center）。
 *      说明段 / .case-meta（阅读全文）仍左对齐 —— 居中的只有这两行。
 *
 * 作用域：只在 .jl-case-nav 内，站内其它 .case-card（首页精选、行业资讯卡）不受影响。
 * ========================================================= */
.jl-case-nav .case-body .case-tag {
  display: inline-block;
  align-self: center;
  margin: 0 0 10px;
  padding: 6px 16px;
  background: var(--primary);
  color: #fff;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.5;
  border-radius: 980px;
}
.jl-case-nav .case-body h4 {
  text-align: center;
}
.jl-case-nav .case-body h4 a {
  color: var(--primary);
}


/* ========================================================= 第 37 节
 * 关于页（22）· 企业理念卡（1.3.32 三列新增 → 1.3.33 四列
 *                        → **1.3.34 auto-fit：按网页宽度自动均分填满**）
 * ------------------------------------------------------------------
 * 需求：用户提供「服务宗旨 / 企业愿景 / 企业定位」三行企业理念，要求整合进关于页的
 *       企业简介并以卡片呈现（10-03 拍板）。随后用户**自己又新增了一张「企业原则」卡**
 *       （共 4 张），并要求**一行 4 个**且**区块宽度与网页一致**（1.3.33）。
 *       ⚠️ 用户随后把卡片改成 **3 张（价值观 / 愿景 / 使命）** ⇒ 固定 4 列会空出一列，
 *          故 1.3.34 改为 **列数自动**（auto-fit），卡片数再变也不用动 CSS。
 * 结构：.about-mottos（grid **auto-fit / minmax(240px,1fr)**） > .about-motto × N（h4 + p）
 * 宽度：卡片组铺满**内容列 1152px**，右边界 1296px —— 与站内 .price-grid / .who-grid /
 *       .jl-cred-grid **同一个右边界**。改前只有 900px（右边界 1044px），短 252px：
 *       根因是第 7 节 `.about-inner > :only-child{max-width:900px}`（撤右图后给文字列
 *       设的可读性上限）。这里**只放行本卡片组所在的列**，正文段落上限照旧保留。
 * 范式：白底 + 1px var(--border) + var(--radius:18px) + padding 22px 20px
 *       —— 与站内 .who-item / .price-item 卡片**同范式**，不另造一套视觉。
 * 作用域：只命中 .about-motto（关于页专用）。**不影响** .about-highlight 那四张服务特色卡
 *       —— 那四张是「图标 + h4 + p」的无边框形态，定义在 apple.css:463，选择器互不相交。
 * ⚠️ 沿革：1.3.32 **纯新增** —— 此前不存在，且未改动任何旧规则；
 *       1.3.33 用户自己加了第 4 张卡（企业原则），并要求一行 4 个 + 与网页同宽 ⇒
 *             栅格 3 列改 4 列、放行 900px 宽度上限、响应式改 968/640 两档
 *             —— 这是本组件**首次被改动**。
 *       1.3.34 **用户又把卡片改成 3 张（价值观 / 愿景 / 使命）** ⇒ 固定 4 列会空一列。
 *             改为 `repeat(auto-fit, minmax(240px, 1fr))`：**列数自动** ⇒
 *             3 张 3 列、4 张 4 列，永远均分铺满；`≤768px` 单列兜底。
 *             ✅ 卡片数再变不用改 CSS（这是本轮真正的诉求）。
 *      字符口径：共赢一律写「合作共赢」（用户 10-03 选定，不写「共建共赢」）。
 * ========================================================= */
.about-mottos{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
  gap:16px;
  margin-top:32px;
}
/* 铺满内容列：放行第 7 节给 .about-inner 唯一子列设的 900px 上限。
   ⚠️ 只放行本列 —— 用 .about-text:only-child 提高特异性，不动第 7 节原规则。 */
.about-inner > .about-text:only-child{
  max-width:none;
}
/* 正文段落的可读性上限照旧保留（卡片组才需要铺满，长行文字不需要） */
.about-text > p{
  max-width:900px;
}
.about-motto{
  background:#fff;
  border:1px solid var(--border);
  border-radius:var(--radius);
  padding:22px 20px;
  text-align:center;
}
.about-motto h4{
  font-size:13px;
  font-weight:500;
  color:var(--text-light);
  margin:0 0 8px;
  letter-spacing:0.02em;
}
.about-motto p{
  font-size:16px;
  font-weight:600;
  color:var(--text);
  margin:0;
  line-height:1.5;
  letter-spacing:-0.015em;
}
@media(max-width:768px){
  .about-mottos{grid-template-columns:1fr;gap:12px}
}
