/* ==========================================================================
   Bussinesstan site chrome — header, mega panel, mobile drawer.
   Re-implementation of the SiteHeader / MegaPanel design-canvas components.
   All values are tokens from design-system.css where one exists.
   ========================================================================== */

@keyframes bsTicker { from { transform: translateX(0) } to { transform: translateX(-50%) } }
@keyframes bsPulse  { 0% { transform: scale(1); opacity: 1 } 50% { transform: scale(1.55); opacity: .45 } 100% { transform: scale(1); opacity: 1 } }
@keyframes bsPanelIn { from { opacity: 0; transform: translateY(-6px) } to { opacity: 1; transform: translateY(0) } }
@keyframes bsScrimIn { from { opacity: 0 } to { opacity: 1 } }

.bs-header{position:sticky;top:0;z-index:var(--layer-dropdown);font-family:var(--font-system);color:var(--navy)}
.bs-header *,.bs-header *::before,.bs-header *::after{box-sizing:border-box}

/* ---------- Utility strip ---------- */
.bs-strip{background:var(--navy);overflow:hidden;height:34px;opacity:1;
  transition:height var(--dur-header) var(--ease-standard),opacity var(--dur-header) var(--ease-standard)}
.bs-header.is-scrolled .bs-strip,.bs-header.is-stripless .bs-strip{height:0;opacity:0}
.bs-strip__inner{max-width:var(--container-max);margin:0 auto;padding:0 24px;height:34px;display:flex;align-items:center;gap:24px}
.bs-strip__status{display:flex;align-items:center;gap:8px;flex-shrink:0}
.bs-strip__dot{width:6px;height:6px;border-radius:var(--radius-pill);background:var(--blue);animation:bsPulse 2.4s ease-in-out infinite}
.bs-strip__label{font-size:10px;font-weight:var(--fw-bold);letter-spacing:.16em;text-transform:uppercase;color:rgba(235,245,255,.78)}
.bs-strip__email{flex-shrink:0;font-size:10.5px;letter-spacing:.04em;color:rgba(235,245,255,.8);text-decoration:none}
.bs-strip__email:hover{color:var(--white)}

