/* 研修推進委員会サイト：余白とアイコンの調整（site.css の後に読む。値は tm.css の段階だけを使う）
   アイコンは意味を補うものだけに絞り、飾りとしては使わない。線だけの単色で、色は地・深に合わせる。 */

:root {
  --ic-tel: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.6%22%3E%3Cpath d=%22M6 3h3.5L11 8 8.5 9.5a11 11 0 0 0 6 6L16 13l5 1.5V18a3 3 0 0 1-3 3A15 15 0 0 1 3 6a3 3 0 0 1 3-3z%22/%3E%3C/svg%3E");
  --ic-mail: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.6%22%3E%3Crect x=%223%22 y=%225%22 width=%2218%22 height=%2214%22/%3E%3Cpath d=%22M3 6l9 7 9-7%22/%3E%3C/svg%3E");
  --ic-member: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.6%22%3E%3Ccircle cx=%2212%22 cy=%228%22 r=%224%22/%3E%3Cpath d=%22M4 21a8 8 0 0 1 16 0%22/%3E%3C/svg%3E");
  --ic-doc: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.6%22%3E%3Cpath d=%22M6 3h8l4 4v14H6zM14 3v4h4M9 12h6M9 16h6%22/%3E%3C/svg%3E");
  --ic-cal: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.6%22%3E%3Crect x=%223%22 y=%225%22 width=%2218%22 height=%2216%22/%3E%3Cpath d=%22M3 10h18M8 3v4M16 3v4%22/%3E%3C/svg%3E");
  --ic-down: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.6%22%3E%3Cpath d=%22M12 4v15M6 13l6 6 6-6%22/%3E%3C/svg%3E");
  --ic-ext: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.6%22%3E%3Cpath d=%22M14 4h6v6M20 4l-9 9M18 14v6H4V6h6%22/%3E%3C/svg%3E");
  --ic-award: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.6%22%3E%3Ccircle cx=%2212%22 cy=%229%22 r=%226%22/%3E%3Cpath d=%22M8.5 14L7 21l5-3 5 3-1.5-7%22/%3E%3C/svg%3E");
  --ic-renew: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.6%22%3E%3Cpath d=%22M20 11a8 8 0 0 0-14-4L4 9M4 4v5h5M4 13a8 8 0 0 0 14 4l2-2M20 20v-5h-5%22/%3E%3C/svg%3E");
  --ic-find: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.6%22%3E%3Ccircle cx=%2211%22 cy=%2211%22 r=%227%22/%3E%3Cpath d=%22M16 16l5 5%22/%3E%3C/svg%3E");
  --ic-play: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.6%22%3E%3Crect x=%223%22 y=%225%22 width=%2218%22 height=%2214%22/%3E%3Cpath d=%22M10 9l5 3-5 3z%22/%3E%3C/svg%3E");
  --ic-book: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%221.6%22%3E%3Cpath d=%22M4 5c3-1 6-1 8 1 2-2 5-2 8-1v14c-3-1-6-1-8 1-2-2-5-2-8-1zM12 6v14%22/%3E%3C/svg%3E");
}

/* ---------- 幅：画面に余裕がある時は柱を広げる（基本の幅より狭くはしない） ---------- */
:root {
  --container: clamp(1120px, 90vw, 1320px);
  --container-mid: clamp(860px, 76vw, 1120px);
  --container-narrow: clamp(760px, 58vw, 860px);
}
/* 表やカードは柱いっぱいに使い、文章だけ行が長くなりすぎないようにする（全角55字まで） */
.tm-lead, .site-text, .site-points, .tm-page--narrow .tm-prose > p, .tm-page--narrow .tm-prose > ul, .tm-page--narrow .tm-prose > ol { max-width: 55em; }
.tm-legal { grid-template-columns: 240px minmax(0, var(--container-narrow)); justify-content: center; }
@media (max-width: 760px) {
  .tm-legal { grid-template-columns: minmax(0, 1fr); }
}

/* ---------- 余白：全体をゆったりと ---------- */
.site-nb { white-space: nowrap; }
.tm-lead, .site-text, .site-points { line-height: 2; }
.tm-pt__in { padding-block: var(--space-9) var(--space-8); }
.tm-pt .tm-crumb { margin-bottom: var(--space-7); }
.tm-pt--meta .tm-lead { margin-top: var(--space-5); }
.tm-pt--meta .tm-dl { row-gap: var(--space-3); }
.tm-hero--editorial .tm-lead { margin-top: var(--space-7); }
.tm-hero__acts { margin-top: var(--space-8); }
.tm-spec div { padding-block: var(--space-4); }

.tm-sh { margin-bottom: var(--space-8); }
.site-body { padding-top: var(--space-9); }
.site-jump--first { margin-bottom: var(--space-9); }
.site-h3 { margin: var(--space-8) 0 var(--space-6); }
.site-gap { margin-top: var(--space-7); }
.site-gap-l { margin-top: var(--space-9); }
.site-more, .site-acts, .site-steps { margin-top: var(--space-8); }
.site-text + .site-points, .site-text + .tm-steps { margin-top: var(--space-5); }
.site-text.site-gap { margin-top: var(--space-7); }
.site-points li + li { margin-top: var(--space-4); }
.site-list li + li { margin-top: var(--space-2); }

