:root {
      --base-width: 430px;
      --text: #222;
      --sub-text: #666;
      --border: #e8e8e8;
      --bg: #f7f7f7;
      --accent: #ff5a7a;
      --white: #fff;
    }

    * {
      box-sizing: border-box;
    }

    html {
      scroll-behavior: smooth;
    }

    body {
      margin: 0;
      color: var(--text);
      background: var(--bg);
      font-family:
        -apple-system,
        BlinkMacSystemFont,
        "Helvetica Neue",
        "Noto Sans JP",
        Arial,
        sans-serif;
      font-size: 14px;
      line-height: 1.9;
    }

    a {
      color: inherit;
      text-decoration: none;
    }

    .legal-page {
      width: 100%;
      max-width: var(--base-width);
      min-height: 100vh;
      margin: 0 auto;
      background: var(--white);
      box-shadow: 0 0 20px rgba(0, 0, 0, 0.04);
    }

    .legal-header {
      position: sticky;
      top: 0;
      z-index: 10;
      display: flex;
      align-items: center;
      justify-content: center;
      min-height: 58px;
      padding: 10px 52px;
      background: rgba(255, 255, 255, 0.96);
      border-bottom: 1px solid var(--border);
      backdrop-filter: blur(8px);
    }

    .legal-header__back {
      position: absolute;
      left: 14px;
      top: 50%;
      display: inline-flex;
      align-items: center;
      gap: 4px;
      transform: translateY(-50%);
      color: var(--sub-text);
      font-size: 13px;
      font-weight: 600;
    }

    .legal-header__back::before {
      content: "‹";
      font-size: 25px;
      font-weight: 400;
      line-height: 1;
    }

    .legal-header__title {
      margin: 0;
      font-size: 16px;
      font-weight: 700;
      line-height: 1.4;
      text-align: center;
    }

    .legal-main {
      padding: 32px 20px 48px;
    }

    .legal-heading {
      margin: 0 0 28px;
      padding-bottom: 16px;
      border-bottom: 2px solid var(--text);
    }

    .legal-heading__ja {
      display: block;
      margin-bottom: 8px;
      font-size: 25px;
      font-weight: 700;
      letter-spacing: 0.04em;
      line-height: 1.45;
    }

    .legal-heading__en {
      display: block;
      color: var(--sub-text);
      font-size: 11px;
      font-weight: 600;
      letter-spacing: 0.12em;
      line-height: 1.4;
      text-transform: uppercase;
    }

    .legal-content {
      word-break: break-word;
    }

    .legal-content p {
      margin: 0 0 18px;
    }

    .legal-content h2 {
      margin: 38px 0 14px;
      padding-left: 11px;
      border-left: 4px solid var(--accent);
      font-size: 17px;
      font-weight: 700;
      line-height: 1.65;
    }

    .legal-content h3 {
      margin: 26px 0 10px;
      font-size: 15px;
      font-weight: 700;
      line-height: 1.7;
    }

    .legal-content ol,
    .legal-content ul {
      margin: 0 0 18px;
      padding-left: 1.4em;
    }

    .legal-content li {
      margin-bottom: 8px;
    }

    .legal-content .legal-date {
      margin-top: 34px;
      color: var(--sub-text);
      font-size: 13px;
      text-align: right;
    }

    .legal-footer {
      padding: 22px 20px 28px;
      border-top: 1px solid var(--border);
      background: #fafafa;
    }

    .legal-footer__nav {
      display: flex;
      flex-wrap: wrap;
      justify-content: center;
      gap: 8px 16px;
      margin-bottom: 16px;
    }

    .legal-footer__nav a {
      color: var(--sub-text);
      font-size: 12px;
      text-decoration: underline;
      text-underline-offset: 3px;
    }

    .legal-footer__copy {
      margin: 0;
      color: #999;
      font-size: 11px;
      line-height: 1.6;
      text-align: center;
    }

    @media screen and (max-width: 430px) {
      .legal-page {
        box-shadow: none;
      }

      .legal-main {
        padding: 28px 18px 42px;
      }

      .legal-heading__ja {
        font-size: 23px;
      }
    }