.grid-cards-achievements {
  display: grid;
  gap: $grid-gutter-width;
  grid-template-columns: 1fr 1fr;
  @include media-breakpoint-up(lg, $ds-breakpoints) {
    grid-template-columns: 1fr 1fr 1fr;
  }
  @include media-breakpoint-up(xl, $ds-breakpoints) {
    grid-template-columns: 1fr 1fr 1fr 1fr;
  }
  @include media-breakpoint-up(2xl, $ds-breakpoints) {
    grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr;
  }
}

.grid-cards {
  display: grid;
  gap: $grid-gutter-width;
  grid-template-columns: 1fr;
  @include media-breakpoint-up(sm, $ds-breakpoints) {
    grid-template-columns: 1fr 1fr;
  }
  @include media-breakpoint-up(lg, $ds-breakpoints) {
    grid-template-columns: 1fr 1fr 1fr;
  }
  @include media-breakpoint-up(xl, $ds-breakpoints) {
    grid-template-columns: 1fr 1fr 1fr 1fr;
  }
  @include media-breakpoint-up(2xl, $ds-breakpoints) {
    grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr;
  }
}

.grid-cards .card {
  margin-bottom: 0;
}

.list-cards {
  display: flex;
  flex-wrap: wrap;

  .card {
    margin: 0 $spacing-md $spacing-md 0;

    @include media-breakpoint-down(xs, $ds-breakpoints) {
      margin-right: 0;
    }
  }

  .card-xs {
    margin-right: $spacing-md;
  }

  .card:last-child {
    margin-right: 0;
  }

}

.card {
  display: flex;
  flex-direction: column;
  border-radius: $border-radius-lg;
}

.card.card-xs {

  width: $card-xs;
  height: $card-xs;

  &.tester-avatar {
    border-radius: $border-radius-lg;
    box-sizing: content-box;

    a {
      width: 100%;
      height: 100%;
    }

    img {
      width: $card-xs;
      height: $card-xs;
    }
  }
}


.card.card-sm {
  width: 100%;
  @include media-breakpoint-up(xs, $ds-breakpoints) {
    width: $card-sm;
  }
  .card-title {
    @include ellipsis;
    display: block;
    font-size: $font-size-h5;
    text-align: center;
  }
}

.card.card-md {
  width: 100%;
  @include media-breakpoint-up(xs, $ds-breakpoints) {
    width: $card-md;
  }
}

.card.card-lg {
  width: 100%;
  @include media-breakpoint-up(md, $ds-breakpoints) {
    width: $card-lg;
  }
}

.card.card-sm .card-img-sm {
  display: flex;
  align-items: center;
  overflow: hidden;
  width: 100%;
  height: $card-sm;

  img {
    width: 100%;
  }

  @include media-breakpoint-down(xs, $ds-breakpoints) {
    height: initial;
  }
}

.card.card-sm {
  .card-banner-sm {
    display: flex;
    position: relative;
    top: 0;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    width: $card-sm;
    height: $spacer;
    margin: -1px;
    border-bottom: $gray-lighter solid 1px;
    background-color: $yellow;
    color: $black;
    text-align: center;

    @include media-breakpoint-down(xs, $ds-breakpoints) {
      width: 100%;
      margin-right: 0;
      margin-left: 0;
    }
  }
}

.card-header {
  position: relative;
  padding: 0;
  padding-top: $spacing-xs;
  padding-bottom: $spacing-xs;
  border-bottom: 0;
}

.card-header ~ .card-body {
  padding-top: 0;
}

.card-header  .popover_info_icon {
  position: relative;
  top: 3px;
  right: 3px;
  padding: 3px;
  font-size: $font-size-icon-xs;
}
  
.card .card-title {
  display: block;
  font-size: $font-size-h5;
  line-clamp: 3;
}

.card-header .card-title {
  margin-bottom: 0;
  padding: $card-spacer-y $card-spacer-x;
  vertical-align: middle;
}

