/*!
 * CLOUD Theme — main.css
 * 設計トークン（CSS変数）＋コンポーネント。ビルド不要の素のCSS。
 * モバイルファースト（375px基準 → 768px → 1024px）。ダークモード非対応（固定ライト）。
 * 仕様: docs/06_テーマ設計_20260823.md ／ 共有契約のクラス名（BEM風）に準拠。
 *
 * 目次
 *  1. デザイントークン（:root）
 *  2. リセット・ベース
 *  3. タイポグラフィ
 *  4. レイアウト（container / section / grid / align）
 *  5. ボタン
 *  6. ヘッダー・グローバルナビ
 *  7. ヒーロー・波形
 *  8. 実績数字（stats）
 *  9. カード
 * 10. FAQ（details/summary）
 * 11. CTA帯
 * 12. 監修者
 * 13. 目次（toc）
 * 14. 記事本文（prose）
 * 15. 収益注記・バッジ・ラベル
 * 16. パンくず・ページネーション・記事ヘッダー
 * 17. モバイル固定CTA
 * 18. フッター
 * 19. フォーム（CF7 / 検索 / パスワード保護）
 * 20. Gutenbergコアブロック調整
 * 21. ユーティリティ・アクセシビリティ
 * 22. reduced-motion・印刷
 */

/* =========================================================
   1. デザイントークン
   ========================================================= */
:root {
	/* ブランドカラー（緑グラデの世界観） */
	--c-brand-700: #0f7a55;
	--c-brand-600: #1d9a6c;
	--c-brand-500: #29b47f;
	--c-brand-400: #5ccf9d;
	--c-brand-100: #e6f6ef;
	--c-accent: #b9e86b;

	/* テキスト・線・背景 */
	--c-ink-900: #0f1a1f;
	--c-ink-700: #2b3a40;
	--c-ink-500: #5b6b72;
	--c-ink-300: #9aa7ad;
	--c-line: #e3e9ec;
	--c-bg: #ffffff;
	--c-bg-soft: #f5f9f7;

	/* 注記（薄黄色）・エラー */
	--c-warn-bg: #fff8e1;
	--c-warn-line: #f1d87c;
	--c-warn-ink: #6b5200;
	--c-danger: #c0392b;

	/* グラデーション */
	--g-brand: linear-gradient(120deg, #0f7a55 0%, #29b47f 45%, #b9e86b 100%);       /* ヒーロー／CTA帯 */
	--g-btn: linear-gradient(120deg, #0f7a55 0%, #1d9a6c 55%, #29b47f 100%);         /* 主ボタン（白文字の可読性を優先し明端を控えめに） */
	--g-text: linear-gradient(120deg, #0f7a55 0%, #29b47f 60%, #5ccf9d 100%);        /* 数字のグラデ文字 */
	--g-bar: linear-gradient(180deg, #1d9a6c 0%, #5ccf9d 100%);                       /* 見出し左バー */

	/* 形状・影 */
	--radius: 12px;
	--radius-sm: 8px;
	--radius-pill: 999px;
	--shadow-card: 0 8px 24px rgba(15, 26, 31, 0.08);
	--shadow-card-hover: 0 16px 36px rgba(15, 26, 31, 0.14);
	--shadow-btn: 0 6px 16px rgba(29, 154, 108, 0.32);
	--shadow-btn-hover: 0 10px 22px rgba(29, 154, 108, 0.4);
	--shadow-header: 0 2px 12px rgba(15, 26, 31, 0.06);

	/* 幅・余白 */
	--container: 1200px;
	--container-narrow: 720px;
	--gutter: 20px;
	--header-h: 64px;
	--mobile-cta-h: 68px;

	/* タイポグラフィ */
	--font-sans: "Noto Sans JP", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic", "Meiryo", sans-serif;
	--font-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;
	--fs-base: 15.5px;
	--lh-body: 1.9;
	--lh-heading: 1.4;

	/* モーション・重なり順 */
	--dur: 0.2s;
	--ease: cubic-bezier(0.2, 0.7, 0.2, 1);
	--z-mobile-cta: 90;
	--z-header: 100;
	--z-nav: 110;
	--z-skip: 1000;
}

@media (min-width: 768px) {
	:root {
		--fs-base: 16px;
		--gutter: 28px;
	}
}

@media (min-width: 1024px) {
	:root {
		--gutter: 32px;
		--header-h: 72px;
	}
}

/* =========================================================
   2. リセット・ベース
   ========================================================= */
*,
*::before,
*::after { box-sizing: border-box; }

html {
	-webkit-text-size-adjust: 100%;
	scroll-behavior: smooth;
	scroll-padding-top: calc(var(--header-h) + 16px); /* 固定ヘッダー分のアンカー余白 */
}

body {
	margin: 0;
	min-height: 100vh;
	min-height: 100svh;
	display: flex;
	flex-direction: column;
	font-family: var(--font-sans);
	font-size: var(--fs-base);
	line-height: var(--lh-body);
	color: var(--c-ink-700);
	background: var(--c-bg);
	overflow-wrap: anywhere;
	-webkit-font-smoothing: antialiased;
	overflow-x: hidden;
	overflow-x: clip; /* alignfull の 100vw による横スクロールを防ぐ（sticky を壊さない clip を優先） */
}

/* メイン領域を伸ばしてフッターを下端に（#page / .site ラッパがある場合も同様に伸ばす） */
.site,
#page {
	display: flex;
	flex-direction: column;
	flex: 1 0 auto;
	width: 100%;
}

main,
.site-main,
.site-content {
	flex: 1 0 auto;
	width: 100%;
}

img,
svg,
video {
	max-width: 100%;
	height: auto;
	vertical-align: middle;
}

iframe { max-width: 100%; }

a {
	color: var(--c-brand-600);
	text-decoration: none;
	transition: color var(--dur) var(--ease);
}

a:hover { color: var(--c-brand-700); }

:focus-visible {
	outline: 3px solid var(--c-brand-400);
	outline-offset: 3px;
	border-radius: 4px;
}

button {
	font: inherit;
	color: inherit;
	background: none;
	border: 0;
	padding: 0;
	cursor: pointer;
}

ul,
ol {
	margin: 0 0 1.5em;
	padding-left: 1.5em;
}

hr {
	border: 0;
	height: 1px;
	background: var(--c-line);
	margin: 2.5em 0;
}

table {
	border-collapse: collapse;
	width: 100%;
}

/* =========================================================
   3. タイポグラフィ
   ========================================================= */
h1,
h2,
h3,
h4,
h5,
h6 {
	margin: 0 0 0.6em;
	font-weight: 700;
	line-height: var(--lh-heading);
	color: var(--c-ink-900);
	letter-spacing: 0.03em;
	font-feature-settings: "palt" 1;
	text-wrap: balance;
}

h1 { font-size: clamp(26px, 5vw, 40px); }
h2 { font-size: clamp(22px, 4vw, 32px); }
h3 { font-size: clamp(18px, 3.2vw, 22px); }
h4 { font-size: 17px; }
h5,
h6 { font-size: 16px; }

p { margin: 0 0 1.4em; }

small { font-size: 0.85em; }

strong,
b { font-weight: 700; }

::selection { background: rgba(41, 180, 127, 0.25); }

/* =========================================================
   4. レイアウト
   ========================================================= */
.container {
	width: 100%;
	max-width: calc(var(--container) + var(--gutter) * 2);
	margin-left: auto;
	margin-right: auto;
	padding-left: var(--gutter);
	padding-right: var(--gutter);
}

.container--narrow { max-width: calc(var(--container-narrow) + var(--gutter) * 2); }

/* 入れ子の container は余白を二重に取らない */
.container .container {
	padding-left: 0;
	padding-right: 0;
}

.section {
	padding-top: clamp(48px, 8vw, 88px);
	padding-bottom: clamp(48px, 8vw, 88px);
}

.section--soft { background: var(--c-bg-soft); }

.section--tight {
	padding-top: clamp(32px, 5vw, 56px);
	padding-bottom: clamp(32px, 5vw, 56px);
}

.section__header { margin-bottom: clamp(28px, 5vw, 44px); }

.section__title {
	position: relative;
	text-align: center;
	font-size: clamp(22px, 4.5vw, 34px);
	margin: 0 0 40px;
	padding-bottom: 18px;
}

/* 見出し下のアクセントバー */
.section__title::after {
	content: "";
	position: absolute;
	left: 50%;
	bottom: 0;
	width: 44px;
	height: 4px;
	border-radius: 2px;
	background: var(--g-btn);
	transform: translateX(-50%);
}

.section__title--left { text-align: left; }

.section__title--left::after {
	left: 0;
	transform: none;
}

.section__lead {
	text-align: center;
	color: var(--c-ink-500);
	max-width: 40em;
	margin: -24px auto 40px;
	font-size: 0.97em;
}

.section__title--left + .section__lead {
	text-align: left;
	margin-left: 0;
}

.section__header .section__title { margin-bottom: 16px; }

.section__header .section__lead { margin: 0 auto; }

/* グリッド */
.grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 20px;
}

.grid > * { min-width: 0; }

@media (min-width: 768px) {
	.grid { gap: 24px; }

	.grid--2,
	.grid--3 { grid-template-columns: repeat(2, 1fr); }
}

@media (min-width: 1024px) {
	.grid { gap: 32px; }

	.grid--3 { grid-template-columns: repeat(3, 1fr); }
}

/* ブロックの幅揃え（クラシック＋theme.json のハイブリッド用の最低限） */
.alignwide {
	--w: min(calc(100vw - var(--gutter) * 2), var(--container));
	width: var(--w);
	max-width: none;
	margin-left: calc(50% - var(--w) / 2);
	margin-right: calc(50% - var(--w) / 2);
}

.alignfull {
	width: 100vw;
	max-width: none;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
}

.alignleft {
	float: left;
	margin: 0.4em 1.5em 1em 0;
}

.alignright {
	float: right;
	margin: 0.4em 0 1em 1.5em;
}

.aligncenter {
	display: block;
	margin-left: auto;
	margin-right: auto;
}

/* =========================================================
   5. ボタン
   ========================================================= */
.btn,
.wp-block-button__link,
.wpcf7-submit,
.post-password-form input[type="submit"],
.search-submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5em;
	min-height: 44px;
	padding: 0.65em 1.7em;
	border: 2px solid transparent;
	border-radius: var(--radius-pill);
	font-family: inherit;
	font-size: 15px;
	font-weight: 700;
	line-height: 1.3;
	letter-spacing: 0.02em;
	text-align: center;
	text-decoration: none;
	cursor: pointer;
	-webkit-appearance: none;
	appearance: none;
	transition:
		transform var(--dur) var(--ease),
		box-shadow var(--dur) var(--ease),
		background-color var(--dur) var(--ease),
		color var(--dur) var(--ease),
		filter var(--dur) var(--ease);
}

/* 主ボタン: 緑グラデ・白文字 */
.btn--primary,
.wp-block-button__link,
.wpcf7-submit,
.post-password-form input[type="submit"],
.search-submit {
	background: var(--g-btn);
	color: #fff;
	box-shadow: var(--shadow-btn);
}

.btn--primary:hover,
.wp-block-button__link:hover,
.wpcf7-submit:hover,
.post-password-form input[type="submit"]:hover,
.search-submit:hover {
	color: #fff;
	filter: brightness(1.06);
	transform: translateY(-1px);
	box-shadow: var(--shadow-btn-hover);
}

.btn--primary:active,
.wp-block-button__link:active,
.wpcf7-submit:active {
	filter: brightness(0.97);
	transform: translateY(0);
	box-shadow: 0 3px 10px rgba(29, 154, 108, 0.3);
}

/* 副ボタン: 白地・緑枠 */
.btn--ghost,
.is-style-outline .wp-block-button__link,
.wp-block-button.is-style-outline > .wp-block-button__link {
	background: #fff;
	color: var(--c-brand-600);
	border-color: var(--c-brand-600);
	box-shadow: none;
}

.btn--ghost:hover,
.is-style-outline .wp-block-button__link:hover {
	background: var(--c-brand-100);
	color: var(--c-brand-700);
	border-color: var(--c-brand-700);
	filter: none;
	transform: translateY(-1px);
	box-shadow: 0 4px 12px rgba(15, 26, 31, 0.08);
}

.btn--ghost:active { transform: translateY(0); }

.btn:focus-visible,
.wp-block-button__link:focus-visible,
.wpcf7-submit:focus-visible {
	outline: 3px solid var(--c-brand-400);
	outline-offset: 3px;
}

.btn--sm {
	min-height: 40px;
	padding: 0.45em 1.2em;
	font-size: 14px;
}

.btn--lg {
	min-height: 52px;
	padding: 0.8em 2.2em;
	font-size: 16.5px;
}

.btn--block {
	display: flex;
	width: 100%;
}

/* アイコン（SVG）を内包する場合 */
.btn svg {
	width: 1.1em;
	height: 1.1em;
	flex: none;
}

/* =========================================================
   6. ヘッダー・グローバルナビ
   ========================================================= */
.site-header {
	position: sticky;
	top: 0;
	z-index: var(--z-header);
	background: #fff;
	border-bottom: 1px solid var(--c-line);
	box-shadow: var(--shadow-header);
}

/* WP管理バー表示時のオフセット */
.admin-bar .site-header { top: 32px; }

@media (max-width: 782px) {
	.admin-bar .site-header { top: 46px; }
}

.site-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	min-height: var(--header-h);
}

.site-logo {
	display: inline-flex;
	align-items: center;
	flex: none;
	color: var(--c-ink-900);
	font-weight: 700;
	font-size: 20px;
	letter-spacing: 0.06em;
	text-decoration: none;
}

.site-logo img {
	display: block;
	height: 36px;
	width: auto;
}

/* ハンバーガー */
.nav-toggle {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	margin-left: auto;
	border-radius: var(--radius-sm);
	color: var(--c-ink-900);
	z-index: calc(var(--z-nav) + 1);
}

.nav-toggle:hover { background: var(--c-brand-100); }

.nav-toggle::before,
.nav-toggle::after {
	content: "";
	position: absolute;
	left: 11px;
	width: 22px;
	height: 2px;
	border-radius: 2px;
	background: currentColor;
	transition: transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
}

.nav-toggle::before {
	top: 15px;
	box-shadow: 0 6px 0 currentColor; /* 中段バー */
}

.nav-toggle::after { top: 27px; }

/* 開いた状態: ×印 */
.nav-toggle[aria-expanded="true"]::before,
.nav-toggle.is-open::before {
	transform: translateY(6px) rotate(45deg);
	box-shadow: 0 0 0 transparent;
}

.nav-toggle[aria-expanded="true"]::after,
.nav-toggle.is-open::after { transform: translateY(-6px) rotate(-45deg); }

.nav-toggle__label {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}

/* モバイル: フルスクリーンメニュー */
.nav-primary {
	display: none;
	position: fixed;
	top: var(--header-h);
	left: 0;
	right: 0;
	bottom: 0;
	z-index: var(--z-nav);
	background: #fff;
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
	padding: 16px var(--gutter) calc(120px + env(safe-area-inset-bottom));
}

.admin-bar .nav-primary { top: calc(var(--header-h) + 32px); }

@media (max-width: 782px) {
	.admin-bar .nav-primary { top: calc(var(--header-h) + 46px); }
}

.nav-primary.is-open { display: block; }

/* メニュー展開中は背面スクロールを止める（JSが body/html に付与する想定・任意） */
.nav-open,
.nav-open body { overflow: hidden; }

.nav-primary__list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.nav-primary__list li { border-bottom: 1px solid var(--c-line); }

.nav-primary__list a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	min-height: 52px;
	padding: 12px 4px;
	font-size: 16.5px;
	font-weight: 500;
	color: var(--c-ink-900);
	text-decoration: none;
}

