 :root {
	--color-primary: #082746;
	--color-secondary: #0a68b7;
	--color-accent: #78c0f8;
	--color-ink: #16324f;
	--color-body: #5b7086;
	--color-muted: #eef6fc;
	--color-surface: #ffffff;
	--color-surface-alt: #f7fbff;
	--color-border: rgba(8, 39, 70, 0.1);
	--color-success-soft: rgba(120, 192, 248, 0.16);
	--font-base: "DM Sans", sans-serif;
	--space-1: 0.25rem;
	--space-2: 0.5rem;
	--space-3: 0.75rem;
	--space-4: 1rem;
	--space-5: 1.5rem;
	--space-6: 2rem;
	--space-7: 3rem;
	--space-8: 4rem;
	--space-9: 5rem;
	--radius-sm: 0.75rem;
	--radius-md: 1.25rem;
	--radius-lg: 1.75rem;
	--radius-xl: 2.5rem;
	--shadow-sm: 0 16px 30px rgba(8, 39, 70, 0.08);
	--shadow-md: 0 24px 60px rgba(8, 39, 70, 0.12);
	--shadow-lg: 0 30px 80px rgba(8, 39, 70, 0.18);
	--transition-base: all 0.25s ease-out;
}

body {
	font-family: var(--font-base);
	color: var(--color-body);
	overflow-x: clip;
	background:
		radial-gradient(circle at top left, rgba(120, 192, 248, 0.24), transparent 28%),
		linear-gradient(180deg, #fafdff 0%, #ffffff 28%, #f6fbff 100%);
}

a {
	color: var(--color-secondary);
	transition: var(--transition-base);
}

a:hover,
a:focus {
	color: var(--color-primary);
}

img {
	display: block;
	max-width: 100%;
}

.skip-link {
	position: absolute;
	left: 1rem;
	top: -3rem;
	z-index: 1050;
	padding: 0.75rem 1rem;
	border-radius: var(--radius-sm);
	background: var(--color-primary);
	color: #fff;
}

.skip-link:focus {
	top: 1rem;
}

.topbar {
	background: var(--color-primary);
}

.topbar-link {
	color: rgba(255, 255, 255, 0.72);
	text-decoration: none;
	transition: var(--transition-base);
}

.topbar-link:hover,
.topbar-link:focus {
	color: #fff;
}

.site-header {
	backdrop-filter: blur(16px);
	background: rgba(255, 255, 255, 0.9);
	border-bottom: 1px solid rgba(8, 39, 70, 0.06);
}

.navbar {
	--bs-navbar-nav-link-padding-x: 1rem;
}

.brand-logo {
	width: auto;
	height: 60px;
}

.nav-link {
	color: var(--color-ink);
	font-weight: 600;
	transition: var(--transition-base);
}

.nav-link:hover,
.nav-link:focus,
.nav-link.active {
	color: var(--color-secondary);
}

.nav-action {
	color: var(--color-primary);
	font-weight: 700;
	text-decoration: none;
	transition: var(--transition-base);
}

.section-shell {
	position: relative;
	overflow: hidden;
}

.section-shell::before {
	content: "";
	position: absolute;
	inset: 0;
	background:
		radial-gradient(circle at 18% 15%, rgba(120, 192, 248, 0.22), transparent 20%),
		radial-gradient(circle at 80% 8%, rgba(10, 104, 183, 0.1), transparent 22%);
	pointer-events: none;
}

.section-spacing {
	padding: var(--space-8) 0;
}

.section-muted {
	background: linear-gradient(180deg, rgba(238, 246, 252, 0.8), rgba(255, 255, 255, 0));
}

.eyebrow {
	display: inline-flex;
	align-items: center;
	gap: var(--space-2);
	padding: 0.5rem 0.9rem;
	border-radius: 999px;
	background: rgba(120, 192, 248, 0.2);
	color: var(--color-secondary);
	font-size: 0.875rem;
	font-weight: 700;
	letter-spacing: 0.03em;
	text-transform: uppercase;
}

.display-title,
.section-title,
.course-card h3,
.category-card h3,
.step-card h3,
.feature-list-item h3,
.instructor-card h3,
.event-card h3,
.testimonial-card h3,
.cta-card h3,
.footer-title {
	color: var(--color-primary);
	font-weight: 700;
	line-height: 1.1;
}

.display-title {
	max-width: 12ch;
	font-size: clamp(2.4rem, 5vw, 4.75rem);
}

.hero-copy,
.section-copy {
	font-size: 1.0625rem;
	line-height: 1.7;	
}

.section-heading {
	max-width: 48rem;
}

.section-title {
	font-size: clamp(2rem, 3.5vw, 3.2rem);
	margin-top: var(--space-3);
	margin-bottom: var(--space-3);
	text-align: center;
}

.card-panel,
.category-card,
.course-card,
.step-card,
.feature-list-item,
.career-stat,
.instructor-card,
.event-card,
.testimonial-card,
.cta-card,
.newsletter-form,
.stat-chip {
	background: var(--color-surface);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-md);
	box-shadow: var(--shadow-sm);
}

