/* Shared physical feedback; individual transform animations remain intact. */
:where(button, input:is([type="button"], [type="submit"], [type="reset"]), a.btn, a.wp-block-button__link, [role="button"]):not(:disabled):not([aria-disabled="true"]):not(.disabled) {
    scale: 1;
    transition: scale 150ms ease-out, filter 150ms ease, box-shadow 150ms ease,
        background-color 150ms ease, border-color 150ms ease, color 150ms ease,
        transform 200ms ease-out, opacity 150ms ease;
}

:where(button, input:is([type="button"], [type="submit"], [type="reset"]), a.btn, a.wp-block-button__link, [role="button"]):not(:disabled):not([aria-disabled="true"]):not(.disabled):is(:active, .is-touch-pressed, .is-key-pressed) {
    scale: 0.975;
    filter: brightness(0.97);
    box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.14);
}

:where(button, input:is([type="button"], [type="submit"], [type="reset"]), a.btn, a.wp-block-button__link, [role="button"]):not(:disabled):not([aria-disabled="true"]):not(.disabled):focus-visible {
    outline: 2px solid var(--color-secondary, #f5a623);
    outline-offset: 2px;
}

/* Linked cards render their button face as a span inside the link. */
:where(a.ts-services-hub__card .ts-services-hub__cta, a.ts-photo-card .btn) {
    scale: 1;
    transition: scale 150ms ease-out, filter 150ms ease, box-shadow 150ms ease,
        background-color 150ms ease, border-color 150ms ease, color 150ms ease;
}

:where(a.ts-services-hub__card, a.ts-photo-card):is(:active, .is-touch-pressed, .is-key-pressed) :where(.ts-services-hub__cta, .btn) {
    scale: 0.975;
    filter: brightness(0.97);
    box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.14);
}

@media (prefers-reduced-motion: reduce) {
    :where(button, input:is([type="button"], [type="submit"], [type="reset"]), a.btn, a.wp-block-button__link, [role="button"]):not(:disabled):not([aria-disabled="true"]):not(.disabled) {
        transition: none;
    }

    :where(button, input:is([type="button"], [type="submit"], [type="reset"]), a.btn, a.wp-block-button__link, [role="button"]):not(:disabled):not([aria-disabled="true"]):not(.disabled):is(:active, .is-touch-pressed, .is-key-pressed) {
        scale: 1;
    }

    :where(a.ts-services-hub__card .ts-services-hub__cta, a.ts-photo-card .btn) {
        transition: none;
    }

    :where(a.ts-services-hub__card, a.ts-photo-card):is(:active, .is-touch-pressed, .is-key-pressed) :where(.ts-services-hub__cta, .btn) {
        scale: 1;
    }
}
