﻿.hint, [data-hint] {
    position: relative;
    display: inline-block;
}

    .hint:before, .hint:after, [data-hint]:before, [data-hint]:after {
        position: absolute;
        -webkit-transform: translate3d(0,0,0);
        -moz-transform: translate3d(0,0,0);
        transform: translate3d(0,0,0);
        visibility: hidden;
        opacity: 0;
        z-index: 1000000;
        pointer-events: none;
        -webkit-transition: .3s ease;
        -moz-transition: .3s ease;
        transition: .3s ease;
    }

    .hint:hover:before, .hint:hover:after, .hint:focus:before, .hint:focus:after, [data-hint]:hover:before, [data-hint]:hover:after, [data-hint]:focus:before, [data-hint]:focus:after {
        visibility: visible;
        opacity: 0.715;
    }

    .hint:before, [data-hint]:before {
        content: '';
        position: absolute;
        background: transparent;
        border: 6px solid transparent;
        z-index: 1000001;
    }

    .hint:after, [data-hint]:after {
        content: attr(data-hint);
        background: #383838;
        color: #fff;
        text-shadow: 0 -1px 0 #000;
        padding: 8px 10px;
        font-size: 12px;
        line-height: 12px;
        white-space: nowrap;
        box-shadow: 4px 4px 8px rgba(0,0,0,.3);
    }

.hint--top:before {
    border-top-color: #383838;
}

.hint--bottom:before {
    border-bottom-color: #383838;
}

.hint--left:before {
    border-left-color: #383838;
}

.hint--right:before {
    border-right-color: #383838;
}

.hint--top:before {
    margin-bottom: -12px;
}

.hint--top:after {
    margin-left: -18px;
}

.hint--top:before, .hint--top:after {
    bottom: 100%;
    left: 50%;
}

.hint--top:hover:after, .hint--top:hover:before, .hint--top:focus:after, .hint--top:focus:before {
    -webkit-transform: translateY(-8px);
    -moz-transform: translateY(-8px);
    transform: translateY(-8px);
}

.hint--bottom:before {
    margin-top: -12px;
}

.hint--bottom:after {
    margin-left: -18px;
}

.hint--bottom:before, .hint--bottom:after {
    top: 100%;
    left: 50%;
}

.hint--bottom:hover:after, .hint--bottom:hover:before, .hint--bottom:focus:after, .hint--bottom:focus:before {
    -webkit-transform: translateY(8px);
    -moz-transform: translateY(8px);
    transform: translateY(8px);
}

.hint--right:before {
    margin-left: -12px;
    margin-bottom: -6px;
}

.hint--right:after {
    margin-bottom: -14px;
}

.hint--right:before, .hint--right:after {
    left: 100%;
    bottom: 50%;
}

.hint--right:hover:after, .hint--right:hover:before, .hint--right:focus:after, .hint--right:focus:before {
    -webkit-transform: translateX(8px);
    -moz-transform: translateX(8px);
    transform: translateX(8px);
}

.hint--left:before {
    margin-right: -12px;
    margin-bottom: -6px;
}

.hint--left:after {
    margin-bottom: -14px;
}

.hint--left:before, .hint--left:after {
    right: 100%;
    bottom: 50%;
}

.hint--left:hover:after, .hint--left:hover:before, .hint--left:focus:after, .hint--left:focus:before {
    -webkit-transform: translateX(-8px);
    -moz-transform: translateX(-8px);
    transform: translateX(-8px);
}

.hint--error:after {
    background-color: #b34e4d;
    text-shadow: 0 -1px 0 #592726;
}

.hint--error.hint--top:before {
    border-top-color: #b34e4d;
}

.hint--error.hint--bottom:before {
    border-bottom-color: #b34e4d;
}

.hint--error.hint--left:before {
    border-left-color: #b34e4d;
}

.hint--error.hint--right:before {
    border-right-color: #b34e4d;
}

.hint--warning:after {
    background-color: #c09854;
    text-shadow: 0 -1px 0 #6c5328;
}

.hint--warning.hint--top:before {
    border-top-color: #c09854;
}

.hint--warning.hint--bottom:before {
    border-bottom-color: #c09854;
}

.hint--warning.hint--left:before {
    border-left-color: #c09854;
}

.hint--warning.hint--right:before {
    border-right-color: #c09854;
}

.hint--info:after {
    background-color: #3986ac;
    text-shadow: 0 -1px 0 #193b4d;
}

.hint--info.hint--top:before {
    border-top-color: #3986ac;
}

.hint--info.hint--bottom:before {
    border-bottom-color: #3986ac;
}

.hint--info.hint--left:before {
    border-left-color: #3986ac;
}

.hint--info.hint--right:before {
    border-right-color: #3986ac;
}

.hint--success:after {
    background-color: #458746;
    text-shadow: 0 -1px 0 #1a321a;
}

.hint--success.hint--top:before {
    border-top-color: #458746;
}

.hint--success.hint--bottom:before {
    border-bottom-color: #458746;
}

.hint--success.hint--left:before {
    border-left-color: #458746;
}

.hint--success.hint--right:before {
    border-right-color: #458746;
}

.hint--always:after, .hint--always:before {
    opacity: 1;
    visibility: visible;
}

.hint--always.hint--top:after, .hint--always.hint--top:before {
    -webkit-transform: translateY(-8px);
    -moz-transform: translateY(-8px);
    transform: translateY(-8px);
}

.hint--always.hint--bottom:after, .hint--always.hint--bottom:before {
    -webkit-transform: translateY(8px);
    -moz-transform: translateY(8px);
    transform: translateY(8px);
}

.hint--always.hint--left:after, .hint--always.hint--left:before {
    -webkit-transform: translateX(-8px);
    -moz-transform: translateX(-8px);
    transform: translateX(-8px);
}

.hint--always.hint--right:after, .hint--always.hint--right:before {
    -webkit-transform: translateX(8px);
    -moz-transform: translateX(8px);
    transform: translateX(8px);
}

.hint--rounded:after {
    border-radius: 4px;
}

.hint--bounce:before, .hint--bounce:after {
    -webkit-transition: opacity .3s ease,visibility .3s ease,-webkit-transform .3s cubic-bezier(0.71,1.7,.77,1.24);
    -moz-transition: opacity .3s ease,visibility .3s ease,-moz-transform .3s cubic-bezier(0.71,1.7,.77,1.24);
    transition: opacity .3s ease,visibility .3s ease,transform .3s cubic-bezier(0.71,1.7,.77,1.24);
}
