/**
 * Hydroposhan Academy — unified typography (load after tokens + page CSS, before site-interactive)
 * Scoped to html.ha-unified so legacy inline rules are overridden consistently.
 */

html.ha-unified {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

html.ha-unified body {
  font-family: var(--font-body) !important;
  font-size: var(--text-base) !important;
  line-height: var(--leading-body) !important;
  color: var(--text-main) !important;
}

/* Display headings */
html.ha-unified h1,
html.ha-unified .hero-title,
html.ha-unified .page-title h1,
html.ha-unified .blog-title {
  font-family: var(--font-display) !important;
  font-weight: 700 !important;
  font-size: var(--text-3xl) !important;
  line-height: var(--leading-tight) !important;
  letter-spacing: var(--tracking-tight) !important;
  color: var(--dark-green) !important;
}

/* Homepage + dark photo heroes — white headline (global h1 dark-green breaks visibility) */
html.ha-unified body.page-home .hero h1,
html.ha-unified .hero h1 {
  color: #ffffff !important;
  text-shadow: 0 4px 20px rgba(0, 0, 0, 0.7), 0 2px 6px rgba(0, 0, 0, 0.9) !important;
}

html.ha-unified body.page-home .hero .hero-subtitle,
html.ha-unified .hero .hero-subtitle {
  color: #ffffff !important;
}

html.ha-unified body.page-home .hero p.desc,
html.ha-unified .hero p.desc {
  color: #ffffff !important;
}

html.ha-unified body.page-home .hero .text-gradient,
html.ha-unified .hero .text-gradient,
html.ha-unified .page-blog-hero .text-gradient,
html.ha-unified .programs-hero .text-gradient {
  color: #2ecc71 !important;
  -webkit-text-fill-color: #2ecc71 !important;
  background: none !important;
  background-clip: unset !important;
  -webkit-background-clip: unset !important;
  filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.6)) !important;
}

/* Programs page — dark glass hero (global h1/p dark text breaks contrast) */
html.ha-unified .programs-hero .programs-title,
html.ha-unified .programs-hero h1.programs-title {
  color: #ffffff !important;
  text-shadow: 0 4px 20px rgba(0, 0, 0, 0.7), 0 2px 6px rgba(0, 0, 0, 0.9) !important;
}

html.ha-unified .programs-hero .programs-subtitle,
html.ha-unified .programs-hero .programs-lead,
html.ha-unified .programs-hero-content p {
  color: rgba(255, 255, 255, 0.95) !important;
}

/* Program detail pages — dark hero (microgreens, workshop, 30-day, etc.) */
html.ha-unified .program-hero h1.program-title,
html.ha-unified .program-hero .program-title {
  color: #ffffff !important;
  text-shadow: 0 4px 20px rgba(0, 0, 0, 0.7), 0 2px 6px rgba(0, 0, 0, 0.9) !important;
}

html.ha-unified .program-hero .program-title-accent {
  color: #6ee7b7 !important;
  -webkit-text-fill-color: #6ee7b7 !important;
  background: none !important;
  background-clip: unset !important;
  -webkit-background-clip: unset !important;
  filter: drop-shadow(0 2px 8px rgba(0, 0, 0, 0.55)) !important;
}

html.ha-unified .program-hero .program-subtitle {
  color: rgba(255, 255, 255, 0.93) !important;
}

html.ha-unified .program-hero .meta-item span {
  color: rgba(255, 255, 255, 0.78) !important;
}

html.ha-unified .program-hero .meta-item strong {
  color: #ffffff !important;
}

/* Knowledge Hub — dark themes strip (insights.html) */
html.ha-unified .themes-strip,
html.ha-unified .themes-strip h2,
html.ha-unified .themes-strip .serif-text,
html.ha-unified .themes-strip p,
html.ha-unified .themes-list li {
  color: #ffffff !important;
}

html.ha-unified .themes-list li {
  background: rgba(255, 255, 255, 0.12) !important;
  border-color: rgba(255, 255, 255, 0.28) !important;
}

html.ha-unified .page-hero .hero-title,
html.ha-unified .blog-hero .blog-title,
html.ha-unified .page-blog-hero .page-blog-hero__title {
  font-family: 'Playfair Display', Georgia, serif !important;
  font-size: clamp(2rem, 6.2vw, 4.2rem) !important;
  font-weight: 700 !important;
  line-height: 1.12 !important;
  letter-spacing: -1px !important;
  color: #ffffff !important;
  text-shadow: 0 4px 20px rgba(0, 0, 0, 0.7), 0 2px 6px rgba(0, 0, 0, 0.9) !important;
}

html.ha-unified .page-blog-hero .hero-subtitle {
  font-family: var(--font-body) !important;
  font-size: 1.1rem !important;
  font-weight: 700 !important;
  letter-spacing: 4px !important;
  text-transform: uppercase !important;
  color: #ffffff !important;
}

html.ha-unified .page-blog-hero p.desc.page-blog-hero__desc {
  font-family: var(--font-body) !important;
  font-size: clamp(1.05rem, 2.4vw, 1.35rem) !important;
  font-weight: 500 !important;
  line-height: 1.8 !important;
  color: #ffffff !important;
}

html.ha-unified .page-blog-hero .page-blog-hero__meta,
html.ha-unified .page-blog-hero .page-blog-hero__meta time {
  color: rgba(255, 255, 255, 0.9) !important;
  font-size: var(--text-sm) !important;
}

