.mip-wrap {
    position: relative;
    display: inline-block;
}

.mip-wrap img {
    display: block;
}

.mip-pin-overlay {
    position: absolute;
    inset: 0;
    opacity: 0;
    transition-property: opacity;
    transition-duration: var(--mip-animation-duration, 220ms);
    transition-timing-function: ease-out;
    pointer-events: none;
}

.mip-pin-button {
    position: absolute;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 6px 12px;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.03em;
    border-radius: 999px;
    text-decoration: none;
    color: #ffffff;
    background: #e60023;
    box-shadow: 0 4px 10px rgba(0,0,0,0.25);
    opacity: 0;
    transform-origin: center;
    transition-property: opacity, transform, background;
    transition-duration: var(--mip-animation-duration, 220ms);
    transition-timing-function: ease-out;
    z-index: 5;
    font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    will-change: opacity, transform;
}

.mip-pin-button .mip-pin-label {
    white-space: nowrap;
}

.mip-fa-icon {
    font-size: 16px;
    line-height: 1;
}

.mip-wrap .mip-pin-button {
    transform: translate3d(0,0,0) scale(0.96);
}

.mip-wrap[data-mip-animation="slide-up"] .mip-pin-button {
    transform: translate3d(0,8px,0);
}

.mip-wrap[data-mip-animation="slide-down"] .mip-pin-button {
    transform: translate3d(0,-8px,0);
}

.mip-wrap[data-mip-animation="zoom"] .mip-pin-button {
    transform: translate3d(0,0,0) scale(0.82);
}

.mip-wrap[data-mip-animation="pulse"] .mip-pin-button {
    transform: translate3d(0,0,0) scale(0.94);
}

.mip-wrap[data-mip-animation="none"] .mip-pin-overlay,
.mip-wrap[data-mip-animation="none"] .mip-pin-button {
    transition-duration: 0ms !important;
}

.mip-wrap:hover .mip-pin-overlay,
.mip-wrap:hover .mip-pin-button,
.mip-wrap.mip-show-always .mip-pin-overlay,
.mip-wrap.mip-show-always .mip-pin-button {
    opacity: 1;
}

.mip-wrap:hover .mip-pin-button,
.mip-wrap.mip-show-always .mip-pin-button {
    transform: translate3d(0,0,0) scale(1);
}

.mip-wrap:hover[data-mip-animation="pulse"] .mip-pin-button,
.mip-wrap.mip-show-always[data-mip-animation="pulse"] .mip-pin-button {
    animation: mipPulse calc(var(--mip-animation-duration, 220ms) * 2.8) ease-in-out infinite;
}

.mip-bg-target {
    position: relative;
    display: block;
}

@keyframes mipPulse {
    0%, 100% { transform: translate3d(0,0,0) scale(1); }
    50% { transform: translate3d(0,0,0) scale(1.06); }
}

@media (hover: none) {
    .mip-wrap .mip-pin-overlay,
    .mip-wrap .mip-pin-button {
        opacity: 1;
    }

    .mip-wrap .mip-pin-button {
        transform: translate3d(0,0,0) scale(1);
    }
}
