@charset 'UTF-8';
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;600;700;900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Source+Sans+Pro:wght@300;600;900&display=swap');
@import url('https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css');

/*********************************************************************************/
/* Basic                                                                         */
/*********************************************************************************/

:root {
	--blue: #3B7DBC;
	--white: #ffffff;
	--charcoal: #000000;
	--light-gray: #e1e4e6;
	--bg-muted: #F8FAFC;
	--ink: #0e1116; /* Deep body text */
	--ink-strong: #0a0a0a; /* Headings */
}

/* (removed dark theme variables) */

	body {
	margin: 0;
	padding: 0;
	font-family: 'Inter', sans-serif;
	background: var(--white);
	color: var(--ink);
	line-height: 1.7em;
	font-weight: 400;
	font-size: 16pt;
	text-rendering: optimizeLegibility;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

.navbar {
	background: rgba(255, 255, 255, 0.1);
	padding: 20px 40px;
}

.navbar a {
	color: var(--white);
	text-decoration: none;
	margin-right: 20px;
	font-weight: 300;
}

.navbar a:hover {
	opacity: 0.8;
}

h1 {
	font-size: 48px;
	font-weight: 300;
	margin: 40px 0 20px;
	padding: 0 40px;
}

h2 {
	font-size: 1.5em;
	font-weight: 300;
	margin: 0 0 1.5em 0;
	padding: 0 40px;
}

.services {
	padding: 40px;
}

.services h3 {
	font-size: 24px;
	font-weight: 300;
	margin: 30px 0 10px;
}

.services p {
	margin: 0 0 20px;
	opacity: 1;
}

.contact {
	padding: 40px;
}

.contact h2 {
	font-size: 32px;
	margin-bottom: 20px;
}

.content-section {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 2em;
}

.content-section a:link, .content-section a:visited {
    display: inline-block; /* Important: Allows anchor button to wrap gracefully */
    white-space: normal; /* Important: Allows text to wrap */
    padding: 15px 30px;
    margin-right: 15px;
    margin-bottom: 15px;
    border: 1px solid var(--charcoal);
    border-radius: 25px;
    background: var(--blue);
    color: var(--white);
    font-size: 1.2em;
    font-weight: 500;
    cursor: pointer;
    min-width: 180px;
    text-decoration: none;  /* Remove underline by default */
    box-shadow: 0 1px 2px rgba(0,0,0,0.06), 0 2px 8px rgba(0,0,0,0.08);
    transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease, color 0.2s ease;
}

.content-section a:hover, .content-section a:active {
    display: inline-block; /* Important: Allows anchor button to wrap gracefully */
    white-space: normal; /* Important: Allows text to wrap */
    background: var(--charcoal);
    box-shadow: 0 6px 20px rgba(0,0,0,0.15);
    transform: translateY(-1px) scale(1.02);
}

.content-section form {
    max-width: 600px;
    margin: 0;
    padding: 0 0 3em 0;
}

.content-section h2 {
    font-size: 2em;
    font-weight: 700;
    line-height: 1.25;
    margin: 0 0 1em 0;
    padding: 0;
}

.content-section h3 {
    font-size: 1.5em;
    font-weight: 600;
    margin: 1.5em 0 0.5em 0;  /* Adjusted margins */
}

.content-section p {
    margin: 0.5em 0;
}

.content-section ul {
    padding-left: 2em;
}

.content-section li {
    margin-bottom: 0.5em;
}

.content-section form input[type="text"],
.content-section form input[type="email"],
.content-section form textarea {
    all: unset;
	width: 100%;
    padding: 15px;
    margin-bottom: 20px;
    border: 1px solid var(--charcoal);
    border-radius: 5px;
    background-color: var(--white) !important;
    color: #333333 !important;
    font-size: 1em;
	font-family: 'Inter', sans-serif;
    appearance: none;
}

.content-section form input::placeholder,
.content-section form textarea::placeholder {
    color: #666666;
    opacity: 1;
}

.content-section form input:focus,
.content-section form textarea:focus {
	outline: none;
    border-color: var(--blue);
    background-color: var(--light-gray) !important;
    color: #333333 !important;
}

/* Button styling */
.content-section form button {
    padding: 15px 30px;
    margin-right: 15px;
    margin-bottom: 15px;
    border: 1px solid var(--charcoal);
    border-radius: 25px;
    background: var(--blue);
    color: var(--white);
    font-size: 1.2em;
    cursor: pointer;
    min-width: 180px;
}

.content-section form button:hover {
    background: var(--charcoal);
}

.other-contact {
	padding: 20px;
	text-align: center;
}

.other-contact a {
	color: var(--charcoal);
	text-decoration: none;
}

footer {
	padding: 20px 40px;
	text-align: center;
	font-size: 14px;
	background: var(--blue);
	color: var(--white);
	opacity: 0.8;
}

	input,textarea,select {
		line-height: 1.70em;
		font-family: 'Inter', sans-serif;
		font-weight: 300;
		color: var(--charcoal);
		font-size: 16pt;
	}

	h1,h2,h3,h4,h5,h6 {
		font-weight: 600;
		color: var(--ink-strong);
	}
	
		h1 a, h2 a, h3 a, h4 a, h5 a, h6 a {
			color: inherit;
			text-decoration: none;
		}

	h3 {
		font-size: 1.1em;
		margin: 0 0 0.5em 0;
	}

	a {
		color: #3B7DBC;
		text-decoration: underline;
	}
	
		a:hover {
			text-decoration: none;
		}

	strong, b {
		font-weight: 600;
	}
	
	em, i {
		font-style: italic;
	}
	
	sub {
		position: relative;
		top: 0.5em;
		font-size: 0.8em;
	}
	
	sup {
		position: relative;
		top: -0.5em;
		font-size: 0.8em;
	}
	
	hr {
		border: 0;
		border-top: solid 1px #ddd;
	}
	
	blockquote {
		border-left: solid 0.5em #ddd;
		padding: 1em 0 1em 2em;
		font-style: italic;
	}
	
	p, ul, ol, dl, table {
		margin-bottom: 1em;
	}

	/* Sections/Articles */
	
	section,
	article {
		margin-bottom: 3em;
	}
	
	section > :last-child,
	article > :last-child {
		margin-bottom: 0;
	}

	section:last-child,
	article:last-child {
		margin-bottom: 0;
	}
	
	section.hero {
		margin-bottom: 2em;
	}

	/* Images */

	.image {
		display: inline-block;
	}
	
		.image img {
			display: block;
			width: 100%;
		}

		.image.fit {
			display: block;
			width: 100%;
		}

		.image.featured {
			display: block;
			width: 100%;
			margin: 0 0 2em 0;
		}
		
		.image.left {
			margin: 0 2em 2em 0;
		}
		
		.image.centered {
			display: block;
			margin: 0 0 2em 0;
		}

			.image.centered img {
				margin: 0 auto;
				width: auto;
			}

	/* Lists */
		
	ul.dates li {
		position: relative;
		border-top: solid 1px #ddd;
		padding: 1.3em 0 1.3em 6.75em;
	}
	ul.dates .date {
		display: block;
		position: absolute;
		left: 0;
		top: 1.3em;
		background-color: #3B7DBC;
		width: 3.7em;
		/*height: 3.5em;*/
		height: 3.7em;
		text-align: center;
		color: #fff;
		line-height: 1em;
		border-top-left-radius: 5px;
		border-bottom-left-radius: 5px;
		padding: 0.5em 0.75em 0 1em;
		/*
		position: relative;
		display: inline-block;
		margin-bottom: 2em;
		width: 10em;
		height: 10em;
		line-height: 9.75em;
		border: solid 2px rgba(255,255,255,0.35);*/
		border-radius: 100%;
		/*
		background-color: none;
		-moz-transition: background-color 0.25s ease-in-out;
		-webkit-transition: background-color 0.25s ease-in-out;
		-o-transition: background-color 0.25s ease-in-out;
		-ms-transition: background-color 0.25s ease-in-out;
		transition: background-color 0.25s ease-in-out;
		*/
	}
	/*
	ul.dates .date:after {
		content: '';
		position: absolute;
		bottom: 0;
		right: -1.2em;
		border-left: solid 1.25em #3B7DBC;
		border-top: solid 1.8em transparent;
		border-bottom: solid 1.8em transparent;
	}*/
	
	ul.dates .date strong {
		display: block;
		font-size: 1.75em;
		padding-top: 0.15em;
	}
	
	ul.dates h3 {
		font-size: 1.1em;
	}
	
	ul.dates p {
		margin: 0;
	}
	
	ul.dates li:first-child {
		border-top: 0;
		padding-top: 0;
	}
	
	ul.dates li:first-child .date {
		top: 0;
	}
	
	ul.style1 {
		margin: 0;
		padding: 0em 0em 0em 0em;
		overflow: hidden;
		list-style: none;
	}
	
	ul.style1 li {
		overflow: hidden;
		display: block;
		padding: 1.5em 0em 1.8em 0em;
		border-style: solid;
		border-color: #555;
		border-color: rgba(255,255,255,0.1);
		border-top-width: 2px;
		font-weight: 300;
	}
	
	ul.style1 li:first-child {
		padding-top: 0;
		border-top: none;
	}

	ul.style1 h3 {
	}
	
	ul.style1 .image {
		position: relative;
		overflow: hidden;
		border-radius: 50%;
	}
		
	ul.style2 {
		margin-bottom: 0;
		/*font-family: 'Source Sans Pro', sans-serif;
		font-weight: 600;*/
	}
	
		ul.style2 li {
			padding-left: 1.3em;
			/*padding: 15px;*/
			padding-top: 0.90em;
			/*padding-top: 0em;*/
			display: list-item;
			/*font-style: normal;*/
		}
		
		ul.style2 li:first-child {
			/*padding-left: 1.3em;*/
			padding-top: 0;
		}
		
		ul.style2 a {
			text-decoration: underline;
			color: #8e9399;
		}
		
		ul.style2 a:hover {
			text-decoration: none;
		}

	
		ul.icons > li {
			cursor: default;
			display: block;
			position: relative;
			padding: 16px 0 0 80px;
			min-height: 48px;
			margin-top: 1.75em;
		}

		ul.icons > li:first-child {
			margin-top: 0;
		}

		ul.icons li a,
		ul.icons li span {
			display: block;
			text-decoration: none;
			color: #333d47;
		}

		ul.icons > li:before {
			position: absolute;
			top: 0;
			left: 0;
			display: block;
			background: #343e49;
			color: #FFF;
			border-radius: 100%;
			text-align: center;
			font-size: 22px;
			width: 64px;
			height: 64px;
			line-height: 64px;
		}

		ul.icons > li.fa-twitter:before {
			background: #389ebc;
		}

		ul.icons > li.fa-facebook:before {
			background: #3876bc;
		}
		
		ul.icons > li.fa-linkedin:before {
			background: #007BB6;
		}
		
	ul.actions {
	}
	
		ul.actions > li {
			display: inline-block;
			margin-left: 1em;
		}
		
		ul.actions > li:first-child {
			margin-left: 0;
		}
		
	ul.pennants {
		display: flex;
		flex-wrap: wrap;
		justify-content: center;
		gap: 2em;
		list-style: none;
		padding: 0;
		margin: 2em 0;
		width: 100%;
	}
	
		ul.pennants li {
			display: flex;
			flex-direction: column;
			align-items: center;
			width: 16em;
			min-width: 220px;
			max-width: 100%;
		}
		
		ul.pennants li a:link, ul.pennants li a:visited {
			border: 1px solid var(--blue);
		}

		ul.pennants li a:hover, ul.pennants li a:active {
			border: 1px solid var(--charcoal);
		}

		ul.pennants header {
			margin-top: 1em;
		}

		ul.pennants h3 {
			color: var(--ink-strong);
			font-size: 1.25em;
			/*margin-bottom: 0.5em;*/
			font-weight: 400;
		}

		ul.pennants p {
			color: var(--ink);
			font-size: 1em;
			line-height: 1.5em;
			max-width: 20em;
			margin: 0 auto;
		}

	/* Forms */
		
		form input,
		form select,
		form textarea {
			position: relative;
			width: 100%;
			border: 1px solid var(--blue);
			padding: 0.70em;
			border-radius: 0.5em;
			background: #fff;
			transition: background-color 0.25s ease-in-out;
			outline: none;
		}
		
		form textarea {
			height: 12em;
		}

		form input[type=text]:focus,
		form input[type=password]:focus,
		form select:focus,
		form textarea:focus {
			background: #f0f2f5;
		}
		
		form .formerize-placeholder {
			color: #93989f !important;
		}

		form ::placeholder {
			color: #93989f !important;
		}

		form ::-moz-focus-inner {
			border: 0;
		}
			
	/* Tables */
	
	table {
		width: 100%;
	}
	
		table.style1 {
			width: 100%;
		}
		
			table.style1 tbody tr:nth-child(2n+2) {
				background: #f4f4f4;
			}
			
			table.style1 td {
				/*padding: 0.5em 1em 0.5em 1em;*/
			}
			
			table.style1 td:nth-of-type(1) { white-space: nowrap; }
			
			table.style1 th {
				text-align: left;
				font-weight: 600;
				padding: 0.5em 1em 0.5em 1em;
			}
		
			table.style1 thead {
				background: #444;
				color: #fff;
			}
			
			table.style1 tfoot {
				background: #444;
				color: #fff;
			}
			
			table.style1 tfoot td:nth-of-type(1) {
				padding-left: 5px;
			}
			
			table.style1 tbody {
			}
			
		table.reg {
			width: 100%;
		}
		
			table.reg tbody tr:nth-child(2n+2) {
				background: #f4f4f4;
			}
			
			table.reg td {
				padding: 0.5em 1em 0.5em 1em;
			}
			
			table.reg td:nth-of-type(1) { white-space: nowrap; }
			
			table.reg th {
				text-align: left;
				font-weight: 600;
				padding: 0.5em 1em 0.5em 1em;
			}
		
			table.reg thead {
				background: #444;
				color: #fff;
			}
			
			table.reg tfoot {
				background: #444;
				color: #fff;
			}
			
			table.reg tfoot td:nth-of-type(1) {
				padding-left: 5px;
			}
			
			table.reg tbody {
			}
			
	.class-table {
		border-collapse: collapse;
		}
	.class-table tr td		{
		padding: 2px 6px 2px 6px;
		vertical-align: top;
	}
	.class-table tr th		{
		padding: 2px 6px 2px 6px;
		vertical-align: bottom;
		background-color: #eeeeee;
	}
		
	/* Buttons */
		
	.button {
		position: relative;
		display: inline-block;
		text-decoration: none;
		cursor: pointer;
		border: 0;
		border-radius: 0.5em;
		background: #FFF;
		color: #343e49 !important;
		outline: 0;
		transition: border-color 0.25s ease-in-out, background-color 0.25s ease-in-out, color 0.25s ease-in-out;
		line-height: 3em;
		text-align: center;
		font-weight: 600;
		padding: 0em 1.5em;
		border: solid 2px #ffffff;
	}
	
		.button.small {
			letter-spacing: -0.04em;
			font-size: 0.8em;
		}

		.button.big {
			letter-spacing: -0.04em;
			font-size: 1.25em;
		}

		.button:hover {
			background: rgba(255,255,255,0.15);
			border-color: rgba(255,255,255,0.35);
			color: #fff !important;
		}
		
		.button:active {
			background: #f6f4f4;
		}
	
		.button.alt {
			border-color: #343E49;
			background: #343E49;
			color: #FFF !important;
		}

			.button.alt:hover {
				border-color: #444E59;
				background: #444E59;
			}
			
			.button.alt:active {
				background: #242E39;
				border-color: #242E39;
			}
			
		.button.alt2 {
			border-color: #3B7DBC;
			background: #3B7DBC;
			color: #FFF !important;
		}
		
			.button.alt2:hover {
				border-color: #4B8DCC;
				background: #4B8DCC;
			}

			.button.alt2:active {
				background: #2489a8;
				border-color: #2489a8;
			}
		
	/* Main Title Heading */

		.title-heading {
			position: relative;
			margin: 2em 0;
		}
		
			.title-heading h2 {
				color: #FFF;
				font-size: 2em;
				margin: 0;
			}

			.title-heading p {
				position: absolute;
				right: 0;
				top: 0;
				color: #FFF;
				font-size: 1.25em;
			}

	/* Header */
		
		header {
			position: relative;
			height: 3em;
			line-height: 3em;
			max-width: 1200px;
			margin: 0 auto;
			padding: 0 .5em;
			display: flex;
			align-items: center;
			justify-content: space-between;
		}
		
		header p {
			position: relative;
			top: -1.75em;
		}

	/* Footer */
	
		footer {
			margin: 2em 0 0 0;
		}
	
	/* Page Center Title */

		.title {
			position: absolute;
			top: 0;
			left: 0;
			width: 100%;
		}
		
			.title span {
				position: relative;
				display: inline-block;
				background: #3B7DBC;
				background-attachment: fixed;
				background-image: url('images/bg.svg');
				background-position: center center;
				background-repeat: repeat;
				border-radius: 0 0 0.5em 0.5em;
				font-weight: 600;
				font-size: 1.25em;
				color: #FFF;
				padding: 0.5em 2em 1em 2em;
			}

	/* Pennant */

		.pennant {
			position: relative;
			display: inline-block;
			margin-bottom: 2em;
			width: 10em;
			height: 10em;
			line-height: 9.75em;
			border: solid 2px var(--blue);
			border-radius: 100%;
			background: none;
			transition: all 0.25s ease-in-out;
			text-decoration: none;
		}
		
			.pennant:hover {
				background: rgba(255,255,255,0.15);
				transform: scale(1.05);
			}

			.pennant .icon {
				display: block;
				width: 100%;
				height: 100%;
				text-align: center;
				line-height: inherit;
			}

			.pennant .icon:before {
				font-family: "Font Awesome 5 Free";
				font-weight: 900;
				font-size: 3.5em;
				color: var(--blue);
				line-height: 2.8em;
			}

/*********************************************************************************/
/* Icons                                                                         */
/*********************************************************************************/

	.icon {
		text-decoration: none;
	}

		.icon:before {
			display: inline-block;
			font-family: "Font Awesome 5 Free";
			font-weight: 900;
			font-size: 1.25em;
			text-decoration: none;
			font-style: normal;
			line-height: 1;
			-webkit-font-smoothing: antialiased;
			-moz-osx-font-smoothing: grayscale;
		}

	/* Add new SVG icon styling */
	.icon_svg {
		display: block;
		width: 100%;
		height: 100%;
		text-align: center;
		line-height: inherit;
	}

	.icon_svg img {
		width: 4em;  /* Match font-awesome icon size */
		height: 4em;
		margin-top: 2.8em;  /* Center vertically like font-awesome icons */
		/*filter: invert(100%);*/  /* Make the SVG white */
		filter: invert(56%) sepia(8%) saturate(4515%) hue-rotate(174deg) brightness(78%) contrast(84%);  /* Make the SVG blue */
		/*filter: invert(19%) sepia(4%) saturate(3432%) hue-rotate(171deg) brightness(90%) contrast(81%);*/  /* Make the SVG charcoal */
	}

/*********************************************************************************/
/* Wrappers                                                                      */
/*********************************************************************************/

	#header-wrapper {
		background: var(--white);
		position: fixed;
		z-index: 10000;
		width: 100%;
		top: 0;
		left: 0;
		box-shadow: 0 0.05em 0.15em 0 rgba(0,0,0,0.15);
		padding: 0 1em;
	}
	
	#banner-wrapper {
		color: #eee;
		color: rgba(255,255,255,.75);
	}
	
		#banner-wrapper h2,
		#banner-wrapper h3 {
			color: #fff;
		}
	
	#main-wrapper {
		position: relative;
		background: #3B7DBC;
		background-attachment: fixed;
		background-image: url('images/bg.svg');
		background-position: center center;
		background-repeat: repeat;
		overflow: hidden;
		padding: 4em 0 3em 0;
	}
	
		.homepage #main-wrapper {
			position: relative;
			padding: 10em 0 7em;
		}
		
		.homepage #main-wrapper:before {
			content: '';
			display: block;
			position: absolute;
			left: 0;
			top: 0;
			width: 100%; 
			height: 100%;
			background: url('images/highlight.png') no-repeat center center;
			background-size: 100% 100%;
		}
	
	#footer-wrapper {
		position: relative;
		background: #FFF;
		padding: 8em 0 4em 0;
	}
	
	#featured-wrapper {
		position: relative;
		background: #343e49;
		padding: 8em 0 4em 0;
		color: #eee;
		color: rgba(255,255,255,.75);
	}

		#featured-wrapper h2,
		#featured-wrapper h3 {
			color: #fff;
		}