.nav-primary__list a::after {
	content: "›";
	color: var(--c-ink-300);
	font-size: 1.2em;
	margin-left: 8px;
}

.nav-primary__list a:hover,
.nav-primary__list .current-menu-item > a,
.nav-primary__list .current-menu-ancestor > a,
.nav-primary__list .current_page_item > a { color: var(--c-brand-600); }

/* サブメニュー（使う場合のみ） */
.nav-primary__list .sub-menu {
	list-style: none;
	margin: 0;
	padding: 0 0 8px 16px;
}

.nav-primary__list .sub-menu li { border: 0; }

.nav-primary__list .sub-menu a {
	min-height: 44px;
	font-size: 15px;
	font-weight: 400;
}

.nav-primary .btn {
	display: flex;
	width: 100%;
	margin-top: 24px;
}

/* PC: 横並びナビ＋右ボタン */
@media (min-width: 1024px) {
	.nav-toggle { display: none; }

	.nav-primary {
		display: flex;
		position: static;
		align-items: center;
		gap: 8px 20px;
		margin-left: auto;
		padding: 0;
		background: transparent;
		overflow: visible;
	}

	.admin-bar .nav-primary { top: auto; }

	.nav-primary__list {
		display: flex;
		align-items: center;
		gap: 2px;
	}

	.nav-primary__list li {
		border: 0;
		position: relative;
	}

	.nav-primary__list a {
		min-height: 40px;
		padding: 6px 12px;
		font-size: 15px;
		border-radius: var(--radius-sm);
		transition: background-color var(--dur) var(--ease), color var(--dur) var(--ease);
	}

	.nav-primary__list a::after { content: none; }

	.nav-primary__list a:hover { background: var(--c-brand-100); }

	.nav-primary__list .current-menu-item > a,
	.nav-primary__list .current-menu-ancestor > a,
	.nav-primary__list .current_page_item > a { background: var(--c-brand-100); }

	/* PCのサブメニュー: ホバーで表示 */
	.nav-primary__list .sub-menu {
		display: none;
		position: absolute;
		top: 100%;
		left: 0;
		min-width: 200px;
		padding: 8px;
		background: #fff;
		border: 1px solid var(--c-line);
		border-radius: var(--radius);
		box-shadow: var(--shadow-card);
	}

	.nav-primary__list li:hover > .sub-menu,
	.nav-primary__list li:focus-within > .sub-menu { display: block; }

	.nav-primary__list .sub-menu a {
		min-height: 40px;
		white-space: nowrap;
	}

	.nav-primary .btn {
		display: inline-flex;
		width: auto;
		margin: 0 0 0 8px;
	}
}

/* =========================================================
   7. ヒーロー・波形
   ========================================================= */
.hero {
	position: relative;
	/* overflow:hidden は付けない（下端の波形を1px食い込ませて小数ピクセルの継ぎ目を隠すため） */
	background: var(--g-brand);
	color: #fff;
	text-align: center;
	padding: clamp(56px, 10vw, 120px) 0 clamp(96px, 16vw, 180px);
}

/* 文字の可読性を上げる薄い暗幕＋ハイライト */
.hero::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 0;
	pointer-events: none;
	background:
		radial-gradient(120% 80% at 85% 10%, rgba(255, 255, 255, 0.16), transparent 55%),
		linear-gradient(180deg, rgba(15, 26, 31, 0.22) 0%, rgba(15, 26, 31, 0.08) 60%, rgba(15, 26, 31, 0) 100%);
}

.hero > :not(.wave) {
	position: relative;
	z-index: 1;
}

.hero h1,
.hero h2,
.hero p { color: inherit; }

.hero__eyebrow {
	display: inline-block;
	margin-bottom: 16px;
	padding: 4px 14px;
	border-radius: var(--radius-pill);
	background: rgba(255, 255, 255, 0.18);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.08em;
}

.hero__title {
	font-size: clamp(28px, 6vw, 52px);
	line-height: 1.3;
	font-weight: 700;
	letter-spacing: 0.04em;
	margin: 0 0 0.6em;
	text-shadow: 0 2px 14px rgba(15, 26, 31, 0.18);
}

.hero__lead {
	font-size: clamp(15px, 2.2vw, 18px);
	line-height: 1.9;
	max-width: 40em;
	margin: 0 auto 1.8em;
	opacity: 0.96;
	text-shadow: 0 1px 8px rgba(15, 26, 31, 0.15);
}

.hero__actions {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 12px;
	max-width: 480px;
	margin: 0 auto;
}

.hero__actions .btn {
	flex: 1 1 100%;
	min-height: 50px;
	font-size: 16px;
}

@media (min-width: 480px) {
	.hero__actions .btn {
		flex: 0 1 auto;
		min-width: 200px;
	}
}

/* ヒーロー上ではボタンを白ベースに */
.hero .btn--primary {
	background: #fff;
	color: var(--c-brand-700);
	box-shadow: 0 8px 24px rgba(15, 26, 31, 0.18);
}

.hero .btn--primary:hover {
	color: var(--c-brand-700);
	filter: none;
	background: #f4fbf7;
}

.hero .btn--ghost {
	background: transparent;
	color: #fff;
	border-color: rgba(255, 255, 255, 0.85);
}

.hero .btn--ghost:hover {
	background: rgba(255, 255, 255, 0.14);
	color: #fff;
	border-color: #fff;
}

.hero__note {
	margin: 20px 0 0;
	font-size: 12.5px;
	opacity: 0.85;
}

/* 波形装飾: ヒーロー下端に重ねる。SVG は currentColor で塗ると次セクション色に合わせられる */
.wave {
	position: absolute;
	left: 0;
	right: 0;
	bottom: -1px;
	z-index: 1;
	line-height: 0;
	pointer-events: none;
	color: var(--c-bg);
}

.wave--soft { color: var(--c-bg-soft); }

.wave svg,
.wave img {
	display: block;
	width: 100%;
	height: auto;
	min-height: 40px;
}

@media (min-width: 1024px) {
	.wave svg,
	.wave img { min-height: 80px; }
}

/* ヒーロー内に stats を置く場合は白文字に */
.hero .stats__num {
	background: none;
	-webkit-text-fill-color: #fff;
	color: #fff;
}

.hero .stats__label { color: rgba(255, 255, 255, 0.88); }

/* =========================================================
   8. 実績数字（stats）
   ========================================================= */
.stats {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 24px 12px;
	list-style: none;
	margin: 0;
	padding: 0;
	text-align: center;
}

@media (min-width: 768px) {
	.stats {
		grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
		gap: 32px 24px;
	}
}

.stats__item {
	padding: 16px 8px;
	min-width: 0;
}

.stats--boxed .stats__item {
	padding: 28px 16px;
	background: #fff;
	border-radius: var(--radius);
	box-shadow: var(--shadow-card);
}

.stats__num {
	display: block;
	font-size: clamp(44px, 8vw, 64px);
	font-weight: 700;
	line-height: 1.1;
	letter-spacing: -0.01em;
	font-variant-numeric: tabular-nums;
	font-feature-settings: "tnum" 1, "palt" 1;
	background: var(--g-text);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	color: transparent;
}

/* 単位（件・年・名など）は小さく */
.stats__num small,
.stats__unit {
	font-size: 0.42em;
	font-weight: 700;
	margin-left: 0.15em;
	letter-spacing: 0.02em;
}

.stats__label {
	display: block;
	margin-top: 8px;
	font-size: 14px;
	font-weight: 500;
	color: var(--c-ink-500);
	line-height: 1.6;
}

.stats__note {
	grid-column: 1 / -1;
	font-size: 12px;
	color: var(--c-ink-500);
	margin: 0;
}

/* =========================================================
   9. カード
   ========================================================= */
.card {
	position: relative;
	display: flex;
	flex-direction: column;
	height: 100%;
	background: #fff;
	border-radius: var(--radius);
	box-shadow: var(--shadow-card);
	overflow: hidden;
	color: inherit;
	text-decoration: none;
	transition: transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
}

.card:hover {
	transform: translateY(-4px);
	box-shadow: var(--shadow-card-hover);
}

.card:focus-within { box-shadow: var(--shadow-card-hover); }

.card__media {
	position: relative;
	display: block;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	background: var(--c-bg-soft);
}

.card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 0.4s var(--ease);
}

.card:hover .card__media img { transform: scale(1.03); }

/* 画像が無いときはグラデで埋める */
.card__media:empty { background: var(--g-brand); }

/* メディア内のカテゴリラベルは左上に重ねる */
.card__media .label-cat {
	position: absolute;
	top: 10px;
	left: 10px;
	z-index: 2;
}

.card__body {
	display: flex;
	flex-direction: column;
	flex: 1;
	gap: 8px;
	padding: 18px 18px 20px;
}

.card__body .label-cat { align-self: flex-start; }

.card__title {
	margin: 0;
	font-size: 17px;
	line-height: 1.55;
	font-weight: 700;
	color: var(--c-ink-900);
	letter-spacing: 0.02em;
}

.card__title a {
	color: inherit;
	text-decoration: none;
}

.card__title a:hover { color: var(--c-brand-600); }

/* タイトルリンクをカード全面に拡張（他のリンクは z-index で前面に） */
.card__title a::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
}

.card .label-cat,
.card__meta a,
.card__excerpt a {
	position: relative;
	z-index: 2;
}

.card__excerpt {
	font-size: 14px;
	line-height: 1.75;
	color: var(--c-ink-700);
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
	overflow: hidden;
}

.card__excerpt p { margin: 0; }

.card__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 2px 6px;
	margin: auto 0 0;
	padding-top: 4px;
	font-size: 12.5px;
	color: var(--c-ink-500);
	font-variant-numeric: tabular-nums;
}

.card__meta-sep,
.entry-meta__sep { color: var(--c-ink-300); }

/* コラムカード */
.card--column .card__title { font-size: 16.5px; }

/* 受講生インタビューカード */
.card--voice .card__title { font-size: 16px; }

.card--voice .card__meta { order: 3; }

.card--voice .card__excerpt { order: 2; }

/* テキスト主体のカード（特長3カード等） */
.card--feature .card__body {
	padding: 26px 22px;
	gap: 10px;
}

.card__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 52px;
	height: 52px;
	border-radius: 14px;
	background: var(--c-brand-100);
	color: var(--c-brand-600);
	font-size: 24px;
	font-weight: 700;
}

.card__icon svg {
	width: 26px;
	height: 26px;
}

.card__text {
	margin: 0;
	font-size: 14.5px;
	line-height: 1.8;
	color: var(--c-ink-700);
}

/* =========================================================
   10. FAQ（details/summary）
   ========================================================= */
.faq {
	display: flex;
	flex-direction: column;
	gap: 12px;
	max-width: 860px;
	margin: 0 auto;
}

.faq__item,
.wp-block-details {
	margin: 0;
	background: #fff;
	border: 1px solid var(--c-line);
	border-radius: var(--radius);
	overflow: hidden;
}

.faq__item[open],
.wp-block-details[open] {
	border-color: var(--c-brand-400);
	box-shadow: 0 6px 18px rgba(29, 154, 108, 0.08);
}

.faq__item summary,
.wp-block-details summary {
	position: relative;
	display: flex;
	align-items: flex-start;
	gap: 12px;
	min-height: 56px;
	padding: 16px 56px 16px 18px;
	list-style: none;
	cursor: pointer;
	font-weight: 700;
	font-size: 15.5px;
	line-height: 1.6;
	color: var(--c-ink-900);
	-webkit-tap-highlight-color: transparent;
}

.faq__item summary::-webkit-details-marker,
.wp-block-details summary::-webkit-details-marker { display: none; }

.faq__item summary:hover,
.wp-block-details summary:hover { color: var(--c-brand-700); }

/* 「Q」マーク */
.faq__item summary::before {
	content: "Q";
	flex: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	border-radius: 50%;
	background: var(--c-brand-600);
	color: #fff;
	font-size: 14px;
	font-weight: 700;
	line-height: 1;
	margin-top: 0.05em;
}

/* ＋／− アイコン（CSSで描画・アニメなし） */
.faq__item summary::after,
.wp-block-details summary::after {
	content: "";
	position: absolute;
	right: 16px;
	top: 50%;
	width: 28px;
	height: 28px;
	margin-top: -14px;
	border-radius: 50%;
	background-color: var(--c-brand-100);
	background-image:
		linear-gradient(var(--c-brand-600), var(--c-brand-600)),
		linear-gradient(var(--c-brand-600), var(--c-brand-600));
	background-repeat: no-repeat;
	background-position: center;
	background-size: 12px 2px, 2px 12px;
}

.faq__item[open] summary::after,
.wp-block-details[open] summary::after {
	background-size: 12px 2px, 0 0; /* 縦線を消して「−」に */
}

/* 回答部分（直下の要素すべてに左右余白・最後の要素だけ下余白） */
.faq__item > :not(summary),
.wp-block-details > :not(summary) {
	position: relative;
	margin: 0;
	padding: 0 18px;
	font-size: 15px;
	line-height: 1.85;
	color: var(--c-ink-700);
}

.faq__item > :last-child:not(summary),
.wp-block-details > :last-child:not(summary) { padding-bottom: 18px; }

/* 回答が複数段落（p が直下に並ぶ）場合の段落間隔 */
.faq__item > :not(summary) + :not(summary),
.wp-block-details > :not(summary) + :not(summary) { margin-top: 0.8em; }

@media (min-width: 768px) {
	.faq__item > :not(summary) {
		padding-left: 58px; /* Qマーク分をインデント */
	}

	.faq__answer::before {
		content: "A";
		position: absolute;
		left: 18px;
		top: 0;
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: 28px;
		height: 28px;
		border-radius: 50%;
		background: var(--c-brand-100);
		color: var(--c-brand-700);
		font-size: 14px;
		font-weight: 700;
		line-height: 1;
	}
}

.faq__item > :not(summary) > :last-child,
.wp-block-details > :not(summary) > :last-child { margin-bottom: 0; }

.faq__item > :not(summary) p:last-child { margin-bottom: 0; }

/* =========================================================
   11. CTA帯
   ========================================================= */
.cta-band {
	position: relative;
	overflow: hidden;
	background: var(--g-brand);
	color: #fff;
	text-align: center;
	padding: clamp(44px, 8vw, 80px) var(--gutter);
}

.cta-band::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 0;
	pointer-events: none;
	background:
		radial-gradient(100% 100% at 100% 0%, rgba(255, 255, 255, 0.14), transparent 55%),
		linear-gradient(180deg, rgba(15, 26, 31, 0.16), rgba(15, 26, 31, 0.02));
}

.cta-band > * {
	position: relative;
	z-index: 1;
}

.cta-band__inner {
	max-width: 720px;
	margin: 0 auto;
}

.cta-band__title {
	margin: 0 0 12px;
	font-size: clamp(21px, 4.5vw, 32px);
	font-weight: 700;
	line-height: 1.4;
	letter-spacing: 0.04em;
	color: #fff;
	text-shadow: 0 2px 10px rgba(15, 26, 31, 0.15);
}

.cta-band__lead,
.cta-band p {
	max-width: 38em;
	margin: 0 auto 24px;
	font-size: 15px;
	line-height: 1.85;
	color: rgba(255, 255, 255, 0.94);
}

.cta-band__actions {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 12px;
}

/* 帯の上ではボタンは白 */
.cta-band .btn,
.cta-band .wp-block-button__link {
	background: #fff;
	color: var(--c-brand-700);
	box-shadow: 0 8px 24px rgba(15, 26, 31, 0.18);
	min-height: 50px;
	font-size: 16px;
	padding-left: 2.2em;
	padding-right: 2.2em;
}