html.ha-unified .page-blog-hero .blog-back-to-hub__link {
  color: rgba(255, 255, 255, 0.95) !important;
}

/* Dark CTA band — white text (exclude light .content-card CTAs on program pages) */
html.ha-unified .cta-section:not(.content-card),
html.ha-unified .cta-section:not(.content-card) h2,
html.ha-unified .cta-section:not(.content-card) .serif-text,
html.ha-unified .cta-section:not(.content-card) p {
  color: #ffffff !important;
}

html.ha-unified body.page-blog-article .page-blog-article__body h2 {
  color: var(--dark-green) !important;
}

html.ha-unified h2,
html.ha-unified .section-title {
  font-family: var(--font-display) !important;
  font-weight: 600 !important;
  font-size: var(--text-2xl) !important;
  line-height: var(--leading-tight) !important;
  letter-spacing: var(--tracking-tight) !important;
  color: var(--dark-green) !important;
}

html.ha-unified h3,
html.ha-unified h4,
html.ha-unified .serif-text,
html.ha-unified .card-body h3,
html.ha-unified .featured-content h2 {
  font-family: var(--font-display) !important;
  font-weight: 600 !important;
  line-height: var(--leading-tight) !important;
  color: var(--dark-green) !important;
}

html.ha-unified h3 {
  font-size: var(--text-xl) !important;
}

html.ha-unified h4 {
  font-size: var(--text-lg) !important;
}

/* Body copy */
html.ha-unified p,
html.ha-unified li,
html.ha-unified td,
html.ha-unified th,
html.ha-unified label,
html.ha-unified figcaption,
html.ha-unified .card-meta,
html.ha-unified .featured-excerpt,
html.ha-unified .insights-subtitle,
html.ha-unified .hero-subtitle,
html.ha-unified .page-blog-article__body,
html.ha-unified .article-content {
  font-family: var(--font-body) !important;
  font-size: var(--text-base) !important;
  line-height: var(--leading-body) !important;
  color: var(--text-main);
}

/* Dark hero pills — body-copy rule above must not wash out subtitle text */
html.ha-unified .page-blog-hero .hero-subtitle,
html.ha-unified .page-blog-hero .page-blog-hero__title,
html.ha-unified .page-blog-hero p.desc {
  color: #ffffff !important;
  -webkit-text-fill-color: currentColor !important;
}

html.ha-unified .text-light,
html.ha-unified p[style*="color: var(--text-light)"],
html.ha-unified .muted,
html.ha-unified .insights-small {
  color: var(--text-light) !important;
}

/* Labels / categories */
html.ha-unified .article-category,
html.ha-unified .article-category-badge,
html.ha-unified .page-blog-article__category {
  font-family: var(--font-body) !important;
  font-size: var(--text-xs) !important;
  font-weight: 700 !important;
  letter-spacing: var(--tracking-wide) !important;
  text-transform: uppercase !important;
  color: var(--primary-green) !important;
}

/* Navigation — readable sans at nav-specific size (not body text-sm) */
html.ha-unified .nav-links a:not(.nav-btn) {
  font-family: var(--font-body) !important;
  font-weight: 600 !important;
  font-size: var(--text-nav) !important;
  letter-spacing: 0.01em !important;
  line-height: 1.3 !important;
}

html.ha-unified .top-bar a {
  font-family: var(--font-body) !important;
  font-size: var(--text-sm) !important;
  font-weight: 600 !important;
}

/* Buttons — readable, not all-caps */
html.ha-unified .btn,
html.ha-unified a.btn,
html.ha-unified button.btn,
html.ha-unified .program-hero-btn,
html.ha-unified .submit-btn,
html.ha-unified .read-more,
html.ha-unified button:not(.filter-btn):not(.mobile-toggle):not(.hero-dot):not(.home-training-gallery-dot):not(.hwt-gallery-dot):not(.gallery-lightbox__btn):not(.testimonials-carousel__arrow):not(.testimonials-filter):not(.testimonials-carousel__dot):not(.nav-dropdown__toggle):not(.mobile-nav-group__toggle):not(.ha-mobile-bottom-nav__item):not(.ha-admission-side-tab__btn):not(.ha-admission-side-panel__close) {
  font-family: var(--font-body) !important;
  font-weight: 600 !important;
  font-size: var(--text-sm) !important;
  letter-spacing: 0.04em !important;
  text-transform: none !important;
  line-height: 1.25 !important;
}

html.ha-unified .filter-btn,
html.ha-unified .gallery-filter {
  font-family: var(--font-body) !important;
  text-transform: none !important;
}

html.ha-unified .insights-search,
html.ha-unified .gallery-search {
  font-family: var(--font-body) !important;
  text-transform: none !important;
  color: var(--text-main) !important;
  background: #ffffff !important;
  border: 1px solid rgba(0, 115, 5, 0.28) !important;
  -webkit-appearance: none !important;
  appearance: none !important;
}

html.ha-unified .insights-search::placeholder,
html.ha-unified .gallery-search::placeholder {
  color: rgba(82, 90, 84, 0.8) !important;
  opacity: 1 !important;
}

/* Footer — override global body/li/h4 colors (dark text on dark footer was unreadable) */
html.ha-unified footer {
  color: #d8ebe0 !important;
}