/*********************************************************************************/
/* Header                                                                        */
/*********************************************************************************/

	#header {
		display: flex;
		align-items: center;
		justify-content: space-between;
		max-width: 1200px;
		margin: 0 auto;
		height: 3em;
		line-height: 2.2em;
		padding: 0 2em;
	}

		#header h1 {
			font-size: 1.25em;
			color: var(--ink-strong);
			margin: 0;
			flex-shrink: 0;
		}
		
			#header h1 a {
				text-decoration: none;
				font-weight: 900;
				color: var(--ink-strong);
			}

			#header .logo {
				height: 1.8em;
				width: auto;
				max-width: 180px;
				vertical-align: middle;
			}

/*********************************************************************************/
/* Nav                                                                           */
/*********************************************************************************/

	#nav {
		flex: 1 1 auto;
		display: flex;
		justify-content: flex-end;
	}

		#nav ul {
			display: flex;
			flex-wrap: wrap;
			gap: 0.5em;
			margin: 0;
			padding: 0.5em 0;
			list-style: none;
		}

		#nav li a {
			padding: 0 .5em;
		}
		
			#nav ul li {
				margin: 0;
			}

				#nav ul li a {
					color: var(--ink);
					text-decoration: none;
					font-weight: 300;
					font-size: 0.9em;
					/*padding: 0.5em 0;*/
					display: block;
				}

				#nav ul li a:hover, #nav ul li a:active {
					background: transparent;
					color: var(--blue);
					text-decoration: underline;
					text-underline-offset: 4px;
				}

				#nav ul li ul {
					display: none;
				}

