@mixin cat-visually-hidden {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

@mixin cat-visually-hidden-focusable {
  &:not(:focus):not(:focus-within) {
    @include cat-visually-hidden;
  }
}

@mixin cat-visually-hidden-hoverable($container: null) {
  @if $container {
    #{$container}:not(:hover):not(:focus):not(:focus-within) & {
      @include cat-visually-hidden;
    }
  } @else {
    *:not(:hover):not(:focus):not(:focus-within) > & {
      @include cat-visually-hidden;
    }
  }
}