.cta-band .btn:hover,
.cta-band .wp-block-button__link:hover {
	background: #f4fbf7;
	color: var(--c-brand-700);
	filter: none;
}

.cta-band .btn--ghost {
	background: transparent;
	color: #fff;
	border-color: rgba(255, 255, 255, 0.85);
	box-shadow: none;
}

.cta-band .btn--ghost:hover {
	background: rgba(255, 255, 255, 0.14);
	color: #fff;
}

.cta-band .btn--sm {
	min-height: 44px;
	font-size: 15px;
}

.cta-band__note,
.cta-band small {
	display: block;
	margin-top: 14px;
	font-size: 12.5px;
	color: rgba(255, 255, 255, 0.85);
}

/* コンテナ内に置かれた場合（記事末尾など）は角丸ボックスに */
.container .cta-band,
.prose .cta-band,
.cta-band--boxed {
	margin: 40px 0;
	border-radius: 16px;
}

/* 記事中盤用の小さめボックス */
.cta-band--inline {
	padding: 24px var(--gutter);
	margin: 32px 0;
	border-radius: var(--radius);
}

.cta-band--inline .cta-band__title {
	font-size: 17px;
	margin-bottom: 12px;
}

@media (min-width: 768px) {
	.cta-band--inline .cta-band__inner {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 16px;
		text-align: left;
	}

	.cta-band--inline .cta-band__title { margin: 0; }

	.cta-band--inline .btn { flex: none; }
}

/* =========================================================
   12. 監修者
   ========================================================= */
.supervisor {
	display: flex;
	align-items: flex-start;
	gap: 16px;
	padding: 20px;
	background: var(--c-bg-soft);
	border: 1px solid var(--c-line);
	border-radius: var(--radius);
}

.supervisor__photo {
	flex: none;
	width: 64px;
	height: 64px;
	border-radius: 50%;
	overflow: hidden;
	background: #fff;
	border: 2px solid #fff;
	box-shadow: 0 2px 8px rgba(15, 26, 31, 0.12);
}

.supervisor__photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

/* 同じボックスに写真が2枚並ぶ場合は少し重ねる */
.supervisor__photo + .supervisor__photo { margin-left: -28px; }

.supervisor__body {
	flex: 1;
	min-width: 0;
	font-size: 14px;
	line-height: 1.7;
	color: var(--c-ink-700);
}

.supervisor__label {
	display: inline-block;
	margin-bottom: 6px;
	padding: 1px 8px;
	border-radius: 4px;
	background: var(--c-brand-600);
	color: #fff;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.08em;
}

.supervisor__name {
	margin: 0;
	font-size: 16px;
	font-weight: 700;
	color: var(--c-ink-900);
}

.supervisor__title,
.supervisor__role {
	margin: 0 0 6px;
	font-size: 12.5px;
	color: var(--c-ink-500);
}

.supervisor__text,
.supervisor__body p:not(.supervisor__name):not(.supervisor__title):not(.supervisor__role) { margin: 4px 0 0; }

.supervisor__link {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	font-size: 13px;
	font-weight: 700;
	color: var(--c-brand-600);
}

.supervisor__link::after {
	content: "›";
	font-size: 1.2em;
}

.supervisor__link:hover { text-decoration: underline; }

/* 監修者セクション（記事下）の見出しは小さめ */
.supervisor-box .section__title,
.related-columns .section__title {
	font-size: clamp(19px, 3.5vw, 24px);
	margin-bottom: 28px;
	padding-bottom: 14px;
}

.supervisor-box,
.related-columns {
	padding-top: clamp(36px, 6vw, 64px);
	padding-bottom: clamp(36px, 6vw, 64px);
}

/* =========================================================
   13. 目次（toc）
   ========================================================= */
.toc {
	margin: 28px 0 36px;
	padding: 18px 20px;
	background: var(--c-bg-soft);
	border: 1px solid var(--c-line);
	border-radius: var(--radius);
	font-size: 14.5px;
	line-height: 1.6;
}

/* JSが未生成（見出し無し）のときは非表示 */
.toc:empty { display: none; }

.toc__title,
.toc > strong,
.toc > p:first-child,
.toc > summary {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 0 0 10px;
	font-size: 15px;
	font-weight: 700;
	color: var(--c-ink-900);
}

.toc__title::before,
.toc > strong::before {
	content: "";
	width: 4px;
	height: 1em;
	border-radius: 2px;
	background: var(--g-bar);
}

.toc ol,
.toc ul {
	list-style: none;
	margin: 0;
	padding: 0;
	counter-reset: toc-h2;
}

.toc li {
	position: relative;
	margin: 0;
	padding: 5px 0 5px 2em;
	counter-increment: toc-h2;
}

.toc li::before {
	content: counter(toc-h2) ".";
	position: absolute;
	left: 0;
	top: 5px;
	min-width: 1.6em;
	color: var(--c-brand-600);
	font-weight: 700;
	font-variant-numeric: tabular-nums;
}

/* h3: 入れ子リストの場合 */
.toc li ol,
.toc li ul {
	counter-reset: toc-h3;
	margin-top: 2px;
}

.toc li li {
	counter-increment: toc-h3;
	padding: 3px 0 3px 2.4em;
	font-size: 0.94em;
}

.toc li li::before {
	content: counter(toc-h2) "-" counter(toc-h3);
	top: 3px;
	font-weight: 500;
}

/* h3: フラットなリストでクラス／data属性で階層を示す場合 */
.toc li.toc__item--h2,
.toc li[data-level="2"] { counter-reset: toc-h3; }

.toc li.toc__item--h3,
.toc li[data-level="3"] {
	counter-increment: toc-h3;
	margin-left: 1.4em;
	padding: 3px 0 3px 2.4em;
	font-size: 0.94em;
}

.toc li.toc__item--h3::before,
.toc li[data-level="3"]::before {
	content: counter(toc-h2) "-" counter(toc-h3);
	top: 3px;
	font-weight: 500;
}

.toc a {
	color: var(--c-ink-700);
	text-decoration: none;
}

.toc a:hover {
	color: var(--c-brand-600);
	text-decoration: underline;
	text-underline-offset: 0.2em;
}

/* =========================================================
   14. 記事本文（prose）
   ========================================================= */
.prose {
	font-size: var(--fs-base);
	line-height: var(--lh-body);
	color: var(--c-ink-700);
}

.prose > :first-child { margin-top: 0; }

.prose > :last-child { margin-bottom: 0; }

.prose p,
.prose ul,
.prose ol,
.prose blockquote,
.prose table,
.prose figure,
.prose pre,
.prose .wp-block-table,
.prose .wp-block-image,
.prose .wp-block-embed {
	margin-top: 0;
	margin-bottom: 1.6em;
}

/* h2: 左に緑バー */
.prose h2 {
	position: relative;
	margin: 2.6em 0 1em;
	padding: 0.25em 0 0.25em 18px;
	font-size: clamp(20px, 4.2vw, 26px);
	line-height: 1.45;
}

.prose h2::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.2em;
	bottom: 0.2em;
	width: 5px;
	border-radius: 3px;
	background: var(--g-bar);
}

/* h3: 下線＋短い緑アンダーライン */
.prose h3 {
	margin: 2.2em 0 0.9em;
	padding-bottom: 0.4em;
	font-size: clamp(17.5px, 3.4vw, 21px);
	background:
		linear-gradient(var(--c-brand-600), var(--c-brand-600)) left bottom / 48px 2px no-repeat,
		linear-gradient(var(--c-line), var(--c-line)) left bottom / 100% 2px no-repeat;
}

.prose h4 {
	margin: 1.8em 0 0.7em;
	font-size: 17px;
}

.prose h5,
.prose h6 {
	margin: 1.6em 0 0.6em;
	font-size: 16px;
}

.prose a {
	color: var(--c-brand-600);
	text-decoration: underline;
	text-underline-offset: 0.2em;
	text-decoration-thickness: 1px;
}

.prose a:hover {
	color: var(--c-brand-700);
	text-decoration-thickness: 2px;
}

/* ボタンは下線なし */
.prose a.btn,
.prose .wp-block-button__link { text-decoration: none; }

.prose strong { color: var(--c-ink-900); }

/* マーカー風ハイライト */
.prose mark,
.prose .marker {
	background: linear-gradient(transparent 58%, rgba(185, 232, 107, 0.6) 58%);
	color: inherit;
	padding: 0 0.1em;
}

.prose ul,
.prose ol { padding-left: 1.6em; }

.prose ul { list-style: disc; }

.prose ol { list-style: decimal; }

.prose li { margin: 0.4em 0; }

.prose li::marker {
	color: var(--c-brand-600);
	font-weight: 700;
}

.prose li > ul,
.prose li > ol { margin: 0.3em 0 0.3em; }

.prose blockquote,
.prose .wp-block-quote {
	margin: 1.6em 0;
	padding: 16px 20px;
	border-left: 4px solid var(--c-brand-400);
	border-radius: 0 var(--radius) var(--radius) 0;
	background: var(--c-bg-soft);
	color: var(--c-ink-700);
	font-style: normal;
}

.prose blockquote p:last-child,
.prose .wp-block-quote p:last-child { margin-bottom: 0; }

.prose blockquote cite,
.prose .wp-block-quote cite {
	display: block;
	margin-top: 8px;
	font-size: 13px;
	font-style: normal;
	color: var(--c-ink-500);
}

/* 表: ラッパがあれば横スクロール、素の table も崩れないよう display:block でスクロール */
.prose .wp-block-table,
.prose .table-scroll {
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	border-radius: var(--radius-sm);
}

.prose .wp-block-table table,
.prose .table-scroll table {
	width: 100%;
	min-width: 480px;
}

.prose > table {
	display: block;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	max-width: 100%;
}

.prose table {
	border-collapse: collapse;
	font-size: 0.94em;
	line-height: 1.6;
}

.prose th,
.prose td {
	padding: 10px 12px;
	border: 1px solid var(--c-line);
	text-align: left;
	vertical-align: top;
}

.prose th {
	background: var(--c-bg-soft);
	font-weight: 700;
	color: var(--c-ink-900);
	white-space: nowrap;
}

.prose thead th { background: var(--c-brand-100); }

.prose .wp-block-table.is-style-stripes tbody tr:nth-child(odd) { background: var(--c-bg-soft); }

.prose img {
	max-width: 100%;
	height: auto;
	border-radius: var(--radius);
}

.prose figure {
	margin-left: 0;
	margin-right: 0;
}

.prose figcaption,
.prose .wp-element-caption {
	margin-top: 8px;
	font-size: 13px;
	line-height: 1.6;
	text-align: center;
	color: var(--c-ink-500);
}

.prose code {
	font-family: var(--font-mono);
	font-size: 0.88em;
	padding: 0.15em 0.45em;
	border-radius: 4px;
	background: #eef2f4;
	color: var(--c-ink-900);
}

.prose pre {
	padding: 16px 20px;
	border-radius: var(--radius);
	background: var(--c-ink-900);
	color: #e6edf0;
	font-family: var(--font-mono);
	font-size: 0.88em;
	line-height: 1.7;
	overflow-x: auto;
}

.prose pre code {
	padding: 0;
	background: none;
	color: inherit;
	font-size: inherit;
}

.prose hr { margin: 2.6em 0; }

/* YouTube等の埋め込み */
.prose .wp-block-embed__wrapper { position: relative; }

.prose .wp-embed-aspect-16-9 .wp-block-embed__wrapper::before {
	content: "";
	display: block;
	padding-top: 56.25%;
}

.prose .wp-embed-aspect-16-9 iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border-radius: var(--radius);
}

/* 本文内の補足ボックス（パイプライン出力が使う想定のシンプルな枠） */
.prose .box,
.prose .wp-block-group.has-background {
	padding: 18px 20px;
	border-radius: var(--radius);
	margin: 1.6em 0;
}

.prose .box {
	background: var(--c-brand-100);
	border: 1px solid rgba(29, 154, 108, 0.25);
}

.prose .box > :last-child { margin-bottom: 0; }

/* 記事本文内の section__title は通常見出し扱い（左バーを出さない） */
.prose .section__title { padding-left: 0; }

.prose .section__title::before { content: none; }

/* =========================================================
   15. 収益注記・バッジ・ラベル
   ========================================================= */
.notice-income {
	margin: 28px 0;
	padding: 12px 16px;
	border: 1px solid var(--c-warn-line);
	border-left: 4px solid #e3b53a;
	border-radius: var(--radius-sm);
	background: var(--c-warn-bg);
	color: var(--c-warn-ink);
	font-size: 13.5px;
	line-height: 1.75;
}

.notice-income p { margin: 0; }

.notice-income a {
	color: inherit;
	text-decoration: underline;
}

.badge,
.label-cat {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	padding: 2px 10px;
	border-radius: var(--radius-pill);
	font-size: 12px;
	font-weight: 700;
	line-height: 1.7;
	letter-spacing: 0.02em;
	white-space: nowrap;
	text-decoration: none;
	transition: background-color var(--dur) var(--ease), color var(--dur) var(--ease);
}

.badge {
	background: var(--c-brand-100);
	color: var(--c-brand-700);
}

.badge--solid {
	background: var(--c-brand-600);
	color: #fff;
}

.badge--outline {
	background: #fff;
	color: var(--c-brand-600);
	border: 1px solid var(--c-brand-600);
}

.badge--muted {
	background: #eef2f4;
	color: var(--c-ink-500);
}

.label-cat {
	background: var(--c-brand-600);
	color: #fff;
}

a.label-cat:hover {
	background: var(--c-brand-700);
	color: #fff;
}