/*********************************************************************************/
/* Main                                                                          */
/*********************************************************************************/

	#main {
		position: relative;
		background: var(--white);
		border-radius: 0.5em;
		/*padding: 4em 2.5em 4em 2.5em;*/
	}

/*********************************************************************************/
/* Banner                                                                        */
/*********************************************************************************/

	#banner {
		width: 100%;
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		text-align: center;
	}

		#banner .major {
			margin-top: 0.5em;
		}
	
			#banner .major h1,
			#banner .major h2 {
				font-family: 'Source Sans Pro', sans-serif; /* Match hero font from why.html */
				font-weight: 600; /* Reduce boldness */
				font-size: 3em;
				line-height: 1.1;
				word-break: break-word;
				margin: 0;
				color: var(--ink-strong);
			}
			
			#banner .major p {
				font-size: 1.2em;
				color: var(--ink);
			}
			
			#banner h3 {
			}
			
		#banner section {
			margin: 0;
		}

/*********************************************************************************/
/* Footer                                                                        */
/*********************************************************************************/

	#footer .title {
		text-align: center;
	}
	
		.homepage #footer .title span {
			background: #343e49;
		}

/*********************************************************************************/
/* Copyright                                                                     */
/*********************************************************************************/

	#copyright {
		position: relative;
		text-align: center;
		color: #a1a6ac;
		padding: 5em 0em 7em 0em;
	}
	
		#copyright span {
			color: #a1a6ac;
		}

