.gmspa-section {
    --gmspa-sticky-top: 120px;
    --gmspa-opacity: 1;
    position: relative;
    width: 100%;
    max-width: 100%;
    height: auto;
    min-height: 0;
    overflow: visible;
}

/* Sticky uses the host/container as its real layout boundary instead of creating its own vh section. */
.gmspa-section.is-sticky {
    display: contents;
}

.gmspa-sticky-wrap {
    width: 100%;
    max-width: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    pointer-events: none;
}

.gmspa-section.is-sticky .gmspa-sticky-wrap {
    position: sticky;
    top: var(--gmspa-sticky-top);
}

.gmspa-image {
    display: block;
    width: 100%;
    max-width: 100%;
    height: auto;
    max-height: 100%;
    object-fit: contain;
    opacity: var(--gmspa-opacity);
    transform-origin: 50% 50%;
    will-change: transform;
    backface-visibility: hidden;
    transform: translateZ(0) rotate(0deg) scale(1);
}

@media (max-width: 767px) {
    .gmspa-section.hide-mobile {
        display: none !important;
    }
}

@media (prefers-reduced-motion: reduce) {
    .gmspa-image {
        transform: none !important;
    }
}
