/**
 * HLM block + page styles mapped to semantic theme tokens.
 * Loaded after hlm-blocks.css — enables light / dark / system without duplicate block variants.
 */

/* ─── Typography utilities ─────────────────────────────────── */
.hlm-h1,
.hlm-h2,
.hlm-h3,
.hlm-h4 {
	color: var(--hlm-text-primary);
}

.hlm-body-lg,
.hlm-body-md {
	color: var(--hlm-text-muted);
}

.hlm-overline {
	color: var(--hlm-text-accent);
}

.hlm-bg-navy,
.hlm-bg-navy-deep {
	background-color: var(--hlm-surface-brand);
	color: var(--hlm-text-on-brand);
}

.hlm-bg-cream {
	background-color: var(--hlm-section-alt-bg);
	color: var(--hlm-surface-light-fg-muted);
}

.hlm-bg-white {
	background-color: var(--hlm-section-bg);
	color: var(--hlm-shell-text);
}

.hlm-text-gold { color: var(--hlm-text-accent); }
.hlm-text-gray { color: var(--hlm-text-subtle); }
.hlm-text-white { color: var(--hlm-text-inverse); }
.hlm-text-navy { color: var(--hlm-text-primary); }

.hlm-card {
	background: var(--hlm-card-bg);
	border: 1px solid var(--hlm-card-border);
	box-shadow: var(--hlm-shadow);
}

.hlm-card:hover {
	background: var(--hlm-card-hover-bg);
	border-color: var(--hlm-card-hover-border);
	box-shadow: var(--hlm-shadow-card-hover);
}

.hlm-card--dark {
	background: var(--hlm-surface-sunken);
	color: var(--hlm-text-primary);
}

/* ─── Hero ─────────────────────────────────────────────────── */
.hlm-hero,
.hlm-hero--light,
.hlm-hero--landing {
	background: var(--hlm-hero-bg);
	color: var(--hlm-hero-text);
}

.hlm-hero-bg::before,
.hlm-hero--light .hlm-hero-bg::before,
.hlm-hero:not(.hlm-hero--landing) .hlm-hero-bg::before,
.hlm-hero--landing .hlm-hero-bg::before {
	background:
		radial-gradient(ellipse 80% 60% at 20% 40%, var(--hlm-hero-glow-a) 0%, transparent 60%),
		radial-gradient(ellipse 60% 50% at 80% 60%, var(--hlm-hero-glow-b) 0%, transparent 50%);
}

.hlm-hero-grid,
.hlm-hero--light .hlm-hero-grid,
.hlm-hero:not(.hlm-hero--landing) .hlm-hero-grid,
.hlm-hero--landing .hlm-hero-grid {
	background-image:
		linear-gradient(var(--hlm-hero-grid-line) 1px, transparent 1px),
		linear-gradient(90deg, var(--hlm-hero-grid-line) 1px, transparent 1px);
}

.hlm-hero-media {
	position: absolute;
	inset: 0;
	z-index: 0;
	overflow: hidden;
	pointer-events: none;
}

.hlm-hero-bg,
.hlm-hero-grid {
	z-index: 1;
}

.hlm-hero-inner {
	z-index: 2;
}

.hlm-hero-media__placeholder {
	width: 100%;
	height: 100%;
	background:
		var(--hlm-hero-media-overlay),
		linear-gradient(120deg, var(--hlm-navy-800) 0%, var(--hlm-navy-600) 50%, var(--hlm-navy-900) 100%);
	display: flex;
	align-items: flex-end;
	justify-content: flex-start;
	padding: 24px;
}

.hlm-hero-media__label {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 8px 14px;
	border-radius: 999px;
	background: rgba(0, 0, 0, 0.35);
	border: 1px solid rgba(255, 255, 255, 0.12);
	color: rgba(255, 255, 255, 0.82);
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.hlm-hero-media__label::before {
	content: '';
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--hlm-gold-400);
	box-shadow: 0 0 0 4px rgba(201, 169, 110, 0.25);
}

