:root {
	--mwwg-blue: #1d5c9e;
	--mwwg-blue-dark: #063d7d;
	--mwwg-navy: #061d38;
	--mwwg-gold: #d2a827;
	--mwwg-gold-light: #f3df96;
	--mwwg-green: #789b36;
	--mwwg-green-dark: #557821;
	--mwwg-charcoal: #17202a;
	--mwwg-cream: #f7f5ee;
	--mwwg-white: #ffffff;
	--mwwg-muted: #64717c;
	--mwwg-border: #ddd9cd;
	--mwwg-heading-font: "Montserrat", "Gotham", "Avenir Next", "Segoe UI", sans-serif;
	--mwwg-body-font: "Segoe UI Variable Text", "Segoe UI", Arial, sans-serif;
	--mwwg-card-heading-size: clamp(1.05rem, 1.5vw, 1.2rem);
	--mwwg-content-size: 1rem;
	--mwwg-content-line-height: 1.6;
	--mwwg-control-height: 48px;
	--mwwg-surface: #ffffff;
	--mwwg-surface-warm: #fffdf7;
	--mwwg-border-strong: #cbd3dc;
	--mwwg-radius: 6px;
	--mwwg-shadow: 0 3px 12px rgba(5, 27, 53, .08);
}

* {
	box-sizing: border-box;
}

html {
	scroll-behavior: smooth;
}

body {
	margin: 0;
	color: var(--mwwg-charcoal);
	background: var(--mwwg-cream);
	font-family: var(--mwwg-body-font);
	font-size: var(--mwwg-content-size);
	line-height: var(--mwwg-content-line-height);
}

img {
	max-width: 100%;
}

a {
	color: var(--mwwg-blue-dark);
}

h1, h2, h3 {
	margin-top: 0;
	color: var(--mwwg-navy);
	font-family: var(--mwwg-heading-font);
	font-weight: 800;
	line-height: 1.25;
	text-align: left;
}

p, li, address {
	font-family: var(--mwwg-body-font);
}

.eyebrow {
	margin: 0 0 .5rem;
	color: #86620b;
	font-size: .88rem;
	font-weight: 800;
	letter-spacing: .06em;
	line-height: 1.4;
	text-transform: uppercase;
}

.section-title {
	max-width: 760px;
	margin-bottom: .75rem;
	font-size: clamp(1.75rem, 3.2vw, 2.65rem);
	line-height: 1.2;
}

.section-intro {
	max-width: 760px;
	color: #475569;
	font-size: 1.05rem;
	font-weight: 500;
	line-height: 1.65;
}

.skip-link {
	position: fixed;
	top: -60px;
	left: 1rem;
	z-index: 1000;
	padding: .75rem 1rem;
	color: white;
	background: var(--mwwg-navy);
}

	.skip-link:focus {
		top: 1rem;
	}

.page-shell {
	width: min(1120px, calc(100% - 2rem));
	margin-inline: auto;
}

.section {
	padding-block: clamp(2.75rem, 5vw, 4.5rem);
}

.section-tight {
	padding-block: clamp(2rem, 4vw, 3.25rem);
}

.surface {
	background: white;
}

.muted-surface {
	background: #f3f0e5;
}

.navy-surface {
	color: white;
	background: var(--mwwg-navy);
}

.card {
	padding: clamp(1.4rem, 3vw, 2rem);
	background: var(--mwwg-surface);
	border: 1px solid var(--mwwg-border);
	border-radius: var(--mwwg-radius);
	box-shadow: var(--mwwg-shadow);
}

.card-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1.25rem;
}

.two-column {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(1.5rem, 4vw, 3.5rem);
	align-items: center;
}

.button {
	display: inline-flex;
	min-height: 44px;
	align-items: center;
	justify-content: center;
	gap: .4rem;
	padding: .7rem 1.1rem;
	border: 1px solid transparent;
	border-radius: 3px;
	font: inherit;
	font-size: .88rem;
	font-weight: 800;
	letter-spacing: .025em;
	line-height: 1.25;
	text-decoration: none;
	text-transform: uppercase;
	cursor: pointer;
	transition: transform .18s ease, box-shadow .18s ease, background .18s ease;
}

	.button:hover {
		transform: translateY(-2px);
		box-shadow: 0 8px 18px rgba(5,27,53,.16);
	}

	.button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible {
		outline: 3px solid rgba(74,132,189,.45);
		outline-offset: 2px;
	}

.button-primary {
	color: white;
	background: var(--mwwg-blue-dark);
}

.button-gold {
	color: #142132;
	background: var(--mwwg-gold);
	font-size: .88rem;
	font-weight: 800;
}

.button-green {
	color: white;
	background: var(--mwwg-green-dark);
}

.button-outline {
	color: var(--mwwg-navy);
	background: rgba(255,255,255,.85);
	border-color: var(--mwwg-navy);
}

.button-row {
	display: flex;
	flex-wrap: wrap;
	gap: .8rem;
	margin-bottom: 10px;
}

.admin-toolbar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	margin-bottom: 1.75rem;
	padding-bottom: 1rem;
	border-bottom: 1px solid var(--mwwg-border);
}

@media (max-width: 560px) {
	.admin-toolbar {
		align-items: stretch;
		flex-direction: column;
	}

	.admin-toolbar .button {
		width: 100%;
	}
}

.not-found-actions {
	justify-content: center;
	margin-top: 1.5rem;
}

