/* ==========================================================================
   哲学辞典 — 共有スタイル
   本棚(sites/<author>/<lang>)と同系の明朝＋温白背景。辞典は「調べ物の場」なので
   販売色を出さず、可読性と参照しやすさを優先する。
   ========================================================================== */

:root {
  color-scheme: light;
  --bg: #fdfdfa;
  --ink: #222;
  --ink-soft: #444;
  --meta: #777;
  --line: #ccc;
  --line-soft: #ddd;
  --line-faint: #e8e8e2;
  --indigo: #1a4a7a;
  --indigo-deep: #143a61;
  --indigo-wash: #f2f5f8;
  --amber: #b45309;
  --amber-wash: #faf6ee;
  --gold: #9a7b2d;
  --measure: 46rem;
  font-family: "Hiragino Mincho ProN", "Yu Mincho", "YuMincho", "Noto Serif JP", serif;
}

* { box-sizing: border-box; }

body {
  margin: 0;
  line-height: 1.9;
  color: var(--ink);
  background: var(--bg);
  font-feature-settings: "palt";
}

.wrap { max-width: var(--measure); margin: 0 auto; padding: 0 1.2rem; }

a { color: var(--indigo); text-decoration: none; }
a:hover { text-decoration: underline; }

/* ---- ヘッダー / パンくず ---------------------------------------------- */

header.site { border-bottom: 1px solid var(--line); background: #fff; }
header.site .wrap { display: flex; align-items: baseline; gap: .8em; flex-wrap: wrap; padding-top: .9rem; padding-bottom: .9rem; }
header.site .brand { margin: 0; font-size: 1.05rem; letter-spacing: .08em; }
header.site .brand a { color: var(--ink); }
header.site .tagline { font-size: .78rem; color: var(--meta); }

.breadcrumb { font-size: .8rem; color: var(--meta); margin: 1.2rem 0 .4rem; }
.breadcrumb a { color: var(--meta); }
.breadcrumb .sep { margin: 0 .4em; color: var(--line); }

/* ---- 見出し語ブロック --------------------------------------------------- */

.entry-head { border-bottom: 2px solid var(--line-faint); padding-bottom: 1.2rem; margin-bottom: 1.6rem; }
.entry-head h1 { font-size: 2.1rem; margin: .2em 0 .1em; letter-spacing: .04em; }
.entry-head .yomi { font-size: .9rem; color: var(--meta); margin: 0 0 .8em; letter-spacing: .12em; }

dl.term-meta { display: grid; grid-template-columns: 7.5em 1fr; gap: .35em .9em; margin: 0 0 1.1em; font-size: .92rem; }
dl.term-meta dt { color: var(--meta); font-size: .82rem; letter-spacing: .06em; }
dl.term-meta dd { margin: 0; }
dl.term-meta .orig { font-family: Georgia, "Times New Roman", serif; font-style: italic; }

.nutshell { background: var(--indigo-wash); border-left: 3px solid var(--indigo); padding: .9em 1.1em; margin: 0; border-radius: 0 4px 4px 0; }
.nutshell strong { display: block; font-size: .78rem; letter-spacing: .1em; color: var(--indigo-deep); margin-bottom: .3em; }
.nutshell p { margin: 0; }

/* ---- 本文セクション ----------------------------------------------------- */

main { padding-bottom: 4rem; }
section.block { margin: 2.4rem 0; }
section.block > h2 {
  font-size: 1.12rem; letter-spacing: .06em; border-bottom: 1px solid var(--line-soft);
  padding-bottom: .3em; margin-bottom: .9em; display: flex; align-items: baseline; gap: .6em;
}
section.block > h2 .en { font-size: .66rem; color: var(--meta); letter-spacing: .16em; font-weight: normal; }
section.block h3 { font-size: .98rem; margin: 1.4em 0 .4em; color: var(--ink-soft); }
p { margin: 0 0 1em; }

blockquote.source-quote {
  margin: 1em 0; padding: .8em 1.1em; background: #fff;
  border: 1px solid var(--line-faint); border-left: 3px solid var(--gold); border-radius: 0 4px 4px 0;
}
blockquote.source-quote p { margin: 0 0 .5em; }
blockquote.source-quote .de { font-family: Georgia, "Times New Roman", serif; font-size: .92rem; color: var(--ink-soft); }
blockquote.source-quote cite { display: block; font-size: .78rem; color: var(--meta); font-style: normal; }

/* ---- 出典 --------------------------------------------------------------- */

dl.source { margin: 0; display: grid; grid-template-columns: 8.5em 1fr; gap: .45em .9em; font-size: .94rem; }
dl.source dt { color: var(--meta); font-size: .82rem; letter-spacing: .06em; }
dl.source dd { margin: 0; }

ul.editions { list-style: none; padding: 0; margin: .6em 0 0; font-size: .92rem; }
ul.editions li { padding: .4em 0; border-bottom: 1px solid var(--line-faint); }
ul.editions li:last-child { border-bottom: none; }
ul.editions .yakusha { color: var(--meta); font-size: .84rem; margin-left: .4em; }

/* ---- 表(誤解・関連語) --------------------------------------------------- */

.table-scroll { overflow-x: auto; }
table.compare { border-collapse: collapse; width: 100%; font-size: .9rem; }
table.compare th, table.compare td { border: 1px solid var(--line-faint); padding: .55em .7em; text-align: left; vertical-align: top; }
table.compare th { background: #fff; color: var(--meta); font-weight: normal; font-size: .82rem; letter-spacing: .05em; }
table.compare td.term { white-space: nowrap; }

/* ---- 関連語 ------------------------------------------------------------- */

ul.related { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr)); gap: .1em .9em; }
ul.related li { padding: .5em .1em; border-bottom: 1px solid var(--line-faint); font-size: .93rem; }
ul.related .de { font-family: Georgia, serif; font-style: italic; color: var(--meta); font-size: .84rem; margin-left: .3em; }
ul.related .pending { color: var(--meta); }
ul.related .pending::after { content: "（項目準備中）"; font-size: .74rem; color: var(--line); margin-left: .3em; }

