:root {
	/* Colours */
	--light-purple: #d6007f;
	--purple: #2c256c;
	--blue: #00b0ea;

	/* Fonts */
	--ivy: "ivysoft-variable", sans-serif;

	/* Layout */
	--gap: 20px;
	--content-width: 1400px;
	/* --content-width-med: 1300px;
	--content-width-narrow: 1180px; */
	--radius: 5px;
}

@font-face {
	font-family: "Font Awesome 6 Free";
	font-style: normal;
	font-weight: 900;
	font-display: block;
	src: url("../fa/webfonts/fa-solid-900.woff2");
}

@font-face {
	font-family: "Font Awesome 6 Brands";
	font-style: normal;
	font-weight: 400;
	font-display: block;
	src: url("../fa/webfonts/fa-brands-400.woff2");
}

body {
	font-family: var(--ivy);
	font-size: 1rem;
	color: var(--purple);
	letter-spacing: 0.0625rem;
}

h1,
h2,
h3,
h4 {
	font-family: var(--ivy);
	color: var(--purple);
	font-weight: 300;
	font-size: 3.25rem;
	margin: 0 0 1rem 0;
	padding: 0;
	line-height: 1;
}

h2 {
	margin-bottom: 2rem;
	font-size: 3.25rem;
}

P {
	margin-top: 0;
	margin-bottom: 1rem;
	color: var(--purple);
	line-height: 1.2;
}

ul {
	margin-bottom: 1em;
}

li {
	line-height: 1.2;
}

a {
	text-decoration: none;
	color: var(--light-purple);
}

.button {
	background-color: var(--light-purple);
	font-size: 0.875rem;
	border-radius: 10px;
	text-transform: uppercase;
	padding: 7px 20px 7px 20px;
	line-height: 1.5;
}

.section-inner {
	max-width: var(--content-width);
	padding: 0 20px;
	margin-left: auto;
	margin-right: auto;
	position: relative;
}

section.link-boxes {
	margin-bottom: 80px;
	.section-inner {
		display: grid;
		grid-template-columns: 1fr 1fr 1fr;
		gap: 2px;
	}
	.link-box {
		position: relative;
		padding: 40px;
		aspect-ratio: 3/4;
		overflow: hidden;
		background: no-repeat center center;
		background-size: cover;

		h2 {
			color: white;
			font-weight: 400;
			text-shadow: 2px 2px 8px rgba(0, 0, 0, 0.5);
		}

		p {
			font-size: 2.25rem;
			line-height: 1.15;
			color: white;
			margin-bottom: 20px;
			font-weight: 200;
		}

		a.expand {
			color: var(--blue);
			font-weight: 700;
			position: relative;
			padding-left: 20px;
			font-size: 0.875rem;
		}
		a.expand::before {
			content: "\f067";
			font-family: "Font Awesome 6 Free";
			font-weight: 900;
			position: absolute;
			left: 0;
			padding-left: 1px;
			top: 50%;
			transform: translateY(-50%);
			width: 14px;
			height: 14px;
			display: inline-flex;
			align-items: center;
			justify-content: center;
			background: var(--blue);
			color: var(--purple);
			border-radius: 50%;
			font-size: 0.625rem;
		}

		&:nth-child(1) {
			background-color: var(--purple);
		}
		&:nth-child(2) {
			border-bottom: 10px solid var(--light-purple);
			.link-box-content {
				background-color: var(--light-purple);
				background-image: none;
			}
		}
		&:nth-child(3) {
			background-color: green;
			border-bottom: 10px solid var(--blue);
			.link-box-content {
				background-color: var(--blue);
				background-image: none;
			}
		}

		.link-box-content {
			position: absolute;
			left: 0;
			bottom: 0;
			width: 100%;
			background: inherit;
			padding: 40px;
			color: white;
			opacity: 0;
			pointer-events: none;
			transform: translateY(100%);
			transition:
				opacity 0.3s,
				transform 0.3s;
			z-index: 2;

			p {
				font-size: 1rem;
				margin-bottom: 5px;
				line-height: 1.2;
			}

			a {
				color: var(--purple);
				font-size: 0.875rem;
				font-weight: 700;
			}
		}
		&:hover .link-box-content {
			opacity: 1;
			pointer-events: auto;
			transform: translateY(0);
			animation: animate__slideInUp 0.4s;
		}
	}
	@media (max-width: 1400px) {
		.link-box {
			h2 {
				font-size: 2.5rem;
			}
			p {
				font-size: 1.875rem;
			}
			&:nth-child(1) {
				grid-column: span 2;
				aspect-ratio: auto;
			}
			&:nth-child(2) {
				aspect-ratio: 1/1;
			}
			&:nth-child(3) {
				aspect-ratio: 1/1;
			}
		}
		.section-inner {
			grid-template-columns: 1fr 1fr;
		}
	}
	@media (max-width: 900px) {
		.link-box {
			h2 {
				font-size: 1.875rem;
			}
			p {
				font-size: 1.875rem;
			}
			padding: 20px;
			&:nth-child(1) {
				grid-column: span 2;
			}
			&:nth-child(2) {
				grid-column: span 2;
				aspect-ratio: 3/2;
			}
			&:nth-child(3) {
				grid-column: span 2;
				aspect-ratio: 3/2;
			}
		}
	}
}

