:root {
	--color-main: #264E34;
	--color-sub: #F5F0E8;
	--color-accent: #C9A227;
	--gradient-main: linear-gradient(#364C3E, #416F51);
}


/******************************/
/* 共通 */
/******************************/
*{
	scroll-behavior: smooth;
}

html {
	scroll-padding-top: 10px;
}

#support,
#news {
	scroll-margin: 78px;
}

@media (max-width: 1070px) {
	html {
		scroll-padding-top: 30px;
	}
	#support,
	#news {
		scroll-margin-top: 68px;
	}
}

body,
h1, h2, h3, h4, h5, h6 {
	font-family: 'Zen Kaku Gothic New', sans-serif;
}

h1, h2, h3, h4, h5, h6{
	font-weight: 900;
}

.en {
	font-family: 'Oswald', sans-serif;
}

.ggl_map iframe {
	width: 100%;
	height: auto;
	aspect-ratio: 21 / 9;
	display: block;
}

@media (max-width: 1024px) {
	.ggl_map iframe {
		aspect-ratio: 16 / 9;
	}
}



/*  余白リセット */
body .p_0 {
	padding: 0 !important;
}


/******************************/
/* SP時 */
/******************************/

/*  余白 */
@media (max-width: 768px) {
	body .sp_mb_0 {
		margin-bottom: 0 !important;
	}

	body .sp_gap_20 {
		gap: 20px !important;
	}
}

/* 表示非表示 */
.pc_only{
	display: block;
}
.sp_only{
	display: none;
}

@media (max-width: 768px){
	.pc_only{
		display: none;
	}
	.sp_only{
		display: block;
	}
}

/*  整列 */
@media (max-width: 768px){
	.sp_ta_l{
		text-align: left !important;
	}
}


/******************************/
/* 共通パーツ */
/******************************/
.cmn_title {
	display: inline-block !important;
	width: fit-content !important;
	background: var(--color-main);
	color: var(--color-main);
	padding: 0.25em 2.4em 0.25em 1.2em;
	clip-path: polygon(0 0, calc(100% - 1.6em) 0, 100% 100%, 0 100%);
	font-size: clamp(1.8rem, 3.5vw, 2.4rem);
	font-weight: 900;
	letter-spacing: 0.15em;
	-webkit-text-stroke: 4px #fff;
	paint-order: stroke fill;
}

.title_m{
	font-size: clamp(1.5rem, 2.5vw, 2rem);
}

/* 共通ボタン */
.cmn_btn .wp-block-button__link {
	display: flex;
	align-items: center;
	justify-content: center;
	position: relative;
	width: 100%;
	background: var(--color-accent);
	color: #fff;
	text-decoration: none;
	font-weight: 700;
	font-size: clamp(1rem, 1.3vw, 1.15rem);
	letter-spacing: 0.12em;
	padding: 1em 4em 1em 2.5em;
	border-radius: 0;
	transition: background 0.25s, filter 0.25s;
}

