/* ============================================================
 * 小学题 · 墨纸风全局样式
 * 纸白 #FAF9F6 / 墨色 #1F1F1F / 灰阶线条 / 红笔红 #B3402A（仅三处：
 * 下载按钮、"免费"标记、logo 印章）。内容插图保持彩色，本文件不做任何灰度化。
 * ============================================================ */

:root {
    --xt-paper: #FAF9F6;
    --xt-ink: #1F1F1F;
    --xt-ink-soft: #3D3D3A;
    --xt-gray: #75726A;
    --xt-line: #DDD8CE;
    --xt-line-dark: #B9B3A6;
    --xt-red: #B3402A;
    --xt-red-dark: #94321F;
    --xt-serif: "Noto Serif SC", "Songti SC", "STSong", "SimSun", serif;
    --xt-sans: "Noto Sans SC", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
}

/* ---------- 全局基调 ---------- */
body {
    background-color: var(--xt-paper);
    color: var(--xt-ink);
    font-family: var(--xt-sans);
}

h1, h2, h3, h4,
.entry-title, .page-title {
    font-family: var(--xt-serif);
    color: var(--xt-ink);
    letter-spacing: 0.02em;
}

body a { color: var(--xt-ink); }
body a:hover, body a:focus { color: var(--xt-ink); text-decoration: underline; text-underline-offset: 3px; }

/* ---------- GeneratePress 页眉 / 页脚墨色化 ---------- */
.site-header {
    background-color: var(--xt-paper);
    border-bottom: 2px solid var(--xt-ink);
}
.site-header .site-logo, .site-header .site-branding { color: var(--xt-ink); }
.site-header .main-title, .site-header .main-title a {
    font-family: var(--xt-serif);
    color: var(--xt-ink);
}
/* logo 旁的印章感：站点名首字用红底白字小方块（仅当标题为纯文本时视觉点缀） */
.site-header .main-title a::after {
    content: "题";
    display: inline-block;
    margin-left: 0.45em;
    padding: 0.05em 0.18em;
    background: var(--xt-red);
    color: var(--xt-paper);
    font-size: 0.55em;
    line-height: 1.3;
    vertical-align: 0.35em;
    border-radius: 2px;
}
.main-navigation, .main-navigation ul ul {
    background-color: var(--xt-paper);
    border-bottom: 1px solid var(--xt-line);
}
.main-navigation .main-nav ul li a { color: var(--xt-ink-soft); font-size: 15px; }
.main-navigation .main-nav ul li:hover > a,
.main-navigation .main-nav ul li.current-menu-item > a, .main-navigation .main-nav ul li.current_page_item > a { color: var(--xt-ink) !important; text-decoration: underline; text-underline-offset: 4px; }

.site-footer, .site-info {
    background-color: var(--xt-paper);
    color: var(--xt-gray);
    border-top: 1px solid var(--xt-line-dark);
}
.site-footer a, .site-info a { color: var(--xt-ink-soft); }

/* 内容区纸面感 */
.site-content .content-area, .inside-article, .page-header {
    background-color: transparent;
}
.separate-containers .inside-article,
.separate-containers .page-header {
    background-color: #FFFFFF;
    border: 1px solid var(--xt-line);
}

