/*
	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.
*/

.mosaic {
	--font-title: var(--font-heading-posterama);
    --font-subtitle: var(--font-heading-railroad);
    --font-body: var(--font-display);
	--font-body: var(--font-display);
	--color-heading: var(--blue);
	--color-title: var(--seafoam);
    --color-icon-bg-primary: var(--robbins-egg-blue);
    --color-icon-bg-secondary: var(--green);
    --color-icon: var(--robbins-egg-blue);
	--color-accent: var(--green);

	max-width: 1042px;
	margin: 0 auto 50px;
	overflow: hidden;
}

.mosaic .circle {
	position: relative;
	display: flex;
	justify-content: center;
	align-items: center;
	border-radius: 100%;
	height: 123px;
	width: 123px;
	background-image: url(/includes/public/assets/shared/splash_texture.svg);
}

.mosaic  .circle.circle-blue{
	position: absolute;
    top: 20px;
    right: 46px;
	background-color: var(--color-icon-bg-primary);
}

.mosaic  .circle.circle-green {
	position: absolute;
    top: 96px;
    right: -20px;
	background-color: var(--color-icon-bg-secondary);
}

.mosaic .circle .icon {
	height: 50px;
	width: 50px;
}

.mosaic .heading-title-wrap {
	position: relative;
    max-width: 1024px;
    margin: 0 auto;
    padding: 60px 20px 0;
	z-index: 1;
}

.mosaic:not([data-width="full"]) .slides {
    padding-left: 0;
    padding-right: 0;
}

.mosaic .header-title .header-title-top,
.mosaic .header-title .header-title-bottom {
    color: var(--color-heading);
	letter-spacing: 1px;
}


.mosaic .header-title .header-title-top {
    font-family: var(--font-title);
	font-size: 30px;
    line-height: 1.2;
	text-transform: lowercase;
}

.mosaic .header-title .header-title-bottom {
    font-family: var(--font-subtitle);
    text-transform: uppercase;
    font-size: 60px;
    line-height: 1.2;
}

.mosaic .mosaic-tiles-wrapper {
	gap: 10px;
	padding: 0;
}

.mosaic .mosaic-tile {
	margin-bottom: 10px;
	border-radius: 0;
}

.mosaic .mosaic-tile:hover .mosaic-tile-inner .img-cont .tile-info-wrapper {
	color: var(--color-title);
	background-color: transparent;
}

.mosaic .mosaic-tile-inner {
	padding-bottom: calc(100% * 430 / 640);
}

.mosaic .mosaic-tile .mosaic-tile-inner .tile-info-wrapper {
	background-color: transparent;
	padding: 20px;
	max-width: 100%;
	z-index: 1;
}

.mosaic .mosaic-tile .tile-title {
	font-family: var(--font-title);
	color: var(--color-title);
	font-size: 42px;
	letter-spacing: 2px;
	line-height: 1;
	text-transform: lowercase;
}

@media screen and (min-width: 40em) {
	.mosaic .mosaic-tiles-inner.top .header-title .header-title-top{
		font-size: 46px;
		line-height: 1.5;
		letter-spacing: -1px;
	}

	.mosaic .mosaic-tiles-inner.top .header-title .header-title-bottom {
		display: block;
		font-size: 100px;
		line-height: 1;
		letter-spacing: 1px;
	}	

	.mosaic .circle {
		height: 186px;
		width: 186px;
	}

	.mosaic .circle.circle-green {
		top: 110px
	}

	.mosaic .circle.circle-blue {
		top: 14px;
		right: 100px;
	}

	.mosaic .circle .icon {
		height: 88px;
		width: 88px;
	}

	.mosaic .mosaic-tile-inner {
		padding-bottom: calc(100% * 516 / 1024);
	}
}

