@include ccs-exports("ccs/component/ccs-footer") {

  $ccs-footer-background: ccs-colour("black");
  $ccs-footer-border: $ccs-border-colour;
  // This variable can be removed entirely once the legacy palette goes away,
  // as it'll just be the same as $ccs-footer-border.
  $ccs-footer-border-top: $ccs-border-colour;
  $ccs-footer-text: ccs-colour("white");

  $ccs-footer-columns-to-rows-point: 501px;

  .ccs-footer {
    @include govuk-font($size: 16);
    @include govuk-responsive-padding(7, "top");
    @include govuk-responsive-padding(5, "bottom");

    border-top: 1px solid $ccs-footer-border-top;
    color: $ccs-footer-text;
    background: $ccs-footer-background;
  }

  .ccs-footer__link {
    @include govuk-link-common;

    &:link,
    &:visited,
    &:hover {
      color: $ccs-footer-text;
    }

    &:active,
    &:focus {
      color: $govuk-focus-text-colour;
    }

    // alphagov/govuk_template includes a specific a:link:focus selector
    // designed to make unvisited links a slightly darker blue when focussed, so
    // we need to override the text colour for that combination of selectors.
    @include govuk-compatibility(govuk_template) {
      &:link:focus {
        @include govuk-text-colour;
      }
    }
  }

  .ccs-footer__section-break {
    margin: 0; // Reset `<hr>` default margins
    @include govuk-responsive-margin(8, "bottom");
    border: 0; // Reset `<hr>` default borders
    border-bottom: 1px solid $ccs-footer-border;
  }

  .ccs-footer__meta {
    display: -ms-flexbox;
    display: flex; // Support: Flexbox
    margin-right: -$govuk-gutter-half;
    margin-left: -$govuk-gutter-half;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; // Support: Flexbox
    -ms-flex-align: end;
        align-items: flex-end; // Support: Flexbox
    -ms-flex-pack: center;
        justify-content: center; // Support: Flexbox
    text-align: right;
  }

  .ccs-footer__meta-item {
    margin-right: $govuk-gutter-half;
    margin-bottom: govuk-spacing(5);
    margin-left: $govuk-gutter-half;

    @include govuk-media-query ($until: $ccs-footer-columns-to-rows-point) {
      &:first-child {
        -ms-flex-order: 2;
            order: 2;
      }
    }
  }

  .ccs-footer__meta-item--grow {
    -ms-flex: 1;
        flex: 1; // Support: Flexbox

    @include govuk-media-query ($until: tablet) {
      -ms-flex-preferred-size: 320px;
          flex-basis: 320px; // Support: Flexbox
    }

    @include govuk-media-query ($until: $ccs-footer-columns-to-rows-point) {
      text-align: left;
    }
  }

  .ccs-footer__inline-list {
    margin-top: 0;
    margin-bottom: govuk-spacing(3);
    padding: 0;

    &:last-child {
      margin-bottom: 0;
    }
  }

  .ccs-footer__meta-custom {
    a {
      color: $ccs-footer-text;
    }
  }

  .ccs-footer__inline-list-item {
    display: inline-block;
    margin-bottom: govuk-spacing(1);
    margin-left: govuk-spacing(3);

    @include govuk-media-query ($until: tablet) {
      margin-right: govuk-spacing(3);
      margin-left: 0;
    }
  }

  .ccs-footer__inline-list--bottom > .ccs-footer__inline-list-item {
    margin-bottom: 0;
  }

  .ccs-footer__heading {
    margin-bottom: govuk-spacing(6);
    padding-bottom: govuk-spacing(4);

    @include govuk-media-query ($until: tablet) {
      padding-bottom: govuk-spacing(2);
    }
    border-bottom: 1px solid $ccs-footer-border;
    color: $ccs-footer-text;
  }

  .ccs-footer__navigation {
    @include govuk-clearfix;
    margin-right: -$govuk-gutter-half;
    margin-left: -$govuk-gutter-half;
  }

  .ccs-footer__section {
    display: inline-block;
    margin-bottom: $govuk-gutter;
    vertical-align: top;
  }

  .ccs-footer__list {
    margin: 0;
    padding: 0;
    list-style: none;
    -webkit-column-gap: $govuk-gutter;
            column-gap: $govuk-gutter; // Support: Columns

    // Disable thicker underlines on hover because of a bug in Chromium
    // affecting links within columns
    // https://bugs.chromium.org/p/chromium/issues/detail?id=1190987
    .ccs-footer__link:hover {
      text-decoration-thickness: auto;
    }
  }

  @include govuk-media-query ($from: desktop) {
    .ccs-footer__list--columns-2 {
      -webkit-column-count: 2;
              column-count: 2; // Support: Columns
    }

    .ccs-footer__list--columns-3 {
      -webkit-column-count: 3;
              column-count: 3; // Support: Columns
    }
  }

  .ccs-footer__list-item {
    @include govuk-responsive-margin(4, "bottom");
  }

  .ccs-footer__list-item:last-child {
    margin-bottom: 0;
  }

  .ccs-footer__logo {
    @include govuk-responsive-margin(5, "bottom");
    box-sizing: border-box;

    @include govuk-media-query ($from: tablet) {
      width: 100%;
      padding-right: $govuk-gutter-half;
      float: left;
      vertical-align: top;
    }
  }

  .ccs-footer__copyright {
    margin-left: 0;
    text-align: center;
  }
}