/* ---------- Echo KB 覆盖 ---------- */
#epkb-main-page-container,
.epkb-main-page-container,
#eckb-article-content,
.eckb-article-content {
    font-family: var(--xt-sans);
    color: var(--xt-ink);
}
#epkb-main-page-container h1,
#epkb-main-page-container h2,
#epkb-main-page-container h3,
.epkb-main-page-container h2,
.eckb-article-content h1,
.eckb-article-content h2,
.eckb-article-content h3 {
    font-family: var(--xt-serif);
    color: var(--xt-ink);
}
/* KB 搜索框：纸面 + 墨线 + 宋体标题 */
.epkb-doc-search-container,
.eckb-search-box {
    background-color: var(--xt-paper) !important;
    border: 1px solid var(--xt-line);
}
.epkb-doc-search-container h1,
.epkb-doc-search-container h2 { color: var(--xt-ink) !important; }
#epkb-main-page-container input[type="text"],
#epkb-main-page-container input[type="search"],
.eckb-search-box input {
    border: 1px solid var(--xt-line-dark);
    background: #FFFFFF;
    color: var(--xt-ink);
}
/* KB 分类与文章列表 */
.epkb-category-container, .epkb-articles-container { border-color: var(--xt-line); }
.epkb-category-container h2, .epkb-category-level-1 > li > a { color: var(--xt-ink); }
#epkb-main-page-container a, .epkb-main-page-container a { color: var(--xt-ink-soft); }
#epkb-main-page-container a:hover, .epkb-main-page-container a:hover { color: var(--xt-ink); }
/* 面包屑 */
.eckb-breadcrumb, .epkb-breadcrumb, #eckb-breadcrumb {
    color: var(--xt-gray);
    font-size: 13px;
    border-bottom: 1px solid var(--xt-line);
}
.eckb-breadcrumb a, .epkb-breadcrumb a { color: var(--xt-gray); }

/* ---------- 下载按钮：红笔红（全站唯一彩色之一） ---------- */
.wpdm-download-link,
a.wpdm-download-link,
.wpdm-btn,
a.wdm-download-link,
.wpdm-link-tpl .download-link,
.entry-content a.wpdm-download-link {
    display: inline-block;
    background-color: var(--xt-red) !important;
    border: 1px solid var(--xt-red-dark) !important;
    color: #FFFFFF !important;
    font-weight: 700;
    padding: 0.55em 1.6em;
    border-radius: 3px;
    text-decoration: none !important;
}
.wpdm-download-link:hover, a.wpdm-download-link:hover,
.wpdm-btn:hover, a.wdm-download-link:hover {
    background-color: var(--xt-red-dark) !important;
    color: #FFFFFF !important;
}
/* 文章内指向 PDF 的普通链接也给红笔红（区别于正文黑链） */
.eckb-article-content a[href$=".pdf"],
.epkb-article-content a[href$=".pdf"],
.type-epkb_post_type_1 .entry-content a[href$=".pdf"] {
    color: var(--xt-red);
    font-weight: 700;
}

/* ============================================================
 * 首页短代码 [xt_home]
 * ============================================================ */
.xt-home { max-width: 880px; margin: 0 auto; }

/* 首屏 */
/* 首页首屏再压紧：主题文章容器与主栏在首页的顶距清零，首屏贴到页眉下方 */
body.home .inside-article { padding-top: 0; }
body.home .site-main { margin-top: 0; }
.xt-hero {
    text-align: center;
    padding: 0 1em 1.8em;
    border-bottom: 2px solid var(--xt-ink);
    margin-bottom: 2em;
}
.xt-hero-seal {
    display: inline-block;
    background: var(--xt-red);
    color: var(--xt-paper);
    font-family: var(--xt-serif);
    font-weight: 700;
    font-size: 15px;
    letter-spacing: 0.35em;
    padding: 0.35em 0.6em 0.35em 0.95em;
    border-radius: 2px;
    margin: 0 0 1em;
}
.xt-hero-title {
    font-size: 28px;
    line-height: 1.55;
    margin: 0 0 0.5em;
}
.xt-hero-title .xt-free { color: var(--xt-red); }
.xt-hero-sub { color: var(--xt-gray); font-size: 15px; margin: 0 0 1.4em; }
.xt-search {
    display: flex;
    max-width: 560px;
    margin: 0 auto;
    border: 1px solid var(--xt-ink);
    background: #FFFFFF;
}
.xt-search-label {
    position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0);
}
.xt-search-input {
    flex: 1;
    border: none;
    padding: 0.8em 1em;
    font-size: 16px;
    background: transparent;
    color: var(--xt-ink);
}
.xt-search-input:focus { outline: 2px solid var(--xt-line-dark); outline-offset: -2px; }
.xt-search-btn {
    border: none;
    background: var(--xt-ink);
    color: var(--xt-paper);
    font-size: 16px;
    padding: 0 1.4em;
    cursor: pointer;
}
.xt-search-btn:hover { background: var(--xt-ink-soft); }

