/* ==========================================================================
   AIHotTool Broadsheet — 模板层
   首页刊头 / 文章页 / 工具页 / 目录页 / 静态页 / 搜索 / 404 / 归档
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. 刊头（首页 Hero）
   -------------------------------------------------------------------------- */
.masthead {
  padding-block: var(--space-8) var(--space-7);
  border-bottom: var(--hairline-ink);
}

.masthead__grid {
  display: grid;
  gap: var(--space-7);
}

@media (min-width: 64rem) {
  .masthead__grid {
    grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
    gap: var(--space-8);
    align-items: end;
  }
}

.masthead__title {
  margin: 0 0 var(--space-5);
  font-family: var(--font-heading);
  font-size: var(--fs-display);
  font-weight: 700;
  line-height: var(--lh-tight);
  letter-spacing: var(--ls-display);
  text-wrap: balance;
}

.masthead__title em {
  font-family: var(--font-display);
  font-style: italic;
  font-weight: 400;
  color: var(--accent-deep);
}

.masthead__lede {
  max-width: 40ch;
  margin: 0 0 var(--space-6);
  font-size: var(--fs-body-lg);
  line-height: 1.7;
  color: var(--ink-soft);
}

.masthead__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-3);
  align-items: center;
}

.masthead__note {
  margin: var(--space-5) 0 0;
  font-family: var(--font-mono);
  font-size: var(--fs-label);
  letter-spacing: 0.05em;
  color: var(--ink-mute);
}

/* 刊头右侧：当日主推 */
.masthead__pick {
  border: var(--hairline-ink);
  background: var(--card);
}

.masthead__pick-media {
  aspect-ratio: 16 / 9;
  overflow: hidden;
  border-bottom: var(--hairline);
}

.masthead__pick-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform var(--dur-slow) var(--ease);
}

.masthead__pick:hover .masthead__pick-media img {
  transform: scale(1.03);
}

.masthead__pick-body {
  padding: var(--space-5);
}

.masthead__pick-title {
  margin: var(--space-3) 0 var(--space-3);
  font-size: var(--fs-h3);
  line-height: 1.3;
}

/* 首页栏目之间的间距 */
.front-section {
  padding-block: var(--space-8);
  border-bottom: var(--hairline);
}

.front-section:last-of-type {
  border-bottom: 0;
}

/* 头条 + 次条的不对称网格 */
.front-feature {
  display: grid;
  gap: var(--space-7);
}

@media (min-width: 64rem) {
  .front-feature {
    grid-template-columns: minmax(0, 8fr) minmax(0, 4fr);
    gap: var(--space-8);
  }
}

.front-feature__side {
  display: flex;
  flex-direction: column;
  gap: var(--space-5);
  padding-left: var(--space-5);
  border-left: var(--hairline);
}

@media (max-width: 63.99rem) {
  .front-feature__side {
    padding-left: 0;
    padding-top: var(--space-5);
    border-left: 0;
    border-top: var(--hairline);
  }
}

/* 双栏索引 */
.front-index {
  display: grid;
  gap: var(--space-6);
}

@media (min-width: 56rem) {
  .front-index--2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-7) var(--space-8);
  }
}

/* 教程 / 文档三栏 */
.doc-grid {
  display: grid;
  gap: var(--space-5);
}

