/* 独立ページテンプレート専用CSS（テーマ共通CSSは読み込まれない） */
*, *::before, *::after { box-sizing: border-box; }

body.standalone-page {
  margin: 0;
  background: #fff;
  color: #231815;
  font-family: "Noto Sans JP", -apple-system, BlinkMacSystemFont, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
  line-height: 1.8;
  -webkit-text-size-adjust: 100%;
}

.sa-page {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  background: #fff;
}

/* Header */
.sa-header {
  padding: 16px 20px;
  background: #fff;
  text-align: left;
}
.sa-header__logo { display: inline-block; line-height: 0; }
.logo { max-width: 100%; height: auto; }
.logo__color-main { fill: #231815; }
.logo__color-sub { fill: #E08A2C; }

/* Main */
.sa-main {
  flex: 1 0 auto;
  width: 100%;
  max-width: 960px;
  margin: 0 auto;
  padding: 24px 20px 64px;
}
.sa-page { background: #F7F5F2; }
.sa-header, .sa-footer { background: #fff; }

.sa-breadcrumb { margin: 0 0 32px; font-size: 0.875rem; line-height: 1.6; }
.sa-breadcrumb a { color: #1a6fd6; text-decoration: none; }
.sa-breadcrumb a:hover { text-decoration: underline; }
.sa-breadcrumb__sep { margin: 0 6px; }

.sa-title { margin: 0 0 32px; font-size: 2rem; font-weight: 700; line-height: 1.4; }
.sa-content {
  padding: 32px 40px 40px;
  background: #fff;
  border-radius: 20px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
  font-size: 0.9375rem;
  overflow-wrap: anywhere;
}
.sa-content img { max-width: 100%; height: auto; }
.sa-content p { margin: 0 0 1em; }
.sa-content a { color: #1a6fd6; }

/* 条見出し(緑の縦線) */
.sa-content h2 {
  margin: 48px 0 20px;
  padding: 4px 0 4px 20px;
  border-left: 6px solid #14b8a6;
  font-size: 1.5rem;
  line-height: 1.4;
}
.sa-content h2:first-child, .sa-content > .sa-section:first-child h2 { margin-top: 0; }
.sa-content .sa-section > :not(h2) { margin-left: 26px; }

/* 条文の番号リスト */
.sa-content ol, .sa-content ul { margin: 0 0 1em; padding-left: 1.6em; }
.sa-content li { margin-bottom: 0.6em; }
.sa-content ol.sa-paren { list-style: none; counter-reset: sa-paren; padding-left: 0; }
.sa-content ol.sa-paren > li { counter-increment: sa-paren; padding-left: 2.4em; text-indent: -2.4em; }
.sa-content ol.sa-paren > li::before { content: "(" counter(sa-paren) ")"; display: inline-block; width: 2.4em; text-indent: 0; }
.sa-content ol.sa-alpha { list-style: lower-alpha; margin-top: 0.6em; }
.sa-content ul.sa-sub { list-style: none; padding-left: 0; margin: 0.6em 0 0; }
.sa-content ul.sa-sub li { padding-left: 2.6em; text-indent: -2.6em; margin-bottom: 0.4em; }
.sa-content .sa-end { margin-top: 32px; text-align: right; }

/* 表(Cookieポリシー)
   広い画面: 表 / 1100px以下: 1行ずつのカード表示(各セルに data-label の項目名を出す) */
.sa-main:has(.sa-table-wrap) { max-width: 1200px; }
.sa-table-wrap { margin-top: 8px; }
.sa-content table { width: 100%; border-collapse: collapse; font-size: 0.8125rem; line-height: 1.6; }
.sa-content th, .sa-content td { padding: 10px 12px; border: 1px solid #ccc; vertical-align: top; text-align: left; overflow-wrap: anywhere; }
.sa-content th { background: #f1efec; }
.sa-content .sa-table { table-layout: fixed; }
.sa-content .sa-table th:nth-child(1) { width: 11%; }
.sa-content .sa-table th:nth-child(2) { width: 10%; }
.sa-content .sa-table th:nth-child(3) { width: 15%; }
.sa-content .sa-table th:nth-child(4) { width: 14%; }
.sa-content .sa-table th:nth-child(5) { width: 18%; }
.sa-content .sa-table th:nth-child(6) { width: 16%; }
.sa-content .sa-table th:nth-child(7) { width: 16%; }

@media (max-width: 1100px) {
  .sa-content .sa-table { table-layout: auto; }
  .sa-content table, .sa-content tbody, .sa-content tr, .sa-content td { display: block; width: 100%; }
  .sa-content thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .sa-content tr { margin-bottom: 20px; border: 1px solid #ddd; border-radius: 12px; overflow: hidden; }
  .sa-content td { padding: 10px 16px; border: 0; border-top: 1px solid #eee; }
  .sa-content td:first-child { border-top: 0; background: #f1efec; font-size: 1rem; font-weight: 700; }
  .sa-content td:first-child::before { display: none; }
  .sa-content td::before {
    content: attr(data-label);
    display: block;
    margin-bottom: 2px;
    color: #14877b;
    font-size: 0.75rem;
    font-weight: 700;
  }
}

/* Footer */
.sa-footer {
  padding: 32px 20px;
  background: #fff;
  text-align: center;
}
.sa-footer__links {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  margin: 0 0 16px;
  padding: 0;
  list-style: none;
}
.sa-footer__item { margin: 4px 0; }
.sa-footer__item + .sa-footer__item { border-left: 1px solid #ddd; }
.sa-footer__link {
  display: block;
  padding: 0 16px;
  color: #444;
  font-size: 1rem;
  text-decoration: none;
}
.sa-footer__link:hover { text-decoration: underline; }
.sa-footer__copyright { margin: 0; color: #444; font-size: 0.75rem; line-height: 1.6; }

@media (max-width: 600px) {
  .sa-main { padding: 16px 16px 40px; }
  .sa-breadcrumb { margin-bottom: 20px; }
  .sa-title { margin-bottom: 20px; font-size: 1.5rem; }
  .sa-content { padding: 24px 16px 28px; border-radius: 14px; }
  .sa-content h2 { margin-top: 36px; padding-left: 14px; border-left-width: 5px; font-size: 1.125rem; }
  .sa-content .sa-section > :not(h2) { margin-left: 0; }
  .sa-footer__link { padding: 0 12px; font-size: 0.9375rem; }
}
