/* Phase1124: 法務ページ（利用規約・プライバシーポリシー）の共有スタイル。
   本番 CSP は style-src 'self' で 'unsafe-inline' を含まないため、取り込み元 HTML の
   インライン <style> をここへ外部化した。インラインのままでは本番で無スタイルになる。
   guides.css と同じ扱い。 */
:root {
      color-scheme: light;
      --background: #ffffff;
      --surface: #f7f8fa;
      --text: #20242c;
      --muted: #626a78;
      --border: #e4e7ec;
      --accent: #5b47e0;
      --accent-soft: #f1efff;
      --max-width: 880px;
    }

    * { box-sizing: border-box; }

    html { scroll-behavior: smooth; }

    body {
      margin: 0;
      background: var(--background);
      color: var(--text);
      font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans JP",
        "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
      font-size: 16px;
      line-height: 1.85;
      -webkit-font-smoothing: antialiased;
    }

    a { color: var(--accent); }

    .site-header {
      border-bottom: 1px solid var(--border);
      background: rgba(255, 255, 255, 0.96);
    }

    .site-header__inner,
    main,
    .site-footer__inner {
      width: min(calc(100% - 40px), var(--max-width));
      margin: 0 auto;
    }

    .site-header__inner {
      display: flex;
      align-items: center;
      justify-content: space-between;
      min-height: 72px;
      gap: 24px;
    }

    .brand {
      color: var(--text);
      font-weight: 750;
      letter-spacing: -0.02em;
      text-decoration: none;
    }

    .brand span { color: var(--accent); }

    .company-name {
      color: var(--muted);
      font-size: 0.875rem;
      white-space: nowrap;
    }

    main { padding: 72px 0 96px; }

    .hero { margin-bottom: 48px; }

    .eyebrow {
      margin: 0 0 8px;
      color: var(--accent);
      font-size: 0.8rem;
      font-weight: 700;
      letter-spacing: 0.12em;
      text-transform: uppercase;
    }

    h1 {
      margin: 0;
      font-size: clamp(2rem, 5vw, 3rem);
      line-height: 1.25;
      letter-spacing: -0.04em;
    }

    .lead {
      max-width: 720px;
      margin: 24px 0 0;
      color: var(--muted);
    }

    .meta {
      display: flex;
      flex-wrap: wrap;
      gap: 8px 24px;
      margin-top: 24px;
      color: var(--muted);
      font-size: 0.875rem;
    }

    .notice {
      margin: 40px 0 48px;
      padding: 20px 22px;
      border: 1px solid #dcd7ff;
      border-radius: 12px;
      background: var(--accent-soft);
    }

    .notice strong {
      display: block;
      margin-bottom: 4px;
    }

    .toc {
      margin-bottom: 56px;
      padding: 28px;
      border: 1px solid var(--border);
      border-radius: 16px;
      background: var(--surface);
    }

    .toc h2 {
      margin-top: 0;
      border: 0;
      padding: 0;
      font-size: 1.1rem;
    }

    .toc ol {
      columns: 2;
      column-gap: 40px;
      margin: 16px 0 0;
      padding-left: 1.4em;
    }

    .toc li {
      break-inside: avoid;
      margin: 4px 0;
    }

    .toc a {
      color: var(--text);
      text-decoration-color: #b8bec8;
      text-underline-offset: 3px;
    }

    article section {
      scroll-margin-top: 24px;
      margin-top: 52px;
    }

    article h2 {
      margin: 0 0 20px;
      padding-bottom: 12px;
      border-bottom: 1px solid var(--border);
      font-size: 1.35rem;
      line-height: 1.5;
      letter-spacing: -0.015em;
    }

    article p { margin: 0 0 16px; }

    article ol,
    article ul {
      margin: 0 0 16px;
      padding-left: 1.6em;
    }

    article li { margin: 8px 0; }

    .revision {
      margin-top: 64px;
      padding-top: 24px;
      border-top: 1px solid var(--border);
      color: var(--muted);
      font-size: 0.9rem;
    }

    .site-footer {
      border-top: 1px solid var(--border);
      background: var(--surface);
    }

    .site-footer__inner {
      display: flex;
      justify-content: space-between;
      gap: 24px;
      padding: 28px 0;
      color: var(--muted);
      font-size: 0.85rem;
    }

    .back-to-top { white-space: nowrap; }

    @media (max-width: 640px) {
      .site-header__inner,
      main,
      .site-footer__inner {
        width: min(calc(100% - 28px), var(--max-width));
      }

      .site-header__inner { min-height: 64px; }
      .company-name { display: none; }
      main { padding: 48px 0 72px; }
      .toc { padding: 22px; }
      .toc ol { columns: 1; }
      article section { margin-top: 44px; }
      .site-footer__inner { flex-direction: column; }
    }

    @media print {
      .site-header,
      .site-footer,
      .toc { display: none; }
      main { width: 100%; padding: 0; }
      article section { break-inside: avoid; }
      a { color: inherit; text-decoration: none; }
    }
