.blog-page,
.blog-post-page {
	inline-size: min(100%, 68rem);
	margin-inline: auto;
	color: var(--theme-text);
}

.blog-hero,
.blog-post-header {
	margin-block-end: 1.4rem;
	border: 1px solid var(--theme-line);
	border-block-start: 0.3rem solid var(--theme-accent);
	background: var(--theme-surface);
	padding: clamp(1.35rem, 4vw, 2.4rem);
	box-shadow: var(--theme-shadow);
}

.blog-hero h1,
.blog-post-header h1 {
	margin-block-end: 0.65rem;
	color: var(--theme-text);
	font-size: clamp(2rem, 4vw, 3.4rem);
}

.blog-hero p,
.blog-post-header p {
	color: var(--theme-muted);
	font-size: 1.05rem;
}

.blog-kicker,
.blog-kicker-category,
.blog-kicker-page {
	display: inline-flex;
	inline-size: fit-content;
	margin-block-end: 0.8rem;
	border: 1px solid var(--theme-line-dark);
	background: var(--theme-surface-muted);
	color: var(--theme-accent-dark);
	padding: 0.35rem 0.6rem;
	font-size: .875rem;
	font-weight: 800;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.blog-category-filter {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	margin-block-end: 1.4rem;
	border: 1px solid var(--theme-line);
	background: var(--theme-surface-muted);
	padding: 1rem;
}

.blog-category-filter-text {
	display: grid;
	gap: 0.2rem;
}

.blog-category-filter-text span,
.blog-meta,
.blog-file-meta,
.blog-post-byline,
.blog-post-labels {
	color: var(--theme-muted);
	font-size: .875rem;
}

.blog-category-select-wrap {
	position: relative;
	min-inline-size: min(18rem, 100%);
}

.blog-post-list {
	display: grid;
	gap: 1rem;
}

.blog-card {
	display: grid;
	grid-template-columns: minmax(10rem, 13.5rem) minmax(0, 1fr);
	gap: 1.2rem;
	border: 1px solid var(--theme-line);
	background: var(--theme-surface);
	padding: 1rem;
	box-shadow: var(--theme-shadow);
	transition: border-color 160ms ease, transform 160ms ease;
}

.blog-card:hover {
	border-color: var(--theme-accent);
	transform: translateY(-1px);
}

.blog-card-image {
	display: block;
	min-block-size: 9rem;
	overflow: hidden;
	border: 1px solid var(--theme-line-dark);
	background: var(--theme-dark-soft);
}

.blog-card-image img {
	inline-size: 100%;
	block-size: 100%;
	object-fit: cover;
}

.blog-card-body {
	min-inline-size: 0;
}

.blog-card h2 {
	margin-block-end: 0.55rem;
	font-size: clamp(1.35rem, 2.2vw, 1.8rem);
}

.blog-card h2 a,
.blog-read-more,
.blog-meta a,
.blog-downloads a,
.blog-related a,
.blog-adjacent a {
	color: var(--theme-accent-dark);
	font-weight: 750;
	text-decoration-color: color-mix(in srgb, var(--theme-accent) 50%, transparent);
}

.blog-empty,
.blog-downloads,
.blog-related,
.blog-adjacent {
	margin-block-start: 1.2rem;
	border: 1px solid var(--theme-line);
	background: var(--theme-surface);
	padding: 1.2rem;
	box-shadow: var(--theme-shadow);
}

.blog-pagination {
	display: flex;
	gap: 0.6rem;
	flex-wrap: wrap;
	margin-block-start: 1.4rem;
}

.blog-pagination a,
.blog-pagination span {
	border: 1px solid var(--theme-line-dark);
	background: var(--theme-surface);
	color: var(--theme-accent-dark);
	padding: 0.45rem 0.75rem;
	text-decoration: none;
}

.blog-pagination a:hover,
.blog-pagination .active {
	border-color: var(--theme-accent-dark);
	background: var(--theme-accent-dark);
	color: var(--cms-color-on-accent);
}

.blog-post-page {
	inline-size: min(100%, 59rem);
}

.blog-featured-image {
	float: inline-end;
	inline-size: min(42%, 22rem);
	margin: 0 0 1.25rem 1.5rem;
	border: 1px solid var(--theme-line-dark);
	background: var(--theme-dark);
	padding: 0.3rem;
}

.blog-featured-image img {
	inline-size: 100%;
}

.blog-article {
	display: flow-root;
	border: 1px solid var(--theme-line);
	background: var(--theme-surface);
	padding: clamp(1.25rem, 4vw, 2.5rem);
	font-size: 1.03rem;
	line-height: 1.78;
	box-shadow: var(--theme-shadow);
}

.blog-article h2,
.blog-article h3,
.blog-article h4 {
	color: var(--theme-accent-dark);
}

.blog-adjacent {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1rem;
}

.blog-adjacent > :last-child {
	text-align: end;
}

.blog-json-ld {
	display: none;
}

@media (max-width: 44rem) {
	.blog-category-filter {
		align-items: stretch;
		flex-direction: column;
	}

	.blog-category-select-wrap,
	.blog-card {
		min-inline-size: 0;
		inline-size: 100%;
	}

	.blog-card {
		grid-template-columns: 1fr;
	}

	.blog-featured-image {
		float: none;
		inline-size: 100%;
		margin: 0 0 1.2rem;
	}

	.blog-adjacent {
		grid-template-columns: 1fr;
	}

	.blog-adjacent > :last-child {
		text-align: start;
	}
}
