.esr-star-rating-wrapper {
    text-align: center;
    font-family: sans-serif;
}

.esr-stars {
    display: inline-flex;
    gap: 10px;
    cursor: pointer;
}

.esr-star {
    width: 40px;
    height: 40px;
    transition: transform 0.2s ease;
}

.esr-star svg {
    width: 100%;
    height: 100%;
    stroke-width: 2px;
    fill: transparent;
    /* Default empty */
    transition: fill 0.3s ease, stroke 0.3s ease;
}

/* Filled state class - color handled by JS/Elementor or Fallback */
.esr-star.esr-filled svg {
    /* Fallback default if Elementor styles aren't loaded yet */
    fill: #ff4d4d;
}

/* Rubber band animation class */
.esr-anim-rubber {
    animation: rubberBand 1s;
}

@keyframes rubberBand {
    0% {
        transform: scale3d(1, 1, 1);
    }

    30% {
        transform: scale3d(1.25, 0.75, 1);
    }

    40% {
        transform: scale3d(0.75, 1.25, 1);
    }

    50% {
        transform: scale3d(1.15, 0.85, 1);
    }

    65% {
        transform: scale3d(0.95, 1.05, 1);
    }

    75% {
        transform: scale3d(1.05, 0.95, 1);
    }

    100% {
        transform: scale3d(1, 1, 1);
    }
}

.esr-message-container {
    margin-top: 20px;
    min-height: 30px;
    /* Prevent jump */
    font-size: 1.2em;
    font-weight: 500;
    color: #333;
}

/* Cursor for words if needed, but smooth appearance is better */