.cta-action {
  margin-top: calc(var(--spacing) * 6);
  display: flex;
  gap: calc(var(--spacing) * 3);
}

@media (min-width: 64rem) {
  .cta-action {
    margin-top: calc(var(--spacing) * 11);
  }
}


.cta-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: calc(var(--spacing) * 1);
  border-radius: 12px;
  border-style: var(--tw-border-style);
  border-width: 1px;
  border-color: var(--color-neutral-400);
  background-color: var(--color-primary-dark);
  padding-inline: calc(var(--spacing) * 6);
  padding-block: calc(var(--spacing) * 3);
  font-family: var(--font-inter);
  font-size: var(--text-sm);
  line-height: var(--tw-leading, var(--text-sm--line-height));
  --tw-font-weight: var(--font-weight-medium);
  font-weight: var(--font-weight-medium);
  --tw-tracking: calc(0.084px * -1);
  letter-spacing: -0.084px;
  --tw-shadow: 0 0 transparent;
  box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow),
      var(--tw-ring-shadow), var(--tw-shadow);
  transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke,
      --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;
  transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
  transition-duration: 0.3s;
  --tw-duration: 0.3s;
}

.cta-link:focus-visible {
  outline-style: var(--tw-outline-style);
  outline-width: 0;
}

@media (hover: hover) {
  .cta-link:hover {
    background-color: var(--color-teal-800);
  }
}


.cta-bg {
  position: absolute;
  inset: calc(var(--spacing) * 0);
  z-index: var(--z-base);
  height: 100%;
  width: 100%;
  object-fit: cover;
}


.cta-decor-1 {
  position: absolute;
  bottom: calc(var(--spacing) * 0);
  left: calc(var(--spacing) * 0);
  z-index: var(--z-base);
  display: none;
  width: calc(var(--spacing) * 75);
  object-fit: contain;
}

@media (min-width: 64rem) {
  .cta-decor-1 {
    display: block;
  }
}


.cta-decor-2 {
  position: absolute;
  right: calc(var(--spacing) * 0);
  bottom: calc(var(--spacing) * 0);
  z-index: var(--z-base);
  display: none;
  width: calc(var(--spacing) * 75);
  object-fit: contain;
}

@media (min-width: 64rem) {
  .cta-decor-2 {
    display: block;
  }
}


.root-footer {
  overflow: hidden;
  background-color: var(--color-navy);
}


.footer-top {
  margin-inline: auto;
  max-width: calc(var(--spacing) * 360);
  padding-top: calc(var(--spacing) * 14);
  padding-bottom: calc(var(--spacing) * 10);
}

@media (min-width: 48rem) {
  .footer-top {
    padding-inline: calc(var(--spacing) * 4);
  }
}

@media (min-width: 64rem) {
  .footer-top {
    padding-top: calc(var(--spacing) * 20);
  }
}

@media (min-width: 80rem) {
  .footer-top {
    padding-inline: calc(var(--spacing) * 28);
  }
}


.footer-brand-row {
  margin-inline: auto;
  display: flex;
  width: 100%;
  flex-direction: column;
  flex-wrap: wrap;
  justify-content: space-between;
}

@media (min-width: 48rem) {
  .footer-brand-row {
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: center;
  }
}

@media (min-width: 64rem) {
  .footer-brand-row {
    align-items: flex-start;
  }
}


.footer-brand {
  display: flex;
  height: calc(var(--spacing) * 37.5);
  max-width: calc(var(--spacing) * 100);
  flex-direction: column;
  align-items: flex-start;
  justify-content: space-between;
  padding-inline: calc(var(--spacing) * 4);
  text-align: center;
}

@media (min-width: 40rem) {
  .footer-brand {
    margin-inline: calc(var(--spacing) * 0);
    height: 100%;
    min-height: calc(var(--spacing) * 50);
    width: calc(var(--spacing) * 100);
  }
}

@media (min-width: 48rem) {
  .footer-brand {
    width: calc(var(--spacing) * 62.5);
    align-items: flex-start;
    padding-inline: calc(var(--spacing) * 0);
    text-align: left;
  }
}

@media (min-width: 64rem) {
  .footer-brand {
    width: calc(var(--spacing) * 91.75);
  }
}

@media (min-width: 80rem) {
  .footer-brand {
    padding-inline: calc(var(--spacing) * 0);
  }
}


.footer-brand-intro {
  width: 100%;
}


