
/* Homepage program cards: larger program names */
.custom-program-grid .custom-card-style-1-title {
	font-size: 1.65em;
	line-height: 1.3;
}

/* Catalog page */
.custom-catalog-toc {
	position: sticky;
	top: 120px;
	max-height: calc(100vh - 140px);
	overflow-y: auto;
	padding: 1.5rem;
	border-radius: 8px;
	background: #f7f8fa;
}
.custom-catalog-toc li {
	margin-bottom: .35rem;
	line-height: 1.35;
}
.custom-catalog-toc a {
	color: var(--secondary);
	font-size: .9em;
	text-decoration: none;
}
.custom-catalog-toc a:hover {
	color: var(--primary);
}
.custom-catalog h2 {
	font-size: 1.75em;
	font-weight: 700;
	line-height: 1.3;
	color: var(--secondary);
	margin: 2.75rem 0 1rem;
	padding-top: .5rem;
	scroll-margin-top: 120px;
}
.custom-catalog h2:first-child {
	margin-top: 0;
}
.custom-catalog h3 {
	font-size: 1.2em;
	font-weight: 700;
	line-height: 1.4;
	margin: 1.5rem 0 .5rem;
}
.custom-catalog ul,
.custom-catalog ol {
	margin-bottom: 1rem;
	padding-left: 1.25rem;
}
.custom-catalog-table th {
	background: var(--secondary);
	color: #fff;
	font-weight: 600;
	white-space: nowrap;
}
.custom-catalog-address {
	padding: 1rem 1.25rem;
	border-left: 4px solid var(--primary);
	background: #f7f8fa;
	font-style: normal;
}
.custom-catalog-program {
	margin-top: 1.5rem;
	padding: 1.5rem;
	border: 1px solid #e5e7eb;
	border-radius: 8px;
}
.custom-catalog-program h3 {
	margin-top: 0;
	font-size: 1.4em;
}
.custom-catalog-meta {
	color: var(--primary);
	font-weight: 600;
	text-transform: uppercase;
	font-size: .8em;
	letter-spacing: .03em;
}
@media (max-width: 991px) {
	.custom-catalog-toc {
		position: static;
		max-height: 260px;
	}
}

/* Program detail pages */
.custom-program-lead {
	font-size: 1.25em;
	line-height: 1.6;
	color: var(--secondary);
	margin-bottom: 1.75rem;
}
.custom-program-stat {
	height: 100%;
	padding: 1rem;
	border-radius: 8px;
	background: #f7f8fa;
	border-top: 3px solid var(--primary);
}
.custom-program-stat-label {
	display: block;
	font-size: .75em;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: .03em;
	opacity: .7;
	margin-bottom: .25rem;
}
.custom-program-stat-value {
	display: block;
	font-weight: 700;
	color: var(--secondary);
	line-height: 1.35;
}
.custom-program-sidebar {
	position: sticky;
	top: 120px;
}
.custom-program-sidebar .custom-catalog-toc {
	position: static;
	max-height: none;
}
.custom-program-side-card {
	padding: 1.5rem;
	border: 1px solid #e5e7eb;
	border-radius: 8px;
}
.custom-program-side-card h3 {
	font-size: 1.15em;
	font-weight: 700;
	color: var(--secondary);
	margin: 0 0 .75rem;
}
.custom-program-list {
	padding-left: 1.25rem;
	margin-bottom: 1rem;
}
.custom-program-list li {
	margin-bottom: .4rem;
}
.custom-program-side-card .custom-program-list:last-child {
	margin-bottom: 0;
}
.custom-program-weeks {
	border-left: 2px solid #e5e7eb;
	margin-left: 1.25rem;
}
.custom-program-week {
	display: flex;
	gap: 1rem;
	margin-left: -1.3rem;
	padding-bottom: 1.25rem;
}
.custom-program-week-num {
	flex: 0 0 2.5rem;
	height: 2.5rem;
	border-radius: 50%;
	background: var(--primary);
	color: #fff;
	font-weight: 700;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: .85em;
}
.custom-program-week h4 {
	font-size: 1.05em;
	font-weight: 700;
	color: var(--secondary);
	margin: .55rem 0 .25rem;
}
.custom-program-module {
	padding: 1.25rem;
	border: 1px solid #e5e7eb;
	border-radius: 8px;
}
.custom-program-module h4 {
	font-size: 1em;
	font-weight: 700;
	color: var(--secondary);
	margin: 0 0 .75rem;
}
.custom-program-module .custom-program-list {
	margin-bottom: 0;
}
.custom-program-cta {
	padding: 2rem;
	border-radius: 8px;
	background: var(--secondary);
}
@media (max-width: 991px) {
	.custom-program-sidebar {
		position: static;
	}
}

/* Hero program pills that link to a program page */
a.custom-industry-pill {
	color: var(--primary);
}
a.custom-industry-pill:hover,
a.custom-industry-pill:focus {
	color: #fff;
}

