/*--------------------------------------------------------------
# Shared Rich Content
--------------------------------------------------------------*/
.post-article__content,
.editor-styles-wrapper .is-root-container,
.editor-styles-wrapper .wp-block-post-content {
	font-family: var(
		--wp--preset--font-family--body-sans,
		"Noto Sans TC",
		"PingFang TC",
		"Microsoft JhengHei",
		sans-serif
	);
}

.post-article__content :is(p, li, blockquote, q, cite, h2, h3, h4, h5, h6),
.editor-styles-wrapper .is-root-container :is(p, li, blockquote, q, cite, h2, h3, h4, h5, h6),
.editor-styles-wrapper .wp-block-post-content :is(p, li, blockquote, q, cite, h2, h3, h4, h5, h6) {
	font-family: inherit;
}

.post-article__content :is(code, pre, pre code, kbd, samp, .wp-block-code, .wp-block-code code),
.editor-styles-wrapper .is-root-container :is(code, pre, pre code, kbd, samp, .wp-block-code, .wp-block-code code),
.editor-styles-wrapper .wp-block-post-content :is(code, pre, pre code, kbd, samp, .wp-block-code, .wp-block-code code) {
	font-family: var(
		--wp--preset--font-family--code-mono,
		"JetBrains Mono",
		ui-monospace,
		"SFMono-Regular",
		Menlo,
		Monaco,
		Consolas,
		"Liberation Mono",
		monospace
	);
}

.article__title {
	text-wrap: balance;
	overflow-wrap: break-word;
}

.post-article__content {
	font-size: clamp(17px, calc(16.63px + 0.095vw), 18px);
}

.post-article__content h2 {
	font-size: clamp(26px, calc(24px + 0.42vw), 30px);
	line-height: 1.4;
	margin-block-start: clamp(48px, 4vw, 56px);
	margin-block-end: 20px;
	padding-bottom: 0;
}

.post-article__content h3 {
	font-size: clamp(22px, calc(20px + 0.28vw), 24px);
	line-height: 1.5;
	margin-block-start: 36px;
	margin-block-end: 16px;
	padding-bottom: 0;
}

:where(.post-article__content, .editor-styles-wrapper .is-root-container, .editor-styles-wrapper .wp-block-post-content) {
	/* Headings */
	:is(h2, h3, h4, h5, h6) {
		padding-bottom: 12px;
	}

	:is(h2, h3) {
		margin-block-start: calc(var(--space-l, var(--flow-spacing, initial)) * 1);
	}

	:is(h4, h5, h6) {
		margin-block-start: calc(var(--space-m, var(--flow-spacing, initial)) * 0.9);
	}

	h2 {
		font-size: calc(var(--h2) * 0.86);
	}

	h3 {
		font-size: calc(var(--h3) * 0.9);
	}

	h4 {
		font-size: calc(var(--h4) * 0.96);
	}

	h5 {
		font-size: calc(var(--h5) * 0.96);
	}

	h6 {
		font-size: calc(var(--h6) * 0.96);
	}

	/* General */
	p {
		margin: 0 0 1.25em;
		line-height: 1.75;
		overflow-wrap: break-word;
	}

	cite {
		font-style: italic;
	}

	sup {
		font-size: 0.7em;
		line-height: 0;
		position: relative;
		vertical-align: baseline;
		top: -0.5em;
	}

	/* List */
	:is(ul, ol) {
		padding: 0;
	}

	:is(ul, ol) li {
		margin: 0 0 12px 24px;
		overflow-wrap: break-word;
	}

	/* Blockquote */
	:is(blockquote, q, cite) {
		quotes: none;
		font-size: calc(var(--text-m) * 0.92);
	}

	blockquote {
		display: block;
		background-color: #f4f5f7;
		border: 1px dashed #ccc;
		padding: 8px 10px;
		margin: 16px 20px;
	}

	q {
		display: inline;
	}

	q::before {
		content: open-quote;
	}

	q::after {
		content: close-quote;
	}

	/* Image */
	img {
		max-width: 100%;
		height: auto;
	}

	.img-border img {
		border: 1px solid var(--accent-light);
		border-radius: 4px;
		padding: 2px;
		box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2);
		transition: all 0.3s ease;
	}

	.img-border img:hover {
		transform: scale(1.02);
		box-shadow: 0 5px 12px rgba(0, 0, 0, 0.3);
	}

	.img-comparison {
		display: flex;
		justify-content: center;
		gap: 10px;
		flex-wrap: wrap;
		margin: 12px 0;
	}

	.img-comparison img {
		max-height: 320px;
		max-width: 320px;
		object-fit: contain;
		padding: 4px;
		box-sizing: border-box;
		box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
	}

	figure,
	figcaption,
	.wp-block-image,
	.wp-block-video {
		margin: 8px 0;
		width: 100%;
	}

	/* Table Style */
	table {
		width: 100%;
		border: 1px solid var(--accent);
		border-collapse: collapse;

		th {
			border: 1px solid var(--accent);
			font-weight: bold;
			padding: 4px 10px;
			text-align: center;
		}

		thead th {
			background-color: #d2e8ff;
		}

		tbody {
			background-color: #f5f1f5;
		}

		td {
			height: 50px;
			border: 1px solid var(--accent);
			text-align: left;
			padding: 4px;
		}
	}

	/* Code */
	code,
	kbd,
	samp {
		font-size: 0.95em;
	}

	pre code {
		font-size: 1.5rem;
	}
}

@media (max-width: 991px) {
	:where(.post-article__content, .editor-styles-wrapper .is-root-container, .editor-styles-wrapper .wp-block-post-content) {
		blockquote {
			margin-inline: 0;
		}
	}
}

@media (max-width: 767px) {
	:where(.post-article__content, .editor-styles-wrapper .is-root-container, .editor-styles-wrapper .wp-block-post-content) {
		table {
			display: block;
			overflow-x: auto;
			-webkit-overflow-scrolling: touch;
		}

		th,
		td {
			white-space: nowrap;
		}

		blockquote {
			padding: 0.875rem 1rem;
			margin: 1rem 0;
		}

		.img-comparison img {
			max-height: 260px;
			max-width: 260px;
		}
	}
}

@media (max-width: 478px) {
	:where(.post-article__content, .editor-styles-wrapper .is-root-container, .editor-styles-wrapper .wp-block-post-content) {
		:is(ul, ol) li {
			margin-left: 1.25rem;
		}

		.img-comparison {
			flex-direction: column;
		}

		.img-comparison img {
			max-height: 240px;
			max-width: 100%;
		}
	}
}
