:root {
    --np-transition-fast: 160ms ease;
    --np-transition-base: 240ms ease;
    --np-transition-slow: 420ms ease;
    --np-motion-distance-xs: 6px;
    --np-motion-distance-sm: 12px;
    --np-motion-distance-md: 24px;
    --np-motion-distance-lg: 40px;
    --np-motion-scale-sm: .96;
    --np-motion-scale-md: .9;
}

html {
    scroll-behavior: smooth;
}

body.np-reduced-motion,
body.np-reduced-motion *,
body.np-reduced-motion *::before,
body.np-reduced-motion *::after {
    animation-duration: 1ms !important;
    animation-delay: 0ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: 1ms !important;
    transition-delay: 0ms !important;
}

[data-np-reveal] {
    opacity: 0;
    will-change: opacity, transform;
    transition-property: opacity, transform;
    transition-duration: var(--np-reveal-duration, 680ms);
    transition-timing-function: var(--np-reveal-ease, cubic-bezier(.22, 1, .36, 1));
    transition-delay: var(--np-reveal-delay, 0ms);
}

[data-np-reveal].is-visible,
[data-np-reveal].np-visible,
[data-np-reveal][data-np-visible="true"] {
    opacity: 1;
    transform: none;
}

[data-np-reveal="fade"] {
    transform: none;
}

[data-np-reveal="fade-up"] {
    transform: translate3d(0, var(--np-motion-distance-md), 0);
}

[data-np-reveal="fade-down"] {
    transform: translate3d(0, calc(var(--np-motion-distance-md) * -1), 0);
}

[data-np-reveal="fade-start"] {
    transform: translate3d(var(--np-motion-distance-md), 0, 0);
}

[data-np-reveal="fade-end"] {
    transform: translate3d(calc(var(--np-motion-distance-md) * -1), 0, 0);
}

[data-np-reveal="zoom"] {
    transform: scale(var(--np-motion-scale-sm));
}

[data-np-reveal="zoom-in"] {
    transform: scale(var(--np-motion-scale-md));
}

[data-np-reveal="zoom-out"] {
    transform: scale(1.04);
}

[data-np-reveal="blur"] {
    filter: blur(12px);
}

[data-np-reveal="blur"].is-visible,
[data-np-reveal="blur"].np-visible,
[data-np-reveal="blur"][data-np-visible="true"] {
    filter: blur(0);
}

[data-np-reveal="clip"] {
    clip-path: inset(0 0 100% 0 round var(--np-radius-base, 16px));
}

[data-np-reveal="clip"].is-visible,
[data-np-reveal="clip"].np-visible,
[data-np-reveal="clip"][data-np-visible="true"] {
    clip-path: inset(0 0 0 0 round var(--np-radius-base, 16px));
}

[data-np-stagger] > * {
    opacity: 0;
    transform: translate3d(0, var(--np-motion-distance-sm), 0);
    transition-property: opacity, transform;
    transition-duration: var(--np-stagger-duration, 560ms);
    transition-timing-function: cubic-bezier(.22, 1, .36, 1);
    transition-delay: calc(var(--np-stagger-index, 0) * var(--np-stagger-gap, 80ms));
}

[data-np-stagger].is-visible > *,
[data-np-stagger].np-visible > *,
[data-np-stagger][data-np-visible="true"] > * {
    opacity: 1;
    transform: none;
}

[data-np-parallax] {
    will-change: transform;
    transform: translate3d(0, var(--np-parallax-y, 0), 0);
}

[data-np-magnetic] {
    will-change: transform;
    transition: transform var(--np-transition-base);
}

[data-np-magnetic].is-active {
    transform: translate3d(var(--np-magnetic-x, 0), var(--np-magnetic-y, 0), 0);
}

.np-animate {
    animation-duration: var(--np-animation-duration, 680ms);
    animation-timing-function: var(--np-animation-ease, cubic-bezier(.22, 1, .36, 1));
    animation-delay: var(--np-animation-delay, 0ms);
    animation-fill-mode: both;
}

.np-animate-once {
    animation-iteration-count: 1;
}

.np-animate-infinite {
    animation-iteration-count: infinite;
}

.np-delay-0 {
    animation-delay: 0ms !important;
    transition-delay: 0ms !important;
}

.np-delay-100 {
    animation-delay: 100ms !important;
    transition-delay: 100ms !important;
}

.np-delay-200 {
    animation-delay: 200ms !important;
    transition-delay: 200ms !important;
}

