/* フクダネ 共通スタイル（深緑ブランド・検索ページ対応）
   外部依存なし・自己完結。白/淡灰基調＋深緑アクセント。可読性とコントラストAAを優先。 */

/* ===== カラーとトークン ===== */
:root {
  --primary: #176b5b;        /* ブランド深緑（見出し・アクセント・リンク） */
  --primary-dark: #0f4d42;   /* 濃い深緑（フッター・強調見出し） */
  --primary-tint: #e8f0ed;   /* ヒーロー等の淡い深緑ティント */
  --page: #f7f8f6;           /* ページ背景 */
  --line: #e3e8e5;           /* 罫線 */
  --line-strong: #cfd6d2;
  --ink: #263238;            /* 本文（白背景で約12:1） */
  --ink-soft: #64748b;       /* 補助テキスト */
  --link: #176b5b;           /* リンク（深緑・約5.6:1） */
  --link-hover: #0f4d42;
  --card: #ffffff;
  --shadow-soft: 0 1px 2px rgba(15, 77, 66, .05);
  --shadow-hover: 0 4px 14px rgba(15, 77, 66, .12);
  --radius: 10px;
  --maxw: 1080px;
  /* 分野識別色（小ラベル・カード上部の細線のみに使用。面塗りには使わない） */
  --dc-kourei: #d97706;
  --dc-shougai: #2563eb;
  --dc-jido: #db2777;
  --dc-konkyu: #7c3aed;
  --dc-other: #475569;
}

/* ===== リセット最小限 ===== */
* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  font-family: "Hiragino Kaku Gothic ProN", "Noto Sans JP", "Yu Gothic UI", "Meiryo", system-ui, sans-serif;
  color: var(--ink);
  background: var(--page);
  line-height: 1.8;
  font-size: 16px;
}
img { max-width: 100%; height: auto; }

a { color: var(--link); }
a:hover { color: var(--link-hover); }

a:focus-visible,
button:focus-visible,
input:focus-visible,
summary:focus-visible {
  outline: 2px solid var(--primary);
  outline-offset: 2px;
  border-radius: 3px;
}

