.wt-button,
.tp-button,
.error-button,
.ai-icon-button,
.ai-primary-cta,
.ai-secondary-cta,
.ai-contact-action,
.ai-bottom-action,
.ai-modal-action,
.ai-share-option,
.ai-social-tile,
.ai-location-card,
.photographer-secondary-action,
.vexo-public-actions a,
.vexo-public-actions button,
.copyBtn,
.emojiPicker,
#download,
.btn:not(.btn-close) {
    cursor: pointer !important;
    line-height: 1.1 !important;
    text-align: center !important;
    transform: translateY(0);
    transition: transform .16s ease, border-color .16s ease, background-color .16s ease, color .16s ease, box-shadow .16s ease, opacity .16s ease !important;
    user-select: none;
}

/* VEXO public action feedback: shared color/press language for legacy public templates. */
[data-vexo-public-action-accent] {
    --vexo-public-action-accent: #2563eb;
    --vexo-public-action-foreground: #ffffff;
}

[data-vexo-public-action-accent="info"] {
    --vexo-public-action-accent: #2563eb;
}

[data-vexo-public-action-accent="success"] {
    --vexo-public-action-accent: #059669;
}

[data-vexo-public-action-accent="warning"] {
    --vexo-public-action-accent: #d97706;
}

[data-vexo-public-action-accent="danger"] {
    --vexo-public-action-accent: #dc2626;
}

.vexo-public-action[data-vexo-public-action-accent] {
    border-color: color-mix(in srgb, var(--vexo-public-action-accent) 42%, transparent) !important;
    box-shadow:
        0 16px 34px -26px color-mix(in srgb, var(--vexo-public-action-accent) 64%, transparent),
        inset 0 1px 0 rgba(255, 255, 255, 0.18) !important;
    transition:
        background-color 160ms ease,
        border-color 160ms ease,
        box-shadow 160ms ease,
        color 160ms ease,
        filter 160ms ease,
        transform 160ms ease !important;
}

