:root {
  --primary:#263b7f;
  --deep:#0a1730;
  --mid:#126b8a;
  --accent:#d3aa4c;
  --text:#17213b;
  --muted:#6f7480;
  --bg:#f7f4ee;
  --line:#ded7c8;
}
* { box-sizing:border-box; margin:0; padding:0; }
body { font-family:'Noto Serif JP','Hiragino Mincho ProN',serif; font-size:16px; color:var(--text); background:var(--bg); line-height:1.9; }
a { color:var(--primary); text-decoration:underline; text-underline-offset:3px; }
.legal-header { position:relative; overflow:hidden; padding:64px 24px 132px; text-align:center; color:white; background:linear-gradient(135deg,#17204c 0%,#1e4f78 58%,#0d7a84 100%); }
.legal-header .label { display:block; margin-bottom:12px; color:var(--accent); font-family:'Cinzel',serif; font-size:11px; letter-spacing:.34em; text-transform:uppercase; }
.legal-header h1 { font-size:28px; letter-spacing:.08em; }
.legal-header p { margin-top:10px; font-size:13px; color:rgba(255,255,255,.72); }
.back-link { display:inline-block; margin-top:20px; color:rgba(255,255,255,.7); font-size:12px; letter-spacing:.08em; }
.legal-wrap { max-width:920px; margin:0 auto; padding:58px 24px 72px; }
.legal-card { background:#fff; border:1px solid var(--line); border-radius:6px; padding:44px 48px; box-shadow:0 18px 50px rgba(38,59,127,.08); }
.legal-lead { margin-bottom:30px; color:#4f5564; font-size:15px; }
.legal-section { padding:28px 0; border-top:1px solid #eee7da; }
.legal-section:first-of-type { border-top:none; padding-top:0; }
.legal-section h2 { margin-bottom:12px; padding-left:14px; border-left:4px solid var(--accent); color:var(--primary); font-size:18px; letter-spacing:.06em; }
.legal-section p, .legal-section li { font-size:15px; color:#343946; }
.legal-section ul { padding-left:1.2em; }
.legal-table { width:100%; border-collapse:collapse; font-size:15px; }
.legal-table th, .legal-table td { padding:16px 18px; border-top:1px solid #eee7da; vertical-align:top; text-align:left; }
.legal-table tr:first-child th, .legal-table tr:first-child td { border-top:none; }
.legal-table th { width:30%; color:var(--primary); background:#fbf8f0; font-weight:700; }
.legal-note { margin-top:28px; padding:18px 20px; background:#fbf8f0; border:1px solid #eadfca; border-radius:4px; color:#626774; font-size:14px; }
footer { padding:32px 24px; text-align:center; background:#0a1730; color:rgba(255,255,255,.48); font-size:12px; letter-spacing:.08em; }
footer a { color:rgba(211,170,76,.78); }
footer p + p { margin-top:6px; }
@media (max-width:680px) {
  .legal-header { padding:48px 18px 112px; }
  .legal-header h1 { font-size:22px; }
  .legal-wrap { padding:34px 14px 52px; }
  .legal-card { padding:28px 18px; }
  .legal-table, .legal-table tbody, .legal-table tr, .legal-table th, .legal-table td { display:block; width:100%; }
  .legal-table th { border-top:1px solid #eee7da; padding-bottom:8px; }
  .legal-table td { border-top:none; padding-top:8px; }
}
