:root {
    --motion-instant: 100ms;
    --motion-quick: 150ms;
    --motion-base: 200ms;
    --motion-emphasis: 300ms;
    --motion-structural: 400ms;
    --motion-reveal: 550ms;
    --motion-hero: 700ms;
    --ease-albo: cubic-bezier(.19, 1, .22, 1);
    --ease-standard: cubic-bezier(.2, 0, 0, 1);
    --ease-exit: cubic-bezier(.4, 0, 1, 1);
    --motion-reveal-distance: 16px;
}

html.albo-motion-ready [data-aos].albo-reveal:not(.is-revealed),
html.albo-motion-ready .wow.albo-reveal:not(.is-revealed) {
    opacity: 0;
    transform: translate3d(0, var(--motion-reveal-distance), 0);
    will-change: opacity, transform;
}

html.albo-motion-ready [data-aos].albo-reveal,
html.albo-motion-ready .wow.albo-reveal {
    transition: opacity var(--motion-reveal) var(--ease-albo),
        transform var(--motion-reveal) var(--ease-albo);
    transition-delay: var(--motion-stagger, 0ms);
}

html.albo-motion-ready [data-aos].albo-reveal.is-revealed,
html.albo-motion-ready .wow.albo-reveal.is-revealed {
    opacity: 1;
    transform: translate3d(0, 0, 0);
}

.product-card,
.product-card-mobile {
    transition: transform var(--motion-base) var(--ease-standard),
        box-shadow var(--motion-base) var(--ease-standard);
}

.product-card__media,
.product-card-mobile__image {
    isolation: isolate;
}

.product-card__media::before,
.product-card-mobile__image.is-loading::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    opacity: 0;
    background: #f5f6f7;
}

.product-card__media.is-loading::before,
.product-card-mobile__image.is-loading::before {
    opacity: 1;
    background: linear-gradient(100deg, #f4f5f6 30%, #fafafa 50%, #f4f5f6 70%);
    background-size: 220% 100%;
    animation: alboImageShimmer 1.2s ease-in-out infinite;
}

.product-card__media picture,
.product-card__media .product-card__img,
.product-card-mobile__image picture,
.product-card-mobile__image img {
    position: relative;
    z-index: 1;
}

.product-card__media .product-card__img {
    transition: opacity 250ms var(--ease-standard) !important;
    transform: none !important;
}

.product-card__media .product-card__img--hover {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    padding: inherit;
    object-fit: contain;
    object-position: center;
    opacity: 0;
    pointer-events: none;
}

.product-card__media.is-hovering .product-card__img:not(.product-card__img--hover) {
    opacity: 0;
}

.product-card__media.is-hovering .product-card__img--hover {
    opacity: 1;
}

@media (hover: hover) and (pointer: fine) {
    .product-card:hover,
    .product-card:focus-within {
        transform: translateY(-4px);
        box-shadow: 0 12px 28px rgba(15, 23, 42, .10);
    }
}

.add-to-cart-ajax,
.quick-add-submit,
.product-card-mobile,
.product-card {
    -webkit-tap-highlight-color: transparent;
}

.add-to-cart-ajax:active,
.quick-add-submit:active,
.product-card-mobile:active {
    transform: scale(.97);
    transition-duration: var(--motion-instant);
}

.albo-cart-count-pulse {
    animation: alboCartPulse 350ms var(--ease-albo);
    transform-origin: center;
}

.albo-pdp-image-out {
    opacity: 0 !important;
    transform: scale(.985) !important;
    transition: opacity 120ms var(--ease-exit), transform 120ms var(--ease-exit) !important;
}

.albo-pdp-image-in {
    animation: alboPdpImageIn 180ms var(--ease-albo) both;
}

.hero-slider__slide.hero-motion-run .hero-slider__subtitle-top,
.hero-slider__slide.hero-motion-run .hero-slider__title,
.hero-slider__slide.hero-motion-run .hero-slider__subtitle-bottom,
.hero-slider__slide.hero-motion-run .hero-slider__advanced-content > *,
.hero-slider__slide.hero-motion-run .hero-slider__buttons {
    animation: alboHeroContentIn 400ms var(--ease-albo) both;
}

.hero-slider__slide.hero-motion-run .hero-slider__title,
.hero-slider__slide.hero-motion-run .hero-slider__advanced-content > :nth-child(2) {
    animation-delay: 80ms;
}

.hero-slider__slide.hero-motion-run .hero-slider__subtitle-bottom,
.hero-slider__slide.hero-motion-run .hero-slider__advanced-content > :nth-child(3) {
    animation-delay: 160ms;
}

.hero-slider__slide.hero-motion-run .hero-slider__buttons,
.hero-slider__slide.hero-motion-run .hero-slider__advanced-content > :nth-child(n+4) {
    animation-delay: 240ms;
}

#site-drawers-root .cart-drawer.active #cart-content > *,
#site-drawers-root .quick-add-drawer.active #quick-add-content > * {
    animation: alboDrawerContentIn 250ms var(--ease-albo) both;
}

