/* ===== Privacy Policy (JP) — Left aligned, no left bar ===== */
/* 使い方：本文を <div class="policy"> … </div> で囲む */
:root{
  --policy-accent: #2D5EA3; /* 見出し・リンク色（ブランド色に変更可） */
  --policy-text:   #2b2b2b;
  --policy-muted:  #64748b;
  --policy-border: #e6edf7;
  --policy-bg:     #fff;
}

.policy{
  max-width: 920px;
  margin: 0 auto;
  padding: clamp(28px,6vw,72px) 16px clamp(64px,8vw,120px);
  color: var(--policy-text);
  background: var(--policy-bg);
  line-height: 1.9;
  font-family: "Noto Sans JP", system-ui, -apple-system, "Hiragino Kaku Gothic ProN",
               "Yu Gothic Medium","Yu Gothic","Meiryo", sans-serif;
  text-underline-offset: .2em;
  counter-reset: section;
  text-align: left; /* ← 全体を左揃え */
}

/* タイトル */
.policy h1{
  margin: 0 0 .8em;
  font-weight: 800;
  letter-spacing: .02em;
  font-size: clamp(22px,4.2vw,36px);
  color: var(--policy-text);
  text-align: left;
}
.policy h1 + p{ margin-top: .5em; color: var(--policy-muted); }

/* セクション見出し（左揃え・飾り無し・自動番号のみ） */
.policy h2{
  margin: clamp(28px,5vw,44px) 0 .6em;
  font-weight: 800;
  font-size: clamp(16px,2.6vw,22px);
  padding-left: 0;               /* ← 余白リセット */
  color: #7AC8F0;
}
.policy h2::before{ content: none; } /* ← 左側の棒を消す */

/* 小見出し */
.policy h3{
  margin: 1.2em 0 .4em;
  font-size: clamp(15px,2.2vw,18px);
  color: var(--policy-text);
  font-weight: 700;
}

/* 段落 */
.policy p{ margin: .8em 0; }
.policy strong{ font-weight: 800; }

/* リスト（左揃え・適切なインデント） */
.policy ul, .policy ol{
  margin: .6em 0 .8em 0;
  padding-left: 1.4em;  /* ← インデントは padding で */
  text-align: left;
}
.policy ul{ list-style: disc outside; }
.policy ol{ list-style: decimal outside; }
.policy li{ margin: .25em 0; }

/* 定義リスト */
.policy dl{ margin: 1em 0 1.6em; }
.policy dt{
  margin-top: 1em;
  font-weight: 700;
  color: var(--policy-text);
}
.policy dd{
  margin: .35em 0 0;
  padding-left: 12px;
  border-left: 3px solid var(--policy-border);
  color: var(--policy-text);
}

/* 表 */
.policy table{
  width: 100%;
  border-collapse: collapse;
  margin: 1em 0;
  font-size: .97em;
}
.policy th, .policy td{
  border: 1px solid var(--policy-border);
  padding: .7em .9em;
  vertical-align: top;
  text-align: left;
}
.policy th{
  background: #f6faff;
  font-weight: 700;
}

/* リンク */
.policy a{
  color: var(--policy-accent);
  text-decoration: underline;
  text-decoration-thickness: 2px;
}

/* 細注・注記 */
.policy .note{
  margin: 1em 0;
  padding: .9em 1em;
  border: 1px dashed var(--policy-border);
  background: #fbfdff;
  color: var(--policy-muted);
  font-size: .95em;
}

/* 余白調整（最後だけ広め） */
.policy > *:last-child{ margin-bottom: 0; }

/* スマホ最適化 */
@media (max-width: 640px){
  .policy{ padding-left: 20px; padding-right: 20px; }
  .policy h2{ margin-top: 28px; }
  .policy table{ font-size: .95em; }
  .policy th, .policy td{ padding: .6em .7em; }
}

/* 印刷用 */
@media print{
  .policy{
    max-width: 100%;
    padding: 0;
    color: #000;
  }
  .policy a{ color: #000; text-decoration: none; }
  .policy h2{ page-break-after: avoid; }
  .policy h2, .policy h3{ break-after: avoid-page; }
  .policy table{ page-break-inside: avoid; }
}
