/*
	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.
*/

/*======================*/
/*==--    SHARED    --==*/
/*======================*/

.core-mosaic {
	margin-bottom: 54px;
}

.mosaic-tile .shared-play-button {
	position: relative;
	top: auto;
	left: auto;
	transform: none;
	width: var(--space-12);
    height: var(--space-12);
	margin-top: var(--space-3);
}

@media (min-width: 64em) {
	.mosaic-tile .shared-play-button {
		width: var(--space-16);
        height: var(--space-16);
	}
}

@media (min-width: 90em) {
	.mosaic-tile .shared-play-button {
		width: var(--space-20);
        height: var(--space-20);
		margin-top: var(--space-4);
	}
}

/*========================*/
/*==--    6 MOSAIC    --==*/
/*========================*/

.mosaic-6-wrapper {
	position: relative;
}

.mosaic-6 {
	position: relative;
	z-index: 1;
	padding-top: 0;
}

.mosaic-6 .mosaic-tiles-wrapper {
	position: relative;
	z-index: 1;
	padding: 0;
	gap: 0;
}

.mosaic-6 .mosaic-tile .mosaic-tile-inner {
	padding-bottom: 0 !important;
	height: 100%;
	min-height: 100vw;
	max-height: 100%;
}

.mosaic-6 .mosaic-tile .mosaic-tile-inner .tile-info-wrapper {
	top: 50%;
	left: 50%;
	bottom: auto;
	z-index: 3;
	transform: translate(-50%, -50%);
	width: 100%;
	min-width: 0;
	max-width: 400px;
	text-align: center;
	background: none !important;
	padding: var(--space-5);
	pointer-events: none;
}

.mosaic-6 .mosaic-tile .mosaic-tile-inner .tile-info-wrapper a {
	pointer-events: all;
}

.mosaic-6 .mosaic-tile .tile-title {
	color: var(--white) !important;
	text-transform: uppercase;
	font-family: var(--font-display-2);
	line-height: var(--leading-none);
	font-weight: var(--font-weight-heavy);
	transition: color var(--transition-appendix);
}

.mosaic-6 .mosaic-tile .desc-cont {
	opacity: 0;
	max-height: 0;
}

.mosaic-6 .mosaic-tile .tile-desc {
	margin-top: var(--space-3);
	color: var(--navy);
}

.mosaic-6 .mosaic-tile .mosaic-tile-link {
	position: static;
}

.mosaic-6 .mosaic-tile .mosaic-tile-inner::before {
	position: absolute;
	top: 0;
	right: 0;
	left: 0;
	bottom: 0;
	z-index: 1;
	display: block;
	content: '';
	background-color: rgba(0,0,0,.2);
	transition: background-color var(--transition-appendix);
	pointer-events: none;
}

.mosaic-6 .mosaic-tile .down-arrow {
	display: none;
	opacity: 0;
	width: 100%;
	max-width: 30px;
	height: 0;
	margin:0 auto;
	object-fit: cover;
	transition: opacity var(--transition-appendix), height var(--transition-appendix), margin-top var(--transition-appendix);
}

@media (hover: hover) {
	.mosaic-6 .mosaic-tile .down-arrow {
		display: block;
	}

	.mosaic-6 .mosaic-tile:hover .mosaic-tile-inner::before {
		background-color: rgba(151, 198, 228, .85);
	}
	
	.mosaic-6.teal-overlay .mosaic-tile:hover .mosaic-tile-inner::before {
		background-color: rgba(159, 217, 221, .85);
	}

	.mosaic-6 .mosaic-tile:hover .tile-title {
		color: var(--navy) !important;
	}

	.mosaic-6 .mosaic-tile:hover .down-arrow {
		margin-top: 54px;
		opacity: 1;
		height: 17.5px;
	}
}

