.imhot-map {
    margin: 1.5em 0;
}

.imhot-image-wrap {
    position: relative;
    display: inline-block;
    max-width: 100%;
    line-height: 0;
}

.imhot-image {
    display: block;
    max-width: 100%;
    height: auto;
}

.imhot-overlay {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    overflow: visible;
}

.imhot-hotspot {
    cursor: help;
    pointer-events: all;
    outline: none;
}

.imhot-hotspot-shape {
    fill: var(--imhot-fill);
    fill-opacity: var(--imhot-fill-opacity);
    stroke: var(--imhot-stroke);
    stroke-width: var(--imhot-stroke-width);
}

.imhot-hotspot:hover,
.imhot-hotspot.is-active {
    cursor: help;
}

.imhot-hotspot:hover .imhot-hotspot-shape,
.imhot-hotspot.is-active .imhot-hotspot-shape {
    fill: var(--imhot-hover-fill);
    fill-opacity: var(--imhot-hover-fill-opacity);
    vector-effect: non-scaling-stroke;
}

.imhot-hotspot:focus {
    outline: 2px solid #111;
    outline-offset: 2px;
}

.imhot-hotspot:focus .imhot-hotspot-shape,
.imhot-hotspot:focus-visible .imhot-hotspot-shape {
    fill: var(--imhot-hover-fill);
    fill-opacity: var(--imhot-hover-fill-opacity);
    stroke: #ffffff;
    stroke-opacity: 0.9;
    stroke-width: 2;
    vector-effect: non-scaling-stroke;
}

.imhot-tooltip {
    position: absolute;
    z-index: 3;
    max-width: min(320px, calc(100vw - 32px));
    padding: 10px 12px;
    border-radius: 4px;
    background: rgba(20, 20, 20, 0.94);
    color: #fff;
    line-height: 1.45;
    text-align: left;
    transform: translate(12px, 12px);
    pointer-events: none;
    box-sizing: border-box;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.24);
}

.imhot-tooltip[hidden] {
    display: none;
}

.imhot-tooltip-title {
    font-weight: 700;
}

.imhot-tooltip-en,
.imhot-tooltip-description,
.imhot-tooltip-link {
    margin-top: 4px;
}

.imhot-tooltip-en,
.imhot-tooltip-link {
    opacity: 0.78;
    font-size: 0.88em;
}

@media (hover: none), (pointer: coarse) {
    .imhot-hotspot {
        cursor: pointer;
    }

    .imhot-tooltip {
        transform: translate(-50%, 14px);
    }
}