section.link-boxes-2 {
	margin-bottom: 80px;
	.section-inner {
		display: grid;
		grid-template-columns: repeat(auto-fit, minmax(440px, 1fr));
		gap: 2px;
	}
	.link-box {
		position: relative;
		padding: 40px;
		aspect-ratio: 4/3;
		overflow: hidden;
		background: no-repeat center center;
		background-size: cover;
		border-bottom: 10px solid var(--purple);

		h2 {
			color: white;
			font-weight: 400;
			line-height: 1;
			text-shadow: 2px 2px 8px rgba(0, 0, 0, 0.5);
		}

		p {
			font-size: 2.25rem;
			line-height: 1.15;
			color: white;
			margin-bottom: 20px;
			font-weight: 200;
		}

		a.expand {
			color: var(--blue);
			font-weight: 700;
			position: relative;
			padding-left: 20px;
			font-size: 0.875rem;
		}
		a.expand::before {
			content: "\f067";
			font-family: "Font Awesome 6 Free";
			font-weight: 900;
			position: absolute;
			left: 0;
			top: 50%;
			transform: translateY(-50%);
			width: 14px;
			height: 14px;
			display: inline-flex;
			align-items: center;
			justify-content: center;
			background: var(--blue);
			color: var(--purple);
			border-radius: 50%;
			font-size: 0.625rem;
		}

		.link-box-content {
			position: absolute;
			left: 0;
			bottom: 0;
			width: 100%;
			background: inherit;
			padding: 40px;
			color: white;
			opacity: 0;
			pointer-events: none;
			transform: translateY(100%);
			transition:
				opacity 0.3s,
				transform 0.3s;
			z-index: 2;
			background-color: var(--purple);
			background-image: none;

			p {
				font-size: 1rem;
				margin-bottom: 5px;
				line-height: 1.2;
			}

			a {
				color: var(--blue);
				font-size: 0.875rem;
				font-weight: 700;
			}
		}
		&:hover .link-box-content {
			opacity: 1;
			pointer-events: auto;
			transform: translateY(0);
			animation: animate__slideInUp 0.4s;
		}
	}
	@media (max-width: 1400px) {
		.link-box {
			h2 {
				font-size: 2.5rem;
			}
		}
	}
	@media (max-width: 900px) {
		.section-inner {
			grid-template-columns: 1fr;
		}
		.link-box {
			h2 {
				font-size: 1.875rem;
			}
			padding: 20px 20px 40px 20px;
			.link-box-content {
				padding: 20px;
			}
		}
	}
}

section.large-text-block {
	margin-bottom: 80px;

	P {
		font-size: 3.25rem;
		margin-right: 33%;
		margin-left: 40px;
		line-height: 1.1;
		font-weight: 300;
		color: var(--blue);
	}

	&.left_hand_gap {
		p {
			margin-left: calc(33% + 2px);
			margin-right: 0;
		}
	}
	&.less_margin {
		margin-bottom: 40px;
	}
	@media (max-width: 1400px) {
		p {
			font-size: 2.5rem;
			margin-right: 0;
		}
	}
	@media (max-width: 900px) {
		P {
			margin-left: 0;
			font-size: 1.875rem;
		}
		&.left_hand_gap {
			p {
				margin-left: 0;
				margin-right: 0;
			}
		}
	}
}

