@charset "utf-8";
/* ==========================================================================
   law45 · 律砚网 —— 全站样式（唯一手写的核心资产）
   版面语言：① 折角标（卡片右上角三角折角，全站统一语式）
             ② 双线刻度区块头（1px 浅线 + 2px 深线）+ 方括号编号 [ 01 ]
             ③ 点线分隔（1px dotted）取代实线
             ④ 数字刻度带（hero 底部四格等距刻度）
   配色：冷雾纸 #eef1f3 + 深墨青 #122b38 + 朱砂陶橙 #d9603f（浅底文字 #9c3a20）
   ★ 承载文字的令牌一律按「全站最差底」定值，不是按主纸底定：
     --paper-2 #e1e7ea 比 --paper 暗一档，同一个灰落上去就掉 0.4–0.5 个比值。
     本轮到 --paper-2 之前的候选值：三级灰 4.39 / 朱砂文字 4.98，全部 < 4.5。
     最终定值：--ink-3 #52616e（paper2 5.11）/ --accent-d #9c3a20（paper2 5.53）。
     校验脚本：node build/_token.js
   ★ 零 CDN：系统字体栈 + 文档内联 SVG 图标 + 本地 SVG 图片；全站零 background-image
     （对比度探针要靠 backgroundColor 取真底，写了 background-image 的祖先会被跳过）
   ★ .wrap 及其同元素容器只用 padding-top/padding-bottom，禁止 padding 简写
   ★ 深底区里放浅色卡片 → 卡容器必须显式 color:var(--ink)（否则白底白字）
   ========================================================================== */

:root{
  --paper:#eef1f3;      /* 冷雾纸 */
  --paper-2:#e1e7ea;    /* 次纸底 */
  --card:#ffffff;
  --ink:#16222c;        /* 墨青：正文 */
  --ink-2:#3d4c58;
  --ink-3:#52616e;      /* 三级灰：最差底 paper-2 5.11:1（paper 5.62 / card 6.38） */
  --deep:#122b38;       /* 深墨青 */
  --deep-2:#1c3d4d;
  --line:#ccd6db;       /* 浅底分隔线 */
  --line-2:#e0e6e9;
  --line-deep:#33606f;  /* 深底分隔线 */
  --on-deep:#eef1f3;
  --on-deep-2:#a5bcc6;  /* 深底二级文字：对 deep 7.43 / deep-2 5.82 */
  --brand:#122b38;
  --accent:#d9603f;     /* 朱砂陶橙：仅装饰（折角 / 刻度 / 竖线），不承载文字 */
  --accent-d:#9c3a20;   /* 浅底上的朱砂文字：最差底 paper-2 5.53:1（paper 6.09 / card 6.91） */
  --accent-l:#f2a184;   /* 深底上的朱砂：对 deep 7.15 / deep-2 5.60 */
  --sea:#1a6a6e;        /* 辅助松青：对 paper 5.56 / paper-2 5.05 */
  --sea-d:#176065;
  --sea-l:#7fc7c4;      /* 深底上的松青：对 deep 7.61 / deep-2 5.96 */
  --danger:#b3261e;
  --danger-d:#93211a;
  --danger-bg:#fbebe7;
  --sea-bg:#e4efee;
  --wrap:1200px;
  --pad:20px;
  --r:3px;              /* 直角为主，只留 3px 圆角 —— 与「折角纸感」一致 */
  --f-sans:"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Source Han Sans SC",
    "Noto Sans CJK SC","WenQuanYi Micro Hei",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;
  --f-serif:"Songti SC","SimSun","Source Han Serif SC","Noto Serif CJK SC",Georgia,"Times New Roman",serif;
  --f-mono:Consolas,Menlo,"DejaVu Sans Mono","Courier New",monospace;
}

/* ---------- 复位 ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;overflow-x:clip}
body{
  margin:0;padding:0;
  font-family:var(--f-sans);font-size:15.5px;line-height:1.72;
  color:var(--ink);background:var(--paper);
  overflow-x:clip;
}
h1,h2,h3,h4,p,ul,ol,li,figure,blockquote,dl,dd{margin:0;padding:0}
ul,ol{list-style:none}
h1,h2,h3,h4{line-height:1.32;font-weight:800}
a{color:inherit;text-decoration:none}
em,i{font-style:normal}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
table{border-collapse:collapse;width:100%}
/* ★ img 与 svg 绝不同写一条复位规则（图标是 <use>，外层 svg 上没有 viewBox） */
img,video{max-width:100%;height:auto;display:block;border:0}
svg{display:inline-block;vertical-align:-.125em;flex:0 0 auto}
input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--accent-d);outline-offset:2px}
[hidden]{display:none!important}

/* 图标：必须成对声明宽高，否则全局 height 兜底会让只设 width 的图标比例失衡 */
.i{width:17px;height:17px;max-width:none;fill:none;stroke:currentColor}
svg.i{flex:0 0 auto}
/* 图标精灵容器必须零占位，漏写会以默认 300×150 在页首撑出空白 */
.sprite{position:absolute;width:0;height:0;overflow:hidden}
/* 无障碍跳转链接：用 clip，不要用负定位（负定位会在溢出审计里变成假阳性） */
.skip{
  position:absolute;width:1px;height:1px;overflow:hidden;
  clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;
}
.skip:focus{
  position:fixed;left:var(--pad);top:8px;width:auto;height:auto;
  clip:auto;clip-path:none;z-index:60;
  padding-top:8px;padding-bottom:8px;padding-left:14px;padding-right:14px;
  background:var(--deep);color:var(--on-deep);border-radius:var(--r);
}

/* ---------- 通用容器 ---------- */
.wrap{max-width:var(--wrap);margin-left:auto;margin-right:auto;
  padding-left:var(--pad);padding-right:var(--pad)}
.sec{padding-top:64px;padding-bottom:64px;position:relative}
.sec--paper2{background:var(--paper-2)}
.sec--flat{padding-top:0}
.sec--deep{background:var(--deep);color:var(--on-deep)}
.sec + .sec--paper2,.sec--paper2 + .sec{padding-top:64px}
.meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;
  font-size:12.5px;color:var(--ink-3);font-family:var(--f-mono)}
.meta__i{display:inline-flex;align-items:center;gap:5px}
.meta__separator,.meta__sep{width:1px;height:11px;background:var(--line);display:inline-block;flex:0 0 auto}
.meta__sep{background:var(--line)}

/* ---------- 折角标（全站统一语式，绝对定位，不占栅格） ---------- */
.fold{
  position:absolute;top:0;right:0;width:26px;height:26px;
  background:var(--accent);
  clip-path:polygon(0 0,100% 0,100% 100%);
  pointer-events:none;
}
/* 折角标同色深浅：深底区用浅朱砂，浅底区用朱砂本尊 */
.sec--deep .fold,.hero .fold,.consult .fold{background:var(--accent-l)}

/* ---------- 按钮 ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding-top:12px;padding-bottom:12px;padding-left:20px;padding-right:20px;
  border:1px solid transparent;border-radius:var(--r);
  font-size:14.5px;font-weight:700;line-height:1.2;cursor:pointer;
  transition:background-color .18s ease,border-color .18s ease,color .18s ease;
}
/* ★ 按钮标签色必须 inherit，禁止 .btn span{color:…} 这类通配（会刷掉深底按钮的白字） */
.btn__t{color:inherit}
.btn--accent{background:var(--accent-d);color:#fff}
.btn--accent:hover{background:var(--deep)}
.btn--line{background:transparent;border-color:var(--line);color:var(--ink)}
.btn--line:hover{border-color:var(--accent-d);color:var(--accent-d)}
.btn--ghost{background:transparent;border-color:var(--line);color:var(--ink)}
/* ★ 深底区里的幽灵按钮必须重定义 color + border-color（浅底用的那支会变成黑字压黑底） */
.hero .btn--ghost,.sec--deep .btn--ghost{border-color:var(--line-deep);color:var(--on-deep)}
.hero .btn--ghost:hover,.sec--deep .btn--ghost:hover{border-color:var(--accent-l);color:var(--accent-l)}
.req{color:var(--accent-d);font-weight:700}
.sec--deep .req{color:var(--accent-l)}

/* ==========================================================================
   1. 顶部信息条（深墨青）
   ========================================================================== */
.topbar{background:var(--deep);color:var(--on-deep-2);font-size:12.5px}
.topbar__inner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;
  gap:6px 20px;min-height:38px;
  padding-top:7px;padding-bottom:7px}
.topbar__msg{display:flex;align-items:center;gap:7px;min-width:0}
.topbar__msg svg{color:var(--accent-l)}
.topbar__msg span{overflow-wrap:break-word}
.topbar__meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px 20px}
.topbar__it{display:inline-flex;align-items:center;gap:6px}
.topbar__it svg{color:var(--line-deep)}

