/* =========================================================
   GLOBAL / COMMON
========================================================= */

.c-entry__header {
	display: none;
}

.l-contents__inner {
	margin-top: 0;
	padding-bottom: 0 !important;
}

.smb-section__header .smb-section__title {
	font-family: "Noto Serif JP", serif;
}

/* =========================================================
   FV / HERO
========================================================= */

.fv-slider .smb-section-with-bgimage__bgimage {
	overflow: hidden;
}

/* 背景画像 */
.fv-slider .smb-section-with-bgimage__bgimage img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transform: scale(1);
	transform-origin: center center;
	will-change: transform;
	backface-visibility: hidden;
	-webkit-backface-visibility: hidden;
}

/* ズームアニメーション */
.fv-slider .smb-section-with-bgimage__bgimage img.is-zooming {
	animation: fvZoom 6.5s linear forwards;
}

@keyframes fvZoom {
	from {
		transform: scale(1);
	}

	to {
		transform: scale(1.08);
	}
}

@media (prefers-reduced-motion: reduce) {
	.fv-slider .smb-section-with-bgimage__bgimage img {
		animation: none !important;
		transform: scale(1) !important;
	}
}

/* 縦書きタイトル */
.fv-slider .smb-section__contents-wrapper {
	height: 100%;
	display: flex;
	justify-content: center;
	align-items: center;
}

.fv-slider .smb-section__contents-wrapper>.c-container {
	width: 100%;
	height: 100%;
	display: flex;
	justify-content: center;
	align-items: center;
}

.fv-slider .smb-section__header {
	width: auto;
	margin: 0;
	padding: 0;
	display: flex;
	justify-content: center;
	align-items: center;
}

.fv-slider .smb-section__title {
	writing-mode: vertical-rl;
	text-orientation: upright;
	width: auto;
	height: auto;
	margin: 0;
	padding: 0;
	color: #fff;
	font-family: "Zen Old Mincho", "Noto Serif JP", serif;
	font-size: clamp(30px, 3vw, 46px);
	font-weight: 500;
	line-height: 1.8;
	letter-spacing: 0.12em;
	/* 識字性を高めるシャドウ */
	text-shadow:
		0 1px 2px rgba(0, 0, 0, 0.75),
		0 3px 8px rgba(0, 0, 0, 0.55),
			0 6px 18px rgba(0, 0, 0, 0.35);
}

/* =========================================================
   STRENGTHS SECTION
========================================================= */

/* セクションタイトル */
.strengths-section .smb-section__header {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 14px;
}

.strengths-section .smb-section__subtitle {
	color: #178A4B;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.12em;
}

.strengths-section .smb-section__title {
	writing-mode: vertical-rl;
	text-orientation: upright;
	width: auto;
	height: auto;
	margin: 0;
	padding: 0;
	margin-top: 20px;
	color: #222722;
	font-family: "Noto Serif JP", serif;
	font-size: clamp(28px, 3vw, 38px);
	font-weight: 500;
	line-height: 1.7;
	letter-spacing: 0.08em;
}

/* カードレイアウト */

/* 3カラム全体 */
.strength-cards {
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 32px;
	align-items: stretch;
}

/* 各カード */
.strength-cards>.wp-block-column {
	position: relative;
	display: flex;
	flex-direction: column;
	background: #fff;
	border: 1px solid rgba(23, 138, 75, 0.10);
	box-shadow:
		0 8px 24px rgba(0, 0, 0, 0.05),
		0 2px 8px rgba(0, 0, 0, 0.03);
	padding: 18px 18px 28px;
	overflow: visible;
}

/* 画像 */
.strength-cards>.wp-block-column figure {
	margin: 0 0 28px;
	overflow: hidden;
}

.strength-cards>.wp-block-column figure img {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	transition: transform 0.3s ease;
}

/* ホバー */
.strength-cards>.wp-block-column:hover figure img {
	transform: scale(1.03);
}

/* =========================================================
   STRENGTHS
   縦書き見出し：スクロール連動マーカー
========================================================= */

.strengths-section .smb-section__title {
	writing-mode: vertical-rl;
	text-orientation: upright;
}

/* JSで各列に自動付与されるspan */
.strengths-section .strength-marker-line {
	display: inline;

	/*
	 * 縦書きなので
	 * 横幅45%の太いマーカーを
	 * 上 → 下へ伸ばす
	 */
	background-image:
		linear-gradient(
			rgba(23, 138, 75, 0.20),
			rgba(23, 138, 75, 0.20)
		);

	background-repeat: no-repeat;

	/* 初期状態：高さ0 */
	background-size: 45% 0%;

	/* 文字の右側寄りに配置 */
	background-position: right top;
	transition: background-size 1.4s ease;
}

/* スクロール発火後 */
.strengths-section .smb-section__title.is-marker-visible
.strength-marker-line {
	background-size: 45% 100%;
}

/* 2列目を少し遅らせる */
.strengths-section .strength-marker-line:nth-of-type(2) {
	transition-delay: 0.2s;
}


/* =========================================================
   アニメーション軽減設定
========================================================= */

@media (prefers-reduced-motion: reduce) {

	.strengths-section .strength-marker-line {
		transition: none;
		background-size: 45% 100%;
	}
}

/* ========================================
   01 / 02 / 03
======================================== */

.strength-cards>.wp-block-column>p:first-child {
	position: absolute;
	top: -18px;
	left: 18px;
	z-index: 2;
	display: flex;
	align-items: center;
	justify-content: center;
	min-width: 58px;
	height: 72px;
	margin: 0;
	padding: 0 12px;
	background: #fff;
	color: #178A4B;
	font-family: "Noto Serif JP", serif;
	font-size: 28px;
	font-weight: 500;
	line-height: 1;
	box-shadow: 0 6px 18px rgba(0, 0, 0, 0.08);
}

/* 番号下の線 */
.strength-cards>.wp-block-column>p:first-child::after {
	content: "";
	position: absolute;
	left: 50%;
	bottom: 12px;
	width: 26px;
	height: 1px;
	background: #178A4B;
	transform: translateX(-50%);
}

/* ========================================
   カードタイトル
======================================== */

/* 画像直後のp = タイトル */
.strength-cards>.wp-block-column>figure+p {
	width: 100%;
	margin: 0 0 18px !important;
	padding: 0 !important;
	text-align: left !important;
	color: #222722;
	font-family: "Noto Serif JP", serif;
	font-size: 18px;
	font-weight: 600;
	line-height: 1.6;
}

/* strongも左寄せ */
.strength-cards>.wp-block-column>figure+p strong {
	display: block;
	width: 100%;
	text-align: left;
	font-weight: 600;
}

/* タイトル下の短い緑線 */
.strength-cards>.wp-block-column>figure+p::after {
	content: "";
	display: block;
	width: 32px;
	height: 1px;
	margin-top: 12px;
	margin-left: 0;
	background-color: #178A4B;
}

/* ========================================
   本文
======================================== */

.strength-cards>.wp-block-column p {
	color: #4b524d;
	font-size: 15px;
	line-height: 2;
}

.strength-cards>.wp-block-column p:not(:first-child) {
	margin-top: 0;
}

/* ========================================
   右下の三角
======================================== */

.strength-cards>.wp-block-column::after {
	content: "";
	position: absolute;
	right: 0;
	bottom: 0;
	width: 0;
	height: 0;
	border-style: solid;
	border-width: 0 0 24px 24px;
	border-color: transparent transparent #178A4B transparent;
}

/* ========================================
   TABLET
======================================== */

@media (max-width: 1023px) {

	.strength-cards {
		gap: 20px;
	}

	.strength-cards>.wp-block-column {
		padding: 16px 16px 24px;
	}

	.strength-cards>.wp-block-column>figure+p {
		font-size: 17px;
	}
}

/* ========================================
   MOBILE
======================================== */

@media (max-width: 767px) {

	.strength-cards {
		grid-template-columns: 1fr;
		gap: 44px;
	}

	.strength-cards>.wp-block-column {
		padding: 16px 16px 26px;
	}

	.strength-cards>.wp-block-column>p:first-child {
		top: -16px;
		left: 16px;
		min-width: 54px;
		height: 66px;
		font-size: 24px;
	}

	.strength-cards>.wp-block-column figure {
		margin-bottom: 24px;
	}

	.strength-cards>.wp-block-column>figure+p {
		font-size: 18px;
	}
}

/* =========================================================
   RECRUIT PAGE
========================================================= */

.service-page > .wp-block-group.recruit-work,
.service-page > .wp-block-group.recruit-people,
.service-page > .wp-block-group.recruit-requirements {
	--service-section-bg: #F9F8F6;
}

.recruit-message > .wp-block-columns,
.recruit-people > .wp-block-columns {
	margin: 0;
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 72px;
	align-items: center;
}

.recruit-message figure img,
.recruit-people figure img {
	min-height: 440px;
	aspect-ratio: 4 / 3;
}

