@charset "UTF-8";
/*
 * デザイン v2 — サイト全体（色・書体・ヘッダー・フッター）
 * inc/design-v2.php が v2 のリクエストだけ読み込む。すべて .caco-v2（#body_wrap）の下に効かせる。
 * 基本の色は SWELL の設定値を実行時に差し替えて出す（design-v2.php）。ここは SWELL の設定で表せない分だけ。
 */

.caco-v2 {
	--v2-ink: #1c1c1c;
	--v2-text: #262626;
	--v2-sub: #595959;
	--v2-shu: #c1121f;          /* 朱。白地の文字・ボタン（白に対し 6.2:1） */
	--v2-shu-deep: #9e0e19;
	--v2-shu-bright: #ef4a4f;   /* 墨地の上の大きな数字用（墨に対し 4.7:1） */
	--v2-paper: #ffffff;
	--v2-wash: #f4f3f0;
	--v2-rule: #e2e0db;
	--v2-mincho: "Shippori Mincho B1", "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", "Noto Serif JP", serif;
	--v2-hand: "Noto Serif JP", var(--v2-mincho); /* TOP の大見出し（標準の明朝の最も太いもの） */
	--v2-wrap: 1200px;
	--v2-gutter: clamp(16px, 4vw, 40px);

	/* 子テーマの部品（料金表・CTA・ロゴ・フッター直前）の色を朱と墨に寄せる */
	--caco-primary: var(--v2-shu);
	--caco-primary-dark: var(--v2-shu-deep);
	--caco-primary-rgb: 193, 18, 31;
	--caco-shadow-gold: 0 10px 22px rgba(193, 18, 31, 0.14);
	--caco-text: var(--v2-text);
	--caco-text-muted: var(--v2-sub);
	--caco-text-faint: #686b71; /* 元の #8b8e94 は白地で 3.3:1。日付・注記の字を 4.5:1 以上に */
	--caco-bg-soft: #f8f7f5;
	--caco-bg-section: var(--v2-wash);
	--caco-border: var(--v2-rule);

	/* SWELL のエディター設定（リストのチェック・番号）は紺で保存されているので、ここで差し替える */
	--color_list_check: var(--v2-shu);
	--color_list_num: var(--v2-ink);
}

/* ─── 見出しの明朝（SWELL と同じく、ブロック部品・FAQ・記事一覧の見出しと子テーマの部品は外す） ─── */

.caco-v2 .post_content :is(h2, h3, h4):not([class^="swell-block-"]):not(.faq_q):not(.p-postList__title):not([class*="caco-"]),
.caco-v2 .c-pageTitle,
.caco-v2 .c-postTitle__ttl,
.caco-v2 .c-secTitle,
.caco-v2 .caco-footer-columns__title,
.caco-v2 .caco-footer-faq__title {
	font-family: var(--v2-mincho);
	font-weight: 800;
	letter-spacing: 0.04em;
}

/* ─── ヘッダー ─── */

.caco-v2 .l-header {
	box-shadow: none;
	border-bottom: 1px solid var(--v2-rule);
}

/* 実績バッジの画像（ヘッダー内ウィジェット）は出さない。スクロール中の固定ヘッダーにも同じものが出るので両方で消す。
 * リンク先（?page_id=12）が無いページで、数字も古い（年間100件。今は200件以上）ため（2026-10-18 本人） */
.caco-v2 :is(.l-header, .l-fixHeader) .w-header {
	display: none;
}

.caco-v2 .c-headLogo.-txt .caco-h1-brand {
	font-family: var(--v2-mincho);
	font-weight: 800;
}

.caco-v2 .c-gnav > .menu-item > a .ttl {
	font-size: 14px;
	font-weight: 600;
	letter-spacing: 0.04em;
}

@media (min-width: 960px) {
	.caco-v2 .l-header__inner {
		gap: 8px;
	}

	.caco-v2 .c-gnav > .menu-item > a {
		padding: 0 12px;
	}

	.caco-v2 .c-gnav > .c-gnav__s {
		order: 1;
	}

	.caco-v2 .c-gnav > .caco-v2-gnavCta {
		display: flex;
		align-items: center;
		order: 2;
		margin-left: 12px;
	}

	.caco-v2 .c-gnav > .caco-v2-gnavCta > a {
		height: auto;
		padding: 0;
	}

	.caco-v2 .c-gnav > .caco-v2-gnavCta > a::after {
		display: none;
	}

	.caco-v2 .c-gnav > .caco-v2-gnavCta > a .ttl {
		display: inline-flex;
		align-items: center;
		min-height: 44px;
		padding: 0 1.5em;
		border-radius: 999px;
		background: var(--v2-shu);
		color: #fff;
		font-weight: 700;
		transition: background-color 0.2s;
	}

	.caco-v2 .c-gnav > .caco-v2-gnavCta > a:hover .ttl {
		background: var(--v2-shu-deep);
	}
}

