@property --btn-a-stop {
		syntax: "<percentage>";
		initial-value: 0%;
		inherits: false;
}
@property --btn-b-stop {
		syntax: "<percentage>";
		initial-value: 100%;
		inherits: false;
}
@property --btn-gradient-a {
		syntax: "<color>";
		initial-value: #2F9DBC;
		inherits: true;
}
@property --btn-gradient-b {
		syntax: "<color>";
		initial-value: #132149;
		inherits: true;
}
.page {
		--bs-secondary-on-light: rgb(33.74, 112.7059574468, 134.96);
		--bs-secondary-on-light-rgb: 34, 113, 135;
		--bs-secondary-on-dark: rgb(116.6, 197.5787234043, 220.4);
		--bs-secondary-on-dark-rgb: 117, 198, 220;
}
.page :where(.section--dark, .bg-primary, .bg-dark, .hfr-section--dark) {
		--section-tone: dark;
		container-type: style;
}
.page :where(.section--light, .bg-light, .bg-light-subtle, .bg-white, .bg-body, .bg-body-secondary, .bg-body-tertiary, .bg-dark-subtle) {
		--section-tone: light;
		container-type: style;
		--bs-secondary: var(--bs-secondary-on-light);
		--bs-secondary-rgb: var(--bs-secondary-on-light-rgb);
}
@container style(--section-tone: light) {
		.section-label,
		.hero-eyebrow,
		.hero-date {
				--bs-secondary: var(--bs-secondary-on-light);
		}
		.text-secondary,
		.bg-secondary,
		a.link-secondary {
				--bs-secondary-rgb: var(--bs-secondary-on-light-rgb);
		}
		.btn-secondary {
				--bs-btn-bg: var(--bs-secondary-on-light);
				--bs-btn-border-color: var(--bs-secondary-on-light);
				--bs-btn-hover-bg: color-mix(in srgb, var(--bs-secondary-on-light), white 5%);
				--bs-btn-hover-border-color: color-mix(in srgb, var(--bs-secondary-on-light), white 5%);
		}
}
@container style(--section-tone: dark) {
		.section-label,
		.hero-eyebrow,
		.hero-date,
		svg {
				--bs-secondary: var(--bs-secondary-on-dark);
		}
		.text-secondary,
		.bg-secondary,
		a.link-secondary {
				--bs-secondary-rgb: var(--bs-secondary-on-dark-rgb);
		}
		.btn-secondary {
				--bs-btn-bg: var(--bs-secondary-on-dark);
				--bs-btn-border-color: var(--bs-secondary-on-dark);
				--bs-btn-hover-bg: color-mix(in srgb, var(--bs-secondary-on-dark), black 5%);
				--bs-btn-hover-border-color: color-mix(in srgb, var(--bs-secondary-on-dark), black 5%);
				color: var(--bs-dark) !important;
		}
		.badge.bg-secondary {
				--bs-badge-color: var(--bs-dark);
		}
}
.page .highlighted-text-gradient {
		--highlight-color-a: var(--bs-secondary);
		--gradient-position: 50%;
		--highlight-color-b: color-mix(in srgb, var(--bs-secondary) 0%, var(--bs-teal));
		--highlight-angle-offset: 20deg;
		--highlight-gradient-angle-number: 90;
		--highlight-gradient-angle: calc(var(--highlight-gradient-angle-number) * 1deg - var(--highlight-angle-offset));
		background: linear-gradient(var(--highlight-gradient-angle, 90deg), var(--highlight-color-a) var(--gradient-position), var(--highlight-color-b));
		-webkit-background-clip: text;
		background-clip: text;
		-webkit-text-fill-color: transparent;
		padding-right: 0.08em;
}
.page .btn-lg {
		--bs-btn-padding-y: 1.0rem;
		--bs-btn-padding-x: 2.5rem;
}
@media (max-width: 991.98px) {
		.page .btn-lg {
				--bs-btn-padding-y: 0.75rem;
				--bs-btn-padding-x: 1.75rem;
		}
}
.page .form-floating > .form-control-lg {
		height: calc(3.875rem + 2px);
		min-height: calc(3.875rem + 2px);
}
@media (max-width: 991.98px) {
		.page .form-floating > .form-control-lg {
				height: calc(3.375rem + 2px);
				min-height: calc(3.375rem + 2px);
		}
}
.page .form-control {
		padding: 1rem 1.25rem;
}
@media (max-width: 991.98px) {
		.page .form-control {
				padding: 0.75rem 1rem;
		}
}
.page .form-control {
		border-radius: 6px;
		border-color: #2F9DBC;
}
.page .form-floating > .form-control.form-control-lg {
		font-family: var(--ccp-heading-font-family);
}
.page .form-floating > .form-control.form-control-lg ~ label {
		transition: all 0.2s ease;
}
.page .form-floating > .form-control.form-control-lg:not(:-ms-input-placeholder) ~ label {
		inset: 0;
		padding-top: calc(1.625rem - 0.45rem);
}
.page .form-floating > .form-control.form-control-lg:not(:focus) ~ label, .page .form-floating > .form-control.form-control-lg:not(:placeholder-shown) ~ label {
		inset: 0;
		padding-top: calc(1.625rem - 0.45rem);
}
@media (max-width: 991.98px) {
		.page .form-floating > .form-control.form-control-lg:not(:-ms-input-placeholder) ~ label {
				padding-top: 1rem;
		}
		.page .form-floating > .form-control.form-control-lg:not(:focus) ~ label, .page .form-floating > .form-control.form-control-lg:not(:placeholder-shown) ~ label {
				padding-top: 1rem;
		}
}
.page .form-floating > .form-control {
		padding-left: 1.25rem;
		padding-right: 1.25rem;
}
.page .form-floating > .form-control:not(:-ms-input-placeholder) {
		padding-top: 1.625rem;
		padding-bottom: 0.625rem;
}
.page .form-floating > .form-control:focus, .page .form-floating > .form-control:not(:placeholder-shown) {
		padding-top: 1.625rem;
		padding-bottom: 0.625rem;
}
.page .btn .btn-arrow {
		display: inline-block;
		transition: transform 0.3s ease;
}
.page .btn:hover .btn-arrow,
.page .btn:focus-visible .btn-arrow {
		transform: translateX(5px);
}
.page .btn:has(.btn-arrow) {
		display: inline-flex;
		align-items: center;
		gap: 0.5em;
}
.page .btn-cta-gradient {
		--btn-a-stop: 0%;
		--btn-b-stop: 100%;
		--btn-gradient-a: var(--bs-secondary);
		--btn-gradient-b: var(--bs-primary);
		background: linear-gradient(90deg, var(--btn-gradient-a) var(--btn-a-stop), var(--btn-gradient-b) var(--btn-b-stop));
		color: #fff;
		border: none;
		border-radius: var(--bs-border-radius);
		font-family: var(--bs-font-sans-serif);
		white-space: nowrap;
		transition: --btn-a-stop 0.3s ease, --btn-b-stop 0.3s ease, --btn-gradient-b 0.3s ease, color 0.3s ease;
}
.page .btn-cta-gradient:hover, .page .btn-cta-gradient:focus {
		--btn-a-stop: 100%;
		--btn-b-stop: 100%;
		--btn-gradient-b: var(--bs-secondary);
		color: #fff;
}
.page .btn-outline-primary {
		transition: color 0.3s ease, background-color 0.3s ease, border-color 0.3s ease;
}
.page .dark .btn-outline-primary {
		--bs-btn-color: #fff;
		--bs-btn-border-color: #fff;
		--bs-btn-hover-color: var(--bs-primary);
		--bs-btn-hover-bg: #fff;
		--bs-btn-hover-border-color: #fff;
		--bs-btn-active-color: var(--bs-primary);
		--bs-btn-active-bg: #fff;
		--bs-btn-active-border-color:#fff;
}
.page .text-gradient-v {
		background: linear-gradient(to bottom, var(--bs-primary), var(--bs-secondary));
		-webkit-background-clip: text;
		background-clip: text;
		-webkit-text-fill-color: transparent;
}
.page .text-gradient-v sup {
		background: inherit;
		-webkit-background-clip: text;
		background-clip: text;
		-webkit-text-fill-color: transparent;
}
.page .text-gradient-h {
		background: linear-gradient(to right, var(--bs-primary), #2e4faf);
		-webkit-background-clip: text;
		background-clip: text;
		-webkit-text-fill-color: transparent;
}
.page .hero-gradient {
		background: linear-gradient(to right, #20c997, var(--bs-secondary));
		-webkit-background-clip: text;
		background-clip: text;
		-webkit-text-fill-color: transparent;
}
.page .overline {
		color: #1e6b80;
}
.section--dark .overline {
		color: var(--bs-secondary);
}

.page .overline {
		font-family: var(--bs-font-sans-serif);
		font-weight: 700;
		font-size: 0.875rem;
		letter-spacing: 4.5px;
		text-transform: uppercase;
		margin-bottom: 1.5rem;
}
.page .overline.overline--normal {
		letter-spacing: 2.5px;
		margin-bottom: 0;
}
.page .display-1 {
		font-size: clamp(3rem, 4.5vw, 5rem) !important;
		text-wrap: pretty;
}
.page .display-3 {
		font-size: clamp(2.25rem, 4vw, 4rem) !important;
		text-wrap: pretty;
}
.page .display-4 {
		font-size: clamp(2rem, 3.5vw, 3.5rem) !important;
		text-wrap: pretty;
}
.page .display-5 {
		font-size: clamp(1.75rem, 3vw, 3rem) !important;
		text-wrap: pretty;
}
.page .lead {
		font-size: clamp(1rem, 1.5vw, 1.25rem);
}

:where(.page) :where(h2, h3, h4, h5, h6) {
		font-family: var(--ccp-heading-font-family);
		font-weight: 600;
		font-size: clamp(2rem, 3.5vw, 3.5rem);
		line-height: 1.15;
		text-wrap: balance;
		color: inherit;
		margin-bottom: 1.5rem;
}

h2 {
		font-weight: 600 !important;
}

@property --conic-color-base-mix-pct-d {
		syntax: "<percentage>";
		initial-value: 100%;
		inherits: false;
}
@property --conic-color-base-mix-pct {
		syntax: "<percentage>";
		initial-value: 100%;
		inherits: false;
}
@property --glass-conic-opacity {
		syntax: "<number>";
		initial-value: 1;
		inherits: true;
}
@property --conic-color-a {
		syntax: "<color>";
		initial-value: rgba(19, 33, 73, 0.28);
		inherits: true;
}
.icon-wrapper svg [fill=white] {
		fill: currentColor;
}
.icon-wrapper svg [stroke=white] {
		stroke: currentColor;
}

.glass-box {
		--box-conic-angle-number: 135;
		--box-conic-angle: calc(var(--box-conic-angle-number) * 1deg);
		--box-border-angle-offset: -90deg;
		--conic-color-a: color-mix(in srgb, var(--bs-light) 28%, transparent);
		--conic-color-base-mix-pct: 100%;
}
.glass-box:hover::before {
		--conic-color-base-mix-pct: 0%;
		--conic-color-a: var(--bs-secondary);
}
.glass-box {
		position: relative;
		overflow: hidden;
}
.glass-box::before {
		content: "";
		position: absolute;
		inset: 0;
		z-index: 2;
		border-radius: inherit;
		pointer-events: none;
		background: conic-gradient(from calc(var(--box-conic-angle, 135deg) + var(--box-border-angle-offset)), color-mix(in srgb, var(--conic-color-a), transparent var(--conic-color-base-mix-pct)), color-mix(in srgb, var(--conic-color-a), transparent var(--conic-color-base-mix-pct)), var(--conic-color-a), color-mix(in srgb, var(--conic-color-a), transparent var(--conic-color-base-mix-pct)), color-mix(in srgb, var(--conic-color-a), transparent var(--conic-color-base-mix-pct)));
		-webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
		-webkit-mask-composite: xor;
		mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
		mask-composite: exclude;
		box-sizing: border-box;
		padding: 2px;
		border: none;
}
@supports (background-clip: padding-box) or (-webkit-background-clip: padding-box) {
		.glass-box::before {
				background-clip: border-box;
				-webkit-background-clip: border-box;
		}
}
.glass-box::before {
		transition: background 0.3s ease, --conic-color-base-mix-pct 0.9s ease, --conic-color-a 0.9s ease;
}
.glass-box > * {
		position: relative;
		z-index: 2;
}

canvas.stitch-bg {
		position: absolute;
		inset: 0;
		width: 100%;
		height: 100%;
		pointer-events: none;
		z-index: 0;
}

.hero-grid {
		display: -ms-grid;
		display: grid;
		-ms-grid-rows: 1fr;
		-ms-grid-columns: 1fr;
		    grid-template: "stage" 1fr/1fr;
}
.hero-grid.height-auto {
		-ms-grid-rows: auto;
		grid-template-rows: auto;
		height: auto;
		min-height: calc(100vh - var(--ccp-header-height, 100px));
}
.hero-grid.min-height-auto {
		min-height: auto;
}
.hero-grid.hero-grid--condensed {
		height: auto;
		min-height: calc(50vh - var(--ccp-header-height, 100px));
}
@media (max-width: 767.98px) {
		.hero-grid#intro-animation {
				height: auto;
				display: block;
		}
		.hero-grid#intro-animation .hero-background-pane {
				padding: 1rem 5rem;
		}
}
@media (min-width: 768px) {
		.hero-grid {
				align-content: center;
				height: calc(100vh - var(--ccp-header-height, 100px));
		}
}

