/* ==========================================================================
   律师邦 · 设计基座 site.css
   来源：原型 lawyerbang-prototype.html :root（--fh-* 全套 token，157 项）
   移植日期：2026-10-17（P0 全站对齐）
   说明：交易时代遗留的 --fh-order-* / --fh-pay-* token 已剔除（平台不做交易）
   ========================================================================== */

:root {
  /* ---------- 1. 主色 · 邦蓝 ---------- */
  --fh-color-brand-50:  #EEF3FA;
  --fh-color-brand-100: #D6E2F2;
  --fh-color-brand-200: #AEC2E0;
  --fh-color-brand-300: #7E9BC7;
  --fh-color-brand-400: #5175AD;
  --fh-color-brand-500: #2F5590;
  --fh-color-brand-600: #24457A;
  --fh-color-brand-700: #1B3462;
  --fh-color-brand-800: #132648;
  --fh-color-brand-900: #0C1A33;

  /* ---------- 2. 中性 · 素白 / 石墨 ---------- */
  --fh-color-neutral-0:   #FFFFFF;
  --fh-color-neutral-25:  #FBFAF7;
  --fh-color-neutral-50:  #F6F4EF;
  --fh-color-neutral-100: #EDEAE3;
  --fh-color-neutral-200: #DEDAD1;
  --fh-color-neutral-300: #C4BFB4;
  --fh-color-neutral-400: #9A948A;
  --fh-color-neutral-500: #6E6A62;
  --fh-color-neutral-600: #4A4741;
  --fh-color-neutral-700: #2E2C28;
  --fh-color-neutral-800: #1F1E1B;
  --fh-color-neutral-900: #131210;

  /* ---------- 3. 点缀 · 邦金（严格克制：禁按钮填充 / 大面积铺底 / 正文） ---------- */
  --fh-color-gold-500: #C9A227;
  --fh-color-gold-600: #A8861B;

  /* ---------- 4. 语义色 ---------- */
  --fh-color-success-text: #1F7A4D;
  --fh-color-success-bg:   #E6F4EC;
  --fh-color-warning-text: #8A5B00;
  --fh-color-warning-bg:   #FBF0D9;
  --fh-color-danger-text:  #B3261E;
  --fh-color-danger-bg:    #FBEAE8;
  --fh-color-info-text:    #1B3462;
  --fh-color-info-bg:      #EEF3FA;

  /* ---------- 5. 业务 · 审核状态（4 态） ---------- */
  --fh-audit-pending-text:  #8A5B00;  --fh-audit-pending-bg:  #FBF0D9;
  --fh-audit-passed-text:   #1F7A4D;  --fh-audit-passed-bg:   #E6F4EC;
  --fh-audit-rejected-text: #B3261E;  --fh-audit-rejected-bg: #FBEAE8;
  --fh-audit-removed-text:  #4A4741;  --fh-audit-removed-bg:  #DEDAD1;

  /* ---------- 6. 业务 · 联系响应状态（3 态，替代原订单状态） ---------- */
  --fh-engage-pending-text: #8A5B00;  --fh-engage-pending-bg: #FBF0D9;
  --fh-engage-done-text:    #1F7A4D;  --fh-engage-done-bg:    #E6F4EC;
  --fh-engage-invalid-text: #6E6A62;  --fh-engage-invalid-bg: #EDEAE3;

  /* ---------- 7. 业务 · 案由分类（8 色） ---------- */
  --fh-case-labor:    #2F5590;  --fh-case-labor-bg:    #EAEFF7;
  --fh-case-marriage: #8C5A78;  --fh-case-marriage-bg: #F5ECF1;
  --fh-case-traffic:  #2E6E73;  --fh-case-traffic-bg:  #E7F1F1;
  --fh-case-loan:     #8A5B00;  --fh-case-loan-bg:     #F7F0E2;
  --fh-case-contract: #3B6B45;  --fh-case-contract-bg: #EAF1EB;
  --fh-case-property: #6B5A32;  --fh-case-property-bg: #F2EFE6;
  --fh-case-criminal: #7A3A3A;  --fh-case-criminal-bg: #F4EAEA;
  --fh-case-other:    #6E6A62;  --fh-case-other-bg:    #EDEAE3;

  /* ---------- 8. 语义别名 ---------- */
  --fh-color-bg-page:           var(--fh-color-neutral-25);
  --fh-color-bg-surface:        var(--fh-color-neutral-0);
  --fh-color-bg-subtle:         var(--fh-color-neutral-50);
  --fh-color-bg-inverse:        var(--fh-color-brand-800);
  --fh-color-border-default:    var(--fh-color-neutral-200);
  --fh-color-border-strong:     var(--fh-color-neutral-300);
  --fh-color-divider:           var(--fh-color-neutral-100);
  --fh-color-text-primary:      var(--fh-color-neutral-700);
  --fh-color-text-secondary:    var(--fh-color-neutral-500);
  --fh-color-text-tertiary:     var(--fh-color-neutral-400);
  --fh-color-text-inverse:      var(--fh-color-neutral-0);
  --fh-color-text-brand:        var(--fh-color-brand-700);
  --fh-color-action-primary:    var(--fh-color-brand-700);
  --fh-color-action-primary-hover: var(--fh-color-brand-600);
  --fh-color-action-primary-active: var(--fh-color-brand-800);
  --fh-focus-ring: 0 0 0 2px var(--fh-color-neutral-25), 0 0 0 4px var(--fh-color-brand-500);

  /* ---------- 9. 字体（系统字体栈，零外网依赖） ---------- */
  --fh-font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC",
                  "Hiragino Sans GB", "Microsoft YaHei", "Helvetica Neue", Helvetica,
                  Arial, sans-serif;
  --fh-font-display: "Optima", "PingFang SC", "Microsoft YaHei", -apple-system,
                     "Segoe UI", sans-serif;
  --fh-font-numeric: ui-monospace, "SF Mono", "Cascadia Mono", "Segoe UI Mono",
                     "Roboto Mono", Menlo, Consolas, monospace;
  --fh-font-serif: Georgia, "Songti SC", "SimSun", "Times New Roman", serif;

  /* ---------- 10. 字号 / 行高 / 字重 ---------- */
  --fh-text-display: 40px;   --fh-leading-display: 1.25;  --fh-weight-display: 700;
  --fh-text-h1: 32px;        --fh-leading-h1: 1.3;         --fh-weight-h1: 700;
  --fh-text-h2: 24px;        --fh-leading-h2: 1.35;        --fh-weight-h2: 600;
  --fh-text-h3: 20px;        --fh-leading-h3: 1.4;         --fh-weight-h3: 600;
  --fh-text-h4: 18px;        --fh-leading-h4: 1.45;        --fh-weight-h4: 600;
  --fh-text-h5: 16px;        --fh-leading-h5: 1.5;         --fh-weight-h5: 600;
  --fh-text-h6: 14px;        --fh-leading-h6: 1.5;         --fh-weight-h6: 600;
  --fh-text-body-lg: 17px;   --fh-leading-body-lg: 1.75;   --fh-weight-body-lg: 400;
  --fh-text-body: 15px;      --fh-leading-body: 1.7;       --fh-weight-body: 400;
  --fh-text-body-sm: 14px;   --fh-leading-body-sm: 1.65;   --fh-weight-body-sm: 400;
  --fh-text-caption: 13px;   --fh-leading-caption: 1.6;    --fh-weight-caption: 400;
  --fh-text-micro: 12px;     --fh-leading-micro: 1.5;      --fh-weight-micro: 500;
  --fh-text-nano: 11px;      --fh-leading-nano: 1.4;       --fh-weight-nano: 500;

  /* ---------- 11. 间距 ---------- */
  --fh-space-0: 0;
  --fh-space-1: 4px;   --fh-space-2: 8px;   --fh-space-3: 12px;
  --fh-space-4: 16px;  --fh-space-5: 20px;  --fh-space-6: 24px;
  --fh-space-8: 32px;  --fh-space-10: 40px; --fh-space-12: 48px;
  --fh-space-16: 64px; --fh-space-20: 80px; --fh-space-24: 96px;

  /* ---------- 12. 圆角 ---------- */
  --fh-radius-xs: 2px;   --fh-radius-sm: 4px;   --fh-radius-md: 8px;
  --fh-radius-lg: 12px;  --fh-radius-xl: 16px;  --fh-radius-2xl: 24px;
  --fh-radius-full: 9999px;

  /* ---------- 13. 阴影 ---------- */
  --fh-shadow-none:   none;
  --fh-shadow-xs:     0 1px 2px rgba(19,36,72,0.04);
  --fh-shadow-card:   0 2px 8px rgba(19,36,72,0.06), 0 1px 2px rgba(19,36,72,0.04);
  --fh-shadow-raised: 0 4px 16px rgba(19,36,72,0.08);
  --fh-shadow-overlay:0 12px 32px rgba(19,36,72,0.14);

  /* ---------- 14. 边框 ---------- */
  --fh-border-width: 1px;
  --fh-border-width-strong: 2px;
  --fh-border-default: 1px solid var(--fh-color-border-default);
  --fh-border-strong:  1px solid var(--fh-color-border-strong);

  /* ---------- 15. 布局：版心 / 侧栏 / 覆盖层 ---------- */
  --fh-container-max: 1320px;
  --fh-container-wide: 1760px;
  --fh-split-aside: 380px;
  --fh-page-padding: 24px;
  --fh-modal-width: 560px;
  --fh-drawer-width: 560px;
  --fh-header-height: 64px;

  /* ---------- 16. 动效 ---------- */
  --fh-transition-fast: 120ms cubic-bezier(0.4, 0, 0.2, 1);
  --fh-transition-base: 200ms cubic-bezier(0.4, 0, 0.2, 1);
  --fh-transition-slow: 320ms cubic-bezier(0.4, 0, 0.2, 1);
}

