/* 規約・方針系ページ共通のドキュメントレイアウト */
.doc{
  padding: clamp(48px, 5.5vw, 72px) 0 clamp(56px, 6.5vw, 80px);
}
/* base.css の section 共通 padding を打ち消す */
.doc section{
  padding: 0;
  margin-bottom: 40px;
}
.doc section:last-child{ margin-bottom: 0; }
/* 制定日・更新日のメタ情報 */
.doc-meta{
  font-size: 14px;
  color: var(--text-sub);
  margin: 0 0 32px;
  padding-bottom: 20px;
  border-bottom: 1px solid var(--line);
}
.doc-meta .label{
  display: inline-block;
  min-width: 5.5em;
  color: var(--text);
  font-weight: 700;
}
/* 前文（リード） */
.doc-lead{
  font-size: 15.5px;
  line-height: 2;
  color: var(--text);
  margin: 0 0 40px;
}
/* 大見出し（条見出し） */
.doc h2{
  font-size: clamp(22px, 2.4vw, 26px);
  font-weight: 700;
  line-height: 1.55;
  letter-spacing: 0.03em;
  margin: 0 0 24px;
  padding-left: 14px;
  border-left: 3px solid var(--accent);
}
/* 中見出し */
.doc h3{
  font-size: 17px;
  font-weight: 700;
  line-height: 1.7;
  margin: 36px 0 14px;
  letter-spacing: 0.02em;
}
.doc h3[id]{
  scroll-margin-top: 84px;
}
/* 本文 */
.doc p{
  margin: 0 0 16px;
  line-height: 1.95;
}
.doc p:last-child{ margin-bottom: 0; }
/* 箇条書き（ul: ダッシュマーカー / ol: (1) 形式の連番） */
.doc ul,
.doc ol{
  margin: 12px 0 16px;
  padding-left: 0;
  list-style: none;
}
.doc ul li,
.doc ol li{
  position: relative;
  padding: 4px 0 4px 22px;
  line-height: 1.9;
}
.doc ul li::before{
  content: "";
  position: absolute;
  left: 4px; top: 17px;
  width: 10px; height: 1px;
  background: var(--text);
}
.doc ol{ counter-reset: doc-ol; }
.doc ol li{
  counter-increment: doc-ol;
  padding-left: 40px;
}
.doc ol li::before{
  content: "(" counter(doc-ol) ")";
  position: absolute;
  left: 0; top: 4px;
  width: 32px;
  text-align: right;
  color: var(--text);
  font-family: "JetBrains Mono", monospace;
  font-size: 14px;
}
/* 目次リンクは番号も含めて一体でクリックできるようにする */
.doc ol li{
  padding-left: 0;
}
.doc ol li::before{
  content: none;
}
.doc ol li a{
  color: var(--text);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.16em;
}
.doc ol li a::before{
  content: "(" counter(doc-ol) ") ";
  color: currentColor;
  font-family: "JetBrains Mono", monospace;
  font-size: 14px;
}
.doc ol li a:hover{
  color: var(--accent);
}
/* 注記 */
.doc .note{
  font-size: 13.5px;
  color: var(--text-sub);
  line-height: 1.85;
  margin-top: 12px;
}
/* お問い合わせ先ブロック（dl レイアウト） */
.doc .contact-block{
  margin-top: 16px;
  padding: 20px 24px;
  background: var(--bg-sub);
  border: 1px solid var(--line);
}
.doc .contact-block dl{
  margin: 0;
  display: grid;
  grid-template-columns: 11em 1fr;
  row-gap: 8px;
  column-gap: 16px;
}
.doc .contact-block dt{
  margin: 0;
  font-weight: 700;
  color: var(--text);
  font-size: 14px;
}
.doc .contact-block dd{
  margin: 0;
  color: var(--text);
  font-size: 14.5px;
  line-height: 1.85;
}
/* 制定・改定履歴 */
.doc-revisions{
  margin-top: 72px;
  padding-top: 32px;
  border-top: 1px solid var(--line);
  font-size: 13.5px;
  color: var(--text-sub);
  line-height: 1.9;
}
.doc-revisions p{ margin: 0 0 4px; }
.doc-revisions .sig{
  margin-top: 20px;
  color: var(--text);
  font-weight: 700;
  font-size: 14px;
}
/* 末尾の「以上」など署名行（PCは右寄せ／SPは左寄せ） */
.doc-sig{
  margin-top: 20px;
  text-align: right;
}
/* ===== レスポンシブ（≤ 767px） ===== */
@media (max-width: 767px){
  .doc h3[id]{
    scroll-margin-top: 72px;
  }
  .doc .contact-block dl{ grid-template-columns: 1fr; row-gap: 2px; }
  .doc .contact-block dt{ margin-top: 10px; }
  .doc .contact-block dt:first-child{ margin-top: 0; }
  .doc-sig{ text-align: left; }
}
/* =========================================================
   N-1 / SOFT CARD section heading
   ========================================================= */
.sec-head:has(.h-section) {
  display: block;
  border-bottom: 0;
  padding-bottom: 0;
  margin-bottom: clamp(28px, 3.4vw, 40px);
  gap: 0;
}
.h-section {
  position: relative;
  display: block;
  width: 100%;
  padding: 18px 24px 18px 28px;
  background: #fff;
  border-radius: 10px;
  border: 1px solid #eef0f2;
  box-shadow:
    0 1px 0 rgba(0, 0, 0, 0.02),
    0 12px 28px -16px rgba(15, 23, 42, 0.18),
    0 2px 6px -2px rgba(15, 23, 42, 0.06);
  box-sizing: border-box;
}
.h-section::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 4px;
  background: linear-gradient(180deg, var(--accent) 0%, #8a0014 100%);
  border-radius: 10px 0 0 10px;
}
.h-section h2 {
  margin: 0;
  font-size: clamp(20px, 2.4vw, 26px);
  font-weight: 700;
  letter-spacing: 0.04em;
  line-height: 1.4;
  color: var(--text);
  padding-left: 0;
  border-left: none;
}
.sec-head .h-section + .sec-lead,
.h-section + .sec-lead {
  color: var(--text-sub);
  font-size: 15px;
  line-height: 1.95;
  margin: 16px 0 0;
  max-width: 720px;
}
/* privacy — セクション見出し（小さめ variant）
   common/h-section.css の後に読み込んで padding のみ上書きする。
   TOP（22-28-22-32）→ 共通（18-24-18-28）→ privacy（14-20-14-24）の対称構造。 */
.h-section {
  padding: 14px 20px 14px 24px;
}