html.ha-unified footer,
html.ha-unified footer p,
html.ha-unified footer a,
html.ha-unified footer li,
html.ha-unified footer span {
  font-family: var(--font-body) !important;
  font-size: var(--text-sm) !important;
  line-height: var(--leading-loose) !important;
}

html.ha-unified footer li,
html.ha-unified footer p,
html.ha-unified footer span:not(.footer-logo span) {
  color: #d8ebe0 !important;
}

html.ha-unified footer h3,
html.ha-unified footer h4,
html.ha-unified footer .footer-grid h4 {
  font-family: var(--font-display) !important;
  font-size: var(--text-lg) !important;
  color: #ffffff !important;
}

html.ha-unified footer a {
  color: #e8f5ec !important;
}

html.ha-unified footer a:hover {
  color: #ffffff !important;
}

html.ha-unified footer .footer-grid ul li a {
  color: #d8ebe0 !important;
}

html.ha-unified footer .footer-grid ul li a:hover,
html.ha-unified footer .footer-contact-link:hover {
  color: #ffffff !important;
}

html.ha-unified footer .horizontal-legal-links a:hover {
  color: #022c22 !important;
  -webkit-text-fill-color: #022c22 !important;
}

html.ha-unified footer .footer-contact-link,
html.ha-unified footer .footer-address,
html.ha-unified footer .footer-address strong {
  color: #d8ebe0 !important;
}

html.ha-unified footer .footer-address strong {
  color: #ffffff !important;
}

html.ha-unified footer .disclaimer-text {
  color: #b0c4b6 !important;
}

html.ha-unified footer .legal-footer {
  color: #c5d6cb !important;
}

/* Long-form prose */
html.ha-unified .prose,
html.ha-unified .article-admin-body,
html.ha-unified .article-content {
  max-width: 72ch;
}

html.ha-unified .article-content h2,
html.ha-unified .article-admin-body h2 {
  margin-top: 1.75em;
  margin-bottom: 0.65em;
}

html.ha-unified .article-content p,
html.ha-unified .article-admin-body p {
  margin-bottom: 1.1em;
}

html.ha-unified .article-content ul,
html.ha-unified .article-admin-body ul {
  margin: 0 0 1.25em 1.25em;
  padding: 0;
}

html.ha-unified .article-content li,
html.ha-unified .article-admin-body li {
  margin-bottom: 0.5em;
}

/* Tables */
html.ha-unified table {
  font-size: var(--text-sm) !important;
}

html.ha-unified th {
  font-weight: 700 !important;
  color: var(--dark-green) !important;
}

/* Strong emphasis */
html.ha-unified strong,
html.ha-unified b {
  font-weight: 700;
  color: var(--dark-green);
}

/* =============================================================================
   Dark surfaces — light text (must be last; beats global h2/p/li/serif-text above)
   ============================================================================= */
html.ha-unified .hero h1,
html.ha-unified .hero h2,
html.ha-unified .hero p,
html.ha-unified .page-hero h1,
html.ha-unified .page-hero h2,
html.ha-unified .page-hero .hero-title,
html.ha-unified .page-hero p,
html.ha-unified .blog-hero h1,
html.ha-unified .blog-hero h2,
html.ha-unified .programs-hero h1,
html.ha-unified .programs-hero h2,
html.ha-unified .programs-hero .programs-title,
html.ha-unified .programs-hero .serif-text,
html.ha-unified .programs-hero-content p,
html.ha-unified .programs-hero .programs-subtitle,
html.ha-unified .programs-hero .programs-lead,
html.ha-unified .program-hero h1,
html.ha-unified .program-hero .program-title,
html.ha-unified .program-hero .program-subtitle,
html.ha-unified .program-hero .meta-item span,
html.ha-unified .program-hero .meta-item strong,
html.ha-unified .page-blog-hero h1,
html.ha-unified .page-blog-hero h2,
html.ha-unified .page-blog-hero p,
html.ha-unified .page-blog-hero .page-blog-hero__title,
html.ha-unified .page-blog-hero .hero-subtitle,
html.ha-unified .cta-section:not(.content-card) h1,
html.ha-unified .cta-section:not(.content-card) h2,
html.ha-unified .cta-section:not(.content-card) h2.serif-text,
html.ha-unified .cta-section:not(.content-card) .serif-text,
html.ha-unified .cta-section:not(.content-card) p,
html.ha-unified .programs-power-cta h2,
html.ha-unified .programs-power-cta p,
html.ha-unified .programs-power-cta .programs-cta-lead,
html.ha-unified .programs-power-cta .programs-cta-eyebrow,
html.ha-unified .programs-cta-band h2,
html.ha-unified .programs-cta-band p,
html.ha-unified .programs-cta-band .programs-cta-lead,
html.ha-unified .programs-cta-band .programs-cta-eyebrow,
html.ha-unified .themes-strip,
html.ha-unified .themes-strip h1,
html.ha-unified .themes-strip h2,
html.ha-unified .themes-strip h2.serif-text,
html.ha-unified .themes-strip .serif-text,
html.ha-unified .themes-strip p,
html.ha-unified .themes-strip li,
html.ha-unified .themes-list li {
  color: #ffffff !important;
}

