/* Unified orange CTA hover — load last so it wins over page-specific rules */
:is(
    .cta-button:not(.btn-subtle),
    .primary-cta,
    .hero-cta-btn,
    .conversion-zone .conv-submit,
    .contact-submit-btn:not(:disabled),
    .gallery-cta-float,
    .nav-cta-inquiry,
    .nav-cta-btn.open-modal:not(.nav-cta-phone),
    .msb-call,
    .mobile-sticky-bar .msb-call,
    .gallery-lightbox__cta:not(.gallery-lightbox__cta--wa),
    .cookie-banner__btn--accept
) {
    transition:
        transform var(--motion-cta-duration) var(--motion-cta-ease),
        background-color var(--motion-cta-duration) var(--motion-cta-ease),
        background var(--motion-cta-duration) var(--motion-cta-ease),
        box-shadow var(--motion-cta-duration) var(--motion-cta-ease);
}

:is(
    .cta-button:not(.btn-subtle),
    .primary-cta,
    .hero-cta-btn,
    .conversion-zone .conv-submit,
    .contact-submit-btn:not(:disabled),
    .gallery-cta-float,
    .nav-cta-inquiry,
    .nav-cta-btn.open-modal:not(.nav-cta-phone),
    .msb-call,
    .mobile-sticky-bar .msb-call,
    .gallery-lightbox__cta:not(.gallery-lightbox__cta--wa),
    .cookie-banner__btn--accept
):hover,
:is(
    .cta-button:not(.btn-subtle),
    .primary-cta,
    .hero-cta-btn,
    .conversion-zone .conv-submit,
    .contact-submit-btn:not(:disabled),
    .gallery-cta-float,
    .nav-cta-inquiry,
    .nav-cta-btn.open-modal:not(.nav-cta-phone),
    .msb-call,
    .mobile-sticky-bar .msb-call,
    .gallery-lightbox__cta:not(.gallery-lightbox__cta--wa),
    .cookie-banner__btn--accept
):focus-visible {
    transform: translateY(-2px) scale(1.01);
    background-color: var(--brand-accent-hover);
    box-shadow: 0 10px 28px rgba(var(--accent-orange-rgb), 0.28);
}

.primary-cta:hover,
.primary-cta:focus-visible {
    background-color: var(--brand-accent-hover) !important;
}

.nav-cta-inquiry:hover,
.nav-cta-inquiry:focus-visible,
.nav-cta-btn.open-modal:not(.nav-cta-phone):hover,
.nav-cta-btn.open-modal:not(.nav-cta-phone):focus-visible {
    background: var(--brand-accent-hover) !important;
}

.nav-cta-inquiry:hover svg,
.nav-cta-btn.open-modal:not(.nav-cta-phone):hover svg {
    transform: none;
}

.gallery-lightbox__cta--wa:hover,
.gallery-lightbox__cta--wa:focus-visible {
    background-color: #1fb855;
    box-shadow: 0 10px 28px rgba(37, 211, 102, 0.28);
}

@media (prefers-reduced-motion: reduce) {
    :is(
        .cta-button:not(.btn-subtle),
        .primary-cta,
        .hero-cta-btn,
        .conversion-zone .conv-submit,
        .contact-submit-btn:not(:disabled),
        .gallery-cta-float,
        .nav-cta-inquiry,
        .nav-cta-btn.open-modal:not(.nav-cta-phone),
        .msb-call,
        .mobile-sticky-bar .msb-call,
        .gallery-lightbox__cta:not(.gallery-lightbox__cta--wa),
        .cookie-banner__btn--accept
    ):hover,
    :is(
        .cta-button:not(.btn-subtle),
        .primary-cta,
        .hero-cta-btn,
        .conversion-zone .conv-submit,
        .contact-submit-btn:not(:disabled),
        .gallery-cta-float,
        .nav-cta-inquiry,
        .nav-cta-btn.open-modal:not(.nav-cta-phone),
        .msb-call,
        .mobile-sticky-bar .msb-call,
        .gallery-lightbox__cta:not(.gallery-lightbox__cta--wa),
        .cookie-banner__btn--accept
    ):focus-visible {
        transform: none;
    }
}