.bs-ticker{flex:1;min-width:0;overflow:hidden;
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 10%,#000 90%,transparent 100%);
  mask-image:linear-gradient(90deg,transparent 0,#000 10%,#000 90%,transparent 100%)}
.bs-ticker__run{display:inline-flex;width:max-content;gap:16px;animation:bsTicker var(--bs-ticker-seconds,46s) linear infinite}
.bs-ticker__item{display:inline-flex;align-items:center;gap:6px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
  font-size:10.5px;letter-spacing:.04em;color:rgba(235,245,255,.74);white-space:nowrap}
.bs-ticker__arrow{color:var(--gold)}
.bs-ticker__sep{color:rgba(235,245,255,.32);padding-left:6px}

/* ---------- Primary bar ---------- */
.bs-bar{background:var(--white);border-bottom:1px solid var(--border);height:72px;
  transition:height var(--dur-header) var(--ease-standard),box-shadow var(--dur-header) var(--ease-standard)}
.bs-header.is-scrolled .bs-bar{height:60px;box-shadow:0 6px 20px rgba(12,22,61,.08)}
.bs-bar__inner{max-width:var(--container-max);margin:0 auto;padding:0 24px;height:100%;display:flex;align-items:center;gap:20px}
.bs-logo{display:flex;align-items:center;flex-shrink:0}
.bs-logo img{height:28px;width:auto;display:block}
.bs-bar__actions{display:flex;align-items:center;gap:12px;margin-left:auto;flex-shrink:0}

/* ---------- Desktop nav ---------- */
.bs-nav{display:flex;align-items:stretch;flex:1;height:100%;margin-left:8px}
.bs-nav__btn{position:relative;display:flex;align-items:center;gap:5px;height:100%;padding:0 10px;
  border:none;background:none;cursor:pointer;font-family:var(--font-system);font-size:15px;font-weight:500;
  white-space:nowrap;color:var(--slate);transition:color var(--dur-interactive) var(--ease-standard)}
.bs-nav__btn:hover,.bs-nav__btn[aria-expanded="true"]{color:var(--navy)}
.bs-nav__chev{display:block;opacity:.7;transition:transform var(--dur-interactive) var(--ease-standard)}
.bs-nav__btn[aria-expanded="true"] .bs-nav__chev{transform:rotate(180deg)}
.bs-nav__ul{position:absolute;left:10px;right:10px;bottom:0;height:2px;background:var(--blue);
  transform-origin:left;transform:scaleX(0);transition:transform var(--dur-interactive) var(--ease-standard)}
.bs-nav__btn:hover .bs-nav__ul,.bs-nav__btn[aria-expanded="true"] .bs-nav__ul{transform:scaleX(1)}

/* ---------- Header CTA ---------- */
.bs-cta{display:inline-flex;align-items:center;justify-content:center;height:40px;padding:0 18px;
  border-radius:var(--radius-button);background:var(--cta);color:var(--cta-text);font-size:14.5px;
  font-weight:var(--fw-bold);text-decoration:none;white-space:nowrap;transition:var(--transition-interactive)}
.bs-cta:hover{background:var(--cta-hover);color:var(--cta-text)}

/* ---------- Burger ---------- */
.bs-burger{width:44px;height:44px;display:none;flex-direction:column;align-items:center;justify-content:center;gap:5px;
  background:none;border:1px solid var(--border);border-radius:var(--radius-button);cursor:pointer}
.bs-burger span{display:block;width:18px;height:2px;background:var(--navy)}

/* ---------- Mega panel shell ---------- */
.bs-panel{position:absolute;top:100%;left:0;right:0;z-index:2;background:var(--white);
  border-top:1px solid var(--border);box-shadow:0 28px 48px rgba(12,22,61,.16);
  animation:bsPanelIn 150ms var(--ease-standard) both}
.bs-scrim{position:absolute;top:100%;left:0;right:0;height:100vh;z-index:1;
  background:rgba(12,22,61,.22);animation:bsScrimIn 150ms ease-out both}
.bs-panel[hidden],.bs-scrim[hidden]{display:none}

.bs-panel__grid{display:grid;grid-template-columns:268px minmax(0,1fr);max-width:var(--container-max);
  margin:0 auto;padding:30px 24px 34px}

/* Rail */
.bs-rail{display:flex;flex-direction:column;border-right:1px solid var(--border);padding-right:28px;min-height:392px}
.bs-rail__eyebrow{font-size:10px;font-weight:var(--fw-bold);letter-spacing:.14em;text-transform:uppercase;color:var(--blue)}
.bs-rail__name{font-size:24px;font-weight:var(--fw-bold);line-height:30px;letter-spacing:var(--tracking-tight);color:var(--navy);margin:10px 0}
.bs-rail__text{font-size:13.5px;line-height:20px;color:var(--slate);margin:0;text-wrap:pretty}
.bs-rail__all{display:inline-block;margin-top:16px;font-size:13px;font-weight:var(--fw-bold);color:var(--blue);text-decoration:none;align-self:flex-start}
.bs-rail__all-rule{display:block;height:2px;background:var(--blue);width:20px;margin-top:5px;
  transition:width var(--dur-interactive) var(--ease-standard)}
.bs-rail__all:hover .bs-rail__all-rule,.bs-rail__all:focus-visible .bs-rail__all-rule{width:100%}

/* Spotlight */
.bs-spot{position:relative;overflow:hidden;display:block;margin-top:auto;background:var(--navy);
  border-radius:var(--radius-sm);padding:16px 16px 18px;text-decoration:none;
  box-shadow:0 6px 14px rgba(12,22,61,.12);
  transition:transform var(--dur-interactive) var(--ease-standard),box-shadow var(--dur-interactive) var(--ease-standard)}
.bs-spot:hover,.bs-spot:focus-visible{transform:translateY(-3px);box-shadow:0 16px 32px rgba(12,22,61,.24)}
.bs-spot__label{font-size:9.5px;font-weight:var(--fw-bold);letter-spacing:.16em;text-transform:uppercase;color:var(--gold)}
.bs-spot__headline{font-size:15.5px;font-weight:var(--fw-bold);line-height:21px;color:var(--white);margin:8px 0 6px}
.bs-spot__line{font-size:12px;line-height:17px;color:rgba(235,245,255,.66)}
.bs-spot__more{display:flex;align-items:center;gap:6px;margin-top:12px;font-size:12px;font-weight:var(--fw-bold);color:var(--teal)}
.bs-spot__arrow{display:inline-block;transition:transform var(--dur-interactive) var(--ease-standard)}
.bs-spot:hover .bs-spot__arrow{transform:translateX(4px)}
.bs-spot__rule{position:absolute;left:0;bottom:0;height:2px;background:linear-gradient(90deg,var(--blue),var(--teal));
  width:34%;transition:width var(--dur-interactive) var(--ease-standard)}
.bs-spot:hover .bs-spot__rule,.bs-spot:focus-visible .bs-spot__rule{width:100%}

/* Service columns */
.bs-panel__body{padding-left:32px;min-width:0}
.bs-group{margin-bottom:22px}
.bs-group__name{font-size:11px;font-weight:var(--fw-bold);letter-spacing:.1em;text-transform:uppercase;color:var(--slate);
  padding-bottom:7px;border-bottom:1px solid var(--border);margin-bottom:10px}
.bs-group__items{display:grid;grid-template-columns:repeat(auto-fit,minmax(262px,1fr));gap:2px 10px}

.bs-svc{position:relative;display:grid;grid-template-columns:34px minmax(0,1fr);column-gap:12px;align-items:start;
  padding:10px 26px 11px 12px;border-radius:var(--radius-button);text-decoration:none;overflow:hidden;
  background-image:linear-gradient(90deg,#E1EDFF 0%,#EBF5FF 34%,rgba(235,245,255,.55) 41%,rgba(235,245,255,0) 43.4%,rgba(235,245,255,0) 100%);
  background-size:230% 100%;background-repeat:no-repeat;background-position:100% 0;
  transition:background-position 500ms ease-in-out,transform var(--dur-interactive) var(--ease-standard),box-shadow var(--dur-interactive) var(--ease-standard)}
.bs-svc:hover,.bs-svc:focus-visible{background-position:0 0;transform:translateX(5px);box-shadow:0 12px 26px rgba(12,22,61,.10)}
.bs-svc__rail{position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--blue);transform-origin:top;
  transform:scaleY(0);transition:transform var(--dur-interactive) var(--ease-standard) 50ms}
.bs-svc:hover .bs-svc__rail,.bs-svc:focus-visible .bs-svc__rail{transform:scaleY(1)}
.bs-svc__tile{width:34px;height:34px;border-radius:var(--radius-button);border:1px solid var(--border);
  background:var(--white);color:var(--blue);display:flex;align-items:center;justify-content:center;
  transition:transform var(--dur-interactive) var(--ease-standard),background var(--dur-interactive) var(--ease-standard),border-color var(--dur-interactive) var(--ease-standard),box-shadow var(--dur-interactive) var(--ease-standard),color var(--dur-interactive) var(--ease-standard)}
.bs-svc:hover .bs-svc__tile,.bs-svc:focus-visible .bs-svc__tile{border-color:var(--blue);background:var(--blue);color:var(--white);
  transform:translateY(-3px) rotate(-6deg) scale(1.06);box-shadow:0 8px 18px rgba(49,92,253,.34)}
.bs-svc__icon{display:flex;transition:transform var(--dur-interactive) var(--ease-standard)}
.bs-svc:hover .bs-svc__icon{transform:rotate(6deg)}
.bs-svc__text{min-width:0}
.bs-svc__name{display:block;font-size:14px;font-weight:var(--fw-semibold);line-height:19px;color:var(--navy)}
.bs-svc__underline{display:block;height:1px;background:rgba(49,92,253,.55);width:0;transition:width var(--dur-interactive) var(--ease-standard)}
.bs-svc:hover .bs-svc__underline,.bs-svc:focus-visible .bs-svc__underline{width:100%}
.bs-svc__desc{display:block;font-size:12.5px;line-height:17px;margin-top:3px;color:var(--slate);
  transition:color var(--dur-interactive) var(--ease-standard),transform var(--dur-interactive) var(--ease-standard)}
.bs-svc:hover .bs-svc__desc{color:var(--navy);transform:translateX(2px)}
.bs-svc__arrow{position:absolute;right:10px;top:12px;font-size:14px;color:var(--blue);opacity:0;transform:translateX(-7px);
  transition:opacity var(--dur-interactive) var(--ease-standard),transform var(--dur-interactive) var(--ease-standard)}
.bs-svc:hover .bs-svc__arrow,.bs-svc:focus-visible .bs-svc__arrow{opacity:1;transform:translateX(0)}

/* Resources link columns */
.bs-linkcols{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:32px}
.bs-linkcol__name{font-size:11px;font-weight:var(--fw-bold);letter-spacing:.1em;text-transform:uppercase;color:var(--slate);
  padding-bottom:7px;border-bottom:1px solid var(--border);margin-bottom:8px}
.bs-link{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:var(--radius-button);
  text-decoration:none;overflow:hidden;
  background-image:linear-gradient(90deg,#E1EDFF 0%,#EBF5FF 34%,rgba(235,245,255,.55) 41%,rgba(235,245,255,0) 43.4%,rgba(235,245,255,0) 100%);
  background-size:230% 100%;background-repeat:no-repeat;background-position:100% 0;
  transition:background-position 500ms ease-in-out,transform var(--dur-interactive) var(--ease-standard)}
.bs-link:hover,.bs-link:focus-visible{background-position:0 0;transform:translateX(5px)}
.bs-link__icon{display:flex;color:var(--slate);transition:transform var(--dur-interactive) var(--ease-standard),color var(--dur-interactive) var(--ease-standard)}
.bs-link:hover .bs-link__icon{color:var(--blue);transform:rotate(-8deg) scale(1.12)}
.bs-link__label{font-size:14px;font-weight:var(--fw-semibold);color:var(--navy);transition:color var(--dur-interactive) var(--ease-standard)}
.bs-link:hover .bs-link__label{color:var(--blue)}

/* ---------- Mobile drawer ---------- */
.bs-drawer{position:fixed;inset:0;z-index:var(--layer-modal);background:var(--white);display:flex;flex-direction:column}
.bs-drawer[hidden]{display:none}
.bs-drawer__head{height:72px;flex-shrink:0;display:flex;align-items:center;justify-content:space-between;
  padding:0 20px;border-bottom:1px solid var(--border)}
.bs-drawer__head img{height:26px;width:auto;display:block}
.bs-drawer__close{width:44px;height:44px;background:none;border:1px solid var(--border);border-radius:var(--radius-button);
  font-size:20px;line-height:1;color:var(--navy);cursor:pointer}
.bs-drawer__body{flex:1;overflow:auto;padding:4px 0 8px}
.bs-drawer__row{border-bottom:1px solid var(--border)}
.bs-drawer__toggle{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:56px;
  padding:0 20px;border:none;background:none;cursor:pointer;font-family:var(--font-system);font-size:16px;
  font-weight:var(--fw-semibold);color:var(--navy)}
.bs-drawer__chev{opacity:.6;transition:transform var(--dur-interactive) var(--ease-standard)}
.bs-drawer__toggle[aria-expanded="true"] .bs-drawer__chev{transform:rotate(180deg)}
.bs-drawer__panel{overflow:hidden;max-height:0;transition:max-height 150ms var(--ease-standard)}
.bs-drawer__row.is-open .bs-drawer__panel{max-height:1600px}
.bs-drawer__inner{padding:2px 20px 16px}
.bs-drawer__group{margin-bottom:12px}
.bs-drawer__group-name{font-size:11px;font-weight:var(--fw-bold);letter-spacing:.1em;text-transform:uppercase;
  color:var(--slate);padding-bottom:6px;border-bottom:1px solid var(--border);margin-bottom:4px}
.bs-drawer__link{display:flex;align-items:center;min-height:44px;font-size:14.5px;font-weight:500;color:var(--navy);text-decoration:none}
.bs-drawer__link:hover{color:var(--blue)}
.bs-drawer__foot{flex-shrink:0;padding:14px 20px 20px;border-top:1px solid var(--border);box-shadow:0 -8px 20px rgba(12,22,61,.06)}
.bs-drawer__cta{display:flex;align-items:center;justify-content:center;height:48px;border-radius:var(--radius-button);
  background:var(--blue);color:var(--white);font-size:15px;font-weight:var(--fw-bold);text-decoration:none}
.bs-drawer__cta:hover{background:var(--blue-hover);color:var(--white)}

/* ---------- Breakpoint: nav collapses to drawer below 940px ---------- */
@media (max-width:939px){
  .bs-nav{display:none}
  .bs-burger{display:flex}
  .bs-panel,.bs-scrim{display:none}
}
@media (min-width:940px){
  .bs-drawer{display:none}
}

/* Body scroll lock while the drawer is open */
body.bs-drawer-open{overflow:hidden}

@media (prefers-reduced-motion:reduce){
  .bs-ticker__run,.bs-strip__dot{animation:none}
}

/* ==========================================================================
   Small-screen corrections.

   The source design renders the full wordmark (239px at 28px tall) next to the
   full 182px CTA and the burger below 940px, which overflows any viewport
   narrower than ~530px. The design system ships an icon-only mark for exactly
   this case, so the wordmark swaps to it and the CTA tightens. The CTA stays
   visible rather than being hidden — booking a growth audit is the site's
   single conversion goal and should not be buried behind the menu.

   Selectors are written as `.bs-logo img.bs-logo__*` so they outrank the
   `.bs-logo img` base rule above.
   ========================================================================== */

.bs-logo img.bs-logo__icon{display:none}

@media (max-width:600px){
  .bs-logo img.bs-logo__full{display:none}
  .bs-logo img.bs-logo__icon{display:block;height:30px;width:auto}
  .bs-bar__inner{padding:0 16px;gap:12px}
  .bs-strip__inner{padding:0 16px;gap:14px}
  .bs-cta{height:38px;padding:0 13px;font-size:13.5px}
  .bs-burger{width:40px;height:40px}
}

/* Below ~400px even the tightened row is snug: drop the strip email, which the
   footer repeats, before touching the logo or the CTA. */
@media (max-width:400px){
  .bs-strip__email{display:none}
  .bs-cta{padding:0 11px;font-size:13px}
}

/* ==========================================================================
   Site footer — re-implementation of SiteFooter.dc.html
   ========================================================================== */

.bs-footer{font-family:var(--font-system)}
.bs-footer a{text-decoration:none}

/* ---- Conversion band ---- */
.bs-footer__cta{background:var(--blue)}
.bs-footer__cta-inner{max-width:var(--content-width);margin:0 auto;padding:44px 24px;display:flex;align-items:center;gap:40px;flex-wrap:wrap}
.bs-footer__cta-copy{flex:1;min-width:280px}
.bs-footer__cta-head{font-family:var(--font-display);font-weight:var(--fw-semibold);font-size:34px;line-height:42px;
  letter-spacing:var(--tracking-tight);color:var(--white);text-wrap:pretty}
.bs-footer__cta-sub{font-size:15px;line-height:23px;color:rgba(255,255,255,.8);margin:12px 0 0}
.bs-footer__cta-btn{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;height:52px;padding:0 24px;
  border-radius:var(--radius-button);white-space:nowrap;font-size:16px;font-weight:var(--fw-bold);
  background:var(--white);color:var(--navy);
  transition:background var(--dur-interactive) var(--ease-standard),color var(--dur-interactive) var(--ease-standard)}
.bs-footer__cta-btn:hover,.bs-footer__cta-btn:focus-visible{background:var(--navy);color:var(--white)}

/* ---- Link grid ---- */
.bs-footer__links{background:var(--navy)}
.bs-footer__links-inner{max-width:var(--content-width);margin:0 auto;padding:80px 24px}
.bs-footer__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(214px,1fr));gap:44px 28px}
.bs-footer__block{margin-bottom:24px}
.bs-footer__block:last-child{margin-bottom:0}
.bs-footer__block-name{font-size:12px;font-weight:var(--fw-bold);letter-spacing:.06em;text-transform:uppercase;color:var(--white)}
.bs-footer__rule{width:24px;height:2px;background:var(--blue);margin:8px 0 14px}
.bs-footer__list{display:flex;flex-direction:column;gap:9px}
.bs-footer__link{font-size:13.5px;line-height:19px;color:rgba(235,245,255,.68);
  transition:color var(--dur-interactive) var(--ease-standard),transform var(--dur-interactive) var(--ease-standard)}
.bs-footer__link:hover,.bs-footer__link:focus-visible{color:var(--white);transform:translateX(3px)}

/* ---- Accordion (narrow) ---- */
.bs-footer__accordion{display:none}
.bs-facc__row{border-bottom:1px solid rgba(235,245,255,.16)}
.bs-facc__toggle{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:52px;padding:0;
  border:none;background:none;cursor:pointer;font-family:var(--font-system);font-size:12px;font-weight:var(--fw-bold);
  letter-spacing:.06em;text-transform:uppercase;color:var(--white)}
.bs-facc__chev{opacity:.7;transition:transform var(--dur-interactive) var(--ease-standard)}
.bs-facc__toggle[aria-expanded="true"] .bs-facc__chev{transform:rotate(180deg)}
.bs-facc__panel{overflow:hidden;max-height:0;transition:max-height 150ms var(--ease-standard)}
.bs-facc__row.is-open .bs-facc__panel{max-height:900px}
.bs-facc__list{display:flex;flex-direction:column;gap:2px;padding:0 0 14px}
.bs-facc__link{display:flex;align-items:center;min-height:44px;font-size:14px;color:rgba(235,245,255,.72)}
.bs-facc__link:hover{color:var(--white)}

@media (max-width:699px){
  .bs-footer__grid{display:none}
  .bs-footer__accordion{display:block}
  .bs-footer__links-inner{padding:48px 24px}
  .bs-footer__cta-head{font-size:27px;line-height:34px}
}

/* ---- Base bar ---- */
.bs-footer__base{background:var(--navy);border-top:1px solid rgba(235,245,255,.16)}
.bs-footer__base-inner{max-width:var(--content-width);margin:0 auto;padding:32px 24px;display:flex;align-items:center;
  justify-content:space-between;gap:32px;flex-wrap:wrap}
.bs-footer__base img{height:26px;width:auto;display:block}
.bs-footer__tagline{font-size:13.5px;line-height:20px;color:rgba(235,245,255,.66);margin-top:12px}
.bs-footer__contact{display:flex;align-items:center;gap:20px;flex-wrap:wrap}
.bs-footer__email{font-size:13.5px;font-weight:var(--fw-semibold);color:var(--white)}
.bs-footer__socials{display:flex;align-items:center;gap:10px}
.bs-footer__social{width:36px;height:36px;border-radius:var(--radius-pill);display:flex;align-items:center;justify-content:center;
  border:1px solid rgba(235,245,255,.28);background:transparent;color:rgba(235,245,255,.8);
  transition:background var(--dur-interactive) var(--ease-standard),border-color var(--dur-interactive) var(--ease-standard),color var(--dur-interactive) var(--ease-standard)}
.bs-footer__social:hover,.bs-footer__social:focus-visible{background:var(--blue);border-color:var(--blue);color:var(--white)}

/* ---- Legal bar ---- */
.bs-footer__legal{background:var(--navy);border-top:1px solid rgba(235,245,255,.16)}
.bs-footer__legal-inner{max-width:var(--content-width);margin:0 auto;padding:18px 24px;display:flex;align-items:center;
  justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:11.5px;color:rgba(235,245,255,.55)}
.bs-footer__legal a{color:rgba(235,245,255,.55)}
.bs-footer__legal a:hover{color:var(--white)}
.bs-footer__legal-links{display:flex;align-items:center;gap:8px}

/* ==========================================================================
   Astra button-state reset.

   Astra injects inline rules for `button`, `button:hover` and `button:focus`
   that paint the global brand colour. Those are specificity (0,1,1), which
   outranks a plain `.bs-nav__btn` (0,1,0) — so every chrome button flashed a
   solid blue box on hover, click and focus. Re-stating each control with its
   own pseudo-class gives (0,2,0) and wins without `!important`.
   ========================================================================== */

.bs-nav__btn:hover,
.bs-nav__btn:focus,
.bs-nav__btn:active,
.bs-nav__btn:focus-visible,
.bs-burger:hover,
.bs-burger:focus,
.bs-burger:active,
.bs-drawer__toggle:hover,
.bs-drawer__toggle:focus,
.bs-drawer__toggle:active,
.bs-drawer__close:hover,
.bs-drawer__close:focus,
.bs-drawer__close:active,
.bs-facc__toggle:hover,
.bs-facc__toggle:focus,
.bs-facc__toggle:active{background:none;box-shadow:none}

/* Keep each control's own text colour through those states. */
.bs-nav__btn:hover,
.bs-nav__btn:focus,
.bs-nav__btn:active{color:var(--navy)}
.bs-drawer__toggle:hover,
.bs-drawer__toggle:focus,
.bs-drawer__toggle:active,
.bs-drawer__close:hover,
.bs-drawer__close:focus{color:var(--navy)}
.bs-facc__toggle:hover,
.bs-facc__toggle:focus,
.bs-facc__toggle:active{color:var(--white)}
.bs-burger:hover,
.bs-burger:focus{border-color:var(--border-strong)}

/* Astra also tints bare button borders; keep ours from inheriting that. */
.bs-nav__btn:hover,
.bs-nav__btn:focus{border:none}

/* ==========================================================================
   Mid-width header fit.

   The design was authored at 1440px, where logo + 8 nav items + CTA fit with
   room to spare. Between the 940px drawer breakpoint and ~1400px they do not:
   `.bs-nav` is `flex:1` but its items are `white-space:nowrap`, and a flex item
   will not shrink below its min-content width, so the bar overflowed the
   viewport and gave the whole page a horizontal scrollbar.

   `min-width:0` lets the nav actually participate in shrinking, and the
   spacing tightens progressively instead of overflowing.
   ========================================================================== */

.bs-nav{min-width:0}

@media (max-width:1400px){
  .bs-bar__inner{gap:14px}
  .bs-nav{margin-left:4px}
  .bs-nav__btn{padding:0 7px;font-size:14.5px}
  .bs-logo img.bs-logo__full{height:26px}
}

@media (max-width:1120px){
  .bs-nav__btn{padding:0 5px;font-size:14px;gap:3px}
  .bs-cta{padding:0 14px;font-size:14px}
  .bs-logo img.bs-logo__full{height:24px}
}

/* Mega panels are anchored to the header, not the bar, so they stay full-width
   regardless of how tight the bar itself gets. */
.bs-panel__grid{max-width:var(--container-max)}

/* ==========================================================================
   Header fit — corrected.

   Earlier I gave .bs-nav `min-width:0` to stop the bar overflowing the page.
   That removed the overflow but let the nav shrink *under* the CTA: at ~1185px
   the last item ("Resources") ran 8px past the actions block and the nav was
   clipped. Trading a scrollbar for an overlapping nav was the wrong call.

   Eight items with labels this long genuinely need ~800px, plus logo and CTA
   — about 1250px total. Below that the drawer is the honest answer, so the
   burger breakpoint moves up. The nav never shrinks or clips again.
   ========================================================================== */

.bs-nav{min-width:auto;flex-shrink:0;overflow:visible}
.bs-nav__btn{flex-shrink:0}

/* Desktop nav only when it actually fits. */
@media (max-width:1249px){
  .bs-nav{display:none}
  .bs-burger{display:flex}
  .bs-panel,.bs-scrim{display:none}
}
@media (min-width:1250px){
  .bs-drawer{display:none}
  .bs-burger{display:none}
  .bs-nav{display:flex}
}

/* Guarantee clear space between the nav and the CTA at every desktop width. */
.bs-bar__inner{gap:20px}
.bs-bar__actions{margin-left:24px}

@media (min-width:1250px) and (max-width:1400px){
  .bs-nav__btn{padding:0 8px;font-size:14.5px}
  .bs-logo img.bs-logo__full{height:26px}
}

/* ==========================================================================
   Elementor kit link-colour reset for the chrome.

   Once pages became Elementor pages, Elementor started printing its global kit
   stylesheet, which includes:

     .elementor-kit-21 a { color: #315CFD }   /* specificity (0,1,1) */

   That outranks `.bs-cta` (0,1,0), so the header CTA rendered Action Blue text
   on an Action Blue button — a solid blue rectangle with invisible text. Every
   chrome link is restated below with enough specificity to win, scoped to the
   header and footer so Elementor keeps control of link colour inside content.
   ========================================================================== */

.bs-header a.bs-cta,
.bs-header a.bs-cta:visited,
.bs-drawer a.bs-drawer__cta,
.bs-drawer a.bs-drawer__cta:visited{
	color:var(--cta-text);
}
.bs-header a.bs-cta:hover,
.bs-drawer a.bs-drawer__cta:hover{
	color:var(--cta-text);
	background:var(--cta-hover);
}

/* Footer conversion band: navy text on white button. */
.bs-footer a.bs-footer__cta-btn,
.bs-footer a.bs-footer__cta-btn:visited{
	color:var(--navy);
}
.bs-footer a.bs-footer__cta-btn:hover{
	color:var(--white);
	background:var(--navy);
}

/* Footer link columns, base bar and legal row. */
.bs-footer a.bs-footer__link,
.bs-footer a.bs-footer__link:visited{color:rgba(235,245,255,.68)}
.bs-footer a.bs-footer__link:hover{color:var(--white)}
.bs-footer a.bs-footer__email,
.bs-footer a.bs-footer__email:visited{color:var(--white)}
.bs-footer a.bs-facc__link,
.bs-footer a.bs-facc__link:visited{color:rgba(235,245,255,.72)}
.bs-footer a.bs-footer__social,
.bs-footer a.bs-footer__social:visited{color:rgba(235,245,255,.8)}
.bs-footer a.bs-footer__social:hover{color:var(--white)}
.bs-footer__legal a,
.bs-footer__legal a:visited{color:rgba(235,245,255,.55)}
.bs-footer__legal a:hover{color:var(--white)}

/* Mega panel links keep their own palette. */
.bs-header a.bs-svc .bs-svc__name{color:var(--navy)}
.bs-header a.bs-link .bs-link__label{color:var(--navy)}
.bs-header a.bs-rail__all,
.bs-header a.bs-rail__all:visited{color:var(--blue)}
.bs-header a.bs-spot,
.bs-header a.bs-spot:visited{color:inherit}
.bs-header a.bs-logo,
.bs-drawer a{text-decoration:none}
.bs-drawer a.bs-drawer__link,
.bs-drawer a.bs-drawer__link:visited{color:var(--navy)}

/* Header CTA: Elementor's generated kit stylesheet keeps winning the cascade on
   link colour, and a blue label on a blue button is invisible. The kit CSS is
   regenerated by Elementor and cannot be edited, so this one declaration is
   forced. Kept to the single element that actually breaks. */
.bs-header a.bs-cta,
.bs-header a.bs-cta:link,
.bs-header a.bs-cta:visited,
.bs-header a.bs-cta:hover,
.bs-header a.bs-cta:focus{
	color:#FFFFFF !important;
}

/* Mega-panel spotlight card sits on navy — same problem, same remedy. */
.bs-header a.bs-spot,
.bs-header a.bs-spot:link,
.bs-header a.bs-spot:visited{
	color:#FFFFFF !important;
}
.bs-header a.bs-spot .bs-spot__label{color:var(--gold) !important}
.bs-header a.bs-spot .bs-spot__headline{color:#FFFFFF !important}
.bs-header a.bs-spot .bs-spot__line{color:rgba(235,245,255,.66) !important}
.bs-header a.bs-spot .bs-spot__more{color:var(--teal) !important}

/* Drawer CTA on mobile. */
.bs-drawer a.bs-drawer__cta,
.bs-drawer a.bs-drawer__cta:link,
.bs-drawer a.bs-drawer__cta:visited{
	color:#FFFFFF !important;
}