/* 960〜1279px はロゴとメニューが1段に収まらないので、少し小さくし、ロゴの1行目を割らない */
@media (min-width: 960px) and (max-width: 1279px) {
	/* SWELL はロゴの字の大きさを内側のリンクに持つ（24px）。そこを小さくする */
	.caco-v2 .l-header .c-headLogo.-txt .c-headLogo__link {
		font-size: 20px;
	}

	.caco-v2 .c-headLogo.-txt .caco-h1-main {
		white-space: nowrap;
	}

	.caco-v2 .c-gnav > .menu-item > a {
		padding: 0 6px;
	}

	.caco-v2 .c-gnav > .menu-item > a .ttl {
		font-size: 12px;
		letter-spacing: 0;
	}

	.caco-v2 .c-gnav > .caco-v2-gnavCta {
		margin-left: 6px;
	}

	.caco-v2 .c-gnav > .caco-v2-gnavCta > a .ttl {
		min-height: 40px;
		padding: 0 1.1em;
	}

	/* この幅ではメニューが1段に収まらないので、検索をメニューから外す */
	.caco-v2 .c-gnav > .c-gnav__s {
		display: none;
	}
}

/* 960〜1079px はさらに詰める（960px で約20px はみ出していた） */
@media (min-width: 960px) and (max-width: 1079px) {
	.caco-v2 .l-header .c-headLogo.-txt .c-headLogo__link {
		font-size: 18px;
	}

	.caco-v2 .c-gnav > .menu-item > a {
		padding: 0 4px;
	}

	.caco-v2 .c-gnav > .caco-v2-gnavCta {
		margin-left: 4px;
	}

	.caco-v2 .c-gnav > .caco-v2-gnavCta > a .ttl {
		padding: 0 0.9em;
	}
}

/* ─── グローバルナビ（PC）: 子メニューのある項目に矢印、サブメニューはパネルにして1行に収める ─── */

@media (min-width: 960px) {
	.caco-v2 .c-gnav > .menu-item > a::after {
		background-color: var(--v2-shu);
	}

	.caco-v2 .c-gnav > .menu-item-has-children > a .ttl::after {
		content: "";
		display: inline-block;
		width: 0.38em;
		height: 0.38em;
		margin-left: 0.5em;
		border-right: 1.5px solid currentColor;
		border-bottom: 1.5px solid currentColor;
		opacity: 0.6;
		transform: translateY(-0.25em) rotate(45deg);
	}

	.caco-v2 .c-gnav .sub-menu {
		width: auto;
		min-width: 17em;
		padding: 8px;
		border-top: 2px solid var(--v2-shu);
		border-radius: 0 0 8px 8px;
		background: #fff;
		box-shadow: 0 20px 40px -18px rgba(20, 20, 20, 0.32);
	}

	.caco-v2 .c-gnav > .menu-item > .sub-menu {
		transform: translate(-50%, 8px);
		transition: opacity 0.2s, visibility 0.2s, transform 0.2s;
	}

	/* マウスを重ねたときと、キーボードで中へ移ったときに開く */
	.caco-v2 .c-gnav > .menu-item:hover > .sub-menu,
	.caco-v2 .c-gnav > .menu-item:focus-within > .sub-menu {
		opacity: 1;
		visibility: visible;
		transform: translate(-50%, 0);
	}

	.caco-v2 .c-gnav .sub-menu a {
		display: flex;
		align-items: center;
		gap: 0.7em;
		padding: 11px 14px;
		border-radius: 4px;
		color: var(--v2-ink);
		font-size: 14px;
		font-weight: 600;
		white-space: nowrap;
	}

	.caco-v2 .c-gnav .sub-menu::before {
		border-radius: inherit;
	}

	.caco-v2 .c-gnav .sub-menu a::before {
		content: "";
		position: static;
		flex: none;
		width: 5px;
		height: 5px;
		margin: 0 2px 0 0;
		border: 0;
		border-top: 2px solid var(--v2-shu);
		border-right: 2px solid var(--v2-shu);
		background: none;
		transform: rotate(45deg);
	}

	.caco-v2 .c-gnav .sub-menu a:hover {
		background: var(--v2-wash);
		color: var(--v2-shu);
	}

	.caco-v2 .c-gnav .sub-menu .ttl {
		font-size: inherit;
	}
}

@media (min-width: 960px) and (prefers-reduced-motion: reduce) {
	.caco-v2 .c-gnav > .menu-item > .sub-menu {
		transform: translateX(-50%);
		transition: none;
	}
}

/* ─── グローバルナビ（PC）: 文字の調子、今いるページの印、固定ヘッダー ─── */