.card-body {
  flex-grow: 1;
  flex-shrink: 0;
  position: relative;
  padding: $spacing-md $spacing-sm;
}

.card-body ~ .card-body {
  padding-top: $spacing-sm;
}

.card-content {
  flex: 1 1 auto;
}

.card-footer {
  display: flex;
  flex-direction: row;
  min-height: 40px;
  padding: 0;
  border: 0;
}

.card-footer .btn-group {
  display: flex;
  width: 100%;

  .btn {
    flex: 1;
    padding: 8px;
    border-top-left-radius: 0;
    border-top-right-radius: 0;
    border-left: $border-width solid $white;

    &:first-child {
      border-left: none;
    }
  }
}

.card.selectable {
  .card-title {
    padding-left: $spacing-lg + $spacing-sm;
  }
}

.card.collapsable {
  .title {
    position: relative;

    @include io-icomoon("caret-down");

    &:before {
      position: absolute;
      right: $spacing-sm * -1;
      top: 2px;
      font-size: $font-size-icon-xs;
    }

    &.open {
      @include io-icomoon("caret-up");
    }
  }
}

.card .card-actions {
  display: flex;
  width: 100%;
}

.card .card-actions .btn {
  height: $btn-height;
  padding-left: $spacing-sm;
  padding-right: $spacing-sm;
  margin: 0;
  border-radius: 0;
  border-left: $border-width solid $white;

  &:first-child {
    border-bottom-left-radius: $border-radius-lg;
    border-left: none;
  }

  &:last-child {
    border-bottom-right-radius: $border-radius-lg;
  }
}

.card .card-actions .dropdown-actions .btn {
  border-left: $border-width solid $white;
  border-bottom-left-radius: 0;
}

.card .card-actions .btn-primary {
  flex-grow: 1;
}

.card .card-actions .btn-secondary {
  flex: 1;
  color: $white;
  background-color: $primary;
  border-top: none;
  border-right: none;
  border-bottom: none;
  &:hover, &:focus, &:active {
    background-color: $link-hover-color;
  }
}

.card .card-actions .btn-square {
  flex: auto;
  flex-grow: 0;
  flex-shrink: 0;
}

.card-actionbar {
  display: flex;
  width: 100%;
  padding: $spacing-xs $spacing-sm; 
  background-color: $actionbar;
  border-bottom-left-radius: $border-radius-lg;
  border-bottom-right-radius: $border-radius-lg;
}

.card-actionbar > .btn {
  margin-right: $spacing-xs;
}

.card-actionbar .btn.disabled, 
.card-actionbar .btn:disabled {
  border-color: $white-transparenter;
  color: $white-transparent;
  background-color: $petrol;
  background-image: url("@images/pattern-stripes-petrol.png");
  .icon {
    color: $white-transparent;
  }
}

.card-icon-header {
  height: $spacing-lg;
  margin-bottom: $spacing-xs;
  text-align: center;
  border-bottom: $border-width solid $border-color;
}

.card-icon-header .icon {
  position: absolute;
  height: $icon-lg;
  top: $spacing;
  left: 50%;
  transform: translateX(-50%);
  padding: 0 $spacing-xs;
  font-size: $icon-lg;
  background-color: $white;
}

.card .card-info-popover {
  position: absolute;
  right: $spacing-xxs;
  top: $spacing-xxs;
  z-index: 1;
}

.card-divider {
  display: block;
  height: 1px;
  margin-top: $spacing-md;
  margin-bottom: $spacing-md;
  background-color: $border-color;
}

.btn-close-card {
  position: absolute;
  justify-content: center;
  top: $spacing-xxs;
  right: $spacing-xxs;
  height: $btn-sm-height;
  width: $btn-sm-height;
  padding: $spacing-xxs;
  font-size: $font-size-icon-xs;
  color: $gray;
  background-color: transparent;
  border: none;
  pointer-events: all;
  cursor: pointer;

  &:hover, &:focus {
    color: $white;
    background-color: $link-hover-color;
  }
}