#site-drawers-root .cart-drawer.active #cart-content > :nth-child(2),
#site-drawers-root .quick-add-drawer.active #quick-add-content > :nth-child(2) { animation-delay: 40ms; }
#site-drawers-root .cart-drawer.active #cart-content > :nth-child(3),
#site-drawers-root .quick-add-drawer.active #quick-add-content > :nth-child(3) { animation-delay: 80ms; }
#site-drawers-root .cart-drawer.active #cart-content > :nth-child(4),
#site-drawers-root .quick-add-drawer.active #quick-add-content > :nth-child(4) { animation-delay: 120ms; }
#site-drawers-root .cart-drawer.active #cart-content > :nth-child(n+5),
#site-drawers-root .quick-add-drawer.active #quick-add-content > :nth-child(n+5) { animation-delay: 160ms; }

@keyframes alboImageShimmer {
    from { background-position: 100% 0; }
    to { background-position: -100% 0; }
}

@keyframes alboCartPulse {
    0%, 100% { transform: scale(1); }
    50% { transform: scale(1.3); }
}

@keyframes alboPdpImageIn {
    from { opacity: 0; transform: scale(1.015); }
    to { opacity: 1; transform: scale(1); }
}

@keyframes alboHeroContentIn {
    from { opacity: 0; transform: translate3d(0, 12px, 0); }
    to { opacity: 1; transform: translate3d(0, 0, 0); }
}

@keyframes alboDrawerContentIn {
    from { opacity: 0; transform: translate3d(0, 8px, 0); }
    to { opacity: 1; transform: translate3d(0, 0, 0); }
}

@media (max-width: 767px) {
    :root {
        --motion-reveal: 400ms;
        --motion-reveal-distance: 8px;
    }
}

@media (prefers-reduced-motion: reduce) {
    html.albo-motion-ready [data-aos],
    html.albo-motion-ready .wow,
    .product-card,
    .product-card-mobile,
    .product-card__img,
    .albo-pdp-image-out,
    .albo-pdp-image-in,
    .hero-slider__slide.hero-motion-run *,
    #site-drawers-root .cart-drawer.active #cart-content > *,
    #site-drawers-root .quick-add-drawer.active #quick-add-content > * {
        animation: none !important;
        transition: none !important;
        transform: none !important;
        opacity: 1 !important;
    }

    .product-card__media.is-loading::before,
    .product-card-mobile__image.is-loading::before {
        animation: none;
        background: #f4f5f6;
    }

    #site-drawers-root .cart-drawer,
    #site-drawers-root .quick-add-drawer {
        transition: transform 150ms linear, visibility 0s linear 150ms !important;
    }

    #site-drawers-root .cart-drawer.active,
    #site-drawers-root .quick-add-drawer.active {
        transition-delay: 0s !important;
    }

    #site-drawers-root .cart-overlay,
    #site-drawers-root .quick-add-overlay {
        transition: opacity 150ms linear, visibility 0s linear 150ms !important;
    }

    #site-drawers-root .cart-overlay.active,
    #site-drawers-root .quick-add-overlay.active {
        transition-delay: 0s !important;
    }
}
