.wc-block-components-product-image,
.wc-block-grid__product,
.product,
.vortexg-product-card,
.type-product {
    position: relative;
}

.vortex-hover-actions {
    position: absolute;
    right: 15px;
    bottom: 15px;
    z-index: 10;
    display: flex;
    flex-direction: column;
    gap: 10px;
    opacity: 0;
    pointer-events: none;
    transform: scale(.8);
    transform-origin: bottom center;
    transition: opacity .3s ease, transform .3s cubic-bezier(.175, .885, .32, 1.275);
}

.wc-block-components-product-image:hover .vortex-hover-actions,
.wc-block-components-product-image:focus-within .vortex-hover-actions,
.wc-block-grid__product-image:hover .vortex-hover-actions,
.wc-block-grid__product-image:focus-within .vortex-hover-actions,
.vortex-hover-actions.vortex-persist {
    opacity: 1;
    pointer-events: auto;
    transform: scale(1);
}

.vortex-btn-view,
.vortex-btn-cart {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 46px !important;
    height: 46px !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: var(--md-sys-shape-corner-full, 9999px) !important;
    background: var(--md-sys-color-surface-container-high);
    box-shadow: var(--md-sys-elevation-level-2) !important;
    color: var(--md-sys-color-primary);
    cursor: pointer;
    transition: color .2s ease, background-color .2s ease, transform .1s cubic-bezier(.4, 0, .2, 1);
}

.vortex-btn-view:hover,
.vortex-btn-view:focus-visible,
.vortex-btn-cart:hover,
.vortex-btn-cart:focus-visible {
    background: var(--md-sys-color-primary);
    color: var(--md-sys-color-on-primary);
    transform: scale(1.1);
}

.vortex-btn-view:focus-visible,
.vortex-btn-cart:focus-visible {
    outline: 3px solid var(--md-sys-color-primary);
    outline-offset: 3px;
}

.vortex-btn-view:active,
.vortex-btn-cart:active {
    transform: scale(.9);
}

.vortex-btn-view:disabled {
    cursor: wait;
    opacity: .72;
}

.vortex-btn-cart:disabled {
    cursor: pointer;
    opacity: .72;
}

.vortex-btn-cart.vortex-processing {
    background: var(--md-sys-color-primary);
    color: var(--md-sys-color-on-primary);
    transform: scale(1);
}

.vortex-btn-cart.added {
    background: var(--md-sys-color-primary-container);
    color: var(--md-sys-color-on-primary-container);
    box-shadow: var(--md-sys-elevation-level-3) !important;
    transform: scale(1.05);
}

.vortex-btn-cart.vortex-add-error {
    background: var(--md-sys-color-error);
    color: var(--md-sys-color-on-error);
    transform: scale(1);
}

.vortex-btn-loader {
    display: block;
    width: 20px;
    height: 20px;
    border: 2px solid color-mix(in srgb, var(--md-sys-color-on-primary) 32%, transparent);
    border-top-color: var(--md-sys-color-on-primary);
    border-radius: var(--md-sys-shape-corner-full, 9999px);
    animation: vortexg-quick-add-spin .8s linear infinite;
}

@keyframes vortexg-quick-add-spin {
    to {
        transform: rotate(1turn);
    }
}


@media (prefers-reduced-motion: reduce) {
    .vortex-hover-actions,
    .vortex-btn-view,
    .vortex-btn-cart {
        transition-duration: .01ms;
    }
}
