@charset "UTF-8";
/**
 * Reali Landing — Renewal Layer (2026)
 * ------------------------------------------------------------------
 * 既存の vendor CSS / main.css の「上」に重ねる、デザイン刷新レイヤー。
 *
 * 方針:
 *   - コンテンツ・セクション順・WordPress の取得ロジックには一切触れない。
 *   - ブランドのグリーン (#13963f) はアクセント／CTA の主役として維持。
 *   - 見出し・ナビ・フッターなど「構造」にネイビー〜ブルーグレーの階調を導入し、
 *     士業サイト然とした印象を、成長企業を支えるプロフェッショナルファームへ更新する。
 *
 * @package reali
 */

/* ==================================================================
   1. Design tokens
   ================================================================== */
:root {
	/* Brand — green (logo / CTA / accent) */
	--rl-green: #13963f;
	--rl-green-600: #0e7c33;
	--rl-green-700: #0a5f27;
	--rl-green-400: #2bb15b;
	--rl-green-050: #edf7f1;
	--rl-green-100: #d8ecdf;

	/* Structure — navy / slate / mist */
	--rl-ink: #0f2436;
	--rl-ink-800: #17334a;
	--rl-ink-600: #2b4a63;
	--rl-slate: #45596b;
	--rl-slate-2: #6b7f91;
	--rl-mist: #f5f8fa;
	--rl-mist-2: #eaf0f4;
	--rl-line: #dde6ec;
	--rl-line-2: #eef3f6;

	--rl-amber: #f7931e;

	/* Shape */
	--rl-r-xs: 6px;
	--rl-r-sm: 10px;
	--rl-r: 14px;
	--rl-r-lg: 20px;
	--rl-r-xl: 28px;
	--rl-pill: 999px;

	/* Elevation */
	--rl-sh-1: 0 1px 2px rgba(15, 36, 54, 0.04), 0 4px 14px rgba(15, 36, 54, 0.05);
	--rl-sh-2: 0 2px 6px rgba(15, 36, 54, 0.05), 0 14px 34px rgba(15, 36, 54, 0.11);
	--rl-sh-3: 0 30px 70px rgba(15, 36, 54, 0.16);
	--rl-ring: 0 0 0 4px rgba(19, 150, 63, 0.16);

	/* Motion */
	--rl-ease: cubic-bezier(0.22, 0.61, 0.36, 1);
	--rl-dur: 0.34s;

	/* Type scale — サイト全体の文字サイズはこの8段階のみを使う */
	--rl-fs-h1: clamp(28px, 2.6vw, 38px);      /* 下層ページタイトル */
	--rl-fs-h2: clamp(24px, 2.2vw, 32px);      /* セクション見出し */
	--rl-fs-h3: clamp(19px, 1.55vw, 22px);     /* 小見出し・キャッチ・ブロック見出し */
	--rl-fs-h4: clamp(16px, 1.2vw, 17.5px);    /* カード見出し */
	--rl-fs-lead: clamp(15px, 1.15vw, 16px);   /* セクションのリード文 */
	--rl-fs-body: 15px;                         /* 本文 */
	--rl-fs-small: 14px;                        /* カード説明文など */
	--rl-fs-caption: 12.5px;                    /* 日付・注記・ラベル */
	--rl-lh-body: 1.95;
	--rl-lh-heading: 1.45;

	/* Rhythm */
	--rl-section-y: clamp(64px, 7.4vw, 116px);
	--rl-head-gap: clamp(32px, 3.4vw, 52px);   /* 見出しブロックとコンテンツの間 */
	--rl-gap: clamp(18px, 2vw, 28px);

	/* Icons */
	--rl-arrow-white: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h13M13 6l6 6-6 6'/%3E%3C/svg%3E");
	--rl-arrow-ink: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230f2436' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h13M13 6l6 6-6 6'/%3E%3C/svg%3E");
}

/* ==================================================================
   2. Base
   ================================================================== */
body {
	color: var(--rl-slate);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	font-feature-settings: "palt" 1;
	letter-spacing: 0.015em;
}

::selection {
	background: var(--rl-green-100);
	color: var(--rl-ink);
}

:where(a, button, input, select, textarea):focus-visible {
	outline: 2px solid var(--rl-green);
	outline-offset: 3px;
	border-radius: 4px;
}

img {
	vertical-align: bottom;
}

/* ==================================================================
   3. Header
   ================================================================== */
.s-header {
	background: #fff;
	border-bottom: 1px solid var(--rl-line-2);
}

.s-header__container {
	padding-block: clamp(10px, 1vw, 16px);
}

.c-header-tel__lead {
	color: var(--rl-slate-2);
	font-size: 12px;
	letter-spacing: 0.04em;
}

.c-header-tel__text {
	color: var(--rl-ink) !important;
	font-family: var(--font-family-en), var(--font-family-ja);
	letter-spacing: 0.02em;
}

.c-header-tel__note {
	color: var(--rl-slate-2);
	font-size: 11.5px;
}

.c-header-tel__label {
	background: var(--rl-mist-2);
	color: var(--rl-slate);
	border-radius: var(--rl-r-xs);
	padding: 2px 8px;
	font-weight: 600;
	letter-spacing: 0.06em;
}

/* ヘッダー右のアクションボタン群 */
.c-header-button {
	border-radius: var(--rl-r-sm);
	border-width: 0;
	transition: transform 0.22s var(--rl-ease), box-shadow 0.22s var(--rl-ease),
		background-color 0.22s var(--rl-ease);
	box-shadow: 0 1px 2px rgba(15, 36, 54, 0.08);
}

.c-header-button__text {
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.04em;
}

.c-header-button.is-contact {
	background-color: var(--rl-amber);
}

.c-header-button.is-document {
	background-color: var(--rl-green);
}

@media (any-hover: hover) {
	.c-header-button:hover {
		transform: translateY(-2px);
		box-shadow: 0 8px 20px rgba(15, 36, 54, 0.18);
		opacity: 1;
	}

	.c-header-button.is-document:hover {
		background-color: var(--rl-green-600);
	}
}

/* ------------------------------------------------------------------
   グローバルナビ: ブランドグリーンの帯 + 白の下線
   ------------------------------------------------------------------ */
.s-nav {
	background: var(--rl-green);
	border-bottom: none;
	box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.08);
}

.s-nav__item {
	position: relative;
}

.s-nav__item + .s-nav__item::before {
	content: "";
	position: absolute;
	inset-block: 26%;
	inset-inline-start: 0;
	width: 1px;
	background: rgba(255, 255, 255, 0.22);
}

.s-nav__link {
	position: relative;
	letter-spacing: 0.06em;
	transition: color 0.2s var(--rl-ease), background-color 0.2s var(--rl-ease);
}

.s-nav__link::after {
	content: "";
	position: absolute;
	inset-inline: 18%;
	inset-block-end: 0;
	height: 3px;
	background: #fff;
	transform: scaleX(0);
	transform-origin: center;
	transition: transform 0.28s var(--rl-ease);
}

@media (any-hover: hover) {
	.s-nav__link:hover {
		background: rgba(0, 0, 0, 0.08);
	}

	.s-nav__link:hover::after {
		transform: scaleX(1);
	}
}

.s-nav__item.current-menu-item > .s-nav__link::after,
.s-nav__item.current_page_item > .s-nav__link::after,
.s-nav__item.current-menu-ancestor > .s-nav__link::after {
	transform: scaleX(1);
}

/* サブメニュー */
.s-nav__link + ul {
	border-radius: 0 0 var(--rl-r-sm) var(--rl-r-sm);
	overflow: hidden;
	box-shadow: var(--rl-sh-2);
	border: 1px solid var(--rl-line);
	border-top: 0;
	background: #fff;
}

.s-nav__link + ul li a {
	color: var(--rl-ink);
	font-size: 13px;
	font-weight: 600;
	padding-block: 12px;
}

@media (any-hover: hover) {
	.s-nav__link + ul li a:hover {
		background: var(--rl-green-050);
		color: var(--rl-green-700);
	}
}

/* ==================================================================
   4. セクションの骨格
   ================================================================== */
.tc-section {
	padding-block: var(--rl-section-y);
}

