/* 研修推進委員会サイト固有の調整（tm.css は書き換えない。値は tm.css の段階だけを使う） */

/* 本文へ移動（キーボード操作の時だけ見える） */
.site-skip { position: absolute; left: var(--space-4); top: -100px; z-index: 60; background: var(--paper); color: var(--ink); padding: var(--space-2) var(--space-4); outline: 2px solid var(--focus); }
.site-skip:focus { top: var(--space-2); }

/* 下層ページの本文の柱 */
.site-body { padding-top: var(--space-8); padding-bottom: var(--space-10); }
.site-part + .site-part { margin-top: var(--space-10); }
.site-h3 { margin: var(--space-7) 0 var(--space-5); }
.site-part .tm-sh + .site-h3 { margin-top: 0; }
.site-gap { margin-top: var(--space-6); }
.site-gap-l { margin-top: var(--space-8); }
.site-more { margin-top: var(--space-6); }
.site-prose-next { margin-top: var(--space-9); }
.site-steps { margin-top: var(--space-7); }
.site-acts { margin-top: var(--space-7); }

/* 表の中の箇条書きと、上揃えの表 */
.site-list { margin: 0; padding-left: 1.2em; list-style: disc; }
.site-list li + li { margin-top: var(--space-1); }
.site-list + .tm-muted { display: block; margin-top: var(--space-2); }

/* 規則の章見出し */
.site-chapter { margin: var(--space-8) 0 0; font-size: 13px; letter-spacing: .14em; color: var(--ink-3); }
.site-chapter:first-child { margin-top: 0; }
.site-chapter + h2 { margin-top: var(--space-5); }

/* 問い合わせ欄 */
.site-mail { font-size: 19px; word-break: break-all; }
.site-cell-link { margin: 10px 0 6px; }

/* スマホのメニュー（MobileMenuFull を画面いっぱいに固定） */
.site-menu { position: fixed; inset: 0; z-index: 80; background: var(--paper); }
.site-menu[hidden] { display: none; }
.site-menu .tm-sheet-full { overflow-y: auto; }
.site-menu__bar { display: flex; align-items: center; justify-content: space-between; gap: var(--space-4); height: var(--header-height); border-bottom: 1px solid var(--rule); }
.site-menu__tel { margin: 0; font-size: 14px; line-height: 1.8; }
.site-menu__tel a { color: var(--ink); }
html.site-menu-open { overflow: hidden; }

/* 上に戻る */
.site-totop { position: fixed; right: var(--space-5); bottom: var(--space-5); z-index: 30; opacity: 0; visibility: hidden; transition: opacity .3s, visibility .3s; }
.site-totop.is-on { opacity: 1; visibility: visible; }

@media (max-width: 760px) {
  .site-body { padding-top: var(--space-7); padding-bottom: var(--space-9); }
  .site-part + .site-part { margin-top: var(--space-9); }
  .site-totop { right: var(--space-4); bottom: var(--space-4); }
}

/* 節の中に置く誘導・問い合わせ欄は、節の余白に任せる（見本と同じく上下の余白を外す） */
.tm-sec .tm-cta--contact, .site-part .tm-cta--contact, .site-part .tm-cta--row { padding-block: 0; }

/* 注記のすぐ後の節は、節見出しの上の余白を取る */
.site-body > .tm-note + .site-part { margin-top: var(--space-8); }
.tm-legal__body .site-chapter { margin-top: var(--space-9); }
.tm-legal__body .site-chapter:first-child { margin-top: 0; }

/* ページ内の目次（読みたい節へ飛ぶ） */
.site-jump { display: flex; flex-wrap: wrap; gap: var(--space-3) var(--space-6); margin-top: var(--space-6); }
[id] { scroll-margin-top: calc(var(--header-height) + var(--space-5)); }

/* 条件・注意の箇条書き（読み落とされないよう本文の大きさで） */
.site-points { margin: 0; padding-left: 1.3em; list-style: disc; font-size: 15.5px; line-height: 1.9; color: var(--ink); }
.site-points li + li { margin-top: var(--space-3); }
.site-points--num { list-style: decimal; }
.site-text { margin: 0; font-size: 15.5px; line-height: 1.9; }
.site-text + .site-points, .site-text + .tm-steps { margin-top: var(--space-4); }
.site-text.site-gap { margin-top: var(--space-6); }

