/* Link hotspot */

.link-hotspot {

    position: absolute;

    width: 0;
    height: 0;
    left: 5px;

}



.link-hotspot-air {

    cursor: pointer;

}



.link-hotspot-ground {

    display: none;

    width: 0;
    height: 0;

    cursor: pointer;

    z-index: 1;

}


.no-touch .link-hotspot-ground.hover {

    z-index: 99;

}


.link-hotspot-line {

    position: absolute;

    bottom: 0px;

    background-color: var(--background-rgb);

    box-sizing: border-box;
    border-color: var(--highlight-rgb);
    border-style: solid;

}



.no-touch .link-hotspot-ground.hover .link-hotspot-line,
.no-touch .link-hotspot-ground.hover .link-hotspot-dot {

    background-color: var(--background-rgb);
    border-color: var(--background-rgb);

    -webkit-transition: background-color 0.3s;
    transition: background-color 0.3s;

}



.link-hotspot-dot {

    position: absolute;

    bottom: 0;

    background-color: var(--background-rgb);

    box-sizing: border-box;
    border-color: var(--highlight-rgb);
    border-style: solid;
    border-radius: 50%;
    
}


.link-hotspot-icon {
    width: 60px;
    height: 60px;
    margin-left: -30px;
    margin-top: -60px;
    cursor: pointer;
    -webkit-transition: width .2s ease-in-out,
        height .2s ease-in-out,
        margin .2s ease-in-out;
    transition: width .2s ease-in-out,
        height .2s ease-in-out,
        margin .2s ease-in-out;
}

.no-touch .link-hotspot-ground.hover .link-hotspot-icon {
    width: 200px;
    height: 200px;
    margin-top: -200px;
    margin-left: -100px;
    z-index: 2;
}

.mobile .link-hotspot {
    width: 70px;
    height: 70px;
}

.link-hotspot-tooltip {
    position: absolute;
    font-weight: 300;
    top: -10px;
    left: 50%;
    margin-right: -50%;
    font-size: 16px;
    max-width: 300px;
    padding: 8px 10px;
    border-radius: 5px;
    background-color: var(--background-rgb);
    background-color: var(--background-rgba);
    color: var(--highlight-rgb);
    white-space: nowrap;
    text-overflow: ellipsis;
    overflow: hidden;
    cursor: pointer;
    opacity: 0;

    -ms-transform: translateX(-50%);
    -webkit-transform: translateX(-50%);
    transform: translateX(-50%);

    -webkit-transition: -ms-transform 0.2s,
        -webkit-transform 0.2s,
        transform 0.2s,
        opacity 0.2s;
    transition: -ms-transform 0.2s,
        -webkit-transform 0.2s,
        transform 0.2s,
        opacity 0.2s;
}

.mobile .link-hotspot {
    top: 19px;
    /* ( 70 - (16 + 2*8) ) / 2 */
}

.no-touch .link-hotspot-ground.hover .link-hotspot-tooltip {
    opacity: 1;
    -ms-transform: translate(-50%, 15px);
    -webkit-transform: translate(-50%, 15px);
    transform: translate(-50%, 15px);
}

/* Prevent tooltip from triggering */
.link-hotspot-tooltip {
    pointer-events: none;
}

.no-touch .link-hotspot-ground.hover .link-hotspot-tooltip {
    pointer-events: all;
}

/* Fallback mode without pointer-events (IE8-10) */
.tooltip-fallback .link-hotspot-tooltip {
    display: none;
}

.no-touch .tooltip-fallback .link-hotspot-ground.hover .link-hotspot-tooltip {
    display: block;
}