/* 区块通用 */
.xt-section { margin-bottom: 2.4em; }
.xt-section-title {
    font-size: 21px;
    border-bottom: 1px solid var(--xt-ink);
    padding-bottom: 0.35em;
    margin: 0 0 0.7em;
}
.xt-empty { color: var(--xt-gray); font-size: 14px; }
.xt-more { text-align: right; font-size: 14px; margin: 0.4em 0 0; }
.xt-more a { color: var(--xt-ink-soft); }

/* 年级矩阵 */
.xt-matrix { width: 100%; border-collapse: collapse; font-size: 15px; }
.xt-matrix th, .xt-matrix td {
    border: 1px solid var(--xt-line);
    padding: 0.55em 0.6em;
    text-align: center;
}
.xt-matrix thead th {
    font-family: var(--xt-serif);
    background: #F1EEE6;
    font-weight: 700;
}
.xt-matrix tbody th {
    font-family: var(--xt-serif);
    font-weight: 700;
    white-space: nowrap;
    background: #FBFAF7;
}
.xt-matrix td a { display: block; text-decoration: none; }
.xt-matrix td a:hover { color: var(--xt-red); text-decoration: underline; text-underline-offset: 3px; }
.xt-matrix-count { color: var(--xt-gray); font-size: 12px; margin-left: 0.4em; }
.xt-matrix-none { color: var(--xt-line-dark); }

/* 文章列表（首页与相关文章共用） */
.xt-list { list-style: none; margin: 0; padding: 0; }
.xt-list-item {
    padding: 0.5em 0.2em;
    border-bottom: 1px dotted var(--xt-line);
    font-size: 15.5px;
    line-height: 1.5;
}
.xt-list-title { text-decoration: none; }
.xt-list-title:hover { text-decoration: underline; text-underline-offset: 3px; }
.xt-list-date { color: var(--xt-gray); font-size: 13px; margin-left: 0.6em; white-space: nowrap; }

/* 标记：PDF 灰标 / 附答案 红字 */
.xt-badges { white-space: nowrap; }
.xt-badge {
    display: inline-block;
    font-size: 11px;
    line-height: 1.5;
    padding: 0 0.45em;
    border: 1px solid var(--xt-line-dark);
    color: var(--xt-gray);
    border-radius: 2px;
    vertical-align: 0.15em;
}
.xt-badge-ans { color: var(--xt-red); border-color: var(--xt-red); }

/* 小程序预留位 */
.xt-miniapp { border: 1px dashed var(--xt-line-dark); padding: 1em 1.2em; }
.xt-miniapp-tip { color: var(--xt-gray); margin: 0; }

/* ============================================================
 * 文章页 / 栏目页互链模块
 * ============================================================ */
.xt-article-links {
    margin-top: 2.5em;
    border-top: 2px solid var(--xt-ink);
    padding-top: 1.2em;
}
.xt-rel { margin-bottom: 1.6em; }
.xt-rel-heading {
    font-family: var(--xt-serif);
    font-weight: 700;
    font-size: 17px;
    margin: 0 0 0.5em;
}
.xt-prevnext { display: flex; flex-wrap: wrap; gap: 0.6em 2em; font-size: 15px; }
.xt-prevnext a { text-decoration: none; }
.xt-prevnext a:hover { text-decoration: underline; text-underline-offset: 3px; }
.xt-rel-term-list {
    list-style: none;
    margin: 0; padding: 0;
    display: flex; flex-wrap: wrap; gap: 0.5em;
}
.xt-rel-term-list a {
    display: inline-block;
    border: 1px solid var(--xt-line-dark);
    padding: 0.3em 0.9em;
    border-radius: 2px;
    text-decoration: none;
    font-size: 14px;
    background: #FFFFFF;
}
.xt-rel-term-list a:hover { border-color: var(--xt-ink); color: var(--xt-ink); }
.xt-category-links {
    max-width: 880px;
    margin: 1.5em auto;
    padding: 0 1em;
}

/* ============================================================
 * 页脚菜单（插件注入，位于版权栏内、版权文字上方）
 * ============================================================ */
