/* policy.css — 規程・ポリシー文書ページ共通スタイル
   （広告ポリシー等の条文形式ドキュメント向け） */

.policy {
  max-width: 880px;
  margin: 0 auto;
  padding: 56px 5% 80px;
}

.policy-volume {
  font-size: clamp(1.8rem, 2.6vw, 2.4rem);
  font-weight: 700;
  letter-spacing: 0.04em;
  padding-bottom: 20px;
  border-bottom: 2px solid var(--base-color);
  margin-bottom: 24px;
}

.policy-lead {
  font-size: 1.45rem;
  line-height: 1.9;
  margin-bottom: 40px;
}

/* ===== 条（article） ===== */
.policy-article {
  margin-bottom: 36px;
}

.policy-article-title {
  font-size: 1.7rem;
  font-weight: 700;
  line-height: 1.5;
  padding-left: 14px;
  border-left: 4px solid var(--base-color);
  margin-bottom: 14px;
}

/* 第1項・第2項…（算用数字） */
.policy-items {
  list-style: none;
  counter-reset: policy-item;
}

.policy-items > li {
  counter-increment: policy-item;
  position: relative;
  padding-left: 1.8em;
  font-size: 1.4rem;
  line-height: 1.95;
}

.policy-items > li + li {
  margin-top: 12px;
}

.policy-items > li::before {
  content: counter(policy-item);
  position: absolute;
  left: 0;
  font-weight: 700;
}

/* 号（1）（2）… */
.policy-subitems {
  list-style: none;
  counter-reset: policy-sub;
  margin: 10px 0 4px;
}

.policy-subitems > li {
  counter-increment: policy-sub;
  position: relative;
  padding-left: 2.6em;
  font-size: 1.4rem;
  line-height: 1.9;
}

.policy-subitems > li::before {
  content: "（" counter(policy-sub) "）";
  position: absolute;
  left: 0;
}

/* 注記の引用ブロック */
.policy-quote {
  margin: 12px 0 0;
  padding: 14px 18px;
  background-color: #f5f5f5;
  border-left: 3px solid #bbb;
  font-size: 1.35rem;
  line-height: 1.8;
}

/* ===== 用語対照表（第5条） ===== */
.policy-table-wrap {
  margin-top: 16px;
  overflow-x: auto;
}

.policy-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 1.35rem;
  line-height: 1.7;
}

.policy-table th,
.policy-table td {
  border: 1px solid #d8d8d8;
  padding: 12px 16px;
  text-align: left;
  vertical-align: top;
}

.policy-table thead th {
  background-color: var(--base-color);
  color: #fff;
  font-weight: 700;
  white-space: nowrap;
}

.policy-table tbody th {
  font-weight: 400;
  background-color: #faf6f6;
}

/* ===== 定義表（特商法表示・情報開示など 項目／内容） ===== */
.policy-deftable {
  width: 100%;
  border-collapse: collapse;
  font-size: 1.4rem;
  line-height: 1.85;
  margin-top: 8px;
}

.policy-deftable th,
.policy-deftable td {
  border: 1px solid #d8d8d8;
  padding: 16px 18px;
  text-align: left;
  vertical-align: top;
}

.policy-deftable th {
  width: 32%;
  background-color: #faf6f6;
  font-weight: 700;
}

.policy-deftable a {
  text-decoration: underline;
  text-underline-offset: 3px;
}

.policy-deftable a:hover {
  opacity: 0.7;
}

@media (max-width: 768px) {
  .policy-deftable,
  .policy-deftable tbody,
  .policy-deftable tr,
  .policy-deftable th,
  .policy-deftable td {
    display: block;
    width: 100%;
  }

  .policy-deftable th {
    border-bottom: none;
    padding-bottom: 6px;
  }

  .policy-deftable td {
    border-top: none;
  }
}

/* ===== 制定・改定情報 ===== */
.policy-meta {
  margin-top: 56px;
  padding-top: 24px;
  border-top: 1px solid #e0e0e0;
  font-size: 1.3rem;
  line-height: 1.9;
  color: var(--sub-color);
}

.policy-meta .policy-meta-org {
  margin-top: 16px;
  color: var(--base-color);
  font-weight: 700;
}

/* ===== Responsive ===== */
@media (max-width: 768px) {
  .policy {
    padding: 40px 6% 64px;
  }

  .policy-table th,
  .policy-table td {
    padding: 10px 12px;
  }
}