/* ==========================================================================
   Base Reset
   ========================================================================== */
*, *::before, *::after { box-sizing: border-box; }
html {
  -webkit-text-size-adjust: 100%;
  scroll-behavior: smooth;
}
body {
  margin: 0;
  font-family: var(--fh-font-sans);
  font-size: var(--fh-text-body);
  line-height: var(--fh-leading-body);
  color: var(--fh-color-text-primary);
  background: var(--fh-color-bg-page);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-variant-numeric: tabular-nums;
}
h1, h2, h3, h4, h5, h6 {
  margin: 0;
  font-weight: 600;
  color: var(--fh-color-text-brand);
}
h1 { font-size: var(--fh-text-h1); line-height: var(--fh-leading-h1); font-weight: var(--fh-weight-h1); letter-spacing: -0.01em; }
h2 { font-size: var(--fh-text-h2); line-height: var(--fh-leading-h2); }
h3 { font-size: var(--fh-text-h3); line-height: var(--fh-leading-h3); }
h4 { font-size: var(--fh-text-h4); line-height: var(--fh-leading-h4); }
h5 { font-size: var(--fh-text-h5); line-height: var(--fh-leading-h5); }
h6 { font-size: var(--fh-text-h6); line-height: var(--fh-leading-h6); }
p { margin: 0 0 var(--fh-space-4); }
ul, ol { margin: 0 0 var(--fh-space-4); padding-left: var(--fh-space-6); }
img { max-width: 100%; height: auto; display: block; }
a { color: var(--fh-color-action-primary); text-decoration: none; }
a:hover { color: var(--fh-color-action-primary-hover); text-decoration: underline; }
button { font-family: inherit; font-size: inherit; cursor: pointer; }
table { border-collapse: collapse; width: 100%; }
hr { border: 0; border-top: var(--fh-border-default); margin: var(--fh-space-6) 0; }
small { font-size: var(--fh-text-caption); color: var(--fh-color-text-secondary); }

:focus-visible { outline: none; box-shadow: var(--fh-focus-ring); border-radius: var(--fh-radius-sm); }

/* 无障碍：尊重减少动效偏好 */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

/* ==========================================================================
   Layout · 版心
   ========================================================================== */
.shell {
  width: 100%;
  max-width: var(--fh-container-max);
  margin: 0 auto;
  padding-left: var(--fh-page-padding);
  padding-right: var(--fh-page-padding);
}
.shell--wide { max-width: var(--fh-container-wide); }

/* ==========================================================================
   Typography helpers
   ========================================================================== */
.lead {
  font-size: var(--fh-text-body-lg);
  line-height: var(--fh-leading-body-lg);
  color: var(--fh-color-text-secondary);
}
.muted { color: var(--fh-color-text-secondary); }
.fh-secondary { color: var(--fh-color-text-secondary); }
.fh-tertiary { color: var(--fh-color-text-tertiary); }
.fh-nano { font-size: var(--fh-text-nano); line-height: var(--fh-leading-nano); }
.fh-caption { font-size: var(--fh-text-caption); line-height: var(--fh-leading-caption); }
.fh-numeric { font-family: var(--fh-font-numeric); font-variant-numeric: tabular-nums; }

.breadcrumb {
  display: flex;
  flex-wrap: wrap;
  gap: var(--fh-space-2);
  align-items: center;
  font-size: var(--fh-text-caption);
  color: var(--fh-color-text-tertiary);
  margin-bottom: var(--fh-space-4);
}
.breadcrumb a { color: var(--fh-color-text-secondary); }
.breadcrumb__current { color: var(--fh-color-text-primary); }

/* ==========================================================================
   Buttons
   ========================================================================== */
.primary, .btn--primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--fh-space-2);
  padding: var(--fh-space-3) var(--fh-space-6);
  font-size: var(--fh-text-body);
  font-weight: 600;
  color: var(--fh-color-text-inverse);
  background: var(--fh-color-action-primary);
  border: 1px solid var(--fh-color-action-primary);
  border-radius: var(--fh-radius-md);
  transition: background var(--fh-transition-fast), border-color var(--fh-transition-fast);
  text-decoration: none;
}
.primary:hover, .btn--primary:hover {
  background: var(--fh-color-action-primary-hover);
  border-color: var(--fh-color-action-primary-hover);
  color: var(--fh-color-text-inverse);
  text-decoration: none;
}
.primary:active, .btn--primary:active { background: var(--fh-color-action-primary-active); }

.outline, .btn--outline {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--fh-space-2);
  padding: var(--fh-space-3) var(--fh-space-6);
  font-size: var(--fh-text-body);
  font-weight: 600;
  color: var(--fh-color-action-primary);
  background: var(--fh-color-bg-surface);
  border: 1px solid var(--fh-color-border-strong);
  border-radius: var(--fh-radius-md);
  transition: border-color var(--fh-transition-fast), color var(--fh-transition-fast);
  text-decoration: none;
}
.outline:hover, .btn--outline:hover {
  border-color: var(--fh-color-brand-400);
  color: var(--fh-color-brand-600);
  text-decoration: none;
}

.text-button {
  background: none;
  border: 0;
  padding: 0;
  color: var(--fh-color-action-primary);
  font-size: var(--fh-text-body-sm);
  text-decoration: none;
}
.text-button:hover { text-decoration: underline; }

.compact { padding: var(--fh-space-2) var(--fh-space-4); font-size: var(--fh-text-body-sm); }

/* ==========================================================================
   Cards / Panels
   ========================================================================== */
.card {
  display: block;
  padding: var(--fh-space-6);
  background: var(--fh-color-bg-surface);
  border: var(--fh-border-default);
  border-radius: var(--fh-radius-lg);
  box-shadow: var(--fh-shadow-xs);
  color: inherit;
  text-decoration: none;
  transition: box-shadow var(--fh-transition-base), border-color var(--fh-transition-base);
}
a.card:hover {
  box-shadow: var(--fh-shadow-raised);
  border-color: var(--fh-color-brand-200);
  text-decoration: none;
}
.card h2, .card h3 { margin-bottom: var(--fh-space-2); }
.card p { margin-bottom: var(--fh-space-3); color: var(--fh-color-text-secondary); }

.panel {
  padding: var(--fh-space-6);
  background: var(--fh-color-bg-surface);
  border: var(--fh-border-default);
  border-radius: var(--fh-radius-lg);
  box-shadow: var(--fh-shadow-xs);
  margin-bottom: var(--fh-space-6);
}
.panel > h2 { margin-bottom: var(--fh-space-4); }
.panel > h2 + p { color: var(--fh-color-text-secondary); }

.cards {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: var(--fh-space-5);
}
.grid {
  display: grid;
  gap: var(--fh-space-6);
}

/* 分栏：主区 + 侧栏（后台） */
.fh-grid--split {
  display: grid;
  grid-template-columns: minmax(0, 1fr) var(--fh-split-aside);
  gap: var(--fh-space-6);
  align-items: start;
}

/* ==========================================================================
   Badges / Tags
   ========================================================================== */
.badge {
  display: inline-flex;
  align-items: center;
  padding: 2px var(--fh-space-3);
  font-size: var(--fh-text-micro);
  font-weight: 500;
  color: var(--fh-color-info-text);
  background: var(--fh-color-info-bg);
  border-radius: var(--fh-radius-full);
}
.badge--success { color: var(--fh-audit-passed-text); background: var(--fh-audit-passed-bg); }
.badge--warning { color: var(--fh-audit-pending-text); background: var(--fh-audit-pending-bg); }
.badge--danger  { color: var(--fh-audit-rejected-text); background: var(--fh-audit-rejected-bg); }
.badge--muted   { color: var(--fh-color-text-secondary); background: var(--fh-color-neutral-100); }

.tags { display: flex; flex-wrap: wrap; gap: var(--fh-space-2); margin: var(--fh-space-3) 0; }
.tag {
  display: inline-flex;
  padding: 2px var(--fh-space-3);
  font-size: var(--fh-text-micro);
  color: var(--fh-color-text-secondary);
  background: var(--fh-color-bg-subtle);
  border: var(--fh-border-default);
  border-radius: var(--fh-radius-sm);
}

/* 案由色 */
.case-labor    { color: var(--fh-case-labor);    background: var(--fh-case-labor-bg); }
.case-marriage { color: var(--fh-case-marriage); background: var(--fh-case-marriage-bg); }
.case-traffic  { color: var(--fh-case-traffic);  background: var(--fh-case-traffic-bg); }
.case-loan     { color: var(--fh-case-loan);     background: var(--fh-case-loan-bg); }
.case-contract { color: var(--fh-case-contract); background: var(--fh-case-contract-bg); }
.case-property { color: var(--fh-case-property); background: var(--fh-case-property-bg); }
.case-criminal { color: var(--fh-case-criminal); background: var(--fh-case-criminal-bg); }
.case-other    { color: var(--fh-case-other);    background: var(--fh-case-other-bg); }

/* ==========================================================================
   Forms
   ========================================================================== */
