/* Molde · Store flow overlays (mini cart, drawers, mega menu, modals, toasts), drawn inside the store canvas so they scale with it */
.pv-overlay{position:absolute; inset:0; z-index:60}
.pv-scrim{position:absolute; inset:0; background:rgba(11,11,16,.42); animation:pvFade .2s ease}
.pv-drawer{position:absolute; right:0; width:440px; display:flex; flex-direction:column; animation:pvIn .32s cubic-bezier(.2,.8,.2,1)}
.pv-drawer.is-mob{width:100%}
.pv-drawer.is-left{right:auto; left:0; width:auto; animation-name:pvInL}
.pv-drawer.is-left > .mo-drawer{height:100%; overflow:auto; max-width:100%}
.pv-drawer.is-left.is-mob{width:min(375px, 88%)}
.pv-drawer.is-left.is-mob > .mo-drawer{width:100%}
@keyframes pvInL{from{transform:translateX(-24px); opacity:0}}
.pv-mega{position:absolute; left:0; right:0; z-index:55; transform-origin:top center; animation:pvDrop .22s cubic-bezier(.2,.8,.2,1)}
.pv-mega > .mo-mega{width:100%}
@keyframes pvDrop{from{transform:translateY(-6px); opacity:0}}
.pv-drawer > .mo-modal{width:100% !important; height:100%; max-height:100%; border-radius:0; overflow:auto; animation:none}
@keyframes pvFade{from{opacity:0}}
@keyframes pvIn{from{transform:translateX(24px); opacity:0}}
@media (prefers-reduced-motion: reduce){ .pv-drawer{animation:pvFade .2s ease} }
.pvcanvas{position:relative}
.pv-toast{position:absolute; right:24px; z-index:70; animation:pvDrop .24s cubic-bezier(.2,.8,.2,1)}
.pv-search > .mo-msr{width:100% !important; max-width:none; border-radius:0}
.pv-modal{position:absolute; left:50%; transform:translateX(-50%); width:min(640px, calc(100% - 32px)); overflow:auto; border-radius:var(--radius-card, 12px); box-shadow:0 24px 64px rgba(11,11,16,.28); animation:pvPop .26s cubic-bezier(.2,.8,.2,1)}
.pv-modal > .mo-modal{width:100% !important; max-width:none}
.pv-modal.is-wide{width:min(1040px, calc(100% - 32px))}
@keyframes pvPop{from{opacity:0; transform:translateX(-50%) translateY(10px) scale(.98)}}
