/* ======================================================================
   a11y-tools.css
   アクセシビリティ：文字サイズ/配色切替 + 配色の波及（リンク/ヘッダー/ブロック等）
   ----------------------------------------------------------------------
   前提：
   - 文字サイズボタン: .font-size-controller / .btn-size / .is-active
   - 配色ボタン:       .color-controller / .btn-color / .is-active
   - body に theme-*（theme-default / theme-dark / theme-blue / theme-yellow）
   ====================================================================== */


/* ======================================================================
   1) ツールUI（ヘッダー右側エリア想定）
   ====================================================================== */

/* 文字サイズ */
.font-size-controller {
  margin: 0;
  display: flex;
  align-items: center;
  gap: 8px;
}

.font-size-label {
  font-weight: bold;
  font-size: 14px;
  white-space: nowrap;
}

.btn-size {
  padding: 4px 12px;
  border: 1px solid #ccc;
  background: #fff;
  cursor: pointer;
  border-radius: 4px;
  transition: all 0.2s;
}

.btn-size:hover {
  background: #f0f0f0;
}

.btn-size.is-active {
  background: var(--vk-color-primary);
  color: #fff;
  border-color: var(--vk-color-primary);
}

/* 配色（文字サイズと同じ見栄え） */
.color-controller {
  margin: 0;
  display: flex;
  align-items: center;
  gap: 8px;
}

.color-label {
  font-weight: bold;
  font-size: 14px;
  white-space: nowrap;
}

.btn-color {
  padding: 4px 12px;
  border: 1px solid #ccc;
  background: #fff;
  cursor: pointer;
  border-radius: 4px;
  transition: all 0.2s;
}

.btn-color:hover {
  background: #f0f0f0;
}

.btn-color.is-active {
  background: var(--vk-color-primary);
  color: #fff;
  border-color: var(--vk-color-primary);
}


/* ヘッダー右：アクセシビリティ操作のウィジェット間隔 */
.site-header-sub .widget_block + .widget_block {
  margin-left: 12px; /* 好みで 8px / 16px など */
}




/* ======================================================================
   ヘッダー右：検索フォームをa11yボタンと揃える
   ====================================================================== */

.site-header-sub .widget_search .wp-block-search__inside-wrapper {
  display: flex;
  align-items: center;
  gap: 0;
}

/* 入力ボックス */
.site-header-sub .widget_search .wp-block-search__input {
  height: 32px;
  padding: 4px 10px;
  font-size: 14px;
  border-radius: 4px;
}

/* 検索ボタン */
.site-header-sub .widget_search .wp-block-search__button {
  height: 32px;
  padding: 4px 12px ;
  font-size: 14px;
  border-radius: 4px;
}

/* a11yボタンと高さを完全一致させるなら */
.site-header-sub .btn-size,
.site-header-sub .btn-color {
  height: 32px;
  font-size: 14px;
}
/* 検索ボタンをアイコン化 */
.site-header-sub .widget_search .wp-block-search__button {
  font-size: 0; /* テキストを消す */
  position: relative;
  width: 44px;
  min-width: 44px;
  padding: 0;
}

/* 虫眼鏡アイコン表示 */
.site-header-sub .widget_search .wp-block-search__button::before {
	content: "";
  width: 18px;
  height: 18px;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  background: currentColor;
  
  /* stroke 幅が一定の虫眼鏡 */
  -webkit-mask: url("data:image/svg+xml;utf8,\
<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'>\
<circle cx='11' cy='11' r='7'/>\
<line x1='21' y1='21' x2='16.65' y2='16.65'/>\
</svg>") no-repeat center / contain;
  mask: url("data:image/svg+xml;utf8,\
<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'>\
<circle cx='11' cy='11' r='7'/>\
<line x1='21' y1='21' x2='16.65' y2='16.65'/>\
</svg>") no-repeat center / contain;
}


/* ======================================================================
   ボタンの表示・非表示
   ====================================================================== */

.site-header-sub {
  position: relative;
}

/*トグルボタン */
.a11y-toggle-btn {
  padding: 6px 12px;
  font-size: 14px;
  background: var(--vk-color-primary);
  color: #fff;
  border: none;
  cursor: pointer;
  position: absolute;
  top: -42px;
  right: 0; /* 検索ボックスとの兼ね合いで調整 */
  z-index: 10000;
  line-height: 1.4;
  border-radius: 6px;
  width: 12em;
}

