/* =============================================================================
   NexArt Animation System — v1.0
   Scope : toutes les pages publiques NexArt (front-end uniquement)
   Charg&eacute; apr&egrave;s nexart.css — n'&eacute;crase rien de critique
   Ne touche pas : Elementor, WooCommerce core, OceanWP
   ============================================================================= */

/* ── TOKENS D'ANIMATION ─────────────────────────────────────────────────────── */
:root {
    --nx-dur:        650ms;
    --nx-dur-fast:   320ms;
    --nx-dur-slow:   900ms;
    --nx-ease:       cubic-bezier(0.22, 1, 0.36, 1);
    --nx-ease-soft:  cubic-bezier(0.4, 0, 0.2, 1);
    --nx-stagger:    75ms;
}

/* =============================================================================
   1. SCROLL REVEAL — classes utilis&eacute;es par JS IntersectionObserver
   ============================================================================= */

.nx-reveal,
.nx-reveal-up,
.nx-reveal-left,
.nx-reveal-right,
.nx-reveal-scale,
.nx-reveal-blur {
    opacity: 0;
    transition:
        opacity  var(--nx-dur) var(--nx-ease),
        transform var(--nx-dur) var(--nx-ease),
        filter   var(--nx-dur) var(--nx-ease);
    will-change: opacity, transform;
}

.nx-reveal        { transform: translateY(0); }
.nx-reveal-up     { transform: translateY(28px); }
.nx-reveal-left   { transform: translateX(-28px); }
.nx-reveal-right  { transform: translateX(28px); }
.nx-reveal-scale  { transform: scale(0.94); }
.nx-reveal-blur   { transform: translateY(14px); filter: blur(5px); }

/* &Eacute;tat visible */
.nx-reveal.is-visible,
.nx-reveal-up.is-visible,
.nx-reveal-left.is-visible,
.nx-reveal-right.is-visible,
.nx-reveal-scale.is-visible,
.nx-reveal-blur.is-visible {
    opacity: 1;
    transform: none;
    filter: none;
}

/* Stagger — grille d'enfants */
.nx-stagger > * {
    opacity: 0;
    transform: translateY(22px);
    transition:
        opacity  var(--nx-dur) var(--nx-ease),
        transform var(--nx-dur) var(--nx-ease);
    will-change: opacity, transform;
}

.nx-stagger.is-visible > *:nth-child(1)  { transition-delay: calc(var(--nx-stagger) * 0); }
.nx-stagger.is-visible > *:nth-child(2)  { transition-delay: calc(var(--nx-stagger) * 1); }
.nx-stagger.is-visible > *:nth-child(3)  { transition-delay: calc(var(--nx-stagger) * 2); }
.nx-stagger.is-visible > *:nth-child(4)  { transition-delay: calc(var(--nx-stagger) * 3); }
.nx-stagger.is-visible > *:nth-child(5)  { transition-delay: calc(var(--nx-stagger) * 4); }
.nx-stagger.is-visible > *:nth-child(6)  { transition-delay: calc(var(--nx-stagger) * 5); }
.nx-stagger.is-visible > *:nth-child(7)  { transition-delay: calc(var(--nx-stagger) * 6); }
.nx-stagger.is-visible > *:nth-child(8)  { transition-delay: calc(var(--nx-stagger) * 7); }
.nx-stagger.is-visible > *:nth-child(9)  { transition-delay: calc(var(--nx-stagger) * 8); }
.nx-stagger.is-visible > *:nth-child(10) { transition-delay: calc(var(--nx-stagger) * 9); }

.nx-stagger.is-visible > * {
    opacity: 1;
    transform: none;
}

/* =============================================================================
   2. HERO HOMEPAGE — animations au chargement de page
   ============================================================================= */

/* Texte hero — stagger fade-up */
.nexart-hero-text .nexart-hero-eyebrow,
.nexart-hero-text .nexart-hero-title,
.nexart-hero-text .nexart-hero-desc,
.nexart-hero-text .nexart-hero-cta,
.nexart-hero-text .nexart-hero-badges {
    opacity: 0;
    transform: translateY(26px);
    animation: nx-fadein-up var(--nx-dur) var(--nx-ease) forwards;
}

