/* NO.EM STORE — animazioni dei pulsanti (tutte le pagine)
 * Al passaggio: si solleva, l'ombra cresce, un riflesso attraversa il pulsante, la freccia scorre.
 * Pulsanti principali (.noem-cta-attn, "Aderisci ora", "Entra nello shop"): ogni 6 s un riflesso e un alone dorato.
 * :where() = peso zero: le regole già esistenti dei singoli pulsanti (posizione, trasformazioni) restano prioritarie.
 * Con "riduci animazioni" attivo nel sistema non si muove nulla. */
:root { --noem-ease: cubic-bezier(.2, .8, .2, 1); }

:where(.noem-btn-primary, .noem-btn-outline, .noem-btn, .noem-sban-cta, .noem-ck-btn, #place_order, .noem-more-btn, .noem-faq-help-btn,
       .noem-ct-send button, .noem-mm-promo b, .noem-fidb-cta, .noem-acc .btn, .checkout-button, .single_add_to_cart_button, .noem-sug-add) {
    position: relative; overflow: hidden; isolation: isolate;
    transition: transform .25s var(--noem-ease), box-shadow .25s var(--noem-ease), background-color .2s ease, color .2s ease;
}
.noem-stage-cta { overflow: hidden; isolation: isolate; }

/* sollevamento */
:where(.noem-btn-primary, .noem-btn-outline, .noem-sban-cta, .noem-ck-btn, #place_order, .noem-more-btn, .noem-faq-help-btn,
       .noem-ct-send button, .noem-acc .btn, .checkout-button, .single_add_to_cart_button):hover,
:where(.noem-btn-primary, .noem-btn-outline, .noem-ck-btn, #place_order, .noem-more-btn, .noem-faq-help-btn, .noem-ct-send button, .noem-acc .btn, .checkout-button, .single_add_to_cart_button):focus-visible,
:where(.noem-sban:hover .noem-sban-cta, .noem-mm-promo:hover b, .noem-fidb:hover .noem-fidb-cta, .noem-fidb:focus-visible .noem-fidb-cta) {
    transform: translateY(-2px);
    box-shadow: 0 12px 26px rgba(18, 82, 140, .28);
}
:where(.noem-btn-primary, .noem-btn-outline, .noem-btn, .noem-sban-cta, .noem-ck-btn, #place_order, .noem-more-btn, .noem-faq-help-btn,
       .noem-ct-send button, .noem-acc .btn, .checkout-button, .single_add_to_cart_button, .noem-fidb-cta):active {
    transform: translateY(0) scale(.97); transition-duration: .08s;
}

/* riflesso luminoso */
:where(.noem-btn-primary, .noem-btn-outline, .noem-btn, .noem-stage-cta, .noem-sban-cta, .noem-ck-btn, #place_order, .noem-more-btn, .noem-faq-help-btn,
       .noem-ct-send button, .noem-mm-promo b, .noem-fidb-cta, .noem-acc .btn, .checkout-button, .single_add_to_cart_button)::after {
    content: ""; position: absolute; top: 0; bottom: 0; left: -80%; width: 45%; z-index: 1; pointer-events: none;
    background: linear-gradient(105deg, transparent 0%, rgba(255, 255, 255, .55) 50%, transparent 100%);
    transform: skewX(-20deg); opacity: 0;
}
:where(.noem-btn-outline, .noem-sban-cta, .noem-fidb-cta, .noem-mm-promo b, .noem-ck-btn.is-line)::after {
    background: linear-gradient(105deg, transparent 0%, rgba(215, 174, 120, .45) 50%, transparent 100%);
}
:where(.noem-btn-primary, .noem-btn-outline, .noem-btn, .noem-stage-cta, .noem-sban-cta, .noem-ck-btn, #place_order, .noem-more-btn, .noem-faq-help-btn,
       .noem-ct-send button, .noem-acc .btn, .checkout-button, .single_add_to_cart_button):hover::after,
:where(.noem-sban:hover .noem-sban-cta, .noem-mm-promo:hover b, .noem-fidb:hover .noem-fidb-cta)::after {
    animation: noem-sheen .85s var(--noem-ease);
}
@keyframes noem-sheen { 0% { left: -80%; opacity: 1; } 100% { left: 135%; opacity: 0; } }

/* freccia che scorre */
:where(.noem-btn-primary, .noem-btn-outline, .noem-btn, .noem-sban-cta, .noem-more-btn, .noem-faq-help-btn, .noem-fidb-cta, .noem-acc .btn) svg { transition: transform .25s var(--noem-ease); }
:where(.noem-btn-primary, .noem-btn-outline, .noem-btn, .noem-more-btn, .noem-faq-help-btn, .noem-acc .btn):hover svg,
:where(.noem-sban:hover .noem-sban-cta, .noem-fidb:hover .noem-fidb-cta) svg { transform: translateX(4px); }

/* pulsanti principali: richiamo discreto ogni 6 secondi */
:where(.noem-cta-attn, .noem-stage-cta) { animation: noem-attn-ring 6s ease-out 2s infinite; outline: 2px solid transparent; }
:where(.noem-cta-attn, .noem-stage-cta)::after { animation: noem-sheen-loop 6s var(--noem-ease) 2s infinite; }
@keyframes noem-sheen-loop { 0% { left: -80%; opacity: 1; } 15% { left: 135%; opacity: 0; } 100% { left: 135%; opacity: 0; } }
@keyframes noem-attn-ring {
    0%, 4% { outline-color: rgba(215, 174, 120, .85); outline-offset: 0; }
    22% { outline-color: rgba(215, 174, 120, 0); outline-offset: 10px; }
    100% { outline-color: rgba(215, 174, 120, 0); outline-offset: 10px; }
}
:where(.noem-fidb:hover .noem-cta-attn, .noem-cta-attn:hover, .noem-stage-cta:hover) { animation-play-state: paused; }

/* pulsante "+" delle schede prodotto: piccolo rimbalzo */
.noem-add:active { transform: scale(.92); }
.noem-add svg { transition: transform .3s var(--noem-ease); }
.noem-add:hover svg { transform: rotate(90deg); }

@media (prefers-reduced-motion: reduce) {
    :where(.noem-btn-primary, .noem-btn-outline, .noem-btn, .noem-stage-cta, .noem-sban-cta, .noem-ck-btn, #place_order, .noem-more-btn, .noem-faq-help-btn,
           .noem-ct-send button, .noem-mm-promo b, .noem-fidb-cta, .noem-acc .btn, .checkout-button, .single_add_to_cart_button, .noem-cta-attn, .noem-add),
    :where(.noem-btn-primary, .noem-btn-outline, .noem-btn, .noem-stage-cta, .noem-sban-cta, .noem-ck-btn, #place_order, .noem-more-btn, .noem-faq-help-btn,
           .noem-ct-send button, .noem-mm-promo b, .noem-fidb-cta, .noem-acc .btn, .checkout-button, .single_add_to_cart_button, .noem-cta-attn)::after,
    .noem-add svg { animation: none !important; transition: none !important; }
}
