.hefe-tooltip-parent {
    position: relative;
}

.hefe-tooltip-parent:hover .hefe-tooltip-child {
    display: block;
    opacity: 1;
}

.hefe-tooltip-child {
    display: none;
    position: absolute;
}

/* Top Center X-Small Tooltip */

.hefe-top-center-xs-tooltip .hefe-tooltip-child {
    white-space: nowrap;
    position: absolute;
    z-index: 1;
    bottom: calc(100% + 5px);
    left: calc(50% - 30px);
    width: 60px;
    font-size: 12px;
    color: #fff;
    padding: 4px;
    text-align: center;
}

.hefe-top-center-xs-tooltip .hefe-tooltip-child:before {
    display: block;
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: #000;
    opacity: 0.8;
    z-index: -1;
    border-radius: 4px;
}

.hefe-top-center-xs-tooltip .hefe-tooltip-child:after {
    display: block;
    content: "";
    position: absolute;
    top: 100%;
    left: calc(50% - 4px);
    width: 0; 
    height: 0; 
    border-left: 5px solid transparent;
    border-right: 5px solid transparent;
    border-top: 5px solid #000;
    opacity: 0.8;
    z-index: -1;
}

/* Top Center Small Tooltip */

.hefe-top-center-sm-tooltip .hefe-tooltip-child {
    white-space: nowrap;
    position: absolute;
    z-index: 1;
    bottom: calc(100% + 5px);
    left: calc(50% - 45px);
    width: 90px;
    font-size: 12px;
    color: #fff;
    padding: 4px;
    text-align: center;
}

.hefe-top-center-sm-tooltip .hefe-tooltip-child:before {
    display: block;
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: #000;
    opacity: 0.8;
    z-index: -1;
    border-radius: 4px;
}

.hefe-top-center-sm-tooltip .hefe-tooltip-child:after {
    display: block;
    content: "";
    position: absolute;
    top: 100%;
    left: calc(50% - 4px);
    width: 0; 
    height: 0; 
    border-left: 5px solid transparent;
    border-right: 5px solid transparent;
    border-top: 5px solid #000;
    opacity: 0.8;
    z-index: -1;
}

/* Top Center Medium Tooltip */

.hefe-top-center-md-tooltip .hefe-tooltip-child {
    white-space: nowrap;
    position: absolute;
    z-index: 1;
    bottom: calc(100% + 5px);
    left: calc(50% - 60px);
    width: 120px;
    font-size: 12px;
    color: #fff;
    padding: 4px;
    text-align: center;
}

.hefe-top-center-md-tooltip .hefe-tooltip-child:before {
    display: block;
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: #000;
    opacity: 0.8;
    z-index: -1;
    border-radius: 4px;
}

.hefe-top-center-md-tooltip .hefe-tooltip-child:after {
    display: block;
    content: "";
    position: absolute;
    top: 100%;
    left: calc(50% - 32.5px);
    width: 0; 
    height: 0; 
    border-left: 5px solid transparent;
    border-right: 5px solid transparent;
    border-top: 5px solid #000;
    opacity: 0.8;
    z-index: -1;
}

/* Top Center Large Tooltip */

.hefe-top-center-lg-tooltip .hefe-tooltip-child {
    white-space: nowrap;
    position: absolute;
    z-index: 1;
    bottom: calc(100% + 5px);
    left: calc(50% - 75px);
    width: 150px;
    font-size: 12px;
    color: #fff;
    padding: 4px;
    text-align: center;
}

.hefe-top-center-lg-tooltip .hefe-tooltip-child:before {
    display: block;
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: #000;
    opacity: 0.8;
    z-index: -1;
    border-radius: 4px;
}

.hefe-top-center-lg-tooltip .hefe-tooltip-child:after {
    display: block;
    content: "";
    position: absolute;
    top: 100%;
    left: calc(50% - 4px);
    width: 0; 
    height: 0; 
    border-left: 5px solid transparent;
    border-right: 5px solid transparent;
    border-top: 5px solid #000;
    opacity: 0.8;
    z-index: -1;
}

/* Top Center X-Large Tooltip */

.hefe-top-center-xl-tooltip .hefe-tooltip-child {
    white-space: nowrap;
    position: absolute;
    z-index: 1;
    bottom: calc(100% + 5px);
    left: calc(50% - 90px);
    width: 180px;
    font-size: 12px;
    color: #fff;
    padding: 4px;
    text-align: center;
}

