/* TECNOPULIND: WhatsApp aziendale e scorciatoia carrello, 24 ottobre 2026.
   Isolato da catalogo, SEO, preventivi e javascript esistenti. */
.floating-whatsapp{box-sizing:border-box;position:fixed;right:18px;bottom:calc(18px + env(safe-area-inset-bottom));z-index:64;display:flex;align-items:center;justify-content:center;width:58px;height:58px;border:1px solid #1cab52;border-radius:50%;background:linear-gradient(140deg,#31d86e,#139b47);color:#fff;text-decoration:none;box-shadow:0 9px 24px rgba(0,45,25,.23);transition:transform .18s ease,box-shadow .18s ease;}
.floating-whatsapp svg{display:block;width:30px;height:30px;fill:none;stroke:currentColor;}
.floating-whatsapp:hover{transform:translateY(-3px);box-shadow:0 12px 28px rgba(0,45,25,.33);color:#fff;}
.floating-whatsapp:focus-visible{outline:3px solid #29c5ee;outline-offset:4px;}
/* The cart is visible only when it contains products. The WhatsApp action stacks above it. */
body:has(#floatingCart:not([hidden])) .floating-whatsapp,
body:has(#seoFloatingCart:not([hidden])) .floating-whatsapp{bottom:calc(90px + env(safe-area-inset-bottom));}
@media(min-width:701px){
 .floating-cart:not([hidden]){position:fixed;right:18px;bottom:18px;z-index:65;display:flex;align-items:center;justify-content:center;width:58px;height:58px;padding:0;border:1px solid #ff625c;border-radius:50%;color:#fff;background:linear-gradient(135deg,#ef241d,#c70c12);box-shadow:0 8px 25px #03182740;cursor:pointer;}
 .floating-cart svg{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;}
 .floating-cart>span{position:absolute;right:-4px;top:-5px;min-width:24px;height:24px;border:2px solid #e41c18;border-radius:16px;padding:0 4px;display:flex;align-items:center;justify-content:center;background:#fff;color:#9d1016;font-size:11px;font-weight:900;line-height:1;}
 .floating-cart:focus-visible{outline:3px solid #29c5ee;outline-offset:4px;}
 /* Respect modal contexts: shortcut stays out of focus-trapped dialogs. */
 body:has(#catalogDrawer:not([hidden]),#productDrawer:not([hidden]),#cartDrawer:not([hidden]),#quoteModal:not([hidden]),#gtpLightbox:not([hidden]),#privacy[open],#mobileMenu:not([hidden])) .floating-cart{display:none!important;}
}
body:has(#catalogDrawer:not([hidden]),#productDrawer:not([hidden]),#cartDrawer:not([hidden]),#quoteModal:not([hidden]),#gtpLightbox:not([hidden]),#privacy[open],#mobileMenu:not([hidden]),#seoZoom[open]) .floating-whatsapp{display:none!important;}
body:has(#contactForm input:focus,#contactForm textarea:focus,#catalogSearch:focus,.seo-buy input:focus) .floating-whatsapp{display:none!important;}
@media(max-width:700px){.floating-whatsapp{right:18px;bottom:calc(18px + env(safe-area-inset-bottom));}}
@media(prefers-reduced-motion:reduce){.floating-whatsapp{transition:none;}}

/* 2026-10-24: authentic WhatsApp glyph (Simple Icons vector), with no stroked approximations. */
.floating-whatsapp svg{width:30px;height:30px;fill:currentColor;stroke:none;}
.floating-whatsapp svg path{fill:currentColor;stroke:none;}
/* Fix desktop blue strip: the iframe must cover the entire auto-stretched map cell.
   On mobile the existing media-query heights (215/270px) remain authoritative. */
.shop-feature-map{position:relative;overflow:hidden;}
.shop-feature-map > iframe{position:absolute;inset:0;display:block;width:100%;height:100%;min-height:0;border:0;}
.shop-map-open{z-index:1;}

/* Contact-only WhatsApp entry: never show floating WhatsApp behind the customer assistant. */
.floating-whatsapp{display:none!important}
.contact-links .contact-whatsapp-link{display:inline-flex;align-items:center;gap:10px;min-width:0}.contact-links .contact-whatsapp-link svg{width:21px;height:21px;flex:none;display:block;fill:currentColor;stroke:none}.contact-links .contact-whatsapp-link span{display:flex;flex-direction:column;line-height:1.3}.contact-links .contact-whatsapp-link small{font-size:.85em;opacity:.77}

/* Inline business email icon, same visual alignment as phone and WhatsApp. */
.contact-links .protected-email{display:inline-flex!important;align-items:center!important;gap:10px!important;min-width:0}.contact-links .protected-email>svg{height:24px;width:24px;flex:0 0 24px;display:block;fill:none;stroke:currentColor;stroke-width:1.65}.contact-links .protected-email>.email-address{min-width:0;overflow-wrap:anywhere}


/* Remove an older generated envelope glyph; only the deliberate SVG mail icon should render. */
.contact-links .protected-email::before{content:none!important;display:none!important}