.recruit-people figure + figure {
	margin-top: 20px;
}

.recruit-work > .wp-block-columns,
.recruit-benefits > .wp-block-columns {
	margin: 48px 0 0;
	display: grid !important;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 48px;
}

.recruit-work > .wp-block-columns + .wp-block-columns,
.recruit-benefits > .wp-block-columns + .wp-block-columns {
	margin-top: 56px;
}

.recruit-work-item figure img {
	min-height: 300px;
	aspect-ratio: 4 / 3;
}

.recruit-work-item > p:first-of-type,
.recruit-benefit-item > p:first-child,
.recruit-flow > .wp-block-columns > .wp-block-column > p:first-child {
	margin: 24px 0 16px;
	color: var(--service-accent);
	font-size: 13px;
	font-weight: 600;
	line-height: 1;
	letter-spacing: 0.12em;
}

.recruit-work-item h3,
.recruit-benefit-item h3,
.recruit-flow h3,
.recruit-people h3 {
	margin: 0 0 18px;
	color: var(--service-text);
	font-family: "Noto Serif JP", serif;
	font-size: clamp(22px, 2vw, 28px);
	font-weight: 500;
	line-height: 1.6;
}

.recruit-benefit-item {
	padding-top: 28px;
	border-top: 1px solid rgba(182, 135, 64, 0.24);
}

.recruit-flow > .wp-block-columns {
	margin: 52px 0 0;
	display: grid !important;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 0;
	border-top: 1px solid var(--service-gray-line);
	border-bottom: 1px solid var(--service-gray-line);
}

.recruit-flow > .wp-block-columns > .wp-block-column {
	padding: 30px 22px;
	border-left: 1px solid var(--service-gray-line);
}

.recruit-flow > .wp-block-columns > .wp-block-column:first-child {
	border-left: none;
}

.recruit-requirements-list {
	margin-top: 46px;
	border-top: 1px solid var(--service-gray-line);
}

.recruit-requirements-list > .wp-block-columns {
	margin: 0;
	display: grid !important;
	grid-template-columns: minmax(180px, 0.32fr) minmax(0, 1fr);
	gap: 0;
	padding: 22px 0;
	border-bottom: 1px solid var(--service-gray-line);
}

.recruit-requirements-list > .wp-block-columns > .wp-block-column:first-child p {
	color: var(--service-text);
	font-weight: 600;
}

.recruit-entry .wp-block-buttons {
	margin-top: 32px;
}

.works-service-link.recruit-entry h2 {
	font-size: clamp(22px, 1.225rem + 0.5vw, 26px);
}

@media (max-width: 1023px) {

	.recruit-message > .wp-block-columns,
	.recruit-people > .wp-block-columns,
	.recruit-work > .wp-block-columns,
	.recruit-benefits > .wp-block-columns,
	.recruit-flow > .wp-block-columns {
		grid-template-columns: 1fr;
		gap: 34px;
	}

	.recruit-message figure img,
	.recruit-people figure img,
	.recruit-work-item figure img {
		min-height: auto;
		aspect-ratio: 16 / 10;
	}

	.recruit-flow > .wp-block-columns > .wp-block-column {
		padding: 28px 0;
		border-top: 1px solid var(--service-gray-line);
		border-left: none;
	}

	.recruit-flow > .wp-block-columns > .wp-block-column:first-child {
		border-top: none;
	}
}

@media (max-width: 767px) {

	.recruit-work > .wp-block-columns,
	.recruit-benefits > .wp-block-columns {
		margin-top: 38px;
	}

	.recruit-requirements-list > .wp-block-columns {
		grid-template-columns: 1fr;
		gap: 8px;
		padding: 20px 0;
	}
}

/* =========================================================
   SERVICE SECTION
   セクションに .service-section を付与
========================================================= */

/* セクション背景 */
.service-section {
	background: #FAFCF8;
}

/* 2カラム全体 */
.service-section .wp-block-columns {
	display: grid !important;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 64px 56px;
	align-items: stretch;
}

/* =========================================================
   CARD
========================================================= */

.service-section .wp-block-column {
	position: relative;
	display: grid;
	grid-template-columns:
		minmax(0, 1.15fr) minmax(260px, 0.85fr);
	align-items: stretch;
	background: #fff;
	border: 1px solid rgba(23, 138, 75, 0.08);
	box-shadow:
		0 8px 20px rgba(0, 0, 0, 0.04);
	overflow: hidden;
}

/* =========================================================
   IMAGE
========================================================= */

.service-section .wp-block-column>figure {
	grid-column: 1;
	grid-row: 1 / 6;
	margin: 0 !important;
	overflow: hidden;
}

.service-section .wp-block-column>figure img {
	display: block;
	width: 100%;
	height: 100%;
	min-height: 340px;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	transition: transform 0.3s ease;
}

/* 画像ホバー */
.service-section .wp-block-column:hover>figure img {
	transform: scale(1.03);
}

/* =========================================================
   NUMBER
   figure直後の最初のpを番号として扱う
========================================================= */

.service-section .wp-block-column>figure+p {
	grid-column: 2;
	margin:
		30px 18px 18px 34px !important;
	color: #178A4B;
	font-family: "Noto Serif JP", serif;
	font-size: clamp(30px, 3vw, 44px);
	font-weight: 500;
	line-height: 1;
	letter-spacing: 0.04em;
	text-align: left;
}

/* 番号下の細線 */
.service-section .wp-block-column>figure+p::after {
	content: "";
	display: block;
	width: 24px;
	height: 1px;
	margin-top: 12px;
	background: #3F8D61;
}

/* =========================================================
   TITLE
   番号の次のp
========================================================= */

.service-section .wp-block-column>figure+p+p {
	grid-column: 2;
	margin:
		0 18px 18px 34px !important;
	color: #222722;
	font-family: "Noto Serif JP", serif;
	font-size: clamp(20px, 1.8vw, 27px);
	font-weight: 500;
	line-height: 1.5;
	letter-spacing: 0.03em;
	text-align: left;
}

/* PCではタイトルを1行で保持 */
@media (min-width: 1024px) {
	.service-section .wp-block-column>figure+p+p {
		white-space: nowrap;
	}
}

/* =========================================================
   TEXT
   タイトルの次のp
========================================================= */

.service-section .wp-block-column>figure+p+p+p {
	grid-column: 2;
	margin:
		0 18px 24px 34px !important;
	color: #525952;
	font-size: 15px;
	font-weight: 400;
	line-height: 2;
	letter-spacing: 0.04em;
	text-align: left;
}

/* =========================================================
   BUTTON
========================================================= */

.service-section .wp-block-column>.smb-buttons {
	grid-column: 2;
	margin:
		0 18px 30px 34px !important;
}

/* ボタン本体 */
.service-section .wp-block-column .smb-btn {
	position: relative;
	min-width: 180px;
	padding:
		12px 50px 12px 22px;
	background: rgba(23, 138, 75, 0.04) !important;
	border: 1px solid #178A4B;
	border-radius: 0;
	color: #178A4B !important;
	font-size: 14px;
	font-weight: 500;
	letter-spacing: 0.08em;
	transition:
		background-color 0.3s ease,
		color 0.3s ease,
		border-color 0.3s ease;
}

/* 矢印 */
.service-section .wp-block-column .smb-btn::after {
	content: "→";
	position: absolute;
	top: 50%;
	right: 18px;
	transform: translateY(-50%);
	font-size: 18px;
	line-height: 1;
	transition: transform 0.3s ease;
}

/* ボタンホバー */
.service-section .wp-block-column .smb-btn:hover {
	background: #178A4B !important;
	border-color: #178A4B;
	color: #fff !important;
}

.service-section .wp-block-column .smb-btn:hover::after {
	transform: translate(4px, -50%);
}

/* =========================================================
   SECTION TITLE
========================================================= */

/* セクション見出し下のライン */
.service-section .smb-section__title::after {
	content: "";
	display: block;
	width: 40px;
	height: 2px;
	margin-top: 14px;
	background: #178A4B;
}

/* =========================================================
   TABLET
========================================================= */

@media (max-width: 1023px) {

	.service-section .wp-block-columns {
		gap: 40px 24px;
	}

	.service-section .wp-block-column {
		grid-template-columns: 1fr;
	}

	/* 画像 */
	.service-section .wp-block-column>figure {
		grid-column: 1;
		grid-row: auto;
	}

	.service-section .wp-block-column>figure img {
		min-height: 280px;
	}

	/* コンテンツを1カラムへ */
	.service-section .wp-block-column>figure+p,
	.service-section .wp-block-column>figure+p+p,
	.service-section .wp-block-column>figure+p+p+p,
	.service-section .wp-block-column>.smb-buttons {
		grid-column: 1;
		margin-left: 22px !important;
		margin-right: 22px !important;
	}

	.service-section .wp-block-column>figure+p {
		margin-top: 24px !important;
	}

	.service-section .wp-block-column>figure+p+p {
		font-size: 22px;
		white-space: normal;
	}
}

