/* ==========================================================================
   news.css — news card grid, used on front-page.php, home.php,
   archive.php, search.php.
   ========================================================================== */

.ff-news-feed__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: var(--ff-space-6);
}

.ff-news-feed__grid--archive {
	grid-template-columns: repeat(2, 1fr);
}

.ff-news-card {
	background: var(--ff-color-surface);
	border: 1px solid var(--ff-color-border);
	border-radius: var(--ff-radius-lg);
	overflow: hidden;
	display: flex;
	flex-direction: column;
	box-shadow: var(--ff-shadow-sm);
	transition: box-shadow 0.15s ease, transform 0.15s ease;
}
.ff-news-card:hover {
	box-shadow: var(--ff-shadow-md);
	transform: translateY(-2px);
}

.ff-news-card--lead {
	grid-column: span 2;
	flex-direction: row;
}
.ff-news-card--lead .ff-news-card__media { flex: 1; }
.ff-news-card--lead .ff-news-card__body { flex: 1; padding: var(--ff-space-6); }
.ff-news-card--lead .ff-news-card__title { font-size: 1.4rem; }

.ff-news-card__media { aspect-ratio: 16 / 10; overflow: hidden; background: var(--ff-color-paper); }
.ff-news-card__media img { width: 100%; height: 100%; object-fit: cover; }

.ff-news-card__body {
	padding: var(--ff-space-5, 1.25rem);
	display: flex;
	flex-direction: column;
	flex: 1;
}

.ff-news-card__topic {
	font-size: 0.72rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var(--ff-color-accent);
	margin-bottom: var(--ff-space-2);
}

.ff-news-card__title {
	font-size: 1.05rem;
	margin-bottom: var(--ff-space-2);
}
.ff-news-card__title a { color: var(--ff-color-ink); }
.ff-news-card__title a:hover { color: var(--ff-color-accent); }

.ff-news-card__excerpt {
	font-size: 0.9rem;
	color: var(--ff-color-text-muted);
	margin-bottom: var(--ff-space-3);
	flex: 1;
}

.ff-news-card__meta {
	font-size: 0.8rem;
	color: var(--ff-color-text-muted);
	display: flex;
	align-items: center;
	gap: var(--ff-space-1);
}
.ff-news-card__source a { color: var(--ff-color-text-muted); font-weight: 600; }
.ff-news-card__source a:hover { color: var(--ff-color-accent); }
.ff-news-card__dot { opacity: 0.5; }

@media (max-width: 980px) {
	.ff-news-feed__grid { grid-template-columns: repeat(2, 1fr); }
	.ff-news-card--lead { grid-column: span 2; flex-direction: column; }
}

@media (max-width: 640px) {
	.ff-news-feed__grid,
	.ff-news-feed__grid--archive { grid-template-columns: 1fr; }
	.ff-news-card--lead { grid-column: span 1; }
}
