/* ============================================================
   BMS ACADEMY FOR PROFESSIONAL COURSES
   Application Form Landing Page â€” custom stylesheet
   ------------------------------------------------------------
   Colour tokens sampled from the official BMS Academy brand
   manual and matched to the main website design system.
   Layered on top of Bootstrap 4.6.

   IMPORTANT (for the No Paper Forms implementation team):
   Every custom rule in this file is namespaced with a `.bmsa-`
   class. No bare element selectors are used for form controls
   (input / select / textarea / button / label / table / form),
   so this stylesheet will NOT restyle or conflict with the
   registration form markup injected into #npf-form-container.
   ============================================================ */

/* ---------- 1. Self-hosted fonts ---------- */
@font-face { font-family: 'Inter'; font-style: normal; font-weight: 400; font-display: swap; src: url('../fonts/inter-latin-400-normal.woff2') format('woff2'); }
@font-face { font-family: 'Inter'; font-style: normal; font-weight: 600; font-display: swap; src: url('../fonts/inter-latin-600-normal.woff2') format('woff2'); }
@font-face { font-family: 'Inter'; font-style: normal; font-weight: 700; font-display: swap; src: url('../fonts/inter-latin-700-normal.woff2') format('woff2'); }
@font-face { font-family: 'Archivo'; font-style: normal; font-weight: 600; font-display: swap; src: url('../fonts/archivo-latin-600-normal.woff2') format('woff2'); }
@font-face { font-family: 'Archivo'; font-style: normal; font-weight: 700; font-display: swap; src: url('../fonts/archivo-latin-700-normal.woff2') format('woff2'); }
@font-face { font-family: 'Oswald'; font-style: normal; font-weight: 500; font-display: swap; src: url('../fonts/oswald-latin-500-normal.woff2') format('woff2'); }
@font-face { font-family: 'Oswald'; font-style: normal; font-weight: 600; font-display: swap; src: url('../fonts/oswald-latin-600-normal.woff2') format('woff2'); }