.vexo-public-action[data-vexo-public-action-accent]:hover,
.vexo-public-action[data-vexo-public-action-accent]:focus-visible {
    background: var(--vexo-public-action-accent) !important;
    border-color: color-mix(in srgb, var(--vexo-public-action-accent) 88%, #111827) !important;
    color: var(--vexo-public-action-foreground) !important;
    filter: saturate(1.08);
    transform: translateY(-1px);
}

.vexo-public-action[data-vexo-public-action-accent]:hover :where(i, svg, span),
.vexo-public-action[data-vexo-public-action-accent]:focus-visible :where(i, svg, span) {
    color: currentColor !important;
}

.vexo-public-action.is-vexo-action-pressing {
    transform: translateY(0) scale(0.97) !important;
}

.vexo-public-action.is-vexo-action-complete {
    animation: vexoPublicActionPulse 420ms ease;
}

@keyframes vexoPublicActionPulse {
    0% {
        box-shadow:
            0 0 0 0 color-mix(in srgb, var(--vexo-public-action-accent) 35%, transparent),
            0 14px 34px -18px color-mix(in srgb, var(--vexo-public-action-accent) 45%, transparent);
    }
    100% {
        box-shadow:
            0 0 0 10px color-mix(in srgb, var(--vexo-public-action-accent) 0%, transparent),
            0 18px 42px -26px color-mix(in srgb, var(--vexo-public-action-accent) 22%, transparent);
    }
}

@media (prefers-reduced-motion: reduce) {
    .vexo-public-action[data-vexo-public-action-accent],
    .vexo-public-action[data-vexo-public-action-accent]:hover,
    .vexo-public-action[data-vexo-public-action-accent]:active {
        animation: none !important;
        transition: none !important;
        transform: none !important;
    }
}

.ai-icon-button,
.ai-primary-cta,
.ai-secondary-cta,
.ai-contact-action,
.ai-bottom-action,
.ai-modal-action,
.ai-share-option,
.ai-social-tile,
.ai-location-card,
.photographer-secondary-action,
.vexo-public-actions a,
.vexo-public-actions button,
.copyBtn,
.emojiPicker,
#download,
.btn:not(.btn-close) {
    transition: transform .16s ease, border-color .16s ease, background-color .16s ease, color .16s ease, box-shadow .16s ease, opacity .16s ease !important;
}

.ai-icon-button:hover,
.ai-icon-button:focus-visible,
.ai-primary-cta:hover,
.ai-primary-cta:focus-visible,
.ai-secondary-cta:hover,
.ai-secondary-cta:focus-visible,
.ai-contact-action:hover,
.ai-contact-action:focus-visible,
.ai-bottom-action:hover,
.ai-bottom-action:focus-visible,
.ai-modal-action:hover,
.ai-modal-action:focus-visible,
.ai-share-option:hover,
.ai-share-option:focus-visible,
.ai-social-tile:hover,
.ai-social-tile:focus-visible,
.ai-location-card:hover,
.ai-location-card:focus-visible,
.photographer-secondary-action:hover,
.photographer-secondary-action:focus-visible,
.vexo-public-actions a:hover,
.vexo-public-actions a:focus-visible,
.vexo-public-actions button:hover,
.vexo-public-actions button:focus-visible,
.copyBtn:hover,
.copyBtn:focus-visible,
.emojiPicker:hover,
.emojiPicker:focus-visible,
#download:hover,
#download:focus-visible,
.btn:not(.btn-close):hover,
.btn:not(.btn-close):focus-visible {
    transform: translateY(-1px);
    outline: 0;
    box-shadow:
        0 18px 38px -26px color-mix(in srgb, var(--vexo-primary, Highlight) 64%, transparent),
        0 0 0 3px color-mix(in srgb, var(--vexo-primary, Highlight) 18%, transparent) !important;
}

.ai-icon-button:active,
.ai-primary-cta:active,
.ai-secondary-cta:active,
.ai-contact-action:active,
.ai-bottom-action:active,
.ai-modal-action:active,
.ai-share-option:active,
.ai-social-tile:active,
.ai-location-card:active,
.photographer-secondary-action:active,
.vexo-public-actions a:active,
.vexo-public-actions button:active,
.copyBtn:active,
.emojiPicker:active,
#download:active,
.btn:not(.btn-close):active {
    transform: translateY(0) scale(.98);
}

.vexo-public-actions a,
.vexo-public-actions button,
.copyBtn,
.emojiPicker,
#download,
.btn:not(.btn-close) {
    border-radius: .72rem !important;
}

.vexo-public-actions a:hover,
.vexo-public-actions a:focus-visible,
.vexo-public-actions button:hover,
.vexo-public-actions button:focus-visible,
.copyBtn:hover,
.copyBtn:focus-visible,
.emojiPicker:hover,
.emojiPicker:focus-visible,
#download:hover,
#download:focus-visible {
    border-color: color-mix(in srgb, var(--vexo-primary, Highlight) 45%, currentColor) !important;
}

.wt-button:hover,
.wt-button:focus-visible {
    transform: translateY(-1px);
    box-shadow: 0 22px 46px color-mix(in srgb, var(--wt-primary) 24%, transparent) !important;
    outline: 0;
}

.wt-button:active {
    transform: translateY(0) scale(.98);
}

.wt-button.ghost:hover,
.wt-button.ghost:focus-visible {
    border-color: color-mix(in srgb, var(--wt-primary) 48%, var(--wt-border)) !important;
    background: color-mix(in srgb, var(--wt-primary) 12%, var(--wt-surface)) !important;
    color: var(--wt-primary) !important;
}

.tp-button:hover,
.tp-button:focus-visible {
    transform: translateY(-1px);
    box-shadow: 0 24px 48px color-mix(in srgb, var(--tp-primary) 28%, transparent) !important;
    outline: 0;
}

.tp-button:active {
    transform: translateY(0) scale(.98);
}

.tp-button.ghost:hover,
.tp-button.ghost:focus-visible {
    border-color: color-mix(in srgb, var(--tp-primary) 45%, var(--tp-border)) !important;
    background: color-mix(in srgb, var(--tp-primary) 12%, var(--tp-surface)) !important;
    color: var(--tp-primary) !important;
}