/* ==========================================================================
   2. 主导航（sticky）
   ========================================================================== */
.site-header{
  position:sticky;top:0;z-index:40;
  background:var(--card);border-bottom:1px solid var(--line);
}
/* 页头首行：品牌 / 汉堡 / 导航 / 工具箱。必须允许换行，否则窄屏横向溢出 */
.header-main{display:flex;flex-wrap:wrap;align-items:center;gap:10px 22px;
  padding-top:12px;padding-bottom:12px}
.brand{display:inline-flex;align-items:center;gap:11px;min-width:0}
.brand__mark{width:40px;height:40px;border-radius:var(--r)}
.brand__txt{display:flex;flex-direction:column;min-width:0}
.brand__name{font-size:17px;font-weight:800;letter-spacing:.06em;white-space:nowrap}
.brand__slogan{font-size:11.5px;color:var(--ink-3);letter-spacing:.14em;white-space:nowrap}
.nav{flex:1 1 auto;min-width:0}
.nav__list{display:flex;align-items:center;gap:4px;flex-wrap:nowrap}
.nav__it{flex:0 0 auto}
.nav__link{
  display:block;padding-top:9px;padding-bottom:9px;padding-left:14px;padding-right:14px;
  font-size:14.5px;font-weight:600;color:var(--ink-2);white-space:nowrap;
  border-radius:var(--r);border-bottom:2px solid transparent;
  transition:color .16s ease,border-color .16s ease;
}
.nav__link:hover{color:var(--accent-d);border-bottom-color:var(--line)}
.nav__link.is-on{color:var(--ink);border-bottom-color:var(--accent)}
.header-side{display:flex;align-items:center;gap:14px;margin-left:auto}
.header-tel{display:inline-flex;align-items:center;gap:8px;min-width:0}
.header-tel svg{color:var(--accent-d)}
.header-tel__txt{display:flex;flex-direction:column;line-height:1.25}
.header-tel__txt em{font-size:10.5px;color:var(--ink-3);letter-spacing:.1em}
.header-tel__no{font-size:15px;font-weight:800;font-family:var(--f-mono);letter-spacing:.02em}
.header-cta{padding-left:16px;padding-right:16px}
/* 汉堡按钮 */
.nav-toggle{
  display:none;width:42px;height:38px;flex:0 0 auto;
  border:1px solid var(--line);border-radius:var(--r);
  flex-direction:column;align-items:center;justify-content:center;gap:4px;
}
.nav-toggle__bar{display:block;width:18px;height:2px;background:var(--ink);border-radius:1px}
.nav-toggle[aria-expanded="true"] .nav-toggle__bar:nth-child(1){transform:translateY(6px) rotate(45deg)}
.nav-toggle[aria-expanded="true"] .nav-toggle__bar:nth-child(2){opacity:0}
.nav-toggle[aria-expanded="true"] .nav-toggle__bar:nth-child(3){transform:translateY(-6px) rotate(-45deg)}

/* 无 JS 降级：导航整体展开、可换行，并藏掉点了没反应的汉堡按钮。
   ★ 判据必须是「JS 到底跑没跑」（html.has-js，由 common.js 的 head 内联脚本同步加、
     main.js 的 boot() 置位 __lvyanReady 后保留），不能用 .site-header:not(.is-collapsible) ——
     .is-collapsible 只在窄屏由 main.js 加，桌面档同样命中 → .nav 被 flex:1 0 100%
     顶到独立一整行、页头从 1 行撑成 3 行（law45 实测 1440/1100：brand top=50 /
     nav top=109 / header-side top=164，headerH=182px）。 */
html:not(.has-js) .site-header .nav{flex:1 0 100%}
html:not(.has-js) .site-header .nav__list{flex-wrap:wrap}
html:not(.has-js) .site-header .nav-toggle{display:none}
/* ★ max-height:0 只能挂在 .is-collapsible 下 —— 无条件写会让无 JS 时导航也塌缩 */
.site-header.is-collapsible .nav{max-height:0;overflow:hidden;flex:1 0 100%;
  transition:max-height .24s ease}
.site-header.is-collapsible.is-open .nav{max-height:520px;overflow:auto}

/* ==========================================================================
   3. Hero + 数字刻度带 + 热搜词带
   ========================================================================== */
.hero{position:relative;background:var(--deep);color:var(--on-deep);overflow:hidden}
.hero__art{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.9}
.hero__inner{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 352px;
  gap:28px 48px;align-items:start;padding-top:60px;padding-bottom:34px}
.hero__body{min-width:0;max-width:38em}
.hero__kicker{display:inline-flex;align-items:center;gap:8px;
  font-size:12.5px;letter-spacing:.16em;color:var(--accent-l);
  font-family:var(--f-mono);margin-bottom:18px}
.hero__title{font-size:clamp(28px,4.4vw,46px);font-weight:800;line-height:1.24;
  letter-spacing:.01em;margin-bottom:18px}
.hero__sub{font-size:15.5px;color:var(--on-deep-2);max-width:34em;margin-bottom:26px;
  overflow-wrap:break-word}
.hero__acts{display:flex;flex-wrap:wrap;gap:12px}
/* 折角速查卡（深底上的白卡 → 必须显式声明文字色） */
.hero__panel{
  position:relative;overflow:hidden;
  background:var(--card);color:var(--ink);
  border-radius:var(--r);padding-top:20px;padding-bottom:20px;
  padding-left:22px;padding-right:22px;
}
.hero__panel-h{display:flex;align-items:center;gap:8px;
  font-size:13px;font-weight:800;letter-spacing:.12em;color:var(--ink-2);
  padding-bottom:12px;border-bottom:2px solid var(--ink);margin-bottom:6px}
.hero__panel-h svg{color:var(--accent-d)}
.hero__panel-list{display:flex;flex-direction:column}
.hero__panel-it{border-bottom:1px dotted var(--line)}
.hero__panel-it:last-child{border-bottom:0}
.hero__panel-link{display:flex;align-items:center;gap:11px;
  padding-top:11px;padding-bottom:11px}
.hero__panel-no{font-family:var(--f-mono);font-size:12px;color:var(--accent-d);flex:0 0 auto}
.hero__panel-t{flex:1 1 auto;min-width:0;font-size:14.5px;
  overflow-wrap:break-word;transition:color .16s ease}
.hero__panel-link:hover .hero__panel-t{color:var(--accent-d)}
.hero__panel-link svg{color:var(--ink-3);flex:0 0 auto}
.hero__panel-foot{display:flex;align-items:center;gap:7px;margin-top:10px;
  font-size:12px;color:var(--ink-3);font-family:var(--f-mono)}
/* 数字刻度带：四格等距 + 顶部刻度小竖线 */
.hero__scale{position:relative;display:grid;grid-template-columns:repeat(4,1fr);
  gap:0;margin-top:6px;border-top:1px solid var(--line-deep);
  padding-bottom:30px}
.hero__scale-it{position:relative;display:flex;flex-direction:column;gap:4px;
  padding-top:24px;padding-right:16px}
.hero__scale-it::before{
  content:"";position:absolute;top:0;left:0;width:1px;height:16px;
  background:var(--line-deep)}
.hero__scale-it:first-child::before{background:var(--accent)}
.hero__scale-n{font-family:var(--f-mono);font-size:26px;font-weight:700;
  color:var(--on-deep);letter-spacing:.02em;line-height:1.1}
.hero__scale-l{font-size:12.5px;color:var(--on-deep-2)}
/* 热搜词带 */
.belt{background:var(--deep-2);color:var(--on-deep-2);border-top:1px solid var(--line-deep)}
.belt__in{display:flex;align-items:center;gap:10px 20px;flex-wrap:wrap;
  padding-top:11px;padding-bottom:11px}
.belt__k{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;
  color:var(--accent-l);font-family:var(--f-mono);white-space:nowrap}
.belt__list{display:flex;flex-wrap:wrap;gap:4px 16px}
.belt__a{font-size:13px;border-bottom:1px dotted transparent;overflow-wrap:break-word}
.belt__a:hover{color:var(--on-deep);border-bottom-color:var(--accent-l)}

/* ==========================================================================
   4. 区块头（双线刻度 + 方括号编号）
   ========================================================================== */
.head{margin-bottom:28px}
.head__rule{display:block;height:0;
  border-top:1px solid var(--line);border-bottom:2px solid var(--ink)}
.sec--paper2 .head__rule{border-top-color:var(--line-2);border-bottom-color:var(--ink)}
.sec--deep .head__rule{border-top-color:var(--line-deep);border-bottom-color:var(--accent-l)}
.head__row{display:flex;align-items:flex-end;gap:14px 22px;flex-wrap:wrap;
  padding-top:16px}
.head__no{font-family:var(--f-mono);font-size:13px;font-weight:700;
  letter-spacing:.14em;color:var(--accent-d);white-space:nowrap;
  padding-top:4px}
