/* ===== 固定ページ（page.php）ブロックコンテンツのスタイル =====
 * .oc-page-content 内の WordPress 標準ブロック（見出し・段落・リスト等）を
 * 旧テンプレート（page-oldgeneral.php）のデザインに合わせる。
 *
 * 重要: カスタムブロック（octheme/*）への影響を防ぐため、
 *        WordPress コアブロックのクラス（.wp-block-heading 等）で限定する。
 * スコープ: .oc-page-content のみに適用、他ページへの影響なし。
 */

/* ----- h2: 大見出し（白文字・背景色・角丸） ----- */
.oc-page-content h2.wp-block-heading {
	font-size: 2.5rem;
	font-weight: 500;
	line-height: 1;
	letter-spacing: 0.1em;
	color: #fff;
	background: var(--wp--preset--color--primary, #33ADC7);
	border-radius: 1.25rem;
	padding: 1.25rem 2.375rem;
	margin-top: 4rem;
	margin-bottom: 2.25rem;
}

/* ----- h3: セクション見出し（左ボーダー＋下ドット） ----- */
.oc-page-content h3.wp-block-heading {
	position: relative;
	font-size: 2rem;
	font-weight: 500;
	line-height: 1.4;
	letter-spacing: 0.1em;
	border-left: 4px solid var(--wp--preset--color--primary, #33ADC7);
	padding: 0.125rem 1.1875rem 0.3125rem;
	margin-top: 4rem;
	margin-bottom: 2.25rem;
}

.oc-page-content h3.wp-block-heading::before {
	content: "";
	position: absolute;
	width: 100%;
	height: 100%;
	bottom: -1rem;
	left: 0;
	border-bottom: 3px dotted var(--wp--preset--color--primary, #33ADC7);
	pointer-events: none;
}

/* ----- h4: サブ見出し（下ダッシュボーダー） ----- */
.oc-page-content h4.wp-block-heading {
	font-size: 1.5rem;
	font-weight: 500;
	line-height: 1.4;
	letter-spacing: 0.1em;
	border-bottom: 1px dashed var(--wp--preset--color--primary, #33ADC7);
	padding-bottom: 0.875rem;
	margin-top: 3.4375rem;
	margin-bottom: 1.0625rem;
}

/* ----- h5: 小見出し（プライマリカラー） ----- */
.oc-page-content h5.wp-block-heading {
	font-size: 1.25rem;
	font-weight: 500;
	line-height: 1.5;
	letter-spacing: 0.1em;
	color: var(--wp--preset--color--primary, #33ADC7);
	margin-top: 2.5rem;
	margin-bottom: 1rem;
}

/* ----- h6: ラベル風見出し ----- */
.oc-page-content h6.wp-block-heading {
	font-size: 1.125rem;
	font-weight: 500;
	line-height: 1.5;
	letter-spacing: 0.05em;
	margin-top: 2rem;
	margin-bottom: 0.75rem;
}

/* ----- 段落（wp-block-paragraph がないケースも考慮し :not で除外） ----- */
.oc-page-content > .wp-block-paragraph,
.oc-page-content .wp-block-group p:not([class*="__"]),
.oc-page-content .wp-block-column p:not([class*="__"]) {
	font-size: 1.25rem;
	font-weight: 500;
	line-height: 2;
	letter-spacing: 0.05em;
	margin-top: 0;
	margin-bottom: 1.5rem;
}

/* 見出し直後の段落は余白を詰める */
.oc-page-content .wp-block-heading + .wp-block-paragraph {
	margin-top: 0;
}

/* ----- リスト (.wp-block-list でコアリストのみ対象) ----- */
.oc-page-content ul.wp-block-list,
.oc-page-content ol.wp-block-list {
	margin-top: 1.375rem;
	margin-bottom: 1.5rem;
	padding-left: 0;
	list-style: none;
}

.oc-page-content ol.wp-block-list {
	list-style: decimal;
	padding-left: 1.375rem;
}

.oc-page-content .wp-block-list > li {
	position: relative;
	font-size: 1.125rem;
	font-weight: 500;
	line-height: 2;
	letter-spacing: 0.05em;
	padding-left: 1.375rem;
}

.oc-page-content ol.wp-block-list > li {
	padding-left: 0;
}

.oc-page-content ul.wp-block-list > li::before {
	content: "";
	position: absolute;
	width: 0.625rem;
	height: 0.625rem;
	top: 0.65em;
	left: 0;
	background: var(--wp--preset--color--primary, #33ADC7);
	border-radius: 50%;
}

.oc-page-content .wp-block-list > li:not(:first-child) {
	margin-top: 0.5rem;
}

/* ----- テーブル (.wp-block-table でコアテーブルのみ対象) ----- */
.oc-page-content .wp-block-table {
	margin-top: 2.125rem;
	margin-bottom: 1.5rem;
	overflow: auto;
	border-radius: 1rem;
}

.oc-page-content .wp-block-table table {
	width: 100%;
	border-collapse: collapse;
	margin: 0;
}

.oc-page-content .wp-block-table th {
	font-size: 1.25rem;
	font-weight: 500;
	line-height: 1.5;
	letter-spacing: 0.3em;
	color: #fff;
	background: var(--wp--preset--color--primary, #33ADC7);
	padding: 1.25rem 2rem;
	border-left: 1px solid #fff;
	text-align: left;
}

.oc-page-content .wp-block-table th:first-child {
	border-left: none;
}

.oc-page-content .wp-block-table td {
	font-size: 1.125rem;
	font-weight: 500;
	line-height: 1.5;
	letter-spacing: 0.05em;
	background: #f8f8f8;
	border-left: 1px solid #fff;
	border-bottom: 1px solid #fff;
	padding: 1.125rem 2rem;
}

.oc-page-content .wp-block-table td:first-child {
	background: #e3f3f6;
	border-left: none;
	text-align: center;
}

.oc-page-content .wp-block-table tr:last-child td {
	border-bottom: none;
}

/* ----- 画像 ----- */
.oc-page-content .wp-block-image {
	margin-top: 2rem;
	margin-bottom: 2rem;
}

.oc-page-content .wp-block-image img {
	border-radius: 1.25rem;
}

/* ----- カラム ----- */
.oc-page-content .wp-block-columns {
	gap: 2.5rem;
	margin-top: 2rem;
	margin-bottom: 2rem;
}

/* ----- グループブロック背景 ----- */
.oc-page-content .wp-block-group.has-background {
	border-radius: 1.25rem;
	padding: 2.5rem 3rem;
	margin-top: 2rem;
	margin-bottom: 2rem;
}

/* ----- セパレーター ----- */
.oc-page-content .wp-block-separator {
	border-top: 2px dashed #c0d7db;
	margin-top: 2.5rem;
	margin-bottom: 2.5rem;
	opacity: 1;
}

/* ===== レスポンシブ (768px以下) ===== */
@media (max-width: 768px) {

	.oc-page-content h2.wp-block-heading {
		font-size: 6.15vw;
		border-radius: 2.56vw;
		padding: 4.62vw 5.13vw;
		margin-top: 8.21vw;
		margin-bottom: 6.67vw;
	}

	.oc-page-content h3.wp-block-heading {
		font-size: 5.13vw;
		padding: 1.54vw 4.87vw;
		margin-top: 8.21vw;
		margin-bottom: 6.67vw;
	}

	.oc-page-content h3.wp-block-heading::before {
		bottom: -3.08vw;
	}

	.oc-page-content h4.wp-block-heading {
		font-size: 4.62vw;
		padding-bottom: 3.08vw;
		margin-top: 6.15vw;
		margin-bottom: 2.82vw;
	}

	.oc-page-content h5.wp-block-heading {
		font-size: 4.62vw;
		margin-top: 6.15vw;
		margin-bottom: 2.56vw;
	}

	.oc-page-content h6.wp-block-heading {
		font-size: 4.1vw;
		margin-top: 5vw;
		margin-bottom: 2vw;
	}

	.oc-page-content > .wp-block-paragraph,
	.oc-page-content .wp-block-group p:not([class*="__"]),
	.oc-page-content .wp-block-column p:not([class*="__"]) {
		font-size: 4.1vw;
		line-height: 1.88;
	}

	.oc-page-content .wp-block-list > li {
		font-size: 4.1vw;
		line-height: 1.5;
		padding-left: 5.64vw;
	}

	.oc-page-content ul.wp-block-list > li::before {
		width: 2.56vw;
		height: 2.56vw;
		top: 1.54vw;
	}

	.oc-page-content .wp-block-table th {
		font-size: 4.62vw;
		padding: 5.13vw;
		letter-spacing: 0.1em;
	}

	.oc-page-content .wp-block-table td {
		font-size: 3.59vw;
		padding: 4.1vw;
	}

	.oc-page-content .wp-block-columns {
		gap: 5.64vw;
	}

	.oc-page-content .wp-block-group.has-background {
		border-radius: 2.56vw;
		padding: 6.15vw 4.1vw;
	}
}

/* ===== エディター内プレビュー =====
 * エディター内の WordPress コアブロックにも同じスタイルを適用。
 * .editor-styles-wrapper はエディター iframe 内の body に付与される。
 * カスタムブロック内の要素には影響しないよう、コアブロッククラスで限定。
 */

/* stylelint-disable no-descending-specificity */

.editor-styles-wrapper h2.wp-block-heading {
	font-size: 2.5rem;
	font-weight: 500;
	line-height: 1;
	letter-spacing: 0.1em;
	color: #fff;
	background: var(--wp--preset--color--primary, #33ADC7);
	border-radius: 1.25rem;
	padding: 1.25rem 2.375rem;
	margin-top: 4rem;
	margin-bottom: 2.25rem;
}

.editor-styles-wrapper h3.wp-block-heading {
	position: relative;
	font-size: 2rem;
	font-weight: 500;
	line-height: 1.4;
	letter-spacing: 0.1em;
	border-left: 4px solid var(--wp--preset--color--primary, #33ADC7);
	padding: 0.125rem 1.1875rem 0.3125rem;
	margin-top: 4rem;
	margin-bottom: 2.25rem;
}

.editor-styles-wrapper h3.wp-block-heading::before {
	content: "";
	position: absolute;
	width: 100%;
	height: 100%;
	bottom: -1rem;
	left: 0;
	border-bottom: 3px dotted var(--wp--preset--color--primary, #33ADC7);
	pointer-events: none;
}

.editor-styles-wrapper h4.wp-block-heading {
	font-size: 1.5rem;
	font-weight: 500;
	line-height: 1.4;
	letter-spacing: 0.1em;
	border-bottom: 1px dashed var(--wp--preset--color--primary, #33ADC7);
	padding-bottom: 0.875rem;
	margin-top: 3.4375rem;
	margin-bottom: 1.0625rem;
}

.editor-styles-wrapper h5.wp-block-heading {
	font-size: 1.25rem;
	font-weight: 500;
	line-height: 1.5;
	letter-spacing: 0.1em;
	color: var(--wp--preset--color--primary, #33ADC7);
	margin-top: 2.5rem;
	margin-bottom: 1rem;
}

.editor-styles-wrapper h6.wp-block-heading {
	font-size: 1.125rem;
	font-weight: 500;
	line-height: 1.5;
	letter-spacing: 0.05em;
	margin-top: 2rem;
	margin-bottom: 0.75rem;
}

.editor-styles-wrapper .wp-block-paragraph {
	font-size: 1.25rem;
	font-weight: 500;
	line-height: 2;
	letter-spacing: 0.05em;
}

.editor-styles-wrapper ul.wp-block-list {
	padding-left: 0;
	list-style: none;
}

.editor-styles-wrapper .wp-block-list > li {
	position: relative;
	font-size: 1.125rem;
	font-weight: 500;
	line-height: 2;
	letter-spacing: 0.05em;
	padding-left: 1.375rem;
}

.editor-styles-wrapper ul.wp-block-list > li::before {
	content: "";
	position: absolute;
	width: 0.625rem;
	height: 0.625rem;
	top: 0.65em;
	left: 0;
	background: var(--wp--preset--color--primary, #33ADC7);
	border-radius: 50%;
}

.editor-styles-wrapper .wp-block-table table {
	width: 100%;
	border-collapse: collapse;
}

.editor-styles-wrapper .wp-block-table th {
	font-size: 1.25rem;
	font-weight: 500;
	letter-spacing: 0.3em;
	color: #fff;
	background: var(--wp--preset--color--primary, #33ADC7);
	padding: 1.25rem 2rem;
	border-left: 1px solid #fff;
	text-align: left;
}

.editor-styles-wrapper .wp-block-table th:first-child {
	border-left: none;
}

.editor-styles-wrapper .wp-block-table td {
	font-size: 1.125rem;
	font-weight: 500;
	letter-spacing: 0.05em;
	background: #f8f8f8;
	border-left: 1px solid #fff;
	border-bottom: 1px solid #fff;
	padding: 1.125rem 2rem;
}

.editor-styles-wrapper .wp-block-table td:first-child {
	background: #e3f3f6;
	border-left: none;
	text-align: center;
}

.editor-styles-wrapper .wp-block-image img {
	border-radius: 1.25rem;
}

.editor-styles-wrapper .wp-block-group.has-background {
	border-radius: 1.25rem;
	padding: 2.5rem 3rem;
}

.editor-styles-wrapper .wp-block-separator {
	border-top: 2px dashed #c0d7db;
	opacity: 1;
}

/* stylelint-enable no-descending-specificity */
