/* ==========================================================================
   Bank onboarding (HubDB dynamic pages): listing and one page per bank.

   Built from the marketing kit (aritma-marketing-kit, template web-12 and
   tokens.json): Aritma Uten in regular weight only, hierarchy from size and
   colour, 5 px controls and 10 px cards, spacing 4/8/16/24/32/48/64/120, a
   light header so short pages keep the 60/30/10 colour balance, and no
   tracked uppercase labels, left-border accents or arrows in buttons.

   Loaded only by templates/bank-onboarding.hubl.html. Every selector starts
   with .bo- so nothing reaches main.css, the webinar pages or other templates.
   ========================================================================== */

/* Same font file the knowledge base on help.aritma.com already serves. */
@font-face {
  font-family: "Aritma Uten";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("https://help.aritma.com/hubfs/AritmaUten1.0-Regular.ttf") format("truetype");
}

.bo-page,
.bo-header,
.bo-footer {
  --bo-indigo: #45095a;
  --bo-pink: #fb8caf;
  --bo-seashell: #f9f0ee;
  --bo-white: #ffffff;
  --bo-blue: #2549d2;
  --bo-gray: #dbd3d1;
  --bo-card-alt: #fff7f5;
  --bo-indigo-70: #7d538b;
  --bo-border: rgba(69, 9, 90, 0.23);
  --bo-radius-sm: 5px;
  --bo-radius-md: 10px;
  --bo-space-1: 4px;
  --bo-space-2: 8px;
  --bo-space-3: 16px;
  --bo-space-4: 24px;
  --bo-space-5: 32px;
  --bo-space-6: 48px;
  --bo-space-7: 64px;
  --bo-space-8: 120px;
  --bo-font: "Aritma Uten", "Aritma Uten 1.0", Inter, system-ui, -apple-system, "Segoe UI", sans-serif;
  font-family: var(--bo-font);
  font-weight: 400;
  font-size: 16px;
  line-height: 26px;
  -webkit-font-smoothing: antialiased;
}

/* <main> stretches inside .body-wrapper, so the page colour is set on both. */
.body-wrapper:has(.bo-page),
.body-container-wrapper:has(.bo-page) {
  background: #f9f0ee;
}

.bo-skip {
  position: absolute;
  left: 16px;
  top: -100px;
  z-index: 50;
  padding: 8px 16px;
  border-radius: 5px;
  background: #ffffff;
  color: #45095a;
}
.bo-skip:focus {
  top: 16px;
}

.bo-page {
  background: var(--bo-seashell);
  color: var(--bo-indigo);
}

.bo-page h1,
.bo-page h2,
.bo-page h3,
.bo-page b,
.bo-page strong,
.bo-page th,
.bo-header *,
.bo-footer * {
  font-weight: 400;
}

/* main.css sets its own font-family on every heading, so headings do not
   inherit the one set on the containers above. */
.bo-page :is(h1, h2, h3, h4, h5, h6),
.bo-header :is(h1, h2, h3, h4, h5, h6),
.bo-footer :is(h1, h2, h3, h4, h5, h6) {
  font-family: var(--bo-font);
}

.bo-container {
  width: 100%;
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 var(--bo-space-6);
}

.bo-sr {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}

/* Type roles (tokens.json > typography) */
.bo-display {
  font-size: 66px;
  line-height: 76px;
  text-wrap: balance;
}
.bo-h3 {
  font-size: 24px;
  line-height: 34px;
}
.bo-lead {
  font-size: 18px;
  line-height: 28px;
}
.bo-small {
  font-size: 14px;
  line-height: 20px;
}
.bo-muted {
  color: var(--bo-indigo-70);
}

.bo-page a {
  color: inherit;
  text-decoration: underline;
}

.bo-page :focus-visible,
.bo-header :focus-visible,
.bo-footer :focus-visible {
  outline: 2px solid var(--bo-blue);
  outline-offset: 2px;
}
.bo-header :focus-visible,
.bo-footer :focus-visible {
  outline-color: var(--bo-seashell);
}

