/*
 * M247 マルヤスホーム サイトデザイン基盤 v2.3.0
 * mh-site-page を持つ対象固定ページだけに適用する。
 */

/*
 * GeneratePressの固定ページ標準余白を、対象ページだけで解除する。
 * サイトヘッダーと他ページには影響させない。
 */
body.mh-site-design-v1 {
	overflow-x: clip;
}

/* 共通相談CTA。HTMLは固定ページまたは各専用投稿プラグインが所有する。 */
.mh-consult-cta{background:#174f38;color:#fff;margin:56px 0 0;padding:48px 24px;text-align:center}
.mh-consult-cta__inner{margin:0 auto;max-width:920px}
.mh-consult-cta h2{color:#fff;font-size:clamp(24px,3vw,34px);line-height:1.45;margin:0 0 12px}
.mh-consult-cta p{color:#fff;font-size:17px;line-height:1.8;margin:0 0 24px}
.mh-consult-cta__button{background:#fff;border-radius:6px;color:#174f38;display:inline-flex;font-weight:700;justify-content:center;min-width:220px;padding:14px 24px;text-decoration:none}
.mh-consult-cta__button:hover,.mh-consult-cta__button:focus{background:#f2f7f4;color:#123d2c}
.mh-subpage .mh-consult-cta{margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw)}
.mh-contact-buttons{display:flex;gap:16px;justify-content:center;margin:32px auto;max-width:720px;padding:0 20px}
.mh-contact-buttons .mh-button{box-sizing:border-box;min-width:220px;text-align:center}
body.home .mh-works-more,body.home .mh-costs-more{clear:both;margin:28px 0 0!important;position:relative}
body.mh-site-design-dynamic-work .mh-work-cta{background:#f4f8f5!important;color:#24332c!important}
body.mh-site-design-dynamic-work .mh-work-cta h2,body.mh-site-design-dynamic-work .mh-work-cta p{color:#24332c!important}
body.mh-site-design-dynamic-work .mh-work-cta .mh-works-button,body.mh-site-design-dynamic-work .mh-work-cta .mh-works-button:hover,body.mh-site-design-dynamic-work .mh-work-cta .mh-works-button:focus{background:#2f7d32!important;border-color:#2f7d32!important;color:#fff!important}
@media(max-width:767px){.mh-consult-cta{margin-top:40px;padding:36px 20px}.mh-consult-cta p{font-size:16px}.mh-consult-cta__button{box-sizing:border-box;width:100%}.mh-contact-buttons{flex-direction:column;margin:24px auto}.mh-contact-buttons .mh-button{width:100%}body.home .mh-works-more,body.home .mh-costs-more{margin-top:22px!important}}

body.mh-site-design-v1 #page.site,
body.mh-site-design-v1 #content.site-content,
body.mh-site-design-v1 #primary.content-area,
body.mh-site-design-v1 #main.site-main,
body.mh-site-design-v1 article.page,
body.mh-site-design-v1 article.page > .inside-article,
body.mh-site-design-v1 article.page .entry-content {
	box-sizing: border-box;
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
	padding: 0 !important;
}

.mh-site-page {
	--mh-green: #1f6b45;
	--mh-green-dark: #174c32;
	--mh-heading: #26332d;
	--mh-text: #4f5e56;
	--mh-border: #dfe9e3;
	--mh-soft: #f4f8f5;
	--mh-pink: #f06aa6;
	--mh-yellow: #e4aa38;
	--mh-blue: #4a98dc;
	--mh-accent: #3aa974;
	--mh-step-number: #6f9f85;
	--mh-pastel-yellow: #fff4d6;
	--mh-pastel-blue: #eaf6ff;
	--mh-pastel-pink: #f9edf4;
	--mh-pastel-mint: #eaf7f0;
	--mh-pastel-cream: #fff8ee;
	--mh-pastel-lavender: #f2effb;

	/* 2.3.0: 共通カード10色。既存6色は変更せず、明示指定時だけ利用する。 */
	--mh-card-accent-01: #e4aa38; /* gold */
	--mh-card-accent-02: #4a98dc; /* blue */
	--mh-card-accent-03: #f06aa6; /* pink */
	--mh-card-accent-04: #3aa974; /* green */
	--mh-card-accent-05: #8b7bc8; /* purple */
	--mh-card-accent-06: #e67e5f; /* coral */
	--mh-card-accent-07: #49a7a2; /* teal */
	--mh-card-accent-08: #8ba64a; /* olive */
	--mh-card-accent-09: #6f86c9; /* indigo */
	--mh-card-accent-10: #d97a9c; /* rose */
	--mh-card-tint-01: #fff4d6; /* gold */
	--mh-card-tint-02: #eaf6ff; /* blue */
	--mh-card-tint-03: #f9edf4; /* pink */
	--mh-card-tint-04: #eaf7f0; /* green */
	--mh-card-tint-05: #f2effb; /* purple */
	--mh-card-tint-06: #fff0eb; /* coral */
	--mh-card-tint-07: #e9f7f6; /* teal */
	--mh-card-tint-08: #f2f6e8; /* olive */
	--mh-card-tint-09: #eef1fb; /* indigo */
	--mh-card-tint-10: #faeef3; /* rose */
	--mh-shadow: 0 12px 30px rgba(24, 58, 43, .08);
	--mh-character-width: 221px;
	--mh-character-height: 160px;
	--mh-character-layout-width: 177px;
	box-sizing: border-box;
	width: 100% !important;
	max-width: 100% !important;
	margin: 0 !important;
	padding: 0;
	color: var(--mh-text);
	overflow: clip;
}

.mh-site-page,
.mh-site-page *,
.mh-site-page *::before,
.mh-site-page *::after {
	box-sizing: border-box;
}

.mh-site-page > * {
	margin-block-start: 0 !important;
	margin-block-end: 0 !important;
}

.mh-site-page img {
	max-width: 100%;
	height: auto;
}

.mh-site-page a:focus-visible,
.mh-site-page button:focus-visible,
.mh-site-page summary:focus-visible {
	outline: 3px solid rgba(31, 107, 69, .38);
	outline-offset: 3px;
}

/* M086トップ画像。安定した専用クラスへ直接適用し、DOM操作を不要にする。 */
body.mh-site-design-v1 .m086-hero {
	width: 100% !important;
	height: clamp(560px, 56.25vw, 720px) !important;
	max-height: 720px !important;
	min-height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	background: #173e2e !important;
}

/*
 * 共通の img { height:auto } より優先し、全スライドを同じ写真枠へ収める。
 * 元画像の縦横比は保持し、枠からはみ出す部分だけをトリミングする。
 */
body.mh-site-design-v1 .m086-hero__slide img {
	position: absolute !important;
	inset: 0 !important;
	display: block !important;
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	max-height: none !important;
	object-fit: cover !important;
	object-position: var(--m086-position, center center) !important;
}

/* PCは写真を主役にし、文字カードをヒーロー下部へ固定する。 */
body.mh-site-design-v1 .m086-hero__inner {
	display: flex !important;
	align-items: flex-end !important;
	width: 100% !important;
	max-width: 1248px !important;
	height: 100% !important;
	margin: 0 auto !important;
	padding: clamp(44px, 4vw, 64px) 24px clamp(48px, 5vw, 68px) !important;
}

body.mh-site-design-v1 .m086-hero__content {
	position: relative !important;
	z-index: 1 !important;
	inset: auto !important;
	width: min(100%, 760px) !important;
	max-width: 760px !important;
	height: auto !important;
	min-height: 0 !important;
	margin: 0 !important;
	padding: clamp(28px, 3vw, 44px) clamp(30px, 3vw, 42px) !important;
	border: 1px solid rgba(255, 255, 255, .62) !important;
	border-radius: clamp(20px, 2vw, 28px) !important;
	background: linear-gradient(145deg, rgba(10, 66, 49, .60), rgba(7, 53, 39, .55)) !important;
	box-shadow: 0 16px 40px rgba(17, 57, 44, .17) !important;
	-webkit-backdrop-filter: blur(16px) saturate(118%);
	backdrop-filter: blur(16px) saturate(118%);
	overflow: hidden;
}

body.mh-site-design-v1 .m086-hero__content::before {
	position: absolute;
	z-index: 0;
	inset: 0;
	content: "";
	pointer-events: none;
	background: linear-gradient(135deg, rgba(255, 255, 255, .13), rgba(255, 255, 255, .018) 58%, rgba(69, 160, 123, .08));
}

body.mh-site-design-v1 .m086-hero__content > * {
	position: relative;
	z-index: 1;
}

body.mh-site-design-v1 .m086-hero__title,
body.mh-site-design-v1 .m086-hero__description {
	display: block !important;
	width: 100% !important;
	max-width: 100% !important;
	margin-right: 0 !important;
	margin-left: 0 !important;
}

body.mh-site-design-v1 .m086-hero__title {
	margin-bottom: 20px !important;
	font-size: clamp(38px, 3.35vw, 50px) !important;
	line-height: 1.2 !important;
	letter-spacing: 0 !important;
	white-space: normal;
	word-break: normal;
	line-break: strict;
	overflow-wrap: anywhere;
	text-wrap: pretty;
}

body.mh-site-design-v1 .m086-hero__description {
	margin-bottom: 24px !important;
	font-size: clamp(17px, 1.3vw, 20px) !important;
	line-height: 1.76 !important;
}

body.mh-site-design-v1 .m086-hero__button {
	display: inline-flex !important;
	width: auto !important;
	max-width: 100% !important;
	min-height: 52px !important;
	padding: 12px 22px !important;
	font-size: 18px !important;
}

body.mh-site-design-v1 .m086-hero__controls {
	display: none !important;
}

/* 対応地域 */
.mh-service-area {
	padding: 30px 24px;
	border-block: 1px solid rgba(31, 107, 69, .12);
	background: #edf5ef;
}

.mh-service-area__inner {
	display: grid;
	grid-template-columns: minmax(0, 1fr) var(--mh-character-layout-width);
	align-items: center;
	gap: 8px;
	width: 100%;
	max-width: 1040px;
	margin: 0 auto;
}

.mh-service-area__lead {
	margin: 0 0 8px;
	color: var(--mh-heading);
	font-size: clamp(22px, 2.3vw, 30px);
	font-weight: 700;
	line-height: 1.45;
}

.mh-service-area__text {
	margin: 0;
	color: #44534b;
	font-size: clamp(16px, 1.45vw, 18px);
	line-height: 1.8;
}

.mh-service-area__text + .mh-service-area__text {
	margin-top: 8px;
}

.mh-site-page .mh-service-area__character {
	display: block;
	justify-self: end;
	width: var(--mh-character-width);
	height: var(--mh-character-height);
	max-width: none;
	max-height: none;
	object-fit: contain;
	object-position: center bottom;
}

/* 共通セクション */
.mh-section {
	width: 100%;
	margin: 0;
	padding: 88px 24px;
	background: #fff;
}

/*
 * セクション背景は白とごく薄いグリーンを順番に交互配置する。
 * 個別プラグインや旧クラスの背景指定より優先し、隣接セクションを同色にしない。
 */
.mh-site-page .mh-section--troubles,
.mh-site-page .mh-section--works,
.mh-site-page .mh-section--voices,
.mh-site-page .mh-section--flow,
.mh-site-page .mh-section--news,
.mh-site-page .mhcv-latest-shell {
	background: #fff !important;
}

.mh-site-page .mh-section--trust,
.mh-site-page .mh-section--about,
.mh-site-page .mh-section--costs,
.mh-site-page .mh-section--faq {
	background: var(--mh-soft) !important;
}

.mh-section__inner {
	width: 100%;
	max-width: 1200px;
	margin: 0 auto;
}

.mh-guide {
	display: grid;
	grid-template-columns: minmax(0, 1fr) var(--mh-character-layout-width);
	align-items: end;
	gap: 8px;
	width: min(100%, 920px);
	margin: 0 auto 48px;
}

.mh-guide--center {
	display: block;
	text-align: center;
}

.mh-guide__copy {
	min-width: 0;
}

.mh-guide--center .mh-guide__copy {
	max-width: 820px;
	margin: 0 auto;
}

.mh-guide__eyebrow {
	margin: 0 0 9px;
	color: var(--mh-pink);
	font-size: 14px;
	font-weight: 800;
	line-height: 1.3;
	letter-spacing: .13em;
	text-transform: uppercase;
}

.mh-guide__title {
	margin: 0;
	color: var(--mh-heading);
	font-size: clamp(30px, 3.2vw, 38px);
	font-weight: 700;
	line-height: 1.35;
	letter-spacing: .01em;
	text-wrap: pretty;
}

.mh-guide__title::after {
	display: block;
	width: 84px;
	height: 5px;
	margin-top: 16px;
	border-radius: 999px;
	background: linear-gradient(90deg, var(--mh-pink) 0 33.33%, var(--mh-yellow) 33.33% 66.66%, var(--mh-accent) 66.66% 100%);
	content: "";
}

.mh-guide--center .mh-guide__title::after {
	margin-right: auto;
	margin-left: auto;
}

.mh-guide__description {
	max-width: 820px;
	margin: 20px 0 0;
	color: var(--mh-text);
	font-size: 18px;
	line-height: 1.8;
}

.mh-guide--center .mh-guide__description {
	margin-right: auto;
	margin-left: auto;
}

.mh-site-page .mh-guide__character {
	display: block;
	justify-self: end;
	align-self: end;
	width: var(--mh-character-width);
	height: var(--mh-character-height);
	max-width: none;
	max-height: none;
	object-fit: contain;
	object-position: center bottom;
}

.mh-guide--works,
.mh-guide--about {
	grid-template-columns: minmax(0, 1fr) var(--mh-character-layout-width);
}

.mh-guide--flow {
	grid-template-columns: minmax(0, 1fr) var(--mh-character-layout-width);
}

/* 共通カード */
.mh-card-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
}

.mh-card {
	position: relative;
	min-width: 0;
	margin: 0;
	padding: 28px;
	border: 1px solid var(--mh-border);
	border-radius: 18px;
	background: #fff;
	box-shadow: var(--mh-shadow);
	overflow: hidden;
}

.mh-card h3 {
	margin: 0 0 12px;
	color: var(--mh-heading);
	font-size: 22px;
	font-weight: 700;
	line-height: 1.5;
}

.mh-card p {
	margin: 0;
	color: var(--mh-text);
	font-size: 16px;
	line-height: 1.8;
}

/*
 * 共通カード10色ユーティリティ（v2.3.0）。
 * - accent: 白背景のまま上部線だけを着色。
 * - tint: カード背景だけをごく薄く着色。
 * - cycle: 10色を順番に自動適用。
 * 明示クラスは既存のnth-child配色より優先し、クラス未指定の既存ページは一切変えない。
 */
.mh-site-page .mh-card-grid--accent-cycle > .mh-card {
	border-top-width: 6px !important;
	border-top-style: solid !important;
}
.mh-site-page .mh-card-grid--accent-cycle > .mh-card:nth-child(10n + 1) { border-top-color: var(--mh-card-accent-01) !important; }
.mh-site-page .mh-card-grid--accent-cycle > .mh-card:nth-child(10n + 2) { border-top-color: var(--mh-card-accent-02) !important; }
.mh-site-page .mh-card-grid--accent-cycle > .mh-card:nth-child(10n + 3) { border-top-color: var(--mh-card-accent-03) !important; }
.mh-site-page .mh-card-grid--accent-cycle > .mh-card:nth-child(10n + 4) { border-top-color: var(--mh-card-accent-04) !important; }
.mh-site-page .mh-card-grid--accent-cycle > .mh-card:nth-child(10n + 5) { border-top-color: var(--mh-card-accent-05) !important; }
.mh-site-page .mh-card-grid--accent-cycle > .mh-card:nth-child(10n + 6) { border-top-color: var(--mh-card-accent-06) !important; }
.mh-site-page .mh-card-grid--accent-cycle > .mh-card:nth-child(10n + 7) { border-top-color: var(--mh-card-accent-07) !important; }
.mh-site-page .mh-card-grid--accent-cycle > .mh-card:nth-child(10n + 8) { border-top-color: var(--mh-card-accent-08) !important; }
.mh-site-page .mh-card-grid--accent-cycle > .mh-card:nth-child(10n + 9) { border-top-color: var(--mh-card-accent-09) !important; }
.mh-site-page .mh-card-grid--accent-cycle > .mh-card:nth-child(10n) { border-top-color: var(--mh-card-accent-10) !important; }

.mh-site-page .mh-card-grid--tint-cycle > .mh-card:nth-child(10n + 1) { background: var(--mh-card-tint-01) !important; }
.mh-site-page .mh-card-grid--tint-cycle > .mh-card:nth-child(10n + 2) { background: var(--mh-card-tint-02) !important; }
.mh-site-page .mh-card-grid--tint-cycle > .mh-card:nth-child(10n + 3) { background: var(--mh-card-tint-03) !important; }
.mh-site-page .mh-card-grid--tint-cycle > .mh-card:nth-child(10n + 4) { background: var(--mh-card-tint-04) !important; }
.mh-site-page .mh-card-grid--tint-cycle > .mh-card:nth-child(10n + 5) { background: var(--mh-card-tint-05) !important; }
.mh-site-page .mh-card-grid--tint-cycle > .mh-card:nth-child(10n + 6) { background: var(--mh-card-tint-06) !important; }
.mh-site-page .mh-card-grid--tint-cycle > .mh-card:nth-child(10n + 7) { background: var(--mh-card-tint-07) !important; }
.mh-site-page .mh-card-grid--tint-cycle > .mh-card:nth-child(10n + 8) { background: var(--mh-card-tint-08) !important; }
.mh-site-page .mh-card-grid--tint-cycle > .mh-card:nth-child(10n + 9) { background: var(--mh-card-tint-09) !important; }
.mh-site-page .mh-card-grid--tint-cycle > .mh-card:nth-child(10n) { background: var(--mh-card-tint-10) !important; }

.mh-site-page .mh-card.mh-card--accent-01 { border-top: 6px solid var(--mh-card-accent-01) !important; }
.mh-site-page .mh-card.mh-card--accent-02 { border-top: 6px solid var(--mh-card-accent-02) !important; }
.mh-site-page .mh-card.mh-card--accent-03 { border-top: 6px solid var(--mh-card-accent-03) !important; }
.mh-site-page .mh-card.mh-card--accent-04 { border-top: 6px solid var(--mh-card-accent-04) !important; }
.mh-site-page .mh-card.mh-card--accent-05 { border-top: 6px solid var(--mh-card-accent-05) !important; }
.mh-site-page .mh-card.mh-card--accent-06 { border-top: 6px solid var(--mh-card-accent-06) !important; }
.mh-site-page .mh-card.mh-card--accent-07 { border-top: 6px solid var(--mh-card-accent-07) !important; }
.mh-site-page .mh-card.mh-card--accent-08 { border-top: 6px solid var(--mh-card-accent-08) !important; }
.mh-site-page .mh-card.mh-card--accent-09 { border-top: 6px solid var(--mh-card-accent-09) !important; }
.mh-site-page .mh-card.mh-card--accent-10 { border-top: 6px solid var(--mh-card-accent-10) !important; }

.mh-site-page .mh-card.mh-card--tint-01 { background: var(--mh-card-tint-01) !important; }
.mh-site-page .mh-card.mh-card--tint-02 { background: var(--mh-card-tint-02) !important; }
.mh-site-page .mh-card.mh-card--tint-03 { background: var(--mh-card-tint-03) !important; }
.mh-site-page .mh-card.mh-card--tint-04 { background: var(--mh-card-tint-04) !important; }
.mh-site-page .mh-card.mh-card--tint-05 { background: var(--mh-card-tint-05) !important; }
.mh-site-page .mh-card.mh-card--tint-06 { background: var(--mh-card-tint-06) !important; }
.mh-site-page .mh-card.mh-card--tint-07 { background: var(--mh-card-tint-07) !important; }
.mh-site-page .mh-card.mh-card--tint-08 { background: var(--mh-card-tint-08) !important; }
.mh-site-page .mh-card.mh-card--tint-09 { background: var(--mh-card-tint-09) !important; }
.mh-site-page .mh-card.mh-card--tint-10 { background: var(--mh-card-tint-10) !important; }

/* FTP管理する固定デザイン用イラスト（1024 × 360px・透過WebP） */
.mh-card-illustration {
	display: block;
	width: 100%;
	max-width: 100%;
	height: auto;
	margin: 0 0 18px;
	aspect-ratio: 128 / 45;
	object-fit: contain;
	object-position: center;
}

.mh-flow-card > .mh-card-illustration {
	clear: both;
	margin-right: auto;
	margin-left: auto;
}

/* トップページ下部では、情報量を増やしすぎない補助サイズに抑える。 */
.mh-card-illustration--top-cost {
	width: min(100%, 220px);
	margin-right: auto;
	margin-left: auto;
}

.mh-card-illustration--top-flow {
	width: min(100%, 170px);
	margin-right: auto;
	margin-bottom: 14px;
	margin-left: auto;
}

/* お困りごと */
.mh-trouble-grid > .mh-card:nth-child(1) { background: var(--mh-pastel-yellow); }
.mh-trouble-grid > .mh-card:nth-child(2) { background: var(--mh-pastel-blue); }
.mh-trouble-grid > .mh-card:nth-child(3) { background: var(--mh-pastel-pink); }
.mh-trouble-grid > .mh-card:nth-child(4) { background: var(--mh-pastel-mint); }
.mh-trouble-grid > .mh-card:nth-child(5) { background: var(--mh-pastel-cream); }
.mh-trouble-grid > .mh-card:nth-child(6) { background: var(--mh-pastel-lavender); }

.mh-trouble-card__image {
	display: block;
	width: calc(100% + 56px);
	max-width: none !important;
	margin: 0 -28px 18px;
	aspect-ratio: 1536 / 540;
	object-fit: cover;
}

.mh-photo-gallery {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(16px, 2.4vw, 28px);
	width: min(100%, 980px);
	margin: clamp(28px, 3vw, 42px) auto 0;
}

.mh-photo-card {
	min-width: 0;
	margin: 0;
	border: 1px solid rgba(31, 82, 58, .13);
	border-radius: 16px;
	background: #fff;
	box-shadow: var(--mh-shadow);
	overflow: hidden;
}

.mh-photo-card img {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
}

.mh-photo-card figcaption {
	margin: 0;
	padding: 12px 16px 14px;
	color: var(--mh-heading);
	font-size: 16px;
	font-weight: 600;
	line-height: 1.55;
	text-align: center;
}

.mh-trouble-summary {
	max-width: 820px;
	margin: clamp(24px, 3vw, 36px) auto 0;
	color: var(--mh-heading);
	font-size: 18px;
	font-weight: 600;
	line-height: 1.8;
	text-align: center;
}

/* 安心カード */
.mh-trust-grid > .mh-card:nth-child(1) { background: var(--mh-pastel-yellow); }
.mh-trust-grid > .mh-card:nth-child(2) { background: var(--mh-pastel-blue); }
.mh-trust-grid > .mh-card:nth-child(3) { background: var(--mh-pastel-pink); }

.mh-trust-card__image {
	display: block;
	width: 100%;
	margin: 0 0 20px;
	border-radius: 13px;
	aspect-ratio: 3 / 2;
	object-fit: cover;
}

/* 施工事例プラグイン */
.mh-site-page .mh-section--works .mh-works-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
}

.mh-site-page .mh-section--works .mh-work-card {
	border: 1px solid var(--mh-border);
	border-radius: 18px;
	box-shadow: var(--mh-shadow);
	overflow: hidden;
}

.mh-site-page .mh-section--works .mh-work-card-image {
	aspect-ratio: 16 / 10;
}

.mh-site-page .mh-section--works .mh-work-card-body {
	padding: 24px;
}

.mh-site-page .mh-section--works .mh-work-card-type {
	border-radius: 999px;
}

.mh-site-page .mh-section--works .mh-works-button,
.mh-site-page .mh-section--news .mh-news-more-button,
.mh-site-page .mh-section--voices .mh-button {
	min-height: 50px;
	padding: 12px 24px;
	border: 0;
	border-radius: 999px;
	background: var(--mh-green);
	box-shadow: 0 8px 20px rgba(31, 107, 69, .16);
	color: #fff !important;
	font-weight: 700;
	text-decoration: none !important;
}

.mh-site-page .mh-section--works .mh-works-button:hover,
.mh-site-page .mh-section--news .mh-news-more-button:hover,
.mh-site-page .mh-section--voices .mh-button:hover {
	background: var(--mh-green-dark);
	color: #fff !important;
}

/* 会社紹介 */
.mh-about-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(360px, .9fr);
	align-items: center;
	gap: 0;
	width: min(100%, 1080px);
	margin: 0 auto;
}

.mh-about-copy {
	position: relative;
	z-index: 2;
	margin-right: -42px;
	padding: clamp(30px, 4vw, 52px);
	border: 1px solid var(--mh-border);
	border-radius: 22px;
	background: #fff;
	box-shadow: var(--mh-shadow);
}

.mh-about-copy h3 {
	margin: 0 0 16px;
	color: var(--mh-heading);
	font-size: clamp(25px, 2.6vw, 32px);
	line-height: 1.4;
}

.mh-about-copy p {
	margin: 0 0 24px;
	font-size: 17px;
	line-height: 1.85;
}

.mh-about-photo {
	position: relative;
	z-index: 1;
	margin: 0;
}

.mh-about-photo img {
	display: block;
	width: 100%;
	min-height: 390px;
	border-radius: 22px;
	object-fit: cover;
}

.mh-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 50px;
	padding: 12px 24px;
	border-radius: 999px;
	background: var(--mh-green);
	color: #fff !important;
	font-weight: 700;
	line-height: 1.4;
	text-align: center;
	text-decoration: none !important;
}

.mh-button:hover {
	background: var(--mh-green-dark);
	color: #fff !important;
}

/* お客様の声プラグイン。見出しは固定ページ側へ一本化する。 */
.mh-site-page .mh-section--voices .mhcv-section--latest {
	padding: 0 !important;
	background: transparent !important;
}

.mh-site-page .mh-section--voices .mhcv-inner {
	max-width: none !important;
}

.mh-site-page .mh-section--voices .mhcv-heading {
	display: none !important;
}

.mh-site-page .mh-section--voices .mhcv-grid--compact {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
}

.mh-site-page .mh-section--voices .mhcv-card {
	border: 1px solid var(--mh-border);
	border-top: 5px solid var(--mh-pink);
	border-radius: 18px;
	box-shadow: var(--mh-shadow);
}

.mh-site-page .mh-section--voices .mhcv-card:nth-child(2) { border-top-color: var(--mh-blue); }
.mh-site-page .mh-section--voices .mhcv-card:nth-child(3) { border-top-color: var(--mh-yellow); }

.mh-site-page .mh-section--voices .mhcv-photo {
	aspect-ratio: 16 / 10;
}

.mh-site-page .mh-section--voices .mhcv-card-body {
	padding: 26px;
}

.mh-site-page .mh-section--voices .mhcv-quote {
	padding: 18px;
	border-radius: 12px;
	background: #f8fbf9;
}

.mh-voices-more {
	margin: 30px 0 0;
	text-align: center;
}

/* 費用 */
.mh-cost-grid .mh-card {
	border-top: 6px solid var(--mh-yellow);
	box-shadow: none;
}

.mh-cost-grid .mh-card:nth-child(2) { border-top-color: var(--mh-blue); }
.mh-cost-grid .mh-card:nth-child(3) { border-top-color: var(--mh-pink); }

/* 工事の流れ */
.mh-flow-photo {
	width: min(100%, 900px);
	margin: 0 auto 48px;
	border: 1px solid rgba(31, 82, 58, .13);
	border-radius: 18px;
	box-shadow: var(--mh-shadow);
	overflow: hidden;
}

.mh-flow-photo img {
	display: block;
	width: 100%;
	aspect-ratio: 16 / 9;
	object-fit: cover;
}

.mh-flow-grid {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 18px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.mh-flow-card {
	position: relative;
	min-width: 0;
	padding: 24px 18px;
	border: 1px solid var(--mh-border);
	border-radius: 18px;
	background: #fff;
	box-shadow: 0 9px 24px rgba(24, 58, 43, .06);
	text-align: center;
}

.mh-flow-card:not(:last-child)::after {
	position: absolute;
	z-index: 3;
	top: 50%;
	right: -15px;
	width: 12px;
	height: 12px;
	border-top: 3px solid var(--mh-accent);
	border-right: 3px solid var(--mh-accent);
	content: "";
	transform: translateY(-50%) rotate(45deg);
}

.mh-flow-grid--unordered .mh-flow-card::after {
	display: none;
}

.mh-flow-badge {
	display: inline-block;
	width: auto;
	height: auto;
	margin: 0 auto 14px;
	color: var(--mh-step-number);
	font-size: 14px;
	font-weight: 700;
	line-height: 1.3;
	letter-spacing: .14em;
}

.mh-flow-card h3 {
	margin: 0 0 10px;
	color: var(--mh-heading);
	font-size: 20px;
	line-height: 1.45;
}

.mh-flow-card p {
	margin: 0;
	font-size: 15px;
	line-height: 1.75;
}

/* FAQ */
.mh-faq-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 24px;
}

.mh-faq-card {
	position: relative;
	min-width: 0;
	padding: 27px 27px 27px 34px;
	border: 1px solid var(--mh-border);
	border-radius: 18px;
	background: #fff;
	box-shadow: 0 9px 24px rgba(24, 58, 43, .06);
	overflow: hidden;
}

.mh-faq-card::before {
	position: absolute;
	inset: 0 auto 0 0;
	width: 7px;
	background: var(--mh-pink);
	content: "";
}

.mh-faq-card:nth-child(3n + 2)::before { background: var(--mh-blue); }
.mh-faq-card:nth-child(3n)::before { background: var(--mh-yellow); }

.mh-faq-card h3 {
	margin: 0 0 13px;
	color: var(--mh-heading);
	font-size: 21px;
	line-height: 1.55;
}

.mh-faq-card h3::before {
	margin-right: 8px;
	color: var(--mh-green);
	content: "Q.";
	font-weight: 800;
}

.mh-faq-card p {
	margin: 0;
	font-size: 16px;
	line-height: 1.8;
}

/* トップFAQ：回答を重複させず、詳細FAQの該当項目へ案内する。 */
.mh-faq-links {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px;
}

.mh-faq-link-card {
	display: flex;
	position: relative;
	align-items: center;
	min-width: 0;
	min-height: 86px;
	padding: 20px 22px 20px 28px;
	border: 1px solid var(--mh-border);
	border-left: 7px solid var(--mh-pink);
	border-radius: 16px;
	background: #fff;
	box-shadow: 0 8px 20px rgba(24, 58, 43, .05);
	color: var(--mh-heading);
	text-decoration: none;
	transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

.mh-faq-link-card:nth-child(3n + 2) { border-left-color: var(--mh-blue); }
.mh-faq-link-card:nth-child(3n) { border-left-color: var(--mh-yellow); }

.mh-faq-link-card:hover,
.mh-faq-link-card:focus-visible {
	border-color: var(--mh-green);
	box-shadow: 0 12px 26px rgba(24, 58, 43, .11);
	color: var(--mh-heading);
	transform: translateY(-2px);
}

.mh-faq-link-card:focus-visible {
	outline: 3px solid rgba(45, 126, 82, .26);
	outline-offset: 3px;
}

.mh-faq-link-card__question {
	display: flex;
	min-width: 0;
	font-size: 18px;
	font-weight: 800;
	line-height: 1.55;
}

.mh-faq-link-card__question::before {
	flex: 0 0 auto;
	margin-right: 9px;
	color: var(--mh-green);
	content: "Q.";
	font-weight: 800;
}

.mh-faq-link-card__arrow {
	display: grid;
	flex: 0 0 auto;
	width: 34px;
	height: 34px;
	margin-left: auto;
	border-radius: 50%;
	background: var(--mh-pastel-mint);
	color: var(--mh-green-dark);
	place-items: center;
}

.mh-faq-more {
	margin: 28px 0 0;
	text-align: center;
}

.mh-faq-more .mh-button::after {
	margin-left: 11px;
}

/* 詳細FAQ：ハッシュリンクの停止位置と到着箇所を明確にする。 */
.mh-subpage .mh-faq-card[id] {
	scroll-margin-top: 128px;
}

.mh-subpage .mh-faq-card[id]:target {
	animation: mh-faq-target-highlight 2.6s ease-out;
}

@keyframes mh-faq-target-highlight {
	0%, 28% {
		border-color: var(--mh-green);
		box-shadow: 0 0 0 5px rgba(45, 126, 82, .2), 0 16px 34px rgba(24, 58, 43, .14);
	}
	100% {
		border-color: var(--mh-border);
		box-shadow: 0 9px 24px rgba(24, 58, 43, .06);
	}
}

/* お知らせプラグイン */
.mh-site-page .mh-section--news .mh-news-latest {
	padding: 0;
}

.mh-site-page .mh-section--news .mh-news-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
}

.mh-site-page .mh-section--news .mh-news-card {
	border: 1px solid var(--mh-border);
	border-radius: 18px;
	box-shadow: var(--mh-shadow);
	overflow: hidden;
}

.mh-site-page .mh-section--news .mh-news-card-image {
	aspect-ratio: 16 / 10;
}

.mh-site-page .mh-section--news .mh-news-card-body {
	padding: 24px;
}

.mh-site-page .mh-section--news .mh-news-card-title {
	font-size: 20px;
	line-height: 1.55;
}

.mh-site-page .mh-section--news .mh-news-more-wrap {
	margin-top: 30px;
}

@supports selector(.mh-section:has(.mh-news-card)) {
	.mh-site-page .mh-section--news:not(:has(.mh-news-card)) {
		display: none;
	}
}

/* 最終相談 */
.mh-final-cta {
	position: relative;
	padding: 72px 24px;
	background: linear-gradient(145deg, #1f6b45, #174c32);
	color: #fff;
	overflow: hidden;
}

.mh-final-cta__inner {
	display: grid;
	grid-template-columns: minmax(0, 1fr) var(--mh-character-layout-width);
	align-items: end;
	gap: 24px;
	width: min(100%, 900px);
	margin: 0 auto;
}

.mh-final-cta__copy {
	text-align: center;
}

.mh-final-cta h2 {
	margin: 0 0 18px;
	color: #fff;
	font-size: clamp(29px, 3.1vw, 36px);
	line-height: 1.4;
}

.mh-final-cta__description {
	margin: 0 0 28px;
	color: #fff;
	font-size: 18px;
	line-height: 1.8;
}

.mh-final-cta__buttons {
	display: flex;
	justify-content: center;
	gap: 12px 16px;
}

.mh-final-cta__button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 52px;
	padding: 14px 24px;
	border-radius: 999px;
	background: #fff;
	color: var(--mh-green) !important;
	font-size: 18px;
	font-weight: 700;
	line-height: 1.4;
	text-align: center;
	text-decoration: none !important;
}

.mh-final-cta__button:hover {
	background: #f4f8f5;
	color: var(--mh-green-dark) !important;
}

.mh-final-cta__help,
.mh-final-cta__phone-info {
	max-width: 820px;
	margin: 18px auto 0;
	color: #fff;
	font-size: 15px;
	line-height: 1.75;
	text-align: center;
}

.mh-final-cta__phone-info {
	margin-top: 7px;
}

.mh-site-page .mh-final-cta__character {
	display: block;
	justify-self: end;
	width: var(--mh-character-width);
	height: var(--mh-character-height);
	max-width: none;
	max-height: none;
	object-fit: contain;
	object-position: center bottom;
}

@media (max-width: 1024px) {
	.mh-card-grid,
	.mh-site-page .mh-section--works .mh-works-grid,
	.mh-site-page .mh-section--voices .mhcv-grid--compact {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.mh-flow-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.mh-flow-card::after {
		display: none;
	}

	.mh-site-page .mh-section--news .mh-news-grid {
		grid-template-columns: 1fr;
	}

	.mh-site-page .mh-section--news .mh-news-card {
		display: grid;
		grid-template-columns: minmax(220px, .8fr) minmax(0, 1.2fr);
	}

	.mh-site-page .mh-section--news .mh-news-card-image {
		height: 100%;
		aspect-ratio: auto;
	}
}

@media (max-width: 767px) {
	.mh-site-page {
		--mh-character-width: 138px;
		--mh-character-height: 100px;
		--mh-character-layout-width: 110px;
	}

	/*
	 * GeneratePress / Gutenberg の親コンテナに残る左右余白から、
	 * 恒久版ルートだけをビューポート幅へ戻す。これにより背景は端まで続き、
	 * セクション境界の段差も発生しない。
	 */
	body.mh-site-design-v1 .mh-site-page {
		width: 100vw !important;
		max-width: 100vw !important;
		margin-right: calc(50% - 50vw) !important;
		margin-left: calc(50% - 50vw) !important;
	}

	/*
	 * 施工事例・お客様の声・お知らせはショートコードを内包するため、
	 * GeneratePressがグループブロック内部へ追加する30px余白を持つ。
	 * セクション自身の共通16pxだけを残し、二重余白を解消する。
	 */
	body.mh-site-design-v1 .mh-site-page .wp-block-group__inner-container,
	body.mh-site-design-v1 .mh-site-page .wp-block-shortcode {
		width: 100% !important;
		max-width: none !important;
		margin-right: 0 !important;
		margin-left: 0 !important;
		padding-right: 0 !important;
		padding-left: 0 !important;
	}

	body.mh-site-design-v1 .m086-hero {
		--m086-mobile-photo-height: 350px;
		--m086-mobile-overlap: 105px;
		position: relative !important;
		display: block !important;
		width: 100% !important;
		height: auto !important;
		max-height: none !important;
		padding: 0 !important;
		overflow: hidden !important;
	}

	body.mh-site-design-v1 .m086-hero__media {
		position: absolute !important;
		inset: 0 !important;
		height: 100% !important;
		overflow: visible !important;
		background: transparent !important;
	}

	body.mh-site-design-v1 .m086-hero__slides {
		top: 0 !important;
		right: 0 !important;
		bottom: auto !important;
		left: 0 !important;
		height: var(--m086-mobile-photo-height) !important;
		overflow: hidden !important;
		border-radius: 0 0 18px 18px !important;
	}

	body.mh-site-design-v1 .m086-hero__slide {
		height: 100% !important;
	}

	body.mh-site-design-v1 .m086-hero__slide img {
		width: 100% !important;
		height: 100% !important;
		object-fit: cover !important;
		object-position: var(--m086-mobile-position, center center) !important;
	}

	body.mh-site-design-v1 .m086-hero__media::after {
		top: 0 !important;
		right: 0 !important;
		bottom: auto !important;
		left: 0 !important;
		height: var(--m086-mobile-photo-height) !important;
		border-radius: 0 0 18px 18px !important;
	}

	body.mh-site-design-v1 .m086-hero__inner {
		position: relative !important;
		display: block !important;
		width: 100% !important;
		max-width: none !important;
		height: auto !important;
		margin: 0 !important;
		padding:
			calc(var(--m086-mobile-photo-height) - var(--m086-mobile-overlap))
			20px
			64px !important;
	}

	body.mh-site-design-v1 .m086-hero__content {
		left: auto !important;
		width: 100% !important;
		max-width: 690px !important;
		margin: 0 auto !important;
		padding: 24px 18px !important;
		border-radius: 23px !important;
		transform: none !important;
	}

	body.mh-site-design-v1 .m086-hero__status {
		bottom: 22px !important;
	}

	body.mh-site-design-v1 .m086-hero__title {
		margin-bottom: 18px !important;
		font-size: clamp(27px, 7.4vw, 34px) !important;
		line-height: 1.26 !important;
	}

	body.mh-site-design-v1 .m086-hero__description {
		margin-bottom: 21px !important;
		font-size: clamp(15px, 4vw, 17px) !important;
		line-height: 1.65 !important;
	}

	body.mh-site-design-v1 .m086-hero__button {
		width: 100% !important;
		min-height: 50px !important;
		padding: 11px 16px !important;
		font-size: 17px !important;
	}

	.mh-service-area {
		width: 100% !important;
		max-width: none !important;
		margin-right: 0 !important;
		margin-left: 0 !important;
		padding: 24px 16px;
	}

	.mh-service-area__inner {
		grid-template-columns: minmax(0, 1fr) var(--mh-character-layout-width);
		gap: 8px;
	}

	.mh-service-area__lead {
		font-size: 22px;
		line-height: 1.5;
	}

	.mh-service-area__text {
		font-size: 16px;
		line-height: 1.75;
	}

	.mh-site-page .mh-service-area__character {
		width: var(--mh-character-width);
		height: var(--mh-character-height);
		max-height: none;
	}

	.mh-section {
		width: 100% !important;
		max-width: none !important;
		margin-right: 0 !important;
		margin-left: 0 !important;
		padding: 56px 16px;
	}

	/* スマートフォンの本文・固定カード・動的一覧を共通の16px余白へ統一する。 */
	.mh-section__inner,
	.mh-guide,
	.mh-card-grid,
	.mh-photo-gallery,
	.mh-about-layout,
	.mh-flow-grid,
	.mh-faq-grid,
	.mh-site-page .mh-section--works .mh-works-latest,
	.mh-site-page .mh-section--works .mh-works-grid,
	.mh-site-page .mh-section--voices .mhcv-section--latest,
	.mh-site-page .mhcv-latest-shell,
	.mh-site-page .mh-section--voices .mhcv-inner,
	.mh-site-page .mh-section--voices .mhcv-grid--compact,
	.mh-site-page .mh-section--news .mh-news-latest,
	.mh-site-page .mh-section--news .mh-news-grid {
		width: 100% !important;
		max-width: none !important;
		margin-right: 0 !important;
		margin-left: 0 !important;
	}

	.mh-card,
	.mh-photo-card,
	.mh-flow-card,
	.mh-faq-card,
	.mh-site-page .mh-section--works .mh-work-card,
	.mh-site-page .mh-section--voices .mhcv-card,
	.mh-site-page .mh-section--news .mh-news-card {
		width: 100% !important;
		max-width: none !important;
		margin-right: 0 !important;
		margin-left: 0 !important;
	}

	.mh-guide,
	.mh-guide--works,
	.mh-guide--about,
	.mh-guide--flow {
		grid-template-columns: minmax(0, 1fr) var(--mh-character-layout-width);
		gap: 8px;
		margin-bottom: 32px;
	}

	.mh-guide__eyebrow {
		font-size: 12px;
	}

	.mh-guide__title {
		font-size: 28px;
	}

	.mh-guide__description {
		margin-top: 17px;
		font-size: 16px;
	}

	.mh-site-page .mh-guide__character,
	.mh-site-page .mh-guide--works .mh-guide__character,
	.mh-site-page .mh-guide--about .mh-guide__character,
	.mh-site-page .mh-guide--flow .mh-guide__character {
		width: var(--mh-character-width);
		height: var(--mh-character-height);
		max-height: none;
	}

	.mh-site-page .mh-guide--about .mh-guide__character {
		width: var(--mh-character-width);
		height: var(--mh-character-height);
		max-width: var(--mh-character-width);
		margin-left: 0;
	}

	.mh-card-grid,
	.mh-site-page .mh-section--works .mh-works-grid,
	.mh-site-page .mh-section--voices .mhcv-grid--compact,
	.mh-faq-grid,
	.mh-flow-grid,
	.mh-site-page .mh-section--news .mh-news-grid {
		grid-template-columns: 1fr;
	}

	.mh-card {
		padding: 24px;
		border-radius: 16px;
	}

	.mh-trust-card__image {
		width: min(76%, 230px);
		margin: 0 auto 18px;
	}

	.mh-card h3 {
		font-size: 20px;
	}

	.mh-trouble-card__image {
		width: calc(100% + 48px);
		margin: 0 -24px 18px;
	}

	.mh-photo-gallery {
		grid-template-columns: 1fr;
		gap: 18px;
	}

	.mh-photo-card {
		border-radius: 14px;
	}

	.mh-about-layout {
		display: flex;
		flex-direction: column-reverse;
		gap: 0;
	}

	.mh-about-copy {
		z-index: 2;
		width: calc(100% - 24px);
		margin: -36px auto 0;
		padding: 26px 22px;
		border-radius: 18px;
	}

	.mh-about-copy h3 {
		font-size: 25px;
	}

	.mh-about-copy p {
		font-size: 16px;
	}

	.mh-about-photo img {
		min-height: 0;
		border-radius: 18px;
		aspect-ratio: 16 / 11;
	}

	.mh-flow-photo {
		margin-bottom: 32px;
		border-radius: 14px;
	}

	.mh-flow-card {
		padding: 22px 20px;
		text-align: left;
	}

	.mh-flow-badge {
		width: auto;
		height: auto;
		margin: 4px 12px 0 0;
		float: left;
	}

	.mh-flow-card h3,
	.mh-flow-card p {
		margin-left: 38px;
	}

	.mh-flow-grid--unordered .mh-flow-card h3,
	.mh-flow-grid--unordered .mh-flow-card p {
		margin-left: 0;
	}

	.mh-flow-card h3 {
		padding-top: 1px;
	}

	/* トップの5工程だけ、番号と本文の関係を保ったまま小イラストを差し込む。 */
	.mh-flow-card--illustrated {
		display: grid;
		grid-template-columns: 26px minmax(0, 1fr);
		column-gap: 12px;
		align-items: start;
	}

	.mh-flow-card--illustrated .mh-flow-badge {
		grid-column: 1;
		grid-row: 1 / span 3;
		float: none;
		margin: 0;
	}

	.mh-flow-card--illustrated h3 {
		grid-column: 2;
		grid-row: 1;
		margin-left: 0;
	}

	.mh-flow-card--illustrated .mh-card-illustration--top-flow {
		grid-column: 2;
		grid-row: 2;
		width: min(100%, 170px);
		margin: 12px 0 12px;
	}

	.mh-flow-card--illustrated p {
		grid-column: 2;
		grid-row: 3;
		margin-left: 0;
	}

	.mh-faq-card {
		padding: 24px 22px 24px 30px;
		border-radius: 16px;
	}

	.mh-site-page .mh-section--news .mh-news-card {
		display: block;
	}

	.mh-site-page .mh-section--news .mh-news-card-image {
		height: auto;
		aspect-ratio: 16 / 10;
	}

	.mh-final-cta {
		width: 100% !important;
		max-width: none !important;
		margin-right: 0 !important;
		margin-left: 0 !important;
		padding: 52px 16px;
	}

	.mh-final-cta__inner {
		grid-template-columns: minmax(0, 1fr) var(--mh-character-layout-width);
		gap: 12px;
	}

	.mh-final-cta__buttons {
		display: grid;
		grid-template-columns: 1fr;
	}

	.mh-final-cta__button {
		width: 100%;
		font-size: 17px;
	}

	.mh-site-page .mh-final-cta__character {
		width: var(--mh-character-width);
		height: var(--mh-character-height);
		max-height: none;
	}

	.mh-final-cta__description {
		font-size: 16px;
	}
}

@media (max-width: 520px) {
	.mh-final-cta__inner {
		display: block;
	}

	.mh-site-page .mh-final-cta__character {
		width: var(--mh-character-width);
		height: var(--mh-character-height);
		margin: 18px auto 0;
	}
}

@media (max-width: 390px) {
	.mh-site-page {
		--mh-character-width: 124px;
		--mh-character-height: 90px;
		--mh-character-layout-width: 99px;
	}

	body.mh-site-design-v1 .m086-hero__content {
		width: 100% !important;
		max-width: 690px !important;
		margin: 0 auto !important;
		padding: 22px 16px !important;
		border-radius: 20px !important;
	}

	body.mh-site-design-v1 .m086-hero__title {
		font-size: clamp(26px, 7.2vw, 29px) !important;
	}

	.mh-guide,
	.mh-guide--works,
	.mh-guide--about,
	.mh-guide--flow {
		grid-template-columns: minmax(0, 1fr) var(--mh-character-layout-width);
		gap: 6px;
	}

	.mh-site-page .mh-guide__character,
	.mh-site-page .mh-guide--works .mh-guide__character,
	.mh-site-page .mh-guide--flow .mh-guide__character {
		width: var(--mh-character-width);
		height: var(--mh-character-height);
	}

	.mh-site-page .mh-guide--about .mh-guide__character {
		width: var(--mh-character-width);
		height: var(--mh-character-height);
		max-width: var(--mh-character-width);
	}
}

/* サブページ共通基盤。トップページ固有部品へ影響しないよう mh-subpage 配下に限定する。 */
.mh-subpage {
	background: #fff;
}

.mh-page-hero {
	position: relative;
	width: 100%;
	margin: 0;
	padding: 88px 24px;
	background:
		radial-gradient(circle at 12% 18%, rgba(240, 106, 166, .09), transparent 30%),
		radial-gradient(circle at 88% 82%, rgba(58, 169, 116, .12), transparent 34%),
		var(--mh-soft);
	overflow: hidden;
}

.mh-page-hero__inner {
	width: min(100%, 1000px);
	margin: 0 auto;
	text-align: center;
}

.mh-page-hero__eyebrow {
	margin: 0 0 16px;
	color: var(--mh-green);
	font-size: 16px;
	font-weight: 800;
	line-height: 1.3;
	letter-spacing: .12em;
}

.mh-page-hero__title {
	margin: 0;
	color: var(--mh-heading);
	font-size: clamp(32px, 4.2vw, 48px);
	font-weight: 700;
	line-height: 1.35;
	letter-spacing: .01em;
	line-break: strict;
	overflow-wrap: anywhere;
	text-wrap: pretty;
}

.mh-page-hero__title::after {
	display: block;
	width: 96px;
	height: 5px;
	margin: 22px auto 0;
	border-radius: 999px;
	background: linear-gradient(90deg, var(--mh-pink) 0 33.33%, var(--mh-yellow) 33.33% 66.66%, var(--mh-accent) 66.66% 100%);
	content: "";
}

.mh-page-hero__description {
	max-width: 840px;
	margin: 24px auto 0;
	color: var(--mh-text);
	font-size: 20px;
	line-height: 1.9;
	overflow-wrap: anywhere;
}

.mh-page-hero__character {
	display: block;
	width: var(--mh-character-width);
	height: var(--mh-character-height);
	margin: 28px auto 0;
	object-fit: contain;
	object-position: center bottom;
}

.mh-subpage .mh-section--soft {
	background: var(--mh-soft);
}

.mh-card-grid--services > .mh-card:nth-child(1) { background: var(--mh-pastel-yellow); }
.mh-card-grid--services > .mh-card:nth-child(2) { background: var(--mh-pastel-blue); }
.mh-card-grid--services > .mh-card:nth-child(3) { background: var(--mh-pastel-pink); }
.mh-card-grid--services > .mh-card:nth-child(4) { background: var(--mh-pastel-mint); }
.mh-card-grid--services > .mh-card:nth-child(5) { background: var(--mh-pastel-cream); }
.mh-card-grid--services > .mh-card:nth-child(6) { background: var(--mh-pastel-lavender); }

.mh-subpage .mh-card-grid--two {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.mh-subpage .mh-card-grid--pastel > .mh-card:nth-child(6n + 1) { background: var(--mh-pastel-yellow); }
.mh-subpage .mh-card-grid--pastel > .mh-card:nth-child(6n + 2) { background: var(--mh-pastel-blue); }
.mh-subpage .mh-card-grid--pastel > .mh-card:nth-child(6n + 3) { background: var(--mh-pastel-pink); }
.mh-subpage .mh-card-grid--pastel > .mh-card:nth-child(6n + 4) { background: var(--mh-pastel-mint); }
.mh-subpage .mh-card-grid--pastel > .mh-card:nth-child(6n + 5) { background: var(--mh-pastel-cream); }
.mh-subpage .mh-card-grid--pastel > .mh-card:nth-child(6n) { background: var(--mh-pastel-lavender); }

.mh-subpage .mh-flow-grid--three {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.mh-subpage .mh-flow-grid--four,
.mh-subpage .mh-flow-grid--eight {
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.mh-subpage .mh-faq-grid--numbered .mh-faq-card h3::before {
	margin: 0;
	content: "";
}

.mh-service-card {
	min-height: 100%;
}

.mh-card .mh-card__number {
	margin: 0 0 12px;
	color: var(--mh-green);
	font-size: 15px;
	font-weight: 800;
	line-height: 1.3;
	letter-spacing: .08em;
}

.mh-notice {
	width: min(100%, 900px);
	margin: 0 auto;
	padding: 38px 40px;
	border: 1px solid var(--mh-border);
	border-left: 6px solid var(--mh-green);
	border-radius: 18px;
	background: #fff;
	box-shadow: var(--mh-shadow);
}

.mh-notice--compact {
	padding: 34px;
	background: var(--mh-soft);
	box-shadow: none;
}

.mh-notice--center {
	text-align: center;
}

.mh-notice__eyebrow {
	margin: 0 0 10px;
	color: var(--mh-pink);
	font-size: 14px;
	font-weight: 800;
	line-height: 1.3;
	letter-spacing: .13em;
}

.mh-notice h2 {
	margin: 0;
	color: var(--mh-heading);
	font-size: clamp(27px, 3vw, 36px);
	font-weight: 700;
	line-height: 1.45;
	overflow-wrap: anywhere;
	text-wrap: pretty;
}

.mh-notice p:not(.mh-notice__eyebrow) {
	max-width: 820px;
	margin: 18px auto 0;
	color: var(--mh-text);
	font-size: 18px;
	line-height: 1.8;
	overflow-wrap: anywhere;
}

.mh-notice__buttons {
	display: flex;
	justify-content: center;
	gap: 12px 16px;
	margin-top: 28px;
}

.mh-button--outline {
	border: 2px solid var(--mh-green);
	background: #fff;
	box-shadow: none;
	color: var(--mh-green) !important;
}

.mh-button--outline:hover {
	border-color: var(--mh-green-dark);
	background: #eef6f1;
	color: var(--mh-green-dark) !important;
}

.mh-data-table {
	width: 100%;
	border-collapse: collapse;
	border: 1px solid var(--mh-border);
	background: #fff;
	font-size: 16px;
	line-height: 1.7;
}

.mh-data-table th,
.mh-data-table td {
	padding: 16px 18px;
	border: 1px solid var(--mh-border);
	vertical-align: top;
	overflow-wrap: anywhere;
}

.mh-data-table th {
	background: var(--mh-soft);
	color: var(--mh-heading);
	font-weight: 700;
	text-align: left;
}

.mh-form-shell {
	width: min(100%, 900px);
	margin: 0 auto;
	padding: clamp(24px, 4vw, 44px);
	border: 1px solid var(--mh-border);
	border-radius: 18px;
	background: #fff;
	box-shadow: var(--mh-shadow);
}

/* お問い合わせ。Contact Form 7の項目・送信処理には触れず、外観だけを整える。 */
.mh-contact-page__lead {
	margin: 24px auto 0;
	color: var(--mh-heading);
	font-size: clamp(22px, 2.6vw, 29px);
	font-weight: 700;
	line-height: 1.55;
	overflow-wrap: anywhere;
	text-wrap: pretty;
}

.mh-contact-methods,
.mh-contact-form-section {
	scroll-margin-top: 128px;
}

.mh-contact-methods__grid {
	width: min(100%, 900px);
	margin: 0 auto;
}

.mh-contact-method-card {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
}

.mh-contact-method-card .mh-button {
	margin-top: 22px;
}

.mh-contact-form-inner {
	max-width: 900px;
}

.mh-contact-form-heading {
	margin-bottom: 32px;
}

.mh-contact-notice {
	margin-bottom: 32px;
}

.mh-contact-notice h3 {
	margin: 0;
	color: var(--mh-heading);
	font-size: 21px;
	line-height: 1.5;
}

.mh-contact-notice p {
	margin: 10px 0 0;
	color: var(--mh-text);
	font-size: 16px;
	line-height: 1.8;
}

.mh-contact-form-shell .wp-block-contact-form-7-contact-form-selector,
.mh-contact-form-shell .wpcf7,
.mh-contact-form-shell .wpcf7-form,
.mh-contact-form-shell .wpcf7-form-control-wrap,
.mh-contact-form-shell .myh-contact-form,
.mh-contact-form-shell .myh-form-field {
	display: block;
	width: 100%;
	max-width: 100%;
	min-width: 0;
}

.mh-contact-form-shell .wp-block-contact-form-7-contact-form-selector,
.mh-contact-form-shell .wpcf7-form {
	margin: 0;
}

.mh-contact-form-shell .myh-form-field {
	margin: 0 0 24px;
}

.mh-contact-form-shell .myh-form-field > label {
	display: block;
	margin: 0;
	color: var(--mh-heading);
	font-weight: 700;
}

.mh-contact-form-shell .myh-required,
.mh-contact-form-shell .myh-optional {
	display: inline-block;
	margin-left: 6px;
	vertical-align: 1px;
}

.mh-contact-form-shell .myh-required {
	padding: 1px 7px;
	border-radius: 4px;
	background: #b42318;
	color: #fff;
	font-size: 12px;
	font-weight: 700;
	line-height: 1.6;
}

.mh-contact-form-shell .myh-optional {
	color: #68736e;
	font-size: 13px;
	font-weight: 500;
}

.mh-contact-form-shell .wpcf7 input[type="text"],
.mh-contact-form-shell .wpcf7 input[type="tel"],
.mh-contact-form-shell .wpcf7 input[type="email"],
.mh-contact-form-shell .wpcf7 input[type="file"],
.mh-contact-form-shell .wpcf7 select,
.mh-contact-form-shell .wpcf7 textarea {
	display: block;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	margin-top: 8px;
	border: 1px solid #bcc8c2;
	border-radius: 8px;
	background: #fff;
	color: var(--mh-heading);
	font-family: inherit;
	font-size: 16px;
	line-height: 1.5;
}

.mh-contact-form-shell .wpcf7 input[type="text"],
.mh-contact-form-shell .wpcf7 input[type="tel"],
.mh-contact-form-shell .wpcf7 input[type="email"],
.mh-contact-form-shell .wpcf7 select {
	min-height: 52px;
	padding: 11px 14px;
}

.mh-contact-form-shell .wpcf7 textarea {
	min-height: 180px;
	padding: 12px 14px;
	resize: vertical;
}

.mh-contact-form-shell .wpcf7 input[type="file"] {
	overflow: hidden;
	padding: 10px;
	font-size: 14px;
}

.mh-contact-form-shell .wpcf7 input[type="file"]::file-selector-button {
	max-width: 100%;
	margin-right: 10px;
	padding: 8px 12px;
	border: 1px solid #80928a;
	border-radius: 6px;
	background: var(--mh-soft);
	color: var(--mh-heading);
	font: inherit;
	cursor: pointer;
}

.mh-contact-form-shell .wpcf7 input:focus,
.mh-contact-form-shell .wpcf7 select:focus,
.mh-contact-form-shell .wpcf7 textarea:focus {
	border-color: var(--mh-green);
	outline: 3px solid rgba(31, 107, 69, .16);
	outline-offset: 1px;
}

.mh-contact-form-shell .myh-photo-fieldset {
	width: 100%;
	max-width: 100%;
	min-width: 0;
	margin: 8px 0 24px;
	padding: 20px;
	border: 1px solid var(--mh-border);
	border-radius: 12px;
	background: var(--mh-soft);
}

.mh-contact-form-shell .myh-photo-fieldset legend {
	max-width: 100%;
	padding: 0 8px;
	color: var(--mh-heading);
	font-size: 17px;
	font-weight: 700;
	line-height: 1.5;
	white-space: normal;
}

.mh-contact-form-shell .myh-photo-fieldset .myh-form-field:last-of-type {
	margin-bottom: 16px;
}

.mh-contact-form-shell .myh-photo-help {
	margin: 0;
	color: var(--mh-text);
	font-size: 14px;
	line-height: 1.7;
}

.mh-contact-form-shell .myh-privacy {
	width: 100%;
	max-width: 100%;
	min-width: 0;
	margin: 0 0 24px;
	padding: 16px;
	border-radius: 10px;
	background: var(--mh-soft);
}

.mh-contact-form-shell .myh-privacy a {
	color: var(--mh-green);
	font-weight: 700;
	text-decoration: underline;
	text-underline-offset: 3px;
}

.mh-contact-form-shell .wpcf7-acceptance,
.mh-contact-form-shell .wpcf7-acceptance .wpcf7-list-item {
	display: block;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	margin: 0;
}

.mh-contact-form-shell .wpcf7-acceptance label {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	margin: 0;
	font-weight: 400;
}

.mh-contact-form-shell .wpcf7-acceptance input[type="checkbox"] {
	flex: 0 0 auto;
	width: 20px;
	height: 20px;
	margin: 3px 0 0;
}

.mh-contact-form-shell .wpcf7 input[type="submit"] {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: auto;
	max-width: 100%;
	min-height: 52px;
	margin: 0;
	padding: 13px 28px;
	border: 2px solid var(--mh-green);
	border-radius: 999px;
	background: var(--mh-green);
	color: #fff;
	font-family: inherit;
	font-size: 16px;
	font-weight: 700;
	line-height: 1.4;
	cursor: pointer;
}

.mh-contact-form-shell .wpcf7 input[type="submit"]:hover,
.mh-contact-form-shell .wpcf7 input[type="submit"]:focus-visible {
	border-color: var(--mh-green-dark);
	background: var(--mh-green-dark);
	color: #fff;
}

.mh-contact-form-shell .wpcf7-spinner {
	margin: 12px;
}

.mh-contact-form-shell .wpcf7-not-valid-tip {
	display: block;
	margin-top: 6px;
	font-size: 14px;
}

.mh-contact-form-shell .wpcf7 form .wpcf7-response-output {
	width: 100%;
	max-width: 100%;
	min-width: 0;
	margin: 24px 0 0;
	padding: 12px 16px;
}

/* プライバシーポリシー。法務文面は変えず、長文を読みやすくする。 */
.mh-legal-section {
	background: var(--mh-soft);
}

.mh-legal-document {
	width: min(100%, 920px);
	margin: 0 auto;
	padding: clamp(30px, 5vw, 58px);
	border: 1px solid var(--mh-border);
	border-radius: 20px;
	background: #fff;
	box-shadow: var(--mh-shadow);
	color: var(--mh-text);
	font-size: 16px;
	line-height: 1.95;
	overflow-wrap: anywhere;
}

.mh-legal-document > :first-child {
	margin-top: 0;
}

.mh-legal-document h2 {
	margin: 52px 0 18px;
	padding-bottom: 12px;
	border-bottom: 2px solid var(--mh-border);
	color: var(--mh-heading);
	font-size: clamp(22px, 2.5vw, 28px);
	line-height: 1.55;
	text-wrap: pretty;
}

.mh-legal-document p,
.mh-legal-document ol,
.mh-legal-document address {
	margin: 0 0 18px;
}

.mh-legal-document ol {
	padding-left: 1.6em;
}

.mh-legal-document li + li {
	margin-top: 7px;
}

.mh-legal-document address {
	padding: 22px 24px;
	border-left: 5px solid var(--mh-green);
	border-radius: 12px;
	background: var(--mh-soft);
	font-style: normal;
}

.mh-legal-document a {
	color: var(--mh-green);
	font-weight: 700;
	text-decoration: underline;
	text-underline-offset: 3px;
}

.mh-legal-document .privacy-policy-date {
	margin-top: 48px;
}

.mh-legal-document .privacy-policy-date,
.mh-legal-document .privacy-policy-company {
	text-align: right;
}

/* 会社案内ページ固有部品。写真・会社情報・地図だけを共通基盤へ追加する。 */
.mh-company-message {
	display: grid;
	grid-template-columns: minmax(280px, .85fr) minmax(0, 1.15fr);
	align-items: center;
	gap: 40px;
}

.mh-company-portrait,
.mh-company-photo {
	margin: 0;
	border: 1px solid var(--mh-border);
	border-radius: 18px;
	background: var(--mh-soft);
	overflow: hidden;
}

.mh-company-portrait {
	padding: 18px 18px 0;
}

.mh-company-portrait img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 4 / 5;
	border-radius: 12px 12px 0 0;
	object-fit: cover;
	object-position: center top;
}

.mh-company-message__copy {
	padding: 38px 40px;
	border: 1px solid var(--mh-border);
	border-left: 5px solid var(--mh-green);
	border-radius: 18px;
	background: var(--mh-soft);
}

.mh-company-message__copy p {
	margin: 0;
	font-size: 17px;
	line-height: 1.95;
	overflow-wrap: anywhere;
}

.mh-company-message__copy p + p {
	margin-top: 16px;
}

.mh-company-message__copy .mh-company-message__lead {
	color: var(--mh-heading);
	font-size: 19px;
	font-weight: 700;
}

.mh-company-message__copy .mh-company-message__signature {
	margin-top: 24px;
	color: var(--mh-heading);
	font-weight: 700;
	text-align: right;
}

.mh-company-profile {
	display: grid;
	grid-template-columns: minmax(280px, .95fr) minmax(0, 1.05fr);
	align-items: start;
	gap: 32px 42px;
}

.mh-company-photo {
	padding: 12px;
}

.mh-company-photo img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 1568 / 1003;
	border-radius: 12px;
	object-fit: cover;
}

.mh-company-photo figcaption {
	margin-top: 10px;
	color: var(--mh-text);
	font-size: 14px;
	line-height: 1.6;
	text-align: center;
}

.mh-company-table th {
	width: 150px;
}

.mh-company-table p {
	margin: 0;
}

.mh-company-map {
	width: 100%;
	border: 1px solid var(--mh-border);
	border-radius: 18px;
	background: #fff;
	box-shadow: var(--mh-shadow);
	overflow: hidden;
}

.mh-company-map iframe {
	display: block;
	width: 100%;
	height: 480px;
	border: 0;
}

.mh-company-map-link {
	margin: 24px 0 0;
	text-align: center;
}

.mh-final-cta__inner--no-character {
	display: block;
	width: min(100%, 900px);
}

/* 専用投稿の一覧3ページ。ショートコードの動的機能を保ち、外観だけをM247へ揃える。 */
.mh-dynamic-page {
	--mh-news-green: var(--mh-green);
	--mh-news-green-dark: var(--mh-green-dark);
	--mh-news-text: var(--mh-heading);
	--mh-news-muted: var(--mh-text);
	--mh-news-border: var(--mh-border);
	--mh-news-pale: var(--mh-soft);
	--mh-news-white: #fff;
}

.mh-dynamic-page__hero {
	padding-block: 72px;
}

.mh-dynamic-listing-section {
	padding-block: 72px 96px;
}

.mh-dynamic-listing,
.mh-dynamic-listing > .wp-block-shortcode {
	width: 100%;
	max-width: 1200px;
	margin: 0 auto;
	padding: 0;
}

.mh-dynamic-page .mh-works-intro,
.mh-dynamic-page .mh-news-intro,
.mh-dynamic-page--voices .mhcv-heading > p:last-child {
	display: none;
}

.mh-dynamic-page .mh-works-filters {
	justify-content: center;
	gap: 10px;
	margin-bottom: 36px;
}

.mh-dynamic-page .mh-works-filter {
	min-height: 44px;
	padding: 9px 16px;
	border-color: var(--mh-border);
	border-radius: 999px;
	color: var(--mh-heading);
}

.mh-dynamic-page .mh-works-filter:hover,
.mh-dynamic-page .mh-works-filter:focus,
.mh-dynamic-page .mh-works-filter.is-active {
	border-color: var(--mh-green);
	background: var(--mh-green);
	color: #fff;
}

.mh-dynamic-page .mh-works-grid,
.mh-dynamic-page .mh-news-grid {
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 28px;
}

.mh-dynamic-page .mh-work-card,
.mh-dynamic-page .mh-news-card,
.mh-dynamic-page--voices .mhcv-card {
	min-width: 0;
	border: 1px solid var(--mh-border);
	border-radius: 18px;
	background: #fff;
	box-shadow: var(--mh-shadow);
	overflow: hidden;
}

.mh-dynamic-page .mh-work-card-image,
.mh-dynamic-page .mh-news-card-image,
.mh-dynamic-page--voices .mhcv-photo {
	background: var(--mh-soft);
}

.mh-dynamic-page .mh-work-card-image {
	aspect-ratio: 4 / 3;
}

.mh-dynamic-page .mh-news-card-image,
.mh-dynamic-page--voices .mhcv-photo {
	aspect-ratio: 16 / 10;
}

.mh-dynamic-page .mh-work-card-body,
.mh-dynamic-page .mh-news-card-body,
.mh-dynamic-page--voices .mhcv-card-body {
	padding: 25px;
}

.mh-dynamic-page .mh-work-card-type,
.mh-dynamic-page--voices .mhcv-project {
	border-radius: 999px;
	background: var(--mh-soft);
	color: var(--mh-green);
}

.mh-dynamic-page .mh-work-card-title,
.mh-dynamic-page .mh-news-card-title,
.mh-dynamic-page--voices .mhcv-card h3 {
	color: var(--mh-heading);
	font-size: 21px;
	line-height: 1.55;
	overflow-wrap: anywhere;
}

.mh-dynamic-page .mh-work-card-summary,
.mh-dynamic-page .mh-news-card-excerpt,
.mh-dynamic-page--voices .mhcv-profile,
.mh-dynamic-page--voices .mhcv-detail p {
	color: var(--mh-text);
	line-height: 1.85;
}

.mh-dynamic-page .mh-work-card-link a,
.mh-dynamic-page .mh-news-outline-button {
	min-height: 44px;
	padding: 9px 16px;
	border-color: var(--mh-green);
	border-radius: 999px;
	background: #fff;
	color: var(--mh-green);
}

.mh-dynamic-page .mh-work-card-link a:hover,
.mh-dynamic-page .mh-work-card-link a:focus,
.mh-dynamic-page .mh-news-outline-button:hover,
.mh-dynamic-page .mh-news-outline-button:focus {
	border-color: var(--mh-green-dark);
	background: var(--mh-soft);
	color: var(--mh-green-dark);
}

.mh-dynamic-page .mh-works-pagination,
.mh-dynamic-page .mh-news-pagination {
	margin-top: 40px;
}

.mh-dynamic-page .mh-works-pagination a,
.mh-dynamic-page .mh-works-pagination span,
.mh-dynamic-page .mh-news-pagination .page-numbers {
	min-width: 44px;
	min-height: 44px;
	border-color: var(--mh-border);
	border-radius: 10px;
}

.mh-dynamic-page .mh-works-empty,
.mh-dynamic-page .mh-news-empty,
.mh-dynamic-page--voices .mhcv-empty {
	padding: 32px 24px;
	border: 1px solid var(--mh-border);
	border-radius: 18px;
	background: var(--mh-soft);
	color: var(--mh-text);
}

.mh-dynamic-page--voices .mhcv-section--archive {
	padding: 0;
	background: transparent;
}

.mh-dynamic-page--voices .mhcv-inner {
	max-width: none;
}

.mh-dynamic-page--voices .mhcv-heading {
	position: relative;
	width: 100%;
	height: 0;
	margin: 0;
	text-align: center;
}

/* 固定ページ側にH1を置くため、専用出力の重複見出しだけを視覚的に隠す。説明文は維持する。 */
.mh-dynamic-page--voices .mhcv-heading .mhcv-kicker,
.mh-dynamic-page--voices .mhcv-heading h2 {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	border: 0;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	overflow: hidden;
	white-space: nowrap;
}

.mh-dynamic-page--voices .mhcv-grid--full {
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 28px;
}

.mh-dynamic-page--voices .mhcv-detail h4 {
	color: var(--mh-green);
}

/* 3一覧の適用後だけ読み込む、施工事例・お知らせ詳細の共通外観。 */
body.mh-site-design-dynamic-single {
	--mh-green: #1f6b45;
	--mh-green-dark: #174c32;
	--mh-heading: #26332d;
	--mh-text: #4f5e56;
	--mh-border: #dfe9e3;
	--mh-soft: #f4f8f5;
	--mh-shadow: 0 12px 30px rgba(24, 58, 43, .08);
	background: var(--mh-soft);
	overflow-x: clip;
}

body.mh-site-design-dynamic-work #content.site-content {
	box-sizing: border-box;
	width: 100%;
	max-width: none;
	padding: 72px 24px 96px;
	background: var(--mh-soft);
}

body.mh-site-design-dynamic-work #primary.content-area,
body.mh-site-design-dynamic-work #main.site-main,
body.mh-site-design-dynamic-work #main.site-main > article,
body.mh-site-design-dynamic-work #main.site-main > article > .inside-article {
	box-sizing: border-box;
	width: 100%;
	max-width: 1080px;
	margin: 0 auto;
}

body.mh-site-design-dynamic-work #main.site-main > article > .inside-article {
	padding: clamp(26px, 4vw, 48px);
	border: 1px solid var(--mh-border);
	border-radius: 20px;
	background: #fff;
	box-shadow: var(--mh-shadow);
}

body.mh-site-design-dynamic-work .entry-header {
	max-width: none;
	margin: 0 0 32px;
	text-align: center;
}

body.mh-site-design-dynamic-work .entry-title {
	margin: 0;
	color: var(--mh-heading);
	font-size: clamp(29px, 4vw, 44px);
	line-height: 1.4;
	overflow-wrap: anywhere;
}

body.mh-site-design-dynamic-work .entry-content,
body.mh-site-design-dynamic-work .mh-work-detail {
	margin: 0;
	color: var(--mh-text);
}

body.mh-site-design-dynamic-work .mh-work-featured-image,
body.mh-site-design-dynamic-work .mh-work-gallery a,
body.mh-site-design-dynamic-news .mh-news-single-image img {
	border-radius: 16px;
}

body.mh-site-design-dynamic-work .mh-work-detail-meta {
	border-color: var(--mh-border);
	border-radius: 16px;
	overflow: hidden;
}

body.mh-site-design-dynamic-work .mh-work-section h2 {
	border-bottom-color: var(--mh-green);
	color: var(--mh-heading);
}

body.mh-site-design-dynamic-work .mh-work-quote blockquote,
body.mh-site-design-dynamic-work .mh-work-cta {
	border-radius: 16px;
	background: var(--mh-soft);
}

body.mh-site-design-dynamic-work .mh-works-button,
body.mh-site-design-dynamic-work .mh-work-back a,
body.mh-site-design-dynamic-news .mh-news-outline-button {
	border-radius: 999px;
}

body.mh-site-design-dynamic-news .mh-news-single-page {
	padding: 72px 24px 96px;
	background: var(--mh-soft);
}

body.mh-site-design-dynamic-news .mh-news-single {
	max-width: 960px;
	padding: clamp(26px, 4vw, 48px);
	border-color: var(--mh-border);
	border-radius: 20px;
	background: #fff;
	box-shadow: var(--mh-shadow);
}

body.mh-site-design-dynamic-news .mh-news-single-title {
	color: var(--mh-heading);
	font-size: clamp(29px, 4vw, 44px);
	overflow-wrap: anywhere;
}

body.mh-site-design-dynamic-news .mh-news-single-content {
	color: var(--mh-text);
}

@media (max-width: 767px) {
	.mh-page-hero {
		width: 100% !important;
		max-width: none !important;
		margin-right: 0 !important;
		margin-left: 0 !important;
		padding: 56px 16px;
	}

	.mh-page-hero__eyebrow {
		margin-bottom: 13px;
		font-size: 13px;
	}

	.mh-page-hero__title {
		font-size: clamp(29px, 8.2vw, 34px);
		line-height: 1.4;
	}

	.mh-page-hero__title::after {
		width: 84px;
		margin-top: 18px;
	}

	.mh-page-hero__description {
		margin-top: 20px;
		font-size: 17px;
		line-height: 1.8;
	}

	.mh-notice,
	.mh-notice--compact {
		width: 100%;
		padding: 28px 22px;
		border-left-width: 5px;
		border-radius: 16px;
	}

	.mh-notice h2 {
		font-size: 27px;
	}

	.mh-notice p:not(.mh-notice__eyebrow) {
		font-size: 16px;
	}

	.mh-notice__buttons {
		display: grid;
		grid-template-columns: 1fr;
	}

	.mh-notice__buttons .mh-button {
		width: 100%;
	}

	.mh-data-table {
		font-size: 15px;
	}

	.mh-data-table th,
	.mh-data-table td {
		padding: 13px 12px;
	}

	.mh-form-shell {
		width: 100%;
		padding: 24px 18px;
		border-radius: 16px;
	}

	.mh-contact-page__lead {
		margin-top: 20px;
		font-size: 22px;
	}

	.mh-contact-methods,
	.mh-contact-form-section {
		scroll-margin-top: 96px;
	}

	.mh-contact-method-card .mh-button {
		width: 100%;
	}

	.mh-contact-form-heading {
		margin-bottom: 28px;
	}

	.mh-contact-form-shell .myh-photo-fieldset {
		padding: 16px;
	}

	.mh-contact-form-shell .wpcf7 input[type="file"] {
		font-size: 13px;
	}

	.mh-contact-form-shell .wpcf7 input[type="file"]::file-selector-button {
		margin-right: 6px;
		padding: 7px 9px;
		font-size: 13px;
	}

	.mh-contact-form-shell .wpcf7 input[type="submit"] {
		width: 100%;
	}

	.mh-contact-form-shell .wpcf7 select,
	.mh-contact-form-shell .wpcf7 legend,
	.mh-contact-form-shell .wpcf7 label,
	.mh-contact-form-shell .wpcf7 p,
	.mh-contact-form-shell .wpcf7 span {
		max-width: 100%;
		overflow-wrap: anywhere;
	}

	.mh-legal-document {
		padding: 26px 20px;
		border-radius: 16px;
		font-size: 15px;
		line-height: 1.9;
	}

	.mh-legal-document h2 {
		margin-top: 42px;
		font-size: 22px;
	}

	.mh-legal-document ol {
		padding-left: 1.35em;
	}

	.mh-legal-document address {
		padding: 18px;
	}

	.mh-company-message,
	.mh-company-profile {
		grid-template-columns: 1fr;
		gap: 28px;
	}

	.mh-company-portrait {
		width: min(100%, 520px);
		margin: 0 auto;
	}

	.mh-company-message__copy {
		padding: 28px 22px;
		border-left-width: 5px;
		border-radius: 16px;
	}

	.mh-company-message__copy p {
		font-size: 16px;
	}

	.mh-company-message__copy .mh-company-message__lead {
		font-size: 18px;
	}

	.mh-company-table th {
		width: 104px;
	}

	.mh-company-map {
		border-radius: 16px;
	}

	.mh-company-map iframe {
		height: 360px;
	}

	.mh-company-map-link .mh-button {
		width: 100%;
	}

	.mh-dynamic-page__hero {
		padding-block: 48px;
	}

	.mh-dynamic-listing-section {
		padding-block: 52px 64px;
	}

	.mh-dynamic-page .mh-works-grid,
	.mh-dynamic-page .mh-news-grid,
	.mh-dynamic-page--voices .mhcv-grid--full {
		grid-template-columns: 1fr;
		gap: 22px;
	}

	.mh-dynamic-page .mh-work-card-body,
	.mh-dynamic-page .mh-news-card-body,
	.mh-dynamic-page--voices .mhcv-card-body {
		padding: 22px;
	}

	body.mh-site-design-dynamic-work #content.site-content,
	body.mh-site-design-dynamic-news .mh-news-single-page {
		padding: 36px 16px 56px;
	}

	body.mh-site-design-dynamic-work #main.site-main > article > .inside-article,
	body.mh-site-design-dynamic-news .mh-news-single {
		padding: 24px 18px;
		border-radius: 16px;
	}

	.mh-subpage .mh-card-grid--two,
	.mh-subpage .mh-flow-grid--three,
	.mh-subpage .mh-flow-grid--four,
	.mh-subpage .mh-flow-grid--eight {
		grid-template-columns: 1fr;
	}
}

@media (min-width: 768px) and (max-width: 1024px) {
	.mh-dynamic-page .mh-works-grid,
	.mh-dynamic-page .mh-news-grid,
	.mh-dynamic-page--voices .mhcv-grid--full {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.mh-subpage .mh-flow-grid--three,
	.mh-subpage .mh-flow-grid--four,
	.mh-subpage .mh-flow-grid--eight {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 390px) {
	.mh-page-hero__title {
		font-size: 29px;
	}

	.mh-page-hero__description {
		font-size: 16px;
	}
}

@media (max-width: 767px) {
	.mh-faq-links {
		grid-template-columns: 1fr;
		gap: 12px;
	}

	.mh-faq-link-card {
		min-height: 76px;
		padding: 17px 18px 17px 22px;
	}

	.mh-faq-link-card__question {
		font-size: 17px;
	}

	.mh-subpage .mh-faq-card[id] {
		scroll-margin-top: 96px;
	}
}

@media (max-width: 390px) {
	.mh-faq-link-card {
		padding: 16px 16px 16px 20px;
	}

	.mh-faq-link-card__arrow {
		width: 30px;
		height: 30px;
		font-size: 18px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.mh-site-page *,
	.mh-site-page *::before,
	.mh-site-page *::after {
		scroll-behavior: auto !important;
		transition-duration: .01ms !important;
		animation-duration: .01ms !important;
		animation-iteration-count: 1 !important;
	}
}

/*
 * キャラクター配置の共通コンポーネント。
 * ページ固有の画像とHTMLは固定ページまたは各専用投稿プラグインが所有する。
 */
.mh-site-page .mh-character-placement,
.mh-consult-cta .mh-character-placement {
	display: block;
	max-width: none;
	margin: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
	filter: none;
	object-fit: contain;
	object-position: center bottom;
}

/* H1。PCではコピーの右、スマホではコピーの下へ置く。 */
.mh-page-hero__inner--character {
	display: grid;
	grid-template-columns: minmax(0, 1fr) clamp(150px, 17vw, 205px);
	grid-template-areas:
		"eyebrow character"
		"title character"
		"description character";
	align-items: end;
	column-gap: clamp(18px, 3vw, 42px);
	text-align: left;
}

.mh-page-hero__inner--character > .mh-page-hero__eyebrow { grid-area: eyebrow; }
.mh-page-hero__inner--character > .mh-page-hero__title { grid-area: title; }
.mh-page-hero__inner--character > .mh-page-hero__description { grid-area: description; }
.mh-page-hero__inner--character > .mh-character-placement--hero {
	grid-area: character;
	align-self: end;
	justify-self: center;
	width: clamp(130px, 15vw, 185px);
	height: clamp(180px, 20vw, 250px);
}

.mh-page-hero__inner--character .mh-page-hero__title::after {
	margin-right: 0;
	margin-left: 0;
}

.mh-page-hero__inner--character .mh-page-hero__description {
	margin-right: 0;
	margin-left: 0;
}

/* H2の標準見出し。 */
.mh-guide--center.mh-guide--character {
	display: grid;
	grid-template-columns: minmax(0, 1fr) var(--mh-character-layout-width);
	align-items: end;
	gap: 12px;
	text-align: left;
}

.mh-guide--center.mh-guide--character .mh-guide__copy {
	max-width: none;
	margin: 0;
}

.mh-guide--center.mh-guide--character .mh-guide__title::after,
.mh-guide--center.mh-guide--character .mh-guide__description {
	margin-right: 0;
	margin-left: 0;
}

.mh-guide--character > .mh-character-placement--guide {
	width: var(--mh-character-width);
	height: var(--mh-character-height);
}

/* お知らせ型のH2。文章幅を確保したまま右下へ配置する。 */
.mh-notice--character {
	position: relative;
	min-height: 205px;
	padding-right: clamp(175px, 22vw, 230px);
	text-align: left;
}

.mh-notice--character > .mh-character-placement--notice {
	position: absolute;
	right: clamp(20px, 4vw, 42px);
	bottom: 0;
	width: clamp(125px, 16vw, 175px);
	height: clamp(145px, 18vw, 190px);
}

.mh-notice--character p:not(.mh-notice__eyebrow),
.mh-notice--character .mh-notice__buttons {
	margin-right: 0;
	margin-left: 0;
}

/* 固定ページの最終CTA。 */
.mh-final-cta__inner--character {
	display: grid;
	grid-template-columns: minmax(0, 1fr) var(--mh-character-layout-width);
	align-items: end;
	gap: 24px;
}

/* 専用投稿プラグインが出力する一覧ページの共通CTA。 */
.mh-consult-cta__inner--character {
	position: relative;
	min-height: 170px;
	padding-right: 205px;
}

.mh-consult-cta__inner--character > .mh-character-placement--dynamic-final {
	position: absolute;
	right: 10px;
	bottom: -48px;
	width: 170px;
	height: 190px;
}

@media (max-width: 767px) {
	.mh-page-hero__inner--character {
		display: block;
		text-align: center;
	}

	.mh-page-hero__inner--character .mh-page-hero__title::after,
	.mh-page-hero__inner--character .mh-page-hero__description {
		margin-right: auto;
		margin-left: auto;
	}

	.mh-page-hero__inner--character > .mh-character-placement--hero {
		width: 118px;
		height: 132px;
		margin: 18px auto 0;
	}

	.mh-guide--center.mh-guide--character {
		display: block;
		text-align: center;
	}

	.mh-guide--center.mh-guide--character .mh-guide__copy {
		margin-right: auto;
		margin-left: auto;
	}

	.mh-guide--center.mh-guide--character .mh-guide__title::after,
	.mh-guide--center.mh-guide--character .mh-guide__description {
		margin-right: auto;
		margin-left: auto;
	}

	.mh-guide--character > .mh-character-placement--guide {
		width: 118px;
		height: 132px;
		margin: 18px auto 0;
	}

	.mh-notice--character,
	.mh-notice--compact.mh-notice--character {
		min-height: 0;
		padding: 28px 22px;
		text-align: center;
	}

	.mh-notice--character > .mh-character-placement--notice {
		position: static;
		width: 118px;
		height: 132px;
		margin: 16px auto 0;
	}

	.mh-notice--character p:not(.mh-notice__eyebrow),
	.mh-notice--character .mh-notice__buttons {
		margin-right: auto;
		margin-left: auto;
	}

	.mh-consult-cta__inner--character {
		min-height: 0;
		padding-right: 0;
	}

	.mh-consult-cta__inner--character > .mh-character-placement--dynamic-final {
		position: static;
		width: 118px;
		height: 132px;
		margin: 20px auto -18px;
	}
}

@media (max-width: 390px) {
	.mh-page-hero__inner--character > .mh-character-placement--hero,
	.mh-guide--character > .mh-character-placement--guide,
	.mh-notice--character > .mh-character-placement--notice,
	.mh-consult-cta__inner--character > .mh-character-placement--dynamic-final {
		width: 108px;
		height: 121px;
	}
}

/* M272 CONCERN GUIDES START */
.mh-concern-page .mh-concern-visual {
  width: min(100%, 900px);
  margin: 0 auto;
  padding: clamp(22px, 4vw, 34px);
  border: 1px solid var(--mh-border);
  border-radius: 22px;
  background: #fff;
  box-shadow: var(--mh-shadow);
}

.mh-concern-page .mh-concern-visual img {
  display: block;
  width: 100%;
  max-width: 760px;
  height: auto;
  margin: 0 auto;
  aspect-ratio: 128 / 45;
  object-fit: contain;
  object-position: center;
}

.mh-concern-page .mh-concern-illustration {
  width: min(100%, 920px);
  margin: clamp(24px, 4vw, 38px) auto;
  text-align: center;
}

.mh-concern-page .mh-concern-illustration img {
  display: block;
  width: 100%;
  max-width: 820px;
  height: clamp(180px, 32vw, 330px);
  margin: 0 auto;
  object-fit: contain;
  object-position: center;
}

.mh-concern-page .mh-concern-illustration--scene img {
  max-width: 760px;
  height: clamp(210px, 34vw, 350px);
}

.mh-concern-page .mh-process-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
  margin-top: 30px;
}

.mh-concern-page .mh-process-card {
  position: relative;
  padding: 30px 26px 26px;
  border: 1px solid var(--mh-border);
  border-radius: 18px;
  background: #fff;
  box-shadow: var(--mh-shadow);
}

.mh-concern-page .mh-process-card__number {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  margin-bottom: 15px;
  border-radius: 50%;
  background: #e7f3ec;
  color: var(--mh-green);
  font-size: 15px;
  font-weight: 800;
}

.mh-concern-page .mh-process-card h3 {
  margin: 0;
  color: var(--mh-heading);
  font-size: 19px;
  line-height: 1.55;
}

.mh-concern-page .mh-process-card p {
  margin: 12px 0 0;
  color: var(--mh-text);
  font-size: 16px;
  line-height: 1.75;
}

.mh-concern-page .mh-concern-note + .mh-concern-actions,
.mh-concern-page .mh-card-grid + .mh-concern-actions {
  margin-top: 30px;
}

.mh-concern-page .mh-concern-note h3 {
  margin: 0;
  color: var(--mh-heading);
  font-size: clamp(21px, 2.3vw, 27px);
  line-height: 1.5;
}

.mh-concern-page .mh-concern-summary {
  width: min(100%, 980px);
  margin: 30px auto 0;
}

.mh-concern-page .mh-concern-summary__title {
  margin: 0 0 16px;
  color: var(--mh-heading);
  font-size: 20px;
  line-height: 1.5;
  text-align: center;
}

.mh-concern-page .mh-concern-jump {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  margin: 0;
}

.mh-concern-page .mh-concern-jump a {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 58px;
  padding: 12px 18px;
  border: 1px solid var(--mh-border);
  border-radius: 14px;
  background: #fff;
  color: var(--mh-green) !important;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.5;
  text-align: center;
  text-decoration: none !important;
}

.mh-concern-page .mh-concern-jump a:hover {
  border-color: var(--mh-green);
  background: #eef6f1;
}

.mh-concern-page [id^="mh-concern-"] {
  scroll-margin-top: 112px;
}

.mh-concern-page .mh-card ul,
.mh-concern-page .mh-notice ul,
.mh-concern-page .mh-concern-list {
  margin: 14px 0 0;
  padding-left: 1.25em;
  color: var(--mh-text);
  font-size: 16px;
  line-height: 1.8;
}

.mh-concern-page .mh-card li + li,
.mh-concern-page .mh-notice li + li,
.mh-concern-page .mh-concern-list li + li {
  margin-top: 7px;
}

.mh-concern-page .mh-card-grid--four {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.mh-concern-page .mh-concern-card--safety {
  border-top: 6px solid var(--mh-green);
}

.mh-concern-page .mh-concern-card--soon {
  border-top: 6px solid var(--mh-yellow);
}

.mh-concern-page .mh-concern-card--record {
  border-top: 6px solid var(--mh-blue);
}

.mh-concern-page .mh-concern-card__label {
  display: inline-block;
  margin: 0 0 10px;
  color: var(--mh-green);
  font-size: 14px;
  font-weight: 800;
  letter-spacing: .04em;
}

.mh-concern-page .mh-concern-note {
  width: min(100%, 900px);
  margin: 32px auto 0;
  padding: 30px 34px;
  border: 1px solid var(--mh-border);
  border-left: 6px solid var(--mh-green);
  border-radius: 18px;
  background: #fff;
  box-shadow: var(--mh-shadow);
}

.mh-concern-page .mh-concern-note--attention {
  border-left-color: var(--mh-yellow);
  background: #fffaf0;
}

.mh-concern-page .mh-concern-note--calm {
  border-left-color: var(--mh-blue);
  background: #f4f9fd;
}

.mh-concern-page .mh-concern-note h2,
.mh-concern-page .mh-concern-note h3 {
  margin: 0;
  color: var(--mh-heading);
  font-size: clamp(24px, 2.6vw, 31px);
  line-height: 1.45;
}

.mh-concern-page .mh-concern-note p {
  margin: 16px 0 0;
  color: var(--mh-text);
  font-size: 17px;
  line-height: 1.8;
}

.mh-concern-page .mh-concern-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 12px 16px;
  margin-top: 28px;
}

.mh-concern-page .mh-button--primary {
  border-color: var(--mh-green);
  background: var(--mh-green);
  color: #fff !important;
}

.mh-concern-page .mh-button--primary:hover,
.mh-concern-page .mh-button--primary:focus {
  background: #174f36;
  color: #fff !important;
}

.mh-concern-page .mh-concern-small {
  max-width: 820px;
  margin: 20px auto 0;
  color: var(--mh-text);
  font-size: 15px;
  line-height: 1.75;
  text-align: center;
}

.mh-concern-page .mh-faq-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
}

.mh-trouble-card {
  padding: 0;
}

.mh-trouble-card__link {
  display: flex;
  flex-direction: column;
  height: 100%;
  padding: 28px;
  color: inherit !important;
  text-decoration: none !important;
}

.mh-trouble-card__link:hover h3,
.mh-trouble-card__link:focus h3 {
  color: var(--mh-green);
}

.mh-trouble-card__more {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	align-self: flex-start;
	min-height: 42px;
	margin-top: 18px;
	padding: 8px 16px;
	border: 1px solid var(--mh-green);
	border-radius: 5px;
	background: var(--mh-white);
	color: var(--mh-green);
	font-size: 17px;
	font-weight: 700;
	line-height: 1.4;
	transition: background-color 0.2s, border-color 0.2s, color 0.2s;
}

.mh-trouble-card__link:hover .mh-trouble-card__more,
.mh-trouble-card__link:focus .mh-trouble-card__more {
	border-color: var(--mh-green-dark);
	background: var(--mh-soft);
	color: var(--mh-green-dark);
}

.mh-trouble-card:has(.mh-trouble-card__link) {
  transition: transform .2s ease, box-shadow .2s ease;
}

.mh-trouble-card:has(.mh-trouble-card__link):hover {
  transform: translateY(-3px);
  box-shadow: 0 16px 34px rgba(24, 58, 43, .13);
}

@media (max-width: 1024px) {
  .mh-concern-page .mh-card-grid--four {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 900px) {
  .mh-concern-page .mh-process-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 767px) {
  .mh-concern-page .mh-concern-jump,
  .mh-concern-page .mh-card-grid--four,
  .mh-concern-page .mh-faq-grid {
    grid-template-columns: 1fr;
  }

  .mh-concern-page .mh-concern-visual {
    padding: 20px;
    border-radius: 16px;
  }

  .mh-concern-page .mh-concern-jump a {
    min-height: 52px;
    justify-content: flex-start;
    text-align: left;
  }

  .mh-concern-page .mh-concern-note {
    padding: 26px 22px;
    border-left-width: 5px;
    border-radius: 16px;
  }

  .mh-concern-page .mh-concern-note p {
    font-size: 16px;
  }

  .mh-concern-page .mh-concern-illustration {
    margin: 22px auto 28px;
  }

  .mh-concern-page .mh-concern-illustration img,
  .mh-concern-page .mh-concern-illustration--scene img {
    height: min(62vw, 260px);
  }

  .mh-concern-page .mh-process-grid {
    gap: 14px;
    margin-top: 22px;
  }

  .mh-concern-page .mh-process-card {
    padding: 23px 20px;
  }

  .mh-concern-page .mh-concern-actions {
    display: grid;
    grid-template-columns: 1fr;
  }

  .mh-concern-page .mh-concern-actions .mh-button {
    width: 100%;
  }

  .mh-trouble-card__link {
    padding: 24px;
  }
}

@media (max-width: 390px) {
  .mh-concern-page .mh-concern-jump a {
    padding: 11px 15px;
    font-size: 15px;
  }
}
/* M272 CONCERN GUIDES END */

/* M247 v2.3.1: 共通ヒーローの上余白だけを抑える再利用可能な修飾子。
 * 通常の mh-page-hero は変更せず、明示的に指定したページだけに適用する。 */
.mh-page-hero.mh-page-hero--compact-top {
	padding-top: 48px;
}

@media (max-width: 767px) {
	.mh-page-hero.mh-page-hero--compact-top {
		padding-top: 32px;
	}
}

/* M247 v2.3.2: 本文側がH1を所有する固定ページのテーマ殻を明示的にゼロ化する。
 * GeneratePressがタイトル非表示時にも空のentry-headerを出力する構成でも、
 * 本文先頭の共通ヒーローまで不要な空白を残さない。 */
body.mh-site-design-v1.mh-site-design-content-h1 article.page > .inside-article > .entry-header {
	display: none !important;
	min-height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
}

/* =========================================================
 * M247 v2.3.7：押せるボタンの操作手掛かりを責務ベースで共通化
 * ---------------------------------------------------------
 * 根本方針：
 * - 固定ページは、ボタンHTMLに操作手掛かりの役割クラスだけを持つ。
 *     mh-affordance--hand  : 相談・電話・フォーム等の行動CTA
 *     mh-affordance--arrow : 詳細・一覧・別ページ等への遷移
 * - 手・全角「＞」そのものの描画はM247が所有する。
 * - ボタン文言を読んで判定しない。JavaScriptでDOMを後処理しない。
 * - 既存の動的プラグインが所有する出力は、安定したコンポーネント
 *   セレクターだけで不足する操作手掛かりを補う。
 * - M337一時移行ツールで固定ページと動的プラグイン正本の装飾用「→」を除去し、
 *   固定ページは上記役割クラスへ一度だけ正規化する前提。
 * ========================================================= */

:root {
	--mh-affordance-hand-size: 38px;
	--mh-affordance-gap: 10px;
	--mh-affordance-arrow-glyph: "＞";
	--mh-affordance-arrow-font-size: 1.08em;
	--mh-affordance-direction-size: 9px;
}

/* ---------- 固定ページ：役割クラスを唯一の判定材料にする ---------- */
/* core/html等はa自身、core/buttonはwrapperへ役割クラスを持つ。 */
.mh-site-page a.mh-affordance--hand,
.mh-site-page a.mh-affordance--arrow,
.mh-site-page .wp-block-button.mh-affordance--hand > .wp-block-button__link,
.mh-site-page .wp-block-button.mh-affordance--arrow > .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--mh-affordance-gap);
}

.mh-site-page a.mh-affordance--hand::after,
.mh-site-page .wp-block-button.mh-affordance--hand > .wp-block-button__link::after {
	display: block;
	flex: 0 0 var(--mh-affordance-hand-size);
	width: var(--mh-affordance-hand-size);
	height: var(--mh-affordance-hand-size);
	margin: 0;
	border: 0;
	background: url('../images/cta-hand.webp') center / contain no-repeat;
	content: "";
	pointer-events: none;
}

/* ---------- 共通/動的コンポーネント：所有元が固定ページではないもの ---------- */
/* M086トップヒーロー、最終相談、動的詳細、ヘッダー、フッターは行動CTA。 */
body.mh-site-design-v1 .m086-hero__button,
.mh-site-page .mh-final-cta__button,
.mh-site-page .mh-consult-cta__button,
body.mh-site-design-dynamic .mh-consult-cta__button,
body.mh-site-design-dynamic-work .mh-work-cta .mh-works-button,
body.mh-site-design-v1 .main-navigation .mh-menu-contact > a,
body.mh-site-design-v1 .footer-widgets .wp-block-button > .wp-block-button__link[href*="/contact/"] {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--mh-affordance-gap);
}

body.mh-site-design-v1 .m086-hero__button::after,
.mh-site-page .mh-final-cta__button::after,
.mh-site-page .mh-consult-cta__button::after,
body.mh-site-design-dynamic .mh-consult-cta__button::after,
body.mh-site-design-dynamic-work .mh-work-cta .mh-works-button::after,
body.mh-site-design-v1 .main-navigation .mh-menu-contact > a::after,
body.mh-site-design-v1 .footer-widgets .wp-block-button > .wp-block-button__link[href*="/contact/"]::after {
	display: block;
	flex: 0 0 var(--mh-affordance-hand-size);
	width: var(--mh-affordance-hand-size);
	height: var(--mh-affordance-hand-size);
	margin: 0;
	border: 0;
	background: url('../images/cta-hand.webp') center / contain no-repeat;
	content: "";
	pointer-events: none;
}

/* ヘッダーの相談窓口はナビゲーション幅を守りながら、同じ手を1個だけ表示する。 */
body.mh-site-design-v1 .main-navigation .mh-menu-contact > a::after {
	flex-basis: 28px;
	width: 28px;
	height: 28px;
}

/* Contact Form 7 の submit(input)は疑似要素を持てないため背景画像で同じ手を表示。 */
.mh-contact-form-shell .wpcf7 input[type="submit"] {
	padding-right: 72px;
	background-image: url('../images/cta-hand.webp');
	background-repeat: no-repeat;
	background-position: right 18px center;
	background-size: 38px 38px;
}

.mh-contact-form-shell .wpcf7 input[type="submit"]:hover,
.mh-contact-form-shell .wpcf7 input[type="submit"]:focus-visible {
	background-image: url('../images/cta-hand.webp');
	background-repeat: no-repeat;
	background-position: right 18px center;
	background-size: 38px 38px;
}

/* 動的一覧の「もっと見る」は所有元プラグイン側に矢印文字がないため共通矢印を描画。 */
.mh-site-page .mh-section--works .mh-works-button,
.mh-site-page .mh-section--news .mh-news-more-button,
.mh-site-page .mh-section--voices .mh-button,
.mh-site-page .mh-section--works .mh-work-card-link a,
.mh-site-page .mh-section--news .mh-news-card .mh-news-outline-button,
.mh-site-page .mh-section--voices .mhcv-more a,
.mh-dynamic-page .mh-work-card-link a,
.mh-dynamic-page .mh-news-card .mh-news-outline-button,
.mh-dynamic-page .mhcv-more a,
.mh-trouble-card__more,
.mh-trouble-card__link > .mh-button,
.mh-faq-more .mh-button,
.mh-concern-page .mh-concern-jump a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 11px;
}

