/**
* Mixins to buttons.
*/
@import './media';

@mixin btn-base {
  position: relative;
  display: inline-flex;
  width: fit-content;
  border-radius: 2px;
  outline-color: transparent;
  color: inherit;
  font-style: normal;
  font-family: $font-default;
  font-size: 18px;
  font-weight: $font-weight-bold;
  line-height: 150%;
  text-decoration: none;
  text-align: center;
  align-items: center;
  justify-content: center;
  column-gap: 8px;
  cursor: pointer;

  &[disabled],
  &.disabled {
    pointer-events: none;
    background-color: $color-black20;
    color: $color-black40;
  }
}

@mixin btn-size-default {
  min-height: 62px;
  padding: 8px 40px;
}

@mixin btn-size-sm {
  min-height: 54px;
  padding: 8px 24px;
}

@mixin btn-size-tab {
  min-height: 48px;
  padding: 12px 20px;
  border-radius: 999px;
  font-size: 13px;
  line-height: 130%;
}

@mixin btn-focus {
  &:focus {
    outline-width: 1px;
    outline-style: solid;
    outline-color: $color-black;
    outline-offset: -4px;
  }
}

@mixin btn-focus-visible($offset: -4px) {
  &:focus-visible {
    outline-width: 2px;
    outline-style: solid;
    outline-color: #005fcc;
    outline-offset: $offset;
    border-radius: 1px;
  }
}

@mixin btn-transition {
  transition: $transition-default;
  transition-property: background-color, outline-color, text-decoration-color;
}

@mixin btn-hover($cor: none) {
  &:hover {
    background-color: $cor
  }
  @include btn-focus;
  @include btn-focus-visible;
  @include btn-transition;
}

@mixin btn-default {
  @include btn-base;
  @include btn-size-default;

}

@mixin btn-primary {
  background-color: $color-accent;
  @include btn-default;
  @include btn-hover($color-accent--hover);
}

@mixin btn-invert {
  background-color: $color-white;
  @include btn-default;
  @include btn-hover($color-black10);
}

@mixin btn-secondary {
  border: 1px solid $color-black;
  background-color: $color-white;
  @include btn-default;
  @include btn-hover($color-black10);
}

@mixin btn-tab {
  @include btn-base;
  @include btn-size-tab;
}

@mixin btn-link {
  @include btn-base;
  @include icon-left('@/Images/icons/arrow-right.svg', 24px); 

  &:focus,
  &:focus-visible {
    @include btn-focus-visible(2px);
  }

  text-align: left;
  align-items: start;
  font-size: max(18px, 1em);
  word-break: break-word;

  &::before {
    block-size: 1.5em !important;
  }
}

// decoration for links
@mixin link-decoration {
  text-decoration: underline;
  text-decoration-color: transparent;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.2rem;
  @include btn-transition;

  &:hover {
    text-decoration-color: $color-accent--hover;
  }
}

