/* Open Sans (was previously injected by the HubSpot form embed) */
@import url('https://fonts.googleapis.com/css2?family=Open+Sans:wght@400;700&display=swap');

/* ==========================================================================
   HeartMath footer — replica of https://www.heartmath.com/ global footer
   Works with the original HubSpot markup (footer.footer > .footer__container
   > #hs_cos_wrapper_global_footer > .hhs-footer-mod ...).

   Everything is scoped under `footer.footer` so it cannot leak into the rest
   of the site and wins over Bootstrap 4 / site styles (.container, .row, p, a).
   Rule order mirrors the original cascade — keep it when editing.

   Breakpoints used by the original:
     410 / 568-569 / 575-576 / 768 / 922-923 / 992 / 1200
   ========================================================================== */

/* --------------------------------------------------------------------------
   0. Base (inherited on the original from body/html)
   -------------------------------------------------------------------------- */
footer.footer {
  display: block;
  margin: 0;
  padding: 0;
  font-family: "Open Sans", Helvetica, Arial, sans-serif;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.15;
  color: #000;
  text-align: left;
  -webkit-text-size-adjust: 100%;
}
footer.footer *,
footer.footer *::before,
footer.footer *::after { box-sizing: border-box; }

/* --------------------------------------------------------------------------
   1. Element defaults inside the footer
      NOTE: the host site forces `p, td, th, li, label, input { color:#666;
      font-size:15px; line-height:24px; font-family:Sailec...; letter-spacing:0 } !important`
      and `ul { padding-left:15px !important }`, so those properties carry
      !important here as well.
   -------------------------------------------------------------------------- */
