:root {
	--white: #fff;
	--light-gray: #f6f6f6;			
	--blue: #124f68;
	--purple: #3f1d74;
	--orange: #d45d48;
	--green: #2f7101;
	--yellow: #fffbcb;
	--teal: #008081;
}

/*****************/
/* TEAM PAGE GRID */
/*****************/

.experts-outer-grid {
	display: grid;
	grid-template-columns: 100%;
	width: 100%;
	min-height: 100vh;
}

.experts-grid-cell {
	background-color: var(--light-gray);
	padding: 3em 2em;
	text-align: center;
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
	align-items: center;
}

.hero-content {
	max-width: 100%;
	margin: 0 auto;
	padding: 2em 0;
}

.hero-title {
	font-family: Georgia, 'Times New Roman', serif;
	font-size: 3em;
	font-weight: 900;
	line-height: 1.1;
	color: #1a1a1a;
	margin: 0 0 0.4em 0;
	letter-spacing: -2px;
	text-transform: none;
}

.hero-mission {
	font-size: 1.2em;
	line-height: 1.5;
	color: #4a4a4a;
	margin: 0 auto 2.5em auto;
	max-width: 280px;
	font-weight: 400;
}

.hero-since {
	font-size: 0.8em;
	font-weight: 700;
	color: var(--blue);
	text-transform: uppercase;
	letter-spacing: 1.5px;
	margin: 0;
	position: relative;
	padding-top: 2em;
}

.hero-since::before {
	content: '';
	position: absolute;
	top: 0;
	left: 50%;
	transform: translateX(-50%);
	width: 60px;
	height: 3px;
	background-color: var(--blue);
}

.hero-flourish {
	display: none;
}

.team-explainer {
	font-size: 1.15em;
	line-height: 1.6;
	color: #5c5959;
	max-width: 90%;
	margin: 0 auto;
}

/******************/
/* DIVISION SECTIONS */
/******************/

.division-section {
	padding: 3em 0;
	background-color: #fff;
}

.division-section:nth-child(even) {
	background-color: var(--light-gray);
}

.standard-margin {
	padding: 0 2em;
	max-width: 1400px;
	margin: 0 auto;
}

.division-header {
	text-align: center;
	margin-bottom: 3em;
}

.division-title {
	font-size: 2em;
	font-weight: 700;
	letter-spacing: -1px;
	margin: 0 0 0.75em 0;
	color: #2a2a2a;
	text-transform: uppercase;
}

.division-accent {
	width: 80px;
	height: 4px;
	margin: 0 auto;
	border-radius: 2px;
}

.accent-blue { background-color: var(--blue); }
.accent-green { background-color: var(--green); }
.accent-orange { background-color: var(--orange); }
.accent-purple { background-color: var(--purple); }
.accent-teal { background-color: var(--teal); }

/******************/
/* TEAM GRID */
/******************/

.team-grid {
	display: flex;
	flex-wrap: wrap;
	gap: 3.5em 2em;
	justify-content: center;
	align-items: stretch;
}

/******************/
/* TEAM MEMBER - FLOATING PHOTO DESIGN */
/******************/

.team-member {
	display: flex;
	flex-direction: column;
	align-items: center;
	width: 100%;
	max-width: 280px;
	position: relative;
	height: 100%;
}

/******************/
/* PHOTO WRAPPER - FLOATS ABOVE CARD */
/******************/

.team-photo-wrapper {
	position: relative;
	z-index: 2;
	margin-bottom: -60px; /* Half of photo overlaps the card */
	transition: transform 0.3s ease;
}

.team-member:hover .team-photo-wrapper {
	transform: translateY(-8px);
}

.team-photo {
	width: 220px;
	height: 220px;
	border-radius: 50%;
	position: relative;
	background-color: #fff;
	transition: box-shadow 0.3s ease;
}

.team-member:hover .team-photo {
	box-shadow: 0 12px 32px rgba(0, 0, 0, 0.18);
}

.team-photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	border-radius: 50%;
}