.visually-hidden {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

/* ===== レイアウト ===== */
.wrap { max-width: var(--maxw); margin: 0 auto; padding: 0 24px; }

/* ===== ヘッダー（白背景＋下線1px） ===== */
.site-header {
  background: #fff;
  border-bottom: 1px solid var(--line);
}
.site-header .wrap {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 8px 24px;
  padding-top: 18px;
  padding-bottom: 18px;
}
.brand { display: flex; align-items: center; gap: 10px 12px; flex-wrap: wrap; }
.brand .logo {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  font-size: 22px;
  font-weight: 700;
  letter-spacing: .06em;
  color: var(--primary);
  text-decoration: none;
}
.logo-mark { color: var(--primary); flex: none; display: block; }
.logo-text { line-height: 1; }
.brand .tagline { font-size: 13px; color: var(--ink-soft); }

/* ハンバーガーボタン（スマホのみ表示） */
.nav-toggle {
  display: none;
  appearance: none;
  border: 1px solid var(--line);
  background: #fff;
  color: var(--primary-dark);
  width: 44px;
  height: 44px;
  border-radius: 8px;
  cursor: pointer;
  align-items: center;
  justify-content: center;
}
.nav-toggle:hover { border-color: var(--primary); }

.site-nav { display: flex; flex-wrap: wrap; gap: 4px 22px; }
.site-nav a {
  color: var(--ink);
  text-decoration: none;
  font-size: 14.5px;
  padding: 4px 0;
  border-bottom: 2px solid transparent;
}
.site-nav a:hover { color: var(--primary); border-bottom-color: var(--line-strong); }
.site-nav a[aria-current="page"] {
  color: var(--primary);
  font-weight: 700;
  border-bottom-color: var(--primary);
}
/* PC横並びでは「ホーム」を出さない（ロゴがホームリンク）。スマホのハンバーガー内では表示 */
.site-nav .nav-home { display: none; }

/* ===== カテゴリ・ドロップダウンナビ（.nav-group＝見出しボタン＋.nav-menu） ===== */
.nav-group { position: relative; }
.nav-group-btn { font: inherit; font-size: 14.5px; color: var(--ink); background: none; border: none; border-bottom: 2px solid transparent; cursor: pointer; padding: 4px 0; display: inline-flex; align-items: center; gap: 4px; }
.nav-group-btn:hover { color: var(--primary); }
.nav-caret { font-size: 10px; }
.nav-menu { display: none; }
.nav-group.is-open > .nav-menu { display: block; }
.nav-group.has-current > .nav-group-btn { color: var(--primary); font-weight: 700; }
@media (min-width: 769px) {
  .nav-menu { position: absolute; top: 100%; left: 0; min-width: 210px; background: #fff; border: 1px solid var(--line); border-radius: 8px; box-shadow: 0 8px 24px rgba(0,0,0,.14); padding: 6px; z-index: 60; }
  .nav-menu a { display: block; padding: 9px 12px; font-size: 13.5px; border: none; border-radius: 6px; white-space: nowrap; }
  .nav-menu a:hover { background: var(--primary-tint); border: none; }
}
@media (max-width: 768px) {
  /* ハンバーガー展開時：グループ見出し（背景ティントで階層を明示）＋項目は縦1列ブロック */
  .nav-group { display: block; }
  .nav-group-btn {
    display: block; width: 100%; text-align: left; box-sizing: border-box;
    font-weight: 700; color: var(--primary-dark); background: var(--primary-tint);
    padding: 13px 12px; min-height: 44px; border: none;
    font-size: 15px;
  }
  .nav-caret { display: none; }
  .nav-menu { display: block; padding: 0; }
  /* 項目＝ブロック・折返しなしで下線が文字に被らない・インデントで見出しとの階層を示す・タップ領域44px */
  .nav-menu a {
    display: block; box-sizing: border-box;
    padding: 12px 12px 12px 28px; font-size: 14.5px; line-height: 1.4;
    min-height: 44px; border: none; border-bottom: 1px solid var(--line);
    white-space: nowrap;
  }
}

/* ===== ヒーロー（淡い深緑ティント） ===== */
.hero {
  background: var(--primary-tint);
  border-bottom: 1px solid var(--line);
}
.hero .wrap { padding-top: 60px; padding-bottom: 52px; }
.hero .catch {
  font-size: clamp(26px, 4.6vw, 32px);
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: .01em;
  margin: 0 0 16px;
  color: var(--primary-dark);
}
.hero .lead {
  font-size: 17px;
  color: var(--ink);
  max-width: 44em;
  margin: 0;
}

/* ===== 一般セクション ===== */
section { padding: 60px 0; }
.band { background: #fff; }
.section-title {
  font-size: 24px;
  font-weight: 700;
  color: var(--primary-dark);
  margin: 0 0 10px;
}
.section-note { font-size: 15px; color: var(--ink-soft); margin: 0 0 28px; }
.sub-title {
  font-size: 18px;
  font-weight: 700;
  color: var(--primary-dark);
  margin: 32px 0 8px;
}

section p { margin: 0 0 14px; }
section p:last-child { margin-bottom: 0; }

.operator-name { font-size: 16px; }
.operator-name strong { color: var(--primary-dark); }
.contact-mail { font-size: 16px; font-weight: 700; margin: 6px 0 0; }

/* ===== 情報の原則リスト ===== */
.principles { list-style: none; margin: 0; padding: 0; display: grid; gap: 16px; }
.principle {
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 20px 22px;
  box-shadow: var(--shadow-soft);
  transition: border-color .15s, box-shadow .15s;
}
.principle:hover { border-color: var(--primary); box-shadow: var(--shadow-hover); }
.principle .name {
  font-weight: 700;
  color: var(--primary-dark);
  font-size: 17px;
  margin: 0 0 6px;
}
.principle .desc { margin: 0; font-size: 15px; color: var(--ink); }

/* ===== 導線カード ===== */
.guide-grid { display: grid; gap: 18px; grid-template-columns: 1fr; }
.guide-card {
  display: block;
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 24px;
  text-decoration: none;
  color: var(--ink);
  box-shadow: var(--shadow-soft);
  transition: border-color .15s, box-shadow .15s;
}
.guide-card:hover { border-color: var(--primary); box-shadow: var(--shadow-hover); }
.guide-card .g-title { font-weight: 700; color: var(--primary-dark); font-size: 18px; margin: 0 0 8px; }
.guide-card .g-desc { margin: 0; font-size: 15px; color: var(--ink-soft); }
.guide-card .g-arrow { color: var(--link); font-size: 14.5px; margin-top: 14px; display: inline-block; font-weight: 700; }

/* ===== 今後の予定・二層・対象者リスト ===== */
.plan-list, .layer-list, .audience-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 18px; }
.layer-list, .audience-list { margin-top: 14px; }
.plan-list li, .layer-list li, .audience-list li {
  border-left: 3px solid var(--primary);
  padding: 2px 0 2px 16px;
  font-size: 15px;
}
.plan-label, .layer-label, .audience-label {
  display: block;
  font-weight: 700;
  color: var(--primary-dark);
  margin-bottom: 3px;
}

/* ===== ポリシーリスト ===== */
.policy-list { margin: 10px 0 0; padding-left: 1.3em; }
.policy-list li { margin: 8px 0; font-size: 15px; }
/* 番号付き（編集独立性・利益相反ポリシー） */
.policy-numbered { margin: 16px 0 0; display: grid; gap: 16px; }
.policy-numbered li { margin: 0; line-height: 1.8; }
.policy-label { display: block; font-weight: 700; color: var(--primary-dark); margin-bottom: 3px; }

/* ===== 利用規約 ===== */
.terms-body { max-width: 48em; }
.article-title {
  font-size: 18px;
  font-weight: 700;
  color: var(--primary-dark);
  margin: 32px 0 8px;
  padding-bottom: 6px;
  border-bottom: 1px solid var(--line);
}
.terms-body > .article-title:first-child { margin-top: 0; }
.terms-body p { font-size: 15px; margin: 0 0 8px; }
.terms-list { margin: 8px 0 0; padding-left: 1.3em; }
.terms-list li { margin: 6px 0; font-size: 15px; }
.terms-date { margin-top: 32px; color: var(--ink-soft); font-size: 14px; }

/* ===== 告知（準備中・検索0件など）＝淡色背景 ===== */
.notice {
  border: 1px solid var(--line);
  border-left: 4px solid var(--primary);
  border-radius: var(--radius);
  background: var(--primary-tint);
  padding: 24px 26px;
}
.notice-title {
  font-weight: 700;
  color: var(--primary-dark);
  font-size: 18px;
  margin: 0 0 10px;
}
.notice p { margin: 0; font-size: 15px; }

/* ===== プレースホルダ枠 ===== */
.placeholder {
  border: 1px dashed var(--line-strong);
  border-radius: var(--radius);
  padding: 18px 20px;
  color: var(--ink-soft);
  font-size: 14.5px;
  background: #fff;
}

/* ===== フッター（深緑背景＋白文字で構造化） ===== */
.site-footer {
  background: var(--primary-dark);
  color: rgba(255, 255, 255, .82);
  font-size: 14px;
  padding: 40px 0 28px;
}
.footer-grid {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 24px 40px;
  padding-bottom: 24px;
  border-bottom: 1px solid rgba(255, 255, 255, .16);
}
.footer-brand { display: flex; flex-direction: column; gap: 4px; }
.footer-logo { font-size: 18px; font-weight: 700; letter-spacing: .06em; color: #fff; }
.footer-tagline { font-size: 13px; color: rgba(255, 255, 255, .68); }
.footer-nav { display: flex; flex-wrap: wrap; gap: 10px 22px; align-items: flex-start; }
.footer-nav a { color: rgba(255, 255, 255, .82); text-decoration: none; font-size: 14px; }
.footer-nav a:hover { color: #fff; text-decoration: underline; }
.footer-bottom { padding-top: 22px; }
.site-footer .disclaimer { margin: 0 0 12px; line-height: 1.7; color: rgba(255, 255, 255, .78); }
.site-footer .copy { color: rgba(255, 255, 255, .55); margin: 0; }
.site-footer a { color: #dfeee9; }
.footer-links { margin: 0 0 10px; }
.footer-links a { color: #dfeee9; }

/* ============================================================
   福祉サービス一覧ページ（検索・フィルター・カード）
   ============================================================ */
.list-page { padding: 40px 0 56px; }

/* ヒーローの最終確認日 */
.hero-date { font-size: 13px; color: var(--ink-soft); margin: 12px 0 0; }

/* 検索見出し・条件を絞る見出し */
.search-heading { display: block; font-size: 14px; font-weight: 700; color: var(--primary-dark); margin: 0 0 8px; }
.filters-heading { font-size: 15px; font-weight: 700; color: var(--primary-dark); margin: 0 0 10px; }

/* この一覧の考え方（旧・導入文を一覧の後へ移設） */
.intro-section { margin: 40px 0 0; padding-top: 28px; border-top: 1px solid var(--line); }
.intro-link { font-weight: 700; white-space: nowrap; }

/* 導入文（前提＝社会福祉法の3段落） */
.map-intro { margin: 0 0 24px; }
.map-intro p { font-size: 16px; line-height: 1.9; margin: 0 0 14px; color: var(--ink); }
.map-intro p:last-child { margin-bottom: 0; }

/* データについて（折りたたみ） */
.meta-details {
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fff;
  margin: 0 0 24px;
}
.meta-details > summary {
  cursor: pointer;
  list-style: none;
  padding: 12px 16px;
  font-weight: 700;
  font-size: 14px;
  color: var(--primary-dark);
  display: flex;
  align-items: center;
  gap: 8px;
}
.meta-details > summary::-webkit-details-marker { display: none; }
.meta-details > summary::after { content: "▾"; font-size: 11px; color: var(--ink-soft); }
.meta-details[open] > summary { border-bottom: 1px solid var(--line); }
.meta-details[open] > summary::after { content: "▴"; }
.meta-details-bottom { margin: 28px 0 0; }
.map-meta { padding: 14px 16px; font-size: 14px; }
.map-meta p { margin: 0 0 8px; }
.map-meta p:last-child { margin-bottom: 0; }
.map-meta strong { color: var(--primary-dark); }
.map-meta .map-note { color: var(--ink-soft); }

/* 検索窓 */
.search-bar { margin: 0 0 16px; }
.search-input {
  width: 100%;
  font: inherit;
  font-size: 16px;
  padding: 13px 16px 13px 44px;
  border: 1px solid var(--line-strong);
  border-radius: 10px;
  background: #fff url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="%2364748b" stroke-width="2" stroke-linecap="round"><circle cx="11" cy="11" r="7"/><line x1="21" y1="21" x2="16.65" y2="16.65"/></svg>') no-repeat 14px 50%;
}
.search-input:focus { border-color: var(--primary); outline: none; box-shadow: 0 0 0 2px rgba(23, 107, 91, .18); }

/* フィルター（チップ） */
.filters { display: grid; gap: 14px; margin: 0 0 16px; }
.filter-block { min-width: 0; }
.filter-label { font-size: 13px; color: var(--ink-soft); margin: 0 0 6px; }
.filter-group {
  display: flex;
  gap: 8px;
  overflow-x: auto;
  padding-bottom: 4px;
  -webkit-overflow-scrolling: touch;
}
.chip {
  appearance: none;
  border: 1px solid var(--line-strong);
  background: #fff;
  color: var(--ink);
  font: inherit;
  font-size: 14px;
  white-space: nowrap;
  padding: 7px 14px;
  border-radius: 999px;
  cursor: pointer;
  flex: none;
}
.chip:hover { border-color: var(--primary); color: var(--primary); }
.chip[aria-pressed="true"] {
  background: var(--primary);
  border-color: var(--primary);
  color: #fff;
  font-weight: 700;
}

/* 結果件数 */
.result-count { font-size: 14px; color: var(--ink-soft); margin: 4px 0 20px; }
.result-count strong { color: var(--primary-dark); }

/* カードグリッド（WAM NET型：小さめ・詰めて一覧性を高める） */
.card-grid {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(auto-fill, minmax(258px, 1fr));
}

/* サービスカード（表面は最小限：分野ラベル・正式名称・通称・概要のみ） */
.s-card {
  background: #fff;
  border: 1px solid var(--line);
  border-top: 3px solid var(--dc, var(--primary));
  border-radius: 8px;
  padding: 14px 16px;
  display: flex;
  flex-direction: column;
}
/* カード上部のラベル行（分野ラベル＋第一種／第二種バッジ） */
.card-labels {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 8px;
  margin: 0 0 6px;
}
.domain-label {
  font-size: 11.5px;
  font-weight: 700;
  color: var(--dc, var(--primary));
}
/* 受け方・目的ラベル（形態の表示語） */
.form-label {
  font-size: 11.5px;
  color: var(--ink-soft);
  border: 1px solid var(--line-strong);
  border-radius: 4px;
  padding: 0 7px;
  line-height: 1.6;
}
/* 第一種＝濃緑枠・第二種＝薄緑枠で控えめに区別 */
.shakai-badge {
  font-size: 11px;
  font-weight: 700;
  border-radius: 4px;
  padding: 0 7px;
  line-height: 1.6;
}
.shakai-1 { color: var(--primary-dark); border: 1px solid var(--primary-dark); }
.shakai-2 { color: var(--primary); border: 1px solid var(--line-strong); background: var(--primary-tint); }
.s-title { font-size: 16px; font-weight: 700; color: var(--primary-dark); margin: 0 0 2px; line-height: 1.45; }
.s-alias { font-size: 12.5px; color: var(--ink-soft); margin: 0 0 6px; }
.s-summary { font-size: 14px; margin: 0 0 10px; }
.s-maintarget { font-size: 13px; margin: 0 0 10px; color: var(--ink); }
.s-mt-label { color: var(--ink-soft); }
/* WAM NETボタン（詳細内） */
.s-wam { margin: 8px 0 0; }
.wam-btn {
  display: inline-block;
  font-size: 13px;
  font-weight: 700;
  color: var(--primary-dark);
  border: 1px solid var(--line-strong);
  border-radius: 6px;
  padding: 5px 12px;
  text-decoration: none;
  background: var(--primary-tint);
}
.wam-btn:hover { border-color: var(--primary); }

/* 詳細（開閉） */
.s-detail { margin-top: auto; border-top: 1px solid var(--line); padding-top: 8px; }
.s-detail > summary {
  list-style: none;
  cursor: pointer;
  color: var(--primary);
  font-weight: 700;
  font-size: 14px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.s-detail > summary::-webkit-details-marker { display: none; }
.s-detail > summary::after { content: "▾"; font-size: 11px; }
.s-detail[open] > summary::after { content: "▴"; }
.s-detail-body { margin-top: 10px; }
.s-detail-body dl { margin: 0 0 8px; }
.s-detail-body dt { color: var(--ink-soft); font-size: 12.5px; }
.s-detail-body dd { margin: 0 0 4px; font-size: 14px; }
.s-source { margin: 6px 0 0; font-size: 13.5px; }

/* 一覧の操作行（件数＋表示切替） */
.list-controls {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 8px 16px;
  margin: 4px 0 18px;
}
.list-controls .result-count { margin: 0; }
.view-toggle { display: flex; gap: 6px; }

/* 4列テーブル（サービス名／対象者／社会福祉法／根拠法）
   崩れ対策：スクロールコンテナで囲み、table-layout:fixed＋列幅指定＋長文の折り返しで壊れないようにする */
.table-scroll {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  border: 1px solid var(--line);
  border-radius: 8px;
  max-width: 100%;
}
.svc-table {
  border-collapse: collapse;
  width: 100%;
  min-width: 720px;          /* これ未満の幅では横スクロール（ページ全体は伸びない） */
  table-layout: fixed;        /* 列幅を固定し、長文はセル内で折り返す */
  font-size: 13.5px;
  background: #fff;
}
.svc-table .col-name { width: 24%; }
.svc-table .col-domain { width: 12%; }
.svc-table .col-form { width: 16%; }
.svc-table .col-target { width: 26%; }
.svc-table .col-law { width: 22%; }
.svc-table th, .svc-table td {
  border: 1px solid var(--line);
  padding: 9px 12px;
  text-align: left;
  vertical-align: top;
  white-space: normal;        /* 折り返しを許可 */
  overflow-wrap: anywhere;    /* 長い連続文字列でもセルからはみ出さない */
  word-break: break-word;
}
.svc-table thead th { background: var(--primary-tint); color: var(--primary-dark); white-space: nowrap; }
.svc-table tbody td:first-child { font-weight: 700; }
.svc-table a { color: var(--link); }

/* ===== 制度の歴史（年表） ===== */
.period-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0 0 28px;
  position: sticky;
  top: 0;
  background: var(--page);
  padding: 10px 0;
  z-index: 5;
  border-bottom: 1px solid var(--line);
}
.period-link {
  border: 1px solid var(--line-strong);
  background: #fff;
  color: var(--ink);
  text-decoration: none;
  font-size: 14px;
  padding: 6px 14px;
  border-radius: 999px;
}
.period-link:hover { border-color: var(--primary); color: var(--primary); }

.period { margin: 0 0 40px; scroll-margin-top: 64px; }
.period-title {
  font-size: 20px;
  font-weight: 700;
  color: var(--primary-dark);
  margin: 0 0 16px;
  padding-bottom: 8px;
  border-bottom: 2px solid var(--line);
}
.timeline { list-style: none; margin: 0; padding: 0; }
.tl-item {
  display: grid;
  grid-template-columns: 108px 1fr;
  gap: 0 18px;
  padding: 0 0 22px 18px;
  border-left: 2px solid var(--line);
  position: relative;
}
.tl-item::before {
  content: "";
  position: absolute;
  left: -6px;
  top: 4px;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--primary);
}
.tl-item:last-child { padding-bottom: 4px; }
.tl-year { padding-top: 1px; }
.tl-seireki { display: block; font-weight: 700; color: var(--primary-dark); font-size: 15px; }
.tl-wareki { display: block; font-size: 12.5px; color: var(--ink-soft); }
.tl-body { min-width: 0; }
.tl-tags { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 6px; }
.tl-tag {
  font-size: 11.5px;
  color: var(--primary-dark);
  background: var(--primary-tint);
  border-radius: 4px;
  padding: 1px 8px;
}
.tl-event { margin: 0; font-size: 14.5px; }
.tl-source { margin: 6px 0 0; font-size: 13px; }

@media (max-width: 520px) {
  .tl-item { grid-template-columns: 1fr; gap: 4px; }
  .tl-year { display: flex; gap: 10px; align-items: baseline; }
  .tl-seireki, .tl-wareki { display: inline; }
}

/* ===== 福祉の仕事 ===== */
.job-cat { margin: 0 0 40px; scroll-margin-top: 64px; }
.job-cat-note { font-size: 14px; color: var(--ink-soft); margin: 0 0 16px; }
.job-grid { display: grid; gap: 16px; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); }
.job-card {
  background: #fff;
  border: 1px solid var(--line);
  border-top: 3px solid var(--primary);
  border-radius: 8px;
  padding: 16px 18px;
}
.job-name { font-size: 17px; font-weight: 700; color: var(--primary-dark); margin: 0 0 4px; line-height: 1.45; }
.job-basis { font-size: 12.5px; color: var(--ink-soft); margin: 0 0 10px; }
.job-dl { margin: 0; }
.job-dl dt { font-size: 12.5px; color: var(--ink-soft); margin-top: 8px; }
.job-dl dt:first-child { margin-top: 0; }
.job-dl dd { margin: 2px 0 0; font-size: 14px; }
.job-source { margin: 12px 0 0; font-size: 13px; }

/* 仕事を知る（外部リンク） */
.jobs-links { margin: 40px 0 0; padding-top: 28px; border-top: 1px solid var(--line); }
.job-links-list { list-style: none; margin: 12px 0 0; padding: 0; display: grid; gap: 10px; }
.job-links-list li { font-size: 14px; }
.job-link-desc { display: block; font-size: 13px; color: var(--ink-soft); margin-top: 2px; }

/* ===== 福祉業界団体 ===== */
.org-sys { margin: 0 0 40px; }
.org-grid { display: grid; gap: 16px; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); }
.org-card {
  background: #fff;
  border: 1px solid var(--line);
  border-top: 3px solid var(--primary);
  border-radius: 8px;
  padding: 16px 18px;
  scroll-margin-top: 24px;
}
.org-card-flash { animation: orgFlash 1.6s ease; }
@keyframes orgFlash { 0%, 100% { box-shadow: none; } 15% { box-shadow: 0 0 0 3px var(--primary); } }

/* 関係図（クリックで各団体カードへ移動・公表情報に基づく組織上の関係のみ） */
.org-diagram { margin: 0 0 44px; }
.diagram-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; padding: 4px 0 8px; }
.diagram { min-width: 260px; display: flex; flex-direction: column; align-items: center; gap: 22px; }
.dg-center-wrap { display: flex; flex-direction: column; align-items: center; width: 100%; }
.dg-node { font-family: inherit; font-size: 12px; font-weight: 700; color: var(--primary-dark); background: #fff; border: 1.5px solid var(--primary); border-radius: 8px; padding: 8px 12px; cursor: pointer; line-height: 1.45; text-align: center; max-width: 240px; white-space: normal; word-break: break-word; }
.dg-node:hover, .dg-node:focus-visible { background: var(--primary-tint); outline: none; }
.dg-node-center { font-size: 13px; color: #fff; background: var(--primary); border-color: var(--primary-dark); padding: 10px 18px; max-width: 320px; }
.dg-node-center:hover, .dg-node-center:focus-visible { background: var(--primary-dark); }
.dg-trunk { width: 0; height: 22px; border-left: 2px solid var(--primary); }
.dg-children { border: 2px solid var(--primary); border-radius: 12px; background: rgba(23, 107, 91, .04); padding: 10px 14px 14px; max-width: 900px; }
.dg-children-label { font-size: 12px; color: var(--primary-dark); font-weight: 700; margin-bottom: 10px; text-align: center; }
.dg-children-row, .dg-group-row { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; }
.dg-groups { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 14px; width: 100%; }
.dg-group { border: 1px solid var(--line-strong); border-radius: 10px; padding: 10px 12px 14px; background: #fff; }
.dg-group-title { font-size: 12px; color: var(--ink-soft); font-weight: 700; margin-bottom: 10px; text-align: center; }
.dg-affiliate-row { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; justify-content: center; }
.dg-node-affiliate { border-style: dashed; }
.dg-dash { flex: none; width: 28px; border-top: 2px dashed var(--ink-soft); }
.dg-affiliate-note { font-size: 12px; color: var(--ink-soft); }
.diagram-note { font-size: 12.5px; color: var(--ink-soft); line-height: 1.7; margin: 14px 0 0; padding-top: 12px; border-top: 1px solid var(--line); }

/* ガイドライン集（分野目次＋分野別カード） */
/* ガイドライン集2ページ間の相互リンク案内 */
.gl-crosslink { font-size: 13.5px; color: var(--ink-soft); background: var(--primary-tint); border: 1px solid var(--line); border-radius: 8px; padding: 10px 14px; margin: 0 0 20px; }
.gl-crosslink a { color: var(--primary); font-weight: 700; }
.gl-toc { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 32px; }
.gl-toc-link { font-size: 13px; font-weight: 700; color: var(--primary); background: var(--primary-tint); border: 1px solid var(--line); border-radius: 20px; padding: 6px 14px; text-decoration: none; }
.gl-toc-link:hover { background: #fff; border-color: var(--primary); }
.gl-cat { margin: 0 0 40px; scroll-margin-top: 24px; }
.gl-grid { display: grid; gap: 16px; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); }
.gl-card { background: #fff; border: 1px solid var(--line); border-top: 3px solid var(--primary); border-radius: 8px; padding: 16px 18px; }
.gl-name { font-size: 15px; font-weight: 700; color: var(--primary-dark); margin: 0 0 10px; line-height: 1.55; }
.gl-dl { margin: 0; display: grid; grid-template-columns: auto 1fr; gap: 4px 12px; font-size: 13.5px; line-height: 1.7; }
.gl-dl dt { color: var(--ink-soft); font-weight: 700; white-space: nowrap; }
.gl-dl dd { margin: 0; color: var(--ink); }
.gl-links { margin: 12px 0 0; font-size: 13.5px; }
.gl-links a { color: var(--primary); font-weight: 700; }
.guidelines-note { font-size: 13px; color: var(--ink-soft); line-height: 1.8; margin: 8px 0 0; padding: 14px 16px; background: var(--primary-tint); border-radius: 8px; }
.org-name { font-size: 16px; font-weight: 700; color: var(--primary-dark); margin: 0 0 8px; line-height: 1.5; }
.org-abbr { font-size: 13px; color: var(--ink-soft); font-weight: 700; }
.org-dl { margin: 0; }
.org-dl dt { font-size: 12.5px; color: var(--ink-soft); margin-top: 8px; }
.org-dl dt:first-child { margin-top: 0; }
.org-dl dd { margin: 2px 0 0; font-size: 14px; }
.org-links { margin: 12px 0 0; font-size: 13.5px; }

/* 政策決定の流れ（縦のステップ） */
.org-policy { margin: 44px 0 0; }
.policy-steps { list-style: none; margin: 12px 0 0; padding: 0; counter-reset: step; }
.policy-step {
  position: relative;
  border-left: 2px solid var(--line);
  padding: 0 0 24px 20px;
  counter-increment: step;
}
.policy-step::before {
  content: counter(step);
  position: absolute;
  left: -13px;
  top: 0;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: var(--primary);
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
}
.policy-step:last-child { padding-bottom: 0; }
.policy-stage { display: block; font-weight: 700; color: var(--primary-dark); font-size: 15px; margin-bottom: 4px; }
.policy-text { margin: 0; font-size: 14px; }
.policy-source { margin: 6px 0 0; font-size: 13px; }

/* 団体の歩み（timelineはhistoryの.timeline系を流用） */
.org-timeline { margin: 44px 0 0; }

/* 注記 */
.orgs-note { margin: 32px 0 0; padding-top: 20px; border-top: 1px solid var(--line); font-size: 13px; color: var(--ink-soft); }

/* 上部へ戻るボタン */
.to-top {
  position: fixed;
  right: 16px;
  bottom: 16px;
  z-index: 50;
  width: 44px;
  height: 44px;
  border: none;
  border-radius: 50%;
  background: var(--primary);
  color: #fff;
  cursor: pointer;
  box-shadow: 0 2px 10px rgba(0, 0, 0, .22);
  font-size: 18px;
  line-height: 1;
  display: none;
  align-items: center;
  justify-content: center;
}
.to-top.show { display: inline-flex; }

/* ===== レスポンシブ ===== */
@media (min-width: 640px) {
  .guide-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 600px) {
  .hero .wrap { padding-top: 44px; padding-bottom: 40px; }
  section { padding: 44px 0; }
  .list-page { padding: 32px 0 48px; }
  .card-grid { grid-template-columns: 1fr; }
}

/* 本文の行長制御（PC時の可読性）。section 直下 .wrap の一般段落と .map-intro のみ対象。
   カード・グリッド・表・JS注入コンテンツ内の段落は .wrap 直下ではないため影響しない。
   スマホは元々幅が狭いので min-width で限定し、影響を出さない。 */
@media (min-width: 720px) {
  section .wrap > p,
  .map-intro p { max-width: 44em; }
}

/* スマホ幅：ヘッダーナビをハンバーガーに集約 */
@media (max-width: 768px) {
  .site-header .wrap { flex-wrap: wrap; }
  .nav-toggle { display: inline-flex; }
  .site-nav {
    display: none;
    width: 100%;
    flex-direction: column;
    gap: 0;
    margin-top: 12px;
    border-top: 1px solid var(--line);
  }
  .site-nav.nav-open { display: flex; }
  /* トップレベルの直接リンク（ホーム／フクダネについて／サイト内検索）＝縦1列ブロック・区切り線・枠線なし */
  .site-nav > a {
    display: block; width: 100%; box-sizing: border-box;
    padding: 13px 12px; min-height: 44px; font-size: 15px;
    border: none; border-bottom: 1px solid var(--line);
  }
  .site-nav > a[aria-current="page"] {
    color: var(--primary); font-weight: 700; background: var(--primary-tint); border-bottom-color: var(--line);
  }
  /* スマホのハンバーガー内では「ホーム」を表示 */
  .site-nav .nav-home { display: block; }
}

/* ===== 福祉の仕事（エッセイ・動画・読みもの・一般情報） ===== */
/* エッセイ（落ち着いた読みもの調・装飾控えめ） */
.essay-sec { max-width: 44em; margin: 0 0 48px; }
.essay-title { font-size: 20px; font-weight: 700; color: var(--primary-dark); margin: 0 0 16px; line-height: 1.5; }
.essay-p { font-size: 16px; line-height: 1.95; margin: 0 0 16px; }
.essay-cite { font-size: 13px; color: var(--ink-soft); margin: 20px 0 0; padding-top: 12px; border-top: 1px solid var(--line); line-height: 1.7; }

/* ことば集（静かで品のある引用カード） */
.voices-sec { margin: 0 0 44px; }
.voices-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 18px; }
.voices-more { margin-top: 18px; }
.voices-toggle { display: block; margin: 20px auto 0; padding: 10px 22px; background: #fff; border: 1px solid var(--primary); border-radius: 24px; color: var(--primary); font-size: 14px; font-weight: 700; cursor: pointer; }
.voices-toggle:hover { background: var(--primary-tint); }
.voice-card { margin: 0; padding: 22px 22px 20px; background: #fff; border: 1px solid var(--line); border-radius: 10px; display: flex; flex-direction: column; }
.voice-quote { position: relative; margin: 0 0 14px; padding: 0 0 0 20px; border-left: 3px solid var(--primary); font-size: 16px; line-height: 1.85; color: var(--ink); }
.voice-note { font-size: 12.5px; line-height: 1.7; color: var(--ink-soft); background: var(--primary-tint); border-radius: 6px; padding: 8px 10px; margin: 0 0 14px; }
.voice-meta { display: flex; flex-direction: column; gap: 2px; margin-top: auto; }
.voice-name { font-size: 14px; font-weight: 700; color: var(--primary-dark); }
.voice-title { font-size: 12.5px; color: var(--ink-soft); line-height: 1.6; }
.voice-src { font-size: 12.5px; color: var(--ink-soft); margin-top: 6px; }
.voice-src a { color: var(--primary); }

.creative-sec { margin: 0 0 44px; }
.creative-sec:last-child { margin-bottom: 0; }

/* 動画（YouTube埋め込み） */
.video-grid { display: grid; gap: 20px; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); }
.video-card { }
.video-frame {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  background: #000;
  border-radius: 8px;
  overflow: hidden;
  border: 1px solid var(--line);
}
.video-frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.video-title { font-size: 15px; font-weight: 700; color: var(--primary-dark); margin: 10px 0 2px; line-height: 1.5; }
.video-channel { font-size: 13px; color: var(--ink-soft); margin: 0; }
.video-attr { font-size: 13px; color: var(--ink-soft); margin: 2px 0 0; line-height: 1.6; }

/* 読む（creative_links） */
.creative-grid { display: grid; gap: 16px; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); }
.creative-card {
  background: #fff;
  border: 1px solid var(--line);
  border-top: 3px solid var(--primary);
  border-radius: 8px;
  padding: 16px 18px;
}
.creative-name { font-size: 16px; font-weight: 700; margin: 0 0 8px; line-height: 1.45; }
.creative-name a { color: var(--primary-dark); text-decoration: none; }
.creative-name a:hover { text-decoration: underline; }
.creative-desc { font-size: 14px; margin: 0 0 8px; }
.creative-by { font-size: 12.5px; color: var(--ink-soft); margin: 0; }

/* 資格・職種の一般的な情報（general_links） */
.general-links { list-style: none; margin: 12px 0 0; padding: 0; display: grid; gap: 14px; }
.general-links li { border-left: 3px solid var(--primary); padding: 2px 0 2px 14px; }
.general-links li a { font-size: 15px; font-weight: 700; }
.general-desc { display: block; font-size: 13.5px; color: var(--ink); margin-top: 3px; }
.general-by { display: block; font-size: 12.5px; color: var(--ink-soft); margin-top: 2px; }

/* ===== サイト内検索 ===== */
.search-box { margin: 0 0 20px; }
.search-label { display: block; font-size: 13px; font-weight: 700; color: var(--ink-soft); margin: 0 0 6px; }
.search-input { width: 100%; max-width: 640px; padding: 12px 14px; font-size: 16px; border: 1px solid var(--line-strong); border-radius: 8px; background: #fff; color: var(--ink); }
.search-input:focus { outline: 2px solid var(--primary); border-color: var(--primary); }
.search-tabs { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 16px; }
.search-tab { font-family: inherit; font-size: 13px; font-weight: 700; color: var(--primary); background: #fff; border: 1px solid var(--line); border-radius: 20px; padding: 6px 14px; cursor: pointer; }
.search-tab:hover { background: var(--primary-tint); }
.search-tab.is-active { background: var(--primary); color: #fff; border-color: var(--primary-dark); }
.search-tab.is-empty { color: var(--ink-soft); background: #fff; cursor: default; opacity: .55; }
.search-tab-n { font-weight: 400; }
.search-count { font-size: 13px; color: var(--ink-soft); margin: 0 0 14px; }
.sr-hint { font-size: 14px; color: var(--ink-soft); line-height: 1.9; }
#search-results { display: grid; gap: 14px; }
.sr-card { background: #fff; border: 1px solid var(--line); border-top: 3px solid var(--primary); border-radius: 8px; padding: 14px 16px; }
.sr-head { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
.sr-title { font-size: 16px; font-weight: 700; color: var(--primary-dark); margin: 0; line-height: 1.5; }
.sr-badge { flex: none; font-size: 11.5px; color: var(--primary-dark); background: var(--primary-tint); border-radius: 10px; padding: 2px 10px; white-space: nowrap; }
.sr-alias { font-size: 12.5px; color: var(--ink-soft); margin: 6px 0 0; }
.sr-sub { font-size: 13px; color: var(--ink-soft); margin: 4px 0 0; }
.sr-snippet { font-size: 14px; color: var(--ink); line-height: 1.8; margin: 8px 0 0; }
.sr-meta { font-size: 12px; color: var(--ink-soft); margin: 8px 0 0; }
.sr-links { margin: 10px 0 0; display: flex; flex-wrap: wrap; gap: 8px 18px; }
.sr-link { font-size: 13.5px; font-weight: 700; color: var(--primary); }
.sr-empty { font-size: 14px; color: var(--ink); line-height: 1.9; }
.sr-empty-links { font-size: 13px; color: var(--ink-soft); margin-top: 8px; }
.sr-empty-links a { color: var(--primary); }

/* 「さらに表示」（検索結果の追加読み込み） */
.sr-more { text-align: center; margin: 20px 0 8px; }
.sr-more-count { font-size: 13px; color: var(--ink-soft); margin: 0 0 10px; }
.sr-more-btn { font-family: inherit; font-size: 14px; font-weight: 700; color: var(--primary); background: #fff; border: 1px solid var(--primary); border-radius: 22px; padding: 9px 26px; cursor: pointer; }
.sr-more-btn:hover { background: var(--primary); color: #fff; }

/* ホームのヒーロー検索窓（GET送信で search.html?q= へ遷移） */
.hero-search { display: flex; gap: 8px; margin: 22px 0 0; max-width: 520px; }
.hero-search-input { flex: 1; min-width: 0; font-family: inherit; font-size: 15px; padding: 11px 14px; border: 1px solid var(--line); border-radius: 8px; background: #fff; color: var(--ink); }
.hero-search-input:focus { outline: 2px solid var(--primary); outline-offset: 1px; }
.hero-search-btn { font-family: inherit; font-size: 15px; font-weight: 700; color: #fff; background: var(--primary); border: 1px solid var(--primary-dark); border-radius: 8px; padding: 11px 22px; cursor: pointer; white-space: nowrap; }
.hero-search-btn:hover { background: var(--primary-dark); }
@media (max-width: 480px) { .hero-search { flex-wrap: wrap; } .hero-search-input, .hero-search-btn { width: 100%; } }

/* ホーム：検索窓下の案内＋例チップ */
.hero-search-note { margin: 8px 0 0; font-size: 13px; color: var(--ink-soft); }
.hero-chips { margin: 8px 0 0; font-size: 13px; color: var(--ink-soft); display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.hero-chip { display: inline-block; padding: 3px 12px; border: 1px solid var(--line); border-radius: 16px; background: #fff; color: var(--primary); font-weight: 700; text-decoration: none; font-size: 12.5px; }
.hero-chip:hover { background: var(--primary-tint); }

/* ホーム：主要な入口3枚（大きめ） */
.entry-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin: 0 0 8px; }
.entry-card { display: flex; flex-direction: column; gap: 6px; padding: 20px; border: 1px solid var(--line); border-radius: 12px; background: var(--primary-tint); text-decoration: none; color: var(--ink); }
.entry-card:hover { border-color: var(--primary); }
.e-title { font-size: 18px; font-weight: 700; color: var(--primary); }
.e-desc { font-size: 13.5px; color: var(--ink); line-height: 1.7; }
.e-arrow { margin-top: auto; font-size: 13px; font-weight: 700; color: var(--primary); }

/* ホーム：カテゴリ見出し */
.cat-h { font-size: 16px; font-weight: 700; color: var(--primary); margin: 30px 0 12px; padding-bottom: 6px; border-bottom: 2px solid var(--line); scroll-margin-top: 70px; }

/* ホーム：フクダネについて小セクション */
.about-mini { padding: 0 0 48px; }
.about-mini .wrap { border-top: 1px solid var(--line); padding-top: 20px; }
.about-mini-text { font-size: 14px; color: var(--ink); margin: 0 0 6px; }
.about-mini-links a { color: var(--primary); font-weight: 700; }

@media (max-width: 700px) { .entry-grid { grid-template-columns: 1fr; } }

/* サービスカード面の経営指標リンク（詳細を開かなくても分かる小さな導線） */
.s-keiei { margin: 8px 0 0; font-size: 13px; }
.s-keiei a { color: var(--primary); font-weight: 700; border-bottom: 1px solid var(--line-strong); padding-bottom: 1px; }
.s-keiei a:hover { border-bottom-color: var(--primary); }

/* ===== 外国人材（受入れ比較表・育成就労の注記） ===== */
.fw-sec { margin: 0 0 36px; }
.fw-tablewrap { overflow-x: auto; -webkit-overflow-scrolling: touch; border: 1px solid var(--line); border-radius: 8px; }
.fw-table { border-collapse: collapse; width: 100%; min-width: 720px; background: #fff; font-size: 13.5px; }
.fw-table th, .fw-table td { border: 1px solid var(--line); padding: 10px 12px; text-align: left; vertical-align: top; line-height: 1.7; word-break: break-word; overflow-wrap: anywhere; }
.fw-table thead th { background: var(--primary); color: #fff; font-weight: 700; font-size: 13px; }
.fw-table thead th.fw-corner { background: var(--primary-dark); }
.fw-table tbody th[scope="row"] { background: var(--primary-tint); color: var(--primary-dark); font-weight: 700; white-space: nowrap; width: 12em; }
.fw-table td a, .fw-note-link a { color: var(--primary); font-weight: 700; }
.fw-note { background: var(--primary-tint); border-left: 4px solid var(--primary); border-radius: 0 8px 8px 0; padding: 16px 18px; }
.fw-note-title { font-size: 16px; font-weight: 700; color: var(--primary-dark); margin: 0 0 10px; line-height: 1.5; }
.fw-dl { margin: 0; display: grid; grid-template-columns: auto 1fr; gap: 4px 14px; font-size: 13.5px; line-height: 1.8; }
.fw-dl dt { color: var(--ink-soft); font-weight: 700; white-space: nowrap; }
.fw-dl dd { margin: 0; color: var(--ink); }
.fw-note-link { margin: 12px 0 0; font-size: 13.5px; }

/* 外国人材：このページで分かること・アコーディオン */
.fw-summary-box { background: var(--primary-tint); border: 1px solid var(--line); border-radius: 10px; padding: 16px 20px; margin: 0 0 24px; }
.fw-summary-title { font-size: 14px; font-weight: 700; color: var(--primary-dark); margin: 0 0 10px; }
.fw-summary-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px 20px; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
.fw-summary-list li { position: relative; padding-left: 22px; font-size: 14px; line-height: 1.6; }
.fw-summary-list li::before { content: "✓"; position: absolute; left: 0; color: var(--primary); font-weight: 700; }
.fw-summary-list a { color: var(--ink); text-decoration: none; border-bottom: 1px solid var(--line-strong); }
.fw-summary-list a:hover { color: var(--primary); border-bottom-color: var(--primary); }
.fw-acc { border: 1px solid var(--line); border-radius: 8px; margin: 0 0 12px; background: #fff; overflow: hidden; }
.fw-acc[open] { border-color: var(--line-strong); }
.fw-acc-summary { list-style: none; cursor: pointer; padding: 14px 16px; display: flex; align-items: center; gap: 10px; }
.fw-acc-summary::-webkit-details-marker { display: none; }
.fw-acc-summary::after { content: "▾"; margin-left: auto; color: var(--primary); transition: transform .2s; flex: none; }
.fw-acc[open] .fw-acc-summary::after { transform: rotate(180deg); }
.fw-acc-summary:hover { background: var(--primary-tint); }
.fw-acc-summary:focus-visible { outline: 2px solid var(--primary); outline-offset: -2px; }
.fw-acc-title { font-size: 15px; font-weight: 700; color: var(--primary-dark); margin: 0; line-height: 1.5; }
.fw-acc-count { font-weight: 400; font-size: 13px; color: var(--ink-soft); }
.fw-acc .gl-grid { padding: 0 16px 16px; }

/* ===== 財務指標の解説（本体側ページ） ===== */
.ind-back { margin: 0 0 16px; font-size: 13px; }
.ind-back a { color: var(--primary); font-weight: 700; }
.ind-count { font-size: 13px; color: var(--ink-soft); margin: 0 0 14px; }
.ind-count strong { color: var(--primary-dark); font-size: 15px; }
.ind-defs { display: grid; gap: 10px; }
.ind-item { background: #fff; border: 1px solid var(--line); border-radius: 8px; overflow: hidden; }
.ind-item[open] { border-color: var(--line-strong); }
.ind-item > summary { list-style: none; cursor: pointer; padding: 12px 16px; font-size: 15px; font-weight: 700; color: var(--primary-dark); display: flex; align-items: center; gap: 10px; }
.ind-item > summary::-webkit-details-marker { display: none; }
.ind-item > summary::after { content: "▾"; margin-left: auto; color: var(--primary); transition: transform .2s; }
.ind-item[open] > summary::after { transform: rotate(180deg); }
.ind-item > summary:hover { background: var(--primary-tint); }
.ind-item > summary:focus-visible { outline: 2px solid var(--primary); outline-offset: -2px; }
.ind-body { padding: 0 16px 14px; font-size: 14px; line-height: 1.85; color: var(--ink); }
.ind-body p { margin: 6px 0; }
.ind-body b { color: var(--primary-dark); }
.ind-formula { background: var(--bg-soft, #f6f8f7); border: 1px solid var(--line); border-radius: 6px; padding: 8px 10px; font-size: 13px; overflow-x: auto; margin: 4px 0 8px; white-space: pre-wrap; }
.ind-loading { font-size: 13.5px; color: var(--ink-soft); }
.ind-src { margin: 28px 0 0; padding-top: 14px; border-top: 1px solid var(--line); font-size: 12.5px; color: var(--ink-soft); line-height: 1.8; }
.ind-src p { margin: 0 0 8px; }

.mg-related { font-size: 13.5px; color: var(--ink-soft); margin: 20px 0 8px; }
.mg-related a { color: var(--primary); font-weight: 700; }

/* 深リンク着地時のハイライト（点滅なし・深緑系の淡色） */
.deeplink-flash { animation: deeplinkFlash 2.6s ease; border-radius: 8px; }
@keyframes deeplinkFlash { 0% { background: var(--primary-tint); } 70% { background: var(--primary-tint); } 100% { background: transparent; } }

/* 経営関連資料：分類の説明・関連の公式ページ */
.mg-cat-desc { font-size: 14px; line-height: 1.85; color: var(--ink); margin: 0 0 16px; }
.mg-cat-desc a { color: var(--primary); font-weight: 700; }
.mg-related-block { margin: 14px 0 4px; padding: 12px 14px; background: var(--primary-tint); border-radius: 8px; }
.mg-related-title { font-size: 13px; font-weight: 700; color: var(--primary-dark); margin: 0 0 8px; }
.mg-related-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.mg-related-list > li { font-size: 13.5px; line-height: 1.6; }
.mg-related-list a { color: var(--primary); font-weight: 700; }
.mg-related-desc { display: block; font-size: 12.5px; color: var(--ink-soft); margin-top: 2px; }

/* サービス一覧：探し方の入口 */
.finder { background: var(--primary-tint); border: 1px solid var(--line); border-radius: 12px; padding: 16px 18px; margin: 0 0 20px; }
.finder-group { margin: 0 0 12px; }
.finder-label { font-size: 13px; font-weight: 700; color: var(--primary-dark); margin: 0 0 8px; }
.finder-btns { display: flex; flex-wrap: wrap; gap: 8px; }
.finder-btn { font-family: inherit; font-size: 13.5px; font-weight: 700; color: var(--primary-dark); background: #fff; border: 1px solid var(--line-strong); border-radius: 20px; padding: 8px 16px; cursor: pointer; }
.finder-btn:hover { border-color: var(--primary); }
.finder-btn.is-active { background: var(--primary); color: #fff; border-color: var(--primary-dark); }
.finder-btn:focus-visible { outline: 2px solid var(--primary); outline-offset: 2px; }
.finder-badge { font-weight: 400; font-size: .88em; opacity: .8; }

/* 一覧の段階表示「さらに表示」（サービス一覧・DB共通の見た目） */
.list-more { text-align: center; margin: 20px 0 4px; }
.list-more-btn { font-family: inherit; font-size: 14px; font-weight: 700; color: var(--primary); background: #fff; border: 1px solid var(--primary); border-radius: 22px; padding: 9px 26px; cursor: pointer; }
.list-more-btn:hover { background: var(--primary); color: #fff; }
.finder-all { font-family: inherit; font-size: 13px; color: var(--primary); background: none; border: none; cursor: pointer; padding: 4px 2px; text-decoration: underline; }
.finder-all:hover { color: var(--primary-dark); }

/* ===== 統計情報（本体側ページ） ===== */
.stats-intro { background: var(--primary-tint); border: 1px solid var(--line); border-radius: 10px; padding: 16px 18px; margin: 0 0 24px; }
.stats-neutral { margin: 0 0 10px; font-weight: 700; color: var(--primary-dark); }
.stats-meta { margin: 0; display: grid; grid-template-columns: auto 1fr; gap: 4px 14px; font-size: 13px; }
.stats-meta dt { color: var(--ink-soft); font-weight: 700; white-space: nowrap; }
.stats-meta dd { margin: 0; color: var(--ink); }
.stats-sec { margin: 0 0 34px; }
.stats-h { font-size: 18px; color: var(--primary-dark); margin: 0 0 8px; border-left: 4px solid var(--primary); padding-left: 10px; }
.stats-purpose, .stats-reading { font-size: 13.5px; line-height: 1.8; margin: 4px 0; }
.stats-purpose b, .stats-reading b { color: var(--primary-dark); }
.stats-sentence { font-size: 14px; line-height: 1.9; margin: 8px 0; }
.stats-note-inline { font-size: 12px; color: var(--ink-soft); margin: 6px 0 0; }
.stats-foot { font-size: 12px; color: var(--ink-soft); margin: 8px 0 0; line-height: 1.7; }
.stats-canvas { width: 100%; display: block; margin: 8px 0 12px; }
.stats-tablewrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.stats-table { border-collapse: collapse; width: 100%; min-width: 420px; font-size: 13px; background: #fff; }
.stats-table th, .stats-table td { border: 1px solid var(--line); padding: 6px 10px; text-align: left; }
.stats-table thead th { background: var(--primary); color: #fff; font-weight: 600; }
.stats-table th.r, .stats-table td.r { text-align: right; white-space: nowrap; }
.stats-src { margin: 28px 0 0; padding-top: 14px; border-top: 1px solid var(--line); font-size: 12.5px; color: var(--ink-soft); line-height: 1.8; }
.stats-src p { margin: 0 0 8px; }

/* ===== ヒートマップ（深緑単色の濃淡・色だけに依存せず数値を必ず表示） ===== */
.heat-legend { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin: 10px 0 4px; font-size: 12px; color: var(--ink-soft); }
.heat-legend-bar { width: 120px; height: 12px; border-radius: 3px; border: 1px solid var(--line); background: linear-gradient(90deg, #e8f2ee, #0e4c41); }
.heat-legend-cap { font-weight: 700; }
/* 都道府県別 黒字割合の色付きセル（表形式・レスポンシブグリッド） */
.heat-prefgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(96px, 1fr)); gap: 4px; margin: 8px 0 0; }
.heat-pref { border: 1px solid rgba(0,0,0,.06); border-radius: 6px; padding: 7px 6px; text-align: center; line-height: 1.35; }
.heat-pref-name { display: block; font-size: 12px; font-weight: 700; }
.heat-val { display: block; font-size: 14px; font-weight: 700; }
.heat-n { display: block; font-size: 10.5px; opacity: .85; }
/* 規模×事業分類 5×5 マトリクス（横スクロール可） */
.heat-matrixwrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.heat-matrix { border-collapse: collapse; width: 100%; min-width: 640px; font-size: 13px; background: #fff; }
.heat-matrix th, .heat-matrix td { border: 1px solid var(--line); padding: 6px 8px; text-align: center; }
.heat-matrix thead th { background: var(--primary); color: #fff; font-weight: 600; }
.heat-matrix tbody th[scope="row"] { background: var(--primary-tint); color: var(--ink); font-weight: 700; white-space: normal; width: 1%; }
/* 本部の有無マトリクスは列が2つだけなので、行ラベル列を詰めて全体幅も緩める */
#stats-matrix-size-hq .heat-matrix, #stats-matrix-era-hq .heat-matrix { min-width: 0; }
.metric-subtoggle { margin-top: 6px; }

/* ===== 外国人材 受入れ費用の目安（foreign-workers.html） ===== */
.fc-legend { font-size: 12.5px; color: var(--ink-soft); line-height: 1.7; margin: 4px 0 16px; }
.fc-route { margin: 20px 0; }
.fc-route-name { font-size: 15px; font-weight: 700; color: var(--primary-dark); margin: 0 0 4px; }
.fc-route-note { font-size: 13px; color: var(--ink-soft); line-height: 1.7; margin: 0 0 8px; }
.fc-table { width: 100%; border-collapse: collapse; font-size: 13px; min-width: 620px; }
.fc-table th, .fc-table td { border-bottom: 1px solid var(--line); padding: 7px 9px; text-align: left; vertical-align: top; }
.fc-table thead th { font-size: 12px; color: var(--ink-soft); background: var(--page); white-space: nowrap; }
.fc-table .fc-hi { font-weight: 700; min-width: 180px; }
.fc-table .fc-amt { font-weight: 700; color: var(--primary-dark); white-space: nowrap; }
.fc-tanto { display: inline-block; font-size: 11.5px; font-weight: 700; padding: 2px 8px; border-radius: 999px; background: var(--primary-tint); color: var(--ink); white-space: nowrap; }
.fc-tanto-honnin { background: #fdeede; color: #8a4b12; }
.fc-tanto-uke { background: var(--primary-tint); color: var(--primary-dark); }
.fc-remark { font-size: 12px; color: var(--ink-soft); line-height: 1.7; margin: 6px 0 0; }
.fc-srclist { margin: 20px 0 0; }
.fc-srclist ul { margin: 6px 0 0; padding-left: 20px; font-size: 12.5px; line-height: 1.9; }

/* ===== 人件費関連（jinkenhi.html） ===== */
.jk-item { padding: 12px 0; border-bottom: 1px solid var(--line); }
.jk-item-name { font-size: 14.5px; font-weight: 700; margin: 0 0 4px; }
.jk-item-name a { color: var(--primary-dark); }
.jk-item-desc { font-size: 13px; line-height: 1.8; margin: 0 0 4px; color: var(--ink); }
.jk-item-meta { font-size: 12px; color: var(--ink-soft); margin: 4px 0 0; line-height: 1.6; }
.jk-fact { font-size: 13.5px; margin: 8px 0 0; color: var(--ink); }
.jk-fact strong { color: var(--primary-dark); }
.heat-cell { line-height: 1.3; }
.heat-cell .heat-val { font-size: 13.5px; }
.heat-cell .heat-n { font-size: 10px; }
.heat-cell.heat-small .heat-n { font-weight: 700; }
.heat-na { color: var(--ink-soft); background: #f3f5f4; }
/* 都道府県タイルマップ（純CSS。列島の形に配置） */
/* 実形状の日本地図（Natural Earth admin-1＝パブリックドメインから生成した47県SVGコロプレス） */
.japan-map-wrap { margin: 8px 0 0; }
.jpmap { display: block; width: 100%; max-width: 560px; height: auto; margin: 0 auto; }
.jp-pref { fill: #eef1ef; stroke: #fff; stroke-width: 1.1; cursor: pointer; transition: fill .1s; }
.jp-pref:hover, .jp-pref.is-active { stroke: var(--primary-dark); stroke-width: 1.8; }
.jp-pref:focus-visible { outline: none; stroke: var(--primary-dark); stroke-width: 2.2; }
.jpmap-inset-frame { fill: none; stroke: var(--line-strong); stroke-width: 1.4; }
.jpmap-inset-label { font-size: 15px; fill: var(--ink-soft); font-weight: 700; }
.japan-tip { margin: 10px 0 0; font-size: 13.5px; color: var(--ink); min-height: 1.2em; font-weight: 700; text-align: center; }

/* 外国人材：比較表セルの短文表示＋全文展開 */
.fw-tap-hint { font-size: 12.5px; color: var(--ink-soft); margin: 0 0 8px; }
.fw-cell { font-size: 13.5px; }
.fw-cell > summary { cursor: pointer; list-style: none; line-height: 1.6; }
.fw-cell > summary::-webkit-details-marker { display: none; }
.fw-cell > summary::after { content: " ＋"; color: var(--primary); font-weight: 700; }
.fw-cell[open] > summary::after { content: " －"; }
.fw-cell > summary:focus-visible { outline: 2px solid var(--primary); outline-offset: 2px; }
.fw-cell-full { margin-top: 6px; padding-top: 6px; border-top: 1px dashed var(--line); color: var(--ink); line-height: 1.7; }

/* ===== 外国人材：4ルート早わかりカード ===== */
.fw-cards { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; margin: 4px 0 0; }
.fw-card { border: 1px solid var(--line); border-left: 4px solid var(--primary); border-radius: 8px; padding: 12px 14px; background: #fff; }
.fw-card-short { font-size: 15px; font-weight: 700; color: var(--primary); margin: 0; }
.fw-card-full { font-size: 12px; color: var(--ink-soft); margin: 2px 0 0; line-height: 1.5; }
.fw-card-sum { font-size: 13.5px; color: var(--ink); margin: 8px 0 0; line-height: 1.7; }

/* 制度の違いをつかむ入口（目的→ルート） */
.fw-entry-list { list-style: none; margin: 4px 0 0; padding: 0; display: grid; gap: 8px; }
.fw-entry { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; border: 1px solid var(--line); border-radius: 8px; padding: 10px 14px; background: #fff; font-size: 14px; }
.fw-entry-goal { color: var(--ink); }
.fw-entry-arrow { color: var(--primary); font-weight: 700; }
.fw-entry-route { color: var(--primary); font-weight: 700; }

/* 主な違いを比較（表＝PC・タブ＝スマホ） */
.fw-cmp-sp { display: none; } /* PCでは非表示。スマホで有効化 */
.fw-cmp-tabs { display: flex; flex-wrap: wrap; gap: 6px; margin: 4px 0 12px; }
.fw-cmp-tab { font-family: inherit; font-size: 13px; font-weight: 700; color: var(--primary); background: #fff; border: 1px solid var(--line); border-radius: 20px; padding: 7px 14px; cursor: pointer; }
.fw-cmp-tab.is-active { background: var(--primary); color: #fff; border-color: var(--primary-dark); }
.fw-cmp-panel-name { margin: 0 0 8px; }
.fw-cmp-panel-name .fw-col-short { font-size: 15px; font-weight: 700; color: var(--primary); }
.fw-cmp-panel-name .fw-col-full { display: block; font-size: 12px; color: var(--ink-soft); font-weight: 400; margin-top: 2px; line-height: 1.5; }
.fw-cmp-dl { margin: 0; }
.fw-cmp-dl dt { font-size: 12.5px; font-weight: 700; color: var(--primary); margin: 10px 0 2px; }
.fw-cmp-dl dd { margin: 0; font-size: 13.5px; color: var(--ink); line-height: 1.7; }
.fw-cmp-tabletoggle { font-family: inherit; font-size: 13px; font-weight: 700; color: var(--primary); background: #fff; border: 1px solid var(--primary); border-radius: 8px; padding: 9px 16px; cursor: pointer; margin: 14px 0 0; width: 100%; }
.fw-cmp-tabletoggle:hover { background: var(--primary); color: #fff; }
.fw-cmp-tablewrap { overflow-x: auto; -webkit-overflow-scrolling: touch; border: 1px solid var(--line); border-radius: 8px; margin: 4px 0 0; }
.fw-cmp-table { border-collapse: collapse; width: 100%; min-width: 640px; background: #fff; font-size: 13.5px; }
.fw-cmp-table th, .fw-cmp-table td { border: 1px solid var(--line); padding: 8px 10px; text-align: left; vertical-align: top; }
.fw-cmp-table thead th { background: var(--primary); color: #fff; font-weight: 600; }
.fw-cmp-table tbody th[scope="row"] { background: var(--primary-tint); font-weight: 700; color: var(--ink); position: sticky; left: 0; z-index: 2; max-width: 40vw; word-break: break-word; }
.fw-cmp-table thead th.fw-cmp-corner { position: sticky; left: 0; z-index: 3; background: var(--primary); max-width: 40vw; }
.fw-col-short { display: block; font-weight: 700; }
.fw-col-full { display: block; font-size: 11px; font-weight: 400; opacity: .92; margin-top: 2px; line-height: 1.4; }
.fw-cost-list { margin: 0; padding-left: 1.1em; }
.fw-cost-list li { margin: 2px 0; line-height: 1.6; }
.fw-cost-note { margin-top: 10px; }
.fw-neutral-note { color: var(--ink-soft); }

@media (max-width: 600px) {
  .fw-cards { grid-template-columns: 1fr; }
  .fw-cmp-sp { display: block; }
  .fw-cmp-tablewrap { display: none; }
  .fw-cmp-tablewrap.is-open { display: block; margin-top: 12px; }
}

/* ===== 公式ロゴ（ヘッダーのマーク画像）とカードアイコン（トップ最終版） ===== */
/* ヘッダーのマーク画像（本と芽の公式ロゴ。テキスト「フクダネ」の左） */
.logo-mark-img { display: block; height: 28px; width: auto; flex: none; }
/* アイコンスプライト本体は非表示（各カードから <use> で参照） */
.svg-sprite { position: absolute; width: 0; height: 0; overflow: hidden; }
/* カード用アイコン（自作インライン線画・深緑currentColor・24px基準） */
.card-icon { width: 26px; height: 26px; color: var(--primary); display: block; margin: 0 0 4px; flex: none; }
/* 検索ボタン内の虫眼鏡アイコン */
.hero-search-btn { display: inline-flex; align-items: center; justify-content: center; gap: 5px; }
.hero-search-btn .btn-icon { width: 17px; height: 17px; }

/* ===== service.html：チップ件数バッジ／関連ガイドライン（追加タスク） ===== */
/* 分野・受け方チップの件数バッジ（旧・入口ブロックの件数表示を吸収） */
.chip-count { font-weight: 400; font-size: .85em; opacity: .72; margin-left: 1px; }
.chip[aria-pressed="true"] .chip-count { opacity: .92; }
/* サービス詳細内の関連ガイドライン（小見出し＋箇条リンク） */
.s-gl { margin: 10px 0 0; }
.s-gl-heading { font-size: 12.5px; color: var(--ink-soft); font-weight: 700; margin: 0 0 4px; }
.s-gl-list { margin: 0; padding-left: 1.15em; }
.s-gl-list li { margin: 3px 0; font-size: 13.5px; line-height: 1.6; }
.s-gl-list a { color: var(--primary-dark); text-decoration: none; border-bottom: 1px solid var(--line-strong); }
.s-gl-list a:hover { border-bottom-color: var(--primary); color: var(--primary); }

/* service.html：似た役割のサービス（名称の箇条書き＋免責注記） */
.s-sim-list { margin: 2px 0 0; padding-left: 1.15em; }
.s-sim-list li { margin: 2px 0; font-size: 14px; line-height: 1.6; }
.s-sim-list a { color: var(--primary-dark); text-decoration: none; border-bottom: 1px solid var(--line-strong); }
.s-sim-list a:hover { border-bottom-color: var(--primary); color: var(--primary); }
.s-sim-note { margin: 6px 0 0; font-size: 12px; color: var(--ink-soft); line-height: 1.6; }

/* guidelines.html／work-guidelines.html：関連サービス（逆引き・出典行の下にチップで全表示） */
.gl-related { margin: 10px 0 0; display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.gl-related-label { font-size: 12.5px; color: var(--ink-soft); font-weight: 700; }
.gl-svc-chip { display: inline-block; font-size: 12.5px; color: var(--primary-dark); background: var(--primary-tint); border: 1px solid var(--line); border-radius: 999px; padding: 3px 11px; text-decoration: none; }
.gl-svc-chip:hover { border-color: var(--primary); color: var(--primary); }

/* service.html：事業所を探す公式システム（一覧末尾の枠） */
.oss-section { margin: 40px 0 0; }
.oss-desc { margin: 0 0 16px; font-size: 15px; color: var(--ink-soft); line-height: 1.7; }
.oss-grid { display: grid; gap: 16px; grid-template-columns: 1fr; }
@media (min-width: 700px) { .oss-grid { grid-template-columns: repeat(3, 1fr); } }
.oss-card { border: 1px solid var(--line); border-radius: 12px; padding: 18px; background: var(--card); }
.oss-name { margin: 0 0 10px; font-size: 16px; font-weight: 700; color: var(--primary-dark); }
.oss-name a { color: var(--primary); text-decoration: none; }
.oss-name a:hover { text-decoration: underline; }
.oss-dl { margin: 0; }
.oss-dl dt { color: var(--ink-soft); font-size: 12.5px; margin-top: 6px; }
.oss-dl dd { margin: 2px 0 0; font-size: 14px; line-height: 1.6; }

/* indicators.html：27号分類グループ表示・主要/参考バッジ */
.ind-note { font-size: 13.5px; color: var(--ink-soft); margin: 0 0 12px; line-height: 1.7; }
.ind-group { font-size: 17px; font-weight: 700; color: var(--primary-dark); margin: 26px 0 6px; padding-bottom: 6px; border-bottom: 2px solid var(--line); }
.ind-subgroup { font-size: 14px; font-weight: 700; color: var(--primary); margin: 16px 0 6px; }
.ind-item summary { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.ind-name { font-weight: 700; }
.ind-badge { display: inline-block; font-size: 11.5px; font-weight: 700; padding: 1px 8px; border-radius: 999px; line-height: 1.7; }
.ind-badge-main { background: var(--primary); color: #fff; }
.ind-badge-ref { background: var(--primary-tint); color: var(--primary-dark); border: 1px solid var(--line); }

/* guidelines：補足資料（Q&A・留意事項・様式等の小リンク行・種別ラベル付き） */
.gl-sup { margin: 8px 0 0; font-size: 13px; color: var(--ink-soft); display: flex; flex-wrap: wrap; align-items: center; gap: 4px 6px; }
.gl-sup-label { font-weight: 700; }
.gl-sup-link { color: var(--primary-dark); text-decoration: none; border-bottom: 1px solid var(--line-strong); font-weight: 700; }
.gl-sup-link:hover { border-bottom-color: var(--primary); color: var(--primary); }
.gl-sup-sep { color: var(--line-strong); }

/* トップ：掲載件数バー（ビルド時算出の実数） */
.stat-counts { display: flex; flex-wrap: wrap; gap: 8px 10px; margin: 14px 0 4px; }
.stat-count { display: inline-flex; align-items: baseline; gap: 3px; padding: 6px 12px; border: 1px solid var(--line); border-radius: 999px; background: var(--primary-tint); color: var(--ink); text-decoration: none; font-size: 13px; }
.stat-count b { color: var(--primary-dark); font-size: 16px; font-weight: 700; }
.stat-count-lb { color: var(--ink-soft); margin-left: 4px; }
.stat-count:hover { border-color: var(--primary); }

/* トップ：スマホ（600px以下）でカードセクションを折りたたみ（JSでdetails化。PCは常時展開） */
.cat-fold { margin: 0; }
.cat-fold > summary.cat-h { cursor: pointer; list-style: none; display: flex; align-items: center; justify-content: space-between; }
.cat-fold > summary.cat-h::-webkit-details-marker { display: none; }
.cat-fold > summary.cat-h::after { content: "▾"; font-size: 12px; color: var(--primary); margin-left: 8px; }
.cat-fold[open] > summary.cat-h::after { content: "▴"; }

/* stats：都道府県ランキング（黒字割合が高い/低い10県。事実の列挙） */
.pref-rank-wrap { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin: 16px 0 0; }
@media (max-width: 600px) { .pref-rank-wrap { grid-template-columns: 1fr; } }
.pref-rank-title { font-size: 14px; font-weight: 700; color: var(--primary-dark); margin: 0 0 8px; }
.pref-rank-list { list-style: decimal; margin: 0; padding-left: 1.8em; }
.pref-rank-list li { display: grid; grid-template-columns: 1fr auto auto; align-items: baseline; gap: 8px; padding: 4px 0; border-bottom: 1px solid var(--line); font-size: 13.5px; }
.pr-name { font-weight: 700; color: var(--ink); }
.pr-val { color: var(--primary-dark); font-weight: 700; }
.pr-n { color: var(--ink-soft); font-size: 12px; }

/* stats：表示指標の切替トグル（黒字割合⇄経常増減差額率の中央値） */
.metric-toggle { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 4px 0 20px; }
.metric-toggle-label { font-size: 13.5px; font-weight: 700; color: var(--ink-soft); }
.metric-btn { font-family: inherit; font-size: 13.5px; font-weight: 700; color: var(--primary-dark); background: #fff; border: 1px solid var(--line-strong); border-radius: 999px; padding: 7px 16px; cursor: pointer; }
.metric-btn:hover { border-color: var(--primary); }
.metric-btn[aria-pressed="true"] { background: var(--primary); color: #fff; border-color: var(--primary-dark); }
.metric-btn:focus-visible { outline: 2px solid var(--primary); outline-offset: 2px; }

/* chiiki.html：介護報酬の地域区分検索 */
.chiiki-back { margin: 0 0 14px; }
.chiiki-back a { color: var(--primary); font-weight: 700; }
.chiiki-intro { background: var(--primary-tint); border: 1px solid var(--line); border-radius: 10px; padding: 14px 16px; margin: 0 0 18px; }
.chiiki-intro p { margin: 0 0 6px; font-size: 14px; line-height: 1.7; }
.chiiki-intro p:last-child { margin-bottom: 0; }
.chiiki-src { color: var(--ink-soft); font-size: 13px; }
.chiiki-src a { color: var(--primary); }
.chiiki-warn { color: var(--primary-dark); font-weight: 700; }
.chiiki-hint, .chiiki-count { font-size: 14px; color: var(--ink-soft); margin: 12px 0; }
.chiiki-count { font-weight: 700; color: var(--ink); }
.chiiki-more { font-size: 13px; color: var(--ink-soft); margin: 8px 0 0; }
.chiiki-card { border: 1px solid var(--line); border-radius: 12px; padding: 16px 18px; margin: 0 0 14px; background: var(--card); }
.chiiki-cname { margin: 0 0 8px; font-size: 18px; font-weight: 700; color: var(--primary-dark); display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; }
.chiiki-pref { font-size: 13px; color: var(--ink-soft); font-weight: 400; }
.chiiki-kubun { margin: 0 0 8px; font-size: 15px; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.chiiki-badge { display: inline-block; background: var(--primary); color: #fff; font-size: 13px; font-weight: 700; padding: 3px 12px; border-radius: 999px; }
.chiiki-change { margin: 0 0 8px; font-size: 13px; color: var(--dc-kourei, #d97706); font-weight: 700; }
.chiiki-tokurei { margin: 0 0 8px; font-size: 13px; color: var(--ink-soft); }
.chiiki-othernote { margin: 0 0 8px; font-size: 13px; color: var(--ink-soft); }
.chiiki-tanka { border-collapse: collapse; width: 100%; min-width: 420px; font-size: 13.5px; background: #fff; margin: 6px 0 0; }
.chiiki-tanka th, .chiiki-tanka td { border: 1px solid var(--line); padding: 7px 10px; text-align: left; vertical-align: top; }
.chiiki-tanka thead th { background: var(--primary); color: #fff; font-weight: 600; }
.chiiki-tanka tbody th { background: var(--primary-tint); color: var(--ink); font-weight: 700; white-space: nowrap; }
.chiiki-svc { color: var(--ink-soft); font-size: 12.5px; line-height: 1.6; }
.chiiki-list-sec { margin: 32px 0 0; }
.chiiki-list-note { font-size: 13px; color: var(--ink-soft); margin: 0 0 12px; }
.chiiki-fold { border: 1px solid var(--line); border-radius: 8px; margin: 0 0 8px; background: #fff; }
.chiiki-fold > summary { cursor: pointer; padding: 12px 14px; font-weight: 700; color: var(--primary-dark); list-style: none; }
.chiiki-fold > summary::-webkit-details-marker { display: none; }
.chiiki-fold > summary::after { content: "▾"; float: right; font-size: 12px; color: var(--primary); }
.chiiki-fold[open] > summary::after { content: "▴"; }
.chiiki-fold-body { padding: 0 14px 12px; }
.chiiki-townlist { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 4px 12px; }
.chiiki-townlist li { font-size: 13.5px; padding: 3px 0; border-bottom: 1px solid var(--line); }
.chiiki-townpref { color: var(--ink-soft); font-size: 12px; margin-left: 6px; }
.chiiki-townchg { color: var(--dc-kourei, #d97706); font-size: 11.5px; margin-left: 6px; }
.chiiki-foot { margin: 20px 0 0; font-size: 12.5px; color: var(--ink-soft); line-height: 1.7; }

/* chiiki.html：分野別セクション（介護／障害）と注記 */
.chiiki-domain { margin: 0 0 8px; }
.chiiki-domain-title { font-size: 17px; font-weight: 700; color: var(--primary-dark); margin: 22px 0 10px; padding-bottom: 6px; border-bottom: 2px solid var(--line); }
.chiiki-svcnote { margin: 6px 0 0; font-size: 12px; color: var(--ink-soft); line-height: 1.6; }

/* chiiki.html：基本報酬の概算 計算欄 */
.chiiki-vary { font-weight: 700; color: var(--ink-soft); }
/* 分野タブ（見出し兼切替）。介護保険サービス｜障害福祉サービス等｜児童養護施設（措置費） */
.chiiki-domain-tabs { display: flex; flex-wrap: wrap; gap: 4px; margin: 18px 0 14px; border-bottom: 2px solid var(--line-strong); }
.chiiki-domtab { font-family: inherit; font-size: 16px; font-weight: 700; color: var(--ink-soft); background: transparent; border: none; border-bottom: 3px solid transparent; margin-bottom: -2px; padding: 10px 16px; min-height: 44px; cursor: pointer; }
.chiiki-domtab:hover { color: var(--primary-dark); }
.chiiki-domtab[aria-selected="true"] { color: var(--primary-dark); border-bottom-color: var(--primary); }
.chiiki-domtab:focus-visible { outline: 2px solid var(--primary); outline-offset: 2px; }
/* 変更前級地を級地バッジの右余白に配置 */
.chiiki-kubun { display: flex; align-items: center; flex-wrap: wrap; gap: 6px 10px; }
.chiiki-change-inline { margin-left: auto; font-size: 12px; font-weight: 400; color: var(--ink-soft); }
/* 報酬試算への導線リンク */
.chiiki-simlink { margin: 4px 0 8px; font-size: 13.5px; font-weight: 700; }
.chiiki-simlink a { color: var(--primary-dark); }
/* 単価を主役として強調（最左列） */
.chiiki-tanka-main { font-weight: 700; color: var(--primary-dark); white-space: nowrap; }

/* ===== 処遇改善加算（shoguu.html） ===== */
.sg-sec { margin: 26px 0; }
.sg-note { font-size: 13px; color: var(--ink-soft); line-height: 1.7; margin: 6px 0 10px; }
.sg-table { width: 100%; border-collapse: collapse; font-size: 13.5px; }
.sg-table th, .sg-table td { padding: 7px 10px; border-bottom: 1px solid var(--line); text-align: right; white-space: nowrap; }
.sg-table thead th { font-size: 12.5px; color: var(--ink-soft); background: var(--page); text-align: right; }
.sg-table .sg-svc { text-align: left; font-weight: 700; white-space: normal; min-width: 180px; }
.sg-timeline { list-style: none; margin: 8px 0 0; padding: 0; }
.sg-tl-item { display: flex; flex-wrap: wrap; gap: 4px 16px; padding: 14px 0; border-bottom: 1px solid var(--line); }
.sg-tl-when { flex: 0 0 150px; font-weight: 700; color: var(--primary-dark); font-size: 14px; }
.sg-tl-body { flex: 1 1 300px; min-width: 0; }
.sg-tl-name { font-weight: 700; font-size: 14.5px; margin: 0 0 4px; }
.sg-tl-point { font-size: 13.5px; line-height: 1.7; margin: 0 0 4px; color: var(--ink); }
.sg-tl-rate { font-size: 12.5px; color: var(--ink-soft); margin: 0 0 2px; }
.sg-tl-src { font-size: 12px; color: var(--ink-soft); margin: 2px 0 0; }
.sg-fold > summary { cursor: pointer; font-size: 14px; font-weight: 700; color: var(--primary-dark); padding: 8px 0; }
@media (max-width: 768px) { .sg-tl-when { flex-basis: 100%; } }
/* 基準費用額（kijun-hiyou.html）固有 */
.kj-desc { font-size: 14px; line-height: 1.9; }
.sg-table .kj-common { text-align: left; color: var(--ink-soft); }
.kj-unrec { color: var(--ink-soft); font-style: italic; }
.kj-srclist { margin: 8px 0 0; padding-left: 20px; font-size: 13.5px; line-height: 1.9; }
.kj-src-desc { display: block; font-size: 12px; color: var(--ink-soft); margin: 2px 0 4px; }

/* ===== 介護報酬 概算シミュレーター（hoshu-sim.html） ===== */
.sim-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin: 8px 0 20px; }
.sim-block { background: #fff; border: 1px solid var(--line); border-radius: 10px; padding: 16px 18px; min-width: 0; }
.sim-block-wide, .sim-result { grid-column: 1 / -1; }
.sim-h { font-size: 15px; font-weight: 700; color: var(--primary-d, var(--primary-dark)); margin: 0 0 12px; }
.sim-lb { display: flex; flex-direction: column; gap: 4px; font-size: 13px; font-weight: 700; color: var(--ink-soft); min-width: 0; max-width: 100%; }
.sim-lb select, .sim-lb input { font: inherit; font-size: 14px; padding: 8px 10px; border: 1px solid var(--line-strong); border-radius: 8px; background: #fff; color: var(--ink); max-width: 100%; }
.sim-area { margin: 10px 0 0; font-size: 14px; line-height: 1.7; }
.sim-area-hint, .sim-area-more { color: var(--ink-soft); font-size: 12.5px; }
.sim-note { margin: 8px 0 0; font-size: 12px; color: var(--ink-soft); line-height: 1.6; }
.sim-mode { margin: 0 0 12px; }
.sim-easyrow { display: flex; flex-wrap: wrap; gap: 10px 14px; }
.sim-easyrow .sim-lb input, .sim-easyrow .sim-lb select { max-width: 150px; }
.sim-care { display: grid; grid-template-columns: repeat(5, 1fr); gap: 8px; }
.sim-care-lb { min-width: 0; }
.sim-care-lb input, .sim-cn { width: 100%; min-width: 0; box-sizing: border-box; }
.sim-daysrow { display: flex; flex-wrap: wrap; align-items: end; gap: 12px 20px; margin-top: 12px; }
.sim-days, #sim-days { max-width: 110px; }
.sim-total { font-size: 14px; font-weight: 700; color: var(--primary-dark); }
.sim-kasan-row { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; padding: 10px 0; border-bottom: 1px solid var(--line); }
.sim-kasan-check { display: flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 700; min-width: 220px; cursor: pointer; }
.sim-kasan-check input { width: 18px; height: 18px; }
.sim-kasan-ctrl { display: flex; flex-wrap: wrap; align-items: end; gap: 8px 12px; min-width: 0; max-width: 100%; }
.sk-lb { display: flex; flex-direction: column; gap: 3px; font-size: 12px; font-weight: 700; color: var(--ink-soft); min-width: 0; max-width: 100%; }
.sk-lb select, .sk-lb input { font: inherit; font-size: 13.5px; padding: 6px 8px; border: 1px solid var(--line-strong); border-radius: 7px; background: #fff; color: var(--ink); max-width: 100%; }
.sk-n, .sk-cnt, .sk-days { max-width: 90px; }
.sk-lb select { max-width: 240px; }
.sk-lb-wide select { width: 240px; max-width: 100%; }
.sim-kasan-meta { font-size: 11.5px; color: var(--ink-soft); line-height: 1.5; }
.sim-shori { margin-top: 14px; padding-top: 12px; border-top: 2px solid var(--line-strong); display: flex; flex-wrap: wrap; align-items: end; gap: 8px 14px; }
.sim-table { width: 100%; border-collapse: collapse; font-size: 14px; }
.sim-table th, .sim-table td { text-align: left; padding: 8px 10px; border-bottom: 1px solid var(--line); }
.sim-table td { text-align: right; white-space: nowrap; }
.sim-table thead th { font-size: 12.5px; color: var(--ink-soft); background: var(--page); }
.sim-row-base th, .sim-row-base td { font-weight: 700; }
.sim-row-sub th, .sim-row-sub td { font-weight: 700; border-top: 1px solid var(--line-strong); background: var(--page); }
.sim-row-total th, .sim-row-total td { font-weight: 700; font-size: 15px; color: var(--primary-dark); border-top: 2px solid var(--line-strong); border-bottom: none; background: var(--page); }
.sim-calcnote { margin: 10px 0 0; font-size: 12px; color: var(--ink-soft); line-height: 1.6; }
@media (max-width: 768px) {
  .sim-grid { grid-template-columns: 1fr; }
  .sim-care { grid-template-columns: repeat(3, 1fr); }
  .sim-kasan-check { min-width: 100%; }
}
/* 障害版シミュレーターの段階セレクト */
.sim-mode2 { margin: 0 0 12px; }
.cc-lb { display: flex; flex-direction: column; gap: 3px; font-size: 12.5px; font-weight: 700; color: var(--ink-soft); min-width: 0; max-width: 100%; }
.cc-lb select, .cc-lb input { font: inherit; font-size: 14px; padding: 7px 9px; border: 1px solid var(--line-strong); border-radius: 8px; background: #fff; color: var(--ink); max-width: 100%; }
.cc-lb-wide { width: 100%; }
.cc-lb-wide select { min-width: 0; width: 100%; max-width: 360px; }
.chiiki-calc-row { display: flex; flex-wrap: wrap; gap: 8px 12px; margin-top: 8px; }
.cc-steps { flex-direction: column; align-items: stretch; }
.cc-meta { margin: 8px 0 0; font-size: 12.5px; color: var(--ink-soft); line-height: 1.6; }
.cc-unitval { display: inline-block; font-size: 15px; font-weight: 700; color: var(--primary-dark); padding: 4px 0; }
.cc-unitval-empty { font-size: 12.5px; font-weight: 400; color: var(--ink-soft); }