/* アクセシビリティUI本体 */
#block-46 {
  overflow: hidden;
  max-height: 0;
  transition: max-height 0.4s ease, padding 0.4s ease, border-width 0.4s ease;
  position: absolute;
  top: -7px;
  right: 0; /* ボタンとそろえる */
  background-color: var(--default-color);
  border-radius: 10px;
  border: solid 0 var(--vk-color-border-blue);
  z-index: 9999;
  box-sizing: border-box;
  width: 571px;
  color: #FFF;
}

/* 開いた状態 */
#block-46.is-open {
  max-height: 200px;
  padding: 40px 10px;
  border-width: 3px;
}

/* 中身 */
#block-46 .wp-block-group {
  padding: 0;
}


/* ======================================================================
   2) 配色切替（theme-*）の色設計（自前変数）
   ====================================================================== */

body {
  --a11y-bg: #fff;
  --a11y-text: #222;
  --a11y-link: #0b57d0;
  --a11y-link-hover: #0842a0;
  --a11y-surface: #fff;     /* ヘッダー/カード面など */
  --a11y-border: #d0d7de;
}

/* 標準 */
body.theme-default {
  --a11y-bg: #fff;
  --a11y-text: #222;
  --a11y-link: #0b57d0;
  --a11y-link-hover: #0842a0;
  --a11y-surface: #fff;
  --a11y-border: #d0d7de;
}

/* 黒（高コントラスト） */
body.theme-dark {
  --a11y-bg: #000;
  --a11y-text: #fff;
  --a11y-link: #8ab4f8;
  --a11y-link-hover: #c3d7ff;
  --a11y-surface: #111;
  --a11y-border: #444;
}

/* 青 */
body.theme-blue {
  --a11y-bg: #003a8f;
  --a11y-text: #fff;
  --a11y-link: #b9d7ff;
  --a11y-link-hover: #e3f0ff;
  --a11y-surface: #062f6d;
  --a11y-border: #3b6fb6;
}

/* 黄（弱視向け） */
body.theme-yellow {
  --a11y-bg: #ffffcc;
  --a11y-text: #000;
  --a11y-link: #0033cc;
  --a11y-link-hover: #001a80;
  --a11y-surface: #fff3a6;
  --a11y-border: #b8aa3b;
}


/* ======================================================================
   3) ページ全体への反映（リンク/罫線）
   ====================================================================== */

body {
  background-color: var(--a11y-bg);
  color: var(--a11y-text);
}

/* リンク色（固定色対策の基本） */
a {
  color: var(--a11y-link);
}
a:hover,
a:focus {
  color: var(--a11y-link-hover);
}

/* 罫線が薄すぎる・見えない対策（最低限） */
hr,
th,
td {
  border-color: var(--a11y-border);
}


/* ======================================================================
   4) Lightning側の色変数へ橋渡し（効くところが一気に改善）
   ====================================================================== */

body.theme-default,
body.theme-dark,
body.theme-blue,
body.theme-yellow {
  --vk-color-text-body: var(--a11y-text);
  --vk-color-text: var(--a11y-text);

  --vk-color-link: var(--a11y-link);
  --vk-color-link-hover: var(--a11y-link-hover);

  --vk-color-bg: var(--a11y-bg);
  --vk-color-bg-light: var(--a11y-surface);

  --vk-color-border: var(--a11y-border);
}


/* ======================================================================
   5) ヘッダーが変わらない問題の対処（背景が直指定されがち）
   - 環境差があるので、当たりやすいセレクタをまとめて指定
   ====================================================================== */

.siteHeader,
.site-header,
.l-header,
.header,
#header {
  background-color: var(--a11y-surface) !important;
  color: var(--a11y-text);
}

/* ヘッダー内のリンク */
.siteHeader a,
.site-header a,
.l-header a,
.header a,
#header a {
  color: var(--a11y-link);
}
.siteHeader a:hover,
.site-header a:hover,
.l-header a:hover,
.header a:hover,
#header a:hover {
  color: var(--a11y-link-hover);
}