/* ---------- 2. Brand tokens ---------- */
:root {
  --bmsa-blue: #2e3092;
  --bmsa-blue-deep: #23246e;
  --bmsa-blue-darkest: #16174a;
  --bmsa-blue-medium: #016696;
  --bmsa-blue-light: #0078c0;
  --bmsa-word-blue: #005aaa;
  --bmsa-red: #ed1c24;
  --bmsa-red-dark: #c9151c;
  --bmsa-orange: #f5811f;
  --bmsa-gold: #d99722;
  --bmsa-yellow: #e9da1b;
  --bmsa-gold-light: #ffd977;
  --bmsa-gold-deep: #8a5200;      /* AA text on light gold tints */
  --bmsa-gold-tint: #fdf3e0;
  --bmsa-gold-line: #e6c377;      /* journey connector */

  --bmsa-text: #1c1f2b;
  --bmsa-text-muted: #5a6070;
  --bmsa-bg: #ffffff;
  --bmsa-bg-soft: #f5f7fb;
  --bmsa-bg-tint: #eef2fa;
  --bmsa-border: #dfe4ee;

  --bmsa-grad-hero: linear-gradient(135deg, #16174a 0%, #23246e 45%, #2e3092 100%);
  --bmsa-grad-laurel: linear-gradient(90deg, #d99722, #e9da1b);

  --bmsa-font-head: 'Archivo', 'Arial Black', Arial, Helvetica, sans-serif;
  --bmsa-font-display: 'Oswald', 'Arial Narrow', Arial, sans-serif;
  --bmsa-font-body: 'Inter', Arial, Helvetica, sans-serif;

  --bmsa-radius-sm: 6px;
  --bmsa-radius: 12px;
  --bmsa-radius-lg: 20px;
  --bmsa-shadow-sm: 0 1px 3px rgba(16, 22, 46, .08);
  --bmsa-shadow: 0 6px 20px rgba(16, 22, 46, .10);
  --bmsa-shadow-lg: 0 18px 48px rgba(16, 22, 46, .16);
  --bmsa-shadow-xl: 0 26px 70px rgba(16, 22, 46, .22);
}

/* ---------- 3. Page base (font inheritance only) ---------- */
body {
  font-family: var(--bmsa-font-body);
  font-size: 1rem;
  line-height: 1.65;
  color: var(--bmsa-text);
  background: var(--bmsa-bg);
  -webkit-font-smoothing: antialiased;
}

/* Visible keyboard focus for every interactive element that belongs to this
   page. Scoped to our own classes so the injected form keeps its own focus
   styling untouched. */
.bmsa-topbar a:focus-visible,
.bmsa-footer a:focus-visible,
.bmsa-help__value a:focus-visible,
.bmsa-hero a:focus-visible {
  outline: 2px solid var(--bmsa-gold-light);
  outline-offset: 3px;
  border-radius: 2px;
}
.bmsa-header__logo:focus-visible,
.bmsa-header__site:focus-visible,
.bmsa-formcard__foot a:focus-visible,
.bmsa-float__btn:focus-visible {
  outline: 2px solid var(--bmsa-word-blue);
  outline-offset: 3px;
  border-radius: 4px;
}

/* ---------- 4. Layout width ---------- */
/* Widens Bootstrap's container so the page uses the full screen instead of
   leaving large empty margins. Scoped to .bmsa-wrap so a plain .container
   inside the registration form is not affected. */
.bmsa-wrap {
  width: 100%;
  max-width: 1340px;
  padding-left: 26px;
  padding-right: 26px;
  margin-left: auto;
  margin-right: auto;
}
@media (max-width: 991.98px) { .bmsa-wrap { padding-left: 20px; padding-right: 20px; } }
@media (max-width: 575.98px) { .bmsa-wrap { padding-left: 15px; padding-right: 15px; } }

/* ---------- 5. Icon primitives ---------- */
.bmsa-ico { width: 20px; height: 20px; fill: currentColor; flex: 0 0 auto; display: inline-block; vertical-align: middle; }
.bmsa-ico--sm { width: 15px; height: 15px; }
.bmsa-ico--lg { width: 26px; height: 26px; }
.bmsa-ico--xl { width: 30px; height: 30px; }

/* circular icon badge */
.bmsa-iconbadge {
  display: inline-flex; align-items: center; justify-content: center;
  width: 56px; height: 56px;
  border-radius: 50%;
  background: var(--bmsa-bg-tint);
  color: var(--bmsa-blue-deep);
}
.bmsa-iconbadge--gold { background: rgba(217, 151, 34, .14); color: #8a6410; }
.bmsa-iconbadge--red { background: rgba(237, 28, 36, .09); color: var(--bmsa-red); }

/* ---------- 6. Top bar ---------- */
.bmsa-topbar {
  background: var(--bmsa-blue-darkest);
  color: rgba(255, 255, 255, .82);
  font-size: .8125rem;
  padding: 7px 0;
}
.bmsa-topbar a { color: rgba(255, 255, 255, .92); text-decoration: none; }
.bmsa-topbar a:hover { color: var(--bmsa-gold-light); text-decoration: none; }
.bmsa-topbar a .bmsa-ico { margin-right: 5px; opacity: .8; }
.bmsa-topbar__trust {
  font-family: var(--bmsa-font-display);
  letter-spacing: .10em;
  text-transform: uppercase;
  font-weight: 500;
}
.bmsa-topbar__sep { color: rgba(255, 255, 255, .3); padding: 0 10px; }

/* ---------- 7. Header ---------- */
.bmsa-header {
  background: #fff;
  border-bottom: 1px solid var(--bmsa-border);
  padding: 10px 0;
  position: sticky; top: 0; z-index: 1030;
  transition: box-shadow .2s ease;
}
.bmsa-header.is-stuck { box-shadow: var(--bmsa-shadow); }
.bmsa-header__logo img { height: 60px; width: auto; display: block; }
.bmsa-header__site {
  display: inline-flex; align-items: center;
  font-family: var(--bmsa-font-head);
  font-weight: 700; font-size: .85rem;
  color: var(--bmsa-word-blue);
  text-decoration: none;
  border-bottom: 2px solid transparent;
  padding-bottom: 2px;
}
.bmsa-header__site:hover { color: var(--bmsa-red); text-decoration: none; border-bottom-color: var(--bmsa-red); }
.bmsa-header__site .bmsa-ico { margin-left: 7px; }

@media (max-width: 767.98px) {
  .bmsa-header { padding: 8px 0; }
  .bmsa-header__logo img { height: 42px; }
}

/* ---------- 8. Headings ---------- */
.bmsa-eyebrow {
  display: inline-flex; align-items: center;
  font-family: var(--bmsa-font-head);
  font-size: .75rem; font-weight: 700;
  letter-spacing: .14em; text-transform: uppercase;
  color: var(--bmsa-red);
  background: rgba(237, 28, 36, .08);
  padding: 6px 14px;
  border-radius: 999px;
  margin-bottom: 14px;
}
.bmsa-eyebrow .bmsa-ico { margin-right: 7px; }
.bmsa-eyebrow--light {
  color: var(--bmsa-gold-light);
  background: rgba(255, 255, 255, .14);
  border: 1px solid rgba(255, 217, 119, .30);
  text-transform: none;
  letter-spacing: .02em;
  font-size: .82rem;
}

.bmsa-h1, .bmsa-h2, .bmsa-h3 {
  font-family: var(--bmsa-font-head);
  line-height: 1.15;
  letter-spacing: -.01em;
  color: var(--bmsa-blue-deep);
  margin: 0 0 16px;
}
.bmsa-h1 { font-size: 2.5rem; font-size: clamp(1.9rem, 4.2vw, 3rem); font-weight: 700; }
.bmsa-h2 { font-size: 1.95rem; font-size: clamp(1.5rem, 3vw, 2.15rem); font-weight: 700; }
.bmsa-h3 { font-size: 1.2rem; font-size: clamp(1.05rem, 2vw, 1.3rem); font-weight: 700; }
.bmsa-lead { font-size: 1.05rem; color: var(--bmsa-text-muted); margin: 0 0 20px; }

.bmsa-section { padding: 62px 0; }
.bmsa-section--soft { background: var(--bmsa-bg-soft); }
.bmsa-section--tint { background: var(--bmsa-bg-tint); }
.bmsa-section-head { text-align: center; max-width: 780px; margin: 0 auto 44px; }
.bmsa-section-head .bmsa-lead { margin-bottom: 0; }

/* ---------- 9. Hero band (compact â€” the form sits directly beneath) ---------- */
.bmsa-hero {
  position: relative;
  background: var(--bmsa-grad-hero);
  color: #fff;
  padding: 54px 0 138px;
  overflow: hidden;
  text-align: center;
}
/* laurel hairline directly under the header */
.bmsa-hero__topline {
  position: absolute; top: 0; left: 0; right: 0;
  height: 4px;
  background: var(--bmsa-grad-laurel);
  z-index: 3;
}
.bmsa-hero__bg {
  position: absolute; top: 0; right: 0; bottom: 0; left: 0;
  background-image: url('../images/students-hero.jpg');
  background-size: cover; background-position: center 38%;
  opacity: .38;
  filter: grayscale(12%);
}
/* darkening veil so headline contrast stays strong over the photo, deepening
   towards the bottom so the white form card lifts off the banner cleanly */
.bmsa-hero__veil {
  position: absolute; top: 0; right: 0; bottom: 0; left: 0;
  background:
    radial-gradient(62% 70% at 14% 18%, rgba(0, 120, 192, .24), rgba(0, 120, 192, 0) 62%),
    radial-gradient(52% 62% at 86% 8%, rgba(217, 151, 34, .16), rgba(217, 151, 34, 0) 62%),
    linear-gradient(180deg, rgba(22, 23, 74, .78) 0%, rgba(22, 23, 74, .82) 55%, rgba(16, 17, 56, .95) 100%);
}
.bmsa-hero__inner { position: relative; z-index: 2; }
/* brand line sitting directly above the headline */
.bmsa-hero__brand {
  font-family: var(--bmsa-font-head);
  font-weight: 700;
  font-size: 1.45rem;
  font-size: clamp(1.2rem, 2.2vw, 1.6rem);
  letter-spacing: .02em;
  color: var(--bmsa-gold-light);
  margin: 14px 0 4px;
  text-shadow: 0 2px 14px rgba(9, 10, 40, .5);
}
.bmsa-hero .bmsa-h1 {
  color: #fff;
  font-weight: 700;
  font-size: 3rem;
  font-size: clamp(2.15rem, 5.2vw, 3.7rem);
  letter-spacing: -.015em;
  margin: 0;
  text-shadow: 0 2px 20px rgba(9, 10, 40, .55);
}

/* gold divider between the headline and the course line */
.bmsa-hero__divider {
  display: flex; align-items: center; justify-content: center;
  max-width: 300px;
  margin: 22px auto 20px;
}
.bmsa-hero__rule { flex: 1 1 auto; height: 1px; }
.bmsa-hero__rule--l { background: linear-gradient(90deg, rgba(255, 217, 119, 0), rgba(255, 217, 119, .75)); }
.bmsa-hero__rule--r { background: linear-gradient(90deg, rgba(255, 217, 119, .75), rgba(255, 217, 119, 0)); }
.bmsa-hero__gem {
  width: 9px; height: 9px;
  margin: 0 14px;
  background: var(--bmsa-grad-laurel);
  transform: rotate(45deg);
  flex: 0 0 auto;
}

.bmsa-hero__text {
  color: rgba(255, 255, 255, .95);
  font-size: 1.08rem;
  font-size: clamp(1rem, 1.6vw, 1.13rem);
  line-height: 1.7;
  max-width: 720px;
  margin: 0 auto;
}
.bmsa-hero__text strong { color: #fff; font-weight: 600; }


@media (max-width: 575.98px) {
  .bmsa-hero { padding: 44px 0 100px; }
  .bmsa-hero__divider { max-width: 200px; margin: 18px auto 16px; }
}

/* ---------- 10. Form section (pulled up over the hero) ---------- */
.bmsa-formsec {
  background: var(--bmsa-bg-soft);
  padding: 0 0 62px;
}
.bmsa-formsec__inner { margin-top: -96px; position: relative; z-index: 5; }

.bmsa-formcard {
  background: #fff;
  width: 50%;
  margin: 0 auto;
  border: 1px solid var(--bmsa-border);
  border-radius: var(--bmsa-radius-lg);
  /* gold halo + deep shadow: the card is the one bright object on the page */
  box-shadow: 0 0 0 5px rgba(217, 151, 34, .28), var(--bmsa-shadow-xl);
  overflow: hidden;
}
.bmsa-formcard__head {
  background: var(--bmsa-blue-deep);
  color: #fff;
  padding: 18px 30px;
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between;
  border-bottom: 4px solid transparent;
  border-image: var(--bmsa-grad-laurel) 1;
}
.bmsa-formcard__titlewrap { display: flex; flex-wrap: wrap; align-items: center; }
.bmsa-formcard__titlewrap .bmsa-ico { margin-right: 12px; color: var(--bmsa-gold-light); }
.bmsa-formcard__step {
  font-family: var(--bmsa-font-display);
  font-size: .72rem; font-weight: 600;
  letter-spacing: .14em; text-transform: uppercase;
  color: #3d2a00;
  background: var(--bmsa-grad-laurel);
  border-radius: 999px;
  padding: 4px 12px;
  margin-right: 14px;
  white-space: nowrap;
}
.bmsa-formcard__title {
  font-family: var(--bmsa-font-head);
  font-weight: 700; font-size: 1.32rem;
  color: #fff; margin: 0 16px 0 0;
}
.bmsa-formcard__note { font-size: .82rem; color: rgba(255, 255, 255, .85); margin: 0; }
.bmsa-formcard__body { padding: 28px 34px 36px; }
@media (min-width: 1200px) { .bmsa-formcard__body { padding: 32px 44px 40px; } }

/* Container the No Paper Forms registration form is injected into.
   Deliberately free of typography and control styling. */
#npf-form-container { min-height: 220px; }

.bmsa-formcard__placeholder {
  border: 2px dashed var(--bmsa-border);
  border-radius: var(--bmsa-radius);
  padding: 46px 24px;
  text-align: center;
  color: var(--bmsa-text-muted);
  background: var(--bmsa-bg-soft);
}
.bmsa-formcard__placeholder strong { color: var(--bmsa-blue-deep); font-family: var(--bmsa-font-head); }

.bmsa-formcard__foot {
  border-top: 1px solid var(--bmsa-border);
  background: var(--bmsa-bg-soft);
  padding: 16px 30px;
  font-size: .84rem;
  color: var(--bmsa-text-muted);
  display: flex; align-items: flex-start;
}
.bmsa-formcard__foot span { min-width: 0; overflow-wrap: break-word; word-wrap: break-word; }
.bmsa-formcard__foot .bmsa-ico { color: var(--bmsa-orange); margin: 3px 12px 0 0; }
.bmsa-formcard__foot a { color: var(--bmsa-word-blue); font-weight: 600; overflow-wrap: break-word; word-wrap: break-word; }

@media (max-width: 575.98px) {
  .bmsa-formsec__inner { margin-top: -80px; }
  .bmsa-formcard__head, .bmsa-formcard__body, .bmsa-formcard__foot { padding-left: 18px; padding-right: 18px; }
  .bmsa-formcard__step { margin-bottom: 8px; }
  .bmsa-formcard__title { font-size: 1.15rem; }
}

/* ---------- 11. Stats band ---------- */
.bmsa-statsband { background: #fff; border-bottom: 1px solid var(--bmsa-border); padding: 40px 0; }
.bmsa-stat { text-align: center; padding: 8px 4px; }
.bmsa-stat .bmsa-iconbadge { margin-bottom: 10px; }
.bmsa-stat__n {
  font-family: var(--bmsa-font-display);
  font-size: 1.9rem;
  font-size: clamp(1.5rem, 3vw, 2.1rem);
  font-weight: 600;
  color: var(--bmsa-blue-deep);
  line-height: 1.1;
}
.bmsa-stat__l {
  font-size: .78rem; letter-spacing: .08em; text-transform: uppercase;
  color: #4d5468;
}

/* ---------- 12. Courses grid ---------- */
.bmsa-courses { list-style: none; margin: 0; padding: 0; }
.bmsa-course {
  display: flex; align-items: center;
  background: #fff;
  border: 1px solid var(--bmsa-border);
  border-radius: var(--bmsa-radius);
  padding: 16px 18px;
  height: 100%;
  box-shadow: var(--bmsa-shadow-sm);
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.bmsa-course:hover { transform: translateY(-3px); box-shadow: var(--bmsa-shadow); border-color: #c9d3e8; }
.bmsa-course__ico {
  display: inline-flex; align-items: center; justify-content: center;
  width: 46px; height: 46px; flex: 0 0 46px;
  border-radius: 12px;
  background: var(--bmsa-bg-tint);
  color: var(--bmsa-blue);
  margin-right: 14px;
}
.bmsa-course__name {
  font-family: var(--bmsa-font-head);
  font-weight: 700; font-size: .95rem;
  color: var(--bmsa-blue-deep);
  line-height: 1.25;
  margin: 0;
}
.bmsa-course__meta { font-size: .78rem; color: var(--bmsa-text-muted); margin: 2px 0 0; }

/* ---------- 13. Journey ----------
   Drawn as one continuous path: a laurel-gold dashed trail with arrowheads
   pointing forward. Step 1 is filled gold ("start here"), steps 2â€“3 are
   outlined, step 4 is filled navy (the goal). Timing chips sit beneath. */
.bmsa-journey { list-style: none; margin: 0; padding: 0; }
.bmsa-journey__item { position: relative; margin-bottom: 34px; }

.bmsa-journey__marker {
  position: relative;
  display: inline-flex; align-items: center; justify-content: center;
  width: 74px; height: 74px;
  border-radius: 50%;
  background: #fff;
  border: 3px solid var(--bmsa-blue-deep);
  color: var(--bmsa-blue-deep);
  box-shadow: 0 6px 18px rgba(35, 36, 110, .16);
  z-index: 2;
}
/* step 1 â€” where the reader is right now */
.bmsa-journey__item--start .bmsa-journey__marker {
  background: var(--bmsa-grad-laurel);
  border-color: var(--bmsa-gold);
  color: #3d2a00;
}
/* step 4 â€” the destination */
.bmsa-journey__item--goal .bmsa-journey__marker {
  background: var(--bmsa-blue-deep);
  color: var(--bmsa-gold-light);
}
.bmsa-journey__num {
  position: absolute; right: -6px; bottom: -4px;
  font-family: var(--bmsa-font-display);
  font-size: .72rem; font-weight: 600;
  width: 26px; height: 26px;
  border-radius: 50%;
  background: var(--bmsa-blue-deep);
  color: #fff;
  display: flex; align-items: center; justify-content: center;
  border: 2px solid #fff;
}
.bmsa-journey__item--start .bmsa-journey__num,
.bmsa-journey__item--goal .bmsa-journey__num {
  background: var(--bmsa-grad-laurel);
  color: #3d2a00;
}
.bmsa-journey__item h3 {
  font-family: var(--bmsa-font-head);
  font-size: 1.02rem; font-weight: 700;
  color: var(--bmsa-blue-deep);
  margin: 16px 0 6px;
}
.bmsa-journey__item p { font-size: .92rem; color: var(--bmsa-text-muted); margin: 0; }
/* timing chip â€” dark gold on a light gold tint for AA contrast */
.bmsa-journey__flag {
  display: inline-block;
  font-family: var(--bmsa-font-display);
  font-size: .7rem; font-weight: 600;
  letter-spacing: .1em; text-transform: uppercase;
  color: var(--bmsa-gold-deep);
  background: var(--bmsa-gold-tint);
  border: 1px solid #f0dcae;
  border-radius: 999px;
  padding: 4px 12px;
  margin-top: 10px;
}

/* Desktop â€” horizontal path with arrowhead connectors */
@media (min-width: 992px) {
  .bmsa-journey__item { text-align: center; margin-bottom: 0; padding: 0 12px; }
  .bmsa-journey__item::before {
    content: "";
    position: absolute;
    top: 36px; left: -50%; width: calc(100% - 22px);
    border-top: 3px dashed var(--bmsa-gold-line);
    z-index: 1;
  }
  /* arrowhead where the trail meets the next marker */
  .bmsa-journey__item::after {
    content: "";
    position: absolute;
    top: 30px; left: calc(50% - 60px);
    border-top: 8px solid transparent;
    border-bottom: 8px solid transparent;
    border-left: 11px solid var(--bmsa-gold);
    z-index: 1;
  }
  .bmsa-journey__item:first-child::before,
  .bmsa-journey__item:first-child::after { display: none; }
}

/* Mobile / tablet â€” vertical trail */
@media (max-width: 991.98px) {
  .bmsa-journey__item { padding-left: 96px; min-height: 90px; }
  .bmsa-journey__marker { position: absolute; left: 0; top: 0; width: 64px; height: 64px; }
  .bmsa-journey__item::before {
    content: "";
    position: absolute;
    left: 31px; top: 70px; bottom: -22px;
    border-left: 3px dashed var(--bmsa-gold-line);
  }
  /* arrowhead pointing down towards the next milestone */
  .bmsa-journey__item::after {
    content: "";
    position: absolute;
    left: 25px; bottom: -24px;
    border-left: 8px solid transparent;
    border-right: 8px solid transparent;
    border-top: 11px solid var(--bmsa-gold);
  }
  .bmsa-journey__item:last-child::before,
  .bmsa-journey__item:last-child::after { display: none; }
  .bmsa-journey__item h3 { margin-top: 4px; }
}

/* ---------- 14. Why cards ---------- */
.bmsa-card {
  position: relative;
  background: #fff;
  border: 1px solid var(--bmsa-border);
  border-radius: var(--bmsa-radius);
  overflow: hidden;
  height: 100%;
  box-shadow: var(--bmsa-shadow-sm);
  transition: transform .18s ease, box-shadow .18s ease;
}
.bmsa-card:hover { transform: translateY(-3px); box-shadow: var(--bmsa-shadow); }
.bmsa-card__media { position: relative; }
.bmsa-card__img { width: 100%; height: 200px; object-fit: cover; display: block; }
.bmsa-card__badge {
  position: absolute; left: 18px; bottom: -22px;
  width: 46px; height: 46px;
  border-radius: 12px;
  background: var(--bmsa-blue-deep);
  color: #fff;
  display: flex; align-items: center; justify-content: center;
  box-shadow: var(--bmsa-shadow);
}
.bmsa-card__body { padding: 34px 22px 22px; }
.bmsa-card__body h3 { font-family: var(--bmsa-font-head); font-size: 1.06rem; font-weight: 700; color: var(--bmsa-blue-deep); margin: 0 0 8px; }
.bmsa-card__body p { font-size: .93rem; color: var(--bmsa-text-muted); margin: 0; }

/* ---------- 15. Help strip ---------- */
.bmsa-help { background: var(--bmsa-grad-hero); color: #fff; padding: 54px 0; position: relative; overflow: hidden; }
.bmsa-help .bmsa-h2 { color: #fff; }
.bmsa-help__hours { color: rgba(255, 255, 255, .85); margin-bottom: 0; }
.bmsa-help__item { display: flex; align-items: flex-start; margin-bottom: 22px; }
.bmsa-help__ico {
  display: inline-flex; align-items: center; justify-content: center;
  width: 42px; height: 42px; flex: 0 0 42px;
  border-radius: 12px;
  background: rgba(255, 255, 255, .12);
  color: var(--bmsa-gold-light);
  margin-right: 14px;
}
.bmsa-help__label {
  font-family: var(--bmsa-font-display);
  font-size: .76rem; letter-spacing: .12em; text-transform: uppercase;
  color: var(--bmsa-gold-light); margin: 0 0 3px;
}
.bmsa-help__item > div { min-width: 0; }
.bmsa-help__value { font-size: 1rem; color: #fff; margin: 0; line-height: 1.55; overflow-wrap: break-word; word-wrap: break-word; }
.bmsa-help__value a { color: #fff; text-decoration: none; }
.bmsa-help__value a:hover { color: var(--bmsa-gold-light); text-decoration: underline; }

/* ---------- 16. Footer ---------- */
.bmsa-footer { background: #101132; color: rgba(255, 255, 255, .75); padding: 46px 0 24px; font-size: .9rem; }
.bmsa-footer__logo { height: 62px; width: auto; margin-bottom: 16px; background: #fff; padding: 8px 12px; border-radius: var(--bmsa-radius-sm); }
.bmsa-footer a { color: rgba(255, 255, 255, .85); text-decoration: none; }
.bmsa-footer a:hover { color: var(--bmsa-gold-light); text-decoration: underline; }
.bmsa-footer h3 { font-family: var(--bmsa-font-head); font-size: .95rem; font-weight: 700; color: #fff; margin: 0 0 14px; }
.bmsa-footer__list { list-style: none; margin: 0; padding: 0; }
.bmsa-footer__list li { margin-bottom: 8px; display: flex; align-items: flex-start; min-width: 0; }
.bmsa-footer__list li a { overflow-wrap: break-word; word-wrap: break-word; min-width: 0; }
.bmsa-footer__list .bmsa-ico { color: var(--bmsa-gold); margin: 4px 10px 0 0; opacity: .9; }
.bmsa-footer__addr { margin: 16px 0 0; font-size: .86rem; color: rgba(255, 255, 255, .62); line-height: 1.6; }
.bmsa-footer__bottom {
  border-top: 1px solid rgba(255, 255, 255, .12);
  margin-top: 30px; padding-top: 18px;
  font-size: .82rem;
  display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center;
}
.bmsa-footer__bottom > * { margin: 4px 0; }

/* ---------- 17. Floating actions ---------- */
.bmsa-float { position: fixed; right: 16px; bottom: 88px; z-index: 1050; display: flex; flex-direction: column; }
.bmsa-float__btn + .bmsa-float__btn { margin-top: 10px; }
.bmsa-float__btn {
  width: 50px; height: 50px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  box-shadow: var(--bmsa-shadow);
  color: #fff;
}
.bmsa-float__btn:hover { color: #fff; transform: translateY(-2px); }
.bmsa-float__btn .bmsa-ico { width: 24px; height: 24px; }
.bmsa-float__btn--call { background: var(--bmsa-blue-deep); }
.bmsa-float__btn--wa { background: #25d366; }

/* ---------- 18. Reveal animation ---------- */
.bmsa-reveal { opacity: 0; transform: translateY(16px); transition: opacity .5s ease, transform .5s ease; }
.bmsa-reveal.is-visible { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  .bmsa-reveal { opacity: 1; transform: none; transition: none; }
  .bmsa-card:hover, .bmsa-course:hover, .bmsa-float__btn:hover { transform: none; }
}


@media (max-width: 767px) {
 .bmsa-formcard{
   width:100%;
 }
}