

.blog-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--sp-6);
}
@media (min-width: 600px)  { .blog-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1000px) { .blog-grid { grid-template-columns: repeat(3, 1fr); } }

.blog-card {
	position: relative;
	background: var(--raised);
	border: 1px solid var(--border);
	border-radius: var(--r-xl);
	overflow: hidden;
	transition: transform var(--dur) var(--ease), border-color var(--dur), box-shadow var(--dur);
}
.blog-card:hover {
	transform: translateY(-4px);
	border-color: var(--border-strong);
	box-shadow: var(--shadow-md);
}

.blog-card__link {
	display: flex;
	flex-direction: column;
	height: 100%;
	color: var(--text);
	text-decoration: none;
}

.blog-card__media {
	position: relative;
	aspect-ratio: 16 / 9;
	background: var(--bg2);
	display: grid;
	place-items: center;
	overflow: hidden;
}
.blog-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.blog-card__media-fallback {
	color: var(--brand-400);
	opacity: 0.55;
}

.blog-card__body {
	display: flex;
	flex-direction: column;
	gap: var(--sp-3);
	padding: var(--sp-5);
	flex: 1;
}

.blog-card__meta {
	display: flex;
	align-items: center;
	gap: var(--sp-3);
	font-family: var(--font-mono);
	font-size: var(--fs-xs);
	color: var(--text-muted);
	letter-spacing: 0.04em;
}
.blog-card__badge {
	display: inline-flex;
	align-items: center;
	gap: 0.35em;
	color: var(--brand-400);
}
.blog-card__badge svg { width: 14px; height: 14px; }

.blog-card__title {
	font-family: var(--font-display);
	font-size: var(--fs-xl);
	line-height: 1.25;
	margin: 0;
}
.blog-card__excerpt {
	color: var(--text-2);
	font-size: var(--fs-sm);
	line-height: 1.6;
	margin: 0;
}
.blog-card__more { margin-top: auto; }
.blog-card:hover .blog-card__more { color: var(--brand-300); }
.blog-card:hover .blog-card__more svg { transform: translateX(4px); }
