@charset "utf-8";
/* ============================================================
   浙江城乡房地产土地资产评估有限公司 · 官网样式
   设计概念「朱印」—— 公司全部业务的共同产出，是一个能盖章的结论
   ------------------------------------------------------------
   底色取报告纸白，分区靠 1px 墨线而非卡片阴影；
   朱印红（#b02a21）取自评估报告的签章印泥色，
   只出现在结论、标记与关键标注上，不做大面积填充。
   首屏主视觉是一张比较法测算片段，不是绘制图形 ——
   它是这个行业真实的产出物，也最能说明公司到底交付什么。
   标题用宋体（估价报告封面与备案证书即宋体），
   正文用黑体，数字用表格数字以便纵向对齐。
   上线时应自托管思源宋体 / 思源黑体的中文子集，
   此处先用系统字体栈保证离线原型可跑。
   ============================================================ */

/* ---------- 字阶（全站唯一字号来源，勿在别处引入新字号） ----------
   12    微标注：脚注、图表附注、元信息、费率明细
   13.5  表格与图注：测算表、费率表、表单标签、证书说明、页脚小标题
   15    次级正文：条目描述、页脚、列表、导航、按钮、地址
   16.5  主正文与导语：正文段落、区块导语、条目小标题、首屏 lede
   20    中标题：分组标题、时间线年份（窄屏的区块标题也落这一档）
   26    区块标题 h2、统计数字、结论数字、大输入框
   33    页面标题 h1
   40    展示级：仅首屏主标题
   窄屏策略是把标题沿字阶下移一档，不新增字号。 */

:root {
  /* 颜色：色值与用途一一对应，不设未使用的 token */
  --paper: #ffffff;      /* 报告纸白 —— 承载面 */
  --grid: #e4e6e8;       /* 分格线 —— 区块与表格的外线 */
  --grid-2: #eef0f1;     /* 细格线 —— 表格内部行线 */
  --band: #f4f5f6;       /* 表头底 —— 测算表的浅色带 */
  --rule: #c9ccd0;       /* 框线 —— 略重的边框线 */
  --ink: #14161a;        /* 墨黑 —— 正文、标题、线条 */
  --ink-2: #3a3e45;      /* 墨黑次级 —— 长段落与表内正文 */
  --mute: #6b7078;       /* 次要文字 —— 说明、地址 */
  --seal: #b02a21;       /* 朱印红 —— 唯一的大胆，面积 ≤3% */
  --survey: #1e4b7a;     /* 签署蓝 —— 链接与电话 */

  --serif: "Source Han Serif SC", "Noto Serif SC", "Songti SC", "STSong", "SimSun", serif;
  --sans: "Source Han Sans SC", "Noto Sans SC", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;

  --wrap: 1180px;
}

*, *::before, *::after { box-sizing: border-box; }

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

body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--sans);
  font-size: 16.5px;
  line-height: 1.85;
  font-variant-numeric: tabular-nums;
  -webkit-font-smoothing: antialiased;
}

/* 标题用宋体担当「文件」气质 */
h1, h2 {
  font-family: var(--serif);
  font-weight: 600;
  line-height: 1.35;
  letter-spacing: 0.01em;
  margin: 0;
}

/* 条目名用黑体，属「标注」层级，不参与宋体系统 */
h3 {
  font-family: var(--sans);
  font-weight: 500;
  line-height: 1.55;
  margin: 0;
}

p { margin: 0; }

a { color: var(--survey); text-decoration: none; }
a:hover { text-decoration: underline; text-underline-offset: 3px; }

img { max-width: 100%; display: block; }

/* 键盘焦点必须可见 */
:focus-visible { outline: 2px solid var(--seal); outline-offset: 3px; }

.wrap { width: min(var(--wrap), calc(100% - 48px)); margin: 0 auto; }

/* 朱印记号：全站统一的结构标记，替代图标 */
.mark { display: inline-block; width: 7px; height: 7px; background: var(--seal); flex: none; }

.skip {
  position: absolute; left: -9999px; top: 0;
  background: var(--ink); color: #fff; padding: 10px 16px; z-index: 99;
}
.skip:focus { left: 0; }

/* 只给屏幕阅读器的说明（如「新窗口打开」），视觉上不占位 */
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}