:where(.hero-background-pane, .hero-foreground-pane) {
		-ms-grid-row: 1;
		-ms-grid-column: 1;
		grid-area: stage;
		min-height: 100%;
		position: relative;
}

.hero-background-pane {
		z-index: 1;
}
.hero-background-pane:has(video, canvas) video {
		filter: grayscale(0.8) brightness(0.6) contrast(1.2);
}
.hero-background-pane:has(video, canvas) {
		position: relative;
}
.hero-background-pane:has(video, canvas)::after {
		content: "";
		position: absolute;
		inset: 0;
		background-color: color-mix(in srgb, var(--bs-primary) 55%, transparent);
}
.hero-background-pane .hero-video {
		width: 100%;
		height: 100%;
		object-fit: cover;
		object-position: center;
}
.hero-background-pane img.hero-img {
		width: 100%;
		height: 100%;
		object-fit: cover;
}

.hero-foreground-pane {
		z-index: 2;
		display: -ms-grid;
		display: grid;
		place-items: center;
}
.hero-foreground-pane--bg-blur {
		backdrop-filter: blur(10px);
}

.important-disclosure summary {
		cursor: pointer;
		list-style: none;
		display: inline-flex;
		align-items: center;
		gap: 0.625rem;
		font-weight: 400 !important;
		font-size: 0.875rem;
}
.important-disclosure summary::-webkit-details-marker {
		display: none;
}
.important-disclosure summary .fa-chevron-down {
		transition: transform 0.25s ease;
}
.important-disclosure[open] summary .fa-chevron-down {
		transform: rotate(180deg);
}

#section-sources .disclosure-list {
		color: var(--bs-secondary-color);
}

.disclosure-list {
		padding-inline-start: 1.25rem;
}
.disclosure-list li + li {
		margin-top: 0.5rem;
}