/* 通常の遷移は、この1規則だけで全角「＞」を1個描画する。 */
.mh-site-page a.mh-affordance--arrow::after,
.mh-site-page .wp-block-button.mh-affordance--arrow > .wp-block-button__link::after,
.mh-site-page .mh-section--works .mh-works-button:not(.mh-affordance--hand)::after,
.mh-site-page .mh-section--news .mh-news-more-button:not(.mh-affordance--hand)::after,
.mh-site-page .mh-section--voices .mh-button:not(.mh-affordance--hand)::after,
.mh-site-page .mh-section--works .mh-work-card-link a:not(.mh-affordance--hand)::after,
.mh-site-page .mh-section--news .mh-news-card .mh-news-outline-button:not(.mh-affordance--hand)::after,
.mh-site-page .mh-section--voices .mhcv-more a:not(.mh-affordance--hand)::after,
.mh-dynamic-page .mh-work-card-link a::after,
.mh-dynamic-page .mh-news-card .mh-news-outline-button::after,
.mh-dynamic-page .mhcv-more a::after,
.mh-trouble-card__more::after,
.mh-trouble-card__link > .mh-button:not(.mh-affordance--hand)::after,
.mh-faq-link-card__arrow::before,
.mh-faq-more .mh-button:not(.mh-affordance--hand)::after,
.mh-concern-page .mh-concern-jump a:not(.mh-affordance--hand)::after {
	display: inline-block;
	flex: 0 0 auto;
	width: auto;
	height: auto;
	margin: 0;
	border: 0;
	background: none;
	content: var(--mh-affordance-arrow-glyph);
	font-size: var(--mh-affordance-arrow-font-size);
	font-weight: 800;
	line-height: 1;
	pointer-events: none;
	transform: none;
}