@media (min-width: 40em) {
	.mosaic-6 .mosaic-tile .slide-img {
		top: 0;
		left: 0;
		transform: none;
		width: 100%;
		height: 100%;
	}

	.mosaic-6 .mosaic-tiles-wrapper {
		grid-template: auto auto / 1fr 1fr 1fr 1fr 1fr;
	}

	.mosaic-6 .mosaic-tile {
		grid-row: span 1 !important;
		grid-column: span 2 !important;
	}

	.mosaic-6 .mosaic-tile:first-child,
	.mosaic-6 .mosaic-tile:nth-child(4),
	.mosaic-6 .mosaic-tile:nth-child(5) {
		grid-column: span 3 !important;
	}

	.mosaic-6 .mosaic-tile .mosaic-tile-inner {
		min-height: 40vw;
	}
	
	.mosaic-6 .mosaic-tile:first-child .mosaic-tile-inner,
	.mosaic-6 .mosaic-tile:nth-child(4) .mosaic-tile-inner,
	.mosaic-6 .mosaic-tile:nth-child(5) .mosaic-tile-inner {
		min-height: 60vw;
	}

	.mosaic-6 .mosaic-tile .tile-title {
		font-size: var(--text-2xl);
	}
}

@media (min-width: 64em) {
	.mosaic-6 .mosaic-tiles-wrapper {
		grid-template: repeat(4, auto) / 1fr 25.7% 1fr;
		grid-auto-flow: column dense;
	}

	.mosaic-6 .mosaic-tile,
	.mosaic-6 .mosaic-tile:first-child,
	.mosaic-6 .mosaic-tile:nth-child(4),
	.mosaic-6 .mosaic-tile:nth-child(5) {
		grid-row: span 1 !important;
		grid-column: span 1 !important;
	}

	.mosaic-6 .mosaic-tile:first-child,
	.mosaic-6 .mosaic-tile:nth-child(4),
	.mosaic-6 .mosaic-tile:nth-child(5) {
		grid-row: span 3 !important;
	}

	.mosaic-6 .mosaic-tile .mosaic-tile-inner {
		min-height: 15vw;
	}

	.mosaic-6 .mosaic-tile:first-child .mosaic-tile-inner,
	.mosaic-6 .mosaic-tile:nth-child(4) .mosaic-tile-inner,
	.mosaic-6 .mosaic-tile:nth-child(5) .mosaic-tile-inner{
		min-height: 39vw;
	}	

}

@media (min-width: 68.75em) {
	.mosaic-6 .mosaic-tile:first-child .desc-cont,
		.mosaic-6 .mosaic-tile:nth-child(4) .desc-cont,
		.mosaic-6 .mosaic-tile:nth-child(5) .desc-cont {
			transition: opacity 0.3s, max-height 0.3s;
		}
	@media (hover: hover) {
		.mosaic-6 .mosaic-tile:first-child:hover .desc-cont,
		.mosaic-6 .mosaic-tile:nth-child(4):hover .desc-cont,
		.mosaic-6 .mosaic-tile:nth-child(5):hover .desc-cont {
			opacity: 1;
			max-height: 280px;
		}
	}
}

@media (min-width: 1800px) {
	.mosaic-6 .mosaic-tile .tile-title {
		font-size: 2.3125rem;
	}
}

/*====================================*/
/*==--    4 MOSAIC (LANDSCAPE)    --==*/
/*====================================*/

.mosaic-4-wrapper .widget-view-all {
	color: var(--blue);
}

.mosaic-4-landscape {
	margin-bottom: 44px;
}

.mosaic-4-landscape .mosaic-tile {
	color: var(--white);
}

.mosaic-4-landscape .mosaic-tile .mosaic-tile-inner {
	height: 100%;
}

.mosaic-4-landscape .mosaic-tile-link,
.mosaic-4-landscape .mosaic-tile .tile-img {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 1;
	display: block;
	width: 100%;
	height: 100%;
}

.mosaic-4-landscape .mosaic-tile .tile-img {
	object-fit: cover;
}

.mosaic-4-landscape .mosaic-tile-link {
	color: inherit;
	text-decoration: none !important;
}

.mosaic-4-landscape .mosaic-tile .mosaic-tile-inner::before {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 2;
	display: block;
	content: '';
	background: rgba(0,0,0, .15);
	transition: background-color var(--transition-appendix);
	pointer-events: none;
}