.hefe-top-center-xl-tooltip .hefe-tooltip-child:before {
    display: block;
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: #000;
    opacity: 0.8;
    z-index: -1;
    border-radius: 4px;
}

.hefe-top-center-xl-tooltip .hefe-tooltip-child:after {
    display: block;
    content: "";
    position: absolute;
    top: 100%;
    left: calc(50% - 2.50px);
    width: 0; 
    height: 0; 
    border-left: 5px solid transparent;
    border-right: 5px solid transparent;
    border-top: 5px solid #000;
    opacity: 0.8;
    z-index: -1;
}

/* Bottom Center X-Small Tooltip */

.hefe-bottom-center-xs-tooltip .hefe-tooltip-child {
    white-space: nowrap;
    position: absolute;
    z-index: 1;
    top: calc(100% + 5px);
    left: calc(50% - 30px);
    width: 60px;
    font-size: 12px;
    color: #fff;
    padding: 4px;
    text-align: center;
}

.hefe-bottom-center-xs-tooltip .hefe-tooltip-child:before {
    display: block;
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: #000;
    opacity: 0.8;
    z-index: -1;
    border-radius: 4px;
}

.hefe-bottom-center-xs-tooltip .hefe-tooltip-child:after {
    display: block;
    content: "";
    position: absolute;
    bottom: 100%;
    left: calc(50% - 4px);
    width: 0; 
    height: 0; 
    border-left: 5px solid transparent;
    border-right: 5px solid transparent;
    border-bottom: 5px solid #000;
    opacity: 0.8;
    z-index: -1;
}

/* Bottom Center Small Tooltip */

.hefe-bottom-center-sm-tooltip .hefe-tooltip-child {
    white-space: nowrap;
    position: absolute;
    z-index: 1;
    top: calc(100% + 5px);
    left: calc(50% - 45px);
    width: 90px;
    font-size: 12px;
    color: #fff;
    padding: 4px;
    text-align: center;
}

.hefe-bottom-center-sm-tooltip .hefe-tooltip-child:before {
    display: block;
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: #000;
    opacity: 0.8;
    z-index: -1;
    border-radius: 4px;
}

.hefe-bottom-center-sm-tooltip .hefe-tooltip-child:after {
    display: block;
    content: "";
    position: absolute;
    bottom: 100%;
    left: calc(50% - 4px);
    width: 0; 
    height: 0; 
    border-left: 5px solid transparent;
    border-right: 5px solid transparent;
    border-bottom: 5px solid #000;
    opacity: 0.8;
    z-index: -1;
}

/* Bottom Center Medium Tooltip */

.hefe-bottom-center-md-tooltip .hefe-tooltip-child {
    white-space: nowrap;
    position: absolute;
    z-index: 1;
    top: calc(100% + 5px);
    left: calc(50% - 60px);
    width: 120px;
    font-size: 12px;
    color: #fff;
    padding: 4px;
    text-align: center;
}

.hefe-bottom-center-md-tooltip .hefe-tooltip-child:before {
    display: block;
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: #000;
    opacity: 0.8;
    z-index: -1;
    border-radius: 4px;
}

.hefe-bottom-center-md-tooltip .hefe-tooltip-child:after {
    display: block;
    content: "";
    position: absolute;
    bottom: 100%;
    left: calc(50% - 4px);
    width: 0; 
    height: 0; 
    border-left: 5px solid transparent;
    border-right: 5px solid transparent;
    border-bottom: 5px solid #000;
    opacity: 0.8;
    z-index: -1;
}

/* Bottom Center Large Tooltip */

.hefe-bottom-center-lg-tooltip .hefe-tooltip-child {
    white-space: nowrap;
    position: absolute;
    z-index: 1;
    top: calc(100% + 5px);
    left: calc(50% - 75px);
    width: 150px;
    font-size: 12px;
    color: #fff;
    padding: 4px;
    text-align: center;
}

.hefe-bottom-center-lg-tooltip .hefe-tooltip-child:before {
    display: block;
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: #000;
    opacity: 0.8;
    z-index: -1;
    border-radius: 4px;
}

.hefe-bottom-center-lg-tooltip .hefe-tooltip-child:after {
    display: block;
    content: "";
    position: absolute;
    bottom: 100%;
    left: calc(50% - 4px);
    width: 0; 
    height: 0; 
    border-left: 5px solid transparent;
    border-right: 5px solid transparent;
    border-bottom: 5px solid #000;
    opacity: 0.8;
    z-index: -1;
}

/* Bottom Center X-Large Tooltip */