.form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--fh-space-5);
}
.form-grid label { display: flex; flex-direction: column; gap: var(--fh-space-2); font-size: var(--fh-text-body-sm); font-weight: 500; color: var(--fh-color-text-secondary); }
.form-grid label.full { grid-column: 1 / -1; }
.form-grid input, .form-grid select, .form-grid textarea {
  padding: var(--fh-space-3);
  font-family: inherit;
  font-size: var(--fh-text-body);
  color: var(--fh-color-text-primary);
  background: var(--fh-color-bg-surface);
  border: 1px solid var(--fh-color-border-strong);
  border-radius: var(--fh-radius-md);
}
.form-grid textarea { min-height: 96px; resize: vertical; }
.form-actions { display: flex; gap: var(--fh-space-3); align-items: center; margin-top: var(--fh-space-4); }
.form-actions.full { grid-column: 1 / -1; }
.error { color: var(--fh-color-danger-text); font-size: var(--fh-text-caption); }
.success { color: var(--fh-color-success-text); font-size: var(--fh-text-caption); }

/* 定义列表（核验信息） */
.def-list { margin: 0; }
.def-list__row {
  display: grid;
  grid-template-columns: 180px minmax(0, 1fr);
  gap: var(--fh-space-4);
  padding: var(--fh-space-3) 0;
  border-bottom: var(--fh-border-default);
}
.def-list__row:last-child { border-bottom: 0; }
.def-list dt { color: var(--fh-color-text-secondary); font-size: var(--fh-text-body-sm); }
.def-list dd { margin: 0; color: var(--fh-color-text-primary); }

/* ==========================================================================
   Lawyer card / list
   ========================================================================== */
.lawyer-list { display: grid; gap: var(--fh-space-4); }
.card.lawyer {
  display: grid;
  grid-template-columns: 56px minmax(0, 1fr) auto;
  gap: var(--fh-space-5);
  align-items: start;
}
.card.lawyer h2, .card.lawyer h3 { font-size: var(--fh-text-h5); margin-bottom: var(--fh-space-1); }
.card.lawyer h2 small, .card.lawyer h3 small { font-weight: 400; color: var(--fh-color-text-secondary); font-size: var(--fh-text-body-sm); }
.card.lawyer .price { text-align: right; white-space: nowrap; }
.card.lawyer .price small { display: block; color: var(--fh-color-text-secondary); font-size: var(--fh-text-caption); line-height: 1.6; }
.lawyer-rating { margin: var(--fh-space-2) 0; font-size: var(--fh-text-body-sm); color: var(--fh-color-text-secondary); }
.lawyer-rating strong { color: var(--fh-color-text-brand); font-size: var(--fh-text-h6); font-family: var(--fh-font-numeric); }

.avatar, .profile-avatar {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  font-size: var(--fh-text-h4);
  font-weight: 600;
  color: var(--fh-color-text-inverse);
  background: var(--fh-color-brand-700);
  border-radius: var(--fh-radius-lg);
}
.profile-avatar { width: 72px; height: 72px; font-size: var(--fh-text-h2); }

/* ==========================================================================
   Profile (律师详情)
   ========================================================================== */
.profile-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 320px;
  gap: var(--fh-space-8);
  align-items: start;
  padding-top: var(--fh-space-6);
  padding-bottom: var(--fh-space-16);
}
.profile-body > section { margin-bottom: var(--fh-space-8); }
.profile-body h2 { margin-bottom: var(--fh-space-3); }
.profile-cta {
  position: sticky;
  top: var(--fh-space-6);
  padding: var(--fh-space-6);
  background: var(--fh-color-bg-inverse);
  border-radius: var(--fh-radius-lg);
  color: var(--fh-color-text-inverse);
}
.profile-cta span { display: block; font-size: var(--fh-text-caption); color: var(--fh-color-brand-200); margin-bottom: var(--fh-space-2); }
.profile-cta h2 { color: var(--fh-color-text-inverse); margin-bottom: var(--fh-space-3); font-size: var(--fh-text-h4); }
.profile-cta p { color: var(--fh-color-brand-100); font-size: var(--fh-text-body-sm); }
.profile-cta a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--fh-space-2);
  width: 100%;
  padding: var(--fh-space-3) var(--fh-space-5);
  font-weight: 600;
  color: var(--fh-color-brand-900);
  background: var(--fh-color-gold-500);
  border-radius: var(--fh-radius-md);
  text-decoration: none;
}
.profile-cta a:hover { background: var(--fh-color-gold-600); color: var(--fh-color-brand-900); text-decoration: none; }

.profile-identity { display: flex; align-items: center; gap: var(--fh-space-5); padding: var(--fh-space-8) 0; }
.profile-identity h1 { margin-bottom: var(--fh-space-2); }
.profile-identity p { color: var(--fh-color-text-secondary); margin: 0; }
.profile-identity > div > span { font-size: var(--fh-text-caption); color: var(--fh-color-brand-600); }

.contact-info {
  padding: var(--fh-space-4);
  background: var(--fh-color-bg-subtle);
  border: var(--fh-border-default);
  border-radius: var(--fh-radius-md);
  font-family: var(--fh-font-numeric);
  font-size: var(--fh-text-body);
}

/* ==========================================================================
   Notices / Empty states
   ========================================================================== */
.notice {
  padding: var(--fh-space-4);
  background: var(--fh-color-info-bg);
  border-left: 3px solid var(--fh-color-brand-500);
  border-radius: var(--fh-radius-sm);
  color: var(--fh-color-info-text);
  font-size: var(--fh-text-body-sm);
}
.empty, .empty-city {
  padding: var(--fh-space-12) var(--fh-space-6);
  text-align: center;
  background: var(--fh-color-bg-surface);
  border: var(--fh-border-default);
  border-radius: var(--fh-radius-lg);
}
.empty h1, .empty-city h2 { margin-bottom: var(--fh-space-3); }
.empty p, .empty-city p { color: var(--fh-color-text-secondary); max-width: 60ch; margin: 0 auto var(--fh-space-4); }

/* ==========================================================================
   Tables（后台）
   ========================================================================== */
.fh-table { width: 100%; font-size: var(--fh-text-body-sm); }
.fh-table th, .fh-table td {
  padding: var(--fh-space-3) var(--fh-space-4);
  text-align: left;
  border-bottom: var(--fh-border-default);
}
.fh-table th {
  font-weight: 600;
  color: var(--fh-color-text-secondary);
  background: var(--fh-color-bg-subtle);
  white-space: nowrap;
}
.fh-table tbody tr:hover { background: var(--fh-color-bg-subtle); }

/* ==========================================================================
   P3 新增：律所主页 / 法律自查 / 法律专题
   ========================================================================== */
.selfcheck-hero, .topic-hero {
  padding: var(--fh-space-16) 0 var(--fh-space-10);
  background: var(--fh-color-bg-surface);
  border-bottom: var(--fh-border-default);
}
.selfcheck-hero h1, .topic-hero h1 { margin: var(--fh-space-3) 0; font-size: var(--fh-text-display); line-height: var(--fh-leading-display); }
.selfcheck-hero p, .topic-hero p { max-width: 62ch; color: var(--fh-color-text-secondary); font-size: var(--fh-text-body-lg); }
.selfcheck-hero > div > span, .topic-hero > div > span { font-size: var(--fh-text-caption); color: var(--fh-color-brand-600); }

.selfcheck-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: var(--fh-space-5);
  padding-top: var(--fh-space-10);
  padding-bottom: var(--fh-space-16);
}
.selfcheck-card h2 { margin: var(--fh-space-3) 0 var(--fh-space-2); font-size: var(--fh-text-h5); }
.selfcheck-card .form-actions { flex-wrap: wrap; }

.topic-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: var(--fh-space-5);
  padding-top: var(--fh-space-10);
  padding-bottom: var(--fh-space-16);
}
.topic-card h2 { margin: var(--fh-space-3) 0 var(--fh-space-2); font-size: var(--fh-text-h5); }
.topic-card p { margin: 0; color: var(--fh-color-text-secondary); }

.topic-detail .topic-content {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 320px;
  gap: var(--fh-space-8);
  align-items: start;
  padding-top: var(--fh-space-8);
  padding-bottom: var(--fh-space-16);
}
.topic-detail .qa-card-grid { grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); }
.topic-detail .qa-list-card h3 { font-size: var(--fh-text-h5); margin: var(--fh-space-2) 0; }

@media (max-width: 1024px) {
  .topic-detail .topic-content { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 720px) {
  .selfcheck-hero h1, .topic-hero h1 { font-size: var(--fh-text-h1); }
}
@media (max-width: 1024px) {
  .profile-layout { grid-template-columns: minmax(0, 1fr); }
  .profile-cta { position: static; }
  .fh-grid--split { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 720px) {
  :root { --fh-page-padding: 16px; --fh-text-display: 30px; --fh-text-h1: 26px; --fh-text-h2: 20px; }
  .form-grid { grid-template-columns: minmax(0, 1fr); }
  .card.lawyer { grid-template-columns: 48px minmax(0, 1fr); }
  .card.lawyer .price { grid-column: 1 / -1; text-align: left; }
  .def-list__row { grid-template-columns: minmax(0, 1fr); gap: var(--fh-space-1); }
}
/* ==========================================================================
   Q2 新增：认领中心
   ========================================================================== */
.claim-hero {
  padding: var(--fh-space-16) 0 var(--fh-space-10);
  background: var(--fh-color-bg-surface);
  border-bottom: var(--fh-border-default);
}
.claim-hero h1 { margin: var(--fh-space-3) 0; font-size: var(--fh-text-display); line-height: var(--fh-leading-display); }
.claim-hero p { max-width: 62ch; color: var(--fh-color-text-secondary); font-size: var(--fh-text-body-lg); }
.claim-hero > div > span { font-size: var(--fh-text-caption); color: var(--fh-color-brand-600); }

.claim-entry {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: var(--fh-space-5);
  padding-top: var(--fh-space-10);
}
.claim-entry h2 { margin-bottom: var(--fh-space-3); font-size: var(--fh-text-h5); }
.claim-entry p { color: var(--fh-color-text-secondary); }

.claim-steps { padding-top: var(--fh-space-12); padding-bottom: var(--fh-space-8); }
.claim-steps h2 { margin-bottom: var(--fh-space-5); font-size: var(--fh-text-h4); }
.claim-steps ol {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: var(--fh-space-5);
  padding-left: var(--fh-space-6);
  color: var(--fh-color-text-secondary);
}
.claim-steps strong { display: block; margin-bottom: var(--fh-space-1); color: var(--fh-color-text-brand); }

.claim-form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--fh-space-5);
  margin-top: var(--fh-space-6);
}
.claim-form label { display: flex; flex-direction: column; gap: var(--fh-space-2); font-size: var(--fh-text-body-sm); font-weight: 500; color: var(--fh-color-text-secondary); }
.claim-form label.full { grid-column: 1 / -1; }
.claim-form input, .claim-form select, .claim-form textarea {
  padding: var(--fh-space-3);
  font-family: inherit;
  font-size: var(--fh-text-body);
  color: var(--fh-color-text-primary);
  background: var(--fh-color-bg-surface);
  border: 1px solid var(--fh-color-border-strong);
  border-radius: var(--fh-radius-md);
}
.claim-form textarea { min-height: 88px; resize: vertical; }