.error-button:focus-visible {
    outline: 0;
    box-shadow:
        0 18px 36px color-mix(in srgb, midnightblue 16%, transparent),
        0 0 0 3px color-mix(in srgb, dodgerblue 24%, transparent);
}

.error-button:active {
    transform: translateY(0) scale(.98);
}

@media (prefers-reduced-motion: reduce) {
    .wt-button,
    .tp-button,
    .error-button,
    .ai-icon-button,
    .ai-primary-cta,
    .ai-secondary-cta,
    .ai-contact-action,
    .ai-bottom-action,
    .ai-modal-action,
    .ai-share-option,
    .ai-social-tile,
    .ai-location-card,
    .photographer-secondary-action,
    .vexo-public-actions a,
    .vexo-public-actions button,
    .copyBtn,
    .emojiPicker,
    #download,
    .btn:not(.btn-close) {
        transition: none !important;
    }

    .wt-button:hover,
    .wt-button:active,
    .tp-button:hover,
    .tp-button:active,
    .error-button:hover,
    .error-button:active,
    .ai-icon-button:hover,
    .ai-icon-button:active,
    .ai-primary-cta:hover,
    .ai-primary-cta:active,
    .ai-secondary-cta:hover,
    .ai-secondary-cta:active,
    .ai-contact-action:hover,
    .ai-contact-action:active,
    .ai-bottom-action:hover,
    .ai-bottom-action:active,
    .ai-modal-action:hover,
    .ai-modal-action:active,
    .ai-share-option:hover,
    .ai-share-option:active,
    .ai-social-tile:hover,
    .ai-social-tile:active,
    .ai-location-card:hover,
    .ai-location-card:active,
    .photographer-secondary-action:hover,
    .photographer-secondary-action:active,
    .vexo-public-actions a:hover,
    .vexo-public-actions a:active,
    .vexo-public-actions button:hover,
    .vexo-public-actions button:active,
    .copyBtn:hover,
    .copyBtn:active,
    .emojiPicker:hover,
    .emojiPicker:active,
    #download:hover,
    #download:active,
    .btn:not(.btn-close):hover,
    .btn:not(.btn-close):active {
        transform: none !important;
    }
}

