/*
	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 {
	--color-primary: var(--white);
	--color-secondary: var(--slate-gray);
	--color-accent: var(--blue-gray);
	--color-hover : var(--dark-teal);
	--font-title: var(--font-fraunces);
	--font-text: var(--font-body);
	--font-accent: var(--font-fraunces);

}

.mosaic .mosaic-tiles-wrapper {
	padding: 0;
	gap: 0;
}

.mosaic-tile .mosaic-tile-inner.img-cont::after {
	content: "";
	background: linear-gradient(to top, rgba(0,0,0,0.55) 0%, rgba(0,0,0,0) 100%);
	bottom: 0;
	left: 0;
	position: absolute;
	pointer-events: none;
	height: 40%;
	width: 100%;
	z-index: 1;
}

.mosaic .mosaic-tile.intro {
	background-color: var(--color-accent);
	padding: 42px 30px 36px 30px;
	background-image: url(https://assets.simpleviewinc.com/simpleview/image/upload/v1/clients/michiganup/trees_bg_eb408ace-8352-4a22-b38b-5e831069ca69.png);
	background-repeat: no-repeat;
	background-size: 142%;
	background-position: 4% -32%;
	background-blend-mode: multiply;
}

.mosaic .mosaic-tile.intro .intro-title {
	margin-bottom: 14px;
	font-family: var(--font-title);
	font-size: 44px;
	font-weight: var(--weight-bold);
	line-height: 1;
	color: var(--color-primary);
}

.mosaic .mosaic-tile.intro .intro-desc {
	margin-bottom: 25px;
	font-family: var(--font-text);
	font-size: 15px;
	font-weight: 600;;
	line-height: 1.7;
	color: var(--color-primary);
}

.mosaic .mosaic-tile.intro .intro-view-all {
	display: inline-block;
	padding: 9px 36.5px;
	background-color: var(--color-primary);
	color: var(--color-secondary);
	border-radius: 30px;
	font-family: var(--font-text);
	text-transform: uppercase;
	font-size: 14px;
	font-weight: 600;
	letter-spacing: 3px;
}

@media (hover : hover ) {
	.mosaic .mosaic-tile.intro .intro-view-all:hover {
		text-decoration: none;
		background-color: var(--color-primary);
	}
}

.mosaic .mosaic-tile {
	padding: 10px 10px 0;
}

.mosaic .mosaic-tile .mosaic-tile-link::after {
	content: '';
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 45%;
	background: linear-gradient(to top, rgba(0,0,0,0.5), transparent);
	pointer-events: none;
}

.mosaic .mosaic-tile .mosaic-tile-inner img {
	object-fit: cover;
}

.mosaic .mosaic-tile .mosaic-tile-inner .tile-info-wrapper {
	padding: var(--space-1) var(--space-3) 34px;
	background-color: transparent;
	max-width: 100%;
	width: 100%;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
}

.mosaic .mosaic-tile .tile-title {
	padding: 0;
	text-align: center;
	font-family: var(--font-accent);
	color: var(--white);
	font-weight: var(--weight-bold);
	font-size: 37px;
	max-width: 240px;
	line-height: 1.2;
	transform: translateY(0);
	transition: transform 400ms ease-out;
}

.mosaic .text-hover {
	opacity: 0;
	position: absolute;
}

@media (min-width: 64em) {
	.mosaic .mosaic-tiles-wrapper {
		grid-template-columns: calc(100% * 324 / 1440) calc(100% * 247 / 1440) calc(100% * 324 / 1440) calc(100% * 535 / 1440);
		gap: 3px;
	}

	.mosaic .mosaic-tile {
		padding: 0;
	}

	.mosaic .mosaic-tile:nth-child(2) {
		grid-column: 3 / span 1;
    	grid-row: 1 / span 1;
	}

	.mosaic .mosaic-tile:nth-child(3) {
		grid-column: 4 / span 1;
		grid-row: 1 / span 2;
	}

	.mosaic .mosaic-tile:nth-child(4) {
		grid-column: 1 / span 1;
		grid-row: 2 / span 1;
	}

	.mosaic .mosaic-tile:nth-child(5) {
		grid-column: 2 / span 2;
		grid-row: 2 / span 1;
	}

	
	.mosaic .mosaic-tile.intro {
		grid-column: 1 / span 2;
		grid-row: 1 / span 1;
		background-size: 100%;
		background-position: -46px -20%;
		min-height: 49.6%;
		padding: 10px 30px;
		height: 100%;
	}

	@media(hover : hover ) {
		.mosaic .mosaic-tile.intro .intro-view-all:hover {
			background-color: var(--color-hover);
			color: var(--white);
		}
	}

	.mosaic .mosaic-tile.intro .intro-title {
        font-size: calc(35px + (50 - 35) * ((100vw - 1024px) / (1440 - 1024)));
        margin-bottom: 5px;
    }

    .mosaic .mosaic-tile.intro .intro-desc {
        font-size: calc(13px + (18 - 13) * ((100vw - 1024px) / (1440 - 1024)));
    }

    .mosaic .mosaic-tile.intro .intro-view-all {
	    font-size: calc(10px + (14 - 10) * ((100vw - 1024px) / (1440 - 1024)));
    }

	.mosaic .mosaic-tile.intro .intro-desc {
		margin-bottom: 20px;
	}

    .mosaic .mosaic-tile .mosaic-tile-inner .tile-info-wrapper {
    	padding-bottom: 28px;
    	/* width: 100%; */
    }

    .mosaic .mosaic-tile .tile-title {
    	max-width: 100%
    }

	.text-hover {
		opacity: 0;
		font-size: 14px;
		color: var(--color-primary);
		font-family: var(--font-text);
		font-weight: 600;
		text-transform: uppercase;
		letter-spacing: 3px;
		/* left: 40%; */
		transition: opacity 200ms ease-in;
		position: absolute;
		bottom: 50px;
		left: 50%;
		transform: translateX(-50%);
		width: fit-content;
		text-align: center;
	}

	.text-hover::before,
	.text-hover::after {
		content: '';
		display: block;
		position: absolute;
		height: 2px;
		width: 5px;
		background-color: var(--color-accent);
	}

	.text-hover::before {
		left: -15px;
		bottom: 9px;
	}

	.text-hover::after {
		right: -11px;
		bottom: 9px;
	}

	@media(hover : hover) {
		.mosaic .mosaic-tile:hover .mosaic-tile-inner:not(.no-link) .text-hover {
			opacity: 1;
			transition: opacity 200ms 100ms ease;
		}

		.mosaic .mosaic-tile:hover .mosaic-tile-inner:not(.no-link) .mosaic-tile-link .tile-info-wrapper {
			background-color: transparent;
		}

		.mosaic .mosaic-tile:hover .mosaic-tile-inner:not(.no-link) .mosaic-tile-link .tile-info-wrapper::after {
			content: '';
		}

		.mosaic .mosaic-tile:hover .mosaic-tile-inner:not(.no-link) .mosaic-tile-link .tile-info-wrapper .tile-title {
			color: var(--color-primary);
			transform: translateY(-60px);
		}
	}
}

@media screen and (min-width: 90em) {
	.mosaic .mosaic-tile.intro {
		padding: 45px 60px 48px 75px;
	}

	.mosaic .mosaic-tile.intro .intro-title {
        font-size: 50px;
        margin-bottom: 5px;
    }

    .mosaic .mosaic-tile.intro .intro-desc {
        font-size: 18px;
    }

    .mosaic .mosaic-tile.intro .intro-view-all {
	    font-size: 14px;
    }
}