@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;700&display=swap');

/* 最小・安全なスコープ（law-section内だけ） */
.law-section .lead { margin: .5rem 0 0; }
.law-section .mini-table {
  width: 100%;
  border-collapse: collapse;
  margin: .75rem 0 0;
  font-size: clamp(14px, 1.8vw, 16px);
}
.law-section .mini-table th,
.law-section .mini-table td {
  padding: .6rem .8rem;
  border-bottom: 1px solid var(--table-border, #e6e6e6);
  vertical-align: top;
}
.law-section .mini-table thead th {
  background: var(--table-head, #f6f8fa);
  text-align: left;
  font-weight: 600;
}
.law-section .mini-table td.need { font-weight: 700; color: #166534; }      /* 緑=必要 */
.law-section .mini-table td.principle { font-weight: 700; color: #1e40af; } /* 青=原則必要 */
.law-section .note { margin-top: .25rem; font-size: .9em; color: #555; }

/* law-section 内だけに効く最小スタイル */
.law-section .req-table{
  width:100%;
  border-collapse:collapse;
  margin:.6rem 0 1rem;
  font-size:clamp(14px,1.8vw,16px);
  line-height:1.6;
}
.law-section .req-table th,
.law-section .req-table td{
  padding:.65rem .8rem;
  border-bottom:1px solid var(--table-border,#e6e6e6);
  vertical-align:top;
}
.law-section .req-table thead th{
  background:var(--table-head,#f6f8fa);
  text-align:left;
  font-weight:600;
}
.law-section .req-table td:first-child{
  font-weight:700; text-align:center; white-space:nowrap;
}



/* 横スクロールのラッパー：このテーブルだけに効く */
.law-section .table-scroll{
  overflow-x: auto;
  -webkit-overflow-scrolling: touch; /* iOS慣性スクロール */
  margin: .6rem 0 1rem;
  /* 下の行がレイアウト崩れの原因になる環境があるため一旦オフでもOK
     mask-image: linear-gradient(to right, black 85%, rgba(0,0,0,0.6)); */
}

/* テーブルの基本：PCはコンテナ幅にフィット、スマホだけ最小幅を確保 */
.law-section .table-scroll .req-table{
  width: 100%;
  border-collapse: collapse;
}

/* スマホ幅だけ “横スクロール用の最小幅” を付与 */
@media (max-width: 768px){
  .law-section .table-scroll .req-table{
    min-width: 680px; /* ← 920pxだと大柄すぎる場合が多い。必要なら 680〜820px で微調整 */
  }
}

/* 既存 */
.law-section .req-table th,
.law-section .req-table td{
  padding: .65rem .8rem;
  border-bottom: 1px solid var(--table-border,#e6e6e6);
  vertical-align: top;
  line-height: 1.6;
  overflow-wrap: anywhere;   /* 箇条書きの長文でも折り返す */
}

.law-section .req-table thead th{
  background: var(--table-head,#f6f8fa);
  text-align: left; font-weight: 600;
}
.law-section .req-table td:first-child{
  font-weight: 600; text-align: center; white-space: nowrap; width: 4em;
}

/* 箇条書き（③） */
.law-section .req-table td ul{
  margin: .45rem 0 0 1.1rem;
  padding: 0;
}
.law-section .req-table td ul li{ margin: .2rem 0; }
