/* &Style 利用規約 — 本文の共通スタイル（独立ページ／申込みページのスクロール枠で共用）
   色・フォントは style2026/style.css の変数を使用 */

.terms-body {
  color: var(--charcoal);
  font-size: 16px;
  line-height: 1.95;
  letter-spacing: 0.01em;
}
.terms-body .terms-lead {
  margin: 0 0 28px;
}
.terms-article {
  margin: 0 0 30px;
  padding: 0;
}
.terms-article h2 {
  font-family: "Shippori Mincho", serif;
  font-size: 18px;
  font-weight: 700;
  color: var(--olive-dark);
  line-height: 1.5;
  margin: 0 0 12px;
  padding: 0 0 8px;
  border-bottom: 1px solid var(--olive-pale);
}
.terms-article p { margin: 0 0 10px; }
.terms-article ol {
  margin: 0;
  padding-left: 1.6em;
}
.terms-article ol > li { margin: 0 0 8px; padding-left: 0.2em; }
.terms-article ol.terms-sub {
  list-style: none;
  counter-reset: sub;
  padding-left: 0.4em;
  margin: 8px 0 4px;
}
.terms-article ol.terms-sub > li {
  counter-increment: sub;
  position: relative;
  padding-left: 2.2em;
  margin-bottom: 4px;
}
.terms-article ol.terms-sub > li::before {
  content: "（" counter(sub) "）";
  position: absolute;
  left: -0.4em;
  color: var(--charcoal-soft);
}
.terms-example {
  margin: 10px 0 6px;
  padding: 12px 16px;
  background: var(--olive-pale);
  border-radius: var(--radius-sm);
  font-size: 15px;
  line-height: 1.8;
}
.terms-example-title {
  margin: 0 0 4px !important;
  font-weight: 700;
  color: var(--olive-dark);
}
.terms-example ul { list-style: none; margin: 0; padding: 0; }
.terms-example li { margin: 0; }
.terms-meta {
  margin-top: 36px;
  padding-top: 18px;
  border-top: 1px solid var(--beige);
  font-size: 15px;
  color: #F7F4EA; /* light ivory on the dark-green footer background */
  line-height: 1.9;
}
.terms-meta p { margin: 0; }

/* ---- 申込みページ用：固定高さのスクロール枠 ---- */
.terms-box-title {
  font-family: "Shippori Mincho", serif;
  font-size: 19px;
  color: var(--olive-dark);
  margin: 0 0 10px;
}
.terms-scroll {
  position: relative;
  height: 320px;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
  background: var(--white);
  border: 1.5px solid var(--beige);
  border-radius: var(--radius-sm);
  padding: 20px 18px;
  scrollbar-width: thin;
  scrollbar-color: var(--olive-light) transparent;
}
.terms-scroll::-webkit-scrollbar { width: 8px; }
.terms-scroll::-webkit-scrollbar-thumb { background: var(--olive-light); border-radius: 8px; }
.terms-scroll .terms-body { font-size: 15px; line-height: 1.85; }
.terms-scroll .terms-article h2 { font-size: 16.5px; }
.terms-scroll-hint {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  margin: 8px 2px 0;
  font-size: 13px;
  color: var(--charcoal-soft);
}
.terms-scroll-hint a { color: var(--olive-dark); text-decoration: underline; white-space: nowrap; flex: none; }
@media (max-width: 640px) {
  .terms-scroll { height: 300px; padding: 16px 14px; }
}