.hefe-bottom-center-xl-tooltip .hefe-tooltip-child {
    white-space: nowrap;
    position: absolute;
    z-index: 1;
    top: calc(100% + 5px);
    left: calc(50% - 90px);
    width: 180px;
    font-size: 12px;
    color: #fff;
    padding: 4px;
    text-align: center;
}

.hefe-bottom-center-xl-tooltip .hefe-tooltip-child:before {
    display: block;
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: #000;
    opacity: 0.8;
    z-index: -1;
    border-radius: 4px;
}

.hefe-bottom-center-xl-tooltip .hefe-tooltip-child:after {
    display: block;
    content: "";
    position: absolute;
    bottom: 100%;
    left: calc(50% - 4px);
    width: 0; 
    height: 0; 
    border-left: 5px solid transparent;
    border-right: 5px solid transparent;
    border-bottom: 5px solid #000;
    opacity: 0.8;
    z-index: -1;
}

/* Top Left Tooltip */

.hefe-top-left-tooltip .hefe-tooltip-child {
    white-space: nowrap;
    position: absolute;
    z-index: 1;
    bottom: calc(100% + 5px);
    left: -12px;
    font-size: 12px;
    color: #fff;
    padding: 4px 6px;
    text-align: center;
}

.hefe-top-left-tooltip .hefe-tooltip-child:before {
    display: block;
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: #000;
    opacity: 0.8;
    z-index: -1;
    border-radius: 4px;
}

.hefe-top-left-tooltip .hefe-tooltip-child:after {
    display: block;
    content: "";
    position: absolute;
    top: 100%;
    left: 18px;
    width: 0; 
    height: 0; 
    border-left: 5px solid transparent;
    border-right: 5px solid transparent;
    border-top: 5px solid #000;
    opacity: 0.8;
    z-index: -1;
}

/* Top Right Tooltip */

.hefe-top-right-tooltip .hefe-tooltip-child {
    white-space: nowrap;
    position: absolute;
    z-index: 1;
    bottom: calc(100% + 5px);
    right: -12px;
    font-size: 12px;
    color: #fff;
    padding: 4px 6px;
    text-align: center;
}

.hefe-top-right-tooltip .hefe-tooltip-child:before {
    display: block;
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: #000;
    opacity: 0.8;
    z-index: -1;
    border-radius: 4px;
}

.hefe-top-right-tooltip .hefe-tooltip-child:after {
    display: block;
    content: "";
    position: absolute;
    top: 100%;
    right: 18px;
    width: 0; 
    height: 0; 
    border-left: 5px solid transparent;
    border-right: 5px solid transparent;
    border-top: 5px solid #000;
    opacity: 0.8;
    z-index: -1;
}

/* Bottom Left Tooltip */

.hefe-bottom-left-tooltip .hefe-tooltip-child {
    white-space: nowrap;
    position: absolute;
    z-index: 1;
    top: calc(100% + 5px);
    left: -15px;
    font-size: 12px;
    color: #fff;
    padding: 4px 6px;
    text-align: center;
}

.hefe-bottom-left-tooltip .hefe-tooltip-child:before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    color: #000;
    background: #000;
    opacity: 0.8;
    z-index: -1;
    border-radius: 4px;
}

.hefe-bottom-left-tooltip .hefe-tooltip-child:after {
    content: "";
    position: absolute;
    bottom: 100%;
    left: 21px;
    width: 0; 
    height: 0; 
    color: #000;
    border-left: 5px solid transparent;
    border-right: 5px solid transparent;
    border-bottom: 5px solid #000;
    opacity: 0.8;
    z-index: -1;
}

/* Bottom Right Tooltip */

.hefe-bottom-right-tooltip .hefe-tooltip-child {
    white-space: nowrap;
    position: absolute;
    z-index: 1;
    top: calc(100% + 5px);
    right: -15px;
    font-size: 12px;
    color: #fff;
    padding: 4px 6px;
    text-align: center;
}

.hefe-bottom-right-tooltip .hefe-tooltip-child:before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    color: #000;
    background: #000;
    opacity: 0.8;
    z-index: -1;
    border-radius: 4px;
}

.hefe-bottom-right-tooltip .hefe-tooltip-child:after {
    content: "";
    position: absolute;
    bottom: 100%;
    right: 21px;
    width: 0; 
    height: 0; 
    color: #000;
    border-left: 5px solid transparent;
    border-right: 5px solid transparent;
    border-bottom: 5px solid #000;
    opacity: 0.8;
    z-index: -1;
}