html.ha-unified .programs-power-cta p,
html.ha-unified .programs-power-cta .programs-cta-lead,
html.ha-unified .programs-cta-band p,
html.ha-unified .programs-cta-band .programs-cta-lead {
  color: rgba(255, 255, 255, 0.94) !important;
}

html.ha-unified .programs-power-cta .programs-cta-eyebrow,
html.ha-unified .programs-cta-band .programs-cta-eyebrow {
  color: #d1fae5 !important;
}

/* Counselling modal — green header (beats global html.ha-unified h2 dark-green) */
html.ha-unified .ha-counselling-modal__head,
html.ha-unified .ha-counselling-modal__head h2,
html.ha-unified .ha-counselling-modal__head p {
  color: #ffffff !important;
  -webkit-text-fill-color: currentColor !important;
  background: none !important;
  background-clip: unset !important;
  -webkit-background-clip: unset !important;
}

html.ha-unified .ha-counselling-modal__head p {
  color: rgba(255, 255, 255, 0.92) !important;
}

html.ha-unified .programs-hero .programs-subtitle,
html.ha-unified .programs-hero .programs-lead,
html.ha-unified .program-hero .program-subtitle,
html.ha-unified .page-blog-hero p.desc,
html.ha-unified .themes-strip p {
  color: rgba(255, 255, 255, 0.92) !important;
}

html.ha-unified .hero .text-gradient,
html.ha-unified .programs-hero .text-gradient,
html.ha-unified .page-blog-hero .text-gradient,
html.ha-unified .program-hero .program-title-accent {
  color: #6ee7b7 !important;
  -webkit-text-fill-color: #6ee7b7 !important;
  background: none !important;
  background-clip: unset !important;
  -webkit-background-clip: unset !important;
}

html.ha-unified .themes-list li {
  background: rgba(255, 255, 255, 0.12) !important;
  border-color: rgba(255, 255, 255, 0.28) !important;
}

html.ha-unified .program-hero .meta-item strong,
html.ha-unified .themes-strip strong {
  color: #ffffff !important;
}

/* Program detail — dark training structure band */
html.ha-unified .program-training-band,
html.ha-unified .program-training-band h2,
html.ha-unified .program-training-band h3,
html.ha-unified .program-training-band h3.serif-text,
html.ha-unified .program-training-band .program-training-band__title,
html.ha-unified .program-training-band .serif-text,
html.ha-unified .program-training-band p,
html.ha-unified .program-training-band li,
html.ha-unified .program-training-band span {
  color: #ffffff !important;
  -webkit-text-fill-color: currentColor !important;
}

html.ha-unified .program-training-band strong,
html.ha-unified .program-training-band b {
  color: #dcfce7 !important;
}

html.ha-unified .program-training-band i.fas,
html.ha-unified .program-training-band i.far {
  color: #bbf7d0 !important;
}

html.ha-unified .program-training-band .program-training-band__title i {
  color: #86efac !important;
}

/* Partner page — dark framework band */
html.ha-unified .framework-box,
html.ha-unified .framework-box h2,
html.ha-unified .framework-box h3,
html.ha-unified .framework-box h3.serif-text,
html.ha-unified .framework-box .serif-text,
html.ha-unified .framework-box p,
html.ha-unified .framework-box .framework-subtitle,
html.ha-unified .framework-box span {
  color: #ffffff !important;
  -webkit-text-fill-color: currentColor !important;
}

/* About page — dark hero band */
html.ha-unified .about-hero.about-hero--power,
html.ha-unified .about-hero.about-hero--power h1,
html.ha-unified .about-hero.about-hero--power .about-hero-hook,
html.ha-unified .about-hero.about-hero--power .about-hero-meta span {
    color: #ffffff !important;
    -webkit-text-fill-color: currentColor !important;
}

html.ha-unified .about-hero.about-hero--power .about-hero-hook {
  font-family: var(--font-body) !important;
  font-size: clamp(1rem, 2vw, 1.2rem) !important;
  font-weight: 500 !important;
  line-height: 1.6 !important;
  color: rgba(255, 255, 255, 0.92) !important;
  max-width: 44rem !important;
  margin: 18px auto 0 !important;
  -webkit-text-fill-color: currentColor !important;
}

/* Facilities page — dark hero band */
html.ha-unified .infra-hero.infra-hero--power,
html.ha-unified .infra-hero.infra-hero--power h1,
html.ha-unified .infra-hero.infra-hero--power .infra-hero-hook,
html.ha-unified .infra-hero.infra-hero--power .infra-hero-meta span {
    color: #ffffff !important;
    -webkit-text-fill-color: currentColor !important;
}

html.ha-unified .infra-hero.infra-hero--power .infra-hero-title .text-accent {
    -webkit-text-fill-color: transparent !important;
}

html.ha-unified .infra-power-cta,
html.ha-unified .infra-power-cta h2,
html.ha-unified .infra-power-cta p,
html.ha-unified .infra-power-cta .section-text {
    color: #ffffff !important;
    -webkit-text-fill-color: currentColor !important;
}

/* Facilities page — light content cards (global dark-surface rules must not wash these out) */
html.ha-unified body.page-infrastructure main > section.content-card,
html.ha-unified body.page-infrastructure main .content-card {
    color: #1a1f1b !important;
}

