@import "~@cultureamp/kaizen-design-tokens/sass/color";
@import "~@cultureamp/kaizen-component-library/styles/type";
@import "~@cultureamp/kaizen-component-library/styles/animation";

.root {
  opacity: 0;
  left: 50%;
  position: absolute;
  pointer-events: none;
  border-radius: 3px;
  transition: opacity $ca-duration-fast, transform $ca-duration-fast;
  padding: $ca-grid / 2 $ca-grid / 2;
  z-index: 2;
  border: 1px $ca-border-color solid;
  box-shadow: $kz-color-wisteria-100 0 2px 11px;
  text-align: center;
}

.contentWrap {
  width: 400px;
  position: absolute;
  transform: translateX(-50%);
  left: 50%;
  z-index: 2;
}

.contentWrap.above {
  top: 0;
}

.tooltipContent {
  @include ca-type-ideal-body($size: 14);
  color: $kz-color-wisteria-800;
  top: initial;
}

.default {
  background-color: white;
}

.above {
  transform: translateX(-50%) translateY(-70%);
}

.below {
  bottom: -6px;
  transform: translateX(-50%) translateY(70%);
}

.shadow {
  z-index: 1;
  border: none;
  .tooltipContent {
    visibility: hidden;
  }
}

.tooltipWrap {
  position: initial;
  display: inline-block;
  &:hover {
    .above {
      opacity: 1;
      transform: translateX(-50%) translateY(calc(-100% + -6px));
    }

    .below {
      opacity: 1;
      transform: translateX(-50%) translateY(calc(100% + 6px));
    }
  }
  &:focus {
    .root {
      visibility: visible;
    }
  }
}

.root::before,
.root::after {
  content: "";
  position: absolute;
  left: 50%;
  border-left: 10px solid transparent;
  border-right: 10px solid transparent;
  margin-left: -10px;
}

.above::before,
.above::after {
  bottom: -4px;
  top: 100%;
}

.below::before,
.below::after {
  top: -10px;
  transform: rotate(180deg);
}

.root::before {
  border-top: 10px solid $ca-border-color;
}

.root::after {
  border-top: 10px solid white;
  margin-top: -2px;
  z-index: 2;
}

.shadow::before {
  border-top: 0px solid $ca-border-color;
}

// Triangle portion is a little darker to bring out shadow
.shadow::after {
  border-top: 10px solid $kz-color-wisteria-200;
  margin-top: 1px;
  filter: blur(4px);
  z-index: 2;
}

.below::after {
  margin-top: 2px;
}
