/* Opt-in effect for Elementor's native Heading. Content stays readable without JS. */
.elementor-widget-heading.yasmalia-heading-shine-yes.is-yasmalia-heading-shine-eligible.is-yasmalia-heading-shine-playing .elementor-heading-title,
.elementor-editor-active .elementor-widget-heading.yasmalia-heading-shine-yes.yasmalia-heading-shine-preview-yes.is-yasmalia-heading-shine-eligible .elementor-heading-title {
    background-image: linear-gradient(
        90deg,
        currentColor 45%,
        var(--yasmalia-heading-shine-color, #ffd100) 46%,
        var(--yasmalia-heading-shine-color, #ffd100) 54%,
        currentColor 55%
    );
    background-size: 240% 100%;
    background-repeat: no-repeat;
    background-clip: text;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}

.elementor-widget-heading.is-yasmalia-heading-shine-playing .elementor-heading-title {
    animation: yasmalia-heading-shine-wipe var(--yasmalia-heading-shine-duration, 1.05s) cubic-bezier(.215, .61, .355, 1) both;
}

.elementor-widget-heading.is-yasmalia-heading-shine-playing.is-yasmalia-heading-shine-reverse .elementor-heading-title {
    animation-direction: reverse;
}

.elementor-editor-active .elementor-widget-heading.yasmalia-heading-shine-preview-yes .elementor-heading-title {
    background-position: 48% 50%;
    animation: none;
}

@keyframes yasmalia-heading-shine-wipe {
    from { background-position: 100% 50%; }
    to { background-position: 0 50%; }
}

@media (prefers-reduced-motion: reduce) {
    .elementor-widget-heading.is-yasmalia-heading-shine-playing .elementor-heading-title {
        animation: none;
        background-image: none;
        -webkit-text-fill-color: currentColor;
    }
}
