/* subsidy-db 公開サイト
   トークン設計「通帳と印鑑」: 青磁がかった紙 / 墨鉄 / 通帳の深緑（=金額専用） / 朱印。
   ※生成り地+琥珀系はAI生成デザインの頻出パターンのため不採用（v2で刷新） */
:root {
  --bg: #F2F5F3;         /* 青磁がかった紙: 涼しく、生成りを避ける */
  --ink: #212B2E;        /* 墨鉄: わずかに青緑を含む墨色 */
  --ink-soft: #55636A;
  --line: #DBE1DE;
  --yamabuki: #17694C;   /* 通帳の深緑: 金額専用色（紙幣・銀行の色）。他用途に使わない */
  --yamabuki-pale: #E9F1EC;
  --open: #0E6C8C;       /* 青緑: 受付中（緑は金額に譲る） */
  --closed: #7C8388;     /* 灰: 終了 */
  --exhausted: #B23A31;  /* 弁柄: 予算上限 */
  --shuin: #B5342A;      /* 朱印（題材由来のため据え置き） */
  --radius: 6px;
  --font-display: "Shippori Mincho B1", "Hiragino Mincho ProN", serif;
  --font-body: system-ui, -apple-system, "Hiragino Kaku Gothic ProN", "Noto Sans JP", sans-serif;
}
* { box-sizing: border-box; }
body {
  margin: 0; background: var(--bg); color: var(--ink);
  font-family: var(--font-body); line-height: 1.75; font-size: 16px;
  -webkit-font-smoothing: antialiased;
}
a { color: var(--ink); text-decoration-color: var(--yamabuki); text-underline-offset: 3px; }
a:hover { color: var(--yamabuki); }
a:focus-visible { outline: 2px solid var(--yamabuki); outline-offset: 2px; }

.wrap { max-width: 880px; margin: 0 auto; padding: 0 20px; }