/* 表：本文に近い大きさに。補足は値の下に添える */
.site-body .tm-table, .site-home-table { font-size: 15px; line-height: 1.8; }
.site-sub { display: block; margin-top: 2px; font-size: 13.5px; color: var(--ink-2); }
.site-val { font-weight: 500; }
.tm-table.site-cmp { table-layout: fixed; }
.site-cmp th:first-child { width: 11em; }
.site-fit tbody th { width: 46%; }
.site-date tbody th { width: 13em; }
.site-group th { padding-top: var(--space-6); border-bottom-color: var(--rule); font-size: 13px; font-weight: 500; letter-spacing: .1em; color: var(--base-deep); }

/* WEBアーカイブ版の一覧（年ごとの定義表） */
.site-years dt { font-family: var(--font-num); font-size: 24px; font-weight: 300; line-height: 1.4; color: var(--base-deep); }
.site-years dt small { font-family: var(--font-sans); font-size: 13px; }
.site-years > div { grid-template-columns: 120px 1fr; }
.site-years dd { color: var(--ink); font-size: 15px; }
.site-ev + .site-ev { margin-top: var(--space-7); }
.site-ev__t { margin: 0; font-size: 17px; font-weight: 500; letter-spacing: .04em; line-height: 1.7; }
.site-ev__t .tm-cat { margin-left: var(--space-2); vertical-align: 2px; }
.site-ev__m { margin: 0; font-size: 13.5px; color: var(--ink-2); }
.site-ev ul { margin: var(--space-3) 0 0; padding: 0; list-style: none; }
.site-ev li + li { margin-top: var(--space-3); }

/* 規則の目次：条の番号をそのまま見せる（自動の連番は第9条の欠番とずれるため使わない） */
.site-toc a { grid-template-columns: 4em 1fr; }
.site-toc a::before { content: none; }
.site-toc__n { font-family: var(--font-num); color: var(--base-deep); }

/* 結びのことば */
.site-closing { margin: var(--space-9) 0 0; }
.site-closing .tm-sign { margin-top: var(--space-4); }

@media (max-width: 760px) {
  /* 表を横に送らせない。2列の表は画面に収め、比較の表は行ごとに縦へ積む */
  .tm-table.site-fit, .tm-table.site-stack { min-width: 0; table-layout: auto; }
  .site-fit th, .site-fit td { white-space: normal; }
  .site-fit tbody th { width: 44%; }
  .site-date tbody th { width: 38%; }
  .site-stack thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
  .site-stack, .site-stack tbody, .site-stack tr, .site-stack tbody th, .site-stack td { display: block; width: auto; white-space: normal; }
  .site-stack tr { padding: var(--space-4) 0; border-bottom: 1px solid var(--rule-soft); }
  .site-stack tbody th, .site-stack td { padding: 0; border: 0; }
  .site-stack td { margin-top: var(--space-2); }
  .site-stack td[data-label]::before { content: attr(data-label); display: block; font-size: 12.5px; letter-spacing: .08em; color: var(--ink-3); }
  .site-stack td.is-none { display: none; }
  .site-years > div { grid-template-columns: 1fr; gap: var(--space-3); }
  .site-jump { gap: var(--space-3) var(--space-5); }
}

/* 本文の頭に置くページ内の目次 */
.site-jump--first { margin-top: 0; margin-bottom: var(--space-8); }
.tm-prose ol { list-style: decimal; }

/* 幅の狭いスマホではヘッダーの英文名を外して MENU を画面に収める */
@media (max-width: 360px) {
  .tm-hd .tm-brand__name small, .site-menu__bar .tm-brand__name small { display: none; }
  .tm-hd__in { gap: var(--space-2); }
  .tm-menubtn { gap: var(--space-2); letter-spacing: .06em; }
  .tm-menubtn__bars { width: 16px; }
}