.xt-footer-menu {
    max-width: 880px;
    margin: 0 auto;
    padding: 0.9em 1em 0.3em;
    text-align: center;
}
.xt-footer-menu ul {
    list-style: none;
    margin: 0; padding: 0;
    display: flex; flex-wrap: wrap;
    justify-content: center;
    gap: 0.3em 2em;
}
.xt-footer-menu a {
    color: var(--xt-ink-soft);
    font-size: 14.5px;
    text-decoration: none;
}
.xt-footer-menu a:hover, .xt-footer-menu a:focus {
    color: var(--xt-ink);
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* ============================================================
 * 首页右边栏两块（教育知识 / 热门学习资料，仅首页由插件替换生成）
 * ============================================================ */
.xt-side-block {
    background: #FFFFFF;
    border: 1px solid var(--xt-line);
    margin-bottom: 24px;
}
.xt-side-title {
    font-family: var(--xt-serif);
    font-size: 18px;
    color: var(--xt-ink);
    border-bottom: 1px solid var(--xt-ink);
    padding-bottom: 0.35em;
    margin: 0 0 0.6em;
}
.xt-side-note {
    font-family: var(--xt-sans);
    font-size: 12px;
    color: var(--xt-gray);
    margin-left: 0.6em;
    font-weight: 400;
}
.xt-side-list { list-style: none; margin: 0; padding: 0; }
.xt-side-list li {
    padding: 0.45em 0.1em;
    border-bottom: 1px dotted var(--xt-line);
    font-size: 14.5px;
    line-height: 1.45;
}
.xt-side-list li:last-child { border-bottom: none; }
.xt-side-list a { text-decoration: none; color: var(--xt-ink-soft); }
.xt-side-list a:hover { color: var(--xt-ink); text-decoration: underline; text-underline-offset: 3px; }
.xt-side-more { text-align: right; font-size: 13.5px; margin: 0.6em 0 0; }
.xt-side-more a { color: var(--xt-ink-soft); text-decoration: none; }
.xt-side-more a:hover { color: var(--xt-ink); text-decoration: underline; text-underline-offset: 3px; }
.xt-side-hot { list-style: none; margin: 0; padding: 0; counter-reset: none; }
.xt-side-hot li {
    display: flex;
    align-items: flex-start;
    gap: 0.55em;
    padding: 0.45em 0.1em;
    border-bottom: 1px dotted var(--xt-line);
    font-size: 14.5px;
    line-height: 1.45;
}
.xt-side-hot li:last-child { border-bottom: none; }
.xt-rank {
    flex: 0 0 auto;
    min-width: 1.35em;
    text-align: center;
    font-size: 12.5px;
    line-height: 1.5;
    color: var(--xt-gray);
    border: 1px solid var(--xt-line-dark);
    border-radius: 2px;
    margin-top: 0.15em;
}
.xt-rank-top { color: var(--xt-red); border-color: var(--xt-red); font-weight: 700; }
.xt-side-hot a { text-decoration: none; color: var(--xt-ink-soft); }
.xt-side-hot a:hover { color: var(--xt-ink); text-decoration: underline; text-underline-offset: 3px; }

/* ---------- 移动端 ---------- */
@media (max-width: 640px) {
    .xt-hero { padding: 0 0.4em 1.2em; }
    .xt-hero-title { font-size: 22px; }
    .xt-matrix { font-size: 13.5px; }
    .xt-matrix th, .xt-matrix td { padding: 0.45em 0.3em; }
    .xt-list-item { font-size: 15px; }
    .xt-list-date { display: none; } /* 窄屏先保标题完整，日期让位 */
    .xt-search-btn { padding: 0 1em; white-space: nowrap; }
}

/* ============================================================
 * 在线口算练习工具（短代码 [xt_lianxi]，/kousuan-lianxi/ 页）
 * 墨纸风：纸面卡片、宋体标题；红笔红只用于批改标记与得分。
 * ============================================================ */
.xtlx { border: 1.5px solid var(--xt-ink); background: #FFF; padding: 1.2em 1.2em 1.4em; margin: 1em 0 1.6em; }
.xtlx-row { margin-bottom: 0.9em; }
.xtlx-label { display: block; font-family: var(--xt-serif); font-weight: 700; font-size: 16px; margin-bottom: 0.45em; }
.xtlx-chips { display: flex; flex-wrap: wrap; gap: 0.45em; align-items: center; }
.xtlx-chip { font-family: var(--xt-sans); font-size: 15px; padding: 0.38em 0.9em; border: 1px solid var(--xt-line-dark); border-radius: 999px; background: var(--xt-paper); color: var(--xt-ink-soft); cursor: pointer; }
.xtlx-chip:hover { border-color: var(--xt-ink); }
.xtlx-chip.on { background: var(--xt-ink); border-color: var(--xt-ink); color: var(--xt-paper); }
.xtlx-count-input { width: 74px; font-size: 15px; padding: 0.38em 0.5em; border: 1px solid var(--xt-line-dark); border-radius: 999px; background: var(--xt-paper); color: var(--xt-ink); text-align: center; }
.xtlx-btn { font-family: var(--xt-sans); font-size: 16px; font-weight: 700; padding: 0.55em 1.6em; border: 1.5px solid var(--xt-ink); border-radius: 999px; background: var(--xt-ink); color: var(--xt-paper); cursor: pointer; }
.xtlx-btn:hover { background: var(--xt-ink-soft); }
.xtlx-btn:disabled { opacity: 0.45; cursor: default; }
.xtlx-btn.xtlx-ghost { background: transparent; color: var(--xt-ink); }
.xtlx-btn.xtlx-ghost:hover { background: var(--xt-paper); }
.xtlx-start { display: block; margin: 0.4em auto 0; font-size: 18px; padding: 0.65em 2.2em; }
.xtlx-status { display: flex; justify-content: space-between; align-items: baseline; border-bottom: 1px solid var(--xt-line); padding-bottom: 0.5em; margin-bottom: 0.9em; font-size: 15px; color: var(--xt-ink-soft); }
.xtlx-timer { font-family: var(--xt-serif); font-size: 20px; font-weight: 700; color: var(--xt-ink); }
.xtlx-qs { display: grid; grid-template-columns: 1fr 1fr; gap: 0.55em 2em; }
.xtlx-q { display: flex; align-items: baseline; gap: 0.35em; font-size: 20px; }
.xtlx-qno { color: var(--xt-gray); font-size: 15px; min-width: 2em; }
.xtlx-qtext { font-family: var(--xt-serif); letter-spacing: 0.03em; white-space: nowrap; }
.xtlx-inp { width: 92px; font-size: 20px; padding: 0.12em 0.35em; border: none; border-bottom: 1.5px solid var(--xt-line-dark); background: transparent; color: var(--xt-ink); text-align: center; }
.xtlx-inp:focus { outline: none; border-bottom-color: var(--xt-ink); }
.xtlx-q.bad .xtlx-inp { border-bottom-color: var(--xt-red); color: var(--xt-red); }
.xtlx-mark { font-size: 14px; color: var(--xt-red); white-space: nowrap; }
/* 传统分数显示：分子在上、分母在下、中间一横（纯 CSS，不用图片） */
.xtlx-frac { display: inline-block; vertical-align: middle; text-align: center; font-size: 0.72em; line-height: 1.2; margin: 0 0.1em; }
.xtlx-frac .xtlx-fnum { display: block; padding: 0 0.2em; }
.xtlx-frac .xtlx-fden { display: block; border-top: 1.5px solid var(--xt-ink); padding: 0 0.2em; }
.xtlx-mark .xtlx-frac { font-size: 0.85em; }
.xtlx-mark .xtlx-frac .xtlx-fden { border-top-color: var(--xt-red); }
/* 分数题的答案框也是上下结构：上面分子、下面分母、中间一横 */
.xtlx-q { align-items: center; }
.xtlx-ansfrac { display: inline-flex; flex-direction: column; vertical-align: middle; width: 72px; }
.xtlx-ansfrac .xtlx-inp { width: 100%; font-size: 17px; border-bottom: none; padding: 0.1em 0.2em; }
.xtlx-ansfrac:focus-within { outline: 1.5px solid var(--xt-ink); outline-offset: 1px; }
.xtlx-ansline { display: block; border-top: 1.5px solid var(--xt-ink); }
.xtlx-q.bad .xtlx-ansfrac .xtlx-inp { color: var(--xt-red); }
.xtlx-q.bad .xtlx-ansline { border-top-color: var(--xt-red); }
.xtlx-q.ok .xtlx-mark { font-size: 17px; font-weight: 700; }
.xtlx-actions { margin-top: 1.1em; text-align: center; }
.xtlx-actions .xtlx-btn + .xtlx-btn { margin-left: 0.5em; }
.xtlx-result { border-top: 1px solid var(--xt-line); margin-top: 1.2em; padding-top: 1em; text-align: center; }
.xtlx-score { font-family: var(--xt-serif); font-size: 20px; }
.xtlx-score b { color: var(--xt-red); font-size: 40px; padding: 0 0.08em; }
.xtlx-stats { color: var(--xt-ink-soft); font-size: 15px; margin: 0.3em 0 0.9em; }
.xtlx-result-btns { display: flex; flex-wrap: wrap; gap: 0.5em; justify-content: center; }
.xtlx-rec { margin-top: 1em; font-size: 15px; color: var(--xt-ink-soft); }
.xtlx-rec a { color: var(--xt-red); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.xtlx-grade-links { font-size: 15px; color: var(--xt-ink-soft); }
.xtlx-grade-links a { text-decoration: underline; text-underline-offset: 3px; }
.xtlx-print { display: none; }
@media (max-width: 640px) {
    .xtlx { padding: 1em 0.8em 1.2em; }
    .xtlx-qs { grid-template-columns: 1fr; }
    .xtlx-q { font-size: 21px; }
    .xtlx-inp { width: 100px; }
}
@media print {
    body * { visibility: hidden; }
    .xtlx-print, .xtlx-print * { visibility: visible; }
    .xtlx-print { display: block; position: absolute; top: 0; left: 0; width: 100%; color: #000; }
    .xtlx-psheet h2 { font-family: var(--xt-serif); font-size: 22px; text-align: center; margin: 0 0 0.4em; }
    .xtlx-pmeta { text-align: center; font-size: 14px; margin-bottom: 1.2em; }
    .xtlx-pqs { display: grid; grid-template-columns: 1fr 1fr; gap: 1.1em 3em; font-size: 19px; }
    .xtlx-pq span { color: #444; font-size: 14px; margin-right: 0.4em; }
    .xtlx-pfoot { margin-top: 2em; text-align: center; font-size: 12px; color: #666; }
    .xtlx-panswers { page-break-before: always; margin-top: 0; }
    .xtlx-pa { display: inline-block; margin: 0.35em 1.2em 0.35em 0; font-size: 16px; }
}

/* ---------- 首页「在线口算练习」入口块 ---------- */
.xt-tool-entry { display: flex; align-items: center; justify-content: space-between; gap: 1em; border: 1.5px solid var(--xt-ink); background: #FFF; padding: 1em 1.2em; margin: 0 0 1.6em; }
.xt-tool-entry-title { font-family: var(--xt-serif); font-size: 21px; margin: 0 0 0.25em; }
.xt-tool-entry-sub { color: var(--xt-gray); font-size: 14.5px; margin: 0; }
.xt-tool-entry-btn { flex: none; font-size: 16px; font-weight: 700; padding: 0.55em 1.5em; border-radius: 999px; background: var(--xt-ink); color: var(--xt-paper) !important; text-decoration: none !important; }
.xt-tool-entry-btn:hover { background: var(--xt-ink-soft); }
@media (max-width: 640px) {
    .xt-tool-entry { flex-direction: column; align-items: stretch; text-align: center; }
    .xt-tool-entry-btn { text-align: center; }
}

/* 文章页文末互链里的入口块：与上下模块留出间距 */
.xt-article-links .xt-tool-entry { margin: 1.3em 0; }
