/**
 * HLM surface system — 60% light base / 30% navy brand / 10% gold accent.
 * Ensures readable text contrast on every section in light + dark mode.
 */

/* ─── Light surfaces (cream, white, base) ───────────────────── */
.hlm-bg-cream,
.hlm-bg-white,
.hlm-seo-intro,
.hlm-contact--inquiry,
.hlm-contact:not(.hlm-contact--inquiry),
.hlm-services,
.hlm-team,
.hlm-team--cards,
.hlm-team--leadership,
.hlm-unis,
.hlm-programs,
.hlm-testimonials,
.hlm-blog,
.hlm-affiliation--benefits,
.hlm-process:not(.hlm-process--strip),
.hlm-timeline--light,
.hlm-partner-showcase,
.hlm-partners,
.hlm-why-us--values,
.hlm-cta--soft {
	color: var(--hlm-surface-light-fg-muted);
}

.hlm-bg-cream .hlm-h1,
.hlm-bg-cream .hlm-h2,
.hlm-bg-cream .hlm-h3,
.hlm-bg-cream .hlm-h4,
.hlm-bg-white .hlm-h1,
.hlm-bg-white .hlm-h2,
.hlm-bg-white .hlm-h3,
.hlm-bg-white .hlm-h4,
.hlm-seo-intro .hlm-h2,
.hlm-contact .hlm-h2,
.hlm-contact .hlm-h3,
.hlm-contact .hlm-h4,
.hlm-services .hlm-h2,
.hlm-services .hlm-h3,
.hlm-services .hlm-h4,
.hlm-team .hlm-h2,
.hlm-team .hlm-h3,
.hlm-team .hlm-h4,
.hlm-team-leader__name,
.hlm-team-profile__name,
.hlm-unis .hlm-h2,
.hlm-unis .hlm-h3,
.hlm-programs .hlm-h2,
.hlm-testimonials .hlm-h2,
.hlm-blog .hlm-h2,
.hlm-affiliation--benefits .hlm-h2,
.hlm-affiliation--benefits .hlm-h4,
.hlm-process:not(.hlm-process--strip) .hlm-h2,
.hlm-process:not(.hlm-process--strip) .hlm-h4,
.hlm-timeline--light .hlm-h2,
.hlm-timeline--light .hlm-h4,
.hlm-partner-showcase .hlm-h2,
.hlm-partners .hlm-h2,
.hlm-partners .hlm-h4,
.hlm-why-us--values .hlm-h2,
.hlm-why-us--values .hlm-h3,
.hlm-cta--soft .hlm-h2 {
	color: var(--hlm-surface-light-fg);
}

.hlm-bg-cream .hlm-body,
.hlm-bg-cream .hlm-body-lg,
.hlm-bg-white .hlm-body,
.hlm-bg-white .hlm-body-lg,
.hlm-seo-intro .hlm-body-lg,
.hlm-seo-intro__body,
.hlm-contact .hlm-body,
.hlm-contact .hlm-body-lg,
.hlm-services .hlm-body,
.hlm-services .hlm-body-lg,
.hlm-team .hlm-body,
.hlm-team .hlm-body-lg,
.hlm-team-leader__bio,
.hlm-team-profile__bio,
.hlm-unis .hlm-body-lg,
.hlm-programs .hlm-body-lg,
.hlm-testimonials .hlm-body-lg,
.hlm-blog .hlm-body-lg,
.hlm-affiliation--benefits .hlm-body,
.hlm-affiliation--benefits .hlm-body-lg,
.hlm-process:not(.hlm-process--strip) .hlm-body-lg,
.hlm-timeline--light .hlm-body,
.hlm-timeline--light .hlm-body-lg,
.hlm-partner-showcase .hlm-body,
.hlm-partner-showcase__copy,
.hlm-partner-showcase__copy p,
.hlm-partners .hlm-body-lg,
.hlm-partners .hlm-body,
.hlm-why-us--values .hlm-body-lg,
.hlm-why-us--values .hlm-body,
.hlm-cta--soft .hlm-body-lg,
.hlm-cta--soft p {
	color: var(--hlm-surface-light-fg-muted);
}