.page-hero {
	padding: clamp(2.5rem, 5vw, 4rem) 0;
	color: var(--mwwg-charcoal);
	background: linear-gradient(90deg,rgba(255,255,255,.96),rgba(247,245,238,.87)), linear-gradient(145deg,#f6e7ab,#dce7ec);
	border-bottom: 1px solid var(--mwwg-border);
}

	.page-hero h1 {
		margin-bottom: .7rem;
		color: var(--mwwg-navy);
		font-size: clamp(2rem, 4.5vw, 3.5rem);
		text-transform: uppercase;
	}

	.page-hero p {
		max-width: 680px;
		margin-bottom: 0;
		color: var(--mwwg-muted);
		font-size: 1rem;
	}

	.page-hero .eyebrow {
		color: #947315;
	}

.icon-circle {
	display: inline-grid;
	width: 58px;
	height: 58px;
	place-items: center;
	margin-bottom: 1rem;
	color: white;
	background: var(--mwwg-blue-dark);
	border-radius: 50%;
	font-family: Georgia, serif;
	font-size: 1.4rem;
	font-weight: 700;
}

.meta-list {
	display: flex;
	flex-wrap: wrap;
	gap: .7rem 1.4rem;
	padding: 0;
	list-style: none;
	color: var(--mwwg-muted);
	font-size: .9rem;
}

.tag {
	display: inline-flex;
	min-height: 30px;
	align-items: center;
	padding: .35rem .65rem;
	color: #274811;
	background: #edf5e6;
	border: 1px solid #bdd1ad;
	border-radius: 999px;
	font-size: 1rem;
	font-weight: 800;
	line-height: 1.25;
}

.form-grid {
	display: grid;
	gap: 1rem;
}

.form-row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1rem;
}

label {
	display: grid;
	gap: .45rem;
	color: var(--mwwg-navy);
	font-family: var(--mwwg-body-font);
	font-size: 1rem;
	font-weight: 700;
	line-height: 1.4;
}

input,
textarea,
select {
	width: 100%;
	min-height: var(--mwwg-control-height);
	padding: .8rem .9rem;
	color: #1e293b;
	background: #ffffff;
	border: 1px solid var(--mwwg-border-strong);
	border-radius: var(--mwwg-radius);
	font: inherit;
	font-size: 1rem;
	line-height: 1.5;
	transition:
		border-color .18s ease,
		box-shadow .18s ease;
}

textarea {
	min-height: 150px;
	resize: vertical;
}

input::placeholder,
textarea::placeholder {
	color: #64748b;
	opacity: 1;
}

input:hover,
textarea:hover,
select:hover {
	border-color: #94a3b8;
}

input:focus,
textarea:focus,
select:focus {
	border-color: var(--mwwg-blue);
	box-shadow: 0 0 0 3px rgba(29, 92, 158, .16);
	outline: none;
}

.validation-message,
.validation-summary-errors {
	color: #e50000;
	font-size: .95rem;
	font-weight: 600;
	line-height: 1.5;
}

.valid.modified:not([type=checkbox]) {
	outline: 1px solid #26b050;
}

@media (max-width: 850px) {
	.card-grid {
		grid-template-columns: repeat(2, 1fr);
	}

	.two-column {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 600px) {
	.page-shell {
		width: min(100% - 1.25rem, 1180px);
	}

	.section {
		padding-block: 3.25rem;
	}

	.card-grid, .form-row {
		grid-template-columns: 1fr;
	}

	.button-row {
		display: grid;
		grid-template-columns: 1fr;
	}

		.button-row .button {
			width: 100%;
		}
}

.invalid {
	outline: 1px solid #e50000;
}

.blazor-error-boundary {
	background: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTYiIGhlaWdodD0iNDkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIG92ZXJmbG93PSJoaWRkZW4iPjxkZWZzPjxjbGlwUGF0aCBpZD0iY2xpcDAiPjxyZWN0IHg9IjIzNSIgeT0iNTEiIHdpZHRoPSI1NiIgaGVpZ2h0PSI0OSIvPjwvY2xpcFBhdGg+PC9kZWZzPjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMCkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMzUgLTUxKSI+PHBhdGggZD0iTTI6MzIwLjMwNyA1MUMyMjUuNTgxIDUxIDIxOC44NzMgNTEuNDgzIDIsNTEuMTYxNyAyMTMuNTM5LjYxNTMwMDYwMjI1LjA2OCAyMTMuNTM5IDQuMjcwNyA1MjQuNjYyOC41ODczMTMgMjU2LjA3MS41IDAgMTIzMS45NzAgMjA1LjY4NTQgMjA1LjY4NTQgMCwxMjMujYxMjMuNTg0MTMgMzMuNjI4IDAgMS4yMDMuMTM3NS0uMDA3My4wNzU1MCAzMy45Ni45OTEuMTMgMC4wNjMtLjA3NTU1IDAgMDEuMDA3MyAwLjAwNyAwIDEyMy4yMCA0Mi42NjggMzMuNTA3NiAwIC4wMTYuNjgxMSAwIDEwLjA2NTIuODEwNiwxLjIzIDAgLjQ2LjA3NTU1MCAuMTYgMSAwIDEiIHN0cm9rZT0ic2hvdyIgc3Ryb2tlLXdpZHRoPSIxLjYiLz48L3N2Zz4=) no-repeat 1rem/1.8rem, #b32121;
	padding: 1rem 1rem 1rem 3.7rem;
	color: white;
}

	.blazor-error-boundary::after {
		content: "An error has occurred."
	}

.darker-border-checkbox.form-check-input {
	border-color: #929292;
}

.form-floating > .form-control-plaintext::placeholder, .form-floating > .form-control::placeholder {
	color: var(--bs-secondary-color);
	text-align: end;
}

.form-floating > .form-control-plaintext:focus::placeholder, .form-floating > .form-control:focus::placeholder {
	text-align: start;
}