/* Buttons: one shape, three fills. The label stands alone. */
.bo-button {
  display: inline-block;
  padding: var(--bo-space-3) var(--bo-space-4);
  border: 0;
  border-radius: var(--bo-radius-sm);
  font-family: inherit;
  font-size: 16px;
  line-height: 26px;
  text-align: center;
  white-space: nowrap;
  cursor: pointer;
}
.bo-page a.bo-button,
.bo-header a.bo-button {
  text-decoration: none;
}
.bo-page a.bo-button:hover,
.bo-header a.bo-button:hover {
  text-decoration: underline;
}
.bo-button--primary {
  background-color: var(--bo-blue);
  color: var(--bo-white) !important;
}
.bo-button--dark {
  background-color: var(--bo-indigo);
  color: var(--bo-seashell) !important;
}
.bo-button--light {
  background-color: var(--bo-white);
  color: var(--bo-indigo) !important;
}

.bo-card {
  background-color: var(--bo-white);
  border-radius: var(--bo-radius-md);
}

.bo-chip {
  display: inline-block;
  padding: var(--bo-space-1) var(--bo-space-3);
  border-radius: var(--bo-radius-sm);
  font-size: 14px;
  line-height: 20px;
  background-color: var(--bo-seashell);
  color: var(--bo-indigo);
}
.bo-head .bo-chip {
  background-color: var(--bo-white);
}
.bo-chip--tint {
  background-color: var(--bo-seashell) !important;
}
.bo-chips {
  display: flex;
  flex-wrap: wrap;
  gap: var(--bo-space-2);
  margin: 0;
}
.bo-chips dd {
  margin: 0;
}

/* Header */
.bo-header {
  background-color: var(--bo-indigo);
  color: var(--bo-seashell);
  padding: var(--bo-space-4) 0;
}
.bo-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--bo-space-4);
}
.bo-header__logo img {
  display: block;
  width: 160px;
  height: auto;
}
.bo-header__nav {
  display: flex;
  align-items: center;
  gap: var(--bo-space-5);
}
.bo-header__nav a {
  font-size: 14px;
  line-height: 20px;
  color: inherit;
  text-decoration: none;
}
.bo-header__nav a:hover {
  text-decoration: underline;
}
.bo-header__nav a.bo-button {
  padding: var(--bo-space-3) var(--bo-space-4);
}

/* Light page header with title, intro, search and filters */
.bo-head {
  padding: var(--bo-space-7) 0 var(--bo-space-4);
}
.bo-head .bo-display {
  margin: 0 0 var(--bo-space-3);
  max-width: 900px;
}
.bo-head .bo-lead {
  max-width: 640px;
  margin: 0 0 var(--bo-space-5);
}

.bo-crumbs {
  display: flex;
  flex-wrap: wrap;
  gap: var(--bo-space-2);
  margin: 0 0 var(--bo-space-4);
  padding: 0;
  list-style: none;
  font-size: 14px;
  line-height: 20px;
}
.bo-crumbs li + li::before {
  content: "/";
  margin-right: var(--bo-space-2);
}
.bo-crumbs a {
  text-decoration: none !important;
}
.bo-crumbs a:hover {
  text-decoration: underline !important;
}

/* Search field: white box with a 1 px border */
.bo-search {
  display: flex;
  max-width: 760px;
  margin-bottom: var(--bo-space-4);
  padding: var(--bo-space-2);
  background-color: var(--bo-white);
  border: 1px solid var(--bo-border);
  border-radius: var(--bo-radius-md);
}
.bo-search:focus-within {
  outline: 2px solid var(--bo-blue);
  outline-offset: 2px;
}
.bo-search input {
  flex: 1;
  min-width: 0;
  padding: var(--bo-space-2) var(--bo-space-3);
  border: 0;
  background: transparent;
  font-family: inherit;
  font-size: 18px;
  line-height: 28px;
  color: var(--bo-indigo);
}
.bo-search input::placeholder {
  color: var(--bo-indigo-70);
  opacity: 1;
}
.bo-search input:focus {
  outline: none;
}
.bo-search label {
  color: var(--bo-indigo);
}