.footer-link {
  display: inline-block;
  flex-shrink: 0;
}

.footer-link:focus-visible {
  outline-color: var(--color-primary-base);
}


.footer-image,
.root-footer .custom-logo {
  height: calc(var(--spacing) * 17);
  width: calc(var(--spacing) * 17);
  flex-shrink: 0;
  object-fit: contain;
  /* The logo's dark disc is close in tone to this navy footer and disappears
     into it without a backdrop — a soft teal halo keeps it visible. */
  background: radial-gradient(circle, var(--color-primary-base-40) 0%, var(--color-primary-base-0) 72%);
  border-radius: var(--radius-full);
}


.footer-blurb {
  margin-top: calc(var(--spacing) * 4);
  text-align: start;
  font-size: var(--text-sm);
  line-height: var(--tw-leading, var(--text-sm--line-height));
  --tw-tracking: 0.16px;
  letter-spacing: 0.16px;
  color: var(--color-navy-muted);
}

@media (min-width: 64rem) {
  .footer-blurb {
    font-size: var(--text-md);
    line-height: var(--tw-leading, var(--text-md--line-height));
  }
}


.footer-list {
  margin-top: calc(var(--spacing) * 10);
  display: flex;
  flex-shrink: 0;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: calc(var(--spacing) * 13.5);
  padding-left: calc(var(--spacing) * 4);
}

@media (min-width: 48rem) {
  .footer-list {
    margin-top: calc(var(--spacing) * 0);
    flex-grow: 0;
    gap: calc(var(--spacing) * 7.5);
  }
}

@media (min-width: 64rem) {
  .footer-list {
    padding-left: calc(var(--spacing) * 14);
  }
}

@media (min-width: 80rem) {
  .footer-list {
    gap: calc(var(--spacing) * 16);
  }
}


.footer-nav-item {
  width: calc(var(--spacing) * 36);
}

@media (min-width: 48rem) {
  .footer-nav-item {
    width: calc(var(--spacing) * 23.75);
  }
}

@media (min-width: 64rem) {
  .footer-nav-item {
    width: calc(var(--spacing) * 22.5);
  }
}

@media (min-width: 80rem) {
  .footer-nav-item {
    width: calc(var(--spacing) * 28);
  }
}


.footer-heading {
  font-size: var(--text-md);
  line-height: var(--tw-leading, var(--text-md--line-height));
  color: var(--color-white);
}


.product-link {
  display: block;
  font-size: var(--text-sm);
  line-height: var(--tw-leading, var(--text-sm--line-height));
  color: var(--color-navy-muted);
  --tw-duration: 0.1s;
  transition-duration: 0.1s;
}

.product-link:focus-visible {
  outline-color: var(--color-primary-base);
}

@media (hover: hover) {
  .product-link:hover {
    color: var(--color-primary-base);
  }
}


.footer-download-item {
  width: 100%;
}

@media (min-width: 48rem) {
  .footer-download-item {
    width: calc(var(--spacing) * 45);
  }
}

@media (min-width: 64rem) {
  .footer-download-item {
    width: calc(var(--spacing) * 77);
  }
}


.footer-download-text {
  font-size: var(--text-sm);
  line-height: var(--tw-leading, var(--text-sm--line-height));
  color: var(--color-navy-muted);
}


.footer-download-badge {
  display: flex;
  gap: calc(var(--spacing) * 3);
}

@media (min-width: 48rem) {
  .footer-download-badge {
    flex-direction: column;
  }
}

@media (min-width: 64rem) {
  .footer-download-badge {
    flex-direction: row;
  }
}


.footer-download-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: calc(var(--spacing) * 1);
  border-radius: 12px;
  border-style: var(--tw-border-style);
  border-width: 1px;
  border-color: var(--color-white-15);
  background-color: var(--color-primary-dark);
  padding-inline: calc(var(--spacing) * 5);
  padding-block: calc(var(--spacing) * 3.25);
  font-family: var(--font-inter);
  font-size: var(--text-sm);
  line-height: var(--tw-leading, var(--text-sm--line-height));
  --tw-font-weight: var(--font-weight-medium);
  font-weight: var(--font-weight-medium);
  --tw-tracking: calc(0.084px * -1);
  letter-spacing: -0.084px;
  --tw-shadow: 0 0 transparent;
  box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow),
      var(--tw-ring-shadow), var(--tw-shadow);
  transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke,
      --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;
  transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
  transition-duration: 0.3s;
  --tw-duration: 0.3s;
}

