.mosaic-v1 {
	position: relative;
	max-width: 1340px;
	margin: 0 auto var(--widget-margin-bottom);
}

.mosaic-v1 .header-cont {
	text-align: center;
	margin: 0 auto;
	padding: 0 var(--space-5) var(--space-6);
}

.mosaic-v1 .header-cont h3 {
	font-family: var(--font-display-bold);
	font-weight: 700;
	font-size: 2.25rem;
	line-height: var(--leading-none);
	letter-spacing: var(--tracking-normal);
	color: var(--blue-med);
	text-align: center;
	padding: 0 var(--space-2);
	margin-bottom: var(--space-4);
}

.mosaic-v1 .header-cont .decoration {
	height: 3px;
	width: 250px;
	background: url(/includes/public/assets/shared/mosaic-title-border.svg);
	background-repeat: no-repeat;
	background-position: -5px center;
	margin: 0 auto var(--space-4);
}

.mosaic-v1 .header-cont .widget-description {
	font-family: var(--font-body);
	font-size: var(--text-sm);
	font-weight: 500;
	line-height: 1.85;
	letter-spacing: var(--tracking-normal);
	color: var(--sw-text-color);
}

.mosaic-v1 .cols {
	position: relative;
	display: grid;
	grid-template-columns: repeat(2, auto);
	grid-template-rows: repeat(4, auto);
	grid-auto-flow: row;
	gap: 11px;
	padding: 0 var(--space-5);
	margin: 0 auto;
}

.mosaic-v1 .slide { box-shadow: 0px 6px 10px 0px rgba(0, 0, 0, 0.25); }

.mosaic-v1 .slide.promoted { grid-column: span 2; }

.mosaic-v1 .slide.promoted.mixed { grid-column: span 1; }

.mosaic-v1 .slide.small:nth-child(4) { grid-row: 2 / span 1; }

.mosaic-v1 .inner { position: relative; }

.mosaic-v1 .inner .content-section {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	padding: var(--space-2);
	pointer-events: none;
}

.mosaic-v1 .content-section .icon {
	display: block;
	width: 100%;
	max-width: 50px;
	height: 50px;
	object-fit: contain;
}

.mosaic-v1 .content-section h4 {
	font-family: var(--font-display);
	color: var(--almost-white);
	font-size: min(calc(20px + (24 - 20) * ((100vw - 320px) / (375 - 320))), var(--text-2xl));
	font-weight: 500;
	line-height: 1.3;
	text-align: center;
	filter: drop-shadow(0px 4px 4px rgba(0, 0, 0, 0.25));
}

.mosaic-v1 .slide.promoted .img-cont picture > img { aspect-ratio: 335/200; }

.mosaic-v1 .slide.mixed .img-cont picture > img,
.mosaic-v1 .slide.small .img-cont picture > img { aspect-ratio: 1/1; }

.mosaic-v1 .img-cont picture > img {
	width: 100%;
	filter: brightness(.65);
}

.mosaic-v1 .shared-play-button {
	left: unset;
	transform: unset;
	top: var(--space-2);
	right: var(--space-2);
	height: var(--space-10);
	width: var(--space-10);
	font-size: var(--text-base);
}

.mosaic-v1 .view-all-cont {
	display: flex;
	justify-content: center;
	margin-top: var(--space-6);
}

.mosaic-v1 .view-all-cont .widget-view-all {
	font-family: var(--font-body);
	font-size: var(--text-sm);
	font-weight: 800;
	line-height: var(--leading-none);
	color: var(--sw-button-primary-color);
	text-align: center;
	text-transform: uppercase;
	background: var(--sw-button-primary-bg);
	padding: 15px 27px;
	border-radius: var(--rounded-full);
	transition: background 0.4s ease;
}

@media (hover: hover) {
	.mosaic-v1 .view-all-cont .widget-view-all:hover {
		text-decoration: none;
		background: var(--sw-button-primary-bg-hover);
	}
}

@media (min-width: 40em) {
	.mosaic-v1 .inner .content-section {
		gap: var(--space-3);
		padding: var(--space-5);
	}

	.mosaic-v1 .content-section .icon {
		max-width: 60px;
		height: 60px;
	}

	.mosaic-v1 .content-section h4 { font-size: 2rem; }

	.mosaic-v1 .shared-play-button {
		height: var(--space-12);
		width: var(--space-12);
		font-size: var(--text-lg);
	}
}

@media (min-width: 64em) {
	.mosaic-v1 .header-cont {
		max-width: 1090px;
		padding-bottom: var(--space-8);
	}

	.mosaic-v1 .header-cont h3 {
		font-size: 4.625rem;
		padding: 0;
		margin-bottom: var(--space-5);
	}

	.mosaic-v1 .header-cont .decoration {
		width: 500px;
		background: url(/includes/public/assets/shared/mosaic-title-border-lg.svg);
		background-repeat: no-repeat;
		margin: 0 auto var(--space-6);
	}

	.mosaic-v1 .header-cont .widget-description {
		font-size: var(--text-base);
		line-height: 1.75;
	}

	.mosaic-v1 .cols {
		grid-template-columns: repeat(3, auto);
		grid-template-rows: repeat(3, auto);
		grid-auto-flow: column;
		gap: var(--space-5);
	}
	
	.mosaic-v1 .slide.promoted {
		grid-row: span 2;
		grid-column: span 1;
	}
	
	.mosaic-v1 .slide.small:nth-child(4) {
		grid-row: 1/ span 1;
		grid-column: 2 / span 1;
	}

	.mosaic-v1 .slide.mixed .img-cont picture > img,
	.mosaic-v1 .slide.promoted .img-cont picture > img { aspect-ratio: 420/460; }
	
	.mosaic-v1 .slide.small .img-cont picture > img { aspect-ratio: 420/260; }

	.mosaic-v1 .view-all-cont { margin-top: var(--space-8); }

	.mosaic-v1 .view-all-cont .widget-view-all { font-size: var(--text-base); }

	/* Slide Hover Overlays */
	.mosaic-v1 .slide .img-cont { position: relative; }

	.mosaic-v1 .slide .img-cont::after {
		content: '';
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		background: var(--orange-med);
		opacity: 0;
		transition: opacity ease 0.4s;
		pointer-events: none;
	}

	.mosaic-v1 .slide.small .img-cont::after { background: var(--pink-med); }

	@media (hover: hover) {
		.mosaic-v1 .slide:hover .img-cont::after { opacity: 0.45; }
	}
}