/* Title + Image Grid Section */
.title-image-grid-section {
	padding: 30px 0;
	&.page {
		padding: 50px 0;
		&.py-30 {
			padding: 30px 0;
		}
		.image-tile {
			text-align: center;
		}
		.image-tile-wrapper {
			h2 {
				margin: 14px 0;
				font-size: 25px;
				line-height: 30px;
			}
		}
	}
	&.iframe-page {
		background:rgba(224, 25, 92, 1);
		padding: 50px 0;
		.iframe-wrapper {
			display: block;
			margin: 0 auto;
		}
		iframe {
			margin: 0 auto;
			display: block;
		}
	}
	&.pb-0 {
		padding-bottom: 0;
	}
	&.pt-0 {
		padding-top: 0;
	}
	&.mb-4 {
		margin-bottom: 20px;
	}
	.section-title {
		text-align: center;
		margin-bottom: 16px;
		h2 {
			font-size: 46px;
			line-height: 52px;
		}
	}
	.section-subheading {
		margin-bottom: 30px;
		padding: 10px 0;
		text-align: center;
	}
	.image-tile-wrapper,
	.product-tile-wrapper {
		display: flex;
		flex-flow: row wrap;
		justify-content: flex-start;
		margin: 0 -15px;
		.image-tile {
			margin: 0 15px;
			width: calc(25% - 30px);
		}
		.image-tile,
		.product-tile {
			position: relative;
			margin-bottom: 30px;
			&.portrait {
				@media only screen and (max-width: 992px) {
					width: calc(50% - 20px);
					margin: 0 10px 20px;
				}
				picture {
					height: 100%;
					width: 100%;
					img {
						width: 100%;
						height: auto;
						aspect-ratio: 456 / 570;
						object-fit: cover;
						transform: scale(1);
						transition: transform 0.3s ease-in-out;
					}
				}
			}
			&.square {
				width: 25%;
				flex: 1 0 calc(25% - 16px);
				@media only screen and (max-width: 768px) {
					width: 50%;
					flex: 1 0 calc(50% - 16px);
				}
				picture {
					height: 100%;
					width: 100%;
					img {
						width: 100%;
						height: 100%;
						object-fit: cover;
						aspect-ratio: 1 / 1;
					}
				}
			}
			.img-wrapper {
				overflow: hidden;
				.tile-overlay {
					position: absolute;
					top: 0;
					left: 0;
					width: 100%;
					height: 100%;
					z-index: 10;
					display: block;
					opacity: 0.5;
				}
			}
			a {
				&:hover {
					img {
						transform: scale(1.1);
						transition: transform 0.3s ease-in-out;
					}
				}
			}
			h3 {
				position: absolute;
				top: 0;
				left: 0;
				right: 0;
				margin: auto;
				width: 100%;
				top: 50%;
				transform: translateY(-50%);
				color: #FFFFFF;
				line-height: 47px;
				font-weight: 500;
				font-size: 46px;
				z-index: 20;
				@media only screen and (max-width: 1280px) {
					line-height: 24px;
					font-size: 23px;
				}
			}
		}
		.product-tile {
			display: flex;
			flex-flow: column wrap;
			justify-content: space-between;
			@media only screen and (max-width: 767px) {
				flex: 0 1 100%;
			}
			.product-title {
				margin: 8px 0;
			}
			.product-details {
				text-align: center;
			}
			.product-price {
				margin-bottom: 8px;
			}
			.cta-wrapper {
				.btn {
					width: 100%;
					max-width: 100%;
					border: 1px solid #FFFFFF;
				}
			}
		}
		img {
			aspect-ratio: 1 / 1;
			width: 100%;
		}
		.image-title {
			padding: 10px 0;
			text-align: center;
		}
		h3 {
			font-size: 20px;
			line-height: 26px;
		}
	}
}