.sec--deep .head__no{color:var(--accent-l)}
.head__body{flex:1 1 320px;min-width:0}
.head__kicker{font-size:11.5px;letter-spacing:.2em;color:var(--ink-3);
  font-family:var(--f-mono);margin-bottom:6px}
.sec--deep .head__kicker{color:var(--on-deep-2)}
/* ★ 深色区标题改色走 class 选择器，禁止 h1~h4 通配改色 */
.sec--deep .head__title{color:#fff}
.head__title{font-size:clamp(21px,2.6vw,27px);font-weight:800;letter-spacing:.01em}
.head__desc{margin-top:8px;font-size:14px;color:var(--ink-3);max-width:46em;
  overflow-wrap:break-word}
.sec--deep .head__desc{color:var(--on-deep-2)}
.head__more{display:inline-flex;align-items:center;gap:6px;flex:0 0 auto;
  font-size:13.5px;font-weight:700;color:var(--accent-d);
  border-bottom:1px dotted var(--accent-d);padding-bottom:2px}
.head__more:hover{color:var(--deep);border-bottom-color:var(--deep)}
.sec--deep .head__more{color:var(--accent-l);border-bottom-color:var(--accent-l)}

/* ==========================================================================
   5. 业务领域（4×2 折角格）
   ========================================================================== */
.catgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.cat{
  position:relative;overflow:hidden;
  background:var(--card);border:1px solid var(--line);border-radius:var(--r);
  padding-top:22px;padding-bottom:20px;padding-left:20px;padding-right:20px;
  transition:border-color .18s ease,transform .18s ease;
}
.cat:hover{border-color:var(--accent);transform:translateY(-2px)}
.cat__no{position:absolute;top:14px;right:44px;font-family:var(--f-mono);
  font-size:12px;color:var(--ink-3);letter-spacing:.1em}
.cat__icon{display:inline-flex;align-items:center;justify-content:center;
  width:42px;height:42px;border-radius:var(--r);
  background:var(--paper-2);color:var(--deep);margin-bottom:14px}
.cat__t{font-size:16.5px;font-weight:800;margin-bottom:8px}
.cat__link{overflow-wrap:break-word}
.cat:hover .cat__link{color:var(--accent-d)}
.cat__d{font-size:13px;color:var(--ink-3);min-height:2.6em;margin-bottom:12px;
  overflow-wrap:break-word}
.cat__n{font-size:12.5px;color:var(--ink-3);font-family:var(--f-mono);
  padding-top:11px;border-top:1px dotted var(--line);padding-left: 90%;}
.cat__num{font-size:16px;color:var(--accent-d);font-weight:700}

/* ==========================================================================
   6. 精选（1 大卡 + 3 缩略图卡）
   ========================================================================== */
.pick{display:grid;grid-template-columns:minmax(0,1.06fr) minmax(0,1fr);gap:24px}
.pick-lead{
  position:relative;overflow:hidden;background:var(--card);
  border:1px solid var(--line);border-radius:var(--r);
  display:flex;flex-direction:column;
}
.pick-lead__media{display:block;border-bottom:1px solid var(--line)}
.pick-lead__media img{width:100%;aspect-ratio:16/10;object-fit:cover}
.pick-lead__body{padding-top:20px;padding-bottom:22px;
  padding-left:22px;padding-right:22px;flex:1 1 auto;
  display:flex;flex-direction:column}
.pick-lead__cat{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;
  color:var(--accent-d);font-family:var(--f-mono);margin-bottom:10px}
.pick-lead__t{font-size:20px;font-weight:800;margin-bottom:10px}
.pick-lead__link{overflow-wrap:break-word}
.pick-lead__link:hover{color:var(--accent-d)}
.pick-lead__sum{font-size:13.5px;color:var(--ink-2);margin-bottom:14px;
  overflow-wrap:break-word}
.pick-lead__meta{margin-top:auto;padding-top:12px;border-top:1px dotted var(--line)}
.pick-cards{display:grid;grid-template-columns:minmax(0,1fr);
  grid-template-rows:repeat(3,1fr);gap:16px;min-width:0}
.pick-card{
  position:relative;overflow:hidden;background:var(--card);
  border:1px solid var(--line);border-radius:var(--r);
  display:grid;grid-template-columns:150px minmax(0,1fr);gap:0;align-items:stretch;
}
.pick-card__media{display:block;border-right:1px solid var(--line)}
.pick-card__media img{width:100%;height:100%;aspect-ratio:4/3;object-fit:cover}
.pick-card__body{padding-top:14px;padding-bottom:14px;
  padding-left:16px;padding-right:16px;display:flex;flex-direction:column;min-width:0}
.pick-card__cat{font-size:11.5px;color:var(--accent-d);font-family:var(--f-mono);
  letter-spacing:.08em;margin-bottom:7px}
.pick-card__t{font-size:15px;font-weight:700;margin-bottom:auto;line-height:1.44}
.pick-card__link{overflow-wrap:break-word}
.pick-card__link:hover{color:var(--accent-d)}
.pick-card .meta{margin-top:10px;padding-top:9px;border-top:1px dotted var(--line)}
.pick-card:hover{border-color:var(--accent)}

/* ==========================================================================
   7. 无缩略图列表：双列 / 三列
   皮肤差异用父级修饰类作用域，同一份 markup 吃四套样式：
     .duo-wrap         首页双列 = 白卡 + 朱砂左条
     .duo-wrap--rel    文章相关 = 透明底 + 朱砂左竖线（无卡）
     .tri-wrap         首页三列 = 白卡 + 深墨青顶线
     .tri-wrap--new    文章最新 = 纸色卡 + 朱砂顶线
   ========================================================================== */
.duo-wrap{background:var(--card);border:1px solid var(--line);border-radius:var(--r);
  padding-top:6px;padding-bottom:6px;padding-left:8px;padding-right:8px}
.duo{display:grid;grid-template-columns:repeat(2,1fr);gap:0 22px}
.duo__it{border-bottom:1px dotted var(--line)}
.duo__it:nth-last-child(-n+2){border-bottom:0}
.duo__link{display:flex;flex-direction:row;align-items:flex-start;gap:13px;
  padding-top:14px;padding-bottom:14px;padding-left:12px;padding-right:10px;
  border-left:3px solid var(--accent);border-radius:0 var(--r) var(--r) 0}
.duo__link:hover{background:var(--paper)}
.duo__no{flex:0 0 auto;width:26px;font-family:var(--f-mono);font-size:13px;
  font-weight:700;color:var(--accent-d);padding-top:1px}
.duo__body{display:flex;flex-direction:column;gap:6px;min-width:0;flex:1 1 auto}
.duo__cat{align-self:flex-start;font-size:11px;letter-spacing:.08em;
  color:var(--deep);background:var(--paper-2);border-radius:2px;
  padding-top:1px;padding-bottom:1px;padding-left:7px;padding-right:7px;
  font-family:var(--f-mono)}
.duo__t{font-size:15px;font-weight:700;line-height:1.46;overflow-wrap:break-word}
.duo__link:hover .duo__t{color:var(--accent-d)}
.duo__meta{font-size:12px}
/* 文章页「相关文章」变体：透明底 + 朱砂左竖线，隐去分类胶囊 */
.duo-wrap--rel{background:transparent;border:0;border-radius:0;
  padding-top:0;padding-bottom:0;padding-left:0;padding-right:0}
.duo-wrap--rel .duo{grid-template-columns:repeat(2,1fr);gap:0 26px}
.duo-wrap--rel .duo__link{background:transparent;border-left:3px solid var(--accent-l);
  border-radius:0;padding-left:14px}
.duo-wrap--rel .duo__link:hover{background:var(--paper-2)}
.duo-wrap--rel .duo__cat{display:none}
.duo-wrap--rel .duo__it{border-bottom:1px dotted var(--line)}
/* 三列目录格 */
.tri-wrap{position:relative;overflow:hidden;
  background:var(--card);border:1px solid var(--line);border-radius:var(--r);
  padding-top:8px;padding-bottom:8px;padding-left:8px;padding-right:8px}
.tri{display:grid;grid-template-columns:repeat(3,1fr);gap:0 20px}
.tri__it{border-bottom:1px dotted var(--line)}
.tri__it:nth-last-child(-n+3){border-bottom:0}
.tri__link{display:flex;flex-direction:column;gap:8px;
  padding-top:14px;padding-bottom:14px;padding-left:14px;padding-right:12px;
  border-top:2px solid var(--deep)}
.tri__link:hover{background:var(--paper)}
.tri__no{font-family:var(--f-mono);font-size:12px;font-weight:700;
  color:var(--accent-d);letter-spacing:.1em}
.tri__t{font-size:14.5px;font-weight:700;line-height:1.46;overflow-wrap:break-word}
.tri__link:hover .tri__t{color:var(--accent-d)}
.tri__meta{font-size:12px;margin-top:auto}
/* 文章页「最新文章」变体：纸色卡 + 朱砂顶线 */
.tri-wrap--new{background:var(--paper-2);border-color:var(--line)}
.tri-wrap--new .tri__link{border-top:2px solid var(--accent)}
.tri-wrap--new .tri__link:hover{background:var(--card)}

/* ==========================================================================
   8. 法规速递（横向刻度带 + 折角订阅卡）
   ========================================================================== */
.digest{display:grid;grid-template-columns:minmax(0,1fr) 312px;gap:22px;align-items:start}
.digest__list{background:var(--card);border:1px solid var(--line);border-radius:var(--r);
  padding-top:6px;padding-bottom:6px;padding-left:6px;padding-right:6px}
.digest__it{border-bottom:1px dotted var(--line)}
.digest__it:last-child{border-bottom:0}
.digest__link{display:flex;align-items:center;gap:14px;
  padding-top:14px;padding-bottom:14px;padding-left:12px;padding-right:12px;
  border-left:3px solid var(--line)}
.digest__link:hover{border-left-color:var(--accent);background:var(--paper)}
.digest__no{font-family:var(--f-mono);font-size:12.5px;font-weight:700;
  color:var(--ink-3);flex:0 0 auto;padding-top:2px}
.digest__body{display:flex;flex-direction:column;gap:5px;flex:1 1 auto;min-width:0}
.digest__t{font-size:15px;font-weight:700;overflow-wrap:break-word}
.digest__link:hover .digest__t{color:var(--accent-d)}
.digest__o{display:flex;align-items:center;gap:9px;font-size:12px;
  color:var(--ink-3);font-family:var(--f-mono)}
.digest__link > svg{color:var(--accent-d);flex:0 0 auto}
.digest__side{position:relative;overflow:hidden;background:var(--card);
  border:1px solid var(--line);border-top:3px solid var(--accent);
  border-radius:var(--r);padding-top:22px;padding-bottom:22px;
  padding-left:22px;padding-right:22px}
.digest__side-h{display:flex;align-items:center;gap:9px;font-size:15.5px;
  font-weight:800;margin-bottom:10px}
.digest__side-h svg{color:var(--accent-d)}
.digest__side-p{font-size:13px;color:var(--ink-2);margin-bottom:16px;
  overflow-wrap:break-word}
.digest__btn{width:100%}

/* ==========================================================================
   9. 关于本站（左文 + 右刻度数据格）
   ========================================================================== */
.about-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:36px}
.about{min-width:0}
.about__lead{font-size:16px;font-weight:600;color:var(--ink);
  padding-left:16px;border-left:3px solid var(--accent);
  margin-bottom:16px;overflow-wrap:break-word}
