.expanding-sidebar {
  display: flex;
  flex-direction: column;
  height: 100%;

  .background {
    position: fixed;
    top: 0;
    right: 0;
    z-index: 200;
    height: 100%;
    width: 100%;
    background-color: $shop-sidebar-overlay;
    opacity: 0;
    visibility: hidden;
    transition: all $transition-sidebar;
  }

  &.shown {
    .background {
      opacity: 1;
      visibility: visible;
    }

    .sidebar,
    .sidebar-footer {
      margin-right: 0;
    }
  }

  .sidebar {
    position: fixed;
    top: 0;
    right: 0;
    z-index: 210;
    height: 100%;
    width: $sidebar-large-width;
    margin-right: -$sidebar-large-width;
    background-color: rgba($white, 0.95);
    padding: 1em;
    transition: margin $transition-sidebar;
    overflow-y: auto;
  }

  .sidebar-footer {
    background-color: $grey-800;
    width: $sidebar-large-width;
    margin-right: -$sidebar-large-width;
    min-height: $sidebar-footer-height;
    position: fixed;
    bottom: 0;
    right: 0;
    transition: margin $transition-sidebar;
    padding: 1em;

    button,
    a.button {
      width: 48%;
    }
  }

  @include breakpoint(tablet) {
    .sidebar,
    .sidebar-footer {
      width: $sidebar-medium-width;
      margin-right: -$sidebar-medium-width;
    }
  }

  @include breakpoint(mobile) {
    .sidebar,
    .sidebar-footer {
      width: $sidebar-small-width;
      margin-right: -$sidebar-small-width;
    }
  }
}
