/* ==========================================================
   DADS（デジタル庁デザインシステム）ベーススタイル for Astra
   トークン: dads-tokens.css（@digital-go-jp/design-tokens）
   ========================================================== */

/* ---------- 1. Astra グローバルカラーを DADS にマッピング ---------- */
:root {
	--ast-global-color-0: var(--color-key-900);            /* プライマリ / リンク */
	--ast-global-color-1: var(--color-key-1000);           /* ホバー */
	--ast-global-color-2: var(--color-neutral-solid-gray-900); /* 見出し */
	--ast-global-color-3: var(--color-neutral-solid-gray-800); /* 本文 */
	--ast-global-color-4: var(--color-neutral-solid-gray-50);  /* 背景（淡） */
	--ast-global-color-5: var(--color-neutral-white);      /* 背景 */
	--ast-global-color-6: var(--color-neutral-solid-gray-420); /* 罫線 */
	--ast-global-color-7: var(--color-neutral-solid-gray-600); /* 補助テキスト */
	--ast-global-color-8: var(--color-neutral-black);

	/* サイト内で使う意味づけトークン */
	--dads-text: var(--color-neutral-solid-gray-800);
	--dads-text-sub: var(--color-neutral-solid-gray-600);
	--dads-border: var(--color-neutral-solid-gray-420);
	--dads-border-input: var(--color-neutral-solid-gray-600);
	--dads-bg-subtle: var(--color-neutral-solid-gray-50);
	--dads-link: var(--color-key-1000);
	--dads-link-visited: var(--color-primitive-magenta-900, #6c0071);
	--dads-link-active: var(--color-primitive-orange-700, #c74700);
	--dads-focus-ring: var(--color-neutral-black);
	--dads-focus-bg: var(--color-primitive-yellow-300, #ffd43d);
}

/* ---------- 2. タイポグラフィ ---------- */
body,
button,
input,
select,
textarea,
.ast-button,
.ast-custom-button {
	font-family: var(--font-family-sans);
}

body {
	color: var(--dads-text);
	font-size: var(--font-size-16);
	line-height: var(--line-height-170);
	letter-spacing: 0.02em;
	background-color: var(--color-neutral-white);
}

p { line-height: var(--line-height-170); }

h1, .entry-content h1, .ast-archive-title, .ast-article-single .entry-title, .page .entry-title {
	font-size: var(--font-size-36);
	line-height: var(--line-height-140);
	font-weight: var(--font-weight-700);
	color: var(--color-neutral-solid-gray-900);
	letter-spacing: 0.01em;
}
h2, .entry-content h2 { font-size: var(--font-size-32); line-height: var(--line-height-150); font-weight: 700; color: var(--color-neutral-solid-gray-900); }
h3, .entry-content h3 { font-size: var(--font-size-28); line-height: var(--line-height-150); font-weight: 700; color: var(--color-neutral-solid-gray-900); }
h4, .entry-content h4 { font-size: var(--font-size-24); line-height: var(--line-height-150); font-weight: 700; color: var(--color-neutral-solid-gray-900); }
h5, .entry-content h5 { font-size: var(--font-size-20); line-height: var(--line-height-150); font-weight: 700; color: var(--color-neutral-solid-gray-900); }
h6, .entry-content h6 { font-size: var(--font-size-18); line-height: var(--line-height-160); font-weight: 700; color: var(--color-neutral-solid-gray-900); }

@media (max-width: 768px) {
	h1, .entry-content h1, .ast-archive-title, .ast-article-single .entry-title, .page .entry-title { font-size: var(--font-size-28); }
	h2, .entry-content h2 { font-size: var(--font-size-24); }
	h3, .entry-content h3 { font-size: var(--font-size-20); }
	h4, .entry-content h4 { font-size: var(--font-size-18); }
	h5, .entry-content h5, h6, .entry-content h6 { font-size: var(--font-size-16); }
}

small, .ast-small, .entry-meta, .posted-on { font-size: var(--font-size-14); color: var(--dads-text-sub); }

/* ---------- 3. リンク ---------- */
a,
.entry-content a {
	color: var(--dads-link);
	text-decoration: underline;
	text-underline-offset: 0.1875rem;
	text-decoration-thickness: 1px;
}
a:visited, .entry-content a:visited { color: var(--dads-link-visited); }
a:hover, .entry-content a:hover { color: var(--dads-link); text-decoration-thickness: 3px; }
a:active, .entry-content a:active { color: var(--dads-link-active); }

/* ナビゲーション・ロゴ等は下線なし */
.main-header-menu a,
.ast-builder-menu a,
.site-title a,
.ast-site-identity a,
.site-footer .ast-builder-menu a {
	text-decoration: none;
}
.main-header-menu a:hover,
.ast-builder-menu a:hover { text-decoration: underline; text-underline-offset: 0.1875rem; }

/* ---------- 4. フォーカスリング（DADS 共通） ---------- */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[tabindex]:focus-visible,
.ast-button:focus-visible,
.wp-block-button__link:focus-visible {
	outline: 4px solid var(--dads-focus-ring);
	outline-offset: 2px;
	box-shadow: 0 0 0 2px var(--dads-focus-bg);
}
a:focus-visible { background-color: var(--dads-focus-bg); color: var(--color-neutral-solid-gray-900); }

/* ---------- 5. ボタン ---------- */
button,
.button,
.ast-button,
.ast-custom-button,
input[type="submit"],
input[type="button"],
input[type="reset"],
.wp-block-button__link,
.wp-element-button,
.jet-search-filter__submit,
.jet-filters-pagination__link,
.jet-remove-all-filters__button,
.jet-smart-filters-search .jet-search-filter__submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	min-height: 3rem;
	padding: 0.625rem 1.5rem;
	font-size: var(--font-size-16);
	font-weight: var(--font-weight-700);
	line-height: var(--line-height-100);
	color: var(--color-neutral-white);
	background-color: var(--color-key-900);
	border: 1px solid var(--color-key-900);
	border-radius: var(--border-radius-8);
	text-decoration: none;
	cursor: pointer;
	transition: none;
}
button:hover,
.button:hover,
.ast-button:hover,
.ast-custom-button:hover,
input[type="submit"]:hover,
input[type="button"]:hover,
.wp-block-button__link:hover,
.wp-element-button:hover,
.jet-search-filter__submit:hover {
	color: var(--color-neutral-white);
	background-color: var(--color-key-1000);
	border-color: var(--color-key-1000);
	text-decoration: underline;
	text-underline-offset: 0.1875rem;
}
button:active,
.ast-button:active,
input[type="submit"]:active,
.wp-block-button__link:active {
	background-color: var(--color-key-1200);
	border-color: var(--color-key-1200);
}
button:disabled,
input[type="submit"]:disabled {
	color: var(--color-neutral-solid-gray-50);
	background-color: var(--color-neutral-solid-gray-300);
	border-color: var(--color-neutral-solid-gray-300);
	cursor: not-allowed;
	text-decoration: none;
}

/* セカンダリ（アウトライン） */
.is-style-outline .wp-block-button__link,
.button-secondary,
.jet-remove-all-filters__button,
input[type="reset"] {
	color: var(--color-key-900);
	background-color: var(--color-neutral-white);
	border-color: var(--color-key-900);
}
.is-style-outline .wp-block-button__link:hover,
.button-secondary:hover,
.jet-remove-all-filters__button:hover,
input[type="reset"]:hover {
	color: var(--color-key-1000);
	background-color: var(--color-key-200);
	border-color: var(--color-key-1000);
}

/* ---------- 6. フォーム ---------- */
input[type="text"],
input[type="search"],
input[type="email"],
input[type="url"],
input[type="tel"],
input[type="number"],
input[type="password"],
input[type="date"],
select,
textarea,
.jet-search-filter__input,
.jet-select__control {
	min-height: 3rem;
	padding: 0.75rem 1rem;
	font-size: var(--font-size-16);
	line-height: var(--line-height-150);
	color: var(--color-neutral-solid-gray-800);
	background-color: var(--color-neutral-white);
	border: 1px solid var(--dads-border-input);
	border-radius: var(--border-radius-8);
	box-shadow: none;
}
textarea { min-height: 8rem; }
input:hover, select:hover, textarea:hover { border-color: var(--color-neutral-black); }
input::placeholder, textarea::placeholder { color: var(--color-neutral-solid-gray-420); }
input[aria-invalid="true"], select[aria-invalid="true"], textarea[aria-invalid="true"] { border-color: var(--color-semantic-error-1); }

label,
.jet-filter-label,
.jet-smart-filters-select .jet-filter-label {
	font-size: var(--font-size-16);
	font-weight: var(--font-weight-700);
	line-height: var(--line-height-170);
	color: var(--color-neutral-solid-gray-800);
}

input[type="checkbox"],
input[type="radio"] {
	width: 1.25rem;
	height: 1.25rem;
	accent-color: var(--color-key-900);
}

/* ---------- 7. レイアウト・カード（施設一覧） ---------- */
.site-header,
.ast-primary-header-bar {
	background-color: var(--color-neutral-white);
	border-bottom: 1px solid var(--color-neutral-solid-gray-200);
}
.site-footer,
.site-primary-footer-wrap,
.site-below-footer-wrap {
	background-color: var(--color-neutral-solid-gray-50);
	color: var(--dads-text);
}

.jet-listing-grid__item > .jet-engine-listing-overlay-wrap,
.jet-listing-grid__item > .elementor,
.jet-listing-grid__item > div {
	border-radius: var(--border-radius-8);
}
.jet-listing-grid__item > div {
	background-color: var(--color-neutral-white);
	border: 1px solid var(--color-neutral-solid-gray-200);
	padding: 1.5rem;
}

.ast-separate-container,
.ast-separate-container #primary {
	background-color: var(--color-neutral-solid-gray-50);
}

/* テーブル（施設詳細の項目表示） */
table,
.entry-content table {
	border-collapse: collapse;
	width: 100%;
	font-size: var(--font-size-16);
}
th, td,
.entry-content th,
.entry-content td {
	padding: 1rem;
	border: 1px solid var(--color-neutral-solid-gray-420);
	text-align: left;
	vertical-align: top;
	line-height: var(--line-height-170);
}
th, .entry-content th {
	background-color: var(--color-neutral-solid-gray-50);
	font-weight: var(--font-weight-700);
	color: var(--color-neutral-solid-gray-900);
}

/* ページネーション */
.ast-pagination .page-numbers,
.nav-links .page-numbers {
	min-width: 2.75rem;
	min-height: 2.75rem;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: var(--border-radius-8);
	color: var(--dads-link);
}
.ast-pagination .page-numbers.current,
.nav-links .page-numbers.current {
	background-color: var(--color-key-900);
	color: var(--color-neutral-white);
}

/* 通知 */
.dads-notice-error, .woocommerce-error { border-left: 4px solid var(--color-semantic-error-1); background: #fdeeee; padding: 1rem; }
.dads-notice-success { border-left: 4px solid var(--color-semantic-success-1); background: #e6f5ec; padding: 1rem; }

/* 動きを抑える設定への配慮 */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}

/* ---------- 8. サイト固有（施設検索フォーム・施設詳細） ---------- */
/* 固定ページ内のインラインスタイルを DADS に上書き */
.shisetsu-search-form {
	background: var(--color-neutral-solid-gray-50) !important;
	border: 1px solid var(--color-neutral-solid-gray-200);
	border-radius: var(--border-radius-12) !important;
	padding: 1.5rem !important;
}
.shisetsu-search-form > p:first-child {
	font-size: var(--font-size-16);
	color: var(--color-neutral-solid-gray-800);
}
.shisetsu-search-form input[type="text"],
.shisetsu-search-form input[type="search"],
.shisetsu-search-form input:not([type]) {
	min-height: 3.5rem;
	padding: 0.75rem 1rem !important;
	border: 1px solid var(--dads-border-input) !important;
	border-radius: var(--border-radius-8) !important;
}
.shisetsu-search-form button {
	min-height: 3.5rem;
	padding: 0.75rem 1.75rem !important;
	background: var(--color-key-900) !important;
	border: 1px solid var(--color-key-900) !important;
	border-radius: var(--border-radius-8) !important;
	font-weight: var(--font-weight-700);
}
.shisetsu-search-form button:hover {
	background: var(--color-key-1000) !important;
	border-color: var(--color-key-1000) !important;
}
.shisetsu-search-form button:active { background: var(--color-key-1200) !important; }
@media (max-width: 544px) {
	.shisetsu-search-form > div { flex-direction: column; }
	.shisetsu-search-form button { width: 100%; }
}

.shisetsu-detail-table th { width: 30%; white-space: nowrap; }
@media (max-width: 544px) {
	.shisetsu-detail-table th,
	.shisetsu-detail-table td { display: block; width: 100%; }
	.shisetsu-detail-table th { border-bottom: 0; }
}

/* 検索結果・一覧カード */
.ast-separate-container .ast-archive-description,
.ast-separate-container .ast-article-single,
.ast-separate-container .ast-article-post > div[class*="ast-post-format"],
.ast-separate-container .ast-article-post .ast-article-inner {
	background-color: var(--color-neutral-white);
	border: 1px solid var(--color-neutral-solid-gray-200);
	border-radius: var(--border-radius-8);
}
.ast-separate-container .ast-article-post { border: 0; }
.ast-separate-container .ast-article-post .entry-title a { color: var(--dads-link); }
.ast-article-post .entry-title { font-size: var(--font-size-20); line-height: var(--line-height-150); }

/* 詳細ページのカード背景（Astra の詳細度に合わせて強制） */
.ast-separate-container .ast-article-single:not(.ast-related-post),
.ast-separate-container .comments-area,
.shisetsu-detail-table td { background-color: var(--color-neutral-white) !important; }


/* 施設検索フォーム（インラインスタイル廃止後のレイアウト） */
.entry-content .shisetsu-search-form { max-width: 40rem !important; margin-left: auto !important; margin-right: auto !important; }
.shisetsu-search-form__label { display: block; margin: 0 0 0.75rem; }
.shisetsu-search-form__row { display: flex; gap: 0.5rem; }
.shisetsu-search-form__row input[type="search"] { flex: 1; min-width: 0; }
@media (max-width: 544px) {
	.shisetsu-search-form__row { flex-direction: column; }
}
.shisetsu-all-link { margin-top: 1.5rem; }

/* ---------- パンくずリスト（DADS） ---------- */
.dads-breadcrumb { padding-top: 1.5rem; }
.dads-breadcrumb ~ #content #primary { margin-top: 1.5rem; }
.dads-breadcrumb__list {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.25rem 0;
	margin: 0;
	padding: 0;
	list-style: none;
	font-size: var(--font-size-16, 1rem);
	line-height: 1.7;
	color: var(--color-neutral-solid-gray-800, #333);
}
.dads-breadcrumb__item { display: inline-flex; align-items: center; margin: 0; }
.dads-breadcrumb__item + .dads-breadcrumb__item::before {
	content: "";
	flex: none;
	width: 0.4375rem;
	height: 0.4375rem;
	margin: 0 0.875rem 0 0.625rem;
	border-top: 2px solid var(--color-neutral-solid-gray-536, #767676);
	border-right: 2px solid var(--color-neutral-solid-gray-536, #767676);
	transform: rotate(45deg);
}
.dads-breadcrumb a { color: var(--dads-link); }
.dads-breadcrumb a:visited { color: var(--dads-link-visited); }
.dads-breadcrumb [aria-current="page"] { color: var(--color-neutral-solid-gray-800, #333); }

/* ---------- フッター: アクセシビリティ方針 ---------- */
.dads-footer-a11y {
	max-width: 48rem;
	margin: 0 auto 0.75rem;
	font-size: var(--font-size-14, 0.875rem);
	line-height: 1.7;
}
.site-footer .ast-footer-copyright p:last-child { margin-bottom: 0; }
.dads-nowrap { white-space: nowrap; }

/* ---------- ホーム: 見出し・最新の投稿 ---------- */
.home-news { margin-top: 3rem; }
.home-section-title { margin: 0 0 1rem; font-size: var(--font-size-28, 1.75rem); }
.home-news__list.wp-block-latest-posts {
	margin: 0;
	padding: 0 1.5rem;
	list-style: none;
	background: var(--color-neutral-white, #fff);
	border: 1px solid var(--color-neutral-solid-gray-200, #ccc);
	border-radius: var(--border-radius-12, 12px);
}
.home-news__list.wp-block-latest-posts > li {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 0.25rem 1.5rem;
	margin: 0;
	padding: 1rem 0;
	border-bottom: 1px solid var(--color-neutral-solid-gray-200, #ccc);
}
.home-news__list.wp-block-latest-posts > li:last-child { border-bottom: 0; }
.home-news__list .wp-block-latest-posts__post-date {
	order: -1;
	flex: none;
	min-width: 7.5em;
	margin: 0;
	font-size: var(--font-size-16, 1rem);
	color: var(--color-neutral-solid-gray-600, #666);
}

.home .entry-content > .shisetsu-sf:first-child,
.home .entry-content > .shisetsu-search-form:first-child { margin-top: 2.5rem; }
.entry-content .home-news.wp-block-group { padding: 0 !important; margin-left: 0; margin-right: 0; }

/* =========================================================
 * デザイン統一（見出し・文字サイズ・余白・アイコン）
 *   見出し 24px / 項目名 18px / 本文 16px / 補足 14px
 *   セクション間 56px / 見出し→内容 16px / カード内余白 24px
 * ======================================================= */
:root {
	--dads-section-gap: 3.5rem;
	--dads-card-pad: 1.5rem;
	--icon-search: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M15.5 14h-.79l-.28-.27A6.47 6.47 0 0 0 16 9.5 6.5 6.5 0 1 0 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z'/%3E%3C/svg%3E");
	--icon-news: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M19 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2zm0 16H5V5h14v14zM7 7h10v2H7V7zm0 4h10v2H7v-2zm0 4h7v2H7v-2z'/%3E%3C/svg%3E");
	--icon-building: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M17 11V3H7v4H3v14h8v-4h2v4h8V11h-4zM7 19H5v-2h2v2zm0-4H5v-2h2v2zm0-4H5V9h2v2zm4 4H9v-2h2v2zm0-4H9V9h2v2zm0-4H9V5h2v2zm4 8h-2v-2h2v2zm0-4h-2V9h2v2zm0-4h-2V5h2v2zm4 12h-2v-2h2v2zm0-4h-2v-2h2v2z'/%3E%3C/svg%3E");
	--icon-trend: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M16 6l2.29 2.29-4.88 4.88-4-4L2 16.59 3.41 18l6-6 4 4 6.3-6.29L22 12V6h-6z'/%3E%3C/svg%3E");
	--icon-arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 4l-1.41 1.41L16.17 11H4v2h12.17l-5.58 5.59L12 20l8-8-8-8z'/%3E%3C/svg%3E");
	--icon-tune: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 17v2h6v-2H3zM3 5v2h10V5H3zm10 16v-2h8v-2h-8v-2h-2v6h2zM7 9v2H3v2h4v2h2V9H7zm14 4v-2H11v2h10zm-6-4h2V7h4V5h-4V3h-2v6z'/%3E%3C/svg%3E");
	--icon-calendar: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M19 4h-1V2h-2v2H8V2H6v2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2zm0 16H5V10h14v10zm0-12H5V6h14v2z'/%3E%3C/svg%3E");
	--icon-pin: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a7 7 0 0 0-7 7c0 5.25 7 13 7 13s7-7.75 7-13a7 7 0 0 0-7-7zm0 9.5A2.5 2.5 0 1 1 12 6.5a2.5 2.5 0 0 1 0 5z'/%3E%3C/svg%3E");
	--icon-search-w: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill=%27white%27 d='M15.5 14h-.79l-.28-.27A6.47 6.47 0 0 0 16 9.5 6.5 6.5 0 1 0 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z'/%3E%3C/svg%3E");
	--icon-news-w: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill=%27white%27 d='M19 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2zm0 16H5V5h14v14zM7 7h10v2H7V7zm0 4h10v2H7v-2zm0 4h7v2H7v-2z'/%3E%3C/svg%3E");
	--icon-building-w: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill=%27white%27 d='M17 11V3H7v4H3v14h8v-4h2v4h8V11h-4zM7 19H5v-2h2v2zm0-4H5v-2h2v2zm0-4H5V9h2v2zm4 4H9v-2h2v2zm0-4H9V9h2v2zm0-4H9V5h2v2zm4 8h-2v-2h2v2zm0-4h-2V9h2v2zm0-4h-2V5h2v2zm4 12h-2v-2h2v2zm0-4h-2v-2h2v2z'/%3E%3C/svg%3E");
	--icon-trend-w: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill=%27white%27 d='M16 6l2.29 2.29-4.88 4.88-4-4L2 16.59 3.41 18l6-6 4 4 6.3-6.29L22 12V6h-6z'/%3E%3C/svg%3E");
}

/* アイコン共通（マスクで文字色に合わせる） */
.home-section-title::before,
.shisetsu-latest__title::before,
.sfr-public__title::before,
.shisetsu-latest__more a::after,
.sfr-more a::after,
.shisetsu-sf__to-filters a::before,
.shisetsu-search-form__row button::before,
.sfr-item__meta > span:last-child::before {
	content: "";
	flex: none;
	display: inline-block;
	background-color: currentColor;
	-webkit-mask: var(--icon) center / contain no-repeat;
	mask: var(--icon) center / contain no-repeat;
}

/* ---------- セクション見出し（ホームの4見出しを同じ表現に） ---------- */
.entry-content .home-section-title,
.entry-content .shisetsu-latest__title,
.entry-content .sfr-public__title {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	margin: 0 0 1rem !important;
	padding: 0;
	font-size: var(--font-size-24, 1.5rem) !important;
	line-height: 1.5;
	font-weight: 700;
	color: var(--color-neutral-solid-gray-900, #1a1a1a);
}
.home-section-title::before,
.shisetsu-latest__title::before,
.sfr-public__title::before {
	width: 2.5rem;
	height: 2.5rem;
	border-radius: var(--border-radius-full, 9999px);
	background-color: var(--color-key-900, #0017c1);
	-webkit-mask: none;
	mask: none;
	background-image: var(--icon);
	background-repeat: no-repeat;
	background-position: center;
	background-size: 1.5rem;
	/* 白いアイコンを円の上に重ねる */
	box-shadow: none;
}
.home-section-title--search { --icon: var(--icon-search-w); }
.home-section-title--news   { --icon: var(--icon-news-w); }
.shisetsu-latest__title     { --icon: var(--icon-building-w); }
.sfr-public__title          { --icon: var(--icon-trend-w); }

/* ---------- セクション間の余白 ---------- */
.home .entry-content > * { margin-top: 0; margin-bottom: 0; }
.home .entry-content > * + * { margin-top: var(--dads-section-gap) !important; }
.home .entry-content > :first-child { margin-top: 2.5rem !important; }
.home .shisetsu-latest,
.home .home-news,
.home .sfr-public { margin-top: 0; }
.ast-plain-container .site-content #primary { margin-bottom: 0; padding-bottom: 4rem; }
.ast-plain-container .entry-content > :last-child { margin-bottom: 0 !important; }

/* ---------- カード（検索・投稿・施設・ランキングで統一） ---------- */
.entry-content .shisetsu-search-form.shisetsu-sf,
.home-news__list.wp-block-latest-posts,
.shisetsu-latest__card,
.sfr-public__body {
	border: 1px solid var(--color-neutral-solid-gray-200, #ccc) !important;
	border-radius: var(--border-radius-12, 12px) !important;
	background: var(--color-neutral-white, #fff) !important;
}
.entry-content .shisetsu-search-form.shisetsu-sf { padding: var(--dads-card-pad) !important; }
.home-news__list.wp-block-latest-posts { padding: 0.5rem var(--dads-card-pad) !important; }
.shisetsu-latest__card { padding: var(--dads-card-pad); }
.sfr-public__body { padding: 0.5rem var(--dads-card-pad) var(--dads-card-pad); }
.shisetsu-latest__list { gap: 1rem; }

/* ---------- 文字サイズ ---------- */
/* 項目名 18px */
.entry-content .shisetsu-latest__name,
.home-news__list.wp-block-latest-posts a,
.sfr-item__body > a {
	font-size: var(--font-size-18, 1.125rem) !important;
	font-weight: 700;
	line-height: 1.5;
}
.entry-content .shisetsu-latest__name { margin: 0 0 0.5rem !important; }
/* 本文 16px（フォームのラベル） */
.shisetsu-search-form__label { font-size: var(--font-size-16, 1rem); font-weight: 700; }
/* 補足 14px */
.shisetsu-sf__hint,
.home-news__list .wp-block-latest-posts__post-date,
.sfr-panel__period,
.sfr-item__meta,
.shisetsu-card__meta { font-size: var(--font-size-14, 0.875rem) !important; }

/* 一覧の項目名は訪問済みでも同じ色（見た目をそろえる） */
.shisetsu-latest__name a:visited,
.home-news__list.wp-block-latest-posts a:visited,
.sfr-item__body > a:visited { color: var(--dads-link); }

/* ---------- 最新の投稿 ---------- */
.home-news__list.wp-block-latest-posts > li { padding: 1rem 0; gap: 0.25rem 1.5rem; }
.home-news__list .wp-block-latest-posts__post-date {
	display: inline-flex;
	align-items: center;
	gap: 0.375rem;
	min-width: 9em;
	color: var(--color-neutral-solid-gray-600, #666);
}
.home-news__list .wp-block-latest-posts__post-date::before {
	content: "";
	width: 1rem;
	height: 1rem;
	background-color: currentColor;
	-webkit-mask: var(--icon-calendar) center / contain no-repeat;
	mask: var(--icon-calendar) center / contain no-repeat;
}

/* ---------- 「もっと見る」リンク（矢印アイコン付き・右寄せで統一） ---------- */
.shisetsu-latest__more,
.sfr-more { margin: 1rem 0 0 !important; text-align: right; }
.shisetsu-latest__more a,
.sfr-more a {
	display: inline-flex;
	align-items: center;
	gap: 0.375rem;
	font-size: var(--font-size-16, 1rem);
	font-weight: 700;
}
.shisetsu-latest__more a::after,
.sfr-more a::after { --icon: var(--icon-arrow); width: 1.25rem; height: 1.25rem; }
.shisetsu-latest__more a:visited,
.sfr-more a:visited { color: var(--dads-link); }

/* ---------- 検索フォームのアイコン ---------- */
.shisetsu-search-form__row button { display: inline-flex; align-items: center; justify-content: center; gap: 0.375rem; }
.shisetsu-search-form__row button::before { --icon: var(--icon-search); width: 1.25rem; height: 1.25rem; }
.shisetsu-sf__to-filters { margin: 1rem 0 0 !important; }
.shisetsu-sf__to-filters a { display: inline-flex; align-items: center; gap: 0.375rem; font-size: var(--font-size-16, 1rem); }
.shisetsu-sf__to-filters a::before { --icon: var(--icon-tune); width: 1.25rem; height: 1.25rem; }
.shisetsu-sf__to-filters a:visited { color: var(--dads-link); }

/* ---------- ランキングの所在地にピン ---------- */
.sfr-item__meta > span:last-child { display: inline-flex; align-items: center; gap: 0.25rem; }
.sfr-item__meta > span:last-child::before { --icon: var(--icon-pin); width: 1rem; height: 1rem; }
.sfr-item { padding: 1rem 0; }

.home .entry-content > .home-section-title + * { margin-top: 0 !important; }

/* =========================================================
 * ヘッダー・フッター: 濃紺の背景に白文字（DADS Blue 1200）
 * ======================================================= */
:root {
	--dads-chrome-bg: var(--color-primitive-blue-1200, #000060);
	--dads-chrome-text: var(--color-neutral-white, #fff);
}
#masthead,
#masthead .ast-primary-header-bar,
#masthead .main-header-bar,
#masthead .ast-above-header-bar,
#masthead .ast-below-header-bar,
#masthead .ast-mobile-header-content,
#masthead .ast-desktop-header-content,
#masthead .main-header-menu,
#masthead .main-header-menu .sub-menu {
	background: var(--dads-chrome-bg) !important;
	border-color: var(--dads-chrome-bg) !important;
	color: var(--dads-chrome-text);
}
#masthead .ast-primary-header-bar { border-bottom: 0 !important; }
#masthead .site-title a,
#masthead .site-title a:visited,
#masthead .site-description,
#masthead .menu-link,
#masthead .menu-link:visited,
#masthead .ast-builder-menu .menu-item > .menu-link {
	color: var(--dads-chrome-text) !important;
}
#masthead .menu-link:hover,
#masthead .current-menu-item > .menu-link,
#masthead .current_page_item > .menu-link {
	text-decoration: underline;
	text-decoration-thickness: 3px;
	text-underline-offset: 0.5rem;
}
#masthead .menu-toggle,
#masthead .ast-mobile-menu-trigger-minimal {
	color: var(--dads-chrome-text) !important;
	background: transparent !important;
}
#masthead .menu-toggle svg,
#masthead .ast-mobile-svg { fill: currentColor !important; }
#masthead .ast-mobile-header-content .menu-item { border-color: rgba(255, 255, 255, 0.3) !important; }

.site-footer,
.site-footer .site-primary-footer-wrap,
.site-footer .site-below-footer-wrap,
.site-footer .site-above-footer-wrap {
	background: var(--dads-chrome-bg) !important;
	color: var(--dads-chrome-text) !important;
	border-top: 0 !important;
}
.site-footer .site-below-footer-wrap { padding-top: 2rem; padding-bottom: 2rem; }
.site-footer .ast-footer-copyright,
.site-footer .ast-footer-copyright p,
.site-footer .dads-footer-a11y { color: var(--dads-chrome-text) !important; }
.site-footer a,
.site-footer a:visited { color: var(--dads-chrome-text) !important; }
.site-footer a:hover { text-decoration-thickness: 3px; }

/* 濃い背景の上でもフォーカスは DADS 共通（黄色地に黒文字） */
#masthead a:focus-visible,
#masthead button:focus-visible,
.site-footer a:focus-visible { color: var(--color-neutral-solid-gray-900, #1a1a1a) !important; }

/* ページ上部へ戻るボタン（濃いフッターの上でも見えるように） */
#ast-scroll-top {
	background-color: var(--color-neutral-white, #fff) !important;
	color: var(--dads-chrome-bg) !important;
	border: 2px solid var(--dads-chrome-bg);
	border-radius: var(--border-radius-8, 8px);
}
#ast-scroll-top svg { fill: currentColor !important; }

/* ヘッダーをスクロールしても上部に固定 */
#masthead {
	position: sticky;
	top: 0;
	z-index: 999;
}
.admin-bar #masthead { top: 32px; }
@media (max-width: 782px) { .admin-bar #masthead { top: 46px; } }
@media (max-width: 600px) { .admin-bar #masthead { top: 0; } }
html { scroll-padding-top: 6rem; }

/* お知らせ一覧へのリンク（他の「もっと見る」と同じ表現） */
.home-news__more { margin: 1rem 0 0 !important; text-align: right; }
.home-news__more a { display: inline-flex; align-items: center; gap: 0.375rem; font-size: var(--font-size-16, 1rem); font-weight: 700; }
.home-news__more a:visited { color: var(--dads-link); }
.home-news__more a::after {
	content: "";
	width: 1.25rem;
	height: 1.25rem;
	background-color: currentColor;
	-webkit-mask: var(--icon-arrow) center / contain no-repeat;
	mask: var(--icon-arrow) center / contain no-repeat;
}

/* ---------- お知らせ一覧（1列のリスト） ---------- */
.dads-archive-title { margin: 1rem 0 1.5rem; font-size: var(--font-size-36, 2.25rem); line-height: 1.4; }
@media (max-width: 768px) { .dads-archive-title { font-size: var(--font-size-28, 1.75rem); } }
.blog:not(.home) #primary .ast-row { display: flex; flex-direction: column; gap: 1rem; margin: 0; }
.blog:not(.home) #primary .ast-row > article { width: 100% !important; max-width: none !important; flex: none; margin: 0 !important; padding: 0 !important; }
.blog:not(.home) #primary .ast-row > article .entry-title { font-size: var(--font-size-20, 1.25rem); }

/* ---------- お問い合わせフォーム（FormNest）を DADS のボタン表現に ---------- */
.formnest-form .formnest-submit-button,
.formnest-form button[type="submit"] {
	min-height: 3.5rem;
	min-width: 14rem;
	padding: 0 2rem;
	font-size: var(--font-size-16, 1rem);
	font-weight: 700;
	color: var(--color-neutral-white, #fff) !important;
	background: var(--color-key-900, #0017c1) !important;
	border: 0 !important;
	border-radius: var(--border-radius-8, 8px) !important;
	box-shadow: none !important;
	transform: none !important;
}
.formnest-form .formnest-submit-button:hover,
.formnest-form button[type="submit"]:hover { background: var(--color-key-1000, #00118f) !important; text-decoration: underline; }
.formnest-form .formnest-back-button,
.formnest-form button.formnest-back-button {
	min-height: 3.5rem;
	min-width: 10rem;
	padding: 0 1.5rem;
	font-size: var(--font-size-16, 1rem);
	font-weight: 700;
	color: var(--color-key-900, #0017c1) !important;
	background: var(--color-neutral-white, #fff) !important;
	border: 1px solid var(--color-key-900, #0017c1) !important;
	border-radius: var(--border-radius-8, 8px) !important;
	box-shadow: none !important;
}

/* 確認画面の「修正する」は白地の副ボタン */
.formnest-form button.formnest-button-back[type="submit"] {
	color: var(--color-key-900, #0017c1) !important;
	background: var(--color-neutral-white, #fff) !important;
	border: 1px solid var(--color-key-900, #0017c1) !important;
	min-width: 10rem;
}
.formnest-form button.formnest-button-back[type="submit"]:hover { background: var(--color-key-50, #e8f1fe) !important; }

/* ---------- スマホ表示のメニュー（濃紺の背景に白文字） ---------- */
@media (max-width: 921px) {
	#ast-mobile-header .ast-mobile-header-content,
	#ast-mobile-header .ast-builder-menu-mobile,
	#ast-mobile-header .main-header-bar-navigation,
	#ast-mobile-header .main-navigation,
	#ast-mobile-header .main-header-menu,
	#ast-mobile-header .main-header-menu .menu-item,
	.ast-header-break-point #ast-mobile-header .main-header-menu {
		background-color: var(--dads-chrome-bg, #000060) !important;
		color: var(--dads-chrome-text, #fff) !important;
	}
	#ast-mobile-header .ast-mobile-header-content { border-top: 1px solid rgba(255, 255, 255, 0.3) !important; }
	#ast-mobile-header .main-header-menu .menu-item > .menu-link,
	#ast-mobile-header .main-header-menu .menu-item > .menu-link:visited {
		min-height: 3.5rem;
		padding: 0.75rem 20px !important;
		align-items: center;
		font-size: var(--font-size-16, 1rem);
		font-weight: 700;
		color: var(--dads-chrome-text, #fff) !important;
		background-color: transparent !important;
		border-bottom: 1px solid rgba(255, 255, 255, 0.2) !important;
		border-left: 4px solid transparent;
		text-decoration: none !important;
	}
	#ast-mobile-header .main-header-menu .menu-item > .menu-link:hover {
		background-color: rgba(255, 255, 255, 0.12) !important;
		text-decoration: underline !important;
	}
	#ast-mobile-header .main-header-menu .current-menu-item > .menu-link,
	#ast-mobile-header .main-header-menu .current_page_item > .menu-link {
		background-color: rgba(255, 255, 255, 0.12) !important;
		border-left-color: var(--dads-chrome-text, #fff);
		text-decoration: none !important;
	}
	#ast-mobile-header .main-header-menu .menu-item > .menu-link:focus-visible {
		color: var(--color-neutral-solid-gray-900, #1a1a1a) !important;
		background-color: var(--color-primitive-yellow-300, #ffd43d) !important;
	}
}

/* ---------- お問い合わせフォームのスマホ表示（項目名の下に入力欄） ---------- */
@media (max-width: 640px) {
	.formnest-form .formnest-form-table,
	.formnest-form .formnest-form-table tbody,
	.formnest-form .formnest-form-table tr,
	.formnest-form .formnest-form-table th,
	.formnest-form .formnest-form-table td {
		display: block !important;
		width: 100% !important;
		box-sizing: border-box;
	}
	.formnest-form .formnest-form-table th { padding: 0.75rem 1rem 0.25rem !important; border-bottom: 0 !important; }
	.formnest-form .formnest-form-table td { padding: 0.5rem 1rem 1rem !important; }
	.formnest-form .formnest-form-table input:not([type="checkbox"]):not([type="radio"]),
	.formnest-form .formnest-form-table select,
	.formnest-form .formnest-form-table textarea { width: 100% !important; max-width: none !important; }
	.formnest-form .formnest-submit-button,
	.formnest-form button[type="submit"] { width: 100%; min-width: 0; }
	.formnest-form .formnest-confirm-buttons { display: flex; flex-direction: column-reverse; gap: 0.75rem; }
}
