.nc-solutions-widget {
    --nc-solutions-blue: #0061a1;
    --nc-solutions-blue-hover: #0061a1;
    --nc-solutions-shadow: 0 14px 28px rgba(0, 78, 132, 0.16);
    --nc-solutions-collapsed-size: 2.4rem;
    --nc-solutions-label-gap: 0.7rem;
    --nc-solutions-hotspot-padding-y: 0.1875rem;
    --nc-solutions-stage-width: 100vw;
    width: 100vw;
    max-width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
}

.nc-solutions-widget__stage {
    position: relative;
    width: min(100vw, var(--nc-solutions-stage-width));
    max-width: 1600px;
    margin: 0 auto;
}

.nc-solutions-widget__image {
    display: block;
    width: 100%;
    height: auto;
    border-radius: 1rem;
}

.nc-solutions-widget__accordion {
    position: absolute;
    inset: 0;
    width: 50%;
    margin: 15px;
}

.nc-solutions-widget__hotspots {
    position: absolute;
    inset: 0;
}

.nc-solutions-widget__hotspot {
    position: absolute;
    top: calc(var(--hotspot-top) * 1%);
    left: calc(var(--hotspot-left) * 1%);
    transform: translate(calc(var(--nc-solutions-collapsed-size) / -2), -50%);
    z-index: 2;
}

.nc-solutions-widget__hotspot-button {
    --expanded-width: 13rem;
    display: inline-flex;
    align-items: center;
    gap: var(--nc-solutions-label-gap);
    width: var(--nc-solutions-collapsed-size);
    min-height: var(--nc-solutions-collapsed-size);
    padding: var(--nc-solutions-hotspot-padding-y);
    padding-right: var(--nc-solutions-label-gap);
    border: 0;
    border-radius: 999px;
    background: var(--nc-solutions-blue);
    color: #fff;
    overflow: hidden;
    text-decoration: none;
    transition: width 0.3s ease, background-color 0.2s ease;
    will-change: width, transform;
    box-shadow: 0 5px 10px rgba(0, 78, 132, 0.24);
}

.nc-solutions-widget__hotspot-button:hover,
.nc-solutions-widget__hotspot-button:focus,
.nc-solutions-widget__hotspot-button:focus-visible,
.nc-solutions-widget__hotspot-button.is-active,
.nc-solutions-widget__hotspot-button.is-peeking {
    width: var(--expanded-width);
    color: #fff;
    text-decoration: none;
    background: var(--nc-solutions-blue-hover);
}

.nc-solutions-widget__hotspot-button:focus-visible {
    outline: 2px solid #fff;
    outline-offset: 2px;
    box-shadow: 0 18px 30px rgba(0, 78, 132, 0.24), 0 0 0 5px rgba(0, 79, 132, 0.45);
}

.nc-solutions-widget__hotspot-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 calc(var(--nc-solutions-collapsed-size) - 0.5rem);
    width: calc(var(--nc-solutions-collapsed-size) - 0.5rem);
    height: calc(var(--nc-solutions-collapsed-size) - 0.5rem);
    border-radius: 50%;
    background: var(--nc-solutions-blue);
}

.nc-solutions-widget__hotspot-icon img {
    max-width: 100%;
    max-height: 100%;
}

.nc-solutions-widget__hotspot-label {
    display: inline-block;
    max-width: 0;
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: 0.01em;
    opacity: 0;
    white-space: nowrap;
    transform: translateX(-0.5rem);
    transition: max-width 0.25s ease, opacity 0.2s ease, transform 0.25s ease;
}

.nc-solutions-widget__hotspot-button:hover .nc-solutions-widget__hotspot-label,
.nc-solutions-widget__hotspot-button:focus .nc-solutions-widget__hotspot-label,
.nc-solutions-widget__hotspot-button:focus-visible .nc-solutions-widget__hotspot-label,
.nc-solutions-widget__hotspot-button.is-active .nc-solutions-widget__hotspot-label,
.nc-solutions-widget__hotspot-button.is-peeking .nc-solutions-widget__hotspot-label {
    max-width: calc(var(--expanded-width) - var(--nc-solutions-collapsed-size) - 1.5rem);
    opacity: 1;
    transform: translateX(0);
}

@media (prefers-reduced-motion: reduce) {
    .nc-solutions-widget__hotspot-button,
    .nc-solutions-widget__hotspot-label {
        transition: none;
    }
}