/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 767px) {

	.service-section .wp-block-columns {
		grid-template-columns: 1fr;
		gap: 44px;
	}

	/* 画像 */
	.service-section .wp-block-column>figure img {
		min-height: auto;
		aspect-ratio: 16 / 10;
	}

	/* 番号 */
	.service-section .wp-block-column>figure+p {
		font-size: 32px;
	}

	/* タイトル */
	.service-section .wp-block-column>figure+p+p {
		font-size: 23px;
	}

	/* 本文 */
	.service-section .wp-block-column>figure+p+p+p {
		font-size: 14px;
	}

	/* ボタン */
	.service-section .wp-block-column>.smb-buttons {
		margin-bottom: 24px !important;
	}
}

/* =========================================================
   WORKS SECTION
   セクションに .works-section を付与
========================================================= */

.works-section {
	--works-green: #178A4B;
	--works-text: #222722;
	--works-subtext: #6B726D;
	--works-bg: #FFFFFF;
	background: var(--works-bg);
}


/* =========================================================
   施工事例 1件ごとのレイアウト
========================================================= */

.works-section .wp-block-group.is-nowrap {
	display: grid !important;
	grid-template-columns:
		minmax(0, 1.55fr)
		minmax(300px, 0.75fr);
	gap: 64px;
	align-items: center;
	padding: 20px 0;
	background: transparent !important;
	border: none !important;
	box-shadow: none !important;
}


/* =========================================================
   2例目を左右反転
   DOMは「画像 → 情報」のままでOK
========================================================= */

.works-section .wp-block-group.is-nowrap:nth-of-type(even) {
	grid-template-columns:
		minmax(300px, 0.75fr)
		minmax(0, 1.55fr);
}

/* 画像を右へ */
.works-section .wp-block-group.is-nowrap:nth-of-type(even)
> .wp-block-group:first-child {
	order: 2;
}

/* 情報を左へ */
.works-section .wp-block-group.is-nowrap:nth-of-type(even)
> .wp-block-group:last-child {
	order: 1;
}


/* =========================================================
   BEFORE / AFTER 画像グループ
========================================================= */

.works-section .wp-block-group.is-nowrap
> .wp-block-group:first-child {
	position: relative;
	display: grid !important;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0;
	background: transparent !important;
	border: none !important;
	box-shadow: none !important;
	/*
	 * 丸い比較マークは画像グループ内の中央なので
	 * 親側ではクリップしない
	 */
	overflow: visible;
}


/* =========================================================
   各 BEFORE / AFTER 画像
========================================================= */

.works-section .wp-block-group.is-nowrap
> .wp-block-group:first-child > figure {
	position: relative;
	width: 100%;
	height: 100%;
	margin: 0 !important;
	/*
	 * 各画像を個別にクリップ
	 * → Beforeだけ / Afterだけズームできる
	 */
	overflow: hidden !important;
}


/* 画像本体 */
.works-section .wp-block-group.is-nowrap
> .wp-block-group:first-child > figure img {
	display: block;
	width: 100%;
	height: 100%;
	min-height: 420px;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	object-position: center;
	transition: transform 0.3s ease;
}


/* =========================================================
   BEFORE / AFTER 個別ホバー
========================================================= */

.works-section .wp-block-group.is-nowrap
> .wp-block-group:first-child > figure:hover img {
	transform: scale(1.03);
}


/* =========================================================
   BEFORE / AFTER 中央の白線
   画像グループそのものに配置
========================================================= */

.works-section .wp-block-group.is-nowrap
> .wp-block-group:first-child::before {
	content: "";
	position: absolute;
	top: 0;
	left: 50%;
	width: 1px;
	height: 100%;
	background: rgba(255, 255, 255, 0.95);
	transform: translateX(-50%);
	z-index: 4;
	pointer-events: none;
}


/* =========================================================
   BEFORE / AFTER 中央の比較マーク
========================================================= */

.works-section .wp-block-group.is-nowrap
> .wp-block-group:first-child::after {
	content: "‹ ›";
	position: absolute;
	top: 50%;
	left: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	padding-bottom: 4px;
	box-sizing: border-box;
	background: rgba(255, 255, 255, 0.96);
	border: 1px solid var(--works-green);
	border-radius: 50%;
	color: var(--works-green);
	font-family: "Noto Sans JP", sans-serif;
	font-size: 16px;
	font-weight: 500;
	line-height: 1;
	letter-spacing: 1px;
	transform: translate(-50%, -50%);
	z-index: 6;
	pointer-events: none;
	box-shadow:
		0 2px 8px rgba(0, 0, 0, 0.08),
		0 6px 18px rgba(0, 0, 0, 0.05);
}


/* =========================================================
   BEFORE LABEL
========================================================= */

.works-section .wp-block-group.is-nowrap
> .wp-block-group:first-child
> figure:first-child::before {
	content: "BEFORE";
	position: absolute;
	top: 18px;
	left: 18px;
	z-index: 5;
	padding: 7px 12px;
	background: rgba(255, 255, 255, 0.92);
	color: var(--works-green);
	font-size: 11px;
	font-weight: 600;
	line-height: 1;
	letter-spacing: 0.14em;
	pointer-events: none;
}


/* =========================================================
   AFTER LABEL
========================================================= */

.works-section .wp-block-group.is-nowrap
> .wp-block-group:first-child
> figure:last-child::before {
	content: "AFTER";
	position: absolute;
	top: 18px;
	right: 18px;
	z-index: 5;
	padding: 7px 12px;
	background: var(--works-green);
	color: #fff;
	font-size: 11px;
	font-weight: 600;
	line-height: 1;
	letter-spacing: 0.14em;
	pointer-events: none;
}


/* =========================================================
   施工情報エリア
========================================================= */

.works-section .wp-block-group.is-nowrap
> .wp-block-group:last-child {
	display: flex !important;
	flex-direction: column;
	align-items: flex-start !important;
	padding: 10px 0;
	background: transparent !important;
	border: none !important;
	box-shadow: none !important;
	text-align: left !important;
}


/* 中のテキストを左寄せ */
.works-section .wp-block-group.is-nowrap
> .wp-block-group:last-child > p {
	width: 100%;
	text-align: left !important;
}


/* =========================================================
   WORK 01 / WORK 02
   情報側の最初のp
========================================================= */

.works-section .wp-block-group.is-nowrap
> .wp-block-group:last-child > p:first-child {
	margin: 0 0 18px;
	color: var(--works-green);
	font-size: 13px;
	font-weight: 600;
	line-height: 1;
	letter-spacing: 0.12em;
}


/* WORK番号下の短い線 */
.works-section .wp-block-group.is-nowrap
> .wp-block-group:last-child > p:first-child::after {
	content: "";
	display: block;
	width: 28px;
	height: 1px;
	margin-top: 12px;
	background: var(--works-green);
}


/* =========================================================
   CATEGORY
   2番目のp
========================================================= */

.works-section .wp-block-group.is-nowrap
> .wp-block-group:last-child > p:nth-child(2) {
	margin: 0 0 14px;
	color: var(--works-subtext);
	font-size: 14px;
	font-weight: 400;
	line-height: 1.7;
	letter-spacing: 0.04em;
}


/* =========================================================
   TITLE
   3番目のp
========================================================= */

.works-section .wp-block-group.is-nowrap
> .wp-block-group:last-child > p:nth-child(3) {
	margin: 0 0 24px;
	color: var(--works-text);
	font-family: "Noto Serif JP", serif;
	font-size: clamp(24px, 2.4vw, 34px);
	font-weight: 500;
	line-height: 1.6;
	letter-spacing: 0.05em;
	text-align: left;
}


/* タイトル下の短い緑線 */
.works-section .wp-block-group.is-nowrap
> .wp-block-group:last-child > p:nth-child(3)::after {
	content: "";
	display: block;
	width: 30px;
	height: 2px;
	margin-top: 18px;
	background: var(--works-green);
}


/* =========================================================
   AREA
   4番目のp
========================================================= */

.works-section .wp-block-group.is-nowrap
> .wp-block-group:last-child > p:nth-child(4) {
	margin: 0 0 18px;
	color: var(--works-subtext);
	font-size: 14px;
	font-weight: 400;
	line-height: 1.8;
	letter-spacing: 0.04em;
}


/* =========================================================
   DESCRIPTION
   5番目のp
========================================================= */

.works-section .wp-block-group.is-nowrap
> .wp-block-group:last-child > p:nth-child(5) {
	margin: 0 0 30px;
	max-width: 420px;
	color: #525952;
	font-size: 15px;
	font-weight: 400;
	line-height: 2;
	letter-spacing: 0.04em;
	text-align: left;
}


/* =========================================================
   BUTTON WRAPPER
========================================================= */

