@charset "utf-8";
/* ==========================================================================
   law46 · 律檀法律资讯网
   设计语言：暖米素纸 + 陶红主色 + 橄榄墨绿辅助 + 深橄榄墨深区
             眉批式居中区块头 · 卡片顶部双色条 · 圆形编号牌 · 方齿角标
   硬约束：零 CDN / 零 @font-face / 零 background-image 位图 / 全部系统字体栈
   ========================================================================== */

/* ---------- 1. 令牌 ---------- （改任一色值 → 同步 imgs.js 的 C{}、pixeltest.PAL、mbar-bottom.BAR_PAL） */
:root {
  --pad: 32px;
  --wrap: 1200px;
  --paper: #f5f0e6;
  --paper-2: #eae3d5;
  --card: #fffdf8;
  --ink: #2b2620;
  --ink-2: #565047;
  --ink-3: #675f51;
  --deep: #2c2a1e;
  --deep-2: #3b382a;
  --on-deep: #f7f3e9;
  --on-deep-2: #cfc8b3;
  --brand: #a5451f;
  --brand-d: #853414;
  --brand-2: #e09155;
  --brand-l: #f8e8de;
  --olive: #5e6b3a;
  --olive-d: #43502c;
  --olive-l: #e8ecdf;
  --line: #ddd5c6;
  --line-2: #c7bda9;
  --line-deep: #514c3a;
  --r: 4px;
  --r-lg: 10px;
  --sh: 0 1px 2px rgba(43, 38, 32, .05);
  --font-sans: "PingFang SC", "Microsoft YaHei", "Hiragino Sans GB", "Source Han Sans SC",
    system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --font-serif: "Songti SC", "SimSun", "Noto Serif SC", Georgia, "Times New Roman", serif;
}