.cmn_btn .wp-block-button__link::after {
	content: '';
	position: absolute;
	right: 0.6em;
	top: 50%;
	transform: translateY(-50%);
	width: 2.8em;
	height: 2.8em;
	background-color: #fff;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23C9A227' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='9 18 15 12 9 6'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: center;
	background-size: 55%;
	transition: transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.cmn_btn .wp-block-button__link:hover {
	filter: brightness(1.08);
	color: #fff !important;
}

.cmn_btn .wp-block-button__link:hover::after {
	transform: translateY(-50%) translateX(4px);
}

.cmn_btn.is-main-color .wp-block-button__link {
	background: var(--color-main);
}

.cmn_btn.is-main-color .wp-block-button__link::after {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23264E34' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='9 18 15 12 9 6'/%3E%3C/svg%3E");
}


/******************************/
/* アニメーション */
/******************************/

/* カーテンリビール：.reveal_img を画像の親要素に付与 */
.reveal_img {
	position: relative;
	overflow: hidden;
}

.reveal_img::after {
	content: '';
	position: absolute;
	inset: 0;
	background: var(--color-main);
	transform: translateX(0%);
	transition: transform 0.75s cubic-bezier(0.76, 0, 0.24, 1);
	z-index: 1;
}

.reveal_img.is-active::after {
	transform: translateX(101%);
}

.reveal_img img {
	display: block;
	width: 100%;
	transform: scale(1.08);
	transition: transform 0.75s cubic-bezier(0.76, 0, 0.24, 1) 0.1s;
}

.reveal_img.is-active img {
	transform: scale(1);
}

/* 下からフェードイン：.fade_up を付与 */
.fade_up {
	opacity: 0;
	transform: translateY(70px);
	transition: opacity 0.45s cubic-bezier(0.22, 1, 0.36, 1),
	            transform 0.45s cubic-bezier(0.22, 1, 0.36, 1);
}

.fade_up.is-active {
	opacity: 1;
	transform: translateY(0);
}

/* 遅延クラス */
.fade_up.delay_1 { transition-delay: 0.1s; }
.fade_up.delay_2 { transition-delay: 0.2s; }
.fade_up.delay_3 { transition-delay: 0.3s; }
.fade_up.delay_4 { transition-delay: 0.4s; }
.fade_up.delay_5 { transition-delay: 0.5s; }

/* エディタ内では非表示にしない */
.editor-styles-wrapper .fade_up {
	opacity: 1;
	transform: translateY(0);
	transition: none;
}

.editor-styles-wrapper .reveal_img::after {
	display: none;
}

.editor-styles-wrapper .reveal_img img {
	transform: scale(1);
	transition: none;
}


/******************************/
/* ヘッダー */
/******************************/
.site-header {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 100;
	background: transparent;
	box-shadow: none;
	transition: background 0.4s ease, box-shadow 0.4s ease;
}

.site-header.is-scrolled {
	background: #fff;
	box-shadow: 0 2px 12px rgba(0, 0, 0, 0.1);
}

body.home .site-header:not(.is-scrolled) .wp-block-navigation {
	opacity: 0;
	pointer-events: none;
}

body.home .site-header.is-scrolled .wp-block-navigation {
	opacity: 1;
	pointer-events: auto;
	transition: opacity 0.3s ease 0.15s;
}

.header_btn .wp-block-button__link {
	display: flex;
	align-items: center;
	justify-content: center;
	position: relative;
	background: var(--color-accent);
	color: #fff !important;
	text-decoration: none;
	font-weight: 700;
	font-size: 0.85rem;
	letter-spacing: 0.1em;
	padding: 0.6em 3.4em 0.6em 1.4em;
	border-radius: 0;
	white-space: nowrap;
	transition: filter 0.25s;
}

.header_btn .wp-block-button__link::after {
	content: '';
	position: absolute;
	right: 0.6em;
	top: 50%;
	transform: translateY(-50%);
	width: 1.8em;
	height: 1.8em;
	background-color: #fff;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23C9A227' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='9 18 15 12 9 6'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: center;
	background-size: 55%;
	transition: transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.header_btn .wp-block-button__link:hover {
	filter: brightness(1.08);
}

.header_btn .wp-block-button__link:hover::after {
	transform: translateY(-50%) translateX(3px);
}

/* ロゴ */
.site-header .custom-logo-link {
	transition: opacity 0.25s;
}

.site-header .custom-logo-link:hover {
	opacity: 0.7;
}

/* サイトタイトル */
.site-header .wp-block-site-title a {
	transition: color 0.25s;
	text-decoration: none;
}

.site-header .wp-block-site-title a:hover {
	color: var(--color-accent);
}

/* ナビリンク */
.site-header .wp-block-navigation-item__content {
	position: relative;
	transition: color 0.25s;
}

.site-header .wp-block-navigation-item__content::after {
	content: '';
	position: absolute;
	left: 0.5em;
	right: 0.5em;
	bottom: 0.1em;
	height: 2px;
	background: var(--color-accent);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 0.25s cubic-bezier(0.22, 1, 0.36, 1);
}

.site-header .wp-block-navigation-item__content:hover {
	color: var(--color-accent);
}

.site-header .wp-block-navigation-item__content:hover::after {
	transform: scaleX(1);
}

@media (max-width: 1270px) {
	.site-header .custom-logo {
		width: 160px !important;
		height: auto !important;
	}

	.site-header .wp-block-site-title {
		font-size: 0.75rem;
	}

	.site-header .wp-block-navigation__container {
		gap: 0.2em !important;
	}

	.site-header .wp-block-navigation-item__content {
		font-size: 0.8rem;
		padding: 0.4em 0.5em !important;
	}

	.header_btn .wp-block-button__link {
		font-size: 0.78rem;
		padding: 0.5em 2.8em 0.5em 1.1em;
	}
}

.sp_header_logo{
	display: none;
}

/* 1070px以下でハンバーガーメニューに切り替え */
@media (max-width: 1070px) {
	.site-header .wp-block-navigation__responsive-container-open {
		display: flex !important;
		color: var(--color-main);
		background: none;
		border: none;
		cursor: pointer;
		padding: 0.4em;
	}

	.site-header .wp-block-navigation__responsive-container:not(.is-menu-open) {
		display: none !important;
	}

	.sp_header_logo{
		display: block;
		display: table;
		margin: 0 auto;
	}

	.sp_header_logo.wp-block-site-logo .custom-logo {
    width: 250px !important;
	}
}

@media (min-width: 1071px) {
	.site-header .wp-block-navigation__responsive-container-open {
		display: none !important;
	}

	.site-header .wp-block-navigation__responsive-container {
		display: contents;
	}
}

/* ハンバーガーメニュー オーバーレイ */
.site-header .wp-block-navigation__responsive-container.is-menu-open {
	background: var(--color-sub) !important;
	opacity: 0.98 !important;
}

.site-header .wp-block-navigation__responsive-container-close {
	color: var(--color-main) !important;
}

.site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
	gap: 0 !important;
	align-items: stretch !important;
	flex-direction: column !important;
}

.site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item {
	text-align: center;
}

.site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
	font-size: 1.25rem !important;
	font-weight: 700 !important;
	padding: 1em 2em !important;
	color: var(--color-main) !important;
	text-align: center;
	display: block;
	letter-spacing: 0.12em;
	transition: opacity 0.2s;
}

.site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content:hover {
	opacity: 0.6;
}

.site-header .wp-block-navigation__responsive-container.is-menu-open .header_btn {
	justify-content: center !important;
	padding: 2rem 0 !important;
}

.site-header .wp-block-navigation__responsive-container.is-menu-open .header_btn .wp-block-button__link {
	font-size: 1.1rem !important;
	padding: 0.9em 4em 0.9em 2em !important;
	width: auto !important;
}

.site-header .wp-block-navigation__responsive-container.is-menu-open .header_btn .wp-block-button__link::after {
	width: 2.4em !important;
	height: 2.4em !important;
}