/* ---------- 页头 ---------- */
.site-header {
  position: sticky;
  top: 0;
  z-index: 50;
  background: var(--paper);
  border-bottom: 1px solid var(--grid);
}

.head-in {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 15px 0;
}

.brand { display: flex; align-items: center; gap: 13px; color: inherit; }
.brand:hover { text-decoration: none; }
.brand img { height: 36px; width: auto; flex: none; }
.brand-name {
  font-family: var(--serif);
  font-size: 16.5px;
  font-weight: 600;
  line-height: 1.3;
}
/* 窄屏放不下全名，改为两行副标题（logo 已含「城乡评估」，不再重复品牌名） */
.brand-name .brand-sub { display: none; }
.brand-name small {
  display: block;
  font-family: var(--sans);
  font-size: 12px;
  font-weight: 400;
  color: var(--mute);
  line-height: 1.4;
  margin-top: 1px;
}

.site-nav ul { display: flex; gap: 20px; list-style: none; margin: 0; padding: 0; }
.site-nav a {
  display: inline-block;
  color: var(--ink);
  font-size: 15px;
  padding: 5px 0;
  border-bottom: 2px solid transparent;
}
.site-nav a:hover { text-decoration: none; border-bottom-color: var(--rule); }
.site-nav a[aria-current="page"] { border-bottom-color: var(--seal); }

.nav-toggle {
  display: none;
  background: none;
  border: 1px solid var(--grid);
  padding: 11px 12px;
  cursor: pointer;
}
.nav-toggle span { display: block; width: 20px; height: 1.5px; background: var(--ink); }
.nav-toggle span + span { margin-top: 4px; }

/* ---------- 首屏 ---------- */
.hero { padding: 62px 0 56px; border-bottom: 1px solid var(--grid); }

.hero-grid { display: grid; grid-template-columns: 1.02fr 0.98fr; gap: 60px; align-items: start; }

.hero h1 { font-size: 40px; line-height: 1.32; max-width: 13em; }

.hero .lede {
  margin-top: 24px;
  font-size: 16.5px;
  line-height: 1.95;
  color: var(--ink-2);
  max-width: 37em; /* 中文行长控制在 37 字以内 */
}

.hero-act { margin-top: 32px; display: flex; align-items: center; gap: 28px; flex-wrap: wrap; }