/*********************************************************************************/
/* Featured                                                                      */
/*********************************************************************************/

	#featured .title {
		text-align: center;
	}

	#featured .title span {
		background: #3B7DBC;
		background-attachment: fixed;
		background-image: url('images/bg.svg');
		background-position: center center;
		background-repeat: repeat;
	}
	
	#featured header .byline {
		display: block;
	}
	
	#featured p {
		line-height: 1.8em;
	}

/* Add/update these styles */
main {
    display: flex;
    flex-direction: column;
    align-items: center;
    /*padding-top: 5em;*/ /* space for fixed header */
    width: 100%;
    min-height: 100vh;
    box-sizing: border-box;
}

.hero {
    text-align: center;
    background: var(--blue);
    color: var(--white);
    width: 100%;
    padding: 1.5em 0;      /* Add vertical padding (top and bottom) */
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}

.hero h1 {
    font-family: 'Source Sans Pro', sans-serif;
    font-size: 2.5em;
	color: var(--white);
    font-weight: 600;
    line-height: 1.1;
    margin: 0;
}

.hero h2 {
    font-family: 'Source Sans Pro', sans-serif;
    font-size: 2.25em;
    color: var(--white);
    font-weight: 600;
    line-height: 1.1;
    margin: 0;
}

.hero p {
    font-size: 1.5em;
    color: rgba(255,255,255,0.75);
    margin: 0.5em 0;
}

