/* 法務・サポートページ共通スタイル。
   トップページ（index.html）・電子公告（notice.html）と同じ配色・書体で、
   長文を読むことだけに寄せた簡素な版。tools/build-legal.py が参照する。 */
:root {
  --bg: #faf7f0;
  --bg-2: #f4eee2;
  --ink: #2c2418;
  --ink-soft: #6f6553;
  --ink-faint: #a89c86;
  --line: rgba(60, 48, 28, 0.13);
  --line-soft: rgba(60, 48, 28, 0.07);
  --gold: #9a8559;
  --gold-deep: #7c673e;
  --surface: #ffffff;
  --maxw: 820px;
  --en: "Outfit", sans-serif;
  --jp: "Zen Kaku Gothic New", system-ui, sans-serif;
}
* { box-sizing: border-box; margin: 0; padding: 0; }
body {
  font-family: var(--jp);
  color: var(--ink);
  background: var(--bg);
  line-height: 2;
  font-size: 16px;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
  min-height: 100svh;
  display: flex;
  flex-direction: column;
}
a { color: var(--gold-deep); text-decoration: none; }
a:hover { text-decoration: underline; }
.wrap { width: 100%; max-width: var(--maxw); margin: 0 auto; padding: 0 24px; }
::selection { background: rgba(154, 133, 89, 0.24); }

.ambient {
  position: fixed; inset: 0; z-index: -2;
  background:
    radial-gradient(1000px 660px at 84% -8%, rgba(198,173,128,0.22), transparent 60%),
    radial-gradient(820px 580px at -8% 24%, rgba(154,133,89,0.10), transparent 60%),
    linear-gradient(180deg, var(--bg), var(--bg-2));
}

header {
  position: sticky; top: 0; z-index: 50;
  background: rgba(255, 253, 248, 0.82);
  backdrop-filter: blur(14px) saturate(1.3);
  -webkit-backdrop-filter: blur(14px) saturate(1.3);
  border-bottom: 1px solid var(--line);
}
.nav { display: flex; align-items: center; justify-content: space-between; gap: 14px; height: 68px; }
.brand { display: flex; align-items: center; gap: 11px; font-weight: 700; font-size: 15.5px; letter-spacing: 0.04em; color: var(--ink); }
.brand:hover { text-decoration: none; }
.brand .mark-img { width: 34px; height: 34px; object-fit: contain; mix-blend-mode: multiply; }
.back {
  font-size: 13px; font-weight: 700; color: var(--ink-soft);
  display: inline-flex; align-items: center; gap: 8px;
  padding: 8px 16px; border-radius: 999px;
  border: 1px solid var(--line); background: rgba(255,255,255,0.6);
  white-space: nowrap; flex: none;
  transition: color 0.18s, border-color 0.18s, background 0.18s;
}
.back:hover { color: var(--gold-deep); border-color: var(--gold); background: #fff; text-decoration: none; }
.back .arr { font-family: var(--en); }

main { flex: 1; padding: 56px 0 80px; }
.page-head { margin-bottom: 34px; }
.eyebrow {
  font-family: var(--en); font-size: 12px; font-weight: 500;
  letter-spacing: 0.26em; color: var(--gold-deep);
  display: flex; align-items: center; gap: 14px; margin-bottom: 8px;
}
.eyebrow::after { content: ""; height: 1px; width: 48px; background: var(--gold); opacity: 0.55; }
.page-head h1 {
  font-size: clamp(26px, 4.4vw, 36px); font-weight: 700;
  letter-spacing: 0.04em; line-height: 1.5; font-feature-settings: "palt" 1;
}
.page-head .sub { color: var(--ink-soft); font-size: 14.5px; margin-top: 6px; }

.doc {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 22px;
  box-shadow: 0 24px 60px rgba(60,48,28,0.07);
  padding: 44px 44px 48px;
}
.doc > *:first-child { margin-top: 0; }
.doc h2 {
  font-size: 18.5px; font-weight: 700; letter-spacing: 0.02em;
  margin: 42px 0 14px; padding-left: 14px;
  border-left: 3px solid var(--gold); line-height: 1.7;
}
.doc h3 { font-size: 16px; font-weight: 700; margin: 28px 0 10px; color: var(--ink); }
.doc p { font-size: 15px; color: var(--ink-soft); margin: 14px 0; text-wrap: pretty; }
.doc p.updated { font-family: var(--en); font-size: 13px; color: var(--ink-faint); letter-spacing: 0.04em; margin-top: 0; }
.doc p.q { font-weight: 700; color: var(--ink); margin-bottom: 2px; margin-top: 26px; }
.doc strong { color: var(--ink); font-weight: 700; }
.doc ul { margin: 14px 0 14px 1.3em; }
.doc li { font-size: 15px; color: var(--ink-soft); margin: 7px 0; text-wrap: pretty; }
.doc code {
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 0.88em; background: var(--bg-2);
  border: 1px solid var(--line-soft); border-radius: 5px; padding: 1px 5px;
}
.doc blockquote {
  margin: 18px 0; padding: 4px 20px;
  border-left: 3px solid rgba(154,133,89,0.4);
  background: rgba(250,247,240,0.7); border-radius: 0 10px 10px 0;
}
.doc blockquote p { font-size: 14px; }
.doc table {
  width: 100%; margin: 18px 0; border-collapse: collapse;
  border: 1px solid var(--line); border-radius: 12px; overflow: hidden;
  font-size: 14px; line-height: 1.85;
}
.doc th, .doc td { padding: 12px 16px; text-align: left; vertical-align: top; border-bottom: 1px solid var(--line-soft); }
.doc th { background: var(--bg); font-weight: 700; white-space: nowrap; }
.doc td { color: var(--ink-soft); }
.doc tbody tr:last-child th, .doc tbody tr:last-child td { border-bottom: none; }

.siblings { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 26px; }
.siblings a {
  font-size: 13.5px; font-weight: 500; color: var(--ink-soft);
  padding: 9px 18px; border-radius: 999px;
  border: 1px solid var(--line); background: rgba(255,255,255,0.65);
}
.siblings a:hover { color: var(--gold-deep); border-color: var(--gold); background: #fff; text-decoration: none; }
.siblings a[aria-current] { color: var(--gold-deep); border-color: var(--gold); background: #fff; font-weight: 700; }

.app-card {
  background: var(--surface); border: 1px solid var(--line);
  border-radius: 18px; padding: 26px 28px; margin-bottom: 16px;
  box-shadow: 0 16px 40px rgba(60,48,28,0.05);
}
.app-card h2 { font-size: 17px; font-weight: 700; letter-spacing: 0.02em; margin-bottom: 14px; }
.contact { font-size: 14px; color: var(--ink-soft); margin-top: 28px; }

footer { padding: 32px 0; border-top: 1px solid var(--line); }
.foot { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 12px; }
.foot a { font-size: 13.5px; color: var(--ink-soft); font-weight: 500; }
.foot a:hover { color: var(--gold-deep); }
.copy { font-family: var(--en); font-size: 12px; letter-spacing: 0.04em; color: var(--ink-faint); }

@media (max-width: 600px) {
  main { padding: 36px 0 60px; }
  .doc { padding: 28px 22px 32px; border-radius: 16px; }
  .doc h2 { margin-top: 34px; font-size: 17px; }
  .doc table { display: block; overflow-x: auto; white-space: nowrap; }
  .doc th, .doc td { white-space: normal; min-width: 8em; }
}