.claim-form-inline { display: flex; flex-wrap: wrap; gap: var(--fh-space-3); align-items: center; }
.claim-form-inline input {
  flex: 1;
  min-width: 220px;
  padding: var(--fh-space-3);
  font-family: var(--fh-font-numeric);
  font-size: var(--fh-text-body);
  border: 1px solid var(--fh-color-border-strong);
  border-radius: var(--fh-radius-md);
}
.claim-error { background: var(--fh-color-danger-bg); border-left-color: var(--fh-color-danger-text); color: var(--fh-color-danger-text); }

@media (max-width: 720px) {
  .claim-form { grid-template-columns: minmax(0, 1fr); }
  .claim-hero h1 { font-size: var(--fh-text-h1); }
}

/* ==========================================================================
   首页模板组件（index.html / qa.html / lawyers.html 使用的类名）
   说明：这些类名此前无对应样式定义，导致首页结构裸奔；在此按 fh 体系补齐。
   ========================================================================== */

/* --- 顶栏 .topbar --- */
.topbar {
  display: flex;
  align-items: center;
  gap: var(--fh-space-6);
  min-height: var(--fh-header-height);
  background: var(--fh-color-bg-surface);
  border-bottom: var(--fh-border-default);
}
.topbar .brand {
  font-size: var(--fh-text-h5);
  font-weight: 800;
  color: var(--fh-color-text-brand);
  text-decoration: none;
  white-space: nowrap;
}
.topbar nav { display: flex; flex: 1; gap: var(--fh-space-4); }
.topbar nav a {
  color: var(--fh-color-neutral-600);
  font-size: var(--fh-text-body-sm);
  text-decoration: none;
  transition: color var(--fh-transition-fast);
}
.topbar nav a:hover { color: var(--fh-color-brand-700); }
.topbar .header-actions { display: flex; align-items: center; gap: var(--fh-space-3); }
.topbar .login {
  color: var(--fh-color-text-secondary);
  font-size: var(--fh-text-body-sm);
  text-decoration: none;
}
.topbar .login:hover { color: var(--fh-color-brand-700); }

/* --- Hero 区 --- */
.hero {
  padding: var(--fh-space-20) 0;
  background: linear-gradient(120deg, var(--fh-color-brand-50), var(--fh-color-neutral-0) 65%);
  border-bottom: var(--fh-border-default);
}
.hero h1 {
  margin: var(--fh-space-4) 0;
  font-size: var(--fh-text-display);
  line-height: var(--fh-leading-display);
  color: var(--fh-color-brand-800);
}
.hero .eyebrow {
  display: inline-block;
  font-size: var(--fh-text-caption);
  color: var(--fh-color-brand-600);
}
.hero .subtitle {
  max-width: 56ch;
  margin-bottom: var(--fh-space-6);
  font-size: var(--fh-text-body-lg);
  line-height: var(--fh-leading-body-lg);
  color: var(--fh-color-text-secondary);
}
.hero .topics {
  margin-top: var(--fh-space-4);
  font-size: var(--fh-text-caption);
  color: var(--fh-color-text-tertiary);
}
.hero .topics a { margin-left: var(--fh-space-3); }
.hero .search { display: flex; max-width: 560px; }
.hero .search input {
  flex: 1;
  padding: var(--fh-space-3) var(--fh-space-4);
  font: inherit;
  font-size: var(--fh-text-body);
  border: 1px solid var(--fh-color-border-strong);
  border-right: 0;
  border-radius: var(--fh-radius-md) 0 0 var(--fh-radius-md);
  background: var(--fh-color-bg-surface);
}
.hero .search button {
  padding: 0 var(--fh-space-6);
  font-size: var(--fh-text-body);
  font-weight: 600;
  color: var(--fh-color-text-inverse);
  background: var(--fh-color-brand-700);
  border: 1px solid var(--fh-color-brand-700);
  border-radius: 0 var(--fh-radius-md) var(--fh-radius-md) 0;
  cursor: pointer;
}
.hero .search button:hover { background: var(--fh-color-brand-600); }

.hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
  gap: var(--fh-space-10);
  align-items: start;
}
.evidence {
  padding: var(--fh-space-6);
  background: var(--fh-color-bg-surface);
  border: var(--fh-border-default);
  border-radius: var(--fh-radius-lg);
  box-shadow: var(--fh-shadow-xs);
}
.evidence h2 { margin-bottom: var(--fh-space-2); font-size: var(--fh-text-h5); }
.evidence > p { color: var(--fh-color-text-secondary); font-size: var(--fh-text-body-sm); }
.evidence > div {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: var(--fh-space-3);
  align-items: center;
  padding: var(--fh-space-3) 0;
  border-top: var(--fh-border-default);
}
.evidence > div b { color: var(--fh-color-brand-600); }
.evidence > div span { display: flex; flex-direction: column; }
.evidence > div strong { font-size: var(--fh-text-body-sm); }
.evidence > div small { color: var(--fh-color-text-tertiary); font-size: var(--fh-text-micro); }
.evidence .primary { margin-top: var(--fh-space-5); width: 100%; }
.evidence .primary.gold {
  color: var(--fh-color-brand-900);
  background: var(--fh-color-gold-500);
  border-color: var(--fh-color-gold-500);
}
.evidence .primary.gold:hover { background: var(--fh-color-gold-600); border-color: var(--fh-color-gold-600); }

/* --- 内容区块 --- */
.section { padding: var(--fh-space-16) 0; }
.section .heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: var(--fh-space-5);
  margin-bottom: var(--fh-space-6);
  flex-wrap: wrap;
}
.section .heading h2 { font-size: var(--fh-text-h3); }
.section .heading p { margin: var(--fh-space-2) 0 0; color: var(--fh-color-text-secondary); font-size: var(--fh-text-body-sm); }
.section .heading > a { color: var(--fh-color-action-primary); font-size: var(--fh-text-body-sm); text-decoration: none; white-space: nowrap; }
.section .heading > a:hover { text-decoration: underline; }

.section .cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: var(--fh-space-4);
}
.section .cards > a {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  grid-template-areas: 'i s e' 'i d e';
  gap: 2px var(--fh-space-3);
  align-items: center;
  padding: var(--fh-space-5);
  background: var(--fh-color-bg-surface);
  border: var(--fh-border-default);
  border-radius: var(--fh-radius-lg);
  color: inherit;
  text-decoration: none;
  transition: box-shadow var(--fh-transition-base), border-color var(--fh-transition-base);
}
.section .cards > a:hover { box-shadow: var(--fh-shadow-raised); border-color: var(--fh-color-brand-200); }
.section .cards i {
  grid-area: i;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  font-style: normal;
  color: var(--fh-color-brand-700);
  background: var(--fh-color-brand-50);
  border-radius: var(--fh-radius-md);
}
.section .cards strong { grid-area: s; font-size: var(--fh-text-h6); color: var(--fh-color-text-brand); }
.section .cards small { grid-area: d; color: var(--fh-color-text-secondary); font-size: var(--fh-text-micro); }
.section .cards em { grid-area: e; font-style: normal; color: var(--fh-color-brand-300); font-size: var(--fh-text-h5); }

/* --- 问答列表 .answers --- */
.answers {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: var(--fh-space-4);
}
.answers article {
  padding: var(--fh-space-5);
  background: var(--fh-color-bg-surface);
  border: var(--fh-border-default);
  border-radius: var(--fh-radius-lg);
}
.answers article > span {
  display: inline-block;
  margin-bottom: var(--fh-space-2);
  font-size: var(--fh-text-micro);
  color: var(--fh-color-brand-700);
  background: var(--fh-color-brand-50);
  padding: 2px var(--fh-space-3);
  border-radius: var(--fh-radius-full);
}
.answers h3 { font-size: var(--fh-text-h5); margin-bottom: var(--fh-space-2); }
.answers h3 a { color: var(--fh-color-text-brand); text-decoration: none; }
.answers h3 a:hover { text-decoration: underline; }
.answers p { color: var(--fh-color-text-secondary); font-size: var(--fh-text-body-sm); }
.answers footer {
  padding-top: var(--fh-space-3);
  border-top: var(--fh-border-default);
  font-size: var(--fh-text-micro);
  color: var(--fh-color-text-tertiary);
}

