.ct-mosaic-gallery {
	margin-top: var(--ct-mosaic-gallery-margin-top, 0px);
	margin-bottom: var(--ct-mosaic-gallery-margin-bottom, 0px);
}

@media (max-width: 768px) {
	.ct-mosaic-gallery {
		margin-top: var(--ct-mosaic-gallery-margin-top-mobile, var(--ct-mosaic-gallery-margin-top, 0px));
		margin-bottom: var(--ct-mosaic-gallery-margin-bottom-mobile, var(--ct-mosaic-gallery-margin-bottom, 0px));
	}
}

.ct-mosaic-gallery__desktop {
	display: block;
}

.ct-mosaic-gallery__mobile {
	display: none;
}

.ct-mosaic-gallery__groups {
	display: flex;
	flex-direction: column;
	gap: 20px;
}

.ct-mosaic-gallery__grid {
	display: grid;
	grid-template-columns: repeat(8, minmax(0, 1fr));
	grid-auto-flow: dense;
	grid-auto-rows: 40px;
	gap: 20px;
}

.ct-mosaic-gallery__item,
.ct-mosaic-gallery__mobile-item {
	display: block;
	overflow: hidden;
	border-radius: 20px;
}

.ct-mosaic-gallery__item img,
.ct-mosaic-gallery__mobile-item img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.ct-mosaic-gallery__item--pattern-1 {
	grid-column: 1 / span 5;
	grid-row: 1 / span 9;
}

.ct-mosaic-gallery__item--pattern-2 {
	grid-column: 6 / span 3;
	grid-row: 1 / span 5;
}

.ct-mosaic-gallery__item--pattern-3 {
	grid-column: 6 / span 3;
	grid-row: 6 / span 6;
}

.ct-mosaic-gallery__item--pattern-4 {
	grid-column: 1 / span 3;
	grid-row: 10 / span 5;
}

.ct-mosaic-gallery__item--pattern-5 {
	grid-column: 4 / span 2;
	grid-row: 10 / span 4;
}

.ct-mosaic-gallery__item--pattern-6 {
	grid-column: 6 / span 3;
	grid-row: 12 / span 8;
}

.ct-mosaic-gallery__item--pattern-7 {
	grid-column: 1 / span 3;
	grid-row: 15 / span 5;
}

.ct-mosaic-gallery__item--pattern-8 {
	grid-column: 4 / span 2;
	grid-row: 14 / span 6;
}

@media (max-width: 768px) {
	.ct-mosaic-gallery__desktop {
		display: none;
	}

	.ct-mosaic-gallery__mobile {
		display: block;
	}

	.ct-mosaic-gallery__mobile .swiper-slide {
		height: 308px;
	}

	.ct-mosaic-gallery__mobile-item {
		height: 100%;
		border-radius: 12px;
	}

	.ct-mosaic-gallery__slider .swiper-wrapper {
		align-items: stretch;
	}

	.ct-mosaic-gallery__mobile-item img {
		aspect-ratio: auto;
	}
}
