/* Defensive constraints for small screens, long Khmer text, and plugin content. */
html {
	max-width: 100%;
	overflow-x: clip;
}
body {
	max-width: 100%;
	overflow-x: hidden;
}
img, video, canvas, svg {
	max-width: 100%;
	height: auto;
}
button, input, textarea, select {
	max-width: 100%;
}
.header-main {
	position: relative;
	grid-template-columns: auto minmax(0, 1fr) auto;
	gap: clamp(22px, 3vw, 52px);
	min-height: 92px;
}
.header-main .branding {
	min-width: 0;
}
.header-main .text-logo {
	display: block;
	max-width: 260px;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	color: var(--khmerline-deep-brown);
	font-size: clamp(22px, 2vw, 30px);
	letter-spacing: -1px;
}
[data-theme="dark"] .header-main .text-logo {
	color: var(--khmerline-text);
}
.header-main .primary-navigation {
	min-width: 0;
	border: 0;
}
.header-main .nav-menu {
	justify-content: center;
	gap: clamp(14px, 1.8vw, 30px);
	overflow-x: auto;
	scrollbar-width: none;
}
.header-main .nav-menu::-webkit-scrollbar {
	display: none;
}
.header-main .nav-menu a {
	padding: 30px 0 27px;
}
.header-actions {
	flex: none;
}
h1, h2, h3, h4, h5, h6,
.nav-menu a, .breaking-scroll a,
.khmerline-entry-content > * {
	overflow-wrap: anywhere;
}
.khmerline-entry-content pre {
	max-width: 100%;
	overflow-x: auto;
}
.khmerline-entry-content iframe,
.khmerline-entry-content embed,
.khmerline-entry-content object,
.khmerline-entry-content ins {
	max-width: 100%;
}
.khmerline-entry-content > iframe,
.khmerline-entry-content > embed,
.khmerline-entry-content > object,
.khmerline-entry-content > ins {
	display: block;
	margin: 24px auto;
}
.khmerline-entry-content ins iframe {
	display: block;
	max-width: 100%;
	margin-right: auto;
	margin-left: auto;
}
.article-featured {
	text-align: center;
}
.article-featured img,
.entry-content img {
	display: block;
	width: auto;
	max-width: 100%;
	height: auto;
	max-height: 78vh;
	margin-right: auto;
	margin-left: auto;
	object-fit: contain;
}
.entry-content figure,
.entry-content .wp-block-image {
	max-width: 100%;
	margin-right: auto;
	margin-left: auto;
}
.entry-content .alignwide,
.entry-content .alignfull {
	width: 100%;
	max-width: 100%;
	margin-right: 0;
	margin-left: 0;
}

/* Single article: narrow left news rail and readable main column. */
.single-layout {
	display: grid;
	grid-template-columns: minmax(210px, 270px) minmax(0, 780px);
	justify-content: center;
	gap: clamp(32px, 5vw, 68px);
	align-items: start;
}
.single-layout-main,
.single-layout .single-article {
	min-width: 0;
	width: 100%;
}
.article-sidebar {
	position: sticky;
	top: 28px;
	padding-right: 28px;
	border-right: 1px solid var(--khmerline-border);
}
.site-header.is-sticky + .site-main .article-sidebar {
	top: 150px;
}
.article-sidebar .section-title {
	font-size: 22px;
	margin-bottom: 14px;
}
.article-sidebar-list article {
	padding: 14px 0;
	border-bottom: 1px solid var(--khmerline-border-light);
}
.article-sidebar-list time {
	display: block;
	margin-bottom: 4px;
	color: var(--khmerline-gold);
	font: 500 13px/1.4 Inter, Arial, sans-serif;
}
.article-sidebar-list h3 {
	margin: 0;
	font: 500 16px/1.65 Battambang, sans-serif;
}

/* Clean article content: bullets, numbers, and blockquotes. */
.entry-content {
	color: var(--khmerline-text);
}
.entry-content ul,
.entry-content ol {
	margin: 12px 0 16px 0 !important;
	padding-left: 22px !important;
	line-height: 1.75 !important;
}
.entry-content li {
	margin: 8px 0 !important;
}
.entry-content ul {
	list-style: disc !important;
}
.entry-content ol {
	list-style: decimal !important;
}
.entry-content ul > li::marker,
.entry-content ol > li::marker {
	color: var(--khmerline-brown);
	font-weight: 900;
}
.entry-content blockquote {
	margin: 16px 0 !important;
	padding: 14px 14px 14px 16px !important;
	border-left: 4px solid var(--khmerline-gold) !important;
	background: color-mix(in srgb, var(--khmerline-gold-light) 10%, transparent) !important;
	border-radius: 12px !important;
	color: var(--khmerline-text) !important;
}
.entry-content blockquote::before,
.entry-content blockquote::after {
	content: none !important;
}
.entry-content blockquote p {
	margin: 0 !important;
	line-height: 1.75 !important;
}

