(function(){try{var search=window.location.search||'';var hasInquiryParam=/[?&](inquiry_nonce|inquiry_id|product_id|_cb|_cb_retry)=/.test(search);var cookies=document.cookie||'';var hasSessionCookie=cookies.indexOf('cxb_b2b_session_')!==-1;if(hasInquiryParam||hasSessionCookie){var r=document.documentElement;if(r&&r.classList){r.classList.add('cxb-b2b-needs-verification')}else if(r){r.className+=' cxb-b2b-needs-verification'}}}catch(e){}})() /* v2.2.2 — Suppress the empty-state flash while quote.js reconciles. Scoped to html.cxb-b2b-needs-verification so only visitors who might have items (URL params / session cookie) see the spinner substitution. Plain anonymous visitors don't match the selector and see the empty message immediately. quote.js removes the class once it has rendered the real state (or confirmed the basket is genuinely empty). */ html.cxb-b2b-needs-verification .cxb-b2b-quote-request-empty { position: relative; min-height: 120px; } html.cxb-b2b-needs-verification .cxb-b2b-quote-request-empty > * { visibility: hidden; } html.cxb-b2b-needs-verification .cxb-b2b-quote-request-empty::after { content: ""; position: absolute; top: 50%; left: 50%; margin: -16px 0 0 -16px; width: 32px; height: 32px; border: 3px solid #eee; border-top-color: #666; border-radius: 50%; animation: cxb-b2b-quote-loading-spin 0.8s linear infinite; } /* Keyframe duplicated here (also in the main
© 2026 Tianjin Sunny. All Rights Reserved.
Leave a message

Contact Us

  • Email Email localadmin@2004.local.invalid

Leave a message

Scroll to Top