.btn {
	--bs-btn-padding-x: 1.35rem;
	--bs-btn-padding-y: 0.9rem;
	--bs-btn-font-weight: 700;
	border-radius: 999px;
	transition: var(--transition-base);
}

.btn-brand {
	color: #fff;
	background: linear-gradient(135deg, var(--color-secondary), #0e7bd1);
	border-color: transparent;
	box-shadow: 0 18px 30px rgba(10, 104, 183, 0.22);
}

.btn-brand:hover,
.btn-brand:focus {
	color: #fff;
	background: linear-gradient(135deg, #09599c, var(--color-secondary));
	transform: translateY(-2px);
}

.btn-outline-brand {
	color: var(--color-primary);
	border-color: rgba(8, 39, 70, 0.14);
	background: rgba(255, 255, 255, 0.85);
}

.btn-outline-brand:hover,
.btn-outline-brand:focus {
	color: #fff;
	background: var(--color-primary);
	border-color: var(--color-primary);
	transform: translateY(-2px);
}

.hero-section {
	padding: calc(var(--space-8) + 1rem) 0 var(--space-8);
}

.stat-chip {
	display: flex;
	align-items: center;
	gap: var(--space-3);
	padding: 1rem 1.1rem;
}

.stat-chip i,
.category-icon,
.feature-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 3rem;
	height: 3rem;
	border-radius: 1rem;
	background: var(--color-success-soft);
	color: var(--color-secondary);
	font-size: 1.15rem;
	flex-shrink: 0;
}

.stat-chip strong,
.metric-value,
.career-stat strong {
	display: block;
	color: var(--color-primary);
	font-size: 1.2rem;
}

.stat-chip span,
.metric-label,
.career-stat span {
	display: block;
	font-size: 0.95rem;
}

.hero-media {
	position: relative;
	max-width: 100%;
}

.hero-badge {
	position: absolute;
	top: 1rem;
	left: 0;
	z-index: 2;
	display: inline-flex;
	align-items: center;
	gap: var(--space-3);
	padding: 1rem 1.25rem;
}

.badge-dot {
	width: 0.85rem;
	height: 0.85rem;
	border-radius: 50%;
	background: var(--color-accent);
	box-shadow: 0 0 0 0.35rem rgba(120, 192, 248, 0.25);
}

.hero-badge strong,
.hero-badge span {
	display: block;
}

.hero-image-stack {
	position: relative;
	min-height: 30rem;
	padding: 3.5rem 0 3.5rem 0;
	max-width: 100%;
}

.hero-card {
	overflow: hidden;
	border-radius: var(--radius-xl);
	box-shadow: var(--shadow-lg);
}

.hero-card img,
.image-panel img,
.instructor-card img,
.event-card img,
.cta-card img,
.course-media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.hero-card-main {
	width: min(100%, 32rem);
	aspect-ratio: 4 / 4.5;
	margin: 0 auto;
}

.metric-card {
	position: absolute;
	right: 1rem;
	bottom: 1rem;
	padding: 1rem 1.25rem;
	min-width: 11rem;
	border-radius: var(--radius-md);
	background: rgba(8, 39, 70, 0.92);
	box-shadow: var(--shadow-md);
}

.metric-card .metric-value,
.metric-card .metric-label {
	color: #fff;
}

.category-card,
.step-card,
.career-stat,
.event-card-body,
.testimonial-card,
.course-body,
.instructor-body {
	padding: 1.5rem;
}

.category-card {
	height: 100%;
	transition: var(--transition-base);
}

.category-card:hover,
.category-card:focus-within,
.course-card:hover,
.instructor-card:hover,
.event-card:hover {
	transform: translateY(-4px);
	box-shadow: var(--shadow-md);
}

.category-card h3,
.step-card h3,
.feature-list-item h3,
.event-card h3,
.footer-title {
	font-size: 1.25rem;
	margin: 1rem 0 0.5rem;
}

.category-card-accent {
	background: linear-gradient(135deg, var(--color-primary), #10385f);
	border-color: transparent;
}

.category-card-accent h3,
.category-card-accent p,
.category-card-accent .category-icon {
	color: #fff;
}

.category-card-accent .category-icon {
	background: rgba(255, 255, 255, 0.16);
}

.filter-pills {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
}

.courses-toolbar {
	width: 100%;
}

.pill {
	padding: 0.8rem 1.15rem;
	border: 1px solid rgba(8, 39, 70, 0.1);
	background: #fff;
	color: var(--color-ink);
	transition: var(--transition-base);
}

.pill.active,
.pill:hover,
.pill:focus {
	color: #fff;
	background: var(--color-primary);
	border-color: var(--color-primary);
	transform: translateY(-1px);
}

.course-card,
.instructor-card,
.event-card {
	position: relative;
	overflow: hidden;
	transition: var(--transition-base);
}

.course-media {
	position: relative;
	height: 16rem;
}

.course-tag {
	position: absolute;
	top: 1rem;
	left: 1rem;
	padding: 0.45rem 0.8rem;
	border-radius: 999px;
	background: rgba(8, 39, 70, 0.85);
	color: #fff;
	font-size: 0.8rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.03em;
}

.course-meta,
.course-details,
.course-footer,
.instructor-meta,
.trusted-logos,
.footer-links {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem 1rem;
}

.course-meta,
.course-author,
.event-date,
.instructor-card p,
.footer-copy,
.footer-bottom,
.footer-bottom a {
	color: var(--color-body);
}

.course-meta {
	font-size: 0.95rem;
	margin-bottom: 0.75rem;
}

.course-card h3 {
	font-size: 1.35rem;
	margin-bottom: 1rem;
}

.course-details li {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	color: var(--color-body);
	font-size: 0.95rem;
}

.course-footer {
	align-items: end;
	justify-content: space-between;
	margin-top: 1.5rem;
	padding-top: 1rem;
	border-top: 1px solid var(--color-border);
}

.course-author {
	display: block;
	margin-bottom: 0.2rem;
}

.course-price {
	font-size: 1.35rem;
	color: var(--color-primary);
}

.step-card.step-card {
	position: relative;
	padding-top: 4.5rem;
}

.step-number {
	position: absolute;
	top: 1.25rem;
	left: 1.5rem;
	color: rgba(10, 104, 183, 0.22);
	font-size: 2.2rem;
	font-weight: 700;
}

.image-panel {
	overflow: hidden;
	border-radius: var(--radius-xl);
	box-shadow: var(--shadow-md);
	min-height: 100%;
}

#about .image-panel img {
	aspect-ratio: 4 / 5;
	min-height: 38rem;
}

.about-row {
	--bs-gutter-x: clamp(2rem, 4vw, 4.5rem);
}

.feature-list-item {
	display: flex;
	gap: 1rem;
	align-items: flex-start;
	padding: 1rem 1.1rem;
}

.feature-list-item h3 {
	margin-top: 0;
}

.career-banner {
	padding: clamp(1.75rem, 3vw, 3rem);
	border-radius: var(--radius-xl);
	background:
		radial-gradient(circle at top right, rgba(120, 192, 248, 0.32), transparent 28%),
		linear-gradient(135deg, var(--color-primary), #0f4d86);
	box-shadow: var(--shadow-lg);
}

.career-stat {
	padding: 1.25rem;
	min-height: 100%;
	background: rgba(255, 255, 255, 0.1);
	border-color: rgba(255, 255, 255, 0.18);
	box-shadow: none;
}

.career-stat strong,
.career-stat span {
	color: #fff;
}

.instructor-card img {
	height: 19rem;
}

.rating-pill {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	padding: 0.4rem 0.7rem;
	border-radius: 999px;
	background: rgba(120, 192, 248, 0.16);
	color: var(--color-primary);
	font-weight: 700;
}

.instructor-card h3 {
	font-size: 1.35rem;
	margin: 1rem 0 0.35rem;
}

.instructor-meta {
	margin-top: 1rem;
	color: var(--color-body);
	font-size: 0.95rem;
}

.event-card img {
	height: 15rem;
}

.event-date {
	display: inline-flex;
	padding: 0.35rem 0.75rem;
	border-radius: 999px;
	background: rgba(120, 192, 248, 0.2);
	font-weight: 700;
	margin-bottom: 1rem;
}

.event-link {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	margin-top: 0.75rem;
	font-weight: 700;
	text-decoration: none;
	transition: var(--transition-base);
}

.event-link:hover,
.event-link:focus {
	gap: 0.7rem;
}

.testimonial-card blockquote {
	margin: 1rem 0 1.5rem;
	color: var(--color-ink);
	font-size: 1.125rem;
	line-height: 1.75;
}

.testimonial-stars {
	color: #f2b94b;
}

.testimonial-avatar {
	width: 4rem;
	height: 4rem;
	border-radius: 50%;
	object-fit: cover;
}

.trusted-strip {
	display: grid;
	gap: 1rem;
}

.trusted-strip > span {
	color: var(--color-primary);
	font-weight: 700;
}

.trusted-logos span {
	padding: 0.8rem 1rem;
	border-radius: 999px;
	background: rgba(8, 39, 70, 0.05);
	color: var(--color-primary);
	font-weight: 700;
	transition: var(--transition-base);
}

.cta-card {
	display: grid;
	grid-template-columns: 1.2fr 0.8fr;
	align-items: center;
	gap: 1.5rem;
	padding: 1.5rem;
	overflow: hidden;
}

.cta-card h3 {
	font-size: 1.75rem;
	margin: 1rem 0 0.75rem;
}

.cta-card p {
	margin-bottom: 1.25rem;
}

.cta-card img {
	height: 100%;
	min-height: 14rem;
	border-radius: var(--radius-md);
}

.cta-card-dark {
	background: linear-gradient(135deg, var(--color-primary), #123e68);
	border-color: transparent;
}

.cta-card-dark h3,
.cta-card-dark p {
	color: #fff;
}

.cta-card-dark .eyebrow {
	color: #fff;
	background: rgba(255, 255, 255, 0.14);
}

.cta-card-light {
	background: linear-gradient(135deg, rgba(120, 192, 248, 0.25), rgba(255, 255, 255, 0.95));
}

.cta-banner {
	padding-top: var(--space-8);
	padding-bottom: var(--space-8);
}

.cta-banner-inner {
	padding: clamp(1.75rem, 3vw, 3rem);
	border-radius: var(--radius-xl);
	background: #fff;
	box-shadow: var(--shadow-md);
}


.cta-banner-actions {
	width: 100%;
}

.site-footer {
	background: var(--color-primary);
	color: rgba(255, 255, 255, 0.72);
}

.site-footer .brand-logo {
	filter: brightness(0) invert(1);
}

.site-footer .footer-title,
.site-footer .footer-bottom p,
.site-footer .footer-bottom a,
.site-footer .footer-links a,
.site-footer .footer-copy {
	color: rgba(255, 255, 255, 0.84);
}

.site-footer .footer-title {
	margin-top: 0;
	margin-bottom: 1rem;
}

.footer-links {
	display: grid;
	gap: 0.7rem;
}

.footer-links a,
.footer-bottom a {
	text-decoration: none;
}

.newsletter-form {
	padding: 0.5rem;
	background: rgba(255, 255, 255, 0.08);
	border-color: rgba(255, 255, 255, 0.12);
	box-shadow: none;
}

.newsletter-form .form-control {
	background: transparent;
	color: #fff;
}

.newsletter-form .form-control::placeholder {
	color: rgba(255, 255, 255, 0.6);
}

.newsletter-form .form-control:focus {
	box-shadow: none;
}

.social-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.75rem;
	height: 2.75rem;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.1);
	color: #fff;
	text-decoration: none;
	transition: var(--transition-base);
}

.social-link:hover,
.social-link:focus {
	background: var(--color-accent);
	color: var(--color-primary);
}

@media (max-width: 1199px) {
	.navbar-collapse {
		padding-top: 1rem;
	}

	.nav-link {
		padding-left: 0;
		padding-right: 0;
	}
}

@media (max-width: 991px) {
	.section-spacing {
		padding: var(--space-7) 0;
	}

	.hero-section [aria-label="Platform highlights"] > .col {
		flex: 0 0 50%;
		width: 50%;
	}

	.hero-badge {
		position: static;
		margin-bottom: 1rem;
	}

	.hero-image-stack {
		min-height: auto;
		padding: 0 0 5.5rem;
	}

	.hero-card-main {
		margin: 0 auto;
	}

	.metric-card {
		right: 0;
	}

	#career .col-sm-4 {
		flex: 0 0 50%;
		width: 50%;
	}

	.cta-card {
		grid-template-columns: 1fr;
		gap: 1.25rem;
	}

	.newsletter-form .input-group {
		flex-wrap: nowrap;
	}
}