/* ヘッダ: 藍鉄の帯 */
.site-header { background: #1C2E33; color: #fff; }
.site-header .wrap { display: flex; align-items: baseline; gap: 14px; padding: 14px 20px; }
.site-name { font-family: var(--font-display); font-weight: 700; font-size: 19px; color: #fff; text-decoration: none; letter-spacing: 0.04em; }
.site-tag { font-size: 12px; color: #9DB3AC; }

.breadcrumb { font-size: 12.5px; color: var(--ink-soft); padding: 14px 0 0; }
.breadcrumb a { color: var(--ink-soft); }
.breadcrumb span { margin: 0 6px; color: var(--line); }

/* 見出し */
h1 { font-family: var(--font-display); font-weight: 700; font-size: 26px; line-height: 1.45; letter-spacing: 0.02em; margin: 10px 0 6px; }
h2 { font-size: 17px; margin: 34px 0 12px; padding-left: 10px; border-left: 3px solid var(--ink); }
.lede { color: var(--ink-soft); font-size: 14px; margin: 0 0 6px; }

/* ステータス */
.badge { display: inline-block; font-size: 12.5px; font-weight: 700; padding: 2px 10px; border-radius: 999px; vertical-align: 3px; }
.badge.st-open       { color: var(--open); background: #E4EFF4; }
.badge.st-upcoming   { color: #5B6E80; background: #E9EDF1; }
.badge.st-low        { color: #8A5A14; background: #F3ECDF; }
.badge.st-exhausted,
.badge.st-closed-hard{ color: var(--exhausted); background: #F5EAE8; }
.badge.st-closed     { color: var(--closed); background: #EBEEEC; }
.badge.st-unknown    { color: var(--ink-soft); background: #EBEEEC; }

/* 朱印風・確認済スタンプ（シグネチャ。1ページ1箇所だけの大胆さ） */
.stamp {
  width: 74px; height: 74px; border: 2.5px solid var(--shuin); border-radius: 50%;
  color: var(--shuin); display: flex; flex-direction: column; align-items: center; justify-content: center;
  font-size: 11px; font-weight: 700; line-height: 1.3; letter-spacing: 0.06em;
  transform: rotate(-8deg); flex-shrink: 0; user-select: none;
  mask-image: radial-gradient(circle at 32% 68%, transparent 2%, #000 3.5%); /* 掠れ */
}
.stamp .stamp-date { font-size: 14px; font-variant-numeric: tabular-nums; }

/* 制度ヒーロー: 名称 + 金額の大書 + スタンプ */
.program-hero { display: flex; gap: 18px; align-items: flex-start; justify-content: space-between; padding-bottom: 18px; }
.amount-line { margin: 10px 0 2px; }
.amount-line .label { font-size: 13px; color: var(--ink-soft); margin-right: 10px; }
.amount { font-family: var(--font-body); font-variant-numeric: tabular-nums; font-weight: 700; font-size: 40px; color: var(--yamabuki); letter-spacing: -0.01em; }
.amount .unit { font-size: 20px; margin-left: 2px; }
.amount-note { font-size: 12.5px; color: var(--ink-soft); }

/* 事実表: 帳簿の罫線 */
.facts { width: 100%; border-collapse: collapse; margin: 6px 0 4px; background: #fff; border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; }
.facts th, .facts td { text-align: left; padding: 11px 14px; border-bottom: 1px solid var(--line); font-size: 14.5px; vertical-align: top; }
.facts tr:last-child th, .facts tr:last-child td { border-bottom: none; }
.facts th { width: 9.5em; font-weight: 600; color: var(--ink-soft); background: #F7FAF8; font-size: 13px; }
.facts td .num { font-variant-numeric: tabular-nums; font-weight: 600; }
.facts td.na { color: var(--closed); }
.source-note { font-size: 12.5px; color: var(--ink-soft); margin: 8px 0 0; }

/* 制度カード（一覧・組合せページ用） */
.card { display: block; background: #fff; border: 1px solid var(--line); border-radius: var(--radius); padding: 16px 18px; margin: 12px 0; text-decoration: none; position: relative; }
.card:hover { border-color: var(--yamabuki); }
.card .c-name { font-family: var(--font-display); font-weight: 700; font-size: 17px; line-height: 1.5; }
.card .c-meta { font-size: 13px; color: var(--ink-soft); margin-top: 6px; display: flex; flex-wrap: wrap; gap: 4px 16px; }
.card .c-amount { color: var(--yamabuki); font-weight: 700; font-variant-numeric: tabular-nums; }

/* PR枠（ステマ規制対応: ラベル常時表示） */
.cta { background: var(--yamabuki-pale); border: 1px solid #C9DCD1; border-radius: var(--radius); padding: 18px; margin: 30px 0; }
.cta .pr-label { display: inline-block; font-size: 11px; font-weight: 700; color: #55636A; border: 1px solid #AFC4BA; padding: 0 6px; border-radius: 3px; margin-bottom: 8px; }
.cta p { margin: 4px 0; font-size: 14.5px; }
.cta .cta-btn { display: inline-block; margin-top: 10px; background: var(--yamabuki); color: #fff; padding: 10px 22px; border-radius: var(--radius); text-decoration: none; font-weight: 700; font-size: 15px; }
.cta .cta-btn:hover { background: #0F5039; color: #fff; }

/* 改訂履歴 */
.revisions { border-left: 2px solid var(--line); padding-left: 16px; margin: 8px 0; }
.revisions li { font-size: 13.5px; color: var(--ink-soft); margin: 8px 0; list-style: none; }
.revisions .r-date { font-variant-numeric: tabular-nums; font-weight: 600; color: var(--ink); margin-right: 8px; }

/* グリッド（トップの都道府県・カテゴリ） */
.grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 10px; margin: 12px 0; }
.grid a { background: #fff; border: 1px solid var(--line); border-radius: var(--radius); padding: 10px 12px; font-size: 14px; text-decoration: none; }
.grid a:hover { border-color: var(--yamabuki); }
.grid a .n { font-size: 12px; color: var(--ink-soft); float: right; font-variant-numeric: tabular-nums; }

/* 免責・フッタ */
.disclaimer { font-size: 12.5px; color: var(--ink-soft); background: #fff; border: 1px solid var(--line); border-radius: var(--radius); padding: 12px 16px; margin: 30px 0 0; }
.site-footer { margin-top: 48px; padding: 26px 0 40px; border-top: 1px solid var(--line); font-size: 12.5px; color: var(--ink-soft); }

main { padding-bottom: 10px; }
@media (max-width: 560px) {
  h1 { font-size: 21px; }
  .amount { font-size: 32px; }
  .program-hero { flex-direction: column-reverse; gap: 8px; }
  .facts th { width: 7.5em; }
}
@media (prefers-reduced-motion: reduce) { * { transition: none !important; } }

/* 固定ページ・フッターナビ */
.footer-nav { display: flex; gap: 18px; margin-bottom: 10px; }
.footer-nav a { color: var(--ink-soft); font-size: 12.5px; }
.static-body h2 { margin-top: 30px; }
.static-body p, .static-body li { font-size: 14.5px; }
.static-body ul { padding-left: 1.4em; }