/* ======================================================================
   6) ブロック内の背景が変わらない問題（has-background が白固定になりがち）
   - “標準以外”のテーマ時だけ、背景付きブロックを surface に寄せる
   - 影響範囲を絞るため theme-default には適用しない
   ====================================================================== */

body.theme-dark  .wp-block-group.has-background,
body.theme-dark  .wp-block-columns.has-background,
body.theme-dark  .wp-block-column.has-background,
body.theme-dark  .wp-block-media-text.has-background,
body.theme-blue  .wp-block-group.has-background,
body.theme-blue  .wp-block-columns.has-background,
body.theme-blue  .wp-block-column.has-background,
body.theme-blue  .wp-block-media-text.has-background,
body.theme-yellow .wp-block-group.has-background,
body.theme-yellow .wp-block-columns.has-background,
body.theme-yellow .wp-block-column.has-background,
body.theme-yellow .wp-block-media-text.has-background {
  background-color: var(--a11y-surface) !important;
  color: var(--a11y-text);
}

/* cover は“画像背景”も多いので、背景は触らず文字色だけ合わせる（安全寄り） */
body.theme-dark  .wp-block-cover,
body.theme-blue  .wp-block-cover,
body.theme-yellow .wp-block-cover {
  color: var(--a11y-text);
}
body.theme-dark  .wp-block-cover a,
body.theme-blue  .wp-block-cover a,
body.theme-yellow .wp-block-cover a {
  color: var(--a11y-link);
}


/* ======================================================================
   7) 追加で効きやすい“白固定”対策（必要最小限）
   ====================================================================== */

/* よくある「カード/枠」系が白固定のときに surface へ寄せる */
body.theme-dark  .vk_posts.vk_posts-col,
body.theme-blue  .vk_posts.vk_posts-col,
body.theme-yellow .vk_posts.vk_posts-col {
  background-color: var(--a11y-surface);
  color: var(--a11y-text);
}

/* テーブルの背景が真っ白で浮く場合（必要なら） */
body.theme-dark table,
body.theme-blue table,
body.theme-yellow table {
  color: var(--a11y-text);
}


/* ======================================================================
   8) VK投稿リスト（Bootstrap .card が白固定になる問題）
   - style-theme-json.css の .card { background-color:#fff } を上書き
   ====================================================================== */

body.theme-dark  .vk_posts .card,
body.theme-blue  .vk_posts .card,
body.theme-yellow .vk_posts .card {
  background-color: var(--a11y-surface) !important;
  border-color: var(--a11y-border) !important;
  color: var(--a11y-text);
}

body.theme-dark  .vk_posts .card-body,
body.theme-blue  .vk_posts .card-body,
body.theme-yellow .vk_posts .card-body {
  background-color: transparent !important; /* 親のsurfaceを活かす */
  color: var(--a11y-text);
}

/* タイトル・抜粋・リンク */
body.theme-dark  .vk_posts .vk_post_title,
body.theme-blue  .vk_posts .vk_post_title,
body.theme-yellow .vk_posts .vk_post_title,
body.theme-dark  .vk_posts .vk_post_excerpt,
body.theme-blue  .vk_posts .vk_post_excerpt,
body.theme-yellow .vk_posts .vk_post_excerpt {
  color: var(--a11y-text);
}

body.theme-dark  .vk_posts .vk_post_title a,
body.theme-blue  .vk_posts .vk_post_title a,
body.theme-yellow .vk_posts .vk_post_title a {
  color: var(--a11y-link);
}
body.theme-dark  .vk_posts .vk_post_title a:hover,
body.theme-blue  .vk_posts .vk_post_title a:hover,
body.theme-yellow .vk_posts .vk_post_title a:hover {
  color: var(--a11y-link-hover);
}

/* ======================================================================
   9) VEU 子ページ一覧（veu_card）の文字色・リンク色が追従しない問題
   ====================================================================== */

/* カード内の基本文字色 */
body.theme-dark  .veu_card,
body.theme-blue  .veu_card,
body.theme-yellow .veu_card,
body.theme-dark  .veu_card_inner,
body.theme-blue  .veu_card_inner,
body.theme-yellow .veu_card_inner {
  color: var(--a11y-text);
}

