:root {
	--orbit-blue: #173f5f;
	--orbit-blue-dark: #0f2f49;
	--orbit-yellow: #f2c14e;
	--orbit-coral: #f6d6ad;
	--orbit-mint: #a8d5ba;
	--orbit-ink: #142733;
	--orbit-muted: #5a6b75;
	--orbit-surface: #f5f8fa;
	--orbit-border: #dbe4e9;
	--orbit-radius: 1.1rem;
	--orbit-shadow: 0 16px 45px rgba(23, 63, 95, .11);
}

html {
	scroll-behavior: smooth;
}

body {
	color: var(--orbit-ink);
	background: #fff;
	font-family: Inter, Aptos, "Segoe UI", sans-serif;
	font-size: 1.05rem;
	line-height: 1.65;
}

a {
	color: #125582;
	text-underline-offset: .18em;
}

	a:hover {
		color: var(--orbit-blue-dark);
	}

h1, h2, h3, h4 {
	color: var(--orbit-blue-dark);
	line-height: 1.15;
	letter-spacing: -.025em;
}

.btn {
	min-height: 46px;
	border-radius: .7rem;
	font-weight: 700;
	padding: .65rem 1.1rem;
}

.btn-primary {
	background: var(--orbit-blue);
	border-color: var(--orbit-blue);
}

	.btn-primary:hover, .btn-primary:focus {
		background: var(--orbit-blue-dark);
		border-color: var(--orbit-blue-dark);
	}

.btn-outline-primary {
	color: var(--orbit-blue);
	border-color: var(--orbit-blue);
}

	.btn-outline-primary:hover {
		background: var(--orbit-blue);
		border-color: var(--orbit-blue);
	}

.form-control, .form-select {
	border: 1px solid #9cabb3;
	border-radius: .65rem;
	min-height: 50px;
}

	.form-control:focus, .form-select:focus, .btn:focus-visible, a:focus-visible {
		border-color: var(--orbit-blue);
		box-shadow: 0 0 0 .25rem rgba(242, 193, 78, .55);
		outline: none;
	}

.form-label {
	color: var(--orbit-blue-dark);
	font-weight: 700;
}

.skip-link {
	position: fixed;
	z-index: 2000;
	top: -100px;
	left: 1rem;
	background: #fff;
	color: var(--orbit-blue);
	padding: .75rem 1rem;
	border: 2px solid var(--orbit-blue);
}

	.skip-link:focus {
		top: 1rem;
	}

.site-header {
	background: rgba(255,255,255,.96);
	border-bottom: 1px solid rgba(23,63,95,.09);
	backdrop-filter: blur(12px);
}

	.site-header .navbar {
		min-height: 78px;
	}

.navbar-brand img {
	object-fit: contain;
}

.navbar-brand span {
	display: flex;
	flex-direction: column;
	color: var(--orbit-blue);
	font-size: 1.35rem;
	line-height: 1;
}

.navbar-brand small {
	color: var(--orbit-muted);
	font-size: .7rem;
	font-weight: 600;
	letter-spacing: .05em;
	margin-top: .32rem;
	text-transform: uppercase;
}

.site-header .nav-link {
	color: var(--orbit-ink);
	font-weight: 650;
	padding: .75rem .85rem !important;
}

	.site-header .nav-link:hover, .site-header .nav-link.active {
		color: var(--orbit-blue);
	}