.btn {
  display: inline-block;
  padding: 13px 30px;
  font-size: 15px;
  font-weight: 500;
  line-height: 1.4;
  border-radius: 0;
  transition: background-color 0.15s ease, color 0.15s ease;
}
.btn-solid { background: var(--ink); color: #fff; }
.btn-solid:hover { background: #000; text-decoration: none; }
.btn-line { border: 1px solid var(--ink); color: var(--ink); }
.btn-line:hover { background: var(--ink); color: #fff; text-decoration: none; }

/* 图签栏：替代「大数字 + 小标签」统计块 */
.factbar {
  margin-top: 40px;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  border-top: 2px solid var(--ink);
  border-bottom: 1px solid var(--grid);
}
.fact { padding: 16px 20px 14px; border-left: 1px solid var(--grid); }
.fact:first-child { border-left: none; padding-left: 0; }
.fact b {
  display: block;
  font-family: var(--serif);
  font-size: 26px;
  font-weight: 600;
  line-height: 1.3;
}
.fact span { display: block; font-size: 12px; color: var(--mute); line-height: 1.6; margin-top: 3px; }
.fact.is-seal b { color: var(--seal); }

.hero-fig { margin: 0; }
.hero-fig figcaption {
  margin-top: 13px;
  font-size: 13.5px;
  line-height: 1.7;
  color: var(--mute);
}

/* 比较法测算片段：用行业真实的产出物代替绘制图形 */
.calc { border: 1px solid var(--grid); background: var(--paper); }

.calc-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  padding: 13px 16px;
  border-bottom: 1px solid var(--grid);
  font-size: 15px;
  line-height: 1.5;
}
.calc-head span:last-child { font-size: 12px; color: var(--mute); }

.calc-t { width: 100%; border-collapse: collapse; table-layout: fixed; font-size: 13.5px; }
.calc-t caption {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
}
.calc-t th,
.calc-t td {
  padding: 7px 13px;
  text-align: right;
  font-weight: 400;
  border-bottom: 1px solid var(--grid-2);
}
.calc-t thead th {
  background: var(--band);
  color: var(--ink);
  font-weight: 500;
  border-bottom: 1px solid var(--grid);
}
.calc-t thead th:first-child { text-align: left; border-right: 1px solid var(--grid); }
.calc-t tbody th {
  text-align: left;
  color: var(--mute);
  border-right: 1px solid var(--grid-2);
}
.calc-t tbody td { color: var(--ink-2); }
.calc-t tbody tr:last-child th,
.calc-t tbody tr:last-child td { border-bottom: none; }

/* 结论行：朱印红只出现在这里与签章位上 */
.calc-out {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 16px;
  border-top: 2px solid var(--ink);
}
.calc-out .k { font-size: 12px; line-height: 1.6; color: var(--mute); }
.calc-out .v {
  font-family: var(--serif);
  font-size: 26px;
  font-weight: 600;
  line-height: 1.25;
  color: var(--seal);
}
.calc-out .m { font-size: 12px; line-height: 1.6; color: var(--mute); }
.sealbox {
  flex: none;
  width: 58px;
  height: 58px;
  border: 1.5px solid var(--seal);
  color: var(--seal);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
  line-height: 1.3;
  text-align: center;
}

/* ---------- 收费标准：依据文号 / 费率表与算例并置 ---------- */
/* 文号挂在分组标题右端，窄屏折到第二行 */
.fee-cite {
  margin-left: auto;
  font-size: 12px;
  font-weight: 400;
  line-height: 1.5;
  color: var(--mute);
  text-align: right;
}

/* 费率表与算例并置：表占左栏因此不会拉宽到行宽失控，
   算例升到右栏，结论数字是这一栏唯一的重音 */
.fee-pair {
  display: grid;
  grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr);
  gap: 30px;
  align-items: start;
  padding-top: 26px;
}
.fee-tables { display: grid; gap: 22px; }
/* 调整系数表接在费率表之后，需要与上一块拉开 */
.fee-factors { margin-top: 26px; }

/* 算例栏：与测算表同族的边框语汇，结论落在朱印红 */
.fee-sum {
  border: 1px solid var(--grid);
  border-top: 2px solid var(--ink);
  padding: 16px 18px 18px;
}
.fee-sum .k { font-size: 12px; line-height: 1.5; color: var(--mute); }
.fee-sum .v {
  font-family: var(--serif);
  font-size: 26px;
  font-weight: 600;
  line-height: 1.2;
  color: var(--seal);
  font-variant-numeric: tabular-nums;
}
/* 提示：无圆角、单边细线，保持与测算表同族 */
.fee-sum .f {
  margin-top: 12px;
  padding-top: 10px;
  border-top: 1px solid var(--grid-2);
  font-size: 12px;
  line-height: 1.8;
  color: var(--mute);
  overflow-wrap: anywhere;
}

/* 输入行：数字用宋体醒目，只留一条底线 */
/* 输入(20)刻意小于结论(26)，让「填的值」服从「算出来的结果」 */
.fee-input {
  display: flex;
  align-items: baseline;
  gap: 10px;
  margin-top: 14px;
  padding-bottom: 6px;
  border-bottom: 1px solid var(--rule);
}
.fee-input > span { flex: none; font-size: 13.5px; color: var(--mute); }
.fee-input input,
.fee-input select {
  flex: 1 1 auto;
  min-width: 0;
  width: 100%;
  border: none;
  background: transparent;
  padding: 2px 0 4px;
  color: var(--ink);
}
.fee-input select { font-family: var(--sans); font-size: 15px; }
.fee-input input {
  font-family: var(--serif);
  font-size: 20px;
  font-weight: 600;
  text-align: right;
  font-variant-numeric: tabular-nums;
  -moz-appearance: textfield;
}
.fee-input input::-webkit-outer-spin-button,
.fee-input input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.fee-input input:focus, .fee-input select:focus { border-bottom-color: var(--seal); }
.fee-input > em { flex: none; font-style: normal; font-size: 13.5px; color: var(--mute); }

/* 逐档明细：档位与金额分列，行线用细格线 */
.fee-lines { list-style: none; margin: 14px 0 0; padding: 0; font-size: 12px; line-height: 1.7; }
.fee-lines li {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  padding: 5px 0;
  border-bottom: 1px solid var(--grid-2);
  color: var(--mute);
}
.fee-lines li b {
  flex: none;
  font-weight: 400;
  color: var(--ink-2);
  font-variant-numeric: tabular-nums;
}
.fee-lines li:last-child { border-bottom: none; }

/* 合计行：压一条墨线收口，数字是这一栏唯一的重音 */
.fee-total {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 14px;
  margin-top: 4px;
  padding-top: 12px;
  border-top: 1px solid var(--ink);
}
/* 万元换算成元，便于小额项目核对 */
.fee-yuan { margin-top: 5px; font-size: 12px; line-height: 1.6; color: var(--mute); text-align: right; }
.fee-yuan b { font-weight: 400; color: var(--ink-2); font-variant-numeric: tabular-nums; }

@media (max-width: 1080px) {
  .fee-pair { grid-template-columns: minmax(0, 1fr); gap: 22px; }
}

/* 费率表列数多，窄屏收紧单元格内边距 */
@media (max-width: 820px) {
  .fee-t th, .fee-t td { padding: 6px 7px; font-size: 12px; }
  .qual-group > h2 { flex-wrap: wrap; gap: 6px 12px; }
  .fee-cite { margin-left: 0; width: 100%; text-align: left; }
}

/* 文字链接：用下划线表达「这是链接」，不加箭头 */
.more {
  display: inline-block;
  margin-top: 26px;
  font-size: 15px;
  font-weight: 500;
  padding-bottom: 2px;
  border-bottom: 1px solid var(--survey);
}
.more:hover { text-decoration: none; color: var(--seal); border-bottom-color: var(--seal); }

/* 联络收束行：不用整块色带做 CTA */
.handoff {
  margin-top: 30px;
  padding-top: 22px;
  border-top: 1px solid var(--grid);
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 12px 40px;
  font-size: 15px;
  color: var(--ink-2);
}
.handoff .tel { font-size: 16.5px; }

/* ---------- 区块 ---------- */
.sec { padding: 62px 0; border-bottom: 1px solid var(--grid); }
.sec:last-of-type { border-bottom: none; }

.sec-head { margin-bottom: 34px; }
.sec-head h2 { font-size: 26px; }
.sec-head p {
  margin-top: 12px;
  font-size: 16.5px;
  line-height: 1.85;
  color: var(--mute);
  max-width: 40em;
}

/* 业务条目：两列，朱印记号作标记，细线分隔 */
.biz { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0 56px; border-top: 1px solid var(--grid); }
.biz-item { display: flex; gap: 14px; padding: 20px 0; border-bottom: 1px solid var(--grid); }
.biz-item .mark { margin-top: 10px; }
/* 每个业务是「业务范围」页的一级分区，故为 h2；字号与行高沿用原来的 h3 观感 */
.biz-item h2 { font-family: var(--sans); font-size: 16.5px; font-weight: 500; line-height: 1.55; }
.biz-item p { margin-top: 5px; font-size: 15px; line-height: 1.75; color: var(--mute); }

/* 沿革：内容本身是序列，用真实年份作标记是正当的 */
.tl { border-top: 1px solid var(--grid); }
.tl-row {
  display: grid;
  grid-template-columns: 132px 1fr;
  gap: 32px;
  padding: 20px 0;
  border-bottom: 1px solid var(--grid);
}
.tl-year {
  display: flex;
  align-items: baseline;
  gap: 10px;
  font-family: var(--serif);
  font-size: 20px;
  font-weight: 600;
  line-height: 1.6;
}
.tl-year::before { content: ""; width: 7px; height: 7px; background: var(--seal); flex: none; transform: translateY(-3px); }
.tl-row p { font-size: 15px; line-height: 1.85; color: var(--ink-2); }
.tl-row p b { font-weight: 500; color: var(--ink); }

/* 信息面板：与营业执照合用一行，填满网格 */
.info { border: 1px solid var(--grid); padding: 24px 26px; }
.info h3 { font-size: 16.5px; padding-bottom: 12px; border-bottom: 1px solid var(--grid); }
.info dl { display: grid; grid-template-columns: auto 1fr; gap: 9px 18px; margin: 16px 0 0; }
.info dt { font-size: 13.5px; color: var(--mute); line-height: 1.8; }
.info dd { margin: 0; font-size: 15px; line-height: 1.8; color: var(--ink); }

/* ---------- 资质证书：比例决定格子尺度 ---------- */
.qual-group { margin-top: 50px; }
.qual-group:first-of-type { margin-top: 0; }

.qual-group > h2 {
  display: flex;
  align-items: center;
  gap: 12px;
  font-family: var(--serif);
  font-size: 20px;
  font-weight: 600;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--ink);
}
.qual-group > h2::before { content: ""; width: 8px; height: 8px; background: var(--seal); flex: none; }

