/* ─────────────────────────────────────────────────────────────────────
   NHFA theme base stylesheet
   Brand tokens, resets, typography, shared utilities, and responsive
   breakpoints. Module-specific CSS lives inside each .module folder
   to keep the D&D editor previewing correctly.
───────────────────────────────────────────────────────────────────── */

:root {
  --nhfa-red:        #DA2E22;
  --nhfa-red-hover:  #c42a1f;
  --nhfa-black:      #000000;
  --nhfa-dark-gray:  #404040;
  --nhfa-light-gray: #7F8080;
  --nhfa-cool-gray:  #8F909F;
  --nhfa-white:      #FFFFFF;
  /* Overridable per-partner: gets set inline in the page template when a
     partner row is resolved from HubDB. */
  --partner-color:   #DA2E22;
}

.nhfa-lp *,
.nhfa-lp *::before,
.nhfa-lp *::after {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

.nhfa-lp {
  font-family: 'Roboto', sans-serif;
  color: var(--nhfa-dark-gray);
  background: var(--nhfa-white);
  overflow-x: hidden;
  line-height: 1.5;
}

.nhfa-lp h1,
.nhfa-lp h2,
.nhfa-lp h3,
.nhfa-lp h4,
.nhfa-lp h5 {
  font-family: 'Montserrat', sans-serif;
  font-weight: 700;
}

.nhfa-lp a { text-decoration: none; }
.nhfa-lp img { max-width: 100%; height: auto; display: block; }

/* Shared utility: section wrappers */
.nhfa-section        { padding: 80px 40px; }
.nhfa-section__inner { max-width: 1200px; margin: 0 auto; }
.nhfa-section__label {
  font-family: 'Montserrat', sans-serif;
  font-weight: 700;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 2.5px;
  color: var(--nhfa-red);
  margin-bottom: 10px;
}

/* Primary red CTA button — used across header, hero, course, final CTA */
.nhfa-btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  background: var(--nhfa-red);
  color: #fff;
  font-family: 'Montserrat', sans-serif;
  font-weight: 700;
  font-size: 15px;
  padding: 15px 32px;
  border: none;
  border-radius: 5px;
  cursor: pointer;
  text-decoration: none;
  transition: background 0.25s, transform 0.25s, box-shadow 0.25s;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.nhfa-btn:hover {
  background: var(--nhfa-red-hover);
  transform: translateY(-1px);
  box-shadow: 0 8px 24px rgba(218, 46, 34, 0.35);
}

/* ── HubSpot form overrides (embedded form styling to match dark cards) ── */
.nhfa-form-wrap .hs-form-field label {
  color: rgba(255,255,255,0.6) !important;
  font-size: 12px !important;
  font-weight: 500 !important;
  font-family: 'Roboto', sans-serif !important;
}
.nhfa-form-wrap .hs-input {
  width: 100% !important;
  padding: 12px 14px !important;
  background: rgba(255,255,255,0.06) !important;
  border: 1px solid rgba(255,255,255,0.12) !important;
  border-radius: 6px !important;
  color: #fff !important;
  font-family: 'Roboto', sans-serif !important;
  font-size: 14px !important;
}
.nhfa-form-wrap .hs-input:focus      { border-color: var(--nhfa-red) !important; outline: none !important; }
.nhfa-form-wrap .hs-input::placeholder { color: rgba(255,255,255,0.25) !important; }
.nhfa-form-wrap select.hs-input option { background: #1a1a1a !important; color: #fff !important; }

.nhfa-form-wrap .hs-submit .hs-button {
  width: 100% !important;
  padding: 14px !important;
  background: var(--nhfa-red) !important;
  color: #fff !important;
  font-family: 'Montserrat', sans-serif !important;
  font-weight: 700 !important;
  font-size: 15px !important;
  border: none !important;
  border-radius: 6px !important;
  cursor: pointer !important;
  text-transform: uppercase !important;
  letter-spacing: 0.5px !important;
  transition: background 0.25s !important;
}
.nhfa-form-wrap .hs-submit .hs-button:hover { background: var(--nhfa-red-hover) !important; }

.nhfa-form-wrap .hs-error-msgs            { color: #ff6b6b !important; font-size: 12px !important; }
.nhfa-form-wrap .hs-form-booleancheckbox-display {
  display: flex !important;
  align-items: flex-start !important;
  gap: 10px !important;
  color: rgba(255,255,255,0.55) !important;
  font-size: 12px !important;
  line-height: 1.5 !important;
}
.nhfa-form-wrap .hs-form-booleancheckbox-display input {
  width: 18px !important;
  height: 18px !important;
  flex-shrink: 0 !important;
  accent-color: var(--nhfa-red) !important;
}
.nhfa-form-wrap .hs-richtext a { color: var(--nhfa-red) !important; text-decoration: underline !important; }

/* Post-submit thank-you message should stay readable on dark card */
.nhfa-form-wrap .submitted-message,
.nhfa-form-wrap .submitted-message * { color: #fff !important; }

/* ── Custom HTML form (replaces HubSpot v2 embed — dark-glass styling) ── */
.nhfa-f { display: block; }
.nhfa-f-group { margin-bottom: 14px; }
.nhfa-f-group > label {
  display: block;
  color: rgba(255,255,255,0.6);
  font-size: 12px;
  font-weight: 500;
  font-family: 'Roboto', sans-serif;
  margin-bottom: 5px;
}
.nhfa-f-group .nhfa-f-req { color: var(--nhfa-red); }
.nhfa-f-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}
@media (max-width: 600px) {
  .nhfa-f-row { grid-template-columns: 1fr; gap: 0; }
}
.nhfa-f-input,
.nhfa-f-select {
  width: 100%;
  padding: 12px 14px;
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: 6px;
  color: #fff;
  font-family: 'Roboto', sans-serif;
  font-size: 14px;
  transition: border-color 0.2s;
  outline: none;
  appearance: none;
  -webkit-appearance: none;
}
.nhfa-f-input:focus,
.nhfa-f-select:focus {
  border-color: var(--nhfa-red);
}
.nhfa-f-input::placeholder { color: rgba(255,255,255,0.25); }
.nhfa-f-select { background-image: linear-gradient(45deg, transparent 50%, rgba(255,255,255,0.5) 50%), linear-gradient(135deg, rgba(255,255,255,0.5) 50%, transparent 50%); background-position: calc(100% - 18px) 50%, calc(100% - 12px) 50%; background-size: 6px 6px, 6px 6px; background-repeat: no-repeat; padding-right: 34px; }
.nhfa-f-select option { background: #1a1a1a; color: #fff; }
.nhfa-f-check {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  cursor: pointer;
  color: rgba(255,255,255,0.55);
  font-size: 12px;
  line-height: 1.5;
  margin-bottom: 0;
}
.nhfa-f-check input[type="checkbox"] {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  margin-top: 2px;
  accent-color: var(--nhfa-red);
}
.nhfa-f-check a { color: var(--nhfa-red); text-decoration: underline; }
.nhfa-f-submit {
  width: 100%;
  margin-top: 6px;
  padding: 14px;
  background: var(--nhfa-red);
  color: #fff;
  font-family: 'Montserrat', sans-serif;
  font-weight: 700;
  font-size: 15px;
  border: none;
  border-radius: 6px;
  cursor: pointer;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  transition: background 0.25s, opacity 0.25s;
}
.nhfa-f-submit:hover { background: var(--nhfa-red-hover); }
.nhfa-f-submit:disabled { opacity: 0.6; cursor: wait; }
.nhfa-f-err {
  display: none;
  color: #ff6b6b;
  background: rgba(255,107,107,0.08);
  border: 1px solid rgba(255,107,107,0.25);
  border-radius: 6px;
  padding: 10px 12px;
  font-size: 13px;
  margin-top: 12px;
}
.nhfa-f-err.is-visible { display: block; }
.nhfa-f-ok {
  display: none;
  color: #9ae6a3;
  font-size: 13px;
  margin-top: 12px;
}
.nhfa-f-ok.is-visible { display: block; }

/* ── Responsive ── */
@media (max-width: 600px) {
  .nhfa-section { padding-left: 20px; padding-right: 20px; }
}



/* ═══════════════════════════════════════════════════════════
   MODULE-SPECIFIC CSS (merged from each .module/module.css)
   ═══════════════════════════════════════════════════════════ */


/* ── nhfa-advantage.module ── */

.nhfa-advantage {
  background: var(--nhfa-black);
  padding: 80px 40px;
  position: relative;
  overflow: hidden;
}

.nhfa-advantage__bg {
  position: absolute;
  right: -100px;
  bottom: -100px;
  width: 500px;
  opacity: 0.04;
  pointer-events: none;
}

.nhfa-advantage h2 {
  font-size: clamp(24px, 3vw, 36px);
  color: var(--nhfa-white);
  margin-bottom: 36px;
  position: relative;
  line-height: 1.2;
}

.nhfa-advantage__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
  position: relative;
}

.nhfa-advantage__item {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 18px;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.05);
}

.nhfa-advantage__check {
  flex-shrink: 0;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: var(--nhfa-red);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: 1px;
}

.nhfa-advantage__check svg { width: 12px; height: 12px; }

.nhfa-advantage__item p {
  color: rgba(255, 255, 255, 0.8);
  font-size: 15px;
  line-height: 1.5;
}

.nhfa-advantage__callout {
  margin-top: 36px;
  background: rgba(218, 46, 34, 0.1);
  border-left: 3px solid var(--nhfa-red);
  padding: 22px 24px;
  border-radius: 0 8px 8px 0;
  position: relative;
}

.nhfa-advantage__callout p {
  color: var(--nhfa-white);
  font-family: 'Montserrat', sans-serif;
  font-weight: 700;
  font-size: 18px;
}

@media (max-width: 900px) {
  .nhfa-advantage__grid { grid-template-columns: 1fr; }
}

@media (max-width: 600px) {
  .nhfa-advantage { padding: 60px 20px; }
}


/* ── nhfa-course-breakdown.module ── */

.nhfa-course-breakdown { padding: 80px 40px; }
.nhfa-course-breakdown__inner { text-align: center; max-width: 740px; margin: 0 auto; }
.nhfa-course-breakdown h2 {
  font-size: clamp(22px, 2.8vw, 32px);
  color: var(--nhfa-black);
  margin-bottom: 14px;
  line-height: 1.25;
  text-transform: uppercase;
}

.nhfa-course-breakdown__badge {
  display: inline-block;
  background: var(--nhfa-red);
  color: #fff;
  padding: 4px 14px;
  border-radius: 4px;
  font-size: 14px;
  font-weight: 500;
  margin-bottom: 24px;
}

.nhfa-course-breakdown__body {
  color: var(--nhfa-dark-gray);
  font-size: 15px;
  line-height: 1.8;
  margin-bottom: 28px;
  text-align: left;
}

.nhfa-course-breakdown__body p { margin-bottom: 16px; }
.nhfa-course-breakdown__body p:last-child { margin-bottom: 0; }

.nhfa-course-breakdown__graduate {
  background: #f5f5f5;
  border-radius: 8px;
  padding: 22px;
  font-family: 'Montserrat', sans-serif;
  font-weight: 700;
  color: var(--nhfa-black);
  font-size: 17px;
  margin-bottom: 12px;
}

.nhfa-course-breakdown__compliance {
  font-size: 11px;
  color: var(--nhfa-light-gray);
  margin-bottom: 20px;
}

.nhfa-course-breakdown__cta { margin-top: 8px; }

@media (max-width: 600px) {
  .nhfa-course-breakdown { padding: 60px 20px; }
}


/* ── nhfa-cta-form.module ── */

.nhfa-cta-form {
  padding: 80px 40px;
  background: var(--nhfa-black);
  position: relative;
  overflow: hidden;
}

.nhfa-cta-form__bg {
  position: absolute;
  left: -150px;
  bottom: -180px;
  width: 500px;
  opacity: 0.04;
  transform: scaleX(-1);
  pointer-events: none;
}

.nhfa-cta-form__inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 50px;
  align-items: start;
  position: relative;
  z-index: 1;
}

.nhfa-cta-form h2 {
  font-size: clamp(26px, 3.2vw, 40px);
  color: var(--nhfa-white);
  line-height: 1.15;
  margin-bottom: 14px;
}

.nhfa-cta-form__sub {
  color: rgba(255, 255, 255, 0.6);
  font-size: 17px;
  line-height: 1.5;
  margin-bottom: 28px;
}

.nhfa-cta-form__badges {
  display: flex;
  gap: 20px;
  flex-wrap: wrap;
}

.nhfa-cta-form__badge {
  display: flex;
  align-items: center;
  gap: 6px;
  color: rgba(255, 255, 255, 0.45);
  font-size: 12px;
}

.nhfa-cta-form__badge-icon { color: var(--nhfa-red); }

.nhfa-cta-form__form {
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 14px;
  padding: 32px;
}

.nhfa-cta-form__form h3 {
  color: var(--nhfa-white);
  font-family: 'Montserrat', sans-serif;
  font-weight: 700;
  font-size: 18px;
  margin-bottom: 22px;
}

@media (max-width: 900px) {
  .nhfa-cta-form__inner { grid-template-columns: 1fr; gap: 32px; }
}

@media (max-width: 600px) {
  .nhfa-cta-form { padding: 60px 20px; }
  .nhfa-cta-form__form { padding: 24px; }
}


/* ── nhfa-floating-cta.module ── */

.nhfa-floating-cta {
  position: fixed;
  top: 25px;                    /* v7: was 60px — centred against 84px header; was inline !important 22px */
  right: 40px;                  /* v7: was 20px */
  z-index: 9998;
}

.nhfa-floating-cta a {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: var(--nhfa-red);
  color: #fff;
  font-family: 'Montserrat', sans-serif;
  font-weight: 700;
  font-size: 13px;
  padding: 12px 22px;
  border: none;
  border-radius: 5px;
  cursor: pointer;
  text-decoration: none;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  box-shadow: 0 4px 16px rgba(218, 46, 34, 0.4);
  transition: background 0.25s, transform 0.25s, box-shadow 0.25s;
}

.nhfa-floating-cta a:hover {
  background: var(--nhfa-red-hover);
  transform: translateY(-1px);
  box-shadow: 0 8px 24px rgba(218, 46, 34, 0.5);
}

@media (max-width: 600px) {
  .nhfa-floating-cta { top: auto; bottom: 16px; right: 16px; }
  .nhfa-floating-cta a { padding: 10px 16px; font-size: 12px; }
}


/* ── nhfa-footer.module ── */

.nhfa-footer { background: #141414; padding: 56px 40px 0; }
.nhfa-footer__inner { max-width: 1200px; margin: 0 auto; text-align: center; padding-bottom: 28px; }

.nhfa-footer__stack {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 20px;
}

.nhfa-footer__crest svg { display: block; margin: 0 auto; }

.nhfa-footer__actions {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
}

.nhfa-footer__phone {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 5px;
  padding: 9px 18px;
  color: #fff;
  font-family: 'Montserrat', sans-serif;
  font-weight: 700;
  font-size: 14px;
  text-decoration: none;
  transition: border-color 0.2s;
}

.nhfa-footer__phone:hover { border-color: var(--nhfa-red); }

.nhfa-footer__enquire {
  display: inline-block;
  background: var(--nhfa-red);
  color: #fff;
  font-family: 'Montserrat', sans-serif;
  font-weight: 700;
  font-size: 13px;
  padding: 10px 24px;
  border-radius: 5px;
  text-decoration: none;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.nhfa-footer__bottom {
  border-top: 1px solid rgba(255, 255, 255, 0.06);
  padding: 18px 0;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 12px;
  margin-top: 20px;
}

.nhfa-footer__bottom span,
.nhfa-footer__bottom a {
  color: rgba(255, 255, 255, 0.3);
  font-size: 12px;
  text-decoration: none;
}

.nhfa-footer__bottom a:hover { color: rgba(255, 255, 255, 0.6); }

@media (max-width: 600px) {
  .nhfa-footer { padding: 40px 20px 0; }
}


/* ── nhfa-header.module ── */

.nhfa-site-header {
  background: var(--nhfa-black);
  padding: 14px 40px;
  display: flex;
  align-items: center;
  gap: 20px;
}

.nhfa-site-header__logo svg {
  height: 34px;
  width: auto;
  display: block;
}

.nhfa-site-header__divider {
  color: #555;
  font-family: 'Montserrat', sans-serif;
  font-weight: 700;
  font-size: 18px;
}

.nhfa-site-header .nhfa-site-header__partner-logo {
  height: 56px;                 /* v7: was 42px */
  width: auto;
  max-width: 240px;             /* v7: was 170px */
  object-fit: contain;
  object-position: center;
  display: block;
  background: #fff;
  padding: 5px 10px;
  border-radius: 6px;
  box-sizing: border-box;
  /* White pill backdrop so any partner logo — dark, light, or coloured —
     renders legibly on the dark header. Uploaders can drop in any logo
     file without worrying about pre-inverting it. */
}

/* v7: opt-in per partner via HubDB transparent_logo_background (alpha-channel logos only) */
.nhfa-site-header .nhfa-site-header__partner-logo--transparent {
  background: transparent;
  padding: 0;
  border-radius: 0;
}

@media (max-width: 600px) {
  .nhfa-site-header { padding: 12px 16px; gap: 10px; }
  .nhfa-site-header__logo svg { height: 28px; }
  .nhfa-site-header .nhfa-site-header__partner-logo {
    height: 44px;               /* v7: was 34px */
    max-width: 46vw;            /* v7: was 140px */
    padding: 4px 8px;
  }
}


/* ── nhfa-hero.module ── */

.nhfa-hero {
  position: relative;
  min-height: 540px;
  display: flex;
  align-items: center;
  overflow: hidden;
}

.nhfa-hero__bg {
  position: absolute;
  inset: 0;
  background: var(--nhfa-black);
  z-index: 0;
}

.nhfa-hero__brand-n {
  position: absolute;
  right: -80px;
  top: -60px;
  width: 600px;
  height: 600px;
  opacity: 0.06;
  z-index: 1;
}

.nhfa-hero__brand-a {
  position: absolute;
  left: -120px;
  bottom: -200px;
  width: 500px;
  height: 500px;
  opacity: 0.04;
  z-index: 1;
  transform: rotate(180deg);
}

.nhfa-hero__gradient {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 200px;
  background: linear-gradient(to top, rgba(218, 46, 34, 0.08), transparent);
  z-index: 1;
}

.nhfa-hero__content {
  position: relative;
  z-index: 2;
  max-width: 1200px;
  margin: 0 auto;
  padding: 60px 40px;
  width: 100%;
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: 60px;
  align-items: center;
}

.nhfa-hero__text h1 {
  font-size: clamp(30px, 4.2vw, 50px);
  color: var(--nhfa-white);
  line-height: 1.1;
  margin-bottom: 20px;
  letter-spacing: -0.5px;
}

.nhfa-hero__partner-name { color: var(--partner-color); }

.nhfa-hero__text p {
  color: rgba(255, 255, 255, 0.7);
  font-size: 17px;
  line-height: 1.65;
  max-width: 500px;
  margin-bottom: 32px;
}

.nhfa-hero__compliance {
  margin-top: 12px;
  font-size: 11px;
  color: rgba(255, 255, 255, 0.35);
}

.nhfa-hero__form {
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 14px;
  padding: 28px;
}

.nhfa-hero__form h3 {
  color: var(--nhfa-white);
  font-family: 'Montserrat', sans-serif;
  font-size: 16px;
  font-weight: 700;
  margin-bottom: 18px;
}

@media (max-width: 900px) {
  .nhfa-hero__content { grid-template-columns: 1fr; padding: 48px 24px; gap: 32px; }
  .nhfa-hero__form { padding: 24px; }
}

@media (max-width: 600px) {
  .nhfa-hero__content { padding: 40px 20px; }
  .nhfa-hero__text h1 { font-size: 30px; }
}


/* ── nhfa-pillars.module ── */

.nhfa-pillars { padding: 80px 40px; background: var(--nhfa-white); }
.nhfa-pillars h2 { font-size: clamp(24px, 3vw, 36px); color: var(--nhfa-black); margin-bottom: 12px; text-align: center; line-height: 1.2; }
.nhfa-pillars__subtitle { text-align: center; color: var(--nhfa-light-gray); max-width: 560px; margin: 0 auto 44px; font-size: 15px; line-height: 1.6; }

.nhfa-pillars__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 28px;
}

.nhfa-pillar {
  background: #fafafa;
  border-radius: 10px;
  padding: 32px 24px;
  border: 1px solid #eee;
  transition: border-color 0.3s, transform 0.3s, box-shadow 0.3s;
}

.nhfa-pillar:hover {
  border-color: var(--nhfa-red);
  transform: translateY(-3px);
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.07);
}

.nhfa-pillar__icon { width: 48px; height: 48px; margin-bottom: 18px; }
.nhfa-pillar__icon svg { width: 100%; height: 100%; }

.nhfa-pillar h3 { font-size: 16px; color: var(--nhfa-black); margin-bottom: 8px; line-height: 1.3; }
.nhfa-pillar p  { color: var(--nhfa-light-gray); font-size: 14px; line-height: 1.6; }

@media (max-width: 900px) {
  .nhfa-pillars__grid { grid-template-columns: 1fr; }
}

@media (max-width: 600px) {
  .nhfa-pillars { padding: 60px 20px; }
}


/* ── nhfa-social-proof.module ── */

.nhfa-social-proof { background: #f7f7f7; padding: 80px 40px; }
.nhfa-social-proof__inner { text-align: center; }
.nhfa-social-proof h2 { font-size: clamp(24px, 3vw, 36px); color: var(--nhfa-black); margin-bottom: 36px; line-height: 1.2; }

.nhfa-video-wrap {
  background: #111;
  border-radius: 10px;
  aspect-ratio: 16/9;
  max-width: 700px;
  margin: 0 auto;
  overflow: hidden;
  position: relative;
}

.nhfa-video-wrap iframe {
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
}

.nhfa-video-wrap--placeholder {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 12px;
  color: rgba(255, 255, 255, 0.35);
}

.nhfa-video-wrap__play {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: var(--nhfa-red);
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
}

.nhfa-video-wrap__play::after {
  content: '';
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 9px 0 9px 16px;
  border-color: transparent transparent transparent white;
  margin-left: 3px;
}

.nhfa-video-wrap__label { font-size: 12px; }

@media (max-width: 600px) {
  .nhfa-social-proof { padding: 60px 20px; }
}


/* ── nhfa-visual-experience.module ── */

.nhfa-visual { padding: 80px 40px; background: #f7f7f7; }
.nhfa-visual h2 {
  font-size: clamp(24px, 3vw, 36px);
  color: var(--nhfa-black);
  margin-bottom: 14px;
  text-align: center;
  line-height: 1.2;
}

.nhfa-visual__trustpilot { text-align: center; margin-bottom: 36px; }
.nhfa-visual__stars { color: #00b67a; font-size: 22px; letter-spacing: 2px; }
.nhfa-visual__rating { font-weight: 700; font-size: 14px; color: var(--nhfa-dark-gray); margin-top: 4px; }

.nhfa-visual__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px;
  margin-bottom: 0;
}

.nhfa-visual__grid-item {
  aspect-ratio: 1;
  background: #e0e0e0;
  border-radius: 8px;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #999;
  font-size: 11px;
  text-align: center;
  padding: 10px;
}

.nhfa-visual__grid-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.nhfa-visual__testimonials {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}

.nhfa-visual__testimonial {
  background: #fff;
  border-radius: 10px;
  padding: 24px;
  border: 1px solid #e8e8e8;
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.nhfa-visual__t-stars { color: #f5a623; font-size: 15px; letter-spacing: 1px; }

.nhfa-visual__t-quote {
  color: var(--nhfa-dark-gray);
  font-size: 14px;
  line-height: 1.6;
  font-style: italic;
  flex: 1;
}

.nhfa-visual__t-author {
  display: flex;
  align-items: center;
  gap: 10px;
}

.nhfa-visual__t-avatar {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: var(--nhfa-cool-gray);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-weight: 700;
  font-size: 13px;
  flex-shrink: 0;
}

.nhfa-visual__t-name { font-weight: 700; font-size: 13px; color: var(--nhfa-black); }
.nhfa-visual__t-role { font-size: 11px; color: var(--nhfa-light-gray); }

@media (max-width: 900px) {
  .nhfa-visual__grid        { grid-template-columns: 1fr; }
  .nhfa-visual__testimonials{ grid-template-columns: 1fr; }
}

@media (max-width: 600px) {
  .nhfa-visual { padding: 60px 20px; }
}


/* ═════════════════════════════════════════════════════════════════════
   FORM EMBED OVERRIDES — higher specificity for HubSpot hbspt.forms
   ═════════════════════════════════════════════════════════════════════
   HubSpot's embedded form inlines CSS via its own stylesheet that gets
   loaded AFTER ours. Prefixing with `body .nhfa-form-wrap` gives our
   rules enough specificity to win. Combined with !important as a
   belt-and-braces measure.                                           */

body .nhfa-form-wrap form.hs-form { background: transparent !important; }

body .nhfa-form-wrap .hs-form-field > label,
body .nhfa-form-wrap .hs-form-field > label span,
body .nhfa-form-wrap .hs-form-field > label.hs-error-msg {
  color: rgba(255,255,255,0.6) !important;
  font-family: 'Roboto', sans-serif !important;
  font-size: 12px !important;
  font-weight: 500 !important;
  margin-bottom: 5px !important;
  display: block !important;
}

body .nhfa-form-wrap input.hs-input:not([type=checkbox]):not([type=radio]):not([type=file]),
body .nhfa-form-wrap textarea.hs-input,
body .nhfa-form-wrap select.hs-input {
  width: 100% !important;
  padding: 12px 14px !important;
  background: rgba(255,255,255,0.06) !important;
  border: 1px solid rgba(255,255,255,0.12) !important;
  border-radius: 6px !important;
  color: #ffffff !important;
  font-family: 'Roboto', sans-serif !important;
  font-size: 14px !important;
  box-shadow: none !important;
}

body .nhfa-form-wrap input.hs-input:focus,
body .nhfa-form-wrap textarea.hs-input:focus,
body .nhfa-form-wrap select.hs-input:focus {
  border-color: #DA2E22 !important;
  outline: none !important;
}

body .nhfa-form-wrap input.hs-input::placeholder { color: rgba(255,255,255,0.25) !important; }

body .nhfa-form-wrap select.hs-input option { background: #1a1a1a !important; color: #ffffff !important; }

body .nhfa-form-wrap form.hs-form p,
body .nhfa-form-wrap form.hs-form legend,
body .nhfa-form-wrap form.hs-form .hs-form-required { color: rgba(255,255,255,0.6) !important; }

body .nhfa-form-wrap .hs-submit .hs-button,
body .nhfa-form-wrap input[type=submit].hs-button {
  width: 100% !important;
  padding: 14px !important;
  background: #DA2E22 !important;
  color: #ffffff !important;
  font-family: 'Montserrat', sans-serif !important;
  font-weight: 700 !important;
  font-size: 15px !important;
  border: none !important;
  border-radius: 6px !important;
  cursor: pointer !important;
  text-transform: uppercase !important;
  letter-spacing: 0.5px !important;
}

body .nhfa-form-wrap .hs-submit .hs-button:hover { background: #c42a1f !important; }

body .nhfa-form-wrap .hs-form-booleancheckbox-display {
  display: flex !important;
  align-items: flex-start !important;
  gap: 10px !important;
  color: rgba(255,255,255,0.55) !important;
  font-size: 12px !important;
  line-height: 1.5 !important;
}

body .nhfa-form-wrap .hs-form-booleancheckbox-display span { color: rgba(255,255,255,0.55) !important; }

body .nhfa-form-wrap .hs-form-booleancheckbox-display input[type=checkbox] {
  width: 18px !important; height: 18px !important; flex-shrink: 0 !important;
  accent-color: #DA2E22 !important;
}

body .nhfa-form-wrap .hs-richtext,
body .nhfa-form-wrap .hs-richtext p,
body .nhfa-form-wrap .hs-richtext span { color: rgba(255,255,255,0.6) !important; }
body .nhfa-form-wrap .hs-richtext a { color: #DA2E22 !important; text-decoration: underline !important; }

body .nhfa-form-wrap .hs-error-msgs,
body .nhfa-form-wrap .hs-error-msg { color: #ff6b6b !important; font-size: 12px !important; }

/* Phone country selector styling */
body .nhfa-form-wrap .hs-fieldtype-intl-phone .hs-input,
body .nhfa-form-wrap .iti__selected-flag { background: rgba(255,255,255,0.06) !important; }

/* intl-tel-input country dropdown — global selectors (NOT scoped to the
   form wrapper) because the library often mounts the dropdown directly
   under <body> via dropdownContainer, so any form-scoped selector misses. */
.iti__country-list,
[class*="iti__country-list"] {
  background: #fff !important;
  color: #111 !important;
  z-index: 100000 !important;
  box-shadow: 0 8px 24px rgba(0,0,0,0.25) !important;
  border-radius: 8px !important;
  max-height: 280px !important;
  overflow-y: auto !important;
  border: 1px solid #e0e0e0 !important;
  padding: 0 !important;
}
.iti__country,
li.iti__country {
  color: #111 !important;
  background: #fff !important;
  padding: 8px 12px !important;
}
.iti__country:hover,
.iti__country.iti__highlight,
.iti__highlight {
  background: #f5f5f5 !important;
  color: #111 !important;
}
.iti__country-name { color: #111 !important; }
.iti__dial-code { color: #666 !important; }
.iti__divider { border-bottom-color: #e8e8e8 !important; }
.iti__search-input,
input.iti__search-input,
[class*="iti__search"] {
  background: #fff !important;
  color: #111 !important;
  border: 0 !important;
  border-bottom: 1px solid #e8e8e8 !important;
  padding: 10px 12px !important;
  outline: none !important;
}