.tc-section--gray {
	background: linear-gradient(180deg, #f8fbfc 0%, var(--rl-mist) 46%, #eff5f8 100%);
	border-block: 1px solid var(--rl-line-2);
}

.tc-section__head {
	margin-bottom: clamp(32px, 3.4vw, 52px);
	text-align: center;
}

/* 英語のアイキャッチ（data-en 属性で任意のセクションに付与） */
.tc-section__head[data-en]::before {
	content: attr(data-en);
	display: block;
	margin-bottom: 12px;
	font-family: var(--font-family-en), var(--font-family-ja);
	font-size: clamp(11px, 0.9vw, 12.5px);
	font-weight: 400;
	letter-spacing: 0.28em;
	text-transform: uppercase;
	color: var(--rl-green);
}

/* 見出し: プライマリ緑 → ネイビー（アクセントの下線でブランドを担保） */
body.home .tc-section .tc-h2,
body.home .tc-cta .tc-h2,
body.home .tc-flow__heading,
.tc-h2,
.tc-flow__heading {
	color: var(--rl-ink) !important;
	font-size: clamp(25px, 2.5vw, 38px) !important;
	font-weight: 700 !important;
	line-height: 1.4 !important;
	letter-spacing: 0.03em;
}

.tc-h2--invert,
body.home .tc-cta .tc-h2--invert {
	color: #fff !important;
}

.tc-section__head .tc-h2::after,
.tc-section__head .tc-flow__heading::after {
	content: "";
	display: block;
	width: 46px;
	height: 3px;
	margin: clamp(14px, 1.4vw, 20px) auto 0;
	border-radius: 2px;
	background: linear-gradient(90deg, var(--rl-green), var(--rl-green-400));
}

.tc-cta .tc-h2::after {
	background: linear-gradient(90deg, var(--rl-green-400), rgba(255, 255, 255, 0.5));
}

.tc-section__sub {
	max-width: 46rem;
	margin: 16px auto 0;
	color: var(--rl-slate);
	font-size: clamp(14px, 1.2vw, 16px);
	line-height: 2;
}

.tc-h3 {
	color: var(--rl-ink);
	letter-spacing: 0.03em;
}

.tc-section__foot {
	margin-top: clamp(36px, 3.6vw, 60px);
	text-align: center;
}

/* ==================================================================
   5. ボタン
   ================================================================== */
/* セクション末尾の導線: 塗りつぶし緑 → ネイビーのアウトライン + 矢印 */
.tc-btn.tc-btn--section-link,
.tc-btn--section-link {
	position: relative;
	display: inline-flex;
	align-items: center;
	gap: 16px;
	min-width: 0;
	padding: 15px 22px 15px 30px;
	border: 1.5px solid var(--rl-ink);
	border-radius: var(--rl-pill);
	background: #fff;
	color: var(--rl-ink);
	font-size: clamp(14px, 1.05vw, 15.5px);
	font-weight: 700;
	letter-spacing: 0.05em;
	line-height: 1.4;
	box-shadow: none;
	transition: background-color 0.26s var(--rl-ease), color 0.26s var(--rl-ease),
		border-color 0.26s var(--rl-ease), transform 0.26s var(--rl-ease),
		box-shadow 0.26s var(--rl-ease);
}

.tc-btn--section-link::after {
	content: "";
	flex: none;
	width: 26px;
	height: 26px;
	border-radius: 50%;
	background-color: var(--rl-ink);
	background-image: var(--rl-arrow-white);
	background-repeat: no-repeat;
	background-position: center;
	background-size: 13px 13px;
	transition: background-color 0.26s var(--rl-ease), transform 0.26s var(--rl-ease);
}

@media (any-hover: hover) {
	.tc-btn--section-link:hover {
		background: var(--rl-ink);
		border-color: var(--rl-ink);
		color: #fff;
		transform: translateY(-2px);
		box-shadow: var(--rl-sh-2);
	}

	.tc-btn--section-link:hover::after {
		background-color: var(--rl-green);
		transform: translateX(3px);
	}
}

/* 汎用ボタン */
.tc-btn {
	border-radius: var(--rl-pill);
	letter-spacing: 0.05em;
}

.tc-btn--primary {
	background: var(--rl-green);
	box-shadow: 0 8px 22px rgba(19, 150, 63, 0.24);
}

.tc-btn--outline {
	border-color: var(--rl-ink);
	color: var(--rl-ink);
}

.tc-btn--outline:hover {
	background: var(--rl-ink);
	border-color: var(--rl-ink);
}

/* コアブロックのボタン（流れ／CTA など） */
.tc-flow__buttons .wp-block-button .wp-block-button__link {
	border-radius: var(--rl-pill);
	letter-spacing: 0.05em;
	box-shadow: 0 10px 26px rgba(19, 150, 63, 0.22);
	transition: transform 0.24s var(--rl-ease), box-shadow 0.24s var(--rl-ease),
		background-color 0.24s var(--rl-ease);
}

@media (any-hover: hover) {
	.tc-flow__buttons .wp-block-button .wp-block-button__link:hover {
		transform: translateY(-2px);
		box-shadow: 0 16px 34px rgba(19, 150, 63, 0.28);
	}
}

/* ==================================================================
   6. ヒーロー
   ================================================================== */
.tc-top-hero {
	background:
		radial-gradient(120% 90% at 88% 8%, rgba(19, 150, 63, 0.07) 0%, transparent 58%),
		linear-gradient(180deg, #ffffff 0%, #f7fafb 100%);
	border-bottom: 1px solid var(--rl-line-2);
}

/* 薄いドットのテクスチャで“作り込み”の density を上げる */
.tc-top-hero::before {
	content: "";
	position: absolute;
	inset-block-start: 0;
	inset-inline-start: 0;
	width: min(46%, 560px);
	height: 100%;
	background-image: radial-gradient(rgba(15, 36, 54, 0.075) 1px, transparent 1px);
	background-size: 22px 22px;
	-webkit-mask-image: linear-gradient(115deg, #000 0%, transparent 62%);
	mask-image: linear-gradient(115deg, #000 0%, transparent 62%);
	opacity: 0.55;
	pointer-events: none;
	z-index: 0;
}

.tc-top-hero__content {
	position: relative;
	z-index: 1;
	background: transparent;
}

.tc-top-hero__kicker {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	align-self: flex-start;
	font-family: var(--font-family-en), var(--font-family-ja);
	color: var(--rl-green-700);
	letter-spacing: 0.24em;
	margin-bottom: clamp(18px, 2.6vw, 28px);
}

.tc-top-hero__kicker::before {
	content: "";
	width: 34px;
	height: 2px;
	background: var(--rl-green);
	border-radius: 2px;
}

.tc-top-hero__title {
	color: var(--rl-ink);
	font-size: clamp(33px, 4.7vw, 58px);
	line-height: 1.3;
	letter-spacing: 0.015em;
	margin-bottom: clamp(22px, 2.8vw, 30px);
}

/* 下線 → やわらかいハイライト帯（可読性を保ったままモダンに） */
.tc-top-hero__title-accent {
	color: var(--rl-green-700);
	padding-inline: 0.08em;
	background-image: linear-gradient(
		90deg,
		rgba(43, 177, 91, 0.42) 0%,
		rgba(43, 177, 91, 0.2) 100%
	);
	background-repeat: no-repeat;
	background-size: 100% 0.32em;
	background-position: 0 92%;
}

.tc-top-hero__title-accent::after {
	content: none;
}

.tc-top-hero__desc {
	color: var(--rl-slate);
	font-size: clamp(14.5px, 1.4vw, 16.5px);
	line-height: 2.05;
	max-width: 34rem;
}

.tc-top-hero__cta {
	gap: 16px;
	padding: 17px 20px 17px 30px;
	border-radius: var(--rl-pill);
	background: linear-gradient(135deg, var(--rl-green) 0%, var(--rl-green-600) 100%);
	box-shadow: 0 12px 28px rgba(19, 150, 63, 0.28);
	letter-spacing: 0.06em;
}

.tc-top-hero__cta-arrow {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 30px;
	height: 30px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.18);
	font-size: 0;
	background-image: var(--rl-arrow-white);
	background-repeat: no-repeat;
	background-position: center;
	background-size: 15px 15px;
	transition: transform 0.26s var(--rl-ease), background-color 0.26s var(--rl-ease);
}

@media (any-hover: hover) {
	.tc-top-hero__cta:hover {
		transform: translateY(-2px);
		box-shadow: 0 18px 38px rgba(19, 150, 63, 0.34);
	}

	.tc-top-hero__cta:hover .tc-top-hero__cta-arrow {
		transform: translateX(4px);
		background-color: rgba(255, 255, 255, 0.3);
	}
}

.tc-top-hero__sub-link {
	position: relative;
	color: var(--rl-ink);
	font-weight: 700;
	font-size: 15px;
	letter-spacing: 0.05em;
	text-decoration: none;
	padding-bottom: 4px;
}

.tc-top-hero__sub-link::after {
	content: "";
	position: absolute;
	inset-inline: 0;
	inset-block-end: 0;
	height: 1.5px;
	background: var(--rl-ink);
	transform-origin: right;
	transition: transform 0.3s var(--rl-ease);
}

@media (any-hover: hover) {
	.tc-top-hero__sub-link:hover::after {
		transform: scaleX(0);
	}
}

.tc-top-hero__tags {
	gap: 8px 10px;
}

.tc-top-hero__tag {
	padding: 7px 14px;
	border: 1px solid var(--rl-line);
	border-radius: var(--rl-pill);
	background: rgba(255, 255, 255, 0.8);
	color: var(--rl-slate);
	font-size: 12.5px;
	font-weight: 600;
	letter-spacing: 0.04em;
}

.tc-top-hero__media {
	position: relative;
	z-index: 1;
	overflow: hidden;
	border-top-left-radius: var(--rl-r-xl);
	border-bottom-left-radius: var(--rl-r-xl);
}

@media (max-width: 899px) {
	.tc-top-hero__media {
		border-radius: 0;
	}
}

/* ==================================================================
   7. ヒーロー直下の 4 バナー
   ================================================================== */
.tc-top-link--overlay.s-top-link {
	padding-block: clamp(40px, 4.4vw, 64px) clamp(28px, 3vw, 44px);
	background: #fff;
}

.tc-top-link--overlay .s-top-link__items {
	gap: clamp(12px, 1.4vw, 20px);
}

.tc-top-link__card {
	border-radius: var(--rl-r);
	box-shadow: var(--rl-sh-1);
	transition: transform var(--rl-dur) var(--rl-ease), box-shadow var(--rl-dur) var(--rl-ease);
}

.tc-top-link__visual img {
	aspect-ratio: 5 / 4;
}

@media (min-width: 768px) {
	.tc-top-link__visual img {
		aspect-ratio: 260 / 190;
	}
}

.tc-top-link__overlay {
	padding: 18px 18px 20px;
	background: linear-gradient(
		180deg,
		rgba(15, 36, 54, 0.05) 0%,
		rgba(15, 36, 54, 0.52) 42%,
		rgba(15, 36, 54, 0.92) 100%
	);
}

.tc-top-link__title {
	position: relative;
	padding-inline-start: 12px;
	font-size: clamp(15px, 1.6vw, 17px);
	letter-spacing: 0.03em;
	text-shadow: none;
}

.tc-top-link__title::before {
	content: "";
	position: absolute;
	inset-inline-start: 0;
	inset-block: 0.18em 0.22em;
	width: 3px;
	border-radius: 2px;
	background: var(--rl-green-400);
}

.tc-top-link__desc {
	padding-inline-start: 12px;
	font-size: 12.5px;
	line-height: 1.75;
	color: rgba(255, 255, 255, 0.86);
	text-shadow: none;
}

@media (any-hover: hover) {
	.tc-top-link--overlay .s-top-link__item a.tc-top-link__card:hover {
		transform: translateY(-5px);
		box-shadow: var(--rl-sh-2);
	}

	.tc-top-link--overlay .s-top-link__item a.tc-top-link__card:hover .tc-top-link__visual img {
		transform: scale(1.06);
	}
}

/* ==================================================================
   8. 強み / サービス カード
   ================================================================== */
.tc-features3,
.tc-services3 {
	gap: clamp(18px, 2vw, 30px);
}

.tc-feature,
.tc-service {
	display: flex;
	flex-direction: column;
	height: 100%;
	border: 1px solid var(--rl-line);
	border-radius: var(--rl-r-lg);
	background: #fff;
	box-shadow: var(--rl-sh-1);
	transition: transform var(--rl-dur) var(--rl-ease), box-shadow var(--rl-dur) var(--rl-ease),
		border-color var(--rl-dur) var(--rl-ease);
}

.tc-feature__media,
.tc-service__media {
	flex: none;
	aspect-ratio: 16 / 10;
	background: var(--rl-mist-2);
}

.tc-feature__media img,
.tc-service__media img {
	transition: transform 0.6s var(--rl-ease);
}

.tc-feature__body,
.tc-service__body {
	flex: 1;
	padding: clamp(20px, 2vw, 28px) clamp(18px, 1.8vw, 26px) clamp(22px, 2.2vw, 30px);
}

.tc-feature__title,
.tc-service__title {
	color: var(--rl-ink);
	font-size: clamp(16px, 1.4vw, 18.5px);
	line-height: 1.55;
	letter-spacing: 0.03em;
	text-align: start;
}

.tc-feature__body .tc-feature__desc,
.tc-feature__desc,
.tc-service__desc {
	margin-top: 12px;
	color: var(--rl-slate);
	font-size: 14px;
	line-height: 1.95;
	text-align: start;
}

@media (any-hover: hover) {
	.tc-feature:hover,
	.tc-service:hover {
		transform: translateY(-6px);
		border-color: transparent;
		box-shadow: var(--rl-sh-2);
	}

	.tc-feature:hover .tc-feature__media img,
	.tc-service:hover .tc-service__media img {
		transform: scale(1.06);
	}
}

/* 見出し番号（01–03）: カード上端に食い込む配置 → 画像左上のバッジへ */
.tc-feature-wrap,
.tc-service-wrap {
	position: relative;
}

.tc-feature-wrap .tc-feature,
.tc-service-wrap .tc-service {
	margin-top: 0;
	padding-top: 0;
}

.tc-feature__point,
.tc-service__point {
	position: absolute;
	z-index: 3;
	inset-block-start: 14px;
	inset-inline-start: 14px;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 0;
	min-width: 52px;
	padding: 8px 12px 9px;
	border-radius: var(--rl-r-sm);
	background: rgba(255, 255, 255, 0.94);
	box-shadow: 0 6px 18px rgba(15, 36, 54, 0.16);
	backdrop-filter: blur(4px);
	color: var(--rl-ink);
}

.tc-feature__point-label {
	color: var(--rl-slate-2);
	font-size: 9px;
	letter-spacing: 0.22em;
}

.tc-feature__point-num,
.tc-service__point-num {
	margin-top: 0;
	color: var(--rl-green-700);
	font-size: 22px;
	line-height: 1.1;
	letter-spacing: 0.06em;
}

/* ==================================================================
   9. ご挨拶
   ================================================================== */
.tc-message {
	gap: clamp(28px, 4vw, 64px);
	align-items: center;
}

.tc-message__body {
	position: relative;
}

.tc-message__body .tc-h3 {
	position: relative;
	color: var(--rl-ink);
	font-size: clamp(20px, 2.1vw, 28px);
	line-height: 1.6;
	letter-spacing: 0.03em;
	padding-bottom: clamp(16px, 1.6vw, 22px);
	margin-bottom: clamp(18px, 1.8vw, 26px);
}

.tc-message__body .tc-h3::after {
	content: "";
	position: absolute;
	inset-inline-start: 0;
	inset-block-end: 0;
	width: 46px;
	height: 3px;
	border-radius: 2px;
	background: linear-gradient(90deg, var(--rl-green), var(--rl-green-400));
}

.tc-message__body p {
	color: var(--rl-slate);
	font-size: clamp(14px, 1.2vw, 15.5px);
	line-height: 2.1;
}

.tc-message__sig {
	margin-top: clamp(24px, 2.6vw, 36px);
	padding-top: clamp(18px, 2vw, 24px);
	border-top: 1px solid var(--rl-line);
	text-align: end;
}

.tc-message__sig .tc-message__sig-line {
	display: block;
	color: var(--rl-slate-2);
	font-size: 13px;
	line-height: 1.9;
}

.tc-message__sig .tc-message__sig-line:last-child {
	margin-top: 4px;
	color: var(--rl-ink);
	font-size: clamp(16px, 1.5vw, 19px);
	font-weight: 700;
	letter-spacing: 0.05em;
}

.tc-message__photo {
	position: relative;
	margin: 0;
}

.tc-message__photo::before {
	content: "";
	position: absolute;
	inset-block-start: -16px;
	inset-inline-end: -16px;
	width: 62%;
	height: 62%;
	border: 2px solid var(--rl-green-100);
	border-radius: var(--rl-r-lg);
	z-index: 0;
}

.tc-message__photo img {
	position: relative;
	z-index: 1;
	border-radius: var(--rl-r-lg);
	box-shadow: var(--rl-sh-2);
}

@media (max-width: 860px) {
	.tc-message {
		grid-template-columns: 1fr;
	}

	.tc-message__photo {
		max-width: 340px;
		margin-inline: auto;
	}
}

/* ==================================================================
   10. お客様の声（スライダー）
   ================================================================== */
.c-voice-splide .splide__list {
	align-items: stretch;
}

.c-voice-splide .splide__slide {
	height: auto;
	padding-block: 6px;
}

.c-voice-card {
	display: flex;
	flex-direction: column;
	height: 100%;
	overflow: hidden;
	border: 1px solid var(--rl-line);
	border-radius: var(--rl-r-lg);
	background: #fff;
	box-shadow: var(--rl-sh-1);
	transition: transform var(--rl-dur) var(--rl-ease), box-shadow var(--rl-dur) var(--rl-ease),
		border-color var(--rl-dur) var(--rl-ease);
}

.c-voice-card__image {
	flex: none;
	overflow: hidden;
	aspect-ratio: 16 / 10;
	background: var(--rl-mist-2);
}

.c-voice-card__image a,
.c-voice-card__image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.c-voice-card__image img {
	transition: transform 0.6s var(--rl-ease);
}

.c-voice-card__content {
	display: flex;
	flex: 1;
	flex-direction: column;
	gap: 12px;
	padding: clamp(18px, 1.8vw, 24px);
}

.c-voice-card__title {
	margin: 0;
	font-size: clamp(15.5px, 1.3vw, 17px);
	font-weight: 700;
	line-height: 1.65;
	letter-spacing: 0.02em;
}

.c-voice-card__title-link {
	color: var(--rl-ink);
	text-decoration: none;
}

.c-voice-card__tags {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
}

.c-voice-card__tag {
	padding: 4px 11px;
	border-radius: var(--rl-pill);
	background: var(--rl-green-050);
	color: var(--rl-green-700);
	font-size: 11.5px;
	font-weight: 700;
	letter-spacing: 0.04em;
	line-height: 1.6;
}

.c-voice-card__excerpt {
	flex: 1;
}

.c-voice-card__excerpt p {
	margin: 0;
	color: var(--rl-slate);
	font-size: 13.5px;
	line-height: 1.95;
}

.c-voice-card__more {
	margin-top: auto;
	padding-top: 4px;
	text-align: end;
}

.c-voice-card__more .c-more-link {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	border-bottom: 0;
	color: var(--rl-ink);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.05em;
	text-decoration: none;
}

.c-voice-card__more .c-more-link::after {
	content: "";
	width: 22px;
	height: 22px;
	border-radius: 50%;
	background-color: var(--rl-green-050);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230a5f27' stroke-width='2.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 5l7 7-7 7'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: center;
	background-size: 11px 11px;
	transition: transform 0.26s var(--rl-ease), background-color 0.26s var(--rl-ease);
}

@media (any-hover: hover) {
	.c-voice-card:hover {
		transform: translateY(-6px);
		border-color: transparent;
		box-shadow: var(--rl-sh-2);
	}

	.c-voice-card:hover .c-voice-card__image img {
		transform: scale(1.06);
	}

	.c-voice-card__more .c-more-link:hover::after {
		transform: translateX(3px);
	}
}

/* Splide の矢印・ページャ */
.c-voice-splide .splide__arrow {
	top: 30%;
	width: 44px;
	height: 44px;
	border: 1px solid var(--rl-line);
	background: #fff;
	box-shadow: var(--rl-sh-1);
	opacity: 1;
	transition: background-color 0.24s var(--rl-ease), border-color 0.24s var(--rl-ease);
}

.c-voice-splide .splide__arrow svg {
	width: 15px;
	height: 15px;
	fill: var(--rl-ink);
}

@media (any-hover: hover) {
	.c-voice-splide .splide__arrow:hover:not(:disabled) {
		background: var(--rl-ink);
		border-color: var(--rl-ink);
	}

	.c-voice-splide .splide__arrow:hover:not(:disabled) svg {
		fill: #fff;
	}
}

.c-voice-splide .splide__pagination__page {
	width: 8px;
	height: 8px;
	background: var(--rl-line);
	opacity: 1;
	transition: width 0.28s var(--rl-ease), background-color 0.28s var(--rl-ease);
}

.c-voice-splide .splide__pagination__page.is-active {
	width: 26px;
	border-radius: var(--rl-pill);
	background: var(--rl-green);
	transform: none;
}

/* ==================================================================
   11. ご相談の流れ
   ================================================================== */
.tc-flow__columns {
	position: relative;
	gap: clamp(18px, 2vw, 30px);
}

/* ステップ同士をつなぐ導線（PC のみ） */
@media (min-width: 860px) {
	.tc-flow__columns::before {
		content: "";
		position: absolute;
		inset-block-start: 34px;
		inset-inline: 16%;
		height: 2px;
		background: repeating-linear-gradient(
			90deg,
			var(--rl-line) 0 8px,
			transparent 8px 16px
		);
		z-index: 0;
	}
}

.tc-flow__col {
	position: relative;
	z-index: 1;
	display: flex;
	flex-direction: column;
	padding: 0;
	border: 0;
	background: transparent;
	box-shadow: none;
}

.tc-flow__badge {
	width: 68px;
	height: 68px;
	border-radius: 50%;
	border: 0;
	background: linear-gradient(135deg, var(--rl-green) 0%, var(--rl-green-700) 100%);
	box-shadow: 0 10px 24px rgba(19, 150, 63, 0.26), 0 0 0 6px #fff;
	color: #fff;
	gap: 0;
}

.tc-section--gray .tc-flow__badge {
	box-shadow: 0 10px 24px rgba(19, 150, 63, 0.26), 0 0 0 6px var(--rl-mist);
}

.tc-flow__badge-step {
	font-family: var(--font-family-en), var(--font-family-ja);
	font-size: 9.5px;
	letter-spacing: 0.18em;
	opacity: 0.85;
}

.tc-flow__badge-num {
	font-family: var(--font-family-en), var(--font-family-ja);
	font-size: 22px;
	font-weight: 400;
	line-height: 1.1;
}

.tc-flow__title {
	margin-top: 14px;
	color: var(--rl-ink) !important;
	font-size: clamp(17px, 1.5vw, 20px);
	font-weight: 700;
	letter-spacing: 0.04em;
}

.tc-flow__body {
	flex: 1;
	margin-top: 18px;
	padding: 0 0 clamp(20px, 2vw, 26px);
	overflow: hidden;
	border: 1px solid var(--rl-line);
	border-radius: var(--rl-r-lg);
	background: #fff;
	box-shadow: var(--rl-sh-1);
}

.tc-flow__figure {
	flex: none;
	margin: 0;
	aspect-ratio: 16 / 10;
	overflow: hidden;
	background: var(--rl-mist-2);
}

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

.tc-flow__desc {
	margin: 18px clamp(18px, 1.8vw, 24px) 0;
	color: var(--rl-slate);
	font-size: 14px;
	line-height: 1.95;
	text-align: start;
}

.tc-flow__buttons {
	margin-top: clamp(36px, 3.6vw, 56px);
}

/* ==================================================================
   12. 無料お役立ち資料
   ================================================================== */
.tc-docs3 {
	gap: clamp(16px, 1.8vw, 26px);
}

.tc-doc {
	display: flex;
	flex-direction: column;
	height: 100%;
	border: 1px solid var(--rl-line);
	border-radius: var(--rl-r-lg);
	background: #fff !important;
	box-shadow: var(--rl-sh-1);
	cursor: pointer;
	text-align: start;
	transition: transform var(--rl-dur) var(--rl-ease), box-shadow var(--rl-dur) var(--rl-ease),
		border-color var(--rl-dur) var(--rl-ease);
}

.tc-doc__thumb {
	position: relative;
	display: block;
	flex: none;
	aspect-ratio: 635 / 416;
	overflow: hidden;
	background: var(--rl-mist-2);
}

.tc-doc__thumb img,
button.tc-doc .tc-doc__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.6s var(--rl-ease);
}

button.tc-doc .tc-doc__thumb {
	border-radius: 0;
	aspect-ratio: 635 / 416;
}

/* 資料タイトル + ダウンロード導線（PHP 側で出力） */
.tc-doc__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	gap: 14px;
	padding: clamp(18px, 1.8vw, 24px);
}

.tc-doc__label {
	display: inline-flex;
	align-self: flex-start;
	align-items: center;
	gap: 6px;
	padding: 4px 11px;
	border-radius: var(--rl-pill);
	background: var(--rl-green-050);
	color: var(--rl-green-700);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.08em;
}

.tc-doc__title {
	flex: 1;
	margin: 0;
	color: var(--rl-ink);
	font-size: clamp(15px, 1.3vw, 17px);
	font-weight: 700;
	line-height: 1.7;
	letter-spacing: 0.02em;
}

.tc-doc__action {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	color: var(--rl-ink);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.05em;
}

.tc-doc__action::after {
	content: "";
	width: 22px;
	height: 22px;
	border-radius: 50%;
	background-color: var(--rl-ink);
	background-image: var(--rl-arrow-white);
	background-repeat: no-repeat;
	background-position: center;
	background-size: 11px 11px;
	transition: transform 0.26s var(--rl-ease), background-color 0.26s var(--rl-ease);
}

@media (any-hover: hover) {
	.tc-doc:hover {
		transform: translateY(-6px);
		border-color: transparent;
		box-shadow: var(--rl-sh-2);
	}

	.tc-doc:hover .tc-doc__thumb img {
		transform: scale(1.05);
	}

	.tc-doc:hover .tc-doc__action::after {
		background-color: var(--rl-green);
		transform: translateX(3px);
	}
}

@media (max-width: 720px) {
	.tc-docs3 {
		grid-template-columns: 1fr;
	}
}

/* ==================================================================
   13. メディア（書籍 / 出版記念）
   ================================================================== */
.tc-top-media-books {
	display: grid;
	gap: clamp(20px, 2.2vw, 32px);
}

.tc-media-page__book {
	display: grid;
	grid-template-columns: minmax(150px, 210px) minmax(0, 1fr);
	gap: clamp(20px, 2.6vw, 40px);
	align-items: start;
	padding: clamp(22px, 2.6vw, 38px);
	border: 1px solid var(--rl-line);
	border-radius: var(--rl-r-lg);
	background: #fff;
	box-shadow: var(--rl-sh-1);
	transition: box-shadow var(--rl-dur) var(--rl-ease);
}

@media (max-width: 720px) {
	.tc-media-page__book {
		grid-template-columns: 1fr;
		justify-items: center;
		text-align: start;
	}

	.tc-media-page__book-cover {
		max-width: 190px;
	}
}

.tc-media-page__book-cover {
	display: block;
	border-radius: var(--rl-r-sm);
	overflow: hidden;
	box-shadow: 0 18px 38px rgba(15, 36, 54, 0.2);
	transition: transform var(--rl-dur) var(--rl-ease);
}

.tc-media-page__book-cover img {
	width: 100%;
	height: auto;
	display: block;
	aspect-ratio: 500 / 709;
	object-fit: cover;
	background: var(--rl-mist-2);
}

.tc-media-page__book-title {
	margin: 0 0 8px;
	color: var(--rl-ink);
	font-size: clamp(18px, 1.8vw, 23px);
	font-weight: 700;
	line-height: 1.55;
	letter-spacing: 0.03em;
}

.tc-media-page__book-sub {
	margin: 0 0 clamp(14px, 1.6vw, 20px);
	padding-bottom: clamp(12px, 1.4vw, 18px);
	border-bottom: 1px solid var(--rl-line);
	color: var(--rl-green-700);
	font-size: 13.5px;
	font-weight: 700;
	line-height: 1.7;
}

.tc-media-page__book-text p {
	color: var(--rl-slate);
	font-size: 14px;
	line-height: 2;
}

.tc-media-page__book-cta {
	margin-top: clamp(16px, 1.8vw, 22px);
	text-align: end;
}

.tc-amazon-btn {
	border-radius: var(--rl-pill);
	box-shadow: 0 6px 16px rgba(240, 165, 0, 0.28);
	transition: transform 0.24s var(--rl-ease), box-shadow 0.24s var(--rl-ease);
}

@media (any-hover: hover) {
	.tc-media-page__book:hover {
		box-shadow: var(--rl-sh-2);
	}

	.tc-media-page__book:hover .tc-media-page__book-cover {
		transform: translateY(-4px);
	}

	.tc-amazon-btn:hover {
		transform: translateY(-2px);
		box-shadow: 0 12px 24px rgba(240, 165, 0, 0.34);
	}
}

/* 出版記念パーティー */
.tc-media-event {
	margin-top: clamp(30px, 3.2vw, 52px);
	padding: clamp(26px, 3vw, 52px);
	border: 1px solid var(--rl-line);
	border-radius: var(--rl-r-xl);
	background: linear-gradient(180deg, #ffffff 0%, var(--rl-mist) 100%);
	box-shadow: var(--rl-sh-1);
}

.tc-media-event__title {
	margin: 0 0 clamp(22px, 2.4vw, 34px);
	padding-bottom: clamp(14px, 1.6vw, 20px);
	border-bottom: 0;
	color: var(--rl-ink);
	font-size: clamp(18px, 1.9vw, 25px);
	font-weight: 700;
	letter-spacing: 0.04em;
	text-align: center;
	position: relative;
}

.tc-media-event__title::after {
	content: "";
	position: absolute;
	inset-inline: 0;
	inset-block-end: 0;
	width: 46px;
	height: 3px;
	margin-inline: auto;
	border-radius: 2px;
	background: linear-gradient(90deg, var(--rl-green), var(--rl-green-400));
}

.tc-media-event__figure img {
	border-radius: var(--rl-r);
	box-shadow: var(--rl-sh-1);
	background: var(--rl-mist-2);
}

.tc-media-event__body p {
	color: var(--rl-slate);
	font-size: 14px;
	line-height: 2;
}

.tc-media-event__lead {
	color: var(--rl-ink) !important;
	font-weight: 700;
	font-size: 15px !important;
}

.tc-media-event__close {
	margin-top: clamp(18px, 2vw, 26px);
	padding-top: clamp(16px, 1.8vw, 22px);
	border-top: 1px solid var(--rl-line);
	color: var(--rl-green-700) !important;
	font-weight: 700;
	text-align: center;
}

/* ==================================================================
   14. セミナー（サムネイルグリッド）
   ================================================================== */
.tc-seminar-grid {
	gap: clamp(16px, 1.8vw, 26px);
	max-width: 1000px;
	/* 件数が3件に満たないときも中央に揃える */
	grid-template-columns: repeat(auto-fit, minmax(230px, 316px));
	justify-content: center;
}

.tc-seminar-grid__item {
	position: relative;
	border: 1px solid var(--rl-line);
	border-radius: var(--rl-r-lg);
	box-shadow: var(--rl-sh-1);
	background: #fff;
	transition: transform var(--rl-dur) var(--rl-ease), box-shadow var(--rl-dur) var(--rl-ease);
}

.tc-seminar-grid__item img {
	/* /notice/ など（.c-voice-card__image, 主要CSSで 16:9 指定）とサムネイル比率を統一 */
	aspect-ratio: 16 / 9;
	transition: transform 0.6s var(--rl-ease);
}

.tc-seminar-grid__item .tc-thumb-placeholder {
	aspect-ratio: 16 / 9;
}

/* ホバー時に「詳しく見る」を重ねる */
.tc-seminar-grid__item::after {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: inherit;
	background: linear-gradient(180deg, rgba(15, 36, 54, 0) 40%, rgba(15, 36, 54, 0.5) 100%);
	opacity: 0;
	transition: opacity var(--rl-dur) var(--rl-ease);
	pointer-events: none;
}

@media (any-hover: hover) {
	.tc-seminar-grid__item:hover {
		transform: translateY(-5px);
		box-shadow: var(--rl-sh-2);
	}

	.tc-seminar-grid__item:hover img {
		transform: scale(1.05);
	}

	.tc-seminar-grid__item:hover::after {
		opacity: 1;
	}
}

@media (max-width: 720px) {
	.tc-seminar-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 480px) {
	.tc-seminar-grid {
		grid-template-columns: 1fr;
	}
}

/* ==================================================================
   15. 新着情報
   ================================================================== */
.tc-news {
	max-width: 980px;
	margin-inline: auto;
	border-top: 1px solid var(--rl-line);
}

.tc-news__item {
	position: relative;
	gap: clamp(14px, 2vw, 28px);
	align-items: center;
	padding: clamp(18px, 1.8vw, 24px) clamp(8px, 1vw, 16px);
	border-bottom: 1px solid var(--rl-line);
	transition: background-color 0.24s var(--rl-ease);
}

.tc-news__date {
	flex: 0 0 auto;
	min-width: 104px;
	color: var(--rl-slate-2);
	font-family: var(--font-family-en), var(--font-family-ja);
	font-size: 13.5px;
	font-weight: 400;
	letter-spacing: 0.06em;
}

.tc-news__title {
	flex: 1;
	color: var(--rl-ink);
	font-size: clamp(15px, 1.25vw, 17.5px);
	font-weight: 600;
	line-height: 1.75;
	letter-spacing: 0.02em;
	text-decoration: none;
	transition: color 0.24s var(--rl-ease);
}

.tc-news__item::after {
	content: "";
	flex: none;
	width: 20px;
	height: 20px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236b7f91' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 5l7 7-7 7'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: center;
	background-size: 12px 12px;
	transition: transform 0.26s var(--rl-ease);
}

@media (any-hover: hover) {
	.tc-news__item:hover {
		background: var(--rl-green-050);
	}

	.tc-news__item:hover .tc-news__title {
		color: var(--rl-green-700);
		text-decoration: none;
	}

	.tc-news__item:hover::after {
		transform: translateX(3px);
	}
}

@media (max-width: 600px) {
	.tc-news__item {
		flex-wrap: wrap;
		gap: 6px 14px;
	}

	.tc-news__title {
		flex: 1 0 100%;
		order: 3;
	}
}

/* ==================================================================
   16. CTA バンド
   ================================================================== */
.tc-cta {
	position: relative;
	overflow: hidden;
	padding-block: clamp(56px, 6.5vw, 96px);
	background:
		radial-gradient(70% 110% at 12% 4%, rgba(19, 150, 63, 0.20) 0%, transparent 58%),
		linear-gradient(135deg, #0f2436 0%, #16344c 55%, #0f2436 100%);
	color: #fff;
}

.tc-cta::before {
	content: "";
	position: absolute;
	inset: 0;
	background-image: radial-gradient(rgba(255, 255, 255, 0.075) 1px, transparent 1px);
	background-size: 24px 24px;
	-webkit-mask-image: linear-gradient(200deg, #000 0%, transparent 70%);
	mask-image: linear-gradient(200deg, #000 0%, transparent 70%);
	pointer-events: none;
}

.tc-cta__inner {
	position: relative;
	z-index: 1;
	gap: clamp(26px, 3vw, 40px);
}

.tc-cta .tc-h2,
.tc-cta .tc-h2--invert,
body.home .tc-cta .tc-h2,
body.home .tc-cta .tc-h2--invert {
	color: #fff !important;
}

.tc-cta .tc-cta__lead {
	margin-top: 18px;
	color: rgba(255, 255, 255, 0.8) !important;
	font-size: clamp(14px, 1.2vw, 16px);
	line-height: 2;
}

/* メール（グリーン）／電話（白抜き） */
.tc-cta .tc-cta__cols--grid .wp-block-button .wp-block-button__link {
	min-height: 68px;
	border-radius: var(--rl-pill);
	font-size: clamp(15px, 1.3vw, 17px);
	font-weight: 700;
	letter-spacing: 0.06em;
	transition: transform 0.24s var(--rl-ease), box-shadow 0.24s var(--rl-ease),
		background-color 0.24s var(--rl-ease), color 0.24s var(--rl-ease);
}

.tc-cta .is-style-button-mail .wp-block-button__link,
.tc-cta .is-style-button-mail .wp-element-button {
	background: linear-gradient(135deg, var(--rl-green) 0%, var(--rl-green-600) 100%) !important;
	border: 0 !important;
	box-shadow: 0 14px 30px rgba(19, 150, 63, 0.32);
}

.tc-cta .is-style-button-tel .wp-block-button__link,
.tc-cta .is-style-button-tel .wp-element-button {
	background: rgba(255, 255, 255, 0.06) !important;
	border: 1.5px solid rgba(255, 255, 255, 0.55) !important;
	color: #fff !important;
}

@media (any-hover: hover) {
	.tc-cta .tc-cta__cols--grid .wp-block-button .wp-block-button__link:hover {
		transform: translateY(-3px);
	}

	.tc-cta .is-style-button-tel .wp-block-button__link:hover {
		background: #fff !important;
		border-color: #fff !important;
		color: var(--rl-ink) !important;
	}
}

/* ==================================================================
   17. アクセス
   ================================================================== */
.tc-access {
	gap: clamp(24px, 3vw, 48px);
	align-items: stretch;
}

.tc-access__map-embed {
	overflow: hidden;
	border: 1px solid var(--rl-line);
	border-radius: var(--rl-r-lg);
	box-shadow: var(--rl-sh-1);
	background: var(--rl-mist-2);
}

.tc-access__map-embed iframe {
	display: block;
	width: 100%;
	min-height: 340px;
	border: 0;
}

.tc-access__info {
	padding: clamp(22px, 2.4vw, 34px);
	border: 1px solid var(--rl-line);
	border-radius: var(--rl-r-lg);
	background: #fff;
	box-shadow: var(--rl-sh-1);
}

.tc-company-page__access-address {
	margin: 0 0 14px;
	color: var(--rl-ink);
	font-size: clamp(15px, 1.3vw, 17px);
	font-weight: 700;
	line-height: 1.85;
	letter-spacing: 0.02em;
}

.tc-company-page__maps-link {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	color: var(--rl-green-700);
	font-size: 13.5px;
	font-weight: 700;
	text-decoration: none;
	border-bottom: 1px solid currentColor;
	padding-bottom: 2px;
}

.tc-company-page__access-sub {
	margin: clamp(20px, 2vw, 26px) 0 8px;
	padding-inline-start: 12px;
	border-inline-start: 3px solid var(--rl-green);
	color: var(--rl-ink);
	font-size: 14.5px;
	font-weight: 700;
	letter-spacing: 0.04em;
}

.tc-company-page__access-note {
	margin: 0;
	color: var(--rl-slate);
	font-size: 13.5px;
	line-height: 1.95;
}

/* ==================================================================
   18. 下層ページ共通ヘッダー（MV）
   ================================================================== */
.s-page-header.tc-page-mv {
	position: relative;
	padding-block: clamp(52px, 6vw, 84px);
	background:
		radial-gradient(80% 120% at 12% 0%, rgba(19, 150, 63, 0.09) 0%, transparent 58%),
		linear-gradient(180deg, #ffffff 0%, var(--rl-mist) 100%) !important;
	border-bottom: 1px solid var(--rl-line);
}

.s-page-header.tc-page-mv::before {
	content: "";
	position: absolute;
	inset: 0;
	background-image: radial-gradient(rgba(15, 36, 54, 0.07) 1px, transparent 1px);
	background-size: 22px 22px;
	-webkit-mask-image: linear-gradient(160deg, #000 0%, transparent 60%);
	mask-image: linear-gradient(160deg, #000 0%, transparent 60%);
	pointer-events: none;
}

.s-page-header.tc-page-mv > * {
	position: relative;
	z-index: 1;
}

.tc-page-mv .tc-page-mv__kicker {
	margin-bottom: 12px;
	font-family: var(--font-family-en), var(--font-family-ja);
	font-size: clamp(11px, 0.9vw, 12.5px);
	font-weight: 400;
	letter-spacing: 0.28em;
	color: var(--rl-green);
}

.s-page-header .s-page-header__title {
	color: var(--rl-ink);
	font-size: clamp(26px, 2.8vw, 40px);
	font-weight: 700;
	letter-spacing: 0.04em;
	padding-block-end: clamp(14px, 1.4vw, 20px);
}

.s-page-header .s-page-header__title::before {
	width: 46px;
	height: 3px;
	background: linear-gradient(90deg, var(--rl-green), var(--rl-green-400));
}

/* ==================================================================
   19. フッター（ブランドグリーン）
   ================================================================== */
.tc-footer.s-footer {
	position: relative;
	background: var(--rl-green);
	border-top: none;
}

.tc-footer__nav {
	padding-block: clamp(52px, 5.6vw, 84px);
}

.tc-footer__address,
.tc-footer__tel {
	color: rgba(255, 255, 255, 0.88) !important;
	font-size: 13px;
	letter-spacing: 0.03em;
}

.tc-footer__tel a {
	color: #fff !important;
	font-family: var(--font-family-en), var(--font-family-ja);
	font-size: 18px;
	letter-spacing: 0.03em;
}

.tc-footer__tel-hours {
	display: block;
	margin-inline-start: 0;
	margin-top: 2px;
	font-size: 11.5px;
	opacity: 0.75;
}

.tc-footer__heading {
	margin-bottom: 14px;
	padding-bottom: 12px;
	border-bottom: 1px solid rgba(255, 255, 255, 0.28);
	font-size: 14.5px;
	letter-spacing: 0.06em;
}

.tc-footer__link,
.tc-footer__heading-link {
	transition: color 0.2s var(--rl-ease), opacity 0.2s var(--rl-ease);
}

.tc-footer__list--primary .tc-footer__item,
.tc-footer__list--sub .tc-footer__item {
	line-height: 1.7;
}

.tc-footer__link {
	color: rgba(255, 255, 255, 0.9) !important;
	font-size: 13px;
	letter-spacing: 0.03em;
}

@media (any-hover: hover) {
	.tc-footer__link:hover,
	.tc-footer__heading-link:hover {
		color: #fff !important;
		text-decoration: underline;
		text-underline-offset: 3px;
	}
}

.s-footer__copy-right-area {
	border-top: 1px solid rgba(255, 255, 255, 0.18);
	padding-block: 20px;
	background: rgba(0, 0, 0, 0.12);
}

.s-footer__copyright {
	color: rgba(255, 255, 255, 0.78) !important;
	letter-spacing: 0.06em;
	text-align: center;
}

/* ==================================================================
   20. 右側フローティングボタン
   ================================================================== */
.c-floating-button {
	border-radius: var(--rl-r-sm) 0 0 var(--rl-r-sm);
	box-shadow: -4px 6px 20px rgba(15, 36, 54, 0.18);
	transition: transform 0.24s var(--rl-ease), filter 0.24s var(--rl-ease);
}

.c-floating-button.is-flow {
	background: var(--rl-ink);
}

.c-floating-button__text {
	font-size: 11.5px;
	font-weight: 700;
	letter-spacing: 0.04em;
}

@media (any-hover: hover) {
	.c-floating-button:hover {
		transform: translateX(-3px);
		filter: brightness(1.06);
		opacity: 1;
	}
}

/* ==================================================================
   21. ドロワー（SP）
   ================================================================== */
.s-drawer {
	background: #fff;
}

.s-drawer-nav__list {
	border-top: 1px solid var(--rl-line);
}

.s-drawer .wp-block-list.is-style-list-drawer a,
.s-drawer-nav__item > a,
.s-drawer-nav__toggle {
	color: var(--rl-ink);
	font-weight: 700;
	font-size: 14.5px;
	letter-spacing: 0.04em;
}

.s-drawer .wp-block-list.is-style-list-drawer > li,
.s-drawer-nav__item,
.s-drawer-nav__item--has-child {
	border-bottom: 1px solid var(--rl-line);
}

.s-drawer .wp-block-list.is-style-list-drawer .s-drawer-nav__sub a,
.s-drawer-nav__sub a {
	color: var(--rl-slate);
	font-size: 13.5px;
	font-weight: 600;
}

.s-drawer-nav__sub {
	background: var(--rl-mist) !important;
}

.s-drawer-nav__chevron {
	border-color: var(--rl-green);
}

/* ==================================================================
   22. モーダル（資料ダウンロード）
   ================================================================== */
.tc-doc-modal__title {
	color: var(--rl-ink);
	letter-spacing: 0.03em;
}

.tc-doc-modal__input {
	border-radius: var(--rl-r-sm);
	border-color: var(--rl-line);
}

.tc-doc-modal__input:focus {
	border-color: var(--rl-green);
	box-shadow: var(--rl-ring);
	outline: none;
}

/* ==================================================================
   23. アクセシビリティ / モーション配慮
   ================================================================== */
@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
}

/* ==================================================================
   24. レスポンシブ調整
   ================================================================== */
@media (max-width: 860px) {
	.tc-features3,
	.tc-services3 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.tc-flow__columns {
		grid-template-columns: 1fr;
		gap: 26px;
	}
}

@media (max-width: 600px) {
	.tc-features3,
	.tc-services3 {
		grid-template-columns: 1fr;
	}

	.tc-section__head {
		margin-bottom: 28px;
	}

	.tc-btn.tc-btn--section-link,
	.tc-btn--section-link {
		width: 100%;
		justify-content: center;
		padding-inline: 20px;
	}
}

/* ==================================================================
   25. 下層ページ共通
   ================================================================== */
/* パンくず */
.tc-flow-page__breadcrumb,
.tc-sdetail__breadcrumb {
	padding-block: 16px;
	font-size: 12.5px;
	letter-spacing: 0.03em;
	color: var(--rl-slate-2);
}

.tc-flow-page__breadcrumb a,
.tc-sdetail__breadcrumb a {
	color: var(--rl-slate);
	font-weight: 600;
	transition: color 0.2s var(--rl-ease);
}

@media (any-hover: hover) {
	.tc-flow-page__breadcrumb a:hover,
	.tc-sdetail__breadcrumb a:hover {
		color: var(--rl-green-700);
	}
}

.tc-flow-page__breadcrumb li:not(:last-child)::after,
.tc-sdetail__breadcrumb li:not(:last-child)::after {
	color: var(--rl-line);
}

.tc-flow-page__breadcrumb [aria-current="page"],
.tc-sdetail__breadcrumb [aria-current="page"] {
	color: var(--rl-ink);
	font-weight: 600;
}

/* 下層ページの導入文 */
.tc-page-intro p,
.tc-service-reali__intro,
.tc-sdetail__hero-intro p {
	color: var(--rl-slate);
	font-size: clamp(14.5px, 1.25vw, 16.5px);
	line-height: 2.05;
}

.tc-service-reali__intro-block {
	padding: clamp(20px, 2.2vw, 30px) clamp(20px, 2.4vw, 34px);
	border: 1px solid var(--rl-line);
	border-inline-start: 4px solid var(--rl-green);
	border-radius: var(--rl-r);
	background: linear-gradient(180deg, #fff 0%, var(--rl-mist) 100%);
}

.tc-service-reali__note {
	margin-top: 10px;
	color: var(--rl-slate-2) !important;
	font-size: 13px;
	line-height: 1.9;
}

/* 本文（エディタ出力）の見出しトーン */
.tc-content h2,
.entry-content h2 {
	color: var(--rl-ink);
	letter-spacing: 0.03em;
}

.tc-content h3,
.entry-content h3 {
	color: var(--rl-ink);
	letter-spacing: 0.03em;
}

.tc-content p,
.entry-content p {
	color: var(--rl-slate);
	line-height: 2;
}

/* ------------------------------------------------------------------
   サービス一覧
   ------------------------------------------------------------------ */
.tc-service-reali__list {
	display: grid;
	gap: clamp(18px, 2vw, 26px);
}

.tc-service-reali__block {
	align-items: center;
	gap: clamp(20px, 2.4vw, 34px);
	padding: clamp(18px, 2vw, 26px);
	border: 1px solid var(--rl-line);
	border-bottom: 1px solid var(--rl-line);
	border-radius: var(--rl-r-lg);
	background: #fff;
	box-shadow: var(--rl-sh-1);
	transition: transform var(--rl-dur) var(--rl-ease), box-shadow var(--rl-dur) var(--rl-ease),
		border-color var(--rl-dur) var(--rl-ease);
}

.tc-service-reali__block:last-child {
	padding-bottom: clamp(18px, 2vw, 26px);
	border-bottom: 1px solid var(--rl-line);
}

.tc-service-reali__block-thumb {
	border-radius: var(--rl-r);
	box-shadow: none;
}

.tc-service-reali__block-title {
	margin-bottom: 12px;
	font-size: clamp(18px, 1.8vw, 22px);
	letter-spacing: 0.03em;
}

.tc-service-reali__block-link,
.tc-service-reali__block-link:visited {
	color: var(--rl-ink);
}

.tc-service-reali__block-lead {
	color: var(--rl-slate);
	font-size: 14.5px;
	line-height: 1.95;
}

.tc-service-reali__tags li {
	border-radius: var(--rl-pill);
	background: var(--rl-mist-2);
	color: var(--rl-slate);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.03em;
}

.tc-service-reali__block-more {
	margin-top: clamp(14px, 1.6vw, 20px);
}

.tc-service-reali__block-more-text {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	color: var(--rl-ink);
	font-size: 13.5px;
	font-weight: 700;
	letter-spacing: 0.05em;
	text-decoration: none;
	border-bottom: 0;
}

.tc-service-reali__block-more-text::before {
	content: none;
}

.tc-service-reali__block-more-text::after {
	content: "";
	width: 24px;
	height: 24px;
	border-radius: 50%;
	background-color: var(--rl-ink);
	background-image: var(--rl-arrow-white);
	background-repeat: no-repeat;
	background-position: center;
	background-size: 12px 12px;
	transition: transform 0.26s var(--rl-ease), background-color 0.26s var(--rl-ease);
}

@media (any-hover: hover) {
	.tc-service-reali__block:has(.tc-service-reali__block-link:hover) {
		transform: translateY(-4px);
		border-color: transparent;
		box-shadow: var(--rl-sh-2);
	}

	.tc-service-reali__block:has(.tc-service-reali__block-link:hover) .tc-service-reali__block-more-text::after {
		background-color: var(--rl-green);
		transform: translateX(3px);
	}

	.tc-service-reali__block-link:hover,
	.tc-service-reali__block-link:focus-visible {
		color: var(--rl-green-700);
	}
}

/* ------------------------------------------------------------------
   サービス詳細
   ------------------------------------------------------------------ */
.tc-sdetail__mv {
	background:
		radial-gradient(70% 110% at 88% 0%, rgba(19, 150, 63, 0.09) 0%, transparent 58%),
		linear-gradient(180deg, #ffffff 0%, var(--rl-mist) 100%);
	border-bottom: 1px solid var(--rl-line);
}

.tc-sdetail__mv-kicker {
	color: var(--rl-green);
	font-family: var(--font-family-en), var(--font-family-ja);
	letter-spacing: 0.24em;
}

.tc-sdetail__mv-title {
	color: var(--rl-ink);
	letter-spacing: 0.03em;
	line-height: 1.4;
}

.tc-sdetail__mv-lead {
	color: var(--rl-slate);
	line-height: 2.05;
}

.tc-sdetail__mv-visual img,
.tc-sdetail__band-photo img,
.tc-sdetail__comics-figure img {
	border-radius: var(--rl-r-lg);
	box-shadow: var(--rl-sh-1);
}

.tc-sdetail__hero-tags li {
	border-radius: var(--rl-pill);
	background: var(--rl-green-050);
	color: var(--rl-green-700);
	font-size: 12px;
	font-weight: 700;
}

.tc-sdetail__h3 {
	color: var(--rl-ink);
	letter-spacing: 0.03em;
}

.tc-sdetail__band {
	border-radius: var(--rl-r-xl);
}

.tc-sdetail__feature-card {
	border: 1px solid var(--rl-line);
	border-radius: var(--rl-r-lg);
	background: #fff;
	box-shadow: var(--rl-sh-1);
	overflow: hidden;
	transition: transform var(--rl-dur) var(--rl-ease), box-shadow var(--rl-dur) var(--rl-ease);
}

.tc-sdetail__feature-card-title {
	color: var(--rl-ink);
}

.tc-sdetail__flow > li::before {
	background: linear-gradient(135deg, var(--rl-green) 0%, var(--rl-green-700) 100%);
	box-shadow: 0 8px 20px rgba(19, 150, 63, 0.24);
}

@media (any-hover: hover) {
	.tc-sdetail__feature-card:hover {
		transform: translateY(-5px);
		box-shadow: var(--rl-sh-2);
	}
}

/* ------------------------------------------------------------------
   事務所概要
   ------------------------------------------------------------------ */
.tc-company-page__h2 {
	margin-bottom: clamp(24px, 2.6vw, 36px);
	padding-bottom: 14px;
	border-bottom: 1px solid var(--rl-line);
	color: var(--rl-ink);
	font-size: clamp(20px, 2vw, 27px);
	letter-spacing: 0.04em;
	position: relative;
}

.tc-company-page__h2::after {
	content: "";
	position: absolute;
	inset-inline-start: 0;
	inset-block-end: -1px;
	width: 64px;
	height: 3px;
	border-radius: 2px;
	background: linear-gradient(90deg, var(--rl-green), var(--rl-green-400));
}

.tc-company-page__subhead {
	color: var(--rl-green);
	font-family: var(--font-family-en), var(--font-family-ja);
	letter-spacing: 0.24em;
}

.tc-company-page__message-photo,
.tc-company-page__staff-figure img {
	border-radius: var(--rl-r-lg);
	box-shadow: var(--rl-sh-2);
}

.tc-company-page__rep-name {
	color: var(--rl-ink);
	letter-spacing: 0.05em;
}

.tc-company-page__dl-row {
	border-bottom: 1px solid var(--rl-line);
}

.tc-company-page__label {
	color: var(--rl-ink);
	font-weight: 700;
	letter-spacing: 0.04em;
}

.tc-company-page__prose p,
.tc-company-page__message-copy p,
.tc-company-page__philosophy-lead {
	color: var(--rl-slate);
	line-height: 2.05;
}

.tc-company-page__mvv-mission,
.tc-company-page__mvv-vision {
	border-radius: var(--rl-r-xl);
}

.tc-company-page__mvv-value {
	border: 1px solid var(--rl-line);
	border-radius: var(--rl-r-lg);
	background: #fff;
	box-shadow: var(--rl-sh-1);
}

.tc-company-page__mvv-value-title {
	color: var(--rl-ink);
}

/* 事務所概要ページ内の CTA */
.tc-company-page__cta {
	border-radius: var(--rl-r-xl);
	background:
		radial-gradient(70% 110% at 12% 4%, rgba(19, 150, 63, 0.2) 0%, transparent 58%),
		linear-gradient(135deg, #0f2436 0%, #16344c 55%, #0f2436 100%);
	color: #fff;
}

.tc-company-page__cta-title {
	color: #fff !important;
}

.tc-company-page__cta-lead,
.tc-company-page__cta-hours {
	color: rgba(255, 255, 255, 0.78) !important;
}

.tc-company-page__cta-phone {
	color: #fff !important;
	font-family: var(--font-family-en), var(--font-family-ja);
	letter-spacing: 0.03em;
}

/* ------------------------------------------------------------------
   料金
   ------------------------------------------------------------------ */
.tc-price-section {
	padding-block: clamp(40px, 4.4vw, 68px);
}

.tc-price-tabs {
	gap: 4px;
	border-bottom: 1px solid var(--rl-line);
}

.tc-price-tabs__btn {
	border-radius: var(--rl-r-sm) var(--rl-r-sm) 0 0;
	color: var(--rl-slate);
	font-weight: 700;
	letter-spacing: 0.04em;
	transition: color 0.22s var(--rl-ease), background-color 0.22s var(--rl-ease);
}

.tc-price-tabs__btn.is-active {
	color: var(--rl-green-700);
	background: var(--rl-green-050);
}

.tc-price-table-wrap {
	overflow-x: auto;
	border: 1px solid var(--rl-line);
	border-radius: var(--rl-r-lg);
	box-shadow: var(--rl-sh-1);
	background: #fff;
}

.tc-price-table {
	border-collapse: collapse;
	width: 100%;
}

.tc-price-table thead th {
	background: var(--rl-ink);
	color: #fff;
	font-size: 13.5px;
	font-weight: 700;
	letter-spacing: 0.06em;
	padding-block: 16px;
}

.tc-price-table thead th:first-child {
	border-start-start-radius: var(--rl-r-lg);
}

.tc-price-table thead th:last-child {
	border-start-end-radius: var(--rl-r-lg);
}

.tc-price-table tbody td {
	border-bottom: 1px solid var(--rl-line);
	color: var(--rl-slate);
	font-size: 14.5px;
	padding-block: 15px;
}

.tc-price-table tbody tr:last-child td {
	border-bottom: 0;
}

.tc-price-table tbody tr:nth-child(even) td {
	background: #fbfdfe;
}

.tc-price-table tbody td:last-child {
	color: var(--rl-green-700);
	font-weight: 700;
	font-size: 15.5px;
}

.tc-price-tax-note {
	margin-top: 14px;
	padding: 14px 18px;
	border-radius: var(--rl-r-sm);
	background: var(--rl-green-050);
	color: var(--rl-green-700);
	font-size: 12.5px;
	line-height: 1.8;
}

/* 料金シミュレーター */
.tc-price-section--sim,
.tc-price-sim {
	border-radius: var(--rl-r-xl);
}

.tc-price-section--sim {
	background:
		radial-gradient(70% 110% at 12% 4%, rgba(19, 150, 63, 0.22) 0%, transparent 58%),
		linear-gradient(135deg, #0f2436 0%, #16344c 55%, #0f2436 100%) !important;
}

.tc-price-sim__field-label,
.tc-price-sim__result-label {
	color: rgba(255, 255, 255, 0.78);
	font-size: 12.5px;
	font-weight: 700;
	letter-spacing: 0.06em;
}

.tc-price-sim__pill {
	border-radius: var(--rl-pill);
	font-weight: 700;
	letter-spacing: 0.04em;
	transition: background-color 0.22s var(--rl-ease), color 0.22s var(--rl-ease);
}

.tc-price-sim__result-amount {
	color: #fff;
	font-family: var(--font-family-en), var(--font-family-ja);
	letter-spacing: 0.02em;
}

.tc-price-plan,
.tc-price-plans > * {
	border-radius: var(--rl-r-lg);
}

/* ------------------------------------------------------------------
   よくある質問
   ------------------------------------------------------------------ */
.tc-faq-section__heading {
	position: relative;
	padding: 16px 20px 16px 22px;
	border: 0;
	border-inline-start: 4px solid var(--rl-green);
	border-radius: 0 var(--rl-r-sm) var(--rl-r-sm) 0;
	background: linear-gradient(90deg, var(--rl-green-050) 0%, rgba(255, 255, 255, 0) 100%);
	color: var(--rl-ink);
	font-size: clamp(17px, 1.5vw, 20px);
	font-weight: 700;
	letter-spacing: 0.04em;
}

.tc-faq-list {
	display: grid;
	gap: 12px;
}

.tc-faq-item {
	border: 1px solid var(--rl-line);
	border-radius: var(--rl-r);
	background: #fff;
	box-shadow: var(--rl-sh-1);
	overflow: hidden;
	transition: border-color 0.24s var(--rl-ease), box-shadow 0.24s var(--rl-ease);
}

.tc-faq-item[open],
.tc-faq-item.is-open {
	border-color: var(--rl-green-100);
	box-shadow: var(--rl-sh-2);
}

.tc-faq-item__q {
	gap: 14px;
	padding: 18px 20px;
	transition: background-color 0.22s var(--rl-ease);
}

.tc-faq-item__q-text {
	color: var(--rl-ink);
	font-size: clamp(14.5px, 1.25vw, 16px);
	font-weight: 700;
	line-height: 1.7;
	letter-spacing: 0.02em;
}

.tc-faq-item__mark {
	border-radius: var(--rl-r-xs);
	font-family: var(--font-family-en), var(--font-family-ja);
	font-weight: 400;
}

.tc-faq-item__mark--q {
	background: var(--rl-green-050);
	color: var(--rl-green-700);
}

.tc-faq-item__mark--a {
	background: var(--rl-ink);
	color: #fff;
}

.tc-faq-item__a {
	padding: 0 20px 20px;
	border-top: 1px solid var(--rl-line-2);
}

.tc-faq-item__a-text {
	color: var(--rl-slate);
	font-size: 14px;
	line-height: 2;
}

@media (any-hover: hover) {
	.tc-faq-item__q:hover {
		background: var(--rl-mist);
	}
}

/* ------------------------------------------------------------------
   ご契約の流れ（下層ページ）
   ------------------------------------------------------------------ */
.tc-flow-page__cta,
.tc-flow-page__cta-inner {
	border-radius: var(--rl-r-xl);
}

/* ------------------------------------------------------------------
   お問い合わせフォーム
   ------------------------------------------------------------------ */
.tc-contact__form {
	padding: clamp(22px, 2.6vw, 40px);
	border: 1px solid var(--rl-line);
	border-radius: var(--rl-r-xl);
	background: #fff;
	box-shadow: var(--rl-sh-1);
}

.tc-contact__label {
	color: var(--rl-ink);
	font-size: 13.5px;
	font-weight: 700;
	letter-spacing: 0.04em;
}

.tc-contact__req {
	border-radius: var(--rl-r-xs);
	background: var(--rl-green);
	color: #fff;
	font-size: 10.5px;
	font-weight: 700;
	letter-spacing: 0.06em;
	padding: 3px 8px;
}

.tc-contact__input,
.tc-contact__select,
.tc-contact__textarea {
	border: 1px solid var(--rl-line);
	border-radius: var(--rl-r-sm);
	background: #fdfefe;
	color: var(--rl-ink);
	font-size: 15px;
	transition: border-color 0.2s var(--rl-ease), box-shadow 0.2s var(--rl-ease),
		background-color 0.2s var(--rl-ease);
}

.tc-contact__input:focus,
.tc-contact__select:focus,
.tc-contact__textarea:focus {
	border-color: var(--rl-green);
	background: #fff;
	box-shadow: var(--rl-ring);
	outline: none;
}

.tc-btn.tc-contact__submit,
.tc-contact__submit.tc-btn--section-link {
	min-width: min(100%, 340px);
	justify-content: center;
	border-radius: var(--rl-pill);
	background: linear-gradient(135deg, var(--rl-green) 0%, var(--rl-green-600) 100%);
	border: 0;
	color: #fff;
	box-shadow: 0 12px 28px rgba(19, 150, 63, 0.26);
	font-weight: 700;
	font-size: clamp(15px, 1.2vw, 16.5px);
	letter-spacing: 0.08em;
	transition: transform 0.24s var(--rl-ease), box-shadow 0.24s var(--rl-ease);
}

.tc-contact__submit.tc-btn--section-link::after {
	background-color: rgba(255, 255, 255, 0.22);
}

@media (any-hover: hover) {
	.tc-contact__submit.tc-btn--section-link:hover {
		transform: translateY(-2px);
		background: linear-gradient(135deg, var(--rl-green-600) 0%, var(--rl-green-700) 100%);
		border: 0;
		color: #fff;
		box-shadow: 0 18px 36px rgba(19, 150, 63, 0.32);
	}

	.tc-contact__submit.tc-btn--section-link:hover::after {
		background-color: rgba(255, 255, 255, 0.3);
		transform: translateX(3px);
	}
}

.tc-contact__notice {
	border-radius: var(--rl-r);
	border-inline-start: 4px solid var(--rl-green);
}

.tc-contact__notice--error {
	border-inline-start-color: #dc2626;
}

.tc-contact__direct {
	padding: clamp(20px, 2.2vw, 30px);
	border: 1px solid var(--rl-line);
	border-radius: var(--rl-r-lg);
	background: var(--rl-mist);
}

.tc-contact__direct-title {
	color: var(--rl-ink);
	letter-spacing: 0.04em;
}

/* ------------------------------------------------------------------
   一覧・アーカイブのカード（新着情報 / コラム / セミナー / お客様の声）
   ------------------------------------------------------------------ */
.c-news-card {
	display: flex;
	flex-direction: column;
	height: 100%;
	overflow: hidden;
	border: 1px solid var(--rl-line);
	border-radius: var(--rl-r-lg);
	background: #fff;
	box-shadow: var(--rl-sh-1);
	transition: transform var(--rl-dur) var(--rl-ease), box-shadow var(--rl-dur) var(--rl-ease),
		border-color var(--rl-dur) var(--rl-ease);
}

.c-news-card__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	gap: 10px;
	padding: clamp(18px, 1.8vw, 24px);
}

.c-news-card__date {
	color: var(--rl-slate-2);
	font-family: var(--font-family-en), var(--font-family-ja);
	font-size: 12.5px;
	letter-spacing: 0.06em;
}

.c-news-card__title {
	margin: 0;
	color: var(--rl-ink);
	font-size: clamp(15px, 1.3vw, 17px);
	font-weight: 700;
	line-height: 1.7;
	letter-spacing: 0.02em;
}

.c-news-card__link {
	color: inherit;
	text-decoration: none;
}

.c-news-card__excerpt {
	flex: 1;
	color: var(--rl-slate);
	font-size: 13.5px;
	line-height: 1.95;
}

.c-news-card__more {
	margin-top: auto;
	color: var(--rl-ink);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.05em;
}

@media (any-hover: hover) {
	.c-news-card:hover {
		transform: translateY(-5px);
		border-color: transparent;
		box-shadow: var(--rl-sh-2);
	}

	.c-news-card__link:hover,
	.c-news-card__link:focus {
		color: var(--rl-green-700);
	}
}

/* ------------------------------------------------------------------
   投稿詳細（お客様の声 / お知らせ / コラム / セミナー）
   ------------------------------------------------------------------ */
.tc-voice-post__title,
.tc-voice-post__entry h1 {
	border-radius: var(--rl-r);
	border-inline-start-width: 4px;
	border-inline-start-color: var(--rl-green);
	background: linear-gradient(90deg, var(--rl-green-050) 0%, rgba(255, 255, 255, 0) 100%);
	color: var(--rl-ink);
	letter-spacing: 0.03em;
}

.tc-voice-post__entry h2 {
	/* 前の要素との間隔をもう少し広く（main.css の margin-top: clamp(32px,...,44px) より増量） */
	margin-top: clamp(44px, 44px + var(--fluid-slope) * 8, 64px) !important;
	border-bottom-color: var(--rl-line);
	color: var(--rl-ink);
	letter-spacing: 0.03em;
}

.tc-voice-post__entry h3 {
	/* 前の要素との間隔をもう少し広く（main.css の margin-top: clamp(24px,...,32px) より増量） */
	margin-top: clamp(34px, 34px + var(--fluid-slope) * 6, 48px) !important;
	color: var(--rl-ink);
}

.tc-voice-post__entry p,
.tc-voice-post__entry li {
	color: var(--rl-slate);
	line-height: 2.05;
}

.tc-voice-post__entry img {
	border-radius: var(--rl-r);
}

.c-button-back {
	border-radius: var(--rl-pill);
	border-color: var(--rl-ink);
	color: var(--rl-ink);
	font-weight: 700;
	letter-spacing: 0.05em;
	transition: background-color 0.24s var(--rl-ease), color 0.24s var(--rl-ease);
}

@media (any-hover: hover) {
	.c-button-back:hover {
		background: var(--rl-ink);
		color: #fff;
	}
}

/* ------------------------------------------------------------------
   強み / 乗り換え ページ
   ------------------------------------------------------------------ */
.tc-strength-card {
	border: 1px solid var(--rl-line);
	border-radius: var(--rl-r-lg);
	background: #fff;
	box-shadow: var(--rl-sh-1);
}

.tc-strength-card__title {
	color: var(--rl-ink);
	letter-spacing: 0.03em;
}

.tc-switch-features__num {
	color: var(--rl-green-700);
	font-family: var(--font-family-en), var(--font-family-ja);
}

.tc-switch-features__title {
	color: var(--rl-ink);
}

.tc-switch-pain-list__item {
	border: 1px solid var(--rl-line);
	border-radius: var(--rl-r);
	background: #fff;
}

.tc-switch-bridge {
	border-radius: var(--rl-r-xl);
}

/* ------------------------------------------------------------------
   資料プレビュー
   ------------------------------------------------------------------ */
.tc-doc-preview__card {
	border: 1px solid var(--rl-line);
	border-radius: var(--rl-r-xl);
	background: #fff;
	box-shadow: var(--rl-sh-1);
}

.tc-doc-preview__title {
	color: var(--rl-ink);
	letter-spacing: 0.03em;
}

/* ------------------------------------------------------------------
   プライバシーポリシー
   ------------------------------------------------------------------ */
.tc-privacy-section h2,
.tc-privacy-article__body h2 {
	color: var(--rl-ink);
	letter-spacing: 0.03em;
}

.tc-privacy-page__dates {
	color: var(--rl-slate-2);
	font-size: 13px;
}

/* ご契約の流れ（下層）: カード内の余白と写真の見せ方 */
.tc-flow-page__body {
	gap: 0;
	padding: clamp(20px, 2vw, 26px) 0 clamp(20px, 2vw, 26px);
}

.tc-flow-page__texts {
	gap: 14px;
	padding-inline: clamp(18px, 1.8vw, 24px);
}

.tc-flow-page__para {
	color: var(--rl-slate);
	font-size: 14px;
	line-height: 2;
}

.tc-flow-page__body .tc-flow__figure {
	margin-block: clamp(18px, 1.8vw, 24px) 12px;
	aspect-ratio: 16 / 10;
}

.tc-flow-page__img-caption {
	margin-top: 0;
	padding-inline: clamp(18px, 1.8vw, 24px);
	color: var(--rl-green-700);
	font-size: 12.5px;
	letter-spacing: 0.02em;
}

.tc-flow-page__columns {
	row-gap: clamp(28px, 3vw, 44px);
}

/* オンライン面談予約ボタン（CTA 内・ネイビー背景に合わせる） */
.tc-cta .is-style-button-online .wp-block-button__link.tc-cta-online {
	border-radius: var(--rl-pill) !important;
	border-color: rgba(255, 255, 255, 0.5) !important;
	background: rgba(255, 255, 255, 0.06) !important;
	color: #fff !important;
	box-shadow: none;
}

.tc-cta .is-style-button-online .wp-block-button__link.tc-cta-online .tc-cta-online__sub {
	color: rgba(255, 255, 255, 0.72);
}

@media (any-hover: hover) {
	.tc-cta .is-style-button-online .wp-block-button__link.tc-cta-online:hover {
		background: #fff !important;
		border-color: #fff !important;
		color: var(--rl-ink) !important;
	}

	.tc-cta .is-style-button-online .wp-block-button__link.tc-cta-online:hover .tc-cta-online__sub {
		color: var(--rl-slate);
	}
}

/* メディアページの見出し */
.tc-media-page__h2 {
	position: relative;
	margin-bottom: clamp(24px, 2.6vw, 36px);
	padding-bottom: 14px;
	border-bottom: 1px solid var(--rl-line);
	color: var(--rl-ink);
	font-size: clamp(20px, 2vw, 27px);
	letter-spacing: 0.04em;
}

.tc-media-page__h2::after {
	content: "";
	position: absolute;
	inset-inline-start: 0;
	inset-block-end: -1px;
	width: 64px;
	height: 3px;
	border-radius: 2px;
	background: linear-gradient(90deg, var(--rl-green), var(--rl-green-400));
}

.tc-media-page__section {
	margin-bottom: clamp(48px, 5vw, 80px);
}

/* 一覧ページの記事グリッドの余白 */
.tc-voice-archive,
.tc-news-archive {
	gap: clamp(18px, 2vw, 26px);
}

/* サービス詳細ページ MV の CTA */
.tc-sdetail__mv-cta {
	display: inline-flex;
	align-items: center;
	gap: 14px;
	padding: 15px 20px 15px 28px;
	border-radius: var(--rl-pill);
	background: linear-gradient(135deg, var(--rl-green) 0%, var(--rl-green-600) 100%);
	color: #fff;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-decoration: none;
	box-shadow: 0 12px 28px rgba(19, 150, 63, 0.26);
	transition: transform 0.24s var(--rl-ease), box-shadow 0.24s var(--rl-ease);
}

.tc-sdetail__mv-cta::after {
	content: "";
	width: 26px;
	height: 26px;
	border-radius: 50%;
	background-color: rgba(255, 255, 255, 0.22);
	background-image: var(--rl-arrow-white);
	background-repeat: no-repeat;
	background-position: center;
	background-size: 13px 13px;
	transition: transform 0.26s var(--rl-ease);
}

@media (any-hover: hover) {
	.tc-sdetail__mv-cta:hover {
		transform: translateY(-2px);
		box-shadow: 0 18px 36px rgba(19, 150, 63, 0.32);
	}

	.tc-sdetail__mv-cta:hover::after {
		transform: translateX(3px);
	}
}

/* ==================================================================
   26. 記事未登録時の「準備中」表示
   ================================================================== */
.tc-empty {
	display: grid;
	place-items: center;
	gap: 10px;
	max-width: 720px;
	margin-inline: auto;
	padding: clamp(40px, 5vw, 72px) 24px;
	border: 1px dashed var(--rl-line);
	border-radius: var(--rl-r-lg);
	background: rgba(255, 255, 255, 0.55);
	text-align: center;
}

.tc-empty__title {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	margin: 0;
	color: var(--rl-ink);
	font-size: clamp(16px, 1.4vw, 19px);
	font-weight: 700;
	letter-spacing: 0.1em;
}

.tc-empty__title::before {
	content: "";
	width: 8px;
	height: 8px;
	border-radius: 2px;
	background: var(--rl-green);
	rotate: 45deg;
}

.tc-empty__text {
	margin: 0;
	max-width: 34rem;
	color: var(--rl-slate-2);
	font-size: 13.5px;
	line-height: 1.9;
}

/* ==================================================================
   27. 統一レイヤー — 見出し・本文・余白の唯一の基準
   ------------------------------------------------------------------
   ページごとに個別指定されていた文字サイズ・揃え・余白を、
   :root の型スケール（--rl-fs-*）と余白トークンに集約する。
   サイズを変えるときは :root のトークンだけを編集すること。
   ================================================================== */

/* ---------- H1: 下層ページタイトル ---------- */
.s-page-header .s-page-header__title,
.tc-sdetail__mv-title {
	font-size: var(--rl-fs-h1);
	line-height: 1.35;
	letter-spacing: 0.04em;
}

/* ---------- H2: セクション見出し（全ページ共通・中央揃え） ---------- */
body.home .tc-section .tc-h2,
body.home .tc-cta .tc-h2,
body.home .tc-flow__heading,
.tc-h2,
.tc-flow__heading,
.tc-company-page__h2,
.tc-media-page__h2,
.tc-company-page__cta-title {
	font-size: var(--rl-fs-h2) !important;
	font-weight: 700 !important;
	line-height: 1.4 !important;
	letter-spacing: 0.04em;
}

/* 事務所概要・メディア: 左寄せ＋全幅の下線 → 他ページと同じ中央見出しに */
.tc-company-page__h2,
.tc-media-page__h2 {
	position: static;
	margin: 0 0 var(--rl-head-gap);
	padding-bottom: 0;
	border-bottom: 0;
	color: var(--rl-ink);
	text-align: center;
}

.tc-company-page__h2::after,
.tc-media-page__h2::after {
	content: "";
	position: static;
	display: block;
	width: 46px;
	height: 3px;
	margin: clamp(14px, 1.4vw, 20px) auto 0;
	border-radius: 2px;
	background: linear-gradient(90deg, var(--rl-green), var(--rl-green-400));
}

/* 英字アイキャッチ: data-en（トップ）と .tc-company-page__label を同一デザインに */
.tc-company-page__label {
	display: block;
	margin: 0 0 12px;
	font-family: var(--font-family-en), var(--font-family-ja);
	font-size: clamp(11px, 0.9vw, 12.5px);
	font-weight: 400;
	letter-spacing: 0.28em;
	text-transform: uppercase;
	text-align: center;
	color: var(--rl-green);
}

.tc-company-page__cta .tc-company-page__label {
	color: #7ddb9f;
}

/* ---------- H3: 小見出し・キャッチコピー・ブロック見出し ---------- */
.tc-h3,
.tc-message__body .tc-h3,
.tc-company-page__message-lead,
.tc-company-page__philosophy-lead,
.tc-company-page__mvv-label-ja,
.tc-media-page__book-title,
.tc-media-page__h3,
.tc-media-event__title,
.tc-service-reali__block-title,
.tc-strength-card__title,
.tc-faq-section__heading,
.tc-sdetail__h3,
.tc-sdetail__comics-heading,
.tc-contact__direct-title {
	font-size: var(--rl-fs-h3);
	font-weight: 700;
	line-height: var(--rl-lh-heading);
	letter-spacing: 0.03em;
	color: var(--rl-ink);
}

/* ---------- H4: カード見出し ---------- */
.tc-feature__title,
.tc-service__title,
.c-voice-card__title,
.c-news-card__title,
.tc-doc__title,
.tc-flow__title,
.tc-sdetail__feature-card-title,
.tc-company-page__mvv-value-title,
.tc-company-page__access-sub {
	font-size: var(--rl-fs-h4);
	font-weight: 700;
	line-height: 1.6;
	letter-spacing: 0.03em;
}

/* ---------- リード文 ---------- */
.tc-section__sub,
.tc-top-hero__desc,
.tc-cta .tc-cta__lead,
.tc-company-page__cta-lead,
.tc-page-intro p,
.tc-service-reali__intro,
.tc-sdetail__mv-lead {
	font-size: var(--rl-fs-lead);
	line-height: 2;
}

/* ---------- 本文 ---------- */
.tc-message__body p,
.tc-company-page__prose p,
.tc-company-page__profile,
.tc-company-page__dl dt,
.tc-company-page__dl dd,
.tc-media-page__book-text p,
.tc-media-event__body p,
.tc-strength-card__content,
.tc-strength-card__content p,
.tc-switch-bridge__lead,
.tc-switch-bridge__body,
.tc-switch-bridge__note,
.tc-flow-page__para,
.tc-privacy-page__intro,
.tc-privacy-article__body,
.tc-privacy-article__body p,
.tc-faq-item__a-text,
.tc-voice-post__entry p,
.tc-voice-post__entry li,
.tc-content p,
.entry-content p {
	font-size: var(--rl-fs-body);
	line-height: var(--rl-lh-body);
	color: var(--rl-slate);
}

.tc-media-event__lead {
	font-size: var(--rl-fs-body) !important;
}

/* ---------- 小さい本文（カード説明） ---------- */
.tc-feature__desc,
.tc-feature__body .tc-feature__desc,
.tc-service__desc,
.c-voice-card__excerpt p,
.c-news-card__excerpt,
.tc-flow__desc,
.tc-service-reali__block-lead,
.tc-company-page__access-note,
.tc-company-page__mvv-value-desc,
.tc-price-plan__desc,
.tc-doc-preview__lead {
	font-size: var(--rl-fs-small);
	line-height: 1.9;
}

/* ---------- キャプション・注記 ---------- */
.tc-service-reali__note,
.tc-price-tax-note,
.tc-flow-page__img-caption,
.c-news-card__date,
.tc-news__date {
	font-size: var(--rl-fs-caption);
}

/* ==================================================================
   コンテナ幅・左右余白の統一（全ページ 1280px + ガター）
   ================================================================== */
.tc-flow-page__breadcrumb,
.tc-sdetail__breadcrumb,
.tc-news-archive.l-container-wide,
.tc-voice-archive.l-container-wide {
	box-sizing: border-box;
	width: 100%;
	max-inline-size: calc(var(--content-size) + var(--tc-site-gutter) * 2);
	margin-inline: auto;
	padding-inline: var(--tc-site-gutter);
}

.tc-news-archive,
.tc-voice-archive {
	padding-block: clamp(40px, 4.4vw, 64px) var(--rl-section-y);
}

/* ==================================================================
   セクション上下余白の統一
   ================================================================== */
.tc-company-page__section,
.tc-company-page__body > .tc-company-page__section:first-child,
.tc-price-section,
.tc-flow-page__steps-wrap {
	padding-block: var(--rl-section-y);
}

.tc-company-page__body {
	padding-bottom: 0;
}

.tc-media-page__body {
	padding-block: var(--rl-section-y);
}

.tc-media-page__section {
	margin-bottom: var(--rl-section-y);
}

.tc-section__head,
.tc-company-page__h2,
.tc-media-page__h2 {
	margin-bottom: var(--rl-head-gap);
}

/* 事務所概要ページの背景の交互パターンを他ページと揃える */
.tc-company-page__section--message,
.tc-company-page__section--access {
	background: linear-gradient(180deg, #f8fbfc 0%, var(--rl-mist) 46%, #eff5f8 100%);
	border-block: 1px solid var(--rl-line-2);
}

.tc-company-page__section--philosophy,
.tc-company-page__section--staff,
.tc-company-page__section--overview {
	background: #fff;
}

/* ==================================================================
   事務所概要ページ個別の整え
   ================================================================== */
/* 概要表・アクセスは中央の読みやすい幅に */
.tc-company-page__dl,
.tc-company-page__section--access .l-container-content > :not(.tc-company-page__label):not(.tc-company-page__h2) {
	max-width: 880px;
	margin-inline: auto;
}

.tc-company-page__dl {
	border-top: 1px solid var(--rl-line);
}

.tc-company-page__dl dt {
	color: var(--rl-ink);
	font-weight: 700;
}

.tc-company-page__section--access .l-container-content > :not(.tc-company-page__label):not(.tc-company-page__h2):not(:last-child) {
	margin-bottom: 0;
}

.tc-company-page__access-address {
	margin-bottom: 14px !important;
}

/* 代表あいさつ: キャッチは他ページの小見出しと同じトーン */
.tc-company-page__message-lead {
	margin-bottom: clamp(18px, 1.8vw, 24px);
}

.tc-company-page__subhead {
	margin: clamp(24px, 2.4vw, 32px) 0 8px;
	font-family: var(--font-family-en), var(--font-family-ja);
	font-size: var(--rl-fs-caption);
	font-weight: 400;
	letter-spacing: 0.24em;
	color: var(--rl-green);
}

.tc-company-page__rep-name {
	font-size: var(--rl-fs-h4);
}

/* ミッション／ビジョン／バリューの小見出し */
.tc-company-page__mvv-label {
	align-items: baseline;
	gap: 14px;
	margin-bottom: clamp(16px, 1.6vw, 22px);
}

.tc-company-page__mvv-label-en {
	font-family: var(--font-family-en), var(--font-family-ja);
	font-size: var(--rl-fs-caption);
	font-weight: 400;
	letter-spacing: 0.24em;
	color: var(--rl-green);
}

.tc-company-page__mvv-label-line {
	background: var(--rl-line) !important;
	height: 1px;
}

.tc-company-page__mvv-mission,
.tc-company-page__mvv-vision {
	border-radius: var(--rl-r-lg);
}

/* お問い合わせ帯: 画面端いっぱいのため角丸はつけない */
.tc-company-page__cta {
	border-radius: 0;
	padding-block: var(--rl-section-y);
}

.tc-company-page__cta-phone a {
	color: #fff !important;
	font-size: clamp(26px, 2.4vw, 32px);
}

/* ---------- 統一レイヤー: 詳細度で負けていた箇所の補正 ---------- */
/* H3 */
.tc-strength-page .tc-strength-card__title {
	font-size: var(--rl-fs-h3);
	line-height: var(--rl-lh-heading);
	color: var(--rl-ink);
}

/* H4: お客様の声カード（トップのスライダー・一覧とも） */
.c-voice-card .c-voice-card__title {
	font-size: var(--rl-fs-h4);
	font-weight: 700;
	line-height: 1.6;
}

/* 本文 */
.tc-privacy-page__intro p,
.tc-media-page__section--sns > p,
.tc-sdetail__flow > li > p,
.tc-company-page__message-copy .tc-company-page__profile {
	font-size: var(--rl-fs-body);
	line-height: var(--rl-lh-body);
	color: var(--rl-slate);
}

/* 注記 */
.tc-page-intro .tc-service-reali__note {
	font-size: var(--rl-fs-small);
	line-height: 1.9;
}

/* 一覧ページ（お客様の声・コラム・セミナー）: 画面いっぱい → 他ページと同じ 1280px 幅に */
.tc-voice-archive.l-container-wide {
	max-width: calc(var(--content-size) + var(--tc-site-gutter) * 2) !important;
	width: 100% !important;
	margin-inline: auto;
	padding-inline: var(--tc-site-gutter) !important;
}

/* 事務所概要: ビジョンの枠上部の緑ライン（旧デザインの装飾）を撤去 */
.tc-company-page__mvv-vision::before {
	content: none;
}

/* ==================================================================
   28. 日本語の改行ルール
   ------------------------------------------------------------------
   - 全体: 句読点が行頭に来ないよう line-break: strict。
   - 長い本文: 最終行が1〜2文字だけ残らないよう text-wrap: pretty。
   - 見出し・リード・短文: phrase-break.js が句読点の後に <wbr> を入れて .rl-phrase を付与。
     句読点以外では改行せず、1行に収まらない語句だけ任意位置で折り返す。
     （JS が動かない環境では .rl-phrase が付かず、通常の折り返しのまま）
   ================================================================== */
body {
	line-break: strict;
}

main p,
main li,
main dd {
	text-wrap: pretty;
}

.rl-phrase {
	word-break: keep-all;
	overflow-wrap: anywhere;
	line-break: strict;
}

/* 見出しは行の長さをそろえる */
main h1.rl-phrase,
main h2.rl-phrase,
main h3.rl-phrase,
.tc-section__sub.rl-phrase {
	text-wrap: balance;
}

/* ==================================================================
   29. モバイルでの可読性（小さすぎる文字の底上げ）
   ================================================================== */
.tc-flow__badge-step {
	font-size: 11px;
	letter-spacing: 0.12em;
}

.tc-contact__req {
	font-size: 11px;
}

/* 長い本文の末尾を1行にまとめる（phrase-break.js が付与） */
.rl-nowrap {
	white-space: nowrap;
}

/* ==================================================================
   30. モバイル調整
   ================================================================== */
@media (max-width: 600px) {
	/* トップ4バナー: 2列でも語句が途中で切れない文字サイズに */
	.tc-top-link__overlay {
		gap: 6px;
		padding: 14px 12px 14px;
	}

	.tc-top-link__title {
		padding-inline-start: 10px;
		font-size: 14.5px;
		line-height: 1.45;
	}

	.tc-top-link__desc {
		padding-inline-start: 10px;
		font-size: 11.5px;
		line-height: 1.65;
	}

	/* 事務所概要: ミッション／ビジョン枠の内側余白を詰めて1行の文字数を確保 */
	.tc-company-page__mvv-mission,
	.tc-company-page__mvv-vision {
		padding: 28px 22px;
	}
}

/* モバイル: ヘッダー外枠の余白をなくし、ロゴと電話・メニューボタンを端まで寄せる
   （main.css の .l-container-wide の左右余白が公式の padding-inline: 0 を上書きしていた） */
@media (max-width: 739px) {
	.l-container-wide.s-header__container {
		padding: 0;
	}
}

/* ==================================================================
   31. サービス詳細: 外国人雇用・登録支援機関サポート（.tc-fx）
   ------------------------------------------------------------------
   ヒーロー・課題／解決帯・FAQ・料金カード・CTA 帯は既存コンポーネントを流用。
   以下はこのページ固有のセクション。
   ================================================================== */

/* ヒーロー見出し（3行のキャッチ） */
.tc-fx-mv__title {
	font-size: clamp(28px, 3vw, 42px);
	line-height: 1.45;
}

.tc-fx-mv__line {
	display: block;
}

.tc-fx-mv__title em {
	font-style: normal;
	color: var(--rl-green-700);
	background-image: linear-gradient(90deg, rgba(43, 177, 91, 0.3), rgba(43, 177, 91, 0.14));
	background-repeat: no-repeat;
	background-size: 100% 0.3em;
	background-position: 0 92%;
}

.tc-fx-mv .tc-sdetail__mv-lead {
	font-size: var(--rl-fs-body);
	line-height: 2;
}

/* 課題: 番号付きリスト */
.tc-fx-numlist {
	display: grid;
	gap: 12px;
	margin: 18px 0 0;
	padding: 0;
	list-style: none;
}

.tc-fx-numlist li {
	display: flex;
	align-items: flex-start;
	gap: 14px;
	padding: 16px 18px;
	border-radius: var(--rl-r);
	background: rgba(255, 255, 255, 0.72);
	box-shadow: 0 1px 2px rgba(15, 36, 54, 0.06);
}

.tc-fx-numlist__num {
	flex: none;
	font-family: var(--font-family-en), var(--font-family-ja);
	font-size: 20px;
	line-height: 1.3;
	color: var(--rl-green-700);
	letter-spacing: 0.04em;
}

.tc-fx-numlist__text {
	color: var(--rl-ink);
	font-size: var(--rl-fs-body);
	font-weight: 700;
	line-height: 1.75;
}

/* 解決: チェックリスト */
.tc-fx-checklist {
	display: grid;
	gap: 12px;
	margin: 18px 0 0;
	padding: 0;
	list-style: none;
}

.tc-fx-checklist li {
	position: relative;
	padding: 16px 18px 16px 54px;
	border: 1px solid var(--rl-line);
	border-radius: var(--rl-r);
	background: #fff;
	color: var(--rl-ink);
	font-size: var(--rl-fs-body);
	font-weight: 700;
	line-height: 1.75;
}

.tc-fx-checklist li::before {
	content: "";
	position: absolute;
	inset-inline-start: 18px;
	inset-block-start: 18px;
	width: 22px;
	height: 22px;
	border-radius: 50%;
	background-color: var(--rl-green);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: center;
	background-size: 13px 13px;
}

/* 選ばれる理由 */
.tc-fx-reasons {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: var(--rl-gap);
}

.tc-fx-reason {
	position: relative;
	padding: clamp(26px, 2.6vw, 36px) clamp(22px, 2.2vw, 30px);
	border: 1px solid var(--rl-line);
	border-top: 3px solid var(--rl-green);
	border-radius: var(--rl-r-lg);
	background: #fff;
	box-shadow: var(--rl-sh-1);
}

.tc-fx-reason__num {
	margin: 0 0 12px;
	font-family: var(--font-family-en), var(--font-family-ja);
	font-size: clamp(34px, 3vw, 44px);
	line-height: 1;
	color: var(--rl-green-100);
	-webkit-text-stroke: 1px var(--rl-green);
}

.tc-fx-reason__title {
	margin: 0 0 12px;
	color: var(--rl-ink);
	font-size: var(--rl-fs-h4);
	font-weight: 700;
	line-height: 1.6;
}

.tc-fx-reason__text {
	margin: 0;
	color: var(--rl-slate);
	font-size: var(--rl-fs-small);
	line-height: 1.95;
}

/* 外部監査人のお知らせ */
.tc-fx-notice {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(240px, 300px);
	gap: clamp(22px, 3vw, 44px);
	align-items: center;
	padding: clamp(26px, 3vw, 44px);
	border: 1px solid var(--rl-line);
	border-inline-start: 5px solid var(--rl-amber);
	border-radius: var(--rl-r-lg);
	background: #fff;
	box-shadow: var(--rl-sh-1);
}

.tc-fx-notice__date {
	display: inline-flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 10px;
	margin: 0 0 14px;
	padding: 6px 14px;
	border-radius: var(--rl-pill);
	background: #fff4e5;
	color: #b25e00;
	font-size: var(--rl-fs-caption);
	font-weight: 700;
	letter-spacing: 0.04em;
}

.tc-fx-notice__date time {
	padding-inline-end: 10px;
	border-inline-end: 1px solid rgba(178, 94, 0, 0.3);
}

.tc-fx-notice__title {
	margin: 0 0 16px;
	color: var(--rl-ink);
	font-size: var(--rl-fs-h3);
	font-weight: 700;
	line-height: var(--rl-lh-heading);
}

.tc-fx-notice__main p:not(.tc-fx-notice__date) {
	margin: 0 0 10px;
	color: var(--rl-slate);
	font-size: var(--rl-fs-body);
	line-height: var(--rl-lh-body);
}

.tc-fx-notice__aside {
	padding: 24px 22px;
	border-radius: var(--rl-r);
	background: var(--rl-green-050);
	text-align: center;
}

.tc-fx-notice__price-label {
	margin: 0 0 6px;
	color: var(--rl-green-700);
	font-size: var(--rl-fs-caption);
	font-weight: 700;
	letter-spacing: 0.06em;
}

.tc-fx-notice__price {
	margin: 0 0 16px;
	color: var(--rl-ink);
	font-size: clamp(30px, 2.8vw, 38px);
	font-weight: 700;
	line-height: 1.2;
}

.tc-fx-notice__price-unit {
	margin-inline-end: 4px;
	font-size: 14px;
	font-weight: 700;
	color: var(--rl-slate);
}

.tc-fx-notice__price-from {
	font-size: 18px;
}

.tc-fx-notice__link {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	color: var(--rl-ink);
	font-size: 13.5px;
	font-weight: 700;
	text-decoration: none;
	border-bottom: 1.5px solid currentColor;
	padding-bottom: 2px;
}

/* 他社比較 */
.tc-fx-compare {
	overflow: hidden;
	border: 1px solid var(--rl-line);
	border-radius: var(--rl-r-lg);
	background: #fff;
	box-shadow: var(--rl-sh-1);
}

.tc-fx-compare__table {
	width: 100%;
	border-collapse: collapse;
	table-layout: fixed;
}

.tc-fx-compare__table th,
.tc-fx-compare__table td {
	padding: 18px 20px;
	border-bottom: 1px solid var(--rl-line-2);
	vertical-align: middle;
	text-align: start;
	font-size: var(--rl-fs-small);
	line-height: 1.75;
}

.tc-fx-compare__table thead th {
	background: var(--rl-mist);
	color: var(--rl-slate);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.04em;
}

.tc-fx-compare__table thead th:first-child {
	width: 22%;
}

.tc-fx-compare__table thead th.is-reali {
	background: var(--rl-green);
	color: #fff;
}

.tc-fx-compare__table tbody th {
	color: var(--rl-ink);
	font-weight: 700;
	background: #fbfdfe;
}

.tc-fx-compare__table td {
	color: var(--rl-slate);
}

.tc-fx-compare__table td.is-reali {
	background: var(--rl-green-050);
	color: var(--rl-ink);
	font-weight: 700;
}

.tc-fx-compare__table tbody tr:last-child > * {
	border-bottom: 0;
}

.tc-fx-compare__table td {
	display: table-cell;
}

.tc-fx-compare__table td > span:last-child {
	display: inline;
}

.tc-fx-mark {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 26px;
	height: 26px;
	margin-inline-end: 10px;
	border-radius: 50%;
	font-size: 14px;
	font-weight: 700;
	vertical-align: -2px;
}

.tc-fx-mark.is-best {
	background: var(--rl-green);
	color: #fff;
}

.tc-fx-mark.is-mid {
	background: #fff4e5;
	color: #b25e00;
}

.tc-fx-mark.is-no {
	background: var(--rl-mist-2);
	color: var(--rl-slate-2);
}

/* サポート内容 */
.tc-fx-support-main {
	padding: clamp(24px, 3vw, 40px);
	border: 1px solid var(--rl-line);
	border-radius: var(--rl-r-xl);
	background: #fff;
	box-shadow: var(--rl-sh-1);
}

.tc-fx-support-main__head {
	display: flex;
	gap: 18px;
	align-items: flex-start;
	margin-bottom: clamp(20px, 2.4vw, 30px);
}

.tc-fx-support__num {
	flex: none;
	margin: 0 0 10px;
	font-family: var(--font-family-en), var(--font-family-ja);
	font-size: 28px;
	line-height: 1;
	color: var(--rl-green);
	letter-spacing: 0.04em;
}

.tc-fx-support__title {
	margin: 0 0 10px;
	color: var(--rl-ink);
	font-size: var(--rl-fs-h4);
	font-weight: 700;
	line-height: 1.6;
}

.tc-fx-support-main .tc-fx-support__title {
	font-size: var(--rl-fs-h3);
}

.tc-fx-support__text {
	margin: 0;
	color: var(--rl-slate);
	font-size: var(--rl-fs-small);
	line-height: 1.9;
}

.tc-fx-duties {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 12px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.tc-fx-duty {
	padding: 18px 16px 20px;
	border-radius: var(--rl-r);
	background: var(--rl-mist);
}

.tc-fx-duty__num {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	margin-bottom: 10px;
	border-radius: 50%;
	background: var(--rl-green);
	color: #fff;
	font-family: var(--font-family-en), var(--font-family-ja);
	font-size: 14px;
}

.tc-fx-duty__title {
	margin: 0 0 6px;
	color: var(--rl-ink);
	font-size: 14.5px;
	font-weight: 700;
	line-height: 1.55;
}

.tc-fx-duty__text {
	margin: 0;
	color: var(--rl-slate);
	font-size: 13px;
	line-height: 1.8;
}

.tc-fx-supports {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: var(--rl-gap);
	margin-top: var(--rl-gap);
}

.tc-fx-support {
	padding: clamp(22px, 2.4vw, 30px);
	border: 1px solid var(--rl-line);
	border-radius: var(--rl-r-lg);
	background: #fff;
	box-shadow: var(--rl-sh-1);
}

/* FAQ */
.tc-fx-faq {
	max-width: 880px;
	margin-inline: auto;
}

/* ご相談から定着までの流れ（縦のタイムライン） */
.tc-fx-steps {
	position: relative;
	max-width: 880px;
	margin: 0 auto;
	padding: 0;
	list-style: none;
}

.tc-fx-step {
	position: relative;
	display: grid;
	grid-template-columns: 56px minmax(0, 1fr);
	gap: 20px;
	padding-bottom: 20px;
}

.tc-fx-step:not(:last-child)::before {
	content: "";
	position: absolute;
	inset-block: 56px 0;
	inset-inline-start: 27px;
	width: 2px;
	background: repeating-linear-gradient(180deg, var(--rl-green-100) 0 6px, transparent 6px 12px);
}

.tc-fx-step__num {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 56px;
	height: 56px;
	border-radius: 50%;
	background: linear-gradient(135deg, var(--rl-green) 0%, var(--rl-green-700) 100%);
	box-shadow: 0 8px 20px rgba(19, 150, 63, 0.24), 0 0 0 5px var(--rl-mist);
	color: #fff;
	font-family: var(--font-family-en), var(--font-family-ja);
	font-size: 20px;
}

.tc-fx-step__body {
	padding: 18px 22px;
	border: 1px solid var(--rl-line);
	border-radius: var(--rl-r);
	background: #fff;
	box-shadow: var(--rl-sh-1);
}

.tc-fx-step__title {
	margin: 0 0 6px;
	color: var(--rl-ink);
	font-size: var(--rl-fs-h4);
	font-weight: 700;
	line-height: 1.6;
}

.tc-fx-step__badge {
	display: inline-block;
	margin: 0 0 8px;
	padding: 3px 12px;
	border-radius: var(--rl-pill);
	background: var(--rl-green-050);
	color: var(--rl-green-700);
	font-size: var(--rl-fs-caption);
	font-weight: 700;
}

.tc-fx-step__text {
	margin: 0;
	color: var(--rl-slate);
	font-size: var(--rl-fs-small);
	line-height: 1.9;
}

/* 料金プラン */
.tc-fx-plans {
	max-width: 880px;
	margin-inline: auto;
}

.tc-fx-plan {
	border-radius: var(--rl-r-lg);
}

.tc-fx-plan .tc-price-plan__label {
	margin-top: 0;
	font-size: var(--rl-fs-h4);
}

.tc-fx-plan__price {
	margin: 10px 0 6px;
	font-size: clamp(32px, 3vw, 40px);
	font-weight: 700;
	line-height: 1.2;
	color: var(--rl-ink);
}

.tc-fx-plan__price span {
	margin-inline-start: 4px;
	font-size: 15px;
	font-weight: 700;
	color: var(--rl-slate);
}

.tc-fx-plan__target {
	margin: 0 0 14px;
	padding-bottom: 14px;
	border-bottom: 1px solid var(--rl-line);
	color: var(--rl-green-700);
	font-size: var(--rl-fs-small);
	font-weight: 700;
}

.tc-fx-plan.is-featured .tc-fx-plan__price,
.tc-fx-plan.is-featured .tc-fx-plan__price span {
	color: inherit;
}

.tc-fx-plan.is-featured .tc-fx-plan__target {
	color: inherit;
	border-bottom-color: rgba(255, 255, 255, 0.3);
}

.tc-fx-plans__note {
	max-width: 880px;
	margin: 16px auto 0;
	color: var(--rl-slate-2);
	font-size: var(--rl-fs-caption);
	line-height: 1.8;
}

/* 最後の CTA */
.tc-fx-cta__actions {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 14px;
	width: 100%;
	max-width: 720px;
}

.tc-fx-cta__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 64px;
	padding: 14px 24px;
	border-radius: var(--rl-pill);
	font-size: clamp(15px, 1.3vw, 17px);
	font-weight: 700;
	letter-spacing: 0.04em;
	text-decoration: none;
	transition: transform 0.24s var(--rl-ease), background-color 0.24s var(--rl-ease), color 0.24s var(--rl-ease);
}

.tc-fx-cta__btn.is-tel {
	border: 1.5px solid rgba(255, 255, 255, 0.55);
	background: rgba(255, 255, 255, 0.06);
	color: #fff;
	font-family: var(--font-family-en), var(--font-family-ja);
}

.tc-fx-cta__btn.is-form {
	background: linear-gradient(135deg, var(--rl-green) 0%, var(--rl-green-600) 100%);
	box-shadow: 0 14px 30px rgba(19, 150, 63, 0.32);
	color: #fff;
}

@media (any-hover: hover) {
	.tc-fx-cta__btn:hover {
		transform: translateY(-3px);
	}

	.tc-fx-cta__btn.is-tel:hover {
		background: #fff;
		color: var(--rl-ink);
	}
}

.tc-fx-cta__trust {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 10px 22px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.tc-fx-cta__trust li {
	position: relative;
	padding-inline-start: 22px;
	color: rgba(255, 255, 255, 0.86);
	font-size: var(--rl-fs-small);
	font-weight: 700;
}

.tc-fx-cta__trust li::before {
	content: "";
	position: absolute;
	inset-inline-start: 0;
	inset-block-start: 50%;
	width: 14px;
	height: 14px;
	translate: 0 -50%;
	border-radius: 50%;
	background-color: var(--rl-green-400);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: center;
	background-size: 9px 9px;
}

/* ---------- レスポンシブ ---------- */
@media (max-width: 1024px) {
	.tc-fx-duties {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.tc-fx-supports,
	.tc-fx-reasons {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 760px) {
	.tc-fx-reasons,
	.tc-fx-supports {
		grid-template-columns: 1fr;
	}

	.tc-fx-notice {
		grid-template-columns: 1fr;
		border-inline-start-width: 1px;
		border-top: 5px solid var(--rl-amber);
	}

	/* 比較表: 行ごとのカード表示に切り替え */
	.tc-fx-compare {
		overflow: visible;
		border: 0;
		background: transparent;
		box-shadow: none;
	}

	.tc-fx-compare__table,
	.tc-fx-compare__table tbody,
	.tc-fx-compare__table tr,
	.tc-fx-compare__table th,
	.tc-fx-compare__table td {
		display: block;
		width: 100%;
	}

	.tc-fx-compare__table thead {
		position: absolute;
		width: 1px;
		height: 1px;
		overflow: hidden;
		clip: rect(0 0 0 0);
	}

	.tc-fx-compare__table tr {
		margin-bottom: 12px;
		overflow: hidden;
		border: 1px solid var(--rl-line);
		border-radius: var(--rl-r);
		background: #fff;
		box-shadow: var(--rl-sh-1);
	}

	.tc-fx-compare__table tbody th {
		padding: 12px 16px;
		background: var(--rl-mist);
	}

	.tc-fx-compare__table td {
		display: flex;
		align-items: flex-start;
		gap: 10px;
		padding: 12px 16px;
	}

	.tc-fx-compare__table td::before {
		content: attr(data-label);
		flex: none;
		width: 7.5em;
		color: var(--rl-slate-2);
		font-size: 12px;
		font-weight: 700;
		line-height: 2.2;
	}

	.tc-fx-compare__table td.is-reali::before {
		color: var(--rl-green-700);
	}

	.tc-fx-mark {
		flex: none;
		margin-inline-end: 0;
	}

	.tc-fx-duties {
		grid-template-columns: 1fr;
	}

	.tc-fx-step {
		grid-template-columns: 44px minmax(0, 1fr);
		gap: 14px;
	}

	.tc-fx-step__num {
		width: 44px;
		height: 44px;
		font-size: 17px;
	}

	.tc-fx-step:not(:last-child)::before {
		inset-block-start: 44px;
		inset-inline-start: 21px;
	}

	.tc-fx-cta__actions {
		grid-template-columns: 1fr;
	}
}

/* ==================================================================
   32. 記事詳細のアイキャッチ画像（お客様の声 / セミナー・お知らせ / 新着情報 / コラム）
   ------------------------------------------------------------------
   タイトル（h1）と本文（the_content）の間に表示する。
   ================================================================== */
.tc-voice-post__eyecatch {
	margin: clamp(20px, 2.4vw, 32px) 0;
}

.tc-voice-post__eyecatch img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: var(--rl-r-lg);
	box-shadow: var(--rl-sh-1);
}

/* ==================================================================
   33. 記事本文内の表（テーブル）
   ------------------------------------------------------------------
   投稿本文（Gutenberg のテーブルブロック等）で作成した表の見た目を統一。
   罫線の色をそろえ、見出し行を分かりやすくし、セル内の余白を少し詰める。
   コアブロックの `.wp-block-table td/th{border:1px solid}` や、
   テーマ側の素の `th/td{border-block-end:...}` より確実に優先させるため
   !important を付けている（読み込み順に依存させないため）。
   ================================================================== */
.entry-content .wp-block-table {
	/* 表を中央寄せしつつ、最低限の横幅を確保 */
	width: min(100%, 48rem);
	min-width: min(100%, 40rem);
	max-width: 100%;
	margin-block-start: 1.75em;
	margin-inline: auto;
	overflow: hidden;
	border: 1px solid var(--rl-line);
	border-radius: var(--rl-r);
	box-shadow: var(--rl-sh-1);
}

.entry-content table {
	margin: 0;
	border: 0;
}

/*
	列幅を文字量に合わせる。
	WPコアの `.has-fixed-layout { table-layout: fixed }` だと列が均等割りになり、
	「項目 / 内容」のような表で左列が不自然に広くなる。
	auto に戻し、colgroup の固定 % も無効化する。
*/
.entry-content .wp-block-table table,
.entry-content .wp-block-table table.has-fixed-layout {
	table-layout: auto;
	width: 100%;
	min-width: 0;
}

.entry-content .wp-block-table col {
	width: auto !important;
}

/* 1列目（ラベル）は内容幅＋下限、2列目は内容側の下限を確保 */
.entry-content .wp-block-table th:first-child,
.entry-content .wp-block-table td:first-child {
	width: 1%;
	min-width: 7em;
	white-space: nowrap;
	background: var(--rl-green-050) !important;
	color: var(--rl-ink) !important;
	font-weight: 700;
}

.entry-content .wp-block-table th:last-child,
.entry-content .wp-block-table td:last-child {
	min-width: 22em;
}

.entry-content th,
.entry-content td {
	border: 1px solid var(--rl-line) !important;
	padding: 12px 18px !important;
	background: #fff !important;
	color: var(--rl-slate) !important;
	font-size: var(--rl-fs-small);
	line-height: 1.8;
	vertical-align: top;
}

.entry-content .wp-block-table > table {
	border-radius: inherit;
}

/* has-fixed-layout などで table 自体に外枠が付いていても、
   ラッパー .wp-block-table 側の枠と二重にならないようにする */
.entry-content .wp-block-table table {
	border: 0;
}

@media (max-width: 600px) {
	.entry-content .wp-block-table {
		width: 100%;
	}

	.entry-content .wp-block-table table,
	.entry-content .wp-block-table table.has-fixed-layout {
		min-width: 0;
		width: 100%;
	}

	/* 狭い画面ではラベル列の nowrap / 下限を外し、折り返しを許可 */
	.entry-content .wp-block-table th:first-child,
	.entry-content .wp-block-table td:first-child {
		width: auto;
		min-width: 0;
		white-space: normal;
	}

	.entry-content .wp-block-table th:last-child,
	.entry-content .wp-block-table td:last-child {
		min-width: 0;
	}

	.entry-content th,
	.entry-content td {
		padding: 10px 14px !important;
	}
}