.about__p{font-size:14px;color:var(--ink-2);margin-bottom:12px;
  overflow-wrap:break-word}
.about__btn{margin-top:8px}
.facts{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;
  background:var(--line);border:1px solid var(--line);border-radius:var(--r);
  overflow:hidden}
.fact{background:var(--card);display:flex;flex-direction:column;gap:6px;
  padding-top:20px;padding-bottom:20px;padding-left:18px;padding-right:18px}
.fact__n{font-family:var(--f-mono);font-size:24px;font-weight:700;color:var(--deep);
  line-height:1.1}
.fact__l{font-size:12.5px;color:var(--ink-3)}

/* ==========================================================================
   10. 办事流程（刻度序号）
   ========================================================================== */
.flow{display:grid;grid-template-columns:repeat(4,1fr);gap:0;
  border-top:2px solid var(--ink)}
.flow__it{position:relative;padding-top:22px;padding-right:20px;
  border-right:1px dotted var(--line)}
.flow__it:last-child{border-right:0}
.flow__no{display:block;font-family:var(--f-mono);font-size:12.5px;
  font-weight:700;color:var(--accent-d);letter-spacing:.12em;margin-bottom:9px}
.flow__t{font-size:16px;font-weight:800;margin-bottom:8px}
.flow__d{font-size:13px;color:var(--ink-3);overflow-wrap:break-word}
/* 正文里的流程条（文章页） */
.flow--art{grid-template-columns:repeat(5,1fr);margin-top:22px;margin-bottom:22px;
  padding-top:18px;padding-bottom:18px;background:var(--paper-2);
  border-top:2px solid var(--ink);border-bottom:1px solid var(--line)}
.flow--art .flow__it{border-right:0;padding-top:14px}
.flow--art .flow__t{font-size:13.5px;line-height:1.42}

/* ==========================================================================
   11. 表单提交模块（深墨青区 + 白卡）
   ========================================================================== */
.consult__inner{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.12fr);
  gap:32px 44px;align-items:start}
.consult__body{min-width:0;padding-top:8px}
.consult__kicker{font-size:11.5px;letter-spacing:.2em;color:var(--accent-l);
  font-family:var(--f-mono);margin-bottom:12px}
.consult__title{font-size:clamp(21px,2.6vw,28px);font-weight:800;color:#fff;
  margin-bottom:14px}
.consult__p{font-size:14.5px;color:var(--on-deep-2);margin-bottom:22px;
  overflow-wrap:break-word}
.consult__points{display:flex;flex-direction:column;gap:12px;margin-bottom:22px}
.consult__point{display:flex;align-items:flex-start;gap:10px;font-size:14px}
.consult__point svg{color:var(--accent-l);margin-top:4px;flex:0 0 auto}
.consult__tip{display:flex;align-items:center;gap:8px;font-size:12.5px;
  color:var(--on-deep-2);border-top:1px dotted var(--line-deep);padding-top:16px}
/* ★ 深底上的白卡必须显式声明文字色 */
.form-card{
  position:relative;overflow:hidden;
  background:var(--card);color:var(--ink);
  border-radius:var(--r);padding-top:26px;padding-bottom:24px;
  padding-left:26px;padding-right:26px;
}
.form-card__title{font-size:18px;font-weight:800;color:var(--ink);margin-bottom:4px}
.form-card__sub{font-size:12.5px;color:var(--ink-3);margin-bottom:16px}
.form-alert{display:none;font-size:13px;border-radius:var(--r);
  padding-top:9px;padding-bottom:9px;padding-left:12px;padding-right:12px;
  margin-bottom:16px;overflow-wrap:break-word}
.form-alert.is-on{display:block}
.form-alert.is-err{background:var(--danger-bg);color:var(--danger-d);
  border:1px solid var(--danger)}
.form-alert.is-ok{background:var(--sea-bg);color:var(--sea-d);
  border:1px solid var(--sea)}
.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px 16px}
.field{display:flex;flex-direction:column;gap:6px;min-width:0}
.field--full{grid-column:1 / -1}
.field__lab{font-size:13px;font-weight:700;color:var(--ink-2)}
.field__in,.field__sel,.field__ta{
  width:100%;background:var(--paper);color:var(--ink);
  border:1px solid var(--line);border-radius:var(--r);
  padding-top:10px;padding-bottom:10px;padding-left:12px;padding-right:12px;
  font-size:14px;
}
.field__ta{resize:vertical;min-height:96px;line-height:1.6}
.field__in::placeholder,.field__ta::placeholder{color:var(--ink-3)}
.field__in:focus,.field__sel:focus,.field__ta:focus{
  outline:none;border-color:var(--accent);background:var(--card)}
.field.is-invalid .field__in,.field.is-invalid .field__sel,.field.is-invalid .field__ta{
  border-color:var(--danger);background:var(--danger-bg)}
.field__err{font-size:12px;color:var(--danger-d);min-height:0}
.field__box{flex-direction:row;flex-wrap:wrap;align-items:center;gap:8px}
.field__check{width:16px;height:16px;accent-color:var(--accent-d);flex:0 0 auto}
.field__agree{font-size:13px;color:var(--ink-2)}
.field__agree-link{color:var(--accent-d);border-bottom:1px dotted var(--accent-d)}
.field__box .field__err{flex:1 0 100%}
.form-card__foot{display:flex;flex-wrap:wrap;align-items:center;gap:12px 16px;
  margin-top:20px;padding-top:18px;border-top:1px dotted var(--line)}
.form-card__btn{flex:1 1 auto;justify-content:center}
.form-card__note{font-size:12px;color:var(--ink-3);font-family:var(--f-mono)}

/* ==========================================================================
   12. FAQ（原生 details）
   ========================================================================== */
.faq{display:grid;grid-template-columns:repeat(2,1fr);gap:12px 20px}
.faq__it{background:var(--card);border:1px solid var(--line);border-radius:var(--r);
  padding-top:0;padding-bottom:0;padding-left:0;padding-right:0}
