.wp-block-button__link,
.menu-toggle,
.sps-quote-form__submit {
    position: relative;
    overflow: hidden;
    isolation: isolate;
}

.wp-block-button__link::after,
.menu-toggle::after,
.sps-quote-form__submit::after {
    content: "";
    position: absolute;
    z-index: 1;
    top: -45%;
    left: -70%;
    width: 52%;
    height: 190%;
    pointer-events: none;
    background: linear-gradient(
        115deg,
        transparent 18%,
        rgba(255, 255, 255, 0.12) 34%,
        rgba(255, 255, 255, 0.58) 50%,
        rgba(255, 255, 255, 0.12) 66%,
        transparent 82%
    );
    transform: translateX(-150%) skewX(-18deg);
    transition: transform 620ms cubic-bezier(0.22, 1, 0.36, 1);
}

.wp-block-button__link:hover::after,
.wp-block-button__link:focus-visible::after,
.menu-toggle:hover::after,
.menu-toggle:focus-visible::after,
.sps-quote-form__submit:hover::after,
.sps-quote-form__submit:focus-visible::after {
    transform: translateX(430%) skewX(-18deg);
}

.menu-toggle > * {
    position: relative;
    z-index: 2;
}

/* Keep the heat-pump CTA colour stable on hover; motion comes from lift + sheen. */
.sps-section--heat-pumps .wp-block-button__link.has-blue-background-color,
.sps-section--heat-pumps .wp-block-button__link.has-blue-background-color:hover,
.sps-section--heat-pumps .wp-block-button__link.has-blue-background-color:focus,
.sps-section--heat-pumps .wp-block-button__link.has-blue-background-color:active {
    color: var(--sps-white) !important;
    background-color: var(--sps-primary-deep) !important;
}

@media (prefers-reduced-motion: reduce) {
    .wp-block-button__link::after,
    .menu-toggle::after,
    .sps-quote-form__submit::after {
        display: none;
    }
}
