/* One floating red cart for homepage, catalogue, product panel and SEO product pages.
   Keep legacy top buttons in the DOM because other modules bind events to their IDs. */
#catalogDrawer .drawer-controls #catalogCartBtn,
#productDrawer .drawer-top #productCartOpen,
.site-header .header-actions #topCart{display:none!important}
/* A fixed button must live under document.body, not under an animated side-drawer. */
body #floatingCart:not([hidden]),body #seoFloatingCart:not([hidden]){
 position:fixed!important;right:18px!important;bottom:calc(18px + env(safe-area-inset-bottom))!important;
 left:auto!important;top:auto!important;z-index:100!important;
 width:58px!important;height:58px!important;min-width:58px!important;min-height:58px!important;
 display:flex!important;align-items:center!important;justify-content:center!important;
 border-radius:50%!important;border:1px solid #fa635b!important;
 background:linear-gradient(140deg,#ef342b,#c70818)!important;
 box-shadow:0 11px 27px #041b3760,0 0 0 1px #ffffff2d inset!important;
 color:#fff!important;text-decoration:none!important;cursor:pointer!important;
 transform-origin:center center;isolation:isolate;
}
body #floatingCart:not([hidden]) svg,body #seoFloatingCart:not([hidden]) svg{width:27px!important;height:27px!important;stroke:currentColor!important;fill:none!important}
body #floatingCart:not([hidden])>span,body #seoFloatingCart:not([hidden])>span{position:absolute!important;right:-5px!important;top:-6px!important;min-width:25px;height:25px;display:grid!important;place-items:center;background:#fff!important;color:#a8121e!important;border:2px solid #c91620!important;border-radius:15px!important;font-weight:900!important;font-size:11px!important;line-height:1!important;pointer-events:none!important}
/* No floating cart over checkout, modal photo, full-screen assistant or the mobile menu. */
body:has(#cartDrawer:not([hidden]),#quoteModal:not([hidden]),#gtpLightbox:not([hidden]),#privacy[open],#mobileMenu:not([hidden]),#seoZoom[open]) #floatingCart:not([hidden]),
body:has(#cartDrawer:not([hidden]),#quoteModal:not([hidden]),#gtpLightbox:not([hidden]),#privacy[open],#mobileMenu:not([hidden]),#seoZoom[open]) #seoFloatingCart:not([hidden]),
body:has(.gtp-assistant.is-open) #floatingCart:not([hidden]),
body:has(.gtp-assistant.is-open) #seoFloatingCart:not([hidden]){display:none!important}
/* Keep the blue advisor above the red cart when the user is browsing the catalogue.
   Other modal states preserve their existing privacy/focus protection. */
body:has(#catalogDrawer:not([hidden])):not(:has(#cartDrawer:not([hidden]),#quoteModal:not([hidden]),#gtpLightbox:not([hidden]),#gtpChatPanel:not([hidden]))) #gtpChatToggle.gtp-chat-fab,
body:has(#productDrawer:not([hidden])):not(:has(#cartDrawer:not([hidden]),#quoteModal:not([hidden]),#gtpLightbox:not([hidden]),#gtpChatPanel:not([hidden]))) #gtpChatToggle.gtp-chat-fab{
 display:grid!important;z-index:112!important;
}
body:has(#floatingCart:not([hidden])) #gtpChatToggle.gtp-chat-fab,
body:has(#seoFloatingCart:not([hidden])) #gtpChatToggle.gtp-chat-fab{bottom:calc(89px + env(safe-area-inset-bottom))!important}
/* The floating button enters from its centre on first addition. */
#floatingCart.gtp-cart-enter:not([hidden]),#seoFloatingCart.gtp-cart-enter:not([hidden]){
 animation:gtp-cart-pop-in .48s cubic-bezier(.18,1.38,.38,1) both!important;
}
@keyframes gtp-cart-pop-in{
 0%{opacity:0;transform:scale(.12)}
 58%{opacity:1;transform:scale(1.13)}
 81%{transform:scale(.96)}
 100%{opacity:1;transform:scale(1)}
}
#floatingCart.gtp-cart-receive:not([hidden]),#seoFloatingCart.gtp-cart-receive:not([hidden]){
 animation:gtp-cart-receive .3s cubic-bezier(.3,1.3,.45,1) both!important;
}
@keyframes gtp-cart-receive{0%{transform:scale(1)}43%{transform:scale(1.14)}100%{transform:scale(1)}}
.gtp-cart-fly-particle{position:fixed;z-index:120;pointer-events:none;left:0;top:0;width:19px;height:19px;border-radius:50%;background:radial-gradient(circle at 30% 25%,#ff9891,#ec221a 62%,#be0b16);border:2px solid #fff;box-shadow:0 4px 12px #ad161d66;will-change:transform,opacity}
@media(max-width:700px){
 body #floatingCart:not([hidden]),body #seoFloatingCart:not([hidden]){width:56px!important;height:56px!important;min-width:56px!important;min-height:56px!important;right:16px!important;bottom:calc(17px + env(safe-area-inset-bottom))!important}
 body:has(#floatingCart:not([hidden])) #gtpChatToggle.gtp-chat-fab,body:has(#seoFloatingCart:not([hidden])) #gtpChatToggle.gtp-chat-fab{right:16px!important;bottom:calc(87px + env(safe-area-inset-bottom))!important}
}
@media(prefers-reduced-motion:reduce){
 #floatingCart.gtp-cart-enter:not([hidden]),#seoFloatingCart.gtp-cart-enter:not([hidden]),#floatingCart.gtp-cart-receive:not([hidden]),#seoFloatingCart.gtp-cart-receive:not([hidden]){animation:none!important}
 .gtp-cart-fly-particle{display:none!important}
}
/* A legacy modal-specific selector has more specificity than the common rule. */
body:has(#productDrawer:not([hidden])):not(:has(#cartDrawer:not([hidden]),#quoteModal:not([hidden]),#gtpLightbox:not([hidden]),#privacy[open],#mobileMenu:not([hidden]))) #floatingCart.floating-cart:not([hidden]){display:flex!important}
body:has(#catalogDrawer:not([hidden])):not(:has(#cartDrawer:not([hidden]),#quoteModal:not([hidden]),#gtpLightbox:not([hidden]),#privacy[open],#mobileMenu:not([hidden]))) #floatingCart.floating-cart:not([hidden]){display:flex!important}