/* Update Get in touch section styling */
#get-in-touch,
.get-in-touch {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 2em;  /* Match content-section padding */
}

#get-in-touch h2,
.get-in-touch h2 {
    color: var(--ink-strong);
    font-size: 2em;
    font-weight: 300;
    margin: 2em 0 0.5em 0;
    padding: 0;  /* Remove any padding */
}

#get-in-touch p,
#get-in-touch a,
.get-in-touch p,
.get-in-touch a {
    color: var(--charcoal);
    text-decoration: none;
    font-size: 1.1em;
    margin: 0.5em 0;
    padding: 0;  /* Remove any padding */
}

#get-in-touch a:hover,
.get-in-touch a:hover {
    color: var(--charcoal);
    text-decoration: underline;
}

/* Responsive fixes for mobile */
@media (max-width: 900px) {
    #header {
        flex-direction: column;
        align-items: flex-start;
        height: 2.5em;
        /*padding: 1em;*/
    }
	header {
        height: 2.5em;
    }
    #nav {
        width: 100%;
        justify-content: flex-start;
    }
    #nav ul {
        flex-wrap: wrap;
        gap: .5em;
    }
	h1 {
        font-size: 2em;
    }
    #banner .major h2 {
        font-size: 2em;
    }
    ul.pennants {
        flex-direction: column;
        align-items: center;
    }
    ul.pennants li {
        width: 100%;
        min-width: 0;
    }
    main p {
        padding-left: 0.5em;
        padding-right: 0.5em;
    }
    /* Scale down logo to fit smaller header */
    #header .logo {
        height: 1.2em;
        max-width: 140px;
    }
}