.faq__it[open]{border-color:var(--accent)}
.faq__q{list-style:none;cursor:pointer;font-size:14.5px;font-weight:700;
  padding-top:15px;padding-bottom:15px;padding-left:44px;padding-right:38px;
  position:relative;overflow-wrap:break-word}
.faq__q::-webkit-details-marker{display:none}
.faq__q::before{content:"?";position:absolute;left:16px;top:15px;
  font-family:var(--f-mono);font-size:13px;font-weight:700;color:var(--accent-d)}
.faq__q::after{content:"+";position:absolute;right:16px;top:13px;
  font-family:var(--f-mono);font-size:17px;color:var(--ink-3)}
.faq__it[open] .faq__q::after{content:"–"}
.faq__a{padding-bottom:16px;padding-left:44px;padding-right:20px;
  font-size:13.5px;color:var(--ink-2)}
.faq__a p{overflow-wrap:break-word}

/* ==========================================================================
   13. 友情链接（不分类，单组 chip 流）
   ========================================================================== */
.link-cloud{display:flex;flex-wrap:wrap;gap:10px}
.link-cloud__it{display:block}
.link-chip{display:inline-flex;align-items:center;gap:7px;
  background:var(--card);border:1px solid var(--line);border-radius:var(--r);
  padding-top:9px;padding-bottom:9px;padding-left:14px;padding-right:14px;
  font-size:13.5px;overflow-wrap:break-word}
.link-chip svg{color:var(--ink-3)}
.link-chip:hover{border-color:var(--accent);color:var(--accent-d)}

/* ==========================================================================
   14. 页脚
   ========================================================================== */
.site-footer{background:var(--deep);color:var(--on-deep-2)}
.footer-main{display:grid;grid-template-columns:minmax(0,1.5fr) repeat(3,minmax(0,1fr));
  gap:28px 34px;padding-top:52px;padding-bottom:36px;
  border-bottom:1px solid var(--line-deep)}
.footer-brand{min-width:0}
.footer-brand__logo{display:inline-flex;align-items:center;gap:11px;
  color:var(--on-deep);margin-bottom:14px}
.footer-brand__logo strong{font-size:17px;font-weight:800;letter-spacing:.06em}
.footer-brand__desc{font-size:13px;margin-bottom:18px;overflow-wrap:break-word}
.footer-contact{display:flex;flex-direction:column;gap:9px}
.footer-contact__it{display:flex;align-items:flex-start;gap:8px;font-size:13px;
  overflow-wrap:break-word}
.footer-contact__it svg{color:var(--line-deep);margin-top:4px;flex:0 0 auto}
.footer-col__t{font-size:13px;font-weight:800;color:var(--on-deep);
  letter-spacing:.12em;margin-bottom:14px;padding-bottom:9px;
  border-bottom:1px solid var(--line-deep)}
.footer-col__list{display:flex;flex-direction:column;gap:10px}
.footer-col__link{font-size:13.5px;overflow-wrap:break-word}
.footer-col__link:hover{color:var(--accent-l)}
.footer-bottom{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;
  gap:8px 24px;padding-top:20px;padding-bottom:22px}
.footer-bottom__copy{font-size:12.5px;font-family:var(--f-mono);overflow-wrap:break-word}
.footer-bottom__note{font-size:12.5px;overflow-wrap:break-word}

/* ==========================================================================
   15. 移动底栏（固定底栏的栅格直接写在 .mobile-bar 上，不依赖包装层）
   ========================================================================== */
.mobile-bar{display:none;background:var(--card);border-top:1px solid var(--line)}
.mobile-bar__it{display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:3px;font-size:12px;font-weight:700;color:var(--ink-2);
  padding-top:9px;padding-bottom:9px}
