/* ALERTS */
/**
  .alert
    Regular Info Alert
    Disappears automatically after 30 seconds
    Disappears after x seconds if explicitly specified via data-decay='x'
    Can be told not to disappear with data-decay='0'

  .alert-success
    Disappears automatically after 30 seconds

  .alert-warning
    Does not disappear
    Orange regardless of user's selected theme

  .alert-error
    Does not disappear
    Red regardless of user's selected theme

 */
.alerts {
  position: fixed;
  bottom: 0;
  right: 5%;
  z-index: 20;
  text-align: right;
  display: flex;
  flex-direction: column;
}

.alerts__toggler {
  width: 40px;
  height: 40px;
  position: absolute;
  top: 400px;
  left: 50%;
  transform: translateX(-50%);
  cursor: pointer;

  &::before {
    content: '\f077';
    position: absolute;
    font-family: "Font Awesome 5 Free";
    left: 50%;
    top: 0;
    height: 30px;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    color: var(--color-grey);
    font-size: 30px;
    transform: translateX(-50%);
  }
}

.alerts__toggler--visible {
  top: -40px;
  opacity: 1;
  transition: top     .5s cubic-bezier(0.73, 1.25, 0.61, 1),
              opacity .5s cubic-bezier(0.73, 1.25, 0.61, 1);
}

@media (max-width: 425px) {

  .alerts {
    left: 5%;
  }
}

.alert {
  position: relative;
  display: block;
  background-color: var(--color-lightblack);
  font-size: 1rem;
  color: var(--color-lightwhite);
  z-index: 0;
  padding: 0 50px;
  padding-right: 60px;
  animation: slide-in-alert .2s ease-out forwards;
  margin-bottom: 10px;
  transition: margin-bottom .2s ease-out;
}

.alert a {
  color: var(--color-lightwhite);
}

@keyframes slide-in-alert {
  from {
    transform: translateY(120%);
  }
  to {
    transform: translateY(0);
  }
}

@keyframes slide-out-alert {
  from {
    transform: translateY(0);
    max-height: 200px;
  }
  to {
    transform: translateY(250%);
    opacity: 0;
    max-height: 0;
    overflow: hidden;
  }
}

@media (min-width: 425px) {

  .alert {
    max-width: 400px;
  }
}

.alert--invisible {
  animation: slide-out-alert .2s ease-out forwards;
  margin-bottom: 0;
}

.alert__content {
  padding: 8px 0;
  min-height: 40px;
  position: relative;
  display: flex;
  font-weight: 600;
  align-items: center;
  text-align: left;
}

.alert__icon {
  text-align: right;
  position: absolute;
  left: 0px;
  top: 0;
  width: 50px;
  height: 100%;
  z-index: 40;

  &::before {
    content: '\f05a';
    position: absolute;
    font-family: "Font Awesome 5 Free";
    font-size: 24px;
    top: 50%;
    left: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    transform: translate(-50%, -50%);
    border-radius: 50%;
    width: 30px;
    height: 30px;
  }
}

.alert__close {
  cursor: pointer;
  text-align: right;
  position: absolute;
  right: 0px;
  top: 0;
  width: 60px;
  height: 100%;
  transition: all .3s ease;
  z-index: 40;

  &:hover {
    transform: scale(1.05, 1.05);

    &::before {
      box-shadow: 0 0 4px white;
      background-color: rgba(255, 255, 255, 0.1);
      color: white;
    }
  }

  &::before {
    content: '\f00d';
    position: absolute;
    font-family: "Font Awesome 5 Free";
    top: 50%;
    left: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    transform: translate(-50%, -50%);
    border-radius: 50%;
    width: 30px;
    height: 30px;
    transition: all .15s ease;
  }
}

@media (max-width: 768px) {

  .alert__close {
    width: 40px;
  }
}

.alert-success {
  background-color: var(--color-success);

  .alert__icon::before {
    content: '\f058';
  }
}

.alert-warning {
  background-color: var(--color-warning);

  .alert__icon::before {
    content: '\f06a';
  }
}

.alert-error {
  background-color: var(--color-error);

  .alert__icon::before {
    content: '\f071';
  }
}