/* ---------- 2. 复位 ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
  margin: 0;
  font: 400 16px/1.75 var(--font-sans);
  color: var(--ink);
  background: var(--paper);
  overflow-x: hidden;
  overflow-wrap: break-word;
}
h1, h2, h3, h4, p, ul, ol, figure, blockquote { margin: 0; padding: 0; }
ul, ol { list-style: none; }
a { color: var(--brand-d); text-decoration: none; }
a:hover { color: var(--brand); }
button { font: inherit; color: inherit; }
table { border-collapse: collapse; }
img, video { max-width: 100%; height: auto; display: block; border: 0; }
svg { display: inline-block; vertical-align: -.125em; flex: 0 0 auto; }
.i {
  width: 17px; height: 17px; max-width: none;
  fill: none; stroke: currentColor; stroke-width: 1.7;
  stroke-linecap: round; stroke-linejoin: round;
}
.sprite { position: absolute; width: 0; height: 0; overflow: hidden; }
[hidden] { display: none !important; }
.skip {
  position: absolute; top: 0; left: 0; clip: rect(0 0 0 0); clip-path: inset(50%);
  width: 1px; height: 1px; overflow: hidden; background: var(--brand); color: #fff;
  padding: 10px 16px; z-index: 99;
}
.skip:focus { clip: auto; clip-path: none; width: auto; height: auto; }

/* ---------- 3. 通用 ---------- */
.wrap {
  width: 100%; max-width: var(--wrap); margin: 0 auto;
  padding-left: var(--pad); padding-right: var(--pad);
}
.tag {
  display: inline-flex; align-items: center; padding: 1px 8px; border-radius: 99px;
  font-size: 12px; line-height: 1.7; background: var(--olive-l); color: var(--olive-d);
  border: 1px solid rgba(94, 107, 58, .22); white-space: nowrap;
}
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  padding: 11px 20px; border: 1px solid transparent; border-radius: var(--r);
  font-size: 15px; font-weight: 600; line-height: 1.4; cursor: pointer;
  transition: background-color .18s ease, border-color .18s ease, color .18s ease;
}
.btn > .btn__t { color: inherit; }
.btn--brand { background: var(--brand); border-color: var(--brand); color: #fff; }
.btn--brand:hover, .btn--brand:focus-visible { background: var(--brand-d); border-color: var(--brand-d); color: #fff; }
.btn--ghost { background: transparent; border-color: var(--line-2); color: var(--ink); }
.btn--ghost:hover { border-color: var(--brand); color: var(--brand-d); }
.btn--block { width: 100%; }
.fold {
  position: absolute; top: 0; right: 0; width: 0; height: 0;
  border-top: 20px solid var(--brand); border-left: 20px solid transparent; pointer-events: none;
}
.reveal { opacity: 1; transform: none; }
html.js-reveal .reveal {
  opacity: 0; transform: translateY(14px);
  transition: opacity .5s ease, transform .5s ease;
}
html.js-reveal .reveal.is-in { opacity: 1; transform: none; }
html.js-reveal .side-rail, html.js-reveal .art-side__rail { opacity: 1; transform: none; }

/* ---------- 4. 顶栏 ---------- */
.topbar { background: var(--deep-2); color: var(--on-deep-2); border-bottom: 1px solid var(--line-deep); }
.topbar__inner {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between;
  gap: 6px 20px; padding-top: 7px; padding-bottom: 7px; font-size: 13px;
}
.topbar__slogan { display: inline-flex; align-items: center; gap: 7px; color: var(--on-deep); }
.topbar__list { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 20px; }
.topbar__it { display: inline-flex; align-items: center; gap: 6px; }
.topbar__link { color: var(--on-deep-2); }
.topbar__link:hover { color: var(--brand-2); }

/* ---------- 5. 页头 / 导航 ---------- */
.site-header {
  position: sticky; top: 0; z-index: 40;
  background: var(--card); border-bottom: 1px solid var(--line);
  box-shadow: var(--sh);
}
.header-main {
  display: flex; flex-wrap: wrap; align-items: center; gap: 14px 22px;
  padding-top: 12px; padding-bottom: 12px;
}
.brand { display: inline-flex; align-items: center; gap: 10px; flex: 0 0 auto; color: var(--ink); }
.brand__mark {
  display: inline-flex; align-items: center; justify-content: center;
  width: 40px; height: 40px; border-radius: var(--r); background: var(--deep); color: var(--brand-2);
}
.brand__txt { display: flex; flex-direction: column; line-height: 1.2; }
.brand__name { font: 700 21px/1.2 var(--font-serif); letter-spacing: .06em; }
.brand__sub { font-size: 11px; font-style: normal; color: var(--ink-3); letter-spacing: .04em; }
.nav { margin-left: auto; }
.nav__list { display: flex; align-items: center; gap: 4px; }
.nav__list > li { flex: 0 0 auto; }
.nav__it { flex: 0 0 auto; }
.nav__link {
  display: block; padding: 9px 13px; border-radius: var(--r); font-size: 15px; font-weight: 500;
  color: var(--ink-2); white-space: nowrap;
}
.nav__link:hover { background: var(--paper-2); color: var(--brand-d); }
.nav__link--cur { color: var(--brand-d); font-weight: 700; }
.nav__link--cur::after {
  content: ""; display: block; height: 2px; margin-top: 4px; border-radius: 2px; background: var(--brand);
}
.header-side { display: flex; align-items: center; gap: 14px; flex: 0 0 auto; }
.header-tel { display: inline-flex; align-items: center; gap: 6px; font-weight: 700; font-size: 15px; color: var(--deep); }
.header-tel:hover { color: var(--brand-d); }
.header-tel__n { letter-spacing: .02em; }
.nav-toggle {
  display: none; align-items: center; gap: 6px; padding: 8px 12px; margin-left: auto;
  background: var(--paper-2); border: 1px solid var(--line); border-radius: var(--r);
  font-size: 14px; color: var(--ink-2); cursor: pointer;
}
.nav-toggle__t { font-size: 14px; }

/* ---------- 6. hero ---------- */
.hero { background: var(--deep); color: var(--on-deep); }
.hero__inner {
  display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr);
  gap: 40px; padding-top: 60px; padding-bottom: 50px;
}
.hero__eyebrow {
  display: inline-flex; align-items: center; gap: 8px; margin-bottom: 16px;
  padding: 4px 12px; border: 1px solid var(--line-deep); border-radius: 99px;
  font-size: 13px; color: var(--brand-2); letter-spacing: .08em;
}
.hero__title {
  font: 700 clamp(28px, 4.2vw, 44px)/1.32 var(--font-serif);
  color: #fff; letter-spacing: .01em; margin-bottom: 16px;
}
.hero__lead { color: var(--on-deep-2); font-size: 16px; max-width: 34em; margin-bottom: 26px; }
.hero__acts { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 24px; }
.hero__pts { display: flex; flex-wrap: wrap; gap: 8px 22px; }
.hero__pt { display: inline-flex; align-items: center; gap: 7px; font-size: 14px; color: var(--on-deep-2); }
.hero__pt .i { color: var(--brand-2); }
.hero__side { display: flex; flex-direction: column; gap: 16px; }
.hero__art { width: 100%; border: 1px solid var(--line-deep); border-radius: var(--r-lg); }
.hero__stats { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; }
.hero__stat {
  padding: 12px 14px; border: 1px solid var(--line-deep); border-radius: var(--r);
  background: rgba(255, 255, 255, .04);
}
.hero__stat-n { display: block; font: 700 26px/1.2 var(--font-serif); color: var(--brand-2); }
.hero__stat-n i { font-size: 13px; font-style: normal; margin-left: 3px; color: var(--on-deep-2); }
.hero__stat-t { display: block; font-size: 13px; color: var(--on-deep-2); }
.hero__belt { background: var(--deep-2); border-top: 1px solid var(--line-deep); padding: 13px 0; }
.belt__inner { display: flex; justify-content: center; }
.belt__list { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 12px; }
.belt__link {
  display: block; padding: 4px 12px; border: 1px solid var(--line-deep); border-radius: 99px;
  font-size: 13px; color: var(--on-deep-2);
}
.belt__link:hover { border-color: var(--brand-2); color: var(--brand-2); }

/* ---------- 7. 区块与眉批式区块头 ---------- */
.sec { padding: 56px 0; }
.sec--tint { background: var(--paper-2); }
.sec--deep { background: var(--deep); color: var(--on-deep); }
.sec-head { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 10px; margin-bottom: 36px; }
.sec-head__tag {
  font-size: 13px; letter-spacing: .26em; color: var(--brand); font-weight: 600;
  text-indent: .26em;
}
.sec-head__title { font: 700 clamp(21px, 2.6vw, 29px)/1.4 var(--font-serif); color: var(--ink); }
.sec-head__rule { position: relative; width: 58px; height: 3px; background: var(--brand); border-radius: 2px; }
.sec-head__rule::before, .sec-head__rule::after {
  content: ""; position: absolute; top: 0; width: 9px; height: 3px; border-radius: 2px;
  background: var(--olive);
}
.sec-head__rule::before { left: -17px; }
.sec-head__rule::after { right: -17px; }
.sec-head__sub { font-size: 14px; color: var(--ink-3); }
.sec-head--deep .sec-head__title { color: #fff; }
.sec-head--deep .sec-head__sub { color: var(--on-deep-2); }
.sec--deep .sec-head__title { color: #fff; }
.sec--deep .sec-head__sub { color: var(--on-deep-2); }
.sec--deep .sec-head__tag { color: var(--brand-2); }
.sec--deep .btn--ghost { border-color: var(--line-deep); color: var(--on-deep); }
.sec--deep .btn--ghost:hover { border-color: var(--brand-2); color: var(--brand-2); }

/* ---------- 8. 分类卡 ---------- */
.cat-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.cat-card {
  position: relative; background: var(--card); border: 1px solid var(--line);
  border-radius: var(--r-lg); overflow: hidden; transition: border-color .18s ease, transform .18s ease;
}
.cat-card:hover { border-color: var(--brand); transform: translateY(-2px); }
.cat-card__link { display: flex; flex-direction: column; gap: 8px; padding: 22px 20px; color: var(--ink); }
.cat-card__ic {
  display: inline-flex; align-items: center; justify-content: center; width: 42px; height: 42px;
  border-radius: var(--r); background: var(--brand-l); color: var(--brand-d);
}
.cat-card__t { font: 700 17px/1.4 var(--font-serif); }
.cat-card__d { font-size: 13.5px; color: var(--ink-3); }
.cat-card__n { font-size: 12.5px; font-style: normal; color: var(--olive-d);margin-left: auto; }

/* ---------- 9. 带缩略图卡 ---------- */
.feat-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px; }
.tcard {
  position: relative; background: var(--card); border: 1px solid var(--line);
  border-radius: var(--r-lg); overflow: hidden;
}
.tcard::before {
  content: ""; position: absolute; top: 0; left: 0; right: 0; height: 3px; z-index: 2;
  background: linear-gradient(90deg, var(--brand) 0 62%, var(--olive) 62% 100%);
}
.tcard__link { display: grid; grid-template-columns: 220px minmax(0, 1fr); color: var(--ink); }
.tcard__media { display: block; overflow: hidden; background: var(--paper-2); }
.tcard__img { width: 100%; height: 100%; object-fit: cover; }
.tcard__body { display: flex; flex-direction: column; gap: 8px; padding: 20px 22px; }
.tcard__cat { font-size: 12.5px; color: var(--brand-d); font-weight: 600; letter-spacing: .04em; }
.tcard__t { font: 700 17px/1.5 var(--font-serif); }
.tcard__d { font-size: 13.5px; color: var(--ink-3); }
.tcard__meta { display: flex; flex-wrap: wrap; gap: 4px 14px; margin-top: auto; font-size: 12.5px; color: var(--ink-3); }
.tcard__meta em { font-style: normal; }
.tcard:hover .tcard__t { color: var(--brand-d); }

/* ---------- 10. 双列 / 三列无缩略图（序号 = 圆形编号牌） ---------- */
.sec-body__inner { max-width: 1060px; margin: 0 auto; }
/* 双列/三列分别成条声明：check 的「grid 必须声明列数」按选择器整体归一，逗号合并会被判缺失 */
.duo { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0 40px; }
.tri { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0 30px; }
.duo__it, .tri__it { border-bottom: 1px solid var(--line); }
.duo__it:nth-last-child(-n+2), .tri__it:nth-last-child(-n+3) { border-bottom: 0; }
.duo__link, .tri__link { display: flex; align-items: flex-start; gap: 13px; padding: 15px 2px; color: var(--ink); }
.duo__no, .tri__no {
  display: flex; align-items: center; justify-content: center; flex: 0 0 auto;
  width: 34px; height: 34px; border-radius: 50%;
  background: var(--brand-l); color: var(--brand-d);
  font: 700 12.5px/1 var(--font-sans); letter-spacing: .02em;
}
.tri__no { background: var(--olive-l); color: var(--olive-d); }
.duo__body, .tri__body { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.duo__t, .tri__t { font-size: 15.5px; font-weight: 600; line-height: 1.55; }
.duo__link:hover .duo__t, .tri__link:hover .tri__t { color: var(--brand-d); }
.duo__meta, .tri__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 12px; font-size: 12.5px; color: var(--ink-3); }
.duo__meta em, .tri__meta em { font-style: normal; }
/* 变体：文章页相关（透明底 + 橄榄竖线）；最新（卡底 + 陶红顶线） */
.duo-wrap--rel .duo__link { background: transparent; border-left: 3px solid var(--olive); padding-left: 14px; }
.duo-wrap--rel .duo__it { border-bottom: 0; }
.duo-wrap--rel .duo__no { background: transparent; color: var(--olive-d); box-shadow: inset 0 0 0 1px var(--olive); }
.tri-wrap--new .tri__it { border-bottom: 0; }
.tri-wrap--new .tri__link {
  background: var(--card); border-top: 3px solid var(--brand); border-radius: var(--r);
  padding: 16px 16px; height: 100%;
}
.tri-wrap--new .tri__no { background: var(--brand); color: #fff; }

/* ---------- 11. 关于 + 数据 ---------- */
.about__grid { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(0, 1fr); gap: 40px; align-items: start; }
.about__main { display: flex; flex-direction: column; gap: 16px; align-items: flex-start; }
.about__p { color: var(--on-deep-2); }
.sec--deep .about__p { color: var(--on-deep-2); }
.facts { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; }
.facts__it { padding: 16px 18px; border: 1px solid var(--line-deep); border-radius: var(--r); }
.facts__n { display: block; font: 700 27px/1.2 var(--font-serif); color: var(--brand-2); }
.facts__n i { font-size: 13px; font-style: normal; margin-left: 3px; color: var(--on-deep-2); }
.facts__t { display: block; font-size: 13px; color: var(--on-deep-2); }

/* ---------- 12. 流程 ---------- */
.method { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.method__it {
  position: relative; display: flex; flex-direction: column; gap: 8px;
  padding: 22px 20px; background: var(--card); border: 1px solid var(--line); border-radius: var(--r-lg);
}
.method__no { font: 700 22px/1 var(--font-serif); color: var(--brand); font-style: normal; }
.method__t { font: 700 16px/1.4 var(--font-serif); }
.method__d { font-size: 13.5px; color: var(--ink-3); }

/* ---------- 13. 表单（深底区内的浅色卡须显式声明文字色） ---------- */
.consult { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: 30px; align-items: start; }
.form-card {
  background: var(--card); color: var(--ink); border-radius: var(--r-lg);
  padding: 28px 28px 26px; border: 1px solid var(--line);
}
.form-card__title { font: 700 20px/1.4 var(--font-serif); color: var(--ink); margin-bottom: 6px; }
.form-card__sub { font-size: 13.5px; color: var(--ink-3); margin-bottom: 16px; }
.form-alert {
  display: none; margin-bottom: 14px; padding: 10px 14px; border-radius: var(--r); font-size: 14px;
  border: 1px solid transparent;
}
.form-alert.is-on { display: block; }
.form-alert.is-err { background: #fbeae5; border-color: #dda593; color: #7c2d10; }
.form-alert.is-ok { background: var(--olive-l); border-color: rgba(94, 107, 58, .35); color: var(--olive-d); }
.form-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px 18px; }
.field { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.field--full { grid-column: 1 / -1; }
.field__lab { font-size: 13.5px; font-weight: 600; color: var(--ink-2); }
.req { color: var(--brand); font-style: normal; margin-left: 3px; }
.field__ctl {
  width: 100%; padding: 10px 12px; font: 400 15px/1.5 var(--font-sans); color: var(--ink);
  background: #fff; border: 1px solid var(--line-2); border-radius: var(--r);
  transition: border-color .18s ease, box-shadow .18s ease;
}
.field__ctl::placeholder { color: var(--ink-3); }
.field__ctl:focus { outline: none; border-color: var(--brand); box-shadow: 0 0 0 3px rgba(165, 69, 31, .13); }
select.field__ctl { appearance: none; -webkit-appearance: none; padding-right: 34px; }
textarea.field__ctl { resize: vertical; min-height: 104px; }
.field__err { display: none; font-size: 12.5px; color: #7c2d10; }
.field.is-invalid .field__ctl { border-color: #b4462a; background: #fdf4f1; }
.field.is-invalid .field__err { display: block; }
.checkbox { display: flex; align-items: flex-start; gap: 9px; font-size: 13.5px; color: var(--ink-2); cursor: pointer; }
.checkbox input { flex: 0 0 auto; width: 17px; height: 17px; margin-top: 3px; accent-color: var(--brand); }
.form-foot { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 18px; margin-top: 18px; }
.form-foot__n { font-size: 12.5px; color: var(--ink-3); }
.consult__aside { display: flex; flex-direction: column; gap: 16px; }
.consult__card {
  background: rgba(255, 255, 255, .05); border: 1px solid var(--line-deep);
  border-radius: var(--r-lg); padding: 20px 20px;
}
.consult__lab { font-size: 12.5px; letter-spacing: .16em; color: var(--brand-2); margin-bottom: 10px; }
.consult__tel { display: flex; align-items: center; gap: 8px; font: 700 21px/1.3 var(--font-serif); color: #fff; }
.consult__mail, .consult__addr { display: flex; align-items: center; gap: 8px; font-size: 13.5px; color: var(--on-deep-2); margin-top: 8px; }
.consult__link { color: var(--on-deep); }
.consult__list { display: flex; flex-direction: column; gap: 8px; }
.consult__it { display: flex; align-items: center; gap: 8px; font-size: 14px; color: var(--on-deep-2); }
.consult__it .i { color: var(--brand-2); }
.consult__note {
  display: flex; align-items: flex-start; gap: 9px; font-size: 13px; color: var(--on-deep-2);
  padding: 14px 16px; border: 1px dashed var(--line-deep); border-radius: var(--r);
}
.consult__note .i { color: var(--brand-2); margin-top: 3px; }

/* ---------- 14. FAQ ---------- */
.faq { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; }
.faq__it {
  background: var(--card); border: 1px solid var(--line); border-radius: var(--r-lg); overflow: hidden;
}
.faq__box { padding: 18px 20px; }
.faq__q {
  display: flex; align-items: center; gap: 10px; cursor: pointer; list-style: none;
  font: 600 16px/1.5 var(--font-sans); color: var(--ink);
}
.faq__q::-webkit-details-marker { display: none; }
.faq__mark {
  flex: 0 0 auto; display: flex; align-items: center; justify-content: center;
  width: 26px; height: 26px; border-radius: 50%; background: var(--brand-l); color: var(--brand-d);
  font: 700 12px/1 var(--font-sans);
}
.faq__qt { flex: 1 1 auto; }
.faq__q .i { color: var(--ink-3); transition: transform .2s ease; }
.faq__box[open] .faq__q .i { transform: rotate(90deg); }
.faq__a { margin-top: 10px; padding-left: 36px; font-size: 14px; color: var(--ink-2); }

/* ---------- 15. 友情链接（不分类） ---------- */
.links__cloud { display: flex; flex-wrap: wrap; gap: 10px; }
.links__link {
  display: inline-flex; align-items: center; gap: 6px; padding: 8px 14px;
  background: var(--card); border: 1px solid var(--line); border-radius: 99px;
  font-size: 13.5px; color: var(--ink-2);
}
.links__link:hover { border-color: var(--brand); color: var(--brand-d); }
.links__link .i { color: var(--ink-3); }

/* ---------- 16. 内页 banner / 面包屑 ---------- */
.page-banner { background: var(--deep); color: var(--on-deep); border-bottom: 3px solid var(--brand); }
.page-banner__inner {
  display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 20px;
  padding-top: 44px; padding-bottom: 36px;
}
.page-banner__main { max-width: 42em; }
.page-banner__eyebrow {
  display: inline-flex; align-items: center; gap: 7px; margin-bottom: 12px;
  font-size: 12.5px; letter-spacing: .18em; color: var(--brand-2);
}
.page-banner__title { font: 700 clamp(23px, 3.2vw, 33px)/1.34 var(--font-serif); color: #fff; margin-bottom: 10px; }
.page-banner__desc { font-size: 14.5px; color: var(--on-deep-2); }
.page-banner__side { display: flex; gap: 14px; }
.page-banner__stat {
  min-width: 92px; padding: 10px 14px; text-align: center;
  border: 1px solid var(--line-deep); border-radius: var(--r); background: rgba(255, 255, 255, .04);
}
.page-banner__stat em { display: block; font: 700 22px/1.2 var(--font-serif); color: var(--brand-2); font-style: normal; }
.page-banner__stat span { display: block; font-size: 12.5px; color: var(--on-deep-2); }
.crumb { background: var(--paper-2); border-bottom: 1px solid var(--line); }
.crumb__inner { padding-top: 11px; padding-bottom: 11px; }
.crumb__list { display: flex; flex-wrap: wrap; align-items: center; gap: 5px; font-size: 13.5px; }
.crumb__it { display: inline-flex; align-items: center; min-width: 0; }
.crumb__link { color: var(--ink-2); }
.crumb__link:hover { color: var(--brand-d); }
.crumb__span { color: var(--ink-3); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 22em; }
.crumb__sep { display: inline-flex; align-items: center; color: var(--ink-3); }

/* ---------- 17. 列表页 ---------- */
.news-layout {
  display: grid; grid-template-columns: minmax(0, 1fr) 330px; gap: 46px;
  align-items: start; padding-top: 34px; padding-bottom: 46px;
}
.news-main { display: flex; flex-direction: column; gap: 26px; min-width: 0; }
.filter { display: flex; flex-direction: column; gap: 12px; }
.filter__top { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; }
.filter__lab { display: inline-flex; align-items: center; gap: 7px; font-size: 14px; font-weight: 600; color: var(--ink-2); }
.filter__lab .i { color: var(--brand); }
.filter__count { font-size: 13px; color: var(--ink-3); }
.filter__list { display: flex; flex-wrap: wrap; gap: 9px; }
.chip {
  display: inline-flex; align-items: center; gap: 7px; padding: 7px 13px; cursor: pointer;
  background: var(--card); border: 1px solid var(--line); border-radius: 99px;
  font-size: 13.5px; color: var(--ink-2);
  transition: background-color .16s ease, border-color .16s ease, color .16s ease;
}
.chip__n { font-style: normal; font-size: 12px; color: var(--ink-3); }
.chip:hover { border-color: var(--brand); color: var(--brand-d); }
.chip.is-on { background: var(--brand); border-color: var(--brand); color: #fff; }
.chip.is-on .chip__n { color: rgba(255, 255, 255, .82); }
.filter__empty { padding: 18px; text-align: center; font-size: 14px; color: var(--ink-3); background: var(--card); border: 1px dashed var(--line-2); border-radius: var(--r); }
.leadrow { position: relative; background: var(--card); border: 1px solid var(--line); border-radius: var(--r-lg); overflow: hidden; }
.leadrow__link { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); color: var(--ink); }
.leadrow__media { display: block; overflow: hidden; background: var(--paper-2); }
.leadrow__img { width: 100%; height: 100%; object-fit: cover; }
.leadrow__body { display: flex; flex-direction: column; gap: 10px; padding: 24px 26px; }
.leadrow__flags { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.leadrow__cat { font-size: 12.5px; font-weight: 700; color: #fff; background: var(--olive); padding: 2px 10px; border-radius: 99px; }
.leadrow__hot { display: inline-flex; align-items: center; gap: 5px; font-size: 12.5px; font-style: normal; color: var(--brand-d); }
.leadrow__t { font: 700 20px/1.45 var(--font-serif); }
.leadrow__d { font-size: 14px; color: var(--ink-3); }
.leadrow__meta { display: flex; flex-wrap: wrap; gap: 4px 16px; margin-top: auto; font-size: 12.5px; color: var(--ink-3); }
.leadrow__meta em { font-style: normal; }
.leadrow:hover .leadrow__t { color: var(--brand-d); }
.rowgrid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.rowline { background: var(--card); border: 1px solid var(--line); border-radius: var(--r-lg); overflow: hidden; }
.rowline__link { display: flex; flex-direction: column; height: 100%; color: var(--ink); }
.rowline__media { display: block; overflow: hidden; background: var(--paper-2); }
.rowline__img { width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; }
.rowline__body { display: flex; flex-direction: column; gap: 7px; padding: 15px 16px 17px; height: 100%; }
.rowline__t { font: 700 15.5px/1.5 var(--font-serif); }
.rowline__d { font-size: 13px; color: var(--ink-3); }
.rowline__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 12px; margin-top: auto; font-size: 12.5px; color: var(--ink-3); }
.rowline__meta em { font-style: normal; }
.rowline:hover .rowline__t { color: var(--brand-d); }
.ledger { position: relative; background: var(--card); border: 1px solid var(--line); border-radius: var(--r-lg); overflow: hidden; padding-bottom: 6px; }
.ledger__head {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  padding: 16px 20px; border-bottom: 1px solid var(--line);
}
.ledger__t { display: inline-flex; align-items: center; gap: 8px; font: 700 16px/1.4 var(--font-serif); }
.ledger__t .i { color: var(--brand); }
.ledger__n { font-size: 13px; font-style: normal; color: var(--ink-3); }
.plainlist { padding: 0 20px; }
.plain { border-bottom: 1px solid var(--line); }
.plain:last-child { border-bottom: 0; }
.plain__link { display: flex; align-items: center; gap: 14px; padding: 14px 0; color: var(--ink); }
.plain__no {
  flex: 0 0 auto; font: 700 13px/1 var(--font-sans); font-style: normal;
  color: var(--ink-3); letter-spacing: .04em;
}
.plain__body { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 14px; flex: 1 1 auto; min-width: 0; }
.plain__t { font-size: 15px; font-weight: 600; }
.plain__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 12px; font-size: 12.5px; color: var(--ink-3); }
.plain__meta em { font-style: normal; }
.plain__go { display: inline-flex; font-style: normal; color: var(--ink-3); }
.plain__link:hover .plain__t { color: var(--brand-d); }
.plain__link:hover .plain__go { color: var(--brand); }
.pager { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; }
.pager__info { font-size: 13.5px; color: var(--ink-3); }
.pager__list { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.pager__link {
  display: inline-flex; align-items: center; justify-content: center; min-width: 36px; height: 36px;
  padding: 0 10px; border: 1px solid var(--line); border-radius: var(--r);
  background: var(--card); font-size: 13.5px; color: var(--ink-2);
}
.pager__link:hover { border-color: var(--brand); color: var(--brand-d); }
.pager__link--cur { background: var(--brand); border-color: var(--brand); color: #fff; }
.pager__link--cur:hover { color: #fff; }
.pager__link--dis { color: var(--ink-3); background: var(--paper-2); cursor: not-allowed; }
.pager__dots { color: var(--ink-3); padding: 0 2px; }

/* ---------- 18. 侧栏 widget ---------- */
.side-rail, .art-side__rail { display: flex; flex-direction: column; gap: 22px; }
.widget { background: var(--card); border: 1px solid var(--line); border-radius: var(--r-lg); overflow: hidden; }
.widget__head {
  display: flex; align-items: center; gap: 9px; padding: 14px 18px;
  border-bottom: 2px solid var(--ink); background: var(--paper-2);
}
.widget__head .i { color: var(--brand); }
.widget__t { font: 700 16px/1.4 var(--font-serif); }
.widget__body { padding: 14px 18px 16px; }
.toc__list { display: flex; flex-direction: column; }
.toc__it { border-bottom: 1px dashed var(--line); }
.toc__it:last-child { border-bottom: 0; }
.toc__link { display: block; padding: 9px 0 9px 12px; font-size: 14px; color: var(--ink-2); border-left: 3px solid transparent; }
.toc__link:hover { color: var(--brand-d); }
.toc__link.is-on { color: var(--brand-d); font-weight: 600; border-left-color: var(--brand); background: var(--brand-l); }
.wcatnav__list { display: flex; flex-direction: column; }
.wcatnav__it { border-bottom: 1px solid var(--line); }
.wcatnav__it:last-child { border-bottom: 0; }
.wcatnav__link { display: flex; align-items: center; gap: 9px; padding: 10px 0; font-size: 14px; color: var(--ink-2); }
.wcatnav__link .i { color: var(--olive-d); }
.wcatnav__t { flex: 1 1 auto; }
.wcatnav__n { font-size: 12.5px; font-style: normal; color: var(--ink-3); }
.wcatnav__link:hover { color: var(--brand-d); }
.whot__list { display: flex; flex-direction: column; }
.whot__it { border-bottom: 1px solid var(--line); }
.whot__it:last-child { border-bottom: 0; }
.whot__link { display: flex; align-items: flex-start; gap: 9px; padding: 10px 0; font-size: 14px; color: var(--ink-2); }
.whot__no { flex: 0 0 auto; font: 700 13px/1.6 var(--font-sans); font-style: normal; color: var(--brand); }
.whot__t { flex: 1 1 auto; line-height: 1.55; }
.whot__r { flex: 0 0 auto; font-size: 12px; font-style: normal; color: var(--ink-3); }
.whot__link:hover .whot__t { color: var(--brand-d); }
.wlaw__list { display: flex; flex-direction: column; }
.wlaw__it { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 8px; padding: 9px 0; border-bottom: 1px solid var(--line); font-size: 13.5px; }
.wlaw__it:last-child { border-bottom: 0; }
.wlaw__no { font-style: normal; font-weight: 700; color: var(--brand-d); }
.wlaw__t { color: var(--ink-2); }
.wlaw__d { flex: 1 1 100%; font-style: normal; font-size: 12.5px; color: var(--ink-3); }
.wsteps__list { display: flex; flex-direction: column; gap: 11px; }
.wsteps__it { display: grid; grid-template-columns: 26px minmax(0, 1fr); gap: 3px 10px; }
.wsteps__no {
  grid-row: 1 / 3; display: flex; align-items: center; justify-content: center;
  width: 26px; height: 26px; border-radius: 50%; background: var(--olive-l); color: var(--olive-d);
  font: 700 12.5px/1 var(--font-sans); font-style: normal;
}
.wsteps__t { font-size: 14px; font-weight: 600; }
.wsteps__d { font-size: 12.5px; color: var(--ink-3); }
.wnotice__list { display: flex; flex-direction: column; gap: 9px; }
.wnotice__it { display: flex; align-items: flex-start; gap: 8px; font-size: 13.5px; color: var(--ink-2); }
.wnotice__it .i { color: var(--olive-d); margin-top: 3px; }
.wcta__d { font-size: 13.5px; color: var(--ink-2); margin-bottom: 12px; }
.wcta__tel { display: flex; align-items: center; justify-content: center; gap: 7px; margin-top: 11px; font-size: 14px; font-weight: 700; color: var(--deep); }
.wcta__tel .i { color: var(--brand); }
.wfaq__list { display: flex; flex-direction: column; gap: 12px; }
.wfaq__it { padding-left: 12px; border-left: 3px solid var(--brand-l); }
.wfaq__q { font-size: 13.5px; font-weight: 600; margin-bottom: 4px; }
.wfaq__a { font-size: 12.5px; color: var(--ink-3); }
.wtag__cloud { display: flex; flex-wrap: wrap; gap: 7px; }
.wtag__it { padding: 5px 11px; border: 1px solid var(--line); border-radius: 99px; font-size: 12.5px; color: var(--ink-2); background: var(--paper); }
.wtag__it:hover { border-color: var(--brand); color: var(--brand-d); }
.wsame__list { display: flex; flex-direction: column; margin-bottom: 12px; }
.wsame__it { border-bottom: 1px dashed var(--line); }
.wsame__it:last-child { border-bottom: 0; }
.wsame__link { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; padding: 9px 0; font-size: 13.5px; color: var(--ink-2); }
.wsame__t { flex: 1 1 auto; line-height: 1.5; }
.wsame__d { flex: 0 0 auto; font-style: normal; font-size: 12px; color: var(--ink-3); }
.wsame__link:hover .wsame__t { color: var(--brand-d); }
.wsame__more { display: inline-flex; align-items: center; gap: 6px; padding: 9px 0 0; border-top: 1px solid var(--line); width: 100%; font-size: 13.5px; font-weight: 600; color: var(--brand-d); }

/* ---------- 19. 文章页 ---------- */
.art-layout {
  display: grid; grid-template-columns: minmax(0, 1fr) 330px; gap: 46px;
  align-items: start; padding-top: 34px; padding-bottom: 44px;
}
.art-side { align-self: stretch; }
.art-main { min-width: 0; }
.art-head { position: relative; overflow: hidden; padding-bottom: 22px; border-bottom: 1px solid var(--line); margin-bottom: 24px; }
.art-head__cat { display: inline-flex; align-items: center; gap: 7px; margin-bottom: 10px; font-size: 13px; font-weight: 600; color: var(--brand-d); letter-spacing: .06em; }
.art-head__title { font: 700 clamp(23px, 3vw, 32px)/1.4 var(--font-serif); margin-bottom: 14px; }
.art-head__meta { display: flex; flex-wrap: wrap; gap: 8px 20px; font-size: 13px; color: var(--ink-3); }
.art-head__mi { display: inline-flex; align-items: center; gap: 6px; }
.art-lead {
  margin-top: 18px; padding: 16px 20px; background: var(--paper-2); border-left: 4px solid var(--brand);
  border-radius: 0 var(--r) var(--r) 0; font-size: 15px; color: var(--ink-2);
}
.art-body { display: flex; flex-direction: column; gap: 16px; }
.art-p { font-size: 16px; line-height: 1.95; color: var(--ink); }
.art-h2 {
  position: relative; margin-top: 16px; padding-left: 14px;
  font: 700 20px/1.5 var(--font-serif);
}
.art-h2::before {
  content: ""; position: absolute; left: 0; top: .34em; width: 5px; height: 1.05em;
  background: var(--brand); border-radius: 2px;
}
.note {
  display: flex; align-items: flex-start; gap: 10px; padding: 14px 16px;
  background: var(--paper-2); border: 1px dashed var(--line-2); border-radius: var(--r);
  font-size: 14px; color: var(--ink-2);
}
.note .i { color: var(--brand); margin-top: 3px; }
.kwbox {
  display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; padding: 13px 16px;
  background: var(--olive-l); border-radius: var(--r); border: 1px solid rgba(94, 107, 58, .22);
}
.kwbox .i { color: var(--olive-d); }
.kwbox__k { font-size: 13px; font-weight: 700; color: var(--olive-d); }
.kwbox__list { display: flex; flex-wrap: wrap; gap: 7px; }
.kwbox__it {
  padding: 2px 10px; background: var(--card); border: 1px solid rgba(94, 107, 58, .3);
  border-radius: 99px; font-size: 12.5px; color: var(--olive-d);
}
.tipbox { padding: 16px 18px; background: var(--brand-l); border-radius: var(--r); border: 1px solid rgba(165, 69, 31, .22); }
.tipbox__t { display: flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 700; color: var(--brand-d); margin-bottom: 7px; }
.tipbox__v { font-size: 14.5px; color: var(--ink-2); }
.quote {
  display: flex; gap: 12px; padding: 18px 20px; background: var(--deep); color: var(--on-deep);
  border-radius: var(--r-lg);
}
.quote .i { color: var(--brand-2); flex: 0 0 auto; }
.quote__p { font: 400 15.5px/1.85 var(--font-serif); color: var(--on-deep); }
.doc-table { border: 1px solid var(--line); border-radius: var(--r-lg); overflow: hidden; background: var(--card); }
.doc-table__cap {
  padding: 12px 16px; text-align: left; background: var(--paper-2); border-bottom: 1px solid var(--line);
  font-size: 13.5px; font-weight: 700; color: var(--ink-2);
}
.doc-table table { width: 100%; font-size: 14px; }
.doc-table th, .doc-table td {
  padding: 11px 14px; text-align: left; vertical-align: top; border-bottom: 1px solid var(--line);
  border-right: 1px solid var(--line);
}
.doc-table th { background: var(--paper); font-weight: 700; color: var(--ink); }
.doc-table td { color: var(--ink-2); }
.doc-table tr > *:last-child { border-right: 0; }
.doc-table tbody tr:last-child > * { border-bottom: 0; }
.flow { padding: 4px 0; }
.flow__list { display: flex; flex-direction: column; gap: 12px; }
.flow__it { display: grid; grid-template-columns: 40px minmax(0, 1fr); gap: 2px 14px; }
.flow__no {
  grid-row: 1 / 3; display: flex; align-items: center; justify-content: center;
  width: 40px; height: 40px; border-radius: var(--r); background: var(--deep); color: var(--brand-2);
  font: 700 14px/1 var(--font-serif); font-style: normal;
}
.flow__t { font-size: 15px; font-weight: 700; }
.flow__d { font-size: 13.5px; color: var(--ink-3); }
.art-sec { margin-bottom: 40px; }
.art-more { padding-bottom: 44px; }
.art-tags { display: flex; align-items: flex-start; gap: 10px; padding: 16px 0 0; border-top: 1px solid var(--line); }
.art-tags .i { color: var(--ink-3); margin-top: 4px; }
.art-tags__list { display: flex; flex-wrap: wrap; gap: 8px; }
.art-tags__link { display: block; padding: 5px 12px; background: var(--card); border: 1px solid var(--line); border-radius: 99px; font-size: 13px; color: var(--ink-2); }
.art-tags__link:hover { border-color: var(--brand); color: var(--brand-d); }
.prevnext { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }
.prevnext__it {
  display: flex; flex-direction: column; gap: 6px; padding: 16px 20px;
  background: var(--card); border: 1px solid var(--line); border-radius: var(--r-lg); color: var(--ink);
}
.prevnext__it:hover { border-color: var(--brand); }
.prevnext__it--next { text-align: right; align-items: flex-end; }
.prevnext__dir { display: inline-flex; align-items: center; gap: 5px; font-size: 12.5px; color: var(--ink-3); }
.prevnext__t { font-size: 15px; font-weight: 600; line-height: 1.5; }
.prevnext__it:hover .prevnext__t { color: var(--brand-d); }

/* ---------- 20. 通栏服务带 / 页脚 / 移动底栏 ---------- */
.srvband { background: var(--deep); }
.srvband__box { padding-top: 30px; padding-bottom: 30px; }
.srvband__list { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.srvband__it { display: flex; flex-direction: column; gap: 5px; }
.srvband__ic { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: var(--r); background: rgba(255, 255, 255, .07); color: var(--brand-2); margin-bottom: 4px; }
.srvband__t { font: 700 15.5px/1.4 var(--font-serif); color: #fff; }
.srvband__d { font-size: 13px; color: var(--on-deep-2); }
.site-footer { background: var(--deep); color: var(--on-deep-2); border-top: 3px solid var(--brand); }
.footer-main {
  display: grid; grid-template-columns: minmax(0, 1.35fr) repeat(4, minmax(0, 1fr));
  gap: 28px 24px; padding-top: 46px; padding-bottom: 34px;
}
.footer-brand { display: flex; flex-direction: column; gap: 10px; }
.footer-brand__logo { display: inline-flex; align-items: center; justify-content: center; width: 46px; height: 46px; border-radius: var(--r); background: rgba(255, 255, 255, .07); color: var(--brand-2); }
.footer-brand__name { font: 700 18px/1.4 var(--font-serif); color: #fff; }
.footer-brand__d { font-size: 13px; color: var(--on-deep-2); }
.footer-brand__tel { display: inline-flex; align-items: center; gap: 7px; font-size: 17px; font-weight: 700; color: var(--brand-2); }
.footer__col { display: flex; flex-direction: column; gap: 10px; }
.footer__t { font-size: 14px; font-weight: 700; color: #fff; letter-spacing: .04em; }
.footer__list { display: flex; flex-direction: column; gap: 8px; }
.footer__it { display: flex; align-items: flex-start; gap: 8px; font-size: 13.5px; color: var(--on-deep-2); }
.footer__link { color: var(--on-deep-2); }
.footer__link:hover { color: var(--brand-2); }
.footer__it .i { color: var(--brand-2); margin-top: 3px; }
.footer-bottom {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 20px;
  padding-top: 16px; padding-bottom: 18px; border-top: 1px solid var(--line-deep); font-size: 12.5px;
}
.footer__legal, .footer__meta { color: var(--on-deep-2); }
.mobile-bar {
  display: none; grid-template-columns: repeat(3, 1fr);
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 50;
  background: var(--deep); border-top: 1px solid var(--line-deep);
}
.mobile-bar__it {
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px;
  padding: 9px 4px; font-size: 12px; color: var(--on-deep-2); border-right: 1px solid var(--line-deep);
}
.mobile-bar__it:last-child { border-right: 0; }
.mobile-bar__it--cta { background: var(--brand); color: #fff; }
.mobile-bar__it--cta:hover { color: #fff; }
.mobile-bar__t { font-size: 12px; }

/* ---------- 20b. 叶子钩子的显式落点 ----------
   这些类在结构上需要，但没有独立样式；给一条最小声明，避免落进「有类名、无 CSS」的隐患名单
   （check 的类名全覆盖断言要求每个 token 都有落点或进白名单）。 */
.hero__main { display: flex; flex-direction: column; align-items: flex-start; }
.belt__it { display: flex; }
.filter__it { display: flex; }
.chip__t { white-space: nowrap; }
.pager__it { display: inline-flex; }
.checkbox__t { flex: 1 1 auto; }
.links__it { display: flex; }
.art-tags__it { display: flex; }
.footer__col--addr { min-width: 0; }

/* ---------- 21. 响应式 ---------- */
@media (max-width: 1099px) {
  .nav-toggle { display: inline-flex; order: 3; }
  .nav { order: 4; flex: 1 0 100%; max-height: 0; overflow: hidden; margin-left: 0; transition: max-height .28s ease; }
  .site-header.is-open .nav { max-height: 460px; }
  .nav__list { flex-direction: column; align-items: stretch; gap: 0; padding: 6px 0; }
  .nav__list > li { flex: 0 0 auto; }
  .nav__link { padding: 12px 10px; border-bottom: 1px solid var(--line); border-radius: 0; font-size: 15px; }
  .nav__link--cur::after { display: none; }
  .brand { order: 1; }
  .header-side { order: 2; margin-left: auto; }
  .header-main { gap: 10px 18px; }
  .hero__inner { grid-template-columns: minmax(0, 1fr); gap: 30px; }
  .cat-grid { grid-template-columns: repeat(2, 1fr); }
  .about__grid { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .consult { grid-template-columns: minmax(0, 1fr); }
  .news-layout, .art-layout { grid-template-columns: minmax(0, 1fr); gap: 30px; }
  .news-side, .art-side { align-self: auto; }
  .rowgrid { grid-template-columns: repeat(2, 1fr); }
  .srvband__list { grid-template-columns: repeat(2, 1fr); }
  .footer-main { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .duo { grid-template-columns: repeat(2, 1fr); gap: 0 28px; }
  .tri { grid-template-columns: repeat(2, 1fr); gap: 0 24px; }
  .tri__it:nth-last-child(-n+2) { border-bottom: 0; }
  /* 修饰类 + 结构类的组合，降列时必须原样复写全限定名（law45 §7.3） */
  .duo-wrap--rel .duo, .tri-wrap--new .tri { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 899px) {
  .header-tel { display: none; }
  .mobile-bar { display: grid; }
  body { padding-bottom: 62px; }
  .sec { padding: 44px 0; }
  .method { grid-template-columns: repeat(2, 1fr); }
  .faq { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 767px) {
  :root { --pad: 18px; }
  .sec-head { margin-bottom: 26px; }
  .tcard__link { grid-template-columns: minmax(0, 1fr); }
  .tcard__media { aspect-ratio: 16 / 9; }
  .leadrow__link { grid-template-columns: minmax(0, 1fr); }
  .leadrow__media { aspect-ratio: 16 / 9; }
  .rowgrid { grid-template-columns: minmax(0, 1fr); }
  .duo, .tri { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .duo-wrap--rel .duo, .tri-wrap--new .tri { grid-template-columns: minmax(0, 1fr); }
  .duo__it:last-child, .tri__it:last-child { border-bottom: 0; }
  .form-grid { grid-template-columns: minmax(0, 1fr); }
  .prevnext { grid-template-columns: minmax(0, 1fr); }
  .prevnext__it--next { text-align: left; align-items: flex-start; }
  .facts { grid-template-columns: repeat(2, 1fr); }
  .art-lead { padding: 14px 16px; }
  /* 表格窄屏堆叠：块级 + data-label 前缀（不用 grid，避免伪元素占格） */
  .doc-table table, .doc-table thead, .doc-table tbody, .doc-table tr, .doc-table th, .doc-table td { display: block; }
  .doc-table thead { display: none; }
  .doc-table table { font-size: 13.5px; }
  .doc-table tr { border-bottom: 1px solid var(--line); padding: 10px 14px; }
  .doc-table tbody tr:last-child { border-bottom: 0; }
  .doc-table th, .doc-table td { border: 0; padding: 3px 0; background: transparent; }
  .doc-table th[data-label]::before, .doc-table td[data-label]::before {
    content: attr(data-label); display: block; font-size: 12px; color: var(--ink-3);
    letter-spacing: .04em; margin-bottom: 1px;
  }
}
@media (max-width: 559px) {
  .header-cta { display: none; }
  .topbar__list { display: none; }
  .cat-grid { grid-template-columns: minmax(0, 1fr); }
  .feat-grid { grid-template-columns: minmax(0, 1fr); }
  .method { grid-template-columns: minmax(0, 1fr); }
  .page-banner__inner { padding-top: 32px; padding-bottom: 26px; }
  .footer-main { grid-template-columns: minmax(0, 1fr); gap: 22px; }
  .srvband__list { grid-template-columns: minmax(0, 1fr); }
  .sec-body__inner { max-width: none; }
}

/* 无 JS 兜底：判据类由 <head> 内联脚本写在 <html> 上（law45 §7.1）
   —— 绝不能写成 .site-header:not(.is-collapsible)，那会让桌面导航被顶成第二行。 */
html:not(.has-js) .site-header .nav { flex: 1 0 100%; margin-left: 0; max-height: none; }
html:not(.has-js) .site-header .nav__list { flex-wrap: wrap; }
html:not(.has-js) .site-header .nav-toggle { display: none; }
html:not(.has-js) .side-rail, html:not(.has-js) .art-side__rail { opacity: 1; transform: none; }

/* ---------- 22. print / 动效偏好 ---------- */
@media print {
  html.js-reveal .reveal { opacity: 1 !important; transform: none !important; }
  .site-header, .mobile-bar, .topbar, .hero__belt, .srvband, .filter { display: none !important; }
  body { background: #fff; color: #000; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  html.js-reveal .reveal { opacity: 1; transform: none; transition: none; }
  *, *::before, *::after { transition: none !important; animation: none !important; }
}