.works-section .wp-block-group.is-nowrap
> .wp-block-group:last-child > .smb-buttons {
	width: 100%;
	margin: 0 !important;
	justify-content: flex-start !important;
}


/* =========================================================
   BUTTON
========================================================= */

.works-section .smb-btn {
	position: relative;
	min-width: 190px;
	padding:
		13px 52px
		13px 22px;
	background: transparent !important;
	border: 1px solid var(--works-green);
	border-radius: 0;
	color: var(--works-green) !important;
	font-size: 14px;
	font-weight: 500;
	letter-spacing: 0.08em;
	transition:
		background-color 0.3s ease,
		color 0.3s ease,
		border-color 0.3s ease;
}


/* ボタン矢印 */
.works-section .smb-btn::after {
	content: "→";
	position: absolute;
	top: 50%;
	right: 18px;
	transform: translateY(-50%);
	font-size: 18px;
	line-height: 1;
	transition: transform 0.3s ease;
}


/* ボタンホバー */
.works-section .smb-btn:hover {
	background: var(--works-green) !important;
	color: #fff !important;
}


.works-section .smb-btn:hover::after {
	transform: translate(4px, -50%);
}


/* =========================================================
   TABLET
========================================================= */

@media (max-width: 1023px) {

	/* 1カラム化 */
	.works-section .wp-block-group.is-nowrap,
	.works-section .wp-block-group.is-nowrap:nth-of-type(even) {
		grid-template-columns: 1fr;
		gap: 36px;
		padding: 56px 0;
	}


	/* タブレットでは必ず画像 → 情報 */
	.works-section .wp-block-group.is-nowrap
	> .wp-block-group:first-child {
		order: 1;
	}


	.works-section .wp-block-group.is-nowrap
	> .wp-block-group:last-child {
		order: 2;
	}


	/* 画像高さ */
	.works-section .wp-block-group.is-nowrap
	> .wp-block-group:first-child > figure img {
		min-height: 340px;
	}


	/* 比較マーク */
	.works-section .wp-block-group.is-nowrap
	> .wp-block-group:first-child::after {
		width: 38px;
		height: 38px;
		font-size: 15px;
	}
}


/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 767px) {

	.works-section .wp-block-group.is-nowrap,
	.works-section .wp-block-group.is-nowrap:nth-of-type(even) {
		gap: 28px;
		padding: 44px 0;
	}


	/* Before / After はスマホでも左右2分割 */
	.works-section .wp-block-group.is-nowrap
	> .wp-block-group:first-child {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}


	/* スマホ画像比率 */
	.works-section .wp-block-group.is-nowrap
	> .wp-block-group:first-child > figure img {
		min-height: auto;
		aspect-ratio: 3 / 4;
	}


	/* 比較マーク */
	.works-section .wp-block-group.is-nowrap
	> .wp-block-group:first-child::after {
		width: 34px;
		height: 34px;
		padding-bottom: 3px;
		font-size: 13px;
		letter-spacing: 0;
	}


	/* BEFORE / AFTER ラベル */
	.works-section .wp-block-group.is-nowrap
	> .wp-block-group:first-child
	> figure:first-child::before {
		top: 10px;
		left: 10px;
		padding: 6px 8px;
		font-size: 9px;
	}


	.works-section .wp-block-group.is-nowrap
	> .wp-block-group:first-child
	> figure:last-child::before {
		top: 10px;
		right: 10px;
		padding: 6px 8px;
		font-size: 9px;
	}


	/* タイトル */
	.works-section .wp-block-group.is-nowrap
	> .wp-block-group:last-child > p:nth-child(3) {
		font-size: 24px;
	}


	/* 本文 */
	.works-section .wp-block-group.is-nowrap
	> .wp-block-group:last-child > p:nth-child(5) {
		font-size: 14px;
	}
	}

	/* =========================================================
	   WORKS SECTION SP
	   セクションに .works-section-sp を付与
	========================================================= */

	.works-section-sp {
		--works-green: #178A4B;
		--works-text: #222722;
		--works-subtext: #6B726D;
		--works-bg: #FFFFFF;
		background: var(--works-bg);
	}

	.works-section-sp .smb-section__body {
		display: flex;
		flex-direction: column;
		gap: 28px;
	}

	.works-section-sp .smb-section__body > .wp-block-group {
		margin-top: 0;
		margin-bottom: 0;
	}

	.works-section-sp .smb-section__body > .wp-block-group:not(.is-nowrap) {
		display: flex !important;
		flex-direction: column;
		align-items: flex-start !important;
		padding: 0;
		background: transparent !important;
		border: none !important;
		box-shadow: none !important;
		text-align: left !important;
	}

	.works-section-sp .smb-section__body > .wp-block-group:not(.is-nowrap) > p {
		width: 100%;
		text-align: left !important;
	}

	.works-section-sp .smb-section__body > .wp-block-group:not(.is-nowrap) > p:first-child {
		margin: 0 0 18px;
		color: var(--works-green);
		font-size: 13px;
		font-weight: 600;
		line-height: 1;
		letter-spacing: 0.12em;
	}

	.works-section-sp .smb-section__body > .wp-block-group:not(.is-nowrap) > p:first-child::after {
		content: "";
		display: block;
		width: 28px;
		height: 1px;
		margin-top: 12px;
		background: var(--works-green);
	}

	.works-section-sp .smb-section__body > .wp-block-group:not(.is-nowrap) > p:nth-child(2) {
		margin: 0 0 14px;
		color: var(--works-subtext);
		font-size: 14px;
		font-weight: 400;
		line-height: 1.7;
		letter-spacing: 0.04em;
	}

	.works-section-sp .smb-section__body > .wp-block-group:not(.is-nowrap) > p:nth-child(3) {
		margin: 0 0 24px;
		color: var(--works-text);
		font-family: "Noto Serif JP", serif;
		font-size: 24px;
		font-weight: 500;
		line-height: 1.6;
		letter-spacing: 0.05em;
	}

	.works-section-sp .smb-section__body > .wp-block-group:not(.is-nowrap) > p:nth-child(3)::after {
		content: "";
		display: block;
		width: 30px;
		height: 2px;
		margin-top: 18px;
		background: var(--works-green);
	}

	.works-section-sp .smb-section__body > .wp-block-group:not(.is-nowrap) > p:nth-child(4) {
		margin: 0 0 18px;
		color: var(--works-subtext);
		font-size: 14px;
		font-weight: 400;
		line-height: 1.8;
		letter-spacing: 0.04em;
	}

	.works-section-sp .smb-section__body > .wp-block-group:not(.is-nowrap) > p:nth-child(5) {
		margin: 0;
		color: #525952;
		font-size: 14px;
		font-weight: 400;
		line-height: 2;
		letter-spacing: 0.04em;
	}

	.works-section-sp .smb-section__body > .wp-block-group.is-nowrap {
		position: relative;
		display: grid !important;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 0;
		margin: 0;
		background: transparent !important;
		border: none !important;
		box-shadow: none !important;
		overflow: visible;
	}

	.works-section-sp .smb-section__body > .wp-block-group.is-nowrap > figure {
		position: relative;
		width: 100%;
		height: 100%;
		margin: 0 !important;
		overflow: hidden !important;
	}

	.works-section-sp .smb-section__body > .wp-block-group.is-nowrap > figure img {
		display: block;
		width: 100%;
		height: 100%;
		min-height: auto;
		aspect-ratio: 3 / 4;
		object-fit: cover;
		object-position: center;
		transition: transform 0.3s ease;
	}

	.works-section-sp .smb-section__body > .wp-block-group.is-nowrap > figure:hover img {
		transform: scale(1.03);
	}

	.works-section-sp .smb-section__body > .wp-block-group.is-nowrap::before {
		content: "";
		position: absolute;
		top: 0;
		left: 50%;
		width: 1px;
		height: 100%;
		background: rgba(255, 255, 255, 0.95);
		transform: translateX(-50%);
		z-index: 4;
		pointer-events: none;
	}

	.works-section-sp .smb-section__body > .wp-block-group.is-nowrap::after {
		content: "‹ ›";
		position: absolute;
		top: 50%;
		left: 50%;
		display: flex;
		align-items: center;
		justify-content: center;
		width: 34px;
		height: 34px;
		padding-bottom: 3px;
		box-sizing: border-box;
		background: rgba(255, 255, 255, 0.96);
		border: 1px solid var(--works-green);
		border-radius: 50%;
		color: var(--works-green);
		font-family: "Noto Sans JP", sans-serif;
		font-size: 13px;
		font-weight: 500;
		line-height: 1;
		letter-spacing: 0;
		transform: translate(-50%, -50%);
		z-index: 6;
		pointer-events: none;
		box-shadow:
			0 2px 8px rgba(0, 0, 0, 0.08),
			0 6px 18px rgba(0, 0, 0, 0.05);
	}

	.works-section-sp .smb-section__body > .wp-block-group.is-nowrap > figure:first-child::before {
		content: "BEFORE";
		position: absolute;
		top: 10px;
		left: 10px;
		z-index: 5;
		padding: 6px 8px;
		background: rgba(255, 255, 255, 0.92);
		color: var(--works-green);
		font-size: 9px;
		font-weight: 600;
		line-height: 1;
		letter-spacing: 0.14em;
		pointer-events: none;
	}

	.works-section-sp .smb-section__body > .wp-block-group.is-nowrap > figure:last-child::before {
		content: "AFTER";
		position: absolute;
		top: 10px;
		right: 10px;
		z-index: 5;
		padding: 6px 8px;
		background: var(--works-green);
		color: #fff;
		font-size: 9px;
		font-weight: 600;
		line-height: 1;
		letter-spacing: 0.14em;
		pointer-events: none;
	}

	.works-section-sp .smb-section__body > .smb-buttons {
		width: 100%;
		margin: 0 !important;
		justify-content: flex-start !important;
	}

	.works-section-sp .smb-section__body > .smb-buttons:last-child {
		margin-top: 28px !important;
	}

	.works-section-sp .smb-btn {
		position: relative;
		min-width: 190px;
		padding: 13px 52px 13px 22px;
		background: transparent !important;
		border: 1px solid var(--works-green);
		border-radius: 0;
		color: var(--works-green) !important;
		font-size: 14px;
		font-weight: 500;
		letter-spacing: 0.08em;
		transition:
			background-color 0.3s ease,
			color 0.3s ease,
			border-color 0.3s ease;
	}

	.works-section-sp .smb-btn::after {
		content: "→";
		position: absolute;
		top: 50%;
		right: 18px;
		transform: translateY(-50%);
		font-size: 18px;
		line-height: 1;
		transition: transform 0.3s ease;
	}

	.works-section-sp .smb-btn:hover {
		background: var(--works-green) !important;
		color: #fff !important;
	}

	.works-section-sp .smb-btn:hover::after {
		transform: translate(4px, -50%);
	}

	.works-section-sp .smb-section__body > .wp-block-group.is-nowrap:has(> .wp-block-group) {
		display: flex !important;
		flex-direction: column;
		gap: 28px;
		padding: 0;
	}

	.works-section-sp .smb-section__body > .wp-block-group.is-nowrap:has(> .wp-block-group)::before,
	.works-section-sp .smb-section__body > .wp-block-group.is-nowrap:has(> .wp-block-group)::after {
		content: none;
	}

	.works-section-sp .smb-section__body > .wp-block-group.is-nowrap > .wp-block-group:first-child {
		position: relative;
		display: grid !important;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 0;
		margin: 0;
		background: transparent !important;
		border: none !important;
		box-shadow: none !important;
		overflow: visible;
	}

	.works-section-sp .smb-section__body > .wp-block-group.is-nowrap > .wp-block-group:first-child > figure {
		position: relative;
		width: 100%;
		height: 100%;
		margin: 0 !important;
		overflow: hidden !important;
	}

	.works-section-sp .smb-section__body > .wp-block-group.is-nowrap > .wp-block-group:first-child > figure img {
		display: block;
		width: 100%;
		height: 100%;
		min-height: auto;
		aspect-ratio: 3 / 4;
		object-fit: cover;
		object-position: center;
		transition: transform 0.3s ease;
	}

	.works-section-sp .smb-section__body > .wp-block-group.is-nowrap > .wp-block-group:first-child > figure:hover img {
		transform: scale(1.03);
	}

	.works-section-sp .smb-section__body > .wp-block-group.is-nowrap > .wp-block-group:first-child::before {
		content: "";
		position: absolute;
		top: 0;
		left: 50%;
		width: 1px;
		height: 100%;
		background: rgba(255, 255, 255, 0.95);
		transform: translateX(-50%);
		z-index: 4;
		pointer-events: none;
	}

	.works-section-sp .smb-section__body > .wp-block-group.is-nowrap > .wp-block-group:first-child::after {
		content: "‹ ›";
		position: absolute;
		top: 50%;
		left: 50%;
		display: flex;
		align-items: center;
		justify-content: center;
		width: 34px;
		height: 34px;
		padding-bottom: 3px;
		box-sizing: border-box;
		background: rgba(255, 255, 255, 0.96);
		border: 1px solid var(--works-green);
		border-radius: 50%;
		color: var(--works-green);
		font-family: "Noto Sans JP", sans-serif;
		font-size: 13px;
		font-weight: 500;
		line-height: 1;
		letter-spacing: 0;
		transform: translate(-50%, -50%);
		z-index: 6;
		pointer-events: none;
		box-shadow:
			0 2px 8px rgba(0, 0, 0, 0.08),
			0 6px 18px rgba(0, 0, 0, 0.05);
	}

	.works-section-sp .smb-section__body > .wp-block-group.is-nowrap > .wp-block-group:first-child > figure:first-child::before {
		content: "BEFORE";
		position: absolute;
		top: 10px;
		left: 10px;
		z-index: 5;
		padding: 6px 8px;
		background: rgba(255, 255, 255, 0.92);
		color: var(--works-green);
		font-size: 9px;
		font-weight: 600;
		line-height: 1;
		letter-spacing: 0.14em;
		pointer-events: none;
	}

	.works-section-sp .smb-section__body > .wp-block-group.is-nowrap > .wp-block-group:first-child > figure:last-child::before {
		content: "AFTER";
		position: absolute;
		top: 10px;
		right: 10px;
		z-index: 5;
		padding: 6px 8px;
		background: var(--works-green);
		color: #fff;
		font-size: 9px;
		font-weight: 600;
		line-height: 1;
		letter-spacing: 0.14em;
		pointer-events: none;
	}

	.works-section-sp .smb-section__body > .wp-block-group.is-nowrap > .wp-block-group:last-child {
		display: flex !important;
		flex-direction: column;
		align-items: flex-start !important;
		padding: 0;
		background: transparent !important;
		border: none !important;
		box-shadow: none !important;
		text-align: left !important;
	}

	/* =========================================================
	   CONTACT
	========================================================= */