/* タイトル（h3） */
body.theme-dark  .veu_card_title,
body.theme-blue  .veu_card_title,
body.theme-yellow .veu_card_title {
  color: var(--a11y-text);
}

/* リンク（カード内のリンク色を統一） */
body.theme-dark  .veu_card a,
body.theme-blue  .veu_card a,
body.theme-yellow .veu_card a {
  color: var(--a11y-link);
}

body.theme-dark  .veu_card a:hover,
body.theme-blue  .veu_card a:hover,
body.theme-yellow .veu_card a:hover,
body.theme-dark  .veu_card a:focus,
body.theme-blue  .veu_card a:focus,
body.theme-yellow .veu_card a:focus {
  color: var(--a11y-link-hover);
}

/* 現在ページ（current_page_item）が読みづらい場合の保険 */
body.theme-dark  .veu_card .current_page_item > a,
body.theme-blue  .veu_card .current_page_item > a,
body.theme-yellow .veu_card .current_page_item > a {
  color: var(--a11y-text);
  font-weight: 700;
}

/* ======================================================================
   10) ヘッダー：グロナビのドロップダウン（sub-menu）の文字色が追従しない
   ====================================================================== */

/* ドロップダウンの面（背景・枠・文字色） */
body.theme-dark  .sub-menu,
body.theme-blue  .sub-menu,
body.theme-yellow .sub-menu {
  background-color: var(--a11y-surface) !important;
  border-color: var(--a11y-border) !important;
  color: var(--a11y-text);
}

/* サブメニューのリンク */
body.theme-dark  .sub-menu a,
body.theme-blue  .sub-menu a,
body.theme-yellow .sub-menu a {
  color: var(--a11y-link) !important;
}

/* hover / focus（キーボード操作も想定） */
body.theme-dark  .sub-menu a:hover,
body.theme-blue  .sub-menu a:hover,
body.theme-yellow .sub-menu a:hover,
body.theme-dark  .sub-menu a:focus,
body.theme-blue  .sub-menu a:focus,
body.theme-yellow .sub-menu a:focus {
  color: var(--a11y-link-hover) !important;
  background-color: rgba(0,0,0,.06); /* 明るい面でうっすら強調（色指定はしていないのでOK） */
}

/* 現在位置（current-menu-item / current_page_item） */
body.theme-dark  .sub-menu .current-menu-item > a,
body.theme-blue  .sub-menu .current-menu-item > a,
body.theme-yellow .sub-menu .current-menu-item > a,
body.theme-dark  .sub-menu .current_page_item > a,
body.theme-blue  .sub-menu .current_page_item > a,
body.theme-yellow .sub-menu .current_page_item > a {
  color: var(--a11y-text) !important;
  font-weight: 700;
  text-decoration: underline;
}


/* ======================================================================
   11) Flexible Table Block（Flexible Table Block / flexible-table-block）
   - 背景・文字色・罫線が theme に追従しない問題
   ====================================================================== */

/* テーブル全体 */
body.theme-dark  figure.wp-block-flexible-table-block-table table,
body.theme-blue  figure.wp-block-flexible-table-block-table table,
body.theme-yellow figure.wp-block-flexible-table-block-table table {
  color: var(--a11y-text);
  border-color: var(--a11y-border);
}

/* th / td の文字・罫線 */
body.theme-dark  figure.wp-block-flexible-table-block-table th,
body.theme-blue  figure.wp-block-flexible-table-block-table th,
body.theme-yellow figure.wp-block-flexible-table-block-table th,
body.theme-dark  figure.wp-block-flexible-table-block-table td,
body.theme-blue  figure.wp-block-flexible-table-block-table td,
body.theme-yellow figure.wp-block-flexible-table-block-table td {
  color: var(--a11y-text) !important;
  border-color: var(--a11y-border) !important;
}

/* 背景：tdは surface、th は少し濃い面に（コントラスト確保） */
body.theme-dark  figure.wp-block-flexible-table-block-table td,
body.theme-blue  figure.wp-block-flexible-table-block-table td,
body.theme-yellow figure.wp-block-flexible-table-block-table td {
  background-color: var(--a11y-bg) !important;
}