/* Photo borders - blue outer ring */
.photo-border-blue,
.photo-border-green,
.photo-border-orange,
.photo-border-purple,
.photo-border-teal { 
	border: 5px solid var(--blue);
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
}

/******************/
/* CARD - INFO CONTAINER */
/******************/

.team-card {
	background-color: #fff;
	border-radius: 12px;
	padding: 75px 1.5em 1.75em 1.5em; /* Extra top padding for overlapping photo */
	width: 100%;
	box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
	text-align: center;
	transition: all 0.3s ease;
	position: relative;
	z-index: 1;
	flex: 1;
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
}

.team-member:hover .team-card {
	box-shadow: 0 6px 24px rgba(0, 0, 0, 0.12);
	transform: translateY(-4px);
}

/******************/
/* TEXT STYLES */
/******************/

.team-name {
	font-size: 1.25em;
	font-weight: 700;
	color: #2a2a2a;
	line-height: 1.2;
	margin-bottom: 0.5em;
	letter-spacing: -0.3px;
}

.team-title {
	font-size: 1em;
	font-weight: 600;
	color: #4a4a4a;
	line-height: 1.4;
	margin-bottom: 0.35em;
}

.team-department {
	font-size: 0.9em;
	color: #6a6a6a;
	line-height: 1.4;
	margin-bottom: 0.35em;
}

.team-license {
	font-size: 0.85em;
	color: #8a8a8a;
	font-style: italic;
	margin-top: 0.5em;
}

/******************/
/* RESPONSIVE */
/******************/

@media all and (max-width: 767px) {
	
	.experts-grid-cell {
		display:none;
	}
	
	.team-grid {
		gap: 3em 1.5em;
	}
	
	.team-member {
		max-width: 250px;
	}
	
	.team-photo {
		width: 190px;
		height: 190px;
	}
	
	.team-photo-wrapper {
		margin-bottom: -50px;
	}
	
	.team-card {
		padding: 65px 1.25em 1.5em 1.25em;
	}
	
	.division-title {
		font-size: 1.6em;
	}
	
	.standard-margin {
		padding: 0 1.5em;
	}
	
	.division-section {
		padding: 2.5em 0;
	}
}

@media all and (min-width: 768px) and (max-width: 1023px) {
	.experts-outer-grid {
		grid-template-columns: 300px 1fr;
	}
	
	.team-grid {
		gap: 3.5em 2em;
	}
}

@media all and (min-width: 1024px) {
	.experts-outer-grid {
		grid-template-columns: 375px 1fr;
	}
	
	.experts-grid-cell {
		padding: 4em 3em;
	}
	
	.hero-content {
		padding: 3em 0;
	}
	
	.hero-title {
		font-size: 3.5em;
		letter-spacing: -2.5px;
		margin-bottom: 0.5em;
	}
	
	.hero-mission {
		font-size: 1.3em;
		max-width: 300px;
		line-height: 1.6;
		margin-bottom: 3em;
	}
	
	.hero-since {
		font-size: 0.75em;
		letter-spacing: 2px;
		padding-top: 2.5em;
	}
	
	.hero-since::before {
		width: 80px;
		height: 4px;
	}
	
	.team-explainer {
		max-width: 85%;
	}
	
	.team-grid {
		gap: 4em 2.5em;
	}
	
	.division-title {
		font-size: 2.25em;
	}
	
	.division-header {
		margin-bottom: 3.5em;
	}
	
	.standard-margin {
		padding: 0 3em;
	}
	
	.division-section {
		padding: 4em 0;
	}
}

@media all and (min-width: 1200px) {
	.team-grid {
		gap: 4.5em 3em;
	}
	
	.standard-margin {
		padding: 0 4em;
	}
	
	.team-member {
		max-width: 300px;
	}
	
	.team-photo {
		width: 240px;
		height: 240px;
	}
	
	.team-photo-wrapper {
		margin-bottom: -65px;
	}
	
	.team-card {
		padding: 85px 1.75em 2em 1.75em;
	}
}