/* 電話ボタンアイコン */
.contact-tel-button .smb-btn__label::before {
	content: "";
	display: inline-block;
	width: 1em;
	height: 1em;
	margin-right: 0.5em;
	background-color: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='currentColor' d='M6.62 10.79a15.46 15.46 0 0 0 6.59 6.59l2.2-2.2a1 1 0 0 1 1.02-.24c1.12.37 2.33.57 3.57.57a1 1 0 0 1 1 1V20a1 1 0 0 1-1 1C10.61 21 3 13.39 3 4a1 1 0 0 1 1-1h3.5a1 1 0 0 1 1 1c0 1.25.2 2.45.57 3.57a1 1 0 0 1-.25 1.02l-2.2 2.2Z'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='currentColor' d='M6.62 10.79a15.46 15.46 0 0 0 6.59 6.59l2.2-2.2a1 1 0 0 1 1.02-.24c1.12.37 2.33.57 3.57.57a1 1 0 0 1 1 1V20a1 1 0 0 1-1 1C10.61 21 3 13.39 3 4a1 1 0 0 1 1-1h3.5a1 1 0 0 1 1 1c0 1.25.2 2.45.57 3.57a1 1 0 0 1-.25 1.02l-2.2 2.2Z'/%3E%3C/svg%3E") center / contain no-repeat;
	vertical-align: -0.1em;
}

/* お問い合わせボタン */
.contact-button .smb-btn {
	width: 240px;
	max-width: 100%;
	box-sizing: border-box;
	display: flex;
	align-items: center;
	justify-content: center;
}

/* =========================================================
   RECRUIT SECTION
   PC：右側画像を画面右端まで広げる
========================================================= */

@media (min-width: 1024px) {

	/* 右側カラムを画面右端まで拡張 */
	.recruit-section .wp-block-columns > .wp-block-column:last-child {
		margin-right: calc(50% - 50vw);
	}

	/* figureをカラムいっぱいに */
	.recruit-section .wp-block-column:last-child figure {
		width: 100%;
		height: 100%;
		margin: 0;
	}

	/* 画像を全面表示 */
	.recruit-section .wp-block-column:last-child figure img {
		display: block;
		width: 100%;
		height: 100%;
		object-fit: cover;
	}
}

/* =========================================================
   SERVICE PAGE
========================================================= */

.service-page {
	--service-green: #178A4B;
	--service-accent: #B68740;
	--service-text: #222722;
	--service-subtext: #6B726D;
	--service-bg-soft: #F9F8F6;
	--service-bg-warm: #F8F8F5;
	--service-line: rgba(23, 138, 75, 0.16);
	--service-gray-line: rgba(34, 39, 34, 0.12);
	--service-container-max-width: var(--_global--container-max-width, 1280px);
	width: auto;
	max-width: none;
	margin-right: calc(-1 * var(--_container-margin-right, var(--_global--container-margin, 0px)));
	margin-left: calc(-1 * var(--_container-margin-left, var(--_global--container-margin, 0px)));
	overflow: visible;
	color: var(--service-text);
	background: #fff;
}