.tm-table th, .tm-table td { padding-block: var(--space-4); padding-right: var(--space-5); }
.site-group th { padding-top: var(--space-7); }
.tm-news a { padding-block: var(--space-5); }
.tm-index li { padding-block: var(--space-6); }
.tm-steps > li { padding-block: var(--space-6); }
.tm-deflist div { padding-block: var(--space-7); }
.site-ev + .site-ev { margin-top: var(--space-8); }
.site-ev li + li { margin-top: var(--space-4); }
.tm-card--dl { padding: var(--space-4) var(--space-5); }
.tm-card--dl + .tm-card--dl { margin-top: var(--space-3); }
.tm-cta--contact .tm-cta__cell { padding-block: var(--space-6); }
.tm-cta--row .tm-cta__in { padding-top: var(--space-6); }
.tm-prose p + p { margin-top: var(--space-6); }
.tm-legal { padding-top: var(--space-8); }
.tm-ft__in { padding-block: var(--space-9) var(--space-7); }
.tm-ft__col a { padding-block: var(--space-1); }

/* 問い合わせが2件の時は2列にする（メールアドレスを途中で折り返さない） */
@media (min-width: 761px) {
  .tm-cta--contact .tm-cta__in:not(:has(> :nth-child(3))) { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 760px) {
  .tm-pt__in { padding-block: var(--space-7) var(--space-6); }
  .tm-pt .tm-crumb { margin-bottom: var(--space-5); }
  .tm-sh { margin-bottom: var(--space-6); }
  .site-body { padding-top: var(--space-7); }
  .site-jump--first { margin-bottom: var(--space-8); }
  .site-h3 { margin: var(--space-7) 0 var(--space-5); }
  .site-gap-l { margin-top: var(--space-8); }
  .site-more, .site-acts, .site-steps { margin-top: var(--space-7); }
  .tm-table th, .tm-table td { padding-right: var(--space-3); }
  .tm-news a { padding-block: var(--space-4); }
  .tm-index li { padding-block: var(--space-5); }
  .tm-deflist div { padding-block: var(--space-5); }
  .tm-card--dl { padding: var(--space-4); }
  .tm-cta--contact .tm-cta__cell { padding-block: var(--space-5); }
  .tm-ft__in { padding-block: var(--space-8) var(--space-6); }
}

/* ---------- アイコン ---------- */
.tm-cta--contact .tm-label::before,
.tm-card--dl .tm-card__t::before,
.tm-index h3 a::before,
.tm-hd__act .tm-btn::before,
.tm-hero__acts .tm-btn--primary::before,
a.tm-btn[href$=".pdf"]::before,
.tm-ft__col a[href^="https://www.japha.jp/"]::after,
.site-jump .tm-tx::after {
  content: ""; display: inline-block; flex: none; width: 1.15em; height: 1.15em; vertical-align: -.2em;
  background: currentColor;
  -webkit-mask: var(--ic) center / contain no-repeat; mask: var(--ic) center / contain no-repeat;
}

/* 問い合わせ：電話・メール・会員専用ページ */
.tm-cta--contact .tm-label { display: flex; align-items: center; gap: var(--space-2); color: var(--base-deep); }
.tm-cta--contact .tm-label::before { --ic: var(--ic-tel); width: 18px; height: 18px; }
.tm-cta--contact .tm-cta__cell:has(.site-mail) .tm-label::before { --ic: var(--ic-mail); }
.tm-cta--contact .tm-cta__cell:has(.site-cell-link) .tm-label::before { --ic: var(--ic-member); }

/* 資料（PDF） */
.tm-card--dl .tm-card__t { display: flex; align-items: flex-start; gap: var(--space-3); }
.tm-card--dl .tm-card__t::before { --ic: var(--ic-doc); width: 20px; height: 20px; margin-top: .25em; color: var(--base-deep); }
a.tm-btn[href$=".pdf"]::before { --ic: var(--ic-doc); }

/* 目的から探す */
.tm-index h3 a { text-decoration: none !important; }
.tm-index h3 a:hover { text-decoration: underline !important; }
.tm-index h3 a::before { --ic: var(--ic-book); width: 22px; height: 22px; margin-right: var(--space-2); color: var(--base-deep); }
.tm-index h3 a[href^="/youken/#new"]::before { --ic: var(--ic-award); }
.tm-index h3 a[href^="/youken/#renew"]::before { --ic: var(--ic-renew); }
.tm-index h3 a[href^="/schedule/"]::before { --ic: var(--ic-cal); }
.tm-index h3 a[href^="/tani/"]::before { --ic: var(--ic-find); }
.tm-index h3 a[href^="/archive/"]::before { --ic: var(--ic-play); }

/* 申請日程へのボタン */
.tm-hd__act .tm-btn::before, .tm-hero__acts .tm-btn--primary::before { --ic: var(--ic-cal); }

/* ページ内の目次は下向きの矢印（同じページの中で移動することを示す） */
.site-jump .tm-tx::after { --ic: var(--ic-down); margin-left: .4em; }

/* 別サイトへのリンク */
.tm-ft__col a[href^="https://www.japha.jp/"]::after { --ic: var(--ic-ext); width: 12px; height: 12px; margin-left: .4em; vertical-align: -.05em; color: var(--ink-3); }