@media (max-width: 767px) {
	.brand-logo {
		height: 45px;
	}

	#about .image-panel img {
		min-height: 24rem;
	}

	.courses-toolbar .btn-outline-brand {
		width: 100%;
	}

	.hero-section {
		padding-top: var(--space-7);
	}

	.display-title {
		max-width: 100%;
	}

	.hero-section [aria-label="Platform highlights"] > .col {
		flex: 0 0 100%;
		width: 100%;
	}

	.metric-card {
		left: 1rem;
		right: auto;
		bottom: 0;
		min-width: 9.5rem;
	}

	.course-media,
	.instructor-card img,
	.event-card img {
		height: 14rem;
	}

	.course-footer {
		flex-direction: column;
		align-items: flex-start;
	}

	.course-footer > * {
		width: 100%;
	}

	.cta-card {
		padding: 1.25rem;
	}

	.cta-card img {
		min-height: 11rem;
		max-height: 15rem;
	}

	#career .col-sm-4 {
		flex: 0 0 100%;
		width: 100%;
	}

	.footer-bottom {
		text-align: center;
	}

	.newsletter-form .input-group {
		flex-direction: column;
	}

	.newsletter-form .form-control,
	.newsletter-form .btn {
		width: 100%;
		border-radius: var(--radius-sm) !important;
	}

	.cta-banner-inner,
	.career-banner,
	.testimonial-card,
	.course-body,
	.category-card,
	.step-card,
	.event-card-body,
	.instructor-body {
		padding: 1.25rem;
	}

	.trusted-logos span {
		width: calc(50% - 0.5rem);
		text-align: center;
	}

	.cta-banner-actions .btn {
		width: 100%;
	}
}

@media (max-width: 575px) {
	.hero-badge,
	.metric-card {
		position: static;
		margin-top: 1rem;
	}

	.hero-image-stack {
		padding-bottom: 0;
	}

	.trusted-logos span {
		width: 100%;
	}
}
