/*
Theme Name: 暖巷 Nuanxiang
Theme URI: https://example.invalid/nuanxiang
Author: moban
Description: 暖色手册风格的中文内容主题。首页由首屏、最新文章和 8 个可配置的编号板块组成，每个板块从指定分类取文章并按 8 种版式之一排列；文章页带要点、自动目录、更新时间、相关文章。四套配色、三种首屏、两种圆角与标题字体可在“外观 → 自定义 → 暖巷主题”切换。不输出 SEO 标签，不导入演示内容，不加载外部资源。
Version: 1.0.0
Requires at least: 6.4
Tested up to: 7.1
Requires PHP: 7.4
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: nuanxiang
*/

/* ---------- 变量与配色 ---------- */
:root {
	--nx-ink: #1f1b17;
	--nx-ink-2: #4a433c;
	--nx-mute: #6e655c;
	--nx-line: #ebe3d8;
	--nx-paper: #ffffff;
	--nx-bg: #ffffff;
	--nx-alt: #faf6f0;
	--nx-cream: #fff7ea;
	--nx-dark: #1f1b17;
	--nx-accent: #b4521a;
	--nx-accent-soft: #fde7cf;
	--nx-g1: #f7c14c;
	--nx-g2: #ef8a3a;
	--nx-g3: #e5602c;
	--nx-art-bg: #fbe2b8; --nx-art-sun: #f7c14c; --nx-art-city: #e9a96b; --nx-art-frame: #7a4a2a;
	--nx-art-table: #8a5534; --nx-art-book: #2f4a5e; --nx-art-book2: #f1e6d3; --nx-art-ink: #3b2416;
	--nx-art-cup: #fff7ea; --nx-art-shadow: rgba(0, 0, 0, .18);
	--nx-r: 18px;
	--nx-r-sm: 12px;
	--nx-pill: 999px;
	--nx-wrap: 1180px;
	--nx-gut: 20px;
	--nx-head: "Songti SC", "STSong", "Noto Serif SC", "Source Han Serif SC", SimSun, Georgia, serif;
	--nx-body: -apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans SC", sans-serif;
	--nx-focus: #1f5fbf;
	--nx-shadow: 0 1px 2px rgba(31, 27, 23, .05), 0 8px 24px rgba(31, 27, 23, .06);
}
.nx-p-celadon {
	--nx-accent: #24706a; --nx-accent-soft: #d8efe9; --nx-alt: #f3f8f6; --nx-cream: #eef7f3; --nx-line: #dde8e3;
	--nx-g1: #cdeee2; --nx-g2: #95d1c2; --nx-g3: #6fb3a8;
	--nx-art-bg: #d9f0e7; --nx-art-sun: #f4e6b0; --nx-art-city: #8cc4b6; --nx-art-frame: #2d5a54; --nx-art-table: #4e6f68;
}
.nx-p-ink {
	--nx-accent: #2f6a46; --nx-accent-soft: #dfead6; --nx-alt: #f5f7f1; --nx-cream: #f1f5ea; --nx-line: #e1e7da;
	--nx-g1: #e3ecc4; --nx-g2: #b6cf91; --nx-g3: #8db07a;
	--nx-art-bg: #e8efd2; --nx-art-sun: #f3d48b; --nx-art-city: #a7c08a; --nx-art-frame: #34452c; --nx-art-table: #5b4a35;
}
.nx-p-rouge {
	--nx-accent: #a8372e; --nx-accent-soft: #f8dcd5; --nx-alt: #fbf5f3; --nx-cream: #fdf0ec; --nx-line: #efe0db;
	--nx-g1: #f9cfbd; --nx-g2: #ef9f86; --nx-g3: #e07a63;
	--nx-art-bg: #fbe0d6; --nx-art-sun: #f6c27a; --nx-art-city: #e3a08c; --nx-art-frame: #6b2c25; --nx-art-table: #7a3d30;
}
.nx-r-crisp { --nx-r: 4px; --nx-r-sm: 3px; --nx-pill: 4px; }
.nx-h-sans { --nx-head: var(--nx-body); }