body.theme-dark  figure.wp-block-flexible-table-block-table th,
body.theme-blue  figure.wp-block-flexible-table-block-table th,
body.theme-yellow figure.wp-block-flexible-table-block-table th {
  background-color: var(--a11y-surface) !important;
  font-weight: 700;
}

/* テーブル内リンク */
body.theme-dark  figure.wp-block-flexible-table-block-table a,
body.theme-blue  figure.wp-block-flexible-table-block-table a,
body.theme-yellow figure.wp-block-flexible-table-block-table a {
  color: var(--a11y-link) !important;
}
body.theme-dark  figure.wp-block-flexible-table-block-table a:hover,
body.theme-blue  figure.wp-block-flexible-table-block-table a:hover,
body.theme-yellow figure.wp-block-flexible-table-block-table a:hover,
body.theme-dark  figure.wp-block-flexible-table-block-table a:focus,
body.theme-blue  figure.wp-block-flexible-table-block-table a:focus,
body.theme-yellow figure.wp-block-flexible-table-block-table a:focus {
  color: var(--a11y-link-hover) !important;
}

/* ======================================================================
   12) VK Blocks タブ（is-style-vk_tab_labels-line 最終版 v2）
   - Active：本文ブロックと同じ背景（surface）で一体化。下線は消す
   - Inactive：一段薄い背景（bg）。下線（仕切り線）は残す
   ====================================================================== */

/* 共通：タブラベル基本（枠・文字） */
body.theme-dark  .wp-block-vk-blocks-tab .vk_tab_labels_label,
body.theme-blue  .wp-block-vk-blocks-tab .vk_tab_labels_label,
body.theme-yellow .wp-block-vk-blocks-tab .vk_tab_labels_label {
  color: var(--a11y-text) !important;
  border: 1px solid var(--a11y-border) !important;
}

/* 中身（span / strong 等）まで文字色を統一 */
body.theme-dark  .wp-block-vk-blocks-tab .vk_tab_labels_label *,
body.theme-blue  .wp-block-vk-blocks-tab .vk_tab_labels_label *,
body.theme-yellow .wp-block-vk-blocks-tab .vk_tab_labels_label * {
  color: var(--a11y-text) !important;
}

/* Active：本文と同じ面（surface） */
body.theme-dark
  .wp-block-vk-blocks-tab.is-style-vk_tab_labels-line
  .vk_tab_labels
  .vk_tab_labels_label.vk_tab_labels_label-state-active,
body.theme-blue
  .wp-block-vk-blocks-tab.is-style-vk_tab_labels-line
  .vk_tab_labels
  .vk_tab_labels_label.vk_tab_labels_label-state-active,
body.theme-yellow
  .wp-block-vk-blocks-tab.is-style-vk_tab_labels-line
  .vk_tab_labels
  .vk_tab_labels_label.vk_tab_labels_label-state-active {
  background-color: var(--a11y-surface) !important;
  font-weight: 700;
}

/* Inactive：一段薄い面（bg） */
body.theme-dark
  .wp-block-vk-blocks-tab.is-style-vk_tab_labels-line
  .vk_tab_labels
  .vk_tab_labels_label.vk_tab_labels_label-state-inactive,
body.theme-blue
  .wp-block-vk-blocks-tab.is-style-vk_tab_labels-line
  .vk_tab_labels
  .vk_tab_labels_label.vk_tab_labels_label-state-inactive,
body.theme-yellow
  .wp-block-vk-blocks-tab.is-style-vk_tab_labels-line
  .vk_tab_labels
  .vk_tab_labels_label.vk_tab_labels_label-state-inactive {
  background-color: var(--a11y-bg) !important;
}

/* =========================================================
   下線（lineスタイル由来の線）の扱い
   - Active だけ「線を消す」
   - Inactive は「線を残す」
   ========================================================= */

/* Activeだけ：border/影/グラデ/疑似要素の線を完全無効化 */
body
  .wp-block-vk-blocks-tab.is-style-vk_tab_labels-line
  .vk_tab_labels_label.vk_tab_labels_label-state-active {
  border-bottom: 0 !important;
  box-shadow: none !important;
  background-image: none !important;
}

body
  .wp-block-vk-blocks-tab.is-style-vk_tab_labels-line
  .vk_tab_labels_label.vk_tab_labels_label-state-active::before,
