/* Post listing grid used by front page and fallback listings. */
.post-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 34px 28px;
}

.post-card {
	min-width: 0;
	border-top: 1px solid var(--pm-border);
	padding-top: 18px;
}

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

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

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

.post-card__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform .25s ease;
}

.post-card__thumb:hover img { transform: scale(1.02); }

.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-text); text-decoration: none; }
.post-card__title a:hover { color: var(--pm-purple-deep); }
.post-card__excerpt { margin: 12px 0 0; color: #4d4d4d; }

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

@media (prefers-reduced-motion: reduce) {
	.post-card__thumb img { transition: none; }
}

/* 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;
	background: linear-gradient(90deg, var(--pm-orange), var(--pm-purple));
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}

.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; }

/* WordPress sticky-post state. */
.post-card.sticky { border-top-color: var(--pm-purple); }
