/* greenerhealthcare.org — 审计纸台账 (light)
   v3.1: Space Grotesk 展示字体 + 递减三柱 logo + 品牌区重做
   契约: DESIGN.md v2.2 — 亮纸 80% + 深绿仪表带/页脚 20% */

/* —— 字体（自托管 latin 子集; Space Grotesk 为 Google Fonts 可变实例文件）—— */
@font-face { font-family: "Space Grotesk"; src: url("fonts/spacegrotesk-latin-var.woff2") format("woff2"); font-weight: 100 900; font-display: swap; }
@font-face { font-family: "IBM Plex Sans"; src: url("fonts/plexsans-latin-400.woff2") format("woff2"); font-weight: 400; font-display: swap; }
@font-face { font-family: "IBM Plex Sans"; src: url("fonts/plexsans-latin-500.woff2") format("woff2"); font-weight: 500; font-display: swap; }
@font-face { font-family: "IBM Plex Sans"; src: url("fonts/plexsans-latin-600.woff2") format("woff2"); font-weight: 600; font-display: swap; }
@font-face { font-family: "IBM Plex Mono"; src: url("fonts/plexmono-latin-400.woff2") format("woff2"); font-weight: 400; font-display: swap; }
@font-face { font-family: "IBM Plex Mono"; src: url("fonts/plexmono-latin-500.woff2") format("woff2"); font-weight: 500; font-display: swap; }

/* —— 色彩令牌（亮纸审计）—— */
:root {
  --canvas: #F2F7F6;          /* 主底: 审计纸 */
  --canvas-soft: #FFFFFF;     /* 面板: 白卡 */
  --canvas-deep: #E9F1EF;     /* 内嵌/hover */
  --ink: #16262A;             /* 主文字 */
  --ink-soft: #45605C;        /* 次级文字 */
  --ink-faint: #5F7A76;       /* 注释 */
  --hairline: #C9D6D3;
  --hairline-strong: #A8BEB9;
  --paper: #FFFFFF;            /* 弹层 */
  --shadow-2: 0 8px 24px rgba(14,59,51,.10), 0 2px 6px rgba(14,59,51,.06);
  /* —— 深绿反转带(仪表/页脚) —— */
  --deep: #0E3B33;            /* 深绿底 */
  --deep-soft: #13453C;       /* 深绿面板 */
  --deep-ink: #E8F1EF;        /* 深绿上文字 */
  --deep-ink-soft: #AFC6C3;
  --deep-hairline: #2C5A50;
  --deep-signal: #5EE6BB;     /* 深绿上的读数绿 */
  /* —— 信号(亮底) —— */
  --signal: #0E7A5F;          /* 链接/CTA: NHS 松绿 */
  --signal-deep: #0A5C48;
  --signal-soft: #DDF0EA;     /* 信号 12% 底 */
  --ok: #0E7A5F; --ok-soft: #DDF0EA; --ok-deep: #0A5C48;
  --warn: #9A6B14; --warn-soft: #F5EAD2; --warn-deep: #C08F2E;
  --error: #B03A3A; --error-soft: #F3DEDE; --error-deep: #8A2F2F;
  --sel-bg: #0E7A5F; --sel-fg: #FFFFFF;
  --e1: inset 0 0 0 1px var(--hairline);
  --e3: inset 0 0 0 1px var(--hairline), 0 8px 24px -12px rgba(14,59,51,.18);
  --wrap: 1240px;
  --sans: "IBM Plex Sans", -apple-system, "Segoe UI", sans-serif;
  --disp: "Space Grotesk", -apple-system, "Segoe UI", sans-serif;
  --mono: "IBM Plex Mono", ui-monospace, monospace;
}

/* —— 排版角色（Space Grotesk 展示: 负字距略收, 字形自带性格）—— */
.t-dxl  { font: 700 48px/54px var(--disp); letter-spacing: -1.8px; }
.t-dlg  { font: 700 32px/40px var(--disp); letter-spacing: -1.1px; }
.t-dmd  { font: 700 21px/29px var(--disp); letter-spacing: -0.4px; }
.t-dsm  { font: 700 18px/26px var(--disp); letter-spacing: -0.2px; }
.t-lg   { font: 400 17px/29px var(--sans); }
.t-md   { font: 400 15px/25px var(--sans); }
.t-sm   { font: 400 14px/22px var(--sans); }
.t-sms  { font: 500 14px/22px var(--sans); }
.t-cap  { font: 400 13px/19px var(--sans); }
.t-mono { font: 400 13px/18px var(--mono); letter-spacing: .08em; }
.t-num  { font: 400 14px/22px var(--mono); font-variant-numeric: tabular-nums; }