.image-tile-section {
	padding: 50px 0;
	@media only screen and (max-width: 768px) {
		padding: 30px 0;
	}
	.section-row {
		max-width: 1240px;
		padding: 0 20px;
		margin: 0 auto;
	}
	.image-gallery {
		display: flex;
		&.col-right {
			flex-flow: column;
			gap: 20px;
			.img-wrapper {
				picture {
					img {
						aspect-ratio: 3 / 2;
					}
				}
			}
		}
		&.linear-grid {
			display: flex;
			flex-flow: row wrap;
			margin: 0 -10px;
			.img-wrapper {
				overflow: hidden;
				margin: 0 10px 20px;
				width: calc(50% - 20px);
			}
		}
	}
	.gallery-row {
		display: flex;
		align-items: stretch;
		flex-flow: row wrap;
		margin: 0 -10px 20px;
		.image-gallery {
			margin: 0 10px;
			width: calc(50% - 20px);
		}
		&:nth-child(even) {
			flex-flow: row-reverse;
		}
	}
	.img-wrapper {
		overflow: hidden;
		width: 100%;
		picture {
			img {
				width: 100%;
				height: 100%;
				aspect-ratio: 420 / 500;
				object-fit: cover;
				transform: scale(1);
				transition: transform 0.3s ease-in-out;
			}
		}
		&:hover {
			img {
				transform: scale(1.1);
				transition: transform 0.3s ease-in-out;
			}
		}
	}
}

.image-text-section {
	padding: 50px 0;
	.section-row {
		display: flex;
		flex-flow: row wrap;
		align-items: center;
		margin: 0 auto;
		padding: 0 16px;
		&.text-image {
			flex-flow: row-reverse;
			@media only screen and (max-width: 768px) {
				flex-flow: row wrap;
			}
		}
	}
	.section-col {
		width: 50%;
		&.text-col {
			display: flex;
			align-items: center;
			justify-content: center;
		}
		@media only screen and (max-width: 768px) {
			width: 100%;
		}
	}
	picture {
		img {
			width: 100%;
			height: auto;
			aspect-ratio: 420 / 500;
			object-fit: contain;
		}
	}
	.content-wrapper {
		max-width: 480px;
		padding: 30px 15px;
		text-align: center;
	}
	h2 {
		font-size: 40px;
		line-height: 48px;
		margin: 0 0 20px;
		color: #d04708;
		@media only screen and (max-width: 768px) {
			font-size: 24px;
			line-height: 32px;
			margin: 0 0 15px;
		}
	}
	.section-desc {
		margin-bottom: 35px;
		p {
			margin: 0 0 14px;
			font-size: 22px;
			font-weight: 400;
			line-height: 26px;
			color: #232323;
			@media only screen and (max-width: 768px) {
				font-size: 18px;
			}
		}
	}
	.cta-wrapper {
		display: flex;
		justify-content: center;
		a {
			display: block;
			color: #FFFFFF;
			background: #d04708;
			border-radius: 5px;
			padding: 12px 16px;
			min-width: 150px;
		}
	}
}

.title-banner-section {
	padding: 75px 0;
	text-align: center;
	position: relative;
	&.no-desc {
		padding: 112px 0;
	}
	.section-row {
		padding: 0 16px;
		position: relative;
		z-index: 20;
	}
	.section-bg {
		position: absolute;
		width: 100%;
		top: 0;
		left: 0;
		height: 100%;
		display: block;
		z-index: 10;
	}
	.section-title {
		font-size: 50px;
		line-height: 54px;
		font-weight: 700;
		margin: 0;
		@media only screen and (max-width: 768px) {
			font-size: 38px;
			line-height: 42px;
		}
	}
	.section-desc {
		margin-top: 20px;
		p {
			margin: 0;
			font-size: 18px;
			line-height: 24px;
			font-weight: 400;
			@media only screen and (max-width: 768px) {
				font-size: 14px;
			}
		}
	}
	picture {
		img {
			width: 100%;
			height: 100%;
			object-fit: cover;
		}
	}
}