@define-mixin flash-type $type {
  .flash--$(type) {
    border: 0;
    background: var(--$(type)-color);
  }

  .flash--$(type) .flash__message {
    border-left: 1px solid var(--$(type)-border-color);
  }

  .flash--$(type) a {
    color: var(--$(type)-link-color);
  }

  .flash--$(type) a:hover {
    color: var(--link-hover-color);
  }
}

.flash {
  display: grid;
  grid-template-columns: auto 1fr;
  margin: var(--padding-normal);
  margin-bottom: 0;
  border-radius: var(--border-radius-inner);
}

@mixin if-phone {
  .flash {
    margin: var(--padding-small);
    margin-bottom: 0;
  }
}

.flash__icon {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: var(--padding-normal);
}

.flash__message {
  padding: var(--padding-normal);
}

@mixin flash-type success;
@mixin flash-type warning;
@mixin flash-type danger;
@mixin flash-type information;
@mixin flash-type special;