.mod_cat_img_grid { box-sizing: border-box; width: 100%; }
.mod_cat_img_grid.layout-grid {
	display: grid;
	grid-template-columns: repeat(var(--mci-columns, 4), minmax(0, 1fr));
	gap: var(--mci-gap, 20px);
}
.mod_cat_img_card { position: relative; min-width: 0; overflow: hidden; box-sizing: border-box; }
.mod_cat_img_link { position: relative; display: block; color: inherit; text-decoration: none; overflow: hidden; }
.mod_cat_img_media { display: block; width: 100%; overflow: hidden; aspect-ratio: 4 / 3; background: #f3f4f6; }
.mod_cat_img_media img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.mod_cat_img_title { display: block; padding-top: 12px; font-size: 1.1rem; font-weight: 700; line-height: 1.25; }
.mod_cat_img_link:hover .mod_cat_img_media img,
.mod_cat_img_link:focus-visible .mod_cat_img_media img { transform: scale(1.03); }

.mod_cat_img_grid.layout-carousel { position: relative; }
.mod_cat_img_viewport { width: 100%; overflow: hidden; }
.mod_cat_img_track {
	display: flex;
	gap: var(--mci-gap, 20px);
	transition: transform .45s ease;
	will-change: transform;
	touch-action: pan-y;
}
.layout-carousel .mod_cat_img_card {
	flex: 0 0 calc((100% - (var(--mci-columns, 4) - 1) * var(--mci-gap, 20px)) / var(--mci-columns, 4));
}
.mod_cat_img_arrow {
	position: absolute;
	top: 50%;
	z-index: 3;
	width: 42px;
	height: 42px;
	border: 0;
	border-radius: 50%;
	background: rgba(15, 23, 42, .86);
	color: #fff;
	font-size: 28px;
	line-height: 1;
	cursor: pointer;
	transform: translateY(-50%);
}
.mod_cat_img_prev { left: 10px; }
.mod_cat_img_next { right: 10px; }
.mod_cat_img_arrow:disabled { opacity: .35; cursor: default; }
.mod_cat_img_dots { display: flex; justify-content: center; gap: 8px; margin-top: 18px; }
.mod_cat_img_dot { width: 9px; height: 9px; padding: 0; border: 0; border-radius: 50%; background: #cbd5e1; cursor: pointer; }
.mod_cat_img_dot.is-active { background: #334155; }

@media (max-width: 980px) {
	.mod_cat_img_grid.layout-grid { grid-template-columns: repeat(var(--mci-columns-tablet, 2), minmax(0, 1fr)); }
	.layout-carousel .mod_cat_img_card { flex-basis: calc((100% - (var(--mci-columns-tablet, 2) - 1) * var(--mci-gap, 20px)) / var(--mci-columns-tablet, 2)); }
}
@media (max-width: 560px) {
	.mod_cat_img_grid.layout-grid { grid-template-columns: repeat(var(--mci-columns-mobile, 1), minmax(0, 1fr)); }
	.layout-carousel .mod_cat_img_card { flex-basis: calc((100% - (var(--mci-columns-mobile, 1) - 1) * var(--mci-gap, 20px)) / var(--mci-columns-mobile, 1)); }
	.mod_cat_img_arrow { width: 38px; height: 38px; }
}
@media (prefers-reduced-motion: reduce) {
	.mod_cat_img_track, .mod_cat_img_media img { transition: none; }
}

/* v2.6: subcategory and no-image states */
.mod_cat_img_card.has-no-image .mod_cat_img_link { min-height: 96px; display: flex; align-items: flex-end; }
.mod_cat_img_card.has-no-image .mod_cat_img_title { width: 100%; padding: 18px 0 0; }


/* v2.7: Group by parent */
.mod_cat_img_groups { display: grid; gap: clamp(34px, 5vw, 64px); width: 100%; }
.mod_cat_img_group { min-width: 0; }
.mod_cat_img_group_title { margin: 0 0 20px; font-size: clamp(1.45rem, 2vw, 2rem); line-height: 1.15; font-weight: 800; }
.mod_cat_img_group_title a { color: inherit; text-decoration: none; }
.mod_cat_img_group_title a:hover, .mod_cat_img_group_title a:focus-visible { text-decoration: underline; text-underline-offset: 4px; }


/* v2.8: e-shop parent category cards */
.mod_cat_img_parent_card {
	background: var(--mci-card-bg, transparent);
	border: 1px solid rgba(15, 23, 42, .10);
	border-radius: 14px;
	padding: 0 0 20px;
}
.mod_cat_img_parent_main { display: block; color: inherit; text-decoration: none; }
.mod_cat_img_parent_media { aspect-ratio: 4 / 3; border-radius: 14px 14px 0 0; }
.mod_cat_img_parent_title { padding: 16px 18px 0; font-size: 1.18rem; }
.mod_cat_img_parent_card.has-no-image .mod_cat_img_parent_main { min-height: auto; }
.mod_cat_img_parent_card.has-no-image .mod_cat_img_parent_title { padding-top: 20px; }
.mod_cat_img_sublist { list-style: none; margin: 14px 18px 0; padding: 0; }
.mod_cat_img_sublist.is-vertical { display: grid; gap: 8px; }
.mod_cat_img_sublist.is-horizontal { display: flex; flex-wrap: wrap; gap: 8px 14px; }
.mod_cat_img_subitem { min-width: 0; margin: 0; padding: 0; }
.mod_cat_img_sublink { display: inline-flex; align-items: center; gap: 8px; min-width: 0; color: inherit; text-decoration: none; line-height: 1.35; }
.mod_cat_img_sublink::before { content: '›'; flex: 0 0 auto; opacity: .62; }
.mod_cat_img_sublink:hover, .mod_cat_img_sublink:focus-visible { text-decoration: underline; text-underline-offset: 3px; }
.mod_cat_img_subthumb { width: 34px; height: 34px; overflow: hidden; border-radius: 6px; flex: 0 0 34px; background: #f3f4f6; }
.mod_cat_img_subthumb img { width: 100%; height: 100%; display: block; object-fit: cover; }
.mod_cat_img_subthumb + span { min-width: 0; }
.mod_cat_img_sublist .mod_cat_img_subthumb ~ span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mod_cat_img_viewall { display: inline-block; margin: 16px 18px 0; font-weight: 700; color: inherit; text-decoration: none; }
.mod_cat_img_viewall::after { content: ' →'; }
.mod_cat_img_viewall:hover, .mod_cat_img_viewall:focus-visible { text-decoration: underline; text-underline-offset: 3px; }
.mod_cat_img_parent_grid.layout-carousel .mod_cat_img_parent_card { height: auto; align-self: stretch; }