/* Category archives: visual grid on larger screens. */
.category .archive-layout {
	max-width: var(--container);
}
.category .archive-list {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 34px 28px;
}
.category .archive-item {
	display: block;
	min-width: 0;
	padding: 0 0 24px;
}
.category .archive-thumb {
	display: block;
	margin-bottom: 16px;
	overflow: hidden;
	background: var(--khmerline-background-soft);
}
.category .archive-thumb img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 16 / 9;
	object-fit: cover;
}
.category .archive-item h2 {
	font-size: 21px;
}
.category .archive-excerpt {
	display: -webkit-box;
	overflow: hidden;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
}
.category .pagination {
	grid-column: 1 / -1;
}

@media (max-width: 1024px) {
	.category .archive-list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}
@media (max-width: 768px) {
	.container {
		width: min(var(--container), calc(100% - 32px));
	}
	.header-main {
		grid-template-columns: minmax(0, 1fr) auto;
		min-height: 68px;
		gap: 10px;
	}
	.header-main .text-logo {
		max-width: min(52vw, 220px);
		font-size: 22px;
	}
	.header-main .primary-navigation {
		position: absolute;
		top: 100%;
		right: 0;
		left: 0;
		z-index: 110;
		background: var(--khmerline-background);
		border-bottom: 1px solid var(--khmerline-gold);
	}
	.header-main .nav-menu a {
		padding: 10px;
	}
	.branding, .breaking-scroll,
	.lead-grid, .latest-popular,
	.lead-primary, .lead-secondary,
	.latest-column, .popular-column {
		min-width: 0;
	}
	.primary-navigation,
	.primary-navigation .container,
	.nav-menu {
		max-width: 100%;
	}
	.khmerline-entry-content > iframe,
	.khmerline-entry-content > embed,
	.khmerline-entry-content > object,
	.khmerline-entry-content > ins {
		margin-top: 18px;
		margin-bottom: 18px;
	}
	.article-featured img,
	.entry-content img {
		max-height: 68vh;
	}
	.site-main {
		padding-bottom: 20px;
	}
	.homepage-section:last-child {
		margin-bottom: 0;
		padding-bottom: 22px;
	}
	.prefooter {
		gap: 12px;
		padding-top: 18px;
		padding-bottom: 18px;
	}
	.social-links,
	.useful-links {
		gap: 6px 18px;
		line-height: 1.55;
	}
	.site-footer {
		padding: 20px 0;
	}
	.footer-inner {
		position: relative;
		gap: 10px;
	}
	.footer-brand img {
		max-height: 34px;
	}
	.footer-inner p {
		line-height: 1.5;
	}
	.footer-inner ul {
		gap: 6px 16px;
	}
	.single-layout {
		display: flex;
		flex-direction: column;
		gap: 42px;
	}
	.single-layout-main {
		order: 1;
	}
	.article-sidebar {
		position: static;
		order: 2;
		width: 100%;
		padding: 30px 0 0;
		border-right: 0;
		border-top: 1px solid var(--khmerline-border);
	}
	.category .archive-list {
		display: block;
	}
	.category .archive-item.has-post-thumbnail {
		display: grid;
		grid-template-columns: minmax(108px, 36%) minmax(0, 1fr);
		gap: 14px;
		padding: 16px 0;
	}
	.category .archive-thumb {
		margin: 0;
	}
	.category .archive-thumb img {
		height: 100%;
		min-height: 104px;
		aspect-ratio: 4 / 3;
	}
	.category .archive-item h2 {
		margin-top: 2px;
		font-size: 17px;
		line-height: 1.5;
	}
	.category .archive-item .khmerline-category,
	.category .archive-excerpt {
		display: none;
	}
	.category .archive-item .post-meta {
		margin-top: 7px;
		font-size: 12px;
	}
	.back-to-top {
		position: absolute;
		right: 0;
		top: 0;
	}
}

@media (max-width: 430px) {
	.prefooter {
		padding-top: 14px;
		padding-bottom: 14px;
	}
	.useful-links {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		width: 100%;
		gap: 5px 14px;
		font-size: 13px;
	}
	.footer-inner {
		padding-right: 54px;
	}
}
