/* 解説ページ（/learn/）のスタイル。共通の色・ヘッダーは /legal/legal.css を使う */
.learn { max-width: 820px; margin: 0 auto; padding: 24px 16px 40px; }
.learn h1 { font-size: 28px; line-height: 1.4; margin: 8px 0 12px; }
.learn h2 { font-size: 20px; margin: 32px 0 8px; padding-left: 10px; border-left: 4px solid var(--primary); }
.learn p { margin: 0 0 14px; }
.learn .lead { font-size: 16px; color: var(--muted); }
.learn .crumbs { font-size: 13px; color: var(--muted); }
.learn .crumbs a { color: var(--muted); }
.learn .meta { font-size: 13px; color: var(--muted); margin-top: 28px; }
.facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 8px; margin: 20px 0 8px; }
.facts div { background: var(--card); border: 1px solid var(--line); border-radius: 10px; padding: 10px 14px; }
.facts dt { font-size: 12px; color: var(--muted); }
.facts dd { margin: 2px 0 0; font-weight: 700; }
.cta { margin: 36px 0 0; padding: 18px; background: var(--primary-soft); border-radius: 12px; text-align: center; }
.cta .btn {
  display: inline-block; background: var(--primary); color: #fff; text-decoration: none; font-weight: 700;
  padding: 10px 24px; border-radius: 999px;
}
.learn-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.learn-list a {
  display: block; background: var(--card); border: 1px solid var(--line); border-radius: 12px; padding: 12px 16px;
  text-decoration: none; color: var(--ink);
}
.learn-list strong { display: block; color: var(--primary); }
.learn-list span { font-size: 14px; color: var(--muted); }
.learn .ad-slot { margin: 32px 0 0; text-align: center; }
.learn .ad-label { display: block; font-size: 11px; color: var(--muted); margin-bottom: 4px; }
.learn-footer { max-width: 820px; margin: 0 auto; padding: 16px; border-top: 1px solid var(--line); font-size: 13px; color: var(--muted); }
.learn-footer nav { display: flex; flex-wrap: wrap; gap: 6px 16px; margin-bottom: 8px; }
.learn .ad-slot[hidden] { display: none; }

/* 数字のカード（都道府県）：面積・人口は大きな数字と、順位（数字だけ大きく）。learn/render.mjs の prefStatsHtml */
:root { --primary-dark: #214f3b; }
.stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px; margin: 20px 0 8px; }
.stat { background: var(--card); border: 1px solid var(--line); border-radius: 14px; padding: 12px 14px; display: flex; flex-direction: column; }
.stat-label { font-size: 12px; font-weight: 700; color: var(--muted); letter-spacing: 0.04em; }
.stat-value { margin-top: 2px; line-height: 1.1; color: var(--primary); font-weight: 700; display: flex; align-items: baseline; gap: 3px; flex-wrap: wrap; }
.stat-value b { font-size: 34px; letter-spacing: -0.01em; }
.stat-value span { font-size: 14px; font-weight: 500; color: var(--ink); }
.stat-rank { margin-top: 8px; padding-top: 8px; border-top: 1px dashed var(--line); display: flex; align-items: baseline; gap: 1px; font-size: 13px; color: var(--muted); }
.stat-rank b { font-size: 30px; line-height: 1; color: var(--primary-dark); font-weight: 700; margin-right: 1px; }
.stat-rank em { font-style: normal; font-weight: 500; }
.stat-note { margin-top: 6px; font-size: 11px; color: var(--muted); line-height: 1.4; }
.stat-sub { margin-top: 8px; padding-top: 8px; border-top: 1px dashed var(--line); font-size: 13px; color: var(--muted); }
.stats-src { font-size: 11px; color: var(--muted); line-height: 1.5; margin: 0 0 16px; }
@media (max-width: 520px) {
  .stats { grid-template-columns: 1fr 1fr; }
  .stat:last-child:nth-child(odd) { grid-column: 1 / -1; }
}

/* 位置を示す地図（learn/maps.mjs）。土台の SVG（/learn/map-*.svg）の上に、緑の部分を重ねる */
.loc-map { margin: 8px auto 18px; max-width: 540px; }
.loc-map svg { display: block; width: 100%; height: auto; border-radius: 14px; border: 1px solid var(--line); background: #e1eef5; }
.loc-map figcaption { margin-top: 6px; text-align: center; font-size: 12px; color: var(--muted); }
