:root {
  color-scheme: light;
  --ink: #1f1c19;
  --muted: #6d655d;
  --paper: #fffdf9;
  --line: #ded8cf;
  --accent: #9f1e16;
}
* { box-sizing: border-box; }
html { background: #f4f0e9; color: var(--ink); font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans JP", sans-serif; }
body { margin: 0; }
a { color: var(--accent); text-underline-offset: .2em; }
.legal-header, .legal-main, .legal-footer { width: min(100% - 40px, 820px); margin-inline: auto; }
.legal-header { display: flex; justify-content: space-between; align-items: center; padding: 28px 0; border-bottom: 1px solid var(--line); }
.legal-brand { color: var(--ink); font-weight: 800; letter-spacing: .08em; text-decoration: none; }
.legal-back { font-size: 14px; }
.legal-main { margin-top: 36px; margin-bottom: 64px; padding: clamp(28px, 5vw, 56px); background: var(--paper); border: 1px solid var(--line); }
.legal-kicker { color: var(--accent); font-size: 12px; font-weight: 800; letter-spacing: .14em; }
h1 { margin: 10px 0 8px; font-size: clamp(30px, 6vw, 48px); line-height: 1.25; }
.legal-updated { margin: 0 0 38px; color: var(--muted); font-size: 14px; }
h2 { margin: 34px 0 12px; padding-top: 26px; border-top: 1px solid var(--line); font-size: 21px; }
p, li { font-size: 16px; line-height: 1.9; }
ul, ol { padding-left: 1.4em; }
.legal-note { padding: 18px 20px; background: #f6f1e9; border-left: 3px solid var(--accent); }
.legal-contact { padding: 20px; background: #f6f1e9; }
.legal-footer { padding: 0 0 36px; color: var(--muted); font-size: 13px; }
@media (max-width: 600px) {
  .legal-header { align-items: flex-start; gap: 20px; }
  .legal-main { width: 100%; margin-top: 0; border-inline: 0; }
}