@media (min-width: 960px) {
	/* 相談ボタン（朱の地）は除く。ボタンの文字は白（本人） */
	.caco-v2 .c-gnav > .menu-item:not(.caco-v2-gnavCta) > a .ttl {
		font-weight: 700;
		letter-spacing: 0.04em;
		color: var(--v2-ink);
	}

	/* ロゴの1行目は割らない */
	.caco-v2 .l-header .c-headLogo.-txt .caco-h1-main {
		white-space: nowrap;
	}

	.caco-v2 .c-gnav > .menu-item:not(.caco-v2-gnavCta) > a:hover .ttl {
		color: var(--v2-shu);
	}

	/* 朱の地のボタンの文字は、マウスを重ねても白 */
	.caco-v2 .c-gnav > .caco-v2-gnavCta > a .ttl,
	.caco-v2 .c-gnav > .caco-v2-gnavCta > a:hover .ttl {
		color: #fff;
	}

	/* 今いるページ（とその親）の項目に朱の下線 */
	.caco-v2 .c-gnav > :is(.current-menu-item, .current-menu-ancestor, .current-menu-parent, .current_page_parent):not(.menu-item-home):not(.caco-v2-gnavCta) > a::after {
		transform: scaleX(1);
	}

	.caco-v2 .c-gnav > :is(.current-menu-item, .current-menu-ancestor, .current-menu-parent, .current_page_parent):not(.menu-item-home):not(.caco-v2-gnavCta) > a .ttl {
		color: var(--v2-shu);
	}

	/* スクロールで出る固定ヘッダー: 白地に薄い影、細い朱の線 */
	.caco-v2 .l-fixHeader {
		border-top: 2px solid var(--v2-shu);
		background: rgba(255, 255, 255, 0.97);
		box-shadow: 0 10px 24px -18px rgba(20, 20, 20, 0.45);
	}
}

/* ─── スマホ（〜959px）: ヘッダー・メニューの引き出し・下部の固定メニュー ─── */

@media (max-width: 959px) {
	.caco-v2 .l-header {
		border-bottom: 1px solid var(--v2-rule);
		background: #fff;
	}

	.caco-v2 .l-header .c-iconBtn {
		color: var(--v2-ink);
	}

	/* メニューの引き出し */
	.caco-v2 .p-spMenu__inner {
		background: #fff;
	}

	.caco-v2 .p-spMenu .c-widget__title.-spmenu {
		margin-bottom: 8px;
		padding: 0 0 10px;
		border: 0;
		border-bottom: 2px solid var(--v2-shu);
		background: none;
		color: var(--v2-ink);
		font-family: var(--v2-mincho);
		font-size: 15px;
		font-weight: 800;
		letter-spacing: 0.2em;
		text-align: left;
	}

	.caco-v2 .p-spMenu .c-widget__title.-spmenu::before,
	.caco-v2 .p-spMenu .c-widget__title.-spmenu::after {
		content: none;
	}

	/* 項目の頭の矢印は SWELL のアイコン（左 2px）。朱にして、文字に重ならない余白を取る */
	.caco-v2 .c-spnav > .menu-item > a {
		padding: 15px 6px 15px 1.6em;
		border-bottom: 1px solid var(--v2-rule);
		color: var(--v2-ink);
		font-size: 15px;
		font-weight: 700;
		letter-spacing: 0.04em;
	}

	.caco-v2 .c-spnav a::before {
		color: var(--v2-shu);
	}

	.caco-v2 .c-spnav .sub-menu {
		margin: 0;
		padding: 4px 0 8px;
		background: var(--v2-wash);
	}

	.caco-v2 .c-spnav .sub-menu a {
		padding: 11px 6px 11px 2.4em;
		border-bottom: 0;
		color: var(--v2-text);
		font-size: 14px;
		font-weight: 600;
	}

	.caco-v2 .c-spnav .current-menu-item > a {
		color: var(--v2-shu);
	}

	/* 引き出しの末尾の相談ボタン */
	.caco-v2 .c-spnav > .caco-v2-spCta > a::before {
		content: none;
	}

	.caco-v2 .c-spnav > .caco-v2-spCta > a {
		display: flex;
		align-items: center;
		justify-content: center;
		min-height: 52px;
		margin: 20px 0 8px;
		padding: 0 1.5em;
		border: 0;
		border-radius: 999px;
		background: var(--v2-shu);
		color: #fff;
		font-weight: 700;
		letter-spacing: 0.06em;
	}

	/* 下部の固定メニュー: 白地に細い線、「無料相談」は朱 */
	.caco-v2 #fix_bottom_menu {
		border-top: 1px solid var(--v2-rule);
		background: #fff;
		box-shadow: 0 -8px 20px -16px rgba(20, 20, 20, 0.5);
		color: var(--v2-ink);
	}

	.caco-v2 #fix_bottom_menu::before {
		content: none;
	}

	.caco-v2 #fix_bottom_menu .menu_list {
		height: 56px;
		padding: 0;
	}

	.caco-v2 #fix_bottom_menu .menu-item {
		display: flex;
		flex: 1;
		align-items: center;
		justify-content: center;
		align-self: stretch;
	}

	.caco-v2 #fix_bottom_menu .menu-item > a {
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		width: 100%;
		height: 100%;
	}

	.caco-v2 #fix_bottom_menu span {
		font-size: 12px;
		font-weight: 700;
	}

	.caco-v2 #fix_bottom_menu .caco-v2-fbmCta {
		flex: 1.4;
		background: var(--v2-shu);
		color: #fff;
	}

	.caco-v2 #fix_bottom_menu .caco-v2-fbmCta span {
		font-size: 13px;
		letter-spacing: 0.06em;
	}
}

/* ─── フッター（ボタンは SWELL の色のまま） ─── */

.caco-v2 .l-footer a:not(.swell-block-button__link),
.caco-v2 .l-footer .post_content a:not(.swell-block-button__link):hover {
	color: inherit;
}