section.accordion-1 {
	margin-bottom: 80px;

	h2 {
		margin-left: 33%;
	}

	.accordion-1-row {
		display: grid;
		grid-template-columns: 1fr 1fr 1fr;
		gap: 2px;
		margin-bottom: 2px;
		cursor: pointer;

		&.active .accordion-1-slide {
			max-height: 600px;
			opacity: 1;
			/* margin-bottom: -40px; */
		}
	}

	.accordion-1-text {
		padding: 0 40px 0px 40px;
		h3 {
			color: var(--blue);
			font-size: 1.375rem;
			font-weight: 600;
		}

		a.accordion-1-read-more {
			font-size: 1rem;
			color: var(--purple);
			font-weight: 700;
		}

		ul {
			margin: 0 0 1em 0;
			padding: 0;
			li {
				position: relative;
				list-style: none;
				padding-left: 2em;
				margin-bottom: 0.5em;
			}
			li::before {
				content: "\f058";
				font-family: "Font Awesome 6 Free";
				font-weight: 900;
				position: absolute;
				left: 0;
				top: 0;
				width: 1.5rem;
				height: 1.5rem;
				display: flex;
				align-items: center;
				justify-content: center;
				color: var(--blue);
				font-size: 1em;
				line-height: 1;
				border: none;
			}
		}

		.accordion-1-slide {
			max-height: 0;
			overflow: hidden;
			transition:
				max-height 0.5s ease,
				opacity 0.5s;
			padding: 0px 0 40px 0;
			opacity: 0;
		}
	}
	.accordion-1-image {
		grid-column: span 2;
		background: no-repeat;
		background-position: center center;
		background-size: cover;
		min-height: 150px;
	}
	@media (max-width: 1400px) {
		h2 {
			font-size: 2.5rem;
		}
	}
	@media (max-width: 900px) {
		.accordion-1-row {
			grid-template-columns: 1fr 1fr;
			margin-bottom: 20px;
		}
		h2 {
			margin-left: 0%;
			font-size: 1.875rem;
		}
		h3 {
			margin-bottom: 10px;
		}
		.accordion-1-text {
			grid-column: 1 / 3;
			padding: 0 0px 0px 0px;
			.accordion-1-slide {
				padding: 0px 0 0px 0;
			}
			a.accordion-1-read-more {
				margin-bottom: 20px;
				display: block;
			}
		}
		.accordion-1-image {
			grid-column: 1 / 3;
			grid-row: 2 / 3;
		}
	}
}

section.accordion-2 {
	margin-bottom: 80px;

	h2 {
		margin-left: calc(33% + 2px);
	}

	.accordion-2-row {
		display: grid;
		grid-template-columns: 1fr 1fr 1fr;
		gap: 2px;
		margin-bottom: 2px;
		cursor: pointer;

		&.active .accordion-2-slide {
			max-height: 600px;
			opacity: 1;
			/* margin-bottom: -40px; */
		}
		&.active .accordion-2-image {
			padding-bottom: 100%;

			span {
				opacity: 1;
			}
		}
		&.active .accordion-2-image-1 {
			opacity: 0;
		}
		&.active .accordion-2-image-2 {
			opacity: 0;
		}
		&.active .accordion-2-image-3 {
			opacity: 1;
		}
		&.active .accordion-2-image-4 {
			opacity: 1;
		}
	}

	.accordion-2-text {
		padding: 0 40px 0px 40px;
		h3 {
			color: var(--blue);
			font-size: 1.375rem;
			font-weight: 600;
		}
		a.accordion-2-read-more {
			font-size: 1rem;
			color: var(--purple);
			font-weight: 700;
		}
		.accordion-2-slide {
			max-height: 0;
			overflow: hidden;
			transition: all 0.5s ease;
			padding: 20px 0 40px 0;
			opacity: 0;
		}
	}
	.accordion-2-image {
		background: no-repeat;
		background-position: center center;
		background-size: cover;
		padding-bottom: 25%;
		transition: all 0.5s ease;
		position: relative;

		span {
			color: white;
			display: block;
			font-size: 1.375rem;
			padding: 10px 20px 10px 20px;
			opacity: 0;
			position: absolute;
			top: 0;
			left: 0;
			text-shadow: 2px 2px 8px rgba(0, 0, 0, 0.5);
		}
	}
	.accordion-2-image-1 {
		grid-column: 2 / 3; /* occupies the second grid cell */
		grid-row: 1 / 2;
		opacity: 1;
	}
	.accordion-2-image-2 {
		grid-column: 3 / 4; /* occupies the second grid cell */
		grid-row: 1 / 2;
		opacity: 1;
	}
	.accordion-2-image-3 {
		grid-column: 2 / 3; /* occupies the second grid cell */
		grid-row: 1 / 2;
		opacity: 0;
	}
	.accordion-2-image-4 {
		grid-column: 3 / 4; /* occupies the second grid cell */
		grid-row: 1 / 2;
		opacity: 0;
	}
	@media (max-width: 1400px) {
		h2 {
			font-size: 2.5rem;
		}
	}
	@media (max-width: 900px) {
		.accordion-2-row {
			grid-template-columns: 1fr 1fr;
			margin-bottom: 20px;
		}
		h2 {
			margin-left: 0%;
			font-size: 1.875rem;
		}
		h3 {
			margin-bottom: 10px;
		}
		.accordion-2-text {
			grid-column: 1 / 3;
			padding: 0 0px 0px 0px;
		}
		.accordion-2-image-1 {
			grid-column: 1 / 2; /* occupies the second grid cell */
			grid-row: 2 / 3;
		}
		.accordion-2-image-2 {
			grid-column: 2 / 3; /* occupies the second grid cell */
			grid-row: 2 / 3;
		}
		.accordion-2-image-3 {
			grid-column: 1 / 2; /* occupies the second grid cell */
			grid-row: 2 / 3;
		}
		.accordion-2-image-4 {
			grid-column: 2 / 3; /* occupies the second grid cell */
			grid-row: 2 / 3;
		}
	}
}

