/**
 * 固定ページテンプレート「下層汎用」
 */

body.ideage-sub-generic-page #page_contents {
	display: block;
	width: 100%;
	max-width: none;
	margin: 0;
	padding: 0;
	box-sizing: border-box;
}

body.ideage-sub-generic-page #page_header {
	padding-top: 0 !important;
}

body.ideage-sub-generic-page #page_header .large_headline,
body.ideage-sub-generic-page #page_header .large_headline span {
	margin: 0;
	padding: 0;
	font-family: 'Noto Sans JP', noto sans jp, sans-serif;
	font-size: 34px !important;
	font-style: normal;
	font-weight: 500;
	line-height: 1.8;
	color: #111;
	text-align: center;
}

body.ideage-sub-generic-page #page_contents .ideage-sub-generic__content {
	max-width: 840px;
	margin: 0 auto;
	padding: 0;
	overflow: visible;
}

.ideage-sub-generic__head {
	width: 100%;
	background: #fff;
	box-sizing: border-box;
}

.ideage-sub-generic__head-inner {
	max-width: 1024px;
	min-height: 275px;
	margin: 0 auto;
	padding: 200px 92px 40px;
	box-sizing: border-box;
}

.ideage-sub-generic__title {
	margin: 0;
	padding: 0;
	font-family: 'Noto Sans JP', noto sans jp, sans-serif;
	font-size: 34px;
	font-style: normal;
	font-weight: 500;
	line-height: 1.8;
	color: #111;
	text-align: center;
}

.ideage-sub-generic__body {
	background: #f4f7f9;
	padding: 40px 20px 120px;
	box-sizing: border-box;
}

.ideage-sub-generic__card {
	max-width: 1024px;
	margin: 0 auto;
	padding: 70px 92px;
	box-sizing: border-box;
	border-radius: 72px;
	background: #fff;
}

.ideage-sub-generic__content {
	max-width: 840px;
	margin: 0 auto;
	padding: 0;
	box-sizing: border-box;
}

.ideage-sub-generic__sections > .uagb-container-inner-blocks-wrap {
	display: flex;
	flex-direction: column;
	gap: 60px;
}

.ideage-sub-generic__section > .uagb-container-inner-blocks-wrap,
.ideage-sub-generic__section:not(:has(> .uagb-container-inner-blocks-wrap)) {
	display: block;
}

.ideage-sub-generic__clause {
	width: 100%;
}

.ideage-sub-generic__clause > .uagb-advanced-heading:last-child .uagb-heading-text,
.ideage-sub-generic__clause > .wp-block-uagb-advanced-heading:last-child .uagb-heading-text {
	margin-bottom: 0;
}

.ideage-sub-generic__section-title .uagb-heading-text {
	margin: 0;
	font-family: 'Noto Sans JP', noto sans jp, sans-serif;
	font-style: normal;
	font-weight: 500;
	line-height: 2;
	color: #333;
	text-align: left;
}

.ideage-sub-generic__sub-title .uagb-heading-text,
.ideage-sub-generic__text .uagb-heading-text,
.ideage-sub-generic__sign .uagb-heading-text {
	margin: 0;
	font-family: 'Noto Sans JP', noto sans jp, sans-serif;
	font-style: normal;
	font-weight: 400;
	line-height: 2;
	color: #333;
}
.ideage-sub-generic__sub-title .uagb-heading-text {
	font-weight: 700;
}

.ideage-sub-generic__sign .uagb-heading-text {
	color: #111;
}

.ideage-sub-generic__sign-block {
	width: 100%;
	margin-top: 24px;
}

.ideage-sub-generic__sign-block .wp-block-uagb-advanced-heading {
	width: 100%;
	text-align: right;
}

.ideage-sub-generic__sign-block .uagb-heading-text {
	text-align: right !important;
}

/*
 * 下層汎用の本文ラッパーは TCD の .post_content クラスを付けないため、
 * 親テーマのブログ記事用タイポグラフィは継承しない。
 * 以下はブロック（GenerateBlocks / Spectra）が値を持たないときの
 * 既定値（見出しの余白・本文の可読性）を補うためのもの。
 * :where() で詳細度を 0 に抑え、ブロックエディタ側の指定が常に優先されるようにする。
 */
:where(.ideage-sub-generic__content) h2,
:where(.ideage-sub-generic__content) h3,
:where(.ideage-sub-generic__content) h4 {
	margin: 1.8em 0 0.6em;
	line-height: 1.6;
	text-align: left;
}

:where(.ideage-sub-generic__content) p {
	margin: 0 0 1.5em;
	line-height: 2;
	color: #333;
}

:where(.ideage-sub-generic__content) ul,
:where(.ideage-sub-generic__content) ol {
	margin: 0 0 1.5em;
	padding-left: 1.5em;
	line-height: 2;
	color: #333;
}

:where(.ideage-sub-generic__content) a {
	color: #1e73be;
	text-decoration: underline;
}

@media (max-width: 900px) {
	body.ideage-sub-generic-page #page_header .large_headline,
	body.ideage-sub-generic-page #page_header .large_headline span {
		font-size: 26px !important;
		line-height: 1.6;
	}

	.ideage-sub-generic__head-inner {
		min-height: 0;
		padding: 60px 24px 24px;
	}

	.ideage-sub-generic__title {
		font-size: 26px;
		line-height: 1.6;
	}

	.ideage-sub-generic__body {
		padding: 24px 16px 80px;
	}

	.ideage-sub-generic__card {
		padding: 40px 24px;
		border-radius: 32px;
	}

	.ideage-sub-generic__sections > .uagb-container-inner-blocks-wrap {
		gap: 40px;
	}
}

@media (max-width: 767px) {
	body.ideage-sub-generic-page #page_header .large_headline,
	body.ideage-sub-generic-page #page_header .large_headline span {
		font-size: 22px !important;
	}

	.ideage-sub-generic__title {
		font-size: 22px;
	}
}
