:root { --ink:#20251f; --muted:#687066; --line:#d4d2cc; --paper:#f4f4f1; --panel:#fff; --accent:#315b43; }
* { box-sizing:border-box; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:"Yu Gothic","Hiragino Kaku Gothic ProN",Meiryo,sans-serif; line-height:1.8; }
.legal-header,.legal-main,.legal-footer { width:min(920px,calc(100% - 32px)); margin-inline:auto; }
.legal-header { display:flex; justify-content:space-between; gap:20px; align-items:center; padding:24px 0; border-bottom:1px solid var(--line); }
.legal-header a { color:inherit; text-decoration:none; }
.legal-header strong { letter-spacing:.04em; }
.legal-main { padding:48px 0 64px; }
.legal-main h1 { font-size:clamp(28px,5vw,44px); line-height:1.25; margin:0 0 12px; }
.lead { color:var(--muted); margin:0 0 30px; }
.notice { padding:16px 18px; border:1px solid #b49a66; background:#fff9e8; border-radius:12px; margin:24px 0; }
.legal-section { background:var(--panel); border:1px solid var(--line); border-radius:16px; padding:clamp(20px,4vw,34px); margin:18px 0; }
.legal-section h2 { margin-top:0; font-size:22px; }
.legal-table { width:100%; border-collapse:collapse; }
.legal-table th,.legal-table td { padding:14px 10px; border-bottom:1px solid var(--line); text-align:left; vertical-align:top; }
.legal-table th { width:32%; color:var(--muted); }
.legal-links { display:flex; flex-wrap:wrap; gap:12px 20px; }
.legal-links a,.text-link { color:var(--accent); }
.contact-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:20px; }
.contact-actions a,.contact-actions button { border:0; border-radius:999px; padding:12px 18px; background:var(--ink); color:white; font:inherit; text-decoration:none; cursor:pointer; }
.contact-actions [aria-disabled="true"] { opacity:.45; pointer-events:none; }
.legal-footer { padding:24px 0 40px; border-top:1px solid var(--line); color:var(--muted); }
@media (max-width:620px) { .legal-header { align-items:flex-start; flex-direction:column; } .legal-table th,.legal-table td { display:block; width:100%; padding:10px 4px; } .legal-table th { border-bottom:0; padding-bottom:0; } }