/* Hamburger styles */
#nav-toggle {
  display: none;
  background: none;
  border: none;
  cursor: pointer;
  padding: 1em;
  margin-left: 1em;
  z-index: 10001;
}

#nav-toggle .hamburger {
  display: block;
  width: 28px;
  height: 3px;
  background: #343e49;
  position: relative;
  border-radius: 2px;
  transition: all 0.3s;
}
#nav-toggle .hamburger::before,
#nav-toggle .hamburger::after {
  content: '';
  display: block;
  width: 28px;
  height: 3px;
  background: #343e49;
  position: absolute;
  border-radius: 2px;
  transition: all 0.3s;
}
#nav-toggle .hamburger::before {
  top: -9px;
}
#nav-toggle .hamburger::after {
  top: 9px;
}

/* Responsive nav */
@media (max-width: 900px) {
  #nav {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    width: 100vw;
    background: #fff;
    box-shadow: 0 0.05em 0.15em 0 rgba(0,0,0,0.15);
    z-index: 10000;
  }
  #nav.open {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
  }
  #nav ul {
    flex-direction: column;
    width: 100%;
    gap: 0;
  }
  #nav ul li {
    width: 100%;
    border-bottom: 1px solid #eee;
  }
  #nav ul li a {
    padding: 1em 1em;
    font-size: 1.1em;
    color: #343e49;
    width: 100%;
    display: block;
  }
  #nav-toggle {
    display: block;
  }
  #header {
    flex-direction: row;
    align-items: center;
    /*height: auto;*/
	line-height: 1em;
	padding-right: 0.5em;
    position: relative;
  }
  #header h1 a {
    position: absolute;
	left: 0;
	top: .5em;
	text-align: left;
  }
  h2 {
    line-height: 3em;
  }
  section.hero {
    margin-bottom: 1em;
	padding: 1em 0em;
	height: auto;
  }
  section.hero h1 {
    font-size: 2em;
  }
}