.hlm-bg-cream .hlm-overline,
.hlm-bg-white .hlm-overline,
.hlm-seo-intro .hlm-overline,
.hlm-contact .hlm-overline,
.hlm-services .hlm-overline,
.hlm-team .hlm-overline,
.hlm-unis .hlm-overline,
.hlm-programs .hlm-overline,
.hlm-testimonials .hlm-overline,
.hlm-blog .hlm-overline,
.hlm-affiliation--benefits .hlm-overline,
.hlm-process:not(.hlm-process--strip) .hlm-overline,
.hlm-partner-showcase .hlm-overline,
.hlm-partners .hlm-overline,
.hlm-why-us--values .hlm-overline,
.hlm-cta--soft .hlm-overline {
	color: var(--hlm-text-accent);
}

/* ─── Brand surfaces (navy hero, stats network, brand CTA) ─── */
.hlm-page-hero,
.hlm-stats--network,
.hlm-process--strip,
.hlm-cta:not(.hlm-cta--soft) {
	color: var(--hlm-surface-brand-fg-muted);
}

.hlm-page-hero .hlm-h1,
.hlm-page-hero .hlm-h2,
.hlm-stats--network .hlm-h2,
.hlm-stats--network .hlm-stat-number,
.hlm-stats--network .hlm-stats__number,
.hlm-process--strip .hlm-h2,
.hlm-process--strip .hlm-h3,
.hlm-process--strip .hlm-h4,
.hlm-cta:not(.hlm-cta--soft) .hlm-h2 {
	color: var(--hlm-surface-brand-fg);
}

.hlm-page-hero .hlm-body-lg,
.hlm-stats--network .hlm-body-lg,
.hlm-stats--network .hlm-stat-label,
.hlm-stats--network .hlm-stats__label,
.hlm-process--strip .hlm-body,
.hlm-process--strip .hlm-body-lg,
.hlm-cta:not(.hlm-cta--soft) .hlm-body-lg,
.hlm-cta:not(.hlm-cta--soft) p {
	color: var(--hlm-surface-brand-fg-muted);
}

.hlm-page-hero .hlm-overline,
.hlm-stats--network .hlm-overline,
.hlm-process--strip .hlm-overline,
.hlm-cta:not(.hlm-cta--soft) .hlm-overline {
	color: var(--hlm-surface-brand-fg-accent);
}

/* Stats bar (light band between hero and content) */
.hlm-stats:not(.hlm-stats--network) {
	color: var(--hlm-surface-light-fg-muted);
}

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

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

/* ─── Landing hero (home) ───────────────────────────────────── */
.hlm-hero--landing.hlm-hero--has-media,
.hlm-hero--landing.hlm-hero--has-overlay {
	color: var(--hlm-surface-brand-fg-muted);
}

.hlm-hero--landing.hlm-hero--has-media .hlm-h1,
.hlm-hero--landing.hlm-hero--has-media .hlm-h1 em,
.hlm-hero--landing.hlm-hero--has-overlay .hlm-h1 {
	color: var(--hlm-surface-brand-fg);
}

.hlm-hero--landing.hlm-hero--has-media .hlm-hero-desc,
.hlm-hero--landing.hlm-hero--has-overlay .hlm-hero-desc {
	color: var(--hlm-surface-brand-fg-muted);
}

.hlm-hero--landing.hlm-hero--has-media .hlm-overline,
.hlm-hero--landing.hlm-hero--has-overlay .hlm-overline {
	color: var(--hlm-surface-brand-fg-accent);
}

/* Light home hero (no photo) */
.hlm-hero--light:not(.hlm-hero--has-media) {
	color: var(--hlm-surface-light-fg-muted);
}

.hlm-hero--light:not(.hlm-hero--has-media) .hlm-h1 {
	color: var(--hlm-surface-light-fg);
}

.hlm-hero--light:not(.hlm-hero--has-media) .hlm-hero-desc {
	color: var(--hlm-surface-light-fg-muted);
}

