/* Import Google Fonts */
@import url('https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&display=swap');

/* Apply border-box globally to fix header width issue */
* {
	box-sizing: border-box;
}


html {
	width: 100%;
	height: 100%;
	font-size: 16px;
	min-width: 320px;
}

body {
	font-family: 'Poppins', sans-serif;
	margin: 0;
	padding: 0;
	text-align: center;
	overflow-x: hidden;
	padding-top: 205px;
	padding-bottom: 130px;
	height: fit-content;
	min-height: 100%;
	position: relative;
	width: 100%;
	font-size: 16px;
}

.mb50{
	margin-bottom: 50px;
}

.mb60{
	margin-bottom: 60px;
}

.mb0{
	margin-bottom: 0px;
}

.mt0{
	margin-top: 0px;
}


h1, h2, p, label, span {
	font-family: 'Poppins', sans-serif;
	text-align: left;
}

/* Headings */
h1 {
	font-size: 42px;
	text-align: left;
	&.purpleheading{
		font-family: "Montserrat";
		color: #473f85;
		font-size: 56px;

		
	}
	&.subtitle{
		font-weight: normal;
		font-size: 42px
	}
}

h2 {
	font-size: 26px;
	color: #4d448d;
	/* position: absolute; */
	left: 0;
	top: 0;
	margin: 0;
	font-size: 26px;
	&.whiteheader{
		color: #ffffff;
	}
}

h3 {
	font-size: 18px;
	text-align: left;
	&.purpleheading{
		font-family: "Montserrat";
		color: #473f85;
		font-size: 28px;

		
	}
	&.subtitle{
		font-weight: normal;
		font-size: 18px
	}
}



a {
	text-decoration: none;

	&.underlined {
		color: #7a6fd0;
		position: relative;
		transition: color 0.25s ease-in-out;

		&::after {
			content: "";
			height: 1px;
			width: 0%;
			background: #473f85;
			position: absolute;
			bottom: 0;
			left: 50%;
			opacity: 0;
			transition: all 0.2s ease-in-out;
		}

		&:hover {
			color: #473f85;

			&::after {
				width: 100%;
				left: 0;
				opacity: 1;
			}
		}
	}
}

.shadowed {
	text-shadow: 0 0 8px rgba(0, 0, 0, 0.65);
}

.stroked {
	position: relative;

	&:before {
		position: absolute;
		content: attr(data-content);
		left: 0;
		width: 100%;
		color: rgba(0, 0, 0, 0.65);
		z-index: -1;
		-webkit-text-stroke-width: 3px;
		text-stroke-width: 3px;
		background-clip: text;
	}
}

