/*
	README

	Modify this file as much or as little as needed.

	This file is shared across all CCL widgets in the Mosaic family. This enables the ability to
	a family of widgets in a single update without touching the structure of the widget and without needing
	to duplicate efforts across several widget-specific CSS files.
*/


.core-mosaic {
	--text-color: var(--white);
	--bg-color: var(--primary-color-100);
	padding: 15px;
	margin-bottom: 20px;
}

@media (min-width: 40em) {
	.core-mosaic  {
		padding: 0 30px 20px 27px
	}
}

@media (min-width: 64em) {
	.core-mosaic  {
		margin-bottom: 96px;
	}
}

.core-mosaic .mosaic-tile .mosaic-tile-inner .tile-info-wrapper {
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translate(-50%, -50%);
	z-index: 3;
	min-width: 140px;
	max-width: 220px;
	padding: 4px 12px;
	pointer-events: none;
	transition: background-color 0.25s ease;
	line-height: var(--leading-tight);
}

@media (min-width: 64em) {
	.core-mosaic .mosaic-tile .mosaic-tile-inner .tile-info-wrapper {
		min-width: 230px;
		max-width: 300px;
	}
}

.core-mosaic .mosaic-tile .mosaic-tile-inner.img-cont picture::after {
		content: "";
		position: absolute;
		bottom: 0;
		left: 0;
		width: 100%;
		height: 100%;
		background: radial-gradient(at 60%,rgba(0,0,0,.3),rgba(0,0,0,.2), rgba(0,0,0,0));
		opacity: 0.7;
		z-index: 1;
		pointer-events: none;
}

.core-mosaic .mosaic-tile .tile-title {
	color: var(--text-color);
	font-family: var(--font-title);
	font-size: var(--text-base);
	font-weight: 400;
	text-align: center;
	letter-spacing: var(--tracking-wider);
	line-height: 1.2;
}

@media (min-width: 40em) {	
	.core-mosaic .mosaic-tile .tile-title {
		font-size: var(--text-lg);
	}
}

@media (min-width: 64em) {	
	.core-mosaic .mosaic-tile .tile-title {
		font-size: min(calc(20px + (28 - 20) * ((100vw - 1024px) / (1440 - 1024))), 28px);
		font-weight: 700;
	}
}

@media (hover: hover) {
	.core-mosaic .mosaic-tile:hover .mosaic-tile-inner .mosaic-tile-link .tile-info-wrapper {
		background-color: transparent;
	}
	
	.core-mosaic .mosaic-tile:hover .mosaic-tile-inner .mosaic-tile-link .tile-info-wrapper .tile-title {
		color: var(--white);
	}
}

@media (min-width: 40em) and (hover: hover) {
	.core-mosaic .mosaic-tile:hover .mosaic-tile-inner .mosaic-tile-link .tile-info-wrapper {
		background-color: transparent;
	}
	
	.core-mosaic .mosaic-tile:hover .mosaic-tile-inner .mosaic-tile-link .tile-info-wrapper .tile-title {
		color: var(--white);
	}
}

.core-mosaic .mosaic-tile {
	aspect-ratio: 69/25;
}

.mosaic-tile .mosaic-tile-inner {
	position: unset;
	background-color: var(--gray-dark);
}

.core-mosaic .mosaic-tile .mosaic-tile-link {
	background-color: var(--gray-dark);
	transition: background-color var(--transition-appendix);
}

.core-mosaic .mosaic-tile .tile-img, .core-mosaic .mosaic-tile .mosaic-tile-link {
	height: unset;
}

@media (min-width: 40em) {
	.core-mosaic .mosaic-tile {
		aspect-ratio: unset;
	}
	
	.mosaic-tile .mosaic-tile-inner {
		position: relative;
	}
	
	.core-mosaic .mosaic-tile .tile-img, .core-mosaic .mosaic-tile .mosaic-tile-link {
		height: 100%;
	}
}

