@use "variables";

ul.fwe-list-group {
  margin: 0;
  padding: 0;
  list-style-type: none;
}

.fwe-list-group {
  display: flex;
  flex-direction: column;

  .fwe-list-group-item {
    display: flex;
    flex-direction: row;
    align-items: center;
    min-height: 48px;
    padding-left: 16px;
    padding-right: 16px;
    line-height: 24px;
    position: relative;
    flex-wrap: wrap;

    &.fwe-list-group-item-custom {
      flex-direction: column;
      align-items: flex-start;
      justify-content: center;
    }

    .fwe-list-group-item-head .fwe-badge,
    .fwe-badge {
      display: inline-block;
      margin-left: auto;
    }

    [class^="fwe-icon-"],
    [class*=" fwe-icon-"],
    .fwe-svg-icon,
    a,
    button {
      display: inline-block;
      margin-left: auto;
    }

    .fwe-list-group-item-head {
      display: flex;
      flex-grow: 1;
      width: 100%;
      font-weight: variables.$font-weight-bold;
      margin-bottom: 24px;
      margin-top: 16px;
    }

    .fwe-list-group-item-body {
      width: 100%;
      margin-bottom: 24px;
    }

    .fwe-list-group-item-footer {
      width: 100%;
      font-size: variables.$font-size-small;
      margin-bottom: 16px;
    }

    &::before {
      position: absolute;
      content: "";
      top: 0;
      bottom: 0;
      width: 1px;
      left: 0;
      background-color: variables.$hero;
      transform-origin: left top;
      transform: scaleX(0);
      transition: transform 0.3s;
    }

    &.fwe-active {
      color: variables.$hero;
      &::before {
        transform: scaleX(4);
      }

      .fwe-list-group-item-body,
      .fwe-list-group-item-footer {
        color: variables.$text;
      }
    }

    &.fwe-disabled {
      color: variables.$text-disabled;
      &::before {
        background-color: variables.$control-hover;
      }
    }
  }

  a.fwe-list-group-item {
    cursor: pointer;
    color: variables.$text;

    &:not(.fwe-disabled):hover {
      background-color: variables.$sucanul;
      .fwe-list-group-item-body,
      .fwe-list-group-item-footer {
        color: variables.$text;
      }
    }
  }

  button.fwe-list-group-item {
    outline: none;
    background-color: inherit;
    text-align: left;
    border: none;
    width: 100%;
    cursor: pointer;

    &:not(.fwe-disabled):hover {
      color: variables.$hero;
      background-color: variables.$sucanul;
    }
  }

  &.fwe-list-group-border {
    .fwe-list-group-item,
    button.fwe-list-group-item {
      border-bottom: 1px solid variables.$border;
      &:last-child {
        border-bottom: none;
      }
    }
  }

  &.fwe-list-group-horizontal {
    flex-direction: row;
    padding: 0px;

    .fwe-list-group-item {
      padding-left: 12px;
      padding-right: 12px;
      border-bottom: none;

      &:first-child {
        padding-left: 16px;
      }
      &:last-child {
        border-bottom: none;
        padding-right: 16px;
      }

      &::before {
        position: absolute;
        content: "";
        top: unset;
        bottom: 0;
        left: 0;
        right: 0;
        width: 100%;
        height: 1px;
        background-color: variables.$hero;
        transform-origin: center bottom;
        transform: scaleY(0);
        transition: transform 0.3s;
      }

      &.fwe-active {
        color: variables.$hero;
        &::before {
          transform: scaleY(4);
        }
      }

      &.fwe-disabled {
        color: variables.$text-disabled;
        &::before {
          background-color: variables.$control-hover;
        }
      }
    }

    &.fwe-bb {
      .fwe-list-group-item {
        &::before {
          bottom: -1px;
        }
      }
    }

    a.fwe-list-group-item,
    button.fwe-list-group-item {
      width: auto;

      &:not(.fwe-disabled):hover {
        color: variables.$hero;
        background-color: unset;
      }
    }
  }
}

.fwe-list-group-header {
  display: flex;
  align-items: center;
  padding: 14px 24px;
  border-bottom: 1px solid variables.$border;

  button {
    margin-left: auto;
  }
}