/* v2 のフッター（tmp/caco-footer-v2.php）: 「ご相談 → メニュー → 会社」の順（PC は左から。キーボードの移動の順と見た目の順をそろえる） */
.caco-v2 .v2-foot {
	color: rgba(255, 255, 255, 0.86);
	font-size: 14px;
	line-height: 1.8;
}

.caco-v2 .v2-foot__inner {
	display: grid;
	gap: 40px;
	max-width: calc(var(--v2-wrap) + 2 * var(--v2-gutter));
	margin: 0 auto;
	padding: 56px var(--v2-gutter) 40px;
}

.caco-v2 .v2-foot__contact {
	order: 1;
}

.caco-v2 .v2-foot__nav {
	order: 2;
	display: grid;
	gap: 28px;
}

.caco-v2 .v2-foot__brand {
	order: 3;
}

.caco-v2 .v2-foot__ttl {
	margin: 0 0 6px;
	color: #fff;
	font-family: var(--v2-mincho);
	font-size: 1.25rem;
	font-weight: 800;
	letter-spacing: 0.08em;
}

.caco-v2 .v2-foot__lead {
	margin: 0 0 18px;
	font-size: 13px;
	color: rgba(255, 255, 255, 0.78);
}

.caco-v2 .v2-foot a.v2-foot__btn {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	min-height: 60px;
	margin-bottom: 12px;
	padding: 10px 20px;
	border: 1px solid rgba(255, 255, 255, 0.7);
	border-radius: 999px;
	color: #fff;
	line-height: 1.4;
	text-align: center;
	text-decoration: none;
	transition: background-color 0.2s, border-color 0.2s;
}

.caco-v2 .v2-foot a.v2-foot__btn--shu {
	border-color: var(--v2-shu);
	background: var(--v2-shu);
}

.caco-v2 .v2-foot .v2-foot__btn--shu:hover {
	border-color: var(--v2-shu-deep);
	background: var(--v2-shu-deep);
	color: #fff;
}

.caco-v2 .v2-foot .v2-foot__btn--line:hover {
	border-color: #fff;
	background: rgba(255, 255, 255, 0.1);
	color: #fff;
}

.caco-v2 .v2-foot__btnMain {
	font-size: 15px;
	font-weight: 700;
	letter-spacing: 0.06em;
}

.caco-v2 .v2-foot__btnSub {
	font-size: 12px;
	opacity: 0.85;
}

.caco-v2 .v2-foot a.v2-foot__textLink {
	display: inline-block;
	padding: 6px 0;
	font-size: 13px;
	color: rgba(255, 255, 255, 0.82);
	text-decoration: underline;
	text-underline-offset: 0.25em;
}

.caco-v2 .v2-foot__head {
	margin: 0 0 4px;
	padding-bottom: 8px;
	border-bottom: 1px solid rgba(255, 255, 255, 0.16);
	color: rgba(255, 255, 255, 0.62);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.14em;
}