section.faqs-section {
	margin-bottom: 80px;
	/* display: none; */
	.section-inner {
		display: grid;
		grid-template-columns: 1fr 1fr 1fr;
	}

	h2 {
		grid-column: 2 / 4;
		grid-row: 1 / 2;
	}
	.col-1 {
		grid-row: 2 / 4;
		img {
			width: 100%;
			aspect-ratio: 1/1;
			object-fit: cover;
		}
		padding-right: 40px;
	}
	.col-2 {
		grid-row: 2 / 4;
		grid-column: 2 / 4;
	}
	h3 {
		font-size: 1.125rem;
		padding: 20px 60px 20px 0px;
		margin-bottom: 0;
		color: var(--blue);
		font-weight: 500;
		cursor: pointer;
		transition: all 0.3s ease;

		position: relative;
		&::after {
			content: "\f067";
			font-family: "Font Awesome 6 Free";
			font-weight: 900;
			position: absolute;
			right: 20px;
			top: 50%;
			transform: translateY(-50%);
			font-size: 0.9rem;
			color: white;
			background: var(--light-purple);
			border-radius: 50%;
			padding: 0px 0 0 2px;
			width: 20px;
			height: 20px;
			display: flex;
			align-items: center;
			justify-content: center;
			pointer-events: none;
			line-height: 1;
			text-align: center;
		}
	}
	.open h3 {
		&::after {
			content: "\f068";
			font-family: "Font Awesome 6 Free";
			font-weight: 900;
			padding: 0px 0 0 2px;
		}
	}
	.faq-item {
		border-top: 2px solid var(--purple);
		visibility: hidden;
	}

	.faq-item:last-child {
		border-bottom: 2px solid var(--purple);
	}
	.faq-answer {
		margin-left: 20px;
	}
	ul {
		margin: 0 0 1em 0;
		padding: 0;
		li {
			position: relative;
			list-style: none;
			padding-left: 2em;
			margin-bottom: 0.5em;
		}
		li::before {
			content: "\f058";
			font-family: "Font Awesome 6 Free";
			font-weight: 900;
			position: absolute;
			left: 0;
			top: 0;
			width: 1.5rem;
			height: 1.5rem;
			display: flex;
			align-items: center;
			justify-content: center;
			color: var(--blue);
			font-size: 1em;
			line-height: 1;
			border: none;
		}
	}
	@media (max-width: 1400px) {
		h2 {
			grid-column: 1 / 4;
			font-size: 2.5rem;
		}
	}
	@media (max-width: 900px) {
		h2 {
			font-size: 1.875rem;
		}
		.col-1 {
			display: none;
		}
		.col-2 {
			grid-column: 1 / 4;
		}
	}
}