.cert-grid { display: grid; gap: 30px 26px; padding-top: 26px; }
.cert-grid--4 { grid-template-columns: repeat(4, 1fr); } /* 竖版各占一列 */
.cert-grid--3 { grid-template-columns: repeat(3, 1fr); } /* 横版三连，避免落单空格 */
.cert-grid--2 { grid-template-columns: repeat(2, 1fr); } /* 横版各占一列 */

.cert { display: block; color: inherit; }
.cert:hover { text-decoration: none; }
.cert img {
  width: 100%;
  height: auto;      /* 不设固定高度，不用 object-fit —— 让证书比例决定格子高度 */
  border: 1px solid var(--grid);
  transition: border-color 0.15s ease;
}
.cert:hover img { border-color: var(--rule); }
.cert .cap { display: block; margin-top: 11px; font-size: 13.5px; line-height: 1.7; color: var(--ink-2); }
.cert .cap b { display: block; font-weight: 500; color: var(--ink); }

/* 行业身份：条目列表，不是卡片墙 */
.ident {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0 56px;
  list-style: none;
  margin: 0;
  padding: 0;
  border-top: 1px solid var(--grid);
}
.ident li {
  display: flex;
  gap: 14px;
  padding: 16px 0;
  border-bottom: 1px solid var(--grid);
  font-size: 15px;
  line-height: 1.7;
}
.ident li::before { content: ""; width: 7px; height: 7px; background: var(--seal); flex: none; margin-top: 10px; }