/* --- 内页 article 布局（qa.html / lawyers.html）--- */
main.article { padding: var(--fh-space-8) 0 var(--fh-space-16); }
main.article h1 { font-size: var(--fh-text-h2); margin-bottom: var(--fh-space-3); }
main.article > section {
  padding: var(--fh-space-5) 0;
  border-top: var(--fh-border-default);
}
main.article h2 { font-size: var(--fh-text-h4); margin: var(--fh-space-2) 0; }
main.article h2 a { color: var(--fh-color-text-brand); text-decoration: none; }
main.article h2 a:hover { text-decoration: underline; }
main.article p { color: var(--fh-color-text-secondary); }
.article-meta { font-size: var(--fh-text-micro); color: var(--fh-color-text-tertiary); }

/* --- 页脚 .trust --- */
.trust {
  padding: var(--fh-space-12) 0;
  background: var(--fh-color-brand-800);
  color: var(--fh-color-neutral-0);
}
.trust > .shell {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: var(--fh-space-6);
  align-items: center;
}
.trust h2 { color: var(--fh-color-neutral-0); font-size: var(--fh-text-h4); }
.trust p { margin: var(--fh-space-2) 0 0; color: var(--fh-color-brand-100); font-size: var(--fh-text-body-sm); }
.trust > .shell > div:not(:first-child) { display: flex; gap: var(--fh-space-3); align-items: flex-start; }
.trust > .shell > div > span { display: flex; flex-direction: column; }
.trust b { font-size: var(--fh-text-body-sm); }
.trust small { color: var(--fh-color-brand-200); font-size: var(--fh-text-micro); }

@media (max-width: 900px) {
  .hero-grid { grid-template-columns: minmax(0, 1fr); gap: var(--fh-space-6); }
}
@media (max-width: 720px) {
  .topbar { flex-wrap: wrap; gap: var(--fh-space-3); padding-top: var(--fh-space-3); padding-bottom: var(--fh-space-3); }
  .topbar nav { order: 3; width: 100%; overflow-x: auto; }
  .hero { padding: var(--fh-space-12) 0; }
  .section { padding: var(--fh-space-10) 0; }
}

/* ==========================================================================
   全站类名差集审计补齐（2026-10-18）
   这些类名在模板中使用但样式表未定义，导致对应区块缺少布局/间距/背景。
   ========================================================================== */

/* --- 律师详情：核验区块容器 --- */
.profile-position, .profile-contact {
  padding: var(--fh-space-6);
  margin-bottom: var(--fh-space-8);
  background: var(--fh-color-bg-surface);
  border: var(--fh-border-default);
  border-radius: var(--fh-radius-lg);
  box-shadow: var(--fh-shadow-xs);
}
.profile-position h2, .profile-contact h2 { margin-bottom: var(--fh-space-3); }
.profile-position .def-list, .profile-contact dl { margin: 0; }
.profile-position dl > div, .profile-contact dl > div {
  display: grid;
  grid-template-columns: 160px minmax(0, 1fr);
  gap: var(--fh-space-4);
  padding: var(--fh-space-2) 0;
  border-bottom: var(--fh-border-default);
}
.profile-position dl > div:last-child, .profile-contact dl > div:last-child { border-bottom: 0; }
.profile-position dt, .profile-contact dt { font-size: var(--fh-text-body-sm); color: var(--fh-color-text-secondary); }
.profile-position dd, .profile-contact dd { margin: 0; color: var(--fh-color-text-primary); }

/* --- 律所主页 --- */
.firm-page .profile-body > section {
  padding: var(--fh-space-6);
  margin-bottom: var(--fh-space-6);
  background: var(--fh-color-bg-surface);
  border: var(--fh-border-default);
  border-radius: var(--fh-radius-lg);
  box-shadow: var(--fh-shadow-xs);
}
.firm-page .profile-body > section > h2 { margin-bottom: var(--fh-space-3); }

/* --- 自查页 / 专题索引 --- */
.selfcheck-page, .topic-index, .topic-detail, .claim-page { padding-bottom: var(--fh-space-16); }
.selfcheck-page > .shell:last-child, .claim-page > .shell:last-child { padding-bottom: var(--fh-space-16); }
.topic-index .topic-grid + .shell, .topic-index > .shell { margin: 0 auto; }
.topic-detail .topic-content > .profile-body > section {
  padding: var(--fh-space-6);
  margin-bottom: var(--fh-space-6);
  background: var(--fh-color-bg-surface);
  border: var(--fh-border-default);
  border-radius: var(--fh-radius-lg);
  box-shadow: var(--fh-shadow-xs);
}
.topic-detail .topic-content > .profile-body > section > h2 { margin-bottom: var(--fh-space-4); }

/* --- 认领页内页（.claim-page 复用 shell.page 布局时的补充）--- */
.claim-progress { margin-top: var(--fh-space-6); }

/* --- 资讯页（news-*）--- */
.news-hero {
  padding: var(--fh-space-16) 0 var(--fh-space-12);
  background: var(--fh-color-bg-surface);
  border-bottom: var(--fh-border-default);
}
.news-hero h1 { margin: var(--fh-space-3) 0; font-size: var(--fh-text-display); line-height: var(--fh-leading-display); }
.news-hero > .shell > span { font-size: var(--fh-text-caption); color: var(--fh-color-brand-600); }
.news-hero p { max-width: 62ch; color: var(--fh-color-text-secondary); font-size: var(--fh-text-body-lg); }
.news-content { padding: var(--fh-space-12) 0 var(--fh-space-16); }

.news-feature {
  display: grid;
  grid-template-columns: 200px minmax(0, 1fr);
  gap: var(--fh-space-8);
  padding: var(--fh-space-6);
  margin-bottom: var(--fh-space-8);
  background: var(--fh-color-bg-surface);
  border: var(--fh-border-default);
  border-radius: var(--fh-radius-lg);
  box-shadow: var(--fh-shadow-xs);
}
.news-feature-mark {
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding-top: var(--fh-space-2);
}
.news-feature-mark span {
  padding: var(--fh-space-2) var(--fh-space-3);
  font-size: var(--fh-text-caption);
  color: var(--fh-color-brand-700);
  background: var(--fh-color-brand-50);
  border-radius: var(--fh-radius-full);
}
.news-feature-copy time { display: block; margin-bottom: var(--fh-space-2); font-size: var(--fh-text-caption); color: var(--fh-color-text-tertiary); }
.news-feature-copy h2 { font-size: var(--fh-text-h3); margin-bottom: var(--fh-space-3); }
.news-feature-copy h2 a { color: var(--fh-color-text-brand); text-decoration: none; }
.news-feature-copy h2 a:hover { text-decoration: underline; }
.news-feature-copy p { color: var(--fh-color-text-secondary); }
.news-read {
  display: inline-flex;
  align-items: center;
  gap: var(--fh-space-2);
  margin-top: var(--fh-space-4);
  color: var(--fh-color-action-primary);
  font-size: var(--fh-text-body-sm);
  font-weight: 600;
  text-decoration: none;
}
.news-read:hover { text-decoration: underline; }

.news-grid, .news-page .qa-card-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: var(--fh-space-5);
}
.news-card {
  display: flex;
  flex-direction: column;
  padding: var(--fh-space-5);
  background: var(--fh-color-bg-surface);
  border: var(--fh-border-default);
  border-radius: var(--fh-radius-lg);
  box-shadow: var(--fh-shadow-xs);
  transition: box-shadow var(--fh-transition-base), border-color var(--fh-transition-base);
}
.news-card:hover { box-shadow: var(--fh-shadow-raised); border-color: var(--fh-color-brand-200); }
.news-card > span {
  align-self: flex-start;
  margin-bottom: var(--fh-space-2);
  padding: 2px var(--fh-space-3);
  font-size: var(--fh-text-micro);
  color: var(--fh-color-brand-700);
  background: var(--fh-color-brand-50);
  border-radius: var(--fh-radius-full);
}
.news-card h2 { font-size: var(--fh-text-h5); margin-bottom: var(--fh-space-2); }
.news-card h2 a { color: var(--fh-color-text-brand); text-decoration: none; }
.news-card h2 a:hover { text-decoration: underline; }
.news-card p { flex: 1; color: var(--fh-color-text-secondary); font-size: var(--fh-text-body-sm); }
.news-card time { margin-top: var(--fh-space-3); font-size: var(--fh-text-micro); color: var(--fh-color-text-tertiary); }
.news-meta {
  display: flex;
  flex-wrap: wrap;
  gap: var(--fh-space-2) var(--fh-space-4);
  margin: var(--fh-space-2) 0;
  font-size: var(--fh-text-micro);
  color: var(--fh-color-text-tertiary);
}

@media (max-width: 900px) {
  .news-feature { grid-template-columns: minmax(0, 1fr); gap: var(--fh-space-4); }
}
@media (max-width: 720px) {
  .profile-position dl > div, .profile-contact dl > div { grid-template-columns: minmax(0, 1fr); gap: var(--fh-space-1); }
  .news-hero h1 { font-size: var(--fh-text-h1); }
}

/* ==========================================================================
   资讯详情页（news-detail）— 由 public-pages.js 内联 newsStyles 迁移而来
   ========================================================================== */