@media (min-width: 48rem) {
  .doc-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 80rem) {
  .doc-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

.doc-card {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  height: 100%;
  padding: var(--space-5);
  background: var(--card);
  border: var(--hairline);
  transition: border-color var(--dur) var(--ease),
    background-color var(--dur) var(--ease);
}

.doc-card:hover {
  border-color: var(--ink-strong);
}

.doc-card__num {
  font-family: var(--font-display);
  font-style: italic;
  font-size: 1.5rem;
  line-height: 1;
  color: var(--accent-deep);
}

.doc-card__title {
  margin: 0;
  font-size: var(--fs-h4);
}

.doc-card__desc {
  margin: 0;
  font-size: var(--fs-small);
  color: var(--ink-mute);
}

.doc-card__foot {
  margin-top: auto;
  padding-top: var(--space-3);
  border-top: var(--hairline);
}

/* 首页底部 CTA（墨底） */
.front-cta {
  padding-block: var(--space-9);
  background: var(--ink-strong);
  color: #fafafa;
}

.front-cta__inner {
  display: grid;
  gap: var(--space-6);
  align-items: center;
}

@media (min-width: 64rem) {
  .front-cta__inner {
    grid-template-columns: minmax(0, 1fr) auto;
  }
}

.front-cta__title {
  margin: 0 0 var(--space-3);
  font-family: var(--font-display);
  font-size: clamp(1.75rem, 4vw, 3rem);
  font-weight: 400;
  font-style: italic;
  line-height: 1.15;
  color: #fafafa;
}

.front-cta__text {
  max-width: 46ch;
  margin: 0;
  color: #d4d4d8;
}

.front-cta .btn {
  background: #fafafa;
  border-color: #fafafa;
  color: var(--ink-strong);
}

.front-cta .btn:hover {
  background: var(--accent);
  border-color: var(--accent);
  color: #fff;
}

/* --------------------------------------------------------------------------
   2. 页面头（归档 / 静态页通用）
   -------------------------------------------------------------------------- */
.page-hero {
  padding-block: var(--space-7) var(--space-6);
  border-bottom: var(--hairline-ink);
}

.page-hero--tight {
  padding-block: var(--space-6);
}

.page-hero__title {
  margin: 0 0 var(--space-4);
  font-size: var(--fs-h1);
  line-height: var(--lh-tight);
  letter-spacing: var(--ls-display);
}

.page-hero__desc {
  max-width: 52ch;
  margin: 0;
  font-size: var(--fs-body-lg);
  color: var(--ink-soft);
}

.page-hero__meta {
  margin-top: var(--space-5);
}

.page-hero--center {
  text-align: center;
}

.page-hero--center .page-hero__desc {
  margin-inline: auto;
}

/* 归档筛选条 */
.filter-bar {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
  margin-top: var(--space-5);
}

.filter-bar a {
  padding: 0.35em 0.8em;
  border: var(--hairline);
  font-family: var(--font-mono);
  font-size: var(--fs-label);
  letter-spacing: 0.06em;
  color: var(--ink-soft);
  background: var(--card);
}

.filter-bar a:hover {
  border-color: var(--ink-strong);
  color: var(--ink);
}

.filter-bar a.is-active {
  background: var(--ink-strong);
  border-color: var(--ink-strong);
  color: #fff;
}

/* --------------------------------------------------------------------------
   3. 文章列表（博客 / 归档 / 搜索）
   -------------------------------------------------------------------------- */
.post-grid {
  display: grid;
  gap: var(--space-6);
}

@media (min-width: 48rem) {
  .post-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 80rem) {
  .post-grid--3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

.post-list {
  display: flex;
  flex-direction: column;
  gap: var(--space-5);
}

.list-block {
  margin-top: var(--space-8);
}

/* --------------------------------------------------------------------------
   4. 文章详情
   -------------------------------------------------------------------------- */
.entry-hero {
  padding-block: var(--space-7) var(--space-6);
}

.entry-hero__title {
  max-width: 32ch;
  margin: var(--space-3) 0 var(--space-5);
  font-size: var(--fs-h1);
  line-height: 1.12;
  letter-spacing: var(--ls-display);
  text-wrap: balance;
}

.entry-hero__dek {
  max-width: 60ch;
  margin: 0 0 var(--space-5);
  font-size: var(--fs-body-lg);
  line-height: 1.7;
  color: var(--ink-soft);
}

.byline {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-3) var(--space-4);
  padding-top: var(--space-4);
  border-top: var(--hairline);
  font-family: var(--font-mono);
  font-size: var(--fs-label);
  letter-spacing: 0.05em;
  color: var(--ink-mute);
}

.byline__avatar {
  width: 2.25rem;
  height: 2.25rem;
  border-radius: var(--radius-pill);
  border: var(--hairline);
}

.byline__author {
  color: var(--ink);
  font-weight: 500;
}

.entry-media {
  margin: 0 0 var(--space-7);
}

.entry-media img {
  width: 100%;
  border: var(--hairline);
}

.entry-layout {
  display: grid;
  gap: var(--space-7);
}

/* 正文栏：min-width 兜住长表格/长代码不撑破栅格 */
.entry-main {
  min-width: 0;
}

@media (min-width: 64rem) {
  .entry-layout {
    /* 目录在右的旧两栏（法务长页等仍用）。阅读页改用 .entry-layout--reading。
       注意：**不要**给这里加 align-items:start —— 那会让栏位不再被拉伸到整行高度，
       sticky 的目录就失去了可粘的容器，滚动时不再跟随。 */
    grid-template-columns: minmax(0, 1fr) minmax(16rem, 19rem);
    gap: var(--space-8);
  }
}

/* --------------------------------------------------------------------------
   阅读页三栏：左「本文目录」/ 中「正文」/ 右「侧边栏」
   --------------------------------------------------------------------------
   分层降级：
     ≥80rem        三栏（目录 15–18rem | 正文自适应 | 侧栏 17–20rem）
     64–80rem      两栏（目录 | 正文），侧栏整幅下移到正文之后
     <64rem        单栏，目录改用正文上方的折叠块（.toc-inline），侧栏在最下方
   硬约束：左列只有目录 —— sticky 元素必须独占所在列，否则会盖住同列内容。 */
.entry-toc {
  min-width: 0;
}

.entry-widgets {
  min-width: 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr));
  gap: var(--space-6) var(--space-7);
}

