/**
 * ETS-PRO category navigation grid (shop + category archives).
 *
 * Self-contained, theme-agnostic styles scoped under .ets-pro-category-grid.
 * Clean, neutral catalog look. The accent (hover/focus) inherits the theme's
 * primary brand colour when available, falling back to a neutral graphite, so
 * it adapts to the shop without hardcoding a brand colour. Override any token
 * by redefining the custom properties on .ets-pro-category-grid.
 */

.ets-pro-category-grid {
	--etscg-accent: var(--primary-color, var(--gdlr-primary-color, #1f2937));
	--etscg-surface: #ffffff;
	--etscg-surface-soft: #f5f6f7;
	--etscg-border: #e6e7e9;
	--etscg-text: #1f2430;
	--etscg-text-muted: #767b86;
	--etscg-shadow: 0 1px 2px rgba(17, 24, 39, 0.04), 0 4px 12px rgba(17, 24, 39, 0.06);
	--etscg-shadow-hover: 0 6px 16px rgba(17, 24, 39, 0.1), 0 16px 32px rgba(17, 24, 39, 0.12);
	--etscg-radius: 10px;

	margin: 2.5rem 0;
}

.ets-pro-category-grid__list {
	display: grid;
	grid-template-columns: repeat(4, 1fr); /* 4 per row on desktop. */
	gap: 1rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.ets-pro-category-grid__item {
	margin: 0;
	padding: 0;
	list-style: none;
}

.ets-pro-category-grid__link {
	display: flex;
	flex-direction: column;
	height: 100%;
	overflow: hidden;
	background: var(--etscg-surface);
	border: 1px solid var(--etscg-border);
	border-radius: var(--etscg-radius);
	box-shadow: var(--etscg-shadow);
	text-decoration: none;
	color: var(--etscg-text);
	transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
}

.ets-pro-category-grid__link:hover,
.ets-pro-category-grid__link:focus-visible {
	transform: translateY(-2px);
	box-shadow: var(--etscg-shadow-hover);
	border-color: var(--etscg-accent);
	color: var(--etscg-text);
}

.ets-pro-category-grid__link:focus-visible {
	outline: 2px solid var(--etscg-accent);
	outline-offset: 2px;
}

/* Image tiles */
.ets-pro-category-grid__media {
	display: block;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	background: var(--etscg-surface-soft);
}

.ets-pro-category-grid__img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.3s ease;
}

.ets-pro-category-grid__link:hover .ets-pro-category-grid__img {
	transform: scale(1.04);
}

/* Tile body (name + count) */
.ets-pro-category-grid__body {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	gap: 0.2rem;
	padding: 0.85rem 1rem;
}

.ets-pro-category-grid__name {
	font-weight: 600;
	font-size: 1rem;
	line-height: 1.3;
	color: var(--etscg-text);
}

.ets-pro-category-grid__link:hover .ets-pro-category-grid__name,
.ets-pro-category-grid__link:focus-visible .ets-pro-category-grid__name {
	color: var(--etscg-accent);
}

.ets-pro-category-grid__count {
	font-size: 0.8125rem;
	color: var(--etscg-text-muted);
}

/* Text-only tiles (no image): give the body a soft surface and more presence. */
.ets-pro-category-grid__item.is-text-only .ets-pro-category-grid__body {
	flex: 1 1 auto;
	justify-content: center;
	min-height: 96px;
	background: var(--etscg-surface-soft);
}

.ets-pro-category-grid__item.is-text-only .ets-pro-category-grid__name {
	font-size: 1.0625rem;
}

/* Tablet: three per row */
@media (max-width: 768px) {
	.ets-pro-category-grid__list {
		grid-template-columns: repeat(3, 1fr);
		gap: 0.75rem;
	}
}

/* Mobile: two columns, compact */
@media (max-width: 480px) {
	.ets-pro-category-grid {
		margin: 1.75rem 0;
		padding: 0 16px; /* Keep tiles off the screen edge. */
	}

	.ets-pro-category-grid__list {
		grid-template-columns: repeat(2, 1fr);
		gap: 0.625rem;
	}

	.ets-pro-category-grid__body {
		padding: 0.6rem 0.7rem;
	}

	.ets-pro-category-grid__name {
		font-size: 0.9375rem;
	}

	.ets-pro-category-grid__item.is-text-only .ets-pro-category-grid__body {
		min-height: 76px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.ets-pro-category-grid__link,
	.ets-pro-category-grid__img {
		transition: none;
	}
}