/* カテゴリ別の色味（term スラッグ: start / marketing / choose） */
.label-cat--start { background: #1d9a6c; }

.label-cat--marketing { background: #0f7a55; }

.label-cat--choose { background: #5a8f2b; }

/* =========================================================
   16. パンくず・ページネーション・記事ヘッダー
   ========================================================= */
.breadcrumb {
	margin: 14px 0 22px;
	font-size: 12.5px;
	line-height: 1.7;
	color: var(--c-ink-500);
}

.breadcrumb__inner,
.breadcrumb p { margin: 0; }

.breadcrumb ol,
.breadcrumb ul {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0 4px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.breadcrumb li { display: inline; }

.breadcrumb li + li::before {
	content: "›";
	margin: 0 6px 0 2px;
	color: var(--c-ink-300);
}

.breadcrumb__sep {
	margin: 0 2px;
	color: var(--c-ink-300);
}

.breadcrumb a,
.breadcrumb__link {
	color: var(--c-ink-500);
	text-decoration: none;
}

.breadcrumb a:hover,
.breadcrumb__link:hover {
	color: var(--c-brand-600);
	text-decoration: underline;
	text-underline-offset: 0.2em;
}

.breadcrumb__current,
.breadcrumb .breadcrumb_last { color: var(--c-ink-700); }

/* ページネーション */
.pagination {
	display: flex;
	justify-content: center;
	margin: 44px 0 0;
}

.pagination__list,
.pagination .nav-links {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 8px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.pagination__item { margin: 0; }

.pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	height: 44px;
	padding: 0 12px;
	border: 1px solid var(--c-line);
	border-radius: var(--radius-pill);
	background: #fff;
	color: var(--c-ink-700);
	font-size: 14px;
	font-weight: 500;
	font-variant-numeric: tabular-nums;
	text-decoration: none;
	transition: border-color var(--dur) var(--ease), color var(--dur) var(--ease), background-color var(--dur) var(--ease);
}

.pagination a.page-numbers:hover {
	border-color: var(--c-brand-600);
	color: var(--c-brand-600);
	background: var(--c-brand-100);
}

.pagination .page-numbers.current {
	background: var(--g-btn);
	color: #fff;
	border-color: transparent;
	box-shadow: var(--shadow-btn);
}

.pagination .page-numbers.dots {
	min-width: 24px;
	padding: 0;
	border: 0;
	background: transparent;
	color: var(--c-ink-300);
}

.pagination .page-numbers.prev,
.pagination .page-numbers.next { padding: 0 16px; }

/* 前後記事ナビ（the_post_navigation） */
.post-navigation .nav-links {
	display: flex;
	justify-content: space-between;
	gap: 12px;
	margin: 40px 0;
}

.post-navigation a {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	padding: 8px 14px;
	border: 1px solid var(--c-line);
	border-radius: var(--radius-sm);
	color: var(--c-ink-700);
	font-size: 14px;
}

.post-navigation a:hover {
	border-color: var(--c-brand-600);
	color: var(--c-brand-600);
}

/* 記事ヘッダー */
.entry-header { margin: 0 0 28px; }

.entry-header .label-cat { margin-bottom: 12px; }

.entry-title {
	margin: 0 0 14px;
	font-size: clamp(23px, 5vw, 36px);
	line-height: 1.45;
}

.entry-meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 2px 6px;
	margin: 0;
	font-size: 13px;
	line-height: 1.7;
	color: var(--c-ink-500);
	font-variant-numeric: tabular-nums;
}

.entry-meta a {
	color: inherit;
	text-decoration: underline;
	text-underline-offset: 0.2em;
}

.entry-thumbnail,
.post-thumbnail { margin: 0 0 28px; }

.entry-thumbnail img,
.post-thumbnail img {
	width: 100%;
	aspect-ratio: 16 / 9;
	object-fit: cover;
	border-radius: var(--radius);
	box-shadow: var(--shadow-card);
}

/* コラム一覧のカテゴリタブ */
.column-cat-tabs {
	margin: 0 0 28px;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
}

.column-cat-tabs::-webkit-scrollbar { display: none; }

.column-cat-tabs__list {
	display: flex;
	gap: 8px;
	list-style: none;
	margin: 0;
	padding: 2px;
	width: max-content;
	min-width: 100%;
	justify-content: flex-start;
}

@media (min-width: 768px) {
	.column-cat-tabs__list {
		justify-content: center;
		flex-wrap: wrap;
		width: auto;
	}
}

.column-cat-tabs__item {
	margin: 0;
	flex: none;
}

.column-cat-tabs__link {
	display: inline-flex;
	align-items: center;
	min-height: 40px;
	padding: 6px 16px;
	border: 1px solid var(--c-line);
	border-radius: var(--radius-pill);
	background: #fff;
	color: var(--c-ink-700);
	font-size: 14px;
	font-weight: 500;
	white-space: nowrap;
	text-decoration: none;
	transition: border-color var(--dur) var(--ease), color var(--dur) var(--ease), background-color var(--dur) var(--ease);
}

.column-cat-tabs__link:hover {
	border-color: var(--c-brand-600);
	color: var(--c-brand-600);
}

.column-cat-tabs__link.is-active {
	background: var(--g-btn);
	color: #fff;
	border-color: transparent;
	font-weight: 700;
	box-shadow: var(--shadow-btn);
}

/* =========================================================
   17. モバイル固定CTA（スマホのみ）
   ========================================================= */
.mobile-cta {
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: var(--z-mobile-cta);
	display: flex;
	gap: 8px;
	padding: 10px 12px calc(10px + env(safe-area-inset-bottom));
	background: rgba(255, 255, 255, 0.96);
	-webkit-backdrop-filter: blur(8px);
	backdrop-filter: blur(8px);
	border-top: 1px solid var(--c-line);
	box-shadow: 0 -6px 20px rgba(15, 26, 31, 0.08);
}

.mobile-cta .btn {
	flex: 1;
	min-height: 48px;
	padding-left: 8px;
	padding-right: 8px;
	font-size: 15px;
}

.mobile-cta .btn--ghost { flex: 0 1 40%; }

/* 固定バーの高さ分、本文下に余白（:has 非対応ブラウザ向けに body.has-mobile-cta も用意） */
body:has(.mobile-cta),
body.has-mobile-cta { padding-bottom: calc(var(--mobile-cta-h) + env(safe-area-inset-bottom)); }

@media (min-width: 768px) {
	.mobile-cta { display: none; }

	body:has(.mobile-cta),
	body.has-mobile-cta { padding-bottom: 0; }
}

/* =========================================================
   18. フッター
   ========================================================= */
.site-footer {
	margin-top: auto;
	padding: 52px 0 0;
	background: var(--c-ink-900);
	color: #d7e0e4;
	font-size: 14px;
	line-height: 1.8;
}

.site-footer a {
	color: #fff;
	text-decoration: none;
}

.site-footer a:hover {
	color: var(--c-accent);
	text-decoration: underline;
	text-underline-offset: 0.2em;
}

.site-footer h2,
.site-footer h3,
.site-footer h4,
.site-footer__heading {
	margin: 0 0 12px;
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 0.08em;
	color: #fff;
}

.site-footer ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.site-footer li { margin: 0 0 8px; }

/* ロゴは白パネルに載せて色を問わず見えるように */
.site-footer .site-logo {
	display: inline-flex;
	padding: 8px 14px;
	border-radius: 10px;
	background: #fff;
	margin-bottom: 16px;
}

.site-footer .site-logo img { height: 32px; }

.site-footer__brand p,
.site-footer__operator {
	margin: 0 0 10px;
	font-size: 13px;
	color: #b7c4ca;
}

.site-footer__nav {
	display: grid;
	grid-template-columns: 1fr;
	gap: 32px;
	padding-bottom: 44px;
}

@media (min-width: 768px) {
	.site-footer__nav {
		grid-template-columns: repeat(3, 1fr);
		gap: 32px;
	}
}

@media (min-width: 1024px) {
	.site-footer__nav {
		grid-template-columns: 1.4fr 1fr 1fr;
		gap: 48px;
	}
}

/* フッターナビ（wp_nav_menu 出力） */
.site-footer__nav .menu,
.site-footer__nav .sub-menu {
	list-style: none;
	margin: 0;
	padding: 0;
}

.site-footer__nav .sub-menu {
	padding-left: 12px;
	margin-top: 6px;
}

.site-footer__legal {
	display: flex;
	flex-direction: column;
	gap: 10px;
	padding: 18px 0 calc(20px + env(safe-area-inset-bottom));
	border-top: 1px solid rgba(255, 255, 255, 0.12);
	font-size: 12.5px;
	color: #9fb0b7;
}

@media (min-width: 768px) {
	.site-footer__legal {
		flex-direction: row;
		flex-wrap: wrap;
		align-items: center;
		justify-content: space-between;
	}
}

.site-footer__legal ul {
	display: flex;
	flex-wrap: wrap;
	gap: 6px 18px;
}

.site-footer__legal li { margin: 0; }

.site-footer__legal a { color: #9fb0b7; }

.site-footer__legal a:hover { color: #fff; }

.site-footer__copyright,
.site-footer__legal p { margin: 0; }

/* =========================================================
   19. フォーム（CF7 / 検索 / パスワード保護）
   ========================================================= */
input[type="text"],
input[type="email"],
input[type="tel"],
input[type="url"],
input[type="password"],
input[type="number"],
input[type="search"],
input[type="date"],
textarea,
select {
	width: 100%;
	min-height: 46px;
	padding: 10px 14px;
	font: inherit;
	font-size: 16px; /* iOS でのフォーカス時ズーム防止 */
	line-height: 1.5;
	color: var(--c-ink-900);
	background: #fff;
	border: 1px solid #cfd8dc;
	border-radius: var(--radius-sm);
	-webkit-appearance: none;
	appearance: none;
	transition: border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
}

textarea {
	min-height: 150px;
	resize: vertical;
}

select {
	padding-right: 40px;
	background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%235b6b72' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' d='M4 6l4 4 4-4'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 14px center;
	background-size: 16px;
}

input:focus,
textarea:focus,
select:focus {
	outline: none;
	border-color: var(--c-brand-500);
	box-shadow: 0 0 0 3px rgba(41, 180, 127, 0.22);
}

input::placeholder,
textarea::placeholder { color: var(--c-ink-300); }

input[type="checkbox"],
input[type="radio"] {
	width: 18px;
	height: 18px;
	margin: 0 8px 0 0;
	accent-color: var(--c-brand-600);
	vertical-align: -3px;
	flex: none;
}

label {
	font-weight: 700;
	color: var(--c-ink-900);
}

.form-note,
.form-required {
	font-size: 12px;
	color: var(--c-ink-500);
	font-weight: 400;
}

.form-required,
.required {
	display: inline-block;
	margin-left: 6px;
	padding: 0 6px;
	border-radius: 4px;
	background: var(--c-danger);
	color: #fff;
	font-size: 11px;
	font-weight: 700;
	line-height: 1.7;
	vertical-align: middle;
}

/* Contact Form 7 */
.wpcf7 form p,
.wpcf7 .form-row { margin: 0 0 20px; }

.wpcf7 label {
	display: block;
	margin-bottom: 6px;
	font-size: 14.5px;
}

.wpcf7-form-control-wrap { display: block; }

.wpcf7-list-item {
	display: inline-flex;
	align-items: center;
	margin: 4px 16px 4px 0;
}

.wpcf7-list-item label {
	display: inline-flex;
	align-items: center;
	margin: 0;
	font-weight: 400;
}

.wpcf7-acceptance label,
.wpcf7-acceptance .wpcf7-list-item label {
	display: flex;
	align-items: flex-start;
	gap: 8px;
	font-weight: 400;
	line-height: 1.6;
}

.wpcf7-acceptance input[type="checkbox"] { margin-top: 3px; }

.wpcf7-submit {
	width: 100%;
	min-height: 52px;
	font-size: 16px;
}

@media (min-width: 768px) {
	.wpcf7-submit {
		width: auto;
		min-width: 280px;
	}
}

.wpcf7 form .wpcf7-submit:disabled {
	opacity: 0.6;
	cursor: not-allowed;
	transform: none;
}

.wpcf7-spinner { margin: 0 0 0 12px; }

.wpcf7-not-valid { border-color: var(--c-danger); }

.wpcf7-not-valid-tip {
	display: block;
	margin-top: 4px;
	font-size: 13px;
	color: var(--c-danger);
}

.wpcf7 form .wpcf7-response-output {
	margin: 20px 0 0;
	padding: 12px 16px;
	border: 1px solid var(--c-line);
	border-radius: var(--radius-sm);
	font-size: 14.5px;
}

.wpcf7 form.sent .wpcf7-response-output {
	border-color: var(--c-brand-500);
	background: var(--c-brand-100);
	color: var(--c-brand-700);
}

.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output,
.wpcf7 form.payment-required .wpcf7-response-output {
	border-color: #e3b53a;
	background: var(--c-warn-bg);
	color: var(--c-warn-ink);
}

.wpcf7 form.failed .wpcf7-response-output,
.wpcf7 form.aborted .wpcf7-response-output,
.wpcf7 form.spam .wpcf7-response-output {
	border-color: var(--c-danger);
	background: #fdf0ee;
	color: var(--c-danger);
}

/* フォームを枠で囲む場合 */
.form-card {
	padding: 24px 20px;
	background: #fff;
	border: 1px solid var(--c-line);
	border-radius: var(--radius);
	box-shadow: var(--shadow-card);
}

@media (min-width: 768px) {
	.form-card { padding: 36px 40px; }
}

/* 検索フォーム */
.search-form {
	display: flex;
	gap: 8px;
	align-items: stretch;
}

.search-form label {
	flex: 1;
	margin: 0;
}

.search-form .search-field { width: 100%; }

.search-submit {
	flex: none;
	padding-left: 1.2em;
	padding-right: 1.2em;
}

/* パスワード保護投稿（会員・紹介者向け） */
.post-password-form {
	max-width: 480px;
	margin: 32px auto;
	padding: 24px 20px;
	background: var(--c-bg-soft);
	border: 1px solid var(--c-line);
	border-radius: var(--radius);
}

.post-password-form p {
	margin: 0 0 14px;
	font-size: 14.5px;
}

.post-password-form p:last-child { margin-bottom: 0; }

.post-password-form label {
	display: flex;
	flex-direction: column;
	gap: 6px;
	font-size: 14px;
}

.post-password-form input[type="password"] { width: 100%; }

.post-password-form input[type="submit"] {
	width: 100%;
	margin-top: 12px;
}

/* =========================================================
   20. Gutenbergコアブロック調整
   ========================================================= */
/* レイアウト系ユーティリティ（コアCSSを読まない場合のフォールバック） */
.is-layout-flex {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5em;
}

.is-layout-flex.is-vertical {
	flex-direction: column;
	align-items: flex-start;
}

.is-layout-flex.is-nowrap { flex-wrap: nowrap; }

.is-content-justification-center { justify-content: center; }

.is-content-justification-right { justify-content: flex-end; }

.is-content-justification-space-between { justify-content: space-between; }

.is-layout-grid { display: grid; }

.has-text-align-center { text-align: center; }
.has-text-align-left { text-align: left; }
.has-text-align-right { text-align: right; }

/* グループ */
.wp-block-group.has-background { padding: 24px var(--gutter); }

.wp-block-group.is-style-card {
	background: #fff;
	border-radius: var(--radius);
	box-shadow: var(--shadow-card);
	padding: 24px;
}

/* カラム */
.wp-block-columns {
	gap: 20px;
	margin-bottom: 1.6em;
}

@media (min-width: 782px) {
	.wp-block-columns { gap: 32px; }
}

.wp-block-column { min-width: 0; }

/* カバー */
.wp-block-cover {
	border-radius: var(--radius);
	overflow: hidden;
}

.wp-block-cover.alignfull { border-radius: 0; }

.wp-block-cover .wp-block-cover__inner-container { width: 100%; }

/* ボタン */
.wp-block-buttons {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
}

.wp-block-buttons.is-content-justification-center { justify-content: center; }

.wp-block-button { margin: 0; }

.wp-block-button__link { width: auto; }

.wp-block-buttons.is-vertical .wp-block-button,
.wp-block-buttons.is-vertical .wp-block-button__link { width: 100%; }

/* クエリループ／投稿テンプレート */
.wp-block-query { margin-bottom: 1.6em; }

.wp-block-post-template {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: 1fr;
	gap: 20px;
}

.wp-block-post-template > li {
	margin: 0;
	min-width: 0;
}

@media (min-width: 768px) {
	.wp-block-post-template { gap: 24px; }

	.wp-block-post-template.columns-2,
	.wp-block-post-template.columns-3,
	.wp-block-post-template.columns-4 { grid-template-columns: repeat(2, 1fr); }
}

@media (min-width: 1024px) {
	.wp-block-post-template { gap: 32px; }

	.wp-block-post-template.columns-3 { grid-template-columns: repeat(3, 1fr); }

	.wp-block-post-template.columns-4 { grid-template-columns: repeat(4, 1fr); }
}

/* コアの flex レイアウト指定（is-flex-container）が付く場合は幅指定を無効化してグリッドに統一 */
.wp-block-post-template.is-flex-container { display: grid; }

.wp-block-post-template.is-flex-container > li { width: auto; }

.wp-block-post-template .card { height: 100%; }

.wp-block-post-title {
	margin: 0 0 6px;
	font-size: 17px;
	line-height: 1.55;
}

.wp-block-post-title a {
	color: var(--c-ink-900);
	text-decoration: none;
}

.wp-block-post-title a:hover { color: var(--c-brand-600); }

.wp-block-post-date,
.wp-block-post-terms {
	font-size: 12.5px;
	color: var(--c-ink-500);
}

.wp-block-post-featured-image img {
	width: 100%;
	aspect-ratio: 16 / 9;
	object-fit: cover;
	border-radius: var(--radius);
}

.wp-block-post-excerpt__excerpt {
	font-size: 14px;
	line-height: 1.75;
	color: var(--c-ink-700);
}

.wp-block-post-excerpt__more-link {
	font-size: 13px;
	font-weight: 700;
}

.wp-block-query-pagination {
	display: flex;
	justify-content: center;
	gap: 8px;
	margin: 40px 0 0;
}

.wp-block-query-pagination .page-numbers,
.wp-block-query-pagination-previous,
.wp-block-query-pagination-next {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	height: 44px;
	padding: 0 12px;
	border: 1px solid var(--c-line);
	border-radius: var(--radius-pill);
	color: var(--c-ink-700);
	font-size: 14px;
	text-decoration: none;
}

.wp-block-query-pagination .page-numbers.current {
	background: var(--g-btn);
	color: #fff;
	border-color: transparent;
}

/* 区切り線・スペーサー */
.wp-block-separator {
	border: 0;
	height: 1px;
	background: var(--c-line);
	margin: 2.5em auto;
	max-width: 100px;
}

.wp-block-separator.is-style-wide,
.wp-block-separator.alignwide,
.wp-block-separator.alignfull { max-width: none; }

/* 画像・ギャラリー */
.wp-block-image img { border-radius: var(--radius); }

.wp-block-image.is-style-rounded img { border-radius: 50%; }

/* リスト（アイコン付きスタイル） */
.wp-block-list.is-style-check {
	list-style: none;
	padding-left: 0;
}

.wp-block-list.is-style-check li {
	position: relative;
	padding-left: 1.8em;
}

.wp-block-list.is-style-check li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.45em;
	width: 1.1em;
	height: 1.1em;
	border-radius: 50%;
	background:
		url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23fff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round' d='M4 8.5l2.5 2.5L12 5.5'/%3E%3C/svg%3E") center / 70% no-repeat,
		var(--c-brand-600);
}

/* 見出しブロックのスタイル（パターンで使う想定） */
.wp-block-heading.is-style-bar {
	position: relative;
	padding-left: 18px;
}

.wp-block-heading.is-style-bar::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.2em;
	bottom: 0.2em;
	width: 5px;
	border-radius: 3px;
	background: var(--g-bar);
}

/* テーブルブロック */
.wp-block-table { overflow-x: auto; }

.wp-block-table table {
	border-collapse: collapse;
	width: 100%;
}

.wp-block-table th,
.wp-block-table td {
	padding: 10px 12px;
	border: 1px solid var(--c-line);
}

.wp-block-table th {
	background: var(--c-bg-soft);
	font-weight: 700;
}

/* 見出しの余白（ブロック本文で連続する場合の既定） */
.wp-block-heading { margin-top: 1.6em; }

.wp-block-heading:first-child { margin-top: 0; }

/* =========================================================
   21. ユーティリティ・アクセシビリティ
   ========================================================= */
.screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	border: 0;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	white-space: nowrap;
}

.skip-link,
.screen-reader-text:focus {
	position: fixed;
	top: 8px;
	left: 8px;
	z-index: var(--z-skip);
	width: auto;
	height: auto;
	margin: 0;
	padding: 10px 16px;
	clip: auto;
	clip-path: none;
	background: #fff;
	color: var(--c-brand-700);
	border-radius: var(--radius-sm);
	box-shadow: var(--shadow-card);
	font-size: 14px;
	font-weight: 700;
	text-decoration: none;
	white-space: normal;
}

/* スキップリンクはフォーカス時のみ表示 */
.skip-link:not(:focus) {
	position: absolute !important;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
}

.text-center { text-align: center; }
.text-left { text-align: left; }
.text-small { font-size: 0.875em; }
.text-muted { color: var(--c-ink-500); }
.mt-0 { margin-top: 0 !important; }
.mb-0 { margin-bottom: 0 !important; }

.sp-only { display: revert; }
.pc-only { display: none !important; }

@media (min-width: 768px) {
	.sp-only { display: none !important; }
	.pc-only { display: revert !important; }
}

/* 404・検索結果など簡易ページ */
.page-simple {
	text-align: center;
	padding: clamp(48px, 10vw, 96px) 0;
}

.page-simple .entry-title { font-size: clamp(24px, 5vw, 34px); }

.page-simple .hero__actions { margin-top: 24px; }

/* =========================================================
   22. reduced-motion・印刷
   ========================================================= */
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }

	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}

	.card:hover,
	.btn--primary:hover,
	.btn--ghost:hover { transform: none; }

	.card:hover .card__media img { transform: none; }
}