.news-page {
  min-height: calc(100vh - 100px);
  background: var(--fh-color-bg-page);
}
.news-detail {
  max-width: 820px;
  padding-top: var(--fh-space-8);
  padding-bottom: var(--fh-space-16);
}
.news-detail article {
  padding: var(--fh-space-10) var(--fh-space-12);
  background: var(--fh-color-bg-surface);
  border: var(--fh-border-default);
  border-radius: var(--fh-radius-lg);
  box-shadow: var(--fh-shadow-xs);
}
.news-detail .crumb { margin-bottom: var(--fh-space-6); }
.news-detail article > span {
  display: inline-block;
  margin-bottom: var(--fh-space-2);
  font-size: var(--fh-text-caption);
  font-weight: 600;
  color: var(--fh-color-brand-700);
}
.news-detail h1 { margin: var(--fh-space-3) 0; font-size: var(--fh-text-h2); line-height: var(--fh-leading-h2); }
.news-detail time { font-size: var(--fh-text-body-sm); color: var(--fh-color-text-tertiary); }
.news-detail .news-summary {
  margin: var(--fh-space-6) 0;
  padding: var(--fh-space-4) var(--fh-space-5);
  border-left: 3px solid var(--fh-color-gold-500);
  border-radius: 0 var(--fh-radius-sm) var(--fh-radius-sm) 0;
  background: var(--fh-color-warning-bg);
  color: var(--fh-color-warning-text);
  line-height: var(--fh-leading-body-lg);
}
.news-detail .news-body {
  margin: 0;
  color: var(--fh-color-text-primary);
  font-size: var(--fh-text-body-lg);
  line-height: var(--fh-leading-body-lg);
  white-space: pre-line;
}
.news-source {
  margin-top: var(--fh-space-8);
  padding-top: var(--fh-space-4);
  border-top: var(--fh-border-default);
  font-size: var(--fh-text-body-sm);
  color: var(--fh-color-text-secondary);
}

@media (max-width: 720px) {
  .news-detail { padding: var(--fh-space-6) var(--fh-page-padding) var(--fh-space-12); }
  .news-detail article { padding: var(--fh-space-6) var(--fh-space-5); }
  .news-detail h1 { font-size: var(--fh-text-h3); }
}

/* ==========================================================================
   V1 首页视觉还原（对齐原型 hero / track-card / fh-sec-head）
   注意：本段覆盖前文「首页模板组件」中的 .hero / .answers / .trust 浅色实现。
   ========================================================================== */

/* --- 通用版心与区块 --- */
.fh-container {
  max-width: var(--fh-container-max);
  margin: 0 auto;
  padding: 0 var(--fh-page-padding);
  width: 100%;
}
.fh-section { padding: var(--fh-space-16) 0; }

.fh-sec-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: var(--fh-space-4);
  margin-bottom: var(--fh-space-6);
}
.fh-sec-head__title {
  font-size: var(--fh-text-h2);
  font-weight: 600;
  color: var(--fh-color-brand-700);
  line-height: var(--fh-leading-h2);
}
.fh-sec-head__title::after {
  content: "";
  display: block;
  width: 32px;
  height: 2px;
  background: var(--fh-color-gold-500);
  margin-top: var(--fh-space-3);
}
.fh-sec-head__sub {
  font-size: var(--fh-text-body-sm);
  color: var(--fh-color-text-secondary);
  margin-top: var(--fh-space-2);
}
.btn--text {
  display: inline-flex;
  align-items: center;
  gap: var(--fh-space-2);
  padding: 0;
  font-size: var(--fh-text-body-sm);
  font-weight: 600;
  color: var(--fh-color-action-primary);
  background: none;
  border: 0;
  text-decoration: none;
  white-space: nowrap;
}
.btn--text:hover { color: var(--fh-color-brand-600); text-decoration: none; }
.fh-note {
  display: flex;
  gap: var(--fh-space-2);
  align-items: flex-start;
  font-size: var(--fh-text-caption);
  color: var(--fh-color-text-secondary);
  line-height: var(--fh-leading-caption);
}
.track-note { margin-top: var(--fh-space-5); text-align: right; }

/* --- Hero：深蓝反白（原型的核心视觉）--- */
.hero {
  position: relative;
  background: linear-gradient(135deg, var(--fh-color-brand-800), var(--fh-color-brand-700));
  color: var(--fh-color-neutral-0);
  overflow: hidden;
  padding: var(--fh-space-20) 0;
}
/* 网格纹理 */
.hero::before {
  content: "";
  position: absolute;
  inset: 0;
  opacity: .5;
  background-image:
    repeating-linear-gradient(90deg, rgba(255,255,255,.05) 0 1px, transparent 1px 72px),
    repeating-linear-gradient(0deg, rgba(255,255,255,.04) 0 1px, transparent 1px 72px);
  pointer-events: none;
}
.hero__inner { position: relative; z-index: 1; }
.hero__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: var(--fh-space-2);
  font-size: var(--fh-text-caption);
  color: rgba(255,255,255,.72);
  border: 1px solid rgba(255,255,255,.2);
  border-radius: var(--fh-radius-full);
  padding: 5px 12px;
  margin-bottom: var(--fh-space-6);
}
.hero__title {
  font-family: var(--fh-font-display);
  font-size: var(--fh-text-display);
  line-height: var(--fh-leading-display);
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--fh-color-neutral-0);
  margin: 0;
}
.hero__sub {
  font-size: var(--fh-text-body-lg);
  color: rgba(255,255,255,.78);
  max-width: 620px;
  margin-top: var(--fh-space-5);
  line-height: 1.75;
}
.hero__search {
  display: flex;
  gap: var(--fh-space-2);
  background: var(--fh-color-neutral-0);
  border-radius: var(--fh-radius-lg);
  padding: var(--fh-space-2);
  margin-top: var(--fh-space-8);
  max-width: 640px;
  box-shadow: var(--fh-shadow-overlay);
}
.hero__search .input {
  flex: 1;
  min-width: 0;
  height: 48px;
  padding: 0 var(--fh-space-4);
  font-family: inherit;
  font-size: var(--fh-text-h5);
  color: var(--fh-color-text-primary);
  background: transparent;
  border: none;
  border-radius: var(--fh-radius-md);
}
.hero__search .input::placeholder { color: var(--fh-color-text-tertiary); }
.hero__search .btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 var(--fh-space-6);
  font-size: var(--fh-text-body);
  font-weight: 600;
  color: var(--fh-color-neutral-0);
  background: var(--fh-color-brand-700);
  border: 1px solid var(--fh-color-brand-700);
  border-radius: var(--fh-radius-md);
  cursor: pointer;
  white-space: nowrap;
}
.hero__search .btn:hover { background: var(--fh-color-brand-600); border-color: var(--fh-color-brand-600); }
.hero__hot {
  display: flex;
  align-items: center;
  gap: var(--fh-space-3);
  margin-top: var(--fh-space-4);
  font-size: var(--fh-text-caption);
  color: rgba(255,255,255,.62);
  flex-wrap: wrap;
}
.hero__hot a {
  color: rgba(255,255,255,.82);
  border-bottom: 1px dashed rgba(255,255,255,.3);
  text-decoration: none;
}
.hero__hot a:hover { color: var(--fh-color-neutral-0); }

/* --- 四大赛道卡片（8 色案由色块 + 数据行）--- */
.track-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--fh-space-5);
}
.track-card {
  display: block;
  padding: var(--fh-space-6);
  background: var(--fh-color-bg-surface);
  border: var(--fh-border-default);
  border-radius: var(--fh-radius-lg);
  box-shadow: var(--fh-shadow-card);
  color: inherit;
  text-decoration: none;
  transition: box-shadow var(--fh-transition-base), border-color var(--fh-transition-base), transform var(--fh-transition-base);
}
.track-card:hover {
  box-shadow: var(--fh-shadow-raised);
  border-color: var(--fh-color-brand-200);
  transform: translateY(-2px);
}
.track-card__icon {
  width: 48px;
  height: 48px;
  border-radius: var(--fh-radius-md);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: var(--fh-space-4);
  font-size: var(--fh-text-h4);
  line-height: 1;
}
.track-card__name {
  font-size: var(--fh-text-h4);
  font-weight: 600;
  color: var(--fh-color-brand-700);
}
.track-card__desc {
  font-size: var(--fh-text-body-sm);
  color: var(--fh-color-text-secondary);
  margin-top: var(--fh-space-2);
  line-height: 1.65;
}
.track-card__count {
  font-size: var(--fh-text-micro);
  color: var(--fh-color-text-tertiary);
  margin-top: var(--fh-space-3);
  font-family: var(--fh-font-numeric);
}

/* --- 问答卡片（适配新版式）--- */
.answers {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--fh-space-5);
}
.answers article {
  display: flex;
  flex-direction: column;
  padding: var(--fh-space-6);
  background: var(--fh-color-bg-surface);
  border: var(--fh-border-default);
  border-radius: var(--fh-radius-lg);
  box-shadow: var(--fh-shadow-card);
  transition: box-shadow var(--fh-transition-base), border-color var(--fh-transition-base);
}
.answers article:hover { box-shadow: var(--fh-shadow-raised); border-color: var(--fh-color-brand-200); }
.answers article > span {
  align-self: flex-start;
  margin-bottom: var(--fh-space-3);
  padding: 2px var(--fh-space-3);
  font-size: var(--fh-text-micro);
  color: var(--fh-color-brand-700);
  background: var(--fh-color-brand-50);
  border-radius: var(--fh-radius-full);
}
.answers h3 { font-size: var(--fh-text-h5); margin-bottom: var(--fh-space-2); }
.answers h3 a { color: var(--fh-color-brand-700); text-decoration: none; }
.answers h3 a:hover { text-decoration: underline; }
.answers p { flex: 1; color: var(--fh-color-text-secondary); font-size: var(--fh-text-body-sm); }
.answers footer {
  margin-top: var(--fh-space-4);
  padding-top: var(--fh-space-3);
  border-top: var(--fh-border-default);
  font-size: var(--fh-text-micro);
  color: var(--fh-color-text-tertiary);
}