section.info-slider {
	margin-bottom: 80px;
	.section-inner {
		max-width: calc(var(--content-width) + 40px);
	}
	margin-bottom: 80px;

	h2 {
		margin-bottom: 10px;
	}
	/*slider*/
	.swiper {
		width: 100%;
		position: relative;

		&::before,
		&::after {
			content: "";
			position: absolute;
			top: 0;
			width: 20px;
			height: 100%;
			z-index: 2;
		}
		&::before {
			left: 0;
			background: linear-gradient(to right, white 0%, transparent 100%);
		}
		&::after {
			right: 0;
			background: linear-gradient(to left, white 0%, transparent 100%);
		}

		/* Swiper slide styling */
		.swiper-slide {
			display: flex;
			flex-direction: row;
			/* padding: 30px 10px 30px 10px; */
			gap: 20px;
			padding: 0 0 0 20px;
			height: auto;
			width: 780px;
		}

		.slide-col-1 {
		}

		.slide-col-2 {
			display: flex;
			flex-direction: column;
			justify-content: center;
			h3,
			h4 {
				font-size: 1.625rem;
				margin-bottom: 5px;
				color: var(--light-purple);
				font-weight: 600;
			}
		}

		.image {
			display: block;
			width: 280px;
			height: 240px;
			background-size: cover;
			background-position: center;
			border-radius: 10px;
		}
	}

	/* Swiper navigation buttons */
	.prev,
	.next {
		position: absolute;
		top: calc(50% - 20px);
		width: 32px;
		height: 32px;
		background-color: transparent;
		border-radius: 50%;
		border: 2px solid var(--blue);
		display: flex;
		justify-content: center;
		align-items: center;
		cursor: pointer;
		z-index: 2;
		transition:
			all 0.3s ease,
			transform 0.3s ease;
	}

	/* Left button positioning */
	.prev {
		left: -40px;
	}

	/* Right button positioning */
	.next {
		right: -40px;
	}

	/* Hover effect */
	.prev:hover,
	.next:hover {
		background-color: var(--blue);
	}

	/* Icon styling inside buttons */
	.prev::before,
	.next::before {
		font-family: "Font Awesome 6 Free";
		font-weight: 900;
		font-size: 1.125rem;
		color: var(--blue);
		transition: color 0.3s ease;
	}

	.prev:hover::before,
	.next:hover::before {
		color: white;
	}

	/* Specific icons for prev/next */
	.prev::before {
		content: "\f060";
	}

	.next::before {
		content: "\f178";
	}

	@media (max-width: 1599px) {
		.section-inner {
			padding: 0 60px;
		}
		/* Left button positioning */
		.prev {
			left: 20px;
		}

		/* Right button positioning */
		.next {
			right: 20px;
		}
	}
	@media (max-width: 900px) {
		.swiper {
			.swiper-slide {
				display: flex;
				flex-direction: column;
				width: 300px;
			}

			.slide-col-2 {
				h3,
				h4 {
					font-size: 1.25rem;
				}
				text-align: center;
			}
		}
	}
	@media (max-width: 600px) {
		.swiper {
			.slide-col-1 {
				/* padding-right: 40px; */
				/* height: 200px; */
				padding: 0 20px 0 20px;
			}
			.swiper-slide {
				padding: 0 0 0 0px;
			}
			.image {
				max-width: 100%;
				height: auto;
				max-height: 100%;
				aspect-ratio: 1/1;
				display: block;
				margin: 0 auto 0 auto;
			}

			.slide-col-2 {
				/* padding-right: 40px; */
				padding: 0 20px 0 20px;
			}
		}
	}
}