.mobile-bar__it svg{color:var(--ink-3)}
.mobile-bar__it--cta{background:var(--accent-d);color:#fff}
.mobile-bar__it--cta svg{color:#fff}
.mobile-bar__t{display:block}

/* ==========================================================================
   16. 内页 banner 与面包屑
   ========================================================================== */
.page-banner{position:relative;background:var(--deep);color:var(--on-deep);
  overflow:hidden}
.page-banner__bg{position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;opacity:.9}
.page-banner__inner{position:relative;display:flex;flex-wrap:wrap;align-items:flex-end;
  justify-content:space-between;gap:20px 36px;
  padding-top:44px;padding-bottom:38px}
.page-banner__body{min-width:0;max-width:34em}
.page-banner__kicker{font-size:11.5px;letter-spacing:.2em;color:var(--accent-l);
  font-family:var(--f-mono);margin-bottom:10px}
.page-banner__title{font-size:clamp(24px,3.2vw,34px);font-weight:800;color:#fff;
  margin-bottom:10px}
.page-banner__desc{font-size:14px;color:var(--on-deep-2);overflow-wrap:break-word}
.page-banner__stats{display:flex;flex-wrap:wrap;gap:8px 30px}
.page-banner__stat{display:flex;flex-direction:column;gap:3px;
  padding-left:13px;border-left:1px solid var(--line-deep)}
.page-banner__n{font-family:var(--f-mono);font-size:20px;font-weight:700;color:var(--on-deep)}
.page-banner__l{font-size:12px;color:var(--on-deep-2)}
.crumb{background:var(--card);border-bottom:1px solid var(--line)}
.crumb__list{display:flex;flex-wrap:wrap;align-items:center;gap:4px 6px;
  padding-top:12px;padding-bottom:12px;font-size:12.5px}
.crumb__it{display:inline-flex;align-items:center;gap:6px}
.crumb__it svg{color:var(--ink-3)}
.crumb__link{color:var(--ink-3)}
.crumb__link:hover{color:var(--accent-d)}
.crumb__cur{color:var(--ink);font-weight:700;overflow-wrap:break-word}

/* ==========================================================================
   17. 列表页
   ========================================================================== */
.news-layout{display:grid;grid-template-columns:minmax(0,1fr) 336px;
  gap:36px;align-items:start;padding-top:36px;padding-bottom:44px}
.news-main{display:flex;flex-direction:column;gap:24px;min-width:0}
.news-side{min-width:0;align-self:stretch}
.filter{position:relative;overflow:hidden;
  background:var(--card);border:1px solid var(--line);border-radius:var(--r);
  padding-top:16px;padding-bottom:16px;padding-left:18px;padding-right:18px}
.filter__head{display:flex;flex-wrap:wrap;align-items:baseline;
  justify-content:space-between;gap:6px 16px;margin-bottom:12px}
.filter__title{font-size:14.5px;font-weight:800}
.filter__count{font-size:12.5px;color:var(--ink-3);font-family:var(--f-mono)}
.filter__list{display:flex;flex-wrap:wrap;gap:8px}
.filter__it{display:block}
.filter__empty{font-size:13px;color:var(--ink-3);margin-top:12px;
  padding-top:11px;border-top:1px dotted var(--line);overflow-wrap:break-word}
.chip{display:inline-flex;align-items:center;gap:7px;
  background:var(--paper);border:1px solid var(--line);border-radius:var(--r);
  padding-top:8px;padding-bottom:8px;padding-left:13px;padding-right:13px;
  font-size:13.5px;font-weight:600;color:var(--ink-2);cursor:pointer}
.chip:hover{border-color:var(--accent);color:var(--accent-d)}
.chip.is-on{background:var(--deep);border-color:var(--deep);color:#fff}
.chip__n{font-family:var(--f-mono);font-size:11.5px;opacity:.78}
/* 头条大卡（横向） */
.leadrow{display:grid;grid-template-columns:minmax(0,0.92fr) minmax(0,1fr);
  gap:0;background:var(--card);border:1px solid var(--line);
  border-radius:var(--r);overflow:hidden}
.leadrow__media{display:block;border-right:1px solid var(--line)}
.leadrow__media img{width:100%;height:100%;aspect-ratio:16/10;object-fit:cover}
.leadrow__body{padding-top:22px;padding-bottom:22px;
  padding-left:24px;padding-right:24px;display:flex;flex-direction:column;
  min-width:0}
.leadrow__cat{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;
  color:var(--accent-d);font-family:var(--f-mono);margin-bottom:10px}
.leadrow__t{font-size:20px;font-weight:800;margin-bottom:10px}
.leadrow__link{overflow-wrap:break-word}
.leadrow__link:hover{color:var(--accent-d)}
.leadrow__sum{font-size:13.5px;color:var(--ink-2);margin-bottom:auto;
  overflow-wrap:break-word}
.leadrow .meta{margin-top:16px;padding-top:12px;border-top:1px dotted var(--line)}
/* 缩略图行（桌面 3 列；条数必须是列数的整数倍） */
.row-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.rowline{background:var(--card);border:1px solid var(--line);
  border-radius:var(--r);overflow:hidden;display:flex;flex-direction:column}
.rowline:hover{border-color:var(--accent)}
.rowline__media{display:block;border-bottom:1px solid var(--line)}
.rowline__media img{width:100%;aspect-ratio:16/10;object-fit:cover}
.rowline__body{padding-top:14px;padding-bottom:16px;
  padding-left:16px;padding-right:16px;display:flex;flex-direction:column;
  gap:8px;flex:1 1 auto;min-width:0}
.rowline__cat{font-size:11.5px;color:var(--accent-d);font-family:var(--f-mono);
  letter-spacing:.08em}
.rowline__t{font-size:14.5px;font-weight:700;line-height:1.46;flex:1 1 auto}
.rowline__link{overflow-wrap:break-word}
.rowline__link:hover{color:var(--accent-d)}
.rowline .meta{font-size:12px;padding-top:10px;border-top:1px dotted var(--line)}
/* 台账卡 */
.ledger{position:relative;overflow:hidden;
  background:var(--card);border:1px solid var(--line);border-radius:var(--r);
  padding-top:22px;padding-bottom:6px;padding-left:20px;padding-right:20px}
.plainlist{display:flex;flex-direction:column;
  border-top:1px solid var(--line);padding-top:4px}
.plain{border-bottom:1px dotted var(--line)}
/* 卡内列表末项必须收口，否则卡底上方会多一条孤立横线 */
.plain:last-child{border-bottom:0}
.plain__link{display:flex;align-items:center;gap:14px;
  padding-top:13px;padding-bottom:13px}
.plain__link:hover{background:var(--paper)}
.plain__d{flex:0 0 auto;font-family:var(--f-mono);font-size:12px;
  color:var(--ink-3);width:76px}
.plain__body{display:flex;align-items:center;gap:11px;flex:1 1 auto;min-width:0}
.plain__cat{flex:0 0 auto;font-size:11px;font-family:var(--f-mono);
  color:var(--deep);background:var(--paper-2);border-radius:2px;
  padding-top:1px;padding-bottom:1px;padding-left:7px;padding-right:7px}
.plain__t{font-size:14.5px;font-weight:600;overflow-wrap:break-word}
.plain__link:hover .plain__t{color:var(--accent-d)}
.plain__r{flex:0 0 auto;font-family:var(--f-mono);font-size:12px;color:var(--ink-3)}
.pager{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px 20px;
  align-items:center;
  margin-top:20px;margin-bottom:22px;padding-top:16px;border-top:1px solid var(--line)}
.pager__info{font-size:12.5px;color:var(--ink-3);font-family:var(--f-mono)}
.pager__list{display:flex;flex-wrap:wrap;gap:6px}
.pager__it{display:block}
.pager__link{display:inline-flex;align-items:center;justify-content:center;
  min-width:34px;padding-top:7px;padding-bottom:7px;padding-left:9px;padding-right:9px;
  font-size:13px;font-family:var(--f-mono);color:var(--ink-2);
  background:var(--paper);border:1px solid var(--line);border-radius:var(--r)}
.pager__link:hover{border-color:var(--accent);color:var(--accent-d)}
.pager__link.is-on{background:var(--deep);border-color:var(--deep);color:#fff}
.pager__link.is-disabled{background:var(--paper-2);color:#5a6472;cursor:default}
/* 通栏服务带（深墨青） */
.srvband{background:var(--deep);color:var(--on-deep)}
.srvband__box{display:flex;flex-wrap:wrap;align-items:center;gap:20px 36px;
  padding-top:30px;padding-bottom:30px}
.srvband__lead{min-width:0;flex:1 1 300px}
.srvband__kicker{font-size:11.5px;letter-spacing:.2em;color:var(--accent-l);
  font-family:var(--f-mono);margin-bottom:7px}
.srvband__t{font-size:19px;font-weight:800;color:#fff}
.srvband__list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
  gap:9px 26px}
.srvband__it{display:flex;align-items:center;gap:8px;font-size:13.5px;
  color:var(--on-deep-2)}
.srvband__it svg{color:var(--accent-l);flex:0 0 auto}
.srvband__btn{flex:0 0 auto}

/* ==========================================================================
   18. 侧栏（栏体不吸顶、不内滚 —— 绝不用 sticky / max-height:calc(100vh) / overflow-y:auto）
   ========================================================================== */
.side-rail{display:flex;flex-direction:column;gap:20px}
.news-side,.art-side{align-self:stretch}
.widget{background:var(--card);border:1px solid var(--line);border-radius:var(--r);
  padding-top:18px;padding-bottom:18px;padding-left:18px;padding-right:18px}
.widget__head{display:flex;align-items:baseline;justify-content:space-between;
  gap:10px;margin-bottom:12px;padding-bottom:11px;
  border-bottom:2px solid var(--ink)}
.widget__title{font-size:15px;font-weight:800}
.widget__body{min-width:0}
.widget__more{display:inline-flex;align-items:center;gap:3px;font-size:12.5px;
  color:var(--ink-3);white-space:nowrap}
.widget__more:hover{color:var(--accent-d)}
/* 业务领域 widget */
.wcatnav{display:flex;flex-direction:column}
.wcatnav__i{border-bottom:1px dotted var(--line)}
.wcatnav__i:last-child{border-bottom:0}
.wcatnav__link{display:flex;align-items:center;gap:10px;
  padding-top:9px;padding-bottom:9px}
.wcatnav__link svg{color:var(--accent-d);flex:0 0 auto}
.wcatnav__t{flex:1 1 auto;font-size:14px}
.wcatnav__link:hover .wcatnav__t{color:var(--accent-d)}
.wcatnav__n{font-family:var(--f-mono);font-size:11.5px;color:var(--ink-3)}
/* 热读排行 */
.whot{display:flex;flex-direction:column}
.whot__i{border-bottom:1px dotted var(--line)}
.whot__i:last-child{border-bottom:0}
.whot__link{display:flex;align-items:flex-start;gap:11px;
  padding-top:11px;padding-bottom:11px}
.whot__no{flex:0 0 auto;width:22px;height:22px;display:inline-flex;
  align-items:center;justify-content:center;font-family:var(--f-mono);
  font-size:11.5px;font-weight:700;color:var(--ink-3);
  background:var(--paper-2);border-radius:2px}
.whot__no.is-top{background:var(--accent-d);color:#fff}
.whot__t{flex:1 1 auto;font-size:13.5px;line-height:1.5;overflow-wrap:break-word}
.whot__link:hover .whot__t{color:var(--accent-d)}
.whot__r{flex:0 0 auto;font-family:var(--f-mono);font-size:11.5px;color:var(--ink-3)}
/* 法规速查 */
.wlaw{display:flex;flex-direction:column}
.wlaw__i{border-bottom:1px dotted var(--line)}
.wlaw__i:last-child{border-bottom:0}
.wlaw__link{display:flex;align-items:flex-start;gap:10px;
  padding-top:10px;padding-bottom:10px}
.wlaw__link svg{color:var(--accent-d);margin-top:3px;flex:0 0 auto}
.wlaw__body{display:flex;flex-direction:column;gap:3px;min-width:0}
.wlaw__t{font-size:13.5px;line-height:1.45;overflow-wrap:break-word}
.wlaw__link:hover .wlaw__t{color:var(--accent-d)}
.wlaw__d{font-size:11.5px;color:var(--ink-3);font-family:var(--f-mono)}
/* 入驻律师 */
.wlawyer{display:flex;flex-direction:column}
.wl{display:flex;align-items:center;gap:11px;padding-top:10px;padding-bottom:10px;
  border-bottom:1px dotted var(--line)}
.wl:last-child{border-bottom:0}
.wl__av{width:34px;height:34px;flex:0 0 auto;display:inline-flex;
  align-items:center;justify-content:center;background:var(--deep);color:var(--on-deep);
  border-radius:var(--r);font-size:15px;font-weight:700}
.wl__body{display:flex;flex-direction:column;gap:3px;flex:1 1 auto;min-width:0}
.wl__n{font-size:13.5px;font-weight:700}
.wl__f{font-size:11.5px;color:var(--ink-3);overflow-wrap:break-word}
.wl__go{color:var(--ink-3);flex:0 0 auto}
/* 常见问答 */
.wfaq{display:flex;flex-direction:column;gap:8px}
.wfaq__i{background:var(--paper);border:1px solid var(--line);border-radius:var(--r)}
.wfaq__i[open]{border-color:var(--accent);background:var(--card)}
.wfaq__q{list-style:none;cursor:pointer;font-size:13.5px;font-weight:700;
  padding-top:10px;padding-bottom:10px;padding-left:12px;padding-right:30px;
  position:relative;overflow-wrap:break-word}
.wfaq__q::-webkit-details-marker{display:none}
.wfaq__q::after{content:"+";position:absolute;right:12px;top:9px;
  font-family:var(--f-mono);color:var(--ink-3)}
.wfaq__i[open] .wfaq__q::after{content:"–"}
.wfaq__a{padding-bottom:12px;padding-left:12px;padding-right:12px;
  font-size:12.5px;color:var(--ink-2)}
.wfaq__a p{overflow-wrap:break-word}
/* 热门标签 */
.wtag{display:flex;flex-wrap:wrap;gap:8px}
.wtag__a{display:inline-block;background:var(--paper);border:1px solid var(--line);
  border-radius:var(--r);font-size:12.5px;
  padding-top:6px;padding-bottom:6px;padding-left:10px;padding-right:10px}
.wtag__a:hover{border-color:var(--accent);color:var(--accent-d)}
/* 同题材延伸（数据驱动 + 内链收口） */
.wsame{display:flex;flex-direction:column}
.wsame__i{border-bottom:1px dotted var(--line)}
.wsame__link{display:flex;flex-direction:column;gap:4px;
  padding-top:10px;padding-bottom:10px}
.wsame__t{font-size:13.5px;line-height:1.48;overflow-wrap:break-word}
.wsame__link:hover .wsame__t{color:var(--accent-d)}
.wsame__d{font-size:11.5px;color:var(--ink-3);font-family:var(--f-mono)}
.wsame__more{display:inline-flex;align-items:center;gap:6px;margin-top:12px;
  padding-top:11px;border-top:1px solid var(--line);
  font-size:12.5px;font-weight:700;color:var(--accent-d)}
.wsame__more:hover{color:var(--deep)}
/* 转化 widget */
/* widget 身份钩子：与 .widget 同元素，只作作用域锚点 */
.wcatnav-w,.whot-w,.wlaw-w,.wlawyer-w,.wfaq-w,.wtag-w,.wsame-w{min-width:0}
.wcta-w{border-top:3px solid var(--accent)}
.wcta__p{font-size:13px;color:var(--ink-2);margin-bottom:10px;
  overflow-wrap:break-word}
.wcta__p--sm{display:flex;align-items:center;gap:7px;font-family:var(--f-mono);
  font-size:12px;color:var(--ink-3)}
.wcta__btn{width:100%}
/* 说明 widget */
.wnotice-w{background:var(--paper-2)}
.wnotice__p{font-size:12.5px;color:var(--ink-2);overflow-wrap:break-word}

/* ==========================================================================
   19. 文章页
   ========================================================================== */
.art-layout{display:grid;grid-template-columns:minmax(0,1fr) 336px;
  gap:36px;align-items:start;padding-top:36px;padding-bottom:0}
.art-main{min-width:0}
.art-side{min-width:0}
.art-head{margin-bottom:26px;padding-bottom:24px;
  border-bottom:1px solid var(--line)}
.art-head__cat{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;
  color:var(--accent-d);font-family:var(--f-mono);margin-bottom:12px}
.art-head__title{font-size:clamp(23px,3vw,32px);font-weight:800;
  margin-bottom:14px;overflow-wrap:break-word}
.art-head__sum{font-size:15px;color:var(--ink-2);margin-bottom:18px;
  padding-left:16px;border-left:3px solid var(--accent);
  overflow-wrap:break-word}
.art-head__meta{display:flex;flex-wrap:wrap;gap:8px 22px;font-size:12.5px;
  color:var(--ink-3);font-family:var(--f-mono);margin-bottom:22px}
.art-head__it{display:inline-flex;align-items:center;gap:6px}
.art-cover{border:1px solid var(--line);border-radius:var(--r);overflow:hidden;
  background:var(--card)}
.art-cover__img{width:100%}
.art-cover__cap{font-size:12.5px;color:var(--ink-3);font-family:var(--f-mono);
  padding-top:10px;padding-bottom:10px;padding-left:14px;padding-right:14px;
  border-top:1px solid var(--line);overflow-wrap:break-word}
/* 正文：中文栏宽用 em（ch 会在约 400px 就折行） */
.art-body{font-size:15.5px;line-height:1.86;color:var(--ink)}
.art-body > p{margin-bottom:18px;overflow-wrap:break-word}
.art-body > h2{font-size:20px;font-weight:800;margin-top:34px;margin-bottom:14px;
  padding-left:14px;border-left:4px solid var(--accent)}
.art-body > h3{font-size:16.5px;font-weight:800;margin-top:24px;margin-bottom:10px}
.art-body > ul{margin-bottom:18px;display:flex;flex-direction:column;gap:9px}
.art-body > ul > li{position:relative;padding-left:20px;
  font-size:14.5px;color:var(--ink-2);overflow-wrap:break-word}
.art-body > ul > li::before{content:"";position:absolute;left:2px;top:11px;
  width:7px;height:2px;background:var(--accent)}
.art-body > blockquote{border-left:3px solid var(--deep);
  padding-top:4px;padding-bottom:4px;padding-left:18px;
  margin-bottom:20px}
.art-body > blockquote p{font-size:15px;color:var(--ink-2);font-weight:600;
  font-family:var(--f-serif);overflow-wrap:break-word}
.tipbox{display:flex;gap:12px;background:var(--sea-bg);
  border-left:3px solid var(--sea);border-radius:0 var(--r) var(--r) 0;
  padding-top:14px;padding-bottom:14px;padding-left:16px;padding-right:16px;
  margin-bottom:20px}
.tipbox svg{color:var(--sea-d);flex:0 0 auto;margin-top:3px}
.tipbox p{font-size:14px;color:var(--ink-2);overflow-wrap:break-word}
.note{display:flex;gap:10px;background:var(--paper-2);border-radius:var(--r);
  padding-top:12px;padding-bottom:12px;padding-left:14px;padding-right:14px;
  margin-bottom:20px;font-size:13.5px;color:var(--ink-2)}
.note svg{color:var(--ink-3);flex:0 0 auto;margin-top:4px}
.note span{overflow-wrap:break-word}
/* 正文表格：窄屏堆叠（td::before 用 data-label 求值成真实文字，属有意的网格项） */
.doc-table{margin-bottom:22px}
.doc-table__cap{font-size:12.5px;color:var(--ink-3);font-family:var(--f-mono);
  text-align:left;margin-bottom:8px}
.doc-table table{border:1px solid var(--line);border-radius:var(--r);
  overflow:hidden;background:var(--card)}
.doc-table th,.doc-table td{
  padding-top:11px;padding-bottom:11px;padding-left:13px;padding-right:13px;
  font-size:13.5px;text-align:left;border-bottom:1px solid var(--line);
  overflow-wrap:break-word}
.doc-table thead th{background:var(--deep);color:#fff;font-weight:700;
  font-size:13px;border-bottom:0}
.doc-table tbody th{background:var(--paper-2);font-weight:700;color:var(--ink);
  width:22%}
.doc-table tbody tr:last-child th,.doc-table tbody tr:last-child td{border-bottom:0}
.fig{margin-bottom:22px;border:1px solid var(--line);border-radius:var(--r);
  overflow:hidden;background:var(--card)}
.fig__img{width:100%}
.fig__cap{font-size:12.5px;color:var(--ink-3);font-family:var(--f-mono);
  padding-top:10px;padding-bottom:10px;padding-left:14px;padding-right:14px;
  border-top:1px solid var(--line);overflow-wrap:break-word}
/* 标签与上下篇 */
.art-tags{display:flex;flex-wrap:wrap;align-items:center;gap:10px;
  margin-top:30px;padding-top:20px;border-top:1px solid var(--line)}
.art-tags__k{display:inline-flex;align-items:center;gap:7px;font-size:13px;
  font-weight:700;color:var(--ink-2)}
.art-tags__k svg{color:var(--accent-d)}
.art-tags__list{display:flex;flex-wrap:wrap;gap:8px}
.art-tags__it{display:block}
.art-tags__link{display:inline-block;background:var(--paper-2);
  border-radius:var(--r);font-size:12.5px;
  padding-top:6px;padding-bottom:6px;padding-left:11px;padding-right:11px}
.art-tags__link:hover{background:var(--deep);color:#fff}
.prevnext{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;
  margin-top:24px;margin-bottom:0}
.prevnext__it{display:flex;flex-direction:column;gap:6px;
  background:var(--card);border:1px solid var(--line);border-radius:var(--r);
  padding-top:14px;padding-bottom:14px;padding-left:16px;padding-right:16px}
.prevnext__it:hover{border-color:var(--accent)}
.prevnext__it--next{text-align:right}
.prevnext__dir{font-size:11.5px;color:var(--accent-d);font-family:var(--f-mono);
  letter-spacing:.1em}
.prevnext__t{font-size:14px;font-weight:700;line-height:1.46;overflow-wrap:break-word}
/* 续读区（通栏，脱出两栏网格） */
.art-more{display:flex;flex-direction:column;gap:44px;
  padding-top:44px;padding-bottom:56px}
.art-more .sec--flat{padding-top:0;padding-bottom:0}
/* 目录 */
.toc{background:var(--card);border:1px solid var(--line);border-radius:var(--r);
  border-top:3px solid var(--ink);
  padding-top:18px;padding-bottom:18px;padding-left:18px;padding-right:18px}
.toc__h{display:flex;align-items:center;gap:7px;font-size:14px;font-weight:800;
  margin-bottom:12px;padding-bottom:10px;border-bottom:1px solid var(--line)}
.toc__h svg{color:var(--accent-d)}
.toc__list{display:flex;flex-direction:column}
.toc__i{border-bottom:1px dotted var(--line)}
.toc__i:last-child{border-bottom:0}
.toc__link{display:block;font-size:13px;color:var(--ink-2);
  padding-top:9px;padding-bottom:9px;padding-left:9px;
  border-left:2px solid transparent;overflow-wrap:break-word}
.toc__link:hover{color:var(--accent-d)}
.toc__link.is-on{color:var(--ink);font-weight:700;border-left-color:var(--accent)}

/* ==========================================================================
   20. 入场动画：渐进增强（默认可见，仅 html.js-reveal 时隐藏）
   ========================================================================== */
.reveal{opacity:1;transform:none}
html.js-reveal .reveal{opacity:0;transform:translateY(16px);
  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 .side-rail.reveal{opacity:1;transform:none}

@media print{
  .mobile-bar,.nav-toggle,.topbar{display:none!important}
  html.js-reveal .reveal{opacity:1!important;transform:none!important}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{transition:none!important;animation:none!important}
  html.js-reveal .reveal{opacity:1;transform:none}
}

/* ==========================================================================
   21. 响应式
   ========================================================================== */
@media (max-width:1220px){
  .hero__inner{grid-template-columns:minmax(0,1fr) 320px;gap:26px 34px}
  .news-layout,.art-layout{grid-template-columns:minmax(0,1fr) 312px;gap:28px}
}
@media (max-width:1099px){
  /* 抽屉导航：汉堡必须排在导航之前（order 是相对大小，不是固定数字） */
  .header-main{gap:10px 18px}
  .nav-toggle{display:flex;order:3;margin-left:auto}
  .nav{order:4;flex:1 0 100%}
  .header-side{order:2;margin-left:0}
  .site-header.is-collapsible .nav__list{flex-direction:column;align-items:stretch;
    gap:0;padding-top:6px;padding-bottom:6px}
  .site-header.is-collapsible .nav__it{flex:1 0 auto}
  .site-header.is-collapsible .nav__link{
    padding-top:12px;padding-bottom:12px;padding-left:10px;
    border-bottom:1px solid var(--line);border-left:2px solid transparent;
    border-radius:0;font-size:15px}
  .site-header.is-collapsible .nav__link.is-on{border-bottom-color:var(--line);
    border-left-color:var(--accent)}
  /* 移动底栏：栅格直接写在 .mobile-bar 上 */
  .mobile-bar{display:grid;grid-template-columns:repeat(3,1fr);
    position:fixed;left:0;right:0;bottom:0;z-index:50}
  body{padding-bottom:62px}
  /* 两栏堆叠 */
  .news-layout,.art-layout{grid-template-columns:1fr}
  .news-side,.art-side{align-self:auto}
  /* 栅格降列 */
  .catgrid{grid-template-columns:repeat(2,1fr)}
  .duo{grid-template-columns:1fr}
  /* ★ .duo-wrap--rel .duo（0,2,0）比 .duo（0,1,0）特异性高，不补这一条
     文章页「相关文章」在窄屏仍是 2 列 → 末行只剩左格拖一条点线（probe 报 duo__it[1110]） */
  .duo-wrap--rel .duo{grid-template-columns:1fr}
  .duo__it:nth-last-child(-n+2){border-bottom:1px dotted var(--line)}
  .duo__it:last-child{border-bottom:0}
  .tri{grid-template-columns:repeat(2,1fr)}
  .tri__it:nth-last-child(-n+3){border-bottom:1px dotted var(--line)}
  .tri__it:nth-last-child(-n+2){border-bottom:0}
  .digest{grid-template-columns:1fr}
  .faq{grid-template-columns:1fr}
  .footer-main{grid-template-columns:repeat(2,minmax(0,1fr))}
  .footer-brand{grid-column:1 / -1}
  .flow{grid-template-columns:repeat(2,1fr);gap:0}
  .flow__it{border-right:0;border-bottom:1px dotted var(--line);
    padding-bottom:20px;margin-bottom:20px}
  .flow__it:nth-child(2n){padding-left:18px;border-left:1px dotted var(--line)}
  .consult__inner{grid-template-columns:1fr}
  .about-grid{grid-template-columns:1fr;gap:26px}
  .hero__inner{grid-template-columns:1fr;gap:26px}
  .hero__panel{max-width:560px}
  .pick{grid-template-columns:1fr}
  .leadrow{grid-template-columns:1fr}
  .leadrow__media{border-right:0;border-bottom:1px solid var(--line)}
  .row-grid{grid-template-columns:repeat(2,1fr)}
  .page-banner__inner{padding-top:34px;padding-bottom:30px}
}
@media (max-width:860px){
  .hero__scale{grid-template-columns:repeat(2,1fr);gap:22px 0}
  .flow--art{grid-template-columns:repeat(2,1fr)}
  .footer-main{grid-template-columns:1fr 1fr;gap:24px}
  .pager{grid-template-columns:1fr}
  .srvband__list{grid-template-columns:1fr}
  .form-grid{grid-template-columns:1fr}
  .about-grid{grid-template-columns:1fr}
  /* 表格窄屏堆叠：th/td 变成 label|value 两列 */
  .doc-table table,.doc-table tbody,.doc-table tr,.doc-table td,.doc-table th{display:block;
    width:auto}
  .doc-table thead{display:none}
  .doc-table tbody tr{border-bottom:1px solid var(--line);
    padding-top:10px;padding-bottom:10px}
  .doc-table tbody tr:last-child{border-bottom:0}
  .doc-table tbody th{background:transparent;padding-bottom:4px;width:auto}
  .doc-table td{display:grid;grid-template-columns:7.5em minmax(0,1fr);gap:10px;
    border-bottom:0;padding-top:5px;padding-bottom:5px}
  .doc-table td::before{content:attr(data-label);font-size:12.5px;
    color:var(--ink-3);font-family:var(--f-mono)}
}
@media (max-width:680px){
  body{padding-bottom:62px}
  .sec{padding-top:46px;padding-bottom:46px}
  .catgrid{grid-template-columns:1fr}
  .cat__d{min-height:0}
  .pick-cards{grid-template-rows:auto}
  .pick-card{grid-template-columns:120px minmax(0,1fr)}
  .tri{grid-template-columns:1fr}
  .tri__it:nth-last-child(-n+3){border-bottom:1px dotted var(--line)}
  .tri__it:last-child{border-bottom:0}
  .row-grid{grid-template-columns:1fr}
  .facts{grid-template-columns:1fr}
  .plain__d{width:auto;flex:0 0 auto}
  .plain__link{flex-wrap:wrap}
  .plain__r{flex:1 0 100%;padding-left:0}
  .prevnext{grid-template-columns:1fr}
  .prevnext__it--next{text-align:left}
  .faq__q{padding-left:38px;padding-right:32px}
  .faq__a{padding-left:38px}
  .form-card{padding-top:20px;padding-bottom:20px;
    padding-left:18px;padding-right:18px}
  .consult__title{font-size:21px}
  .ledger{padding-left:14px;padding-right:14px}
  .page-banner__stats{gap:8px 20px}
  .footer-main{grid-template-columns:1fr}
  .footer-bottom{flex-direction:column;align-items:flex-start}
}
@media (max-width:560px){
  /* 首行容量：brand(约150) + 汉堡(42) + 工具箱(240) + 两个 gap(36) ≈ 468 ——
     ≤560 时先卸掉热线，≤399 再卸掉整个工具箱，避免被挤到第二行 */
  .header-tel{display:none}
  .topbar__msg{font-size:12px}
  .topbar__it--addr,.topbar__it--hours{display:none}
  .hero__inner{padding-top:42px;padding-bottom:26px}
  .hero__title{font-size:27px}
  .hero__scale-n{font-size:22px}
  .leadrow__body{padding-top:16px;padding-bottom:18px;
    padding-left:16px;padding-right:16px}
  .leadrow__t{font-size:17px}
  .head__row{padding-top:12px}
  .digest__side{padding-top:18px;padding-bottom:18px;
    padding-left:16px;padding-right:16px}
  .page-banner__inner{padding-top:28px;padding-bottom:24px}
}
@media (max-width:399px){
  /* 首行容量 = brand(约150) + 汉堡(42) + gap(18) = 210 < 335，去掉工具箱避免换行 */
  .header-side{display:none}
  .brand__slogan{display:none}
  .hero__title{font-size:25px}
  .cat{padding-left:16px;padding-right:16px}
}
