.float-cart{position:fixed;top:50%;right:14px;z-index:900;display:flex;align-items:center;gap:.6rem;flex-direction:row-reverse;text-decoration:none;transform:translateY(-50%);animation:fc-in .7s cubic-bezier(.2,.9,.3,1.2) both,fc-bob 4.5s ease-in-out 1s infinite}
.float-cart-btn{position:relative;width:58px;height:58px;border-radius:50%;display:grid;place-items:center;color:#fff;font-size:1.35rem;background:linear-gradient(135deg,var(--brand,#1a7bff),var(--brand-light,var(--brand,#0ea5a4)));box-shadow:0 10px 26px rgba(15,23,42,.25),inset 0 1px 0 rgba(255,255,255,.35);transition:transform .25s cubic-bezier(.2,.9,.3,1.3),box-shadow .25s}
.float-cart-btn::before,.float-cart-btn::after{content:"";position:absolute;inset:0;border-radius:50%;border:2px solid var(--brand,#1a7bff);opacity:0;pointer-events:none}
.float-cart.has-items .float-cart-btn::before{animation:fc-ring 2.4s ease-out infinite}
.float-cart.has-items .float-cart-btn::after{animation:fc-ring 2.4s ease-out 1.2s infinite}
.float-cart-btn i{transition:transform .3s}
.float-cart:hover .float-cart-btn,.float-cart:focus-visible .float-cart-btn{transform:scale(1.1);box-shadow:0 14px 34px rgba(15,23,42,.32),inset 0 1px 0 rgba(255,255,255,.4)}
.float-cart:hover .float-cart-btn i,.float-cart:focus-visible .float-cart-btn i{animation:fc-wiggle .6s ease}
.float-cart:focus-visible{outline:none}
.float-cart:focus-visible .float-cart-btn{outline:3px solid var(--brand-dim,rgba(26,123,255,.35));outline-offset:3px}
.float-cart-label{max-width:0;overflow:hidden;white-space:nowrap;opacity:0;padding:.55rem 0;border-radius:999px;font-weight:600;font-size:.9rem;color:var(--text,#0f172a);background:var(--bg-card,#fff);box-shadow:0 8px 22px rgba(15,23,42,.18);transition:max-width .35s ease,opacity .25s,padding .35s}
.float-cart:hover .float-cart-label,.float-cart:focus-visible .float-cart-label{max-width:9rem;opacity:1;padding:.55rem 1rem}
.float-cart-badge{position:absolute;top:-4px;right:-4px;min-width:22px;height:22px;padding:0 6px;border-radius:999px;display:grid;place-items:center;font-size:.75rem;font-weight:800;line-height:1;color:#fff;background:#ef4444;border:2px solid var(--bg-card,#fff);transform:scale(0);transition:transform .3s cubic-bezier(.2,.9,.3,1.6)}
.float-cart.has-items .float-cart-badge{transform:scale(1)}
.float-cart.is-bump .float-cart-btn{animation:fc-bump .7s cubic-bezier(.2,.9,.3,1.2)}
.float-cart.is-bump .float-cart-badge{animation:fc-pop .7s ease}
@keyframes fc-in{from{opacity:0;transform:translate(80px,-50%)}to{opacity:1;transform:translate(0,-50%)}}
@keyframes fc-bob{0%,100%{transform:translateY(-50%)}50%{transform:translateY(calc(-50% - 7px))}}
@keyframes fc-ring{0%{opacity:.55;transform:scale(1)}100%{opacity:0;transform:scale(1.9)}}
@keyframes fc-wiggle{0%,100%{transform:rotate(0)}25%{transform:rotate(-16deg)}60%{transform:rotate(12deg)}}
@keyframes fc-bump{0%{transform:scale(1)}30%{transform:scale(1.3) rotate(-8deg)}60%{transform:scale(.95) rotate(5deg)}100%{transform:scale(1)}}
@keyframes fc-pop{0%{transform:scale(1)}40%{transform:scale(1.6)}100%{transform:scale(1)}}
@media (max-width:640px){.float-cart{right:8px}.float-cart-btn{width:50px;height:50px;font-size:1.15rem}.float-cart-label{display:none}}
@media (prefers-reduced-motion:reduce){.float-cart,.float-cart *,.float-cart-btn::before,.float-cart-btn::after{animation:none!important;transition:none!important}.float-cart{transform:translateY(-50%)}}
@media print{.float-cart{display:none}}

@media (max-width:640px){
.float-cart{top:auto;bottom:calc(1rem + env(safe-area-inset-bottom,0px));right:max(12px,env(safe-area-inset-right));transform:none;animation:fc-in-m .5s ease both}
@keyframes fc-in-m{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
.float-cart-btn{width:54px;height:54px}
body:has(.shop-sticky) .float-cart{bottom:calc(5.5rem + env(safe-area-inset-bottom,0px))}
}

.float-cart{touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;cursor:grab;-webkit-tap-highlight-color:transparent}
html body .float-cart.is-moved{top:auto;left:auto;right:auto;bottom:auto;transform:none;animation:none;gap:0}
html body .float-cart.is-moved .float-cart-label{display:none}
html body .float-cart.is-dragging{cursor:grabbing}
html body .float-cart.is-dragging .float-cart-btn{transform:scale(1.12);box-shadow:0 18px 40px rgba(15,23,42,.38),inset 0 1px 0 rgba(255,255,255,.4)}
html body .float-cart.is-snap{transition:left .25s cubic-bezier(.2,.9,.3,1.1)}

@media (max-width:640px){
body:has(.pwa-install) .float-cart:not(.is-moved){bottom:calc(6.5rem + env(safe-area-inset-bottom,0px))}
body:has(.shop-sticky):has(.pwa-install) .float-cart:not(.is-moved){bottom:calc(10rem + env(safe-area-inset-bottom,0px))}
}