.nexart-hero-text .nexart-hero-eyebrow { animation-delay: 80ms;  }
.nexart-hero-text .nexart-hero-title   { animation-delay: 200ms; }
.nexart-hero-text .nexart-hero-desc    { animation-delay: 340ms; }
.nexart-hero-text .nexart-hero-cta     { animation-delay: 460ms; }
.nexart-hero-text .nexart-hero-badges  { animation-delay: 560ms; }

@keyframes nx-fadein-up {
    to { opacity: 1; transform: none; }
}

/* Image hero — tr&egrave;s lent scale-in */
.nexart-hero-bg {
    will-change: transform;
}

.nexart-hero-bg img {
    animation: nx-hero-breathe 16s ease-in-out infinite alternate;
    will-change: transform;
}

@keyframes nx-hero-breathe {
    from { transform: scale(1.00); }
    to   { transform: scale(1.04); }
}

/* =============================================================================
   3. HERO AUTRES PAGES — fade-up page-load
   ============================================================================= */

/* Collections page */
.nexart-cp-hero-eyebrow {
    opacity: 0;
    transform: translateY(20px);
    animation: nx-fadein-up var(--nx-dur) var(--nx-ease) 60ms forwards;
}
.nexart-cp-hero-title {
    opacity: 0;
    transform: translateY(22px);
    animation: nx-fadein-up var(--nx-dur) var(--nx-ease) 180ms forwards;
}
.nexart-cp-hero-desc {
    opacity: 0;
    transform: translateY(20px);
    animation: nx-fadein-up var(--nx-dur) var(--nx-ease) 300ms forwards;
}

/* Reviews page */
.nxr-hero-title {
    opacity: 0;
    transform: translateY(22px);
    animation: nx-fadein-up var(--nx-dur) var(--nx-ease) 120ms forwards;
}
.nxr-hero-desc {
    opacity: 0;
    transform: translateY(18px);
    animation: nx-fadein-up var(--nx-dur) var(--nx-ease) 260ms forwards;
}

/* Mounting page — &eacute;l&eacute;ments h&eacute;ro */
.nxm-hero-eyebrow {
    opacity: 0;
    transform: translateY(18px);
    animation: nx-fadein-up var(--nx-dur) var(--nx-ease) 60ms forwards;
}
.nxm-hero-title {
    opacity: 0;
    transform: translateY(22px);
    animation: nx-fadein-up var(--nx-dur) var(--nx-ease) 180ms forwards;
}

/* FAQ page */
.nxfaq-hero-eyebrow {
    opacity: 0;
    transform: translateY(18px);
    animation: nx-fadein-up var(--nx-dur) var(--nx-ease) 60ms forwards;
}
.nxfaq-hero-title {
    opacity: 0;
    transform: translateY(22px);
    animation: nx-fadein-up var(--nx-dur) var(--nx-ease) 180ms forwards;
}

/* About page */
.nxabout-hero-title {
    opacity: 0;
    transform: translateY(22px);
    animation: nx-fadein-up var(--nx-dur) var(--nx-ease) 120ms forwards;
}

/* =============================================================================
   4. PRODUCT CARDS — hover &eacute;tendu (suppl&eacute;ment nexart-shop.css)
   ============================================================================= */

/* S'assure que la transition inclut box-shadow */
.nexart-product-card {
    transition:
        transform     0.32s var(--nx-ease),
        border-color  0.32s var(--nx-ease),
        box-shadow    0.32s var(--nx-ease);
}

/* Glow gold subtil au hover */
.nexart-product-card:hover {
    box-shadow:
        0 12px 40px rgba(0,0,0,0.55),
        0 0 0 1px var(--nx-border-gold),
        0 4px 20px var(--nx-gold-glow);
}

/* WooCommerce cards natives, scoped to NexArt-owned WooCommerce surfaces. */
body.nexart-shop-active .woocommerce ul.products li.product,
body.nexart-product-active .related ul.products li.product,
body.nexart-product-active .upsells ul.products li.product,
body.nexart-cart-active .cross-sells ul.products li.product {
    transition:
        transform  0.32s var(--nx-ease),
        box-shadow 0.32s var(--nx-ease);
}