@media print {
	:root { --fs-base: 12pt; }

	body {
		display: block;
		color: #000;
		background: #fff;
		padding-bottom: 0 !important;
	}

	.site-header,
	.nav-toggle,
	.nav-primary,
	.mobile-cta,
	.cta-band,
	.site-footer__nav,
	.breadcrumb,
	.pagination,
	.related-columns,
	.skip-link,
	.wave,
	#wpadminbar { display: none !important; }

	.hero {
		background: none;
		color: #000;
		padding: 0 0 24pt;
	}

	.hero::before { content: none; }

	.hero__title,
	.hero__lead {
		color: #000;
		text-shadow: none;
	}

	.stats__num {
		background: none;
		-webkit-text-fill-color: #000;
		color: #000;
	}

	.card,
	.faq__item,
	.supervisor,
	.toc {
		box-shadow: none;
		border: 1px solid #ccc;
		break-inside: avoid;
	}

	.prose a { color: #000; }

	.prose a[href^="http"]::after {
		content: " (" attr(href) ")";
		font-size: 0.85em;
		color: #555;
	}

	.site-footer {
		background: none;
		color: #000;
		padding: 12pt 0 0;
	}

	.site-footer a,
	.site-footer__legal,
	.site-footer__legal a { color: #000; }
}

/* =========================================================
   Z. 結合時の追補（integration）
   - ブロックボタンの「ゴースト」スタイル（.is-style-ghost ＝ inc/blocks.php 登録）を .is-style-outline と同じ見た目に
   - ヒーロー上のブロックボタン（主=白ベース／ゴースト=透明＋白枠）
   - ヘッダーロゴ（正方形ロゴのため高さを確保）
   - 任意クラス: .hero__text / .section__actions / .site-footer__brand・__menu・__contact
   ========================================================= */
.is-style-ghost .wp-block-button__link,
.wp-block-button.is-style-ghost > .wp-block-button__link {
	background: #fff;
	color: var(--c-brand-600);
	border-color: var(--c-brand-600);
	box-shadow: none;
}

.is-style-ghost .wp-block-button__link:hover {
	background: var(--c-brand-100);
	color: var(--c-brand-700);
	border-color: var(--c-brand-700);
	filter: none;
	transform: translateY(-1px);
	box-shadow: 0 4px 12px rgba(15, 26, 31, 0.08);
}

/* ヒーロー上のブロックボタン（.btn--primary / .btn--ghost 相当） */
.hero .wp-block-button__link {
	background: #fff;
	color: var(--c-brand-700);
	box-shadow: 0 8px 24px rgba(15, 26, 31, 0.18);
	min-height: 50px;
	font-size: 16px;
}

.hero .wp-block-button__link:hover {
	color: var(--c-brand-700);
	filter: none;
	background: #f4fbf7;
}

.hero .is-style-ghost .wp-block-button__link,
.hero .is-style-outline .wp-block-button__link {
	background: transparent;
	color: #fff;
	border-color: rgba(255, 255, 255, 0.85);
	box-shadow: none;
}

.hero .is-style-ghost .wp-block-button__link:hover,
.hero .is-style-outline .wp-block-button__link:hover {
	background: rgba(255, 255, 255, 0.14);
	color: #fff;
	border-color: #fff;
}

@media (min-width: 480px) {
	.hero .wp-block-button__link { min-width: 200px; }
}

.hero__text {
	max-width: 40em;
	margin: 0 auto 1.8em;
	font-size: clamp(14px, 2vw, 16px);
	line-height: 1.9;
	opacity: 0.94;
}

.section__actions { margin-top: 32px; }

/* ヘッダーロゴ: 正方形（アイコン＋cloud文字）のため 36px では小さすぎる */
.site-header .site-logo img { height: 44px; }

/* フッター: ブランド列・サイトマップ列・お問い合わせ列 */
.site-footer__brand .site-logo { margin-bottom: 12px; }
.site-footer__brand .site-logo img { height: 40px; }
.site-footer__menu .menu,
.site-footer__contact ul { margin: 0; }

/* =========================================================
   99. 表示レビュー指摘の修正（2026-08-23）
   ========================================================= */
/* トップ「コラム」カード: core/post-terms は <div class="label-cat"><a>…</a></div> を出力するため、
   中の a がリンク色（緑）を継承して緑地に緑文字で見えなくなる → ラベル色（白）を継承させる */
.wp-block-post-terms.label-cat { color: #fff; } /* .wp-block-post-terms の灰色指定（後勝ち）を上書き */

.label-cat a,
.label-cat a:hover {
	color: inherit;
	text-decoration: none;
}

/* FAQ: .faq は flex 縦並びだが、WPの .is-layout-constrained > * { margin-left/right:auto !important } で
   短い質問の項目だけ幅が縮んで中央寄せになる → 項目は常に全幅 */
.faq > .faq__item,
.faq > .wp-block-details {
	width: 100%;
	max-width: none;
}

/* Contact Form 7: autop が </label> 直後の改行を <br> に変換し、label が block のため
   ラベルと入力欄の間に空行ができる → その <br> を非表示にする */
.wpcf7 form label + br,
.wpcf7 form .form-group > br {
	display: none;
}

/* ヒーロー／CTA帯のグラデ終端（ライム）付近に白文字の小さな注記が乗ると読みにくい → 薄い影で可読性を補う */
.hero__note,
.hero__text,
.cta-band__note,
.cta-band small {
	text-shadow: 0 1px 2px rgba(15, 26, 31, 0.35);
}

/* ============================================================
   100. トップページ改修（2026-08-24 ユーザー指示）
   - ヒーロー: 流れる波リボン（既存の波打つデザインの継承）＋光のグロー
   - 創業6周年バッジ／実績4項目の刷新／代表紹介「もっと見る」
   ============================================================ */

/* --- ヒーロー装飾レイヤー --- */
.hero { overflow: hidden; }
.hero__art {
	position: absolute;
	inset: 0;
	pointer-events: none;
}
/* 既存の .hero > :not(.wave) （position:relative; z-index:1）より後勝ちで上書きする */
.hero > .hero__art {
	position: absolute;
	inset: 0;
	z-index: 0;
}

.hero__ribbon {
	position: absolute;
	left: -5%;
	right: -5%;
	background-repeat: repeat-x;
	will-change: background-position;
}
/* 白い大きな帯（ゆっくり左へ） */
.hero__ribbon--1 {
	bottom: -4%;
	height: 78%;
	opacity: 0.42;
	background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1600 900' preserveAspectRatio='none'%3E%3Cpath fill='%23ffffff' opacity='0.55' d='M0,600 C300,480 500,480 800,600 C1100,720 1300,720 1600,600 L1600,690 C1300,810 1100,810 800,690 C500,570 300,570 0,690 Z'/%3E%3Cpath fill='%23ffffff' opacity='0.28' d='M0,430 C300,330 500,330 800,430 C1100,530 1300,530 1600,430 L1600,485 C1300,585 1100,585 800,485 C500,385 300,385 0,485 Z'/%3E%3C/svg%3E");
	background-size: 1400px 100%;
	animation: cloud-ribbon-a 46s linear infinite;
}
/* ライムの帯（逆方向＋ゆったり上下） */
.hero__ribbon--2 {
	bottom: 10%;
	height: 66%;
	opacity: 0.6;
	background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1600 900' preserveAspectRatio='none'%3E%3Cpath fill='%23d9f99d' opacity='0.5' d='M0,600 C300,480 500,480 800,600 C1100,720 1300,720 1600,600 L1600,675 C1300,795 1100,795 800,675 C500,555 300,555 0,675 Z'/%3E%3Cpath fill='%23b9e86b' opacity='0.35' d='M0,430 C300,330 500,330 800,430 C1100,530 1300,530 1600,430 L1600,478 C1300,578 1100,578 800,478 C500,378 300,378 0,478 Z'/%3E%3C/svg%3E");
	background-size: 1050px 100%;
	animation: cloud-ribbon-b 30s linear infinite reverse, cloud-ribbon-bob 9s ease-in-out infinite alternate;
}
/* 奥の淡い帯（大きく・最もゆっくり） */
.hero__ribbon--3 {
	bottom: -10%;
	height: 94%;
	opacity: 0.2;
	background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1600 900' preserveAspectRatio='none'%3E%3Cpath fill='%23ffffff' opacity='0.55' d='M0,600 C300,480 500,480 800,600 C1100,720 1300,720 1600,600 L1600,690 C1300,810 1100,810 800,690 C500,570 300,570 0,690 Z'/%3E%3C/svg%3E");
	background-size: 2000px 100%;
	animation: cloud-ribbon-c 70s linear infinite;
}
.hero__glow {
	position: absolute;
	top: -22%;
	right: -12%;
	width: 62%;
	height: 82%;
	background: radial-gradient(closest-side, rgba(185, 232, 107, 0.5), transparent 70%);
	filter: blur(12px);
	animation: cloud-glow 12s ease-in-out infinite alternate;
}
@keyframes cloud-ribbon-a { from { background-position-x: 0; } to { background-position-x: -1400px; } }
@keyframes cloud-ribbon-b { from { background-position-x: 0; } to { background-position-x: -1050px; } }
@keyframes cloud-ribbon-c { from { background-position-x: 0; } to { background-position-x: -2000px; } }
@keyframes cloud-ribbon-bob { from { transform: translateY(0); } to { transform: translateY(-14px); } }
@keyframes cloud-glow { from { opacity: 0.45; transform: scale(1); } to { opacity: 0.9; transform: scale(1.1); } }

@media (prefers-reduced-motion: reduce) {
	.hero__ribbon, .hero__glow { animation: none; }
}

/* --- 創業6周年バッジ --- */
.hero__anniv {
	margin: 20px 0 4px;
	text-align: center;
	position: relative;
	z-index: 1;
}
.hero__anniv-badge {
	display: inline-flex;
	align-items: baseline;
	gap: 10px;
	padding: 10px 26px;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.14);
	border: 1px solid rgba(255, 255, 255, 0.5);
	-webkit-backdrop-filter: blur(4px);
	backdrop-filter: blur(4px);
	color: #fff;
	font-size: 15px;
	letter-spacing: 0.08em;
	box-shadow: 0 4px 18px rgba(15, 26, 31, 0.12);
}
.hero__anniv-badge strong {
	font-size: 1.3em;
	font-weight: 700;
	background: linear-gradient(110deg, #ffe9a3 15%, #f7c948 40%, #fff3c4 60%, #f7c948 85%);
	background-size: 200% 100%;
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	animation: cloud-anniv-shine 4.5s ease-in-out infinite;
}
@keyframes cloud-anniv-shine { 0%, 100% { background-position-x: 0%; } 50% { background-position-x: 100%; } }
@media (prefers-reduced-motion: reduce) { .hero__anniv-badge strong { animation: none; } }

/* --- 代表紹介: 全文＋もっと見る --- */
.supervisor__text {
	font-size: 15px;
	line-height: 1.9;
	color: var(--c-ink-500);
}
.supervisor__more { margin-top: 6px; }
.supervisor__more summary {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	cursor: pointer;
	color: var(--c-brand-600);
	font-weight: 600;
	font-size: 14px;
	list-style: none;
	-webkit-user-select: none;
	user-select: none;
}
.supervisor__more summary::-webkit-details-marker { display: none; }
.supervisor__more summary::after { content: "▾"; font-size: 12px; transition: transform 0.2s; }
.supervisor__more[open] summary::after { transform: rotate(180deg); }
.supervisor__more > p {
	margin-top: 10px;
	font-size: 15px;
	line-height: 1.9;
	color: var(--c-ink-500);
}

/* ============================================================
   101. ヒーロー別案（ライト版）: body側で .hero に hero--light を付けると
   白基調×緑リボンの案に切り替わる（比較検討用・既定は未使用）
   ============================================================ */
.hero.hero--light {
	background: linear-gradient(180deg, #ffffff 0%, #f2faf6 100%);
	color: var(--c-ink-900);
}
.hero.hero--light::before { background: none; }
.hero.hero--light .hero__eyebrow {
	background: var(--c-brand-100);
	color: var(--c-brand-600);
	border-color: rgba(29, 154, 108, 0.25);
}
.hero.hero--light .hero__note { color: var(--c-ink-500); }
.hero.hero--light .hero__ribbon--1 {
	opacity: 0.5;
	background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1600 900' preserveAspectRatio='none'%3E%3Cpath fill='%2329b47f' opacity='0.4' d='M0,600 C300,480 500,480 800,600 C1100,720 1300,720 1600,600 L1600,690 C1300,810 1100,810 800,690 C500,570 300,570 0,690 Z'/%3E%3Cpath fill='%230f7a55' opacity='0.22' d='M0,430 C300,330 500,330 800,430 C1100,530 1300,530 1600,430 L1600,485 C1300,585 1100,585 800,485 C500,385 300,385 0,485 Z'/%3E%3C/svg%3E");
}
.hero.hero--light .hero__ribbon--2 {
	opacity: 0.65;
	background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1600 900' preserveAspectRatio='none'%3E%3Cpath fill='%23b9e86b' opacity='0.55' d='M0,600 C300,480 500,480 800,600 C1100,720 1300,720 1600,600 L1600,675 C1300,795 1100,795 800,675 C500,555 300,555 0,675 Z'/%3E%3Cpath fill='%235ccf9d' opacity='0.35' d='M0,430 C300,330 500,330 800,430 C1100,530 1300,530 1600,430 L1600,478 C1300,578 1100,578 800,478 C500,378 300,378 0,478 Z'/%3E%3C/svg%3E");
}
.hero.hero--light .hero__ribbon--3 { opacity: 0.25; }
.hero.hero--light .hero__glow { background: radial-gradient(closest-side, rgba(92, 207, 157, 0.35), transparent 70%); }
.hero.hero--light .hero__anniv-badge {
	background: #fff;
	border: 1px solid rgba(29, 154, 108, 0.35);
	color: var(--c-ink-700);
	box-shadow: 0 4px 18px rgba(15, 26, 31, 0.08);
}
.hero.hero--light .hero__anniv-badge strong {
	background: linear-gradient(110deg, #d9a514 15%, #b8860b 50%, #e6b422 85%);
	background-size: 200% 100%;
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}
.hero.hero--light .hero__actions .wp-block-button__link {
	background: var(--g-brand);
	color: #fff;
	border: 0;
	box-shadow: 0 8px 24px rgba(29, 154, 108, 0.32);
}
.hero.hero--light .hero__actions .is-style-ghost .wp-block-button__link {
	background: #fff;
	color: var(--c-brand-600);
	border: 2px solid var(--c-brand-500);
	box-shadow: none;
}
.hero.hero--light + * .wave, .hero.hero--light .wave { color: #f5f9f7; }

/* ============================================================
   102. コラムのブランド名「ビジガク」（2026-08-25）
   小さく「初心者でもわかる！ビジネスコラム」＋大きく「ビジガク」の2段組み
   ============================================================ */
.section__title--brand {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 6px;
}
.section__title-sub {
	display: block;
	font-size: clamp(13px, 1.6vw, 15px);
	font-weight: 600;
	letter-spacing: 0.12em;
	color: var(--c-brand-600);
}
/* ビジガク 本体はテーマの見出しサイズを継承しつつ少しだけ大きく */
h1.section__title--brand, h2.section__title--brand { line-height: 1.3; }

/* ============================================================
   103. CLOUDとはLP（/about/・page-templates/lp.php）
   構成: docs/09_CLOUDとはLP構成案_20260825.md（S00〜S14）
   プレフィックス .albp-*（About LP）。既存 .hero--light / .stats / .faq / .btn を流用。
   ============================================================ */

/* --- 共通: セクション・見出し・アンカー --- */
.albp-section {
	padding-top: clamp(52px, 9vw, 96px);
	padding-bottom: clamp(52px, 9vw, 96px);
	background: var(--c-bg);
}

.albp-section--tight {
	padding-top: clamp(20px, 4vw, 40px);
	padding-bottom: clamp(20px, 4vw, 40px);
}

.albp-soft { background: var(--c-bg-soft); }

.albp-narrow {
	max-width: calc(var(--container-narrow) + var(--gutter) * 2);
}

.albp-anchor { scroll-margin-top: calc(var(--header-h) + 72px); }

.albp-eyebrow {
	display: block;
	margin: 0 0 10px;
	text-align: center;
	font-size: 12.5px;
	font-weight: 700;
	letter-spacing: 0.18em;
	color: var(--c-brand-500);
}

.albp-eyebrow--lime { color: var(--c-accent); }

.albp-center-text {
	margin-left: auto;
	margin-right: auto;
	max-width: 44em;
}

.albp-arrow-link a {
	font-weight: 700;
	text-decoration: none;
	color: var(--c-brand-600);
}

.albp-arrow-link a:hover { text-decoration: underline; }

/* --- スクロール連動の出現アニメーション（JS: cloudInitReveal が html.albp-js を付与） --- */
.albp-js .albp-reveal {
	opacity: 0;
	transform: translateY(22px);
	transition: opacity 0.7s var(--ease), transform 0.7s var(--ease);
}

.albp-js .albp-reveal.is-inview {
	opacity: 1;
	transform: none;
}

.albp-js .albp-d1.is-inview { transition-delay: 0.1s; }
.albp-js .albp-d2.is-inview { transition-delay: 0.2s; }

@media (prefers-reduced-motion: reduce) {
	.albp-js .albp-reveal {
		opacity: 1;
		transform: none;
		transition: none;
	}
}

/* --- S00 ページ内ナビ（アンカーチップ・sticky） --- */
.albp-nav {
	position: sticky;
	top: var(--header-h);
	z-index: 50;
	background: rgba(255, 255, 255, 0.88);
	-webkit-backdrop-filter: blur(8px);
	backdrop-filter: blur(8px);
	border-bottom: 1px solid var(--c-line);
}

.albp-nav__inner {
	display: flex;
	gap: 8px;
	overflow-x: auto;
	padding: 10px var(--gutter);
	max-width: calc(var(--container) + var(--gutter) * 2);
	margin: 0 auto;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
}

.albp-nav__inner::-webkit-scrollbar { display: none; }

.albp-nav__inner a {
	flex: none;
	display: inline-flex;
	align-items: center;
	min-height: 40px;
	padding: 6px 18px;
	border-radius: var(--radius-pill);
	background: var(--c-brand-100);
	color: var(--c-brand-700);
	font-size: 13.5px;
	font-weight: 700;
	text-decoration: none;
	transition: background-color var(--dur) var(--ease), color var(--dur) var(--ease);
}

.albp-nav__inner a:hover {
	background: var(--c-brand-600);
	color: #fff;
}

/* --- S01 ファーストビュー（.hero.hero--light を流用しつつ密度重視に調整） --- */
.albp-fv {
	padding: clamp(44px, 8vw, 96px) 0 clamp(88px, 13vw, 150px);
	text-align: center;
}

.albp-fv__inner {
	position: relative;
	z-index: 1;
}

.albp-fv__eyebrow {
	display: inline-block;
	margin: 0 0 14px;
	padding: 5px 16px;
	border-radius: var(--radius-pill);
	background: var(--c-brand-100);
	border: 1px solid rgba(29, 154, 108, 0.25);
	color: var(--c-brand-600);
	font-size: 12.5px;
	font-weight: 700;
	letter-spacing: 0.16em;
}

.albp-fv__h1 {
	margin: 0 0 14px;
	font-size: clamp(17px, 2.6vw, 21px);
	font-weight: 700;
	letter-spacing: 0.12em;
	color: var(--c-ink-500);
}

.albp-fv__catch {
	margin: 0 0 20px;
	font-size: clamp(30px, 7.6vw, 46px);
	font-weight: 700;
	line-height: 1.45;
	letter-spacing: 0.04em;
	color: var(--c-ink-900);
}

.albp-marker {
	background: linear-gradient(transparent 64%, rgba(185, 232, 107, 0.6) 64%);
	padding: 0 0.06em;
}

.albp-fv__lead {
	max-width: 36em;
	margin: 0 auto 26px;
	font-size: clamp(14.5px, 2.1vw, 16.5px);
	line-height: 2;
	color: var(--c-ink-700);
}

/* 信頼バー3チップ（ガラス風） */
.albp-trust {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 10px;
	margin: 0 0 26px;
	padding: 0;
	list-style: none;
}

.albp-trust__chip {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 10px 18px;
	border-radius: var(--radius-pill);
	background: rgba(255, 255, 255, 0.72);
	border: 1px solid rgba(29, 154, 108, 0.28);
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
	box-shadow: 0 6px 18px rgba(15, 26, 31, 0.07);
	font-size: 13.5px;
	font-weight: 500;
	color: var(--c-ink-700);
}

.albp-trust__chip svg { color: var(--c-brand-600); }

.albp-trust__chip strong {
	color: var(--c-brand-700);
	font-weight: 700;
}

.albp-fv__cta { margin: 0; }

.albp-fv__cta a {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	min-height: 44px;
	font-size: 15.5px;
	font-weight: 700;
	color: var(--c-brand-600);
	text-decoration: none;
	border-bottom: 2px solid rgba(29, 154, 108, 0.4);
	transition: color var(--dur) var(--ease), border-color var(--dur) var(--ease);
}

.albp-fv__cta a:hover {
	color: var(--c-brand-700);
	border-color: var(--c-brand-700);
}

/* --- S03/S06 3本柱カード --- */
.albp-pillars {
	display: grid;
	grid-template-columns: 1fr;
	gap: 18px;
	max-width: 1080px;
	margin: 32px auto 0;
}

@media (min-width: 768px) {
	.albp-pillars { grid-template-columns: repeat(3, 1fr); gap: 24px; }
}

.albp-pillar {
	position: relative;
	background: #fff;
	border-radius: var(--radius);
	box-shadow: var(--shadow-card);
	padding: 30px 24px 26px;
	overflow: hidden;
	transition: transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
}

.albp-pillar:hover {
	transform: translateY(-4px);
	box-shadow: var(--shadow-card-hover);
}

.albp-pillar::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 4px;
	background: var(--g-brand);
}

.albp-pillar__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 52px;
	height: 52px;
	border-radius: 14px;
	background: var(--c-brand-100);
	color: var(--c-brand-600);
	margin-bottom: 14px;
}

.albp-pillar__title {
	margin: 0 0 8px;
	font-size: 17.5px;
	font-weight: 700;
	color: var(--c-ink-900);
}

.albp-pillar__text {
	margin: 0;
	font-size: 14.5px;
	line-height: 1.85;
	color: var(--c-ink-700);
}

.albp-badge {
	position: absolute;
	top: 14px;
	right: 14px;
	display: inline-block;
	padding: 4px 12px;
	border-radius: var(--radius-pill);
	background: var(--g-btn);
	color: #fff;
	font-size: 11.5px;
	font-weight: 700;
	letter-spacing: 0.04em;
	box-shadow: 0 4px 10px rgba(29, 154, 108, 0.3);
}

/* --- S04 教材ロードマップ --- */
.albp-roadband {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 8px;
	width: fit-content;
	max-width: 100%;
	margin: 0 auto 10px;
	padding: 10px 22px;
	border-radius: var(--radius-pill);
	background: var(--g-brand);
	color: #fff;
	font-size: 13.5px;
	font-weight: 700;
	letter-spacing: 0.05em;
	text-align: center;
	box-shadow: 0 8px 20px rgba(29, 154, 108, 0.25);
}

.albp-road {
	position: relative;
	max-width: 820px;
	margin: 24px auto 0;
}

/* 縦の接続線（緑グラデ） */
.albp-road::before {
	content: "";
	position: absolute;
	left: 22px;
	top: 10px;
	bottom: 10px;
	width: 2px;
	background: linear-gradient(180deg, #b9e86b 0%, #29b47f 45%, #0f7a55 100%);
	opacity: 0.45;
}

.albp-phase { position: relative; }

.albp-phase__head {
	position: relative;
	padding: 6px 0 6px 60px;
	margin: 30px 0 16px;
}

.albp-phase:first-child .albp-phase__head { margin-top: 0; }

.albp-phase__head::before {
	content: "";
	position: absolute;
	left: 14px;
	top: 50%;
	width: 18px;
	height: 18px;
	margin-top: -9px;
	border-radius: 50%;
	background: var(--g-btn);
	box-shadow: 0 0 0 5px rgba(41, 180, 127, 0.18);
}

.albp-phase__eyebrow {
	display: block;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.18em;
	color: var(--c-brand-500);
}

.albp-phase__label {
	margin: 2px 0 0;
	font-size: clamp(18px, 3vw, 21px);
	font-weight: 700;
	color: var(--c-ink-900);
}

.albp-tcard {
	position: relative;
	margin: 0 0 16px;
	padding-left: 60px;
}

.albp-tcard__num {
	position: absolute;
	left: 0;
	top: 8px;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: var(--g-btn);
	color: #fff;
	font-size: 17px;
	font-weight: 700;
	font-variant-numeric: tabular-nums;
	letter-spacing: 0.02em;
	box-shadow: 0 0 0 4px var(--c-bg), 0 6px 14px rgba(29, 154, 108, 0.3);
}

.albp-tcard__body {
	background: #fff;
	border: 1px solid var(--c-line);
	border-radius: var(--radius);
	box-shadow: var(--shadow-card);
	overflow: hidden;
	transition: transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
}

.albp-tcard__body:hover {
	transform: translateY(-3px);
	box-shadow: var(--shadow-card-hover);
}

.albp-tcard__top {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 18px 18px 0;
}

.albp-tcard__icon {
	flex: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border-radius: 10px;
	background: var(--c-brand-100);
	color: var(--c-brand-600);
}

.albp-tcard__name {
	margin: 0;
	font-size: 16px;
	font-weight: 700;
	line-height: 1.5;
	color: var(--c-ink-900);
}

.albp-tcard__benefit {
	margin: 0;
	padding: 10px 18px 14px;
	font-size: 14.5px;
	line-height: 1.8;
	color: var(--c-ink-700);
}

.albp-tcard__more { border-top: 1px dashed var(--c-line); }

.albp-tcard__more summary {
	display: flex;
	align-items: center;
	gap: 6px;
	min-height: 44px;
	padding: 10px 18px;
	list-style: none;
	cursor: pointer;
	font-size: 13.5px;
	font-weight: 700;
	color: var(--c-brand-600);
	-webkit-tap-highlight-color: transparent;
	-webkit-user-select: none;
	user-select: none;
}

.albp-tcard__more summary::-webkit-details-marker { display: none; }

.albp-tcard__more summary::after {
	content: "▾";
	font-size: 11px;
	transition: transform var(--dur) var(--ease);
}

.albp-tcard__more[open] summary::after { transform: rotate(180deg); }

.albp-tcard__more summary:hover { color: var(--c-brand-700); }

.albp-tcard__detail {
	padding: 0 18px 18px;
	font-size: 14px;
	line-height: 1.85;
	color: var(--c-ink-700);
}

.albp-tcard__detail p { margin: 0 0 8px; }

.albp-tcard__detail ul {
	margin: 0;
	padding-left: 1.3em;
}

.albp-tcard__detail li { margin: 4px 0; }

.albp-tcard__detail li::marker { color: var(--c-brand-500); }

/* 学べる領域タグチップ */
.albp-tags__title {
	margin: 44px 0 6px;
	font-size: clamp(17px, 3vw, 20px);
}

.albp-tags {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 8px;
	max-width: 880px;
	margin: 18px auto 0;
	padding: 0;
	list-style: none;
}

.albp-tags li {
	padding: 7px 15px;
	border-radius: var(--radius-pill);
	background: var(--c-brand-100);
	color: var(--c-brand-700);
	font-size: 13px;
	font-weight: 600;
	line-height: 1.5;
}

/* --- S05 中間CTA（スリム・緑枠） --- */
.albp-midcta {
	position: relative;
	max-width: 760px;
	margin: 0 auto;
	padding: 30px 24px 24px;
	background: #fff;
	border: 1.5px solid var(--c-brand-600);
	border-radius: 14px;
	text-align: center;
	box-shadow: 0 12px 30px rgba(29, 154, 108, 0.12);
	overflow: hidden;
}

.albp-midcta::before {
	content: "";
	position: absolute;
	top: -40px;
	right: -40px;
	width: 160px;
	height: 160px;
	border-radius: 50%;
	background: radial-gradient(closest-side, rgba(185, 232, 107, 0.35), transparent 70%);
	pointer-events: none;
}

.albp-midcta__title {
	margin: 0 0 8px;
	font-size: clamp(18px, 3.4vw, 22px);
	font-weight: 700;
	color: var(--c-ink-900);
}

.albp-midcta__text {
	margin: 0 0 16px;
	font-size: 14.5px;
	line-height: 1.85;
	color: var(--c-ink-700);
}

.albp-midcta__btn { margin: 0 0 10px; }

.albp-midcta__btn .btn {
	min-height: 50px;
	font-size: 16px;
	padding-left: 2.4em;
	padding-right: 2.4em;
}

@media (max-width: 479px) {
	.albp-midcta__btn .btn { width: 100%; }
}

.albp-midcta__note {
	margin: 0;
	font-size: 11.5px;
	color: var(--c-ink-300);
}

/* --- S07 数字で見るCLOUD --- */
.albp-stats { max-width: 1000px; margin: 0 auto; }

.albp-stats .stats__item {
	background: linear-gradient(165deg, var(--c-bg-soft) 0%, #ffffff 75%);
	border: 1px solid var(--c-line);
	border-radius: var(--radius);
	box-shadow: var(--shadow-card);
	padding: 26px 10px 22px;
}

.albp-stats .stats__num { font-size: clamp(34px, 7vw, 58px); }

.albp-stats .stats__note {
	margin-top: 6px;
	text-align: center;
}

.albp-stats .stats__note small {
	display: block;
	margin-top: 4px;
	font-size: 11px;
	color: var(--c-ink-300);
}

.albp-voice-lead {
	max-width: 40em;
	margin: 28px auto 8px;
	font-size: 15px;
	color: var(--c-ink-700);
}

/* --- S08 創業理念（深緑のStoryセクション） --- */
.albp-story {
	position: relative;
	background:
		radial-gradient(110% 70% at 90% 0%, rgba(41, 180, 127, 0.22), transparent 60%),
		radial-gradient(90% 60% at 0% 100%, rgba(185, 232, 107, 0.12), transparent 55%),
		linear-gradient(165deg, #0d211b 0%, #0f3125 55%, #12452f 100%);
	color: rgba(255, 255, 255, 0.94);
	overflow: hidden;
}

.albp-story .section__title { color: #fff; }

.albp-story p { color: rgba(255, 255, 255, 0.92); }

.albp-bubbles {
	display: flex;
	flex-direction: column;
	gap: 14px;
	margin: 28px 0;
}

.albp-bubble {
	position: relative;
	max-width: 85%;
	margin: 0;
	padding: 16px 20px;
	border-radius: 16px;
	background: rgba(255, 255, 255, 0.09);
	border: 1px solid rgba(185, 232, 107, 0.4);
	-webkit-backdrop-filter: blur(4px);
	backdrop-filter: blur(4px);
	font-size: clamp(15px, 2.4vw, 17px);
	font-weight: 700;
	line-height: 1.75;
	color: #fff;
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.18);
}

.albp-bubble--l {
	align-self: flex-start;
	border-bottom-left-radius: 4px;
}

.albp-bubble--r {
	align-self: flex-end;
	border-bottom-right-radius: 4px;
	border-color: rgba(92, 207, 157, 0.5);
}

.albp-story__cite {
	margin: 18px 0 0;
	font-size: 12px;
	color: rgba(255, 255, 255, 0.55);
}

/* --- S09 あゆみ（縦タイムライン） --- */
.albp-tl {
	position: relative;
	max-width: 720px;
	margin: 0 auto;
	padding-left: 26px;
	border-left: 2px solid var(--c-brand-100);
}

.albp-tl__item {
	position: relative;
	padding-bottom: 30px;
}

.albp-tl__item:last-child { padding-bottom: 0; }

.albp-tl__item::before {
	content: "";
	position: absolute;
	left: -33px;
	top: 10px;
	width: 12px;
	height: 12px;
	border-radius: 50%;
	background: var(--g-btn);
	box-shadow: 0 0 0 4px rgba(41, 180, 127, 0.18);
}

.albp-tl__year {
	display: block;
	margin-bottom: 4px;
	font-size: clamp(26px, 4.6vw, 34px);
	font-weight: 700;
	line-height: 1.2;
	font-variant-numeric: tabular-nums;
	background: var(--g-text);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	color: transparent;
}

.albp-tl__year small {
	font-size: 0.5em;
	font-weight: 700;
	margin-left: 0.1em;
}

.albp-tl__text {
	margin: 0;
	font-size: 15px;
	line-height: 1.85;
	color: var(--c-ink-700);
}

/* --- S10 監修者・運営 --- */
.albp-people {
	display: grid;
	grid-template-columns: 1fr;
	gap: 18px;
	max-width: 860px;
	margin: 0 auto;
}

@media (min-width: 768px) {
	.albp-people { grid-template-columns: repeat(2, 1fr); gap: 24px; }
}

.albp-person {
	background: #fff;
	border-radius: var(--radius);
	box-shadow: var(--shadow-card);
	padding: 30px 26px 26px;
	text-align: center;
	transition: transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
}

.albp-person:hover {
	transform: translateY(-4px);
	box-shadow: var(--shadow-card-hover);
}

.albp-person__photo {
	display: inline-block;
	width: 96px;
	height: 96px;
	border-radius: 50%;
	overflow: hidden;
	margin-bottom: 14px;
	border: 3px solid #fff;
	box-shadow: 0 0 0 2px var(--c-brand-400), 0 6px 16px rgba(15, 26, 31, 0.14);
}

.albp-person__photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.albp-person__name {
	margin: 0 0 2px;
	font-size: 18px;
	font-weight: 700;
	color: var(--c-ink-900);
}

.albp-person__role {
	margin: 0 0 12px;
	font-size: 13px;
	color: var(--c-ink-500);
}

.albp-person__msg {
	margin: 0;
	font-size: 14.5px;
	line-height: 1.9;
	color: var(--c-ink-700);
	text-align: left;
}

.albp-people__note {
	margin: 14px 0 22px;
	text-align: center;
	font-size: 11.5px;
	color: var(--c-ink-300);
}

/* --- S11 FAQ抜粋（既存 .faq を流用） --- */
.albp-faq-note {
	max-width: 40em;
	margin: 24px auto 8px;
	font-size: 14.5px;
	color: var(--c-ink-700);
}

/* --- S12 受講の流れ（縦ステッパー） --- */
.albp-steps {
	position: relative;
	max-width: 720px;
	margin: 0 auto;
}

.albp-steps::before {
	content: "";
	position: absolute;
	left: 22px;
	top: 12px;
	bottom: 12px;
	width: 2px;
	background: linear-gradient(180deg, #b9e86b 0%, #29b47f 50%, #0f7a55 100%);
	opacity: 0.45;
}

.albp-step {
	position: relative;
	padding: 0 0 20px 62px;
}

.albp-step:last-child { padding-bottom: 0; }

.albp-step__num {
	position: absolute;
	left: 0;
	top: 4px;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: var(--g-btn);
	color: #fff;
	font-size: 19px;
	font-weight: 700;
	box-shadow: 0 0 0 4px var(--c-bg-soft), 0 6px 14px rgba(29, 154, 108, 0.3);
}

.albp-step__body {
	background: #fff;
	border: 1px solid var(--c-line);
	border-radius: var(--radius);
	box-shadow: var(--shadow-card);
	padding: 18px 20px;
}

.albp-step__title {
	margin: 0 0 6px;
	font-size: 16.5px;
	font-weight: 700;
	color: var(--c-ink-900);
}

.albp-step__text {
	margin: 0;
	font-size: 14.5px;
	line-height: 1.85;
	color: var(--c-ink-700);
}

.albp-step__btn { margin: 14px 0 0; }

@media (max-width: 479px) {
	.albp-step__btn .btn { width: 100%; }
	.albp-step { padding-left: 56px; }
	.albp-step__num { width: 40px; height: 40px; font-size: 17px; }
	.albp-steps::before { left: 20px; }
}

/* --- S13 最終CTA（波形上端＋緑グラデ帯） --- */
.albp-final {
	position: relative;
	background: var(--g-brand);
	color: #fff;
	text-align: center;
	padding: clamp(84px, 14vw, 150px) 0 clamp(64px, 10vw, 104px);
	overflow: hidden;
}

.albp-final::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 0;
	pointer-events: none;
	background:
		radial-gradient(100% 100% at 100% 0%, rgba(255, 255, 255, 0.14), transparent 55%),
		linear-gradient(180deg, rgba(15, 26, 31, 0.14), rgba(15, 26, 31, 0.02));
}

.albp-final__wave {
	position: absolute;
	top: -1px;
	left: 0;
	right: 0;
	z-index: 1;
	line-height: 0;
	pointer-events: none;
	color: var(--c-bg-soft);
	transform: scaleY(-1);
}

.albp-final__wave svg {
	display: block;
	width: 100%;
	height: auto;
	min-height: 40px;
}

@media (min-width: 1024px) {
	.albp-final__wave svg { min-height: 72px; }
}

.albp-final__inner {
	position: relative;
	z-index: 2;
	max-width: 760px;
}

.albp-final__title {
	margin: 0 0 14px;
	font-size: clamp(22px, 4.8vw, 34px);
	font-weight: 700;
	line-height: 1.4;
	letter-spacing: 0.04em;
	color: #fff;
	text-shadow: 0 2px 10px rgba(15, 26, 31, 0.15);
}

.albp-final__lead {
	max-width: 36em;
	margin: 0 auto 28px;
	font-size: 15px;
	line-height: 1.9;
	color: rgba(255, 255, 255, 0.94);
	text-shadow: 0 1px 2px rgba(15, 26, 31, 0.25);
}

.albp-final__actions {
	display: flex;
	flex-direction: column;
	gap: 12px;
	max-width: 420px;
	margin: 0 auto;
}

@media (min-width: 640px) {
	.albp-final__actions {
		flex-direction: row;
		justify-content: center;
		max-width: none;
	}
}

.albp-final__btn-main {
	background: #fff;
	color: var(--c-brand-700);
	box-shadow: 0 8px 24px rgba(15, 26, 31, 0.18);
	min-height: 52px;
	font-size: 16px;
	padding-left: 2.4em;
	padding-right: 2.4em;
}

.albp-final__btn-main:hover {
	background: #f4fbf7;
	color: var(--c-brand-700);
	transform: translateY(-1px);
}

.albp-final__btn-sub {
	background: transparent;
	color: #fff;
	border-color: rgba(255, 255, 255, 0.85);
	min-height: 52px;
	font-size: 15px;
}

.albp-final__btn-sub:hover {
	background: rgba(255, 255, 255, 0.14);
	color: #fff;
	border-color: #fff;
}

/* モバイル固定CTAバーと重なるため帯下部に余白を足す */
@media (max-width: 1023px) {
	.albp-final { padding-bottom: calc(clamp(64px, 10vw, 104px) + 24px); }
}

/* --- S14 監修表記 --- */
.albp-supervision {
	background: var(--c-bg);
	padding: 26px var(--gutter) 34px;
}

.albp-supervision__text {
	margin: 0;
	font-size: 13px;
	color: var(--c-ink-500);
}

/* FVキャッチのスマホ改行制御（「学びを、/ひとりにさせない。」の2行組み） */
.albp-br-sp { display: none; }

@media (max-width: 599px) {
	.albp-br-sp { display: inline; }
}

/* .section__lead は見出し直後用に margin-top:-24px を持つため、帯（roadband）直後では相殺しない */
.albp-roadband + .section__lead { margin-top: 0; }

/* 数字タイルの単位の途中改行を防ぐ（PC4列時の「250回以/上」対策）
   display:inline-block でグラデ背景（background-clip:text）をテキスト幅に追随させ、
   はみ出し部分が clip 範囲外で透明化する現象（PCタイル4「万円」消失）を防ぐ */
.albp-stats .stats__num {
	display: inline-block;
	white-space: nowrap;
	font-size: clamp(32px, 3.6vw, 46px);
}

@media (max-width: 767px) {
	.albp-stats .stats__num { font-size: clamp(30px, 8vw, 40px); }
}

/* SPでタイルラベルの泣き別れ（「公/開」「（2025/年実績）」）を防ぐ */
@media (max-width: 480px) {
	.albp-stats .stats__label {
		font-size: 13px;
		letter-spacing: 0;
	}
}

/* S02 共感セクション：装飾なし・短く軽く（余白を通常セクションより詰める） */
.albp-empathy {
	padding-top: clamp(40px, 6vw, 64px);
	padding-bottom: clamp(40px, 6vw, 64px);
}

/* リード文の1語だけの最終行（泣き別れ）を緩和。非対応ブラウザでは無害 */
.albp-fv__lead,
.albp-section .section__lead {
	text-wrap: balance;
}

/* 見出し内でひとまとまりに改行させたい語句 */
.albp-nowrap { display: inline-block; }

/* ============================================================
   104. FAQ（/faq/ ページ専用: チップナビ・絞り込み・ジャンル。プレフィックス .faqp-*）
   アコーディオン本体は既存 .faq / .faq__item の見た目をそのまま流用する。
   ============================================================ */

/* ジャンルのアンカーチップナビ（sticky・横スクロール。/about/ の .albp-nav 相当） */
.faqp-nav {
	position: sticky;
	top: var(--header-h);
	z-index: 40;
	max-width: 860px; /* .faq（アコーディオン列）と左右位置を揃える */
	margin: 4px auto 20px;
	background: rgba(255, 255, 255, 0.92);
	-webkit-backdrop-filter: blur(8px);
	backdrop-filter: blur(8px);
	border: 1px solid var(--c-line);
	border-radius: 14px;
}

.faqp-nav__inner {
	display: flex;
	gap: 8px;
	overflow-x: auto;
	padding: 8px 10px;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
}

.faqp-nav__inner::-webkit-scrollbar { display: none; }

.faqp-nav__inner a {
	flex: none;
	display: inline-flex;
	align-items: center;
	min-height: 36px;
	padding: 4px 14px;
	border-radius: var(--radius-pill);
	background: var(--c-brand-100);
	color: var(--c-brand-700);
	font-size: 13px;
	font-weight: 700;
	text-decoration: none;
	transition: background-color var(--dur) var(--ease), color var(--dur) var(--ease);
}

.faqp-nav__inner a:hover {
	background: var(--c-brand-600);
	color: #fff;
}

/* 質問キーワード絞り込みボックス */
.faqp-search {
	max-width: 860px; /* .faq と左右位置を揃える */
	margin: 0 auto 30px;
}

.faqp-search__label {
	display: block;
	margin-bottom: 6px;
	font-size: 13px;
	font-weight: 700;
	color: var(--c-ink-500);
}

.faqp-search__box {
	position: relative;
}

.faqp-search__box svg {
	position: absolute;
	left: 14px;
	top: 50%;
	transform: translateY(-50%);
	color: var(--c-ink-500);
	pointer-events: none;
}

/* テーマ共通の input[type="search"]（詳細度0,1,1）に勝つよう要素名＋属性＋クラスで指定する。
   フォーカス時の見た目は共通の input:focus（緑ボーダー＋シャドウ）をそのまま使う */
input[type="search"].faqp-search__input {
	min-height: 48px;
	padding-left: 42px;
	border-radius: 12px;
}

.faqp-search__empty {
	margin: 10px 0 0;
	font-size: 14px;
	color: var(--c-ink-500);
}

/* ジャンルセクション（アンカー着地位置は sticky なチップナビ＋ヘッダーの分だけ下げる） */
.faqp-genre {
	scroll-margin-top: calc(var(--header-h) + 72px);
}

.faqp-genre__title {
	max-width: 860px; /* .faq と左右位置を揃える */
	/* Gutenbergのレイアウト機構が margin-top を0に強制するため、上の余白は padding で確保する（8/26ユーザー指摘） */
	margin: 0 auto 32px;
	padding-top: clamp(56px, 8vw, 80px);
}

/* 見出しの文字に蛍光マーカー風の緑の塗り（文字幅ぶんだけ塗る） */
.faqp-genre__title > span.faqp-genre__marker,
.faqp-genre__title {
	line-height: 1.5;
}
.faqp-genre__title .faqp-genre__marker {
	background: linear-gradient(transparent 58%, rgba(185, 232, 107, 0.55) 58%, rgba(185, 232, 107, 0.55) 94%, transparent 94%);
	padding: 0 4px;
	-webkit-box-decoration-break: clone;
	box-decoration-break: clone; /* 折り返し時も各行に塗りが付く */
}
/* 最初のジャンル（検索ボックス直後）は上余白を少し詰める */
.faqp-filter + .faqp-genre .faqp-genre__title,
.faqp-genre:first-of-type .faqp-genre__title {
	padding-top: clamp(36px, 5vw, 48px);
}

/* 締めの案内文も同じ幅に揃える */
.faqp-close {
	max-width: 860px;
	margin-left: auto;
	margin-right: auto;
}

/* JSの絞り込みで hidden を付けた要素を確実に隠す（.faq__item は display 指定を持つため明示する） */
.faq__item[hidden],
.faqp-genre[hidden] {
	display: none;
}

/* ページ末尾の監修表記 */
.faqp-supervision {
	max-width: 860px;
	margin: 40px auto 0;
	padding-top: 16px;
	border-top: 1px solid var(--c-line);
	font-size: 13px;
	color: var(--c-ink-500);
	text-align: center;
}

/* ============================================================
   105. トップ「CLOUDとは」カードの画像（2026-08-26）
   ============================================================ */
.card--feature .card__media,
.card--feature figure.card__media {
	margin: 0;
	border-radius: 0; /* 角丸はカード側の overflow:hidden に任せる */
}

/* ============================================================
   106. セミナー情報（CPT seminar。プレフィックス .semp-*）
   カードの見た目は既存 .card / .card--column を流用し、ここでは差分のみ定義する
   ============================================================ */

/* 「会員限定」バッジ（小さな鍵アイコン＋緑地白文字） */
.semp-badge {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	align-self: flex-start;
	margin: 0;
	padding: 3px 10px 3px 8px;
	border-radius: 999px;
	background: var(--c-brand-600);
	color: #fff;
	font-size: 11.5px;
	font-weight: 700;
	line-height: 1.4;
	letter-spacing: 0.04em;
	white-space: nowrap;
}

.semp-badge::before {
	content: "";
	display: inline-block;
	width: 11px;
	height: 11px;
	flex: none;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='white'%3E%3Cpath d='M12 2a5 5 0 0 0-5 5v3H6a2 2 0 0 0-2 2v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8a2 2 0 0 0-2-2h-1V7a5 5 0 0 0-5-5zm-3 8V7a3 3 0 0 1 6 0v3H9z'/%3E%3C/svg%3E");
	background-size: contain;
	background-repeat: no-repeat;
	background-position: center;
}

/* カード全面リンク（.card__title a::after）より前面に出す必要はないが、重なっても支障がないよう装飾のみ */
.card__body .semp-badge { position: relative; z-index: 2; }

/* 記事ヘッダー内のバッジ */
.entry-header .semp-badge { margin-bottom: 12px; }

/* パスワード未解除時の案内ボックス（フォーム自体は既存 .post-password-form のスタイルを流用） */
.semp-locked {
	margin: 8px 0 24px;
}

.semp-locked__note {
	margin: 0 0 16px;
	padding: 14px 18px;
	border: 1px solid var(--c-line);
	border-left: 4px solid var(--c-brand-600);
	border-radius: var(--radius-sm);
	background: var(--c-bg-soft);
	font-size: 14.5px;
	line-height: 1.8;
	color: var(--c-ink-700);
}

/* 一覧へ戻る導線 */
.semp-back {
	display: flex;
	justify-content: center;
	margin: 32px 0 8px;
}

/* ============================================================
   107. 「CLOUDとは」LP 3本柱カードの画像（2026-08-28）
   ============================================================ */
.albp-pillar__media {
	/* カードのpadding(30px 24px)を相殺して全幅化。z-indexで::beforeの4px帯より手前に出し、
	   トップページ .card--feature と同じ「画像が上端に接する」見え方に揃える */
	position: relative;
	z-index: 1;
	margin: -30px -24px 18px;
}

.albp-pillar__media img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 16 / 9;
	object-fit: cover;
}

/* ============================================================
   108. 「CLOUDとは」LP 教材カードの書影（2026-08-28）
   モバイル: タイトル行は全幅・説明文の右に小さめの書影
   PC(768px〜): 右列に書影（タイトル行〜説明文の縦中央）
   ============================================================ */
.albp-tcard__body {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	grid-template-areas:
		"top"
		"benefit"
		"cover"
		"more";
}

.albp-tcard__top { grid-area: top; }
.albp-tcard__benefit { grid-area: benefit; align-self: start; }
.albp-tcard__more { grid-area: more; }

.albp-tcard__cover {
	grid-area: cover;
	justify-self: center;
	margin: 0 18px 16px;
}

@media (min-width: 360px) {
	.albp-tcard__body {
		grid-template-columns: minmax(0, 1fr) auto;
		grid-template-rows: auto 1fr auto;
		grid-template-areas:
			"top top"
			"benefit cover"
			"more more";
	}

	.albp-tcard__cover {
		justify-self: auto;
		align-self: start;
		margin: 12px 18px 14px 2px;
	}
}

.albp-tcard__cover img {
	display: block;
	width: 88px;
	height: auto;
	border-radius: 3px;
	border: 1px solid rgba(15, 23, 42, 0.08);
	box-shadow: 0 6px 16px rgba(15, 23, 42, 0.14), 0 2px 4px rgba(15, 23, 42, 0.08);
}

@media (min-width: 768px) {
	.albp-tcard__body {
		grid-template-areas:
			"top cover"
			"benefit cover"
			"more more";
	}

	.albp-tcard__cover {
		align-self: center;
		margin: 14px 18px 14px 4px;
	}

	.albp-tcard__cover img { width: 132px; }
}

/* ============================================================
   109. 「CLOUDとは」LP SUPPORTカード画像＋数字5タイル化（2026-08-29）
   ============================================================ */
/* バッジ（総実施数250回以上）をカード画像（.albp-pillar__media の z-index:1）より手前に出す */
.albp-badge { z-index: 2; }

/* 数字で見るCLOUD: 公開方針（2026-08-30会議）により3タイル（5周年／総セミナー時間／総会員数）。
   768px〜: 明示的な3列1行・幅に余裕があるため数字を大きく／〜767px: 2列＋3枚目全幅 */
@media (min-width: 768px) {
	.albp-stats { grid-template-columns: repeat(3, 1fr); max-width: 900px; }
	.albp-stats .stats__num { font-size: clamp(40px, 5vw, 60px); }
}

@media (max-width: 767px) {
	.albp-stats .stats__item:nth-of-type(3) { grid-column: 1 / -1; }
}

/* ============================================================
   110. OUR STORY 刷新（2026-08-30）: 失敗カード・転機・宣言・チップ
   ============================================================ */
.albp-fail {
	display: grid;
	gap: 16px;
	margin: 26px 0 8px;
}

@media (min-width: 768px) {
	.albp-fail { grid-template-columns: 1fr 1fr; gap: 20px; }
}

.albp-fail__card {
	background: rgba(255, 255, 255, 0.07);
	border: 1px solid rgba(255, 255, 255, 0.16);
	border-radius: var(--radius);
	padding: 22px 22px 18px;
	-webkit-backdrop-filter: blur(4px);
	backdrop-filter: blur(4px);
}

.albp-fail__who {
	display: block;
	margin-bottom: 6px;
	font-size: 12.5px;
	font-weight: 700;
	letter-spacing: 0.08em;
	color: var(--c-accent);
}

.albp-fail__wall {
	margin: 0 0 14px;
	font-size: clamp(16.5px, 2.6vw, 19px);
	font-weight: 700;
	color: #fff;
}

.albp-fail__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 10px;
}

.albp-fail__list li {
	position: relative;
	padding-left: 24px;
	font-size: 14px;
	line-height: 1.85;
	color: rgba(255, 255, 255, 0.88);
}

.albp-fail__list li::before {
	content: "✕";
	position: absolute;
	left: 2px;
	top: 0;
	font-weight: 700;
	color: rgba(255, 158, 137, 0.95);
}

.albp-turn {
	margin: 30px 0 4px;
	text-align: center;
}

.albp-turn__label {
	display: inline-block;
	margin-bottom: 8px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.22em;
	color: var(--c-accent);
}

.albp-turn__text {
	max-width: 36em;
	margin: 0 auto 18px;
	line-height: 1.95;
	text-wrap: pretty; /* 最終行が1〜2文字だけ孤立するのを防ぐ（未対応ブラウザでは無視される） */
}

p.albp-story__decl {
	/* .albp-story p（詳細度0,1,1）にcolorで負けないようタイプセレクタ付きで同格・後勝ちにする */
	max-width: 640px;
	margin: 26px auto 0;
	padding: 20px 24px;
	border-radius: 16px;
	background: rgba(255, 255, 255, 0.09);
	border: 1px solid rgba(185, 232, 107, 0.4);
	-webkit-backdrop-filter: blur(4px);
	backdrop-filter: blur(4px);
	text-align: center;
	font-weight: 700;
	font-size: clamp(15px, 2.4vw, 17px);
	line-height: 1.9;
	color: #fff;
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.18);
}

.albp-story__chips {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 10px;
	margin: 22px 0 0;
}

.albp-story__chip {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 8px 18px;
	border-radius: var(--radius-pill);
	border: 1px solid rgba(185, 232, 107, 0.45);
	background: rgba(255, 255, 255, 0.08);
	font-size: 13.5px;
	font-weight: 700;
	color: #fff;
}

.albp-story__chip strong {
	font-size: 1.15em;
	color: var(--c-accent);
}

/* ============================================================
   111. コラム記事中画像（pipeline/images.py が挿入する .column-figure）
   ============================================================ */
.column-figure {
	margin: 28px 0;
	border-radius: var(--radius);
	overflow: hidden;
}

.column-figure img {
	display: block;
	width: 100%;
	height: auto;
}

/* ============================================================
   112. トップページのカード一覧をスマホで横スクロール化（2026-08-30）
   対象: 受講生インタビュー(.voice-list)・ビジガク新着(.column-latest)・
         セミナー情報(.seminar-latest) のQuery Loop。トップページ（body.home）限定。
   1枚82%幅＋次カードのちら見せ＋スクロールスナップ。/voice/等の一覧ページは従来どおり縦
   ============================================================ */
@media (max-width: 767px) {
	body.home .voice-list .wp-block-post-template,
	body.home .column-latest .wp-block-post-template,
	body.home .seminar-latest .wp-block-post-template {
		display: flex;
		grid-template-columns: none;
		overflow-x: auto;
		gap: 14px;
		padding: 4px 4px 18px;
		margin-inline: -4px;
		scroll-snap-type: x mandatory;
		scroll-padding-left: 4px;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none; /* Firefox */
	}

	body.home .voice-list .wp-block-post-template::-webkit-scrollbar,
	body.home .column-latest .wp-block-post-template::-webkit-scrollbar,
	body.home .seminar-latest .wp-block-post-template::-webkit-scrollbar {
		display: none;
	}

	body.home .voice-list .wp-block-post-template > li,
	body.home .column-latest .wp-block-post-template > li,
	body.home .seminar-latest .wp-block-post-template > li {
		flex: 0 0 82%;
		min-width: 0;
		scroll-snap-align: start;
	}
}

/* ============================================================
   113. トップの誘導バナーカルーセル（WLA・実績者・ビジガク／2026-09-08）
   セミナー情報とFAQの間。4秒間隔で1秒の横スライド・ドット・スワイプ対応
   ============================================================ */
.section--wla { padding: 44px 0; }

.cloud-bnr {
	max-width: 1080px;
	margin: 0 auto;
}

.cloud-bnr__viewport {
	overflow: hidden;
}

.cloud-bnr__track {
	display: flex;
	gap: 16px;
	will-change: transform;
}

.cloud-bnr__slide {
	flex: 0 0 calc(50% - 8px);
	display: block;
	border-radius: 14px;
	overflow: hidden;
	box-shadow: 0 8px 22px rgba(15, 40, 30, 0.13);
}

.cloud-bnr__slide img {
	display: block;
	width: 100%;
	height: auto;
}

.cloud-bnr__dots {
	display: flex;
	justify-content: center;
	gap: 10px;
	margin-top: 16px;
}

.cloud-bnr__dots button {
	width: 10px;
	height: 10px;
	padding: 0;
	border: none;
	border-radius: 50%;
	background: var(--c-line);
	cursor: pointer;
	transition: background var(--dur) var(--ease), transform var(--dur) var(--ease);
}

.cloud-bnr__dots button.is-active {
	background: var(--c-brand-600);
	transform: scale(1.25);
}

@media (max-width: 767px) {
	.cloud-bnr__slide { flex: 0 0 85%; }
}

/* ============================================================
   114. セミナー記事 著作権注意ボックス（2026-09-08）
   パスワード解除後の本文下に single-seminar.php が出力する
   ============================================================ */
.semp-copyright {
	margin: 32px 0 8px;
	padding: 22px 24px;
	border: 1px solid var(--c-line);
	border-left: 4px solid var(--c-brand-600);
	border-radius: var(--radius-sm);
	background: var(--c-bg-soft);
}

.semp-copyright__title {
	margin: 0 0 14px;
	font-size: 16px;
	font-weight: 700;
	color: var(--c-ink-900);
}

.semp-copyright__list {
	margin: 0;
	padding-left: 22px;
	display: grid;
	gap: 12px;
	font-size: 13.5px;
	line-height: 1.9;
	color: var(--c-ink-700);
}

.semp-copyright__list li::marker {
	font-weight: 700;
	color: var(--c-ink-900);
}

.semp-copyright__list strong {
	color: var(--c-ink-900);
}

@media (max-width: 767px) {
	.semp-copyright { padding: 18px 16px 18px 18px; }
}
