/* MIM Category Grid — product categories as tall photo cards (Products → Specialities) */

.mim-w-category-grid .mim-cg__aside {
	font-family: var(--mim-font-mono);
	font-size: 12px;
	line-height: 1.3;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--mim-fg-muted);
}

.mim-w-category-grid .mim-cg__grid {
	--mim-cg-min: 300px;
	--mim-cg-h: clamp(300px, 40vh, 380px);
	--mim-cg-ov: var(--mim-navy);
	--mim-cg-ov-1: 15%;
	--mim-cg-ov-2: 45%;
	--mim-cg-ov-3: 94%;
	display: grid;
	gap: 12px;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, var(--mim-cg-min)), 1fr));
}

/* Card */
.mim-site .mim-w-category-grid .mim-cg__card,
.mim-w-category-grid .mim-cg__card {
	position: relative;
	display: block;
	height: var(--mim-cg-h);
	border-radius: var(--mim-radius-md);
	overflow: hidden;
	background: var(--mim-navy);
	color: #fff;
	isolation: isolate;
	text-decoration: none;
}
.mim-site .mim-w-category-grid .mim-cg__card:hover { color: #fff; }
.mim-w-category-grid .mim-cg__card[data-mim-search-hidden] { display: none; }

.mim-w-category-grid .mim-cg__media { position: absolute; inset: 0; display: block; overflow: hidden; background: #ffffff; }
.mim-site .mim-w-category-grid .mim-cg__media img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: cover;
	object-position: center;
	padding: 0;
	box-sizing: border-box;
	transition: transform .8s var(--mim-ease);
}
/* Product cut-outs (category thumbnails, or "Image fit: contain") are shown whole. */
.mim-site .mim-w-category-grid .mim-cg__card.is-contain .mim-cg__media img {
	object-fit: contain;
	padding: 24px 20px 48px;
}
.mim-w-category-grid.mim-cg--zoom .mim-cg__card:hover .mim-cg__media img,
.mim-w-category-grid.mim-cg--zoom .mim-cg__card:focus-visible .mim-cg__media img { transform: scale(1.04); }

.mim-w-category-grid .mim-cg__overlay {
	position: absolute;
	inset: 0;
	pointer-events: none;
	background: linear-gradient(180deg,
		color-mix(in srgb, var(--mim-cg-ov) var(--mim-cg-ov-1), transparent) 0%,
		color-mix(in srgb, var(--mim-cg-ov) var(--mim-cg-ov-2), transparent) 45%,
		color-mix(in srgb, var(--mim-cg-ov) var(--mim-cg-ov-3), transparent) 100%);
}

.mim-w-category-grid .mim-cg__body {
	position: absolute;
	inset: 0;
	display: flex;
	flex-direction: column;
	gap: 10px;
	padding: clamp(18px, 2vw, 26px);
	pointer-events: none;
}
.mim-w-category-grid .mim-cg__top { display: flex; justify-content: space-between; align-items: center; gap: 10px; }
.mim-w-category-grid .mim-cg__num {
	font-family: var(--mim-font-mono);
	font-size: 12px;
	letter-spacing: .1em;
	color: var(--mim-sky);
}
.mim-w-category-grid .mim-cg__pill {
	font-family: var(--mim-font-mono);
	font-size: 11px;
	line-height: 1.3;
	letter-spacing: .08em;
	text-transform: uppercase;
	padding: 5px 10px;
	border-radius: 999px;
	background: rgba(20, 40, 74, .6);
	border: 1px solid rgba(255, 255, 255, .3);
	color: #fff;
	white-space: nowrap;
}
.mim-w-category-grid .mim-cg__bottom {
	margin-top: auto;
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	gap: 16px;
}
.mim-w-category-grid .mim-cg__text { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.mim-site .mim-w-category-grid .mim-cg__title {
	margin: 0;
	font-family: var(--mim-font);
	font-size: clamp(24px, 2.2vw, 32px);
	line-height: 1.05;
	font-weight: 800;
	font-stretch: 88%;
	letter-spacing: -.015em;
	color: #fff;
	overflow-wrap: break-word;
}
.mim-site .mim-w-category-grid .mim-cg__desc {
	margin: 0;
	font-size: 14px;
	line-height: 1.5;
	color: var(--mim-soft-dark);
	text-wrap: pretty;
	display: -webkit-box;
	-webkit-line-clamp: 4;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.mim-w-category-grid .mim-cg__arrow {
	flex: none;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background: #fff;
	color: var(--mim-navy);
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: var(--mim-font-mono);
	font-size: 15px;
	transition: background-color .25s ease, color .25s ease, transform .25s ease;
}
.mim-w-category-grid .mim-cg__card:hover .mim-cg__arrow,
.mim-w-category-grid .mim-cg__card:focus-visible .mim-cg__arrow { background: var(--mim-sky); color: var(--mim-navy); }
.mim-w-category-grid .mim-cg__card:focus-visible { outline: 2px solid var(--mim-teal); outline-offset: 3px; }

/* Placeholder (category without image) */
.mim-w-category-grid .mim-cat-ph {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	background:
		radial-gradient(120% 90% at 85% 10%, rgba(92, 198, 223, .28) 0%, rgba(92, 198, 223, 0) 55%),
		linear-gradient(160deg, var(--mim-card-dark) 0%, var(--mim-navy) 100%);
}
.mim-w-category-grid .mim-cat-ph::before {
	content: "";
	position: absolute;
	inset: 0;
	background-image: repeating-linear-gradient(135deg, rgba(255, 255, 255, .045) 0 1px, transparent 1px 14px);
}
.mim-site .mim-w-category-grid .mim-cat-ph__mark { position: relative; width: 72px; height: auto; opacity: .22; transform: translateY(-30%); }

/* Search "no match" box */
.mim-w-category-grid .mim-cg__empty {
	display: flex;
	flex-direction: column;
	gap: 12px;
	margin-top: 12px;
	background: var(--mim-light);
	border-radius: var(--mim-radius-md);
	padding: clamp(24px, 3vw, 40px);
}
.mim-w-category-grid .mim-cg__empty[hidden] { display: none; }
.mim-w-category-grid .mim-cg__grid.is-empty + .mim-cg__empty { margin-top: 0; }
.mim-w-category-grid .mim-cg__empty-title { font-size: 24px; line-height: 1.15; font-weight: 800; font-stretch: 88%; color: var(--mim-navy); }
.mim-site .mim-w-category-grid .mim-cg__empty-text { margin: 0; font-size: 15px; line-height: normal; color: var(--mim-muted); }
.mim-w-category-grid .mim-cg__empty-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 8px; }
.mim-w-category-grid .mim-cg__empty .mim-btn { min-height: 0; padding: 10px 16px; font-size: 13px; gap: 8px; }
.mim-w-category-grid .mim-cg__empty .mim-btn--outline { padding: 8.5px 16px; }
.mim-w-category-grid .mim-cg__empty .mim-btn--has-circle { padding-left: 4px; }
.mim-w-category-grid.mim-bg--light .mim-cg__empty { background: var(--mim-white); }
.mim-w-category-grid.mim-bg--navy .mim-cg__empty,
.mim-w-category-grid.mim-bg--custom-dark .mim-cg__empty { background: var(--mim-card-dark); }
.mim-w-category-grid.mim-bg--navy .mim-cg__empty-title,
.mim-w-category-grid.mim-bg--custom-dark .mim-cg__empty-title { color: #fff; }
.mim-w-category-grid.mim-bg--navy .mim-cg__empty-text,
.mim-w-category-grid.mim-bg--custom-dark .mim-cg__empty-text { color: var(--mim-lead-dark); }

.mim-w-category-grid .mim-cg__none { padding: 24px; border: 1px dashed var(--mim-line); border-radius: var(--mim-radius-sm); color: var(--mim-fg-muted); font-size: 14px; }

@media (max-width: 640px) {
	.mim-w-category-grid .mim-cg__grid {
		--mim-cg-min: 100%;
		gap: 12px;
	}
	.mim-site .mim-w-category-grid .mim-cg__card,
	.mim-w-category-grid .mim-cg__card {
		height: 280px;
	}
	.mim-w-category-grid .mim-cg__top {
		flex-wrap: wrap;
		gap: 8px;
	}
	.mim-site .mim-w-category-grid .mim-cg__title {
		font-size: 22px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.mim-w-category-grid.mim-cg--zoom .mim-cg__card:hover .mim-cg__media img { transform: none; }
}
