.is-invisible {
  visibility: hidden;
}
.is-underline {
  text-decoration: underline;
}
.is-no-underline {
  text-decoration: none;
}
.is-sideless {
  box-shadow: 0 2px 0 -1px $grey-light, 0 -2px 0 -1px $grey-light;
}
.is-bottomless {
  box-shadow: 0 -1px 0 0 $grey-light;
}
.has-only-top-shadow {
  box-shadow: 0 -1px 0 -1px $grey-light, 0 -2px 0 -1px $grey-light;
}
.has-bottom-shadow {
  box-shadow: $box-shadow !important;
}
.is-borderless {
  border: none !important;
}
.is-box-shadowless {
  box-shadow: none !important;
}
.is-relative {
  position: relative;
}
.is-fullwidth {
  width: 100%;
}
.is-in-bottom-right {
  position: absolute;
  bottom: 1rem;
  right: 1rem;
  z-index: 10;
}

.has-background-transition {
  transition: background-color $easing $speed;
}
.is-flex-column {
  display: flex;
  flex-direction: column;
}
.is-flex-row {
  display: flex;
  flex-direction: row;
}
.is-flex-v-centered {
  display: flex;
  align-items: center;
  align-self: center;
  justify-content: center;
}
.is-flex-v-centered-tablet {
  @include tablet {
    display: flex;
    align-items: center;
    align-self: center;
    justify-content: center;
  }
}
.is-flex-center {
  display: flex;
  align-items: center;
}
.is-flex-align-baseline {
  display: flex;
  align-items: baseline;
}
.is-flex-1 {
  flex-grow: 1;
  &.basis-0 {
    flex-basis: 0;
  }
}
.is-flex-wrap {
  flex-flow: row wrap;
}
.is-flex-end {
  display: flex !important;
  justify-content: flex-end;
}
.is-flex-start {
  display: flex !important;
  justify-content: flex-start;

  &.has-gap {
    gap: $spacing-m;
  }
}
.is-flex-full {
  flex-basis: 100%;
}
.is-no-flex-grow {
  flex-grow: 0 !important;
}
.is-flex-half {
  flex: 50%;
}
.is-auto-width {
  width: auto;
}
.is-min-width-0 {
  min-width: 0;
}

.is-flex-between,
.is-grouped-split {
  display: flex;
  justify-content: space-between !important;
}

/* CSS GRID */
// grid container
.is-grid {
  display: grid;
}
.is-grid-3-columns {
  grid-template-columns: repeat(3, 1fr);
}
.is-medium-height {
  height: $medium-height;
}
// grid items
.is-grid-column-span-3 {
  grid-column-end: span 3;
}
/* END OF CSS GRID */

.has-default-border {
  border: 1px solid $grey !important;
}
.has-no-pointer {
  pointer-events: none;
}
.has-pointer {
  cursor: pointer;
}
.has-short-padding {
  padding: 0.25rem 1.25rem;
}
.has-tall-padding {
  padding: 2.25rem;
}
.has-side-padding-s {
  padding-left: $spacing-s;
  padding-right: $spacing-s;
}
.has-padding-m {
  padding: $spacing-m;
}
.has-top-bottom-margin {
  margin: 1.25rem 0rem;
}
.has-top-bottom-margin-negative-m {
  margin-top: -$spacing-m;
  margin-bottom: -$spacing-m;
}

.is-sideless.has-short-padding {
  padding: 0.25rem 1.25rem;
}
.has-current-color-fill {
  &,
  & svg {
    fill: currentColor;
  }
}
.is-word-break {
  overflow-wrap: break-word;
  word-wrap: break-word;
  word-break: break-word;
  white-space: pre-wrap;
}
.truncate-second-line {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  text-overflow: ellipsis;
  overflow: hidden;
}
.is-font-mono {
  font-family: $family-monospace;
}
.is-size-8 {
  font-size: $size-8 !important;
}
.is-size-9 {
  font-size: $size-9 !important;
}
.is-hint {
  color: $grey;
  font-size: $size-8;
  padding: $size-8 0;
}
@each $name, $shade in $shades {
  .has-background-#{$name} {
    background: $shade !important;
  }
}
.has-background-transparent {
  background: transparent !important;
}
.has-background-gray-200 {
  background-color: $ui-gray-200;
}
@each $name, $pair in $colors {
  $color: nth($pair, 1);
  .has-background-#{$name} {
    background: $color !important;
  }
}
.is-optional {
  color: $grey;
  font-size: $size-8;
  text-transform: lowercase;
}
.has-top-padding-s {
  padding-top: $spacing-s;
}
.has-top-padding-l {
  padding-top: $spacing-l;
}
.has-left-padding-l {
  padding-left: $spacing-l;
}
.has-top-padding-xxl {
  padding-top: $spacing-xxl;
}
.has-bottom-margin-xs {
  margin-bottom: $spacing-xs;
}
.has-bottom-margin-s {
  margin-bottom: $spacing-s;
}
.has-bottom-margin-m {
  margin-bottom: $spacing-m;
}
.has-bottom-margin-l {
  margin-bottom: $spacing-l;
}
.has-bottom-margin-xl {
  margin-bottom: $spacing-xl;
}
.has-bottom-margin-xxl {
  margin-bottom: $spacing-xxl;
}
.has-top-margin-s {
  margin-top: $spacing-s;
}
.has-top-margin-xs {
  margin-top: $spacing-xs;
}
.has-top-margin-m {
  margin-top: $spacing-m;
}
.has-top-margin-l {
  margin-top: $spacing-l;
}
.has-top-margin-xl {
  margin-top: $spacing-xl;
}
.has-top-margin-xxl {
  margin-top: $spacing-xxl;
}
.has-top-margin-negative-s {
  margin-top: (-1 * $spacing-s);
}
.has-left-margin-xxs {
  margin-left: $spacing-xxs;
}
.has-left-margin-xs {
  margin-left: $spacing-xs;
}
.has-left-margin-s {
  margin-left: $spacing-s;
}
.has-left-margin-m {
  margin-left: $spacing-m;
}
.has-left-margin-l {
  margin-left: $spacing-l;
}
.has-left-margin-xl {
  margin-left: $spacing-xl;
}
.has-right-margin-m {
  margin-right: $spacing-m;
}
.has-right-margin-l {
  margin-right: $spacing-l;
}
.has-border-top-light {
  border-radius: 0;
  border-top: 1px solid $grey-light;
}
.has-border-bottom-light {
  border-radius: 0;
  border-bottom: 1px solid $grey-light;
}
.has-border-danger {
  border: 1px solid $danger;
}

ul.bullet {
  list-style: disc;
  padding-left: $spacing-m;
}

.has-text-semibold {
  font-weight: $font-weight-semibold;
}
.is-v-centered {
  vertical-align: middle;
}
.has-text-grey-400 {
  color: $ui-gray-400;
}
.has-text-red {
  color: $red;
}
.has-text-green {
  color: $green;
}
.has-text-align-center {
  text-align: center;
}
// Screen Readers only
.sr-only {
  border: 0 !important;
  clip: rect(1px, 1px, 1px, 1px) !important;
  -webkit-clip-path: inset(50%) !important;
  clip-path: inset(50%) !important;
  height: 1px !important;
  overflow: hidden !important;
  margin: -1px !important;
  padding: 0 !important;
  position: absolute !important;
  width: 1px !important;
  white-space: nowrap !important;
}