.footer-download-link:focus-visible {
  box-shadow: 0 1px 2px var(--color-shadow-5),
      0 0 0 4px var(--color-surface-muted);
  outline-style: var(--tw-outline-style);
  outline-width: 0;
}

@media (hover: hover) {
  .footer-download-link:hover {
    background-color: var(--color-teal-800);
  }
}


.footer-bottom {
  margin-top: calc(var(--spacing) * 10);
  display: flex;
  flex-direction: column-reverse;
  align-items: center;
  justify-content: space-between;
}

@media (min-width: 48rem) {
  .footer-bottom {
    margin-top: calc(var(--spacing) * 16);
    flex-direction: row;
  }
}


.footer-copyright {
  margin-top: calc(var(--spacing) * 5);
  text-align: center;
  font-size: var(--text-sm);
  line-height: var(--tw-leading, var(--text-sm--line-height));
  --tw-font-weight: var(--font-weight-medium);
  font-weight: var(--font-weight-medium);
  --tw-tracking: 0.28px;
  letter-spacing: 0.28px;
  color: var(--color-navy-muted);
}

@media (min-width: 40rem) {
  .footer-copyright {
    text-align: left;
  }
}

@media (min-width: 48rem) {
  .footer-copyright {
    margin-top: calc(var(--spacing) * 0);
  }
}


.footer-legal-link {
  font-size: var(--text-sm);
  line-height: var(--tw-leading, var(--text-sm--line-height));
  --tw-font-weight: var(--font-weight-medium);
  font-weight: var(--font-weight-medium);
  --tw-tracking: 0.28px;
  letter-spacing: 0.28px;
  color: var(--color-navy-muted);
  --tw-duration: 0.3s;
  transition-duration: 0.3s;
}

.footer-legal-link:focus-visible {
  outline-color: var(--color-primary-base);
}

@media (hover: hover) {
  .footer-legal-link:hover {
    color: var(--color-primary-base);
  }
}


.footer-legal-link-secondary {
  padding-left: calc(var(--spacing) * 2);
  font-size: var(--text-sm);
  line-height: var(--tw-leading, var(--text-sm--line-height));
  --tw-font-weight: var(--font-weight-medium);
  font-weight: var(--font-weight-medium);
  --tw-tracking: 0.28px;
  letter-spacing: 0.28px;
  color: var(--color-navy-muted);
  --tw-duration: 0.3s;
  transition-duration: 0.3s;
}

.footer-legal-link-secondary:focus-visible {
  outline-color: var(--color-primary-base);
}

@media (hover: hover) {
  .footer-legal-link-secondary:hover {
    color: var(--color-primary-base);
  }
}

.footer-social-link {
  display: inline-flex;
  width: calc(var(--spacing) * 9);
  height: calc(var(--spacing) * 9);
  align-items: center;
  justify-content: center;
  gap: calc(var(--spacing) * 1);
  border-radius: 3.40282e38px;
  border-style: none;
  border-width: 1px;
  --tw-border-style: none;
  border-color: var(--color-border-secondary);
  background-color: var(--color-background-primary);
  padding-inline: calc(var(--spacing) * 0);
  padding-block: calc(var(--spacing) * 0);
  font-family: var(--font-inter);
  font-size: var(--text-sm);
  line-height: var(--tw-leading, var(--text-sm--line-height));
  --tw-font-weight: var(--font-weight-medium);
  font-weight: var(--font-weight-medium);
  --tw-tracking: calc(0.084px * -1);
  letter-spacing: -0.084px;
  color: var(--color-text-primary);
  transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke,
      --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;
  transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
  transition-duration: 0.3s;
  --tw-duration: 0.3s;
}

.footer-social-link:focus-visible {
  --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(4px + var(--tw-ring-offset-width))
      var(--tw-ring-color, currentcolor);
  box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow),
      var(--tw-ring-shadow), var(--tw-shadow);
  --tw-ring-color: var(--color-shadow-5);
  outline-style: var(--tw-outline-style);
  outline-width: 0;
}

@media (hover: hover) {
  .footer-social-link:hover {
    background-color: var(--color-background-tertiary);
  }
}

/* The shared .divide-text-secondary utility assumes a light background; on the
   navy footer that divider needs to be light instead. */
.root-footer :where(.divide-text-secondary > :not(:last-child)) {
  border-color: var(--color-white-15);
}