@media (min-width: 64rem) {
  .entry-layout--reading {
    grid-template-columns: minmax(15rem, var(--rail-toc)) minmax(0, 1fr);
  }
  /* 两栏档：侧栏整幅落在正文下方 */
  .entry-layout--reading .entry-widgets {
    grid-column: 1 / -1;
    margin-top: var(--space-6);
    padding-top: var(--space-7);
    border-top: var(--hairline-ink);
  }
}

@media (min-width: 85rem) {
  .entry-layout--reading {
    grid-template-columns:
      minmax(15rem, 17rem)
      minmax(0, 1fr)
      minmax(16rem, 19rem);
  }

  /* 三栏档：侧栏回到右列，改为纵向堆叠 */
  .entry-layout--reading .entry-widgets {
    grid-column: auto;
    margin-top: 0;
    padding-top: 0;
    border-top: 0;
    display: flex;
    flex-direction: column;
    gap: var(--space-6);
  }

  /* 三栏里挂件之间的分隔线恢复（横向排列时不需要） */
  .entry-layout--reading .entry-widgets .widget + .widget {
    border-top: var(--hairline);
    padding-top: var(--space-5);
  }
}

@media (max-width: 63.99rem) {
  /* 窄屏：左栏目录不出现（由 .toc-inline 承担），也不占位 */
  .entry-layout--reading .entry-toc {
    display: none;
  }
}

/* 法务长页（privacy / terms）：目录同样放左栏 */
@media (min-width: 64rem) {
  .entry-layout--doc {
    grid-template-columns: minmax(15rem, var(--rail-toc)) minmax(0, 1fr);
    gap: var(--space-8);
  }
}

@media (max-width: 63.99rem) {
  .entry-layout--doc .entry-toc {
    display: none;
  }
}

.entry-aside {
  display: flex;
  flex-direction: column;
  gap: var(--space-6);
}

@media (max-width: 63.99rem) {
  .entry-aside {
    order: 2;
  }

  /* 老两栏模板（page.php 等）在窄屏把侧栏推到正文之后 */
  .entry-aside:has(.toc) {
    display: none;
  }
}

.aside-block {
  padding-top: var(--space-4);
  border-top: var(--hairline-ink);
}