/* 备注条：无圆角、单边墨线 */
.note {
  margin-top: 20px;
  padding: 14px 0 14px 18px;
  border-left: 2px solid var(--seal);
  font-size: 15px;
  line-height: 1.75;
  color: var(--mute);
}

/* ---------- 服务网点：图例 / 点之记式排布 ---------- */
.net { border-top: 1px solid var(--grid); }
.net-row {
  display: grid;
  grid-template-columns: 176px 1fr 168px;
  gap: 28px;
  align-items: baseline;
  padding: 15px 0;
  border-bottom: 1px solid var(--grid);
}
.net-name { display: flex; align-items: center; gap: 11px; font-size: 16.5px; font-weight: 500; }
.net-name::before { content: ""; width: 7px; height: 7px; background: var(--seal); flex: none; }
.net-row address { font-style: normal; font-size: 15px; line-height: 1.75; color: var(--mute); }
.net-tel { text-align: right; font-size: 15px; }
.net-tel a { color: var(--survey); }

/* ---------- 内页标题区 ---------- */
.page-head { padding: 52px 0 40px; border-bottom: 1px solid var(--grid); }
.page-head h1 { font-size: 33px; line-height: 1.35; }
.page-head p {
  margin-top: 16px;
  font-size: 16.5px;
  line-height: 1.85;
  color: var(--mute);
  max-width: 40em;
}
/* 页头里的主行动按钮（目前只有 404 页用：给一个明确的回首页出口） */
.page-head .btn { margin-top: 28px; }

/* ---------- 正文块 ---------- */
.prose { max-width: 42em; }
.prose p { margin-bottom: 16px; font-size: 16.5px; line-height: 1.95; color: var(--ink-2); }
.prose p:last-child { margin-bottom: 0; }
.prose strong { font-weight: 500; color: var(--ink); }

.dl-list { border-top: 1px solid var(--grid); margin: 0; }
.dl-list > div {
  display: grid;
  grid-template-columns: 188px 1fr;
  gap: 28px;
  padding: 15px 0;
  border-bottom: 1px solid var(--grid);
}
.dl-list dt { font-size: 15px; color: var(--mute); }
.dl-list dd { margin: 0; font-size: 15px; line-height: 1.8; color: var(--ink); }

/* ---------- 页脚：白底 + 墨线图签栏 ---------- */
.site-footer { border-top: 2px solid var(--ink); margin-top: 0; }

