:focus:not([data-focus-mouse='true']),
%focus,
.it-carousel-wrapper .splide__pagination button:focus:not([data-focus-mouse='true']),
.upload:focus:not([data-focus-mouse='true']) + label,
.upload-dragdrop-input:focus[type='file']:not([data-focus-mouse='true']) + label,
.avatar-upload:focus-within:not([data-focus-mouse='true']),
.rating input:focus:not([data-focus-mouse='true']) + label svg {
  border-color: $focus-outline-color-out !important;
  box-shadow:
    0 0 0 2px $focus-outline-color-in,
    0 0 0 5px $focus-outline-color-out !important;
  outline: 3px solid transparent !important;
  outline-offset: 3px !important;
}

[tabindex='-1']:focus:not(:focus-visible) {
  box-shadow: none !important;
}

[data-focus-mouse='true']:not(.btn),
%focusmouse {
  border-color: inherit !important;
  box-shadow: none !important;
  outline: none !important;
}

p a,
p.it-card-text a {
  &:focus:not([data-focus-mouse='true'], .btn) {
    outline-offset: 0px !important;
    outline: 3px $focus-outline-color-out solid !important;
    background: $focus-outline-color-in;
    box-shadow: none !important;
    color: $link-color !important;
  }
}

.it-card h2 a,
.it-card h3 a,
.it-card h4 a,
.it-card h5 a,
.it-card a.it-card-link,
.it-card .list-group-item a {
  &:focus:not([data-focus-mouse='true'], .btn) {
    display: inline-block;
  }
}

.shadow,
.shadow-none,
.shadow-sm,
.shadow-lg {
  &:focus:not([data-focus-mouse='true']) {
    box-shadow:
      0 0 0 2px $focus-outline-color-in,
      0 0 0 5px $focus-outline-color-out !important;
  }
}

.avatar-group-stacked .avatar {
  &:focus:not([data-focus-mouse='true']) {
    border: 0;
    margin-left: -4px;
    margin-top: 2px;
    margin-right: 2px;
  }

  &.avatar-dropdown .btn-dropdown:focus:not([data-focus-mouse='true']) {
    height: 100%;
    width: 100%;
    border-radius: 50%;
  }
}

.chip {
  button {
    &:focus:not([data-focus-mouse='true']) {
      border-radius: 50%;
    }
  }
}

.form-check {
  .toggles label:has(input[type='checkbox']:focus:not([data-focus-mouse='true'])) {
    @extend %focus;

    input,
    .lever {
      border-color: inherit !important;
      box-shadow: none !important;
      outline: none !important;
    }
  }

  .toggles label:has(input[type='checkbox']:focus[data-focus-mouse='true']) {
    @extend %focusmouse;
  }

  &.form-check-group {
    :focus:not([data-focus-mouse='true']),
    [type='checkbox']:focus + label,
    [type='radio']:focus + label {
      width: 100%;
    }
  }
}

.bg-dark .btn,
.back-to-top.dark {
  &:focus:not([data-focus-mouse='true']),
  &%focus {
    box-shadow:
      0 0 0 2px $focus-outline-color-out,
      0 0 0 5px $focus-outline-color-in !important;
  }
}

.autocomplete__wrapper .autocomplete__menu {
  .autocomplete__hint,
  .autocomplete__option {
    &:focus {
      border: 3px solid $focus-outline-color-out !important;
      box-shadow: none !important;
    }
  }
}
