.spr-footer--dark {
  --footer-color-background: var(--color-primary);
  --footer-color-text: white;
  --footer-link-color: white;
}

footer {
  color: var(--footer-color-text);
  background-color: var(--footer-color-background);
  padding-block: 0 0.875rem;

  .spr-logo {
    display: block;
    margin-block: 0 var(--space-small);
  }

  .spr-rich-text {
    font-size: var(--footer-font-size);
    line-height: var(--line-height-text);

    h2,
    ul,
    p {
      margin-block: 0 1rem;
    }

    h2:not(:empty) {
      font-size: var(--font-size-xs);
      font-weight: var(--font-weight-regular);
      line-height: var(--line-height-heading-5);
      margin-block: 0 var(--space-small);
    }

    ul {
      list-style: none;
      margin-block: 0;
      padding-inline: 0;
    }

    ul:not(.contextual-links) li:not(:last-child) {
      margin-block: 0 var(--footer-gap);
    }

    ul:not(.contextual-links) li::before {
      content: none;
    }

    a:not(.spr-button) {
      text-decoration: none;
      color: var(--footer-link-color);
    }

    a:not(.spr-button):hover {
      text-decoration: underline;
      color: var(--color-white);
    }
  }
}

.spr-footer__top.grid {
  position: relative;
  padding-block: var(--padding-vertical-main);
  gap: var(--padding-vertical-small) 0;

  &::after {
    position: absolute;
    right: var(--padding-horizontal-main);
    bottom: 0;
    left: var(--padding-horizontal-main);
    display: block;
    height: 0.0625rem;
    content: "";
    background-color: var(--color-white);
  }

  .spr-footer__col:nth-child(1) {
    display: flex;
    flex-direction: column;
    grid-column: 1 / span 4;
    justify-content: flex-end;
  }

  .spr-footer__col:nth-child(2) {
    grid-column: 1 / span 2;
  }
  .spr-footer__col:nth-child(3) {
    grid-column: 3 / span 2;
  }
  .spr-footer__col:nth-child(4) {
    grid-column: 1 / span 2;
  }

  @media screen and (min-width: 992px) {
    padding-block: var(--padding-vertical-small);
    gap: var(--grid-gap);

    .spr-footer__col:nth-child(1) {
      display: flex;
      flex-direction: column;
      grid-column: 1 / span 3;
      justify-content: flex-end;
    }

    .spr-footer__col:nth-child(2) {
      grid-column: 7 / span 2;
    }
    .spr-footer__col:nth-child(3) {
      grid-column: 9 / span 2;
    }
    .spr-footer__col:nth-child(4) {
      grid-column: 11 / span 2;
    }
  }
}

.spr-footer__bottom {
  padding-block: var(--space-small);

  .spr-footer__col {
    grid-column: 1 / span 12;
  }
}