/* --------------------------------------------------------------------------
   目录：窄屏折叠版 + 桌面右栏版互斥
   --------------------------------------------------------------------------
   窄屏下右栏整体被 order:2 推到文章之后，读者读完才看到目录等于没有导航；
   因此窄屏改用正文上方的折叠目录，右栏目录直接 display:none 隐藏
   （display:none 会一并移出无障碍树，不会产生重复的导航地标）。 */
.toc-inline {
  margin-bottom: var(--space-6);
  background: var(--card);
  border: var(--hairline-ink);
}

.toc-inline__summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
  padding: var(--space-4) var(--space-5);
  cursor: pointer;
  list-style: none;
  font-family: var(--font-mono);
  font-size: var(--fs-label);
  letter-spacing: var(--ls-label);
  text-transform: uppercase;
  color: var(--ink);
}

.toc-inline__summary::-webkit-details-marker {
  display: none;
}

.toc-inline__meta {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  color: var(--ink-mute);
  letter-spacing: 0.06em;
}

.toc-inline__meta .icon {
  width: 0.9rem;
  height: 0.9rem;
  transition: transform var(--dur) var(--ease);
}

.toc-inline[open] .toc-inline__meta .icon {
  transform: rotate(45deg);
}

@media (min-width: 64rem) {
  .toc-inline {
    display: none;
  }
}

@media (max-width: 63.99rem) {
  .entry-aside .toc {
    display: none;
  }
}

/* 空状态挂件不占位：例如全站关闭评论后，「近期评论」只剩一句「您尚未收到任何评论。」
   没有任何信息量，属于规范里「空状态必须给出行动指引，否则不该出现」的情形。
   要彻底移除请在后台「外观 → 小工具」里删除该挂件。 */
.widget:has(.no-comments) {
  display: none;
}

.aside-block__title {
  margin: 0 0 var(--space-3);
  font-family: var(--font-mono);
  font-size: var(--fs-label);
  font-weight: 500;
  letter-spacing: var(--ls-label);
  text-transform: uppercase;
  color: var(--ink-mute);
}

/* 正文排版 */
.prose {
  max-width: var(--measure);
  font-size: var(--fs-body);
  line-height: var(--lh-body);
  color: var(--ink);
}

.prose > * + * {
  margin-top: var(--space-5);
}

.prose > p,
.prose > ul,
.prose > ol,
.prose > blockquote,
.prose > table,
.prose > pre,
.prose > figure {
  margin-bottom: 0;
}

.prose h2 {
  margin-top: var(--space-8);
  padding-top: var(--space-4);
  border-top: var(--hairline-ink);
  font-size: var(--fs-h2);
}

.prose h3 {
  margin-top: var(--space-7);
  font-size: var(--fs-h3);
}

.prose h4 {
  margin-top: var(--space-6);
}

.prose h2 + p,
.prose h3 + p {
  margin-top: var(--space-3);
}

/* 首段首字下沉（仅中文以外字符生效，由 :first-letter 自然处理） */
.prose--dropcap > p:first-of-type::first-letter {
  float: left;
  margin: 0.06em 0.12em 0 0;
  font-family: var(--font-display);
  font-size: 3.4em;
  line-height: 0.82;
  font-weight: 700;
  color: var(--ink);
}

.prose ul,
.prose ol {
  padding-left: 1.4em;
}

.prose li + li {
  margin-top: var(--space-2);
}

.prose img {
  border: var(--hairline);
}

.prose figure img {
  width: 100%;
}

.prose figcaption {
  padding-top: var(--space-2);
  border-top: var(--hairline);
  font-family: var(--font-mono);
  font-size: var(--fs-label);
  letter-spacing: 0.03em;
}

.prose blockquote {
  margin-inline: 0;
  padding: var(--space-5) 0 var(--space-5) var(--space-5);
  font-size: 1.3rem;
}

.prose table {
  border-top: var(--hairline-ink);
}