/* ---- 本棚への導線 ------------------------------------------------------- */

.shelf-band { background: var(--amber-wash); border: 1px solid #eadfc8; border-radius: 6px; padding: 1.1em 1.2em; }
.shelf-band h2 { border: none; margin: 0 0 .2em; font-size: 1.05rem; }
.shelf-band .lede { font-size: .88rem; color: var(--ink-soft); margin-bottom: .9em; }
ul.shelf-links { list-style: none; padding: 0; margin: 0; }
ul.shelf-links li { padding: .5em 0; border-top: 1px solid #eadfc8; }
ul.shelf-links li:first-child { border-top: none; }
ul.shelf-links .role { display: inline-block; font-size: .7rem; letter-spacing: .08em; color: var(--amber); border: 1px solid #e3d3b3; border-radius: 3px; padding: .05em .5em; margin-right: .6em; background: #fff; }
ul.shelf-links .note { display: block; font-size: .82rem; color: var(--meta); margin-top: .15em; }

/* ---- 索引(辞典トップ) --------------------------------------------------- */

.dict-hero { padding: 2rem 0 1.2rem; border-bottom: 2px solid var(--line-faint); margin-bottom: 1.4rem; }
.dict-hero h1 { font-size: 1.9rem; margin: .1em 0 .3em; letter-spacing: .06em; }
.dict-hero p { color: var(--ink-soft); margin: 0; }
.dict-count { font-size: .8rem; color: var(--meta); margin-top: .8em; }

.gojuon-group { margin: 1.8rem 0; }
.gojuon-group h2 { font-size: .95rem; letter-spacing: .1em; color: var(--meta); border-bottom: 1px solid var(--line-soft); padding-bottom: .25em; margin-bottom: .5em; }
ul.entry-list { list-style: none; padding: 0; margin: 0; }
ul.entry-list li { padding: .75em .2em; border-bottom: 1px solid var(--line-faint); }
ul.entry-list .head { font-size: 1.02rem; }
ul.entry-list .yomi { font-size: .78rem; color: var(--meta); margin-left: .5em; letter-spacing: .08em; }
ul.entry-list .orig { font-family: Georgia, serif; font-style: italic; color: var(--meta); font-size: .84rem; margin-left: .5em; }
ul.entry-list .gloss { display: block; font-size: .87rem; color: var(--ink-soft); margin-top: .15em; }

/* ---- フッター ----------------------------------------------------------- */

footer.site { border-top: 1px solid var(--line); margin-top: 3rem; padding: 1.2rem 0 3rem; font-size: .82rem; color: var(--meta); background: #fff; }
footer.site nav { margin: .5em 0; display: flex; gap: 1.2em; flex-wrap: wrap; }
footer.site a { color: var(--meta); }
footer.site .copy { margin: .6em 0 0; font-size: .76rem; }

@media (max-width: 30rem) {
  .entry-head h1 { font-size: 1.7rem; }
  dl.term-meta, dl.source { grid-template-columns: 1fr; gap: .1em; }
  dl.term-meta dt, dl.source dt { margin-top: .5em; }
}
