/* ==========================================================================
   泓鑫源湘律在线 — 全站样式
   专业法律门户风格：深蓝主色 + 金铜辅助色，白底卡片，浅灰分区
   ========================================================================== */

:root {
  --brand:        #0f4c81;
  --brand-dark:   #0a3557;
  --brand-light:  #1b6cb0;
  --brand-tint:   #eef4fa;
  --accent:       #b8860b;
  --accent-tint:  #fdf8ec;

  --ink:          #1c2733;
  --ink-2:        #46586b;
  --ink-3:        #7c8b9a;
  --line:         #e2e8ef;
  --line-2:       #cbd6e2;
  --bg:           #f4f7fa;
  --card:         #ffffff;

  --ok:           #1f7a4d;
  --warn:         #b45309;
  --radius:       8px;
  --radius-lg:    12px;
  --shadow:       0 1px 3px rgba(15,76,129,.07), 0 6px 20px rgba(15,76,129,.05);
  --wrap:         1180px;
  --font: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC",
          "Hiragino Sans GB", "Microsoft YaHei", "Source Han Sans SC", sans-serif;
}

* { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; }

body {
  margin: 0;
  font-family: var(--font);
  font-size: 15px;
  line-height: 1.8;
  color: var(--ink);
  background: var(--bg);
  -webkit-font-smoothing: antialiased;
}

img { max-width: 100%; height: auto; border: 0; }
a { color: var(--brand); text-decoration: none; }
a:hover { color: var(--brand-light); text-decoration: underline; }

h1, h2, h3, h4 { line-height: 1.4; margin: 0 0 .6em; font-weight: 600; }
h1 { font-size: 26px; }
h2 { font-size: 20px; }
h3 { font-size: 17px; }
h4 { font-size: 15px; }
p { margin: 0 0 1em; }

.wrap { max-width: var(--wrap); margin: 0 auto; padding: 0 20px; }