/* 動的詳細の「一覧へ戻る」は左向き矢印。表示文言の解析は行わない。 */
body.mh-site-design-dynamic-work .mh-work-back a[href$="/works/"],
body.mh-site-design-dynamic-news .mh-news-single .mh-news-outline-button[href$="/news/"] {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
}

body.mh-site-design-dynamic-work .mh-work-back a[href$="/works/"]::before,
body.mh-site-design-dynamic-news .mh-news-single .mh-news-outline-button[href$="/news/"]::before {
	display: block;
	flex: 0 0 auto;
	width: var(--mh-affordance-direction-size);
	height: var(--mh-affordance-direction-size);
	border-bottom: 2px solid currentColor;
	border-left: 2px solid currentColor;
	content: "";
	pointer-events: none;
	transform: rotate(45deg);
}

/* FAQの通常遷移も上の共通規則で全角「＞」へ統一する。 */

@media (max-width: 767px) {
	:root {
		--mh-affordance-hand-size: 34px;
		--mh-affordance-gap: 9px;
	}

	.mh-contact-form-shell .wpcf7 input[type="submit"] {
		padding-right: 64px;
		background-position: right 15px center;
		background-size: 34px 34px;
	}

	.mh-contact-form-shell .wpcf7 input[type="submit"]:hover,
	.mh-contact-form-shell .wpcf7 input[type="submit"]:focus-visible {
		background-position: right 15px center;
		background-size: 34px 34px;
	}
}