body.nexart-shop-active .woocommerce ul.products li.product:hover,
body.nexart-product-active .related ul.products li.product:hover,
body.nexart-product-active .upsells ul.products li.product:hover,
body.nexart-cart-active .cross-sells ul.products li.product:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 28px rgba(0,0,0,0.4), 0 2px 8px var(--nx-gold-glow);
}

/* Force les prix WooCommerce natifs en gold seulement dans les zones NexArt. */
body.nexart-shop-active .woocommerce ul.products li.product .price,
body.nexart-shop-active .woocommerce ul.products li.product .price .woocommerce-Price-amount,
body.nexart-shop-active .woocommerce ul.products li.product .price .woocommerce-Price-amount bdi,
body.nexart-shop-active .woocommerce ul.products li.product .price .amount,
body.nexart-shop-active .woocommerce ul.products li.product .price bdi,
body.nexart-cart-active .cross-sells ul.products li.product .price,
body.nexart-cart-active .cross-sells ul.products li.product .price .woocommerce-Price-amount,
body.nexart-cart-active .cross-sells ul.products li.product .price .woocommerce-Price-amount bdi,
body.nexart-cart-active .cross-sells ul.products li.product .price .amount,
body.nexart-cart-active .cross-sells ul.products li.product .price bdi,
body.nexart-product-active .related ul.products li.product .price,
body.nexart-product-active .related ul.products li.product .price .woocommerce-Price-amount,
body.nexart-product-active .related ul.products li.product .price .woocommerce-Price-amount bdi,
body.nexart-product-active .related ul.products li.product .price .amount,
body.nexart-product-active .related ul.products li.product .price bdi,
body.nexart-product-active .upsells ul.products li.product .price,
body.nexart-product-active .upsells ul.products li.product .price .woocommerce-Price-amount,
body.nexart-product-active .upsells ul.products li.product .price .woocommerce-Price-amount bdi,
body.nexart-product-active .upsells ul.products li.product .price .amount,
body.nexart-product-active .upsells ul.products li.product .price bdi {
    color: var(--nx-gold, #d9a441) !important;
}

body.nexart-shop-active .woocommerce ul.products li.product .price ins,
body.nexart-cart-active .cross-sells ul.products li.product .price ins,
body.nexart-product-active .related ul.products li.product .price ins,
body.nexart-product-active .upsells ul.products li.product .price ins {
    text-decoration: none;
}

body.nexart-shop-active .woocommerce ul.products li.product .price del,
body.nexart-shop-active .woocommerce ul.products li.product .price del .woocommerce-Price-amount,
body.nexart-shop-active .woocommerce ul.products li.product .price del bdi,
body.nexart-cart-active .cross-sells ul.products li.product .price del,
body.nexart-cart-active .cross-sells ul.products li.product .price del .woocommerce-Price-amount,
body.nexart-cart-active .cross-sells ul.products li.product .price del bdi,
body.nexart-product-active .related ul.products li.product .price del,
body.nexart-product-active .related ul.products li.product .price del .woocommerce-Price-amount,
body.nexart-product-active .related ul.products li.product .price del bdi,
body.nexart-product-active .upsells ul.products li.product .price del,
body.nexart-product-active .upsells ul.products li.product .price del .woocommerce-Price-amount,
body.nexart-product-active .upsells ul.products li.product .price del bdi {
    color: rgba(245,245,245,0.38) !important;
}

/* =============================================================================
   5. GLOSSY SWEEP — effet aluminium premium
   ============================================================================= */

.nexart-product-card .nexart-product-image {
    position: relative;
    overflow: hidden;
}

.nexart-product-card .nexart-product-image::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(
        108deg,
        transparent 35%,
        rgba(255,255,255,0.08) 50%,
        transparent 65%
    );
    transform: translateX(-120%);
    transition: transform 0.7s ease;
    pointer-events: none;
    z-index: 2;
}

.nexart-product-card:hover .nexart-product-image::after {
    transform: translateX(220%);
}

/* Glossy class manuelle */
.nx-glossy {
    position: relative;
    overflow: hidden;
}

