.kl-image-info__image-wrapper {
    position: relative;
    width: fit-content;
    max-width: 100%;
    margin: auto;
}

.kl-image-info__image-wrapper img {
    max-width: 100%;
}

.kl-image-info__image-map {
	position: absolute;
	inset: 0;
  }

.kl-image-info__image-map-node {
    position: absolute;
    height: 50px;
    width: 50px;
    transform: translate(-50%, -50%);
    animation: pulse 2s ease-out infinite;
    animation-delay: var(--delay, 0s);
    transform-origin: center center;
    background-image: url("data:image/svg+xml,%3Csvg width='50' height='50' viewBox='0 0 50 50' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle opacity='0.1' cx='25' cy='25' r='25' fill='%2313FF04'/%3E%3Ccircle opacity='0.2' cx='25' cy='24.9998' r='16.2791' fill='%2313FF04'/%3E%3Ccircle cx='25' cy='24.9995' r='7.55814' fill='%2313FF04'/%3E%3C/svg%3E%0A");
    background-position: center;
    background-size: contain;
    border-radius: 50px;
}

  .kl-image-info__image-map-node::before {
    content: '';
    background: #fff;
    width: 8px;
    height: 8px;
    border-radius: inherit;
    flex: 1 0 8px;
}

.kl-image-info__image-map-node-content {
	background-color: #000;
	color: #fff;
	border-radius: 4px;
	bottom: calc(100% - 5px);
	box-shadow: 0 0 5px rgba(0,0,0,.25);
	left: 50%;
	opacity: 0;
	padding: 8px 16px;
	pointer-events: none;
	position: absolute;
	text-decoration: none;
	transform: translate(-50%, 5px);
	transition: all .4s ease-out;
	width: max-content;
	max-width: 160px;
}

.kl-image-info__image-map-node-content a {
	color: inherit;
	text-decoration: underline;
}

.kl-image-info__image-map-node-content::before {
	content: '';
	position: absolute;
	top: 100%;
	left: calc(50% - 5px);
	display: block;
	width: 0;
	height: 0;
	border-style: solid;
	border-width: 8px 6px 0 6px;
	border-color: #000000 transparent transparent transparent;
}
 

.kl-image-info__image-map-node:hover,
.kl-image-info__image-map-node:focus,
.kl-image-info__image-map-node:active {
    outline: 0px;
    filter: drop-shadow(0px 0px 6px rgba(0,0,0,0.35));
    animation: none;
}

.kl-image-info__image-map-node:hover .kl-image-info__image-map-node-content,
.kl-image-info__image-map-node:focus .kl-image-info__image-map-node-content,
.kl-image-info__image-map-node:active .kl-image-info__image-map-node-content {
  opacity: 1;
  transform: translate(-50%, 0);
  pointer-events: auto;
}

@keyframes pulse {
	75% {
	  opacity: 0.90;
    filter: drop-shadow(0px 0px 4px rgba(0,0,0,0.20));
	}
	
	0%, 50%, 100% {
	  opacity: 1;
    filter: drop-shadow(0px 0px 6px rgba(0,0,0,0.35));
	}
}