section.main-text {
	margin-bottom: 80px;
	&.less-margin {
		margin-bottom: 40px;
	}
	.section-inner {
		display: grid;
		grid-template-columns: 1fr 1fr 1fr;
		gap: 2px;
	}
	.col-1 {
		padding: 0 40px 0 40px;

		h1 {
			color: var(--light-purple);
			font-size: 3.25rem;
			font-weight: 300;
		}
	}
	.col-2 {
		grid-column: 2 / 4;
	}

	p {
		font-size: 1.375rem;
		font-weight: 300;
	}
	div.large p {
		font-size: 3.25rem;
		line-height: 1.1;
		margin-bottom: 2rem;
		font-weight: 300;
	}
	ul {
		margin: 0 0 1em 40px;
		padding: 0;
		font-size: 1.375rem;
		li {
			position: relative;
			list-style: none;
			padding-left: 2em;
			margin-bottom: 0.5em;
		}
		li::before {
			content: "\f058";
			font-family: "Font Awesome 6 Free";
			font-weight: 900;
			position: absolute;
			left: 0;
			top: 0;
			width: 1.5rem;
			height: 1.5rem;
			display: flex;
			align-items: center;
			justify-content: center;
			color: var(--blue);
			font-size: 1em;
			line-height: 1;
			border: none;
		}
	}

	span.read-more {
		color: var(--light-purple);
		font-weight: 700;
		position: relative;
		padding-left: 20px;
		font-size: 0.875rem;
		display: block;
		cursor: pointer;
		user-select: none;
	}
	span.read-more::before {
		content: "\f067";
		font-family: "Font Awesome 6 Free";
		font-weight: 900;
		position: absolute;
		left: 0;
		padding: 0 0 0 1px;
		top: 50%;
		transform: translateY(-50%);
		width: 14px;
		height: 14px;
		display: inline-flex;
		align-items: center;
		justify-content: center;
		background: var(--light-purple);
		color: white;
		border-radius: 50%;
		font-size: 0.625rem;
	}
	span.read-more.open::before {
		content: "\f068";
	}
	@media (max-width: 1400px) {
		.col-1 {
			h1 {
				font-size: 2.5rem;
			}
		}

		div.large p {
			font-size: 2.5rem;
		}
	}
	@media (max-width: 900px) {
		.col-1 {
			padding: 0;

			h1 {
				font-size: 1.875rem;
				br {
					display: none;
				}
			}
		}
		p,
		ul {
			font-size: 1.2rem;
		}
		div.large p {
			font-size: 1.875rem;
		}
		.section-inner {
			display: block;
		}
	}
}

section.cta-banner {
	margin-bottom: 80px;
	background: no-repeat center center / cover;
	aspect-ratio: 5/1;
	.cta-banner-top {
		width: 100%;
		position: relative;
		background-color: var(--blue);
		text-align: center;
		p {
			font-size: 0.875rem;
			padding: 5px 20px 5px 20px;
			color: white;
		}
	}
	.section-inner {
		display: flex;
		justify-content: center;
		flex-direction: column;
		height: 100%;
		p {
			color: white;
			font-size: 3.25rem;
			font-weight: 300;
			line-height: 1.1;
			text-shadow: 2px 2px 8px rgba(0, 0, 0, 0.5);
			padding: 0 0 0 40px;
			max-width: 440px;
			margin-bottom: 0;
		}
	}
	@media (max-width: 1400px) {
		aspect-ratio: auto;
		a.button {
			margin-bottom: 40px;
		}
		.section-inner {
			P {
				font-size: 2.5rem;
			}
		}
	}
	@media (max-width: 900px) {
		.section-inner {
			P {
				padding: 0;
				font-size: 1.875rem;
			}
		}
	}
}

section.about-us-block {
	margin-bottom: 80px;
	.section-inner {
		display: grid;
		grid-template-columns: 1fr 1fr 1fr;
		gap: 2px;
	}
	.col-1 {
		padding: 0 40px 0 40px;

		p {
			color: var(--light-purple);
			font-size: 3.25rem;
			font-weight: 300;
			line-height: 1.1;
		}
		p:first-child {
			margin-bottom: 5rem;
		}
	}
	.col-2 {
		grid-column: 2 / 4;
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 2px;

		img {
			width: 100%;
			aspect-ratio: 1/1;
			object-fit: cover;
		}

		.col-2-left {
			p:not(:has(img)) {
				margin-right: 20px;
			}
		}
		.col-2-right {
			p:not(:has(img)) {
				margin-right: 20px;
			}
		}
	}

	p {
		font-size: 1rem;
	}
	@media (max-width: 1400px) {
		.col-1 {
			p {
				font-size: 2.5rem;
			}
		}
		h2 {
			grid-column: 1 / 4;
			font-size: 2.5rem;
		}
	}
	@media (max-width: 1100px) {
		.col-1 {
			grid-column: 1 / 4;
			padding: 0;
			p {
				&:first-child {
					margin-bottom: 20px;
				}
			}
		}
		.col-2 {
			grid-column: 1 / 4;
		}
	}
	@media (max-width: 900px) {
		.col-1 {
			p {
				font-size: 1.875rem;
			}
		}
		h2 {
			grid-column: 1 / 4;
			font-size: 1.875rem;
		}
	}
	@media (max-width: 600px) {
		.col-2 {
			display: block;
			.col-2-left {
				margin-bottom: 40px;
			}
		}
	}
}