/* --- 页脚（四栏居中）--- */
.trust { padding: var(--fh-space-16) 0; background: var(--fh-color-bg-surface); border-top: var(--fh-border-default); }
.trust-grid {
  display: grid;
  grid-template-columns: 1.4fr repeat(3, 1fr);
  gap: var(--fh-space-6);
  align-items: center;
}
.trust h2 { color: var(--fh-color-brand-700); font-size: var(--fh-text-h4); }
.trust p { margin: var(--fh-space-2) 0 0; color: var(--fh-color-text-secondary); font-size: var(--fh-text-body-sm); }
.trust-item {
  display: flex;
  gap: var(--fh-space-3);
  align-items: flex-start;
  padding: var(--fh-space-4) 0 var(--fh-space-4) var(--fh-space-5);
  border-left: var(--fh-border-default);
  color: var(--fh-color-brand-600);
}
.trust-item > span { display: flex; flex-direction: column; }
.trust-item b { font-size: var(--fh-text-body-sm); color: var(--fh-color-brand-700); }
.trust-item small { color: var(--fh-color-text-tertiary); font-size: var(--fh-text-micro); }

@media (max-width: 1024px) {
  .track-grid { grid-template-columns: repeat(2, 1fr); }
  .answers { grid-template-columns: repeat(2, 1fr); }
  .trust-grid { grid-template-columns: 1fr; gap: var(--fh-space-4); }
  .trust-item { border-left: 0; padding-left: 0; }
}
@media (max-width: 720px) {
  .hero { padding: var(--fh-space-12) 0; }
  .hero__title { font-size: 30px; }
  .track-grid, .answers { grid-template-columns: minmax(0, 1fr); }
  .fh-section { padding: var(--fh-space-10) 0; }
  .fh-sec-head__title { font-size: var(--fh-text-h3); }
  .hero__search { flex-direction: column; }
  .hero__search .btn { width: 100%; height: 44px; }
}

/* ==========================================================================
   V2 前台页面视觉还原（对齐原型 card / profile-head / tag / rating / breadcrumb）
   ========================================================================== */

/* --- 工具类（原型 fh-*）--- */
.fh-container-narrow { max-width: 880px; margin: 0 auto; padding: 0 var(--fh-page-padding); }
.fh-stack-5 > * + * { margin-top: var(--fh-space-5); }
.fh-stack-6 > * + * { margin-top: var(--fh-space-6); }
.fh-between { display: flex; align-items: center; justify-content: space-between; gap: var(--fh-space-4); }
.fh-grow { flex: 1; min-width: 0; }
.fh-body-sm { font-size: var(--fh-text-body-sm); }
.fh-num { font-family: var(--fh-font-numeric); font-variant-numeric: tabular-nums; }
.fh-strong { font-weight: 600; color: var(--fh-color-text-primary); }
.fh-text-right { text-align: right; }
.sr-only {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}

/* --- 面包屑（对齐原型）--- */
.breadcrumb {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--fh-space-2);
  font-size: var(--fh-text-body-sm);
  color: var(--fh-color-text-tertiary);
  margin-bottom: var(--fh-space-6);
}
.breadcrumb a { color: var(--fh-color-text-secondary); text-decoration: none; }
.breadcrumb a:hover { color: var(--fh-color-brand-700); text-decoration: underline; }
.breadcrumb__sep { color: var(--fh-color-neutral-300); }
.breadcrumb__current { color: var(--fh-color-text-primary); }
.crumb {
  display: flex;
  flex-wrap: wrap;
  gap: var(--fh-space-2);
  font-size: var(--fh-text-body-sm);
  color: var(--fh-color-text-tertiary);
  margin-bottom: var(--fh-space-5);
}
.crumb a { color: var(--fh-color-text-secondary); text-decoration: none; }
.crumb a:hover { color: var(--fh-color-brand-700); text-decoration: underline; }

/* --- 卡片（对齐原型 card）--- */
.card {
  padding: var(--fh-space-6);
  background: var(--fh-color-bg-surface);
  border: var(--fh-border-default);
  border-radius: var(--fh-radius-lg);
  box-shadow: var(--fh-shadow-card);
}
.card__body { padding: 0; }

/* --- 标签（对齐原型 tag）--- */
.tag { display: inline-flex; align-items: center; gap: 4px; }
.tag--brand { color: var(--fh-color-brand-700); background: var(--fh-color-brand-50); border-color: var(--fh-color-brand-200); }
.tag--verified, .tag--admin { color: var(--fh-color-success-text); background: var(--fh-color-success-bg); border-color: transparent; }
.tag--labor { color: var(--fh-case-labor); background: var(--fh-case-labor-bg); border-color: transparent; }
.tag--marriage { color: var(--fh-case-marriage); background: var(--fh-case-marriage-bg); border-color: transparent; }
.tag--traffic { color: var(--fh-case-traffic); background: var(--fh-case-traffic-bg); border-color: transparent; }
.tag--loan { color: var(--fh-case-loan); background: var(--fh-case-loan-bg); border-color: transparent; }
.tag--contract { color: var(--fh-case-contract); background: var(--fh-case-contract-bg); border-color: transparent; }
.tag--property { color: var(--fh-case-property); background: var(--fh-case-property-bg); border-color: transparent; }
.tag--criminal { color: var(--fh-case-criminal); background: var(--fh-case-criminal-bg); border-color: transparent; }
.tag--other { color: var(--fh-case-other); background: var(--fh-case-other-bg); border-color: transparent; }

/* --- 评分（对齐原型 rating）--- */
.rating { display: inline-flex; align-items: center; gap: var(--fh-space-2); }
.rating__stars { display: inline-flex; gap: 1px; color: var(--fh-color-gold-500); font-size: var(--fh-text-body-sm); }
.rating__score { font-family: var(--fh-font-numeric); font-weight: 700; color: var(--fh-color-text-brand); }
.rating__count { font-size: var(--fh-text-caption); color: var(--fh-color-text-secondary); }

/* --- 律师头像（XL + 核验角标）--- */
.avatar--xl {
  position: relative;
  width: 88px;
  height: 88px;
  font-size: var(--fh-text-h2);
  border-radius: var(--fh-radius-lg);
}
.avatar--labor { background: var(--fh-case-labor-bg); color: var(--fh-case-labor); }
.avatar__verified {
  position: absolute;
  right: -4px;
  bottom: -4px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  font-size: 11px;
  color: var(--fh-color-neutral-0);
  background: var(--fh-color-success-text);
  border: 2px solid var(--fh-color-bg-surface);
  border-radius: var(--fh-radius-full);
}

/* --- 律师头部（profile-head）--- */
.profile-head { display: flex; align-items: flex-start; gap: var(--fh-space-5); }
.profile-head h1 { font-size: var(--fh-text-h1); margin: 0; }
.profile-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--fh-space-2);
  margin-top: var(--fh-space-2);
  font-size: var(--fh-text-body-sm);
  color: var(--fh-color-text-secondary);
}
.profile-causes { display: flex; flex-wrap: wrap; gap: var(--fh-space-2); margin-top: var(--fh-space-3); }
.profile-stats {
  display: flex;
  flex-wrap: wrap;
  gap: var(--fh-space-5);
  margin-top: var(--fh-space-4);
  padding-top: var(--fh-space-4);
  border-top: var(--fh-border-default);
  font-size: var(--fh-text-caption);
  color: var(--fh-color-text-secondary);
}

/* --- 律师列表卡片（卡片化信息行）--- */
.lawyer-list { display: grid; gap: var(--fh-space-4); }
.card.lawyer { display: grid; grid-template-columns: 64px minmax(0, 1fr) auto; gap: var(--fh-space-5); align-items: start; }
.card.lawyer .avatar {
  width: 64px;
  height: 64px;
  font-size: var(--fh-text-h3);
  border-radius: var(--fh-radius-lg);
  background: var(--fh-color-brand-50);
  color: var(--fh-color-brand-700);
}
.card.lawyer h2, .card.lawyer h3 { font-size: var(--fh-text-h5); margin-bottom: var(--fh-space-2); }
.card.lawyer h2 small, .card.lawyer h3 small { font-weight: 400; color: var(--fh-color-text-secondary); font-size: var(--fh-text-body-sm); }
.card.lawyer .price { text-align: right; white-space: nowrap; display: flex; flex-direction: column; gap: var(--fh-space-2); align-items: flex-end; }
.card.lawyer .price small { color: var(--fh-color-text-secondary); font-size: var(--fh-text-caption); line-height: 1.6; }
.card.lawyer > div:nth-child(2) > p { margin: 0 0 var(--fh-space-2); }

/* --- 侧栏 CTA（对齐原型，正文用米白而非纯白）--- */
.profile-layout { align-items: start; }
.profile-cta {
  background: var(--fh-color-brand-800);
  color: var(--fh-color-neutral-0);
}
.profile-cta h2 { color: var(--fh-color-neutral-0); }
.profile-cta a {
  background: var(--fh-color-gold-500);
  color: var(--fh-color-brand-900);
}
.profile-cta a:hover { background: var(--fh-color-gold-600); color: var(--fh-color-brand-900); }