.sticky-header {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	width: 100%;
	min-width: 320px;
	background: linear-gradient(to bottom, #827ab9, #6e67a3);
	color: white;
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	padding: 24px;
	box-shadow: 0px 6px 10px rgba(0, 0, 0, 0.3);
	z-index: 1000;

	& .content-col {
		padding: 0;
		display: flex;
		justify-content: space-between;
		align-items: flex-end;
	}
}

/* Prevent header from overlapping content */
main {
	padding-top: 0px;
	/* Pushes content below the header */
}

/* Logo Styling */
.logo {
	display: flex;
	align-items: center;

	& img {
		height: 160px;
		/* Increased logo size */
		width: auto;
		display: block;
	}
}

/* Navigation Styling */
nav {
	flex-grow: 1;
	justify-content: flex-end;
	display: flex;

	& ul {
		list-style: none;
		list-style-type: none;
		display: flex;
		gap: 10px;
		padding: 0;
		margin: 0;

		& li {
			display: inline;
			padding: 8px;

			& a {
				position: relative;
				color: white;
				text-decoration: none;
				font-size: 1.2em;
				opacity: 0.8;
				transition: opacity 0.2s ease-in-out;

				&::after {
					content: "";
					height: 2px;
					width: 0%;
					background: white;
					position: absolute;
					bottom: 0;
					left: 50%;
					opacity: 0;
					transition: all 0.2s ease-in-out;
				}

				&:hover {
					opacity: 1;
					color: white;

					&::after {
						left: 0%;
						width: 100%;
						opacity: 1;
					}
				}
			}

			&.current {
				background: rgba(255, 255, 255, 0.92);
				border-radius: 8px;

				& a {
					cursor: default;
					pointer-events: none;
					color: #393360;
					font-weight: 600;
				}
			}

			&:not(.current) {
				& a:hover {
					/* text-decoration: underline; */
				}
			}
		}
	}
}

section {
	padding: 20px 0;

	& p {
		padding: 0 0px;
		margin: 16px 0;
		text-align: left;
	}
}

.content-col {
	width: 100%;
	max-width: 1280px;
	padding: 0 24px;
}

.text-col {
	max-width: 1024px;
	align-self: center;
	margin: 0 auto;
	position: relative;
}

.content-holder {
	display: flex;
	flex-direction: column;
	align-items: center;
}

.card {
	display: flex;
	padding: 12px;
	width: 33%;
	flex-direction: column;
	text-align: center;
	cursor: pointer;
	box-shadow: 0px 4px 11px 0px rgba(0, 0, 0, 0.25);
	transition: box-shadow ease 0.5s, background ease 0.5s;
	align-items: center;

	&:hover {
		box-shadow: 0px 4px 20px 6px rgba(0, 0, 0, 0.25);
	}

	& h2 {
		font-size: 20px;
		text-align: center;
		color: #473f85;
		margin-bottom: 10px;
	}

	& img {
		width: 50%;
		border-radius: 50%;
	}

	& p {
		text-align: center;
		margin: 20px;
		color: rgba(0, 0, 0, 0.85);
	}
}

.tri-card {
	display: flex;
	gap: 12px;
	margin-bottom: 40px;
}


/* Hero Section */
.hero {
	background: #62599b;
	background-image: url("../img/hero05.png");
	background-size: cover;
	color: white;
	text-align: center;
	padding: 120px 20px;
	z-index: 0;
	position: relative;

	&::after {
		position: absolute;
		width: 100%;
		top: 0;
		left: 0;
		height: 100%;
		content: "";
		background-image: linear-gradient(0deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.8) 90%);
		z-index: -1;
	}

	h1, h2, p {
		text-align: center;
	}
}

.about {
	padding-top: 30px;

}

.align-l {
	text-align: left;
}

.text-img-r {
	& img {
		width: 240px;
		padding: 0 30px;
		float: right;
		&#bioPic{
			width: 300px;
		}
	}
}

.text-img-l {
	& img {
		width: 240px;
		padding: 0 30px;
		float: left;
	}
}

.flex-img {
	display: flex;
	padding-top: 40px;
	position: relative;
	gap: 30px;
	margin: 36px 0;
	align-items: flex-start;

	& img {
		width: 240px;
		padding: 0;
	}

	p:first-of-type {
		margin: 0;
	}

	h2 {
		position: absolute;
		left: 0;
		top: 0;
		margin: 0;
		/* font-size: 22px; */
	}

	h3 {
		position: absolute;
		left: 0;
		top: 0;
		margin: 0;
		font-size: 22px;
	}

	& .text-flex {
		text-align: left;

		& a {
			display: inline-block;
			margin-top: 24px;
		}
	}
}

.flex-img-l {
	flex-direction: row-reverse;
}


.contact-map {
	width: 100%;
	height: 800px;
	margin-bottom: 40px;
}

/* Services - Removes Bullet Points */
.service-list {
	display: flex;
	flex-direction: column;
	align-items: center;
}

.service-list p {
	font-size: 1.2em;
	padding: 10px 0;
}

