:root { --ink:#1d2530; --muted:#5b6675; --line:#d8dde4; --brand:#14556b; }
* { box-sizing: border-box; }
body { margin:0; font:16px/1.6 Georgia, serif; color:var(--ink); background:#fbfbf9; }
header { background:#fff; border-bottom:1px solid var(--line); }
.wrap { max-width:960px; margin:0 auto; padding:18px 20px; }
.brand { font-size:20px; letter-spacing:.02em; color:var(--brand); text-decoration:none; font-weight:bold; }
nav a { margin-right:16px; color:var(--ink); text-decoration:none; border-bottom:1px solid transparent; }
nav a:hover { border-bottom-color:var(--brand); }
.hero { background:#eef2f4; padding:44px 0; }
h1 { font-size:34px; line-height:1.2; margin:0 0 12px; }
h3 { font-size:19px; margin:26px 0 8px; color:var(--brand); }
.grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:22px; margin:26px 0; }
.card { background:#fff; border:1px solid var(--line); padding:16px; }
.card img { width:100%; height:auto; display:block; }
.btn { display:inline-block; background:var(--brand); color:#fff; padding:10px 18px; text-decoration:none; }
footer { border-top:1px solid var(--line); color:var(--muted); font-size:13px; padding:26px 0; margin-top:40px; }
.notice { background:#fff7e0; border:1px solid #e8d9a8; padding:10px 14px; font-size:13px; }
input, textarea { width:100%; padding:9px; border:1px solid var(--line); font:inherit; }
label { display:block; margin:12px 0 4px; font-size:14px; }
table { width:100%; border-collapse:collapse; margin:18px 0; }
td { border-bottom:1px solid var(--line); padding:8px; }