.mosaic-4-landscape .mosaic-tile .tile-info-wrapper {
	position: absolute;
	top: 50%;
	left: 50%;
	z-index: 3;
	transform: translate(-50%, -50%);
	width: 100%;
	max-width: 500px;
	padding: var(--space-5);
	text-align: center;
	pointer-events: none;
}

.mosaic-4-landscape .mosaic-tile .tile-info-wrapper a {
	pointer-events: all;
}

.mosaic-4-landscape .mosaic-tile .tile-title {
	color: var(--white) !important;
	text-transform: uppercase;
	font-family: var(--font-display-2);
	font-weight: var(--font-weight-heavy);
	font-size: var(--text-2xl);
	line-height: var(--leading-none);
	transition: color var(--transition-appendix);
}

.mosaic-4-landscape .mosaic-tile .desc-cont {
	opacity: 0;
	max-height: 0;
	overflow: hidden;
}

.mosaic-4-landscape .mosaic-tile .tile-desc {
	margin-top: var(--space-3);
	color: var(--navy);
}

.mosaic-4-landscape .mosaic-tile .down-arrow {
	position: static;
	display: none;
	width: 30px;
	height: auto;
	margin:var(--space-8) auto 0 auto;
	opacity: 0;
	transition: opacity var(--transition-appendix);
}

@media (hover: hover) {
	.mosaic-4-landscape .mosaic-tile:hover .mosaic-tile-inner::before {
		background-color: rgba(151, 198, 228, .85);
	}

	.mosaic-4-landscape .mosaic-tile:hover .tile-title {
		color: var(--navy) !important;
	}
}

@media (min-width: 40em) {
	.mosaic-4-landscape .mosaic-tiles-wrapper {
		display: grid;
		grid-template: auto auto auto / 1fr 1fr;
		grid-auto-flow: dense;
	}

	.mosaic-4-landscape .mosaic-tile:nth-child(4n - 3),
	.mosaic-4-landscape .mosaic-tile:nth-child(4n) {
		grid-column: span 2;
	}

	.mosaic-4-landscape .mosaic-tile:nth-child(4n - 3) .mosaic-tile-inner,
	.mosaic-4-landscape .mosaic-tile:nth-child(4n) .mosaic-tile-inner {
		padding-bottom: 50%;
	}
}

@media (min-width: 64em) {
	.mosaic-4-landscape .mosaic-tiles-wrapper {
		grid-template: auto auto / 1fr 1fr 1fr;
	}

	.mosaic-4-landscape .mosaic-tile:nth-child(4n - 3),
	.mosaic-4-landscape .mosaic-tile:nth-child(4n) {
		grid-column: span 1;
	}

	.mosaic-4-landscape .mosaic-tile:nth-child(4n - 3),
	.mosaic-4-landscape .mosaic-tile:nth-child(4n - 1) {
		grid-row: span 2;
	}

	.mosaic-4-landscape .mosaic-tile:nth-child(4n - 3) .mosaic-tile-inner,
	.mosaic-4-landscape .mosaic-tile:nth-child(4n - 1) .mosaic-tile-inner {
		padding-bottom: 145%;
	}

	.mosaic-4-landscape .mosaic-tile:nth-child(4n - 2) .mosaic-tile-inner,
	.mosaic-4-landscape .mosaic-tile:nth-child(4n) .mosaic-tile-inner  {
		padding-bottom: 72%;
	}

	@media (hover: hover) {
		.mosaic-4-landscape .mosaic-tile .desc-cont {
			transition: opacity 0.3s, max-height 0.3s;
		}

		.mosaic-4-landscape .mosaic-tile:first-child:hover .desc-cont,
		.mosaic-4-landscape .mosaic-tile:nth-child(3):hover .desc-cont {
			opacity: 1;
			max-height: 280px;
		}
	}
}

@media (min-width: 90em) and (hover: hover) {
	.mosaic-4-landscape .mosaic-tile .down-arrow {
		display: block;
	}

	.mosaic-4-landscape .mosaic-tile:hover .down-arrow {
		opacity: 1;
	}

	.mosaic-4-landscape .mosaic-tile .tile-title {
		font-size: 2.28375rem;
	}
}

