:root { --ink:#1b2030; --sub:#5a6376; --line:#e2e6ee; --soft:#f5f7fb; --accent:#e8553d; --accent2:#2f5bea; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; font-family:"Yu Gothic","Hiragino Sans",sans-serif; color:var(--ink); background:#fff; line-height:1.9; }
header { position:sticky; top:0; background:rgba(255,255,255,.95); border-bottom:1px solid var(--line); z-index:5; }
.in, main { max-width:960px; margin:0 auto; padding:0 20px; }
header .in { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:8px; padding:14px 20px; }
.logo { font-weight:bold; font-size:20px; letter-spacing:.25em; color:var(--ink); text-decoration:none; }
nav a { margin-left:20px; color:var(--sub); text-decoration:none; font-size:14px; }
nav a:hover { color:var(--accent); }
.hero { background:linear-gradient(135deg,#fff1ec,#eaf0ff); padding:88px 20px; text-align:center; }
.hero h1 { font-size:38px; line-height:1.4; margin:0 0 16px; }
.hero p { margin:0 auto 28px; color:var(--sub); font-size:17px; max-width:640px; }
.btn { display:inline-block; background:var(--accent); color:#fff; border:0; padding:13px 34px; border-radius:8px; text-decoration:none; font-size:16px; cursor:pointer; font-family:inherit; }
.btn:hover { opacity:.88; }
section { padding:56px 0 8px; }
h2 { font-size:24px; margin:0 0 6px; }
h2 + .sub { color:var(--sub); margin:0 0 24px; }
.grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(250px,1fr)); gap:18px; }
.card { border:1px solid var(--line); border-radius:12px; padding:22px; background:var(--soft); }
.card h3 { margin:0 0 8px; font-size:17px; }
.card p { margin:0; color:var(--sub); font-size:15px; }
ol.flow { list-style:none; counter-reset:n; padding:0; margin:0; display:grid; gap:14px; }
ol.flow li { counter-increment:n; padding:14px 18px 14px 64px; position:relative; border:1px solid var(--line); border-radius:10px; }
ol.flow li::before { content:counter(n); position:absolute; left:16px; top:50%; transform:translateY(-50%); width:34px; height:34px; border-radius:50%; background:var(--accent2); color:#fff; text-align:center; line-height:34px; font-weight:bold; }
ol.flow b { display:block; }
ol.flow span { color:var(--sub); font-size:14px; }
table { border-collapse:collapse; width:100%; }
th, td { border:1px solid var(--line); padding:11px 14px; text-align:left; vertical-align:top; }
th { width:28%; background:var(--soft); font-weight:normal; }
form { display:grid; gap:16px; max-width:640px; }
label { display:grid; gap:6px; font-size:14px; font-weight:bold; }
input, select, textarea { font:inherit; padding:10px 12px; border:1px solid #c9cfdb; border-radius:8px; width:100%; }
textarea { min-height:160px; }
.hp { position:absolute; left:-9999px; }
#msg { padding:12px 16px; border-radius:8px; display:none; }
#msg.ok { display:block; background:#e8f7ee; color:#136c35; }
#msg.ng { display:block; background:#fdecec; color:#a02020; }
footer { border-top:1px solid var(--line); margin-top:72px; padding:28px 20px; text-align:center; font-size:13px; color:var(--sub); }
footer a { color:var(--sub); margin:0 10px; }
@media (max-width:640px) { .hero h1 { font-size:28px; } nav a { margin:0 14px 0 0; } }