body
  .wp-block-vk-blocks-tab.is-style-vk_tab_labels-line
  .vk_tab_labels_label.vk_tab_labels_label-state-active::after {
  content: none !important;
  display: none !important;
  background: none !important;
  box-shadow: none !important;
}

/* Inactive：下線（仕切り線）を明示的に付け直す
   ※ lineスタイルが border ではなく疑似要素で描いていても、最低限見えるように */
body
  .wp-block-vk-blocks-tab.is-style-vk_tab_labels-line
  .vk_tab_labels_label.vk_tab_labels_label-state-inactive {
  border-bottom: 1px solid var(--a11y-border) !important;
}

/* hover / focus：操作中は surface に寄せる */
body.theme-dark  .wp-block-vk-blocks-tab .vk_tab_labels_label:hover,
body.theme-blue  .wp-block-vk-blocks-tab .vk_tab_labels_label:hover,
body.theme-yellow .wp-block-vk-blocks-tab .vk_tab_labels_label:hover,
body.theme-dark  .wp-block-vk-blocks-tab .vk_tab_labels_label:focus,
body.theme-blue  .wp-block-vk-blocks-tab .vk_tab_labels_label:focus,
body.theme-yellow .wp-block-vk-blocks-tab .vk_tab_labels_label:focus {
  background-color: var(--a11y-surface) !important;
}

/* ======================================================================
   13) タブ本文の枠線（has-border-color の inline border-color が暗背景で消える問題）
   - border-color:#0000001f を theme 時だけ a11y の枠色に寄せる
   ====================================================================== */

body.theme-dark  .wp-block-vk-blocks-tab .vk_tab_bodys_body .wp-block-group.has-border-color,
body.theme-blue  .wp-block-vk-blocks-tab .vk_tab_bodys_body .wp-block-group.has-border-color,
body.theme-yellow .wp-block-vk-blocks-tab .vk_tab_bodys_body .wp-block-group.has-border-color {
  border-color: var(--a11y-border) !important;
}

/* =========================================================
has-text-color対策
　========================================================= */
body.theme-dark  .has-text-color,
body.theme-blue  .has-text-color,
body.theme-yellow .has-text-color {
  background-color: var(--a11y-surface) !important;
  color: var(--a11y-text)!important;
}

/* =========================================================
 * フッター（.wp-block-group.copyright）の配色を
 * アクセシビリティツールのテーマに連動させる
 * ========================================================= */

/* 各テーマで共通の背景色（サーフェス色）を適用 */
body.theme-dark .wp-block-group.copyright,
body.theme-blue .wp-block-group.copyright,
body.theme-yellow .wp-block-group.copyright {
  /* --a11y-surface は既存のテーマ用背景色変数 */
  background-color: var(--a11y-surface) !important;
}

/* 文字色もテーマに合わせる*/
body.theme-dark footer,
body.theme-blue footer,
body.theme-yellow footer{
  /* --a11y-text は既存のテキスト色変数 */
  color: var(--a11y-text) !important;
}

/* リンク色もテーマに合わせる */
body.theme-dark footer a,
body.theme-blue footer a,
body.theme-yellow footer a{
  /* --a11y-link は既存のリンク色変数 */
  color: var(--a11y-link) !important;
}

/* =========================================================
消防の仕事、職員インタビューページのAccessibility調整
 * ========================================================= */
body.theme-dark .custom-heading-bg-label,
body.theme-blue .custom-heading-bg-label,
body.theme-yellow .custom-heading-bg-label,{
  /* --a11y-surface は既存のテーマ用背景色変数 */
  background-color: var(--a11y-surface) !important;
	color: var(--a11y-text) !important;
}


/* ダーク・ブルー時だけSVG画像を反転 */
body.theme-dark .color-invert-image img,
body.theme-blue .color-invert-image img,
body.theme-yellow .catch-phrase.color-invert-image img
{
  filter: invert(0) brightness(1.2);
}

body.theme-dark .catch-phrase.color-invert-image img,
body.theme-blue .catch-phrase.color-invert-image img,
body.theme-yellow .color-invert-image img
{
  filter: invert(1) brightness(1.2);
}
