:root {
  color-scheme: light;
  --ink: #17221e;
  --muted: #52605a;
  --line: #dce6e0;
  --surface: #ffffff;
  --background: #f5f8f6;
  --accent: #08775f;
  --accent-soft: #dff4ea;
}

* { box-sizing: border-box; }

body {
  margin: 0;
  color: var(--ink);
  background: var(--background);
  font-family: -apple-system, BlinkMacSystemFont, "Hiragino Sans", "Yu Gothic", sans-serif;
  line-height: 1.8;
}

header, main, footer { width: min(760px, calc(100% - 40px)); margin: 0 auto; }

header { padding: 42px 0 24px; }

.brand { color: var(--accent); font-size: .95rem; font-weight: 700; letter-spacing: .04em; text-decoration: none; }

nav { display: flex; flex-wrap: wrap; gap: 8px 18px; margin-top: 18px; }
nav a { color: var(--muted); font-size: .92rem; }

main { margin-bottom: 42px; padding: 32px; background: var(--surface); border: 1px solid var(--line); border-radius: 16px; }
h1 { margin: 0 0 8px; font-size: clamp(1.6rem, 5vw, 2.15rem); line-height: 1.35; }
h2 { margin: 34px 0 10px; font-size: 1.2rem; }
p, li { font-size: 1rem; }
.updated { margin: 0; color: var(--muted); font-size: .9rem; }
.lead { font-size: 1.08rem; }
.card { margin-top: 24px; padding: 20px; background: var(--accent-soft); border-radius: 12px; }
.button { display: inline-block; padding: 10px 16px; color: #fff; background: var(--accent); border-radius: 8px; font-weight: 700; text-decoration: none; }
footer { padding-bottom: 32px; color: var(--muted); font-size: .85rem; }

@media (max-width: 560px) {
  header, main, footer { width: min(100% - 28px, 760px); }
  header { padding-top: 28px; }
  main { padding: 22px; border-radius: 12px; }
}