section.contact-form {
	margin-bottom: 80px;

	.section-inner {
		.large-text {
			font-size: 1.625rem;
			color: var(--purple);
			margin-left: calc(33% + 2px);

			a {
				white-space: nowrap;
			}
		}

		.wpcf7-form {
			display: grid;
			grid-template-columns: repeat(3, 1fr);
			gap: 20px;
			margin-left: calc(33% + 2px);
			margin-bottom: 40px;

			br {
				display: none;
			}

			input:not([type="submit"]),
			select,
			textarea {
				border: 1px solid #cccccc;
			}
			input::placeholder,
			textarea::placeholder {
				color: #bbb;
				opacity: 1;
			}
			select option:first-child,
			select:invalid,
			select option[disabled] {
				color: #bbb;
			}
		}

		.wpcf7-form > p {
			margin: 0 0 0px 0;
			display: flex;
			flex-direction: column;
			grid-column: span 1;

			label {
				font-size: 0.875rem;
				color: var(--purple);
				margin-bottom: 5px;
			}
		}

		.wpcf7-form > p:nth-of-type(1) {
			grid-column: 1;
		}
		.wpcf7-form > p:nth-of-type(2) {
			grid-column: 2;
		}
		.wpcf7-form > p:nth-of-type(3) {
			grid-column: 3;
		}

		.wpcf7-form > p:nth-of-type(4) {
			grid-column: 1 / -1;
		}

		.wpcf7-form > p:nth-of-type(5) {
			grid-column: 1 / -1;
		}

		.wpcf7-form > p:nth-of-type(6) {
			grid-column: 1 / -1;
		}

		.wpcf7-form > p:nth-of-type(7) {
			grid-column: 1 / 4;
			align-items: start;

			.wpcf7-list-item {
				display: inline-block;
				margin: 0 0 0 0;
			}

			.wpcf7-acceptance input[type="checkbox"] {
				opacity: 0;
				width: 0;
				height: 0;
				position: absolute;
			}
			.wpcf7-acceptance {
				display: flex;
				align-items: center;
				font-size: 1rem;
			}
			.wpcf7-acceptance label {
				position: relative;
				padding-left: 28px;
				cursor: pointer;
				display: inline-block;
				line-height: 20px;
			}

			.wpcf7-acceptance label::before {
				content: "";
				position: absolute;
				left: 0;
				top: 2px;
				width: 18px;
				height: 18px;
				border: 2px solid #bbb;
				border-radius: 4px;
				background: #fff;
				box-sizing: border-box;
				transition: border-color 0.2s;
			}

			.wpcf7-acceptance input[type="checkbox"]:checked + *::before {
				border-color: #1976d2;
				background: #2196f3;
			}

			.wpcf7-acceptance input[type="checkbox"]:checked + *::after {
				content: "\f00c";
				font-family: "Font Awesome 6 Free";
				font-weight: 900;
				position: absolute;
				left: 4px;
				top: 2px;
				font-size: 0.75rem;
				color: var(--purple);
				pointer-events: none;
			}
		}

		.wpcf7-form > p:nth-of-type(8) {
			grid-column: 1 / -1;
			justify-self: start;

			[disabled].button,
			[disabled][type="submit"] {
				background-color: var(--light-purple);
			}
		}

		.wpcf7-form .wpcf7-response-output {
			grid-column: 1 / -1;
		}

		/* @media (max-width: 800px) {
			.wpcf7-form {
				grid-template-columns: 1fr;
				gap: 16px;
			}
			.wpcf7-form > p {
				grid-column: 1;
			}
		} */
	}
	@media (max-width: 1400px) {
	}
	@media (max-width: 900px) {
		.section-inner {
			.large-text {
				margin-left: 0;
				overflow-wrap: anywhere;
				font-size: 1.5rem;
			}

			.wpcf7-form {
				margin-left: 0;
			}
			.wpcf7-form > p:nth-of-type(1) {
				grid-column: 1 / -1;
			}
			.wpcf7-form > p:nth-of-type(2) {
				grid-column: 1 / 3;
			}
		}
		P {
		}
	}
	@media (max-width: 600px) {
		.section-inner {
			.large-text {
				font-size: 1.2rem;
			}
		}
	}
}

section.google-reviews {
	border-top: 1px solid;
	margin-bottom: 40px;
	padding: 20px 0 0 0;
	.WidgetTitle__Header-sc-c581efe-2.dNtlyB {
		display: none;
	}

	.section-inner {
	}
}

