.ns-tooltip-top,
.ns-tooltip-bottom {
    position: relative;
}

.ns-tooltip-top::after,
.ns-tooltip-top::before  {
    top: -5px;
    --translate-y: calc(-100% - var(--arrow-size));
}

.ns-tooltip-top::after {
    border-top-color: var(--ns-background-color-10) !important;
    transform-origin: top center !important;
}

.ns-tooltip-bottom::before {
    border-bottom-color: var(--ns-background-color-10) !important;
    transform-origin: bottom center !important;
}

.ns-tooltip-bottom::after,
.ns-tooltip-bottom::before {
    bottom: -25px;
    --translate-y: calc(100% - var(--arrow-size));
}

.ns-tooltip-bottom::after {
    border-bottom-color: var(--ns-background-color-10) !important;
    transform-origin: bottom center !important;
}

.ns-tooltip-bottom::before {
    border-bottom-color: var(--ns-background-color-10) !important;
    transform-origin: top center !important;
}

[data-tooltip]::after,
[data-tooltip]::before {
    --scale: 0;
    --arrow-size: 8px;
    position: absolute;
    left: 50%;
    transform: translate(-50%, var(--translate-y)) scale(var(--scale));
    -webkit-transform: translate(-50%, var(--translate-y)) scale(var(--scale));
    -moz-transform: translate(-50%, var(--translate-y)) scale(var(--scale));
    -ms-transform: translate(-50%, var(--translate-y)) scale(var(--scale));
    -o-transform: translate(-50%, var(--translate-y)) scale(var(--scale));
    transition: .15s transform;
    -webkit-transition: .15s transform;
    -moz-transition: .15s transform;
    -ms-transition: .15s transform;
    -o-transition: .15s transform;
}

[data-tooltip]:hover::before,
[data-tooltip]:hover::after {
    --scale: 1;
}

[data-tooltip]::before {
    content: attr(data-tooltip);
    width: max-content;
    padding: 8px 13px;
    background: var(--ns-background-color-10);
    color: var(--ns-font-color-100);
    font-size: .6rem;
    border-radius: var(--ns-border-radius-primary);
    -moz-border-radius: var(--ns-border-radius-primary);
    -ms-border-radius: var(--ns-border-radius-primary);
    -o-border-radius: var(--ns-border-radius-primary);
    -webkit-border-radius: var(--ns-border-radius-primary);
    box-shadow: var(--ns-box-shadow-primary);
}

[data-tooltip]::after {
    --translate-y: calc(-1 * var(--arrow-size));

    content: '';
    border: var(--arrow-size) solid transparent;
}