.c-entry__content:has(.service-page),
.c-entry__content:has(.service-page) > .service-page {
	overflow: visible;
}

.service-page > .wp-block-group {
	--service-section-bg: #fff;
	position: relative;
	z-index: 0;
	padding: 112px 0;
	background: var(--service-section-bg);
	box-shadow: 0 0 0 100vmax var(--service-section-bg);
	clip-path: inset(0 -100vmax);
}

.service-page > .wp-block-group::before {
	content: none;
}

.service-page > .wp-block-group > * {
	position: relative;
	box-sizing: border-box;
	width: calc(
		100%
		- var(--_container-margin-right, var(--_global--container-margin, 0px))
		- var(--_container-margin-left, var(--_global--container-margin, 0px))
	);
	max-width: var(--service-container-max-width);
	margin-right: auto;
	margin-left: auto;
	padding-right: 0;
	padding-left: 0;
}

.service-page :where(
	.service-page-intro,
	.service-private,
	.service-facility,
	.service-strength,
	.service-consultation,
	.recruit-message,
	.recruit-work,
	.recruit-benefits,
	.recruit-flow,
	.recruit-people,
	.recruit-requirements,
	.works-service-link
) .wp-block-columns {
	padding-right: 0 !important;
	padding-left: 0 !important;
}

.service-page :where(p, li) {
	color: var(--service-subtext);
	font-size: 15px;
	line-height: 2;
	letter-spacing: 0.04em;
}

.service-page :where(h1, h2, h3) {
	color: var(--service-text);
	font-family: "Noto Serif JP", serif;
	font-weight: 500;
	letter-spacing: 0.04em;
}

.service-page :where(figure) {
	margin: 0;
	overflow: hidden;
}