.np-delay-300 {
    animation-delay: 300ms !important;
    transition-delay: 300ms !important;
}

.np-delay-400 {
    animation-delay: 400ms !important;
    transition-delay: 400ms !important;
}

.np-delay-500 {
    animation-delay: 500ms !important;
    transition-delay: 500ms !important;
}

.np-duration-fast {
    animation-duration: 320ms !important;
    transition-duration: 320ms !important;
}

.np-duration-base {
    animation-duration: 560ms !important;
    transition-duration: 560ms !important;
}

.np-duration-slow {
    animation-duration: 880ms !important;
    transition-duration: 880ms !important;
}

.np-fade-in {
    animation-name: npFadeIn;
}

.np-fade-out {
    animation-name: npFadeOut;
}

.np-fade-up {
    animation-name: npFadeUp;
}

.np-fade-down {
    animation-name: npFadeDown;
}

.np-fade-start {
    animation-name: npFadeStart;
}

.np-fade-end {
    animation-name: npFadeEnd;
}

.np-zoom-in {
    animation-name: npZoomIn;
}

.np-zoom-out {
    animation-name: npZoomOut;
}

.np-scale-in {
    animation-name: npScaleIn;
}

.np-slide-up {
    animation-name: npSlideUp;
}

.np-slide-down {
    animation-name: npSlideDown;
}

.np-slide-start {
    animation-name: npSlideStart;
}

.np-slide-end {
    animation-name: npSlideEnd;
}

.np-blur-in {
    animation-name: npBlurIn;
}

.np-float {
    animation-name: npFloat;
    animation-duration: 4200ms;
    animation-timing-function: ease-in-out;
    animation-iteration-count: infinite;
}

.np-pulse {
    animation-name: npPulse;
    animation-duration: 1800ms;
    animation-timing-function: ease-in-out;
    animation-iteration-count: infinite;
}

.np-shimmer {
    position: relative;
    overflow: hidden;
}

.np-shimmer::after {
    position: absolute;
    inset: 0;
    content: "";
    pointer-events: none;
    background: linear-gradient(110deg, transparent 0%, rgba(255, 255, 255, .38) 45%, transparent 78%);
    transform: translateX(-120%);
    animation: npShimmer 2400ms ease-in-out infinite;
}

.np-glow {
    animation-name: npGlow;
    animation-duration: 2200ms;
    animation-timing-function: ease-in-out;
    animation-iteration-count: infinite;
}

.np-spin {
    animation-name: npSpin;
    animation-duration: 900ms;
    animation-timing-function: linear;
    animation-iteration-count: infinite;
}

.np-skeleton {
    position: relative;
    overflow: hidden;
    color: transparent !important;
    background: color-mix(in srgb, var(--np-color-border, #dde7e7) 76%, transparent);
    border-radius: var(--np-radius-sm, 8px);
}

.np-skeleton::after {
    position: absolute;
    inset: 0;
    content: "";
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .55), transparent);
    transform: translateX(-100%);
    animation: npSkeleton 1600ms ease-in-out infinite;
}

.np-hover-lift {
    transition: transform var(--np-transition-base), box-shadow var(--np-transition-base), border-color var(--np-transition-base);
}

.np-hover-lift:hover {
    transform: translateY(-4px);
    box-shadow: var(--np-shadow-lg, 0 18px 50px rgba(6, 32, 43, .16));
}

.np-hover-grow {
    transition: transform var(--np-transition-base);
}

.np-hover-grow:hover {
    transform: scale(1.025);
}

.np-hover-fade {
    transition: opacity var(--np-transition-base);
}

.np-hover-fade:hover {
    opacity: .72;
}

.np-hover-underline {
    position: relative;
    text-decoration: none;
}

.np-hover-underline::after {
    position: absolute;
    right: 0;
    bottom: -.24em;
    width: 100%;
    height: 1px;
    content: "";
    background: currentColor;
    transform: scaleX(0);
    transform-origin: left center;
    transition: transform var(--np-transition-base);
}

.np-hover-underline:hover::after,
.np-hover-underline:focus-visible::after {
    transform: scaleX(1);
}

[dir="rtl"] .np-hover-underline::after {
    transform-origin: right center;
}

.np-focus-ring {
    outline: 0;
}

