/* Unified desktop customer footer. */
.ecx-shared-footer {
  box-sizing: border-box;
  width: 100% !important;
  margin-top: 24px !important;
  padding: 38px 0 18px !important;
  border-top: 1px solid #243249 !important;
  background: #0c1524 !important;
  color: #dce6f5 !important;
  font-size: 14px !important;
  text-align: left !important;
}
.ecx-shared-footer .footer-container {
  box-sizing: border-box;
  width: 100%;
  max-width: 1440px !important;
  margin: 0 auto;
  padding: 0 clamp(28px, 4vw, 56px) !important;
}
.ecx-shared-footer .footer-links {
  display: grid !important;
  grid-template-columns: minmax(240px, 1.45fr) repeat(auto-fit, minmax(108px, 1fr)) !important;
  align-items: start;
  column-gap: clamp(26px, 3.2vw, 48px) !important;
  row-gap: 24px !important;
  margin: 0 0 28px !important;
  text-align: left !important;
}
.ecx-shared-footer .footer-brand,
.ecx-shared-footer .footer-col { min-width: 0; }
.ecx-shared-footer .footer-brand-logo {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 11px;
  color: #f4f8ff;
  font-size: 22px;
  font-weight: 800;
  line-height: 1;
  letter-spacing: -.5px;
}
.ecx-shared-footer .footer-brand-mark {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  flex: 0 0 36px;
  overflow: hidden;
  border-radius: 9px;
  background: linear-gradient(135deg, #3772ff, #6c5ce7);
  color: #fff;
  font-size: 16px;
  font-weight: 800;
  line-height: 1;
}
.ecx-shared-footer .footer-brand-mark.has-image {
  border-radius: 0;
  background: transparent;
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
  color: transparent;
}
.ecx-shared-footer .footer-brand-mark img {
  display: block;
  width: 36px;
  height: 36px;
  object-fit: contain;
}
.ecx-shared-footer .footer-brand p {
  max-width: 270px;
  margin: 0;
  color: #91a1b7;
  font-size: 13px;
  line-height: 1.65;
  text-align: left !important;
}
.ecx-shared-footer .footer-col h4 {
  margin: 1px 0 12px !important;
  color: #e1e9f5 !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  line-height: 1.45;
  text-align: left !important;
}
.ecx-shared-footer .footer-col a {
  display: block;
  width: max-content;
  max-width: 100%;
  margin: 0 0 9px !important;
  color: #91a1b7 !important;
  font-size: 13px !important;
  line-height: 1.4;
  text-align: left !important;
  text-decoration: none;
  cursor: pointer;
  transition: color .18s ease, background-color .18s ease, border-color .18s ease;
}
.ecx-shared-footer .footer-col a:hover,
.ecx-shared-footer .footer-col a:focus-visible { color: #69adff !important; }
.ecx-shared-footer .social-icons {
  /* Legacy page markup contained generic social placeholders. Keep it out of
     first paint; footer-nav adds footer-social-col only for real admin links. */
  display: none !important;
  align-items: center;
  width: max-content;
  gap: 9px !important;
}
.ecx-shared-footer .footer-col:has(> .social-icons) { display: none !important; }
.ecx-shared-footer .footer-col.footer-social-col { display: block !important; }
.ecx-shared-footer .footer-social-col .social-icons { display: flex !important; }
.ecx-shared-footer .footer-social-col {
  justify-self: end;
  width: max-content;
  min-width: max-content;
}
.ecx-shared-footer .social-icons a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  margin: 0 !important;
  border: 1px solid rgba(145, 161, 183, .24);
  border-radius: 9px;
  background: rgba(255, 255, 255, .035);
  color: #aebbd0 !important;
  font-size: 16px !important;
}
.ecx-shared-footer .social-icons a:hover,
.ecx-shared-footer .social-icons a:focus-visible {
  border-color: rgba(105, 173, 255, .55);
  background: rgba(55, 114, 255, .12);
}
.ecx-shared-footer .footer-bottom {
  box-sizing: border-box;
  display: flex !important;
  flex-direction: row;
  align-items: center;
  justify-content: space-between !important;
  gap: 24px;
  width: 100%;
  min-height: 42px;
  padding: 14px 0 0 !important;
  border-top: 1px solid rgba(122, 151, 188, .18) !important;
  text-align: left !important;
  transition: padding-right .18s ease;
}
.ecx-shared-footer .copyright,
.ecx-shared-footer .risk-warning {
  margin: 0 !important;
  color: #7f90a8 !important;
  font-size: 11px !important;
  line-height: 1.5;
}
.ecx-shared-footer .copyright { text-align: left !important; }
.ecx-shared-footer .risk-warning {
  max-width: min(48%, 560px);
  text-align: right !important;
}
.ecx-shared-footer a:focus-visible {
  outline: 2px solid #69adff;
  outline-offset: 3px;
}

/* The homepage already owns its final section spacing. Avoid stacking another
   footer gap underneath it. */
body.home-desktop > .ecx-shared-footer { margin-top: 0 !important; }

html.light-mode .ecx-shared-footer {
  border-top-color: #d9e1ec !important;
  background: #ffffff !important;
  color: #17253b !important;
}
html.light-mode .ecx-shared-footer .footer-brand-logo { color: #17253b !important; }
html.light-mode .ecx-shared-footer .footer-brand p,
html.light-mode .ecx-shared-footer .footer-col a { color: #5f7188 !important; }
html.light-mode .ecx-shared-footer .footer-col h4 { color: #23324a !important; }
html.light-mode .ecx-shared-footer .social-icons a {
  border-color: #d8e1ec;
  background: #f7f9fc;
  color: #5f7188 !important;
}
html.light-mode .ecx-shared-footer .social-icons a:hover,
html.light-mode .ecx-shared-footer .social-icons a:focus-visible {
  border-color: #8ebcff;
  background: #edf5ff;
  color: #2563c7 !important;
}
html.light-mode .ecx-shared-footer .footer-bottom { border-top-color: #e1e7ef !important; }
html.light-mode .ecx-shared-footer .copyright,
html.light-mode .ecx-shared-footer .risk-warning { color: #66778d !important; }

@media (min-width: 801px) and (max-width: 1024px) {
  .ecx-shared-footer .footer-container { padding: 0 30px !important; }
  .ecx-shared-footer .footer-links {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    column-gap: 34px !important;
    row-gap: 26px !important;
  }
  .ecx-shared-footer .footer-brand { grid-column: 1 / -1; }
}

@media (max-width: 800px) {
  .ecx-shared-footer {
    margin-top: 24px !important;
    padding-top: 28px !important;
  }
  .ecx-shared-footer .footer-container { padding: 0 22px !important; }
  .ecx-shared-footer .footer-links {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 26px 32px !important;
  }
  .ecx-shared-footer .footer-brand { grid-column: 1 / -1; }
  .ecx-shared-footer .footer-social-col {
    justify-self: start;
  }
  .ecx-shared-footer .footer-bottom {
    align-items: flex-start;
    flex-direction: column;
    gap: 5px;
  }
  .ecx-shared-footer .risk-warning {
    max-width: 100%;
    text-align: left !important;
  }
}

@media (max-width: 480px) {
  .ecx-shared-footer .footer-links {
    grid-template-columns: 1fr !important;
    row-gap: 22px !important;
  }
  .ecx-shared-footer .footer-brand { grid-column: auto; }
}