/* BPPE banner: same light-to-blue gradient as the home hero */
section.section.custom-bppe-banner > .shape-divider {
	z-index: 1;
}
section.section.custom-bppe-banner > .container {
	position: relative;
	z-index: 2;
}
section.section.custom-bppe-banner .custom-highlight-1 {
	color: #fff;
}

/* Footer: extra breathing room */
#footer > .container {
	padding-top: 2.5rem !important;
	padding-bottom: 2rem !important;
	padding-left: 1.5rem;
	padding-right: 1.5rem;
}
#footer .footer-copyright,
#footer > .container > .row:last-child {
	padding-bottom: 1rem;
}
@media (min-width: 992px) {
	#footer > .container {
		padding-top: 3.5rem !important;
		padding-bottom: 2.5rem !important;
		padding-left: 2.5rem;
		padding-right: 2.5rem;
	}
}

/* Federal priorities: icon badges */
.custom-gov-icon-wrapper {
	position: relative;
	width: 104px;
	height: 104px;
	background: linear-gradient(135deg, #2a74d6 0%, var(--primary) 50%, var(--tertiary) 100%);
	box-shadow:
		0 0 0 8px rgba(21, 86, 176, 0.10),
		0 0 0 16px rgba(21, 86, 176, 0.05),
		0 14px 28px -10px rgba(14, 63, 130, 0.55);
	transition: transform 0.35s ease, box-shadow 0.35s ease;
}
.custom-gov-icon-wrapper::after {
	/* subtle glossy highlight */
	content: "";
	position: absolute;
	inset: 6px;
	border-radius: 50%;
	border: 1px solid rgba(255, 255, 255, 0.25);
	background: radial-gradient(circle at 30% 25%, rgba(255, 255, 255, 0.28), rgba(255, 255, 255, 0) 55%);
	pointer-events: none;
}
.featured-boxes .custom-gov-icon-wrapper .icon-featured.custom-gov-icon {
	position: relative;
	z-index: 1;
	color: #fff !important;
	background: transparent !important;
	border: 0 !important;
	font-size: 2.4rem;
	filter: drop-shadow(0 2px 3px rgba(0, 0, 0, 0.18));
}
.featured-box:hover .custom-gov-icon-wrapper {
	transform: translateY(-6px);
	box-shadow:
		0 0 0 10px rgba(21, 86, 176, 0.14),
		0 0 0 20px rgba(21, 86, 176, 0.06),
		0 20px 34px -12px rgba(14, 63, 130, 0.6);
}
@media (prefers-reduced-motion: reduce) {
	.custom-gov-icon-wrapper { transition: none; }
	.featured-box:hover .custom-gov-icon-wrapper { transform: none; }
}

/* Logo wordmark: "AI" red + "Roboto" blue (echoes the split shield) + "Edu" */
.custom-logo-wordmark {
	display: inline-flex;
	align-items: center;
	gap: .28em;
	font-weight: 800;
	font-size: 2rem;
	letter-spacing: -0.035em;
	word-spacing: 0;
	line-height: 1;
}
.custom-logo-wordmark .custom-logo-ai {
	color: #b3261e;
}
.custom-logo-wordmark .custom-logo-name,
.custom-logo-wordmark .custom-logo-edu {
	background: linear-gradient(180deg, #1d63c4 0%, var(--primary) 55%, var(--tertiary) 100%);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	color: var(--primary);
}

/* Footer (dark background) variant */
.custom-logo-wordmark.text-color-light .custom-logo-ai {
	color: #ff6b5e !important;
}
.custom-logo-wordmark.text-color-light .custom-logo-name,
.custom-logo-wordmark.text-color-light .custom-logo-edu {
	background: none;
	-webkit-text-fill-color: #fff;
	color: #fff;
}

/* Smaller when the header is sticky / on small phones */
html.sticky-header-active .custom-logo-wordmark { font-size: 1.7rem; }
@media (max-width: 400px) {
	.custom-logo-wordmark { font-size: 1.55rem; }
}

/* Header "Apply Now" call-to-action button */
.custom-header-apply-btn {
	margin-left: 1.25rem;
	padding: .7rem 1.4rem;
	border-radius: 50px;
	letter-spacing: .04em;
	white-space: nowrap;
	box-shadow: 0 8px 18px -8px rgba(14, 63, 130, 0.55);
	transition: transform .2s ease, box-shadow .2s ease;
}
.custom-header-apply-btn:hover,
.custom-header-apply-btn:focus {
	transform: translateY(-2px);
	box-shadow: 0 12px 22px -8px rgba(14, 63, 130, 0.65);
}
#header.sticky-header-active .custom-header-apply-btn {
	padding: .55rem 1.2rem;
}
@media (max-width: 991px) {
	.custom-header-apply-btn {
		margin-left: auto;
		margin-right: .75rem;
		padding: .5rem 1rem;
		font-size: .75rem !important;
	}
}
@media (prefers-reduced-motion: reduce) {
	.custom-header-apply-btn { transition: none; }
	.custom-header-apply-btn:hover,
	.custom-header-apply-btn:focus { transform: none; }
}
@media (max-width: 575px) {
	.custom-header-apply-btn {
		margin-right: .5rem;
		padding: .45rem .8rem;
		font-size: .7rem !important;
		letter-spacing: .02em;
	}
	#header .header-logo .custom-logo-wordmark {
		font-size: 1.35rem;
	}
	#header .header-logo img {
		width: 32px;
		height: auto;
	}
}
@media (max-width: 575px) {
	#header .header-logo img {
		width: 30px !important;
		height: auto !important;
	}
	#header .header-logo .custom-logo-link {
		gap: .4rem;
	}
	#header .header-logo .custom-logo-text {
		margin-left: 0 !important;
	}
}
@media (max-width: 400px) {
	#header .header-logo .custom-logo-wordmark {
		font-size: 1.1rem;
		gap: .22em;
	}
	.custom-header-apply-btn {
		margin-right: .4rem;
		padding: .4rem .65rem;
		font-size: .65rem !important;
	}
	#header .header-btn-collapse-nav {
		margin-left: 0;
	}
}

