[data-balloon] {
    position: relative;
    border-bottom: 1px dotted $contentColor;
    cursor: help;
}

.no-underline[data-balloon] {
    border-bottom: none;
    text-decoration: none;
}

[data-balloon]:after, [data-balloon]:before {
    -ms-filter: 'progid:DXImageTransform.Microsoft.Alpha(Opacity=0)';
    filter: alpha(opacity=0);
    -khtml-opacity: 0;
    -moz-opacity: 0;
    opacity: 0;
    pointer-events: none;
    -webkit-transition: all 0.18s ease-out 0.18s;
    transition: all 0.18s ease-out 0.18s;
    bottom: 100%;
    left: 50%;
    position: absolute;
    z-index: 10;
    -webkit-transform: translate(-50%, 10px);
    -ms-transform: translate(-50%, 10px);
    transform: translate(-50%, 10px);
    -webkit-transform-origin: top;
    -ms-transform-origin: top;
    transform-origin: top;
}

[data-balloon]:before {
    font-family: 'proxima-nova', 'arial', sans-serif;
    font-size: 14px;
    font-weight: normal;
    line-height: 1.5;
    text-align: initial;
    text-transform: none;
    text-decoration: none;
    letter-spacing: normal;
    border: 1px solid $borderColor;
    box-shadow: 0 3px 5px rgba(0, 0, 0, 0.3);
    background: $noticeColor;
    border-radius: 4px;
    color: $contentColor;
    content: attr(data-balloon);
    padding: 1em;
    white-space: nowrap;
    margin-bottom: 11px;
}

[data-balloon]:after {
    background: svg-url('<svg xmlns="http://www.w3.org/2000/svg" width="36px" height="12px"><path fill="#{rgba($noticeColor, 1)}" transform="rotate(0)" d="M2.658,0.000 C-13.615,0.000 50.938,0.000 34.662,0.000 C28.662,0.000 23.035,12.002 18.660,12.002 C14.285,12.002 8.594,0.000 2.658,0.000 Z"/></svg>') no-repeat;
    background-size: 100% auto;
    height: 6px;
    width: 18px;
    content: '';
    margin-bottom: 6px;
}

[data-balloon]:hover:after, [data-balloon]:hover:before {
    -ms-filter: 'progid:DXImageTransform.Microsoft.Alpha(Opacity=100)';
    filter: alpha(opacity=100);
    -khtml-opacity: 1;
    -moz-opacity: 1;
    opacity: 1;
    pointer-events: auto;
    -webkit-transform: translate(-50%, 0);
    -ms-transform: translate(-50%, 0);
    transform: translate(-50%, 0);
}

[data-balloon][data-balloon-break]:before {
    white-space: normal;
}

[data-balloon-pos='down']:after, [data-balloon-pos='down']:before {
    bottom: auto;
    left: 50%;
    top: 100%;
    -webkit-transform: translate(-50%, -10px);
    -ms-transform: translate(-50%, -10px);
    transform: translate(-50%, -10px);
}

[data-balloon-pos='down']:before {
    margin-top: 11px;
}

[data-balloon-pos='down']:after {
    background: svg-url('<svg xmlns="http://www.w3.org/2000/svg" width="36px" height="12px"><path fill="#{rgba($noticeColor, 1)}" transform="rotate(180 18 6)" d="M2.658,0.000 C-13.615,0.000 50.938,0.000 34.662,0.000 C28.662,0.000 23.035,12.002 18.660,12.002 C14.285,12.002 8.594,0.000 2.658,0.000 Z"/></svg>') no-repeat;
    background-size: 100% auto;
    height: 6px;
    width: 18px;
    margin-top: 6px;
    margin-bottom: 0;
}

[data-balloon-pos='down']:hover:after, [data-balloon-pos='down']:hover:before {
    -webkit-transform: translate(-50%, 0);
    -ms-transform: translate(-50%, 0);
    transform: translate(-50%, 0);
}

[data-balloon-pos='left']:after, [data-balloon-pos='left']:before {
    bottom: auto;
    left: auto;
    right: 100%;
    top: 50%;
    -webkit-transform: translate(10px, -50%);
    -ms-transform: translate(10px, -50%);
    transform: translate(10px, -50%);
}

[data-balloon-pos='left']:before {
    margin-right: 11px;
}

[data-balloon-pos='left']:after {
    background: svg-url('<svg xmlns="http://www.w3.org/2000/svg" width="12px" height="36px"><path fill="#{rgba($noticeColor, 1)}" transform="rotate(-90 18 18)" d="M2.658,0.000 C-13.615,0.000 50.938,0.000 34.662,0.000 C28.662,0.000 23.035,12.002 18.660,12.002 C14.285,12.002 8.594,0.000 2.658,0.000 Z"/></svg>') no-repeat;
    background-size: 100% auto;
    height: 18px;
    width: 6px;
    margin-right: 6px;
    margin-bottom: 0;
}

[data-balloon-pos='left']:hover:after, [data-balloon-pos='left']:hover:before {
    -webkit-transform: translate(0, -50%);
    -ms-transform: translate(0, -50%);
    transform: translate(0, -50%);
}

[data-balloon-pos='right']:after, [data-balloon-pos='right']:before {
    bottom: auto;
    left: 100%;
    top: 50%;
    -webkit-transform: translate(-10px, -50%);
    -ms-transform: translate(-10px, -50%);
    transform: translate(-10px, -50%);
}

[data-balloon-pos='right']:before {
    margin-left: 11px;
}

[data-balloon-pos='right']:after {
    background: svg-url('<svg xmlns="http://www.w3.org/2000/svg" width="12px" height="36px"><path fill="#{rgba($noticeColor, 1)}" transform="rotate(90 6 6)" d="M2.658,0.000 C-13.615,0.000 50.938,0.000 34.662,0.000 C28.662,0.000 23.035,12.002 18.660,12.002 C14.285,12.002 8.594,0.000 2.658,0.000 Z"/></svg>') no-repeat;
    background-size: 100% auto;
    height: 18px;
    width: 6px;
    margin-bottom: 0;
    margin-left: 6px;
}

[data-balloon-pos='right']:hover:after, [data-balloon-pos='right']:hover:before {
    -webkit-transform: translate(0, -50%);
    -ms-transform: translate(0, -50%);
    transform: translate(0, -50%);
}

[data-balloon-length]:before {
    white-space: normal;
}

[data-balloon-length='small']:before {
    width: 80px;
}

[data-balloon-length='medium']:before {
    width: 150px;
}

[data-balloon-length='large']:before {
    width: 260px;
}

[data-balloon-length='xlarge']:before {
    width: 90vw;
}

@media screen and (min-width: 768px) {
    [data-balloon-length='xlarge']:before {
        width: 380px;
    }
}

[data-balloon-length='fit']:before {
    width: 100%;
}

@media screen and (max-width: 768px) {
    [data-balloon] {
        cursor: initial;
    }
    [data-balloon]:after, [data-balloon]:before {
        display: none !important;
    }
}