.caco-v2 .v2-foot__list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.caco-v2 .v2-foot__list li {
	margin: 0;
	padding: 0;
	border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.caco-v2 .v2-foot .v2-foot__list a {
	display: block;
	padding: 11px 0;
	color: rgba(255, 255, 255, 0.92);
	line-height: 1.55;
	text-decoration: none;
	word-break: auto-phrase;
}

.caco-v2 .v2-foot .v2-foot__list a:hover {
	color: #fff;
	text-decoration: underline;
	text-underline-offset: 0.25em;
}

.caco-v2 .v2-foot__logo {
	display: block;
	width: 64px;
	height: 64px;
	margin-bottom: 14px;
	border-radius: 4px;
	object-fit: cover;
}

.caco-v2 .v2-foot__name {
	margin: 0 0 8px;
	color: #fff;
	font-family: var(--v2-mincho);
	font-size: 15px;
	font-weight: 800;
	letter-spacing: 0.06em;
}

.caco-v2 .v2-foot__addr {
	display: flex;
	flex-direction: column;
	margin: 0 0 12px;
	font-size: 13px;
	font-style: normal;
	line-height: 1.9;
	color: rgba(255, 255, 255, 0.78);
}

.caco-v2 .v2-foot .v2-foot__addr a,
.caco-v2 .v2-foot a.v2-foot__fb {
	color: rgba(255, 255, 255, 0.92);
	text-decoration: underline;
	text-underline-offset: 0.25em;
}

.caco-v2 .v2-foot a.v2-foot__fb {
	display: inline-block;
	padding: 6px 0;
	font-size: 13px;
}

.caco-v2 .v2-foot__bottom {
	max-width: calc(var(--v2-wrap) + 2 * var(--v2-gutter));
	margin: 0 auto;
	padding: 18px var(--v2-gutter) 24px;
	border-top: 1px solid rgba(255, 255, 255, 0.12);
}

.caco-v2 .v2-foot__legal {
	display: flex;
	flex-wrap: wrap;
	gap: 0 22px;
	margin: 0 0 8px;
	padding: 0;
	list-style: none;
}

.caco-v2 .v2-foot .v2-foot__legal a {
	display: inline-block;
	padding: 6px 0;
	font-size: 12px;
	color: rgba(255, 255, 255, 0.72);
	text-decoration: none;
}

.caco-v2 .v2-foot .v2-foot__legal a:hover {
	color: #fff;
	text-decoration: underline;
}

.caco-v2 .v2-foot .v2-sr {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.caco-v2 .v2-foot__copy {
	margin: 0;
	font-size: 12px;
	color: rgba(255, 255, 255, 0.55);
}

@media (min-width: 600px) {
	.caco-v2 .v2-foot__nav {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (min-width: 960px) {
	.caco-v2 .v2-foot__inner {
		grid-template-columns: minmax(0, 3fr) minmax(0, 6fr) minmax(0, 3fr);
		gap: 48px;
		padding-top: 72px;
		padding-bottom: 56px;
	}

	.caco-v2 .v2-foot__nav {
		grid-template-columns: minmax(0, 1.4fr) minmax(0, 1.05fr) minmax(0, 0.75fr); /* サービスの名前が長いので1列目を広く */
		gap: 28px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.caco-v2 .v2-foot .v2-foot__btn {
		transition: none;
	}
}

/* ─── 本文 ─── */

/* 本文中の文字リンクは下線で示す（朱の強調文字と見分けるため）。ウィジェットの post_content は外す */
.caco-v2 .l-mainContent .post_content :is(p, li, td, dd):not([class*="is-style-btn"]):not(.is-style-more_btn) > a:not([class]) {
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.22em;
}

.caco-v2 .l-mainContent .post_content :is(p, li, td, dd):not([class*="is-style-btn"]):not(.is-style-more_btn) > a:not([class]):hover {
	color: var(--v2-shu-deep);
	text-decoration-thickness: 2px;
}

/* SWELL のボタン（赤） */
.caco-v2 .blue_ {
	--the-btn-color: var(--v2-ink); /* フッターの「お問い合わせフォーム」。DB の設定は金（#dd971c） */
}

.caco-v2 .red_ {
	--the-btn-color: var(--v2-shu);
	--the-btn-color2: var(--v2-shu-deep);
	--the-solid-shadow: #7a0a12;
}

/* 料金表の赤は墨にし、朱は「押すもの」（ボタン）だけに使う */
.caco-v2 .caco-prpr {
	--prpr-red: var(--v2-ink);
}

/* お問い合わせフォーム: 入力中の枠と送信ボタンは墨にし、エラーの赤と分ける */
.caco-v2 .wpcf7 {
	--caco-primary: var(--v2-ink);
	--caco-primary-dark: #000;
	--caco-primary-rgb: 28, 28, 28;
}

/* サイドバーの一覧のリンクは墨にする（朱は押すものと強調に残す） */
.caco-v2 .l-sidebar li a {
	color: var(--v2-ink);
}

.caco-v2 .l-sidebar li a:hover,
.caco-v2 .l-sidebar .caco-column-side__item.is-active a {
	color: var(--v2-shu);
}

/* ─── 下層ページ（TOP 以外）: 題・本文の見出し・表・一覧のカード・サイドバー ─── */

/* 本文の見出し: SWELL の「帯」（墨の地に白字）をやめ、TOP と同じ「明朝＋細い墨の線＋朱の短い線」に */
.caco-v2 .l-mainContent .post_content h2:where(:not([class^="swell-block-"]):not(.faq_q):not(.p-postList__title):not([class*="caco-"]):not(.has-background)) {
	position: relative;
	margin-top: 2.6em;
	margin-right: 0;
	margin-left: 0;
	padding: 0 0 0.55em;
	border-bottom: 1px solid var(--v2-ink);
	background: none;
	color: var(--v2-ink);
	font-size: 1.45em;
	line-height: 1.5;
}

.caco-v2 .l-mainContent .post_content h2:where(:not([class^="swell-block-"]):not(.faq_q):not(.p-postList__title):not([class*="caco-"]):not(.has-background))::before {
	content: none;
}

.caco-v2 .l-mainContent .post_content h2:where(:not([class^="swell-block-"]):not(.faq_q):not(.p-postList__title):not([class*="caco-"]):not(.has-background))::after {
	content: "";
	position: absolute;
	bottom: -2px;
	left: 0;
	width: 56px;
	height: 3px;
	background: var(--v2-shu);
}

.caco-v2 .l-mainContent .post_content h2:where(:not([class^="swell-block-"]):not(.faq_q):not(.p-postList__title):not([class*="caco-"]):not(.has-background)):is(.has-text-align-center, .is-style-section_ttl:not(.has-text-align-left):not(.has-text-align-right))::after {
	left: 50%;
	transform: translateX(-50%);
}

.caco-v2 .l-mainContent .post_content h3:where(:not([class^="swell-block-"]):not(.faq_q):not(.p-postList__title):not([class*="caco-"]):not(.has-background)) {
	padding: 0.1em 0 0.1em 0.75em;
	border-left: 3px solid var(--v2-shu);
	color: var(--v2-ink);
	font-size: 1.22em;
	line-height: 1.55;
}

.caco-v2 .l-mainContent .post_content h3:where(:not([class^="swell-block-"]):not(.faq_q):not(.p-postList__title):not([class*="caco-"]):not(.has-background))::before {
	content: none;
}

.caco-v2 .l-mainContent .post_content h4:where(:not([class^="swell-block-"]):not(.faq_q):not(.p-postList__title):not([class*="caco-"]):not(.has-background)) {
	border-left-color: var(--v2-rule);
	color: var(--v2-ink);
}

/* ─── 子テーマの部品（[caco_*]）の見出しと料金表 ─── */

/* 部品の見出しには、SWELL の本文の見出しの飾り（h2 の帯と二重線、h3 の下線、上下の大きな余白）を当てない。
 * SWELL の指定（.post_content h2:where(…)）は部品の指定（クラス1つ）より強く、部品の意図した形が崩れていた */
.caco-v2 .l-mainContent .post_content :is(h2, h3, h4)[class*="caco-"] {
	margin: 0;
	padding: 0;
	border: 0;
	background: none;
	color: var(--v2-ink);
}

.caco-v2 .l-mainContent .post_content :is(h2, h3, h4)[class*="caco-"]::before,
.caco-v2 .l-mainContent .post_content :is(h2, h3, h4)[class*="caco-"]::after {
	content: none;
}

/* 料金表・FAQ の題: ほかの下層ページの h2 と同じ型（明朝＋細い墨の線＋朱の短い線）。前置きの文も左にそろえる */
.caco-v2 .l-mainContent .post_content :is(.caco-pricing__head, .caco-faq__head) {
	text-align: left;
}

.caco-v2 .l-mainContent .post_content h2:is(.caco-pricing__title, .caco-faq__title) {
	position: relative;
	margin: 0 0 0.9em;
	padding: 0 0 0.55em;
	border-bottom: 1px solid var(--v2-ink);
	font-family: var(--v2-mincho);
	font-size: 1.45em;
	font-weight: 800;
	line-height: 1.5;
	letter-spacing: 0.04em;
}

.caco-v2 .l-mainContent .post_content h2:is(.caco-pricing__title, .caco-faq__title)::after {
	content: "";
	position: absolute;
	bottom: -2px;
	left: 0;
	width: 56px;
	height: 3px;
	background: var(--v2-shu);
}

.caco-v2 .l-mainContent .post_content :is(.caco-pricing__lead, .caco-faq__lead) {
	max-width: none;
	margin: 0;
}

/* 料金表のカードの題: 部品の意図した帯（v2 では墨の地に白の字） */
.caco-v2 .l-mainContent .post_content h3.caco-prpr__cardhead {
	padding: 0.85rem 0.9rem;
	background: var(--prpr-red);
	color: #fff;
	font-family: var(--v2-mincho);
	font-size: 1.05rem;
	font-weight: 800;
	line-height: 1.4;
	text-align: center;
}

/* 戦略会議の料金のカードの題・掲載メディアの題（部品の CSS の値を当て直す） */
.caco-v2 .l-mainContent .post_content h3.caco-pricing__tier {
	margin: 0 0 var(--caco-space-xs);
	font-family: var(--v2-mincho);
	font-size: var(--caco-fs-lg);
	font-weight: 800;
}

.caco-v2 .l-mainContent .post_content h3.caco-media-logos__title {
	margin: 0 0 var(--caco-space-md);
	color: var(--caco-text-faint);
	font-size: var(--caco-fs-sm);
	font-weight: 500;
	letter-spacing: 0.12em;
	text-align: center;
}

/* 料金表のカード: 画面の幅ではなく、置かれた場所の幅で列を決める（サイドバーのある本文では2列。4列だと言葉の途中で折り返す） */
.caco-v2 .caco-prpr {
	container-type: inline-size;
}

@container (width < 960px) {
	.caco-v2 .caco-prpr__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@container (width < 520px) {
	.caco-v2 .caco-prpr__grid {
		grid-template-columns: minmax(0, 1fr);
	}
}

@container (width >= 960px) {
	.caco-v2 .caco-prpr__grid {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
}

/* 戦略会議の料金のカード（3枚）: 場所の幅が足りれば3列、足りなければ1列（2列＋1枚の並びにしない） */
.caco-v2 .caco-pricing:not(.caco-prpr) {
	container-type: inline-size;
}

@container (width >= 700px) {
	.caco-v2 .caco-pricing__grid:not(.caco-pricing__grid--2col) {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.caco-v2 .caco-pricing__grid:not(.caco-pricing__grid--2col) .caco-pricing__card {
		padding: 1.5rem 1.25rem 1.25rem;
	}

	.caco-v2 .caco-pricing__grid:not(.caco-pricing__grid--2col) .caco-pricing__price-num {
		font-size: 2.3rem;
	}
}

@container (width < 700px) {
	.caco-v2 .caco-pricing__grid:not(.caco-pricing__grid--2col) {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* 「サービス内容」が無いプランの「—」も、ほかの行と同じく中央に */
.caco-v2 .caco-prpr__row--items > .caco-prpr__dash {
	display: block;
	text-align: center;
}

/* 料金表の囲み（左に朱の線）の中の h4 は、SWELL の h4 の左線を付けない（線が二重になる） */
.caco-v2 .l-mainContent .post_content .caco-pricing__terms h4 {
	margin: 0 0 var(--caco-space-xs);
	padding-left: 0;
	border-left: 0;
	font-size: var(--caco-fs-base);
}

/* 背景のある入れ物（カバー・背景色を選んだグループなど）の中の見出しは、入れ物の文字色を受け継ぐ（暗い地に墨の字にしない） */
.caco-v2 .l-mainContent .post_content :is(.wp-block-cover, .has-background) :is(h2, h3, h4) {
	color: inherit;
}

/* ページの題（固定ページ・一覧） */
.caco-v2 .c-pageTitle {
	margin-bottom: 1.6em;
	font-size: clamp(1.6rem, 1.2rem + 1.4vw, 2.3rem);
	line-height: 1.4;
	letter-spacing: 0.06em;
	color: var(--v2-ink);
}

.caco-v2 .c-pageTitle[data-style="b_bottom"] {
	border-bottom: 1px solid var(--v2-ink);
}

.caco-v2 .c-pageTitle[data-style="b_bottom"] .c-pageTitle__inner {
	padding: 0 0 0.4em;
	border-bottom: 3px solid var(--v2-shu);
}

.caco-v2 .c-pageTitle__subTitle {
	color: var(--v2-sub);
	font-family: var(--v2-mincho);
	font-size: max(12px, 0.5em);
	font-style: normal;
	opacity: 1;
}

/* 記事の題 */
.caco-v2 .c-postTitle__ttl {
	font-size: clamp(1.4rem, 1.1rem + 1.2vw, 2rem);
	line-height: 1.5;
	letter-spacing: 0.04em;
	color: var(--v2-ink);
}

/* 題を写真の上に出す設定（l-topTitleArea）では、SWELL の白い字のまま */
.caco-v2 .l-topTitleArea :is(.c-pageTitle, .c-pageTitle__subTitle, .c-postTitle__ttl) {
	color: inherit;
}

.caco-v2 .p-articleThumb__img,
.caco-v2 .p-articleThumb img {
	border-radius: 6px;
}

/* 本文の表 */
.caco-v2 .l-mainContent .post_content table tbody th {
	background: var(--v2-wash);
	color: var(--v2-ink);
}

.caco-v2 .l-mainContent .post_content :is(table th, table td) {
	border-color: var(--v2-rule);
}

/* 記事の一覧（カード）: TOP のカードと同じ角丸・影・明朝の題 */
.caco-v2 .p-postList.-type-card .p-postList__link {
	overflow: hidden;
	border: 1px solid var(--v2-rule);
	border-radius: 6px;
	background: #fff;
	box-shadow: 0 14px 30px -26px rgba(20, 20, 20, 0.5);
	transition: box-shadow 0.25s, transform 0.25s;
}

.caco-v2 .p-postList.-type-card .p-postList__link:hover {
	box-shadow: 0 18px 36px -22px rgba(20, 20, 20, 0.55);
	transform: translateY(-2px);
}

.caco-v2 .p-postList.-type-card .p-postList__body {
	padding: 0.9em 1em 1.1em;
}

.caco-v2 .p-postList .p-postList__title {
	font-family: var(--v2-mincho);
	font-weight: 800;
	line-height: 1.55;
	color: var(--v2-ink);
}

.caco-v2 .l-footer .p-postList .p-postList__title {
	color: inherit;
}

.caco-v2 .p-postList .c-postThumb__cat {
	border-radius: 999px;
	background: var(--v2-shu);
	color: #fff;
	font-weight: 700;
}

@media (prefers-reduced-motion: reduce) {
	.caco-v2 .p-postList.-type-card .p-postList__link,
	.caco-v2 .p-postList.-type-card .p-postList__link:hover {
		transition: none;
		transform: none;
	}
}

/* サイドバーの見出し: 明朝＋細い墨の線＋朱の短い線 */
.caco-v2 .l-sidebar .c-widget__title {
	position: relative;
	margin-bottom: 1em;
	padding: 0 0 0.5em;
	border-bottom: 1px solid var(--v2-ink);
	background: none;
	color: var(--v2-ink);
	font-family: var(--v2-mincho);
	font-size: 1.05em;
	font-weight: 800;
	letter-spacing: 0.06em;
	text-align: left;
	overflow: visible;
}

.caco-v2 .l-sidebar .c-widget__title::before {
	content: none;
}

.caco-v2 .l-sidebar .c-widget__title::after {
	content: "";
	position: absolute;
	bottom: -2px;
	left: 0;
	width: 40px;
	height: 3px;
	background: var(--v2-shu);
}

/* パンくず */
.caco-v2 .p-breadcrumb {
	color: var(--v2-sub);
}

.caco-v2 .p-breadcrumb .p-breadcrumb__list {
	font-size: 12px;
}

.caco-v2 .p-breadcrumb__item:last-child span {
	opacity: 1;
}

.caco-v2 .p-breadcrumb a:hover {
	color: var(--v2-shu);
}

/* フッターのウィジェットにも .post_content が付くので、本文向けのリストの hover（墨・朱の字、淡い地、字下げ）を墨の地で当てない */
.caco-v2 .l-footer .post_content :is(ul li, ol li, dl dt, dl dd):hover {
	background: none;
	color: inherit;
}

.caco-v2 .l-footer .post_content :is(ul li, ol li):hover {
	padding-left: 0.25em; /* hover でない時と同じ（style.css） */
}

.caco-v2 .l-footer .post_content dl dd:hover {
	border-left-color: var(--caco-border);
}

/* サービス・ガイドのご案内（フッター直前のカード）: 灰色の仮の画像をやめ、名前を題、説明を下に。右に朱の矢印 */
.caco-v2 .caco-footer-service-guide .caco-footer-columns__thumb--placeholder {
	display: none;
}

.caco-v2 .caco-footer-service-guide .caco-footer-columns__meta {
	position: relative;
	gap: 6px;
	padding: 20px 48px 22px 20px;
}

.caco-v2 .caco-footer-service-guide .caco-footer-columns__meta::after {
	content: "";
	position: absolute;
	top: 50%;
	right: 20px;
	width: 8px;
	height: 8px;
	border-top: 2px solid var(--v2-shu);
	border-right: 2px solid var(--v2-shu);
	transform: translateY(-50%) rotate(45deg);
}

.caco-v2 .caco-footer-service-guide .caco-footer-columns__guideName {
	position: static;
	width: auto;
	height: auto;
	margin: 0;
	overflow: visible;
	clip: auto;
	white-space: normal;
	color: var(--v2-ink);
	font-family: var(--v2-mincho);
	font-size: 16px;
	font-weight: 800;
	line-height: 1.5;
}

.caco-v2 .caco-footer-service-guide .caco-footer-columns__head-title {
	color: var(--v2-sub);
	font-size: 13px;
	font-weight: 400;
	line-height: 1.7;
}

/* ロゴの下の行（テレビ・新聞でのPR）は、スマホでも 11px 未満にしない */
.caco-v2 .c-headLogo.-txt .caco-h1-sub {
	font-size: max(11px, 0.5em);
}

/* 記事の書き手の名前のリンクを押しやすく */
.caco-v2 .p-authorBox__name {
	display: inline-block;
	padding: 6px 0;
}

/* ボタンとカードの題は文節で折り返す（「相／談する」「壁打ち戦略／会議」のような折り返しを避ける） */
.caco-v2 :is(.swell-block-button__link, .wp-block-button__link, [class*="__btn"], .v2-btn, .v2-m-btn, .v2-g-btn, .v2-foot__btnMain, .caco-footer-columns__guideName, .v2-svcCard__ttl, .v2-topic__ttl) {
	word-break: auto-phrase;
	text-wrap: balance;
}

.caco-v2 .v2-foot__lead {
	text-wrap: pretty;
}

.caco-v2 .v2-foot__copy {
	word-break: auto-phrase;
}

/* 本文へ飛ぶリンク（キーボードで最初に届く。フォーカスしたときだけ見える） */
.caco-v2 .v2-skip,
.v2-skip {
	position: fixed;
	top: 8px;
	left: 8px;
	z-index: 1000;
	padding: 10px 16px;
	border-radius: 4px;
	background: var(--v2-ink, #1c1c1c);
	color: #fff;
	font-size: 14px;
	font-weight: 700;
	text-decoration: none;
	transform: translateY(-160%);
}

.v2-skip:focus {
	transform: none;
}

/* キーボードで移ったとき、固定のヘッダーと下のメニューに隠れないように */
html:has(.caco-v2) {
	scroll-padding-top: 88px;
	scroll-padding-bottom: 72px;
}

/* 相談のページでは、下の固定メニュー（無料相談への入口）を出さない（そのページにいるため） */
.caco-v2.page-id-291 #fix_bottom_menu {
	display: none;
}

/* ─── よくあるご質問（フッター直前の FAQ と [caco_faq]） ─── */

.caco-v2 .caco-footer-faq__head {
	max-width: var(--caco-content-width);
	margin-right: auto;
	margin-left: auto;
	text-align: left;
}

.caco-v2 .caco-footer-faq__lead,
.caco-v2 .caco-footer-columns__lead,
.caco-v2 .caco-faq__lead {
	color: var(--v2-sub);
}

.caco-v2 .caco-faq__title {
	font-family: var(--v2-mincho);
	font-weight: 800;
}

.caco-v2 :is(.caco-footer-faq__item, .caco-faq__item) {
	border-radius: 4px;
}

.caco-v2 :is(.caco-footer-faq__q, .caco-faq__q):hover,
.caco-v2 :is(.caco-footer-faq__item, .caco-faq__item)[open] :is(.caco-footer-faq__q, .caco-faq__q) {
	background: #faf9f7;
}

/* A. の緑は Q. の朱と並ぶと ○× に見えるので墨にする */
.caco-v2 :is(.caco-footer-faq__a-icon, .caco-faq__a-icon) {
	color: var(--v2-ink);
}

/* ─── フォーカスの見え方 ─── */

.caco-v2 a:focus-visible,
.caco-v2 button:focus-visible,
.caco-v2 summary:focus-visible {
	outline: 2px solid var(--v2-shu);
	outline-offset: 3px;
}

/* 墨地の上では白にする（朱は墨に対して 3:1 に届かない） */
.caco-v2 :is(.l-footer, .l-header__bar, .v2-service__band, .v2-hero__foot, .v2-g-cta) :is(a, button, summary):focus-visible {
	outline-color: #fff;
}