.service-page :where(figure img) {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.service-page :where(.service-page-fv, .service-page-intro, .service-private, .service-facility, .service-strength, .service-consultation, .service-contact, .recruit-message, .recruit-work, .recruit-benefits, .recruit-flow, .recruit-people, .recruit-beginners, .recruit-requirements, .recruit-entry)
> p:first-child {
	margin: 0 0 16px;
	color: var(--service-accent);
	font-size: 12px;
	font-weight: 600;
	line-height: 1;
	letter-spacing: 0.16em;
}

.service-page :where(.service-page-intro, .service-private, .service-facility, .service-strength, .service-consultation, .service-contact, .recruit-message, .recruit-work, .recruit-benefits, .recruit-flow, .recruit-people, .recruit-beginners, .recruit-requirements, .recruit-entry)
> h2 {
	margin: 0 0 28px;
	font-size: clamp(28px, 3vw, 40px);
	line-height: 1.55;
}

.service-page :where(.service-page-intro, .service-facility, .service-strength, .recruit-work, .recruit-benefits, .recruit-flow, .recruit-people, .recruit-requirements, .recruit-entry)
> h2::after,
.service-page .service-page-intro .wp-block-column:first-child > h2::after,
.service-page .service-facility > .wp-block-columns:first-child .wp-block-column:first-child > h2::after,
.service-page .recruit-message > .wp-block-columns .wp-block-column:last-child > h2::after {
	content: "";
	display: block;
	width: 40px;
	height: 2px;
	margin-top: 18px;
	background: var(--service-green);
}

/* PAGE FV */
.service-page-fv {
	min-height: 72vh;
	display: flex;
	align-items: center;
}

.service-page-fv::before {
	content: none;
}

.service-page-fv {
	background:
		linear-gradient(90deg, #fff 0%, #fff 43%, var(--service-bg-soft) 43%, var(--service-bg-soft) 100%);
	box-shadow: none;
}

.service-page-fv > .wp-block-columns {
	width: 100%;
	margin: 0;
	box-sizing: border-box;
	padding-right: var(--_container-margin-right, var(--_global--container-margin, var(--_s1)));
	padding-left: var(--_container-margin-left, var(--_global--container-margin, var(--_s1)));
	display: grid !important;
	grid-template-columns: minmax(0, 0.82fr) minmax(0, 1.18fr);
	gap: 64px;
	align-items: center;
}

.service-page-fv .wp-block-column:first-child {
	position: relative;
	padding-left: 28px;
}

.service-page-fv .wp-block-column:first-child::before {
	content: "";
	position: absolute;
	top: 6px;
	left: 0;
	width: 1px;
	height: 78%;
	background: var(--service-green);
}

.service-page-fv p:first-child {
	margin: 0 0 18px;
	color: var(--service-accent);
	font-size: 12px;
	font-weight: 600;
	line-height: 1;
	letter-spacing: 0.18em;
}

.service-page-fv h1 {
	margin: 0 0 30px;
	color: var(--service-green);
	font-size: clamp(24px, 2.4vw, 34px);
	line-height: 1.35;
}

.service-page-fv h2 {
	margin: 0 0 32px;
	font-size: clamp(23px, 2.67vw, 39px);
	line-height: 1.48;
}

.works-page-fv h2 {
	font-size: clamp(21px, 2.4vw, 34px);
}

.service-page-fv.recruit-page-fv h2 {
	font-size: clamp(23px, 2.67vw, 39px);
}

.service-page-fv .wp-block-column:first-child > p:last-child {
	max-width: 470px;
	margin: 0;
}

.service-page-fv figure img {
	min-height: 520px;
	aspect-ratio: 16 / 10;
	object-position: center;
}

.works-page-fv figure img {
	min-height: auto;
	aspect-ratio: 1 / 1 !important;
}

.works-page-fv figure {
	width: 80%;
	margin-left: auto;
}

/* INTRO */
.service-page-intro::before {
	content: none;
}

.service-page-intro > .wp-block-columns,
.service-facility > .wp-block-columns:first-child {
	margin: 0;
	display: grid !important;
	grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.08fr);
	gap: 72px;
	align-items: center;
}

.service-page-intro .wp-block-column:first-child > p:not(:first-child),
.service-facility > .wp-block-columns:first-child .wp-block-column:first-child > p:not(:first-child) {
	max-width: 560px;
}

.service-page-intro figure img,
.service-facility > .wp-block-columns:first-child figure img {
	min-height: 460px;
	aspect-ratio: 4 / 3;
}

/* PRIVATE GARDEN */
.service-private::before {
	content: none;
}

.service-private {
	--service-section-bg: var(--service-bg-soft);
}

.service-private > p:nth-of-type(2),
.service-private > p:nth-of-type(3) {
	max-width: 640px;
	margin-right: 0;
	margin-left: 0;
}

.service-private > .wp-block-group {
	margin-top: 88px;
}

.service-private > .wp-block-group + .wp-block-group {
	margin-top: 104px;
}

.service-private > .wp-block-group > .wp-block-columns {
	margin: 0;
	display: grid !important;
	grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
	gap: 70px;
	align-items: center;
}

.service-private > .wp-block-group:nth-of-type(even) > .wp-block-columns {
	grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
}

.service-private > .wp-block-group figure {
	background: #fff;
}

.service-private > .wp-block-group figure img {
	min-height: 430px;
	aspect-ratio: 4 / 3;
	transition: transform 0.3s ease;
}

.service-private > .wp-block-group figure:hover img {
	transform: scale(1.03);
}

.service-private > .wp-block-group .wp-block-column:has(h3) {
	padding: 8px 0;
}

.service-private > .wp-block-group .wp-block-column:has(h3) > p:first-child {
	margin: 0 0 18px;
	color: var(--service-accent);
	font-family: "Noto Serif JP", serif;
	font-size: 22px;
	line-height: 1;
}

.service-private > .wp-block-group .wp-block-column:has(h3) > p:first-child::after {
	content: "";
	display: block;
	width: 30px;
	height: 1px;
	margin-top: 14px;
	background: var(--service-accent);
}

.service-private h3 {
	margin: 0 0 22px;
	font-size: clamp(25px, 2.4vw, 34px);
	line-height: 1.5;
}

.service-private h3::after {
	content: "";
	display: block;
	width: 34px;
	height: 2px;
	margin-top: 16px;
	background: var(--service-green);
}

.service-private ul {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 10px 22px;
	margin: 30px 0 0;
	padding: 24px 0 0;
	border-top: 1px solid var(--service-line);
	list-style: none;
}

.service-private li {
	position: relative;
	margin-top: 10px;
	padding-left: 16px;
	line-height: 1.7;
}

.service-private li::before {
	content: "";
	position: absolute;
	top: 0.82em;
	left: 0;
	width: 5px;
	height: 5px;
	background: var(--service-green);
	border-radius: 50%;
}

/* FACILITY */
.service-facility::before {
	content: none;
}

.service-facility > .wp-block-columns:not(:first-child) {
	margin: 64px 0 0;
	display: grid !important;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0;
	border-top: 1px solid var(--service-gray-line);
}

.service-facility > .wp-block-columns + .wp-block-columns {
	margin-top: 0;
}

.service-facility > .wp-block-columns:not(:first-child) + .wp-block-columns {
	border-top: none;
}

.service-facility > .wp-block-columns:not(:first-child) > .wp-block-column {
	padding: 44px 44px 44px 0;
	border-bottom: 1px solid var(--service-gray-line);
}

.service-facility > .wp-block-columns:not(:first-child) > .wp-block-column:nth-child(2) {
	padding-right: 0;
	padding-left: 44px;
	border-left: 1px solid var(--service-gray-line);
}

.service-facility > .wp-block-columns:not(:first-child) .wp-block-group {
	margin: 0;
}

.service-facility > .wp-block-columns:not(:first-child) .wp-block-group > p:first-child {
	margin: 0 0 18px;
	color: var(--service-accent);
	font-size: 14px;
	font-weight: 600;
	line-height: 1;
	letter-spacing: 0.12em;
}

.service-facility h3 {
	margin: 0 0 18px;
	font-size: clamp(21px, 2vw, 27px);
	line-height: 1.55;
}

.service-facility h3::after {
	content: "";
	display: block;
	width: 30px;
	height: 1px;
	margin-top: 14px;
	background: var(--service-green);
}

.service-facility ul {
	margin: 24px 0 0;
	padding: 0;
	list-style: none;
}

.service-facility li {
	position: relative;
	margin-top: 10px;
	padding-left: 16px;
	line-height: 1.85;
}

.service-facility li::before {
	content: "";
	position: absolute;
	top: 0.92em;
	left: 0;
	width: 5px;
	height: 5px;
	background: var(--service-green);
	border-radius: 50%;
}

/* OUR STRENGTH */
.service-strength::before {
	content: none;
}

.service-strength {
	--service-section-bg: var(--service-bg-warm);
}

.service-strength > p:not(:first-child) {
	max-width: 760px;
}

.service-strength > .wp-block-columns {
	margin: 58px 0 0;
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 0;
}

.service-strength > .wp-block-columns > .wp-block-column {
	padding: 0 34px;
	border-left: 1px solid rgba(182, 135, 64, 0.18);
}

.service-strength > .wp-block-columns > .wp-block-column:first-child {
	padding-left: 0;
	border-left: none;
}

.service-strength > .wp-block-columns > .wp-block-column > p:first-child {
	margin: 0 0 16px;
	color: var(--service-accent);
	font-family: "Noto Serif JP", serif;
	font-size: 24px;
	line-height: 1;
}

.service-strength > .wp-block-columns > .wp-block-column > p:first-child::after {
	content: "";
	display: block;
	width: 42px;
	height: 1px;
	margin-top: 18px;
	background: var(--service-accent);
}

.service-strength h3 {
	margin: 0 0 18px;
	font-size: 22px;
	line-height: 1.6;
}

/* CONSULTATION */
.service-consultation {
	background: #fff;
	text-align: center;
}

.service-consultation::before {
	content: none;
}

.service-consultation > * {
	max-width: 760px;
	margin-right: auto;
	margin-left: auto;
}

.service-consultation > h2 {
	font-size: clamp(28px, 3.2vw, 42px);
}

.service-consultation > p:nth-of-type(2) {
	color: var(--service-text);
	font-family: "Noto Serif JP", serif;
	font-size: clamp(18px, 2vw, 24px);
	line-height: 2;
}

/* CONTACT */
.service-contact {
	padding-top: 120px;
	padding-bottom: 120px;
	text-align: center;
}

.service-contact::before {
	content: none;
}

.service-contact {
	background:
		linear-gradient(rgba(23, 138, 75, 0.74), rgba(23, 138, 75, 0.74)),
		url("http://landscaping-industry.local/wp-content/uploads/2026/08/18.jpg") center / cover no-repeat;
	box-shadow: none;
}

.service-contact > * {
	max-width: 760px;
	margin-right: auto;
	margin-left: auto;
}

.service-contact > p:first-child {
	color: rgba(255, 255, 255, 0.86);
}

.service-contact > h2 {
	color: #fff !important;
}

.service-contact > p {
	color: rgba(255, 255, 255, 0.92);
}

.service-contact > p:nth-of-type(4) {
	margin-top: 28px;
	color: #fff;
	font-family: "Noto Serif JP", serif;
	font-size: clamp(28px, 3vw, 40px);
	line-height: 1.2;
	letter-spacing: 0.06em;
}

.service-contact .wp-block-buttons {
	margin-top: 34px;
	display: flex;
	justify-content: center;
	gap: 16px;
}

.service-contact .wp-block-button__link {
	box-sizing: border-box;
	min-width: 230px;
	padding: 14px 28px;
	background: #fff;
	border: 1px solid #fff;
	border-radius: 0;
	color: var(--service-green);
	font-size: 14px;
	font-weight: 600;
	letter-spacing: 0.08em;
	transition:
		background-color 0.3s ease,
		color 0.3s ease,
		border-color 0.3s ease;
}

.service-contact .wp-block-button__link:hover {
	background: var(--service-green);
	border-color: #fff;
	color: #fff;
}

@media (max-width: 1023px) {

	.service-page > .wp-block-group {
		padding: 88px 0;
	}

	.service-page-fv {
		min-height: auto;
		background: var(--service-bg-soft);
	}

	.service-page-fv > .wp-block-columns,
	.service-page-intro > .wp-block-columns,
	.service-facility > .wp-block-columns:first-child,
	.service-private > .wp-block-group > .wp-block-columns,
	.service-private > .wp-block-group:nth-of-type(even) > .wp-block-columns {
		grid-template-columns: 1fr;
		gap: 36px;
	}

	.service-page-fv .wp-block-column:first-child {
		padding-left: 22px;
	}

	.service-page-fv figure img,
	.service-page-intro figure img,
	.service-facility > .wp-block-columns:first-child figure img,
	.service-private > .wp-block-group figure img {
		min-height: auto;
		aspect-ratio: 16 / 10;
	}

	.works-page-fv figure img {
		aspect-ratio: 1 / 1 !important;
	}

	.works-page-fv figure {
		width: 100%;
		margin-left: 0;
	}

	.service-private > .wp-block-group:nth-of-type(even) .wp-block-column:first-child {
		order: 2;
	}

	.service-private > .wp-block-group:nth-of-type(even) .wp-block-column:last-child {
		order: 1;
	}

	.service-facility > .wp-block-columns:not(:first-child) {
		grid-template-columns: 1fr;
	}

	.service-facility > .wp-block-columns:not(:first-child) > .wp-block-column,
	.service-facility > .wp-block-columns:not(:first-child) > .wp-block-column:nth-child(2) {
		padding: 34px 0;
		border-left: none;
	}

	.service-strength > .wp-block-columns {
		grid-template-columns: 1fr;
		gap: 34px;
	}

	.service-strength > .wp-block-columns > .wp-block-column,
	.service-strength > .wp-block-columns > .wp-block-column:first-child {
		padding: 0 0 34px;
		border-left: none;
		border-bottom: 1px solid rgba(182, 135, 64, 0.18);
	}

	.service-strength > .wp-block-columns > .wp-block-column:last-child {
		padding-bottom: 0;
		border-bottom: none;
	}
}

@media (max-width: 767px) {

	.service-page {
		width: auto;
		margin-right: calc(-1 * var(--_container-margin-right, var(--_global--container-margin, 0px)));
		margin-left: calc(-1 * var(--_container-margin-left, var(--_global--container-margin, 0px)));
	}

	.service-page > .wp-block-group {
		padding: 70px 0;
	}

	.service-page :where(p, li) {
		font-size: 14px;
		line-height: 1.9;
	}

	.service-page :where(.service-page-intro, .service-private, .service-facility, .service-strength, .service-consultation, .service-contact)
	> h2 {
		font-size: 27px;
	}

	.service-page-fv h1 {
		font-size: 26px;
	}

	.service-page-fv h2 {
		font-size: 23px;
	}

	.works-page-fv h2 {
		font-size: 21px;
	}

	.service-page-fv figure img,
	.service-page-intro figure img,
	.service-facility > .wp-block-columns:first-child figure img,
	.service-private > .wp-block-group figure img {
		aspect-ratio: 4 / 3;
	}

	.works-page-fv figure img {
		aspect-ratio: 1 / 1 !important;
	}

	.service-private > .wp-block-group {
		margin-top: 58px;
	}

	.service-private > .wp-block-group + .wp-block-group {
		margin-top: 72px;
	}

	.service-private ul {
		grid-template-columns: 1fr;
	}

	.service-facility > .wp-block-columns:not(:first-child) {
		margin-top: 42px;
	}

	.service-contact .wp-block-buttons {
		flex-direction: column;
		align-items: center;
	}

	.service-contact .wp-block-button,
	.service-contact .wp-block-button__link {
		width: 100%;
		max-width: 320px;
	}
}

/* Service page background fallback.
   Keep this at the end so Snow Monkey block backgrounds cannot override it. */
.service-page > .wp-block-group.service-page-fv {
	background:
		linear-gradient(90deg, #fff 0%, #fff 43%, var(--service-bg-soft) 43%, var(--service-bg-soft) 100%) !important;
}

.service-page > .wp-block-group.service-private {
	background-color: #F9F8F6 !important;
	box-shadow: 0 0 0 100vmax #F9F8F6 !important;
	clip-path: inset(0 -100vmax);
}

.service-page > .wp-block-group.service-strength {
	background-color: #F8F8F5 !important;
	box-shadow: 0 0 0 100vmax #F8F8F5 !important;
	clip-path: inset(0 -100vmax);
}

.service-page > .wp-block-group.service-contact {
	background-color: #178A4B !important;
	background-image:
		linear-gradient(rgba(23, 138, 75, 0.74), rgba(23, 138, 75, 0.74)),
		url("http://landscaping-industry.local/wp-content/uploads/2026/08/18.jpg") !important;
	background-position: center !important;
	background-size: cover !important;
	background-repeat: no-repeat !important;
	box-shadow: none !important;
}

/* =========================================================
   WORKS PAGE
========================================================= */

.service-page > .wp-block-group.works-page-list {
	--service-section-bg: #F9F8F6;
}

.works-page-list.works-section .wp-block-group.is-nowrap {
	padding: 46px 0;
}

.works-page-list.works-section .wp-block-group.is-nowrap + .wp-block-group.is-nowrap {
	margin-top: 56px;
}

.works-page-list.works-section .wp-block-group.is-nowrap
> .wp-block-group:first-child > figure img {
	min-height: 460px;
}

.works-page-list > p:first-child,
.works-before-after > p:first-child,
.works-service-link > .wp-block-columns > .wp-block-column:last-child > p:first-child {
	margin: 0 0 16px;
	color: var(--service-accent);
	font-size: 12px;
	font-weight: 600;
	line-height: 1;
	letter-spacing: 0.16em;
}

.works-page-list > h2,
.works-before-after > h2,
.works-service-link h2 {
	margin: 0 0 42px;
	color: var(--service-text);
	font-family: "Noto Serif JP", serif;
	font-size: clamp(28px, 3vw, 40px);
	font-weight: 500;
	line-height: 1.55;
	letter-spacing: 0.04em;
}

.works-page-list > h2::after,
.works-before-after > h2::after,
.works-service-link h2::after {
	content: "";
	display: block;
	width: 40px;
	height: 2px;
	margin-top: 18px;
	background: var(--service-green);
}

.works-page-list.works-section .wp-block-group.is-nowrap
> .works-page-info > p {
	width: 100%;
	text-align: left !important;
}

.works-page-list.works-section .wp-block-group.is-nowrap
> .works-page-info > .works-page-number {
	margin: 0 0 18px;
	color: var(--service-accent);
	font-size: 13px;
	font-weight: 600;
	line-height: 1;
	letter-spacing: 0.12em;
}

.works-page-list.works-section .wp-block-group.is-nowrap
> .works-page-info > .works-page-number::after {
	content: "";
	display: block;
	width: 28px;
	height: 1px;
	margin-top: 12px;
	background: var(--service-accent);
}

.works-page-list.works-section .wp-block-group.is-nowrap
> .works-page-info > .works-page-category {
	margin: 0 0 14px;
	color: var(--works-green);
	font-size: 14px;
	font-weight: 500;
	line-height: 1.7;
}

.works-page-list.works-section .wp-block-group.is-nowrap
> .works-page-info > .works-page-title {
	margin: 0 0 24px;
	color: var(--works-text);
	font-family: "Noto Serif JP", serif;
	font-size: clamp(24px, 2.4vw, 34px);
	font-weight: 500;
	line-height: 1.6;
	letter-spacing: 0.05em;
}

.works-page-list.works-section .wp-block-group.is-nowrap
> .works-page-info > .works-page-title::after {
	content: "";
	display: block;
	width: 30px;
	height: 2px;
	margin-top: 18px;
	background: var(--works-green);
}

.works-page-list.works-section .wp-block-group.is-nowrap
> .works-page-info > .works-page-area {
	margin: 0 0 18px;
	color: var(--works-subtext);
	font-size: 13px;
	line-height: 1.8;
}

.works-page-list.works-section .wp-block-group.is-nowrap
> .works-page-info > .works-page-description {
	margin: 0 0 28px;
	max-width: 460px;
	color: #525952;
	font-size: 15px;
	line-height: 2;
}

.works-page-list.works-section .wp-block-group.is-nowrap
> .works-page-info > .works-page-task-title {
	margin: 0 !important;
	margin-block-end: 0 !important;
	padding-top: 22px;
	border-top: 1px solid rgba(23, 138, 75, 0.16);
	color: var(--works-text);
	font-size: 14px;
	font-weight: 600;
	line-height: 1.6;
}

.works-page-task-title.wp-block-paragraph {
	font-weight: 700 !important;
}

.works-page-list.works-section .wp-block-group.is-nowrap
> .works-page-info > ul {
	width: 100%;
	max-width: none;
	margin-top: 15px !important;
	margin-right: 0 !important;
	margin-bottom: 0 !important;
	margin-left: 0 !important;
	margin-block-start: 15px !important;
	padding: 0;
	list-style: none;
	text-align: left;
}

.works-page-list.works-section .wp-block-group.is-nowrap
> .works-page-info > ul > li {
	position: relative;
	margin-top: 10px;
	padding-left: 16px;
	color: var(--works-subtext);
	font-size: 14px;
	line-height: 1.8;
}

.works-page-list.works-section .wp-block-group.is-nowrap
> .works-page-info > ul > li:first-child {
	margin-top: 0;
}

.works-page-list.works-section .wp-block-group.is-nowrap
> .works-page-info > ul > li::before {
	content: "";
	position: absolute;
	top: 0.9em;
	left: 0;
	width: 5px;
	height: 5px;
	background: var(--works-green);
	border-radius: 50%;
}

.works-before-after {
	--service-section-bg: #F9F8F6;
	text-align: center;
}

.works-before-after > * {
	max-width: 760px;
	margin-right: auto;
	margin-left: auto;
}

.works-before-after > h2::after {
	margin-right: auto;
	margin-left: auto;
}

.works-service-link {
	--service-section-bg: #fff;
}

.works-service-link > .wp-block-columns {
	margin: 0;
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) minmax(0, 0.92fr);
	gap: 72px;
	align-items: center;
}

.works-service-link figure img {
	min-height: 420px;
	aspect-ratio: 4 / 3;
	object-fit: cover;
}

.works-service-link .wp-block-button__link {
	min-width: 210px;
	padding: 14px 28px;
	background: transparent;
	border: 1px solid var(--service-green);
	border-radius: 0;
	color: var(--service-green);
	font-size: 14px;
	font-weight: 600;
	letter-spacing: 0.08em;
	transition:
		background-color 0.3s ease,
		color 0.3s ease;
}

.works-service-link .wp-block-button__link:hover {
	background: var(--service-green);
	color: #fff;
}

@media (max-width: 1023px) {

	.works-page-list.works-section .wp-block-group.is-nowrap,
	.works-page-list.works-section .wp-block-group.is-nowrap:nth-of-type(even) {
		padding: 44px 0;
	}

	.works-page-list.works-section .wp-block-group.is-nowrap + .wp-block-group.is-nowrap {
		margin-top: 28px;
	}

	.works-page-list.works-section .wp-block-group.is-nowrap
	> .wp-block-group:first-child > figure img {
		min-height: 340px;
	}

	.works-service-link > .wp-block-columns {
		grid-template-columns: 1fr;
		gap: 36px;
	}

	.works-service-link figure img {
		min-height: auto;
		aspect-ratio: 16 / 10;
	}
}

	@media (max-width: 767px) {

		.works-page-list.works-section .wp-block-group.is-nowrap,
		.works-page-list.works-section .wp-block-group.is-nowrap:nth-of-type(even) {
			gap: 8px;
			padding: 36px 0;
		}

		.works-page-list.works-section .wp-block-group.is-nowrap
		> .wp-block-group:first-child {
			order: 2;
		}

		.works-page-list.works-section .wp-block-group.is-nowrap
		> .works-page-info {
			order: 1;
		}

		.works-page-list.works-section .wp-block-group.is-nowrap
		> .wp-block-group:first-child > figure img {
			min-height: auto;
		}

	.works-page-list > h2,
	.works-before-after > h2,
	.works-service-link h2 {
		margin-bottom: 32px;
		font-size: 27px;
	}
}
