/**
 * Shared article/product card primitives.
 * Loaded only on contexts that render these cards.
 */

.kt-card-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 13rem), 1fr));
	gap: clamp(0.9rem, 2vw, 1.35rem);
}

.kt-card {
	min-width: 0;
	overflow: hidden;
	background: #fff;
	border: 1px solid var(--kt-color-border);
	border-radius: var(--kt-radius-m);
	box-shadow: var(--kt-shadow-card);
	transition: transform var(--kt-transition-fast), box-shadow var(--kt-transition-fast);
}

.kt-card:hover { transform: translateY(-0.25rem); box-shadow: var(--kt-shadow-float); }
.kt-card__media { display: block; aspect-ratio: 16 / 10; overflow: hidden; background: #ececf3; }
.kt-product-card .kt-card__media { aspect-ratio: 1 / 1; }
.kt-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 300ms ease; }
.kt-product-card .kt-card__media img { padding: 0.5rem; object-fit: contain; }
.kt-card:hover .kt-card__media img { transform: scale(1.025); }
.kt-card__body { display: grid; gap: 0.75rem; padding: 1rem; }
.kt-card__body h3 { font-size: 1rem; line-height: 1.65; }
.kt-card__body h3 a { color: var(--kt-color-ink); text-decoration: none; }
.kt-card__body time { color: var(--kt-color-muted); font-size: 0.82rem; }
.kt-product-card__price { min-height: 1.75rem; color: var(--kt-color-brand-strong); font-weight: 700; }
.kt-product-card__link { justify-self: start; font-size: 0.9rem; font-weight: 700; }

@media (prefers-reduced-motion: reduce) {
	.kt-card,
	.kt-card__media img { transition: none; }
	.kt-card:hover { transform: none; }
	.kt-card:hover .kt-card__media img { transform: none; }
}