.prose hr {
  margin-block: var(--space-8);
}

/* 文章底部 */
.entry-footer {
  margin-top: var(--space-8);
  padding-top: var(--space-5);
  border-top: var(--hairline-ink);
}

.entry-tags {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
  align-items: center;
  margin-bottom: var(--space-5);
}

.entry-share {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-3);
  align-items: center;
  font-family: var(--font-mono);
  font-size: var(--fs-label);
  letter-spacing: var(--ls-label);
  text-transform: uppercase;
  color: var(--ink-mute);
}

.entry-share a {
  color: var(--ink-soft);
  border-bottom: 1px solid var(--rule);
}

.entry-share a:hover {
  color: var(--accent-deep);
  border-bottom-color: var(--accent-deep);
}

/* 作者框 */
.author-box {
  display: flex;
  gap: var(--space-4);
  align-items: flex-start;
  margin-top: var(--space-6);
  padding: var(--space-5);
  border: var(--hairline);
  background: var(--card);
}

.author-box__avatar {
  flex: none;
  width: 3.5rem;
  height: 3.5rem;
  border-radius: var(--radius-pill);
  border: var(--hairline);
}

.author-box__name {
  margin: 0 0 var(--space-2);
  font-size: var(--fs-h4);
}

.author-box__desc {
  margin: 0;
  font-size: var(--fs-small);
  color: var(--ink-mute);
}

/* 上一篇 / 下一篇 */
.post-nav {
  display: grid;
  gap: var(--space-5);
  margin-top: var(--space-7);
  padding-top: var(--space-5);
  border-top: var(--hairline);
}

@media (min-width: 48rem) {
  .post-nav {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.post-nav__item {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}

.post-nav__label {
  font-family: var(--font-mono);
  font-size: var(--fs-label);
  letter-spacing: var(--ls-label);
  text-transform: uppercase;
  color: var(--ink-mute);
}

.post-nav__title {
  font-size: var(--fs-h4);
  font-weight: 600;
}

.post-nav__item--next {
  text-align: right;
}

/* --------------------------------------------------------------------------
   5. 工具详情（single-ai_tool）
   -------------------------------------------------------------------------- */
.tool-hero {
  padding-block: var(--space-7) var(--space-6);
  border-bottom: var(--hairline-ink);
}

.tool-hero__grid {
  display: grid;
  gap: var(--space-6);
  align-items: start;
}

@media (min-width: 56rem) {
  .tool-hero__grid {
    grid-template-columns: minmax(0, 1fr) minmax(0, 20rem);
    gap: var(--space-8);
  }
}

.tool-hero__brand {
  display: flex;
  align-items: center;
  gap: var(--space-4);
  margin-bottom: var(--space-5);
}

.tool-hero__logo {
  width: 4.5rem;
  height: 4.5rem;
  display: grid;
  place-items: center;
  border: var(--hairline-ink);
  background: var(--card);
  overflow: hidden;
  flex: none;
}

.tool-hero__logo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.tool-hero__title {
  margin: 0;
  font-size: var(--fs-h1);
  line-height: var(--lh-tight);
  letter-spacing: var(--ls-display);
}

.tool-hero__summary {
  max-width: 54ch;
  margin: 0 0 var(--space-5);
  font-size: var(--fs-body-lg);
  color: var(--ink-soft);
}

.tool-spec {
  margin: 0;
  border-top: var(--hairline-ink);
}

.tool-spec__row {
  display: grid;
  grid-template-columns: 5.5rem 1fr;
  gap: var(--space-3);
  padding-block: var(--space-3);
  border-bottom: var(--hairline);
}

.tool-spec__key {
  font-family: var(--font-mono);
  font-size: var(--fs-label);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--ink-mute);
}

.tool-spec__val {
  margin: 0;
  font-size: var(--fs-small);
}

.tool-actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-3);
  margin-top: var(--space-5);
}

/* 优点 / 缺点 */
.proscons {
  display: grid;
  gap: var(--space-5);
  margin-block: var(--space-6);
}