footer.footer p {
  margin-top: 0;
  margin-bottom: 1rem;
  font-family: "Open Sans", Helvetica, Arial, sans-serif !important;
  font-size: 16px !important;
  font-weight: 400;
  font-style: normal;
  color: #3a3a3c !important;
  letter-spacing: 0 !important;
  line-height: 1.4em !important;
  text-decoration: none;
  text-transform: none;
}
footer.footer ul { margin-top: 1.5rem; margin-bottom: 1.5rem; padding-left: 0 !important; }
footer.footer li {
  color: #3a3a3c !important;
  font-family: "Open Sans", Helvetica, Arial, sans-serif !important;
  font-size: 16px !important;
  font-style: normal;
  font-weight: 400;
  letter-spacing: 0 !important;
  line-height: 1.4em !important;
  margin-bottom: 15px;
  text-decoration: none;
  text-transform: none;
}
footer.footer a {
  color: #185fa5;
  background-color: transparent;
  text-decoration: none;
  line-height: inherit !important;
  transition: 0.4s ease-in-out;
}
footer.footer a:hover,
footer.footer a:focus,
footer.footer a:active { color: #185fa5; text-decoration: none; }

footer.footer img {
  border-style: none;
  vertical-align: bottom;
  max-width: 100%;
  height: auto !important;
}
footer.footer button,
footer.footer input {
  font-family: inherit;
  font-size: 100%;
  line-height: 1.15;
  margin: 0;
  overflow: visible;
}
footer.footer button { font-family: "Open Sans", Helvetica, Arial, sans-serif; text-transform: none; }
footer.footer [type="submit"],
footer.footer button { -webkit-appearance: button; appearance: button; }
footer.footer [type="checkbox"] { box-sizing: border-box; padding: 0; }
footer.footer label { margin-bottom: 5px; }

footer.footer .screen-reader-text {
  position: absolute !important;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(1px, 1px, 1px, 1px);
}

/* --------------------------------------------------------------------------
   2. Grid (original theme grid — overrides Bootstrap 4 widths)
   -------------------------------------------------------------------------- */
footer.footer .container {
  width: 100%;
  max-width: none;               /* kill Bootstrap 540/720/960/1140 */
  margin-left: auto;
  margin-right: auto;
  padding-left: 15px;
  padding-right: 15px;
}
@media (min-width: 1200px) {
  footer.footer .container { max-width: 1440px; }
}
footer.footer .row {
  display: flex;
  flex-wrap: wrap;
  margin-left: 0 !important;
  margin-right: 0 !important;
}
footer.footer .col-12,
footer.footer .col-lg,
footer.footer .col-md-6,
footer.footer .col-sm-6 {
  position: relative;
  width: 100%;
  padding-left: 15px;
  padding-right: 15px;
}
footer.footer .col-12 { flex: 0 0 100%; max-width: 100%; }
@media (min-width: 576px) { footer.footer .col-sm-6 { flex: 0 0 50%; max-width: 50%; } }
@media (min-width: 768px) { footer.footer .col-md-6 { flex: 0 0 50%; max-width: 50%; } }
@media (min-width: 992px) { footer.footer .col-lg { flex-basis: 0; flex-grow: 1; max-width: 100%; } }

/* Visibility / ordering helpers */
footer.footer .hide-desktop { display: none; }
@media (max-width: 992px) {
  footer.footer .hide-desktop { display: block !important; }
  footer.footer .hide-tablet  { display: none !important; }
}
@media (max-width: 575px) {
  footer.footer .hide-mobile   { display: none !important; }
  footer.footer .show-mobile   { display: block !important; }
  footer.footer .order-1-mobile { order: 1 !important; }
  footer.footer .order-2-mobile { order: 2 !important; }
}

/* --------------------------------------------------------------------------
   3. HubSpot simple-menu base
   -------------------------------------------------------------------------- */
footer.footer .hs-menu-wrapper ul { padding: 0; }
footer.footer .hs-menu-wrapper.hs-menu-flow-horizontal ul { list-style: none; margin: 0; }
footer.footer .hs-menu-wrapper.hs-menu-flow-horizontal > ul { display: inline-block; margin-bottom: 20px; }
footer.footer .hs-menu-wrapper.hs-menu-flow-horizontal > ul::before { content: " "; display: table; }
footer.footer .hs-menu-wrapper.hs-menu-flow-horizontal > ul::after  { content: " "; display: table; clear: both; }
footer.footer .hs-menu-wrapper.hs-menu-flow-horizontal > ul li.hs-menu-depth-1 { float: left; }
footer.footer .hs-menu-wrapper.hs-menu-flow-horizontal > ul li a {
  display: inline-block;
  max-width: 140px;
  overflow: hidden;
  padding: 10px 20px;
  text-decoration: none;
  text-overflow: ellipsis;
  white-space: nowrap;
}
@media (max-width: 568px) {
  footer.footer .hs-menu-wrapper,
  footer.footer .hs-menu-wrapper * { box-sizing: border-box; display: block; width: 100%; }
  footer.footer .hs-menu-wrapper.hs-menu-flow-horizontal ul { display: block; list-style: none; margin: 0; }
  footer.footer .hs-menu-wrapper.hs-menu-flow-horizontal > ul { display: block; }
  footer.footer .hs-menu-wrapper.hs-menu-flow-horizontal > ul li.hs-menu-depth-1 { float: none; }
  footer.footer .hs-menu-wrapper.hs-menu-flow-horizontal > ul li a { display: block; max-width: 100%; width: 100%; }
}
footer.footer .hs-menu-wrapper.hs-menu-flow-horizontal ul { margin-bottom: 0; }

/* --------------------------------------------------------------------------
   4. Footer module (theme "hhs-footer")
   -------------------------------------------------------------------------- */
footer.footer .hhs-foot-nav-col .hs-menu-wrapper.hs-menu-flow-horizontal > ul li a {
  font-family: "Open Sans", Helvetica, Arial, sans-serif;
  font-size: 16px;
  font-style: normal;
  font-weight: 400;
  letter-spacing: 0;
  text-decoration: none;
  text-transform: none;
  max-width: none;
  padding: 0;
  white-space: normal;   /* original: pre-wrap — but copied/pretty-printed HTML has line breaks inside link text */
}
footer.footer .hhs-foot-nav-col .hs-menu-wrapper.hs-menu-flow-horizontal > ul li.hs-menu-depth-1 {
  float: none;
  margin-bottom: 10px;
}

/* Column title as mobile accordion button */
footer.footer .foot-nav-title {
  position: relative;
  width: 100%;
  background: transparent;
  border: none;
  outline: none;
  font-weight: 400;
  text-transform: uppercase;
  padding-bottom: 20px;
  padding-right: 0;
  padding-left: 0 !important;
  margin-bottom: 0 !important;
}
footer.footer .foot-nav-title::after {
  content: "\f107";                    /* angle-down */
  display: inline;
  padding-left: 10px;
  width: 100%;
  font-family: "Font Awesome 6 Free", "Font Awesome 5 Free" !important;
  font-weight: 900;
  line-height: 1;
  -webkit-font-smoothing: antialiased;
}

footer.footer .hhs-foot-break-line {
  display: block;
  width: 100%;
  padding: 25px 0 0;
  margin-bottom: 25px;
  border-bottom: 1px solid #fff;
}
footer.footer .hhs-foot-copyright { font-size: 13px !important; color: #eee !important; }
footer.footer .hhs-foot-base-nav { text-align: left; }
footer.footer .hhs-foot-base-nav .hs-menu-wrapper.hs-menu-flow-horizontal > ul li { margin-bottom: 0; }
footer.footer .hhs-foot-base-nav .hs-menu-wrapper.hs-menu-flow-horizontal > ul li a {
  max-width: none;
  padding: 0 10px 0 0 !important;
  font-size: 14px !important;
}
footer.footer .hhs-social-con { text-align: right; }
footer.footer .hhs-social-con a { margin: 0 5px !important; padding: 5px 5px 0 !important; }

@media (max-width: 922px) {
  footer.footer .hhs-foot-nav-col,
  footer.footer .hhs-foot-rss { margin-bottom: 50px; }
  footer.footer .hhs-social-con { margin-bottom: 25px; text-align: center; }
}
@media (max-width: 575px) {
  footer.footer .hhs-foot-base-nav .hs-menu-wrapper ul,
  footer.footer .hhs-foot-copyright { text-align: center; }
  footer.footer .hhs-foot-base-nav .hs-menu-wrapper li { display: inline-block; text-align: center; width: auto; }
  footer.footer .hhs-foot-nav-col { border-bottom: 1px solid; margin-bottom: 20px; }
  footer.footer .hhs-foot-nav-col .hs-menu-wrapper.hs-menu-flow-horizontal > ul li a { padding: 5px 0; text-align: center; }
  footer.footer .hhs-foot-rss { margin-top: 25px; }
  footer.footer .hhs-foot-nav-col .col-title { margin-bottom: 25px; text-align: center; }
  footer.footer .hhs-foot-break-line { display: none; }
  footer.footer .hhs-social-con a { display: inline-block; height: 48px; width: 48px; }
}

/* Module settings (colors/spacing from the HubSpot module) */
footer.footer .hhs-footer-mod {
  background-color: #0a1729;
  padding-top: 100px;
  padding-bottom: 100px;
}
footer.footer .hhs-foot-base-nav .hs-menu-wrapper.hs-menu-flow-horizontal > ul li a,
footer.footer .hhs-foot-nav-col  .hs-menu-wrapper.hs-menu-flow-horizontal > ul li a { color: #eee !important; }
footer.footer .hhs-foot-base-nav .hs-menu-wrapper.hs-menu-flow-horizontal > ul li a:hover,
footer.footer .hhs-foot-nav-col  .hs-menu-wrapper.hs-menu-flow-horizontal > ul li a:hover { color: #fff !important; }

footer.footer .foot-nav-title,
footer.footer .hhs-foot-rss div.col-title,
footer.footer .hhs-foot-nav-col div.col-title { margin-bottom: 40px; padding-left: 0; }

footer.footer .hhs-social-con svg { width: 20px; height: 20px; margin: 0 !important; vertical-align: baseline; fill: #2ab8df; transition: fill .4s ease-in-out; }
footer.footer .hhs-social-con svg:hover { fill: #fff; }

@media (max-width: 922px) {
  footer.footer .hhs-footer-mod { padding-top: 25px; padding-bottom: 25px; }
}
@media (max-width: 575px) {
  footer.footer .hhs-foot-nav-col { border-color: #fff; }
  footer.footer .hhs-foot-nav-col .hhs-col-content { display: none; text-align: center; }
  footer.footer .hhs-foot-nav-col .hhs-col-content.open-menu { display: block; }
  footer.footer button.foot-nav-title { color: #fff; }
}

/* --------------------------------------------------------------------------
   5. HeartMath custom layout (hm-footer-*)
   -------------------------------------------------------------------------- */
footer.footer .hhs-footer-mod { padding-top: 60px !important; }
@media (min-width: 923px) {
  footer.footer .hhs-footer-mod { padding-top: 100px !important; }
}

footer.footer .hm-footer-main {
  display: grid;
  grid-template-columns: 100%;
  padding-left: 15px !important;
  padding-right: 15px !important;
}
@media (min-width: 410px) {
  footer.footer .hm-footer-main { padding-left: 30px !important; padding-right: 30px !important; }
}
@media (min-width: 992px) {
  footer.footer .hm-footer-main { grid-template-columns: 370px 1fr; }
}

footer.footer .hm-footer-main-primary { padding-right: 0; }
@media (min-width: 992px) {
  footer.footer .hm-footer-main-primary { padding-right: 15px; }
}
footer.footer .hm-footer-main-primary-logo { padding: 0 0 30px; }
footer.footer .hm-footer-main-primary-logo img { max-width: 200px; }
footer.footer .hm-footer-main-primary-description { padding: 0 0 30px; }
footer.footer .hm-footer-main-primary-description p,
footer.footer .hm-footer-main-primary-subscribe-description p { color: #ccc !important; }

footer.footer .hm-footer-main-primary-social { padding: 0 0 30px; }
footer.footer .hm-footer-main-primary-social .hhs-social-con { text-align: left; }
footer.footer .hm-footer-main-primary-social .hhs-social-con a { color: #eee; }

footer.footer .hhs-foot-nav-cols { padding-top: 40px; }
@media (min-width: 992px) {
  footer.footer .hhs-foot-nav-cols { padding-top: 0; }
}
footer.footer .hhs-foot-nav-col { border-color: rgba(255, 255, 255, .1) !important; }
footer.footer .hhs-foot-nav-col .col-title {
  height: 40px;
  color: #fff;
  font-weight: 700;
  text-transform: uppercase;
  line-height: 1.15;
  margin-bottom: 0 !important;
  font-size: 14px !important;
}
footer.footer .hhs-foot-base-nav { text-align: right; }
@media (max-width: 575px) {
  footer.footer .hhs-foot-break-line { display: block !important; }
}

footer.footer .hm-footer-middle-container { padding-left: 15px !important; padding-right: 15px !important; }
@media (min-width: 410px) {
  footer.footer .hm-footer-middle-container { padding-left: 30px !important; padding-right: 30px !important; }
}
footer.footer .hm-footer-middle { display: grid; grid-template-columns: 100%; }
footer.footer .hm-footer-middle-app {
  display: flex;
  flex-wrap: nowrap;
  justify-content: flex-start;
  align-items: center;
  gap: 20px;
}
footer.footer .hm-footer-middle-app-title {
  color: #f2f2f2;
  font-size: 14px;
  font-weight: 700;
  text-transform: uppercase;
}
footer.footer .hm-footer-middle-app-link { display: block; color: #f2f2f2; }
footer.footer .hm-footer-middle-app-link:hover { color: #fff; }

footer.footer .hm-footer-base-nav-list { margin-bottom: 10px; }
footer.footer .hm-footer-base-nav-list-item { width: 100%; float: none !important; }
@media (min-width: 569px) {
  footer.footer .hm-footer-base-nav-list-item { float: right !important; }
}
@media (min-width: 576px) {
  footer.footer .hm-footer-base-nav-list-item { width: auto; }
}
footer.footer .hm-footer-base-nav-list-item a { display: flex !important; }
footer.footer .hm-footer-base-nav-list-item a img {
  width: 29px;
  height: 14px !important;
  margin-right: 2px;
  align-self: center;
}

/* --------------------------------------------------------------------------
   5b. Own sitemap (Views/Footer.php -> $sitemapMarkup)
       Markup: .hhs-foot-nav-cols > .row.sitemap > .col-md-4 > (h3 + ul > li > a)*
       Styled like the original .col-title / .hhs-foot-nav-col menu:
       headings 14px bold uppercase white, links 16px #eee (hover #fff),
       10px between items, 40px from heading top to first link.
       The host site forces h3 font/colour/size/margins with !important,
       hence the !important flags below.
   -------------------------------------------------------------------------- */
footer.footer .hhs-foot-nav-cols > .sitemap {
  flex: 1 1 100%;
  width: 100%;
  max-width: 100%;
  margin: 0 !important;
}
footer.footer .hhs-foot-nav-cols > .sitemap > [class*="col-"] {
  padding-left: 15px;
  padding-right: 15px;
}

/* Column headings (= original .hhs-foot-nav-col .col-title) */
footer.footer .hhs-foot-nav-cols .sitemap h3 {
  margin: 0 0 14px !important;     /* 16px line + 24px = original 40px title block */
  padding: 0;
  color: #fff !important;
  font-family: "Open Sans", Helvetica, Arial, sans-serif !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  line-height: 1.15 !important;
  letter-spacing: 0 !important;
  text-transform: uppercase;
  text-shadow: none !important;
}
/* Second, third ... heading in the same column: space after the previous list */
footer.footer .hhs-foot-nav-cols .sitemap ul + h3 { margin-top: 40px !important; }

/* Link lists (= original .hhs-foot-nav-col .hs-menu-wrapper ul) */
footer.footer .hhs-foot-nav-cols .sitemap ul {
  margin: 0 !important;
  padding: 0 !important;
  list-style: none;
}
footer.footer .hhs-foot-nav-cols .sitemap li {
  margin: 0 0 5px !important;
  padding: 0;
  list-style: none;
}
footer.footer .hhs-foot-nav-cols .sitemap li:last-child { margin-bottom: 0 !important; }
footer.footer .hhs-foot-nav-cols .sitemap li a {
  display: inline-block;
  padding: 0;
  color: #eee !important;
  font-family: "Open Sans", Helvetica, Arial, sans-serif !important;
  font-size: 16px !important;
  font-weight: 400 !important;
  line-height: 1.4 !important;
  letter-spacing: 0 !important;
  text-decoration: none;
  text-shadow: none !important;
  white-space: normal;
}
footer.footer .hhs-foot-nav-cols .sitemap li a:hover,
footer.footer .hhs-foot-nav-cols .sitemap li a:focus { color: #fff !important; }

/* Tablet / mobile: columns stack (Bootstrap col-md-4 = 100% below 768px) */
@media (max-width: 767px) {
  footer.footer .hhs-foot-nav-cols > .sitemap > [class*="col-"] + [class*="col-"] { margin-top: 40px; }
}

/* --------------------------------------------------------------------------
   6. Newsletter sign-up form (plain HTML, ready for Mailchimp)
      <form class="hm-subscribe"> with First name / Last name / Email stacked
      vertically, a consent checkbox and the Subscribe button.
      Label/input properties carry !important because the host site forces
      font, size, line-height and color on label and input.
   -------------------------------------------------------------------------- */
footer.footer .hm-subscribe {
  display: flex;
  flex-direction: column;
  gap: 15px;
  width: 100%;
  margin: 0;
  padding: 0;
}
footer.footer .hm-subscribe-field {
  display: flex;
  flex-direction: column;
}

/* Field labels (uppercase, white — as the original "EMAIL" label) */
footer.footer .hm-subscribe-field label {
  display: block;
  margin: 0 !important;
  color: #fff !important;
  font-family: Helvetica, Arial, sans-serif !important;
  font-size: 12px !important;
  font-weight: 700;
  line-height: 23px !important;
  letter-spacing: .6px !important;
  text-transform: uppercase;
}
footer.footer .hm-subscribe-required { color: #e51520; }

/* Text / email inputs — 50px pill */
footer.footer .hm-subscribe-field input {
  display: block;
  width: 100%;
  height: 50px;
  margin: 0;
  padding: 16px 8px !important;
  border: 1px solid #959494;
  border-radius: 9999px;
  background: #fff;
  box-shadow: none;
  color: #212d3a !important;
  font-family: Helvetica, Arial, sans-serif !important;
  font-size: 16px !important;
  font-weight: 400;
  letter-spacing: 0 !important;
  line-height: normal !important;
  transition: border-color .2s;
}
footer.footer .hm-subscribe-field input:focus {
  border-color: #6b2d8b;
  outline: 0;
  box-shadow: none;
}

/* Consent checkbox */
footer.footer .hm-subscribe-consent {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  margin: 0 !important;
  color: #fff !important;
  font-family: Helvetica, Arial, sans-serif !important;
  font-size: 12px !important;
  font-weight: 300;
  line-height: 1.2 !important;
  letter-spacing: .6px !important;
  text-transform: none;
  cursor: pointer;
}
footer.footer .hm-subscribe-consent input {
  -webkit-appearance: none;
  appearance: none;
  flex: 0 0 18px;
  width: 18px;
  height: 18px;
  margin: 0;
  padding: 0;
  border: 1px solid #959494;
  border-radius: 2px;
  background: #f5f8fa center / 12px no-repeat;
  cursor: pointer;
}
footer.footer .hm-subscribe-consent input:checked {
  border-color: #185fa5;
  background-color: #185fa5;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 10'%3E%3Cpath d='M1 5l3.5 3.5L11 1.5' fill='none' stroke='%23fff' stroke-width='2'/%3E%3C/svg%3E");
}
footer.footer .hm-subscribe-consent input:focus-visible { outline: 2px solid #2ab8df; outline-offset: 2px; }

/* Subscribe button */
footer.footer .hm-subscribe-button {
  align-self: flex-start;
  margin: 5px 0 0;
  padding: 15px 25px;
  border: none;
  border-radius: 25px;
  background-color: #185fa5;
  color: #fff;
  font-family: "Open Sans", Helvetica, Arial, sans-serif;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.15;
  text-align: center;
  cursor: pointer;
  transition: transform .2s ease-out, background-color .2s linear;
}
footer.footer .hm-subscribe-button:hover  { transform: translateY(-1px); }
footer.footer .hm-subscribe-button:active { transform: translateY(1px); }
footer.footer .hm-subscribe-button:focus-visible { outline: 2px solid #2ab8df; outline-offset: 2px; }

@media (max-width: 430px) {
  footer.footer .hm-subscribe-button { align-self: stretch; }
}

/* --------------------------------------------------------------------------
   7. Hardening against host-site link rules
      The host site forces line-height / font-weight / margin / padding on
      <a> with !important and high specificity. The footer's wrapper id is
      used here to win that fight without touching the rest of the site.
   -------------------------------------------------------------------------- */
footer.footer #hs_cos_wrapper_global_footer a {
  line-height: inherit !important;
  font-weight: inherit !important;
  font-size: inherit !important;
  letter-spacing: inherit !important;
  margin: 0 !important;
  padding: 0 !important;
}
footer.footer #hs_cos_wrapper_global_footer .hhs-social-con a {
  margin: 0 5px !important;
  padding: 5px 5px 0 !important;
}
@media (max-width: 575px) {
  footer.footer #hs_cos_wrapper_global_footer .hhs-foot-nav-col .hs-menu-wrapper.hs-menu-flow-horizontal > ul li a {
    padding: 5px 0 !important;
  }
}
footer.footer #hs_cos_wrapper_global_footer .hhs-foot-base-nav .hs-menu-wrapper.hs-menu-flow-horizontal > ul li a {
  padding: 0 10px 0 0 !important;
  font-size: 14px !important;
}
footer.footer #hs_cos_wrapper_global_footer .hhs-foot-nav-col .hs-menu-wrapper.hs-menu-flow-horizontal > ul li a {
  font-size: 16px !important;
  font-weight: 400 !important;
}

footer.footer .hm-subscribe-message {
  color: #fff !important;
}

footer.footer .hm-subscribe-message--error {
  color: #e51520 !important;
}