html.ha-unified body.page-infrastructure main .section-title,
html.ha-unified body.page-infrastructure main h2.section-title,
html.ha-unified body.page-infrastructure main h3.serif-text {
    color: #004b04 !important;
    -webkit-text-fill-color: currentColor !important;
}

html.ha-unified body.page-infrastructure main .section-eyebrow {
    color: #525a54 !important;
    -webkit-text-fill-color: currentColor !important;
}

html.ha-unified body.page-infrastructure main .section-power-lead,
html.ha-unified body.page-infrastructure main .section-text,
html.ha-unified body.page-infrastructure main .section-text p {
    color: #3d4a42 !important;
    -webkit-text-fill-color: currentColor !important;
}

html.ha-unified body.page-infrastructure main > section.infra-power-cta,
html.ha-unified body.page-infrastructure main > section#infra-visit {
    background: #004b04 !important;
    color: #ffffff !important;
}

html.ha-unified .hwt-hero.hwt-hero--power,
html.ha-unified .hwt-hero.hwt-hero--power h1,
html.ha-unified .hwt-hero.hwt-hero--power .hwt-hero-hook,
html.ha-unified .hwt-hero.hwt-hero--power .hwt-hero-meta span {
    color: #ffffff !important;
    -webkit-text-fill-color: currentColor !important;
}

html.ha-unified .hwt-hero.hwt-hero--power .hwt-hero-title .text-accent {
    -webkit-text-fill-color: transparent !important;
}

/* Contact page — dark hero band */
html.ha-unified .con-hero.con-hero--power,
html.ha-unified .con-hero.con-hero--power h1,
html.ha-unified .con-hero.con-hero--power .con-hero-hook,
html.ha-unified .con-hero.con-hero--power .con-hero-meta span,
html.ha-unified .con-hero.con-hero--power .con-hero-badge {
    color: #ffffff !important;
    -webkit-text-fill-color: currentColor !important;
}

html.ha-unified .con-hero.con-hero--power .con-hero-hook {
    color: rgba(255, 255, 255, 0.92) !important;
    -webkit-text-fill-color: currentColor !important;
    text-shadow: 0 1px 10px rgba(0, 0, 0, 0.5) !important;
}

/* Insights / Knowledge Hub — dark hero band */
html.ha-unified .ins-hero.ins-hero--power,
html.ha-unified .ins-hero.ins-hero--power h1,
html.ha-unified .ins-hero.ins-hero--power .ins-hero-hook,
html.ha-unified .ins-hero.ins-hero--power .ins-hero-meta span,
html.ha-unified .ins-hero.ins-hero--power .ins-hero-badge {
    color: #ffffff !important;
    -webkit-text-fill-color: currentColor !important;
}

html.ha-unified .ins-hero.ins-hero--power .ins-hero-hook {
    color: rgba(255, 255, 255, 0.92) !important;
    -webkit-text-fill-color: currentColor !important;
    text-shadow: 0 1px 10px rgba(0, 0, 0, 0.5) !important;
}

/* Contact page — dark action band */
html.ha-unified .con-action-band,
html.ha-unified .con-action-band h2,
html.ha-unified .con-action-band p,
html.ha-unified .con-action-band .section-eyebrow,
html.ha-unified .con-action-band .section-title,
html.ha-unified .con-action-band .section-power-lead {
    color: #ffffff !important;
    -webkit-text-fill-color: currentColor !important;
}

html.ha-unified .con-action-band .section-power-lead {
    color: rgba(255, 255, 255, 0.92) !important;
}

html.ha-unified body.page-contact .con-power-stat,
html.ha-unified body.page-contact .con-power-stat__num,
html.ha-unified body.page-contact .con-power-stat__lbl {
    color: #ffffff !important;
    -webkit-text-fill-color: currentColor !important;
}

html.ha-unified .hwt-power-cta,
html.ha-unified .hwt-power-cta h2,
html.ha-unified .hwt-power-cta p,
html.ha-unified .hwt-power-cta .section-text {
    color: #ffffff !important;
    -webkit-text-fill-color: currentColor !important;
}

/* How We Train — light content cards */
html.ha-unified body.page-how-we-train main > section.content-card,
html.ha-unified body.page-how-we-train main .content-card {
    color: #1a1f1b !important;
}

html.ha-unified body.page-how-we-train main .section-title,
html.ha-unified body.page-how-we-train main h2.section-title,
html.ha-unified body.page-how-we-train main h3.serif-text {
    color: #004b04 !important;
    -webkit-text-fill-color: currentColor !important;
}

html.ha-unified body.page-how-we-train main .section-eyebrow {
    color: #525a54 !important;
    -webkit-text-fill-color: currentColor !important;
}

html.ha-unified body.page-how-we-train main .section-power-lead,
html.ha-unified body.page-how-we-train main .section-text,
html.ha-unified body.page-how-we-train main .section-text p {
    color: #3d4a42 !important;
    -webkit-text-fill-color: currentColor !important;
}