/* Modern overrides */
/* Global anchors */
a {
	color: var(--blue);
	text-decoration: none;
}

a:hover {
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* Pennant subtle elevation */
.pennant {
	box-shadow: 0 2px 12px rgba(0,0,0,0.08);
}

.pennant:hover {
	background: rgba(59,125,188,0.06);
	transform: scale(1.06);
	box-shadow: 0 8px 30px rgba(0,0,0,0.15);
}

/* Muted section wrapper */
.section-muted {
	width: 100%;
	background: var(--bg-muted);
	padding: 2em 0;
}

/* (removed dark theme specific tweaks) */

/* Modern typography: darker, crisper headings and body */
body {
	color: var(--ink);
	letter-spacing: -0.01em;
}

h1, h2, h3, h4, h5, h6 {
	color: var(--ink-strong);
	letter-spacing: -0.022em;
	line-height: 1.12;
}

h1 { font-weight: 900; }
h2 { font-weight: 800; }
h3 { font-weight: 700; }

p, li {
	line-height: 1.7;
}

/* Larger, punchier heading sizes on desktop */
@media (min-width: 901px) {
	h1 { font-size: 3.25rem; }
	h2 { font-size: 2.25rem; }
	h3 { font-size: 1.5rem; }
	section.hero h1 { font-size: 3.25rem; }
}