/* ---------- 顶部条 ---------- */
.topbar {
  background: var(--brand-dark);
  color: #cfe0f0;
  font-size: 13px;
  line-height: 34px;
}
.topbar .wrap { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.topbar a { color: #cfe0f0; }
.topbar a:hover { color: #fff; }
.topbar .tb-r { display: flex; gap: 16px; white-space: nowrap; }
.topbar .tb-l { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* ---------- 头部 ---------- */
.site-header { background: var(--card); border-bottom: 1px solid var(--line); }
.site-header .wrap {
  display: flex; align-items: center; justify-content: space-between;
  gap: 20px; padding-top: 16px; padding-bottom: 16px;
}
.logo { display: flex; align-items: center; gap: 12px; }
.logo-mark {
  width: 44px; height: 44px; border-radius: 10px; flex: 0 0 44px;
  background: var(--brand); color: #fff;
  display: flex; align-items: center; justify-content: center;
  font-size: 19px; font-weight: 700; letter-spacing: 1px;
}
.logo-txt b { display: block; font-size: 19px; color: var(--ink); line-height: 1.25; }
.logo-txt span { display: block; font-size: 12px; color: var(--ink-3); }
.head-cta { text-align: right; }
.head-cta .num { font-size: 22px; font-weight: 700; color: var(--brand); letter-spacing: .5px; }
.head-cta .lbl { font-size: 12px; color: var(--ink-3); }

/* ---------- 主导航 ---------- */
.mainnav { background: var(--brand); }
.mainnav ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; }
.mainnav li { position: relative; }
.mainnav a {
  display: block; color: #e8f1f9; padding: 13px 17px; font-size: 15px;
}
.mainnav a:hover, .mainnav a.on {
  background: var(--brand-dark); color: #fff; text-decoration: none;
}
.has-sub > a::after { content: " ▾"; font-size: 11px; opacity: .8; }
.subnav {
  display: none; position: absolute; top: 100%; left: 0; z-index: 60;
  background: var(--card); border: 1px solid var(--line);
  box-shadow: var(--shadow); border-radius: 0 0 var(--radius) var(--radius);
  min-width: 460px; padding: 10px;
}
.subnav.cols2 { min-width: 320px; }
/* 按大区/重点城市分组的下拉（用 subgrp 分块） */
.subnav.wide { min-width: 600px; }
.subnav.wide a { width: 20%; }
/* 「按地区找律师」下拉：8 个大区 × 34 个省级行政区，六列排布。
   行内放的是**省份**而不是城市 —— 城市有 369 个，铺进下拉就没人读得动了。 */
.subnav.prov { min-width: 780px; }
.subnav.prov a { width: 16.66%; }
.subnav .subgrp {
  width: 100%; font-size: 12px; font-weight: 600; letter-spacing: .02em;
  color: var(--ink-3); padding: 8px 12px 2px; margin: 0;
}
.subnav .subgrp:first-child { padding-top: 2px; }
.has-sub:hover .subnav { display: flex; flex-wrap: wrap; }
.subnav a {
  color: var(--ink-2) !important; padding: 6px 12px; font-size: 13.5px;
  background: none !important; border-radius: 4px; width: 33.33%;
}
.subnav.cols2 a { width: 50%; }
.subnav a:hover { background: var(--brand-tint) !important; color: var(--brand) !important; }

/* 移动端菜单按钮 */
.navtoggle {
  display: none; background: var(--brand-dark); color: #fff; border: 0;
  font-size: 15px; padding: 12px 20px; width: 100%; text-align: left; cursor: pointer;
}

/* ---------- 面包屑 ---------- */
.crumb { font-size: 13px; color: var(--ink-3); padding: 14px 0; }
.crumb a { color: var(--ink-3); }
.crumb span { color: var(--ink-2); }
.crumb i { font-style: normal; margin: 0 6px; color: var(--line-2); }

/* ---------- 通栏 hero ---------- */
.hero {
  background: linear-gradient(180deg, var(--brand) 0%, var(--brand-dark) 100%);
  color: #fff; padding: 44px 0 40px;
}
.hero h1 { color: #fff; font-size: 30px; margin-bottom: 12px; }
.hero p { color: #cfe0f0; font-size: 15.5px; margin-bottom: 0; max-width: 860px; }
.hero .hero-cta { margin-top: 22px; display: flex; flex-wrap: wrap; gap: 12px; }
.btn {
  display: inline-block; padding: 11px 26px; border-radius: 6px;
  font-size: 15px; font-weight: 500; border: 1px solid transparent;
}
.btn-primary { background: var(--accent); color: #fff; }
.btn-primary:hover { background: #9c7109; color: #fff; text-decoration: none; }
.btn-ghost { background: rgba(255,255,255,.12); color: #fff; border-color: rgba(255,255,255,.45); }
.btn-ghost:hover { background: rgba(255,255,255,.22); color: #fff; text-decoration: none; }
.btn-line { background: #fff; color: var(--brand); border-color: var(--line-2); }
.btn-line:hover { border-color: var(--brand); text-decoration: none; }

/* ---------- 通用区块 ---------- */
.section { padding: 34px 0; }
.section.tight { padding: 22px 0; }
.sec-head { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; margin-bottom: 18px; }
.sec-head h2 { margin: 0; font-size: 21px; color: var(--ink); }
.sec-head h2 em { font-style: normal; color: var(--brand); }
.sec-head .more { font-size: 13px; color: var(--ink-3); white-space: nowrap; }

.card {
  background: var(--card); border: 1px solid var(--line);
  border-radius: var(--radius-lg); padding: 24px 26px; box-shadow: var(--shadow);
}
.card + .card { margin-top: 18px; }
.card h2:first-child, .card h3:first-child { margin-top: 0; }

.grid { display: grid; gap: 16px; }
.g2 { grid-template-columns: repeat(2, minmax(0,1fr)); }
.g3 { grid-template-columns: repeat(3, minmax(0,1fr)); }
.g4 { grid-template-columns: repeat(4, minmax(0,1fr)); }

/* ---------- 服务卡片 ---------- */
.svc {
  background: var(--card); border: 1px solid var(--line); border-radius: var(--radius-lg);
  padding: 20px 22px; display: block; color: var(--ink);
  transition: border-color .15s, box-shadow .15s;
}
.svc:hover { border-color: var(--brand-light); box-shadow: var(--shadow); text-decoration: none; }
.svc b { display: block; font-size: 16.5px; color: var(--brand); margin-bottom: 6px; }
.svc span { display: block; font-size: 13.5px; color: var(--ink-2); line-height: 1.7; }
.svc .tags { margin-top: 10px; }
.svc .tags i {
  font-style: normal; display: inline-block; font-size: 12px; color: var(--brand);
  background: var(--brand-tint); border-radius: 20px; padding: 2px 10px; margin: 3px 6px 0 0;
}

/* ---------- 地区网格 ---------- */
/* auto-fill 而不是固定 6 列：区县名长短差别很大（「锦江区」3 字、
   「双江拉祜族佤族布朗族傣族自治县」15 字），固定列数在窄屏上会把长名压到换行、
   在宽屏上又留出大片空白。auto-fill + minmax 让列数跟着容器与字号走。
   .c4 / .c5 / .c6 是「想固定列数」时的显式选择（旧内联样式改过来的），
   移动端由下面的媒体查询统一降列 —— 内联样式做不到这一点，所以全部改成了类。 */
.citygrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(152px, 1fr)); gap: 12px; }
.citygrid.c4 { grid-template-columns: repeat(4, minmax(0,1fr)); }
.citygrid.c5 { grid-template-columns: repeat(5, minmax(0,1fr)); }
.citygrid.c6 { grid-template-columns: repeat(6, minmax(0,1fr)); }
.citychip {
  background: var(--card); border: 1px solid var(--line); border-radius: var(--radius);
  padding: 14px 10px; text-align: center; font-size: 15px; color: var(--ink);
  font-weight: 500;
}
.citychip:hover { border-color: var(--brand); background: var(--brand-tint); color: var(--brand); text-decoration: none; }
.citychip small { display: block; font-size: 11.5px; color: var(--ink-3); font-weight: 400; margin-top: 2px; }
/* 目录里的区县方块：数量上千，压缩到占一行就能读的密度 */
.citychip.sm { font-size: 13px; padding: 8px 6px; border-radius: 6px; }

/* ---------- 多列清单（原内联 columns:N，改类以便移动端降列） ---------- */
.collist { columns: 4; column-gap: 20px; }
.collist.c3 { columns: 3; }
.collist.c2 { columns: 2; }
.collist li { break-inside: avoid; }

/* ---------- 省级页的「市 → 区县」二级栏目目录 ---------- */
.provdir { border-top: 1px solid var(--line); margin-top: 6px; }
.provdir-row {
  border-bottom: 1px solid var(--line);
  padding: 14px 0 16px; display: grid; gap: 10px;
}
.provdir-row:last-child { border-bottom: 0; padding-bottom: 0; }
.provdir-row .citychip { text-align: left; }
.provdir-none { font-size: 13px; color: var(--ink-3); margin: 0; }

/* ---------- 地域总览页：按城市首字母找 ---------- */
.azlead { font-size: 14px; color: var(--ink-2); margin: 0 0 14px; }
.azjumps { display: flex; flex-wrap: wrap; gap: 6px; margin: 14px 0 18px; }
.azjump {
  display: inline-block; min-width: 30px; text-align: center; padding: 5px 8px;
  border: 1px solid var(--line); border-radius: 6px; font-size: 13px; color: var(--ink-2);
}
.azjump:hover {
  border-color: var(--brand); color: var(--brand); background: var(--brand-tint);
  text-decoration: none;
}
.azbox { display: flex; gap: 14px; padding: 12px 0; border-top: 1px solid var(--line); }
.azbox:first-of-type { border-top: 0; }
.azletter { flex: 0 0 30px; font-size: 18px; color: var(--brand); line-height: 1.4; }
.azbox .citygrid { flex: 1 1 auto; min-width: 0; }
/* 首页/地域页的大区分块标题 */
.rg-title {
  font-size: 14.5px; font-weight: 600; color: var(--ink-2);
  margin: 22px 0 10px; padding-left: 10px; border-left: 3px solid var(--brand);
}
.rg-title:first-child { margin-top: 4px; }
.rg-lead { font-size: 13.5px; color: #46586b; margin: 0 0 10px; }
/* 地域总览页：省份卡片内的城市链接 */
.provcard .linkblock a { font-size: 13px; }
.provcard h3 { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; }
.prov-n {
  font-size: 11.5px; font-weight: 400; color: var(--brand);
  background: var(--brand-tint); border-radius: 10px; padding: 2px 8px;
}

/* ---------- 内链块（关键词锚文本） ---------- */
.linkblock { background: var(--brand-tint); border: 1px solid #d6e4f1; border-radius: var(--radius-lg); padding: 20px 24px; }
.linkblock h3 { font-size: 15px; margin: 0 0 12px; color: var(--brand-dark); }
.linkblock ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px 10px; }
.linkblock li { margin: 0; }
.linkblock a {
  display: inline-block; font-size: 13.5px; background: #fff;
  border: 1px solid #d6e4f1; border-radius: 20px; padding: 5px 14px; color: var(--brand);
}
.linkblock a:hover { background: var(--brand); color: #fff; border-color: var(--brand); text-decoration: none; }

/* ---------- 文章 / 知识列表 ---------- */
.postlist { list-style: none; margin: 0; padding: 0; }
.postlist li { border-bottom: 1px dashed var(--line); padding: 13px 0; }
.postlist li:last-child { border-bottom: 0; }
.postlist a { font-size: 15.5px; font-weight: 500; }
.postlist .meta { font-size: 12.5px; color: var(--ink-3); margin-left: 10px; }
.postlist .desc { font-size: 13.5px; color: var(--ink-2); margin: 4px 0 0; line-height: 1.7; }

/* ---------- 正文排版（AI 生成内容容器） ---------- */
.article-body { font-size: 15.5px; line-height: 1.95; color: #24313d; }
.article-body h2 { font-size: 19px; margin: 30px 0 12px; padding-left: 12px; border-left: 4px solid var(--brand); }
.article-body h3 { font-size: 16.5px; margin: 24px 0 10px; color: var(--brand-dark); }
.article-body h4 { font-size: 15px; margin: 20px 0 8px; }
.article-body p { margin: 0 0 14px; }
.article-body ul, .article-body ol { margin: 0 0 16px; padding-left: 24px; }
.article-body li { margin: 6px 0; }
.article-body strong { color: var(--ink); font-weight: 600; }
.article-body blockquote {
  margin: 18px 0; padding: 14px 20px; background: var(--accent-tint);
  border-left: 4px solid var(--accent); border-radius: 0 var(--radius) var(--radius) 0;
  color: #5a4a1e; font-size: 14.5px;
}
.article-body table { width: 100%; border-collapse: collapse; margin: 18px 0; font-size: 14px; }
.article-body th, .article-body td { border: 1px solid var(--line-2); padding: 9px 12px; text-align: left; }
.article-body th { background: var(--brand-tint); font-weight: 600; }
.article-body a { border-bottom: 1px solid #b9d3ea; }
.article-meta { font-size: 13px; color: var(--ink-3); border-bottom: 1px solid var(--line); padding-bottom: 14px; margin-bottom: 24px; }
.article-meta .tags { margin-top: 6px; }
.article-meta .tags i {
  font-style: normal; display: inline-block; font-size: 12px; color: var(--brand);
  background: var(--brand-tint); border-radius: 20px; padding: 2px 10px; margin: 0 6px 4px 0;
}

/* ---------- FAQ ---------- */
.faq { border-top: 1px solid var(--line); }
.faq details { border-bottom: 1px solid var(--line); }
.faq summary {
  cursor: pointer; padding: 15px 30px 15px 0; font-size: 15.5px; font-weight: 500;
  position: relative; list-style: none; color: var(--ink);
}
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after {
  content: "+"; position: absolute; right: 6px; top: 50%; transform: translateY(-50%);
  font-size: 20px; color: var(--brand); font-weight: 400;
}
.faq details[open] summary::after { content: "−"; }
.faq .a { padding: 0 30px 18px 0; color: var(--ink-2); font-size: 14.5px; line-height: 1.9; }

/* ---------- 流程步骤 ---------- */
.steps { list-style: none; margin: 0; padding: 0; counter-reset: st; }
.steps li {
  position: relative; padding: 0 0 18px 44px; counter-increment: st;
  border-left: 2px dashed var(--line-2); margin-left: 13px;
}
.steps li:last-child { border-left-color: transparent; padding-bottom: 0; }
.steps li::before {
  content: counter(st); position: absolute; left: -15px; top: 0;
  width: 28px; height: 28px; border-radius: 50%; background: var(--brand); color: #fff;
  font-size: 13px; font-weight: 600; display: flex; align-items: center; justify-content: center;
}
.steps b { display: block; font-size: 15.5px; margin-bottom: 3px; }
.steps span { font-size: 14px; color: var(--ink-2); }

/* ---------- 表格 ---------- */
.table { width: 100%; border-collapse: collapse; font-size: 14px; margin: 0 0 18px; }
.table th, .table td { border: 1px solid var(--line-2); padding: 10px 13px; text-align: left; vertical-align: top; }
.table th { background: var(--brand-tint); font-weight: 600; width: 32%; }

/* ---------- 侧栏 ---------- */
.layout { display: grid; grid-template-columns: minmax(0,1fr) 320px; gap: 22px; align-items: start; }
.side-card { background: var(--card); border: 1px solid var(--line); border-radius: var(--radius-lg); padding: 20px 22px; box-shadow: var(--shadow); }
.side-card + .side-card { margin-top: 16px; }
.side-card h3 { font-size: 16px; margin: 0 0 14px; padding-bottom: 10px; border-bottom: 1px solid var(--line); }
.side-card dl { margin: 0; font-size: 14px; }
.side-card dt { color: var(--ink-3); font-size: 12.5px; margin-top: 10px; }
.side-card dd { margin: 2px 0 0; color: var(--ink); }
.side-tel { font-size: 21px; font-weight: 700; color: var(--brand); letter-spacing: .5px; }
/* 页头与侧栏的大字联系方式是「点击复制微信号」，要有可点的暗示 */
.head-cta .cp, .side-tel .cp { cursor: pointer; user-select: none; }
.head-cta .cp:hover, .side-tel .cp:hover { color: var(--accent); }
.side-list { list-style: none; margin: 0; padding: 0; font-size: 14px; }
.side-list li { padding: 8px 0; border-bottom: 1px dashed var(--line); }
.side-list li:last-child { border-bottom: 0; }

/* ---------- 页脚 ---------- */
.site-footer { background: #16232f; color: #9fb0c0; font-size: 13.5px; padding: 36px 0 22px; margin-top: 40px; }
.site-footer a { color: #9fb0c0; }
.site-footer a:hover { color: #fff; }
.foot-cols { display: grid; grid-template-columns: 1.35fr 1fr 0.95fr 0.95fr 1.05fr; gap: 24px; }
.site-footer h4 { color: #e6eef5; font-size: 14.5px; margin: 0 0 12px; }
.foot-links { list-style: none; margin: 0; padding: 0; }
.foot-links li { margin: 0 0 6px; }
.foot-more { margin-top: 10px; }
.foot-more summary { cursor: pointer; color: #7f95a8; font-size: 12.5px; }
.foot-more .inner { padding-top: 10px; }
.foot-bottom {
  border-top: 1px solid #26353f; margin-top: 26px; padding-top: 16px;
  display: flex; justify-content: space-between; flex-wrap: wrap; gap: 10px;
  font-size: 12.5px; color: #7f95a8;
}
.foot-bottom .disc { max-width: 760px; }

/* ---------- 悬浮联系 ---------- */
.float {
  position: fixed; right: 0; top: 42%; z-index: 900; font-size: 14px;
  display: flex; flex-direction: column; align-items: flex-end; gap: 8px;
}
.float-tab {
  background: var(--brand); color: #fff; writing-mode: vertical-rl;
  padding: 16px 8px; border-radius: 8px 0 0 8px; cursor: pointer; letter-spacing: 2px;
  font-size: 14px;
}
/* 「在线咨询」标签：唤起 chat.js 的咨询窗口，用强调色与「联系我们」区分 */
.float-tab.chat-tab { background: var(--accent, #b8860b); }
.float-panel {
  position: absolute; right: 46px; top: 0; width: 200px; background: #fff;
  border: 1px solid var(--line); border-radius: var(--radius-lg); padding: 16px;
  box-shadow: var(--shadow); opacity: 0; pointer-events: none; transform: translateX(10px);
  transition: all .2s ease;
}
.float.on .float-panel { opacity: 1; pointer-events: auto; transform: none; }
.float-panel .row { border-top: 1px dashed var(--line); padding-top: 10px; margin-top: 10px; }
.float-panel .row:first-of-type { border-top: 0; margin-top: 0; padding-top: 0; }
.float-panel .k { font-size: 12px; color: var(--ink-3); }
.float-panel .v { font-size: 15px; font-weight: 600; color: var(--brand); word-break: break-all; }
.float-panel .cp { cursor: pointer; user-select: none; }
.float-panel .cp:hover { color: var(--accent); }

/* ---------- 移动端底部咨询栏（v12）---------- */
/* 桌面不可见；≤760px 固定底栏：微信号一键复制 + 在线咨询。
   补 body 底部留白，避免遮挡页脚版权行。 */
.mbar { display: none; }
@media (max-width: 760px) {
  body { padding-bottom: 68px; }
  .mbar {
    display: flex; gap: 10px; position: fixed; left: 0; right: 0; bottom: 0; z-index: 950;
    padding: 9px 12px calc(9px + env(safe-area-inset-bottom, 0px));
    background: #fff; border-top: 1px solid var(--line);
    box-shadow: 0 -4px 16px rgba(15, 40, 70, .10);
  }
  .mbar-wx {
    flex: 1 1 auto; min-width: 0; display: flex; align-items: baseline; gap: 8px;
    border: 1.5px solid var(--brand-light); background: var(--brand-tint, #eef4fb);
    border-radius: 10px; padding: 11px 12px; font-size: 15px; font-weight: 700;
    color: var(--brand-dark); cursor: pointer; font-family: inherit;
  }
  .mbar-wx i {
    font-style: normal; font-size: 11px; font-weight: 600; color: #fff;
    background: var(--brand); border-radius: 4px; padding: 2px 6px; flex: 0 0 auto;
  }
  .mbar-wx span, .mbar-wx { word-break: break-all; }
  .mbar-wx em {
    font-style: normal; font-size: 11px; font-weight: 500; color: var(--ink-3);
    margin-left: auto; flex: 0 0 auto;
  }
  .mbar-cta {
    flex: 0 0 auto; display: flex; align-items: center; padding: 11px 18px;
    background: var(--brand); color: #fff; border-radius: 10px;
    font-size: 15px; font-weight: 600; text-decoration: none;
  }
}

/* ---------- 移动端 ---------- */
/* 断点分四档：1080（笔记本窄屏）/ 1000（平板横）/ 760（平板竖）/ 560（手机）。
   栅格类的降列必须在这里显式写 .c4/.c5/.c6 —— 媒体查询不改变优先级，
   不写就等于放任 .citygrid.c4 的 4 列一路怼到手机上。 */
@media (max-width: 1080px) {
  .citygrid.c4, .citygrid.c5, .citygrid.c6 { grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); }
}
@media (max-width: 1000px) {
  .layout { grid-template-columns: minmax(0,1fr); }
  .g4 { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .citygrid, .citygrid.c4, .citygrid.c5, .citygrid.c6 { grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); }
  .collist { columns: 3; }
  .foot-cols { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .hero { padding: 36px 0 32px; }
  .hero h1 { font-size: 26px; }
}
@media (max-width: 760px) {
  body { font-size: 15px; }
  .topbar .tb-l { display: none; }
  .site-header .wrap { flex-wrap: wrap; }
  .head-cta { text-align: left; }
  .navtoggle { display: block; }
  .mainnav ul { display: none; flex-direction: column; }
  .mainnav.open ul { display: flex; }
  .mainnav a { padding: 12px 20px; border-bottom: 1px solid rgba(255,255,255,.1); }
  .subnav { position: static; display: flex !important; flex-wrap: wrap; min-width: 0;
            box-shadow: none; border: 0; border-radius: 0; padding: 4px 8px 10px; background: var(--brand-dark); }
  .subnav a, .subnav.cols2 a, .subnav.wide a, .subnav.prov a { color: #cfe0f0 !important; width: 50%; font-size: 13px; }
  .subnav .subgrp { color: #8fa8c0 !important; padding: 10px 12px 2px; }
  .subnav a:hover { background: rgba(255,255,255,.12) !important; color: #fff !important; }
  .has-sub > a::after { display: none; }
  .hero { padding: 30px 0 26px; }
  .hero h1 { font-size: 23px; }
  .g2, .g3, .g4 { grid-template-columns: minmax(0,1fr); }
  .citygrid, .citygrid.c4, .citygrid.c5, .citygrid.c6 { grid-template-columns: repeat(auto-fill, minmax(126px, 1fr)); gap: 10px; }
  .collist, .collist.c3 { columns: 2; }
  .foot-cols { grid-template-columns: minmax(0,1fr); }
  .card { padding: 18px 16px; }
  .float { display: none; }
  .table th { width: 38%; }
  .sec-head { flex-wrap: wrap; }
  .sec-head .more { white-space: normal; }
  .azbox { gap: 8px; padding: 10px 0; }
  .azletter { flex: 0 0 22px; font-size: 16px; }
  .azjump { min-width: 26px; padding: 4px 6px; font-size: 12.5px; }
}
/* 手机：两列硬下限，长名不再挤压；chip 字号与内边距同步收一档 */
@media (max-width: 560px) {
  .wrap { padding: 0 14px; }
  .hero h1 { font-size: 21px; }
  .hero p { font-size: 14.5px; }
  .section { padding: 24px 0; }
  .card { padding: 16px 14px; border-radius: 10px; }
  .card + .card { margin-top: 14px; }
  .citygrid, .citygrid.c4, .citygrid.c5, .citygrid.c6 { grid-template-columns: repeat(2, minmax(0,1fr)); gap: 8px; }
  .citychip { font-size: 13.5px; padding: 11px 6px; }
  .citychip small { font-size: 10.5px; }
  .citychip.sm { font-size: 12.5px; padding: 8px 4px; }
  /* 字母索引在手机上把字母挪到方块上方：左右分栏会挤掉一排城市 */
  .azbox { flex-direction: column; gap: 4px; }
  .azletter { flex: none; }
  .collist, .collist.c2, .collist.c3 { columns: 1; }
  .sec-head h2 { font-size: 18px; }
  .btn { padding: 10px 20px; font-size: 14.5px; }
  /* 表格：手机上一屏放不下两张表，字号与内边距各收一档，靠换行硬撑比横向滚动好读 */
  .table { font-size: 13px; }
  .table th, .table td { padding: 8px 9px; }
  .table th { width: 34%; }
  .hero .hero-cta { gap: 8px; }
  .article-body { font-size: 15px; line-height: 1.9; }
  .article-body h2 { font-size: 17.5px; margin: 24px 0 10px; }
}

/* ══════════════════════════════════════════════════════════
   最新资讯栏目（首页更新区 / zixun.html / zixun.php）
   动态页 zixun.php 也复用这里的类名
   ══════════════════════════════════════════════════════════ */

/* 更新状态条：共 N 篇 · 最后更新 X · RSS */
.updbar {
  display: flex; align-items: center; justify-content: space-between;
  gap: 12px; flex-wrap: wrap;
  background: #f2f7fc; border: 1px solid #dbe7f3; border-radius: 8px;
  padding: 9px 14px; margin: 0 0 14px; font-size: 13px; color: #46586b;
}
.updbar b { color: #0f4c81; }
.updbar a { color: #0f4c81; font-weight: 600; text-decoration: none; white-space: nowrap; }
.updbar a:hover { text-decoration: underline; }

/* 业务 / 市州 筛选格 */
.zxgrid {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(126px, 1fr)); gap: 10px;
}
.zxchip {
  display: flex; flex-direction: column; gap: 2px;
  padding: 10px 12px; border: 1px solid #e3eaf2; border-radius: 8px;
  background: #fff; text-decoration: none; transition: .15s;
}
.zxchip:hover {
  border-color: #0f4c81; transform: translateY(-1px);
  box-shadow: 0 2px 10px rgba(15, 76, 129, .08);
}
.zxchip b { color: #12324f; font-size: 14px; font-weight: 600; }
.zxchip small { color: #8b9aab; font-size: 12px; }

/* 列表空态 */
.postlist li.empty {
  list-style: none; color: #8b9aab; font-size: 13.5px;
  padding: 16px 0; border-bottom: 1px dashed #e6edf4;
}

.zxtip { font-size: 12.5px; color: #8b9aab; margin: 14px 0 0; line-height: 1.75; }
.zxtip code {
  background: #f2f6fa; padding: 1px 5px; border-radius: 4px;
  font-size: 12px; color: #46586b;
}

/* ── 动态栏目页 zixun.php ── */

/* 筛选条 */
.zx-filter { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 0 0 10px; }
.zx-filter:last-child { margin-bottom: 0; }
.zx-filter .lb { font-size: 12.5px; color: #8b9aab; flex: 0 0 56px; }
.zx-pill {
  font-size: 13px; padding: 4px 11px; border: 1px solid #dbe7f3; border-radius: 999px;
  color: #46586b; background: #fff; text-decoration: none; transition: .15s;
}
.zx-pill:hover { border-color: #0f4c81; color: #0f4c81; }
.zx-pill.on { background: #0f4c81; border-color: #0f4c81; color: #fff; }
.zx-pill i { font-style: normal; color: #a8b6c4; font-size: 11.5px; margin-left: 3px; }
.zx-pill.on i { color: #bcd6ec; }

/* 文章列表（带日期块） */
.zx-list { list-style: none; margin: 0; padding: 0; }
.zx-item { display: flex; gap: 16px; padding: 16px 0; border-bottom: 1px dashed #e6edf4; }
.zx-item:last-child { border-bottom: 0; }
.zx-date {
  flex: 0 0 64px; text-align: center; text-decoration: none; height: fit-content;
  background: #f2f7fc; border: 1px solid #dbe7f3; border-radius: 8px; padding: 8px 4px;
  transition: .15s;
}
.zx-date b { display: block; font-size: 20px; color: #0f4c81; line-height: 1.15; }
.zx-date span { font-size: 11.5px; color: #8b9aab; }
.zx-date:hover { border-color: #0f4c81; background: #e8f2fb; }
.zx-main { min-width: 0; flex: 1; }
.zx-main h3 { margin: 0 0 6px; font-size: 16.5px; line-height: 1.5; font-weight: 600; }
.zx-main h3 a { color: #12324f; text-decoration: none; }
.zx-main h3 a:hover { color: #0f4c81; }
.zx-main p { margin: 0; font-size: 13.5px; color: #5b6b7c; line-height: 1.75; }
.zx-tags { margin-top: 8px; display: flex; flex-wrap: wrap; gap: 8px; }
.zx-tags a {
  font-size: 12px; color: #0f4c81; background: #eef5fc; border-radius: 4px;
  padding: 2px 8px; text-decoration: none;
}
.zx-tags a:hover { background: #0f4c81; color: #fff; }

/* 空态 */
.zx-empty { text-align: center; padding: 46px 20px; color: #8b9aab; }
.zx-empty b { display: block; color: #12324f; font-size: 16px; margin-bottom: 8px; }
.zx-empty p { margin: 0; font-size: 13.5px; line-height: 1.8; }

/* 分页 */
.zx-pager {
  display: flex; flex-wrap: wrap; gap: 6px; justify-content: center;
  margin: 24px 0 4px;
}
.zx-pager a, .zx-pager span {
  min-width: 34px; height: 34px; line-height: 32px; text-align: center;
  border: 1px solid #dbe7f3; border-radius: 6px; background: #fff;
  font-size: 13.5px; color: #46586b; text-decoration: none; padding: 0 10px;
}
.zx-pager a:hover { border-color: #0f4c81; color: #0f4c81; }
.zx-pager .on { background: #0f4c81; border-color: #0f4c81; color: #fff; }
.zx-pager .gap { border: 0; background: transparent; color: #a8b6c4; }

/* 侧栏归档 */
.zx-arch { list-style: none; margin: 0; padding: 0; }
.zx-arch li {
  display: flex; justify-content: space-between; align-items: center;
  padding: 8px 0; border-bottom: 1px dashed #edf2f7; font-size: 13.5px;
}
.zx-arch li:last-child { border-bottom: 0; }
.zx-arch a { color: #46586b; text-decoration: none; }
.zx-arch a:hover { color: #0f4c81; }
.zx-arch .meta { color: #a8b6c4; font-size: 12.5px; }
.zx-arch li.on a { color: #0f4c81; font-weight: 600; }

@media (max-width: 760px) {
  .zx-item { gap: 10px; }
  .zx-date { flex: 0 0 52px; }
  .zx-date b { font-size: 17px; }
  .zx-filter .lb { flex: 0 0 100%; }
}
/* ═══ 律师资源库（v2 结构升级） ═══ */
.lawgrid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 14px; }

.lawcard {
  display: flex; flex-wrap: wrap; align-items: flex-start; gap: 14px;
  background: var(--card); border: 1px solid var(--line);
  border-radius: var(--radius-lg); padding: 18px 20px;
  color: var(--ink); text-decoration: none;
  transition: border-color .15s, box-shadow .15s, transform .15s;
}
.lawcard:hover { border-color: var(--brand-light); box-shadow: var(--shadow); transform: translateY(-1px); }
.lawcard-sm { padding: 15px 17px; gap: 12px; }

.law-ava {
  flex: 0 0 46px; width: 46px; height: 46px; border-radius: 50%;
  background: linear-gradient(135deg, var(--brand) 0%, var(--brand-light) 100%);
  color: #fff; font-size: 20px; font-weight: 700; line-height: 1;
  display: flex; align-items: center; justify-content: center;
}
.lawcard-sm .law-ava { flex: 0 0 38px; width: 38px; height: 38px; font-size: 17px; }

.law-bd { display: flex; flex-direction: column; gap: 4px; min-width: 0; flex: 1 1 140px; }
.law-bd > b {
  font-size: 16px; color: var(--brand-dark); font-weight: 600;
  display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap;
}
.law-bd > b em {
  font-style: normal; font-size: 12px; font-weight: 500; color: var(--accent);
  background: var(--accent-tint); border-radius: 20px; padding: 2px 9px;
}
.law-meta { font-size: 12.5px; color: var(--ink-3); }
.law-motto { font-size: 13.5px; color: var(--ink-2); line-height: 1.65; }
.law-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 2px; }
.law-tags i {
  font-style: normal; font-size: 11.5px; color: var(--brand);
  background: var(--brand-tint); border-radius: 20px; padding: 2px 9px;
}
.law-go { flex: 0 0 auto; align-self: flex-end; margin-left: auto; font-size: 12px; color: var(--brand-light); white-space: nowrap; }

.lawchips { display: flex; flex-wrap: wrap; gap: 8px; }
.lawchip {
  display: flex; align-items: baseline; gap: 6px; text-decoration: none;
  border: 1px solid var(--line); background: var(--card); border-radius: 20px;
  padding: 6px 14px; color: var(--ink); font-size: 13.5px;
}
.lawchip:hover { border-color: var(--brand-light); background: var(--brand-tint); color: var(--brand); }
.lawchip small { color: var(--ink-3); font-size: 11.5px; }

.lawindex { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; margin-top: 18px; }
.lawidx h3 { font-size: 14.5px; margin: 0 0 10px; color: var(--brand-dark); }

.lawseclist { display: grid; gap: 16px; }
.lawsec { border-top: 1px dashed var(--line-2); padding-top: 14px; }
.lawsec:first-child { border-top: 0; padding-top: 0; }
.lawsec h3 { font-size: 15.5px; margin: 0 0 6px; color: var(--brand-dark); }
.lawsec p { margin: 0 0 6px; font-size: 13.5px; color: var(--ink-2); }
.lawmore { float: right; font-size: 13px; font-weight: 400; }
.lawrow a { color: var(--brand); text-decoration: none; }
.lawrow a:hover { text-decoration: underline; }

.law-note { font-size: 12.5px; color: var(--ink-3); line-height: 1.75; margin-top: 12px; }
.lawmore-row { margin: 12px 0 0; font-size: 13.5px; }
.lawlinkrow { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 14px; }
.lawlinkrow a {
  border: 1px solid var(--line); border-radius: 6px; padding: 7px 14px;
  font-size: 13.5px; color: var(--brand); text-decoration: none; background: var(--card);
}
.lawlinkrow a:hover { background: var(--brand-tint); border-color: var(--brand-light); }

/* ═══ 律师详情页「办案流程与节奏」（v41）═══
   用 ol 是因为顺序本身是信息；左侧竖线把各步串成一条时间轴。
   耗时单独成标签（.lf-span），因为「多久」是这一块被问得最多的问题。 */
.lawflow { list-style: none; margin: 16px 0 0; padding: 0; position: relative; }
.lawflow::before {
  content: ""; position: absolute; left: 15px; top: 12px; bottom: 12px;
  width: 2px; background: var(--line-2);
}
.lf-step { position: relative; padding: 0 0 18px 46px; }
.lf-step:last-child { padding-bottom: 2px; }
.lf-hd { display: flex; align-items: baseline; flex-wrap: wrap; gap: 8px 10px; margin-bottom: 5px; }
.lf-n {
  position: absolute; left: 0; top: 0;
  flex: 0 0 32px; width: 32px; height: 32px; border-radius: 50%;
  background: var(--brand); color: #fff; font-size: 14px; font-weight: 700;
  display: flex; align-items: center; justify-content: center;
}
.lf-stage { font-size: 15px; font-weight: 600; color: var(--brand-dark); }
.lf-span {
  font-size: 12px; font-weight: 500; color: var(--accent);
  background: var(--accent-tint); border-radius: 20px; padding: 2px 10px;
  white-space: nowrap;
}
.lf-who { margin: 0; font-size: 13.5px; color: var(--ink-2); line-height: 1.8; }

@media (max-width: 760px) {
  .lawflow::before { left: 13px; }
  .lf-step { padding-left: 40px; }
  .lf-n { flex: 0 0 28px; width: 28px; height: 28px; font-size: 13px; }
  .lf-stage { font-size: 14.5px; }
  .lf-hd { gap: 6px 8px; }
}

@media (max-width: 1024px) {
  .lawgrid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .lawindex { grid-template-columns: 1fr; gap: 16px; }
}
@media (max-width: 760px) {
  .lawgrid { grid-template-columns: 1fr; }
  .lawcard { padding: 15px 16px; }
}

/* ── 律师加盟页（v9）─────────────────────────────── */
.jointable { margin-top: 14px; border-top: 1px solid var(--line); }
.jrow {
  display: grid; grid-template-columns: 210px 1fr; gap: 8px 18px;
  padding: 13px 0; border-bottom: 1px dashed var(--line-2);
}
.jt { font-weight: 600; color: var(--brand-dark); font-size: 14px; line-height: 1.7; }
.jd { color: var(--ink-2); font-size: 13.5px; line-height: 1.8; }

.scopegrid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin-top: 14px; }
.scopecol { border: 1px solid var(--line); border-radius: var(--radius); padding: 14px 16px; background: var(--card); }
.scopecol h3 { margin: 0 0 10px; font-size: 14.5px; color: var(--brand-dark); }
.scopelist { list-style: none; margin: 0; padding: 0; }
.scopelist li { position: relative; padding: 9px 0 9px 15px; border-top: 1px dashed var(--line-2); }
.scopelist li:first-child { border-top: 0; padding-top: 0; }
.scopelist li:before {
  content: ""; position: absolute; left: 0; top: 18px;
  width: 5px; height: 5px; border-radius: 50%; background: var(--brand-light);
}
.scopelist li:first-child:before { top: 9px; }
.scopelist b { display: block; font-size: 13.5px; color: var(--ink); margin-bottom: 3px; }
.scopelist span { font-size: 13px; color: var(--ink-2); line-height: 1.75; }

.gaplist { display: grid; gap: 12px; margin-top: 14px; }
.gaprow { border: 1px solid var(--line); border-radius: var(--radius); padding: 12px 14px; }
.gaphead { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; }
.gaphead b { font-size: 14px; }
.gaphead b a { color: var(--brand); text-decoration: none; }
.gaphead b a:hover { text-decoration: underline; }
.gaphead span { font-size: 12.5px; color: var(--ink-3); white-space: nowrap; }
.gapbar { height: 6px; background: var(--line); border-radius: 4px; margin: 9px 0 7px; overflow: hidden; }
.gapbar i { display: block; height: 100%; background: var(--brand-light); border-radius: 4px; }
.gapcities { font-size: 12.5px; color: var(--ink-3); line-height: 1.7; }

@media (max-width: 760px) {
  .jrow { grid-template-columns: 1fr; gap: 4px; }
  .scopegrid { grid-template-columns: 1fr; }
}

/* ---------- 合规元素（v10）---------- */
/* 页脚主体身份与免责：改成三行之后要收一下行距，否则页脚会撑得很高 */
.foot-bottom .disc .disc-row { margin: 0 0 5px; line-height: 1.75; }
.foot-bottom .disc .disc-row:last-child { margin-bottom: 0; }
.foot-bottom .disc b { color: #a8bccd; font-weight: 600; }
/* 全国地域导航行（页脚）：34 个省级地区的全站入口，一行排开，避免省级页成为孤岛 */
.foot-regions {
  border-top: 1px solid #26353f; margin-top: 24px; padding-top: 14px;
  font-size: 12.5px; line-height: 2.05; color: #8ba0b3;
}
.foot-regions b { color: #a8bccd; font-weight: 600; }
.foot-regions a { color: #9fb0c0; }
.foot-regions a:hover { color: #fff; }
.foot-regions-more { margin-left: 8px; white-space: nowrap; color: #cfe0f0 !important; }

/* AI 生成内容标识（《人工智能生成合成内容标识办法》2025-09-01 施行） */
.aibadge {
  display: inline-block; margin-left: 6px; padding: 0 5px; border-radius: 3px;
  font-size: 11px; font-style: normal; line-height: 16px; vertical-align: 1px;
  background: #eef3f8; color: #5a7086; border: 1px solid #dbe4ee; cursor: help;
}

/* 表单同意勾选：默认必须勾上才能提交，所以视觉上要显眼但不刺眼 */
.consent {
  display: flex; align-items: flex-start; gap: 8px; margin: 4px 0 14px;
  font-size: 13px; color: #46586b; line-height: 1.65;
}
.consent input { margin-top: 3px; flex: 0 0 auto; }
.consent a { color: var(--brand); }

/* 文章页的 AI 标识与免责声明块 */
.ai-note {
  margin: 18px 0 0; padding: 13px 15px; border-radius: var(--radius);
  background: #f6f9fc; border: 1px solid var(--line);
  font-size: 13px; color: #5a7086; line-height: 1.85;
}
.ai-note b { color: var(--ink); }

/* ══════════════════════════════════════════════════════════════
   v40 模块一：法律问答库 /wenda/
   ══════════════════════════════════════════════════════════════ */

/* 总入口与索引页的入口卡片（分类 / 业务） */
.wdchips { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 12px; }
.wdchip {
  display: flex; flex-direction: column; gap: 3px;
  padding: 14px 16px; border: 1px solid var(--line); border-radius: var(--radius);
  background: #fff; transition: .18s;
}
.wdchip:hover { border-color: var(--brand-light); box-shadow: var(--shadow); transform: translateY(-1px); }
.wdchip b { font-size: 15px; color: var(--ink); }
.wdchip small { font-size: 12.5px; color: #7b8b9c; line-height: 1.55; }
.wdchip i { font-style: normal; font-size: 12px; color: var(--brand); }

/* 问答列表条目 */
.wdlist { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 10px; }
.wdlist-wide { grid-template-columns: 1fr; }
.wdcard {
  display: flex; flex-direction: column; gap: 6px;
  padding: 13px 15px; border: 1px solid var(--line); border-radius: var(--radius);
  background: #fff; transition: .18s;
}
.wdcard:hover { border-color: var(--brand-light); box-shadow: var(--shadow); }
.wdcard b { font-size: 14.5px; color: var(--ink); font-weight: 600; line-height: 1.5; }
.wd-tags { display: flex; flex-wrap: wrap; gap: 6px; }
.wd-tags a {
  font-size: 11.5px; padding: 1px 7px; border-radius: 20px;
  background: #eef3f8; color: #5a7086; border: 1px solid #dbe4ee;
}
.wd-tags a:hover { background: var(--brand); color: #fff; border-color: var(--brand); }
.wd-go { font-size: 12px; color: var(--brand); }

/* 地区索引 */
.wdareas-wrap { margin-top: 6px; }
.wdregion {
  margin: 16px 0 8px; padding-bottom: 6px; font-size: 14px; color: var(--brand);
  border-bottom: 1px dashed var(--line);
}
.wdregion:first-child { margin-top: 4px; }
.wdrow { display: flex; gap: 10px; align-items: flex-start; padding: 6px 0; }
.wdp {
  flex: 0 0 76px; font-size: 13px; color: #46586b; font-weight: 600; padding-top: 3px;
}
.wdareas { display: flex; flex-wrap: wrap; gap: 7px; flex: 1; }
.wdarea {
  display: inline-flex; align-items: center; gap: 4px;
  padding: 3px 10px; border: 1px solid var(--line); border-radius: 20px;
  font-size: 13px; background: #fff; transition: .18s;
}
.wdarea:hover { border-color: var(--brand); color: var(--brand); }
.wdarea i { font-style: normal; font-size: 11px; color: #93a7b9; }
.wdarea:hover i { color: var(--brand); }

/* 分组（地区页 / 总入口复用） */
.wdgroups { display: flex; flex-direction: column; gap: 20px; }
.wdgroup h3 {
  margin: 0 0 10px; font-size: 15.5px; color: var(--ink);
  padding-left: 10px; border-left: 3px solid var(--brand);
}
.wdgroup h3 small { margin-left: 8px; font-size: 12px; color: #93a7b9; font-weight: 400; }

/* 单条问答页 */
.wdq h1 { margin: 0 0 12px; font-size: 23px; line-height: 1.45; color: var(--ink); }
.wdq-meta {
  display: flex; flex-wrap: wrap; align-items: center; gap: 8px;
  margin-bottom: 18px; padding-bottom: 14px; border-bottom: 1px dashed var(--line);
}
.wdtag {
  font-size: 12px; padding: 2px 9px; border-radius: 20px;
  background: #eef3f8; color: #4a6379; border: 1px solid #dbe4ee;
}
.wdtag:hover { background: var(--brand); color: #fff; border-color: var(--brand); }
.wdq-date { margin-left: auto; font-size: 12.5px; color: #93a7b9; }
.wdq-ans { font-size: 15px; line-height: 1.95; color: #2f4256; }
.wdq-ans p { margin: 0 0 14px; }
.wdq-ans p:last-child { margin-bottom: 0; }
.wdq-ans b { color: var(--ink); }
.wdq-note {
  margin-top: 22px; padding: 14px 16px; border-radius: var(--radius);
  background: #f6f9fc; border: 1px solid var(--line); font-size: 13px; color: #5a7086;
  line-height: 1.85;
}
.wdq-note b { display: block; margin-bottom: 5px; color: var(--ink); }
.wdq-note p { margin: 0; }

/* 相关问答 */
.wdrels { display: flex; flex-direction: column; gap: 9px; }
.wdrel {
  display: block; padding: 11px 14px; border: 1px solid var(--line);
  border-radius: var(--radius); font-size: 14px; background: #fff; transition: .18s;
}
.wdrel:hover { border-color: var(--brand-light); color: var(--brand); }
.wdmeta-line { font-size: 13.5px; color: #5a7086; }

/* ══════════════════════════════════════════════════════════════
   v40 模块二：律师库更新 /lawyer-updates.html
   ══════════════════════════════════════════════════════════════ */

/* 顶部数据条 */
.upstats { display: flex; flex-wrap: wrap; gap: 12px; margin: 16px 0 0; }
.upstat {
  flex: 1 1 130px; display: flex; flex-direction: column; gap: 2px;
  padding: 13px 15px; border-radius: var(--radius);
  background: #f6f9fc; border: 1px solid var(--line);
}
.upstat b { font-size: 20px; color: var(--brand); line-height: 1.2; }
.upstat i { font-style: normal; font-size: 12.5px; color: #7b8b9c; }
.upnote {
  margin: 14px 0 0; padding-top: 12px; border-top: 1px dashed var(--line);
  font-size: 13px; color: #7b8b9c; line-height: 1.8;
}

/* 最新入库时间流 */
.uplist { display: flex; flex-direction: column; gap: 9px; margin-top: 4px; }
.upcard {
  display: flex; align-items: center; gap: 14px;
  padding: 12px 15px; border: 1px solid var(--line); border-radius: var(--radius);
  background: #fff; transition: .18s;
}
.upcard:hover { border-color: var(--brand-light); box-shadow: var(--shadow); }
.up-when {
  flex: 0 0 82px; display: flex; flex-direction: column; align-items: center;
  padding: 5px 0; border-radius: 6px; background: #eef3f8;
}
.up-when b { font-size: 13px; color: var(--brand); line-height: 1.3; }
.up-when span { font-size: 11px; color: #93a7b9; }
.up-bd { flex: 1; display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.up-bd > b { font-size: 15px; color: var(--ink); }
.up-bd > b em {
  font-style: normal; margin-left: 8px; font-size: 12.5px;
  color: #7b8b9c; font-weight: 400;
}
.up-meta { font-size: 12.5px; color: #7b8b9c; }
.up-tags { display: flex; flex-wrap: wrap; gap: 5px; }
.up-tags i {
  font-style: normal; font-size: 11.5px; padding: 1px 7px; border-radius: 20px;
  background: #f2f6fa; color: #5a7086; border: 1px solid #e2eaf2;
}
.up-go { flex: 0 0 auto; font-size: 12.5px; color: var(--brand); }

/* 按地区看覆盖 */
.upareas { display: flex; flex-direction: column; gap: 4px; margin-top: 6px; }
.upregion {
  margin: 16px 0 8px; padding-bottom: 6px; font-size: 14px; color: var(--brand);
  border-bottom: 1px dashed var(--line);
}
.upregion:first-child { margin-top: 4px; }
.upprov { padding: 10px 0; border-bottom: 1px solid #f0f4f8; }
.upprov:last-child { border-bottom: none; }
.upprov h3 {
  margin: 0 0 8px; font-size: 14.5px; color: var(--ink); font-weight: 600;
}
.upprov h3 small { margin-left: 8px; font-size: 12px; color: #93a7b9; font-weight: 400; }
.uproll { display: flex; flex-direction: column; gap: 5px; }
.uprow {
  display: flex; flex-wrap: wrap; align-items: baseline; gap: 10px;
  padding: 5px 10px; border-radius: 6px; background: #fafcfd;
}
.upcity { flex: 0 0 96px; font-size: 13.5px; color: var(--ink); font-weight: 600; }
.upcity i, .upfname i {
  font-style: normal; margin-left: 5px; font-size: 11.5px;
  padding: 0 6px; border-radius: 20px; background: #eef3f8; color: var(--brand);
}
.upwhen { flex: 0 0 130px; font-size: 12px; color: #93a7b9; }
.upwho { flex: 1; font-size: 13px; color: #46586b; }
.upwho a { color: var(--brand); }
.upempty { margin: 0; font-size: 13px; color: #93a7b9; line-height: 1.75; }

/* 按业务方向看覆盖 */
.upfields { display: flex; flex-direction: column; gap: 2px; margin-top: 6px; }
.upfrow {
  display: flex; flex-wrap: wrap; align-items: baseline; gap: 10px;
  padding: 10px 0; border-bottom: 1px solid #f0f4f8;
}
.upfrow:last-child { border-bottom: none; }
.upfname { flex: 0 0 130px; font-size: 14px; font-weight: 600; }
.upfname a { color: var(--ink); }
.upfname a:hover { color: var(--brand); }
.upfmeta { flex: 0 0 200px; font-size: 12.5px; color: #7b8b9c; }
.upfcities { flex: 1; font-size: 12.5px; color: #93a7b9; line-height: 1.7; }

/* 覆盖缺口条 */
.upgaps { display: flex; flex-direction: column; gap: 11px; margin-top: 4px; }
.upgap { display: flex; align-items: center; gap: 12px; }
.upgap b { flex: 0 0 116px; font-size: 13.5px; color: var(--ink); font-weight: 600; }
.upbar { flex: 1; height: 8px; border-radius: 20px; background: #eef3f8; overflow: hidden; }
.upbar i {
  display: block; height: 100%; border-radius: 20px;
  background: linear-gradient(90deg, #cfe0f0, #0f4c81);
}
.upnum { flex: 0 0 140px; font-size: 12.5px; color: #7b8b9c; text-align: right; }

/* 响应式：窄屏下这些双列 / 带固定宽度的布局要能收拢 */
@media (max-width: 860px) {
  .wdchips { grid-template-columns: 1fr; }
  .wdlist { grid-template-columns: 1fr; }
  .wdrow { flex-direction: column; gap: 5px; }
  .wdp { flex: none; padding-top: 0; }
  .upcard { flex-wrap: wrap; gap: 10px; }
  .up-when { flex: 0 0 70px; }
  .upcity, .upwhen, .upfname, .upfmeta { flex: 0 0 auto; }
  .upgap { flex-wrap: wrap; }
  .upbar { flex: 1 1 100%; order: 3; }
  .upnum { flex: 0 0 auto; text-align: left; }
}