/******************************/
/* TOPへ戻るボタン */
/******************************/
.scroll_top {
	position: fixed;
	right: 2rem;
	bottom: 2rem;
	z-index: 999;
	width: 56px;
	height: 56px;
	background: var(--color-main);
	display: flex;
	align-items: center;
	justify-content: center;
	text-decoration: none;
	clip-path: polygon(50% 0%, 100% 30%, 100% 100%, 0% 100%, 0% 30%);
	opacity: 0;
	pointer-events: none;
	transform: translateY(12px);
	transition: opacity 0.3s ease, transform 0.3s ease, background 0.25s;
}

.scroll_top.is-visible {
	opacity: 1;
	pointer-events: auto;
	transform: translateY(0);
}

.scroll_top:hover {
	background: var(--color-accent);
}

.scroll_top svg {
	display: block;
	width: 26px;
	height: 26px;
	margin-top: 10px;
}

@media (max-width: 768px) {
	.scroll_top {
		right: 1rem;
		bottom: 1rem;
		width: 48px;
		height: 48px;
	}
}


/******************************/
/* KV */
/******************************/
.kv {
	position: relative;
	padding: 0 !important;
	overflow: hidden;
}

@keyframes kv-slide-in {
	from {
		transform: translateX(120%);
		opacity: 0;
	}
	to {
		transform: translateX(0);
		opacity: 1;
	}
}