/* Header "Apply Now": extra separation from nav links on desktop */
@media (min-width: 992px) {
	.custom-header-apply-btn {
		position: relative;
		margin-left: 3rem;
		overflow: visible;
	}
	.custom-header-apply-btn::before {
		content: "";
		position: absolute;
		left: -1.5rem;
		top: 50%;
		width: 1px;
		height: 28px;
		transform: translateY(-50%);
		background: #d9dee6;
		pointer-events: none;
	}
}

/* Apply Now page */
.custom-apply-card {
	padding: 2rem;
	border: 1px solid #e5e7eb;
	border-radius: 8px;
	background: #fff;
	box-shadow: 0 18px 40px -28px rgba(14, 63, 130, 0.35);
}
@media (min-width: 992px) {
	.custom-apply-card {
		padding: 2.5rem;
	}
}
.custom-apply-form .form-group {
	margin-bottom: 1.25rem;
}
.custom-apply-form .form-label {
	font-weight: 600;
	color: var(--secondary);
	margin-bottom: .4rem;
}
.custom-apply-form .form-control {
	min-height: 48px;
	padding: .65rem .9rem;
	border-color: #d9dee6;
	border-radius: 6px;
	font-size: 1rem;
}
.custom-apply-form textarea.form-control {
	min-height: 130px;
}
.custom-apply-form .form-control:focus {
	border-color: var(--primary);
	box-shadow: 0 0 0 3px rgba(21, 86, 176, 0.15);
}
.custom-apply-form .form-check-input {
	margin-top: .3rem;
}
.custom-apply-form label.error {
	display: block;
	margin-top: .3rem;
	font-size: .85em;
	color: #b3261e;
}
.custom-apply-contact li {
	display: flex;
	gap: .75rem;
	align-items: flex-start;
	margin-bottom: .85rem;
	line-height: 1.5;
}
.custom-apply-contact li:last-child {
	margin-bottom: 0;
}
.custom-apply-contact i {
	flex: 0 0 1.1rem;
	margin-top: .25rem;
	color: var(--primary);
}
.custom-apply-contact a {
	word-break: break-word;
}
.custom-apply-step {
	display: flex;
	gap: .9rem;
	align-items: flex-start;
	margin-bottom: 1rem;
}
.custom-apply-step:last-child {
	margin-bottom: 0;
}
.custom-apply-step .custom-program-week-num {
	flex: 0 0 2rem;
	height: 2rem;
	font-size: .8em;
}
.custom-apply-step p {
	margin: .2rem 0 0;
	line-height: 1.5;
}
.custom-apply-programs li {
	margin-bottom: .5rem;
}
.custom-apply-programs li:last-child {
	margin-bottom: 0;
}
.custom-apply-programs a::before {
	content: "\2192";
	margin-right: .5rem;
	color: var(--primary);
}

/* Apply Now page: embedded Lark form */
.custom-apply-embed {
	margin: 0 -1rem;
	border-radius: 6px;
	overflow: hidden;
	background: #f7f8fa;
}
.custom-apply-embed iframe {
	display: block;
	width: 100%;
	height: 1400px;
	border: 0;
}
@media (min-width: 992px) {
	.custom-apply-embed {
		margin: 0;
	}
}
@media (max-width: 575px) {
	.custom-apply-card {
		padding: 1.5rem 1rem;
	}
	.custom-apply-embed {
		margin: 0 -.5rem;
	}
	.custom-apply-embed iframe {
		height: 1600px;
	}
}