@media screen and (min-width: 64em) {
	.mosaic .mosaic-tiles-inner.top .heading-title-wrap {
		max-width: 1048px;
		margin: 0;
		padding: 0;
	}

	.mosaic .mosaic-tiles-inner.top .header-title-wrap {
		grid-column: 1;
		grid-row: 1;
		margin: 0;
	}

	.mosaic .circle {
		height: 386px;
		width: 386px;
	}

	.mosaic .circle.circle-green {
		position: absolute;
		top: 8%;
		right: -6%;
	}

	.mosaic .circle.circle-blue {
		position: absolute;
		right: unset;
		top: unset;
		bottom: 0;
		left: -6%;
	}

	.mosaic .circle .icon {
		height: 133px;
		width: 133px;
	}
	
	.mosaic .mosaic-tile .mosaic-tile-inner {
		position: initial;
	}

	.mosaic .mosaic-tiles-inner.top {
		display: grid;
		grid-template-columns: minmax(386px, 386px) minmax(382px, 382px) minmax(192px, 204px);
		grid-template-rows: 140px 167px 340px;
		column-gap: 15px;
		row-gap: 15px;
		margin-bottom: 15px;
		padding: 0 20px;
	}

	.mosaic .mosaic-tile {
		overflow: hidden;
		display: flex;
		justify-content: center;
		align-items: center;
		height: auto;
		margin: 0;
	}

	/*Hover*/
	.mosaic .mosaic-tile::after {
		content: '';
		pointer-events: none;
		position: absolute;
		top: 0;
		left: 0;
		bottom: 0;
		right: 0;
		width: 100%;
		transition: opacity ease-in-out 200ms; 
		opacity: 0;
		background-color: rgba(0, 93, 132, 0.5);
	}
	
	.mosaic .mosaic-tile:hover::after {
		opacity: 1;
	}

	.mosaic .mosaic-tile:hover .mosaic-tile-inner .img-cont .tile-info-wrapper .tile-title {
		color: var(--color-title)
	}

	.mosaic .mosaic-tile img {
		transition: transform ease-in-out 500ms;
		transform: scale(1) translate(-50%, -50%);
	}

	.mosaic .mosaic-tile:hover .img-cont img {
		transition: transform ease-in-out 500ms;
		transform: scale(1.1) translate(-50%, -50%);
	}

	.mosaic .mosaic-tiles-inner.top .mosaic-tile:nth-child(2) {
		grid-column: 2 / span 1;
		grid-row: 1 / span 2;
	}

	.mosaic .mosaic-tiles-inner.top .mosaic-tile:nth-child(3) {
		grid-column: 1 / span 1;
		grid-row: 2 / span 2;
	}
	
	.mosaic .mosaic-tiles-inner.top .mosaic-tile:nth-child(4) {
		grid-column: 2 / span 2;
		grid-row: 3 / span 1;
	}

	.mosaic .mosaic-tiles-inner.bottom {
		display: grid;
		grid-template-columns: minmax(190px,190px) minmax(386px, 386px) 1fr;
		grid-template-rows: 344px 196px;
		gap: 15px;
		padding: 0 20px;
	}

	.mosaic .mosaic-tiles-inner.bottom .mosaic-tile:nth-child(1) {
		grid-column: 2 / span 1;
		grid-row: 1 / span 1;
	}

	.mosaic .mosaic-tiles-inner.bottom .mosaic-tile:nth-child(2) {
		grid-column: 3 / span 1;
		grid-row: 1 / span 2;
	}
}

@media screen and (min-width: 1042px) {
	.mosaic {
		overflow: visible;
	}
}

@media screen and (min-width: 90em) {
	.mosaic .circle {
		height: 386px;
		width: 386px;
	}

	.mosaic .mosaic-tiles-inner.top {
		column-gap: 44px;
		row-gap: 38px;
		margin-bottom: 40px;
	}

	.mosaic .mosaic-tiles-inner.top {
		gap: 40px;
		padding: 0;
	}

	.mosaic .mosaic-tiles-inner.bottom {
		gap: 40px;
		padding: 0;
	}

	.mosaic .mosaic-tile .mosaic-tile-inner .tile-info-wrapper {
		padding: 22px;
	}
}