/* Shared editorial cards used by home, archives, search and fallback listings. */
.post-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 28px;
}

.post-card {
	min-width: 0;
	overflow: hidden;
	border-radius: 10px;
	background: var(--pm-surface);
}

.post-card--large { grid-column: 1 / -1; }

.post-card__thumb {
	display: block;
	margin: 0;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	background: var(--pm-surface-strong);
}

.post-card--large .post-card__thumb { aspect-ratio: 2 / 1; }

.post-card__thumb img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.post-card__body {
	padding: 20px 22px 23px;
}

.post-card--large .post-card__body {
	padding: 24px 26px 27px;
}

.post-card__meta {
	margin: 0 0 8px;
	font-size: 0.78rem;
	line-height: 1.45;
	color: var(--pm-muted);
	text-transform: uppercase;
	letter-spacing: 0.06em;
}

.post-card__title {
	margin: 0;
	font-size: clamp(1.2rem, 2.3vw, 1.6rem);
	line-height: 1.25;
	letter-spacing: -0.025em;
}

.post-card--large .post-card__title { font-size: clamp(1.65rem, 3.3vw, 2.6rem); }
.post-card__title a { color: var(--pm-fg); text-decoration: none; }
.post-card__title a:hover { color: var(--pm-accent); }
.post-card__title a:visited { color: var(--pm-muted); }
.post-card__excerpt { margin: 12px 0 0; color: var(--pm-muted); }

@media (max-width: 620px) {
	.post-grid { grid-template-columns: 1fr; gap: 24px; }
	.post-card--large { grid-column: auto; }
	.post-card--large .post-card__thumb,
	.post-card__thumb { aspect-ratio: 16 / 10; }
	.post-card__body,
	.post-card--large .post-card__body { padding: 18px 18px 21px; }
}

/* Helpful 404 keeps visitors inside the site instead of ending the journey. */
.error-404__header {
	max-width: 700px;
	margin-bottom: 44px;
}

.error-404__code {
	margin: 0 0 8px;
	font-size: clamp(3.4rem, 10vw, 6.5rem);
	font-weight: 850;
	line-height: .95;
	letter-spacing: -.06em;
	color: var(--pm-accent);
}

.error-404__title { margin: 0 0 10px; font-size: clamp(1.8rem, 4vw, 2.6rem); }
.error-404__text { margin: 0 0 18px; color: var(--pm-muted); }
.error-404__home { font-weight: 750; text-decoration: none; }
.error-404__recent-title { margin: 0 0 20px; font-size: 1rem; }

/* Context heading for posts index, archive and search pages. */
.listing-header {
	max-width: 760px;
	margin: 0 0 42px;
}

.listing-header__title {
	margin: 0;
	font-size: clamp(2rem, 4vw, 3.25rem);
	line-height: 1.08;
	letter-spacing: -.04em;
}

.listing-header__description {
	margin-top: 12px;
	max-width: 62ch;
	color: var(--pm-muted);
}

.listing-header__description > :first-child { margin-top: 0; }
.listing-header__description > :last-child { margin-bottom: 0; }

/* Sticky remains distinct without adding another border color. */
.post-card.sticky { background: var(--pm-surface-strong); }

/* Editorial listing mobile type scale. */
@media (max-width: 620px) {
	.post-card__meta { font-size: .84rem; }
	.post-card__title { font-size: 1.4rem; }
	.post-card--large .post-card__title { font-size: clamp(1.9rem, 8vw, 2.45rem); }
	.post-card__excerpt { font-size: 1rem; }
	.listing-header__title { font-size: clamp(2.15rem, 9vw, 2.8rem); }
	.listing-header__description { font-size: 1rem; }
}