.core-mosaic .shared-play-button {
	top: 10px;
	right: 10px;
	width: var(--space-10);
	height: var(--space-10);
	border: 1px solid var(--white);
}

.core-mosaic .shared-play-button:after {
    height: calc(100% - 10px);
    width: calc(100% - 10px);
}

.core-mosaic i.fa.fa-play {
	font-size: .4375rem;
}

@media (min-width: 40em) {
	.core-mosaic .mosaic-tile:nth-child(1), .core-mosaic .mosaic-tile:nth-child(4), .core-mosaic .mosaic-tile:nth-child(7) {
		grid-column: unset;
		grid-row: unset;
	}

	.core-mosaic .shared-play-button:after {
		height: calc(100% - 14px);
		width: calc(100% - 14px);
	}
}

@media (min-width: 64em) {
	.core-mosaic .shared-play-button {
		top: 20px;
		right: 20px;
		left: unset;
		transform: unset;
		width: var(--space-16);
		height: var(--space-16);
		border: 1px solid var(--white)
	}
	
	.core-mosaic i.fa.fa-play {
		font-size: unset;
	}
}



.core-mosaic .mosaic-tiles-wrapper {
	display: grid;
	grid-auto-flow: dense;
	align-items: stretch;
	grid-template-rows: repeat(6, 1fr);
	gap: 5px;
	padding: 0;
}

.core-mosaic .mosaic-tile .tile-img {
	object-fit: cover;
	opacity: .65;
}

@media (min-width: 40em) {
	.core-mosaic .mosaic-tiles-wrapper {
		grid-template-columns: repeat(3, 1fr);
		grid-template-rows: .8fr .15fr .2fr .76fr;
		gap: 20px;
	}

	.core-mosaic .mosaic-tile:nth-child(1) {
		grid-column:  1/2;
		grid-row: 1 / span 3;
	}

	.core-mosaic .mosaic-tile:nth-child(2) {
		grid-column: 2;
		grid-row: 1 / 2;
	  }

	.core-mosaic .mosaic-tile:nth-child(3) {
		grid-column:  3;
		grid-row: 1 / 3;
	}

	.core-mosaic .mosaic-tile:nth-child(4) {
		grid-column: 1;
		grid-row: 4;
	}

	.core-mosaic .mosaic-tile:nth-child(5) {
		grid-column: 2 /3;
		grid-row: 2 / span 3;
	}
	.core-mosaic .mosaic-tile:nth-child(6) {
		grid-column: 3;
		grid-row: 3 / 5;
	}

	.core-mosaic .mosaic-tile:nth-child(7) {
		grid-column: span 1;
		grid-row: span 1;
	}

	.core-mosaic .mosaic-tile {
		overflow: hidden;
		display: flex;
		justify-content: center;
		align-items: center;
		position: relative;
	} 

	.core-mosaic .mosaic-tile-inner.img-cont {
		height: 100%;
	}

	.core-mosaic .mosaic-tile .mosaic-tile-inner.img-cont img {
		top: 0;
		transform: scale(1);
		left: 0;
		transition: opacity var(--transition-appendix);
	}

	.core-mosaic .mosaic-tile .mosaic-tile-inner.img-cont .mosaic-tile-link:hover {
		background-color: var(--blue-hover-overlay);
	}

	.core-mosaic .mosaic-tile .mosaic-tile-inner.img-cont .mosaic-tile-link:hover img {
		opacity: .25;
	}

	.mosaic-tile .mosaic-tile-inner {
		padding-bottom: unset;
	}

	.core-mosaic .mosaic-tile:nth-child(1) .mosaic-tile-inner,
	.core-mosaic .mosaic-tile:nth-child(4) .mosaic-tile-inner {
		padding-bottom: unset;
	}

	.core-mosaic .mosaic-tile .tile-img,
	.core-mosaic .mosaic-tile .mosaic-tile-link {
		position: relative;
	} 
}