.hero-section {
	background: radial-gradient(circle at 85% 14%, rgba(242,193,78,.38), transparent 26rem), linear-gradient(130deg, #f7fbfc 0%, #edf5f3 100%);
}

.py-lg-6 {
	padding-top: 6.5rem !important;
	padding-bottom: 6.5rem !important;
}

.hero-section h1 {
	max-width: 800px;
}

.hero-section .lead {
	color: #425864;
	font-size: 1.3rem;
	max-width: 760px;
}

.eyebrow {
	color: #75570c;
	display: inline-block;
	font-size: .82rem;
	font-weight: 800;
	letter-spacing: .09em;
	text-transform: uppercase;
}

.eyebrow-light {
	color: #ffe19b;
}

.hero-search-card {
	background: #fff;
	border: 1px solid rgba(23,63,95,.12);
	border-radius: var(--orbit-radius);
	box-shadow: var(--orbit-shadow);
	padding: 1.35rem;
}

.image-placeholder {
	align-items: center;
	
	border-radius: 2rem 2rem 2rem .5rem;
	color: var(--orbit-blue);
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-height: 450px;
	overflow: hidden;
	
	position: relative;
	text-align: center;
}

	.image-placeholder > strong {
		z-index: 2;
	}

	.image-placeholder > span {
		color: var(--orbit-muted);
		font-size: .88rem;
		z-index: 2;
	}

.community-visual {
	height: 240px;
	margin-bottom: 1rem;
	position: relative;
	width: 300px;
}

.community-person {
	border-radius: 50% 50% 42% 42%;
	bottom: 58px;
	position: absolute;
	width: 80px;
}

	.community-person::before {
		background: var(--orbit-coral);
		border-radius: 50%;
		content: "";
		height: 52px;
		left: 14px;
		position: absolute;
		top: -39px;
		width: 52px;
	}

.community-person-one {
	background: var(--orbit-blue);
	height: 130px;
	left: 20px;
	transform: rotate(-7deg);
}

.community-person-two {
	background: #3c8666;
	height: 150px;
	left: 110px;
	z-index: 2;
}

.community-person-three {
	background: #bd782e;
	height: 125px;
	right: 16px;
	transform: rotate(7deg);
}

.community-table {
	background: var(--orbit-yellow);
	border-radius: 50%;
	bottom: 18px;
	height: 60px;
	left: 8px;
	position: absolute;
	width: 284px;
	z-index: 3;
}

.trust-strip {
	background: var(--orbit-blue);
	color: #fff;
}

	.trust-strip strong, .trust-strip span {
		display: block;
	}

	.trust-strip strong {
		color: #fff;
		font-size: 1.25rem;
	}

	.trust-strip span {
		color: #d8e6ef;
		font-size: .94rem;
	}

.section-space {
	padding: 6rem 0;
}

.section-heading {
	margin: 0 auto 2.5rem;
	max-width: 760px;
	text-align: center;
}

	.section-heading h2 {
		font-size: clamp(2rem, 4vw, 3rem);
		margin: .4rem 0 .8rem;
	}

	.section-heading p {
		color: var(--orbit-muted);
		font-size: 1.15rem;
		margin-bottom: 0;
	}

.category-card {
	align-items: center;
	background: #fff;
	border: 1px solid var(--orbit-border);
	border-radius: var(--orbit-radius);
	box-shadow: 0 8px 25px rgba(23,63,95,.06);
	color: var(--orbit-ink);
	display: flex;
	gap: 1rem;
	height: 100%;
	padding: 1.3rem;
	text-decoration: none;
	transition: transform .2s, box-shadow .2s, border-color .2s;
}

	.category-card:hover {
		border-color: var(--orbit-yellow);
		box-shadow: var(--orbit-shadow);
		color: var(--orbit-ink);
		transform: translateY(-3px);
	}

.category-symbol {
	align-items: center;
	background: #fef3d8;
	border-radius: .85rem;
	color: var(--orbit-blue);
	display: flex;
	flex: 0 0 56px;
	font-size: 1.4rem;
	font-weight: 900;
	height: 56px;
	justify-content: center;
}

.category-card strong, .category-card small {
	display: block;
}

.category-card strong {
	color: var(--orbit-blue-dark);
	font-size: 1.1rem;
}

.category-card small {
	color: var(--orbit-muted);
	margin-top: .2rem;
}

.category-arrow {
	font-size: 2rem;
	margin-left: auto;
}

.feature-programs-section {
	background: var(--orbit-surface);
}

.program-card {
	background: #fff;
	border: 1px solid var(--orbit-border);
	border-radius: var(--orbit-radius);
	box-shadow: 0 8px 25px rgba(23,63,95,.07);
	overflow: hidden;
}

.program-card-accent {
	background: linear-gradient(90deg, var(--orbit-yellow), var(--orbit-coral), var(--orbit-mint));
	height: 8px;
}

.program-card-body {
	display: flex;
	flex-direction: column;
	height: calc(100% - 8px);
	padding: 1.5rem;
}

.program-card h3 {
	font-size: 1.45rem;
}

	.program-card h3 a {
		color: var(--orbit-blue-dark);
		text-decoration: none;
	}

		.program-card h3 a:hover {
			text-decoration: underline;
		}

.program-card p {
	color: var(--orbit-muted);
}

.program-summary {
	color: var(--orbit-muted);
	margin-bottom: 1rem;
}

	.program-summary > :last-child {
		margin-bottom: 0;
	}

.program-category, .program-free, .program-level {
	border-radius: 2rem;
	display: inline-block;
	font-size: .78rem;
	font-weight: 800;
	padding: .32rem .7rem;
}

.program-category {
	background: #e4f0f6;
	color: var(--orbit-blue);
}

.program-free {
	background: #ddefe4;
	color: #135c3b;
}

.program-level {
	background: #fff0dd;
	color: #734718;
}

.program-facts {
	margin: .25rem 0 1rem;
}

	.program-facts div {
		border-top: 1px solid var(--orbit-border);
		display: grid;
		gap: .5rem;
		grid-template-columns: 58px 1fr;
		padding: .55rem 0;
	}

	.program-facts dt {
		color: var(--orbit-muted);
		font-size: .82rem;
		font-weight: 700;
	}

	.program-facts dd {
		color: var(--orbit-ink);
		font-size: .92rem;
		font-weight: 650;
		margin: 0;
	}

.program-house {
	color: var(--orbit-muted);
	font-size: .88rem;
	margin-top: auto;
}

.process-card {
	padding: 1.25rem;
	text-align: center;
}

	.process-card > span {
		align-items: center;
		background: var(--orbit-yellow);
		border-radius: 50%;
		color: var(--orbit-blue-dark);
		display: inline-flex;
		font-size: 1.4rem;
		font-weight: 900;
		height: 58px;
		justify-content: center;
		margin-bottom: 1rem;
		width: 58px;
	}

	.process-card h3 {
		font-size: 1.35rem;
	}

	.process-card p {
		color: var(--orbit-muted);
	}

.house-callout-section {
	background: linear-gradient(135deg, var(--orbit-blue-dark), var(--orbit-blue));
	color: #fff;
}

	.house-callout-section h2, .house-callout-section .lead {
		color: #fff;
	}

.benefit-list {
	background: rgba(255,255,255,.1);
	border: 1px solid rgba(255,255,255,.2);
	border-radius: var(--orbit-radius);
	padding: 1rem 1.5rem;
}

	.benefit-list > div {
		align-items: start;
		border-bottom: 1px solid rgba(255,255,255,.18);
		display: flex;
		gap: 1rem;
		padding: 1rem 0;
	}

		.benefit-list > div:last-child {
			border: 0;
		}

	.benefit-list span {
		align-items: center;
		background: var(--orbit-yellow);
		border-radius: 50%;
		color: var(--orbit-blue);
		display: flex;
		flex: 0 0 30px;
		font-weight: 900;
		height: 30px;
		justify-content: center;
	}

	.benefit-list p {
		margin: 0;
	}

.page-hero {
	background: linear-gradient(130deg, #edf5f3, #fff5e6);
	border-bottom: 1px solid var(--orbit-border);
}

	.page-hero .lead {
		color: var(--orbit-muted);
		max-width: 850px;
	}

.page-hero-compact {
	min-height: 270px;
	display: flex;
	align-items: center;
}

.breadcrumb a {
	color: var(--orbit-blue);
}

.search-filter-panel {
	background: #fff;
	border: 1px solid var(--orbit-border);
	border-radius: var(--orbit-radius);
	box-shadow: var(--orbit-shadow);
	padding: 1.4rem;
}

.program-pagination .page-link {
	background: #fff;
	border-color: var(--orbit-blue);
	color: var(--orbit-blue);
	font-weight: 750;
}

	.program-pagination .page-link:hover, .program-pagination .page-link:focus {
		background: var(--orbit-blue);
		border-color: var(--orbit-blue);
		color: #fff;
	}

.program-pagination .page-item.active .page-link {
	background: var(--orbit-blue);
	border-color: var(--orbit-blue);
	color: #fff;
}

.program-pagination .page-item.disabled .page-link {
	background: var(--orbit-surface);
	border-color: var(--orbit-border);
	color: var(--orbit-muted);
}

.program-pagination-current {
	color: var(--orbit-blue);
}

.form-switch .form-check-input {
	height: 1.35em;
	width: 2.6em;
}

.empty-state {
	background: var(--orbit-surface);
	border: 1px solid var(--orbit-border);
	border-radius: var(--orbit-radius);
	padding: 4rem 2rem;
	text-align: center;
}

	.empty-state > span {
		align-items: center;
		background: var(--orbit-coral);
		border-radius: 50%;
		display: inline-flex;
		font-size: 2rem;
		font-weight: 900;
		height: 70px;
		justify-content: center;
		width: 70px;
	}

.program-detail-hero .btn {
	white-space: normal;
}

.program-description {
	color: #3f535e;
	font-size: 1.2rem;
	line-height: 1.8;
}

.detail-grid {
	display: grid;
	gap: 1rem;
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

	.detail-grid > div {
		background: var(--orbit-surface);
		border-left: 5px solid var(--orbit-yellow);
		border-radius: .7rem;
		padding: 1.2rem;
	}

	.detail-grid span, .detail-grid strong, .detail-grid small {
		display: block;
	}

	.detail-grid span {
		color: var(--orbit-muted);
		font-size: .8rem;
		font-weight: 800;
		letter-spacing: .06em;
		text-transform: uppercase;
	}

	.detail-grid strong {
		color: var(--orbit-blue-dark);
		font-size: 1.05rem;
		margin-top: .25rem;
	}

	.detail-grid small {
		color: var(--orbit-muted);
		margin-top: .2rem;
	}

.contact-panel {
	background: #fff;
	border: 1px solid var(--orbit-border);
	border-radius: var(--orbit-radius);
	box-shadow: var(--orbit-shadow);
	padding: 1.5rem;
	position: sticky;
	top: 104px;
}

.contact-link {
	border-top: 1px solid var(--orbit-border);
	display: block;
	padding: .8rem 0;
	text-decoration: none;
	word-break: break-word;
}

	.contact-link span, .contact-link strong {
		display: block;
	}

	.contact-link span {
		color: var(--orbit-muted);
		font-size: .78rem;
		font-weight: 800;
		text-transform: uppercase;
	}

	.contact-link strong {
		color: var(--orbit-blue);
	}

.house-card {
	background: #fff;
	border: 1px solid var(--orbit-border);
	border-radius: var(--orbit-radius);
	box-shadow: 0 8px 25px rgba(23,63,95,.06);
	padding: 1.5rem;
}

.house-card-symbol {
	align-items: center;
	background: var(--orbit-yellow);
	border-radius: 50% 50% 50% 15%;
	color: var(--orbit-blue);
	display: flex;
	font-size: 1.5rem;
	font-weight: 900;
	height: 58px;
	justify-content: center;
	margin-bottom: 1rem;
	width: 58px;
}

.house-summary {
	color: var(--orbit-muted);
	margin-bottom: 1rem;
}

	.house-summary > :last-child {
		margin-bottom: 0;
	}

.house-card p {
	color: var(--orbit-muted);
}

.house-location {
	color: var(--orbit-blue);
	font-weight: 800;
}

.house-stats {
	display: flex;
	flex-wrap: wrap;
	gap: .5rem;
	margin-top: 1rem;
}

	.house-stats span {
		background: var(--orbit-surface);
		border-radius: .5rem;
		color: var(--orbit-muted);
		font-size: .83rem;
		padding: .45rem .65rem;
	}

.hall-hire-callout {
	background: #fff5dd;
	border: 1px solid #edd088;
	border-radius: var(--orbit-radius);
	padding: 1.5rem;
}

.site-footer {
	background: #0d293e;
	color: #dbe6ec;
}

	.site-footer .h4, .site-footer h2 {
		color: #fff;
	}

	.site-footer a {
		color: #fff;
		display: block;
		margin: .4rem 0;
	}

	.site-footer hr {
		border-color: rgba(255,255,255,.2);
		margin: 2rem 0;
	}

	.site-footer img {
		background: #fff;
		border-radius: 50%;
		object-fit: contain;
	}

.blazor-error-boundary {
	background: #9b1c1c;
	color: #fff;
	padding: 1rem;
}

h1:focus {
	outline: none;
}

@media (max-width: 991.98px) {
	.site-header .navbar-collapse {
		background: #fff;
		border-top: 1px solid var(--orbit-border);
		margin-top: .7rem;
		padding: 1rem 0;
	}

	.py-lg-6 {
		padding-top: 4rem !important;
		padding-bottom: 4rem !important;
	}

	.image-placeholder {
		min-height: 380px;
	}

	.contact-panel {
		position: static;
	}
}

@media (max-width: 767.98px) {
	body {
		font-size: 1rem;
	}

	.section-space {
		padding: 4.25rem 0;
	}

	.hero-section .display-4 {
		font-size: 2.7rem;
	}

	.hero-section .lead {
		font-size: 1.15rem;
	}

	.hero-search-card {
		padding: 1rem;
	}

	.image-placeholder {
		min-height: 340px;
	}

	.detail-grid {
		grid-template-columns: 1fr;
	}

	.trust-strip .col-md-4 {
		border-bottom: 1px solid rgba(255,255,255,.16);
		padding-bottom: .85rem;
	}

		.trust-strip .col-md-4:last-child {
			border-bottom: 0;
		}
}

.ai-search-description ul {
	margin-bottom: 0;
	padding-left: 1.4rem;
}

.ai-search-description li + li {
	margin-top: .5rem;
}

.home-user-text-search {
	min-height: 8rem;
	resize: vertical;
}

.home-voice-input-actions {
	display: grid;
	grid-template-columns: auto minmax(12rem, 16rem) minmax(0, 1fr) auto;
	align-items: center;
	gap: .75rem 1rem;
}

.voice-input-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .45rem;
	min-width: 7rem;
	min-height: 3.25rem;
}

.voice-input-button.is-listening {
	color: #fff;
	background-color: var(--orbit-blue);
	border-color: var(--orbit-blue);
}

.voice-input-icon {
	font-size: 1.25rem;
	line-height: 1;
}

@media (max-width: 575.98px) {
	.home-voice-input-actions {
		grid-template-columns: 1fr;
	}

	.home-voice-input-actions .btn {
		width: 100%;
	}
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

	*, *::before, *::after {
		transition-duration: .01ms !important;
	}
}
