.ui-link {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 2px;
  text-decoration: none;
  color: var(--ui-link-color);
  border: 1px solid transparent;
  border-radius: var(--kt-ui-link-border-radius);
}

.ui-link,
.ui-link:hover {
  font-family: var(--kt-ui-link-ff);
  font-size: var(--kt-ui-link-font-size);
  font-weight: var(--kt-ui-link-font-weight);
  line-height: var(--kt-ui-link-line-height);
  transition-property: color, border-color;
  transition-duration: 160ms;
}

.ui-link:hover,
.ui-link.ui-link-hover {
  color: var(--ui-link-color-hover);
}

.ui-link:active,
.ui-link.ui-link-active {
  color: var(--ui-link-color-active);
}

.ui-link:disabled,
.ui-link.ui-link-disabled {
  color: var(--ui-link-color-disabled);
}

.ui-link:focus-visible,
.ui-link.ui-link-focus {
  border-color: var(--kt-ui-link-focus-color);
}

.kt-ui-link__text {
  border-bottom-width: 1px;
  border-bottom-color: transparent;
  transition: border-bottom-color 160ms linear;
  will-change: border-bottom-color;
}

.ui-link:not(.--no-underline):hover .kt-ui-link__text,
.ui-link:not(.--no-underline):active .kt-ui-link__text,
.ui-link:not(.--no-underline).ui-link-hover .kt-ui-link__text,
.ui-link:not(.--no-underline).ui-link-active .kt-ui-link__text,
.ui-link.--always-underline .kt-ui-link__text {
  border-bottom-color: currentColor;
}

.ui-link:not(.--no-underline).ui-link-solid .kt-ui-link__text {
  border-bottom-style: solid;
}

.ui-link:not(.--no-underline).ui-link-dashed .kt-ui-link__text {
  border-bottom-style: dashed;
}

.ui-link:not(.--no-underline).ui-link-dotted .kt-ui-link__text {
  border-bottom-style: dotted;
}

.ui-link + .ui-link,
.ui-link + script + .ui-link {
  margin-left: var(--ui-link-margin-left);
}

/* Region primary link */
.ui-link,
.ui-link-primary {
  --ui-link-color: var(--kt-ui-link-primary-color);
  --ui-link-color-hover: var(--kt-ui-link-primary-color-hover);
  --ui-link-color-active: var(--kt-ui-link-primary-color-active);
  --ui-link-color-disabled: var(--kt-ui-link-primary-color-disabled);
}

/* Endregion */
/* Region secondary link */
.ui-link-secondary {
  --ui-link-color: var(--kt-ui-link-secondary-color);
  --ui-link-color-hover: var(--kt-ui-link-secondary-color-hover);
  --ui-link-color-active: var(--kt-ui-link-secondary-color-active);
  --ui-link-color-disabled: var(--kt-ui-link-secondary-color-disabled);
}

/* Endregion */
/* Region tertiary link */
.ui-link-tertiary {
  --ui-link-color: var(--kt-ui-link-tertiary-color);
  --ui-link-color-hover: var(--kt-ui-link-tertiary-color-hover);
  --ui-link-color-active: var(--kt-ui-link-tertiary-color-active);
  --ui-link-color-disabled: var(--kt-ui-link-tertiary-color-disabled);
}

/* Endregion */
/* Region accented link */
.ui-link-accented {
  --ui-link-color: var(--kt-ui-link-accented-color);
  --ui-link-color-hover: var(--kt-ui-link-accented-color-hover);
  --ui-link-color-active: var(--kt-ui-link-accented-color-active);
  --ui-link-color-disabled: var(--kt-ui-link-accented-color-disabled);
}

/* Endregion */