/*===================================*/
/*==--    4 MOSAIC (PORTRAIT)    --==*/
/*===================================*/

.mosaic-4-wrapper {
	position: relative;
}

.mosaic-4-wrapper .ccl-widget-under-graphic-wrapper {
	max-width: 1240px;
}

.mosaic-4-wrapper .ccl-widget-under-graphic-wrapper.has-wave {
	max-width: 1770px;
}

.mosaic-4-wrapper .ccl-widget-under-graphic-wrapper a,
.mosaic-4-wrapper .ccl-widget-under-graphic {
	max-width: 310px;
}

.mosaic-4-wrapper .ccl-widget-under-graphic.wave-graphic {
	max-width: 465px;
}

.mosaic-4-portrait {
	position: relative;
	z-index: 1;
	width: 100%;
	max-width: var(--width-base);
	padding: 0 var(--space-5);
	margin: 0 auto var(--space-12) auto;
}

.mosaic-4-portrait .mosaic-tiles-wrapper {
	position: relative;
	z-index: 1;
	display: grid;
	gap: 18px;
}

.mosaic-4-portrait .mosaic-tile {
	color: var(--white);
}

.mosaic-4-portrait .mosaic-tile-link,
.mosaic-4-portrait .mosaic-tile .tile-img {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 1;
	display: block;
	width: 100%;
	height: 100%;
}

.mosaic-4-portrait .mosaic-tile .tile-img {
	object-fit: cover;
}


.mosaic-4-portrait .mosaic-tile-link {
	color: inherit;
	text-decoration: none !important;
}

.mosaic-4-portrait .mosaic-tile .mosaic-tile-inner::before {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 2;
	display: block;
	content: '';
	background: rgba(23,31,58, .15);
	transition: background-color var(--transition-appendix);
	pointer-events: none;
}

.mosaic-4-portrait .mosaic-tile .tile-info-wrapper {
	position: absolute;
	top: 50%;
	left: 50%;
	z-index: 3;
	transform: translate(-50%, -50%);
	width: 100%;
	max-width: 500px;
	padding: var(--space-5);
	text-align: center;
	pointer-events: none;
}

.mosaic-4-portrait .mosaic-tile .tile-info-wrapper a {
	pointer-events: all;
}

.mosaic-4-portrait .mosaic-tile .tile-title {
	color: var(--white) !important;
	text-transform: uppercase;
	font-family: var(--font-display-2);
	line-height: var(--leading-none);
	font-weight: var(--font-weight-heavy);
	transition: color var(--transition-appendix);
}

.mosaic-4-portrait .mosaic-tile .desc-cont {
	opacity: 0;
	max-height: 0;
}

.mosaic-4-portrait .mosaic-tile .tile-desc {
	margin-top: var(--space-3);
	color: var(--navy);
}

.mosaic-4-portrait .mosaic-tile .down-arrow {
	display: none;
	opacity: 0;
	width: 100%;
	max-width: 30px;
	height: 0;
	margin:0 auto;
	object-fit: cover;
	transition: opacity var(--transition-appendix), height var(--transition-appendix), margin-top var(--transition-appendix);
}

@media (hover: hover) {
	.mosaic-4-portrait .mosaic-tile:hover .mosaic-tile-inner::before {
		background-color: rgba(159, 217, 221, .85);
	}

	.mosaic-4-portrait .mosaic-tile:hover .tile-title {
		color: var(--navy) !important;
	}
}