.foot-grid {
  display: grid;
  grid-template-columns: 1.7fr 1fr 1fr;
  gap: 48px;
  padding: 44px 0 38px;
}
.foot-brand img { height: 34px; width: auto; margin-bottom: 16px; }
.foot-brand p { font-size: 15px; line-height: 1.9; color: var(--mute); }
/* 页脚栏目标题用 h2：页脚是独立区域，h4 会造成页面 h2 -> h4 跳级 */
.foot h2 { font-family: var(--sans); font-size: 13.5px; font-weight: 500; line-height: 1.5; margin: 0 0 14px; }
.foot ul { list-style: none; margin: 0; padding: 0; }
.foot li { margin-bottom: 6px; font-size: 15px; line-height: 1.7; color: var(--mute); }
/* 页脚与网点电话是单独成行的链接，不是句子里的行内链接：
   点击高度须达 24px（WCAG 2.2 SC 2.5.8 AA）。上下各 2px 内边距，li 外边距相应收到 6px 以保持节奏不变。 */
.foot a, .net-tel a { display: inline-block; padding: 2px 0; }
.foot a { color: var(--ink-2); }
.foot a:hover { color: var(--seal); }

/* 元信息用间距分隔，不用中点串 */
.foot-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 30px;
  padding: 16px 0 20px;
  border-top: 1px solid var(--grid);
  font-size: 12px;
  line-height: 1.7;
  color: var(--mute);
}

/* 备案号按规范链到工信部备案系统。12px 字在 1.7 行高下约 20px，
   加 2px 上下内边距把点击目标撑到 24px（WCAG 2.2 SC 2.5.8）。
   极次要信息：只加下划线表意可点击，颜色仍用 --mute，hover 才转深。 */
