/* ============================================================
   legal/style.css — privacy（プライバシーポリシー）/ terms（利用規約）共通
   テキスト主体ページ。PC/SPともFigma実寸の固定pxで組む（縮小可変なし）。
   - セクション幅：PC 1240（min gutter 20）／SP 100%
   - 本文ブロックは左右 20px inset（Figma Row px-20）→ 本文幅 1200 / 335
   - タイポ：H1=36/56, H3(条見出し)=28/42, 本文=18/34, 小見出し=20/30(tracking2px)
   ============================================================ */
.legal {
  background: #fff;
  padding-top: 60px;
  padding-bottom: 100px;
}
.legal-inner {
  width: min(var(--container-w), calc(100% - var(--pc-gutter) * 2));
  margin-inline: auto;
}

/* --- ページタイトル（共通h2の装飾を流用：金下線＋斜線） --- */
.legal-head {
  display: flex;
  flex-direction: column;
  align-items: center;
}
/* common-h2 はSPで縮小するが、法務ページは36px固定（Figma準拠） */
.legal-title.common-h2 {
  font-size: 36px;
  line-height: 56px;
  margin-bottom: 40px;       /* 新規ページ共通：common-h2 下マージン PC 40px */
}

/* --- 本文（白カード相当：白地のため枠線・影なし。20px inset） --- */
.legal-body {
  padding-inline: 20px;
  color: #000;
}
.legal-sec {
  margin-bottom: 30px;
}
.legal-sec-title {
  font-family: var(--font-jp);
  font-weight: 700;
  font-size: 28px;
  line-height: 42px;
  color: #000;
  margin: 0 0 10px;
}
.legal-text {
  font-family: var(--font-jp);
  font-weight: 400;
  font-size: 18px;
  line-height: 34px;
  margin: 0;
}
/* Figmaで空段落（ゼロ幅）で空けていたグループ間の余白 */
.legal-text--gap { margin-top: 34px; }
.legal-subhead {
  font-family: var(--font-jp);
  font-weight: 700;
  font-size: 20px;
  line-height: 30px;
  letter-spacing: 2px;
  margin: 34px 0 0;
}
/* 条見出し直後に小見出しが来る場合は上の余白を消す（Figmaは空段落なし） */
.legal-sec-title + .legal-subhead { margin-top: 0; }
.legal-list {
  list-style: decimal;
  padding-left: 27px;
  margin: 0;
  font-family: var(--font-jp);
  font-weight: 400;
  font-size: 18px;
  line-height: 34px;
}
.legal-list li { margin: 0; }
.legal-date {
  font-family: var(--font-jp);
  font-weight: 400;
  font-size: 18px;
  line-height: 34px;
  text-align: right;
  margin: 0;
}
.legal-body a {
  color: inherit;
  text-decoration: underline;
  word-break: break-all;
}
.legal-body a:hover { opacity: 0.7; }

/* ============================================================
   SP（≤749px）— 固定px → fluid（min(calc())／calc()）。
   N = Figma SP(375)値 × 2。375幅で元の値、750幅で2倍にキャップ。
   ============================================================ */
@media (max-width: 749px) {
  .legal {
    padding-top: calc(120 / 750 * 100vw);
    padding-bottom: calc(200 / 750 * 100vw);
  }
  .legal-inner { width: 100%; }
  /* SPはタイトルも本文と同じ左右インセット（Figma：tit幅335）。
     ブロック化＋全幅で「プライバシーポリシー」を2行に折返し、下線も全幅。 */
  .legal-head { padding-inline: calc(40 / 750 * 100vw); }
  .legal-title.common-h2 {
    display: block;
    width: 100%;
    font-size: min(calc(72 / 750 * 100vw), 72px);
    line-height: min(calc(112 / 750 * 100vw), 112px);
    padding-bottom: calc(20 / 750 * 100vw);
    margin-bottom: min(calc(100 / 750 * 100vw), 100px);   /* 新規ページ共通：SP下マージン */
  }
  .legal-title.common-h2::after { height: min(calc(62 / 750 * 100vw), 62px); }

  .legal-body { padding-inline: calc(40 / 750 * 100vw); }
  .legal-sec { margin-bottom: calc(60 / 750 * 100vw); }
  .legal-sec-title {
    font-size: min(calc(56 / 750 * 100vw), 56px);
    line-height: min(calc(84 / 750 * 100vw), 84px);
    margin-bottom: calc(20 / 750 * 100vw);
  }
  .legal-text,
  .legal-list,
  .legal-date {
    font-size: min(calc(36 / 750 * 100vw), 36px);
    line-height: min(calc(68 / 750 * 100vw), 68px);
  }
  .legal-list { padding-left: calc(54 / 750 * 100vw); }
  .legal-text--gap { margin-top: calc(68 / 750 * 100vw); }
  .legal-subhead {
    font-size: min(calc(40 / 750 * 100vw), 40px);
    line-height: min(calc(60 / 750 * 100vw), 60px);
    margin-top: calc(68 / 750 * 100vw);
  }
}

/* ============================================================
   WP本文（the_content 出力）— クラス無しのプレーン要素のみ対象
   ※ 静的HTML取り込みの legal-*（legal-text 等）クラス付き要素には
     干渉しないよう :not([class]) で限定。プレーン入力時の保険。
   ============================================================ */
.legal-body > *:first-child { margin-top: 0; }
.legal-body h2:not([class]) {
  font-family: var(--font-jp);
  font-weight: 700;
  font-size: 28px;
  line-height: 42px;
  color: #000;
  margin: 30px 0 10px;
}
.legal-body h3:not([class]) {
  font-family: var(--font-jp);
  font-weight: 700;
  font-size: 20px;
  line-height: 30px;
  letter-spacing: 2px;
  margin: 24px 0 8px;
}
.legal-body p:not([class]) {
  font-family: var(--font-jp);
  font-weight: 400;
  font-size: 18px;
  line-height: 34px;
  margin: 0 0 16px;
}
.legal-body ul:not([class]),
.legal-body ol:not([class]) {
  padding-left: 27px;
  margin: 0 0 16px;
  font-family: var(--font-jp);
  font-weight: 400;
  font-size: 18px;
  line-height: 34px;
}
.legal-body ol:not([class]) { list-style: decimal; }
.legal-body ul:not([class]) { list-style: disc; }
.legal-body li:not([class]) { margin: 0; }

@media (max-width: 749px) {
  .legal-body h2:not([class]) {
    font-size: min(calc(56 / 750 * 100vw), 56px);
    line-height: min(calc(84 / 750 * 100vw), 84px);
  }
  .legal-body h3:not([class]) {
    font-size: min(calc(40 / 750 * 100vw), 40px);
    line-height: min(calc(60 / 750 * 100vw), 60px);
  }
  .legal-body p:not([class]),
  .legal-body ul:not([class]),
  .legal-body ol:not([class]) {
    font-size: min(calc(36 / 750 * 100vw), 36px);
    line-height: min(calc(68 / 750 * 100vw), 68px);
  }
  .legal-body ul:not([class]),
  .legal-body ol:not([class]) { padding-left: calc(54 / 750 * 100vw); }
}