@media (min-width: 40em) {
	.mosaic-4-portrait .mosaic-tiles-wrapper {
		grid-template: auto auto auto auto auto auto auto / 2fr 3fr;
	}

	.mosaic-4-portrait .mosaic-tile {
		grid-row: span 2;
	}

	.mosaic-4-portrait .mosaic-tile:nth-child(4n - 1),
	.mosaic-4-portrait .mosaic-tile:nth-child(4n - 2) {
		grid-row: span 5;
	}

	.mosaic-4-portrait .mosaic-tile .mosaic-tile-inner {
		padding-bottom: 62.5%;
		height: 100%;
	}

	.mosaic-4-portrait .mosaic-tile:nth-child(4n - 2) .mosaic-tile-inner {
		padding-bottom: 107%;
	}
	
	.mosaic-4-portrait .mosaic-tile:nth-child(4n - 1) .mosaic-tile-inner {
		padding-bottom: 153%;
	}
	
	.mosaic-4-portrait .mosaic-tile:nth-child(4n) .mosaic-tile-inner {
		padding-bottom: 40%;
	}

	.mosaic-4-portrait .mosaic-tile .tile-title {
		font-size: var(--text-2xl);
	}
}

@media (min-width: 64em) and (hover: hover) {
	.mosaic-4-portrait .mosaic-tile .desc-cont {
		transition: opacity 0.3s, max-height 0.3s;
	}

	.mosaic-4-portrait .mosaic-tile:nth-child(2):hover .desc-cont,
	.mosaic-4-portrait .mosaic-tile:nth-child(3):hover .desc-cont {
		opacity: 1;
		max-height: 280px;
	}

	.mosaic-4-portrait .mosaic-tile .down-arrow {
		display: block;
	}

	.mosaic-4-portrait .mosaic-tile:hover .down-arrow {
		margin-top: var(--space-8);
		opacity: 1;
		height: 17.5px;
	}
}

@media (min-width: 90em) {
	.mosaic-4-wrapper .ccl-widget-under-graphic-wrapper a,
	.mosaic-4-wrapper .ccl-widget-under-graphic {
		margin-top: -165px;
	}

	.mosaic-4-wrapper .ccl-widget-under-graphic.wave-graphic {
		margin-top: -106px;
	}
	
	.mosaic-4-wrapper .ccl-widget-under-graphic-wrapper a .ccl-widget-under-graphic {
		margin-top: 0;
	}

	.mosaic-4-portrait .mosaic-tile .tile-title {
		font-size: 2.655rem;
	}
}

/* @media (min-width: 90em) and (hover: hover) {
	.mosaic-4-portrait .mosaic-tile .down-arrow {
		display: block;
	}

	.mosaic-4-portrait .mosaic-tile:hover .down-arrow {
		margin-top: var(--space-8);
		opacity: 1;
		height: 17.5px;
	}
} */

/*========================*/
/*==--    3 MOSAIC    --==*/
/*========================*/

.mosaic-3-wrapper {
	width: 100%;
	max-width: var(--width-base);
	margin: 0 auto 80px auto;
}

.mosaic-3-wrapper.full-width {
	max-width: none;
	margin: 0 0 80px 0;
}

.mosaic-3 .title-tile {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	padding: var(--space-10) var(--space-5);
	text-align: center;
	background: var(--almost-white);
}

.mosaic-3 .widget-title {
	width: 100%;
	max-width: 300px;
	margin: 0 auto;
	font-family: var(--font-display);
	font-weight: var(--font-weight-bold);
	font-size: var(--text-2xl);
	color: var(--navy);
	line-height: 1.2;
	text-transform: lowercase;
}

.mosaic-3-wrapper.full-width .mosaic-3 .widget-title {
	max-width: none;
	margin: 0;
}

.mosaic-3 .widget-title::after {
	display: block;
	content: '';
	width: 100%;
	max-width: 78px;
	height: 2px;
	margin: 30px auto 0 auto;
	background: var(--powder-blue);
}

.mosaic-3 .mosaic-tile-inner {
	position: relative;
	height: 100%;
}

.mosaic-3 .mosaic-tile-inner::before {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 2;
	display: block;
	content: '';
	background: rgba(0,0,0, .15);
	transition: background-color var(--transition-appendix);
	pointer-events: none;
}

.mosaic-3 .mosaic-tile a {
	font: inherit !important;
	color: var(--white) !important;
	text-decoration: none !important;
}

.mosaic-3 .mosaic-tile-link,
.mosaic-3 .tile-img {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 1;
	display: block;
	color: inherit;
	text-decoration: none !important;
}