* { box-sizing: border-box; margin: 0; }
html { scroll-padding-top: 84px; }
body { background: var(--canvas); color: var(--ink); font: 400 15px/25px var(--sans); -webkit-font-smoothing: antialiased; }
::selection { background: var(--sel-bg); color: var(--sel-fg); }
img { max-width: 100%; display: block; }
a { color: var(--signal); text-decoration: none; }
a:hover { text-decoration: underline; text-underline-offset: 3px; }
:focus-visible { outline: 2px solid var(--signal); outline-offset: 2px; }
h1, h2, h3 { text-wrap: balance; }
p { text-wrap: pretty; }
.wrap { max-width: var(--wrap); margin: 0 auto; padding: 0 28px; }
.skip-link { position: absolute; left: -9999px; top: 0; background: var(--signal); color: #fff; padding: 10px 16px; z-index: 200; font-family: var(--sans); }
.skip-link:focus { left: 12px; top: 12px; }

/* —— 导航 —— */
.site-head { position: sticky; top: 0; z-index: 90; background: rgba(242,247,246,.94); backdrop-filter: blur(10px); border-bottom: 1px solid var(--hairline); }
.head-in { max-width: var(--wrap); margin: 0 auto; padding: 0 28px; height: 62px; display: flex; align-items: center; gap: 28px; }
.brand { display: flex; align-items: center; gap: 12px; color: var(--ink); }
.brand:hover { text-decoration: none; }
.brand-mark { width: 26px; height: 26px; fill: var(--signal); flex: none; }
.brand-name { font: 700 15px/18px var(--disp); letter-spacing: .13em; display: block; color: var(--ink); }
.brand-name .brand-accent { color: var(--signal); }
.brand-sub { font: 400 10.5px/14px var(--mono); color: var(--ink-soft); letter-spacing: .16em; display: block; margin-top: 3px; }
.site-nav { margin-left: auto; display: flex; align-items: center; gap: 4px; }
.site-nav a { color: var(--ink-soft); font: 500 14px/20px var(--sans); padding: 9px 13px; border-radius: 4px; }
.site-nav a:hover { color: var(--signal); background: var(--canvas-deep); text-decoration: none; }
.site-nav a[aria-current="page"] { color: var(--signal); background: var(--signal-soft); }

/* —— language menu —— */
.lang-menu { position: relative; margin-left: 4px; }
.lang-btn { display: inline-flex; align-items: center; gap: 7px; background: transparent; border: 1px solid var(--hairline-strong); color: var(--ink-soft); font: 500 12.5px/18px var(--mono); letter-spacing: .06em; padding: 7px 12px; border-radius: 4px; cursor: pointer; transition: border-color .15s ease, color .15s ease; }
.lang-btn:hover { border-color: var(--signal); color: var(--signal); }
.lang-btn[aria-expanded="true"] { border-color: var(--signal); color: var(--signal); }
.lang-caret { display: inline-flex; transition: transform .15s ease; }
.lang-menu.open .lang-caret { transform: rotate(180deg); }
.lang-pop { position: absolute; top: calc(100% + 8px); right: 0; min-width: 148px; background: var(--paper); border: 1px solid var(--hairline); border-radius: 6px; box-shadow: var(--shadow-2); padding: 6px; opacity: 0; visibility: hidden; transform: translateY(-4px); transition: opacity .15s ease, transform .15s ease, visibility .15s; z-index: 60; }
.lang-menu.open .lang-pop { opacity: 1; visibility: visible; transform: translateY(0); }
.lang-pop a { display: flex; align-items: center; justify-content: space-between; gap: 12px; color: var(--ink); font: 500 14px/20px var(--sans); padding: 8px 12px; border-radius: 4px; }
.lang-pop a:hover { background: var(--canvas-deep); color: var(--signal); text-decoration: none; }
.lang-pop a[aria-current="true"] { color: var(--signal); }
@media (max-width: 960px) {
  .lang-menu { margin-left: auto; }
  .lang-pop { right: 0; }
}

/* —— eyebrow —— */
.eyebrow { font: 500 13px/18px var(--mono); letter-spacing: .12em; text-transform: uppercase; color: var(--signal); display: block; margin-bottom: 14px; }

/* —— 首屏 —— */
.opening { padding: 88px 0 64px; border-bottom: 1px solid var(--hairline); }
.opening-grid { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1.05fr); gap: 56px; align-items: center; }
.opening h1 { margin: 0 0 20px; max-width: 12ch; }
.opening .t-lg { color: var(--ink-soft); max-width: 52ch; margin-bottom: 28px; }
.opening-cta { display: flex; gap: 12px; flex-wrap: wrap; }
/* 仪表块: 深绿反转, 全站唯一深色带之一(克制使用) */
.gauge-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: var(--deep-hairline); border: 1px solid var(--deep); border-radius: 6px; overflow: hidden; }
.gauge { background: var(--deep); padding: 20px 22px 18px; }
.gauge .val { font: 500 28px/33px var(--mono); font-variant-numeric: tabular-nums; color: var(--deep-signal); letter-spacing: -0.5px; }
.gauge .val small { font-size: 15px; color: var(--deep-ink-soft); letter-spacing: 0; }
.gauge .lbl { font: 400 13px/18px var(--sans); color: var(--deep-ink-soft); margin-top: 10px; }
.gauge .src { font: 400 11px/15px var(--mono); color: var(--deep-ink-soft); margin-top: 8px; letter-spacing: .06em; }
.opening-photo { margin-top: 20px; position: relative; border-radius: 6px; overflow: hidden; box-shadow: var(--e3); border: 1px solid var(--hairline); }
.opening-photo img { width: 100%; height: 300px; object-fit: cover; }
.opening-photo figcaption { position: absolute; left: 0; right: 0; bottom: 0; padding: 40px 16px 12px; background: linear-gradient(transparent, rgba(14,59,51,.85)); font: 400 12px/17px var(--mono); color: #E8F1EF; letter-spacing: .05em; }

/* —— 按钮 —— */
.btn { display: inline-flex; align-items: center; gap: 8px; height: 46px; padding: 0 22px; border-radius: 4px; font: 500 15px/24px var(--sans); cursor: pointer; border: 1px solid transparent; transition: background .15s, border-color .15s, transform .15s; }
.btn:hover { text-decoration: none; transform: translateY(-1px); }
.btn-primary { background: var(--signal); color: #fff; }
.btn-primary:hover { background: var(--signal-deep); }
.btn-secondary { background: transparent; color: var(--ink); border-color: var(--hairline-strong); }
.btn-secondary:hover { border-color: var(--signal); }

/* —— section 骨架 —— */
.sec { padding: 96px 0; border-bottom: 1px solid var(--hairline); }
.sec-head { display: flex; align-items: baseline; justify-content: space-between; gap: 24px; margin-bottom: 40px; flex-wrap: wrap; }
.sec-head h2 { max-width: 20ch; }
.sec-head .t-sm { color: var(--ink-soft); max-width: 44ch; font-size: 15px; }

/* —— 科室面板网格 —— */
.dept-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.dept-card { background: var(--canvas-soft); border-radius: 6px; padding: 22px; box-shadow: var(--e1); transition: box-shadow .15s, transform .15s; overflow: hidden; }
.dept-card:hover { box-shadow: var(--e3); transform: translateY(-2px); text-decoration: none; }
.dept-card.first { grid-column: span 2; display: grid; grid-template-columns: 1fr 1.2fr; gap: 20px; align-items: center; }
.dept-thumb { width: 100%; height: 110px; object-fit: cover; border-radius: 4px; margin-bottom: 14px; border: 1px solid var(--hairline); display: block; }
.dept-card.first .dept-thumb { height: 160px; margin-bottom: 0; grid-column: 1; grid-row: 1 / span 2; }
.dept-code { font: 500 13px/17px var(--mono); color: var(--signal); letter-spacing: .1em; display: inline-block; margin-bottom: 10px; }
.dept-card h3 { font: 600 19px/28px var(--disp); letter-spacing: -0.2px; color: var(--ink); margin-bottom: 8px; }
.dept-card p { font: 400 14px/21px var(--sans); color: var(--ink-soft); }
.dept-card .t-cap { color: var(--ink-soft); margin-top: 12px; display: block; font-size: 13px; }
.dept-card .t-mono { color: var(--ink-soft); margin-top: 10px; display: block; font-size: 12px; }

/* —— 台账带(白纸: 现在是主底的一部分, 表格保持白卡) —— */
.ledger-band { background: var(--canvas); color: var(--ink); padding: 96px 0; border-bottom: 1px solid var(--hairline); position: relative; }
.ledger-band .eyebrow { color: var(--signal); }
.ledger-band h2 { color: var(--ink); }
.ledger-band .sec-head .t-sm { color: var(--ink-soft); }
.ledger-table { width: 100%; border-collapse: collapse; background: var(--canvas-soft); border: 1px solid var(--hairline); border-radius: 6px; overflow: hidden; box-shadow: var(--e1); }
.ledger-table th { font: 500 12px/17px var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--ink-soft); text-align: left; padding: 12px 16px; border-bottom: 1px solid var(--hairline); background: var(--canvas-deep); }
.ledger-table td { padding: 14px 16px; border-bottom: 1px solid var(--canvas-deep); font: 400 14px/21px var(--sans); color: var(--ink); vertical-align: top; }
.ledger-table tr:last-child td { border-bottom: none; }
.ledger-table tr:hover td { background: #F0F6F4; }
.ledger-table .act-id { font: 500 13px/18px var(--mono); color: var(--signal); white-space: nowrap; }
.ledger-table .co2 { font: 500 13px/18px var(--mono); font-variant-numeric: tabular-nums; white-space: nowrap; }
.ev { display: inline-flex; align-items: center; gap: 6px; font: 500 12px/17px var(--mono); letter-spacing: .04em; white-space: nowrap; }
.ev::before { content: ""; width: 7px; height: 7px; border-radius: 50%; }
.ev-a { color: #0E7A5F; } .ev-a::before { background: #0E7A5F; }
.ev-b { color: #9A6B14; } .ev-b::before { background: #C08F2E; }
.ev-c { color: #8A4A4A; } .ev-c::before { background: #C24444; }
.ledger-note { font: 400 13px/20px var(--sans); color: var(--ink-soft); margin-top: 16px; }

/* —— 行动库三步 —— */
.flow-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.flow-step { background: var(--canvas-soft); border-radius: 6px; padding: 24px; box-shadow: var(--e1); }
.flow-step .n { font: 500 13px/18px var(--mono); color: var(--signal); letter-spacing: .1em; display: block; margin-bottom: 12px; }
.flow-step h3, .flow-step h2.t-dsm { font: 600 19px/28px var(--disp); letter-spacing: -0.2px; margin-bottom: 8px; }
.flow-step p { font: 400 14px/22px var(--sans); color: var(--ink-soft); }

/* —— 研究时间轴 —— */
.study-list { border-top: 1px solid var(--hairline); }
.study { display: grid; grid-template-columns: 64px minmax(0,1fr) 190px; gap: 20px; padding: 20px 0; border-bottom: 1px solid var(--hairline); align-items: start; }
.study .yr { font: 500 15px/20px var(--mono); color: var(--signal); font-variant-numeric: tabular-nums; padding-top: 2px; }
.study h3, .study h2.t-dsm { font: 600 17px/25px var(--disp); letter-spacing: -0.2px; margin-bottom: 6px; }
.study p { font: 400 14px/21px var(--sans); color: var(--ink-soft); }
.study .meta { font: 400 12px/17px var(--mono); color: var(--ink-soft); letter-spacing: .04em; }
.study-photo { border-radius: 6px; overflow: hidden; border: 1px solid var(--hairline); margin-bottom: 32px; box-shadow: var(--e3); }
.study-photo img { width: 100%; height: 260px; object-fit: cover; }

/* —— FAQ —— */
.faq { border-top: 1px solid var(--hairline); max-width: 760px; }
.faq details { border-bottom: 1px solid var(--hairline); }
.faq summary { cursor: pointer; padding: 18px 0; font: 600 17px/26px var(--disp); letter-spacing: -0.2px; color: var(--ink); list-style: none; display: flex; justify-content: space-between; gap: 16px; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: "+"; font: 400 20px/24px var(--mono); color: var(--signal); }
.faq details[open] summary::after { content: "–"; }
.faq .faq-a { padding: 0 0 20px; font: 400 15px/24px var(--sans); color: var(--ink-soft); max-width: 62ch; }
.faq .faq-src { font: 400 12px/17px var(--mono); color: var(--ink-soft); margin-top: 10px; letter-spacing: .04em; }

/* —— 信源三柱 —— */
.trust-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.trust-col { background: var(--canvas-soft); border-radius: 6px; padding: 24px; box-shadow: var(--e1); }
.trust-col .t-mono { color: var(--signal); display: block; margin-bottom: 12px; }
.trust-col h3 { font: 600 17px/25px var(--disp); letter-spacing: -0.2px; margin-bottom: 8px; }
.trust-col p { font: 400 14px/22px var(--sans); color: var(--ink-soft); }

/* —— 下一步 + 订阅 —— */
.next-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-bottom: 64px; }
.next-card { background: var(--canvas-soft); border-radius: 6px; padding: 22px; box-shadow: var(--e1); transition: box-shadow .15s, transform .15s; }
.next-card:hover { box-shadow: var(--e3); transform: translateY(-2px); text-decoration: none; }
.next-card .t-mono { color: var(--signal); display: block; margin-bottom: 10px; }
.next-card h3, .next-card h2.t-dsm { font: 600 17px/25px var(--disp); letter-spacing: -0.2px; color: var(--ink); margin-bottom: 6px; }
.next-card p { font: 400 14px/21px var(--sans); color: var(--ink-soft); }
.subscribe { background: var(--deep); color: var(--deep-ink); border-radius: 6px; padding: 32px; box-shadow: none; display: flex; gap: 32px; align-items: center; justify-content: space-between; flex-wrap: wrap; }
.subscribe h2 { margin-bottom: 6px; color: var(--deep-ink); }
.subscribe .t-sm { color: var(--deep-ink-soft); max-width: 48ch; font-size: 15px; }
.subscribe-form { display: flex; gap: 8px; }
.subscribe input { height: 46px; width: 280px; background: var(--deep-soft); border: 1px solid var(--deep-hairline); border-radius: 4px; padding: 0 14px; color: var(--deep-ink); font: 400 15px var(--sans); }
.subscribe input:focus { outline: none; border-color: var(--deep-signal); }
.subscribe input::placeholder { color: var(--deep-ink-soft); }

/* —— 信源盒 —— */
.source-box { background: var(--canvas-deep); border-left: 3px solid var(--signal); padding: 12px 16px; font: 400 12px/18px var(--sans); color: var(--ink-soft); margin-top: 14px; }
.source-box a { font-family: var(--mono); font-size: 12px; letter-spacing: .04em; }

/* —— footer(深绿带) —— */
.site-foot { padding: 64px 0 40px; background: var(--deep); color: var(--deep-ink-soft); }
.foot-grid { display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: 32px; margin-bottom: 48px; }
.foot-grid .col-label { font: 500 12px/17px var(--mono); letter-spacing: .12em; text-transform: uppercase; color: var(--deep-signal); display: block; margin-bottom: 14px; }
.foot-grid ul { list-style: none; padding: 0; }
.foot-grid li { margin-bottom: 10px; }
.foot-grid a { color: var(--deep-ink-soft); font: 400 14px/20px var(--sans); }
.foot-grid a:hover { color: var(--deep-signal); }
.foot-about p { font: 400 14px/21px var(--sans); color: var(--deep-ink-soft); max-width: 40ch; margin-top: 14px; }
.foot-legal { border-top: 1px solid var(--deep-hairline); padding-top: 24px; display: flex; justify-content: space-between; gap: 24px; flex-wrap: wrap; font: 400 13px/19px var(--sans); color: var(--deep-ink-soft); }
.foot-legal .t-mono { color: var(--deep-ink-soft); font-size: 12px; }
.site-foot .brand { color: var(--deep-ink); }
.site-foot .brand-name { color: var(--deep-ink); }
.site-foot .brand-name .brand-accent { color: var(--deep-signal); }
.site-foot .brand-sub { color: var(--deep-ink-soft); }
.site-foot .brand-mark { fill: var(--deep-signal); }

/* —— 动效 —— */
.reveal { opacity: 0; transform: translateY(8px); transition: opacity .25s ease-out, transform .25s ease-out; }
.reveal.in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  .reveal { opacity: 1; transform: none; transition: none; }
  .btn:hover, .dept-card:hover, .next-card:hover { transform: none; }
  * { animation-duration: .01ms !important; }
}

/* —— 响应式 —— */
@media (max-width: 1024px) {
  .opening-grid { grid-template-columns: 1fr; gap: 40px; }
  .dept-grid { grid-template-columns: 1fr 1fr; }
  .dept-card.first { grid-column: span 2; grid-template-columns: 1fr; }
  .study { grid-template-columns: 48px 1fr; }
  .study .meta { grid-column: 2; }
  .trust-grid, .flow-row, .next-grid { grid-template-columns: 1fr; }
  .foot-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 640px) {
  .t-dxl { font-size: 38px; line-height: 44px; letter-spacing: -1.4px; }
  .t-dlg { font-size: 26px; line-height: 34px; letter-spacing: -0.9px; }
  .sec { padding: 64px 0; }
  .opening { padding: 56px 0 48px; }
  .dept-grid { grid-template-columns: 1fr; }
  .dept-card.first { grid-column: span 1; }
  .gauge-row { grid-template-columns: 1fr 1fr; }
  .site-nav a:not(.brand-keep) { display: none; }
  .foot-grid { grid-template-columns: 1fr; }
  .subscribe-form { flex-direction: column; }
  .subscribe input { width: 100%; }
  .ledger-table { display: block; overflow-x: auto; }
}

/* —— print —— */
@media print {
  body { background: #fff; color: #000; }
  .site-head, .site-nav, .opening-cta, .subscribe, .site-foot, .reveal { display: none !important; }
  .ledger-table { border-color: #999; box-shadow: none; }
  a { color: #000; text-decoration: underline; }
  a[href^="http"]::after { content: " (" attr(href) ")"; font-size: 10px; }
}

/* ── updates / article section ─────────────────────────── */
.post-body { padding: 56px 0 32px; }
.post-body p { font: 400 17px/30px var(--sans); color: var(--ink); margin: 0 0 22px; }
.post-body h2.t-dmd { margin: 40px 0 16px; }
.post-body ul { margin: 0 0 24px; padding-left: 22px; }
.post-body li { font: 400 17px/30px var(--sans); margin-bottom: 10px; }
.post-body blockquote { border-left: 3px solid var(--signal); margin: 28px 0; padding: 4px 0 4px 20px; font: 400 18px/30px var(--disp); color: var(--ink-soft); }
.post-list { display: grid; gap: 18px; max-width: 760px; }
.post-card { display: block; padding: 26px 28px; background: var(--paper); border: 1px solid var(--hairline); border-radius: 6px; transition: border-color .18s, box-shadow .18s, transform .18s; }
.post-card:hover { border-color: var(--hairline-strong); box-shadow: var(--e2); transform: translateY(-1px); }
.post-meta { display: flex; justify-content: space-between; gap: 12px; margin-bottom: 10px; color: var(--ink-faint); }
.post-card h2.t-dmd { margin: 0 0 8px; }
.post-card p { font: 400 15.5px/25px var(--sans); color: var(--ink-soft); margin: 0 0 14px; }

/* ── charts (inline SVG) ───────────────────────────────── */
.chart { margin: 34px 0; }
.chart figcaption { letter-spacing: .06em; text-transform: uppercase; }
.chart svg text { font-variant-numeric: tabular-nums; }
@media print { .chart { break-inside: avoid; } }

/* ── faq / case 深挖区 ─────────────────────────────────── */
.faq-item { padding: 4px 0 18px; border-bottom: 1px solid var(--hairline); margin-bottom: 4px; }
.faq-item:last-child { border-bottom: 0; }
.faq-item h3.t-dsm { margin: 0 0 8px; }
.faq-item p { font: 400 16px/26px var(--sans); color: var(--ink-soft); margin: 0; }

/* study key number 列 */
.study .key-num { color: var(--signal); margin: 6px 0 0; font-weight: 600; }

/* 文章头图 */
.post-hero { max-width: 900px; margin: 0 auto 8px; }
.post-hero img { height: auto; max-height: 480px; }