/* Footer */
footer {
	background: linear-gradient(to top, #4f457a, #48426b);
	color: white;
	/* padding: 30px 0; */
	box-shadow: 0px -6px 10px rgba(0, 0, 0, 0.3);

	& p {
		text-align: center;
	}

	display: flex;
	justify-content: center;
	align-items: center;
	height: 110px;
	position: absolute;
	bottom: 0;
	width: 100%;
	min-width: 320px;
}

/*acordian stuff*/

.accordion {
	width: 100%;
	padding: 0;
	margin: 40px 0;
	user-select: none;
}

.accordion-header {
	color: white;
	background: #786eac;
	padding: 8px 16px;
	padding-right: 42px;
	cursor: pointer;
	position: relative;
	min-height: 60px;
	display: flex;
	align-items: center;
	justify-content: center;
}

.accordion-header:after {
	content: ">";
	font-weight: bold;
	position: absolute;
	right: 0;
	top: 0;
	font-size: 36px;
	height: 100%;
	width: 80px;
	text-align: center;
	transform: rotate(90deg);
	transition: transform 0.4s ease;
}

.accordion-item {
	overflow: hidden;
	max-height: 1000vh;
	transition: max-height 0.4s ease;
}

.accordion-item.collapsed {
	max-height: 61px;
}

.accordion-item.collapsed .accordion-header:after {
	transform: rotate(0deg);
}

.table-accordion-mob {
	display: none;
	width: 100%;
	font-size: 16px;
	border-left: 1px solid #cccccc;
	border-right: 1px solid #cccccc;
	border-spacing: 2px;
	margin-bottom: 8px;
	border-collapse: separate;

	& tr {
		&.separator {
			/* background-color: #c7c2e0; */
			background-color: white;

			+tr {
				background-color: #c7c2e0;
			}
		}

		&:nth-child(odd) {
			/* background-color: #5e548d; */
		}

		&:last-of-type {
			td {
				border-bottom: 1px solid #d7d2ee;
			}
		}
	}

	strong {
		font-weight: 600;
	}

	td {
		padding: 8px 4px;
		width: 100%;
		min-width: 100%;
	}
}


.table-accordion {
	border-spacing: 0;
	border-collapse: separate;
	font-family: poppins, sans-serif;
	font-size: 16px;
	width: 100%;
	margin: 2px 0;

	& tbody {
		& tr {
			&:nth-child(odd) {
				background-color: #f2f2f2;
			}
		}
	}

	& th {
		font-weight: 400;
		background-color: #5e548d;
		color: white;
		text-align: left;
		padding: 5px 10px;

		&:first-of-type {
			padding-left: 16px;
		}
	}

	& td {
		padding: 5px 10px;
		border-left: 1px solid #d7d2ee;
		text-align: left;

		&:first-of-type {
			padding-left: 16px;
		}

		&:last-of-type {
			border-right: 1px solid #d7d2ee;
			 /* white-space: nowrap; */
		}
	}

	& tr {
		&:last-of-type {
			td {
				border-bottom: 1px solid #d7d2ee;
			}
		}
	}
}


/* Mobile Fixes */
@media screen and (max-width: 768px) {
	.sticky-header {
		flex-direction: column;
		align-items: center;
		padding: 15px;
	}

	body {
		padding-top: 145px;

	}

	.text-img-r {
		& img {
			&#bioPic{
				width: 240px;
			}
		}
	}

	nav {
		text-align: center;
		/*align-items: center; */
		/* justify-content: center; */
		padding-bottom: 0;


		& ul {
			display: flex;
			flex-direction: row;
			justify-content: center;
			flex-wrap: wrap;
		}
	}

	.table-accordion {
		font-size: 14px;

		& th {
			&:first-of-type {
				padding-left: 10px;
			}
		}

		& td {
			padding: 5px 8px;

			&:first-of-type {
				padding-left: 10px;
			}
		}
	}

	& .logo img {
		height: 120px;
	}
}

@media only screen and (max-width: 620px) {
	.table-accordion-mob {
		display: table;
	}

	.table-accordion {
		display: none;
	}
}


@media screen and (max-width: 600px) {
	body {
		padding-top: 215px;
	}

	.tri-card {
		flex-direction: column;
		align-items: center;
	}

	.card {
		width: 400px;
		max-width: 100%;
	}

	.flex-img {
		& img {
			width: 180px;
		}
	}

	.sticky-header {
		& .content-col {
			flex-direction: column;
			align-items: center;
		}
	}

	.logo {
		margin-bottom: 20px;
	}

	nav {
		width: 100%;
		align-items: center;
		justify-content: center;
	}
}

@media screen and (max-width: 500px) {
	.flex-img {
		flex-direction: column;
		align-items: center;
		text-align: center;
		padding-top: 0;
		& h2 {
			position: relative;
		}

		& h3 {
			position: relative;
		}

		& p {
			text-align: center;
		}
		& .text-flex {
			text-align: center;
		}
	}


	.text-img-r {
		display: flex;
		flex-direction: column;

		& img {
			float: none;
			align-self: center;
		}
	}
}

@media screen and (max-width: 450px) {
	body {
		padding-top: 205px;
	}

	nav ul {
		flex-direction: row;
		gap: 0px;
		font-size: 12px;
		align-items: center;
	}
}

@media screen and (max-width: 400px) {
	footer {
		font-size: 12px;
	}
}