/*
 * Rebuild Bootstrap's alert class to work with
 * theme colors as CSS variables.
 */

.alert {
    position: relative;
    padding: $alert-padding-y $alert-padding-x;
    margin-bottom: $alert-margin-bottom;
    border: $alert-border-width solid transparent;
    @include border-radius($alert-border-radius);
}

// Headings for larger alerts
.alert-heading {
    // Specified to prevent conflicts of changing $headings-color
    color: inherit;
}

// Provide class for links that match alerts
.alert-link {
    font-weight: $alert-link-font-weight;
}


// Dismissible alerts
//
// Expand the right padding and account for the close button's positioning.

.alert-dismissible {
    padding-right: $close-font-size + $alert-padding-x * 2;

    // Adjust close link position
    .close {
        position: absolute;
        top: 0;
        right: 0;
        z-index: 2;
        padding: $alert-padding-y $alert-padding-x;
        color: inherit;
    }
}


// Alternate styles
//
// Generate contextual modifier classes for colorizing the alert.

@mixin alert-variant($background, $border, $color) {
    color: $color;
    background: $background;
    border-color: $border;
  
    hr {
      border-top-color: color-mix(in lch, $border 95%, black),
    }
  
    .alert-link {
      color: color-mix(in lch, $color 90%, black),
    }
  }
  

.alert-danger {
    @include alert-variant(
        color-mix(in lch, $danger 20%, white),
        color-mix(in lch, $danger 40%, white),
        color-mix(in lch, $danger 50%, black),
    );
}

.alert-warning {
    @include alert-variant(
        color-mix(in lch, $warning 20%, white),
        color-mix(in lch, $warning 40%, white),
        color-mix(in lch, $warning 50%, black),
    );
}

.alert-info {
    @include alert-variant(
        color-mix(in lch, $info 20%, white),
        color-mix(in lch, $info 40%, white),
        color-mix(in lch, $info 50%, black),
    );
}