@media (min-width: 48rem) {
  .proscons {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.proscons__col {
  padding: var(--space-5);
  border: var(--hairline);
  background: var(--card);
}

.proscons__col--pro {
  border-left: 3px solid var(--ink-strong);
}

.proscons__col--con {
  border-left: 3px solid var(--accent);
}

.proscons__title {
  margin: 0 0 var(--space-3);
  font-family: var(--font-mono);
  font-size: var(--fs-label);
  letter-spacing: var(--ls-label);
  text-transform: uppercase;
}

.proscons ul {
  margin: 0;
  padding-left: 1.2em;
  font-size: var(--fs-small);
}

/* --------------------------------------------------------------------------
   6. 工具归档（archive-ai_tool / products）
   -------------------------------------------------------------------------- */
.tool-grid {
  display: grid;
  gap: var(--space-5);
}

@media (min-width: 40rem) {
  .tool-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 80rem) {
  .tool-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

.tool-card {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
  height: 100%;
  padding: var(--space-5);
  background: var(--card);
  border: var(--hairline);
  transition: border-color var(--dur) var(--ease);
}

.tool-card:hover {
  border-color: var(--ink-strong);
}

.tool-card__head {
  display: flex;
  align-items: center;
  gap: var(--space-4);
}

.tool-card__logo {
  width: 3.25rem;
  height: 3.25rem;
  display: grid;
  place-items: center;
  border: var(--hairline);
  overflow: hidden;
  flex: none;
}

.tool-card__logo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.tool-card__name {
  margin: 0;
  font-size: var(--fs-h4);
}

.tool-card__cat {
  font-family: var(--font-mono);
  font-size: var(--fs-label);
  color: var(--ink-mute);
}

.tool-card__desc {
  margin: 0;
  font-size: var(--fs-small);
  color: var(--ink-soft);
}

.tool-card__foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
  margin-top: auto;
  padding-top: var(--space-4);
  border-top: var(--hairline);
}

/* --------------------------------------------------------------------------
   7. 静态页（关于 / 文档 / FAQ / 联系 / 条款）
   -------------------------------------------------------------------------- */
.page-body {
  padding-block: var(--space-8);
}

.page-layout {
  display: grid;
  gap: var(--space-7);
}

@media (min-width: 64rem) {
  .page-layout--aside {
    grid-template-columns: minmax(0, 8fr) minmax(0, 4fr);
    gap: var(--space-8);
  }
}

/* FAQ 折叠（无 JS 也能用） */
.faq-list {
  border-top: var(--hairline-ink);
}

.faq-item {
  border-bottom: var(--hairline);
}

.faq-item__q {
  display: flex;
  gap: var(--space-4);
  align-items: baseline;
  padding-block: var(--space-5);
  cursor: pointer;
  list-style: none;
  font-size: var(--fs-h4);
  font-weight: 600;
}

.faq-item__q::-webkit-details-marker {
  display: none;
}

.faq-item__q .icon {
  margin-left: auto;
  transition: transform var(--dur) var(--ease);
}

.faq-item[open] .faq-item__q .icon {
  transform: rotate(45deg);
}

.faq-item__a {
  max-width: var(--measure);
  padding-bottom: var(--space-5);
  color: var(--ink-soft);
}

/* 联系页 */
.contact-grid {
  display: grid;
  gap: var(--space-7);
}

@media (min-width: 56rem) {
  .contact-grid {
    grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
    gap: var(--space-8);
  }
}

.contact-channels {
  margin: 0;
  padding: 0;
  list-style: none;
  border-top: var(--hairline-ink);
}

.contact-channels li {
  margin: 0;
  padding-block: var(--space-4);
  border-bottom: var(--hairline);
}

.contact-channels__label {
  display: block;
  font-family: var(--font-mono);
  font-size: var(--fs-label);
  letter-spacing: var(--ls-label);
  text-transform: uppercase;
  color: var(--ink-mute);
  margin-bottom: var(--space-2);
}

/* 分类导航页 */
.cat-grid {
  display: grid;
  gap: var(--space-5);
}

@media (min-width: 40rem) {
  .cat-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 80rem) {
  .cat-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

.cat-card {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  height: 100%;
  padding: var(--space-5);
  border: var(--hairline);
  background: var(--card);
}

.cat-card:hover {
  border-color: var(--ink-strong);
}

.cat-card__num {
  font-family: var(--font-display);
  font-style: italic;
  font-size: 1.25rem;
  color: var(--accent-deep);
}

.cat-card__name {
  margin: 0;
  font-size: var(--fs-h4);
}

.cat-card__desc {
  margin: 0;
  font-size: var(--fs-small);
  color: var(--ink-mute);
}

.cat-card__count {
  margin-top: auto;
  padding-top: var(--space-3);
  border-top: var(--hairline);
  font-family: var(--font-mono);
  font-size: var(--fs-label);
  color: var(--ink-mute);
}

/* --------------------------------------------------------------------------
   8. 搜索与 404
   -------------------------------------------------------------------------- */
.search-hero {
  padding-block: var(--space-6);
  border-bottom: var(--hairline-ink);
}

.search-result {
  padding-block: var(--space-5);
  border-bottom: var(--hairline);
}

.search-result__type {
  font-family: var(--font-mono);
  font-size: var(--fs-label);
  letter-spacing: var(--ls-label);
  text-transform: uppercase;
  color: var(--accent-deep);
}

.search-result__title {
  margin: var(--space-2) 0 var(--space-3);
  font-size: var(--fs-h3);
}

.search-result__excerpt {
  margin: 0;
  max-width: var(--measure);
  font-size: var(--fs-small);
  color: var(--ink-soft);
}

.error-404 {
  padding-block: var(--space-9);
  text-align: center;
}

.error-404__code {
  display: block;
  font-family: var(--font-display);
  font-size: clamp(4rem, 14vw, 10rem);
  font-weight: 700;
  line-height: 0.9;
  letter-spacing: var(--ls-display);
  color: var(--ink);
}

.error-404__title {
  margin: var(--space-5) 0 var(--space-4);
  font-size: var(--fs-h2);
}

.error-404__text {
  max-width: 44ch;
  margin: 0 auto var(--space-6);
  color: var(--ink-soft);
}

.error-404__form {
  max-width: 32rem;
  margin: 0 auto var(--space-6);
}

.error-404__links {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-4);
  justify-content: center;
  font-family: var(--font-mono);
  font-size: var(--fs-label);
  letter-spacing: var(--ls-label);
  text-transform: uppercase;
}

/* --------------------------------------------------------------------------
   9. 侧栏（若启用）
   -------------------------------------------------------------------------- */
.widget-area {
  display: flex;
  flex-direction: column;
  gap: var(--space-6);
}

.widget {
  padding-top: var(--space-4);
  border-top: var(--hairline-ink);
  font-size: var(--fs-small);
}

.widget__title,
.widget .wp-block-heading {
  margin: 0 0 var(--space-3);
  font-family: var(--font-mono);
  font-size: var(--fs-label);
  font-weight: 500;
  letter-spacing: var(--ls-label);
  text-transform: uppercase;
  color: var(--ink-mute);
}

.widget ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

.widget li {
  padding-block: var(--space-2);
  border-bottom: var(--hairline);
}

/* --------------------------------------------------------------------------
   10. 打印
   -------------------------------------------------------------------------- */
@media print {
  .site-header,
  .site-footer,
  .rail,
  .entry-aside,
  .toc-inline,
  .post-nav,
  .comments-area,
  .reading-progress,
  .drawer,
  .search-overlay {
    display: none !important;
  }

  body {
    background: #fff;
    color: #000;
    font-size: 11pt;
  }

  .prose {
    max-width: none;
  }

  a::after {
    content: " (" attr(href) ")";
    font-size: 0.85em;
    color: #555;
  }
}
