.mmdls-categories {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(15rem, 100%), 1fr));
	gap: var(--wp--preset--spacing--30, 1.25rem);
	padding: 0;
	list-style: none;
}

main .mmdls-categories {
	margin-block-start: var(--wp--preset--spacing--50, 2.5rem);
}

.mmdls-categories__card {
	position: relative;
	display: flex;
	align-items: flex-end;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	border-radius: 1rem;
	background: hsl(var(--mmdls-hue) 45% 88%);
	color: hsl(var(--mmdls-hue) 40% 20%);
	text-decoration: none;
	isolation: isolate;
}

.mmdls-categories__initial {
	position: absolute;
	top: -0.15em;
	right: 0.1em;
	z-index: -1;
	font-size: 9rem;
	font-weight: 700;
	line-height: 1;
	opacity: 0.15;
	transition: transform 0.4s ease;
}

.mmdls-categories__body {
	display: flex;
	flex-direction: column;
	gap: 0.15rem;
	padding: 1.1rem 1.25rem;
}

.mmdls-categories__name {
	font-size: var(--wp--preset--font-size--large, 1.5rem);
	font-weight: 600;
	line-height: 1.15;
}

.mmdls-categories__count {
	font-size: var(--wp--preset--font-size--small, 0.9rem);
	opacity: 0.85;
}

.mmdls-categories__card:hover .mmdls-categories__initial,
.mmdls-categories__card:focus-visible .mmdls-categories__initial {
	transform: scale(1.08) rotate(-4deg);
}

.mmdls-categories__card:focus-visible {
	outline: 3px solid var(--wp--preset--color--contrast, #111);
	outline-offset: 3px;
}

@media (max-width: 600px) {
	.mmdls-categories {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 0.75rem;
	}

	.mmdls-categories__card {
		aspect-ratio: 1;
		border-radius: 0.75rem;
	}

	.mmdls-categories__body {
		padding: 0.75rem 0.85rem;
	}

	.mmdls-categories__name {
		font-size: 1.05rem;
	}

	.mmdls-categories__count {
		font-size: 0.8rem;
	}

	.mmdls-categories__initial {
		font-size: 6rem;
	}
}

@media (prefers-reduced-motion: reduce) {
	.mmdls-categories__initial {
		transition: none;
	}
}