.bo-filters {
  display: flex;
  flex-wrap: wrap;
  gap: var(--bo-space-2);
}
.bo-filter {
  padding: var(--bo-space-2) var(--bo-space-3);
  border: 1px solid var(--bo-border);
  border-radius: var(--bo-radius-sm);
  background-color: var(--bo-white);
  color: var(--bo-indigo);
  font-family: inherit;
  font-size: 14px;
  line-height: 20px;
  cursor: pointer;
}
.bo-filter:hover {
  text-decoration: underline;
}
.bo-filter[aria-pressed="true"] {
  background-color: var(--bo-indigo);
  border-color: var(--bo-indigo);
  color: var(--bo-seashell);
}

/* Listing */
.bo-listing {
  padding: var(--bo-space-6) 0 0;
}
.bo-listing__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: var(--bo-space-4);
  margin-bottom: var(--bo-space-3);
}
.bo-listing__head p {
  margin: 0;
}
.bo-toggle {
  display: flex;
  align-items: center;
  gap: var(--bo-space-2);
  cursor: pointer;
}
.bo-toggle input {
  width: 18px;
  height: 18px;
  margin: 0;
  accent-color: var(--bo-indigo);
}
.bo-table-card {
  padding: var(--bo-space-2) var(--bo-space-5);
}
.bo-table {
  width: 100%;
  border-collapse: collapse;
}
.bo-table th {
  text-align: left;
  font-size: 14px;
  line-height: 20px;
  color: var(--bo-indigo-70);
  padding: var(--bo-space-3) var(--bo-space-3) var(--bo-space-3) 0;
}
.bo-table td {
  padding: var(--bo-space-3) var(--bo-space-3) var(--bo-space-3) 0;
  border-top: 1px solid var(--bo-border);
  vertical-align: top;
}
.bo-table td a {
  text-decoration: none;
}
.bo-table td a:hover {
  text-decoration: underline;
}
.bo-table td .bo-chip {
  margin-left: var(--bo-space-2);
}
.bo-table__cc,
.bo-table__bic {
  width: 20%;
}
.bo-empty {
  margin: 0;
  padding: var(--bo-space-4) 0;
}

/* One bank */
.bo-title-row {
  display: flex;
  align-items: center;
  gap: var(--bo-space-4);
  margin-bottom: var(--bo-space-4);
}
.bo-title-row .bo-display {
  margin: 0;
}
.bo-logo {
  flex: none;
  display: inline-flex;
  align-items: center;
  height: 64px;
  padding: var(--bo-space-2) var(--bo-space-3);
  background-color: var(--bo-white);
  border-radius: var(--bo-radius-md);
}
.bo-logo img {
  display: block;
  max-height: 48px;
  max-width: 160px;
  width: auto;
}
.bo-bank {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
  gap: var(--bo-space-4);
  align-items: start;
  padding-top: var(--bo-space-4);
}
.bo-guide,
.bo-side {
  padding: var(--bo-space-6);
}
.bo-guide .bo-h3,
.bo-side .bo-h3 {
  margin: 0 0 var(--bo-space-4);
}
.bo-guide__tag {
  margin: 0 0 var(--bo-space-3);
}
.bo-guide__cta {
  margin: var(--bo-space-5) 0 0;
}
.bo-note {
  margin: var(--bo-space-5) 0 0;
  padding: var(--bo-space-4);
  border: 1px solid var(--bo-border);
  border-radius: var(--bo-radius-sm);
  background-color: var(--bo-card-alt);
}
.bo-others {
  margin: 0 0 var(--bo-space-4);
  padding: 0;
  list-style: none;
}
.bo-others li {
  padding: var(--bo-space-2) 0;
}
.bo-others li + li {
  border-top: 1px solid var(--bo-border);
}
.bo-others a {
  text-decoration: none !important;
}
.bo-others a:hover {
  text-decoration: underline !important;
}
.bo-side__text {
  margin: 0 0 var(--bo-space-4);
}

/* HubDB rich text. Preflight resets list styles and heading sizes, so the
   numbered steps need their markers back. Regular weight only. */