footer {
	position: relative;
	background-color: var(--light-purple);
	font-size: 0.9375rem;

	.footer-inner {
		display: block;
		position: relative;
		display: grid;
		grid-template-columns: 1fr 1fr 1fr 1fr 1fr;
		max-width: var(--content-width);
		padding: 40px 20px 0 20px;
		margin-left: auto;
		margin-right: auto;
		gap: 40px;
	}

	> div {
		margin: 0 0 var(--std-margin);
	}

	ul {
		margin: 0;
		padding: 0;

		li {
			padding: 0;
			display: block;
			line-height: 1.4;
			color: white;
		}

		a {
			color: white;
			text-decoration: none;
			overflow-wrap: anywhere; /* Ensures wrapping in all browsers */

			&:hover {
				color: var(--purple);
			}
		}

		.phone a,
		.mobile a,
		.email a,
		.location {
			padding-left: 27px;
			position: relative;
		}

		.phone a::before,
		.mobile a::before,
		.email a::before,
		.location::before {
			font-family: "Font Awesome 6 Free";
			font-weight: 400;
			font-style: normal;
			font-size: 1.25rem;
			color: var(--purple);
			margin-right: 10px;
			position: absolute;
			left: 0px;
			top: -3px;
		}

		.phone a::before {
			content: "\f095";
		}
		.mobile a::before {
			content: "\f3cd";
			margin-right: 15px;
		}
		.email a::before {
			content: "\f0e0";
		}
		.location::before {
			content: "\f3c5";
			margin-right: 15px;
		}
	}

	a.logo {
		max-width: 210px;
		aspect-ratio: 21/17;
		background: url(../images/logo-2.svg) left / contain no-repeat;
		text-indent: -9999px;
		white-space: nowrap;
		overflow: hidden;
		display: block;
		width: 100%;
	}

	.col-1 {
		grid-column: span 2;
		padding-bottom: 20px;
		span.no-break {
			white-space: nowrap;
		}
	}

	.col-2 {
		padding-bottom: 20px;
	}

	.col-3 {
		padding-bottom: 20px;
	}

	.soc-med {
		display: flex;
		flex-direction: row;
		justify-content: flex-end;
		gap: 30px;
		/* align-items: center; */

		padding: 0px 0px 0px 0px;
		margin: 10px 0 0 0;
		li {
			padding: 0;
			margin: 0;
			list-style: none;
			/* width: 1rem;
			height: 1rem; */
		}

		a {
			display: flex;
			align-items: center;
			justify-content: center;
			width: 100%;
			height: 100%;
			background: none;
			text-indent: 0;
			white-space: nowrap;
			overflow: visible;
			font-size: 1.5625rem;
			color: #fff;

			span {
				position: absolute;
				width: 1px;
				height: 1px;
				padding: 0;
				margin: -1px;
				overflow: hidden;
				clip: rect(0, 0, 0, 0);
				white-space: nowrap;
				border: 0;
			}
		}

		.fb a::before,
		.ig a::before,
		.li a::before {
			font-family: "Font Awesome 6 Brands";
			font-weight: 400;
			font-style: normal;
			font-size: 1.5625rem;
			color: #fff;
		}

		.fb a::before {
			content: "\f09a";
		}
		.ig a::before {
			content: "\f16d";
		}
		.li a::before {
			content: "\f0e1";
		}
	}

	.footer-footer {
		background-color: var(--purple);
		font-size: 0.75rem;
		color: white;

		.col-1 {
			padding-bottom: 0;
		}

		.col-2 {
			padding-bottom: 0;
		}

		.col-3 {
			padding-bottom: 0;
		}

		.footer-footer-inner {
			display: block;
			position: relative;
			display: flex;
			flex-wrap: wrap;
			max-width: var(--content-width);
			padding: 20px;
			margin-left: auto;
			margin-right: auto;
			justify-content: space-between;
		}

		a {
			color: white;
		}

		.col-2 {
			a {
			}
			a:not(:last-child)::after {
				content: "|";
				margin: 0 4px 0 8px;
				color: white;
			}
		}
	}
	@media (max-width: 1400px) {
	}
	@media (max-width: 900px) {
		.logo {
			margin-bottom: 20px;
		}

		.soc-med {
			justify-content: flex-start;
		}
		.footer-inner {
			display: block;
		}
		.footer-footer {
			/* padding: 20px 0 20px 0; */
		}
	}
}
