:root {
  --ink:#1c2733; --sub:#5b6b7f; --line:#dde4ec; --accent:#0b5394; --accent-dark:#083d6e;
  --gold:#e9a13b; --bg:#fff; --soft:#f2f6fb; --amber-bg:#fdf6e0; --amber-line:#e7cf8a;
  --radius:12px; --shadow:0 2px 10px rgba(11,83,148,.08);
}
* { box-sizing: border-box; }
body { margin:0; font-family: -apple-system, "Hiragino Kaku Gothic ProN", "Yu Gothic", "Noto Sans JP", sans-serif; color:var(--ink); background:var(--bg); line-height:1.85; -webkit-font-smoothing:antialiased; }
::selection { background:#cfe4f7; }

/* ヘッダー */
header.site { position:sticky; top:0; z-index:10; background:rgba(255,255,255,.96); border-bottom:1px solid var(--line); padding:12px 20px; box-shadow:0 1px 6px rgba(20,40,70,.05); }
header.site .name { font-size:20px; font-weight:700; letter-spacing:.02em; }
header.site .name a { color:inherit; text-decoration:none; }
header.site .name a::before { content:"★"; color:var(--gold); margin-right:7px; font-size:17px; vertical-align:2px; }
header.site .tag { color:var(--sub); font-size:13px; }
nav.main { margin-top:6px; font-size:14.5px; }
nav.main a { margin-right:18px; color:var(--accent); text-decoration:none; font-weight:600; }
nav.main a:hover { text-decoration:underline; }

/* 本文 */
main { max-width:720px; margin:0 auto; padding:28px 20px 56px; }
h1 { font-size:25px; line-height:1.45; margin:10px 0 14px; }
h2 { font-size:19px; border-left:4px solid var(--accent); padding-left:10px; margin-top:40px; line-height:1.5; }
h3 { font-size:16px; margin-top:26px; }
p, li { font-size:15.5px; }
a { color:var(--accent); }
strong { color:#12283f; }

/* ヒーロー（トップ） */
.hero { background:linear-gradient(135deg, #0b5394, #083d6e); color:#fff; border-radius:16px; padding:30px 26px; margin:6px 0 26px; }
.hero .lead { font-size:23px; font-weight:700; line-height:1.5; margin:0 0 10px; color:#fff; }
.hero p { color:#dbe9f7; font-size:15px; margin:0 0 18px; }
.hero .btns { display:flex; flex-wrap:wrap; gap:10px; }
.btn { display:inline-block; padding:10px 18px; border-radius:999px; font-weight:700; font-size:14.5px; text-decoration:none; }
.btn.white { background:#fff; color:var(--accent-dark); }
.btn.ghost { border:1.5px solid rgba(255,255,255,.75); color:#fff; }
.btn:hover { opacity:.92; }

/* パンくず */
.crumb { font-size:13px; color:var(--sub); margin:0 0 6px; }
.crumb a { color:var(--sub); text-decoration:none; }
.crumb a:hover { text-decoration:underline; }

/* 開示ボックス */
.disclosure { background:var(--amber-bg); border:1px solid var(--amber-line); border-radius:10px; padding:10px 14px; font-size:13px; color:#5c4d1f; margin:16px 0; }

/* カード */
.card { display:block; border:1px solid var(--line); border-radius:var(--radius); padding:16px 18px; margin:14px 0; background:#fff; text-decoration:none; color:inherit; transition:box-shadow .15s ease, transform .15s ease; }
a.card:hover { box-shadow:var(--shadow); transform:translateY(-1px); }
.card strong { display:block; font-size:16px; margin-bottom:4px; color:var(--accent-dark); }
.card span { display:block; color:var(--sub); font-size:14px; }
.card .t { font-weight:700; font-size:16px; color:var(--accent-dark); }
.card .d { color:var(--sub); font-size:14px; }

/* 表 */
table { border-collapse:separate; border-spacing:0; width:100%; margin:14px 0; font-size:14px; border:1px solid var(--line); border-radius:10px; overflow:hidden; }
th, td { border-bottom:1px solid var(--line); padding:9px 12px; text-align:left; vertical-align:top; }
tr:last-child td { border-bottom:none; }
th { background:var(--soft); font-weight:700; }
tbody tr:nth-child(even) td, table tr:nth-child(even) td { background:#fbfcfe; }
@media (max-width:640px) {
  table { display:block; overflow-x:auto; -webkit-overflow-scrolling:touch; }
  .hero .lead { font-size:20px; }
  h1 { font-size:22px; }
}

/* 検索 */
.searchbox { margin:16px 0; }
.searchbox input { width:100%; padding:12px 14px; font-size:16px; border:1.5px solid var(--line); border-radius:10px; background:#fff; }
.searchbox input:focus { outline:none; border-color:var(--accent); box-shadow:0 0 0 3px rgba(11,83,148,.15); }

/* 計算ツール */
label { display:block; font-size:14px; margin-top:14px; font-weight:600; }
input[type=number] { width:100%; padding:11px 12px; font-size:16px; border:1.5px solid var(--line); border-radius:10px; margin-top:5px; }
input[type=number]:focus { outline:none; border-color:var(--accent); box-shadow:0 0 0 3px rgba(11,83,148,.15); }
button.calc { margin-top:20px; width:100%; padding:13px; font-size:16px; font-weight:700; background:var(--accent); color:#fff; border:none; border-radius:10px; cursor:pointer; }
button.calc:hover { background:var(--accent-dark); }
.result { margin-top:20px; background:var(--soft); border:1px solid var(--line); border-radius:var(--radius); padding:18px; display:none; }
.result .big { font-size:24px; font-weight:700; color:var(--accent-dark); }

/* フッター */
footer.site { border-top:1px solid var(--line); padding:24px 20px 30px; font-size:13px; color:var(--sub); text-align:center; background:#fbfcfe; }
footer.site a { color:var(--sub); margin:0 9px; text-decoration:none; }
footer.site a:hover { text-decoration:underline; }
footer.site div { margin-top:10px; }
.src { font-size:13px; color:var(--sub); }