.foot-meta a {
  display: inline-block;
  padding: 2px 0;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.foot-meta a:hover { color: var(--ink); }

/* ---------- 服务流程：内容本身是一条序列，用序号作标记是正当的 ---------- */
.steps { border-top: 1px solid var(--grid); }
.step {
  display: grid;
  grid-template-columns: 104px 1fr;
  gap: 32px;
  padding: 20px 0;
  border-bottom: 1px solid var(--grid);
}
/* 序号用宋体，与沿革的年份同族；不落朱印红，避免全页重音过多 */
.step-n { font-family: var(--serif); font-size: 20px; font-weight: 600; line-height: 1.6; }
.step h3 { font-size: 16.5px; }
.step p { margin-top: 6px; font-size: 15px; line-height: 1.8; color: var(--mute); }

/* ---------- 常见问题：问答成对，问句用朱印记号起头 ---------- */
.qa-list { border-top: 1px solid var(--grid); }
.qa { padding: 20px 0; border-bottom: 1px solid var(--grid); }
.qa h3 { display: flex; gap: 12px; font-size: 16.5px; }
.qa h3::before { content: ""; width: 7px; height: 7px; background: var(--seal); flex: none; margin-top: 9px; }
.qa p { margin-top: 8px; padding-left: 19px; font-size: 15px; line-height: 1.85; color: var(--ink-2); }

/* ---------- 资料下载：一行一份文件，动作固定在右侧 ---------- */
.file-list { border-top: 1px solid var(--grid); }
.file-row {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 28px;
  padding: 22px 0;
  border-bottom: 1px solid var(--grid);
}
.file-row h3 { font-size: 16.5px; }
.file-row p { margin-top: 6px; max-width: 40em; font-size: 15px; line-height: 1.8; color: var(--mute); }
.file-meta { display: block; margin-top: 9px; font-size: 12px; line-height: 1.7; color: var(--mute); font-variant-numeric: tabular-nums; }
.file-act { flex: none; }

/* ---------- 响应式 ---------- */
@media (max-width: 1080px) {
  .hero-grid { grid-template-columns: 1fr; gap: 44px; }
  .hero h1 { font-size: 33px; }
  .cert-grid--4 { grid-template-columns: repeat(2, 1fr); }
  .cert-grid--3 { grid-template-columns: repeat(2, 1fr); }
  .foot-grid { grid-template-columns: 1fr 1fr; gap: 36px; }
}

/* 页头按实测需要宽度分三档容纳：
   9 项导航全名品牌需要约 1156px、短名品牌约 966px，
   故在 1220px 与 1020px 两处切换形态，避免菜单文字被挤到折行。
   增删导航项后必须用 _probe/measure_nav.mjs 重新实测这四个数，不要沿用旧注释。 */
@media (max-width: 1219px) {
  /* 全名放不下，改挂两行副标题（logo 已含「城乡评估」，不再重复品牌名） */
  .head-in { gap: 12px; }
  .brand { gap: 10px; }
  .brand img { height: 32px; }
  .brand-name .brand-full { display: none; }
  .brand-name small { display: none; }
  .brand-name .brand-sub {
    display: block;
    font-family: var(--sans);
    font-size: 12px;
    font-weight: 400;
    line-height: 1.42;
    color: var(--ink-2);
  }
}

@media (max-width: 1019px) {
  .nav-toggle { display: block; }

  .site-nav {
    display: none;
    position: absolute;
    left: 0;
    right: 0;
    top: 100%;
    background: var(--paper);
    border-bottom: 1px solid var(--ink);
  }
  .site-nav.is-open { display: block; }
  .site-nav ul { flex-direction: column; gap: 0; padding: 4px 24px 12px; }
  .site-nav li { border-bottom: 1px solid var(--grid); }
  .site-nav li:last-child { border-bottom: none; }
  .site-nav a { display: block; padding: 13px 0; border-bottom: none; }
  .site-nav a:hover { border-bottom: none; }
  .site-nav a[aria-current="page"] { color: var(--seal); }
}

@media (max-width: 820px) {
  .hero { padding: 44px 0 40px; }
  .hero h1 { font-size: 26px; }
  .hero .lede { font-size: 15px; }
  .hero-act { gap: 18px; }
  .btn { padding: 12px 24px; }

  .factbar { grid-template-columns: repeat(2, 1fr); }
  .fact { padding: 14px 16px 12px; }
  .fact:nth-child(odd) { border-left: none; padding-left: 0; }
  .fact b { font-size: 20px; }

  .calc-head { padding: 11px 12px; font-size: 13.5px; flex-wrap: wrap; gap: 4px 16px; }
  .calc-t { font-size: 12px; }
  .calc-t th, .calc-t td { padding: 6px 7px; }
  .calc-out { padding: 13px 12px; gap: 14px; }
  .calc-out .v { font-size: 20px; }
  .sealbox { width: 48px; height: 48px; font-size: 12px; }

  .sec { padding: 48px 0; }
  .sec-head h2 { font-size: 20px; }

  .biz, .ident { grid-template-columns: 1fr; gap: 0; }
  .tl-row { grid-template-columns: 1fr; gap: 6px; padding: 16px 0; }
  .tl-year { font-size: 16.5px; }

  .cert-grid--2 { grid-template-columns: 1fr; }
  .cert-grid--3 { grid-template-columns: 1fr; }

  .net-row { grid-template-columns: 1fr; gap: 3px; }
  .net-tel { text-align: left; }

  .page-head { padding: 40px 0 30px; }
  .page-head h1 { font-size: 26px; }

  .dl-list > div { grid-template-columns: 1fr; gap: 4px; }

  .step { grid-template-columns: 1fr; gap: 4px; padding: 16px 0; }

  .file-row { grid-template-columns: 1fr; gap: 14px; }

  .foot-grid { grid-template-columns: 1fr; gap: 30px; }
}

@media (max-width: 360px) {
  /* 320–360px 的老机器：缩小 logo，保证副标题第二行不折 */
  .brand { gap: 8px; }
  .brand img { height: 26px; }
  .brand-name .brand-sub { font-size: 12px; }
}

/* ---------- 打印：A4 宽度会落进汉堡断点，必须显式藏掉导航与按钮 ---------- */
@media print {
  .skip, .nav-toggle, .site-nav, .hero-act, .handoff, .more, .file-act { display: none !important; }
  body { font-size: 11pt; line-height: 1.6; }
  .hero { padding: 0 0 14pt; }
  .page-head { padding: 0 0 10pt; }
  .sec { padding: 14pt 0; }
  .sec:last-of-type { border-bottom: none; }
  a { color: inherit; }
  /* 不让一个条目被切断在两页之间 */
  .step, .qa, .dl-list > div, .file-row, .tl-row, .biz-item, .cert, .factbar, .info, .note { break-inside: avoid; }
  h1, h2, h3 { break-after: avoid; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  * { transition: none !important; }
}
