:root { --fg:#1f2933; --muted:#52606d; --bg:#ffffff; --alt:#f4f7f5; --accent:#1f7a5c; --line:#d9e2dd; }
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin:0; font-family: system-ui, -apple-system, "Hiragino Sans", "Noto Sans JP", "Yu Gothic", sans-serif; color:var(--fg); background:var(--bg); line-height:1.8; }
.wrap { max-width: 880px; margin: 0 auto; padding: 0 20px; }
a { color: var(--accent); }
.site-header { border-bottom:1px solid var(--line); }
.site-header .wrap { display:flex; justify-content:space-between; align-items:center; gap:16px; padding-top:12px; padding-bottom:12px; flex-wrap:wrap; }
.brand { margin:0; font-weight:700; font-size:1.2rem; }
.site-header nav a { margin-left:16px; text-decoration:none; color:var(--muted); font-size:.95rem; }
.hero { padding: 56px 0 48px; }
h1 { font-size: clamp(1.7rem, 5vw, 2.4rem); line-height:1.4; margin:0 0 16px; }
.lead { color:var(--muted); font-size:1.05rem; max-width: 36em; }
.button { display:inline-block; background:var(--accent); color:#fff; padding:12px 24px; border-radius:6px; text-decoration:none; font-weight:700; }
.button:focus-visible, a:focus-visible { outline:3px solid #f0b429; outline-offset:2px; }
section { padding: 48px 0; }
section.alt { background:var(--alt); }
h2 { font-size:1.4rem; margin:0 0 20px; }
.cards { list-style:none; margin:0; padding:0; display:grid; gap:16px; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
.cards li { border:1px solid var(--line); border-radius:8px; padding:16px 18px; background:#fff; }
.cards h3 { margin:0 0 6px; font-size:1.05rem; }
.cards p { margin:0; color:var(--muted); font-size:.95rem; }
.steps { padding-left: 1.4em; }
.steps li { margin-bottom: 12px; }
.mail { font-size:1.2rem; font-weight:700; }
.site-footer { border-top:1px solid var(--line); padding: 28px 0; font-size:.9rem; color:var(--muted); }
.site-footer dl { display:grid; grid-template-columns: 5em 1fr; gap:4px 12px; margin:0 0 12px; }
.site-footer dt { font-weight:700; }
.site-footer dd { margin:0; }
.copy { margin:8px 0 0; }
.doc h1 { font-size:1.6rem; }
.doc h2 { font-size:1.15rem; margin-top:28px; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior:auto; } }
