/**
 * Tokai-clone 追記スタイル（公式 style-main / style-block の上に重ねる）
 * 色・フォントは :root（公式CSS）に依存。
 */

/* WordPress コアが注入する font-size / spacing プリセットは、theme.json が無いと
 * デフォルト（large=36px など）が入って、公式CSSの clamp() フォールバックを上書きしてしまう。
 * 公式テーマが意図する値に揃えるため、ここで明示的に再定義する。 */
:root {
	--wp--preset--font-size--small: 13px;
	--wp--preset--font-size--base: 16px;
	--wp--preset--font-size--medium: 16px;
	--wp--preset--font-size--large: clamp(18px, 18px + var(--fluid-slope) * 2, 20px);
	--wp--preset--font-size--x-large: clamp(20px, 20px + var(--fluid-slope) * 4, 24px);
	--wp--preset--font-size--2-x-large: clamp(24px, 24px + var(--fluid-slope) * 8, 32px);
	--wp--preset--font-size--3-x-large: clamp(32px, 32px + var(--fluid-slope) * 8, 40px);

	/* ブランドカラーを青 → 緑(#13963f) に変更。
	 * 公式テーマは --color-primary 等を WP プリセット変数経由で参照しているので、
	 * 両方上書きしてフォールバックも緑に揃える。 */
	--wp--preset--color--primary: #13963f;
	--wp--preset--color--secondary: #1aa84a;
	--color-primary: #13963f;
	--color-secondary: #1aa84a;
	/* テーマ側で利用するヘルパー（緑のシェード階調） */
	--tc-color-primary-dark: #0e7c33;
	--tc-color-primary-darker: #0a6b2c;
	--tc-color-primary-mid: #15a847;
	--tc-color-primary-soft: #e8f5ec;
}

/* 公式CSSで color: var(--color-neutral-soft)（薄い灰色）が当たっている要素のみ白に置き換え。
 * 元々白／プライマリ色／コントラスト色などの明示的な指定は触らない。 */
.c-header-button__text,
.c-floating-button__text,
.s-nav__link,
.c-button,
.c-button.is-mail,
.c-button.is-document,
.s-top-mv__buttons .c-button,
.s-footer__head,
.s-footer__head-link,
.s-footer__item,
.s-footer__link,
.tc-footer__link,
.tc-footer__heading-link,
.tc-footer__address,
.tc-footer__tel,
.s-footer__copyright,
.s-common-contact__title,
.s-common-contact__text {
	color: #ffffff !important;
}

/* 無料相談・お問い合わせセクションの「メールで相談する」「電話で相談する」ボタンの文字を白に */
.tc-cta .is-style-button-mail .wp-block-button__link,
.tc-cta .is-style-button-mail .wp-element-button,
.tc-cta .is-style-button-tel .wp-block-button__link,
.tc-cta .is-style-button-tel .wp-element-button {
	color: #ffffff !important;
}

/* フッターの文字サイズ — 参考元 https://www.tokai-sr.jp/ と一致 */
.s-footer .s-footer__head,
.s-footer .s-footer__head-link {
	font-size: var(--font-size-large) !important;
	font-weight: 700;
	line-height: 1.5;
}
.s-footer__item,
.s-footer__link {
	font-size: var(--font-size-small) !important;
	line-height: 1.8;
}
.s-footer__copyright {
	font-size: 12px !important;
	line-height: 1.5;
}

/* 自社ロゴ（元画像 880×226。ヘッダー高に収める） */
.s-header__logo a {
	display: flex;
	align-items: center;
}
.s-header__logo img {
	display: block;
	height: auto;
	max-height: 64px;
	width: auto;
	max-width: min(420px, 58vw);
}
@media (max-width: 739px) {
	.s-header__logo img {
		max-height: 48px;
		max-width: min(280px, 72vw);
	}
}

/* ドロワー内リスト（block テーマに依存しない最低限） */
.s-drawer .wp-block-list.is-style-list-drawer {
	list-style: none;
	margin: 0;
	padding: var(--spacing-16);
}
.s-drawer .wp-block-list.is-style-list-drawer > li {
	border-bottom: 1px solid var(--color-neutral-soft);
}
.s-drawer .wp-block-list.is-style-list-drawer > li:last-child {
	border-bottom: none;
}
.s-drawer .wp-block-list.is-style-list-drawer a {
	display: block;
	padding: var(--spacing-16);
	color: var(--color-primary);
	font-size: var(--font-size-small);
	font-weight: 600;
	text-decoration: none;
}
.s-drawer .wp-block-list.is-style-list-drawer a:active {
	background: var(--color-base-primary);
}

/* ハンバーガー開閉（公式は .c-icon-hamburger 用。こちらは .c-hamburger-icon に合わせる） */
.c-hamburger-icon.is-open .c-hamburger-icon__bar1 {
	translate: 0 var(--spacing-8);
	rotate: 45deg;
}
.c-hamburger-icon.is-open .c-hamburger-icon__bar2 {
	opacity: 0;
}
.c-hamburger-icon.is-open .c-hamburger-icon__bar3 {
	translate: 0 calc(var(--spacing-8) * -1);
	rotate: -45deg;
}

/* メニューバー: 1行収まり優先（公式 .s-nav__item { flex: 1 } に合わせて全項目を等幅化） */
.s-nav .s-nav__inner {
	min-height: 52px;
	align-items: stretch;
}
.s-nav .s-nav__lists {
	align-items: stretch;
	min-height: 52px;
	flex-wrap: nowrap;
	justify-content: stretch;
	column-gap: 0;
	width: 100%;
}
.s-nav__item {
	flex: 1 1 0;
	min-width: 0;
	display: flex;
	align-items: stretch;
}
.s-nav__link {
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	font-size: clamp(11px, 0.82vw, 13px);
	font-weight: 600;
	padding-block: 14px;
	padding-inline: clamp(4px, 0.65vw, 10px);
	line-height: 1.25;
	word-break: keep-all;
	white-space: nowrap;
}
@media (min-width: 1024px) {
	.s-nav .s-nav__inner {
		min-height: 56px;
	}
	.s-nav .s-nav__lists {
		min-height: 56px;
	}
	.s-nav__link {
		font-size: clamp(12px, 0.88vw, 14px);
		padding-block: 16px;
		padding-inline: clamp(6px, 0.75vw, 12px);
	}
}
@media (min-width: 1200px) {
	.s-nav__link {
		font-size: clamp(12px, 0.92vw, 15px);
		padding-inline: clamp(8px, 0.9vw, 14px);
	}
}

/* 右固定ショートカット: 管理バー表示時の位置調整 */
body.admin-bar .l-floating-buttons {
	inset-block-start: calc(var(--header-height-desktop) + var(--spacing-32) + 32px);
}
@media screen and (max-width: 782px) {
	body.admin-bar .l-floating-buttons {
		inset-block-start: calc(var(--header-height-desktop) + var(--spacing-32) + 46px);
	}
}

/* トップ下のセクション共通 */
.tc-section {
	padding-block: var(--spacing-80);
}
.tc-section--gray {
	background: var(--color-base-primary);
}
.tc-section__head {
	margin-bottom: var(--spacing-24);
	text-align: center;
}
.tc-h2 {
	margin: 0;
	font-size: var(--font-size-x-large);
	color: var(--color-contrast);
}

/* トップページのセクションタイトルは「ご相談の流れ」と同じデザインに統一 */
body.home .tc-section .tc-h2,
body.home .tc-cta .tc-h2,
body.home .tc-flow__heading {
	font-size: var(--font-size-2x-large) !important;
	font-weight: 700 !important;
	line-height: 1.5 !important;
	text-align: center !important;
	color: var(--color-primary) !important;
}
.tc-h2--invert {
	color: #fff;
}
.tc-h3 {
	margin: 0 0 var(--spacing-16);
	font-size: var(--font-size-large);
	color: var(--color-contrast);
}
.tc-section__sub {
	margin: var(--spacing-8) 0 0;
	color: var(--color-neutral-medium);
	line-height: 1.8;
}

/* トップ4バナー（公式 .s-top-link）：画像の上にグラデーション＋文字 */
.tc-top-link--overlay.s-top-link {
	padding-block: var(--spacing-80);
}
.tc-top-link__card {
	position: relative;
	display: block;
	overflow: hidden;
	border-radius: var(--border-radius-8);
	text-decoration: none;
	color: inherit;
	box-shadow: 0 10px 15px 0 rgb(0 0 0 / 8%);
}
.tc-top-link__visual {
	display: block;
}
.tc-top-link__visual img {
	width: 100%;
	height: auto;
	display: block;
	aspect-ratio: 260 / 170;
	object-fit: cover;
	vertical-align: bottom;
	transition: transform 0.35s ease;
}
.tc-top-link__overlay {
	position: absolute;
	inset: 0;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	gap: var(--spacing-8);
	padding: var(--spacing-16) var(--spacing-16) var(--spacing-24);
	background: linear-gradient(
		180deg,
		rgba(0, 0, 0, 0.08) 0%,
		rgba(0, 0, 0, 0.45) 42%,
		rgba(0, 0, 0, 0.78) 100%
	);
	color: #fff;
	pointer-events: none;
}
.tc-top-link__title {
	display: block;
	font-size: clamp(15px, 1.8vw, 18px);
	font-weight: 700;
	line-height: 1.35;
	text-shadow: 0 1px 3px rgba(0, 0, 0, 0.45);
}
.tc-top-link__desc {
	display: block;
	font-size: var(--font-size-small);
	line-height: 1.65;
	opacity: 0.95;
	text-shadow: 0 1px 2px rgba(0, 0, 0, 0.4);
}
@media (any-hover: hover) {
	.tc-top-link--overlay .s-top-link__item a.tc-top-link__card:hover .tc-top-link__visual img {
		transform: scale(1.04);
	}
	.tc-top-link--overlay .s-top-link__item a.tc-top-link__card:hover {
		opacity: 1;
	}
}

.tc-features3,
.tc-services3 {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: var(--spacing-24);
}

/* 強み: 参考サイトどおり Point＋番号をカード外上部（重なりでカード上に見える） */
.tc-feature-wrap {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	min-width: 0;
}
.tc-feature__point {
	position: relative;
	z-index: 2;
	text-align: center;
	color: var(--color-primary);
	font-family: var(--wp--preset--font-family--tenor-sans, "Tenor Sans", serif);
	line-height: 1;
	text-transform: uppercase;
	margin: 0;
	padding: 0;
}
.tc-feature__point-label {
	display: block;
	font-size: var(--font-size-small);
	font-weight: 600;
	letter-spacing: 0.12em;
}
.tc-feature__point-num {
	display: block;
	margin-top: var(--spacing-8);
	font-size: clamp(2rem, 3.6vw, 2.75rem);
	font-weight: 400;
	letter-spacing: 0.02em;
}
.tc-feature-wrap .tc-feature {
	margin-top: -20px;
	position: relative;
	z-index: 1;
	padding-top: var(--spacing-32);
	box-sizing: border-box;
}

/* サービス: 参考サイトどおり 01–03 をカード外上部（重なりでカード上に見える） */
.tc-service-wrap {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	min-width: 0;
}
.tc-service__point {
	position: relative;
	z-index: 2;
	text-align: center;
	color: var(--color-primary);
	font-family: var(--wp--preset--font-family--tenor-sans, "Tenor Sans", serif);
	line-height: 1;
	margin: 0;
	padding: 0;
}
.tc-service__point-num {
	display: block;
	font-size: clamp(2rem, 3.6vw, 2.75rem);
	font-weight: 400;
	letter-spacing: 0.02em;
}
.tc-service-wrap .tc-service {
	margin-top: -20px;
	position: relative;
	z-index: 1;
	padding-top: var(--spacing-32);
	box-sizing: border-box;
}
.tc-feature,
.tc-service {
	background: var(--color-base-body);
	border: 1px solid var(--color-neutral-soft);
	padding: 0;
	overflow: hidden;
	border-radius: var(--border-radius-8);
}
.tc-feature__media,
.tc-service__media {
	margin: 0;
	aspect-ratio: 678 / 356;
	background: var(--color-base-primary);
	overflow: hidden;
}
.tc-feature__media img,
.tc-service__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.tc-feature__body,
.tc-service__body {
	padding: var(--spacing-24);
}
.tc-feature__title {
	margin: 0;
	font-weight: 700;
	color: var(--color-contrast);
	text-align: center;
}
.tc-feature__body .tc-feature__desc {
	margin-top: var(--spacing-8);
	text-align: center;
}
.tc-service__title {
	margin: 0;
	font-weight: 700;
	color: var(--color-contrast);
}
.tc-feature__desc,
.tc-service__desc {
	margin: var(--spacing-8) 0 0;
	font-size: var(--font-size-small);
	color: var(--color-neutral-medium);
	line-height: 1.8;
}

.tc-center {
	text-align: center;
	margin-top: var(--spacing-24);
}

/* セクション末尾・別ページへの導線（中央）— カードとの間を広め */
.tc-section__foot {
	margin-top: var(--spacing-80);
	text-align: center;
}

