:root {
  --ink:#1c2321; --sub:#51605b; --line:#e2e8e5; --bg:#f6f8f7; --panel:#ffffff;
  --accent:#166b4d; --accent-soft:#e7f2ed; --warn-bg:#fff7e0; --warn-line:#e6cf6e; --warn-ink:#5d4a00;
  --shadow:0 1px 2px rgba(16,24,40,.06),0 1px 3px rgba(16,24,40,.08);
}
* { box-sizing:border-box; }
html { -webkit-text-size-adjust:100%; }
body { margin:0; font-family:-apple-system,BlinkMacSystemFont,"Hiragino Sans","Hiragino Kaku Gothic ProN","Noto Sans JP","Yu Gothic",sans-serif; color:var(--ink); background:var(--bg); line-height:1.9; font-feature-settings:"palt"; }
a { color:var(--accent); text-underline-offset:3px; }
header.site { position:sticky; top:0; z-index:10; background:rgba(255,255,255,.9); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); border-bottom:1px solid var(--line); padding:12px 0; }
header.site .wrap { display:flex; align-items:baseline; gap:12px; flex-wrap:wrap; }
header.site .name { font-size:1.05rem; font-weight:800; text-decoration:none; color:var(--ink); }
header.site .name::before { content:"🐾"; margin-right:.45em; }
header.site .tagline { font-size:.72rem; color:var(--sub); }
.wrap { max-width:760px; margin:0 auto; padding:0 20px; }
main.wrap { padding:8px 20px 48px; }
h1 { font-size:1.45rem; line-height:1.55; margin:28px 0 8px; }
h2 { font-size:1.12rem; margin:2.4em 0 .6em; padding-bottom:6px; border-bottom:2px solid var(--line); position:relative; }
h2::after { content:""; position:absolute; left:0; bottom:-2px; width:2.4em; height:2px; background:var(--accent); }
.lead { color:var(--sub); font-size:.95rem; }
.panel { background:var(--panel); border:1px solid var(--line); border-radius:14px; padding:22px 24px; margin:18px 0; box-shadow:var(--shadow); }
.price { font-size:1.5rem; font-weight:800; color:var(--accent); }
.price small { font-size:.8rem; font-weight:600; color:var(--sub); }
ul { padding-left:1.4em; }
li { margin:6px 0; }
p, li, td, dd { overflow-wrap:anywhere; }
.note { background:var(--warn-bg); border:1px solid var(--warn-line); color:var(--warn-ink); padding:12px 16px; border-radius:10px; margin:16px 0; font-size:.9rem; }
.check { background:var(--accent-soft); border-radius:10px; padding:14px 18px; margin:16px 0; }
.check ul { margin:6px 0; }
.tablewrap { overflow-x:auto; border:1px solid var(--line); border-radius:10px; margin:1em 0; background:var(--panel); }
table { border-collapse:collapse; width:100%; font-size:.88rem; }
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(--accent-soft); font-weight:600; white-space:nowrap; }
dl.law { margin:0; }
dl.law dt { font-weight:700; margin-top:16px; }
dl.law dd { margin:2px 0 14px; padding-bottom:14px; border-bottom:1px solid var(--line); }
dl.law dd:last-child { border-bottom:none; }
.btn { display:inline-block; background:var(--accent); color:#fff; font-weight:700; text-decoration:none; padding:12px 28px; border-radius:999px; font-size:1rem; }
.btn.disabled { background:#9db3aa; pointer-events:none; }
.steps { counter-reset:step; list-style:none; padding:0; }
.steps li { counter-increment:step; position:relative; padding-left:2.6em; margin:14px 0; }
.steps li::before { content:counter(step); position:absolute; left:0; top:.15em; width:1.8em; height:1.8em; border-radius:50%; background:var(--accent); color:#fff; font-weight:700; display:flex; align-items:center; justify-content:center; font-size:.9em; }
footer.site { border-top:1px solid var(--line); margin-top:40px; padding:22px 0 36px; font-size:.78rem; color:var(--sub); }
footer.site ul { list-style:none; padding:0; margin:0 0 10px; display:flex; flex-wrap:wrap; gap:6px 16px; }
footer.site a { color:var(--sub); }
