/* Hotspot Image — bkhi- */
.bkhi-wrap {
  position: relative;
  display: inline-block;
  width: 100%;
  border-radius: var(--bkhi-radius, 12px);
  overflow: hidden;
  line-height: 0;
}

.bkhi-image {
  width: 100%;
  height: auto;
  display: block;
  border-radius: var(--bkhi-radius, 12px);
}
.bkhi-placeholder {
  height: 320px;
  background: #2c2c2c;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
}
.bkhi-placeholder .dashicons {
  font-size: 64px;
  width: 64px;
  height: 64px;
  color: #555;
}

/* ── Pin ── */
.bkhi-pin {
  position: absolute;
  transform: translate(-50%, -50%);
  z-index: 5;
  cursor: pointer;
}

.bkhi-dot {
  width: var(--bkhi-size, 18px);
  height: var(--bkhi-size, 18px);
  background: var(--bkhi-marker, #6c3fb5);
  border: 2px solid rgba(255,255,255,0.8);
  border-radius: 50%;
  cursor: pointer;
  display: block;
  position: relative;
  z-index: 2;
  transition: transform 0.2s;
}
.bkhi-pin:hover .bkhi-dot,
.bkhi-pin.bkhi-active .bkhi-dot {
  transform: scale(1.2);
}

/* Pulse ring */
.bkhi-marker-pulse .bkhi-dot::before {
  content: '';
  position: absolute;
  inset: -5px;
  border-radius: 50%;
  border: 2px solid var(--bkhi-marker, #6c3fb5);
  animation: bkhiPulse 2s ease-out infinite;
}
@keyframes bkhiPulse {
  0%   { opacity: 1; transform: scale(1); }
  100% { opacity: 0; transform: scale(2.2); }
}

/* Plus marker */
.bkhi-marker-plus .bkhi-dot {
  border-radius: 4px;
}
.bkhi-marker-plus .bkhi-dot::after {
  content: '+';
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  font-weight: 700;
  color: #fff;
  line-height: 1;
}

/* ── Tooltip ── */
.bkhi-tooltip {
  position: absolute;
  background: var(--bkhi-tip-bg, #1e1e2e);
  color: var(--bkhi-tip-text, #fff);
  border-radius: 8px;
  padding: 10px 14px;
  min-width: 160px;
  max-width: 240px;
  box-shadow: 0 4px 20px rgba(0,0,0,0.3);
  line-height: 1.4;
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.2s, transform 0.2s;
  z-index: 20;
  white-space: normal;
}

/* Positions */
.bkhi-tip-right .bkhi-tooltip  { left: calc(100% + 12px); top: 50%; transform: translateY(-50%) translateX(4px); }
.bkhi-tip-left  .bkhi-tooltip  { right: calc(100% + 12px); top: 50%; transform: translateY(-50%) translateX(-4px); }
.bkhi-tip-top   .bkhi-tooltip  { bottom: calc(100% + 12px); left: 50%; transform: translateX(-50%) translateY(-4px); }
.bkhi-tip-bottom .bkhi-tooltip { top: calc(100% + 12px); left: 50%; transform: translateX(-50%) translateY(4px); }

.bkhi-pin:hover .bkhi-tooltip,
.bkhi-pin.bkhi-active .bkhi-tooltip,
.bkhi-pin.bkhi-editor-open .bkhi-tooltip {
  opacity: 1;
}
.bkhi-tip-right  .bkhi-tooltip { transform: translateY(-50%) translateX(0); }
.bkhi-tip-left   .bkhi-tooltip { transform: translateY(-50%) translateX(0); }
.bkhi-tip-top    .bkhi-tooltip { transform: translateX(-50%) translateY(0); }
.bkhi-tip-bottom .bkhi-tooltip { transform: translateX(-50%) translateY(0); }

/* ── Tooltip title typography (CSS-var driven) ── */
.bkhi-tip-title {
  display: block;
  margin-bottom: 4px;
  font-family: var(--bkhi-tt-font-family, inherit);
  font-size: var(--bkhi-tt-font-size-d, 13px);
  font-weight: var(--bkhi-tt-font-weight, 700);
  font-style: var(--bkhi-tt-font-style, normal);
  text-decoration: var(--bkhi-tt-text-decoration, none);
  text-transform: var(--bkhi-tt-text-transform, none);
  line-height: var(--bkhi-tt-line-height-d, 1.4);
  letter-spacing: var(--bkhi-tt-letter-spacing-d, normal);
  word-spacing: var(--bkhi-tt-word-spacing-d, normal);
}

/* ── Tooltip content typography (CSS-var driven) ── */
.bkhi-tip-content {
  margin: 0;
  opacity: 0.85;
  font-family: var(--bkhi-ct-font-family, inherit);
  font-size: var(--bkhi-ct-font-size-d, 12px);
  font-weight: var(--bkhi-ct-font-weight, normal);
  font-style: var(--bkhi-ct-font-style, normal);
  text-decoration: var(--bkhi-ct-text-decoration, none);
  text-transform: var(--bkhi-ct-text-transform, none);
  line-height: var(--bkhi-ct-line-height-d, 1.45);
  letter-spacing: var(--bkhi-ct-letter-spacing-d, normal);
  word-spacing: var(--bkhi-ct-word-spacing-d, normal);
}

/* ── Responsive: Tablet ── */
@media (max-width: 1024px) {
  .bkhi-tip-title {
    font-size: var(--bkhi-tt-font-size-t, var(--bkhi-tt-font-size-d, 13px));
    line-height: var(--bkhi-tt-line-height-t, var(--bkhi-tt-line-height-d, 1.4));
    letter-spacing: var(--bkhi-tt-letter-spacing-t, var(--bkhi-tt-letter-spacing-d, normal));
    word-spacing: var(--bkhi-tt-word-spacing-t, var(--bkhi-tt-word-spacing-d, normal));
  }
  .bkhi-tip-content {
    font-size: var(--bkhi-ct-font-size-t, var(--bkhi-ct-font-size-d, 12px));
    line-height: var(--bkhi-ct-line-height-t, var(--bkhi-ct-line-height-d, 1.45));
    letter-spacing: var(--bkhi-ct-letter-spacing-t, var(--bkhi-ct-letter-spacing-d, normal));
    word-spacing: var(--bkhi-ct-word-spacing-t, var(--bkhi-ct-word-spacing-d, normal));
  }
}

/* ── Responsive: Mobile ── */
@media (max-width: 767px) {
  .bkhi-tip-title {
    font-size: var(--bkhi-tt-font-size-m, var(--bkhi-tt-font-size-t, var(--bkhi-tt-font-size-d, 13px)));
    line-height: var(--bkhi-tt-line-height-m, var(--bkhi-tt-line-height-t, var(--bkhi-tt-line-height-d, 1.4)));
    letter-spacing: var(--bkhi-tt-letter-spacing-m, var(--bkhi-tt-letter-spacing-t, var(--bkhi-tt-letter-spacing-d, normal)));
    word-spacing: var(--bkhi-tt-word-spacing-m, var(--bkhi-tt-word-spacing-t, var(--bkhi-tt-word-spacing-d, normal)));
  }
  .bkhi-tip-content {
    font-size: var(--bkhi-ct-font-size-m, var(--bkhi-ct-font-size-t, var(--bkhi-ct-font-size-d, 12px)));
    line-height: var(--bkhi-ct-line-height-m, var(--bkhi-ct-line-height-t, var(--bkhi-ct-line-height-d, 1.45)));
    letter-spacing: var(--bkhi-ct-letter-spacing-m, var(--bkhi-ct-letter-spacing-t, var(--bkhi-ct-letter-spacing-d, normal)));
    word-spacing: var(--bkhi-ct-word-spacing-m, var(--bkhi-ct-word-spacing-t, var(--bkhi-ct-word-spacing-d, normal)));
  }
}