.nx-glossy::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(
        108deg,
        transparent 35%,
        rgba(255,255,255,0.07) 50%,
        transparent 65%
    );
    transform: translateX(-120%);
    transition: transform 0.7s ease;
    pointer-events: none;
    z-index: 2;
}

.nx-glossy:hover::before {
    transform: translateX(220%);
}

/* =============================================================================
   6. BUTTONS — micro-interactions premium
   ============================================================================= */

/* Transition am&eacute;lior&eacute;e */
.nexart-btn,
.nexart-btn--gold,
.nexart-btn--ghost {
    position: relative;
    overflow: hidden;
    transition:
        transform    var(--nx-dur-fast) var(--nx-ease),
        box-shadow   var(--nx-dur-fast) var(--nx-ease),
        background   var(--nx-dur-fast) var(--nx-ease-soft),
        border-color var(--nx-dur-fast) var(--nx-ease-soft),
        color        var(--nx-dur-fast) var(--nx-ease-soft);
}

/* Press scale */
.nexart-btn:active,
.nexart-btn--gold:active,
.nexart-btn--ghost:active {
    transform: scale(0.97);
}

/* Shimmer sur bouton gold principal */
.nexart-btn--gold::after {
    content: '';
    position: absolute;
    top: 0;
    left: -120%;
    width: 55%;
    height: 100%;
    background: linear-gradient(
        90deg,
        transparent      0%,
        rgba(255,255,255,0.14) 50%,
        transparent      100%
    );
    transform: skewX(-18deg);
    transition: left 0.65s ease;
    pointer-events: none;
}

.nexart-btn--gold:hover::after {
    left: 180%;
}

/* WooCommerce buttons: avoid styling unrelated plugin/OceanWP screens. */
body.nexart-shop-active .woocommerce a.button,
body.nexart-product-active .woocommerce a.button,
body.nexart-product-active .woocommerce button.button,
body.nexart-product-active .woocommerce input.button,
body.nexart-product-active .woocommerce #respond input#submit,
body.nexart-product-active .single_add_to_cart_button,
body.nexart-cart-active .woocommerce a.button,
body.nexart-cart-active .woocommerce button.button,
body.nexart-cart-active .woocommerce input.button,
body.nexart-checkout-active .woocommerce button.button,
body.nexart-checkout-active .woocommerce input.button,
body.nexart-account-active .woocommerce a.button,
body.nexart-account-active .woocommerce button.button,
body.nexart-account-active .woocommerce input.button {
    transition:
        transform    var(--nx-dur-fast) var(--nx-ease),
        box-shadow   var(--nx-dur-fast) ease,
        background   var(--nx-dur-fast) ease !important;
}

body.nexart-shop-active .woocommerce a.button:active,
body.nexart-product-active .woocommerce a.button:active,
body.nexart-product-active .woocommerce button.button:active,
body.nexart-product-active .woocommerce input.button:active,
body.nexart-product-active .single_add_to_cart_button:active,
body.nexart-cart-active .woocommerce a.button:active,
body.nexart-cart-active .woocommerce button.button:active,
body.nexart-cart-active .woocommerce input.button:active,
body.nexart-checkout-active .woocommerce button.button:active,
body.nexart-checkout-active .woocommerce input.button:active,
body.nexart-account-active .woocommerce a.button:active,
body.nexart-account-active .woocommerce button.button:active,
body.nexart-account-active .woocommerce input.button:active {
    transform: scale(0.97) !important;
}

/* Focus visible accessible */
.nexart-btn:focus-visible,
.nexart-btn--gold:focus-visible,
.nexart-btn--ghost:focus-visible,
body.nexart-shop-active .woocommerce a.button:focus-visible,
body.nexart-product-active .woocommerce a.button:focus-visible,
body.nexart-product-active .woocommerce button.button:focus-visible,
body.nexart-product-active .single_add_to_cart_button:focus-visible,
body.nexart-cart-active .woocommerce a.button:focus-visible,
body.nexart-cart-active .woocommerce button.button:focus-visible,
body.nexart-checkout-active .woocommerce button.button:focus-visible,
body.nexart-account-active .woocommerce a.button:focus-visible,
body.nexart-account-active .woocommerce button.button:focus-visible {
    outline: 2px solid var(--nx-gold);
    outline-offset: 3px;
}