/* ─── Links on light surfaces ──────────────────────────────── */
.hlm-contact .hlm-card a,
.hlm-contact-inquiry__channel-value,
.hlm-services .hlm-service-card a,
.hlm-team .hlm-team-card a {
	color: var(--hlm-secondary);
}

.hlm-contact .hlm-card a:hover,
a.hlm-contact-inquiry__channel-value:hover {
	color: var(--hlm-primary);
}

/* ─── Inner page stripe rhythm ─────────────────────────────── */
body.hlm-theme:not(.home) .hlm-page-hero + .hlm-seo-intro {
	background: var(--hlm-section-alt-bg);
}

body.hlm-theme:not(.home) .hlm-partner-showcase + .hlm-why-us,
body.hlm-theme:not(.home) .hlm-partner-showcase + .hlm-partners {
	background: var(--hlm-section-bg);
}

body.hlm-theme:not(.home) .hlm-why-us + .hlm-timeline--light,
body.hlm-theme:not(.home) .hlm-partners + .hlm-affiliation--benefits,
body.hlm-theme:not(.home) .hlm-services + .hlm-process,
body.hlm-theme:not(.home) .hlm-contact--inquiry + .hlm-process {
	background: var(--hlm-section-alt-bg);
}

body.hlm-theme:not(.home) .hlm-services + .hlm-process.hlm-process--cream,
body.hlm-theme:not(.home) .hlm-contact--inquiry + .hlm-process.hlm-process--cream {
	background: var(--hlm-cream);
}

body.hlm-theme:not(.home) .hlm-process + .hlm-stats--network,
body.hlm-theme:not(.home) .hlm-affiliation--benefits + .hlm-stats--network {
	background: var(--hlm-surface-brand);
}

body.hlm-theme:not(.home) .hlm-stats--network + .hlm-cta--soft,
body.hlm-theme:not(.home) .hlm-team + .hlm-cta--soft,
body.hlm-theme:not(.home) .hlm-process + .hlm-cta--soft {
	background: linear-gradient(180deg, var(--hlm-section-alt-bg) 0%, var(--hlm-section-bg) 100%);
}

/* ─── SEO blocks: compact, non-duplicative ─────────────────── */
body.hlm-theme:not(.home) .hlm-seo-intro--compact {
	padding-block: clamp(2rem, 4vw, 2.75rem);
}

body.hlm-theme:not(.home) .hlm-seo-intro__card {
	max-width: 42rem;
	margin-inline: auto;
	padding: 1.25rem 1.5rem;
	border-radius: 14px;
	border: 1px solid var(--hlm-card-border);
	border-left: 4px solid var(--hlm-gold-400);
	background: var(--hlm-surface-raised);
	box-shadow: var(--hlm-shadow);
}

body.hlm-theme:not(.home) .hlm-seo-intro__card .hlm-seo-intro__body {
	margin: 0;
	text-align: left;
	color: var(--hlm-surface-light-fg-muted);
	font-size: 1rem;
	line-height: 1.65;
}

body.hlm-theme:not(.home) .hlm-seo-faq {
	padding-block: clamp(3rem, 6vw, 4rem);
}

body.hlm-theme.hlm-single-service .hlm-single-service-wrap .hlm-seo-faq {
	padding-block: clamp(2rem, 4vw, 2.5rem);
}

body.hlm-theme:not(.home) .hlm-seo-faq + .hlm-cta--soft {
	margin-top: 0;
}

/* FAQ → soft CTA must stay cream (overrides legacy navy adjacency rules) */
.hlm-seo-faq + .hlm-cta.hlm-cta--soft,
.hlm-stats--network + .hlm-cta.hlm-cta--soft,
.hlm-seo-resource-links--footer + .hlm-cta.hlm-cta--soft {
	background: linear-gradient(180deg, var(--hlm-section-alt-bg) 0%, var(--hlm-section-bg) 100%) !important;
	color: var(--hlm-surface-light-fg-muted) !important;
}

.hlm-seo-faq + .hlm-cta.hlm-cta--soft .hlm-h2,
.hlm-seo-faq + .hlm-cta.hlm-cta--soft .hlm-cta-inner h2 {
	color: var(--hlm-surface-light-fg) !important;
}

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

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