hs-navigation  {
    position: absolute;
    left: 50%; top: 50%; width: 100%; height: 100%;
    transform: translate(-50%,-50%) scale(1);
    opacity: 1;
    transition: transform var(--transition-duration), opacity var(--transition-duration);
    z-index: 1; /* Peter H - Default stacking */
}

/* Peter H - Raise z-index when hovered/open so tooltip appears above adjacent hotspots */
hs-navigation:hover,
hs-navigation.open {
    z-index: 1000;
}

hs-navigation hs-navigation-title { /* Dev 2 - Tooltip positioned above hotspot */
    position: absolute;
    left: 50%; bottom: 100%; width: auto; height: auto;
    transform: translate(-50%, clamp(-20px, calc(-15px - 0.15vw), -16px)) scale(0); /* John R - Clamp formula for gentle scaling */
    transform-origin: bottom;
    border-radius: 100px;
    background-color: rgba(0,0,0,0.9); /* C Gratiot - Darker popup */
    font-family: Verdana, Geneva, Tahoma, sans-serif;
    font-size: 1.6rem;
    padding: 1.3rem 2.5rem;
    color: #ffffff;
    white-space: nowrap;
    text-align: center; /* Peter H - Center align nav_title text */
    transition: opacity calc(var(--transition-duration) / 2), transform calc(var(--transition-duration) / 2);
    transition-delay: 0.1s;
    opacity: 0;
    pointer-events: none;
    z-index: 0;
}

hs-navigation hs-navigation-title::before { /* Dev 2 - Arrow pointing down from tooltip */
    content: '';
    position: absolute;
    left: 50%; top: 100%; transform: translate(-50%,0);
    width: 0px; height: 0px;
    border-style: solid;
    border-width: 1rem 0.7rem 0 0.7rem; /* John R - Changed to rem for clamp scaling */
    border-color: rgba(0,0,0,0.9) transparent transparent transparent;
}

hs-navigation:hover hs-navigation-title, /* Dev 2 - Show tooltip above on hover */
hs-navigation.open hs-navigation-title {
    opacity: 1;
    transform: translate(-50%, clamp(-40px, calc(-30px - 0.3vw), -32px)) scale(1); /* John R - Clamp formula for gentle scaling */
    transition-delay: 0.0s;
}

hs-navigation .ring-big { /* Dev 2 - Pulsing ring animation */
    position: absolute;
    left: 50%; top: 50%; width: 100%; height: 100%;
    transform: translate(-50%,-50%) scale(1);
    border-radius: 100px;
    border: 2px solid rgba(255,255,255,1);
    pointer-events: none;
    opacity: 0.5;
    transition: opacity var(--transition-duration);
    z-index: 0;
    animation: hs_navigation_ring_pulse 2s infinite linear;
}

hs-navigation:hover .ring-big {
    opacity: 1;
}

hs-navigation .thumb {
    position: absolute;
    left: 50%; top: 50%; width: 100%; height: 100%;
    transform: translate(-50%,-50%) scale(1);
    overflow: hidden;
    background-color: rgba(0,0,0,0.0);
    border-radius: 100px;
    border: 3px solid rgba(255,255,255,1);
    pointer-events: none;
    transition: transform var(--transition-duration);
    box-shadow: 0 0 5px rgba(0,0,0,0.7);
}

/* Charles Gratiot Jr. - Group color from database at 30% opacity */
hs-navigation[style*="--group-color"] .thumb {
    background-color: rgba(var(--group-color-rgb), 0.3);
}


hs-navigation .thumb::after {
    content: '';
    position: absolute;
    left: 0%; top: 0%; width: 100%; height: 100%;
    border-radius: 100px;
    box-shadow: 0 0 15px inset rgba(0,0,0,1) ;
}

hs-navigation .thumb img {
    position: absolute;
    left: 50%; top: 50%; width: 100%; height: 100%;
    transition: transform var(--transition-duration), opacity var(--transition-duration), filter var(--transition-duration);
    transform: translate(-50%,-50%) scale(0);
    border-radius: 100px;
    object-fit: cover;
    opacity: 0;
    filter: blur(20px);
    z-index: 0;
}


hs-navigation:hover .thumb,
hs-navigation.open .thumb {
    transform: translate(-50%,-50%) scale(1.5);
}

hs-navigation:hover .thumb img,
hs-navigation.open .thumb img {
    transform: translate(-50%,-50%) scale(1.2);
    opacity: 1;
    filter: blur(0px);
}

hs-navigation .icon  {
    position: absolute;
    left: 50%; top: 50%; width: 100%; height: 100%;
    transform: translate(-50%,-50%) scale(1);
    overflow: hidden;
    /* background-color: rgba(255,0,0,0.5); */
    /* pointer-events: all; */
    transition: transform var(--transition-duration);
    z-index: 100;
}

hs-navigation .icon svg {
    width: 100%; height: 100%;
}



/* Peter H - Hide icon div when empty (no icon_path set) */
hs-navigation .icon:empty {
    display: none;
}

/* Peter H - Icon fade out on hover for specific hotspots
   Applied via icon_hover_hide="true" attribute in tour.xml */
hs-navigation .icon {
    transition: transform var(--transition-duration), opacity var(--transition-duration);
    opacity: 1;
}

hs-navigation.icon-hover-hide:hover .icon,
hs-navigation.icon-hover-hide.open .icon {
    opacity: 0;
}

body.hs-scale-down hs-navigation {
    opacity: 0.5;
    transform: translate(-50%,-50%) scale(0.6);
}

@keyframes hs_navigation_ring_pulse { /* Dev 2 - Pulsing animation */
    0% {
        opacity: 0;
        transform: translate(-50%, -50%) scale(1);
    }

    50% {
        opacity: 0.5;
        transform: translate(-50%, -50%) scale(1.2);
    }

    100% {
        transform: translate(-50%, -50%) scale(1.4);
        opacity: 0
    }
}
