.btn {
  --btn-bg: var(--_colors---background--brand-primary);
  --btn-color: var(--_colors---text--inverted-text-primary);
  gap: 2px;
  color: var(--btn-color);
  text-align: center;
  letter-spacing: -.015em;
  cursor: pointer;
  background-color: var(--btn-bg);
  border: 0;
  border-radius: 12px;
  justify-content: center;
  align-items: center;
  padding: 12px 24px 14px;
  font-size: 20px;
  font-weight: 600;
  line-height: 1.2;
  text-decoration: none;
  transition: opacity .3s, background-color .2s;
  display: inline-flex;
}

.btn:hover {
  opacity: .8;
}

.btn--black {
  --btn-bg: #000;
}

.btn--black:hover {
  --btn-bg: #000c;
  opacity: 1;
}

.btn--white {
  --btn-bg: var(--_colors---background--primary);
  --btn-color: var(--_colors---text--brand-primary);
}

.btn--tinted {
  --btn-bg: var(--_colors---background--menu-button);
  --btn-color: var(--_colors---text--brand-primary);
}

.btn--glass {
  --btn-bg: #ffffff1a;
}

.btn--glass:hover {
  --btn-bg: #fff3;
  opacity: 1;
}

.btn--sm {
  padding: 11px 16px;
  font-size: 18px;
  line-height: 22px;
}

.btn--lg {
  padding: 15px 40px 17px;
}

.btn--xl {
  border-radius: 16px;
  padding: 18px 24px;
}

.btn--arrow::after,
.btn--external::after,
.link--arrow::after {
  content: "";
  flex: none;
  width: 24px;
  height: 24px;
  background-color: currentColor;
  -webkit-mask: url('../img/ui/arrow-right.svg') center / contain no-repeat;
  mask: url('../img/ui/arrow-right.svg') center / contain no-repeat;
}

.btn--sm::after {
  margin-block: -1px;
}

.btn--external::after {
  -webkit-mask-image: url('../img/ui/link-btn-icon.svg');
  mask-image: url('../img/ui/link-btn-icon.svg');
}

.link--arrow {
  color: inherit;
  letter-spacing: -.015em;
  line-height: var(--_tipography---title-height);
  align-items: center;
  font-weight: 600;
  text-decoration: none;
  display: inline-flex;
}

.btn--arrow::after,
.link--arrow::after {
  transition: transform .2s;
}

.btn--arrow:hover::after {
  transform: translateX(2px);
}

.btn--arrow:dir(rtl):hover::after {
  transform: translateX(-2px);
}

.link--arrow:hover::after {
  transform: translateX(5px);
}

.link--primary {
  color: var(--_colors---text--brand-primary);
}

.link--light {
  color: var(--_colors---text--inverted-text-primary);
}

@media screen and (max-width: 991px) {
  .btn {
    z-index: 1;
    position: relative;
  }
}

@media screen and (max-width: 767px) {
  .btn--lg {
    font-size: 18px;
  }

  .btn--mobile-block {
    align-self: stretch;
    width: 100%;
  }
}

@media screen and (max-width: 479px) {
  .btn--lg {
    padding-left: 33px;
    padding-right: 33px;
  }

  .btn--xl {
    padding-left: 16px;
    padding-right: 16px;
  }
}
