/* =========================================================
 * 不動産AI実践室テーマ：サイト共通スタイル
 *
 * 基準：仕様書 v2.5 第11章（横幅ごとのルール・必須CSS）、
 *       付録A 第4.3〜4.5節、ブランド仕様書 v2.0 第5〜6章。
 * 禁止：全体への word-break:break-all、全体の white-space:nowrap、
 *       料金・試用条件の line-clamp、固定高さ＋overflow:hidden で本文を隠すこと。
 * ========================================================= */

/* ---------- 1. トークン ---------- */
:root {
	--fas-navy: var(--wp--preset--color--brand-navy, #17324D);
	--fas-teal: var(--wp--preset--color--brand-teal, #2F7D79);
	--fas-amber: var(--wp--preset--color--brand-amber, #F2A33A);
	--fas-text: var(--wp--preset--color--text-default, #263544);
	--fas-muted: var(--wp--preset--color--text-muted, #526273);
	--fas-surface: var(--wp--preset--color--surface, #FFFFFF);
	--fas-surface-soft: var(--wp--preset--color--surface-soft, #F6F8FA);
	--fas-border: var(--wp--preset--color--border, #DCE4EA);
	--fas-card-border: #CBD6DF;
	--fas-focus: #235B90;
	--fas-site-width: 1200px;
	--fas-reading-width: 760px;
	--fas-card-pad: 24px;
	--fas-card-gap: 24px;
	--fas-radius: 14px;
	--fas-control-height: 48px;
	--fas-section-space: clamp(40px, 6vw, 80px);
}

/* 画面幅ごとのページ左右余白（仕様書 第11.1節） */
html body { --wp--custom--page-gutter: 16px; }
@media (min-width: 360px) { html body { --wp--custom--page-gutter: 20px; } }
@media (min-width: 768px) { html body { --wp--custom--page-gutter: 24px; } }
@media (min-width: 1024px) { html body { --wp--custom--page-gutter: 32px; } }

/* ---------- 2. 基本 ---------- */
*, *::before, *::after { box-sizing: border-box; }

body {
	background: var(--fas-surface);
	color: var(--fas-text);
	-webkit-text-size-adjust: 100%;
	text-size-adjust: 100%;
	line-break: strict;
}

/* 日本語見出しの自然な改行。語の途中で切らず、最後の1文字だけが次の行に残るのを防ぐ。 */
/* 見出しとボタンは、サーバー側で入れた改行位置（<wbr>）と記号の位置でだけ改行する（inc/line-break.php）。
   keep-all は Safari を含む主要ブラウザで有効。auto-phrase に対応するブラウザでは、そちらを優先する。
   1つの語が画面幅より長い場合だけ、はみ出し防止のために語の途中で折り返す。 */
/* WordPress本体の .wp-block-post-title { word-break: break-word } （どこでも改行）を上書きするため、クラスも指定する。 */
h1, h2, h3, h4, h5, h6,
.wp-block-post-title,
.wp-block-heading,
.wp-block-query-title,
.wp-block-site-title,
.fas-card__title,
.wp-block-button__link {
	word-break: keep-all;
	word-break: auto-phrase;
	overflow-wrap: break-word;
	text-wrap: balance;
}
p, li, dd, td, th, figcaption {
	text-wrap: pretty;
	overflow-wrap: break-word;
}

/* 長いURL・英数字の連続だけは、その場所で折り返す。 */
.fas-long-token,
.wp-block-post-content a[href^="http"]:not(.wp-block-button__link) {
	overflow-wrap: anywhere;
}

img, video, iframe { max-width: 100%; height: auto; }

a { text-underline-offset: 0.18em; text-decoration-thickness: 1px; }
a:hover { text-decoration-thickness: 2px; }

:focus-visible {
	outline: 3px solid var(--fas-focus);
	outline-offset: 3px;
	border-radius: 2px;
}

/* 読み上げ専用の文字（外部サイトへの移動など） */
.screen-reader-text,
.fas-visually-hidden {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute !important;
	width: 1px;
	word-wrap: normal !important;
}

/* 表は表の内部だけ横スクロール（ページ全体をはみ出させない）。 */
.wp-block-table {
	max-width: 100%;
	overflow-x: auto;
}
.wp-block-table table { min-width: 560px; border-collapse: collapse; }
.wp-block-table th,
.wp-block-table td { border: 1px solid var(--fas-border); padding: 10px 12px; vertical-align: top; }
.wp-block-table thead th { background: var(--fas-surface-soft); color: var(--fas-navy); }
.wp-block-table figcaption { font-size: var(--wp--preset--font-size--note); color: var(--fas-muted); }

/* コード例・指示文の表示（コードとして実行しない。内部だけ横スクロール） */
pre, .wp-block-code, .wp-block-preformatted {
	max-width: 100%;
	overflow-x: auto;
	background: var(--fas-surface-soft);
	border: 1px solid var(--fas-border);
	border-radius: 8px;
	padding: 16px;
	font-size: 15px;
	line-height: 1.7;
	white-space: pre-wrap;
}

/* ---------- 3. ヘッダー ---------- */
.fas-header {
	position: relative;
	z-index: 20;
	background: var(--fas-surface);
	border-bottom: 1px solid var(--fas-border);
	padding-top: 12px;
	padding-bottom: 12px;
}
.fas-header__inner { gap: 16px; min-height: 56px; align-items: center; }
.fas-header__brand { gap: 10px; min-width: 0; align-items: center; }
.fas-header__brand .wp-block-site-title { margin: 0; white-space: normal; }
.fas-header__actions { gap: 12px; align-items: center; }

.fas-global-nav .wp-block-navigation-item__content {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	padding: 4px 6px;
	color: var(--fas-navy);
	text-decoration: none;
	font-weight: 600;
}
.fas-global-nav .wp-block-navigation-item__content:hover { text-decoration: underline; }
.fas-global-nav .current-menu-item > .wp-block-navigation-item__content,
.fas-global-nav [aria-current="page"] {
	text-decoration: underline;
	text-decoration-color: var(--fas-amber);
	text-decoration-thickness: 3px;
}

/* 「お問い合わせ」は折りたたみメニューを開いたときだけ表示する */
.fas-global-nav .fas-nav-contact { display: none; }
.fas-global-nav .is-menu-open .fas-nav-contact { display: list-item; }

.fas-header__cta { margin: 0; }
.fas-header__cta .wp-block-button__link {
	min-height: var(--fas-control-height);
	padding: 10px 16px;
	font-size: 15px;
	white-space: nowrap; /* ボタン1つだけの短い語句。全体には適用しない。 */
}

/* メニューの折りたたみ：6項目が横に収まらない幅（〜1023px）では折りたたむ */
@media (min-width: 600px) and (max-width: 1023px) {
	.fas-header .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex; }
	.fas-header .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none; }
}
.fas-header .wp-block-navigation__responsive-container-open,
.fas-header .wp-block-navigation__responsive-container-close {
	min-width: 44px;
	min-height: 44px;
	align-items: center;
	justify-content: center;
}
.fas-header .wp-block-navigation__responsive-container.is-menu-open {
	padding: 24px var(--wp--custom--page-gutter);
}
.fas-header .is-menu-open .wp-block-navigation__container {
	gap: 4px;
	width: 100%;
}
.fas-header .is-menu-open .wp-block-navigation-item { width: 100%; }
.fas-header .is-menu-open .wp-block-navigation-item__content {
	width: 100%;
	min-height: 48px;
	font-size: 18px;
	border-bottom: 1px solid var(--fas-border);
}

@media (max-width: 599px) {
	.fas-header__cta .wp-block-button__link { padding: 10px 12px; font-size: 14px; }
}
@media (max-width: 359px) {
	.fas-header__brand .wp-block-site-logo { display: none; }
	.fas-header__brand .wp-block-site-title { font-size: 17px; }
}

/* ---------- 4. パンくず ---------- */
.fas-breadcrumbs { margin-top: 16px; font-size: var(--wp--preset--font-size--note); color: var(--fas-muted); }
.fas-breadcrumbs ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 4px 0; }
.fas-breadcrumbs li { display: inline-flex; align-items: center; }
.fas-breadcrumbs li + li::before {
	content: "›";
	margin: 0 8px;
	color: var(--fas-muted);
}
.fas-breadcrumbs a { color: var(--fas-teal); }
.fas-breadcrumbs [aria-current="page"] { color: var(--fas-text); }

/* ---------- 5. ページ本体 ---------- */
.fas-main { padding-bottom: var(--fas-section-space); }
.fas-main--front { padding-bottom: 0; }
.fas-page-title { margin-top: 24px; margin-bottom: 8px; }
.fas-updated {
	gap: 8px;
	margin-top: 0;
	font-size: var(--wp--preset--font-size--note);
	color: var(--fas-muted);
}
.fas-updated p, .fas-updated .wp-block-post-date { margin: 0; }
.fas-content { margin-top: 24px; }
.fas-content > h2 { margin-top: 2.2em; }
.fas-content > h3 { margin-top: 1.8em; }

/* ---------- 6. セクション ---------- */
.fas-section { padding-top: var(--fas-section-space); padding-bottom: var(--fas-section-space); margin-top: 0; margin-bottom: 0; }
.fas-section + .fas-section:not(.fas-section--soft) { padding-top: 0; }
.fas-section--soft + .fas-section { padding-top: var(--fas-section-space); }
.fas-section__heading { margin-top: 0; margin-bottom: 12px; }
.fas-section__lead { max-width: var(--fas-reading-width); margin-top: 0; margin-bottom: 32px; font-size: var(--wp--preset--font-size--lead); }
.fas-section__note { max-width: var(--fas-reading-width); margin-top: 24px; color: var(--fas-muted); }
.fas-eyebrow {
	margin: 0 0 8px;
	font-size: var(--wp--preset--font-size--note);
	font-weight: 700;
	color: var(--fas-teal);
	letter-spacing: 0.04em;
}

.fas-request__subheading { margin-top: 32px; margin-bottom: 16px; font-size: var(--wp--preset--font-size--card-title); }
.fas-request__actions { margin-top: 24px; }

/* 表示できるnote記事がないときは、空の余白を残さない */
.fas-section--note:not(:has(.fas-note-feed)) { display: none; }

/* ---------- 7. ヒーロー（トップ冒頭） ---------- */
.fas-hero {
	padding-top: clamp(40px, 8vw, 96px);
	padding-bottom: clamp(40px, 7vw, 88px);
	background:
		linear-gradient(180deg, var(--fas-surface-soft) 0%, var(--fas-surface) 100%);
	border-bottom: 1px solid var(--fas-border);
}
.fas-hero__tagline {
	margin: 0 0 12px;
	font-weight: 700;
	color: var(--fas-teal);
	font-size: var(--wp--preset--font-size--body);
}
.fas-hero__title {
	margin: 0 0 20px;
	font-size: clamp(30px, 1.4rem + 2.6vw, 52px);
	line-height: 1.3;
}
.fas-hero__lead { margin: 0 0 12px; font-size: var(--wp--preset--font-size--lead); }
.fas-hero__sub { margin: 0 0 28px; font-weight: 700; color: var(--fas-navy); }
.fas-hero__actions { gap: 12px; }
.fas-hero__third { margin-top: 12px; }
.fas-hero__third .wp-block-button__link,
.fas-hero__third .is-style-fas-secondary .wp-block-button__link {
	min-height: var(--fas-control-height);
	padding: 8px 0;
	background: transparent;
	border: 0;
	color: var(--fas-teal);
	font-weight: 700;
	text-decoration: underline;
	text-underline-offset: 0.2em;
}
.fas-hero__third .wp-block-button__link::after { content: " →"; }

/* 冒頭の2列（PC：文章＋イラスト、スマホ：文章の下にイラスト） */
.fas-hero__grid { display: grid; gap: 32px; align-items: center; }
.fas-hero__grid > * { margin: 0 !important; }
.fas-hero__visual { margin: 0; }
.fas-hero__visual img { display: block; width: 100%; max-width: 520px; height: auto; margin-inline: auto; }
@media (min-width: 1024px) {
	.fas-hero__grid { grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr); gap: 48px; }
}
@media (max-width: 767px) {
	.fas-hero__visual img { max-width: 420px; }
}

/* ---------- 8. ボタン ---------- */
.wp-block-buttons { gap: 12px; flex-wrap: wrap; }
.wp-block-buttons:empty { display: none; }
.wp-block-button__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 0;
	max-width: 100%;
	min-height: var(--fas-control-height);
	text-align: center;
	white-space: normal;
	text-decoration: none;
}
.wp-block-button__link:hover { text-decoration: none; }
.is-style-fas-secondary .wp-block-button__link {
	background: var(--fas-surface);
	color: var(--fas-navy);
	border: 2px solid var(--fas-navy);
}
.is-style-fas-secondary .wp-block-button__link:hover {
	background: var(--fas-surface-soft);
	color: var(--fas-navy);
}

/* ---------- 9. カード（ブランド仕様書 第6.2節：ラベル→タイトル→本文→補足→CTA） ---------- */
.fas-card-grid {
	display: grid;
	gap: var(--fas-card-gap);
	/* 最小280px。収まらなければ列を減らし、どれだけ広くても3列まで。 */
	grid-template-columns: repeat(auto-fit, minmax(max(min(100%, 280px), calc((100% - 2 * var(--fas-card-gap)) / 3)), 1fr));
	margin-top: 0;
}
.fas-card-grid > * { margin: 0 !important; }
.fas-card-grid--wide { grid-template-columns: repeat(auto-fit, minmax(max(min(100%, 320px), calc((100% - 2 * var(--fas-card-gap)) / 3)), 1fr)); }
/* カードはPCでも最大3列（仕様書 第11.1節）。4枚のカードは2×2にして、3枚＋1枚の並びを避ける。 */
@media (min-width: 768px) {
	.fas-card-grid--four { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

.is-style-fas-card,
.fas-card {
	display: flex;
	flex-direction: column;
	min-width: 0;
	padding: var(--fas-card-pad);
	background: var(--fas-surface);
	border: 1px solid var(--fas-card-border);
	border-radius: var(--fas-radius);
}
.is-style-fas-card > *,
.fas-card > * { margin-top: 0; margin-bottom: 0; }
.fas-card__label {
	align-self: flex-start;
	margin-bottom: 10px !important;
	padding: 2px 10px;
	border-radius: 999px;
	background: #E8F2F1;
	color: #22605C;
	font-size: var(--wp--preset--font-size--note);
	font-weight: 700;
	line-height: 1.6;
}
.fas-card__title {
	margin: 0;
	font-size: var(--wp--preset--font-size--card-title);
	line-height: 1.45;
	color: var(--fas-navy);
}
.fas-card__title a { color: inherit; text-decoration: none; }
.fas-card__title a:hover { text-decoration: underline; }
.fas-card__description { margin-top: 12px !important; line-height: 1.7; min-width: 0; }
.fas-card__note {
	margin-top: 12px !important;
	padding-top: 12px;
	border-top: 1px dashed var(--fas-border);
	font-size: var(--wp--preset--font-size--note);
	color: var(--fas-muted);
}
.fas-card__meta { margin-top: 8px !important; font-size: var(--wp--preset--font-size--note); color: var(--fas-muted); }
.fas-card__actions {
	margin-top: auto !important;
	padding-top: 24px;
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}
.fas-card .wp-block-post-date,
.is-style-fas-card .wp-block-post-date { margin-top: 8px; }

/* ---------- 10. 注意・開示（ホバーだけで見せない。常に表示） ---------- */
.is-style-fas-notice {
	margin-top: 24px;
	margin-bottom: 24px;
	padding: 16px 20px;
	background: #FFF8EC;
	border: 1px solid #E9C98F;
	border-left: 6px solid var(--fas-amber);
	border-radius: 8px;
}
.is-style-fas-notice > * { margin-top: 0; margin-bottom: 0; }
.is-style-fas-notice > * + * { margin-top: 8px; }
.fas-notice__label { font-weight: 700; color: var(--fas-navy); }

/* ---------- 11. チェックリスト ---------- */
.fas-checklist { list-style: none; padding-left: 0; }
.fas-checklist li {
	position: relative;
	padding-left: 32px;
	margin-bottom: 12px;
}
.fas-checklist li::before {
	content: "";
	position: absolute;
	left: 4px;
	top: 0.45em;
	width: 14px;
	height: 8px;
	border-left: 3px solid var(--fas-teal);
	border-bottom: 3px solid var(--fas-teal);
	transform: rotate(-45deg);
}

/* ---------- 12. 検索フォーム ---------- */
.wp-block-search__label { font-weight: 700; color: var(--fas-navy); }
.wp-block-search__input {
	min-height: var(--fas-control-height);
	padding: 10px 12px;
	border: 1px solid #8A9AA9;
	border-radius: 8px 0 0 8px;
	font-size: 16px; /* スマホでの自動拡大を防ぐ */
}
.wp-block-search__button {
	min-height: var(--fas-control-height);
	margin-left: 0;
	border-radius: 0 8px 8px 0;
}

/* ---------- 13. フッター ---------- */
.fas-footer {
	margin-top: 0;
	padding-top: 56px;
	padding-bottom: 32px;
	background: var(--fas-navy);
	color: #E6EDF3;
}
.fas-footer a { color: #FFFFFF; }
.fas-footer__groups {
	display: grid;
	gap: 32px 24px;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr));
}
.fas-footer__groups > * { margin: 0 !important; }
/* リンク先がすべて未公開のグループは、見出しだけが残らないよう隠す */
.fas-footer__group:not(:has(.wp-block-navigation-item)) { display: none; }
.fas-footer__heading {
	margin: 0 0 12px;
	font-size: 16px;
	color: #FFFFFF;
	letter-spacing: 0.04em;
}
.fas-footer__nav .wp-block-navigation__container { gap: 2px; }
.fas-footer__nav .wp-block-navigation-item__content {
	display: inline-flex;
	align-items: center;
	min-height: 40px;
	padding: 2px 0;
	font-size: 15px;
	color: #E6EDF3;
	text-decoration: none;
}
.fas-footer__nav .wp-block-navigation-item__content:hover { text-decoration: underline; color: #FFFFFF; }
.fas-footer :focus-visible { outline-color: #FFFFFF; }
.fas-footer__bottom {
	margin-top: 40px;
	padding-top: 24px;
	border-top: 1px solid rgba(255, 255, 255, 0.25);
	font-size: var(--wp--preset--font-size--note);
}
.fas-footer__bottom p { margin: 0 0 8px; }

/* ---------- 13b. アイコン（装飾。読み上げには含めない） ---------- */
.fas-has-icon::before {
	content: "";
	display: block;
	flex: none;
	width: 56px;
	height: 56px;
	margin-bottom: 14px;
	border-radius: 14px;
	background-color: #E8F2F1;
	background-image: var(--fas-icon);
	background-repeat: no-repeat;
	background-position: center;
	background-size: 30px 30px;
}
.fas-icon-rental      { --fas-icon: url("../img/icons/rental.svg"); }
.fas-icon-management  { --fas-icon: url("../img/icons/management.svg"); }
.fas-icon-sales       { --fas-icon: url("../img/icons/sales.svg"); }
.fas-icon-operations  { --fas-icon: url("../img/icons/operations.svg"); }
.fas-icon-learn       { --fas-icon: url("../img/icons/learn.svg"); }
.fas-icon-try         { --fas-icon: url("../img/icons/try.svg"); }
.fas-icon-improve     { --fas-icon: url("../img/icons/improve.svg"); }
.fas-icon-consult     { --fas-icon: url("../img/icons/consult.svg"); }
.fas-icon-ai-assist   { --fas-icon: url("../img/icons/ai-assist.svg"); }
.fas-icon-human-check { --fas-icon: url("../img/icons/human-check.svg"); }
.fas-icon-system      { --fas-icon: url("../img/icons/system.svg"); }
.fas-icon-shield      { --fas-icon: url("../img/icons/shield.svg"); }
.fas-icon-checklist   { --fas-icon: url("../img/icons/checklist.svg"); }
.fas-icon-demo        { --fas-icon: url("../img/icons/demo.svg"); }
.fas-icon-concept     { --fas-icon: url("../img/icons/concept.svg"); }
.fas-icon-actual      { --fas-icon: url("../img/icons/actual.svg"); }

/* ---------- 13c. ステップ図（相談の流れなど） ---------- */
.fas-steps { counter-reset: fas-step; }
.fas-steps > .is-style-fas-card { position: relative; counter-increment: fas-step; padding-top: 28px; }
.fas-steps > .is-style-fas-card::before {
	content: counter(fas-step);
	display: flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	margin-bottom: 12px;
	border-radius: 50%;
	background: var(--fas-navy);
	color: #fff;
	font-weight: 700;
	font-size: 18px;
}
@media (min-width: 1024px) {
	.fas-steps { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	.fas-steps > .is-style-fas-card:not(:last-child)::after {
		content: "";
		position: absolute;
		top: 50px;
		right: -20px;
		width: 16px;
		height: 16px;
		border-top: 3px solid var(--fas-teal);
		border-right: 3px solid var(--fas-teal);
		transform: rotate(45deg);
	}
}

/* ---------- 13d. 業務の流れ図（縦のタイムライン。スマホでも文字を縮めない） ---------- */
ol.fas-flow {
	list-style: none;
	counter-reset: fas-flow;
	margin: 24px 0 32px;
	padding: 0;
}
ol.fas-flow > li {
	position: relative;
	counter-increment: fas-flow;
	margin: 0;
	padding: 0 0 22px 60px;
	min-height: 44px;
}
ol.fas-flow > li::before {
	content: counter(fas-flow);
	position: absolute;
	left: 0;
	top: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background: var(--fas-teal);
	color: #fff;
	font-weight: 700;
}
ol.fas-flow > li:not(:last-child)::after {
	content: "";
	position: absolute;
	left: 19px;
	top: 44px;
	bottom: 4px;
	width: 2px;
	background: var(--fas-border);
}
ol.fas-flow > li strong { display: block; color: var(--fas-navy); font-size: var(--wp--preset--font-size--card-title); line-height: 1.5; padding-top: 6px; }

/* 流れ図の役割タグ（色だけでなく文字でも区別） */
.fas-tag {
	display: inline-block;
	margin: 6px 6px 0 0;
	padding: 1px 10px;
	border-radius: 999px;
	border: 1px solid currentColor;
	background: transparent;
	font-size: 14px;
	font-weight: 700;
	line-height: 1.7;
	vertical-align: middle;
}
.fas-tag--ai { color: #22605C; background: #E8F2F1; border-color: #9CC7C3; }
.fas-tag--system { color: var(--fas-navy); background: #EEF2F6; border-color: #B7C4D1; }
.fas-tag--human { color: #7A4A06; background: #FFF4E0; border-color: #E9C98F; }
.fas-legend { display: flex; flex-wrap: wrap; gap: 8px 16px; align-items: center; margin: 8px 0 0; font-size: var(--wp--preset--font-size--note); color: var(--fas-muted); }

/* ---------- 13e. 比較カード（得意・要確認など） ---------- */
.fas-compare { display: grid; gap: 20px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); margin: 24px 0 32px; }
.fas-compare > * { margin: 0 !important; }
.fas-compare .is-style-fas-card { border-top: 6px solid var(--fas-teal); }
.fas-compare .is-style-fas-card.fas-card--caution { border-top-color: var(--fas-amber); }
.fas-compare .wp-block-list { margin: 8px 0 0; padding-left: 1.2em; }

/* ---------- 13f. 構成図（指示文の5要素など、小さなカードの並び） ---------- */
.fas-parts { display: grid; gap: 12px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 180px), 1fr)); margin: 20px 0 28px; counter-reset: fas-part; }
.fas-parts > * { margin: 0 !important; counter-increment: fas-part; }
.fas-parts .is-style-fas-card { padding: 18px; border-left: 5px solid var(--fas-teal); }
.fas-parts .is-style-fas-card .fas-card__title::before { content: counter(fas-part) ". "; color: var(--fas-teal); }

/* ---------- 13g. 表 ---------- */
.wp-block-table { margin: 24px 0 32px; border-radius: 12px; }
.wp-block-table table { width: 100%; background: #fff; }
.wp-block-table thead th { background: var(--fas-navy); color: #fff; text-align: left; border-color: var(--fas-navy); }
.wp-block-table tbody tr:nth-child(even) td { background: var(--fas-surface-soft); }
.wp-block-table tbody td:first-child { font-weight: 700; color: var(--fas-navy); }
.fas-price-table tbody td:nth-child(2) { white-space: nowrap; font-weight: 700; color: var(--fas-text); }

/* ---------- 13h. よくある状況・指示文の例・確認のポイント ---------- */
.fas-situation {
	margin: 16px 0 20px;
	padding: 16px 20px;
	border-radius: 10px;
	background: var(--fas-surface-soft);
	border: 1px solid var(--fas-border);
}
.fas-situation > * { margin: 0; }
.fas-situation__label { font-size: var(--wp--preset--font-size--note); font-weight: 700; color: var(--fas-muted); margin-bottom: 4px !important; }
.fas-prompt-label { margin: 20px 0 6px; font-size: var(--wp--preset--font-size--note); font-weight: 700; color: #22605C; }
pre.fas-prompt {
	margin: 0 0 20px;
	padding: 16px 18px;
	border: 1px solid #9CC7C3;
	border-left: 6px solid var(--fas-teal);
	background: #F3F8F8;
	font-family: inherit;
	font-size: 15px;
	line-height: 1.8;
	white-space: pre-wrap;
	overflow-wrap: anywhere;
}
.fas-points .fas-checklist { margin: 8px 0 0; }
.fas-points .fas-checklist li { margin-bottom: 6px; }
.fas-content h3.wp-block-heading:not(.fas-card__title) { margin-top: 1.4em; margin-bottom: 0.4em; font-size: var(--wp--preset--font-size--card-title); }

/* 指示文のコピーボタン */
.fas-copy-button {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	margin: -12px 0 20px;
	padding: 8px 16px;
	border: 2px solid var(--fas-teal);
	border-radius: 8px;
	background: #fff;
	color: #22605C;
	font: inherit;
	font-size: 15px;
	font-weight: 700;
	cursor: pointer;
}
.fas-copy-button:hover { background: #E8F2F1; }

/* 練習用の文章・出力の例 */
.fas-sample, .fas-output {
	margin: 16px 0;
	padding: 16px 20px;
	border-radius: 10px;
}
.fas-sample > *, .fas-output > * { margin: 0; }
.fas-sample { background: #FFFDF7; border: 1px dashed #E9C98F; }
.fas-output { background: #fff; border: 1px solid var(--fas-card-border); box-shadow: 0 2px 0 var(--fas-border); }
.fas-sample__label, .fas-output__label { margin-bottom: 6px !important; font-size: var(--wp--preset--font-size--note); font-weight: 700; color: var(--fas-muted); }

/* ---------- 13i. よくある質問（開閉） ---------- */
.wp-block-details.fas-faq {
	margin: 0 0 12px;
	padding: 0;
	border: 1px solid var(--fas-card-border);
	border-radius: 10px;
	background: #fff;
}
.wp-block-details.fas-faq summary {
	cursor: pointer;
	padding: 14px 18px;
	min-height: 48px;
	font-weight: 700;
	color: var(--fas-navy);
	list-style-position: inside;
}
.wp-block-details.fas-faq summary::marker { color: var(--fas-teal); }
.wp-block-details.fas-faq[open] summary { border-bottom: 1px solid var(--fas-border); }
.wp-block-details.fas-faq > p { margin: 0; padding: 14px 18px; }

/* ---------- 13j. 相談への案内（ページの最後） ---------- */
.fas-cta-band {
	margin: 48px 0 24px;
	padding: 28px 24px;
	border-radius: 16px;
	background: var(--fas-navy);
	color: #fff;
}
.fas-cta-band > * { margin-top: 0; }
.fas-cta-band .fas-cta-band__title { color: #fff; margin-bottom: 8px; font-size: var(--wp--preset--font-size--sub-title); }
.fas-cta-band p { color: #E6EDF3; }
.fas-cta-band .wp-block-button__link { background: #fff; color: var(--fas-navy); }
.fas-cta-band .is-style-fas-secondary .wp-block-button__link { background: transparent; color: #fff; border-color: #fff; }
.fas-cta-band :focus-visible { outline-color: #fff; }
@media (max-width: 767px) {
	.fas-cta-band .wp-block-button,
	.fas-cta-band .wp-block-button__link { width: 100%; }
}

/* ---------- 14. 編集者だけに見える目印（未公開ページへのリンク） ---------- */
[data-fas-hidden-for-visitors] {
	outline: 2px dashed #B54708;
	outline-offset: 2px;
	opacity: 0.75;
}

/* ---------- 14b. 講演・研修 ---------- */
.fas-seminar-tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 24px 0 8px;
}
.fas-seminar-tabs[hidden] { display: none; }
.fas-seminar-tabs__btn {
	min-height: 44px;
	padding: 8px 16px;
	border: 1px solid var(--fas-card-border);
	border-radius: 999px;
	background: var(--fas-surface);
	color: var(--fas-navy);
	font: inherit;
	font-weight: 700;
	cursor: pointer;
}
.fas-seminar-tabs__btn:hover { background: var(--fas-surface-soft); }
/* 選択中は色だけでなく、形（下線と印）でも示す。 */
.fas-seminar-tabs__btn[aria-pressed="true"] {
	background: var(--fas-navy);
	border-color: var(--fas-navy);
	color: #fff;
	text-decoration: underline;
	text-underline-offset: 4px;
}
.fas-seminar-tabs__btn[aria-pressed="true"]::before { content: "✓ "; }
.fas-seminar-group { margin-top: 40px; }
.fas-seminar-group[hidden] { display: none; }
.fas-seminar-group__title {
	margin: 0 0 16px;
	padding-left: 12px;
	border-left: 6px solid var(--fas-teal);
	font-size: var(--wp--preset--font-size--sub-title);
	color: var(--fas-navy);
}
.fas-seminar-card .fas-card__title { word-break: keep-all; overflow-wrap: anywhere; }
.fas-seminar-card__audience {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin: 12px 0 0 !important;
	padding: 0;
	list-style: none;
}
.fas-seminar-card__audience li {
	padding: 2px 10px;
	border: 1px solid var(--fas-border);
	border-radius: 999px;
	font-size: var(--wp--preset--font-size--note);
	color: var(--fas-muted);
}
.fas-seminar-card__more {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	font-weight: 700;
	color: var(--fas-navy);
}
.fas-seminar-card__more::after { content: "→"; margin-left: 6px; }
.fas-seminar-label {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 12px;
	margin: 16px 0 0;
	font-size: var(--wp--preset--font-size--note);
}
.fas-seminar-label .fas-card__label { margin: 0 !important; }
.fas-seminar-label__cat { color: var(--fas-muted); }
.fas-seminar-overview th { width: 30%; white-space: nowrap; }
@media (max-width: 767px) {
	.fas-seminar-overview th { white-space: normal; }
}

/* ---------- 15. スマートフォン・小さい画面 ---------- */
@media (max-width: 767px) {
	:root { --fas-card-pad: 20px; --fas-card-gap: 16px; }
	.fas-card__actions > *,
	.fas-card__actions .wp-block-button,
	.fas-card__actions .wp-block-button__link { width: 100%; }
	.fas-hero__actions .wp-block-button,
	.fas-hero__actions .wp-block-button__link { width: 100%; }
}
@media (max-width: 359px) {
	:root { --fas-card-pad: 16px; }
}

/* ---------- 16. 動きを減らす設定 ---------- */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after {
		scroll-behavior: auto !important;
		animation-duration: 0.01ms !important;
		transition-duration: 0.01ms !important;
	}
}

/* ---------- 17. 印刷（法務ページ・チェックリストの印刷用） ---------- */
@media print {
	.fas-header, .fas-footer, .fas-breadcrumbs, .wp-block-buttons { display: none !important; }
	a[href^="http"]::after { content: " (" attr(href) ")"; font-size: 0.85em; }
	body { font-size: 11pt; }
}
