// Mixin and colors

$card-color-default: white;

@mixin card-self-contained() {
    @include card-container();
    background-color:$card-color-default;
}

@mixin card-container() {
    @include border-radius();
    box-shadow: $large-shadow;
    border: none;
    margin-bottom: $baselinerem;
    background-color:transparent;
}

@mixin card-element() {
    border:0;
    border-radius:0;
    background-color:$card-color-default;

    &:first-child {
        @include border-radius-top($border-radius);
    }

    &:last-child {
        @include border-radius-bottom($border-radius);
    }

    &:only-child {
        @include border-radius();
    }
}

@mixin card-relief {
    .card-body:last-child {
        box-shadow: $large-shadow, $inset-shadow;
    }

    box-shadow: $large-shadow, $inset-shadow;
}

// CARD COLORIZATION

@mixin colorize-card() {
    @each $name, $color in list-colors() {
        &-#{$name} { @include card-color(get-color($name), #FFF, #000); }
    }
}

@mixin card-color($background-color, $light-color, $dark-color) {
  & > .card-header, & > .card-footer { @include background-color($background-color, $light-color, $dark-color); }
  &.card-colored > .card-body { @include background-color($background-color, $light-color, $dark-color); }
}

// ALERT COLORIZATION

@mixin colorize-alert() {
  @each $name, $color in list-colors() {
        &-#{$name} { @include alert-color(get-color($name)); }
    }
}

@mixin alert-color($background-color) {
  background-color: lighten($background-color, 35%);
  @if (luminance($background-color) > 128 * 0.8) {
    color: darken($background-color, 70%);
    a, .alert-link {
      color:darken($background-color, 70%);
      font-weight:bold;
    }
  } @else {
    color: lighten($background-color, 80%);
    a, .alert-link {
      color:lighten($background-color, 85%);
      font-weight:bold;
    }
  }

}

/* 10.1 - Cards */

.card {
    @include card-container();

    h1, h2, h3, h4, h5, h6, h7, h8, h9, h10  {
	   color:#333;
	   text-shadow: 0px 0px 0px rgba(0, 0, 0, 0);
    }

    @include colorize-card();
}

.card-body {
    @include card-element();
}

/* 10.1.1 - Headers */

.card-header, .card-footer {
    @include card-element();
    @include borders();
    font-size:1.1em;
    box-shadow: $inset-relief;
    text-shadow: 0px 1px 1px rgba(0,0,0,0.3);
    font-weight:600;
    border-radius: 0;

    h1, h2, h3, h4, h5, h6, h7, h8, h9, h10  {
        font-size:1em;
        text-shadow: 0px -1px 0px rgba(0,0,0,0.3);
        padding:0px;
        margin:0px;
        color:#FFF;
        font-weight:600;
        line-height:1.5em;
    }
}

/* 10.1.2 - Meta */

.card-meta {
  padding:1em;
    @include card-element();
  border-bottom: $border-size solid rgba(0,0,0,0.2);

  &.media {
    -ms-flex-align: center !important;
    align-items: center !important;
  }

  .media-left .media-object {
	  height: 64px;
	  width: 64px;
	  border-radius: 10px;
    margin-right: $baselinerem;
  }


  author {
	  display:block;
	  font-weight:600;
  }

  time {
  	display:block;
  	font-style:italic;
  }
}

/* 10.1.3 - Lists */

.list-group {
    @include card-element();
}

.list-group-item {
	border: none;
	background-color:transparent;
}

a.list-group-item:hover {
	border-style:none;
	border-width:0px;
	border-radius:0px;
	background-color:rgba(0,0,0,0.1);
}

/* 10.2 - Breadcrumb */

.breadcrumb {
  @include card-relief();
  @include li-no-margin();
  background-color:#eeeeec;
}

/* 10.3 - Alerts */

.alert {
  @include card-self-contained();
  color:rgba(0, 0, 0, 0.7);

  @include colorize-alert();
}
