:root {
	--fortcap-navy: #151442;
	--fortcap-ivory: #efecea;
	--fortcap-blue: #6eccde;
	
	--spacing-xs: clamp(0.25rem, 1vw, 0.5rem);
	--spacing-sm: clamp(0.625rem, 2vw, 1rem);
	--spacing-md: clamp(1.5rem, 4vw, 3rem);
	--spacing-lg: clamp(2.75rem, 6vw, 5.5rem);
	--spacing-xl: clamp(4rem, 8vw, 8rem);
}

/* ─── Reset & Base ─────────────────────────────────── */
*, *::before, *::after {
	box-sizing: border-box;
	margin: 0;
	padding: 0;
}

html {
	scroll-behavior: smooth;
	-webkit-text-size-adjust: 100%;
}

body {
	font-family: basic-sans, Verdana, sans-serif;
	font-size: 1rem;
	color: var(--fortcap-navy);
	background-color: white;
}

a {
	color: inherit;
	text-decoration: none;
}

button {
	cursor: pointer;
	border: none;
	background: none;
	font: inherit;
}

section {
	width: 100%;
	margin: 0;
	padding: 0;
}

img {
	display: block;
	width: 100%;
	height: auto;
}

.container {
	width: 100%;
	max-width: 1400px;
	margin: 0 auto;
	padding: 0 40px;
}

@media(max-width: 600px) {
	.container {
		padding: 0 20px;
	}
}

div > :first-child,
section > :first-child {
	margin-top: 0;
}

div > :last-child,
section > :last-child {
	margin-bottom: 0;
}

h2 {
	font-family: ivymode, sans-serif;
	font-weight: 600;
	font-size: clamp(30px, 4vw, 40px);
	line-height: 1.2;
}

p, ul {
	font-size: 18px;
	line-height: 1.4;
	margin: 20px 0;
}

@media(max-width: 600px) {
	p, li {
		font-size: 16px;
	}
}

strong {
	font-weight: 600;
}

ul {
	line-height: 1.1;
}

ul.list-bare {
	list-style-type: none;
	margin-left: 0;
	padding-left: 0;
}

ul.list-text-center {
	text-align: center;
}

@media(min-width: 601px) {
	ul.list-text-center-desktop {
		text-align: center;
	}
}

ul.list-bare li {
	margin-bottom: var(--spacing-sm);
}

ul li:last-child {
	margin-bottom: 0;
}

p a,
li a {
	text-decoration: underline;
}

p a:hover,
li a:hover {
	filter: brightness(1.2);	
}

.text-center {
	text-align: center;
}

.text-center img {
	margin-left: auto;
	margin-right: auto;
}

@media(min-width: 601px) {
	.text-center-desktop {
		text-align: center;
	}
	
	.text-center-desktop img {
		margin-left: auto;
		margin-right: auto;
	}
}

.has-color-navy {
	color: var(--fortcap-navy);
}

.has-color-blue {
	color: var(--fortcap-blue);
}

.has-color-ivory {
	color: var(--fortcap-ivory);
}

.has-color-black {
	color: black;
}

.has-color-white {
	color: white;
}

.has-background-color-navy {
	background-color: var(--fortcap-navy);
}

.has-background-color-blue {
	background-color: var(--fortcap-blue);
}

.has-background-color-ivory {
	background-color: var(--fortcap-ivory);
}

.has-background-color-black {
	background-color: black;
}

.has-background-color-white {
	background-color: white;
}

.alignnarrow {
	max-width: 900px;
}

.m-t-md {
	margin-top: var(--spacing-md);
}

.m-b-md {
	margin-bottom: var(--spacing-md);
}

.m-t-lg {
	margin-top: var(--spacing-lg);
}

.m-b-lg {
	margin-bottom: var(--spacing-lg);
}

.m-t-xl {
	margin-top: var(--spacing-xl);
}

.m-b-xl {
	margin-bottom: var(--spacing-xl);
}

.p-t-md {
	padding-top: var(--spacing-md);
}

.p-b-md {
	padding-bottom: var(--spacing-md);
}

.p-t-lg {
	padding-top: var(--spacing-lg);
}

.p-b-lg {
	padding-bottom: var(--spacing-lg);
}

.p-t-xl {
	padding-top: var(--spacing-xl);
}

.p-b-xl {
	padding-bottom: var(--spacing-xl);
}

.image-half-circle img {
	clip-path: ellipse(50% 100% at 50% 100%);
}

.hero-symbol {
	opacity: 0.85;
}

.hero-symbol img {
	width: 40vw;
	min-width: 200px;
	max-width: 500px;
}

.header-logo {
	text-align: left;
}

.header-logo h1 {
	line-height: 1;
}

.header-logo img {
	width: 30vw;
	max-width: 175px;
	height: auto;
}

.hero {
	position: relative;
}

.hero video {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	z-index: 0;
}

.hero .container {
	position: relative;
	z-index: 1;
}