html.ha-unified body.page-how-we-train main > section.hwt-why-band {
    background: linear-gradient(140deg, #004b04 0%, #006b04 55%, #007305 100%) !important;
    color: #ffffff !important;
}

html.ha-unified body.page-how-we-train main > section.hwt-why-band h2,
html.ha-unified body.page-how-we-train main > section.hwt-why-band .hwt-why-band__lead,
html.ha-unified body.page-how-we-train main > section.hwt-why-band .hwt-why-quote p,
html.ha-unified body.page-how-we-train main > section.hwt-why-band .hwt-why-pill-list span {
    color: #ffffff !important;
    -webkit-text-fill-color: currentColor !important;
}

html.ha-unified body.page-how-we-train main > section.hwt-power-cta,
html.ha-unified body.page-how-we-train main > section#hwt-enroll {
    background: #004b04 !important;
    color: #ffffff !important;
}

html.ha-unified .about-power-cta,
html.ha-unified .about-power-cta h2,
html.ha-unified .about-power-cta p,
html.ha-unified .about-power-cta .section-text {
    color: #ffffff !important;
    -webkit-text-fill-color: currentColor !important;
}

html.ha-unified .about-sequence-strip,
html.ha-unified .about-sequence-strip p,
html.ha-unified .about-sequence-strip span,
html.ha-unified .about-seq-band,
html.ha-unified .about-seq-band p,
html.ha-unified .about-seq-title,
html.ha-unified .about-seq-hint {
    color: rgba(255, 255, 255, 0.96) !important;
    -webkit-text-fill-color: currentColor !important;
}

html.ha-unified .about-seq-title {
    color: #d1fae5 !important;
}

html.ha-unified .about-seq-step.is-active {
    color: var(--dark-green, #004b04) !important;
}

html.ha-unified .framework-box .timeline-flex i {
  color: #86efac !important;
}

html.ha-unified .program-training-band .program-training-band__title {
  display: flex !important;
  align-items: center !important;
  flex-wrap: wrap !important;
  gap: 12px !important;
  font-size: clamp(1.45rem, 3vw, 1.8rem) !important;
  margin-bottom: 25px !important;
  color: #ffffff !important;
}

/* Light sections — helper / intro copy (gallery hints, training gallery intro) */
html.ha-unified .gallery-hint,
html.ha-unified .training-gallery-intro,
html.ha-unified #home-training-gallery .training-gallery-intro,
html.ha-unified #home-training-gallery p.training-gallery-intro {
  color: #004b04 !important;
  font-weight: 600 !important;
  opacity: 1 !important;
}

html.ha-unified .training-gallery-intro--sub,
html.ha-unified #home-training-gallery p.training-gallery-intro--sub {
  color: #1a3d28 !important;
  font-weight: 600 !important;
}

html.ha-unified #home-training-gallery .training-gallery-header {
  opacity: 1 !important;
  transform: none !important;
}

/* —— Shared bullet/check lists (Unicode check — avoids Font Awesome ? artifacts) —— */
html.ha-unified .bullet-list {
  list-style: none !important;
}

html.ha-unified .bullet-list li {
  position: relative;
}

html.ha-unified .bullet-list li::before {
  content: '\2713' !important;
  font-family: 'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif !important;
  font-weight: 700 !important;
  font-style: normal !important;
  -webkit-font-smoothing: antialiased;
}