/* ---------- 基础 ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: 84px; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } * { transition: none !important; } }
body { margin: 0; background: var(--nx-bg); color: var(--nx-ink); font: 16px/1.75 var(--nx-body); overflow-x: hidden; }
img, svg { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
a:hover { color: var(--nx-accent); }
:focus-visible { outline: 3px solid var(--nx-focus); outline-offset: 2px; border-radius: 4px; }
h1, h2, h3 { margin: 0; line-height: 1.3; font-weight: 700; }
p { margin: 0; }
ul, ol { margin: 0; padding: 0; }
.nx-wrap { width: 100%; max-width: calc(var(--nx-wrap) + var(--nx-gut) * 2); margin: 0 auto; padding: 0 var(--nx-gut); }
.nx-sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.nx-skip { position: absolute; left: 12px; top: -60px; z-index: 100; background: var(--nx-dark); color: #fff; padding: 8px 14px; border-radius: 8px; }
.nx-skip:focus { top: 12px; color: #fff; }
.nx-ico { width: 1.15em; height: 1.15em; flex: none; }

/* ---------- 页头 ---------- */
.nx-top { position: sticky; top: 0; z-index: 50; background: rgba(255, 255, 255, .94); backdrop-filter: saturate(1.4) blur(10px); border-bottom: 1px solid transparent; transition: border-color .2s, box-shadow .2s; }
.nx-top.is-stuck { border-color: var(--nx-line); box-shadow: 0 6px 18px rgba(31, 27, 23, .05); }
.nx-top__bar { display: flex; align-items: center; gap: 24px; min-height: 66px; }
.nx-brand { display: flex; align-items: center; gap: 10px; font-weight: 700; font-size: 18px; flex: none; }
.nx-brand__mark { display: grid; place-items: center; width: 36px; height: 36px; border-radius: 50%; background: linear-gradient(140deg, var(--nx-g1), var(--nx-g3)); color: var(--nx-ink); font-family: var(--nx-head); font-size: 18px; box-shadow: inset 0 0 0 2px rgba(255, 255, 255, .55); }
.nx-r-crisp .nx-brand__mark { border-radius: 6px; }
.nx-brand--logo img { width: auto; max-height: 40px; }
.nx-nav .nx-menu, .nx-nav ul { list-style: none; display: flex; gap: 2px; }
.nx-nav a { display: block; padding: 6px 12px; border-radius: var(--nx-pill); font-size: 15px; color: var(--nx-ink-2); white-space: nowrap; }
.nx-nav a:hover { background: var(--nx-alt); color: var(--nx-ink); }
.nx-nav .current-menu-item > a { background: var(--nx-accent-soft); color: var(--nx-ink); font-weight: 600; }
.nx-nav--wide { flex: 1; min-width: 0; overflow-x: auto; scrollbar-width: none; }
.nx-nav--wide::-webkit-scrollbar { display: none; }
.nx-top__tools { display: flex; align-items: center; gap: 10px; margin-left: auto; }
.nx-search { display: flex; align-items: center; gap: 6px; }
.nx-search input { width: 150px; height: 38px; padding: 0 14px; border: 1px solid var(--nx-line); border-radius: var(--nx-pill); background: var(--nx-alt); font: inherit; font-size: 14px; color: var(--nx-ink); }
.nx-search button { height: 38px; padding: 0 16px; border: 0; border-radius: var(--nx-pill); background: var(--nx-dark); color: #fff; font: inherit; font-size: 14px; cursor: pointer; }
.nx-search button:hover { background: var(--nx-accent); }
.nx-drawer { display: none; position: relative; }
.nx-drawer > summary { list-style: none; display: flex; align-items: center; gap: 8px; height: 38px; padding: 0 14px; border: 1px solid var(--nx-line); border-radius: var(--nx-pill); cursor: pointer; font-size: 14px; }
.nx-drawer > summary::-webkit-details-marker { display: none; }
.nx-drawer__bars, .nx-drawer__bars::before, .nx-drawer__bars::after { display: block; width: 16px; height: 2px; background: currentColor; border-radius: 2px; position: relative; }
.nx-drawer__bars::before, .nx-drawer__bars::after { content: ""; position: absolute; left: 0; }
.nx-drawer__bars::before { top: -5px; } .nx-drawer__bars::after { top: 5px; }
.nx-drawer__panel { position: absolute; right: 0; top: calc(100% + 10px); width: min(320px, calc(100vw - 32px)); background: #fff; border: 1px solid var(--nx-line); border-radius: var(--nx-r); box-shadow: var(--nx-shadow); padding: 12px; }
.nx-drawer__panel .nx-menu, .nx-drawer__panel ul { flex-direction: column; }
.nx-drawer__panel .nx-search { margin-top: 10px; }
.nx-drawer__panel .nx-search input { flex: 1; width: auto; }

/* ---------- 公共组件 ---------- */
.nx-btn { display: inline-flex; align-items: center; gap: 6px; min-height: 46px; padding: 0 22px; border-radius: var(--nx-pill); border: 1.5px solid var(--nx-ink); background: rgba(255, 255, 255, .85); color: var(--nx-ink); font-weight: 600; font-size: 15px; transition: transform .15s, background .15s; }
.nx-btn:hover { transform: translateY(-1px); color: var(--nx-ink); background: #fff; }
.nx-btn--solid { background: var(--nx-dark); color: #fff; border-color: var(--nx-dark); }
.nx-btn--solid:hover { background: #000; color: #fff; }
.nx-kicker { display: flex; align-items: baseline; gap: 10px; font-size: 13px; letter-spacing: .08em; color: var(--nx-mute); }
.nx-kicker__n { font-family: ui-monospace, "SF Mono", Menlo, monospace; color: var(--nx-accent); font-weight: 700; }
.nx-kicker__n::after { content: "/"; margin-left: 10px; color: var(--nx-line); }
.nx-tag { display: inline-block; padding: 2px 10px; border-radius: var(--nx-pill); background: var(--nx-accent-soft); color: var(--nx-ink); font-size: 12.5px; line-height: 1.8; }
a.nx-tag:hover { color: var(--nx-ink); filter: brightness(.96); }
.nx-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; font-size: 13px; color: var(--nx-mute); }
.nx-meta a { color: var(--nx-accent); }
.nx-card { background: var(--nx-paper); border: 1px solid var(--nx-line); border-radius: var(--nx-r); padding: 22px; transition: border-color .2s, box-shadow .2s, transform .2s; }
.nx-card:hover { border-color: transparent; box-shadow: var(--nx-shadow); }
.nx-card h3 { font-size: 18px; margin-bottom: 8px; }
.nx-card p { color: var(--nx-ink-2); font-size: 14.5px; }
.nx-textlink { display: inline-flex; align-items: center; gap: 4px; margin-top: 12px; font-size: 14px; font-weight: 600; color: var(--nx-accent); }
.nx-textlink .nx-ico { transition: transform .15s; }
.nx-textlink:hover .nx-ico, .nx-sec__more a:hover .nx-ico { transform: translateX(3px); }
.nx-badge-ico { display: grid; place-items: center; width: 42px; height: 42px; margin-bottom: 16px; border-radius: var(--nx-r-sm); background: var(--nx-accent-soft); color: var(--nx-accent); }
.nx-note { margin-top: 10px; font-size: 13px !important; color: var(--nx-mute) !important; }
.nx-note a { color: var(--nx-accent); }
.nx-chip { display: inline-block; margin-top: 12px; padding: 4px 12px; border-radius: var(--nx-pill); background: var(--nx-cream); border: 1px solid var(--nx-line); font-size: 13px !important; }
.nx-ticks { list-style: none; display: grid; gap: 8px; }
.nx-ticks li { display: flex; gap: 8px; align-items: flex-start; font-size: 14.5px; color: var(--nx-ink-2); }
.nx-ticks .nx-ico { color: var(--nx-accent); margin-top: .3em; }
.nx-ph { display: grid; place-items: center; width: 100%; height: 100%; min-height: 140px; font-family: var(--nx-head); font-size: 54px; color: rgba(31, 27, 23, .55); background: linear-gradient(135deg, var(--nx-g1), var(--nx-g2)); }
.nx-ph-1 { background: linear-gradient(160deg, var(--nx-cream), var(--nx-g1)); }
.nx-ph-2 { background: linear-gradient(120deg, var(--nx-g2), var(--nx-g3)); }
.nx-ph-3 { background: linear-gradient(200deg, var(--nx-accent-soft), var(--nx-g2)); }

/* ---------- 首屏 ---------- */
.nx-hero { position: relative; overflow: hidden; padding: 72px 0 84px; background: linear-gradient(160deg, var(--nx-g1) 0%, var(--nx-g2) 55%, var(--nx-g3) 100%); }
.nx-hero::before { content: ""; position: absolute; inset: auto -10% -45% auto; width: 60%; aspect-ratio: 1; border-radius: 50%; background: radial-gradient(closest-side, rgba(255, 255, 255, .35), transparent); pointer-events: none; }
.nx-hero__grid { position: relative; display: grid; grid-template-columns: 1.05fr .95fr; gap: 56px; align-items: center; }
.nx-hero__eyebrow { display: inline-block; margin-bottom: 18px; padding: 4px 12px; border-radius: var(--nx-pill); background: rgba(255, 255, 255, .5); font-size: 13px; letter-spacing: .05em; }
.nx-hero__title { font-family: var(--nx-head); font-size: clamp(34px, 5.2vw, 60px); line-height: 1.18; font-weight: 700; letter-spacing: .01em; }
.nx-hero__intro { margin-top: 22px; max-width: 34em; font-size: 17px; color: var(--nx-ink-2); }
.nx-hero__btns { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 30px; }
.nx-hero__tags { list-style: none; display: flex; flex-wrap: wrap; gap: 8px; margin-top: 26px; }
.nx-hero__tags a, .nx-hero__tags span { display: block; padding: 4px 14px; border-radius: var(--nx-pill); background: rgba(255, 255, 255, .55); font-size: 13.5px; }
.nx-hero__tags a:hover { background: #fff; color: var(--nx-ink); }
.nx-hero__media { margin: 0; position: relative; border-radius: calc(var(--nx-r) + 6px); overflow: hidden; box-shadow: 0 30px 60px -20px rgba(60, 25, 5, .45); transform: rotate(-1.2deg); background: var(--nx-cream); }
.nx-r-crisp .nx-hero__media { transform: none; }
.nx-hero__media img, .nx-hero__media .nx-art { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.nx-hero__media figcaption { position: absolute; left: 0; right: 0; bottom: 0; padding: 30px 18px 14px; font-size: 13px; color: #fff; background: linear-gradient(transparent, rgba(0, 0, 0, .55)); }
/* 浅底 + 色块 */
.nx-hero-paper .nx-hero { background: var(--nx-cream); }
.nx-hero-paper .nx-hero::before { inset: 0 0 0 auto; width: 44%; aspect-ratio: auto; border-radius: 0; background: linear-gradient(170deg, var(--nx-g1), var(--nx-g3)); }
.nx-hero-paper .nx-hero__eyebrow, .nx-hero-paper .nx-hero__tags a, .nx-hero-paper .nx-hero__tags span { background: #fff; border: 1px solid var(--nx-line); }
/* 紧凑横幅 */
.nx-hero-band .nx-hero { padding: 48px 0 52px; }
.nx-hero-band .nx-hero__grid { grid-template-columns: 1.4fr .6fr; }
.nx-hero-band .nx-hero__title { font-size: clamp(30px, 4vw, 46px); }
.nx-hero-band .nx-hero__media { transform: none; }

/* ---------- 板块通用 ---------- */
.nx-sec, .nx-latest { padding: 84px 0; }
.nx-tone-1 { background: var(--nx-alt); }
.nx-tone-2 { background: var(--nx-bg); }
.nx-tone-0 { background: var(--nx-cream); }
.nx-sec__head, .nx-latest__head { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: 48px; row-gap: 14px; align-items: end; margin-bottom: 40px; }
.nx-sec__head .nx-kicker, .nx-latest__head .nx-kicker { grid-column: 1 / -1; }
.nx-sec__title { font-family: var(--nx-head); font-size: clamp(26px, 3.4vw, 38px); line-height: 1.25; }
.nx-sec__intro { color: var(--nx-mute); font-size: 15px; max-width: 34em; }
.nx-sec__more { margin-top: 32px; }
.nx-sec__more a { display: inline-flex; align-items: center; gap: 6px; font-weight: 600; color: var(--nx-accent); border-bottom: 1.5px solid currentColor; padding-bottom: 2px; }

/* 最新文章 */
.nx-lead { display: grid; grid-template-columns: 1.15fr 1fr; gap: 40px; align-items: center; padding-bottom: 36px; margin-bottom: 36px; border-bottom: 1px solid var(--nx-line); }
.nx-lead__media { display: block; border-radius: var(--nx-r); overflow: hidden; aspect-ratio: 16 / 10; }
.nx-lead__media img, .nx-lead__media .nx-ph { width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.nx-lead:hover .nx-lead__media img { transform: scale(1.03); }
.nx-lead__body { display: grid; gap: 14px; justify-items: start; }
.nx-lead__title { font-family: var(--nx-head); font-size: clamp(24px, 2.8vw, 32px); }
.nx-lead__body > p:last-child { color: var(--nx-ink-2); }
.nx-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.nx-cards--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.nx-cards__item { padding: 0; overflow: hidden; display: flex; flex-direction: column; }
.nx-cards__item > :not(.nx-cards__media) { margin-left: 20px; margin-right: 20px; }
.nx-cards__item h3 { margin-top: 18px; font-size: 17px; }
.nx-cards__item > p:last-child { margin-top: 8px; margin-bottom: 22px; }
.nx-cards__item > .nx-meta:last-child { margin-bottom: 20px; }
.nx-cards__media { display: block; aspect-ratio: 3 / 2; overflow: hidden; }
.nx-cards__media img, .nx-cards__media .nx-ph { width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.nx-cards__item:hover .nx-cards__media img { transform: scale(1.04); }

/* 对号卡片 */
.nx-aud { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
.nx-aud__item { display: flex; flex-direction: column; }
.nx-aud__item .nx-textlink { margin-top: auto; padding-top: 14px; }

/* 左右对照 */
.nx-vs { border: 1px solid var(--nx-line); border-radius: var(--nx-r); background: #fff; overflow: hidden; }
.nx-vs__cols, .nx-vs__row { display: grid; grid-template-columns: 56px minmax(0, 1fr) minmax(0, 1.2fr); gap: 0 28px; padding: 18px 26px; }
.nx-vs__cols { background: var(--nx-dark); color: #fff; font-size: 13px; letter-spacing: .06em; }
.nx-vs__cols span:first-child { grid-column: 2; }
.nx-vs__row + .nx-vs__row { border-top: 1px dashed var(--nx-line); }
.nx-vs__key { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; background: var(--nx-accent-soft); color: var(--nx-accent); font-weight: 700; font-family: ui-monospace, Menlo, monospace; }
.nx-vs__q { font-size: 17px; align-self: center; }
.nx-vs__a { color: var(--nx-ink-2); font-size: 14.5px; padding-left: 20px; border-left: 3px solid var(--nx-accent-soft); align-self: center; }

/* 横向滑动 */
.nx-rail { list-style: none; display: grid; grid-auto-flow: column; grid-auto-columns: minmax(260px, 300px); gap: 20px; overflow-x: auto; scroll-snap-type: x mandatory; padding: 4px 4px 18px; margin: 0 -4px; scrollbar-color: var(--nx-g2) transparent; }
.nx-rail__item { scroll-snap-align: start; padding: 0 0 20px; overflow: hidden; }
.nx-rail__item > :not(.nx-rail__media) { margin-left: 18px; margin-right: 18px; }
.nx-rail__media { display: block; aspect-ratio: 3 / 2; overflow: hidden; margin-bottom: 16px; }
.nx-rail__media img, .nx-rail__media .nx-ph { width: 100%; height: 100%; object-fit: cover; }
.nx-rail__item h3 { margin-top: 10px; }

/* 编号步骤：左侧标题粘住 */
.nx-sec--steps .nx-wrap { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 56px; align-items: start; }
.nx-sec--steps .nx-sec__head { display: block; position: sticky; top: 100px; margin: 0; }
.nx-sec--steps .nx-sec__title { margin: 14px 0; }
.nx-sec--steps .nx-sec__more { grid-column: 2; margin-top: 0; }
.nx-steps { list-style: none; display: grid; gap: 14px; }
.nx-steps__item { display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: 18px; padding: 24px; border-radius: var(--nx-r); background: #fff; border: 1px solid var(--nx-line); }
.nx-steps__n { font-family: var(--nx-head); font-size: 44px; line-height: 1; color: var(--nx-accent); font-weight: 700; }
.nx-steps__item h3 { font-size: 18px; margin-bottom: 6px; }
.nx-steps__item p { color: var(--nx-ink-2); font-size: 14.5px; }
.nx-steps__item .nx-note { padding: 8px 12px; border-radius: var(--nx-r-sm); background: var(--nx-cream); }

/* 三栏突出中间 */
.nx-trio { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; align-items: stretch; }
.nx-trio__item { position: relative; display: flex; flex-direction: column; gap: 12px; padding: 28px; }
.nx-trio__item h3 { font-family: var(--nx-head); font-size: 21px; margin: 0; }
.nx-trio__item.is-pick { border: 2px solid var(--nx-accent); box-shadow: 0 18px 40px -18px rgba(0, 0, 0, .25); transform: translateY(-8px); }
.nx-trio__flag { position: absolute; top: -13px; left: 24px; padding: 2px 12px; border-radius: var(--nx-pill); background: var(--nx-accent); color: #fff; font-size: 12.5px; }
.nx-trio__item .nx-tag { justify-self: start; align-self: flex-start; }
.nx-trio__meta { font-size: 13px !important; color: var(--nx-mute) !important; padding-bottom: 12px; border-bottom: 1px solid var(--nx-line); }
.nx-trio__foot { margin-top: auto; padding-top: 12px; border-top: 1px dashed var(--nx-line); font-size: 13.5px !important; }

/* 追问清单 */
.nx-ask { display: grid; gap: 14px; }
.nx-ask__item { display: grid; grid-template-columns: 56px minmax(0, 1fr); gap: 16px; padding: 22px 26px; }
.nx-ask__q { font-family: ui-monospace, Menlo, monospace; font-weight: 700; color: var(--nx-accent); font-size: 15px; padding-top: 2px; }
.nx-ask__item h3 { font-size: 17.5px; margin-bottom: 6px; }

/* 图标六宫格 */
.nx-grid6 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }

/* 折叠问答 */
.nx-sec--faq .nx-wrap { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 56px; align-items: start; }
.nx-sec--faq .nx-sec__head { display: block; margin: 0; }
.nx-sec--faq .nx-sec__title { margin: 14px 0; }
.nx-sec--faq .nx-sec__more { grid-column: 2; margin-top: 0; }
.nx-faq { border-top: 1px solid var(--nx-line); }
.nx-faq__item { border-bottom: 1px solid var(--nx-line); }
.nx-faq__item summary { list-style: none; display: flex; justify-content: space-between; gap: 16px; align-items: center; padding: 20px 4px; cursor: pointer; font-weight: 600; font-size: 16.5px; }
.nx-faq__item summary::-webkit-details-marker { display: none; }
.nx-faq__item summary .nx-ico { color: var(--nx-accent); transition: transform .2s; }
.nx-faq__item[open] summary .nx-ico { transform: rotate(45deg); }
.nx-faq__body { padding: 0 4px 22px; color: var(--nx-ink-2); font-size: 15px; }
.nx-faq__body .nx-textlink { margin-top: 8px; }

/* 结尾清单 */
.nx-cta { padding: 72px 0; background: var(--nx-bg); }
.nx-cta__box { display: grid; grid-template-columns: 1.1fr .9fr; gap: 40px; align-items: center; padding: 48px; border-radius: calc(var(--nx-r) + 8px); background: var(--nx-dark); color: #f6efe6; }
.nx-cta__box > div > p { margin-top: 14px; color: #cfc4b7; }
.nx-cta .nx-ticks--big li { font-size: 16px; color: #f6efe6; padding: 12px 16px; border-radius: var(--nx-r-sm); background: rgba(255, 255, 255, .06); }
.nx-cta .nx-ticks .nx-ico { color: var(--nx-g1); }

/* ---------- 列表页 ---------- */
.nx-page { padding-top: 28px; padding-bottom: 72px; }
.nx-page--narrow { max-width: calc(820px + var(--nx-gut) * 2); }
.nx-crumb { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; font-size: 13px; color: var(--nx-mute); margin-bottom: 22px; }
.nx-crumb a:hover { color: var(--nx-accent); }
.nx-crumb [aria-current] { color: var(--nx-ink-2); max-width: 32em; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.nx-crumb__sep { color: var(--nx-line); }
.nx-listhead { padding: 36px 40px; margin-bottom: 32px; border-radius: var(--nx-r); background: linear-gradient(120deg, var(--nx-cream), var(--nx-accent-soft)); display: grid; gap: 10px; justify-items: start; }
.nx-listhead__title { font-family: var(--nx-head); font-size: clamp(26px, 3.4vw, 38px); }
.nx-listhead__desc { color: var(--nx-ink-2); max-width: 46em; }
.nx-listhead .nx-search input { width: min(320px, 60vw); background: #fff; }
.nx-subcats { list-style: none; display: flex; flex-wrap: wrap; gap: 8px; }
.nx-subcats a { display: block; padding: 4px 14px; border-radius: var(--nx-pill); background: #fff; font-size: 14px; }
.nx-subcats span { color: var(--nx-mute); font-size: 12px; }
.nx-list { display: grid; }
.nx-row { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: 28px; padding: 26px 0; border-bottom: 1px solid var(--nx-line); }
.nx-row--text { grid-template-columns: minmax(0, 1fr); }
.nx-row__media { display: block; aspect-ratio: 3 / 2; border-radius: var(--nx-r-sm); overflow: hidden; }
.nx-row__media img { width: 100%; height: 100%; object-fit: cover; }
.nx-row__body { display: grid; gap: 8px; align-content: start; }
.nx-row__title { font-size: 20px; font-family: var(--nx-head); }
.nx-row__text { color: var(--nx-ink-2); font-size: 15px; }
.nx-empty { padding: 40px 0; color: var(--nx-mute); }
.nx-pager { margin-top: 36px; }
.nx-pager ul, .nx-pager { list-style: none; display: flex; flex-wrap: wrap; gap: 8px; }
.nx-pager a, .nx-pager span { display: grid; place-items: center; min-width: 42px; height: 42px; padding: 0 14px; border-radius: var(--nx-pill); border: 1px solid var(--nx-line); background: #fff; font-size: 14px; }
.nx-pager .current { background: var(--nx-dark); color: #fff; border-color: var(--nx-dark); }
.nx-linklist { list-style: none; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.nx-linklist a { display: block; padding: 14px 18px; border: 1px solid var(--nx-line); border-radius: var(--nx-r-sm); background: #fff; }

/* ---------- 文章页 ---------- */
.nx-read { display: grid; grid-template-columns: minmax(0, 1fr); gap: 48px; }
.nx-read.has-toc { grid-template-columns: minmax(0, 1fr) 260px; }
.nx-article { max-width: 780px; min-width: 0; }
.nx-article__head { display: grid; gap: 14px; justify-items: start; margin-bottom: 26px; }
.nx-article__title { font-family: var(--nx-head); font-size: clamp(28px, 3.8vw, 42px); line-height: 1.28; }
.nx-summary { margin-bottom: 26px; padding: 18px 22px; border-radius: var(--nx-r-sm); background: var(--nx-cream); border-left: 4px solid var(--nx-g2); }
.nx-summary__h { font-weight: 700; font-size: 14px; color: var(--nx-accent); margin-bottom: 4px; }
.nx-summary p:last-child { color: var(--nx-ink-2); font-size: 15.5px; }
.nx-article__cover { margin: 0 0 30px; border-radius: var(--nx-r); overflow: hidden; }
.nx-article__cover img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.nx-toc { padding: 18px 20px; border-radius: var(--nx-r-sm); border: 1px solid var(--nx-line); background: #fff; }
.nx-toc__title { font-weight: 700; font-size: 14px; margin-bottom: 8px; }
.nx-toc ol { padding-left: 1.3em; display: grid; gap: 6px; font-size: 14px; color: var(--nx-ink-2); }
.nx-toc a:hover { color: var(--nx-accent); }
.nx-toc a.is-on { color: var(--nx-accent); font-weight: 600; }
.nx-read__side .nx-toc { position: sticky; top: 96px; }
.nx-toc-inline { display: none; margin-bottom: 28px; }
.nx-prose { font-size: 17px; line-height: 1.95; color: #2a2520; overflow-wrap: anywhere; }
.nx-prose > * + * { margin-top: 1.15em; }
.nx-prose h2 { font-family: var(--nx-head); font-size: 25px; margin-top: 2.1em; padding-left: 14px; border-left: 4px solid var(--nx-g2); }
.nx-prose h3 { font-size: 20px; margin-top: 1.8em; }
.nx-prose a { color: var(--nx-accent); text-decoration: underline; text-underline-offset: 3px; }
.nx-prose ul, .nx-prose ol { padding-left: 1.4em; }
.nx-prose li + li { margin-top: .4em; }
.nx-prose blockquote { margin-left: 0; margin-right: 0; padding: 14px 20px; border-radius: var(--nx-r-sm); background: var(--nx-alt); border-left: 4px solid var(--nx-line); color: var(--nx-ink-2); }
.nx-prose img { border-radius: var(--nx-r-sm); }
.nx-prose figure { margin-left: 0; margin-right: 0; }
.nx-prose figcaption { font-size: 13px; color: var(--nx-mute); text-align: center; margin-top: 6px; }
.nx-prose table { width: 100%; border-collapse: collapse; font-size: 15px; display: block; overflow-x: auto; }
.nx-prose th, .nx-prose td { padding: 10px 12px; border: 1px solid var(--nx-line); text-align: left; }
.nx-prose th { background: var(--nx-alt); }
.nx-prose pre { overflow-x: auto; padding: 16px; border-radius: var(--nx-r-sm); background: #f4f1ec; font-size: 14px; }
.nx-prose .alignwide, .nx-prose .alignfull { max-width: 100%; }
.nx-tags { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-top: 36px; font-size: 14px; }
.nx-tags span { color: var(--nx-mute); margin-right: 4px; }
.nx-tags a { padding: 3px 12px; border-radius: var(--nx-pill); background: var(--nx-alt); border: 1px solid var(--nx-line); }
.nx-adjacent { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 36px; }
.nx-adjacent > div { padding: 16px 20px; border: 1px solid var(--nx-line); border-radius: var(--nx-r-sm); }
.nx-adjacent__next { grid-column: 2; text-align: right; }
.nx-adjacent span { display: block; font-size: 12.5px; color: var(--nx-mute); margin-bottom: 4px; }
.nx-adjacent a { font-weight: 600; }
.nx-related, .nx-comments { margin-top: 64px; padding-top: 40px; border-top: 1px solid var(--nx-line); }
.nx-block-title { font-family: var(--nx-head); font-size: 26px; margin-bottom: 24px; }
.nx-comments__list { list-style: none; display: grid; gap: 16px; }
.nx-comments__list .children { list-style: none; padding-left: 28px; margin-top: 16px; }
.nx-comments .comment-body { padding: 16px 18px; border: 1px solid var(--nx-line); border-radius: var(--nx-r-sm); }
.nx-comments .avatar { float: left; margin-right: 10px; border-radius: 50%; }
.nx-comments textarea, .nx-comments input[type="text"], .nx-comments input[type="email"], .nx-comments input[type="url"] { width: 100%; padding: 10px 12px; border: 1px solid var(--nx-line); border-radius: var(--nx-r-sm); font: inherit; }
.nx-comments .submit { padding: 10px 22px; border: 0; border-radius: var(--nx-pill); background: var(--nx-dark); color: #fff; font: inherit; cursor: pointer; }

/* ---------- 页脚 ---------- */
.nx-foot { background: #171411; color: #cfc6bb; padding: 64px 0 0; font-size: 14.5px; }
.nx-foot__grid { display: grid; grid-template-columns: 1.4fr 1fr 1.6fr 1fr; gap: 40px; padding-bottom: 48px; }
.nx-foot__name { font-family: var(--nx-head); font-size: 22px; color: #fff; margin-bottom: 12px; }
.nx-foot__h { color: #fff; font-weight: 600; margin-bottom: 14px; }
.nx-foot ul { list-style: none; display: grid; gap: 8px; }
.nx-foot a:hover { color: var(--nx-g1); }
.nx-foot__col--wide a { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.nx-foot__base { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 10px; padding-top: 22px; padding-bottom: 26px; border-top: 1px solid rgba(255, 255, 255, .1); font-size: 13px; color: #9a9086; }

/* ---------- 响应式 ---------- */
@media (max-width: 1080px) {
	.nx-nav--wide { display: none; }
	.nx-top__tools > .nx-search { display: none; }
	.nx-drawer { display: block; }
	.nx-aud { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.nx-foot__grid { grid-template-columns: 1fr 1fr; }
	.nx-read.has-toc { grid-template-columns: minmax(0, 1fr); }
	.nx-read__side { display: none; }
	.nx-toc-inline { display: block; }
	.nx-cards--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 860px) {
	:root { --nx-gut: 16px; }
	.nx-hero { padding: 44px 0 56px; }
	.nx-hero__grid, .nx-hero-band .nx-hero__grid { grid-template-columns: minmax(0, 1fr); gap: 34px; }
	.nx-hero-paper .nx-hero::before { inset: auto 0 0 0; width: 100%; height: 38%; }
	.nx-hero__media { transform: none; }
	.nx-sec, .nx-latest { padding: 56px 0; }
	.nx-sec__head, .nx-latest__head { grid-template-columns: minmax(0, 1fr); margin-bottom: 28px; }
	.nx-lead { grid-template-columns: minmax(0, 1fr); gap: 20px; }
	.nx-cards, .nx-trio, .nx-grid6 { grid-template-columns: minmax(0, 1fr); }
	.nx-cards { gap: 16px; }
	.nx-trio__item.is-pick { transform: none; margin-top: 8px; }
	.nx-vs__cols { display: none; }
	.nx-vs__row { grid-template-columns: 40px minmax(0, 1fr); gap: 8px 14px; padding: 18px; }
	.nx-vs__a { grid-column: 2; padding-left: 12px; }
	.nx-sec--steps .nx-wrap, .nx-sec--faq .nx-wrap { grid-template-columns: minmax(0, 1fr); gap: 28px; }
	.nx-sec--steps .nx-sec__head { position: static; }
	.nx-sec--steps .nx-sec__more, .nx-sec--faq .nx-sec__more { grid-column: 1; }
	.nx-steps__item { grid-template-columns: 40px minmax(0, 1fr); gap: 12px; padding: 18px; }
	.nx-steps__n { font-size: 32px; }
	.nx-ask__item { grid-template-columns: minmax(0, 1fr); gap: 4px; padding: 18px; }
	.nx-cta__box { grid-template-columns: minmax(0, 1fr); padding: 30px 22px; gap: 22px; }
	.nx-listhead { padding: 26px 20px; }
	.nx-row { grid-template-columns: 116px minmax(0, 1fr); gap: 14px; padding: 18px 0; }
	.nx-row__title { font-size: 17px; }
	.nx-row__text { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; font-size: 14px; }
	.nx-prose { font-size: 16.5px; }
	.nx-adjacent { grid-template-columns: minmax(0, 1fr); }
	.nx-adjacent__next { grid-column: 1; text-align: left; }
	.nx-linklist { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 560px) {
	.nx-aud, .nx-cards--4, .nx-foot__grid { grid-template-columns: minmax(0, 1fr); }
	.nx-brand__name { max-width: 9em; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
	.nx-hero__btns .nx-btn { flex: 1 1 auto; justify-content: center; }
	.nx-card { padding: 18px; }
	.nx-rail { grid-auto-columns: 78%; }
}
@media print {
	.nx-top, .nx-foot, .nx-read__side, .nx-related, .nx-comments, .nx-adjacent { display: none; }
}