.mosaic-3 .tile-img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.mosaic-3 .mosaic-tile .tile-info-wrapper {
	position: absolute;
	top: 50%;
	left: 0;
	right: 0;
	z-index: 3;
	transform: translateY(-50%);
	padding: var(--space-5);
	color: var(--white);
	text-align: center;
	pointer-events: none;
}

.mosaic-3 .mosaic-tile .tile-info-wrapper a {
	pointer-events: all;
}

.mosaic-3 .tile-title {
	font-family: var(--font-display-2);
	font-size: var(--text-3xl);
	font-weight: var(--font-weight-heavy);
	text-transform: uppercase;
	line-height: var(--leading-none);
}

.mosaic-3 .mosaic-tile .down-arrow {
	display: none;
	opacity: 0;
	width: 100%;
	max-width: 30px;
	height: 0;
	margin:0 auto;
	object-fit: cover;
	transition: opacity var(--transition-appendix), height var(--transition-appendix), margin-top var(--transition-appendix);
}

@media (hover: hover) {
	.mosaic-3 .mosaic-tile:hover .down-arrow {
		margin-top: 54px;
		opacity: 1;
		height: 17.5px;
	}

	.mosaic-3 .mosaic-tile:hover .mosaic-tile-inner::before {
		background-color: rgba(151, 198, 228, .85);
	}
}

@media (min-width: 40em) {
	.mosaic-3 .mosaic-tiles-wrapper {
		display: grid;
		grid-template: auto auto / 1fr 1fr 1fr;
	}

	.mosaic-3 .title-tile {
		grid-column: span 3;
	}

	.mosaic-3 .tile-title {
		font-size: var(--text-xl);
	}
}

@media (min-width: 64em) {
	.mosaic-3 .mosaic-tiles-wrapper {
		grid-template: 1fr 1fr / 1fr 1fr 1fr;
		grid-auto-flow: dense;
	}

	.mosaic-3 .title-tile {
		grid-column: span 1;
		grid-row: span 1;
		order: 1;
	}

	.mosaic-3 .mosaic-tile {
		grid-row: span 2;
	}

	.mosaic-3 .mosaic-tile:nth-child(4n - 1) {
		order: 2;
	}
	
	.mosaic-3 .mosaic-tile:nth-child(4n) {
		grid-row: span 1;
		order: 3;
	}
}

@media (min-width: 90em) {
	.mosaic-3-wrapper {
		margin-bottom: 120px;
	}

	.mosaic-3 .widget-title {
		font-size: 2.666rem;
	}

	.mosaic-3-wrapper .mosaic-3 .widget-title {
		font-size: 2.5rem;
	}

	.mosaic-3 .mosaic-tile:nth-child(4n - 2) .mosaic-tile-inner,
	.mosaic-3 .mosaic-tile:nth-child(4n - 1) .mosaic-tile-inner {
		padding-bottom: 141%;
	}

	.mosaic-3 .mosaic-tile:nth-child(4n) .mosaic-tile-inner {
		padding-bottom: 71%;
	}

	.mosaic-3-wrapper.full-width .mosaic-3 .mosaic-tile:nth-child(4n - 2) .mosaic-tile-inner,
	.mosaic-3-wrapper.full-width .mosaic-3 .mosaic-tile:nth-child(4n - 1) .mosaic-tile-inner {
		padding-bottom: 117%;
	}

	.mosaic-3-wrapper.full-width .mosaic-3 .mosaic-tile:nth-child(4n) .mosaic-tile-inner {
		padding-bottom: 59%;
	}

	.mosaic-3 .tile-title {
		font-size: 2.333rem;
	}


	.mosaic-3-wrapper.full-width .mosaic-3 .tile-title {
		font-size: 2.655rem;
	}

	.mosaic-3 .mosaic-tile .tile-info-wrapper {
		padding: var(--space-5) var(--space-6);
	}
}

@media (min-width: 90em) and (hover: hover) {
	.mosaic-3 .mosaic-tile .down-arrow {
		display: block;
	}
}