@keyframes kv-fade-up {
	from {
		opacity: 0;
		transform: translateY(40px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

.kv > figure {
	margin: 0 !important;
	line-height: 0;
}

.kv > figure img {
	width: 100%;
	height: auto;
	display: block;
}

.kv_btn {
	position: absolute;
	left: clamp(1rem, 3.5vw, 4.5rem);
	/* 1280px以下は下端ぴったり、広い画面ほど少し持ち上げる */
	bottom: clamp(0px, calc((100vw - 1280px) * 0.05), 1.5rem);
	z-index: 2;
	padding: 0 !important;
	animation: kv-fade-up 0.55s cubic-bezier(0.05, 0.9, 0.2, 1) 1.2s both;
}

.kv_btn > p {
	color: #fff;
	/* KV画像と一緒に縮むよう幅基準で可変 */
	font-size: clamp(0.8rem, 1.1vw, 1.4rem);
	font-weight: 600;
	line-height: 1.5;
	/* エディタの余白指定（xs）より詰めてボタンに近づける */
	margin-bottom: 0.4em !important;
}

/* 「無料相談」のインライン指定（21px固定）を文と一緒に縮むよう上書き */
.kv_btn > p .vk_inline-font-size {
	font-size: 1.35em !important;
}

.kv_btn .wp-block-buttons > .wp-block-button {
	width: 100%;
}

.kv_btn .cmn_btn .wp-block-button__link {
	width: 100%;
	min-width: clamp(260px, 32vw, 540px);
	padding-left: clamp(1.5rem, 2.3vw, 3.5rem);
	padding-right: clamp(3.5rem, 4.3vw, 6rem);
	padding-top: clamp(10px, 1.1vw, 20px);
	padding-bottom: clamp(10px, 1.1vw, 20px);
	font-size: clamp(1rem, 1.5vw, 1.75rem);
	font-weight: 900;
}

.kv_btn .cmn_btn .wp-block-button__link::after{
	width: 2.2em;
	height: 2.2em;
}

.kv_point {
	position: absolute;
	right: 0;
	bottom: 0;
	z-index: 2;
	padding: 0 !important;
	display: flex;
	flex-direction: column;
	align-items: stretch;
	font-size: clamp(1.05rem, 1.3vw, 1.6rem);
	/* 3本の帯をまとめて1本の斜線でカット：角度が揃い、下ほど長くなる */
	clip-path: polygon(6em 0, 100% 0, 100% 100%, 0 100%);
}

.kv_point p {
	color: #fff;
	font-size: 1em;
	font-weight: 700;
	letter-spacing: 0.06em;
	white-space: nowrap;
	background: #233D30;
	padding: 0.6em 2.5rem 0.6em 4.5em;
	margin: 0 0 0.35em !important;
	text-shadow: none;
	animation: kv-slide-in 0.3s cubic-bezier(0.05, 0.9, 0.2, 1) both;
}

/* 上の帯ほど斜線が右に来るので、文字の開始位置を右へ */
.kv_point p:nth-child(1) {
	padding-left: 8.5em;
	animation-delay: 0.85s;
}

.kv_point p:nth-child(2) {
	padding-left: 6.5em;
	animation-delay: 0.45s;
}

.kv_point p:last-child {
	line-height: 1.5;
	animation-delay: 0.1s;
	margin-bottom: 0 !important;
}

/* 文字サイズを変えたspanで行の高さが広がらないように */
.kv_point p span {
	line-height: 1;
}

/* エディタのインライン指定（30px / 21px / 12px 固定）を帯の文字サイズと一緒に伸縮するよう上書き */
.kv_point p .vk_inline-font-size:nth-of-type(1) {
	font-size: 1.6em !important;
}

.kv_point p .vk_inline-font-size:nth-of-type(2) {
	font-size: 1.15em !important;
}

.kv_point p .vk_inline-font-size:nth-of-type(3) {
	font-size: 0.65em !important;
}

/* KV下の注釈：.kv_note を付与。コンテンツ幅を抜けて画面右端（帯の文字の右端）に揃える */
.kv_note {
	width: 100vw;
	max-width: none !important;
	margin-left: calc(50% - 50vw) !important;
	margin-top: 0.5em !important;
	padding-right: 2.5rem;
	text-align: right;
	box-sizing: border-box;
}

@media (max-width: 768px) {
	.kv_note {
		padding-right: 1.5rem;
	}

	.kv_btn {
		left: 1rem;
		bottom: 1rem;
	}

	.kv_btn .cmn_btn .wp-block-button__link {
		min-width: 0;
		padding-left: 2rem;
		padding-right: 4rem;
	}

	.kv_point {
		font-size: 0.88rem;
	}

	.kv_point p {
		padding: 0.5em 1.5rem 0.5em 4.5em;
	}
}

@media (max-width: 600px) {
	.kv_btn {
		position: static;
		left: auto;
		bottom: auto;
		width: 100%;
		background: var(--color-main);
		padding: 1.25rem 1.25rem 1.5rem !important;
		text-align: center;
		animation: none;
		margin: 0;
	}

	.kv_btn > p {
		color: #fff;
		font-size: 0.9rem;
		margin-bottom: 0.75em !important;
	}

	.kv_btn .cmn_btn .wp-block-button__link {
		width: 100%;
		min-width: 0;
		padding-left: 1.5rem;
		padding-right: 3.5rem;
		font-size: 1.1rem;
	}
	/* ボタン部分の高さに左右されず、帯を画像の右下にぴったり付ける：画像と帯を同じグリッドセルに重ねる */
	.kv {
		display: grid !important;
		grid-template-columns: 100%;
	}

	.kv > figure,
	.kv_point {
		grid-area: 1 / 1;
	}

	.kv_btn {
		grid-area: 2 / 1;
	}

	.kv_point {
		position: relative;
		right: auto;
		bottom: auto;
		align-self: end;
		justify-self: end;
		margin: 0 !important;
	}
}

/* KV 画像切り替え */
.kv_img--pc { display: block; }
.kv_img--tb { display: none; }
.kv_img--sp { display: none; }

@media (max-width: 1024px) {
	.kv_img--pc { display: none; }
	.kv_img--tb { display: block; }
	.kv_img--sp { display: none; }
}

@media (max-width: 600px) {
	.kv_img--pc { display: none; }
	.kv_img--tb { display: none; }
	.kv_img--sp { display: block; }
	.kv_btn > p {
		font-size: 1.2rem;
	}

	.kv_btn > p .vk_inline-font-size {
		font-size: 1.1em !important;
	}
}

@media (max-width: 450px){
	.kv_img--sp img{ 
		height: 100svh !important;
		object-fit: cover;
	}
}



/******************************/
/* イントロ */
/******************************/
.intro_title {
	font-size: clamp(1.8rem, 3.5vw, 2.6rem);
}

.intro_title::before {
	content: '';
	display: inline-block;
	width: 1.5em;
	height: 1.5em;
	background: url('/wp-content/uploads/2026/06/intro_inlineicon.svg') no-repeat center / contain;
	vertical-align: middle;
	margin-right: 0.4em;
}


/******************************/
/* イントロブリッジ */
/******************************/
.intro_bridge {
	position: relative;
	overflow: visible !important;
}

.intro_bridge p {
	font-size: clamp(1.5rem, 2.5vw, 2rem);
	font-weight: 600;
}

.intro_bridge::after {
	content: '';
	position: absolute;
	bottom: -14px;
	left: 50%;
	transform: translateX(-50%) rotate(45deg);
	width: 42px;
	height: 42px;
	background: var(--color-main);
	border-radius: 2px;
	z-index: 1;
}

.intro_bridge ruby rt {
	color: #fff;
	font-size: 0.45em;
	text-align: center;
	margin-bottom: 0.1em;
}

/******************************/
/* 強み */
/******************************/
#strength {
	background-image: url('/wp-content/uploads/2026/06/strength_bg-scaled.png');
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
}

.strength_intro span {
	color: var(--color-main);
	font-size: 1.4em;
	text-decoration: underline;
	text-decoration-color: var(--color-accent);
	text-decoration-thickness: 3px;
	text-underline-offset: 6px;
	font-weight: 900;
}

/* セクション見出し：.strength_title をh2に付与 */
.strength_title {
	position: relative;
	isolation: isolate;
	display: table;
	margin-inline: auto !important;
	padding: 0.3em 0.2em 0.35em;
	color: var(--color-main);
	font-size: clamp(2rem, 4.2vw, 3.4rem);
	/* italicだと傾きが強いのでskewで角度を指定 */
	transform: skewX(-8deg);
	line-height: 1.3;
	letter-spacing: 0.04em;
	text-align: center;
	background: repeating-linear-gradient(to right, var(--color-accent) 0 16px, transparent 16px 24px) left bottom / 100% 5px no-repeat;
}

/* 「解決」と「3」を大きく（エディタのインライン指定より優先） */
.strength_title mark,
.strength_title .vk_inline-font-size {
	font-size: 1.3em !important;
	line-height: 1;
}

.strength_title .vk_inline-font-size {
	font-size: 1.6em !important;
}

/* 背景の英字 */
.strength_title::before {
	content: 'STRENGTHS';
	position: absolute;
	left: 50%;
	top: 50%;
	/* 見出しのskewを打ち消して英字はまっすぐに */
	transform: translate(-50%, -85%) skewX(8deg);
	z-index: -1;
	font-family: 'Oswald', sans-serif;
	font-size: 2.1em;
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0.04em;
	color: rgba(0, 0, 0, 0.06);
	white-space: nowrap;
	pointer-events: none;
}

.strength_item {
	width: 100vw;
	margin-left: calc(50% - 50vw);
	display: grid !important;
	grid-template-columns: 1fr 1fr;
	align-items: stretch;
	gap: 0;
	max-width: none !important;
}

.strength_item figure {
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
	overflow: hidden;
}

/* ブロックエディタのインライン指定（width:800px;height:auto）を打ち消してセル全体に広げる */
.strength_item figure img {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover;
	display: block;
}

.strength_item > .wp-block-group {
	width: 100%;
	max-width: none !important;
	padding: 3rem clamp(2rem, 6vw, 7rem) !important;
	display: flex;
	flex-direction: column;
	justify-content: center;
	margin-top: 0;
}

.strength_item:nth-child(even of .strength_item) figure {
	order: 2;
}

.strength_item:nth-child(even of .strength_item) > .wp-block-group {
	order: 1;
}

@media (max-width: 768px) {
	.strength_item {
		grid-template-columns: 1fr;
	}

	.strength_item figure {
		aspect-ratio: 4 / 3;
	}

	/* モバイルでは常に画像上・テキスト下 */
	.strength_item:nth-child(even of .strength_item) figure {
		order: 0;
	}

	.strength_item:nth-child(even of .strength_item) > .wp-block-group {
		order: 0;
	}

	.strength_item > .wp-block-group {
		padding: 2rem 1.5rem !important;
	}
}

.strength_item_text h3 {
	position: relative;
	display: block;
	padding: 0.25em 0.5em;
	background: linear-gradient(to right, #243C2C, #548C6A);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	background-clip: text;
	font-size: clamp(2.5rem, 5vw, 4.5rem);
	margin-bottom: 1rem;
}

@media (max-width: 768px) {
	.strength_item_text h3 {
		width: fit-content;
		max-width: fit-content !important;
		margin-inline: auto !important;
	}
}

.strength_item_text h4 {
	font-size: clamp(1.3rem, 2.2vw, 1.7rem);
	line-height: 1.7;
	margin-top: 1rem;
}

.strength_item_text p {
	font-size: clamp(1rem, 1.4vw, 1.1rem);
	line-height: 1.9;
	margin-top: 1rem;
}

/* 上2コーナー */
.strength_item_text h3::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 30px;
	background:
		linear-gradient(var(--color-main), var(--color-main)) top left / 2px 100% no-repeat,
		linear-gradient(var(--color-main), var(--color-main)) top left / 30px 2px no-repeat,
		linear-gradient(var(--color-main), var(--color-main)) top right / 2px 100% no-repeat,
		linear-gradient(var(--color-main), var(--color-main)) top right / 30px 2px no-repeat;
}

/* 下2コーナー */
.strength_item_text h3::after {
	content: '';
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	height: 30px;
	background:
		linear-gradient(var(--color-main), var(--color-main)) bottom left / 2px 100% no-repeat,
		linear-gradient(var(--color-main), var(--color-main)) bottom left / 30px 2px no-repeat,
		linear-gradient(var(--color-main), var(--color-main)) bottom right / 2px 100% no-repeat,
		linear-gradient(var(--color-main), var(--color-main)) bottom right / 30px 2px no-repeat;
}

/******************************/
/* 計画初期から完了検査まで、工務店の実務を支援します。 */
/******************************/
/* 見出しの緑帯：親のコンテンツ幅を抜けて画面幅いっぱいに広げる */
.alignfull[data-unitone-layout~="decorator"]:has(> h2.title_m) {
	width: 100vw;
	max-width: none !important;
	margin-left: calc(50% - 50vw) !important;
	margin-right: calc(50% - 50vw) !important;
}

.support_item {
	overflow: hidden;
	background: #fff;
}

.support_item h3 {
	background: var(--color-accent);
	color: #fff;
	padding: 0.5em 1em;
	line-height: 1.4;
	letter-spacing: 0.1em;
	font-weight: 700;
	font-size: clamp(1.25rem, 2vw, 1.6rem);
}

.support_item figure {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 100%;
	min-height: 110px;
	padding: 0.5em 0;
	box-sizing: border-box;
}

.support_item p {
	border-top: 2px dashed var(--color-accent);
	padding: 1.5em;
	font-size: clamp(0.85rem, 1.1vw, 0.95rem);
	line-height: 1.9;
}

/******************************/
/* 共通：セクションラベル */
/******************************/
.section_has_label {
	position: relative;
	overflow: visible;
}

.section_has_label > .wp-block-group {
	position: static !important;
}

.section_label {
	position: absolute;
	left: 0;
	bottom: 0;
	transform-origin: left bottom;
	transform: rotate(-90deg);
	font-size: clamp(5rem, 9vw, 9rem);
	font-weight: 900;
	color: #F2F2F2;
	font-family: 'Oswald', sans-serif;
	line-height: 1;
	white-space: nowrap;
	pointer-events: none;
	user-select: none;
	z-index: 0;
	margin: 0 !important;
}

.section_label.is-another-color {
	color: #ECE9E4;
}

.section_label.is-right {
	left: auto;
	right: 0;
	bottom: 0;
	transform-origin: right bottom;
	transform: rotate(90deg);
}

@media (max-width: 1440px) {
	.section_label {
		left: auto;
		right: 0;
		bottom: auto;
		top: -15px;
		transform: none;
		transform-origin: unset;
	}

	.section_label.is-right {
		transform: none;
		transform-origin: unset;
	}
}

@media (max-width: 960px) {
	.section_label {
		display: none;
	}
}


/******************************/
/* 対応エリア */
/******************************/

.area_contents_right {
	background: var(--color-main);
	padding: 2.5rem;
	display: flex;
	flex-direction: column;
	justify-content: center;
}

.area_contents_right > .wp-block-group {
	background: none;
	padding: 0;
	max-width: none;
	width: 100%;
}

.area_contents_right_text {
	max-width: none;
	width: 100%;
	font-size: clamp(1rem, 1.5vw, 1.4rem);
}

.area_contents_right_head {
	display: inline-block;
	background: var(--color-accent);
	padding: 0.3em 1em;
	margin-bottom: 1.5rem;
}

@media (max-width: 960px) {
	.area_contents {
		flex-direction: column !important;
	}

	.area_contents .wp-block-column {
		flex-basis: 100% !important;
		width: 100% !important;
	}
}



/******************************/
/* 施工事例 */
/******************************/

.case_table {
    margin-inline: auto;
    max-width: var(--wp--style--global--content-size, 900px);
}

.case_table td,
.case_table th {
    text-align: center;
}

@media (max-width: 768px) {
    .case_table {
        display: block;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        margin-inline: 0;
    }

    .case_table::before {
        content: "➜ スクロールできます";
        display: block;
        text-align: right;
        font-size: 0.8em;
        color: #5f5f5f;
        margin-bottom: 4px;
        padding-right: 12px;
        animation: scrollHint 2.5s ease-in-out infinite;
    }

    @keyframes scrollHint {
        0%, 100% { transform: translateX(0);    opacity: 1; }
        50%       { transform: translateX(8px); opacity: 0.4; }
    }

    .case_table table {
        min-width: 600px;
        width: 100%;
    }
}

/* 施工事例リスト */
.case_list {
	background: #fff;
	border: 1px solid rgba(38, 78, 52, 0.2);
	border-left: 5px solid var(--color-main);
	padding: 1.8em 2em;
	align-items: center !important;
	gap: 1.5em 2.5em !important;
	margin-block: 0 1.2em !important;
	counter-increment: case_num;
}

:has(> .case_list) {
	counter-reset: case_num;
}

.case_list h3 {
	color: var(--color-main);
	font-size: clamp(1.15rem, 1.6vw, 1.35rem);
	line-height: 1.5;
	margin: 0 0 0.4em !important;
}

.case_list h3::before {
	content: 'CASE ' counter(case_num, decimal-leading-zero);
	display: table;
	font-family: 'Oswald', sans-serif;
	font-size: clamp(0.95rem, 1.2vw, 1.05rem);
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0.12em;
	color: #fff;
	background: var(--color-accent);
	padding: 0.4em 0.8em;
	margin-bottom: 0.6em;
}

.case_list h3 + p {
	font-size: clamp(0.9rem, 1.1vw, 0.95rem);
	color: #666;
	margin: 0 !important;
}

.case_list ul {
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	gap: 0.6em;
	margin: 0 !important;
	padding: 0 !important;
}

.case_list li {
	background: #E9EDEB;
	color: var(--color-main);
	font-size: clamp(0.85rem, 1.1vw, 0.95rem);
	font-weight: 700;
	line-height: 1.5;
	padding: 0.45em 1em;
	margin: 0 !important;
}

@media (max-width: 781px) {
	.case_list {
		padding: 1.4em 1.2em;
	}
}


/******************************/
/* 相談後の流れ */
/******************************/

.flow_item {
	flex: 1;
	position: relative;
	display: flex;
	flex-direction: column;
	background: #fff;
}

.flow_item h3 {
	background: linear-gradient(to right, #364C3E, #416F51);
	color: #fff !important;
	text-align: center;
	padding: 0em 0.5em;
	font-size: clamp(1rem, 1.4vw, 1.3rem);
	font-family: 'Oswald', sans-serif;
	letter-spacing: 0.08em;
	margin: 0 !important;
	position: relative;
	overflow: visible;
	z-index: 1;
}

.flow_item:not(:last-child) h3::after {
	content: '';
	position: absolute;
	top: 50%;
	left: 100%;
	transform: translateY(-50%);
	width: 40px;
	height: 3px;
	background: var(--color-main);
	z-index: -1;
}

@media (max-width: 1199px) {
	.flow_item:not(:last-child) h3::after {
		display: none;
	}
}

@media (max-width: 600px) {
	.flow_item {
		overflow: visible;
	}

	.flow_item::before {
		content: '';
		position: absolute;
		left: 50%;
		transform: translateX(-50%);
		top: -50px;
		bottom: -50px;
		width: 3px;
		background: var(--color-main);
		z-index: 0;
	}

	.flow_item:first-child::before {
		top: 0;
	}

	.flow_item:last-child::before {
		bottom: 0;
	}

	.flow_item h3 {
		position: relative;
		z-index: 2;
	}

	.flow_item p {
		position: relative;
		z-index: 2;
		background: #fff;
	}
}

.flow_item p {
	flex: 1 !important;
	display: flex !important;
	align-items: center;
	justify-content: center;
	padding: 1em 0.75em;
	font-size: clamp(0.9rem, 1.2vw, 1.05rem);
	line-height: 1.8;
	margin: 0 !important;
	color: var(--color-main);
	font-weight: 700;
	text-align: center;
}


/******************************/
/* 当社の概要 */
/******************************/

/* --- 代表経歴 年表 --- */
.about_career {
	margin-bottom: 1.8em;
	gap: 0 1.5em;
	align-items: center;
	overflow: visible;
}

.about_career:last-child {
	margin-bottom: 0;
}

.about_career_left {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0 0.5em;
	overflow: visible;
}

.about_career:not(:last-child) .about_career_left::after {
	content: '';
	position: absolute;
	top: calc(100% + 0.25em);
	left: 50%;
	transform: translateX(-50%);
	height: 1.3em;
	width: 1px;
	background: var(--color-main);
}

.about_career_left p {
	margin: 0;
	color: var(--color-main);
	font-weight: 900;
	font-size: clamp(1.3rem, 2.5vw, 1.5rem);
	white-space: nowrap;
	text-align: center;
}

.about_career_right {
	display: flex;
	align-items: center;
}

.about_career_right p {
	width: 100%;
	margin: 0;
	padding: 1em 1.4em;
	font-size: clamp(1rem, 1.1vw, 1.1rem);
	line-height: 1.7;

}

.about_career:nth-child(even) .about_career_right {
	background: var(--color-sub);
}

.about_career:nth-child(odd) .about_career_right {
	background: #E9EDEB;
}

@media (max-width: 768px) {
	.about_career_left {
		justify-content: flex-start;
	}

	.about_career_left p {
		text-align: left;
	}
}

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

.about_table td {
	padding: 1em 0.75em;
	border-bottom: 2px dashed rgba(38, 78, 52, 0.3);
	vertical-align: middle;
	font-size: clamp(0.95rem, 1.3vw, 1.1rem);
	line-height: 1.8;
}

.about_table td:first-child {
	color: var(--color-main);
	font-weight: 700;
	width: 26%;
	white-space: nowrap;
}

@media (max-width: 600px) {
	.about_table table {
		table-layout: fixed;
		width: 100%;
	}

	.about_table td:first-child {
		white-space: normal;
		width: 34%;
		word-break: break-word;
	}

	.about_table td:nth-child(2) {
		width: 66%;
		word-break: break-word;
	}
}


/******************************/
/* ニュース一覧 */
/******************************/
.news_list li {
	border-bottom: 2px dashed rgba(38, 78, 52, 0.3) !important;
	border-top: none !important;
	padding: 1em 0.5em;
	transition: background 0.2s;
}

.news_list li:hover {
	background: rgba(38, 78, 52, 0.04);
}

.news_list .taxonomy-category {
	background: none !important;
}

.news_list .taxonomy-category a {
	text-decoration: none !important;
	color: #fff !important;
	background: var(--color-accent);
	padding: 0.2em 0.9em;
	border-radius: 30px;
	transition: opacity 0.2s;
	display: inline-block;
}

.news_list .taxonomy-category a:hover {
	opacity: 0.65;
}

.news_list .wp-block-post-title a {
	text-decoration: none;
	color: inherit;
}

.news_list .wp-block-post-title a:hover {
	color: var(--color-main);
}

@media (max-width: 768px) {
	.news_list .wp-block-post-title {
		flex-basis: 100% !important;
		width: 100%;
	}

	.news_list li [data-unitone-layout~="cluster"] {
		row-gap: 0.3em !important;
	}
}

/******************************/
/* よくある質問 */
/******************************/
.faq_contents > summary::-webkit-details-marker {
	display: none;
}
.faq_contents > summary {
	list-style: none;
}

.faq_contents {
	overflow: hidden;
}

.faq_contents .unitone-accordion__summary {
	cursor: pointer;
	user-select: none;
	border:2px solid var(--color-main);
}

.faq_contents .unitone-accordion__summary-content {
	padding: 0.85em 1.2em 0.85em 0.7em;
	gap: 1em !important;
	align-items: center;
}

.faq_contents .unitone-accordion__q {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 2em;
	min-height: 2em;
	flex-shrink: 0;
}

.faq_contents .unitone-accordion__q-text::before {
	content: 'Q';
	font-family: 'Oswald', sans-serif;
	font-weight: 700;
	font-size: clamp(1.5rem, 2.5vw, 2.8rem);
	line-height: 1;
	color: var(--color-main);
}

.faq_contents .unitone-accordion__summary-text {
	font-size: clamp(1rem, 1.3vw, 1.1rem);
	font-weight: 600;
}

.unitone-accordion__summary-inner{
	padding: 10px;
	background-color: #fff;
}

.faq_contents .unitone-accordion__icon {
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--color-main);
	color: #fff;
	width: 65px;
	min-width: 5rem;
	height: auto;
	align-self: stretch;
	flex-shrink: 0;
	margin: 0;
}

.faq_contents .unitone-accordion__icon svg {
	display: block;
	width: 1.4rem;
	height: auto;
	transform-origin: center;
	transition: transform 0.35s ease;
}

@media (max-width: 768px) {
	.faq_contents .unitone-accordion__icon {
		width: 3.5rem;
		min-width: 3.5rem;
		height: 3.5rem;
	}
	.faq_contents .unitone-accordion__icon svg {
		width: 1.05rem;
	}
	.faq_contents .unitone-accordion__summary-content {
		padding: 0px;
	}
}


.faq_contents .unitone-accordion__content {
	display: flex !important;
	flex-wrap: wrap;
	box-sizing: border-box;
	padding: 1em 1.2em !important;
	gap: 1em !important;
	align-items: flex-start;
}

@media (max-width: 768px) {
	.faq_contents .unitone-accordion__content {
		padding-left: 0.55em !important;
		padding-right: 0.55em !important;
	}
}

.faq_contents .unitone-accordion__a {
	display: flex;
	align-items: flex-start;
	justify-content: center;
	width: 2.2em;
	min-width: 2.2em;
	flex-shrink: 0;
	padding-top: 0.1em;
}

.faq_contents .unitone-accordion__a-text::before {
	content: 'A';
	font-family: 'Oswald', sans-serif;
	font-weight: 700;
	font-size: clamp(1.5rem, 2.5vw, 2.8rem);
	line-height: 1;
	color: var(--color-main);
}

.faq_contents .unitone-accordion__detail p {
	font-size: clamp(0.95rem, 1.2vw, 1.05rem);
	line-height: 1.9;
}


/******************************/
/* お問い合わせはこちらから */
/******************************/
.form > p{
	margin: 0;
}

.wpcf7 {
	background: #fff;
	padding: 2.5em 3em;
	margin-top: 0;
	position: relative;
}

@media (max-width: 768px) {
	.wpcf7 {
		padding: 1.5em 1.2em;
	}
}

.wpcf7-form > p {
	margin-bottom: 1.5em;
}

.wpcf7-form label {
	display: block;
	font-weight: 700;
	font-size: clamp(1rem, 1.3vw, 1.15rem);
	color: var(--color-main);
}

.wpcf7-form .req {
	display: inline-block;
	background: #d32f2f;
	color: #fff;
	font-size: 0.72em;
	font-weight: 700;
	padding: 0.15em 0.9em;
	letter-spacing: 0.04em;
	margin-left: 0.5em;
	vertical-align: middle;
}

.wpcf7-form .wpcf7-form-control-wrap {
	display: block;
	margin-top: 0.45em;
}

.wpcf7-form input[type="text"],
.wpcf7-form input[type="email"],
.wpcf7-form input[type="tel"],
.wpcf7-form textarea {
	width: 100%;
	border: 2px solid var(--color-main);
	background: #fff;
	padding: 0.75em 1em;
	font-size: 1rem;
	font-family: inherit;
	box-sizing: border-box;
	border-radius: 0;
	outline: none;
	transition: border-color 0.2s;
	-webkit-appearance: none;
	appearance: none;
}

.wpcf7-form input[type="text"]:focus,
.wpcf7-form input[type="email"]:focus,
.wpcf7-form input[type="tel"]:focus,
.wpcf7-form textarea:focus {
	border-color: var(--color-accent);
}

.wpcf7-form ::placeholder {
	color: #bbb;
}

.wpcf7-form textarea {
	min-height: 180px;
	resize: vertical;
}

.wpcf7-form .wpcf7-form-control-wrap[data-name="acceptance"] {
	display: inline;
	margin-top: 0;
}

.wpcf7-form .wpcf7-acceptance {
	display: inline-flex;
	align-items: center;
	gap: 0.4em;
	vertical-align: middle;
}

.wpcf7-form .wpcf7-acceptance input[type="checkbox"] {
	width: 1.15em;
	height: 1.15em;
	accent-color: var(--color-main);
	flex-shrink: 0;
	margin: 0;
}

.wpcf7-form > p:has(.wpcf7-acceptance) {
	text-align: center;
	font-size: clamp(0.9rem, 1.2vw, 1rem);
}

.wpcf7-form > p:has(.wpcf7-acceptance) a {
	text-decoration: none;
	font-weight: 700;
	transition: opacity 0.2s;
}

.wpcf7-form > p:has(.wpcf7-acceptance) a:hover {
	opacity: 0.6;
}

.wpcf7-form .wpcf7-acceptance {
	margin-right: 0.5em;
}

.contact_submit_area {
	text-align: center;
	margin-top: 1.5em;
}

.contact_submit_area > p {
	margin: 0;
}

.contact_submit_area p:has(.contact_submit_btn) {
	display: inline-block;
	position: relative;
	margin: 0;
	margin-right: 10px;
}

.contact_submit_area .contact_submit_btn {
	display: block;
	width: auto;
	width: 480px;
	text-align: center;
	background: var(--color-accent);
	color: #fff;
	font-weight: 700;
	font-size: 20px;
	font-family: inherit;
	letter-spacing: 0.12em;
	padding: 1em 5em 1em 3em;
	border: none;
	border-radius: 0;
	cursor: pointer;
	transition: background 0.25s, filter 0.25s;
}

.contact_submit_area p:has(.contact_submit_btn)::after {
	content: '';
	position: absolute;
	right: 1em;
	top: 50%;
	transform: translateY(-80%);
	width: 3.2em;
	height: 3.2em;
	background-color: #fff;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23C9A227' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='9 18 15 12 9 6'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: center;
	background-size: 55%;
	pointer-events: none;
	transition: transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.contact_submit_area p:has(.contact_submit_btn):hover .contact_submit_btn {
	filter: brightness(1.08);
	color: #fff !important;
}

.contact_submit_area p:has(.contact_submit_btn):hover::after {
	transform: translateY(-80%) translateX(4px);
}

.contact_note {
	font-size: 0.85em;
	color: #888;
	text-align: center;
	margin-top: 0.8em !important;
}

.wpcf7-form .wpcf7-not-valid-tip {
	color: #d32f2f;
	font-size: 0.82em;
	margin-top: 0.3em;
	display: block;
}

.wpcf7-form .wpcf7-not-valid {
	border-color: #d32f2f !important;
}

.wpcf7-response-output {
	text-align: center;
	padding: 1em 1.5em;
	margin-top: 1.5em !important;
	font-weight: 600;
	font-size: 0.95em;
}

@media (max-width: 768px) {
	.contact_submit_area p:has(.contact_submit_btn) ,
	.contact_submit_area .contact_submit_btn{
		width: 100%;
	}
}