/* Product Module v5 — theme-neutral commerce behaviours.
 * Product-card colours, typography, borders and button skins belong to the active theme.
 */
.qasf-section--products .products>li.product{position:relative}
.qpm-extra-badge{position:absolute;z-index:6;inset-block-start:10px;inset-inline-start:10px;display:inline-flex;align-items:center;max-inline-size:calc(100% - 20px);padding:.35em .7em;border:1px solid color-mix(in srgb,currentColor 20%,transparent);border-radius:999px;background:color-mix(in srgb,currentColor 8%,transparent);color:inherit;font-size:.78em;font-weight:700;line-height:1.2}
.qpm-v5 .products>li.product{transition:transform .22s ease,opacity .32s ease}
.qpm-motion-lift .products>li.product:hover{transform:translateY(-4px)}
.qpm-motion-scale .products>li.product:hover{transform:scale(1.015)}
.qpm-motion-lift_scale .products>li.product:hover{transform:translateY(-4px) scale(1.012)}
.qpm-motion-shine .products>li.product{overflow:hidden}
.qpm-motion-shine .products>li.product:after{content:"";position:absolute;inset:0;pointer-events:none;opacity:0;transform:translateX(60%);background:linear-gradient(115deg,transparent 35%,color-mix(in srgb,currentColor 10%,transparent) 50%,transparent 65%);transition:transform .45s ease,opacity .2s ease}
.qpm-motion-shine .products>li.product:hover:after{opacity:1;transform:translateX(-60%)}
.qpm-reveal-ready.qpm-reveal-fade .products>li.product,.qpm-reveal-ready.qpm-reveal-fade_up .products>li.product,.qpm-reveal-ready.qpm-reveal-scale .products>li.product{opacity:0;transition-delay:var(--qpm-delay,0ms)}
.qpm-reveal-ready.qpm-reveal-fade_up .products>li.product{transform:translateY(14px)}
.qpm-reveal-ready.qpm-reveal-scale .products>li.product{transform:scale(.975)}
.qpm-reveal-ready .products>li.product.qpm-item-visible{opacity:1;transform:none}
.qpm-native-lazy{content-visibility:auto;contain-intrinsic-size:auto 620px}

/* Quantity + native WooCommerce add-to-cart button share one action row. */
.qpm-purchase-row{display:grid;grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);align-items:stretch;gap:.5rem;width:100%;min-inline-size:0;margin-block-start:.45rem}
.qpm-purchase-row>*{min-inline-size:0;max-inline-size:100%}
.qpm-purchase-row>.button,.qpm-purchase-row>.added_to_cart{white-space:normal;overflow-wrap:anywhere;line-height:1.25}
.qpm-purchase-row>.button,.qpm-purchase-row>.added_to_cart{width:100%;min-width:0;margin:0!important;display:inline-flex;align-items:center;justify-content:center;text-align:center}
.qpm-quantity{display:grid;grid-template-columns:34px minmax(38px,1fr) 34px;align-items:stretch;min-width:0;border:1px solid color-mix(in srgb,currentColor 20%,transparent);border-radius:.55rem;overflow:hidden;background:transparent;color:inherit}
.qpm-quantity:not(.qpm-quantity--theme-controls) .quantity{display:block;min-width:0;margin:0!important}
.qpm-quantity:not(.qpm-quantity--theme-controls) .qty{width:100%!important;min-width:0!important;height:100%;margin:0!important;padding:.35rem .2rem!important;border:0!important;border-inline:1px solid color-mix(in srgb,currentColor 14%,transparent)!important;border-radius:0!important;background:transparent!important;color:inherit!important;text-align:center;box-shadow:none!important;-moz-appearance:textfield}
.qpm-quantity:not(.qpm-quantity--theme-controls) .qty::-webkit-outer-spin-button,.qpm-quantity:not(.qpm-quantity--theme-controls) .qty::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.qpm-quantity--theme-controls{display:flex;align-items:stretch;border:0;border-radius:0;overflow:visible;background:transparent}
.qpm-quantity--theme-controls .quantity{width:100%;min-width:0;margin:0!important}
.qpm-qty-btn{appearance:none;border:0;background:transparent;color:inherit;font:inherit;font-size:1.05rem;line-height:1;cursor:pointer;padding:0;min-width:0}
.qpm-qty-btn:hover,.qpm-qty-btn:focus-visible{background:color-mix(in srgb,currentColor 7%,transparent)}
.qpm-qty-btn:disabled{opacity:.38;cursor:not-allowed}

/* Cart confirmation modal. Buttons keep the active theme's .button appearance. */
.qpm-cart-modal[hidden]{display:none!important}
.qpm-cart-modal{position:fixed;z-index:100000;inset:0;display:grid;place-items:center;padding:clamp(12px,3vw,28px)}
.qpm-cart-modal-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.52)}
.qpm-cart-dialog{position:relative;z-index:1;width:min(620px,100%);max-height:min(86vh,720px);overflow:auto;padding:clamp(20px,3vw,30px);border:1px solid color-mix(in srgb,currentColor 16%,transparent);border-radius:clamp(14px,2vw,22px);background:var(--qasf-surface,#fff);color:var(--qasf-text,inherit);box-shadow:0 24px 70px rgba(0,0,0,.22);outline:none}
.qpm-modal-close{position:absolute;inset-block-start:10px;inset-inline-end:10px;width:36px;height:36px;border:0;background:transparent;color:inherit;font-size:1.75rem;line-height:1;cursor:pointer}
.qpm-cart-success{display:flex;align-items:center;gap:.5rem;padding-inline-end:44px;margin-block-end:1rem;font-weight:700}
.qpm-cart-product{display:grid;grid-template-columns:96px minmax(0,1fr);gap:1rem;align-items:center;padding-block:1rem;border-block:1px solid color-mix(in srgb,currentColor 14%,transparent)}
.qpm-cart-product img{display:block;width:96px;height:96px;object-fit:contain;border-radius:.6rem}
.qpm-cart-product strong{display:block;font-size:1.05rem;line-height:1.5}
.qpm-cart-product p{margin:.35rem 0 0}
.qpm-cart-modal-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.65rem;margin-block-start:1rem}
.qpm-cart-modal-actions .button{display:inline-flex;align-items:center;justify-content:center;width:100%;margin:0;text-align:center}
body.qpm-modal-open{overflow:hidden}

@media(min-width:768px){.qpm-extra-badge--mobile{display:none!important}}
@media(max-width:767px){
 .qpm-extra-badge--desktop{display:none!important}
 .qpm-devices-desktop .products>li.product,.qpm-devices-desktop_tablet .products>li.product{transition:none!important;transform:none!important}
 .qpm-devices-desktop .products>li.product:after,.qpm-devices-desktop_tablet .products>li.product:after{display:none!important}
 .qpm-purchase-row{grid-template-columns:1fr;gap:.4rem}
 .qpm-quantity{min-height:42px}
 .qpm-cart-product{grid-template-columns:72px minmax(0,1fr)}
 .qpm-cart-product img{width:72px;height:72px}
 .qpm-cart-modal-actions{grid-template-columns:1fr}
}
@media(min-width:768px) and (max-width:1023px){.qpm-devices-desktop .products>li.product{transition:none!important;transform:none!important}.qpm-devices-desktop .products>li.product:after{display:none!important}}
@media(prefers-reduced-motion:reduce){.qpm-v5 .products>li.product{transition:none!important;transform:none!important;opacity:1!important}.qpm-v5 .products>li.product:after{display:none!important}.qpm-cart-modal *{scroll-behavior:auto!important}}