/* ボタン（トップ内セクション用・公式 .c-button と併用可） */
.tc-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: var(--spacing-16) var(--spacing-24);
	border-radius: var(--border-radius-8);
	font-weight: 700;
	font-size: var(--font-size-small);
	text-decoration: none;
	transition: background-color 0.2s, color 0.2s, border-color 0.2s;
}
.tc-btn--primary {
	background: var(--color-accent);
	color: var(--color-base-body);
}
.tc-btn--outline {
	border: 2px solid var(--color-primary);
	color: var(--color-primary);
	background: transparent;
}
.tc-btn--outline:hover {
	background: var(--color-primary);
	color: var(--color-base-body);
}
/* 青背景・白文字・枠線（セクション下部の一覧へ等）— 全セクション共通で大きめ */
.tc-btn.tc-btn--section-link {
	padding: calc(var(--spacing-16) + 6px) calc(var(--spacing-32) + 8px);
	font-size: clamp(15px, 1.15vw, 18px);
	min-width: min(100%, 320px);
	line-height: 1.4;
}
.tc-btn--section-link {
	background: var(--tc-color-primary-mid, #15a847);
	color: #fff;
	border: 2px solid var(--color-primary, #13963f);
}
.tc-btn--section-link:hover {
	background: var(--color-primary, #13963f);
	color: #fff;
	border-color: var(--tc-color-primary-dark, #0e7c33);
}

/* ご挨拶（参考元トップ: 見出し 2xl・primary／本文は body と同スケール） */
#message .tc-section__head {
	margin-bottom: var(--wp--preset--spacing--40, var(--spacing-32));
}
#message .tc-h2 {
	font-size: var(--font-size-2x-large);
	line-height: 1.5;
	color: var(--color-primary);
}
.tc-message {
	display: grid;
	grid-template-columns: 1.1fr 0.9fr;
	gap: var(--spacing-24);
	align-items: start;
}
.tc-message__body {
	background: transparent;
	padding: 0;
}
.tc-message__body .tc-h3 {
	margin: 0 0 var(--spacing-24);
	font-size: var(--font-size-large);
	font-weight: 700;
	line-height: 1.5;
	color: var(--color-contrast);
}
.tc-message__body p {
	margin: 0 0 var(--spacing-16);
	font-size: var(--font-size-base);
	line-height: 1.8;
	color: var(--color-contrast);
}
.tc-message__sig {
	margin-top: var(--spacing-24) !important;
	margin-bottom: 0;
	font-weight: 400;
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 0.35em;
	line-height: 1.65;
	text-align: right;
}
.tc-message__sig-line {
	display: block;
}
.tc-message__photo {
	margin: 0;
}
.tc-message__photo img {
	width: 100%;
	max-width: 682px;
	height: auto;
	display: block;
	border-radius: var(--border-radius-8);
	vertical-align: bottom;
}

/* お客様の声: マークアップは公式 .c-voice-card（style-main に依存）。余白のみ調整 */
.c-voice-splide {
	margin-top: var(--spacing-16);
}

/*
 * カードサムネイルの比率を 16:9 に固定（参考画像: 600x337）。
 * 縦横比の異なる画像でも一貫した見た目になるように object-fit: cover で切り出し。
 */
.c-voice-card .c-voice-card__image {
	aspect-ratio: 16 / 9;
	overflow: hidden;
	background: var(--color-base-primary, #f3f4f6);
}
.c-voice-card .c-voice-card__image > a,
.c-voice-card .c-voice-card__image > a > img,
.c-voice-card .c-voice-card__image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/*
 * カードタイトルは公式 style-main の .c-voice-card__title と同一スケール
 * （--font-size-large = clamp(18px, 18px + fluid*2, 20px)）。
 * WP の h2 や preset の上書きを避けるため詳細度を上げ、サイズは公式フォールバックで固定。
 */
.c-voice-card .c-voice-card__title {
	font-size: clamp(18px, 18px + var(--fluid-slope) * 2, 20px);
	font-weight: 600;
	line-height: 1.5;
	margin: 0;
}
.c-voice-card .c-voice-card__title-link {
	font-size: inherit;
	font-weight: inherit;
	line-height: inherit;
}

.tc-thumb-placeholder {
	height: 180px;
	display: grid;
	place-items: center;
	background: var(--color-base-primary);
	color: var(--color-neutral-medium);
	font-size: var(--font-size-small);
}

/* ご相談の流れ（レイアウトは参考サイト、文言はサイト独自） */
.tc-section__head .tc-flow__heading {
	margin: 0;
}
.tc-flow__heading {
	font-size: var(--font-size-2x-large);
	font-weight: 700;
	line-height: 1.5;
	text-align: center;
	color: var(--color-primary);
}
.tc-flow__columns {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: var(--spacing-24);
	margin-top: 0;
}
.tc-flow__col {
	background: var(--color-base-primary);
	border-radius: var(--border-radius-8);
	padding: var(--spacing-16);
	min-width: 0;
}
.tc-flow__head {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--spacing-16);
	text-align: center;
}
.tc-flow__badge-wrap {
	display: flex;
	justify-content: center;
	width: 100%;
}
.tc-flow__badge {
	position: relative;
	z-index: 2;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: var(--spacing-8);
	padding: 4px var(--spacing-8);
	border-radius: var(--border-radius-4);
	background: var(--color-primary);
	color: var(--color-base-body);
	font-family: var(--wp--preset--font-family--tenor-sans, "Tenor Sans", serif);
	line-height: 1;
	text-transform: uppercase;
}
.tc-flow__badge-step {
	font-size: var(--font-size-small);
	line-height: 1;
}
.tc-flow__badge-num {
	font-size: var(--font-size-x-large);
	font-weight: 400;
	line-height: 1;
	letter-spacing: 0.02em;
}
.tc-flow__title {
	margin: 0;
	font-size: var(--font-size-large);
	font-weight: 700;
	line-height: 1.5;
	color: var(--color-primary);
	text-align: center;
}
.tc-flow__subtitle {
	margin: calc(var(--spacing-8) * -1) 0 0;
	font-size: var(--font-size-small);
	font-weight: 700;
	line-height: 1.5;
	color: var(--color-contrast);
	text-align: center;
}
.tc-flow__body {
	margin-top: var(--spacing-16);
	padding: 0;
}
.tc-flow__figure {
	margin: 0;
}
.tc-flow__figure img {
	width: 100%;
	height: auto;
	display: block;
	vertical-align: bottom;
}
.tc-flow__desc {
	margin: var(--spacing-16) 0 0;
	text-align: left;
	line-height: 1.5;
	color: var(--color-contrast);
}
.tc-flow__buttons {
	margin-top: var(--spacing-80);
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: var(--spacing-16);
	width: 100%;
	margin-inline: auto;
}
.tc-flow-page__cta .tc-flow__buttons {
	margin-top: var(--spacing-32);
}
.tc-flow__buttons .wp-block-button {
	width: fit-content;
	max-width: 100%;
	margin-inline: auto;
}
.tc-flow-page__cta-buttons .wp-block-button {
	flex: 1 1 min(100%, 280px);
	max-width: 420px;
}

/* ご契約の流れ CTA — 2列×2行（元の並び）・各セル内でボタン幅・高さを統一 */
.tc-flow-page__cta-inner .tc-flow-page__cta-buttons.tc-flow__buttons {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--spacing-16);
	justify-content: center;
	width: 100%;
	max-width: min(100%, 880px);
	margin-inline: auto;
}
@media (max-width: 640px) {
	.tc-flow-page__cta-inner .tc-flow-page__cta-buttons.tc-flow__buttons {
		grid-template-columns: 1fr;
	}
}
.tc-flow-page__cta-inner .tc-flow-page__cta-buttons .wp-block-button {
	width: 100%;
	max-width: none;
	flex: none;
	margin-inline: 0;
}
.tc-flow-page__cta-inner .tc-flow-page__cta-buttons .wp-block-button .wp-block-button__link {
	width: 100%;
	min-width: 0;
	justify-content: center;
	text-align: center;
	min-height: 3.5rem;
	padding-block: calc(var(--spacing-16) + 4px);
}

/* セクション下部の .tc-btn--section-link に近いサイズ感＋右矢印（全幅にしない） */
.tc-flow__buttons .wp-block-button .wp-block-button__link {
	box-sizing: border-box;
	width: auto;
	max-width: 100%;
	min-width: min(100%, 320px);
	padding: calc(var(--spacing-16) + 6px) calc(var(--spacing-32) + 8px);
	background: var(--tc-color-primary-mid, #15a847);
	color: #fff;
	border: 2px solid var(--color-primary, #13963f);
	font-size: clamp(15px, 1.15vw, 18px);
	text-align: center;
	border-radius: var(--border-radius-8);
	justify-content: center;
	align-items: center;
	font-weight: 700;
	line-height: 1.4;
	text-decoration: none;
	transition: background-color 0.2s, color 0.2s, border-color 0.2s;
	display: inline-flex;
}
.tc-flow__buttons .wp-block-button.is-style-button-has-white-right-arrow .wp-block-button__link {
	gap: var(--spacing-16);
	padding-inline-end: calc(var(--spacing-24) + 8px);
}
.tc-flow__buttons .wp-block-button.is-style-button-has-white-right-arrow .wp-block-button__link::after {
	content: "";
	flex-shrink: 0;
	aspect-ratio: 1;
	background-color: var(--color-neutral-soft);
	inline-size: 16px;
	-webkit-mask-image: url("../images/icon-chevron-right-neutral-soft.svg");
	mask-image: url("../images/icon-chevron-right-neutral-soft.svg");
	-webkit-mask-position: center;
	mask-position: center;
	-webkit-mask-size: contain;
	mask-size: contain;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
}
@media (any-hover: hover) {
	.tc-flow__buttons .wp-block-button.is-style-button-has-white-right-arrow .wp-block-button__link:hover {
		color: #fff;
		background: var(--color-primary, #13963f);
		border-color: var(--color-primary, #13963f);
	}
}

/* 資料3つ */
.tc-docs3 {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: var(--spacing-16);
}
.tc-doc {
	display: block;
	background: var(--color-base-body);
	border: 1px solid var(--color-neutral-soft);
	border-radius: var(--border-radius-8);
	padding: 0;
	overflow: hidden;
	text-decoration: none;
	color: inherit;
	transition: box-shadow 0.2s, transform 0.2s;
}
.tc-doc:hover {
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
}
.tc-doc__thumb {
	margin: 0;
	background: var(--color-base-primary);
	overflow: hidden;
}
.tc-doc__thumb img {
	width: 100%;
	height: auto;
	display: block;
	vertical-align: bottom;
}

.tc-media-summary {
	background: var(--color-base-body);
	border: 1px solid var(--color-neutral-soft);
	padding: var(--spacing-32);
}
.tc-media-summary p {
	margin: 0 0 var(--spacing-16);
	line-height: 1.9;
	font-size: var(--font-size-small);
	color: var(--color-neutral-strong);
}

/* notice サムネイルグリッド（汎用・他ページ向け） */
.tc-thumbgrid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
	gap: var(--spacing-16);
}
.tc-thumbgrid__item {
	display: block;
	border-radius: var(--border-radius-8);
	overflow: hidden;
	border: 1px solid var(--color-neutral-soft);
}
.tc-thumbgrid__item img {
	width: 100%;
	height: 160px;
	object-fit: cover;
}

/* トップ「最新セミナー」: 3件均等・中央寄せ（左右の余白差を出さない） */
.tc-seminar-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: var(--spacing-24);
	width: 100%;
	max-width: 960px;
	margin-inline: auto;
	box-sizing: border-box;
}
.tc-seminar-grid__item {
	display: block;
	border-radius: var(--border-radius-8);
	overflow: hidden;
	border: 1px solid var(--color-neutral-soft);
	box-shadow: 0 10px 15px 0 rgb(0 0 0 / 8%);
}
.tc-seminar-grid__item img {
	width: 100%;
	aspect-ratio: 3 / 2;
	height: auto;
	object-fit: cover;
	display: block;
	vertical-align: bottom;
}
.tc-seminar-grid__item .tc-thumb-placeholder {
	width: 100%;
	aspect-ratio: 3 / 2;
	height: auto;
	min-height: 0;
}

/* 新着情報リスト */
.tc-news {
	list-style: none;
	margin: 0;
	padding: 0;
	border-top: 1px solid var(--color-neutral-soft);
}
.tc-news__item {
	display: flex;
	gap: var(--spacing-24);
	align-items: baseline;
	padding: var(--spacing-24) 0;
	border-bottom: 1px solid var(--color-neutral-soft);
}
.tc-news__date {
	flex: 0 0 132px;
	font-size: clamp(17px, 1.2vw, 20px);
	font-weight: 700;
	color: var(--color-neutral-medium);
	line-height: 1.5;
	letter-spacing: 0.02em;
}
.tc-news__title {
	font-size: clamp(19px, 1.45vw, 24px);
	line-height: 1.5;
	font-weight: 600;
	color: var(--color-primary);
	text-decoration: none;
}
.tc-news__title:hover {
	text-decoration: underline;
}

/* CTA */
.tc-cta {
	background: var(--color-base-primary, #f3f4f6);
	color: var(--color-contrast, #111827);
	padding-block: var(--spacing-64);
}
/* 薄い灰色背景に合わせて、見出し・リードを濃色に */
.tc-cta .tc-h2--invert {
	color: var(--color-primary, #0d47a1) !important;
}
.tc-cta .tc-cta__lead {
	color: var(--color-contrast, #111827) !important;
}
.tc-cta__inner {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: var(--spacing-24);
	text-align: center;
}
.tc-cta__lead {
	margin: var(--spacing-8) 0 0;
	color: rgba(255, 255, 255, 0.85);
	line-height: 1.8;
}
.tc-cta__actions {
	width: 100%;
	max-width: var(--wide-size, 1120px);
	margin-inline: auto;
}
/* 参考元トップ: 2カラム・ボタン幅100%（is-style-button-mail / tel の余白・x-large 文字） */
.tc-cta .tc-cta__cols.wp-block-columns {
	display: flex;
	flex-wrap: wrap;
	gap: var(--spacing-24);
	width: 100%;
}
/* 4ボタン版: 2×2 グリッドにする */
.tc-cta .tc-cta__cols--grid.wp-block-columns {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--spacing-16, 16px);
	width: 100%;
	max-width: 760px;
	margin-inline: auto;
}
.tc-cta .tc-cta__cols--grid .wp-block-column {
	flex: none;
	min-width: 0;
	width: 100%;
}
.tc-cta .tc-cta__cols--grid .wp-block-buttons,
.tc-cta .tc-cta__cols--grid .wp-block-button,
.tc-cta .tc-cta__cols--grid .wp-block-button .wp-block-button__link {
	width: 100%;
}
.tc-cta .tc-cta__cols--grid .wp-block-button .wp-block-button__link {
	min-height: 64px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
}
@media (max-width: 640px) {
	.tc-cta .tc-cta__cols--grid.wp-block-columns {
		grid-template-columns: 1fr;
	}
}

/* オンライン面談予約ボタン（白背景 + 角丸 + プライマリ枠 + PCアイコン） */
.tc-cta .is-style-button-online .wp-block-button__link.tc-cta-online {
	display: grid !important;
	grid-template-columns: auto auto;
	align-items: center;
	justify-content: center;
	column-gap: 12px;
	row-gap: 0;
	min-height: 72px;
	background: #fff !important;
	color: var(--color-primary, #0d47a1) !important;
	border: 1px solid color-mix(in srgb, var(--color-primary, #0d47a1) 20%, transparent) !important;
	border-radius: 12px;
	padding: 10px 16px;
	font-weight: 700;
	letter-spacing: 0.04em;
	box-shadow: 0 2px 8px rgba(15, 36, 80, 0.04);
	position: relative;
	transition: background-color 0.2s, color 0.2s, border-color 0.2s, box-shadow 0.2s;
	text-align: left;
}
.tc-cta .is-style-button-online .wp-block-button__link.tc-cta-online::before {
	content: "";
	grid-column: 1;
	grid-row: 1 / span 2;
	display: block;
	width: 22px;
	height: 22px;
	background-color: var(--color-primary, #0d47a1);
	transition: background-color 0.2s;
	-webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M3 5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2h-5l1 2h2a1 1 0 1 1 0 2H9a1 1 0 1 1 0-2h2l1-2H5a2 2 0 0 1-2-2V5zm2 0v10h14V5H5z'/></svg>") no-repeat center / 22px 22px;
	mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M3 5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2h-5l1 2h2a1 1 0 1 1 0 2H9a1 1 0 1 1 0-2h2l1-2H5a2 2 0 0 1-2-2V5zm2 0v10h14V5H5z'/></svg>") no-repeat center / 22px 22px;
}
/* ホバー時はアイコンの色だけ白に反転 */
@media (any-hover: hover) {
	.tc-cta .is-style-button-online .wp-block-button__link.tc-cta-online:hover::before {
		background-color: #ffffff;
	}
}
.tc-cta .is-style-button-online .wp-block-button__link.tc-cta-online .tc-cta-online__main {
	grid-column: 2;
	grid-row: 1;
	display: block;
	font-size: 16px;
	line-height: 1.4;
}
.tc-cta .is-style-button-online .wp-block-button__link.tc-cta-online .tc-cta-online__sub {
	grid-column: 2;
	grid-row: 2;
	display: block;
	font-size: 12px;
	font-weight: 500;
	line-height: 1.4;
	color: var(--color-neutral-strong, #5a6680);
	letter-spacing: 0;
}
@media (any-hover: hover) {
	.tc-cta .is-style-button-online .wp-block-button__link.tc-cta-online:hover {
		background: var(--color-primary, #0d47a1) !important;
		color: #fff !important;
		border-color: var(--color-primary, #0d47a1) !important;
		box-shadow: 0 6px 16px rgba(13, 71, 161, 0.18);
	}
	.tc-cta .is-style-button-online .wp-block-button__link.tc-cta-online:hover .tc-cta-online__sub {
		color: rgba(255, 255, 255, 0.9);
	}
}
@media (max-width: 480px) {
	.tc-cta .is-style-button-online .wp-block-button__link.tc-cta-online .tc-cta-online__sub {
		font-size: 11px;
	}
}
@media (min-width: 782px) {
	.tc-cta .tc-cta__cols.wp-block-columns:not(.tc-cta__cols--grid) {
		flex-wrap: nowrap;
	}
	.tc-cta .tc-cta__cols:not(.tc-cta__cols--grid) .wp-block-column {
		flex-basis: 0;
		flex-grow: 1;
		min-width: 0;
	}
}
.tc-cta .tc-cta__actions .wp-block-buttons {
	width: 100%;
}
.tc-cta .tc-cta__actions .wp-block-button {
	width: 100%;
}
.tc-cta .tc-cta__actions .wp-block-button .wp-block-button__link {
	width: 100%;
	box-sizing: border-box;
	justify-content: center;
}

/* アクセス */
.tc-access {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--spacing-24);
}
.tc-access__map {
	border-radius: var(--border-radius-8);
	overflow: hidden;
	border: 1px solid var(--color-neutral-soft);
	background: var(--color-neutral-soft);
	min-height: 0;
}
.tc-access__map-embed {
	position: relative;
	width: 100%;
	aspect-ratio: 600 / 450;
	max-height: min(70vh, 520px);
}
.tc-access__map-embed iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
	display: block;
}
.tc-access__info {
	background: var(--color-base-body);
	padding: var(--spacing-24);
}
.tc-access__place {
	font-weight: 700;
	color: var(--color-contrast);
}
.tc-access__addr {
	margin: var(--spacing-16) 0 0;
	line-height: 1.9;
	font-size: var(--font-size-small);
}

/* 強みページ — ヘッダーはサービス一覧と共通。本文ブロックはサービス一覧リスト風 */
.tc-strength-page__entry {
	min-width: 0;
}
.tc-strength-page__empty {
	margin: 0;
	text-align: center;
	color: var(--color-neutral-medium);
	line-height: 1.8;
	font-size: var(--font-size-base);
}
/* 強みカード（トップの Point カード用・既定は強みページ内のみサービス一覧風に上書き） */
.tc-strength-points {
	display: flex;
	flex-direction: column;
	gap: var(--spacing-32);
	max-width: 800px;
	margin-inline: auto;
}
.tc-strength-card {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	min-width: 0;
}
.tc-strength-card__point {
	position: relative;
	z-index: 2;
	text-align: center;
	color: var(--color-primary);
	font-family: var(--wp--preset--font-family--tenor-sans, "Tenor Sans", serif);
	line-height: 1;
	text-transform: uppercase;
	margin: 0;
	padding: 0;
}
.tc-strength-card__point-label {
	display: block;
	font-size: var(--font-size-small);
	font-weight: 600;
	letter-spacing: 0.12em;
}
.tc-strength-card__point-num {
	display: block;
	margin-top: var(--spacing-8);
	font-size: clamp(1.75rem, 3vw, 2.25rem);
	font-weight: 400;
	letter-spacing: 0.02em;
	color: var(--color-primary);
}
.tc-strength-card__main {
	margin-top: -18px;
	position: relative;
	z-index: 1;
	box-sizing: border-box;
	padding: var(--spacing-32) var(--spacing-24) var(--spacing-24);
	background: var(--color-base-body);
	border: 1px solid var(--color-neutral-soft);
	border-radius: var(--border-radius-8);
}
.tc-strength-card__title {
	margin: 0;
	font-size: var(--font-size-large);
	font-weight: 700;
	line-height: 1.5;
	color: var(--color-contrast);
	text-align: center;
}
.tc-strength-card__content {
	margin-top: var(--spacing-16);
	font-size: var(--font-size-base);
	line-height: 1.8;
	color: var(--color-contrast);
}
.tc-strength-card__content p {
	margin: 0 0 var(--spacing-16);
}
.tc-strength-card__content p:last-child {
	margin-bottom: 0;
}
.tc-strength-card__list {
	margin: var(--spacing-8) 0 0;
	padding-left: 1.25em;
	list-style: disc;
}
.tc-strength-card__list li {
	margin-top: var(--spacing-8);
}
.tc-strength-card__list li:first-child {
	margin-top: 0;
}

/* 強み固定ページ — 上品なカードレイアウト（左バッジ＋見出し＋本文） */
.tc-strength-page .tc-strength-points {
	display: grid;
	gap: var(--spacing-32);
	max-width: none;
	margin-inline: 0;
}
.tc-strength-page .tc-strength-card {
	display: grid;
	grid-template-columns: clamp(80px, 16%, 132px) 1fr;
	column-gap: var(--spacing-32);
	row-gap: var(--spacing-16);
	align-items: start;
	padding: var(--spacing-32) var(--spacing-32);
	background: var(--color-base-body);
	border: 1px solid var(--color-neutral-soft);
	border-radius: var(--border-radius-16, 16px);
	box-shadow: 0 2px 12px rgba(15, 36, 80, 0.04);
	box-sizing: border-box;
	transition: transform 0.2s, box-shadow 0.2s;
}
.tc-strength-page .tc-strength-card:hover {
	transform: translateY(-1px);
	box-shadow: 0 6px 20px rgba(15, 36, 80, 0.06);
}
.tc-strength-page .tc-strength-card__point {
	position: static;
	z-index: auto;
	grid-column: 1;
	grid-row: 1 / span 2;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	text-align: center;
	gap: var(--spacing-8);
	margin: 0;
	padding: var(--spacing-16) 0;
	background: var(--color-base-primary, #f1f6ff);
	border-radius: var(--border-radius-8);
	color: var(--color-primary);
	text-transform: uppercase;
	font-family: var(--wp--preset--font-family--tenor-sans, "Tenor Sans", serif);
	line-height: 1;
	box-sizing: border-box;
}
.tc-strength-page .tc-strength-card__point-label {
	display: block;
	font-size: var(--font-size-small);
	font-weight: 600;
	letter-spacing: 0.18em;
	color: var(--color-primary);
}
.tc-strength-page .tc-strength-card__point-num {
	display: block;
	margin: 0;
	font-size: clamp(1.6rem, 3vw, 2.25rem);
	font-weight: 400;
	letter-spacing: 0.04em;
	color: var(--color-primary);
}
.tc-strength-page .tc-strength-card__main {
	grid-column: 2;
	grid-row: 1 / span 2;
	margin: 0;
	padding: 0;
	background: transparent;
	border: none;
	border-radius: 0;
	display: flex;
	flex-direction: column;
	gap: var(--spacing-16);
}
.tc-strength-page .tc-strength-card__title {
	margin: 0;
	padding-bottom: var(--spacing-8);
	border-bottom: 1px solid var(--color-neutral-soft);
	font-size: var(--font-size-x-large);
	font-weight: 700;
	line-height: 1.45;
	color: var(--color-contrast);
	text-align: left;
}
.tc-strength-page .tc-strength-card__content {
	margin: 0;
	line-height: 1.9;
	color: var(--color-contrast);
}
.tc-strength-page .tc-strength-card__list {
	margin: var(--spacing-8) 0 0;
	padding-left: 0;
	list-style: none;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--spacing-8) var(--spacing-16);
}
.tc-strength-page .tc-strength-card__list li {
	position: relative;
	margin: 0;
	padding-left: 1em;
	color: var(--color-contrast);
}
.tc-strength-page .tc-strength-card__list li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.65em;
	width: 0.4em;
	height: 0.4em;
	border-radius: 50%;
	background: var(--color-primary);
}
@media (max-width: 640px) {
	.tc-strength-page .tc-strength-card {
		grid-template-columns: 1fr;
		padding: var(--spacing-24);
		row-gap: var(--spacing-16);
	}
	.tc-strength-page .tc-strength-card__point {
		grid-column: 1;
		grid-row: 1;
		flex-direction: row;
		justify-content: flex-start;
		padding: var(--spacing-8) var(--spacing-16);
	}
	.tc-strength-page .tc-strength-card__main {
		grid-column: 1;
		grid-row: 2;
	}
	.tc-strength-page .tc-strength-card__list {
		grid-template-columns: 1fr;
	}
}

/* レスポンシブ */
@media (max-width: 1023px) {
	.tc-features3,
	.tc-services3,
	.tc-flow__columns,
	.tc-docs3 {
		grid-template-columns: 1fr;
	}
	.tc-message {
		grid-template-columns: 1fr;
	}
	.tc-access {
		grid-template-columns: 1fr;
	}
	.tc-seminar-grid {
		grid-template-columns: 1fr;
		max-width: 420px;
	}
}
@media (max-width: 640px) {
	.tc-top-link__title {
		font-size: var(--font-size-base);
	}
	.tc-news__item {
		flex-direction: column;
		align-items: flex-start;
		gap: var(--spacing-8);
	}
	.tc-news__date {
		flex: 0 0 auto;
	}
}

.tc-muted {
	color: var(--color-neutral-strong);
	font-size: var(--font-size-small);
}

/* ご契約の流れページ /flow/ — https://www.tokai-sr.jp/flow/ */
.tc-flow-page__steps-wrap {
	padding-block: var(--spacing-40);
}
.tc-flow-page__body {
	display: flex;
	flex-direction: column;
	gap: var(--spacing-16);
}
.tc-flow-page__texts {
	display: flex;
	flex-direction: column;
	gap: var(--spacing-16);
}
.tc-flow-page__para {
	margin: 0;
	text-align: left;
	line-height: 1.85;
	color: var(--color-contrast);
}
.tc-flow-page__img-caption {
	margin: 0;
	text-align: center;
	font-size: var(--font-size-small);
	font-weight: 700;
	line-height: 1.6;
	color: var(--color-primary);
}
.tc-flow-page__editor-wrap {
	margin-top: 0;
}
.tc-flow-page__cta {
	padding-block: var(--spacing-80);
	background: var(--color-base-primary);
}
.tc-flow-page__cta-inner {
	text-align: center;
	max-width: 56rem;
	margin-inline: auto;
}
.tc-flow-page__cta-title {
	margin: 0;
	font-size: var(--font-size-2x-large);
	font-weight: 700;
	line-height: 1.45;
	color: var(--color-primary);
}
.tc-flow-page__cta-lead {
	margin: var(--spacing-16) 0 0;
	line-height: 1.85;
	color: var(--color-contrast);
}

/* サブページ共通キービジュアル（強みページなど） */
.tc-subpage__hero-figure {
	margin: 0;
	padding-block: 0 var(--spacing-32);
}
.tc-subpage__hero-media {
	margin: 0;
	border-radius: var(--border-radius-8);
	overflow: hidden;
	border: 1px solid var(--color-neutral-medium);
	box-sizing: border-box;
}
.tc-subpage__hero-img {
	display: block;
	width: 100%;
	height: auto;
	vertical-align: middle;
}

/* サービス一覧（/service/）— とうかい公式のページヘッダー構造に合わせる */
.tc-service-tokai-header .tc-service-tokai__catch {
	margin: 0;
	font-size: var(--font-size-large);
	font-weight: 700;
	color: var(--color-primary);
}
.tc-service-tokai-header .tc-service-tokai__intro {
	margin: var(--spacing-16) 0 0;
	max-width: 52rem;
	margin-inline: auto;
	line-height: 1.85;
	text-align: center;
}
.tc-service-tokai-header .tc-service-tokai__note {
	margin: var(--spacing-24) auto 0;
	max-width: 40rem;
	text-align: center;
	line-height: 1.75;
}
.tc-service-tokai-body {
	padding-block: var(--spacing-40);
}
.tc-service-tokai__section-head {
	text-align: center;
	margin-bottom: var(--spacing-40);
}
.tc-service-tokai__section-head .tc-section__sub a {
	color: var(--color-accent);
	font-weight: 600;
	text-decoration: underline;
}
.tc-service-tokai__list {
	display: grid;
	gap: var(--spacing-40);
}
.tc-service-tokai__block {
	padding-bottom: var(--spacing-32);
	border-bottom: 1px solid var(--color-neutral-medium);
}
.tc-service-tokai__block:last-child {
	border-bottom: none;
	padding-bottom: 0;
}
.tc-service-tokai__block-title {
	margin: 0 0 var(--spacing-16);
	font-size: var(--font-size-x-large);
	font-weight: 700;
	line-height: 1.45;
	color: var(--color-contrast);
}
.tc-service-tokai__block-lead {
	margin: 0;
	line-height: 1.9;
	color: var(--color-contrast);
}
.tc-service-tokai__tags {
	list-style: none;
	margin: var(--spacing-16) 0 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: var(--spacing-8);
}
.tc-service-tokai__tags li {
	font-size: var(--font-size-small);
	padding: 0.35em 0.75em;
	background: var(--color-base-primary);
	border-radius: var(--border-radius-4);
	color: var(--color-neutral-strong);
	font-weight: 600;
}
.tc-service-tokai__block-more {
	margin: var(--spacing-24) 0 0;
}
.tc-service-tokai__editor {
	margin-bottom: var(--spacing-40);
}

/* 業務分野ディテール — リアライ風（黄ヒーロー＋セクション） */
.tc-sdetail__breadcrumb,
.tc-flow-page__breadcrumb {
	padding-block: var(--spacing-16);
	font-size: var(--font-size-small);
}
.tc-sdetail__breadcrumb ol,
.tc-flow-page__breadcrumb ol {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: var(--spacing-8);
	align-items: center;
}
.tc-sdetail__breadcrumb li:not(:last-child)::after,
.tc-flow-page__breadcrumb li:not(:last-child)::after {
	content: "/";
	margin-left: var(--spacing-8);
	color: var(--color-neutral-medium);
}
.tc-sdetail__breadcrumb a,
.tc-flow-page__breadcrumb a {
	color: var(--color-primary);
	font-weight: 600;
	text-decoration: none;
}
.tc-sdetail__breadcrumb a:hover,
.tc-flow-page__breadcrumb a:hover {
	text-decoration: underline;
}
/* 業務分野ディテール — サービス一覧／強みページと同系のトーン */
.tc-sdetail .tc-service-tokai-header {
	padding-block: var(--spacing-32) var(--spacing-40);
}
.tc-sdetail__hero-tags {
	margin-top: var(--spacing-24);
	justify-content: center;
}
.tc-sdetail__section + .tc-sdetail__section {
	margin-top: var(--spacing-80);
}

/* 「こんなお悩みはありませんか？」 — 公式 base-primary 背景のチェックリスト */
.tc-sdetail__check-list {
	list-style: none;
	margin: 0;
	padding: var(--spacing-24) clamp(16px, 3vw, 32px);
	background: var(--color-base-primary, #f1f6ff);
	border-radius: var(--border-radius-8);
	display: flex;
	flex-direction: column;
	gap: var(--spacing-16);
}
.tc-sdetail__check-list li {
	position: relative;
	padding-left: 1.75em;
	line-height: 1.85;
	color: var(--color-contrast);
}
.tc-sdetail__check-list li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.55em;
	width: 1em;
	height: 1em;
	background: var(--color-primary);
	-webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='black' d='M9 16.17 4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z'/></svg>");
	mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='black' d='M9 16.17 4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z'/></svg>");
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-position: center;
	mask-position: center;
	-webkit-mask-size: contain;
	mask-size: contain;
}

/* サービス内容 — 連番バッジ＋本文のシンプルカード（控えめ・読みやすい） */
.tc-sdetail__list {
	display: grid;
	gap: var(--spacing-16);
}
.tc-sdetail__block {
	display: grid;
	grid-template-columns: 2.5rem 1fr;
	column-gap: var(--spacing-16);
	align-items: center;
	padding: var(--spacing-16) var(--spacing-24);
	background: var(--color-base-body);
	border: 1px solid var(--color-neutral-soft);
	border-left: 4px solid var(--color-primary);
	border-radius: var(--border-radius-8);
	transition: background-color 0.2s, border-color 0.2s;
}
.tc-sdetail__block-num {
	margin: 0;
	width: 2.5rem;
	height: 2.5rem;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	background: var(--color-base-primary, #f1f6ff);
	color: var(--color-primary);
	font-family: var(--wp--preset--font-family--tenor-sans, "Tenor Sans", serif);
	font-size: var(--font-size-base);
	font-weight: 600;
	letter-spacing: 0.02em;
	line-height: 1;
}
.tc-sdetail__block-title {
	margin: 0;
	font-size: var(--font-size-base);
	font-weight: 600;
	line-height: 1.7;
	color: var(--color-contrast);
}

/* 私たちの強み — チェックアイコン付きの上品なカードグリッド */
.tc-sdetail__strength-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--spacing-16);
}
.tc-sdetail__strength-list li {
	position: relative;
	padding: var(--spacing-16) var(--spacing-24) var(--spacing-16) calc(var(--spacing-24) + 2em);
	background: var(--color-base-primary, #f1f6ff);
	border-radius: var(--border-radius-8);
	line-height: 1.7;
	color: var(--color-contrast);
	font-weight: 600;
	box-sizing: border-box;
}
.tc-sdetail__strength-list li::before {
	content: "";
	position: absolute;
	left: var(--spacing-16);
	top: 50%;
	transform: translateY(-50%);
	width: 1.5em;
	height: 1.5em;
	border-radius: 50%;
	background: var(--color-primary);
	-webkit-mask-image: none;
	mask-image: none;
}
.tc-sdetail__strength-list li::after {
	content: "";
	position: absolute;
	left: calc(var(--spacing-16) + 0.3em);
	top: 50%;
	transform: translateY(-50%);
	width: 0.9em;
	height: 0.9em;
	background: var(--color-base-body);
	-webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='black' d='M9 16.17 4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z'/></svg>");
	mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='black' d='M9 16.17 4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z'/></svg>");
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-position: center;
	mask-position: center;
	-webkit-mask-size: contain;
	mask-size: contain;
}
@media (max-width: 640px) {
	.tc-sdetail__strength-list {
		grid-template-columns: 1fr;
	}
}

.tc-sdetail__h3 {
	margin: 0 0 var(--spacing-8);
	font-size: var(--font-size-large);
	font-weight: 700;
}
.tc-sdetail__flow {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: var(--spacing-32);
	counter-reset: tc-sdetail-flow;
}
.tc-sdetail__flow > li {
	counter-increment: tc-sdetail-flow;
	display: grid;
	grid-template-columns: 3.25rem 1fr;
	column-gap: var(--spacing-16);
	row-gap: var(--spacing-8);
	align-items: start;
}
.tc-sdetail__flow > li::before {
	grid-column: 1;
	grid-row: 1 / span 2;
	content: counter(tc-sdetail-flow);
	align-self: start;
	box-sizing: border-box;
	width: 3.25rem;
	height: 3.25rem;
	border-radius: 50%;
	font-size: clamp(1.2rem, 2.8vw, 1.5rem);
	font-weight: 700;
	line-height: 3.25rem;
	text-align: center;
	color: var(--color-base-body);
	background: var(--color-primary);
}
.tc-sdetail__flow > li .tc-sdetail__h3 {
	grid-column: 2;
	grid-row: 1;
	margin: 0;
	padding-top: 0.2rem;
}
.tc-sdetail__flow > li > p {
	grid-column: 2;
	grid-row: 2;
	margin: 0;
	line-height: 1.85;
}
.tc-sdetail__body .tc-section__foot {
	margin-top: var(--spacing-80);
}

/* 共通ページヘッダー（英語ラベル + 日本語タイトル） */
.tc-page-mv .tc-page-mv__kicker {
	margin: 0 0 var(--spacing-8);
	text-align: center;
	font-size: var(--font-size-small);
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--color-primary);
}
.tc-page-intro,
.tc-sdetail__hero-intro {
	margin: 0 0 var(--spacing-32);
}

/* メディアページ — https://reali-sr-office.com/media/ */
.tc-media-page__body {
	padding-block: var(--spacing-40) var(--spacing-80);
}
.tc-media-page__section {
	margin-bottom: var(--spacing-80);
}
.tc-media-page__section:last-child {
	margin-bottom: 0;
}
.tc-media-page__h2 {
	margin: 0 0 var(--spacing-32);
	font-size: var(--font-size-x-large);
	font-weight: 700;
	color: var(--color-contrast);
	border-bottom: 2px solid var(--color-primary);
	padding-bottom: var(--spacing-8);
}
.tc-media-page__books {
	display: grid;
	gap: var(--spacing-40);
}
.tc-media-page__book {
	display: grid;
	grid-template-columns: minmax(0, 220px) minmax(0, 1fr);
	gap: var(--spacing-24);
	align-items: start;
	padding: var(--spacing-24);
	background: var(--color-base-primary);
	border-radius: var(--border-radius-8);
}
.tc-media-page__book-cover {
	display: block;
	border-radius: var(--border-radius-4);
	overflow: hidden;
	box-shadow: 0 8px 24px rgb(0 0 0 / 10%);
	text-decoration: none;
}
.tc-media-page__book-cover img {
	width: 100%;
	height: auto;
	display: block;
	vertical-align: bottom;
}
.tc-media-page__book-text {
	min-width: 0;
}
.tc-media-page__book-text p {
	margin: 0 0 var(--spacing-16);
	line-height: 1.85;
	color: var(--color-contrast);
}
.tc-media-page__book-text p:last-child {
	margin-bottom: 0;
}

/* 「Amazonで購入」ボタンを書籍テキストの右下に配置 */
.tc-media-page__book-cta {
	margin-top: var(--spacing-24, 24px);
	display: flex;
	justify-content: flex-end;
}
.tc-amazon-btn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 10px 18px;
	background: linear-gradient(180deg, #ffd814 0%, #f7ca00 50%, #f0b800 100%);
	border: 1px solid #e3a300;
	border-radius: 999px;
	color: #111;
	font-size: 14px;
	font-weight: 700;
	line-height: 1.2;
	text-decoration: none;
	box-shadow: 0 2px 4px rgba(15, 17, 17, 0.15);
	transition: filter 0.15s ease, transform 0.15s ease, box-shadow 0.15s ease;
}
.tc-amazon-btn:hover,
.tc-amazon-btn:focus-visible {
	filter: brightness(1.04);
	box-shadow: 0 4px 10px rgba(15, 17, 17, 0.2);
	transform: translateY(-1px);
	color: #111;
	text-decoration: none;
}
.tc-amazon-btn:active {
	transform: translateY(0);
	filter: brightness(0.97);
}
.tc-amazon-btn__icon {
	display: inline-flex;
	align-items: center;
	color: #111;
}
.tc-amazon-btn__icon svg {
	display: block;
	height: 18px;
	width: auto;
}
.tc-amazon-btn__label {
	font-weight: 700;
	letter-spacing: 0.02em;
}

@media (max-width: 600px) {
	.tc-media-page__book-cta {
		justify-content: center;
		margin-top: var(--spacing-16, 16px);
	}
	.tc-amazon-btn {
		width: 100%;
		max-width: 280px;
		justify-content: center;
		padding: 12px 18px;
	}
}
.tc-media-page__book-title {
	margin: 0 0 var(--spacing-8);
	font-size: var(--font-size-large);
	font-weight: 700;
	line-height: 1.5;
	color: var(--color-primary);
}
.tc-media-page__book-sub {
	margin: 0 0 var(--spacing-16);
	font-size: var(--font-size-base);
	font-weight: 600;
	line-height: 1.6;
	color: var(--color-contrast);
}
.tc-media-page__section--sns {
	background: var(--color-base-body);
	border: 1px solid var(--color-neutral-soft);
	border-radius: var(--border-radius-8);
	padding: var(--spacing-32);
}
.tc-media-page__h3 {
	margin: 0 0 var(--spacing-8);
	font-size: var(--font-size-large);
	font-weight: 700;
	color: var(--color-primary);
}
.tc-media-page__sns-lead {
	margin: 0 0 var(--spacing-24);
	font-size: var(--font-size-large);
	font-weight: 700;
	line-height: 1.5;
	color: var(--color-contrast);
}
.tc-media-page__section--sns > p {
	margin: 0 0 var(--spacing-16);
	line-height: 1.85;
	color: var(--color-contrast);
}
.tc-media-page__sns-links {
	list-style: none;
	margin: var(--spacing-32) 0 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: var(--spacing-32, 32px);
	justify-content: flex-start;
	align-items: flex-start;
}
.tc-media-page__sns-links li {
	margin: 0;
	flex: 0 1 280px;
}
.tc-media-page__sns-card {
	display: inline-flex;
	flex-direction: row;
	align-items: center;
	gap: var(--spacing-8);
	text-decoration: none;
	color: var(--color-contrast);
	font-size: var(--font-size-base);
	font-weight: 600;
	line-height: 1.4;
	padding: 0;
	border: none;
	background: transparent;
	box-shadow: none;
	transition: opacity 0.2s;
}
.tc-media-page__sns-card:hover {
	opacity: 0.85;
	text-decoration: none;
	color: var(--color-primary);
}
.tc-media-page__sns-icon {
	display: block;
	flex-shrink: 0;
	width: 56px;
	height: 56px;
}
.tc-media-page__sns-icon--svg svg {
	display: block;
	width: 56px;
	height: 56px;
}
.tc-media-page__sns-label {
	display: inline-block;
}

/* SNS プレビューカード（Instagram / YouTube のスマホスクショを大きめに見せる） */
.tc-media-page__sns-card--preview {
	flex-direction: column;
	align-items: center;
	gap: var(--spacing-16, 16px);
	width: 100%;
	font-size: var(--font-size-large, 18px);
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.tc-media-page__sns-card--preview:hover {
	opacity: 1;
	transform: translateY(-4px);
}
.tc-media-page__sns-preview {
	display: block;
	width: 100%;
	max-width: 280px;
	border-radius: 16px;
	overflow: hidden;
	box-shadow: 0 8px 24px rgba(15, 36, 80, 0.12);
	transition: box-shadow 0.2s ease;
}
.tc-media-page__sns-card--preview:hover .tc-media-page__sns-preview {
	box-shadow: 0 14px 32px rgba(15, 36, 80, 0.18);
}
.tc-media-page__sns-preview img {
	display: block;
	width: 100%;
	height: auto;
	background: #f7f8fa;
}
.tc-media-page__sns-card--preview .tc-media-page__sns-label {
	font-weight: 700;
	letter-spacing: 0.04em;
	color: var(--color-primary, #0d47a1);
}
@media (max-width: 768px) {
	.tc-media-page__book {
		grid-template-columns: minmax(0, 1fr);
	}
	.tc-media-page__book-cover {
		max-width: 280px;
		margin-inline: auto;
	}
}

/* 事務所について — https://reali-sr-office.com/company */
.tc-company-page__body {
	padding-block: 0 calc(var(--spacing-80) + var(--spacing-24));
}
.tc-company-page__section {
	padding-block: calc(var(--spacing-80) + var(--spacing-16));
}
.tc-company-page__body > .tc-company-page__section:first-child {
	padding-top: calc(var(--spacing-80) + var(--spacing-24));
}
.tc-company-page__section--message {
	background: var(--color-base-primary);
}
.tc-company-page__section--philosophy {
	background: #ffde5e;
}
.tc-company-page__section--staff,
.tc-company-page__section--overview {
	background: var(--color-base-body);
}
.tc-company-page__section--access {
	background: var(--color-base-primary);
	border-block: 1px solid var(--color-neutral-soft);
}
.tc-company-page__label {
	margin: 0 0 var(--spacing-8);
	font-size: var(--font-size-small);
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--color-primary);
}
.tc-company-page__h2 {
	margin: 0 0 var(--spacing-32);
	font-size: var(--font-size-x-large);
	font-weight: 700;
	color: var(--color-contrast);
	border-bottom: 2px solid var(--color-primary);
	padding-bottom: var(--spacing-8);
}
.tc-company-page__message-grid {
	display: grid;
	grid-template-columns: minmax(0, 320px) minmax(0, 1fr);
	gap: var(--spacing-40);
	align-items: start;
}
.tc-company-page__message-photo {
	margin: 0;
	border-radius: var(--border-radius-8);
	overflow: hidden;
	box-shadow: 0 8px 24px rgb(0 0 0 / 10%);
}
.tc-company-page__message-photo img {
	display: block;
	width: 100%;
	height: auto;
	vertical-align: bottom;
}
.tc-company-page__message-lead {
	margin: 0 0 var(--spacing-24);
	font-size: var(--font-size-large);
	font-weight: 700;
	line-height: 1.55;
	color: var(--color-primary);
}
.tc-company-page__prose p {
	margin: 0 0 var(--spacing-16);
	line-height: 1.85;
	color: var(--color-contrast);
}
.tc-company-page__prose p:last-child {
	margin-bottom: 0;
}
.tc-company-page__prose--center {
	max-width: 48rem;
	margin-inline: auto;
	text-align: center;
}
.tc-company-page__rep-line {
	margin: var(--spacing-32) 0 var(--spacing-8);
	font-size: var(--font-size-small);
	font-weight: 600;
	line-height: 1.7;
	color: var(--color-contrast);
}
.tc-company-page__rep-name {
	margin: 0 0 var(--spacing-24);
	font-size: var(--font-size-large);
	font-weight: 700;
	color: var(--color-contrast);
}
.tc-company-page__subhead {
	margin: 0 0 var(--spacing-8);
	font-size: var(--font-size-base);
	font-weight: 700;
	letter-spacing: 0.08em;
	color: var(--color-primary);
}
.tc-company-page__profile {
	margin: 0;
	line-height: 1.85;
	color: var(--color-contrast);
}
.tc-company-page__philosophy-lead {
	margin: 0 0 var(--spacing-32);
	font-size: var(--font-size-x-large);
	font-weight: 700;
	line-height: 1.5;
	text-align: center;
	color: var(--color-contrast);
}
.tc-company-page__staff-photos {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--spacing-24);
}
.tc-company-page__staff-figure {
	margin: 0;
	border-radius: var(--border-radius-8);
	overflow: hidden;
	box-shadow: 0 4px 20px rgb(0 0 0 / 8%);
}
.tc-company-page__staff-figure img {
	display: block;
	width: 100%;
	height: auto;
	vertical-align: bottom;
}
.tc-company-page__dl {
	margin: 0;
	display: grid;
	gap: 0;
	max-width: 48rem;
}
.tc-company-page__dl-row {
	display: grid;
	grid-template-columns: minmax(0, 140px) minmax(0, 1fr);
	gap: var(--spacing-16) var(--spacing-24);
	padding-block: var(--spacing-16);
	border-bottom: 1px solid var(--color-neutral-soft);
}
.tc-company-page__dl-row:first-child {
	padding-top: 0;
}
.tc-company-page__dl-row:last-child {
	border-bottom: none;
	padding-bottom: 0;
}
.tc-company-page__dl dt {
	margin: 0;
	font-weight: 700;
	color: var(--color-primary);
}
.tc-company-page__dl dd {
	margin: 0;
	line-height: 1.75;
	color: var(--color-contrast);
}
.tc-company-page__dl a {
	color: var(--color-primary);
	font-weight: 600;
}
.tc-company-page__access-address {
	margin: 0 0 var(--spacing-16);
	line-height: 1.85;
	font-weight: 600;
	color: var(--color-contrast);
}
.tc-company-page__maps-link-wrap {
	margin: 0 0 var(--spacing-32);
}
.tc-company-page__maps-link {
	display: inline-flex;
	font-weight: 700;
	color: var(--color-primary);
	text-decoration: underline;
	text-underline-offset: 3px;
}
.tc-company-page__maps-link:hover {
	opacity: 0.85;
}
.tc-company-page__access-sub {
	margin: var(--spacing-24) 0 var(--spacing-8);
	font-size: var(--font-size-base);
	font-weight: 700;
	color: var(--color-contrast);
}
.tc-company-page__access-note {
	margin: 0;
	line-height: 1.85;
	color: var(--color-contrast);
}
.tc-company-page__cta {
	padding-block: calc(var(--spacing-80) + var(--spacing-24));
	background: var(--color-base-primary);
	border-top: 1px solid var(--color-neutral-soft);
}
.tc-company-page__cta-inner {
	text-align: center;
	max-width: 56rem;
	margin-inline: auto;
}
.tc-company-page__cta-title {
	margin: 0;
	font-size: var(--font-size-2x-large);
	font-weight: 700;
	line-height: 1.45;
	color: var(--color-primary);
}
.tc-company-page__cta-lead {
	margin: var(--spacing-16) 0 0;
	line-height: 1.85;
	color: var(--color-contrast);
}
.tc-company-page__cta-phone {
	margin: var(--spacing-24) 0 0;
	font-size: var(--font-size-x-large);
	font-weight: 700;
}
.tc-company-page__cta-phone a {
	color: var(--color-primary);
	text-decoration: none;
}
.tc-company-page__cta-phone a:hover {
	text-decoration: underline;
}
.tc-company-page__cta-hours {
	margin: var(--spacing-8) 0 0;
	font-size: var(--font-size-small);
	color: var(--color-contrast);
}
.tc-company-page__cta .tc-flow__buttons {
	margin-top: var(--spacing-32);
}
.tc-company-page__cta-buttons .wp-block-button {
	flex: 1 1 min(100%, 280px);
	max-width: 420px;
}
@media (max-width: 900px) {
	.tc-company-page__message-grid {
		grid-template-columns: minmax(0, 1fr);
	}
	.tc-company-page__message-photo {
		max-width: 360px;
		margin-inline: auto;
	}
	.tc-company-page__staff-photos {
		grid-template-columns: minmax(0, 1fr);
	}
}
@media (max-width: 600px) {
	.tc-company-page__dl-row {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* お客様の声 一覧・フォールバック — https://www.tokai-sr.jp/voice/ */
.p-page__voice-cards {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(280px, 100%), 1fr));
	gap: var(--wp--preset--spacing--24, 24px);
}
/* 一覧ページは左右余白を最小限にして、画面いっぱいにカードを並べる */
.tc-voice-archive {
	max-width: none !important;
	width: 100% !important;
	padding-inline: clamp(16px, 3vw, 40px) !important;
}
.tc-voice-archive .p-page__content {
	max-width: none !important;
}
.tc-voice-archive .p-page__main {
	max-width: none !important;
	width: 100%;
}
.p-page__voice-pagination {
	margin-top: var(--spacing-40);
	display: flex;
	justify-content: center;
}
.p-page__voice-pagination .nav-links {
	display: flex;
	flex-wrap: wrap;
	gap: var(--spacing-16);
	align-items: center;
	justify-content: center;
}
.tc-category-fallback {
	padding-block: var(--spacing-40) var(--spacing-80);
}
.tc-category-fallback__list {
	margin: 0;
	padding-left: 1.5em;
	line-height: 1.85;
}
.tc-category-fallback__list a {
	color: var(--color-primary);
	font-weight: 600;
}
.tc-voice-archive__empty {
	margin: 0;
	padding: var(--spacing-40) 0;
	text-align: center;
	color: var(--color-neutral-strong);
}

/* お問い合わせフォーム — 参考: https://reali-sr-office.com/contact ／既存トーンに統一 */
.tc-contact-page__main {
	max-width: 880px;
	margin-inline: auto;
}
.tc-contact__notice {
	margin: 0 0 var(--spacing-32);
	padding: var(--spacing-16) var(--spacing-24);
	border-radius: var(--border-radius-8);
	line-height: 1.7;
}
.tc-contact__notice-title {
	margin: 0 0 var(--spacing-8);
	font-weight: 700;
}
.tc-contact__notice--success {
	background: var(--color-base-primary, #f1f6ff);
	border: 1px solid color-mix(in srgb, var(--color-primary) 30%, transparent);
	color: var(--color-contrast);
}
.tc-contact__notice--error {
	background: #fff5f5;
	border: 1px solid #f5b5b5;
	color: #862020;
}
.tc-contact__hp {
	position: absolute !important;
	left: -10000px !important;
	top: auto;
	width: 1px;
	height: 1px;
	overflow: hidden;
}
.tc-contact__form {
	margin-top: var(--spacing-32);
	padding: clamp(20px, 4vw, 40px);
	background: var(--color-base-body);
	border: 1px solid var(--color-neutral-soft);
	border-radius: var(--border-radius-16, 16px);
	box-shadow: 0 2px 12px rgba(15, 36, 80, 0.04);
}
.tc-contact__row {
	display: grid;
	gap: var(--spacing-8);
	margin-bottom: var(--spacing-24);
}
.tc-contact__row:last-of-type {
	margin-bottom: var(--spacing-16);
}
.tc-contact__label {
	display: inline-flex;
	align-items: center;
	gap: var(--spacing-8);
	font-weight: 700;
	color: var(--color-contrast);
	line-height: 1.4;
}
.tc-contact__req {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 2px 8px;
	border-radius: 999px;
	background: var(--color-primary);
	color: var(--color-base-body);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.06em;
}
.tc-contact__input,
.tc-contact__textarea,
.tc-contact__select select {
	width: 100%;
	box-sizing: border-box;
	padding: 12px 16px;
	font-size: var(--font-size-base);
	line-height: 1.6;
	color: var(--color-contrast);
	background: var(--color-base-body);
	border: 1px solid var(--color-neutral-medium);
	border-radius: var(--border-radius-8);
	transition: border-color 0.2s, box-shadow 0.2s;
	font-family: inherit;
}
.tc-contact__input:focus,
.tc-contact__textarea:focus,
.tc-contact__select select:focus {
	outline: none;
	border-color: var(--color-primary);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-primary) 20%, transparent);
}
.tc-contact__textarea {
	min-height: 200px;
	resize: vertical;
}
.tc-contact__select {
	position: relative;
}
.tc-contact__select::after {
	content: "";
	position: absolute;
	right: 16px;
	top: 50%;
	width: 10px;
	height: 10px;
	border-right: 2px solid var(--color-neutral-strong);
	border-bottom: 2px solid var(--color-neutral-strong);
	transform: translateY(-70%) rotate(45deg);
	pointer-events: none;
}
.tc-contact__select select {
	appearance: none;
	-webkit-appearance: none;
	padding-right: 40px;
}
.tc-contact__agree {
	margin: var(--spacing-24) 0 var(--spacing-32);
	padding: var(--spacing-16) var(--spacing-24);
	background: var(--color-base-primary, #f1f6ff);
	border-radius: var(--border-radius-8);
	color: var(--color-contrast);
}
.tc-contact__check {
	display: inline-flex;
	align-items: flex-start;
	gap: var(--spacing-8);
	line-height: 1.7;
	cursor: pointer;
}
.tc-contact__check input {
	margin-top: 0.35em;
	width: 18px;
	height: 18px;
	accent-color: var(--color-primary);
	flex-shrink: 0;
}
.tc-contact__check a {
	color: var(--color-primary);
	font-weight: 600;
}
.tc-contact__submit-wrap {
	display: flex;
	justify-content: center;
}
.tc-contact__submit {
	cursor: pointer;
	font-family: inherit;
	min-width: min(100%, 320px);
}
.tc-contact__editor {
	margin-top: var(--spacing-40);
}
.tc-contact__direct {
	margin-top: var(--spacing-40);
	padding: var(--spacing-32);
	background: var(--color-base-primary, #f1f6ff);
	border-radius: var(--border-radius-16, 16px);
	text-align: center;
}
.tc-contact__direct-title {
	margin: 0 0 var(--spacing-16);
	font-size: var(--font-size-large);
	font-weight: 700;
	color: var(--color-contrast);
}
.tc-contact__direct-list {
	margin: 0;
	display: grid;
	gap: var(--spacing-8);
	justify-content: center;
}
.tc-contact__direct-list dt {
	margin: 0;
	font-size: var(--font-size-small);
	font-weight: 700;
	color: var(--color-primary);
	letter-spacing: 0.06em;
}
.tc-contact__direct-list dd {
	margin: 0;
	font-size: var(--font-size-x-large);
	font-weight: 700;
}
.tc-contact__direct-list dd a {
	color: var(--color-primary);
	text-decoration: none;
}
.tc-contact__direct-list dd a:hover {
	text-decoration: underline;
}
.tc-contact__direct-note {
	display: block;
	font-size: var(--font-size-small);
	font-weight: 500;
	color: var(--color-neutral-strong);
	margin-top: var(--spacing-8);
}
@media (max-width: 640px) {
	.tc-contact__form {
		padding: var(--spacing-24);
	}
	.tc-contact__direct-list dd {
		font-size: var(--font-size-large);
	}
}

/* お客様の声 — カタログ詳細ページ（公式テンプレ準拠 + 文字比率の整え） */
.tc-voice-article {
	font-size: 16px;
	line-height: 1.85;
	color: var(--color-contrast);
}
.tc-voice-article p {
	font-size: 16px;
	line-height: 1.85;
}
.tc-voice-article__head {
	gap: var(--spacing-32, 32px);
	align-items: flex-start;
	margin-bottom: var(--spacing-24, 24px);
}
.tc-voice-article__head-image figure {
	margin: 0;
}
.tc-voice-article__head-image img {
	display: block;
	width: 100%;
	height: auto;
}
.tc-voice-article__head-meta {
	display: flex;
	flex-direction: column;
	gap: var(--spacing-16, 16px);
}
.tc-voice-article__title-row {
	display: flex;
	align-items: baseline;
	gap: 4px;
	flex-wrap: wrap;
}
.tc-voice-article__title-row .wp-block-post-title,
.tc-voice-article .wp-block-post-title.has-x-large-font-size {
	margin: 0;
	font-size: clamp(22px, 2.6vw, 28px) !important;
	line-height: 1.45;
	font-weight: 700;
	letter-spacing: 0.01em;
}
.tc-voice-article__suffix,
.tc-voice-article__title-row p.has-x-large-font-size {
	margin: 0;
	font-size: clamp(16px, 1.8vw, 18px) !important;
	line-height: 1.45;
	font-weight: 500;
	color: var(--color-neutral-strong, #5a6680);
}
.tc-voice-article__tag-row {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 4px;
}
.tc-voice-article__tag {
	display: inline-flex;
	align-items: center;
	padding: 2px 12px !important;
	border-radius: 999px;
}
.tc-voice-article__tag p {
	margin: 0;
	font-size: 13px !important;
	line-height: 1.5;
	font-weight: 600;
}
.tc-voice-article__highlight {
	margin-block: var(--spacing-32, 32px) !important;
	padding-block: var(--spacing-24, 24px) !important;
}
.tc-voice-article__highlight p,
.tc-voice-article__highlight p.has-x-large-font-size {
	margin: 0;
	font-size: clamp(18px, 2.2vw, 22px) !important;
	line-height: 1.6;
	font-weight: 700;
	letter-spacing: 0.02em;
}
.tc-voice-article__section {
	margin-top: var(--spacing-40, 40px);
}
.tc-voice-article__section + .tc-voice-article__section {
	margin-top: var(--spacing-48, 48px);
}
.tc-voice-article__section h2,
.tc-voice-article__section h2.is-style-heading-border-left-primary {
	margin: 0 0 var(--spacing-16, 16px);
	font-size: clamp(18px, 2vw, 20px);
	line-height: 1.55;
	font-weight: 700;
}
.tc-voice-article__body {
	margin: 0 !important;
	font-size: 16px !important;
	line-height: 1.95 !important;
}
.tc-voice-article__advisor-block {
	margin-top: var(--spacing-48, 48px);
	padding-top: var(--spacing-32, 32px);
	border-top: 1px solid var(--color-neutral-soft, #e0e6f0);
}
.tc-voice-article__advisor-block + .tc-voice-article__advisor-block {
	margin-top: var(--spacing-32, 32px);
	padding-top: var(--spacing-24, 24px);
	border-top: none;
}
.tc-voice-article__advisor {
	display: flex;
	gap: 16px;
	align-items: flex-start;
}
.tc-voice-article__advisor-side {
	flex: 0 0 96px;
	display: flex;
	flex-direction: column;
	align-items: center;
}
.tc-voice-article__advisor-figure {
	margin: 0;
	width: 100%;
}
.tc-voice-article__advisor-figure img {
	display: block;
	width: 80px;
	height: 80px;
	object-fit: cover;
	margin-inline: auto;
	border-radius: 999px;
}
.tc-voice-article__advisor-label {
	margin: 8px 0 0;
	font-size: 12px !important;
	line-height: 1.5;
	font-weight: 600;
	color: var(--color-neutral-strong, #5a6680);
	text-align: center;
}
.tc-voice-article__advisor-body {
	flex: 1 1 auto;
	display: flex;
	align-items: flex-start;
	min-width: 0;
}
.tc-voice-article__advisor-body p,
.tc-voice-article__advisor-body p.is-style-paragraph-speech-bubble-left {
	position: relative;
	margin: 0;
	padding: 16px 20px;
	font-size: 15px;
	line-height: 1.85;
	background: var(--color-base-primary, #f1f6ff);
	border: 1px solid color-mix(in srgb, var(--color-primary) 18%, transparent);
	border-radius: 12px;
	color: var(--color-contrast);
}
/* デスクトップ: しっぽは左方向（左に並ぶ写真を向く） */
.tc-voice-article__advisor-body p::before,
.tc-voice-article__advisor-body p.is-style-paragraph-speech-bubble-left::before,
.tc-voice-article__advisor-body p::after,
.tc-voice-article__advisor-body p.is-style-paragraph-speech-bubble-left::after {
	content: "";
	position: absolute;
	left: -10px;
	top: 22px;
	width: 0;
	height: 0;
	border-style: solid;
	border-width: 8px 10px 8px 0;
	border-color: transparent color-mix(in srgb, var(--color-primary) 18%, transparent) transparent transparent;
}
.tc-voice-article__advisor-body p::after,
.tc-voice-article__advisor-body p.is-style-paragraph-speech-bubble-left::after {
	left: -9px;
	border-color: transparent var(--color-base-primary, #f1f6ff) transparent transparent;
}
@media (max-width: 768px) {
	.tc-voice-article__head {
		flex-direction: column;
	}
	.tc-voice-article__head-image,
	.tc-voice-article__head-meta {
		flex-basis: auto !important;
		width: 100%;
	}
	.tc-voice-article__advisor {
		flex-direction: column;
		align-items: center;
	}
	.tc-voice-article__advisor-side {
		flex-basis: auto !important;
		width: 100%;
	}
	.tc-voice-article__advisor-figure img {
		width: 72px;
		height: 72px;
	}
	.tc-voice-article__title-row .wp-block-post-title,
	.tc-voice-article .wp-block-post-title.has-x-large-font-size {
		font-size: 22px !important;
	}
	.tc-voice-article__suffix,
	.tc-voice-article__title-row p.has-x-large-font-size {
		font-size: 16px !important;
	}
	.tc-voice-article__highlight p,
	.tc-voice-article__highlight p.has-x-large-font-size {
		font-size: 18px !important;
	}
	/* モバイル(縦並び)では写真が上に来るので、しっぽを上向きに切り替え */
	.tc-voice-article__advisor-body p::before,
	.tc-voice-article__advisor-body p.is-style-paragraph-speech-bubble-left::before,
	.tc-voice-article__advisor-body p::after,
	.tc-voice-article__advisor-body p.is-style-paragraph-speech-bubble-left::after {
		left: 50%;
		top: -10px;
		transform: translateX(-50%);
		border-width: 0 8px 10px 8px;
		border-color: transparent transparent color-mix(in srgb, var(--color-primary) 18%, transparent) transparent;
	}
	.tc-voice-article__advisor-body p::after,
	.tc-voice-article__advisor-body p.is-style-paragraph-speech-bubble-left::after {
		top: -9px;
		border-color: transparent transparent var(--color-base-primary, #f1f6ff) transparent;
	}
}

/* ============================================================
 * よくある質問ページ（参考: https://www.tokai-sr.jp/qa/ ）
 * カテゴリ見出しバー + アコーディオン式 Q&A
 * ・カードはコンテナ幅いっぱいで固定（横方向の伸縮はしない）
 * ・開閉は下方向のみ（display: none ⇄ display: grid）
 * ============================================================ */
.tc-faq-page__main {
	width: 100%;
	max-width: none;
	margin-inline: 0;
}
.tc-faq-section {
	margin: 0 0 var(--spacing-48, 48px);
}
.tc-faq-section__heading {
	margin: 0 0 var(--spacing-24, 24px);
	padding: clamp(16px, 16px + var(--fluid-slope) * 2, 22px) clamp(16px, 16px + var(--fluid-slope) * 2, 24px);
	background: var(--color-base-primary, #eef3fb);
	border-left: 6px solid var(--color-primary, #1f4ea3);
	color: var(--color-primary, #1f4ea3);
	font-size: clamp(18px, 18px + var(--fluid-slope) * 4, 22px);
	font-weight: 700;
	line-height: 1.4;
	letter-spacing: 0.02em;
	border-radius: 4px;
}
.tc-faq-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: var(--spacing-12, 12px);
}
.tc-faq-item {
	width: 100%;
	margin: 0;
	background: #ffffff;
	border: 1px solid var(--color-base-primary, #e6ecf5);
	border-radius: 8px;
	box-shadow: 0 2px 6px rgba(15, 36, 80, 0.04);
	overflow: hidden;
	box-sizing: border-box;
}
.tc-faq-item__q {
	display: grid;
	grid-template-columns: auto 1fr auto;
	align-items: center;
	gap: clamp(12px, 12px + var(--fluid-slope) * 2, 18px);
	width: 100%;
	margin: 0;
	padding: clamp(16px, 16px + var(--fluid-slope) * 2, 22px) clamp(16px, 16px + var(--fluid-slope) * 2, 24px);
	background: transparent;
	border: 0;
	color: var(--color-contrast, #1a2238);
	font-family: inherit;
	font-size: clamp(15px, 15px + var(--fluid-slope) * 2, 17px);
	font-weight: 700;
	line-height: 1.55;
	text-align: left;
	cursor: pointer;
	-webkit-appearance: none;
	appearance: none;
}
.tc-faq-item__q:hover .tc-faq-item__q-text {
	color: var(--color-primary, #1f4ea3);
}
.tc-faq-item__q:focus-visible {
	outline: 2px solid var(--color-primary, #1f4ea3);
	outline-offset: -2px;
}
.tc-faq-item__mark {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	border-radius: 4px;
	font-family: 'Tenor Sans', 'Noto Sans JP', sans-serif;
	font-size: 18px;
	font-weight: 700;
	letter-spacing: 0.02em;
	flex-shrink: 0;
}
.tc-faq-item__mark--q {
	background: var(--color-base-primary, #e6ecf5);
	color: var(--color-primary, #1f4ea3);
	border: 1px solid color-mix(in srgb, var(--color-primary, #1f4ea3) 25%, transparent);
}
.tc-faq-item__mark--a {
	background: var(--color-primary, #1f4ea3);
	color: #ffffff;
}
.tc-faq-item__q-text {
	transition: color 0.2s ease;
}
.tc-faq-item__icon {
	position: relative;
	display: inline-block;
	width: 20px;
	height: 20px;
	flex-shrink: 0;
}
.tc-faq-item__icon::before,
.tc-faq-item__icon::after {
	content: '';
	position: absolute;
	left: 50%;
	top: 50%;
	background: var(--color-primary, #1f4ea3);
	transition: transform 0.25s ease, opacity 0.25s ease;
}
.tc-faq-item__icon::before {
	width: 16px;
	height: 2px;
	transform: translate(-50%, -50%);
}
.tc-faq-item__icon::after {
	width: 2px;
	height: 16px;
	transform: translate(-50%, -50%);
}
.tc-faq-item.is-open .tc-faq-item__icon::after {
	transform: translate(-50%, -50%) scaleY(0);
	opacity: 0;
}
.tc-faq-item__a {
	display: grid;
	grid-template-columns: auto 1fr;
	align-items: flex-start;
	gap: clamp(12px, 12px + var(--fluid-slope) * 2, 18px);
	margin: 0;
	padding: clamp(16px, 16px + var(--fluid-slope) * 2, 22px) clamp(16px, 16px + var(--fluid-slope) * 2, 24px);
	border-top: 1px solid var(--color-base-primary, #e6ecf5);
	background: #ffffff;
	color: var(--color-contrast, #1a2238);
	font-size: var(--font-size-base, 16px);
	line-height: 1.85;
}
.tc-faq-item__a[hidden] {
	display: none;
}
.tc-faq-item__a-text {
	min-width: 0;
}
.tc-faq-item__a-text > p {
	margin: 0 0 0.6em;
}
.tc-faq-item__a-text > p:last-child {
	margin-bottom: 0;
}
.tc-faq-page__foot {
	margin-top: var(--spacing-32, 32px);
	display: flex;
	justify-content: center;
}

@media (max-width: 600px) {
	.tc-faq-section__heading {
		font-size: 17px;
		padding: 14px 14px;
		border-left-width: 5px;
	}
	.tc-faq-item__q,
	.tc-faq-item__a {
		padding: 14px 14px;
		gap: 10px;
	}
	.tc-faq-item__mark {
		width: 30px;
		height: 30px;
		font-size: 15px;
	}
	.tc-faq-item__q {
		font-size: 14px;
	}
}

/* ============================================================
 * ヘッダー: LINEで お問い合わせ ボタン (.c-header-button.is-line)
 * 仕様: お問い合わせ（紺/赤）↔ LINE（LINE緑） ↔ 事務所サービス資料（テーマ緑） の並び
 * ============================================================ */
.c-header-button.is-line {
	background-color: #06c755;
	border-color: #06c755;
	color: #ffffff;
}
.c-header-button.is-line:hover,
.c-header-button.is-line:focus-visible {
	background-color: #05b14b;
	border-color: #05b14b;
	color: #ffffff;
}
.c-header-button.is-line .c-header-button__text {
	color: #ffffff !important;
}
/* ヘッダー連絡ボタン群（3つ）と電話番号エリアの重なり対策。
 * サイズは公式テーマのデフォルトのまま、各ブロックが互いに食い込まないよう
 * 幅と縮みの挙動だけ整理する。 */
.s-header__inner {
	gap: 16px;
}
/* 電話番号エリア：幅を固定気味にして、リード文が内部で折り返すようにする */
.s-header__tel {
	flex-shrink: 0;
	max-width: 280px;
	margin-right: 0;
}
.c-header-tel {
	width: 100%;
}
.c-header-tel__lead {
	white-space: normal;
	overflow-wrap: break-word;
	word-break: keep-all;
}
/* 連絡ボタン群：右端ぴったりに、潰れないように固定 */
.s-header__contacts {
	margin-left: auto;
	flex-shrink: 0;
}

/* ============================================================
 * お客様の声（実投稿）詳細ページ — template-parts/voice-post-single.php
 * 雛形仕様（参考スクショ準拠）：
 *   - h1（タイトル）：薄い背景バー＋左に primary 色の縦線
 *   - h2：primary 色テキスト＋下線（border-bottom）
 *   - h3：primary 色の細い左縦線アクセント
 *   - 段落：通常本文
 * 投稿本文に CMS で「見出し2/3 + 段落」を置くだけで自動適用。
 * ============================================================ */
.tc-voice-post__article {
	max-width: 880px;
	margin-inline: auto;
	padding-block: clamp(24px, 24px + var(--fluid-slope) * 6, 40px);
}

/* h1：タイトルバー（CMS本文中の h1 にも同スタイルを適用） */
.tc-voice-post__title,
.tc-voice-post__entry h1 {
	margin: 0 0 var(--spacing-32, 32px);
	padding: clamp(14px, 14px + var(--fluid-slope) * 2, 20px) clamp(18px, 18px + var(--fluid-slope) * 4, 28px);
	background: var(--tc-color-primary-soft, #e8f5ec);
	border-left: 6px solid var(--color-primary, #13963f);
	color: var(--color-primary, #13963f);
	font-size: clamp(20px, 20px + var(--fluid-slope) * 6, 26px);
	font-weight: 700;
	line-height: 1.5;
	letter-spacing: 0.02em;
	border-radius: 4px;
}

/* h2：primary 色テキスト + 下線 */
.tc-voice-post__entry h2 {
	margin: clamp(32px, 32px + var(--fluid-slope) * 6, 44px) 0 var(--spacing-16, 16px);
	padding: 0 0 10px;
	border-bottom: 2px solid color-mix(in srgb, var(--color-primary, #13963f) 30%, transparent);
	color: var(--color-primary, #13963f);
	font-size: clamp(17px, 17px + var(--fluid-slope) * 4, 20px);
	font-weight: 700;
	line-height: 1.5;
}

/* h3：primary 色の左縦線アクセント */
.tc-voice-post__entry h3 {
	margin: clamp(24px, 24px + var(--fluid-slope) * 4, 32px) 0 var(--spacing-12, 12px);
	padding: 2px 0 2px 12px;
	border-left: 3px solid var(--color-primary, #13963f);
	color: var(--color-contrast, #111827);
	font-size: clamp(15px, 15px + var(--fluid-slope) * 2, 17px);
	font-weight: 700;
	line-height: 1.5;
}

/* h4：補助見出し（必要時） */
.tc-voice-post__entry h4 {
	margin: var(--spacing-24, 24px) 0 var(--spacing-12, 12px);
	color: var(--color-contrast, #111827);
	font-size: clamp(14px, 14px + var(--fluid-slope) * 2, 16px);
	font-weight: 700;
	line-height: 1.5;
}

/* 段落 */
.tc-voice-post__entry p {
	margin: 0 0 var(--spacing-16, 16px);
	font-size: var(--font-size-base, 16px);
	line-height: 1.9;
	color: var(--color-contrast, #111827);
}

/* リスト・引用などの補助スタイル */
.tc-voice-post__entry ul,
.tc-voice-post__entry ol {
	margin: 0 0 var(--spacing-16, 16px);
	padding-left: 1.5em;
	line-height: 1.9;
}
.tc-voice-post__entry ul li,
.tc-voice-post__entry ol li {
	margin: 0 0 6px;
}
.tc-voice-post__entry blockquote {
	margin: var(--spacing-24, 24px) 0;
	padding: var(--spacing-16, 16px) var(--spacing-24, 24px);
	background: var(--color-base-primary, #f3f4f6);
	border-left: 4px solid var(--color-primary, #13963f);
	color: var(--color-contrast, #111827);
	font-size: 0.95em;
	line-height: 1.85;
}
.tc-voice-post__entry a {
	color: var(--color-primary, #13963f);
	text-decoration: underline;
	text-underline-offset: 2px;
}
.tc-voice-post__entry a:hover {
	text-decoration: none;
}

/* 「画像不要」のため、本文中の画像は出ない想定だが、万一CMSで挿入された場合の最低限の体裁 */
.tc-voice-post__entry img {
	max-width: 100%;
	height: auto;
	border-radius: 8px;
}

.tc-voice-post__foot {
	margin-top: var(--spacing-32, 32px);
	margin-bottom: clamp(64px, 8vw, 120px);
	display: flex;
	justify-content: center;
}

@media (max-width: 600px) {
	.tc-voice-post__article {
		padding-block: 20px;
	}
	.tc-voice-post__title,
	.tc-voice-post__entry h1 {
		font-size: 18px;
		padding: 14px 16px;
		border-left-width: 5px;
	}
	.tc-voice-post__entry h2 {
		font-size: 16px;
	}
	.tc-voice-post__entry h3 {
		font-size: 14px;
	}
}

/* ========================================================================== *
 * 新着情報 一覧（サムネなしカード） — お客様の声 一覧の構造を踏襲
 * ========================================================================== */

.tc-news-archive {
	padding-inline: 0;
	max-width: none;
	width: 100%;
}
.tc-news-archive .p-page__content {
	max-width: none;
	margin-inline: 0;
}
.tc-news-archive .p-page__main {
	max-width: none;
}

.p-page__news-cards {
	display: grid;
	grid-template-columns: 1fr;
	gap: clamp(16px, 2vw, 24px);
	padding: clamp(24px, 4vw, 40px) clamp(16px, 4vw, 32px);
}

@media (min-width: 769px) {
	.p-page__news-cards {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (min-width: 1100px) {
	.p-page__news-cards {
		grid-template-columns: repeat(3, 1fr);
	}
}

.c-news-card {
	background: #ffffff;
	border: 1px solid var(--color-neutral-soft, #e5e7eb);
	border-radius: 12px;
	overflow: hidden;
	transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}
.c-news-card:hover {
	border-color: var(--color-primary, #13963f);
	box-shadow: 0 8px 24px rgba(19, 150, 63, 0.12);
	transform: translateY(-2px);
}

.c-news-card__link {
	display: block;
	text-decoration: none;
	color: inherit;
	height: 100%;
}
.c-news-card__link:hover,
.c-news-card__link:focus {
	text-decoration: none;
	color: inherit;
}

.c-news-card__body {
	display: flex;
	flex-direction: column;
	gap: 12px;
	padding: clamp(20px, 2vw, 28px);
}

.c-news-card__date {
	display: inline-block;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.04em;
	color: var(--color-primary, #13963f);
	line-height: 1;
}

.c-news-card__title {
	margin: 0;
	font-size: clamp(16px, 1.2vw, 18px);
	font-weight: 700;
	line-height: 1.55;
	color: var(--color-contrast, #111827);
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.c-news-card__excerpt {
	margin: 0;
	font-size: 14px;
	line-height: 1.7;
	color: var(--color-neutral-medium, #4b5563);
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.c-news-card__more {
	margin-top: auto;
	align-self: flex-end;
	font-size: 13px;
	font-weight: 700;
	color: var(--color-primary, #13963f);
	letter-spacing: 0.04em;
	position: relative;
	padding-right: 18px;
}
.c-news-card__more::after {
	content: '';
	position: absolute;
	right: 0;
	top: 50%;
	width: 12px;
	height: 12px;
	transform: translateY(-50%);
	background-color: currentColor;
	-webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='currentColor' d='M9 6l6 6-6 6'/></svg>") center/contain no-repeat;
	mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='currentColor' d='M9 6l6 6-6 6'/></svg>") center/contain no-repeat;
}

.tc-news-archive__empty {
	padding: clamp(40px, 6vw, 80px) clamp(16px, 4vw, 32px);
	text-align: center;
	color: var(--color-neutral-medium, #4b5563);
}

.p-page__news-pagination {
	padding: 0 clamp(16px, 4vw, 32px) clamp(40px, 6vw, 80px);
}

/* ==========================================================================
   トップヒーロー（左テキスト・右写真）
   ※ このブロックが無いと .tc-top-hero__inner が縦積みになりレイアウトが崩れる
   ========================================================================== */

.tc-top-hero {
	position: relative;
	background: #ffffff;
	width: 100%;
	overflow: hidden;
	border-bottom: 1px solid rgba(13, 42, 23, 0.06);
}

.tc-top-hero__inner {
	display: grid;
	grid-template-columns: 1fr;
	width: 100%;
	max-width: none;
	margin: 0;
}

@media (min-width: 900px) {
	.tc-top-hero__inner {
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
		align-items: stretch;
		min-height: clamp(480px, 60vw, 640px);
	}
}

.tc-top-hero__content {
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: clamp(40px, 6vw, 80px) clamp(24px, 6vw, 96px);
	background: #ffffff;
}

.tc-top-hero__kicker {
	font-family: 'Outfit', 'Inter', 'Noto Sans JP', sans-serif;
	font-size: clamp(11px, 1vw, 13px);
	font-weight: 600;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: #5a7560;
	margin: 0 0 clamp(20px, 4vw, 36px);
}

.tc-top-hero__title {
	font-size: clamp(32px, 4.8vw, 60px);
	font-weight: 700;
	line-height: 1.35;
	color: #0d2a17;
	margin: 0 0 clamp(20px, 2.8vw, 32px);
	letter-spacing: 0.01em;
}

.tc-top-hero__title-line {
	display: block;
}

.tc-top-hero__title-accent {
	color: var(--color-primary, #13963f);
	position: relative;
	display: inline-block;
	padding: 0 0.06em;
}

.tc-top-hero__title-accent::after {
	content: '';
	position: absolute;
	left: 0;
	right: 0;
	bottom: -2px;
	height: 4px;
	background: var(--color-primary, #13963f);
	border-radius: 2px;
}

.tc-top-hero__desc {
	font-size: clamp(14px, 1.5vw, 16px);
	line-height: 1.95;
	color: #1f2937;
	margin: 0 0 clamp(24px, 3vw, 36px);
	max-width: 520px;
}

.tc-top-hero__actions {
	display: flex;
	align-items: center;
	gap: clamp(20px, 3vw, 36px);
	flex-wrap: wrap;
	margin: 0 0 clamp(24px, 3vw, 40px);
}

.tc-top-hero__cta {
	display: inline-flex;
	align-items: center;
	gap: 14px;
	padding: 16px clamp(22px, 2.4vw, 30px);
	background: var(--color-primary, #13963f);
	color: #ffffff !important;
	font-weight: 700;
	font-size: clamp(14px, 1.5vw, 16px);
	letter-spacing: 0.04em;
	border-radius: 6px;
	text-decoration: none;
	box-shadow: 0 6px 16px rgba(19, 150, 63, 0.22);
	transition: background 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
	white-space: nowrap;
}

.tc-top-hero__cta:hover,
.tc-top-hero__cta:focus-visible {
	background: var(--color-secondary, #1aa84a);
	transform: translateY(-1px);
	box-shadow: 0 10px 22px rgba(19, 150, 63, 0.3);
	color: #ffffff !important;
}

.tc-top-hero__cta-arrow {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 18px;
	line-height: 1;
	transition: transform 0.2s ease;
}

.tc-top-hero__cta:hover .tc-top-hero__cta-arrow,
.tc-top-hero__cta:focus-visible .tc-top-hero__cta-arrow {
	transform: translateX(4px);
}

.tc-top-hero__sub-link {
	font-size: clamp(13px, 1.4vw, 15px);
	font-weight: 700;
	color: #0d2a17;
	text-decoration: none;
	position: relative;
	padding-bottom: 4px;
	border-bottom: 1px solid currentColor;
	transition: color 0.2s ease, border-color 0.2s ease;
}

.tc-top-hero__sub-link:hover,
.tc-top-hero__sub-link:focus-visible {
	color: var(--color-primary, #13963f);
	border-bottom-color: var(--color-primary, #13963f);
}

.tc-top-hero__tags {
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	gap: 8px 10px;
	margin: 0;
	padding: 0;
}

.tc-top-hero__tag {
	display: inline-flex;
	align-items: center;
	font-size: clamp(11px, 1.1vw, 13px);
	font-weight: 500;
	color: #1f2937;
	background: #ffffff;
	border: 1px solid rgba(13, 42, 23, 0.18);
	border-radius: 4px;
	padding: 7px 12px;
	letter-spacing: 0.02em;
	line-height: 1;
}

.tc-top-hero__media {
	position: relative;
	overflow: hidden;
	min-height: clamp(260px, 60vw, 100%);
	background: #f4faf6;
}

.tc-top-hero__media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}

@media (max-width: 899px) {
	.tc-top-hero__media {
		order: -1;
		aspect-ratio: 3 / 2;
		min-height: 0;
	}
	.tc-top-hero__media img {
		height: 100%;
	}
}

.tc-top-hero + .s-top-logo {
	margin-top: 0;
}

/* ==========================================================================
   無料お役立ち資料 — ボタン化したカード
   ========================================================================== */

button.tc-doc {
	-webkit-appearance: none;
	appearance: none;
	background: transparent;
	border: 0;
	padding: 0;
	margin: 0;
	font: inherit;
	color: inherit;
	cursor: pointer;
	display: block;
	width: 100%;
	text-align: left;
	border-radius: var(--border-radius-8, 8px);
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}

button.tc-doc:hover,
button.tc-doc:focus-visible {
	transform: translateY(-2px);
	box-shadow: 0 8px 20px rgba(13, 42, 23, 0.1);
	outline: none;
}

button.tc-doc:focus-visible {
	box-shadow: 0 0 0 3px rgba(19, 150, 63, 0.35), 0 8px 20px rgba(13, 42, 23, 0.1);
}

button.tc-doc .tc-doc__thumb {
	display: block;
	overflow: hidden;
	border-radius: var(--border-radius-8, 8px);
	width: 100%;
}

button.tc-doc .tc-doc__thumb img {
	display: block;
	width: 100%;
	height: auto;
}

/* ==========================================================================
   無料お役立ち資料 — メール認証モーダル（3ステップ）
   ========================================================================== */

.tc-doc-modal {
	position: fixed;
	inset: 0;
	z-index: 9999;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 16px;
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.2s ease;
}

.tc-doc-modal[hidden] {
	display: none;
}

.tc-doc-modal.is-open {
	opacity: 1;
	pointer-events: auto;
}

.tc-doc-modal__overlay {
	position: absolute;
	inset: 0;
	background: rgba(13, 42, 23, 0.5);
	backdrop-filter: blur(2px);
	-webkit-backdrop-filter: blur(2px);
}

.tc-doc-modal__panel {
	position: relative;
	width: 100%;
	max-width: 520px;
	max-height: calc(100vh - 32px);
	overflow-y: auto;
	background: #ffffff;
	border-radius: 12px;
	padding: clamp(24px, 4vw, 36px);
	box-shadow: 0 24px 60px rgba(0, 0, 0, 0.18);
	transform: translateY(20px);
	transition: transform 0.25s ease;
}

.tc-doc-modal.is-open .tc-doc-modal__panel {
	transform: translateY(0);
}

.tc-doc-modal__close {
	position: absolute;
	top: 8px;
	right: 8px;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	background: transparent;
	border: 0;
	color: #5a7560;
	font-size: 22px;
	line-height: 1;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	transition: background 0.15s ease, color 0.15s ease;
}

.tc-doc-modal__close:hover,
.tc-doc-modal__close:focus-visible {
	background: rgba(13, 42, 23, 0.08);
	color: #0d2a17;
	outline: none;
}

.tc-doc-modal__title {
	margin: 0 24px 12px 0;
	font-size: clamp(16px, 1.8vw, 18px);
	font-weight: 700;
	line-height: 1.5;
	color: #0d2a17;
	padding-bottom: 12px;
	border-bottom: 1px solid #e5eae6;
}

.tc-doc-modal__desc {
	margin: 0 0 20px;
	font-size: 13px;
	line-height: 1.7;
	color: #4b5563;
}

.tc-doc-modal__field {
	margin: 0 0 16px;
}

.tc-doc-modal__label {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 13px;
	font-weight: 700;
	color: #0d2a17;
	margin: 0 0 8px;
}

.tc-doc-modal__required {
	display: inline-block;
	font-size: 11px;
	font-weight: 700;
	color: #ffffff;
	background: #e91e63;
	padding: 2px 6px;
	border-radius: 3px;
	letter-spacing: 0.04em;
	line-height: 1.2;
}

.tc-doc-modal__input {
	display: block;
	width: 100%;
	padding: 10px 12px;
	font-size: 16px;
	line-height: 1.6;
	color: #0d2a17;
	background: #ffffff;
	border: 1px solid #cbd5d1;
	border-radius: 6px;
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
	box-sizing: border-box;
}

.tc-doc-modal__input:focus {
	outline: none;
	border-color: var(--color-primary, #13963f);
	box-shadow: 0 0 0 3px rgba(19, 150, 63, 0.18);
}

.tc-doc-modal__input.is-invalid {
	border-color: #dc2626;
	box-shadow: 0 0 0 3px rgba(220, 38, 38, 0.15);
}

.tc-doc-modal__privacy {
	margin: 0 0 16px;
	font-size: 11px;
	line-height: 1.7;
	color: #4b5563;
}

.tc-doc-modal__privacy a {
	color: var(--color-primary, #13963f);
	text-decoration: underline;
}

.tc-doc-modal__error {
	margin: 0 0 12px;
	padding: 8px 12px;
	font-size: 13px;
	color: #b91c1c;
	background: #fee2e2;
	border-radius: 6px;
	line-height: 1.6;
}

.tc-doc-modal__submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	padding: 12px 24px;
	font-size: 15px;
	font-weight: 700;
	color: #ffffff;
	background: var(--color-primary, #13963f);
	border: 0;
	border-radius: 6px;
	cursor: pointer;
	transition: background 0.15s ease, transform 0.15s ease, box-shadow 0.15s ease;
}

.tc-doc-modal__submit:hover:not(:disabled),
.tc-doc-modal__submit:focus-visible:not(:disabled) {
	background: var(--color-secondary, #1aa84a);
	transform: translateY(-1px);
	box-shadow: 0 6px 16px rgba(19, 150, 63, 0.28);
	outline: none;
}

.tc-doc-modal__submit:disabled {
	opacity: 0.6;
	cursor: not-allowed;
	background: #d1d5db;
	color: #ffffff;
}

body.tc-doc-modal-open {
	overflow: hidden;
}

/* モーダル多ステップ */
.tc-doc-modal__step {
	animation: tcDocModalStepIn 0.18s ease-out;
}

@keyframes tcDocModalStepIn {
	from {
		opacity: 0;
		transform: translateY(6px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

.tc-doc-modal__input--code {
	text-align: center;
	font-size: 22px;
	letter-spacing: 0.5em;
	font-weight: 700;
	font-variant-numeric: tabular-nums;
	padding-left: 12px;
	padding-right: 12px;
}

.tc-doc-modal__hint {
	margin: 0 0 12px;
	font-size: 12px;
	color: #4b5563;
	background: #f3f4f6;
	border-radius: 6px;
	padding: 8px 10px;
	word-break: break-all;
}

.tc-doc-modal__btn-row {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 10px;
	align-items: stretch;
}

.tc-doc-modal__back {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	padding: 10px 18px;
	font-size: 14px;
	font-weight: 600;
	color: #4b5563;
	background: #ffffff;
	border: 1px solid #d1d5db;
	border-radius: 6px;
	cursor: pointer;
	transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.tc-doc-modal__back:hover,
.tc-doc-modal__back:focus-visible {
	background: #f3f4f6;
	color: #0d2a17;
	outline: none;
}

.tc-doc-modal__row--2col {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 12px;
	margin: 0 0 16px;
}

.tc-doc-modal__row--2col .tc-doc-modal__field {
	margin: 0;
}

@media (max-width: 480px) {
	.tc-doc-modal__row--2col {
		grid-template-columns: 1fr;
		gap: 12px;
	}
}

/* ==========================================================================
   TOP メディア — 出版記念パーティー
   ========================================================================== */

.tc-top-media-books {
	margin-bottom: clamp(48px, 6vw, 80px);
}

.tc-media-event {
	background: var(--color-base-primary, #f3f4f6);
	border-radius: 16px;
	padding: clamp(28px, 4vw, 56px);
	margin-bottom: clamp(32px, 4vw, 48px);
}

.tc-media-event__title {
	font-size: clamp(20px, 2.4vw, 28px);
	font-weight: 700;
	color: var(--color-contrast, #0d2a17);
	margin: 0 0 clamp(20px, 2.8vw, 32px);
	padding-bottom: clamp(10px, 1.4vw, 14px);
	border-bottom: 2px solid var(--color-primary, #13963f);
	text-align: center;
	line-height: 1.5;
}

.tc-media-event__images {
	display: grid;
	grid-template-columns: 1fr;
	gap: clamp(16px, 2.4vw, 24px);
	margin: 0 0 clamp(24px, 3vw, 36px);
}

@media (min-width: 768px) {
	.tc-media-event__images {
		grid-template-columns: minmax(0, 1fr) minmax(0, 1.5fr);
		align-items: stretch;
	}
}

.tc-media-event__figure {
	margin: 0;
	border-radius: 12px;
	overflow: hidden;
	background: #ffffff;
	box-shadow: 0 6px 18px rgba(13, 42, 23, 0.08);
	display: flex;
	align-items: center;
	justify-content: center;
}

.tc-media-event__figure img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}

.tc-media-event__figure--stack img {
	aspect-ratio: 2 / 3;
}

.tc-media-event__figure--party img {
	aspect-ratio: 3 / 2;
}

@media (min-width: 768px) {
	.tc-media-event__figure--stack,
	.tc-media-event__figure--party {
		min-height: 360px;
	}
	.tc-media-event__figure--stack img,
	.tc-media-event__figure--party img {
		aspect-ratio: auto;
		height: 100%;
	}
}

.tc-media-event__body {
	max-width: 880px;
	margin: 0 auto;
}

.tc-media-event__body p {
	margin: 0 0 clamp(14px, 1.8vw, 20px);
	line-height: 1.95;
	color: #1f2937;
	font-size: clamp(14px, 1.5vw, 16px);
}

.tc-media-event__body p:last-child {
	margin-bottom: 0;
}

.tc-media-event__lead {
	font-size: clamp(15px, 1.7vw, 18px) !important;
	font-weight: 700;
	color: var(--color-contrast, #0d2a17) !important;
	line-height: 1.85 !important;
}

.tc-media-event__close {
	text-align: center;
	font-weight: 700;
	color: var(--color-primary, #13963f) !important;
	font-size: clamp(15px, 1.7vw, 18px) !important;
	padding-top: clamp(10px, 1.4vw, 16px);
	border-top: 1px dashed rgba(19, 150, 63, 0.4);
	margin-top: clamp(16px, 2.2vw, 24px) !important;
}

@media (max-width: 640px) {
	.tc-media-event {
		padding: 20px 16px;
	}
	.tc-media-event__title {
		font-size: 18px;
	}
}

/* ==========================================================================
   資料ダウンロード仮ページ（/document-preview/）
   ========================================================================== */

.tc-doc-preview .tc-section {
	padding-top: clamp(24px, 4vw, 48px);
	padding-bottom: clamp(48px, 8vw, 96px);
}

.tc-doc-preview__card {
	max-width: 720px;
	margin: 0 auto;
	background: #ffffff;
	border: 1px solid rgba(19, 150, 63, 0.2);
	border-radius: 16px;
	padding: clamp(32px, 5vw, 56px) clamp(24px, 4vw, 48px);
	text-align: center;
	box-shadow: 0 4px 14px rgba(13, 42, 23, 0.06);
}

.tc-doc-preview__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin-bottom: clamp(16px, 2vw, 24px);
}

.tc-doc-preview__title {
	margin: 0 0 clamp(12px, 1.6vw, 18px);
	font-size: clamp(20px, 2.4vw, 28px);
	font-weight: 700;
	color: #0d2a17;
}

.tc-doc-preview__lead {
	margin: 0 0 clamp(16px, 2vw, 24px);
	font-size: clamp(14px, 1.5vw, 16px);
	line-height: 1.9;
	color: #1f2937;
}

.tc-doc-preview__note {
	margin: 0 0 clamp(20px, 3vw, 32px);
	padding: clamp(12px, 1.6vw, 16px);
	font-size: 13px;
	line-height: 1.8;
	color: #4b5563;
	background: rgba(19, 150, 63, 0.06);
	border-radius: 8px;
}

.tc-doc-preview__actions {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 12px;
}

.tc-btn--ghost {
	background: #ffffff !important;
	color: var(--color-primary, #13963f) !important;
	border: 1px solid var(--color-primary, #13963f) !important;
}

.tc-btn--ghost:hover,
.tc-btn--ghost:focus-visible {
	background: rgba(19, 150, 63, 0.08) !important;
	color: var(--color-secondary, #1aa84a) !important;
}

/* ==========================================================================
   スマホ時のヘッダー: 電話ボタンとハンバーガー間の隙間打ち消し
   ========================================================================== */

@media (max-width: 1024px) {
	.s-header__mobile-tel + .s-header__mobile-hamburger {
		margin-left: -16px;
	}
}

/* ============================================================
 * フッター 4カラム（深緑背景・黄▶／−マーカー）
 * ============================================================ */
.tc-footer.s-footer {
	background: var(--color-primary);
	border-top: none;
}
.tc-footer__nav {
	padding-block: clamp(48px, 48px + var(--fluid-slope) * 8, 72px);
}
.tc-footer__grid {
	display: grid;
	grid-template-columns: minmax(220px, 1.15fr) minmax(150px, 0.85fr) minmax(180px, 1fr) minmax(150px, 0.8fr);
	gap: clamp(28px, 28px + var(--fluid-slope) * 6, 48px);
	align-items: start;
}
@media (max-width: 1024px) {
	.tc-footer__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}
@media (max-width: 600px) {
	.tc-footer__grid {
		grid-template-columns: 1fr;
		gap: 32px;
	}
}
.tc-footer__col--brand {
	max-width: 320px;
}
.tc-footer__logo {
	display: inline-block;
	margin-bottom: var(--spacing-20, 20px);
	line-height: 0;
}
.tc-footer__logo img {
	width: min(100%, 260px);
	height: auto;
	display: block;
}
.tc-footer__address {
	margin: 0 0 var(--spacing-16, 16px);
	font-style: normal;
	font-size: 13px;
	line-height: 1.85;
	color: rgba(255, 255, 255, 0.92);
}
.tc-footer__tel {
	margin: 0 0 var(--spacing-20, 20px);
	font-size: 13px;
	line-height: 1.7;
	color: rgba(255, 255, 255, 0.92);
}
.tc-footer__tel a {
	color: inherit;
	text-decoration: none;
	font-weight: 700;
}
.tc-footer__tel a:hover {
	text-decoration: underline;
}
.tc-footer__tel-hours {
	display: inline-block;
	margin-left: 0.35em;
	font-weight: 400;
	opacity: 0.9;
}
.tc-footer__list {
	list-style: none;
	margin: 0;
	padding: 0;
}
.tc-footer__list--primary {
	display: flex;
	flex-direction: column;
	gap: 10px;
}
.tc-footer__list--sub {
	display: flex;
	flex-direction: column;
	gap: 8px;
	margin-top: 4px;
}
.tc-footer__heading {
	margin: 0 0 8px;
	font-size: 14px;
	font-weight: 700;
	line-height: 1.6;
}
.tc-footer__heading-link {
	display: inline-flex;
	align-items: flex-start;
	gap: 0.35em;
	color: #ffffff !important;
	text-decoration: none;
}
.tc-footer__heading-link::before {
	content: '▶';
	color: #ffe234;
	font-size: 0.75em;
	line-height: 1.6;
	flex-shrink: 0;
}
.tc-footer__heading-link:hover {
	opacity: 0.88;
}
.tc-footer__link {
	display: inline-flex;
	align-items: flex-start;
	gap: 0.4em;
	color: rgba(255, 255, 255, 0.92) !important;
	font-size: 13px !important;
	line-height: 1.65;
	text-decoration: none;
	transition: opacity 0.2s ease;
}
.tc-footer__list--primary .tc-footer__link::before {
	content: '▶';
	color: #ffe234;
	font-size: 0.7em;
	line-height: 1.65;
	flex-shrink: 0;
}
.tc-footer__list--sub .tc-footer__link::before {
	content: '−';
	color: #ffe234;
	font-weight: 700;
	flex-shrink: 0;
}
.tc-footer__link:hover {
	opacity: 0.82;
	text-decoration: underline;
}
.tc-footer .s-footer__copy-right-area {
	background: #1a2238;
}

/* ============================================================
 * 料金ページ（/price/）— 下層ページ共通レイアウト + 料金専用ブロック
 * ============================================================ */
.tc-price-page__main {
	width: 100%;
	max-width: none;
	margin-inline: 0;
}
.tc-price-section {
	margin: 0 0 var(--spacing-64, 64px);
}
.tc-price-section:last-child {
	margin-bottom: var(--spacing-32, 32px);
}
.tc-price-section .tc-service-tokai__section-head {
	margin-bottom: var(--spacing-32, 32px);
}

/* 顧問プランカード */
.tc-price-plans {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--spacing-20, 20px);
}
@media (max-width: 720px) {
	.tc-price-plans {
		grid-template-columns: 1fr;
	}
}
.tc-price-plan {
	margin: 0;
	padding: clamp(24px, 24px + var(--fluid-slope) * 2, 32px);
	background: #ffffff;
	border: 1px solid var(--color-base-primary, #e6ecf5);
	border-radius: 8px;
	box-shadow: 0 2px 8px rgba(15, 36, 80, 0.05);
}
.tc-price-plan.is-featured {
	background: var(--color-primary);
	border-color: var(--color-primary);
	color: #ffffff;
}
.tc-price-plan__label {
	margin: 0 0 var(--spacing-8, 8px);
	font-size: clamp(18px, 18px + var(--fluid-slope) * 2, 22px);
	font-weight: 700;
	line-height: 1.4;
	color: var(--color-primary);
}
.tc-price-plan.is-featured .tc-price-plan__label {
	color: #ffffff;
}
.tc-price-plan__desc {
	margin: 0 0 var(--spacing-20, 20px);
	font-size: var(--font-size-small, 14px);
	line-height: 1.75;
	color: var(--color-neutral-medium, #5a6578);
}
.tc-price-plan.is-featured .tc-price-plan__desc {
	color: rgba(255, 255, 255, 0.82);
}
.tc-price-plan__features {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 10px;
}
.tc-price-plan__features li {
	position: relative;
	padding-left: 1.6em;
	font-size: var(--font-size-small, 14px);
	line-height: 1.65;
}
.tc-price-plan__features li::before {
	content: '✓';
	position: absolute;
	left: 0;
	top: 0.05em;
	font-weight: 700;
	color: var(--color-primary);
}
.tc-price-plan.is-featured .tc-price-plan__features li::before {
	color: #ffffff;
}
.tc-price-plan.is-featured .tc-price-plan__features li {
	color: rgba(255, 255, 255, 0.9);
}

/* 料金表タブ */
.tc-price-tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: var(--spacing-24, 24px);
	border-bottom: 2px solid var(--color-base-primary, #e6ecf5);
}
.tc-price-tabs__btn {
	margin: 0 0 -2px;
	padding: 12px 20px;
	background: none;
	border: 0;
	border-bottom: 3px solid transparent;
	color: var(--color-neutral-medium, #5a6578);
	font-family: inherit;
	font-size: var(--font-size-small, 14px);
	font-weight: 700;
	cursor: pointer;
	transition: color 0.2s ease, border-color 0.2s ease;
}
.tc-price-tabs__btn:hover {
	color: var(--color-primary);
}
.tc-price-tabs__btn.is-active {
	color: var(--color-primary);
	border-bottom-color: var(--color-primary);
}
.tc-price-tabs__btn:focus-visible {
	outline: 2px solid var(--color-primary);
	outline-offset: 2px;
}
.tc-price-tabs__panel[hidden] {
	display: none;
}
.tc-price-table-wrap {
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}
.tc-price-table {
	width: 100%;
	min-width: 320px;
	border-collapse: collapse;
	background: #ffffff;
	border: 1px solid var(--color-base-primary, #e6ecf5);
	border-radius: 8px;
	overflow: hidden;
}
.tc-price-table thead th {
	padding: 14px 16px;
	background: var(--color-primary);
	color: #ffffff;
	font-size: var(--font-size-small, 14px);
	font-weight: 700;
	text-align: left;
}
.tc-price-table thead th:last-child {
	text-align: right;
}
.tc-price-table tbody td {
	padding: 14px 16px;
	border-top: 1px solid var(--color-base-primary, #e6ecf5);
	font-size: var(--font-size-base, 16px);
}
.tc-price-table tbody td:last-child {
	text-align: right;
	font-weight: 700;
	color: var(--color-primary);
	white-space: nowrap;
}
.tc-price-note {
	margin: var(--spacing-16, 16px) 0 0;
	padding: 12px 16px;
	font-size: 13px;
	line-height: 1.75;
	color: var(--color-neutral-medium, #5a6578);
	background: color-mix(in srgb, var(--color-primary) 10%, #ffffff);
	border-radius: 6px;
}

/* シミュレーター */
.tc-price-section--sim {
	padding: clamp(32px, 32px + var(--fluid-slope) * 4, 48px);
	background: var(--color-primary);
	border-radius: 8px;
}
.tc-price-section--sim .tc-h2--invert,
.tc-price-section--sim .tc-section__sub--invert {
	color: #ffffff !important;
}
.tc-price-section--sim .tc-section__sub--invert {
	opacity: 0.85;
}
.tc-price-sim {
	padding: clamp(20px, 20px + var(--fluid-slope) * 2, 32px);
	background: rgba(255, 255, 255, 0.08);
	border: 1px solid rgba(255, 255, 255, 0.2);
	border-radius: 8px;
}
.tc-price-sim__row {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--spacing-24, 24px);
	margin-bottom: var(--spacing-24, 24px);
}
@media (max-width: 640px) {
	.tc-price-sim__row {
		grid-template-columns: 1fr;
	}
}
.tc-price-sim__field label,
.tc-price-sim__field-label {
	display: block;
	margin-bottom: 10px;
	font-size: 13px;
	font-weight: 700;
	color: rgba(255, 255, 255, 0.85);
	letter-spacing: 0.04em;
}
.tc-price-sim__field input[type='number'] {
	width: 100%;
	padding: 14px 16px;
	background: rgba(255, 255, 255, 0.12);
	border: 1.5px solid rgba(255, 255, 255, 0.35);
	border-radius: 6px;
	color: #ffffff;
	font-size: clamp(20px, 20px + var(--fluid-slope) * 2, 24px);
	font-weight: 700;
	font-variant-numeric: tabular-nums;
	outline: none;
	-moz-appearance: textfield;
}
.tc-price-sim__field input[type='number']::-webkit-inner-spin-button,
.tc-price-sim__field input[type='number']::-webkit-outer-spin-button {
	-webkit-appearance: none;
}
.tc-price-sim__field input[type='number']:focus {
	border-color: #ffffff;
}
.tc-price-sim__field input[type='number']::placeholder {
	color: rgba(255, 255, 255, 0.4);
}
.tc-price-sim__pills {
	display: flex;
	gap: 8px;
}
.tc-price-sim__pill {
	flex: 1;
	padding: 12px 8px;
	border: 1.5px solid rgba(255, 255, 255, 0.35);
	border-radius: 6px;
	background: transparent;
	color: rgba(255, 255, 255, 0.75);
	font-family: inherit;
	font-size: 13px;
	font-weight: 700;
	cursor: pointer;
	transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}
.tc-price-sim__pill.is-active {
	background: #ffffff;
	border-color: #ffffff;
	color: var(--color-primary);
}
.tc-price-sim__pill:focus-visible {
	outline: 2px solid #ffffff;
	outline-offset: 2px;
}
.tc-price-sim__result {
	padding: clamp(20px, 20px + var(--fluid-slope) * 2, 28px);
	background: #ffffff;
	border-radius: 8px;
}
.tc-price-sim__result-label {
	margin: 0 0 8px;
	font-size: 14px;
	font-weight: 700;
	color: var(--color-primary);
}
.tc-price-sim__result-amount {
	margin: 0;
	font-size: clamp(32px, 32px + var(--fluid-slope) * 6, 42px);
	font-weight: 800;
	line-height: 1.1;
	color: var(--color-primary);
	font-variant-numeric: tabular-nums;
}
.tc-price-sim__result-amount span {
	font-size: 0.45em;
	font-weight: 700;
}
.tc-price-sim__breakdown {
	margin-top: 12px;
	padding-top: 12px;
	border-top: 1px solid var(--color-base-primary, #e6ecf5);
	display: flex;
	flex-direction: column;
	gap: 6px;
	font-size: 13px;
	color: var(--color-neutral-medium, #5a6578);
}
.tc-price-sim__breakdown-row {
	display: flex;
	justify-content: space-between;
	gap: 12px;
}

/* CTA */
.tc-price-section--cta .tc-service-tokai__section-head {
	margin-bottom: var(--spacing-24, 24px);
}
.tc-price-cta__note {
	margin: var(--spacing-12, 12px) 0 0;
	font-size: 13px;
	color: var(--color-neutral-medium, #5a6578);
}
.tc-price-cta__actions {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: var(--spacing-16, 16px);
}
.tc-price-cta__actions .tc-btn--outline {
	min-width: min(100%, 280px);
	padding: calc(var(--spacing-16) + 6px) calc(var(--spacing-24) + 8px);
	font-size: clamp(15px, 1.15vw, 18px);
}
.tc-price-tax-note {
	margin: var(--spacing-24, 24px) 0 0;
	text-align: center;
	font-size: 12px;
	color: var(--color-neutral-medium, #5a6578);
}