.np-focus-ring:focus-visible {
    outline: 2px solid var(--np-color-accent, #7ae2cf);
    outline-offset: 3px;
}

.np-menu-toggle-line,
.np-offcanvas-close,
.np-mobile-navigation-close,
.np-search-toggle,
.np-header-icon-button,
.np-button,
.np-card,
.np-entry,
.np-product {
    transition: color var(--np-transition-base), background-color var(--np-transition-base), border-color var(--np-transition-base), box-shadow var(--np-transition-base), opacity var(--np-transition-base), transform var(--np-transition-base);
}

.np-header {
    transition: background-color var(--np-transition-base), box-shadow var(--np-transition-base), transform var(--np-transition-base), border-color var(--np-transition-base);
}

.np-header.is-hidden {
    transform: translateY(-100%);
}

.np-header.is-stuck,
.np-header.np-header-stuck {
    box-shadow: var(--np-shadow-sm, 0 8px 24px rgba(6, 32, 43, .08));
}

.np-offcanvas,
.np-mobile-navigation,
.np-search-panel,
.np-search-modal {
    opacity: 0;
    pointer-events: none;
    visibility: hidden;
    transition: opacity var(--np-transition-base), visibility var(--np-transition-base);
}

.np-offcanvas.is-open,
.np-mobile-navigation.is-open,
.np-search-panel.is-open,
.np-search-modal.is-open {
    opacity: 1;
    pointer-events: auto;
    visibility: visible;
}

.np-offcanvas-panel,
.np-mobile-navigation-panel {
    transform: translate3d(100%, 0, 0);
    transition: transform var(--np-transition-slow);
}

[dir="ltr"] .np-offcanvas-panel,
[dir="ltr"] .np-mobile-navigation-panel {
    transform: translate3d(-100%, 0, 0);
}

.np-offcanvas.is-open .np-offcanvas-panel,
.np-mobile-navigation.is-open .np-mobile-navigation-panel {
    transform: translate3d(0, 0, 0);
}

.np-search-panel,
.np-search-modal {
    transform: translate3d(0, -12px, 0);
}

.np-search-panel.is-open,
.np-search-modal.is-open {
    transform: translate3d(0, 0, 0);
}

.np-back-to-top {
    opacity: 0;
    pointer-events: none;
    transform: translate3d(0, 16px, 0);
    transition: opacity var(--np-transition-base), transform var(--np-transition-base), background-color var(--np-transition-base), color var(--np-transition-base);
}

.np-back-to-top.is-visible,
.np-back-to-top.np-visible {
    opacity: 1;
    pointer-events: auto;
    transform: translate3d(0, 0, 0);
}

.np-submenu {
    transition: opacity var(--np-transition-base), transform var(--np-transition-base), visibility var(--np-transition-base);
}

.np-menu-item-has-children:not(.is-open) > .np-submenu {
    opacity: 0;
    pointer-events: none;
    visibility: hidden;
    transform: translate3d(0, 8px, 0);
}

.np-menu-item-has-children.is-open > .np-submenu,
.np-menu-item-has-children:hover > .np-submenu,
.np-menu-item-has-children:focus-within > .np-submenu {
    opacity: 1;
    pointer-events: auto;
    visibility: visible;
    transform: translate3d(0, 0, 0);
}

.np-slider-ready {
    animation: npFadeIn 420ms ease both;
}

.np-slider-bullet,
.swiper-pagination-bullet {
    transition: transform var(--np-transition-fast), opacity var(--np-transition-fast), background-color var(--np-transition-fast);
}

.np-slider-bullet.is-active,
.swiper-pagination-bullet-active {
    transform: scale(1.2);
}

.np-accordion-panel,
[data-np-collapse] {
    overflow: hidden;
    transition: height var(--np-transition-base), opacity var(--np-transition-base);
}

.np-accordion-panel:not(.is-open),
[data-np-collapse]:not(.is-open) {
    height: 0;
    opacity: 0;
}

.np-accordion-panel.is-open,
[data-np-collapse].is-open {
    opacity: 1;
}

.np-form-message,
.np-alert,
.woocommerce-message,
.woocommerce-error,
.woocommerce-info {
    animation: npFadeDown 380ms ease both;
}

.np-pagination a,
.np-pagination span,
.page-numbers {
    transition: color var(--np-transition-base), background-color var(--np-transition-base), border-color var(--np-transition-base), transform var(--np-transition-base);
}

.np-pagination a:hover,
.page-numbers:hover {
    transform: translateY(-2px);
}

@keyframes npFadeIn {
    from {
        opacity: 0;
    }

    to {
        opacity: 1;
    }
}

@keyframes npFadeOut {
    from {
        opacity: 1;
    }

    to {
        opacity: 0;
    }
}

@keyframes npFadeUp {
    from {
        opacity: 0;
        transform: translate3d(0, var(--np-motion-distance-md), 0);
    }

    to {
        opacity: 1;
        transform: translate3d(0, 0, 0);
    }
}

@keyframes npFadeDown {
    from {
        opacity: 0;
        transform: translate3d(0, calc(var(--np-motion-distance-md) * -1), 0);
    }

    to {
        opacity: 1;
        transform: translate3d(0, 0, 0);
    }
}

@keyframes npFadeStart {
    from {
        opacity: 0;
        transform: translate3d(var(--np-motion-distance-md), 0, 0);
    }

    to {
        opacity: 1;
        transform: translate3d(0, 0, 0);
    }
}

@keyframes npFadeEnd {
    from {
        opacity: 0;
        transform: translate3d(calc(var(--np-motion-distance-md) * -1), 0, 0);
    }

    to {
        opacity: 1;
        transform: translate3d(0, 0, 0);
    }
}

@keyframes npZoomIn {
    from {
        opacity: 0;
        transform: scale(var(--np-motion-scale-md));
    }

    to {
        opacity: 1;
        transform: scale(1);
    }
}

@keyframes npZoomOut {
    from {
        opacity: 0;
        transform: scale(1.08);
    }

    to {
        opacity: 1;
        transform: scale(1);
    }
}

@keyframes npScaleIn {
    from {
        opacity: 0;
        transform: scale(var(--np-motion-scale-sm));
    }

    to {
        opacity: 1;
        transform: scale(1);
    }
}

@keyframes npSlideUp {
    from {
        transform: translate3d(0, var(--np-motion-distance-lg), 0);
    }

    to {
        transform: translate3d(0, 0, 0);
    }
}

@keyframes npSlideDown {
    from {
        transform: translate3d(0, calc(var(--np-motion-distance-lg) * -1), 0);
    }

    to {
        transform: translate3d(0, 0, 0);
    }
}

@keyframes npSlideStart {
    from {
        transform: translate3d(var(--np-motion-distance-lg), 0, 0);
    }

    to {
        transform: translate3d(0, 0, 0);
    }
}

@keyframes npSlideEnd {
    from {
        transform: translate3d(calc(var(--np-motion-distance-lg) * -1), 0, 0);
    }

    to {
        transform: translate3d(0, 0, 0);
    }
}

@keyframes npBlurIn {
    from {
        opacity: 0;
        filter: blur(14px);
        transform: scale(.985);
    }

    to {
        opacity: 1;
        filter: blur(0);
        transform: scale(1);
    }
}

@keyframes npFloat {
    0%,
    100% {
        transform: translate3d(0, 0, 0);
    }

    50% {
        transform: translate3d(0, -10px, 0);
    }
}

@keyframes npPulse {
    0%,
    100% {
        opacity: 1;
        transform: scale(1);
    }

    50% {
        opacity: .72;
        transform: scale(1.035);
    }
}

@keyframes npGlow {
    0%,
    100% {
        box-shadow: 0 0 0 rgba(122, 226, 207, 0);
    }

    50% {
        box-shadow: 0 0 32px rgba(122, 226, 207, .28);
    }
}

@keyframes npSpin {
    to {
        transform: rotate(360deg);
    }
}

@keyframes npShimmer {
    0% {
        transform: translateX(-120%);
    }

    100% {
        transform: translateX(120%);
    }
}

@keyframes npSkeleton {
    0% {
        transform: translateX(-100%);
    }

    100% {
        transform: translateX(100%);
    }
}

@media (max-width: 768px) {
    [data-np-reveal="fade-start"],
    [data-np-reveal="fade-end"] {
        transform: translate3d(0, var(--np-motion-distance-sm), 0);
    }

    .np-hover-lift:hover,
    .np-hover-grow:hover,
    .np-pagination a:hover,
    .page-numbers:hover {
        transform: none;
    }
}

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }

    *,
    *::before,
    *::after {
        animation-duration: 1ms !important;
        animation-delay: 0ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 1ms !important;
        transition-delay: 0ms !important;
    }

    [data-np-reveal],
    [data-np-stagger] > *,
    [data-np-parallax],
    [data-np-magnetic],
    .np-offcanvas-panel,
    .np-mobile-navigation-panel,
    .np-search-panel,
    .np-search-modal,
    .np-back-to-top {
        transform: none !important;
        filter: none !important;
    }
}