/* Accessibility baseline: keyboard focus, hidden labels and tap targets */
.screen-reader-text,
.sr-only {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

.screen-reader-text:focus {
    position: fixed !important;
    top: 12px !important;
    left: 12px !important;
    z-index: 100000 !important;
    width: auto !important;
    height: auto !important;
    padding: 10px 14px !important;
    clip: auto !important;
    background: #0f0f0f !important;
    color: #f7d67a !important;
    border: 2px solid #d9a441 !important;
    border-radius: 4px !important;
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[tabindex]:focus-visible,
.nexart-header-icon:focus-visible,
.nexart-nav-link:focus-visible,
.nexart-menu-toggle:focus-visible,
.nexart-mob-close:focus-visible,
.nexart-mob-accord-btn:focus-visible,
.nexart-search-overlay__close:focus-visible,
.nx-pdp-tab-btn:focus-visible,
.nx-pdp-thumb:focus-visible,
.nx-pdp-gallery-arrow:focus-visible,
.nxca-filter-check:focus-visible,
.nexart-sp-filter-item a:focus-visible,
.nexart-coupon-toggle:focus-visible {
    outline: 2px solid var(--nx-gold, #d9a441) !important;
    outline-offset: 3px !important;
}

.nexart-header-icon,
.nexart-menu-toggle,
.nexart-mob-close,
.nexart-search-overlay__close,
.nx-pdp-gallery-arrow,
.nx-pdp-wishlist-btn,
.nxca-sidebar-close,
.nxca-filter-toggle,
.nxca-product-heart,
.nexart-product-heart,
.nexart-cp-loved-nav,
.nexart-cp-mini-heart,
.nexart-qty-btn,
.nx-qty-btn {
    min-width: 44px;
    min-height: 44px;
}

input::placeholder,
textarea::placeholder {
    color: rgba(245,245,245,0.62) !important;
    opacity: 1;
}

body.nexart-checkout-active .woocommerce-error,
body.nexart-cart-active .woocommerce-error,
body.nexart-account-active .woocommerce-error {
    color: #fff !important;
}

/* =============================================================================
   7. HEADER — nav underline anim&eacute; + cart pulse
   ============================================================================= */

/* Underline gold anim&eacute; sur les liens nav */
.nexart-nav-link {
    position: relative;
}

.nexart-nav-link::after {
    content: '';
    position: absolute;
    bottom: -3px;
    left: 0;
    width: 0;
    height: 1px;
    background: var(--nx-gold);
    transition: width 0.3s var(--nx-ease);
}

.nexart-nav-link:hover::after,
.nexart-nav-link--active::after {
    width: 100%;
}

/* Icons header — micro hover */
.nexart-header-icon {
    transition:
        color     var(--nx-dur-fast) ease,
        transform var(--nx-dur-fast) ease;
}

.nexart-header-icon:hover {
    transform: translateY(-1px);
    color: var(--nx-gold-light);
}

/* Cart icon pulse apr&egrave;s add-to-cart */
@keyframes nx-cart-pulse {
    0%   { transform: scale(1); }
    25%  { transform: scale(1.38); }
    50%  { transform: scale(0.9); }
    75%  { transform: scale(1.14); }
    100% { transform: scale(1); }
}

.nexart-cart-link.nx-cart-pulse svg {
    animation: nx-cart-pulse 0.58s var(--nx-ease);
}

/* =============================================================================
   8. FAQ — transitions plus fluides (compl&egrave;te le JS existant)
   ============================================================================= */

.nxfaq-item {
    transition: background var(--nx-dur-fast) ease;
}

.nxfaq-item.is-open {
    background: rgba(217,164,65,0.025);
}

.nxfaq-cat-card {
    transition:
        transform    0.28s var(--nx-ease),
        border-color 0.28s ease,
        background   0.28s ease;
}

.nxfaq-cat-card:hover {
    transform: translateY(-4px);
}

/* =============================================================================
   9. REVIEWS — stars light-up
   ============================================================================= */

.nxr-star {
    transition:
        filter    var(--nx-dur-fast) ease,
        transform var(--nx-dur-fast) ease;
    will-change: transform;
}

/* Stars review cards — stagger light-up au reveal */
.nxr-review-card.is-visible .nxr-star--filled:nth-child(1) { animation: nx-star-in 0.35s var(--nx-ease) 0ms   both; }
.nxr-review-card.is-visible .nxr-star--filled:nth-child(2) { animation: nx-star-in 0.35s var(--nx-ease) 55ms  both; }
.nxr-review-card.is-visible .nxr-star--filled:nth-child(3) { animation: nx-star-in 0.35s var(--nx-ease) 110ms both; }
.nxr-review-card.is-visible .nxr-star--filled:nth-child(4) { animation: nx-star-in 0.35s var(--nx-ease) 165ms both; }
.nxr-review-card.is-visible .nxr-star--filled:nth-child(5) { animation: nx-star-in 0.35s var(--nx-ease) 220ms both; }

@keyframes nx-star-in {
    from { transform: scale(0.65); opacity: 0.4; }
    to   { transform: scale(1);   opacity: 1; }
}

/* Summary stats — bar animation */
.nxr-bar-fill {
    transition: width 1.2s var(--nx-ease);
}

/* =============================================================================
   10. MOUNTING PAGE — &eacute;l&eacute;ments sp&eacute;cifiques
   ============================================================================= */

.nxm-step-card {
    transition:
        transform    0.3s var(--nx-ease),
        border-color 0.3s ease,
        box-shadow   0.3s ease;
}

.nxm-step-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 28px rgba(0,0,0,0.4), 0 0 0 1px var(--nx-border-gold);
}

/* Float class manuelle pour images/&eacute;l&eacute;ments pr&eacute;mium */
.nx-float {
    animation: nx-float 4.5s ease-in-out infinite;
    will-change: transform;
}

@keyframes nx-float {
    0%, 100% { transform: translateY(0px); }
    50%       { transform: translateY(-7px); }
}

/* =============================================================================
   11. CART / CHECKOUT — micro-animations
   ============================================================================= */

/* Notices WooCommerce — fade-in */
body.nexart-shop-active .woocommerce-message,
body.nexart-shop-active .woocommerce-error,
body.nexart-shop-active .woocommerce-info,
body.nexart-product-active .woocommerce-message,
body.nexart-product-active .woocommerce-error,
body.nexart-product-active .woocommerce-info,
body.nexart-cart-active .woocommerce-message,
body.nexart-cart-active .woocommerce-error,
body.nexart-cart-active .woocommerce-info,
body.nexart-checkout-active .woocommerce-message,
body.nexart-checkout-active .woocommerce-error,
body.nexart-checkout-active .woocommerce-info,
body.nexart-account-active .woocommerce-message,
body.nexart-account-active .woocommerce-error,
body.nexart-account-active .woocommerce-info {
    animation: nx-notice-slide 0.3s var(--nx-ease) both;
}

@keyframes nx-notice-slide {
    from { opacity: 0; transform: translateY(-6px); }
    to   { opacity: 1; transform: none; }
}

/* Input focus premium */
.nexart-checkout-active input[type="text"]:focus,
.nexart-checkout-active input[type="email"]:focus,
.nexart-checkout-active input[type="tel"]:focus,
.nexart-checkout-active select:focus,
.nexart-checkout-active textarea:focus {
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
    box-shadow: 0 0 0 2px rgba(217,164,65,0.2);
}

/* =============================================================================
   12. COLLECTIONS PAGE — cards hover
   ============================================================================= */

.nexart-cp-card {
    transition:
        transform    0.3s var(--nx-ease),
        border-color 0.3s ease,
        box-shadow   0.3s ease;
}

.nexart-cp-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 36px rgba(0,0,0,0.5), 0 0 0 1px var(--nx-border-gold), 0 4px 16px var(--nx-gold-glow);
}

/* =============================================================================
   13. COUNT-UP SUPPORT
   ============================================================================= */

[data-count-target] {
    display: inline-block;
}

/* =============================================================================
   14. PREFERS-REDUCED-MOTION — d&eacute;sactivation compl&egrave;te
   ============================================================================= */

@media (prefers-reduced-motion: reduce) {

    /* Reveal — contenu imm&eacute;diatement visible */
    .nx-reveal,
    .nx-reveal-up,
    .nx-reveal-left,
    .nx-reveal-right,
    .nx-reveal-scale,
    .nx-reveal-blur,
    .nx-stagger > * {
        opacity:    1 !important;
        transform:  none !important;
        filter:     none !important;
        transition: none !important;
        animation:  none !important;
    }

    /* Hero texte */
    .nexart-hero-text .nexart-hero-eyebrow,
    .nexart-hero-text .nexart-hero-title,
    .nexart-hero-text .nexart-hero-desc,
    .nexart-hero-text .nexart-hero-cta,
    .nexart-hero-text .nexart-hero-badges,
    .nexart-cp-hero-eyebrow,
    .nexart-cp-hero-title,
    .nexart-cp-hero-desc,
    .nxr-hero-title,
    .nxr-hero-desc,
    .nxm-hero-eyebrow,
    .nxm-hero-title,
    .nxfaq-hero-eyebrow,
    .nxfaq-hero-title,
    .nxabout-hero-title {
        opacity:   1 !important;
        transform: none !important;
        animation: none !important;
    }

    /* Hero BG */
    .nexart-hero-bg img { animation: none !important; }

    /* Shimmer / glossy */
    .nexart-btn--gold::after                              { display: none; }
    .nexart-product-card .nexart-product-image::after     { display: none; }
    .nx-glossy::before                                    { display: none; }

    /* Float */
    .nx-float { animation: none !important; }

    /* Stars */
    .nxr-review-card.is-visible .nxr-star--filled:nth-child(1),
    .nxr-review-card.is-visible .nxr-star--filled:nth-child(2),
    .nxr-review-card.is-visible .nxr-star--filled:nth-child(3),
    .nxr-review-card.is-visible .nxr-star--filled:nth-child(4),
    .nxr-review-card.is-visible .nxr-star--filled:nth-child(5) { animation: none !important; }

    /* Notices */
    .woocommerce-message,
    .woocommerce-error,
    .woocommerce-info { animation: none !important; }

    /* Cart pulse */
    .nexart-cart-link.nx-cart-pulse svg { animation: none !important; }

    /* Transitions g&eacute;n&eacute;rales */
    .nexart-btn,
    .nexart-btn--gold,
    .nexart-btn--ghost,
    .nexart-nav-link::after,
    .nexart-header-icon,
    .nexart-product-card,
    .nexart-cp-card,
    .nxm-step-card,
    .nxfaq-cat-card,
    .nxfaq-item,
    .nxr-star {
        transition: none !important;
    }
}

/* =============================================================================
   15. MOBILE — r&eacute;duction des distances + d&eacute;sactivation effets lourds
   ============================================================================= */

@media (max-width: 768px) {

    /* Distances r&eacute;duites */
    .nx-reveal-up     { transform: translateY(18px); }
    .nx-reveal-left   { transform: translateX(-18px); }
    .nx-reveal-right  { transform: translateX(18px); }
    .nx-reveal-scale  { transform: scale(0.96); }
    .nx-reveal-blur   { transform: translateY(10px); filter: blur(3px); }
    .nx-stagger > *   { transform: translateY(14px); }

    .nexart-hero-text .nexart-hero-eyebrow,
    .nexart-hero-text .nexart-hero-title,
    .nexart-hero-text .nexart-hero-desc,
    .nexart-hero-text .nexart-hero-cta,
    .nexart-hero-text .nexart-hero-badges { transform: translateY(18px); }

    /* Pas de breathing animation sur mobile (performance) */
    .nexart-hero-bg img { animation: none; transform: scale(1.02); }

    /* Pas de float sur mobile */
    .nx-float { animation: none; }

    /* Pas de glossy sweep (performance) */
    .nexart-product-card .nexart-product-image::after,
    .nx-glossy::before { display: none; }
}