html.ha-unified .curr-card li::before {
  content: '\2713' !important;
  font-family: 'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif !important;
  font-weight: 700 !important;
  color: var(--primary-green, #007305) !important;
  font-size: 1rem !important;
  line-height: 1.2 !important;
  top: 0.1em !important;
}

/* Calendar table — dark-green header row needs light text (global th rule overrides page styles) */
html.ha-unified .calendar-table th {
  color: #ffffff !important;
}

/* Program compare tables — second column header on dark-green background */
html.ha-unified .program-compare-table th:last-child,
html.ha-unified .pf-compare th:last-child {
  color: #ffffff !important;
}

/* Infrastructure compare table — green header columns need light text */
html.ha-unified .infra-compare-table th:not(:first-child) {
  color: #ffffff !important;
  -webkit-text-fill-color: currentColor !important;
}

/* Refund policy table — dark-green header row */
html.ha-unified .refund-window-table th {
  color: #ffffff !important;
  -webkit-text-fill-color: currentColor !important;
}

/* Program pages — light CTA card (not dark full-width .cta-section band) */
html.ha-unified .program-cta-card h2 {
  color: var(--dark-green) !important;
}

html.ha-unified .program-cta-card p,
html.ha-unified .program-cta-card .section-text {
  color: var(--text-main) !important;
}

html.ha-unified body.page-program-detail .program-power-cta h2,
html.ha-unified body.page-program-detail .program-power-cta h3,
html.ha-unified body.page-program-detail .program-power-cta p,
html.ha-unified body.page-program-detail .program-power-cta .section-text {
  color: #ffffff !important;
}

/* =============================================================================
   Unified page text system — matches Facilities (infra) hero + content rhythm
   ============================================================================= */

/* —— Dark hero: badge / kicker —— */
html.ha-unified .page-hero .hero-kicker,
html.ha-unified [class*="-hero-badge"],
html.ha-unified .program-flagship-badge,
html.ha-unified .programs-hero-badge {
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  padding: 8px 18px !important;
  margin-bottom: 16px !important;
  border-radius: 999px !important;
  font-family: var(--font-body) !important;
  font-size: 0.72rem !important;
  font-weight: 800 !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  color: #ecfdf5 !important;
  background: rgba(255, 255, 255, 0.1) !important;
  border: 1px solid rgba(167, 243, 208, 0.45) !important;
  -webkit-text-fill-color: currentColor !important;
}

html.ha-unified .page-hero .hero-kicker i,
html.ha-unified [class*="-hero-badge"] i,
html.ha-unified .program-flagship-badge i,
html.ha-unified .programs-hero-badge i {
  color: #fbbf24 !important;
}

/* —— Dark hero: main title (serif white + green accent span) —— */
html.ha-unified .page-hero .hero-title,
html.ha-unified [class*="-hero--power"] [class*="-hero-title"],
html.ha-unified .program-hero--power .program-title,
html.ha-unified .programs-hero--power .programs-title {
  font-family: var(--font-display) !important;
  font-size: clamp(1.75rem, 4vw + 0.85rem, 2.85rem) !important;
  font-weight: 700 !important;
  line-height: 1.12 !important;
  letter-spacing: -0.02em !important;
  color: #ffffff !important;
  text-shadow: 0 4px 28px rgba(0, 0, 0, 0.55) !important;
  margin: 0 0 0.35em !important;
  -webkit-text-fill-color: currentColor !important;
}

html.ha-unified [class*="-hero-title"] .text-accent,
html.ha-unified .program-title .program-title-accent,
html.ha-unified .programs-title .text-gradient {
  display: inline !important;
  font-family: var(--font-body) !important;
  font-size: clamp(1rem, 2.4vw, 1.35rem) !important;
  font-weight: 600 !important;
  letter-spacing: 0.01em !important;
  line-height: 1.35 !important;
  vertical-align: baseline !important;
  background: linear-gradient(135deg, #d1fae5 0%, #34d399 50%, #6ee7b7 100%) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  color: #34d399 !important;
  filter: none !important;
  text-shadow: none !important;
}

html.ha-unified .programs-title-line {
  display: block !important;
}

/* Power heroes — How We Train format: white serif lead + mint sans accent */
html.ha-unified .program-hero .program-title.programs-title .programs-title-line:not(.programs-title-line--sub),
html.ha-unified .programs-hero--power .programs-title .programs-title-line:not(.programs-title-line--sub),
html.ha-unified [class*="-hero--power"] [class*="-hero-title"].programs-title .programs-title-line:not(.programs-title-line--sub),
html.ha-unified [class*="-hero--power"] h1.programs-title .programs-title-line:not(.programs-title-line--sub) {
  font-family: var(--font-display), 'Playfair Display', Georgia, serif !important;
  font-size: inherit !important;
  font-weight: 700 !important;
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
  letter-spacing: inherit !important;
  line-height: inherit !important;
  background: none !important;
  -webkit-background-clip: unset !important;
  background-clip: unset !important;
  filter: none !important;
}

html.ha-unified .programs-title-line--sub,
html.ha-unified .about-hero.about-hero--power .about-hero-title.programs-title .programs-title-line--sub,
html.ha-unified .programs-hero--power .programs-title .programs-title-line--sub,
html.ha-unified .program-hero--power .program-title .programs-title-line--sub,
html.ha-unified [class*="-hero--power"] .programs-title-line--sub {
  display: block !important;
  margin-top: 0.35em !important;
  font-family: var(--font-body), 'Inter', system-ui, sans-serif !important;
  font-size: clamp(0.95rem, 1.8vw + 0.35rem, 1.2rem) !important;
  font-weight: 500 !important;
  line-height: 1.4 !important;
  color: #86efac !important;
  -webkit-text-fill-color: #86efac !important;
  letter-spacing: 0.02em !important;
}

html.ha-unified .program-hero.program-hero--power .program-title.programs-title,
html.ha-unified .programs-hero.programs-hero--power .programs-title,
html.ha-unified .infra-hero.infra-hero--power .infra-hero-title.programs-title,
html.ha-unified .about-hero.about-hero--power .about-hero-title.programs-title,
html.ha-unified .hwt-hero.hwt-hero--power .hwt-hero-title.programs-title,
html.ha-unified .ins-hero.ins-hero--power .ins-hero-title.programs-title,
html.ha-unified .con-hero.con-hero--power .con-hero-title.programs-title {
  font-size: clamp(1.85rem, 4.5vw + 0.5rem, 3.25rem) !important;
  line-height: 1.25 !important;
  padding-bottom: 0;
  margin-bottom: 0.35em !important;
  text-wrap: balance;
  overflow: visible !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  gap: 0.12em !important;
  text-align: center !important;
}

/* —— Dark hero: hook / lead paragraph —— */
html.ha-unified .page-hero p,
html.ha-unified [class*="-hero-hook"],
html.ha-unified .program-hero-hook,
html.ha-unified .program-hero-lead,
html.ha-unified .programs-hero-hook {
  font-family: var(--font-body) !important;
  font-size: clamp(0.95rem, 1.8vw, 1.12rem) !important;
  font-weight: 400 !important;
  line-height: 1.65 !important;
  color: rgba(255, 255, 255, 0.9) !important;
  max-width: 42rem !important;
  margin: 14px auto 0 !important;
  -webkit-text-fill-color: currentColor !important;
}

/* —— Dark hero: meta pills —— */
html.ha-unified [class*="-hero-meta"] span,
html.ha-unified .programs-hero-stat,
html.ha-unified .program-hero .hero-meta .meta-item {
  font-family: var(--font-body) !important;
  font-size: 0.78rem !important;
  font-weight: 600 !important;
  line-height: 1.35 !important;
}

html.ha-unified [class*="-hero-meta"] span,
html.ha-unified .programs-hero-stat {
  color: rgba(255, 255, 255, 0.92) !important;
  -webkit-text-fill-color: currentColor !important;
}

/* —— Section eyebrows removed site-wide (sections use .section-title only) —— */
html.ha-unified .section-eyebrow {
  display: none !important;
}

html.ha-unified main .section-title,
html.ha-unified .content-card .section-title {
  font-family: var(--font-display) !important;
  font-size: clamp(1.35rem, 2.8vw, 1.75rem) !important;
  font-weight: 700 !important;
  line-height: 1.2 !important;
  letter-spacing: -0.01em !important;
  color: var(--dark-green, #004b04) !important;
  margin: 0 0 10px !important;
  -webkit-text-fill-color: currentColor !important;
}

html.ha-unified main .section-power-lead,
html.ha-unified .content-card .section-power-lead {
  font-family: var(--font-body) !important;
  font-size: clamp(0.98rem, 1.8vw, 1.08rem) !important;
  font-weight: 500 !important;
  line-height: 1.65 !important;
  color: var(--text-light, #525a54) !important;
  max-width: 65ch !important;
  margin: 0 0 16px !important;
  -webkit-text-fill-color: currentColor !important;
}

html.ha-unified main .section-text,
html.ha-unified .content-card .section-text {
  font-family: var(--font-body) !important;
  font-size: 0.95rem !important;
  line-height: 1.65 !important;
  color: var(--text-main, #1a1f1b) !important;
}

html.ha-unified main .section-text p,
html.ha-unified .content-card .section-text p {
  color: inherit !important;
  -webkit-text-fill-color: currentColor !important;
}

@media (max-width: 640px) {
  html.ha-unified [class*="-hero-title"] .text-accent,
  html.ha-unified .program-title .program-title-accent {
    display: block !important;
    margin-top: 6px !important;
  }
}

/* Font Awesome — Inter/Playfair overrides break icon glyphs */
html.ha-unified i.fas,
html.ha-unified i.fa-solid,
html.ha-unified .fas,
html.ha-unified .fa-solid,
html.ha-unified i.fa:not(.fab):not(.fa-brands):not(.far):not(.fa-regular) {
  font-family: "Font Awesome 6 Free" !important;
  font-weight: 900 !important;
  font-style: normal !important;
  -webkit-font-smoothing: antialiased !important;
  -moz-osx-font-smoothing: grayscale !important;
  speak: none;
  text-rendering: auto;
}

html.ha-unified i.fas::before,
html.ha-unified i.fa-solid::before,
html.ha-unified .fas::before,
html.ha-unified .fa-solid::before,
html.ha-unified i.fa:not(.fab):not(.fa-brands):not(.far):not(.fa-regular)::before {
  font-family: "Font Awesome 6 Free" !important;
  font-weight: 900 !important;
  font-style: normal !important;
}

html.ha-unified i.far,
html.ha-unified i.fa-regular,
html.ha-unified .far,
html.ha-unified .fa-regular {
  font-family: "Font Awesome 6 Free" !important;
  font-weight: 400 !important;
  font-style: normal !important;
}

html.ha-unified i.far::before,
html.ha-unified i.fa-regular::before,
html.ha-unified .far::before,
html.ha-unified .fa-regular::before {
  font-family: "Font Awesome 6 Free" !important;
  font-weight: 400 !important;
}

html.ha-unified i.fab,
html.ha-unified i.fa-brands,
html.ha-unified .fab,
html.ha-unified .fa-brands {
  font-family: "Font Awesome 6 Brands" !important;
  font-weight: 400 !important;
  font-style: normal !important;
}

html.ha-unified i.fab::before,
html.ha-unified i.fa-brands::before,
html.ha-unified .fab::before,
html.ha-unified .fa-brands::before {
  font-family: "Font Awesome 6 Brands" !important;
  font-weight: 400 !important;
}

html.ha-unified [class*="__icon"] i.fas,
html.ha-unified [class*="__icon"] i.far,
html.ha-unified [class*="__icon"] i.fab,
html.ha-unified .ha-mobile-admission-sheet__link i.fas,
html.ha-unified .ha-mobile-admission-sheet__link i.far,
html.ha-unified .ha-mobile-admission-sheet__link i.fab {
  font-family: "Font Awesome 6 Free" !important;
  font-weight: 900 !important;
  font-style: normal !important;
}

html.ha-unified [class*="__icon"] i.fab,
html.ha-unified .ha-mobile-admission-sheet__link i.fab {
  font-family: "Font Awesome 6 Brands" !important;
  font-weight: 400 !important;
}

html.ha-unified .ha-mobile-bottom-nav__icon svg,
html.ha-unified .ha-mobile-bottom-nav__icon .ha-bottom-nav-svg {
  display: block !important;
  width: 1.45rem !important;
  height: 1.45rem !important;
  color: #ffffff !important;
  fill: currentColor !important;
  opacity: 1 !important;
  visibility: visible !important;
}

html.ha-unified .ha-mobile-bottom-nav__label {
  color: rgba(255, 255, 255, 0.92) !important;
  -webkit-text-fill-color: rgba(255, 255, 255, 0.92) !important;
  opacity: 1 !important;
  visibility: visible !important;
}