/* Broad legacy action roles for copied/public templates that do not use VEXO components. */
a[class*="submit"],
button[class*="submit"],
a[class*="save"],
button[class*="save"],
a[class*="create"],
button[class*="create"],
a[class*="add"],
button[class*="add"],
a[class*="order"],
button[class*="order"],
a[class*="buy"],
button[class*="buy"],
a[class*="pay"],
button[class*="pay"],
a[class*="whatsapp"],
button[class*="whatsapp"],
.primary-btn,
.submit-btn,
.save-btn,
.create-btn,
.add-btn,
.order-btn,
.buy-btn,
.pay-btn,
.whatsapp-button,
.whatsapp-btn {
    border-color: color-mix(in srgb, var(--vexo-success, #16a34a) 42%, transparent) !important;
    background: color-mix(in srgb, var(--vexo-success, #16a34a) 14%, Canvas) !important;
    color: color-mix(in srgb, var(--vexo-success, #16a34a) 78%, CanvasText) !important;
}

a[class*="view"],
button[class*="view"],
a[class*="open"],
button[class*="open"],
a[class*="preview"],
button[class*="preview"],
a[class*="details"],
button[class*="details"],
a[class*="download"],
button[class*="download"],
a[class*="search"],
button[class*="search"],
a[class*="share"],
button[class*="share"],
a[class*="call"],
button[class*="call"],
a[class*="mail"],
button[class*="mail"],
.secondary-btn,
.view-btn,
.open-btn,
.preview-btn,
.details-btn,
.download-btn,
.search-btn,
.share-btn,
.call-btn,
.mail-btn {
    border-color: color-mix(in srgb, var(--vexo-info, #0ea5e9) 42%, transparent) !important;
    background: color-mix(in srgb, var(--vexo-info, #0ea5e9) 14%, Canvas) !important;
    color: color-mix(in srgb, var(--vexo-info, #0ea5e9) 78%, CanvasText) !important;
}

a[class*="edit"],
button[class*="edit"],
a[class*="manage"],
button[class*="manage"],
a[class*="copy"],
button[class*="copy"],
a[class*="back"],
button[class*="back"],
a[class*="reset"],
button[class*="reset"],
a[class*="book"],
button[class*="book"],
.edit-btn,
.manage-btn,
.copy-btn,
.back-btn,
.reset-btn,
.book-btn {
    border-color: color-mix(in srgb, var(--vexo-warning, #d97706) 44%, transparent) !important;
    background: color-mix(in srgb, var(--vexo-warning, #d97706) 15%, Canvas) !important;
    color: color-mix(in srgb, var(--vexo-warning, #d97706) 78%, CanvasText) !important;
}

a[class*="delete"],
button[class*="delete"],
a[class*="remove"],
button[class*="remove"],
a[class*="cancel"],
button[class*="cancel"],
a[class*="danger"],
button[class*="danger"],
.delete-btn,
.remove-btn,
.cancel-btn,
.danger-btn {
    border-color: color-mix(in srgb, var(--vexo-danger, #dc2626) 44%, transparent) !important;
    background: color-mix(in srgb, var(--vexo-danger, #dc2626) 12%, Canvas) !important;
    color: color-mix(in srgb, var(--vexo-danger, #dc2626) 82%, CanvasText) !important;
}

/* Legacy/public template action coverage. */
a[class*="btn"]:not(.btn-close),
button[class*="btn"]:not(.btn-close),
a[class*="-button"],
button[class*="-button"],
a[class*="-action"],
button[class*="-action"],
.action-btn,
.nav-item,
.share-icons a,
.share-icon,
.lang-switcher-btn,
.whatsapp-float-btn,
.chat-button,
.info-btn,
.custom-info-btn,
.custom-news-btn,
#subscribeButton,
#bookAppointmentButton,
#add-slot-button,
#sendWhatsapp {
    cursor: pointer !important;
    transform: translateY(0);
    transition: transform .16s ease, border-color .16s ease, background-color .16s ease, color .16s ease, box-shadow .16s ease, opacity .16s ease !important;
    user-select: none;
}

a[class*="btn"]:not(.btn-close):hover,
a[class*="btn"]:not(.btn-close):focus-visible,
button[class*="btn"]:not(.btn-close):hover,
button[class*="btn"]:not(.btn-close):focus-visible,
a[class*="-button"]:hover,
a[class*="-button"]:focus-visible,
button[class*="-button"]:hover,
button[class*="-button"]:focus-visible,
a[class*="-action"]:hover,
a[class*="-action"]:focus-visible,
button[class*="-action"]:hover,
button[class*="-action"]:focus-visible,
.action-btn:hover,
.action-btn:focus-visible,
.nav-item:hover,
.nav-item:focus-visible,
.share-icons a:hover,
.share-icons a:focus-visible,
.share-icon:hover,
.share-icon:focus-visible,
.lang-switcher-btn:hover,
.lang-switcher-btn:focus-visible,
.whatsapp-float-btn:hover,
.whatsapp-float-btn:focus-visible,
.chat-button:hover,
.chat-button:focus-visible,
.info-btn:hover,
.info-btn:focus-visible,
.custom-info-btn:hover,
.custom-info-btn:focus-visible,
.custom-news-btn:hover,
.custom-news-btn:focus-visible,
#subscribeButton:hover,
#subscribeButton:focus-visible,
#bookAppointmentButton:hover,
#bookAppointmentButton:focus-visible,
#add-slot-button:hover,
#add-slot-button:focus-visible,
#sendWhatsapp:hover,
#sendWhatsapp:focus-visible {
    transform: translateY(-1px);
    outline: 0;
    box-shadow:
        0 18px 38px -26px color-mix(in srgb, var(--vexo-primary, Highlight) 64%, transparent),
        0 0 0 3px color-mix(in srgb, var(--vexo-primary, Highlight) 18%, transparent) !important;
}

a[class*="btn"]:not(.btn-close):active,
button[class*="btn"]:not(.btn-close):active,
a[class*="-button"]:active,
button[class*="-button"]:active,
a[class*="-action"]:active,
button[class*="-action"]:active,
.action-btn:active,
.nav-item:active,
.share-icons a:active,
.share-icon:active,
.lang-switcher-btn:active,
.whatsapp-float-btn:active,
.chat-button:active,
.info-btn:active,
.custom-info-btn:active,
.custom-news-btn:active,
#subscribeButton:active,
#bookAppointmentButton:active,
#add-slot-button:active,
#sendWhatsapp:active {
    transform: translateY(0) scale(.98);
}

.quick-actions > .action-btn:nth-child(1),
.vexo-public-actions > :nth-child(1),
.share-icons > :nth-child(1),
.share-icon.whatsapp,
.whatsapp-send-btn,
.chat-button,
.custom-news-btn,
#subscribeButton,
#bookAppointmentButton,
#sendWhatsapp {
    border-color: color-mix(in srgb, var(--vexo-success, #16a34a) 42%, transparent) !important;
    background: color-mix(in srgb, var(--vexo-success, #16a34a) 14%, Canvas) !important;
    color: color-mix(in srgb, var(--vexo-success, #16a34a) 78%, CanvasText) !important;
}

.quick-actions > .action-btn:nth-child(2),
.vexo-public-actions > :nth-child(2),
.share-icons > :nth-child(2),
.share-icon.telegram,
.qr-download-btn,
#download {
    border-color: color-mix(in srgb, var(--vexo-info, #0ea5e9) 42%, transparent) !important;
    background: color-mix(in srgb, var(--vexo-info, #0ea5e9) 14%, Canvas) !important;
    color: color-mix(in srgb, var(--vexo-info, #0ea5e9) 78%, CanvasText) !important;
}

.quick-actions > .action-btn:nth-child(3),
.vexo-public-actions > :nth-child(3),
.share-icons > :nth-child(3),
.share-icon.facebook,
.share-copy-btn,
#add-slot-button {
    border-color: color-mix(in srgb, var(--vexo-warning, #d97706) 44%, transparent) !important;
    background: color-mix(in srgb, var(--vexo-warning, #d97706) 15%, Canvas) !important;
    color: color-mix(in srgb, var(--vexo-warning, #d97706) 78%, CanvasText) !important;
}

@media (prefers-reduced-motion: reduce) {
    a[class*="btn"]:not(.btn-close),
    button[class*="btn"]:not(.btn-close),
    a[class*="-button"],
    button[class*="-button"],
    a[class*="-action"],
    button[class*="-action"],
    .action-btn,
    .nav-item,
    .share-icons a,
    .share-icon,
    .lang-switcher-btn,
    .whatsapp-float-btn,
    .chat-button,
    .info-btn,
    .custom-info-btn,
    .custom-news-btn,
    #subscribeButton,
    #bookAppointmentButton,
    #add-slot-button,
    #sendWhatsapp {
        transition: none !important;
    }

    a[class*="btn"]:not(.btn-close):hover,
    a[class*="btn"]:not(.btn-close):active,
    button[class*="btn"]:not(.btn-close):hover,
    button[class*="btn"]:not(.btn-close):active,
    a[class*="-button"]:hover,
    a[class*="-button"]:active,
    button[class*="-button"]:hover,
    button[class*="-button"]:active,
    a[class*="-action"]:hover,
    a[class*="-action"]:active,
    button[class*="-action"]:hover,
    button[class*="-action"]:active,
    .action-btn:hover,
    .action-btn:active,
    .nav-item:hover,
    .nav-item:active,
    .share-icons a:hover,
    .share-icons a:active,
    .share-icon:hover,
    .share-icon:active,
    .lang-switcher-btn:hover,
    .lang-switcher-btn:active,
    .whatsapp-float-btn:hover,
    .whatsapp-float-btn:active,
    .chat-button:hover,
    .chat-button:active,
    .info-btn:hover,
    .info-btn:active,
    .custom-info-btn:hover,
    .custom-info-btn:active,
    .custom-news-btn:hover,
    .custom-news-btn:active,
    #subscribeButton:hover,
    #subscribeButton:active,
    #bookAppointmentButton:hover,
    #bookAppointmentButton:active,
    #add-slot-button:hover,
    #add-slot-button:active,
    #sendWhatsapp:hover,
    #sendWhatsapp:active {
        transform: none !important;
    }
}
