@mixin card---alter() {
}

@mixin card() {
  $card-inner-border-radius: calc(#{$card-border-radius} - #{$card-border-width});
  position: relative;
  display: flex;
  flex-direction: column;
  min-width: 0;
  word-wrap: break-word;
  background-color: $card-bg;
  background-clip: border-box;
  border: $card-border-width solid $card-border-color;
  border-radius: $card-border-radius;
  box-shadow: $card-box-shadow;
  & > * {
    margin-top: 0;
    margin-bottom: 0;
    &:first-child {
      border-radius: $card-inner-border-radius $card-inner-border-radius 0 0;
    }
    &:last-child {
      border-radius: $card-inner-border-radius $card-inner-border-radius 0 0;
    }
  }
  & > .table-responsive > .table,
  & > .table {
    margin-bottom: 0;
    border: none;
    th,
    td {
      border-bottom: none;
      border-left: none;
      &:last-child {
        border-right: none;
      }
    }
  }
  @include card---alter;
}

@mixin card__header---alter() {
}

@mixin card__header() {
  padding: $card-spacer-y $card-spacer-x;
  margin-bottom: 0;
  border-bottom: $card-border-width solid $card-border-color;
  @include card__header---alter;
}

@mixin card__heading---alter() {
}

@mixin card__heading() {
  font-family: $card-heading-font-family;
  font-weight: $card-heading-font-weight;
  font-size: $card-heading-font-size;
  margin-bottom: 0;
  @include card__heading---alter;
}

@mixin card__body---alter() {
}

@mixin card__body() {
  flex: 1 1 auto;
  padding: $card-spacer-x;
  & > * {
    &:last-child {
      margin-bottom: 0;
    }
  }
  @include card__body---alter;
}

@mixin card__title---alter() {
}

@mixin card__title() {
  margin-bottom: $card-spacer-y;
  @include card__title---alter;
}

@mixin card__subtitle---alter() {
}

@mixin card__subtitle() {
  margin-top: -($card-spacer-y / 2);
  margin-bottom: 0;
  @include card__subtitle---alter;
}

@mixin card__footer---alter() {
}

@mixin card__footer() {
  padding: $card-spacer-y $card-spacer-x;
  border-top: $card-border-width solid $card-border-color;
  @include card__footer---alter;
}

@mixin card__media---alter() {
}

@mixin card__media() {
  width: 100%;
  @include card__media---alter;
}