/* --- 筛选侧栏 --- */
.filters { display: grid; gap: var(--fh-space-5); align-content: start; }
.filter-group { display: grid; gap: var(--fh-space-2); }
.filter-group__label {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--fh-space-2);
  font-size: var(--fh-text-body-sm);
  font-weight: 600;
  color: var(--fh-color-text-primary);
}
.filter-group__label small { font-weight: 400; color: var(--fh-color-text-tertiary); font-size: var(--fh-text-micro); }
.select-native, .filters select {
  width: 100%;
  padding: var(--fh-space-2) var(--fh-space-3);
  font: inherit;
  font-size: var(--fh-text-body-sm);
  color: var(--fh-color-text-primary);
  background: var(--fh-color-bg-surface);
  border: 1px solid var(--fh-color-border-strong);
  border-radius: var(--fh-radius-md);
}
.chips { display: flex; flex-wrap: wrap; gap: var(--fh-space-2); }
.link-btn {
  display: inline-flex;
  align-items: center;
  gap: var(--fh-space-1);
  font-size: var(--fh-text-body-sm);
  font-weight: 600;
  color: var(--fh-color-action-primary);
  text-decoration: none;
}
.link-btn:hover { text-decoration: underline; }

/* --- 列表页头（N 位律师符合条件）--- */
.result-head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--fh-space-4);
  margin-bottom: var(--fh-space-5);
}
.result-head h1 { margin-bottom: var(--fh-space-2); }

/* --- 律所/专题/自查 页头统一 --- */
.discovery-hero, .city-hero, .qa-index-hero, .guide-hero, .tool-hero, .news-hero,
.claim-hero, .selfcheck-hero, .topic-hero, .trust-hero {
  padding: var(--fh-space-16) 0 var(--fh-space-10);
  background: var(--fh-color-bg-surface);
  border-bottom: var(--fh-border-default);
}
.discovery-hero h1, .city-hero h1, .qa-index-hero h1, .guide-hero h1,
.tool-hero h1, .news-hero h1, .claim-hero h1, .selfcheck-hero h1, .topic-hero h1, .trust-hero h1 {
  margin: var(--fh-space-3) 0;
  font-size: var(--fh-text-display);
  line-height: var(--fh-leading-display);
}
.discovery-hero p, .city-hero p, .qa-index-hero p, .guide-hero p,
.tool-hero p, .news-hero p, .claim-hero p, .selfcheck-hero p, .topic-hero p, .trust-hero p {
  max-width: 62ch;
  color: var(--fh-color-text-secondary);
  font-size: var(--fh-text-body-lg);
}
.discovery-points { display: flex; flex-wrap: wrap; gap: var(--fh-space-2); margin-top: var(--fh-space-5); }
.discovery-points b {
  padding: var(--fh-space-2) var(--fh-space-4);
  font-size: var(--fh-text-caption);
  font-weight: 600;
  color: var(--fh-color-brand-700);
  background: var(--fh-color-brand-50);
  border-radius: var(--fh-radius-full);
}

@media (max-width: 1024px) {
  .card.lawyer { grid-template-columns: 56px minmax(0, 1fr); }
  .card.lawyer .price { grid-column: 1 / -1; flex-direction: row; align-items: center; justify-content: space-between; }
  .profile-head { flex-direction: column; }
}
@media (max-width: 720px) {
  .discovery-hero h1, .city-hero h1, .qa-index-hero h1, .guide-hero h1,
  .tool-hero h1, .news-hero h1, .claim-hero h1, .selfcheck-hero h1, .topic-hero h1, .trust-hero h1 {
    font-size: var(--fh-text-h1);
  }
}

/* --- 布局辅助（原型 fh-row / fh-col / fh-wrap）--- */
.fh-row-2, .fh-row-3, .fh-row-4, .fh-row-5 { display: flex; align-items: center; }
.fh-row-2 { gap: var(--fh-space-2); }
.fh-row-3 { gap: var(--fh-space-3); }
.fh-row-4 { gap: var(--fh-space-4); }
.fh-row-5 { gap: var(--fh-space-5); }
.fh-wrap { flex-wrap: wrap; }
.fh-col-2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--fh-space-4); }
.fh-col-3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--fh-space-4); }
.fh-col-6 { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: var(--fh-space-4); }
.fh-grid { display: grid; gap: var(--fh-space-5); }
.fh-cards-2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--fh-space-5); }
.fh-mt-2 { margin-top: var(--fh-space-2); }
.fh-mt-3 { margin-top: var(--fh-space-3); }
.fh-mt-4 { margin-top: var(--fh-space-4); }
.fh-mt-6 { margin-top: var(--fh-space-6); }
.fh-mb-8 { margin-bottom: var(--fh-space-8); }
.fh-text-h3 { font-size: var(--fh-text-h3); }
.fh-text-h4 { font-size: var(--fh-text-h4); }
.fh-text-h5 { font-size: var(--fh-text-h5); }
.fh-text-h6 { font-size: var(--fh-text-h6); }
.fh-caption { font-size: var(--fh-text-caption); }
.fh-nano { font-size: var(--fh-text-nano); }
.fh-secondary { color: var(--fh-color-text-secondary); }
.fh-tertiary { color: var(--fh-color-text-tertiary); }

@media (max-width: 720px) {
  .fh-col-3, .fh-col-6, .fh-cards-2 { grid-template-columns: minmax(0, 1fr); }
}

/* ==========================================================================
   权威覆盖层（加载顺序最后，压过 app.css / seo-pages.css / public-pages.css）
   背景：public-pages.css 为旧深蓝设计编写，.profile-body/.profile-layout/.crumb
        等与新体系冲突，导致律师页双层卡片、间距错乱、浅色面包屑看不清。
   ========================================================================== */

/* --- 律师详情：解除旧双层卡片与写死侧栏宽度 --- */
.profile-hero { padding: var(--fh-space-6) 0 var(--fh-space-4); background: var(--fh-color-bg-page); }
.profile-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 320px;
  align-items: start;
  gap: var(--fh-space-8);
  padding-top: var(--fh-space-6);
  padding-bottom: var(--fh-space-16);
}
.profile-body {
  padding: 0;
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}
.profile-body > section,
.profile-body > section.profile-position,
.profile-body > section.profile-contact {
  padding: var(--fh-space-6);
  margin-bottom: var(--fh-space-5);
  background: var(--fh-color-bg-surface);
  border: var(--fh-border-default);
  border-radius: var(--fh-radius-lg);
  box-shadow: var(--fh-shadow-xs);
}
.profile-body > section > h2 {
  margin-bottom: var(--fh-space-3);
  font-size: var(--fh-text-h5);
  color: var(--fh-color-text-brand);
}
.profile-body > section:last-child { margin-bottom: 0; }
.profile-identity { display: flex; align-items: center; gap: var(--fh-space-5); padding: var(--fh-space-8) 0; }
.profile-avatar {
  width: 72px;
  height: 72px;
  font-size: var(--fh-text-h2);
  border-radius: var(--fh-radius-lg);
  background: var(--fh-color-brand-50);
  color: var(--fh-color-brand-700);
}

/* --- 面包屑：旧值是为深蓝 hero 设计的浅色字，新体系为白底，必须用深色 --- */
.breadcrumb, .crumb { color: var(--fh-color-text-tertiary); }
.crumb a, .breadcrumb a { color: var(--fh-color-text-secondary); }
.crumb a:hover, .breadcrumb a:hover { color: var(--fh-color-brand-700); }

/* --- 列表/城市等页头：解除 .hero 深蓝污染（只有首页 hero 是深蓝）--- */
.discovery-hero, .city-hero, .qa-index-hero, .guide-hero, .tool-hero, .trust-hero {
  padding: var(--fh-space-16) 0 var(--fh-space-10);
  background: var(--fh-color-bg-surface);
  color: var(--fh-color-text-primary);
  border-bottom: var(--fh-border-default);
}
.discovery-hero h1, .city-hero h1, .qa-index-hero h1, .guide-hero h1,
.tool-hero h1, .trust-hero h1 {
  color: var(--fh-color-brand-800);
}
.discovery-hero p, .city-hero p, .qa-index-hero p, .guide-hero p, .tool-hero p, .trust-hero p {
  color: var(--fh-color-text-secondary);
}
.discovery-points b {
  color: var(--fh-color-brand-700);
  background: var(--fh-color-brand-50);
  border-color: transparent;
}

/* --- 律师列表：解除旧卡片写死值 --- */
.discovery-content, .city-content { max-width: var(--fh-container-max); }
.discovery-heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: var(--fh-space-4);
  margin-bottom: var(--fh-space-5);
}
.discovery-heading h2 { font-size: var(--fh-text-h3); color: var(--fh-color-text-brand); }
.discovery-heading p { color: var(--fh-color-text-secondary); font-size: var(--fh-text-body-sm); }

/* --- 问答/指南/工具 侧栏 CTA 统一 --- */
.qa-side-cta, .guide-cta, .tool-result-card {
  background: var(--fh-color-brand-800);
  color: var(--fh-color-neutral-0);
  border-radius: var(--fh-radius-lg);
}
.qa-side-cta h2, .guide-cta h2 { color: var(--fh-color-neutral-0); }
.qa-side-cta p, .guide-cta p { color: var(--fh-color-brand-100); }
.qa-side-cta a, .guide-cta a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: var(--fh-space-3) var(--fh-space-5);
  font-weight: 600;
  color: var(--fh-color-brand-900);
  background: var(--fh-color-gold-500);
  border-radius: var(--fh-radius-md);
  text-decoration: none;
}
.qa-side-cta small { color: var(--fh-color-brand-200); }

/* --- 信任中心 --- */
.trust-hero h1 { color: var(--fh-color-brand-800); }
.trust-closing { background: var(--fh-color-bg-surface); border-radius: var(--fh-radius-lg); }

@media (max-width: 1024px) {
  .profile-layout { grid-template-columns: minmax(0, 1fr); }
}

/* 信息与版权说明：页脚入口链接 */
.footer-links{margin-left:12px;white-space:nowrap}
.footer-links a{color:inherit;text-decoration:underline;text-underline-offset:2px;margin-left:10px}
.footer-links a:hover{opacity:.8}