[data-theme="light"] .hlm-hero-media:has(.hlm-hero-media__placeholder--placeholder),
[data-theme="light"] .hlm-page-hero__media:has(.hlm-page-hero__media-placeholder--placeholder) {
	opacity: 0.2;
}

[data-theme="light"] .hlm-hero-media:has(.hlm-hero-media__placeholder--image),
[data-theme="light"] .hlm-hero-media:has(.hlm-hero-media__placeholder--video),
[data-theme="light"] .hlm-page-hero__media:has(.hlm-page-hero__media-placeholder--image),
[data-theme="light"] .hlm-page-hero__media:has(.hlm-page-hero__media-placeholder--video) {
	opacity: 1;
}

.hlm-media-image,
.hlm-media-video {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.hlm-media-scrim {
	position: absolute;
	inset: 0;
	z-index: 2;
	pointer-events: none;
}

.hlm-media-scrim--light {
	background: linear-gradient(
		135deg,
		rgba(0, 51, 102, 0.35) 0%,
		rgba(0, 21, 32, 0.28) 55%,
		rgba(0, 21, 32, 0.4) 100%
	);
}

.hlm-media-scrim--medium {
	background: linear-gradient(
		135deg,
		rgba(0, 51, 102, 0.55) 0%,
		rgba(0, 21, 32, 0.42) 55%,
		rgba(0, 21, 32, 0.62) 100%
	);
}

.hlm-media-scrim--strong {
	background: linear-gradient(
		135deg,
		rgba(0, 51, 102, 0.72) 0%,
		rgba(0, 21, 32, 0.58) 55%,
		rgba(0, 21, 32, 0.78) 100%
	);
}

[data-theme="dark"] .hlm-media-scrim--light {
	background: linear-gradient(
		135deg,
		rgba(0, 21, 32, 0.45) 0%,
		rgba(0, 21, 32, 0.35) 55%,
		rgba(0, 21, 32, 0.55) 100%
	);
}

[data-theme="dark"] .hlm-media-scrim--medium {
	background: linear-gradient(
		135deg,
		rgba(0, 21, 32, 0.62) 0%,
		rgba(0, 21, 32, 0.5) 55%,
		rgba(0, 21, 32, 0.72) 100%
	);
}

[data-theme="dark"] .hlm-media-scrim--strong {
	background: linear-gradient(
		135deg,
		rgba(0, 21, 32, 0.78) 0%,
		rgba(0, 21, 32, 0.65) 55%,
		rgba(0, 21, 32, 0.88) 100%
	);
}

.hlm-media-wrap--overlay-off .hlm-media-scrim {
	display: none;
}

.hlm-hero-media__placeholder,
.hlm-page-hero__media-placeholder {
	position: relative;
	width: 100%;
	height: 100%;
	min-height: 100%;
}

.hlm-hero-media__placeholder--image,
.hlm-page-hero__media-placeholder--image,
.hlm-hero-media__placeholder--video,
.hlm-page-hero__media-placeholder--video {
	background: var(--hlm-navy-950);
}

.hlm-media-play-badge {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	z-index: 2;
}

.hlm-hero-media__placeholder--video .hlm-media-play-badge,
.hlm-page-hero__media-placeholder--video .hlm-media-play-badge {
	opacity: 0.85;
	pointer-events: none;
}

.hlm-hero-content .hlm-overline {
	color: var(--hlm-hero-overline);
}

.hlm-hero-content .hlm-h1,
.hlm-hero--light .hlm-hero-content .hlm-h1,
.hlm-hero:not(.hlm-hero--landing) .hlm-hero-content .hlm-h1,
.hlm-hero--landing .hlm-hero-content .hlm-h1 {
	color: var(--hlm-hero-headline);
}

.hlm-hero-content .hlm-h1 em,
.hlm-hero--light .hlm-hero-content .hlm-h1 em,
.hlm-hero:not(.hlm-hero--landing) .hlm-hero-content .hlm-h1 em,
.hlm-hero--landing .hlm-hero-content .hlm-h1 em {
	color: var(--hlm-hero-headline-em);
}

.hlm-hero-desc,
.hlm-hero--light .hlm-hero-desc,
.hlm-hero:not(.hlm-hero--landing) .hlm-hero-desc,
.hlm-hero--landing .hlm-hero-desc {
	color: var(--hlm-hero-desc);
}

.hlm-hero-trust-text,
.hlm-hero--landing .hlm-hero-trust-text {
	color: var(--hlm-text-subtle);
}

.hlm-hero-trust-text strong,
.hlm-hero--landing .hlm-hero-trust-text strong {
	color: var(--hlm-hero-headline);
}

.hlm-hero .hlm-btn-primary,
.hlm-hero--landing .hlm-btn-primary {
	background: var(--hlm-cta-gold-bg);
	color: var(--hlm-cta-gold-text);
	border-color: var(--hlm-cta-gold-bg);
}

.hlm-hero .hlm-btn-primary:hover,
.hlm-hero--landing .hlm-btn-primary:hover {
	background: var(--hlm-gold-300);
	border-color: var(--hlm-gold-300);
}

[data-theme="light"] .hlm-hero .hlm-btn-primary {
	background: var(--hlm-secondary);
	color: var(--hlm-white);
	border-color: var(--hlm-secondary);
}

[data-theme="light"] .hlm-hero .hlm-btn-primary:hover {
	background: var(--hlm-navy-700);
	border-color: var(--hlm-navy-700);
}

.hlm-hero .hlm-btn-outline,
.hlm-hero--landing .hlm-btn-outline {
	color: var(--hlm-hero-text);
	border-color: var(--hlm-border-strong);
}

.hlm-hero .hlm-btn-outline:hover,
.hlm-hero--landing .hlm-btn-outline:hover {
	border-color: var(--hlm-border-accent);
	color: var(--hlm-text-accent);
}

.hlm-hero .hlm-form-card,
.hlm-hero--light .hlm-form-card,
.hlm-hero:not(.hlm-hero--landing) .hlm-form-card,
.hlm-hero--landing .hlm-form-card,
.hlm-page-hero + .hlm-hero .hlm-form-card {
	background: var(--hlm-form-surface);
	border: 1px solid var(--hlm-form-border);
	box-shadow: var(--hlm-form-shadow);
	backdrop-filter: blur(20px);
}

.hlm-hero .hlm-form-group label,
.hlm-hero--landing .hlm-form-group label {
	color: var(--hlm-form-label);
}

.hlm-hero .hlm-form-group input,
.hlm-hero .hlm-form-group select,
.hlm-hero .hlm-form-group textarea,
.hlm-hero--landing .hlm-form-group input,
.hlm-hero--landing .hlm-form-group select,
.hlm-hero--landing .hlm-form-group textarea {
	background: var(--hlm-form-input-bg);
	border-color: var(--hlm-form-input-border);
	color: var(--hlm-form-input-text);
}

.hlm-hero .hlm-form-group input:focus,
.hlm-hero .hlm-form-group select:focus,
.hlm-hero .hlm-form-group textarea:focus,
.hlm-hero--landing .hlm-form-group input:focus,
.hlm-hero--landing .hlm-form-group select:focus,
.hlm-hero--landing .hlm-form-group textarea:focus {
	border-color: var(--hlm-form-input-focus-border);
	box-shadow: 0 0 0 3px var(--hlm-form-input-focus-ring);
}

.hlm-hero .hlm-form-group--checkbox label,
.hlm-hero--landing .hlm-form-group--checkbox label {
	color: var(--hlm-text-muted);
}

.hlm-hero .hlm-form-note,
.hlm-hero--landing .hlm-form-note {
	color: var(--hlm-text-subtle);
}

/* ─── Lead form (plugin) ───────────────────────────────────── */
.hlm-lead-capture .hlm-form-tabs {
	background: var(--hlm-form-tab-track);
	border-color: var(--hlm-form-tab-border);
}

.hlm-lead-capture .hlm-form-tab {
	color: var(--hlm-text-primary);
}

.hlm-lead-capture .hlm-form-tab:hover:not(.active) {
	color: var(--hlm-header-text-hover);
	background: var(--hlm-surface-overlay);
}

.hlm-lead-capture .hlm-form-tab.active {
	background: var(--hlm-cta-bg);
	color: var(--hlm-cta-text);
	box-shadow: var(--hlm-shadow);
}

.hlm-lead-capture .hlm-form-group--checkbox label,
.hlm-form-wizard .hlm-form-step-heading,
.hlm-form-optional-tag,
.hlm-form-skip-note,
.hlm-lead-capture .hlm-form-note {
	color: var(--hlm-text-muted);
}

.hlm-form-wizard .hlm-form-progress-track {
	background: var(--hlm-form-tab-border);
}

.hlm-form-wizard .hlm-btn--outline {
	color: var(--hlm-text-primary);
	border-color: var(--hlm-form-border);
}

.hlm-form-wizard .hlm-btn--outline:hover {
	border-color: var(--hlm-form-input-focus-border);
	color: var(--hlm-text-accent);
}

/* ─── Stats ────────────────────────────────────────────────── */
.hlm-stats {
	background: var(--hlm-stats-bg);
	border-top: 1px solid var(--hlm-stats-border);
	border-bottom: 1px solid var(--hlm-stats-border);
	color: var(--hlm-surface-light-fg-muted);
}

.hlm-stat-item:not(:last-child)::after {
	background: var(--hlm-stats-divider);
}

.hlm-stat-number,
.hlm-stats__number {
	color: var(--hlm-stats-number);
}

.hlm-stat-label,
.hlm-stats__label {
	color: var(--hlm-surface-light-fg-subtle);
}

.hlm-stats--network {
	background: var(--hlm-surface-brand);
	color: var(--hlm-text-on-brand);
}

.hlm-stats--network .hlm-section-header .hlm-h2,
.hlm-stats--network .hlm-stat-number,
.hlm-stats--network .hlm-stats__number {
	color: var(--hlm-text-on-brand);
}

.hlm-stats--network .hlm-section-header .hlm-body-lg,
.hlm-stats--network .hlm-stat-label,
.hlm-stats--network .hlm-stats__label {
	color: var(--hlm-surface-brand-fg-muted);
}

/* ─── Section blocks ───────────────────────────────────────── */
.hlm-unis,
.hlm-programs,
.hlm-process,
.hlm-testimonials,
.hlm-blog,
.hlm-services,
.hlm-partners,
.hlm-why-us,
.hlm-team,
.hlm-contact,
.hlm-affiliation,
.hlm-overview,
.hlm-partner-showcase,
.hlm-timeline,
.hlm-policy {
	background: var(--hlm-section-bg);
	color: var(--hlm-shell-text);
}

.hlm-unis .hlm-section-header .hlm-h2,
.hlm-unis .hlm-h3,
.hlm-programs .hlm-section-header .hlm-h2,
.hlm-process .hlm-section-header .hlm-h2,
.hlm-testimonials .hlm-section-header .hlm-h2,
.hlm-blog .hlm-section-header .hlm-h2,
.hlm-services .hlm-section-header .hlm-h2 {
	color: var(--hlm-text-primary);
}

.hlm-unis .hlm-section-header .hlm-body-lg,
.hlm-programs .hlm-section-header .hlm-body-lg,
.hlm-process .hlm-section-header .hlm-body-lg {
	color: var(--hlm-text-muted);
}

.hlm-uni-card,
.hlm-process-card,
.hlm-testimonial-card,
.hlm-service-card,
.hlm-program-card,
.hlm-team-card,
.hlm-blog-card {
	background: var(--hlm-card-bg);
	border-color: var(--hlm-card-border);
}

.hlm-uni-card:hover,
.hlm-process-card:hover,
.hlm-service-card:hover,
.hlm-program-card:hover {
	background: var(--hlm-card-hover-bg);
	border-color: var(--hlm-card-hover-border);
	box-shadow: var(--hlm-shadow-card-hover);
}

.hlm-uni-card .hlm-h3,
.hlm-process-card .hlm-h3,
.hlm-service-card .hlm-h3,
.hlm-program-card .hlm-h3 {
	color: var(--hlm-text-primary);
}

.hlm-uni-card p,
.hlm-process-card p,
.hlm-service-card p,
.hlm-program-card p,
.hlm-testimonial-card .hlm-body-md {
	color: var(--hlm-text-muted);
}

.hlm-section--alt,
.hlm-process--home,
.hlm-why-us {
	background: var(--hlm-section-alt-bg);
}

/* ─── Page hero ────────────────────────────────────────────── */
.hlm-page-hero {
	background: var(--hlm-page-hero-bg);
	color: var(--hlm-page-hero-text);
}

.hlm-page-hero__media {
	position: absolute;
	inset: 0;
	z-index: 0;
	overflow: hidden;
}

.hlm-page-hero__media-placeholder {
	width: 100%;
	height: 100%;
	background:
		var(--hlm-hero-media-overlay),
		linear-gradient(120deg, var(--hlm-navy-800) 0%, var(--hlm-navy-950) 100%);
	display: flex;
	align-items: flex-end;
	justify-content: flex-end;
	padding: 24px;
}

.hlm-page-hero__media-placeholder span {
	padding: 8px 14px;
	border-radius: 999px;
	background: rgba(0, 0, 0, 0.35);
	border: 1px solid rgba(255, 255, 255, 0.12);
	color: rgba(255, 255, 255, 0.82);
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.hlm-page-hero__bg,
.hlm-page-hero__grid {
	z-index: 1;
}

.hlm-page-hero__inner {
	z-index: 2;
}

.hlm-page-hero + .hlm-hero {
	background: var(--hlm-section-alt-bg);
	color: var(--hlm-shell-text);
}

.hlm-page-hero + .hlm-hero.hlm-hero--has-media,
.hlm-page-hero + .hlm-hero.hlm-hero--landing {
	background: transparent;
	color: var(--hlm-white);
}

.hlm-page-hero + .hlm-hero .hlm-hero-content .hlm-h1 {
	color: var(--hlm-text-primary);
}

.hlm-page-hero + .hlm-hero.hlm-hero--has-media .hlm-hero-content .hlm-h1,
.hlm-page-hero + .hlm-hero.hlm-hero--landing .hlm-hero-content .hlm-h1 {
	color: var(--hlm-white);
}

.hlm-page-hero + .hlm-hero .hlm-hero-desc {
	color: var(--hlm-text-muted);
}

.hlm-page-hero + .hlm-hero.hlm-hero--has-media .hlm-hero-desc,
.hlm-page-hero + .hlm-hero.hlm-hero--landing .hlm-hero-desc {
	color: var(--hlm-on-dark-muted);
}

/* ─── CTA band ─────────────────────────────────────────────── */
.hlm-cta:not(.hlm-cta--soft) {
	background: var(--hlm-surface-brand);
	color: var(--hlm-text-on-brand);
}

.hlm-cta:not(.hlm-cta--soft) .hlm-h2,
.hlm-cta:not(.hlm-cta--soft) .hlm-overline {
	color: var(--hlm-text-on-brand);
}

.hlm-cta:not(.hlm-cta--soft) .hlm-body-lg,
.hlm-cta:not(.hlm-cta--soft) p {
	color: var(--hlm-on-dark-muted);
}

.hlm-cta:not(.hlm-cta--soft) .hlm-btn-primary {
	background: var(--hlm-cta-gold-bg);
	color: var(--hlm-cta-gold-text);
	border-color: var(--hlm-cta-gold-bg);
}

.hlm-cta:not(.hlm-cta--soft) .hlm-btn-outline {
	color: var(--hlm-text-on-brand);
	border-color: rgba(255, 255, 255, 0.25);
}

.hlm-cta:not(.hlm-cta--soft) .hlm-btn-outline:hover {
	border-color: var(--hlm-gold-400);
	color: var(--hlm-gold-300);
}

.hlm-cta.hlm-cta--soft {
	background: linear-gradient(180deg, var(--hlm-section-alt-bg) 0%, var(--hlm-section-bg) 100%);
	color: var(--hlm-surface-light-fg-muted);
}

.hlm-cta.hlm-cta--soft .hlm-h2,
.hlm-cta.hlm-cta--soft .hlm-overline {
	color: var(--hlm-surface-light-fg);
}

.hlm-cta.hlm-cta--soft .hlm-overline {
	color: var(--hlm-text-accent);
}

.hlm-cta.hlm-cta--soft .hlm-body-lg,
.hlm-cta.hlm-cta--soft p {
	color: var(--hlm-surface-light-fg-muted);
}

.hlm-cta.hlm-cta--soft .hlm-btn-primary,
.hlm-cta.hlm-cta--soft .hlm-btn-gold {
	background: var(--hlm-cta-gold-bg);
	color: var(--hlm-cta-gold-text);
	border-color: var(--hlm-cta-gold-bg);
}

.hlm-cta.hlm-cta--soft .hlm-btn-outline {
	color: var(--hlm-primary);
	border-color: rgba(0, 51, 102, 0.22);
}

.hlm-cta.hlm-cta--soft .hlm-btn-outline:hover {
	border-color: var(--hlm-secondary);
	color: var(--hlm-secondary);
}

/* ─── Site footer ──────────────────────────────────────────── */
.hlm-footer {
	background: var(--hlm-footer-bg);
	color: var(--hlm-footer-text);
	border-top: 1px solid var(--hlm-footer-border);
}

.hlm-footer__brand p,
.hlm-footer__links a,
.hlm-footer__links span {
	color: var(--hlm-footer-text);
}

.hlm-footer__col h4,
.hlm-footer__brand-name {
	color: var(--hlm-text-on-brand);
}

.hlm-footer__bottom {
	border-top-color: var(--hlm-footer-border);
}

.hlm-footer__links a:hover {
	color: var(--hlm-gold-400);
}

/* ─── Blog + services (shared surfaces) ────────────────────── */
body.hlm-theme.hlm-single-post article.entry.content-bg.single-entry,
body.hlm-theme.hlm-single-service article.entry.content-bg.single-entry,
body.hlm-theme.hlm-blog .hlm-blog-card,
.hlm-single-service-metrics,
.hlm-single-service-sidebar-card {
	background: var(--hlm-surface-raised);
	border-color: var(--hlm-card-border);
	box-shadow: var(--hlm-shadow);
}

.hlm-single-post-wrap,
body.hlm-theme.hlm-blog .hlm-blog-archive {
	border-color: var(--hlm-border-subtle);
}

body.hlm-theme.hlm-single-post .entry-content,
body.hlm-theme.hlm-single-service .entry-content,
body.hlm-theme.hlm-blog .hlm-blog-card__title a {
	color: var(--hlm-text-primary);
}

body.hlm-theme.hlm-single-post .entry-content p,
body.hlm-theme.hlm-single-service .entry-content p,
body.hlm-theme.hlm-blog .hlm-blog-card__excerpt {
	color: var(--hlm-text-muted);
}

.hlm-single-service-intro {
	color: var(--hlm-text-muted);
}