.bo-prose > * + * {
  margin-top: var(--bo-space-3);
}
.bo-prose h2,
.bo-prose h3,
.bo-prose h4 {
  font-size: 18px;
  line-height: 28px;
  margin-top: var(--bo-space-4);
}
.bo-prose > :first-child {
  margin-top: 0;
}
.bo-prose ol {
  list-style: decimal;
  padding-left: var(--bo-space-4);
}
.bo-prose ul {
  list-style: disc;
  padding-left: var(--bo-space-4);
}
.bo-prose li {
  margin-top: var(--bo-space-2);
}
.bo-prose li::marker {
  color: var(--bo-indigo-70);
}
/* Several banks embed long unbroken URLs that overflow at 375 px */
.bo-prose a {
  overflow-wrap: anywhere;
}

/* Help block, shared by the listing and every bank */
.bo-help {
  padding: var(--bo-space-7) 0;
}
.bo-help__card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--bo-space-5);
  padding: var(--bo-space-6);
}
.bo-help__card p {
  margin: var(--bo-space-2) 0 0;
}
.bo-help__card .bo-h3 {
  margin: 0;
}
.bo-help__actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--bo-space-4);
}

/* HubSpot appends its own copyright widget after the footer block; the footer
   above already carries the copyright line. */
body:has(.bo-footer) .hs_cos_wrapper_type_page_footer .hs-footer-company-copyright {
  display: none;
}

/* Footer */
.bo-footer {
  background-color: var(--bo-indigo);
  color: var(--bo-seashell);
  padding: var(--bo-space-5) 0 var(--bo-space-4);
}
.bo-footer__grid {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(0, 1fr) minmax(0, 1fr);
  gap: var(--bo-space-5);
}
.bo-footer img {
  display: block;
  width: 160px;
  height: auto;
}
.bo-footer__intro {
  max-width: 320px;
  margin: var(--bo-space-3) 0 0;
  font-size: 14px;
  line-height: 20px;
}
.bo-footer h2 {
  margin: 0 0 var(--bo-space-3);
  font-size: 14px;
  line-height: 20px;
  color: var(--bo-pink);
}
.bo-footer ul {
  margin: 0;
  padding: 0;
  list-style: none;
}
.bo-footer li + li {
  margin-top: var(--bo-space-2);
}
.bo-footer a {
  font-size: 14px;
  line-height: 20px;
  color: inherit;
  text-decoration: none;
}
.bo-footer a:hover {
  text-decoration: underline;
}
.bo-footer__bottom {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: var(--bo-space-4);
  margin-top: var(--bo-space-4);
  padding-top: var(--bo-space-3);
  border-top: 1px solid rgba(249, 240, 238, 0.3);
  font-size: 14px;
  line-height: 20px;
}
.bo-footer__bottom p {
  margin: 0;
}
.bo-footer__bottom ul {
  display: flex;
  gap: var(--bo-space-4);
}
.bo-footer__bottom li + li {
  margin-top: 0;
}

@media (max-width: 1100px) {
  .bo-header__nav a:not(.bo-button) {
    display: none;
  }
}

@media (max-width: 900px) {
  .bo-bank {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (max-width: 640px) {
  .bo-container {
    padding: 0 var(--bo-space-4);
  }
  .bo-header__logo img {
    width: 112px;
  }
  .bo-header__nav a.bo-button {
    padding: var(--bo-space-2) var(--bo-space-3);
  }
  .bo-display {
    font-size: 40px;
    line-height: 50px;
  }
  .bo-head {
    padding: var(--bo-space-5) 0 var(--bo-space-3);
  }
  .bo-title-row {
    flex-direction: column;
    align-items: flex-start;
  }
  .bo-search input {
    font-size: 16px;
    padding: var(--bo-space-1) var(--bo-space-2);
  }
  .bo-table-card {
    padding: var(--bo-space-1) var(--bo-space-3);
  }
  .bo-table__bic {
    display: none;
  }
  .bo-table__cc {
    width: 30%;
  }
  .bo-table td .bo-chip {
    display: block;
    width: fit-content;
    margin: var(--bo-space-1) 0 0;
  }
  .bo-guide,
  .bo-side {
    padding: var(--bo-space-4);
  }
  .bo-help {
    padding: var(--bo-space-6) 0;
  }
  .bo-help__card {
    flex-direction: column;
    align-items: flex-start;
    padding: var(--bo-space-4);
  }
  .bo-footer__grid {
    grid-template-columns: minmax(0, 1fr);
  }
}
